不能读取两个从站的数据

主站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日 上午2:53
下一篇 2017年8月24日 上午2:54

相关推荐

  • S7-200需要进行硬件组态吗

    S7-200需要进行硬件组态吗?如果需要,硬件各个地址是如何确定的? 最佳答案 不需要硬件组态,由系统指定,在编程计算机和CPU实际联机时,使用Micro/WIN的菜单命令“PLC…

    SIMATIC S7-200 2020年10月31日
  • 一段小程序疑惑

    百度上搜索了一段关于一个按钮控制电机正反转的程序,按一下正转,再按一下反转,先把程序写成LD     SM0.0LPSMOVW&n…

    2017年12月10日
  • EM235中有四个模拟量输入,一个模拟量输出

    请问如果右下角的DIP开关设的是双极性±2.5V,那所有四个输入与输出都必须是2.5V电压信号吗?可不可以接电流信号?如4~20MA? 问题补充:再补充另外一个问题,就是输出可以是…

    SIMATIC S7-200 2020年11月1日
  • 关于200的间接寻址指令

    请问如下图中的间接寻址指令是否正确,为什么用间接寻址后,最终得到的确是地址的值! 问题补充:大宝朱林森,你也做测试了,那请问为什么它最终不是把vw832数值所指向的地址的值送给vw…

    2021年7月5日
  • letham大师我好像有点眉目,请帮我看看

    目前在Station Configurator里编辑没有红叉了,原因确实是没Import Station而我在STEP 7里没进行编译,不过我试了所有…

    2017年11月6日
  • STEP7-Micro/WIN 4.0SP W7 64位系统在编译程序时出错

    请输入详细STEP 7-Micro/WIN系统错误系统错误:为内部决策比较数据出现一个意外的错误。我们建议您用另一个文件名保存您的项目,然后退出并重新启动程序。确认后出现…

    SIMATIC S7-200 2021年7月5日
  • 关于s7200 226使用modbusRTU通讯时既做主站又做从站的问题

    各位老师,我现在要实现的是上位机(组态王)做主站,从站有226,同时226又作为主站,从站有一个modbus采集设备(因需要226读取采集值做计算处理)。现在上位机和226能够通讯…

    2017年8月15日
  • 关于程序保护

    从S7-200上载程序时,报CPU被保护,无法上载,请问一下,怎样设置程序的这种保护功能,在什么地方可以去除这种功能?由于有时经常需要下载/上载及在线监控程序。 最佳答案 从S7-…

    SIMATIC S7-200 2020年11月1日
  • PC Access 和 STEP7是否兼容

    如标题所示,我在使用PC Access和S200通信正常后,再安装STEP7 S300的软件,测试客户机时提示An error has&nb…

    SIMATIC S7-200 2017年11月29日
  • 步进程序设计

    请问各位大侠 1.步进电机和伺服电机驱动器同样是接收脉冲和方向信号,两者在程序设计上有何不同之处? 2.假设伺服电机编码器为10000P,电子齿轮比为2:1如果…

    SIMATIC S7-200 2021年7月4日