西門子PLC模擬量輸入輸出相關(guān)數(shù)據(jù)類型轉(zhuǎn)換
掃描二維碼
隨時(shí)隨地手機(jī)看文章
模擬量輸入/輸出量程轉(zhuǎn)換的概念
實(shí)際工程中,我們要面對(duì)很多工程量,如壓力、溫度、流量、物位等,他們要使用各種類型傳感器進(jìn)行測(cè)量,傳感器再將測(cè)量值通過輸出標(biāo)準(zhǔn)電壓、電流、溫度或電阻信號(hào)供 PLC 采集,PLC的模擬量輸入模板將該電壓、電流、溫度、或電阻信號(hào)等模擬量轉(zhuǎn)換成數(shù)字量—整形數(shù) (INT) 。在 PLC 程序內(nèi)部要對(duì)相應(yīng)的信號(hào)進(jìn)行比較、運(yùn)算時(shí),常需將該信號(hào)轉(zhuǎn)換成實(shí)際物理值,這樣這個(gè)數(shù)值才具有實(shí)際意義。相反,我們要控制一些執(zhí)行機(jī)構(gòu)(如比例閥,電動(dòng)閥等)需要將控制值轉(zhuǎn)換成與實(shí)際工程量對(duì)應(yīng)的整形數(shù),再經(jīng)模擬量輸出模板轉(zhuǎn)換成電壓、電流信號(hào)去控制現(xiàn)場(chǎng)執(zhí)行機(jī)構(gòu)。要完成輸入、輸出模擬量轉(zhuǎn)換,就需要在程序中調(diào)用功能塊完成量程轉(zhuǎn)換。
例如一個(gè)壓力調(diào)節(jié)回路中,壓力變送器輸出 4-20mA DC 信號(hào)到 SM331 模擬量輸入模板,SM331 模板將該信號(hào)轉(zhuǎn)換成 0-27648 的整形數(shù),然后在程序中要調(diào)用 FC105 將該值轉(zhuǎn)換成 0-10.0 (MPa )的工程量(實(shí)數(shù)),經(jīng) PID 運(yùn)算后得到的結(jié)果仍為實(shí)數(shù),要用 FC106 轉(zhuǎn)換為對(duì)應(yīng)閥門開度 0-100% 的整形數(shù) 0-27648 后,經(jīng) SM332 模擬量輸出模板輸出 4-20mA DC 信號(hào)到調(diào)節(jié)閥的執(zhí)行機(jī)構(gòu)。
? ? ? 西門子PLC模擬量輸入輸出相關(guān)數(shù)據(jù)類型轉(zhuǎn)換
plc模擬量輸入輸出都會(huì)涉及到數(shù)據(jù)類型的互轉(zhuǎn)問題,然而西門子300系統(tǒng)對(duì)于數(shù)據(jù)格式有著明確的規(guī)定,一般的四則運(yùn)算都是在同一數(shù)據(jù)類型下才能進(jìn)行的,這也是一直以來困擾初學(xué)者的一個(gè)問題。
西門子300編程軟件step7 和 博圖都提供了相應(yīng)的模擬量輸入輸出處理模塊FC105,F(xiàn)C106。但是好多場(chǎng)合下,要對(duì)數(shù)據(jù)進(jìn)行線性轉(zhuǎn)換或運(yùn)算,靠這兩個(gè)函數(shù)是遠(yuǎn)遠(yuǎn)不夠的。這時(shí)候就需要用戶自己動(dòng)手寫一些數(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輸出即可。