基于西门子1200PLC模拟量测温案例2
?
03
模擬量與數(shù)字量的轉(zhuǎn)換
在實(shí)際的工程項(xiàng)目中,讀者往往采集溫度、壓力、流量等信號(hào),那么在程序中如何處理這些模擬量信號(hào)呢?換句話說編寫模擬量程序的目的是什么呢?編寫模擬量程序的目的是將模擬量轉(zhuǎn)換成對(duì)應(yīng)的數(shù)字量,最終將數(shù)字量轉(zhuǎn)換成工程量(物理量)。
模擬量轉(zhuǎn)換為工程量分為單極性和雙極性兩種。雙極性的-27648對(duì)應(yīng)工程量的最小值,27648對(duì)應(yīng)工程量的最大值。
單極性模擬量分為兩種,即4-20mA和0-10V、0-20mA。
(1)第一種為4-20mA,是帶有偏移量的。
因?yàn)?/span>4mA為總量的20%,而20mA轉(zhuǎn)換為數(shù)字量為27648,所以4mA對(duì)應(yīng)的數(shù)字量為5530。模擬量轉(zhuǎn)換為數(shù)字量是S7-1200PLC完成的,讀者要在程序中將這些數(shù)值轉(zhuǎn)換為工程量。
(2)第二種是沒有偏移量的
沒有偏移量的是如0-10V、0-20mA等模擬量,27648對(duì)應(yīng)最大工程量,0對(duì)應(yīng)工程量的最小值。
(3)模擬量信號(hào)(0-10V、0-5V或0-20mA)在S7-1200PLC CPU內(nèi)部用0-27648的數(shù)值表示(4-20mA對(duì)應(yīng)5530-27648),這兩者之間有一定的數(shù)學(xué)關(guān)系,如圖3-5-5
圖3-5-5 模擬量信號(hào)與數(shù)字量曲線
04
標(biāo)準(zhǔn)化指令和縮放指令
(1)標(biāo)準(zhǔn)化指令(NORM_X)
NORM_X指令:使用“NORM_X”指令,可將輸入VALUE中變量的值映射到線性標(biāo)尺對(duì)其標(biāo)準(zhǔn)化。使用參數(shù)MIN和MAX定義輸入VALUE值范圍的限值:
| LAD | 參數(shù) | 數(shù)據(jù)類型 | 說明 |
| EN | BOOL | 允許輸入 | |
| ENO | BOOL | 允許輸出 | |
| MIN | 整數(shù)、浮點(diǎn)數(shù) | 取值范圍的下限 | |
| VALUE | 整數(shù)、浮點(diǎn)數(shù) | 要標(biāo)準(zhǔn)化的值 | |
| MAX | 整數(shù)、浮點(diǎn)數(shù) | 取值范圍的上限 | |
| OUT | 浮點(diǎn)數(shù) | 標(biāo)準(zhǔn)化結(jié)果 |
注意:可以從指令框“<???>”下拉列表中選擇該指令的數(shù)據(jù)類型。
標(biāo)準(zhǔn)化指令的計(jì)算公式是:OUT= (VALUE - MIN) / (MAX - MIN),其中 (0.0 <= OUT <= 1.0),計(jì)算原理如圖3-5-6
圖3-5-6 標(biāo)準(zhǔn)化指令公式對(duì)應(yīng)計(jì)算原理圖
用一個(gè)例子來說明標(biāo)準(zhǔn)化指令(NORM_X)的使用,梯形圖如圖3-5-7所示:
當(dāng)I0.0閉合激活標(biāo)準(zhǔn)化指令,要標(biāo)準(zhǔn)化的VALUE存儲(chǔ)在MW10中,VALUE的范圍是0-27648,將VALUE標(biāo)準(zhǔn)化的輸出范圍是0.0-1.0。假設(shè)MW10中是13824,那么MD12中的標(biāo)準(zhǔn)化的結(jié)果是0.5。
圖3-5-7 標(biāo)準(zhǔn)化指令示例
(2)縮放指令(SCALE_X)
SCALE_X指令:使用“SCALE_X”指令,可將輸入VALUE的值映射到指定的值范圍來對(duì)其縮放。當(dāng)執(zhí)行縮放指令時(shí),輸入VALUE的浮點(diǎn)值會(huì)縮放到有參數(shù)MIN和MAX定義的值范圍。縮放結(jié)果為整數(shù),存儲(chǔ)在OUT輸出中。縮放指令參數(shù)見下表:
| LAD | 參數(shù) | 數(shù)據(jù)類型 | 說明 |
| EN | BOOL | 允許輸入 | |
| ENO | BOOL | 允許輸出 | |
| MIN | 整數(shù)、浮點(diǎn)數(shù) | 取值范圍的下限 | |
| VALUE | 整數(shù)、浮點(diǎn)數(shù) | 要標(biāo)準(zhǔn)化的值 | |
| MAX | 整數(shù)、浮點(diǎn)數(shù) | 取值范圍的上限 | |
| OUT | 浮點(diǎn)數(shù) | 標(biāo)準(zhǔn)化結(jié)果 |
注意:可以從指令框“<???>”下拉列表中選擇該指令的數(shù)據(jù)類型。
縮放指令的計(jì)算公式是:OUT= VALUE (MAX - MIN) + MIN,其中 (0.0 <= VALUE <= 1.0),計(jì)算原理如圖3-5-8;
用一個(gè)例子來說明標(biāo)準(zhǔn)化指令(NORM_X)的使用,梯形圖如圖3-5-8所示,當(dāng)I0.0閉合激活標(biāo)準(zhǔn)化指令,要標(biāo)準(zhǔn)化的VALUE存儲(chǔ)在MD16中,VALUE的范圍是0-27648,將VALUE標(biāo)準(zhǔn)化的輸出范圍是0-27648。假設(shè)MD10中是0.5,那么MW20中的標(biāo)準(zhǔn)化的結(jié)果是13824。
圖3-5-8 縮放指令示例
四、任務(wù)實(shí)施
本任務(wù)的實(shí)施步驟主要分為PLC接線、IO地址分配以及程序設(shè)計(jì)思路:
01
IO地址分配
| 輸入地址 | 說明 | 溫度顯示地址 | 說明 |
| IW64 | 模擬量輸入 | MD24 | 溫度顯示 |
02
程序設(shè)計(jì)思路
1)使用標(biāo)準(zhǔn)化指令,把采集過來的模擬量值進(jìn)行標(biāo)準(zhǔn)化,標(biāo)準(zhǔn)化后的范圍值在0.0-1.0之間。
2)再使用縮放指令,把標(biāo)準(zhǔn)化后的數(shù)值進(jìn)行縮放,縮放后的范圍值在溫度傳感器量程(-50.0-200.0℃)范圍之間。
03
程序設(shè)計(jì)
五、經(jīng)驗(yàn)與總結(jié)
1、模擬量的換算,主要是要理解模擬量與數(shù)字量之間的關(guān)系。
2、在本任務(wù)中,主要使用的是標(biāo)準(zhǔn)化和縮放指令進(jìn)行模擬量采集換算,換算的時(shí)候要注意數(shù)字量及工程量數(shù)值的填寫,以免換算錯(cuò)誤。
3、在上述例子中,溫度傳感器的量程為-50℃-200℃,所以在縮放指令中需要正確填寫數(shù)值。
4、如果現(xiàn)場(chǎng)有多個(gè)溫度傳感器,可以使用帶參數(shù)子程序的方式編寫更加方便。
5、如果現(xiàn)場(chǎng)的傳感器是4-20mA電流輸出的,那么在標(biāo)準(zhǔn)化指令中的MIN管腳填寫的數(shù)值應(yīng)該是5530,而不是0。
總結(jié)
以上是生活随笔為你收集整理的基于西门子1200PLC模拟量测温案例2的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 三层交换机上配置Trunk并接口为802
- 下一篇: php7 xdebug 性能,PHP 7