JP5992777B2 - プログラマブルコントローラ、プログラム作成支援装置及びプログラム - Google Patents

プログラマブルコントローラ、プログラム作成支援装置及びプログラム Download PDF

Info

Publication number
JP5992777B2
JP5992777B2 JP2012194557A JP2012194557A JP5992777B2 JP 5992777 B2 JP5992777 B2 JP 5992777B2 JP 2012194557 A JP2012194557 A JP 2012194557A JP 2012194557 A JP2012194557 A JP 2012194557A JP 5992777 B2 JP5992777 B2 JP 5992777B2
Authority
JP
Japan
Prior art keywords
control program
programmable controller
model
program
parameter value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2012194557A
Other languages
English (en)
Other versions
JP2014052673A (ja
Inventor
賢一 島田
賢一 島田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Keyence Corp
Original Assignee
Keyence Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Keyence Corp filed Critical Keyence Corp
Priority to JP2012194557A priority Critical patent/JP5992777B2/ja
Publication of JP2014052673A publication Critical patent/JP2014052673A/ja
Application granted granted Critical
Publication of JP5992777B2 publication Critical patent/JP5992777B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明はプログラマブルコントローラに関する。
工場等に設置される各種のアクチュエータを統括的に制御するための制御装置として、プログラマブルコントローラ(PLC)が知られている。ラダープログラムに代表されるPLCの制御プログラムは、プログラム支援ソフトウエアがインストールされたパソコン等において行われる(例えば特許文献1)。
特開2008−282362号公報
近年のPLCには多様な機能が搭載されており、制御プログラムも長文化、大規模化する傾向にある。そこで、制御プログラムの開発効率を向上するため、特定の機種用に作成した制御プログラムを、該機種の一部の機能を除いて機能が共通している他機種に流用したい場合がある。しかし、この場合であっても、異なる機能に関する規定について制御プログラムの修正を必要とするため、制御プログラムの流用による開発効率の向上効果が薄れることになる。
本発明の目的は、異なる機種間で、より簡易に制御プログラムを流用可能とすることにある。
本発明によれば、外部に接続されるプログラム作成支援装置から制御プログラムを含む設定情報を取得可能であって、取得した制御プログラムに基づき動作するプログラマブルントローラにおいて、前記制御プログラムに記述された特定の命令に用いられるパラメータに対し、自機種のプログラマブルントローラが実行可能なパラメータ値に関するパラメータ値情報を記憶すると共に、他機種のプログラマブルコントローラが実行可能なパラメータ値に関する情報を記憶するパラメータ値情報記憶手段と、前記プログラム作成支援装置から設定情報を取得する設定情報取得手段と、前記パラメータ値情報記憶手段に記憶されたパラメータ値情報に基づいて、自機種及び他機種の双方が前記特定の命令の実行が可能か否かを判断する判断手段と、前記判断手段により自機種により実行可能と判断された特定の命令については処理対象に含めて制御プログラムを実行し、前記判断手段により自機種により実行不可能と判断された特定の命令については処理対象から除外して制御プログラムを実行する制御プログラム実行手段と、を備え、前記判断手段が、自機種及び他機種の双方が前記特定の命令を実行できないと判断した場合にエラー終了することを特徴とするプログラマブルコントローラが提供される。
本発明によれば、異なる機種間で、より簡易に制御プログラム(例えばラダープログラム)を流用可能とすることができる。より詳細には、外部接続されるプログラム作成支援装置から取得したラダープログラムに記述された特定の命令語に用いられるパラメータに対し、プログラマブルロジックコントローラが実行可能なパラメータ値に関するパラメータ値情報を記憶しておき、このパラメータ値情報に基づいて、特定の命令語の実行が可能か否かを判断し、その判断結果に基づいてラダープログラムを実行する。したがって、例えば、特定の命令語を実行可能な機種を制御するための制御プログラムを、特定の命令語を実行不可能な機種を制御するための制御プログラムに流用することができ、派生開発を簡素化することができ、ひいてはユーザの利便性を高めることができる。
本発明の一実施形態に係るプログラマブルコントローラの外観図。 図1のプログラマブルコントローラ及び支援装置のブロック図。 (A)及び(B)は支援装置の処理例を示すフローチャート、(C)はパラメータ値情報の例を示す図。 支援装置における編集画面例を示す図。 支援装置における報知例を示す図。 プログラマブルコントローラの機能ブロック図。 (A)及び(B)はプログラマブルコントローラの処理例を示すフローチャート。 プログラマブルコントローラの処理例を示すフローチャート。 プログラマブルコントローラの処理例を示すフローチャート。 コントロールリレーの定義例を示す図。
<第1実施形態>
<構成例>
図1は本発明の一実施形態に係るプログラマブルコントローラ100の外観図である。プログラマブルコントローラ100はいわゆるCPUユニットを構成し、その筐体上部には端子台1が設けられている。端子台1は複数の出力端子及び複数の入力端子を含む。出力端子には出力機器が、入力端子には入力機器が、それぞれ接続可能である。出力機器にはリレー、ソレノイド、モータ等のアクチュエータ、或いは、アクチュエータのドライバが含まれる。入力機器にはセンサ、或いは、センサの信号処理回路が含まれる。なお、本実施例では、「制御プログラム」の一例としてラダープログラムを説明しているが、その他のプログラム(プログラミング言語)についても本発明は適用可能である。
接続部2は、拡張ユニット(不図示)を接続するための拡張バスである。図1では接続部2は、端子保護用のカバー部材2aで覆われており、カバー部材2aを取り外すことで露出する。拡張ユニットには更に拡張ユニットを接続することが可能であり、接続部2は複数の拡張ユニットを直列的に接続することが可能である。
拡張ユニットには、出力機器としてのアクチュエータのドライブユニット等が、入力機器としてのセンサユニット等が、それぞれ含まれる。
プログラマブルコントローラ100の筐体正面には表示部3、操作部4、接続部5が設けられている。表示部3はデバイス情報等、各種の情報を表示可能である。操作部4は複数のボタンから構成され、表示部3の表示内容の切り替えなど、ユーザの指示をプログラマブルコントローラ100に対して手動入力可能となっている。接続部5には、プログラマブルコントローラ100と外部機器との有線通信を可能とする通信ケーブルが接続される。
図2はプログラマブルコントローラ100、及び、外部機器としてのプログラム作成支援装置200(以下、支援装置200という。)のブロック図である。支援装置200は、例えば、パソコンであり、ユーザによる制御プログラムの作成を支援する作成支援プログラムがインストールされている。
支援装置200は、制御部50を備える。制御部50はCPU51、記憶部52、IF(インタフェース)部53を含む。記憶部52は、例えば、ROM、RAM、ハードディスクであり、上記の作成支援プログラムはこの記憶部52に格納可能である。IF部53は、例えば、表示部60、操作部61に対するI/Oインタフェース、プログラマブルコントローラ100との通信のための通信インタフェースを含む。表示部60はユーザに情報を表示する。操作部61は、例えば、キーボード、マウス等である。
プログラマブルコントローラ100は、制御部10、記憶部20、カウンタ30及びパルス信号出力回路31、を含む。制御部10は例えば汎用の1チップマイコンであり、CPU11、記憶部12、IF部13を含む。記憶部12は、例えば、ROM、RAMである。IF部13は、例えば、表示部3、操作部4に対するI/Oインタフェース、支援装置200との通信のための通信インターフェースを含む。
記憶部20は、本実施形態の場合、フラッシュROM21と、SDRAM(シンクロナスダイナミックRAM)22と、を含むが、他の種類のメモリでもよく、1つのメモリでもよい。フラッシュROM21には、例えば、支援装置200からダウンロードされる制御プログラム(中間コード)及び後述するパラメータ値情報を含む設定情報、後述する各処理のプログラム等が格納される。また、中間コードをオブジェクトコードにコンパイルするプログラムも格納可能である。
SDRAM22には、例えば、実行形式の制御プログラムが格納される。記憶部20はデバイスとしても利用可能であるが、記憶部12をデバイスとして利用することで、デバイス情報の読み書き時間を短縮できる。
なお、デバイス情報とは、入力機器からの入力状態、出力機器への出力状態およびラダープログラム上で設定される内部リレー(補助リレー)、タイマー、カウンタ、データメモリ等の状態を示す情報である。デバイスとは、デバイス情報を格納するために設けられたメモリ上の領域を指す名称である。
制御動作中、CPU11は、SDRAM22に記憶された実行形式の制御プログラムを読み出し、実行する。CPU11は、例えば、入力端子からの情報を取得し、デバイス情報を更新する(入力リフレッシュ)。すなわち、入力端子から、入力機器からの入力状態を示すデバイス情報(ON/OFF情報など)を取得し、記憶部12においてデバイス情報を更新する(既に記憶されている入力機器用のデバイス情報を上書きする)。その後、制御プログラムを1スキャン実行しつつ、その中で記憶部12のデバイス情報を更新する。すなわち、制御プログラムの実行結果に基づいて、出力機器への出力状態を示すデバイス情報(ON/OFF情報など)を更新する。
そして、更新後のデバイス情報のうち、出力端子を介して接続される出力機器用のデバイス情報を出力端子から出力する(出力リフレッシュ)。その後、拡張ユニットとの通信処理等の付随処理(END処理)が行われる。これらの処理を繰り返していくことで、制御が実行されることになる。このように、プログラマブルコントローラ100のCPU11は、入力リフレッシュ⇒制御プログラムの1スキャン実行⇒出力リフレッシュ⇒付随処理を一連の処理(1周期、1スキャンタイム)として、何度も繰り返し実行していく。
カウンタ30は入力機器から送られてくる周期信号(例えばパルス信号)をカウントするカウンタであり、比較的高速(例えば100kHz)の周期信号をカウントする。このようなカウンタを設けることで、CPU11がこのようなカウントを行うことを必要とせず、CPU11の処理負担を軽減して全体として処理速度を向上できる。また、CPUユニットがこのようなカウンタを備えたことで、カウンタ機能を有する拡張ユニットを別途準備する必要がない。カウンタ30は、例えば、CPU11からカウント開始指示を受信した場合にカウントを開始し、指定されたカウント値に達すると、特定情報としてカウント完了信号をデバイスを介さずに出力する。図中、破線矢印は制御部10が出力するデータのうち、制御指令に関するものを示している。
パルス信号出力回路31は周期信号としてパルス信号を出力する。パルス信号は例えば被制御対象の位置決め制御に利用される。このような出力回路を設けることで、CPU11がパルス出力処理を行うことを必要とせず、CPU11の処理負担を軽減して全体として処理速度を向上できる。また、CPUユニットがこのような出力回路を備えたことで、パルス信号出力機能を有する拡張ユニットを別途準備する必要がない。パルス信号出力回路31は、例えば、CPU11から出力開始指示を受信した場合に特定情報としてデバイスを介さずにパルス信号の出力を開始し、出力停止指示を受信した場合に出力を停止する。
<処理例>
次に、プログラマブルコントローラ100のCPU11が実行する処理例、及び、支援装置200のCPU51が実行する処理例、について説明する。まず、支援装置200の処理例について説明する。
<支援装置の処理例>
図3(A)は支援装置200の処理例を示すフローチャートである。制御プログラムの作成をする際、まず、各種の設定が必要となる。S1では、操作部61に対するユーザの操作に基づいて、各種の設定を受け付ける。例えば、プログラマブルコントローラ100に接続される拡張ユニット等の設定である。
S2では、操作部61に対するユーザの操作に基づいて、制御プログラムを編集する。ここでは、ユーザによるラダー図の作成を支援し、受け付ける。その一例については後述する。
ラダー図が完成すると、ユーザの指示により、支援装置200はラダー図を中間コード(例えばニモニックコード)に変換する(S3)。中間コードは記憶部52に保存される。
S4ではS1で設定した各種の設定及びS3で変換した制御プログラム(中間コード)を含む設定情報(プロジェクトデータとも言う。)をプログラマブルコントローラ100に送信する。このプロジェクトデータはプログラマブルコントローラ100のフラッシュROM21に格納される。こうしてプログラマブルコントローラ100は、設定情報を取得することになる。
<制御プログラムの編集>
S2の制御プログラムの編集例について、図3(B)を参照して説明する。図3(B)はS2のプログラム編集処理の例を示すフローチャートであり、特に、他機種について編集された既存の制御プログラム(ラダー図)を流用する場合を示す。
S11では作成済みの他機種の制御プログラムを読み出す。S12では、読み出した制御プログラムをユーザが今回の機種(自機種)に流用することを容易化すべく、機種変更指示を受け付ける。図4は、この場合における表示部60の表示例を示す。
編集領域80は、ユーザの操作に基づいてラダー図が表示される領域であり、同図の例では、作成済みの他機種のラダー図が表示されている。機能ボタン群81は、各種の設定やユーザによるラダー図の作成を簡便化する機能ボタン群であり、例えば、定型的なラダー図のシンボル描画をボタン操作によって可能とする。例えば、機能ボタンには機種変更指示ボタンが含まれ、その操作によって、同図に示すように機種変更領域82がポップアップされる。
その他、機能ボタン以外のボタン操作で、機種変更領域82がポップアップされるようにしてもよい。機種変更領域82は、コンボボックス82aで変更先の機種選択が可能となっており、同図の例では「A」という機種が選択されているが、例えばプルダウンで「B」や「C」が表示されて選択可能となっている。所望の機種を選択した後、OKボタン82bを操作すると、変更先の機種が確定する。
図3(B)に戻り、機種変更を受け付けると、S13で対応確認処理を行う。ここでは、変更後の機種では対応できない処理を制御プログラムから検索して報知する。対応確認処理では、まず、各機種の機能に関する情報を含むパラメータ値情報を参照する。パラメータ値情報は例えば記憶部52に格納されている。図3(C)はパラメータ値情報の一例を示す。なお、パラメータ値情報は、設定ファイルに格納された情報であってもよいし、プログラムに直に書かれている等、本体ソフトにハードコーディングされている情報であってもよい。
パラメータ値情報は、制御プログラムに記述される特定の命令に用いられるパラメータに対し、その機種のプログラマブルコントローラが実行可能なパラメータ値に関する情報である。
図3(C)の例では、機種として、「A」、「B」、「C」の3種類の機種が挙げられている。これらは、例えば、同一シリーズであるが、廉価版と上位版(高性能版)の関係にある。同図の例では、機種間の特定の命令に用いられるパラメータの違いとして、カウンタ30のチャンネル(CH)数、パルス信号出力回路31の軸数(出力ポート数)、現在時刻を取得可能か否かの時計機能(RTCの有無)が例示されている。
カウンタ30のチャンネル数でみると、機種Aは2つであって、最も低性能であり、機種Cは4つであって、最も高性能である。パルス信号出力回路31の軸数でみると、機種Aは2つであって、最も低性能であり、機種Bは4つであって、最も高性能である。時計機能でみると、機種Aのみがこれを有していない。つまり、機種Aは廉価版で機種B、Cはその上位版にあたる。
ここで、制御プログラムの流用例について説明する。例えば、機種Cを生産ラインの制御に用いていたが、増産のために生産ラインを増やす場合を想定する。その際、増加する生産ラインについては機種Aで制御可能である場合、機種Cの制御プログラムを機種Aに流用できれば効率がよい。機種Aは、機種Cと比較してカウンタ30のチャンネル数やパルス信号出力回路31の軸数及び時計機能で劣るが、これら異なる機能を使用しないのであれば、機種Cの制御プログラムを基本的にそのまま使用できることになる。以下、機種Cの制御プログラムを機種Aに流用する場合を想定する。
図3(B)のS13の対応確認処理では、例えば、機種Cの制御プログラムを機種Aに流用することが、機種変更(S12)で指示された場合、パラメータ値情報から機種Aが有していない機能を把握してラダー図を検索し、対応できない処理が規定されている場合、これをユーザに報知する。詳細には、制御プログラムに記述された特定の命令に用いられるパラメータに対し、機種Aが実行できないパラメータ値を検索してこれをユーザに報知する。報知の方法は、音、表示等のいずれでもよいが、ここでは図4及び図5を参照して表示による報知例について説明する。図4、図5は機種C用のラダー図を、機種Aに流用する場合を想定している。
まず、図4において、ラダー図80aは、カウンタ30のチャンネルCH3に関する処理を規定している。機種Aは、チャンネルCH3を有していない(図3(C))。そこで、図5に例示するように、チャンネルCH3に関する処理が対応できない処理として強調表示されてもよい。これにより、ユーザは、機種Aで対応できない処理を確認することができる。
本実施形態では、対応できない処理を報知することに留め、中間コードへの変換(図3(A)のS3)及びプログラマブルコントローラ100への転送は許容する。したがって、図3(A)のS4では、機種Aでは対応できない処理の規定を含む中間コードが、機種Aとしてのプログラマブルコントローラ100に送信されることになる。
<プログラマブルコントローラの処理例>
次に、プログラマブルコントローラ100の処理例について説明する。まず、プログラマブルコントローラ100の機能について概説する。
図6は、プログラマブルコントローラ100の機能ブロック図である。図6に示す各手段は、図2に示すハードウェアブロック図の各要素により実現することができる。以下、具体的に説明する。
プログラマブルコントローラ100は、外部接続されたプログラム支援装置から制御プログラムを含む設定情報を取得する設定情報取得手段、制御プログラムに記述された特定の命令(例えば上述したカウンタ30など)に用いられるパラメータに対し、プログラマブルロジックコントローラ100が実行可能なパラメータ値に関するパラメータ値情報(例えばカウンタ命令のCH数や、時刻参照命令のON・OFFなど)を記憶するパラメータ値情報記憶手段と、パラメータ値情報に基づいて特定の命令の実行が可能か否かを判断する判断手段、判断手段の判断結果に基づいて制御プログラムを実行するプログラム実行手段、の各手段を有している。設定情報取得手段は、例えば、図2のCPU11やIF部13等の要素により実現することができる。パラメータ値情報記憶手段は、例えば記憶部12等の要素により実現することができ、例えば図3(C)に示すパラメータ値情報に関するテーブルを記憶する。判断手段及び制御プログラム実行手段は、CPU11や記憶部12、記憶部20等の要素により実現することができる。
そして、プログラマブルコントローラ100は、判断手段により実行可能と判断された特定の命令については処理対象に含めて制御プログラムを実行し、判断手段により実行不可能と判断された特定の命令については処理対象から除外して制御プログラムを実行するようになっている。
ここで、判断手段による判断は、制御プログラムの実行を開始する前とすることができる。事前に判断しておくことで、実際に制御プログラムが実行される際に、実行スピード低下を防ぐことができる。また、プログラマブルコントローラは、制御プログラムの中間コードを実行形式のコードに変換するコード変換手段、コード変換手段による変換処理が行われる際に、判断手段により実行不可能と判断された特定の命令を処理対象から除外する無効化処理を行う無効化処理手段、を有しており、無効化処理手段による無効化処理が行われた後に制御プログラムが実行されるようにしてもよい。すなわち、コンパイル時に無効化してもよい。コンパイル時に無効化する実施形態については、後述する<第2実施形態>にて詳述する。
なお、中間コードを実行形式のコードに変換する処理は、プログラマブルコントローラ100上で実行されても、支援装置200上で実行されてもよい。また、制御プログラムは、中間コードを介さずに直接、実行形式のコードに変換されてもよい。
<プログラマブルコントローラの処理例>
次に、上述した機能を実現するための、プログラマブルコントローラ100の処理例について説明する。まず、プログラマブルコントローラ100が、支援装置Bから受信した中間コードを実行形式のコードに変換する処理について図7(A)を参照して説明する。この変換は、フラッシュROM21に格納してあるコンパイラをCPU11が実行することで行うことができ、実行形式の制御プログラムのコードは、上記の通り、SDRAM22に格納することができる。
プログラマブルコントローラ100は自機種(機種A)に関する情報を含むパラメータ値情報を例えばフラッシュROM21に格納している。本実施形態の場合、プログラマブルコントローラ100側のパラメータ値情報は、図3(C)に示した支援装置200のパラメータ値情報と同じ構成であって他機種(機種B、C)の情報を含むが、自機種の情報のみであってもよい。パラメータ値情報は、工場出荷時にフラッシュROM21等に格納してもよいし、支援装置200からダウンロードしてもよい。
S21では、1単位分の中間コードを読み出す。S22ではパラメータ値情報を参照して、読み出した中間コードの命令に用いられるパラメータに関し、全機種が実行できない処理であるか否かを判定する。該当する場合はS25へ進み、該当しない場合はS23へ進む。例えば、カウンタ30のチャンネル番号として”4”が指定された命令は、自機種A及び他機種B〜Cの双方(つまり全機種)において実行できない。このように全機種が実行できない命令が規定されている場合はS25へ進み、エラー終了する。エラー終了では、例えば、表示部3に変換に失敗した旨の表示を行う。ユーザは制御プログラムに誤りがあったことを認識できる。
なお、このS25のエラー終了については、支援装置200において行ってもよい。つまり、支援装置200で中間コードを生成する段階で、支援装置200のCPU51は、全機種が対応できない命令のパラメータが規定されていると判断すると、表示部60にエラー表示を行うようにしてもよい。
S23では、S21で読みだした中間コードを実行形式のコードに変換する。その際、パラメータ値情報を参照して、機種間で異なるパラメータについては、自機種で実行可能かを判断する処理を組み込む。例えば、カウンタ30に関する命令については、チャンネル番号が自機種で実行可能なパラメータかを確認させる処理を組み込む。
S24では、全中間コードについて実行形式のコードへの変換が完了したかを判定し、完了していない場合はS21へ戻って同様の処理を繰り返す。
次に、こうして実行形式のコードに変換された制御プログラムを、パラメータ値情報に基づいて特定の命令の実行が可能か否かを判断しつつ、プログラマブルコントローラ100が実行する場合の処理について図7(B)を参照して説明する。
S31では、制御プログラムから命令語を取得する。ラダープログラムは、複数のセルからなり(例えば図4参照)、左から右へ、上から下へ、順番に実行される。したがって、この順番で各セル内の命令語に対応する、実行形式の命令語を取得することになる。
S32では、パラメータ値情報を参照して、S31で取得した命令語が自機種で実行可能な処理かを判断する。この処理は上述したS23で組みこまれたものである。より具体的には、図3(C)のテーブルを参照して、ラダープログラムにおいてカウンタ30に対して設定されているパラメータ値が、自機種で実行可能な処理かを判断する。実行可能な場合はS33へ進み、命令語の処理を実行する。
実行できない場合は、この命令語の処理を実行せず、S34へ進む。S34では、制御プログラムの全命令語の処理が完了したか否かを判定し該当しない場合はS31へ戻って次の命令語を処理し、該当する場合は1単位の処理(1スキャン)を終了する。
このように本実施形態では、自機種では対応できない処理を実行しないことで(或いはスキップすることで)、該処理を無効化している。この結果、機種C用の制御プログラムを機種A用の制御プログラムとして、ラダー図を変更せずに流用することができ、異なる機種間で、より簡易に制御プログラムを流用可能とすることができる。言い換えると、装置の高性能機やカスタマイズ時にプログラマブルコントローラ100が変わっても、プログラム資産を活かすことができる(プログラムファイルの互換性を向上することができる)。
<第2実施形態>
上記第1実施形態では、自機種では実行できない処理について、制御プログラムの実行時(図7(B))に無効化することとしたが、コンパイル時に無効化してもよい。
図8は、図7(A)の変換処理に代わる本実施形態における変換処理のフローチャートであり、パラメータ値情報に基づいて特定の命令の実行が可能か否かを判断しつつ、中間コードをコンパイルする例である。この例では、特定の命令が実行が可能か否かの判断が制御プログラムの実行を開始する前に行われることになる。
S41では、1単位分の中間コードを読み出す。S42ではパラメータ値情報を参照して、読み出した中間コードの命令に用いられるパラメータに関し、全機種が実行できない処理であるか否かを判定する。図7(A)の例のS22と同じ処理である。該当する場合はS47へ進み、該当しない場合はS43へ進む。S47の処理は図7(A)のS25と同じ処理である。
S43では、パラメータ値情報を参照して、S41で読みだした中間コードの命令に用いられるパラメータに関し、自機種が実行可能な処理であるか否かを判定する。該当する場合はS44へ進み、該当しない場合はS45へ進む。S44ではS41で読みだした中間コードを実行形式のコードに変換する。
S45では、自機種で実行できない命令を無効化する。例えば、その処理を処理対象から除外(制御プログラムから削除)する。また、例えば、カウンタ30について非対応CHに関する処理であれば、カウント開始を指示しない。また、例えば、パルス信号出力回路31について非対応軸に関する処理であれば、パルス出力を指示しない。また、例えば、時計機能に関し、指定された日時になったら特定の設定をONにする処理であれば、ONにしない(OFFにする)。
S46では、全中間コードについて実行形式のコードへの変換が完了したかを判定し、完了していない場合はS41へ戻って同様の処理を繰り返す。
このように本実施形態では、コンパイル時に、自機種で実行可能な命令については、制御プログラムを実行する上での処理対象に含め、実行不可能な命令については制御プログラムを実行する上での処理対象から除外することができる。本実施形態の場合、制御プログラムの実行形式のコードには、自機種が実行できない処理は含まれないことになる。このため、その実行においては、図7(B)の処理のうち、S32の処理は不要となり、全命令語を順次実行することになる。
<第3実施形態>
上記第1実施形態では、自機種では実行できない処理がある場合には、何もせずにスルーしたが、機能エラーが生じたものとしてユーザに報知してもよい。この機能エラーは、制御プログラムの実行を停止するものではく、その機能を実現しないこと及びその報知でよい。
加えて、この機能エラーは、他機種における機能エラーと共用してもよい。例えば、機種Cではメモリカードが利用可能であり、機種Aではメモリカードが利用不能であるとする。メモリカードに関する処理は、機種Aでは実行できない処理として機能エラーとする。機能Cでは、実行できる処理であるが、メモリカードが挿入されていない場合は、その読み書きはできないため、同じく機能エラーとする。そうすることで、機種間の制御プログラムの流用を更に容易化することができる。
図9は図7(B)の判断・実行処理に代わる本実施形態における判断・実行処理のフローチャートである。
S31では、制御プログラムから命令語を取得する。S32では、パラメータ値情報を参照して、S31で取得した命令語が自機種で実行可能な処理かを判断する。この処理は上述した図7(A)のS23で組みこまれたものである。実行可能な場合はS53へ進み、実行できない場合はこの命令語の処理を実行せず、S55へ進む。
S53では、S31で取得した命令語が処理可能かを判断する。上記のメモリカードの例で言えば、メモリーカードが挿入されていれば処理可能となり、挿入されていなければ処理可能ではない、と判断される。処理可能な場合はS54へ進み、処理できない場合はこの命令語の処理を実行せず、S55へ進む。
S54ではS51で取得した命令語の処理を実行する。S55では機能エラー処理を行ってS56へ進む。S56では、制御プログラムの全命令語の処理が完了したか否かを判定し該当しない場合はS51へ戻って次の命令語を処理し、該当する場合は1単位の処理(1スキャン)を終了する。
このように本実施形態では、自機種では実行できない命令に関する機能エラー処理と、実行できる処理ではあるが、現在実行できない状態にある場合の機能エラー処理とを共用したことで、機種間の制御プログラムの流用を更に容易化することができる。
<第4実施形態>
上記第1乃至第3実施形態では、自機種では実行できない命令について、プログラマブルコントローラ100側で無効化したが、支援装置200側で無効化してもよい。詳細には、ラダー図の作成時に、そのプログラムの文法上、プログラマブルコントローラ100の機種を条件とした処理の定義を許容するようにしてもよい。
例えば、図10の例では、図5に例示したラダー図80aについて、この制御プログラムを実行するプログラマブルコントローラが機種Cであるか否かを判断するコントロールリレーCRが追加されており、機種Cであることを条件として後続の処理を実行させるように定義されている。
このようなプログラミングを可能とすることで、機種C用の制御プログラムの作成時に、機種A用の制御プログラムへの流用を予定することができる。こうして作成されたラダー図は中間コード、オブジェクトコードに順次通常の方式で変換することにより、上記第1実施形態における図7(A)の変換処理を経たオブジェクトコードと同様のオブジェクトコードが作成される。よって、制御プログラムの実行においては、図7(B)の処理を実行することで、自機種では実行できない処理を無効化することができる。

Claims (8)

  1. 外部に接続されるプログラム作成支援装置から制御プログラムを含む設定情報を取得可能であって、取得した制御プログラムに基づき動作するプログラマブルントローラにおいて、
    前記制御プログラムに記述された特定の命令に用いられるパラメータに対し、自機種のプログラマブルントローラが実行可能なパラメータ値に関するパラメータ値情報を記憶すると共に、他機種のプログラマブルコントローラが実行可能なパラメータ値に関する情報を記憶するパラメータ値情報記憶手段と、
    前記プログラム作成支援装置から設定情報を取得する設定情報取得手段と、
    前記パラメータ値情報記憶手段に記憶されたパラメータ値情報に基づいて、自機種及び他機種の双方が前記特定の命令の実行が可能か否かを判断する判断手段と、
    前記判断手段により自機種により実行可能と判断された特定の命令については処理対象に含めて制御プログラムを実行し、前記判断手段により自機種により実行不可能と判断された特定の命令については処理対象から除外して制御プログラムを実行する制御プログラム実行手段と、
    を備え
    前記判断手段が、自機種及び他機種の双方が前記特定の命令を実行できないと判断した場合にエラー終了することを特徴とするプログラマブルコントローラ。
  2. 前記判断手段は、前記設定情報取得手段により取得した制御プログラムの実行を開始する前に、前記特定の命令が実行可能か否かを判断することを特徴とする請求項に記載のプログラマブルコントローラ。
  3. 前記制御プログラムの実行形式への変換処理が行われる際に、前記判断手段により実行不可能と判断された特定の命令を処理対象から除外する無効化処理を行う無効化処理手段と、を備え、
    前記制御プログラム実行手段は、前記無効化処理手段による無効化処理が行われた後に制御プログラムを実行することを特徴とする請求項2に記載のプログラマブルコントローラ。
  4. 前記制御プログラムの中間コードを実行形式のコードに変換するコード変換手段を備え、
    前記無効化処理手段は、前記コード変換手段による変換処理が行われる際に前記無効化処理を行うことを特徴とする請求項3に記載のプログラマブルコントローラ。
  5. 前記判断手段は、前記設定情報取得手段により取得した制御プログラムに記述された個々の命令を実行する際に、前記特定の命令が実行可能か否かを判断することを特徴とする請求項に記載のプログラマブルコントローラ。
  6. プログラマブルコントローラに接続されるプログラム作成支援装置であって、
    前記プログラマブルコントローラは、
    外部に接続される前記プログラム作成支援装置から制御プログラムを含む設定情報を取得可能であって、取得した制御プログラムに基づき動作するプログラマブルコントローラであって、
    前記制御プログラムに記述された特定の命令に用いられるパラメータに対し、前記プログラマブルコントローラが実行可能なパラメータ値に関するパラメータ値情報を記憶するパラメータ値情報記憶手段と、
    前記プログラム作成支援装置から設定情報を取得する設定情報取得手段と、
    前記パラメータ値情報記憶手段に記憶されたパラメータ値情報に基づいて、前記特定の命令の実行が可能か否かを判断する判断手段と、
    前記判断手段により実行可能と判断された特定の命令については処理対象に含めて制御プログラムを実行し、前記判断手段により実行不可能と判断された特定の命令については処理対象から除外して制御プログラムを実行する制御プログラム実行手段と、
    を備え、
    前記プログラム作成支援装置は、
    ユーザの操作に基づいて、前記制御プログラムを編集する編集手段と、
    前記編集手段で編集された前記制御プログラムについて、該制御プログラムを実行させる前記プログラマブルコントローラの機種変更指示を受け付ける受付手段と、
    前記機種変更指示を受け付けた場合に、前記制御プログラムに記述された特定の命令に用いられるパラメータに対し、その機種の前記プログラマブルコントローラが実行できないパラメータ値を前記制御プログラムから検索して報知する報知手段と、
    前記報知手段により報知された後に、ユーザの操作に基づいて、前記制御プログラムを含む設定情報を前記プログラマブルコントローラに送信する手段と、
    を備え
    前記受付手段により前記機種変更指示を受け付けた機種の前記プログラマブルコントローラにて実行できないパラメータ値であって、且つ、前記報知手段により報知されたパラメータ値を用いる特定の命令が前記制御プログラムに記述されていても、前記送信する手段により、該制御プログラムを含む設定情報の前記プログラマブルコントローラへの転送が許容されていることを特徴とするプログラム作成支援装置。
  7. 請求項に記載のログラム作成支援装置であって、
    前記編集手段は、
    制御プログラムを実行するプログラマブルコントローラの機種を条件とした処理の定義を許容する、
    ことを特徴とするプログラム作成支援装置。
  8. 請求項6または7に記載のログラム作成支援装置を、前記編集手段、前記受付手段、および、前記報知手段と、前記設定情報をプログラマブルコントローラに送信する手段として機能させるプログラム。
JP2012194557A 2012-09-04 2012-09-04 プログラマブルコントローラ、プログラム作成支援装置及びプログラム Expired - Fee Related JP5992777B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012194557A JP5992777B2 (ja) 2012-09-04 2012-09-04 プログラマブルコントローラ、プログラム作成支援装置及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012194557A JP5992777B2 (ja) 2012-09-04 2012-09-04 プログラマブルコントローラ、プログラム作成支援装置及びプログラム

Publications (2)

Publication Number Publication Date
JP2014052673A JP2014052673A (ja) 2014-03-20
JP5992777B2 true JP5992777B2 (ja) 2016-09-14

Family

ID=50611146

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012194557A Expired - Fee Related JP5992777B2 (ja) 2012-09-04 2012-09-04 プログラマブルコントローラ、プログラム作成支援装置及びプログラム

Country Status (1)

Country Link
JP (1) JP5992777B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105511393A (zh) * 2016-01-25 2016-04-20 山东超越数控电子有限公司 一种plc梯形图的分析方法及装置
JP6852519B2 (ja) * 2016-04-04 2021-03-31 オムロン株式会社 プログラム作成支援装置、プログラム作成支援装置の制御方法、およびプログラム作成支援装置の制御プログラム
JP2019016037A (ja) 2017-07-04 2019-01-31 ファナック株式会社 プログラム作成装置
JP7302937B2 (ja) 2019-05-28 2023-07-04 岩井ファルマテック株式会社 制御プログラムの作成支援システム及び作成支援プログラム

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06114656A (ja) * 1992-09-30 1994-04-26 Suzuki Motor Corp ライン設備用制御装置
JPH06161516A (ja) * 1992-11-17 1994-06-07 Fuji Electric Co Ltd シーケンスプログラムのチェック方法
JPH0736510A (ja) * 1993-07-22 1995-02-07 Mitsubishi Electric Corp プログラマブルコントローラ
JP3729251B2 (ja) * 2001-03-12 2005-12-21 オムロン株式会社 コントローラ及びシステム
JP4266334B2 (ja) * 2003-09-19 2009-05-20 株式会社キーエンス ラダープログラムマクロ作成装置、ラダープログラムマクロ作成方法、ラダープログラムマクロ作成プログラムおよびコンピュータで読み取り可能な記録媒体
JP2008015826A (ja) * 2006-07-06 2008-01-24 Mitsubishi Electric Corp ラダープログラム実行装置
JP5365875B2 (ja) * 2009-03-12 2013-12-11 オムロン株式会社 産業用コントローラ
JP2011034378A (ja) * 2009-08-03 2011-02-17 Keyence Corp プログラマブルコントローラ用プログラム作成支援装置及びプログラム作成支援装置におけるハイパーリンク情報管理方法

Also Published As

Publication number Publication date
JP2014052673A (ja) 2014-03-20

Similar Documents

Publication Publication Date Title
US7000191B2 (en) Flowchart programming for industrial controllers, in particular motion controllers
JP2002099312A (ja) プログラマブルコントローラおよび制御プログラム開発支援装置
JP5992777B2 (ja) プログラマブルコントローラ、プログラム作成支援装置及びプログラム
JP5506822B2 (ja) プログラム作成支援装置
JP2009146229A (ja) プログラマブルコントローラシステム
JP6550268B2 (ja) プログラム作成支援装置、プログラムおよび判別方法
JP2008293138A (ja) ソフトウェア開発支援プログラム、ソフトウェア開発支援方法
JP5777837B2 (ja) プログラム開発支援装置およびその方法
JP6201298B2 (ja) コントローラおよびプログラム
CN110488738B (zh) 一种代码生成方法及装置
JP5849592B2 (ja) プログラマブルコントローラシステム、そのプログラミング装置、プログラマブルコントローラ、プログラム、デバッグ方法
JP6245429B2 (ja) プログラム開発支援装置およびコンピュータプログラム
CN110471659B (zh) 多语言实现方法和系统、人机界面组态软件端和设备端
JP2012027639A (ja) プログラマブルコントローラ、およびプログラマブルコントローラのデバッグ方法
KR20170048802A (ko) Plc용 프로그래밍 장치 및 방법
JP2016224559A (ja) プログラム作成支援装置、制御方法およびプログラム
JP4737441B2 (ja) Plcシステム
JP2006301765A (ja) 制御装置のメンテナンス装置
JP4890497B2 (ja) プラント監視制御システム
JP5589670B2 (ja) デバッグ方法
WO2000067083A1 (fr) Procede de programmation d'organe de commande de mouvement
JP4462402B2 (ja) プログラマブルコントローラ用のプログラム開発支援装置および処理方法並びにプログラムおよび記録媒体
JP2020017225A (ja) 情報処理装置および表示プログラム
JP7044086B2 (ja) 制御システム、制御方法、および制御プログラム
JP2018151537A (ja) 画面作成装置および画面作成プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150311

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20150319

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160229

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160325

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160520

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160805

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160818

R150 Certificate of patent or registration of utility model

Ref document number: 5992777

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees