第一部分:Micro800控制器編程指令_第1頁
第一部分:Micro800控制器編程指令_第2頁
第一部分:Micro800控制器編程指令_第3頁
第一部分:Micro800控制器編程指令_第4頁
第一部分:Micro800控制器編程指令_第5頁
已閱讀5頁,還剩71頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、micro800控制器的編程指令g.學習目標 了解編程器的工作方式 了解可編程控制器編程方式的特點 熟練掌握功能塊指令、函數(shù)指令和操作指令5.1 micro800控制器編程語言通常plc不采用微機的編程語言,而采用面向控制過程、面向實際問題的自然語言編程。 這些編程語言有梯形圖、邏輯功能圖、布爾代數(shù)式等。如羅克韋爾自動化公司所有的plc (microsoo. micrologix、slc 500、plc-5 和 controllogix)都支持梯形圖(ld)的編程方 式。micro800控制器支持三種編程方式:梯形圖、結構化文本和功能塊編程。其最大的特點 就是每種編程方式都支持功能塊化的編程。

2、下面分別介紹這三種方式。5.1.1梯形圖梯形圖一般由多個不同的梯級(rung)組成,每一梯級又由輸入及輸出指令組成。 在 一個梯級中,輸出指令應出現(xiàn)在梯級的最右邊,而輸入指令則出現(xiàn)在輸出指令的左邊,如圖5-1 所示。圖5-1梯形圖梯形圖表達式是從原電器控制系統(tǒng)小常用的接觸器、繼電器梯形圖基礎上演變而來的。 它沿用了繼電器的觸點、線圈、串聯(lián)等術語和圖形符號,并增加了一些繼電接觸控制沒有的 符號。梯形圖形象、直觀,對于熟悉繼電器方式的人來說,非常容易接受,而不需要學習更 深的計算機知識。這是種最為廣泛的編程方式,適用于順序邏輯控制、離散量控制、定時、 計數(shù)控制等。首先應對硬件進行組態(tài),完成系統(tǒng)的硬

3、件組態(tài)以后,就可以編寫程序文件了。首先要創(chuàng) 建一個新程序,在項目組織器窗口中右鍵單擊控制器圖標,選擇添加一個新的梯形圖程序,如圖5-2所示。jttl micro850paddmicro850new st : structured text4 迖 paste u; ijj propertiesctrl+valt+enter<k>new ld : ladder diagram new fbd : function block diagram圖5-2新建梯形圖程序新建程序后,在如圖5-3所示的窗口右鍵單擊programs (程序),選擇對程序重新命名。 micro850b國 progra

4、msglobal variables扌user-defined funddat atypes圖5-3新建的梯形圖程序把程序命名為test,創(chuàng)建的程序將完成以下功能:有兩盞燈lighll和light2,在第一盞燈 亮兩秒以后,熄滅第一盞燈,點亮笫二盞燈。首先要創(chuàng)建編寫程序所需要的變量,分別有start、lightl> light2和計時器timero程序屮所用到的變量可以是全局變量,也可以是本地變量,在 項目組織器窗口中打開本地變量或者全局變量,只要雙擊其圖標即可。這里采用本地變量,打開本地變量列表,建立編程所需要的變量,如圖54所示。圖5-4建立程序所需要的變量在項目組織器窗口川雙擊程序

5、圖標,打開編程窗口,在工具欄屮拖拽所需要的指令到編 程梯級。把常開指令拖拽到梯級上以后,會自動彈出變量列表,編程人員可以直接選擇需要 的變量,如圖55所示,這里選擇表示啟動按鈕的start。然后以同樣的方法,完成第一個梯級, 如圖5-6所示。添加一個新的梯級,開始編寫第二個梯級。在第二個梯級中需要用到計吋器, 這里計時器創(chuàng)建時選擇功能塊指令,把功能塊指令拖拽到梯級上以后,會口動彈出選擇功能 塊的對話框,選擇ton功能塊,選擇完成后,計時器的名字在“name”項中選擇,選擇前面 建立的計時器timero為計時器定時2s,雙擊計時器的pt輸入處,輸入t#2s即可。熄滅第一 盞燈的同時,點亮第二盞燈

6、,則梯級需要一個分支,從工具欄屮拖拽梯級分支到計時器后面的梯級上,然后添加復位線圈和置位線圈,編好后的梯級如圖57所示。紀 variable selectornametypeglobalbootv micriuser global variables - micro850 local variables - frogl圖5-5選擇所需要的變量1startlight!r"1 1 v/"圖56點亮第一盞燈的梯級4以上步驟完成了梯形圖程序的編寫,右鍵單擊程序圖標,選擇生成,如圖58所示,對程序進行編譯,編譯無誤后會提示編譯完成。micro850-it恃| programs曰pro

7、t j openh build.global vai 也| & upload圖5-8編譯程序5.1.2功能塊i. 功能塊簡介在micro800控制器屮可以用功能塊(function block diagram (fbd)編程語言編寫一個 控制系統(tǒng)中輸入和輸出之間的控制關系圖示。用戶也可以使用現(xiàn)有的功能塊組合,編輯成需 要的用戶自定義功能塊。每個功能塊都有固定的輸入連接點和輸出連接點,輸入和輸出都有固定的數(shù)據(jù)類型規(guī)定。 輸入點一般在功能塊的左邊,輸出點在右側。在fbd屮同樣可以使用梯形圖(ld)編程語言屮的元素,如線圈、連接開關按鈕、跳轉、 標簽和返冋等。與梯形圖編程語言不同的是,在功能

8、塊編程中所使用的元素放置位置沒有過 多限制,不像在梯形圖中對每個元素有嚴格規(guī)定的位置。且在fbd編程語言中同樣支持使用 功能塊操作,如操作指令、函數(shù)等大類功能塊以及用戶自定義的功能塊等(只在connected components workbench 中)。當使用功能塊(function block di(fbd)編程時,可以從工具箱拖出功能塊元素 到編輯框里,并編輯它。圖59是一個編程示例:inputl output90-input2&0-or圖5-9功能塊編程示意圖輸入和輸出變量與功能塊的輸入和輸出用連接線連接。信號連接線可以連接如下塊的兩 類邏輯點:輸入變量和功能塊的輸入點;功能

9、塊的輸出和另一功能塊的輸入點;功能塊的輸 出和輸出變量。連接的方向表示連接線帶著得到的數(shù)據(jù)從左邊傳送到右邊。連接線的左右兩 邊必須有相同的數(shù)據(jù)類型。功能塊多重的右邊連接分支也叫做分支結構,可以用于從左邊擴 展信息至右邊。注意數(shù)據(jù)類型的一致性。2. 功能塊執(zhí)行順序在語言編輯器屮,可以顯示程序中包含的任意元素的執(zhí)行順序(以數(shù)字形式)。fbd程序 中可以顯示執(zhí)行順序的元素有:線圈觸點ld垂直連接角返冋跳轉函數(shù)運算符功能塊實例(已聲明或未聲明)變量(程序中將值分配到的地方)注意:當無法確定順序時,標記顯示問號(?)0要顯示執(zhí)行順序,可以執(zhí)行以下任何一種操作:按 ctrl-wo在工具菜單中,選擇執(zhí)行順序

10、。在程序執(zhí)行期間,指令塊是功能塊圖中的任意元素,網(wǎng)絡是鏈接在一起的一組指令塊, 指令塊的位置是依據(jù)其左上角而定的。以下規(guī)則適用于fbd程序的執(zhí)行順序:網(wǎng)絡從左向右、從上向下執(zhí)行。在執(zhí)行指令塊前,必須解析所有輸入。同時解析兩個或更多個指令塊的輸入時,執(zhí)行決 定是根據(jù)指令塊的位置做出的(從左向右、從上向下)。指令塊的輸出按從左向右、從上向下的順序以遞歸方式執(zhí)行。3. 調試功能塊調試fbd程序時,礙要在語言編輯器中監(jiān)視元素的輸出值。這些值使用顏色、數(shù)字或文 本值加以顯示,具體取決于它們的數(shù)據(jù)類型:布爾數(shù)據(jù)類型的輸出值使用顏色進行顯示。值為“真”時,默認顏色為紅色;值為“假”時, 默認顏色為藍色。輸出

11、值的顏色將成為下一輸入。輸出值不可用時,布爾元素為黑色。注意:可以在“選項"窗口中自定義用于布爾項的顏色。sint、usint、byte、int、uint、word、dint、udint、dword、lint、ulint、 lword、real、lreal、time、date和string數(shù)據(jù)類型的輸出值在元素中顯示為數(shù) 字或文本值。當數(shù)字或文本值的輸出值不可用時,在輸出標簽中會顯示問號(?)。值還會顯示在對應 的變量編輯器實例中。5.1.3結構文本結構文本(structured text)類似于basic語言,利用它可以很方便地建立、編輯和實現(xiàn) 復雜的算法,特別是在數(shù)據(jù)處理、計算存

12、儲、決策判斷、優(yōu)化算法等涉及描述多種數(shù)據(jù)類型 的變量應用中非常有效。1. 結構化文本(st)主要語法st程序是一系列st語句。下列規(guī)則適用于st程序:每個語句以分號(“;”)分隔符結束。源代碼(例如變量、標識符、常量或語言關鍵字)屮使用的名稱用不活動分隔符(例如 空格字符)分隔,或者用意義明確的活動分隔符(例如“”分隔符表示“大于”比較)分隔。注釋(非執(zhí)行信息)可以放在st程序屮的任何位置。注釋可以擴展到多行,但是必 須以“(*”開頭,以“*)”結尾。注意:不能在注釋中使用注釋。下面是基本st語句類型:賦值語句(變量:二表達式;)函數(shù)調用功能塊調用選擇語句(例如 if、then、else、ca

13、se.)迭代語句(例如 for、while、repeat.)控制語句(例如return> exit.)用于與其他語言鏈接的特殊語句當輸入st語法時,下列項目以指定的顏色顯示:基本代碼(黑色)關鍵字(粉色)數(shù)字和文本字符串(灰色)注釋(綠色)在活動分隔符、文本和標識符z間使用不活動分隔符可增加st程序的可讀性。下而是st 不活動分隔符:空格 tab行結束符(可以放在程序屮的任何位置)使用不活動分隔符時,需要遵循以下規(guī)則:每行編寫的語句不能多于一條。 使用tab來縮進復雜語句。插入注釋以提高行或段落的可讀性。2. 表達式和括號st表達式由運算符及其操作數(shù)組成。操作數(shù)可以是常量(文本)值、控制

14、變量或另一個 表達式(或子表達式)。對于每個單一表達式(將操作數(shù)與一個st運算符合并),操作數(shù)類型 必須匹配。此單一表達式具有與其操作數(shù)相同的數(shù)據(jù)類型,可以用在更復雜的表達式中。示例:(boo_varl and boo_var2) not (boo_varl)(sin (3.14) + 0.72)(t#ls23 + 1.78)bool類型bool類型 real類型 無效表達式括號用于隔離表達式的子組件,以及對運算的優(yōu)先級進行明確排序。如果沒有為復雜表 達式加上扌舌號,則由st運算符之間的默認優(yōu)先級來隱式確定運算順序。示例:2 + 3*6相當于2+18=20乘法運算符具有較高優(yōu)先級(2 + 3)

15、 * 6 相當于5*6二30括號給定了優(yōu)先級3 調用函數(shù)和功能塊st編程語言可以調用函數(shù)??梢栽谌魏伪磉_式中使用函數(shù)調用。 函數(shù)調用包含的屬性見表51。表5- 1函數(shù)調用屬性屬性說明名稱被調用函數(shù)的名稱以iec& 1131-3語言或“c”語言編寫含義調用結構化文本(st)、梯形圖(ld)或功能塊圖(fbd)函 數(shù)或“c”函數(shù),并獲取其返回值語法:=(,);操作數(shù)返回值的類型和調用參數(shù)必須符合為函數(shù)定義的接口返回值函數(shù)返回的值當在函數(shù)主體中設置返冋參數(shù)的值時,可以為返冋參數(shù)賦予與該函數(shù)相同的名稱: functionname :=;示例示例1: iec61131-3函數(shù)調用(*主st程序*

16、)(*獲取一個整型值并將其轉換成有限時間值*)ana_timeprog : = splimit (tprog_cmd );appl_tinier : = any_to_time (ana_timeprog * 100);(*被調用的fbd函數(shù)名為“splimit”*)示例2:函數(shù)調用-與iec 61131-3函數(shù)調用的語法相同(*復雜表達式屮使用的函數(shù):min、max> right> mien和left是標準“c”函數(shù)*)limited_value : = min (16, max (0, input_value);rol_msg : = right (message> mi

17、en (message) - 1) + left (message, 1); st編程語言調用功能塊??梢栽谌魏伪磉_式中使用功能塊調用。 功能塊調用屬性見表5-2。表52功能塊調用屬性屬性說明名稱功能塊實例的名稱含義從標準庫中(或從用戶定義的庫中)調用功能塊,訪問返 回參數(shù)語法(*功能塊的調用*)(, ) 7(*獲取其返回參數(shù)*) = ; -= f操作數(shù)參數(shù)是與為該功能塊指定的參數(shù)類型相匹配的表達式。返回值參見上而的''語法"以獲取返回值當在功能塊主體屮設置返冋參數(shù)的值時,可以通過將返回參數(shù)的名稱與功能塊名稱相連 來分配返冋參數(shù):functionblockname.o

18、utputparaname :=;示例(*調用功能塊的st程序*)(*在變量編輯器中聲明塊的實例:*)(* trigbl:塊r_trig上升沿檢測*)(*從st語言激活功能塊*)trigbl (bl);(*返回參數(shù)訪問*)if (trigb l.q) then nb_edge : = nb_edge + 1; end_if;5.2 micro800控制器的內存組織micro800控制器的內存可以分為兩大部分:數(shù)據(jù)文件和程序文件。下面分別介紹這兩部 分內容。5.2.1數(shù)據(jù)文件micro800控制器的變量分為全局變量和本地變量,其中i/o變量默認為全局變量。全局 變量在項目的任何一個程序或功能塊中

19、都可以使用,而本地變量只能在它所在的程序中使用。 不同類型的控制器i/o變量的類型和個數(shù)不同,i/o變量可以在ccw軟件中的全局變量中查 看。i/o變量的名字是固定的,但是可以對i/o變量進行別名。除了 i/o變量以外,為了編程 的需要還要建立一些中間變量,變量的類型用戶可以自己選擇,常用的變量類型見表53。表3常用數(shù)據(jù)類型數(shù)據(jù)類型bool布爾暈sint單整型usint. byte無符號單整型int、word整型uint無符號整型dint> dword雙整型udint無符號雙整型lint長整型ul1nt、lword無符號長整型real實型lreal長實型time時間date日期strin

20、g字符串在項目組織器中,還可以建立新的數(shù)據(jù)類型,用來在變量編輯器川定義數(shù)組和字,這樣 方便定義大量相同類型的變量。變量的命名有如下規(guī)則:(1) 名稱不能超過128個字符(2) 首字符必須為字母(3) 后續(xù)字符可以為字母、數(shù)字或者下劃線字符數(shù)組也常常應用于編程屮,下而介紹在項目中怎樣建立數(shù)組。要建立數(shù)組首先要在ccw 軟件的項目組織器窗口屮,找到data types,打開后建立一個數(shù)組的類型。如圖510所示, 建立數(shù)組類型的名稱為a,數(shù)據(jù)類型為布爾型,建立一維數(shù)組,數(shù)據(jù)個數(shù)為10 (維度一欄寫 1.i0),打開全局變量列表,建立名為ttt的數(shù)組,數(shù)據(jù)類型選擇為a,如圖5-11所示。同理, 建立二

21、維數(shù)組類型呼 維度一欄寫1.10.10。dat atypesarrays defined wordsnamedata typedimension尹modbuslocadtword1.125asciilocaddrbyte1.82圖510定義數(shù)組的數(shù)據(jù)類型圖建立數(shù)組5.2.2程序文件控制器的程序文件分為兩部分內容:程序(program)部分(相當于通常的主程序部分) 和功能塊(function block)部分,這里所說的功能塊(function block),除了系統(tǒng)自身的函數(shù) 和功能塊(function block)指令以外,主要是指用戶根據(jù)功能需要,自己用梯形圖語言編寫 的具有一定功能的功

22、能塊(function block),可以在程序(program)或者功能塊(function block) 中調用,相當于常用的子程序。每個功能塊(function block)最多有20個輸入和20個輸出。 micros 10控制器最多可以有2000條含一個操作數(shù)的梯級。在一個項目中可以有多個程序(program)和多個功能塊(function block)程序。多個程 序(program)可以在一個控制器中同時運行,但執(zhí)行順序由編程人員設定,設定程序(program) 的執(zhí)行順序時,在項目組織器屮右鍵單擊程序圖標,選擇屬性,打開程序(prognun)屬性對 話框,如圖512所示,在ord

23、er后面寫下要執(zhí)行順序,1為第一個執(zhí)行,2為第二個執(zhí)行,例 如:一個項目中有8個程序(program),可以把第8個程序(program)設定為第一個執(zhí)行, 其他程序(program)會在原來執(zhí)行的順序上,依次后推。原來排在第一個執(zhí)行的程序(program) 將自動變?yōu)榈诙€執(zhí)行。圖512更改程序(program)執(zhí)行順序5.3 micro800控制器的指令系統(tǒng)羅克韋爾自動化的可編程序控制器編程指令非常豐富,不同系列可編程序控制器所支持 的指令稍有差異,但基本指令都是大家所共有的。對于編程指令的理解程度,將直接關系到 工作的效率。可以這樣認為,對編程指令的理解,直接決定了對可編程序控制器的掌握

24、程度。 下面將詳細介紹它的指令類型。5.3.1梯形圖指令編輯梯形圖程序時,可以從工具箱拖拽需要的指令符號到編輯窗口中使用??梢蕴砑右?下梯形圖指令元素:1. 梯級(rungs)梯級是梯形圖的組成元素,它表示著一組電子元件線圈的激活(輸出)。梯級在梯形圖中 可以有標簽,以確定它們在梯形圖中的位置。標簽和跳轉指令(jumps)配合使用,控制梯形 圖的執(zhí)行。梯級示意圖如圖513所示所示。1inpufl1 1=1-圖5-13梯形圖梯級示意圖點擊編輯框的最左側,輸入該梯級的標簽,即完成對該梯級標簽的泄義。2. 線圈(coils)線圈(輸出)也是梯形圖的重要組成元件,它代表著輸出或者內部變量。一個線圈代表

25、 著一個動作。它的左邊必須有布爾元件或者一個指令塊的布爾輸出。線圈又分為以下兒種類 型:直接輸岀(direct coil)左側連接右側連接圖514直接輸出元件左連接件的狀態(tài)直接傳送到右連接件上,右連接件必須連接到垂直電源軌上,平行線圈 除外,因為在平行線圈中只有上層線圈必須連接到垂直電源軌上,如圖515所示。圖5-15線圈連接示意圖反向輸出(reverse coil)圖5-16間接輸出元件左連接件的反狀態(tài)被傳送到右連接件上,同樣,右連接件必須連接到垂直電源軌上,除 非是平行線圈。上升沿(正沿)輸出(pulse rising edge coil)圖5-17 ±升沿(正沿)輸出當左連接件

26、的布爾狀態(tài)由假變?yōu)檎鏁r,右連接件輸出變量將被置1 (即為真),其他情況 下輸出變量將被重置為0 (即為假)。下降沿(負沿)輸出(pulse falling edge coil)圖518下降沿(負沿)輸出當左連接件的布爾狀態(tài)由真變?yōu)榧贂r,右連接件輸出變量將被置1 (即為真),其他情況 下輸出變量將被重置為0 (即為假)。置位輸出(set coil)圖519置位輸出當左連接件的布爾狀態(tài)變?yōu)椤罢妗睍r,輸出變量將被置“真”。該輸出變量將一直保持該 狀態(tài)直到復位輸出(reset coil)發(fā)出復位命令,如圖520所示。1inputloutput!11©2inpufioutputlii/syii

27、復位輸出(resetcoil)圖5-20置位復位梯形圖圖5-21復位輸出當左連接件的布爾狀態(tài)變?yōu)椤罢妗睍r,輸出變量將被置“假”。該輸出變量將一直保持該 狀態(tài)直到置位輸出(set coil)發(fā)出置位命令。3. 接觸器(contacts)接觸器在梯形圖屮代表一個輸入的值或是一個內部變量,通常相當于一個開關或按鈕的 作用。有以下兒種連接類型:左側連接右側連接直接連接(directcontact)圖522直接連接左連接件的輸出狀態(tài)和該連接件(開關)的狀態(tài)取邏輯與,即為右連接件的狀態(tài)值。 反向連接(reverse contact)左側連接右側連接圖523反向連接左連接件的輸出狀態(tài)和該連接件(開關)的狀態(tài)

28、的布爾反狀態(tài)取邏輯與,即為右連接件 的狀態(tài)值。上升沿(正沿)連接(pulse rising edge contact)圖5-24 ±升沿(正沿)連接當左連接件的狀態(tài)為真時,如果該上升沿連接代表的變量狀態(tài)由假變?yōu)檎?,那么右連接 件的狀態(tài)將會被置“真”,這個狀態(tài)在其他條件下將會被復位為“假”。下降沿連接(pulse falling edge contact)圖5-25下降沿連接當左連接件的狀態(tài)為真時,如果該下降沿連接代表的變量狀態(tài)由真變?yōu)榧?,那么右連接 件的狀態(tài)將會被置“真”,這個狀態(tài)在其他條件下將會被復位為“假”。在現(xiàn)場邏輯控制屮,需要對一些操作動作實施互鎖來確保執(zhí)行動作的可靠性。對于

29、幾個 互鎖執(zhí)行的操作動作,采用鎖存解鎖指令對其控制是最有效和可靠的,即用如圖526所示的編稈來確?;ユi。conditionlttcontrollocontrolcontrobcontrolcontrollcontrolcontrobcon trol4condition2tp controlcontrobcontrolcontrollcondition4tacon trol2controbcontrol (!>圖5-26互鎖指令梯級邏輯此例中有4個互鎖的控制,每當滿足其中之一的控制條件,便鎖存自己的控制,解鎖其 他控制,不管其他控制當前的狀態(tài)如何,這樣可以確保只有一個控制在執(zhí)行,這是一種十

30、分 可靠的做法,其明了清晰的表達,讓讀程序的人很容易理解。4. 指令塊(instruction blocks)塊(block)元素指的是指令塊,也可以是位操作指令塊、函數(shù)指令塊或者是功能塊指令 塊。在梯形圖編輯中,可以添加指令塊到布爾梯級中。加到梯級后可以隨時用指令塊選擇器 設置指令塊的類型,隨后相關參數(shù)將會自動陳列出來。在使用指令塊吋請牢記以下兩點:1、當一個指令塊添加到梯形圖中后,en和eno參數(shù)將會添加到某些指令塊的接口列表 中。2、當指令塊是單布爾變量輸入、單布爾變量輸出或是無布爾變量輸入、無布爾變量輸出 時,可以強制en和eno參數(shù)。可以在梯形圖操作中激活允許en和eno參數(shù)(ena

31、ble en/eno)。從工具箱中拖出塊元素放到梯形圖的梯級中后,指令塊選擇器將會陳列出來,為了縮小 指令塊的選擇范圍,可以使用分類或者過濾指令塊列表,或者使用快捷鍵。en輸入一些指令塊的第一輸入不是布爾數(shù)據(jù)類型,由于第一輸入總是連接到梯級上的,所以在 這種情況下另一種叫en的輸入會自動添加到第一輸入的位置。僅當en輸入為真時,指令塊 才執(zhí)行。下面舉一個“比較”指令塊的例子,如圖527所示。z>x eno1 '-i2圖5-27 “比較”指令塊eno輸出由于第一輸出另一端總是連接到梯級上,所以對于第一輸出不是布爾型輸出的指令塊, 另一端被稱為eno的輸出自動添加到了第一輸出的位置。

32、eno輸11!的狀態(tài)總是與該指令塊的 第一輸入的狀態(tài)一致。下面舉一個“平均”指令塊的例子,如圖528所示。en和eno參數(shù)在一些情況下,en和eno參數(shù)都需要。如在數(shù)學運算操作指令塊中,如圖5-29所示。+ 、uric inputloutputl廠-i1o11inpugi丿圖5-29加法指令塊功能塊使能(enable)參數(shù)在指令塊都需要執(zhí)行的情況下,需要添加使能參數(shù),例如在“sus”指令塊屮,如圖530 所示。疝enable eno1inputlsusid圖5-30 ususn扌旨令塊返回(returns)當一段梯形圖結束時,可以使用返回元件作為輸出。注意,不能再在返回元件的右邊連接元件。當左

33、邊的元件狀態(tài)為布爾“真”時,梯形圖將不執(zhí)行返回元件之后的指令。當該梯 形圖為一個函數(shù)時,它的名字將被設置為一個輸出線圈以設置一個返回值(返回給調用幣數(shù) 使用)。下面給出一個帶返冋元件的例子,如圖531所示。1input!2inpu2outputliiciiuinputl1 1圖531帶返回元件的梯形圖5. 跳轉(jumps)條件和非條件跳轉控制著梯形圖程序地執(zhí)行。注意,不能在跳轉元件的右邊再添加連接 件,但可以在其左邊添加一些連接件。當跳轉元件左邊的連接件的布爾狀態(tài)為“真”時,跳 轉執(zhí)行,程序跳轉至所需標簽處。6. 分支(branches)分支元件能產(chǎn)生一個替代梯級。可以使用分支元件在原來梯級

34、基礎上添加一個平行的分 支梯級。5.3.2功能塊指令功能塊指令是microsoo控制器編程屮的重要指令,它包含了實際應用中的大多數(shù)編程功 能。功能塊指令種類及說明見表5-4o表54功能塊指令種類種類描述報警(alarms)超過限制值時報警布爾運算(boolean operations)對信號上升下降沿以及設置或巫置操作通訊 (communications)部件間的通訊操作計時器(time)計時計數(shù)器(counter)計數(shù)數(shù)據(jù)操作(data manipulation)取平均,最大披小值輸入/輸出(input/output)控制器與模塊z間的輸入輸出操作中斷(interrupt)管理中斷過程控制(

35、process control)pid操作以及堆棧程序控制(program control)主要是延遲指令功能塊1.報警(alarms)功能塊指令報警類指令只有限位報警一種,其詳細功能說明如下。 限位報警(lim_alrm)limalem-enqh- hq- xql-l-eps丿圖5-32限位報警功能塊該功能塊用高限位和低限位限制一個實數(shù)變量。限位報警使用的高限位和低限位是eps 參數(shù)的一半。其參數(shù)列表見表5-5。表55限位報警功能塊參數(shù)列表參數(shù)參數(shù)類型數(shù)據(jù)類型描述eninputbool功能塊使能。為真時,執(zhí)行功能塊 為假時,不執(zhí)行功能塊hinputreal高限位值xinputreal輸入:任

36、意實數(shù)linputreal低限位值epsinputreal滯后值(須大于零)qhoutputbool高位報警:如果x大于高限位值h時為真qoutputbool報警:如果x超過限位值時為真qloutputbool低位報警:如果x小丁低限位值l時為真下面簡單介紹限位報警功能塊的用法。限位報警的主要作用就是限制輸入,當輸入超過 或者低于預置的限位安全值時,輸出報警信號。在本功能塊中x端接的是實際要限制的輸入, 其他個參數(shù)的意義可以參考上表。當x的值達到高限位值h時,功能塊將輸出qh和q,即 高位報警和報警,而要解除該報警,需要輸入的值小于高限位的滯后值(h-eps),這樣就拓 寬了報警的范圉,使輸入

37、值能較快的回到一個比佼安全的范圍值內,起到保護機器的作用。 對于低位報警,功能塊的工作方式很類似。當輸入低于低限位值l時,功能塊輸出低位報警 (ql)和報警(q),而要解除報警則需輸入冋到低限位的滯后值(l+eps)??梢妶缶痲的 輸出綜合了高位報警和低位報警。使用時可以留意該輸出。該功能塊吋序圖如圖5-33所示。2布爾操作(boolean operations)布爾操作類功能塊主要有以下4種,用途描述見表56。表6布爾操作功能塊用途功能塊描述f trig (下降沿觸發(fā))下降沿偵測,下降沿吋為其rs (重置)重置優(yōu)先r trig (上升沿觸發(fā))上升沿偵測,上升沿時為真sr (設置)設置優(yōu)先下面

38、詳細說明下降沿觸發(fā)以及重置功能塊的使用:1)下降沿觸發(fā)(f_trig)f.trigclk/圖5-34降沿觸發(fā)功能塊 該功能塊用于檢測布爾變量的下降沿,其參數(shù)見表57。表57下降沿觸發(fā)功能塊參數(shù)列表參數(shù)參數(shù)類型數(shù)據(jù)類型描述clkinputbool任意布爾變量qoutputbool當clk從真變?yōu)榧贂r,為真。英他情況為假。2) 重置(rs)c sf7bs set q1“rese 一圖5-35重置功能塊重置優(yōu)先,其參數(shù)列表見表5-8。表58重置功能塊參數(shù)列表參數(shù)參數(shù)類型數(shù)據(jù)類型描述setinputbool如果為真,則置q1為真reset1inputbool如果為真,則置q1為假(優(yōu)先)qioutpu

39、tbool存儲的布爾狀態(tài)例見表5-9o表59重置功能塊示例表setreset1q1result qisetreset1qiresult qi000010010011101101001100011011103通訊 (communications)通訊類功能塊主要負責與外部設備通訊,以及白身的各部件之間的聯(lián)系。該類功能塊的 主要指令描述見表510。表5-10通信類功能塊指令功能塊描述abl (測試緩沖區(qū)數(shù)據(jù)列)統(tǒng)計緩沖區(qū)中的字符個數(shù)(直到并且包括結束字符)acb (緩沖區(qū)字符數(shù))統(tǒng)計緩沖區(qū)中的總字符個數(shù)(不包括終止字符)acl (ascii清除緩存寄存器)清除接收,傳輸緩沖區(qū)內容ahl (asci

40、i握手數(shù)據(jù)列)設置或巫置調制解調器的握于信號,ascii握手數(shù)據(jù)列ard (ascii 字符讀)從輸入緩沖區(qū)中讀取字符并把它們放到某個字符串中arl (ascii數(shù)據(jù)列讀)從輸入緩沖區(qū)中讀取一行字符并把它們放到某個字符串 中,包括終止字符awa (ascii帶附加字符寫)寫一個帶用戶配置字符的字符串到外部設備屮awt (ascii字符寫出)從源字符串中寫一個字符到外部設備中msg modbus (網(wǎng)絡通訊協(xié)議信息傳輸)發(fā)送modbus信息下面主要介紹abl, acl, ahl, ard, awa, msg.modbus這幾種指令:1)測試緩沖區(qū)數(shù)據(jù)列(abl ascii test for li

41、ne)( abljabl-inablincharaerrorerrorldj圖5-36測試緩沖區(qū)數(shù)據(jù)列計功能塊測試緩沖區(qū)數(shù)據(jù)列功能塊指令可以用于統(tǒng)計在輸入緩沖區(qū)里的字符個數(shù)(直到并且包括 結束字符)。其參數(shù)列表見表5- llo表511測試緩沖區(qū)數(shù)據(jù)列功能塊參數(shù)列表參數(shù)參數(shù)類型數(shù)據(jù)類型描述ininputbool如果是上升沿(in由假變真),執(zhí)行統(tǒng)計ablinputinputablacb (見ablacb數(shù)據(jù)類型)將要執(zhí)行統(tǒng)計的通道qoutputbool假一一統(tǒng)計指令不執(zhí)行;真一一統(tǒng)計指令已執(zhí)行charactersoutputuint字符的個數(shù)erroroutputbool假一一無錯誤;真一一檢測

42、到一個錯誤errorldoutputuint見abl錯誤代碼ablacb數(shù)據(jù)類型見表5- 12o表5- 12ablacb數(shù)據(jù)類型參數(shù)數(shù)據(jù)類型描述channeluint串行通道號:2代表木地的串行通道口59代表安裝在插槽15的嵌入式模塊串行通道口: 5表示在插槽1 ; 6表示在插槽2; 7表示在插槽3; 8表示在插槽4; 9表 示在插槽5triggertypeus i nt (無符號短整型)代表以下情況中的一種:0: msg觸發(fā)一次(當in從假變?yōu)檎妫?1: msg持續(xù)觸發(fā),即in直為真;其他值:保留cancelbool當該輸入被蜀為真時,統(tǒng)計功能塊指令不執(zhí)行abl錯誤代碼見表5- 13o表5-

43、13abl錯誤代碼錯誤代碼描述0x02由丁數(shù)據(jù)模式離線,操作無法完成0x03由于準備傳輸ge (clear-to-send)丟失,導致傳送無法完成0x04由于通訊通道被設置為系統(tǒng)模式,導致ascii碼接收無法完成0x05當嘗試完成一個ascii碼傳送時,檢測到系統(tǒng)模式(df1)通訊0x06檢測到不合理參數(shù)0x07由于通過通道配置對話框停止了通道配置,導致不能完成ascii碼的發(fā)送或接收0x08由于一個ascii碼傳送正在執(zhí)行,導致不能完成ascii碼寫入0x09現(xiàn)行通道配置不支持ascii碼通訊請求0x0a取消(cancel)操作被設置,所以停止執(zhí)行指令,沒有要求動作。0x0b要求的字符串長度

44、無效或者是一個負數(shù),或者大于82或0o功能塊ard和arl屮也一樣。0x0c源字符串的長度無效或者是一個負數(shù)或者大于82或0。對于awa何awt指令也一樣。oxod在控制塊中的要求的數(shù)是一個負數(shù)或是一個大于存儲于源字符串中字符串長度的數(shù)。對于 awa何awt指令也一樣。0x0cacl功能塊被停止oxof通道配置改變說明:“ox”前綴表示十六進制數(shù)。2)ascii 清除緩存寄存器(acl ascii clear buffers)acl 1aclinaclin.errorerrorld j圖5-37asctt清除緩存寄存器功能塊ascii清除緩存寄存器功能塊指令用于清除緩沖區(qū)里接收和傳輸?shù)臄?shù)據(jù),該

45、功能塊指令也 可以用于移除ascii隊列里的指令。其參數(shù)描述見表5-140表5-14 ascii清除緩存寄存器功能塊參數(shù)參數(shù)參數(shù)類型數(shù)據(jù)類型描述ininputbool如果是上升沿(in由假變真),執(zhí)行該功能塊。aclinputinputacl(見acl數(shù)據(jù)類型)傳送和接收緩沖區(qū)的狀態(tài)qoutputbool假一一該功能塊不執(zhí)行;真一一該功能塊己執(zhí)行eitoroutputbool假一一無錯誤;真一一檢測到一個錯誤errorldoutputuint見abl錯誤代碼acl數(shù)據(jù)類型,見表5-15o表5-15acl數(shù)據(jù)類型參數(shù)數(shù)據(jù)類型描述channeluint串行通道號:2代表本地的串行通道口59代表安裝

46、在插槽15的嵌入式模塊串行通道口: 5農(nóng)示在插槽1; 6農(nóng)示 在插槽2; 7表示在插槽3; x表示在插槽4; 9表示在插槽5rxbufferbool當置為真時,清除接收緩沖區(qū)里的內容,并把接收ascii功能塊指令(arl 和ard)從ascii隊列中移除txbufferbool當置為真時,清除傳送緩沖區(qū)里的內容,并把傳送ascii功能塊指令(awa 和awt)從ascii隊列中移除3) ascii 握手數(shù)據(jù)列(ahlascii handshake lines)ahlinqah lin. chann .errorerrorld圖5-38 ascii握手數(shù)據(jù)列功能塊ascii握手數(shù)據(jù)列功能塊可以用

47、于設置或重置rs-232請求發(fā)送(rts, request to send) 握手信號控制行。其參數(shù)見表5- 16.表5- 16 ascii握手數(shù)據(jù)列功能塊參數(shù)參數(shù)參數(shù)類型數(shù)據(jù)類型描述ininputbool如果是上升沿(in由假變真),執(zhí)行該功能塊。ahlinputinputahl (見ahli數(shù)據(jù)類型)設置或重置當前模式的rts控制字qoutputbool假一一該功能塊不執(zhí)行;真一一該功能塊已執(zhí)行channelstsoutputword (見 ahlchannelsts數(shù)據(jù)類型)顯示當前通道規(guī)定的握手行的狀態(tài)()()()()001f)erroroutputbool假一一無錯誤;真一一檢測到一

48、個錯誤errorldoutputuint見abl錯誤代碼ahli數(shù)據(jù)類型,見表517。表5-17ahli數(shù)據(jù)類型參數(shù)數(shù)據(jù)類型描述channeluint串行通道號:2代表本地的串行通道口59代表安裝在插槽15的嵌入式模塊串行通道口:6表示在插槽2; 7表示在插槽3; 8表不在插槽4;5表示在插槽19表示在插槽5clrrtsbool用于重hrts控制字setrtsbool用丁設置rts控制字cancelbool當輸入為真時,該功能塊不執(zhí)行ahl channelsts 數(shù)據(jù)類型,見表 5-18。表518 ahl channelsts數(shù)據(jù)類型參數(shù)數(shù)擁類型描述dtrstatusuint用t- dtr信號

49、(保留)dcdstalusuint用于dcd信號(控制字的第3位),1表示激活dsrstatusuint用t dsr信號(保留)rtsstatusuint用于rts信號(控制字的第1位),1表示激活ctsstatushint用t cts信號(控制字的第0位),1表示激活4) ascii 字符讀(ard ascii read)( ardj <>inq-11 ardin. destin.1 numc.11error »errorld«»圖5-39 ascii字符讀功能塊ascii字符讀功能塊用于從緩沖區(qū)中讀取字符,并把字符存入一個字符串中。其參數(shù)見表5-

50、19«表519 ascii字符讀功能塊參數(shù)參數(shù)參數(shù)類型數(shù)據(jù)類型描述ininputbool如果是上升沿(in由假變真),執(zhí)行該功能塊。ardinputinputardarl(見 ardarl數(shù)據(jù)類型)從緩沖區(qū)中讀取字符,最多82個doneoutputbool假一一該功能塊不執(zhí)行;真一一該功能塊已執(zhí)行destinationoutputasciiloc存儲字符的字符串位置numcharoutputuint字符個數(shù)erroroutputbool假一一無錯誤;真一一檢測到一個錯誤errorldoutputuint見abl錯誤代碼ardarl數(shù)據(jù)類型,見表5-20。表& 20 ardar

51、l數(shù)據(jù)類型參數(shù)數(shù)據(jù)類型描述channeluint串行通道號:2代表木地的串行通道口59代表安裝在插槽15的嵌入式模塊串行通道口: 5表示在插槽1; 6表示在插槽2; 7表示在插槽3; 8表示在插槽4; 9表示在插槽5lengthuint希望從緩沖區(qū)里讀取的字符個數(shù)(最多82個)cancelbool當輸入為真時,該功能塊不執(zhí)行,如杲正在執(zhí)行,則操作停止。1) ascii 帶附加字符寫(awaasc11 write append)mikawal.numc.sourceerrorerrorldj圖5-40 ascii帶附加字符的寫出功能塊寫出功能塊用于從源字符串向外部設備寫入字符。且該指令附加在設置

52、對話框里設置的 兩個字符。該功能塊的參數(shù)列表見表5-21o表5- 21 ascii帶附加字符的寫出功能塊參數(shù)列表參數(shù)參數(shù)類型數(shù)據(jù)類型描述ini叩utbool如果是上升沿(in由假變真),執(zhí)行功能塊。awainputinputawaawt(見awaawt數(shù)據(jù)類型)將要操作的通道和長度sourceinputasciiloc源字符串,字符陣列qoutputbool假一一功能塊不執(zhí)行;真一一功能塊已執(zhí)行numcharoutputuint字符個數(shù)erroroutputbool假一一無錯誤;真一一檢測到一個錯誤errorldoutputuint見abl錯誤代碼awaawt數(shù)據(jù)類型見 表 5-22o表5- 22 awaawt數(shù)據(jù)類型參數(shù)數(shù)據(jù)類里描述channeluint串行通道號:2代表本地的串行通道口59代表安裝在插槽卜5的嵌入式模塊串行通道口: 5表示在插椚16農(nóng)示在插槽2; 7農(nóng)示在插槽3;

溫馨提示

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

評論

0/150

提交評論