大連理工大學(xué)本科論文現(xiàn)場總線控制系統(tǒng)功能塊組態(tài)軟件設(shè)計
《大連理工大學(xué)本科論文現(xiàn)場總線控制系統(tǒng)功能塊組態(tài)軟件設(shè)計》由會員分享,可在線閱讀,更多相關(guān)《大連理工大學(xué)本科論文現(xiàn)場總線控制系統(tǒng)功能塊組態(tài)軟件設(shè)計(56頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、 大連理工大學(xué)本科畢業(yè)設(shè)計(論文) 現(xiàn)場總線控制系統(tǒng)功能塊組態(tài)軟件設(shè)計 Design of Configuration Software based on Filedbus Control System 學(xué) 院(系): 電子與信息工程學(xué)院 專 業(yè): 計算機科學(xué)與技術(shù) 學(xué) 生 姓 名: 劉國強 學(xué) 號: 200591109 指 導(dǎo) 教 師: 仲崇權(quán) 評 閱 教 師: 完 成
2、 日 期: 2009年6月 大連理工大學(xué) Dalian University of Technology 摘 要 IEC61131標準作為工業(yè)自動化控制系統(tǒng)標準化編程語言的國際標準,受到了廣泛的關(guān)注和重視。目前國際上已有多個自動化設(shè)備生產(chǎn)商推出了以這個標準為基礎(chǔ)的控制系統(tǒng)。研究基于IEC61131標準的控制系統(tǒng)意義重大。 本文研究了IEC61131標準中關(guān)于功能塊編程的技術(shù)內(nèi)容,給出了指令規(guī)約和編程方法,研究了功能塊程序的可視化編輯和編譯技術(shù),設(shè)計和實現(xiàn)可編程控制器編程軟件——PLC_Config。該程序是在Microsoft Visual
3、 Studio 2003環(huán)境平臺下,使用C++編程語言,基于MFC程序框架開發(fā)完成的。該軟件可對現(xiàn)場網(wǎng)絡(luò)上的所有設(shè)備和資源進行配置和規(guī)劃,使現(xiàn)場網(wǎng)絡(luò)中的設(shè)備成為一個有機整體,協(xié)同工作完成控制功能。該軟件應(yīng)用了模塊化設(shè)計思想,將整個軟件分解成現(xiàn)場設(shè)備管理模塊、可視化組態(tài)模塊、現(xiàn)場設(shè)備監(jiān)控模塊、文件管理模塊、通信服務(wù)模塊及信息報告模塊。可視化功能塊編程模塊實現(xiàn)了操作方便功能強大的用戶操作界面,通過描述文件與可視化的編程元件的互轉(zhuǎn)實現(xiàn)了功能塊程序的保存與讀取,編譯模塊實現(xiàn)了功能塊程序在上位機與下位機存儲表達形式的互轉(zhuǎn),用戶可以方便的下載上載功能塊程序。 通過設(shè)計和開發(fā)PLC_Config可視化編輯
4、模塊和組態(tài)編譯模塊,以及在PLC_Config程序中地應(yīng)用,證明了編輯,編譯功能塊文件方法的可行性和正確性,也提供了一種編輯,編譯圖形化語言的一種方法。 關(guān)鍵詞:現(xiàn)場總線;IEC61131-3標準;功能塊組態(tài);可編程控制器; Design of Configuration Software based on Filedbus Control System Abstract IEC61131 standard for industrial automation and control system programming language standardize
5、d international standards, has been widespread concern and attention. At present, there are a number of automation equipment manufacturers with the introduction of the standards-based control system. Research based on the standard IEC61131 control system of great significance. In this paper, the t
6、echnical content on function block programming in IEC61131 standard is studied. Command and programming are provided. Visual programming and compiler technology of function block programming are researched. Programming software of Programmable Logic Controller(PLC_Config) is designed and implemente
7、d. This software uses C++ programming language under Microsoft visual studio 2003 development platform and based on the MFC Framework. This software configurates and plans the filed devices and resources, makes the filed devices implement control function as an organic whole. The software app the mo
8、dular design concept. It includes Device Manage Module, Visual Configure Module, Watching Module, Files Manage Module, Communication Module and Report Module. Visual Configure Module implement useful and powerful user interface. It implement save and read function by the change between XML files and
9、 visual programming elements. Compiler Module implement the change of mode between in computer and in PLC. User can configurate and upload the program conveniently. By developing the Visual Configure Module and Compiler Module and Testing in the application, the design is proved correct. The artic
10、le provide a method of edit and compile graphics program language. Key Words:Fieldbus; IEC61131-3 standards; Function block configuration; Programmable logic Controller; 目 錄 摘 要 I Abstract II 引 言 1 1 概 述 3 1.1 現(xiàn)場總線技術(shù) 3 1.1.1 現(xiàn)場總線概念 3 1.1.2 現(xiàn)場總線的特點 3 1.1.3 RS485總線 4 1
11、.1.4 MODBUS協(xié)議 4 1.2 現(xiàn)代自動控制系統(tǒng)和IEC61131-3國際標準 5 1.3 IEC 61131-3及其功能塊編程 6 1.4 可編程邏輯控制器 7 1.5 組態(tài)軟件 8 1.6 論文的主要工作 9 2 PLC_Config組態(tài)軟件設(shè)計和實現(xiàn) 10 2.1 概述 10 2.2 現(xiàn)場設(shè)備管理模塊 12 2.3 文件管理模塊 12 2.4 可視化組態(tài)模塊 13 2.5通信服務(wù)模塊 16 2.5.1 實時通訊服務(wù)的實現(xiàn) 17 2.5.2 套接字映射接口對象的實現(xiàn) 17 2.6信息報告模塊 19 2.6本章小結(jié) 19 3 PLC_Con
12、fig組態(tài)軟件可視化功能塊組態(tài)以及編譯 20 3.1 PLC_Config可視化功能塊編輯程序的設(shè)計 20 3.1.1文檔/視圖(Document/View)結(jié)構(gòu) 20 3.1.2 可視化功能塊編輯程序設(shè)計類關(guān)系圖 20 3.1.3功能塊的圖形表示 21 3.1.4功能塊的邏輯組成 21 3.1.5在DCCE系列PLC中的功能塊程序的表現(xiàn)形式 22 3.1.6 功能塊類的設(shè)計 23 3.1.7功能塊參數(shù)類的設(shè)計 26 3.1.8鏈接關(guān)系的設(shè)計 27 3.1.9網(wǎng)絡(luò)物件設(shè)計 28 3.1.10功能塊文檔類的設(shè)計 29 3.2編譯程序(Compile.exe)的設(shè)計 30
13、 3.2.1功能塊編譯程序的設(shè)計分析 30 3.2.2編譯程序的接口設(shè)計 31 3.2.3編譯過程中的錯誤信息的提示實現(xiàn) 33 3.2.3功能塊參數(shù)的編譯 33 3.2.4功能塊的編譯 34 3.2.5功能塊網(wǎng)絡(luò)的編譯 35 3.3 本章小結(jié) 39 4.PLC_Config軟件在十字路口交通燈控制系統(tǒng)的使用 41 4.1 十字交通燈控制系統(tǒng)概述 41 4.2 十字交通燈控制系統(tǒng)功能需求 42 4.2.1 硬件需求 42 4.2.2 交通等開關(guān)動作需求 43 4.3 功能塊程序?qū)崿F(xiàn) 45 4.3.1 正常情況下交通燈程序?qū)崿F(xiàn) 45 4.3.2可急車強通控制的交通燈程序
14、實現(xiàn) 46 4.4本章小結(jié) 48 結(jié) 論 49 參考文獻 50 附錄A 簡單功能塊程序與對應(yīng)的XML文檔 51 附錄B PEC8000寄存器地址 52 致 謝 53 引 言 在工業(yè)控制領(lǐng)域,PLC技術(shù)的發(fā)展在上世紀90年代經(jīng)歷了一次高潮。這得益于微電子、網(wǎng)絡(luò)通信和控制技術(shù)的迅猛發(fā)展。但隨著技術(shù)的進步和市場要求的提高,傳統(tǒng)的PLC越來越暴露出其在數(shù)據(jù)封裝能力,程序可重用性,順序操作編程等方面的不足。這些缺陷導(dǎo)致了不同制造商PLC平臺的不兼容,也給工程技術(shù)人員的學(xué)習(xí)和操作帶來了極大的不便。統(tǒng)一的編程規(guī)則成為技術(shù)人員的迫切需求。 而IEC61131-3是
15、目前關(guān)于工業(yè)控制編程語言唯一的國際標準,它將現(xiàn)代軟件工程的概念和機制與傳統(tǒng)PLC編程語言完美結(jié)合,使它在工業(yè)控制領(lǐng)域的影響已越出PLC的界限,應(yīng)用越來越廣泛。 IEC61131-3是國際電工委員會IEC于1999年推出的用于工業(yè)控制領(lǐng)域的標準化編程語言,適用于PLC編程[1][2]。IEC61131-3是IEC61131的編程語言部分,與傳統(tǒng)的PLC編程語言相比較,前者具有突出的優(yōu)點: (1) 開放性,由于采用獨立于制造商的一致性IEC61131-3標準化編程語言,因而應(yīng)用系統(tǒng)能最大限度地運行于來自不同制造商的PLC。 (2) 可移植性,允許程序在IEC61131-3兼容系統(tǒng)上移植。
16、(3) 高水平的軟件重復(fù)使用性和允許柔性地選擇編程語言。一個程序的不同部分可用任一種語言編程。 (4) 類似高級語言的先進語言結(jié)構(gòu),支持“自上而下”和“自下而上”的結(jié)構(gòu)化程序開發(fā)。支持復(fù)雜的控制過程。支持結(jié)構(gòu)化數(shù)據(jù)。 (5) 有很強的錯誤檢測和糾錯能力,能明顯地提高程序數(shù)據(jù)和變量的可靠性。PLC組態(tài)具有運行時行為特性。 標準化的開放系統(tǒng)是大勢所趨,1992年總部設(shè)在荷蘭的PLCopen成立,目前,多數(shù)的PLC制造商,軟件公司和研究院所已是這個國際組織的成員。如Siemens、 A-B、ABB、 GE、 Mitsubishi、Fuji、 Schneider都推出了符合IEC61131-3標
17、準的PLC,此外有不少的 IPC工控機、DCS、HMI等制造商配置IEC61131-3編程軟件。目前,和利時公司的FOPLC采用IEC61131-3編程語言。IEC61131-3的修訂版在2002年底發(fā)布,它不僅描述了PLC編程語言本身,還提供了綜合的概念和建立PLC項目的導(dǎo)則,當工程設(shè)計人員熟悉了IEC61131-3編程語言,就能對上述多家生產(chǎn)的PLC進行編程設(shè)計。 組態(tài)軟件是工業(yè)應(yīng)用軟件的一個組成部分,其發(fā)展受到很多因素的制約。歸根結(jié)底,應(yīng)用的帶動對其發(fā)展起著最為關(guān)鍵的推動作用。類似OPC這樣的組織的出現(xiàn),以及現(xiàn)場總線、尤其是工業(yè)以太網(wǎng)的快速發(fā)展,大大簡化了異種設(shè)備間互連、開發(fā)I/O設(shè)備
18、驅(qū)動軟件的工作量。I/O驅(qū)動軟件也逐漸會朝標準化的方向發(fā)展。由單一的人機界面朝數(shù)據(jù)處理機方向發(fā)展,管理的數(shù)據(jù)量越來越大。實時數(shù)據(jù)庫的作用將進一步加強。 很多新的技術(shù)將不斷地被應(yīng)用到組態(tài)軟件當中,組態(tài)軟件裝機總量的提高會促進在某些專業(yè)領(lǐng)域?qū)S冒孳浖恼Q生,市場被自動地細分了。為此,一種稱為“軟總線”的技術(shù)將被廣泛采用。在這種體系結(jié)構(gòu)下,應(yīng)用軟件以中間件或插件的方式被“安裝”在總線上,并支持熱插拔和即插即用。這樣做的優(yōu)點是:所有插件遵從統(tǒng)一標準,插件的專用性強,每個插件開發(fā)人員之間不需要協(xié)調(diào),一個插件出現(xiàn)故障不會影響其他插件的運行。XML技術(shù)將被組態(tài)軟件廠商善加利用,來改變現(xiàn)有的體系結(jié)構(gòu),它的
19、推廣也將改變現(xiàn)有組態(tài)軟件的某些使用模式,滿足更為靈活的應(yīng)用需求。 在IEC61131-3標準的控制編程語言中,功能塊圖用來描述功能、功能塊和程序的行為特征,還可以在順序功能流程圖中描述步、動作和轉(zhuǎn)變的行為特征。功能塊圖與電子線路圖中的信號流圖非常相似,在程序中,它可看作兩個過程元素之間的信息流。功能塊圖普遍地應(yīng)用在過程控制領(lǐng)域。 本文通過對IEC61131-3標準中功能塊語言的研究,結(jié)合PLC指令的特點,應(yīng)用MFC設(shè)計和開發(fā)一種基于IEC61131-3標準中功能塊語言的編譯方法。全文共分四章: 第一章:概述:介紹IEC61131-3國際標準及其編程語言,介
20、紹PLC指令特點,XML描述文件等相關(guān)技術(shù)知識以及本文主要工作。 第二章:介紹PLC_Config組態(tài)軟件設(shè)計和實現(xiàn)。 第三章:詳細介紹PLC_Config組態(tài)軟件可視化功能塊組態(tài)的編譯。 第四章:PLC_Config組態(tài)軟件的應(yīng)用,并給出了應(yīng)用案例。 結(jié)論:總結(jié)論文所解決的問題,并對下一步研究提出建議。 1 概 述 1.1 現(xiàn)場總線技術(shù) 1.1.1 現(xiàn)場總線概念 現(xiàn)場總線是由DCS系統(tǒng)發(fā)展而來,采用全數(shù)字通信代替模擬傳輸方式,使控制系統(tǒng)與現(xiàn)場儀表之間不僅能傳輸生產(chǎn)過程測量與控制信息,而且還能傳輸現(xiàn)場儀表的大量非控制信息,使整個工業(yè)企業(yè)的管理控制一體
21、化成為可能[3]。 所謂現(xiàn)場總線,按照國際電工委員會IEC/SC65C的定義,是指安裝在制造或過程區(qū)域的現(xiàn)場裝置之間、以及現(xiàn)場裝置與控制室內(nèi)的自動控制裝置之間的數(shù)字式、串行和多點通信的數(shù)據(jù)總線。以現(xiàn)場總線為基礎(chǔ)而發(fā)展起來的全數(shù)字控制系統(tǒng)稱作現(xiàn)場控制系統(tǒng)(Field Control System)。 現(xiàn)場總線技術(shù)將專用微處理器置入傳統(tǒng)的測量控制儀表,使它們各自都具有數(shù)字計算和數(shù)字通信能力,并按照公開、規(guī)范的通信協(xié)議,在位于現(xiàn)場的多個微機化測量控制設(shè)備之間以及現(xiàn)場儀表與遠程監(jiān)控計算機之間,實現(xiàn)數(shù)據(jù)傳輸與信息交換,形成各種適應(yīng)實際需要的自動控制系統(tǒng)。簡而言之,它把單個分散的測量控制設(shè)備變成網(wǎng)絡(luò)節(jié)
22、點,以現(xiàn)場總線為紐帶,把它們連接成可以互相溝通信息、共同完成控制任務(wù)的網(wǎng)絡(luò)系統(tǒng)與控制系統(tǒng)。 1.1.2 現(xiàn)場總線的特點 (1) 全數(shù)字通信 現(xiàn)場總線采用完全的數(shù)字信號傳輸。這種數(shù)字化的傳輸方式使得信號的檢錯、糾錯機制得以實現(xiàn),因此它的抗干擾能力和魯棒性較高。同時全數(shù)字通信使得多參數(shù)傳輸?shù)靡詫崿F(xiàn)。 (2) 多分支結(jié)構(gòu) 現(xiàn)場總線的拓撲可以為總線型、星型、樹型等多種形式。 (3) 現(xiàn)場設(shè)備狀態(tài)可控 通過現(xiàn)場總線,現(xiàn)場設(shè)備的管理信息大大增加,這些信息包括功能模塊組態(tài)、參數(shù)狀況、診斷和驗證數(shù)據(jù)、設(shè)備材質(zhì)和過程條件等。操作人員在控制室就可以對這些信息進行管理和利用,對現(xiàn)場設(shè)備進行維護。
23、(4) 控制分散 現(xiàn)場總線系統(tǒng)采用全分散控制。現(xiàn)場設(shè)備既有檢測、變換、工程量處理和補償功能,也有運算和控制功能。通過現(xiàn)場總線,將傳統(tǒng)DCS、PLC等控制系統(tǒng)復(fù)雜的控制任務(wù)進行分解,分散在現(xiàn)場設(shè)備中,簡化了系統(tǒng)結(jié)構(gòu),提高了系統(tǒng)的可靠性、自治性和靈活性。 現(xiàn)場總線自20世紀80年代產(chǎn)生以來,由于適應(yīng)工業(yè)控制系統(tǒng)網(wǎng)絡(luò)化和智能化的發(fā)展方向,受到全世界工業(yè)自動化領(lǐng)域的普遍關(guān)注,從而發(fā)展迅速。目前已開發(fā)出40多種現(xiàn)場總線,如Interbus、Bitbus、DeviceNet、Modbus、Arcnet、P-Net、FIP、ISP等。 1.1.3 RS485總線 RS485總線系統(tǒng)是用于在數(shù)據(jù)通信
24、系統(tǒng)中滿足較復(fù)雜應(yīng)用的主從式系統(tǒng)。其采用差分方式進行雙向平衡傳輸,傳輸距離較遠,最大可達1200m,傳輸更遠距離時可加中繼器。RS485以半雙工方式通訊,支持多點連接,允許掛接多達32個節(jié)點,利用驅(qū)動器可使節(jié)點增至128個。其傳輸速率較高,最高可達10Mbit/s。RS485總線已成為工業(yè)領(lǐng)域應(yīng)用最為廣泛的總線之一。 RS485總線標準只對物理層接口進行定義,上層協(xié)議選擇比較靈活。相對于FF、PROFIBUS、CAN等真正的現(xiàn)場總線系統(tǒng),RS485總線系統(tǒng)在軟硬件成本上具有較大優(yōu)勢,在一定時間內(nèi)仍將是中小控制系統(tǒng)的主要形式。 1.1.4 MODBUS協(xié)議 MODBUS 協(xié)議最早是由美國
25、MODICON 公司針對其PLC產(chǎn)品開發(fā)的一種通信協(xié)議。由于該協(xié)議定義的是一種數(shù)據(jù)幀結(jié)構(gòu),獨立于物理層介質(zhì)和設(shè)備通信網(wǎng)絡(luò),容易被控制器識別和使用,因此MODICON 公司將其發(fā)展成為標準 MODBUS 接口和MODBUS PLUS 網(wǎng)絡(luò),并可擴展到其他網(wǎng)絡(luò)應(yīng)用中。MODBUS 協(xié)議應(yīng)用在標準 MODBUS 網(wǎng)絡(luò)時,將被直接傳送;若應(yīng)用在其他網(wǎng)絡(luò),可以將該協(xié)議植入其通信數(shù)據(jù)幀結(jié)構(gòu)中進行傳送。 因為 MODBUS 協(xié)議良好的適用性已經(jīng)得到了眾多大公司(例如GE、SIEMENS、OMRON 等)的支持,所以都把它作為一種標準的通信接口提供給用戶,并且作為與主系統(tǒng)通信的主要途徑。 目前,我國電力和
26、化工行業(yè)已經(jīng)廣泛使用集散控制系統(tǒng)DCS ( Distributed Control System )系統(tǒng)。不過在大多數(shù)場合,DCS 系統(tǒng)都與其他專用控制系統(tǒng)混合使用。專用系統(tǒng)包含PLC、數(shù)據(jù)采集器、智能控制器、智能儀表等。如果將這些系統(tǒng)都接入 DCS 系統(tǒng)統(tǒng)一監(jiān)視、控制、管理,無疑會極大提高企業(yè)的經(jīng)濟效率和管理水平。值得關(guān)注的是現(xiàn)在幾乎所有的 DCS 系統(tǒng)都提供了 MODBUS 通信接口。所以,進行基于 MODBUS 協(xié)議的控制器遠程監(jiān)控系統(tǒng)開發(fā)具有現(xiàn)實意義和可行性。 MODBUS 協(xié)議采用Master–Slave技術(shù),是一種問答方式的通信協(xié)議。一個 Master 可以對應(yīng)一個或多個Sla
27、ve,只有 Master 才可進行初始化的詢問,為 Slave 分配地址,對所有的 Slave 發(fā)送廣播信息 。MODBUS 協(xié)議在點對點通信時采用 RS232/RS422 串口通信標準。多點通信時則采用 RS485 串口通信標準。 1.2 現(xiàn)代自動控制系統(tǒng)和IEC61131-3國際標準 在工業(yè)控制領(lǐng)域,PLC技術(shù)的發(fā)展在上世紀90年代經(jīng)歷了一次高潮。這得益于微電子、網(wǎng)絡(luò)通信和控制技術(shù)的迅猛發(fā)展。但隨著技術(shù)的進步和市場要求的提高,傳統(tǒng)的PLC越來越暴露出其在數(shù)據(jù)封裝能力,程序可重用性,順序操作編程等方面的不足。這些缺陷導(dǎo)致了不同制造商PLC平臺的不兼容,也給工程技術(shù)人員的學(xué)習(xí)和操作帶來了
28、極大的不便。統(tǒng)一的編程規(guī)則成為技術(shù)人員的迫切需求。IEC61131標準正是在這種情況下應(yīng)運而生。IEC61131-3是IEC 61131國際標準的第三部分[12][13][14], 是第一個為工業(yè)自動化控制系統(tǒng)的軟件設(shè)計提供標準化編程語言的國際標準。該標準提供給用戶一種良好結(jié)構(gòu)、自上而下或自下而上的程序開發(fā)方法,提供全套的配置集成,允許程序分解成功能塊和軟件元素,進行完全的程序控制。程序不同部分在不同時間,以不同周期或平行的運行。提供了一套統(tǒng)一的應(yīng)用于PLC的語法和語義。IEC61131-3包括5種編程語言,即指令表、結(jié)構(gòu)化文本、梯型圖、功能塊圖和順序功能圖。規(guī)范了編程語言、PLC與編程系統(tǒng)的
29、接口、字符集和工程管理,使得所有PLC使用相同的概念,平臺程序可以互相移植,從而整體降低自動化控制系統(tǒng)的費用。這些都是在工業(yè)控制系統(tǒng)所闡述的軟件設(shè)計的概念和軟件模型等的基礎(chǔ)上制定的,適應(yīng)了當今世界軟件、工業(yè)控制系統(tǒng)的發(fā)展方向。 符合IEC 61131-3的軟件系統(tǒng)是一個結(jié)構(gòu)完善、可重復(fù)使用、可維護的工業(yè)控制系統(tǒng)軟件。標準最初主要用于可編程序控制器PLC的編程系統(tǒng),但隨著可編程序控制器PLC技術(shù)、編程語言等的不斷進步也在不斷地進行著補充和完善。目前該標準同樣也適用于過程控制領(lǐng)域、分散型控制系統(tǒng)、基于控制系統(tǒng)的軟邏輯、SCADA等。IEC 61131-3國際標準在技術(shù)上的實現(xiàn)是高水平的,因此有足
30、夠的發(fā)展空間和變動余地,這也使得該標準能很好地適應(yīng)工業(yè)控制的發(fā)展和要求。因此IEC 61131-3標準在1993頒布之后被國際用戶和開發(fā)商團體廣泛接受,目前得到全世界的認可。世界頂尖的工業(yè)控制商接受了這個編程模型,各種軟件公司提供相應(yīng)的開發(fā)工具。IEC 61131-3國際標準已對整個控制領(lǐng)域形成了巨大的沖擊,采用或應(yīng)用符合IEC 61131-3國際標準的組態(tài)產(chǎn)品,已經(jīng)成為國際工業(yè)控制領(lǐng)域的一大趨勢。 1.3 IEC 61131-3及其功能塊編程 IEC 61131標準提供給用戶一種良好結(jié)構(gòu)、自上而下或自下而上的程序開發(fā)方法,提供全套的配置集成,允許程序分解成功能塊和軟件元素,進行完全
31、的程序控制,程序不同部分在不同時間,以不同周期或平行的運行。IEC 61131將特定應(yīng)用的控制系統(tǒng)稱為配置,包括硬件的分配、過程資源劃分、輸入輸出通道分配、內(nèi)存地址分配及系統(tǒng)的性能分析。一個配置中可定義一個或多個資源,資源可以理解為可執(zhí)行的過程處理設(shè)備,像一個CPU。一個資源中可以定義一個或多個任務(wù)。由任務(wù)控制一套程序或/和功能塊的執(zhí)行,可以周期或由事件驅(qū)動。程序可以使用5種語言的任何一種。典型程序由功能塊、函數(shù)組成,包括數(shù)據(jù)結(jié)構(gòu)和邏輯。與一個資源、一個任務(wù)、運行于一個閉環(huán)系統(tǒng)的傳統(tǒng)PLC相比,IEC 61131-3是開放和先進的。IEC 61131-3標準中提供了4種內(nèi)部操作語言和一個結(jié)構(gòu)化
32、語言定義: (1)順序功能圖(SFC)是IEC 61131-3標準的中心語言,用于工業(yè)控制軟件的結(jié)構(gòu)化的內(nèi)部組織。SFC語言源于Petri Nets,用于解決面向序列的問題。它將控制過程周期分成定義好的步驟,并由轉(zhuǎn)移條件隔開。步驟描述了行為,對應(yīng)程序組織單元;轉(zhuǎn)換描述了條件,對應(yīng)程序組織單元的邏輯聯(lián)系,它決定其他語言描述行為的執(zhí)行順序。不管是平行的執(zhí)行邏輯或有多個選項的過程都很容易地用SFC表示。 (2)功能塊圖(FBD)是圖形化的編程語言,使用IEC功能塊庫中的功能塊進行圖形化程序開發(fā),主要用于過程工業(yè)。允許用戶基于存在的功能塊組成更復(fù)雜的控制過程。功能塊圖的支持使IEC 61131-3
33、有較大的發(fā)展空間。 (3)結(jié)構(gòu)化文本(ST)是類Pascal的高級結(jié)構(gòu)化語言,但更直觀,可以實現(xiàn)不易用圖形化語言實現(xiàn)的復(fù)雜應(yīng)用。ST能夠?qū)崿F(xiàn)IF和ELSE選擇、FOR和WHILE循環(huán),提供對結(jié)構(gòu)化文本支持。ST像一般語言的語句,適合于編程新手,并能簡化梯形圖和功能塊中的長代碼。 (4)指令表(IL)是寄存器級別的低級語言,由一套連續(xù)的指令組成,每行一條,很像微處理器的匯編語言。IL一般用于熟練的編程人員。 (5)梯形圖(LD)是使用接觸器和線圈的圖形化編程方法,一般用于離散控制系統(tǒng)。LD使用接觸器表示輸入元素,線圈表示輸出結(jié)果,以用戶最熟悉的方法取代邏輯等式和簡單行為。 IEC 611
34、31-3的5種語言中,F(xiàn)BD最有生命力和發(fā)展前途。FB(功能塊)是控制系統(tǒng)的基本構(gòu)件,是一個包裝好的控制程序,可以是任何IEC 61131-3語言編寫的控制邏輯和策略包裝成的軟件元素,可以在相同程序的不同部分或分散的其他程序中使用。 功能塊能夠封裝數(shù)據(jù)和邏輯,超過了FORTRAN和C語言所寫的子程序,有面向?qū)ο蟮暮x,其組成及對控制編程軟件的貢獻很像是現(xiàn)代電子電路中的集成芯片。功能塊的使用提高了系統(tǒng)可靠性。數(shù)據(jù)封裝避免了許多錯誤源,用戶不必關(guān)心具體實現(xiàn)細節(jié),只需關(guān)心與外部的接口和如何使用。開發(fā)人員只需注重于實現(xiàn),而不必關(guān)心使用。功能塊允許來自不同程序、項目、位置、公司甚至國家的不同組件的結(jié)合
35、。IEC 61131-3標準保證了功能塊定義接口的使用,即定義的輸入和輸出參數(shù)。由不同程序員設(shè)計的功能塊可借助輸入和輸出參數(shù)進行交互,當然輸入和輸出參數(shù)必須是標準中定義的數(shù)據(jù)類型。FB不僅利于結(jié)構(gòu)化程序設(shè)計,長遠地看還能加速應(yīng)用開發(fā),尤其對相近的應(yīng)用開發(fā)有效?,F(xiàn)代控制系統(tǒng)的一個目標是代碼重用,相同的控制邏輯無論硬件是PLC、DCS或是 PC,均有相同的程序源代碼,這個目標只有通過FB實現(xiàn)。功能塊的支持使得遠程控制成為可能。符合IEC 61131-3標準的DCS系統(tǒng)編程軟件,必不可少地會使用FB。DCS中所有控制單元的控制邏輯一般都以FB的形式提供在編程環(huán)境中。DCS還需要提供一個現(xiàn)場總線通信系
36、統(tǒng)中用于分散處理的FB。開放式現(xiàn)場總線控制系統(tǒng)FCS通過組態(tài)軟件生成的參數(shù)及算法,不僅可以在控制器中運行,還可以在遠程I/O或智能設(shè)備上運行,這就需要定義好的FB,可以在智能儀表及執(zhí)行機構(gòu)中進行運算,實現(xiàn)真正的分布式控制。 1.4 可編程邏輯控制器 可編程邏輯控制器(Program Logic Controller)是在工業(yè)環(huán)境中使用的數(shù)字操作的電子系統(tǒng),它使用可編程存儲器內(nèi)部存儲用戶設(shè)計的指令,這些指令用來實現(xiàn)特殊的功能,諸如邏輯運算、順序操作、定時、計數(shù)以及算數(shù)運算和通過數(shù)字或模擬輸入/輸出來控制各種類型的機械或過程。[4][7][8] 1968年美國GM(通用汽車)公司提出取代繼
37、電器控制裝置的要求,第二年美國數(shù)字公司研制出了第一代可編程序控制器,滿足了GM公司裝配線的要求??删幊炭刂破鲝漠a(chǎn)生到現(xiàn)在,盡管只有四十幾年的時間由于其編程簡單、可靠性高、使用簡單、維護容易等優(yōu)點,使其得到了迅猛的發(fā)展,在冶金、機械、石油、化工、紡織、建筑、電力等領(lǐng)域都得到了廣泛的應(yīng)用。 隨著PLC技術(shù)的進步和市場要求的提高,傳統(tǒng)的PLC越來越暴露出其在數(shù)據(jù)封裝能力,程序可重用性,順序操作編程等方面的不足。這些缺陷導(dǎo)致了不同制造商PLC平臺的不兼容,也給工程技術(shù)人員的學(xué)習(xí)和操作帶來了極大的不便。統(tǒng)一的編程規(guī)則成為技術(shù)人員的迫切需求。 1.5 組態(tài)軟件 組態(tài)英文是“Conf
38、iguration”,組態(tài)就是用應(yīng)用軟件中提供的工具、方法、完成工程中某一具體任務(wù)的過程。[5][6] 組態(tài)軟件是指一些數(shù)據(jù)采集與過程控制的專用軟件,它們是在自動控制系統(tǒng)監(jiān)控層一級的軟件平臺和開發(fā)環(huán)境,使用靈活的組態(tài)方式,為用戶提供快速構(gòu)建工業(yè)自動控制系統(tǒng)監(jiān)控功能的、通用層次的軟件工具。組態(tài)軟件應(yīng)該能支持各種工控設(shè)備和常見的通信協(xié)議,并且通常應(yīng)提供分布式數(shù)據(jù)管理和網(wǎng)絡(luò)功能。對應(yīng)于原有的HMI(人機接口軟件,Human Machine Interface)的概念,組態(tài)軟件應(yīng)該是一個使用戶能快速建立自己的HMI的軟件工具,或開發(fā)環(huán)境。 當前的組態(tài)軟件產(chǎn)品有:iFIX組態(tài)軟件、悉雅特citect
39、組態(tài)軟件、紫金橋組態(tài)軟件、MCGS組態(tài)軟件、三維力控ForceControl組態(tài)軟件、西門子WinCC組態(tài)軟件、Rockwell RSView32組態(tài)軟件等。 使用組態(tài)軟件開發(fā)系統(tǒng)工程的一般步驟: (1) 將所有I/O點的參數(shù)收集齊全,并填寫表格,以備在監(jiān)控組態(tài)軟件和PLC上組態(tài)時使用。 (2) 搞清楚所使用的I/O設(shè)備的生產(chǎn)商、種類、型號、使用的通信接口類型,采用的通信協(xié)議,以便在定義I/O設(shè)備時做出準確選擇。 (3) 將所有I/O點的I/O標識收集齊全,并填寫表格,I/O標識是唯一地確定一個I/O點的關(guān)鍵字,組態(tài)軟件通過向I/O設(shè)備發(fā)出I/O標識來請求其對應(yīng)的數(shù)據(jù)。在大多數(shù)情況下I
40、/O標識是I/O點的地址或位號名稱。 (4) 根據(jù)工藝過程繪制、設(shè)計畫面結(jié)構(gòu)和畫面草圖。 (5) 按照第一步統(tǒng)計出的表格,建立實時數(shù)據(jù)庫,正確組態(tài)各種變量參數(shù)。 (6) 根據(jù)第一步和第二步的統(tǒng)計結(jié)果,在實時數(shù)據(jù)庫中建立實時數(shù)據(jù)庫變量與I/O點的一一對應(yīng)關(guān)系,即定義數(shù)據(jù)連接。 (7) 根據(jù)第四步的畫面結(jié)構(gòu)和畫面草圖,組態(tài)每一幅靜態(tài)的操作畫面(主要是繪圖)。 (8) 將操作畫面中的圖形對象與實時數(shù)據(jù)庫變量建立動畫連接關(guān)系,規(guī)定動畫屬性和幅度。 (9) 視用戶需求,制作歷史趨勢,報警顯示,以及開發(fā)報表系統(tǒng)。之后,還需加上安全權(quán)限設(shè)置。 (10) 對組態(tài)內(nèi)容進行分段和總體調(diào)試,視調(diào)試情況
41、對軟件進行相應(yīng)修改。 (11) 將全部內(nèi)容調(diào)試完成以后,對上位軟件進行最后完善(如:加上開機自動打開監(jiān)控畫面,禁止從監(jiān)控畫面退出等),讓系統(tǒng)投入正式(或試)運行。 1.6 論文的主要工作 本文主要研究了IEC61131-3標準,介紹了組態(tài)軟件PLC_Config的整體設(shè)計方案,對軟件的各個模塊進行了總體的描述,著重介紹了PLC_Config中的功能塊組態(tài)的編輯和編譯的設(shè)計和實現(xiàn)方法,解決了圖形化編程語言的可視化編輯和編譯的實現(xiàn)方法,功能塊在PLC_Config和PLC嵌入式程序之間的表現(xiàn)形式的轉(zhuǎn)化等關(guān)鍵問題。本文的重點是功能塊程序的編輯和編譯的實現(xiàn)方法和思路。在文章的最后,對P
42、LC_Config進行了簡單的測試應(yīng)用,得到了理想的效果。 2 PLC_Config組態(tài)軟件設(shè)計和實現(xiàn) 2.1 概述 PLC_Config主要有以下幾個模塊組成:現(xiàn)場設(shè)備管理模塊、工程管理模塊、可視化功能塊組態(tài)模塊、現(xiàn)場設(shè)備監(jiān)控模塊、通信服務(wù)模塊及信息報告模塊,各個模塊之間的關(guān)系如圖2-1所示。 現(xiàn)場設(shè)備管理模塊 設(shè)備信息保存 現(xiàn)場設(shè)備管理 網(wǎng)絡(luò)監(jiān)控 可視化組態(tài)模塊 基于功能塊的控制回路編輯 功能塊參數(shù)組態(tài) 符號表編寫、狀態(tài)表編寫 工程管理、I/O配置等 現(xiàn)場設(shè)備監(jiān)控模塊 創(chuàng)建監(jiān)控畫面,監(jiān)控現(xiàn)場信息,監(jiān)視過程變
43、量,強制變量輸出 信息報告模塊 報告系統(tǒng)信息、操作信息、編譯信息及通信信息 文件管理模塊 維護、生成、修改工程信息、組態(tài)信息等。 通信服務(wù)模塊 包括通信服務(wù),如變量讀寫、設(shè)備聲明、程序上載、程序下載等服務(wù)。 圖2-1 PLC_Config的總體模塊劃分結(jié)構(gòu) 可視化組態(tài)模塊是整個組態(tài)軟件的核心部分,實現(xiàn)了PLC應(yīng)用組態(tài)的可視化操作?,F(xiàn)場設(shè)備管理模塊負責維護、修改控制策略?,F(xiàn)場設(shè)備監(jiān)控模塊負責監(jiān)控現(xiàn)場網(wǎng)絡(luò)的運行情況,同時也可強制過程變量的值。文件管理模塊維護、生成、修改工程信息、組態(tài)信息等,并保存功能塊回路的組
44、態(tài)信息。通信服務(wù)模塊提供了系統(tǒng)中的各類通信服務(wù)。信息報告模塊負責及時通報各類系統(tǒng)信息,如設(shè)備信息、網(wǎng)絡(luò)信息、操作信息、編譯信息等。 PLC_Config以工程的方式對組態(tài)信息進行管理。一個工程對應(yīng)一個工程目錄,工程目錄結(jié)構(gòu)如圖4-2所示。每個工程目錄包含一個工程文件,功能塊程序文件,狀態(tài)表,符號表等文件。工程文件描述整個工程的總體框架,對工程下的所有文件進行有效的組織管理。程序塊文件保存了設(shè)備的功能塊組態(tài)信息,這些信息可以形成代碼,并下載到控制器。符號表主要是為了使用符號編程,方便程序的維護和修改,以及程序的可讀性。狀態(tài)表用于過程變量的監(jiān)視以及強制。通信配置可配置當前網(wǎng)絡(luò)的信息,配置擴展I/
45、O模塊的信息。其結(jié)構(gòu)如下: 工程目錄 功能塊程序目錄 功能塊程序1 工程文件:保存工程的總體結(jié)構(gòu)信息 圖2-2 PLC_Config所創(chuàng)建工程的目錄結(jié)構(gòu) 功能塊程序2 功能塊程序n …… 工程狀態(tài)表文件:保存了狀態(tài)表的有關(guān)信息 工程符號表文件:保存了符號表的有關(guān)信息 PLC_Config啟動時首先要調(diào)用文件管理模塊、現(xiàn)場設(shè)備管理模塊的初始化函數(shù),對這兩個模塊進行初始化,然后新建或打開一個工程,啟動工程,同時打開網(wǎng)絡(luò)套接字映射接口對象,監(jiān)聽網(wǎng)絡(luò)設(shè)備信息,每發(fā)現(xiàn)一個在線設(shè)備就在設(shè)備管理窗口中添加該設(shè)備相關(guān)信息。創(chuàng)建一個功能塊文件,選擇功能塊添加到控制回路
46、編輯窗口中,通過鼠標操作建立鏈接對象,確定功能塊之間的連接關(guān)系及功能塊的執(zhí)行順序,形成一個完整的控制回路,對各個功能塊進行參數(shù)配置。最后對組態(tài)信息進行編譯,下載組態(tài)信息到現(xiàn)場設(shè)備中。 2.2 現(xiàn)場設(shè)備管理模塊 現(xiàn)場設(shè)備管理模塊負責偵聽網(wǎng)絡(luò)設(shè)備信息,維護和管理現(xiàn)場設(shè)備信息。本模塊至底向上可分為三層:網(wǎng)絡(luò)層、設(shè)備管理層、后臺數(shù)據(jù)庫層。 實時網(wǎng)絡(luò)監(jiān)控層:啟動套接字映射接口對象,監(jiān)聽網(wǎng)絡(luò)上的設(shè)備信息,將獲取的設(shè)備相關(guān)信息轉(zhuǎn)交給現(xiàn)場設(shè)備管理層處理。 現(xiàn)場設(shè)備信息 現(xiàn)場設(shè)備管理 實時網(wǎng)絡(luò)監(jiān)控 后臺數(shù)據(jù)庫層 設(shè)備管理層 網(wǎng)絡(luò)層 圖2-3 現(xiàn)場設(shè)備管理模塊的三層體系結(jié)構(gòu) 可視
47、化工程管理模塊、信息報告模塊 通信服務(wù)模塊 現(xiàn)場設(shè)備管理層:該層負責接收來自實時網(wǎng)絡(luò)監(jiān)控層的消息,對該消息進行處理,將消息報告給可視化工程管理模塊、信息報告模塊,維護后臺數(shù)據(jù)庫。該層是現(xiàn)場設(shè)備管理模塊的核心層,是該模塊和其他模塊交互的主要接口。 現(xiàn)場設(shè)備信息層:該層維護一個Access數(shù)據(jù)庫,存放現(xiàn)場設(shè)備的信息。該數(shù)據(jù)庫的主表是一個名為DevOnline數(shù)據(jù)表。DevOnline數(shù)據(jù)表是一個動態(tài)變化的數(shù)據(jù)表,該數(shù)據(jù)表存放的是目前在線的設(shè)備,根據(jù)設(shè)備在線、離線狀態(tài),及時地刪除和添加設(shè)備信息,供組態(tài)使用。 2.3 文件管理模塊 在PLC應(yīng)用系統(tǒng)中用文件來描述設(shè)備信息,保存回路信息
48、以及符號表和狀態(tài)表。PLC_Config需指定一個專用目錄來存放各類應(yīng)用程序文件,將這個目錄定義為應(yīng)用程序根目錄。該目錄下的各種文件就是應(yīng)用程序生成的工程相關(guān)的文件。 PECX后綴的文件是用來保存工程信息的,其中包含工程名,工程所在的根目錄,以及工程的配置信息等。 FBD后綴的文件是用來保存功能塊回路的組態(tài)信息的。其中包括對功能塊網(wǎng)絡(luò)的保存,網(wǎng)絡(luò)中功能塊的保存以及功能塊參數(shù)的保存、網(wǎng)絡(luò)注釋的保存等編譯需要使用的信息。 STS后綴的文件是用來保存狀態(tài)表配置的,狀態(tài)表是用來調(diào)試的時候觀察PLC內(nèi)部數(shù)據(jù)的。同時也可以對內(nèi)部數(shù)據(jù)進行強制。 在MFC為中系統(tǒng)文件的保存提供了Serialize函數(shù)
49、,Serialize()序列化函數(shù)是一個虛函數(shù),因此可以借助這個函數(shù)來實現(xiàn)對文件數(shù)據(jù)的讀取,保存或者修改。但是現(xiàn)代更加主流的保存方法是采用XML描述文件來保存,使用XML文件的好處在于各個平臺通用,可移植性好,幾乎所有的應(yīng)用程序都能處理XML文件,并且通過DOM提供的方法可以很快捷的對XML文件進行操作。 2.4 可視化組態(tài)模塊 PLC_Config組態(tài)軟件是以工程的方式來管理和組織信息,而這是通過可視化工程管理窗口來實現(xiàn)的。圖2-4表示一個新創(chuàng)建的工程,工程名為df.pecx。如圖所示,一個新創(chuàng)建的工程會自動為工程添加一個節(jié)點,節(jié)點名為df.pecx。在df.pecx節(jié)點下面有四個節(jié)點:
50、程序塊節(jié)點、符號表節(jié)點、狀態(tài)表節(jié)點、通信配置節(jié)點、指令節(jié)點。圖2-5表示的是項目的數(shù)據(jù)結(jié)構(gòu)圖。工程管理窗口對應(yīng)的視圖類CProjectView、文檔類是CProjectDoc。 程序塊節(jié)點負責管理當前由用戶創(chuàng)建的所有程序。程序塊節(jié)點負責管理所有功能塊控制策略??赏ㄟ^鼠標右鍵操作,創(chuàng)建一個新的控制策略文件,每一個控制策略文件對應(yīng)一種控制策略。一個控制策略可包含多個網(wǎng)絡(luò),每個網(wǎng)絡(luò)中由各種基本功能塊組成復(fù)雜的運算邏輯,用戶可創(chuàng)建并選擇合適的回路文件編譯并下載。雙擊某一控制策略節(jié)點,將打開控制策略編輯窗口,在該窗口中完成控制回路組態(tài)??刂撇呗跃庉嫶翱谑腔赩C++的Document/View結(jié)構(gòu)
51、,在本程序?qū)崿F(xiàn)中,CFBDDoc類、CFBDView類和CFBDFrame類構(gòu)成了控制策略編輯窗口的三位一體的Document/View結(jié)構(gòu)。 圖2-4 PLC_Config中的工程樹 符號表中的文件是用來保存符號表的,符號表是用來保存變量定義的,他定義了PLC內(nèi)部的物理地址和符號的一一對應(yīng)關(guān)系。為了增強程序的可讀性以及修改程序的方便性,需要使用符號表。符號表同樣是采用VC++的Document/View結(jié)構(gòu),即它的三位一體結(jié)構(gòu)分別是CSymbolTblDoc類、CSymbolTblFrame類和CSymbolTblView類。編程人員可以定義,修改,刪除符號表項,同時也可將符號表
52、應(yīng)用于程序中。以方便程序設(shè)計以及調(diào)試。符號表的保存主要采用鏈表完成。鏈表成員即是一個符號項。如圖2-6。 項目根節(jié)點 m_projectItem 在工程樹中的編號hItem 工程信息 m_Project 工程名m_projectname 工程目錄m_projectpath 工程配置m_projectcfg 程序塊節(jié)點 m_fbItem 在工程樹中的編號hItem 程序塊列表 m_loopTable 控制回路信息LoopInfo …… 控制回路信息LoopInfo 符號表節(jié)點 m_SblTblItem 在工程樹中的編號hItem 符號表
53、信息 m_SblNodeTable 絕對地址m_strAbsAddress 符號名m_strSymbol 注釋m_strVarComment 狀態(tài)表節(jié)點 m_StatusItem 在工程樹中的編號hItem 符號表信息 m_StatusChtTbl 絕對地址m_strAbsAddress 符號名m_strSymbol 數(shù)據(jù)類型m_strVarType 圖2.5 項目數(shù)據(jù)結(jié)構(gòu)圖 圖2-6 符號狀態(tài)表 功能塊的可視化編輯模塊在下一章詳細介紹。 2.5通信服務(wù)模塊 通信服務(wù)模塊主要包括實時通信服務(wù)和套接字映射接口對象的實現(xiàn)。 實時通
54、信服務(wù)模塊中的各項通信服務(wù)以全局對象的形式,由組態(tài)程序的其他模塊所調(diào)用。當組態(tài)程序用戶層需要與網(wǎng)絡(luò)通信時,調(diào)用相應(yīng)服務(wù)的請求原語(Requset)將請求報文交給實時通信服務(wù),而通信服務(wù)在收到通信請求后,將調(diào)用套接字映射接口對象的數(shù)據(jù)發(fā)送接口將請求報文發(fā)送到網(wǎng)絡(luò)上。當套接字映射接口對象通過數(shù)據(jù)接收接口接收到來自網(wǎng)絡(luò)的通信請求后,將調(diào)用相應(yīng)服務(wù)的指示原語(Indicate)把請求轉(zhuǎn)交給相應(yīng)通信服務(wù),通信服務(wù)收到通信請求后把該請求轉(zhuǎn)交給用戶層。如果該請求需要回應(yīng),用戶層會調(diào)用相應(yīng)通信服務(wù)的響應(yīng)原語(Response)把回復(fù)報文轉(zhuǎn)交給通信服務(wù),通信服務(wù)通過調(diào)用套接字接口對象的數(shù)據(jù)發(fā)送接口把回復(fù)報文發(fā)送
55、到網(wǎng)絡(luò)上。當套接字映射接口對象通過數(shù)據(jù)接收接口接收到來自網(wǎng)絡(luò)的通信回復(fù)后,將調(diào)用相應(yīng)服務(wù)的確定原語(Confirm)把回復(fù)報文交給通信服務(wù),然后再由通信服務(wù)把回復(fù)報文轉(zhuǎn)交給用戶層。圖2-7描述了的通信過程。 請求 用戶層 確定 響應(yīng) 指示 實時通信服務(wù) 套接字映射接口 用戶層 實時通信服務(wù) 套接字映射接口 圖2-7 EPA通信過程 2.5.1 實時通訊服務(wù)的實現(xiàn) 實時通信服務(wù)分為應(yīng)用層實時通信服務(wù)和管理服務(wù)兩類。 實時通信服務(wù)提供四種服務(wù)原語:請求、指示、響應(yīng)、確定。服務(wù)原語是通信服務(wù)提供給外部的調(diào)用接口,同時服務(wù)原語也表示一種執(zhí)行方向。在本程序中,
56、將通信服務(wù)設(shè)計成對象的模式。每個通信服務(wù)在程序中表現(xiàn)為一個全局對象,稱為通信服務(wù)對象。每一個通信服務(wù)對象都具有以下幾個參數(shù):服務(wù)序號ID(m_MessageID)、服務(wù)使用標志(m_beUsed)、服務(wù)請求完成標志(m_reqFinished)。服務(wù)序號ID參數(shù)表示本服務(wù)被調(diào)用的次數(shù),該參數(shù)初始值為0,服務(wù)每調(diào)用一次,該值加1。服務(wù)使用標志參數(shù)用于表示通信服務(wù)對象是否正在被調(diào)用,通常情況下,在同一時刻,通信服務(wù)對象只能響應(yīng)一個服務(wù)請求,即只有本次服務(wù)調(diào)用結(jié)束通信服務(wù)對象才能響應(yīng)下一個服務(wù)請求。服務(wù)請求完成標志表示本次服務(wù)請求是否結(jié)束,對于確定性服務(wù),其服務(wù)請求需要得到響應(yīng),它有一定的等待時間,
57、如果服務(wù)請求超過等待時間仍沒有收到響應(yīng),則認為本次請求失敗。 2.5.2 套接字映射接口對象的實現(xiàn) (1)套接字映射接口對象 套接字映射接口對象(PLCSocket)封裝了各個網(wǎng)絡(luò)端口,如管理功能端口、應(yīng)用層服務(wù)端口。套接字映射接口提供了實時通信服務(wù)與TCP(UDP)/IP之間的映射。在網(wǎng)絡(luò)層次結(jié)構(gòu)上,套接字映射接口介于應(yīng)用層和傳輸層之間,向上它提供面向所有實時通訊服務(wù)的調(diào)用接口,向下它提供向網(wǎng)絡(luò)發(fā)送數(shù)據(jù)的調(diào)用接口。 (2)套接字映射接口對象的報文發(fā)送管理 組態(tài)程序在調(diào)用管理功能塊服務(wù)和應(yīng)用層服務(wù)發(fā)送數(shù)據(jù)時,需要將數(shù)據(jù)傳送給套接字映射接口對象。套接字映射接口對象首先按發(fā)送
58、優(yōu)先級,將這些待發(fā)送的數(shù)據(jù)分別緩存在不同的隊列中,以等待發(fā)送,優(yōu)先級最高的報文最先發(fā)送。在系統(tǒng)中,定義了三級優(yōu)先級:設(shè)備間周期性信息發(fā)布具有最高的優(yōu)先級,以確??刂葡到y(tǒng)的連接正常運行。對于事件信息、設(shè)備信息等的廣播發(fā)布具有次高優(yōu)先級,而點對點之間的單播通信的優(yōu)先級最低。 來自應(yīng)用層服務(wù)的請求報文,有些是需要確認的,有些是不需要確認的。對于不需要確認的應(yīng)用層服務(wù)請求報文,套接字映射接口對象只需將該報文進行打包,并發(fā)送出去即可。 對于需要確認的應(yīng)用層服務(wù)請求報文,套接字映射接口對象在向網(wǎng)絡(luò)上發(fā)送該報文時,將根據(jù)發(fā)送該消息的服務(wù)ID(ServiceID)以及報文序號(MessageID),創(chuàng)建一
59、個定時器對象,并開始啟動定時,并作以下處理:如果在當前報文響應(yīng)時間ActiveMsgTime(即最大響應(yīng)等待時間)到之前收到正確的響應(yīng)報文,則由套接字映射接口對象將該響應(yīng)報文發(fā)送到相應(yīng)的服務(wù)接口,并同時將定時器清零,并刪除該定時器對象;如果在當前報文響應(yīng)時間ActiveMsgTime(即最大響應(yīng)等待時間)到之前收到錯誤的響應(yīng)報文,則由套接字映射接口對象將該響應(yīng)報文發(fā)送到相應(yīng)的服務(wù)接口,并同時將定時器清零,并刪除該定時器對象;服務(wù)將不對該報文進行處理,并直接通知用戶功能塊實例,由用戶功能塊實例作出判斷并處理。如果定時時間超過當前報文響應(yīng)時間ActiveMsgTime(即最大響應(yīng)等待時間),套接字
60、映射對象仍未收到相應(yīng)于該請求報文的響應(yīng)報文,則向應(yīng)用層服務(wù)返回一個負響應(yīng),及超時響應(yīng)錯誤類型,同時刪除該定時器對象。 (3)套接字映射接口對象的報文接受管理 組態(tài)程序啟動之后,套接字接口對象就打開管理功能塊端口、應(yīng)用層服務(wù)端口,監(jiān)聽來自現(xiàn)場網(wǎng)絡(luò)的所有消息。當接收到消息時,由套接字映射接口對象對消息頭進行解包,并根據(jù)消息所接收的端口的不同,將消息分送到不同的功能模塊處理。 套接字映射接口對象接收到來自管理功能塊端口或應(yīng)用層服務(wù)端口的消息后,根據(jù)服務(wù)標識(ServiceID)進行判斷與處理,如服務(wù)標識無效,則將報文丟棄,不作處理;如果服務(wù)標識ID有效,則根據(jù)其服務(wù)類型,判斷是否作出應(yīng)答或響應(yīng)
61、:如果收到的消息是來自其他現(xiàn)場設(shè)備的請求消息,則根據(jù)其服務(wù)類型,判斷是否作出應(yīng)答或響應(yīng);如果收到的消息是組態(tài)程序發(fā)送出去的請求消息的響應(yīng),則根據(jù)消息序號(MessageID)、以及肯定或否定的響應(yīng),由用戶層作出判斷與處理。 2.6信息報告模塊 信息報告模塊將系統(tǒng)收集到各類信息及時通知給用戶,使用戶能清楚地得知目前的操作狀態(tài)。圖2-8是信息報告窗口的一個示意圖。信息報告窗口分為三個部分:編譯信息,系統(tǒng)日志信息,設(shè)備日志信息 編譯信息:記錄控制回路組態(tài)信息的編譯信息,報告編譯錯誤等。 系統(tǒng)日志信息:記錄軟件的操作信息,用戶的操作信息。 設(shè)備日志信息:提示設(shè)備的上線下線,并且提示設(shè)備IP沖
62、突。 圖2-8 信息報告模塊 2.6本章小結(jié) 本章簡單介紹了PLC_Config的5大模塊,在下一章詳細介紹功能塊程序的編輯模塊和編譯模塊。,PLC_Config是基于功能塊的分布式控制系統(tǒng)的可視化組態(tài)程序。它通過創(chuàng)建鏈接對象,建立現(xiàn)場設(shè)備中各個功能塊之間連接關(guān)系,構(gòu)建成一個個控制回路,將組態(tài)信息下載現(xiàn)場設(shè)備中,完成對控制網(wǎng)絡(luò)的組態(tài)工作。整個組態(tài)過程以一種類似于搭建積木的方式,通過鼠標拖拽、點擊完成,而不需要復(fù)雜的套接字編程,使得建立功能強大的應(yīng)用變得非常容易,大大降低了對工程師技術(shù)水平的要求,使用和操作起來更加簡單
63、、方便,縮短了整個工程的實施周期,降低了生產(chǎn)成本。 3 PLC_Config組態(tài)軟件可視化功能塊組態(tài)以及編譯 3.1 PLC_Config可視化功能塊編輯程序的設(shè)計 3.1.1文檔/視圖(Document/View)結(jié)構(gòu) PLC_Config是基于MFC框架設(shè)計開發(fā)的,MFC應(yīng)用程序的核心就是文檔——視圖結(jié)構(gòu),利用文檔—視圖結(jié)構(gòu),可以把數(shù)據(jù)與數(shù)據(jù)的用戶視圖分開,一個明顯的好處是同一組數(shù)據(jù)可有有多個視圖。在PLC_Config中,程序的核心功能之一就是編輯功能塊程序,功能塊程序是一種圖形化的語言,用戶的編程過程是對圖形的操作,所以功能塊的繪制和操作都是由視圖部分來完成,在操作的同時
64、,要保留操作的記錄,而且在保存功能塊程序時要將當時的文件永久的保存在磁盤中,這些工作有文檔類來完成。文檔的保存格式不是唯一的,它可以是應(yīng)用程序序列化形成的特定格式文件,也可以是XML描述文件等。[9][10] 在設(shè)計功能塊物件時,要從三方面來考慮,一個是視圖角度,包括了物件的繪制,對物件操作時的重繪,對物件監(jiān)視時物件的變化等等,另一個就是文檔角度,包括了物件內(nèi)部數(shù)據(jù)的維護,物件的保存,物件數(shù)據(jù)的讀取等,還有一點就是文檔與視圖的聯(lián)系,比如視圖的變化要保存到文檔,視圖的初始要讀取文檔等。 3.1.2 可視化功能塊編輯程序設(shè)計類關(guān)系圖 通過對功能塊編輯程序的需求分析進行分析,可以將一個功能
65、塊的程序物件分解成5大元素,分別是:功能塊物件,功能塊參數(shù)物件,功能塊網(wǎng)絡(luò)物件,鏈接線物件,和功能塊程序文件物件,這5個物件之間的主要關(guān)系是包含關(guān)系,這是由功能塊程序內(nèi)在結(jié)構(gòu)定義的,用面向?qū)ο蟮慕嵌仍O(shè)計,在設(shè)計時可以對每種物件定義一個類,包含物件的信息和操作方法,根據(jù)功能塊程序物件的結(jié)構(gòu)分析,得到了如下的類關(guān)系圖3-1。 功能塊文檔物件 功能塊網(wǎng)絡(luò)物件集合 功能塊物件集合 功能塊參數(shù)集合 鏈接線物件集合 圖3-1 功能塊編輯程序類關(guān)系圖 3.1.3功能塊的圖形表示 圖3-2是一個功能塊的圖形表示。一個典型的功能塊
66、從圖形結(jié)構(gòu)上可以分為兩個部分:功能塊參數(shù)部、功能塊體部。功能塊體部包含功能塊名稱,功能塊參數(shù)部包含功能塊的輸入和輸出參數(shù)單元。 功能塊輸入?yún)?shù)單元 功能塊輸出 參數(shù)單元 功能塊名稱 功能塊體部 圖3-2功能塊的圖形 3.1.4功能塊的邏輯組成 每個功能塊從邏輯角度可以看做一個函數(shù),包括了輸入?yún)?shù)和輸出結(jié)果和函數(shù)功能的實現(xiàn),所以我們可以將一個功能塊從邏輯上分為三個部分,輸入?yún)?shù),輸出參數(shù)和函數(shù)執(zhí)行部分,由于功能塊的邏輯執(zhí)行是在PLC中實現(xiàn)的,所以在PLC_Config中不用考慮功能塊是怎樣實現(xiàn)邏輯的,而輸入?yún)?shù)和輸出參數(shù)作為邏輯執(zhí)行函數(shù)的接口需要在PLC_Config中組織起來,產(chǎn)生PLC可以識別的代碼(一組數(shù)據(jù)結(jié)構(gòu)),通過通訊模塊下載到PLC設(shè)備的Flash Rom中,PLC通過嵌入式的軟件來分析這組數(shù)據(jù)結(jié)構(gòu)來實現(xiàn)邏輯上的運算。 3.1.5在DCCE系列PLC中的功能塊程序的表現(xiàn)形式 如上所述,功能塊程序通過PLC_Confug編譯后,通過通訊接口下載到下位機中,由下位機的嵌入式程序來執(zhí)行功能塊的功能,在下位機中的功能塊也需要一定的數(shù)據(jù)
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 6.煤礦安全生產(chǎn)科普知識競賽題含答案
- 2.煤礦爆破工技能鑒定試題含答案
- 3.爆破工培訓(xùn)考試試題含答案
- 2.煤礦安全監(jiān)察人員模擬考試題庫試卷含答案
- 3.金屬非金屬礦山安全管理人員(地下礦山)安全生產(chǎn)模擬考試題庫試卷含答案
- 4.煤礦特種作業(yè)人員井下電鉗工模擬考試題庫試卷含答案
- 1 煤礦安全生產(chǎn)及管理知識測試題庫及答案
- 2 各種煤礦安全考試試題含答案
- 1 煤礦安全檢查考試題
- 1 井下放炮員練習(xí)題含答案
- 2煤礦安全監(jiān)測工種技術(shù)比武題庫含解析
- 1 礦山應(yīng)急救援安全知識競賽試題
- 1 礦井泵工考試練習(xí)題含答案
- 2煤礦爆破工考試復(fù)習(xí)題含答案
- 1 各種煤礦安全考試試題含答案