西门子plcsmart与仪表modbus通讯怎么写

西门子plcsmart与仪表modbus通讯怎么写,第1张

1、200PLC主站程序第一步初始化,复位modbus库完成位,初始化完成后,启动读写指令m0.1置位

2、网络3,填写从站通讯参数

3、M0.1置位读取从站数据,读取保持寄存器40001-400088个数据根据数据格式写入&VB1000,如4000140002为32位浮点数

4、查看bug

5、读取输入寄存器,读取完成M2.2置位,复位M2,.1

6、M2.2置位,写数据开始,VB3000写入00001中,写完成,M2.3置位,开始读,M2.2复位。

1、目前项目已经在Github中开源

2、主机的相关的框架已经修改完成,初始化、配置Modbus主机相关接口与原有从机接口基本相同;

3、移植主机相关硬件配置与原有从机方式一致,需要修改FreeModbus源码中port文件夹中后缀带_m相关文件;

4、Modbus主机请求主机请求功能目前实现了所有与保持寄存器、输入寄存器、线圈及离散输入相关的功能,并测试通过

5、目前的Modbus主机请求功能是异步模式,后期考虑方便上层调用,可以同时给上层提供同步模式的控制方法;

6、主机的异常处理任务还未添加,只留了接口,后期考虑给上层提供回调接口,相关异常功能上层也能自动做处理;

7、目前最新代码同时支持Modbus主机及Modbus从机两种模式,两者互不干涉,用户可以在/FreeModbus/modbus/mbconfig.h中自行裁剪。

调用modbusrtu主站读写子程序mbus_msg:

error

错误代码:

只有在done位为1时,错误代码才有效

0=无错误

1=响应校验错误

2=未用

3=接收超时(从站无响应)

4=请求参数错误(slaveaddress,modbusaddress,count,rw)

5=modbus/自由口未使能

6=modbus正在忙于其它请求

7=响应错误(响应不是请求的 *** 作)

8=响应crc校验和错误

-

101=从站不支持请求的功能

102=从站不支持数据地址

103=从站不支持此种数据类型

104=从站设备故障

105=从站接受了信息,但是响应被延迟

106=从站忙,拒绝了该信息

107=从站拒绝了信息

108=从站存储器奇偶错误

2、常见的错误:

如果多个mbus_msg指令同时使能会造成6号错误;

从站delay参数设的时间过长会造成主站3号错误;

从站掉电或不运行,网络故障都会造成主站3号错误


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8131102.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-13
下一篇 2023-04-13

发表评论

登录后才能评论

评论列表(0条)

保存