IEC 1131-3標(biāo)準(zhǔn)
編者語(yǔ):IEC (International Electrotechnical Commission)1131-3是 IEC 1131國(guó)際標(biāo)準(zhǔn)的第三部分,是第一個(gè)為工業(yè)自動(dòng)化控制系統(tǒng)的軟件設(shè)計(jì)提供標(biāo)準(zhǔn)化編程語(yǔ)言的國(guó)際標(biāo)準(zhǔn)。該標(biāo)準(zhǔn)得到了世界范圍的的眾多廠(chǎng)商的支持,但又獨(dú)立于任何一家公司。該國(guó)際標(biāo)準(zhǔn)的制定,是IEC工作組在合理地吸收、借鑒世界范圍的各可編程序控制器(PLCs)廠(chǎng)家的技術(shù)、編程語(yǔ)言、方言等的基礎(chǔ)之上,形成的一套新的國(guó)際編程語(yǔ)言標(biāo)準(zhǔn)。1131-3國(guó)際標(biāo)準(zhǔn)隨著可編程序控制器(PLCs)技術(shù)、編程語(yǔ)言等的不斷進(jìn)步也在不斷地進(jìn)行著補(bǔ)充和完善。
1131-3國(guó)際標(biāo)準(zhǔn)得到了包括有美國(guó)AB公司、德國(guó)西門(mén)子公司等世界知名大公司在內(nèi)的眾多廠(chǎng)家的共同推動(dòng)和支持,它極大地改進(jìn)了工業(yè)控制系統(tǒng)的編程軟件質(zhì)量及提高了軟件開(kāi)發(fā)效率;它定義的一系列圖形化語(yǔ)言和文本語(yǔ)言,不僅對(duì)系統(tǒng)集成商和系統(tǒng)工程師的編程帶來(lái)很大的方便,而且對(duì)最終用戶(hù)同樣會(huì)帶來(lái)很大的方便;它在技術(shù)上的實(shí)現(xiàn)是高水平的,有足夠的發(fā)展空間和變動(dòng)余地,使得能很好地適應(yīng)于下一個(gè)世紀(jì)。IEC 1131-3標(biāo)準(zhǔn)最初主要用于可編程序控制器(PLCs)的編程系統(tǒng),但它目前同樣也適用于過(guò)程控制領(lǐng)域、分散型控制系統(tǒng)、基于控制系統(tǒng)的軟邏輯、SCADA等。1131-3國(guó)際標(biāo)準(zhǔn)正在受到越來(lái)越多的國(guó)外公司、廠(chǎng)商的重視和采用,1131-3國(guó)際標(biāo)準(zhǔn)因其具有的諸多優(yōu)點(diǎn),也正在受到越來(lái)越多的國(guó)內(nèi)公司、廠(chǎng)商的重視和采用。
IEC 1131國(guó)際標(biāo)準(zhǔn)包括8部分:Part 1: 綜述;Part 2: 硬件;Part 3: 可編程語(yǔ)言;Part 4: 用戶(hù)導(dǎo)則;Part 5: 通信;Part 6:現(xiàn)場(chǎng)總線(xiàn)通信;Part 7:模糊控制編程;Part 8:編程語(yǔ)言的實(shí)施方針。IEC 1131-3是IEC 1131中最重要、最具代表性的部分。IEC 1131-3國(guó)際標(biāo)準(zhǔn)將是下一代PLC的基礎(chǔ)。IEC 1131-5是IEC 1131的通信部分,通過(guò)IEC 1131-5,可實(shí)現(xiàn)可編程序控制器與其它工業(yè)控制系統(tǒng),如機(jī)器人,數(shù)控系統(tǒng),現(xiàn)場(chǎng)總線(xiàn)等的通信。
一、采用IEC 1131-3國(guó)際標(biāo)準(zhǔn)的必要性
1. 對(duì)系統(tǒng)“開(kāi)放性”的要求
成熟的工業(yè)控制市場(chǎng)已經(jīng)開(kāi)始對(duì)“開(kāi)放性系統(tǒng)”產(chǎn)品提出了越來(lái)越多的要求,IEC
1131-3國(guó)際標(biāo)準(zhǔn)正是適應(yīng)了這種要求。
2. 傳統(tǒng)PLC梯形圖編程的缺點(diǎn)
l 不同PLC產(chǎn)品的梯形圖符號(hào)和編程變化很大。
l 有限的數(shù)據(jù)封裝能力,很難將一個(gè)復(fù)雜的程序分解為數(shù)個(gè)簡(jiǎn)單的程序部分:現(xiàn)在的梯形圖編程,一個(gè)程序塊的內(nèi)部數(shù)據(jù)還缺乏對(duì)外部隱藏其數(shù)據(jù)的封裝能力,因而,一個(gè)大的程序要想分解為幾個(gè)簡(jiǎn)單的小程序,并且各個(gè)小程序之間具有的清晰的接口是很困難的。
l 有限的程序可重用性:程序可重用性是現(xiàn)在編程的一個(gè)發(fā)展趨勢(shì),傳統(tǒng)的PLC不能通過(guò)重復(fù)調(diào)用相同的邏輯策略和算法,實(shí)現(xiàn)程序重復(fù)使用。
l 不支持?jǐn)?shù)據(jù)結(jié)構(gòu):在許多復(fù)雜的應(yīng)用中,程序需要把一些數(shù)據(jù)組織成象高級(jí)語(yǔ)言PASCAL 、C中的數(shù)據(jù)結(jié)構(gòu)那樣的數(shù)據(jù)類(lèi)型,而目前的梯形圖程序還不支持?jǐn)?shù)據(jù)結(jié)構(gòu)。
l 支持有限的對(duì)順序操作功能編程:傳統(tǒng)的PLC梯形圖編程對(duì)順序操作的處理方法是,為每一個(gè)順序狀態(tài)提供一個(gè)狀態(tài)位,這種對(duì)順序操作的處理能力是很有限的。
l 程序執(zhí)行的局限性:PLC程序是順序執(zhí)行的,執(zhí)行一次程序的時(shí)間取決于程序的長(zhǎng)短和復(fù)雜性,對(duì)很大和很復(fù)雜的程序,執(zhí)行一次程序的時(shí)間就較長(zhǎng),這對(duì)有些對(duì)時(shí)間有苛刻要求的應(yīng)用,是有很大的局限性的。
l 執(zhí)行算術(shù)操作的局限性:傳統(tǒng)的PLC梯形圖程序?qū)λ阈g(shù)操作處理是很困難的。
3. 采用IEC 1131-3國(guó)際標(biāo)準(zhǔn)的優(yōu)點(diǎn)
因采用一致的IEC 1131-3國(guó)際標(biāo)準(zhǔn)編程,各個(gè)PLC廠(chǎng)家的編程系統(tǒng)都是統(tǒng)一的,因而,對(duì)用戶(hù)來(lái)說(shuō)具有如下優(yōu)點(diǎn):
l 減少了人力資源,如培訓(xùn)、調(diào)試、維護(hù)和咨詢(xún)的浪費(fèi)
l 高水平軟件再使用性,它聚焦于解決控制中的問(wèn)題
l 減少了編程中的誤解和錯(cuò)誤
l 適用于寬環(huán)境范圍的編程技術(shù):通用的工業(yè)控制
l 連接來(lái)自不同程序、項(xiàng)目、公司、地區(qū)或國(guó)家的部件
IEC 1131-3軟件:一種先進(jìn)的工業(yè)控制編程系統(tǒng) .
IEC 1131-3是第一個(gè)為工業(yè)控制系統(tǒng)提供標(biāo)準(zhǔn)化編程語(yǔ)言的國(guó)際標(biāo)準(zhǔn),該標(biāo)準(zhǔn)針對(duì)工業(yè)控制系統(tǒng)所闡述的的軟件設(shè)計(jì)概念、模型等適應(yīng)了當(dāng)今世界軟件、工業(yè)控制系統(tǒng)的發(fā)展方向,是一種非常先進(jìn)的設(shè)計(jì)技術(shù),它不但極大地推動(dòng)了工業(yè)控制系統(tǒng)的軟件設(shè)計(jì)的進(jìn)步,而且它的許多概念還對(duì)現(xiàn)場(chǎng)總線(xiàn)設(shè)備的軟件設(shè)計(jì)產(chǎn)生了很大影響。符合IEC 1131-3的軟件系統(tǒng)是一個(gè)結(jié)構(gòu)完美、可重復(fù)使用、可維護(hù)的工業(yè)控制系統(tǒng)軟件,不但能被應(yīng)用在PLC(可編程控制器),而且還能被應(yīng)用在控制工業(yè)及制造過(guò)程的一切軟件中,是一種先進(jìn)的工業(yè)控制編程系統(tǒng)。 IEC 1131-3標(biāo)準(zhǔn)包括兩部分:編程和公共元素。編程部分描述了兩個(gè)重要模型:IEC 軟件模型和通訊模型。公共元素定義了編程系統(tǒng)中需要的的數(shù)據(jù)類(lèi)型。
一、 IEC 1131-3的兩個(gè)重要模型 IEC 1131-3標(biāo)準(zhǔn)有兩個(gè)模型:IEC 軟件模型和通訊模型。這兩個(gè)模型構(gòu)成了實(shí)現(xiàn)符合IEC 1131-3國(guó)際標(biāo)準(zhǔn)的編程系統(tǒng)的概念基礎(chǔ),它們不但是IEC 1131-3編程系統(tǒng)區(qū)別于傳統(tǒng)的PLC編程系統(tǒng)的重要標(biāo)志,而且也是IEC 1131-3編程系統(tǒng)優(yōu)越于傳統(tǒng)的PLC編程系統(tǒng)的原因所在。IEC 軟件模型從理論上描述了如何將一個(gè)復(fù)雜的程序分解為若干個(gè)小的不同的可管理部分,并且在各個(gè)被分解部分之間有清晰的和規(guī)范的接口的方法;描述了一臺(tái)PLC如何實(shí)現(xiàn)多個(gè)獨(dú)立程序的同時(shí)裝載、運(yùn)行;描述了系統(tǒng)如何實(shí)現(xiàn)對(duì)程序執(zhí)行的完全控制等。通訊模型同樣從理論上描述了不同程序組織單元(POU – Program Organization Units)之間如何交換信息的方法。程序組織單元包括程序,功能塊和功能。為了更好地描述IEC 軟件模型,我們先通過(guò)一個(gè)實(shí)際的應(yīng)用系統(tǒng)來(lái)描述IEC 1131-3軟件與實(shí)際系統(tǒng)的關(guān)系,然后再進(jìn)一步說(shuō)明1131-3軟件模型。
二、IEC 1131-3軟件與實(shí)際系統(tǒng)的關(guān)系如圖1為一采用PLC的直接數(shù)字控制系統(tǒng)。來(lái)自物理傳感器的連續(xù)信號(hào)被轉(zhuǎn)換為數(shù)字采樣信號(hào)后,PLC控制系統(tǒng)就可以運(yùn)行諸如比例,積分,微分(PID)等算法產(chǎn)生控制信號(hào)輸出,最終實(shí)現(xiàn)對(duì)裝置位置的控制。在圖1中,IEC 1131-3軟件假設(shè),來(lái)自傳感器或變送器 圖一應(yīng)用PLC系統(tǒng)的直接數(shù)字控制系統(tǒng)的外部數(shù)值被直接放在一段特定的內(nèi)存區(qū),同時(shí),程序運(yùn)行后產(chǎn)生的結(jié)果也被放在一段特定的內(nèi)存區(qū),更新這些內(nèi)存區(qū)數(shù)值,即實(shí)現(xiàn)了對(duì)執(zhí)行器或顯示器的驅(qū)動(dòng)。到PLC的I/O裝置的內(nèi)存映射并沒(méi)有定義在標(biāo)準(zhǔn)中,它會(huì)隨著不同的PLC廠(chǎng)商有很大的不同。三、IEC 軟件模型 IEC 1131-3軟件模型如圖二所示。該軟件模型是一種分層結(jié)構(gòu),每一層隱藏了其下層的許多特征。IEC 1131-3具有的這種分層結(jié)構(gòu),構(gòu)成了IEC 1131-3軟件優(yōu)越于傳統(tǒng)的PLC軟件的理論基礎(chǔ),是IEC 1131-3軟件先進(jìn)性的體現(xiàn)。下面我們先描述軟件模型的各個(gè)部分的概念,同時(shí)分析、總結(jié)IEC 1131-3編程系統(tǒng)所具有的優(yōu)點(diǎn)。
1. 配置、資源、程序和任務(wù)在模型的最上層是軟件“配置”,它等同于一個(gè)PLC軟件,使用在一個(gè)具體應(yīng)用的定義PLC行為的整個(gè)軟件中,它與配置系統(tǒng)的實(shí)際過(guò)程是不同的。如在一個(gè)復(fù)雜的由多臺(tái)PLC組成的自動(dòng)化生產(chǎn)線(xiàn)中,每臺(tái)PLC中的軟件就是一個(gè)獨(dú)立的“配置”。一個(gè)“配置”可與其它的IEC“配置”通過(guò)定義的接口進(jìn)行通訊。在每一個(gè)配置中,有一個(gè)或多個(gè)“資源”,“資源”不僅為運(yùn)行程序提供了一個(gè)支持系統(tǒng),而且它反映了PLC的物理結(jié)構(gòu),在程序和PLC物理I/O通道之間提供了一個(gè)接口。一個(gè)IEC程序只有在裝入“資源”后才能執(zhí)行?!百Y源”通常放在PLC內(nèi),但也可以放在其它系統(tǒng)內(nèi)。一個(gè)IEC程序可以用不同的IEC編程語(yǔ)言來(lái)編寫(xiě)。典型的IEC程序由許多互連的功能塊組成,各功能塊之間可互相交換數(shù)據(jù)。一個(gè)程序可以讀寫(xiě)I/O變量,并且能夠與其它的程序通訊。一個(gè)程序中的不同部分的執(zhí)行通過(guò)“任務(wù)”來(lái)控制。 “任務(wù)”被配置以后,可以控制一系列程序和/或功能塊周期性地執(zhí)行程序或由一個(gè)的特定的事件觸發(fā)開(kāi)始執(zhí)行程序。IEC程序或功能塊通常保持完全的待用狀態(tài),只有當(dāng)是由一個(gè)特定的被配置的任務(wù)來(lái)周期性地執(zhí)行或由一個(gè)特定的變量狀態(tài)改變來(lái)觸發(fā)執(zhí)行的情況,IEC程序或功能塊才會(huì)執(zhí)行。
2. 功能塊和功能功能塊概念是IEC 1131-3標(biāo)準(zhǔn)編程系統(tǒng)的一個(gè)重要的特征。任何功能塊可以用其它的更小的更易管理的功能塊來(lái)編程,這樣就可以由許多的功能塊創(chuàng)建一個(gè)有層次的結(jié)構(gòu)合理的程序。IEC 1131-3還允許程序設(shè)計(jì)人員利用現(xiàn)有的功能塊和其它的軟件元件生成新的功能塊。 圖二:IEC軟件模型功能也是IEC 1131-3標(biāo)準(zhǔn)中的一個(gè)重要概念,但在軟件模型中未表現(xiàn)出來(lái),它常常使人們與功能塊混淆。功能是一些在程序執(zhí)行過(guò)程中的軟件元件,這些軟件元件對(duì)一系列特定的輸入值會(huì)產(chǎn)生相應(yīng)的輸出結(jié)果,如算術(shù)功能COS(),SIN()等。IEC 1131-3標(biāo)準(zhǔn)中有大量的用于處理不同數(shù)據(jù)類(lèi)型的功能。
3.變量和存取路徑在配置、系統(tǒng)資源、程序、功能或功能塊內(nèi),可以聲明和使用局部變量、全局變量、直接變量。局部變量是僅僅能在配置、資源、程序、功能或功能塊內(nèi)聲明和存取的變量;全局變量在一個(gè)程序(或配置)內(nèi)聲明,它能被程序(配置)內(nèi)的所有軟件元件存??;直接變量是PLC程序的內(nèi)存區(qū)直接用地址變量來(lái)表示的變量。存取路徑提供了在不同的配置之間交換數(shù)據(jù)和信息的設(shè)備。每一配置內(nèi)的變量可被其它遠(yuǎn)程配置存取。配置之間存取數(shù)據(jù)和信息可采用基于以太網(wǎng)的網(wǎng)絡(luò),現(xiàn)場(chǎng)總線(xiàn)或通過(guò)底板總線(xiàn)交換數(shù)據(jù)。
4、軟件模型到實(shí)際系統(tǒng)的映射 IEC 軟件模型到實(shí)際系統(tǒng)的映射,針對(duì)不同的系統(tǒng)有如下的不同的映射關(guān)系: 1.具有一個(gè)主處理器的小型系統(tǒng):小型系統(tǒng)的模型典型地退化為一個(gè)配置、一個(gè)資源和一條程序。 2.具有多處理器的較復(fù)雜系統(tǒng):整個(gè)PLC被看作一個(gè)配置,每個(gè)處理器用一個(gè)資源描述,一個(gè)資源支持一條或多條程序。 3. 對(duì)于分散PLC 系統(tǒng):分散PLC 系統(tǒng)將包含多個(gè)配置,一個(gè)配置對(duì)應(yīng)多個(gè)處理器,每個(gè)處理器用一個(gè)資源描述,一個(gè)資源支持一條或多條程序。 IEC 軟件模型可以充分地適應(yīng)于從簡(jiǎn)單到較復(fù)雜PLC系統(tǒng),甚至是非常復(fù)雜的PLC系統(tǒng),這就大大地?cái)U(kuò)展了傳統(tǒng)PLC的應(yīng)用范圍和領(lǐng)域。
五、 IEC 軟件模型的優(yōu)點(diǎn) IEC 軟件模型具有如下優(yōu)點(diǎn): 1.在一臺(tái)PLC中同時(shí)裝載、啟動(dòng)和執(zhí)行多個(gè)獨(dú)立的程序:IEC 1131-3標(biāo)準(zhǔn)允許一個(gè)“配置”內(nèi)有多個(gè)“資源”,每個(gè)“資源”能夠支持多個(gè)程序,這使得在一臺(tái)PLC中可以同時(shí)裝載、啟動(dòng)和執(zhí)行多個(gè)獨(dú)立的程序,而傳統(tǒng)的PLC程序只能同時(shí)運(yùn)行一個(gè)程序。 2.實(shí)現(xiàn)對(duì)程序執(zhí)行的完全控制能力:IEC1131-3標(biāo)準(zhǔn)的這種“任務(wù)”機(jī)制,保證了PLC系統(tǒng)對(duì)程序執(zhí)行的完全控制能力。傳統(tǒng)PLC程序只能順序掃描、執(zhí)行程序,對(duì)某一段程序不能按用戶(hù)的實(shí)際要求定時(shí)執(zhí)行,而IEC 1131-3 程序允許程序的不同部分在不同的時(shí)間、以不同的比率并行執(zhí)行,這大大地?cái)U(kuò)大了PLC的應(yīng)用范圍。 3.IEC軟件模型能夠適應(yīng)很廣范圍的不同的PLC結(jié)構(gòu):IEC軟件模型是一個(gè)國(guó)際標(biāo)準(zhǔn)的軟件模型,它不是針對(duì)具體的PLC系統(tǒng),而是具有很強(qiáng)的適用性。 4. IEC軟件模型既能適合小型的PLC系統(tǒng),也可適合較大的分散系統(tǒng)。 5. IEC軟件支持程序組織單元的重用特性:軟件的重用性是IEC軟件的重要優(yōu)點(diǎn)。 6. IEC軟件支持分層設(shè)計(jì):一個(gè)復(fù)雜的IEC軟件通??梢酝ㄟ^(guò)一層層的分解,最終分解為可管理的程序單元。
六、通訊模型根據(jù)不同的通訊要求,IEC 1131標(biāo)準(zhǔn)規(guī)定了以下四種通訊模型: 1.內(nèi)部通訊:在程序、功能塊和功能內(nèi)部之間可以互相連接以形成一個(gè)網(wǎng)絡(luò),數(shù)據(jù)信息可以通過(guò)這個(gè)內(nèi)部的網(wǎng)絡(luò)進(jìn)行通訊。 2.局變量通訊:全局變量可以被用來(lái)在功能塊與其它的程序組織單元之間交換數(shù)據(jù)信息。 3. 外部變量通訊:IEC 1131的第五部分定義了一個(gè)通訊功能塊家族來(lái)通過(guò)一個(gè)網(wǎng)絡(luò)來(lái)交換數(shù)據(jù)。 4.使用存取路徑通訊:存取變量提供了一種方法用于從遠(yuǎn)程設(shè)備存取特定的變量。丁一在IEC 1131的第五部分的通訊功能塊還能讀寫(xiě)遠(yuǎn)程配置中的ACCESS變量。 IEC 1131標(biāo)準(zhǔn)規(guī)定的這四種通訊模型,使得不但在IEC編程系統(tǒng)內(nèi)部的通訊靈活、便捷,而且還有效地支持了IEC編程系統(tǒng)的功能擴(kuò)展對(duì)通訊提出的要求,使得新一代編程系統(tǒng)可以更有效地適應(yīng)未來(lái)對(duì)網(wǎng)絡(luò)、現(xiàn)場(chǎng)總線(xiàn)、遠(yuǎn)程通訊等新技術(shù)發(fā)展的要求。七、公共元素公共元素描述了IEC 1131-3五種編程語(yǔ)言、IEC 軟件模型及通訊模型中需用到的全部公共編程元素的變量和數(shù)據(jù)類(lèi)型,給出了如何命名這些軟件元素、聲明變量、變量及數(shù)據(jù)類(lèi)型的初始化等規(guī)則,是實(shí)現(xiàn)IEC 1131-3編程系統(tǒng)不可缺少的有機(jī)組成部分。八、結(jié)論 IEC 1131-3軟件是一個(gè)功能強(qiáng)大、設(shè)計(jì)思想和技術(shù)先進(jìn)并能很好地適應(yīng)未來(lái)發(fā)展的編程系統(tǒng)。
IEC 1131-3 的編程語(yǔ)言(一):文本化語(yǔ)言 IEC 1131-3國(guó)際標(biāo)準(zhǔn)的編程語(yǔ)言包括圖形化編程語(yǔ)言和文本化編程語(yǔ)言。圖形化編程語(yǔ)言包括:梯形圖(LD-Ladder Diagram)、功能塊圖(FBD - Function Block Diagram)、順序功能圖(SFC - Sequential Function Chart)。文本化編程語(yǔ)言包括:指令表(IL-Instruction List)和結(jié)構(gòu)化文本 (ST-Strutured Text)。IEC 1131-3的編程語(yǔ)言是IEC工作組對(duì)世界范圍的PLC廠(chǎng)家的編程語(yǔ)言合理地吸收、借鑒的基礎(chǔ)上形成的一套針對(duì)工業(yè)控制系統(tǒng)的國(guó)際編程語(yǔ)言標(biāo)準(zhǔn),它不但適用于PLC系統(tǒng),而且還適用于更廣泛的工業(yè)控制領(lǐng)域;IEC 1131-3 的編程工具提供對(duì)現(xiàn)場(chǎng)總線(xiàn)系統(tǒng)的支持,并對(duì)現(xiàn)場(chǎng)總線(xiàn)裝置的軟件設(shè)計(jì)產(chǎn)生了很大影響。本專(zhuān)題將分兩部分介紹IEC 1131-3的編程語(yǔ)言,本文是IEC 1131-3編程語(yǔ)言的第一部分,重點(diǎn)介紹IEC 1131-3的兩種文本化編程語(yǔ)言;第二部分重點(diǎn)介紹IEC 1131-3的兩種三種圖形化編程語(yǔ)言,將在下一篇文章作介紹。
一、結(jié)構(gòu)化文本(ST)結(jié)構(gòu)化文本(ST)是一種高級(jí)的文本語(yǔ)言,可以用來(lái)描述功能,功能塊和程序的行為,還可以在順序功能流程圖中描述步、動(dòng)作和轉(zhuǎn)變的行為。結(jié)構(gòu)化文本(ST)語(yǔ)言表面上與PASCAL語(yǔ)言很相似,但它是一個(gè)專(zhuān)門(mén)為工業(yè)控制應(yīng)用開(kāi)發(fā)的編程語(yǔ)言,具有很強(qiáng)的編程能力用于對(duì)變量賦值、回調(diào)功能和功能塊、創(chuàng)建表達(dá)式、編寫(xiě)條件語(yǔ)句和迭代程序等。結(jié)構(gòu)化文本(ST)非常適合應(yīng)用在有復(fù)雜的算術(shù)計(jì)算的應(yīng)用中。結(jié)構(gòu)化文本(ST)程序格式自由,可以在關(guān)鍵詞與標(biāo)識(shí)符之間任何地方插入制表符、換行字符和注釋。對(duì)于熟悉計(jì)算機(jī)高級(jí)語(yǔ)言開(kāi)發(fā)的人員來(lái)說(shuō),結(jié)構(gòu)化文本(ST)語(yǔ)言更是易學(xué)易用。此外,結(jié)構(gòu)化文本(ST)語(yǔ)言還易讀易理解,特別是當(dāng)用有實(shí)際意義的標(biāo)識(shí)符、批注來(lái)注釋時(shí),更是這樣。
1.1 操作符結(jié)構(gòu)化文本(ST)定義了一系列操作符用于實(shí)現(xiàn)算術(shù)和邏輯運(yùn)算,如邏輯運(yùn)算符:AND,&,XOR,OR; 算術(shù)運(yùn)算符:<, >, <=, >=, =, <>, +, -, MOD, / 等,此外,還定義了這些操作符的優(yōu)先級(jí)。如下是操作符預(yù)算的兩個(gè)例子: Start := Oilpress AND Stream AND Pump; V : = K*(-W*T)
1.2 賦值語(yǔ)句 結(jié)構(gòu)化文本(ST)程序既支持很簡(jiǎn)單的賦值語(yǔ)句,如 X:=Y, 也支持很復(fù)雜的數(shù)組或結(jié)構(gòu)賦值,如Profile[3]:=10.3+SQRT((Rate+2.0)), Alarm.TimeOn:=RCT1.CDT。
1.3在程序中調(diào)用功能塊在結(jié)構(gòu)化文本(ST)程序中可以直接調(diào)用功能塊。功能塊在被調(diào)用以前,輸入?yún)?shù)被分配為缺省值;在調(diào)用后,輸入?yún)?shù)值保留為最后一次調(diào)用的值。功能塊調(diào)用的格式如下: FunctionBlockInstance( bbbbbbbbbbeter1:=Valuebbbbbbbbbb1, bbbbbbbbbbeter2:=Valuebbbbbbbbbb2, …); Valuebbbbbbbbbb1……ValuebbbbbbbbbbN是符合功能塊數(shù)據(jù)類(lèi)型輸入變量,bbbbbbbbbbeter1……bbbbbbbbbbeterN功能塊的輸入?yún)?shù)。FunctionBlockInstance是要調(diào)用的功能塊。
1.4結(jié)構(gòu)化文本(ST)程序中的條件語(yǔ)句條件語(yǔ)句的功能是,某一條件滿(mǎn)足時(shí)執(zhí)行相應(yīng)的選擇語(yǔ)句。結(jié)構(gòu)化文本(ST)有如下的條件語(yǔ)句: l IF …THEN…ELSE條件語(yǔ)句該選擇語(yǔ)句依據(jù)不同的條件分別執(zhí)行相應(yīng)THEN及ELSE語(yǔ)句。該條件語(yǔ)句可以嵌套入另一條件語(yǔ)句中,以實(shí)現(xiàn)更復(fù)雜的條件語(yǔ)句。條件語(yǔ)句的格式如下: IF<boolean bbbbbbbbbb_r> THEN <statements1…> ELSE < statements2…> END_IF; “boolean bbbbbbbbbb_r”可以是“true”或“false”,根據(jù)“true”或“false”的情況,程序執(zhí)行相應(yīng)的statements1或statements2語(yǔ)句。 l CASE 條件語(yǔ)句該選擇語(yǔ)句的執(zhí)行方向取決于CASE語(yǔ)句的條件, 并有一返回值。實(shí)例見(jiàn)最后的應(yīng)用舉例。該條件語(yǔ)句的格式如下: CASE<integer bbbbbbbbbb_r >OF < integer selector value1> : < statements1…> < integer selector value2> : < statements2…> …… ELSE < statements …> END_CASE; “integer bbbbbbbbbb_r”可以是一個(gè)數(shù)值,根據(jù)數(shù)值的不同執(zhí)行相應(yīng)的statements1或statements2等語(yǔ)句。
1.5 結(jié)構(gòu)化文本(ST)程序中的迭代語(yǔ)句迭代語(yǔ)句適用于需要一條或多條語(yǔ)句重復(fù)執(zhí)行許多次的情況,迭代語(yǔ)句的執(zhí)行取決于某一變量或條件的狀態(tài)。應(yīng)用迭代語(yǔ)句應(yīng)避免迭代死循環(huán)的情況。 l FOR…DO 該迭代格式語(yǔ)句允許程序依據(jù)某一整型變量迭代。該迭代格式語(yǔ)句格式如下: FOR <initialize iteraion variable> TO <final value bbbbbbbbbb_r> BY <increment bbbbbbbbbb_r> DO <statements…> END_FOR “initialize iteraion variable”是迭代開(kāi)始的計(jì)數(shù)值,“final value bbbbbbbbbb_r” 迭代結(jié)束的計(jì)數(shù)值。迭代從“initialize iteraion variable”開(kāi)始,每迭代一次,計(jì)數(shù)值增加“increment bbbbbbbbbb_r”,計(jì)數(shù)值增加到“final value bbbbbbbbbb_r”,迭代結(jié)束。結(jié)構(gòu)化文本(ST)程序中還有其它的迭代語(yǔ)句,如WHILE … DO,REPEAT … UNTIL等,迭代原理與FOR…DO 格式基本相同。此外,結(jié)構(gòu)化文本(ST)的迭代語(yǔ)句中還有EXIT,RETURN兩種格式,分別用于程序的返回和退出。
1.6 編程舉例:用結(jié)構(gòu)化文本(ST)程序編功能塊本程序是一用結(jié)構(gòu)化文本(ST)程序編功能塊的例子。該實(shí)例描述的是如何用功能塊控制箱體中的流體,箱體可以通過(guò)閥門(mén)被注滿(mǎn)和倒空,如圖所示,箱體的重量由一個(gè)稱(chēng)重單元監(jiān)視。功能塊通過(guò)比較兩個(gè)輸入值FullWeight和EmptyWeight以確定箱體是滿(mǎn)的還是空的。圖一 水箱控制及功能塊示意圖 該功能塊提供了一個(gè)“Command”輸入,該輸入有四種狀態(tài),1.給箱體加水;2. 保持不變;3.起動(dòng)“Stirrer”;4. 清空箱體。實(shí)現(xiàn)該功能塊算法的結(jié)構(gòu)化文本(ST)程序如下: (*箱體狀態(tài)*) TYPE_T_STATE: (FULL,NOT_FULL,EMPTIED);END_TYPE; (*閥門(mén)狀態(tài)*) TYPE_T_VALVE: (OPEN,SHUT);END_TYPE; FUNCTION_BLOCK TankControl VAR_IN (**) Command:SINT; Weight :REAL; FullWeight,EmptyWeight : REAL; END_VAR VAR_OUT (**) FillValve :T_VALVE:=SHUT; EmptyValve :T_VALVE:=SHUT; StirSpeed :REAL:=0.0; END_VAR VAR State :=T_STATE :=EMPTYIED; END_VAR
二、指令表(IL-Instruction List) IEC 1131-3的指令表(IL-Instruction List)語(yǔ)言是一種低級(jí)語(yǔ)言,與匯編語(yǔ)言很相似,是在借鑒、吸收世界范圍的PLC廠(chǎng)商的指令表語(yǔ)言的基礎(chǔ)上形成的一種標(biāo)準(zhǔn)語(yǔ)言,可以用來(lái)描述功能,功能塊和程序的行為,還可以在順序功能流程圖中描動(dòng)作和轉(zhuǎn)變的行為。指令表語(yǔ)言能用于調(diào)用,如有條件和無(wú)條件地調(diào)用功能塊和功能,還能執(zhí)行賦值以及在區(qū)段內(nèi)執(zhí)行有條件或無(wú)條件的轉(zhuǎn)移。指令表語(yǔ)言不但簡(jiǎn)單易學(xué),而且非常容易實(shí)現(xiàn),可不通過(guò)編譯和連編就可以下載到PLC。IEC 1131-3的其它語(yǔ)言如功能塊圖、結(jié)構(gòu)化文本等都可以轉(zhuǎn)換為指令表語(yǔ)言。
2.1指令表語(yǔ)言結(jié)構(gòu)指令表語(yǔ)言是由一系列指令組成的語(yǔ)言。每條指令在新一行開(kāi)始,指令由操作符和緊隨其后的操作數(shù)組成,操作數(shù)是指在IEC 1131-3的“公共元素”中定義的變量和常量。有些操作符可帶若干個(gè)操作數(shù),這時(shí)各個(gè)操作數(shù)用逗號(hào)隔開(kāi)。指令前可加標(biāo)號(hào),后面跟冒號(hào),在操作數(shù)之后可加注釋。 IL是所謂面向累加器(Accu)的語(yǔ)言,即每條指令使用或改變當(dāng)前Accu內(nèi)容。IEC 1131-3將這一Accu標(biāo)記為“結(jié)果”。通常,指令總是以操作數(shù)LD(“裝入Accu命令”)開(kāi)始。指令表程序如下所示:
2.2 指令表操作符 IEC 1131-3指令表包括四類(lèi)操作符:一般操作符、比較操作符、跳轉(zhuǎn)操作符和調(diào)用操作符。
2.2.1一般操作符符指令表一般操作符是指在程序中經(jīng)常會(huì)用到的操作符. l 裝入指令:LD N等。 l 邏輯指令:AND N( (與指令)、OR N( (或指令)、XOR N( (異或指令)等。 l 算術(shù)指令:ADD ((加指令)、SUB((減指令)、MUL ( (乘指令),DIV((除指令)、MOD ( (取模指令)等。 2.2.2 比較指令:GT ( (大于)、GE ( (大于等于)、EQ( (等于)、 NE( (不等于)、 LE( (小于等于)、 LT( (小于)等。 2.2.3 跳轉(zhuǎn)及調(diào)用操作符 JMP C,N (跳轉(zhuǎn)操作符)、 CALL C,N (調(diào)用操作符)等。
2.3 在指令表中調(diào)用功能及功能塊 在IEC 1131-3指令表的程序中,可以直接調(diào)用功能塊和功能。指令表的功能塊調(diào)用有種格式,功能調(diào)用有兩種格式。詳細(xì)的調(diào)用可見(jiàn)IEC 1131-3標(biāo)準(zhǔn)。
2.4 用指令表定義功能及功能塊指令表可用于定義功能塊和功能。當(dāng)用指令表定義功能時(shí),功能的返回值是結(jié)果寄存內(nèi)的最新值;當(dāng)用指令表定義功能塊時(shí),指令表引用功能塊的輸入?yún)?shù)(VAR_bbbbb),并且把值寫(xiě)到輸出參數(shù)(VAR_OUPUT)。
2.5 指令表與其它語(yǔ)言的移植性指令表語(yǔ)言轉(zhuǎn)換為其它語(yǔ)言是非常困難的,除非指令表操作符的使用范圍及書(shū)寫(xiě)格式受到嚴(yán)格的限制,才有可能實(shí)現(xiàn)轉(zhuǎn)換。IEC 1131-3的其它語(yǔ)言較容易轉(zhuǎn)換為指令表。
2.6 IL的編程實(shí)例本例是一個(gè)用指令表程序定義功能的實(shí)例,功能描述的計(jì)算平面上兩點(diǎn)的移動(dòng)距離。 兩點(diǎn)X,Y的坐標(biāo)如下圖所示。 圖二用指令表編功能實(shí)例用結(jié)構(gòu)化文本描述的兩點(diǎn)間距離的計(jì)算公式為:Travel_distance:=SQRT((X1-X2)*(X1-X2)+(Y1-Y2)*(YI-Y2)))。TMax是X,Y兩點(diǎn)見(jiàn)的最大距離,當(dāng)計(jì)算值小于TMax時(shí),說(shuō)明計(jì)算正確;當(dāng)計(jì)算值大于TMax時(shí),說(shuō)明X,Y兩點(diǎn)間的距離超出了最大距離,在這種情況下,功能是沒(méi)有輸出的。用指令表編寫(xiě)的該功能的函數(shù)TRAVEL()如下: FUNCTION TRAVEL : REAL VAR_bbbbb X1,X2,Y1,Y2 : REAL (*點(diǎn)X,Y坐標(biāo)*) TMax : REAL (*最大移動(dòng)距離*) END_VAR VAR Temp : REAL; (*中間值*) END_VAR LD Y1 SUB Y2 (*計(jì)算Y2-Y1*) ST Temp (*將Y2-Y1值存入Temp *) MUL Temp (*計(jì)算(Y2-Y1)的平方*) ADD( X1 SUB X2 (*計(jì)算(X1-X2)*) ST Temp (*將(X1-X2)值存入Temp *) MUL Temp (*計(jì)算(X1-X2)的平方*) ) (*將兩平方值相加*) CAL SQRT (*調(diào)平方根函數(shù)*) ST TRAVEL (*設(shè)定計(jì)算結(jié)果*) GT TMax (*比TMax 大嗎?*) JMPC ERR (*是,轉(zhuǎn)到ERR 執(zhí)行*) S ENO (*設(shè)定ENO *) ERR: RET (*錯(cuò)誤返回,ENO 不輸出*) END_FUNCTION功能塊圖(FBD)、梯形圖(LAD)和順序功能流程圖(SFC)。
一、功能塊圖(FBD - Function Block Diagram)功能塊圖用來(lái)描述功能、功能塊和程序的行為特征,還可以在順序功能流程圖中描述步、動(dòng)作和轉(zhuǎn)變的行為特征。功能塊圖與電子線(xiàn)路圖中的信號(hào)流圖非常相似,在程序中,它可看作兩個(gè)過(guò)程元素之間的信息流。功能塊圖普遍地應(yīng)用在過(guò)程控制領(lǐng)域。功能塊用矩形塊來(lái)表示,每一功能塊的左側(cè)有不少于一個(gè)的輸入端,在右側(cè)有不少于一個(gè)的輸出端,功能塊的類(lèi)型名稱(chēng)通常寫(xiě)在塊內(nèi),但功能塊實(shí)例的名稱(chēng)通常寫(xiě)在塊的上部,功能塊的輸入輸出名稱(chēng)寫(xiě)在塊內(nèi)的輸入輸出點(diǎn)的相應(yīng)地方。
1.1 功能塊圖的信號(hào)流在功能塊網(wǎng)路中,信號(hào)通常是從一個(gè)功能或功能塊的輸出傳遞到另一個(gè)功能或功能塊的輸入。信號(hào)經(jīng)由功能塊左端流入,并求值更新,在功能塊右端流輸出。 l 布爾信號(hào)的取反在使用布爾信號(hào)時(shí),功能或功能塊的取反輸入或輸出可以在輸入端或輸出端用一個(gè)小圓點(diǎn)來(lái)表示,這種表示與在輸入端或輸出端加一個(gè)“取反”功能是一致的。如下圖是一功能塊圖取反的實(shí)例。 l 信號(hào)反饋功能塊圖允許功能塊的輸出反饋回網(wǎng)路左側(cè)的功能塊輸入,形成反饋路徑。下圖是一功能塊反饋路徑的實(shí)例,功能塊Load1的輸出端Level反饋回功能塊Loop1的輸入端ProcessValue。 1.2 功能塊網(wǎng)路設(shè)計(jì) 功能塊圖的設(shè)計(jì)首先應(yīng)該保證主信號(hào)流的線(xiàn)路清晰,避免過(guò)多的信號(hào)跨接和線(xiàn)路方向改變。
1.3 功能的執(zhí)行控制功能塊圖網(wǎng)路中的功能執(zhí)行控制隱含地從各功能所處的位置中表現(xiàn)出來(lái)。每一功能的執(zhí)行隱含地是由一個(gè)輸入使能EN控制,該輸入EN是一個(gè)布爾類(lèi)型變量,允許功能有選擇的求值。當(dāng)輸入EN為T(mén)RUE時(shí),該功能就執(zhí)行,否則,功能不執(zhí)行。功能的輸出ENO也是一個(gè)布爾變量,當(dāng)ENO從FALSE變成TRUE就表明功能已經(jīng)完成了求值。 1.4 跳轉(zhuǎn)和標(biāo)注功能塊圖允許使用“Jump”功能使得功能塊圖控制從程序的一個(gè)部分跳轉(zhuǎn)到另一個(gè)由標(biāo)識(shí)符“Lable”標(biāo)識(shí)的部分繼續(xù)執(zhí)行。如下圖是一個(gè)跳轉(zhuǎn)的實(shí)例:當(dāng)GasLevel的值超過(guò)0。15時(shí),相應(yīng)的控制即轉(zhuǎn)移到有表識(shí)符GAS_ALARM的程序段繼續(xù)執(zhí)行。
1.5 結(jié)構(gòu)化文本與功能塊圖之間的轉(zhuǎn)換特點(diǎn) l 功能塊圖中的大部分程序能夠轉(zhuǎn)換為結(jié)構(gòu)化文本。 l 結(jié)構(gòu)化文本程序能夠容易地轉(zhuǎn)化為功能、功能塊及其相關(guān)的參數(shù)值。 l 結(jié)構(gòu)化文本直接轉(zhuǎn)化為功能塊網(wǎng)路是很困難的,IF…THEN, CASE,FOR, WHILE, REPEAT格式的語(yǔ)句還不能直接轉(zhuǎn)換為功能塊網(wǎng)路。
1.6 連續(xù)功能流程圖(CFC-Continuous Function Chart)連續(xù)功能流程圖是功能塊圖的一種特殊形式,它用于描述資源的頂層結(jié)構(gòu)以及程序和功能塊對(duì)任務(wù)的分配。連續(xù)功能流程圖和功能塊圖之間的主要區(qū)別是資源和任務(wù)分配的不同。每一功能用任務(wù)的名稱(chēng)來(lái)描述,如圖所示。程序也是箱是的情況。如果一個(gè)程序內(nèi)的功能塊象它的父程序一樣在相同的任務(wù)下執(zhí)行,任務(wù)關(guān)聯(lián)是隱含的。在這種情況下,任務(wù)名稱(chēng)就沒(méi)有必要顯示在功能塊中。連續(xù)功能流程圖如圖7所示。
1.7 功能塊圖應(yīng)用實(shí)例如圖是一個(gè)功能塊應(yīng)用的實(shí)例,該實(shí)例描述了用功能塊控制空氣風(fēng)門(mén)的情況。信號(hào)ReqOpen以及ReqClose給出了所要求的風(fēng)門(mén)的位置,該位置被保存在RS雙穩(wěn)態(tài)功能塊中,來(lái)自“bbbbbbbb” 功能塊輸出及轉(zhuǎn)換輸出用于用于產(chǎn)生DemandOpen和DemandClose信號(hào),這些信號(hào)驅(qū)動(dòng)風(fēng)門(mén)轉(zhuǎn)動(dòng)到合適的位置。 圖一 功能塊實(shí)例圖二功能塊程序示意圖風(fēng)門(mén)上的限位開(kāi)關(guān)OpenLS和CloseLS返回的是風(fēng)門(mén)的實(shí)際位置信號(hào)。限位開(kāi)關(guān)信號(hào)與要求的風(fēng)門(mén)位置進(jìn)行與比較,如果任何一個(gè)校對(duì)失敗,比如風(fēng)門(mén)已打開(kāi)到要求的位置,而限位開(kāi)關(guān)OpenLS處于false,延時(shí)計(jì)時(shí)器將起動(dòng)。如果風(fēng)門(mén)未按要求移動(dòng)到要求的位置并且在限定的有限時(shí)間MoveTimeOut內(nèi)不能確定限位開(kāi)關(guān)的情況,定時(shí)器Timer1將產(chǎn)生Discrepancy信號(hào)。二. 梯形圖(LD-Ladder Diagram)梯形圖IEC 1131-3的三種圖形化編程語(yǔ)言種一種,它可被用來(lái)描功能,功能塊和程序即程序組織單元(POU-Porgramm Orgnization Unit)的行為,以及順序功能圖(SFC - Sequential Function Charts)中的行為和轉(zhuǎn)移。
2.1 LD背景梯形圖來(lái)源于美國(guó),它基于圖形表示的繼電器邏輯,是PLC編程中被最廣泛使用一種圖形化語(yǔ)言。梯形圖程序的左、右兩側(cè)有兩垂直的電力軌線(xiàn),左側(cè)的電力軌線(xiàn)名義上為功率流從左向右沿著水平梯級(jí)通過(guò)各個(gè)觸點(diǎn)、功能、功能塊、線(xiàn)圈等提供能量,功率流的終點(diǎn)是右側(cè)的電力軌線(xiàn)。每一個(gè)觸點(diǎn)代表了一個(gè)布爾變量的狀態(tài),每一個(gè)線(xiàn)圈代表了一個(gè)實(shí)際設(shè)備的狀態(tài),功能或功能塊與IEC 1131-3中的標(biāo)準(zhǔn)庫(kù)或用戶(hù)創(chuàng)建的功能或功能塊相對(duì)應(yīng)。一簡(jiǎn)單的梯形圖程序如圖(一)所示。
2.2 IEC 1131-3的LD圖形符號(hào) IEC 1131-3中的梯形圖(LD)語(yǔ)言是對(duì)各PLC廠(chǎng)家的梯形圖(LD)語(yǔ)言合理地吸收、借鑒,語(yǔ)言中的各圖形符號(hào)與各PLC廠(chǎng)家的基本一致。IEC 1131-3的主要的圖形符號(hào)包括:1.觸點(diǎn)類(lèi):常開(kāi)觸點(diǎn)、常閉觸點(diǎn)、正轉(zhuǎn)換讀出觸點(diǎn)、負(fù)轉(zhuǎn)換觸點(diǎn)。2. 線(xiàn)圈類(lèi):一般線(xiàn)圈、取反線(xiàn)圈、置位(鎖存)線(xiàn)圈、復(fù)位去鎖線(xiàn)圈、保持線(xiàn)圈、置位保持線(xiàn)圈、復(fù)位保持線(xiàn)圈、正轉(zhuǎn)換讀出線(xiàn)圈、負(fù)轉(zhuǎn)換讀出線(xiàn)圈。 3. 功能和功能塊:包括標(biāo)準(zhǔn)的功能和功能塊以及用戶(hù)自己定義的功能塊,圖形太多這里未給出。
2.3 IEC 1131-3的LD編程
2.3.1 在梯形圖中連接功能塊功能塊能被連接在梯形圖的梯級(jí)中,每一功能塊有相應(yīng)的布爾輸入和輸出量。輸入量可以被梯形圖梯級(jí)直接驅(qū)動(dòng),輸出可以提供驅(qū)動(dòng)線(xiàn)圈的功率流。在每一個(gè)塊上至少應(yīng)有一個(gè)布爾輸入和布爾輸出以允許功率流通過(guò)這個(gè)塊。功能塊可以是標(biāo)準(zhǔn)庫(kù)中的也可以是自定義的。如下圖二是一個(gè)在梯形圖中連接功能塊以驅(qū)動(dòng)電動(dòng)馬達(dá)的實(shí)例。
2.3.2 在梯形圖中連接功能每一個(gè)功能有一個(gè)附加的布爾輸入EN和布爾輸出ENO。EN提供了流入功能的功率流信號(hào);ENO提供了可用來(lái)驅(qū)動(dòng)其它功能和線(xiàn)圈的功率流。如下圖三是在梯形圖中連接功能的實(shí)例,第一個(gè)功能是在三個(gè)數(shù)中取最大,第二個(gè)功能是從第一功能輸出的最大數(shù)與1000.0比較,根據(jù)比較1000.0的大小來(lái)控制線(xiàn)圈COOL。
2.3.3 在梯形圖中有反饋回路在梯形圖程序中可包含反饋回路,例如,在反饋回路中,一個(gè)或多個(gè)觸點(diǎn)值被用作功能或功能塊的輸入的情況。如圖三是在梯形圖中有反饋回路的情況。
2.3.4 梯形圖中使用跳轉(zhuǎn)和標(biāo)注使用梯形圖的跳轉(zhuǎn)功能使得梯形圖程序可以從程序的一個(gè)部分跳轉(zhuǎn)到由一個(gè)標(biāo)識(shí)符標(biāo)識(shí)的另一部分。如下圖四是在梯形圖中使用跳轉(zhuǎn)和標(biāo)注的實(shí)例,當(dāng)變量OXYGEN或PRESSURE是OFF,控制即轉(zhuǎn)移到由SPARGE標(biāo)識(shí)的控制程序處執(zhí)行。
2.4 ST、FBD及LD之間的可移植性 l 簡(jiǎn)單的主要包含“與”和“或”邏輯梯形圖程序可以與結(jié)構(gòu)化文本程序轉(zhuǎn)換;在大部分的情況下,梯形圖程序可以與功能塊圖程序進(jìn)行轉(zhuǎn)換。 l 用結(jié)構(gòu)化文本描述的功能可以直接與梯形圖、功能塊轉(zhuǎn)換 l 除簡(jiǎn)單的邏輯描述外,由結(jié)構(gòu)化文本程序到梯形圖程序的轉(zhuǎn)換常常是不可能的
2.5 梯形圖編程如圖五是一個(gè)用梯形圖編寫(xiě)的火災(zāi)報(bào)警程序。FD1,FD2和FD3 是三個(gè)火災(zāi)探測(cè)器, 圖三 火災(zāi)報(bào)警系統(tǒng)示意圖 圖四火災(zāi)報(bào)警系統(tǒng)的梯形圖程序 MAN1是一個(gè)手動(dòng)按鈕,用來(lái)觸發(fā)火災(zāi)報(bào)警。當(dāng)三個(gè)探測(cè)器中的任兩個(gè)或三個(gè)全部探測(cè)到有火災(zāi)情況發(fā)生時(shí),于是Alarm_SR功能塊驅(qū)動(dòng)報(bào)警線(xiàn)圈報(bào)警。bbbbbAlarm按鈕清除報(bào)警。當(dāng)有一個(gè)探測(cè)器處于ON,相應(yīng)的火災(zāi)警告指示燈亮。如果該指示燈在報(bào)警清除后繼續(xù)保持亮,就表明該探測(cè)器或者有錯(cuò),或者在該探測(cè)器的附近有火災(zāi)。三. 順序功能流程圖(SFC-Sequential Function Chart) 順序功能流程圖是IEC 1131-3三種圖形化語(yǔ)言中的一種,是一種強(qiáng)大的描述控制程序的順序行為特征的圖形化語(yǔ)言,可對(duì)復(fù)雜的過(guò)程或操作由頂?shù)降椎剡M(jìn)行輔助開(kāi)發(fā)。SFC允許一個(gè)復(fù)雜的問(wèn)題逐層地分解為步和較小的能夠被詳細(xì)分析的順序。
3.1 順序功能流程圖的基本概念順序功能流程圖可以由步、有向連線(xiàn)和過(guò)渡的集合描述。如下圖反映了SFC的主要特征。 l 步步用矩形框表示,描述了被控系統(tǒng)的每一特殊狀態(tài)。MFC中的每一步的名字應(yīng)當(dāng)是唯一的并且應(yīng)當(dāng)在MFC中僅僅出現(xiàn)一次。一個(gè)步可以是激活的,也可以是休止的,只有當(dāng)步處于激活狀態(tài)時(shí),與之相應(yīng)的動(dòng)作才會(huì)被執(zhí)行,至于一個(gè)步是否處于激活狀態(tài),則取決于上一步及過(guò)渡。 l 有向連線(xiàn)有向連線(xiàn)表示功能圖的狀態(tài)轉(zhuǎn)化路線(xiàn),每一步是通過(guò)有向連線(xiàn)連接的。 l 過(guò)渡過(guò)渡表示從一個(gè)步到另一個(gè)步的轉(zhuǎn)化,這種轉(zhuǎn)化并非任意的,只有當(dāng)滿(mǎn)足一定的轉(zhuǎn)換條件時(shí),轉(zhuǎn)化才能發(fā)生。轉(zhuǎn)換條件可以用ST、LD或FBD來(lái)描述。轉(zhuǎn)換定義可以用ST、IL、LD或FBD來(lái)描述。過(guò)渡用一條橫線(xiàn)表示,可以對(duì)過(guò)渡進(jìn)行編號(hào)。 l 動(dòng)作(bbbbbb)每一步是用一個(gè)或多個(gè)動(dòng)作(bbbbbb)來(lái)描述的。動(dòng)作包含了在步被執(zhí)行時(shí)應(yīng)當(dāng)發(fā)生的一些行為的描述,動(dòng)作用一個(gè)附加在步上的矩形框來(lái)表示。每一動(dòng)作可以用IEC的任一語(yǔ)言如ST、FBD、LD或IL來(lái)編寫(xiě)。每一動(dòng)作有一個(gè)限定器(Qulifier),用來(lái)確定動(dòng)作什么時(shí)候執(zhí)行;標(biāo)準(zhǔn)還定義了一系列限定器(Qulifier),精確地定義了一個(gè)特定與步相關(guān)的動(dòng)作什么時(shí)候執(zhí)行。每一動(dòng)作還有一個(gè)指示器變量,該變量?jī)H僅是用于注釋。動(dòng)作的表示如下圖所示: l 轉(zhuǎn)化規(guī)則順序功能流程圖的任一步可能是激活的,也可能是休止的,與之相應(yīng)的動(dòng)作(bbbbbb)只有在步處于激活狀態(tài)時(shí),方能被執(zhí)行,所以,步被激活和被休止的過(guò)程編確定了系統(tǒng)的行為。初始狀態(tài)是指指令運(yùn)行的開(kāi)始即被激活的那個(gè)狀態(tài),這個(gè)步的標(biāo)志為S0。每個(gè)過(guò)程都可以是有效的,也可以是無(wú)效的,只有緊接其前的各個(gè)階段都處于激活狀態(tài)時(shí),過(guò)渡才是有效的,只有同時(shí)滿(mǎn)足(1)過(guò)渡是有效的(2)過(guò)渡對(duì)應(yīng)的接受特性為真,與過(guò)渡相連的下一步方能處于激活狀態(tài),同時(shí),緊接其前的各個(gè)步全部被休止。當(dāng)幾個(gè)過(guò)渡可以同時(shí)被超越時(shí),他們將同時(shí)被超越。
3.2 順序功能流程圖(SFC)的幾種主要形式按著結(jié)構(gòu)的不同,順序功能流程圖(SFC)可分為以下幾種形式:單序列控制、同時(shí)序列控制、分支結(jié)構(gòu)序列、轉(zhuǎn)移序列和起始步。
3.3 順序功能流程圖(SFC)的程序執(zhí)行順序功能流程圖(SFC)程序的執(zhí)行應(yīng)遵循相應(yīng)的規(guī)則,每一程序組織單元(POU)與一任務(wù)(task)相對(duì)應(yīng),任務(wù)負(fù)責(zé)周期性地執(zhí)行程序組織單元(POU)內(nèi)的IEC程序,順序功能流程圖(SFC)內(nèi)的動(dòng)作也是以同樣周期被執(zhí)行。
3.4 對(duì)不安全的SFC的處理 SFC編譯器有能力采用相應(yīng)的算法檢測(cè)到某些結(jié)構(gòu)不安全的SFC。如果一個(gè)完全整個(gè)流程圖能分解為一個(gè)單步,該SFC就是安全的,否則是不安全的。 3.5 SFC編程舉例我們現(xiàn)在用SFC編寫(xiě)一個(gè)工業(yè)電梯(lift)程序。電梯(lift)系統(tǒng)如圖所示。電梯通過(guò) 圖五 提升機(jī)示意圖圖六提升機(jī)控制的SFC程序一個(gè)電動(dòng)絞車(chē)控制上升或下降,可按要求停止在任一樓層。當(dāng)電梯將到達(dá)某一被選樓層的位置時(shí),一微型接近開(kāi)關(guān)(Proximity Switch)起作用并發(fā)出信號(hào),讓電梯減速并停在正確的位置。當(dāng)電梯停下后,門(mén)微動(dòng)開(kāi)關(guān)(Floor Switches)起作用并將門(mén)打開(kāi)。該工業(yè)電梯(lift)的MFC程序如圖所示。程序從“Init”起始步開(kāi)始。主要順序從“DoorOpen”步開(kāi)始,依次執(zhí)行“Shutting”步、“MoveLeft”步、“Inching”步、 “Stopping”步、 “Opening”步等,最終實(shí)現(xiàn)對(duì)電梯的順序控制。










