原廠的資料:FX2N-2AD
FX2N-2AD是2 port的類比輸比模組
但我們要看的幾個重點:
1.硬體接線:(手冊第一頁)
如果是類比電壓輸入,只要接VIN 跟COM
但如果是類比電流輸入,就一端接COM,另一端接到VIN,再並到IIN。
其他電流輸入的接法,曾使用過的AD模組,幾乎都是要把VIN 跟IIN並接。
2.設定方式:
在模組記憶體#0 的低8位跟 跟#1 的低4位為,為類比轉換後的數值存放區。
簡單講,就是我們要讀的區域啦。
模組記憶體#17 是設定通道,及啟用(ON/OFF)的地方。
3.PLC範例:
手冊也有附範例如下:
先介紹:TO 指令
TO指令的編程格式: TO K1 K12 D0 K2
*K1:特殊模塊的地址編號,只能用數值,範圍:0---7
*K12:特殊模塊的緩衝存儲器起始地址編號,只能用數值,範圍:0---32767
*D0:源寄存器起始地址編號,可以用T,C,D數值和位元件組合如K4X0
*K2:傳送的點數,只能用數值。範圍:1---32767
再介紹 :FROM指令
讀出指令FROM的編程格式:FROM K1 K29 D0 K2
*K1:特殊模塊的地址編號,只能用數值,範圍:0---7
*K29:特殊模塊的緩衝存儲器起始地址編號,只能用數值,範圍:0---32767
*D0:目標寄存器起始地址編號,可以用T,C,D和除X外的位元件組合如K4Y0
*K2:傳送的點數,只能用數值。範圍:1---32767
黃框是設定通道1及把資料讀回D100的位置。
第一行就選定到通道1
第二行,是啟用通道1,開始轉換(類比轉數位)。
第三行是把數據寫入到M100~M115。
為什麼不直接搬到D值!?
因為數據是分別放在#0的低8位元,跟#1的低4位元,直接搬到D,還是要處理過。
而原廠提供的寫法:
K2M100 是指 M100~M107
K1M100 是指 M100~M103 (K1 代表4個位元)
如果是
FROM K0 K0 K2M100 K1
就是把#0的低8位元,放到M100~M107
.
如果是
FROM K0 K0 K2M100 K2 <=K2代表搬2筆。
把#0的低8位元,放到M100~M107
把#1的低8位元,放到M108~M115
很巧妙的把高8位元濾掉,而且串在一起。
最終再把 M100~M115搬到D100,
就可以直接呈現我們需要的數值了。
(這邊K4M100個人覺得是K3M100就夠了,因為只有12個位元,有用)
4.調整:(偏移及增益調整)
在模塊上,有兩個旋鈕,可以調整偏移(OFFSET)跟增益GAIN)
當外部裝置輸出為0時,讀到的不是0,就應該調整偏移(OFFSET)。
出廠預設是0~10v時,D100會讀到4000。(12bit的解析度,4095為最大值)
但如果10v時,不是4000,就要調整增益(GAIN)。
如果我們的輸出只有0~5V,也可以在輸出5V時,利用增益,調整到4000的輸出。
此時的解析就提高了。
5.一些使用經驗:
A.如果是電流輸入,記得,要把VIN 跟 IIN 短路。
B.客戶一定會問,為什麼讀到的數值跟錶頭有誤差!?
是錶頭輸出的類比數值,本身的直線性,就是有一定的誤差。如下圖:
如果你的錶是0-1M Pa(最大值),誤差是0.7%F.S,那誤差值=1M Pa x 0.7%=0.007M Pa=7k Pa
如果PLC是FX3U,用RD3A指令就可以直接讀AD的數值
回覆刪除範例
LD M8000
RD3A K0 K21 D100
範例說明
K0是右側的第一顆外掛模組
K21是CH1 (如果接CH2就改成K22)
D100是AD數值的暫存器
DA的特殊指令是WR3A
刪除作者已經移除這則留言。
刪除所以請問fx2n-2ad可以連接fx3u嗎?
刪除那如果可以,使用fx3u-4ad會比使用fx2n-2ad還方便嗎?
可以連FX3U,在模組資訊中有適用的PLC。但fx2n-2ad好像停產了
刪除第三行是把數據寫入到M100~M114。
回覆刪除[from k0 k0 k2m100 k2],此程序不是代表將fx-2ad轉換為數位位元的低8位元與高4位元分別傳送到plc的M100~M107與M108~M115,合起來剛好是一個M100~M115組合字元件(16bit),作者所敘的M100~M114似乎???????
為什麼不直接搬到D值!?
所處理的為bit的資料,不傳送到M100~M115組合字元件,而傳送到d資料儲存器,那就需要使用兩個d資料儲存器儲存,兩筆資料原本就該是一體的,那終究還是要轉換回組合字元件,那不就把原本簡單的事複雜化????
小弟個人淺見,歡迎指教!
1.應該是我寫錯了,8+4 是12沒錯。謝謝指正。
刪除2.你的意思應該是直接傳到兩個D吧!?
因為原本的AD模組就拆開了,放在兩個D的低8位元,
可能要問原廠為什這麼設計?
為什麼放在BIT,而不是兩個D,
你可以看看要怎麼把兩個D的低8位組在一起?
會比現在的方法簡單嗎?
我印象有有特殊指令可以合成一起,
不然就是要X256再相加
PLC寫法沒有固定,自已能理解的就是好方法。
雖然只用到12個位元,但程式是用到M100-M115,
刪除我還是改成程式的原義。
陳老師您好,我在網上看到一試題如下,答案為 (3),請問為甚麼?
回覆刪除使用A/D模組,若實際之信號為5~19mA,則參數中之GAIN需調整為(1) 38000 (2)9500 (3)19000 (4)5000。
============================
補充:我由台達 04AD-H2 的規格書中看到的是:
類比輸入範圍 ±10V ±20mA
數位轉換範圍 ±8,000 ±4,000
參照網路說法,如果0V不對應0時,調整Offset;如果10V沒對應10時,則調整GAIN。使諸一致)
請問是否因為要將 0~19mA 調到對應的 0~19,所以算出來增益為 19000 ???
好像又不太對咧~~~
這個A/D、D/A 類比模組 各家的調法不太一樣,很難回答。
刪除如果依台達的調法,是錯的~也許其他家裝置是對的。
但調到最後,會發現還不是很線性,因為外部裝置的線性度很差。
了解了,增益係依據各家的轉換特性曲線來進行調整。。。
刪除然而,請問陳老師,在實務上是否有方法與是否有必要要解決外部裝置的非線性問題呢?
非常謝謝陳老師您的指導與分享!!!
通訊型~可解非線性問題
刪除例:MODBUS通訊,可以選的裝置就很多
要不要解,是看客戶在乎的程度。
一般不貴的機台沒差,貴的機台,客戶會在乎。
如果一般錶頭都是在固定的範圍的話,可以透過GAIN來微調,使該範圍會比較準,
但其他範圍會跑掉一點,因為不用常,跑掉多一點也看不到。
觀念我已清楚,非常感謝陳老師的熱心指導。
刪除我會循此邏輯去找些資料進行研讀~~~
請問2DA和2AD,假設D100為扭力設定D102為速度設定,如何寫
回覆刪除2DA 跟 2AD 是什麼功能先搞清楚吧!
刪除2AD是 Analog to Digital 是輸入模組,將類比電壓/電流,轉成 數值 給PLC讀取。
2DA是 Digital to Analog 將PLC數值,轉成 類比電壓/電流 給外部信號
以上都跟扭力 速度無關。
是需要配合 外部的馬達設定才能達到,你的要求。
感謝
刪除請問老師,因為不懂DA/AD.模組的寫法(To k0 k0 H1100 K1)(FROM k0 k5 D100 k4)這寫法是甚麼意思假設我D100值為20000,2DA如何讓它輸出電壓
回覆刪除1.請先看FX2N-2DA的手冊:才能讓我們說一致:
刪除2DA手冊如下:http://eleceng.dit.ie/jmcgrory/FXPLC/FX2n_PLC_Manual%202DA.pdf
(或提供你看的資料)
其中:「6. Allocation of buffer memory (BFM)」
TO/FROM指令,就是在對這個區塊做讀寫。
就是指令介紹中的「特殊模塊的緩衝存儲器起始地址編號」
=====
TO指令的編程格式: TO K1 K12 D0 K2
*K1:特殊模塊的地址編號,只能用數值,範圍:0---7
*K12:特殊模塊的緩衝存儲器起始地址編號,只能用數值,範圍:0---32767
*D0:源寄存器起始地址編號,可以用T,C,D數值和位元件組合如K4X0
*K2:傳送的點數,只能用數值。範圍:1---32767
=====================
#16是輸出的數值,只有低8位元有效
#17是輸出的開關:
BFM#17:
b0•••The D/A conversion of CH2 begins by changing of 1→0.
b1•••The D/A conversion of CH1 begins by changing of 1→0.
b2•••The subordinate position eight bit data for the D/A conversion is held by changing of 1→0.
=====================
簡單來說:
1.使用TO指令對 BFM#16 寫入資料(注意只有低8位元,超過再處理)
2.使用TO指令對 BFM#17 再寫入2(CH2) 或 4(CH1) 就會輸出。
其他程式都在處理流程及數值。
老師依照這個問題,照著手冊提供的程式下去跑,我人機D100是要指定轉速,讓客人在D100輸入值2000,那程式跑出來丟給伺服它就會跑轉速2000嗎??還是需要PLC側做數值轉換呢?
刪除照這個範例,是可以把D100的值內容輸出。
刪除1.D100的值,最大好像是4096,輸出10V,所以2000是5V左右。
2.如果伺服收到5V,會轉2000,那就成立
不然就是需要轉換。
感謝,那我瞭解了
刪除請教老師,上面完成後馬達是正轉,假如要反轉不設定伺服控制器的話,要如何讓值變成負值呢?
刪除d/a輸出馬達會正轉,如果要反轉就是輸出反向電壓。
刪除簡單來說就是把D的值反向。
但要注意輸出電壓是不是有反向。
如果沒有反向,可能是設定到輸出只能0-10V,
沒有正負。要改一下是±10V
伺服驅動器一般都可接受±10V,去查一下手冊
作者已經移除這則留言。
刪除我剛看了手冊,這2DA不能輸出負值,所以要改驅動器的旋轉方向。
刪除或是利用output來切換正反轉,D/A控制轉速
如果D值輸入負的,還是可以正常轉換,
因為1個D是16位元,加上D原本就可正負,所以最高位元是正負符號。
謝謝老師
回覆刪除請問可否舉一個 WR3A 使用範例
回覆刪除FX1N, FX2N (V3.00 or later), FX2NC (V3.00 or later), FX3G, FX3GC, FX3U or FX3UC series PLC
刪除註:以上版本的PLC才支援這個指令。
WR3A K0 K1 D20
K0:2AD模塊版號
K1:通道選擇 Ch1、Ch2
D20:寫入的數值
基本上這個指令就取代,手冊裡的範例程式了。
手冊
:
http://dl.mitsubishielectric.com/dl/fa/document/manual/plc_fx/jy992d74901/jy992d74901g.pdf
請教老師,我自己使用上面程式來測試,D20這個值一樣是使用0~4000來讓模組自行換算,還是得自己換算成要要丟入的值呢?
刪除抓到問題了,值可以一樣是丟0~4000,但是通道部分參考上面的RD3A把通道改成K21跟K22就完成了
刪除1. 16位运算(RD3A)
刪除m1· : 特殊模块编号
FX3G·FX3GC·FX3U·FX3UC(D、DS、DSS)系列: K0~K7
FX3UC-32MT-LT(-2): K1~K7(K0为内置CC-Link/LT主站。)
m2· : 模拟量输入通道编号
FX0N-3A*1 : K1(通道1),K2(通道2)
FX2N-2AD : K21(通道1),K22(通道2)
: 读出数据
保存从模拟量模块中读出的数值。
FX0N-3A*1 : 0~255(8位)
FX2N-2AD : 0~4095(12位)
*1. FX0N-3A仅支持FX3U·FX3UC可编程控制器。
陳老師 可否幫忙寫一下
回覆刪除台達DOPEX2 類比輸入 4到20ma的
程式
我沒寫過,但看這個影片,應該是設定D1115為4-20ma
刪除從D1110~D1114可以讀取到A/D值
切換時,不確認是否要關閉通道。(D1114)
還有相關的裝置:M1180 立即讀取 AD 數值(僅適用於 EX2/SX2 機種)應該不是必要的
https://www.youtube.com/watch?v=ovVJk7PBAjU&t=386s
可以參考這影片
手冊:第2-68頁:
http://www.deltaww.com/filecenter/Products/download/06/060301/Manual/DELTA_IA-PLC_DVP-ES2-EX2-SS2-SA2-SX2-SE-TP_PM_TC_20140829.pdf
D1115裝置編號 功 能 說 明
20EX2/SX2 機種類比輸入輸出模式設定 (預設為 H’0)
bit0~bit5 代表電壓/電流功能選擇, 0 為電壓, 1 為電流 (預設為電壓)
bit0~bit3 代表類比輸入 AD0~AD3
bit4, bit5 代表類比輸出 DA0, DA1
bit8~ bit 13 為電流模式選擇
bit8~ bit11 代表 AD0~AD3,0 為-20mA~20mA, 1 為 4~20mA
bit12, bit13 分別表示 DA0, DA1,0 為 0~20mA, 1 為 4~20
為什麼fx2ad選擇電流輸入接法,plc按照標準寫法,暫存器讀到415~2020,而不是0~4000
回覆刪除引前頁若選擇電壓輸入接法,暫存器獨到的值為0~4000
回覆刪除再次請問,若FX2AD出廠值預設是輸入電壓0~10V,改變成電流,程式需要設定嗎
回覆刪除請仔細請一下 D1115的說明:
刪除bit0-5是選擇電壓或電流,預設為電壓
bit8~ bit11 代表 AD0~AD3,0 為-20mA~20mA, 1 為 4~20mA
D1115裝置編號 功 能 說 明
20EX2/SX2 機種類比輸入輸出模式設定 (預設為 H’0)
bit0~bit5 代表電壓/電流功能選擇, 0 為電壓, 1 為電流 (預設為電壓)
bit0~bit3 代表類比輸入 AD0~AD3
bit4, bit5 代表類比輸出 DA0, DA1
bit8~ bit 13 為電流模式選擇
bit8~ bit11 代表 AD0~AD3,0 為-20mA~20mA, 1 為 4~20mA
bit12, bit13 分別表示 DA0, DA1,0 為 0~20mA, 1 為 4~20
FX2AD出廠值預設是輸入電壓0~10V,改變成電流,程式需要設定嗎
刪除FX2AD是沒有參數可以切換的,所以需要靠OFFSET & GAIN來把電流調成4-20ma,或0-5v
而且兩組Channel 是共用的,代表只能是0-10v、或0-5v,4-20ma其中之一。
三菱fx2n-2ad有d1115特殊設定嗎,謝謝
回覆刪除我回錯人了 ,D1115是台達的
刪除老師 還是看不懂 可以寫1個4到20ma輸入嗎
刪除我也看不懂你問的是什麼? 有人問台達的有人問三菱?
刪除什麼產品?
陳老師,可否請問您
回覆刪除1.FX5U-8AD 這款的類比模組要怎麼做才能使PLC讀到類比訊號呢
看了5U的手冊真的是一頭霧水…
配線 V+ 接正極,COM接-級了
程式上不太懂要KEY哪些指令才能使我指定的D100出現電壓訊號(我是用電池去送外部接點1.5V)
但我的D100永遠只顯示0
2.TO K0 K17 H0 K1
這段意思是 指定我的AD模組#1,並將16進制0000的第1格數字0,傳送到BFM#17裡嗎??
3.上面寫的教學FX5U是否能用呢??
因為我不知道你卡在那個步驟:
刪除請提供你看的手冊。再說到那個步驟。
==============
不然依我看的資料。
http://www.meltrade.hu/dokumentumok/1._Programozhat%C3%B3_logikai_vez%C3%A9rl%C5%91k_(PLC)/1.3._Kompakt_PLC_-_MELSEC_FX5/1.3.a._Programoz%C3%B3i_le%C3%ADr%C3%A1sok/FX5_-_User's_Manual_(Analog_Control_-_Intelligent_function_module)_081802ENG-A_(04.17).pdf
MELSEC iQ-F
FX5 User's Manual
(Analog Control - Intelligent function module)
1. 7.2章節,要先設定模組資料 ,(第8章有範例。預設是off,要設定輸入範圍後,才會啟動enable)
2.第94頁,有程式範例,用的是mov u0\g400 d100 將模組資料寫到d100
當然前面的一條件都要成立。
例:ready U1\G69, b0
CH1 COMPLETE FLAG U1\G42, b0
Conversion completed flag U1\G69, b0
Operating condition setting completed flag U1\G69, b9
要說一下,那些條件沒成立,才好找問題
老師您好:
回覆刪除想請教一下
2AD可以同時讀取兩個通道的值嗎?
範例程式的寫法,他是透過X0跟X1去做ch的切換
那如果今天把他整合成一個
就是把X0跟X1替換成2個M8000這樣可行嗎?
可以同時讀兩通道沒問題
刪除