Modbus协议在实际应用中的一些格式变化

文章总结了Modbus协议在实际项目中的应用,包括RTU、TCP和ASCII等多种形式,以及在数据采集、转发和监听中的具体实现。还介绍了针对不同场景的协议扩展,如ModbusRTU代理、监听、SOE和Control等功能,以及应对网络不稳定情况的断线缓存机制。
摘要由CSDN通过智能技术生成

工控行业的朋友们都知道,Modbus协议是一种包含了串口、网口的通信协议,莫迪康公司自1979年发表到现在,已经成为工业领域的一种基本通信标准。简单到一个温度传感器的通讯,复杂到平台软件的通讯都在使用它。

Modbus作为一种迄今依然在广泛、灵活使用的通讯协议,行业内的专家对它的解读已经非常细致、专业了。协议格式、数据模型、功能码的含义等不再赘述。本文主要是总结了一下,基于我司Tnbuild数据服务系统,无论是作为南向采集设备的协议,或是作为北向转发到平台的协议,我司在实际项目中,做的一些Modbus协议的格式变化或者协议延伸。

行业很大,应用变化更是层出不穷,以下的总结,也只是管中窥豹。在此也欢迎与行业内朋友们进一步做交流与共享!

序号

自定义名称

数据格式

使用场景描述

1

Modbus RTU

3号命令:读保持寄存器

读取010300000001840A

接收0103020000B844

常规仪表、传感器;

网关做主站,问答方式读取数据

2

Modbus TCP

3号命令:读保持寄存器

读取 000000000006010300000001

接收0000000000050103020000

现场控制设备、plc;

网关做主站,问答方式读取数据

3

Modbus ASCII

3号命令:读保持寄存器

读取30313033303030303030303138343041

接收3031303330323030303042383434

同等点位字符传输量大、传输效率较低,实际使用少;

网关做主站,问答方式读取数据

4

Modbus RTU 代理

和标准Modbus RTU报文格式一样

网关在还原原有RTU通讯基础上,可以根据需要读取对应的数据;

网关做转接和监听,灵活解析需要的数据

5

Modbus RTU 监听

和标准Modbus RTU报文格式一样

读取现场设备主动推送的RTU数据,网关做从站

6

Modbus TCP 监听

和标准Modbus TCP报文格式一样

读取现场设备主动推送的TCP数据,网关做从站

7

MODBUS SOE

标准的modbus报文格式,在程序中增加了寄存器值的判断,以及寄存器值写入的条件

Modbus寄存器1作为SOE使能,读取到该寄存器值为1,将寄存器2的值(报警id)写到寄存器3中,以便综保检测到正确的ID号,再寄存器1中的SOE使能清零

8

MODBUS_Control

标准的modbus报文格式,在程序中增加了寄存器值的判断,以及寄存器值写入的条件

结合转发mqtt平台的下发,程序收到平台控制的阀门开关指令,将现场阀门使能开关打开,等待现场工人使用完关闭阀门后,再将使能开关关闭

9

MODBUS_104Control

在标准modbus的05和06指令上做改动,给一些特定的地址下发不同的值,例:

05 05 05 00 FF 00 8D 72 遥控合闸选择

05 05 05 00 FF 00 8D 72遥控合闸选择返校

05 05 05 80 FF 00 8C 9A 遥控合闸执行

05 05 05 80 FF 00 8C 9A遥控合闸执行返校

实现对保护装置的遥控合闸/分闸选择及执行

10

MODBUS RTU/TCP

字符串采集/转发

字符串的采集和转发相当于把字符转换成ASCII码对应的十六进制,作为数据加在标准的modbus报文里传输,采集支持将设备传过来的ASCII码解析为原字符,转发可以将取到的字符串再以modbus协议传给modbus主站

例:带字符数值的modbus转发报文:

01 03 07 31 32 33 40 61 62 63 79 56

其中标注蓝色的16进制转换为字符串为123@abc

一般会有一些工厂把生产数据存在数据库,就像生产数据里的时间,值班人等,都属于需要传输的字符串,网关可以从数据库取到这些数据,再以别的协议传给平台或主站;同样如果有工厂的生产数据存在一个服务器上,服务器对外通讯是modbus协议,那就可以用网关将服务器中的数据采集到

11

MODBUS TCP

转发断线缓存

Modbus基本的传输指令不变,增加和modbus主站的连接判断,判断连接断开之后执行数据存储(用实时数据库的方式存储为一个db文件),连接恢复之后读取db文件,将数据按照实际需求的格式上送

一些现场环境的网络信号不稳定,或者使用有线网络传输,为避免数据在断网或者网络波动的时候丢失,需要加上断线缓存的功能,网络断开时存储数据,网络恢复后将缓存的数据上送

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值