zy988
級別: *
|
PLC 與 變頻器 RS485通訊 時間很快,都工作一個月了,想想運氣不錯,剛進公司馬上就被分配了一個做關于RS485通訊的工作。 變頻器雖然在學校有學過,但資料很少很淺,變頻器的RS485通訊更是從零開始,所以從理論的通過到實踐的通過期間 遇到很多問題。上網收索可以看到很多人問,但很少有人給以回答。所以想了想就把我整理的資料給喜歡PLC的人分享一 下,我認為對于剛接觸RS485的人來說會有很大幫助。(高手見笑了,有不足的地方請指出) 我使用的是匯川H2U plc ,其基本的功能和編程環境和三菱PLC是一樣的。變頻器使用的是三基變頻器。 1.搭建架構,要確定PLC和變頻器的完好性,將匯川plc和變頻器的RS485接口用雙絞線連接起來,在此建議大家再并聯 出兩根線,再下載一個串口調試軟件,用于變頻器命令的確定。(稍后再詳細說明) 2.雙方的參數調整,對著變頻器的使用手冊,將變頻器的調成RS485界面,RS485模式。還有調整它的通訊參數 我調整為 波特率 9600 數據位 8位 停止位 1 無校驗。 PLC里的參數是通過D8120這個存儲器來調整的,通過調整 D8140內的位能改變參數,(具體見D8140詳解)注意PLC和變頻器的通訊參數一定要一樣,因此將D8120調為81H。在通訊 方面匯川和三菱方面有一點很大的區別是要匯川還要確定 D8126這個參數,作為主站有3種模式,兩種是MODBUS協議,還 有一種是自由無協議通訊模式。(這一點一定要注意,這個地方弄了我很久) 我們此次先用自由協議,將D8126調整為 H10.還有就是將M8161置位,這樣使用的8位數據處理模式。 3.命令確定,其實RS485其實就是一種串口通信模式,說白話一點就是我發送一串1,0組成的數據,然后這串命令正好 符合你的要求的話,我就能控制你做相應的事情了(我是這樣理解的)。我用具體的代碼來解釋一下三基的通訊模式, 控制變頻器停止3A 30 31 30 36 32 30 30 30 30 30 30 31 44 38 0D 0A 。3A是一個握手代碼,相當于聲明“我要開始 傳數據啦” 3031其實就是01H的ASCI碼,簡單來說就是減去一個30H(三菱里有專門的轉換成ASCI碼的指令,你也可以直 接加30H)代表變頻器的站號,3036為06的ASCI碼,代表“寫”的意思,32 30 30 30是2000H ASCI碼,代表寫入得地址 ,30 30 30 31 為0001H的ASCI碼,是寫入得“內容”。44 38 是校驗碼,是01+06+20+00+00+01加起來然后反補加一( 我想是起一個放錯的功能吧),然后0D 0A是結束碼相當于聲明“我傳送完啦”總結起來就是 我要往01號變頻器的2000 地址里寫入01H這個數,而這個地址的這個數代表的正是前面所說的“停止”。 新手的話可以利用前面并出來的線和串口調試軟件,將你需要的命令確定出來,看看你的代碼是不是對的,能不能 起作用,然后再編制程序,如果直接編譯程序下載調試,如果沒有效果的話,你不知道問題出在哪里了。 4.然后是根據編譯程序,就三菱來說的話用到RS指令,RS A B C D ,A 代表發送起始地址,B代表從A開始后發送的 數據個數,C是存儲起始地址,D代表存儲個數。因此你可以把3A 30 31 30 36 32 30 30 30 30 30 30 31 44 38 0D 0A 放到從D100到D116中,然后再 RS D100 K17 D200 0 指令, 再觸發M8122(發送命令)。就能把這條代碼發出去了,然后就能起到 控制效果。 匯川還有MODBUS標準協議,比自由協議要簡單很多,把握手,校驗,停止,都做到一條指令里去了,但是知道了自由 協議的話MODBUS就好做了,所以這里就不介紹啦。 理論同的話實踐是會碰到許多問題,一定要注意很多細節的調整,我最近要弄一個LG的RS485通訊,又碰到了新的一 些問題,所以理論和實踐還是有很大區別的,在此要感謝王工程師和網上認識的李工程師,對我進行了很多指導。 |
---|---|
本帖最近評分記錄: |