程序用
modbus通讯读取12个数据,在子程序一分钟用循环转换一次数据从VB1010开始除以10存VD300至VD344,用循环以后读不到数据,监控后发现
modbus不通讯,把子程序删除后通讯正常了,循环有错误,错在哪请老师们指点一下
主程序:
LD SM0.0
CALL ZYDY_4:SBR0, 1, 3
网络2
LD SM0.0
CALL WSD:SBR4
读取数据的子程序 ZYDY_4 就是采集12个温湿度数据存放在VW1010-----VW1032
LD SM0.0
= L60.0
LD SM0.0
= L63.7
LD L60.0
CALL MBUS_CTRL:SBR1, L63.7, 9600, 0, +3000, M2.6, VB2000
网络2
LD SM0.1
R L8.0, 30
网络3
LD SM0.0
MOVW #tingzhidizhi:LW2, LW6
+I +1, LW6
网络4
LD SM0.0
LPS
A T33
EU
MOVW #kaishidizhi:LW0, LW4
LPP
TOF T33, +10
网络5
LD SM0.0
LPS
AW= LW4, +1
EU
S L8.0, 1
LRD
AW= LW4, +2
EU
S L8.1, 1
LRD
AW= LW4, +3
EU
S L8.2, 1
LPP
AW= LW4, +4
EU
S L8.3,
网络6
LD SM0.0
A L8.0
= L60.0
LD SM0.0
A L8.0
EU
= L63.7
LD L60.0
CALL MBUS_MSG:SBR2, L63.7, 1, 0, 40001, +8, &VB1010, L9.2, VB2001
网络7
LD L9.2
EU
LPS
+I +1, LW4
AENO
AW= LW4, LW6
MOVW #kaishidizhi:LW0, LW4
LPP
R L8.0, 1
网络8
LD SM0.0
A L8.1
= L60.0
LD SM0.0
A L8.1
EU
= L63.7
LD L60.0
CALL MBUS_MSG:SBR2, L63.7, 2, 0, 30001, +2, &VB1026, L9.3, VB2002
网络9
LD L9.3
EU
LPS
AB<> VB2002, 0
MOVD +0, VD1026
LRD
+I +1, LW4
AENO
AW= LW4, LW6
MOVW #kaishidizhi:LW0, LW4
LPP
R L8.1, 1
网络10
LD SM0.0
A L8.2
= L60.0
LD SM0.0
A L8.2
EU
= L63.7
LD L60.0
CALL MBUS_MSG:SBR2, L63.7, 3, 0, 30001, +2, &VB1030, L9.4, VB2003
网络11
LD L9.4
EU
LPS
AB<> VB2003, 0
MOVD +0, VD1030
LRD
+I +1, LW4
AENO
AW= LW4, LW6
MOVW #kaishidizhi:LW0, LW4
LPP
R L8.2, 1
数据转换的子程序 WSD 把采集的数据转成小数存放在VD300---VD344
Network 1
LD SM0.0
MOVD &VB1010, AC1
AENO
MOVD &VB300, AC2
Network 2
LD SM0.0
A SM0.4
EU
FOR VW200, 1, 13
Network 3
LD SM0.0
MOVW *AC1, LW2
AENO
ITD LW2, LD4
AENO
DTR LD4, LD24
AENO
MOVR LD24, *AC2
AENO
/R 10.0, *AC2
Network 4
LD SM0.0
+I +2, AC1
AENO
+I +4, AC2
Network 5
NEXT