plcs
級別: *
|
1 引言 變頻器與plc配套應用是常見的自動化集成系統。由plc發出啟動、停止、運行頻率等指令,來控制變頻器的運轉及頻率輸出,達到控制生產過程自動化目的。基于串行通訊的變頻器與plc集成技術具有的優點得到廣泛的工程重視。本文介紹三菱變頻器三菱變頻器f700與西門子plc s7-200在自由口模式下的串行通信,達到plc對變頻器的便捷控制。 2 變頻器與PLC的連接 plc s7-200與三菱變頻器通信采用rs485接口的串行方式。s7-200側為九針接口,三菱變頻器為rs485端子,采用二線式連接,電纜接線如附圖所示。 附圖 plc與變頻器連接 3 通訊系統設計 3.1 plc的自由口通信模式 s7-200支持自由口通信模式。自由口模式使s7-200可以與許多通信協議公開的其他設備和控制器進行通信。波特率為1200~115200 b/s(可調整)。 自由口模式的數據字節格式總是有一個起始位、一個停止位,用戶可以選擇7位或者8位數據,也可以選擇是否有校驗位以及是奇校驗還是偶校驗。 在自由口模式下,通過使用發送中斷、接收中斷、發送指令(xmt)和接收指令(rcv),為所有通信活動編程。在自由口模式下,通信協議完全由用戶程序控制。 3.2 三菱變頻器專用協議 在自由口模式下,plc與變頻器通信遵循三菱變頻器專用協議。首先,按照變頻器通訊規格對變頻器參數進行設置(具體參照變頻器手冊)。其次通信采用以下步驟: 向變頻器發送要求數據(變頻器不會自動發送數據),經變頻器等待時間后,從變頻器向plc發送返回數據,等待變頻器處理事件后,進行再處理。plc與變頻器通信以ascii碼(16進制)進行。plc對變頻器進行運行狀態監控、運行頻率設置、啟動、停止等操作。這些數據的收發采用不同的數據模式。如運行頻率采用附表所示數據模式。 附表中,enq為控制符,實際發送16進制數據05,其余皆為ascii碼表示。變頻器站號范圍為0~31,指令代碼在變頻器手冊中給出,如運行頻率寫入為‘ee’。不同運行指令有不同數據。求和校驗求法如下:將從“站號”到“數據”的ascii碼按16進制加法求總和,再對和的低兩位進行ascii編碼。字符數13是結束字符可以是cr或lf。 4 自由口通信編程設計 下面用實例來介紹自由口模式下的通信,plc向變頻器發送20hz頻率。(要使頻率寫入有效,開始時plc先向變頻器發送“寫入”指令,命令代碼‘fb’。) 主程序: 網絡1: ld sm0.1 //初始化 movb 16#09, smb130 //端口1自由口模式,波特率9600,每個字符8位,無校驗 movb 16#b0, smb187 //寫接收指令控制字,允許rcv,檢測信息結束字符、空閑線起始條件 movb 16#0d, smb189 //設置信息結束字符為16#0d(回車符) movw +5, smw190 //設置空閑線檢測時間間隔為5ms movb 100, smb194 //設置最大字符數為100 網絡2: ld sm0.0 movb 16#0d, vb100 //發送數據字符數為13 movb 16#05, vb101 //通訊要求 movb 16#30, vb102 //變頻器站號01 movb 16#31, vb103 movb 16#44, vb104 //頻率寫入命令代碼 movb 16#44, vb105 movb 16#31, vb106 //等待時間1×10ms movb 16#32, vb107 //發送頻率20hz movb 16#30, vb108 movb 16#30, vb109 movb 16#30, vb110 movb 16#44, vb111 //求和校驗碼de movb 16#45, vb112 movb 16#0d, vb113 //結束字符 movb 0, mb10 網絡3: ld sm0.0 atch int_0:int0, 26 //端口1發送完中斷,連接到中斷0 atch int_2:int2, 24 //端口1接收完中斷,連接到中斷2 eni //允許中斷 網絡4: ld sm0.0 r sm187.7, 1 //禁止接收(避免接收發送沖突) rcv vb149, 1 xmt vb100, 1 //開始發送 中斷程序0: 網絡1: ld sm0.0 movb 5, smb35 atch int_1:int1, 11 //定時中斷到中斷1 中斷程序1: 網絡1: ld sm0.0 dtch 11 s sm187.7, 1 //允許接收 rcv vb149, 1 //開始接收 中斷程序2: 網絡1: ld sm0.0 incb mb10 //每發送接收完一次mb10加1 ab= mb10, 3 //當超過3次,退出不再發送 creti 網絡2: ldb= smb186, 16#20 //接收無誤條件下 ab= vb150, 16#06 //接收數據無錯誤,退出 creti not //否則,再發送 r sm187.7, 1 rcv vb149, 1 xmt vb100, 1 5 結束語 變頻器與plc在自由口模式下通信,具有很大的靈活性,方便了工程應用。筆者在實際項目中進行了運用,以上方法成功通過,并收到較好的效果。 |
---|---|
本帖最近評分記錄: |