自由口通讯无返回值

特意买了个温度仪和226CPU学习自由口通讯。学习模仿编程了N个版本,有的可以读取到温度,只是这个温度值偶尔对的。所以,线路应该是没问题的。
下面的这个程序,是最简单的吧?点一次M3.0,触发一次发送指令,读取一次温度。但是接收的都是0,无变化。

问题补充:
我这个CPU226,216-2BD21-0XB0,提示说不支持modbus库指令。所以,那些带有modbus库指令的参考程序都放弃了。

图片说明:

自由口通讯无返回值    自由口通讯无返回值    自由口通讯无返回值    自由口通讯无返回值   

最佳答案

1、 Modbus RTU 主站库对CPU的版本有要求。CPU 的版本必须为 2.00 或者 2.01(即订货号为 6ES721*-***23-0BA*),1.22版本之前(包括1.22版本)的 S7-200 CPU 不支持。
2、 在线你的CPU 查看一下是不是硬件版本低了,低了确实要用自由口编程来实现,不能调用指令库;如果硬件版本满足,可以参考阿鸣大师的方法。也可以参考下面的链接。
3、 附图是仪表的协议的话,按你附的程序,CPU和仪表就不可能通讯上。
4、 最主要的错误是,仪表的协议是MODBUS RTU协议,按协议附图CPU的请求帧只能是8个字节,结果你在请求帧中发送给仪表9个字节,那它就不认识你发的请求帧了
3、建议你用MODSCAN 32软件,是一个很好用的测试MODBUS 通讯的软件,可以在网上下载到,选择MODBUS RTU方式,用来确认仪表的MODBUS 通讯是否正常;
4、程序做如下改动
      A、主程序的网络2,将8传入VB500;最后一条语句MOVB 9,VB500可以删除了。
      B、端口初始化部分
            LD SM0.1
            LPS
            MOVB 9,SMB130
            AENO
            MOVB 16#9C,SMB187
            LRD
            MOVW 4,SMB190
            AENO
            MOVW 50,SMW192
            AENO
            MOVB 60,SMB194
            LRD
            ATCH INT_0:INT0,26
            LPP
            ENI
  C、其它程序不动
5、S7-200 Modbus通信常见问题链接
http://www.ad.siemens.com.cn/productportal/Prods/s7-200-portal/MicroPower2013/Smart%20SMS/019.html

提问者对于答案的评价:
谢谢~~~~
按您的修改,通讯正确了,看见曙光了。
先采纳,我继续学习去。

最佳答案作者回复:
再好好在在线帮助里看看XMT,RCV指,以及中断事件、特殊寄存器中的SMB2部分,加深一下理解。共同学习与提高

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

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

相关推荐

  • WINCC和两个CPU224进行通信

    我想用WINCC和两个CPU224进行通信,他们通信是否需要两个EM277和CP5621卡?我该如何设置?他们就可以通信了?谢谢 最佳答案 .两种方法 1.使用一个EM2…

    SIMATIC S7-200 2020年11月5日
  • 无法通信,程序下载不了

    我的s7-200编号程序后与plc连上通信电缆后下载不了,“显示通信错误,检查电缆,设置通信”。请问大家我该怎么设置啊!我是新手,希望大家说的详细点!!谢谢!! 问题补充:还有就是…

    SIMATIC S7-200 2020年11月1日
  • 中断分离

    请问 中断分离指令 DTCH 如何使用,请详细解释 最佳答案 断处理在PLC所组成的控制系统中经常出现,其处理方法及应用是否恰当,对整个控制系统是非常…

    SIMATIC S7-200 2020年11月1日
  • S7200 modbus一主多从

    S7200与仪表modbus通讯一主多从,仪表是232modbus,请问是否要将232转成485才能和S7200做通讯?如果是,那么1个转换模块是否就能满足? 问题补充:两位回答的…

    SIMATIC S7-200 2017年11月1日
  • 请问一个CPU226能够带两个CP243-1模块吗?

    请问高手:一个CPU226能够带两个CP243-1模块吗?如果可以,这两个网口能像两个编程口一样各自独立通讯吗?谢谢! 问题补充:两台工控机用wincc做双机冗余,采集单元用一个c…

    SIMATIC S7-200 2020年10月31日
  • 接受指令RCV的一个低级问题…

    请问这句指令MOVB 16#B0 SMB87中的16#B0是代表什么意思,手册中说这是初始化RCV信息控制信息. 最佳答案 16#B0是16进制数,相对应的二进…

    SIMATIC S7-200 2021年7月5日
  • 间接寻址问题请教

    NET 1 LD     SM0.1 MOVB   12, …

    SIMATIC S7-200 2021年7月5日
  • s7-200怎么对编码器编程

    有两台用变频器控制的电机,要求他们同步,但是其中用到编码器,请问s7-200怎么对编码器中脉冲处理,用什么指令,请大家回答,谢谢谢谢 问题补充:我的意思是做位置控制用的,是同步。我…

    SIMATIC S7-200 2021年7月5日
  • et200gsd

    在哪里可以下载到et200sp im155-6-st v3.3 版本的gsd文件 问题补充:6es7 155-6AU00-0XNO&nbsp…

    SIMATIC S7-200 2021年7月5日
  • 高速计数器能用来计数很低频率的脉冲吗?

    我的PLC型号是222的继电器输出的,为什么但我用高速计数器计数很低频率脉冲的时候计数不准确呢?是不是高速计数器不能计数低频的脉冲还是我的PLC不支持高速计数输入? 最佳答案 PL…

    SIMATIC S7-200 2020年10月31日

发表回复

登录后才能评论