首頁/ 汽車/ 正文

變頻器的Modbus通訊控制(一)

下面我們以英威騰GD200A系列變頻器為例給大家介紹如何透過Modbus協議進行通訊控制,在此之前簡單給大家做一些前提工作。

Mdobus協議內容

變頻器接線

變頻器引數設定

Modbus通訊資料格式

變頻器通訊地址

變頻器的Modbus通訊控制(一)

Modbust協議

關於Modbus通訊協議這塊我們參考英威騰變頻器的說明手冊進行簡單理解

變頻器採用Modbus 通訊協議進行的主從通訊可透過 PC/PLC、控制上位機等實現集中控制(設定變頻器控制命令、執行頻率、相關功能碼引數的修改,變頻器工作狀態及故障資訊的監控等),以適應特定的應用要求。

Modbus 協議是一種軟體協議,是應用於電子控制器上的一種通用語言。透過此協議,控制器可以經由傳輸線路和其它裝置進行通訊。它是一種通用工業標準,有了它,不同廠商生產的控制裝置可以連成工業網路,進行集中監控。

Modbus 協議有兩種傳輸模式:ASCII 模式和 RTU(遠端終端單元,Remote Terminal Units)模式。在同一個 Modbus 網路中,所有的裝置傳輸模式、波特率、資料位、校驗位、停止位等基本引數必須一致。

Modbus 網路是一種單主多從的控制網路,即同一個 Modbus 網路中只有一臺裝置是主機,其它裝置都為從機。主機可以單獨地對某臺從機通訊,也可以對所有從機發布廣播資訊。對於單獨訪問的命令,從機都應返回一個迴應資訊;對應主機發出的廣播資訊,從機無需反饋迴應資訊給主機。

簡單來說就是在Modbus通訊中變頻器作為從站,我們的PLC或者其他控制器作為主站進行通訊,傳送的資料格式這裡使用RTU或者ASCII來完成傳輸,因為在大多數的中低端型號的變頻器中Modbus是支援最廣泛的一種通訊。

變頻器的Modbus通訊控制(一)

Modbust接線

關於它的接線很簡單使用兩根線纜即可完成通訊,採用RS485介面實現通訊,介面型別形式有許多,比如普通端子型別、RJ45網口、RJ11電話介面等型別。RS485 介面工作於半雙工,資料訊號採用差分傳輸方式,使用一對雙絞線來完成。端子定義名稱通常也不統一的。例如A(+)、B(-),有SG+、SG-,DX+、DX-,SDA(RDA)、SDB(RDB)等等,只要正的與485+連線,負的與485-連線即可,可透過變頻器手冊來進行定義查詢。英威騰變頻器的RS485介面的端子定義就是485+和485-,我們只需要把控制器的對應的通訊線接入即可。

變頻器引數設定

變頻器的最主要的控制就是頻率命令與執行命令的設定,簡單來講就是調速與開關的控制,這個引數通常位於基本引數組,這裡我們只設置常用的一些引數。通訊引數一般需要設定站號、波特率(傳輸速度)、資料位校驗設定、通訊超時等。

變頻器的Modbus通訊控制(一)

後面的內容我們依次使用PC上的

串列埠通訊助手

、三菱FX3G系列

PLC

、西門子200smart系列的

PLC

以及

HMI

觸控式螢幕來演示對英威騰變頻器的控制。

變頻器引數設定如下:

P00。01執行指令通道選擇2通訊執行指令通道

P00。06A頻率指令選擇8MODBUS通訊設定

P00。09設定源組合方式選擇0A,當前頻率設定A頻率指令

P14。00本機通訊地址設定站號1

P14。01通訊波特率設定為3(9600)

P14。02資料位校驗設定為3無校驗(N,8,2)for RTU或者15無校驗(N,8,2)for ASCII

其中波特率與資料校驗可隨意設定,需要與控制器設定一致即可。

Modbus資料格式

RTU幀的標準結構

幀頭START

T1-T2-T3-T4(3。5個位元組的傳輸時間)

從機地址域ADDR

通訊地址:0~247(十進位制)

功能域CMD

03H:讀從機引數

06H:寫從機引數

資料域

DATA(N-1)

。 。 。

DATA(0)

2*N個位元組的資料,該部分為通訊的主要內容,也是通訊中,資料

交換的核心

CRC CHK 低位

檢測值:CRC校驗值(16BIT)

CRC CHK 高位

幀尾END

T1-T2-T3-T4(3。5個位元組的傳輸時間)

從機地址就是變頻器的站號,功能碼這裡介紹兩個06H(寫) 03H(讀),資料就是要寫入的資料或者讀取資料的個數,例如設定變頻器頻率50。00Hz,傳送的資料就是13 88(16進位制資料,按照高低8位),如果要讀取變頻器的頻率,傳送的資料就是00 01(讀取2個位元組的資料)。校驗碼指的是整個資料校驗,RTU格式使用CRC校驗,ASCII格式使用LRC校驗,這個校驗碼可透過串列埠助手計算或者程式設計完成。其計算原理我們在後續的PLC程式進行講解。

變頻器的Modbus通訊控制(一)

ASCII幀的標準結構

幀頭

起始字元‘:’(0x3A)

從機地址地址高位

通訊地址:

8-bit 地址由2個ASCII碼組合

從機地址地址低位

功能碼高位

功能碼:

8-bit 地址由2個ASCII碼組合

功能碼低位

資料域

DATA(N-1)

。 。 。

DATA(0)

資料內容:

nx8-bit 資料內容由2n個ASCII碼組合

n<=16,最大32個ASCII碼

LRC CHK高位

LRC檢查碼:

8-bit 檢驗碼由2個ASCII碼組合

LRC CHK低位

幀尾高位

結束符:

END Hi=CR(0x0D),END Lo=LF(0x0A)

幀尾低位

在ASCII資料中每個 16 進位制都需要進行對應字元的ASCII碼的轉換如下表:

字元

“0”

“1”

“2”

“3”

“4”

“5”

“6”

“7”

ASCII碼

30H

31H

32H

33H

34H

35H

36H

37H

字元

“8”

“9”

“A”

“B”

“C”

“D”

“E”

“F”

ASCII碼

38H

39H

41H

42H

43H

44H

45H

46H

這其中RTU和ASCII的編碼系統與資料格式在這裡不做詳細說明,對於我們來講也不太需要,我們只要瞭解與變頻器通訊需要傳送那些資料,工程資料與通訊資料是如何轉換的即可,下面我們分別以RTU與ASCII為例說明通訊的資料傳送過程。

將5000(十進位制)資料寫入到站號為2地址0004(16進位制)的變頻器當中,首先我們需要把5000的十進位制資料轉換為16進位制的1388H(

數字後跟一個“H”或者字首“0x”表示 16 進位制數字

),因為資料都是8位傳送的,所以有1388H拆分為高為13H與低位88H依次傳送。那麼按照RTU的標準格式:

RTU傳送

站號

02H

功能碼(傳送)

06H

變頻器資料地址高位

00H

變頻器資料地址低位

04H

傳送資料的高位

13H

傳送資料的低位

88H

校驗碼CRC

低位

C5H

校驗碼CRC

高位

6EH

這裡我們需要注意CRC校驗碼的順序是先低位後高位,在計算CRC的結果後需要進行高低位轉換。

ASCII傳送

字元→ASCII

STX起始符

3AH

站號

“0”→

30H

“2”→

32H

資料地址高位

“0”→

30H

“0”→

30H

資料地址低位

“0”→

30H

“4”→

34H

傳送資料高位

“1”→

31H

“3”→

31H

傳送資料低位

“8”→

31H

“8”→

31H

校驗碼LRC低位

“5”→

35H

校驗碼LRC高位

“9”→

39H

結束符高位

0DH

結束符低位

0AH

變頻器通訊地址

所謂的通訊地址就是要知道通訊資料的地址定義,用於控制變頻器的執行、獲取變頻器狀態資訊及變頻器相關功能引數設定等,這裡我們介紹常用的幾個地址。

變頻器的Modbus通訊控制(一)

控制功能

地址定義

資料說明

讀寫特性

正轉命令

2000H

0001H

W/R

反轉命令

2000H

0002H

W/R

停止命令

2000H

0001H

W/R

頻率設定

2001H

0~Fmax(位:0。01Hz)

變頻器狀態

2100H

0001H:正轉執行

0001H:反轉執行

0001H:停機

0001H:故障

R

執行頻率

3000H

設定範圍:0。00Hz~P00。03

R

輸出電壓

3003H

設定範圍:0~1200V

R

輸出電流

3004H

設定範圍:0。0~5000。0A

R

R/W 特性表示該功能是讀/寫特性,R代表可進行讀取操作,W代表可進行寫入操作,W/R表示可讀取和寫入操作。

以上幾部分就是做Modbus通訊的前提內容,後面的內容我們將透過PC上的串列埠通訊、PLC以及觸控式螢幕依次演示與英威騰變頻器的通訊控制。

相關文章

頂部