{PLC,IOT}>ESP32 modbus支持

         处理完交叉编译工具链、链接器内存布局、ELF加载、动态库链接等古老、晦涩的技术整合以后,{PLC,IOT}>ESP32初步把FreeRTOS改装成为对应用程序友好一点的平台,“为工业互联网和数字化工程提供便利工具”的千里之行,其实也只是迈开了第一步,还有大量的成熟技术整合工作要逐步开展。

        modbus 的功能PLC实现互联互通的基本途径,ESP32 的IDF里面也有modbus的组件,而且挺完善的,有ASCII、RTU和TCP模式,MASTER和SLAVE都支持,都挺成熟。整合之前,不如看看现状。

       传统的PLC开发平台,可能是因为逐步演化的原因,提供了梯形图的程序设计输入平台,就什么都用图。当自己即做使用者又做供应者的时候,能体会到使用者的无可奈何:modbus的设置参数不少,导致图块比较大;设置一个参数细项就要画图连线;modbus 其实也就一个平台基础功能,最多用的是复制粘贴(套用原来的设计参数),图块的复制粘贴相对来讲麻烦一点。设身处地考虑问题,有得选的化,我想要一个字符串设置完所有参数。

       OpenPLC的设计基于IEC 61131-3,软件的模型参考了IEC 1131-5的模型。

         配置项最为一种相对独立的软件元素存在,就不用和设计文件掺和在一起了。这种做法体现在 OpenPLC 的项目配置页,例如:

        这种和业务功能关系不大的配置项独立处理的做法,比较方便项目的套用。我们将以OpenPLC 的项目组织方式整合modbus功能。

        MODBUS_CONFIG@为起始的字符串(不区分大小写,内部程序全部按大写处理)将被解析为 modbus 的配置项。基于 RS485接口的modbus配置 格式定义为:COM[a,b,m,d,s,c,t],          

配置项分别是:

a ——从机地址                 (必填)

b ——波特率                    (必填)

m ——模式                       0RTU1 ASCII    (选填,默认是0

——数据位                 (选填,默认是8

——停止位                  (选填,默认是1

c —— 校验位                   (选填,默认是无(0  奇校验(1 偶校验(2))

 t —— 超时时间(单位是毫秒)  (选填,默认是 100毫秒)

例如:

MODBUS_CONFIG@COM:[34,115200] 从机地址是34,波特率是115200,其他是默认值

MODBUS_CONFIG@COM:[34,115200,0,8,1,0,300]    超时时间为300毫秒

        基于TCP的modbus-tcp的配置定义为:TCP[u,p]  其中 u 表示设备的标识码(必填),p表示TCP端口号(选填,默认值是 502)

MDB_REG@为开始的字符串将被解析为modbus的寄存器配置,格式为:MDB_REG@REGN[VN, VP(s)],其中:

REGN——数字,为寄存器组的起始地址,以1 递增,范围是 0~512。

VN     ——PLC变量名称,以该变量的存储单元映射到modbus寄存器(16bit

VP(s) ——VPPLC变量名称,s是数字,以该变量的存储单元偏移s字节映射到modbus寄存器(16bit

没有找对对应变量的寄存器定义为无效定义,不会产生任何作用。

例如:MDB_REG@0:[X0,X1,RPM,RPM(2)],表示地址为0的寄存器组的映射配置,0:X0,1:X1,2:RPM低16位,3:RPM高16位。

       基于RS485的modbus只有一项有效;modbus-tcp的配置,只要端口不重复,允许多项配置;寄存器的配置可以有多项(适应地址不连续的情况) 。

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值