APP下载

基于自由口模式的超声水表与S7-200通信实现

2020-06-29张继川

微型电脑应用 2020年6期
关键词:可编程控制器

张继川

摘 要:由于S7-200型可编程控制器预设的通信协议与SCL-61D超声水表通信协议不兼容,若进行通信需要更换设备,增加了成本。因此,利用S7-200型PLC的自由口通信模式,通过编程实现了对智能超声水表SCL-61D的数据读取。重点研究了通信参数的初始化及自由口通信程序的设计,通过PLC读数与SCL-61D超声水表真实数据对比可知,具有稳定性高、实时性好、安全可靠、成本低等特点,为PLC与智能仪器仪表通信协议不兼容问题,提供了解决思路。

关键词: 超声水表; 可编程控制器; XMT指令; 特殊存储器

中图分类号: TP 311

文献标志码: A

Abstract: Due to the incompatibility between the preset communication protocol of S7-200 PLC and the communication protocol of SCL-61d ultrasonic water meter, the equipment needs to be replaced for communication, but the cost is increased. Therefore, in this paper, the free port communication mode of S7-200 PLC is used to realize the data reading of intelligent ultrasonic water meter scl-61d by programming. This paper focuses on the initialization of communication parameters and the design of free port communication program. By comparing the PLC reading with the real data of SCL-61d ultrasonic water meter, it can be seen that this design has the characteristics of high stability, good real-time performance, safety and reliability, low cost, etc., which provides a solution to the incompatibility between PLC and intelligent instrument communication protocol.

Key words: ultrasonic water meter; PLC; XMT instruction; special memory

0 引言

选煤煤泥水处理工艺中,浓缩和浮选是主要的工艺环节,浓缩和浮选效果会受到絮凝剂、起泡剂以及捕收剂等添加剂用量的重要影响,因此,需要掌握精确的煤泥水流量来设定添加剂的用量。在煤泥水处理流量检测中,SCL-61D超声水表因其具有精度高、灵敏度高、检测稳定性好等特点,应用十分广泛。该水表采用SCL-6系列超声水表通信协议,若要实现超声水表数据自动读取,需要连接可编程控制器。S7-200型PLC具有自由口通信模式,通过PLC内软件程序的设计可实现与SCL-61D超声水表的通信,并自动读取水表数据。

1 初始化通信参数

S7-200型可编程控制器具有自由口通信模式,可在用户自定义通信协议的条件下实现与其他串行通信设备进行通信。在自由口通信模式,S7-200型可编程控制开启RUN状态后,通信端口和通信协议可被用户程序完全控制。S7-200型PLC采用半双工异步通信方式,接口通信标准具有RS-485特性,因此,设置通信参数和模式时需要在特殊存储器上完成。

SCL-61D超声水表具有与S7-200型可编程控制器电气标准一样的通信接口RS-485,因此,接口具有相同的电气特性。在超声水表与PLC连接过程中,只需将S7-200的PORT0口引脚3和引腳8分别连接到超声水表的通信接口B和通信接口A,即可。SCL-61D超声水表通信参数可设为默认(波特率),校验位“无”、停止位“1”位、数据位“8”位。水表的通信协议命令分为两种:响应命令和请求命令,对于的格式分别为:26H 41H 4AH LL(BCD码)ZHH和2AH 41H 4AH。

SCL-61D超声水表的BCD码数据具有13字节,字节内容如表1所示。

数据校验字节为ZZH,即不包括命令字节和控制字节的其他所有数据内容按字节进行累加,不计超出FF的数值。

S7-200型可编程控制器的特色存储器设置要按照超声水表的通信参数进行设定。首先,选择S7-200的通信端口为自由口通信模式,并在其SMB30控制器中设定校验位、数据位、波特率和协议。根据上述超声水表通信协议的“响应”和“请求”命令格式可知,超声水表数据响应的前提是S7-200型可编程控制器发出请求命令。也就是说PLC下次发出请求命令和超声水表做出响应这段时间内容,通信总线空闲,因此,将空闲线检测设为S7-200型可编程控制器接收数据的开始条件。使用字符间隔定时器设定数据接收的接收条件,即接收到数据字符后,字符间隔定时器重启,如果SMW92设定的时间小于一个字符结尾至下一个字符结尾的间隔时间,则S7-200停止接收数据,即接收结束。接收消息参数的设定在SMB87存储器上完成,空闲总线时间(ms)在特殊存储器SMW90上设定完成,即空闲总线时间后接收第一个字符即为新数据接收。SMW92特殊存储器设定字符间隔超时时间(ms),如果超时则停止接收数据。最大字符数在特殊存储器SMB94上进行设定,即255字节。如表2所示。

2 自由口通信程序设计

SCL-61D超声水表与S7-200型可编程控制器自由口通信流程分为四个步骤:

步骤一:将S7-200型可编程控制器的PORT0口设定为自由口通信模式;

步骤二:将自由口通信模式参数进行初始化,即在PORT0端口的自由口特性存储器中写入通信参数,并设定数据发送的中端条件,并将接收SCL-61D超聲水表数据的开始、结束条件规定好;

步骤三:向SCL-61D超声水表定时执行XMT发送指令,即将S7-200型可编程控制器发送数据请求的命令输送给超声水表;

步骤四:执行XMT发送指令中端程序,并执行RCV接收指令程序。数据接收完成后,S7-200校验接收到是水表响应数据,然后等待下一次执行XMT发送指令。

自由口通信模式程序流程,如图1所示。

RCV指令(接收)和XMT指令(发送)为SCL-61D超声水表与S7-200型可编程控制器实现自由口通信的核心指令。XMT指令的程序编写和参数设定比较简单,用于在自由口模式下通过PLC的PORT0口发生数据。XMT指令数据缓冲区的第一个字节数据即为VB200中的“3”,即指明了发送数据的字节数。VB203中的“16#4A”、VB202中的“16#41”和VB201中的“16#2A”即为信息字符。在S7-200型可编程控制器的VB201~VB203中保持通过自由口模式向SCL-61D超声水表发送的数据请求指令,即2AH 41H 4AH,该指令是通过执行XMT来完成的,具体程序如下:

LD SM0.0

MOVB 3, VB200

MOVB 16#2A, VB201

MOVB 16#41, VB202

MOVB 16#4A, VB203

PLC主程序中,通过内置定时器通过设定时间间隔向SCL-61D超声水表发送数据请求,程序如下:

LD T100

EU

XMT VB200, 0

发送XMT指令后,需要判断数据的发送情况,可利用发送完成中端来实现该功能。在S7-200型可编程控制器的PORT0端口中选用中断事件9来产生中断,通过执行ATCH中断连接指令开启相应的INT-1中断程序,程序如下:

ATCH INT_1: INT1, 9

ENI

当XMT指令发送数据接收请求指命令完成后,数据缓冲区的最后一个字节发送完成后产生中断,并进入INT-1中断程序,该程序可通过自由口接收RCV指令,完成超声水表的数据接收响应。PLC的XMT指令请求完成后,即进入等待超声水表响应阶段,当S7-200的数据缓冲区接收到超声水表的响应数据后,通过自由口RCV接收指令开始接收水表的数据并进行保持。程序如下:

LD SM0.0

RCV VB300, 0

XMT发送指令和自由口RCV接收指令的参数设置相同,RCV指令数据缓冲区的最大字节为255,VB300表示第一个接收的字符,如表3所示,其余为接收的数据字符。

按照SCL-61D超声水表的通信协议,在S7-200型可编程控制器接收完数据后进行校验。如果校验后,接收的数据与水表通信协议一致,则说明数据接收正确,否则,S7-200接收的数据存在问题,需抛弃该数据,等待水表的下一次数据响应,并进行接收。

S7-200型可编程控制器中超声水表的响应数据,如图2所示。

超声水表上显示的瞬时、累计流量,如图3所示。

由此看出,图2中VB304~VB307的数据缩小千分之一后得到0.105,与图3瞬时流量0.105 m3/h一致;图2中VB308~VB311的数据缩小十分之一后得到9 432,与图3累计流量943.2 m3/h一致。因此,本文设计的基于自由口

模式的SCL-61D超声水表与S7-200型可编程控制器通信程序,可靠性较高、数据具有实时性、通信安全。

3 总结

针对SCL-61D超声水表自身通信协议原因,无法被S7-200可编程控制器直接读取数据的问题,本文提出了利用S7-200自由口通信模式实现与超声水表进行数据通信的设计思路,解决了通信协议不兼容问题。该方法无需更换PLC或超声水表等设备,只需改写PLC程序即可实现。该技术具有稳定性高、实时性好、安全可靠、成本低等特点,为S7-200型PLC与智能仪器仪表的数据通信提供了一种可靠的方法。

参考文献

[1] 江宁,宋亚林.基于S7-200PLC的自由口通信在卷板机控制系统中的应用[J].重型机械,2018(1):81-86.

[2] 侯艳,叶昊,李宗睿,等.基于S7-200自由口的无线数据传输系统的实现[J].北华航天工业学院学报,2017,27(5):6-8.

[3] 孙晋璐.基于自由口通信的远程供水系统通信程序设计[J].煤矿现代化,2016(6):74-76.

[4] 沃玉报,王玉明.S7-200PLC自由口通信在监控系统的应用[J].水利建设与管理,2016,36(1):65-68.

[5] 李静,董斌,熊联友,等.基于西门子S7-200 PLC自由口通信的气体分离实验台测控系统[J].低温工程,2015(6):6-10.

[6] 韩建龙,郭凯.西门子S7-200PLC自由口串行通信应用分析[J].山东工业技术,2015(14):113.

(收稿日期: 2019.08.27)

猜你喜欢

可编程控制器
浅谈树脂砂造型线的电气控制
浅析可编程控制器在港口起重设备中的运用
谈机械制造系统中的安全控制系统
基于CDIO模式高职“可编程序控制器”实践教学研究
基于可编程控制器的现代仓储堆垛机控制研究
利用三菱PLC实现煤制氢变压吸附的控制
基于PLC和触摸屏在切断机控制系统中的应用
一种新型自动分切机的设计