1、引言 和利時LM系列PLC是杭州和利時公司自主研發的小型一體化PLC產品。LM系列PLC具有可靠性高、指令豐富、通訊能力強等特點。其支持六種編程語言,包括LD、IL、FBD、SFC、ST、CFC,能夠適應多種PLC編程基礎的人群。一些大的控制系統具有很多現場設備,其中一部分現場設備可能不支持標準的通訊協議,但是還需要與第三方控制設備進行數據通訊,任何一個廠商的PLC都不可能支持所有現場設備的數據通信協議。如何實 PLC與非標準協議的第三方設備進行互聯呢,LM系列PLC推出了自由口的通訊方式,可以實現與任何協議的第三方設備進行互聯。本文介紹的是LM系列PLC通過自由口與 Flash存儲設備進行數據通訊。 2、LM系列PLC的通訊方式 LM系列PLC支持多種通訊方式,如Profibus DP、以太網、自由口通訊。LM系列PLC的CPU模塊本體集成了一個RS232通訊口和一個RS485通訊口,RS232和RS485支持標準的Modbus RTU、LM專有協議和自由口通訊協議。用戶可以用圖程序設定通訊口的協議、通訊速率、數據位、校驗、發送數據和接收數據。下圖為和PLC自由口相關的功能塊指令。 圖1為設定自由口通訊速率、數據位、校驗的指令;圖2為恢復Modbus RTU和LM專有協議的指令,同時也可以設定通訊速率、數據位和校驗;圖3為數據發送指令;圖4為數據接收指令。同時軟件中有CRC校驗的功能塊指令,可以進行數據校驗。也可以通過ST語言方便的編寫校驗程序。以計算CRC 校驗碼為例,下面是變量聲明部分: FUNCTION_BLOCK Generate_CRC VAR_INPUT pDataOINTER TO BYTE; byteCounter:WORD; END_VAR VAR_OUTPUT CRC_Code:WORD; FINISH:BOOL:=FALSE; END_VAR VAR Reg16: WORD; j: BYTE; i: WORD; mval: WORD; temp_byte: BYTE; flg: WORD; END_VAR 以下是ST語言的程序代碼部分: Reg16 := 16#FFFF; mval := 16#A001; FOR i:=0 TO byteCounter-1 BY 1 DO temp_byte:=pData︿; pData:=pData+1; Reg16:=(Reg16 XOR temp_byte); FOR j:=0 TO 7 BY 1 DO flg := 0; flg:=(Reg16 AND 16#0001); Reg16 := SHR(Reg16,1); IF (flg = 1) THEN Reg16:=Reg16 XOR mval; END_IF; END_FOR; END_FOR; CRC_Code:=Reg16; FINISH:=TRUE; 3、數據存儲系統的設計 該PLC控制系統是應用在節能汽車上,通過PLC對液壓回路的控制使汽車達到降低油耗的目的,在該車的試驗階段,需要把運行過程中的一些過程數據進行記錄。當時提出了三種設計方案,第一種方案是對PLC進行改造,在內部增加一條FLASH芯片,修改PLC的底層程序,實現數據的存儲;第二種方案是通過GPRS收發器把數據上傳到遠程PC;第三種方案是通過自由口與U盤讀寫模塊進行通訊,把數據實時寫入U盤中。我們對運行環境進行了現場考察和反復研究,在可靠性、穩定性、方便性等方面做了大量工作,權衡利弊,最終選擇了方案三進行實施。 Flash存儲設備首先要配置各項參數,包括接口方式、功能設置、通訊速率等,如圖5所示: 圖5 模塊配置 PLC進行壓力、流量、速度等一些參數的采集,并把數據轉換為ASII碼的形式進行實時存儲。然后通過自由口對U盤讀寫模塊發送指令,U盤讀寫模塊對發送的指令進行響應,并完成相應的讀寫U盤操作。系統要求在每組數據后面進行時間記錄,所以PLC在每次數據發送的同時把時間寫在文件中,程序流程圖如圖6所示: 圖6 程序流程圖 4、結論 經過長時間的應用證明,數據存儲系統的穩定性很好,這種數據存儲的實現方式大大節省了系統的成本,且實現起來較為方便,可以大力推廣?梢姡琇M系列PLC的自由口應用起來相當靈活,可以方便的和第三方設備進行通訊。 |