計數(shù)器
計數(shù)器利用輸入邊沿累積脈沖個數(shù),計數(shù)器又分為普通計數(shù)器和高速計數(shù)器S7-200 SMART CPU高速計數(shù)器專題(上篇)兩大類。200SMART系列對于普通計數(shù)器分為加計數(shù)、減計數(shù)、加減計數(shù)三類計數(shù)指令,計數(shù)器的使用與定時器基本類似,主要有預置寄存器、當前值寄存器及狀態(tài)位組成。其范圍大小為C0-C255,存儲空間和定時器一樣均為一個字的存儲空間且為INT的數(shù)據(jù)類型。加減計數(shù)器指令遞增到最大數(shù)32767時,此時再接通輸入端信號時,則會變?yōu)樽钚≈?32768計數(shù)器指令格式 計數(shù)器指令本身是對信號輸入端的脈沖信號進行計數(shù),所以無需再加上升沿指令加計數(shù)時序圖
CU為脈沖信號輸入管腳,R為計數(shù)器復位管腳,當CU端產(chǎn)生一個脈沖信號時,計數(shù)器C0的當前值遞增1,當當前值大于或等于PV值時,計數(shù)器的觸點發(fā)生變化,當復位端信號為1 時,計數(shù)器的當前值會變?yōu)?減計數(shù)數(shù)序圖
加減計數(shù)時序圖
加減計數(shù)集成了加計數(shù)和減計數(shù)的功能,當CU端信號由0變?yōu)? 時,計數(shù)當前值加1 ,當CD端信號由0變?yōu)? 時,計數(shù)當前值減1 ,當計數(shù)器的當前值大于或等于PV值時,計數(shù)器的觸點發(fā)生變化;當復位端R為1 時,計數(shù)器的當前值會被清零常用功能指令(1)比較指令比較指令可分為以下幾種:字節(jié)比較指令、整數(shù)比較指令、雙整數(shù)比較指令、實數(shù)比較指令、字符串比較指令按照比較結(jié)果可分為=、≠、>、<、≥、≤指令格式
(2)數(shù)據(jù)移動指令
塊傳送指令
(3)轉(zhuǎn)換指令
BCD碼轉(zhuǎn)整數(shù)時需要注意的是,BCD碼是用16進制的方式進行表示,所以在轉(zhuǎn)換的過程中應(yīng)該在BCD碼前加“16#”如圖所示,此指令一般配合時鐘指令使用
ASCII 字符數(shù)組轉(zhuǎn)換指令
(4)整數(shù)運算指令整數(shù)運算指令又稱為數(shù)學(四則)運算指令,在實際應(yīng)用使用比較廣泛,如模擬量轉(zhuǎn)換計算,脈沖長度計算等。四則運算指令除了加、減、乘、除以外還有遞增指令和遞減指令。根據(jù)數(shù)據(jù)類型的不一樣每個指令又分為對整數(shù)、雙整數(shù)、實數(shù)的運算;以及三角函數(shù)指令
加法指令
加法指令主要針對兩個數(shù)據(jù)相加的結(jié)果放在OUT端,其IN端可以是常數(shù)也能用寄存器來表示;同時在使用的過程中也會用到一些特殊的存儲器,如SM1.0 、SM1.1、SM1.2 這些特殊存儲器ON的時間取決于運算指令執(zhí)行的時間長短
SM1.0 在兩個數(shù)相加后的結(jié)果為0時會為ON SM1.1 在兩個數(shù)相加后的結(jié)果超過此指令指定數(shù)據(jù)類型的最大范圍時會為ON SM1.2 在兩個數(shù)相加后的結(jié)果為負數(shù)時會為ON 當多條指令參與運算時,需要判斷具體哪條指令是否有產(chǎn)生溢出或為0 及為負數(shù)時,應(yīng)在每條指令下方添加特殊寄存器;如下圖所示
在實際的運算中,如果前面運算的結(jié)果要參與后面的運算時,應(yīng)采用“與”的方式編寫而不能用“或”的方式;如下圖所示,當運算結(jié)果超出指令指定數(shù)據(jù)類型的最大范圍時,最后的運算結(jié)果會存儲出錯前的數(shù)值
未完待續(xù)