V80在變頻通訊中的應(yīng)用
一、 前言
變頻器的應(yīng)用非常廣泛,在很多應(yīng)用場(chǎng)合需要頻繁修改運(yùn)行頻率、停止或啟動(dòng)變頻器,手工調(diào)節(jié)面版方式已經(jīng)不能滿足使用需要。
用模擬信號(hào)控制變頻器運(yùn)行頻率,數(shù)字信號(hào)控制變頻器啟動(dòng)或停止,這種方式需要另外購(gòu)置模擬信號(hào)模塊,控制多臺(tái)變頻器時(shí),成本會(huì)增加很多。在控制距離比較遠(yuǎn)的情況下,模擬信號(hào)會(huì)受到距離的影響,衰減很大。
用V80系列PLC通訊控制變頻器運(yùn)行頻率、數(shù)字信號(hào)控制變頻器啟動(dòng)或停止,這樣不僅能控
制單臺(tái)也能控制多臺(tái)變頻器,而且能很好的控制成本。V80支持MODBUS RTU通訊協(xié)議和自由通訊協(xié)議,它可以支持RS232和RS485,V80的COM1口為RS232通訊接口,COM2口為RS485通訊接口。
V80系列PLC單元所提供的MODBUS 主站功能,進(jìn)行參數(shù)設(shè)置及動(dòng)作控制。通過該功能可完成主站單元對(duì)多臺(tái)MODBUS從站單元聯(lián)機(jī),進(jìn)行數(shù)據(jù)交換,也可直接與其它支持標(biāo)準(zhǔn)MODBUS的設(shè)備連接。
M_BUS指令,上節(jié)點(diǎn):M_BUS讀寫命令, 0 => READ, 1 => WRITE。
中節(jié)點(diǎn):讀寫M_BUS單元的設(shè)備編號(hào)(1-254),
0 (或255)=> 廣播方式,#256~#9999無效。
下節(jié)點(diǎn):M_BUS菜單參數(shù)設(shè)定區(qū),6個(gè)寄存器地址
地址偏移1:高位錯(cuò)誤信息;
地址偏移2:主站類型;
地址偏移3:主站尋地址;
地址偏移4:從站類型;
地址偏移5:從站尋地址;
地址偏移6:讀或?qū)懙臄?shù)據(jù)數(shù)量;
自由通訊指令有發(fā)送指令XMT和接收指令RCV。
XMT發(fā)送指令必須先設(shè)置特殊繼電器09933為ON,此時(shí),V80通訊口2是在自由通訊模式下,ModBus主從功能被禁止。
上節(jié)點(diǎn):發(fā)送區(qū)首地址,每個(gè)數(shù)據(jù)占十六位,低八位為待發(fā)數(shù)據(jù),高八位參見說明書。
中節(jié)點(diǎn):發(fā)送長(zhǎng)度。
下節(jié)點(diǎn):錯(cuò)誤指示,非0即表示有錯(cuò)誤產(chǎn)生。
RCV自由通訊接收指令可以設(shè)置字符超時(shí)時(shí)間,開始字符,接收字符,最大字符數(shù)。詳見說明書。
二、V80系列提供MODBUS通訊協(xié)議
1、 寫單個(gè)線圈(功能碼05H)
設(shè)備地址+功能碼(05)+線圈地址(XXXX)+ OFF線圈0000(ON線圈FF00)+ CRC 16
寫第1個(gè)線圈為ON報(bào)文:01 05 0000 FF00 8C3A
01H設(shè)備地址
05H功能碼
0000H線圈地址為輸出第1 個(gè)
FF00置為ON
8C3A為CRC 16校驗(yàn)
寫第1個(gè)線圈為OFF報(bào)文:01 05 0000 0000 CDCA
2、 寫單個(gè)寄存器(功能碼06H)
設(shè)備地址+功能碼(06)+寄存器地址(XXXX)+ 數(shù)據(jù) + CRC 16
寫數(shù)據(jù)5到第1個(gè)寄存器報(bào)文:01 06 0000 0005 49 C9
01H設(shè)備地址
06H功能碼
0000H寄存器地址為第1 個(gè),40001
0005H寫入數(shù)據(jù)00005H
49C9為CRC 16校驗(yàn)
3、 寫多個(gè)線圈(功能碼0FH)
設(shè)備地址 + 功能碼(0F)+ 線圈地址 + 線圈長(zhǎng)度 + 線圈數(shù)據(jù) + CRC 16
連續(xù)寫16個(gè)線圈為ON報(bào)文:01 0F 0000 0010 02 FFFF E390
01H設(shè)備地址
0FH功能碼
0000H線圈地址
0010H控制線勸長(zhǎng)度為16個(gè)
FFFF表示bit0-bit15全為ON(0表示OFF,1表示ON)
E390為CRC 16校驗(yàn)
連續(xù)寫16個(gè)線圈不同時(shí)為ON的報(bào)文:01 0F 0000 0010 02 0F00 E7D0
01 0F 0000 0010 02 F000 A620
01 0F 0000 0010 02 0100 E3B0
01 0F 0000 0010 02 0200 E340
01 0F 0000 0010 02 0300 E2D0
01 0F 0000 0010 02 00F0 E264
連續(xù)寫32個(gè)線圈為ON報(bào)文:01 0F 0000 0020 04 FFFF FFFF C51C
4、 寫多個(gè)寄存器(功能碼10H)
設(shè)備地址 + 功能碼(10)+ 寄存器地址 +寄存器長(zhǎng)度 + 數(shù)據(jù)個(gè)數(shù) + 數(shù)據(jù) + CRC 16
連續(xù)寫1個(gè)寄存器(40001)報(bào)文:01 10 0000 0001 02 0005 6653
把0005寫到40001寄存器
01設(shè)備地址
10功能碼
0000寄存器地址為40001
0001寫寄存的個(gè)數(shù)為1
02寫的數(shù)據(jù)為它后面的兩個(gè)00和05。
0005數(shù)據(jù)為5
6653為CRC 16校驗(yàn)
連續(xù)寫2個(gè)寄存器(40001、40002)
報(bào)文:01 10 0000 0002 04 0007 0009 8268
把0007寫到寄存器40001,0009寫到寄存器40002
連續(xù)寫2個(gè)寄存器(40001、40002、 40003)
報(bào)文:01 10 0000 0003 06 0007 0009 0005 4341
把0007寫到40001,0009寫到40002,0005寫到40003
5、讀線圈狀態(tài)(功能碼01H)
設(shè)備地址 + 功能碼(01)+ 線圈地址 + 線圈長(zhǎng)度 + CRC 16校驗(yàn)
讀20個(gè)線圈:01 01 0000 0014 3C05(讀從第1個(gè)線圈到20個(gè)線圈)
01設(shè)備地址
01功能碼
0000線圈首地址
0014讀長(zhǎng)度20個(gè)線圈
3C05為CRC 16校驗(yàn)
返回:01 01 03 XX XX XX ZZZZ
01設(shè)備地址
01功能碼
03字節(jié)長(zhǎng)度,表示后面返回的3個(gè)字節(jié)
XX XX XX讀出的20個(gè)線圈的狀態(tài)(每組XX表示8個(gè)位)
ZZZZ為CRC 16校驗(yàn)
6、讀寄存器(功能碼03H)
讀3個(gè)寄存器:01 03 0000 0003 05CB
01設(shè)備地址
03功能碼
0000寄存器首地址
0003 長(zhǎng)度(讀3個(gè)寄存器)
05CB為CRC 16校驗(yàn)
返回:01 03 06 XX XX XX XX XX XX ZZZZ
01 設(shè)備地址
03功能碼
06字節(jié)長(zhǎng)度(讀回的3個(gè)寄存器,長(zhǎng)度為6個(gè)字節(jié))
XX XX XX XX XX XX讀出的3個(gè)寄存器
ZZZZ 為CRC 16校驗(yàn)
三、 V80與丹佛斯變頻器通訊
1、 變頻參數(shù)設(shè)置
海利普HOLIP-C+變頻器(此變頻器不支持標(biāo)準(zhǔn)MODBUS協(xié)議,可用V80的自由通訊功能塊實(shí)現(xiàn)控制)
C12設(shè)置為2運(yùn)轉(zhuǎn)指令由通訊口給定
C13設(shè)置為2運(yùn)轉(zhuǎn)頻率由通訊給定
C109設(shè)置為1(根據(jù)需要設(shè)置地址)設(shè)備地址為1
C110設(shè)置為1波特率為9600bit/s
C111設(shè)置為4,方式為8E1 FOR RTU(數(shù)據(jù)8位,1位停止位,偶校驗(yàn),RTU模式)
2、 V80參數(shù)設(shè)置
COM2通訊口(RS485接口)
波特率9600bps,偶校驗(yàn),使用自由通訊協(xié)議,在程序中要把09933線圈設(shè)置成ON
3、 海利普HOLIP-C+通訊協(xié)議
RTU模式
靜音>50ms ADDR FUNC LEN D(n-1)~D(0) CRC 靜音>50ms
1)靜音:表示50ms 時(shí)間以上無串口中斷
2)ADDR:通訊位置 8-bit位置
3)FUNC:命令碼 8-bit命令,具體內(nèi)容參見3.1 章節(jié)中命令碼中的詳細(xì)說明
4)LEN:資料長(zhǎng)度 指D(n-1)~D(0)的長(zhǎng)度
5)DATA:資料內(nèi)容 n×8-bit資料
6)CRC:偵誤值
RTU模式采用CRC(cyclical Redundancy Check)偵誤值。CRC偵誤值以下列步驟計(jì)算。
1:載入一個(gè)內(nèi)容為FFFFH 的16-bit暫存器(稱CRC暫存器)。
2:將命令訊息第一個(gè)位元組與CRC16-bitCRC 暫存器的低次位元組進(jìn)行Exclasive OR
運(yùn)算,并將結(jié)果存回CRC暫存器。
3:將CRC暫存器內(nèi)容右移1bit,最左bit填入0,檢查CRC暫存器最低位元的值。
4:若CRC 暫存器最低位元為0,則重復(fù)步驟3;否則將CRC 暫存器與A001H 進(jìn)行
Exclusive OR運(yùn)算。
5:重復(fù)3 及4,直到CRC暫存器的內(nèi)容右移8bits,此時(shí),該位元組已完全處理。
6:對(duì)命令訊息下一個(gè)位元組重復(fù)步驟2 與5 直到所有位元組皆完成處理,CRC 暫存器的最后內(nèi)容即是CRC值。當(dāng)在命令訊息中傳送CRC值時(shí),低位元組須與高位元組交換順序,
即低位元組將先被傳送。
7:范例:
a.讀取功能碼數(shù)據(jù) ( 01 )
發(fā)送格式: ADDR 01 LEN Data
ADDR=0時(shí),無返回?cái)?shù)據(jù)
ADDR≠0 且符合變頻器地址時(shí)有響應(yīng)
當(dāng)返回為正常時(shí),格式如下:
ADDR 01 LEN Data
如返回為一個(gè)字時(shí) LEN=3 一個(gè)字節(jié)時(shí) LEN=2
當(dāng)無此功能或無效時(shí)返回為:
ADDR 81H 01
例如:讀取CD000的參數(shù)
發(fā)送: 01 01 01 00 CRC
00 為數(shù)據(jù)。代表CD000.
接收: 01 01 03 00 13 88 CRC
說明:CD000 = 01388H = 5000,即50Hz.
b.功能碼設(shè)定 ( 02 )
發(fā)送格式:ADDR 02 LEN Data
ADDR=0 作廣播用,可以設(shè)定,但無應(yīng)答
ADDR≠0時(shí)可以設(shè)定 同時(shí)有回應(yīng)訊號(hào)
當(dāng)返回為正常時(shí),格式如下:
ADDR 02 LEN Data
當(dāng)設(shè)定不正確時(shí),或無此功能,返回參數(shù)為:
ADDR 82H 01
例如:將CD000參數(shù)值改為60.00Hz
發(fā)送: 01 02 03 00 17 70 CRC
00 為數(shù)據(jù)。代表CD000. 1770(Hex),轉(zhuǎn)換為十進(jìn)制數(shù)為6000。
接收: 01 02 03 00 17 70 CRC
c.控制命令 ( 03 )
發(fā)送格式:ADDR 03 01 CNTR
ADDR=0 為廣播,無返回響應(yīng)
ADDR≠0時(shí)有響應(yīng),返回
CNTR
bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
jogr jogf jog r/f stop Rev for Run
當(dāng)設(shè)定正確時(shí),返回當(dāng)前控制狀態(tài) 格式:ADDR 03 01 CNST
CNST
bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
跟蹤啟動(dòng) 制動(dòng) r/f jogging Runing r/f jog Run
檢測(cè)不正確時(shí) ADDR 83H 01 CNST
例如:通訊控制變頻器運(yùn)行時(shí)即CD033 = 2時(shí)
發(fā)運(yùn)行命令
發(fā)送:01 03 01 01 CRC
01 為數(shù)據(jù),代表運(yùn)行命令。
接收:01 03 01 09 CRC
09 為數(shù)據(jù),代表變頻器處于運(yùn)行狀態(tài)。
注意: 因通訊實(shí)時(shí)性,變頻器返回狀態(tài)滯后性,所以發(fā)命令之后返回的數(shù)據(jù)不
能正確反應(yīng)變頻器當(dāng)前狀態(tài)。
d:讀取狀態(tài)值 ( 04 )
格式:ADDR 04 01 CFG
ADDR=0時(shí)無返回 ADDR≠0時(shí)有返回
CFG=0—8 時(shí)返回單個(gè)狀態(tài)
0:Set F 1:Out F 2:Out A 3:RoTT 4:DCV
5:ACV 6:Cont 7:Tmp 8:Error 和CNST
例1: 讀取設(shè)定頻率
發(fā)送:01 04 01 00 CRC
返回:01 04 03 13 38 CRC
其中 13 88 為數(shù)據(jù),13 為高位,88 為低位。
例2: 讀取錯(cuò)誤代碼和當(dāng)前變頻器狀態(tài)
發(fā)送:01 04 01 08 CRC
返回:01 04 03 08 00 09 CRC
其中 00 為數(shù)據(jù),代表無故障。
09 為數(shù)據(jù),代表當(dāng)前變頻器為運(yùn)行狀態(tài)。
e:變頻器串口頻率設(shè)定 ( 05 )
格式:ADDR 05 02 Data
ADDR=0時(shí)無返回 ADDR≠0時(shí)有返回
例 變頻器頻率設(shè)定為50.00Hz
發(fā)送:01 05 02 13 88 CRC
返回:01 05 02 13 88 CRC
其中13 88為數(shù)據(jù),13 為高位,88為低位。(通過串口設(shè)定頻率時(shí),須先將CD034
設(shè)為2。)
4、V80梯形圖程序
詳細(xì)的梯形圖程序見http://www.plcstar.com/shownews.asp?id=169
寫入變頻器:40201設(shè)置發(fā)送的頻率,10001正轉(zhuǎn)啟動(dòng),10002反轉(zhuǎn)啟動(dòng),10003停止;
從變頻器讀出: 40210變頻器狀態(tài),40211變頻器狀態(tài),40212頻率指令,40213輸出頻率,40214輸出電流,40215直流母線電壓,40216輸出電壓。
七、總結(jié)
V80系列PLC的通訊應(yīng)用非常廣泛。支持標(biāo)準(zhǔn)MODBUS協(xié)議的設(shè)備,可以直接使用V80的MODBUS功能塊實(shí)現(xiàn)通訊通訊;如設(shè)備采用其它的協(xié)議,可以用V80的自由通訊功能塊實(shí)現(xiàn)通訊通訊。自由通訊功能塊使用靈活,可以自由定義字符超時(shí)時(shí)間,開始字符,結(jié)束字符,接收長(zhǎng)度等等。V80系列PLC的COM1口為RS232通訊口,COM2口為RS485通訊口。V80支持串口互換功能,如有些設(shè)備使用RS232通訊不支持RS485,可以將PLC內(nèi)部的09934線圈設(shè)置成ON,就可以用V80的RS232串口實(shí)現(xiàn)通訊。
文章版權(quán)歸西部工控xbgk所有,未經(jīng)許可不得轉(zhuǎn)載。