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