• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

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

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

    王慧鋒, 干玲劍

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

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

    王慧鋒, 干玲劍

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

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

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

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

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

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

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

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

    2 PLC控制程序模型

    2.1 概述

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

    2.2 功能塊圖模型

    在模型中,控制程序被模擬為由功能塊和連接線組成的一個(gè)網(wǎng)絡(luò)。功能塊主要分為復(fù)合功能塊和基本功能塊兩種,其中復(fù)合功能塊由其他復(fù)合功能塊或基本功能塊組成,所有的功能塊都由存儲(chǔ)信息的變量和處理信息的指令組成。功能塊之間通過輸入和輸出變量進(jìn)行連接,發(fā)送功能塊的輸出變量通過信號(hào)連接到一個(gè)接收功能塊的輸入變量,這種方式使得功能塊之間具有依賴關(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代碼是串行單線程的,并且只能運(yùn)行在單核處理器上。為了能夠使控制程序并行運(yùn)行,先對(duì)功能塊圖的結(jié)構(gòu)進(jìn)行分析,然后以功能塊為單位將控制程序離散化。

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

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

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

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

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

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

    圖4 功能塊圖拆分實(shí)例Fig.4 Example of splitting FBD

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

    3 DAG任務(wù)模型

    3.1 DAG的基本概念

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

    3.2 從功能塊圖到DAG

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

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

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

    全局變量一般存儲(chǔ)在主存儲(chǔ)器中,而訪問主存儲(chǔ)器通常會(huì)有幾百個(gè)時(shí)鐘周期的延遲。假設(shè)處理器的主頻是1 GHz,訪問主存儲(chǔ)器的通信延遲大約為1 000個(gè)時(shí)鐘周期,在不考慮緩存結(jié)構(gòu)的情況下,通信的延遲時(shí)間為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)度基本概念

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

    (1)

    其中w(τi,p)是τi在p上的運(yùn)行時(shí)間。

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

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

    (2)

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

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

    (3)

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

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

    (4)

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

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

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

    (5)

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

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

    算法1:Static_List_Scheduling(G,TG)

    輸入:DAGG=(T,V)和拓?fù)鋱DTG=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é)點(diǎn)的依賴關(guān)系來確定所有節(jié)點(diǎn)的優(yōu)先級(jí),并建立調(diào)度列表。因?yàn)槿蝿?wù)節(jié)點(diǎn)的優(yōu)先級(jí)決定了任務(wù)的執(zhí)行先后順序,列表中節(jié)點(diǎn)的次序會(huì)影響調(diào)度結(jié)果。文獻(xiàn)[13]的實(shí)驗(yàn)結(jié)果表明,使用bottom level作為優(yōu)先級(jí)進(jìn)行節(jié)點(diǎn)排序的列表調(diào)度方法優(yōu)于其他方法,因此本文使用的靜態(tài)節(jié)點(diǎn)排序準(zhǔn)則是按照節(jié)點(diǎn)的 bottom level 進(jìn)行降序排列,如果兩個(gè)節(jié)點(diǎn)具有相同的bottom level,那么隨機(jī)排列各節(jié)點(diǎn)。

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

    (6)

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

    算法2:Select_Processor(n,P)

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

    輸出:運(yùn)行輸入節(jié)點(diǎn)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

    以閥門控制程序?yàn)槔?使用靜態(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í)行時(shí)的若干問題

    5.1 變量資源的競爭問題

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

    本文采用互斥對(duì)象機(jī)制實(shí)現(xiàn)變量的同步。只有擁有互斥對(duì)象的功能塊才有訪問公共變量的權(quán)限,因?yàn)榛コ鈱?duì)象只有一個(gè),所以能保證公共變量不會(huì)同時(shí)被多個(gè)功能塊訪問。具體的工作機(jī)制如圖7所示。

    圖7 互斥對(duì)象機(jī)制Fig.7 Mutex mechanism

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

    5.2 通信延時(shí)問題

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

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

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

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

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

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

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

    圖10 通信實(shí)驗(yàn)時(shí)拆分后的功能塊Fig.10 Divided function blocks of communication experiment

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

    6.1 概述

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

    6.2 硬件平臺(tái)的選擇

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

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

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

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

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

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

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

    7 結(jié)束語

    本文根據(jù)功能塊圖的特性,將DAG模型和靜態(tài)列表調(diào)度算法運(yùn)用到PLC控制程序在多核處理器上并行執(zhí)行中,并對(duì)PLC控制程序并行運(yùn)行時(shí)會(huì)遇到的通信延時(shí)和變量資源的競爭問題進(jìn)行了分析并提出有效的解決方法。 實(shí)驗(yàn)結(jié)果表明,此方法有效地將PLC控制程序并行運(yùn)行在多核處理器上,大大縮短了程序的執(zhí)行時(shí)間。本文的工作雖然是針對(duì)具有共享總線的緩存結(jié)構(gòu)的同構(gòu)多核處理器與用功能塊圖編寫的PLC控制程序設(shè)計(jì)的,但也對(duì)其他PLC控制程序模型并行運(yùn)行在其他結(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上的實(shí)現(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].計(jì)算機(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-),女,哈爾濱人,教授,博士,研究方向?yàn)闄z測技術(shù)與自動(dòng)化裝置。

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

    TP314

    A

    猜你喜歡
    功能塊控制程序列表
    巧用列表來推理
    學(xué)習(xí)運(yùn)用列表法
    基于PLC的變電站備用電源自動(dòng)投入裝置控制程序的研究
    擴(kuò)列吧
    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è)計(jì)
    基于PLC數(shù)值處理模塊的PID控制程序研究
    不含3-圈的1-平面圖的列表邊染色與列表全染色
    PLCopen運(yùn)動(dòng)控制功能塊的研究與開發(fā)
    欧美一区二区亚洲| 亚洲av日韩在线播放| 国内少妇人妻偷人精品xxx网站| 日本色播在线视频| 国产精品爽爽va在线观看网站| 久久青草综合色| 97热精品久久久久久| 亚洲精品日本国产第一区| 成人特级av手机在线观看| 国产精品爽爽va在线观看网站| 国产免费视频播放在线视频| 免费黄色在线免费观看| 男女无遮挡免费网站观看| 精品酒店卫生间| 亚洲精品自拍成人| 免费久久久久久久精品成人欧美视频 | 亚洲av成人精品一二三区| 2018国产大陆天天弄谢| av不卡在线播放| 纯流量卡能插随身wifi吗| 日本欧美视频一区| 熟女电影av网| 欧美日韩视频精品一区| 免费大片18禁| 人妻少妇偷人精品九色| 久久精品熟女亚洲av麻豆精品| 亚洲国产日韩一区二区| 久久久午夜欧美精品| 一本—道久久a久久精品蜜桃钙片| 成人影院久久| 亚洲人与动物交配视频| 亚洲av不卡在线观看| 欧美一级a爱片免费观看看| 国产精品不卡视频一区二区| 午夜福利网站1000一区二区三区| 国产成人91sexporn| 观看美女的网站| 五月天丁香电影| 久久久久久久久久久丰满| 一个人看视频在线观看www免费| 日本-黄色视频高清免费观看| 男女边摸边吃奶| 在线观看三级黄色| 春色校园在线视频观看| 久久久久久久亚洲中文字幕| 亚洲欧美精品自产自拍| 久久久国产一区二区| 美女福利国产在线 | 亚洲,欧美,日韩| av网站免费在线观看视频| 国产成人91sexporn| 毛片一级片免费看久久久久| 韩国av在线不卡| 亚洲精品中文字幕在线视频 | 又爽又黄a免费视频| 狠狠精品人妻久久久久久综合| 一本一本综合久久| 久久久色成人| 性色av一级| 国产乱来视频区| 嘟嘟电影网在线观看| 国产免费又黄又爽又色| 亚洲无线观看免费| 成人免费观看视频高清| 国产精品久久久久久久电影| 久久人妻熟女aⅴ| 国产一区二区三区av在线| 又大又黄又爽视频免费| 日韩大片免费观看网站| 免费av中文字幕在线| 日本爱情动作片www.在线观看| 在线观看美女被高潮喷水网站| 国产高清有码在线观看视频| 亚洲aⅴ乱码一区二区在线播放| 亚洲高清免费不卡视频| 青春草视频在线免费观看| 日韩视频在线欧美| 亚洲国产精品999| 看十八女毛片水多多多| 日韩欧美 国产精品| 久久久久久九九精品二区国产| 2022亚洲国产成人精品| 精品国产乱码久久久久久小说| 亚洲欧洲国产日韩| av又黄又爽大尺度在线免费看| 色吧在线观看| 欧美少妇被猛烈插入视频| 精品少妇久久久久久888优播| 日本爱情动作片www.在线观看| 欧美xxxx黑人xx丫x性爽| 日韩欧美精品免费久久| 欧美xxxx性猛交bbbb| 欧美极品一区二区三区四区| 成年av动漫网址| h视频一区二区三区| 免费看光身美女| 国产av码专区亚洲av| 日韩av在线免费看完整版不卡| 天天躁夜夜躁狠狠久久av| 成人黄色视频免费在线看| 一级毛片 在线播放| 亚洲精品国产成人久久av| av国产精品久久久久影院| 一本久久精品| 在线免费观看不下载黄p国产| 青春草国产在线视频| 欧美极品一区二区三区四区| 乱码一卡2卡4卡精品| 久久精品久久久久久久性| 国产深夜福利视频在线观看| 一级毛片aaaaaa免费看小| 国产精品一区二区三区四区免费观看| 人妻制服诱惑在线中文字幕| 交换朋友夫妻互换小说| 26uuu在线亚洲综合色| 国产亚洲91精品色在线| 久久综合国产亚洲精品| 毛片女人毛片| 久久国产亚洲av麻豆专区| av女优亚洲男人天堂| 亚洲精品日本国产第一区| a级毛色黄片| 极品少妇高潮喷水抽搐| 久久这里有精品视频免费| 国产成人freesex在线| 在线精品无人区一区二区三 | 国产成人免费观看mmmm| 亚洲激情五月婷婷啪啪| 欧美精品一区二区免费开放| freevideosex欧美| 亚洲激情五月婷婷啪啪| 国产黄色免费在线视频| 汤姆久久久久久久影院中文字幕| 精品国产一区二区三区久久久樱花 | 国产伦精品一区二区三区四那| 精品一品国产午夜福利视频| 黄色视频在线播放观看不卡| 亚洲av男天堂| 国产精品精品国产色婷婷| 毛片女人毛片| 秋霞在线观看毛片| 精品人妻一区二区三区麻豆| 免费大片黄手机在线观看| 亚洲精品久久久久久婷婷小说| 国产亚洲5aaaaa淫片| 精品国产三级普通话版| 国产极品天堂在线| 亚洲av中文av极速乱| 欧美亚洲 丝袜 人妻 在线| 国产 一区精品| 国产一区二区在线观看日韩| 久久精品久久久久久噜噜老黄| 日韩中字成人| 最近最新中文字幕免费大全7| 国产极品天堂在线| 欧美日韩精品成人综合77777| 日本vs欧美在线观看视频 | 亚洲精品乱码久久久久久按摩| 色综合色国产| 又爽又黄a免费视频| 老女人水多毛片| 久久av网站| 老司机影院毛片| 精品人妻偷拍中文字幕| 国产黄片美女视频| 亚洲电影在线观看av| 欧美日韩亚洲高清精品| 免费看av在线观看网站| av线在线观看网站| 色视频www国产| 成年免费大片在线观看| 简卡轻食公司| 黄色视频在线播放观看不卡| 黄片wwwwww| 伊人久久精品亚洲午夜| 免费黄频网站在线观看国产| 丝袜喷水一区| 免费在线观看成人毛片| 91久久精品国产一区二区成人| 亚洲婷婷狠狠爱综合网| 日韩免费高清中文字幕av| 97精品久久久久久久久久精品| 日韩欧美精品免费久久| 国产精品伦人一区二区| 久久久欧美国产精品| 欧美三级亚洲精品| 26uuu在线亚洲综合色| 91久久精品国产一区二区成人| 国产精品一二三区在线看| 在线观看人妻少妇| 一个人看的www免费观看视频| 午夜日本视频在线| 国产男人的电影天堂91| 国精品久久久久久国模美| 午夜激情福利司机影院| 99热这里只有是精品在线观看| av黄色大香蕉| 久久久久久久久久成人| 久久久久久九九精品二区国产| 国产真实伦视频高清在线观看| 26uuu在线亚洲综合色| 18禁在线播放成人免费| 午夜福利视频精品| 久久99热6这里只有精品| av专区在线播放| 亚洲成色77777| 欧美亚洲 丝袜 人妻 在线| 精品午夜福利在线看| 久久久精品94久久精品| 一二三四中文在线观看免费高清| 大片免费播放器 马上看| 免费在线观看成人毛片| 国产视频内射| 亚洲欧洲国产日韩| 一本色道久久久久久精品综合| 又粗又硬又长又爽又黄的视频| 激情 狠狠 欧美| 国产欧美另类精品又又久久亚洲欧美| 91狼人影院| 丝瓜视频免费看黄片| 欧美成人午夜免费资源| 一个人免费看片子| 国产高清三级在线| 国产中年淑女户外野战色| 免费观看的影片在线观看| 国模一区二区三区四区视频| 春色校园在线视频观看| 国产美女午夜福利| 蜜桃久久精品国产亚洲av| 国产久久久一区二区三区| 亚洲国产精品国产精品| 亚洲人成网站在线观看播放| .国产精品久久| 少妇丰满av| 久久99热这里只频精品6学生| 韩国av在线不卡| 国产淫语在线视频| 成人综合一区亚洲| 亚洲无线观看免费| 日韩一本色道免费dvd| 亚洲av福利一区| 精品久久久精品久久久| 下体分泌物呈黄色| 国产日韩欧美亚洲二区| 亚洲国产日韩一区二区| 午夜福利在线在线| 亚洲av.av天堂| 91精品伊人久久大香线蕉| 少妇人妻精品综合一区二区| av黄色大香蕉| 国产成人午夜福利电影在线观看| 九草在线视频观看| 国产乱人视频| 免费久久久久久久精品成人欧美视频 | 欧美亚洲 丝袜 人妻 在线| 日韩人妻高清精品专区| 久久国产精品大桥未久av | 亚洲精品国产成人久久av| 最近最新中文字幕免费大全7| 最黄视频免费看| 久久久午夜欧美精品| 高清av免费在线| 能在线免费看毛片的网站| 中文字幕制服av| 久久亚洲国产成人精品v| 久久久久久久久久成人| 男女啪啪激烈高潮av片| 大片电影免费在线观看免费| 少妇猛男粗大的猛烈进出视频| 欧美成人一区二区免费高清观看| 精品久久久久久久末码| 最新中文字幕久久久久| 欧美xxⅹ黑人| 欧美bdsm另类| 亚洲高清免费不卡视频| 成人高潮视频无遮挡免费网站| 七月丁香在线播放| 婷婷色av中文字幕| 日韩人妻高清精品专区| 亚洲婷婷狠狠爱综合网| 欧美老熟妇乱子伦牲交| 777米奇影视久久| 晚上一个人看的免费电影| 欧美精品一区二区大全| 免费观看的影片在线观看| 中文资源天堂在线| 久久久久久伊人网av| 成年免费大片在线观看| 国产精品一区二区三区四区免费观看| 一级毛片 在线播放| 国内精品宾馆在线| 99热这里只有精品一区| 久久精品国产鲁丝片午夜精品| 大又大粗又爽又黄少妇毛片口| 亚洲国产成人一精品久久久| 观看美女的网站| 十分钟在线观看高清视频www | av国产久精品久网站免费入址| 午夜福利影视在线免费观看| 乱系列少妇在线播放| 超碰97精品在线观看| 日本黄色日本黄色录像| 亚洲欧美日韩无卡精品| 美女xxoo啪啪120秒动态图| 麻豆乱淫一区二区| 中文资源天堂在线| 男女啪啪激烈高潮av片| 免费大片18禁| 麻豆乱淫一区二区| 免费大片黄手机在线观看| 91aial.com中文字幕在线观看| 国产精品国产三级专区第一集| 男女下面进入的视频免费午夜| 六月丁香七月| 国产欧美日韩精品一区二区| 日本-黄色视频高清免费观看| 一级毛片 在线播放| 国产老妇伦熟女老妇高清| 国产免费又黄又爽又色| 欧美精品人与动牲交sv欧美| 国产精品爽爽va在线观看网站| 人妻系列 视频| 国产精品不卡视频一区二区| 亚洲真实伦在线观看| 久久ye,这里只有精品| 国产免费又黄又爽又色| 免费看光身美女| 蜜臀久久99精品久久宅男| 视频中文字幕在线观看| 性色av一级| 久久鲁丝午夜福利片| 亚洲熟女精品中文字幕| 午夜激情久久久久久久| 天天躁日日操中文字幕| 99久久精品国产国产毛片| 国产色爽女视频免费观看| 插逼视频在线观看| 能在线免费看毛片的网站| 麻豆国产97在线/欧美| 国产在视频线精品| 亚洲丝袜综合中文字幕| 婷婷色麻豆天堂久久| 久久影院123| 国产v大片淫在线免费观看| 欧美高清成人免费视频www| 精品人妻偷拍中文字幕| 日韩中文字幕视频在线看片 | 久久精品熟女亚洲av麻豆精品| 日本-黄色视频高清免费观看| 日韩大片免费观看网站| 国产精品一区www在线观看| 国产精品99久久久久久久久| 国产一区二区三区av在线| 免费不卡的大黄色大毛片视频在线观看| 人体艺术视频欧美日本| 成人黄色视频免费在线看| 六月丁香七月| 人妻一区二区av| 国产精品一及| 热99国产精品久久久久久7| 男人添女人高潮全过程视频| 视频区图区小说| 国产精品久久久久成人av| 国产高清三级在线| 国产白丝娇喘喷水9色精品| 久久久久久久国产电影| 免费少妇av软件| av网站免费在线观看视频| 国产精品一区二区在线不卡| 亚洲欧美中文字幕日韩二区| 日本欧美视频一区| 天天躁夜夜躁狠狠久久av| 国产视频首页在线观看| 亚洲精品456在线播放app| av天堂中文字幕网| 国产一区二区三区综合在线观看 | 99热全是精品| 亚洲av国产av综合av卡| 秋霞在线观看毛片| 亚洲精品乱码久久久久久按摩| 国产精品.久久久| 丰满乱子伦码专区| 久久久a久久爽久久v久久| 一区二区av电影网| 直男gayav资源| 九九久久精品国产亚洲av麻豆| 性色av一级| 色网站视频免费| 精品久久久久久久末码| h日本视频在线播放| 日本猛色少妇xxxxx猛交久久| 99热这里只有精品一区| 欧美bdsm另类| 欧美日韩亚洲高清精品| 精品久久久久久电影网| 乱码一卡2卡4卡精品| 99热网站在线观看| 亚洲精品乱码久久久v下载方式| 亚洲精品日韩av片在线观看| 国产无遮挡羞羞视频在线观看| 91午夜精品亚洲一区二区三区| 国产在视频线精品| 亚洲欧美精品自产自拍| 日韩 亚洲 欧美在线| 国产高清不卡午夜福利| 亚洲精品国产色婷婷电影| 啦啦啦啦在线视频资源| 大香蕉久久网| av免费观看日本| 欧美少妇被猛烈插入视频| 国产 精品1| 一个人看视频在线观看www免费| 亚洲精品日韩在线中文字幕| 亚洲精品久久午夜乱码| 欧美高清性xxxxhd video| 天堂中文最新版在线下载| av一本久久久久| 国产v大片淫在线免费观看| 亚洲性久久影院| 最近最新中文字幕免费大全7| 六月丁香七月| 国产淫语在线视频| 精品国产乱码久久久久久小说| 欧美日韩国产mv在线观看视频 | 男女下面进入的视频免费午夜| 中文乱码字字幕精品一区二区三区| 日韩视频在线欧美| 久久精品久久久久久噜噜老黄| 在线 av 中文字幕| 免费av不卡在线播放| 国产精品一区二区在线不卡| 内地一区二区视频在线| 国产精品久久久久久久电影| 黑人猛操日本美女一级片| 亚洲精品乱码久久久v下载方式| 国产女主播在线喷水免费视频网站| 夫妻午夜视频| 久久精品国产亚洲av天美| 全区人妻精品视频| 亚洲真实伦在线观看| 久久精品久久精品一区二区三区| 国产大屁股一区二区在线视频| 久久精品人妻少妇| 一级毛片我不卡| 免费大片黄手机在线观看| 成人影院久久| 最近最新中文字幕大全电影3| 国产爱豆传媒在线观看| 久久97久久精品| 国产精品麻豆人妻色哟哟久久| 国产黄频视频在线观看| 亚洲性久久影院| 美女主播在线视频| 人人妻人人添人人爽欧美一区卜 | 看非洲黑人一级黄片| 18禁在线无遮挡免费观看视频| 夜夜爽夜夜爽视频| av免费观看日本| 狂野欧美白嫩少妇大欣赏| 黄色配什么色好看| 97在线视频观看| 成年av动漫网址| 自拍偷自拍亚洲精品老妇| 最近手机中文字幕大全| 亚洲久久久国产精品| 爱豆传媒免费全集在线观看| 狠狠精品人妻久久久久久综合| 久久女婷五月综合色啪小说| 综合色丁香网| 成人美女网站在线观看视频| 国产精品av视频在线免费观看| 国产亚洲精品久久久com| 人人妻人人看人人澡| 亚洲怡红院男人天堂| 性色av一级| 亚洲精品乱码久久久久久按摩| 男男h啪啪无遮挡| 伦精品一区二区三区| 亚洲国产欧美人成| 亚洲综合精品二区| a 毛片基地| 国产精品一区二区在线观看99| 久久久久久伊人网av| 国产精品99久久99久久久不卡 | 国产亚洲一区二区精品| 91狼人影院| 国产欧美另类精品又又久久亚洲欧美| 51国产日韩欧美| 亚洲欧美日韩东京热| 亚洲伊人久久精品综合| 狂野欧美白嫩少妇大欣赏| 日韩成人伦理影院| 26uuu在线亚洲综合色| 久久人人爽人人片av| 久久久久国产网址| 免费av中文字幕在线| 精品99又大又爽又粗少妇毛片| 色网站视频免费| 偷拍熟女少妇极品色| 成人综合一区亚洲| 最新中文字幕久久久久| 国产人妻一区二区三区在| 成人亚洲精品一区在线观看 | 国产精品三级大全| 韩国高清视频一区二区三区| 纵有疾风起免费观看全集完整版| 国产综合精华液| 在线观看免费视频网站a站| 日本色播在线视频| 一本一本综合久久| 国产高清三级在线| 国产永久视频网站| 日本av手机在线免费观看| a级一级毛片免费在线观看| 精品午夜福利在线看| 精品人妻一区二区三区麻豆| 国产精品秋霞免费鲁丝片| 亚洲不卡免费看| 国产精品国产三级专区第一集| 亚洲国产精品成人久久小说| 三级国产精品欧美在线观看| 好男人视频免费观看在线| 久久久久久久久久久免费av| 99久久综合免费| 亚洲成人av在线免费| 国产免费一区二区三区四区乱码| 夜夜爽夜夜爽视频| 爱豆传媒免费全集在线观看| 久久毛片免费看一区二区三区| 嫩草影院新地址| 国产熟女欧美一区二区| 国产视频内射| 亚洲成人中文字幕在线播放| 热re99久久精品国产66热6| 九九久久精品国产亚洲av麻豆| 久久国产精品男人的天堂亚洲 | 亚洲三级黄色毛片| 超碰av人人做人人爽久久| 久久国产精品大桥未久av | 国产大屁股一区二区在线视频| 精品久久久久久久久av| 大香蕉久久网| 国产片特级美女逼逼视频| 在线观看免费日韩欧美大片 | 亚洲欧美清纯卡通| 男女边摸边吃奶| 亚洲精品乱码久久久v下载方式| 亚洲国产欧美在线一区| 不卡视频在线观看欧美| 美女cb高潮喷水在线观看| 男人舔奶头视频| 精品99又大又爽又粗少妇毛片| av又黄又爽大尺度在线免费看| 蜜桃在线观看..| 欧美日韩国产mv在线观看视频 | 婷婷色av中文字幕| xxx大片免费视频| 国产在线视频一区二区| 男人爽女人下面视频在线观看| av在线观看视频网站免费| videos熟女内射| 偷拍熟女少妇极品色| 亚洲成色77777| 最近2019中文字幕mv第一页| 草草在线视频免费看| 美女中出高潮动态图| 高清不卡的av网站| 天天躁夜夜躁狠狠久久av| 久热久热在线精品观看| av又黄又爽大尺度在线免费看| 尾随美女入室| 亚洲国产欧美在线一区| 亚洲人成网站高清观看| 熟女电影av网| 欧美性感艳星| 国产av一区二区精品久久 | 日韩av不卡免费在线播放| 婷婷色综合www| 少妇的逼水好多| 亚洲av福利一区| 亚洲精品第二区| 亚洲经典国产精华液单| 国产亚洲最大av| 高清视频免费观看一区二区| 深爱激情五月婷婷| 老师上课跳d突然被开到最大视频| 日本色播在线视频| 一本一本综合久久| 一级毛片黄色毛片免费观看视频| 美女xxoo啪啪120秒动态图| www.av在线官网国产| 欧美一区二区亚洲| 又爽又黄a免费视频| 高清日韩中文字幕在线| 最近的中文字幕免费完整| 熟女电影av网| 久久精品久久精品一区二区三区| 日韩一区二区三区影片| 国内少妇人妻偷人精品xxx网站| 国产成人aa在线观看| 午夜福利高清视频| 麻豆精品久久久久久蜜桃| 日韩中字成人| 精品99又大又爽又粗少妇毛片| 亚洲熟女精品中文字幕| 国产视频内射| 成人黄色视频免费在线看| 久久久久久久国产电影| 中文欧美无线码| 亚洲国产成人一精品久久久| 少妇人妻久久综合中文| 亚洲精品国产av蜜桃| 国产成人91sexporn| 免费少妇av软件| 五月伊人婷婷丁香|