管其勇
GUAN Qi-yong
(江蘇淮安信息職業技術學院 電氣工程系,淮安 223003)
DCS是工業領域常用的分布式集散控制系統。典型的 DCS 系統規模受限于網絡邏輯節點數、網絡負荷、服務器負荷、單一數據庫容量等等各項資源的限制,多域結構設計(分布式數據庫),使得 DCS 系統規模的擴大有了“無限” 的可能。
一個域對應現實中的一臺機組、一個主裝置,域中的設備等同于一套傳統意義上的 DCS。不同的機組、裝置可由分屬不同域的 DCS 控制,減少不必要的數據交換,降低系統網絡、服務器和數據庫的工作負荷。同時,域間也可實現數據交換,共享數據和信息。
DCS系統中主要的嵌入式系統軟件是控制器和它包括硬件和軟件兩部分,其中軟件部分又包括操作系統(要求實時和多任務處理,一般稱作嵌入式實時操作系統)和應用程序兩大部分。
Modbus是應用于電子儀控設備上的一種標準的通訊協議。儀控設備之間、儀控設備與其他設備之間可以通過RS485總線的連接按照此協議進行通訊,使得不同廠商生產的儀控設備可以連成工業網絡,進行集中監控。該協議主要包括TCP和RTU 兩種模式。
IEC是International Electro Technical Commission,國際電工委員會。文檔中的IEC任務指的是以IEC61131-3可編譯邏輯語言實現的計算任務。IEC工作組制定的IEC-870-5-104規約適用于電網數據采集和監視控制系統以及調度所之間以網絡方式傳送實時遠動信息的系統,該規約規定了OSI七層協議中的應用層,傳輸層以下采用TCP/IP協議。
RTS系統主要任務如下:
在編程系統中可以給IEC任務指定的優先級為0~31。有兩種方式可以激活IEC任務。
時間控制: 如果編程系統中指定任務的循環周期(e.g. 10 ms), 則由控制任務按周期來激活IEC任務。
事件控制: 如果任務被指定了一個IEC事件(boolean variable),則按照事件控制運行。當該BOOL型變量從FALSE變成TRUE之后,該任務被激活。
對于兩種方式,任務激活后的處理過程是相同的。可以分成下列三個部分。
1)將該IEC任務所用到的輸入數據從過程映象刷新到輸入過程映象。
2)調用編程系統指定給該任務的POU程序。
3)將所有的輸出數據輸出到過程映象,然后輸出給外圍設備。
對IO過程映象數據的輸入/輸出是由專門的 I/O 驅動來實現的。
TCP/IP或serial的server任務是可選的。兩個任務都被設計成可接收來自不同CLIENT端(CoDeSys,OPC,...)的具體數據,并將這些數據傳遞給內部server。內部server 解釋這些數據,執行請求的命令,并通過通訊任務給CLIENT端發回應答。
兩種SERVER建立連接的方式不同。
1)TCP/IP Server
與CLIENT端建立連接之后,SERVER會建立一個獨立的任務來處理這個CLIENT端的所有數據包。此后,SERVER繼續等待接收CLIENT端發來的新的建立連接的請求。這個機制很重要。因為它允許網絡上有不同IP地址的不同計算機都可以連接到RTS上。
2)Serial Server
一個串口SERVER任務維護一個串口,并等待輸入數據。這意味著串口與RTS通訊只能是單個的。
總共包含RTS程序和通訊驅動兩部分。通訊驅動完成通訊站跟第三方系統通訊時的狀態診斷(鏈路狀態、數據質量)、數據的采集和輸出的功能。同時,它通過共享內存的方式與RTS程序進行數據交換,從而共同完成整個通訊站的功能。
通訊站做為主站或服務端,驅動主進程初始化創建共享內存時,根據編譯下裝到通訊站的安裝。
配置文件裝載自己的通訊參數和數據點信息。每個通訊站只生成與本站通訊相關的配置信息。
1)LinkDef.csv文件主要是提供通訊鏈路參數信息,該配置文件中應該包括以下配置信息:
(1)進程信息:版本號、通訊鏈路名、站號、鏈路號、鏈路類型、子鏈路類型。
(2)鏈路參數設置(串口號、波特率、奇偶校驗、數據位、停止位、IP地址、端口號)
(3)主站讀寫鏈路的周期(主從站通訊的周期)
(4)讀鏈路的超時時間
(5)鏈路等待時間(等待從站響應的時間)
配置文件格式如下:
1,,,,,
PN,SN,LN,LT,SLT,LP
;通訊鏈路名,站號,鏈路號,鏈路類型,子鏈路類型,鏈路參數區
GME,65,0,1,GME,1’9600’8’1’0’2000’100’100
LinkDef.csv文件說明了主站進程的鏈路1負責與GME系統通訊,與該系統通訊的通訊站號是65、鏈路號是0、鏈路類型1代表該鏈路的通訊協議是Modbus-RTU、子鏈路類型是GME、串口號1、波特率為9600、數據位8位、停止位1位、奇偶校驗位0位。主從站的通訊周期為2秒。讀串口超時時間為0.1秒、讀串口等待時間(延遲時間)為0.1秒。
規定鏈路參數區:
如果鏈路是MODBUS-RTU類型,輸入信息依次為:串口號、波特率、數據位、停止位、校驗位、通訊周期、讀串口超時時間和讀串口等待延遲時間。不同字段用“’”(小撇號)分割;如輸入多個設備信息,則用“|”(豎線)分割。
如果鏈路是MODBUS-TCP類型,輸入信息依次為:IP地址、端口號、超時時間和等待時間。不同字段用“’”(小撇號)分割;如輸入多個設備信息,則用“|”(豎線)分割。
如果鏈路是IEC-104類型,輸入信息依次為:端口號、第三方系統IP地址1、第三方系統IP地址2、……不同字段用“’”(小撇號)分割;如輸入多個設備信息,則用“|”(豎線)分割。
2)ComPoints.csv文件主要是提供通訊數據點信息,該配置文件中應該包括以下配置信息:
(1)進程信息:版本號、站號、鏈路號、設備號
(2)數據點信息:通訊點項名、通道號、數據類型、數據長度、用戶自定義數據(如Modbus下的寄存器地址、IEC870.5-104下的類型標識等)、輸入輸出類型、點類型(模擬量、開關量、SOE、字符串)
1,,,,,,,,,
PIN,SN,LN,DN,CN,DT,DL,UP,IOT,PT
;通訊點項名,站號,鏈路號,設備號,通道號,數據類型,數據長度,用戶自定義數據,輸入輸出類型,點類型
AVI001.AV,65,0,1,0,9,4,40001,0,0
AVI001.QC,65,0,1,0,9,4,40001,0,0
DVI001.DV,65,0,2,1,4,1,30001,0,1
DVO001.QC,65,0,2,1,4,1,30001,1,1
ComPoints.csv文件中數據區的第一行信息說明,與GME系統通訊的65號通訊站的0號鏈路下,1號設備的第0個數據的點項名是AVI001.AV,代表當前值,存放在40001寄存器地址中,是模擬量輸入點。
規定用戶自定義參數區:
如果鏈路是MODBUS-RTU類型,輸入信息依次為:通訊點項數據對應的寄存器地址。
如果鏈路是MODBUS-TCP或IEC-104類型,輸入信息待定。
驅動程序負責將第三方系統中采集的數據傳送到共享內存的輸入區中,并將共享內存輸出區中的數據傳送到相應的第三方系統中,在整個通訊站軟件中處于數據傳遞的橋梁的作用。
根據Level2產生的配置文件LinkDef.csv提供了對應的鏈路數及其通訊協議類型,驅動程序啟動對應的鏈路數據處理線程(以下簡稱子線程或鏈路線程)與第三方系統通訊。采用線程方式是為了減少系統資源的開銷,同時提高程序的并發性和可擴展性。通訊站中,驅動程序最多支持4條鏈路,即最多啟動四個線程進行數據處理。這些鏈路是三種鏈路類型中的一條或多條。內存和共享內存的數據更新。
主進程完成整個通訊驅動的初始化和控制功能,在各子線程中完成與第三方系統的通訊。各子線程之間相互獨立,不存在相互的數據依賴關系。
為了保證將共享內存數據進行一次性更新,避免各子線程直接操作共享內存,在驅動程序內部開辟了數據緩沖區供主進程和各子線程進行數據交換使用。
主進程根據共享內存輸入區和輸出區為所有子線程創建兩個全局緩沖區(這兩個緩沖區是共享內存IO區數據在驅動內存中的映像):
輸出緩沖區(命名為OutputBuf)指從共享內存輸入區讀取的用于發送給第三方的數據緩沖區。
輸入緩沖區(命名為InputBuf)指各鏈路采集用來寫入共享內存輸入區的緩沖區。
數據在緩沖區依次按通道號、設備號、鏈路號進行排列存放(宏觀來看,緩沖區的數據按鏈路類型存放在各自連續的單元中)。
結合驅動程序的功能和結構,對通訊驅動軟件進行模塊設計和劃分。程序各模塊的主要源文件定義如表1所示。

圖1 在通訊站軟件中驅動程序結構圖
當主進程啟動各鏈路子線程后,各鏈路子線程獨立的進行數據發送和采集,主進程每隔一定時間間隔(暫定50ms,第三方系統數據發送周期是秒級,如周期太小交互頻繁而影響性能可以在聯調階段適當調整數據交換的周期)進行驅動內存(數據緩沖區)和共享內存的數據交換。驅動程序啟動后,在定時器的控制下,定時進行驅動
通過分布式控制系統中通信軟件的設計,使得RTS可以和modbusRtu、modbusTcp、iec104進行共享驅動,是通信數據的發送采集處理得到統一處理。高效快速,性能優越,利于在整個工業開發中的推廣應用。

圖2 驅動程序的數據流圖

表1 主要源文件定義
[1]王常力,羅安.分布式控制系統(DCS)設計與應用實例[M].北京:電子工業出版社,2004.
[2]呂當俠.CAN總線的特點及應用[J].航空與航天,2005;(3):16~20.
[3]Microsoft.Microsoft speech SDK 5.1 documentation.http://download.microsoft.com/download/SpeechSDK/SDK/5.1/WXP/EN-US/sapi.chm.
[4]Verissimo P.Distributed computer-controlled systems:The DEAR-COTS approach[J].IFAC,2000.