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