產(chǎn)品分類品牌分類
-
西門(mén)子安裝導(dǎo)軌 西門(mén)子模塊 西門(mén)子DP接頭/插頭 西門(mén)子內(nèi)存卡 西門(mén)子PLC模塊 西門(mén)子電池/電源 西門(mén)子S7-1500 西門(mén)子S7-200模塊 西門(mén)子S7-300模塊 西門(mén)子觸摸屏 西門(mén)子變頻器 西門(mén)子S7-1200 西門(mén)子開(kāi)關(guān)量輸出模塊 西門(mén)子模擬量輸入模板 西門(mén)子網(wǎng)卡及電纜 西門(mén)子S7-400模塊 西門(mén)子400 CPU模塊 西門(mén)子400 電源模塊 西門(mén)子SMART PLC模塊 西門(mén)子電線電纜 西門(mén)子通信卡,網(wǎng)卡 西門(mén)子連接器
S7-200SMART常用指令(二)
在上一期|分享| S7-200SMART常用指令(一)的加法指令后,接著減法指令也是一樣,都有為零 、溢出及結(jié)果為負(fù)的特殊寄存器,同樣分別是SM1.0 /SM1.1 /SM1.2 三個(gè)
減法指令
減法指令分別有整數(shù)型、雙整數(shù)型及實(shí)數(shù)型,如下圖所示
乘法指令
乘法指令同樣可以使用常數(shù),也可以使用寄存器;對(duì)于乘法指令來(lái)說(shuō),MUL指令表示兩個(gè)16位存儲(chǔ)空間的數(shù)相乘得到一個(gè)32位的結(jié)果
MUL_DI表示兩個(gè)32位存儲(chǔ)空間的數(shù)相乘得到一個(gè)32位的結(jié)果
MDL_I表示兩個(gè)16位存儲(chǔ)空間的數(shù)相乘得到一個(gè)16位的結(jié)果
MUL_R表示兩個(gè)實(shí)數(shù)相乘得到一個(gè)實(shí)數(shù)的結(jié)果
MUL表示兩個(gè)16位存儲(chǔ)空間的數(shù)相乘得到一個(gè)32位的結(jié)果
除法指令
除法指令和乘法指令一樣,有實(shí)數(shù)型、整數(shù)型、雙整數(shù)型
DIV表示兩個(gè)16位數(shù)相除,結(jié)果為32位的存儲(chǔ)空間;其中商存儲(chǔ)在高16位中,余數(shù)在低16位中
DIV_I表示兩個(gè)16位數(shù)相除,結(jié)果為16位的存儲(chǔ)空間
DIV_DI表示兩個(gè)32位數(shù)相除,結(jié)果為32位的存儲(chǔ)空間
DIV_R表示兩個(gè)實(shí)數(shù)相除,結(jié)果為實(shí)數(shù)
遞增、遞減指令
遞增和遞減指令在IN端加1或減1 ,并將結(jié)果存儲(chǔ)在OUT端;常和比較指令及傳送指令配合使用。需要注意的是EN端采用沿脈沖檢測(cè)
(5)邏輯運(yùn)算指令
邏輯運(yùn)算對(duì)邏輯數(shù)進(jìn)行處理,在這是指無(wú)符號(hào)數(shù);根據(jù)運(yùn)算性質(zhì)可分為邏輯與、或、異或及取反等;根據(jù)數(shù)據(jù)類型可分為字節(jié)、字、雙字的運(yùn)算
邏輯取反指令
是把參與運(yùn)算的數(shù)據(jù)分別轉(zhuǎn)換成二進(jìn)制按位取反,若位為0 則變?yōu)? ,若位為1 則變?yōu)?
注意:取反結(jié)果的輸入輸出為同一個(gè)地址時(shí),則在EN端應(yīng)使用沿脈沖檢測(cè)觸發(fā),不然會(huì)出現(xiàn)一個(gè)掃描周期內(nèi)取反多次的情況!另外此指令和遞增指令I(lǐng)NC類似,切勿混淆
邏輯與指令
簡(jiǎn)單的說(shuō)就是把參與運(yùn)算的數(shù)據(jù)分別轉(zhuǎn)換成二進(jìn)制后進(jìn)行位與位的邏輯與運(yùn)算,只有兩個(gè)數(shù)均為1時(shí),輸出結(jié)果才會(huì)為1
邏輯或運(yùn)算指令
把參與運(yùn)算的數(shù)據(jù)分別轉(zhuǎn)換成二進(jìn)制后進(jìn)行位與位的邏輯與運(yùn)算,只要有一個(gè)數(shù)為1時(shí)輸出結(jié)果為1,兩個(gè)數(shù)為1 時(shí),輸出也為1;兩個(gè)數(shù)為0 時(shí),輸出為0,也就是有1為1 ,有0為0
邏輯異或運(yùn)算指令
把參與運(yùn)算的數(shù)據(jù)分別轉(zhuǎn)換成二進(jìn)制后進(jìn)行位與位的邏輯異或運(yùn)算,只有兩個(gè)數(shù)不同時(shí)輸出結(jié)果為1,反之為0 ;也就是同為0 ,異為1
(6)移位循環(huán)指令
移位循環(huán)指令分為三種:分別是左移位指令(SHL)/右移位指令(SHR)、循環(huán)左移位指令(ROL)/循環(huán)右移位指令(ROR)、及移位寄存器指令(SHRB),對(duì)于移位指令來(lái)說(shuō),根據(jù)移位的方向分為左右移位,根據(jù)數(shù)據(jù)類型的不同,可分為字節(jié)、字和雙字的方式
左/右移位指令
字節(jié)型移位指令為無(wú)符號(hào)數(shù),字及雙字型指令當(dāng)為有符號(hào)數(shù)時(shí),符號(hào)位也會(huì)一并移動(dòng),另一端移出的位自動(dòng)補(bǔ)零;如果移位次數(shù)大于0 ,則將溢出特殊寄存器SM1.1會(huì)置位為移出的后一位的值;如果移位操作的結(jié)果為0 ,則SM1.0標(biāo)志位將置位
循環(huán)移位指令
循環(huán)移位指令是將IN端數(shù)中各位的值向左或右移循環(huán)移動(dòng)N位后,傳送至OUT端的地址中;如果執(zhí)行循環(huán)移位指令,則溢出標(biāo)志位SM1.1將置位為循環(huán)移出的后一個(gè)位的值
移位寄存器指令
移位寄存器指令可參考我們?cè)瓉?lái)分享的內(nèi)容,這里不再闡述??牲c(diǎn)擊→【干貨】S7-200SMART 功能指令應(yīng)用
(7)表格指令
注意:表格指令針對(duì)的是16位的存儲(chǔ)空間,也就是所有的表格指令管腳只能是16位的存儲(chǔ)空間
填表指令(AD_T_TBL)
添表指令向表格 TBL 中添加字值 DATA。表格中的個(gè)值為大表格長(zhǎng)度 TL(大行/列數(shù))第二個(gè)值是條目計(jì)數(shù) EC,用于存儲(chǔ)表格中的條目數(shù),并自動(dòng)更新;新數(shù)據(jù)填加到表格中后一個(gè)條目之后;每次向表格中填加新數(shù)據(jù)時(shí),條目計(jì)數(shù)將加 1。當(dāng)條目計(jì)數(shù)等于大表格長(zhǎng)度時(shí)則無(wú)法再進(jìn)行數(shù)據(jù)的存儲(chǔ),只要當(dāng)數(shù)據(jù)讀取后騰出空間后才能繼續(xù)存儲(chǔ)數(shù)據(jù);一個(gè)表格多可有 100 個(gè)數(shù)據(jù)條目;填表指令通常配合*先出或后進(jìn)先出指令一起使用。
DATA端只能是16位的存儲(chǔ)空間,不能是實(shí)數(shù)、32位的數(shù)據(jù)等
圖中VW200表示表格的大行/列數(shù),自行設(shè)定大數(shù);所需地址為VW200的值+2
VW202表示當(dāng)前表格存儲(chǔ)數(shù)量,無(wú)需設(shè)定(已使用的表格數(shù)量);VW204后為實(shí)際存儲(chǔ)數(shù)據(jù)地址(剩余表格空間大小)
*先出指令(FIFO)
*先出指令將表中的早(或個(gè))條目移動(dòng)到輸出存儲(chǔ)器地址(指令中DATA端的地址),具體操作是移走表格 (TBL) 中的個(gè)條目并將該值移動(dòng)到 DATA 的位置。表格中的所有其它條目向上移動(dòng)一個(gè)位置。每次執(zhí)行 FIFO 指令時(shí),表中的條目計(jì)數(shù)值減 1。當(dāng)再次執(zhí)行填表指令后,數(shù)據(jù)會(huì)存儲(chǔ)在條目中
后進(jìn)先出指令(LIFO)
后進(jìn)先出指令將表中的(或后一個(gè))條目移動(dòng)到輸出存儲(chǔ)器地址,具體操作是移走表格 (TBL) 中的后一個(gè)條目并將該值移動(dòng)到 DATA 的位置。每次執(zhí)行 LIFO 指令時(shí),表中的條目計(jì)數(shù)值減 1。當(dāng)再次執(zhí)行填表指令后,數(shù)據(jù)會(huì)存儲(chǔ)在后一個(gè)條目中
填充存儲(chǔ)器指令(FILL_N)
存儲(chǔ)器填充指令使用地址 IN 中存儲(chǔ)的字值填充從地址 OUT 開(kāi)始的 N 個(gè)連續(xù)字;N 取值范圍是 1 到 255
表示把10 填充到vw10開(kāi)始的16個(gè)存儲(chǔ)地址中,常用于初始化的使用,IN可為常數(shù)也允許是變量
查表指令(TBL_FIND)
用于從表格內(nèi)查找與我們定義條件相同的數(shù)據(jù)
查表指令在表格中搜索與搜索條件匹配的數(shù)據(jù)。查表指令由表格條目 INDX 開(kāi)始,在表格 TBL 中搜索與 CMD 定義的搜索標(biāo)準(zhǔn)相匹配的數(shù)據(jù)值或模式 PTN。指令參數(shù) CMD 的 1 到 4 的數(shù)字值分別對(duì)應(yīng)于 =、<>、< 和 >(沒(méi)有≥及≤)。
如果找到匹配條目,INDX 將指向表中的該匹配條目,顯示查找和定義相同條件數(shù)據(jù)的條目數(shù)。
只要查找到和條件相符的值后就不會(huì)再往下查找,要查找下一個(gè)匹配條目值,在再次調(diào)用查表指令之前,必須先使 INDX 增加 1。如果未找到匹配的條目值,則 INDX 值等于條目總數(shù)。
一個(gè)表格多可有 100 個(gè)數(shù)據(jù)條目。數(shù)據(jù)條目(搜索區(qū)域)編號(hào)為 0 到 99(大值)。