技術頻道

      艾默生 PLC在變頻器網絡控制中的通信程序設計

      摘要abstract:本文通過艾默生PLC和多臺變頻器組網通信控制編程(以MODBUS協議方式)為例,說明PLC和多臺變頻器網絡控制的通信程序的設計方法。

      1 引言

      隨著PLC技術的不斷發展,越來越顯示其強大的核心控制功能,PLC和其他設備之間的連接已經從比較煩瑣的傳統I/O方式向越來越受歡迎的簡潔先進的通信方式過渡,不僅為設計者節省了大量的硬件成本,更能為遠程控制,組網提供了可能,使控制系統更加無縫地融為一體。本文主要通過艾默生PLC和多臺變頻器組網通信(以MODBUS協議方式)為例,說明PLC和多臺變頻器網絡控制的通信程序的設計方法。

      2、MODBUS協議簡要介紹

      Modbus協議由美國著名的MODICON公司提出,通過此協議,控制器相互之間、控制器經由網絡(例如以太網)和其它設備之間可以通信,不同廠商生產的控制設備可以連成工業網絡,進行集中監控,它已經成為一通用工業標準??刂破魍ㄐ攀褂弥鳌獜募夹g,即僅一設備(主設備)能初始化傳輸(查詢)。其它設備(從設備)根據主設備查詢提供的數據作出相應反應。典型的主設備:IPC,HMI,PLC等;典型的從設備:各種儀表,PLC,變頻器等。主設備可單獨和從設備通信,也能以廣播方式和所有從設備通信。如果單獨通信,從設備返回一消息作為回應,如果是以廣播方式查詢的,則不作任何回應。Modbus協議建立了主設備查詢和從設備回應的格式:設備(或廣播)地址、功能代碼、所有要發送的數據、錯誤檢測域。Modbus協議同時支持RTU模式和ASCII模式,RTU模式對應的幀格式如下:(ASCII模式介紹省略)


      更詳細的說明請查閱MODBUS協議的有關資料(或登陸網站 www.modbus.orghttp://www.modbus.org)。

      3、艾默生PLC集成的MODBUS協議功能

      艾默生EC20系列PLC的通信口COM 1集成了MODBUS主站協議, 在編程時先在編程軟件的系統塊里進行設置具體如下:系統塊—>“通信口”菜單—>“通信口1參數設置”菜單—> 選“MODBUS協議”—> 進行“MODBUS設置”—> 進行通信參數和(主模式)站號等設置即可。

      然后利用MODBUS指令進行編程————MODBUS (S1) (S2)(S3)各參數含義如下:
      S1 指定的通訊通道;
      S2 發送數據起始地址;
      S3 接收數據起始地址;
      MODBUS指令發送過程中,自動加上所需的起始字符,結束字符和校驗和;發送的數據,不需設定發送的數據長度,系統會根據功能碼自動按系統內部設定長度進行發送。

      2個重要的通信標志:SM135—— MODBUS的通訊成功標志位,通訊成功時置位,不會自動復位,所以在發送數據的時候要進行一次復位;SM136—MODBUS的通信錯誤標志位,通信錯誤(包括從設備沒有回應)時置位,不會自動復位,所以在接收數據的時候要進行一次復位;

      4、艾默生變頻器通信協議

      艾默生公司生產的EV系列變頻器都集成MODBUS協議,且提供RS232C和RS485通信口供用戶選擇,所以通過PLC和變頻器通信的方式完成控制比較簡單經濟,而且顯得系統比較高檔,下面簡單介紹其協議:

      1.支持MODBUS RTU和ASCII格式;
      2.參數的MODBUS協議地址影射規則:變頻器的功能碼參數、控制參數和狀態參數都映射為Modbus的讀寫寄存器。變頻器功能碼的組號映射為寄存器地址的高字節,組內索引映射為寄存器地址的低字節。變頻器的控制參數和狀態參數均虛擬為變頻器功能碼組。功能碼組號與其映射的寄存器地址高字節的對應關系如下:F0組:0x00;F1組:0x01;F2組:0x02;F3組:0x03;F4組:0x04;F5組:0x05;F6組:0x06;F7組:0x07;F8組:0x08;F9組:0x09;FA組:0x0A;Fb組:0x0B;FC組:0x0C;Fd組:0x0D;FE組:0x0E;FF組:0x0F;FH組:0x10;FL組:0x11;Fn組:0x12;FP組:0x13;FU組:0x14;變頻器控制參數組:0x32;變頻器狀態參數組:0x33。例如變頻器功能碼參數F3.02的寄存器地址為0x302,變頻器功能碼參數FF.01的寄存器地址為0xF01。

      3.支持的功能碼如下:

      4.具體的協議介紹請參考艾默生變頻器用戶手冊;

      5 程序流程圖

      主設備對從設備的消息查詢命令主要分為2大類,連續命令序列和隨機命令序列。
      連續命令序列: 主設備需要定時或連續向從設備發送的命令序列.特點是周期性,連續性.如PLC對變頻器讀取運行頻率命令,運行狀態命令等。

      隨機命令序列: 主設備不定時或隨機向從設備發送的命令序列.特點是不定時性,隨機性.如PLC對變頻器的啟??刂?改寫頻率或其他參數等。

      5、程序清單:( 子程序和主程序 )

      本程序主要介紹1臺EC20PLC(作為主站)按照MODBUS協議網絡對3臺變頻器(從站號分別是2,3,4)進行通信控制的簡單范例,本例中:

      連續命令序列 包括對2,3,4號變頻器的運行頻率的讀?。?br /> 隨機命令序列 包括對2,3,4號變頻器進行啟動,停止,更改頻率的命令操作;

      a)“變頻器正轉”子程序清單如下:
      //主程序中用M1993作為各發送輔助使能,主要用于 MODBUS指令的上升沿觸發無其他用
      LD LM0 //位輸入參數型—發送輔助使能
      RST SM135 //復位成功標志
      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
      b) “停機”子程序(省略)
      c) “設定頻率”子程序(省略)
      d) “讀取運行頻率”子程序(省略)
      e) 主程序清單:
      //******以下為通信邏輯處理部分******
      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
      ANI M1
      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
      //******************************************
      //**********以下是9個隨機命令序列***********
      //9個隨機命令思路都一樣;
      //隨機命令使能標志置位后,若連續命令處于切換狀態,則可進入發送狀態,否則只有等待;
      //發送時先置位發送輔助位M1993,調用子程序進行發送和接收;
      //無論通信成功或失敗都復位各自的隨機命令使能標志,當然這里仍然省略了通信錯誤處理程序;
      //如果所有的隨機命令都完成,則隨機命令等待標志M1000=OFF;
      //調用“頻率設定”子程序-2#站
      LD M9 //隨機命令序列7使能標志
      ANI M1001 //判斷連續命令處于切換狀態時
      MPS
      EU
      SET M1993 //置位發送輔助位
      MRD
      CALL 運頻設定 2 D1100 M1993
      //參數注釋:站地址,設定頻率,發送輔助位
      MPP
      LD SM135
      OR SM136
      ANB
      RST M9 //復位隨機命令序列7使能標志
      //調用“頻率設定”子程序-3#站
      LD M10 //隨機命令序列8使能標志
      ANI M1001 //判斷連續命令處于切換狀態時;
      MPS
      EU
      SET M1993 //置位發送輔助位
      MRD
      CALL 運頻設定 3 D1101 M1993
      //參數注釋:站地址,設定頻率,發送輔助位
      MPP
      LD SM135
      OR SM136
      ANB
      RST M10
      //調用“頻率設定”子程序-4#站
      LD M11 /隨機命令序列9使能標志
      ANI M1001
      MPS
      EU
      SET M1993
      MRD
      CALL 運頻設定 4 D1102 M1993
      //參數注釋:站地址,設定頻率,發送輔助位
      MPP
      LD SM135
      OR SM136
      ANB
      RST M10
      //調用“正轉開機”子程序-2#站
      LD X11 //開機按扭
      EU
      SET M0 //隨機命令序列1使能標志
      LD M0
      ANI M1001
      MPS
      EU
      SET M1993
      MRD
      CALL 正轉開機 2 M1993
      //參數注釋:站地址,發送輔助位
      MPP
      LD SM135
      OR SM136
      ANB
      RST M0
      //調用“正轉開機”子程序-3#站
      LD X12 //開機按扭
      EU
      SET M1 //隨機命令序列2使能標志
      LD M1
      ANI M1001
      MPS
      EU
      SET M1993
      MRD
      CALL 正轉開機 3 M1993
      //參數注釋:站地址,發送輔助位
      MPP
      LD SM135
      OR SM136
      ANB
      RST M1
      //調用“正轉開機”子程序-4#站
      LD X13 //開機按扭
      EU
      SET M2 //隨機命令序列3使能標志
      LD M2
      ANI M1001
      MPS
      EU
      SET M1993
      MRD
      CALL 正轉開機 4 M1993
      //參數注釋:站地址,發送輔助位
      MPP
      LD SM135
      OR SM136
      ANB
      RST M2
      //調用“停機”子程序-2#站
      LD X14 //停機按扭
      EU
      SET M3 //隨機命令序列4使能標志
      LD M3
      ANI M1001
      MPS
      EU
      SET M1993
      MRD
      CALL 停機 2 M1993
      //參數注釋:站地址,發送輔助位
      MPP
      LD SM135
      OR SM136
      ANB
      RST M3
      //調用“停機”子程序-3#站
      LD X15 //停機按扭
      EU
      SET M4 //隨機命令序列5使能標志

      LD M4
      ANI M1001
      MPS
      EU
      SET M1993
      MRD
      CALL 停機 3 M1993
      //參數注釋:站地址,發送輔助位
      MPP
      LD SM135
      OR SM136
      ANB
      RST M4
      //調用“停機”子程序-4#站
      LD X16 //停機按扭
      EU
      SET M5 //隨機命令序列6使能標志
      LD M5
      ANI M1001
      MPS
      EU
      SET M1993
      MRD
      CALL 停機 4 M1993
      //參數注釋:站地址,發送輔助位
      MPP
      LD SM135
      OR SM136
      ANB
      RST M5

      6、程序說明:

      例程設計時實際在連續命令序列切換的間隙停留了100MS的時間,這就是說程序中的連續序列是間歇性的;如果要采用非間歇性的連續序列,把中間的延時部分去掉就可以了。

      7、結論

      本例程所闡述的通信序列邏輯處理的方法在筆者的一些項目中得到實際應用,效果也達到預期設想,運行比較穩定,這種PLC通過通信的方式對多臺變頻器通信的方法在實際應用中有很大的參考價值,不僅能夠充分利用EMERSON PLC和變頻器的硬件資源達到節省成本的目的,而且更易于進行整個系統的整合。

      8、參考書目
       艾默生EC20PLC編程參考手冊
       艾默生EC20PLC編程軟件工具手冊
       艾默生EV1000變頻器用戶手冊(MODBUS協議方式)

      文章版權歸西部工控xbgk所有,未經許可不得轉載。

      主站蜘蛛池模板: 日韩高清一区二区三区不卡| 一区二区三区免费视频网站| 亚洲欧洲一区二区三区| 亚洲一区二区三区免费| 国产精品日韩欧美一区二区三区| 国产在线aaa片一区二区99| 国产一区在线观看免费| 国产一区二区三区韩国女主播| 国产精品无圣光一区二区 | 91福利国产在线观看一区二区 | 日本内射精品一区二区视频 | 国产一区二区三区播放心情潘金莲 | 精品女同一区二区三区免费站| 久久久久国产一区二区| 日本高清无卡码一区二区久久| 精品无码国产一区二区三区51安| 日韩精品一区二区三区中文精品| 日韩人妻精品一区二区三区视频 | 中文字幕日韩一区二区不卡| 无码午夜人妻一区二区三区不卡视频| av在线亚洲欧洲日产一区二区| 无码日韩精品一区二区人妻| 无码人妻aⅴ一区二区三区| 无码国产精品一区二区免费式影视 | 中文字幕乱码亚洲精品一区| 亚洲视频一区在线播放| 精品女同一区二区三区免费站| 日本午夜精品一区二区三区电影| 日韩精品一区二区三区色欲AV| 亚洲国产精品一区二区第一页| 亚洲av无码一区二区乱子伦as| 日韩人妻不卡一区二区三区 | 精品视频在线观看你懂的一区 | 在线免费视频一区| 日韩免费无码一区二区视频| 国产精品一区二区三区高清在线| 国产日韩精品一区二区三区| 无码人妻一区二区三区精品视频| 国模吧无码一区二区三区| 无码人妻视频一区二区三区| 成人精品一区二区户外勾搭野战|