zy988
級(jí)別: *
精華主題: * 篇
發(fā)帖數(shù)量: * 個(gè)
工控威望: * 點(diǎn)
下載積分: * 分
在線(xiàn)時(shí)間: (小時(shí))
注冊(cè)時(shí)間: *
最后登錄: *
查看zy988的 主題 / 回貼
樓主  發(fā)表于: 2010-01-31 22:42
PLC 與 變頻器 RS485通訊

  時(shí)間很快,都工作一個(gè)月了,想想運(yùn)氣不錯(cuò),剛進(jìn)公司馬上就被分配了一個(gè)做關(guān)于RS485通訊的工作。
  
  變頻器雖然在學(xué)校有學(xué)過(guò),但資料很少很淺,變頻器的RS485通訊更是從零開(kāi)始,所以從理論的通過(guò)到實(shí)踐的通過(guò)期間

遇到很多問(wèn)題。上網(wǎng)收索可以看到很多人問(wèn),但很少有人給以回答。所以想了想就把我整理的資料給喜歡PLC的人分享一

下,我認(rèn)為對(duì)于剛接觸RS485的人來(lái)說(shuō)會(huì)有很大幫助。(高手見(jiàn)笑了,有不足的地方請(qǐng)指出)
  
  我使用的是匯川H2U plc ,其基本的功能和編程環(huán)境和三菱PLC是一樣的。變頻器使用的是三基變頻器。

  1.搭建架構(gòu),要確定PLC和變頻器的完好性,將匯川plc和變頻器的RS485接口用雙絞線(xiàn)連接起來(lái),在此建議大家再并聯(lián)

出兩根線(xiàn),再下載一個(gè)串口調(diào)試軟件,用于變頻器命令的確定。(稍后再詳細(xì)說(shuō)明)

  2.雙方的參數(shù)調(diào)整,對(duì)著變頻器的使用手冊(cè),將變頻器的調(diào)成RS485界面,RS485模式。還有調(diào)整它的通訊參數(shù)

我調(diào)整為 波特率 9600 數(shù)據(jù)位 8位  停止位 1  無(wú)校驗(yàn)。 PLC里的參數(shù)是通過(guò)D8120這個(gè)存儲(chǔ)器來(lái)調(diào)整的,通過(guò)調(diào)整

D8140內(nèi)的位能改變參數(shù),(具體見(jiàn)D8140詳解)注意PLC和變頻器的通訊參數(shù)一定要一樣,因此將D8120調(diào)為81H。在通訊

方面匯川和三菱方面有一點(diǎn)很大的區(qū)別是要匯川還要確定 D8126這個(gè)參數(shù),作為主站有3種模式,兩種是MODBUS協(xié)議,還

有一種是自由無(wú)協(xié)議通訊模式。(這一點(diǎn)一定要注意,這個(gè)地方弄了我很久) 我們此次先用自由協(xié)議,將D8126調(diào)整為

H10.還有就是將M8161置位,這樣使用的8位數(shù)據(jù)處理模式。

  3.命令確定,其實(shí)RS485其實(shí)就是一種串口通信模式,說(shuō)白話(huà)一點(diǎn)就是我發(fā)送一串1,0組成的數(shù)據(jù),然后這串命令正好

符合你的要求的話(huà),我就能控制你做相應(yīng)的事情了(我是這樣理解的)。我用具體的代碼來(lái)解釋一下三基的通訊模式,

控制變頻器停止3A 30 31 30 36 32 30 30 30 30 30 30 31 44 38 0D 0A 。3A是一個(gè)握手代碼,相當(dāng)于聲明“我要開(kāi)始

傳數(shù)據(jù)啦” 3031其實(shí)就是01H的ASCI碼,簡(jiǎn)單來(lái)說(shuō)就是減去一個(gè)30H(三菱里有專(zhuān)門(mén)的轉(zhuǎn)換成ASCI碼的指令,你也可以直

接加30H)代表變頻器的站號(hào),3036為06的ASCI碼,代表“寫(xiě)”的意思,32 30 30 30是2000H ASCI碼,代表寫(xiě)入得地址

,30 30 30 31 為0001H的ASCI碼,是寫(xiě)入得“內(nèi)容”。44 38 是校驗(yàn)碼,是01+06+20+00+00+01加起來(lái)然后反補(bǔ)加一(

我想是起一個(gè)放錯(cuò)的功能吧),然后0D 0A是結(jié)束碼相當(dāng)于聲明“我傳送完啦”總結(jié)起來(lái)就是 我要往01號(hào)變頻器的2000

地址里寫(xiě)入01H這個(gè)數(shù),而這個(gè)地址的這個(gè)數(shù)代表的正是前面所說(shuō)的“停止”。
    
     新手的話(huà)可以利用前面并出來(lái)的線(xiàn)和串口調(diào)試軟件,將你需要的命令確定出來(lái),看看你的代碼是不是對(duì)的,能不能

起作用,然后再編制程序,如果直接編譯程序下載調(diào)試,如果沒(méi)有效果的話(huà),你不知道問(wèn)題出在哪里了。

   4.然后是根據(jù)編譯程序,就三菱來(lái)說(shuō)的話(huà)用到RS指令,RS A B C D ,A 代表發(fā)送起始地址,B代表從A開(kāi)始后發(fā)送的

數(shù)據(jù)個(gè)數(shù),C是存儲(chǔ)起始地址,D代表存儲(chǔ)個(gè)數(shù)。因此你可以把3A 30 31 30 36 32 30 30 30 30 30 30 31 44 38 0D 0A

放到從D100到D116中,然后再 RS D100 K17 D200 0  指令, 再觸發(fā)M8122(發(fā)送命令)。就能把這條代碼發(fā)出去了,然后就能起到

控制效果。

   匯川還有MODBUS標(biāo)準(zhǔn)協(xié)議,比自由協(xié)議要簡(jiǎn)單很多,把握手,校驗(yàn),停止,都做到一條指令里去了,但是知道了自由

協(xié)議的話(huà)MODBUS就好做了,所以這里就不介紹啦。

   理論同的話(huà)實(shí)踐是會(huì)碰到許多問(wèn)題,一定要注意很多細(xì)節(jié)的調(diào)整,我最近要弄一個(gè)LG的RS485通訊,又碰到了新的一

些問(wèn)題,所以理論和實(shí)踐還是有很大區(qū)別的,在此要感謝王工程師和網(wǎng)上認(rèn)識(shí)的李工程師,對(duì)我進(jìn)行了很多指導(dǎo)。
  
本帖最近評(píng)分記錄:
  • 下載積分:+1(litongan)
  • 下載積分:+2(cooller115) 熱心助人!謝謝
  • 下載積分:+10(sjm213) 支持原創(chuàng)
    xiaohuayuan
    級(jí)別: *
    精華主題: * 篇
    發(fā)帖數(shù)量: * 個(gè)
    工控威望: * 點(diǎn)
    下載積分: * 分
    在線(xiàn)時(shí)間: (小時(shí))
    注冊(cè)時(shí)間: *
    最后登錄: *
    查看xiaohuayuan的 主題 / 回貼
    1樓  發(fā)表于: 2010-03-08 13:35
    學(xué)習(xí)了,感謝