FC105的塊名叫“scale”,中文的意思的模擬量輸入的便准化。Scale功能接受一個整型值(IN),並將其轉換為以工程單位表示的介於下限(LO_LIM)和上限(HI_LIM)之間的實型值。將結果寫入out,“縮放”指令將按以下公式進行計算:
OUT = [((FLOAT (IN) – K1)/(K2–K1)) ∗ (HI_LIM–LO_LIM)] + LO_LIM
參數 BIPOLAR 的信號狀態將決定常數“K1”和“K2”的值。 參數 BIPOLAR 可能有下列信號狀態:
BIPOLAR=1,信號狀態“1”: 此時參數 IN 的值為雙極性且取值范圍介於 -27648 和 27648 之間。這種情況下,常數“K1”的值為“-27648.0”,“K2”的值為“+27648.0”。
BIPOLAR=0,信號狀態“0”: 此時參數 IN 的值為單極性且取值范圍介於 0 和 27648 之間。這種情況下,常數“K1”的值為“0.0”,“K2”的值為“+27648.0”。
如果參數 IN 的值大於常數“K2”的值,則將指令的結果設置為上限值 (HI_LIM) 並輸出一個錯誤。
如果參數 IN 的值小於常數“K1”的值,則將該指令的結果設置為下限值 (LO_LIM) 並輸出一個錯誤。
如果指定的下限值大於上限值 (LO_LIM >HI_LIM),則結果將對輸入值進行反向縮放。
參數 |
聲明 |
數據類型 |
存儲區 |
說明 |
EN |
Input |
Bool |
I、Q、M、D、L |
使能輸入 |
ENO |
Output |
Bool |
I、Q、M、D、L |
使能輸出 |
IN |
Input |
Int |
I、Q、M、D、L、P或常數 |
待縮放的輸入值 |
HI_LIM |
Input |
Real |
I、Q、M、D、L、P或常數 |
上限 |
LO_LIM |
Input |
Real |
I、Q、M、D、L、P或常數 |
下限 |
BIPOLAR |
Input |
Bool |
I、Q、M、D、L或常數 |
1:雙極性;0:單極性 |
OUT |
Output |
Real |
I、Q、M、D、L、P |
指令的結果 |
RET_VAL |
output |
Word |
I、Q、M、D、L、P |
錯誤信息 |
RET_VAL 參數
下表列出了 RET_VAL 參數值的含義:
W#16#0000 |
無錯誤 |
W#16#0008 |
參數 IN 的值大於常數“K2”的值或小於常數“K1”的值 |
W#16#8xyy |
有關錯誤的更多信息,請參見“另請參見”。 |
接下來以實例進行講解:
測距傳感器,測距范圍100mm到1000mm,電流模擬量輸出4到20mA,輸入信號PIW264。
首先采用MOVE指令,將PIW264字符變量轉換成整型變量DB100.DBW218,接下來采用scale指令
Scale參數:
IN=DB100.DBW218(整型變量)
HI_LIM=1000
LO_LIM=100
RET_VAL=DB100.DBW224(字符型變量)
OUT=DB100.DBD220(實數型變量)
BIPOLAR=0,因此加以一個開點即可。