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

?

基于Host Link FINS協(xié)議的PLC遠(yuǎn)程通信

2014-03-08 09:22:12裴忠誠(chéng)陳洪駿
自動(dòng)化與儀表 2014年11期
關(guān)鍵詞:校驗(yàn)碼串口指令

裴忠誠(chéng) ,陳洪駿 ,葉 樺

(1.東南大學(xué) 自動(dòng)化學(xué)院,南京 210096;2.蘇州經(jīng)貿(mào)職業(yè)技術(shù)學(xué)院 機(jī)電與信息技術(shù)學(xué)院,蘇州215009)

遠(yuǎn)程通信和監(jiān)控技術(shù)是通過(guò)各種通信手段收集并處理遠(yuǎn)端監(jiān)控設(shè)備的多元信息,以便實(shí)時(shí)了解設(shè)備的運(yùn)行情況以及對(duì)設(shè)備進(jìn)行統(tǒng)一管理的一種技術(shù)。為了幫助自動(dòng)化設(shè)備企業(yè)進(jìn)一步縮短設(shè)備故障診斷時(shí)間,提高設(shè)備維護(hù)效率,改進(jìn)設(shè)備制造質(zhì)量,降低去現(xiàn)場(chǎng)修改PLC程序的人員費(fèi)用[1]。本項(xiàng)目設(shè)計(jì)了一種基于歐姆龍PLC的工業(yè)監(jiān)控網(wǎng)絡(luò)系統(tǒng),該系統(tǒng)現(xiàn)場(chǎng)設(shè)備使用歐姆龍CP1H型號(hào)PLC,其核心技術(shù)之一就是對(duì)Host Link FINS協(xié)議解析和使用。通過(guò)對(duì)PLC通信指令進(jìn)行解析,基于通信協(xié)議定制相關(guān)監(jiān)控指令和操作指令來(lái)實(shí)現(xiàn)監(jiān)控軟件與PLC的遠(yuǎn)程通信以及遠(yuǎn)程程序下載上傳[2]。維護(hù)人員只需連接至網(wǎng)絡(luò),即可通過(guò)監(jiān)控軟件在線監(jiān)視PLC的程序運(yùn)行情況,從而降低運(yùn)營(yíng)成本。

1 總體架構(gòu)

整個(gè)監(jiān)控系統(tǒng)分成2個(gè)部分:現(xiàn)場(chǎng)設(shè)備和監(jiān)控軟件,如圖1所示?,F(xiàn)場(chǎng)的PLC負(fù)責(zé)設(shè)備的控制和信息采集;信號(hào)發(fā)射器通過(guò)串口和PLC相接,用于實(shí)現(xiàn)PLC設(shè)備與監(jiān)控軟件的遠(yuǎn)程通訊,實(shí)時(shí)監(jiān)測(cè)PLC設(shè)備的運(yùn)行狀態(tài)以及實(shí)現(xiàn)程序的遠(yuǎn)程修改和升級(jí)[3];服務(wù)器主要作為數(shù)據(jù)通信與數(shù)據(jù)處理部分,主要為客戶端軟件提供它所需的數(shù)據(jù)源,同時(shí)將來(lái)自客戶端軟件的遠(yuǎn)程控制指令實(shí)時(shí)轉(zhuǎn)發(fā)給目標(biāo)PLC設(shè)備;客戶端部分則主要提供數(shù)據(jù)監(jiān)控與分析、程序升級(jí)、客戶信息查詢、設(shè)備位置管理等功能[5]。

圖1 監(jiān)控系統(tǒng)結(jié)構(gòu)圖Fig.1 Monitor and control system structure

1.1 信號(hào)發(fā)射器

CP1H型號(hào)PLC設(shè)備沒(méi)有配置網(wǎng)絡(luò)拓展模塊,無(wú)法直接和服務(wù)器通信。需要在PLC側(cè)開發(fā)信號(hào)發(fā)射器,使PLC設(shè)備能與監(jiān)控軟件進(jìn)行數(shù)據(jù)通信。發(fā)射器模塊具有串口數(shù)據(jù)轉(zhuǎn)WIFI發(fā)送、串口數(shù)據(jù)轉(zhuǎn)以太網(wǎng)發(fā)送和串口數(shù)據(jù)轉(zhuǎn)GPRS發(fā)送3種功能,根據(jù)PLC設(shè)備所在現(xiàn)場(chǎng)的不同環(huán)境,選擇不同的工作模式。

1.2 PLC控制設(shè)備

底層PLC部分選用的是歐姆龍公司較新的一款PLC CP1H,是一種能夠?qū)崿F(xiàn)高速處理、高功能的程序一體化型PLC,處理速度可達(dá)到以往CP1M2A設(shè)備的10倍;豐富的高速計(jì)數(shù)器功能,多樣的脈沖控制,各種組件如串口、USB等使其連接相容性大大提高;可用于CJ拓展系列的高單元功能,靈活性比較高[4]。它能夠支持較新的Host Link FINS傳輸協(xié)議,通過(guò)串口直接與信號(hào)發(fā)射器相連,負(fù)責(zé)數(shù)據(jù)收發(fā),并且能自動(dòng)校驗(yàn),通過(guò)通信鏈路進(jìn)行檢測(cè)。

1.3 監(jiān)控軟件

PC監(jiān)控軟件主要負(fù)責(zé)數(shù)據(jù)的采集、處理、實(shí)時(shí)顯示、警報(bào)和PLC程序的遠(yuǎn)程下載、調(diào)試,從而實(shí)現(xiàn)對(duì)PLC的實(shí)時(shí)狀態(tài)進(jìn)行監(jiān)控等[6]。這個(gè)功能方便監(jiān)控人員查詢PLC設(shè)備的參數(shù)數(shù)據(jù)狀態(tài),及時(shí)發(fā)現(xiàn)故障點(diǎn),以及進(jìn)行參數(shù)配置和遠(yuǎn)程指令控制操作。

監(jiān)控軟件包括客戶端和服務(wù)器2部分,服務(wù)器分別與客戶端和PLC設(shè)備通信。服務(wù)器對(duì)接收到2邊的指令進(jìn)行處理和轉(zhuǎn)發(fā),實(shí)現(xiàn)設(shè)備和終端通信,并且將數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫(kù)中,為客戶端提供數(shù)據(jù)源??蛻舳瞬糠种饕鞘瞻l(fā)指令,并且對(duì)數(shù)據(jù)進(jìn)行處理,顯示出監(jiān)控狀態(tài)。MFC中的各種類構(gòu)成了一個(gè)應(yīng)用程序框架,在此基礎(chǔ)上建立Windows應(yīng)用程序,是一種相對(duì)SDK來(lái)說(shuō)更為簡(jiǎn)單的方法[9]??蛻舳瞬捎肕FC技術(shù)設(shè)計(jì)監(jiān)控所需的界面,后臺(tái)進(jìn)行指令傳送、解析、數(shù)據(jù)接收和處理,并且將需要的數(shù)據(jù)在軟件界面上顯示,方便工程人員監(jiān)控。當(dāng)工程人員需要調(diào)試時(shí),可以將監(jiān)控程序關(guān)閉,切換到調(diào)試狀態(tài),系統(tǒng)打開PC上的CX-ONE軟件,進(jìn)行修改、測(cè)試,并且能夠遠(yuǎn)程上傳下載程序。

2 Host Link FINS通信協(xié)議

2.1 Host Link FINS簡(jiǎn)介

Host Link協(xié)議是歐姆龍公司產(chǎn)品的一種常用通信協(xié)議,通過(guò)Host Link協(xié)議,PLC可以和開發(fā)軟件相互之間進(jìn)行串口通信。Host Link FINS協(xié)議采用的是問(wèn)答式的通信方式,主機(jī)(Host computer)沒(méi)有向PLC發(fā)送任何指令時(shí),PLC設(shè)備除了內(nèi)部程序執(zhí)行發(fā)送數(shù)據(jù)指令,是不會(huì)通過(guò)串口對(duì)外發(fā)送數(shù)據(jù)。當(dāng)通信鏈路為通的狀態(tài),主機(jī)向連接的PLC發(fā)送一條指令,PLC必須返回對(duì)應(yīng)的一條指令。PLC接收到主機(jī)發(fā)送的指令之后,首先進(jìn)行指令校驗(yàn)(FCS),沒(méi)有問(wèn)題,取出FINS的指令部分,轉(zhuǎn)換成ASCII碼執(zhí)行相關(guān)操作,執(zhí)行結(jié)束后將返回給主機(jī)的指令重新進(jìn)行校驗(yàn),發(fā)送給主機(jī),完成一次通信過(guò)程。

2.2 Host Link FINS數(shù)據(jù)幀格式

Host Link FINS協(xié)議是基于Host Link協(xié)議的FINS通信協(xié)議。主機(jī)發(fā)送數(shù)據(jù)幀中,由Host Link數(shù)據(jù)幀頭、FINS發(fā)送指令數(shù)據(jù)、Host Link FCS校驗(yàn)碼、Host Link幀尾組成,在PLC的返回?cái)?shù)據(jù)幀中,由Host Link數(shù)據(jù)幀頭、FINS返回指令數(shù)據(jù)、Host Link FCS校驗(yàn)碼、Host Link幀尾組成。

圖2和圖3是Host Link FINS發(fā)送指令和應(yīng)答指令的數(shù)據(jù)幀格式。

圖2 Host Link FINS發(fā)送指令Fig.2 Host Link FINS send command

圖3 Host Link FINS應(yīng)答指令Fig.3 Host Link FINS reply command

@:在PLC的Host Link FINS數(shù)據(jù)幀中,是以ASCII碼‘@’為開頭;

Unit No.:?jiǎn)卧?hào),對(duì)應(yīng)PLC內(nèi)置串口或串行通訊單元設(shè)置的Host Link單元號(hào);

Header code:在PC主機(jī)直連PLC的情況下,頭代碼為FA;

ICF:為信息控制域,用于標(biāo)明指令和響應(yīng),當(dāng)FINS指令依賴網(wǎng)絡(luò)就用80,如果是直連就用00;

RSV:為系統(tǒng)保留,設(shè)定為00;

GCT:為網(wǎng)關(guān)允許數(shù)目;

DNA:為目的網(wǎng)絡(luò)號(hào);

DA1:為目的節(jié)點(diǎn)號(hào);

DA2:為目的單元號(hào);

SNA:為源網(wǎng)絡(luò)號(hào);

SA1:為源節(jié)點(diǎn)號(hào);

SA2:為源單元號(hào);

SID:為服務(wù)和響應(yīng)的標(biāo)識(shí)號(hào),可任意設(shè)置,指令和響應(yīng)對(duì)應(yīng)相同;

MRC和SRC:分別為FINS指令的主指令和從指令;

FCS:用于標(biāo)明所操作的數(shù)據(jù)地址、范圍等,在響應(yīng)幀中前2個(gè)字節(jié)MRES和SRES構(gòu)成響應(yīng)碼,用來(lái)診斷錯(cuò)誤信息。

2.2.1 FINS數(shù)據(jù)幀格式

上面的Host Link FINS指令中,包含了FINS指令。FINS指令的數(shù)據(jù)幀格式如圖4和圖5所示。

圖4 FINS發(fā)送指令Fig.4 FINS send command

圖5 FINS應(yīng)答指令Fig.5 FINS reply command

指令開頭2字節(jié)是指令碼,這里0102說(shuō)明是讀存儲(chǔ)區(qū)的指令,82是變量分類,根據(jù)指令碼的不同而含義不同,當(dāng)指令碼是讀數(shù)據(jù)指令時(shí),那么這個(gè)字節(jié)的意義就是確定數(shù)據(jù)區(qū),82表示DM存儲(chǔ)區(qū)。接著為數(shù)據(jù)區(qū)的起始地址(3個(gè)字節(jié)),字?jǐn)?shù)(2個(gè)字節(jié))。

2.2.2 FCS校驗(yàn)碼

數(shù)據(jù)幀中Host Link結(jié)束符前面是FCS校驗(yàn)碼。校驗(yàn)采用異或校驗(yàn)方式,將FCS字段之前的所有字段逐一進(jìn)行異或,最終得到的就是FCS校驗(yàn)碼,接收端在收到指令的時(shí)候,就要用這個(gè)FCS校驗(yàn)碼去驗(yàn)證這條指令是否正確。如表1所示為FCS校驗(yàn)碼計(jì)算。

表1 FCS校驗(yàn)碼計(jì)算Tab.1 FCS code calcutation

[A]FCS校驗(yàn)碼采用的是逐位異或,如表中第3列和上一行第5列的值進(jìn)行異或,異或值為第5行,依次異或,XXXXXXXX為最終異或結(jié)果。

2.2.3 PLC數(shù)據(jù)區(qū)設(shè)計(jì)

Host Link FINS協(xié)議具有一定字節(jié)數(shù)量的數(shù)據(jù)頭和尾。傳輸?shù)臄?shù)據(jù)連續(xù)字?jǐn)?shù)越長(zhǎng),傳輸?shù)男试礁?,接收一個(gè)比特位時(shí)需要接收最短數(shù)據(jù)包長(zhǎng)度為43字節(jié),傳輸效率只有2.3%,當(dāng)傳輸連續(xù)50字?jǐn)?shù)據(jù)時(shí),傳輸效率有54%,當(dāng)連續(xù)傳輸200個(gè)字的時(shí)候,傳輸效率高達(dá)82.6%,所以為了能夠高效地傳輸有效數(shù)據(jù),PLC的內(nèi)存區(qū)最好取連續(xù)區(qū)域,表2列出PLC中內(nèi)部劃分的幾種常用IO區(qū)。

為了能夠增加傳輸效率,可以將待傳輸數(shù)據(jù)發(fā)送到一個(gè)連續(xù)的內(nèi)存區(qū)域中,比如是D區(qū),這樣可以通過(guò)比較簡(jiǎn)單的指令完成一系列的數(shù)據(jù)通信。在有限的串口傳輸速度下,這是一種比較好的提高傳輸效率的方法[7-8]。

3 監(jiān)控軟件與PLC通信

如圖6、圖7所示為監(jiān)控軟件指令發(fā)送(PLC設(shè)備接收)和接收(PLC設(shè)備返回指令)的通信指令的流程。用MFC軟件編寫出簡(jiǎn)易的串口通信軟件,MFC主要做的是根據(jù)輸入的指令計(jì)算出FCS校驗(yàn)碼,然后生成一條完整的指令發(fā)送到PLC中。在數(shù)據(jù)返回部分,采用多線程技術(shù)和基于MFC的消息處理機(jī)制,當(dāng)有數(shù)據(jù)接收時(shí),系統(tǒng)捕獲到這一消息,觸發(fā)串口接收事件,然后從接收緩沖區(qū)讀取數(shù)據(jù),并且存放在隊(duì)列中,當(dāng)數(shù)據(jù)讀取完畢時(shí),設(shè)置數(shù)據(jù)處理事件,系統(tǒng)捕獲到這一事件后,在數(shù)據(jù)處理線程中繼續(xù)從隊(duì)列中讀取數(shù)據(jù)并且進(jìn)行解析處理,事件處理線程開始FCS校驗(yàn)指令,取出所需要的數(shù)據(jù)。這種采用多線程的方式更加高效利用CPU執(zhí)行能力,加快了數(shù)據(jù)讀取處理能力[9]。

圖7 指令接收流程圖Fig.7 Flow chart of reply command

在通信之前要先進(jìn)行初始化,設(shè)置傳輸波特率,數(shù)據(jù)傳輸格式,要根據(jù)PLC中的設(shè)置來(lái)確定監(jiān)控軟件的這些串口通信參數(shù)[10]。

MFC支持MSComm插件,可以進(jìn)行簡(jiǎn)易串口收發(fā)數(shù)據(jù)[11]。如圖8所示為讀取數(shù)據(jù)的通信界面。

圖8 監(jiān)控軟件測(cè)試界面Fig.8 Monitor and control software testing interface

圖8中為數(shù)據(jù)要求從D20000起50個(gè)字的數(shù)據(jù),在接收數(shù)據(jù)框中便顯示接收到的數(shù)據(jù)。從監(jiān)控軟件界面上發(fā)送和接收的數(shù)據(jù)來(lái)看,整個(gè)監(jiān)控過(guò)程中能夠正確地發(fā)送需要的指令,以及接收到從底層PLC返回來(lái)的所有需要的數(shù)據(jù),監(jiān)控功能完成。

4 結(jié)語(yǔ)

基于Host Link FINS協(xié)議的串口通信方式具有較強(qiáng)的數(shù)據(jù)傳輸能力和傳輸效率,其問(wèn)答模式大大提高了這種方式下數(shù)據(jù)傳輸?shù)目煽啃?。本文以歐姆龍公司CP1H型號(hào)的PLC為應(yīng)用背景,設(shè)計(jì)了基于Host Link Fins協(xié)議的PLC設(shè)備遠(yuǎn)程監(jiān)控系統(tǒng)。信號(hào)發(fā)射器的設(shè)計(jì)實(shí)現(xiàn)了PLC串口數(shù)據(jù)在網(wǎng)絡(luò)中的傳輸;基于MFC開發(fā)的通信軟件則實(shí)現(xiàn)了監(jiān)控軟件與PLC的遠(yuǎn)程通信功能,能夠?qū)LC進(jìn)行遠(yuǎn)程監(jiān)控與管理。現(xiàn)場(chǎng)測(cè)試和運(yùn)行結(jié)果表明,該系統(tǒng)運(yùn)行穩(wěn)定可靠,PLC通信性能較高,具有很好的實(shí)用價(jià)值。

[1] 侯瑞春,丁香乾,陶冶,等.制造物聯(lián)及相關(guān)技術(shù)架構(gòu)研究[J].計(jì)算機(jī)集成制造系統(tǒng),2014,20(1):11-20.

[2] 郭永勇,潘存海,李軍鋒,等.WinCC監(jiān)控系統(tǒng)中OPC通信及數(shù)據(jù)處理方法[J].制造業(yè)自動(dòng)化,2014,36(2):98-100.

[3] 謝揚(yáng)球,吳宏棟.微成形制造中的上下位機(jī)通信設(shè)計(jì)及實(shí)現(xiàn)[J].制造業(yè)自動(dòng)化,2013,35(1):71-72,84.

[4] 樊銳,宋曉亮.通過(guò)DP通訊改變6RA70裝置參數(shù)設(shè)定在鋁冷軋機(jī)上的應(yīng)用[J].制造業(yè)自動(dòng)化,2014,36(3):141-145,156.

[5] 蘇寶平.基于無(wú)線通信的軌道車防溜智能監(jiān)控系統(tǒng)設(shè)計(jì)[J].制造業(yè)自動(dòng)化,2014,36(3):46-49.

[6] 黃大偉.LabVIEW與S7-200 PLC PPI協(xié)議通訊的設(shè)計(jì)與實(shí)現(xiàn)[J].自動(dòng)化與儀器儀表,2013(4):94-95,99.

[7] 段潤(rùn)群,謝云山.上位機(jī)軟件與S7-1200 PLC的OPC通信研究[J].自動(dòng)化與儀器儀表,2014(5):13-15,19.

[8] 蘇虎平,沈三民,劉文怡,等.基于冗余CAN總線的實(shí)時(shí)通信系統(tǒng)設(shè)計(jì)[J].自動(dòng)化與儀表,2013,28(1):26-29,55.

[9] 孫鑫.VC++深入詳解[M].北京:電子工業(yè)出版社,2012.

[10]劉艷平,李化南,趙連環(huán),等.基于ARM的FreeModbus通信協(xié)議的實(shí)現(xiàn)[J].自動(dòng)化與儀表,2013,28(5):22-26.

[11]李敏.基于PPI協(xié)議的PLC通信控制設(shè)計(jì)[J].自動(dòng)化與儀器儀表,2013(2):66-68. ■

猜你喜歡
校驗(yàn)碼串口指令
聽(tīng)我指令:大催眠術(shù)
淺談AB PLC串口跟RFID傳感器的通訊應(yīng)用
ARINC661顯控指令快速驗(yàn)證方法
LED照明產(chǎn)品歐盟ErP指令要求解讀
基于Excel實(shí)現(xiàn)書號(hào)校驗(yàn)碼的驗(yàn)證
USB接口的多串口數(shù)據(jù)并行接收方法探索
基于藍(lán)牙串口適配器的GPS接收機(jī)與AutoCAD的實(shí)時(shí)無(wú)線通信
基于FPGA的循環(huán)冗余校驗(yàn)碼設(shè)計(jì)
電子世界(2015年14期)2015-11-07 05:32:29
身份證號(hào)碼中的數(shù)學(xué)
基于并行控制的FPGA多串口拓展實(shí)現(xiàn)
海原县| 高阳县| 邛崃市| 丰宁| 石嘴山市| 高要市| 柘城县| 连南| 鄢陵县| 木里| 正阳县| 江城| 绩溪县| 平武县| 承德县| 舟山市| 阳泉市| 开原市| 莒南县| 常宁市| 望城县| 鄯善县| 彭水| 谢通门县| 灌阳县| 图片| 苍南县| 固始县| 吉首市| 惠来县| 邵武市| 大兴区| 惠州市| 逊克县| 吉木乃县| 凭祥市| 绥中县| 夏邑县| 胶州市| 许昌县| 新泰市|