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

下載本文檔

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

文檔簡介

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

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

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

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

5、0)IEC61131-8 IEC61131-3語言實現(xiàn)導(dǎo)則(2001)2000年8月由PLCopen組織向IEC提出增加IEC61131-X 功能 安全性,目前尚處在草案階段。IEC 61131 概況2022/8/13Page 9在這個標(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對可編程控制器和關(guān)聯(lián)外設(shè)的電氣,機械和功能要求服務(wù), 儲存和運輸條件廠商提供的資料為確認可編程控制器和關(guān)聯(lián)外設(shè)資格的測試方法和程序裝置要求與測試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)用程序詳細說明需求選擇和實現(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 逐級構(gòu)建程序良好的結(jié)構(gòu)IEC 61131 主要特性2022/8/13Page 15 編譯器探測不同數(shù)據(jù)類型的分配 減少編程錯誤強大的數(shù)據(jù)類型測定IEC 61131 主要特性2022/8/13Page 16不同的任務(wù)具有不同的優(yōu)先級和不同的PLC循環(huán)時間全執(zhí)行控制IEC 61131 主要特性2022/8/13Page 17 功能流程圖 具有步驟, 動作和轉(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) 針對問題選擇適當(dāng)?shù)恼Z言靈活的語言選擇IEC 61131 主要特性2022/8/13Page 20 服從 IEC 61131-3標(biāo)準(zhǔn) 基本層鑒定 (PLCopen) 輸入/輸出接口獨立于供應(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 最高層,描述了整個控制系統(tǒng)的架構(gòu)。 一個配置可被比作一個可編程控制器系統(tǒng)。在一個配置里可以定義一個或幾個資源。 在TwinCAT 中 一個或多個PLC配置 ConfigurationIEC 61131 軟件模型2022/8/13Page 23 一個配置有一個或多個資源 “實質(zhì)” PLC: 自己的全局變量, POU, 任務(wù)等. 在 TwinCAT: 就是一個 PLC 運行核 (Runtime)資源 ResourcesIEC 61131 軟件模型2022/8/13Page 24對一個相關(guān)程序的周期的執(zhí)行,實施控制單元一個資源有一個或多個任務(wù)有優(yōu)先級時序排列(03,共四個級別)優(yōu)

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

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

12、/13Page 30 變量在一個資源(PLC 運行核-runtime)中定義說明 每個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所有變量被初始化默認初始值或用戶定義的初始值被分配給所有變量使能所有任務(wù), 開始執(zhí)行任務(wù)“冷“ 啟動IEC 61131 軟件模型2022/8/13Page 33 不進行變量

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

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

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

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

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

18、00:00.123日期和時間: DT#1998-12-07-12:00:00.123日期和時間表示IEC 61131 基本數(shù)據(jù)類型2022/8/13Page 47類型名描述 占用內(nèi)存STRING字符串 取決于字符長度(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 用十進制, 十六進制, 八進制 或 二進制表示 字 - WORD:234, 16#ff, 2#1001_1100_0011_1111位和位組表示IEC 61131 基本數(shù)據(jù)類型2022/8/13Page 51根據(jù)基本數(shù)據(jù)類型或其它用戶定義的數(shù)據(jù)類型建立自己 的數(shù)據(jù)類型 用一個 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)類型用一個 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ù)組是一個具有同樣數(shù)據(jù)類型(基本類型或用戶定義類型)的 數(shù)值集合 允許三維數(shù)組TYPE matrix:ARRAY1.23, 0.1 OF INT;END_TYPEIEC 61131 派生數(shù)據(jù)類型2022/8/13Page 55具有基本類型或用戶定義類型的局部和全局變量用一個 VAR.END_VAR 結(jié)構(gòu)框架聲明變量同樣數(shù)據(jù)類型的變量用逗號列出 VARa,

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

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

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

25、接表示變量地址可以交迭 %MB12 是%MW12 的第一個字節(jié),也是%MD12 的第一個字節(jié)%MX12.0 是 %MB12 的第一位IEC 61131 變量2022/8/13Page 64 變量初值設(shè)定 每個變量在啟動期間被賦初值 所有變量可改變默認初值 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): 用括弧和對每個成員名賦初值VARa: myStruct := (status := TRUE,inputValue :=

26、 2.5);END_VARIEC 61131 變量2022/8/13Page 66 派生數(shù)據(jù)類型變量的初值設(shè)定 數(shù)組: 使用逗號分隔設(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ù)不存儲幾個輸入值一個輸出值用戶定義的函數(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)部變量運算法則建立新的輸出和內(nèi)部變量參數(shù)被保持到下次執(zhí)行 (在存儲器中)功能塊例程是一個結(jié)構(gòu), 包含所有輸入, 輸出和內(nèi)部變量一個FB 允許建立多個例程IEC 61131 功能塊2022/8/13Page 73在 FB 的外部只有輸入, 輸出和輸入/輸出變量傳遞參數(shù)在其它FB或程序中, 以不同的編程語言使用 FB 調(diào)用一個 FB 例程在調(diào)用的 FB/程序中是一個變量或全局變量FB例程可以是對

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老的計數(shù)值加 1 得到新的記數(shù)值IEC 61131 功能塊2022/8/13Page

31、 75標(biāo)準(zhǔn) IEC 61131-3 功能塊 觸發(fā)器SR, RS, SEMA 沿探測R_TRIG, F_TRIG 記數(shù)器CTU, CTD, CTUD 定時器TP, TON, TOF, RTCIEC 61131 功能塊2022/8/13Page 76程序可以有輸入, 輸出, 局部變量和算法的程序代碼部分不同于FB: 程序沒有例程程序沒有存儲器在程序中使用各種語言程序由任務(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)時間的程序指派任務(wù)的優(yōu)先級 (要求無間斷運行的程序必需有最高優(yōu)

33、先級)TwinCAT: 每個PLC運行核(Runtime)有四個任務(wù) 強制優(yōu)先時序IEC 61131 任務(wù)2022/8/13Page 7901020304050t (ms)任務(wù) 1 具有優(yōu)先級 0 和 循環(huán)時間 10 ms任務(wù) 2 具有優(yōu)先級 1 和 循環(huán)時間 30 ms任務(wù) 3 具有優(yōu)先級 2 和 循環(huán)時間 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 高級語言 (類似 PASCAL) 復(fù)雜公式 (賦值命令) 具有條件和反復(fù)陳述的流控 用制表符和注釋使得編碼易讀IEC 61131 結(jié)構(gòu)文本 (ST)2022/8/13Page 82 分配值和表達式賦值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)后的下個語句將被執(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低級語言(類似匯編程序)面向累加器的每行只允許一個操縱, 如存儲一個值到累加寄存器用跳轉(zhuǎn)和標(biāo)號控制流程注釋在每行的后面IEC 61131 指令表 (IL)2022/8/13Page 91標(biā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: 使用輸入一個列表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等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論