S7-200系列PLC有一種特殊的通信模式:自由口通信模式。在這種通信模式下。用戶可以在自定義的通信協(xié)議(可以在用戶程序中控制通信參數(shù):選擇通信協(xié)議、設(shè)定波特率、設(shè)定校驗(yàn)方式、設(shè)定字符的有效數(shù)據(jù)位)下,通過建立通信中斷事件,使用通信指令,控制PLC的串行通信口與其它設(shè)備進(jìn)行通信。只有當(dāng)CPU主機(jī)處于RUN工作方式下(此時(shí)特殊繼電器SM0.7為1)才允許自由通信模式,此時(shí)S7-200失去了與標(biāo)準(zhǔn)通信裝置進(jìn)行正常通信的功能。當(dāng)CPU主機(jī)處于STOP工作方式下時(shí),自由通信模式被禁止,PLC的通信協(xié)議由自由通信協(xié)議自動(dòng)切換到正常的PPI通信協(xié)議。
H-66=0//變頻器設(shè)為從站
H-67=1 //變頻器通訊地址為1
H-69=3 //通訊波特率9.6K
H-68=1 //(E、8、1)//通訊數(shù)據(jù)偶校驗(yàn)
E-01=2 //變頻器的運(yùn)行采用通訊方式
E-02=6 //變頻器的給定頻率設(shè)定采用通訊方式
2、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)算高位
3)CRC校驗(yàn)子程序(SBR0)
偉創(chuàng)AC60變頻器內(nèi)置的MODBUS協(xié)議采用RTU傳輸格式,只是采用了部分MODBUS從協(xié)議(只支持03、06、08H這三種命令)通信速率比ASCII模式更快。該格式使用CRC校驗(yàn)方式對每次發(fā)出或接收的數(shù)據(jù)幀進(jìn)行校驗(yàn)。因此,該子程序使用了多個(gè)局部變量,以方便其它子程序調(diào)用。
在西門子STEP 7-Micro/Win 編程環(huán)境下(如圖),