我用西门子自带的
modbus库编了一段和变频器通讯的程序,现在通讯是正常了,能起能停,读参数写参数都可以。虽然功能正常,但是有一件事情没有搞明白,在程序中M1.0和M1.1作为启动和停止的状态位,I0.0和I0.1分别为他们的置位指令。SM0.1作为初始化复位M1.0和M1.1,但是在使用中发现,监视状态表中M1.0和M1.1始终为0,到底是他们是被谁复位的呢?SM0.1吗?可是SM0.1不是只有在“仅第一个扫描周期中接通为 ON”吗?
TITLE=用西门子
modbus库与变频器通讯(通过变频器“线圈”)
Network 1 // 设置波特率,串口数据格式8+e+1,超时时间
LD SM0.0
= L60.0
LD SM0.0
= L63.7
LD L60.0
CALL MBUS_CTRL:SBR1, L63.7, 9600, 2, +1000, M0.0, MB1
Network 2 //初始化
LD SM0.1
R M1.0, 6
Network 3 //启动,通过变频器“线圈”
LD I0.0
LPS
EU
S M1.0, 1
LRD
MOVB 1, 读写:VB0
LRD
MOVD +1, 地址:VD10
LRD
MOVW +16, 个数:VW20
LPP
MOVW 16#7C04, 数据:VW2000
Network 4 //停止,通过变频器“线圈”
LD I0.1
LPS
EU
S M1.1, 1
LRD
MOVB 1, 读写:VB0
LRD
MOVD +1, 地址:VD10
LRD
MOVW +16, 个数:VW20
LPP
MOVW 16#3C04, 数据:VW2000
Network 5 //MBUS_MSG指令
LD M1.0
O M1.1
= L60.0
LD M1.0
O M1.1
EU
= L63.7
LD L60.0
CALL MBUS_MSG:SBR2, L63.7, 1, 读写:VB0, 地址:VD10, 个数:VW20, &VB2000, M0.1, MB1