山東大學(xué)控制科學(xué)與工程學(xué)院 李金旭 管彥詔 陳紀(jì)旸 馬曉靜 楊江利
基于S7-300PLC的控制系統(tǒng)與在線稱重機(jī)通訊的研究
山東大學(xué)控制科學(xué)與工程學(xué)院李金旭管彥詔陳紀(jì)旸馬曉靜楊江利
本文研究基于S7-300PLC的控制系統(tǒng)與在線稱重機(jī)之間的通訊問題。采用CP340通信模塊,以點(diǎn)對(duì)點(diǎn)的方式實(shí)現(xiàn)與上海波峰FC-300在線稱重機(jī)之間的通訊。在S7-300編程軟件Step7上,對(duì)CP340進(jìn)行硬件組態(tài),通訊參數(shù)設(shè)置;在主程序OB1中調(diào)用接收功能塊,實(shí)現(xiàn)數(shù)據(jù)的讀??;最后通過編程處理數(shù)據(jù)得到有效的稱重值。
S7-300PLC;CP340;串口通訊;數(shù)據(jù)處理
在PLC控制系統(tǒng)中往往需要同其它設(shè)備進(jìn)行通訊,通信方式有串行通信、以太網(wǎng)通信、PROFIBUS通信等。其中串口通信是將數(shù)據(jù)一位一位地依次傳輸,因此只需要少數(shù)幾條線就可以在系統(tǒng)間交換信息,特別適用于計(jì)算機(jī)與計(jì)算機(jī)、計(jì)算機(jī)與外設(shè)之間的遠(yuǎn)距離通信[1]。一般的在線稱重機(jī)都配有串行接口,因此可采用點(diǎn)對(duì)點(diǎn)的連接方式通過串口通訊實(shí)現(xiàn)同在線稱重機(jī)的數(shù)據(jù)交換。故采用西門子的S7-300系列PLC并搭配串口通訊模塊CP340,實(shí)現(xiàn)同其他外圍設(shè)備的串口通訊[2]。
本文采用西門子S7-300PLC作為控制器,通過CP340串口通訊模塊與上海波峰電子有限公司的FC-300型在線稱重機(jī)實(shí)現(xiàn)數(shù)據(jù)交換。其中FC-300在線稱重機(jī)上為RS 232接口,所以采用CP 340-RS 232C。
2.1串口接線方式
CP 340-RS 232C串口是9針D型插孔,在線稱重機(jī)串口也是9針D型插孔,兩只之間的通訊方式為RS 232方式,故只需三根線即可,如圖1所示。
圖1 接線圖
圖2 設(shè)置CP340的通訊協(xié)議
2.2組態(tài)CP340
CP340采用的通訊協(xié)議為ASCII driver[3],如圖2所示。在線稱重機(jī)的串口收發(fā)數(shù)據(jù)的通信參數(shù)為:波特率9600;數(shù)據(jù)位8位;停止位1位;校驗(yàn)位無。點(diǎn)擊圖2中Protocol下的圖標(biāo),進(jìn)行通信參數(shù)的配置,其通信參數(shù)需要和在線稱重機(jī)的通訊參數(shù)一致,如圖3所示。
圖3 設(shè)置CP340的通訊參數(shù)
在線稱重機(jī)串口采用自動(dòng)發(fā)送模式,每次重量稱量完畢,稱重信息就會(huì)自動(dòng)通過串口傳給PLC。因此,在本文中PLC不需要向稱重機(jī)發(fā)送信息。
圖4 調(diào)用數(shù)據(jù)接收功能塊
3.1通訊程序
在主程序OB1中,從庫(kù)Libraries->CPPtP->CP340調(diào)用接收功能塊FB2 P_RCV,并為其分配背景數(shù)據(jù)塊DB2[4]。如圖4所示。發(fā)送功能塊的參數(shù)設(shè)置如表1所示。LADDR表示起始邏輯地址,需要和硬件組態(tài)中CP340模塊的起始邏輯地址一致。DB_NO表示存儲(chǔ)接收數(shù)據(jù)的數(shù)據(jù)塊編號(hào),本文中為DB10。DBB_NO表示接收數(shù)據(jù)的起始地址,本例中為0,即DB10.DBB0。
表1 CP340接收功能塊的參數(shù)設(shè)置
圖5 數(shù)據(jù)處理流程圖
3.2數(shù)據(jù)處理
通常外圍設(shè)備發(fā)送給PLC的數(shù)據(jù)是依照該設(shè)備特定的格式發(fā)送的,其發(fā)送的每一幀數(shù)據(jù)都有其特定的含義,所以需要對(duì)數(shù)據(jù)進(jìn)行處理,才能得到有用的信息。本文中采用的FC-300在線稱重機(jī)也是如此,其發(fā)送的數(shù)據(jù)格式如下:
W××××××CRLF
代表含義:W12045PCRLF表示重量為1204.5g P-正常W12154HCRLF表示重量為1215.4g H-超重W11023LCRLF表示重量為1102.3g L-欠重注:設(shè)定重量1200.0g,偏差±50.0g。
由此可知,每次稱重完成,在線稱重機(jī)會(huì)向CP340發(fā)送一串?dāng)?shù)據(jù),共9幀,每幀以ASCII碼的形式發(fā)送到DB10.DBW0開頭的九個(gè)字節(jié)中。為了能從數(shù)據(jù)中提取有用的信息,需要對(duì)第一幀的數(shù)據(jù)進(jìn)行判斷:如果第一幀是W代表的ASCII碼,則判定此次發(fā)送的數(shù)據(jù)是有效數(shù)據(jù),否則不予處理。然后依次對(duì)重量信息進(jìn)行提取,程序流程圖如圖5所示。CR和LF為打印字符。特別的,第七幀數(shù)據(jù)表示實(shí)際稱量值與設(shè)定重量的比較。假定設(shè)定重量值為1200.0g,偏差±50g,那么重量小于1150g的視為偏輕,用L表示;1150g余1250g之間的視為正常,用P表示;大于1250g的視為偏重,用H表示。若在稱重機(jī)后面加上剔除裝置,可實(shí)現(xiàn)某些產(chǎn)品的重量分級(jí),例如蘋果、魚等。
在實(shí)驗(yàn)過程中,稱重?cái)?shù)據(jù)可以準(zhǔn)確無誤的傳送給PLC,通過數(shù)據(jù)處理得到有效重量值。但是考慮到現(xiàn)場(chǎng)CP340模塊與在線稱重機(jī)之間的距離可能較長(zhǎng),而RS-232C的最大通訊距離為15米。因此,可以采用CP340-RS 485通訊模塊,在線稱重機(jī)一側(cè)利用信號(hào)轉(zhuǎn)換頭將RS 232信號(hào)轉(zhuǎn)換成RS 485信號(hào),這樣可以大大延長(zhǎng)通訊距離并增強(qiáng)抗干擾能力。
采用上述設(shè)計(jì),成功實(shí)現(xiàn)S7-300型PLC與波峰FC-300在線稱重機(jī)之間的通訊。對(duì)于不同廠家的稱重設(shè)備,只需按照該廠家自定義的數(shù)據(jù)格式,編寫程序即可得到重量信息。由于在線稱重機(jī)稱量速度快,效率高,并且該通訊方式通訊速度快、實(shí)時(shí)性高,所以在水果、魚類等產(chǎn)品的重量自動(dòng)分級(jí)方面有較高的應(yīng)用價(jià)值。
[1]李正軍.計(jì)算機(jī)控制技術(shù)[M].機(jī)械工業(yè)出版社,2008.
[2]朱全松.串口通訊模塊CP340在工業(yè)稱重中的應(yīng)用[J].兵工自動(dòng)化,2006,12:53-54.
[3]SIMATIC.PtP coupling and configuration of CP340[Z]. SIMATIC Ltd,2011.
[4]廖常初.S7-300/400 PLC應(yīng)用技術(shù)[M].機(jī)械工業(yè)出版社,2012.
李金旭(1991—),河北衡水人,大學(xué)本科,現(xiàn)就讀于山東大學(xué)控制科學(xué)與工程學(xué)院。