200 PLC的MODBUS通讯,遇到困难了!

S7 224的PLC做modbus主站,去读写下面的一个做从站的第三方仪表。我通过串口调试工具按照仪表的标准报文格式要求,发送:
“03[站地址] 05[写命令] 00 04 00 [数据段] FF CD A9”,可以正常操作仪表。

但我在PLC程序段中,调用modbus(PORT0口)主站库,却怎么也操作不了仪表,大侠帮忙看看哪里出了问题了。

200PLC程序如下:

LD     SM0.0
=      L60.0
LD     SM0.0
=      L63.7
LD     L60.0
CALL   MBUS_CTRL:SBR1, L63.7, 9600, 0, 1000, V1.0, MB2

LD     SM0.0
=      L60.0
LD     SM0.5
EU
=      L63.7
LD     L60.0
CALL   MBUS_MSG:SBR2, L63.7, 3, 1, 40001, 8, &VB100, V1.2, MB5

我在PLC程序的数据块中,按照串口工具调试成功的报文格式,给VB100~VB107赋初始值:

VB100  16#03
VB101  16#05
VB102  16#00
VB103  16#04
VB104  16#00
VB105  16#FF
VB106  16#CD
VB107  16#A9

大侠帮忙看看哪里出了问题了。谢谢!

最佳答案

从你的报文格式来看:
“03[站地址] 05[写命令] 00 04 00 [数据段] FF CD A9”
这并不是modbus报文:address(1byte)+functiom(1byte)+data(N byte)+CRC check(2byte)。
数据之后是循环冗余校验,其包含2个字节,而你的报文数据之后是三个字节。显然不符。
另外:对于使用modbus协议,几点要澄清:
1、从站地址,不是你要写入数据区的。你使用modbus指令MBUS_MSG,申明了地址(slave),它会知道添加到报文。
2、功能码,也不是你自己添加到数据区的。你使用指令声明RW就已经确定了功能码。
3、modbus报文的循环冗余校验码CRC是自动生成的。支持modbus协议的设备都会自动生成。不需要自己写。若采用计算机与modbus从站通讯则要自己编写。因为计算机本身并不支持modbus协议,需要自行编写符合协议格式的数据流。

提问者对于答案的评价:
已经调通了,谢谢!

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年11月1日 下午4:55
下一篇 2020年11月1日 下午4:55

相关推荐

  • 请教s7200smart,cpusr30支不支持ppi的187.5通信 最佳答案 版本在V2.3以上的支持ppi通讯。如果不是这个版本通过SD卡或者软件自带的升级功能,升级cpu版…

    SIMATIC S7-200 2021年7月5日
  • 普通计数器的最高频率

    请问高手?普通计数器的最高频率是多少?对输入点地址是否有限制? 最佳答案 以S7-200为例,普通计数器一般在中断来统计,或者直接在程序中累加,中断时间最快1ms,程序扫描周期最快…

    SIMATIC S7-200 2020年11月1日
  • S7-200上传程序中的TD200文字内容

    我从S7-200/CPU224中上传了个程序,是用TD200作为操作面板。可在程序中找不到TD200的文字编辑程序。下载到另一个新PLC中,PLC和TD200都正常。想重新修改TD…

    2017年11月4日
  • 关于PLC扫描计数器CTU顺序

    请问如图Q1.0能否输出1 问题补充:抱歉啊各位,忘记上传了 图片说明:    最佳答案 这个问题你是如何判断?首先看程序,一段是计数器计数,当I0.1接通3次…

    2021年7月5日
  • USS协议能读611吗?

    我想问一下USS协议能读611吗?我想用611控电机,手册上是MICROMASTER,不知道和611有没有什么联系 请高人赐教 最佳答案 这是肯定的,USS能对U参数(电…

    SIMATIC S7-200 2021年7月5日
  • 200 如何与上位机进行通讯联系,上位机中用WINCC软件

    如题 最佳答案 WinCC 访问 S7-200 可使用哪些选项? 组态要点: 如下选项可用于 WinCC 及&…

    SIMATIC S7-200 2021年7月5日
  • 锅炉中控制引风机控制

    锅炉中引风机控制根据鼓风频率做前馈,炉膛负压控制的PID有谁有梯形图? 最佳答案 现成的程序没有,不过看看资料应该对你有帮助。参见:S?7?-?2?0?0? ?P?I?D…

    SIMATIC S7-200 2017年12月1日
  • Win7 64位的系统上安装博途V14和STEP7 Microwin V4.0 SP9是否兼容?

    Win7 64位的系统上安装博途V14和STEP7 Microwin V4.0 SP9是否兼容,如果兼容的话我在电脑上已安装博途V14,现在…

    SIMATIC S7-200 2021年7月5日
  • 关于S7-200的几个问题

    1、S7-200之间通讯有什么方法? 2、S7-200高速计数HSC0,HSC3选择12模式时,I0.0不能用来高速计数。这种情况下,I0.0能不能用来触发中断0,中断1…

    SIMATIC S7-200 2020年11月5日
  • S7 222通讯接口

    S7 222的CPU只有一个PPI接口,被TD400C占用了,造成程序监控困难,请问大家有什么好的解决方法吗,既可以同时监控程序,又可以在TD400C上输入数据。谢谢! …

    SIMATIC S7-200 2021年7月5日