秦皇西門子SMART200系列代理商 秦皇西門子SMART200系列代理商
潯之漫 智控技術(shù)有限公司 上海詩慕自動化設(shè)備有限公司
本公司銷售西門子自動化產(chǎn)品,*,質(zhì)量保證,價(jià)格優(yōu)勢
西門子PLC,西門子觸摸屏,西門子數(shù)控系統(tǒng),西門子軟啟動,西門子以太網(wǎng)
西門子電機(jī),西門子變頻器,西門子直流調(diào)速器,西門子電線電纜
我公司大量現(xiàn)貨供應(yīng),價(jià)格優(yōu)勢,*,德國*
西門子S7-300/400比較指令
比較指令用于比較累加器1與累加器2中的數(shù)據(jù)大小(見表3-7),被比較的兩個數(shù)的數(shù)據(jù)類型應(yīng)該相同,數(shù)據(jù)類型可以是整數(shù)、雙整數(shù)或浮點(diǎn)數(shù)(即實(shí)數(shù))。如果比較的條件滿足,則RLO為1,否則為0。狀態(tài)字的CC0和CC1位用來表示兩個數(shù)的大于、小于和等于關(guān)系。
比較指令影響狀態(tài)字,用指令測試狀態(tài)字的有關(guān)位,可以得到更多的信息。
整數(shù)比較指令用來比較兩個整數(shù)字的大小,指令助記符中用I表示整數(shù)。
雙整數(shù)比較指令用來比較兩個雙字的大小,指令助記符中用D表示雙整數(shù)。
浮點(diǎn)數(shù)比較指令用來比較兩個浮點(diǎn)數(shù)的大小,指令助記符中用R表示浮點(diǎn)數(shù)。
表3-7 比較指令
語句表 | 梯形圖 | 描述 |
?I | CMP?I | 比較累加器2和累加器1低字中的整數(shù)是否==,<>,>,<,>=,<=,如果條件滿足,RLO=1 |
?D | CMP?D | 比較累加器2和累加器1中的雙整數(shù)是否==,<>,>,<,>=,<=,如果條件滿足,RLO=1 |
?R | CMP?R | 比較累加器2和累加器1中的浮點(diǎn)數(shù)是否==,<>,>,<,>=,<=,如果條件滿足, RLO=1 |
表3-7中的“?”可以取==、<>、>、<、>=和<=。
下面是比較兩個浮點(diǎn)數(shù)的例子:
L MD 4 //MD4中的浮點(diǎn)數(shù)裝入累加器1
L 2. 345E+02 //累加器1的值裝入累加器2,浮點(diǎn)數(shù)常數(shù)裝入累加器1
>R //比較累加器1和累加器2的值
= Q 4.2 //如果MD4>234.5,則Q4.2為1
梯形圖的方框比較指令用來比較兩個同類型的數(shù),與語句表的比較指令類似,可以比較整數(shù)(I)、雙整數(shù)(D)和浮點(diǎn)數(shù)(R)。在使能輸入信號為1時,比較IN1和IN2輸入的兩個操作數(shù)。方框比較指令在梯形圖中相當(dāng)于一個常開觸點(diǎn),可以與其他觸點(diǎn)串聯(lián)和并聯(lián)。如果被比較的兩個數(shù)滿足指令的大于、等于、小于等條件,比較結(jié)果為“真”,等效觸點(diǎn)閉合,指令框才有可能有能流流過。如果圖3-54中I0.6的常開觸點(diǎn)閉合,且MW2<=MW4,Q4.1被置位為1。
圖3-54 比較指令
梯形圖中比較指令框的輸入和輸出均為BOOL變量,可以取I、Q、M、L和D;被比較數(shù)IN1和IN2的數(shù)據(jù)長度與指令有關(guān),可以取整數(shù)、雙整數(shù)和浮點(diǎn)數(shù)。數(shù)據(jù)類型為I、Q、M、L、D或常數(shù)。
1)使用SFC 20“BLKMOV”(塊移動),可將源存儲區(qū)的內(nèi)容復(fù)制到目標(biāo)存儲區(qū)。源區(qū)域與目標(biāo)區(qū)域不能交叉。下面是使用SFC 20傳送20個字節(jié)的例子。
CALL "BLKMOV” //調(diào)用SFC 20
SRCBLK :=P#M 54.0 BYTE 20 //源存儲器區(qū)
RET_VAL:=MW10 //執(zhí)行SFC 20出錯時的錯誤代碼
DSTBLK :=P#DB2.DBX0.0 BYTE 20//目標(biāo)存儲器區(qū)
2)使用SFC 21“FILL”,可以將源數(shù)據(jù)區(qū)的數(shù)據(jù)填充到目標(biāo)數(shù)據(jù)區(qū)。假設(shè)MB20和MB21的值為7和5,執(zhí)行下面的例程后DB2的DBB30~DBB34的值分別為7、5、7、5和7。源區(qū)域與目標(biāo)區(qū)域不能交叉。
CALL "FILL" //調(diào)用SFC 21
BVAL :=P#M 20.0 BYTE 2 //源存儲器區(qū)
RET_VAL:=MW12 //執(zhí)行SFC 21出錯時的錯誤代碼
BLK :=P#DB2.DBX30.0 BYTE 5 //目標(biāo)存儲器區(qū)
3) SFC 81“UBLKMOV”(不間斷的塊移動)與SFC 20的功能和使用方法基本上相同,SFC 81的復(fù)制操作不會被其他操作系統(tǒng)的任務(wù)打斷。
梯形圖的傳送指令(見圖3-53)只有一條MOVE指令,它直接將源數(shù)據(jù)傳送到目的地址,不需經(jīng)過累加器中轉(zhuǎn)。輸入變量和輸出變量可以是8位、16位或32位的基本數(shù)據(jù)類型。同一條指令的輸入變量和輸出變量的數(shù)據(jù)類型可以不相同,例如可以將MB0中的數(shù)據(jù)傳送到MW2。如果將MW4的數(shù)據(jù)傳送到MB6時,MW4中的數(shù)據(jù)超過255,只是將MW4的低位字節(jié)(MB5)中的數(shù)據(jù)傳送到MB6,應(yīng)避免出現(xiàn)這種情況。
被尋址地址中位的編號(0~7),第3~18位為被尋址地址的字節(jié)的編號。第24~ 26位(rrr)為被尋址地址的區(qū)域標(biāo)識號(見表3-6),第31位x為0則為區(qū)域內(nèi)的間接尋址,為1則為區(qū)域間的間接尋址。
表3-6 區(qū)域間寄存器間接尋址的區(qū)域標(biāo)識號
區(qū)域標(biāo)識符 | 存儲區(qū) | 二進(jìn)制數(shù)rrr |
I | 過程映像輸入 | 001 |
Q | 過程映像輸出 | 010 |
M | 位存儲區(qū) | 011 |
DB | 共享數(shù)據(jù)塊 | 100 |
DI | 背景數(shù)據(jù)塊 | 101 |
L | 局部數(shù)據(jù)(L堆棧) | 110 |
V | 上一級賦值的局部數(shù)據(jù) | 111 |
如果要用寄存器指針訪問一個字節(jié)、字或雙字,必須保證指針的位地址編號為0。
*種地址指針格式包括被尋址數(shù)值所在的存儲單元地址的字節(jié)編號和位編號,存儲區(qū)的類型在指令中給出。這種指針格式適用于在某一存儲區(qū)內(nèi)尋址。第24~26位(rrr)和第31位應(yīng)為0。下面是區(qū)域內(nèi)間接尋址的例子:
L P#5.0 //將間接尋址的指針裝入累加器1
L AR1 //將累加器l的內(nèi)容送到地址寄存器1
A M[ AR1,P#2.3] //AR1中的P#5.0加偏移量P#2.3,對M7.3進(jìn)行操作
= Q[ AR1,P#0.2] //邏輯運(yùn)算的結(jié)果送Q5.2
L DBW[AR1,P#18.0] //將DBW23裝入累加器1
指針常數(shù)#P5.0對應(yīng)的二進(jìn)制數(shù)為2#0000 0000 0000 0000 0000 0000 0010 1000。
第二種地址指針格式的第24~26位還包含了說明數(shù)值所在存儲區(qū)的存儲區(qū)域標(biāo)識符的編號rrr,這種指針格式用于區(qū)域間寄存器間接尋址。下面是區(qū)域間間接尋址的例子:
L P#M6.0 //將存儲器位M6.0的雙字地址裝入累加器1
LAR1 //將累加器1的內(nèi)容送到地址寄存器1
L W[ AR1,P#50.0] //將存儲器字MW56的內(nèi)容傳送到累加器l
P#M6.0對應(yīng)的二進(jìn)制數(shù)為2#1000 0011 0000 0000 0000 0000 0011 0000。因?yàn)榈刂分羔?/span>P#M6.0已經(jīng)包含有區(qū)域信息,使用間接尋址的指令“L W[AR1,P#50]”時沒有必要再使用地址標(biāo)識符M。