咨询电话

ENGLISH0755-88840386
新闻中心

咨询电话

0755-88840386
您的位置:首页 > 学习专题 > 专业技术专题 > 工业自动化称重仪表>详情页

Modbus协议在皮带秤计量系统中的应用

发布时间:2021-04-08 14:18:22 |来源:网络转载

重钢股份公司下属的铁前各工序,比如物运、焦化、烧结、球团、炼铁都是采用皮带秤计量作为各工序成本核算的依据。为了保证计量数据的准确性,同时又基于硬件、软件投资利润率和性能价格比的考虑,对各工序皮带秤计量建立了一个数据釆集网络,通过Modbus通讯协议直接读取各称重仪表数据,完成各种物资重量数据釆集,生成计量报表。通过该系统可以实现各工序原料、产量的准确计量,满足工序成本核算的需要,为优化各工序生产提供数据支持。同时,对各工序皮带秤要安装视频监视,为计量数据提供视频依据。
1网络配置
钢铁生产线铁前生产工艺包島物商储运、焦化、烧结、球团和炼铁工序。矿石、原辅料的转运和烧结矿、球团矿、焦炭、焦末等的转运都要通过皮带秤计量,核算各工序的生产成本。
由于各工序区域分散,皮带秤安装位置分散,要保证工作效率就需要建立一个计量数据釆集网络。该网络釆用主从式点对点的通讯方式,由18台皮带秤称重仪表(比如BW500)和1台PC机构成。根据皮带秤安装位置,将网络上的18台设备分成了3条RS485总线,每条RS485总线分别接入串口服务器,串口服务器的RJ45接口通过双绞线与上位机网卡相连。上位机编程采用Modbus通讯协议直接读取称重仪表中的数据,釆集后将数据送入计量管理系统。同时,现场视频通过数据光端机将视频信号传入视频编码器,远传后,通过解码器显示出来。数据采集原理如图1所示。皮带秤计量系统网络连接如图2所示。

数据采集原理图

皮带秤计量系统网络连接图

2系统功能
该系统针对钢铁行业铁前工序皮带秤建立了一套数据釆集网络,上位机通过ModbusRTU协议读取各条RS485总线上的皮带秤称重仪表中的计量数据,并及时将读取的计量数据传递给计量管理系统,生成计量报表,同时,通过实时计量数据,可以对皮带秤的运行状况进行有效监控,及时发现设备故障及时处理,为计量数据的准确性提供了保障。该方式与传统的皮带秤计量统计方式相比,保证了计量数据的准确性。传统皮带秤计量,其中一种方式是通过称重仪表将重量信号转换成电流信号送进PLC模板,通过积分计算出腥数据;另一种方式麺过皮带秤称重仪表脉冲信号的累积计量数据。由于第一种方式没有考虑补偿因素,其误差较大;第二种方式受称重仪表到PLC距离的限制,距离太远时,传递的计量数据存在较大的误差,而该系统通过直接读取称重仪表上的计量数据,可以保证计量数据的准确性。
铁前工序皮带秤安装位置分散,系统根据皮带秤的分布情况,建立了3条RS485总线,分别接入串口服务器,完成串口在PC机中的映射,实现RS485到RS232的转换。实际读数时,对3个串口所挂设备分别读数。在串行通讯中,主要是借助VB开发平台下的MSComm,Timer控件来实现,计量画面如图3所示。

皮带秤计量画面图

3Modbus通讯协议对系统功能的实现
Modbus通讯协议采用主从工作方式,允许1台主机和多台从机通信。每台从机地址由用户设定,地址范围为1~255.通信采用命令/应答方式,每一种命令帧对应一个应答帧。命令帧由主机发出,所有从机都将收到报文,但只有被寻址的从机才会响应相应命令,返回相应的应答帧。
图4是一个完整的主从査询一回应周期。如果报文中寻址地址为0,则被视为全局广播,所有从机都把它当一条命令执行,不返回应答帧。

完整的主从査询一回应周期图

3.1Modbus通讯协议
Modbus通讯协议有两种传送方式,RTU方式和ASCII方式。
ASCII模式:当控制器或智能仪表在Modbus网络上以ASCII模式通信,在消息中的每八比特字节将作为2个ASCn字符被发送。这种传送方式的主要优点是字符发送时间间隔可达到1s,而不发生错误。
RTU模式:当控制器或智能仪表在Modbus网络上以RTU模式通信,在消息中的每八比特字节包含2个4bit的十六进制字符。这种传送方式的主要优点是相对于ASCII模式,RTU模式表达相同的信息需要较少的位数,且在相同通讯速率下具有更大的数据流量。在通常情况下,一般工业智能仪表都是釆用RTU模式的Modbus规约。本文所使用的称重仪表BW500、ICS-300均支持ModbusRTU通讯模式。
3.2ModbusRTU消息帧格式
使用RTU模式时,消息发送至少要以3.5个字符时间的停顿间隔开始(如图5中的Tl—T2—T3—T4所示)。传输的第一个域是设备地址,可以使用的传输字符是十六进制的0~9,A~Fo网络设备不断侦测网络总线,当接收到第一个域(地址域),每个设备都将进行解码,以判断是否是发给自己的。在最后一个字符传输之后,一个至少3.5个字符时间的停顿标定了消息的结束,一个新的消息可在此停顿后开始,整个消息帧必须作为连续的流传输。如果在帧完成之前有超过3.5个字符时间的停顿时间,接收设备将刷新不完整的消息,并假定下一字节是一个新消息的地址域。同样地,如果一个新消息在小于3.5个字符时间内接着前一消息开始,接收的设备将认为它是前一消息的延续。这将会导致一个错误,因为在最后的CRC域的值不可能是正确的。典型的RTU模式的消息结构如图5所示。

RTU模式的消息结构图

3.3主机通讯软件的设计
皮带秤称重仪表BW500、ICS-300都支持ModbusRTU协议,仪表中的信息包含动态信息、查询信息和控制信息。该系统主要是完成对计量数据和设备运行状态信息的釆集,上位机釆集数据时,主要是釆用轮巡的方式,由于皮带秤分布在铁前物运、焦化、烧结和球团各工序中,比较分散,如图1所示,将18台皮带秤划分成3条RS485总线,分别接入串口服务器,在PC机上安装串口映射软件后,针对使用的串口釆用周期性轮巡的方式采集称重仪表的数据。
3.3.1MSComm控件与串行通信
从称重仪表RS485接口传输的信号通过串口服务器后,完成了从RS485信号到RS232信号的转换。通过主机上串口服务器端口映射软件的串口映射,实质上主机中的通讯软件就是对RS232通讯端口进行编程。使用多个通讯端口时,就需对每个端口进行通讯编程。本文中使用了3个串口。
主机通信软件釆用Windows环境下的VB6.0进行编程。
VB6.0与Windows系统有着非常完美的接口,VB6.0提供了一个非常方便的MSComm通信控件。应用程序嵌入MSComm通信控件,通过MSComm通信控件提供的事件驱动或查询方式进行串行通信管理。
3.3.2编程关键点
Modbus通讯协议规范:起始符+设备地址+功能代码+数据+校验和+结束符。通过协议规范不难看出,“校效和”在整个规范中非常重要。RS232通讯格式里的奇偶校验方式并不能保证每个字符都正确,所以,需要把所有字符的值按照某种规律计算,将计算得到的字符(校验和)传给接收方。接收时,再把接收到的字符值按照某种规律计算,将得到的字符与发送方传送过来的校验和字符进行比较——如果相等,就算接收正确了。
3.3.2.1实现校验
ModbusRTU通讯方式的"校验和”,即CRC校验有两种方法:计算法和查表法。计算法就是依据CRC校验码的产生原理来设计程序。其优点是模块代码少、修改灵活、可移植性好;其缺点是计算量大。而査表法的优缺点正好与计算法相反,因为对于固定字节CRC校验计算的多项式因子,其CRC值是固定的,因而,釆用查表法可以简化计算过程、节省应答时间、提高通信效率。本文采用的是计算法,计算步骤如下:
参与CRC计算的是设备地址、功能代码和数据。①设置CRC寄存器,并给其赋值FFFF(十六进制);②将参与校验的第一个字节与16位CRC寄存器的低8位进行异或,并把结果存入CRC寄存器;③CRC寄存器向右移1位,MSB补0,移出并检査LSB;④如果LSB为0,重复上一步;如果LSB为1,CRC寄存器与多项式码A001(十六进制)相异或;⑤重复③和④,直到8次移位全部完成,此时第一个字节数据处理完毕;⑥重复②~⑤,直到所有字节数据全部处理完成;⑦)最终CRC寄存器的内容即为CRC值;⑧发送时,先发CRC寄存器低字完成对计量数据和设备运行状态信息的釆集,上位机釆集数据时,主要是釆用轮巡的方式,由于皮带秤分布在铁前物运、焦化、烧结和球团各工序中,比较分散,如图1所示,将18台皮带秤划分成3条RS485总线,分别接入串口服务器,在PC机上安装串口映射软件后,针对使用的串口釆用周期性轮巡的方式采集称重仪表的数据。
3.3.1MSComm控件与串行通信
从称重仪表RS485接口传输的信号通过串口服务器后,完成了从RS485信号到RS232信号的转换。通过主机上串口服务器端口映射软件的串口映射,实质上主机中的通讯软件就是对RS232通讯端口进行编程。使用多个通讯端口时,就需对每个端口进行通讯编程。本文中使用了3个串口。
主机通信软件釆用Windows环境下的VB6.0进行编程。
VB6.0与Windows系统有着非常完美的接口,VB6.0提供了一个非常方便的MSComm通信控件。应用程序嵌入MSComm通信控件,通过MSComm通信控件提供的事件驱动或查询方式进行串行通信管理。
3.3.2编程关键点
Modbus通讯协议规范:起始符+设备地址+功能代码+数据+校验和+结束符。通过协议规范不难看出,“校效和”在整个规范中非常重要。RS232通讯格式里的奇偶校验方式并不能保证每个字符都正确,所以,需要把所有字符的值按照某种规律计算,将计算得到的字符(校验和)传给接收方。接收时,再把接收到的字符值按照某种规律计算,将得到的字符与发送方传送过来的校验和字符进行比较——如果相等,就算接收正确了。
3.3.2.1实现校验
ModbusRTU通讯方式的"校验和”,即CRC校验有两种方法:计算法和查表法。计算法就是依据CRC校验码的产生原理来设计程序。其优点是模块代码少、修改灵活、可移植性好;其缺点是计算量大。而査表法的优缺点正好与计算法相反,因为对于固定字节CRC校验计算的多项式因子,其CRC值是固定的,因而,釆用查表法可以简化计算过程、节省应答时间、提高通信效率。本文采用的是计算法,计算步骤如下:
参与CRC计算的是设备地址、功能代码和数据。①设置CRC寄存器,并给其赋值FFFF(十六进制);②将参与校验的第一个字节与16位CRC寄存器的低8位进行异或,并把结果存入CRC寄存器;③CRC寄存器向右移1位,MSB补0,移出并检査LSB;④如果LSB为0,重复上一步;如果LSB为1,CRC寄存器与多项式码A001(十六进制)相异或;⑤重复③和④,直到8次移位全部完成,此时第一个字节数据处理完毕;⑥重复②~⑤,直到所有字节数据全部处理完成;⑦)最终CRC寄存器的内容即为CRC值;⑧发送时,先发CRC寄存器低字节,后发CRC寄存器高字节。
MSB是MostSignificantBit的缩写,意为最高有效位;LSB是LeastSignificantBit的缩写,意为最低有效位。通常,MSB位于二进制数的最左侧,LSB位于二进制数的最右侧。
主机发送查询命令或接收从机应答数据时,校验码的计算是通过调用函数Chr_crc()实现的,函数Chr_crc()放在程序模块中。
3.3.2.2实现周期性轮巡发送
为T保证主机不断地将查询命令下达到各个从机,对每条RS485总线即每个使用的COM串口,程序中使用1个定时器控件Timer1,将Timer控件的间隔属性设置为100mso在定时器的Timer事件过程中写入主机向1台从机发送查询信息。这样,每隔100ms调用一次子程序,即主机向1台从机完成一次命令发送。
如果主机是对各个从机的同一个数据信息进行查询,那査询信息帧的命令内容是完全相同的,除了从机地址码不同外,其格式基本相同。发送命令子程序流程图如图6所示。

发送命令子程序流程图

具体代码如下:
3.3.2.3判断CommEvent事件实现循环接收
主机接收从机的响应数据时,通过判断CommEvent事件实现数据的循环接收。对于固定信号的智能仪表或控制器,当査询信息确定后,返回的数据格式是固定的,为数据接收解析提供了固定方式。
具体代码如下:

仪表具体代码图
33.2.4窗体载入事件过程
窗体载入事件FormLoad在程序刚开始时被调用,负责设置通信端口参数,启动定时器Timerl.主要程序代码如下:

仪表主要程序代码图
仪表主要程序代码图

4结束语
在该数据釆集系统中,共18台皮带秤称重仪表。根据皮带秤的分布情况,将18台设备分别挂在了3条RS485总线上,每条RS485总线分别接入串口服务器。通过串口映射,软件中使用了3个串口COM1,COM2,COM3分别对3个串口编写通讯程序读取数据,所选用的传输波特率为9600bps,在PC机上每隔1s更新一次。在实际通讯过程中,可根据工业现场具体情况调整传输波特率和轮巡周期。
本文中介绍的通信软件已被应用于皮带秤计量系统中,实践证明,该系统能够正常运行,上位机与下位机的通信稳定可靠,软件使用方便,保证了计量数据的准确性,实现了皮带秤的远程无人值守计量,为公司各工序成本核算提供了准确的数据。

作者:邹剑峰

 

深圳市卓禾仪器有限公司是一家专门从事称重仪表和全自动包装码垛生产线的研发及生产的高新技术企业,所生产的JY500系列称重显示控制器(包括配料秤仪表、皮带秤仪表、包装秤仪表、重量变送器等)高速高精度,使用寿命长。卓禾仪器有十数年的现场校验经验,在业内有良好的口碑,且有专门的售后工程师帮忙解决产品使用过程中遇到的技术问题,客户可以放心省心顺心的使用我司的产品。如果对我司的产品感兴趣,欢迎咨询。

 

分享到