JP2020144812A - エンジニアリングツール - Google Patents

エンジニアリングツール Download PDF

Info

Publication number
JP2020144812A
JP2020144812A JP2019043103A JP2019043103A JP2020144812A JP 2020144812 A JP2020144812 A JP 2020144812A JP 2019043103 A JP2019043103 A JP 2019043103A JP 2019043103 A JP2019043103 A JP 2019043103A JP 2020144812 A JP2020144812 A JP 2020144812A
Authority
JP
Japan
Prior art keywords
variable
transmission
node
control program
management database
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
JP2019043103A
Other languages
English (en)
Inventor
元気 立野
Genki Tateno
元気 立野
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 JP2019043103A priority Critical patent/JP2020144812A/ja
Publication of JP2020144812A publication Critical patent/JP2020144812A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Testing And Monitoring For Control Systems (AREA)

Abstract

【課題】制御プログラムを設計するエンジニア等が、ノード間における変数の送受信の全体的な流れを容易に把握可能とする。【解決手段】実施形態のエンジニアリングツールは、プロセッサ、を備える。プロセッサは、通信用FBを含む制御プログラムに基づいて、通信用FB毎に、当該通信用FBによってノード間で送受信する変数の変数名、当該変数の送信先、当該変数の送受信に用いる通信プロトコル、当該変数の送受信の通信速度、当該変数のサイズである送信メッセージ長、および当該変数の送受信によるネットワーク負荷を含む変数管理データベースと、ノードの名称および当該ノードのIPアドレスを含むノード管理データベースと、変数名、および当該変数名の変数の送信が許可されているノードを示す送信権限情報を含む送信権限データベースと、を生成する。【選択図】図1

Description

本発明の実施形態は、エンジニアリングツールに関する。
制御システムにおいても、クラウドやエッジコンピューティング技術が採用され始めている。制御システム内のコントローラは、組み込み型であるため、リソースの制約が多く、大量のデータの収集や、蓄積、処理等に向かないという背景がある。そのため、クラウドやエッジコンピュータ(上位層)が、制御システム(下位層)において用いられるデータの収集や、蓄積、処理等を行うことで、当該データの新たな価値の発見や当該データの新たな活用方法を見出すことが求められている。
例えば、制御システム内にエッジコンピュータを配置し、当該エッジコンピュータにおいて、LAN(Local Area Network)内のコントローラのデータの収集や、蓄積、処理等を行い、そのデータの一部をクラウドに送信する技術が開発されている。
また、エッジコンピュータとコントローラを1台の機器にまとめ、その機器において、LAN内のコントローラのデータの収集や、蓄積、処理等を行い、そのデータの一部をクラウドに送信する技術も開発されている。このような技術は、組み込み型のコントローラにおいては採用できないが、ソフトウェアにより動作するコントローラにおいては実現可能である。
国際公開第2016/199206号
ところで、制御システムにおけるノード(例えば、コントローラ、エッジコンピュータ、クラウド)間における通信設定(例えば、通信相手、通信データ)は、コントローラにおいて実行されるPOU(制御プログラム)の設計において実行される。そして、各コントローラにおいて実行される制御プログラムの集合が制御システムとして機能する。そのため、ノード間におけるデータの全体的な流れを把握することは、制御プログラムを設計するエンジニアであっても困難な場合がある。
実施形態のエンジニアリングツールは、プロセッサ、を備える。プロセッサは、通信用FBに基づいて、通信用FB毎に、当該通信用FBによってノード間で送受信する変数の変数名、当該変数の送信先、当該変数の送受信に用いる通信プロトコル、当該変数の送受信の通信速度、当該変数のサイズである送信メッセージ長、および当該変数の送受信によるネットワーク負荷を含む変数管理データベースと、ノードの名称および当該ノードのIPアドレスを含むノード管理データベースと、変数名、および当該変数名の変数の送信が許可されているノードを示す送信権限情報を含む送信権限データベースと、を生成する。
図1は、本実施形態にかかる制御システムの全体構成の一例を示す図である。 図2は、本実施形態にかかるコントローラにより実行されるタスクの構成の一例を示す図である。 図3は、本実施形態にかかるコントローラにおけるタスクの実行するタイミングチャートの一例である。 図4は、本実施形態にかかるコントローラにおいて実行される制御プログラムで用いられる情報の一例を説明するための図である。 図5は、本実施形態にかかるコントローラにおいて実行される制御プログラムの一例を説明するための図である。 図6は、本実施形態にかかるエンジニアリングツールにおいて表示される変数管理画面の一例を示す図である。 図7は、本実施形態にかかるエンジニアリングツールにおいて表示される変数一覧画面の一例を示す図である。 図8は、本実施形態にかかるエンジニアリングツールにおいて表示される変数参照画面の一例を示す図である。 図9は、本実施形態にかかるエンジニアリングツールによるコントローラへの制御プログラムのダウンロード処理の流れの一例を示す図である。
以下、添付の図面を用いて、本実施形態にかかるエンジニアリングツールを適用した制御システムについて説明する。
図1は、本実施形態にかかる制御システムの全体構成の一例を示す図である。図1に示すように、本実施形態にかかる制御システムは、コントローラ2a〜2nと、HMI(Human Machine Interface)1a〜1nと、エンジニアリングツール3と、を有する。コントローラ2a〜2nと、HMI1a〜1nと、エンジニアリングツール3とは、LAN(Local Area Network)5を介して通信可能に接続されている。
コントローラ2a〜2nは、制御システム(DCS)用のコントローラである。具体的には、コントローラ2a〜2nは、プラントのセンサ等から入力される各種入力情報に基づいてPOU(制御プログラム)を実行し、制御対象であるバルブ等の制御対象機器に対して、制御プログラムの実行結果を含む出力情報を出力することによって、制御対象機器を制御する。
ここで、制御プログラムは、プラントの特性に応じて、エンジニアリングツール3によって生成および更新される。一般に、1つの制御システムには、複数のコントローラ2a〜2nが含まれる。以下の説明では、コントローラ2a〜2nを区別する必要がない場合には、単に、コントローラ2と記載する。
コントローラ2は、CPU(Central Processing Unit)201と、RAM(Random Access Memory)202と、ツールインタフェース203と、FROM(Flash Read Only Memory)204と、I/Oインタフェース205と、バス206と、を備えるコンピュータである。
RAM202は、CPU201が制御プログラム等の各種プログラムを実行する際に作業領域として用いられる。FROM204は、制御プログラム等の各種情報を記憶する記憶媒体である。
CPU201は、コントローラ2全体を制御する制御部である。本実施形態では、CPU201は、RAM202を作業領域として用いて、FROM204に記憶される制御プログラム等の各種プログラムを実行する。
ツールインタフェース203は、他のコントローラ2や、HMI1a〜1n、エンジニアリングツール3との間で各種情報を送受信するためのインタフェースである。I/Oインタフェース205は、制御対象機器や、各種のセンサ等との間で各種情報を送受信するためのインタフェースである。バス206は、CPU201、RAM202、ツールインタフェース203、FROM204、およびI/Oインタフェース205を互いに接続する。
HMI1a〜1nは、コントローラ2で実行される処理の状況等を、オペレータが監視するために用いられる装置である。一般に、1つの制御システムには、複数のHMI1a〜1nが含まれる。以下の説明では、HMI1a〜1nを区別する必要がない場合には、単に、HMI1と記載する。
エンジニアリングツール3は、PC(Personal Computer)等であり、コントローラ2において実行される制御プログラムやタスクの生成等を行う。エンジニアリングツール3は、当該エンジニアリングツール3のユーザであるエンジニアによって操作され、制御プログラム等を生成する。そして、エンジニアリングツール3により生成される制御プログラム等がLAN5を介してコントローラ2にダウンロードされることにより、コントローラ2がプラントを制御するための処理を実行可能となる。
具体的には、エンジニアリングツール3は、CPU301と、RAM302と、HDD(Hard Disk Drive)303と、FROM304と、ディスプレイ305と、入力装置306と、通信インタフェース307と、バス308と、を備える。通信インタフェース307は、コントローラ2、HMI1、他のエンジニアリングツール3等の外部装置との間で各種情報を送受信するためのインタフェースである。
RAM302は、CPU301が各種のプログラムを実行する際に作業領域として用いられる。FROM304は、CPU301により実行されるプログラム等の各種情報を記憶する。HDD303は、CPU301により生成される制御プログラムやタスク等の各種情報を記憶する。
CPU301は、エンジニアリングツール3全体を制御する制御部である。本実施形態では、CPU301は、RAM302を作業領域として用いて、FROM304に記憶される各種のプログラムを実行することによって、制御プログラムやタスクの生成等を行う。
ディスプレイ305は、LCD(Liquid Crystal Display)等であり、各種情報を表示可能な表示部である。入力装置306は、マウスやキーボード等であり、エンジニアリングツール3のオペレータが各種情報を入力可能とする。通信インタフェース307は、HMI1、コントローラ2、他のエンジニアリングツール3等との間で各種情報を送受信するためのインタフェースである。バス308は、CPU301、RAM302、HDD303、FROM304、ディスプレイ305、入力装置306、および通信インタフェース307を互いに接続する。
図2は、本実施形態にかかるコントローラにより実行されるタスクの構成の一例を示す図である。制御プログラムは、コントローラ2のタスクに配置されたタスクエントリにおいて実行される。エンジニアリングツール3のオペレータであるエンジニアは、コントローラ2のタスク毎に、その応答性(制御プログラムが実行されるまでの時間。言い換えると、スキャン周期。)を予め設定する。したがって、エンジニアは、スキャン周期を考慮して制御プログラムを生成する。
例えば、図2に示すように、コントローラ2がメインスキャンタスク(以下、MSタスクと言う)およびハイスピードタスク(以下、HSタスクと言う)を実行する場合、エンジニアは、それぞれのタスクのスキャン周期を考慮して制御プログラムを作成する。ここで、MSタスクは、タスクの実行に許容される最大の時間(例えば、1000ms。以下、最大許容実行時間と言う)が長いタスクである。一方、HSタスクは、最大許容実行時間(例えば、100ms)が短いタスクである。
そして、図2に示すように、MSタスクのタスクエントリ1〜3では、制御プログラム1〜3を実行し、MSタスクのタスクエントリ4は、空である(言い換えると、制御プログラムを実行しない)。ここで、タスクにおいて制御プログラムが実行される順番は、タスクエントリの昇順である。また、図2に示すように、HSタスクのタスクエントリ1,2では、制御プログラム4,5を実行し、MSタスクのタスクエントリ3,4は、空である。コントローラ2が有するCPU201がシングルコアである場合、タスク間に優先順位を設定し、当該優先順位に従ってタスクを実行する。例えば、CPU201は、スキャン周期の短いタスク(例えば、HSタスク)を優先的に実行する。
図3は、本実施形態にかかるコントローラにおけるタスクの実行するタイミングチャートの一例である。ここでは、MSタスク、HSタスク、I/O割込タスクの順に優先順位が高い例について説明する。図3に示すように、HSタスクの実行中に、MSタスクを実行するタイミングt1となった場合、CPU201は、HSタスクの実行を一時中断して、MSタスクを実行する。また、図3に示すように、HSタスクの実行中に、I/O割込タスクを実行するタイミングt2となった場合、CPU201は、HSタスクの実行を一時中断して、I/O割込タスクを実行する。また、図3に示すように、MSタスクの実行中にI/O割込タスクを実行するタイミングt3となった場合、CPU201は、MSタスクの実行を一時中断して、I/O割込タスクを実行する。なお、各タスクのスキャン周期内において、各タスク内の全ての制御プログラムが実行された後は、各タスクは、待機状態となる。
図4は、本実施形態にかかるコントローラにおいて実行される制御プログラムで用いられる情報の一例を説明するための図である。制御プログラムで使用される情報(例えば、プラント内のセンサ等から入力される入力情報)は、制御プログラムの変数として扱われる。変数の実体は、コントローラ2内のメモリであり、当該メモリに変数を割り当てて(定義して)、制御プログラムにおいて使用される。そのメモリには、制御プログラムがローカルで使用するローカル変数、制御プログラム間で共有するグローバル変数がある。また、制御プログラムの設計には、ファンクションブロック(FB)と呼ばれるベンダまたはエンジニアによって予め用意される機能(関数)を用いる。
ファンクションブロックは、図4に示すように、入力情報が入力変数1および入力変数2として与えられると、所定の演算を行い、その演算結果である出力変数1を出力情報として出力する。例えば、ファンクションブロックが積演算である場合、ファンクションブロックは、入力変数1:「5」および入力変数2:「5」が与えられると、出力変数1:「25」を出力する。ファンクションブロックに与える入力変数の数やファンクションブロックから出力する出力変数の数は任意に設定可能である。また、ファンクションブロックから出力される出力変数を、出力変数以外の変数に格納することも可能である。
図5は、本実施形態にかかるコントローラにおいて実行される制御プログラムの一例を説明するための図である。例えば、コントローラ2のタスクにおいて実行される制御プログラム(例えば、POU1)は、図5に示すように、ファンクションブロック20a〜20eを含む。コントローラ2のエンジニアリング(例えば、コントローラ2の登録、制御プログラムの設計、変数の割当)は、専用のツールを使用して、エンジニアリングツール3から制御プログラム(例えば、POU1)をダウンロードすることにより実現する。
ところで、上述した制御システムにおいても、クラウドやエッジコンピューティング技術が採用され始めている。制御システム内のコントローラ2は、組み込み型であるため、リソースの制約が多く、大量のデータの収集や、蓄積、処理等に向かないという背景がある。そのため、クラウドやエッジコンピュータ(上位層)が、制御システム(下位層)において用いられるデータの収集や、蓄積、処理等を行うことで、当該データの新たな価値の発見や当該データの新たな活用方法を見出すことが求められている。
例えば、制御システム内にエッジコンピュータを配置し、当該エッジコンピュータにおいて、LAN5内のコントローラ2のデータの収集や、蓄積、処理等を行い、そのデータの一部をクラウドに送信する技術が開発されている。
また、エッジコンピュータとコントローラ2を1台の機器にまとめ、その機器において、LAN5内のコントローラ2のデータの収集や、蓄積、処理等を行い、そのデータの一部をクラウドに送信する技術も開発されている。このような技術は、組み込み型のコントローラ2においては採用できないが、ソフトウェアにより動作するコントローラ2においては実現可能である。
しかしながら、ノード(例えば、コントローラ2、エッジコンピュータ、クラウド)間における通信設定(例えば、通信相手、通信データ)は、コントローラ2において実行される制御プログラムの設計において実行される。そして、各コントローラ2において実行される制御プログラムの集合が制御システムとして機能する。そのため、ノード間におけるデータの全体的な流れを把握することは、制御プログラムを設計するエンジニアであっても困難な場合がある。
また、ノード間におけるデータの送受信によるネットワーク負荷を把握することは、制御システムの運用コストの見積に役立ち、かつ制御プログラムの柔軟な設計変更が可能となる。また、制御システム内のデータをクラウドに送信する場合、データの外部への流出を想定する必要がある。そのため、制御システムから何のデータをどこへ送信するかを一元的に管理すると共に、クラウドへの意図しないデータの送信を防止するメカニズムが求められている。
そこで、本実施形態では、エンジニアリングツール3は、ノード間において変数を送受信する通信用のFB(以下、通信用FBと言う)を含む制御プログラムに基づいて、ノード間での変数の送受信の全体的な流れを管理するデータベース(後述する変数管理データベース303a、ノード管理データベース303b、および送信権限データベース303c)を生成する。
これにより、ノード間における変数の送受信の全体的な流れを把握するために、制御プログラムを解析する必要がなくなる。その結果、制御プログラムを設計するエンジニア等が、制御プログラムが含む通信用FBによる、ノード間における変数の送受信の全体的な流れを容易に把握することができる。
また、ノード間における変数の送受信によるネットワーク負荷を容易に把握することができるので、制御システムの運用コストの見積が容易になり、かつ制御プログラムの柔軟な設計変更が可能となる。さらに、どの変数がどこへ送信されるかを一元的に管理可能となり、かつクラウド等への意図しない変数の送信を防止することができる。
具体的には、エンジニアリングツール3のCPU301(プロセッサの一例)は、制御システム内のコントローラ2において実行される制御プログラムを生成または更新する。次いで、CPU301は、生成または更新した制御プログラムを、HDD303等の記憶部に書き込む。
そして、CPU301は、制御プログラムをHDD303等の記憶部に書き込む(保存する)際、変数管理データベース303a、ノード管理データベース303b、および送信権限データベース303cを、ノード間での変数の送受信の全体的な流れを管理するデータベースとして生成する。本実施形態では、制御プログラムを記憶部に書き込む際に、上記のデータベースを生成しているが、予め設定されたタイミング(例えば、制御プログラムが生成または更新された場合等)に、上記のデータベースを生成するものであれば、これに限定するものではない。そして、CPU301は、生成した変数管理データベース303a、ノード管理データベース303b、および送信権限データベース303cを、HDD303等の記憶部に書き込む。
これにより、変数管理データベース303a、ノード管理データベース303b、および送信権限データベース303cを参照することで、ノード間における変数の送受信の全体的な流れを把握するために、制御プログラムを解析する必要が無くなる。その結果、制御プログラムを設計するエンジニア等が、ノード間における変数の送受信の全体的な流れを容易に把握することができる。
ここで、変数管理データベース303aは、制御プログラムによるノード間での変数の送受信によるネットワーク負荷を示すデータベースである。本実施形態では、変数管理データベース303aは、下記の表1に示すように、POU番号、FB番号、変数名、送信先、通信プロトコル、送信頻度(スキャン周期)、送信メッセージ長、およびネットワーク負荷を含むデータベースである。
Figure 2020144812
ここで、POU番号は、通信用FBを含む制御プログラムを識別する番号(例えば、POU1)である。
FB番号は、通信用FBを識別する番号(例えば、「FB1」)である。
変数名は、変数の名称(例えば、「変数1」)である。本実施形態では、CPU301は、変数名と、HDD303等の記憶部上における変数の記憶領域のメモリアドレスと、当該記憶領域のサイズと、を対応付けるテーブルを、HDD303等の記憶部に予め書き込んでおくものとする。そして、変数を読み出す場合、CPU301は、当該テーブルから、読み出す変数の変数名と対応付けられるメモリアドレスおよびサイズを抽出する。そして、CPU301は、抽出したメモリアドレスおよびサイズに基づいて、HDD303等の記憶部から、変数を読み出すものとする。
送信先は、変数が送信されるノードのIPアドレス(例えば、172.16.64.2)である。
通信プロトコルは、変数の送受信に用いる通信プロトコル(例えば、UDP:User Datagram Protocol)である。
送信頻度は、変数の送受信の頻度(例えば、1000ms)であり、サイクリックスキャン伝送によってノード間において変数が送受信される場合にはスキャン周期である。
送信メッセージ長は、変数のサイズ(例えば、1500byte)である。ネットワーク負荷は、単位時間(例えば、1000ms)当たりに送受信される変数のデータ量(例えば、1500byte/sec)である。
すなわち、変数管理データベース303aは、各制御プログラムが含む通信用FB毎に、変数名、送信先、通信プロトコル、送信頻度、送信メッセージ長、およびネットワーク負荷を示すデータベースである。
また、ノード管理データベース303bは、制御プログラムが含む通信用FBによって変数を送受信するノードのIPアドレスを示すデータベースである。本実施形態では、ノード管理データベース303bは、下記の表2に示すように、ノード番号、ノード名、およびIPアドレスを含むデータベースである。
Figure 2020144812
ここで、ノード番号は、ノードを識別する番号である。
ノード名は、ノードの名称(例えば、「コントローラ1」、「エッジコンピュータ1」)である。
IPアドレスは、ノードのIPアドレス(例えば、172.16.64.1)である。
また、送信権限データベース303cは、変数毎に、当該変数の送信が許可されているノードを示すデータベースである。本実施形態では、送信権限データベース303cは、下記の表3に示すように、変数名、および送信権限情報を含むデータベースである。
Figure 2020144812
ここで、変数名は、変数の名称である。
送信権限情報は、変数毎に、当該変数の送信が許可されているノードを示す情報である。
本実施形態では、送信権限情報は、各ノードに対応するビットを有する情報である。例えば、送信権限情報が含むビットのうち右から起算して1番目のビット(言い換えると、送信権限情報が含むビットのうち1の位のビット)は、ノード管理データベース303bにおいてノード番号が1のノードに対応するビットである。また、送信権限情報が含むビットのうち右から起算して2番目のビットは、ノード管理データベース303bにおいてノード番号が2のノードに対応するビットである。すなわち、送信権限情報が含むビットを右から起算した順序と、ノード管理データベース303bにおけるノード番号と、が対応している。
そして、送信権限情報が含むビットが1の場合には、当該ビットに対応するノードへの変数の送信が許可されていることを示す。一方、送信権限情報が含むビットが0の場合には、当該ビットに対応するノードへの変数の送信が許可されていないことを示す。
例えば、表3に示すように、変数名:「変数1」の変数は、その送信権限情報:「1111 1111 1111 1101」が含むビットのうち右から起算して2番目のビットが0であるため、ノード番号が2のノード(表2に示すノード管理データベース303bが含むノード番号:「2」のノード(「エッジコンピュータ1」)への送信が許可されていない。
また、表3に示すように、変数名:「変数1」の変数は、その送信権限情報:「1111 1111 1111 1101」が含むビットのうち右から起算して2番目のビット以外のビットが1であるため、ノード番号が2以外のノード(表2に示すノード管理データベースが含むノード番号:「1」,「3」〜「16」のノードへの送信が許可されている。
本実施形態では、送信権限データベース303cが生成された時点の送信権限情報には、全てのノードへの変数の送信が許可されていないことを示す情報(すなわち、全てのビットが0を示す送信権限情報)がデフォルト値として設定される。エンジニアリングツール3のオペレータは、HDD303等の記憶部に記憶される変数管理データベース303a、ノード管理データベース303b、および送信権限データベース303cを参照しながら、各変数について、各ノードへの送信を許可して良いか否かを判断する。そして、エンジニアリングツール3のオペレータは、入力装置306等を介して、各変数の送信権限情報が含むビットのうち、当該変数の送信を許可するノードに対応するビットを1に設定していくものとする。
また、CPU301は、制御プログラムを記憶部(例えば、HDD303)に書き込み直す度に(再度保存する度に)、変数管理データベース303a、ノード管理データベース303b、および送信権限データベース303cを生成し直す。そして、CPU301は、生成し直した変数管理データベース303a、ノード管理データベース303b、および送信権限データベース303cを、HDD303等の記憶部に書き込む。
また、CPU301は、入力装置306等を介して、HDD303等の記憶部に記憶される制御プログラムのコントローラ2へのダウンロードの要求が入力されると、HDD303等の記憶部に記憶される変数管理データベース303a、ノード管理データベース303b、および送信権限データベース303cに基づいて、ノード間における変数の全体的な流れを把握可能な画面を、ディスプレイ305に表示させる。
さらに、CPU301は、入力装置306等を介して、HDD303等の記憶部に記憶される制御プログラムのコントローラ2へのダウンロードの要求が入力されると、変数管理データベース303a、ノード管理データベース303b、および送信権限データベース303cに基づいて、制御プログラムが含む通信用FBにより送受信される変数毎に、変数の送信が許可されていないノードへ変数が送信されていないか否かを判断する。
そして、CPU301は、全ての変数について、変数の送信が許可されていないノードへ変数が送信されていないと判断した場合、コントローラ2に対して制御プログラムをダウンロード可能な状態とする。本実施形態では、CPU301は、全ての変数について、変数の送信が許可されていないノードへ変数が送信されていないと判断した場合、制御プログラムのダウンロードの実行を指示するダウンロード実行ボタンをディスプレイ305に対して表示する。その後、CPU301は、ダウンロード実行ボタンによって、制御プログラムのダウンロードの実行が指示された場合、当該制御プログラムをコントローラ2に対してダウンロードする。
一方、CPU301は、少なくとも1つの変数について、変数の送信が許可されていないノードへ変数が送信されていると判断した場合、コントローラ2への制御プログラムのダウンロードを実行しない。本実施形態では、CPU301は、少なくとも1つの変数について、変数の送信が許可されていないノードへ変数が送信されていると判断した場合、ダウンロード実行ボタンをディスプレイ305に対して表示しない。
図6は、本実施形態にかかるエンジニアリングツールにおいて表示される変数管理画面の一例を示す図である。次に、図6を用いて、本実施形態にかかるエンジニアリングツール3において表示される変数管理画面G1の一例について説明する。
本実施形態では、入力装置306等を介して、HDD303等の記憶部に記憶される制御プログラムのコントローラ2へのダウンロードの要求が入力されると、CPU301は、まず、図6に示すように、変数管理データベース303aに基づいて、変数管理画面G1をディスプレイ305に表示させる。
具体的には、CPU301は、上記の表1に示す変数管理データベースから、制御プログラムの通信用FBによる変数の送信先毎に、ネットワーク負荷を抽出する。次いで、CPU301は、送信先毎に、当該抽出したネットワーク負荷を積算する。
そして、CPU301は、図6に示すように、送信先601、当該送信先601毎に積算したネットワーク負荷602、および当該送信先601に送信する変数名の表示を指示可能な変数一覧ボタン603を含む変数管理画面G1を、ディスプレイ305に表示させる。これにより、エンジニアリングツール3のオペレータは、変数が送信されるノード、および当該変数のノードへの送信によるネットワーク負荷を容易に認識することができる。
その際、CPU301は、上記の表1に示す変数管理データベース303aから、制御プログラムの通信用FBにより送信する変数の変数名(例えば、変数1、変数2)および送信先(例えば、172.16.64,2、172.16.64.3)を抽出する。また、CPU301は、ノード管理データベース303bから、抽出した送信先(IPアドレス)に対応するノード番号(例えば、1,2)を抽出する。次いで、CPU301は、上記の表3に示す送信権限データベース303cにおいて当該抽出した変数名と対応付けられる送信権限情報が含むビットのうち、抽出したノード番号に対応するビットに基づいて、当該抽出した変数名の各変数について、送信先601への送信が許可されているか否かを判断する。
そして、CPU301は、図6に示すように、変数管理画面G1に含める変数一覧ボタン603のうち、送信先601への送信が許可されていない変数名の表示を指示可能な変数一覧ボタン603を、予め設定された表示態様とは異なる表示態様(例えば、網掛け)で表示させる。これにより、エンジニアリングツール3のオペレータ(エンジニア)は、制御プログラムの通信用FBによる変数の送信先に、変数の送信が許可されていないノードが含まれることを容易に認識することができる。
図7は、本実施形態にかかるエンジニアリングツールにおいて表示される変数一覧画面の一例を示す図である。次に、図7を用いて、本実施形態にかかるエンジニアリングツール3において表示される変数一覧画面G2の一例について説明する。
本実施形態では、入力装置306等を介して、図6に示す変数管理画面G1が含む変数一覧ボタン603が押下されると、CPU301は、変数管理データベース303aから、変数一覧ボタン603により表示が指示された変数名、および当該変数名と対応付けられるネットワーク負荷を抽出する。そして、CPU301は、図7に示すように、変数名701、ネットワーク負荷702、および参照ボタン703を含む変数一覧画面G2をディスプレイ305に表示させる。これにより、エンジニアリングツール3のオペレータは、ノード間での各変数の送受信によるネットワーク負荷を容易に認識することができる。ここで、参照ボタン703は、変数名701の変数を送信する通信用FB、および当該通信用FBを含む制御プログラムの表示を指示可能なボタンである。
その際、CPU301は、図6に示す変数管理画面G1の変数一覧ボタン603を表示する処理と同様にして、変数管理データベース303a、ノード管理データベース303b、および送信権限データベース303cに基づいて、変数名701の各変数について、変数の送信が許可されていないノードへの送信が許可されていないか否かを判断する。そして、CPU301は、図7に示すように、変数一覧画面G2に含める参照ボタン703のうち、変数の送信が許可されていないノードへ変数(例えば、変数1)を送信する通信用FBおよび制御プログラムの表示を指示可能な参照ボタン703を、予め設定された表示態様とは異なる表示態様(例えば、網掛け)で表示させる。これにより、エンジニアリングツール3のオペレータは、変数の送信が許可されていないノードへ送信される変数を容易に認識することができる。
図8は、本実施形態にかかるエンジニアリングツールにおいて表示される変数参照画面の一例を示す図である。次に、図8を用いて、本実施形態にかかるエンジニアリングツールにおいて表示される変数参照画面G3の一例について説明する。
本実施形態では、入力装置306等を介して、図7に示す変数一覧画面G2が含む参照ボタン703が押下されると、CPU301は、変数管理データベース303aから、参照ボタン703により通信用FBおよび制御プログラムの表示が指示された変数名と対応付けられるPOU番号およびFB番号を抽出する。そして、CPU301は、図8に示すように、抽出したPOU番号801およびFB番号802を含む変数参照画面G3をディスプレイ305に表示させる。これにより、エンジニアリングツール3のオペレータは、ノード間で送受信される変数が、いずれの制御プログラムおよび通信用FBにより送受信されるかを容易に認識することができる。
図9は、本実施形態にかかるエンジニアリングツールによる制御プログラムのコントローラへのダウンロード処理の流れの一例を示す図である。次に、図9を用いて、本実施形態にかかるエンジニアリングツール3によるコントローラ2への制御プログラムのダウンロード処理の流れの一例について説明する。
上述したように、CPU301は、制御プログラムが生成または更新され、当該制御プログラムを記憶部に保存し直す度に、変数管理データベース303a、ノード管理データベース303b、および送信権限データベース303cを生成する。
また、CPU301は、入力装置306等を介して、HDD303等の記憶部に記憶される制御プログラムのコントローラ2へのダウンロードの要求が入力されると、変数管理データベース303a、ノード管理データベース303b、および送信権限データベース303cを参照して、各変数について、変数の送信が許可されていないノードへ変数が送信されていないか否かを判断する(ステップS901)。
具体的には、CPU301は、変数管理データベース303aから、制御プログラムの通信用FBにより送信する各変数の変数名および送信先を抽出する。また、CPU301は、ノード管理データベース303bから、抽出した送信先に対応するノード番号を抽出する。次いで、CPU301は、送信権限データベース303cにおいて当該抽出した変数名と対応付けられる送信権限情報が含むビットのうち、抽出したノード番号に対応するビットに基づいて、当該抽出した変数名の各変数について、抽出した送信先への送信が許可されているか否かを判断する。これにより、CPU301は、各変数について、変数の送信が許可されていないノードへ変数が送信されていないか否かを判断する。
その際、CPU301は、ディスプレイ305に対して、図6に示す変数管理画面G1、図7に示す変数一覧画面G2、および図8に示す変数参照画面G3を表示させても良い。
少なくとも1つの変数について、変数の送信が許可されていないノードへ変数が送信される場合(ステップS901:No)、CPU301は、ディスプレイ305に対して、ダウンロード実行ボタンを表示させない。
その際、ディスプレイ305に対して変数管理画面G1が表示されている場合、CPU301は、変数管理画面G1に含める変数一覧ボタン603のうち、変数の送信が許可されていないノードへ送信される変数の変数名の表示を指示可能な変数一覧ボタン603を、予め設定された表示態様とは異なる表示態様に変更する(ステップS902)。
または、ディスプレイ305に対して変数一覧画面G2が表示されている場合、CPU301は、変数一覧画面G2に含める参照ボタン703のうち、変数の送信が許可されていないノードへ変数を送信する通信用FBおよび制御プログラムの表示を指示可能な参照ボタン703を、予め設定された表示態様とは異なる表示態様に変更する(ステップS902)。
その後、CPU301は、制御プログラムが生成または更新されて、再度、制御プログラムのコントローラ2へのダウンロードの要求が入力されるのを待つ。
一方、全ての変数について、変数の送信が許可されていないノードへ変数が送信されない場合(ステップS901:Yes)、CPU301は、ディスプレイ305に対して、ダウンロード実行ボタンを表示させて、制御プログラムをコントローラ2に対してダウンロード可能な状態とする(ステップS903)。そして、入力装置306等を介して、ディスプレイ305に表示されるダウンロード実行ボタンが押下されると(ステップS904:Yes)、CPU301は、HDD303等の記憶部に記憶される制御プログラムのコントローラ2へのダウンロードを実行する(ステップS905)。
このように、本実施形態にかかるエンジニアリングツール3によれば、変数管理データベース303a、ノード管理データベース303b、および送信権限データベース303cを参照することで、ノード間における変数の送受信の全体的な流れを把握するために、制御プログラムを解析する必要が無くなる。その結果、制御プログラムを設計するエンジニア等が、ノード間における変数の送受信の全体的な流れを容易に把握することができる。
また、ノード間における変数の送受信によるネットワーク負荷を把握することができるので、制御システムの運用コストの見積が容易になり、かつ制御プログラムの柔軟な設計変更が可能となる。さらに、どの変数がどこへ送信されるかを一元的に管理可能となり、かつクラウド等への意図しない変数の送信を防止することができる。
なお、本実施形態のエンジニアリングツール3で実行されるプログラムは、ROM等に予め組み込まれて提供される。本実施形態のエンジニアリングツール3で実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよい。
さらに、本実施形態のエンジニアリングツール3で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、本実施形態のエンジニアリングツール3で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成しても良い。
本実施形態のエンジニアリングツール3で実行されるプログラムは、上述した各処理(制御プログラムの生成および更新、各種データベース303a,303b,303cの生成、各種画面G1,G2,G3の表示制御、制御プログラムのダウンロード等)を実行するモジュール構成となっており、実際のハードウェアとしてはCPU301(プロセッサ)が上記ROMからプログラムを読み出して実行することにより、上述の各処理を実行するモジュールが主記憶装置上に生成されるようになっている。
本発明の実施形態を説明したが、この実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。この新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。この実施形態は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1 HMI
2 コントローラ
3 エンジニアリングツール
301 CPU
302 RAM
303 HDD
303a 変数管理データベース
303b ノード管理データベース
303c 送信権限データベース
304 FROM
305 ディスプレイ
306 入力装置
307 通信インタフェース
308 バス
G1 変数管理画面
G2 変数一覧画面
G3 変数参照画面

Claims (4)

  1. 通信用FBを含む制御プログラムに基づいて、前記通信用FB毎に、当該通信用FBによってノード間で送受信する変数の変数名、当該変数の送信先、当該変数の送受信に用いる通信プロトコル、当該変数の送受信の通信速度、当該変数のサイズである送信メッセージ長、および当該変数の送受信によるネットワーク負荷を含む変数管理データベースと、前記ノードの名称および当該ノードのIPアドレスを含むノード管理データベースと、前記変数名、および当該変数名の変数の送信が許可されている前記ノードを示す送信権限情報を含む送信権限データベースと、を生成するプロセッサ、
    を備えるエンジニアリングツール。
  2. 前記プロセッサは、前記制御プログラムを記憶部に保存する際に、前記変数管理データベース、前記ノード管理データベース、および前記送信権限データベースを生成する請求項1に記載のエンジニアリングツール。
  3. 前記プロセッサは、前記制御プログラムを前記記憶部に保存し直す度に、前記変数管理データベース、前記ノード管理データベース、および前記送信権限データベースを生成し直す請求項2に記載のエンジニアリングツール。
  4. 前記プロセッサは、前記変数管理データベース、前記ノード管理データベース、および前記送信権限データベースに基づいて、前記変数毎に、前記変数の送信が許可されていない前記ノードへ変数が送信されていないか否かを判断し、全ての前記変数について、前記変数の送信が許可されていない前記ノードへ変数が送信されていないと判断した場合、前記制御プログラムを前記コントローラに対してダウンロード可能な状態とする請求項1から3のいずれか一に記載のエンジニアリングツール。




JP2019043103A 2019-03-08 2019-03-08 エンジニアリングツール Pending JP2020144812A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019043103A JP2020144812A (ja) 2019-03-08 2019-03-08 エンジニアリングツール

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019043103A JP2020144812A (ja) 2019-03-08 2019-03-08 エンジニアリングツール

Publications (1)

Publication Number Publication Date
JP2020144812A true JP2020144812A (ja) 2020-09-10

Family

ID=72354429

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019043103A Pending JP2020144812A (ja) 2019-03-08 2019-03-08 エンジニアリングツール

Country Status (1)

Country Link
JP (1) JP2020144812A (ja)

Similar Documents

Publication Publication Date Title
KR102042664B1 (ko) 데이터 수집 장치, 데이터 수집 방법 및 기록 매체
WO2015114821A1 (ja) 監視制御システム及び制御装置
JP5083591B2 (ja) プロセス制御システム
US11165745B2 (en) Control system, controller, and control method
JP6477178B2 (ja) Plc制御データ生成装置、plc制御データ生成方法、及び、plc制御データ生成プログラム
JP7327225B2 (ja) ロボット制御システムおよび制御方法
JP6135247B2 (ja) 情報処理装置および情報処理プログラム
JP2020144812A (ja) エンジニアリングツール
JP2011186607A (ja) フィールドデバイス、フィールドデバイスの設定方法、フィールドデバイス管理装置及びプログラム
JP4941574B2 (ja) レジスタコンフィギュレータおよびレジスタコンフィギュレーション方法
WO2020075351A1 (ja) コントロール装置
WO2020179581A1 (ja) 制御装置およびソフトウェアのデプロイ方法
JP6054008B1 (ja) データ管理装置、データ管理方法及びデータ管理プログラム
JP2006301765A (ja) 制御装置のメンテナンス装置
JPWO2020089963A1 (ja) データ管理システム、プログラマブル表示器、およびデータ管理プログラム
TW202001458A (zh) 程式執行支援裝置、程式執行支援方法以及程式執行支援程式產品
US11651006B2 (en) Method of visualizing screen content on a data visualization system, and data visualization system for visualizing screen content
WO2019244327A1 (ja) 管理装置、管理方法及びプログラム
CN108415701B (zh) 信息处理装置与系统、以及用户界面制作方法与存储介质
JP6790308B1 (ja) 画面データ生成システム、画面データ生成方法及びプログラム
JP2007121065A (ja) 材料試験システム
JP6922293B2 (ja) 情報処理装置
JP2024002676A (ja) コントローラ、データ管理システム、データ管理プログラム、及びデータ管理方法
JP2004133741A (ja) 監視制御システム構成設定方法および機構
CN113508345A (zh) 控制系统、支持装置以及支持程序