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