亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        控制系統(tǒng)主站編程工具開發(fā)

        2023-02-06 14:07:50高朝陽陳凌宇王曉宇
        光學精密工程 2023年1期
        關鍵詞:功能塊主站插件

        周 敏, 高朝陽, 陳凌宇, 王曉宇*

        (1.華中科技大學 機械科學與工程學院,湖北 武漢 430074;2.國防科技大學 智能科學學院,湖南 長沙 410073)

        1 引 言

        可編程控制系統(tǒng)主站編程工具是用戶實現(xiàn)可編程控制系統(tǒng)控制邏輯、控制算法的關鍵途徑,也是連接系統(tǒng)硬件、總線、末端設備并實現(xiàn)系統(tǒng)控制功能的主要工具,其廣泛應用于工業(yè)現(xiàn)場控制、數(shù)控加工、機器人等領域。由于技術涉及面廣,軟件開發(fā)需要長期的技術積累和不斷的升級改造,加上我國工業(yè)軟件基礎薄弱,造成Codesys,OpenPCS等國外軟件對我國工業(yè)控制軟件領域的壟斷局面[1]。開發(fā)符合國際標準的工業(yè)控制程序開發(fā)環(huán)境、代碼生成工具鏈以及包含下載、調(diào)試功能的可編程控制系統(tǒng)的軟件編程工具,是實現(xiàn)工業(yè)控制自主可控的重要環(huán)節(jié)。

        早期的工業(yè)控制系統(tǒng)編程軟件是在各廠商專用的硬件、操作系統(tǒng)、編程語言等條件下設計的,這使得組態(tài)配置方法和程序設計方法在不同產(chǎn)品之間的兼容性很差,技術壁壘高筑,嚴重影響行業(yè)的發(fā)展[2]。IEC61131-3標準的頒布,為PLC提供了邏輯編程的結構、語法、語義規(guī)范,其規(guī)定了5種標準的編程語言:梯形圖(LD)、指令表(IL)、結構化文本(ST)、功能框圖(FBD)和順序功能圖(SFC)[3]。采用軟件定義硬件的方式,減少了用戶程序開發(fā)與移植的時間,也使供應商能夠?qū)W⒂诋a(chǎn)品性能提升方面的工作。IEC61131-3的廣泛使用,使基于工業(yè)PC的軟PLC技術逐漸替代原有的硬PLC技術。在工業(yè)PC操作系統(tǒng)環(huán)境中,將IEC61131-3程序轉(zhuǎn)換為可執(zhí)行的C代碼來實現(xiàn)PLC的控制功能的方式,很大程度上降低了PLC邏輯對硬件的依賴程度和開發(fā)難度,使程序開發(fā)越來越標準化與開放化[4]。Beremiz是一個在GNU許可下發(fā)布的,符合IEC61131-3,PLCopen,CANopen等規(guī)范的多平臺開源IDE,能夠?qū)崿F(xiàn)IEC61131-3程序編寫以及其向ANSI C文件的轉(zhuǎn)換,并提供簡單的C程序編譯、下載及調(diào)試功能[5]。在Beremiz基本架構基礎上進行優(yōu)化和改造,形成功能完善的IDE,是實現(xiàn)自主可控的有效方法。不少學者通過設計改造,使Beremiz架構在數(shù)控系統(tǒng)開發(fā)環(huán)境[6]、機器人運動控制器[7-8]、運動規(guī)劃[9]、PLC信息加密[10]等方面得到了應用。Beremiz提供了插件集成功能,用戶可以根據(jù)需要集成軟件生成過程中所需的系統(tǒng)配置相關插件以及用戶編程使用的用戶插件。文獻[11]通過分析典型的工業(yè)通信協(xié)議,在Beremiz中集成了EtherCAT,BACnet/IP,OPC-UA等協(xié)議插件,使它生成的代碼能夠適應各種工業(yè)控制通信環(huán)境。文獻[12]為減小運動控制算法的程序開發(fā)復雜度,將PLCopen運動控制庫的功能進行了集成設計開發(fā),在Beremiz中形成了運動控制功能庫插件。此外,研究人員比較了Beremiz與商用軟件的性能差異。文獻[13]將Beremiz與Codesys進行了實驗對比,結果表明二者的基本功能與實時性相當。

        本文深入分析了Beremiz的功能原理以及實際系統(tǒng)對生成代碼的功能需求,提出了在Beremiz通用架構下實現(xiàn)可編程控制系統(tǒng)程序開發(fā)、下載、調(diào)試的主站編程工具架構。為適應總線式控制系統(tǒng)的實際控制需求,設計了IDE系統(tǒng)插件以及主站Runtime功能組件,打通了IDE程序設計到實際系統(tǒng)運行相關的代碼下載、轉(zhuǎn)換、運行及調(diào)試通道。針對系統(tǒng)控制過程中的功能安全問題,安全集成功能庫,從軟件上則可實現(xiàn)對現(xiàn)場設備的安全邏輯設計。最后,搭建典型應用實驗系統(tǒng),對IDE程序設計與Runtime程序執(zhí)行功能進行了測試,驗證了所提出的主站編程工具的功能完善性。該主站編程工具支持90%以上IEC61131-3標準的特性,生成運行時系統(tǒng)的穩(wěn)定性是工業(yè)級的,在FBD靈活性、SFC支持特性方面具有一定優(yōu)勢,操作也更為簡單直觀,尤其是項目級插件的設計,可為平臺不斷積累行業(yè)知識,形成數(shù)字資產(chǎn)庫,為后續(xù)項目的快速構建提供了有力支撐。

        2 自主可控主站編程工具分析與設計

        2.1 主站編程工具架構

        主站編程工具是實現(xiàn)用戶可視化程序編輯、編譯、下載和運行等功能的軟件系統(tǒng),由IDE和Runtime構成。IDE是為用戶提供程序開發(fā)的應用程序,包括程序編輯器、編譯器、圖形用戶界面(GUI)等。用戶可根據(jù)實際系統(tǒng)的控制需求,采用符合IEC61131-3標準的編程語言進行系統(tǒng)程序開發(fā)。編譯器將IEC61131-3代碼編譯后傳輸?shù)絉untime。Runtime集成在可編程控制系統(tǒng)主站中,根據(jù)主站操作系統(tǒng)運行環(huán)境將IDE生成的代碼再次編譯,生成可執(zhí)行程序作為系統(tǒng)的應用程序。組件管理器是每個運行環(huán)境中不可或缺的核心組件,用于管理和控制運行環(huán)境中所有組件。此外,系統(tǒng)應用程序還需要實現(xiàn)用戶HMI通信、控制現(xiàn)場總線等功能來保證可編程控制系統(tǒng)的正常運行。圖1為可編程控制系統(tǒng)典型的主站編程工具架構原理。

        圖1 典型的主站編程工具原理Fig.1 Architecture schematic of typical master programming tool

        2.2 Beremiz原理

        Beremiz是一個跨平臺的開源IDE,為自動化、機器人、可編程控制系統(tǒng)等提供符合IEC61131-3,PLCopen等標準的程序開發(fā)、編譯及下載功能。本質(zhì)上,Beremiz提供了一個開源的IEC61131-3框架,主要由前端PLCopen編輯器、后端MatIEC編譯器以及用戶可開發(fā)的插件構成。其中,PLCopen編輯器由Python語言編寫,支持IEC61131-3規(guī)范中定義的IL,LD,F(xiàn)BD,ST,SFC五種編程語言的GUI界面。為用戶提供IEC61131-3標準程序開發(fā)界面,并根據(jù)PLCopen標準TC6-XML方案對程序進行導入和導出,實現(xiàn)符合PLCopen標準的IEC 61131-3語言編輯器之間的項目交換。

        MatIEC編譯器可將圖形語言FBD,LD轉(zhuǎn)換為ST,也可將ST代碼編譯轉(zhuǎn)換成為ANSI C代碼。

        插件為用戶提供IEC61131-3標準代碼開發(fā)之外的系統(tǒng)級或用戶級的功能庫集成方法。IEC61131-3純邏輯代碼在相關系統(tǒng)中運行離不開通信協(xié)議、數(shù)據(jù)交換等功能,用戶通過實際系統(tǒng)需要開發(fā)相關的插件對IEC61131-3代碼進行協(xié)議、系統(tǒng)配置等相關的補充,使生成的代碼適應目標運行系統(tǒng)。

        Beremiz系統(tǒng)構成原理如圖2所示。用戶在PLCopen編輯器內(nèi)根據(jù)控制系統(tǒng)功能需求編寫IEC61131-3標準的程序代碼。在Beremiz插件樹中設計并集成系統(tǒng)運行相關的系統(tǒng)插件以及用戶編程使用的用戶插件,生成主從站系統(tǒng)運行所需的通信協(xié)議、HMI協(xié)議、運動控制庫等相關的C文件。MatIEC編譯器將PLCopen編輯器中IEC61131-3標準代碼轉(zhuǎn)換為ANSI C代碼。所有ANSI C代碼由主站Runtime接收,通過聯(lián)合編譯后生成可執(zhí)行文件,最終運行在主站系統(tǒng)中。

        圖2 Beremiz系統(tǒng)原理Fig.2 Schematic diagram of Beremiz system

        2.3 自主可控主站編程工具架構

        利用PLCopen編輯器和MatIEC編譯器實現(xiàn)可視化編程功能,通過設計并集成用戶代碼與實際總線系統(tǒng)運行所需的系統(tǒng)插件,為IDE代碼提供協(xié)議相關的功能庫支持,即可形成功能完善的集成開發(fā)環(huán)境。在運行Linux操作系統(tǒng)的目標系統(tǒng)中,設計具有代碼接收管理、應用程序編譯生成、底層通信API操作等功能的組件,可實現(xiàn)運行環(huán)境的主要功能。本文提出的基于Beremiz開源IDE的自主可控主站編程工具架構如圖3所示。

        圖3 自主可控主站編程工具架構及原理Fig.3 Architecture and schematic diagram of autonomous and controllable master programming tool

        IDE主要以PLCopen編輯器、MatIEC編譯器、插件管理組件、可視化遠程調(diào)試組件構成。PLCopen編輯器提供用戶IEC61131-3程序開發(fā)GUI。MatIEC實現(xiàn)IEC61131-3標準程序向ANSI C的轉(zhuǎn)換??梢暬h程調(diào)試組件通過與運行環(huán)境的數(shù)據(jù)交換,在PLCopen編輯器用戶代碼中實現(xiàn)數(shù)據(jù)顯示、在線修改等調(diào)試功能。在插件管理組件中,按照PLCopen XML接口規(guī)范設計IEC61131-3程序在目標系統(tǒng)中運行所需的系統(tǒng)功能庫插件以及用戶可擴展的邏輯功能庫插件。

        Runtime集成在可編程控制系統(tǒng)主站中,主要由程序接收組件、編譯器控制組件、程序調(diào)試組件、應用層協(xié)議組件和通信外設操作組件構成。程序接收組件控制程序加載接口將IDE生成代碼接收后傳輸至編譯器控制組件,通過調(diào)用編譯器生成主站操作系統(tǒng)可執(zhí)行的應用程序。應用層協(xié)議組件集成了主從站系統(tǒng)通信所需的應用層協(xié)議棧,保證應用程序按照規(guī)定的協(xié)議實現(xiàn)數(shù)據(jù)收發(fā)調(diào)度。通信外設操作組件則提供主站與外部設備通信所需的底層接口操作庫,包括現(xiàn)場總線收發(fā)接口庫和用戶HMI通信接口庫。程序調(diào)試組件建立與應用程序的數(shù)據(jù)交換通道。在調(diào)試狀態(tài)時,程序調(diào)試組件通過程序調(diào)試接口將IDE中用戶修改的代碼變量更新至應用程序中,還將應用程序中各變量讀取后發(fā)送至IDE,實現(xiàn)調(diào)試功能。

        3 IDE系統(tǒng)插件分析與設計

        用戶編寫的IEC61131-3代碼可實現(xiàn)可編程控制系統(tǒng)的復雜邏輯控制功能。但是,在實際的總線式控制系統(tǒng)中,需要將控制邏輯與總線操作規(guī)范相結合,達到通過總線數(shù)據(jù)交換來實現(xiàn)邏輯代碼對總線設備控制的目的。

        本文通過設計、開發(fā)可被IDE識別并加載的插件,實現(xiàn)了IEC61131-3生成代碼和已有的本地代碼的綜合。因此,除兩者之間的數(shù)據(jù)訪問接口外,還要為IDE設計統(tǒng)一的調(diào)用、注冊和代碼生成接口,IDE啟動后會根據(jù)注冊信息動態(tài)加載插件類,在生成代碼時動態(tài)調(diào)整本地代碼的數(shù)據(jù)訪問接口,實現(xiàn)與生成代碼的綜合,其設計的主要難點在于它是基于高度動態(tài)性,且具有一定的模板編程能力。

        3.1 IDE代碼功能架構

        在自研可編程控制系統(tǒng)中,現(xiàn)場總線采用NCUC2.0實時以太網(wǎng)總線實現(xiàn)鏈路層數(shù)據(jù)的傳輸。應用層采用CANopen協(xié)議。主站通過NCUC2.0讀寫各從站對象字典采集末端設備的控制與狀態(tài)。Modbus/TCP總線用于實現(xiàn)主站與用戶HMI設備的通信。因此,建立IEC61131-1邏輯代碼與NCUC2.0總線、Modbus/TCP總線的操作接口及功能庫,是實現(xiàn)總線控制與HMI數(shù)據(jù)交互的必要條件。

        在IDE中設計總線組態(tài)插件與HMI數(shù)據(jù)訪問插件,用戶可根據(jù)實際系統(tǒng)連接狀態(tài)通過可視化界面設置NCUC2.0總線和Modbus/TCP總線運行相關參數(shù)、協(xié)議相關參數(shù)。配置完成后,總線組態(tài)插件和HMI數(shù)據(jù)訪問插件會分別生成NCUC2.0總線操作功能庫和Modbus/TCP總線從操作功能庫,連同用戶IEC61131-3程序生成的ANSI C代碼一并下載到主站。主站POU運行過程中,通過調(diào)用插件生成的功能庫可以實現(xiàn)對現(xiàn)場總線設備以及HMI設備的操作。IDE代碼生成結構與功能原理如圖4所示。

        圖4 IDE代碼生成功能原理Fig.4 Schematic diagram of IDE code generation function

        3.2 總線組態(tài)插件

        總線組態(tài)是將現(xiàn)場總線上從站數(shù)量、節(jié)點號、各從站類型、從站操作方法等描述作為配置文件的形式集成在主站中,使主站可以清晰地掌控所需要控制的總線鏈路上所有硬件設備的完整信息的過程, 也是總線式控制系統(tǒng)正常運行的必要條件。

        在圖4所示的現(xiàn)場總線架構中,NCUC2.0總線操作功能庫不僅需要滿足NCUC2.0總線鏈路層數(shù)據(jù)傳輸?shù)幕緟f(xié)議要求,還應符合CANopen應用層數(shù)據(jù)的傳輸及操作規(guī)范。根據(jù)NCUC2.0總線通道的數(shù)據(jù)傳輸要求,將NCUC2.0總線初始化、通道傳輸?shù)瓤偩€操作以功能函數(shù)的形式集成在.c文件庫中。此外,將CANopen協(xié)議狀態(tài)機、PDO配置、OD配置等指令發(fā)送過程以函數(shù)的形式整合在.c文件庫中。最終,形成的多個C文件作為IEC61131-3代碼總線操作功能庫一起下載到主站中。最后,在IDE中設計用戶可視化配置界面作為插件與用戶的數(shù)據(jù)傳輸接口??偩€組態(tài)插件功能原理如圖5所示。

        圖5 總線組態(tài)插件功能原理Fig.5 Function schematic diagram of bus configuration plug-in

        根據(jù)NCUC2.0實時以太網(wǎng)總線工作原理,在建立正常通信之前需要對各從站NCUC控制器進行配置,這包括各從站地址配置、通道配置、映射配置、DC時鐘配置、中斷配置等。因此,分別設計Addr.c,Channel.c,Mapping.c,DC_clk.c,IRQ.c操作函數(shù),并在函數(shù)中定義了NCUC2.0關于站地址、通道、映射、DC時鐘、中斷的配置的底層總線收發(fā)幀操作流程。這樣,用戶只需要根據(jù)總線使用需求,在IDE總線配置界面中輸入相關的配置參數(shù),插件將各參數(shù)導入到總線配置參數(shù)中,生成具有總線配置功能的NCUC_cfg.c文件。NCUC2.0總線初始化部分代碼如下:

        在CANopen協(xié)議中,從站對末端設備的控制和狀態(tài)監(jiān)控都是基于對象字典來實現(xiàn)的。主站通過現(xiàn)場總線修改和讀取各從站對象字典中的參數(shù),則可實現(xiàn)基于現(xiàn)場總線的設備控制。在IDE中設計對象字典編輯界面,用戶根據(jù)實際系統(tǒng)中各從站節(jié)點號、類型進行對象字典編輯,形成系統(tǒng)中各從站對象字典文件。最終,生成包含總線上所有從站對象字典信息的主站對象字典Master_OD.c文件。

        CANopen中實現(xiàn)周期數(shù)據(jù)傳輸?shù)倪^程通道(PDO)在初始狀態(tài)時為關閉狀態(tài),用戶需要通過服務數(shù)據(jù)通道(SDO)配置并打開。PDO的相關配置主要包括PDO通道數(shù)量、TPDO參數(shù)及映射,以及RPDO參數(shù)及映射。在IDE中設計從站PDO配置界面,用戶可根據(jù)各從站需要進行周期性傳輸對象的索引號、子索引號、數(shù)據(jù)格式進行PDO相關配置。然后,插件根據(jù)配置結果,將實現(xiàn)各從站PDO配置的CANopen數(shù)據(jù)幀按順序打包形成PDO配置函數(shù)。最后,再將各從站PDO配置函數(shù)合并為PDO_cfg.c文件。

        3.3 HMI數(shù)據(jù)訪問插件

        HMI設備是實現(xiàn)系統(tǒng)人機交互的終端設備。通過與主站建立通信關系,用戶可以在HMI界面上通過指令下達來控制整個系統(tǒng)。此外,用戶也可以通過HMI界面實時顯示由主站上傳的系統(tǒng)的關鍵參數(shù)狀態(tài)。

        在自研可編程控制系統(tǒng)中,HMI設備采用基于以太網(wǎng)鏈路的Modbus/TCP協(xié)議與PLC進行通信。因此,以插件形式構建HMI設備與主站IEC61131-3代碼的數(shù)據(jù)交換通道是人機界面操作功能實現(xiàn)的關鍵。Modbus協(xié)議提供了數(shù)據(jù)訪問規(guī)范,但直接以IEC61131-3代碼中變量作為Modbus數(shù)據(jù)區(qū)會影響IEC61131-3代碼執(zhí)行的可靠性。設計獨立于IEC61131-3代碼的數(shù)據(jù)區(qū),并建立數(shù)據(jù)區(qū)與代碼變量之間的映射關系,通過周期性更新數(shù)據(jù)區(qū)與代碼變量實現(xiàn)HMI數(shù)據(jù)訪問的功能。HMI數(shù)據(jù)訪問插件原理如圖6所示。

        圖6 HMI數(shù)據(jù)訪問插件功能原理Fig.6 Functional schematic diagram of HMI data access plug-in

        根據(jù)Modbus協(xié)議規(guī)范,設計索引為0x0000~0xFFFF的Modbus數(shù)據(jù)區(qū),實現(xiàn)與用戶HMI的數(shù)據(jù)交換。在IDE中設計Modbus參數(shù)映射編輯界面,用戶通過界面配置邏輯代碼中的變量與Modbus數(shù)據(jù)區(qū)的數(shù)據(jù)映射關系表,建立IEC61131-3程序變量與Modbus數(shù)據(jù)之間的聯(lián)系。設置Modbus數(shù)據(jù)更新周期,使IEC61131-3代碼中被HMI監(jiān)控的變量周期性地寫入Modbus數(shù)據(jù)區(qū)。同時,IEC61131-3代碼中被HMI控制的變量也跟隨Modbus數(shù)據(jù)區(qū)周期性地更新。插件最終生成Modbus_operation.c操作函數(shù)和數(shù)據(jù)區(qū)Modbus_data.c庫文件。

        4 主站運行環(huán)境設計

        主站Runtime是集成在主站中用于管理IDE生成代碼的編譯、執(zhí)行等功能的相關所有軟件組件的集合,也是主站編程工具的重要組成部分。

        4.1 主站Runtime功能

        IDE解決了面向用戶使用的前端程序開發(fā)問題,主站Runtime則需要實現(xiàn)ANSI C代碼下載、編譯、執(zhí)行、調(diào)試的功能。由于IDE與Runtime都在PC平臺上運行,因此通過標準以太網(wǎng)接口使用TCP/IP協(xié)議在不同狀態(tài)下分別進行代碼和數(shù)據(jù)的傳輸,可以簡單、高效地實現(xiàn)程序下載及調(diào)試功能。GCC是功能強大的開源編譯器,可將C語言編譯生成可執(zhí)行文件,因而被Linux等系統(tǒng)作為標準編譯器廣泛使用。因此,在主站中集成GCC編譯器是實現(xiàn)IDE代碼編譯功能的有效手段。主站Runtime還需要建立主站與外設接口的底層操作接口API,實現(xiàn)現(xiàn)場總線通信控制、HMI設備數(shù)據(jù)交換功能。

        主站Runtime功能原理如圖7所示,Runtime由組件管理器、程序調(diào)試組件、Modbus收發(fā)組件、NCUC收發(fā)組件和協(xié)議棧組件構成。其中,組件管理器是Runtime中管理各組件的關鍵組件,主要功能是加載和初始化其他組件,使各組件與軟PLC之間相互調(diào)用和數(shù)據(jù)交換。用戶使用IDE設計開發(fā)邏輯程序后在界面中發(fā)送程序下載指令,組件管理器通過控制程序下載接口,接收IDE發(fā)送的ANSI C代碼,然后調(diào)用GCC編譯器對ANSI C代碼進行聯(lián)合編譯生成主站可執(zhí)行程序。用戶進行程序調(diào)試時,Runtime中程序調(diào)試組件通過程序調(diào)試以太網(wǎng)接口,將IDE中程序變量與POU中變量同步更新,實現(xiàn)IDE可視化調(diào)試功能。Runtime中Modbus收發(fā)組件、NCUC收發(fā)組件根據(jù)Modbus/TCP和NCUC2.0通信鏈路底層接口收發(fā)操作規(guī)范分別形成了通信收發(fā)API庫,為軟PLC代碼執(zhí)行提供外設操作庫。由于自研可編程控制系統(tǒng)采用CANopen協(xié)議作為應用層協(xié)議,在POU中實現(xiàn)對各從站的通信控制必須遵循CANopen協(xié)議中NMT,SDO,PDO的傳輸規(guī)范。因此,在總線協(xié)議棧組件中集成CANopen協(xié)議棧供POU調(diào)用,為POU總線通信控制過程提供協(xié)議支持。

        圖7 主站Runtime功能原理Fig.7 Schematic diagram of main station runtime function

        4.2 組件管理器程序流程

        在Runtime中,組件管理器通過對各功能組件以及主站其他模塊的管理,建立了與IDE的交互通道,也構建了功能完善且能夠獨立運行的Runtime環(huán)境。

        組件管理器程序流程如圖8所示。在上電之初,組件管理器初始化Runtime中其他功能組件。然后,讀取硬盤中上次掉電時設置的上電啟動狀態(tài),若為運行態(tài),則加載硬盤中軟PLC代碼并運行。此時,若IDE發(fā)送調(diào)試指令,組件管理器啟動程序調(diào)試組件通過程序調(diào)試網(wǎng)口建立IDE調(diào)試通道,調(diào)試過程中若IDE發(fā)送結束指令,則結束調(diào)試運行過程。若上電啟動狀態(tài)為下載態(tài),則開始等待程序下載網(wǎng)口數(shù)據(jù)。當程序下載網(wǎng)口檢測到IDE下載握手信號時,組件管理器開始操作網(wǎng)口接收代碼數(shù)據(jù)。接收完成后調(diào)用GCC編譯器,將ANSI C編譯后生成主站可執(zhí)行的軟PLC代碼并存在硬盤中。

        圖8 組件管理器程序流程Fig.8 Flow chart of component manager program

        4.3 Runtime功能組件

        Runtime功能組件為主站軟PLC代碼實現(xiàn)IDE調(diào)試相關數(shù)據(jù)通信、NCUC2.0總線通信控制、用戶HMI設備數(shù)據(jù)交換提供了相關的底層接口操作函數(shù)和通信協(xié)議支持。根據(jù)實際設備所采用的通信鏈路和協(xié)議,設計程序調(diào)試組件、Modbus收發(fā)組件、NCUC收發(fā)組件、總線協(xié)議棧組件分別實現(xiàn)IDE調(diào)試、總線控制、HMI通信功能。

        4.3.1 程序調(diào)試組件

        用戶進行IEC61131-3程序設計時,需要對所有程序中變量的類型、數(shù)據(jù)格式、初始值進行定義,形成用戶程序變量表。通過下載和重編譯,用戶程序變量表在Runtime中生成了PUO程序變量表,二者結構及變量是一致的。

        在Runtime中設計程序調(diào)試組件,周期性地將POU程序變量表中的所有數(shù)據(jù)讀取,按照幀結構定義將各變量組合形成以太網(wǎng)幀,通過程序調(diào)試以太網(wǎng)口發(fā)送至IDE中用戶程序變量表中,實現(xiàn)IDE界面對POU中各變量的在線監(jiān)視。當用戶在IDE程序GUI中修改用戶程序變量表中的變量值時,新修改的變量通過以太網(wǎng)幀發(fā)送至主站程序調(diào)試以太網(wǎng)口。程序調(diào)試組件將收到的網(wǎng)絡幀解析后寫入POU程序變量表,實現(xiàn)在線參數(shù)修改功能。為了避免對POU程序變量表中參數(shù)進行同時讀寫操作,設計寫優(yōu)先機制。在接收到IDE發(fā)送的參數(shù)修改幀時,暫停讀操作,待寫入完成后繼續(xù)。程序調(diào)試組件工作原理如圖9所示。

        圖9 程序調(diào)試組件工作原理示意圖Fig.9 Schematic diagram of working principle of program debugging component

        4.3.2 Modbus收發(fā)組件

        用戶HMI設備采用Modbus/TCP通信協(xié)議實現(xiàn)對軟PLC代碼中Modbus數(shù)據(jù)區(qū)的數(shù)據(jù)訪問。設計如圖10所示的Modbus收發(fā)組件,集成Modbus/TCP協(xié)議,作為Modbus/TCP鏈路中從站設備接收來自用戶HMI設備指令。HMI收發(fā)組件接收到網(wǎng)絡數(shù)據(jù)幀后,根據(jù)Modbus/TCP協(xié)議解析網(wǎng)絡數(shù)據(jù)幀中事務處理標識、協(xié)議標識符、長度、單元標識符、功能碼和數(shù)據(jù)信息。若功能碼為寫操作,則根據(jù)數(shù)據(jù)地址、長度將數(shù)據(jù)寫入Modbus數(shù)據(jù)區(qū)中。若功能碼為讀操作,則根據(jù)數(shù)據(jù)地址、長度將Modbus數(shù)據(jù)區(qū)中相應數(shù)據(jù)讀出并按Modbus/TCP數(shù)據(jù)幀格式組幀后通過HMI以太網(wǎng)口發(fā)送至用戶HMI設備。

        圖10 Modbus收發(fā)組件工作原理示意圖Fig.10 Schematic diagram of working principle of Modbus transceiver components

        4.3.3 NCUC收發(fā)組件

        NCUC2.0實時以太網(wǎng)總線基于IEEE802.3以太網(wǎng)數(shù)據(jù)傳輸格式,將各從站CANopen數(shù)據(jù)幀集成在網(wǎng)絡數(shù)據(jù)幀中的NCUC報文區(qū)域內(nèi),通過線型級聯(lián)網(wǎng)絡拓撲架構實現(xiàn)對總線上各從站的通信數(shù)據(jù)交換。設計如圖11所示的NCUC收發(fā)組件,建立與總線協(xié)議棧組件和總線上各從站通信鏈路。NCUC收發(fā)組件根據(jù)總線協(xié)議組件的CANopen數(shù)據(jù)幀收發(fā)調(diào)度指令,將各從站CANopen幀格式轉(zhuǎn)換為NCUC2.0數(shù)據(jù)幀格式后,調(diào)用網(wǎng)口發(fā)送API將數(shù)據(jù)幀發(fā)送至總線。數(shù)據(jù)幀經(jīng)過各從站處理后返回至總線以太網(wǎng)口,NCUC收發(fā)組件將數(shù)據(jù)幀接收后解析成各從站CANopen返回幀格式,并送總線協(xié)議棧組件進行處理。此外,NCUC2.0數(shù)據(jù)幀格式通過讀取NCUC_cfg.c總線配置函數(shù)進行設置。NCUC收發(fā)組件的工作原理如圖11所示。

        圖11 NCUC收發(fā)組件工作原理示意圖Fig.11 Schematic diagram of working principle of NCUC transceiver components

        4.3.4 總線協(xié)議棧組件

        總線協(xié)議棧組件是集成CANopen CiA301協(xié)議的通信協(xié)議棧,通過POU調(diào)用實現(xiàn)符合CANopen協(xié)議的通信收發(fā)邏輯??偩€協(xié)議棧組件集成了開源的CANfestival庫作為CANopen協(xié)議棧,可實現(xiàn)通信收發(fā)調(diào)度管理、節(jié)點管理、PDO傳輸、SDO傳輸、同步對象等協(xié)議相關的所有操作。在組件管理器初始化總線協(xié)議棧組件時,根據(jù)總線組態(tài)插件中PDO配置函數(shù)PDO_cfg.c對各從站PDO進行配置。正常運行狀態(tài)下,協(xié)議棧被POU調(diào)用,將主站對象字典中數(shù)據(jù)以CANopen幀形式發(fā)出至NCUC收發(fā)組件。在收到NCUC收發(fā)組件返回的CANopen幀后,調(diào)用協(xié)議棧對主站對象字典進行更新處理。

        5 安全集成功能庫設計

        在工業(yè)生產(chǎn)和設備制造中,人員與設備的安全是系統(tǒng)工作過程中必須考慮的首要因素。而工業(yè)控制現(xiàn)場安全保護措施一般采用電氣互鎖或是自行編寫安全邏輯程序?qū)崿F(xiàn)。電氣互鎖的復雜性和應用開發(fā)者的差異性導致實際安全功能難以滿足需求,甚至可能造成事故。針對可編程控制系統(tǒng)中運動控制部件的安全問題,本文根據(jù)PLCopen功能塊開發(fā)規(guī)范,設計IEC61800-5-2安全功能庫,并以用戶插件的形式集成在IDE中,實現(xiàn)軟件定義安全的功能。

        5.1 功能庫的實現(xiàn)原理

        IEC61800-5-2對調(diào)速電氣設備提出了17項安全功能建議,包括運動設備的停止功能、狀態(tài)監(jiān)視功能和安全輸出功能三類。利用IDE用戶可擴展插件功能,采用IEC61131-3語言或C語言對各項功能進行描述設計,并采用PLCopen XML接口規(guī)范定義接口,最終形成包含17項安全功能塊的安全功能庫(Safety)。在進行IDE程序開發(fā)時,根據(jù)系統(tǒng)安全要求,通過拖拽的方式調(diào)用功能庫中安全功能塊進行安全相關的程序設計。

        圖12展示了安全集成功能庫的使用原理。用戶進行IEC61131-3程序開發(fā)時,調(diào)用安全集成功能庫插件,將插件中安全功能塊與用戶程序邏輯關聯(lián),實現(xiàn)安全功能。根據(jù)實際系統(tǒng)設備的工作狀態(tài),用戶可根據(jù)邏輯執(zhí)行過程中的異常狀態(tài)調(diào)用安全停止功能塊使設備停止,也可以根據(jù)安全監(jiān)視功能塊對設備運動過程中轉(zhuǎn)矩、速度、加速度、位置、溫度等參數(shù)進行實時監(jiān)控。當參數(shù)超過設定的安全區(qū)間后,調(diào)用安全停止功能塊來停止設備。同時,也可以通過安全輸出功能塊對外部安全設備(如抱閘制動等設備)進行控制,保證設備安全運行。安全集成功能庫插件通過GCC編譯后,作為Runtime中主站POU的Safety.c功能庫被POU調(diào)用。

        圖12 Safety功能實現(xiàn)原理Fig.12 Schematic diagram of implementation of safety function

        5.2 安全集成功能庫

        根據(jù)IEC61800-5-2規(guī)范對各項安全功能的描述,采用FBD對安全功能塊進行接口描述和邏輯算法設計。由于文章篇幅限制,根據(jù)安全功能分類,以典型的安全停止1(SS1)以及安全速度范圍(SSR)安全功能為例進行具體描述。

        SS1的功能被定義為,在設定的限值內(nèi)啟動并控制(監(jiān)視)電機減速使電機停止,當電機速度低于規(guī)定的限值時,啟動STO功能;或在應用規(guī)定的時間延時后,啟動電機減速并啟動STO功能。因此,SS1功能塊具有兩種工作模式,分別為基于時間停止模式和基于速度停止模式。SS1功能塊時序原理如圖13所示。

        圖13 SS1功能塊時序圖Fig.13 Sequence chart of SS1 function block

        SS1功能塊接口如表1所示。在基于時間停止模式時,SS1信號下降沿會觸發(fā)SS1功能。此時,SS1功能塊會以恒定的減速度Dcc控制Axis_id電機進行勻減速運動。SS1_st由低變高,表示SS1功能正在執(zhí)行。經(jīng)過t_d1時間后,根據(jù)設定減速度,電機應減速至設定的速度范圍[-vel_th,vel_th]內(nèi)。此時,將STO_st輸出至高,控制STO功能模塊執(zhí)行STO操作。SS1_st輸出由高變低,表示SS1功能已經(jīng)結束。在基于速度停止模式時,SS1信號下降沿會啟動SS1停止功能,以設定的減速度Dcc控制軸號為Axis_id的電機進行勻減速運動。當電機的實際速度減低至[-vel_th, vel_th]時,開始監(jiān)控電機速度。在t_d2時間內(nèi),若電機的實際速度vel_fd仍處于[-vel_th,vel_th]內(nèi),則經(jīng)過t_d3延時后啟動STO;否則,輸出錯誤。

        表1 SS1功能塊接口定義Tab.1 SS1 function block interface definition

        SSR功能塊主要通過監(jiān)視電機運行速度是否在設定的上限和下限之內(nèi),當實際速度超過設定速度范圍時,SSR輸出有效電平,用戶通過SSR輸出電平狀態(tài)實現(xiàn)安全停止等其他功能操作。設計SSR功能塊,輸入信號包括SSR使能、電機軸號、上限速度、下限速度、實際速度和時間閾值,輸出信號為SSR狀態(tài)。時序邏輯如圖14所示。

        圖14 SSR功能塊時序圖Fig.14 Sequence chart of SSR function block

        在啟動SSR功能塊之前,設置電機軸號、速度上限、速度下限和延時時間,并將電機實際速度輸入至SSR功能塊??刂芐SR信號節(jié)點電平為低,啟動SSR功能塊。當實際速度超過設定范圍后,等待延時時間t_d。此時,實際速度仍超過速度的上下限,則SSR_st輸出為高,表示實際速度超過設定范圍。同理,當實際速度回歸至設定區(qū)間后,等待延時時間t_d,SSR_st輸出為低,表示實際速度滿足設定要求。

        6 實 驗

        6.1 實驗平臺原理及構成

        圖15 可編程控制系統(tǒng)實驗設備構成原理框圖Fig.15 Schematic block diagram of experimental equipment for programmable control system

        本文采用自研的可編程控制系統(tǒng)主從站及外設對主站編程工具進行功能測試。平臺設備構成及連接原理如圖15所示。采用嵌入式PC作為系統(tǒng)主站,通過NCUC2.0實時以太網(wǎng)總線將1個數(shù)字量IO從站和2個運動控制從站相連。數(shù)字量IO從站節(jié)點號為2號,外接IO接口板作為開關量信號輸入或輸出的接口。兩個運動控制從站節(jié)點號分別為3和4,分別控制1個伺服驅(qū)動器實現(xiàn)對伺服電機的運動控制。在PC上運行自研IDE,開發(fā)IEC61131-3用戶代碼,通過主站網(wǎng)口下載至主站Runtime中并運行,控制各從站外設實現(xiàn)既定的控制功能。此外,HMI組態(tài)屏與主站采用Modbus/TCP通信協(xié)議進行人機交互。

        根據(jù)圖15所示的實驗設備原理搭建硬件平臺,如圖16所示。

        圖16 可編程控制系統(tǒng)實物連接圖Fig.16 Physical connection diagram of programmable control system

        在IDE中進行IEC61131-3程序開發(fā),編譯后下載至主站Runtime中運行。通過實驗說明IDE程序開發(fā)和下載過程,以及主站Runtime運行程序后對各從站的控制情況,驗證本文所提出的主站編程工具的功能完整性。

        6.2 編程開發(fā)過程

        圖17展示了上述功能在IDE中程序開發(fā)過程。首先,根據(jù)總線上從站連接關系、節(jié)點號、從站類型等狀態(tài)在插件配置界面中進行總線組態(tài)配置。然后,在IEC61131-3程序開發(fā)界面進行程序的編寫,再在IDE中對編寫的程序進行C代碼構建。最后,下載到主站Runtime中。在主站Runtime運行過程中,通過可視化調(diào)試界面可以實現(xiàn)對程序中變量的在線監(jiān)控和修改。

        圖17 IDE程序設計開發(fā)流程Fig.17 IDE program design and development process

        6.3 實驗設計

        在實驗系統(tǒng)硬件平臺基礎上,按上述編程開發(fā)過程可實現(xiàn)對外設的靈活編程控制。本文對典型的數(shù)字量IO控制、電機速度及位置控制為例,對主站編程工具進行功能驗證。

        在IDE中設置總線通信周期為1 ms,控制數(shù)字量IO從站以100 ms為周期將輸出口電平取反,通過示波器可觀察程序執(zhí)行狀況。設置掃描周期為20 ms,控制數(shù)字IO從站以1 s為周期進行流水燈控制,通過IDE的在線調(diào)試功能驗證邏輯的正確性。將伺服驅(qū)動器設置為位置模式,通過運動控制從站發(fā)送脈沖信號控制電機1和電機2運動。在IDE中編寫運動控制從站指令發(fā)送邏輯,以1 s間隔交替發(fā)送±600 r/min的速度指令,電機2以1 s間隔交替發(fā)送±360°的位置指令以及300 r/min的速度指令。利用主站記錄從站中電機實際速度和實際位置的反饋數(shù)據(jù)。

        6.4 實驗結果

        圖18 系統(tǒng)外設實驗結果Fig.18 System peripheral experiment result

        圖18展示了主從站系統(tǒng)正常運行時各從站外設運行狀態(tài)。從圖18(a)可以看出,數(shù)字量IO從站外設接口板的DO_0~DO_2輸出接口呈現(xiàn)幅值為0~24 V,頻率為5 Hz的方波。當采用T#20 ms掃描周期設計跑周期為1 s的流水燈程序控制時,IDE調(diào)試工具呈現(xiàn)的IO波形圖顯示每個IO持續(xù)時間為T#1 s,運行結果與設計保持一致,如圖18(b)所示。圖18(c)為運動控制從站(ID=3)控制的電機1的實際速度曲線。從t=0.685 s開始,電機1速度曲線近似幅值為600 r/min,頻率為0.5 Hz的方波。圖18(d)為運動控制從站(ID=4)控制的電機2的實際位置曲線。從t=0.485 s開始,電機2以±360°的指令往復運動。綜上,各外設運行狀態(tài)與程序設計一致。實驗結果表明,本文設計的自主可控主站編程工具可實現(xiàn)IEC61131-3程序開發(fā)、編譯、下載、調(diào)試等功能。

        7 對標情況及應用推廣可行性分析

        本項目主站編程工具整體對標328項,其中不 支 持20項,可 等 效 替 換 項 為3項[14],與IEC61131-3標準[15]符合度達90%以上。因此,在實際應用的推廣過程中,任何符合IEC61131-3標準的控制程序,只要與上述特性無關,均可在本項目的主站編程工具上通過編譯并正常執(zhí)行,本文實驗采用的IO和伺服電機的控制邏輯,都是IEC61131-3標準的代碼,驗證了系統(tǒng)的控制性能,可滿足各行業(yè)的相關控制需求,實現(xiàn)國產(chǎn)化替代。

        8 結 論

        本文針對可編程控制系統(tǒng)軟件開發(fā)工具自主可控的問題,以開源的IEC61131-3編程平臺Beremiz為基礎,提出了一種針對自主可控主從站硬件系統(tǒng)和NCUC2.0實時以太網(wǎng)總線的主站編程工具架構。在Beremiz環(huán)境中設計了總線組態(tài)和HMI數(shù)據(jù)訪問插件,為主站邏輯代碼實現(xiàn)現(xiàn)場總線通信控制和HMI設備數(shù)據(jù)訪問提供了功能庫支持。根據(jù)主站運行過程中通信收發(fā)底層的操作需求,在Runtime中設計了通信相關的收發(fā)操作組件,形成了內(nèi)部POU邏輯和外部設備的連接通道。通過分析運動設備的安全運行問題,設計符合IEC61800-5-2規(guī)范的安全集成功能庫,使功能安全能夠在軟件上集成設計。最后,搭建可編程控制系統(tǒng)實驗平臺,驗證了主站編程工具程序開發(fā)、編譯、下載、調(diào)試功能。由此表明,我們已經(jīng)初步掌握可編程控制系統(tǒng)軟件開發(fā)工具自主可控的設計方法。

        猜你喜歡
        功能塊主站插件
        自編插件完善App Inventor與樂高機器人通信
        電子制作(2019年22期)2020-01-14 03:16:34
        Ovation系統(tǒng)FIRSTOUT和FIFO跳閘首出比較
        基于OS2主站系統(tǒng)的海量數(shù)據(jù)共享技術研究
        多表遠程集抄主站系統(tǒng)
        電子制作(2017年23期)2017-02-02 07:17:07
        MapWindowGIS插件機制及應用
        自定義功能塊類型在電解槽聯(lián)鎖中的應用
        中國氯堿(2015年9期)2015-11-02 01:03:41
        基于Revit MEP的插件制作探討
        基于MACSV6.5.2的鍋爐燃盡風開關量調(diào)節(jié)門控制功能塊設計
        基于改進經(jīng)濟壓差算法的主站AVC的研究
        關口電能計量故障監(jiān)測報警裝置及主站研究
        亚洲国产精品福利片在线观看| 国产久久久自拍视频在线观看| 亚洲一区二区三区99| 国产做国产爱免费视频| 成年女人毛片免费观看97| 国产精品欧美亚洲韩国日本| 日韩av一区二区蜜桃| 三年片免费观看影视大全视频| 免费看久久妇女高潮a| 亚洲九九九| 国产一区二区三区不卡视频| 日韩av无码一区二区三区不卡| 人妻少妇av无码一区二区| 日本一道dvd在线中文字幕| 亚洲国产最新免费av| 看全色黄大色黄大片 视频| 香蕉人妻av久久久久天天| 国产小车还是日产的好| 偷拍视频网址一区二区| 中文无码日韩欧| 亚洲精品黄网在线观看| 亚洲发给我的在线视频| 天天做天天添av国产亚洲| 乱人伦中文字幕成人网站在线| 精品国产迪丽热巴在线| 少妇被按摩出高潮了一区二区| 女人被弄到高潮的免费视频| 国产人成无码中文字幕| 亚洲成人免费久久av| 亚洲av中文无码字幕色本草| 欧美老妇与zozoz0交| 国产亚洲高清在线精品不卡| 国产自拍在线视频91| 国产熟妇按摩3p高潮大叫| 连续高潮喷水无码| 国产一区二区三区护士| 国产亚洲精品久久久闺蜜| 成人国产午夜在线视频| 日韩av一区二区三区在线观看| 国产玉足榨精视频在线观看| 色妞www精品视频|