西门子224XP和3台三菱D740的Modbus通讯

已锁定

捡破烂的

  • 帖子

    22
  • 精华

    0
  • 被关注

    2

论坛等级:游民

注册时间:2008-04-02

普通 普通 如何晋级?

西门子224XP和3台三菱D740的Modbus通讯

2191

15

2008-11-05 16:54:23

最近在做一个西门子224XP和3台三菱D740的Modbus通讯,想通过和3台通讯最终达到和最多30台的通讯,想做成一个变量,比如说5台直接修改变量值即可和5台通讯,15台就直接修改变量值就可直接和15台通讯。主要是不断的循环读取变频器的频率、电流、电压值,随时可以修改每一台的频率值。我用子程序做,想通过改变站号来循环读取。程序如下:
TITLE=程序注释
Network 1 // 网络标题
// 网络注释
LD SM0.0
= L60.0
LD SM0.0
= L63.7
LD L60.0
CALL SBR1, L63.7, 9600, 0, 100, M0.0, MB10
Network 2
LD SM0.1
R M0.1, 5
S M5.0, 1
R M6.0, 8
MOVB 1, VB100
MOVB 2, VB106
Network 3
LD V1000.0
EU
S M6.0, 1
Network 4
LD M6.0
= L60.0
LD M6.0
EU
= L63.7
LD L60.0
CALL SBR2, L63.7, VB1002, 1, 40015, 1, &VB1005, M6.2, MB13
Network 5
LD M6.2
EU
R M6.0, 1
R V1000.0, 1
R M6.2, 1
S M5.0, 1
Network 6
LD SM0.0
AN V1000.0
AN M6.5
CALL SBR0
Network 7
LD M6.5
A M0.0
LPS
A T34
S M0.1, 1
LPP
TON T34, 2
Network 8
LD M0.1
AN M6.0
= L60.0
LD M0.1
EU
= L63.7
LD L60.0
CALL SBR2, L63.7, VB100, 0, 40201, 3, &VB110, M0.2, MB11
Network 9
LD M0.2
LPS
CALL SBR4
AB<= VB100, VB106
S M6.5, 1
LRD
AB> VB100, VB106
R M6.5, 1
S M5.0, 1
LPP
R M0.2, 1
子程序SBR0:
TITLE=子程序注释
Network 1
LD M5.0
MOVB 1, VB100
MOVD &VB200, VD300
MOVD &VB240, VD310
MOVD &VB280, VD320
TON T33, 1
A T33
S M0.1, 1
R M5.0, 1
子程序SBR4:
Network 1
LD M0.2
LPS
R M0.1, 1
MOVW VW110, *VD300
MOVW VW112, *VD310
MOVW VW114, *VD320
AB<> MB11, 0
= Q0.0
LRD
INCD VD300
LRD
INCD VD300
LRD
INCD VD310
LRD
INCD VD310
LRD
INCD VD320
LRD
INCD VD320
LPP
INCB VB100
现在的问题是,同两台没问题,完全可以读取到频率、电流、电压值,也可以写入频率。但是读三台时就出现问题了,1、2号正常读出,第三号总是报错,代码是6,“Modbus忙于处理另一个请求:一次只能激活一条MBUS_MSG指令。”做了几天都找不到问题所在,我想既然两台都可以通,那么3台也应该没问题的,可是怎么修改都找不到问题的关键所在。还望各位工程师指教。我曾试过用跳转指令JMP来做,也试过用顺序控制、循环控制,效果的都不理想。望高手指教!
西门子224XP和3台三菱D740的Modbus通讯 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200

共有33257条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。