PLC在变频器网络控制中的通信程序设计
五、程序清单:( 子程序和主程序 )
本程序主要介绍1台EC20PLC(作为主站)按照MODBUS协议网络对3台变频器(从站号分别是2,3,4)进行通信控制的简单范例,本例中:
连续命令序列 包括对2,3,4号变频器的运行频率的读取;
随机命令序列 包括对2,3,4号变频器进行启动,停止,更改频率的命令操作;
1) “变频器正转”子程序清单如下:
//主程序中用M1993作为各发送辅助使能,主要用于 MODBUS指令的上升沿触发无其他用
LD LM0 //位输入参数型—发送辅助使能
RSTSM135 //复位成功标志
RST SM136 //复位失败标志
LD SM0 //运行标志
MOV Z0 V9 //保存Z0值到V9
LD SM0 //运行标志
MOV V0 V10 //从机地址
MOV 16#6 V11 //功能码
MOV 16#32 V12 //寄存器地址高字节
MOV 16#0 V13 //寄存器地址低字节
MOV 1 V14 //写入数据高字节
MOV 16#C7 V15 //写入数据低字节
//以下把发送数据转移到D7940-D7945里
LD SM0
MOV 0 Z0
LD SM0
FOR 6
LD SM0
MOV V10Z0 D7940Z0
LD SM0
INC Z0
NEXT
//发送接收数据,数据放在D7970开始区域
LD LM0
MODBUS 1 D7940 D7970
RST LM0 //马上复位发送辅助使能
//无论成功失败都还原Z0值
//当然这里省略了错误报告的处理
LD SM135
OR SM136
EU //上升沿
MOV V9 Z0
2) “停机”子程序(省略)
3) “设定频率”子程序(省略)
4) “读取运行频率”子程序(省略)
5) 主程序清单:
//******以下为通信逻辑处理部分******
LD SM1 //运行第一周期脉冲
//***这里省略了检查从机准备好否的环节***
//***程序里设计了3个连续命令序列***
RST M6 //复位连续命令序列1使能标志
RST M7 //复位连续命令序列2使能标志
RST M8 //复位连续命令序列3使能标志
ED //下降沿
//置位连续命令序列1使能标志,以开始第1条连续命令执行
SET M6
//***程序里设计了共9个随机命令序列***
//只要有至少1个随机命令, // M1000=ON,表示有随机命令等待,这样在连续命令切换时优先执行随机命令系列。
LD M0 //随机命令序列1使能标志
OR M1 //随机命令序列2使能标志
OR M2 //随机命令序列3使能标志
OR M3 //随机命令序列4使能标志
OR M4 //随机命令序列5使能标志
OR M5 //随机命令序列6使能标志
OR M9 //随机命令序列7使能标志
OR M10 //随机命令序列8使能标志
OR M11 //随机命令序列9使能标志
SET M1000
//所有随机命令都处理完成后, M1000=OFF,表示随机命令完成,则连续命令可以正常切换。
LDI M0
ANIM1
ANI M2
ANI M3
ANI M4
ANI M5
ANI M9
ANI M10
ANI M11
RST M1000
//任何1个连续命令未完成时,M1001=ON,标志连续命令在进行,如果有随机命令必须等待。
LD M6
OR M7
OR M8
SET M1001
//连续命令处于切换状态时,M1001=OFF,标志连续命令完成,如果有随机命令可以进行。
LDI M6
ANI M7
ANI M8
RST M1001
//每1个连续命令完成且无随机命令等待时,启动延时T0 100MS,以便切换下1个连续命令执行
LD M100 //连续命令1完成标志
OR M101 //连续命令2完成标志
OR M102 //连续命令3完成标志
ANI M1000
TON T0 1 //启动延时T0 100MS
//******************************************
//**********以下为3个连续命令序列**********
//调用“读取运行频率”子程序-2#站,频率存在D1000里;
//通信成功或失败都复位连续命令序列1使能标志M6,同时置位完成标志M100,以便进行切换。当然这里省略了失败的处理子程序;
//延时T0时间后,执行连续命令2序列,置位连续命令2序列使能标志M7;
LD M6 //连续命令序列1使能
MPS
EU
SET M1993 //发送前置位发送辅助标志
MRD
CALL 读取运行频率 2 M1993 D1000
//参数注释:站地址,发送辅助位,频率存放地址
MPP
LD SM135
OR SM136
ANB
RST M6
SET M100
LD T0
AND M100
EU
RST M100 //复位连续命令1完成标志
SET M7
//调用“读取运行频率”子程序-3#站,频率存在D1001里;
//通信成功或失败都复位连续命令序列2使能标志M7,同时置位完成标志M101,以便进行切换。当然这里省略了失败的处理子程序;
//延时T0时间后,执行连续命令3序列,置位连续命令3序列使能标志M8;
LD M7 //连续命令2序列使能
MPS
EU
SET M1993 //发送前置位发送辅助标志
MRD
CALL 读取运行频率 3 M1993 D1001
//参数注释:站地址,发送辅助位,频率存放地址
MPP
LD SM135
OR SM136
ANB
RST M7 //复位使能标志
SET M101 //置位完成标志
LD T0
AND M101
EU
RST M101 //复位连续命令2完成标志
SET M8 //置位连续命令3使能标志
//调用“读取运行频率”子程序-4#站,频率存在D1002里
//通信成功或失败都复位连续命令序列3使能标志M8,同时置位完成标志M102,以便进行切换。当然这里省略了失败的处理子程序;
//延时T0时间后,重新执行连续命令1序列,置位连续命令1序列使能标志M6;
LD M8 //连续命令3序列使能
MPS
EU
SET M1993
MRD
CALL 读取运行频率 4 M1993 D1002
//参数注释:站地址,发送辅助位,频率存放地址
MPP
LD SM135
OR SM136
ANB
RST M8
SET M102
LD T0
AND M102
EU
RST M102
SET M6
评论