1.設計思考
我現在手上有一個三線10kΩ的滑動變阻器,想讓其當作模擬量接入西門子PLC中,外部改變電阻,PLC程序中能看到對應的阻值或電壓,這樣可以練習模擬量輸入這個知識點!
2.了解模擬量的種類
模擬量一般有電壓型和電流型兩種,電流型相比于電壓型更加穩定,抗干擾能力更強。
我現在用的是電位器,其對應的應該是單極性的電壓型,0-10V最為標準,PLC中對應0-27648
3.確定西門子PLC的模擬量輸入
西門子PLC對應的型號是S7-1200 CPU1214C?DC/DC/DC,提供兩路模擬量輸入
而且在PLC內部模擬量通道設置里面,該型號也只支持0-10V電壓型,通道地址為IW64-IW67
?因此,確定了電位器接入PLC中將以單極性電壓信號的形式進行標定。
4.思考如何進行接線
目前想到兩種方式:
①使用標準的板載10V電壓進行供電,這樣10V對應10kΩ,電壓和電阻剛好滿量程對應,這是極好的,只可惜開關電源出來的直流電沒有10V,所以這種做法只能pass了;
②第二種方式就是利用禾川E600變頻器里面的模擬量10V和GND對電位器進行供電,同時PLC的模擬量輸入公共端2M也用這個10V供電,理論上來講是可行的。
接線圖如下:
5.補一下理論知識
模擬量采集相關方式:
6.PLC配置及程序
這里不用配置,直接把線接好,模擬量對應的變量就是這里的IW64
然后定義一個變量,就可以使用標準化和縮放指令進行程序編寫了
標準化指令計算公式:OUT=(VALUE - MIN)/ (MAX - MIN)
標準化指令相當于把輸入的模擬量轉換為一個百分比
縮放指令相當于把這個百分比轉化為對應的電壓/溫度/阻值等實際工程量?
所以上面的程序大致是:
電位器對應的模擬量接入,在IW64中顯示,以0-27648對其進行約束,并且按照上門的標準化指令計算公式將其轉化為一個百分比。
之后的縮放指令就是將這個百分比按照人們期望看到的物理量進行等比例放大,比如我想看到實際阻值,那么范圍就是0-10kΩ。
電位器旋轉多少阻值,程序里面這個變量就顯示多少的阻值!
7.實際情況是這樣的
實際情況:
當電位器一旦這樣接入后,哪怕我旋轉到最大阻值,也不是10kΩ了,而且會變成2.7kΩ左右,其他的倒沒有什么問題,就是感覺這個電壓和阻值沒對應上,最大阻值變了!
根據初中物理的知識,總阻值變小,肯定是并聯了電阻才會變小,所以這樣的接法必定是哪里并聯電阻進來了。
查找原因:
所以我用萬用表測量了一下10V和GND之間的阻值,發現有3.6kΩ
3.6kΩ并聯10kΩ,出來的總電阻大概為2.64kΩ,那這個就一下豁然開朗了,跟程序里面的數據也能對應的上,大概率就是這個原因!
解決辦法:?
這個沒辦法解決,只能再換個方法了。
8.換第三種方案解決?
不要受到電阻并聯的影響,那就不能用變頻器提供的10V電源了,而是用PLC自帶的24V電源
所以重新進行了接線:
但這種接法需要注意,24V對應的10kΩ,但PLC的模擬量只支持0-10V,那就意味著我們在調節的時候不能超過10V的量程,實測超過的話PLC會報錯。
程序上我也做了調整,縮放指令我直接填0-10,意思是輸出實際電壓,這樣我就可以用萬用表直接測量電位器兩端電壓看是否與程序保持一致。
需要注意的唯一一點就是:電位器不要調得太大,電壓不要超過10V即可!?
以上便是整理調試的思路