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