目錄
模擬量控制簡(jiǎn)介
技術(shù)指標(biāo)&輸入特性
接線方式
通用程序
From/To指令
緩沖存儲(chǔ)器分配
程序設(shè)計(jì)
結(jié)果折算
參考:
《三菱FX系列PLC編程速成全圖解》 韓相爭(zhēng) 化學(xué)工業(yè)出版社
FX2N-2AD中文手冊(cè)說(shuō)明書
三菱FROM、TO指令解釋
模擬量控制簡(jiǎn)介
模擬量處理過(guò)程如圖7-1所示。
——
模擬量I/O模塊包括模擬量輸入模塊、模擬量輸出模塊和模擬量輸入輸出模塊。
FX2N-2AD型模擬輸入模塊用于將2點(diǎn)模擬輸入(電壓輸入或電流輸入)轉(zhuǎn)換成12位的數(shù)字值,并將該值輸入到PLC的BFM中。該模塊無(wú)需外部電源,其電源由基本單元提供,通過(guò)專用的扁平電纜與CPU通信。
兩個(gè)頻道的模擬輸入值可以接受0-10V DC(點(diǎn)),0-5V DC,或者4-20mA之間。
技術(shù)指標(biāo)&輸入特性
產(chǎn)品出廠時(shí),默認(rèn)特性0-10V DC。
模擬量轉(zhuǎn)換的精度除了取決與A/D轉(zhuǎn)換的分辨率,還受到轉(zhuǎn)換芯片的外圍電路的影響。在實(shí)際應(yīng)用中,輸入的模擬量信號(hào)會(huì)有波動(dòng)、噪聲和干擾,內(nèi)部模擬電路也會(huì)產(chǎn)生噪聲、漂移,這些都會(huì)對(duì)轉(zhuǎn)換的最后精度造成影響。這些因素造成的誤差要大于A/D芯片的轉(zhuǎn)換誤差。
接線方式
注意電壓輸入和電流輸入接線方式不同:電流輸入時(shí),VIN與IIN需要短接再接入;電壓輸入時(shí),可直接接入VIN。
信號(hào)輸入設(shè)備與模塊之間最好用屏蔽雙絞線連接,為了減少外界干擾可在VIN與COM端間并聯(lián)1個(gè)0.1~0.47uf的電容。
一般電壓信號(hào)比電流信號(hào)容易受干擾,應(yīng)優(yōu)先選用電流信號(hào)。
電流輸入通道對(duì)地有一250歐姆電阻,當(dāng)電流輸入時(shí),通過(guò)電阻轉(zhuǎn)換為電壓,接入電壓輸入通道,因此模塊的輸入端實(shí)際上就是電壓輸入。模塊的輸入放大器的增益時(shí)可調(diào)的,因此量程是可調(diào)的,量程在5-10V間可調(diào),出場(chǎng)時(shí)量程為10V,如果被測(cè)信號(hào)的最大值小于10V,可通過(guò)調(diào)節(jié)增益電位器來(lái)調(diào)節(jié)量程。
例:如果被測(cè)信號(hào)為0-5V,將模塊輸入端接入5V直流電壓,調(diào)節(jié)增益調(diào)節(jié)電位器,同時(shí)讀取AD轉(zhuǎn)換值,當(dāng)讀取轉(zhuǎn)換值為4000時(shí)即可。
注意
- 由于所有通道都采用同樣的偏移值和增益值,因此兩個(gè)通道的模擬輸入必須統(tǒng)一(即輸入相同類型的信號(hào)),不能一個(gè)作為模擬電壓的輸入,一個(gè)作為電流的輸入;
- 輸入信號(hào)只能是單極性的;
- 模塊轉(zhuǎn)換數(shù)字量對(duì)應(yīng)2^12-1=4095,實(shí)際應(yīng)用中簡(jiǎn)化為4000;
通用程序
From/To指令除了硬件連接,還需要編寫相關(guān)程序用于設(shè)置模塊的工作參數(shù)和讀取轉(zhuǎn)換得到的數(shù)字量以及模塊的操作狀態(tài)。
FX2N-2AD模塊的使用不是很方便,要使用FROM/TO指令。
FROM指令
用FROM指令讀取特殊功能模塊的BFM中的數(shù)據(jù),將A/D轉(zhuǎn)換結(jié)果讀入PLC,指令格式如下:
符號(hào) | 含義 |
---|---|
Cc | 指令執(zhí)行的啟動(dòng)條件 |
FROM | 助記符 |
—>功能號(hào) | FNC78 |
Kn1 | 擴(kuò)展模塊編號(hào),常用K表示 |
Kn2 | 緩沖存儲(chǔ)器BFM的地址;此地址只和模塊本身有關(guān),和模塊編號(hào)無(wú)關(guān),常用K表示 |
Kn3Mn4 | 讀取的數(shù)據(jù)在PLC CPU中的存儲(chǔ)地址,具體含義見(jiàn)下 |
—>Kn3 | 從BFM讀取的二進(jìn)制的位數(shù),常用K表示,以4bit為單位,n3允許值為1~8,例:K4代表16位 |
—>Mn4 | 數(shù)據(jù)在PLC儲(chǔ)存區(qū)域的首地址,M表示讀取的數(shù)據(jù)儲(chǔ)存于中間繼電器。注意:儲(chǔ)存位置可以是數(shù)據(jù)繼電器,此時(shí)無(wú)需前綴Kn3 |
Kn5 | 需要傳送的點(diǎn)數(shù),常用K表示。FROM、FROMP格式時(shí),以16位二進(jìn)制為單位,例:K1代表16位;采用DFROM、DFROMP格式時(shí),以32位二進(jìn)制為單位,例:K1代表32位 |
—>表示該行從屬于上方最近一行沒(méi)有—>的行。
TO指令
使用TO指令用于PLC基本單元將數(shù)據(jù)寫入特殊功能模塊的BFM中,啟動(dòng)A/D轉(zhuǎn)換;
符號(hào) | 含義 |
---|---|
Cc | 指令執(zhí)行的啟動(dòng)條件 |
TO | 助記符 |
—>功能號(hào) | FNC79 |
Kn1 | 擴(kuò)展模塊編號(hào),常用K表示 |
Kn2 | 緩沖存儲(chǔ)器BFM的地址;此地址只和模塊本身有關(guān),和模塊編號(hào)無(wú)關(guān),常用K表示 |
Kn3Mn4 | 寫入的數(shù)據(jù)在PLC CPU中的存儲(chǔ)地址,具體含義見(jiàn)下 |
—>Kn3 | 寫入BFM的二進(jìn)制的位數(shù),常用K表示,以4bit為單位,n3允許值為1~8,例:K4代表16位 |
—>Mn4 | 數(shù)據(jù)在PLC儲(chǔ)存區(qū)域的首地址,M表示寫入的數(shù)據(jù)儲(chǔ)存于中間繼電器。注意:儲(chǔ)存位置可以是數(shù)據(jù)繼電器,此時(shí)無(wú)需前綴Kn3 |
Kn5 | 需要傳送的點(diǎn)數(shù),常用K表示。FROM、FROMP格式時(shí),以16位二進(jìn)制為單位,例:K1代表16位;采用DFROM、DFROMP格式時(shí),以32位二進(jìn)制為單位,例:K1代表32位 |
轉(zhuǎn)換結(jié)果數(shù)據(jù)在模塊緩沖存儲(chǔ)器(BFM)中的存儲(chǔ)地址如下,BFM是16位的:
程序設(shè)計(jì)表中:
A/D通道選擇:b0=0,選擇CH1通道;b0=1,選擇CH2通道
A/D轉(zhuǎn)換啟動(dòng):b1由0變1時(shí),轉(zhuǎn)換開(kāi)始
使用前還需確定模塊的編號(hào),F(xiàn)X系列可以連接多達(dá)8個(gè)特殊功能模塊,其編號(hào)從最靠近基本單元的那一個(gè)開(kāi)始順次編為0-7號(hào),注意數(shù)字量I/0擴(kuò)展模塊不占編號(hào)。
單通道
下面展示一段非常經(jīng)典的AD模塊程序,采用了通道1進(jìn)行轉(zhuǎn)換,幾乎在每本教材中都會(huì)出現(xiàn):
下面對(duì)該梯形圖程序進(jìn)行逐行解釋:
- CPU在第一個(gè)特殊模塊(K0)的BFM17(K17)中,向bit0(H0=0B)寫入0,意思是選擇模塊的CH1通道;
- CPU在第一個(gè)特殊模塊(K0)的BFM17(K17)中,向bit1(H2=10B)寫入1,即啟動(dòng)CH1通道 的AD轉(zhuǎn)換功能;
兩行代碼沒(méi)法合成一行。
- K2M100,該操作將第一個(gè)模塊的BFM#0 的低八位(b0-b7)讀到CPU的M100-M107,BFM#1的低八位(包含有效數(shù)據(jù)b0-b3)讀到CPU的M108-M115,即讀取CH1通道的12位數(shù)字值;
這個(gè)問(wèn)題我想了有一段時(shí)間了,BFM#0和BFM#1中共有16+16位數(shù)據(jù)(包括保留位),所以轉(zhuǎn)移的點(diǎn)數(shù)位K2(K1代表16位,因此K2代表32位),然而儲(chǔ)存,目的地址為K2M100(K2代表8位)而非K4M100(K4代表16位)。之所以采用K2M100而非K4M100,可能是因?yàn)楹笳邥?huì)使12位數(shù)字值不連續(xù),高位和低位數(shù)據(jù)分散需要額外編寫傳送指令;前者剛好使低八位和高四位連續(xù)。
- K4M100,該操作將M100-M115的數(shù)據(jù)內(nèi)容轉(zhuǎn)移到數(shù)據(jù)儲(chǔ)存器D0中(通道1的高端4位移動(dòng)到下面的8位位置上,并存儲(chǔ)到D0);
雙通道
如果要同時(shí)使用兩個(gè)通道,可采用如下程序:
實(shí)際上在BFM#17中同一時(shí)間只能設(shè)置1個(gè)通道工作,因此圖中X0和X1在同一時(shí)間只能有一個(gè)置位,這也是為什么兩個(gè)通道都將臨時(shí)數(shù)據(jù)存儲(chǔ)到K2M100卻不會(huì)造成數(shù)據(jù)沖突;若二者同時(shí)置位,會(huì)導(dǎo)致程序不能正常運(yùn)行。
注意
從X0/X1打開(kāi)至模擬到數(shù)字轉(zhuǎn)換值存儲(chǔ)到主單元的數(shù)據(jù)寄存器之間的時(shí)間為2.5ms,因此兩通道的切換時(shí)間不得小于該處理時(shí)間。
為了將模擬量模塊內(nèi)部數(shù)字量與實(shí)際物理量對(duì)應(yīng),需要找出二者的數(shù)據(jù)比例關(guān)系。
設(shè)X為數(shù)字量(0-10V),M為模擬量(0-4000),可得:
M=X/400
如果直接寫入DIV D0 K400 D2,由于除法指令無(wú)法除小數(shù)的特性,其結(jié)果總是為整數(shù),小數(shù)會(huì)被省略,因而數(shù)據(jù)精度遭到折損。
可以將X從0-10V的范圍轉(zhuǎn)換到0-10000mV,這樣算式為:
M=1000X/400
=10X/4
即將小數(shù)擴(kuò)大為整數(shù)來(lái)保留值。
修改后的程序?yàn)椋?BR>
用了兩個(gè)指令,先乘后除。
乘法MUL指令和除法DIV指令占取兩個(gè)寄存器,如果只保留一個(gè)會(huì)造成數(shù)據(jù)錯(cuò)誤。
平均值濾波
(摘自FX3U手冊(cè),不清楚FX2N有沒(méi)有這個(gè)功能)模擬量輸入模塊可能采集到緩慢變化的模擬量信號(hào)中的干擾噪聲,這些噪聲通常以窄脈沖的方式出現(xiàn),為了減輕噪聲信號(hào)的影響,模塊提供連續(xù)若干次采樣值的平均值,可以設(shè)置求平均值的采樣周期數(shù)。但是,取平均值會(huì)降低PLC對(duì)外部輸入信號(hào)的響應(yīng)速度。