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

?

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

2023-02-06 14:07高朝陽(yáng)陳凌宇王曉宇
光學(xué)精密工程 2023年1期
關(guān)鍵詞:功能塊主站插件

周 敏, 高朝陽(yáng), 陳凌宇, 王曉宇*

(1.華中科技大學(xué) 機(jī)械科學(xué)與工程學(xué)院,湖北 武漢 430074;2.國(guó)防科技大學(xué) 智能科學(xué)學(xué)院,湖南 長(zhǎng)沙 410073)

1 引 言

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

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

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

2 自主可控主站編程工具分析與設(shè)計(jì)

2.1 主站編程工具架構(gòu)

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

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

2.2 Beremiz原理

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

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

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

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

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

2.3 自主可控主站編程工具架構(gòu)

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

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

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

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

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

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

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

3.1 IDE代碼功能架構(gòu)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

4 主站運(yùn)行環(huán)境設(shè)計(jì)

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

4.1 主站Runtime功能

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

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

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

4.2 組件管理器程序流程

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

組件管理器程序流程如圖8所示。在上電之初,組件管理器初始化Runtime中其他功能組件。然后,讀取硬盤中上次掉電時(shí)設(shè)置的上電啟動(dòng)狀態(tài),若為運(yùn)行態(tài),則加載硬盤中軟PLC代碼并運(yùn)行。此時(shí),若IDE發(fā)送調(diào)試指令,組件管理器啟動(dòng)程序調(diào)試組件通過(guò)程序調(diào)試網(wǎng)口建立IDE調(diào)試通道,調(diào)試過(guò)程中若IDE發(fā)送結(jié)束指令,則結(jié)束調(diào)試運(yùn)行過(guò)程。若上電啟動(dòng)狀態(tài)為下載態(tài),則開始等待程序下載網(wǎng)口數(shù)據(jù)。當(dāng)程序下載網(wǎng)口檢測(cè)到IDE下載握手信號(hào)時(shí),組件管理器開始操作網(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代碼實(shí)現(xiàn)IDE調(diào)試相關(guān)數(shù)據(jù)通信、NCUC2.0總線通信控制、用戶HMI設(shè)備數(shù)據(jù)交換提供了相關(guān)的底層接口操作函數(shù)和通信協(xié)議支持。根據(jù)實(shí)際設(shè)備所采用的通信鏈路和協(xié)議,設(shè)計(jì)程序調(diào)試組件、Modbus收發(fā)組件、NCUC收發(fā)組件、總線協(xié)議棧組件分別實(shí)現(xiàn)IDE調(diào)試、總線控制、HMI通信功能。

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

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

在Runtime中設(shè)計(jì)程序調(diào)試組件,周期性地將POU程序變量表中的所有數(shù)據(jù)讀取,按照幀結(jié)構(gòu)定義將各變量組合形成以太網(wǎng)幀,通過(guò)程序調(diào)試以太網(wǎng)口發(fā)送至IDE中用戶程序變量表中,實(shí)現(xiàn)IDE界面對(duì)POU中各變量的在線監(jiān)視。當(dāng)用戶在IDE程序GUI中修改用戶程序變量表中的變量值時(shí),新修改的變量通過(guò)以太網(wǎng)幀發(fā)送至主站程序調(diào)試以太網(wǎng)口。程序調(diào)試組件將收到的網(wǎng)絡(luò)幀解析后寫入POU程序變量表,實(shí)現(xiàn)在線參數(shù)修改功能。為了避免對(duì)POU程序變量表中參數(shù)進(jìn)行同時(shí)讀寫操作,設(shè)計(jì)寫優(yōu)先機(jī)制。在接收到IDE發(fā)送的參數(shù)修改幀時(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設(shè)備采用Modbus/TCP通信協(xié)議實(shí)現(xiàn)對(duì)軟PLC代碼中Modbus數(shù)據(jù)區(qū)的數(shù)據(jù)訪問(wèn)。設(shè)計(jì)如圖10所示的Modbus收發(fā)組件,集成Modbus/TCP協(xié)議,作為Modbus/TCP鏈路中從站設(shè)備接收來(lái)自用戶HMI設(shè)備指令。HMI收發(fā)組件接收到網(wǎng)絡(luò)數(shù)據(jù)幀后,根據(jù)Modbus/TCP協(xié)議解析網(wǎng)絡(luò)數(shù)據(jù)幀中事務(wù)處理標(biāo)識(shí)、協(xié)議標(biāo)識(shí)符、長(zhǎng)度、單元標(biāo)識(shí)符、功能碼和數(shù)據(jù)信息。若功能碼為寫操作,則根據(jù)數(shù)據(jù)地址、長(zhǎng)度將數(shù)據(jù)寫入Modbus數(shù)據(jù)區(qū)中。若功能碼為讀操作,則根據(jù)數(shù)據(jù)地址、長(zhǎng)度將Modbus數(shù)據(jù)區(qū)中相應(yīng)數(shù)據(jù)讀出并按Modbus/TCP數(shù)據(jù)幀格式組幀后通過(guò)HMI以太網(wǎng)口發(fā)送至用戶HMI設(shè)備。

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

4.3.3 NCUC收發(fā)組件

NCUC2.0實(shí)時(shí)以太網(wǎng)總線基于IEEE802.3以太網(wǎng)數(shù)據(jù)傳輸格式,將各從站CANopen數(shù)據(jù)幀集成在網(wǎng)絡(luò)數(shù)據(jù)幀中的NCUC報(bào)文區(qū)域內(nèi),通過(guò)線型級(jí)聯(lián)網(wǎng)絡(luò)拓?fù)浼軜?gòu)實(shí)現(xiàn)對(duì)總線上各從站的通信數(shù)據(jù)交換。設(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)過(guò)各從站處理后返回至總線以太網(wǎng)口,NCUC收發(fā)組件將數(shù)據(jù)幀接收后解析成各從站CANopen返回幀格式,并送總線協(xié)議棧組件進(jìn)行處理。此外,NCUC2.0數(shù)據(jù)幀格式通過(guò)讀取NCUC_cfg.c總線配置函數(shù)進(jìn)行設(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é)議棧,通過(guò)POU調(diào)用實(shí)現(xiàn)符合CANopen協(xié)議的通信收發(fā)邏輯??偩€協(xié)議棧組件集成了開源的CANfestival庫(kù)作為CANopen協(xié)議棧,可實(shí)現(xiàn)通信收發(fā)調(diào)度管理、節(jié)點(diǎn)管理、PDO傳輸、SDO傳輸、同步對(duì)象等協(xié)議相關(guān)的所有操作。在組件管理器初始化總線協(xié)議棧組件時(shí),根據(jù)總線組態(tài)插件中PDO配置函數(shù)PDO_cfg.c對(duì)各從站PDO進(jìn)行配置。正常運(yùn)行狀態(tài)下,協(xié)議棧被POU調(diào)用,將主站對(duì)象字典中數(shù)據(jù)以CANopen幀形式發(fā)出至NCUC收發(fā)組件。在收到NCUC收發(fā)組件返回的CANopen幀后,調(diào)用協(xié)議棧對(duì)主站對(duì)象字典進(jìn)行更新處理。

5 安全集成功能庫(kù)設(shè)計(jì)

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

5.1 功能庫(kù)的實(shí)現(xiàn)原理

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

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

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

5.2 安全集成功能庫(kù)

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

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

圖13 SS1功能塊時(shí)序圖Fig.13 Sequence chart of SS1 function block

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

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

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

圖14 SSR功能塊時(shí)序圖Fig.14 Sequence chart of SSR function block

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

6 實(shí) 驗(yàn)

6.1 實(shí)驗(yàn)平臺(tái)原理及構(gòu)成

圖15 可編程控制系統(tǒng)實(shí)驗(yàn)設(shè)備構(gòu)成原理框圖Fig.15 Schematic block diagram of experimental equipment for programmable control system

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

根據(jù)圖15所示的實(shí)驗(yàn)設(shè)備原理搭建硬件平臺(tái),如圖16所示。

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

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

6.2 編程開發(fā)過(guò)程

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

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

6.3 實(shí)驗(yàn)設(shè)計(jì)

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

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

6.4 實(shí)驗(yàn)結(jié)果

圖18 系統(tǒng)外設(shè)實(shí)驗(yàn)結(jié)果Fig.18 System peripheral experiment result

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

7 對(duì)標(biāo)情況及應(yīng)用推廣可行性分析

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

8 結(jié) 論

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

猜你喜歡
功能塊主站插件
三種國(guó)外集散控制系統(tǒng)(DCS)功能塊掃描規(guī)則和執(zhí)行順序的分析和總結(jié)
自編插件完善App Inventor與樂(lè)高機(jī)器人通信
基于S7-1200 PLC的DP總線通信技術(shù)在馬里古伊那水電站泄洪沖沙孔門機(jī)上的應(yīng)用
變電站綜合自動(dòng)化系統(tǒng)調(diào)試新方法研究
Ovation系統(tǒng)FIRSTOUT和FIFO跳閘首出比較
EtherCAT主站與主站通信協(xié)議的研究與實(shí)現(xiàn)*
基于jQUerY的自定義插件開發(fā)
多表遠(yuǎn)程集抄主站系統(tǒng)
自定義功能塊類型在電解槽聯(lián)鎖中的應(yīng)用
基于Revit MEP的插件制作探討
宁夏| 汝阳县| 滦平县| 正定县| 赤水市| 宜丰县| 深泽县| 淮安市| 荔浦县| 类乌齐县| 垣曲县| 逊克县| 闻喜县| 铜山县| 马鞍山市| 平邑县| 耒阳市| 鹤壁市| 青冈县| 和林格尔县| 微山县| 井冈山市| 周口市| 北辰区| 元阳县| 宁德市| 灌南县| 子洲县| 长汀县| 张掖市| 荆门市| 宜君县| 绥棱县| 莒南县| 海南省| 威宁| 武强县| 综艺| 安宁市| 荔浦县| 太仓市|