三菱PLC和西門子PLC都有自己的獨特的優點的,先講講三菱2AD模塊吧,2AD模塊是提供一個12位分辨率的模塊,最大的數字量是4096.這個4096跟12位分辨率是怎么樣的一個關系2進制的12個1就是4096,。當然這個最大的數字量4096是可以2AD模塊上面的增益電位器調節的
我就拿一個PT100的200度的溫度傳感器為例子,這個傳感器0度對應的模擬量電流是4mA.200度對應的模擬量電流是20mA,第一步就開始校準2AD的增益和偏置,所謂的增益和偏置實際上就是模擬量電流4mA和20mA所對應的數字量,我們拿一個電流發生器產生出一個20mA的電流,然后接到2AD的模擬量電流輸入端。PLC上電以后找到模擬量對應的數據寄存器看里面的當前值是多少,可能里面的數據是一個未知的數據這是因為2AD在出廠的 時候是沒有調節到一個標準的,我們就調節增益電位器使數字量為4000,為什么要調到4000呢因為溫度傳感器的量程為200度他們剛好是一個20倍的關系。接下來就是偏置了,調節電流發生器輸出4mA的電流,就看數據寄存器里面的數字量是多少。如果數據寄存器的數字量為0那我們就不用調節了。增益和偏置調節好以后就接上傳感器實際檢測,PLC里面的程序要用到除法指令,因為要把數據寄存器里面的數據除以20就是實際溫度,當然這是不夠的因為在很多自動化控制的場合要很精確的溫度,所以就要用到浮點數變換指令和浮點數除法指令,三菱的浮點數可以保留小數位后3位即0.000度。
需要特別注意的是以上的是可以完成模擬量功能了,但我們看到的溫度變化是很快的,這是因為PLC每個掃描周期就執行一次模擬量采集和模擬量運算這個時間是很快的一般就20ms就執行一次,所以里面的數字變化是非?欤谶@種情況下我們就要求平均值,具體的方法就是用累加指令在把累加的數據在除以累加的次數就可以。一般累加次數在5到10次之間。
西門子的模擬量跟三菱的是不一樣的他的分辨率比三菱要高,西門子EM231是提供一個16位分辨率的模塊最大數字量是32000也就是一個字的容量。西門子的模擬量在 使用方法上面也和三菱不一樣,因為西門子沒有增益和偏置調節電位器,所有對應的數字量是經過公式計算出來的。雖然如此但西門子的程序模塊化,在程序設計上面要簡化得多直接在AIW數據寄存器里面就可以得到原始數據。
我就一個200度的傳感器簡單說說,這個傳感器輸出的模擬電流是4到20mA,西門子的數字量是0到32000,如果按照三菱的算法則就會出錯,因為4mA不是對應數字量0而是6400,因為他們是1600倍的關系,4mA乘以1600=6400,所以我們得求出數字量6400和32000和溫度200的一個系數,具體公式是這樣的(32000-6400)除以200=128. 這個128就是他們的系數,如果溫度傳感器是400度就除以400。
最后我們把AIW數據寄存器里面的數據除以128就是當前溫度了,需值得注意的是西門子的模擬量最好在中斷程序里面。
http://www.xueplc.com/2016/06/15/4207.html