西門子300編程軟件step7 和 博圖都提供了相應(yīng)的模擬量輸入輸出處理模塊FC105,FC106。但是好多場合下,要對數(shù)據(jù)進(jìn)行線性轉(zhuǎn)換或運(yùn)算,靠這兩個函數(shù)是遠(yuǎn)遠(yuǎn)不夠的。這時候就需要用戶自己動手寫一些數(shù)據(jù)轉(zhuǎn)換的子程序。所以知道西門子數(shù)據(jù)類型轉(zhuǎn)換是很有必要的。
1.模擬量數(shù)據(jù)采集值(PIW INT) 轉(zhuǎn)換為 物理量(浮點(diǎn)數(shù)real)
西門子plc通過采集通道采集到的值以整型(INT)型式保存在PIWx(PIW0)內(nèi),要換算為浮點(diǎn)型式的物理量需要經(jīng)過以下兩步。
第一步:把INT 轉(zhuǎn)換為 DINT ,不用為為什么,就是精度精度精度。
第二部:把DINT 轉(zhuǎn)換為REAL。
這兩步都很簡單,如圖所示。難點(diǎn)在于,把浮點(diǎn)數(shù)(REAL)轉(zhuǎn)換為整形(INT),再通過PQW輸出。
2.物理量(浮點(diǎn)數(shù)real) 轉(zhuǎn)換為 模擬量數(shù)據(jù)輸出值(PQW INT)
西門子PLC以整型(INT)型式輸出模擬量(PQW0),一般的物理量都是浮點(diǎn)數(shù)型式,要把物理量換算為模擬量輸出,需要經(jīng)過以下兩步。
第一步:通過ROUND函數(shù)或TRUNC函數(shù),把REAL數(shù)據(jù)轉(zhuǎn)換為DI格式。
ROUND是實(shí)數(shù)轉(zhuǎn)換雙字整數(shù)指令,小數(shù)點(diǎn)后的第一位采取四舍五入。TRUNC也是實(shí)數(shù)轉(zhuǎn)換為雙整數(shù),但是去小數(shù)部分取整數(shù)。
第二部:把DINT 數(shù)據(jù)通過MOVE指令輸送到VW區(qū),再通過MOVE指令由PQW輸出即可。