MODBUS指令库的应用

我才用CPU222与智能仪表自由口通讯,但是对于地址对应有些疑问。
 智能仪表给出了详细的数据帧格式:地址,功能,数据,校验
 但是该仪表的数据存储地址编址是从0000H到9999H的,而200PLC给出的保持寄存器地址编码为40001——49999。咨询过该仪表厂家,没有具体对应关系,就是编码从0000H到9999H的。
 那么我在利用modbus协议库指令进行编程时,地址该如何设置呢?比如我要读取仪表0025H中的数据,我在modbus指令中分别尝试将地址设成0025、40025、40026、40038(十进制)、0037等,在调试结果中都是出现错误码3。
 请教一下,我的问题出在了哪里?

问题补充:
我是尝试用PLC的485口连接20几个仪表的,现在调试时先只连了一个仪表。写了几行最简单的程序来调试。程序代码如下:

 网络1
 LD     SM0.0
 =      L60.0
 LD     SM0.0
 =      L63.7
 LD     L60.0
 CALL   MBUS_CTRL:SBR1, L63.7, 9600, 0, 2000, M10.1, VB100
 网络2
 LD     SM0.0
 =      L60.0
 LD     SM0.1
 =      L63.7
 LD     L60.0
 CALL   MBUS_MSG:SBR2, L63.7, 12, 0, 40038, 1, &VB200, M10.2, VB102

 状态表里监视到的结果为
 VB200 无符号 0
 VB102 无符号 3
 VB100 无符号 0
 SM10.1 位 2#1
 SM10.2 位 2#1

 设置的波特率以及从站地址均正确,请教一下问题的原因。谢谢!
 

最佳答案

用40038应该是可以的。VB102=3表示接收超时,从站无响应。

  第一步是使PLC发出的数据符合通讯侦的格式(仪表的通讯协议),将程序下载后,用串口软件接收PLC发的数据.
  如果串口软件收不到数据,那就检查程序,如果数据不符合格式,那再调整库的输入参数,如果符合侦格式,那看能不能把仪表数据读上来,然后再和所有的仪表连接起来,再调试.
  
  有多少仪表?不用库,自己写通讯程序也不麻烦。
  主站库支持超过9999的保持寄存器地址,地址范围为400004-465536。只需在调用MSG子程序时给Addr赋值即可。

提问者对于答案的评价:
谢谢!

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc354092.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2021年7月5日 上午1:45
下一篇 2021年7月5日 上午1:45

相关推荐

  • 用200测传输带的速度 cpu224

    增量推挽式编码器安装在传输带的主动轴上,程序用的是HSC0,频率块frequence的应用,但是测出的结果Hertz:VD200却不知到底是什么?急用 问题补充:能不能给出具体的算…

    SIMATIC S7-200 2021年7月5日
  • 往PLC数据区,写入数据显示NAN是怎么回事

    我现在用触摸屏来修改PLC的VD200数据区,当用触摸屏的数据输入按钮往PLC写入数据时,监控PLC,看到VD200怎么变成NAN的符合,什么意思呢? 问题补充:我输入的是10.0…

    SIMATIC S7-200 2020年11月1日
  • S7-200通讯,现场电脑能和PLC通讯,加了光纤之后就通讯不上了,未知设备

    S7-200通讯,用RS485转RS232现场电脑能和PLC通讯,加了光纤之后就通讯不上了,电脑PLC不能运行,刷新未知设备。期盼高手解密 问题补充:现场与中控室距离太远,用的光纤…

    SIMATIC S7-200 2020年10月31日
  • 变量存储区

    变量存储区比方说VW0里面存储了一个5,那么使用MOV指令对vw0进行赋值时是不是必须先将里面的数字5移出来了? 最佳答案 直接覆盖了 提问者对于答案的评价:

    SIMATIC S7-200 2017年6月1日
  • s7200与上位机

    想用西门子200的PLC与上位机WINCC6.0连接,请问高手怎么做? 最佳答案 用PC ACCESS 做OPC SERVER,S7-200支持的协议…

    SIMATIC S7-200 2021年7月5日
  • 请高手指点

    本人正在自学S7-200系列PLC并且手中有S7-200 CPU214PLC,EM-231模拟量输入模块和TD-200操作面板,在用到模拟量输入控制PLC位输出时和用TD…

    SIMATIC S7-200 2021年7月5日
  • 通讯接头接线

    自己制作DP通信接头时,除了加终端电阻外,是不是只要引出3,8脚,用两芯屏蔽双绞线就行了?为什么有人所要用四芯的屏蔽双绞线?    &nbs…

    SIMATIC S7-200 2021年7月5日
  • 采样值检测

    用S7-200 PLC和编码器测量液压推杆的速度,采用定时中断0(100ms中断)检测编码器的当前值、前一值,为什么检测到的当前值与前一值总是相等?如何实现在100ms内…

    2017年8月24日
  • MODBUS RTU通信中关于如何将压力温度流量放入数据缓冲区

    从站里 一个压力传感器的压力值为10.0是存在VD1000中的,数据缓冲区是VB0开始的100个字,应该是VB0-VB199。定义缓冲区的VD0(VB0,VB1,VB2,VB3)用…

    2021年7月5日
  • S7-200的最大I/O能力

    S7-200的最大为128 DI/128 DO,是输入加输出总数不能超过128;还是单输入不能超过128,单输出也不能超过128?具体怎么理解,请指点. 最佳答…

    SIMATIC S7-200 2021年7月5日

发表回复

登录后才能评论