基金會(huì)現(xiàn)場(chǎng)總線系統(tǒng)中功能塊的調(diào)度與通信
現(xiàn)場(chǎng)總線(Fieldbus)是20世紀(jì)末期出現(xiàn)并發(fā)展起來(lái)的,用于過(guò)程自動(dòng)化、制造自動(dòng)化、樓宇自動(dòng)化等領(lǐng)域的現(xiàn)場(chǎng)智能設(shè)備互連通訊網(wǎng)絡(luò)。它作為工廠數(shù)字通信網(wǎng)絡(luò)的基礎(chǔ),溝通了生產(chǎn)過(guò)程現(xiàn)場(chǎng)及控制設(shè)備之間及其與更高控制管理層次之間的聯(lián)系。現(xiàn)場(chǎng)總線控制系統(tǒng)是一種開(kāi)放式的、安全性好、成本低、新型的全分布控制系統(tǒng),是以控制、計(jì)算機(jī)、數(shù)字通訊等技術(shù)為主要內(nèi)容的綜合技術(shù),成為自動(dòng)化技術(shù)發(fā)展的熱點(diǎn),并將導(dǎo)致自動(dòng)化系統(tǒng)結(jié)構(gòu)與設(shè)備的深刻變革。
本文引用地址:http://m.butianyuan.cn/article/201612/329435.htm現(xiàn)場(chǎng)總線技術(shù)的標(biāo)準(zhǔn)化起步較晚,是以目前呈現(xiàn)多種現(xiàn)場(chǎng)總線技術(shù)并存的局面,其中有較強(qiáng)實(shí)力和影響的有:FoundtionFieldbus(FF),Lonworks,Profibus,HART,CAN等。它們具有各自的特色,在不同應(yīng)用領(lǐng)域形成了自己的優(yōu)勢(shì)。其中,基金會(huì)現(xiàn)場(chǎng)總線以其技術(shù)先進(jìn)、屬下會(huì)員實(shí)力強(qiáng)大成為非常有競(jìng)爭(zhēng)力的一種總線技術(shù)。
基金會(huì)現(xiàn)場(chǎng)總線系統(tǒng)是由數(shù)字智能化現(xiàn)場(chǎng)設(shè)備和控制、監(jiān)控設(shè)備互聯(lián)而組成的。他們?cè)谝黄鹛峁㊣/O和控制、自動(dòng)處理等操作。每個(gè)現(xiàn)場(chǎng)設(shè)備執(zhí)行整個(gè)系統(tǒng)中一部分功能,包括實(shí)現(xiàn)一個(gè)或多個(gè)時(shí)間關(guān)鍵的應(yīng)用,例如傳感器數(shù)據(jù)的獲得和控制算法的執(zhí)行。每一個(gè)現(xiàn)場(chǎng)應(yīng)用都是由一組設(shè)備功能來(lái)實(shí)現(xiàn)的,稱作功能塊(FB)。這些應(yīng)用就稱作功能塊應(yīng)用進(jìn)程(FBAP)。
2 功能塊的定義和結(jié)構(gòu)特點(diǎn)
功能塊表示了基本的自動(dòng)化功能。每個(gè)功能塊處理輸入?yún)?shù),并根據(jù)內(nèi)部的內(nèi)含參數(shù),執(zhí)行特定的算法,產(chǎn)生可用的輸出參數(shù)。因此功能塊由輸入,輸出和內(nèi)含參數(shù),和應(yīng)用這些參數(shù)的算法組成。功能塊用一個(gè)位號(hào)(FBTag)和對(duì)象字典(OD)的索引來(lái)標(biāo)識(shí)。功能塊位號(hào)提供了一個(gè)功能塊的符號(hào)引用,在一個(gè)系統(tǒng)中應(yīng)該是唯一的。對(duì)象字典索引是為了快速訪問(wèn)功能塊而用的。對(duì)象字典的索引只是在包含這個(gè)功能塊的資源中才有用。功能塊參數(shù)定義了用于功能塊操作的輸入,輸出和內(nèi)含參數(shù)。這些參數(shù)可以通過(guò)網(wǎng)絡(luò)訪問(wèn),輸入和輸出參數(shù)通過(guò)功能塊之間的連接來(lái)交換數(shù)據(jù)。內(nèi)含參數(shù)用來(lái)定義功能塊的私有參數(shù),盡管他們是網(wǎng)絡(luò)可見(jiàn)的,但是他們不參與功能塊連接。功能塊的參數(shù)用設(shè)備描述(DD)的MemberId和對(duì)象字典索引來(lái)標(biāo)識(shí)。DDMemberId和一個(gè)Tag相對(duì)應(yīng),這個(gè)Tag在整個(gè)系統(tǒng)內(nèi)必須是唯一的;對(duì)象索引用來(lái)通過(guò)FMS服務(wù)來(lái)訪問(wèn)一個(gè)功能塊參數(shù)。參數(shù)的描述可以通過(guò)DD來(lái)擴(kuò)展。功能塊定義和相關(guān)的DD描述被組成一個(gè)一般依賴于應(yīng)用領(lǐng)域、設(shè)備功能和廠商定義的參數(shù)的集合。
不同類型的設(shè)備根據(jù)實(shí)現(xiàn)功能的不同可以有不同的功能塊,典型的功能塊包括模擬輸入(AI),模擬輸出(AO)和PID控制功能塊。每一個(gè)功能塊都有一些特定的參數(shù)和算法以實(shí)現(xiàn)特定的功能。
功能塊應(yīng)用結(jié)構(gòu)定義了一個(gè)功能塊應(yīng)用的內(nèi)部組件,并規(guī)定了在一個(gè)應(yīng)用內(nèi)或多個(gè)應(yīng)用之間這些組件的接口,這個(gè)結(jié)構(gòu)可設(shè)計(jì)如下:
·設(shè)計(jì)和執(zhí)行功能塊應(yīng)用
·配置和集成功能塊應(yīng)用到現(xiàn)場(chǎng)設(shè)備中
·系統(tǒng)運(yùn)行時(shí)功能塊之間的互操作。
一個(gè)設(shè)備中的部分或所有組件可以由生產(chǎn)廠商預(yù)先定義。組件的參數(shù)可以通過(guò)設(shè)備組態(tài)來(lái)修改。另外,設(shè)備還要支持標(biāo)準(zhǔn)的功能塊服務(wù)(包括對(duì)功能塊參數(shù)的讀寫(xiě)服務(wù))。通過(guò)這些服務(wù),功能塊和變換塊等組件可以被訪問(wèn)或修改。
3 功能塊的執(zhí)行和調(diào)度
功能塊的執(zhí)行是由一個(gè)事件輸入激活的。這個(gè)事件可能是:
·調(diào)度:調(diào)度定義了功能塊開(kāi)始被觸發(fā)執(zhí)行的時(shí)間。
·功能塊執(zhí)行的結(jié)束:同一個(gè)設(shè)備內(nèi)的功能塊執(zhí)行完成后有可能觸發(fā)其他功能塊的執(zhí)行。
·廠商定義:功能塊的執(zhí)行可由生產(chǎn)廠商自己定義。
在基金會(huì)現(xiàn)場(chǎng)總線中,最常見(jiàn)的是調(diào)度執(zhí)行的功能塊。要想保證功能塊的調(diào)度執(zhí)行正確性和實(shí)時(shí)性,就必須符合以下特性:
·系統(tǒng)中的每個(gè)功能塊應(yīng)用有一個(gè)相同的時(shí)間即系統(tǒng)時(shí)間。時(shí)間標(biāo)準(zhǔn)的統(tǒng)一才能夠保證每個(gè)功能塊執(zhí)行時(shí)間的準(zhǔn)確性。
·測(cè)量設(shè)備定期采樣以保證連續(xù)控制的輸入?yún)?shù)的正確性。
·在功能塊執(zhí)行時(shí)輸入和控制參數(shù)應(yīng)該保持一致。
·輸出參數(shù)的產(chǎn)生和應(yīng)用之間的時(shí)間間隔必須小于控制回路的執(zhí)行時(shí)間。這個(gè)時(shí)間間隔包括功能塊之間傳輸數(shù)據(jù)所用的時(shí)間和數(shù)據(jù)傳輸完成后等待功能塊開(kāi)始執(zhí)行的時(shí)間。
上述這些特性要求功能塊的執(zhí)行在以下三個(gè)方面的調(diào)整:
首先,要保證整個(gè)系統(tǒng)內(nèi)的時(shí)間同步,以保證功能塊執(zhí)行的同步。
第二,要保證輸出參數(shù)的產(chǎn)生在其他功能塊需要這個(gè)參數(shù)之前。
第三,要保證功能塊的調(diào)度與總線上數(shù)據(jù)傳輸?shù)耐?,以確保輸出參數(shù)在合適的時(shí)間進(jìn)行傳輸。
這三個(gè)方面分別是由時(shí)鐘同步,功能塊調(diào)度和網(wǎng)絡(luò)傳輸調(diào)度來(lái)實(shí)現(xiàn)的。
在FF系統(tǒng)中,應(yīng)用時(shí)鐘的同步是通過(guò)系統(tǒng)管理的時(shí)鐘發(fā)布來(lái)實(shí)現(xiàn)的。系統(tǒng)管理中的時(shí)間發(fā)布者周期性的向現(xiàn)場(chǎng)設(shè)備發(fā)布應(yīng)用時(shí)鐘同步消息,應(yīng)用時(shí)鐘消息包括應(yīng)用時(shí)鐘時(shí)間(APtime)和鏈路時(shí)間(LStime)。系統(tǒng)管理內(nèi)核(SMK)采樣鏈路時(shí)間和應(yīng)用時(shí)鐘時(shí)間組成應(yīng)用時(shí)鐘消息一起發(fā)送,接收設(shè)備利用接收到的應(yīng)用時(shí)鐘消息調(diào)整其本地應(yīng)用時(shí)間,以達(dá)到應(yīng)用時(shí)鐘同步的目的。
對(duì)功能塊的執(zhí)行的調(diào)度也是由系統(tǒng)管理內(nèi)核來(lái)管理的,通過(guò)對(duì)系統(tǒng)管理信息庫(kù)中的FBStart參數(shù)進(jìn)行組態(tài)來(lái)實(shí)現(xiàn)對(duì)功能塊運(yùn)行的調(diào)度。
FBStart的定義如下所示:
struct
{
unsignedlongstart_time_oFFset;
unsignedshortfb_object_index;
unsignedlongvfd_ref;
?。鼺B_START_ENTRY;
其中,start_time_oFFset表示功能塊開(kāi)始執(zhí)行的時(shí)間,這個(gè)參數(shù)是一個(gè)相對(duì)與宏周期的時(shí)間偏差。它的單位是1/32毫秒。宏周期是指整個(gè)網(wǎng)絡(luò)上功能塊應(yīng)用的執(zhí)行時(shí)間,功能塊的調(diào)度和數(shù)據(jù)傳輸?shù)恼{(diào)度都是以宏周期為時(shí)間基準(zhǔn)來(lái)進(jìn)行周期性調(diào)度的。它的單位也是1/32毫秒。
fb_object_index表示與這個(gè)FBStart項(xiàng)相關(guān)聯(lián)的功能塊的數(shù)據(jù)字典索引,即要執(zhí)行的功能塊的起始索引。這個(gè)參數(shù)用于標(biāo)識(shí)要執(zhí)行的功能塊。
vfd_ref表示這個(gè)FBStart相關(guān)的VFD號(hào),即要執(zhí)行的功能塊在哪個(gè)VFD里。
而數(shù)據(jù)傳輸?shù)恼{(diào)度是由鏈路活動(dòng)調(diào)度器(LAS)來(lái)實(shí)現(xiàn)的。組態(tài)完成以后,在鏈路活動(dòng)調(diào)度器(LAS)設(shè)備中就生成了一個(gè)調(diào)度表,這個(gè)調(diào)度表有一定的格式,LAS通過(guò)對(duì)這個(gè)調(diào)度表的讀取來(lái)進(jìn)行數(shù)據(jù)傳輸?shù)恼{(diào)度,即在特定的時(shí)間給特定的設(shè)備發(fā)送強(qiáng)制令牌(CD)報(bào)文來(lái)強(qiáng)制現(xiàn)場(chǎng)設(shè)備把要發(fā)送的實(shí)時(shí)數(shù)據(jù)發(fā)送出去。這個(gè)時(shí)間是嚴(yán)格準(zhǔn)確的,能夠確保正確的數(shù)據(jù)在需要的時(shí)間傳輸?,F(xiàn)場(chǎng)設(shè)備在收到CD后立刻將緩沖區(qū)內(nèi)的數(shù)據(jù)發(fā)布到總線上,緩沖區(qū)內(nèi)的數(shù)據(jù)是由功能塊執(zhí)行以后寫(xiě)入的。
下面一個(gè)以典型的PID控制回路為例來(lái)說(shuō)明FF系統(tǒng)中功能塊的調(diào)度?! ?/p>
圖1一個(gè)典型的PID控制回路
如圖1所示為一個(gè)典型的PID控制回路,圖中AI功能塊和PID功能塊在一個(gè)設(shè)備中,AO功能塊在另一個(gè)設(shè)備中??刂七^(guò)程如下:AI功能塊的輸出(OUT)參數(shù)送到PID的輸入(IN)參數(shù),PID的輸出(OUT)參數(shù)送到AO的級(jí)聯(lián)輸入(CAS_IN)參數(shù),而AO的回算輸出(BKCAL_OUT)參數(shù)送到PID的回算輸入(BKCAL_IN)參數(shù)。從而完成一個(gè)PID閉環(huán)控制。
由此形成的調(diào)度如下圖所示:
圖2 PID控制回路的調(diào)度
圖2中,LoopTime(即宏周期)是1秒,藍(lán)顏色的框是功能塊的執(zhí)行時(shí)間,紅顏色的框是功能塊執(zhí)行后在總線上發(fā)布數(shù)據(jù)的時(shí)間。由于AI功能塊和PID功能塊在一個(gè)設(shè)備中,這部分的參數(shù)傳遞是通過(guò)本地接口實(shí)現(xiàn)的,在總線上是不可見(jiàn)的,故在圖中沒(méi)有這部分?jǐn)?shù)據(jù)傳輸?shù)娘@示。
組態(tài)完成后,在包含有AI功能塊和PID功能塊的設(shè)備(設(shè)備A)中應(yīng)該有兩個(gè)FBStart項(xiàng),一個(gè)對(duì)應(yīng)AI功能塊的執(zhí)行,start_time_oFFset應(yīng)該是0,fb_object_index是AI功能塊的起始索引;另一個(gè)對(duì)應(yīng)PID功能塊的執(zhí)行,start_time_oFFset應(yīng)該是640(20ms)。即在一個(gè)宏周期的起始處(偏移量為零),設(shè)備A的SMK調(diào)度AI功能塊開(kāi)始執(zhí)行,得出輸出值并送到本地的PID功能塊。而在宏周期開(kāi)始后的20毫秒處,設(shè)備A的SMK調(diào)度PID功能塊開(kāi)始執(zhí)行,應(yīng)用AI給的輸入值,算出輸出值,并放入緩沖區(qū)中,等待數(shù)據(jù)傳輸?shù)恼{(diào)度令牌(CD)。而LAS根據(jù)調(diào)度表在宏周期開(kāi)始后的40毫秒處,發(fā)出一個(gè)強(qiáng)制發(fā)送數(shù)據(jù)的令牌(CD)來(lái)把設(shè)備A緩沖區(qū)中的數(shù)據(jù)發(fā)布到網(wǎng)絡(luò)上。設(shè)備B中只有一個(gè)AO功能塊要執(zhí)行,所以組態(tài)時(shí)只產(chǎn)生一個(gè)FBStart項(xiàng)用來(lái)對(duì)應(yīng)AO功能塊的執(zhí)行,它的start_time_oFFset應(yīng)該是1280(120毫秒)。設(shè)備B的AO功能塊接收到從設(shè)備A的PID功能塊發(fā)布的數(shù)據(jù)后,在宏周期開(kāi)始后的120毫秒處,由設(shè)備B的SMK調(diào)度開(kāi)始執(zhí)行,并產(chǎn)生輸出數(shù)據(jù)對(duì)執(zhí)行器進(jìn)行操作,同時(shí)產(chǎn)生一個(gè)回算輸出(BKCAL_OUT)值放到本地的緩沖區(qū)內(nèi),等待數(shù)據(jù)傳輸?shù)恼{(diào)度令牌(CD)。而LAS根據(jù)調(diào)度表在宏周期開(kāi)始后的140毫秒處,發(fā)出一個(gè)強(qiáng)制發(fā)送數(shù)據(jù)的令牌(CD)來(lái)把設(shè)備B緩沖區(qū)中的數(shù)據(jù)發(fā)布到網(wǎng)絡(luò)上。設(shè)備A中的PID功能塊應(yīng)用這個(gè)回算值和AI的輸出值,調(diào)整執(zhí)行后的輸出值。從而完成一個(gè)PID的閉環(huán)控制。
4 結(jié)束語(yǔ)
基金會(huì)現(xiàn)場(chǎng)總線的功能塊和功能塊的調(diào)度是基金會(huì)現(xiàn)場(chǎng)總線應(yīng)用的基礎(chǔ),也是基金會(huì)現(xiàn)場(chǎng)總線系統(tǒng)的特點(diǎn)和創(chuàng)新之一。通過(guò)對(duì)功能塊調(diào)度的了解,可以深入的理解基金會(huì)現(xiàn)場(chǎng)總線的開(kāi)放性和互操作性的概念。
評(píng)論