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

下載本文檔

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

文檔簡(jiǎn)介

1、目錄目錄第一章第一章 功能塊功能塊(FB)(FB)編程概述編程概述 .1 11.1 功能塊(FB)簡(jiǎn)介.11.2 功能塊(FB)使用特點(diǎn).11.3 功能塊(FB)使用環(huán)境.21.3.1 支持 FB 功能的 PLC 類(lèi)型.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.3 編寫(xiě) FB 內(nèi)梯形圖.7

2、2.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í)語(yǔ)言(高級(jí)語(yǔ)言(STST 語(yǔ)言)功能塊語(yǔ)言)功能塊.14143.1ST 語(yǔ)言功能塊編程基礎(chǔ).143.1.1 高級(jí)語(yǔ)言編程概念.143.1.2 ST 語(yǔ)言編程特點(diǎn) .143.2ST 語(yǔ)言編程系統(tǒng)介紹.153.2.1 ST 語(yǔ)言常用運(yùn)算符 .163.2.2 ST 語(yǔ)言基本命令 .173.2.3 ST 語(yǔ)言編程規(guī)則 .203.3創(chuàng)建 ST 語(yǔ)言 FB.213.4ST 語(yǔ)言 FB 的使用

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

4、.2929附錄一:附錄一:STST 語(yǔ)言語(yǔ)法錯(cuò)誤一覽表語(yǔ)言語(yǔ)法錯(cuò)誤一覽表.3434第一章第一章 功能塊功能塊(FB)(FB)編程概述編程概述 OMRON 編程軟件 CX-Programmer 從 5.0 版本開(kāi)始,增加了一個(gè)全新的編程功能功能塊(Function Block,簡(jiǎn)稱 FBFB) 。CJ、CS、CP1H 系列的 PLC 可以使用這個(gè)功能進(jìn)行編程,它大大增強(qiáng)了 CX-Programmer 軟件對(duì) PLC 編程、控制和調(diào)試的能力。功能塊(FB)主要提供了梯形圖和高級(jí)語(yǔ)言 2 種編程方法,結(jié)合軟件自帶的功能庫(kù),給用戶提供了全新的簡(jiǎn)單、高效、集成化的編程方法和環(huán)境。1.1 功能塊(FB)簡(jiǎn)

5、介功能塊(Function Block)是預(yù)先編輯或測(cè)試的程序集合,具有特定的功能要素,可嵌入原有的梯形圖中執(zhí)行,并通過(guò)設(shè)置 I/O 來(lái)使用這個(gè)功能。CX-Programmer5.0 以上的版本具有 FB 功能,并且 CS、CJ 系列的 PLC 的 CPU 單元版本號(hào)高于 3.0 才支持該功能。用戶可以使用 2 種語(yǔ)言創(chuàng)建功能塊:梯形圖語(yǔ)言和高級(jí)語(yǔ)言(ST 語(yǔ)言) 。1. 梯形圖功能塊:熟悉使用梯形圖編程的用戶可以用這種方式創(chuàng)建功能塊,這和使用梯形圖在 CX-Programmer 中編程的方式是一樣的。對(duì)于熟悉 CX-Programmer 的用戶來(lái)說(shuō),這種編程方式是簡(jiǎn)單易學(xué)的。2. 高級(jí)語(yǔ)言(

6、ST 語(yǔ)言)功能塊:ST 語(yǔ)言是一種用于工業(yè)控制的高級(jí)語(yǔ)言,是類(lèi)似VB、VC 的高級(jí)語(yǔ)言。熟悉這種語(yǔ)言的用戶同樣可以用它創(chuàng)建 ST 功能塊,用高級(jí)語(yǔ)言可以實(shí)現(xiàn)復(fù)雜的數(shù)據(jù)處理過(guò)程和控制過(guò)程。1.2 功能塊(FB)使用特點(diǎn)1 相似控制功能相似控制功能“模塊模塊”化?;?。在一些繁冗的程序中,如果其中有一些控制過(guò)程是類(lèi)似的,那么用戶可以把這些類(lèi)似的控制過(guò)程定義為“模塊” 。這樣,每次需要實(shí)現(xiàn)這些控制功能時(shí),就不用重復(fù)寫(xiě)很多條程序,只要調(diào)用用戶自定義的“模塊”就可以了。把這些控制功能“模塊”化,使得編程工作更清晰,更簡(jiǎn)便,更易于管理。2 數(shù)字運(yùn)算過(guò)程簡(jiǎn)單化。數(shù)字運(yùn)算過(guò)程簡(jiǎn)單化。使用功能塊中 ST 語(yǔ)言編

7、程,能夠處理更復(fù)雜的算術(shù)運(yùn)算。原來(lái)要在 PLC 中處理數(shù)字量,需要編寫(xiě)梯形圖來(lái)進(jìn)行算術(shù)運(yùn)算,一步程序也只能完成一個(gè)算法,要完成復(fù)雜的算法需要編寫(xiě)很多程序。現(xiàn)在用 ST 語(yǔ)言,就可以用精簡(jiǎn)的高級(jí)語(yǔ)言編寫(xiě)復(fù)雜的算術(shù)運(yùn)算過(guò)程。3 CX-PCX-P 軟件自帶軟件自帶 FBFB 庫(kù)。庫(kù)。CX-Programmer 軟件自帶 FB 庫(kù),用戶可以根據(jù)需要調(diào)用 FB庫(kù)中自帶的功能塊。FB 庫(kù)讓用戶無(wú)需編輯梯形圖,就可以使用 PLC 單元和元器件的基本功能,并且易于使用,無(wú)需程序調(diào)試,簡(jiǎn)單易懂,具可擴(kuò)展性。4 編程操作更簡(jiǎn)單。編程操作更簡(jiǎn)單。功能塊的調(diào)用、編輯、刪除就象對(duì)指令的操作一樣簡(jiǎn)單。編輯功能塊內(nèi)部的程序

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

9、,并且 CJ、CS 的 CPU 單元版本號(hào)需要在 3.0或 3.0 以上。具體機(jī)型可參考下表:PLCPLC 類(lèi)型類(lèi)型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.支持支持 FBFB 功能的軟件功能的軟件 需使用 CX-Programmer5.0 及以上版本。1.3.31.3.3 CX-Programmer6.

10、0CX-Programmer6.0 功能塊特點(diǎn)功能塊特點(diǎn) 在 CX-ONE 軟件中的 CX-Programmer6.0,其中的 FB 功能有很多先進(jìn)的功能,現(xiàn)簡(jiǎ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 的內(nèi)部程序中調(diào)用 FB2,F(xiàn)B2 的內(nèi)部程序調(diào)用FB3。梯形圖 FB 最多支持 8 層嵌套,而 ST 語(yǔ)言 FB 則可以自由的嵌套。3. F

11、B 支持程序更新。CX-Programmer6.0 中,如果更改了 FB 的內(nèi)部程序,在調(diào)用該功能塊的地方,只需更新該功能塊即可。第二章第二章 梯形圖功能塊梯形圖功能塊2.1 梯形圖功能塊編程基礎(chǔ)使用過(guò) CX-Programmer 的用戶都非常熟悉梯形圖編程模式和編程環(huán)境。因此,CX-Programmer 仍然提供了老用戶熟悉的梯形圖語(yǔ)言來(lái)創(chuàng)建和編輯功能塊的內(nèi)部程序。2.1.12.1.1 梯形圖功能塊結(jié)構(gòu)介紹梯形圖功能塊結(jié)構(gòu)介紹 梯形圖功能塊是由完成特定功能的程序段組成的。組成程序的每一步都有輸入和輸出,功能塊中的輸入和輸出被定義成變量的這種特點(diǎn),決定著它能夠成為一個(gè)編程“元素” ,而能夠在不

12、同的程序中被多次調(diào)用??偟膩?lái)說(shuō),功能塊是由變量算法變量算法構(gòu)成的。1. 變量:變量是指輸入、輸出和內(nèi)部地址,在編輯功能塊的時(shí)候給這些地址一個(gè)變量名。 功能塊運(yùn)行時(shí),它們對(duì)應(yīng)著外部的實(shí)際地址。2. 算法:算法是依靠梯形圖的編程來(lái)完成的。依靠算法可以完成某個(gè)特定的控制功能。 舉個(gè)簡(jiǎn)單的例子說(shuō)明。如下圖 2-1 所示,要實(shí)現(xiàn)按下開(kāi) 0.00 開(kāi)關(guān) 5 秒后接通輸出10.00,梯形圖程序如(a)圖所示。如要把這個(gè)功能做成功能塊的形式,以便今后編程時(shí)調(diào)用,必須將其中的輸入、輸出甚至中間變量都定義稱為變量,如(b)圖所示。在每次調(diào)用功能塊的時(shí)候,無(wú)需知道內(nèi)部結(jié)構(gòu),只要知道該 FB 能實(shí)現(xiàn)的控制功能,及輸入

13、、輸出變量對(duì)應(yīng)完成什么功能,就可以直接使用了(如圖 2-1(c)所示) 。 圖 2-1 (a)(b)(c)將輸入、輸出定義成變量調(diào)用時(shí)輸入地址2.1.22.1.2 梯形圖功能塊編輯區(qū)介紹梯形圖功能塊編輯區(qū)介紹梯形圖語(yǔ)言的編程界面如下圖 2-2 所示:從圖上分界線來(lái)看,可以把整個(gè)操作界面分成 2 個(gè)部分,上半部分是變量設(shè)置區(qū),下半部分是梯形圖編輯區(qū)。 變量設(shè)置區(qū) FB 梯形圖編輯區(qū)圖 2-21. 變量設(shè)置區(qū):定義變量名,包括輸入變量,輸出變量和內(nèi)部變量。其中外部變量和內(nèi)部變量在使用中對(duì)應(yīng)著實(shí)際的輸入/輸出地址。內(nèi)部變量是用來(lái)定義梯形圖中中間變量的。外部地址提供了一些有特殊功能的,系統(tǒng)定義好的符號(hào)

14、可供使用。2. 梯形圖編輯區(qū):在梯形圖編輯區(qū)可以編寫(xiě)梯形圖程序,其中的 I/O 地址都使用變量設(shè)置區(qū)設(shè)置好的變量名。2.2 創(chuàng)建功能塊 用戶在編寫(xiě)主程序時(shí),一旦要用到 FB 功能,需要根據(jù)要求先創(chuàng)建功能塊。使用 FB 功能的步驟基本上為(如下圖 2-3 所示):新建功能塊定義功能塊變量編寫(xiě) FB 內(nèi)部程序調(diào)用功能塊定義功能塊的 I/O 地址。無(wú)論使用梯形圖 FB 還是 ST 語(yǔ)言 FB,基本步驟都是相同的,只是其中對(duì)程序的編輯方式會(huì)有所不同,下面將詳細(xì)介紹一下如何使用 FB 功能。圖 2-32.2.12.2.1 新建梯形圖新建梯形圖 FBFB 在“新 PLC”目錄下,可以看到“功能塊”子目錄,

15、包含有這個(gè)子目錄的 PLC 才支持FB 功能。右擊“功能塊” ,選擇“插入梯形圖功能塊”就創(chuàng)建了一個(gè)梯形圖功能塊,并且創(chuàng)建的功能塊就在“功能塊”目錄下。 圖 2-4新建功能塊新建功能塊創(chuàng)建一個(gè)新的 FB 項(xiàng)目定義定義 FB 變量變量定義 FB 程序地址變量編寫(xiě)編寫(xiě) FB 程序程序編寫(xiě) FB 的內(nèi)部程序調(diào)用調(diào)用 FB在主程序中調(diào)用功能塊定義定義 I/O定義主程序 FB 變量的地址2.2.22.2.2 定義功能塊變量定義功能塊變量 創(chuàng)建了一個(gè)梯形圖 FB 后,默認(rèn)的 FB 名稱為“功能塊 1” ,雙擊它就進(jìn)入梯形圖 FB 編程界面。在編程界面的上方,是變量設(shè)置區(qū)。 在功能塊的程序中,地址不是實(shí)際的

16、 I/O 地址,而是使用變量名作為地址。在實(shí)際使用功能塊的時(shí)候,再將實(shí)際的 I/O 地址和變量一一對(duì)應(yīng)起來(lái)。在這點(diǎn)上功能塊是不同與子程序的,功能塊中的地址是變量名,可以隨著程序的改變,使用要求的改變而改變。 圖 2-5 變量設(shè)置區(qū)列出了變量的用法、名稱、屬性等信息。該區(qū)域包含了 4 個(gè)部分:內(nèi)部變量、輸入變量、輸出變量、外部變量。1. 內(nèi)部變量:內(nèi)部變量只被用于功能塊程序內(nèi)部。它不能夠通過(guò)實(shí)際的 I/O 地址來(lái)進(jìn)行動(dòng)作。相當(dāng)于常說(shuō)的中間變量。2. 輸入變量:輸入變量可以和實(shí)際的 I/O 輸入地址對(duì)應(yīng)起來(lái),通過(guò)實(shí)際的 I/O 輸入來(lái)控制功能塊的輸入。系統(tǒng)默認(rèn)的輸入變量是“EN” ,表示只有當(dāng)“E

17、N”條件為 ON 的時(shí)候,功能塊其它輸入變量才得到外部的輸入地址的輸入信號(hào)。3. 輸出變量:輸出變量可以和實(shí)際的 I/O 輸出地址對(duì)應(yīng)起來(lái),實(shí)際的 I/O 輸出可以通過(guò)輸出變量得到輸出信號(hào)。4. 外部變量:外部地址是常用的一些系統(tǒng)定義好的變量地址。它們?cè)?CX-Programmer 的程序段中也可以使用。在“符號(hào)”中可以找到其中一些地址。當(dāng)然,用戶在“全局符號(hào)”中定義的符號(hào)在“外部變量”中也可以找到。在 4 類(lèi)變量中可以定義各自的變量。定義變量時(shí)需要設(shè)置變量的屬性,下面介紹一下定義變量時(shí)的屬性設(shè)置:圖 2-61)名稱:即變量名,是用來(lái)定義功能塊中變量的。在不同的功能塊中可使用同樣的變量名。2)

18、數(shù)據(jù)類(lèi)型:功能塊提供如下數(shù)據(jù)類(lèi)型可供使用。 表 2-1 定義變量可使用的數(shù)據(jù)類(lèi)型列表數(shù)據(jù)類(lèi)數(shù)據(jù)類(lèi)型型類(lèi)型含義類(lèi)型含義數(shù)據(jù)占用空間數(shù)據(jù)占用空間輸入變輸入變量量輸出變輸出變量量?jī)?nèi)部變內(nèi)部變量量BOOLBOOL位1 位OKOKOKINTINT整型16 位OKOKOKUNITUNIT無(wú)符號(hào)整型16 位OKOKOKDINTDINT有符號(hào)雙字32 位OKOKOKUDINTUDINT無(wú)符號(hào)雙字32 位OKOKOKLINTLINT有符號(hào)長(zhǎng)整型(4 字) 64 位OKOKOKULINTULINT無(wú)符號(hào)長(zhǎng)整型(4 字) 64 位OKOKOKWORDWORD字16 位OKOKOKDWORDDWORD雙字32 位OK

19、OKOKLWORDLWORD長(zhǎng)字64 位OKOKOKREALREAL實(shí)型32 位OKOKOKLREALLREAL長(zhǎng)實(shí)型64 位OKOKOKTIMERTIMER計(jì)時(shí)器型1 字(標(biāo)志位占 1 位)NONOOKCOUNTERCOUNTER計(jì)數(shù)器型1 字(標(biāo)志位占 1 位)NONOOK3)使用:定義變量為內(nèi)部變量、輸入變量、輸出變量、外部變量其中之一。4)初始值:選擇變量的初始狀態(tài)。變量是位地址時(shí),初始狀態(tài)為 ON/OFF。變量地址是字地址時(shí),初始狀態(tài)是設(shè)定通道內(nèi)的初始值。5)注釋?zhuān)嚎梢詾樽兞棵砑右恍┳⑨尅?.2.32.2.3 編寫(xiě)編寫(xiě) FBFB 內(nèi)梯形圖內(nèi)梯形圖 如圖 2-2 所示,F(xiàn)B 的梯形圖

20、需要在下方的梯形圖編輯區(qū)中進(jìn)行編寫(xiě)。FB 的梯形圖和主程序中的梯形圖的區(qū)別在于:FB 梯形圖中的地址都是以變量名的方式定義的,而主體程序中的地址都對(duì)應(yīng)著實(shí)際的地址?,F(xiàn)以圖 2-1 的梯形圖為例,說(shuō)明如何創(chuàng)建實(shí)現(xiàn)該功能的 FB梯形圖。 創(chuàng)建 FB 梯形圖的步驟如下圖 2-7 所示: 圖 2-71. 列出輸入/輸出點(diǎn):將原來(lái)梯形圖中的表示輸入和輸出的地址列出來(lái)。2. 將輸入/輸出地址轉(zhuǎn)換成變量名:將原來(lái)輸入/輸出的 I/O 地址一一定義一個(gè)變量名。不同的控制對(duì)象需要選擇不同的數(shù)據(jù)類(lèi)型。例如程序中定義輸入點(diǎn) 0.00 的變量名為 a,數(shù)據(jù)類(lèi)型為 BOOL;T0000 的變量名為 b,數(shù)據(jù)類(lèi)型為 TI

21、MER;輸出點(diǎn)的變量名為 c,數(shù)據(jù)類(lèi)型為 BOOL。3. 編寫(xiě) FB 梯形圖:編寫(xiě)的方式和主體程序的編寫(xiě)方式幾乎一樣。區(qū)別在于,需要將原來(lái)的實(shí)際地址轉(zhuǎn)換成變量名。例如 TIM 指令,原來(lái)的寫(xiě)法是 TIM 0000 #50,FB程序就應(yīng)該寫(xiě)成 TIM C #50。以上看來(lái),在 FB 梯形圖編輯區(qū)內(nèi)編寫(xiě)梯形圖和主體程序編寫(xiě)梯形圖的方法幾乎一樣,并且也可以調(diào)用工具欄上的快捷工具來(lái)進(jìn)行程序的編寫(xiě)。只要在輸?shù)刂返牡胤芥I入變量名即可。2.3 使用功能塊2.3.12.3.1 調(diào)用梯形圖功能塊調(diào)用梯形圖功能塊 創(chuàng)建好梯形圖 FB 后,在主體程序中就可以調(diào)用該功能塊了。下面將調(diào)用以上創(chuàng)建好的梯形圖 FB 作為例

22、子進(jìn)行說(shuō)明。1.1.列出輸入列出輸入/ /輸出點(diǎn)輸出點(diǎn)2.2.將輸入將輸入/ /輸出轉(zhuǎn)為變量輸出轉(zhuǎn)為變量3.用變量名作為編程地用變量名作為編程地址,編寫(xiě)址,編寫(xiě) FB 梯形圖梯形圖地址變量0.00 aT0000 b10.00 c 圖 2-7 圖 2-81. 先定義一個(gè) I/O 地址用來(lái)啟動(dòng)梯形圖 FB,所示的開(kāi)關(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和開(kāi)關(guān)、指令、輸出線圈一樣,在程序中就是一個(gè)“元素”

23、,所以這個(gè)起了名稱的“元素”將會(huì)登記到“符號(hào)”目錄的列表中。 (所以,在刪除創(chuàng)建的功能塊的時(shí)候,必須在“符號(hào)”列表中將該功能塊對(duì)應(yīng)的“符號(hào)”刪除,才能刪除梯形圖 FB 這個(gè)對(duì)象。3. 調(diào)用好創(chuàng)建的功能塊后,需要給輸入、輸出變量定義一個(gè)實(shí)際的 I/O 地址。使用“功能塊參數(shù)”按鈕給變量定義 I/O 地址。如圖中處,賦給輸入變量 a 地址 1.00,處,賦給輸出變量 c 地址 10.00。由上述調(diào)用功能塊的步驟可以看出:調(diào)用功能塊首先要設(shè)置 EN 的控制地址用來(lái)啟用功能塊,然后定義輸入、輸出變量的地址就完成了調(diào)用。使用者不需要知道功能塊內(nèi)部的程序具體是怎樣的,只要知道功能塊的功能以及輸入、輸出控制

24、的定義,即可使用。并且一個(gè)功能塊在同一個(gè)程序中可以被多次調(diào)用,只要將輸入、輸出的地址改變一下就可以了,所以說(shuō) FB 的調(diào)用是非常簡(jiǎn)便的。2.3.22.3.2 梯形圖梯形圖 FBFB 的嵌套的嵌套 編寫(xiě)好梯形圖 FB 的內(nèi)部程序后,基本創(chuàng)建了一個(gè)完整的功能塊。但在編寫(xiě)一些工業(yè)控制程序時(shí),僅使用一個(gè)功能塊的情況是非常少的。并且,如果控制功能多樣復(fù)雜,簡(jiǎn)單的調(diào)用也不能夠滿足需要,這時(shí),功能塊的嵌套功能就非常必要。下面主要介紹一下如何使用功能塊嵌套功能。 要使用 FB 的嵌套功能,至少需要?jiǎng)?chuàng)建 2 個(gè)或 2 個(gè)以上的功能塊。下面創(chuàng)建 2 個(gè)功能塊:FB1 要求:輸入接通后延時(shí) n 秒后接通輸出。FB2

25、 要求,對(duì)延時(shí)時(shí)間 n 進(jìn)行判斷,如果超過(guò)100 秒,則報(bào)警輸出接通。嵌套功能需實(shí)現(xiàn)在 FB1 中嵌套 FB2,完成輸入接通 n 秒后接通輸出,如果用戶輸入的時(shí)間超過(guò) 100 秒,輸出報(bào)警。 要實(shí)現(xiàn)在 FB1 中嵌套 FB2,先要?jiǎng)?chuàng)建 FB2,然后在創(chuàng)建 FB1 內(nèi)部程序中才可以調(diào)用FB1。下面列出 FB2 的變量和內(nèi)部程序: 表 2-2 功能塊 2 變量列表功能塊功能塊變量類(lèi)別變量類(lèi)別變量名變量名數(shù)據(jù)類(lèi)型數(shù)據(jù)類(lèi)型變量說(shuō)明變量說(shuō)明輸入變量aINT用戶定義的延時(shí)時(shí)間功能塊 2輸出變量bBOOL超時(shí)報(bào)警點(diǎn) 圖 2-9 (FB2 內(nèi)部程序) 建立了 FB2 后,開(kāi)始創(chuàng)建 FB1,在 FB1 中調(diào)用

26、FB2,只需將 FB2 看成像“指令”一樣的程序元素那樣調(diào)用就可以了,調(diào)用的同時(shí)功能塊會(huì)自動(dòng)登陸到變量列表中。下面列出了FB1 的變量和內(nèi)部程序: 表 2-3 功能塊 1 變量列表功能塊功能塊變量類(lèi)別變量類(lèi)別變量名變量名數(shù)據(jù)類(lèi)型數(shù)據(jù)類(lèi)型變量說(shuō)明變量說(shuō)明輸入BOOL用來(lái)控制輸出的輸入點(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)警

27、位就會(huì)置“ON” 。主程序部分如下圖 2-10 所示,0.00 延時(shí)接通 1.00,0.01 延時(shí)接通 1.01。延時(shí)的時(shí)間值分別放在 D0 和 D10 通道中,當(dāng)其中的時(shí)間值超過(guò) 100 秒,報(bào)警點(diǎn) 50.00 或者 50.01 就會(huì)輸入報(bào)警。 圖 2-11 (主程序部分)2.3.32.3.3 保存梯形圖保存梯形圖 FBFB 如下圖 2-12 所示,可以將編輯好的功能塊單獨(dú)保存起來(lái),文件名為(*.cxf) 。這樣,如果用戶創(chuàng)建好功能塊后,今后也可以在不同的程序中進(jìn)行調(diào)用。圖 2-122.3.42.3.4 調(diào)試梯形圖調(diào)試梯形圖 FBFB 對(duì)于 CJ、CS 系列的 PLC 的程序調(diào)試,無(wú)需連接到

28、真正的 PLC 上,在 CX-Programmer 軟件中可以通過(guò)仿真功能,就可以對(duì)梯形圖程序進(jìn)行監(jiān)控。監(jiān)控功能不僅能實(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. 選擇視圖窗口 查看,打開(kāi)查看窗口。3. 在主程序中選擇調(diào)用的功能塊,在彈出的菜單中選擇在查看窗口

29、中注冊(cè),在彈出的對(duì)話框中“用法”和“數(shù)據(jù)類(lèi)型”選擇全部全部。所有功能塊中的變量都被登記在查看窗口中,用戶可以根據(jù)需要來(lái)進(jìn)行調(diào)試。如圖 2-13 所示: 圖 2-134. 雙擊主程序中的功能塊實(shí)例,就可以進(jìn)入監(jiān)控 FB 的內(nèi)部程序的界面。5. 用戶可根據(jù)需要對(duì)位進(jìn)行置位/復(fù)位,改變通道的 PV 值等操作。 整個(gè)操作過(guò)程可以參考下圖 2-14: 圖 2-142.4 FB 內(nèi)存分配注意事項(xiàng) 前面介紹了功能塊的創(chuàng)建以及使用方法,在創(chuàng)建和使用的過(guò)程中,熟悉了 FB 的結(jié)構(gòu)以后,下面介紹一下使用 FB 功能的內(nèi)存分配需要注意的事項(xiàng)。 創(chuàng)建了功能塊以后,在主程序里調(diào)用創(chuàng)建的功能塊,在主程序中被調(diào)用的 FB

30、我們稱作“功能塊實(shí)例功能塊實(shí)例”或者簡(jiǎn)稱“實(shí)例實(shí)例” 。并且要對(duì)引用的 FB 進(jìn)行命名,如下圖 2-15 所示:圖 2-15 創(chuàng)建的功能塊如果沒(méi)有被調(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í)例。所以說(shuō)實(shí)例的 I/O 分配是否相同,是根據(jù)實(shí)例的名稱決定的,具體情況如下圖2-16 所示:在此處輸入實(shí)例名

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

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

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

34、運(yùn)算功能,會(huì)寫(xiě)很多條程序,占用更多的程序容量。如果用 ST 語(yǔ)言來(lái)寫(xiě),用表達(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 語(yǔ)句(選擇語(yǔ)句)和IF(條件)語(yǔ)句。例如:圓柱體容器的

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

36、功能和語(yǔ)言結(jié)構(gòu)。下面,我們就來(lái)介紹一下 ST 語(yǔ)言的常用運(yùn)算符及基本命令。rr2hhr2r2h3.2.13.2.1 STST 語(yǔ)言常用運(yùn)算符語(yǔ)言常用運(yùn)算符 ST 語(yǔ)言能夠?qū)崿F(xiàn)的算術(shù)運(yùn)算除了基本的加、減、乘、除之外,還能實(shí)現(xiàn)一些復(fù)雜的函數(shù)運(yùn)算,例如指數(shù)、正(余)弦函數(shù)、對(duì)數(shù)函數(shù)等。下面我們就來(lái)熟悉一下這些運(yùn)算符號(hào)及用法。1. 基本運(yùn)算符基本運(yùn)算符包括簡(jiǎn)單的加、減、乘、除、比較及一些邏輯關(guān)系的表達(dá)符號(hào)。這些符號(hào)的使用比較簡(jiǎn)單,使用這些符號(hào)可以實(shí)現(xiàn)一些不太復(fù)雜的運(yùn)算要求。具體的規(guī)則及使用方法可以參考下表: 表 3-1 基本運(yùn)算符運(yùn)算功能運(yùn)算功能操作符號(hào)操作符號(hào)應(yīng)用示例應(yīng)用示例加A+B (其中 A,B

37、 為變量)減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)算符的使用是很簡(jiǎn)單的,但在使用這些運(yùn)算的過(guò)程中要注意參加運(yùn)算的變量的類(lèi)型。例如除法運(yùn)算,如果 A、B 為 INT 類(lèi)型,A=3,B=2,那么 A/B 的結(jié)果就是 1;如果A、B 為 REAL 類(lèi)型,那么運(yùn)算結(jié)果就為 1.5。所以要根據(jù)運(yùn)算要求選擇適當(dāng)?shù)淖兞款?lèi)型。2. 函數(shù)運(yùn)算符函數(shù)運(yùn)算符包括指數(shù)運(yùn)算、正(余)弦運(yùn)算、對(duì)數(shù)函數(shù)等符號(hào)。這些符號(hào)的使用相對(duì)復(fù)雜,使用這些符號(hào)可以實(shí)現(xiàn)要求更高的運(yùn)算

38、。具體的規(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)正切函數(shù)TANa:=TAN(b)atan(b)反正弦ASINa:=ASIN(b)asin-1(b)反余弦ACOSa:=ACOS(b)acos-1

39、(b)反正切ATANa:=ATAN(b)atan-1(b)3. 常數(shù)表達(dá)方法熟悉了基本的運(yùn)算符后,就可以編寫(xiě)一些表達(dá)式了。表達(dá)式中可以用變量、常量結(jié)合運(yùn)算符來(lái)傳遞數(shù)字信息。前面我們介紹過(guò)變量的類(lèi)型及表達(dá),現(xiàn)在我們來(lái)了解一下 ST 語(yǔ)言中常量的幾種表示方式。常量可以用十進(jìn)制、十六進(jìn)制、八進(jìn)制、二進(jìn)制來(lái)表示,表示方法如下表所示: 表 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 語(yǔ)言基本命令語(yǔ)言基本命令ST 語(yǔ)言是類(lèi)似于 Pascal 的高級(jí)語(yǔ)言。只要在編輯區(qū)編寫(xiě) ST 語(yǔ)言的高級(jí)程序,就

40、可以用來(lái)實(shí)現(xiàn)某段控制功能。對(duì)于熟悉高級(jí)語(yǔ)言的用戶,ST 語(yǔ)言提供了很好的編程界面,只需稍微了解一下編程規(guī)則即可掌握;對(duì)于不熟悉高級(jí)語(yǔ)言編程的用戶,ST 語(yǔ)言的入門(mén)也是比較容易的。下面我們介紹一下 ST 語(yǔ)言編程常用的命令。1.求和語(yǔ)句(Summary) 求和語(yǔ)句是個(gè)等式,用于表達(dá)把運(yùn)算總和的值賦予一個(gè)變量。 表達(dá)式: 變量:=表達(dá)式/變量/常量 舉例: A:=X+1; A:=B; A:=20;2.條件語(yǔ)句(IF 語(yǔ)句)IF 語(yǔ)句適用于當(dāng)一個(gè)特定的條件滿足的時(shí)候,去執(zhí)行相應(yīng)的控制。如果條件不滿足,則執(zhí)行另外的控制。IF 語(yǔ)句有簡(jiǎn)單的對(duì)一個(gè)條件進(jìn)行判斷的程序,也有復(fù)雜的對(duì)多個(gè)條件進(jìn)行判斷的程序,即

41、嵌套語(yǔ)句。1)IF 語(yǔ)句(單一條件)表達(dá)式:IF THEN ; ELSE ; END_IF;執(zhí)行流程圖: 圖 3-4舉例:如果 A0,則 B 等于 A 的值,并且線圈 C 有信號(hào)輸出,否則 B 等于 0,線圈C 無(wú)信號(hào)輸出。 IF A0 THENB:=A; C:=TRUE;ELSEB:=0; C:=FALSE;END_IF;2)IF 語(yǔ)句(多條件嵌套)表達(dá)式 1: IF THEN IF THEN ; ELSE ; END_IF; END_IF; 流程圖 1: 條件表達(dá)式 1表達(dá)式 2FalseTrue 圖 3-5表達(dá)式 2: IF THEN ; ELSIF THEN ;ELSIF THEN ;

42、.ELSIF THEN ;ELSE ;END_IF;流程圖 2: 圖 3-6表達(dá)式 1表達(dá)式 2FalseTrue條件 1條件 2TrueFalse表達(dá)式 1FalseTrue條件 1條件 2條件 3表達(dá)式 2表達(dá)式 3TrueTrueFalseFalse 舉例:要求如下,如果 A0,X=10。否則,先參考參數(shù) B,如果 B1,則 X1,如果B2,則 X=2,如果都不是,X=0.IF A0 THEN X:=10;ELSIF B=1 THEN X:=1;ELSIF B=2 THEN X:=2;ELSE X:=0;END_IF;3.選擇語(yǔ)句(CASE 語(yǔ)句)這類(lèi)語(yǔ)句適中有一個(gè)變量,它可選擇多個(gè)值,

43、如果選擇的值不同會(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 語(yǔ)句。 表達(dá)式: CASE OF1:;2:;.N:;ELSE ;END_CASE; 舉例: CASE A OF1:X:=1;2:X:=2;3:X:=3;ELSE Y:=0;END_CASE;3.2.33.2.3 STST 語(yǔ)言編程規(guī)則語(yǔ)言編程規(guī)則 ST 語(yǔ)言編程有一些規(guī)則需要注意。在我們學(xué)會(huì)寫(xiě)一些簡(jiǎn)單的控制語(yǔ)句后

44、,編譯功能塊后仍然會(huì)出現(xiàn)錯(cuò)誤,所以在掌握了基本的編程符號(hào)和語(yǔ)句之后,也需要知道 ST 語(yǔ)言的編程語(yǔ)法和規(guī)則。1. 每個(gè)完整的表達(dá)式后要用“;”號(hào)結(jié)尾。而對(duì)于語(yǔ)句來(lái)說(shuō),不是每句后面都要加“;” ,所以需要注意什么地方應(yīng)該加“;” ,什么地方不該加“;” 。2. 如果一個(gè)變量被定義成整型,那么不能被寫(xiě)成有小數(shù)點(diǎn)的形式。如果一個(gè)變量被定義成實(shí)型,那么這個(gè)變量不能被寫(xiě)成整數(shù)類(lèi)型。例如:如果 A 為整型,就不能寫(xiě)成A:=2.0。如果 A 為實(shí)型,就不能寫(xiě)成 A:=2。3. 布爾類(lèi)型的變量的 ON、OFF 狀態(tài)要用 TRUE、FALSE 來(lái)表示。如果 a 是 BOOL 變量,不能用 a:=ON(OFF),

45、 a:=1(0)來(lái)表示它的狀態(tài),要寫(xiě)成 a:=TRUE(FALSE)。4. 表達(dá)式前后的變量類(lèi)型要一致。例如 C=A+B,如果 A、B、C 都是整型,就不會(huì)有錯(cuò)誤。如果 C 是實(shí)型,則會(huì)出現(xiàn)語(yǔ)法錯(cuò)誤。 當(dāng)功能塊程序不能通過(guò)編譯的話,也可以通過(guò)查詢錯(cuò)誤代碼來(lái)判斷發(fā)生了什么語(yǔ)法錯(cuò)誤。詳細(xì)情況,可以參考附錄一:附錄一:STST 語(yǔ)言錯(cuò)誤代碼。語(yǔ)言錯(cuò)誤代碼。3.3 創(chuàng)建 ST 語(yǔ)言 FB ST 語(yǔ)言功能塊的創(chuàng)建和梯形圖功能塊的調(diào)用基本一樣,基本步驟為:新建 ST 語(yǔ)言功能塊定義功能塊變量編寫(xiě) FB 內(nèi)部程序調(diào)用功能塊定義功能塊的 I/O 地址,如下圖3-7 所示。和創(chuàng)建梯形圖 FB 的步驟基本一致,唯

46、一不同的是編寫(xiě) FB 內(nèi)部?jī)?nèi)程序需要是使用 ST 語(yǔ)言。 圖 3-73.3.13.3.1 新建新建 STST 語(yǔ)言語(yǔ)言 FBFB 新建 ST 語(yǔ)言功能塊與新建梯形圖功能塊的過(guò)程類(lèi)似,只需在創(chuàng)建功能塊的時(shí)候,選擇“結(jié)構(gòu)文本” ,即選擇用 ST 語(yǔ)言建立 FB 內(nèi)部程序。如下圖 3-8 所示。新建功能塊新建功能塊創(chuàng)建一個(gè)新的 FB 項(xiàng)目定義定義 FBFB 變量變量定義 FB 程序地址變量編寫(xiě)編寫(xiě) FBFB 程序程序用 ST 語(yǔ)言編寫(xiě)程序調(diào)用調(diào)用 FB在主程序中調(diào)用功能塊定義定義 I/O定義主程序 FB 的變量地址STST 語(yǔ)言語(yǔ)言 圖 3-83.3.23.3.2 定義定義 STST 語(yǔ)言語(yǔ)言 FB

47、FB 變量變量ST 語(yǔ)言功能塊的編輯區(qū)如下圖所示。 變量設(shè)置區(qū) ST 語(yǔ)言編程區(qū) 圖 3-9 ST 語(yǔ)言的變量設(shè)置和梯形圖 FB 中參數(shù)設(shè)置一致。此處不再贅述。3.3.33.3.3 編寫(xiě)編寫(xiě) STST 語(yǔ)言語(yǔ)言 FBFB 程序程序ST 語(yǔ)言的編輯寫(xiě)在變量設(shè)置區(qū)的下方。原來(lái)在梯形圖 FB 的編輯界面是梯形圖編輯界面,在 ST 語(yǔ)言功能塊的編輯區(qū)是文本區(qū),可以編寫(xiě)高級(jí)語(yǔ)言程序。例如:要計(jì)算的圓柱體容積,數(shù)學(xué)公式為 V=r2h,除了定義變量 r 和 h 之外,根據(jù)前面學(xué)的 ST 語(yǔ)言符號(hào)和函數(shù),在 ST 語(yǔ)言編程區(qū)寫(xiě)入如下公式即可:; 公式(3-1))*)2 ,(exp*(:Vhrt3.4ST 語(yǔ)言

48、 FB 的使用3.4.13.4.1 調(diào)用調(diào)用 STST 語(yǔ)言語(yǔ)言 FBFB ST 語(yǔ)言功能塊的調(diào)用和梯形圖功能塊的調(diào)用基本一致。只要給出功能塊的輸入地址和輸出地址即可。如調(diào)用上述計(jì)算圓柱體容積的功能塊,如圖 3-10 所示: 圖 3-10 調(diào)用功能塊后,給出變量 r 的地址 DO,h 的地址 D5,體積 V 的地址為 D10。需要注意,示例中變量類(lèi)型為實(shí)型,不同變量的地址不能使用同一內(nèi)存區(qū)中連續(xù)的地址,如:r、h、V 不能使用 D0、D1、D2,因?yàn)閷?shí)型數(shù)據(jù)要占用連續(xù) 2-8 個(gè)通道(根據(jù)實(shí)型類(lèi)型不同,數(shù)據(jù)長(zhǎng)度有所變化) ,所以需要適當(dāng)?shù)姆峙漭斎?、輸出通道?.4.23.4.2 STST 語(yǔ)言

49、語(yǔ)言 FBFB 的嵌套的嵌套 梯形圖 FB 的嵌套前面已經(jīng)學(xué)習(xí)過(guò),ST 語(yǔ)言 FB 同樣也支持嵌套功能。在梯形圖 FB 中可以嵌套 ST 語(yǔ)言 FB;同樣,在 ST 語(yǔ)言 FB 中也可以嵌套梯形圖 FB。如下圖 3-11 所示:主程序調(diào)用 FB1,在 FB1 中嵌套 FB2。FB1 為 ST 語(yǔ)言功能塊,FB2 為 ST 語(yǔ)言 FB 或者梯形圖FB。圖 3-11輸入端給出半徑和高度輸出端自動(dòng)計(jì)算出容積 但是 ST 語(yǔ)言 FB 調(diào)用嵌套 FB 的語(yǔ)法和使用梯形圖 FB 嵌套的語(yǔ)法是不一樣的。下面列出使用 ST 語(yǔ)言 FB 嵌套的語(yǔ)法:1. 需要使能位(EN) FB2 名稱(EN:=A,FB2_I

50、N1:= FB1_IN1, FB2_IN2:= FB1_IN2FB2_OUT1= FB1_OUT1, FB2_OUT2= FB1_OUT2) ;2. 不需要使能位(EN) FB2 名稱(FB2_IN1:= FB1_IN1, FB2_IN2:= FB1_IN2FB2_OUT1= FB1_OUT1, FB2_OUT2= FB1_OUT2) ;3.4.33.4.3 STST 語(yǔ)言語(yǔ)言 FBFB 的保存和調(diào)試的保存和調(diào)試 ST 語(yǔ)言 FB 的保存、調(diào)試和梯形圖語(yǔ)言 FB 的保存、調(diào)試的操作步驟是一樣的。需要注意的是:在主程序中調(diào)用 ST 語(yǔ)言功能塊的話,雙擊主程序中的 FB,進(jìn)入監(jiān)控 FB 的界面后,

51、ST 語(yǔ)言的運(yùn)行過(guò)程是無(wú)法監(jiān)控的。如果 ST 語(yǔ)言 FB 中有嵌套梯形圖 FB 的話,可以使用工具欄上“監(jiān)視功能塊梯形圖實(shí)例”圖標(biāo)來(lái)實(shí)現(xiàn)對(duì)嵌套梯形圖 FB 的監(jiān)控。第四章第四章 功能塊功能塊FBFB 庫(kù)庫(kù)4.1 FB 庫(kù)概述 CX-Programmer6.0 軟件有自帶的功能塊,當(dāng)用 OMRON 的 PLC 和 FA 元器件以不同的聯(lián)網(wǎng)方式通信,來(lái)完成一些控制功能的時(shí)候,就可以直接調(diào)用這些已經(jīng)做好的功能塊。這些CX-P 自帶的功能塊,我們稱為 FB 庫(kù)。4.1.14.1.1 FBFB 庫(kù)特點(diǎn)庫(kù)特點(diǎn) CX-P 提供的標(biāo)準(zhǔn) FB 庫(kù)便于 OMRON 的 PLC 連接到元器件產(chǎn)品,提高了 PLC 單

52、元和元器件之間鏈接的連貫性。下面我們了解一下使用 FB 庫(kù)的特點(diǎn):1. 編程簡(jiǎn)化。用戶無(wú)需再去編寫(xiě)程序來(lái)實(shí)現(xiàn) FB 庫(kù)可以實(shí)現(xiàn)的功能,只要直接調(diào)用 FB 庫(kù)中的文件即可。節(jié)省了編程的時(shí)間,使得編程更容易。2. 使用簡(jiǎn)單,容易理解。即使用戶不知道 FB 文件的程序是如何編寫(xiě)的,只要了解輸入、輸出地址的定義,正確的分配功能塊的控制地址就可以了。FB 庫(kù)中的文件明確、詳細(xì)的列出了每個(gè)變量的控制定義,和整個(gè)功能塊實(shí)現(xiàn)的控制功能。用戶使用中一有疑問(wèn),查閱相關(guān)幫助即可理解。 圖 4-13. 無(wú)需測(cè)試。FB 庫(kù)中的功能塊程序都通過(guò)了 OMRON 的檢測(cè),用戶無(wú)需測(cè)試直接可以使用。4.1.24.1.2 FBF

53、B 庫(kù)應(yīng)用簡(jiǎn)介庫(kù)應(yīng)用簡(jiǎn)介CJ/CS1 系列的 PLC,通過(guò)串行通信的方式(RS232、RS422/485)或者 DeviceNet 網(wǎng)絡(luò)鏈接到 OMRON 的元器件(如溫控器) 。如果要對(duì)元器件進(jìn)行讀操作(如讀取溫控器當(dāng)前溫度值 PV)或者寫(xiě)操作(如設(shè)定溫控器的溫度設(shè)定值 SV) ,可以在 FB 庫(kù)中調(diào)用該元器件實(shí)現(xiàn)該輸入、輸出分列在兩邊,清晰易見(jiàn)。變量定義也分別給出,容易解讀。功能的功能塊。例如(如下圖 4-2 所示):要實(shí)現(xiàn) PLC 讀取溫控器的 PV 值,直接調(diào)用 FB庫(kù)中的“_E5xx202_ReadPV10”功能塊,設(shè)置對(duì)應(yīng)讀取地址即可。無(wú)需再編寫(xiě)相應(yīng)的通信程序。同樣, (如圖 4-

54、3 所示)PLC 以 DeviceNet 的方式鏈和變頻器從站進(jìn)行通信,也可以通過(guò)調(diào)用功能塊直接實(shí)現(xiàn)。圖 4-2圖 4-34.2 FB 庫(kù)內(nèi)容介紹4.2.14.2.1 FBFB 庫(kù)內(nèi)容簡(jiǎn)介庫(kù)內(nèi)容簡(jiǎn)介 FB 庫(kù)中功能塊文件都是*.cxf 的文件。FB 庫(kù)中的功能塊能夠?qū)崿F(xiàn)歐姆龍的 PLC 對(duì)元器件基本和重要的控制要求。這些文件在 CX-Programmer 的安裝目錄下,下面列出了 FB 庫(kù)的內(nèi)容及基本結(jié)構(gòu)。圖 4-44.2.24.2.2 FBFB 庫(kù)功能分類(lèi)庫(kù)功能分類(lèi) FB 庫(kù)的結(jié)構(gòu)是按照元器件及各種聯(lián)網(wǎng)方式來(lái)進(jìn)行分類(lèi)的。各個(gè)目錄下的功能塊完成的功能也不一樣。用戶可以參考對(duì)應(yīng)功能塊的參考手冊(cè)來(lái)

55、進(jìn)行使用。下面對(duì)各個(gè)目錄下功能塊實(shí)現(xiàn)的功能進(jìn)行分類(lèi)介紹。1. CodeReader 目錄:包含對(duì)二維讀碼器的基本讀操作。2. Inverter 目錄:控制變頻器(3G3MV、3G3RV)的起停,讀取或者設(shè)置變頻器的參數(shù)。3. Laser Sensor 目錄:讀取光電傳感器的參數(shù),或者設(shè)置光電傳感器。4. PLC 目錄:PLC 目錄有 5 個(gè)子目錄,包含了 PLC 可以通過(guò)不同的聯(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)的控制。 ET

56、N: 對(duì) PLC 的 ETN 模塊(以太網(wǎng)模塊)的通信進(jìn)行監(jiān)控。 SCx: 對(duì) PLC 的 SCU、SCB 模塊(串行通信單元、板)的通信進(jìn)行監(jiān)控和設(shè)置。 UNIT: 重新啟動(dòng) PLC 上的單元。5. Position Controller 目錄:對(duì) NC 模塊的設(shè)置及對(duì)控制軸參數(shù)的讀寫(xiě)。6. SmartIO 目錄:PLC 以 DeviceNet 的聯(lián)網(wǎng)方式連接到指定的從站單元(如 DRT2-ID16) ,可以用該目錄下的功能塊來(lái)實(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)器

57、 R88D 的參數(shù)。9. TemperatureController 目錄:PLC 以串行通信或 DeviceNet 網(wǎng)絡(luò)連接到溫控器(或者溫度控制單元 TC) ,都可用該目錄下功能塊讀取、設(shè)置溫控器(TC 單元)的參數(shù)。10. Vision Sensor 目錄:監(jiān)控和控制視覺(jué)傳感器。 (F160、F210) 。4.34.3 FBFB 庫(kù)功能塊使用庫(kù)功能塊使用4.3.14.3.1 創(chuàng)建創(chuàng)建 FBFB 庫(kù)中的功能塊庫(kù)中的功能塊FB 庫(kù)中功能塊的調(diào)用和梯形圖功能塊的調(diào)用基本一樣。只要在插入功能塊處選擇“從文件插入”就可以了。 圖 4-5 從 omronlib 目錄的 FB 庫(kù)中選擇要使用的 FB

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

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論