模擬量在西門子是個范圍量,這一般是PIW和PQW,使用時需要轉換為工程值,轉換可以使用系統模塊,或自己編寫
以下是網絡轉載:
S7-300以4-20mA為例。系數為27648。
模擬量值=(PIWxx/27648)*(高限-低限)+低限+補償值
例子:從0到10V的值中輸入到插在插槽6的模擬模塊中。目前這個值是一個整數(16位),應該規格化100到1000之間的REAL格式,并以雙字MD10保存在位儲存器中。
語句表的解決方案:
L PIW 288 //0到10V的模擬量輸入包含0到27648個整數(16位)
ITD //16位整數值轉換成32位整數
DTR //32位整數轉化成實數
L 2.7648e+4 //
/R //除以實數27648
L 9.000e+2 //
*R // 乘以實數***(1000-100)
L 1.000e+2 //
+R // 加上實數100(補償值)
T MD10 //把100到1000規格化成REAL格式
轉換模擬量值到工程量值
問題: 是否有功能塊能轉換模擬量值到工程量值?
解答: 在Step7 中,standard library T1-S7 Converting Blocks FC105。
例如:轉換一個模擬量PIW256到0.0~200.0工程范圍
Call FC105
IN:=PIW256 (模擬量,范圍-27648~27648)
HI_LIM:=200.0 (上限)
LO_LIM:=0.0 (下限)
BIPOLAR:=M2.1 (極性
如M2.1為1,對應的PIW256 為-27648~27648;
如M2.1為0,對應的PIW256為0~27648)
RET_VAT:=MW4 (錯誤返回值)
OUT:=MD50 (工程值)