描述
本條目將介紹如何快速周期讀出一個(gè)FM350-2高速計(jì)數(shù)模塊的8通道計(jì)數(shù)值.
由于無法同時(shí)讀取8通道的計(jì)數(shù)值,需要通過讀100及101任務(wù)請(qǐng)求分別讀出模塊的前后4個(gè)通道的計(jì)數(shù)值,這樣可以通過編程實(shí)現(xiàn),當(dāng)模塊沒有其它任務(wù)請(qǐng)求"IOB_RD.BUSY"=FALSE) 并且上一個(gè)讀取任務(wù)已經(jīng)完成時(shí)(DBX3.1 "IOB_RD.DONE"=TRUE)可以進(jìn)行計(jì)數(shù)值讀取工作。
可以使用以下程序周期快速地讀取FM350-2模塊的8通道計(jì)數(shù)值,本程序中是通過交替讀取來實(shí)現(xiàn)的。
要求
- FM350-2模塊的通道地址已經(jīng)存放于DB塊.
- 使能軟件門.
- 所有必要的控制任務(wù)已經(jīng)完成.
滿足上述條件后可以通過使能以下程序中的布爾量為TRUE來交替 周期讀取模塊的8通道計(jì)數(shù)值.
AUF "CounterDB" /計(jì)數(shù)值存儲(chǔ)數(shù)據(jù)塊
//如果當(dāng)前沒有讀取任務(wù)請(qǐng)求,通過控制"CTL_RD"=TRUE來啟動(dòng)讀取任務(wù)
U DBX3.0 //IOB_RD.BUSY
UN DBX3.1 //IOB_RD.DONE
ON "CTL_RD"
SPB ENDE
// 通過設(shè)置任務(wù)100讀取前4個(gè)通道(0-3)的計(jì)數(shù)值.
U "Chan 4...7"
O(
UN "Chan 0 ...3"
UN "Chan 4 ...7"
)
SPBN CH47
L 100
T DBB 2
S "Chan 0...3"
R "Chan 4...7"
SPA ENDE
// 通過設(shè)置任務(wù)100讀取后4個(gè)通道(4-7)的計(jì)數(shù)值.
CH47: U "Chan 0...3"
SPBN ENDE
L 101
T DBB 2
R "Chan 0...3"
S "Chan 4...7"
ENDE: NOP 0
//通過功能塊CNT2_CTR控制模塊的數(shù)字量輸出及軟件門.
CALL "CNT2_CTR"
DB_NO: = w#16#1 //數(shù)據(jù)塊塊號(hào)
//調(diào)用功能塊CNT2_RD讀取FM350-2的計(jì)數(shù)值.
CALL "CNT2_CTR"
DB_NO: = w#16#1 //數(shù)據(jù)塊塊號(hào)
RET_VAL: = MW100
進(jìn)一步信息
8.12章節(jié)描述了如何通過擴(kuò)展的用戶程序進(jìn)行計(jì)數(shù)值讀取,在一些IM接口模塊及CPU 41x中,可以通過用戶程序接口讀取全部8通道的計(jì)數(shù)值。
|