set m6
https://***程序里设计了共9个随机命令序列***
https://只要有至少1个随机命令, https:// m1000=on,表示有随机命令等待,这样在连续命令切换时优先执行随机命令系列.
ld m0 https://随机命令序列1使能标志
or m1 https://随机命令序列2使能标志
or m2 https://随机命令序列3使能标志
or m3 https://随机命令序列4使能标志
or m4 https://随机命令序列5使能标志
or m5 https://随机命令序列6使能标志
or m9 https://随机命令序列7使能标志
or m10 https://随机命令序列8使能标志
or m11 https://随机命令序列9使能标志
set m1000
https://所有随机命令都处理完成后, m1000=off,表示随机命令完成,则连续命令可以正常切换。
ldi m0
ani m1
ani m2
ani m3
ani m4
ani m5
ani m9
ani m10
ani m11
rst m1000
https://任何1个连续命令未完成时,m1001=on,标志连续命令在进行,如果有随机命令必须等待。
ld m6
or m7
or m8
set m1001
https://连续命令处于切换状态时,m1001=off,标志连续命令完成,如果有随机命令可以进行。
ldi m6
ani m7
ani m8
rst m1001
https://每1个连续命令完成且无随机命令等待时,启动延时t0 100ms,以便切换下1个连续命令执行
ld m100 https://连续命令1完成标志
or m101 https://连续命令2完成标志
or m102 https://连续命令3完成标志
ani m1000
ton t0 1 https://启动延时t0 100ms
https://******************************* ***********
https://**********以下为3个连续命令序列**********
https://调用“读取运行频率”子程序-2#站,频率存在d1000里;
https://通信成功或失败都复位连续命令序列1使能标志m6,同时置位完成标志m100,以便进行切换。当然这里省略了失败的处理子程序;
https://延时t0时间后,执行连续命令2序列,置位连续命令2序列使能标志m7;
ld m6 https://连续命令序列1使能
mps
eu
set m1993 https://发送前置位发送辅助标志
mrd
call 读取运行频率 2 m1993 d1000
https://参数注释:站地址,发送辅助位,频率存放地址
mpp
ld sm135
or sm136
anb
rst m6
set m100
ld t0
and m100
eu
rst m100 https://复位连续命令1完成标志
set m7
https://调用“读取运行频率”子程序-3#站,频率存在d1001里;
https://通信成功或失败都复位连续命令序列2使能标志m7,同时置位完成标志m101,以便进行切换。当然这里省略了失败的处理子程序;
https://延时t0时间后,执行连续命令3序列,置位连续命令3序列使能标志m8;
ld m7 https://连续命令2序列使能
mps
eu
set m1993 https://发送前置位发送辅助标志
mrd
call 读取运行频率 3 m1993 d1001
https://参数注释:站地址,发送辅助位,频率存放地址
mpp
ld sm135
or sm136
anb
rst m7 https://复位使能标志
set m101 https://置位完成标志
ld t0
and m101
eu
rst m101 https://复位连续命令2完成标志
set m8 https://置位连续命令3使能标志
https://调用“读取运行频率”子程序-4#站,频率存在d1002里
https://通信成功或失败都复位连续命令序列3使能标志m8,同时置位完成标志m102,以便进行切换。当然这里省略了失败的处理子程序;
https://延时t0时间后,重新执行连续命令1序列,置位连续命令1序列使能标志m6;
ld m8 https://连续命令3序列使能
mps
eu
set m1993
mrd
call 读取运行频率 4 m1993 d1002
https://参数注释:站地址,发送辅助位,频率存放地址
mpp
ld sm135
or sm136
anb
rst m8
set m102
ld t0
and m102
eu
rst m102
set m6
https://******************************** **********
https://**********以下是9个随机命令序列***********
https://9个随机命令思路都一样;
https://随机命令使能标志置位后,若连续命令处于切换状态,则可进入发送状态,否则只有等待;
https://发送时先置位发送辅助位m199 -3,调用子程序进行发送和接收;
https://无论通信成功或失败都复位各自的随机命令使能标志,当然这里仍然省略了通信错误处理程序;
https://如果所有的随机命令都完成,则随机命令等待标志m1000=off;
https://调用“频率设定”子程序-2#站
ld m9 https://随机命令序列7使能标志
ani m1001 https://判断连续命令处于切换状态时
mps
eu
set m1993 https://置位发送辅助位
mrd
call 运频设定 2 d1100 m1993
https://参数注释:站地址,设定频率,发送辅助位
mpp
ld sm135
or sm136
anb
rst m9 https://复位随机命令序列7使能标志
https://调用“频率设定”子程序-3#站
ld m10 https://随机命令序列8使能标志
ani m1001 https://判断连续命令处于切换状态时;
mps
eu
set m1993 https://置位发送辅助位
mrd
call 运频设定 3 d1101 m1993
https://参数注释:站地址,设定频率,发送辅助位
mpp
ld sm135
or sm136
anb
rst m10
https://调用“频率设定”子程序-4#站
ld m11 https://随机命令序列9使能标志
ani m1001
mps
eu
set m1993
mrd
call 运频设定 4 d1102 m1993
https://参数注释:站地址,设定频率,发送辅助位
mpp
ld sm135
or sm136
anb
rst m10
https://调用“正转开机”子程序-2#站
ld x11 https://开机按扭
eu
set m0 https://随机命令序列1使能标志
ld m0
ani m1001
mps
eu
set m1993
mrd
call 正转开机 2 m1993
https://参数注释:站地址,发送辅助位
mpp
ld sm135
or sm136
anb
rst m0
https://调用“正转开机”子程序-3#站
ld x12 https://开机按扭
eu
set m1 https://随机命令序列2使能标志
ld m1
ani m1001
mps
eu
set m1993
mrd
call 正转开机 3 m1993
https://参数注释:站地址,发送辅助位
mpp
ld sm135
or sm136
anb
rst m1
https://调用“正转开机”子程序-4#站
ld x13 https://开机按扭
eu
set m2 https://随机命令序列3使能标志
ld m2
ani m1001
mps
eu
set m1993
mrd
call 正转开机 4 m1993
https://参数注释:站地址,发送辅助位
mpp
ld sm135
or sm136
anb
rst m2
https://调用“停机”子程序-2#站
ld x14 https://停机按扭
eu
set m3 https://随机命令序列4使能标志
ld m3
ani m1001
mps
eu
set m1993
mrd
call 停机 2 m1993
https://参数注释:站地址,发送辅助位
mpp
ld sm135
or sm136
anb
rst m3
https://调用“停机”子程序-3#站
ld x15 https://停机按扭
eu
set m4 https://随机命令序列5使能标志
ld m4
ani m1001
mps
eu
set m1993
mrd
call 停机 3 m1993
https://参数注释:站地址,发送辅助位
mpp
ld sm135
or sm136
anb
rst m4
https://调用“停机”子程序-4#站
ld x16 https://停机按扭
eu
set m5 https://随机命令序列6使能标志
ld m5
ani m1001
mps
eu
set m1993
mrd
call 停机 4 m1993
https://参数注释:站地址,发送辅助位
mpp
ld sm135
or sm136
anb
rst m5
7 程序说明
例程设计时实际在连续命令序列切换的间隙停留了100ms的时间,这就是说程序中的连续序列是间歇性的;如果要采用非间歇性的连续序列,把中间的延时部分去掉就可以了。
8 结论
本例程所阐述的通信序列逻辑处理的方法在笔者的一些项目中得到实际应用,效果也达到预期设想,运行比较稳定,这种plc通过通信的方式对多台变频器通信的方法在实际应用中有很大的参考价值,不仅能够充分利用emerson plc和变频器的硬件资源达到节省成本的目的,而且更易于进行整个系统的整合。
西门子代理商,西门子模块代理商,西门子一级代理商,西门子PLC代理,西门子中国代理商