- FANUC Series 0i-MODEL D
ここでは、分散I/O分線盤I/Oモジュールを使用しているFANUCのPMCでアナログ入力を扱う方法について解説します。
アナログ信号を読み出す対象のセンサーは、キーエンスの流量センサー「FD-R50」です。
アナログ変換(A/D変換)とは
アナログ信号をPLCに取り込みデジタル信号として利用する技術がアナログ変換(A/D変換)です。
FANUCのアナログ入力モジュールは、信号の電圧または電流の変化を入力値して扱います。
デジタル値に変換されたアナログ信号は、PMCラダー上でバイナリデータとして取り込み可能。
センサーからの測定情報をリニアに取得できるため、フィードバック制御やデータ収集の目的で利用されます。
FANUCのアナログ入力モジュールについて
アナログ信号をPMCラダーに取り込むには、別途アナログ入力モジュールが必要です。
FANUCの0i-MODEL Dでこれを実現する場合、分線盤I/Oモジュール(拡張モジュールD)を利用します。
0i-MODEL Dでの図番は「A03B-0815-C005」です。
他モデルのCNCだと図番が異なるため、使用するモデルに合わせて統合説明書(ハードウェア編)を確認してください。
アナログ龍力ユニットの結線図
アナログ入力モジュールへ入力できるアナログ信号は、電圧または電流の2種類です。
入力が電圧と電流で、アナログ入力モジュールへの結線方法は異なります。
電圧および電流入力時の接続方法は以下のとおりです。
電圧入力の場合
JMPn | 未接続 |
---|---|
INPn | アナログ出力信号 |
INMn | センサー側0V (要接地) |
COMn | |
FGNDn | シールド |
FGND | 接地 |
電流入力の場合
JMPn | アナログ出力信号 |
---|---|
INPn | |
INMn | センサー側0V (要接地) |
COMn | |
FGNDn | シールド |
FGND | 接地 |
アナログ入力ユニットの信号規定
信号規定とは、入力するアナログ信号やデジタル出力のデータ形式などを指します。
この仕様から、センサーが使用できるかどうかやPMCラダーの組み方などを検討しないといけません。
アナログ入力ユニットにおける信号規定は以下のとおりです。
項目 | 仕様 | 備考 |
---|---|---|
入力チャネル数 | 4チャネル | |
アナログ入力 | DC-10V ~ DC+10V (入力抵抗4.7MΩ) DC-20V ~ DC+20V (入力抵抗250MΩ) | |
デジタル出力 | 12ビットバイナリ(-2,048~2,048) | 2の補数表現 |
入出力対応(電圧) | アナログ入力→デジタル出力 +10V → +2,000 +5V → +1,000 0V → 0 -5V → –1,000 -10V → -2,000 | |
入出力対応(電流) | アナログ入力→デジタル出力 20mA → +1,000 0mA → 0 -20mA → –1,000 | |
分解能 | 5mV(電圧入力時) 0.02mA(電流入力時) | |
総合精度 | ±0.5%(電圧入力時) ±1%(電流入力時) | フルスケール |
最小変換時間 | PMCプログラムのスキャン周期 | |
専有入出力点数 | DI → 3バイト DO → 2バイト |
デジタル出力データのビット仕様
PMCラダーでアナログ入力のデータをデジタル出力で取得する際は、アナログ入力ユニットに割り当てられたDOを参照します。
DOの各ビットにおけるデータの役割は以下のとおりです。
ビット | Xm(偶数アドレス) | Xm+1(奇数アドレス) |
---|---|---|
0 | D00 | D08 |
1 | D01 | D09 |
2 | D02 | D10 |
3 | D03 | D11 |
4 | D04 | CHA |
5 | D05 | CHB |
6 | D06 | 0 |
7 | D07 | 0 |
D00~D11 12ビットデジタル出力値
D00~D11までの12ビットがデジタル出力値です。
Xm~Xm+1の生データをダブルワードで取得すると、CHAとCHBのデータもデジタル出力値に反映されるためマスクが必要。
上位ワードの8ビットのうち5~8ビットを論理積でマスクし、8ビット+4ビットの形式でデータレジスタ等に格納してください。
CHA、CHB 選択中チャネル
CHA、CHBは現在選択中のチャネルを出力しています。
2つの組み合わせで、1CH.~4CH.いずれのアナログ信号をデジタル値に変換しているか判別可能です。
チャネルの切り替えは、DIのCHAとCHBの入力状態で変更できます。
チャネル選択のビット仕様
アナログ入力ユニットに渡せるDIビットは、CHAとCHBの2つだけ。
CHAとCHBへの入力状態に応じて、選択したチャネルのデジタル出力を得られます。
1CH.のみ使用するのであれば、CHAとCHBの操作は不要です。
ただし、複数のチャネルを利用する際は、チャネル切り替え回路を別途作成してください。
ビット | Ym(偶数アドレス) | Ym+1(奇数アドレス) |
---|---|---|
0 | ✕ | CHA |
1 | ✕ | CHB |
2 | ✕ | ✕ |
3 | ✕ | ✕ |
4 | ✕ | ✕ |
5 | ✕ | ✕ |
6 | ✕ | ✕ |
7 | ✕ | ✕ |
CHAとCHBの組み合わせによる選択チャネルの組み合わせは以下のとおりです。
CHA | CHB | 選択チャネル |
---|---|---|
0 | 0 | 1CH. |
1 | 0 | 2CH. |
0 | 1 | 3CH. |
1 | 1 | 4CH. |
使用するアナログ出力センサーの性能について
今回使用するセンサーはキーエンスの流量計「FD-R50」です。
配管に設置し、最大600L/minまでの管内流量を測定できます。
出力信号にアナログ信号を有しており、流量情報をアナログ信号によりFANUCのアナログ入力モジュールへ伝達可能です。
アナログ出力の配線図
今回はDC電源で給電するため、M12電源ケーブル(OP-75721)を使用します。
アナログ信号だけを取り出したいので、ch.1をアナログに設定しch.2は使いません。
そのため、使用する線は「①茶」「③青」「④黒」の3本です。
アナログ信号だけを取り出す場合、PNPでもNPNでも接続方法は同じです。
キーエンス FD-R50取説リンク → https://www.keyence.co.jp/products/process/flow/fd-r/models/fd-r50/
アナログ出力設定
流量センサーのアナログ出力は電流のみ。レンジは0mA~20mAと4mA~20mAの2種類です。
今回は断線時に異常を検出できる4mA~20mAを使用します。
今回の流量センサーでは下限値を0mL/min、上限値は600mL/minとします。
よってアナログ出力電流と流量の関係は以下の通りです。
出力チャンネル | ch.1 | |
---|---|---|
測定流量 | 0L/min | 600L/min |
出力電流 | 4mA | 20mA |
流量センサーとアナログ入力ユニットの接続
流量センサー「FD-R50」とアナログ入力ユニットを接続していきましょう。
センサー側は電流出力なので、ユニット側は電流入力の結線図を参考にします。
使用するアナログ入力ユニットのチャネルは1CH.です。
【ノイズ対策】シールド付きツイストペアケーブルを使うため端子台で中継する
センサーのケーブルを直接アナログ入力ユニットに繋がない理由は、シールド付きツイストペアケーブルを使うためです。
金属シールドのないM12コネクタケーブルでは、電磁波由来の飛来ノイズを拾いやすいといった問題があります。
アナログ信号はノイズの影響を受けやすいため、入力信号を安定させるにはノイズ対策が必須です。
そのため、誘導ノイズと静電ノイズに強い金属シールド付きツイストペアケーブルで中継しました。
ノイズ対策について→ アナログ信号計測におけるノイズ対策とケーブルの選び方 | コンテック (contec.com)
PMCラダー内でのI/Oモジュール割付設定
FANUC LADDER ⅢのI/Oモジュール編集からアナログ入力モジュールのDO/DIにPMCアドレスを割り当てます。
追加モジュールにPMCアドレスを割り当てる際は、以下の4点を設定しないといけません。
- グループ
- ベース
- スロット
- モジュール名
グループの設定と意味
グループとはI/O Linkマスタに接続されているスレーブの単位を指します。
マスタに近い順番からグループ0。最大でグループ15まで増設可能です。
画像の場合だと、マスターがCNCでグループ0。
基本モジュールとスレーブの拡張モジュール1~3がグループ1。
その先のI/Oユニットがグループ2となります。
今回追加したアナログ入力モジュールが属するグループは1となります。
ベースの設定と意味
ベースとはI/O Unit-MODEL Aにおけるベース拡張機能を使用した際の単位を指します。
増設用インタフェースモジュールAIF01Bを使用し、最大2台までのI/O Unitを連結可能。
基本インターフェースモジュールAIF01AでI/Oが不足した際に使用する機能です。
今回は分散I/O分線盤I/Oモジュールを使用しているため、ベース拡張機能は使えません。
そのため、既存のモジュール含め追加のアナログ入力ユニットもベースは0となります。
スロットの設定と意味
スロットとはI/Oベースユニット(ABU05AまたはABU10A)上のモジュール実装位置を指します。
こちらもI/O Unit-MODEL A使用時に変更しないといけないパラメータです。
今回は分散I/Oモジュールを使用しているため、スロットの概念はありません。
分散I/Oの場合、モジュールの追加はスロット1のI/Oを拡張していくという概念だからです。
そのため、既存のモジュール含め追加のアナログ入力ユニットもスロット番号は1となります。
モジュール名の設定と意味
グループ内の総I/O点数を設定するのがモジュール名です。
分散I/Oを使用する場合は、コネクションユニット内の項目からモジュール名を選択します。
入力Xと出力Yの各々でモジュール名を設定しないといけません。
以下はアナログ入力ユニット追加前のI/Oモジュール設定です。
- 基本モジュール
- 拡張モジュール1(DI/DOモジュール)
- 拡張モジュール2(2A出力モジュール)
選択モジュール名
- 入力12ビット → CM09I
- 出力8ビット → CM06O
アナログ入力ユニットを拡張モジュール3へ追加した場合、以下のようにI/Oモジュール設定を変更します。
- 基本モジュール
- 拡張モジュール1(DI/DOモジュール)
- 拡張モジュール2(2A出力モジュール)
- 拡張モジュール3(アナログ入力モジュール)
選択モジュール名
- 入力12ビット → CM12I
- 出力8ビット → CM08O
既存のグループ内にアナログ入力モジュールを追加する場合におけるモジュール名の設定は以下のとおりです
①基本モジュール+②アナログ入力モジュールの場合
- 入力→CM06I(基本3バイト+アナログ3バイト:合計6バイト)
- 出力→CM04O(基本2バイト+アナログ2バイト:合計4バイト)
①基本モジュール+②拡張モジュール+③アナログ入力モジュールの場合
- 入力→CM09I(基本3バイト+拡張3バイト+アナログ3バイト:合計9バイト)
- 出力→CM06O(基本2バイト+拡張2バイト+アナログ2バイト:合計6バイト)
①基本モジュール+②拡張モジュール+③拡張モジュール+④アナログ入力モジュールの場合
- 入力→CM12I(基本3バイト+拡張3バイト+拡張3バイト+アナログ3バイト:合計12バイト)
- 出力→CM08O(基本2バイト+拡張2バイト+拡張2バイト+アナログ2バイト:合計8バイト)
連結したモジュールの合計I/O点数を同一グループ内のモジュール名に設定してあげればOKです。
また、各モジュールの組み合わせ順番にかかわらずモジュール名の設定は同じとなります。
I/Oアドレスの割り付け
- グループ
- 1
- ベース
- 0
- スロット
- 1
- モジュール名
- 入力 :CM12I
- 出力:CM08O
以上の4点がわかったので、モジュールにPMCアドレスを割り付けましょう。
今回は拡張モジュール3にアナログ入力ユニットを追加したので、アドレスは同グループの末尾に追加します。
グループ1における既存のアドレス割り付けは下記のとおりです。
入力 | X0000~X0008 |
---|---|
出力 | Y0000~Y0005 |
このアドレスの末尾に入力3バイト、出力2バイトを追加するため、アナログ入力ユニットの割付アドレスは以下の通りとなります。
アナログ入力(DO) | X0009~X0011 |
---|---|
アナログ出力(DI) | Y0006~Y0007 |
流量データを取得するPMCラダーの作成
パラメータの設定が終わったら、ナログデータから実流量を取得するPMCラダーを作成します。
アドレスとビット仕様の確認
PMCラダーを作成する前に、アナログ入力モジュールのアドレスと機能の割り当てを確認しておきましょう。
アナログ入力モジュールのアドレス割り付けはX0009~X0011の3バイト、Y0006~Y0007の2バイトでした。
なので各アドレスビットに対する仕様の割り当ては以下の通りとなります。
出力ビットの割り当て
使用する出力ビットはY0101.0「CHA」とY0101.1「CHB」の2つだけです。
これらはアナログ入力モジュールの読出しチャネルを切り替える際に使用します。
ビット | Y0006 | Y0007 |
---|---|---|
0 | ✕ | CHA |
1 | ✕ | CHB |
2 | ✕ | ✕ |
3 | ✕ | ✕ |
4 | ✕ | ✕ |
5 | ✕ | ✕ |
6 | ✕ | ✕ |
7 | ✕ | ✕ |
Y0007.0(CHA) | Y0007.1(CHB) | 選択チャネル |
---|---|---|
0 | 0 | ch1. |
1 | 0 | ch2. |
0 | 1 | ch3. |
1 | 1 | ch4. |
入力ビットの割り当て
ビット | X0009 | X0010 | X0011 |
---|---|---|---|
0 | 不定(使用禁止) | D00 | D08 |
1 | D01 | D09 | |
2 | D02 | D10 | |
3 | D03 | D11 | |
4 | D04 | CHA | |
5 | D05 | CHB | |
6 | D06 | 0 | |
7 | D07 | 0 |
入力ビットは以下の2パターンに分かれます。
アドレス | 割り当て機能 |
---|---|
X0010.0~X0010.7 X0011.0~X0011.3 | アナログ入力のデジタル変換値(12ビット) |
X0011.4、X0011.5 | 選択チャネルの状態 |
デジタル値は2の補数表現の12ビットデータなので、バイナリで-2,048~2048の範囲で値が出力されます。
2の補数表現とは、最上位ビットを符号とし「0」なら正、「1」なら負として出力するデータの扱い方。
2の補数表現を用いた12ビットバイナリデータであれば、12ビット目が正負を表現し、残りの11ビットで値を表現します。
選択チャネルの状態は、以下の表のとおりです。
X0011.4(CHA) | X0011.5(CHB) | 選択中チャネル |
---|---|---|
0 | 0 | 1CH. |
1 | 0 | 2CH. |
0 | 1 | 3CH. |
1 | 1 | 4CH. |
実流量データとデジタル値の関係を計算する
アナログ入力ユニットから読み出したデジタル値は、計算で加工して実流量と合わせる必要があります。
この計算にあたって必要な情報は以下の2点です。
- アナログ入力(mA)に対するデジタル値
- 実流量に対するアナログ出力(mA)
まずは入力電流(アナログデータ)とデジタル出力値の対応を確認します。
アナログ入力モジュールの信号規定を再度確認してみましょう。
アナログ入力 | デジタル出力 |
---|---|
0mA | 0 |
20mA | 1,000 |
センサ側の出力は4mA~20mAの範囲なので、デジタル出力値と実流量との関係は以下のとおりです。
アナログ入力 | デジタル出力 | 実流量 |
---|---|---|
0mA | 0 | 異常 |
4mA | 200 | 0L/min |
20mA | 1,000 | 600L/min |
このことから、デジタル値1ごとの流量は0.75L/minであることがわかりました。
デジタル値を取得するためのPMCラダー
ここからは、センサーからのアナログ信号をデジタル値をして受け取るPMCラダーを書いていきます。
アナログ入力ユニットへは最大4つまでアナログ信号を入力ができますが、今回は1CH.の1つだけ。
よって、1CH.のデジタル値を取得するラダーは以下のとおりとなります。
デジタル値から実流量を求めるPMCラダー
取得したデジタル値=実流量ではないので、デジタル値を計算にて実流量へ変換しないといけません。
まずはデジタル値から実流量を求める計算式を以下に示します。
デジタル値 1 = 0.75L/min = 750mL/min
よって取得したデジタル値に750を乗算したものが、実流量(mL/min)を示す。
上記の計算式をPMCラダーに変換したものが下記です。
流量のゼロカット
機能命令LTWでデジタル値が200未満のとき、流量がマイナスであることを取得します。
流量がマイナスになることはないため、プログラム内でゼロカットを実行しておきましょう。
デジタル値から実流量(mL/min)の計算
機能命令SUBBで取得したデジタル値から、4mA分のデジタル値200を減算します。
これは流量0L/minの地点が4mAだからです。
出力チャンネル | ch.1 | |
---|---|---|
測定流量 | 0L/min | 600L/min |
出力電流 | 4mA | 20mA |
次に、減算したデジタル値にデジタル値1あたりの流量750を乗算し実流量(mL/min)を取得します。
このプログラムならD0004~D0005のダブルワードに値が入りますね。
あとは取得した実流量をフィードバック制御に使うなり、ログとして使うなりしてください。
以上でアナログ入力ユニットを使って、センサのアナログ信号をデジタル値で取得する方法の解説は終わりです。
【おまけ】複数のチャネルを同時に使用する方法
アナログ入力ユニットには最大4つのアナログ入力を受け付けるチャネルが存在します。
なので1つのユニットで最大4つまで同時にアナログ信号を取得可能です。
その場合、PMCラダー上で読み出し先のチャネルを周期的に切り替える回路を追加する必要があります。
1CH.~4CH.すべてのデジタル値を同時に取得するPMCラダー
以下は4チャネルすべてのデジタル値を取得するPMCラダーです。
チャネル切替タイミング回路
0.1秒ごとに読み出すチャネルの切替をおこなう回路です。
CH1.→CH2.→CH3.→CH4.→CH1.→…
の順番でチャネルの切替を実行します。
チャネル切替、読出し状態取得回路
アナログ入力ユニットのDOとDIを使って、チャネルの切替と読出し中チャネルを取得します。
デジタル値取得、不要ビットのマスク回路
2ワードで取得したデジタル値から不要な情報をマスクし、デジタル値のみを取得します。
X0010.4~X0010.7のビットを0へマスクするのに、MOVE(ビット論理積)を利用しました。
各チャネルのデジタル値取得回路
読出し中のチャネルにおけるデジタルデータをデータレジスタへ保管します。
以上でCH1.~CH4.すべてのデジタル値を取得するPMCラダーの解説は終了です。
参考資料
- FANUC Seriese 0i-MODEL-D、0i Mate-MODEL D 統合説明書(ハードウェア編) B-64303JA/03
- FANUC Seriese 0i-MODEL-D、0i Mate-MODEL D PMCプログラミング説明書 B-64393JA/03
- キーエンス流量計 FD-Rシリーズ 取扱説明書
コメント