JP5141889B2 - Plcのプログラム開発支援装置 - Google Patents

Plcのプログラム開発支援装置 Download PDF

Info

Publication number
JP5141889B2
JP5141889B2 JP2008066905A JP2008066905A JP5141889B2 JP 5141889 B2 JP5141889 B2 JP 5141889B2 JP 2008066905 A JP2008066905 A JP 2008066905A JP 2008066905 A JP2008066905 A JP 2008066905A JP 5141889 B2 JP5141889 B2 JP 5141889B2
Authority
JP
Japan
Prior art keywords
variable
unit
model
function unit
configuration diagram
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.)
Active
Application number
JP2008066905A
Other languages
English (en)
Other versions
JP2009223591A (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.)
Omron Corp
Original Assignee
Omron 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 Omron Corp filed Critical Omron Corp
Priority to JP2008066905A priority Critical patent/JP5141889B2/ja
Publication of JP2009223591A publication Critical patent/JP2009223591A/ja
Application granted granted Critical
Publication of JP5141889B2 publication Critical patent/JP5141889B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

この発明は、ビルディング・ブロック型のプログラマブル・コントローラ(以下、PLCと言う)における高機能ユニット用制御プログラム(ユーザプログラム)の構築に好適なPLCのプログラム開発支援装置に関する。
IEC61131−3では、ユーザ定義変数として構造体変数が定義されている。この構造体変数は、PLCのプログラミング言語で使用することができる。PLCの高機能ユニットは、多くのパラメータを保有している。これらのパラメータは、階層構造で設計されていることが多い。そのため、パラメータを構造体で表現することは合理的である。
このような高機能ユニットの制御をラダー言語でプログラミングする場合、高機能ユニットのパラメータをラダー命令のオペランドとして使用することになる。
従来、このようなプログラミングに際しては、ユーザが高機能ユニットのマニュアルを参照しながら、手入力で変数として登録する必要があった。そのため、複数の高機能ユニットを制御する場合は、ユニットごとに異なる複数のマニュアルを見ながら変数登録を行なう必要があった。
また、高機能ユニットのパラメータに割り当てるアドレスは、高機能ユニットに設定するユニット番号から所定の計算式で算出される。そのため、ユーザは、各パラメータのそれぞれについて、マニュアルを見ながら手計算でアドレスを算出する必要があった。
なお、高機能ユニットのパラメータ情報をラック構成図を使用して管理することは、この種のPLCのプログラム開発支援装置において、従来より行われている(例えば、特許文献1参照)。
特開2006−243841号公報
従来、ラック構成図を作成することで、高機能ユニットのパラメータ情報をラック構成図で管理するようにしたPLCのプログラム開発支援装置において、ラダー言語によるプログラミングを行う場合には、ユーザは、マニュアルを見ながら、必要なパラメータを変数として登録しなければならなかった。
高機能ユニットにはユニット番号を各パラメータに割り付けることになるが、ミスや仕様変更などによりユニット番号の変更が発生した場合、パラメータに割り付けられたアドレスを変更する必要がある。その際には、ユーザは登録した変数のアドレスを手作業で変更しなければならなかった。
高機能ユニットとしては、通常、複数の型式のものが提供されている。処理するデータ量や一部の機能のありなしなどの違いはあるが、同じタイプの高機能ユニットであれば、型式が異なっても基本的に同じ動作をする。
ユーザは、通常、できるだけ低価格のユニットを使用するため、制御に不要な機能を省いた型式のユニットを採用することになるが、制御対象の変更により上位の型式の機能が必要になることもある。例えば、位置制御などは、1軸、2軸、4軸の軸数の違いで型式が異なるが、各軸の動作仕様などは同じである。
しかし、従来のプログラム開発支援装置にあっては、2軸から1軸に変更した場合でも、1軸から2軸に変更した場合でも、その都度、プログラムの追加や削除と言った作業が必要であった。
この発明は、上述の問題点に着目してなされたものであり、その目的とするところは、ラック構成図を作成することで、高機能ユニットのパラメータ情報をラック構成図で管理するようにしたPLCのプログラム開発支援装置において、ラダー言語によるプログラミングを行う場合には、ユーザは、マニュアルを見ずとも、必要なパラメータを変数として登録可能とすることにある。
この発明の他の目的とするところは、ラック構成図を作成することで、高機能ユニットのパラメータ情報をラック構成図で管理するようにしたPLCのプログラム開発支援装置において、ミスや仕様変更などによりユニット番号の変更が発生した場合、その変更操作をできるだけ簡便なものとすることにある。
この発明の他の目的とするところは、ラック構成図を作成することで、高機能ユニットのパラメータ情報をラック構成図で管理するようにしたPLCのプログラム開発支援装置において、諸々の事情で高機能ユニットが下位の型式のものから上位の型式のものへと、或いは上位の型式のものから上位の型式のものへと変更されて場合にあっても、それに伴うプログラムの削除や変更の手間を不要とすることにある。
以上の発明が解決しようとする課題は、以下の構成を有するPLCのプログラム開発支援装置により解決することができるものと考えられる。
すなわち、このPLCのプログラム開発支援装置は、ユーザがPLCのラック構成図を事前に生成しておき、ラック上の高機能ユニットをプログラミングツールの変数テーブルにドラッグ・アンド・ドロップすると、その高機能ユニットのラメータを構造体変数として登録することができる、ようにしたことを特徴とするものである。
このような構成によれば、ラック構成図を作成することで、高機能ユニットのパラメータ情報をラック構成図で管理するようにしたPLCのプログラム開発支援装置において、ラダー言語によるプログラミングを行う場合には、ユーザは、マニュアルを見ずとも、必要なパラメータを変数として登録可能となる。
好ましい実施の形態としては、前記ラック構成図からドラッグ・アンド・ドロップして生成した構造体変数は、ラック構成図のユニット番号の変更が発生しても、構造体変数に割り付いているアドレスが自動的に更新される、ようにしてもよい。
このような構成によれば、ラック構成図を作成することで、高機能ユニットのパラメータ情報をラック構成図で管理するようにしたPLCのプログラム開発支援装置において、ミスや仕様変更などによりユニット番号の変更が発生した場合、その変更操作が簡便なものとなる。
好ましい実施の形態としては、前記自動生成された構造体は、高機能ユニットの最上位機種をベースとして生成され、対象とした機種で使用できる構造体のメンバ変数だけが変数テーブル上で有効となり、ラック構成図上で下位の型式に変更すると、有効であった変数が無効になった場合でも、その変数を使用していた回路の全ての命令をNOP命令にすることで、高機能ユニットの型式を変更してもプログラムをそのまま使用できる、ようにしてもよい。
好ましい実施の形態としては、前記自動生成された構造体は、高機能ユニットの最上位機種をベースとして生成され、対象とした機種で使用できる構造体のメンバ変数だけが変数テーブル上で有効となり、ラック構成図上で下位の型式に変更すると、有効であった変数が無効になった場合、その変数を使用していた命令だけをNOP命令にすることで、高機能ユニットの型式を変更してもプログラムをそのまま利用できる、ようにしてもよい。
このような構成によれば、ラック構成図を作成することで、高機能ユニットのパラメータ情報をラック構成図で管理するようにしたPLCのプログラム開発支援装置において、諸々の事情で高機能ユニットが下位の型式のものから上位の型式のものへと、或いは上位の型式のものから上位の型式のものへと変更されて場合にあっても、それに伴うプログラムの削除や変更の手間を不要とすることができる。
本発明によれば、ラック構成図を作成することで、高機能ユニットのパラメータ情報をラック構成図で管理するようにしたPLCのプログラム開発支援装置において、ラダー言語によるプログラミングを行う場合には、ユーザは、マニュアルを見ずとも、必要なパラメータを変数として登録可能となる。
また、本発明によれば、ラック構成図を作成することで、高機能ユニットのパラメータ情報をラック構成図で管理するようにしたPLCのプログラム開発支援装置において、ミスや仕様変更などによりユニット番号の変更が発生した場合、その変更操作が簡便なものとなる。
また、本発明によれば、ラック構成図を作成することで、高機能ユニットのパラメータ情報をラック構成図で管理するようにしたPLCのプログラム開発支援装置において、諸々の事情で高機能ユニットが下位の型式のものから上位の型式のものへと、或いは上位の型式のものから上位の型式のものへと変更されて場合にあっても、それに伴うプログラムの削除や変更の手間を不要とすることができる。
以下に、この発明に係るPLCのプログラム開発支援装置の好適な実施の一形態を添付図面を参照しながら詳細に説明する。
まず、本発明を概念的に理解するための説明図が図1に示されている。同図に示されるPLCのプログラム開発支援装置にあっては、主として4つの新機能が備えられている。
まず、第1の機能は、ユーザがPLCのラック構成図を事前に生成しておき、ラック上の高機能ユニットをプログラミングツールの変数テーブルにドラッグ&ドロップすると、その高機能ユニットのパラメータを構造体変数として登録することができるという機能である。
次に、第2の機能としては、ラック構成図からドラッグ&ドロップして生成した構造体変数は、ラック構成図のユニット番号の変更が発生しても、構造体変数に割り付けているアドレスが自動的に更新されるといった機能である。
第3の機能は、自動生成した構造体は高機能ユニットの最上位機種をベースに生成し、対象とした機種で使用できる構造体のメンバ変数だけが変数テーブル上で有効となり、ラック構成図上で下位の型式に変更すると、有効であった変数が無効になった場合、その変数を使用していた回路のすべての命令をNOP命令にすることで、高機能ユニットの型式を変更してもプログラムをそのまま利用できるようにするといった機能である。
第4の機能は、自動生成した構造体は高機能ユニットの最上位機種をベースに生成し、対象とした機種で使用できる構造体のメンバ変数だけが変数テーブル上で有効となり、ラック構成図上で下位の型式に変更すると、有効であった変数が無効になった場合、その変数を使用していた命令だけどNOP命令にすることで、高機能ユニットの型式を変更してもプログラムをそのまま利用できるようにするといった機能である。
次に、以上の4つの機能を実現するためのプログラム開発支援装置のハードウェア構成及びソフトウェア構成について順次説明を加えていく。
プログラム開発支援装置のハードウェア構成図が図2に示されている。当業者にはよく知られているが、この種のプログラム開発支援装置は、パーソナルコンピュータ(以下、パソコンと称する)のハードウェアの上に、プログラム開発並びに編集などに必要な各種のソフトウェアを組み込むことで構成される。
すなわち、プログラム開発支援装置1は、パソコン本体10と、ディスプレイ11と、キーボード12と、マウスなどのポインティングデバイス13とを主体として構成されている。
パソコン本体10は、装置全体を統括制御するためのCPU10aと、RAMで構成される第1メモリ10bと、ROM/HDDで構成される第2メモリ10cと、PLCとの接続を行うためのCOMポート(シリアル通信部)10dとを含んで構成される。
CPU10aは、マイクロプロセッサを主体として構成され、第2メモリ(ROM/HDD)10cに格納された各種のプログラムやユニット情報等々を、第1メモリ(RAM)10bをワークエリアとして実行することによって、プログラム開発支援装置としての各種の機能を実現するように構成されている。
パソコン本体10とユーザとのインタフェースは、ディスプレイ11、キーボード12、及びポインティングデバイス13を使用したグラフィック・ユーザ・インタフェース(GUI)を介して行われる。
次に、この発明に係るプログラム開発支援装置のソフトウェア構成を図3〜図10のフローチャートを参照しつつ順次に説明する。

[ラック構成図へのユニットの登録]
プログラム開発支援装置1において、ラック構成図へのユニットの登録処理を示すフローチャートが図3に示されている。
同図に示されるように、先ず、ユーザは、装置1に内蔵されたプログラミングツール(プログラミング用の各種の機能が組み込まれたソフトウェア)で、新規にプロジェクトを作成する(ステップ101)。このようにして作成されたプロジェクトが図11に示されている。
次に、ユーザは、プログラミングツールのプロジェクトワークスペース上の「I/Oテーブル・ユニット設定」をダブルクリックして、ラック構成図を起動する(ステップ102)。このようにして起動されるラック構成図が図12に示されている。
次に、ラック構成図の指定されたスロット位置がユーザによりクリックされると、ラックに装着するユニットを決めるための、ユニット型式一覧が表示される(ステップ103)。このようにして表示されるユニット型式一覧のダイアログを図13に示す。
次に、ユーザは、図13に示されるユニット型式一覧から装着するユニットを選択する(ステップ104)。すると、ラック構成図は選択された型式のプロファイル情報が保存されたCPSファイルを第2のメモリに設定されたユニット情報記憶部から検索する(ステップ105)。
次に、検索したCPSファイルからユニット種別を取得する(ステップ106)。しかるのち、ユニット種別が高機能ユニットかどうかを判別する(ステップ107)。
次に、ユニット種別が高機能ユニットの場合(ステップ107YES)、図14のユニット番号を入力するダイアログを表示する(ステップ108)。
次に、ラック構成図は、ユーザが入力したユニット番号から、高機能ユニットの各パラメータのアドレスを算出する(ステップ109)。さらに、CPSファイルから構造体のメンバ変数となるパラメータを抽出し、各パラメータにCPSで定義されている、先頭からのオフセット値とパラメータデータ型から、アドレスを割り当てる(ステップ110)。
例えば、位置制御ユニットのパラメータの場合、以下のようにメンバ変数となるパラメータに物理的なアドレスを割り当てる。

NCParameter.CommonParam.OperatingDataAreaDesignation D20100
NCParameter.CommonParam.BeginingWordOfOperatingDataArea D20101

NCParameter.AxisParam[0].OutputPulseSelection D20104
NCParameter.AxisParam[0].OutputPulseDirection D20105

NCParameter.AxisParam[1].OutputPulseSelection D20132
NCParameter.AxisParam[1].OutputPulseDirection D20133

次に、ユニット種別が高機能ユニットでない場合は、何も表示せずラック構成図の指定されたスロット位置に選択されたユニットを登録する(ステップ111)。以上で1ユニットの登録が完了となる。
複数ユニットの登録処理を行う場合は、再度ステップ103の処理から開始する。スロット1に入力ユニット、スロット2に出力ユニット、スロット3に位置制御ユニットを登録したラック構成図の例を図15に示す。
一方、ステップ107で高機能ユニットではないと判定されると、ステップ112へと進み、ユニットのビット数分、0CHから前詰めでアドレスを確保する(ステップ112)。

[ラック構成図の高機能ユニットから構造体変数を生成]
ラック構成図上の高機能ユニットをプログラミングツールの変数テーブルにドラッグ&ドロップして、構造体変数を生成するフローチャートを図4に示す。
同図において処理が開始されると、ユーザは、ラック構成図の高機能ユニットをドラッグして、プログラミングツールの変数テーブルへドロップする(ステップ210)。イメージ図を図16に示す。
次に、プログラミングツールはラック構成図からアドレスが割り当てられたパラメータリストの情報を取得する(ステップ202)。パラメータリストには、パラメータ毎に以下のデータをセットする。
例として前述の“NCParam.AxisParam[1].OutputPulseDirectionで説明する。
・パラメータ名(メンバ変数名となる。例では、OutputPulseDirection)
・階層構造名(構造体型を生成するための上位の構造。例では、NCParam.AxisParam[1])
・データ型(メンバ変数のデータ型)
・有効フラグ(メンバ変数がこの型式で使用できるかどうかを判別するフラグ)
・アドレス(メンバ変数に割り当てられるアドレス)
・コメント(各メンバ変数に割り当てられるコメント)
次に、上記のパラメータリストのパラメータリスト、階層構造名、データ型、コメントから構造体定義を生成し、構造体型定義に登録する(ステップ203)。構造体型定義の例を図17に示す。
次に、上記構造体型から構造体変数を生成し、アドレスを割り当て、図18のように変数テーブルに構造体変数を登録する(ステップ204)。

[高機能ユニットのユニット番号変更による構造体変数の割付アドレスの変更]
ラック構成図上の高機能ユニットのユニット番号を変更することにより、プログラミングツールの変数テーブルのその高機能ユニットの構造体変数に割り当てられているアドレスを変更するフローチャートを図5に示す。
同図において、処理が開始されると、ユーザは、ラック構成図の高機能ユニットを選択し、ユニット番号の変更機能を実行する(ステップ301)。ユニット番号の変更ダイアログを図19に示す。
次に、ユニット番号が変更されると、ラック構成図は各パラメータに割り当てたアドレスを再計算し、パラメータリストを更新する(ステップ302)。
次に、ラック構成図からプログラミングツールに構造体変数のアドレス割付の変更が発生したことを通知し、ラック構成図からプログラミングツールに更新したパラメータリストを渡す(ステップ303)。
次に、プログラミングツールは更新されたパラメータリストから構造体変数のアドレスの再割り当てを実行する(ステップ304)。ユニット番号が1から2に変更された場合の構造体変数への割付アドレスの変更例を図20に示す。

[高機能ユニットの型式変更による構造体変数を使用したプログラムの有効/無効化]
ラック構成図上の高機能ユニットの型式を変更することにより、パラメータの一部が有効あるいは無効となる。有効/無効の変更により、変数テーブルの構造体変数およびその構造体変数を使用している回路の有効/無効を切り替えるフローチャートを図7に示す。
同図において、処理が開始されると、ユーザは、ラック構成図の高機能ユニットを選択し、ユニット変更を実行すると、同一種別の変更可能な型式一覧を表示する(ステップ501)。型式一覧ダイアログを図21に示す。
次に、ラック構成図は、変更された型式のCPSファイルを図2の第2記憶部に設定されたユニット情報記憶部から読み出し、そのCPSファイルからパラメータリストを取り出し、アドレスの再割付を行う(ステップ502)。
次に、ラック構成図からプログラミングツールに高機能ユニットの型式変更が発生したことを通知し、ラック構成図がプログラミングツールに更新したパラメータリストを渡す(ステップ503)。
次に、プログラミングツールの変数テーブルは、前回のパラメータリストの各パラメータの有効フラグと今回取得したパラメータリストの各パラメータの有効フラグとを比較する(ステップ504)。比較した結果、メンバ変数の有効フラグに変更があればステップ506の処理を実行し、変更がなければステップ509の処理を実行する。
ステップ506の処理において、有効フラグの変更が、有効から無効に変更されたのであればステップ507の処理を実行し、無効から有効に変更された場合はステップ508の処理を実行する。
ステップ507の処理においては、有効から無効に変わった構造体変数のメンバ変数は、変数テーブル上で無効とし、そのメンバ変数をグレー表示して使用不可であることをユーザに通知し、アドレスを未割付の状態にする。グレー表示した場合の構造体のメンバ変数の表示例を図22に示す。また、そのメンバ変数を有効フラグの変更情報と共に変更リストに登録する。
ステップ508の処理においては、変数テーブルのグレー表示していたメンバ変数を通常の表示にし、割付アドレスも表示する。また、そのメンバ変数を有効フラグの変更情報と共に変更リストに登録する。
次に、対象とする構造体変数の全メンバ変数に対して比較処理が完了するのを待って(ステップ509YES)、ラダープログラムの変改処理(ステップ510)を実行する。

[構造体メンバ変数の有効/無効化の変更によるプログラムの変更]
[高機能ユニットの型式変更による構造体変数を使用したプログラム有効/無効化」で有効フラグが変更となったメンバ変数を使用しているラダー回路の変更を行うフローチャートを図8に示す。
同図において、処理が開始されると、まず、プログラムの先頭から1回路を読み出す(ステップ601)。
次に、回路の変換方式が「回路の全面例をNOP命令に変換する」か「対象メンバ変数を使用している命令だけをNOP命令に変換する」かを判別する(ステップ602)。回路の変換方式の変更は、後述する「下位の形式に変換された場合に無効となるメンバ変数を使用している回路のNOP変換方法を変更する」の項を参照されたい。
「回路の全命令をNOP命令に変換する」場合、「回路の全命令を変更」のフローチャート処理を実行する(ステップ603)。「対象メンバ変数を使用している命令だけをNOP命令に変換する」場合、「対象メンバ変数を使用した命令の変更」のフローチャート処理を実行する(ステップ604)。
しかるのち、すべての回路に対して、ステップ601からの処理を繰り返し実行する(ステップ605NO)。

[回路の全命令を変更]
回路の変換方式が「回路の全命令をNOP命令に変換する」場合のラダー回路の変更フローチャートを図9に示す。
同図において、処理が開始されると、「高機能ユニットの型式変更による構造体変数を使用したプログラムの有効/無効化」で生成した、変更リスト内に未チェックの変数が存在するかどうかをチェックする(ステップ701)。存在する場合はステップ702の処理を実行する。存在しない場合は本フローチャート処理を終了する。
次に、変更リストから1変数を取得する(ステップ702)。さらに、その変数が回路で使用されているかどうかをチェックする(ステップ703)。回路で使用されていれば、ステップ704の処理を実行する。使用されていなければ、次の変数をチェックするためステップ701の処理に戻る。
次に、変数が「有効から無効」に変更されたか、「無効から有効」に変更されたかをチェックする(ステップ704)。「有効から無効」に変更された場合はステップ705の処理を実行する。「無効から有効」に変更された場合はステップ706の処理を実行する。
「有効から無効」状態に変更されたメンバ変数を使用している回路は、グレー表示に変更し、この回路が実行されないことをユーザに通知する。また、PLCのオブジェクトへ変換する場合、無効回路はすべてNOP命令に置き換える。NOP命令に置き換える場合、オブジェクトサイズが変更しないようにNOP命令を生成し、本フローチャート処理を終了する(ステップ705)。グレー表示した回路の例を図23に、NOP命令に置き換える例を図24にそれぞれ示す。
「無効から有効」状態に変更されたメンバ変数を使用している回路はグレー表示の状態から通常表示に戻し、使用可能になったことが分かるようにユーザに通知する。ただし、本回路で「有効から無効」に変更されたメンバ変数が存在している場合、そのメンバ変数を優先するため、チェックを継続する(ステップ706)。使用可能状態になった回路の例を図25に示す。

[対象メンバ変数を使用した命令の変更]
回路の変換方式が対象メンバ変数を使用している命令のみNOP命令にする場合のラダー回路の変更フローチャートを図10に示す。
同図において、処理が開始されると、まず、変更リスト内に未チェックの変数が存在するかどうかをチェックする(ステップ801)。存在する場合はステップ802の処理を実行する。存在しない場合は本フローチャート処理を終了する。
次に、変更リストから位置変数を取得する(ステップ802)。さらに、その変数が回路で使用されているかどうかをチェックする(ステップ803)。回路で使用されていればステップ804の処理を実行する。使用されていなければ、次の変数をチェックするためステップ801の処理に戻る。
次に、変数が「有効から無効」に変更されたか、「無効から有効」に変更されたかをチェックする(ステップ804)。「有効から無効」に変更された場合はステップ805の処理を実行する。「無効から有効」に変更された場合はステップ806の処理を実行する。
ステップ805の処理においては、「有効から無効」状態に変更されたメンバ変数を使用している命令をグレー表示に変更し、この命令の実行されないことをユーザに通知する。また、PLCのオブジェクト変換する場合、無効命令はNOP命令に置き換える。NOP命令に置き換える場合、オブジェクトサイズが変更しないようにNOP命令を生成する。グレー表示した命令を持つ回路の例を図26に、NOP命令に置き換える例を図28にそれぞれ示す。
ステップ806の処理においては、「無効から有効」状態に変更されたメンバ変数を使用している命令はグレー表示の状態から通常表示に戻し、使用可能になったことがわかるようにユーザに通知する(ステップ806)。使用可能状態になった回路の例を図29に示す。
次に、変更リスト内に未チェックの変数が存在するかどうかをチェックする(ステップ807)。存在する場合はステップ802の処理を実行する。存在しない場合は本フローチャート処理を終了する。

[下位の型式に変換された場合に無効となるメンバ変数を使用している回路のNOP変換方法を変更する]
ラック構成図上の高機能ユニットの型式が下位の型式に変更されることにより、その高機能ユニットから生成された構造体のメンバ変数の一部を無効状態とし、そのメンバ変数を使用しているラダー回路の全命令をNOP命令に変換する(「高機能ユニットの型式変更による構造体変数を使用したプログラムの有効/無効化」参照)。
しかし、そのメンバ変数を使用している命令だけをNOP命令に置き換えることも可能とする。構造体のメンバ変数が無効となったとき、そのメンバ変数を使用している回路の全命令をNOP命令にする設定から、そのメンバ変数を使用している命令だけをNOP命令に変更するフローチャートを図6に示す。
同図において、処理が開始されると、下位の型式では無効となるメンバ変数を使用して回路を表示する(ステップ401)。
回路の例を図27に示す。次に、その回路を選択し、回路のプロパティを表示する(ステップ402)。回路のプロパティダイアログを図29に示す。デフォルトでは「変数が無効になれば回路の全命令をNOPに置き換える」チェックボックスがチェックされている。
次に、回路のプロパティダイアログの「変数が無効になれば回路の全命令をNOPに置き換える」チェックボックスのチェックを外し、ダイアログを終了する(ステップ403)。
以上、添付図面を参照しながら詳細に説明した実施形態によれば、次のような作用効果がある。
プログラミングツールは、PLCのユニットの型式ごとにそれらのユニットのプロファイル情報を保存したCPS(Component Profile Sheet)ファイルを管理している。高機能ユニットの関しては、その高機能ユニットがサポートしているパラメータの転移情報がCPSに格納されている。
PLCのラック構成図を作成するときに、ユーザは高機能ユニットを装着する時点でユニット番号を登録する。その結果、CPSに格納されている高機能ユニットのパラメータを取得し、アドレスを計算して、各パラメータにアドレスを割り付けることができる。
従来まで、ユーザがこれらのパラメータをラダープログラムで使用する場合、マニュアルを見ながらプログラミングツールの変数テーブルで変数を入力しなければならなかったが、本発明では、ラック構成図上に登録した高機能ユニットをドラッグし、プログラミングツールの変数テーブルにドロップすることで、自動的に変数テーブルへ構造体変数として生成することができる。
また、高機能ユニットのユニット番号は実際のユニットの前面にあるロータリースイッチで設定することとなる。そのため、実際のロータリースイッチとラック構成図のユニット番号が不一致となるミスや、開発途中でのユニット数の増加や減少により管理しやすいようにユニット番号を見直すなど、ラック構成図上の高機能ユニットのユニット番号が変更されることがある。本発明では、このユニット番号の変更にともなう構造体変数のアドレスの再割付も自動的に行うことができる。
高機能ユニットは通常複数の型式が提供されている。処理するデータ量や一部の機能のありなしなどの違いはあるが、同じタイプの高機能ユニットであれば型式が異なっても基本的に同じ動作をするユニットである。
ユーザは通常できるだけコストの安いユニットを使用するため、制御に不要な機能を省いた型式のユニットを採用することとなるが、制御対象の変更により上位の型式の機能が必要になることもある。例えば、位置制御などは1軸、2軸、4軸の軸数の違いで型式が異なるが、各軸の動作仕様などは同じである。
しかし、2軸から1軸に変更した場合でも、1軸から2軸に変更した場合でも、プログラムの追加や削除の変更作業は必要であった。本発明では、ユーザはまず最上位型式のフルスペックベースでプログラミングを行っておく。使用する型式を下位のものに変更した場合、プログラミングツールは下位の機種が未サポートの機能を動作しないようにする。具体的には、下位の機種では未サポートの構造体のメンバ変数(パラメータ)を使用している命令を非実行命令(NOP命令で実現)とするか、あるいはその変数を使用している回路のすべての命令を非実行命令とする。
これにより、型式の変更を行っても未サポートの機能のプログラムを削除・変更することなく、そのまま再利用できる。逆に下位から上位に戻した場合は非実行命令にした命令を通常の命令に戻すだけとなり、この場合もプログラムの変更は不要である。
本発明によれば、ラック構成図を作成することで、高機能ユニットのパラメータ情報をラック構成図で管理するようにしたPLCのプログラム開発支援装置において、ラダー言語によるプログラミングを行う場合には、ユーザは、マニュアルを見ずとも、必要なパラメータを変数として登録可能となる。
また、本発明によれば、ラック構成図を作成することで、高機能ユニットのパラメータ情報をラック構成図で管理するようにしたPLCのプログラム開発支援装置において、ミスや仕様変更などによりユニット番号の変更が発生した場合、その変更操作が簡便なものとなる。
また、本発明によれば、ラック構成図を作成することで、高機能ユニットのパラメータ情報をラック構成図で管理するようにしたPLCのプログラム開発支援装置において、諸々の事情で高機能ユニットが下位の型式のものから上位の型式のものへと、或いは上位の型式のものから上位の型式のものへと変更されて場合にあっても、それに伴うプログラムの削除や変更の手間を不要とすることができる。
本発明を概念的に理解するための説明図である。 プログラム開発支援装置のハードウェア構成図である。 ラック構成図へのユニットの登録処理を示すフローチャートである。 変数テーブルへの構造体変数生成処理を示すフローチャートである。 ラック構成図上のユニット番号変更処理を示すフローチャートである。 未仕様メンバ変数だけをNOPに置換するように設定する処理を示すフローチャートである。 ラック構成図上のユニットの型式を変更する処理を示すフローチャートである。 プログラムの変換処理を示すフローチャートである。 回路の全命令の変更処理を示すフローチャートである。 対象メンバ変数を使用した命令の変更処理を示すフローチャートである。 プログラミングツールでの新規プロジェクト作成時の画面説明図である。 PLCのラック構成図を示す画面説明図である。 ユニット一覧を示す画面説明図である。 ユニット番号入力のための操作案内の画面説明図である。 ラック構成図の登録例を示す画面説明図である。 高機能ユニットを変数テーブルへドラッグ&ドロップする操作の説明図である。 構造体型定義を表にして示す画面説明図である。 構造体変数の登録を表にして示す画面説明図である。 ユニット番号の変更のための操作案内の画面説明図である。 ユニット番号変更によるアドレス変更の例を示す画面説明図である。 ユニット変更ダイアログの画面説明図である。 構造体変数の一部のメンバ変数が無効状態となった場合の画面説明図である。 無効状態となったラダー図である。 NOP命令への置換例である。 使用可能状態となったラダー図である。 メンバ変数を使用している命令だけ無効となる回路例である。 構造体のメンバ変数を使用する回路例である。 NOP命令への置換例である。 回路の全命令をNOPに変換しないための操作案内の画面説明図である。
符号の説明
1 プログラム開発支援装置
10 パソコン本体
10a CPU
10b 第1メモリ(RAM)
10c 第2メモリ(ROM/HDD)
10d COMポート(シリアル通信部)
11 ディスプレイ
12 キーボード
13 ポインティングデバイス

Claims (2)

  1. ユーザがPLCのラック構成図を事前に生成しておき、ラック上の高機能ユニットをプログラミングツールの変数テーブルにドラッグ・アンド・ドロップすると、その高機能ユニットのパラメータを構造体変数として登録することができるようにし、
    前記自動生成された構造体は、高機能ユニットの最上位機種をベースとして生成され、対象とした機種で使用できる構造体のメンバ変数だけが変数テーブル上で有効となり、ラック構成図上で下位の型式に変更すると、有効であった変数が無効になった場合でも、その変数を使用していた回路の全ての命令をNOP命令にすることで、高機能ユニットの型式を変更してもプログラムをそのまま使用できる、ようにしたことを特徴とするPLCのプログラム開発支援装置。
  2. ユーザがPLCのラック構成図を事前に生成しておき、ラック上の高機能ユニットをプログラミングツールの変数テーブルにドラッグ・アンド・ドロップすると、その高機能ユニットのパラメータを構造体変数として登録することができるようにし、
    前記自動生成された構造体は、高機能ユニットの最上位機種をベースとして生成され、対象とした機種で使用できる構造体のメンバ変数だけが変数テーブル上で有効となり、ラック構成図上で下位の型式に変更すると、有効であった変数が無効になった場合、その変数を使用していた命令だけをNOP命令にすることで、高機能ユニットの型式を変更してもプログラムをそのまま利用できる、ようにしたことを特徴とするPLCのプログラム開発支援装置。
JP2008066905A 2008-03-15 2008-03-15 Plcのプログラム開発支援装置 Active JP5141889B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008066905A JP5141889B2 (ja) 2008-03-15 2008-03-15 Plcのプログラム開発支援装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008066905A JP5141889B2 (ja) 2008-03-15 2008-03-15 Plcのプログラム開発支援装置

Publications (2)

Publication Number Publication Date
JP2009223591A JP2009223591A (ja) 2009-10-01
JP5141889B2 true JP5141889B2 (ja) 2013-02-13

Family

ID=41240297

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008066905A Active JP5141889B2 (ja) 2008-03-15 2008-03-15 Plcのプログラム開発支援装置

Country Status (1)

Country Link
JP (1) JP5141889B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5086296B2 (ja) * 2009-03-19 2012-11-28 株式会社日立産機システム プログラマブルコントローラ制御プログラム作成方法、および、プログラマブルコントローラ制御プログラム作成システム
JP5810563B2 (ja) * 2011-03-15 2015-11-11 オムロン株式会社 制御プログラム開発支援装置、制御プログラム開発支援用プログラム及び記録媒体
JP5826636B2 (ja) * 2012-01-06 2015-12-02 株式会社東芝 エンジニアリング装置
WO2016162926A1 (ja) 2015-04-06 2016-10-13 三菱電機株式会社 プログラマブルコントローラシステム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10340108A (ja) * 1997-06-06 1998-12-22 Mitsubishi Electric Corp プログラマブルロジックコントローラの周辺装置
JPH11338677A (ja) * 1998-05-29 1999-12-10 Fuji Electric Co Ltd システム構成の定義方法
JP4554809B2 (ja) * 2000-12-20 2010-09-29 株式会社キーエンス 通信プロトコル作成方法、通信プロトコル作成装置、通信プロトコル作成プログラムおよびそれを記録した記録媒体
JP2003181900A (ja) * 2001-12-20 2003-07-02 Omron Corp コントローラ並びにモーション制御装置
JP4782618B2 (ja) * 2006-06-12 2011-09-28 株式会社日立製作所 シーケンス制御装置

Also Published As

Publication number Publication date
JP2009223591A (ja) 2009-10-01

Similar Documents

Publication Publication Date Title
JP5810563B2 (ja) 制御プログラム開発支援装置、制御プログラム開発支援用プログラム及び記録媒体
JP6372308B2 (ja) 情報処理装置、情報処理方法、情報処理プログラム、および記録媒体
JP6114828B2 (ja) 工具管理システム
JP5619328B1 (ja) シーケンスプログラム作成支援装置
JP5141889B2 (ja) Plcのプログラム開発支援装置
JP5766378B2 (ja) システム開発装置、方法およびプログラム
CN110413161B (zh) 组件配置方法、装置以及电子设备
JP5444112B2 (ja) プラント制御システムおよびプログラムリロケート方法
JP5757098B2 (ja) プログラム作成支援装置、プログラム作成支援方法
JP3847585B2 (ja) エディタの登録装置、登録プログラムおよびそれを記録した記録媒体
JP4995009B2 (ja) Pod画面生成装置、そのプログラム
JP2006243841A (ja) Plc用ツール装置
JP5924960B2 (ja) 画像形成装置、画像形成装置の制御方法、及びプログラム
US20220342381A1 (en) Managing a machine tool method, for example method of mapping toolpath data and machine code, a control device, and a machine tool
US11360454B2 (en) Ladder display device for circuit generation using touch panel
WO2019019051A1 (zh) 一种从设备的输入输出控制方法、主控设备以及数控系统
US10509557B2 (en) Prototype storing method
JP5870214B2 (ja) プログラマブルコントローラシステム、そのプログラマブル表示器、支援装置、プログラム
US20190163166A1 (en) Information processing device
JP5926584B2 (ja) Plcシステム、そのプログラマブル表示器、作画エディタ装置
JP6076564B2 (ja) システム設計支援ツール
JP3710731B2 (ja) エディタ装置およびエディタプログラムを記録した記録媒体
JP6407481B1 (ja) プログラム作成装置
JP2017199226A (ja) プログラム編集方法、プログラム開発支援装置及びプログラマブルコントローラ
CN114981743A (zh) 设计辅助装置、设计辅助方法及设计辅助程序

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110107

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120112

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120118

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120312

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120627

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120808

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: 20121024

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121106

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151130

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5141889

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150