不能读取两个从站的数据

主站S7-200PLC,并联二个modbus RTU接口的从站,把T33 ,T34定时时间设置成相等,发现一个站能正常读回数据;而另一站不能正常读回数据,完成位总是显示“1”,错误码为“6”。把T33 ,T34定时时间设置成不相等,发现两个站都不能正常读回数据,有时能读回,而有时又不能读回数据,完成位显示“1”,错误码为“6”。不知是何原因,请各位老师帮忙解决,看问题出在哪里?主程序如下:
网络1
LD     SM0.0
=      L60.0
LD     SM0.0
=      L63.7
LD     L60.0
CALL   MBUS_CTRL:SBR1, L63.7, 9600, 2, 1000, M24.0, MB25
网络2
LD     M24.0
AB=    MB25, 0
LPS
AN     M2.4
TON    T33, 5
LPP
A      T33
=      M2.4
网络3
LD     M24.0
AB=    MB25, 0
=      L60.0
LD     T33
EU
=      L63.7
LD     L60.0
CALL   MBUS_MSG:SBR2, L63.7, 1, 0, 30002, 2, &VB1000, M24.1, MB26
网络4
LD     M24.0
AB=    MB25, 0
LPS
AN     M2.5
TON    T34, 10
LPP
A      T34
=      M2.5
网络5
LD     M24.0
AB=    MB25, 0
=      L60.0
LD     T34
EU
=      L63.7
LD     L60.0
CALL   MBUS_MSG:SBR2, L63.7, 2, 0, 30002, 2, &VB2000, M27.1, MB28

问题补充:
对不起!网络4的内容输入错,更改为如下(与网络2基本相同):
LD     M24.0
AB=    MB25, 0
LPS
AN     M2.5
TON    T34, 10
LPP
A      T34
=      M2.5

最佳答案

利用初始化完成DONE位同时启动两个读从站的指令不合适,虽然使用了延时定时器,想错开连个读指令,建议改成如下程序:(M30.0,M30.1是我随意选的,如果你程序已经使用,请改成别的地址)
网络1
LD     SM0.0
=      L60.0
LD     SM0.0
=      L63.7
LD     L60.0
CALL   MBUS_CTRL:SBR1, L63.7, 9600, 2, 1000, M24.0, MB25
网络2
LD     M24.0
AB=    MB25, 0
EU
S      M30.0, 1
网络3
LD     M30.0
=      L60.0
LD     M30.0
EU
=      L63.7
LD     L60.0
CALL   MBUS_MSG:SBR2, L63.7, 1, 0, 30002, 2, &VB1000, M24.1, MB26
网络4
LD     M24.1
AB=    MB26, 0
EU
S      M30.1, 1
R      M30.0, 1
网络5
LD     M30.1
=      L60.0
LD     M30.1
EU
=      L63.7
LD     L60.0
CALL   MBUS_MSG:SBR2, L63.7, 2, 0, 30002, 2, &VB2000, M27.1, MB28 
网络6
LD     M27.1
AB=    MB28, 0
EU
S      M30.0, 1
R      M30.1, 1

提问者对于答案的评价:
此法存在的问题:有一站不能正常工作,则另一站也不能正常工作。请问老师有无更好的解决方法。

最佳答案作者回复:
把DONE,error加入逻辑判断即可

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年8月24日
下一篇 2017年8月24日

相关推荐

  • SMWRT200 modbus 从站通讯

    程序下载后,通讯标志位M10.1可以看到有时有输出,工控机发送的地址是5000,接线是电脑2接TX/B,3接RX/A,5接M,现在PLC没有到上位机发送的数据,请问下是哪里出问题了…

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

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

    2021年7月5日
  • 200的模拟量采集西门子skc62的调节阀反馈值不稳定乱跳,最后是反馈是稳定的

    在阀门动作的时候反馈不稳定一会大一会小,当阀门停止啦 比较稳定控制阀门0-10v,阀门反馈0-10v 最佳答案 极有可能干扰。屏蔽接地要好,反馈线路超过10米宜用4一20…

    SIMATIC S7-200 2017年6月18日
  • PC Access For WIN2K EN

    什么版本的 PC Access支持WIN200英文版? 最佳答案 S7-200 PC Access V1.0 提问者对于答案的评价…

    SIMATIC S7-200 2021年7月4日
  • S7200如何控制变频器

    求助:用CPU224+EM231+EM232模拟量输出4-20mA控制台达变频器,这个程序应该如何实现?用Scale-R-I指令输出到AQ的值是不断变化的,请问,如何处理? 最佳答…

    SIMATIC S7-200 2020年11月5日
  • 西门子和三菱的字节

    三菱K2X001转化为西门子的应该怎么表达等同, 最佳答案 三菱K2X001=X0~X7,相同于西门子的IB0=I0.0~I0.7,都是8位字节。三菱K4X001=X0~X17,相…

    SIMATIC S7-200 2017年11月13日
  • S7200CPU224XP

    各位前辈    我做了一个程序CPU224XP系列PLC与厦门宇电AI7048温控表通信 PLC端口1与AI7048通信&nbsp…

    SIMATIC S7-200 2020年11月1日
  • AB相计数器复位

    小弟有一增量编码器,现使用AB相正交计数,复位信号不想用它自带的,决定使用一接近开关作为复位信号,请问如何配置此计数器,是不是和使用编码器自带的复位信号一样配置? 最佳答案 这样使…

    SIMATIC S7-200 2020年11月1日
  • 请教LaoHuai一个简单问题

    如果vw2里是5,vw4里是10,用除法得商为0.2,能不能存放在vw6里,然后在触摸屏里直接读取,小子初学,问个笨问题,请帮忙,谢谢!如果不行该怎样做。 最佳答案 不行&nbsp…

    SIMATIC S7-200 2021年7月5日
  • S7-200怎样和TD200连接

    最近第一次做了个小程序,要求电机和气缸的动作时间能通过文本显示器TD200设定。现在实验结果是动作正常但文本总有个别数值不能设定,显示eeeeee或乱码,断电后还不保持,需要重新设…

    SIMATIC S7-200 2020年10月31日