APP下载

基于S7-200PLC的自由口通信在卷板机控制系统中的应用

2018-03-06宋亚林

重型机械 2018年1期
关键词:数据量字符字节

江 宁,宋亚林

(鄂州职业大学机械工程学院,湖北 鄂州 436000)

0 前言

卷板机用于将各种规格的钢板卷制成需要的筒体,为便于操作和维修,设备都需要配置触摸屏或工控机,将设备的各种工作信息实时显示,并对设备在不同工况下的工作,设置相应的控制参数,记录工件卷制过程中的经验数据,设备的操作使用更趋近于数控化。卷板机使用PLC作为控制单元,因卷板机的特性,除需要常规上的数据采集监控外,还需要针对卷板机的机械结构,建立卷板工艺的数学模型,该模型在编程中需要大量采用递归算法,计算结果对于操作生产才有实际的指导意义。对于触摸屏而言,一般都只支持脚本编程,在计算过程上花费的时间很多,造成用户体验效果极差,因此在要求较高的卷板机上都需要配置工控机,满足复杂计算功能。PLC使用的是西门子S7-200的小型系列,本体通信采用RS485物理接口,自带PC/PPI通信协议和MPI协议,但该协议不公开,支持用户自编程实现自由口通信,通信协议内容可自定义。工控机使用windows系统支持RS232C协议,从成本角度考虑,可直接用一根RS232转RS485通信电缆连接,完成PLC与工控机间的数据交换。因此,PLC上的自由口通信编程和工控机上与之配套读写PLC数据的通信程序需要技术人员自主开发,这项技术除对软件很熟悉外,还需要考虑硬件特性,工业现场抗干扰和稳定性要求,对很多卷板机生产企业而言是一大技术难题。

1 系统需求

卷板机监控系统需要具备如下功能:参数设置;位移、压力、按钮和电磁阀等各种电气元件的实时工作状态数据;工艺计算;历史数据记录;自动控制工艺参数修改与下载;要考虑全液压机型,传感器较多,I/O点较多。统计后机器上配置最多的各类传感器达到18个,按照一个传感器有4个字节数据量计算;电磁阀达到44个,用中间继电器转换控制,再加上电机和指示灯等,输出点按照60个统计;操作按钮和接近开关等开关量输入点按照80个点统计。即设备自身数据需要满足72+18=90个字节的数据通信量,同时自动控制时的一些变化型控制参数,例如当前设定的位移数据,报警点,按照60个字节数据量计算。总计150个字节数据需要实时从PLC传送到微机上显示;并且显示数值和状态位要稳定可靠,在设备不工作时不得有突变,跳动或紊乱现象,传感器数据需要将测量处理后的结果真实正确显示。设备工作时在无外界干扰情况下,数据显示与静态时同等要求;而且在工作时数据变化情况和状态位的变化情况与电器、设备动作同步,不得出现视觉上的滞后,不得出现电器元件由工作切换到停止、工作辊由移动切换到停止时,显示的状态和位移数据还在变动。对于卷板机控制参数和自动控制工艺参数,需要正确下载到PLC中,能配合PLC逻辑控制完成自动流程工作。电气系统采用德国西门子S7-200PLC作为下位机,上位机采用台湾研华工控机。上位机监控系统中的工艺计算数学模型由卷板机设计工程师根据机械设备结构数据提供理论力学公式,控制系统结合卷板操作工艺,经过复杂的计算,转化为最后能指导卷板操作所需的几组数据。上位机的计算不是一直在进行,只在需要的时候才执行,更多的时候系统处理显示与画面刷新任务和与下位机的通信任务,相对于微软多任务系统而言,目前市场上普遍使用的,上位机PC硬件系统都足够。下位机能够对西门子S7-200系列所有PLC通用。

2 自由口通信设计

自由口通信分为下位机PLC编程设计和上位机编程设计,双方需要预先约定通信协议的格式和内容。RS232C串口通信一次最多传输字节数是255。按照系统需要分析结果:微机需要读PLC中150个字节数据;按照起始符1个,效验符2个,数据150个,效验符2个,结束符1个的字节顺序安排数据,共156个通信字节数据需要读取;微机将参数和工艺数据下载到PLC,称为写,可考虑不上传到微机,按照堆栈形式排队,可多次执行自动写的操作,缩短通信周期,即让通信更多的时间用在读取数据上。写数据协议按照字节数安排为:PLC的V区地址值占4个,数据值占8个,数据类型码占1个,异或校验码占1个,结束符占1个,按照该格式每次写通信数据量为15个字节约定。

2.1 自由口通信

自由接口模式允许程序控制S7-200 CPU的通讯端口,让用户定义通讯协议与多种智能设备通讯,支持ASCII和二进制协议,可使用特殊内存字节SMB30控制0号端口,SMB130控制1号端口。

传送指令(XMT)和传送中断:“传送”指令允许S7-200 CPU从COM端口最多传送255个字符。传送完成时,传送中断向S7-200中的程序发出通知。

接收指令(RCV)和接收中断:“接收”指令从COM端口接收整条信息,完全收到信息后,生成中断。接收中断通知用户程序在COM端口中已收到字符。程序则可根据正在执行的协议处理该字符。

使用S7-200的SM内存配置“接收”指令,根据定义的条件开始和停止信息接收。“接收”指令允许程序根据具体字符或时间间隙开始或停止信息接收。

自由接口模式仅限在S7-200处于RUN(运行)模式时才成为激活。将S7-200设为STOP(停止)模式会使所有的自由接口通讯暂停,通讯端口则返回在S7-200系统块中配置的 PPI协议设置[1]。

通信配置结构如图1所示。

图1 配置结构图

使用配备电子标尺的S7-200 CPU,该电子标尺有一个RS-232端口;PC/PPI电缆将标尺上的RS-232端口与S7-200 CPU上的RS-485端口连接;S7-200 CPU使用自由接口与标尺通讯;波特率范围从1 200 b至115.2 kb;可以使用PC/PPI电缆和自由接口通讯功能将S7-200 CPU与很多与RS-232标准兼容的设备连接。当数据从RS-232端口传送至 RS-485端口时,PC/PPI电缆位于“传送”模式。当电缆空闲或从RS-485端口向RS-232端口传送数据时,电缆位于“接收”模式。一旦检测到RS-232传送线路上的字符时,电缆立即从“接收”模式转换为“传送”模式。PC/PPI电缆支持1 200 b至115.2 kb的波特率。使用PC/PPI电缆外壳上的DIP开关将电缆配置为正确的波特率。波特率和开关位置见表1。

表1 波特率和开关位置

当RS-232传送线路位于空闲状态时间达到定义的电缆周转时间时,电缆开关返回“接收”模式。

如果在使用自由接口通讯的系统中使用PC/PPI电缆,S7-200 CPU中的程序必须在以下情形下能够识别周转时间:

S7-200对RS-232设备传送信息作出应答。当S7-200从RS-232设备接收到请求信息时,S7-200必须延迟应答信息的传送,时延必须大于或等于电缆的周转时间。

RS-232设备对从S7-200 CPU传送的信息作出应答。当S7-200 CPU从RS-232设备接收应答信息后,S7-200必须延迟下一则请求信息的传送,时延必须大于或等于电缆的周转时间。

在上述两种情形下,延迟均允许PC/PPI电缆有足够的时间从“传送”模式转换为“接收”模式,以便从 RS-485端口向 RS-232端口传送数据。

即一个通信流程为:上位机发请求信号,S7-200回复应答信号,延时。因该通信方式为自由口通信,两端串口收发过程数据处理全部由技术人员完成,在适合硬件特性基础上,通信完全可由技术人员自定义,最终以实现稳定可靠的通信为前提,这也是自由口通信的一大特点与优势,基于该原理完成通信编程设计。

设计时既要考虑上位机PC端串口硬件处理能力,又要通过高级编程语言,完成数据可控、可操作、符合配套项目需要的数据内容。又要考虑通信数据量不同导致传输时间的问题影响通信的连续性。包含下位机PLC编写自由口通信用户程序,上位机串口通信开发应用程序。程序完成需要反复调试,确保正确性和稳定性,才能在工程项目使用。

下位机PLC使用西门子的V4.0 STEP 7 MicroWIN SP9编程软件,使用一个初始化子程序;两个中断服务程序:一个接收数据处理,一个发送指定内存区的数据。主要流程图分别如图2~4所示。

图2所示初始化子程序仅在PLC上电后程序执行的第一个周期执行一次,作用为设置串口通信波特率为19.2 kb/s[S1],设置接收完成后的空闲延时时间,设置与上位机约定的结束字符,每次接收的最大字符数,通信端口号和中断启用。

图2 串口初始化

图3 所示接收数据处理主要在接收到结束字符后,对接收缓冲区指定地址中的数据根据不同数据类型所代表的字符码进行判断后,分类,转换,异或校验,将校验正确的数据分配到指定的寄存器地址中。

图3 接收中断

图4 所示发送数据中断则主要是随时将指定寄存器中的连续数据一次性送到串口缓冲区,设置包含发送起始地址、数据长度、效验码、结束符等约定信息,并通过串口发送到上位机。在PLC中使用半双工通信,在发送时禁止接收,仅在接收到结束字符并处理完成后返回,才调用发送中断,时间控制就比较重要;同样上位机PC在接收PLC数据并处理完成后才向下位机PLC发送新的请求信息,避免收发同时进行,造成通信堵塞中断。系统正常运行后接收与发送将循环进行。

图4 发送中断

2.2 上位机程序设计

在上位机PC端,卷板机需要的数据,考虑数据量的扩展性,PC的RS232串口设备特性,根据自由口通信约定,功能分为串口初始化,串口监测,数据发送,数据接收处理,使用VC6.0软件平台开发,主要通信流程分别如图5~7所示。

图5为串口初始化,使用哪一个硬件串口,设置异步通信模式,设置串口通信波特率,检测串口反馈信息,设置收发缓冲区,开启第二线程,避免与windows系统处理时间冲突。该功能仅执行一次。

图5 串口初始化

图6 为数据发送功能,无写操作时,发送一帧默认准备好的字节,一帧字节数15个,字节数据功能与排列规律与下位机PLC约定一致。有写操作时,将要发送新的数据按照约定格式进行转换,排列;有多个数据则排队,串口发送按照堆栈方式进行,后进先发。每发送一帧数据后延时60~120 ms,根据接收数据量的大小调节。

图6 数据发送

图7 为接收功能,为简化与稳定,初始化时接收固定数量的数据,根据结束符,判断接收结束后,对数据进行校验,校验正确则将接收缓冲区数据转换,分解,送到寄存器中,通过调用函数供设备取用。完成后向线程发送消息,准备下一轮数据的发送与接收工作。

同样上位机程序中需要控制串口以半双工方式工作,接收与发送不可同时进行。上位机主动发送指令,下位机被动接收后应答,再发送指定寄存器中的数据,上位机接收数据处理。若通信正常则按照该流程循环进行,如图8所示;若通信失败,分两种情况,一是设定串口不存在或串口损坏,二是PLC不在Run位置或通信电缆没有连接,则上位机将报告通信中断故障。第一种情况下上位机停止发送指令,程序控制每间隔1 000 ms扫描一次串口,直到串口硬件正常,再按第二种情况执行;第二种情况下上位机持续发送指令,直到上位机接收到正确的约定字符。则恢复通信流程。

图7 数据接收校验

图8 通信数据流

3 通信数据处理与应用

卷板机接收的交互数据包含3到7个浮点数类型的位移,2到10个浮点数类型的压力,1个浮点数类型的温度数据,自动控制功能上要求的2到6个浮点数类型的位置设定值,工作状态指示,报警点,DI/DO输入输出等开关量信号,所有数据全部存放到V地址区。以上数据需要从PLC发送到上位机进行显示,数据以字节为单位,浮点数和长整数占用连续4个字节,整数占用连续2个字节,8个开关量占用一个字节,数据量大小150个字节能够满足使用并略有富余,富余供备用,再约定起始字符@和结束字符CR,校验字符*,在ASCLL码中分别对应十进制数64、13、42,一次从下位机发送156个字节的数据,为节约数据在PLC中的处理时间,这些数据不做转换,在PLC内存V地址区中按照通信约定协议排列直接送到上位机,由上位机将PLC中的数据进行高低字节转换,对浮点数类型还需将普通二进制编码调整为浮点数编码,进行正确显示。

上位机送到PLC的数据包含地址信息,数据,数据类型信息(0-无处理,1-置位,2-复位,3-字节,4-字,5-双字),异或效验码和结束符(十进制数248),为保证数据的准确性和避免字符值和通信协议约定的结束符产生冲突,将数据按二进制排列,每4个二进制位一组转换为ASCLL码送到缓冲区,则数据范围为16进制的0~F,32位双字数据占用8个字节,PLC寄存器地址以16为整数,占用4个字节,操作类型1个字节,异或校验结果1个字节,结束字符1个字节。发送该数据的主要功能是向下位机中执行写数据操作。一般情况下,只有在上位机进行参数设定时才会出现;更多的时候是上位机没有写操作要求,则发送操作数据类型定义为0,下位机接收到后不做任何处理,仅按照通信流程向上位机发送156个字节的显示数据。另外在上位机发送后延时60 ms等待接收,接收完成后再延时80 ms发送,该时间用于上位机进行数据处理和保证通信数据处理完成,按照该设计利用VC++6.0编程软件,建立MFC动态库项目,设置接口调用函数,主要是串口打开设置与初始化函数:参数是串口号,波特率;串口状态监控函数:返回当前硬件串口状态;设置数据长度:设定接收有效数据的长度,当前设定为150;设置通信收发时间函数:参数是发送后延时时间,接收后延时时间;各类型数据读函数:参数是PLC地址值,返回指定类型数据值;各类型数据写函数:参数是指定的地址和需要写入的数据;串口关闭函数:参数是串口号,退出系统时需要调用。调试完成后生成动态库文件,直接在卷板机控制系统项目中链接后使用,应用项目中对动态库中的其他内部私有参数不能修改,也不能修改通信内部程序结构和逻辑,确保通信过程和数据不受破坏,具有良好的封装性。

针对不同的设备,小数据量时,可减少发送字节数,使通信周期减小,从而提高数据处理时间和降低延时时间,设备动态和数据显示同步性更好;另外数据发送目前采用单次发送一个数据,对于自动数控卷板机来讲,需要根据板材参数计算卷板工艺时生成的各步工艺数据,单次发送耗时较长,操作体验较差,可增加接口函数和调整延时时间,实现一次发送多个数据,并修改PLC程序中的接收逻辑与之配套实现;如对接收显示数据量有更多要求的,还可以在现有150个字节的基础上继续增加,但最多不能超过248个字节数据。在通信功能结构保持不变的情况下,可扩展出小数据量接收和大数据量写操作的功能。自由口通信针对西门子S7-200全系列PLC,S7-200 smart全系列PLC都适用,因此凡用以上两种PLC为控制单元的所有设备,都可以使用该通信动态库完成上位机和下位机的数据交互。

在此基础上分别开发完成2XW11S-150X3200全液压三辊卷板机控制应用程序,与之配套的PLC控制程序。卷板机实际需要的数据为6个位移,10个压力,1个温度,自动控制设定值有4个浮点数,共21个浮点数;状态位6个字节,报警点5个字节,I/O点16个字节共27个字节,电磁阀和I/O点重合,实际使用了111个字节,空闲39个字节备用。

数据显示分为浮点数、整数、开关量三种类型显示,将卷板机各油缸的压力、位移、自动控制到位数据、时间、设备运行状态,报警提示,电磁阀工作状态等,按需分类后通过调用函数调用并显示在操作界面中;对系统控制参数,保护参数设置则执行一次写操作函数调用,正确送入PLC指定地址和数据类型。

微机CPU为双核2.1GHz,安装Windows XP专业版纯净操作系统,控制软件运行后,操作设备工作,可目测看到数据显示和设备动作同步,自动控制状态下设定工作辊到达指定位置,工作辊停止移动时界面上的位移数据同时到达,状态指示灯同时熄灭,实时性满足设备操控要求。另外测试验证收发延时总时间超过250 ms后,数据显示变化和设备动作,电气元件通断声音之间有明显滞后现象,说明实时性较差,在200 ms时能基本满足要求,在160 ms以下没有明显差异。若时间低于100 ms,发现数据有卡顿现象,变化的数据在显示上不连续,有停顿和跳跃,部分状态指示不正确,说明时间过小影响通信效果,时间过大影响显示实时性,当然不同的PC配置不同延时时间会略有差异。

系统初调完成后,设备在出厂调试使用阶段和用户使用过程中没有出现任何数据显示方面的问题,连续跟踪三个月使用正常,说明通信功能达到当初设计功能要求,系统也稳定,在随后的卷板机控制系统中开始广泛使用。既有普通对称式三辊卷板机,液压式水平下调试三辊卷板机,也有四辊卷板机和各型板材矫平机,都在使用该通信控制系统,其稳定性和适用性已成为湖北鄂重重型机械有限公司卷板机和矫平机控制系统的标准配置。

4 结束语

自由口通信功能的开发,是在卷板机功能要求的基础上完成的,和配套的PLC控制组合,能满足设备控制与使用中的通信数据量要求,数据读写实时性非常好,数据显示没有滞后,参数设置方面的写操作能够及时生效,很好的满足了操作要求,使用过程中系统稳定性经过了验证。以动态库文件形式封装后提供给工程技术人员使用,在此基础上应用于各型卷板机和矫平机控制系统,都能很好满足应用要求。

[1] 西门子 S7-200编程软件 STEP7 MicroWIN V4.0 SP9帮助文件[Z].2012-03.

[2] 黄祥国,黄小文.S7-200PLC与PC自由口通讯的多种实现方法[J].可编程控制器与工厂自动化,2006,(07):45-49.

[3] 林盛,迟新利,曲延华,等.基于VC++的PC与PLC自由口通讯[J].当代化工,2013,42(07):1015-1017.

[4] 何相勇,刘顺波,高运广,等.西门子S7-200自由口通讯的两种VC实现方法[J].工业控制计算机,2005,(02):62-63.

[5] 刘红兵.S7-200自由口通讯的实现及应用[J].可编程控制器与工厂自动化,2009,(02):58-62.

[6] 王金鹏.深入浅出新编C程序设计教程[M].北京:清华大学出版社,2015.

[7] 谭浩强.C++程序设计[M].北京:清华大学出版社,2015.

[8] 于海龙,石东东,赵秀美.基于PLC的数控卷板机自动控制系统研究[J].机械工程与自动化,2011,(01):133-135.

[9] 郑爱权.卷板机电气控制系统设计与研究[J].中国设备工程,2017,(01):166-167.

猜你喜欢

数据量字符字节
No.8 字节跳动将推出独立出口电商APP
基于大数据量的初至层析成像算法优化
高刷新率不容易显示器需求与接口标准带宽
论高级用字阶段汉字系统选择字符的几个原则
宽带信号采集与大数据量传输系统设计与研究
字符代表几
一种USB接口字符液晶控制器设计
图片轻松变身ASCⅡ艺术画
No.10 “字节跳动手机”要来了?
轻量级分组密码Midori64的积分攻击