- 收藏
- 加入书签
基于普洛菲斯人机实现PLC和智能仪表通讯
摘要:某地水务公司排水泵站内部分智能仪表使用485串口通信标准与PLC间传输数据,目前存在PLC专用通讯模块损坏后由于配件停产缺失原因引起的通讯故障。转而使用触摸屏来替代PLC专用通讯模块解决多类型智能仪表通讯问题。具体介绍了通过普洛菲斯HMI人机界面和GE PLC,实现把排水泵站内各种不同品牌型号的智能仪表数据通过RS485实现通讯;重点说明了如何利用GP-pro EX4.0软件平台完成脚本设计来采集数据,和GE PLC的proficy9.0软件完成编程实现数据转换。
关键词:排水泵站;人机界面;GE PLC;485通讯
引言
绍兴水务产业有限公司是集供水与排水一体的公司,其中排水泵站规模较大,有68个大型地面泵站和140多个地埋泵站,一共超过200个大小泵站。泵站内10余种仪表需要把数据上传中控,一部分是通过模拟量信号进入PLC,另外的则是MODBUS485通讯传送数据。泵站自控系统目前使用是通用的GE90/30和GERX3I系列PLC,老款90/30PLC系列的通讯模块PCM301已停产多年,因此PLC485通讯模块损坏后配件缺失,多台仪表的通讯成为一个问题。而当前MODBUS 485通讯已成为流行的仪表通讯方式,具有组网简单、通讯稳定抗干扰强、成本低廉还可以减少占用PLC I/O通道资源的优势因此使用485通讯的仪表较多,并且今后使用该通讯方式的仪表会更多。经过研究和多次现场实验,最后使用触摸屏的485串口加其内部脚本编程来替代甚至更好地完成PLC通讯模块的作用,可以实现各种仪表的数据采集和传输。
1 仪表MODBUS485通讯
1.1 RS485接口
RS485是一种典型的串行通信接口标准,接口电平降为-6V 到+6V;它相对于RS232最大优点是可以多机通讯,允许1主多从,一条总线上带多个从机设备;通讯距离和通讯速率大大提高。它采用平衡发送和差分接收方式实现通信:发送端将串行口的TTL电平信号转换成差分信号A、B两路输出,经过线缆传输之后在接收端将差分信号还原成TTL电平信号。由于信号线使用双绞线又是差分传输,所以有很强的抗共模干扰能力。目前泵站内使用的智能仪表都支持RS485串口通信,触摸屏通过自带的485串口引出485总线连接各个仪表采集数据;采用的是两线制半双工模式。
1.2 MODBUS协议
MODBUS协议是一种已广泛应用于当今工业控制领域的通用通讯协议。MODBUS协议使用的是主从通讯技术,即由主设备主动查询和操作从设备;具有标准、开放和支持多种电气接口的优点。MODBUS通讯物理接口可以选用串口(包括RS232、RS485和RS422),也可以选择以太网口。通过此协议,控制器相互之间或控制器经由网络(如以太网)可以和其它设备之间进行通信,因此我们可以把支持RS485和MODBUS协议的不同厂商生产的仪表和控制设备连接成工业网络,进行集中监控。
2 触摸屏数据采集设计及脚本编写
2.1数据采集
使用普洛菲斯触摸屏作为主设备它的串口(RS485)通过485总线连接各个从设备仪表;在触摸屏编辑软件GP-PRO EX4.0上面编写脚本来完成主从设备数据采集。根据每个仪表自身的MODBUS地址和波特率以及MODBUS通讯协议,来给每个仪表建立不同的发送指令函数和接收数据函数,主脚本则不断循环调用这些函数实现数据通讯。这样就可以根据需要自由读取不同品牌和类型的多种仪表到触摸屏的内部寄存器中,然后触摸屏通过以太网和PLC通讯实现触摸屏和PLC之间的地址映射把数据送入到PLC中。
2.2脚本编写
[t:0000]=0_memcpy_EX([w:[PLC1]%R00701]#[t:0000],[w:[#INTERNAL]LS0601]#[t:0000], 40) 从触摸屏内部地址LS601开始写入40个整数数据至PLC内部地址R701。
例:循环调用各仪表函数的主脚本:
[w:[#INTERNAL]LS0200]=0
loop()
{
[w:[#INTERNAL]LS0200]=[w:[#INTERNAL]LS0200]+1
if ([w:[#INTERNAL]LS0200]==1)
{
Call WD1_ADDR
Call Get_WD1
_wait(1)
}endif
… …中间省略
if ([w:[#INTERNAL]LS0200]>=8)
{
[w:[#INTERNAL]LS0200]=0
_wait(1)
}
endif
}endloop
例:读取某品牌流量计的相关脚本函数
[w:[#INTERNAL]LS0100]=0x0B
[w:[#INTERNAL]LS0101]=0x04
[w:[#INTERNAL]LS0102]=0x00
[w:[#INTERNAL]LS0103]=0x0A
[w:[#INTERNAL]LS0104]=0x00
[w:[#INTERNAL]LS0105]=0x04
[w:[#INTERNAL]LS0106]=0xD1
[w:[#INTERNAL]LS0107]=0x61 // 0B 04 00 0A 00 04 D1 61是该仪表通讯协议中读取瞬时流量和累计流量的报文指令,把该8个字节的指令行依次写入触摸屏内部寄存器LS100中。
仪表读取后的数据存储和转换函数
[c:EXT_SIO_CTRL]=0x7 //清除发送缓存器、接收缓存器内容及错误
_strset(databuf0, “”) //清空数据缓存器0
_ldcopy(databuf0, [w:[#INTERNAL]LS0100], 8) //将内部寄存器LS0100至LS0107的8字节数据从临时LS100开始,顺序写入数据缓存器“databuf0”
IO_WRITE_EX([p:EXT_SIO], databuf0, 8) //向外接控制器发送databuf0中的8字节数据
[w:[#INTERNAL]LS0202]=[s:EXT_SIO_STAT]
IO_READ_EX([p:EXT_SIO], databuf1, 9) //在数据缓存器1内接收保存从扩展接口接收的9字节数据
[c:EXT_SIO_CTRL]=0x7 //清除发送缓存器、接收缓存器内容及错误
_dlcopy([w:[#INTERNAL]LS0500], databuf1, 3, 4) //从数据缓存器1提取4字节的数据偏移3后写入到内部寄存器LS0500到LS0503
3 PLC程序设计和编写
由于触摸屏内部寄存器地址LS0601-LS0640已经和PLC 的R701-R740相对应,对于数据结构是长整型的数据处理只需要做数据类型转换为real实型就可以了。但有1种科隆或者肯特的流量计瞬时流量是4字节标准IEE754格式的浮点数。IEEE754标准包含一组实数的二进制表示法。它有三部分组成:1、符号位S 2、指数位E 3、尾数位 F,通过查阅资料其计算规则如下:从二进制到浮点数的计算公式,F=1.M(二进制) 在单精度时算式如下: V=(-1)^s*2^(E-127)*F PLC相应的编程计算如下:
4 结束语
通过人机界面HMI代替PLC485通讯模块的试验,发现该方法实现了更好的效果,信号线先接入HMI串口有独立的对地系统,信号抗干扰力强,并可以在HMI内自由编程,满足各种不同仪表不同通讯协议的情况。目前我们已完成采集上传的仪表有智能电力仪表、流量计表、温湿度表、电子类电表、变压器仪表、变频器数显表等多类仪表,试运行效果良好,并且已经推广到50多个排水生产泵站。
参考文献
[1] 闫友可. 基于RS-485的施耐德PLC与智能仪表串行通讯[A].制造业自动化,2018,40卷:57-59
[2]吴皓月.浅谈RS232和RS485串行通讯[M].中国新通信,2016,20期:3-4

京公网安备 11011302003690号