APP下载

基于JX300XP的Modbus-RTU通信功能块实现方法探究

2021-05-26郑腾飞王思涵

科学与信息化 2021年13期
关键词:组态字节串口

郑腾飞 王思涵

中国核电工程有限公司 北京 100048

引言

随着现代大型工业生产自动化的不断兴起和对控制过程要求的日益复杂,自动化控制系统在工业控制中得到了广泛的应用。现代过程控制系统对于过程设备的开放性和交互性提出了越来越高的要求,目前工业控制所用PLC种类繁多,很多场合需要同一品牌不同型号PLC之间进行通信,或者不同品牌PLC之间也需要进行通信,采用Modbus协议可解决控制系统相互之间、控制器经由网络和其他设备之间可以通信。它已成为一种通用的工业通信标准,有了它可以使不同品牌的控制系统组建成统一的工业网络,完成对自动化控系统的集中监控。

浙江中控JX300XP系统吸收了近年来快速发展的通信技术、微电子技术,应用最新信号处理技术、软件设计技术和现场总线技术,采用微处理器和成熟的控制算法,全面提高了自动控制系统的性能,同时实现多种总线兼容和异构系统综合集成,使各种国内外品牌的DCS、PLC及现场智能设备都可以接入到JX-300XP控制系统中,使其能适应更广泛更复杂的应用要求。

1 modbus通信原理

Modbus是一种串行通信协议,是Modicon公司为实现可编程逻辑控制器(PLC)通信而发表。目前,Modbus已经成为工业领域通信协议的业界标准,并且现在是自动控制系统之间常用的通信方式。Modbus比其他通信协议使用的更广泛的主要原因是其更易于部署和维护且通信距离长。

Modbus允许多个设备连接在同一个网络上进行通信,Modbus协议目前存在用于串口、以太网以及其他支持互联网协议的网络的版本。关于串行连接,有两种方式的Modbus通信,它们在数据格式和协议细节上略有不同。Modbus-RTU通信:在消息中的每个8Bit字节包含两个4Bit的十六进制字符。这种方式的主要在同样的波特率下,可比ASCII方式传送更多的数据,而Modbus ASCII通信是将消息中的每个8Bit字节都分为两个ASCII字符发送。这种方式的主要优点是字符发送的时间间隔可达到1秒而不产生错误[1]。

2 通信结构

基于JX300系统的Modbus通信硬件实现方式有两种,即通过XP244和XP248通信板卡都可以实现modbus-RTU通信,XP244板卡通信驱动程序仅支持通过SCX语言编写实现,而XP248可以通过SCControl图形化语言进行通信组态,AdvanTrol-Pro软件内部集成了通信设置功能块、Modbus-RTU功能块、HostLink功能块等。利用软件提供的各种运算功能块,XP248还可以根据需要将通信回来的数据实现复杂的运算。本文选用XP248卡件来搭建整个通信网络,XP248多串口通信卡是JX300系统与PLC、变频器、仪表等智能设备等通信的接口模块,其支持4路串口的并发工作,每路串口可同时挂接设备数量最多不超过32个。本文重点介绍系统的通信共包含两路,一路与西门子S7-200smart通信读取的数据,另外一路与现场各路仪表进行通信[2]。

图1 系统架构图

3 软件设计

本系统软件程序是基于浙江中控组态软件AdvanTrol-Pro2.80版本编写的。AdvanTrol-Pro是一款支持多种实现方式的图形编程软件,是专门为SUPCON系列产品提供的一套组态工具,依据IEC61131-3标准,为用户提供高效的组态环境,与系统组态软件联合完成对系统的组态,是SUPCON控制系统软件的重要组成部分。

3.1 硬件设置

所选用的XP248与主控制卡都挂载在SCnet网络上,故XP248卡件需要占用SCnet网络的两个IP地址。XP248的组态方法与主控制卡相同,通过拨码开关设置卡件的通信地址、控制周期默认为500ms。卡件冗余方式由用户选择。

3.2 通信点表组态

在XP248下创建通信变量表,用于存放所有挂载设备读出或要写入下挂设备的数据,创建方式与主控点表的创建方式一致,变量分为1字节变量、2字节变量、4字节变量、8字节变量,分别用于存放开关量、半浮点型(JX300特有)、浮点型、累积量数据。XP248通过这些变量与控制系统的服务器进行数据交互。

图2 通信点表组态

3.3 通信程序

通信程序编写分为四个部分,首先是确定各个通信站点的站号,站号可以选择0-254内的任一值作为站号,本项目共包含5个通信站,其中JX300XP下的XP248设定为主站,站号为6,与之通信的s7-200samrtPLC以及3块智能仪表设置为从站,站号分别为2、3、4、5。

其次是通过组态软件提供的GW_SETCOM模块对通信参数进行设置,将与s7-200smart通信的波特率9600、数据位8位、停止位1位,校验方式选择为偶校验、端口号为0号端口,而与另外三块仪表的通信的端口号选择1号端口,其他参数与PLC通信的参数设置方法一致,但参数的设置要与从站的相关参数设定相匹配;理论上可以将本项目的PLC与三个仪表挂接在一个485总线上,综合考虑以往的项目经验,不同类型设备挂接在同一总线由于高电平的误差会导致较多的通信故障产生,由于XP248模块配备了4个总线接口,有足够的余量,故将从站PLC和三块仪表分别挂在不同的总线下,这样将有效的减小调试问题发生的概率。

图3 通信程序

通过GW_MODBUS_RTU主站模块调用ModBus协议,建立从站数据与主站中的自定义变量间的映射关系,所设定的参数包括从站地址Slave、超时时间AckTim、功能号Func、数据起始编号Start及操作的寄存器个数等。该模块支持的Modbus功能包括:读线圈状态、读输入状态、读保持寄存器、读输入寄存器、强迫设置一个线圈、预置单个寄存器、强迫设置多个线圈、预置多个寄存器等8个类别。

最后使用GW_GETMORE功能块将执行后Modbus-RTU命令缓冲区的数据写入到新创建的变量表中,写入变量表是按照从命令缓冲区读取的顺序进行写入的。在此需要设置读命令缓冲区的读取顺序Serial、所要写入的自定义变量类型DataType、自定义变量的起始ID号VarId(自定义量表中的No.号)以及连续存取数量的个数。

该部分组态需严格按照先定义串口的通信参数,然后读取数据到命令缓冲区,最后组取数或置数模块的顺序进行。为方便调试,SCControl软件还提供了丰富的串口命令诊断函数,通过这些功能块可以软件调试环境中,获取串口的收、发次数,命令的收、发次数,命令的通信质量码等信息。

4 结束语

采用本文的方法编写的modbus-RTU通信方式,使用户可以通过功能块的方式实现与智能仪表及PLC的通信,这种方式使通信程序更加简洁易读,在调试过程中更加易于查找问题。在多个项目中应用该方法编制的通信程序稳定可靠,提高了现场调试人员排除故障的效率。

猜你喜欢

组态字节串口
浅谈力控ForceControl V7.2组态软件在自动化控制工程中的应用
ZnF低激发电子态的组态相互作用研究
No.8 字节跳动将推出独立出口电商APP
基于API函数库实现串口数据通信的分析与设计
基于EM9000工控板高性能双串口通信模型设计与实现
No.10 “字节跳动手机”要来了?
组态软件技术现状与发展
MCS—51单片机中的多串口通讯技术的应用
高职“工业组态技术”课程建设探析
人类进入“泽它时代”