薛連杰 蘭學(xué)杰 李建剛 陳俊友 周執(zhí)偉 王 源 谷萬(wàn)囤
(海洋石油工程股份有限公司,天津 300452)
在糧食加工業(yè)中,面粉加工是最早實(shí)現(xiàn)高度機(jī)械化和連續(xù)化生產(chǎn)的工藝之一,自20世紀(jì)80年代引進(jìn)面粉自動(dòng)生產(chǎn)線以來(lái),面粉加工業(yè)從采用繼電器發(fā)展到運(yùn)用PLC設(shè)計(jì)自控系統(tǒng)的大規(guī)模改造[1]。一些面粉廠為了擴(kuò)大規(guī)模并減少支出,就在車間增加設(shè)備或增加車間來(lái)擴(kuò)大產(chǎn)量,以期利益最大化。隨著自動(dòng)化水平的不斷提高,對(duì)技術(shù)和管理的需求也與日俱增[2],各類PLC間的數(shù)據(jù)通信和交換問(wèn)題日益突顯,對(duì)于多種設(shè)備并存的生產(chǎn)工藝,存在信息分散和獨(dú)立,大量資源無(wú)法共享,進(jìn)而影響企業(yè)整體的生產(chǎn)效率。某面粉廠車間自動(dòng)化控制的模式很多,數(shù)據(jù)的傳輸通信和交換問(wèn)題亟待解決,公司決定組織技術(shù)人員對(duì)其中一個(gè)分廠的通信系統(tǒng)進(jìn)行改造,在原改造的基礎(chǔ)上實(shí)現(xiàn)部分PLC之間以及與主控室上位機(jī)的通信。
1.1 原系統(tǒng)控制網(wǎng)絡(luò)
某面粉廠某生產(chǎn)車間的原控制系統(tǒng)由3個(gè)PLC和一臺(tái)工控機(jī)組成,共有433個(gè)輸入開關(guān)信號(hào)、350個(gè)輸出開關(guān)信號(hào)、129路模擬信號(hào),系統(tǒng)已經(jīng)運(yùn)行10年且性能穩(wěn)定,其硬件配置見表1。其中上位機(jī)監(jiān)控軟件為力控6.1組態(tài)軟件,可以支持Modbus及Hostlink等多種通信協(xié)議,開發(fā)環(huán)境方便友好,面向?qū)ο蟮脑O(shè)計(jì)使組態(tài)工作量大為降低,用戶可以打造自己的開發(fā)環(huán)境和操作風(fēng)格,可以實(shí)時(shí)監(jiān)控并控制生產(chǎn)流程。PLC軟件編程都采用梯形圖方式,簡(jiǎn)單易懂,容易操作。原系統(tǒng)間的數(shù)據(jù)沒有共享,只是單獨(dú)的PLC控制單獨(dú)的一個(gè)系統(tǒng),數(shù)據(jù)交換和共享非常不便,也增加了工人的工作量和管理難度。改造前控制系統(tǒng)的網(wǎng)絡(luò)如圖1所示。
表1 硬件配置
圖1 改造前的控制系統(tǒng)網(wǎng)絡(luò)
要實(shí)現(xiàn)PLC之間以及上位機(jī)之間的通信,目前最流行的方法是現(xiàn)場(chǎng)總線技術(shù),但是為了在最大程度上節(jié)約資金,不可能大批更換控制器和現(xiàn)場(chǎng)設(shè)備,所以技術(shù)人員就采用了折中的辦法,即運(yùn)用現(xiàn)場(chǎng)已有的串行數(shù)據(jù)接口,選取不同產(chǎn)品都支持的協(xié)議,通過(guò)串行通信方式完成上位機(jī)與不同PLC之間的通信[3]。
C200HS PLC的控制信號(hào)經(jīng)過(guò)中間隔離放大后,對(duì)整個(gè)生產(chǎn)進(jìn)行實(shí)時(shí)監(jiān)測(cè)和控制;主控室的上位機(jī)與PLC之間通過(guò)Hostlink協(xié)議實(shí)現(xiàn)通信,上位機(jī)利用Hostlink協(xié)議與PLC實(shí)現(xiàn)通信,對(duì)整個(gè)生產(chǎn)過(guò)程控制系統(tǒng)(包括工作塔、清理、制粉和后處理)進(jìn)行管理和監(jiān)控;分布在配粉車間的S7-200 PLC獨(dú)立完成配粉車間的控制功能,由于是后期改造增加的車間,所以與主控室的數(shù)據(jù)沒有共享;同樣定量包裝控制系統(tǒng)也是由S7-200 PLC實(shí)現(xiàn)面粉的定量稱重、數(shù)據(jù)采集和檢測(cè)功能的,它與分布于現(xiàn)場(chǎng)的若干臺(tái)電子秤構(gòu)成了數(shù)據(jù)采集系統(tǒng),即只是數(shù)據(jù)的顯示和采集,對(duì)整個(gè)系統(tǒng)不能進(jìn)行控制??梢钥闯?,配粉控制系統(tǒng)和定量包裝控制系統(tǒng)無(wú)法與主控室進(jìn)行信息交互,形成了數(shù)據(jù)孤島,不利于生產(chǎn)和管理。考慮到通信速度的問(wèn)題[1],確定采用主從模式的通信方式。主從模式通信大量應(yīng)用在工業(yè)控制系統(tǒng)中,尤其是PLC及FCS等工業(yè)現(xiàn)場(chǎng)設(shè)備中,主設(shè)備實(shí)時(shí)讀取或?qū)懭霃脑O(shè)備的內(nèi)存量,監(jiān)控并協(xié)調(diào)儀器設(shè)備協(xié)調(diào)運(yùn)行[4]。
常用的主從通信應(yīng)用層協(xié)議有Modbus、Memobus、PPI、FX及HostLink等[2],基于穩(wěn)定性、工程實(shí)施的普遍性和PLC的通用性,最終選用Modbus協(xié)議[5~8],采用RS485總線實(shí)現(xiàn)串行通信。Modbus通信協(xié)議定義了一個(gè)控制器能識(shí)別并使用的消息結(jié)構(gòu),描述了主控制器訪問(wèn)從站設(shè)備的流程,規(guī)定從站怎樣做出應(yīng)答響應(yīng),以及檢查并報(bào)告?zhèn)鬏斿e(cuò)誤等。
PLC能設(shè)置ASCII和RTU兩種傳輸模式,在相同的波特率下,RTU可比ASCII方式傳送更多的數(shù)據(jù)[9],所以此次改造選用RTU模式。Modbus協(xié)議下典型的RTU模式的命令格式見表2,起始位為T1-T2-T3-T4;RTU幀的地址域在開始部分,由一個(gè)字節(jié)即8個(gè)二進(jìn)制碼組成,一般在系統(tǒng)中僅使用1~247,剩下的地址保留,這里要強(qiáng)調(diào)的就是每個(gè)終端的地址必須保證唯一;功能碼域代碼代表了被尋址的終端應(yīng)該執(zhí)行何種功能,一般用到的是03(讀取數(shù)據(jù)寄存器,即獲得一個(gè)或多個(gè)寄存器的當(dāng)前二進(jìn)制值)和16(預(yù)置多個(gè)寄存器,即把二進(jìn)制值設(shè)定到一系列寄存器中);數(shù)據(jù)域包含了終端執(zhí)行特定功能所需的數(shù)據(jù),也即查詢時(shí)采集到的數(shù)據(jù),這些數(shù)據(jù)可以是參考地址、數(shù)值和預(yù)先設(shè)置值;CRC為錯(cuò)誤檢驗(yàn)域,它允許主機(jī)和終端檢查傳輸中的錯(cuò)誤,此功能可以保證在數(shù)據(jù)傳輸過(guò)程中主機(jī)不去響應(yīng)數(shù)據(jù)發(fā)生改變的數(shù)據(jù),這就提高了系統(tǒng)的安全性和效率[10]。
表2 RTU模式命令格式
由前述可知,Modbus通信中只能有一個(gè)主站,此次改造的最終目的是要把所有車間的數(shù)據(jù)傳送到主控室的上位機(jī)中,實(shí)現(xiàn)數(shù)據(jù)和信息的共享。原系統(tǒng)上位機(jī)串口和歐姆龍PLC通過(guò)Hostlink協(xié)議來(lái)實(shí)現(xiàn)部分過(guò)程控制,要實(shí)現(xiàn)整個(gè)系統(tǒng)由一種通信協(xié)議來(lái)串行連接,同時(shí)一個(gè)串口只能支持一種協(xié)議通信,技術(shù)人員通過(guò)公共協(xié)議把所有的PLC串行連接起來(lái),實(shí)現(xiàn)串行通信。
經(jīng)過(guò)分析和實(shí)驗(yàn),最終設(shè)計(jì)了如圖2所示的通信方案,主控室的上位機(jī)作為主站,3個(gè)車間的PLC作為從站,由于C200HS PLC已經(jīng)與上位機(jī)實(shí)現(xiàn)了通信,出于工作量的考慮,不改變?cè)瓍f(xié)議;西門子PLC通過(guò)Modbus協(xié)議通信來(lái)實(shí)現(xiàn)對(duì)整個(gè)車間控制系統(tǒng)的全局監(jiān)控和優(yōu)化,使各控制系統(tǒng)的數(shù)據(jù)得以共享。
力控組態(tài)軟件能夠很好地支持Modbus協(xié)議,只需要設(shè)置特定的參數(shù),直接運(yùn)用力控軟件已經(jīng)開發(fā)的模式,就可以實(shí)現(xiàn)Modbus通信?,F(xiàn)介紹力控中Modbus的設(shè)置參數(shù)方法。
首先進(jìn)入力控開發(fā)界面,點(diǎn)擊左上方的IO設(shè)備組態(tài),選擇Modbus協(xié)議及其通信模式,由于S7-200PLC指令庫(kù)只支持RTU模式,所以選用Modbus RTU模式,如圖3所示。
圖2 改造后的通信方案
圖3 組態(tài)運(yùn)行協(xié)議設(shè)置界面一
點(diǎn)擊Modbus(RTU串行口)彈出如圖4所示的界面,設(shè)備名稱按照PLC的型號(hào)填寫,根據(jù)PLC或智能模塊內(nèi)部設(shè)置的地址填寫“設(shè)備地址”,由前文所述可知,從站的地址分別為3、4,所以必須建立兩個(gè)同樣的Modbus從站并進(jìn)行相應(yīng)的設(shè)置,這樣才能與設(shè)備地址一一對(duì)應(yīng)。點(diǎn)擊下一步,就可以進(jìn)行通信串口的設(shè)置了,通信口的設(shè)置主要需考慮系統(tǒng)整體通信的速度和穩(wěn)定性,此處波特率設(shè)為9 600kb/s。
通信參數(shù)設(shè)置完成以后,就能實(shí)現(xiàn)上位機(jī)和PLC之間的通信了。接下來(lái)讀取從站PLC的數(shù)據(jù),Modbus地址通常是包含數(shù)據(jù)類型和偏移量的5個(gè)或6個(gè)字符值,總是以00001、30004之類的形式出現(xiàn)。S7-200 PLC內(nèi)部的數(shù)據(jù)存儲(chǔ)區(qū)與Modbus的0、1、3、4共4類地址的對(duì)應(yīng)關(guān)系——Modbus地址為40000+(T/2+1)(其中T為偶數(shù)),000001~000128是實(shí)際輸出,對(duì)應(yīng)于Q0.0~Q15.7;010001~010128是實(shí)際輸入,對(duì)應(yīng)于I0.0~I(xiàn)15.7;030001~030032是模擬輸入寄存器,對(duì)應(yīng)于AIW0~AIW2;040001~04XXXX是保持寄存器,對(duì)應(yīng)于V區(qū)。
圖4 組態(tài)運(yùn)行協(xié)議設(shè)置界面二
確定了對(duì)應(yīng)Modbus的地址后,在力控組態(tài)里建立變量,如要讀取定量稱重控制系統(tǒng)中的電磁閥的開關(guān)狀態(tài),控制電磁閥的開關(guān)量地址在PLC里為I0.0,查表發(fā)現(xiàn)對(duì)應(yīng)的Modbus地址為010001,所以要建立對(duì)應(yīng)于Modbus地址的組態(tài)變量。點(diǎn)擊工程項(xiàng)目導(dǎo)航欄里的數(shù)據(jù)庫(kù)組態(tài)依次可以得到如圖5、6所示的界面,此處要注意內(nèi)存區(qū)的選擇,力控中的Modbus區(qū)域沒有00,所以010001的地址應(yīng)該向后錯(cuò)一個(gè)區(qū)域,即選擇02號(hào)命令,偏置設(shè)為1,設(shè)置如圖6所示,這樣就完成了組態(tài)變量的建立,在監(jiān)控界面上連接這個(gè)I/O點(diǎn),就可以看到電磁閥的開關(guān)狀態(tài)了。
S7-200 PLC作為Modbus從站時(shí),是通過(guò)在其強(qiáng)大的指令庫(kù)中預(yù)先編好的程序功能塊來(lái)實(shí)現(xiàn)的,在Modbus RTU協(xié)議應(yīng)用于S7-200 PLC時(shí),要注意:Modbus從站指令庫(kù)只支持CPU上的通信0口,即port0;安裝的編程軟件必須是Step7-Micro/WIN32 V3.2以上版本的編程軟件,還必須安裝Step7 MicroWIN32 V3.2 Instruction Library指令庫(kù)[11]。
圖5 組態(tài)變量設(shè)置界面一
圖6 組態(tài)變量設(shè)置界面二
安裝指令庫(kù)并打開Step7軟件后,就會(huì)看到如圖7所示的界面,S7-200 PLC是作為從站的,所以選擇Modbus slaveport0,會(huì)出現(xiàn)兩個(gè)指令塊,只需作相應(yīng)的設(shè)置就能實(shí)現(xiàn)通信了。要實(shí)現(xiàn)通信首先要在第一個(gè)循環(huán)周期中通過(guò)插入MBUS_INIT指令來(lái)實(shí)現(xiàn)從站的初始化,從站地址(即參數(shù)address)必須與主站所要求讀入的從站地址吻合[11],主-從站的波特率與奇偶校驗(yàn)位也必須設(shè)置一致;當(dāng)需要為Modbus的主設(shè)備發(fā)出請(qǐng)求服務(wù)時(shí),就要用到MBUS_SLAVE指令,并且要求在每次掃描時(shí)執(zhí)行,以便允許該指令能夠同時(shí)檢查和回答Modbus的請(qǐng)求,兩個(gè)從站的地址不能互相沖突,否則會(huì)報(bào)通信錯(cuò)誤或者無(wú)法通信[12]。編程實(shí)例如圖8所示。
圖7 Step7 Modbus指令庫(kù)
圖8 S7-200 PLC編程實(shí)例
前面已經(jīng)實(shí)現(xiàn)相關(guān)設(shè)備的通信,最終目的就是使配粉車間和定量稱重控制系統(tǒng)的工作狀態(tài)和數(shù)據(jù)完整地顯示在上位機(jī)界面上。圖9為后處理車間(即配粉和定量稱重)的生產(chǎn)狀態(tài),圖中有流量顯示、料位高/低、過(guò)程控制中閘門的狀態(tài)等,這樣在主控室就能掌握整個(gè)車間包括工作塔、清理、制粉、配粉及稱重等工藝過(guò)程的生產(chǎn)狀態(tài),實(shí)現(xiàn)了數(shù)據(jù)共享的目的,解決了信息孤島問(wèn)題,實(shí)現(xiàn)了車間整體生產(chǎn)過(guò)程的實(shí)時(shí)、完整監(jiān)控。
圖9 后處理車間生產(chǎn)狀態(tài)
經(jīng)過(guò)改造,通信系統(tǒng)最終的網(wǎng)絡(luò)結(jié)構(gòu)如圖10所示,定量包裝控制系統(tǒng)和配料控制系統(tǒng)的數(shù)據(jù)能夠直接與主控室的PLC通過(guò)Modbus協(xié)議來(lái)實(shí)現(xiàn)通信,實(shí)現(xiàn)了數(shù)據(jù)的共享。而主控室的PLC通過(guò)Hostlink協(xié)議和上位機(jī)通信,基于組態(tài)把數(shù)據(jù)實(shí)時(shí)顯示在控制界面上。上層為Internet信息網(wǎng),可與主控室和各科室相連,這樣就實(shí)現(xiàn)了遠(yuǎn)程控制與數(shù)據(jù)共享。
圖10 改造后的控制系統(tǒng)網(wǎng)絡(luò)
某面粉生產(chǎn)線的通信系統(tǒng)經(jīng)過(guò)改造后,實(shí)現(xiàn)了車間一體式的管理。原主控室、原配粉車間與定量稱重車間一共需要8個(gè)人隨時(shí)監(jiān)控生產(chǎn)狀況,并拿對(duì)講機(jī)與主控保持聯(lián)系并記錄流量及包裝數(shù)據(jù)等,系統(tǒng)改造后只需在各車間安排一人,就可以及時(shí)了解到操作效果、調(diào)整參數(shù)并穩(wěn)定流量等,強(qiáng)化了自動(dòng)監(jiān)控和信息反饋手段,從而提高了工作效率并降低了生產(chǎn)成本,獲得了一定的經(jīng)濟(jì)效益。本系統(tǒng)架構(gòu)簡(jiǎn)單可靠,投資成本低,把工業(yè)控制最新通信技術(shù)與原有的硬件系統(tǒng)相結(jié)合,實(shí)現(xiàn)了利益最大化和投資最小化。改造后的系統(tǒng)設(shè)備層和管理層的網(wǎng)絡(luò)互相獨(dú)立、互不影響,是一套切實(shí)可行的系統(tǒng)監(jiān)控解決方案,可以廣泛適用于需要進(jìn)行相關(guān)通信改造的各領(lǐng)域。