瘋狂系列工控培訓(xùn)教程、手冊(cè)合集03plc尋址_第1頁(yè)
瘋狂系列工控培訓(xùn)教程、手冊(cè)合集03plc尋址_第2頁(yè)
瘋狂系列工控培訓(xùn)教程、手冊(cè)合集03plc尋址_第3頁(yè)
瘋狂系列工控培訓(xùn)教程、手冊(cè)合集03plc尋址_第4頁(yè)
瘋狂系列工控培訓(xùn)教程、手冊(cè)合集03plc尋址_第5頁(yè)
已閱讀5頁(yè),還剩96頁(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、OpenPLC 對(duì)不同數(shù)據(jù)類型的尋址方式史珺科技()1 數(shù)據(jù)類型PLC的每個(gè)可尋址的內(nèi)存在進(jìn)行時(shí),都要通過(guò)一些代號(hào)來(lái)進(jìn)行尋址的,這些地址代號(hào)也含有許多關(guān)于數(shù)據(jù)的其它信息,如數(shù)據(jù)位,數(shù)據(jù)類型等。在程序中的常數(shù)通常要加一個(gè)前綴,因此,OpenPLC 可以知道如何將它翻譯成二進(jìn)制數(shù)。1位(bit)是代數(shù)類型的數(shù)據(jù)元素,現(xiàn)代計(jì)算機(jī)技術(shù)的發(fā)展已經(jīng)不在逐位地讀寫(xiě)數(shù)據(jù)了,位是一組一組(以字節(jié)或字的形式)地存在內(nèi)存中的,因此,對(duì)每一位的尋址首先要對(duì)字節(jié)或字進(jìn)行尋址,然后再確定是哪一位。2到 255)來(lái)一個(gè)字節(jié)(Byte)由 8 位組成,可以是獨(dú)立的 8 位數(shù),但通常都是按一個(gè)整數(shù)(0。一個(gè)字(word)則由

2、16 位組成,一個(gè) 16 位的內(nèi)存可以獨(dú)立的 16 位數(shù),也可以將之看成一個(gè)從 0 到 65535 之間的整數(shù),或者按有符號(hào)數(shù),看作-32768 到的整數(shù)。新的 OpenPLC 提供了雙精度數(shù),由 32 位整數(shù)組成,大約范圍是從-20 億到+20 億之間的整數(shù)。3wwOpenPLC 為以定時(shí)器和計(jì)數(shù)器的格式專門(mén)預(yù)留了 16 位的內(nèi)存區(qū)域,供OpenPLC 的定時(shí)器和計(jì)數(shù)器用。雖然每個(gè) OpenPLC 的制造商的格式不同,但通常都是包括預(yù)設(shè)值、累計(jì)值和一些狀態(tài)位。前一章對(duì) OpenPLC 的定時(shí)器和計(jì)數(shù)器已經(jīng)作了介紹。4中型以上的 OpenPLC 預(yù)留了 32 位的浮點(diǎn)數(shù),現(xiàn)在已經(jīng)出現(xiàn)了 64

3、位的OpenPLC,可以進(jìn)行復(fù)雜的科學(xué)計(jì)算。567對(duì)于鍵盤(pán)的文本和字母有 ASCII 碼的方式,每個(gè) ASCII 碼占 8 位內(nèi)存。 新型的 OpenPLC 現(xiàn)在允許數(shù)組的使用,對(duì) ASCII 碼的數(shù)組則成為字符串。一組沒(méi)有共同特點(diǎn)不屬同一類型的數(shù),成為一個(gè)結(jié)構(gòu)(STRUCTURE),可以由一寫(xiě)現(xiàn)代化的 OpenPLC 控制器來(lái)處理,數(shù)據(jù)結(jié)構(gòu)中包含數(shù)組,甚至還包括其它的數(shù)據(jù)結(jié)構(gòu),有的 PLC 的定時(shí)器和計(jì)數(shù)器是放在數(shù)據(jù)結(jié)構(gòu)中的。8接尋址的。指針是以 PLC 能夠解釋的方式存在數(shù)據(jù)內(nèi)存區(qū)的內(nèi)存的地址。指針是用來(lái)間為了防止用戶編程時(shí)將不同的地址和數(shù)據(jù)的類型,OpenPLC 對(duì)于編程時(shí)的指令有一些保

4、護(hù)措施,如防止改變輸入也只能操作特定的數(shù)據(jù)類型。表和對(duì) ASCII 碼的區(qū)域不能改寫(xiě)等,此外,有的指令2 尋址方式PLC 允許程序員采用幾種尋址方式來(lái)在程序中輸入內(nèi)存的地址:1、常數(shù)。常數(shù)是程序中用到的一個(gè)數(shù),編程不需要知道它在內(nèi)存中的地址,但是因?yàn)樗_實(shí)存在于內(nèi)存的某個(gè)地方,因此,常數(shù)也有一個(gè)尋址方式,就稱1之為常數(shù)方式。最普通的尋址方式是絕對(duì)地址模式。它給出了數(shù)據(jù)2、的準(zhǔn)確的地址,通常以一個(gè)字符表示數(shù)據(jù)類型,隨后跟一個(gè)數(shù)字表示內(nèi)存的位置,所有的 PLC 都允許絕對(duì)尋址方式。符號(hào)尋址。是絕對(duì)尋址的變種。程序員用編程器輸入一個(gè)表格,給每個(gè)絕對(duì)地址對(duì)應(yīng)一個(gè)字符,程序員只要輸入這個(gè)字符,編程器就會(huì)

5、將他轉(zhuǎn)換為絕對(duì)地址。索引尋址,或者允許程序員采用可交換的數(shù)據(jù)塊的方式。這兩種方式十分類似。用索引尋址方式,首先要在預(yù)先指定的一個(gè)內(nèi)存的位置中放置一個(gè)偏移量,當(dāng) PLC 遇到一個(gè)指令包括一個(gè)基本地址指向一個(gè)偏移量,PLC 則將把偏移兩與基本地址相加,即得到要處理的數(shù)據(jù)的絕對(duì)地址。一般,如果在地址前面有#號(hào)標(biāo)志的,就表示該地址是一個(gè)索引地址。而數(shù)據(jù)塊的方式是,用戶程序先調(diào)用一個(gè)數(shù)據(jù)塊(等于建立一個(gè)偏移量),以后的地址就是從該地址起始的加上偏移量的地址。有些 PLC 可以采用間接尋址的方式,當(dāng) PLC 遇到一個(gè)地址屬于間接尋址方式時(shí),PLC 首先讀出該地址的內(nèi)容,把該地址作為內(nèi)存的絕對(duì)地址,再去處理

6、該絕對(duì)地址的內(nèi)存。第一個(gè)地址放的是一個(gè)指針,該指針指向第二個(gè)地址。還有些 PLC 編程采用正式操作符的方式定義所代表的數(shù)值,這樣一個(gè)程序中的數(shù)可以由另一個(gè)程序來(lái)提供和使用。這樣,一個(gè)字符的正式的操作符的名稱在程序里就被用來(lái)代替了實(shí)際的地址。由于 IEC1131-3 標(biāo)準(zhǔn)中,每個(gè)不同程序和功能需要在內(nèi)存中有一部分是只能供自己這個(gè)程序使用,不能被其它程序使用。3、4、5、6、當(dāng)這個(gè) IEC1131-3 的標(biāo)準(zhǔn)實(shí)現(xiàn)后,將有的 PLC 支持使用正規(guī)操作符。ww3OpenPLC 對(duì)各類數(shù)據(jù)類型的尋址方式OpenPLC 的 CPU 內(nèi)存中,包括著由程序文件和數(shù)據(jù)文件組成的處理器文件,這些文件是 CPU 必

7、須的。其中,程序文件由包含用戶程序和操作系統(tǒng)組態(tài)信息,數(shù)據(jù)文件包括用戶的數(shù)據(jù)和程序文件所需要的系統(tǒng)組態(tài)數(shù)據(jù)。數(shù)據(jù)文件是一直保留的,只要后備電池沒(méi)有耗盡,即使掉電或者是不在運(yùn)行模式,都不會(huì)丟失,除非是通過(guò)程序有意進(jìn)行改動(dòng)或刪除。這一點(diǎn)是 OpenPLC 與其它 PLC 的不同之處,其它 PLC 的數(shù)據(jù)內(nèi)存是可變內(nèi)存,當(dāng) PLC 不在運(yùn)行模式后,內(nèi)存就被自動(dòng)清除。3.1 OpenPLC 的常數(shù)和各類數(shù)據(jù)文件OpenPLC 的常數(shù)在 OpenPLC 程序中,常數(shù)可以直接被輸入,不需要尋址,以下是 OpenPLC 可以輸入的常數(shù)類型:123有符號(hào)整數(shù),范圍從-32768 到 32767大的十進(jìn)制數(shù)可以

8、用浮點(diǎn)方式輸入,范圍與下面科學(xué)計(jì)數(shù)的范圍一樣??茖W(xué)計(jì)數(shù)可以采用指數(shù)方式,最大是 32 位數(shù)。按照 IEEE 754 規(guī)定的浮點(diǎn)數(shù)標(biāo)準(zhǔn),可以達(dá)到(1.17549410-38 到3.40282810+38)16 進(jìn)制數(shù),八進(jìn)制,二進(jìn)制和 ASCII 常數(shù)都可以被相關(guān)的指令接受,但要加合適的前綴,這些前綴是:4a)&H,表示 16 進(jìn)制,范圍從 0 到F,(如,&HFF06)2b)c)d)&O,表示 8 進(jìn)制數(shù),范圍從 0-177777,(如&O177000)&B,表示二進(jìn)制數(shù),位數(shù) CPU 的位數(shù)一樣(如&B0010101111001010) &A,表示 ASCII 碼,(如&Ahi)OpenPL

9、C 的數(shù)據(jù)文件OpenPLC 的用戶程序中,只要不是常數(shù)的數(shù)據(jù),都要以數(shù)據(jù)文件的方式放在 OpenPLC的可尋址內(nèi)存中。每個(gè)數(shù)據(jù)文件用來(lái)一個(gè)字節(jié)的數(shù)據(jù),OpenPLC 中一共有三種基本的數(shù)據(jù)文件:O IS輸出輸入數(shù)據(jù)字,數(shù)據(jù)字;狀態(tài)字;包含OpenPLC 的組態(tài)信息和描述OpenPLC 的運(yùn)行和操作條件的狀態(tài)數(shù)據(jù);除了以上三種數(shù)據(jù)文件外,對(duì)于一些特殊的用戶數(shù)據(jù)類型還有另外的一些數(shù)據(jù)文件。有些是被默認(rèn)用來(lái)作為一些特殊類型的數(shù)據(jù)的文件的,有:B3 T4 C5 R6 N7F816 位字的位定時(shí)器數(shù)據(jù)結(jié)構(gòu),每個(gè)有三個(gè)數(shù)據(jù)字計(jì)數(shù)器數(shù)據(jù)機(jī)構(gòu),每個(gè)有三個(gè)數(shù)據(jù)字控制數(shù)據(jù)結(jié)構(gòu),每個(gè)有三個(gè)數(shù)據(jù)字 整數(shù)數(shù)據(jù)字浮點(diǎn)數(shù)

10、ww其它還有很多不對(duì)應(yīng)數(shù)據(jù)類型的數(shù)據(jù)文件,如對(duì) PPC21 的 10 到 255,PPC31 的 9 到 999,這些可以附加的器,可以用來(lái)為、定時(shí)器、計(jì)數(shù)器、控制元素、整數(shù)、浮點(diǎn)數(shù),或者其它任何下面所描述的數(shù)據(jù)類型。在編程時(shí),輸入一個(gè)數(shù)據(jù)文件的文件號(hào)碼,就會(huì)將該數(shù)據(jù)文件和類型與這個(gè)號(hào)碼對(duì)應(yīng)起來(lái),比如,創(chuàng)建一個(gè)數(shù)據(jù)文件 12,作為一個(gè)附加的位數(shù)據(jù)文件,可以按如下方式寫(xiě)程序:B12/X,或者,B12:x, 或者,B12:x/x這個(gè)指令將把文件 12 定下來(lái)用作位(X,必須是一個(gè)有效位或者字地址,位文件的地址結(jié)構(gòu)將在后面敘述)。數(shù)據(jù)文件也可以通過(guò)編程單元的文件生成功能被用來(lái)預(yù)定為特殊的數(shù)據(jù)類型。O

11、penPLC 的狀態(tài)文件狀態(tài)文件通常是默認(rèn)的。每個(gè) 16 位的狀態(tài)字包含著 OpenPLC 的組態(tài)數(shù)據(jù)或者當(dāng)OpenPLC 運(yùn)行和操作時(shí),描述其條件的狀態(tài)數(shù)據(jù)。任何狀態(tài)字都可以被用戶,大多數(shù)狀態(tài)字是動(dòng)態(tài)的,用戶程序可以對(duì)之進(jìn)行改寫(xiě),比如當(dāng)用戶程序運(yùn)行時(shí),希望改變 OpenPLC的組態(tài)方式。也有一些狀態(tài)字是靜態(tài)的,它們只能在 OpenPLC 處于編程模式的時(shí)候才能被改變。狀態(tài)字是由下列方式進(jìn)行能夠?qū)ぶ返模篠:e“e”表示一個(gè) 16 位的狀態(tài)字元素的樹(shù)木,(如 S:1,表示一個(gè)數(shù)據(jù)字包含 16 個(gè)處理器的狀態(tài)位)第一個(gè)狀態(tài)字的為 0,最后一個(gè)隨著 OpenPLC 的型號(hào)的不同而不同。單個(gè)的狀態(tài)位也

12、可以用S:e/b操作字 1 的最邏輯來(lái)尋址,如:“b”是一個(gè)從 0 到 15 的數(shù),表示要操作的是哪一位(如 S:1/15 表示要;這個(gè)重要的狀態(tài)位每次當(dāng) OpenPLC 切換到運(yùn)行模式時(shí),每個(gè)掃描周期3就增加一次。OpenPLC 的位文件位文件是用來(lái)進(jìn)行位的。文件 3 是被默認(rèn)作為位文件,尋址的前綴是“B3”。前綴 “B”也用在其它沒(méi)有使用的文件號(hào)碼上,將該文件作為附加的位文件。當(dāng)用來(lái)作為位時(shí),文件 3 的單個(gè)位通常用下面的方法尋址:B3/b“b”是一個(gè)從 0 到 4096 的數(shù),OpenPLC 也允許在位文件中,用不同的辦法來(lái)尋址位,由于所有的位都是 16 位字的一個(gè)組成部分,因此,也可以

13、按下面的方式:B3:e/b其中,“e”是一個(gè)字元素,從 0 到 255, “b”是一個(gè)從 0 到 15 的數(shù),表示該字的某一位。上述兩種方法其實(shí)是一樣的。位文件是由 16 位的數(shù)據(jù)字組成的,這些字也可以作為整個(gè)字來(lái)進(jìn)行處理,整數(shù)據(jù)字可以用如下方式來(lái)尋址和操作:B3:e“e”是一個(gè)從 0 到 255 的字元素,(新的 PPC31 可以從 0 到 999)OpenPLC 的定時(shí)器結(jié)構(gòu)文件文件 4 是被缺省地作為定時(shí)器的每個(gè)定時(shí)器元素結(jié)構(gòu)由三個(gè) 16 位數(shù)據(jù)字件中的所有的數(shù)據(jù)都必須加前綴 T4。,安排如圖 4.3。ww字:123圖 4.3 OpenPLC 的定時(shí)器數(shù)據(jù)結(jié)構(gòu)編程時(shí),對(duì)整個(gè)定時(shí)器的結(jié)構(gòu)字

14、采用如下方式來(lái)尋址:T4:/e“e”是一個(gè)從 0 到 255 的數(shù)字,表示三字結(jié)構(gòu)元素的數(shù)量。每個(gè)定時(shí)器數(shù)據(jù)字結(jié)構(gòu)中的數(shù)據(jù)字也可以作為單獨(dú)的一個(gè)字被尋址,方式如下:T4:e.m其中,“e”是三字結(jié)構(gòu)元素的序號(hào),“m”是按照規(guī)定的區(qū)分各個(gè)數(shù)據(jù)字的代號(hào),如 ACC,表示累計(jì)值,PRE 表示預(yù)先設(shè)定值。如果不用代號(hào),就用序號(hào)也可以,那么,m 就表示 0,1,2,內(nèi)容見(jiàn)圖 4.3。4EN 15TT 14DN 13預(yù)先設(shè)定值累計(jì)值對(duì)于定時(shí)器的狀態(tài),可以用如下方式來(lái)尋址定位:T4:e.m其中,m 表示三個(gè)狀態(tài)位的代號(hào),如 TT,DN,EN 等。比如,T4:3.TT就表示定時(shí)器 3 的 TT 位的狀態(tài)。Op

15、enPLC 的計(jì)數(shù)器結(jié)構(gòu)文件文件 5 是被默認(rèn)為計(jì)數(shù)器的數(shù)據(jù)結(jié)構(gòu)的。對(duì)這個(gè)文件的數(shù)據(jù)進(jìn)行尋址時(shí),必須加上前綴“C5”,每個(gè)三字結(jié)構(gòu)的格式見(jiàn)圖 4.4。字:012* 有些OpenPLC 將第 10 位作為附加的狀態(tài)位,代號(hào)為UA。圖 4.4 OpenPLC 的計(jì)數(shù)器字結(jié)構(gòu)ww對(duì)計(jì)數(shù)器的尋址與定時(shí)器的尋址方式類似。見(jiàn)下面:C5:eC5:e.m對(duì)三字結(jié)構(gòu)計(jì)數(shù)器元素尋址對(duì)結(jié)構(gòu)中的子元素的一個(gè)字或者狀態(tài)位進(jìn)行尋址。字中的 m 可以是縮寫(xiě)代號(hào),也可以是數(shù)字,但對(duì)狀態(tài)位時(shí),必須是縮寫(xiě)代號(hào)。OpenPLC 的控制結(jié)構(gòu)文件文件 6,是 OpenPLC 預(yù)定作為控制數(shù)據(jù)結(jié)構(gòu)的文件??刂平Y(jié)構(gòu)文件中的數(shù)據(jù)在尋址時(shí)必須

16、加上前綴“R6”(之所以用“R”作為前綴是因?yàn)?,英?CONTROL 的前面在OpenPLC 開(kāi)發(fā)出控制元前,已經(jīng)被用作計(jì)數(shù)器、輸出、整數(shù)、定時(shí)器了)。三字結(jié)構(gòu)的字:012格式見(jiàn)圖 4.5。* 位0-7 在后期的OpenPLC 產(chǎn)品中被5EN 15EU 14DN 13EM 12ER 11UL 10IN 9FD 8*LEN(位陣列/文件的長(zhǎng)度)(位指針/位置)CU 15CD 14DN 13OV 12UN 11* 10PREACC用來(lái)錯(cuò)誤代碼。圖 4.5 OpenPLC 的控制字結(jié)構(gòu)控制數(shù)據(jù)可按如下方式進(jìn)行尋址:R6:eR6:e.m尋找 3 字的控制器元素尋找三字結(jié)構(gòu)中的某個(gè)字,或者某個(gè)位。如果是

17、對(duì)位進(jìn)行尋址,則必須用該位的縮寫(xiě)代號(hào)。OpenPLC 的整數(shù)文件文件 7 是被預(yù)定作為整數(shù)的區(qū)域的,整數(shù)的范圍是-32768 到。每個(gè)整數(shù)值都存在一個(gè) 16 位的二進(jìn)制數(shù)中。這個(gè)文件中的單個(gè)的數(shù)據(jù)可以采用如下方式尋址:N7:ee 代表文件中的某個(gè)字,范圍是從 0-999。文件中的單個(gè)位也可以采用下列方式尋址:N7:e.bb 是一個(gè)數(shù)據(jù)中位的地址,為從 0 到 15 的整數(shù)。OpenPLC 的浮點(diǎn)數(shù)結(jié)構(gòu)文件ww文件 8 是 OpenPLC 默認(rèn)為用來(lái)預(yù)定存放浮點(diǎn)數(shù)的內(nèi)存區(qū)域。浮點(diǎn)數(shù)的范圍是( 1.17549410-38 到3.40282810+38),是根據(jù) IEEE754 的浮點(diǎn)數(shù)編碼標(biāo)準(zhǔn)格式

18、來(lái)進(jìn)行編碼的,需要 32 位。因此,每個(gè)浮點(diǎn)數(shù)需要兩個(gè) 16 位的數(shù)據(jù)字,單個(gè)的位和 16 位字都無(wú)法被尋址(實(shí)際也沒(méi)有必要),因此,浮點(diǎn)數(shù)的尋址很簡(jiǎn)單:F8:ee 代表元素的號(hào)碼。范圍從 0-999(或從 0-255)。OpenPLC 的 ASCII 字符文件對(duì)于 ASCII 字符文件,OpenPLC 沒(méi)有默認(rèn)的文件,但任何沒(méi)有用到的文件都可以預(yù)定為 ASCII 字符。ASCII 字符包括原始的標(biāo)準(zhǔn)電傳鍵盤(pán)字符集,對(duì)每個(gè)字符,都有一個(gè) 7 位的二進(jìn)制數(shù)對(duì)應(yīng)。ASCII 字符目前是用來(lái)將鍵盤(pán)字符進(jìn)行二進(jìn)制化的最常見(jiàn)的方式。在 OpenPLC 的 ASCII 字符文件中,每個(gè)編碼都存在一個(gè) 16

19、 位字的一半中,因此,一個(gè) 16 位字可以兩個(gè)字符。由于 OpenPLC 不允許對(duì)字節(jié)尋址,因此,每個(gè) ASCII 文件的元素包括兩個(gè) ASCII字符。ASCII 文件的尋址方式如下:Af:e數(shù),包含兩個(gè) ASCII 碼)Af:e.bf 代表文件的序號(hào), e 是文件中字的序號(hào)(每個(gè)字是一個(gè) 16 位b 代表該兩個(gè) ASCII 碼的位的序號(hào),從 0 到 15。6OpenPLC 的字符串?dāng)?shù)組文件對(duì)于字符串?dāng)?shù)據(jù)的,OpenPLC 也沒(méi)有默認(rèn)的指定區(qū),但任何沒(méi)有用到的數(shù)據(jù)文件都可以被預(yù)存。每個(gè)字符串由一系列的 42 個(gè) 16 位字的字符集組成,其中,第一個(gè)數(shù)據(jù)字包括一個(gè)描述當(dāng)前該字符串中的 ASCII

20、 字符的實(shí)際數(shù)量的數(shù)字。隨后的 16 位字,每個(gè)字都包含兩個(gè) ASCII 字符,如圖 4.6 所示。(圖中顯示的是 ASCII 字符,但實(shí)際碼)。的是 ASCII字:01234。圖 4.6 OpenPLC 的字符串文件的 ASCII 碼方式。OpenPLC 提供了對(duì)字符串進(jìn)行操作的指令,只有用這些指令才可以對(duì)字符串元素、對(duì)其中的字和某個(gè)字的位都可以操作,這是由于 OpenPLC 不允許對(duì)單個(gè)字符串或位進(jìn)行尋址,而只允許對(duì)每個(gè)字符串的第一個(gè)字進(jìn)行尋址,該字是表示字符串所包含的 ASCII 字符的數(shù)目的。第一個(gè)字可以用下列方法尋址:wwSTf:e.LEN其中,f 是文件的序號(hào),而 e 是字符串元素

21、的號(hào)碼。3.2 OpenPLC 的間接尋址和 I/O 尋址間接尋址OpenPLC 提供了間接尋址功能。在間接尋址方式中,本來(lái)代表地址的數(shù)字由一個(gè)表示地址的表達(dá)式來(lái)代替了。例如,間接地址“NB3:4:1”實(shí)際上就表示“N7:1”(條件是 B3:4 位置包含的數(shù)字是 7)。間接尋址的中間參數(shù)必須用方括號(hào)代替。文件號(hào)、字號(hào)、位號(hào)都可以用另外一個(gè)地址的內(nèi)容來(lái)間接表示。而在定時(shí)器、計(jì)數(shù)器和控制結(jié)構(gòu)中,只有數(shù)據(jù)字才能用來(lái)進(jìn)行間接尋址。以下給出一些間接尋址的例子:NN7:1:5 B3:N7:1 B3/N7:1 N9:5/N7:1O:N7:1如果 N7:1 包含的數(shù)為“16” ,表示 N16:5;如果 N7:

22、1 包含的數(shù)為“16” ,表示 B3:16,如果 N7:1 包含的數(shù)為“16” ,表示 B3/16無(wú)效,因?yàn)橹荒茉谖晃募胁拍軐?duì)位進(jìn)行間接尋址。如果 N7:1 包含的數(shù)為“16” ,表示 O:16。C5:B3:1.ACC 如果 B3:1 中的數(shù)為 2,則表示 C5:2.ACCC5:2.B3:1來(lái)表示無(wú)效,因?yàn)樵谟?jì)數(shù)器的狀態(tài)位中,必須以縮寫(xiě)字母75HeILoST9:B3:1.5 ST9:1.B7:1間接尋址是不允許的。SC10:B3:1.TIM無(wú)效。因?yàn)椴荒軐?duì)字符串進(jìn)行間接尋址;無(wú)效,因?yàn)閷?duì)定時(shí)器、計(jì)數(shù)器和控制元件之外的字結(jié)構(gòu)進(jìn)行如果 B3:1 中的數(shù)為 2,則表示 SC10.2。I/O 尋址數(shù)

23、據(jù)文件 0 是指定作為輸出表的數(shù)據(jù)的,尋址時(shí)前面必須加上前綴“O:”。數(shù)據(jù)文件 1 是制定作為輸入八進(jìn)制數(shù)。表的數(shù)據(jù)的,尋址時(shí),要加前綴“I:”,輸入和輸入表的地址采用對(duì) 16 位的輸入輸出表中的數(shù)據(jù)字進(jìn)行尋址的格式如下:p:e其中,前綴 p 是字母 O 或 I,e 是三位的八進(jìn)制數(shù)。頭兩位數(shù)表示邏輯的機(jī)架,最后一位表示 I/O 的分組,即與該表對(duì)應(yīng)的 I/O 模塊的實(shí)際位置。例如,I:123 是在機(jī)架 12 上的第三個(gè)組 I/O 的模塊所對(duì)應(yīng)的輸入表中的對(duì)應(yīng) 16位字的數(shù)據(jù)的地址;又如,O:027 指機(jī)架 02 上的第七個(gè)模塊所對(duì)應(yīng)輸出16 位數(shù)據(jù)的地址。I/O 模塊的單個(gè)位也可以尋址:表中

24、的p:e/dd 指要操作的 16 位數(shù)中的哪一位,該數(shù)為八進(jìn)制數(shù),對(duì) 16 位數(shù)來(lái)說(shuō),地址為 00-07 和 10-17。如,I:123/04,指第 12 個(gè)邏輯機(jī)架的第三個(gè) I/O 組的第 5 位。ww3.3 OpenPLC 對(duì)幾種特殊類型的數(shù)據(jù)文件的尋址方式OpenPLC 的沒(méi)有用的數(shù)據(jù)文件區(qū)可以用來(lái)進(jìn)行各類數(shù)據(jù)的。這里介紹其中的幾種。塊轉(zhuǎn)移結(jié)構(gòu)文件在高端(中型以上的)OpenPLC 的 CPU 模塊中,沒(méi)有使用的數(shù)據(jù)文件可以用來(lái)由六字結(jié)構(gòu)組成的塊轉(zhuǎn)移元素。塊轉(zhuǎn)移元素是用來(lái)當(dāng) CPU 向或者從一個(gè)智能 I/O 器件進(jìn)行數(shù)據(jù)傳送時(shí),用來(lái)控制數(shù)據(jù)的。在塊轉(zhuǎn)移元素中,對(duì)個(gè)別字或位的尋址是不允許通

25、過(guò)數(shù)字進(jìn)行的,他們只能通過(guò)縮寫(xiě)字母來(lái)進(jìn)行尋址。塊轉(zhuǎn)移元素的尋址方式如下:BTf:e為對(duì)于整個(gè)六字結(jié)構(gòu)的尋址,其中,f 是可用的數(shù)據(jù)文件之一,范圍為3-999, e 是該文件的元素,范圍為 0-999。對(duì)于元素中一個(gè) 16 位的數(shù)據(jù)字或者單一的狀態(tài)位。M 是字的縮寫(xiě),包括 RLEN,DLEN, FILE,和 WORD;m 是個(gè)別狀態(tài)位的縮寫(xiě)助記符,包括 EN,ST,DN,ER,CO,EW,NR,TO,RW 等。BTf:e.m短訊控制結(jié)構(gòu)文件在高端(中型以上的)OpenPLC 的 CPU 模塊中,沒(méi)有使用的數(shù)據(jù)文件可以用來(lái)由用來(lái)進(jìn)行短訊控制的 56 字結(jié)構(gòu)。當(dāng)用戶程序中包含 MSG 指令通過(guò) DH

26、+局域網(wǎng)來(lái)發(fā)送或接受數(shù)據(jù)時(shí),MSG 命令必須以下列格式注明短訊控制元素,這樣 OpenPLC 才能用短訊控制方式進(jìn)行的處理:8MGf:ef 是可用的數(shù)據(jù)文件(從 3999),e 是該數(shù)據(jù)文件中 56字的短訊控制元素的號(hào)碼(0-999),56 字結(jié)構(gòu)包括狀態(tài)位和字,這些位和字可以通過(guò)用戶程序中其它的指令來(lái)進(jìn)一步尋址:MGf:e.m位的字。其中, m 是一個(gè)縮寫(xiě)助記符,可以是一個(gè)狀態(tài)位,也可以是一個(gè) 16結(jié)構(gòu)文件在高端(中型以上的)OpenPLC 的 CPU 模塊中,沒(méi)有使用的數(shù)據(jù)文件可以用來(lái)通過(guò)指令進(jìn)行控制的 82 字結(jié)構(gòu)的數(shù)據(jù)。指令和數(shù)據(jù)結(jié)構(gòu)元素將在第 12 章中介紹。用法如下:PDf:e數(shù)據(jù)

27、元素的元素號(hào)碼。f 是一個(gè)可以得到的數(shù)據(jù)文件(3 到 999),e 是該文件中 82 字OpenPLC 的新的用下述方式來(lái)尋址:數(shù)據(jù)元素結(jié)構(gòu)包括數(shù)據(jù)字和狀態(tài)位,以及浮點(diǎn)數(shù)值。每個(gè)值可以PDf:e.m或者一個(gè) 32 位的浮點(diǎn)數(shù)。其中,m 是一個(gè)縮寫(xiě)符,可以是一個(gè)狀態(tài)位,一個(gè) 16 位字,wwSFC 步進(jìn)計(jì)時(shí)器在高端(中型以上的)OpenPLC 的 CPU 模塊中,沒(méi)有使用的數(shù)據(jù)文件可以用來(lái)三字結(jié)構(gòu)的 SFC 步進(jìn)定時(shí)器的數(shù)據(jù)。SFC 步進(jìn)定時(shí)器可以讓編程單元監(jiān)視結(jié)構(gòu)化流程圖的程序,顯示每一步的 SFC 程序的時(shí)間狀態(tài),用戶程序可以對(duì)每一個(gè) SFC 步驟的 SFC 定時(shí)器的單個(gè)字和狀態(tài)位進(jìn)行尋址,

28、格式如下:SCf:eSCf:e.m用來(lái)對(duì)三字結(jié)構(gòu)的計(jì)數(shù)器進(jìn)行尋址用來(lái)對(duì)一個(gè)三字結(jié)構(gòu)的 SFC 的定時(shí)器的數(shù)據(jù)字子元素和狀態(tài)位,m 是縮寫(xiě)助記符,字的縮寫(xiě)包括 PRE 和 TIM,狀態(tài)位的縮寫(xiě)包括 SA,F(xiàn)S,LS,OV,ER,和 DN。本節(jié)完9OpenPLC 對(duì)各類數(shù)據(jù)類型的尋址方式OpenPLC 的 CPU 內(nèi)存中,包括著由程序文件和數(shù)據(jù)文件組成的處理器文件,這些文件是CPU 必須的。其中,程序文件由包含用戶程序和操作系統(tǒng) 組態(tài) 信息,數(shù)據(jù)文件包括用戶的數(shù)據(jù)和程序文件所需要的系統(tǒng) 組態(tài) 數(shù)據(jù)。數(shù)據(jù)文件是一直保留的,只要后備電池沒(méi)有耗盡,即使掉電或者是不在運(yùn)行模式,都不會(huì)丟失,除非是通過(guò)程序有

29、意進(jìn)行改動(dòng)或刪除。這一點(diǎn)是 OpenPLC 與其它 PLC 的不同之處,其它 PLC 的數(shù)據(jù)內(nèi)存是可變內(nèi)存,當(dāng) PLC 不在運(yùn)行模式后,內(nèi)存就被自動(dòng)清除。一、OpenPLC 的常數(shù)和各類數(shù)據(jù)文件OpenPLC 的常數(shù)在 Open PLC 程序 中,常數(shù)可以直接被輸入,不需要尋址,以下是 OpenPLC 可以輸入的常數(shù)類型:1有符號(hào)整數(shù),范圍從-32768 到 32767大的十進(jìn)制數(shù)可以用浮點(diǎn)方式輸入,范圍與下面科學(xué)計(jì)數(shù)的范圍一樣??茖W(xué)計(jì)數(shù)可以采用指數(shù)方式,最大是 32 位數(shù)。按照 IEEE 754 規(guī)定的浮點(diǎn)數(shù)標(biāo)準(zhǔn),可以達(dá)到(1.17549410-38 到3.40282810+38)416 進(jìn)

30、制數(shù),八進(jìn)制,二進(jìn)制和 ASCII 常數(shù)都可以被相關(guān)的 指令 接受,但要加合適的前綴,這些前綴是:a)&H,表示 16 進(jìn)制,范圍從 0 到F,(如,&HFF06)b)&O,表示 8 進(jìn)制數(shù),范圍從 0-177777,(如&O177000)c)&B,表示二進(jìn)制數(shù),位數(shù) CPU 的位數(shù)一樣(如&B0010101111001010)d)&A,表示 ASCII 碼,(如&Ahi)wwOp的數(shù)據(jù)文件OpenPLC 的用戶程序中,只要不是常數(shù)的數(shù)據(jù),都要以數(shù)據(jù)文件的方式放在 OpenPLC一個(gè)字節(jié)的數(shù)據(jù),OpenPLC 中一共有三種基本的數(shù)據(jù)文件:的可尋址內(nèi)存中。每個(gè)數(shù)據(jù)文件用來(lái)OI輸出輸入數(shù)據(jù)字,數(shù)據(jù)

31、字;S狀態(tài)字;包含 OpenPLC 的 組態(tài) 信息和描述 OpenPLC 的運(yùn)行和操作條件的狀態(tài)數(shù)據(jù);除了以上三種數(shù)據(jù)文件外,對(duì)于一些特殊的用戶數(shù)據(jù)類型還有另外的一些數(shù)據(jù)文件。有些是被默認(rèn)用來(lái)作為一些特殊類型的數(shù)據(jù)的文件的,有:B316 位字的位T4 定時(shí)器 數(shù)據(jù)結(jié)構(gòu),每個(gè)有三個(gè)數(shù)據(jù)字C5 計(jì)數(shù)器 數(shù)據(jù)機(jī)構(gòu),每個(gè)有三個(gè)數(shù)據(jù)字R6控制數(shù)據(jù)結(jié)構(gòu),每個(gè)有三個(gè)數(shù)據(jù)字N7F8整數(shù)數(shù)據(jù)字浮點(diǎn)數(shù)其它還有很多不對(duì)應(yīng)數(shù)據(jù)類型的數(shù)據(jù)文件,如對(duì) PPC21 的 10 到 255,PPC31 的 9 到999,這些可以附加的器,可以用來(lái)為、 定時(shí)器 、 計(jì)數(shù)器 、控制元素、整數(shù)、浮點(diǎn)數(shù),或者其它任何下面所描述的數(shù)據(jù)類

32、型。在編程時(shí),輸入一個(gè)數(shù)據(jù)文件的文件號(hào)碼,就會(huì)將該數(shù)據(jù)文件和類型與這個(gè)號(hào)碼對(duì)應(yīng)起來(lái),比如,創(chuàng)建一個(gè)數(shù)據(jù)文件 12,作為一個(gè)附加的位數(shù)據(jù)文件,可以按如下方式寫(xiě)程序:B12/X,或者,B12:x, 或者,B12:x/x這個(gè) 指令 將把文件 12 定下來(lái)用作位(X,必須是一個(gè)有效位或者字地址,位文件的地址結(jié)構(gòu)將在后面敘述)。數(shù)據(jù)文件也可以通過(guò)編程單元的文件生成功能被用來(lái)預(yù)定為特殊的數(shù)據(jù)類型。OpenPLC 的狀態(tài)文件狀態(tài)文件通常是默認(rèn)的。每個(gè) 16 位的狀態(tài)字包含著 OpenPLC 的 組態(tài) 數(shù)據(jù)或者當(dāng)OpenPLC 運(yùn)行和操作時(shí),描述其條件的狀態(tài)數(shù)據(jù)。任何狀態(tài)字都可以被用戶,大多數(shù)狀態(tài)字是動(dòng)態(tài)的,

33、用戶程序可以對(duì)之進(jìn)行改寫(xiě),比如當(dāng)用戶程序運(yùn)行時(shí),希望改變 OpenPLC的 組態(tài) 方式。也有一些狀態(tài)字是靜態(tài)的,它們只能在 OpenPLC 處于編程模式的時(shí)候才能被改變。狀態(tài)字是由下列方式進(jìn)行能夠?qū)ぶ返模篠:e“e”表示一個(gè) 16 位的狀態(tài)字元素的樹(shù)木,(如 S:1,表示一個(gè)數(shù)據(jù)字包含 16 個(gè)處理器的狀態(tài)位)第一個(gè)狀態(tài)字的為 0,最后一個(gè)隨著 OpenPLC 的型號(hào)的不同而不同。單個(gè)的狀態(tài)位也可以用邏輯來(lái)尋址,如:S:e/b作字 1 的最“b”是一個(gè)從 0 到 15 的數(shù),表示要操作的是哪一位(如 S:1/15 表示要操;這個(gè)重要的狀態(tài)位每次當(dāng) OpenPLC 切換到運(yùn)行模式時(shí),每個(gè)掃描周期

34、就增加一次。OpenPLC 的位文件位文件是用來(lái)進(jìn)行位的。文件 3 是被默認(rèn)作為位文件,尋址的前綴是“B3”。前綴“B”也用在其它沒(méi)有使用的文件號(hào)碼上,將該文件作為附加的位文件。當(dāng)用來(lái)作為位件 3 的單個(gè)位通常用下面的方法尋址:時(shí),文B3/bOpenPLC 也允許在位“b”是一個(gè)從 0 到 4096 的數(shù),文件中,用不同的辦法來(lái)尋址位,由于所有的位都是 16 位ww字的一個(gè)組成部分,因此,也可以按下面的方式:B3:e/b其中,“e”是一個(gè)字元素,從 0 到 255, “b”是一個(gè)從 0 到 15 的數(shù),表示該字的某一位。上述兩種方法其實(shí)是一樣的。位文件是由 16 位的數(shù)據(jù)字組成的,這些字也可以

35、作為整個(gè)字來(lái)進(jìn)行處理,整數(shù)據(jù)字可以用如下方式來(lái)尋址和操作:B3:e“e”是一個(gè)從 0 到 255 的字元素,(新的 PPC31 可以從 0 到 999)OpenPLC 的 定時(shí)器 結(jié)構(gòu)文件文件 4 是被缺省地作為 定時(shí)器 的文件的。這個(gè)文件中的所有的數(shù)據(jù)都必須加前綴 T4。每個(gè) 定時(shí)器 元素結(jié)構(gòu)由三個(gè) 16 位數(shù)據(jù)字,安排如圖 4.3。圖 4.3 OpenPLC 的 定時(shí)器 數(shù)據(jù)結(jié)構(gòu)編程時(shí),對(duì)整個(gè) 定時(shí)器 的結(jié)構(gòu)字采用如下方式來(lái)尋址:“e”是一個(gè)從 0 到 255 的 數(shù)字 ,表示三字結(jié)構(gòu)元素的數(shù)量。T4:/e每個(gè) 定時(shí)器 數(shù)據(jù)字結(jié)構(gòu)中的數(shù)據(jù)字也可以作為單獨(dú)的一個(gè)字被尋址,方式如下:T4:e.

36、m其中,“e”是三字結(jié)構(gòu)元素的序號(hào),“m”是按照規(guī)定的區(qū)分各個(gè)數(shù)據(jù)字的代號(hào),如 ACC,表示累計(jì)值,PRE 表示預(yù)先設(shè)定值。如果不用代號(hào),就用序號(hào)也可以,那么,m 就表示 0,1,2,內(nèi)容見(jiàn)圖 4.3。對(duì)于 定時(shí)器 的狀態(tài),可以用如下方式來(lái)尋址定位:T4:e.m其中,m 表示三個(gè)狀態(tài)位的代號(hào),如 TT,DN,EN 等。比如,T4:3.TT就表示 定時(shí)器 3 的 TT 位的狀態(tài)。OpenPLC 的 計(jì)數(shù)器 結(jié)構(gòu)文件文件 5 是被默認(rèn)為 計(jì)數(shù)器 的數(shù)據(jù)結(jié)構(gòu)的。對(duì)這個(gè)文件的數(shù)據(jù)進(jìn)行尋址時(shí),必須加上前綴“C5”,每個(gè)三字結(jié)構(gòu)的格式見(jiàn)圖 4.4。圖 4.4 OpenPLC 的 計(jì)數(shù)器 字結(jié)構(gòu)對(duì) 計(jì)數(shù)器

37、的尋址與 定時(shí)器 的尋址方式類似。見(jiàn)下面:C5:e對(duì)三字結(jié)構(gòu) 計(jì)數(shù)器 元素尋址對(duì)結(jié)構(gòu)中的子元素的一個(gè)字或者狀態(tài)位進(jìn)行尋址。C5:e.m字中的 m 可以是縮寫(xiě)代號(hào),也可以是 數(shù)字 ,但對(duì)狀態(tài)位時(shí),必須是縮寫(xiě)代號(hào)。OpenPLC 的控制結(jié)構(gòu)文件文件 6,是 OpenPLC 預(yù)定作為控制數(shù)據(jù)結(jié)構(gòu)的文件??刂平Y(jié)構(gòu)文件中的數(shù)據(jù)在尋址時(shí)必須加上前綴“R6”(之所以用“R”作為前綴是因?yàn)?,英?CONTROL 的前面在OpenPLC 開(kāi)發(fā)出控制元前,已經(jīng)被用作 計(jì)數(shù)器 、輸出、整數(shù)、 定時(shí)器 了)。三字結(jié)構(gòu)的格式見(jiàn)圖 4.5。* 位 0-7 在后期的 OpenPLC 產(chǎn)品中被用來(lái)圖 4.5 OpenPLC

38、的控制字結(jié)構(gòu)控制數(shù)據(jù)可按如下方式進(jìn)行尋址:錯(cuò)誤代碼。R6:e尋找 3 字的控制器元素R6:e.m尋找三字結(jié)構(gòu)中的某個(gè)字,或者某個(gè)位。如果是對(duì)位進(jìn)行尋址,則必須用該位的縮寫(xiě)代號(hào)。OpenPLC 的整數(shù)文件文件 7 是被預(yù)定作為整數(shù)的區(qū)域的,整數(shù)的范圍是-32768 到。每個(gè)整數(shù)值都存在一個(gè) 16 位的二進(jìn)制數(shù)中。這個(gè)文件中的單個(gè)的數(shù)據(jù)可以采用如下方式尋址:N7:ee 代表文件中的某個(gè)字,范圍是從 0-999。文件中的單個(gè)位也可以采用下列方式尋址:b 是一個(gè)數(shù)據(jù)中位的地址,為從 0 到 15 的整數(shù)。OpenPLC 的浮點(diǎn)數(shù)結(jié)構(gòu)文件N7:e.bww文件 8 是 OpenPLC 默認(rèn)為用來(lái)預(yù)定存放浮

39、點(diǎn)數(shù)的內(nèi)存區(qū)域。浮點(diǎn)數(shù)的范圍是(1.17549410-38 到3.40282810+38),是根據(jù) IEEE754 的浮點(diǎn)數(shù)編碼標(biāo)準(zhǔn)格式來(lái)進(jìn)行編碼的,需要 32 位。因此,每個(gè)浮點(diǎn)數(shù)需要兩個(gè) 16 位的數(shù)據(jù)字,單個(gè)的位和 16位字都無(wú)法被尋址(實(shí)際也沒(méi)有必要),因此,浮點(diǎn)數(shù)的尋址很簡(jiǎn)單:F8:ee 代表元素的號(hào)碼。范圍從 0-999(或從 0-255)。OpenPLC 的 ASCII 字符文件對(duì)于 ASCII 字符文件,OpenPLC 沒(méi)有默認(rèn)的文件,但任何沒(méi)有用到的文件都可以預(yù)定為 ASCII 字符。ASCII 字符包括原始的標(biāo)準(zhǔn)電傳鍵盤(pán)字符集,對(duì)每個(gè)字符,都有一個(gè) 7 位的二進(jìn)制數(shù)對(duì)應(yīng)。A

40、SCII 字符目前是用來(lái)將鍵盤(pán)字符進(jìn)行二進(jìn)制化的最常見(jiàn)的方式。在 OpenPLC 的 ASCII 字符文件中,每個(gè)編碼都存在一個(gè) 16 位字的一半中,因此,一個(gè) 16 位字可以兩個(gè)字符。由于 OpenPLC 不允許對(duì)字節(jié)尋址,因此,每個(gè) ASCII 文件的元素包括兩個(gè) ASCII 字符。ASCII 文件的尋址方式如下:f 代表文件的序號(hào), e 是文件中字的序號(hào)(每個(gè)字是一個(gè) 16 位數(shù),包含兩個(gè) ASCII碼)Af:eAf:e.bb 代表該兩個(gè) ASCII 碼的位的序號(hào),從 0 到 15。OpenPLC 的字符串?dāng)?shù)組文件,OpenPLC 也沒(méi)有默認(rèn)的指定對(duì)于字符串?dāng)?shù)據(jù)的區(qū),但任何沒(méi)有用到的數(shù)據(jù)

41、文件都可以被預(yù)存。每個(gè)字符串由一系列的 42 個(gè) 16 位字的字符集組成,其中,第一個(gè)數(shù)據(jù)字包括一個(gè)描述當(dāng)前該字符串中的 ASCII 字符的實(shí)際數(shù)量的 數(shù)字 。隨后的 16 位字,每個(gè)字都包含兩個(gè) ASCII 字符,如圖 4.6 所示。(圖中顯示的是ASCII 字符,但實(shí)際的是 ASCII 碼)。圖 4.6 OpenPLC 的字符串文件的 ASCII 碼方式。OpenPLC 提供了對(duì)字符串進(jìn)行操作的 指令 ,只有用這些 指令 才可以對(duì)字符串元素、對(duì)其中的字和某個(gè)字的位都可以操作,這是由于 OpenPLC 不允許對(duì)單個(gè)字符串或位進(jìn)行尋址,而只允許對(duì)每個(gè)字符串的第一個(gè)字進(jìn)行尋址,該字是表示字符串所

42、包含的 ASCII 字符的數(shù)目的。第一個(gè)字可以用下列方法尋址:STf:e.LEN其中,f 是文件的序號(hào),而 e 是字符串元素的號(hào)碼。4.3.2 OpenPLC 的間接尋址和 I/O 尋址間接尋址OpenPLC 提供了間接尋址功能。在間接尋址方式中,本來(lái)代表地址的 數(shù)字 由一個(gè)表示地 址的表達(dá)式來(lái)代替了。例如,間接地址“NB3:4:1”實(shí)際上就表示“N7:1”(條件是 B3: 4 位置包含的 數(shù)字 是 7)。間接尋址的中間參數(shù)必須用方括號(hào)代替。文件號(hào)、字號(hào)、位號(hào)都可以用另外一個(gè)地址的內(nèi)容來(lái)間接表示。而在 定時(shí)器 、 計(jì)數(shù)器 和控制結(jié)構(gòu)中,只有數(shù)據(jù)字才能用來(lái)進(jìn)行間接尋址。以下給出一些間接尋址的例子

43、:NN7:1:5B3:N7:1如果 N7:1 包含的數(shù)為“16” ,表示 N16:5;如果 N7:1 包含的數(shù)為“16” ,表示 B3:16,B3/N7:1如果 N7:1 包含的數(shù)為“16” ,表示 B3/16N9:5/N7:1無(wú)效,因?yàn)橹荒茉谖晃募胁拍軐?duì)位進(jìn)行間接尋址。O:N7:1如果 N7:1 包含的數(shù)為“16” ,表示 O:16。C5:B3:1.ACC如果 B3:1 中的數(shù)為 2,則表示 C5:2.ACCC5:2.B3:1無(wú)效,因?yàn)樵?計(jì)數(shù)器 的狀態(tài)位中,必須以縮寫(xiě)字母來(lái)ww度實(shí)而7-必00 E3度E3擴(kuò)亪享 度必 0-3必000 極源的W行解 源的W0極 源線W行解 源線W0 亪亪極

44、源的W0源的W必源的W感源線W0源線W必 源線W0哪E 3擴(kuò) 器 源線W感必實(shí) 而7-必00 E 3度E 3擴(kuò)畝 E 3擴(kuò) 感 度 wE 3擴(kuò) X X 置X X X X極享 穩(wěn) P種C 儈度實(shí)1S7-300 和 S7-400 尋址Addressing for S7-300 and S7-400wSingle - FAQEdition (2010 年-9 月)摘 要 本文對(duì) S7-300, S7-400 PLC 編程過(guò)程中,所涉及的尋址方式方法,做了簡(jiǎn)單介紹及簡(jiǎn)單示例。STEP7, 編程,尋址,間接尋址,S7-300, S7-400Key WordsSTEP7, Programming, Add

45、ressing, Indirection addressing, S7-300,S7-400wIA&DT Service & Support22目錄S7-300 和 S7-400 尋址1S7-300/400 系統(tǒng)145區(qū)域2 S7-300/400 PLC尋址方式2.1 直接尋址55566912絕對(duì)地址:符號(hào)尋址:間接尋址2.2.1器間接尋址寄存器間接尋址FB/FC的指針參數(shù)傳遞wIA&DT Service & Support221 S7-300/400 系統(tǒng)區(qū)域S7 CPU 的系統(tǒng)取數(shù)據(jù)。區(qū)域分為下表中列出的地址區(qū)域。在程序中可以根據(jù)相應(yīng)的地址直接讀wIA&DT Service & Suppo

46、rt22地址區(qū)域可以的地址S7 符號(hào)(IEC)描述過(guò)程映像輸入表輸入(位)I循環(huán)掃描周期開(kāi)始時(shí),CPU 從輸入模板讀輸入值并到該區(qū)域輸入(字節(jié))IB輸入(字)IW輸入(雙字)ID過(guò)程映像輸出表輸出(位)Q在循環(huán)掃描周期中,程序計(jì)算輸出值并到該區(qū)域。循環(huán)掃描周期結(jié)束時(shí),CPU 將計(jì)算結(jié)果寫(xiě)入相應(yīng)的輸出模板輸出(字節(jié))QB輸出(字)QW輸出(雙字)QD位器器(位)M該區(qū)域用于程序的中間計(jì)算結(jié)果器(字節(jié))MB器(字)MW器(雙字)MD定時(shí)器定時(shí)器 (T)T該區(qū)域提供定時(shí)器的計(jì)數(shù)器計(jì)數(shù)器 (C)C該區(qū)域提供計(jì)數(shù)器的數(shù)據(jù)塊數(shù)據(jù)塊,用OPN DB打開(kāi)DB數(shù)據(jù)塊中包含了程序的信息。可以定義為所有邏輯塊共享

47、(shared DBs) 或指定給一個(gè)特定的 FB 或 SFB 做背景數(shù)據(jù)塊(instance DB)。數(shù)據(jù)位DBX數(shù)據(jù)字節(jié)DBB數(shù)據(jù)字DBW數(shù)據(jù)雙字DBD數(shù)據(jù)塊,用OPN DI打開(kāi)DI數(shù)據(jù)位DIX數(shù)據(jù)字節(jié)DIB數(shù)據(jù)字DIW2S7-300/400 PLC 尋址方式.1 直接尋址在 STEP7 程序中可以使用輸入輸出信號(hào)(I/O),位w區(qū)(M),計(jì)數(shù)器(C),計(jì)時(shí)器(T),數(shù)據(jù)塊(DB)以及功能塊(FB)等地址。你可以直接這些絕對(duì)地址,但是如果給絕對(duì)地址以符號(hào)(助記符)程序?qū)⒏鬃x懂(例如 Motor_A_On, 或者根據(jù)你的公司或者工程中的代碼使用別的標(biāo)識(shí)符),而一個(gè)你的用戶程序中的地址也就可

48、以用一個(gè)符號(hào)來(lái)2.1.1 絕對(duì)地址:。絕對(duì)地址由一個(gè)地址標(biāo)識(shí)符和器位置組成。例如 I 0.0,Q 1.7,PIW 256,PQW 512,MD 20,T 15,C 16,DB1.DBB 10,L1 0.0等。2.1.2 符號(hào)尋址:如果給絕對(duì)地址分配符號(hào)可使程序易讀而簡(jiǎn)化故障查找。STEP7 能自動(dòng)翻譯符號(hào)名為要求的絕對(duì)地址。如果你準(zhǔn)備用符號(hào)名數(shù)組,結(jié)構(gòu),數(shù)據(jù)塊,局部變量,邏輯塊及用戶自定義數(shù)據(jù)類型,那么你必須在此之前先分配符號(hào)名給絕對(duì)地址。例如, 你可以分配符號(hào)名Motor_On給地址 Q 4.0,然后在程序語(yǔ)句中使用符名Motor_On作為地址。IA&DT Service & Support

49、22數(shù)據(jù)雙字DID局部數(shù)據(jù)局部數(shù)據(jù)位L該區(qū)域包含塊執(zhí)行時(shí)該塊的臨時(shí)數(shù)據(jù)。L 堆棧還提供用于傳遞塊參數(shù)及梯形邏輯網(wǎng)絡(luò)中間結(jié)果的器局部數(shù)據(jù)字節(jié)LB局部數(shù)據(jù)字LW局部數(shù)據(jù)雙字LD外設(shè)地址 (I/O)外設(shè)輸入字節(jié)PIB主站及分布式從站(DP)外設(shè)輸入輸出區(qū)域允許直接存取輸入外設(shè)輸入字PIW外設(shè)輸入雙字外設(shè)地址 (I/O)外設(shè)輸出字節(jié)PQB輸出外設(shè)輸出字PQW外設(shè)輸出雙字PQD如需在程序中顯示 DB 里所定義的符號(hào),可以給該 DB 塊定義一個(gè)符號(hào)。不能在符號(hào)表給 DB塊中某地址單獨(dú)定義符號(hào)。2.2 間接尋址間接尋址分為器間接尋址和寄存器間接尋址,間接尋址的指針?lè)譃?16 位指針和 32 位指針,而 32

50、 位指針又分為區(qū)域?qū)ぶ放c交叉區(qū)域?qū)ぶ贰?.2.1器間接尋址16 位指針:16 位地址指針用于定時(shí)器、計(jì)數(shù)器、程序塊(DB、FC、FB)的尋址,16 位指針被看作一個(gè)無(wú)符號(hào)整數(shù)(065535),它表示定時(shí)器(T)、計(jì)數(shù)器(C)、數(shù)據(jù)塊(DB、DI)或程序塊(FB、FC)的號(hào),16 位指針的格式如下:圖 1w尋址格式表示為: 區(qū)域標(biāo)識(shí)符 16 位地址指針 例如使一個(gè)計(jì)數(shù)器向上計(jì)數(shù)表示為:CUC MW 上述指令中,C為區(qū)域標(biāo)識(shí)符,而MW20為一個(gè) 16 位指針。16 位指針器間接尋址舉例:/用于定時(shí)器L T A L SD/1MW0 I0.0 S5T#10STMW0/將 1 傳送到 MW0/如果 I0

51、.0 = True/T1 開(kāi)始計(jì)時(shí)上述指令可等同于:IA&DT Service & Support22A LSDI0.0 S5T#10ST1/用于打開(kāi) DB 塊L TOPN20LW20 DBLW20/打開(kāi) DB20/程序調(diào)用L TUC2LW20 FCLW20/調(diào)用 FC2L TUC41DBW30 FBDBW30/調(diào)用 FB41w32 位指針:32 位地址指針用于 I、Q、M、L、數(shù)據(jù)塊等器中位、字節(jié)、字及雙字的尋址,32 位的地址指針可以使用一個(gè)雙字表示,第 0 位第 2 位作為尋址操作的位地址,第 3位第 18 位作為尋址操作的字節(jié)地址,第 19 位第 31 位沒(méi)有定義,32 位指針的格式如

52、下:圖 2器 32 指針僅用于區(qū)域?qū)ぶ?。IA&DT Service & Support22器標(biāo)識(shí)符 32 位地址指針 尋址格式表示為: 地址例如寫(xiě)入一個(gè) M 的雙字表示為:TMD LD0 MD為區(qū)域標(biāo)識(shí)符及寬度,而 LD0 為一個(gè) 32 位指針。32 位區(qū)域指針可用常數(shù)表示, 表示為 P# 字節(jié).位 。如常數(shù)P#10.3為指向第 10 個(gè)字節(jié)第 3 位的指針常數(shù)。若把一個(gè) 32 位整型轉(zhuǎn)換為字節(jié)指針常數(shù),從上述指針格式可以看出,應(yīng)要把該數(shù)(或是乘 8)即可。3 位如:L 3LD0L#100/Accu0 裝入 32 位整形 100SLDT/3 位/LD0 得到 P#100.0 指針常數(shù)32 位器

53、間接尋址舉例:wDB 塊間接尋址舉例OPN OPN L SLDTDB DI 43MD13/打開(kāi) DB1。/打開(kāi) DB3,最多可以同時(shí)打開(kāi)兩個(gè) DB 塊。/裝載 4 到累加器 1 中。/累加器 1 中數(shù)值3 位。20/將邏輯操作結(jié)果傳送到 MD20 中,MD20/包含地址指針為 P#4.0。/將地址指針 P#20.0 裝載到 MD24 中。L T L T L L+ILP#20.0MD 320 MD DBWDBW24/320 轉(zhuǎn)換指針為 P#40.0 并裝載到 MD28 中。28MD 20MD 24/裝載 DB1.DBW4。/裝載 DB1.DBW20。/相加/裝載 DB3.DBW40。DIWMD

54、28IA&DT Service & Support22-IT JZ/相減。/將運(yùn)算結(jié)果傳送到 DB3.DBW2 中。DIW2m1/M L TTOPN L NEXT: LL=I JC LLD T LLOOPm1: JCN LL/D+ Tm2:器連續(xù)區(qū)域操作0MW MD DB100TMW DBW/初始化 MW100 和 MD4。10041/打開(kāi) DB1。/循環(huán)操作的次數(shù),100 次。/將循環(huán) 100 次裝載到 MW100 中,固定格式。MW 2MD 4100/進(jìn)行比較的數(shù)值于 MW2。/與 DB 塊中的值進(jìn)行比較,開(kāi)始地址為 DBW0。/如果數(shù)值相等跳到 m1。m1 MDP#2.04/將地址指針加

55、 2(每個(gè)相鄰的字地址相差 2)。wMD MW NEXT FPm2MD P#2.04100/次數(shù)減 1,跳回 next,如果 MW100 等于 0,跳/出循環(huán)操作 LOOP 指令,LOOP 指令固定格式。M10.0/如果數(shù)值相當(dāng),MD4 指針的數(shù)據(jù),將轉(zhuǎn)換為數(shù)組/的位置(地址值/P#2.0)+1)值于 MD8 中。4L#1 MDNOP802.2.2 寄存器間接尋址通過(guò) CPU 的地址寄存器 AR1 和 AR2 尋址方式稱為寄存器間接尋址,分為和交叉區(qū)域?qū)ぶ?。使用寄存器間接尋址方式的程序語(yǔ)句包含以下部分:區(qū)域間接尋址IA&DT Service & Support22指令,地址標(biāo)識(shí)符,地址寄存器標(biāo)

56、識(shí)符,偏移量AR1,AR2 均為 32 位寄存器,寄存器間接尋址只使用 32 位指針。與 ARx 相關(guān)的指令有:LAR1, LAR2, TAR1, TAR2, +AR1, +AR2, LAR1 AR2, CAR 等。以上指令使用請(qǐng)參考手冊(cè):開(kāi)始 - (所有)程序 - SIMATIC -STEP 7 Sement List for S7-300 and S7-400?;螯c(diǎn)擊該手冊(cè)中文版ation - English -區(qū)域寄存器間接尋址指針格式與器間接尋址的 32 位指針相同,第 0 位第 2 位作為尋址操作的位地址,第 3位第 18 位作為尋址操作的字節(jié)地址,第 19 位第 31 位沒(méi)有定義,

57、32 位指針的格式如下:w圖 3間接尋址表示為:器標(biāo)識(shí)符 ARx, 地址偏移量 如:LMWAR1, P#2.0MW為被寬度,AR1為地址寄存器 1,P#2.0 為地址偏移量。的器及區(qū)域寄存尋址舉例:/DB 塊寄存器尋址OPNDBLAR1 P#10.01/打開(kāi) DB1。/將指針 P#10.0 裝載到地址寄存器 1 中。IA&DT Service & Support22L LAR1 L+ILAR2 TDBWMD DBWAR1, P#12.0 20AR1, P#0.0/將 DBW22 裝載到累加器 1 中。/將于 MD20 中的指針裝載到地址寄存器 1 中。/將 DBW 裝載到累加器 1 中,地址于

58、 MD20 中。P#40.0DBWAR2, P#0.0/將指針 P#40.0 裝載到地址寄存器 2 中。/運(yùn)算結(jié)果傳送到 DBW40 中。/DI、DO 區(qū)寄存器尋址L LAR1 A=P#8.7/裝載指向第 8 字節(jié)第 7 位的指針值到累加器 1/累加器 1 中的指針裝載到 AR1/查詢 I8.7 的信號(hào)狀態(tài)/給輸出位 Q10.0 賦值IQAR1, P#0.0AR1, P#1.1交叉區(qū)域寄存器間接尋址包含有器區(qū)域信息的指針,稱為交叉區(qū)域指針。同樣,交叉區(qū)域指針為 32 位,寄存器間接尋址要使用地址寄存器 AR1 或 AR2。2 位交叉區(qū)域指針,018 位格式與 32 位區(qū)域指針相同,1923 位

59、,2730 位w未定義,31 位為交叉區(qū)域指針標(biāo)識(shí)位。2426 位是000001010011100101110111區(qū)域地址標(biāo)識(shí),8 中組合表示 8 種表示沒(méi)有地址區(qū),例如 P#12.0; 表示輸入地址區(qū) I,例如P#I12.0;表示輸出地址區(qū) Q,例如 P#Q12.0;表示標(biāo)志位地址區(qū) M,例如 P#M12.0;器區(qū)域:表示數(shù)據(jù)塊(DB)中的數(shù)據(jù),例如 P#DB1.DBX12.0表示數(shù)據(jù)塊(DI)中的數(shù)據(jù),例如 P#DI1.DIX12.0 表示區(qū)域地址區(qū) L,例如 P#L12.0;表示調(diào)用程序塊的區(qū)域地址區(qū) V,例如 P#V12.0;交叉區(qū)域指針格式如下:IA&DT Service & Su

60、pport22圖 4交叉區(qū)域指針常數(shù)表達(dá)為:P#器 字節(jié) . 位例如: P#Q10.5P#DB1.DBX32.0/指向 Q 區(qū)第 10 字節(jié)第 5 位的指針常/指向 DB1 區(qū)域的第 32 字節(jié)第 0 位的指針常數(shù)交叉區(qū)域?qū)ぶ繁硎緸椋簩挾?ARx, 偏移量 例如: LW為W AR2, P#1.0 寬度,AR2 為地址寄存器 2,P#1.0 為偏移量。w交叉區(qū)域間接尋址舉例:/M LLAR1L T區(qū)P#M20.01234W AR1, P#2.0/I LLAR2L T區(qū)P#I0.0W AR2, P#0.0 MW02.2.3 FB/FC 的指針參數(shù)傳遞IA&DT Service & Support2

溫馨提示

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