在設(shè)計(jì)自由口通信程序時(shí),自由口通信程序設(shè)計(jì)的核心就是使用發(fā)送指令XMT和接收指令RCV對(duì)數(shù)據(jù)進(jìn)行發(fā)送和接收。接收指令RCV應(yīng)用的難點(diǎn),在于如何設(shè)置“判斷接收消息的起始條件和結(jié)束條件”,而對(duì)于發(fā)送指令來講相對(duì)的比較簡單,只需要準(zhǔn)備好數(shù)據(jù),然后使用發(fā)送指令發(fā)送出去即可。 但實(shí)際應(yīng)用中是否是真的就是這樣呢?在一個(gè)通信程序中,需要發(fā)送的數(shù)據(jù)可能比較多,比如說與三菱變頻器的通信,通過三菱變頻器的專用通信協(xié)議來通信,那么需要發(fā)送的數(shù)據(jù)時(shí)有運(yùn)行命令,頻率修改,讀取一些參數(shù),而且這些數(shù)據(jù)均不一樣,因此需要先定義好不同的數(shù)據(jù)在不同的存儲(chǔ)器,當(dāng)發(fā)送哪個(gè)命令的數(shù)據(jù)時(shí)就需要把數(shù)據(jù)給過去。真的是這樣做嗎?個(gè)人不贊同使用這種方法去做,個(gè)人比較贊同把需要發(fā)送的數(shù)據(jù)先做成一個(gè)功能塊,然后根據(jù)需要發(fā)送的數(shù)據(jù)填寫到這個(gè)功能塊的管腳上,發(fā)送指令放于這個(gè)功能塊中,當(dāng)功能塊接通一次,就對(duì)一次的數(shù)據(jù)發(fā)送出去。 就以三菱專用通信協(xié)議為例,發(fā)送運(yùn)行命令和修改頻率及讀取一些參數(shù)的功能為例來進(jìn)行說明。 三菱專用通信協(xié)議內(nèi)容具體大家可以自己網(wǎng)上查找,這里不做詳細(xì)的說明,這里我們主要看下PLC需要發(fā)送到變頻器的數(shù)據(jù)的格式。 PLC往變頻器寫數(shù)據(jù)時(shí)需要發(fā)送的格式:根據(jù)數(shù)據(jù)長度的不一樣分為三種格式,如下所示: PLC讀取變頻器數(shù)據(jù)的時(shí)需要發(fā)送的數(shù)據(jù)格式 變頻器運(yùn)行代碼、修改頻率、讀取變頻器參數(shù)的代碼如下表所示 結(jié)合上面的發(fā)送數(shù)據(jù)的格式,和代碼表,我們可以發(fā)現(xiàn),發(fā)現(xiàn)運(yùn)行命令,和發(fā)送頻率,以及讀取變頻器的參數(shù)值的格式都不一樣,但也有前面部分相同的內(nèi)容,所以我們?cè)谠O(shè)計(jì)功能塊時(shí)需要做判斷,判斷是“讀命令”還是“寫命令”,如果是寫命令,則還進(jìn)一步判斷是“寫運(yùn)行命令”還是寫“頻率命令”根據(jù)這原理,我們可以開始設(shè)計(jì)功能塊。 (1)編寫變量表 (2)程序 編寫好功能塊后,只需要在主程序中調(diào)用這些功能塊,同時(shí)給不同的功能塊賦實(shí)參即可,如下所示: 本程序僅供參考,具體程序可參見技成培訓(xùn)網(wǎng)論壇! |
|