功能塊(FB)教材_第1頁
功能塊(FB)教材_第2頁
功能塊(FB)教材_第3頁
功能塊(FB)教材_第4頁
功能塊(FB)教材_第5頁
已閱讀5頁,還剩42頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、目錄第一章 功能塊FB編程概述 11.1功能塊FB簡介 11.2功能塊FB使用特點 11.3功能塊FB使用環(huán)境 21.3.1 支持FB功能的PLC類型 21.3.2. 支持FB功能的軟件 21.3.3 CX-Programmer6.0 功能塊特點 2第二章梯形圖功能塊32.1梯形圖功能塊編程根底 32.1.1梯形圖功能塊結(jié)構(gòu)介紹 32.1.2 梯形圖功能塊編輯區(qū)介紹 42.2創(chuàng)立功能塊 42.2.1 新建梯形圖FB 52.2.2 設置功能塊變量 62.2.3 編寫FB梯形圖 72.3使用功能塊 82.3.1調(diào)用梯形圖功能塊 82.3.2 梯形圖FB的嵌套 92.3.3 保存梯形圖 FB 112

2、.3.4 調(diào)試梯形圖FB 122.4 FB存分配考前須知 13第三章高級語言ST語言功能塊153.1 ST語言功能塊編程根底 153.1.1 高級語言編程概念 153.1.2 ST 語言編程特點 153.2 ST語言編程系統(tǒng)介紹 163.2.1 ST 語言常用運算符 173.2.2 ST 語言根本命令 183.2.3 ST 語言編程規(guī)那么 213.3 創(chuàng)立ST語言FB 223.4 ST語言FB的使用 243.4.1 調(diào)用ST語言FB 243.4.2 ST語言FB的嵌套 243.4.3 ST語言FB的保存和調(diào)試 25第四章功能塊一一FB庫264.1 FB庫概述 264.1.1 FB 庫特點 26

3、4.1.2 FB庫應用簡介 264.2 FB庫容介紹 284.2.1 FB 庫容簡介 284.2.2 FB庫功能分類 284.3 FB庫功能塊使用 294.3.1 創(chuàng)立FB庫中的功能塊 294.3.2 閱覽FB庫中的功能塊程序 304.3.3 調(diào)用FB庫中的功能塊 30第五章 功能塊應用例如 31附錄一:ST諾言諾法錯誤一覽表 36第一章功能塊FB編程概述OMRON編程軟件CX-Programmer從5.0版本開始,增加了一個全新的編程功能一一功能 塊Function Block,簡稱FB.CJ CS CP1H系列的PLC可以使用這個功能進行編程,它 大大增強了 CX-Programmer軟件

4、對PLC編程、限制和調(diào)試的水平.功能塊FB主要提供了 梯形圖和高級語言 2種編程方法,結(jié)合軟件自帶的功能庫,給用戶提供了全新的簡單、高效、 集成化的編程方法和環(huán)境.1.1功能塊FB簡介功能塊Function Block 是預先編輯或測試的程序集合,具有特定的功能要素,可嵌入原有的梯形圖中執(zhí)行,并通過設置I/O來使用這個功能. CX-Programmer5.0以上的版本具有FB功能,并且CS CJ系列的PLC的CPU元版本號高于 3.0才支持該功能.用戶可以使用2種語言創(chuàng)立功能塊:梯形圖語言和高級語言ST語言.1. 梯形圖功能塊:熟悉使用梯形圖編程的用戶可以用這種方式創(chuàng)立功能塊,這和使用梯形圖在

5、CX-Programmer中編程的方式是一樣的.對于熟悉CX-Programmer的用戶 來說,這種編程方式是簡單易學的.2. 高級語言ST語言功能塊:ST語言是一種用于工業(yè)限制的高級語言,是類似VBVC的高級語言.熟悉這種語言的用戶同樣可以用它創(chuàng)立ST功能塊,用高級語言可以實現(xiàn)復雜的數(shù)據(jù)處理過程和限制過程.1.2功能塊FB使用特點1. 相似限制功能“模塊化.在一些繁冗的程序中,如果其中有一些限制過程是類似的,那么用戶可以把這些類似的限制過程定義為“模塊.這樣,每次需要實現(xiàn)這些限制功能時,就不用重復寫很多條程序,只要調(diào)用用戶自定義的“模塊就可以了.把這些限制功能“模塊化,使得編程工作更清楚,更

6、簡便,更易于治理.2 .數(shù)字運算過程簡單化. 使用功能塊中ST語言編程,能夠處理更復雜的算術(shù)運算.原 來要在PLC中處理數(shù)字量,需要編寫梯形圖來進行算術(shù)運算,一步程序也只能完成 一個算法,要完成復雜的算法需要編寫很多程序.現(xiàn)在用ST語言,就可以用精簡的高級語言編寫復雜的算術(shù)運算過程.3. CX-P軟件自帶FB庫.CX-Programmer軟件自帶FB庫,用戶可以根據(jù)需要調(diào)用 FB庫 中自帶的功能塊.FB庫讓用戶無需編輯梯形圖,就可以使用PLC單元和元器件的基 本功能,并且易于使用,無需程序調(diào)試,簡單易懂,具可擴展性.4. 編程操作更簡單. 功能塊的調(diào)用、編輯、刪除就象對指令的操作一樣簡單.編輯

7、功 能塊部的程序也很簡便,只需找到相對應的功能塊,就可以在“塊的部進行程序 的編輯,而不需要在繁冗的程序中查找修改.5. 程序檢查更容易. 功能塊程序的檢查很方便,只要在“塊中檢查程序的流程和可 靠性即可,工作量小,檢查簡單.使用功能塊縮短了主程序的大小,并且功能塊的 查找也很簡單,從而使得程序的檢查工作變得更容易.上述功能塊FB的這些特點給用戶提供了一個易于編程、治理程序、調(diào)試程序的編程 環(huán)境.下面就詳細介紹功能塊功能的使用和操作.1.3功能塊FB使用環(huán)境1.3.1 支持FB功能的PLC類型CJ、CS CP1H系列的PLC才支持FB功能,并且 CJ、CS的CPU單元版本號需要在 3.0或3.

8、0以上.具體機型可參考下表:PLC類型CPUS1 號CS1G-HCS1G-CPU42H/43H/44H/45HCS1H-HCS1H-CPU63H/64H/65H/66H/67HCJ1G-HCJ1G-CPU42H/43H/44H/45HCJ1H-HCJ1H-CPU65H/66H/67HCJ1MCJ1M-CPU11/12/13/21/22/231.3.2. 支持FB功能的軟件需使用CX-Programmer5.0及以上版本.1.3.3 CX-Programmer6.0 功能塊特點在CX-ON改件中的CX-Programmer6.0,其中的FB功能有很多先進的功能,現(xiàn)簡單介 紹如下:1. 在線可以觀

9、察功能塊的部程序運行情況.在 CX-Programmer6.0中,用戶是可以查 看FB部程序運行情況的,提升了用戶對程序的查錯水平.2. 功能塊支持嵌套.在 CX-Programmer6.0中,如果創(chuàng)立了多個功能塊,如 FB1、FB2、 FB3,那么可以實現(xiàn)FB1的部程序中調(diào)用 FB2 FB2的部程序調(diào)用FB3.梯形圖FB最多 支持8層嵌套,而ST語言FB那么可以自由的嵌套.3. FB支持程序更新.CX-Programmer6.0中,如果更改了 FB的部程序,在調(diào)用該功能 塊的地方,只需更新該功能塊即可.第二章梯形圖功能塊2.1梯形圖功能塊編程根底使用過 CX-Programmer的用戶都非常

10、熟悉梯形圖編程模式和編程環(huán)境.因此,CX-Programmer仍然提供了老用戶熟悉的梯形圖語言來創(chuàng)立和編輯功能塊的部程序.2.1.1梯形圖功能塊結(jié)構(gòu)介紹梯形圖功能塊是由完成特定功能的程序段組成的.組成程序的每一步都有輸入和輸出, 功能塊中的輸入和輸出被定義成變量的這種特點,決定著它能夠成為一個編程“元素,而能夠在不同的程序中被屢次調(diào)用.總的來說,功能塊是由變量+算法 構(gòu)成的.1. 變量:變量是指輸入、輸出和部地址,在編輯功能塊的時候給這些地址一個變量名.功能塊運行時,它們對應著外部的實際地址.2. 算法:算法是依靠梯形圖的編程來完成的.依靠算法可以完成某個特定的限制功能.舉個簡單的例子說明.如

11、下列圖2-1所示,要實現(xiàn)按下開0.00開關5秒后接通輸出10.00, 梯形圖程序如a圖所示.如要把這個功能做成功能塊的形式,以便今后編程時調(diào)用,必 須將其中的輸入、輸出甚至中間變量都定義稱為變量,如 b圖所示.在每次調(diào)用功能塊 的時候,無需知道部結(jié)構(gòu),只要知道該FB能實現(xiàn)的限制功能,及輸入、輸出變量對應完成什么功能,就可以直接使用了如圖 2-1 c所示.i.r m(b)(c)圖2-12.1.2梯形圖功能塊編輯區(qū)介紹梯形圖語言的編程界面如下列圖2-2所示:從圖上分界線來看, 可以把整個操作界面分成2個局部,上半局部 是變量設置區(qū),下半局部 是梯形圖編輯區(qū).FB梯形圖編輯區(qū)變量設置區(qū)圖2-21.

12、變量設置區(qū):定義變量名,包括輸入變量,輸出變量和部變量.其中外部變量和部變量在使用中對應著實際的輸入 /輸出地址.部變量是用來定義梯形圖中中間變量 的.外部地址提供了一些有特殊功能的,系統(tǒng)定義好的符號可供使用.2. 梯形圖編輯區(qū):在梯形圖編輯區(qū)可以編寫梯形圖程序,其中的 I/O地址都使用變量 設置區(qū)設置好的變量名.2.2創(chuàng)立功能塊用戶在編寫主程序時, 一旦要用到FB功能,需要根據(jù)要求先創(chuàng)立功能塊.使用FB功能的步驟根本上為如下列圖2-3所示:新建功能塊定義功能塊變量r編寫FB部程序調(diào)用功能塊定義功能塊的I/O地址.無論使用梯形圖 FB還是ST語言FB,根本步驟都是相同的,只是其中對程序的編輯方

13、式會有所不同,下面將詳細介紹一下如何使用FB功能.圖2-32.2.1 新建梯形圖FB在“新PLC'目錄下,可以看到“功能塊子目錄,包含有這個子目錄的PLC才支持FB功能.右擊“功能塊,選擇“插入梯形圖功能塊就創(chuàng)立了一個梯形圖功能塊,并且創(chuàng)立 的功能塊就在“功能塊目錄下.*1攜窗與I U妻ft設置X內(nèi)存-樣序-閣新得序1 oom辱由0 EUI昌塔的立主iij> ?.t' Hl_從交件任)一.一略袖貼妙一一Jffi隘 d)1尤評削能1.1主祖口二禧動年圖2-42.2.2 定義功能塊變量創(chuàng)立了一個梯形圖 FB后,默認的FB名稱為“功能塊1 ,雙擊它就進入梯形圖 FB編程 界面.

14、在編程界面的上方,是變量設置區(qū).在功能塊的程序中, 地址不是實際的I/O地址,而是使用變量名作為地址.在實際使用功能塊的時候,再將實際的I/O地址和變量對應起來.在這點上功能塊是不同與子程序 的,功能塊中的地址是變量名,可以隨著程序的改變,使用要求的改變而改變.名稱教據(jù)類型AT初院值保存注晚EOOLFALSE功能塊的限制執(zhí)行|頑BOOLFALSE內(nèi)部 _輔人精出部匚圖2-5變量設置區(qū)列出了變量的用法、名稱、屬性等信息.該區(qū)域包含了4個局部:部變量、輸入變量、輸出變量、外部變量.1. 部變量:部變量只被用于功能塊程序部.它不能夠通過實際的I/O地址來進行動作.相當于常說的中間變量.2. 輸入變量

15、:輸入變量可以和實際的I/O輸入地址對應起來,通過實際的I/O輸入來限制功能塊的輸入.系統(tǒng)默認的輸入變量是“EN',表示只有當“ EM條件為ON的時候,功能塊其它輸入變量才得到外部的輸入地址的輸入信號.3. 輸出變量:輸出變量可以和實際的I/O輸出地址對應起來,實際的 I/O輸出可以通過輸出變量得到輸出信號.4. 外部變量:外部地址是常用的一些系統(tǒng)定義好的變量地址.它們在 CX-Programmer的程 序段中也可以使用.在“符號中可以找到其中一些地址.當然,用戶在“全局符號中定義的符號在“外部變量中也可以找到.在4類變量中可以定義各自的變量.定義變量時需要設置變量的屬性,下面介紹一

16、下定義變量時的屬性設置:圖2-61) 名稱:即變量名,是用來定義功能塊中變量的.在不同的功能塊中可使用同樣的變量名.2) 數(shù)據(jù)類型:功能塊提供如下數(shù)據(jù)類型可供使用.表2-1定義變量可使用的數(shù)據(jù)類型列表數(shù)據(jù)類型類型含義數(shù)據(jù)占用空間輸入變 量輸出變 量部變量BOOL位1位OKOKOKINT整型16位OKOKOKUNIT無符號整型16位OKOKOKDINT有符號雙字32位OKOKOKUDINT無符號雙字32位OKOKOKLINT有符號長整型4字64位OKOKOKULINT無符號長整型4字64位OKOKOKWORD字16位OKOKOKDWORD雙字32位OKOKOKLWORD長字64位OKOKOKRE

17、AL實型32位OKOKOKLREAL長實型64位OKOKOKTIMER計時器型1字標志位占1位NONOOKCOUNTER '計數(shù)器型1字標志位占1位NONOOK3使用:定義變量為部變量、輸入變量、輸出變量、外部變量其中之一.4初始值:選擇變量的初始狀態(tài).變量是位地址時,初始狀態(tài)為 ON/OFR變量地址是字 地址時,初始狀態(tài)是設定通道的初始值.5注釋:可以為變量名添加一些注釋.2.2.3 編寫FB梯形圖如圖2-2所示,FB的梯形圖需要在下方的梯形圖編輯區(qū)中進行編寫.FB的梯形圖和主程序中的梯形圖的區(qū)別在于:FB梯形圖中的地址都是以變量名的方式定義的,而主體程序中的地址都對應著實際的地址.

18、現(xiàn)以圖2-1的梯形圖為例,說明如何創(chuàng)立實現(xiàn)該功能的FB梯形圖.創(chuàng)立FB梯形圖的步驟如下列圖 2-7所示:圖2-7ITU1.列出輸入/輸出點2.將輸入/輸出轉(zhuǎn)為變量3.用變量名作為編程地址,編寫FB梯形圖地址變量0.00-aT0000 -b10.00 - C1. 列出輸入/輸出點:將原來梯形圖中的表示輸入和輸出的地址列出來.2. 將輸入/輸出地址轉(zhuǎn)換成變量名:將原來輸入/輸出的I/O地址定義一個變量名.不同的限制對象需要選擇不同的數(shù)據(jù)類型.例如程序中定義輸入點0.00的變量名為a,數(shù)據(jù)類型為BOOL T0000的變量名為b,數(shù)據(jù)類型為TIMER輸出點的變量名 為c,數(shù)據(jù)類型為BOOL3. 編寫F

19、B梯形圖:編寫的方式和主體程序的編寫方式幾乎一樣.區(qū)別在于,需要將原來的實際地址轉(zhuǎn)換成變量名.例如TIM指令,原來的寫法是 TIM 0000 #50,FB程序就應該寫成TIM C #50.以上看來,在FB梯形圖編輯區(qū)編寫梯形圖和主體程序編寫梯形圖的方法幾乎一樣,并且也可以調(diào)用工具欄上的快捷工具來進行程序的編寫.只要在輸?shù)刂返牡胤芥I入變量名即可.2.3使用功能塊2.3.1調(diào)用梯形圖功能塊創(chuàng)立好梯形圖FB后,在主體程序中就可以調(diào)用該功能塊了.下面將調(diào)用以上創(chuàng)立好的 梯形圖FB作為例子進行說明.0.00延時5秒功躊(BOOL)UOOIJ斷圖2-7蹄(EOOL)(EOOL)ac-10.00圖2-81.

20、 先定義一個I/O地址用來啟動梯形圖 FB,所示的開關0.00用于啟動功能塊.如果0.00 為ON執(zhí)行功能塊中的程序,如果 0.00為OFF不執(zhí)行功能塊程序.2. 然后調(diào)用工具欄上的“功能塊按鈕萱1創(chuàng)立一個新功能塊.選擇已經(jīng)創(chuàng)立好的功能塊并取名“延時5秒.由于功能塊和開關、指令、輸出線圈一樣,在程序中就是一個“元 素,所以這個起了名稱的“元素將會登記到“符號目錄的列表中.所以,在刪除創(chuàng)立的功能塊的時候,必須在“符號列表中將該功能塊對應的“符號刪除,才能刪 除梯形圖FB這個對象.3. 調(diào)用好創(chuàng)立的功能塊后,需要給輸入、輸出變量定義一個實際的I/O地址.使用“功能塊參數(shù)按鈕 狂給變量定義I/O地址

21、.如圖中 處,賦給輸入變量 a地址1.00,處, 賦給輸出變量c地址10.00.由上述調(diào)用功能塊的步驟可以看出:調(diào)用功能塊首先要設置EN的限制地址用來啟用功能塊,然后定義輸入、輸出變量的地址就完成了調(diào)用.使用者不需要知道功能塊部 的程序具體是怎樣的,只要知道功能塊的功能以及輸入、輸出限制的定義,即可使用.并且一個功能塊在同一個程序中可以被屢次調(diào)用,只要將輸入、輸出的地址改變一下就 可以了,所以說 FB的調(diào)用是非常簡便的.2.3.2 梯形圖FB的嵌套編寫好梯形圖FB的部程序后,根本創(chuàng)立了一個完整的功能塊.但在編寫一些工業(yè)限制程序時,僅使用一個功能塊的情況是非常少的.并且,如果限制功能多樣復雜,簡

22、單的調(diào)用也 不能夠滿足需要,這時,功能塊的嵌套功能就非常必要.下面主要介紹一下如何使用功能塊嵌套功能.要使用FB的嵌套功能,至少需要創(chuàng)立 2個或2個以上的功能塊.下面創(chuàng)立 2個功能塊: FB1要求:輸入接通后延時 n秒后接通輸出.FB2要求,對延時時間 n進行判斷,如果超過 100秒,那么報警輸出接通.嵌套功能需實現(xiàn)在 FB1中嵌套FB2,完成輸入接通n秒后接通輸 出,如果用戶輸入的時間超過 100秒,輸出報警.要實現(xiàn)在FB1中嵌套FB2,先要創(chuàng)立FB2,然后在創(chuàng)立FB1部程序中才可以調(diào)用 FB1.下 面列出FB2的變量和部程序:表2-2 功能塊2變量列表功能塊變量類別變量名數(shù)據(jù)類型變量說明功

23、能塊2輸入變量aINT用戶定義的延時時間輸出變量bBOOL超時報警點炳赫;r_CT大于!&甘吉圖2-9 FB2部程序建立了 FB2后,開始創(chuàng)立FB1,在FB1中調(diào)用FB2,只需將FB2看成像“指令 一樣的程序元素那樣調(diào)用就可以了,調(diào)用的同時功能塊會自動登陸到變量列表中.下面列出了FB1的變量和部程序:表2-3 功能塊1變量列表功能塊變量類別變量名數(shù)據(jù)類型變量說明功能塊1輸入變量輸入BOOL用來限制輸出的輸入點時間值INT用戶定義的延時時間部變量nTIMER定時器號時間判斷FB創(chuàng)能塊2>調(diào)用的FB2輸出變量輸出BOOL延時輸出點輸出報警BOOL超時報警點圖2-10 FB1部程序至叮

24、弗.主肘羿號FBI, FB2的創(chuàng)立完成后,就可以在主程序中直接調(diào)用FB1.在輸入時間的地址,一旦輸入時間大于100秒,輸出報警位就會置“ ON.主程序局部如下列圖 2-10所示,0.00延時接通1.00 , 0.01延時接通1.01.延時的時間值分別放在D0和D10通道中,當其中的時間值超過100秒,報警點50.00或者50.01就會輸入報警.33 00 ( I1 10.00DO酣隧1.005V.Q02D. 01 j I瞬.1砰噤1 10.01 .mo時哪堿 轅齡1 DI圖2-11 主程序局部2.3.3 保存梯形圖FB如下列圖2-12所示,可以將編輯好的功能塊單獨保存起來,文件名為 *.cxf

25、 .這樣, 如果用戶創(chuàng)立好功能塊后,今后也可以在不同的程序中進行調(diào)用.-親壽理y" m奮-瓢程序-悶斬巷序:見尋所5旬-O,嶗. .軒 翻開妙2.3.4 調(diào)試梯形圖FB對于CJ、CS系列的PLC的程序調(diào)試,無需連接到真正的PLC上,在CX-Programmer軟件中可以通過仿真功能,就可以對梯形圖程序進行監(jiān)控.監(jiān)控功能不僅能實現(xiàn)對程序使用的位和通道進行監(jiān)控,同樣也能對調(diào)用的功能塊進行監(jiān)控.要監(jiān)控功能塊,在仿真狀態(tài),雙擊調(diào)用的功能塊或者右擊該功能塊,選擇監(jiān)控功能塊梯形圖實例就可轉(zhuǎn)換到監(jiān)控 FB的界面.在監(jiān)控FB的界面,可以完成監(jiān)控 FB中的位和通道, 改變PV值,強制置位/復位等操作.

26、監(jiān)控的操作步驟如下:1. 選擇PLC 工作在線仿真器,模擬下傳程序后,就可以對程序進行在線仿真的 調(diào)試工作了 ;2. 選擇視圖-> 窗口 -> 查看,翻開查看窗口.3. 在主程序中選擇調(diào)用的功能塊,在彈出的菜單中選擇在查看窗口中注冊,在彈出的對話框中“用法和“數(shù)據(jù)類型選擇 全部.所有功能塊中的變量都被登記在查看窗口中,用戶可以根據(jù)需要來進行調(diào)試.如圖2-13所示:用:宜叫昭通,費房共崖歸反部.人間HH .'.野步“訥TTHEE持覷圖 2-134. 雙擊主程序中的功能塊實例,就可以進入監(jiān)控FB的部程序的界面.5. 用戶可根據(jù)需要對位進行置位/復位,改變通道的 PV值等操作.整

27、個操作過程可以參考下列圖2-14:Copy th.kiutMcafind pAEtsi I lntiiA Wiiteh W li dew.OfRWit-cIc*. m row h 福 WS由 牌*bidaw and Miod HqmeftiF m IMin 岫成wd狀面Hen圖 2-142.4 FB存分配考前須知前面介紹了功能塊的創(chuàng)立以及使用方法,在創(chuàng)立和使用的過程中,熟悉了FB的結(jié)構(gòu)以后,下面介紹一下使用 FB功能的存分配需要注意的事項.創(chuàng)立了功能塊以后,在主程序里調(diào)用創(chuàng)立的功能塊,在主程序中被調(diào)用的FB我們稱作“功能塊實例或者簡稱“實例.并且要對引用的FB進行命名,如下列圖2-15所示:圖

28、 2-15創(chuàng)立的功能塊如果沒有被調(diào)用,那么執(zhí)行主程序的時候不會執(zhí)行該功能塊,同時,PLC也不會分配該功能塊的 I/O地址.一旦程序中調(diào)用了功能塊,那么PLC將會自動分配一局部I/O存供FB實例運行使用.主程序可以對同一個FB進行屢次調(diào)用,如果實例的名稱一樣,那么占用的I/O存一樣,如果實例的名稱不一致,那么PLC分配不同的I/O地址給不同的實例.所以說實例的I/O分配是否相同,是根據(jù)實例的名稱決定的,具體情況如下列圖2-16所示:Not yet in program and memory rw< yetaibcated (Btatract).Fuidion BIck* Definitio

29、n FH1ProgramInscance瞧larra F0it 贈fundigrt btogk definiicri F012. Parametersm pniMnM al1_ AlgEhnnOutput data2 otjuncSpr btock dgftnifonAutomaliicBJlocationA-JtornaiicalocatknV-RCrv .lor FB1.2Diifef ent JO data canbepwged with th sarne function.Biock jnsiance hprogran with manwry allocated, (objscq圖 2

30、-18行.用戶也也可自己設定供FB實例使用的分配來進行設定,如下列圖 2-17所示:I/O地址.選擇PLC 功能塊存r 功能塊存圖 2-16PLC自動分配一局部存給FB實例供其運行,并且自動分配H區(qū)的I/O供功能塊實例運雙擊“起始地址或者“結(jié)束地址,就可選擇分配給功能塊實例的存區(qū),然后輸入起始地址和結(jié)束地址. 然后在主程序編程中,就需要注意不要使用這些已經(jīng)分配給功能塊實例圖 2-17的地址作為編程的部地址來使用o在編程時,主程序編寫完成后,可以查看當前程序占用了多少存.通過視圖存視圖功能塊存分配,可以查看當前程序占用了多少存,其中功能塊占用了多少以及還剩 下多少存.如下列圖 2-18所示:第二

31、章局級語言ST語言功能塊3.1 ST語言功能塊編程根底3.1.1高級語言編程概念ST語言Structure Text Language是一種用于工業(yè)限制的高級語言.它類似于PASCAL語言,有選擇語句或者循環(huán)語句等這些語言結(jié)構(gòu).通過使用這些語言結(jié)構(gòu)來編寫限制程序.一個的ST程序由多條語句組成,一個語句由變量和表達式組成.1. 表達式:表達式是包含著算法和操作數(shù)的序列.算法包括邏輯運算、算術(shù)運算、比擬運算等算法.2. 語句:語句是由表達式構(gòu)成的,可以分為賦值語句或者限制語句.賦值語句中包含著表達式的計算結(jié)果這個信息.限制語句包含選擇語句、循環(huán)語句、條件語句等.卜面舉例說明上述概念,卜面的就是 C

32、ASE語句選擇語句和 IF 條件語句.這個就是表達式,其中NofRed就是變量.表達式左右2邊包含的就是算法.CASE COLOR OF 1:NofRed:= NofRed+1; * 2:NofBlue:= NofBlue+1;ELSE NofOther:= NofOther+1; END CASE;IF NofRed>100 OR NofBlue>100 THENSTOP:=TRUE圖3-13.1.2 ST語言編程特點用戶除了可以創(chuàng)立梯形圖FB之外,熟悉高級語言編程的技術(shù)人員還可以創(chuàng)立ST語言的FB.CX-Programmer為熟悉不同編程語言的用戶提供了不同的編程平臺.這樣,懂

33、 得高級語言的用戶編寫好復雜的ST語言功能塊后,其它用戶甚至是不熟悉 ST語言的操作人員也可以使用該功能塊,這樣就大大降低了操作人員對編程語言的限制.另外,使用高級語言編程,可以輕松完成復雜的算術(shù)運算.如果用梯形圖語言編輯 復雜的算術(shù)運算功能,會寫很多條程序,占用更多的程序容量.如果用ST語言來寫,用表達式就可以代替梯形圖復雜的程序.例如:圓柱體容器的體積公式為V= r2h,如果要計算其中液體的體積,用梯形圖編程程序如下列圖所示:圖3-22 rhx r2r2h如果改用ST語言編寫的話,程序如下:V : ( * (exp t(r,2)* h);公式3-1 用梯形圖語言編程,需要寫 4-6步程序,

34、而且操作數(shù)較多,不便于治理和修改.而 使用ST語言,只要寫好表達式即可.所以說,對于含有復雜的算術(shù)運算的限制程序, 使用ST語言編程有著一定的優(yōu)勢.下面,我們就來學習如何使用這一功能.3.2 ST語言編程系統(tǒng)介紹一般來說,一段程序總是由表達式和語句構(gòu)成的.了解ST語言的編程系統(tǒng),就要從表達式和語句開始.對于表達式,需要從操作符號和變量入手;而對于語句,需 要掌握它的功能和語言結(jié)構(gòu).下面,我們就來介紹一下ST語言的常用運算符及根本命令.3.2.1 ST語言常用運算符ST語言能夠?qū)崿F(xiàn)的算術(shù)運算除了根本的加、減、乘、除之外,還能實現(xiàn)一些復雜的函數(shù) 運算,例如指數(shù)、正余弦函數(shù)、對數(shù)函數(shù)等.下面我們就來

35、熟悉一下這些運算符號及用 法.1. 根本運算符根本運算符包括簡單的加、減、乘、除、比擬及一些邏輯關系的表達符號.這些符 號的使用比擬簡單,使用這些符號可以實現(xiàn)一些不太復雜的運算要求.具體的規(guī)那么及使 用方法可以參考下表:表3-1根本運算符運算功能操作符號應用例如加+A+B 其中A,B為變量減一A-B乘*A*B除/A/B比擬<,>,<=,>=A>B, A<B, A<=B, A>=B=A=B邏輯與&,ANDA&B, A AND B補NOTA NOT B邏輯或ORA OR B異或XORA XOR B這些運算符的使用是很簡單的,但在使用這

36、些運算的過程中要注意參加運算的變量的類型.例如除法運算,如果A、B為INT類型,A=3,B=2,那么A/B的結(jié)果就是1;如果A、B為REAL類型,那么運算結(jié)果就為1.5 .所以要根據(jù)運算要求選擇適當?shù)淖兞款愋?2. 函數(shù)運算符函數(shù)運算符包括指數(shù)運算、正余弦運算、對數(shù)函數(shù)等符號.這些符號的使用相對復雜,使用這些符號可以實現(xiàn)要求更高的運算.具體的規(guī)那么及使用方法可以參考下表:表3-2函數(shù)運算符函數(shù)功能函數(shù)符號應用例如功能絕對值ABSa:=ABS(b)a = |b|方根運算SQRTa:=SQRT(b)a = V b自然指數(shù)EXPa:=EXP(b)b a = e常用指數(shù)EXPTa:=EXPT(b,c)

37、c a = b自然對數(shù)LNa:=LN(b)a = log eb常用對數(shù)LOGa:=LOG(b)a = log 10b正弦函數(shù)SINa:=SIN(b)a = sin (b)余弦函數(shù)COSa:=COS(b)a=cos (b)正切函數(shù)TANa:=TAN(b)a = tan (b)反正弦ASINa:=ASIN(b)_ _ -1 a = sin(b)反余弦ACOSa:=ACOS(b)1 a = cos(b)1反正切ATANa:=ATAN(b)_ »-1a = tan(b)3. 常數(shù)表達方法熟悉了根本的運算符后,就可以編寫一些表達式了.表達式中可以用變量、常量結(jié)合運算符來傳遞數(shù)字信息.前面我們介

38、紹過變量的類型及表達,現(xiàn)在我們來了解一下 ST語言中常量的幾種表示方式.常量可以用十進制、十六進制、八進制、二進制來表示,表示方法如下表所示:表3-3常量表示方法進制表達方式例如十進制數(shù)字12十八進制16#數(shù)字16#C八進制8#數(shù)字8#14二進制2#數(shù)字2#11003.2.2 ST語言根本命令ST語言是類似于 Pascal的高級語言.只要在編輯區(qū)編寫ST語言的高級程序,就可以用來實現(xiàn)某段限制功能.對于熟悉高級語言的用戶,ST語言提供了很好的編程界面,只需稍微了解一下編程規(guī)那么即可掌握;對于不熟悉高級語言編程的用戶,ST語言的入門也是比較容易的.下面我們介紹一下ST語言編程常用的命令.1. 求和

39、語句Summary求和語句是個等式,用于表達把運算總和的值賦予一個變量.表達式: 變量:=表達式/變量/常量舉例:A:=X+1 ;A:=B ;A:=20;2. 條件語句IF語句IF語句適用于當一個特定的條件滿足的時候,去執(zhí)行相應的限制.如果條件不滿 足,那么執(zhí)行另外的限制.IF語句有簡單的對一個條件進行判斷的程序,也有復雜的對 多個條件進行判斷的程序,即嵌套語句.1 IF語句單一條件表達式:IF<條件> THEN< 執(zhí)行表達式1>ELSE< 執(zhí)行表達式2>END_IF;執(zhí)行流程圖:圖3-4舉例:如果A>0,那么B等于A的值,并且線圈 C有信號輸出,否那

40、么 B等于0,線圈C 無信號輸出.IF A>0 THENB:=A;C:=TRUEELSEB:=0 ;C:=FALSE;END_IF;2)IF語句多條件嵌套表達式1: IF<條件1> THENIF< 條件 2> THEN< 表達式1>ELSE< 表達式2>END_IF ;END_IF ;流程圖1:&lr_laN 山AE¥<v 山 s_l山_AU¥<v N 山 HHAue<VLL_S_1山Kv N 山 HHAoe<VLL_S_1山A¥<v N 山 Hl Ae<VLL_S_

41、1山fAb kvztha- « VH= N¥理<g,co®舉例:要求如下,如果A>0,X=10.否貝U, 先參考 參數(shù) B,如果 B= 1,那么X= 1,如果B=2, 那么X=2,如果都不是,X=0.IF A>0 THEN X:=10 ;ELSIF B=1 THEN X:=1 ;ELSIF B=2 THEN X:=2 ;ELSE X:=0 ;END_IF;3. 選擇語句(CAS耶句)這類語句適中有一個變量,它可選擇多個值,如果選擇的值不同會執(zhí)行不同的限制.我們可以這樣理解, 在工業(yè)限制中要限制對某一材料的切割,由于材料硬度不同, 需要不同刀具進行

42、切割.如:材料 1,需要用1號刀具進行切割;材料 2,需要用2號刀具進 行切割,材料3,需要用3號刀具進行切割.例如這樣的限制情況就可以選用CASE語句.表達式:CASE整型變量> OF1:<表達式1>2:<表達式2>.N:<表達式N>ELSE <表達式M%END_CA§E舉例:CASE A OF1:X:=1 ;2:X:=2 ;3:X:=3 ;ELSE Y:=0 ;END_CASE3.2.3 ST語言編程規(guī)那么ST 語言編程有一些規(guī)那么需要注意.在我們學會寫一些簡單的限制語句后,編譯功能塊后仍然會出現(xiàn)錯誤,所以在掌握了根本的編程符號和語

43、句之后,也需要知道ST語言的編程語法和規(guī)那么.1. 每個完整的表達式后要用“;號結(jié)尾.而對于語句來說,不是每句后面都要加“;,所以需要注意什么地方應該加“;,什么地方不該加“;.2. 如果一個變量被定義成整型,那么不能被寫成有小數(shù)點的形式.如果一個變量被定義成實型,那么這個變量不能被寫成整數(shù)類型.例如:如果A為整型,就不能寫成 A:=2.0.如果A為實型,就不能寫成 A:=2.3. 布爾類型的變量的 ON OFF狀態(tài)要用TRUE FALSE來表示.如果 a是BOOL量,不能 用 a:=ON(OFF), a:=1(0) 來表示它的狀態(tài),要寫成 a:=TRUE(FALSE).4. 表達式前后的變量

44、類型要一致.例如C=A+B,如果A、B、C都是整型,就不會有錯誤.如果C是實型,那么會出現(xiàn)語法錯誤.當功能塊程序不能通過編譯的話,也可以通過查詢錯誤代碼來判斷發(fā)生了什么語法錯 誤.詳細情況,可以參考 附錄一:ST語言錯誤代碼.3.3創(chuàng)立ST語言FBST 語言功能塊的創(chuàng)立和梯形圖功能塊的調(diào)用根本一樣 ,根本步驟為:新建 ST語言功能 塊定義功能塊變量r編寫 FB部程序調(diào)用功能塊r定義功能塊的 I/O地址,如下列圖3-7 所示.和創(chuàng)立梯形圖FB的步驟根本一致,唯一不同的是編寫 FB部程序需要是使用 ST語言.新建功能塊創(chuàng)立一個新的FB工程定義FB變量一定義FB程序地址變量ST語言調(diào)用FB-在主程序

45、中調(diào)用功能塊定義I/O 一定義主程序FB的變量地址圖3-73.3.1 新建ST語言FB新建ST語言功能塊與新建梯形圖功能塊的過程類似,只需在創(chuàng)立功能塊的時候,選擇 “結(jié)構(gòu)文本,即選擇用ST語言建立FB部程序.如下列圖3-8所示.1埴*新理保:'£0>料好ISA顫眺重寸梯卷國如魯晏唯豆時,.#JW叫.一哈枷白心UH*J4 .危汽洋洲田1泗凹主宙口上撐引p曹用性iQ|圖3-83.3.2 定義ST語言FB變量ST語言功能塊的編輯區(qū)如下列圖所示.g早m| 一外部.Mi fttA心 3吵尊 野 舊的:I圈rf:廓E皿 Q iriES9昉啊 變量設置區(qū)ST語言編程區(qū)圖3-9ST語言

46、的變量設置和梯形圖FB中參數(shù)設置一致.此處不再贅述.3.3.3 編寫ST語言FB程序ST語言的編輯寫在變量設置區(qū)的下方.原來在梯形圖FB的編輯界面是梯形圖編輯界面,在ST語言功能塊的編輯區(qū)是文本區(qū),可以編寫高級語言程序. 例如:要計算的圓柱體容積,數(shù)學公式為V= r2h,除了定義變量r和h之外,根據(jù)前面學的 ST語言符號和函數(shù),在 ST 語言編程區(qū)寫入如下公式即可:V : ( *(expt(r,2)* h);公式3-1 3.4 ST語言FB的使用3.4.1 調(diào)用ST語言FBST 語言功能塊的調(diào)用和梯形圖功能塊的調(diào)用根本一致.只要給出功能塊的輸入地址和輸出地址即可.如調(diào)用上述計算圓柱體容積的功能

47、塊,如圖 3-10所示:調(diào)用功能塊后,給出變量 r的地址DO h的地址D5,體積V的地址為D1Q需要注意, 例如中變量類型為實型,不同變量的地址不能使用同一存區(qū)中連續(xù)的地址,如:r、h、V不能使用Dd D1、D2,由于實型數(shù)據(jù)要占用連續(xù)2-8個通道根據(jù)實型類型不同,數(shù)據(jù)長度有所變化,所以需要適當?shù)姆峙漭斎?、輸出通?3.4.2 ST語言FB的嵌套梯形圖FB的嵌套前面已經(jīng)學習過, ST語言FB同樣也支持嵌套功能.在梯形圖 FB中可 以嵌套ST語言FB;同樣,在ST語言FB中也可以嵌套梯形圖 FB.如下列圖3-11所示:主程 序調(diào)用FB1,在FB1中嵌套FB2.FB1為ST語言功能塊,FB2為ST

48、語言FB或者梯形圖FB.Ptogramlri5lanc_F8lT FB1-Example:Insto nce_FB2 ();FBI (8TfExample:FB2(ST)圖 3-11但是ST語言FB調(diào)用嵌套FB的語法和使用梯形圖 FB嵌套的語法是不一樣的. 下面列出使用ST語言FB嵌套的語法:1. 需要使能位(EN)FB2 名稱(EN:=A,FB2_IN1:= FB1_IN1, FB2_IN2:= FB1_IN2 FB2_OUT1=> FB1_OUT1,FB2_OUT2=> FB1_OUT2);2. 不需要使能位(EN)FB2 名稱(FB2_IN1:= FB1_IN1, FB2_I

49、N2:= FB1_IN2 FB2_OUT1=> FB1_OUT1,FB2_OUT2=> FB1_OUT2);3.4.3 ST語言FB的保存和調(diào)試ST 語言FB的保存、調(diào)試和梯形圖語言FB的保存、調(diào)試的操作步驟是一樣的.需要注意的是:在主程序中調(diào)用 ST語言功能塊的話,雙擊主程序中的FB,進入監(jiān)控FB的界面后,ST語言的運行過程是無法監(jiān)控的.如果ST語言FB中有嵌套梯形圖 FB的話,可以使用工具 班一,.一 ,、 欄上“監(jiān)視功能塊梯形圖實例圖標 四來實現(xiàn)對嵌套梯形圖 FB的監(jiān)控.第四章功能塊一一FB庫4.1 FB庫概述CX-Programmer6.0軟件有自帶的功能塊,當用 OMRO

50、翰PLC和FA元器件以不同的聯(lián)網(wǎng)方式通信,來完成一些限制功能的時候,就可以直接調(diào)用這些已經(jīng)做好的功能塊.這些 CX-P自帶的功能塊,我們稱為FB庫.4.1.1 FB庫特點CX-P 提供的標準FB庫便于OMRON PLC連接到元器件產(chǎn)品, 提升了 PLC單元和元器件 之間的連貫性.下面我們了解一下使用FB庫的特點:1. 編程簡化.用戶無需再去編寫程序來實現(xiàn)FB庫可以實現(xiàn)的功能,只要直接調(diào)用FB庫中的文件即可.節(jié)省了編程的時間,使得編程更容易.2. 使用簡單,容易理解.即使用戶不知道FB文件的程序是如何編寫的,只要了解輸入、輸出地址的定義, 正確的分配功能塊的限制地址就可以了.FB庫中的文件明確、

51、 詳細的列出了每個變量的限制定義,和整個功能塊實現(xiàn)的限制功能.用戶使用中一有疑問,查 閱相關幫助即可理解.11輸入、輸出分列在兩邊,清1晰易見.變量定義也分別給U00普矽心上二二JCB0OE5"1 E出,容易解讀."心/魅既,*撻-42-DIDO圖4-13. 無需測試.FB庫中的功能塊程序都通過了OMRONJ檢測,用戶無需測試直接可以使用.4.1.2 FB庫應用簡介CJ/CS1系列的PLC,通過串行通信的方式RS232 RS422/485或者DeviceNet網(wǎng)絡到OMRO翰元器件如溫控器.如果要對元器件進行讀操作如讀取溫控器當前溫度值PV或者寫操作如設定溫控器的溫度設定值

52、SV,可以在FB庫中調(diào)用該元器件實現(xiàn)該功能的功能塊.例如如下列圖4-2所示:要實現(xiàn)PLC讀取溫控器的 PV值,直接調(diào)用 FB庫中的"_E5xx202_ReadPV10功能塊,設置對應讀取地址即可.無需再編寫相應的通信程序.同 樣,如圖4-3所示PLC以DeviceNet的方式鏈和變頻器從站進行通信,也可以通過調(diào)用 功能塊直接實現(xiàn).Owon Componsfiis圖4-2DevnzeHe4圖4-34.2 FB庫容介紹4.2.1 FB庫容簡介FB 庫中功能塊文件都是*.cxf的文件.FB庫中的功能塊能夠?qū)崿F(xiàn)歐姆龍的 PLC對元器 件根本和重要的限制要求.這些文件在CX-Programmer的安裝目錄下,下面列出了 FB庫的容及根本結(jié)構(gòu).CodeReaaer 2DCRIn'.'ener ir,VRTLaserSenscr PLC CLK CPU ETN SCx UNITDMecPos:iDnCcnlrollerRemotelONCFNCxSrrwiLORFID Ser

溫馨提示

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

評論

0/150

提交評論