酒泉西門子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ì),,*,,德國*
比較指令影響狀態(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ù)長度與指令有關(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ǔ)單元。