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

下載本文檔

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

文檔簡介

1、OMRON 功能塊(FB)教材 I目錄目錄第一章第一章 功能塊功能塊(FB)(FB)編程概述編程概述 .1 11.1 功能塊(FB)簡介.11.2 功能塊(FB)使用特點(diǎn).11.3 功能塊(FB)使用環(huán)境.21.3.1 支持 FB 功能的 PLC 類型.21.3.2.支持 FB 功能的軟件.21.3.3 CX-Programmer6.0 功能塊特點(diǎn) .2第二章第二章 梯形圖功能塊梯形圖功能塊 .3 32.1 梯形圖功能塊編程基礎(chǔ).32.1.1 梯形圖功能塊結(jié)構(gòu)介紹 .32.1.2 梯形圖功能塊編輯區(qū)介紹.42.2 創(chuàng)建功能塊.42.2.1 新建梯形圖 FB .52.2.2 設(shè)置功能塊變量.52

2、.2.3 編寫 FB 內(nèi)梯形圖.72.3 使用功能塊.82.3.1 調(diào)用梯形圖功能塊.82.3.2 梯形圖 FB 的嵌套.92.3.3 保存梯形圖 FB .102.3.4 調(diào)試梯形圖 FB .112.4 FB 內(nèi)存分配注意事項(xiàng) .12第三章第三章 高級(jí)語言(高級(jí)語言(STST 語言)功能塊語言)功能塊.14143.1ST 語言功能塊編程基礎(chǔ).143.1.1 高級(jí)語言編程概念.143.1.2 ST 語言編程特點(diǎn) .14OMRON 功能塊(FB)教材 II3.2ST 語言編程系統(tǒng)介紹.153.2.1 ST 語言常用運(yùn)算符 .163.2.2 ST 語言基本命令 .173.2.3 ST 語言編程規(guī)則

3、.203.3創(chuàng)建 ST 語言 FB.213.4ST 語言 FB 的使用.223.4.1 調(diào)用 ST 語言 FB .223.4.2 ST 語言 FB 的嵌套 .223.4.3 ST 語言 FB 的保存和調(diào)試 .23第四章第四章 功能塊功能塊FBFB 庫庫.24244.1 FB 庫概述 .244.1.1 FB 庫特點(diǎn) .244.1.2 FB 庫應(yīng)用簡介 .244.2 FB 庫內(nèi)容介紹 .264.2.1 FB 庫內(nèi)容簡介 .264.2.2 FB 庫功能分類 .264.3 FB 庫功能塊使用 .274.3.1 創(chuàng)建 FB 庫中的功能塊.274.3.2 閱覽 FB 庫中的功能塊程序.284.3.3 調(diào)用

4、 FB 庫中的功能塊.28第五章第五章 功能塊應(yīng)用示例功能塊應(yīng)用示例 .2929附錄一:附錄一:STST 語言語法錯(cuò)誤一覽表語言語法錯(cuò)誤一覽表.3434OMRON 功能塊(FB)教材 1第一章第一章 功能塊功能塊(FB)(FB)編程概述編程概述 OMRON 編程軟件 CX-Programmer 從 5.0 版本開始,增加了一個(gè)全新的編程功能功能塊(Function Block,簡稱 FBFB) 。CJ、CS、CP1H 系列的 PLC 可以使用這個(gè)功能進(jìn)行編程,它大大增強(qiáng)了 CX-Programmer 軟件對(duì) PLC 編程、控制和調(diào)試的能力。功能塊(FB)主要提供了梯形圖和高級(jí)語言 2 種編程方

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

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

7、程工作更清晰,更簡便,更易于管理。2 數(shù)字運(yùn)算過程簡單化。數(shù)字運(yùn)算過程簡單化。使用功能塊中 ST 語言編程,能夠處理更復(fù)雜的算術(shù)運(yùn)算。原來要在 PLC 中處理數(shù)字量,需要編寫梯形圖來進(jìn)行算術(shù)運(yùn)算,一步程序也只能完成一個(gè)算法,要完成復(fù)雜的算法需要編寫很多程序?,F(xiàn)在用 ST 語言,就可以用精簡的高級(jí)語言編寫復(fù)雜的算術(shù)運(yùn)算過程。3 CX-PCX-P 軟件自帶軟件自帶 FBFB 庫。庫。CX-Programmer 軟件自帶 FB 庫,用戶可以根據(jù)需要調(diào)用 FB庫中自帶的功能塊。FB 庫讓用戶無需編輯梯形圖,就可以使用 PLC 單元和元器件的基本功能,并且易于使用,無需程序調(diào)試,簡單易懂,具可擴(kuò)展性。4

8、 編程操作更簡單。編程操作更簡單。功能塊的調(diào)用、編輯、刪除就象對(duì)指令的操作一樣簡單。編輯功能塊內(nèi)部的程序也很簡便,只需找到相對(duì)應(yīng)的功能塊,就可以在“塊”的內(nèi)部進(jìn)行程序的編輯,而不需要在繁冗的程序中查找修改。5 程序檢查更容易。程序檢查更容易。功能塊程序的檢查很方便,只要在“塊”中檢查程序的流程和可靠性即可,工作量小,檢查簡單。使用功能塊縮短了主程序的大小,并且功能塊的查找也很簡單,從而使得程序的檢查工作變得更容易。OMRON 功能塊(FB)教材 2上述功能塊(FB)的這些特點(diǎn)給用戶提供了一個(gè)易于編程、管理程序、調(diào)試程序的編程環(huán)境。下面就詳細(xì)介紹功能塊功能的使用和操作。1.3 功能塊(FB)使用

9、環(huán)境1.3.11.3.1 支持支持 FBFB 功能的功能的 PLCPLC 類型類型CJ、CS、CP1H 系列的 PLC 才支持 FB 功能,并且 CJ、CS 的 CPU 單元版本號(hào)需要在 3.0或 3.0 以上。具體機(jī)型可參考下表:PLCPLC 類型類型CPUCPU 型號(hào)型號(hào)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.1.3.2.支持支持

10、FBFB 功能的軟件功能的軟件 需使用 CX-Programmer5.0 及以上版本。1.3.31.3.3 CX-Programmer6.0CX-Programmer6.0 功能塊特點(diǎn)功能塊特點(diǎn) 在 CX-ONE 軟件中的 CX-Programmer6.0,其中的 FB 功能有很多先進(jìn)的功能,現(xiàn)簡單介紹如下:1. 在線可以察看功能塊的內(nèi)部程序運(yùn)行情況。在 CX-Programmer6.0 中,用戶是可以查看 FB 內(nèi)部程序運(yùn)行情況的,提高了用戶對(duì)程序的查錯(cuò)能力。2. 功能塊支持嵌套。在 CX-Programmer6.0 中,如果創(chuàng)建了多個(gè)功能塊,如FB1、FB2、FB3,則可以實(shí)現(xiàn) FB1 的

11、內(nèi)部程序中調(diào)用 FB2,F(xiàn)B2 的內(nèi)部程序調(diào)用FB3。梯形圖 FB 最多支持 8 層嵌套,而 ST 語言 FB 則可以自由的嵌套。3. FB 支持程序更新。CX-Programmer6.0 中,如果更改了 FB 的內(nèi)部程序,在調(diào)用該功能塊的地方,只需更新該功能塊即可。OMRON 功能塊(FB)教材 3第二章第二章 梯形圖功能塊梯形圖功能塊2.1 梯形圖功能塊編程基礎(chǔ)使用過 CX-Programmer 的用戶都非常熟悉梯形圖編程模式和編程環(huán)境。因此,CX-Programmer 仍然提供了老用戶熟悉的梯形圖語言來創(chuàng)建和編輯功能塊的內(nèi)部程序。2.1.12.1.1 梯形圖功能塊結(jié)構(gòu)介紹梯形圖功能塊結(jié)構(gòu)

12、介紹 梯形圖功能塊是由完成特定功能的程序段組成的。組成程序的每一步都有輸入和輸出,功能塊中的輸入和輸出被定義成變量的這種特點(diǎn),決定著它能夠成為一個(gè)編程“元素” ,而能夠在不同的程序中被多次調(diào)用。總的來說,功能塊是由變量算法變量算法構(gòu)成的。1. 變量:變量是指輸入、輸出和內(nèi)部地址,在編輯功能塊的時(shí)候給這些地址一個(gè)變量名。 功能塊運(yùn)行時(shí),它們對(duì)應(yīng)著外部的實(shí)際地址。2. 算法:算法是依靠梯形圖的編程來完成的。依靠算法可以完成某個(gè)特定的控制功能。 舉個(gè)簡單的例子說明。如下圖 2-1 所示,要實(shí)現(xiàn)按下開 0.00 開關(guān) 5 秒后接通輸出10.00,梯形圖程序如(a)圖所示。如要把這個(gè)功能做成功能塊的形式

13、,以便今后編程時(shí)調(diào)用,必須將其中的輸入、輸出甚至中間變量都定義稱為變量,如(b)圖所示。在每次調(diào)用功能塊的時(shí)候,無需知道內(nèi)部結(jié)構(gòu),只要知道該 FB 能實(shí)現(xiàn)的控制功能,及輸入、輸出變量對(duì)應(yīng)完成什么功能,就可以直接使用了(如圖 2-1(c)所示) 。 圖 2-1 (a)(b)(c)將輸入、輸出定義成變量調(diào)用時(shí)輸入地址OMRON 功能塊(FB)教材 42.1.22.1.2 梯形圖功能塊編輯區(qū)介紹梯形圖功能塊編輯區(qū)介紹梯形圖語言的編程界面如下圖 2-2 所示:從圖上分界線來看,可以把整個(gè)操作界面分成 2 個(gè)部分,上半部分是變量設(shè)置區(qū),下半部分是梯形圖編輯區(qū)。 變量設(shè)置區(qū) FB 梯形圖編輯區(qū)圖 2-21

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

15、步驟都是相同的,只是其中對(duì)程序的編輯方式會(huì)有所不同,下面將詳細(xì)介紹一下如何使用 FB 功能。OMRON 功能塊(FB)教材 5圖 2-32.2.12.2.1 新建梯形圖新建梯形圖 FBFB 在“新 PLC”目錄下,可以看到“功能塊”子目錄,包含有這個(gè)子目錄的 PLC 才支持FB 功能。右擊“功能塊” ,選擇“插入梯形圖功能塊”就創(chuàng)建了一個(gè)梯形圖功能塊,并且創(chuàng)建的功能塊就在“功能塊”目錄下。 圖 2-4新建功能塊新建功能塊創(chuàng)建一個(gè)新的 FB 項(xiàng)目定義定義 FB 變量變量定義 FB 程序地址變量編寫編寫 FB 程序程序編寫 FB 的內(nèi)部程序調(diào)用調(diào)用 FB在主程序中調(diào)用功能塊定義定義 I/O定義主程

16、序 FB 變量的地址OMRON 功能塊(FB)教材 62.2.22.2.2 定義功能塊變量定義功能塊變量 創(chuàng)建了一個(gè)梯形圖 FB 后,默認(rèn)的 FB 名稱為“功能塊 1” ,雙擊它就進(jìn)入梯形圖 FB 編程界面。在編程界面的上方,是變量設(shè)置區(qū)。 在功能塊的程序中,地址不是實(shí)際的 I/O 地址,而是使用變量名作為地址。在實(shí)際使用功能塊的時(shí)候,再將實(shí)際的 I/O 地址和變量一一對(duì)應(yīng)起來。在這點(diǎn)上功能塊是不同與子程序的,功能塊中的地址是變量名,可以隨著程序的改變,使用要求的改變而改變。 圖 2-5 變量設(shè)置區(qū)列出了變量的用法、名稱、屬性等信息。該區(qū)域包含了 4 個(gè)部分:內(nèi)部變量、輸入變量、輸出變量、外部

17、變量。1. 內(nèi)部變量:內(nèi)部變量只被用于功能塊程序內(nèi)部。它不能夠通過實(shí)際的 I/O 地址來進(jìn)行動(dòng)作。相當(dāng)于常說的中間變量。2. 輸入變量:輸入變量可以和實(shí)際的 I/O 輸入地址對(duì)應(yīng)起來,通過實(shí)際的 I/O 輸入來控制功能塊的輸入。系統(tǒng)默認(rèn)的輸入變量是“EN” ,表示只有當(dāng)“EN”條件為 ON 的時(shí)候,功能塊其它輸入變量才得到外部的輸入地址的輸入信號(hào)。3. 輸出變量:輸出變量可以和實(shí)際的 I/O 輸出地址對(duì)應(yīng)起來,實(shí)際的 I/O 輸出可以通過輸出變量得到輸出信號(hào)。4. 外部變量:外部地址是常用的一些系統(tǒng)定義好的變量地址。它們?cè)?CX-Programmer 的程序段中也可以使用。在“符號(hào)”中可以找到

18、其中一些地址。當(dāng)然,用戶在“全局符號(hào)”中定義的符號(hào)在“外部變量”中也可以找到。在 4 類變量中可以定義各自的變量。定義變量時(shí)需要設(shè)置變量的屬性,下面介紹一下定義變量時(shí)的屬性設(shè)置:圖 2-61)名稱:即變量名,是用來定義功能塊中變量的。在不同的功能塊中可使用同樣的變量名。OMRON 功能塊(FB)教材 72)數(shù)據(jù)類型:功能塊提供如下數(shù)據(jù)類型可供使用。 表 2-1 定義變量可使用的數(shù)據(jù)類型列表數(shù)據(jù)類數(shù)據(jù)類型型類型含義類型含義數(shù)據(jù)占用空間數(shù)據(jù)占用空間輸入變輸入變量量輸出變輸出變量量內(nèi)部變內(nèi)部變量量BOOLBOOL位1 位OKOKOKINTINT整型16 位OKOKOKUNITUNIT無符號(hào)整型16

19、位OKOKOKDINTDINT有符號(hào)雙字32 位OKOKOKUDINTUDINT無符號(hào)雙字32 位OKOKOKLINTLINT有符號(hào)長整型(4 字) 64 位OKOKOKULINTULINT無符號(hào)長整型(4 字) 64 位OKOKOKWORDWORD字16 位OKOKOKDWORDDWORD雙字32 位OKOKOKLWORDLWORD長字64 位OKOKOKREALREAL實(shí)型32 位OKOKOKLREALLREAL長實(shí)型64 位OKOKOKTIMERTIMER計(jì)時(shí)器型1 字(標(biāo)志位占 1 位)NONOOKCOUNTERCOUNTER計(jì)數(shù)器型1 字(標(biāo)志位占 1 位)NONOOK3)使用:定義

20、變量為內(nèi)部變量、輸入變量、輸出變量、外部變量其中之一。4)初始值:選擇變量的初始狀態(tài)。變量是位地址時(shí),初始狀態(tài)為 ON/OFF。變量地址是字地址時(shí),初始狀態(tài)是設(shè)定通道內(nèi)的初始值。5)注釋:可以為變量名添加一些注釋。2.2.32.2.3 編寫編寫 FBFB 內(nèi)梯形圖內(nèi)梯形圖 如圖 2-2 所示,F(xiàn)B 的梯形圖需要在下方的梯形圖編輯區(qū)中進(jìn)行編寫。FB 的梯形圖和主程序中的梯形圖的區(qū)別在于:FB 梯形圖中的地址都是以變量名的方式定義的,而主體程序中的地址都對(duì)應(yīng)著實(shí)際的地址?,F(xiàn)以圖 2-1 的梯形圖為例,說明如何創(chuàng)建實(shí)現(xiàn)該功能的 FB梯形圖。 創(chuàng)建 FB 梯形圖的步驟如下圖 2-7 所示:OMRON

21、功能塊(FB)教材 8 圖 2-71. 列出輸入/輸出點(diǎn):將原來梯形圖中的表示輸入和輸出的地址列出來。2. 將輸入/輸出地址轉(zhuǎn)換成變量名:將原來輸入/輸出的 I/O 地址一一定義一個(gè)變量名。不同的控制對(duì)象需要選擇不同的數(shù)據(jù)類型。例如程序中定義輸入點(diǎn) 0.00 的變量名為 a,數(shù)據(jù)類型為 BOOL;T0000 的變量名為 b,數(shù)據(jù)類型為 TIMER;輸出點(diǎn)的變量名為 c,數(shù)據(jù)類型為 BOOL。3. 編寫 FB 梯形圖:編寫的方式和主體程序的編寫方式幾乎一樣。區(qū)別在于,需要將原來的實(shí)際地址轉(zhuǎn)換成變量名。例如 TIM 指令,原來的寫法是 TIM 0000 #50,FB程序就應(yīng)該寫成 TIM C #5

22、0。以上看來,在 FB 梯形圖編輯區(qū)內(nèi)編寫梯形圖和主體程序編寫梯形圖的方法幾乎一樣,并且也可以調(diào)用工具欄上的快捷工具來進(jìn)行程序的編寫。只要在輸?shù)刂返牡胤芥I入變量名即可。2.3 使用功能塊2.3.12.3.1 調(diào)用梯形圖功能塊調(diào)用梯形圖功能塊 創(chuàng)建好梯形圖 FB 后,在主體程序中就可以調(diào)用該功能塊了。下面將調(diào)用以上創(chuàng)建好的梯形圖 FB 作為例子進(jìn)行說明。1.1.列出輸入列出輸入/ /輸出點(diǎn)輸出點(diǎn)2.2.將輸入將輸入/ /輸出轉(zhuǎn)為變量輸出轉(zhuǎn)為變量3.用變量名作為編程地用變量名作為編程地址,編寫址,編寫 FB 梯形圖梯形圖地址變量0.00 aT0000 b10.00 cOMRON 功能塊(FB)教材

23、 9 圖 2-7 圖 2-81. 先定義一個(gè) I/O 地址用來啟動(dòng)梯形圖 FB,所示的開關(guān) 0.00 用于啟動(dòng)功能塊。如果0.00 為 ON,執(zhí)行功能塊中的程序,如果 0.00 為 OFF,不執(zhí)行功能塊程序。2. 然后調(diào)用工具欄上的“功能塊”按鈕創(chuàng)建一個(gè)新功能塊。選擇已經(jīng)創(chuàng)建好的功能塊并取名“延時(shí) 5 秒” 。因?yàn)楣δ軌K和開關(guān)、指令、輸出線圈一樣,在程序中就是一個(gè)“元素” ,所以這個(gè)起了名稱的“元素”將會(huì)登記到“符號(hào)”目錄的列表中。 (所以,在刪除創(chuàng)建的功能塊的時(shí)候,必須在“符號(hào)”列表中將該功能塊對(duì)應(yīng)的“符號(hào)”刪除,才能刪除梯形圖 FB 這個(gè)對(duì)象。3. 調(diào)用好創(chuàng)建的功能塊后,需要給輸入、輸出變

24、量定義一個(gè)實(shí)際的 I/O 地址。使用“功能塊參數(shù)”按鈕給變量定義 I/O 地址。如圖中處,賦給輸入變量 a 地址 1.00,處,賦給輸出變量 c 地址 10.00。由上述調(diào)用功能塊的步驟可以看出:調(diào)用功能塊首先要設(shè)置 EN 的控制地址用來啟用功能塊,然后定義輸入、輸出變量的地址就完成了調(diào)用。使用者不需要知道功能塊內(nèi)部的程序具體是怎樣的,只要知道功能塊的功能以及輸入、輸出控制的定義,即可使用。并且一個(gè)功能塊在同一個(gè)程序中可以被多次調(diào)用,只要將輸入、輸出的地址改變一下就可以了,所以說 FB 的調(diào)用是非常簡便的。2.3.22.3.2 梯形圖梯形圖 FBFB 的嵌套的嵌套 編寫好梯形圖 FB 的內(nèi)部程

25、序后,基本創(chuàng)建了一個(gè)完整的功能塊。但在編寫一些工業(yè)控制程序時(shí),僅使用一個(gè)功能塊的情況是非常少的。并且,如果控制功能多樣復(fù)雜,簡單的調(diào)用也不能夠滿足需要,這時(shí),功能塊的嵌套功能就非常必要。下面主要介紹一下如何使用功能塊嵌套功能。 要使用 FB 的嵌套功能,至少需要?jiǎng)?chuàng)建 2 個(gè)或 2 個(gè)以上的功能塊。下面創(chuàng)建 2 個(gè)功能塊:FB1 要求:輸入接通后延時(shí) n 秒后接通輸出。FB2 要求,對(duì)延時(shí)時(shí)間 n 進(jìn)行判斷,如果超過100 秒,則報(bào)警輸出接通。嵌套功能需實(shí)現(xiàn)在 FB1 中嵌套 FB2,完成輸入接通 n 秒后接通輸出,如果用戶輸入的時(shí)間超過 100 秒,輸出報(bào)警。 要實(shí)現(xiàn)在 FB1 中嵌套 FB2

26、,先要?jiǎng)?chuàng)建 FB2,然后在創(chuàng)建 FB1 內(nèi)部程序中才可以調(diào)用FB1。下面列出 FB2 的變量和內(nèi)部程序:OMRON 功能塊(FB)教材 10 表 2-2 功能塊 2 變量列表功能塊功能塊變量類別變量類別變量名變量名數(shù)據(jù)類型數(shù)據(jù)類型變量說明變量說明輸入變量aINT用戶定義的延時(shí)時(shí)間功能塊 2輸出變量bBOOL超時(shí)報(bào)警點(diǎn) 圖 2-9 (FB2 內(nèi)部程序) 建立了 FB2 后,開始創(chuàng)建 FB1,在 FB1 中調(diào)用 FB2,只需將 FB2 看成像“指令”一樣的程序元素那樣調(diào)用就可以了,調(diào)用的同時(shí)功能塊會(huì)自動(dòng)登陸到變量列表中。下面列出了FB1 的變量和內(nèi)部程序: 表 2-3 功能塊 1 變量列表功能塊功

27、能塊變量類別變量類別變量名變量名數(shù)據(jù)類型數(shù)據(jù)類型變量說明變量說明輸入BOOL用來控制輸出的輸入點(diǎn)輸入變量時(shí)間值INT用戶定義的延時(shí)時(shí)間nTIMER定時(shí)器號(hào)內(nèi)部變量時(shí)間判斷FB調(diào)用的 FB2輸出BOOL延時(shí)輸出點(diǎn)功能塊 1輸出變量輸出報(bào)警BOOL超時(shí)報(bào)警點(diǎn) 圖 2-10 (FB1 內(nèi)部程序)FB1,F(xiàn)B2 的創(chuàng)建完成后,就可以在主程序中直接調(diào)用 FB1。在輸入時(shí)間的地址內(nèi),一旦輸入時(shí)間大于 100 秒,輸出報(bào)警位就會(huì)置“ON” 。主程序部分如下圖 2-10 所示,0.00 延OMRON 功能塊(FB)教材 11時(shí)接通 1.00,0.01 延時(shí)接通 1.01。延時(shí)的時(shí)間值分別放在 D0 和 D10

28、 通道中,當(dāng)其中的時(shí)間值超過 100 秒,報(bào)警點(diǎn) 50.00 或者 50.01 就會(huì)輸入報(bào)警。 圖 2-11 (主程序部分)2.3.32.3.3 保存梯形圖保存梯形圖 FBFB 如下圖 2-12 所示,可以將編輯好的功能塊單獨(dú)保存起來,文件名為(*.cxf) 。這樣,如果用戶創(chuàng)建好功能塊后,今后也可以在不同的程序中進(jìn)行調(diào)用。圖 2-12OMRON 功能塊(FB)教材 122.3.42.3.4 調(diào)試梯形圖調(diào)試梯形圖 FBFB 對(duì)于 CJ、CS 系列的 PLC 的程序調(diào)試,無需連接到真正的 PLC 上,在 CX-Programmer 軟件中可以通過仿真功能,就可以對(duì)梯形圖程序進(jìn)行監(jiān)控。監(jiān)控功能不僅

29、能實(shí)現(xiàn)對(duì)程序使用的位和通道進(jìn)行監(jiān)控,同樣也能對(duì)調(diào)用的功能塊進(jìn)行監(jiān)控。要監(jiān)控功能塊,在仿真狀態(tài),雙擊調(diào)用的功能塊或者右擊該功能塊,選擇監(jiān)控功能塊梯形圖實(shí)例就可轉(zhuǎn)換到監(jiān)控 FB 的界面。在監(jiān)控 FB 的界面,可以完成監(jiān)控 FB 中的位和通道,改變 PV 值,強(qiáng)制置位/復(fù)位等操作。監(jiān)控的操作步驟如下:1. 選擇PLC工作在線仿真器,模擬下傳程序后,就可以對(duì)程序進(jìn)行在線仿真的調(diào)試工作了;2. 選擇視圖窗口 查看,打開查看窗口。3. 在主程序中選擇調(diào)用的功能塊,在彈出的菜單中選擇在查看窗口中注冊(cè),在彈出的對(duì)話框中“用法”和“數(shù)據(jù)類型”選擇全部全部。所有功能塊中的變量都被登記在查看窗口中,用戶可以根據(jù)需要

30、來進(jìn)行調(diào)試。如圖 2-13 所示: 圖 2-134. 雙擊主程序中的功能塊實(shí)例,就可以進(jìn)入監(jiān)控 FB 的內(nèi)部程序的界面。5. 用戶可根據(jù)需要對(duì)位進(jìn)行置位/復(fù)位,改變通道的 PV 值等操作。 整個(gè)操作過程可以參考下圖 2-14:OMRON 功能塊(FB)教材 13 圖 2-142.4 FB 內(nèi)存分配注意事項(xiàng) 前面介紹了功能塊的創(chuàng)建以及使用方法,在創(chuàng)建和使用的過程中,熟悉了 FB 的結(jié)構(gòu)以后,下面介紹一下使用 FB 功能的內(nèi)存分配需要注意的事項(xiàng)。 創(chuàng)建了功能塊以后,在主程序里調(diào)用創(chuàng)建的功能塊,在主程序中被調(diào)用的 FB 我們稱作“功能塊實(shí)例功能塊實(shí)例”或者簡稱“實(shí)例實(shí)例” 。并且要對(duì)引用的 FB 進(jìn)

31、行命名,如下圖 2-15 所示:圖 2-15 創(chuàng)建的功能塊如果沒有被調(diào)用,那么執(zhí)行主程序的時(shí)候不會(huì)執(zhí)行該功能塊,同時(shí),PLC也不會(huì)分配該功能塊的 I/O 地址。一旦程序中調(diào)用了功能塊,那么 PLC 將會(huì)自動(dòng)分配一部分 I/O 內(nèi)存供 FB 實(shí)例運(yùn)行使用。主程序可以對(duì)同一個(gè) FB 進(jìn)行多次調(diào)用,如果實(shí)例的名稱一樣,則占用的 I/O 內(nèi)存一樣,如果實(shí)例的名稱不一致,則 PLC 分配不同的 I/O 地址給不同的實(shí)例。所以說實(shí)例的 I/O 分配是否相同,是根據(jù)實(shí)例的名稱決定的,具體情況如下圖2-16 所示:在此處輸入實(shí)例名稱OMRON 功能塊(FB)教材 14圖 2-16 PLC 自動(dòng)分配一部分內(nèi)存給

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

33、8OMRON 功能塊(FB)教材 15第三章第三章 高級(jí)語言(高級(jí)語言(STST 語言)功能塊語言)功能塊3.1 ST 語言功能塊編程基礎(chǔ)3.1.13.1.1 高級(jí)語言編程概念高級(jí)語言編程概念ST 語言(Structure Text Language)是一種用于工業(yè)控制的高級(jí)語言。它類似于PASCAL 語言,有選擇語句或者循環(huán)語句等這些語言結(jié)構(gòu)。通過使用這些語言結(jié)構(gòu)來編寫控制程序。一個(gè)的 ST 程序由多條語句組成,一個(gè)語句由變量和表達(dá)式組成。1. 表達(dá)式:表達(dá)式是包含著算法和操作數(shù)的序列。算法包括邏輯運(yùn)算、算術(shù)運(yùn)算、比較運(yùn)算等算法。2. 語句:語句是由表達(dá)式構(gòu)成的,可以分為賦值語句或者控制語句

34、。賦值語句中包含著表達(dá)式的計(jì)算結(jié)果這個(gè)信息??刂普Z句包含選擇語句、循環(huán)語句、條件語句等。下面舉例說明上述概念, 圖 3-13.1.23.1.2 STST 語言編程特點(diǎn)語言編程特點(diǎn) 用戶除了可以創(chuàng)建梯形圖 FB 之外,熟悉高級(jí)語言編程的技術(shù)人員還可以創(chuàng)建 ST語言的 FB。CX-Programmer 為熟悉不同編程語言的用戶提供了不同的編程平臺(tái)。這樣,懂得高級(jí)語言的用戶編寫好復(fù)雜的 ST 語言功能塊后,其它用戶甚至是不熟悉 ST 語言的操作人員也可以使用該功能塊,這樣就大大降低了操作人員對(duì)編程語言的限制。 另外,使用高級(jí)語言編程,可以輕松完成復(fù)雜的算術(shù)運(yùn)算。如果用梯形圖語言編輯復(fù)雜的算術(shù)運(yùn)算功能

35、,會(huì)寫很多條程序,占用更多的程序容量。如果用 ST 語言來寫,用表達(dá)式就可以代替梯形圖復(fù)雜的程序。CASECASE COLORCOLOR OFOF 1:NofRed:= NofRed+1; 2:NofBlue:= NofBlue+1; ELSE NofOther:= NofOther+1;ENDEND CASE;CASE;IFIF NofRed100 OR NofBlue100 THENSTOP:=TRUE ENDIF;ENDIF;這個(gè)就是表達(dá)式,其中 NofRed 就是變量。表達(dá)式左右 2 邊包含的就是算法。下面的就是 CASE 語句(選擇語句)和IF(條件)語句。OMRON 功能塊(FB)

36、教材 16例如:圓柱體容器的體積公式為 V=r2h,如果要計(jì)算其中液體的體積,用梯形圖編程程序如下圖所示: 圖 3-2如果改用 ST 語言編寫的話,程序如下:; 公式(3-1))*)2 ,(exp*(:Vhrt用梯形圖語言編程,需要寫 4-6 步程序,而且操作數(shù)較多,不便于管理和修改。而使用 ST 語言,只要寫好表達(dá)式即可。所以說,對(duì)于含有復(fù)雜的算術(shù)運(yùn)算的控制程序,使用 ST 語言編程有著一定的優(yōu)勢(shì)。下面,我們就來學(xué)習(xí)如何使用這一功能。3.2 ST 語言編程系統(tǒng)介紹一般來說,一段程序總是由表達(dá)式和語句構(gòu)成的。了解 ST 語言的編程系統(tǒng),就要從表達(dá)式和語句開始。對(duì)于表達(dá)式,需要從操作符號(hào)和變量入

37、手;而對(duì)于語句,需要掌握它的功能和語言結(jié)構(gòu)。下面,我們就來介紹一下 ST 語言的常用運(yùn)算符及基本命令。rr2hhr2r2hOMRON 功能塊(FB)教材 173.2.13.2.1 STST 語言常用運(yùn)算符語言常用運(yùn)算符 ST 語言能夠?qū)崿F(xiàn)的算術(shù)運(yùn)算除了基本的加、減、乘、除之外,還能實(shí)現(xiàn)一些復(fù)雜的函數(shù)運(yùn)算,例如指數(shù)、正(余)弦函數(shù)、對(duì)數(shù)函數(shù)等。下面我們就來熟悉一下這些運(yùn)算符號(hào)及用法。1. 基本運(yùn)算符基本運(yùn)算符包括簡單的加、減、乘、除、比較及一些邏輯關(guān)系的表達(dá)符號(hào)。這些符號(hào)的使用比較簡單,使用這些符號(hào)可以實(shí)現(xiàn)一些不太復(fù)雜的運(yùn)算要求。具體的規(guī)則及使用方法可以參考下表: 表 3-1 基本運(yùn)算符運(yùn)算功能

38、運(yùn)算功能操作符號(hào)操作符號(hào)應(yīng)用示例應(yīng)用示例加A+B (其中 A,B 為變量)減A-B乘*A*B除/A/B比較,=AB,AB,A=B等于=A=B邏輯與&,ANDA&B, A AND B補(bǔ)NOTA NOT B邏輯或ORA OR B異或XORA XOR B 這些運(yùn)算符的使用是很簡單的,但在使用這些運(yùn)算的過程中要注意參加運(yùn)算的變量的類型。例如除法運(yùn)算,如果 A、B 為 INT 類型,A=3,B=2,那么 A/B 的結(jié)果就是 1;如果A、B 為 REAL 類型,那么運(yùn)算結(jié)果就為 1.5。所以要根據(jù)運(yùn)算要求選擇適當(dāng)?shù)淖兞款愋汀?. 函數(shù)運(yùn)算符函數(shù)運(yùn)算符包括指數(shù)運(yùn)算、正(余)弦運(yùn)算、對(duì)數(shù)函數(shù)等

39、符號(hào)。這些符號(hào)的使用相對(duì)復(fù)雜,使用這些符號(hào)可以實(shí)現(xiàn)要求更高的運(yùn)算。具體的規(guī)則及使用方法可以參考下表: 表 3-2 函數(shù)運(yùn)算符函數(shù)功能函數(shù)功能函數(shù)符號(hào)函數(shù)符號(hào)應(yīng)用示例應(yīng)用示例功能功能絕對(duì)值A(chǔ)BSa:=ABS(b)a|b|方根運(yùn)算SQRTa:=SQRT(b)ab自然指數(shù)EXPa:=EXP(b)aeb常用指數(shù)EXPTa:=EXPT(b,c)abc自然對(duì)數(shù)LNa:=LN(b)alogeb常用對(duì)數(shù)LOGa:=LOG(b)alog10b正弦函數(shù)SINa:=SIN(b)asin(b)余弦函數(shù)COSa:=COS(b)acos(b)OMRON 功能塊(FB)教材 18正切函數(shù)TANa:=TAN(b)atan(b

40、)反正弦ASINa:=ASIN(b)asin-1(b)反余弦ACOSa:=ACOS(b)acos-1(b)反正切ATANa:=ATAN(b)atan-1(b)3. 常數(shù)表達(dá)方法熟悉了基本的運(yùn)算符后,就可以編寫一些表達(dá)式了。表達(dá)式中可以用變量、常量結(jié)合運(yùn)算符來傳遞數(shù)字信息。前面我們介紹過變量的類型及表達(dá),現(xiàn)在我們來了解一下 ST 語言中常量的幾種表示方式。常量可以用十進(jìn)制、十六進(jìn)制、八進(jìn)制、二進(jìn)制來表示,表示方法如下表所示: 表 3-3 常量表示方法進(jìn)制表達(dá)方式示例十進(jìn)制數(shù)字12十六進(jìn)制16#數(shù)字16#C八進(jìn)制8#數(shù)字8#14二進(jìn)制2#數(shù)字2#11003.2.23.2.2 STST 語言基本命令

41、語言基本命令ST 語言是類似于 Pascal 的高級(jí)語言。只要在編輯區(qū)編寫 ST 語言的高級(jí)程序,就可以用來實(shí)現(xiàn)某段控制功能。對(duì)于熟悉高級(jí)語言的用戶,ST 語言提供了很好的編程界面,只需稍微了解一下編程規(guī)則即可掌握;對(duì)于不熟悉高級(jí)語言編程的用戶,ST 語言的入門也是比較容易的。下面我們介紹一下 ST 語言編程常用的命令。1.求和語句(Summary) 求和語句是個(gè)等式,用于表達(dá)把運(yùn)算總和的值賦予一個(gè)變量。 表達(dá)式: 變量:=表達(dá)式/變量/常量 舉例: A:=X+1; A:=B; A:=20;2.條件語句(IF 語句)IF 語句適用于當(dāng)一個(gè)特定的條件滿足的時(shí)候,去執(zhí)行相應(yīng)的控制。如果條件不滿足,

42、則執(zhí)行另外的控制。IF 語句有簡單的對(duì)一個(gè)條件進(jìn)行判斷的程序,也有復(fù)雜的對(duì)多個(gè)條件進(jìn)行判斷的程序,即嵌套語句。1)IF 語句(單一條件)表達(dá)式:IF THEN ; ELSEOMRON 功能塊(FB)教材 19 ; END_IF;執(zhí)行流程圖: 圖 3-4舉例:如果 A0,則 B 等于 A 的值,并且線圈 C 有信號(hào)輸出,否則 B 等于 0,線圈C 無信號(hào)輸出。 IF A0 THENB:=A; C:=TRUE;ELSEB:=0; C:=FALSE;END_IF;2)IF 語句(多條件嵌套)表達(dá)式 1: IF THEN IF THEN ; ELSE ; END_IF; END_IF; 流程圖 1:

43、條件表達(dá)式 1表達(dá)式 2FalseTrueOMRON 功能塊(FB)教材 20 圖 3-5表達(dá)式 2: IF THEN ; ELSIF THEN ;ELSIF THEN ;.ELSIF THEN ;ELSE ;END_IF;流程圖 2: 圖 3-6表達(dá)式 1表達(dá)式 2FalseTrue條件 1條件 2TrueFalse表達(dá)式 1FalseTrue條件 1條件 2條件 3表達(dá)式 2表達(dá)式 3TrueTrueFalseFalseOMRON 功能塊(FB)教材 21 舉例:要求如下,如果 A0,X=10。否則,先參考參數(shù) B,如果 B1,則 X1,如果B2,則 X=2,如果都不是,X=0.IF A0

44、 THEN X:=10;ELSIF B=1 THEN X:=1;ELSIF B=2 THEN X:=2;ELSE X:=0;END_IF;3.選擇語句(CASE 語句)這類語句適中有一個(gè)變量,它可選擇多個(gè)值,如果選擇的值不同會(huì)執(zhí)行不同的控制。我們可以這樣理解,在工業(yè)控制中要控制對(duì)某一材料的切割,由于材料硬度不同,需要不同刀具進(jìn)行切割。如:材料 1,需要用 1 號(hào)刀具進(jìn)行切割;材料 2,需要用 2 號(hào)刀具進(jìn)行切割, 材料 3,需要用 3 號(hào)刀具進(jìn)行切割。例如這樣的控制情況就可以選用CASE 語句。 表達(dá)式: CASE OF1:;2:;.N:;ELSE ;END_CASE; 舉例: CASE A

45、OF1:X:=1;2:X:=2;3:X:=3;ELSE Y:=0;END_CASE;3.2.33.2.3 STST 語言編程規(guī)則語言編程規(guī)則 ST 語言編程有一些規(guī)則需要注意。在我們學(xué)會(huì)寫一些簡單的控制語句后,編譯功能塊后仍然會(huì)出現(xiàn)錯(cuò)誤,所以在掌握了基本的編程符號(hào)和語句之后,也需要知道 ST 語言的編程語法和規(guī)則。1. 每個(gè)完整的表達(dá)式后要用“;”號(hào)結(jié)尾。而對(duì)于語句來說,不是每句后面都要加“;” ,所以需要注意什么地方應(yīng)該加“;” ,什么地方不該加“;” 。2. 如果一個(gè)變量被定義成整型,那么不能被寫成有小數(shù)點(diǎn)的形式。如果一個(gè)變量被定義成實(shí)型,那么這個(gè)變量不能被寫成整數(shù)類型。例如:如果 A 為

46、整型,就不能寫成A:=2.0。如果 A 為實(shí)型,就不能寫成 A:=2。3. 布爾類型的變量的 ON、OFF 狀態(tài)要用 TRUE、FALSE 來表示。如果 a 是 BOOL 變量,不能用 a:=ON(OFF), a:=1(0)來表示它的狀態(tài),要寫成 a:=TRUE(FALSE)。4. 表達(dá)式前后的變量類型要一致。例如 C=A+B,如果 A、B、C 都是整型,就不會(huì)有錯(cuò)誤。如果 C 是實(shí)型,則會(huì)出現(xiàn)語法錯(cuò)誤。OMRON 功能塊(FB)教材 22 當(dāng)功能塊程序不能通過編譯的話,也可以通過查詢錯(cuò)誤代碼來判斷發(fā)生了什么語法錯(cuò)誤。詳細(xì)情況,可以參考附錄一:附錄一:STST 語言錯(cuò)誤代碼。語言錯(cuò)誤代碼。3.

47、3 創(chuàng)建 ST 語言 FB ST 語言功能塊的創(chuàng)建和梯形圖功能塊的調(diào)用基本一樣,基本步驟為:新建 ST 語言功能塊定義功能塊變量編寫 FB 內(nèi)部程序調(diào)用功能塊定義功能塊的 I/O 地址,如下圖3-7 所示。和創(chuàng)建梯形圖 FB 的步驟基本一致,唯一不同的是編寫 FB 內(nèi)部內(nèi)程序需要是使用 ST 語言。 圖 3-73.3.13.3.1 新建新建 STST 語言語言 FBFB 新建 ST 語言功能塊與新建梯形圖功能塊的過程類似,只需在創(chuàng)建功能塊的時(shí)候,選擇“結(jié)構(gòu)文本” ,即選擇用 ST 語言建立 FB 內(nèi)部程序。如下圖 3-8 所示。新建功能塊新建功能塊創(chuàng)建一個(gè)新的 FB 項(xiàng)目定義定義 FBFB 變

48、量變量定義 FB 程序地址變量編寫編寫 FBFB 程序程序用 ST 語言編寫程序調(diào)用調(diào)用 FB在主程序中調(diào)用功能塊定義定義 I/O定義主程序 FB 的變量地址STST 語言語言O(shè)MRON 功能塊(FB)教材 23 圖 3-83.3.23.3.2 定義定義 STST 語言語言 FBFB 變量變量ST 語言功能塊的編輯區(qū)如下圖所示。 變量設(shè)置區(qū) ST 語言編程區(qū) 圖 3-9 ST 語言的變量設(shè)置和梯形圖 FB 中參數(shù)設(shè)置一致。此處不再贅述。3.3.33.3.3 編寫編寫 STST 語言語言 FBFB 程序程序ST 語言的編輯寫在變量設(shè)置區(qū)的下方。原來在梯形圖 FB 的編輯界面是梯形圖編輯界面,在

49、ST 語言功能塊的編輯區(qū)是文本區(qū),可以編寫高級(jí)語言程序。例如:要計(jì)算的圓柱體容積,數(shù)學(xué)公式為 V=r2h,除了定義變量 r 和 h 之外,根據(jù)前面學(xué)的 ST 語言符號(hào)和函數(shù),在 ST 語言編程區(qū)寫入如下公式即可:OMRON 功能塊(FB)教材 24; 公式(3-1))*)2 ,(exp*(:Vhrt3.4ST 語言 FB 的使用3.4.13.4.1 調(diào)用調(diào)用 STST 語言語言 FBFB ST 語言功能塊的調(diào)用和梯形圖功能塊的調(diào)用基本一致。只要給出功能塊的輸入地址和輸出地址即可。如調(diào)用上述計(jì)算圓柱體容積的功能塊,如圖 3-10 所示: 圖 3-10 調(diào)用功能塊后,給出變量 r 的地址 DO,h

50、 的地址 D5,體積 V 的地址為 D10。需要注意,示例中變量類型為實(shí)型,不同變量的地址不能使用同一內(nèi)存區(qū)中連續(xù)的地址,如:r、h、V 不能使用 D0、D1、D2,因?yàn)閷?shí)型數(shù)據(jù)要占用連續(xù) 2-8 個(gè)通道(根據(jù)實(shí)型類型不同,數(shù)據(jù)長度有所變化) ,所以需要適當(dāng)?shù)姆峙漭斎?、輸出通道?.4.23.4.2 STST 語言語言 FBFB 的嵌套的嵌套 梯形圖 FB 的嵌套前面已經(jīng)學(xué)習(xí)過,ST 語言 FB 同樣也支持嵌套功能。在梯形圖 FB 中可以嵌套 ST 語言 FB;同樣,在 ST 語言 FB 中也可以嵌套梯形圖 FB。如下圖 3-11 所示:主程序調(diào)用 FB1,在 FB1 中嵌套 FB2。FB1

51、為 ST 語言功能塊,FB2 為 ST 語言 FB 或者梯形圖FB。圖 3-11輸入端給出半徑和高度輸出端自動(dòng)計(jì)算出容積OMRON 功能塊(FB)教材 25 但是 ST 語言 FB 調(diào)用嵌套 FB 的語法和使用梯形圖 FB 嵌套的語法是不一樣的。下面列出使用 ST 語言 FB 嵌套的語法:1. 需要使能位(EN) FB2 名稱(EN:=A,FB2_IN1:= FB1_IN1, FB2_IN2:= FB1_IN2FB2_OUT1= FB1_OUT1, FB2_OUT2= FB1_OUT2) ;2. 不需要使能位(EN) FB2 名稱(FB2_IN1:= FB1_IN1, FB2_IN2:= FB

52、1_IN2FB2_OUT1= FB1_OUT1, FB2_OUT2= FB1_OUT2) ;3.4.33.4.3 STST 語言語言 FBFB 的保存和調(diào)試的保存和調(diào)試 ST 語言 FB 的保存、調(diào)試和梯形圖語言 FB 的保存、調(diào)試的操作步驟是一樣的。需要注意的是:在主程序中調(diào)用 ST 語言功能塊的話,雙擊主程序中的 FB,進(jìn)入監(jiān)控 FB 的界面后,ST 語言的運(yùn)行過程是無法監(jiān)控的。如果 ST 語言 FB 中有嵌套梯形圖 FB 的話,可以使用工具欄上“監(jiān)視功能塊梯形圖實(shí)例”圖標(biāo)來實(shí)現(xiàn)對(duì)嵌套梯形圖 FB 的監(jiān)控。OMRON 功能塊(FB)教材 26第四章第四章 功能塊功能塊FBFB 庫庫4.1

53、FB 庫概述 CX-Programmer6.0 軟件有自帶的功能塊,當(dāng)用 OMRON 的 PLC 和 FA 元器件以不同的聯(lián)網(wǎng)方式通信,來完成一些控制功能的時(shí)候,就可以直接調(diào)用這些已經(jīng)做好的功能塊。這些CX-P 自帶的功能塊,我們稱為 FB 庫。4.1.14.1.1 FBFB 庫特點(diǎn)庫特點(diǎn) CX-P 提供的標(biāo)準(zhǔn) FB 庫便于 OMRON 的 PLC 連接到元器件產(chǎn)品,提高了 PLC 單元和元器件之間鏈接的連貫性。下面我們了解一下使用 FB 庫的特點(diǎn):1. 編程簡化。用戶無需再去編寫程序來實(shí)現(xiàn) FB 庫可以實(shí)現(xiàn)的功能,只要直接調(diào)用 FB 庫中的文件即可。節(jié)省了編程的時(shí)間,使得編程更容易。2. 使

54、用簡單,容易理解。即使用戶不知道 FB 文件的程序是如何編寫的,只要了解輸入、輸出地址的定義,正確的分配功能塊的控制地址就可以了。FB 庫中的文件明確、詳細(xì)的列出了每個(gè)變量的控制定義,和整個(gè)功能塊實(shí)現(xiàn)的控制功能。用戶使用中一有疑問,查閱相關(guān)幫助即可理解。 圖 4-13. 無需測(cè)試。FB 庫中的功能塊程序都通過了 OMRON 的檢測(cè),用戶無需測(cè)試直接可以使用。4.1.24.1.2 FBFB 庫應(yīng)用簡介庫應(yīng)用簡介CJ/CS1 系列的 PLC,通過串行通信的方式(RS232、RS422/485)或者 DeviceNet 網(wǎng)絡(luò)鏈接到 OMRON 的元器件(如溫控器) 。如果要對(duì)元器件進(jìn)行讀操作(如讀取

55、溫控器當(dāng)前溫度值 PV)或者寫操作(如設(shè)定溫控器的溫度設(shè)定值 SV) ,可以在 FB 庫中調(diào)用該元器件實(shí)現(xiàn)該輸入、輸出分列在兩邊,清晰易見。變量定義也分別給出,容易解讀。OMRON 功能塊(FB)教材 27功能的功能塊。例如(如下圖 4-2 所示):要實(shí)現(xiàn) PLC 讀取溫控器的 PV 值,直接調(diào)用 FB庫中的“_E5xx202_ReadPV10”功能塊,設(shè)置對(duì)應(yīng)讀取地址即可。無需再編寫相應(yīng)的通信程序。同樣, (如圖 4-3 所示)PLC 以 DeviceNet 的方式鏈和變頻器從站進(jìn)行通信,也可以通過調(diào)用功能塊直接實(shí)現(xiàn)。圖 4-2圖 4-3OMRON 功能塊(FB)教材 284.2 FB 庫內(nèi)

56、容介紹4.2.14.2.1 FBFB 庫內(nèi)容簡介庫內(nèi)容簡介 FB 庫中功能塊文件都是*.cxf 的文件。FB 庫中的功能塊能夠?qū)崿F(xiàn)歐姆龍的 PLC 對(duì)元器件基本和重要的控制要求。這些文件在 CX-Programmer 的安裝目錄下,下面列出了 FB 庫的內(nèi)容及基本結(jié)構(gòu)。圖 4-44.2.24.2.2 FBFB 庫功能分類庫功能分類 FB 庫的結(jié)構(gòu)是按照元器件及各種聯(lián)網(wǎng)方式來進(jìn)行分類的。各個(gè)目錄下的功能塊完成的功能也不一樣。用戶可以參考對(duì)應(yīng)功能塊的參考手冊(cè)來進(jìn)行使用。下面對(duì)各個(gè)目錄下功能塊實(shí)現(xiàn)的功能進(jìn)行分類介紹。1. CodeReader 目錄:包含對(duì)二維讀碼器的基本讀操作。OMRON 功能塊(

57、FB)教材 292. Inverter 目錄:控制變頻器(3G3MV、3G3RV)的起停,讀取或者設(shè)置變頻器的參數(shù)。3. Laser Sensor 目錄:讀取光電傳感器的參數(shù),或者設(shè)置光電傳感器。4. PLC 目錄:PLC 目錄有 5 個(gè)子目錄,包含了 PLC 可以通過不同的聯(lián)網(wǎng)方式和元器件進(jìn)行通信的功能塊。 CLK:對(duì) PLC 的 CLK 模塊(Controllink 模塊)的通信情況進(jìn)行監(jiān)控。 CPU:CPU 單元發(fā)出的 ON/OFF 信號(hào)的時(shí)序的、延時(shí)的控制,以及通信信號(hào)的控制。 ETN: 對(duì) PLC 的 ETN 模塊(以太網(wǎng)模塊)的通信進(jìn)行監(jiān)控。 SCx: 對(duì) PLC 的 SCU、SC

58、B 模塊(串行通信單元、板)的通信進(jìn)行監(jiān)控和設(shè)置。 UNIT: 重新啟動(dòng) PLC 上的單元。5. Position Controller 目錄:對(duì) NC 模塊的設(shè)置及對(duì)控制軸參數(shù)的讀寫。6. SmartIO 目錄:PLC 以 DeviceNet 的聯(lián)網(wǎng)方式連接到指定的從站單元(如 DRT2-ID16) ,可以用該目錄下的功能塊來實(shí)現(xiàn)一些網(wǎng)絡(luò)監(jiān)控的要求。例如監(jiān)控網(wǎng)絡(luò)當(dāng)前電壓狀況。7. RFID 目錄:讀取或者設(shè)置讀碼器 V600 的參數(shù)。8. Servo Driver 目錄:讀取或者改變驅(qū)動(dòng)器 R88D 的參數(shù)。9. TemperatureController 目錄:PLC 以串行通信或 Dev

59、iceNet 網(wǎng)絡(luò)連接到溫控器(或者溫度控制單元 TC) ,都可用該目錄下功能塊讀取、設(shè)置溫控器(TC 單元)的參數(shù)。10. Vision Sensor 目錄:監(jiān)控和控制視覺傳感器。 (F160、F210) 。4.34.3 FBFB 庫功能塊使用庫功能塊使用4.3.14.3.1 創(chuàng)建創(chuàng)建 FBFB 庫中的功能塊庫中的功能塊FB 庫中功能塊的調(diào)用和梯形圖功能塊的調(diào)用基本一樣。只要在插入功能塊處選擇“從文件插入”就可以了。OMRON 功能塊(FB)教材 30 圖 4-5 從 omronlib 目錄的 FB 庫中選擇要使用的 FB 文件。FB 庫的每個(gè)功能塊在 omronlib 目錄下都有相對(duì)應(yīng)的使

60、用說明供用戶參考。例如:前面我們講過,如果 PLC 以串行方式連接到溫控器,可以調(diào)用 FB 庫中,溫控器目錄(Temperature Controller)下的“_E5xx202_ReadPV10”文件來讀取溫控器的當(dāng)前值(PV 值) 。 圖 4-64.3.24.3.2 閱覽閱覽 FBFB 庫中的功能塊程序庫中的功能塊程序 創(chuàng)建了 FB 庫中的功能塊后,直接雙擊文件是不能夠察看功能塊內(nèi)部的程序。要閱覽FB 庫功能塊的程序,需要右擊文件名,在屬性中選中“顯示功能塊內(nèi)部” 。然后雙擊功能塊即可閱覽功能塊內(nèi)部程序。 圖 4-74.3.34.3.3 調(diào)用調(diào)用 FBFB 庫中的功能塊庫中的功能塊 調(diào)用 FB 庫的功能塊

溫馨提示

  • 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)論