前幾天自己在家哄孩子,給孩子做飯,由于自己不留神造成忘記關火,鍋被干燒的事故,雖然事后發現得早,但是當時我就想做一個防止干燒的小裝置.
模擬值的處理:
模擬量信號模塊可以提供輸入信號,或等待表示電壓范圍或電流范圍的輸出值。這些范圍是
±10 V、±5 V、±2.5 V 或 0 - 20 mA。模塊返回的值是整數值,其中,0 到 27648 表示電流的額定范圍,-27648 到 27648 表示電壓的額定范圍。任何該范圍之外的值即表示上溢或下溢。
在控制程序中,很可能需要以工程單位使用這些值,例如表示體積、溫度、重量或其它數量
值。要以工程單位使用模擬量輸入,必須首先將模擬值標準化為由 0.0 到 1.0 的實數(浮點)
值。然后,必須將其標定為其表示的工程單位的最小值和最大值。對于要轉換為模擬量輸出值的以工程單位表示的值,應首先將以工程單位表示的值標準化為 0.0 和 1.0 之間的值,然后將其標定為 0 到 27648 之間或 -27648 到 27648 之間(取決于模擬模塊的范圍)的值。
例如,假設模擬量輸入的電流范圍為 0 - 20 mA。模擬量輸入模塊返回的測量值介于 0 和 27648 之間。在此示例中,假設使用此模擬量輸入值測量 50 °C 到 100 °C 的溫度。幾個采樣值的含義如下:
0 ---50 °C
6192 ---62.5 °C
12384--- 75 °C
18576 ---87.5 °C
27648 ---100 °C
在 PLC 應用中,典型的方法是將模擬量輸入值標準化為 0.0 至 1.0 之間的浮點值。然后,需要將得到的值換算為工程單位范圍內的浮點值。為簡單起見,以下 LAD 指令使用常數值表示范圍;實際上可能選擇使用變量:
比如我們在烘干爐程序中使用的FC106
UNSCALE功能接收一個以工程單位表示、且標定于下限和上限(LO_LIM和HI_LIM)之間的實型輸入值(IN),并將其轉換為一個整型值。將結果寫入OUT。UNSCALE功能使用以下等式:
OUT = [ ((IN朙O_LIM)/(HI_LIM朙O_LIM)) * (K2朘1) ] + K1,并根據輸入值是BIPOLAR還是UNIPOLAR設置常數K1和K2。
BIPOLAR:假定輸出整型值介于 -27648和27648之間,因此,K1 = -27648.0,K2 = +27648.0
UNIPOLAR:假定輸出整型值介于0和27648之間,因此,K1 = 0.0,K2 = +27648.0
如果輸入值超出LO_LIM和HI_LIM范圍,輸出(OUT)將鉗位于距其類型(BIPOLAR或UNIPOLAR)的指定范圍的下限或上限較近的一方,并返回一個錯誤。
實例:
審核編輯 :李倩
-
plc
+關注
關注
5001文章
12948瀏覽量
459272 -
西門子
+關注
關注
93文章
2958瀏覽量
114844 -
模擬量
+關注
關注
5文章
488瀏覽量
25402
原文標題:我想發明一個防干鍋的裝置-西門子PLC的模擬量控制
文章出處:【微信號:gh_a8b121171b08,微信公眾號:機器人及PLC自動化應用】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論