編者語(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)的所有軟件元件存。恢苯幼兞渴荘LC程序的內(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( InputParameter1:=ValueExpression1, InputParameter2:=ValueExpression2, …); ValueExpression1……ValueExpressionN是符合功能塊數(shù)據(jù)類(lèi)型輸入變量,InputParameter1……InputParameterN功能塊的輸入?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 expression_r> THEN <statements1…> ELSE < statements2…> END_IF; “boolean expression_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 expression_r >OF < integer selector value1> : < statements1…> < integer selector value2> : < statements2…> …… ELSE < statements …> END_CASE; “integer expression_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 expression_r> BY <increment expression_r> DO <statements…> END_FOR “initialize iteraion variable”是迭代開(kāi)始的計(jì)數(shù)值,“final value expression_r” 迭代結(jié)束的計(jì)數(shù)值。迭代從“initialize iteraion variable”開(kāi)始,每迭代一次,計(jì)數(shù)值增加“increment expression_r”,計(jì)數(shù)值增加到“final value expression_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ǔ)言。