酒泉西門子S7-200代理商 酒泉西門子S7-200代理商
潯之漫智控技術(shù)有限公司 上海詩慕自動(dòng)化設(shè)備有限公司
本公司銷售西門子自動(dòng)化產(chǎn)品,*,質(zhì)量保證,價(jià)格優(yōu)勢(shì)
西門子PLC,西門子觸摸屏,西門子數(shù)控系統(tǒng),西門子軟啟動(dòng),西門子以太網(wǎng)
西門子電機(jī),西門子變頻器,西門子直流調(diào)速器,西門子電線電纜
我公司大量現(xiàn)貨供應(yīng),價(jià)格優(yōu)勢(shì),*,德國(guó)*
比較指令影響狀態(tài)字,用指令測(cè)試狀態(tài)字的有關(guān)位,可以得到更多的信息。
整數(shù)比較指令用來比較兩個(gè)整數(shù)字的大小,指令助記符中用I表示整數(shù)。
雙整數(shù)比較指令用來比較兩個(gè)雙字的大小,指令助記符中用D表示雙整數(shù)。
浮點(diǎn)數(shù)比較指令用來比較兩個(gè)浮點(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中的“?”可以取==、<>、>、<、>=和<=。
下面是比較兩個(gè)浮點(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
梯形圖的方框比較指令用來比較兩個(gè)同類型的數(shù),與語句表的比較指令類似,可以比較整數(shù)(I)、雙整數(shù)(D)和浮點(diǎn)數(shù)(R)。在使能輸入信號(hào)為1時(shí),比較IN1和IN2輸入的兩個(gè)操作數(shù)。方框比較指令在梯形圖中相當(dāng)于一個(gè)常開觸點(diǎn),可以與其他觸點(diǎn)串聯(lián)和并聯(lián)。如果被比較的兩個(gè)數(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ù)長(zhǎng)度與指令有關(guān),可以取整數(shù)、雙整數(shù)和浮點(diǎn)數(shù)。數(shù)據(jù)類型為I、Q、M、L、D或常數(shù)。
1)使用SFC 20“BLKMOV”(塊移動(dòng)),可將源存儲(chǔ)區(qū)的內(nèi)容復(fù)制到目標(biāo)存儲(chǔ)區(qū)。源區(qū)域與目標(biāo)區(qū)域不能交叉。下面是使用SFC 20傳送20個(gè)字節(jié)的例子。
CALL "BLKMOV” //調(diào)用SFC 20
SRCBLK :=P#M 54.0 BYTE 20 //源存儲(chǔ)器區(qū)
RET_VAL:=MW10 //執(zhí)行SFC 20出錯(cuò)時(shí)的錯(cuò)誤代碼
DSTBLK :=P#DB2.DBX0.0 BYTE 20//目標(biāo)存儲(chǔ)器區(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 //源存儲(chǔ)器區(qū)
RET_VAL:=MW12 //執(zhí)行SFC 21出錯(cuò)時(shí)的錯(cuò)誤代碼
BLK :=P#DB2.DBX30.0 BYTE 5 //目標(biāo)存儲(chǔ)器區(qū)
3) SFC 81“UBLKMOV”(不間斷的塊移動(dòng))與SFC 20的功能和使用方法基本上相同,SFC 81的復(fù)制操作不會(huì)被其他操作系統(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時(shí),MW4中的數(shù)據(jù)超過255,只是將MW4的低位字節(jié)(MB5)中的數(shù)據(jù)傳送到MB6,應(yīng)避免出現(xiàn)這種情況。
圖3-53 傳送指令
可以用L指令將定時(shí)器字的十六進(jìn)制剩余時(shí)間值裝入累加器1的低字,稱為直接裝載。也可以用LC指令以BCD碼格式將剩余時(shí)間值裝入累加器1的低字。使用LC指令可以同時(shí)獲得時(shí)間值和時(shí)間基準(zhǔn),時(shí)間基準(zhǔn)與時(shí)間值相乘得到實(shí)際的定時(shí)剩余時(shí)間。
可以用L指令將十六進(jìn)制計(jì)數(shù)值裝入累加器1的低字,或用LC指令將BCD碼格式的計(jì)數(shù)值裝入累加器1的低字。
L T 5 //將定時(shí)器T5中的十六進(jìn)制時(shí)間值裝入累加器1的低字
LC T 5 //將定時(shí)器T5中的BCD碼格式的時(shí)間值裝入累加器1的低字
C 3 //將計(jì)數(shù)器C3中的十六進(jìn)制計(jì)數(shù)值裝入累加器1的低字
LC C 16 //將計(jì)數(shù)器C16中的BCD碼格式的計(jì)數(shù)值裝入累加器1的低字。
S7中有兩個(gè)地址寄存器AR1和AR2,通過它們可以對(duì)各存儲(chǔ)區(qū)的存儲(chǔ)器內(nèi)容作寄存器間接尋址。地址寄存器的內(nèi)容加上偏移量形成地址指針,后者指向數(shù)據(jù)所在的存儲(chǔ)單元。