對於PLC的輸入輸出,分數字量和模擬量兩種。數字量很好理解,就是在時間和數量上都離散的物理量,比如啟/停按鈕,行程開關,電磁閥通/斷,這些都是數字量。數字量對應PLC存儲就是1位,即1比特(binary digit,縮寫bit),作為信息的最小單位,只有兩種狀態:0(低電平)和1(高電平),也表示為FALSE和TRUE。模擬量是在時間或數值上都連續的物理量,常見的如溫度、氧含量、壓力等。
模擬量使用起來不太方便,不是有多難,而是在程序上需要做必要的處理,本文通過實例,講一講如何通過模擬量控制氣缸升起和下降。
通過模擬量輸出控制運動對象動作,要先確定運動對象的信號類型和量程等參數。信號類型常見的有電流4~20mA和電壓0~5V/10V等;量程是設備自身的參量,比如氣缸控制閥流量開度為0~100%,K型熱電偶測溫範圍0~1300℃等。
本文選用的氣缸控制閥控制特性如圖1所示,可以看出信號類型4~20mA,4~12mA對應的1通2,流量開度q對應100~0(%);12~20mA對應的1通4,流量開度q對應0~100(%);
圖1 氣缸控制閥控制特性
處理模擬量信號需要兩個指令,NORM_X:標準化和SCALE_X:縮放指令。
NORM_X:標準化
使用“標準化”指令(參照圖2所示),通過將輸入 VALUE 中變量的值映射到線性標尺對其進行標準化。可以使用參數 MIN 和 MAX 定義(應用於該標尺的)值範圍的限值。輸出OUT( RET_VAL) 中的結果經過計算並存儲為浮點數,這取決於要標準化的值在該值範圍中的位置。
如果要標準化的值等於輸入 MIN 中的值,則輸出 OUT 將返回值“0.0”。如果要標準化的值等於輸入 MAX 的值,則輸出 OUT 需返回值“1.0”。
其中MIN 、 MAX和VALUE既可以是整數,也可以是浮點數。OUT( RET_VAL) 為浮點數。
圖2 NORM_X
SCALE_X:縮放指令
使用“縮放”指令(參照圖3所示),通過將輸入 VALUE 的值映射到指定的值範圍內以縮放該值。當執行“縮放”指令時,輸入 VALUE 的浮點值會縮放到由參數 MIN 和 MAX 定義的值範圍。縮放結果為整數,存儲在 RET_VAL 輸出中。
其中MIN 、 MAX和OUT( RET_VAL) 既可以是整數,也可以是浮點數。VALUE為浮點數。
圖3 SCALE_X
接下來在FB中定義各變量,如圖4所示。變量有升起和降落的指令rise_command、fall_command,數據類型均為Bool型;升起和降落的開度百分比rise_rate、fall_rate,此處數據類型均定義為Int型;以及標準化和縮放的變量,NORM_rise_rate(Real型)、NORM_fall_rate_1(Real型)、NORM_fall_rate_2(Real型)、SCALE_rise_rate(Int型)、SCALE_fall_rate(Int型)。
圖4 定義變量
輸出量AQ1(Int型)需要在PLC變量中定義,同時模擬量輸出的地址要與實際的接線端子地址一致,如圖5所示。
圖5 定義變量
用SCL語言編程,如圖6所示。
圖6 SCL程序