一、引言:
源信YX3000變頻器向用戶提供工業(yè)控制中通用的RS485協(xié)議通訊接口。通訊協(xié)議采用MODBUS標(biāo)準(zhǔn)通訊協(xié)議。支持RUT和ASCII兩種傳送方式。詳細(xì)的MODBUS協(xié)議,以及變頻器通訊協(xié)議參數(shù)定義,在變頻器用戶手冊中均有詳細(xì)介紹。
二、通訊案例:
以西門子S7-200系列PLC為例,通過PLC與源信變頻器建立通訊連接來實(shí)現(xiàn)PLC對變頻器啟停、監(jiān)控、發(fā)送廣播指令等功能的控制。
案例以CPU224XP作為MODBUS協(xié)議主站,YX3000變頻器做為MODBUS協(xié)議從站接收來自PLC的命令指令。
三、通訊參數(shù):
西門子S7-200系列PLC有一種特殊的通訊模式:自由口通訊模式。當(dāng)選擇自由端口模式時,程序通過使用接收中斷、傳送中斷、"傳送"指令和"接收"指令控制通訊端口操作。通訊協(xié)議位于自由端口模式時完全受梯形圖程序的控制。
在自由通訊模式下,用戶可以在自定義的通訊協(xié)議下,可以通過建立通訊中斷事件,使用通訊指令控制PLC串口通訊口與變頻器通訊。可使用特殊內(nèi)存位SM0.7控制進(jìn)入自由端口模式,該內(nèi)存位反映操作模式開關(guān)的當(dāng)前位。當(dāng)CPU主機(jī)處于RUN工作狀態(tài)時,自由口通訊,當(dāng)CPU主機(jī)處于STOP工作狀態(tài)時,自由通訊模式被禁止,PLC通訊協(xié)議由自由通訊協(xié)議切換到正常的通訊協(xié)議。
PLC參數(shù)設(shè)定,S7-200PLC通過用戶程序控制通訊參數(shù):通訊協(xié)議,波特率、校驗(yàn)方式、字符有效數(shù)據(jù)位。
變頻器參數(shù)設(shè)定
功能碼 | 名稱 | 設(shè)定范圍 | 最小單位 | 出廠設(shè)定 | 設(shè)定值 |
P0.01 | 頻率給定通道選擇 |
0:面板模擬電位器 1:鍵盤▲、▼鍵給定 2:數(shù)字給定1,操作面板 3:數(shù)字給定2,端子UP/DOWN調(diào)節(jié) 4:數(shù)字給定3,串行口給定 5:VI模擬給定(VI-GND) 6:CI模擬給定(CI-GND) 7:端子脈沖(PULSE)給定 8:組合設(shè)定(見P3.00參數(shù)) |
1 | 0 | 4 |
P0.03 | 運(yùn)行命令通道選擇 |
0:操作面板運(yùn)行頻率通道 1:端子運(yùn)行命令通道 2:串行口運(yùn)行命令通道 |
1 | 0 | 2 |
P3.09 | 通訊配置 |
LED個位:波特率選擇 0:1200BPS 1:2400BPS 2:4800BPS 3:9600BPS 4:19200BPS 5:38400BPS LED十位:數(shù)據(jù)格式 0:1-7-2格式,無校驗(yàn) 1:1-7-1格式,奇校驗(yàn) 2:1-7-1格式,偶校驗(yàn) 3:1-8-2格式,無校驗(yàn) 4:1-8-1格式,奇校驗(yàn) 5:1-8-1格式,偶校驗(yàn) 6:1-8-1格式,無校驗(yàn) LED百位:通訊方式 0:MODBUS,ASCII方式 1:MODBUS,RTU方式 |
1 | 063 | 與 PLC 一致 |
P3.10 | 本機(jī)地址 |
0~248 0:廣播地址 248:變頻器作主機(jī)地址 |
1 | 1 | 1 |
接線方式:PLC串口通訊口為九針陰型插口(PORTO或PORT1),用帶一九針陽性接口一端插PLC通訊口,另一端取3、8兩根線(3+/8-)分別接在變頻器485+、485-上。
四、PLC編程說明:
使用西門子S7-200系列自由通訊口編程必用指令為XMT(發(fā)送)指令與RCV(接收)指令。編寫程序時需要為這兩個指令設(shè)定數(shù)據(jù)緩沖區(qū),一般以最低位為0的地址作為數(shù)據(jù)緩沖的起始地址。
PORT 常數(shù)(0用于CPU 221/222/224;0或1用于CPU 226/226XM)
① 發(fā)送指令XMT緩沖區(qū)(寫/讀)
VB100 //xmt指令要發(fā)送的字節(jié)個數(shù)
VB101 //變頻器通訊地址(01)
VB102 //modbus功能碼(06/03)
VB103 //變頻器被寫地址高位/變頻器被讀起始地址高位
VB104 //變頻器被寫地址低位/變頻器被讀起始地址低位
VB105 //被寫數(shù)據(jù)高位/被讀數(shù)據(jù)字個數(shù)高位
VB106 //被寫數(shù)據(jù)低位/被讀數(shù)據(jù)字個數(shù)低位
VB107 //被發(fā)送數(shù)據(jù)CRC低位
VB108 //被發(fā)送數(shù)據(jù)CRC高位
② 接收指令RCV緩沖區(qū)
VB200 //rcv指令要接收的字節(jié)個數(shù)
VB201 //變頻器地址(01)
VB202 //modbus功能碼(06/03)
VB203 //變頻器被寫地址高位/被讀數(shù)據(jù)字節(jié)個數(shù)高位
VB204 //變頻器被寫地址低位/被讀數(shù)據(jù)字節(jié)個數(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)算高位
③ CRC校驗(yàn)子程序(SBR0)
源信YX3000變頻器內(nèi)置的MODBUS協(xié)議采用RTU傳輸格式,只是采用了部分MODBUS從協(xié)議(只支持03、06、08H這三種命令)通訊速率比ASCII模式更快。該格式使用CRC校驗(yàn)方式對每次發(fā)出或接收的數(shù)據(jù)幀進(jìn)行校驗(yàn)。因此,該子程序使用了多個局部變量。