0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

可配置Modbus网关 嵌入式设备联网解决方案

卓岚物联 来源:maggie602451 作者:maggie602451 2023-05-31 14:14 次阅读

1.概述

可配置Modbus网关可以预先配置Modbus RTU端的设备的地址、功能码和寄存器列表,并存储到网关内部。网关会自动采集这些配置的RTU设备的数据,然后映射到连续的Modbus TCP寄存器地址,从而允许Modbus TCP端一次性读取所有的设备的不同寄存器的数据。它的这种地址映射功能是对普通的Modbus RTU转Modbus TCP的Modbus网关的补充。

卓岚ZLAN5143、ZLAN7144、ZLAN7146、ZLAN5207M、ZLAN5407M等都支持可配置Modbus网关功能。其中ZLAN5143需要固件版本1.579及以上版本,配合ZLVircom5.15及以上版本来使用。7144需要固件版本1.491及以上版本。卓岚可配置Modbus网关简称为“ZLMB网关”。

可配置Modbus网关具有如下的优点:

1.指令合并:可以将分散的不同的站地址、寄存器映射到同一片寄存器。这样Modbus TCP端可以用一条指令采集所有数据,而不是分为几条指令分别去采集,实现了Modbus TCP端的传输效率。

2.预先采集:虽然之前的“存储型Modbus”可以自动采集一些数据,但是自动采集是在Modbus TCP端查询第一条指令开始的,所以第一条指令本身的返回数据还是需要等待串口的信息的返回。而可配置Modbus网关的自动采集是从网关上电就开始,第一条指令仍然可以快速应答。

多主机支持:可以支持多台Modbus TCP客户端连接上读取网关数据。

4.支持写指令:目前对于重新映射过的寄存器地址,Modbus TCP端不仅可以使用重新映射的地址读到数据,而且可以向这个重新映射的地址使用05和06指令写入数据。

5.支持任意长度读取:ZLVircom配置工具会显示RTU端的寄存器地址和TCP端的寄存器地址的映射关系。Modbus TCP端不仅可以整片读取寄存器和单个读取寄存器,而且可以任意长度来读取合法地址和长度的寄存器内容。

6.支持离线提示:当某个RTU设备从RS485总线上离线后,从Modbus TCP这端查询到的数据将全部变为0,提示设备的离线。

7.支持丢失重发:由于RS485总线容易存在干扰,假如第一次查询指令没有应答,则网关会再发送一条指令,并等待超时时间,如果确认第二次也没有应答才认为设备离线。通过ZLVircom可以设置第一次发送的时间和第二次超时应答时间。

8.支持大量设备和寄存器:目前支持100条RTU查询指令和500个寄存器数量,同时被访问。

2.简单例子

2.1.RTU采集要求

这里以ZLAN5143为例来介绍,首先确认固件版本为1.579及以上版本, ZLVircom为5.15及以上版本。

假设ZLAN5143的RS485下面接了2个Modbus RTU设备,需要采集的信息如下:

记录编号 从站地址 功能码 寄存器地址 长度
1 1 3 2 4
2 2 1 5 9
3 3 3 2 4

现在需要ZLVircom进行配置,实现可以配置Modbus网关。

2.2.ZLVircom配置

运行ZLVircom,进入设备管理点击搜索设备选择一个需要配置的设备点击编辑设备点击下面“固件和配置”按钮,弹出如下对话框:

图 1进入ZLMB配置方法

这里选择“网页目录下载”,并且点击“…”,选择一个之前新建的空目录,用于存放配置信息。然后点击“ZLMB网关”按钮,弹出如下对话框:

图 2可配置Modbus网关设置列表

点击“添加”按钮可以逐条添加表1的RTU指令。这里需要注意的是网关会将Modbus TCP这端的寄存器地址从0开始自动按顺序增加。所以为了让同一个功能码的指令可以一次性分到同一个区域,应该将相同功能码的指令连续添加。也就是将表1的记录编号1和记录编号3放在一次,而编号2放在最后。添加的3个图如下:

图 3表1的编号1 RTU指令的配置

对于编号1的RTU指令的配置对话框解释如下:

1.记录编号:这个是系统根据添加的顺序自动增加编号,不可修改。不一定和表1一致。

2.从站地址:该RTU指令的RTU端从站地址。

3.Modbus功能码:该RTU指令的功能码。

4.寄存器起始地址:RTU端指令的寄存器开始地址。

5.寄存器长度:RTU端指令的寄存器查询长度。

6.串口轮询间隔:这个间隔是网关正常发送查询指令后等待应答返回的时间。也是轮询的速度。所有RTU指令的这个参数是一样的,如果不一样取最大者。

7.超时应答时间:这个时间是在正常发送查询指令接收不到应答时,立刻发送第二条查询时的等待应答返回时间。所有RTU指令的这个参数是一样的,如果不一样取最大者。

8.支持06或者05写指令:勾选这个选项将可以支持Modbus TCP端对RTU设备的数据的改写。若不需要改写则不要勾选,因为勾选,会额外增加内存和计算量开销。

9.Modbus TCP寄存器地址:这个地址是系统自动按照顺序计算的,Modbus TCP端只要按照这个起始地址读取即可得到这条RTU指令获得的数据。这个参数是地址映射的关键信息。

确定后,再次点击“添加”,添加表1编号3的指令:

图 4表1的编号3 RTU指令的配置

这里看到Modbus TCP寄存器地址自动增加到4。说明两条指令合并的寄存器从0~7,整个寄存器范围都可以一次性读取。

添加表1编号2的指令:

图 5表1的编号2 RTU指令的配置

这里系统自动分配的Modbus TCP地址为01指令的128地址(十进制)。最后列出的表格是:

图 6 RTU和Modbus TCP寄存器映射关系表

这个表格列出了RTU和Modbus TCP寄存器映射关系。也清楚的展示了,如果用户需要获得RTU端的某个设备的数据需要用什么功能码的什么寄存器地址去读取数据。

例如需要读取从站地址2功能码1、寄存器地址5、长度9的数据可以使用Modbus TCP指令的任意从站地址、功能码1、寄存器地址128、长度9来读取。 最后点击“保存并返回”来保存设计,如果点击“不保存返回”则放弃设计。同时可以通过选择某一行点击“编辑”进行编辑,点击“删除”删除某个RTU指令。

点击“保存并返回”后回到“卓岚网页/程序下载工具”界面。在这个界面点击“下载按钮”。下载完毕后弹出“传输完毕…”按钮,然后点击确定,设备将会自动重启,并加载这个配置。

2.3.数据测试

现在使用串口模拟这个RTU设备,并进行测试,RTU端模拟参数如下图。

图 7 模拟表1的3个RTU设备

然后将ZLAN5143连接到这个计算机串口。假如设备的IP为192.168.0.200,端口4196,Modbus TCP软件连接上这个IP和端口后读取如下的数据。根据映射关系表,应该读取0~7这8个寄存器,功能码为03;应该读取128到136这9个bit性寄存器,功能码为01。

图 8 Modbus读取网关数据

如图所示,可配置Modbus网关实现了站地址1、站地址3这两个RTU Modbus的数据合并,将其合并到寄存器0~7整片区域,实现指令合并功能。 使用SockeDlgTest连接上192.168.0.200的4196端口发送12 34 00 00 00 06 01 03 00 00 00 00指令,立即返回数据。

图 9 预采集效果

如图所示返回时间大约为18ms。这个反应时间比“存储型”Modbus的第一次应答时间要快速很多。 打开多个Modbus TCP客户端可以同时对网关进行数据采集。说明可以支持多主机功能。 在Modbus TCP端修改某个寄存器的值,则在RTU端的数据就被修改,同时也会反馈到Modbus TCP端。这说明发送的05/06单线圈修改和单寄存器修改指令写是支持的。

修改任意长度的寄存器长度读取,例如修改为从01地址开始的06个长度的寄存器内容,同样可以正常读取到Modbus TCP软件中。说明支持任意长度的数据读取。 将Modbus RTU软件关闭或者关闭串口。则Modbus TCP软件中的数据全部变为0,可见可以通过数据全部变为0来反映一个仪表的离线还是在线。 关闭Modbus RTU软件,使用ZLComDebug打开COM口接收数据,可以看到当一条指令没有应答时会重发一次。说明网关具有数据重发功能。

图 10 数据重发功能

2.4.设置离线默认值

图 11 设置离线默认值

设置离线默认值功能,可以可以让设备离线的时候采集到一个特殊的值,例如65535(也就是有符号的-1)。因为之前的默认值为0,有些设备的0是一个可能出现的值,无法区分是离线还是有效数据。

这个离线只要求高字节和低字节一样,即可以设置:v*256+v,其中v≤255且v>=0。 只有第一条记录的设置值是有效的,其它记录仿造第一条记录的参数。这里只看第一条记录的参数还包括:串口轮询间隔、超时应答时间、支持06或者05写指令。

3.其它注意事项

1.某些bit型数据无法合并,如下图,01/02指令的第一个指令的数据长度为9,不是16的倍数。所以无法通过从128开始的地址读取19个来一起读取所有数据。而是应该按照软件给出的128地址读9个,144地址读10个,分别读取。

图 12 Bit数据的连续

2.Modbus TCP的站地址无所谓,一般用01即可。

3.如果发现无法支持05/06指令,请确认设计的时候是否已经勾选05/06支持选项。

4.注意02功能的寄存器是无法被修改的。

5.注意Modbus网关的“转化协议”部分不要选择“Modbus TCP转RTU”,请选择“无”协议。

6.现在可以支持多寄存器写入的15/16指令。但是不要跨区域写入。例如原来的地址为2个寄存器是一起排列的,如果试图跨区域一次写入超过2个寄存器将会出错。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    5097

    文章

    19237

    浏览量

    308995
  • 寄存器
    +关注

    关注

    31

    文章

    5387

    浏览量

    121624
  • MODBUS
    +关注

    关注

    28

    文章

    1836

    浏览量

    77532
  • 网关
    +关注

    关注

    9

    文章

    4670

    浏览量

    51695
  • RTU
    RTU
    +关注

    关注

    0

    文章

    421

    浏览量

    28828
收藏 人收藏

    相关推荐

    干货 智能网关,物联网网关设计大全 精华集锦

    智能网关设电源电路设计  电路图天天读(5):智能网关系统日历电路图设计  物联网智能网关电源电子电路设计图  嵌入式智能
    发表于 09-23 15:51

    【MiCOKit申请】智能家庭网关

    申请理由:最近在做家庭网关的项目,需要考虑良好性能并低功耗的WiFi产品,希望使用本产品,满足项目需求。本人长期工作与嵌入式领域,熟悉STM32开发和树莓派DIY,做过较多基于LwIP的网络解决方案
    发表于 08-11 22:33

    怎么实现嵌入式Modbus/TCP网关的设计?

     本文设计和实现了一种嵌入式协议转换网关,通过Modbus/TCP协议将传统的串行链路通信的Modbus现场总线与以太网相连。
    发表于 06-01 06:10

    亚信AX58200 EtherCAT转Modbus TCP网关解决方案介绍视频

    为何需要使用EtherCAT转Modbus TCP网关解决方案Modbus TCP并非实时性的网络协议栈,资料传输的速度也比较慢;因此,可以利用此EtherCAT转
    发表于 08-23 10:56

    大佬都在看的嵌入式系统解决方案

    、安全,永不死机,且在数据采集、执行效率上都有极大的改善。多年来广泛应用于***、电力、教育、医疗等行业。  一、嵌入式系统解决方案  1、配置  计通嵌入式监控主机采用19英寸标准机
    发表于 11-09 07:56

    BL102嵌入式OPC网关的相关资料推荐

    涨见识了,嵌入式OPC网关BL102可以快速替代OPC软件实现PLC数据采集转OPC了。嵌入式OPC网关是指OPC服务运行于嵌入式硬件上,对
    发表于 12-23 07:30

    嵌入式OPC UA网关与传统OPC软件的区别是什么

    OPC UA协议广泛应用于工业自动化系统中与工业物联网中。本文简述嵌入式OPC UA网关与传统OPC UA软件的区别,分享给读者。嵌入式OPC UA
    发表于 12-23 07:48

    工业物联网网关是什么?工业物联网网关有什么作用?

    控制、支持VPN和防火墙等功能为一体的嵌入式综合性工业物联网网关。工业物联网网关作用介绍  ▶丰富接口、易于部署  支持4G、3G、PPPOE、Wi-Fi网络、LORA、数字IO输入输出、串口终端通信,为
    发表于 01-21 19:00

    基于可配置处理器的嵌入式系统ESL设计需求

    基于可配置处理器的嵌入式系统ESL设计需求 近年来,越来越多的嵌入式系统和SoC开始转向使用可配置处理器技术,这样既可以缩短产品开发周期,又可使设计更加灵活,
    发表于 01-14 09:41 849次阅读

    基于FPGA的嵌入式Linux操作系统解决方案

    的传输。结合FPGA和Linux双方优势,可以很好地满足嵌入式系统设计需求,量体裁衣,去除冗余。本文给出了一种基于Xilinx FPGA的嵌入式Linux操作系统解决方案
    发表于 11-24 17:24 6361次阅读

    基于STM32F417的物联网嵌入式网关的设计

    本文主要介绍了基于STM32F417的物联网嵌入式网关的设计,片上运行μC/OS-II实时系统作为设备管理系统,使用uIP作为TCP/IP网络协议栈,主
    发表于 12-25 14:37 1.1w次阅读
    基于STM32F417的物<b class='flag-5'>联网</b><b class='flag-5'>嵌入式</b><b class='flag-5'>网关</b>的设计

    Dialog高度集成的SMPS嵌入式电源解决方案

    今天的家用电器通常需要嵌入式电源,实现增强的电子控制和用户界面。 Dialog高度集成的SMPS嵌入式电源解决方案结合了最高的效率、最低的成本、和先进的质量。 我们的固态照明(SSL)LED驱动IC
    的头像 发表于 08-12 11:37 3407次阅读
    Dialog高度集成的SMPS<b class='flag-5'>嵌入式</b>电源<b class='flag-5'>解决方案</b>

    联网设计的嵌入式解决方案

    与适合您应用的理想连接协议配对。Microchip Technology Inc. 宣布推出一系列全栈嵌入式开发解决方案,可提供任意数量的此类组合。该产品线范围从用于传感器和执行器的最小 PIC
    发表于 07-27 11:32 975次阅读
    物<b class='flag-5'>联网</b>设计的<b class='flag-5'>嵌入式</b><b class='flag-5'>解决方案</b>

    浅析工业物联网中的嵌入式设备

    工业物联网实施的主要目标是:将端节点和边缘/网关类型的嵌入式设备安全地连接到云后端。
    发表于 11-10 15:15 503次阅读

    联网车载T-BOX系统解决方案_汽车TBOX 嵌入式arm应用-飞凌嵌入式

    联网车载T-BOX系统解决方案_嵌入式arm在汽车TBOX 中的应用,飞凌嵌入式推出基于嵌入式arm技术的核心板在T-Box的
    的头像 发表于 10-27 15:31 3447次阅读
    车<b class='flag-5'>联网</b>车载T-BOX系统<b class='flag-5'>解决方案</b>_汽车TBOX <b class='flag-5'>嵌入式</b>arm应用-飞凌<b class='flag-5'>嵌入式</b>