1.PLCから数値を出力
以前にPLCへ数値を入力するためにはどうするのかについてをアナログ入力ユニット〜PLCと数値入力〜の記事で説明しました。ここで疑問がわく人もいると思います。
「【入力】があるということは、【出力】もあるのでは?それはアナログデータでも同じなのでは??」
そのとおりです。あります。二値レベルの信号とその考え方は同じです。
この記事では「PLCからのアナログによる出力信号の利用方法」と「如何にして出力するのか」という方法論について解説します。これまで解説してきた二値化レベルの信号やタイマー,カウンターなどの内部機能を自在に扱い、さらにアナログの信号までも自在に扱えれば非常に多岐にわたる制御を構築することが可能になります。
そうなってくるとPLCを扱う楽しさも味わうことができるのではないでしょうか。業務をこなしながら、でもゲーム感覚なんていうストレスフリーな展開もあり得ます。事実筆者はそういうことが何度かありました。悩めば悩むほどどこか楽しく感じられるという瞬間です。ぜひ皆さんにも楽しみながら仕事を進めていけるような感覚を味わっていただきたいと感じます。もちろん毎回毎度そういうわけにもいかず、逃げ出したくなるような場面にも遭遇しますが。
いずれにしてもアナログによるPLCからの出力を使いこなし、業務に役立てていただければ幸いです。
2.アナログ出力ユニット接続要領
アナログ出力ユニットにおける接続について説明します。
ユニットへの接続としてはアナログの入力ユニットと非常に似ており、同じように接続するだけで良いです。しかし、もちろん差異もありますので必ず取扱説明書での確認をしてください。ここでは比較的標準的でありかつ使い勝手の良いユニットを例に説明します。
また、アナログ入力についての説明時同様に配線番号は振っていません。実際の設計時には必ず配線番号を付加してください。
説明画像はクリックやタップで拡大可能です。そのままでは分かりづらいと思いますので適宜拡大してご覧ください。
1)キーエンス製PLCのアナログ出力ユニット(ex.KV-DA40シリーズ)
キーエンス製のKV-40DAシリーズでの接続図を以下に記載します。
このシリーズは1ユニットに出力チャンネルを四つ搭載しています。ここではそのうちの2チャンネル分を使用した場合で説明します。
キーエンス製のアナログユニットでは最初のチャンネルを「ch0」とよびます。「ch」は「チャンネル」の略号です。そして四つ目のチャンネルは「ch3」となります。上記の図では「ch0」と「ch2」に配線接続を施して使用するかたちとしています。「ch0」は電圧出力として、「ch2」は電流出力として接続しています。
電圧出力でも電流出力でも接続は非常に単純です。使用する出力の種別に応じ各々のプラスとマイナスを負荷に合わせて接続するのみとなります。負荷側の機器が電圧による信号の受け取りとなっているのか、電流による信号の受け取りとなっているのかを間違えないようにしましょう。
つまり、電圧出力では負荷のプラス端子にKV-DA40の「V*+」を、負荷のマイナス端子にKV-DA40の「V*-」を接続するだけで完了です。ちなみに「*」はチャンネルナンバーが入ります。
2)三菱電機製PLCのアナログ出力ユニット(ex.Q64DAH)
三菱電機製のQ64DAHでの接続図を以下に記載します。
こちらも1ユニットで四つの出力チャンネルを搭載しています。そのうち二つのチャンネルを利用した接続例を図示します。
三菱電機製のアナログユニットでは最初のチャンネルを「CH1」とよびます。「CH」は「チャンネル」の略号です。四つ目のチャンネルは素直に「CH4」となります。上記の図では「CH1」と「CH3」に配線接続を施して使用するかたちとしています。「CH1」は電圧出力として、「CH3」は電流出力として接続しています。チャンネルのよび方こそ違いますが、それ以外は先で述べているキーエンス製のユニットと同じ使用方法です。
しかし、接続方法はキーエンス製と異なりますので充分に注意してください。型式ごとの詳しい接続については取扱説明書を必ず確認してください。
上記「Q64DAH」を例にした接続に関する説明を続けます。このユニットでは電圧による出力であっても電流による出力であっても必ず「COM」を使用します。「CH1」での電圧による出力では「V+」と「COM」を接続します。各々、「V+」に負荷側のプラス端子を、「COM」に負荷側のマイナス端子を接続します。「CH2」での電流による出力では「I+」に負荷側のプラス端子を、「COM」に負荷側のマイナス端子を接続します。ここでも負荷側が電圧による信号受取か、電流による信号受け取りかには充分注意してください。
3.入力ユニットとの違い
アナログ入力ユニットとアナログ出力ユニットは、その形や接続方法,チャンネル数などがよく似ているとはいえ、ユニットを基準にみたときに片や信号受信であり片や信号発信となります。必ずその特徴を反映するような違いはあるはずです。ここではその大きな違いについて触れていきます。
1)電源
アナログ出力ユニットは負荷機器に向かって信号を発する機器であることはこれまでの説明でも明らかです。この事実はユニットの電源の扱いに違いをもたらしています。
当たり前のことですがアナログ入力ユニットでは伝送器などのセンサー類から信号を受け取ります。その際の電源の扱いについてセンサーや変換器を含み考慮の必要があります。例えばアナログ入力ユニットに対して信号を送る伝送器が2線式であるか4線式であるかによって推奨される機器の使用(仕様)や配線方法が変わります。
2線式による伝送器をユニットに接続する場合、パワーサプライなどを介しユニットに接続することで回路上では信号の取得が可能となりますが、この場合伝送器やアナログ入力ユニットのインピーダンスを考慮する必要があります。
これを解消するためには下に述べているアイソレータやディストリビュータを使用することが望ましくなります。また、メーカーによってはディストリビュータの機能を持つユニットも存在しますのでこれを利用することも検討項目のひとつとなります。
対して、アナログ出力ユニットではこの必要がありません。もちろん負荷となる受信側機器のインピーダンスはシステムの正常動作に大きく関与しますが、あまり意識せずとも使用できるように設計されていることがほとんどです。
どうしても気になるという方はユニットの取扱説明書を見てみてください。たいていは配線方法を記載したところに負荷側のインピーダンス(抵抗値)の範囲が記されています。
2)アイソレーターの要不要
PLCのアナログ入力ユニットを使用する場合はその多くでアイソレーターを同時に使用し、システムに組み込むことがセオリーではないでしょうか。もちろんその限りではありませんが、より安全確実なシステム構築を目的にするならばアイソレーターを除くことはしないでしょう。
これは先に述べた2線式の伝送器を使用する以外にも理由があります。アイソレーターやディストリビューター使用の目的のひとつに「絶縁」というものがあります。このことはアイソレーター・ディストリビューターの記事でも説明しています。
安全確実を目的とするときに、上記アイソレーターを使用し絶縁の効果を得なければならない理由とは何なのでしょうか。その答えとしては「アナログ入力ユニットには盤の外から信号が送られてくることがほとんど」というところにあると考えて間違いないでしょう。これは遠方から配線で接続されるという意味であり、伝送器とユニット間での短絡のリスクが盤内で完結している系統より大きいということになります。ユニットと直結された経路上で短絡が発生すると、場合によってはアナログ入力ユニットがダメージを受けることとなりシステムに多大な影響を与えます。その防止策としてアイソレーターを経路内に挿入し、外的要因でシステムが破壊されないようにするということになります。
では、アナログ出力ユニットにそのような措置は必要ないのでしょうか。もちろん遠方の負荷に信号を送る場合はアイソレーターなどがあった方が良いでしょう。しかし、アナログ出力ユニットが信号を送信する先というのは盤内のモニターであったりインバータなどの駆動機器であることが多いです。この場合は短絡のリスクが外部に延びる配線に比べてかなり低くなりますのでアイソレーターなどでの絶縁は不要であると考えられます。これもアナログ入力ユニットと比べると大きな違いとなります。
4.PLC内部の設計とアナログデータの出力
いよいよPLC側でプログラミングを含む設定および設計に入ります。とはいえなにも難しいことはありません。アナログの入力について理解できていれば単純に逆手順となるだけです。
今回もキーエンス製PLC対応のKV STUDIOと三菱電機製PLC対応のGX Works2で説明をします。
制御の内容としてはPLCにアナログ入力ユニットで取得したデータをそのままアナログ出力ユニットで出力するというものです。このような入出力を調節計などでは「伝送出力」といいます。用途としては入力されたアナログのデータを制御で使用しつつレコーダやモニターに出力するという使い方です。今回のPLCラダーではそのうちのデータ取得と出力の部分を抜粋して記述します。
以下画像を中心に説明します。
説明画像はクリックやタップで拡大可能です。そのままでは分かりづらいと思いますので適宜拡大してご覧ください。
1)KV STUDIOでアナログ出力
ここではキーエンス製PLC用のソフトウェアであるKV STUDIOでのアナログ出力における設定とPLCラダー記述について説明します。制御内容は「4.」で説明しているとおりです。
ちなみにPLCラダーの完成形は以下の画像のようになります。この画像では見えない、ユニットごとの設定や設計仮定については以降で順に説明します。
また、各デバイスについては毎度のことではありますが「XYM」表示のモードを使用しています。モードの変更についてはPLCプログラム〜ラダー図の基本〜の「2.PLCラダー作成」を参照してください。
a.プロジェクトの新規作成とユニットエディタ設定
ユニットの構成や各ユニットの詳細設定を行います。ここがしっかり設定できていなければどれだけがんばってPLCラダーを記述してもうまく動作しませんのでしっかりおさえていきましょう。
①プロジェクトの新規作成
KV STUDIOを立上げてプロジェクトファイル名の決定(「アナログ出力」とつけています)や機種選択をします。ここではCPUとして「KV-8000」を選定しています。
プロジェクトの新規作成に関する設定が完了し、ウィンドウの「OK」をクリックすると以下のように「運転記録」の自動設定について問われます。「後で設定」でも良いのですが、ここではこの「KV-8000」独自の機能である運転記録については説明を割愛しますのでひとまずは「はい」をクリックして自動設定とします。
②ユニットエディタ設定
「ユニット構成設定の確認」のウィンドウが開きます。「はい」をクリックするとそのままユニットエディタが開きます。「いいえ」を選択しても後ほどユニットエディタには入れます。「いいえ」を選択した場合のユニットエディタへの入り方は以降の手順です。
ユニットエディタウィンドウを開く手順についてです。画面左側のツリーの上部にある「ユニット構成」を右クリックします。
展開したメニューの「ユニットエディタ」をクリックします。
③ユニットの追加
ユニットエディタのウィンドウが開きます。すでにアクティブになっているかもしれませんが、ウィンドウ内右側に「ユニット選択」タブをクリックします。
基本的なユニットとなるディジタルの入出力ユニットの追加になります。入力ユニットとして「KV-B16X*」をドラッグアンドドロップで「KV-8000」の右隣へもっていきます。
続いて「KV-B8RC」をドラッグアンドドロップ操作で先ほど追加した「KV-B16X*」の右隣にもっていきます。「Connection Unit」や「End Unit」は自動的に付加されます。
「KV-B16X*」へは「X3400~X340F」が、「KV-B8RC」へは「X3500~X350F」が自動的に割り振られていますが今回はこのままの設定で使用します。番号は任意で決定できますので後のPLCラダーでどのように使用するかを考慮のうえで決めてください。
続けてアナログ入力ユニットを追加します。「KV-AD40」をドラッグアンドドロップ操作で「KV-B8RC」の右隣に持っていきます。
そして今回の主役であるアナログ出力ユニットの追加になります。「KV-DA40」をこれまで同様にドラッグアンドドロップ操作で「KV-AD40」の右隣にもっていきます。「KV-AD40」と「KV-DA40」は「A」と「D」が入れ替わっているだけですので間違えないように注意が必要です。
自動的に割り振られている「R3600~R36115」と「R37000~R37015」はデフォルトのままにしておきます。
④アナログ入力ユニット設定
アナログ系のユニットに関する設定をしていきます。
まずはアナログ入力ユニットからになります。
「KV-AD40」を選択した状態で「ユニット設定」タブをクリックします。「KV-AD40」の選択はマウスのポインターをそのユニットに合わせ、クリックすることで可能です。
「KV-AD40」の「先頭DM番号」を決定します。今回は「D10300」としています。もともとこの番号で割り付けられている場合はそのままにしておき、変更はしません。こちらの番号も任意で決定できます。PLCラダーでどのように使用するかを考慮のうえで決めてください。
「ユニット設定」の欄を下にスクロールして「CH0」に関する項目を表示します。
チャンネルスキップは「スキップしない」のままにしておきます。その下、「信号入力レンジ」を変更します。
プルダウンリストから「1~5V」を選択し、クリックします。これで「CH0」の入力レンジが「1~5V」の電圧信号の範囲として設定されます。
そのまま下のスケーリング設定をします。デフォルトでは「スケーリング」の項目で「使用しない」設定となっています。
プルダウンメニューから「使用する」を選択します。
グレーアウトしていた「スケーリング上限値」と「スケーリング下限値」が設定できるようになりますので上限には「1000」下限には「0」を設定しました。スケーリングの値に関しては目的の数値に合わせて設定してください。以降、設定の様子を画像で載せておきます。
「CH1」は使用しない想定です。先の配線図でも何も接続していませんのでここに設定をしても実機では反映されません。「チャンネルスキップ」の項目を変更します。
プルダウンリストから「スキップする」を選択します。「CH1」に関しての設定はこれのみです。
「CH2」の設定に入ります。このチャンネルは使用しますので「チャンネルスキップ」は「スキップしない」のままで「入力信号レンジ」を変更します。
「CH2」は「4~20mA」に設定します。プルダウンリストから「4~20mA」をクリックして設定します。
続いて、「スケーリング」の設定です。デフォルトではこちらも「使用しない」の設定になっています。
「スケーリング」の項目でプルダウンリストの「使用する」をクリックします。
「CH0」と同様に上下限設定をします。各々の数値も「CH0」と同じ「スケーリング上限値」を「1000」,「スケーリング下限値」を「0」としています。
「CH3」は使用しない想定です。
「チャンネルスキップ」の項目でプルダウンリストから「スキップする」をクリックして設定します。
⑤アナログ出力ユニット設定
今回のメインとなるユニットである、アナログ出力ユニットに関する設定をしていきます。「KV-DA40」をクリックし選択した状態にします。そのうえで「先頭DM番号」を決定します。今回は「D10400」としました。デフォルトでこの番号が設定されている場合はそのままにしておきます。任意で決定できる番号です。
「CH0」の設定に入ります。「出力信号レンジ」を変更します。負荷機器に合わせたレンジを設定してください。
ここでは「CH0」は「1~5V」の範囲の電圧信号で出力する設定とします。
スケーリングの設定をします。デフォルトでは「スケーリング」の項目が「使用しない」の設定になっています。
プルダウンリストから「使用する」を選択します。
「スケーリング上限値」と「スケーリング下限値」の設定をします。
伝送出力の想定ですのでアナログ入力ユニットの「CH0」と同様に設定となり、上限値は「1000」,下限値は「0」としています。負荷機器とのやり取りのうえで扱いやすい数値を決定する必要があります。以降、設定の様子を画像で載せておきます。
「CH1」は使用しない想定です。「出力信号レンジ」の項目でプルダウンリストから「使用しない」を選択します。
続いて「CH2」の設定です。
「CH2」は「4~20mA」の範囲の電圧信号で出力する設定とします。
「CH2」のスケーリング設定をします。デフォルトでは「スケーリング」の項目で「使用しない」が設定されています。
プルダウンリストから「使用する」を選択設定します。
「スケーリング上限値」と「スケーリング下限値」の設定をします。「CH0」と同様です。伝送出力の想定ですのでアナログ入力ユニットの「CH2」と合わせて上限値を「1000」に、下限値を「0」に設定します。
「CH3」は使用しない想定です。
「チャンネルスキップ」の項目を「スキップする」に設定します。
ここまでの設定が完了したら、ウィンドウの右下の「適用」をクリックします。
問題があればメッセージに赤い×印でエラーが表示されます。電源ユニットに関する注意などが出ますがメッセージに従えば問題ありません。その他問題が無ければそのまま設定を終えることができます。
「OK」をクリックして「ユニットエディタ」を終了します。
b.PLCラダー作成(内部ディジタルデータの演算とアナログ出力)
各ユニットの設定が完了しましたので、やっとPLCラダー設計をしていきます。
①コメントの割り付け
まずはPLCラダー内で使用するコメントを割り付けます。デバイスコメントのウィンドウを下の画像のように配置すると便利です。配置の方法についてはPLCプログラム〜ラダー図の基本〜の記事で説明しています。参考にしてください。
なお、PLCラダーにおける基本的な接点命令などについても同様にPLCプログラム〜ラダー図の基本〜の記事で説明していますので同時に参照してください。
デバイスコメントのウィンドウ内にある「詳細」をクリックします。
さらに「ユニットデバイス登録」をクリックします。
「ユニットデバイス登録」のウィンドウが開きます。「KV-8000」「KV-AD40」「KV-DA40」にチェックを入れ「登録」をクリックします。
この操作で、すでに使用目的が決定しているデバイスにその目的を意味するコメントが割り付けられます。非常に便利な機能ですので是非活用してください。特に、アナログユニットを使用する際はどのデバイスにどのようなデータが格納されるのかが明確化されるので設計をするうえでとても助かる機能です。
「ユニットデバイス登録」を実施した後でも個別にコメントを書き換えることは可能です。下の画像では自分自身がわかりやすいように「特殊データ」に「(スケーリング値)」というコメントを書き加えています。
あらかじめ用途を決定している、入出力をはじめとした他のデバイスにもコメントを割り付けていきます。
②アナログデータ取得
アナログデータの取得に関するPLCラダーを記述していきます。まずは「ブックマーク」の挿入をします。カーソル(緑枠)をワークスペースの先頭行左側にもっていき右クリックをします。展開したメニュー内の「ブックマーク」にポインタを合わせると「挿入」というメニューが出ますのでこれをクリックします。
ブックマークの記入欄が出ます。
ここに「PLC数値入力」と記入しました。
キーボードの「ESC」キーでブックマーク編集状態から抜けます。
「X3400,a接点」を記述します。
「MOV」命令で「D10001」のデータを「D1000」へ転送する命令を記述します。記述の方法についてはアナログ入力ユニット〜PLCと数値入力〜に記載しています。また、後述のアナログ出力に関する説明でも同様の操作がありますので参照してください。
「X3402,a接点」を記述します。
「D10311」を「D1004」へ転送するための「MOV」命令を記述します。
③入力値判定
この記事の内容に直接関係はありませんが、アナログ入力の記事とリンクさせる意味で入力値を比較演算する命令を記述していきます。ここに関しては必要なければ読み飛ばしても問題ありません。
ブックマークにて「入力値判定」と記述します。
「比較演算」命令を利用し、定数「500」と「D1000」を比較する命令を記述します。「D1000」が「500」以上ならば「Y3500」を出力するように記述します。こちらもアナログ入力ユニット〜PLCと数値入力〜の記事に記述方法を記載していますので参照してください。
先ほどと同じ要領で定数「500」と「D1004」を比較し「Y3502」に出力する命令を記述します。ただしこちらは「D1004」が「500」未満で「Y3502」が出力するように記述しています。不等号が「D1000」の場合と逆になっていることに注意してください。
④PLC伝送出力(アナログ出力命令)
いよいよアナログ出力に関する記述です。まずはブックマークにて「PLC数値伝送出力」と記述します。
「X3404,接点」を記述します。
「X3404,a接点」の左にカーソルを持っていきそこでキーボードの「Enter」を押下します。すると「命令語/マクロ/パックパレット」というウィンドウが開きます。
このウィンドウから「MOV」という命令をスクロール操作で探します。「MOV」命令を探し出せたら、これをクリックします。そして「オペランド」の項目に必要情報を記入していきます。
「オペランド」の「S」に「d1000」と記入します。
続いて「D」に「d10400」と記入します。
記入が完了したら「上書き」をクリックします。
アナログ出力に関する命令が記述できました。
「えっ!?これだけ??」と思われるかもしれませんが、これだけなのです。肝心なことは転送先がアナログ出力ユニットのデバイスとなっているということです。プログラム的には転送先チャンネルや転送先デバイスを間違えていなければこれだけでデータの出力が可能です。
「CH2」における出力も記述します。記述方法については「CH0」の出力時と同じですので以降は画像を参照してください。
「命令語/マクロ/パックパレット」で「MOV」命令を検索する場合、「命令語検索」に「MOV」と記入し「検索」をクリックすることで簡単に引き出すことが可能です。是非利用してください。
「MOV」命令に関しても直接入力が可能です。上記記述を例にすると「mov␣d1000␣d10408」と打ち込み、「Enter」を押下することで同様の命令を記述することができます。
c.シミュレーション
仕上がったPLCラダーをシミュレーションします。非常に簡単なプログラムですが少なくともソフト上で間違いが無いかをみていきます。
①シミュレータの立ち上げ
完成したPLCラダーは以下のとおりになっています。この状態からシミュレーションに移行します。
メニューバーの「モニタ/シミュレータ」をクリックするか、ツールバーに「エディタ」と表示されているプルダウンリストを展開します。
プルダウンリストを展開した場合はその中に「シミュレータ」という項目がありますのでこちらをクリックします。
メニューバーからの場合は展開したメニューの中に「シミュレータ」の項目がありますのでこちらをクリックします。
シミュレータが立ち上がります。下の画像はシミュレータが立ち上がっている最中のものです。
シミュレータが立ち上がりました。このままではまだRUN状態ではない場合がありますので、ツールバーの青色の「▷」をクリックします。
立ち上がったシミュレータがRUNし始めました。この時点で「D1004 < 500」がすでに成立しているので「Y3502」が出力状態となっています。
②登録モニタウィンドウ
ここで、マウスのポインタを使用して以下の画像のように「MOV」命令の箇所を範囲選択します。
選択の状態で右クリックをすると、展開したメニューの中に「登録モニタウィンドウ」という項目があります。これをクリックします。
すると、選択した範囲のデバイスの現在値を変更設定できるウィンドウが立ち上がります。
このウィンドウ内の「D10301」を変更します。
「D10301」に「500」を入力しました。これにより疑似的ではありますがアナログ入力ユニットに「500」に相当する信号入力があったことになります。
続いて「D10311」の数値を変更します。
同じく「500」を入力します。意味としては「D10301」と同様です。
「D10301」「D10311」各々に「500」が入力された状態になっています。
③内部接点操作
「MOV」命令を実行させるための「X3400」を導通させます。当入力ビットにポインタを合わせてダブルクリックします。
「X3400」が導通すると同時にその右側の「MOV」命令が実行され「D10301」に格納されていた「500」という数値が「D1000」に転送されました。さらに同時に「D1000 > 500」が成立し、「Y3500」が出力状態になりました。
同様に「X3402」を導通させて「MOV」命令を実行します。
なお、「X3400」は再度ダブルクリックし非導通状態にします(導通状態のままでも特に問題はありませんがその場合毎スキャンごとに同じ「500」を転送し続けます)。
「X3402」が導通すると同時に「D10311」に格納されていた「500」という数値が「D1004」に転送されました。さらに同時に「D1004 < 500」が不成立となり、「Y3502」の出力が断たれました。
再度「X3402」をダブルクリックして非導通にします。
ここまでで、疑義的ではあるものの、アナログ入力信号の受け取りとその数値のしきい値(「500」)に対する比較ができていることが確認できました。
続いて、記事の本題となるアナログ信号の(伝送)出力のシミュレーションです。
「X3404」をダブルクリックします。
「X3404」が導通となり「D1000」に元々格納されていた「500」という値が「MOV」命令により「D10400」に再転送されます。これでスケーリング値の「500」に相当するアナログ信号が「CH0」から出力されることとなります。
なお、実際にユニットがある場合は「0〜1000」のうち「500」に相当する「1〜5V」の電圧信号ということになりますので、「3.0[V]」が出力されます。
同様に「X3406」をダブルクリックします。
「X3404」が導通となり「D1000」に元々格納されていた同じく「500」という値が「MOV」命令により「D10408」に再転送されます。
結果、アナログ出力ユニットがある場合「0〜1000」のスケーリング値のうち「500」に相当する「4〜20mA」の信号がアナログ出力ユニットより出力されることとなります。
このときのユニットから出力される値は「12.0[mA]」となります。
2)GX Worksでアナログ出力
ここでは三菱電機製PLC用のソフトウェアであるGX Works2でのアナログ出力における設定とPLCラダー記述について説明します。制御内容はKV STUDIOのときと同様「4.」で説明しているとおりです。
ちなみにPLCラダーの完成形は以下の画像のようになります。この画像では見えない、ユニットごとの設定や設計仮定については以降で順に説明します。
a.PCパラメータ設定(アナログ出力ユニット設定)
ユニットの構成や各ユニットにおける設定をします。
ここでしっかり設定できていなければPLCラダーをどんなにがんばってもねらった動きをしてくれません。
①プロジェクトの新規作成
GX Works3をたちあげます。画像はGX Works3ですが、GX Works2でも問題ありません。
「シリーズ」の設定をします。プルダウンリストから「QCPU(Qモード)」を選択しクリックします。
「OK」で決定します。
続いて機種の選択となります。この時点で、GX Works3で立ち上げていた場合であっても、GX Works2へ移行します。
プルダウンリストから今回は「Q00J」CPUを選択します。
ここまでを設定したら、「OK」でウィンドウを閉じます。
②パラメータ設定
PC(PLC)パラメータの設定に入ります。
画面左側のツリーにある「パラメータ」をダブルクリックします。
ツリーが展開します。
直下に「PCパラメータ」がありますのでこちらをダブルクリックします。
「Qパラメータ設定」というウィンドウが開きます。
ウィンドウ内「I/O割付設定」というタブをクリックします。
以下のような画面になります。ここでPLCの構成を決定していきます。
ウィンドウ内の「PCタイプ選択」をクリックします。
さらに「PCタイプ選択」というウィンドウが開きます。
プルダウンリストから「Q00J」を選択しますが、今回はすでに選択されていますので、これが確認できたら「OK」でウィンドウを閉じます。
I/O割付の中にCPUとして「Q00J」CPUが設定されました。
次に同ウィンドウ内の「ユニット追加」をクリックします。
開いたウィンドウでユニットの種別と形名を設定します。ここでの「ユニット種別」は「入力ユニット」となっておりこれを追加するつもりですのでそのままにしておきます。
「ユニット形名」のプルダウンリストから「QX40」を選択します。
「OK」をクリックして設定します。
入力ユニットの「QX40」が追加されました。
再度「ユニット追加」をクリックします。
「ユニット種別」のプルダウンリストから「出力ユニット」を選択します。
「ユニット形名」を決定しますが、すでに「QY10」が選ばれているので「OK」で設定します。
出力ユニットの「QY10」が追加されました。
さらに「ユニット追加」をクリックします。
今度は「ユニット種別」で「アナログユニット」を選択します。
「ユニット」型名では「Q64ADH」を選択します。
「OK」で設定します。
アナログ入力ユニットの「Q64ADH」が追加されました。
これまでと同様に「ユニット追加」をクリックして今回のメインであるアナログ出力ユニットを追加します。
「ユニット種別」は先程と同じ「アナログユニット」です。
「ユニット形名」は「Q64DAH」です。アナログ入力ユニットに対して「D」と「A」が入れ替わっただけですので間違えないように注意が必要です。
「OK」をクリックして設定します。
アナログ出力ユニットとして「Q64DAH」が追加されました。
続けて、「プログラム設定」のタブへ入ります。
ここでは本来ならばプログラムの「挿入」や「削除」またプログラムの「実行タイプ」を設定します。しかし、「Q00J」ではその機能がありませんので設定はできません。なのでここはその確認のみとしてスキップします。「設定終了」をクリックして完了します。
今回デバイス点数の変更なども行いません。ですのでここでは説明を割愛します。
b.インテリジェント機能ユニット設定(アナログ入力ユニット)
単純な2値レベルの入出力とは違いアナログのデータを扱ったり通信の機能を持つユニットを「インテリジェント機能ユニット」といいますが、そのうちのアナログ入力ユニット特有の設定について説明をします。
あくまでここで使用する範囲となりますが、それでも充分様々な設計に対応できます。
①スイッチ設定
「スイッチ設定」により入力の種別を決定します。すでに画面左側ツリー内に「Q64ADH」が表示されているはずではありますがそうでない場合はツリーの「インテリジェント機能ユニット」をダブルクリックしてください。
そうして展開された中に「Q64ADH」がありますのでこれをダブルクリックします。
さらに展開されたツリーに「スイッチ設定」があります。こちらをダブルクリックします。
「スイッチ設定」のウィンドウが開きます。
「CH1」の「入力レンジ」に関する設定をします。
プルダウンリストから「1~5V」を選択クリックします。
「CH1」に「1~5V」入力が割り当てられました。
また、今回同時に使用する「CH3」についてはデフォルトで割り当てられている「4~20mA」です。変更の必要はありませんので、このまま「OK」をクリックして設定を完了します。
②パラメータ設定
ここではアナログ入力ユニットにおける各チャンネルの変換許可やスケーリングの設定をします。
画面左側ツリー、「Q64ADH」の直下にある「パラメータ」をダブルクリックします。
「CH1」は使用するチャンネルですので画面「Q64ADH[]パラメータ」タブ内上部の「A/D変換許可/禁止設定」はデフォルトの「0:許可」のままにしておきます。
また「Q64ADH」にはスケーリングの機能がありますのでこちらを設定します。
「Q64ADH[]パラメータ」タブ内中段あたりにある「スケーリング有効/無効設定」の「CH1」において、プルダウンリストから「0:有効」を選択クリックします。
スケーリングを有効にしたら、その下部にある「スケーリング上限値」と「スケーリング下限値」を設定します。
スケーリングを有効にした後に「スケーリング上限値」か「スケーリング下限値」をクリックすると下の画像のようにこれらの項目が赤くなります。
「スケーリング上限値」に「1000」を記入します。「スケーリング下限値」は「0」のままです。
「CH2」は使用しない想定のチャンネルです。
「A/D変換許可/禁止設定」を変更します。
「CH2」の「A/D変換許可/禁止設定」において、プルダウンリストから「1:禁止」を選択クリックします。
「CH2」については以上です。
「CH3」は使用するチャンネルですので「A/D変換許可/禁止設定」はデフォルトの「0:許可」のままにしておきます。続けて「スケーリング有効/無効設定」についてです。
プルダウンリストから「0:有効」を選択クリックします。
「CH1」同様にスケーリングを有効にした後に「スケーリング上限値」か「スケーリング下限値」をクリックすると下の画像のようにこれらの項目が赤くなりますので「スケーリング上限値」に「1000」を記入します。「スケーリング下限値」は「0」のままです。
「CH4」は使用しない想定のチャンネルです。
「A/D変換許可/禁止設定」を変更します。
「CH4」の「A/D変換許可/禁止設定」において、プルダウンリストから「1:禁止」を選択クリックします。
「CH4」のA/D変換禁止が設定されました。
③自動リフレッシュ設定
ここではアナログ入力ユニットにおける各チャンネルのデバイス指定をします。
画面左側ツリー、「Q64ADH」の直下にある「自動リフレッシュ」をダブルクリックします。
スケーリングの機能を使用する場合、スケーリングの結果は「ディジタル演算値」に格納されることとなります。
「CH1」における「ディジタル演算値」のデバイスナンバーを決定します。
ここでは「D10301」としました。
続いて「CH3」における「ディジタル演算値」のデバイスナンバーを決定します。
「D10305」としました。
c.インテリジェント機能ユニット設定(アナログ出力ユニット)
アナログ出力ユニットも「インテリジェント機能ユニット」です。アナログ出力ユニット特有の設定について説明をします。
これについてもここで使用する範囲となりますが、充分様々な設計に対応できます。
①スイッチ設定
「スイッチ設定」により出力の種別を決定します。画面左側ツリーの「インテリジェント機能ユニット」が展開されていれば「Q64DAH」が表示されていますので、これをダブルクリックしてます。
「Q64DAH」のツリーが展開されました。
「Q64DAH」の直下「スイッチ設定」をダブルクリックします。
「スイッチ設定」のウィンドウが開きます。
「CH1」の「出力レンジ」を変更します。
プルダウンリストから「1~5V」を選択クリックします。
「CH3」は「4~20mA」の想定ですのでデフォルトのままにしておきます。
「OK」をクリックして設定を完了します。
②パラメータ設定
アナログ出力ユニットにおける各チャンネルの変換許可やスケーリングの設定をします。
画面左側ツリー、「Q64DAH」の直下にある「パラメータ」をダブルクリックします。
パラメータ設定画面がタブで開きます。
「CH1」は使用するチャンネルですので画面「Q64DAH[]パラメータ」タブ内上部の「D/A変換許可/禁止設定」を変更します。
プルダウンリストから「0:許可」を選択クリックします。
また「Q64DAH」にも「Q64ADH」同様、スケーリングの機能がありますのでこちらを設定します。
「Q64DAH[]パラメータ」タブ内にある「スケーリング有効/無効設定」の「CH1」において、プルダウンリストから「0:有効」を選択クリックします。
すぐ下にある「スケーリング上限値」か「スケーリング下限値」をクリックするとこれらの項目が赤くなります。
「スケーリング上限値」に「1000」を記入します。「スケーリング下限値」は「0」のままです。
「CH2」は使用しませんので「D/A変換許可/禁止設定」の項目を「1:禁止」のままにしておきます。「CH3」は使用しますので「D/A変換許可/禁止設定」を変更します。
プルダウンリストから「0:許可」を選択クリックします。
「CH3」の「スケーリング機能」を変更します。
「Q64DAH[]パラメータ」タブ内にある「スケーリング有効/無効設定」の「CH3」において、プルダウンリストから「0:有効」を選択クリックします。
すぐ下にある「スケーリング上限値」か「スケーリング下限値」をクリックするとこれらの項目が赤くなります。
「スケーリング上限値」に「1000」を記入します。「スケーリング下限値」は「0」のままです。
「CH4」は使用しない想定ですので特にこのまま変更はしません。
③自動リフレッシュ設定
ここではアナログ出力ユニットにおける各チャンネルのデバイス指定をします。
画面左側ツリー、「Q64DAH」の直下にある「自動リフレッシュ」をダブルクリックします。
スケーリングの機能を使用する場合、スケーリングの結果は「ディジタル値」に格納されることとなります。
「CH1」における「ディジタル値」のデバイスナンバーを決定します。
「D10401」と設定しました。
「CH1」同様に「CH3」へデバイスの割り付けをします。
「D10405」に設定しました。
c.PLCラダー作成(内部ディジタルデータの演算とアナログ出力)
やっとPLCラダーを記述するための準備が整いました。非常にたくさんの手順を踏みましたがこれまでの設定がPLCラダーを動作させるために、またはPLCラダーを記述しやすくするために重要であることはよく理解できるのではないでしょうか。
ではいよいよPLCラダーの記述に関する説明に入ります。
①コメントの割り付け
すでに用途が決定しているデバイスへのコメントを割り付けていきます。タブ上で開いている「[PRG]読出MAIN 1ステップ」か画面左側のツリーにある「プログラム」の「MAIN」をダブルクリックします。
ここにPLCラダーを記述していきます。設計中に様々な画面を表示することがありますが、PLCラダー記述のための画面に戻ってくる場合はこの方法となりますので覚えておきましょう。
早速PLCラダーを!…といいたいところですが、先にコメントに関する操作をしていきます。画面左側のツリーの「プログラム部品」内にある「ローカルデバイスコメント」をダブルクリックします。
さらにツリーが展開し、「ローカルデバイスコメント」の直下に「MAIN」が表示されます。これをダブルクリックします。
ビット入力に関するデバイスコメントを設定していきます。「デバイス名」に「X0」と記入しキーボードの「Enter」を押下します。
「X1」~「X4」に「CH1」~「CH4」のアナログ入力値転送トリガという意味のコメントを割り付けます。そして「X5」~「X8」に「CH1」~「CH4」のアナログ出力値転送トリガという意味のコメントを割り付けます。
ビット出力に関するデバイスコメントを設定していきます。「デバイス名」に「Y0」と記入しキーボードの「Enter」を押下します。
「Y11」~「Y14」に各チャンネルにおけるアナログ値の比較演算結果に関するコメントを割り付けます。
さらにI/O割付時にすでに決定しているビットにコメントを割り付けます。「Y31」~「Y34」はアナログ出力ユニットの出力を促すデバイスとして用途が決まっていますので、これを意味するコメントとします。
アナログ値の一次転送先のデバイスを任意で決め、コメントを割り付けます。
「デバイス名」に「D10300」と記入しキーボードの「Enter」を押下します。「D10301」~「D10308」に先のアナログ入力ユニットに関する「自動リフレッシュ」設定と矛盾しないようにコメントを割り付けます。
「デバイス名」に「D10400」と記入しキーボードの「Enter」を押下します。「D10401」~「D10408」に先のアナログ出力ユニットに関する「自動リフレッシュ」設定と矛盾しないようにコメントを割り付けます。
②アナログデータ取得
先に割り付けたコメントを表示するようにします。「メニューバー」の「表示」をクリックします。
展開したメニューに「コメントの表示」とありますので、これをクリックします。その後同じくメニューバーの「編集」をクリックしてください。
ワークスペース上に命令を記述するための領域を設けます。展開したメニューの「行挿入」をクリックすると1行分の記述領域が確保されます。
以下画像では10行程度の領域を「行挿入」で確保しました。
カーソル(青枠)をワークスペースの左上にもっていった状態で、画面上部の右側の「ステートメント編集」コマンドアイコンをクリックします。
「行間ステートメント入力」のウィンドウが開きます。
ウィンドウ内の空欄に「PLC数値入力」と記入し「OK」をクリックします。
行間ステートメントとして「PLC数値入力」が挿入されました。
左側母線の最上部に「X20,a接点」を記述します。「X20」は、I/O割付に伴い決定するデバイスナンバーです。なんでも良いわけではありませんので注意してください。
接点の記述など基本的な操作についてはPLCプログラム〜ラダー図の基本〜で説明していますのでこちらを参照してください。
さらにその左側に「X1,a接点」を入力します。
「X1,a接点」の右側に、アナログ入力ユニットの「CH1」で入力される「D10301」から「D1000」への数値転送命令を記述します。この記述についてはアナログ入力ユニット〜PLCと数値入力〜で説明しています。またこの後のアナログ出力に関する記述でも説明しています。
「OR回路」用の配線を引きます。
「X1,a接点」の下に「X3,a接点」を記述し、先ほどと同様の方法で「CH2」の入力値である「D10305」から「D1004」への数値転送命令を記述してください。
③入力値判定
アナログ入力値の判定に関する命令を記述していきます。
行間ステートメントで「入力数値判定」と記述します。
「D1000」と定数「500」を比較する命令を記述します。下の画像に記述した命令は【「D1000」が「500」以上なら導通させなさい】という意味になります。
比較演算の結果、導通時に出力するコイルを記述します。コイルは「Y11」です。
「D1004」と定数「500」を比較する命令を記述します。下の画像に記述した命令は【「D1000」が「500」未満なら導通させなさい】という意味になります。
比較演算の結果、導通時に出力するコイルを記述します。コイルは「Y13」です。
④PLC伝送出力(アナログ出力命令)
いよいよこの記事のテーマとなるアナログ出力に関する命令記述となります。とはいえこれまで使用してきた「MOV」命令を使用します。
まずは行間ステートメントで「PLC数値伝送出力」と記述します。ステートメントの下に「X30,a接点」を記述します。
なお「X30」はI/O割付に伴い決定するデバイスナンバーとなります。なんでも良いわけではありませんので注意してください。
「X30,a接点」の右側に「X5,a接点」を記述します。
ツールバー上部の出力命令のコマンドアイコンをクリックするか、キーボードの「F8」キーを押下します。
「回路入力」のウィンドウが開きますのでここの空欄に「mov␣d1000␣d10401」と記入します。
キーボードの「Enter」キーで「CH1」における数値転送命令の記述が完了します。
「OR回路」用の配線を引きます。
「X7,a接点」を記述します。その後「CH1」のときと同様にツールバー上部の出力命令のコマンドアイコンをクリックするか、キーボードの「F8」キーを押下します。
開いたウィンドウの空欄に「mov␣d1000␣d10405」と記入し、キーボードの「Enter」キーを押下します。
「CH2」における数値転送命令の記述が完了します。
三菱電機製のPLCではアナログ出力において、その出力のために「パラメータ設定」時の「0:許可」「1:禁止」とは別にPLCラダー上で出力の許可を出す必要があります。「パラメータ設定」ではチャンネルの使用の許可を、PLCラダーでは使用しているチャンネルの出力の許可を各々出す必要があるという具合になります。
行間ステートメントを記述します。
「アナログ出力許可」と記述します。
再び「X30,a接点」を記述します。
「Y31,コイル」の記述をします。このときの「Y31」もI/O割付に伴い決定するデバイスナンバーとなります。
「OR回路」用の配線を引きます。
「Y33,コイル」を記述します。もちろんこちらも決まったデバイスナンバーとなります。
⑤変換(コンパイル)
GX Works2では「変換」という作業を経てPLCラダーの成立になります。メニューバーの「変換/コンパイル」から実行してPLCラダーの作成完了としてください。設計中であっても途中保存時にはこの「変換」が必要となります。
d.シミュレーション
ここでは、設計したPLCラダーが少なくともプログラムとして正常に動作するかどうかについて確認します。
①シミュレータの立ち上げ
メニューバーの「デバッグ」をクリックします。
展開したメニューの中の「シミュレーション開始/停止」をクリックします。
シミュレータが立ち上がります、下の画像はシミュレータが立ち上がっている最中のものになります。
シミュレータが立ち上がると「PC書込」ウィンドウ内に「閉じる」というスイッチが表示されますのでこれをクリックします。
シミュレータがRUNを開始します。
②シミュレータ操作
カーソル(青枠)を「X20」へもっていき、右クリックをします。メニュー内の「デバッグ」にポインタを合わせると、さらにメニューが展開しますので、「現在値変更」をクリックします。
「現在値変更」のウィンドウが開きます。このウィンドウ内の「ON/OFF反転」をクリックします。
「X20」が導通になりました。
そのまま、カーソルを「D10301」の「MOV」命令に合わせます。ウィンドウ内に「値」という項目が表示されます。
「値」の空欄に「500」と記入し、「設定」をクリックします。
「D10301」に「500」が格納されました。
カーソルを「D10305」の「MOV」命令に合わせます。
空欄の「値」に再度「500」と記入します。
「D10305」に「500」が格納されました。
続いて「X1」にカーソルを合わせ「ON/OFF反転」をクリックします。
「X1」が導通となり、「D10301」に格納されている「500」が「D1000」に転送されました。同時に「D1000」は定数「500」と等しくなるため「D1000≧500」が成立し「Y11」が出力されます。
その後、もう一度「ON/OFF反転」をクリックし、「X1」を非導通にします。
カーソルを「X3」に合わせ「ON/OFF反転」をクリックします。
「X3」が導通状態になり、「D10305」に格納されている「500」が「D1004」に転送されました。同時に「D1004」は定数「500」と等しくなるため「D1004<500」は不成立となるため「Y13」の出力は停止します。
その後、もう一度「ON/OFF反転」をクリックし、「X3」を非導通にします。
③アナログ出力
「X30」にカーソルを合わせ「ON/OFF反転」をクリックします。
「X30」が導通状態になります。
「X5」にカーソルを合わせ、「ON/OFF反転」をクリックします。
「D1000」に格納されている「500」が「D10401」に転送されました。
その後、もう一度「ON/OFF反転」をクリックし、「X5」を非導通にします。
「X7」にカーソルを合わせ、「ON/OFF反転」をクリックします。
「D1004」に格納されている「500」が「D10405」に転送されました。
その後、もう一度「ON/OFF反転」をクリックし、「X7」を非導通にします。
アナログ出力ユニットに割り当てたデバイスに数値が転送されました。
アナログ出力許可の信号である「Y31」と「Y33」はすでに出力しているので実際にユニットがある場合、「CH1」からは「0〜1000」のうち「500」に相当する「1〜5V」の電圧信号、つまり「3.0[V]」が出力されます。また、「CH3」からは「0〜1000」のうち「500」に相当する「4〜20mA」の電流信号、つまり「12.0[mA]」が出力されます。
4.外部の機器を細かく制御
機器を駆動させるとき単純にONとOFFで制御できればよいというものはたくさんあります。しかし、それでは成立しないものも数多く存在するのは確かです。
そういうときにこのアナログ出力の信号がとても重宝することとなります。
たとえば、タンク内にある液を撹拌機を用いて混合する工程において、ただ単純にONかOFFで撹拌機を動作させるとします。回転速度は機械側の回転比率のみに依存します。この場合混合物の量や反応熱または粘性などがどうあれ、ただただ決められた速度で回転します。
もし、反応熱を考慮した回転をしたいと思っても上記のシステムでは不可能です。しかし、ここへアナログ出力できる機器があり、さらにその信号を受けて回転数を制御できる機器があれば、温度をみながら回転調整をするということも可能になります。
他にも搬送系で下流側の状態をみながらそれをアナログの信号に置き換えてコンベアの速度を調整するということも可能になります。
バルブの制御に関しても、ONとOFFでしか開閉できない場合は最大の流量かゼロかのどちらかとなりますがアナログ出力を用いた場合は受入先のタンク量や反応槽であればその反応状況をみて自動的に開度を調整することが可能となります。
温度調節に至ってはコンプレッサーの制御をインバータで実行し、このインバータにアナログデータを速度調整信号として送信することで細やかでかつエネルギー効率の良い制御が実現できます。
上記のようにアナログの出力を使いこなすことで制御の精度が格段に上がり、よりねらったとおりの制御を実現することができます。またこれは部品の寿命にも大きく関与します。メリットの多い制御の方法ですので是非使いこなしていきましょう!