官术网_书友最值得收藏!

1.3 PLC編程語(yǔ)言標(biāo)準(zhǔn)IEC 61131-3

1.3.1 IEC 61131的基本情況

對(duì)于PLC作為計(jì)算機(jī)控制技術(shù)來(lái)說(shuō),最大的問(wèn)題在于它的不通用,盡管它最早于1968年開(kāi)始產(chǎn)生并已經(jīng)大量應(yīng)用于工業(yè)生產(chǎn)。而IEC61131-3編程語(yǔ)言標(biāo)準(zhǔn)的出現(xiàn)則為PLC的進(jìn)一步規(guī)范發(fā)展奠定了基礎(chǔ)。

目前,傳統(tǒng)的PLC公司如西門(mén)子、三菱、Rockwell、Moeller、LG、GE等編程系統(tǒng)的開(kāi)發(fā)均是以IEC 61131-3為基礎(chǔ)或與IEC 61131-3一致。盡管這些編程工具距離標(biāo)準(zhǔn)的IEC61131-3語(yǔ)言還有一定距離,但這些公司的編程系統(tǒng)會(huì)逐漸或終將與IEC 61131-3編程語(yǔ)言一致,是毋庸置疑的。

1.IEC 61131大致情況

IEC 61131是國(guó)際電工委員會(huì)(IEC)制定的PLC標(biāo)準(zhǔn)。

IEC 61131標(biāo)準(zhǔn)區(qū)分成以下幾個(gè)部分:

第1部分:一般資訊;第2部分:設(shè)備需求與測(cè)試;第3部分:編程語(yǔ)言;第4部分:使用者指引;第5部分:訊息服務(wù)規(guī)格;第6部分:通過(guò)fieldbus通信;第7部分:模糊控制程式編輯;第8部分:編程語(yǔ)言應(yīng)用與導(dǎo)入指引。

IEC 61131-3則是屬于該標(biāo)準(zhǔn)的第3部分編程語(yǔ)言。

2.編程語(yǔ)言IEC 61131-3的現(xiàn)狀和發(fā)展

1993年國(guó)際電工委員會(huì)(IEC)正式頒布了PLC的國(guó)際標(biāo)準(zhǔn)IEC 61131-3,規(guī)范了PLC的編程語(yǔ)言及其基本元素。這一標(biāo)準(zhǔn)為PLC軟件技術(shù)的發(fā)展,乃至整個(gè)工業(yè)控制軟件技術(shù)的發(fā)展,起到了舉足輕重的推動(dòng)作用。它是全世界控制工業(yè)第一次制定的有關(guān)數(shù)字控制軟件技術(shù)的編程語(yǔ)言標(biāo)準(zhǔn)。此前,國(guó)際上沒(méi)有出現(xiàn)過(guò)有實(shí)際意義的,為制定通用的控制語(yǔ)言而開(kāi)展的標(biāo)準(zhǔn)化活動(dòng)。可以說(shuō),沒(méi)有編程語(yǔ)言的標(biāo)準(zhǔn)化便沒(méi)有今天PLC走向開(kāi)放式系統(tǒng)的堅(jiān)實(shí)基礎(chǔ)。

傳統(tǒng)的PLC最常用的編程語(yǔ)言是梯形圖,它遵從了廣大電氣自動(dòng)化人員的專業(yè)習(xí)慣,易學(xué)易用,但是也存在許多難以克服的缺點(diǎn):

1)不同廠商的PLC產(chǎn)品其梯形圖的符號(hào)和編程規(guī)則均不一致,程序的可移植性差。

2)程序可復(fù)用性差。為了減少重復(fù)勞動(dòng),現(xiàn)代軟件編程特別強(qiáng)調(diào)程序的可重復(fù)使用。傳統(tǒng)的梯形圖編程很難在調(diào)用子程序時(shí)通過(guò)變量賦值實(shí)現(xiàn)相同的邏輯算法和策略的反復(fù)使用。

3)缺乏足夠的程序封裝能力。一般要求將一個(gè)復(fù)雜的程序分解為若干個(gè)不同功能的程序模塊?;蛘哒f(shuō),人們?cè)诰幊虝r(shí)希望用不同的功能模塊組合成一個(gè)復(fù)雜的程序,梯形圖編程難以實(shí)現(xiàn)各程序模塊之間具有清晰接口的模塊化,也難以對(duì)外部隱藏程序模塊內(nèi)部數(shù)據(jù)實(shí)現(xiàn)程序模塊的封裝。

4)不支持?jǐn)?shù)據(jù)結(jié)構(gòu)。梯形圖編程不支持?jǐn)?shù)據(jù)結(jié)構(gòu),無(wú)法實(shí)現(xiàn)將數(shù)據(jù)組織成如Pascal、C語(yǔ)言等高級(jí)語(yǔ)言中的數(shù)據(jù)結(jié)構(gòu)那樣的數(shù)據(jù)類型。對(duì)于一些復(fù)雜應(yīng)用的編程,它幾乎無(wú)能為力。

5)程序執(zhí)行具有局限性。由于傳統(tǒng)PLC按掃描方式組織程序的執(zhí)行,因此整個(gè)程序的指令代碼完全按順序逐條執(zhí)行。對(duì)于要求即時(shí)響應(yīng)的程序應(yīng)用(如執(zhí)行事件驅(qū)動(dòng)的程序模塊),具有很大的局限性。

6)進(jìn)行順序控制功能編程時(shí),一般只能為每一個(gè)順控狀態(tài)定義一個(gè)狀態(tài)位,難以實(shí)現(xiàn)選擇或并行等復(fù)雜順控操作。

7)傳統(tǒng)的梯形圖編程在算術(shù)運(yùn)算處理、字符串或文字處理等方面均不能提供強(qiáng)有力的支持。

在IEC 61131-3標(biāo)準(zhǔn)的制定過(guò)程中就面臨著在突破舊有的編程語(yǔ)言不足的同時(shí),又要繼承其合理和有效的部分。

3.兼容并蓄是IEC 61131-3成功的基礎(chǔ)

IEC 61131-3的制定,集中了美國(guó)、加拿大、歐洲(主要是德國(guó)、法國(guó))以及日本等7家國(guó)際性工業(yè)控制企業(yè)的專家和學(xué)者的智慧,以及數(shù)十年在工控方面的經(jīng)驗(yàn)。在制定這一編程語(yǔ)言標(biāo)準(zhǔn)的過(guò)程中,PLC正處在其發(fā)展和推廣應(yīng)用的鼎盛時(shí)期。主要是在北美和日本,普遍運(yùn)用梯形圖(LD)語(yǔ)言編程;在歐洲,則使用功能塊圖(FBD)和順序功能圖(SFC);德國(guó)和日本,又常常采用指令表(IL)對(duì)PLC進(jìn)行編程。

為了擴(kuò)展PLC的功能,特別是加強(qiáng)PLC的數(shù)據(jù)處理、文字處理,以及通信功能的能力,許多PLC還允許使用高級(jí)語(yǔ)言(如BASIC語(yǔ)言、C語(yǔ)言)。因此,制定這一標(biāo)準(zhǔn)的首要任務(wù)就是把現(xiàn)代軟件的概念和現(xiàn)代軟件工程的機(jī)制應(yīng)用于傳統(tǒng)的PLC編程語(yǔ)言。

IEC 61131-3規(guī)定了兩大類編程語(yǔ)言:文本化編程語(yǔ)言和圖形化編程語(yǔ)言。前者包括指令清單語(yǔ)言(IL)和結(jié)構(gòu)化文本語(yǔ)言(ST),后者包括梯形圖語(yǔ)言(LD)和功能塊圖語(yǔ)言(FBD)。至于順序功能圖(SFC),標(biāo)準(zhǔn)不把它單獨(dú)列入編程語(yǔ)言的一種,而是將它在公用元素中予以規(guī)范。這就是說(shuō),不論在文本化語(yǔ)言中,或者在圖形化語(yǔ)言中,都可以運(yùn)用SFC的概念、句法和語(yǔ)法。于是,在我們現(xiàn)在所使用的編程語(yǔ)言中,可以在梯形圖語(yǔ)言中使用SFC,也可以在指令清單語(yǔ)言中使用SFC。

IEC 61131-3允許在同一個(gè)PLC中使用多種編程語(yǔ)言,允許程序開(kāi)發(fā)人員對(duì)每一個(gè)特定的任務(wù)選擇最合適的編程語(yǔ)言,還允許在同一個(gè)控制程序中其不同的軟件模塊用不同的編程語(yǔ)言編制。這一規(guī)定妥善繼承了PLC發(fā)展歷史中形成的編程語(yǔ)言多樣化的現(xiàn)實(shí),又為PLC軟件技術(shù)的進(jìn)一步發(fā)展提供了足夠的空間。

自IEC 61131-3正式公布后,它獲得了廣泛的接受和支持:

1)國(guó)際上各大PLC廠商都宣布其產(chǎn)品符合該標(biāo)準(zhǔn)的規(guī)范(盡管這些公司的軟件工具距離標(biāo)準(zhǔn)的IEC 61131-3語(yǔ)言尚有一定距離),在推出其編程軟件新產(chǎn)品時(shí),遵循該標(biāo)準(zhǔn)的各種規(guī)定。

2)以PLC為基礎(chǔ)的控制作為一種新興控制技術(shù)正在迅速發(fā)展,大多數(shù)PLC控制的軟件開(kāi)發(fā)商都按照IEC 61131-3的編程語(yǔ)言標(biāo)準(zhǔn)規(guī)范其軟件產(chǎn)品的特性。

3)正因?yàn)橛辛薎EC 61131-3,才真正出現(xiàn)了一種開(kāi)放式的PLC的編程軟件包,它不具體地依賴于特定的PLC硬件產(chǎn)品,這就為PLC的程序在不同機(jī)型之間的移植提供了可能。

總部設(shè)在荷蘭的國(guó)際性組織PLC open在推廣該標(biāo)準(zhǔn)的應(yīng)用并開(kāi)發(fā)相關(guān)的軟件產(chǎn)品,以及謀求該標(biāo)準(zhǔn)的進(jìn)一步發(fā)展進(jìn)行了不懈的努力,獲得了廣泛的響應(yīng)和優(yōu)秀的成績(jī)。以上這些事實(shí)有力地說(shuō)明了這個(gè)編程語(yǔ)言標(biāo)準(zhǔn)的生命力。

1.3.2 IEC 61131-3的軟件模型

1.軟件模型概述

IEC 61131-3標(biāo)準(zhǔn)的軟件模型用分層結(jié)構(gòu)表示。每一層隱含其下層的許多特性,從而構(gòu)成優(yōu)于傳統(tǒng)PLC軟件的理論基礎(chǔ)。

軟件模型描述基本的高級(jí)軟件元素及其相互關(guān)系。這些元素包括:程序組織單元,即程序和功能塊;組態(tài)元素,即配置、資源、任務(wù)、全局變量和存取路徑。它是現(xiàn)代PLC的軟件基礎(chǔ)。圖1-17所示是IEC 61131-3標(biāo)準(zhǔn)的軟件模型。

IEC 61131-3軟件模型從理論上描述了如何將一個(gè)復(fù)雜程序分解為若干小的可管理部分,并在各分解部分之間有清晰和規(guī)范的接口方法。軟件模型描述一臺(tái)PLC如何實(shí)現(xiàn)多個(gè)獨(dú)立程序的同時(shí)裝載和運(yùn)行,如何實(shí)現(xiàn)對(duì)程序執(zhí)行的完全控制等。

IEC 61131-3軟件模型分為輸入/輸出界面、通信界面和系統(tǒng)界面三部分。

(1)輸入/輸出界面 每個(gè)PLC系統(tǒng)都需要讀取來(lái)自實(shí)際過(guò)程的輸入,例如來(lái)自微動(dòng)開(kāi)關(guān)、壓力傳感器、溫度傳感器等物理通道的信號(hào)。它也經(jīng)物理通道輸出信號(hào)到各種執(zhí)行器,如電磁閥、繼電器線圈、伺服與變頻器等。

(2)通信界面 大多數(shù)PLC系統(tǒng)需要與其他設(shè)備進(jìn)行信息交換,以提供顯示畫(huà)面和操作面板等。

(3)系統(tǒng)界面 在PLC的硬件和軟件之間需要系統(tǒng)界面,系統(tǒng)服務(wù)器需要確保程序可初始化和正確運(yùn)行,提供硬件與嵌入式系統(tǒng)的軟件之間的組合。

978-7-111-41181-9-Chapter01-19.jpg

圖1-17 IEC 61131-3標(biāo)準(zhǔn)的軟件模型

2.配置

配置(Configuration)是語(yǔ)言元素或結(jié)構(gòu)元素,它位于軟件模型的最上層,是大型的語(yǔ)言元素。

配置是PLC的整個(gè)軟件,它用于定義特定應(yīng)用的PLC系統(tǒng)特性,是一個(gè)特定類型的控制系統(tǒng),它包括硬件裝置、處理資源、I/O通道的存儲(chǔ)地址和系統(tǒng)能力。

配置的定義用關(guān)鍵字CONFIGURATION開(kāi)始,隨后是配置名稱和配置聲明,最后用END_CONFIGURATION結(jié)束。配置聲明包括定義該配置的有關(guān)類型和全局變量的聲明、在配置內(nèi)資源的聲明、存取路徑變量的聲明和配置變量聲明等。

以下是一個(gè)配置的案例:

978-7-111-41181-9-Chapter01-20.jpg

978-7-111-41181-9-Chapter01-21.jpg

在配置案例中,配置名CELL_1有一個(gè)全局變量,其變量名為w,數(shù)據(jù)類型為UINT。給配置有兩個(gè)資源,同時(shí)也聲明了配置中有關(guān)變量的存取路徑變量。圖1-18所示是本案例軟件模型的圖形表示。

978-7-111-41181-9-Chapter01-22.jpg

圖1-18 軟件模型的圖形表示

3.資源

資源在一個(gè)“配置”中可以定義一個(gè)或多個(gè)“資源”??砂选百Y源”看作能執(zhí)行IEC程序的處理手段,它反映PLC的物理結(jié)構(gòu),在程序和PLC的物理I/O通道之間提供了一個(gè)接口。只有在裝入“資源”后才能執(zhí)行IEC程序。一般而言,通常資源放在PLC內(nèi),當(dāng)然它也可以放在其他支持IEC程序執(zhí)行的系統(tǒng)內(nèi)。

在上述的配置案例中有兩個(gè)資源。資源名STATION_1有一個(gè)全局變量,變量名是z1,其數(shù)據(jù)類型是字節(jié)。該資源的類型名是PROCESSOR_TYPE_1,它有兩個(gè)任務(wù),任務(wù)名為SLOW_1和FAST_1。還有兩個(gè)程序,程序名是P1和P2。資源名STATION_2有兩個(gè)全局變量,一個(gè)變量名是z2,其數(shù)據(jù)類型是布爾量;另一個(gè)是直接表示變量,其地址是%QW5,數(shù)據(jù)類型是整數(shù)。需指出,資源STATION_1中的全局變量z1的數(shù)據(jù)只能從資源STATION_1中存取,不能從資源STATION_2中存取,除非配置為全局變量;反之亦然。

4.任務(wù)

任務(wù)(Task)位于軟件模型分層結(jié)構(gòu)的第三層,用于規(guī)定程序組織單元POU在運(yùn)行期的特性。任務(wù)是一個(gè)執(zhí)行控制元素,它具有調(diào)用能力。

任務(wù)在一個(gè)資源內(nèi)可以定義一個(gè)或多個(gè)任務(wù)。任務(wù)被配置后可以控制一組程序或功能塊。這些程序和功能塊可以是周期地執(zhí)行,也可以由一個(gè)事件驅(qū)動(dòng)予以執(zhí)行。

任務(wù)除了有任務(wù)名稱外,還有3個(gè)輸入?yún)?shù),即SIGNAL、INTERVAL和PRIORITY屬性。

1)SIGNAL。單任務(wù)輸入端,在該事件觸發(fā)信號(hào)的上升沿,觸發(fā)與任務(wù)相結(jié)合的程序組織單元執(zhí)行一次。例如,任務(wù)INT_2中z2是單任務(wù)輸入端的觸發(fā)信號(hào)。

2)INTERVAL。周期執(zhí)行時(shí)的時(shí)間間隔。當(dāng)其值不為零,且SIGNAL信號(hào)保持為零,則表示該任務(wù)的有關(guān)程序組織單元被周期執(zhí)行,周期執(zhí)行的時(shí)間間隔由該端輸入的數(shù)據(jù)確定,如任務(wù)SLOW_1,其周期執(zhí)行時(shí)間為20ms。當(dāng)其值為零(不連接),表示該任務(wù)是由事件觸發(fā)執(zhí)行的,如任務(wù)INT_2。

周期執(zhí)行時(shí)的時(shí)間間隔取決于任務(wù)執(zhí)行完成需要多長(zhǎng)時(shí)間。如果一個(gè)任務(wù)執(zhí)行時(shí)間有時(shí)足夠長(zhǎng),有時(shí)又比較短時(shí),這類系統(tǒng)稱為不確定系統(tǒng)。

3)PRIORITY。當(dāng)多個(gè)任務(wù)同時(shí)運(yùn)行時(shí),對(duì)任務(wù)設(shè)置優(yōu)先級(jí)。0表示最高優(yōu)先級(jí),優(yōu)先級(jí)越低,數(shù)值越高。

5.全局變量

允許變量在不同的軟件元素內(nèi)被聲明,變量的范圍確定其在哪個(gè)程序組織單元中是可以用的。范圍可能是局部的或全局的。全局變量被定義在配置、資源或程序?qū)觾?nèi)部,它還提供了兩個(gè)不同程序和功能塊之間非常靈活的交換數(shù)據(jù)的方法。

6.存取路徑

存取路徑用于將全局變量、直接表示變量和功能塊的輸入、輸出和內(nèi)部變量聯(lián)系起來(lái),實(shí)現(xiàn)信息的存取。它提供在不同配置之間交換數(shù)據(jù)和信息的方法,每一配置內(nèi)的許多指定名稱的變量可以通過(guò)其他遠(yuǎn)程配置來(lái)存取。

7.IEC軟件模型是面向未來(lái)的開(kāi)放系統(tǒng)

IEC 61131-3提出的軟件模型是整個(gè)標(biāo)準(zhǔn)的基礎(chǔ)性的理論工具,幫助人們完整地理解除編程語(yǔ)言以外的全部?jī)?nèi)容。

配置本軟件模型,在其最上層把解決一個(gè)具體控制問(wèn)題的完整的軟件概括為一個(gè)“配置”。它專指一個(gè)特定類型的控制系統(tǒng),包括硬件裝置、處理資源、I/O通道的存儲(chǔ)地址和系統(tǒng)能力,等同于一個(gè)PLC的應(yīng)用程序。在一個(gè)由多臺(tái)PLC構(gòu)成的控制系統(tǒng)中,每一臺(tái)PLC的應(yīng)用程序就是一個(gè)獨(dú)立的“配置”。

典型的IEC程序由許多互連的功能塊與函數(shù)組成,每個(gè)功能塊之間可相互交換數(shù)據(jù)。函數(shù)與功能塊是基本的組成單元,都可以包括一個(gè)數(shù)據(jù)結(jié)構(gòu)和一種算法。

可以看出,IEC 61131-3軟件模型是在傳統(tǒng)PLC的軟件模型的基礎(chǔ)上增加了許多內(nèi)容:

1)IEC 61131-3的軟件模型是一種分層結(jié)構(gòu),每一層均隱含其下層的許多特征。

2)它奠定了將一個(gè)復(fù)雜的程序分解為若干個(gè)可以進(jìn)行管理和控制的小單元,而這些被分解的小單元之間存在著清晰而規(guī)范的界面。

3)可滿足由多個(gè)處理器構(gòu)成的PLC系統(tǒng)的軟件設(shè)計(jì)。

4)可方便地處理事件驅(qū)動(dòng)的程序執(zhí)行(傳統(tǒng)的PLC的軟件模型僅為按時(shí)間周期執(zhí)行的程序結(jié)構(gòu))。

5)對(duì)以工業(yè)通信網(wǎng)絡(luò)為基礎(chǔ)的分散控制系統(tǒng)(例如由現(xiàn)場(chǎng)總線將分布于不同硬件內(nèi)的功能塊構(gòu)成一個(gè)具體的控制任務(wù))尤其是軟邏輯/PLC控制這些正在發(fā)展中的新興控制技術(shù),該軟件模型均可覆蓋和適用。由此可見(jiàn),該軟件模型足以映像各類實(shí)際系統(tǒng)。

對(duì)于只有一個(gè)處理器的小型系統(tǒng),其模型只有一個(gè)配置、一個(gè)資源和一個(gè)程序,與現(xiàn)在大多數(shù)PLC的情況完全相符。對(duì)于有多個(gè)處理器的中、大型系統(tǒng),整個(gè)PLC被視作一個(gè)配置,每個(gè)處理器都用一個(gè)資源來(lái)描述,而一個(gè)資源則包括一個(gè)或多個(gè)程序。對(duì)于分散型系統(tǒng),將包含多個(gè)配置,而一個(gè)配置又包含多個(gè)處理器,每個(gè)處理器用一個(gè)資源描述,每個(gè)資源則包括一個(gè)或多個(gè)程序。

1.3.3 IEC 61131-3的編程模型

IEC 61131-3的編程模型是用于描述庫(kù)元素如何產(chǎn)生衍生元素,如圖1-19所示的編程模型也稱為功能模型,因?yàn)樗枋隽薖LC系統(tǒng)所具有的功能。它包括信號(hào)處理功能、傳感器和執(zhí)行器接口功能、通信功能、人機(jī)界面功能、編程、調(diào)試和測(cè)試功能、電源功能等。

978-7-111-41181-9-Chapter01-23.jpg

圖1-19 編程模型

1.信號(hào)處理功能

信號(hào)處理功能由應(yīng)用程序寄存器功能、操作系統(tǒng)功能、數(shù)據(jù)寄存器功能、應(yīng)用程序執(zhí)行功能等組成。它根據(jù)應(yīng)用程序,處理傳感器及內(nèi)部數(shù)據(jù)寄存器所獲得的信號(hào),處理輸出信號(hào)送給執(zhí)行器及內(nèi)部數(shù)據(jù)寄存器。信號(hào)處理功能組別及示例見(jiàn)表1-3。

表1-3 信號(hào)處理功能組別及示例

978-7-111-41181-9-Chapter01-24.jpg

2.傳感器與執(zhí)行器功能

將來(lái)自機(jī)器或過(guò)程的輸入信號(hào)轉(zhuǎn)換為合適的信號(hào)電平,并將信號(hào)處理功能的輸出信號(hào)或數(shù)據(jù)轉(zhuǎn)換為合適的電平信號(hào),傳送到執(zhí)行器或顯示器。通常,它包括輸入/輸出信號(hào)類型及輸入/輸出系統(tǒng)特性的確定等。

3.通信功能

提供與其他系統(tǒng),如其他PLC系統(tǒng)、機(jī)器人控制器、計(jì)算機(jī)等裝置的通信,用于實(shí)現(xiàn)程序傳輸、數(shù)據(jù)文件傳輸、監(jiān)視、診斷等。通常采用符合國(guó)際標(biāo)準(zhǔn)的硬件接口(如RS-232、RS-485)和通信協(xié)議等實(shí)現(xiàn)。

4.人機(jī)界面功能

它為操作員提供與信號(hào)處理、機(jī)器或過(guò)程之間信息相互作用的平臺(tái),也稱為人機(jī)接口功能。主要包括為操作員提供機(jī)器或過(guò)程運(yùn)行所需的信息,允許操作員干預(yù)PLC系統(tǒng)及應(yīng)用程序,如對(duì)參數(shù)調(diào)整和超限判別等。

5.編程、調(diào)試和測(cè)試功能

它可作為PLC的整體,也可作為PLC的獨(dú)立部分來(lái)實(shí)現(xiàn)。它為應(yīng)用程序員提供應(yīng)用程序生成、裝載、監(jiān)視、檢測(cè)、調(diào)試、修改及應(yīng)用程序文件編制和存檔的操作平臺(tái)。

1)應(yīng)用程序?qū)懭?,包括?yīng)用程序生成、應(yīng)用程序顯示等。應(yīng)用程序的寫(xiě)入可采用字母、數(shù)字或符號(hào)鍵,也可應(yīng)用菜單、下拉式菜單和鼠標(biāo)、球標(biāo)等光標(biāo)定位裝置。應(yīng)用程序輸入時(shí)應(yīng)保證程序和數(shù)據(jù)的有效性和一致性。應(yīng)用程序的顯示是在應(yīng)用程序?qū)懭霑r(shí),將所有指令能逐句或逐段立即顯示。通常,可打印完整的程序。不同編程語(yǔ)言的顯示形式可能不同,用戶可選擇合適的顯示形式。

2)系統(tǒng)自動(dòng)啟動(dòng),包括應(yīng)用程序的裝載、存儲(chǔ)器訪問(wèn)、PLC系統(tǒng)的適應(yīng)性、系統(tǒng)自動(dòng)狀態(tài)顯示、應(yīng)用程序的調(diào)試和應(yīng)用程序的修改等。PLC系統(tǒng)的適應(yīng)性是系統(tǒng)適應(yīng)機(jī)械或過(guò)程的功能,包括對(duì)連接到系統(tǒng)的傳感器和執(zhí)行機(jī)構(gòu)進(jìn)行檢查的測(cè)試功能、對(duì)程序序列運(yùn)行進(jìn)行檢查的測(cè)試功能和常數(shù)置位和復(fù)位功能等。

3)文件,包括硬件配置及與設(shè)計(jì)有關(guān)的注釋的描述、應(yīng)用程序文件、維修手冊(cè)等。應(yīng)用程序文件應(yīng)包括程序清單、信號(hào)和數(shù)據(jù)處理的助記符、所有數(shù)據(jù)處理用的交叉參考表、輸入/輸出(內(nèi)部?jī)?chǔ)存數(shù)據(jù)、定時(shí)器、計(jì)數(shù)器等內(nèi)部功能)、注釋、用戶說(shuō)明等。

4)應(yīng)用程序存檔,為提高維修速度和減少停機(jī)時(shí)間,應(yīng)將應(yīng)用程序存儲(chǔ)在非易失性的存儲(chǔ)介質(zhì)中,并且應(yīng)保證所存儲(chǔ)的程序與原程序的一致性。

6.電源功能

提供PLC系統(tǒng)所需電源,為設(shè)備同步起停提供控制信號(hào),提供系統(tǒng)電源與主電源的隔離和轉(zhuǎn)換等??筛鶕?jù)供電電壓、功率消耗及不間斷工作的要求等使用不同的電源供電。

1.3.4 IEC 61131-3的公共元素

1.標(biāo)識(shí)符

標(biāo)識(shí)符必須是由字母、數(shù)字和下劃線字符組成,并被命名為語(yǔ)言元素。在標(biāo)識(shí)符中字母的字體是沒(méi)有意義的,例如,標(biāo)識(shí)符abcd,ABCD和aBCd應(yīng)具有相同的意義。在標(biāo)識(shí)符中下劃線是有意義的,例如,A_BCD和AB_CD應(yīng)解釋為不同的標(biāo)識(shí)符。標(biāo)識(shí)符不允許以多個(gè)下劃線開(kāi)頭或多個(gè)內(nèi)嵌的下劃線,例如,字符序列_LIM_SW5 and LIM_SW5是無(wú)效的標(biāo)識(shí)符。標(biāo)識(shí)符也不允許以下劃線結(jié)尾,例如,字符列LIM_SW5_是無(wú)效的標(biāo)識(shí)符。標(biāo)識(shí)符的性能和實(shí)例見(jiàn)表1-4。

表1-4 標(biāo)識(shí)符的性能和實(shí)例

978-7-111-41181-9-Chapter01-25.jpg

2.關(guān)鍵字

關(guān)鍵字是語(yǔ)言元素特征化的詞法單位,是特定的標(biāo)準(zhǔn)標(biāo)識(shí)符,它用于定義不同結(jié)構(gòu)啟動(dòng)和終止的軟件元素。如CONFIGURATION、END_CONFIGURATION表示配置段開(kāi)始與結(jié)束。

3.分界符

分界符用于分隔程序語(yǔ)言元素的字符或字符組合。它是專用字符,不同的分界符具有不同的含義。比如“(?”、“?)”分別表示注釋開(kāi)始符號(hào)、注釋結(jié)束符號(hào)。

1.3.5 IEC 61131-3的數(shù)據(jù)類型與表示

IEC 61131-3的數(shù)據(jù)類型分為基本數(shù)據(jù)類型、一般數(shù)據(jù)類型和衍生數(shù)據(jù)類型三類。數(shù)據(jù)類型與它在數(shù)據(jù)存儲(chǔ)器中所占用的數(shù)據(jù)寬度有關(guān)。定義數(shù)據(jù)類型可防止因?qū)?shù)據(jù)類型的不同設(shè)置而發(fā)生出錯(cuò)。數(shù)據(jù)類型的標(biāo)準(zhǔn)化是編程語(yǔ)言開(kāi)放性的重要標(biāo)志。

1.基本數(shù)據(jù)類型

基本數(shù)據(jù)類型是在標(biāo)準(zhǔn)中預(yù)先定義的標(biāo)準(zhǔn)化數(shù)據(jù)類型。它有表1-5所列的約定關(guān)鍵字、數(shù)據(jù)元素位數(shù)、數(shù)據(jù)允許范圍及約定的初始值?;緮?shù)據(jù)類型名可以是數(shù)據(jù)類型名、時(shí)間類型名、位串類型名、STRING、WSTRING和TIME。

表1-5 基本數(shù)據(jù)類型

978-7-111-41181-9-Chapter01-26.jpg

(續(xù))

978-7-111-41181-9-Chapter01-27.jpg

基本數(shù)據(jù)類型的允許范圍是這類數(shù)據(jù)允許的取值范圍。約定初始值是在對(duì)該類數(shù)據(jù)進(jìn)行聲明時(shí),如果沒(méi)有賦初始值時(shí)取用的是由系統(tǒng)提供的約定初始值。

2.一般數(shù)據(jù)類型

一般數(shù)據(jù)類型用前綴“ANY”標(biāo)識(shí),它采用分級(jí)結(jié)構(gòu),如圖1-20所示。其中衍生數(shù)據(jù)類型也可以增加前綴變?yōu)橐话銛?shù)據(jù)類型。

978-7-111-41181-9-Chapter01-28.jpg

圖1-20 一般數(shù)據(jù)類型

3.衍生數(shù)據(jù)類型

衍生數(shù)據(jù)類型是用戶在基本數(shù)據(jù)類型的基礎(chǔ)上,建立的由用戶定義的數(shù)據(jù)類型,因此也稱為導(dǎo)出數(shù)據(jù)類型。這類數(shù)據(jù)類型所定義的變量是全局變量。它可用與基本數(shù)據(jù)類型所使用的相同方法對(duì)變量進(jìn)行聲明。衍生數(shù)據(jù)類型的特性與示例見(jiàn)表1-6。

表1-6 衍生數(shù)據(jù)類型的特性與示例

978-7-111-41181-9-Chapter01-29.jpg

1.3.6 IEC 61131-3的變量

變量提供能夠改變其內(nèi)容的數(shù)據(jù)對(duì)象的識(shí)別方法。例如,可改變PLC輸入和輸出或存儲(chǔ)器有關(guān)的數(shù)據(jù)。變量被聲明為基本數(shù)據(jù)類型、一般數(shù)據(jù)類衍生數(shù)據(jù)類型。

1.直接變量

直接變量用百分?jǐn)?shù)符號(hào)“%”開(kāi)始,隨后是位置前綴符號(hào)和大小前綴符號(hào),如果有分級(jí),則用整數(shù)表示分級(jí),并用小數(shù)點(diǎn)符號(hào)“.”分隔的無(wú)符號(hào)整數(shù)表示直接變量,如%IXQ.0、%QWO等。

直接變量類似傳統(tǒng)PLC的操作數(shù),它對(duì)應(yīng)于某一可尋址的存儲(chǔ)單元(如輸入單元、輸出單元等)。表1-7和表1-8分別表示直接變量中前綴符號(hào)的定義與特性、直接變量的示例。

表1-7 直接變量中前綴符號(hào)的定義與特性

978-7-111-41181-9-Chapter01-30.jpg

(續(xù))

978-7-111-41181-9-Chapter01-31.jpg

表1-8 直接變量的示例

978-7-111-41181-9-Chapter01-32.jpg

2.符號(hào)變量

用符號(hào)表示的變量即符號(hào)變量,其地址對(duì)不同的PLC可以不同,這為程序的移植創(chuàng)造條件。

3.多元素變量

多元素變量包括衍生數(shù)據(jù)類型中數(shù)組數(shù)據(jù)類型的變量和結(jié)構(gòu)數(shù)據(jù)類型的變量。

4.變量的類型與屬性(見(jiàn)表1-9、表1-10)

表1-9 變量的類型與屬性

978-7-111-41181-9-Chapter01-33.jpg

1.3.7 IEC 61131-3的程序組織單元

程序組織單元,即POU,包括聲明和本體兩部分,它是用戶程序的最小軟件單位,對(duì)應(yīng)于傳統(tǒng)PLC的程序塊、組織塊、順序塊和功能塊等。程序組織單元按功能分為函數(shù)、功能模塊和程序。

表1-10 變量的附加屬性

978-7-111-41181-9-Chapter01-34.jpg

IEC 61131-3標(biāo)準(zhǔn)定義了8類標(biāo)準(zhǔn)函數(shù),它的作用類似于數(shù)學(xué)函數(shù)。例如,SIN函數(shù)用于輸入變量的正弦值,SQRT函數(shù)用于計(jì)算輸入變量的開(kāi)方等。

在編程中,IEC 61131-3允許使用SFC(順序功能圖)、LD(梯形圖)、FBD(功能塊)、ST(結(jié)構(gòu)化文本)、IL(指令表)等語(yǔ)言。

圖1-21所示為結(jié)構(gòu)文本(ST)語(yǔ)言和功能塊(FBD)語(yǔ)言表示的一段表示數(shù)學(xué)運(yùn)算的程序。

978-7-111-41181-9-Chapter01-35.jpg

圖1-21 程序案例

a)ST語(yǔ)言 b)FBD語(yǔ)言

1.3.8 IEC 61131-3標(biāo)準(zhǔn)的優(yōu)勢(shì)

IEC 61131-3的優(yōu)勢(shì)在于它成功地將現(xiàn)代軟件的概念和現(xiàn)代軟件工程的機(jī)制用于PLC傳統(tǒng)的編程語(yǔ)言。具體表現(xiàn)為:

1)采用現(xiàn)代軟件模塊化原則。

★編程語(yǔ)言支持模塊化,將常用的程序功能劃分為若干單元,并加以封裝,構(gòu)成編程的基礎(chǔ)。

★模塊化時(shí)只設(shè)置必要的、盡可能少的輸入和輸出參數(shù),盡量減少交互作用,盡量減少內(nèi)部數(shù)據(jù)交換。

★模塊化接口之間的交互作用,均采用顯性定義。

★將信息隱藏于模塊內(nèi),對(duì)使用者來(lái)講只需了解該模塊的外部特性(即功能,輸入/輸出參數(shù)),而無(wú)需了解模塊內(nèi)算法的具體實(shí)現(xiàn)方法。

2)IEC 61131-3支持自頂而下(top-down)和自底而上(bottom-up)程序開(kāi)發(fā)方法。用戶可先進(jìn)行總體設(shè)計(jì),將控制應(yīng)用劃分若干個(gè)部分,定義應(yīng)用變量,然后編各個(gè)部分的程序(這就是自頂而下)。用戶也可以先從底部開(kāi)始編程,例如先導(dǎo)出函數(shù)和功能塊,再進(jìn)行按照控制要求編制程序(這就是自底而上)。無(wú)論選擇何種開(kāi)發(fā)方法,IEC 61131-3所創(chuàng)建的開(kāi)發(fā)環(huán)境均會(huì)在整個(gè)編程過(guò)程中給予強(qiáng)有力的支持。

3)IEC 61131-3所規(guī)范的編程系統(tǒng)獨(dú)立于任一個(gè)具體的目標(biāo)系統(tǒng),它可以最大限度地在不同的PLC目標(biāo)系統(tǒng)中運(yùn)行。這樣就創(chuàng)造了一種具有良好開(kāi)放性的氛圍,奠定了PLC編程開(kāi)放性的基礎(chǔ)。

4)將現(xiàn)代軟件概念濃縮,并加以運(yùn)用,例如:

★數(shù)據(jù)使用DATA_TYPE說(shuō)明機(jī)制。

★函數(shù)使用FUNCTION說(shuō)明機(jī)制。

★數(shù)據(jù)和函數(shù)的組合使用FUNCTION_BLOCK說(shuō)明機(jī)制。

在IEC 61131-3中,功能塊并不只是FBD語(yǔ)言的編程機(jī)制,它還是面向?qū)ο蠼M件的結(jié)構(gòu)基礎(chǔ)。一旦完成了某個(gè)功能塊的編程,并通過(guò)調(diào)試和試用證明了它確能正確執(zhí)行所規(guī)定的功能,那么就不允許用戶再將它打開(kāi),改變其算法。即使是一個(gè)功能塊因?yàn)槠鋱?zhí)行效率有必要再提高,或者是在一定的條件下其功能執(zhí)行的正確性存在問(wèn)題,需要重新編程,我們只要保持該功能塊的外部接口(輸入/輸出定義)不變,仍可照常使用。同時(shí),許多原創(chuàng)設(shè)備制造廠(OEM)將它們的專有控制技術(shù)壓縮在用戶自定義的功能塊中,既可以保護(hù)知識(shí)產(chǎn)權(quán),又可以反復(fù)使用,不必一再地為同一個(gè)目的而編寫(xiě)和調(diào)試程序。

5)標(biāo)準(zhǔn)要求嚴(yán)格的數(shù)據(jù)類型定義。這意味著,IEC 61131-3編程語(yǔ)言為減少程序開(kāi)發(fā)人員對(duì)一個(gè)變量做出錯(cuò)誤的數(shù)據(jù)類型定義創(chuàng)造了有效的限制。

在軟件工程中,許多編程的錯(cuò)誤往往發(fā)生在程序的不同部分其數(shù)據(jù)的表達(dá)和處理不同。IEC 61131-3從源頭上避免了這類低級(jí)的錯(cuò)誤,雖然采用的方法可能會(huì)導(dǎo)致效率降低一點(diǎn),但換來(lái)的價(jià)值卻是程序的可靠性、可讀性和可維護(hù)性。IEC 61131-3采用以下方法防止這些錯(cuò)誤:

★限制函數(shù)與功能塊之間的互連范圍:只允許兼容的數(shù)據(jù)類型與功能塊之間互連。

★限制運(yùn)算只可對(duì)其數(shù)據(jù)類型已明確定義的變量進(jìn)行。

★禁止隱含的數(shù)據(jù)類型變換。比如,實(shí)型數(shù)不可執(zhí)行按位運(yùn)算。若要運(yùn)算,編程者必須先通過(guò)顯式變換函數(shù)REAL_TO_WORD,把實(shí)型數(shù)變換為WORD型位串變量。標(biāo)準(zhǔn)中規(guī)定了多種標(biāo)準(zhǔn)固定字長(zhǎng)的數(shù)據(jù)類型,包括位串、帶符號(hào)位和不帶符號(hào)位的整數(shù)型(8位、16位、32位和64位字長(zhǎng))。

6)對(duì)程序執(zhí)行具有完全的控制能力。傳統(tǒng)的PLC只能按掃描方式順序執(zhí)行程序,對(duì)程序執(zhí)行的多樣性要求如由事件驅(qū)動(dòng)某一段程序的執(zhí)行,程序的并行處理等均無(wú)能為力。IEC61131-3允許程序的不同部分,在不同的條件(包括時(shí)間條件)下,以不同的比率并行執(zhí)行。即允許對(duì)一個(gè)程序的不同部分規(guī)定不同的執(zhí)行次數(shù)、不同的執(zhí)行時(shí)間和并行執(zhí)行的方式。這意味著,以“任務(wù)”控制的方式可讓一個(gè)程序的不同部分以不同的掃描周期進(jìn)行掃描。

7)提供靈活的編程語(yǔ)言選擇。有三種圖形化語(yǔ)言和兩種文本化語(yǔ)言可在表達(dá)一個(gè)控制應(yīng)用程序的不同部分時(shí),讓程序編制人員有很大的自由度去選用他認(rèn)為合適的語(yǔ)言來(lái)設(shè)計(jì)。換句話說(shuō)就是,程序的不同部分可用上述五種語(yǔ)言的任意一種來(lái)表達(dá)。

8)支持?jǐn)?shù)據(jù)結(jié)構(gòu)的定義。由于支持?jǐn)?shù)據(jù)結(jié)構(gòu),所以相關(guān)的數(shù)據(jù)元素即便屬于不同的數(shù)據(jù)類型,也可在程序不同的部分傳送,就如它們是一個(gè)單一的實(shí)體。在不同程序組織單元(POU)之間傳送復(fù)雜信息,如同傳送單一變量一樣。這不但改善了程序的可讀性,而且保證了相關(guān)數(shù)據(jù)的存取準(zhǔn)確無(wú)誤。

9)完全支持順序控制的各種描述,再?gòu)?fù)雜的順序行為也可輕而易舉地用順序功能圖(SFC)這樣的圖形化語(yǔ)言加以分解、描述及編程。順序控制過(guò)程的每一步都可用步(steps)、動(dòng)作(actions)和轉(zhuǎn)移(transitions between steps)準(zhǔn)確描述。

當(dāng)然,IEC 61131-3沿用了直接表示與硬件有關(guān)的變量方法,這就妨礙了均符合標(biāo)準(zhǔn)的PLC系統(tǒng)之間做到真正意義上的程序可移植。由于不同機(jī)種有自己的輸入、輸出定義(這些均與硬件相關(guān)),如果想把一個(gè)在某個(gè)廠商的PLC中運(yùn)行得很好的程序原封不動(dòng)地搬到另一個(gè)PLC廠商的機(jī)器,必須先從技術(shù)文件中找到有關(guān)與硬件相關(guān)變量的定義,然后再在另一個(gè)機(jī)型中對(duì)此重新定義。至少可以這樣說(shuō),不存在與硬件相關(guān)變量之間的變換。

主站蜘蛛池模板: 横峰县| 册亨县| 桦川县| 苏尼特右旗| 青龙| 新绛县| 凤凰县| 昌乐县| 衡山县| 宿松县| 内丘县| 萨迦县| 枣阳市| 焦作市| 南丰县| 兰溪市| 库车县| 上高县| 藁城市| 大港区| 南郑县| 临武县| 灵丘县| 峨边| 张家界市| 铜山县| 丹凤县| 皋兰县| 上饶县| 德钦县| 朝阳区| 岢岚县| 宝丰县| 岚皋县| 浑源县| 天长市| 防城港市| 伊宁县| 阳原县| 乌拉特中旗| 吴旗县|