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