西門子PLC與CHV系列變頻器通信

2007/1/30 14:28:13

一.功能介紹

英威騰CHV系列矢量變頻器內(nèi)置國際標(biāo)準(zhǔn)的MODBUS(從站)通信協(xié)議,配合CHV系列變頻器專用通訊卡,可非常方便的實(shí)現(xiàn)遠(yuǎn)程通訊控制功能。通訊卡上提供RS232RS485兩種物理通訊端口,用戶可通過設(shè)置卡上的跳線選擇。

下面以西門子S7-200系列PLC為例,介紹PLCCHV矢量變頻器建立通訊并實(shí)現(xiàn)對(duì)變頻器起停、頻率給定、監(jiān)控等功能的控制。

變頻器作為MODBUS協(xié)議從站接收來自CPU224 PLC的通信指令,。

CHV系列矢量變頻器在與CPU224通信前須做好以下準(zhǔn)備工作:

1.確認(rèn)已安裝好CHV系列矢量變頻器的通訊卡,并將卡上的端口跳線置于RS485端;

2.用一根帶9針陽性插頭的串口通信電纜連接在CPU224 PLC的自由通信口端,電纜另一端的第5、3、8線分別接在CHV變頻器RS485通訊卡的GND、485+、485-端子上,其余線屏蔽不用;

3.預(yù)先設(shè)置變頻器以下參數(shù):

PC0.0=1                  //變頻器通訊地址為1

PC0.1=3                  //通訊波特率9.6K

PC0.2=1                  //通訊數(shù)據(jù)偶校驗(yàn)

P0.01=2                  //變頻器的運(yùn)行指令采用通訊方式

P0.03=7                  //變頻器的A頻率設(shè)定采用通訊方式

二.PLC內(nèi)存使用說明

西門子S7-200系列PLC的自由通訊端口編程必定會(huì)用到兩個(gè)指令,即XMT(發(fā)送)指令和RCV(接收)指令。編寫程序時(shí)需要為這兩個(gè)指令指定數(shù)據(jù)緩沖區(qū),一般以最低位數(shù)為0的地址作為數(shù)據(jù)緩沖區(qū)的起始地址。

    1.發(fā)送指令XMT緩沖區(qū)(/)

VB100     //xmt指令要發(fā)送的字節(jié)個(gè)數(shù)

VB101     //變頻器通訊地址(01)

VB102     //modbus功能碼(06/03)

VB103     //變頻器被寫地址高位/變頻器被讀起始地址高位

VB104     //變頻器被寫地址低位/變頻器被讀起始地址低位

VB105     //被寫數(shù)據(jù)高位/被讀數(shù)據(jù)字個(gè)數(shù)高位

VB106     //被寫數(shù)據(jù)低位/被讀數(shù)據(jù)字個(gè)數(shù)低位

VB107     //被發(fā)送數(shù)據(jù)CRC低位

VB108     //被發(fā)送數(shù)據(jù)CRC高位

2.接收指令RCV緩沖區(qū)

VB200     //rcv指令要接收的字節(jié)個(gè)數(shù)

VB201     //變頻器地址(01)

VB202     //modbus功能碼(06/03)

VB203     //變頻器被寫地址高位/被讀數(shù)據(jù)字節(jié)個(gè)數(shù)高位

VB204     //變頻器被寫地址低位/被讀數(shù)據(jù)字節(jié)個(gè)數(shù)低位

VB205     //被寫數(shù)據(jù)高位/被讀數(shù)據(jù)高位

VB206     //被寫數(shù)據(jù)低位/被讀數(shù)據(jù)低位

VB207     //被接收數(shù)據(jù)CRC低位

VB208     //被接收數(shù)據(jù)CRC高位

VB217       //被接收數(shù)據(jù)CRC驗(yàn)算低位

VB218       //被接收數(shù)據(jù)CRC驗(yàn)算高位

2CRC校驗(yàn)子程序(SBR0

英威騰CHV系列矢量變頻器內(nèi)置的MODBUS協(xié)議采用RTU傳輸格式,該格式使用CRC校驗(yàn)方式對(duì)每次發(fā)出或接收的數(shù)據(jù)幀進(jìn)行校驗(yàn)。因此,該子程序使用了多個(gè)局部變量,以方便其它子程序調(diào)用。

在西門子STEP 7-Micro/Win 編程環(huán)境下(如圖一),需要在該子程序的局部變量表中預(yù)先設(shè)定以下局部變量:

 

 

1)輸入型局部變量(VAR_INPUT

1d_0:DWORD; // 待發(fā)送數(shù)據(jù)地址指針變量

lw_4:WORD;  // 待發(fā)送數(shù)據(jù)字節(jié)個(gè)數(shù)變量

2)輸出型局部變量(VAR_OUTPUT

lb_6:BYTE;  // CRC校驗(yàn)值高位變量

lb_7:BYTE;  // CRC校驗(yàn)值低位變量

3)臨時(shí)局部變量(VAR

lw_8:WORD;     // 待發(fā)送數(shù)據(jù)字節(jié)個(gè)數(shù)計(jì)數(shù)變量

lw_10:WORD;    // 待發(fā)送數(shù)據(jù)每字節(jié)8位二進(jìn)制數(shù)計(jì)數(shù)變量

Network 1

LD     SM0.0

MOVW   16#FFFF, LW6                //16CRC校驗(yàn)寄存器LW6全置為1

Network 2

LD     SM0.0

FOR    LW8, +1, LW4                //對(duì)待發(fā)送數(shù)據(jù)字節(jié)個(gè)數(shù)(LW4)計(jì)數(shù)(LW8)循環(huán)

Network 3

LD     SM0.0

XORB   *LD0, LB7                   //使待發(fā)送數(shù)據(jù)的第一個(gè)字節(jié)(*LD0)

                                   //CRC校驗(yàn)寄存器低位字節(jié)(LB7)進(jìn)行異或運(yùn)算

Network 4

LD     SM0.0

INCD   LD0                         //ld_0指向待發(fā)送數(shù)據(jù)的下一個(gè)地址

Network 5

LD     SM0.0

FOR    LW10, +1, +8                //對(duì)每字節(jié)8位二進(jìn)制數(shù)計(jì)數(shù)(LW10)循環(huán)

Network 6

LD     SM0.0

SRW    LW6, 1                      //CRC校驗(yàn)寄存器LW6右移一位

Network 7

LD     SM1.1                       //若移位后的溢出值SM1.11

XORW   16#A001, LW6                //則使值16#A001LW6進(jìn)行異或運(yùn)算

Network 8

NEXT                               //結(jié)束每字節(jié)8位二進(jìn)制數(shù)計(jì)數(shù)循環(huán)

Network 9

NEXT                               //結(jié)束每數(shù)據(jù)幀字節(jié)個(gè)數(shù)計(jì)數(shù)循環(huán)

3.   初始化子程序(SBR1

該程序在PLC的第一個(gè)掃描周期運(yùn)行,主要是設(shè)置CPU224自由端口的通信格式、數(shù)據(jù)接收格式及復(fù)位各寄存區(qū)(參見西門子S7-200編程手冊(cè))。

通信格式內(nèi)容包括:波特率9.6K、每字節(jié)位數(shù)8位、偶校驗(yàn)等(注意與變頻器一致)。

數(shù)據(jù)接收格式完全參照MODBUS RTU格式設(shè)定,以不少于3.5個(gè)字節(jié)傳輸時(shí)間的通信口空閑間隔作為數(shù)據(jù)接收的開始及結(jié)束信號(hào)。根據(jù)協(xié)議,PLC在準(zhǔn)備接收數(shù)據(jù)前會(huì)先監(jiān)測(cè)通信口是否空閑,如連續(xù)空閑時(shí)間超過了3.5個(gè)字節(jié)的傳輸時(shí)間,則PLC默認(rèn)數(shù)據(jù)接收開始,此后通訊口上出現(xiàn)的信息即被認(rèn)為是一個(gè)數(shù)據(jù)幀的內(nèi)容。同理,隨著一個(gè)數(shù)據(jù)幀的最后一個(gè)字節(jié)傳輸完成,又會(huì)出現(xiàn)一個(gè)3.5字節(jié)傳輸時(shí)間的空閑間隔,來表示一個(gè)數(shù)據(jù)幀傳輸?shù)慕Y(jié)束。(參見MODBUS協(xié)議標(biāo)準(zhǔn)及CHV系列矢量變頻器通訊卡使用說明書)

對(duì)9.6K的通信波特率來說,3.5個(gè)字節(jié)傳輸時(shí)間約為5ms左右。因該程式的每個(gè)指令只準(zhǔn)備接收一個(gè)數(shù)據(jù)幀的回饋信息,所以接收數(shù)據(jù)前的空閑檢測(cè)時(shí)間可設(shè)為0,即PLC在發(fā)出數(shù)據(jù)后立即開始接收數(shù)據(jù),但一個(gè)數(shù)據(jù)幀的傳輸結(jié)束空閑檢測(cè)時(shí)間仍需設(shè)為5ms以上。

Network 1

LD     SM0.0

MOVB   16#49, SMB30                //設(shè)置自由通信口格式

MOVW   +0, SMW90                   //空閑行間隔檢測(cè)時(shí)間0ms

MOVW   +5, SMW92                   //字符間定時(shí)器超時(shí)檢測(cè)時(shí)間5ms

MOVB   20, SMB94                   //接收信息的最大緩沖區(qū)20字節(jié)

MOVB   148, SMB87                  //設(shè)置自由通信口的數(shù)據(jù)接收格式

FILL   +0, QW0, 1                  //輸出印象寄存區(qū)復(fù)位

FILL   +0, MW0, 1                  //標(biāo)志寄存區(qū)復(fù)位

FILL   +0, VW100, 5                //發(fā)送緩沖區(qū)復(fù)位

FILL   +0, VW200, 5                //接收緩沖區(qū)復(fù)位

ATCH   INT_0, 23                   //接收完成中斷

ATCH   INT_1, 9                    //發(fā)送完成中斷

ENI                                //在全局啟用中斷

深圳英威騰解決方案:
英威騰CHV190開環(huán)矢量控制在固定式門座起重機(jī)上的應(yīng)用
INVT成功攜手越南電梯廠商
英威騰GD300-01變頻器在永磁同步空壓機(jī)上的應(yīng)用
英威騰單變頻一體機(jī)方案
英威騰CHH100高壓變頻器在水泥生料磨排風(fēng)機(jī)上的應(yīng)用
一文讀懂雙螺旋橫切機(jī)數(shù)字化轉(zhuǎn)型重點(diǎn)
怎么才能讓制袋機(jī)高速高精度運(yùn)轉(zhuǎn)呢?
英威騰CHH100高壓變頻器在冶金同步電機(jī)上的應(yīng)用
CHV100變頻器在卷染機(jī)上的應(yīng)用
英威騰無梭織機(jī)電子卷取送經(jīng)系統(tǒng)解決方案
恒壓供水節(jié)電改造方案
從圓木到板皮,原來幕后有這樣一個(gè)“黑手”
英威騰為無紡布生產(chǎn)提供一站式解決方案
DA200伺服在LED分光機(jī)上的應(yīng)用
英威騰CHH100高壓變頻器在火電廠凝結(jié)水泵上的應(yīng)用
英威騰物聯(lián)網(wǎng)整體解決方案在環(huán)衛(wèi)設(shè)備上的應(yīng)用
英威騰DA200伺服在追鋸的應(yīng)用
數(shù)控開料機(jī)伺服細(xì)節(jié)大揭秘
更多深圳英威騰解決方案...

通過中華工控網(wǎng)在線聯(lián)系深圳市英威騰電氣股份有限公司:

免費(fèi)注冊(cè)為中華工控網(wǎng)會(huì)員