官术网_书友最值得收藏!

第3章 基本邏輯指令的應用

3.1 指令基礎

3.1.1 指令的基本知識

1.指令的組成

指令是組成程序的最小獨立單位,用戶程序由若干條順序排列的指令構成。指令一般由操作碼和操作數組成,其中的操作碼表示指令要完成的具體功能,操作數則是該指令操作或運算的對象。例如,對于STL指令“A I0.0”,其中“A”是操作碼,表示該指令的功能是邏輯“與”操作;“I0.0”是操作數,也就是數字量輸入模塊的第0字節的第0位;該指令的功能就是對I0.0進行“與”操作。

2.變量、常數及其數據類型

指令操作數既可以是變量,也可以是常量或常數。如果指令的操作數是變量,則該變量既可以用絕對地址表示,也可以用符號地址表示。絕對地址是數字地址;符號地址是用戶在符號表或聲明表中定義的與絕對地址相對應并具有一定意義的字符串。

(1)變量的絕對地址

二維碼3-1 變量的絕對地址

對于一個信號輸入模塊或輸出模塊而言,每個輸入/輸出點或輸入/輸出通道的絕對地址都是確定的,可以采用系統默認地址,也可以由用戶在硬件組態時為模塊指定起始地址。但對數字量信號和模擬量信號的表示是有區別的。

數字量信號包含二進制“位”信息,該“位”信息可以是一個限位開關、按鈕等操作機構對數字量輸入模塊的輸入信號,也可以是數字量輸出模塊對指示燈、接觸器等執行機構的輸出信號。

模擬量信號包含16位信息,對應模擬量信號模塊的一個通道,在PLC中用1字(Word)或2 B(Byte)表示。

PLC中的數字量信號以布爾(BOOL)類型存儲,而模擬量信號則以整數(INT)或者實數(REAL)類型存儲。在STEP 7中有如下4種數據類型長度可以被變量的絕對地址引用。

1)1位(Bit)適用于布爾數據類型。布爾類型變量通過一個變量標識符、一個字節數字、一個間隔符(小數點)和一個位數字來引用一個絕對地址。字節數字的編號從每個存儲區域的0地址開始,其上限受CPU限制;位數字范圍是0~7。例如:I1.0表示數字量輸入區域的第1 B的第0位;Q16.4表示數字量輸出區域的第16 B的第4位。

2)8位適用于字節(BYTE)類型或其他長度為8位的布爾數據類型。字節類型變量通過一個地址標識符B和一個字節數字編號來引用一個絕對地址。例如:IB2表示數字量輸入區域的第2 B;QB18表示數字量輸出區域的第18 B。

3)16位適用于字(WORD)類型或其他長度為16位的數據類型。字類型變量通過一個地址標識符W和一個字數字編號來引用一個絕對地址。1字由2B組成,其中高地址字節位于字的低位,低地址字節位于字的高位。為了避免兩個字變量出現字節重疊,一般規定字的地址用偶數表示。例如:IW4表示數字量輸入區域地址是4的字,它包含IB4(高字節)和IB5(低字節);QW20表示數字量輸出區域地址是20的字,它包含QB20(高字節)和QB21(低字節)。

4)32位適用于雙字(DWORD)類型或其他長度為32位的數據類型。雙字類型變量通過一個地址標識符D和一個雙字數字編號來引用一個絕對地址。1雙字由4字節組成,其中最高地址字節位于雙字的最低位,最低地址字節位于雙字的最高位。為了避免兩個雙字變量出現字節重疊,一般規定雙字的地址用4的倍數表示。例如:ID8表示數字量輸入區域地址是8的雙字,它包含IB8(高字節)、IB9(次高字節)、IB10(次低字節)和IB11(低字節);QD24表示數字量輸出區域地址是24的雙字,它包含QB24(高字節)、QB25(次高字節)、QB26(次低字節)和QB27(低字節)。字節、字及雙字的關系如圖3-1所示。

圖3-1 字節、字及雙字的關系

(2)變量的符號地址

符號地址就是用戶給絕對地址所起的名字(字符串),可以用來代替對應的絕對地址。符號必須先定義再使用,定義的符號可以由大小寫字母、數字及下劃線構成,且必須以字母開頭,長度不超過24個字符,所定義的符號不能是系統關鍵詞。根據使用場合不同,符號分為全局符號和局部符號。

● 全局符號:SIMATIC Manager的符號表中定義的符號,可以適用于所有的程序塊。

● 局部符號:在某個程序塊(OB、FC、FB等)的變量聲明表中定義的符號,只能應用于該程序塊。如果定義的局部符號與全局符號重名,該局部符號前會自動添加一個“#”。

(3)常數及其數據類型

常數是預先給定的數據。在STEP 7中,每個常數都有一個前綴來表示其數據類型。

數據類型決定數據的屬性。在STEP 7中,數據類型分為3大類:基本數據類型、復雜數據類型和參數類型。

1)基本數據類型:用于定義不超過32位的數據(符合IEC1133-3的規定),可以裝入S7處理器的累加器中,利用STEP 7基本指令處理。基本數據有布爾型(BOOL)、整數型(INT)、實數型(REAL)和BCD碼4種類型,具體分為16種,每一個數據類型都具備關鍵詞、數據長度、取值范圍及常數表示形式等屬性,表3-1列出了S7-300 PLC支持的基本數據類型。

表3-1 S7-300 PLC支持的基本數據類型

在表3-1中,布爾數據為無符號數據,可以是一個位(Bit)、一個字節(B)、一個字(W)和一個雙字(D),可以用二進制或十六進制表示。

整數數據為有符號數據,其最高位為符號位,0為正數,1為負數,用二進制補碼表示,正數的補碼是它本身,負數的補碼是各位取反后再加1。有16位整數和32位雙整數兩種,取值范圍是-32768~+32767(16位)或-2147483648~+2147483647(32位)。

實數數據為32位有符號的浮點數,其最高位為符號位,0為正數,1為負數。浮點數的優點是用有限的存儲空間可以表示一個非常大或非常小的數。浮點數的數據范圍為:±1.175 495 × 10-38~±3.402 823 × 10+38

2)復雜數據類型:用于定義超過32位或由其他數據類型組成的數據。復雜數據類型要預定義,其變量只能在全局數據塊中聲明,可以作為參數或邏輯塊的局部變量。STEP 7支持數組(ARRAY)、結構(STRUCT)、字符串(STRING)、日期和時間(DATE_AND_TIME)、用戶定義的數據類型(UDT)、功能塊類型(FB、SFB)等6種復雜數據類型。STEP 7的指令不能一次處理一個復雜的數據類型(大于32位),但是一次可以處理一個元素。

3)參數類型:是一種用于邏輯塊(FB、FC)之間傳遞參數的數據類型,主要有定時器(TIMER)、計數器(COUNTER)、塊(BLOCK)、6B指針(POINTER)和10B指針(ANY)等類型。

3.S7-300系列PLC用戶存儲區的分類及功能

二維碼3-2 用戶存儲區的分類

PLC的用戶存儲區在使用時必須按功能區分使用,所以在學習指令之前必須熟悉存儲區的分類、表示方法、操作及功能。S7-300系列PLC的存儲區域的劃分、功能、訪問方式及標識符如表3-2所示。

表3-2 S7-300系列PLC的存儲區域的劃分、功能、訪問方式及標識符

3.1.2 尋址方式和累加器

1.操作數的尋址方式

所謂尋址方式就是指令執行時獲取操作數的方式,可以用直接或間接方式給出操作數。STEP 7系統支持4種尋址方式:立即尋址、存儲器直接尋址、存儲器間接尋址和寄存器間接尋址。

(1)立即尋址

立即尋址是對常數或常量的尋址方式,其特點是操作數直接表示在指令中,或以唯一形式隱含在指令中。下面各條指令操作數均采用了立即尋址方式,其中“//”后面的內容為指令的注釋部分,對指令的功能及執行沒有任何影響。

(2)存儲器直接尋址

存儲器直接尋址簡稱為直接尋址。該尋址方式是在指令中直接給出操作數的存儲單元地址。存儲單元地址可用符號地址(如SB1、KM等)或絕對地址(如I0.0、Q4.1等)。下面各條指令操作數均采用了直接尋址方式。

(3)存儲器間接尋址

存儲器間接尋址簡稱為間接尋址。該尋址方式是在指令中以存儲器的形式給出操作數所在存儲器單元的地址,也就是說該存儲器的內容是操作數所在存儲器單元的地址。該存儲器一般稱為地址指針,在指令中需寫在方括號“[ ]”內。地址指針可以是字或雙字,對于地址范圍小于65 535的存儲器(如T、C、DB、FB、FC等)可以用字指針;對于其他存儲器(如I、Q、M等)則要使用雙字指針。如果要用雙字指針訪問字節、字或雙字存儲器,必須保證指針的位編號為0。存儲器間接尋址的雙字指針的格式如圖3-2所示。其中,位0~2的(xxx)為被尋址地址中位的編號(0~7),位3~18為被尋址地址的字節的編號(0~65 535)。

圖3-2 存儲器間接尋址的雙字指針的格式

【例3-1】 存儲器間接尋址單字格式的指針尋址實例。

【例3-2】 存儲器間接尋址雙字格式的指針尋址實例。

(4)寄存器間接尋址

寄存器間接尋址簡稱為寄存器尋址。該尋址方式是在指令中通過地址寄存器和偏移量間接獲取操作數,其中的地址寄存器及偏移量必須寫在方括號“[ ]”內。在S7-300 PLC中有兩個地址寄存器AR1和AR2,用地址寄存器的內容加上偏移量形成地址指針,并指向操作數所在的存儲器單元。地址寄存器的地址指針有兩種格式,其長度均為雙字,寄存器間接尋址的雙字指針格式如圖3-3所示。其中,位0~2的(xxx)為被尋址地址中位的編號(0~7),位3~18為被尋址地址中字節的編號(0~65 535),位24~26的(rrr)為被尋址地址的區域標識號,位31的x=0為區域內的間接尋址,x=1為區域外的間接尋址。

圖3-3 寄存器間接尋址的雙字指針格式

第1種地址指針格式包括被尋址數據所在存儲單元地址的字節編號和位編號,至于對哪個存儲區尋址,則必須在指令中明確給出。這種格式適用于在確定的存儲區內尋址,即區域內寄存器間接尋址。

第2種地址指針格式包含了數據所在存儲區的說明位(存儲區域標識位),可通過改變標識位實現跨區域尋址,區域標識由位26~24確定,地址指針區域標識位的含義如表3-3所示。這種指針格式適用于區域間寄存器間接尋址。

表3-3 地址指針區域標識位的含義

2.累加器

累加器是用于處理字節、字或雙字的32位累加器。S7-300 PLC有兩個累加器(累加器ACCU1和累加器ACCU2),可以把操作數送入累加器,并在累加器中進行運算和處理。處理8位或16位數據時,數據放在累加器中的低位(右對齊),空出的高位用0填補。

主站蜘蛛池模板: 湟源县| 达孜县| 郎溪县| 增城市| 新乡市| 两当县| 仲巴县| 晋江市| 兴和县| 育儿| 洪雅县| 盐山县| 徐闻县| 深泽县| 荥阳市| 星座| 龙岩市| 天峻县| 徐州市| 小金县| 上饶县| 镇原县| 敖汉旗| 许昌县| 确山县| 喀什市| 霍州市| 孙吴县| 泰和县| 苍梧县| 连山| 宜兰县| 乌拉特后旗| 长岛县| 阿鲁科尔沁旗| 玉门市| 醴陵市| 武陟县| 昌黎县| 武威市| 富顺县|