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