孫俊男 劉明哲 徐皚冬 郭廷廷 韓曉佳
(*中國科學院 沈陽自動化研究所 工業(yè)控制網(wǎng)絡(luò)與系統(tǒng)研究室 沈陽 110016)(**中國科學院大學 北京 100049)
?
基于IEC60870-5-104遠動規(guī)約的PLC通信模塊的設(shè)計與實現(xiàn)①
孫俊男②***劉明哲*徐皚冬*郭廷廷***韓曉佳***
(*中國科學院 沈陽自動化研究所 工業(yè)控制網(wǎng)絡(luò)與系統(tǒng)研究室 沈陽 110016)(**中國科學院大學 北京 100049)
為了實現(xiàn)對分布在很廣地域的變電站或設(shè)備進行監(jiān)視和控制的以太網(wǎng)規(guī)約IEC60870-5-104遠動規(guī)約在工業(yè)通信領(lǐng)域的應用,首先深入分析了該遠動規(guī)約的結(jié)構(gòu)模型,設(shè)計了一種主要由ARM7內(nèi)核的主控制器和以太網(wǎng)控制器構(gòu)成的通信模塊硬件平臺,以及通過嵌入式實時操作系統(tǒng)來實現(xiàn)多任務(wù)調(diào)度的軟件平臺,并針對規(guī)約要求以及工業(yè)現(xiàn)場需求設(shè)計了主要任務(wù)的有限狀態(tài)機模型。還通過實驗對該模塊的一致性、互操作性和系統(tǒng)性能進行了測試,結(jié)果表明,該通信模塊具有系統(tǒng)獨立、通訊穩(wěn)定、互操作性強、可靠性高等特點。
嵌入式系統(tǒng), IEC60870-5-104, 以太網(wǎng)通信, 狀態(tài)機, 規(guī)約
IEC60870-5-104規(guī)約由國際電工委員會(IEC)于1998年8月制定,我國于2002年也制定了相應的配套標準DL/T634.5104-2002。它是基于現(xiàn)代電子技術(shù)和電子計算機技術(shù),應用遠程通信技術(shù)對遠方變電站或者電廠的設(shè)備進行監(jiān)視和控制,主要實現(xiàn)遠程測量、遠程控制和遠程調(diào)節(jié)等各項功能。該規(guī)約目前在電力領(lǐng)域已經(jīng)得到了比較廣泛的應用[1]。
隨著計算機技術(shù)、網(wǎng)絡(luò)技術(shù)、通信技術(shù)的發(fā)展,加之我國“中國制造2025”、“互聯(lián)網(wǎng)+”等發(fā)展理念的推動[2],現(xiàn)代工業(yè)控制系統(tǒng)越來越復雜,工業(yè)設(shè)備逐漸增多,設(shè)備分布范圍越來越廣,設(shè)備與控制中心交換的數(shù)據(jù)量也急劇增加,因此,人們對工業(yè)控制系統(tǒng)的數(shù)據(jù)通信性能提出了越來越高的要求,通過發(fā)展網(wǎng)絡(luò)來實現(xiàn)工業(yè)控制系統(tǒng)遠動信息的快速、高效、可靠的傳輸成為了現(xiàn)在工業(yè)通信技術(shù)的發(fā)展趨勢。所有這些新需求都離不開網(wǎng)絡(luò)化控制領(lǐng)域的技術(shù)和產(chǎn)品。對于IEC60870-5-104遠動規(guī)約,國內(nèi)基于該規(guī)約的研究大多針對于電力控制系統(tǒng)。本文將該規(guī)約應用在工業(yè)通信領(lǐng)域,以滿足上述工業(yè)控制系統(tǒng)的新需求。
本文通過深入分析IEC60870-5-104遠動規(guī)約,總結(jié)出該規(guī)約的層次結(jié)構(gòu)模型,實現(xiàn)工業(yè)現(xiàn)場數(shù)據(jù)與調(diào)度主站按照104規(guī)約格式進行通信,并通過使用數(shù)據(jù)交換格式JSON對模塊參數(shù)進行配置,以滿足不同的工業(yè)現(xiàn)場的需求,同時,配置過程也定義了104規(guī)約的監(jiān)測點、控制點地址與可編程邏輯控制器(PLC)所連設(shè)備地址的對應關(guān)系,實現(xiàn)了PLC與104通信模塊的數(shù)據(jù)交換,另外,該模塊還將周期地向上位機發(fā)送設(shè)備運行狀態(tài)信息,以便實時監(jiān)控設(shè)備的運行狀況,增強了設(shè)備的可靠性。本文還通過使用104規(guī)約測試工具IEC104 TESTER模擬調(diào)度中心,即104主站,對PLC實際工作現(xiàn)場數(shù)據(jù)進行測試,并通過軟件編寫測試模塊,針對數(shù)據(jù)量大、數(shù)據(jù)變化快等極端使用環(huán)境以及網(wǎng)絡(luò)連接故障、啟??刂茻o效、報文丟失、報文冗余等常見問題進行模擬,對該通信模塊的104功能項以及模塊性能進行全面的測試。
1.1 規(guī)約模型
圖1所示為終端系統(tǒng)上的104規(guī)約模型,其主要模型源于國際標準化組織(ISO)為網(wǎng)絡(luò)通信制定的協(xié)議ISO-OSI參考模型[3]。
圖1 IEC60870-5-104規(guī)約結(jié)構(gòu)圖
IEC60870-5-104規(guī)約底層采用的是TCP/IP的協(xié)議子集,通過用戶到傳輸控制協(xié)議(TCP)的接口連接到應用層,該規(guī)約的應用層分為應用規(guī)約控制信息(application protocal control information, APCI)和應用服務(wù)數(shù)據(jù)單元(application service data unit, ASDU)。
1.2 應用規(guī)約控制信息(APCI)
圖2所示為應用規(guī)約控制信息(APCI)的報文結(jié)構(gòu)圖[3]。
圖2 APCI結(jié)構(gòu)圖
在APCI中,第一個字節(jié)是啟動字符68H,標志著本報文是IEC104規(guī)約的報文,同時啟動字符也標記了IEC104規(guī)約的報文起始位置。
第二個字節(jié)是應用規(guī)約數(shù)據(jù)單元(APDU)的長度,其值不能超過253。
接下來是4個字節(jié)的控制域,根據(jù)控制域4個字節(jié)的不同編碼規(guī)則,APDU又被分為編號的信息傳輸報文(I格式)、編號的監(jiān)視功能報文(S格式)、未編號的控制功能報文(U格式)三種報文,S格式與U格式報文不包含數(shù)據(jù)信息,只有在I格式報文的APDU中包含了應用服務(wù)數(shù)據(jù)單元(ASDU)。
1.3 應用服務(wù)數(shù)據(jù)單元(ASDU)
1.3.1 報文結(jié)構(gòu)
圖3所示為應用服務(wù)數(shù)據(jù)單元(ASDU)的報文結(jié)構(gòu)圖[3]。
圖3 ASDU結(jié)構(gòu)圖
在ASDU中,第一個字節(jié)是類型標識,它定義了信息對象的結(jié)構(gòu)、類型和格式。
可變結(jié)構(gòu)限定詞,占用一個字節(jié)。它定義了信息對象的個數(shù)和信息對象的排列方式。
傳輸原因,占用兩個字節(jié)。它定義了信息報文傳輸?shù)木唧w原因。
服務(wù)數(shù)據(jù)單元公共地址和信息對象地址的結(jié)構(gòu),分別占用兩個字節(jié)和三個字節(jié)。它們分別用來表示站號和具體的信息對象點號。
信息對象時標,占用7個字節(jié)。104規(guī)約規(guī)定可以采用2字節(jié)時標、3字節(jié)時標和7字節(jié)時標?,F(xiàn)在通常采用7字節(jié)時標,可以表示毫秒到年的時間。
1.3.2 報文類型
104規(guī)約規(guī)定應用報文的類型主要有4種:監(jiān)視方向的過程信息、控制方向的過程信息、監(jiān)視方向的系統(tǒng)信息、控制方向的系統(tǒng)信息[3]。
監(jiān)視方向上的過程信息,包括單點遙信、雙點遙信、步位置信息、歸一化測量值、標度化測量值、短浮點測量值等。遙信用來表示信息對象分、合狀態(tài)的數(shù)字量信息;測量值用不同的數(shù)據(jù)類型來表示信息對象的數(shù)值的模擬量信息。
控制方向上的過程信息,包括單點命令、雙點命令、升降擋命令、歸一化設(shè)點命令、標度化設(shè)點命令、短浮點設(shè)點命令等。單、雙點命令是用來控制被控信息對象的分、合狀態(tài)的數(shù)字量命令;設(shè)點命令是用不同的數(shù)據(jù)類型來設(shè)置被控信息對象的數(shù)值的模擬量命令。
監(jiān)視方向上的系統(tǒng)信息,主要是初始化命令,負責向主站傳送具體的初始化原因。
控制方向上的系統(tǒng)信息,包括總(組)召喚命令、電能脈沖召喚、時鐘同步等。總(組)召喚命令用于召喚該站所有點或者一組點的狀態(tài)與數(shù)值;電能脈沖召喚用于召喚該站所有累積量點的數(shù)值;時鐘同步命令用于同步該站與主站的時鐘。
2.1 硬件平臺介紹
本文所設(shè)計的通信模塊,硬件平臺主要由ARM7內(nèi)核的主控制器和以太網(wǎng)控制器構(gòu)成,通過PLC的背板總線技術(shù)與PLC模塊連接,實現(xiàn)PLC電源模塊統(tǒng)一供電、模塊與PLC控制器通過背板總線傳輸文件、數(shù)據(jù)等功能。該模塊作為PLC的外接擴展模塊,具有系統(tǒng)獨立性。
2.2 系統(tǒng)的架構(gòu)
本文所設(shè)計的通信模塊系統(tǒng)架構(gòu)如圖4所示[4-8]。該模塊采用嵌入式實時多任務(wù)操作系統(tǒng)Nucleus PLUS實現(xiàn)初始化線程、配置文件讀取線程、網(wǎng)絡(luò)線程、數(shù)據(jù)線程、104規(guī)約主邏輯線程[9]、狀態(tài)信息反饋線程等任務(wù)的調(diào)度。
圖4 通信模塊系統(tǒng)架構(gòu)
2.2.1 初始化線程
設(shè)備上電、復位動作后,104通信模塊要首先執(zhí)行初始化線程,該線程需要完成的功能主要有:初始化背板驅(qū)動、測試和清空RAM,為其后配置文件的寫入和數(shù)據(jù)交換做準備。
2.2.2 配置文件讀取線程
由于PLC可以應用在不同場合,工業(yè)現(xiàn)場的數(shù)據(jù)量與通信性能參數(shù)也會不同,這時就需要選取不同的模塊參數(shù),需要配置的信息對象個數(shù)也不同,所以,本文所述模塊采用上位機配置工具來對這些參數(shù)進行配置,并將配置文件發(fā)送給模塊。
本文所設(shè)計的104通信模塊的配置文件,使用JSON編寫。JSON(JavaScript Object Notation)是一種輕量級的數(shù)據(jù)交換格式。它易于人閱讀和編寫,同時也易于機器解析和生成,有利于提升網(wǎng)絡(luò)傳輸速率[10]。
該配置文件由上位機配置工具生成,一份發(fā)送給PLC的組態(tài)軟件,該組態(tài)軟件讀取配置文件中的信息對象點數(shù)和點號,用于對應104規(guī)約應用中的點號與PLC的I/O;另一份經(jīng)由PLC控制器通過背板發(fā)送給104通信模塊,104通信模塊對其參數(shù)進行解析。
2.2.3 網(wǎng)絡(luò)線程
IEC60870-5-104規(guī)約是基于TCP/IP的規(guī)約。在初始化線程與配置文件讀取線程完成以后,初始化TCP/IP協(xié)議棧,并啟動網(wǎng)絡(luò)線程,該線程狀態(tài)機模型如圖5所示,狀態(tài)轉(zhuǎn)換表如表1所示。
圖5 網(wǎng)絡(luò)線程狀態(tài)機模型
#當前狀態(tài)事件/動作下一狀態(tài)S1DisconnectedConnect.req/NetConnect()ConnectedS2ConnectedT1.timeout/NetClose()DisconnectedS3ConnectedK.exceeded/NetClose()DisconnectedS4ConnectedN(R).discontinu?ous/NetClose()Disconnected
2.2.4 數(shù)據(jù)線程
設(shè)備運行過程中,PLC需要將現(xiàn)場設(shè)備的過程的數(shù)據(jù)發(fā)送給104通信模塊,并通過模塊將這些數(shù)據(jù)按照104規(guī)約的要求發(fā)送給主站,并且主站還需要將控制命令發(fā)送給PLC的設(shè)備,這就需要自定義一種PLC控制器與104通信模塊的數(shù)據(jù)傳輸規(guī)則。
本文所設(shè)計的通信模塊與PLC控制器數(shù)據(jù)傳輸規(guī)則如圖6所示。在PLC中定義3塊獨立的存儲區(qū),即輸入數(shù)據(jù)存儲區(qū)、輸出數(shù)據(jù)存儲區(qū)、狀態(tài)信息存儲區(qū),104通信模塊通過配置文件的地址偏移量對應表將規(guī)約的監(jiān)視方向過程信息與PLC控制器輸出存儲區(qū)對應,將規(guī)約的控制方向的過程信息與PLC控制器輸入存儲區(qū)對應,將模塊運行過程中的狀態(tài)信息與PLC的狀態(tài)信息存儲區(qū)對應,通過周期輪詢的方式,向PLC控制器請求或發(fā)送數(shù)據(jù)的鏡像。從而實現(xiàn)了PLC控制器與104通信模塊的數(shù)據(jù)交換。
圖6 系統(tǒng)數(shù)據(jù)流圖
該線程作為獨立運行的系統(tǒng)模塊,在系統(tǒng)運行的過程中始終保持數(shù)據(jù)的周期發(fā)送與接受,數(shù)據(jù)交換的周期通過配置文件進行配置。
2.2.5 104規(guī)約主邏輯線程
在數(shù)據(jù)線程啟動之后,且主站與該104通信模塊Socket連接完成,將啟動104規(guī)約主邏輯線程,該線程是模塊實現(xiàn)104規(guī)約的核心部分。
該線程的狀態(tài)機模型如圖7所示,狀態(tài)轉(zhuǎn)換表如表2所示。
該線程啟動以后,網(wǎng)絡(luò)線程一直處于監(jiān)聽網(wǎng)絡(luò)數(shù)據(jù)的狀態(tài),直到收到主站的傳輸控制報文STARTDT之后,模塊的數(shù)據(jù)收發(fā)進入準備狀態(tài),數(shù)據(jù)傳輸功能啟動,當收到主站的傳輸控制報文STOPDT之后,模塊停止與主站的數(shù)據(jù)傳輸,直到主站再次發(fā)送STARTDT報文。
圖7 主邏輯線程狀態(tài)機模型
#當前狀態(tài)事件/動作下一狀態(tài)S1ConnectedSTARTDT.req/STARTDT.con/ProcessDTRecv()/ProcessDT()ReadyS2ReadySTOPDT.req/STOPDT.conConnectedS3TestTESTFR.req/TESTFR.con/ProcessDTRecv()/ProcessDT()ReadyS4TestTESTFR.con/ProcessDTRecv()/ProcessDT()ReadyS5ReadyT3.timeout/TESTFR.reqTestS6ReadyTeleSignal.chgTeleMetering.chg/NetWrite()/T2.reset/N(S)+1DataSendS7ReadyW.exceeded/NetWrite()/T2.reset/N(S)+1DataSendS8ReadyCommand.req/NetWrite()/T2.reset/N(S)+1DataSendS9DataSendSend.success/ProcessDTRecv()/ProcessDT()ReadyS10ReadyCommand.req/ProcessDTRecv()/T3.reset/N(S)+1DataRecvS11ReadyData.refresh/ProcessDTRecv()/T3.reset/N(S)+1DataRecvS12DataRecvRecv.success/ProcessDTRecv()/ProcessDT()Ready
104通信模塊與主站通信主要分為兩部分內(nèi)容,一是響應主站的命令,二是從站變化數(shù)據(jù)主動上送。
主站的命令主要有總召喚、組召喚、電能累計量總召喚(遙脈總召喚)、對時命令、控制命令。收到主站總召喚與組召喚命令后,根據(jù)所配置的點的數(shù)量以及地址排列方式,分單幀和連續(xù)多幀向主站應答;收到對時命令后,則根據(jù)收到的主站時間來校對該104通信模塊的時間,并以對時命令的鏡像向主站發(fā)送確認應答;收到控制命令則先判斷命令類型,若為選擇命令,則先選中命令點,若為執(zhí)行命令,則將控制命令發(fā)送給PLC控制器的輸入緩沖區(qū),執(zhí)行該命令,若為撤銷命令,則以原狀態(tài)應答,撤銷該命令。
從站變化數(shù)據(jù)主動上送主要有遙信變位和遙測數(shù)據(jù)跨越死區(qū)兩種情況。遙信變位即該遙信點的狀態(tài)由分變?yōu)楹?,由合變?yōu)榉?,則產(chǎn)生一個事件,并將該變位的遙信點號地址、變位信息、變位時間上送至主站;遙測數(shù)據(jù)跨越死區(qū)即該遙測點本次數(shù)據(jù)的變化范圍大于為該點配置的死區(qū)數(shù)值范圍,則產(chǎn)生一個事件,并將該變化的點的點號信息、當前值、變化時間上送至主站。
另外,為了保證可靠性通訊和連接的有效性,在線程執(zhí)行時啟動TCP連接超時定時器t0、幀確認超時定時器t1、無I幀超時發(fā)送S幀定時器t2和超時監(jiān)測定時定時器t3,以及報文計數(shù)器k、w。
3.1 實驗平臺介紹
如圖8所示,該實驗平臺包括電源模塊、PLC控制器、104規(guī)約通信模塊。電源模塊通過背板給PLC控制器和104通信模塊供電。104通信模塊的以太網(wǎng)接口與PC連接,在PC端使用IEC104 TESTER軟件來模擬104主站,對該通信模塊的一致性、互操作性和系統(tǒng)性能進行了測試。
圖8 實驗平臺架構(gòu)
3.2 一致性測試
使用IEC104 TESTER軟件,選擇“模擬主站”選項,此時該軟件會模擬104通信網(wǎng)絡(luò)的主站,定期的發(fā)送命令與接受數(shù)據(jù)。結(jié)果如圖9所示,該模塊滿足一致性。
圖9 實驗結(jié)果
3.3 互操作性測試
更改測試軟件參數(shù),同時相應的修改104通信模塊的配置參數(shù),以模擬不同規(guī)格和不同使用情景下的主站,實驗結(jié)果表明,該模塊滿足互操作性。
3.4 系統(tǒng)性能測試
考慮到工業(yè)現(xiàn)場存在數(shù)據(jù)量大,數(shù)據(jù)變化快等極端環(huán)境,本文通過編寫測試模塊,針對這兩種情況對該104模塊在不同數(shù)據(jù)量、不同數(shù)據(jù)變化速率的情況下的平均時延進行了統(tǒng)計分析。結(jié)果如圖10所示。橫軸為同一時刻產(chǎn)生的待發(fā)送報文的數(shù)量,4條曲線自下向上依次為數(shù)據(jù)刷新速率為10秒、5秒、1秒、0.1秒的平均時延情況。
圖10 性能測試統(tǒng)計圖
經(jīng)過對工業(yè)現(xiàn)場需求數(shù)據(jù)量和時間精度的調(diào)研,該模塊的性能能夠滿足絕大多數(shù)工業(yè)現(xiàn)場的需求。
本文通過深入分析IEC60870-5-104遠動規(guī)約的結(jié)構(gòu)模型,提出了一種實現(xiàn)IEC60870-5-104遠動規(guī)約的通信模塊的設(shè)計方案,并予以實現(xiàn)。硬件平臺能夠很好地支持PLC的架構(gòu)。軟件平臺通過嵌入式實時多任務(wù)操作系統(tǒng)來實現(xiàn)任務(wù)的調(diào)度,并且針對每個任務(wù)分別提出了狀態(tài)機模型,來實現(xiàn)各個模塊的功能。
本文所設(shè)計的通信模塊,作為PLC的擴展模塊,具有獨立的軟硬件平臺,PLC與模塊協(xié)同工作,模塊的改動不會影響PLC性能,具有系統(tǒng)獨立的特點;模塊系統(tǒng)參數(shù)與性能參數(shù)可以通過配置文件進行修改,滿足不同規(guī)格、不同使用情景下的主站要求,具有互操作性強的特點;模塊選取高性能軟硬件平臺并設(shè)計良好的系統(tǒng)架構(gòu),使得模塊具有通訊穩(wěn)定、可靠性高的特點。接下來將針對該模塊進行進一步的優(yōu)化,提升系統(tǒng)性能與可靠性。
[1] 薛飛. IEC60870-5-104協(xié)議的軟件建模與實現(xiàn):[碩士學位論文]. 北京: 華北電力大學(北京)控制與計算機學院, 2012. 23
[2] 賀正楚, 潘紅玉. 德國“工業(yè)4.0”與“中國制造2025”. 長沙理工大學學報:社會科學版, 2015, 3:103-110
[3] International Electrotechnical Commission. IEC-60870-5-104 Network access for 1EC 60870-5-101 usingstandard transport profiles. Geneva, Switzerland: International Electrotechnical Commission, Technical Committee 57, Working Group 03, 1998
[4] International Electrotechnical Commission. IEC-60870-5-1 Telecontrol equipment and systems, Part 5: Transmissionprotocols, Section 1: Transmission frame formats. Geneva, Switzerland: International Electrotechnical Commission, Technical Committee 57, Working Group 03, 1990
[5] International Electrotechnical Commission. IEC-60870-5-2 Telecontrol equipment and systems, Part 5: Transmissionprotocols, Section 2: Link transmission procedure. Geneva, Switzerland: International Electrotechnical Commission, Technical Committee 57, Working Group 03, 1990
[6] International Electrotechnical Commission. IEC-60870-5-3 Telecontrol equipment and systems, Part 5 :Transmissionprotocols, Section 3: General structure of application data. Geneva, Switzerland: International Electrotechnical Commission, Technical Committee 57, Working Group 03, 1990
[7] International Electrotechnical Commission. IEC-60870-5-4 Telecontrol equipment and systems, Part 5 :Transmissionprotocols, Section 4: Definition and coding of application information elements, Switzerland: International Electrotechnical Commission, Technical Committee 57, Working Group 03, 1990
[8] International Electrotechnical Commission. IEC-60870-5-5 Telecontrol equipment and systems, Part 5: Transmissionprotocols, Section 5: Basic application functions, Switzerland: International Electrotechnical Commission, Technical Committee 57, Working Group 03, 1990
[9] Fu Q C, Liu Z Y, Fu K J. Implementation of IEC60870-5-104 Protocol Based on Finite State Machines. In: Proceedings of the International Conference on Sustainable Power Generation and Supply, Nanjing, China, 2009,45: 1-5
[10] 胡曉鋒. JSON與XML在網(wǎng)絡(luò)數(shù)據(jù)傳輸中的應用分析. 電腦編程技巧與維護, 2010, 10:77-78
Design and implementation of PLC communication module based on IEC60870-5-104 protocol
Sun Junnan***, Liu Mingzhe*, Xu Aidong*, Guo Tingting***, Han Xiaojia***
(*Industrial Control Networks and systems Department, Shenyang Institute of Automation Chinese Academy of Sciences, Shenyang 110016)(**University of Chinese Academy of Sciences, Beijing 100049)
In order to apply the IEC60870-5-104 telecontrol protocol, an Ethernet protocol for monitoring and controlling the substations or equipment in wide area to the field of industrial communication, this study analysed the structure of the IEC60870-5-104 telecontrol protocol, and presented a method for design and development of a PLC communication module based on this protocol. The hardware platform of this communication module mainly includes the processer based on the ARM7 kernel and Ethernet controller. The software platform uses the embedded real-time multi-task operating system to schedule the tasks of configuration file read, state feedback, module and PLC controller information exchange, data transformation according to the protocol request. The consistency, interoperability and system performance of the module were tested by experiments. The results showed that the communication module had the characteristics of independence, stability, strong interoperability, high reliability and so on.
embedded system, IEC60870-5-104, ethernet communication, finite state machine, protocol
10.3772/j.issn.1002-0470.2016.04.009
①工業(yè)和信息化部智能制造專項(Y5C8150801)資助項目。
2016-02-25)
②男,1992年生,碩士生;研究方向:工業(yè)通信技術(shù),嵌入式系統(tǒng)等;聯(lián)系人,E-mail: sunjunnan@sia.cn(