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

        ?

        基于多核處理器的PLC控制程序并行執(zhí)行

        2017-01-18 01:59:43王慧鋒干玲劍
        關(guān)鍵詞:功能塊控制程序列表

        王慧鋒, 干玲劍

        (華東理工大學(xué)化工過程先進控制與優(yōu)化教育部重點實驗室, 上海 200237)

        基于多核處理器的PLC控制程序并行執(zhí)行

        王慧鋒, 干玲劍

        (華東理工大學(xué)化工過程先進控制與優(yōu)化教育部重點實驗室, 上海 200237)

        針對可編程邏輯控制器(Programmable Logic Controller,PLC)的編程語言不支持程序的并行編譯,無法使控制程序并行執(zhí)行于多核處理器的問題,根據(jù)功能塊圖的可拆分性,提出了用有向無環(huán)圖(Directed Acyclic Graph,DAG)任務(wù)模型表示PLC控制程序的方法,并采用靜態(tài)列表任務(wù)調(diào)度算法,優(yōu)化DAG中的任務(wù)節(jié)點在不同CPU核上的分配調(diào)度,解決了PLC控制程序并行執(zhí)行時會遇到的通信延時問題。此外,針對變量資源的競爭問題提出了使用互斥量的方法。實驗結(jié)果表明,此方法能有效地將PLC控制程序并行運行在多核處理器上,大大縮短了程序的執(zhí)行時間。

        多核處理器; 并行執(zhí)行; 有向無環(huán)圖; PLC控制程序; 靜態(tài)列表任務(wù)調(diào)度算法

        PLC是一種抗干擾能力強、可靠性高、使用靈活的基于單核處理器的控制系統(tǒng),已廣泛應(yīng)用于鋼鐵、石油、化工、機械制造、汽車等各個行業(yè)[1]。縮短PLC控制程序的執(zhí)行時間是提高PLC性能的主要方法,目前國內(nèi)外學(xué)者研究設(shè)計了將程序移植到具有并行執(zhí)行能力的FPGA上運行的方法[2-4],通過并行執(zhí)行梯形圖來縮短執(zhí)行時間從而大幅度提高PLC的響應(yīng)速度。多核處理器能夠通過多個CPU核進行并行計算來減少程序的執(zhí)行時間,但是目前針對控制程序在多核處理器上的并行執(zhí)行的研究相對較少。在工業(yè)控制領(lǐng)域中,PLC控制程序的開發(fā)設(shè)計通常遵循IEC61131-3工業(yè)標(biāo)準[5],而IEC61131-3標(biāo)準規(guī)定的編程語言不支持程序的并行編譯[6],即PLC工程師設(shè)計的控制程序只能運行于單核處理器上,無法直接在多核處理器上并行運行。為了充分發(fā)揮多核處理器在工業(yè)控制領(lǐng)域的優(yōu)勢,設(shè)計使PLC控制程序在多核處理器上并行執(zhí)行的方法具有重要現(xiàn)實意義。

        本文從函數(shù)層面根據(jù)功能塊圖可拆分的特性,考慮PLC控制程序中功能塊之間的依賴關(guān)系,提出了一種基于DAG任務(wù)模型的方法。用DAG表示PLC控制程序,然后將基于靜態(tài)列表的任務(wù)分配調(diào)度算法運用至PLC控制程序的在多核處理器上并行執(zhí)行中,實現(xiàn)了控制程序的整體執(zhí)行時間的縮短,同時也解決了PLC控制程序?qū)嶋H并行運行在多核處理器上時會遇到的通信延時問題。此外,本文還針對變量資源的競爭問題提出了采用互斥量的方法。

        1 多核硬件平臺結(jié)構(gòu)

        多核硬件平臺結(jié)構(gòu)對PLC控制程序的并行執(zhí)行有至關(guān)重要的影響,例如處理器的CPU核數(shù)和通信機制會影響控制程序的執(zhí)行時間和通信時間。多核硬件平臺結(jié)構(gòu)一般用拓撲圖TG=(P,N),其中P表示內(nèi)核節(jié)點集合,N表示連接內(nèi)核的邊集合。本文主要研究總線共享的同構(gòu)多核處理器,它的各個CPU核處理速度相同,任意兩個CPU核間的通信速率相等。如圖1所示,m個CPU核掛載在共享總線上。本文設(shè)定同構(gòu)多核處理器是全連通的,此時拓撲圖可表示為TG=P。

        圖1 總線共享的緩存結(jié)構(gòu)Fig.1 Cache structure with shared bus

        2 PLC控制程序模型

        2.1 概述

        在自動化領(lǐng)域,工業(yè)控制程序通常使用IEC61133-3或IEC61499[7]標(biāo)準進行建模。功能塊圖是IEC61133-3標(biāo)準提出的一種最具發(fā)展?jié)摿Φ木幊陶Z言,它能夠形象地描述程序的并行性,具有功能塊結(jié)構(gòu)簡單、有利于程序的結(jié)構(gòu)化設(shè)計和滿足代碼重復(fù)利用的需求的優(yōu)點。此外,功能塊圖程序具有良好的可拆分性,能夠分段運行于多個CPU核上。因此,本文采用功能塊圖作為PLC控制程序模型。此外,控制系統(tǒng)提出的其他組件模型(例如FASA[8],Procom[9])也可以很容易地轉(zhuǎn)換成這種模型。

        2.2 功能塊圖模型

        在模型中,控制程序被模擬為由功能塊和連接線組成的一個網(wǎng)絡(luò)。功能塊主要分為復(fù)合功能塊和基本功能塊兩種,其中復(fù)合功能塊由其他復(fù)合功能塊或基本功能塊組成,所有的功能塊都由存儲信息的變量和處理信息的指令組成。功能塊之間通過輸入和輸出變量進行連接,發(fā)送功能塊的輸出變量通過信號連接到一個接收功能塊的輸入變量,這種方式使得功能塊之間具有依賴關(guān)系。在一段PLC控制程序中,在確定變量α的值之前,必須先確定變量β的值,則稱α依賴于β,這種關(guān)系為依賴關(guān)系。依賴關(guān)系是分析控制程序邏輯的基礎(chǔ)。

        閥門控制是工業(yè)控制中比較經(jīng)典的案例,在工業(yè)生產(chǎn)過程中具有廣泛的應(yīng)用。本文以閥門控制為例介紹使PLC控制程序并行執(zhí)行的方法,圖2所示為閥門控制的一種功能塊圖(FBD)。

        2.3 拆分PLC控制程序

        為了使PLC控制程序能夠并行編譯,本文采用Beremiz開源軟件將控制程序中的功能塊圖轉(zhuǎn)化為C語言代碼,但是,此工具得到的C代碼是串行單線程的,并且只能運行在單核處理器上。為了能夠使控制程序并行運行,先對功能塊圖的結(jié)構(gòu)進行分析,然后以功能塊為單位將控制程序離散化。

        首先遍歷生成的C代碼,得到PLC控制程序中包含的所有功能塊信息,包括功能塊的名字、輸入與輸出變量以及信號連接線。根據(jù)這些信息,將功能塊圖中的信號連線轉(zhuǎn)換成變量,并且保證每個功能塊引腳上均存在變量。圖3示出了拆分PLC控制程序為各個單獨的功能塊結(jié)構(gòu)的具體流程。

        在拆分PLC控制程序時,需要重點考慮的是信號連接線中的分支結(jié)構(gòu)。在分支結(jié)構(gòu)中,主連接線與各個分支的能流完全相同,因而需要為與分支及主干相連的所有功能塊添加相同的變量。以閥門控制程序(圖2)中的節(jié)點2、3、4所形成的分支結(jié)構(gòu)為例,其信號連接線的替換結(jié)果如圖4所示。

        圖2 閥門控制程序的功能塊圖Fig.2 FBD of the valve control program

        圖3 功能塊圖拆分流程圖Fig.3 Flowchart of splitting FBD

        2.4 功能塊之間的依賴關(guān)系

        為了使拆分后的功能塊能夠有序地并行執(zhí)行,還需要對PLC控制程序進行依賴關(guān)系分析。通過遍歷拆分后的所有功能塊的輸入輸出變量,找到具有相同變量名稱的輸入變量和輸出變量的不同功能塊或者同一個功能塊(考慮功能塊有自循環(huán)的可能性),得到功能塊之間的依賴關(guān)系,從而決定功能塊之間的執(zhí)行順序。

        圖4 功能塊圖拆分實例Fig.4 Example of splitting FBD

        此外,為了解決不同功能塊在同一個核上或不同核上進行通信的問題,將多個功能塊公共讀寫的變量設(shè)為全局變量。如果某個功能塊改變了全局變量的值,它將影響到可以訪問該變量的其他功能塊,從而功能塊之間實現(xiàn)了數(shù)據(jù)的傳遞。

        3 DAG任務(wù)模型

        3.1 DAG的基本概念

        一個有向無環(huán)圖G一般表示為一個二元組G=(T,V),其中T={τ1,τ2,τ3,…,τn} 表示圖中任務(wù)節(jié)點τ的集合,τi表示第i個任務(wù),τi的權(quán)值w(τi)為任務(wù)i的執(zhí)行時間。V為圖中所有有向邊的集合,給定兩個節(jié)點τi,τj∈T,vij表示從起點τi到終點τj的邊,邊表示任務(wù)之間的依賴關(guān)系,邊上的權(quán)值c(vij)代表通信時間。前驅(qū)節(jié)點定義為pred(τi)={τx∈T:vxi∈V},后繼節(jié)點定義為succ(τi)={τx∈T:vix∈V}。此外,滿足pred(τi)=?的節(jié)點τi稱為源點,而滿足succ(τi)=?的節(jié)點稱為匯點。

        3.2 從功能塊圖到DAG

        功能塊圖與DAG是非常相似的,功能塊可以直接映射為DAG中的一個任務(wù)節(jié)點,功能塊之間的依賴關(guān)系可以由DAG中的有向邊來保存,功能塊的執(zhí)行時間也會被繼承下來。由于本文主要考慮控制程序的并行執(zhí)行問題,因此閥門控制程序中的各個功能塊的執(zhí)行時間使用文獻[8]測量得出的結(jié)果,分別為:節(jié)點0為14 μs,節(jié)點1為6 μs,節(jié)點2為17 μs,節(jié)點3為9 μs,節(jié)點4為8 μs,節(jié)點5為9 μs,節(jié)點6為6 μs。為了使功能塊圖能夠準確地轉(zhuǎn)化為對應(yīng)的DAG,還需要解決以下一些問題:

        (1) 有向無環(huán)圖中的任務(wù)節(jié)點之間是不存在循環(huán)的,而PLC控制程序中通常會存在內(nèi)部循環(huán)體。事實上,由于記錄功能塊間關(guān)系的全局變量的值是可以向后傳遞的,也就是說存在內(nèi)部循環(huán)的功能塊之間的數(shù)據(jù)反向傳遞是自動完成的,不需要用有向邊單獨表示出來,但是為了補償更新數(shù)據(jù)帶來的附加延遲,在DAG中需要添加一個虛擬節(jié)點。

        (2) DAG中的任務(wù)節(jié)點通常沒有復(fù)合結(jié)構(gòu),而一個功能塊可以擁有多個層級。本文的解決方案是將復(fù)合功能塊作為一個任務(wù)節(jié)點,使復(fù)合功能塊中的所有基本功能塊分配到同一個CPU核上執(zhí)行,節(jié)點的執(zhí)行時間等于它所包含的基本功能塊串行執(zhí)行時間的總和。

        全局變量一般存儲在主存儲器中,而訪問主存儲器通常會有幾百個時鐘周期的延遲。假設(shè)處理器的主頻是1 GHz,訪問主存儲器的通信延遲大約為1 000個時鐘周期,在不考慮緩存結(jié)構(gòu)的情況下,通信的延遲時間為1 μs,因此閥門控制程序的DAG中所有邊的權(quán)值都為1 μs。閥門控制程序的DAG表示如圖5所示。

        圖5 閥門控制程序的DAGFig.5 DAG of valve control program

        4 DAG的調(diào)度

        4.1 調(diào)度基本概念

        在將一個由功能塊組成的PLC控制程序轉(zhuǎn)換成DAG后,需要解決的是DAG調(diào)度問題,即給DAG中每個任務(wù)節(jié)點合理地分配一個CPU核并且賦予一個開始時刻。節(jié)點τi∈T在CPU核p∈P上的開始時刻記為ts(τi,p),則結(jié)束時刻可表示為

        (1)

        其中w(τi,p)是τi在p上的運行時間。

        在多核處理器TG=(P,N)上對有向無環(huán)圖G=(T,V)的調(diào)度S一般可以描述如下:

        所有節(jié)點的最晚結(jié)束時刻為S的調(diào)度長度,即程序的執(zhí)行時間為

        (2)

        其中proc(τi)表示分配給τi的CPU核。

        當(dāng)一個節(jié)點的所有輸入邊結(jié)束通信時,該節(jié)點才可以開始在CPU核上執(zhí)行,稱該時刻為數(shù)據(jù)就緒時刻(Data Ready Time,DRT)。DRT是一個節(jié)點可以開始的最早時刻,可表示為

        (3)

        其中:tf(vij,proc(τi),p)為邊vij∈V的通信結(jié)束時間;p為分配給τj的CPU核。

        由于只有當(dāng)邊的起點和終點節(jié)點分配在不同CPU核上時,才會進行核間通信,因此DAG中邊vij的結(jié)束時刻可表示為

        (4)

        如果τi沒有輸入邊,即τi為源點,那么對所有的p∈P,tdr(τi,p)=0。

        對節(jié)點進行調(diào)度通常使用插入技術(shù)[10],使用該技術(shù)需要滿足以下節(jié)點調(diào)度條件:

        假定[A,B](A,B∈[0,])是CPU核p上的一個空閑時間區(qū)間,則當(dāng)max{A,tdr(τi,p)}+w(τi,p)≤B時,τi可以安排在p上的[A,B]區(qū)間內(nèi)。此時τi在p上的開始時刻為

        (5)

        4.2 靜態(tài)列表調(diào)度算法

        一般性的多核任務(wù)分配以及調(diào)度問題已經(jīng)被驗證是NP難題[11-12],因此很多文獻研究啟發(fā)式方法,期望得到一個近似最優(yōu)的結(jié)果。靜態(tài)列表調(diào)度算法[10]具有時間復(fù)雜度低、實用性強、易于實現(xiàn)等特點,因此本文采用該方法來優(yōu)化DAG任務(wù)節(jié)點的調(diào)度,具體步驟如下:

        算法1:Static_List_Scheduling(G,TG)

        輸入:DAGG=(T,V)和拓撲圖TG=P

        輸出:G在TG上的調(diào)度

        (1) NodeList←Sort_Nodes(T);

        (2) for eachn∈NodeList do

        (3)pbest←Select_Processor(n,P);

        (4) Schedule_Node(n,pbest);

        (5) end

        Sort_Nodes()函數(shù)根據(jù)DAG中任務(wù)節(jié)點的依賴關(guān)系來確定所有節(jié)點的優(yōu)先級,并建立調(diào)度列表。因為任務(wù)節(jié)點的優(yōu)先級決定了任務(wù)的執(zhí)行先后順序,列表中節(jié)點的次序會影響調(diào)度結(jié)果。文獻[13]的實驗結(jié)果表明,使用bottom level作為優(yōu)先級進行節(jié)點排序的列表調(diào)度方法優(yōu)于其他方法,因此本文使用的靜態(tài)節(jié)點排序準則是按照節(jié)點的 bottom level 進行降序排列,如果兩個節(jié)點具有相同的bottom level,那么隨機排列各節(jié)點。

        本文采用computation bottom level[13]方法確定節(jié)點的優(yōu)先級。節(jié)點的computation bottom level是指從該節(jié)點出發(fā)到任意一個匯點的只包括節(jié)點權(quán)重的最長路徑的長度。在定義computation bottom level時不考慮邊的權(quán)重,它可以用式(6)遞歸定義。

        (6)

        在得到調(diào)度列表之后,Select_Processor()函數(shù)會結(jié)合插入技術(shù)給DAG中每個任務(wù)節(jié)點分配一個合適的CPU核,具體步驟如下:

        算法2:Select_Processor(n,P)

        輸入:節(jié)點n∈T和CPU核的集合P

        輸出:運行輸入節(jié)點n的最佳CPU核pbest

        (1)tmin←;pmin←NULL

        (2) for eachp∈Pdo

        (3) iftmin>max{tdr(n,p),tf(p)} then

        (4)tmin←max{tdr(n,p),tf(p)};pmin←P

        (5) end if

        (6)end for

        (7)proc(n)←pmin

        以閥門控制程序為例,使用靜態(tài)列表調(diào)度算法調(diào)度分配DAG到四核處理器上的結(jié)果如圖6所示。

        圖6 靜態(tài)列表調(diào)度算法的分配結(jié)果Fig.6 Allocation of static list scheduling algorithm

        5 PLC控制程序并行執(zhí)行時的若干問題

        5.1 變量資源的競爭問題

        在控制程序中不同的功能塊經(jīng)常會對相同的變量進行寫操作,即包含同一個輸出變量。當(dāng)功能塊被分配到不同的CPU核上時,功能塊的同時運行會導(dǎo)致變量資源的競爭,降低多核處理器的性能,甚至比單核處理器還要差。為保證程序的正常運行和數(shù)據(jù)的完整性,需要使用同步訪問技術(shù),保證變量在任何時刻,最多有一個功能塊訪問。

        本文采用互斥對象機制實現(xiàn)變量的同步。只有擁有互斥對象的功能塊才有訪問公共變量的權(quán)限,因為互斥對象只有一個,所以能保證公共變量不會同時被多個功能塊訪問。具體的工作機制如圖7所示。

        圖7 互斥對象機制Fig.7 Mutex mechanism

        本文設(shè)計了一個實驗來驗證該方法的可行性。實驗中有兩個主要的功能塊:一個是向上計數(shù),另一個是向下計數(shù),它們會對同一個公共變量進行寫操作。拆分后的兩個功能塊示意圖如圖8所示,在雙核處理器上的運行結(jié)果如圖9所示。從運行結(jié)果中可知,向上計數(shù)和向下計數(shù)功能塊可以有序無競爭地對公共變量進行寫操作。

        5.2 通信延時問題

        多核處理器從主存儲器提取數(shù)據(jù)時,數(shù)據(jù)會連同其相鄰字節(jié)作為一個緩存行一起被提取,然后存儲于緩存中。假設(shè)有兩個獨立的緩存,在其中一個緩存中一個緩存行被寫入,而在另一個緩存中該緩存行被讀取,那么即使讀寫的地址不相交,也需要在這兩個緩存之間移動該緩存行。擁有這兩個獨立緩存的不同CPU核必須在存儲總線上傳遞這個緩存行,這將會帶來嚴重的通信延時問題。

        圖8 拆分后的功能塊Fig.8 Divided function blocks

        圖9 雙核處理器上的運行結(jié)果Fig.9 Execution result on two-core processor

        由于本文研究的硬件平臺結(jié)構(gòu)是總線共享的同構(gòu)多核處理器,每個CPU核都擁有獨立的一級緩存,功能塊間的通信是使用全局變量的方式。當(dāng)有依賴關(guān)系的功能塊運行于不同CPU核時,必然會引起全局變量的數(shù)據(jù)值在不同的緩存中跳躍,導(dǎo)致系統(tǒng)性能的衰減。

        靜態(tài)列表調(diào)度算法會為每個任務(wù)節(jié)點選擇能夠提供最早開始時間的CPU核,考慮了核間通信帶來的延遲時間,將有依賴關(guān)系的任務(wù)節(jié)點盡量安排在同一個CPU核上,減少在不同緩存之間的跳躍次數(shù),從而提高系統(tǒng)的性能。

        本文設(shè)計了一個控制程序來驗證靜態(tài)列表調(diào)度算法是否能夠改善通信延時問題以提高控制程序的執(zhí)行時間。拆分后的4個功能塊如圖10所示。

        從圖10可以看出,功能塊間通過全局變量sig、IN1和IN2進行通信,向上計數(shù)功能塊2和向下計數(shù)功能塊依賴于向上計數(shù)功能塊1,而乘法功能塊又同時依賴于向上計數(shù)功能塊2和向下計數(shù)功能塊。當(dāng)4個功能塊分別運行于4個CPU核上時,在4個緩存之間將會有4次跳躍。根據(jù)靜態(tài)列表調(diào)度算法,向上計數(shù)功能塊1和向上計數(shù)功能塊2會被分配到CPU核0上,而向下計數(shù)功能塊和乘法功能被分配到CPU核1上,算法只使用了2個CPU核,在不同緩存之間的跳躍次數(shù)為2,減少了一半。在4個CPU核和2個CPU核上分別運行這個控制程序1 000次,實驗結(jié)果顯示,分配在4個CPU核上的平均執(zhí)行時間為114.571 μs,而使用靜態(tài)列表調(diào)度算法分配在兩個CPU核上的平均執(zhí)行時間為57.976 μs。

        圖10 通信實驗時拆分后的功能塊Fig.10 Divided function blocks of communication experiment

        6 PLC控制程序的并行執(zhí)行實驗及結(jié)果

        6.1 概述

        為了評估本文方法的可行性和性能表現(xiàn),采用C和C++語言編寫代碼實現(xiàn)PLC控制程序的拆分,功能塊圖與DAG的轉(zhuǎn)換以及靜態(tài)列表調(diào)度算法,并且以閥門控制程序為實驗實例,將控制程序并行運行在多核處理器上。

        6.2 硬件平臺的選擇

        本文使用的硬件平臺是英特爾的酷睿4核處理器,滿足本文所提出的硬件平臺模型的所有要求。該平臺使用虛擬機運行64位版本的Ubuntu12.04 LTS操作系統(tǒng)(內(nèi)核版本號為3.6.11)與RT-Preempt補丁(版本號為3.6.11.9)。在Linux系統(tǒng)內(nèi)核的基礎(chǔ)上,加上RT-Preempt補丁,是為了讓Linux系統(tǒng)滿足硬實時的需求。

        6.3 靜態(tài)列表調(diào)度實驗及結(jié)果

        將閥門控制程序串行運行在1個CPU核上作為參考,并且采用4個參數(shù)進行分析:平均執(zhí)行時間(Mean)、最壞執(zhí)行時間(Worst)、最好執(zhí)行時間(Best)和標(biāo)準差(Std)。為了排除實驗的偶然性和隨機性,采集100個實驗數(shù)據(jù)。閥門控制程序在1個CPU核(1C)、2個CPU核(2C(L))、4個CPU核(4C(L))上運行的結(jié)果如表3所示。

        表3 PLC控制程序執(zhí)行時間Table 3 Execution time of PLC control program

        從表3可知,靜態(tài)列表調(diào)度算法根據(jù)CPU核的集合不同給出了不同的調(diào)度結(jié)果。此方法確實有效地縮短了PLC控制程序整體的執(zhí)行時間,其中程序在4個CPU核上并行運行的結(jié)果要優(yōu)于2個CPU核,運行時間分別減少到原來的64.5%和68.5%。

        6.4 控制程序并行執(zhí)行方法比較

        文獻[14]從應(yīng)用層面提出了一種使PLC串行程序并行化的軟件方法。該方法是將一個完整的PLC控制程序作為一個任務(wù)分配到CPU核上執(zhí)行,控制程序中的功能塊是串行執(zhí)行的,實現(xiàn)的是控制應(yīng)用的并行,而本文提出的方法實現(xiàn)了功能塊間的并行,縮短執(zhí)行時間的效果更加顯著。文獻[15]雖然從功能塊層面對并行化方法進行了研究和驗證,但是此文針對的是獨立任務(wù),只有控制程序中數(shù)據(jù)獨立的功能塊才可以在不同核上并行運行,而本文通過構(gòu)建DAG任務(wù)模型和靜態(tài)列表調(diào)度算法可以實現(xiàn)有依賴關(guān)系的功能塊并行執(zhí)行于不同的CPU核上,使控制程序較均勻地分配到各個CPU核上,解決了負載均衡問題。文獻[16]提出了一種將控制程序流水線化的方法,通過流水線式地計算和傳遞數(shù)據(jù)使得程序的掃描周期縮減,此方法充分考慮了功能塊的數(shù)據(jù)依賴關(guān)系,也解決了多核處理器的負載均衡問題,但是沒有減少反而增加了PLC控制程序整體的運行時間。

        7 結(jié)束語

        本文根據(jù)功能塊圖的特性,將DAG模型和靜態(tài)列表調(diào)度算法運用到PLC控制程序在多核處理器上并行執(zhí)行中,并對PLC控制程序并行運行時會遇到的通信延時和變量資源的競爭問題進行了分析并提出有效的解決方法。 實驗結(jié)果表明,此方法有效地將PLC控制程序并行運行在多核處理器上,大大縮短了程序的執(zhí)行時間。本文的工作雖然是針對具有共享總線的緩存結(jié)構(gòu)的同構(gòu)多核處理器與用功能塊圖編寫的PLC控制程序設(shè)計的,但也對其他PLC控制程序模型并行運行在其他結(jié)構(gòu)的多核處理器上具有一定的指導(dǎo)作用。

        [1] DONG Yulin,ZHENG Chunjiao.Design and research of embedded PLC development system[C]//2011 3rd International Conference on IEEE Computer Research and Deve-lopment (ICCRD).Shanghai:IEEE,2011:226-228.

        [2] ICHIKAWA S,AKINAKA M,HATA H.An FPGA implementation of hard-wired sequence control system based on PLC software[J].IEEE Transactions on Electrical and Electronic Engineering,2011,6(4):367-375.

        [3] DU Daoshan,LIU Yadong,GUO Xingu,etal.Study on LD-VHDL conversion for FPGA-based PLC implementation[J].The International Journal of Advanced Manufacturing Technology,2009,40(11/12):1181-1190.

        [4] 羅奎.梯形圖并行編譯研究及其在FPGA上的實現(xiàn)[D].杭州:杭州電子科技大學(xué),2014.

        [5] VAN DER WAL E.Introduction into IEC 1131-3 and PLC open[C]//The Application of IEC 61131 to Industrial Control:Improve Your Bottom Line Through High Value Industrial Control Systems (Ref.No.1999/076),IEE Colloquium on IET.London:IET,1999:2/1-2/8.

        [6] 趙營.PLC并行依賴關(guān)系分解的研究[D].杭州:杭州電子科技大學(xué),2011.

        [7] 楊磊,徐蓉萍.IEC 61499-工業(yè)控制技術(shù)發(fā)展的新階段[J].計算機測量與控制,2002,10(11):721-725.

        [8] ORIOL M,WAHLER M,STEIGER R,etal.FASA:A scalable software framework for distributed control systems[C]//Proceedings of the 3rd International ACM SIGSOFT Symposium on Architecting Critical Systems.USA:A cm,2012:51-60.

        [9] SENTILLES S,VULGARAKIS A,BURET,etal.A component model for control-intensive distributed embedded systems[M]//Component-Based Software Engineering.Berlin Heidelberg:Springer,2008:310-317.

        [10] SINNEN O.Task Scheduling for Parallel Systems[M].USA:John Wiley & Sons,2007.

        [11] SARARKAR V.Partitioning and Scheduling Parallel Programs for Multiprocessors[M].USA:MIT Press,1989.

        [12] GAREY M R,JOHNSON D S.Computers and Intractability:A Guide to the Theory of NP-Completeness [M].San Francisco:W.H.Freeman & Co Ltd,1979.

        [13] SINNEN O,SOUSA L.List scheduling:Extension for contention awareness and evaluation of node priorities for heterogeneous cluster architectures[J].Parallel Computing,2004,30(1):81-101.

        [14] VULGARAKIS A,SHOOJA R,MONOT A,etal.Task synthesis for control applications on multicore platforms[C]//2014 11th International Conference on Information Technology:New Generations (ITNG).Las Vegas:IEEE,2014:229-234.

        [15] CANEDO A,AL-FARUQUE M A.Towards parallel execution of IEC 61131 industrial cyber-physical systems applications[C]//Design,Automation & Test in Europe Conference & Exhibition (DATE).Dresden :IEEE,2012:554-557.

        [16] CANEDO A,LUDWIG H,FARUQUE A,etal.High communication throughput and low scan cycle time with multi/many-core programmable logic controllers[J].Embedded Systems Letters,2014,6(2):21-24.

        Parallel Execution of PLC Control Program Based on Multi-Core Processor

        WANG Hui-feng, GAN Ling-jian

        (Key Laboratory of Advanced Control and Optimization for Chemical Process, Ministry of Education,East China University of Science and Technology, Shanghai 200237, China)

        The programming language for PLC does not support parallel compiling so that the control program cannot run in parallel on multi-core processor.By means of the feature that Functional Block Diagram can be split,a method is proposed in this work,which uses DAG task model to represent the PLC control program to solve this problem.Moreover,static list scheduling algorithm is used to deploy the tasks in DAG for different CPU cores and handle with the problem of communication delay when PLC control program is executing in parallel.Besides,this paper proposes a mutex-based method to resolve the variable resources competition.Experimental results show that these methods succeed in making PLC control program run in parallel and reduce the execution time of the program.

        multi-core processor; parallel execution; directed acyclic graph; PLC control program; static list scheduling algorithm

        1006-3080(2016)06-0820-07

        10.14135/j.cnki.1006-3080.2016.06.012

        2015-12-22

        王慧鋒(1969-),女,哈爾濱人,教授,博士,研究方向為檢測技術(shù)與自動化裝置。

        干玲劍,E-mail:ganlu2@126.com

        TP314

        A

        猜你喜歡
        功能塊控制程序列表
        巧用列表來推理
        學(xué)習(xí)運用列表法
        基于PLC的變電站備用電源自動投入裝置控制程序的研究
        擴列吧
        Ovation系統(tǒng)FIRSTOUT和FIFO跳閘首出比較
        自定義功能塊類型在電解槽聯(lián)鎖中的應(yīng)用
        中國氯堿(2015年9期)2015-11-02 01:03:41
        基于MACSV6.5.2的鍋爐燃盡風(fēng)開關(guān)量調(diào)節(jié)門控制功能塊設(shè)計
        基于PLC數(shù)值處理模塊的PID控制程序研究
        不含3-圈的1-平面圖的列表邊染色與列表全染色
        PLCopen運動控制功能塊的研究與開發(fā)
        18禁在线永久免费观看| 午夜天堂精品一区二区| 在线久草视频免费播放| 亚洲国产精品无码一线岛国| 乱人伦人妻中文字幕无码| 一区二区三区日韩亚洲中文视频 | 国产精品区一区第一页| 精品视频在线观看一区二区三区| 日本a级片一区二区三区| 美国少妇性xxxx另类| 国产99久久亚洲综合精品| 91在线区啪国自产网页| 一区二区三区乱码专区| 久久青青草原精品国产app| 久久精品国产亚洲av成人| 一区二区三区蜜桃在线视频| 丝袜美腿视频一区二区| 欧美大成色www永久网站婷| 真实国产乱视频国语| 亚洲日本国产一区二区三区| 亚洲av福利院在线观看| 国产美女露脸口爆吞精| 国产午夜亚洲精品一级在线| av在线免费观看男人天堂| 97久久综合区小说区图片区| 99久久精品免费看国产情侣| 亚洲天堂av大片暖暖| 成熟人妻换xxxx| 搡老熟女老女人一区二区| 少妇bbwbbw高潮| 久久精品国产亚洲av成人文字| 成人网站免费看黄a站视频| 国产激情久久99久久| 隔壁人妻欲求不满中文字幕| 私人vps一夜爽毛片免费| 又大又粗弄得我出好多水| 韩国免费一级a一片在线| 久久国产精品亚洲婷婷片| 国产高潮国产高潮久久久| 欧美亚洲另类 丝袜综合网| 婷婷久久精品国产色蜜蜜麻豆|