需要的硬件:三菱FX3G型PLC,485通訊模塊(FX3G-485BD), 變頻器一台英威騰,觸摸屏(MT6071IP)。
需要了解內(nei) 容:PLC通信協議,發送指令,變頻器通信參數設置。
一、接線
接線較為(wei) 簡單,將FX3G-485-BD模塊插在PLC上,將SDB和RDB短接,SDA和RDA短接,在變頻器上485+端子引出導線接到模塊的SDA和RDA上,在變頻器上485-端子引出導線接到模塊的SDB和RDB上,采用RS485接口工作半雙工,它的意思就是信號的讀取和寫(xie) 入不能同時發送,發送的時候不能讀取。
▼ 接線圖

二、變頻器參數設置
將變頻器的運行指令和頻率指令都改成MODBUS通信設定,在P00組內(nei) ,P00.01運行指令通道改為(wei) :“2:通訊運行指令通道(缺省值0)”,P00.07B頻率指令選擇:“8:MODBUS通訊設定(缺省2)”,P00.09設定源組合方式:“1:B,當前頻率設定為(wei) B頻率指令”。
通訊參數的設置,在P14組,P14.00將變頻器的站號設為(wei) 1,P14.01波特率設為(wei) 9600,P14.02數據位校驗設為(wei) 無校驗(N, 7, 2)for ASCII。
三、PLC通訊參數的設定
PLC參數的設定有兩(liang) 種方法:
1、是在軟件(GX-Works2)裏設置:點擊導航中的參數→PLC參數→PLC的係統設置(2):
▼ PLC係統參數設置

PLC設定為(wei) 00主站,通訊格式與(yu) 變頻器一致。
2、采用程序設定:
▼ 梯形圖參數設置

M8161=1,為(wei) 8位運算,意思就是忽略高8位隻傳(chuan) 送數據的低8位,為(wei) 什麽(me) 這麽(me) 做後麵會(hui) 說到。
MOV H0C88 D8210是指定通訊格式,它是怎麽(me) 算出來的,我們(men) 看下D8120內(nei) 容:
▼ D8120內(nei) 容

D8210是一個(ge) 16位的數據,根據設定的參數來算計算,比如上述程序的H0C88是怎麽(me) 來的,看下通訊方式是,波特率9600,7位數據長度,無奇偶校驗,停止位是2,控製線是無協議的調製解調器模式(RS485接口):
▼ 通訊參數計算

四、相關(guan) 指令
串行數據發送RS,16進製轉換為(wei) ASCII碼ASCI,ASCII碼轉換為(wei) 16進製數HEX.
RS:該指令是用於(yu) 通過安裝在基本單元上的RS-232C或RS-485串行通信口進行無協議通信,從(cong) 而執行數據的發送和接收的指令。
▼ RS舉(ju) 例

RS指令用於(yu) 指定從(cong) FX可編程控製器發出的發送數據的起始軟元件和數據點數, 以及保存接收數據的起始軟元件, 和可以接收的最大點數,編程按照下列要領:
▼ 發送指令

▼接受指令

ASCII 碼使用指定的7 位或8 位二進製數組合來表示128 或256 種可能的字符,MODBUS協議有兩(liang) 種傳(chuan) 輸模式,ASCII和RTU模式, 本次變頻器采用ASCII模式傳(chuan) 輸信號, 所以數據格式M8161選擇8位數據模式。
五、變頻器功能說明
采用ASCII模式傳(chuan) 輸數據,在 ASCII 模式中,幀頭為(wei) “:”(“0x3A”),幀尾缺省為(wei) “CRLF”(“0x0D”“0x0A”)。
在 ASCII 方式下,除了幀頭和幀尾之外,其餘(yu) 的數據字節全部以 ASCII 碼方式發送,先發送高 4 位位元組,然後發送低 4位位元組。
ASCII 方式下數據為(wei) 8 位長度。
對於(yu) 'A’~'F’,采用其大寫(xie) 字母的 ASCII 碼。
此時數據采用 LRC校驗,校驗涵蓋從(cong) 從(cong) 機地址到數據的信息部分。
校驗和等於(yu) 所有參與(yu) 校驗數據的字符和(舍棄進位位)的補碼。
▼ MODBUS報文

▼ ASCII 幀的標準結構

MODBUS對變頻器功能說明:
▼ 變頻器功能說明

六、程序
程序可以分5部分。
6.1通訊設定
就是第三PLC通訊參數的設定的梯形圖。
6.2 ASCII碼轉換
▼ ASCII碼轉換

根據ASCII 幀的標準結構將數據轉換為(wei) ASCII碼,起始符START:3AH。
地址Address:就是站號, 兩(liang) 個(ge) ASCII碼組成, 例如站號1, 地址就是01H, 轉成ASCII碼就是30,31, PLC監控:
程序中顯示的是10進製。
功能碼Function:就是要寫(xie) 入數據還是讀取數據,由兩(liang) 個(ge) ASCII碼組成,寫(xie) 入是06H, 讀取是03H。
功能碼地址:就是寫(xie) 入或讀取的地址,由兩(liang) 個(ge) ASCII碼組成。
數據內(nei) 容DATA:就是要寫(xie) 入或讀取的數據內(nei) 容, 由2n個(ge) ASCII碼組成。
LRC校驗值:LRC檢查碼,由兩(liang) 個(ge) ASCII碼組成。
結束符END:END Hi=0DH, END Lo=0AH。
RS D0 K17 D50 D15 這條指令就是發送以上內(nei) 容的,D0起始符, D1D2地址,D3D4功能碼,D5D6命令碼高位地址,D7D8命令碼低位地址,D9D10數據內(nei) 容高位地址,D11D12數據內(nei) 容低位地址,D13D14LRC檢查碼,D15D16結束符。
6.3 寫(xie) 入數據
▼ 寫(xie) 入數據

M8122是送信指令, 表示在發送信息,ASCI D200 D500 K4.D200為(wei) 頻率數據, 將D200數據轉換成ASCII,例如D200=0ABCH,K4就表示D500=0,D501=A,D502=B,D503=C,隻轉換4位。
D101站號,D102功能碼,D103D104功能碼高低位地址,D105D106數據內(nei) 容。
根據變頻器的MODBUS功能,我們(men) 知道寫(xie) 入頻率的地址是2001H, 因此高位20H傳(chuan) 到D103,低位01H傳(chuan) 到D104,然後將頻率值傳(chuan) 送到D105D106, 傳(chuan) 送完畢LRC值複位。
這樣就完成了寫(xie) 的功能,變頻器的正反停功能根據上表依次編程。
6.4 讀取數據
由於(yu) 采用半雙工工作,寫(xie) 入和讀取不能同時進行。
▼ 數據讀取

意思就是讀取數據時,必須在送信、回信、寫(xie) 入指令意外完成。
查看變頻器功能表,讀取頻率的地址是3000H。
HMI界麵: