新闻中心

EEPW首页>嵌入式系统>设计应用> PLC在变频器网络控制中的通信程序设计

PLC在变频器网络控制中的通信程序设计

作者: 时间:2016-12-16 来源:网络 收藏

五、程序清单:( 子程序和主程序 )
  本程序主要介绍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


评论


技术专区

关闭