摘要: 隨著航空制造業(yè)生產(chǎn)需求的升級(jí),針對(duì)生產(chǎn)車(chē)間存在多設(shè)備、多種現(xiàn)場(chǎng)總線(xiàn)協(xié)議共存情況,航空制造業(yè)迫切需要將這些孤島設(shè)備的信息和數(shù)據(jù)進(jìn)行采集、存儲(chǔ)、分析、管理,以邊緣設(shè)備為核心的邊緣網(wǎng)關(guān)應(yīng)運(yùn)而生。邊緣網(wǎng)關(guān)具有物聯(lián)網(wǎng)通信和邊緣計(jì)算兩大主要功能,本文實(shí)現(xiàn)了其中PROFINET現(xiàn)場(chǎng)總線(xiàn)通信功能,簡(jiǎn)述了以i.MX8M Mini為處理器的邊緣設(shè)備的搭建,介紹了CODESYS平臺(tái)在Linux系統(tǒng)中的應(yīng)用程序設(shè)計(jì),以及PROFINET總線(xiàn)協(xié)議的配置。以邊緣設(shè)備為主站,選取西門(mén)子V90伺服驅(qū)動(dòng)器為從站,驗(yàn)證PROFINET總線(xiàn)通信功能。
關(guān)鍵詞:邊緣設(shè)備;CODESYS;PROFINET;邊緣網(wǎng)關(guān)
1 引言
傳統(tǒng)航空制造業(yè)正面臨數(shù)字化轉(zhuǎn)型升級(jí)的嚴(yán)峻挑戰(zhàn),隨著個(gè)性化產(chǎn)品生產(chǎn)需求不斷增加,顧客對(duì)產(chǎn)品品質(zhì)要求越來(lái)越嚴(yán)苛,生產(chǎn)設(shè)備的狀態(tài)影響生產(chǎn)效率和產(chǎn)品品質(zhì),生產(chǎn)數(shù)據(jù)和設(shè)備數(shù)據(jù)正成為產(chǎn)線(xiàn)數(shù)字化轉(zhuǎn)型升級(jí)的核心驅(qū)動(dòng)力,傳統(tǒng)的數(shù)字化升級(jí)方案需要組合PLC、PC、網(wǎng)關(guān)、SCADA軟件等多種軟硬件產(chǎn)品于同 一系統(tǒng)中,通過(guò)系統(tǒng)集成實(shí)現(xiàn)工業(yè)物聯(lián)網(wǎng)方案,系統(tǒng)架構(gòu)復(fù)雜,成本昂貴且面臨極大安全風(fēng)險(xiǎn)。這也增加了軟件工程師編程開(kāi)發(fā)難度和軟件開(kāi)發(fā)成本,現(xiàn)場(chǎng)維護(hù)和備件更換成本也隨之增加[1]。
隨著航空制造生產(chǎn)需要向智能化、規(guī)范化、高效化轉(zhuǎn)型,工程師們更需要能融合PLC控制技術(shù)與PC信息化技術(shù),將PLC控制器、PC、網(wǎng)關(guān),運(yùn)動(dòng)控制、I/O 數(shù)據(jù)采集、現(xiàn)場(chǎng)總線(xiàn)協(xié)議、機(jī)器視覺(jué)、設(shè)備聯(lián)網(wǎng)等多領(lǐng)域功能集成于同一控制平臺(tái)的產(chǎn)品。在工業(yè)物聯(lián)網(wǎng)體系架構(gòu)中,感知層網(wǎng)絡(luò)和工業(yè)互聯(lián)網(wǎng)之間需要一個(gè)網(wǎng)關(guān)設(shè)備,實(shí)現(xiàn)工業(yè)互聯(lián)網(wǎng)與傳感層網(wǎng)絡(luò)的互聯(lián)互通[2],以邊 緣設(shè)備為核心的邊緣網(wǎng)關(guān)的出現(xiàn)解決了上述問(wèn)題,其可以實(shí)現(xiàn)運(yùn)動(dòng)控制、過(guò)程控制、I/O采集等多種功能,無(wú)縫整合IT與OT,起到了在工業(yè)物聯(lián)網(wǎng)中承上啟下的作用,以達(dá)到減少人工、提高設(shè)備智能化的需求[3]。
本文介紹邊緣設(shè)備實(shí)現(xiàn)一種現(xiàn)場(chǎng)總線(xiàn) —— PROFINET通信的過(guò)程,是邊緣設(shè)備實(shí)現(xiàn)其網(wǎng)關(guān)通信功能的重要組成部分,與其他現(xiàn)場(chǎng)總線(xiàn)通信有異曲同工之妙,是工業(yè)物聯(lián)網(wǎng)開(kāi)發(fā)與應(yīng)用的重要技術(shù)儲(chǔ)備。
2 邊緣設(shè)備及CODESYS平臺(tái)介紹
2.1 邊緣設(shè)備介紹
邊緣設(shè)備采用i.MX8M Mini EVK平臺(tái),具有業(yè)界領(lǐng)先的音頻和視頻功能,可用于開(kāi)發(fā)高性能和靈活的應(yīng)用程序。
i.MX8M系列的應(yīng)用處理器基于Arm? Cortex?-A53 和Cortex-M4內(nèi)核,i.MX8M Mini系列采用高性能、 4x Cortex-A53+ Cortex-M4核心處理器,處理器運(yùn)行速度高達(dá)1.8GHz,支持16位LPDDR4。其內(nèi)部集成了電源管理、安全單元和豐富的互聯(lián)接口,具有高性能、低功耗、靈活的內(nèi)存選項(xiàng)和高速接口。它為物聯(lián)網(wǎng)應(yīng)用提供了一種安全、高性能的解決方案。它有LPDDR4、eMMC、QSPI和SD Micro內(nèi)存選項(xiàng)、10/100/1000以太網(wǎng)端口、USB 3.0連接器和PCIe高速接口,非常適合連接的高性能嵌入式應(yīng)用程序。對(duì)于音頻、視頻和HMI評(píng)估,它提供HDMI 2.0a Type-A和MIPI-DSI接口,以及高達(dá)768kHz采樣率的32位音頻樣本、音頻接口擴(kuò)展接口和耳機(jī)3.5毫米音頻插孔[4]。
2.2 CODESYS平臺(tái)介紹
CODESYS軟件工具是一款基于先進(jìn)的.NET架構(gòu)和IEC 61131-3國(guó)際編程標(biāo)準(zhǔn)的、面向工業(yè)4.0及物聯(lián)網(wǎng)應(yīng)用的軟件開(kāi)發(fā)平臺(tái)。具有標(biāo)準(zhǔn)化、開(kāi)放式、可重構(gòu)、良好的可移植性、強(qiáng)大的通信功能、支持第三方開(kāi)發(fā)工具等特點(diǎn)。CODESYS Runtime可以將任何嵌入式平臺(tái)或
工業(yè)PC轉(zhuǎn)化為基于IEC 61131-3標(biāo)準(zhǔn)的控制器[5],并且開(kāi)放Runtime接口,以便根據(jù)行業(yè)需求及功能需要進(jìn)行二次化開(kāi)發(fā)[5]。圖1為CODESYS Runtime系統(tǒng)架構(gòu)。
圖1 CODESYS Runtime系統(tǒng)架構(gòu)圖
3 系統(tǒng)設(shè)計(jì)
3.1 Linux系統(tǒng)搭建
將Linux系統(tǒng)進(jìn)行編譯后,移植到i.MX8M嵌入式處理器中,并打入實(shí)時(shí)系統(tǒng)補(bǔ)丁,RT-Linux系統(tǒng)可以穩(wěn)定運(yùn)行,提供了操作平臺(tái)和測(cè)試環(huán)境。
首先,下載內(nèi)核源碼到本地目錄imx-yocto-bsp, 在下載過(guò)程中,按提示安裝所需要的依賴(lài)庫(kù),然后編譯源碼,命令如下所示:
其次,打RT-Linux實(shí)時(shí)系統(tǒng)補(bǔ)丁,下載與內(nèi)核版本一致的RT Linux補(bǔ)丁文件進(jìn)入內(nèi)核目錄,運(yùn)行命令patch -p1 < ../patch-4.14.93-rt53.patch。安裝補(bǔ)丁成功后,運(yùn)行命令bitbake -c menuconfig virtual/ kernel,在內(nèi)核配置中,選擇RT選項(xiàng)。運(yùn)行命令bitbake fsl-image-validation-imx編譯內(nèi)核。
然后,將固件下載到開(kāi)發(fā)板。NXP i.MX8M Mini主要通過(guò)開(kāi)源工具uuu燒錄固件。下載官方系統(tǒng)鏡像文件,解壓后將其中的rootfs.sdcard系統(tǒng)鏡像替換成剛才編譯好的新的系統(tǒng)鏡像,需改uuu.auto文件中鏡像文件名稱(chēng),與新編譯的鏡像文件一致。數(shù)據(jù)線(xiàn)連接到開(kāi)發(fā)板下載接口,撥碼開(kāi)關(guān)調(diào)到“1010xxxxxx”, 運(yùn)行sudo ./uuu uuu.atuo,開(kāi)發(fā)板上電,進(jìn)行固件燒錄。
最后,編譯工具鏈,運(yùn)行如下命令:
添加環(huán)境變量后,可進(jìn)行交叉編譯。至此,邊緣設(shè)備Linux系統(tǒng)搭建完成。
3.2 基于CODESYS組網(wǎng)配置
在CODESYS的IDE軟件中,添加PROFINET主從 站,完成網(wǎng)絡(luò)配置、變量添加和程序設(shè)計(jì)。組網(wǎng)配置流程圖如圖2所示。
圖2 CODESYS組網(wǎng)配置流程圖
新建工程,在設(shè)備下拉菜單中選擇本邊緣設(shè)備,選擇編程語(yǔ)言、梯形圖或者ST語(yǔ)言等。
設(shè)置設(shè)備網(wǎng)關(guān),通用設(shè)置中掃描網(wǎng)絡(luò),獲取到在當(dāng)前網(wǎng)絡(luò)中的邊緣設(shè)備,邊緣設(shè)備節(jié)點(diǎn)名,物理地址等信息。
添加PROFINET主站,先添加一個(gè)Ethernet以太網(wǎng)適配器,再在適配器下添加PROFINET主站得到PN 控制器。然后設(shè)置Ethernet網(wǎng)絡(luò)適配器的網(wǎng)絡(luò)接口、IP地址、子網(wǎng)掩碼、默認(rèn)網(wǎng)關(guān)等,再設(shè)置PROFINET主站控制器的IP地址范圍、子網(wǎng)掩碼和默認(rèn)網(wǎng)關(guān)。
添加從站設(shè)備描述文件,添加成功后,PN控制器通過(guò)掃描設(shè)備,獲取到從站設(shè)備,并添加從站設(shè)備。在從站設(shè)備下,添加報(bào)文。PROFINET總線(xiàn)協(xié)議的報(bào)文種 類(lèi)因從站設(shè)備不同而異,選擇適當(dāng)?shù)膱?bào)文。
添加程序文件POU,并在POU中添加本地變量, 將本地變量與報(bào)文中的地址變量互相關(guān)聯(lián)。
將程序編譯,無(wú)報(bào)錯(cuò)的情況下下載到邊緣設(shè)備中。
3.3 PROFINET報(bào)文解析
由于本文選用的是西門(mén)子V90伺服驅(qū)動(dòng),報(bào)文111,西門(mén)子V90伺服驅(qū)動(dòng)基于基本定位器控制模式的報(bào)文如表1所示,通過(guò)設(shè)定PZD(過(guò)程數(shù)據(jù)區(qū))的值, 對(duì)伺服驅(qū)動(dòng)下達(dá)指令,控制驅(qū)動(dòng)器,從而控制電機(jī)運(yùn)動(dòng)。不同報(bào)文PZD的定義有所差別,這里對(duì)報(bào)文111的PZD進(jìn)行解析[6]。
表1 基本定位器控制模式的報(bào)文
如表2所示為P ZD1即STW1(控制字1)的定義,STW1的作用是給伺服驅(qū)動(dòng)使能信號(hào),STW1.0為低位,STW1.5為高位,先給STW1賦值0100 00111110,再賦值0100 0011 1111,伺服驅(qū)動(dòng)使能。
表2 STW1(控制字1)的定義圖
如表3為POS_STW2(定位控制字2)和POS_ TW1(定位控制字1)的定義,將POS_STW2和POS_ STW1分別賦值后,設(shè)定位置、速度、加速度等值方可生效。POS_STW2賦值1100 0000 0010 0011,POS_STW1賦值1001 0011 0000 0000。
表3 POS_STW2和POS_STW1定義
如表4為V90伺服驅(qū)動(dòng)位置、速度、加速度等控制字的定義,PZD7為位置設(shè)定值的低位,PZD6為位置設(shè)定值的高位,PZD9為MDI速度設(shè)定值的低位,PZD8為MDI速度設(shè)定值的高位,PZD10、PZD11分別為加速度、減速度的設(shè)定值。
表4 位置、速度、加速度控制字的定義
其他控制字,PDZ4(STW2)設(shè)置為0, OVERRIDE設(shè)置為0~32767范圍的任意值。
4 應(yīng)用驗(yàn)證
以邊緣設(shè)備為主站,西門(mén)子V90伺服驅(qū)動(dòng)為從站, 控制某電機(jī)運(yùn)動(dòng),實(shí)現(xiàn)邊緣設(shè)備PROFINET通信,驗(yàn)證邊緣設(shè)備通過(guò)PROFINET現(xiàn)場(chǎng)總線(xiàn)對(duì)伺服驅(qū)動(dòng)的控制功能。
如圖3為應(yīng)用驗(yàn)證的設(shè)備連接示意圖。
圖3 設(shè)備連接示意圖
如圖4為網(wǎng)頁(yè)版控制伺服驅(qū)動(dòng)人機(jī)界面圖,輸入位置、速度、加速度等值,點(diǎn)擊使能按鈕,伺服驅(qū)動(dòng)上電使能,點(diǎn)擊正轉(zhuǎn)、反轉(zhuǎn),按設(shè)定值轉(zhuǎn)動(dòng)。
圖4 運(yùn)動(dòng)控制人機(jī)交互界面
5 結(jié)論
本文實(shí)現(xiàn)了基于邊緣設(shè)備的PROFINET現(xiàn)場(chǎng)總線(xiàn)通信功能,以Arm CortexA53為內(nèi)核搭載Linux系統(tǒng)的邊緣設(shè)備作為主站,以西門(mén)子V90伺服驅(qū)動(dòng)器作為從站,通過(guò)PROFINET現(xiàn)場(chǎng)總線(xiàn)協(xié)議,控制電機(jī)運(yùn)動(dòng),驗(yàn)證了邊緣設(shè)備PROFINET現(xiàn)場(chǎng)總線(xiàn)通信的可行性,為邊緣設(shè)備作為工業(yè)現(xiàn)場(chǎng)設(shè)備網(wǎng)關(guān)提供了技術(shù)支撐。
作者簡(jiǎn)介:
何昭巖(1991-),男,吉林人,工程師,碩士,現(xiàn)就職于中國(guó)航空制造技術(shù)研究院,從事嵌入式、邊緣計(jì)算、工業(yè)網(wǎng)絡(luò)與自動(dòng)化等研究工作。
鄒 方(1965-),男,湖南婁底人,研究員,碩士, 現(xiàn)就職于中國(guó)航空制造技術(shù)研究院,從事智能制造基礎(chǔ)技術(shù)、系統(tǒng)控制與集成技術(shù)、邊緣計(jì)算、工業(yè)網(wǎng)絡(luò)與自動(dòng)化等研究工作。獲國(guó)防和發(fā)明專(zhuān)利6項(xiàng),獲部級(jí)科學(xué)技術(shù)進(jìn)步一、二、三等獎(jiǎng)多項(xiàng),在國(guó)家級(jí)科技核心期刊發(fā)表論文20多篇。
秦玉波(1988-),男,河北邯鄲人,高級(jí)工程師,碩士,現(xiàn)就職于中國(guó)航空制造技術(shù)研究院,從事嵌入式、邊緣計(jì)算、工業(yè)網(wǎng)絡(luò)與自動(dòng)化等研究工作。
蘇安東(1993-),男,河南新鄉(xiāng)人,工程師,碩士,現(xiàn)就職于中國(guó)航空制造技術(shù)研究院,從事工業(yè)互聯(lián)網(wǎng)、邊緣計(jì)算方向技術(shù)研究。
參考文獻(xiàn):
[1] 王瀚博, 羅亮, 劉知貴, 范玉德. 基于嵌入式軟PLC技術(shù)的運(yùn)動(dòng)控制功能塊的研究[J]. 組合機(jī)床與自動(dòng)化加工技術(shù), 2017, (02) : 94 - 97.
[2] 唐杰, 馬亮, 閔利昆, 梁瀟. 工業(yè)物聯(lián)網(wǎng)網(wǎng)關(guān)的研究與實(shí)現(xiàn)[J]. 自動(dòng)化博覽, 2020, 37 (01) : 78 - 80.
[3] 郭奕鑫, 劉江帆. 基于CODESYS的EtherCAT總線(xiàn)控制系統(tǒng)設(shè)計(jì)[J]. 現(xiàn)代工業(yè)經(jīng)濟(jì)和信息化, 2018, 8 (12) : 40 - 41.
[4] i.MX8M Mini EVK Fact Sheet[Z].
[5] 賀斌, 胡健. 基于軟PLC的多協(xié)議通信系統(tǒng)的研究與實(shí)現(xiàn)[J]. 機(jī)械工程與自動(dòng)化, 2019, (05) : 180 – 181, 184.
[6] V90_PN_1FL6_op_instr_1218_zh-CHS[Z].
摘自《自動(dòng)化博覽》2021年2月刊