西門子PLC模擬量輸入輸出相關數(shù)據(jù)類型轉換
模擬量輸入/輸出量程轉換的概念
實際工程中,我們要面對很多工程量,如壓力、溫度、流量、物位等,他們要使用各種類型傳感器進行測量,傳感器再將測量值通過輸出標準電壓、電流、溫度或電阻信號供 PLC 采集,PLC的模擬量輸入模板將該電壓、電流、溫度、或電阻信號等模擬量轉換成數(shù)字量—整形數(shù) (INT) 。在 PLC 程序內(nèi)部要對相應的信號進行比較、運算時,常需將該信號轉換成實際物理值,這樣這個數(shù)值才具有實際意義。相反,我們要控制一些執(zhí)行機構(如比例閥,電動閥等)需要將控制值轉換成與實際工程量對應的整形數(shù),再經(jīng)模擬量輸出模板轉換成電壓、電流信號去控制現(xiàn)場執(zhí)行機構。要完成輸入、輸出模擬量轉換,就需要在程序中調(diào)用功能塊完成量程轉換。
例如一個壓力調(diào)節(jié)回路中,壓力變送器輸出 4-20mA DC 信號到 SM331 模擬量輸入模板,SM331 模板將該信號轉換成 0-27648 的整形數(shù),然后在程序中要調(diào)用 FC105 將該值轉換成 0-10.0 (MPa )的工程量(實數(shù)),經(jīng) PID 運算后得到的結果仍為實數(shù),要用 FC106 轉換為對應閥門開度 0-100% 的整形數(shù) 0-27648 后,經(jīng) SM332 模擬量輸出模板輸出 4-20mA DC 信號到調(diào)節(jié)閥的執(zhí)行機構。
? ? ? 西門子PLC模擬量輸入輸出相關數(shù)據(jù)類型轉換
plc模擬量輸入輸出都會涉及到數(shù)據(jù)類型的互轉問題,然而西門子300系統(tǒng)對于數(shù)據(jù)格式有著明確的規(guī)定,一般的四則運算都是在同一數(shù)據(jù)類型下才能進行的,這也是一直以來困擾初學者的一個問題。
西門子300編程軟件step7 和 博圖都提供了相應的模擬量輸入輸出處理模塊FC105,F(xiàn)C106。但是好多場合下,要對數(shù)據(jù)進行線性轉換或運算,靠這兩個函數(shù)是遠遠不夠的。這時候就需要用戶自己動手寫一些數(shù)據(jù)轉換的子程序。所以知道西門子數(shù)據(jù)類型轉換是很有必要的。
1.模擬量數(shù)據(jù)采集值(PIW INT) 轉換為 物理量(浮點數(shù)real)
西門子plc通過采集通道采集到的值以整型(INT)型式保存在PIWx(PIW0)內(nèi),要換算為浮點型式的物理量需要經(jīng)過以下兩步。
第一步:把INT 轉換為 DINT ,不用為為什么,就是精度精度精度。
第二部:把DINT 轉換為REAL。
這兩步都很簡單,如圖所示。難點在于,把浮點數(shù)(REAL)轉換為整形(INT),再通過PQW輸出。
2.物理量(浮點數(shù)real) 轉換為 模擬量數(shù)據(jù)輸出值(PQW INT)
西門子PLC以整型(INT)型式輸出模擬量(PQW0),一般的物理量都是浮點數(shù)型式,要把物理量換算為模擬量輸出,需要經(jīng)過以下兩步。
第一步:通過ROUND函數(shù)或TRUNC函數(shù),把REAL數(shù)據(jù)轉換為DI格式。
ROUND是實數(shù)轉換雙字整數(shù)指令,小數(shù)點后的第一位采取四舍五入。TRUNC也是實數(shù)轉換為雙整數(shù),但是去小數(shù)部分取整數(shù)。
第二部:把DINT 數(shù)據(jù)通過MOVE指令輸送到VW區(qū),再通過MOVE指令由PQW輸出即可。