JP2022018696A - 制御プログラム生成装置 - Google Patents

制御プログラム生成装置 Download PDF

Info

Publication number
JP2022018696A
JP2022018696A JP2020121989A JP2020121989A JP2022018696A JP 2022018696 A JP2022018696 A JP 2022018696A JP 2020121989 A JP2020121989 A JP 2020121989A JP 2020121989 A JP2020121989 A JP 2020121989A JP 2022018696 A JP2022018696 A JP 2022018696A
Authority
JP
Japan
Prior art keywords
connection pattern
control program
connection
pattern
storage unit
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.)
Pending
Application number
JP2020121989A
Other languages
English (en)
Inventor
淳一 川本
Junichi Kawamoto
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.)
Toshiba Corp
Toshiba Infrastructure Systems and Solutions Corp
Original Assignee
Toshiba Corp
Toshiba Infrastructure Systems and Solutions 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 Toshiba Corp, Toshiba Infrastructure Systems and Solutions Corp filed Critical Toshiba Corp
Priority to JP2020121989A priority Critical patent/JP2022018696A/ja
Publication of JP2022018696A publication Critical patent/JP2022018696A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Programmable Controllers (AREA)

Abstract

【課題】ユーザの作業効率を向上させる。【解決手段】実施形態の制御プログラム生成装置は、グラフィックプログラム編集部と、記憶部と、コンパイラと、を備える。グラフィックプログラム編集部は、プラントを制御する制御プログラムの生成するためのエディタ画面において、プラントを制御する命令語間の結線パターンの入力を受け付ける。記憶部は、命令語間の第1の結線パターンと、命令語間で第1の結線パターンと結線が異なる第2の結線パターンと、を対応付けて記憶する。コンパイラは、グラフィックプログラム編集部において生成された制御プログラムについて、結線パターンに従って命令語の実行順序を決定するためのコンパイルが行われる際に、制御プログラムに第1の結線パターンが含まれていた場合に、第1の結線パターンを第2の結線パターンに変換した上で、当該コンパイルを行う。【選択図】図2

Description

本発明の実施形態は、制御プログラム生成装置に関する。
従来から、一般にプラントを制御する制御プログラム生成装置において、システム構成の登録、グローバル変数の登録(コントローラ変数、ステーション変数、I/O変数、ネットワーク変数)、プラント制御用の制御プログラム(アプリケーションプログラム)を生成する。
上述した制御プログラム生成装置において、制御プログラムの生成は、プログラムの見やすさ、表現のしやすさから、CADのようなエディタへ移行している。これにより、制御プログラムの生成効率向上に繋がっている。
そして、エディタを用いて制御プログラムを編集する際の自由度が増したことで、様々な表現が可能となっている。
特に、命令語間を接続する結線は、制御プログラムの制御順を決める上で重要な意味を持つが、その結線方法については、エンジニアに応じて異なる。
特開平11-85490号公報
しかしながら、コンパイラが、エディタで生成された制御プログラムのソースをコンパイルする際に、結線方法に応じた制御順が設定されるが、エンジニアの意図通りでなかったり、コンパイルエラーが生じることもなる。このため、エンジニアは制御プログラムの書き直しや修正が発生するため、作業効率低下する可能性がある。
実施形態の制御プログラム生成装置は、グラフィックプログラム編集部と、記憶部と、コンパイラと、を備える。グラフィックプログラム編集部は、プラントを制御する制御プログラムの生成するためのエディタ画面において、プラントを制御する命令語間の結線パターンの入力を受け付ける。記憶部は、命令語間の第1の結線パターンと、命令語間で第1の結線パターンと結線が異なる第2の結線パターンと、を対応付けて記憶する。コンパイラは、グラフィックプログラム編集部において生成された制御プログラムについて、結線パターンに従って命令語の実行順序を決定するためのコンパイルが行われる際に、制御プログラムに第1の結線パターンが含まれていた場合に、第1の結線パターンを第2の結線パターンに変換した上で、当該コンパイルを行う。
図1は、第1の実施形態にかかる制御プログラム処理システム1の構成を例示した図である。 図2は、第1の実施形態にかかるクライアントと、コントローラと、の機能構成を例示した図である。 図3は、第1の実施形態のグラフィックプログラム編集部により生成される制御プログラムの一例を示す図である。 図4は、第1の実施形態のグラフィックプログラム編集部により生成される制御プログラムの一例を示す図である 図5は、第1の結線パターンと、当該第1の結線パターンが含まれていた場合に変更される第2の結線パターンと、を第1の例を示した図である。 図6は、第1の結線パターンと、当該第1の結線パターンが含まれていた場合に変更される第2の結線パターンと、を第2の例を示した図である。 図7は、第1の結線パターンと、当該第1の結線パターンが含まれていた場合に変更される第2の結線パターンと、を第3の例を示した図である。 図8は、第1の結線パターンと、当該第1の結線パターンが含まれていた場合に変更される第2の結線パターンと、を第4の例を示した図である。 図9は、複数の第1の結線パターンと、当該複数の第1の結線パターンが含まれていた場合に変更される第2の結線パターンと、の例を示した図である。 図10は、第1の実施形態のクライアントPCにおけるコンパイルまでの処理を示したフローチャートである。 図11は、第1の実施形態のクライアントPCにおける、エンジニア情報記憶部223に結線パターンが記憶されていない場合のコンパイルまでの処理を示したフローチャートである。 図12は、第2の実施形態のクラウドサーバと、複数のクライアントPCと、の間の情報の送受信を例示した図である。
(第1の実施形態)
図1は、第1の実施形態にかかる制御プログラム処理システム1の構成を例示した図である。図1に示されるように、制御プログラム処理システム1は、クラウドサーバ11と、プラント制御システム10と、を備える。クラウドサーバ11と、プラント制御システム10とは、公衆ネットワーク12を介して接続されている。
クラウドサーバ11は、クラウド環境にあり、公衆ネットワーク12を介してサーバPC130、クライアントPC100a~100n、プログラマブルロジックコントローラ(PLC:Programmable Logic Controller、以下、単に「コントローラ」という)110a~110nと接続している。
本実施形態においては、クラウドサーバ11が、プラント制御システム10におけるデータのバックアップ等を実行する。本実施形態におけるバックアップは、プラント制御システム10のサーバPC130、クライアントPC100、コントローラ110a~110nの制御プログラムのソースファイルやオブジェクトファイルや、プラントの実行結果であるログ情報等とする。
さらに、プラント制御システム10は、サーバPC130と、クライアントPC100a~100nと、コントローラ110a~110nと、フィールド機器120a~120nを備える。以下、クライアントPC100a~100nを区別しない場合は、単に「クライアントPC100」という。また、コントローラ110a~110nを区別しない場合は、単に「コントローラ110」という。
サーバPC130と、クライアントPC100a~100nと、コントローラ110a~110nと、は制御ネットワーク150を介して接続されている。また、コントローラ110a~110nと、フィールド機器120a~120nと、は、フィールドネットワーク151を介して接続されている。これらのネットワークによって機器間の情報の送受信が可能となる。制御ネットワーク150、及びフィールドネットワーク151は、例えば、イーサネット(登録商標)等の規格に準拠したネットワークである。
サーバPC130は、クライアントPC100およびコントローラ110のログ情報等を収集し、収集した情報をクラウドサーバ11に送信する。
コントローラ110は、IoT対応であって、プラントの制御を行うアプリケーションプログラム等を実行し、フィールド機器120a~120を制御する。
プラント制御システム10に含まれるコントローラ110の数は特に限定されないが、コントローラ110の台数は、例えば100台以上であっても良い。また、コントローラ110は、フィールド機器120a~120nと接続しており、フィールド機器120a~120nとの間で信号を入出力する。フィールド機器120a~120nは、例えばセンサや、プラントを構成する機器であるものとする。
クライアントPC100は、プラントのシステムの構築、監視、制御プログラムなどを生成する制御プログラム生成装置として機能する。さらに、クライアントPC100によって生成された制御プログラムは、コントローラ110上で実行可能とする。本実施形態においては、クライアントPC100を操作するエンジニアや管理者等を、ユーザともいう。クライアントPC100は、本実施形態における制御プログラム生成装置の一例である。
図2は、本実施形態のクライアントPC100と、コントローラ110と、の機能構成を例示した図である。
クライアントPC100は、表示装置241と、キーボード242と、マウス243と、を備えている。クライアントPC100は、CPUなどの制御装置と、ROM(Read Only Memory)やRAMなどの記憶装置と、HDD、CDドライブ装置などの外部記憶装置とを備えており、通常のコンピュータを利用したハードウェア構成となっている。クライアントPC100は、図示しない制御装置が、プログラムを実行することで、様々な構成が実現されるとともに、HDDなどの記憶装置が各種情報の記憶部として機能する。例えば、クライアントPC100は、登録情報管理部201と、データベース管理部202と、通信制御部203と、を実現する。
データベース管理部202は、ソースファイル記憶部231と、オブジェクトファイル記憶部232と、を備える。データベース管理部202は、クライアントPC100の不揮発性メモリ上に実現される。
ソースファイル記憶部231は、登録情報管理部201によって生成された制御プログラムのソースファイルを記憶する。
オブジェクトファイル記憶部232は、登録情報管理部201によって生成された制御プログラムのコンパイル後のオブジェクトファイルを記憶する。
通信制御部203は、コントローラ110等との間のデータの送受信を制御する。
登録情報管理部201は、システム構成登録部211と、制御プログラム生成部212と、ダウンロード制御部213と、を備え、コントローラ110に登録される制御プログラムに関する情報を管理する。
システム構成登録部211は、プラント制御システム10を実現するための各構成を登録する。本実施形態のシステム構成登録部211は、キーボード242やマウス243を介して、プラント制御システム10を構成するコントローラ110やフィールド機器120a~120に関する登録を受け付ける。
制御プログラム生成部212は、グラフィックプログラム編集部221と、コンパイラ222と、エンジニア情報記憶部223と、を備え、コントローラ110が実行するための制御プログラムを生成する。
グラフィックプログラム編集部221は、プラントを制御する制御プログラムの生成するためのエディタ画面において、プラントを制御する命令語間の結線パターンの入力を受け付ける。
図3及び図4は、本実施形態のグラフィックプログラム編集部221により生成される制御プログラム301、401の一例を示す図である。図3及び図4に示す例では、制御プログラム301はFBD言語(ファンクション・ブロック・ダイアグラム)で記述されている。制御プログラムは、例えば、JIS B 3503またはIEC(国際電気標準会議) 61131-3の標準規格で、コントローラ用のプログラム言語として規定されている言語により記述されるが、コントローラ110が実行可能なプログラムであれば良い。上述の標準規格に規定された言語は、例えば、LD(ラダー・ダイアグラム)言語、FBD言語、SFC(シーケンシャル・ファンクション・チャート)言語、またはST(ストラクチャード・テキスト)言語等である。
制御プログラム301及び制御プログラム401は、制御プログラム301の結線部311と、制御プログラム401の結線部411と、の結線の向きが異なる以外は同じものとする。
図3に示される例では、命令語313が実行された後に、命令語312が実行されるのに対して、図4に示される例では、命令語412が実行された後に、命令語3413が実行される。
これは、制御プログラムは国際標準規格IEC 61131-3(PLCプログラミング言語)に準拠しており、基本的に英文を読むように左上から右下に向かって制御順が決定されるからである。
図3で示される例では、2つの命令語(例えばAND_BOOL)312、313がある。命令語312の方が、命令語313よりも左側にあるが、結線部311で分岐があり、当該分岐でも、左上から右下の順番になる。このため、命令語313が、命令語312より優先的に実行される。
一方、図4に示される例では、結線部411で分岐が有り、当該分岐でも左上から右上の順番となる。このため、このため、命令語412が、命令語413より優先的に実行される。このように、命令語の配置は同じでも、分岐における結線パターンによって、命令語の実行順が定められる。
上述した実行順序に従って命令語が実行されるが、ユーザが制御プログラムを設計する際に癖を有する場合も多く、ユーザが設計したとおりに制御プログラムが実行された場合、実際の命令語の実行順の仕様とは異なる場合がある。さらには、ユーザの設計の結線によっては、実行順序に従って命令語が実行できず、コンパイルでNGが生じる可能性がある。そこで、本実施形態では、コンパイル時に、ユーザの結線パターンを変更することとした。
エンジニア情報記憶部223は、命令語間の第1の結線パターンと、命令語間で第1の結線パターンと結線が異なる第2の結線パターンと、を対応付けて記憶する。命令語間の第1の結線パターンが、ユーザによって入力された結線パターンであり、第2の結線パターンが、実際に行うべき実行順を実現するための結線パターンとする。
コンパイラ222は、グラフィックプログラム編集部221において生成された制御プログラムのソースファイルに対して、結線パターンに従って命令語の実行順序を決定するためのコンパイルを行うことで、オブジェクトファイルを生成する。
また、コンパイラ222は、グラフィックプログラム編集部221において生成された制御プログラムのソースファイルに対してコンパイルを行う際に、制御プログラムに、エンジニア情報記憶部223に記憶されている第1の結線パターンが含まれていた場合に、第1の結線パターンを第2の結線パターンに変換した上で、コンパイルを行う。
さらに、エンジニア情報記憶部223は、命令語間の第1の結線パターンと、命令語間で第1の結線パターンと結線が異なる第2の結線パターンと、を対応付けて記憶すると共に、命令語間の第1の結線パターンと、命令語間で第1の結線パターン及び第2の結線パターンと結線が異なる第3の結線パターンと、を対応付けて記憶してもよい。このように、1対1だけでなく、1対多で結線パターンを対応付けても良い。
このような場合に、コンパイラ222は、コンパイルが行われる際に、制御プログラムに第1の結線パターンが含まれていた場合に、ユーザから、第2の結線パターン及び第3の結線パターンのうちいずれか一つの選択を受け付ける。そして、コンパイラ222は、第1の結線パターンを、受け付けた結線パターンに変更してコンパイルを行う。
つまり、ユーザの結線パターンは、ユーザの癖等によって同じ手順で描かれることが多い。このような場合に、コンパイル等でNGが生じると、ユーザの処理負担が大きくなる。そこで、本実施形態では、上述した制御を行うこととした。
また、エンジニア情報記憶部223の結線パターンの対応関係は、コンパイルの際に登録するようにしても良い。
例えば、グラフィックプログラム編集部221は、コンパイラ222がコンパイルでNGが生じた際に、NGが生じた結線パターンを、修正するための第2の結線パターンに変更する入力を受け付ける。
このような場合に、エンジニア情報記憶部223は、コンパイルでNGが生じた第1の結線パターンと、コンパイルの際に第1の結線パターンから変更を受け付けた第2の結線パターンと、を対応付けて記憶する。これにより、ユーザが、これから第1の結線パターンの入力を受け付けた場合に、コンパイラ222がコンパイルする際に、第1の結線パターンが第2の結線パターンに変更される。これにより、ユーザの作業負担を軽減できる。
ダウンロード制御部213は、システム構成登録部211によって生成された制御プログラムのオブジェクトファイルを、通信制御部203を介して、コントローラ110へ送付するための制御を行う。
コントローラ110は、オブジェクトメモリ251と、処理部252と、を備える。
オブジェクトメモリ251は、データメモリ261と、コードメモリ262と、を備える。
データメモリ261は、フィールド機器120a~120nとの間で入出力されたデータを記憶する。
コードメモリ262は、クライアントPC100からダウンロードされた制御プログラムのオブジェクトファイルを格納する。
処理部252は、オブジェクトロード部271と、プログラム実行処理部272と、プロセス入出力処理部273と、を備え、制御プログラムのオブジェクトファイルに従って、書き込み、読み出し、実行を行う。
オブジェクトロード部271は、コードメモリ262に格納されているオブジェクトファイルをロードする。
プログラム実行処理部272は、ロードされた制御プログラムのオブジェクトファイルに基づいて、様々な処理を実行する。
プロセス入出力処理部273は、フィールド機器120a~120n等を含むプラントからのプロセス信号を、ロードされた制御プログラムのオブジェクトファイルに受け渡すためのプロセスの入出力を処理する。
次に、エンジニア情報記憶部223で対応付けられている結線パターンについて説明する。
図5は、第1の結線パターンと、当該第1の結線パターンが含まれていた場合に変更される第2の結線パターンと、を第1の例を示した図である。
図5の制御プログラム501に含まれている結線部512において分岐しているが、第1の結線パターン511が、左又は上方向からの入力でない。また、制御プログラム502に含まれている結線部513において分岐しているが、第1の結線パターン514が、左又は上方向からの入力でない。
そこで、エンジニア情報記憶部223は、第1の結線パターン511と、第2の結線パターン515と、を対応付けて記憶している。同様に、エンジニア情報記憶部223は、第1の結線パターン514と、第2の結線パターン515と、を対応付けて記憶している。
これにより、コンパイラ222は、制御プログラムに、第1の結線パターン511や第1の結線パターン514が含まれていた場合に、第2の結線パターン515に変更した上で、制御プログラム503のオブジェクトファイルを生成する。
図6は、第1の結線パターンと、当該第1の結線パターンが含まれていた場合に変更される第2の結線パターンと、を第2の例を示した図である。
図6の制御プログラム601に含まれている結線部612において分岐しているが、第1の結線パターン611が、左又は上方向からの入力でない。
そこで、エンジニア情報記憶部223は、第1の結線パターン611と、第2の結線パターン613と、を対応付けて記憶している。
これにより、コンパイラ222は、制御プログラムに、第1の結線パターン611が含まれていた場合に、第2の結線パターン613に変更した上で、制御プログラム602のオブジェクトファイルを生成する。
また、結線パターンを変更する際に、入力の端部や命令語の位置を変更しても良い。
図7は、第1の結線パターンと、当該第1の結線パターンが含まれていた場合に変更される第2の結線パターンと、を第3の例を示した図である。
図7の制御プログラム701に含まれている結線部712において分岐しているが、第1の結線パターン711が、左又は上方向からの入力でない。
そこで、エンジニア情報記憶部223は、第1の結線パターン711と、第2の結線パターン713と、を対応付けて記憶している。第2の結線パターン713においては、入力端を、第1の結線パターン711への入力を左又は上にするために、入力の端部を含む位置が変更されている。
これにより、コンパイラ222は、制御プログラムに、第1の結線パターン711が含まれていた場合に、第2の結線パターン713に変更した上で、制御プログラム702のオブジェクトファイルを生成する。
図8は、第1の結線パターンと、当該第1の結線パターンが含まれていた場合に変更される第2の結線パターンと、を第4の例を示した図である。
図8の制御プログラム801に含まれている結線部812において分岐しているが、第1の結線パターン811が、左又は上方向からの入力でない。
そこで、エンジニア情報記憶部223は、第1の結線パターン811と、第2の結線パターン813と、を対応付けて記憶している。第2の結線パターン813においては、入力端を、第1の結線パターン811への入力を左又は上にするために、入力の端部の位置が変更されている。
これにより、コンパイラ222は、制御プログラムに、第1の結線パターン811が含まれていた場合に、第2の結線パターン813に変更した上で、制御プログラム802のオブジェクトファイルを生成する。
また、制御プログラムに含まれている複数の結線パターンを変更しても良い。
図9は、複数の第1の結線パターンと、当該複数の第1の結線パターンが含まれていた場合に変更される第2の結線パターンと、の例を示した図である。
図9の制御プログラム901に含まれている結線部913において分岐しているが、第1の結線パターン911、及び第1の結線パターン912が、左又は上方向からの入力でない。
そこで、エンジニア情報記憶部223は、第1の結線パターン911及び第1の結線パターン912と、第2の結線パターン914と、を対応付けて記憶している。第2の結線パターン914においては、入力端を、第1の結線パターン911、912への入力を左又は上にするために、入力の端部の位置が変更されている。
これにより、コンパイラ222は、制御プログラムに、第1の結線パターン911、912が含まれていた場合に、第2の結線パターン914に変更した上で、制御プログラム902のオブジェクトファイルを生成する。
次に、クライアントPC100におけるコンパイルするまでの処理について説明する。図10は、本実施形態のクライアントPC100におけるコンパイルまでの処理を示したフローチャートである。
まず、グラフィックプログラム編集部221が、エディタ画面において、プラントを制御する命令語間の結線パターンの入力を受け付け、制御プログラムのソースファイルを生成する(S1001)。
コンパイラ222は、グラフィックプログラム編集部221により生成されたソースファイルのコンパイルを開始する(S1002)。
コンパイラ222は、ソースファイルに、エンジニア情報記憶部223に記憶されている、第1の結線パターンが含まれているか否かを判定する(S1003)。第1の結線パターンが含まれていないと判定した場合(S1003:No)、ソースファイルから、制御プログラムのオブジェクトファイルを生成して終了する(S1007)。
一方、コンパイラ222は、ソースファイルに、第1の結線パターンが含まれていると判定した場合(S1003:Yes)、エンジニア情報記憶部223に、当該第1の結線パターンと対応付けられた第2の結線パターンが複数あるか否かを判定する(S1004)。複数含まれていると判定された場合(S1004:Yes)、複数の第2の結線パターンから、選択を受け付ける(S1005)。これにより、変更先の第2の結線パターンが決定される。
そして、コンパイラ222は、ソースファイルに含まれている第1の結線パターンを、第2の結線パターンに変更する(S1006)。
そして、コンパイラ222は、第2の結線パターンに変更されたソースファイルから、
制御プログラムのオブジェクトファイルを生成する(S1007)。
次に、コンパイルが失敗した場合に、結線パターンを登録するまでの処理について説明する。図11は、本実施形態のクライアントPC100における、エンジニア情報記憶部223に結線パターンが記憶されていない場合のコンパイルまでの処理を示したフローチャートである。なお、エンジニア情報記憶部223に結線パターンが含まれている場合の処理は、図10と同様のため説明を省略している。
まず、グラフィックプログラム編集部221が、エディタ画面において、プラントを制御する命令語間の結線パターンの入力を受け付け、制御プログラムのソースファイルを生成する(S1101)。
コンパイラ222は、グラフィックプログラム編集部221により生成されたソースファイルのコンパイルを開始する(S1102)。
コンパイラ222は、ソースファイルのコンパイルが成功したか否かを判定する(S1103)。コンパイルに失敗した場合(S1103:No)、グラフィックプログラム編集部221が、コンパイルに失敗した原因となる第1の結線パターンに対応する、コンパイルを成功させるための第2の結線パターンの入力を受け付ける(S1104)。
そして、グラフィックプログラム編集部221が、第1の結線パターンと、第2の結線パターンと、を対応付けてエンジニア情報記憶部223に登録する(S1105)。
コンパイラ222は、ソースファイルに含まれている第1の結線パターンを、第2の結線パターンに変更する(S1106)。
その後、再び、コンパイラ222は、第2の結線パターンに変更されたソースファイルでコンパイルが成功したか否かを判定する(S1103)。コンパイルが成功した場合(S1103:Yes)、オブジェクトファイルを生成して、処理を終了する(S1107)。
上述した処理手順では、コンパイルに失敗する第1の結線パターンを、第2の結線パターンに変更する例について説明した。しかしながら、結線パターンの変更は、コンパイルを成功させるために制限するものではない。例えば、ユーザの癖を修正するための結線パターンの変更を行っても良い。例えば、エンジニア情報記憶部223が、図3で示した結線パターンを、図4で示した結線パターンに変更するように、対応関係を記憶しても良い。
図11で示される例では、コンパイルエラーとなった場合に、ユーザによる結線パターンの引き直しが行われるが、引き直し前の結線パターンと、引き直し後の結線パターンと、を対応付けて、エンジニア情報記憶部223に登録される。これにより、次回以降に、同様の結線パターンが含まれていた場合に、コンパイルエラーにすることなく、制御順が定められたオブジェクトファイルを生成できる。
(第2の実施形態)
第1の実施形態は、クライアントPC100が、結線パターンの対応関係を記憶しているが、他のクライアントPC100では、当該対応関係を利用することが難しい。そこで、第2の実施形態では、結線パターンの対応関係を共有する例について説明する。
図12は、第2の実施形態のクラウドサーバ11と、クライアントPC100a、クライアントPC100bと、の間の情報の送受信を例示した図である。
図12に示されるように、クライアントPC100aは、エンジニア情報記憶部223に記憶されている、第1の結線パターンと第2の結線パターンとの対応関係を示した第1の情報を、クラウドサーバ11に送信する(S1201)。
また、クライアントPC100bは、エンジニア情報記憶部223に記憶されている、第1の結線パターンと第2の結線パターンとの対応関係を示した第2の情報を、クラウドサーバ11に送信する(S1202)。
そして、クラウドサーバ11は、クライアントPC100bから受信した、第2の情報を、クライアントPC100aに送信する(S1203)。これにより、クライアントPC100aは、受信した第2の情報を、エンジニア情報記憶部223に登録する。
また、クラウドサーバ11は、クライアントPC100aから受信した、第1の情報を、クライアントPC100bに送信する(S1204)。これにより、クライアントPC100bは、受信した第1の情報を、エンジニア情報記憶部223に登録する。
これにより、結線パターンの対応関係を共有できる。第2の実施形態では、エンジニア毎の多種・多様な癖を示した結線パターンや、コンパイルが失敗したときの結線パターンを、クラウドサーバ11に蓄積し、クラウドサーバ11に接続されているクライアントPC100で共有できる。これにより、ユーザの作業負担を軽減できる。
本実施形態においては、コンパイルする際に、結線の向きに意味があるため、上述した結線パターンの変更を行うことで、コンパイルエラーが生じることを抑止できる。これによりユーザの処理負担を軽減できる。
さらには、結線パターンを変更することで、本発明は、エンジニアによる様々な結線パターンの違いを吸収し、最適な制御順でオブジェクトファイルの生成を実現できる。例えば、エンジニアの癖等による結線パターンを修正できるため、エンジニアの結線の引き直しの手間を省き、作業効率を向上させることができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1…制御プログラム処理システム、10…プラント制御システム、11…クラウドサーバ、12…公衆ネットワーク、100…クライアントPC、110a~110n…プログラマブルロジックコントローラ、120a~120n…フィールド機器、130…サーバPC、150…制御ネットワーク、151…フィールドネットワーク、201…登録情報管理部、202…データベース管理部、203…通信制御部、211…システム構成登録部、212…制御プログラム生成部、213…ダウンロード制御部、221…グラフィックプログラム編集部、222…コンパイラ、223…エンジニア情報記憶部、231…ソースファイル記憶部、232…オブジェクトファイル記憶部、241…表示装置、242…キーボード、243…マウス、251…オブジェクトメモリ、252…処理部、261…データメモリ、262…コードメモリ、271…オブジェクトロード部、272…プログラム実行処理部、273…プロセス入出力処理部

Claims (3)

  1. プラントを制御する制御プログラムの生成するためのエディタ画面において、プラントを制御する命令語間の結線パターンの入力を受け付けるグラフィックプログラム編集部と、
    前記命令語間の第1の結線パターンと、前記命令語間で第1の結線パターンと結線が異なる第2の結線パターンと、を対応付けて記憶する記憶部と、
    前記グラフィックプログラム編集部において生成された制御プログラムについて、前記結線パターンに従って前記命令語の実行順序を決定するためのコンパイルが行われる際に、前記制御プログラムに前記第1の結線パターンが含まれていた場合に、前記第1の結線パターンを前記第2の結線パターンに変換した上で、当該コンパイルを行うコンパイラと、
    を備える制御プログラム生成装置。
  2. 前記グラフィックプログラム編集部は、前記コンパイルの際に、前記第1の結線パターンを、前記第2の結線パターンに変更する入力を受け付け、
    前記記憶部は、前記第1の結線パターンと、前記コンパイルの際に前記第1の結線パターンから変更を受け付けた前記第2の結線パターンと、を対応付けて記憶する、
    請求項1に記載の制御プログラム生成装置。
  3. 前記記憶部は、前記命令語間の第1の結線パターンと、前記命令語間で第1の結線パターンと結線が異なる第2の結線パターンと、を対応付けて記憶すると共に、前記命令語間の第1の結線パターンと、前記命令語間で第1の結線パターン及び前記第2の結線パターンと結線が異なる第3の結線パターンと、を対応付けて記憶し、
    前記コンパイラは、コンパイルが行われる際に、前記制御プログラムに前記第1の結線パターンが含まれていた場合に、前記第2の結線パターン及び前記第3の結線パターンのうちいずれか一つの選択を受け付け、受け付けた結線パターンを用いてコンパイルを行う、
    請求項1又は2に記載の制御プログラム生成装置。
JP2020121989A 2020-07-16 2020-07-16 制御プログラム生成装置 Pending JP2022018696A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2020121989A JP2022018696A (ja) 2020-07-16 2020-07-16 制御プログラム生成装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020121989A JP2022018696A (ja) 2020-07-16 2020-07-16 制御プログラム生成装置

Publications (1)

Publication Number Publication Date
JP2022018696A true JP2022018696A (ja) 2022-01-27

Family

ID=80203929

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020121989A Pending JP2022018696A (ja) 2020-07-16 2020-07-16 制御プログラム生成装置

Country Status (1)

Country Link
JP (1) JP2022018696A (ja)

Similar Documents

Publication Publication Date Title
US9235381B2 (en) Method and device for the programming and configuration of a programmable logic controller
JP5039428B2 (ja) プログラマブルコントローラ及びplcシステム
US6678885B2 (en) System and method for common code generation
CN107832059B (zh) 一种基于Makefile的代码静态分析方法和装置
JP6950665B2 (ja) エンジニアリング装置、エンジニアリング装置の制御方法及びプログラム
JP3819639B2 (ja) プログラミング装置
US20190196798A1 (en) Executable program creation device, executable program creation method, and executable program creation program
CN109964181B (zh) 用于工业自动化设备的控制器和对这种控制器编程和运行的方法
CN111142466B (zh) 工程装置、工程装置的控制方法和存储介质
CN102339025A (zh) 用于启动机器或者机器系列中的机器的方法和规划系统
EP3380899B1 (en) Program randomization for cyber-attack resilient control in programmable logic controllers
CN109213061A (zh) 程序制作装置
JP2016224557A (ja) プログラム作成支援装置、プログラムおよび判別方法
CN111954854A (zh) 支持装置以及支持程序
CN110806891B (zh) 嵌入式设备软件版本的生成方法及装置
CN102289367A (zh) 根据模式的命令行外壳命令生成
JP7085305B2 (ja) コントロールシステム及びコントロール方法
CN113010180A (zh) 一种固件生成方法、系统、设备以及介质
JP2022018696A (ja) 制御プログラム生成装置
CN109937404B (zh) 程序模块之间的实时数据交换方法和系统
JP2014228990A (ja) 制御プログラム作成装置および制御プログラム作成方法
JP5205988B2 (ja) Plcのグローバル変数定義方式
CN114365048B (zh) 数控装置
JP6455096B2 (ja) コントロールシステム、その支援装置、プログラマブルコントロール装置
JP6071782B2 (ja) プラント制御装置、プラント制御方法及びプラント制御プログラム