国产aaaa级全身裸体精油片_337p人体粉嫩久久久红粉影视_一区中文字幕在线观看_国产亚洲精品一区二区_欧美裸体男粗大1609_午夜亚洲激情电影av_黄色小说入口_日本精品久久久久中文字幕_少妇思春三a级_亚洲视频自拍偷拍

首頁(yè) > 化工知識(shí) > PLC編程標(biāo)準(zhǔn)IEC61131-3教程系列(2)-軟件模型

PLC編程標(biāo)準(zhǔn)IEC61131-3教程系列(2)-軟件模型

時(shí)間:2020-09-28 來(lái)源:方正智芯 瀏覽:

IEC61131-3為PLC編程開(kāi)發(fā)定義了一個(gè)軟件模型,該模型描述了如何采用分層/分級(jí)的方法將一個(gè)復(fù)雜的項(xiàng)目分解成若干小的組成部分,并定義了各部分之間的接口規(guī)范。今天這篇文章,我們來(lái)介紹下這個(gè)軟件模型,并結(jié)合西門(mén)子PLC、Codesys軟PLC分析下該模型。

下面這張圖就是IEC61131-3定義的軟件模型:

從圖片中可以看出,該軟件模型定義了配置、資源、任務(wù)、程序組織單元(功能、功能塊、程序)、全局變量、訪問(wèn)路徑等等。我們來(lái)詳細(xì)介紹下:

1、配置(Configuration)

配置位于軟件模型的最上層,可以理解成一整套控制系統(tǒng)。對(duì)于小型控制系統(tǒng)而言,比如一個(gè)由CPU ST20組成的簡(jiǎn)單控制系統(tǒng),屬于一個(gè)配置;而對(duì)于復(fù)雜控制系統(tǒng),比如一個(gè)由多個(gè)CPU組成的、具有分布式模塊的控制系統(tǒng),也屬于一個(gè)配置。配置就是一套控制系統(tǒng),或者是一套設(shè)備,在Codesys V3版本之后直接將其稱(chēng)為“設(shè)備”;一個(gè)配置由一個(gè)或幾個(gè)資源組成。

2、資源(Resource)

資源位于軟件模型的第二層,用于支持任務(wù)的運(yùn)行。對(duì)于一個(gè)小型控制系統(tǒng),比如上面說(shuō)的CPU ST20系統(tǒng),資源可以理解為CPU本身。對(duì)于具有多個(gè)CPU的大型系統(tǒng),每一個(gè)CPU都是一個(gè)資源。資源可以包含多個(gè)任務(wù)、程序組織單元等。在Codesys V3版本之后,資源被稱(chēng)為“應(yīng)用”。

3、任務(wù)(Task)

任務(wù)是程序的調(diào)度者,用來(lái)執(zhí)行一個(gè)或多個(gè)程序(Program)。任務(wù)分為很多類(lèi)型,比如:主任務(wù)、周期性執(zhí)行的任務(wù)、由中斷觸發(fā)的任務(wù)等等。西門(mén)子PLC中的組織塊就屬于任務(wù)的角色,OB1相當(dāng)于主任務(wù)、OB30~OB38屬于周期性執(zhí)行的任務(wù)、OB82屬于診斷中斷的任務(wù)等等;在Codesys中,任務(wù)分為周期型(Cyclic)、事件型(Event)、自由運(yùn)行型(Freewheeling)、狀態(tài)觸發(fā)型(Status)。周期型任務(wù)是以固定時(shí)間間隔來(lái)執(zhí)行;事件觸發(fā)型任務(wù)在事件變量的上升沿開(kāi)始執(zhí)行;自由運(yùn)行任務(wù)其內(nèi)部程序在任務(wù)啟動(dòng)時(shí)就開(kāi)始執(zhí)行,程序的執(zhí)行不受掃描周期的影響;狀態(tài)觸發(fā)型任務(wù)當(dāng)其狀態(tài)變量變?yōu)門(mén)RUE時(shí)開(kāi)始執(zhí)行;任務(wù)具有不同的優(yōu)先級(jí),優(yōu)先級(jí)高的任務(wù)可以中斷優(yōu)先級(jí)低的任務(wù)而搶先執(zhí)行;

4、程序組織單元(Program Organization Unit,POU)

程序組織單元是用戶(hù)程序的基本單位,包括變量聲明區(qū)和代碼區(qū)兩部分。變量聲明區(qū)用來(lái)定義該P(yáng)OU中使用的變量的名稱(chēng)、類(lèi)型及初始值;代碼區(qū)是使用IEC61131-3推薦的五種編程語(yǔ)言寫(xiě)的程序代碼。

IEC61131-3定義了三種程序組織單元:功能(Function)、功能塊(Function Block)和程序(Program)。

功能(Function)是包含局部變量和指令的代碼,可以設(shè)置輸入/輸出參數(shù)。功能沒(méi)有靜態(tài)變量,因此每次調(diào)用都會(huì)產(chǎn)生同一個(gè)結(jié)果;

功能塊(Function Block)與功能的區(qū)別在于它有屬于自己的存儲(chǔ)區(qū),可以存放靜態(tài)變量。功能塊也可以設(shè)置輸入/輸出參數(shù),但由于程序代碼中靜態(tài)變量可能發(fā)生變化,因此對(duì)于功能塊的調(diào)用并不一定產(chǎn)生同樣的結(jié)果;

可以將程序中經(jīng)常使用的代碼(比如電機(jī)運(yùn)行控制)寫(xiě)成功能或者功能塊,這樣就可以反復(fù)調(diào)用。既能節(jié)省項(xiàng)目編程的時(shí)間,又提高了程序的可讀性,體現(xiàn)了該軟件模型將復(fù)雜任務(wù)分解成小的簡(jiǎn)單模塊的思想。

程序(Program)可以分為主程序與子程序,可以被任務(wù)啟動(dòng),并調(diào)用功能或者功能塊。程序中可以定義全局變量、地址映射、局部變量等等;

5、全局變量、訪問(wèn)路徑

全局變量用于程序組織單元之間交互數(shù)據(jù),訪問(wèn)路徑提供了當(dāng)前配置對(duì)外通信的接口。

好了,關(guān)于IEC61131-3的軟件模型就先介紹到這里。后續(xù)文章我們會(huì)繼續(xù)該標(biāo)準(zhǔn)的介紹。

我最近開(kāi)通了微信視頻號(hào)【李工談工控】,介紹一些工控小知識(shí),掃描下方的二維碼可以觀看。

相關(guān)推薦