西門子SCL編程入門教程連載(9)-NORM_X和SCALE_X指令

NORM_X指令和SCALE_X指令用來實現數據的縮放及轉換,在處理模擬量信號數據時經常使用。今天這篇文章,我們就來談談這兩個指令。

西門子SCL編程入門教程連載(9)-NORM_X和SCALE_X指令

1、NORM_X指令

NORM是英文Normalization的簡寫,中文翻譯為“歸一化”。
數據的歸一化是將數據按比例縮放,使其落入到閉區間[0,1]之間。既然是按比例縮放,那麼必須有該數據的範圍,即該數據可能的最大值和最小值。
假設當前數據的值為x,其數據最大值為Xmax,最小值為Xmin,歸一化後生成的新數據值為Xnew,則將該數據歸一化(Normalization)併產生新的數據Xnew的公式為:

西門子SCL編程入門教程連載(9)-NORM_X和SCALE_X指令

歸一化公式

用座標圖表達如下:

西門子SCL編程入門教程連載(9)-NORM_X和SCALE_X指令

歸一化座標圖

在西門子SCL編程語言中,NORM_X指令就是用來實現數據的歸一化。
可以在【基本指令】-【轉換】中找到該指令,如下圖:

西門子SCL編程入門教程連載(9)-NORM_X和SCALE_X指令

假設某個比例閥使用4~20mA電流信號輸出,其壓力的量程範圍為0~25000 mbar,某個瞬時值為TMP_Value1,其歸一化後放在變量tag_normalized中,則有如下公式:

西門子SCL編程入門教程連載(9)-NORM_X和SCALE_X指令

注意:歸一化後其數據值介於0~1之間,為實數。

2、SCALE_X指令

SCALE_X指令可以將歸一化的數據按照比例進行放大,它是NORM_X的逆操作。
SCALE_X指令的座標圖如下:

西門子SCL編程入門教程連載(9)-NORM_X和SCALE_X指令

SCALE座標圖

其中,X是歸一化後的數據,Xnew是放大後的數據。
接著上面歸一化的例程,假設我們使用模擬量輸出模塊的量程範圍為0~27648,歸一化的數據變量為tag_normalized,按比例放大後的變量為tag_scaled,
則比例閥輸出控制的代碼為:

西門子SCL編程入門教程連載(9)-NORM_X和SCALE_X指令

NORM_X和SCALE_X指令在處理模擬量信號時經常被用到,要理解清楚。

好了,關於西門子SCL的NORM_X和SCALE_X指令就先介紹到這裡。如果你喜歡這篇文章,可以去官網(https://www.founderchip.com)下載本文PDF版本。


分享到:


相關文章: