国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于分布式控制系統(tǒng)的通信軟件開發(fā)實現(xiàn)

2011-08-26 08:05:22管其勇
制造業(yè)自動化 2011年21期
關鍵詞:共享內(nèi)存驅(qū)動程序緩沖區(qū)

管其勇

GUAN Qi-yong

(江蘇淮安信息職業(yè)技術學院 電氣工程系,淮安 223003)

1 DCS控制系統(tǒng)

DCS是工業(yè)領域常用的分布式集散控制系統(tǒng)。典型的 DCS 系統(tǒng)規(guī)模受限于網(wǎng)絡邏輯節(jié)點數(shù)、網(wǎng)絡負荷、服務器負荷、單一數(shù)據(jù)庫容量等等各項資源的限制,多域結(jié)構(gòu)設計(分布式數(shù)據(jù)庫),使得 DCS 系統(tǒng)規(guī)模的擴大有了“無限” 的可能。

一個域?qū)F(xiàn)實中的一臺機組、一個主裝置,域中的設備等同于一套傳統(tǒng)意義上的 DCS。不同的機組、裝置可由分屬不同域的 DCS 控制,減少不必要的數(shù)據(jù)交換,降低系統(tǒng)網(wǎng)絡、服務器和數(shù)據(jù)庫的工作負荷。同時,域間也可實現(xiàn)數(shù)據(jù)交換,共享數(shù)據(jù)和信息。

DCS系統(tǒng)中主要的嵌入式系統(tǒng)軟件是控制器和它包括硬件和軟件兩部分,其中軟件部分又包括操作系統(tǒng)(要求實時和多任務處理,一般稱作嵌入式實時操作系統(tǒng))和應用程序兩大部分。

Modbus是應用于電子儀控設備上的一種標準的通訊協(xié)議。儀控設備之間、儀控設備與其他設備之間可以通過RS485總線的連接按照此協(xié)議進行通訊,使得不同廠商生產(chǎn)的儀控設備可以連成工業(yè)網(wǎng)絡,進行集中監(jiān)控。該協(xié)議主要包括TCP和RTU 兩種模式。

IEC是International Electro Technical Commission,國際電工委員會。文檔中的IEC任務指的是以IEC61131-3可編譯邏輯語言實現(xiàn)的計算任務。IEC工作組制定的IEC-870-5-104規(guī)約適用于電網(wǎng)數(shù)據(jù)采集和監(jiān)視控制系統(tǒng)以及調(diào)度所之間以網(wǎng)絡方式傳送實時遠動信息的系統(tǒng),該規(guī)約規(guī)定了OSI七層協(xié)議中的應用層,傳輸層以下采用TCP/IP協(xié)議。

2 RTS系統(tǒng)

RTS系統(tǒng)主要任務如下:

在編程系統(tǒng)中可以給IEC任務指定的優(yōu)先級為0~31。有兩種方式可以激活IEC任務。

時間控制: 如果編程系統(tǒng)中指定任務的循環(huán)周期(e.g. 10 ms), 則由控制任務按周期來激活IEC任務。

事件控制: 如果任務被指定了一個IEC事件(boolean variable),則按照事件控制運行。當該BOOL型變量從FALSE變成TRUE之后,該任務被激活。

對于兩種方式,任務激活后的處理過程是相同的??梢苑殖上铝腥齻€部分。

1)將該IEC任務所用到的輸入數(shù)據(jù)從過程映象刷新到輸入過程映象。

2)調(diào)用編程系統(tǒng)指定給該任務的POU程序。

3)將所有的輸出數(shù)據(jù)輸出到過程映象,然后輸出給外圍設備。

對IO過程映象數(shù)據(jù)的輸入/輸出是由專門的 I/O 驅(qū)動來實現(xiàn)的。

TCP/IP或serial的server任務是可選的。兩個任務都被設計成可接收來自不同CLIENT端(CoDeSys,OPC,...)的具體數(shù)據(jù),并將這些數(shù)據(jù)傳遞給內(nèi)部server。內(nèi)部server 解釋這些數(shù)據(jù),執(zhí)行請求的命令,并通過通訊任務給CLIENT端發(fā)回應答。

兩種SERVER建立連接的方式不同。

1)TCP/IP Server

與CLIENT端建立連接之后,SERVER會建立一個獨立的任務來處理這個CLIENT端的所有數(shù)據(jù)包。此后,SERVER繼續(xù)等待接收CLIENT端發(fā)來的新的建立連接的請求。這個機制很重要。因為它允許網(wǎng)絡上有不同IP地址的不同計算機都可以連接到RTS上。

2)Serial Server

一個串口SERVER任務維護一個串口,并等待輸入數(shù)據(jù)。這意味著串口與RTS通訊只能是單個的。

總共包含RTS程序和通訊驅(qū)動兩部分。通訊驅(qū)動完成通訊站跟第三方系統(tǒng)通訊時的狀態(tài)診斷(鏈路狀態(tài)、數(shù)據(jù)質(zhì)量)、數(shù)據(jù)的采集和輸出的功能。同時,它通過共享內(nèi)存的方式與RTS程序進行數(shù)據(jù)交換,從而共同完成整個通訊站的功能。

3 配置文件設計

通訊站做為主站或服務端,驅(qū)動主進程初始化創(chuàng)建共享內(nèi)存時,根據(jù)編譯下裝到通訊站的安裝。

配置文件裝載自己的通訊參數(shù)和數(shù)據(jù)點信息。每個通訊站只生成與本站通訊相關的配置信息。

1)LinkDef.csv文件主要是提供通訊鏈路參數(shù)信息,該配置文件中應該包括以下配置信息:

(1)進程信息:版本號、通訊鏈路名、站號、鏈路號、鏈路類型、子鏈路類型。

(2)鏈路參數(shù)設置(串口號、波特率、奇偶校驗、數(shù)據(jù)位、停止位、IP地址、端口號)

(3)主站讀寫鏈路的周期(主從站通訊的周期)

(4)讀鏈路的超時時間

(5)鏈路等待時間(等待從站響應的時間)

配置文件格式如下:

1,,,,,

PN,SN,LN,LT,SLT,LP

;通訊鏈路名,站號,鏈路號,鏈路類型,子鏈路類型,鏈路參數(shù)區(qū)

GME,65,0,1,GME,1’9600’8’1’0’2000’100’100

LinkDef.csv文件說明了主站進程的鏈路1負責與GME系統(tǒng)通訊,與該系統(tǒng)通訊的通訊站號是65、鏈路號是0、鏈路類型1代表該鏈路的通訊協(xié)議是Modbus-RTU、子鏈路類型是GME、串口號1、波特率為9600、數(shù)據(jù)位8位、停止位1位、奇偶校驗位0位。主從站的通訊周期為2秒。讀串口超時時間為0.1秒、讀串口等待時間(延遲時間)為0.1秒。

規(guī)定鏈路參數(shù)區(qū):

如果鏈路是MODBUS-RTU類型,輸入信息依次為:串口號、波特率、數(shù)據(jù)位、停止位、校驗位、通訊周期、讀串口超時時間和讀串口等待延遲時間。不同字段用“’”(小撇號)分割;如輸入多個設備信息,則用“|”(豎線)分割。

如果鏈路是MODBUS-TCP類型,輸入信息依次為:IP地址、端口號、超時時間和等待時間。不同字段用“’”(小撇號)分割;如輸入多個設備信息,則用“|”(豎線)分割。

如果鏈路是IEC-104類型,輸入信息依次為:端口號、第三方系統(tǒng)IP地址1、第三方系統(tǒng)IP地址2、……不同字段用“’”(小撇號)分割;如輸入多個設備信息,則用“|”(豎線)分割。

2)ComPoints.csv文件主要是提供通訊數(shù)據(jù)點信息,該配置文件中應該包括以下配置信息:

(1)進程信息:版本號、站號、鏈路號、設備號

(2)數(shù)據(jù)點信息:通訊點項名、通道號、數(shù)據(jù)類型、數(shù)據(jù)長度、用戶自定義數(shù)據(jù)(如Modbus下的寄存器地址、IEC870.5-104下的類型標識等)、輸入輸出類型、點類型(模擬量、開關量、SOE、字符串)

1,,,,,,,,,

PIN,SN,LN,DN,CN,DT,DL,UP,IOT,PT

;通訊點項名,站號,鏈路號,設備號,通道號,數(shù)據(jù)類型,數(shù)據(jù)長度,用戶自定義數(shù)據(jù),輸入輸出類型,點類型

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文件中數(shù)據(jù)區(qū)的第一行信息說明,與GME系統(tǒng)通訊的65號通訊站的0號鏈路下,1號設備的第0個數(shù)據(jù)的點項名是AVI001.AV,代表當前值,存放在40001寄存器地址中,是模擬量輸入點。

規(guī)定用戶自定義參數(shù)區(qū):

如果鏈路是MODBUS-RTU類型,輸入信息依次為:通訊點項數(shù)據(jù)對應的寄存器地址。

如果鏈路是MODBUS-TCP或IEC-104類型,輸入信息待定。

4 驅(qū)動程序的結(jié)構(gòu)

驅(qū)動程序負責將第三方系統(tǒng)中采集的數(shù)據(jù)傳送到共享內(nèi)存的輸入?yún)^(qū)中,并將共享內(nèi)存輸出區(qū)中的數(shù)據(jù)傳送到相應的第三方系統(tǒng)中,在整個通訊站軟件中處于數(shù)據(jù)傳遞的橋梁的作用。

根據(jù)Level2產(chǎn)生的配置文件LinkDef.csv提供了對應的鏈路數(shù)及其通訊協(xié)議類型,驅(qū)動程序啟動對應的鏈路數(shù)據(jù)處理線程(以下簡稱子線程或鏈路線程)與第三方系統(tǒng)通訊。采用線程方式是為了減少系統(tǒng)資源的開銷,同時提高程序的并發(fā)性和可擴展性。通訊站中,驅(qū)動程序最多支持4條鏈路,即最多啟動四個線程進行數(shù)據(jù)處理。這些鏈路是三種鏈路類型中的一條或多條。內(nèi)存和共享內(nèi)存的數(shù)據(jù)更新。

主進程完成整個通訊驅(qū)動的初始化和控制功能,在各子線程中完成與第三方系統(tǒng)的通訊。各子線程之間相互獨立,不存在相互的數(shù)據(jù)依賴關系。

5 驅(qū)動程序的數(shù)據(jù)流

為了保證將共享內(nèi)存數(shù)據(jù)進行一次性更新,避免各子線程直接操作共享內(nèi)存,在驅(qū)動程序內(nèi)部開辟了數(shù)據(jù)緩沖區(qū)供主進程和各子線程進行數(shù)據(jù)交換使用。

主進程根據(jù)共享內(nèi)存輸入?yún)^(qū)和輸出區(qū)為所有子線程創(chuàng)建兩個全局緩沖區(qū)(這兩個緩沖區(qū)是共享內(nèi)存IO區(qū)數(shù)據(jù)在驅(qū)動內(nèi)存中的映像):

輸出緩沖區(qū)(命名為OutputBuf)指從共享內(nèi)存輸入?yún)^(qū)讀取的用于發(fā)送給第三方的數(shù)據(jù)緩沖區(qū)。

輸入緩沖區(qū)(命名為InputBuf)指各鏈路采集用來寫入共享內(nèi)存輸入?yún)^(qū)的緩沖區(qū)。

數(shù)據(jù)在緩沖區(qū)依次按通道號、設備號、鏈路號進行排列存放(宏觀來看,緩沖區(qū)的數(shù)據(jù)按鏈路類型存放在各自連續(xù)的單元中)。

6 驅(qū)動程序模塊設計

結(jié)合驅(qū)動程序的功能和結(jié)構(gòu),對通訊驅(qū)動軟件進行模塊設計和劃分。程序各模塊的主要源文件定義如表1所示。

圖1 在通訊站軟件中驅(qū)動程序結(jié)構(gòu)圖

當主進程啟動各鏈路子線程后,各鏈路子線程獨立的進行數(shù)據(jù)發(fā)送和采集,主進程每隔一定時間間隔(暫定50ms,第三方系統(tǒng)數(shù)據(jù)發(fā)送周期是秒級,如周期太小交互頻繁而影響性能可以在聯(lián)調(diào)階段適當調(diào)整數(shù)據(jù)交換的周期)進行驅(qū)動內(nèi)存(數(shù)據(jù)緩沖區(qū))和共享內(nèi)存的數(shù)據(jù)交換。驅(qū)動程序啟動后,在定時器的控制下,定時進行驅(qū)動

7 結(jié)論

通過分布式控制系統(tǒng)中通信軟件的設計,使得RTS可以和modbusRtu、modbusTcp、iec104進行共享驅(qū)動,是通信數(shù)據(jù)的發(fā)送采集處理得到統(tǒng)一處理。高效快速,性能優(yōu)越,利于在整個工業(yè)開發(fā)中的推廣應用。

圖2 驅(qū)動程序的數(shù)據(jù)流圖

表1 主要源文件定義

[1]王常力,羅安.分布式控制系統(tǒng)(DCS)設計與應用實例[M].北京:電子工業(yè)出版社,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.

猜你喜歡
共享內(nèi)存驅(qū)動程序緩沖區(qū)
嵌入式系統(tǒng)環(huán)形緩沖區(qū)快速讀寫方法的設計與實現(xiàn)
通過QT實現(xiàn)進程間的通信
基于PCI總線的多處理器協(xié)同機制研究
科技風(2017年20期)2017-07-10 18:56:06
關鍵鏈技術緩沖區(qū)的確定方法研究
QNX下PEX8311多路實時數(shù)據(jù)采集的驅(qū)動設計
電子世界(2014年21期)2014-04-29 06:41:36
一種高效RTAI 共享內(nèi)存管理層的研究與實現(xiàn)*
地理信息系統(tǒng)繪圖緩沖區(qū)技術設計與實現(xiàn)
AVS標準中的視頻碼流緩沖區(qū)校驗模型分析
電視技術(2012年1期)2012-06-06 08:13:58
驅(qū)動程序更新與推薦
驅(qū)動程序更新與推薦
高清| 新兴县| 壶关县| 东乌珠穆沁旗| 上饶县| 泗洪县| 靖远县| 古丈县| 涟水县| 亚东县| 兴安县| 沙河市| 康乐县| 新竹市| 章丘市| 白玉县| 南投市| 板桥市| 吴旗县| 都兰县| 贵南县| 聂拉木县| 广西| 白沙| 洛南县| 工布江达县| 绵竹市| 福建省| 双鸭山市| 肃北| 玉山县| 新乐市| 临武县| 铜山县| 石阡县| 灌云县| 新邵县| 高雄县| 班玛县| 海原县| 库伦旗|