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