何曉東 杜紅濤 黃嘉明
技術(shù)應(yīng)用
面向精細化工流程控制的通信技術(shù)
何曉東1杜紅濤1黃嘉明2
(1.珠海市長陸工業(yè)自動控制系統(tǒng)股份有限公司,廣東 珠海 5190902.暨南大學(xué)理工學(xué)院,廣東 廣州 510632)
網(wǎng)絡(luò)實時通信是精細化工流程控制的重要基礎(chǔ)環(huán)節(jié)。以某生產(chǎn)車間精細化工流程控制系統(tǒng)為背景,根據(jù)生產(chǎn)需求,設(shè)計PC端與PLC的通信架構(gòu),并優(yōu)化報文收發(fā)機制,使PLC的數(shù)據(jù)可根據(jù)系統(tǒng)的設(shè)定進行頻率有差異地讀取,進而提高通信效率和生產(chǎn)效率。該方法對中小精細化工企業(yè)流程控制具有較好的借鑒意義。
流程控制;實時通信;報文收發(fā)機制
根據(jù)某生產(chǎn)車間精細化工流程控制系統(tǒng)的生產(chǎn)要求,需在PC端實時查看生產(chǎn)情況與下單操作。PC端通過實時通信反復(fù)輪詢讀取PLC的現(xiàn)場數(shù)據(jù),解析后放置于PC端的共享內(nèi)存中待用。這對PC端與PLC之間的通信效率與通信質(zhì)量提出較高要求,然而數(shù)據(jù)的實時性有一定差異。PC端向PLC讀取數(shù)據(jù)時,應(yīng)根據(jù)數(shù)據(jù)實時性差異有規(guī)律地讀取,從而提高通信效率。
精細化工流程控制系統(tǒng)從下到上分為現(xiàn)場層、控制層和中心管理層3個層級,包括的主要硬件如表1所示。
現(xiàn)場層主要包括各種傳感器、執(zhí)行機構(gòu)等設(shè)備,負責工業(yè)現(xiàn)場數(shù)據(jù)采集和執(zhí)行各種控制命令。
控制層包括S7-1500系列CPU控制器,負責對采集的數(shù)據(jù)進行處理并輸出控制信號。
中心管理層包括生產(chǎn)線監(jiān)控系統(tǒng)、配方管理系統(tǒng)與生產(chǎn)排單系統(tǒng)等。控制層與中心管理層采用工業(yè)以太網(wǎng)的方式通信。
精細化工流程控制系統(tǒng)的PLC采用S7-1500。首先,通過數(shù)據(jù)采集模塊把現(xiàn)場數(shù)據(jù)采集到PLC的數(shù)據(jù)塊,并把數(shù)據(jù)類型和讀寫頻率等級相同的數(shù)據(jù)放在相同地址塊的連續(xù)區(qū)域,以便虛設(shè)備批量讀取數(shù)據(jù)和設(shè)置掃描級別來提高通信速率[1-2]。其中,虛設(shè)備定義為記錄PLC數(shù)據(jù)塊中連續(xù)并小于1000個字節(jié)的數(shù)據(jù)地址信息與設(shè)備信息的虛擬設(shè)備[3]。
流程控制系統(tǒng)的通信架構(gòu)圖如圖1所示。首先,初始化虛設(shè)備與虛設(shè)備隊列,并將虛設(shè)備置于虛設(shè)備隊列中,虛設(shè)備隊列用于輪詢讀取虛設(shè)備中的數(shù)據(jù);其次,初始化寫指令隊列,寫指令隊列用于存放需進行寫操作的指令;再次,根據(jù)讀寫報文添加機制(輪詢各虛設(shè)備并按其掃描級別)調(diào)用發(fā)送與解析包生成讀寫報文,并分別將對應(yīng)的讀寫報文添加到讀寫報文隊列,從而保證讀取現(xiàn)場數(shù)據(jù)時,實時性要求高的數(shù)據(jù)讀取頻率也高;最后,通道線程查看寫報文隊列是否存在寫報文,若存在,則把寫報文發(fā)送到指定設(shè)備并讀回結(jié)果報文,再調(diào)用發(fā)送與解析包解析是否寫操作成功;若寫報文隊列為空,則把讀報文隊列中的讀報文依次發(fā)送到指定設(shè)備并讀回結(jié)果報文,再調(diào)用發(fā)送與解析包把相應(yīng)的數(shù)據(jù)解析到共享內(nèi)存中待用。

圖1 流程控制系統(tǒng)的通信架構(gòu)圖
虛設(shè)備記錄通信數(shù)據(jù)的具體位置信息與設(shè)備信息。一個虛設(shè)備最多可存放數(shù)據(jù)塊中1000個字節(jié)連續(xù)的地址數(shù)據(jù),而一個TCP報文長度約為1480字節(jié),這樣讀一個虛設(shè)備的數(shù)據(jù)僅需一條讀指令即可。虛設(shè)備增加了掃描級別等字段,用于設(shè)置該設(shè)備的通信頻率[4-6]。
虛設(shè)備初始化所需的參數(shù)(以S7協(xié)議為例)如表2所示。虛設(shè)備參數(shù)定義如下:
1)虛設(shè)備名稱和虛設(shè)備編號可區(qū)分各虛設(shè)備;
2)通信驅(qū)動指采用的通信驅(qū)動名稱;
3)數(shù)據(jù)種類指數(shù)據(jù)屬于哪個數(shù)據(jù)塊,并由指定數(shù)字指代;
4)數(shù)據(jù)格式用于定義變量格式,字節(jié)(8位)、字(16位)和雙字(32位);
5)數(shù)據(jù)具體格式包括整型、無符號整型和浮點數(shù)3種;
6)訪問方式指訪問數(shù)據(jù)的方式,分為只讀、只寫和可讀可寫;

表2 虛設(shè)備初始化所需參數(shù)表
7)開始地址和數(shù)據(jù)長度分別指數(shù)據(jù)在目標設(shè)備中的開始位置和讀取數(shù)據(jù)的總長度;
8)超時時間指虛設(shè)備生成對應(yīng)的讀寫報文后發(fā)送給目標設(shè)備,目標設(shè)備在指定的超時時間內(nèi)沒有返回結(jié)果報文時,將修改設(shè)備的掃描級別,使得該設(shè)備的通信頻率降低,從而減少系統(tǒng)異常等待的時間;
9)掃描級別是指發(fā)送讀報文的頻率等級,掃描級別包括1~10,1000,2000共12個數(shù)值,數(shù)值為1~10時,數(shù)字越小掃描頻率越高;掃描級別為1000代表該虛設(shè)備的數(shù)據(jù)只讀取一次;掃描級別為2000代表該虛設(shè)備的數(shù)據(jù)為定時讀取;
10) IP地址和端口號用于指定發(fā)送報文目標設(shè)備的IP地址和端口號。
根據(jù)系統(tǒng)的通信變量定義虛設(shè)備,虛設(shè)備列表如圖2所示。

圖2 虛設(shè)備列表
為簡化虛設(shè)備定義過程,雙擊虛設(shè)備列表界面即可彈出虛設(shè)備定義程序框界面,如圖3所示。

圖3 虛設(shè)備定義程序框界面
在圖3中,可輸入或選中虛設(shè)備參數(shù),然后一鍵生成虛設(shè)備,并記錄于數(shù)據(jù)庫中。通過該方式使虛設(shè)備定義過程模板化,易于修正。
虛設(shè)備中每個變量代表的具體含義由變量定義模塊來完成。該模塊主要分為開關(guān)量模塊、模擬量模塊和文本量模塊[5],它們分別用來定義大小為1個比特、1個字節(jié)和多個字節(jié)的通信變量位于指定虛設(shè)備的位置信息。
發(fā)送與解析模塊主要完成讀寫報文生成并填充到讀寫報文隊列、解析返回報文2。通過發(fā)送與解析包里的初始化虛設(shè)備函數(shù),將數(shù)據(jù)庫中的所有虛設(shè)備信息生成對應(yīng)的虛設(shè)備對象填充到虛設(shè)備隊列中。發(fā)送和解析包含有根據(jù)虛設(shè)備向讀報文隊列添加對應(yīng)的讀報文方法、根據(jù)寫指令生成寫指令報文并添加到寫報文隊列的方法、根據(jù)虛設(shè)備解析對應(yīng)的讀寫報文的方法等。通過調(diào)用這些方法,使讀寫報文的生成、添加,結(jié)果報文的解析更加方便。
讀報文添加通過虛設(shè)備調(diào)用發(fā)送與解析包中的相應(yīng)方法,直接將該虛設(shè)備生成讀指令報文并添加到讀報文隊列中等待發(fā)送。寫指令報文根據(jù)寫指令隊列中寫指令參數(shù)生成,并將對應(yīng)的寫報文添加到寫報文隊列。寫指令中記錄寫操作的位置信息、數(shù)據(jù)長度和寫數(shù)據(jù)的值等參數(shù)。
本文改進寫報文隊列的添加機制,改進部分主要體現(xiàn)在讀報文隊列的添加機制。通過在每個虛設(shè)備中定義掃描級別字段,不是簡單輪詢虛設(shè)備后立即調(diào)用相應(yīng)方法向讀報文隊列中添加相應(yīng)的讀報文,而是在輪詢過程中根據(jù)掃描級別的設(shè)定,使掃描級別等級越高(數(shù)值越低)的虛設(shè)備添加讀報文的頻率越高,從而提高實時性要求較高的數(shù)據(jù)的讀寫效率。
讀寫報文的添加規(guī)則:首先,在讀報文隊列沒滿且讀指令隊列中沒有讀指令時,輪詢虛設(shè)備隊列中的虛設(shè)備;輪詢過程中,輪詢到掃描級別為1000的虛設(shè)備時,調(diào)用發(fā)送與解析包中的方法,把對應(yīng)的讀報文依次添加到讀指令隊列中,此類數(shù)據(jù)只從現(xiàn)場讀取一次;然后,用計數(shù)器記錄輪詢虛設(shè)備隊列的次數(shù),初始值為1;最后,在讀報文隊列沒滿的情況下反復(fù)輪詢虛設(shè)備隊列中的虛設(shè)備,若計數(shù)器數(shù)值是輪詢虛設(shè)備掃描級別數(shù)值的倍數(shù)且掃描級別不為1000或2000時,分別調(diào)用發(fā)送與解析包中的方法,把對應(yīng)的讀報文依次添加到讀指令隊列中;輪詢到掃描級別為2000的虛設(shè)備時,因該虛設(shè)備的數(shù)據(jù)為定時讀取,先看虛設(shè)備中的超時時間,判斷上次發(fā)送時間與系統(tǒng)時間之差是否大于等于報文中標記的超時時間,若大于等于,則調(diào)用發(fā)送與解析包中的方法,把對應(yīng)的讀報文依次添加到讀指令隊列中;若小于,則跳過該虛設(shè)備繼續(xù)輪詢下一個虛設(shè)備。當寫指令隊列中存在寫指令時,調(diào)用發(fā)送與解析包中的方法,把對應(yīng)的寫報文依次添加到寫指令隊列中。
通道線程主要完成的工作包括:把讀寫報文隊列中的報文依次發(fā)送到具體設(shè)備中(PLC),并接收設(shè)備返回的結(jié)果報文;調(diào)用發(fā)送與解析包解析返回的數(shù)據(jù)并置于共享內(nèi)存中待用;當通信出現(xiàn)問題時,進行日志書寫。通道線程的執(zhí)行流程圖如圖4所示。

圖4 通道線程的執(zhí)行流程圖
首先,開啟一個線程,初始化通道與ISO_TP連接;接著,判斷寫報文隊列中是否有寫報文,若存在寫報文,則從寫報文隊列中取出第一個寫報文,并根據(jù)該寫報文寫指令中的通道信息,把該報文發(fā)送到指定設(shè)備,在接收到返回的結(jié)果報文后,調(diào)用發(fā)送與解析包解析是否寫成功;若寫報文隊列為空,則取出讀報文隊列中的第一個讀報文,并根據(jù)該讀報文虛設(shè)備中的通道信息,把該讀報文發(fā)送到指定設(shè)備,設(shè)備返回結(jié)果報文后,通過發(fā)送與解析包解析具體數(shù)據(jù)放置于共享內(nèi)存中待用。
解析過程中由于某些不確定因素,在發(fā)送讀寫報文后,可能出現(xiàn)較長時間沒收到返回的結(jié)果報文或返回的結(jié)果報文校驗不成功現(xiàn)象。若出現(xiàn)上述情況,將該讀寫報文重新發(fā)送到目標設(shè)備。若通信還是異常,為不影響其他報文發(fā)送,合理分配通信時間,則將該指令報文的掃描級別修改為2000(定時讀取)。一旦通信正常后,則恢復(fù)原來的掃描級別。這樣在輪詢時通信不會進入異常等待狀態(tài),從而提高通信效率。
首先,通過變量模塊定義通信變量;然后,通過虛設(shè)備依次定義通信變量位于PLC數(shù)據(jù)塊中的具體位置信息,并初始化虛設(shè)備、虛設(shè)備隊列、讀指令隊列、寫報文隊列和讀報文隊列;最后,導(dǎo)入發(fā)送與解析包,開啟通道線程。此時PLC與PC端的實時通信完成整體搭建,PLC與PC端通信實時狀態(tài)圖如圖5所示。
由圖5的發(fā)送欄可知:不同的虛設(shè)備發(fā)送指令包的數(shù)目存在一定的差別,從而得出數(shù)據(jù)讀取的頻率可以通過配置進行改變。

圖5 通信連接狀態(tài)圖
經(jīng)過多次現(xiàn)場測試,得到的PLC與PC端的實時通信測試結(jié)果如表3所示。

表3 PLC與PC端的實時通信測試結(jié)果
綜合以上數(shù)據(jù)分析可得:PLC與PC端的實時通信在網(wǎng)絡(luò)與設(shè)備狀態(tài)良好的情況下,丟包率與錯誤率都較低;丟包、錯誤與連接失敗的主要原因是現(xiàn)場網(wǎng)絡(luò)在短時間內(nèi)出現(xiàn)延遲或網(wǎng)速不穩(wěn)定。
本文根據(jù)精細化工流程控制系統(tǒng)中數(shù)據(jù)對實時性要求存在差異的特點,設(shè)計PLC與PC端的通信架構(gòu),并實現(xiàn)了虛設(shè)備模塊、變量定義模塊、發(fā)送與解析模塊、讀寫報文的添加模塊和通道線程,從而使PLC端的數(shù)據(jù)根據(jù)系統(tǒng)設(shè)定進行有差異地讀取,進而合理配置資源,提高通信效率。
[1] 王敏,李峰.精細化工行業(yè)發(fā)展現(xiàn)狀及趨勢[J].云南化工, 2018,45(10):21-22.
[2] 常一帆.工業(yè)自動化控制的現(xiàn)狀及未來發(fā)展趨勢[J].中國管理信息化,2016,19(12):177.
[3] 李占國.化工企業(yè)液位自動化控制系統(tǒng)設(shè)計與實現(xiàn)[J].機電信息,2013(12):153,155.
[4] 李建民,熊詩波,魏晉宏.西門子S7-200與PC實時通訊的實現(xiàn)方法[J].太原理工大學(xué)學(xué)報,2003(4):465-467.
[5] 賈濤.西門子S7-200以太網(wǎng)通訊協(xié)議研究[J].電子技術(shù)與軟件工程,2014(24):30-32.
[6] 董青青.基于TCP協(xié)議的PC與西門子S7-1200PLC通信研究[J].電子測試,2019(19):76-77,79.
Communication Technology for Fine Chemical Process Control
He Xiaodong1Du Hongtao1Huang Jiaming2
(1.Zhuhai Longtec., Ltd, Zhuhai 519090, China 2.College of Science and Engineering of Jinan University, Guangzhou 510632, China)
Network real-time communication is an important part of fine chemical process control. Taking the fine chemical process control system of a production workshop as the background, according to the production demand, the communication architecture between PC and PLC is designed, and the message sending and receiving mechanism is optimized, so that the PLC data can be read differently according to the system setting frequency, so as to improve the communication efficiency and production efficiency. This method can be used for reference in process control of small and medium-sized fine chemical enterprises.
process control; real-time communication; message sending and receiving mechanism
TN914.3
A
1674-2605(2021)01-0009-05
10.3969/j.issn.1674-2605.2021.01.009
何曉東,男,1970年生,本科,高級工程師,主要研究方向:工業(yè)自動化、信息化系統(tǒng)規(guī)劃。E-mail: hexiaodong@longtec.com
杜紅濤,男,1977年生,本科,工程師,主要研究方向:工業(yè)自動化、信息化系統(tǒng)研發(fā)。E-mail: duhongtao@longtec.com
黃嘉明,男,1995年生,本科,碩士,主要研究方向:網(wǎng)絡(luò)通信與信息處理。E-mail: 290045461@qq.com