技術(shù)文章
需要的硬件:三菱FX3G型PLC,485通訊模塊(FX3G-485BD), 變頻器一臺英威騰,觸摸屏(MT6071IP)。
需要了解內(nèi)容:PLC通信協(xié)議,發(fā)送指令,變頻器通信參數(shù)設(shè)置。
接線
接線較為簡單,將FX3G-485-BD模塊插在PLC上,將SDB和RDB短接,SDA和RDA短接,在變頻器上485+端子引出導(dǎo)線接到模塊的SDA和RDA上,在變頻器上485-端子引出導(dǎo)線接到模塊的SDB和RDB上,采用RS485接口工作半雙工,它的意思就是信號的讀取和寫入不能同時發(fā)送,發(fā)送的時候不能讀取。
變頻器參數(shù)設(shè)置
將變頻器的運行指令和頻率指令都改成MODBUS通信設(shè)定,在P00組上P00.01運行指令通道改為2:通訊運行指令通道(缺省值0),P00.07B頻率指令選擇8:MODBUS通訊設(shè)定(缺省2),P00.09設(shè)定源組合方式1:B,當(dāng)前頻率設(shè)定為B頻率指令。
通訊參數(shù)的設(shè)置,在P14組,P14.00將變頻器的站號設(shè)為1,P14.01波特率設(shè)為9600,P14.02數(shù)據(jù)位校驗設(shè)為無校驗(N, 7, 2)for ASCII。
PLC通訊參數(shù)的設(shè)定
PLC參數(shù)的設(shè)定有兩種方法“
1是在軟件(GX-Works2)里設(shè)置:點擊導(dǎo)航中的參數(shù)→PLC參數(shù)→PLC的系統(tǒng)設(shè)置(2):
PLC系統(tǒng)參數(shù)設(shè)置
2采用程序設(shè)定:
梯形圖參數(shù)設(shè)置
M8161=1,為8位運算,意思就是忽略高8位只傳送數(shù)據(jù)的低8位,為什么這么做后面會說到。MOV HOC88 D8210是通訊格式,它是怎么算出來的,我們看下D8120內(nèi)容:
D8120內(nèi)容
D8210是一個16位的數(shù)據(jù),根據(jù)設(shè)定的參數(shù)來算計算,比如上述程序的H0C88是怎么來的,看下通訊方式是,波特率9600,7位數(shù)據(jù)長度,無奇偶校驗,停止位是2,控制線是無協(xié)議的調(diào)制解調(diào)器模式(RS485接口):
通訊參數(shù)計算
相關(guān)指令
串行數(shù)據(jù)發(fā)送RS,16進(jìn)制轉(zhuǎn)換為ASCII碼ASCI,ASCII碼轉(zhuǎn)換為16進(jìn)制數(shù)HEX.
RS:該指令是用于通過安裝在基本單元上的RS-232C或RS-485串行通信口進(jìn)行無協(xié)議通信,從而執(zhí)行數(shù)據(jù)的發(fā)送和
接收的指令。
RS舉例
RS指令用于從FX可編程控制器發(fā)出的發(fā)送數(shù)據(jù)的起始軟元件和數(shù)據(jù)點數(shù), 以及保存接收數(shù)據(jù)的起始軟元
件, 和可以接收的最大點數(shù),編程按照下列要領(lǐng):
發(fā)送指令
接受指令
ASCII 碼使用的7 位或8 位二進(jìn)制數(shù)組合來表示128 或256 種可能的字符,MODBUS協(xié)議有兩種傳輸模式,ASCII和RTU模式, 本次變頻器采用ASCII模式傳輸信號, 上一章的HMI控制變頻器采用的就是RTU模式。因此采用ASCII模式, 所以數(shù)據(jù)格式M8161選擇8位數(shù)據(jù)模式。
PLC程序
程序大致分為4部分
5.1 變頻器功能說明
采用ASCII模式傳輸數(shù)據(jù),在 ASCII 模式中,幀頭為“:"(“0x3A"),幀尾缺省為“CRLF"(“0x0D"“0x0A")。在 ASCII 方式下,除了幀頭和幀尾之外,其余的數(shù)據(jù)字節(jié)全部以 ASCII 碼方式發(fā)送,先發(fā)送高 4 位位元組,然后發(fā)送低 4位位元組。ASCII 方式下數(shù)據(jù)為 8 位長度。對于‘A’~‘F’,采用其大寫字母的 ASCII 碼。此時數(shù)據(jù)采用 LRC校驗,校驗涵蓋從從機地址到數(shù)據(jù)的信息部分。校驗和等于所有參與校驗數(shù)據(jù)的字符和(舍棄進(jìn)位位)的補碼。
MODBUS報文
ASCII 幀的標(biāo)準(zhǔn)結(jié)構(gòu)
MODBUS對變頻器功能說明:
功能說明
程序
程序可以分5部分
6.1通訊設(shè)定
就是第3PLC通訊參數(shù)的設(shè)定的梯形圖
6.2 ASCII碼轉(zhuǎn)換
ASCII碼轉(zhuǎn)換
根據(jù)ASCII 幀的標(biāo)準(zhǔn)結(jié)構(gòu)將數(shù)據(jù)轉(zhuǎn)換為ASCII碼,
起始符START:3AH
地址Address:就是站號, 兩個ASCII碼組成, 例如站號1, 地址就是01H, 轉(zhuǎn)成ASCII碼就是30,31, PLC監(jiān)控:
程序中顯示的是10進(jìn)制。
功能碼Function:就是要寫入數(shù)據(jù)還是讀取數(shù)據(jù),由兩個ASCII碼組成,寫入是06H, 讀取是03H。
功能碼地址:就是寫入或讀取的地址,由兩個ASCII碼組成。
數(shù)據(jù)內(nèi)容DATA:就是要寫入或讀取的數(shù)據(jù)內(nèi)容, 由2n個ASCII碼組成。
LRC校驗值:LRC檢查碼,由兩個ASCII碼組成
結(jié)束符END:END Hi=0DH, END Lo=0AH。
RS D0 K17 D50 D15 這條指令就是發(fā)送以上內(nèi)容的,D0起始符, D1D2地址,D3D4功能碼,D5D6命令碼高位地址,D7D8命令碼低位地址,D9D10數(shù)據(jù)內(nèi)容高位地址,D11D12數(shù)據(jù)內(nèi)容低位地址,D13D14LRC檢查碼,D15D16結(jié)束符。
6.3 寫入數(shù)據(jù)
寫入數(shù)據(jù)
M8122是送信指令, 表示在發(fā)送信息,ASCI D200 D500 K4.D200為頻率數(shù)據(jù), 將D200數(shù)據(jù)轉(zhuǎn)換成ASCII,例如D200=0ABCH,K4就表示D500=0,D501=A,D502=B,D503=C,只轉(zhuǎn)換4位。
D101站號,D102功能碼,D103D104功能碼高低位地址,D105D106數(shù)據(jù)內(nèi)容。
根據(jù)變頻器的MODBUS功能,我們知道寫入頻率的地址是2001H, 因此高位20H傳到D103,低位01H傳到D104,然后將頻率值傳送到D105D106, 傳送完畢LRC值復(fù)位。
這樣就完成了寫的功能,變頻器的正反停功能根據(jù)上表依次編程。
6.4 讀取數(shù)據(jù)
由于采用半雙工工作,寫入和讀取不能同時進(jìn)行,
數(shù)據(jù)讀取
意思就是讀取數(shù)據(jù)時,必須在送信、回信、寫入指令意外完成。查看變頻器功能表,讀取頻率的地址是3000H。
HMI界面: