說明案例twincat iec61131-3編程_第1頁
說明案例twincat iec61131-3編程_第2頁
說明案例twincat iec61131-3編程_第3頁
說明案例twincat iec61131-3編程_第4頁
說明案例twincat iec61131-3編程_第5頁
已閱讀5頁,還剩103頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、TwinCAT PLC ControlIEC 61131-3 編程2022/8/13Page 2TwinCAT RuntimeTwinCAT System ManagerTwinCAT PLCTwinCAT NC/CNCTwinCATTotal Windows Control and Automation Technology2022/8/13Page 3 國際上承認(rèn)的標(biāo)準(zhǔn) 逐步的在不遠(yuǎn)的將來所有供應(yīng)商將采用它 統(tǒng)一的結(jié)構(gòu), 語言和操作處理方式將來自所有供應(yīng)商 它節(jié)省你的時(shí)間 統(tǒng)一的軟件模式和數(shù)據(jù)類型概念 對(duì)來自不同的PLC類型你只需學(xué)習(xí)一次 減少了誤解和錯(cuò)誤 標(biāo)準(zhǔn)的函數(shù)和功能塊 測(cè)試軟件的可

2、重復(fù)使用性IEC(International Electrotechnical Commission)61131-3是 IEC 61131國際標(biāo)準(zhǔn)的第三部分,是第一個(gè)為工業(yè)自動(dòng)化控制系統(tǒng)的軟件設(shè)計(jì)提供標(biāo)準(zhǔn)化編程語言的國際標(biāo)準(zhǔn)。IEC 61131-3的優(yōu)勢(shì)2022/8/13Page 4 支持安全和高質(zhì)量編程設(shè)計(jì) 輕松和舒適的結(jié)構(gòu) 數(shù)據(jù)類型避免了編程錯(cuò)誤 對(duì)每個(gè)問題提供了最佳編程語言 一致的 5 種編程語言規(guī)范 文本和圖形語言 高級(jí)語言的可用性 不同語言混合編程 IEC 61131-3的優(yōu)勢(shì)2022/8/13Page 5PLCopen是使PLC軟件不依靠于供應(yīng)商和獨(dú)立于產(chǎn)品的世界組織. 它通過發(fā)布

3、和強(qiáng)化IEC 61131-3 軟件開發(fā)標(biāo)準(zhǔn), 給工業(yè)控制系統(tǒng)的用戶帶來很大的價(jià)值. IEC 61131 標(biāo)準(zhǔn)給出了可依據(jù)的準(zhǔn)則資格證書給用戶提供了通向真正 IEC 61131-3 編程系統(tǒng)的引導(dǎo) (例如 PLC開放資格表列出符合該標(biāo)準(zhǔn)的產(chǎn)品)PLCopen國際組織是一個(gè)獨(dú)立于制造商和產(chǎn)品的國際組織,總部位于荷蘭。致力于IEC61131標(biāo)準(zhǔn)的推廣并取得了很大成功。PLCopen 組織2022/8/13Page 6 為消除混亂, PLCopen 已規(guī)定了3 層具有特性建立的編譯 已規(guī)定了鑒定資格程序 有了資格測(cè)試協(xié)會(huì) 開發(fā)好的測(cè)試軟件, 在成員中共享 已規(guī)定了證書程序 并有了已被鑒定產(chǎn)品的成員PL

4、Copen 組織2022/8/13Page 7應(yīng)用程序FB變量編碼體功能塊變量編碼體功能塊變量編碼體應(yīng)用程序FB變量編碼體功能塊變量編碼體功能塊變量編碼體整個(gè)編譯層 (未來目標(biāo))可轉(zhuǎn)載的應(yīng)用程序攜帶層(正在進(jìn)行)可轉(zhuǎn)載的函數(shù) (功能塊) 庫基本層 (已存在)可轉(zhuǎn)載的最小系統(tǒng)PLCopen 組織2022/8/13Page 8IEC61131-1 通用信息(1992)IEC61131-2 裝置要求與測(cè)試(1992) IEC61131-3 編程語言(1993)IEC61131-4 用戶導(dǎo)則(1995)IEC61131-5 通信服務(wù)規(guī)范(2000)IEC61131-7 模糊控制編程軟件工具實(shí)施(200

5、0)IEC61131-8 IEC61131-3語言實(shí)現(xiàn)導(dǎo)則(2001)2000年8月由PLCopen組織向IEC提出增加IEC61131-X 功能 安全性,目前尚處在草案階段。IEC 61131 概況2022/8/13Page 9在這個(gè)標(biāo)準(zhǔn)中的定義和術(shù)語相關(guān) / 參照 IEC 標(biāo)準(zhǔn)的列表可編程控制器系統(tǒng)的主要功能特性通用信息IEC 61131 標(biāo)準(zhǔn) 第1部2022/8/13Page 10對(duì)可編程控制器和關(guān)聯(lián)外設(shè)的電氣,機(jī)械和功能要求服務(wù), 儲(chǔ)存和運(yùn)輸條件廠商提供的資料為確認(rèn)可編程控制器和關(guān)聯(lián)外設(shè)資格的測(cè)試方法和程序裝置要求與測(cè)試IEC 61131 標(biāo)準(zhǔn) 第2部2022/8/13Page 11軟

6、件-, 通訊- 和 編程-模式5 種內(nèi)部連接編程語言的定義兩種文本和兩種圖形語言的語法和語句: 指令表 (IL), 結(jié)構(gòu)化文本 (ST), 梯形圖 (LD) 和功能塊圖(FBD)順序功能圖 (SFC) -為組建程序結(jié)構(gòu)編程語言IEC 61131 標(biāo)準(zhǔn) 第3部2022/8/13Page 12幫助用戶在:利用可編程控制器標(biāo)準(zhǔn)的其它部分為應(yīng)用程序詳細(xì)說明需求選擇和實(shí)現(xiàn)系統(tǒng)用戶導(dǎo)則IEC 61131 標(biāo)準(zhǔn) 第4部2022/8/13Page 13基于 MMS (制造商信息規(guī)范)通信服務(wù)規(guī)范IEC 61131 標(biāo)準(zhǔn) 第5部2022/8/13Page 14 從上至下或從底向上的編程 以程序組織單元為單位 (

7、POUs) Program Organization Unit 逐級(jí)構(gòu)建程序良好的結(jié)構(gòu)IEC 61131 主要特性2022/8/13Page 15 編譯器探測(cè)不同數(shù)據(jù)類型的分配 減少編程錯(cuò)誤強(qiáng)大的數(shù)據(jù)類型測(cè)定IEC 61131 主要特性2022/8/13Page 16不同的任務(wù)具有不同的優(yōu)先級(jí)和不同的PLC循環(huán)時(shí)間全執(zhí)行控制IEC 61131 主要特性2022/8/13Page 17 功能流程圖 具有步驟, 動(dòng)作和轉(zhuǎn)移的流序 可選分枝和同步分枝流程復(fù)雜的流程控制IEC 61131 主要特性2022/8/13Page 18 用戶定義數(shù)據(jù)元素 包含不同的基本的或用戶定義的數(shù)據(jù)元素 通過自己的POU

8、傳遞數(shù)據(jù)結(jié)構(gòu) 數(shù)據(jù)結(jié)構(gòu)IEC 61131 主要特性2022/8/13Page 19 兩種文本語言(IL,ST) 三種圖形語言 (FBD,LD,SFC) 針對(duì)問題選擇適當(dāng)?shù)恼Z言靈活的語言選擇IEC 61131 主要特性2022/8/13Page 20 服從 IEC 61131-3標(biāo)準(zhǔn) 基本層鑒定 (PLCopen) 輸入/輸出接口獨(dú)立于供應(yīng)商的軟件IEC 61131 主要特性2022/8/13Page 21變量功能塊FB配 置FB2程序 P1程序 P2任務(wù)1任務(wù)2資源訪問路徑FB1FB4程序 P3程序 P4任務(wù)3任務(wù)4資源FB3全局和直接地址變量通訊功能IEC 61131 軟件模型2022/8/

9、13Page 22 最高層,描述了整個(gè)控制系統(tǒng)的架構(gòu)。 一個(gè)配置可被比作一個(gè)可編程控制器系統(tǒng)。在一個(gè)配置里可以定義一個(gè)或幾個(gè)資源。 在TwinCAT 中 一個(gè)或多個(gè)PLC配置 ConfigurationIEC 61131 軟件模型2022/8/13Page 23 一個(gè)配置有一個(gè)或多個(gè)資源 “實(shí)質(zhì)” PLC: 自己的全局變量, POU, 任務(wù)等. 在 TwinCAT: 就是一個(gè) PLC 運(yùn)行核 (Runtime)資源 ResourcesIEC 61131 軟件模型2022/8/13Page 24對(duì)一個(gè)相關(guān)程序的周期的執(zhí)行,實(shí)施控制單元一個(gè)資源有一個(gè)或多個(gè)任務(wù)有優(yōu)先級(jí)時(shí)序排列(03,共四個(gè)級(jí)別)優(yōu)

10、先權(quán)和循環(huán)時(shí)間任務(wù)調(diào)用一個(gè)或多個(gè)程序任務(wù)決定了所關(guān)聯(lián)程序的時(shí)間調(diào)度。任務(wù) TaskIEC 61131 軟件模型2022/8/13Page 25程序,是根據(jù)控制器過程的需要,包含了函數(shù)和功能塊的一個(gè)邏輯組合的POU。任務(wù)調(diào)用程序 程序調(diào)用功能塊和函數(shù)TwinCAT: 程序調(diào)用其它程序程序 ProgramIEC 61131 軟件模型2022/8/13Page 26程序調(diào)用功能塊功能塊可調(diào)用功能塊或函數(shù)FB 有輸入, 輸出變量FB 有運(yùn)算法則:每次FB被執(zhí)行,就是運(yùn)行一段程序編碼功能塊 (FB) Function BlockIEC 61131 軟件模型2022/8/13Page 27程序或功能塊可調(diào)

11、用函數(shù)函數(shù)有輸入變量, 和一個(gè)輸出變量函數(shù)有運(yùn)算法則:每次函數(shù)被執(zhí)行,就是運(yùn)行一段程序編碼函數(shù)可以調(diào)用另外的函數(shù),但不能調(diào)用功能塊函數(shù) FunctionIEC 61131 軟件模型2022/8/13Page 28FB: 例程, 全部數(shù)據(jù)分配內(nèi)存地址 函數(shù): 沒有指定的內(nèi)存分配地址 FB: 多個(gè)輸出變量或沒有輸出變量函數(shù): 一個(gè)輸出變量FB:可調(diào)用功能塊或函數(shù)函數(shù):可調(diào)用函數(shù),但不能調(diào)用功能塊功能塊和函數(shù)之間的區(qū)別IEC 61131 軟件模型2022/8/13Page 29變量在一個(gè)POU (程序, 功能塊或函數(shù))中定義說明.只能在這個(gè)POU中訪問局部變量IEC 61131 軟件模型2022/8

12、/13Page 30 變量在一個(gè)資源(PLC 運(yùn)行核-runtime)中定義說明 每個(gè)POU都可訪問全局變量IEC 61131 軟件模型2022/8/13Page 31 具有固定地址的變量 地址:輸入 (I), 輸出 (Q) , 標(biāo)記 (M) 類型:位 (X), 字節(jié) (B), 字 (W) , 雙字 (D) 例如: %IW12, %QX1.1, %MB5直接描述變量IEC 61131 軟件模型2022/8/13Page 32所有變量被初始化默認(rèn)初始值或用戶定義的初始值被分配給所有變量使能所有任務(wù), 開始執(zhí)行任務(wù)“冷“ 啟動(dòng)IEC 61131 軟件模型2022/8/13Page 33 不進(jìn)行變量

13、初始化 原值被使用使能所有任務(wù), 開始執(zhí)行任務(wù)“熱“ 啟動(dòng)IEC 61131 軟件模型2022/8/13Page 34 字母不分大小寫 (abc = Abc = ABC) 語法術(shù)語關(guān)鍵字是敏感字母, 總是大寫字母 沒有特殊的國家字符 限制字符設(shè)定IEC 61131 共有特性2022/8/13Page 35 第一個(gè)字符不能是數(shù)字 不能連續(xù)使用多于一個(gè)的下劃線 (_) 允許的: ab_c, AB_de, _AbC 不允許的: 1abc, _abc, a_bc 頭 32 個(gè)字符有意義 標(biāo)識(shí)符IEC 61131 共有特性2022/8/13Page 36 特殊字( 如 FUNCTION) 被保留語法術(shù)語

14、關(guān)鍵字總是大寫字母 你不能使用語法術(shù)語關(guān)鍵字作標(biāo)識(shí)符 語法術(shù)語關(guān)鍵字IEC 61131 共有特性2022/8/13Page 37注釋語用 (* 和 *) 框住可將注釋語放在任何地方, 但不能插在語句中對(duì)語句表 (IL)有些限制注釋語允許幾行表示注釋語不允許嵌套注釋IEC 61131 共有特性2022/8/13Page 38不同的基本的數(shù)據(jù)類型數(shù)據(jù)類型有整數(shù), 浮點(diǎn)數(shù), 位和位組, 時(shí)間和日期值 和字符串?dāng)?shù)據(jù)類型IEC 61131 基本數(shù)據(jù)類型2022/8/13Page 39類型名描述 占用內(nèi)存 SINT短整型 8 INT整型16 DINT雙整型 32 LINT長(zhǎng)整型 64(not availa

15、ble) USINT無符號(hào)短整型 8 UINT無符號(hào)整型16 UDINT無符號(hào)雙整型 32 ULINT無符號(hào)長(zhǎng)整型 64(not available)整型IEC 61131 基本數(shù)據(jù)類型2022/8/13Page 40允許十進(jìn)制, 十六進(jìn)制(16#), 八進(jìn)制(8#) 和 二進(jìn)制(2#) 表示可用下劃線 (_) 作單元分隔對(duì)INT的十進(jìn)制表示:-123, +234, 0, 1_000對(duì)INT的十六進(jìn)制表示: 16#F1, 16#0A_1B對(duì)INT的二進(jìn)制表示:2#0001_0011_0111_1111整型表示IEC 61131 基本數(shù)據(jù)類型2022/8/13Page 41類型名描述 占用內(nèi)存

16、REAL實(shí)數(shù) 32 LREAL 長(zhǎng)實(shí)數(shù) 64 浮點(diǎn)數(shù)類型IEC 61131 基本數(shù)據(jù)類型2022/8/13Page 42十進(jìn)制小數(shù)或指數(shù)表示 1000.23 ; 1.23e3 ; 1.23E3 和 1.23E03 是同樣的浮點(diǎn)數(shù) (實(shí)數(shù)) 表示IEC 61131 基本數(shù)據(jù)類型2022/8/13Page 43類型名描述 占用內(nèi)存 TIME時(shí)間 32時(shí)間數(shù)據(jù)類型IEC 61131 基本數(shù)據(jù)類型2022/8/13Page 44在文字前加 TIME#, t# 或 T# 允許溢出 (例如 25 小時(shí))使用d 表示天, h 表示小時(shí), m 表示分, s 表示秒和 ms 表示毫秒可使用下劃線 (_) 作單元

17、分隔T#2d_26h_4m_12s_123ms持續(xù)時(shí)間表示IEC 61131 基本數(shù)據(jù)類型2022/8/13Page 45類型名 描述 占用內(nèi)存DATE 日期32TIME_OF_DAY或 TOD 一天中的時(shí)間32DATE_AND_TIME或 DT 日期和時(shí)間32日期和時(shí)間數(shù)據(jù)類型IEC 61131 基本數(shù)據(jù)類型2022/8/13Page 46 用 DATE# 或 D# 表示日期 用 TIME_OF_DAY# 或 TOD# 表示一天中的時(shí)間 用 DATE_AND_TIME# 或 DT# 表示日期和時(shí)間 日期: D#1998-12-07表示 7th July 1998 一天中的時(shí)間:TOD#12:

18、00:00.123日期和時(shí)間: DT#1998-12-07-12:00:00.123日期和時(shí)間表示IEC 61131 基本數(shù)據(jù)類型2022/8/13Page 47類型名描述 占用內(nèi)存STRING字符串 取決于字符長(zhǎng)度(N+1)Byte字符串?dāng)?shù)據(jù)類型IEC 61131 基本數(shù)據(jù)類型2022/8/13Page 48 用 引括字符 用 $ 插到特殊字符前 (換行$L , 制表$T等)字符串表示:this is a line feed character $L 空字符串: 字符串表示IEC 61131 基本數(shù)據(jù)類型2022/8/13Page 49類型名描述 占用內(nèi)存BOOL bit 1BYTE 8 位

19、 8WORD16 位 16DWORD32 位 32LWORD64 位 64 (not available)位和位組數(shù)據(jù)類型IEC 61131 基本數(shù)據(jù)類型2022/8/13Page 50 TRUE 或 1 FALSE 或 0 用十進(jìn)制, 十六進(jìn)制, 八進(jìn)制 或 二進(jìn)制表示 字 - WORD:234, 16#ff, 2#1001_1100_0011_1111位和位組表示IEC 61131 基本數(shù)據(jù)類型2022/8/13Page 51根據(jù)基本數(shù)據(jù)類型或其它用戶定義的數(shù)據(jù)類型建立自己 的數(shù)據(jù)類型 用一個(gè) TYPE . END_TYPE 結(jié)構(gòu)框架定義你的數(shù)據(jù)類TYPEmyOwnReal:REAL;EN

20、D_TYPETYPEmyArray:ARRAY0.1000 OF BOOL;END_TYPE IEC 61131 派生數(shù)據(jù)類型2022/8/13Page 52根據(jù)基本數(shù)據(jù)類型或其它用戶定義的數(shù)據(jù)類型建立自己的 數(shù)據(jù)結(jié)構(gòu)類型用一個(gè) STRUCT . END_STRUCT 結(jié)構(gòu)框架定義你的結(jié) 構(gòu)數(shù)據(jù)類型 TYPE myStruct:STRUCTstatus:BOOL;inputValue:REAL;END_STRUCTEND_TYPEIEC 61131 派生數(shù)據(jù)類型2022/8/13Page 53 建立自己的枚舉數(shù)據(jù)類型 用括弧中的變量數(shù)值定義你的枚舉數(shù)據(jù)類型TYPE Modes:(Initial

21、isation := 0, Running := 1, Idle, Reset, Faulty);END_TYPE Initialisation = 0, Running = 1.IEC 61131 派生數(shù)據(jù)類型2022/8/13Page 54數(shù)組是一個(gè)具有同樣數(shù)據(jù)類型(基本類型或用戶定義類型)的 數(shù)值集合 允許三維數(shù)組TYPE matrix:ARRAY1.23, 0.1 OF INT;END_TYPEIEC 61131 派生數(shù)據(jù)類型2022/8/13Page 55具有基本類型或用戶定義類型的局部和全局變量用一個(gè) VAR.END_VAR 結(jié)構(gòu)框架聲明變量同樣數(shù)據(jù)類型的變量用逗號(hào)列出 VARa,

22、b,c:REAL;d,e:BOOL;f:ARRAY1.12 OF BOOL;END_VARIEC 61131 變量2022/8/13Page 56 在程序,函數(shù)或功能塊(FB)中的輸入變量 用一個(gè) VAR_INPUT.END_VAR 結(jié)構(gòu)框架聲明變量VAR_INPUTa,b,c:REAL;END_VARIEC 61131 變量2022/8/13Page 57 在程序和功能塊(FB)中的輸出變量 用一個(gè) VAR_OUTPUT.END_VAR 結(jié)構(gòu)框架聲明變量VAR_OUTPUTd,e:INT;END_VARIEC 61131 變量2022/8/13Page 58在程序和功能塊(FB)中的輸入和輸

23、出變量 在 POU內(nèi)部允許更改變量 用一個(gè) VAR_IN_OUT.END_VAR 結(jié)構(gòu)框架聲明變量VAR_IN_OUTx:STRING;END_VARIEC 61131 變量2022/8/13Page 59 全局變量 允許從所有 POU 中讀寫的變量用一個(gè) VAR_GLOBAL.END_VAR 結(jié)構(gòu)框架聲明變量VAR_GLOBALvar:UDINT;END_VARIEC 61131 變量2022/8/13Page 60 變量屬性 RETAIN:在關(guān)電后,值被保存.并且TwinCAT啟動(dòng) 后,值恢復(fù). CONSTANT:值不能被修改 AT:變量被指配存儲(chǔ)器位置 (固定地址)IEC 61131 變

24、量2022/8/13Page 61 直接表示變量 以字符 % 起始 第二個(gè)字符為 I 對(duì)應(yīng) 輸入地址區(qū)INPUT, Q 對(duì)應(yīng) 輸出地址區(qū)OUTPUT和 M 對(duì)應(yīng) 內(nèi)存地址區(qū)MEMORY 標(biāo)識(shí)符 AT 地址 :數(shù)據(jù)類型 ;%I%Q%MAT標(biāo)識(shí)符XBWDByteData typeByteBitIEC 61131 變量2022/8/13Page 62 直接表示變量 第三個(gè)字符為 X 對(duì)應(yīng) 位, B 對(duì)應(yīng) 字節(jié), W 對(duì)應(yīng) 字, D 對(duì)應(yīng) 雙字和 L 對(duì)應(yīng) 長(zhǎng)字 (not available). 例如: %IB24, %QX1.1, %MW12IEC 61131 變量2022/8/13Page 63直

25、接表示變量地址可以交迭 %MB12 是%MW12 的第一個(gè)字節(jié),也是%MD12 的第一個(gè)字節(jié)%MX12.0 是 %MB12 的第一位IEC 61131 變量2022/8/13Page 64 變量初值設(shè)定 每個(gè)變量在啟動(dòng)期間被賦初值 所有變量可改變默認(rèn)初值 VARa:INT := 13;b:STRING := this is a string;c:REAL := 1.1;END_VARIEC 61131 變量2022/8/13Page 65 派生數(shù)據(jù)類型變量的初值設(shè)定 結(jié)構(gòu): 用括弧和對(duì)每個(gè)成員名賦初值VARa: myStruct := (status := TRUE,inputValue :=

26、 2.5);END_VARIEC 61131 變量2022/8/13Page 66 派生數(shù)據(jù)類型變量的初值設(shè)定 數(shù)組: 使用逗號(hào)分隔設(shè)定多重初值VARa: ARRAY1.10 OF INT :=1, 2, 2, 4, 5, 6, 7, 8, 9,10;END_VARIEC 61131 變量2022/8/13Page 67內(nèi)部數(shù)據(jù)不存儲(chǔ)幾個(gè)輸入值一個(gè)輸出值用戶定義的函數(shù)可以用各種語言編輯代碼 (除了SFC)函數(shù)名必須是返回值的名IEC 61131 函數(shù)2022/8/13Page 68例如FUNCTION Average:REAL(* variable declaration *)VAR_INPU

27、TIN1, IN2:REAL;END_VAR(* code body programmed in ST *)Average := (IN1 + IN2)/2;END_FUNCTION返回值的數(shù)據(jù)類型返回值名= 函數(shù)名IEC 61131 函數(shù)2022/8/13Page 69 超載函數(shù) 一些函數(shù)可以處理不同的數(shù)據(jù)類型 (調(diào)用操作)a, b:REAL;c, d:INT;a:= ABS(b);(* 用 REAL 作輸入和輸出 *)c:= ABS(d);(* 用 INT 作輸入和輸出 *)IEC 61131 函數(shù)2022/8/13Page 70數(shù)據(jù)類型轉(zhuǎn)換函數(shù)在不同數(shù)據(jù)類型之間需轉(zhuǎn)換數(shù)值, 你必需使用轉(zhuǎn)

28、換函數(shù)a:REAL;b:INT;b:=REAL_TO_INT(a);IEC 61131 函數(shù)2022/8/13Page 71 標(biāo)準(zhǔn) IEC 61131-3 函數(shù) 位組 AND, OR, XOR, NOT, SHL, SHR, ROL, ROR 數(shù)學(xué) ADD, SUB, MUL, DIV, MOD, EXPT, ABS, SQRT, LN, LOG, EXP, SIN, COS, TAN, ASIN, ACOS, ATAN 類型轉(zhuǎn)換例如 BOOL_TO_BYTE, REAL_TO_DINT 選擇 SEL, MIN, MAX, LIMIT, MUX 比較 GT, GE, EQ, LT, LE, N

29、E 字符串LEN, LEFT, RIGHT, MID, CONCAT, INSERT, DELETE, REPLACE, FINDIEC 61131 函數(shù)2022/8/13Page 72設(shè)立輸入, 輸出和內(nèi)部變量運(yùn)算法則建立新的輸出和內(nèi)部變量參數(shù)被保持到下次執(zhí)行 (在存儲(chǔ)器中)功能塊例程是一個(gè)結(jié)構(gòu), 包含所有輸入, 輸出和內(nèi)部變量一個(gè)FB 允許建立多個(gè)例程IEC 61131 功能塊2022/8/13Page 73在 FB 的外部只有輸入, 輸出和輸入/輸出變量傳遞參數(shù)在其它FB或程序中, 以不同的編程語言使用 FB 調(diào)用一個(gè) FB 例程在調(diào)用的 FB/程序中是一個(gè)變量或全局變量FB例程可以是對(duì)

30、其它FB/程序的輸入變量IEC 61131 功能塊2022/8/13Page 74FUNCTION_BLOCK CounterVAR_INPUTMode:INT; (* 0 = Reset, 1 = Count *)END_VARVAR_OUPUTOut:INT;(* actual counter value *)END_VARIF Mode = 0THENOut := 0;(* reset *)ELSIF Mode = 1THENOut := Out + 1;END_IF;END_FUNCTION_BLOCK老的計(jì)數(shù)值加 1 得到新的記數(shù)值IEC 61131 功能塊2022/8/13Page

31、 75標(biāo)準(zhǔn) IEC 61131-3 功能塊 觸發(fā)器SR, RS, SEMA 沿探測(cè)R_TRIG, F_TRIG 記數(shù)器CTU, CTD, CTUD 定時(shí)器TP, TON, TOF, RTCIEC 61131 功能塊2022/8/13Page 76程序可以有輸入, 輸出, 局部變量和算法的程序代碼部分不同于FB: 程序沒有例程程序沒有存儲(chǔ)器在程序中使用各種語言程序由任務(wù)來調(diào)用 (TwinCAT : 可由其它程序調(diào)用)IEC 61131 程序2022/8/13Page 77PROGRAM MainVARcounter_1 : Counter; (* instance of FB Counter *

32、)actCount : INT;END_VARIF bfirstCycleTHENcounter_1(Mode := 0);(* call FB with reset mode*)ELSEcounter_1(Mode := 1);(* call FB with count mode*)END_IFactCount := counter_1.Out;(* use output variable of*) (* counter_1*)END_PROGRAMIEC 61131 程序2022/8/13Page 78用任務(wù)控制執(zhí)行執(zhí)行不同循環(huán)時(shí)間的程序指派任務(wù)的優(yōu)先級(jí) (要求無間斷運(yùn)行的程序必需有最高優(yōu)

33、先級(jí))TwinCAT: 每個(gè)PLC運(yùn)行核(Runtime)有四個(gè)任務(wù) 強(qiáng)制優(yōu)先時(shí)序IEC 61131 任務(wù)2022/8/13Page 7901020304050t (ms)任務(wù) 1 具有優(yōu)先級(jí) 0 和 循環(huán)時(shí)間 10 ms任務(wù) 2 具有優(yōu)先級(jí) 1 和 循環(huán)時(shí)間 30 ms任務(wù) 3 具有優(yōu)先級(jí) 2 和 循環(huán)時(shí)間 40 ms任務(wù) 1 中斷 任務(wù) 2任務(wù) 1 中斷任務(wù) 3IEC 61131 任務(wù)2022/8/13Page 80 文本語言 結(jié)構(gòu)文本 (ST Structured Text) 指令表 (IL Instruction List) 圖形語言 功能塊圖 (FBD Function Block

34、Diagram) 梯形圖 (LD Ladder Diagram) 順序功能圖 (SFC Sequential Function Chart)IEC 61131 編程語言2022/8/13Page 81 高級(jí)語言 (類似 PASCAL) 復(fù)雜公式 (賦值命令) 具有條件和反復(fù)陳述的流控 用制表符和注釋使得編碼易讀IEC 61131 結(jié)構(gòu)文本 (ST)2022/8/13Page 82 分配值和表達(dá)式賦值A(chǔ)i := B;Ai+1 := SIN(SQRT(Ai+3);C := timer.Q;(* timer is an instance from FB TOF *)D := E/F + COS(Ai

35、+1);bFlag := X AND Y OR Z;IEC 61131 結(jié)構(gòu)文本 (ST)2022/8/13Page 83 條件語句 IF THENELSIF THENELSEEND_IF(*示例:*)IF temp20 THEN heating_on := TRUE;ELSE heating_on := FALSE;END_IF;(*溫度低于20度,加熱器打開,否則關(guān)閉。*)IEC 61131 結(jié)構(gòu)文本 (ST)2022/8/13Page 84CASE OF : : . : ELSEEND_CASE;(*示例:*)CASE INT1 OF1: BOOL1 := TRUE; BOOL2 :=

36、FALSE;2: BOOL1 := FALSE; BOOL2 := TRUE;ELSE BOOL1 := FALSE; BOOL2 := FALSE;END_CASE;IEC 61131 結(jié)構(gòu)文本 (ST)2022/8/13Page 85 循環(huán)語句FOR TOBY DOEND_FOR;(*示例:*)FOR i := 1 TO 100 BY 1 DOai := 0;END_FOR;IEC 61131 結(jié)構(gòu)文本 (ST)2022/8/13Page 86WHILE DOEND_WHILE;(*示例:*)i := 1;WHILE i 100 DOai := 0;i := i+1;END_WHILE;I

37、EC 61131 結(jié)構(gòu)文本 (ST)2022/8/13Page 87REPEATUNTIL END_REPEAT;(*示例:*)i := 1;REPEATai := 0;i := i+1;UNTIL i 100 END_REPEAT;IEC 61131 結(jié)構(gòu)文本 (ST)2022/8/13Page 88EXIT在 EXIT 語句被執(zhí)行后,在反復(fù)循環(huán)后的下個(gè)語句將被執(zhí)行RETURN執(zhí)行了RETURN 語句后, 當(dāng)前的POU (FB or 函數(shù)) 執(zhí)行被中斷IEC 61131 結(jié)構(gòu)文本 (ST)2022/8/13Page 89 調(diào)用功能塊例子VARtimer:TOF;out:BOOL;END_VA

38、Rtimer(IN:= TRUE, PT:= T#1s);.timer (IN:= FALSE);out := timer.Q;IEC 61131 結(jié)構(gòu)文本 (ST)2022/8/13Page 90低級(jí)語言(類似匯編程序)面向累加器的每行只允許一個(gè)操縱, 如存儲(chǔ)一個(gè)值到累加寄存器用跳轉(zhuǎn)和標(biāo)號(hào)控制流程注釋在每行的后面IEC 61131 指令表 (IL)2022/8/13Page 91標(biāo)號(hào)操作符 操作數(shù) 注釋LDTRUE(* load TRUE *)STvar1(* store in var1 *)JMPClabel1(* jump conditional*)LDFALSE(* load FALS

39、E *)STvar2(* store var 2*)label1:LD12(* load int literal*)ADDvar4(* add *)STvar3(* store var3*)IEC 61131 指令表 (IL)2022/8/13Page 92 調(diào)用函數(shù)和功能塊 使用 CAL 操作IEC 61131 指令表 (IL)2022/8/13Page 93三種方法調(diào)用 FB: 使用輸入一個(gè)列表CAL FB1(in := TRUE, mode := 4) 在調(diào)用前裝填輸入LDTRUEST FB1.inLD 4ST FB1.modeCALFB1 使用輸入?yún)?shù)只適用于標(biāo)準(zhǔn)FB, 使用標(biāo)準(zhǔn)變量名 (例如. counter-up 的輸入變量 CU ) IEC 61131 指令表 (IL)2022/8/13Page 94操作符

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論