積算タイマー〜PLCでカウントダウン〜

PLCとタッチパネル
スポンサーリンク

1.積算タイマー

このサイトではPLCでのタイマー命令について説明しています。タイマーの動作はさまざまな制御で頻出しますので機器をコントロールする上では必須の知識となります。

ですが、これまでのPLCにおけるタイマーの説明はあくまで動作指令時に「0[s]」から計時を開始するというもので、動作指令の接点信号が絶たれれば即座にリセットされてしまうデバイスでした。

しかし、制御においてタイマーのカウントを一時停止したい場合もあります。エラーによるイレギュラーの発生時や工程に差し込む作業によりカウントを一時的に止めたい場合など様々です。

そのようなときのためにPLCには積算タイマーという命令が存在します。

今回はこの積算タイマーについての命令記述とその使用方法について説明をしていきます。

1)積算タイマーの動き

積算タイマーをプログラム上で使用する前に少しだけその動きについて説明します。通常のタイマー命令は動作開始指令となる接点が「ON」になりタイマーコイルが励磁される(あくまで仮想上ですが)とそのタイマーはタイムカウントを開始し、設定された時間が経過すると接点の状態を変化させることで出力とします。

このタイムカウント中に動作開始命令が断たれるとタイマーはカウントを停止し同時にこれまでカウントした時間をリセットします。再び動作指令が入力された場合、そのタイマーはゼロからカウントをしなおすこととなります。これが通常のタイマー命令です。

では、積算タイマーは上記の通常のタイマーとどのように違うのでしょうか。

積算タイマーは通常のタイマーのようにカウント開始指令を受けることができます。そしてこのカウント開始命令が入力されている間は通常タイマーと同様タイムカウントを続けます。しかし、このカウント開始指令が断たれた場合、積算タイマーはこれまでの経過時間を記憶した状態でタイムカウント動作を停止します。そしてこのあと再びカウント開始指示が入力されるとこれまでの経過時間の続きからタイムカウントを開始します。そして設定値に到達すると、通常のタイマー同様に接点状態反転をもって出力します。

2)リセットが必要

積算タイマーが一時停止機能を有していることは前述の解説のとおりですが、このタイマーではタイムカウントアップ後でもその状態を維持します。これは通常のタイマーとは大きく異なる部分であり、同時に注意しておかなければならないものです。

では積算タイマーを再びカウント開始前すなわちゼロ状態に戻すためにはどうすればよいのでしょうか。それは、「リセット指令」というものになります。一時停止状態であってもタイムカウントのアップ状態でも、さらにカウント中であっても「リセット指令」が入力された時点で積算タイマーをゼロ状態にすることができます。

これを念頭においておかなければ、積算タイマーは一回きりしか動作しないものになってしまい、その後の機器設備の動作もままならなくなってしまいます。このことを失念しないように注意しましょう。

スポンサーリンク

2.カウントダウンタイマー設計

積算タイマーの動きについて理解できたら、早速PLCとタッチパネルにおけるカウントダウンタイマーの設計に移ります。

設計の基礎については別途PLCプログラム〜ラダー図の基本〜の記事で自己保持回路を、アナログ入力ユニット〜PLCと数値入力〜の「b.PLCラダー作成」(VT STUDIOもGT Designer3も同じ目次になっています)で数値格納の命令つまりMOV(ムーブ)命令を各々参照してください。

では、キーエンス製のKV StudioとVT Studioを使用した設計及び三菱電機製のGX Works2とGT Designer3を使用した設計の説明をします。

仕様としては以下のとおりです。

①タイムアップの時間を設定

②リアルタイムのカウント値はタイムカウントモニターに反映

③カウントダウン開始スイッチと一時停止スイッチおよびリセットスイッチでタイマー操作

④カウント中,一時停止中,カウントアップはランプで表示

上記を仕様とした画面の例は以下のようになります。単位の約束事として「分」を「min」で「秒」を「sec」で表現します。

以降、まずはキーエンス製のソフトにて設計を進める説明に入り、後に三菱電機製のソフトにて設計を進める説明をいたします。

1)VT StudioとKV Studioで設計

タッチパネルで時間をプリセット(設定)し、同時にカウントダウンの表示をします。もちろん計時開始や停止及びリセットもタッチパネルから操作します。

説明画像はクリックやタップで拡大可能です。そのままでは分かりづらいと思いますので適宜拡大してご覧ください。

基本的なスイッチやランプの配置及び設定、また画面遷移などに関する画面設計はタッチパネルを使う〜便利なインターフェイス〜で詳細を説明していますので、まだ見られていない方はこちらを先に理解していただくことをおすすめいたします。すでにそれらの基本的な設計方法をご存知の方はこのまま読み進めてください。

さらに、ここでもこれまで同様「XYM表記」を使用しています。

a.VT Studio立上げと選定機種

この記事のこの項目ではPLCとしてパッケージタイプであるKV Nanoシリーズのうち「KV-NC32T」を想定した場合とビルディングタイプの「KV-8000」を想定した場合の2パターンで説明をします。

①KV-NC32T( KV Nanoシリーズ)想定でセットアップ

VT Studioを立ち上げた後、画面左上のアイコンから「新規作成」をクリックします。

今回もタッチパネル設計のトレーニング機種としてVT5シリーズの「VT5-W07」という機種を選択します。スライドタブは使用しませんので「スライドタブを使用する」のチェックを外してください。そして「PLC機種選定」をクリックして次の設定に移ります。

「PLC機種選定」画面にて通信相手となるPLC機種を設定します。ここでは「KV Nanoシリーズ」を選定します。PLCとタッチパネルは同メーカーである方が相性が良く、設定も容易である場合が多いので可能な限り同じメーカーで選定しましょう。また、ここで「XYM表記を使用」にチェックを入れておきます。

ワークスペースとなる設計画面が立ち上がります。

② KV-8000想定でセットアップ

KV Nanoシリーズ同様にVT Studioを立ち上げた後、画面左上のアイコンから新規作成をします。

ここもKV Nanoシリーズと同様です。VT5シリーズの「VT5-W07」という機種を選択します。スライドタブ使用不使用につても「スライドタブを使用する」のチェックを外してください。そして「PLC機種選定」をクリックして次の設定に移ります。

ここでPLC選定による設定の違いがでてきます。PLC機種として「KV-8000(シリアル)」を選択しています。括弧内の「シリアル」はタッチパネルとPLC間の通信手段です。実機を用いない今回ではどちらでも構わないのですが、今後は「イーサネット」を利用した通信が主体になってくるのではないでしょうか。

当然のことながら実践では実機が存在します。通信手段はユニット選定に大きく関与します。例えば「KV-8000」をPLCのCPUとして選定している状態で通信手段をシリアルとしたい場合は「KV-XL202」等のシリアル通信用ユニットが必要となります。

また、同じく「KV-8000」をCPUとして選定の場合でイーサネットを通信手段として選択すると、特別に通信用ユニットを必要としません。理由は「KV-8000」がイーサネットの通信ポートを搭載しているからです。

以上を踏まえて機種選定ができたら「OK」をクリックします。

ワークスペースとなる設計画面が立ち上がります。

b.システムメモリエリア設定

ここから先は「KV-NC32T」「KV-8000」ともに共通の設計となります。

タッチパネルのページ切替等に関わる設定をします。

画面左側の「システム設定」タブをクリックし、「本体システム設定」をダブルクリックで展開し「システムメモリエリア」をクリックすると以下画像のようなウィンドウが開きます。

「D1000」を先頭デバイスナンバーとします。今回使用する機能は「切替ページ№」ですが機能拡張を見越してすべての項目にチェックを入れます。結果、「切替ページ№」のデバイスナンバーは「D1008」となります。

元の画面に戻るには「編集画面に戻る」をクリックします。

c.ホーム画面設計

ホーム画面を設計します。これ以降も通信相手となるPLCの機種に関わらず共通の設計となります。また、ここで説明する内容は画面上での文字表示やスイッチやランプの設定など基本的な設計となります。詳細はタッチパネルを使う〜便利なインターフェイス〜に記載のとおりですのでそちらでご確認ください。

以下のような画面を作成します。「操作開始」スイッチには「M100」を割り当てます。

d.操作画面設計

タイマー操作の画面を設計します。「タイムカウント操作」という文字を画面内に記載しています。

時間の設定箇所を示す表示を、同じく文字列で記載します。その後画面右上にある「数値表示」のアイコンをクリックし数値入力のための部品を配置します。

以下のようにドラッグアンドドロップ操作で数値表示部品を配置します。現時点では位置やサイズを気にしなくても問題ありません。

配置した数値入力部品をダブルクリックします。すると数値表示部品の詳細を設定するためのウィンドウが開き「設定」タブが開いた状態となります。ここでは「参照ワードデバイス」などの設定ができます。

今回は「参照ワードデバイス」を「PLC」の「D10」,「データ形式」を「符号ありバイナリ」,「表示桁数」を「3」,「接尾語」にチェックを入れ単位表示となる「min」の文字を入力します。ちなみに文字サイズを「25」としています。

次に、同ウィンドウ内の「レンジ・警報」タブを開きます。「入力レンジ」の「下限値」を「数値」の「0」,「上限値」を同じく「数値」の「999」と設定します。つまりねらいとして「999[min]」までを入力できるようにするということです。

続いて、「キー入力」タブを開き「キー入力」にチェックを入れます。「キー入力順序」は「0」とします。

筆者の場合ですが、この「キー入力順序」は常時「0」にしています。順送りキーなどで次々に入力を促すのではなく、入力の必要のたびに数値入力部品にタッチをしてテンキーを呼び出す方が操作上わかりやすいと考えていることがこの設定の根拠となります。

そして、「スイッチによる選択時にウィンドウ表示」にチェックを入れます。ここまで設定できたら「OK」で設定を登録します。

設定が反映されました。細かな配置に関しては、部品を選択した状態で画面左下に表示される座標を操作します。

同じように[sec]設定のための数値入力部品を配置します。先と同じように「数値表示」のアイコンをクリックし、ドラッグアンドドロップで配置します。

設定のしかたは[min]設定のときと同じですが「参照ワードデバイス」は「PLC」の「D12」,「表示桁数」は「2」そして「接尾語」の文字列を「sec」とします。

「レンジ・警報」タブで「入力レンジ」の「下限値」を「数値」の「0」,「上限値」を「数値」の「59」と設定します。1[min]が60[sec]であるということからこの設定にします。

「キー入力」タブですが、ここでの設定のしかたは[min]設定のときと全く同じです。設定を終えたら「OK」キーをクリックし内容を登録します。

こちらも設定が反映されています。

次にカウントダウンのリアルタイム表示を担う部品を配置していきます。先に文字列で「カウントダウン」表示をしておきます。

これまでと同じく画面右上にある「数値表示」のアイコンをクリックします。そしてドラッグアンドドロップ操作で大まかに配置します。

配置した部品をダブルクリックして「数値表示」ウィンドウを開きます。開いたウィンドウでは「設定」タブが開いています。基本的にはこれまでの数値入力のための設定と同じです。「参照ワードデバイス」を「PLC」の「D100」にします。「表示桁数」や「接尾語」も以下の画像のように設定してください。

さらにここでは違いを強調する、というよりリアルタイム表示を目立たせたいという意図で「スタイル」や「色系」また「文字装飾」を以下の画像のように設定します。

「レンジ・警報」タブを開きます。「レンジ」の「下限値」を「0」,「上限値」を「999」と設定します。

「キー入力」タブを開きます。これは表示のための部品となりますので「キー入力」のチェックは外します。

「OK」をクリックして登録します。

設定が反映されています。位置の微調整が必要ならば画像左下の座標で実施してください。そしてそのまま続けて[sec]表示のための部品を配置していきます。

以降、[min]表示の部品と同様の設定をしていきます。配置した部品をダブルクリックして「数値表示」ウィンドウを開き「参照ワードデバイス」を「PLC」の「D102」にします。「表示桁数」,「接尾語」,「スタイル」,「色系」,「文字装飾」そして「サイズ」を以下の画像のように設定してください。

「レンジ・警報」タブを開き、「入力レンジ」の「下限値」を「0」,「上限値」を「59」に設定します。

「キー入力」タブを開き、「キー入力」のチェックを外します。そして、「OK」をクリックします。

設定が反映されました。隣の「時間設定」部品より目立っています。

あとはスイッチやランプを配置します。以下の画像のように部品を配置してください。これらの詳しい設計はタッチパネルを使う〜便利なインターフェイス〜に記載していますので、不明な場合はこちらを参照してください。各々のデバイスナンバーも以下の画像に記載されています。

以下の画像は各ランプがONになっているときの状態です。

e.PLCラダー設計

先ほど作画設計しましたタッチパネルに対してパッケージタイプ(ex.KV NanoシリーズのうちKV-NC32T)とビルディングタイプ(ex.KV-8000)のPLC各々で設計する場合の説明をします。

また、キーエンス製PLCにおいての積算タイマーの使い方にはカウントアップとカウントダウンの二種類が存在します。ですので、先にパッケージタイプでカウントアップによる使い方を、後のビルディングタイプでカウントダウンによる使い方を各々説明します。

接点やコイルまた数値の転送に関わる記述について知りたい場合は以下のリンクの記事を参照してください。

・自己保持回路作成

PLCプログラム〜ラダー図の基本〜

・PLCラダー上での数値の扱い

アナログ入力ユニット〜PLCと数値入力〜

① KV-NC32T(KV-Nano)想定のPLCラダー

KV Studioを立上げます。「プロジェクト名」の決定と「対応機種」の選択およびファイルの保存先として「位置」を決定することを要求されます。今回は「プロジェクト名」を「カウントダウンタイマKV-N」とし、「対応機種」を予定のとおり「KV-NC32」としています。「T」は型式のサフィックス扱いとして省略されているようです。

また、ファイルの保存先を任意で決定してください。

ウィンドウ内の各設定を完了したら「OK」をクリックします。

ワークスペースが立上がります。

一気にPLCラダーをひきました。まずはこのプログラムの意味するところを説明をします。アップダウンタイマーの記述方法は後述します。

以下の画像内での記述では、画面の遷移を「D1008」のデバイスに対するMOVE命令で実行しています。更に常時ON接点を介してタッチパネルから入力された数値を、積算タイマーへ設定値とするための準備段階として演算しています。

キーエンス製の積算タイマーは0.01[sec]単位すなわち10[msec]単位での処理となります。このことから1[sec]は「100」と設定することとなります。下の画像内では分単位を秒単位へと変換してさらに100倍しながら合算しています(PLCラダー内5~8行目)。なお、ここで演算している数値データのサフィックスを「.L」にしていますが、これは非常に大きな数値を扱うことが理由となります。タッチパネルから設定可能な数値として《999×60×100+59×100=5,999,900》が最高値となりますのでダブルワードである必要があります。あえてマイナス値を扱えるサフィックスとしてはいますが、これには特に理由はありません。

続いて積算タイマー命令です。KV Studioでは「アップダウンタイマー」と呼称します。「UDT」はその略号ですこれが今回の記事のポイントとなります。前述のとおり、ここではカウントアップによる設計をします。出力命令である「UDT」に対して14行目の「M50,a接点」と「M51,b接点」が論理積(AND回路)として記述されており「UDT10」の「UP」へと入力されています。これが「UDT10」の動作条件となり設定値である「D32」で設定された値まで「0」からカウントを開始します。これらのタイマーへの動作命令が断たれた場合、「UDT10」はそれまでの値を保持したままその動作を一時停止します。

そして設定値「D32」に到達すると「UDT10」の接点反転という形で出力されることになります(17行目)。これは通常のタイマー命令と同じですね。このとき不使用である「DW」へは常時OFFの「CR2003」を接続しておく必要があります。

また16行目の「M12」は「UDT10」の「RES」へと接続されています。この接点がONすることで計時中やカウントアップに関わらず現在値がリセットされます。

計時中のカウントダウンをするための回路が以下の「カウントダウン表示回路」となります。

タイマーの動きはカウントアップの形になっていますので、まずは設定値から現在値との差分を算出します(20行目)。そしてその値を「100」で除します(21行目)。さらにその値を「60」で除します(22行目)。このときの値がカウントダウン表示の「min」に該当します。これを「MOV」命令でタッチパネルで表示するためのデバイスに転送します(23行目)。

また、KV Studioでは除算による剰余は自動的に「TM2」というデバイスに格納され、毎スキャン上書きされますのでここの値を「D102」に転送しています(24行目)。このデバイスに格納された値はそのまま「sec」を意味します。ここまでのプログラムで積算タイマーを利用したカウントダウンの動きが実現されます。

アップダウンタイマーの記述

具体的なアップダウンタイマーの記述方法を以下に記載します。

今回のアップダウンタイマーへの動作指令である、「M50,a接点」と「M51,b接点」AND記述の右側にカーソル(緑枠)を置き、Enterキーを押します。すると「命令語/マクロ/パックパレット」ウィンドウが開きます。命令語をスクロールで探すか「命令語検索」で「udt」と入力して検索をかけます。そして「UDT」をクリックで選択します。

「オペランド」の「値」の欄で「n」に「10」を、「S」に「d32」を各々書き込みます。「n」は「UDT」のデバイスナンバーを、「S」はこのアップダウンタイマーへ設定する値となります。

この状態でキーボードのEnterキーを押すか、ウィンドウ内の「上書き」をクリックすると以下の画像のようにアップダウンタイマーが記述できます。「UDT10」の「DW」と「RES」には、目的に応じた任意の接点命令を記述することとなります。今回のPLCラダー内ではこれらに「CR2003」と、タッチパネル内で割り付けた「M12」を各々記述し接続ています。

「直接入力」による記述方法も以下の画像と共に説明します。「命令語/マクロ/パックパレット」ウィンドウを利用する場合と同様にアップダウンタイマーへの動作指令である、「M50,a接点」と「M51,b接点」の右側にカーソル(緑枠)を置きます。その状態で「udt10␣d32」と入力します。

「直接入力」への記述後にEnterキーを押すとPLCラダーにアップダウンタイマーの記述が反映されます。直接入力は非常に楽ですね。

② KV-8000想定のPLCラダー

KV Studioを立上げます。「KV-NC32T」のときと同様に「プロジェクト名」の決定と「対応機種」の選択およびファイルの保存先として「位置」を決定することを要求されます。ここでは「プロジェクト名」を「カウントダウンタイマKV」とし、「対応機種」を「KV-8000」としています。ファイルの保存先もKV-NC32Tのときと同様に任意で指定ください。

ウィンドウ内の各設定を完了したら「OK」をクリックします。

「KV-8000」には新たに「運転記録」というドライブレコーダのような機能が搭載されています。今回の記事とは関係ありませんが、この機種の選定でのKV Studio立上げ時には「運転記録設定」の自動設定許可について問われます。ひとまず「はい(Y)」を選択します。

続いてユニット構成の設定を行うかどうかについて問われます。この記事の内容に関係はありませんが通常ならばほぼ必須といってよいほど設定することとなりますので、あえて最低限のセッティングをします。

「はい(Y)」をクリックします。

「ユニットエディタ-編集モード」というウィンドウが立上ります。ここでは入出力のユニットを一台ずつ搭載する設定とします。設定の方法についてはアナログ入力ユニット〜PLCと数値入力〜に記載していますのでそちらを参考にしてください。

ウィンドウ内の「先頭DM番号」に任意で「D30000」を割り当てます。

「ユニット選択(1)」タブから「KV-C64X*」を選択しドラッグアンドドロップ操作でCPUを意味する「KV-8000」の後(右側)に配置します。このとき自動的に「Connection Unit」と「End Unit」が挿入されます。

「ユニット設定(2)」タブを開き「先頭入力リレー番号」を「X00」とします。

同様に、「ユニット選択(1)」タブから「KV-C64T*」を選択しドラッグアンドドロップ操作で「KV-C64X*」の後(右側)に配置します。「先頭入力リレー番号」は「Y100」とします。

仮想的ではありますが、設定完了としますのでウィンドウ内の「適用」をクリックしその後「OK」をクリックしてウィンドウを閉じます。

こちらでも一気にPLCラダーをひきます。基本的には「①」の「KV-NC32T」のときと同様ですが少しだけアップダウンタイマーの使用方法を変えています。以下の画像の中で違うのは、カウントダウンによる計時ではあらかじめタイマーに設定値を転送しておく必要があります。オリジナルテンキーの作成などで設定転送用の専用接点などを用意することが素直な方法ですが、ここでは計時中やカウントアップ時ではないときにタイマーへ設定値を常に転送するという方法で、専用接点無しでの設定転送を実行できるプログラムにしています。

上記に続き、設定を転送しない条件を用意しておかなければならないので、そのためのプログラムを記述します。「カウントダウン計時中」のコイルを別で用意しています(11~14行目)。

先の「KV-NC32T」を使用した設計ではアップダウンタイマーの「UP」へタイマーへの動作命令を入力していましたが、ここでは「DW」へ条件入力しています(16行目)。その代わりに「UP」へは「CR2003」の常時OFFを接続しています(15行目)。リセット入力に関しては「KV-NC32T」のときと同様です(17行目)。

計時中のカウントダウンをするための回路が以下の「カウントダウン表示回路」となります。

タイマーの動きはカウントアップの形になっていますので、まずは設定値から現在値との差分を算出します(20行目)。そしてその値を「100」で除します(21行目)。さらにその値を「60」で除します(22行目)。このときの値がカウントダウン表示の「min」に該当します。これを「MOV」命令でタッチパネルで表示するためのデバイスに転送します(23行目)。

また、KV Studioでは除算による剰余は自動的に「TM2」というデバイスに格納され、毎スキャン上書きされますのでここの値を「D102」に転送しています(24行目)。このデバイスに格納された値はそのまま「sec」を意味します。ここまでのプログラムで積算タイマーを利用したカウントダウンの動きが実現されます。

アップダウンタイマーの記述

ここでの具体的なアップダウンタイマーの記述方法を以下に記載します。

まずは「常時OFF」を意味する「CR2003,a接点」の右側にカーソル(緑枠)を置き、Enterキーを押します。すると「命令語/マクロ/パックパレット」ウィンドウが開きます。ここからは「KV-NC32T」のときと同様です。命令語をスクロールで探すか「命令語検索」で「udt」と入力して検索をかけます。そして「UDT」をクリックで選択します。

以降の記述についても「KV-NC32T」と同様ですのでここでの説明は画像のみとします。

「UDT10」の「DW」と「RES」には、目的に応じた任意の接点命令を記述することとなります。今回のPLCラダー内では「DW」に「M50,a接点」と「M51,b接点」AND記述を、また「RES」にはタッチパネル内で割り付けた「M12」を各々記述し接続ています。

「直接入力」についても「KV-NC32T」のときと全く同じです。以下の画像を参考にしてください。

f.シミュレーション

設計した画面とPLCラダーが思ったとおりの動作をするか検証します。シミュレーションに設定する機種としては「KV-NC32T」でも「KV-8000」でもいずれでも問題ありません。今回のPLCラダーはどちらの場合でも同じ動作となるように設計しています。ただし、タッチパネルとPLCで設定している通信(連携)先に矛盾が生じない組み合わせで実行しましょう。

あらかじめ作成したPLCラダー(KV Studio)を立ち上げておきます。

VT Studioも立ち上げ、今回作成した画面データを開きます。

画面上中央あたりの「ツール」をクリックし「VTシミュレータ起動」をクリックします。

「VTシミュレータ起動」ウィンドウが開きます。連携するPLCラダーを選択しますが、「KV Studioと接続」のラジオボタンをONにし(デフォルトです)、「KV Studio設定」をクリックします。

あらかじめPLCラダーを開いている場合は自動的にそのPLCラダーが選択されます。問題なければ「OK」をクリックします。

起動中のKV Studioと連携されていることが確認できます。その状態でウィンドウ内「シミュレーション開始」をクリックするとKV Studioの選択PLCラダーがシミュレーションモードへ移行します。

シミュレーションモードになっているKV StudioのPLCラダーをRUN状態にします。画面上部の「▶」をクリックします。

KV Studio画面の操作タイミングにもよりますが、おそらくほぼ同時にバックグラウンドで立ち上がっているであろうVT Studioを開きます。PC画面下部のタスクバーにVTシミュレータのアイコンがありますのでクリックしてください。勝手に表示された場合はそのままにしておいてください。

作成した「操作開始」スイッチをクリックします。PCがタッチパネル対応ならタッチ操作も可能です。

操作画面に移ります。

「時間設定」の「0min」をクリックするとテンキーが現れます。任意の数値を入力し、テンキー内の「ENT」をクリックします。

ここでは「5」を入力しました。カウントダウンモニター部に「5」が転送されていることもわかります。

「時間設定」の「0sec」をクリックするとテンキーが現れます。ここでも任意の数値を入力し、テンキー内の「ENT」をクリックします。

「45」を入力しました。先ほどと同様にカウントダウンモニターに転送されているのがわかります。

「カウントダウン開始」をクリックするとタイマーが動作を開始します。カウントダウンモニターの数値も減少していく様子がわかります。

積算タイマーの動作確認です。カウントダウン中に「カウントダウン停止」スイッチをクリックします。すると、タイマーは計時を中断しその値を保持します。下の画像では4[min]55[sec]で停止しています。

さらに再度「カウントダウン開始」スイッチをクリックするとタイマーは継続動作としてのカウントダウンを再開します。この動作が今回のテーマの部分です。

カウントダウンが完了すると「タイムアップ」ランプが点灯します。ここではタッチパネル上のランプを点灯させるのみとなっていますが、このタイマーの接点を出力用のデバイスに接続することで外部機器への指令として使用することができます。

「カウントリセット」スイッチをクリックするとカウントダウンモニターの値はプリセット値へ再セッティングされ、タイマー出力状態もリセットされます。

思いどおりに動作させることができましたか?VT StudioとKV Studioでの設計に関する説明は以上となります。

2)GT Designer3とGX Works2で設計

目的に関して先ほどまでに説明しました、VT StudioとKV Studioでの設計と全く同じです。タッチパネルで時間をプリセット(設定)し、同時にカウントダウンの表示をします。もちろん計時開始や停止及びリセットもタッチパネルから操作します。

説明画像はクリックやタップで拡大可能です。そのままでは分かりづらいと思いますので適宜拡大してご覧ください。

基本的なスイッチやランプの配置及び設定、また画面遷移などに関する画面設計はタッチパネルを使う〜便利なインターフェイス〜で詳細を説明していますので、まだ見られていない方はこちらを先に理解していただくことをおすすめいたします。すでにそれらの基本的な設計方法をご存知の方はこのまま読み進めてください。

a.GT Designer3立上げと選定機種

この記事のこの項目ではPLCとしてパッケージタイプであるFXシリーズのうち「FX3U」を想定した場合とビルディングタイプの「Q00U」を想定した場合の2パターンで説明をします。

① FX3U想定でセットアップ

GT Designer3を立ち上げた後、「プロジェクト選択」ウィンドウ内の「新規作成」をクリックします。

「新規プロジェクトウィザードを表示する」にチェックが入っていることを確認したら「次へ」をクリックします。

ここでは「GOT2000」シリーズの「GT27**-V」の機種を選定し「次へ」をクリックします。

「システム設定の確認」ウィンドウに記載されている内容を確認のうえ、問題なければ「次へ」をクリックします。

GOTと連携するPLCを選択します。ここではFXシリーズということで「MELSEC-FX」を選択します。選択したら「次へ」をクリックします。

この記事では直接関係ありませんが、タッチパネルやPLCは現実として実機による生産設備等の動作を制御するためのものですので、これを想定のうえでタッチパネルとPLCの接続方法を決めておきます。ここでは「標準I/F(RS232)」を選択し「次へ」をクリックします。

「通信ドライバ」が「MELSEC-FX」であることを確認したら「次へ」をクリックします。

「接続機器の設定の確認(1台目)」ウィンドウでタッチパネルとPLCの連携条件を確認し、問題なければ「次へ」をクリックします。

「画面の切り替えデバイスの設定」ウィンドウが表示されます。特に設定を変更する必要はありませんのでこのまま「次へ」をクリックします。

「システム環境の設定の確認」ウィンドウでこれまで設定してきた内容を確認します。変更等がなければ「完了」をクリックします。

ワークスペースとなる設計画面が立ち上がります。

② Q00U想定でセットアップ

「FX3U」を想定の場合と同様にGT Designer3を立ち上げた後、「プロジェクト選択」ウィンドウ内の「新規作成」をクリックします。

ここからの手順も先ほどの「FX3U」のときとほとんど変わりはありません。「新規プロジェクトウィザードを表示する」にチェックが入っていることを確認したら「次へ」をクリックします。

「GOT2000」シリーズの「GT27**-V」を選択し「次へ」をクリックします。

設定の確認をして、問題なければ「次へ」をクリックします。

ここではじめて「FX3U」の場合との違いがでます。「接続機器の設定(1台目)」の「機種」で「MELSEC-Q/QS,Q17nD/M/NC/DR,CRnD-700」を選択して「次へ」をクリックします。

「標準I/F(RS422/485)」を選択し「次へ」をクリックします。考え方は「FX3U」のときと同様です。ここでは直接関係ありませんが、実機を想定のうえでタッチパネルとPLCの接続方法を決めておきます。

 

「通信ドライバ」の「シリアル(MELSEC)」を確認したら「次へ」をクリックします。

「接続機器の設定の確認(1台目)」ウィンドウでタッチパネルとPLCの連携条件を確認し、問題なければ「次へ」をクリックします。

ここも特に変更の必要はありませんのでこのまま「次へ」をクリックします。

「システム環境の設定の確認」ウィンドウでこれまで設定してきた内容を確認し、問題なければ「完了」をクリックします。

ワークスペースとなる設計画面が立ち上がります。

b.画面の切り換え/ウィンドウ設定

タッチパネル操作のうち、画面遷移(ページ切り換え)のために使用するデバイスを決定します。

ここから先は「FX3U」「Q00U」ともに共通の設計となります。

PC画面左側のツリーの下部、「システム」のタブをクリックし「環境設定」内の「画面切り換え/ウィンドウ」をダブルクリックします。すると「ベース画面(B)」の項目に画面を切り換えるためのデバイスを設定する箇所がありますので、ここに今回「D1000」と入力します。完了したら「OK」でウィンドウを閉じます。

c.ホーム画面設計

ホーム画面を設計します。これ以降も通信相手となるPLCの機種に関わらず共通の設計となります。また、ここで説明する内容は画面上での文字表示やスイッチやランプの設定など基本的な設計となります。詳細はタッチパネルを使う〜便利なインターフェイス〜に記載のとおりですのでそちらでご確認ください。

以下のような画面を作成します。「操作開始」スイッチには「M100」を割り当てます。

d.操作画面設計

タイマー操作の画面を設計します。「タイムカウント操作」という文字を画面内に記載しています。

時間の設定箇所を示す表示を、同じく文字列で記載します。その後画面右上にある「数値表示/入力」のアイコンをクリックし数値入力のための部品を配置します。

以下のようにドラッグアンドドロップ操作で数値表示部品を配置します。現時点では位置やサイズを気にしなくても問題ありません。

配置した数値入力部品をダブルクリックします。すると数値表示部品の詳細を設定するための「数値入力」ウィンドウが開き「基本設定」の「デバイス」タブが開いています。ここで各種設定ができます。

「種類(Y)」では「数値入力」のラジオボタンにチェックをし「デバイス(D)」に「D10」,数値サイズを「48」とし「表示形式」を「符号付き10進数」,「整数部桁数」を「3」としています。

同設定ウィンドウ内の「入力範囲」タブをクリックします。ここで黄色の「+」をクリックします。すると「範囲の入力」ウィンドウが開きますので「A」の下限値に「0」を、「C」の上限値に「999」を入力します。これによりタッチパネル上の「D10」デバイスには「0」~「999」の値以外は入力できなくなります。

ねらいとして「999[min]」までを入力できるようにするということです。ここまでの設定が完了したら各々ウィンドウの「OK」をクリックして閉じます。

数値設定をするための部品が配置できました。

右隣に文字列で「min」と単位表示します。

続けて「min」のときと同様に「sec」を設定するための部品を配置します。

配置した数値入力部品をダブルクリックして数値表示部品の詳細を設定するための「数値入力」ウィンドウを開きます。「基本設定」の「デバイス」タブ内で「種類(Y)」の「数値入力」のラジオボタンにチェックをし「デバイス(D)」に「D12」,数値サイズを「48」とし「表示形式」を「符号付き10進数」,「整数部桁数」を「2」としています。

同設定ウィンドウ内の「入力範囲」タブをクリックし、黄色の「+」をクリックします。「範囲の入力」ウィンドウ内の「A」の下限値に「0」を、「C」の上限値に「59」を入力します。タッチパネル上の「D12」デバイスには「0」~「59」の値以外は入力できなくなります。

「59[sec]」までを入力できるようにするということになります。設定が完了したら各々ウィンドウの「OK」をクリックして閉じます。

右隣に文字列で「sec」と単位表示します。

続いて、カウントダウンをモニターするための部品を配置します。これまでと同じように「数値表示/入力」のアイコンをクリックします。そしてドラッグアンドドロップ操作で任意の位置に部品を配置します。

配置した部品をダブルクリックして「数値表示」設定ウィンドウを開きます。

開いたウィンドウの「デバイス」タブ内の設定をしていきます。「種類(Y)」の項目で「数値表示」のラジオボタンにチェックを入れます。「デバイス(D)」に「D100」と設定し、「数値サイズ」を「48」,「表示形式」を「符号付き10進数」に設定します。「整数部桁数」は「3」に設定します。

「スタイル」タブをクリックします。部品のスタイルを変更できます。カウントダウンのモニターを目立たせたいので以下の画像のように設定します。

ここまでの設定を完了したら「OK」をクリックしてウィンドウを閉じます。

「min」数値表示のための部品が配置できました。

右隣に単位となる「min」を文字列で記述して表示します。

カウントダウンの「sec」をモニターするための部品を配置します。配置方法と設定は基本的に先ほどの「min」表示時と同じです。

任意でもってきた部品をクリックし「数値表示」ウィンドウを開きます。ここで「min」表示部品のときと異なるのは「デバイス(D)」が「D12」であること、「整数部桁数」が「2」となることです。

「min」表示部品と同じようにスタイル設定をします。

設定完了にて「OK」をクリックします。

「sec」数値表示のための部品が配置できました。

右隣に単位となる「sec」を文字列で記述して表示します。

スイッチやランプを配置します。以下の画像のような部品を配置してください。これらの詳しい設計はタッチパネルを使う〜便利なインターフェイス〜に記載していますので、不明な場合はこちらを参照してください。各々のデバイスナンバーも以下の画像に記載されています。

以下の画像は各ランプがONになっているときの状態です。

e.PLCラダー設計

先ほど作画設計しましたタッチパネルに対してパッケージタイプ(ex.FX3U)とビルディングタイプ(ex.Q00U)のPLC各々で設計する場合の説明をします。

また、三菱電機製PLCにおいての積算タイマーはPLCのタイプによって使用するデバイスが異なります。パッケージタイプではあらかじめ決まったデバイスナンバーが割り振られており、ビルディングタイプでは後述の「デバイス設定」で割り付ける必要があります。

接点やコイルまた数値の転送に関わる記述について知りたい場合は以下のリンクの記事を参照してください。

・自己保持回路作成

PLCプログラム〜ラダー図の基本〜

・PLCラダー上での数値の扱い

アナログ入力ユニット〜PLCと数値入力〜

① FX3U想定のPLCラダー

GX Works2を立上げます。立ち上げた画面の左上「新規作成」をクリックします。「新規作成」ウィンドウが立ち上りますので「シリーズ(S)」で「FXCPU」を選択し「機種(T)」の項目で「FX3U/FX3UC」を選択します。「プロジェクト種別」や「プログラム言語」は各々「シンプルプロジェクト」と「ラダー」にしておいてください。デフォルトでその設定になっているはずです。

そこまで完了したら「OK」をクリックします。

ワークスペースとなる設計画面が立ち上がります。

こちらも一気にPLCラダーをひきました。プログラムの意味するところを説明をします。積算タイマーの記述方法は後述します。

以下の画像内での記述では、画面の遷移を「D1000」のデバイスに対するMOVE命令で実行しています。更に常時ON接点を介してタッチパネルから入力された数値を、積算タイマーへの設定値とするための準備段階として演算しています。

三菱電機製の「FX3U」における積算タイマーは「T246」~「T255」で割り当てられています。そのうち「T250」~「T255」は0.1[sec]単位すなわち100[msec]単位での処理となります。このことから今回使用している積算タイマー「T250」では1[sec]は「10」と設定することとなります。ちなみに「T246」~「T249」は1[msec]単位での処理となります。

下の画像内では分単位を秒単位へと変換してさらに10倍しながら合算しています(PLCラダー内12ステップ以降)。なお、ここで演算している数値データを「D」つまりダブルワードにしていますが、これは非常に大きな数値を扱うことが理由となります。タッチパネルから設定可能な数値として《999×60×10+59×10=599,990》が最高値となりますのでダブルワードとしています。

以下画像はタイマー回路になります。タイマー動作におけるPLCラダーの記述においては通常のタイマーと変わりません。動作条件をそのまま該当のタイマーに入力するだけです(PLCラダー内81ステップ以降)。「M50,a接点」と「M51,b接点」が論理積(AND回路)として記述されており「T250」の動作条件として入力されています。タイマーの設定値は「D32」のデバイスを使用しています。

通常のタイマーと異なるのは必ずリセット命令が必要になるということです(PLCラダー内92ステップ以降)。この記述がない場合、一度タイムアップしたタイマーは以降ずっと出力し続けることとなります。

カウントダウンモニターに表示するための演算をしています。タイマーの動作自体はカウントアップになっています。まずは計時中の差分を算出します(PLCラダー内95ステップ以降)。その後0.1[sec]単位の数値を1[sec]単位に戻すため10で除します。さらに60で除すると「min」としての値が取り出せます。

除算を使用した場合その剰余は次のデバイスに自動的に格納されることとなります。ダブルワードの場合「+2(二つ後)」のナンバーのデバイスに格納されます。

積算タイマーの記述(ex.FX3U)

具体的な積算タイマーの記述方法を以下に記載します。

積算タイマーへの動作指令である、「M50,a接点」と「M51,b接点」AND記述の右側にカーソル(緑枠)を置き、「F7」キーを押します。画像上部の「F7」アイコンのクリックでも同じです。同時に「回路入力」ウィンドウが開きます。

そのまま「t250␣d32」と記述します。

ウィンドウ内の「OK」かEnterキーで決定すると積算タイマーの記述が完了します。回路変換(「F4」操作)を忘れないようにしましょう。

積算タイマーリセットの記述(ex.FX3U)

積算タイマーのリセット記述の方法を以下に記載します。

リセットの指令である、「M12,a接点」の右側にカーソル(緑枠)を置き、「F7」キーを押すか画像上部の「F7」アイコンをクリックします。同時に「回路入力」ウィンドウが開きます。

「rst␣t250」と記述します。

ウィンドウ内の「OK」かEnterキーで決定すると積算タイマー「T250」に対するリセット記述が完了します。回路変換(「F4」操作)を忘れないようにしましょう。

① Q00U想定のPLCラダー

GX Works2を立上げます。立ち上げた画面の左上「新規作成」をクリックします。「新規作成」ウィンドウが立ち上りますので「シリーズ(S)」で「QCPU(Qモード)」を選択します。さらに「機種(T)」の項目で「Q00U」を選択します。「プロジェクト種別」や「プログラム言語」は各々「シンプルプロジェクト」と「ラダー」にしておいてください。デフォルトでその設定になっているはずです。

そこまで完了したら「OK」をクリックします。

ワークスペースが立ち上がります。ビルディングタイプでは必ず「PCパラメータ」を設定する必要があります。ちなみにここでの「PC」とは「PLC」のこととなります。

画面左のツリーにある「パラメータ」をダブルクリックします。

展開したツリーの下部「PCパラメータ」をダブルクリックします。「Qパラメータ設定」のウィンドウが開きます。

ウィンドウ内の「プログラム設定」タブをクリックします。さらにウィンドウ内の左側ツリーに「MAIN」というプログラムがありますのでこれをクリックで選択した状態で「挿入」をクリックします。

「MAIN」プログラムの実行登録となります。「実行タイプ」に「スキャン」を選んでおくと毎スキャンで「MAIN」プログラムを実行するという意味になります。

次に「I/O割付設定」タブをクリックします。

CPUのタイプや入出力ユニットの割り付け設定をします。今回入出力ユニット自体は直接関係ありませんが一例として割り付けをしておきます。アナログや通信を担うインテリジェント機能ユニットなども必要に応じて割り付ける必要がります。

この記事のテーマである積算タイマーは、ビルディングタイプのPLCにおいて「PCパラメータ」がデフォルトである場合使用できないようになっています。「デバイス設定」でその設定をする必要があります。下の画像にある「積算タイマ」に「デバイス点数」を振り分けます。

振り分けの際にこのCPUでは「デバイス合計」が「29Kワード」を超えないようにする必要があります。ですので今回は「アナンシエータ」を「1K」に減らし「積算タイマ」を「128」点としました。

ここまで設定できたらウィンドウ内の「設定完了」をクリックしてウィンドウを閉じます。

PLCラダーの内容は以降のとおりです。これまで同様、プログラムの意味するところを説明し、積算タイマーの記述方法は後述します。

「FX3U」の場合と基本的には全く同じです。画面の遷移を「D1000」のデバイスに対するMOVE命令で実行することや常時ON接点を介してタッチパネルから入力された数値を、積算タイマーへの設定値とするための準備段階として演算していることも「FX3U」と同様です。

今回「QCPU」で割り付けた積算タイマーは「T0」~「T127」です。処理の単位は0.1[sec]、すなわち100[msec]単位での処理となります。1[sec]は「10」と設定することとなります。

下の画像内では分単位を秒単位へと変換してさらに10倍しながら合算しています(PLCラダー内12ステップ以降)。数値データを「D」つまりダブルワードとしていることも「FX3U」の場合と同様です。

以下画像はタイマー回路になります。PLCラダーの構成も「FX3U」の場合となんら変わりはありません。しかし、積算タイマーが「ST」で記述されていることとそのデバイスナンバーが「0」となっていることに注意が必要です(PLCラダー内58ステップ以降)。

「M50,a接点」と「M51,b接点」が論理積(AND回路)として記述されており「ST0」の動作条件として入力されています。タイマーの設定値は「D32」のデバイスを使用しています。

積算タイマーのリセット命令です。「M12,a接点」でリセットされるように記述されています。タイマーが出力したままリセットできない状態に陥らないためにも、忘れずに記述しておきましょう。

カウントダウンモニターへの表示のための演算回路です(PLCラダー内95ステップ以降)。

計時中の差分を算出し、0.1[sec]単位の数値を1[sec]単位に戻すため10で除します。さらに60で除して「min」としての値を取り出しています。

これも「FX3U」と同様ですが、除算を使用した場合その剰余は、次のデバイスに自動的に格納されることとなり、さらにダブルワードの場合は「+2(二つ後)」のナンバーのデバイスに格納されることとなります。

積算タイマーの記述(ex.Q00U)

具体的な積算タイマーの記述方法を以下に記載します。とはいえ記述方法は基本的に「FX3U」と全く同じです。

積算タイマーへの動作指令である、「M50,a接点」と「M51,b接点」AND記述の右側にカーソル(緑枠)を置き、「F7」キーを押します。画像上部の「F7」アイコンのクリックでも同じです。同時に「回路入力」ウィンドウが開きます。

そのまま「st0␣d32」と記述します。

ウィンドウ内の「OK」かEnterキーで決定すると積算タイマーの記述が完了します。回路変換(「F4」操作)を忘れないようにしましょう。

積算タイマーリセットの記述(ex.Q00U)

積算タイマーのリセット記述の方法を以下に記載します。これも「FX3U」の場合と同じです。

リセットの指令である、「M12,a接点」の右側にカーソル(緑枠)を置き、「F7」キーを押すか画像上部の「F7」アイコンをクリックします。同時に「回路入力」ウィンドウが開きます。

「rst␣st0」と記述します。

ウィンドウ内の「OK」かEnterキーで決定すると積算タイマー「ST0」に対するリセット記述が完了します。回路変換(「F4」操作)を忘れないようにしましょう。

f.シミュレーション

設計した画面とPLCラダーが思ったとおりの動作をするか検証します。シミュレーションに設定する機種としては「FX3U」でも「Q00U」でもいずれでも問題ありません。今回のPLCラダーはどちらの場合でも同じ動作となるように設計しています。ただし、タッチパネルとPLCで設定している通信(連携)先に矛盾が生じない組み合わせで実行しましょう。

あらかじめ今回作成したPLCラダー(GX Works2)を立ち上げ、メニューバーの「デバッグ」をクリックしてさらに展開されるメニューから「シミュレーション開始/停止(S)」をクリックします。

シミュレータが起動します。一見エラーがたっているようにみえますが、シミュレータ起動時のウィンドウの「閉じる」をクリックすることでエラーは解除されます。

PLC側のシミュレータが立ち上がりました。

続いてGT Designer3で今回作成したデータを立ち上げて、メニューバーの「ツール」をクリックします。展開したメニューの中から「シミュレータ」→「起動」をクリックします。

別ウィンドウでシミュレータが立ち上がり、PLCラダーと連携されます。

早速動作をみていきます。「操作開始」をクリック(PC仕様によってはタッチ)します。

画面が切り換わり「操作画面」が表示されました。

「時間設定」の「0min」をクリックするとテンキーが呼び出されます。任意の数値を入力し、テンキー内の「ENT」をクリックします。

画像では「5」を入力しています。カウントダウンモニターに反映されている様子もみてとれます。

先ほどと同様に、こんどは「時間設定」の「0sec」をクリックしてテンキーを呼び出します。

「45」と入力しました。カウントダウンモニターにも反映されています。

「カウントダウン開始」のスイッチをクリックして計時を始めた様子が以下の画像です。

ここで、今回のテーマとなるカウントダウンの一時停止をしてみます。「カウントダウン停止」をクリックします。

するとクリックした瞬間の計時データを保持したままタイマー動作が停止します。後ろのPLCラダーでも数値保持のままタイムカウントを停止している様子がわかります。

再び「カウントダウン開始」をクリックします。保持していたデータの続きから計時が再開されます。

順調にカウントダウンが進んでいきます。

積算タイマーの現在値が設定値に到達した時点でタイムアップとなり、積算タイマーは自身の接点状態反転という形で出力をします。

この記事内ではタッチパネルの「タイムアップ」というランプを点灯させることに使用していますが、実際の機器や設備にあっては出力デバイス(Y○○)で外部の機器に指令を出すことなどに使用される場合が多くなるのではないでしょうか。

「カウントリセット」をクリックすることで積算タイマーからの出力は断たれ、カウントダウンモニターの数値も設定値に戻ります。なお、このPLCラダーによる制御では計時中に「カウントリセット」をクリックすると計時動作がリセットされます。

スポンサーリンク

3.組み方はいろいろ

今回、一時停止とリスタートが可能なタイマーということで「アップダウンタイマー」や「積算タイマー」の使い方について解説しました。実はこの動作は「カウンター命令」を使用することでも実現可能です。

例えばPLCに元々備わっている1[sec]の「フリッカー命令」というものと「カウンター命令」を使用し、条件に応じてカウンターへのフリッカー入力を遮断するという具合です。もちろんこの場合1[sec]以上の精度を出すことは不可能であり、一時停止のタイミングによっては2[sec]未満のズレが生じることもあります。しかしそういう細かな制御を必要としない場合であればこういう組み方も可能です。

PLCラダーもプログラムの一種ですので、プログラミングの業界でよく耳にする「同じ動作でも設計者によって組み方が様々」であるということが当てはまります。どこに主眼を置いて設計するのかを充分に考慮のうえ今回説明の命令やその他の便利機能を使いこなしていきたいものです。