ST语言在DL645-1997通讯中的应用
2020-02-03张德伟皮良年
张德伟 皮良年
(中海化学湖北大峪口化工有限责任公司 湖北省荆门市 431900)
1 引言
湖北大峪口公司JX-300XP DCS 系统与110kV 变电站智能电表的多表通讯,基于DL645-1997 通讯规约[1]的智能电表与浙江中控DCS 系统通讯网络的组建,和AdvanTrol-Pro 软件图形化组态[2]程序设计的应用。
2 硬件网络
DCS 中控室与公用工程110KV 变电所分属两个不同部门,中控调度人员无法实时了解公司正常生产用电量。为了以最小的成本解决该问题,我们利用中控系统XP248 卡件中的485 通讯功能,再新增一对485 串口光纤收发器,利用原有的两部门间的通讯光纤组成远距离通讯线路。通讯结构如图1 所示。
浙江中控XP248 多串口多协议通讯接口卡[3],其功能是将用户只能系统的数据通过通讯的方式连入DCS 系统中。
龙电DTSD51 型三相四线电子式多功能电表,该智能电表通讯采用基于RS-485 的DL645-1997 通讯规约。通讯设置:波特率:1200;数据位:8 位;奇偶校验:无;停止位:1。DL645-1997 通讯规约请求报文:FE 68 99 56 10 00 00 00 68 01 02 53 C3 CS 16 表示读取表号为105699 的反向有功总电能,FE 为前导字节以唤醒接收方。响应报文:68 99 56 10 00 00 00 68 81 01 33 44 55 66 CS 16(CS为校验值)。
3 组态程序
3.1 主通讯程序图形化组态
图2 为DL645-1997 协议电能表通讯主程序,GW_SETCOM 为串口通讯参数设置模块。GW_SNDRCV 为实现串口的发送和接受功能,首先将SndBuf 缓冲区的数据发送出去,然后将接受到的数据存放到RcvBuf 缓冲区。
3.2 ST_SNDMSG自定义编程
AdvanTrol-Pro 软件图形化组态中编写的自定义程序ST_SNDMSG。VAR_INPUT 和VAR_OUTPUT中分别定义了ST_SNDMSG 功能块的输入输出端接口。程序中将请求报文赋值给临时变量ch:buff 并进行CS 校验,再将校验结果值赋值到CH[13]后发送到接受缓冲区。ST_SNDMSG 程序如下:
图1:通讯结构图
图2:主通讯程序
3.3 ST_SNDMSG自定义编程
AdvanTrol-Pro 软件图形化组态中编写自定义程序ST_RCVMSG。程序将读取到响应报文数据进行校验,再将数据项的4字节数据先做减33 的运算,再做浮点转换运算,并将结果赋值给变量data。ST_RCVMSG 程序如下:
4 结束语
综上所述,通过ST 语言自定义编程实现采用DL645-1997 通讯规约的智能电表与浙江中控JX-300XP 系统通信,也为以后各类不同协议设备与浙江中控DCS 通讯编程提供参考与帮助。