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

?

基于MODBUS TCP協(xié)議的遠(yuǎn)程監(jiān)控系統(tǒng)設(shè)計(jì)

2020-09-10 07:22:44袁顯明
科技尚品 2020年8期

袁顯明

摘 要:針對(duì)系留氣球遠(yuǎn)程監(jiān)控終端的需求,設(shè)計(jì)了一種基于MODBUS TCP通信協(xié)議的監(jiān)控系統(tǒng)。文章詳細(xì)描述了MODBUS TCP通信協(xié)議的技術(shù)細(xì)節(jié),并利用其開發(fā)了遠(yuǎn)程監(jiān)控客戶端,通過與系留氣球測(cè)控裝置PLC通信,實(shí)現(xiàn)了球體參數(shù)的采集、顯示及執(zhí)行機(jī)構(gòu)的控制,同時(shí)將系統(tǒng)的運(yùn)行數(shù)據(jù)保存到Access數(shù)據(jù)庫(kù)中備查。

關(guān)鍵詞:系留氣球;MODBUS? TCP協(xié)議;遠(yuǎn)程監(jiān)控系統(tǒng)

中圖分類號(hào):TP277 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1674-1064(2020)08-0025-02

系留氣球作為一種依靠?jī)舾×ι盏母】诊w行器,在地面錨泊狀態(tài)下,仍需監(jiān)控囊體壓力,確保球體安全。針對(duì)系留氣球地面錨泊的特點(diǎn),研制了一套以PLC為核心的監(jiān)控設(shè)備,代替原有系統(tǒng)完成囊體壓力的監(jiān)控與調(diào)節(jié),以延長(zhǎng)球載設(shè)備的電氣壽命。為方便監(jiān)控人員實(shí)時(shí)了解球體狀態(tài),需設(shè)計(jì)一套遠(yuǎn)程監(jiān)控終端,以實(shí)現(xiàn)囊體壓力的遠(yuǎn)程監(jiān)控與調(diào)節(jié)[1-2]。遠(yuǎn)程監(jiān)控終端應(yīng)具備如下功能:

終端設(shè)備安裝在遠(yuǎn)距離的地面測(cè)控中心,能夠穩(wěn)定地與PLC通信實(shí)現(xiàn)信息的交互。

操作員能夠在地面測(cè)控中心實(shí)時(shí)監(jiān)控囊體壓力和風(fēng)機(jī)的工作狀態(tài),并將數(shù)據(jù)保存到數(shù)據(jù)庫(kù)以備后續(xù)審查。操作員能夠控制球載風(fēng)機(jī)的開啟和關(guān)閉,系統(tǒng)要提供必要的聲音報(bào)警和視覺信號(hào)報(bào)警。系統(tǒng)需具備較高的可靠度等級(jí),能長(zhǎng)期穩(wěn)定的工作。

文章主要介紹了一種通過網(wǎng)口通信實(shí)現(xiàn)數(shù)據(jù)的遠(yuǎn)距離傳輸和控制的監(jiān)控系統(tǒng),該系統(tǒng)能較好地完成系留氣球遠(yuǎn)程監(jiān)控終端的任務(wù),并具有較強(qiáng)的抗干擾能力和擴(kuò)展性。

1 系統(tǒng)原理

1.1 系統(tǒng)結(jié)構(gòu)

由于錨泊車和地面測(cè)控中心之間的布線距離較遠(yuǎn),為保證信號(hào)的穩(wěn)定傳輸,在PLC和工控機(jī)間增設(shè)一對(duì)光纖收發(fā)器,將電信號(hào)轉(zhuǎn)換為光信號(hào),實(shí)現(xiàn)數(shù)據(jù)的遠(yuǎn)距離傳輸,如圖1所示。文章主要討論P(yáng)LC與地面測(cè)控中心工控機(jī)間MODBUS TCP通信的設(shè)計(jì)與實(shí)現(xiàn)。

1.2 MODBUS TCP協(xié)議

MODBUS TCP/IP應(yīng)用層協(xié)議的PDU與基于串行鏈路的MODBUS協(xié)議相同,區(qū)別在于ADU的結(jié)構(gòu)中引入了MBAP報(bào)文頭。由于采用TCP/IP協(xié)議,各個(gè)通信設(shè)備已經(jīng)分配了IP地址,MBAP報(bào)文頭中單元標(biāo)示符取代了MODBUS串行鏈路上的地址域,從而用于通過網(wǎng)橋和網(wǎng)關(guān)等設(shè)備的通訊。TCP協(xié)議是建立可靠數(shù)據(jù)連接的傳輸協(xié)議,可以保證數(shù)據(jù)包傳輸?shù)臄?shù)據(jù)完整性,所以在基于TCP/IP的MODBUS協(xié)議的ADU中,不需要串行鏈路中使用的數(shù)據(jù)校驗(yàn)域,如圖2所示。

MODBUS TCP協(xié)議的功能碼以MODBUS設(shè)備間互用性劃分為不同的等級(jí)。本系統(tǒng)主要使用到等級(jí)0和等級(jí)1的功能。等級(jí)0代表普遍使用且總體一致的功能;等級(jí)1代表有用的功能,但帶有某些特性。

2 系統(tǒng)實(shí)現(xiàn)

2.1 硬件設(shè)計(jì)

光纖收發(fā)器提供1路速度為10/100M自適應(yīng)的以太網(wǎng)接口,工作波長(zhǎng)分別為1310nm和1550nm,實(shí)現(xiàn)在一根單模光纖上信號(hào)的雙向傳輸。PLC為系統(tǒng)核心部件,通過AD和DI模塊對(duì)模擬量信號(hào)和數(shù)字量信號(hào)進(jìn)行采集,通過DO模塊驅(qū)動(dòng)受控設(shè)備進(jìn)行動(dòng)作。PLC通過以太網(wǎng)端口與遠(yuǎn)程工控機(jī)進(jìn)行通信,同時(shí)接受監(jiān)控軟件的控制指令。工控機(jī)作為系統(tǒng)的控制中樞,選用標(biāo)準(zhǔn)機(jī)架式工控機(jī),滿足命令響應(yīng)、數(shù)據(jù)處理、存儲(chǔ)和顯示等功能的需求。采用單色報(bào)警燈,并帶有蜂鳴器,監(jiān)控軟件通過工控機(jī)的DO口驅(qū)動(dòng)報(bào)警器發(fā)出聲光報(bào)警。

2.2 軟件設(shè)計(jì)

本系統(tǒng)監(jiān)控軟件使用C++語言開發(fā),實(shí)現(xiàn)參數(shù)采集、設(shè)備控制和數(shù)據(jù)的存儲(chǔ)與查詢功能。軟件主要包含數(shù)據(jù)通信、數(shù)據(jù)處理和數(shù)據(jù)庫(kù)等三個(gè)單元。

監(jiān)控軟件通過MODBUS TCP協(xié)議功能6(寫單個(gè)保持寄存器)向PLC寫入控制指令。如副氣囊風(fēng)機(jī)狀態(tài)字保存在MODBUS地址為4X10022的保持寄存器中,狀態(tài)字為1時(shí)風(fēng)機(jī)開啟,狀態(tài)字為0時(shí)風(fēng)機(jī)關(guān)閉。

開啟副氣囊風(fēng)機(jī)的指令格式如圖3所示。

關(guān)閉副氣囊風(fēng)機(jī)的指令格式如圖4所示。

參照副氣囊風(fēng)機(jī)的指令格式,可寫入其他執(zhí)行機(jī)構(gòu)的控制指令。編寫完成控制指令數(shù)據(jù)包TxData[]后,通過客戶端的Socket通道向PLC發(fā)送數(shù)據(jù),通信周期為500ms。

ClientSocket->Socket->SendBuf(&TxData,sizeof(TxData));

監(jiān)控軟件通過MODBUS TCP協(xié)議功能3(讀單個(gè)或多個(gè)保持寄存器)向PLC寫入讀數(shù)據(jù)請(qǐng)求。如讀取MODBUS首地址為4X10000的24個(gè)保持寄存器,請(qǐng)求指令格式如圖5所示。

完成請(qǐng)求數(shù)據(jù)包TxData[]后,通過客戶端的Socket通道向PLC發(fā)送數(shù)據(jù);同時(shí)通過客戶端Socket通道讀取PLC應(yīng)答數(shù)據(jù)。

ClientSocket->Socket->SendBuf(&TxData,sizeof(TxData));

ClientSocket->Socket->ReceiveBuf(RxData,sizeof(RxData));

讀保持寄存器請(qǐng)求的PLC應(yīng)答數(shù)據(jù)包格式如圖6所示。

監(jiān)控軟件通過調(diào)用庫(kù)文件工控機(jī)I-DASK.dll,實(shí)現(xiàn)與數(shù)據(jù)I/O卡的通信。

2.3 數(shù)據(jù)處理

數(shù)據(jù)顯示:監(jiān)控軟件從RJ45接受到的數(shù)據(jù)遵從MODBUS TCP協(xié)議。去除MBAP報(bào)文頭、站地址和功能代碼后,余下的為有效字節(jié)。依據(jù)通信協(xié)議對(duì)數(shù)據(jù)進(jìn)行解析后顯示在軟件界面上。狀態(tài)顯示:為了避免雷同,使得界面具有更好的美觀性,在對(duì)設(shè)備的狀態(tài)進(jìn)行顯示的時(shí)候,采用了虛擬LED燈、立體按鈕等不同的視覺表達(dá)方式。數(shù)據(jù)作圖:對(duì)囊體壓力參數(shù)顯示采用虛擬儀表的作圖方式,能夠直觀地表達(dá)當(dāng)前壓力狀態(tài)。故障告警:監(jiān)控軟件將解析后的數(shù)據(jù)與告警閾值進(jìn)行比對(duì),若參數(shù)的值超出報(bào)警閾值,則生成相應(yīng)的報(bào)警信號(hào)和報(bào)警等級(jí)。根據(jù)報(bào)警等級(jí)在報(bào)警信息欄中以黃色或紅色顯示當(dāng)前報(bào)警原因,同時(shí)輸出兩路高電平控制信號(hào),驅(qū)動(dòng)報(bào)警器和報(bào)警燈工作。

2.4 數(shù)據(jù)庫(kù)操作

本系統(tǒng)采用Access數(shù)據(jù)庫(kù)。Access具有強(qiáng)大的數(shù)據(jù)處理、統(tǒng)計(jì)分析能力,利用Access的查詢功能,可以方便地進(jìn)行各類匯總、平均統(tǒng)計(jì)。軟件使用ADOTable組件訪問數(shù)據(jù)庫(kù),開發(fā)人員通過代碼進(jìn)行數(shù)據(jù)庫(kù)的動(dòng)態(tài)連接。

ADOTable組件只能使用字段編輯器來決定使用的字段是哪些,無法對(duì)數(shù)據(jù)庫(kù)下達(dá)SQL命令。要連接數(shù)據(jù)庫(kù),又要對(duì)數(shù)據(jù)庫(kù)下命令需使用ADOQuery組件。ADOQuery組件與ADOTable組件一樣,使用ConnectionString屬性連接數(shù)據(jù)庫(kù),在連接數(shù)據(jù)庫(kù)后通過SQL屬性取回?cái)?shù)據(jù)。在設(shè)置SQL屬性之前,不可以將ADOTable組件的Active屬性設(shè)置為True。

軟件使用SQL語言進(jìn)行數(shù)據(jù)的查詢操作。SQL語言是關(guān)系型數(shù)據(jù)庫(kù)中的標(biāo)準(zhǔn)化查詢語言,能夠?qū)δ繕?biāo)數(shù)據(jù)庫(kù)完成數(shù)據(jù)定義、數(shù)據(jù)查詢和數(shù)據(jù)控制等操作。SQL查詢命令如下:

Select 數(shù)據(jù)字段 From 表 where 限制條件1 and 限制條件2...

DataSource組件是ADOTable組件與其他具有數(shù)據(jù)感知能力的數(shù)據(jù)庫(kù)組件的溝通橋梁。通過DataSource組件才可以取得數(shù)據(jù)庫(kù)文件內(nèi)的數(shù)據(jù)字段。

數(shù)據(jù)庫(kù)感知組件通過與DataSource組件的連接,取得數(shù)據(jù)庫(kù)中的記錄,并將其顯示出來。該軟件通過ADOQuery組件和SQL命令篩選出數(shù)據(jù)表中數(shù)據(jù)后,數(shù)據(jù)感知組件DBGird和DBEdit將數(shù)據(jù)內(nèi)容顯示出來,實(shí)現(xiàn)歷史記錄的查詢。

3 結(jié)語

針對(duì)系留氣球遠(yuǎn)程監(jiān)控終端的需求,設(shè)計(jì)了上文所述的監(jiān)控系統(tǒng)。該系統(tǒng)運(yùn)行穩(wěn)定,具有數(shù)據(jù)采集、傳輸、處理準(zhǔn)確及時(shí),實(shí)時(shí)性好,抗干擾能力強(qiáng),軟件界面簡(jiǎn)潔明了,操作簡(jiǎn)單等優(yōu)點(diǎn)。

參考文獻(xiàn)

[1] 楊天祥,曾騰輝,楊瀟文.系留氣球測(cè)控系統(tǒng)設(shè)計(jì)[J].測(cè)控技術(shù),2016,35(3):12.

[2] 唐黎江.機(jī)動(dòng)式系統(tǒng)氣球測(cè)控系統(tǒng)軟件設(shè)計(jì)與實(shí)現(xiàn)[J].機(jī)械與電子,2013(2):23.

西昌市| 铜梁县| 沾益县| 镇宁| 边坝县| 临澧县| 稷山县| 姚安县| 方正县| 铜川市| 莱阳市| 讷河市| 沙坪坝区| 西青区| 新干县| 开阳县| 抚远县| 新乡县| 沙洋县| 成都市| 吴川市| 贞丰县| 册亨县| 象州县| 武鸣县| 弋阳县| 金湖县| 甘泉县| 静安区| 新闻| 兰考县| 鄂托克旗| 元阳县| 赤壁市| 云阳县| 裕民县| 平度市| 津南区| 溧水县| 抚顺市| 龙井市|