西門子控制單元6SL3055-0AA00-5AA0
本程序?qū)崿F(xiàn)了一個按事件步順序執(zhí)行的例子,。每步均包含一系列的動作,一步緊跟一步,,并且有所有前提條件均滿足時,,才能執(zhí)行。如下所示:

例圖

程序框圖

程序和注釋:
本示例程序山五個能連續(xù)地執(zhí)行的步組成,。每步實質(zhì)上就是對某些輸出置位和復(fù)位,。在某一步可執(zhí)行以前,必須滿足一些必要的前提條件,。例如,,己按下某一開關(guān),或滿足了要求的等待時問,。另外,,還可以隨時按開關(guān)I0.0來復(fù)位步執(zhí)行順序。這些前提條件與輸出結(jié)果己在程序框圖中描述過了,。


西門子控制單元6SL3055-0AA00-5AA0
用S7-200 CPU 214的高速計數(shù)器HSC累計來自模擬量/頻率轉(zhuǎn)換器(A/F的脈沖來計算模擬電壓值
本例說明了如何利用CPU 214的高速計數(shù)器HSC及頻率轉(zhuǎn)換器來計算模擬電壓,。首先頻率轉(zhuǎn)換器將輸入電壓(0~10V)轉(zhuǎn)換為矩形脈沖信號(0~2000Hz),再將此信號送入CPU214高速記數(shù)器的輸入端并累計脈沖數(shù),。當(dāng)預(yù)置的問隔時問到后,,通過累計脈沖數(shù),計算出被測模擬電壓值。
例圖

硬件要求

程序結(jié)構(gòu)
主程序 在第一個掃描周期調(diào)用子程序SBR0
SBR0 高速計數(shù)器和定時中斷的初始化
INT0 對高速計數(shù)器求值的定時中斷程序
程序和注釋
主程序在第一個掃描周期調(diào)用初始化程序SBR0,,僅在第一個掃描周期標(biāo)志位SM0.1=1由子程序SBR0實現(xiàn)初始化,。首先,把高速記數(shù)器HSC1的控制字節(jié)SMB47置為16進制‘FC',,其含義是:正方向計數(shù),,可更新預(yù)置值(PV),可更新當(dāng)前值(CV),,激活HSC1,。然后,用指令‘HDEF’把高速計數(shù)器HSC1置成工作模式0}即沒有復(fù)位或起始輸入,,也沒有外部的方向選擇,。當(dāng)前值SMD48復(fù)位為0,預(yù)置值SMD52置為FFFF (16進制),。定時中斷0間隔時間SMB34置為100ms,,中斷程序0分配給定時中斷0(中斷事件10),并允許中斷,。用指令HSC1啟動高速計數(shù)器,。
每100ms調(diào)用一次中斷程序0,讀出高速計數(shù)器的數(shù)值后將其置零,。通過HSC1計數(shù)值及變換關(guān)系(0~2KHz對應(yīng)于0~10V)來求被測的模擬電壓值,。本例中,計數(shù)值僅除以2,,然后置入輸出字節(jié)QB0,,以便通過LED來顯示被測的模擬電壓值。顯示值與10倍真實電壓值相對應(yīng),。例如,,計數(shù)值為200除以2是100,那么,,被測的模擬電壓值就是10.0V,。因為計數(shù)器100ms內(nèi)共有200個計數(shù)脈沖,這正與2000Hz=>10V相對應(yīng),。假設(shè)計數(shù)值為104,,則實際電壓值應(yīng)為5.2V,。
注意:定時中斷時間可在5~255ms的范圍內(nèi)變化,,然而,通過設(shè)立一個標(biāo)志,,可根據(jù)需要來延長高速計數(shù)器的求值和復(fù)位時間,,這樣就有更長的掃描間隔,以便提高精確度,同時也會帶來更長的更新時間,。例如,,定時中斷設(shè)為100ms,每調(diào)用一次,,標(biāo)志增加1,,僅當(dāng)標(biāo)志滿10時,才對高速計數(shù)器求值和復(fù)位,。也就是說,,10V 電壓可接收的最大脈沖為2000,這樣,,求值精確到5/1000V即精確度是上例的10倍,,但同時速度也減慢了10倍