(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023045285
(43)【公開日】2023-04-03
(54)【発明の名称】HMI用ツール
(51)【国際特許分類】
G05B 23/02 20060101AFI20230327BHJP
【FI】
G05B23/02 301Z
【審査請求】未請求
【請求項の数】5
【出願形態】OL
(21)【出願番号】P 2021153597
(22)【出願日】2021-09-21
(71)【出願人】
【識別番号】000003078
【氏名又は名称】株式会社東芝
(71)【出願人】
【識別番号】598076591
【氏名又は名称】東芝インフラシステムズ株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】立野 元気
【テーマコード(参考)】
3C223
【Fターム(参考)】
3C223AA01
3C223BA03
3C223CC02
3C223DD03
3C223EB01
3C223FF09
3C223FF13
3C223FF15
3C223FF22
3C223FF25
3C223FF42
3C223GG01
3C223HH03
3C223HH08
(57)【要約】
【課題】画面に表示されないタグがある場合、当該タグを監視可能な画面がないことを使用者が容易に把握することができるHMI用ツールを提供する。
【解決手段】実施形態のHMI用ツールは、制御プログラムに含まれるタスクに対応する画面を作成し、タスクに参照されるタグの識別情報の一覧の入力を受け付け、画面とタグとの対応関係から、一覧に含まれるタグの識別情報のうち、画面との対応関係がないタグの識別情報を表示する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
制御プログラムに含まれるタスクに対応する画面を作成し、
前記タスクに参照されるタグの識別情報の一覧の入力を受け付け、
前記画面と前記タグとの対応関係から、前記一覧に含まれるタグの識別情報のうち、前記画面との対応関係がないタグの識別情報を表示する、
HMI(Human Machine Interface)用ツール。
【請求項2】
前記画面との対応関係がないタグの識別情報をHMIへダウンロードする、
請求項1に記載のHMI用ツール。
【請求項3】
前記画面と前記タグとの対応関係を示す画面テーブルを記憶する記憶装置と、
前記タスクに参照されるタグの識別情報の一覧の入力を受け付け、前記画面テーブルと前記一覧を参照して前記一覧に含まれるタグの識別情報のうち前記画面との対応関係がないタグの識別情報をディスプレイに表示させる、制御装置と、
を備える請求項1または2に記載のHMI用ツール。
【請求項4】
前記記憶装置は、前記画面を定義するモデルと、当該モデルが参照するタグの識別情報とを記憶し、
前記制御装置は、前記画面の識別情報および前記モデルの識別情報を対応付けて入力可能な入力画面をディスプレイに表示させ、入力された前記モデルの識別情報により特定されるモデルが参照するタグの識別情報を前記記憶装置から取得することにより、前記画面と前記タグとの対応関係を特定する、
請求項3に記載のHMI用ツール。
【請求項5】
前記タスクと前記画面との関係を示すメニューを作成し、作成した前記メニューを前記HMIへダウンロードする、
請求項1から4のいずれか1項に記載のHMI用ツール。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、HMI用ツールに関する。
【背景技術】
【0002】
従来、産業プラント(以下、単に「プラント」という)を制御するDCS(分散制御システム、Distributed Control System)等において、I/O(Input/Output)機器等を制御するためにコントローラが用いられている。
【0003】
また、このようなコントローラにおける処理の実行状況等をオペレータ等が監視するために、HMI(Human Machine Interface)等の監視装置が用いられている。一般に、HMIでは、コントローラで実行される制御プログラム中で参照および更新される変数または定数の値、および処理に関する情報が紐付けられる情報管理単位であるタグを参照することにより、処理の実行状況を画面に表示する。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、従来技術においては、いずれの画面にも表示されないタグがある場合、当該タグを監視可能な画面がないことを使用者が把握することが困難な場合があった。
【課題を解決するための手段】
【0006】
実施形態のHMI用ツールは、制御プログラムに含まれるタスクに対応する画面を作成し、タスクに参照されるタグの識別情報の一覧の入力を受け付け、画面とタグとの対応関係から、一覧に含まれるタグの識別情報のうち、画面との対応関係がないタグの識別情報を表示する。
【図面の簡単な説明】
【0007】
【
図1】
図1は、実施形態に係る制御システムの全体構成の一例を示す図である。
【
図2】
図2は、実施形態に係るコントローラで実行されるタスクの構成の一例を説明する図である。
【
図3】
図3は、実施形態に係るタグの定義の一例を示す図である。
【
図4】
図4は、実施形態に係るモデル生成画面の一例を示す図である。
【
図5】
図5は、実施形態に係るメニューの定義の一例を示す図である。
【
図6】
図6は、実施形態に係るHMIのディスプレイに表示される単一のタグを参照する画面の一例を示す図である。
【
図7】
図7は、実施形態に係るHMIのディスプレイに表示される複数のタグを参照する画面の一例を示す図である。
【
図8】
図8は、実施形態に係るHMI用ツール、HMI、コントローラ用ツール、およびコントローラが保持するデータについて説明する図である。
【
図9】
図9は、実施形態に係る画面との対応関係がないタグの識別情報を特定する手法を説明する図である。
【
図10】
図10は、実施形態に係るHMI用ツールのディスプレイに表示されるPOUテーブルの取り込みおよび確認用の操作画面の一例を示す図である。
【
図11】
図11は、実施形態に係る画面テーブルの一例を示す図である。
【
図12】
図12は、実施形態に係るHMI用ツールのディスプレイに表示される画面なしタグテーブルの作成用の操作画面の一例を示す図である。
【
図13】
図13は、実施形態に係るHMIのディスプレイに表示されるメニューの一例を示す図である。
【
図14】
図14は、実施形態に係る画面なしタグテーブルの生成処理の流れの一例を示すフローチャートである。
【発明を実施するための形態】
【0008】
(実施形態)
図1は、本実施形態に係る制御システムSの全体構成の一例を示す図である。
図1に示すように、制御システムSは、HMI(Human Machine Interface)用ツール1と、HMI2と、コントローラ用ツール3と、コントローラ4とを含む。HMI用ツール1と、HMI2と、コントローラ用ツール3と、コントローラ4とは、LAN5を介して通信可能に接続されている。
【0009】
コントローラ4は、プラント等において各種機器を制御するコントローラである。例えば、コントローラ4は、プラントに設けられたセンサ等から得た各種の入力情報を演算し、制御対象であるバルブなどの機器に出力情報を与えることにより、当該プラントを制御する。
【0010】
コントローラ4は、CPU(Central Processing Unit)401と、RAM(Random Access Memory)402と、ツールインタフェース403と、FROM(Flash Read Only Memory)404と、I/O(Input/Output)インタフェース405と、バス406とを備えるコンピュータとして構成される。
図1に示すコントローラ4のハードウェア構成は一例であり、これに限定されるものではない。
【0011】
ツールインタフェース403は、HMI2およびコントローラ用ツール3との間で情報の送受信を行うためのインタフェースである。
【0012】
I/Oインタフェース405は、制御対象の機器および各種のセンサ等との間で情報の送受信を行うためのインタフェースである。
【0013】
コントローラ4のFROM404は、コントローラ用ツール3からダウンロードされた制御プログラム70およびタグデータベース71を記憶する。タグデータベース71は、コントローラ用ツール3で生成された複数のタグが登録されたデータベースである。
【0014】
タグは、制御プログラム70中で参照および更新される変数または定数の値、および処理に関する情報が紐付けられる情報管理単位である。コントローラ4で実行される制御プログラム70およびタグについては、後述する。
【0015】
また、HMI2は、コントローラ4で実行される処理の状況等を、オペレータが監視するために用いられる装置である。また、コントローラ4で実行される処理の検証のために、エンジニアがHMI2を用いる場合もある。
【0016】
HMI2は、CPU201と、RAM202と、HDD203と、ROM(Read Only Memory)204と、ディスプレイ(表示部)205と、マウスやキーボード等の入力装置206と、通信インタフェース207と、バス208とを備える。HMI2は、例えば、通常のハードウェア構成を備えるPC(Personal Computer)等である。
【0017】
通信インタフェース207は、HMI用ツール1およびコントローラ4との間で情報の送受信を行うためのインタフェースである。
【0018】
HMI2のHDD203は、HMI用ツール1からダウンロードされたモデル530、および画面なしタグテーブル720を記憶する。画面テーブル710は、モデル530により定義される画面と、当該画面が参照するタグの識別情報が対応付けられたテーブルである。また、画面なしタグテーブル720は、タスクに参照されるタグのうち、画面との対応関係がないタグの識別情報が登録されたテーブルである。画面なしタグテーブル720は、画面をHMI2で表示するためのメニューとして使用される。画面テーブル710および画面なしタグテーブル720の詳細については後述する。なお、HDD203は、画面なしタグテーブル720の他に、HMI用ツール1においてユーザの手動で生成されたメニューを記憶してもよい。
【0019】
図1では、HMI2およびコントローラ4をそれぞれ1台ずつ図示しているが、制御システムSは、HMI2およびコントローラ4を複数備えても良い。
【0020】
コントローラ用ツール3は、エンジニアがコントローラ4で実行する制御プログラム70およびタグを作成するために使用されるコンピュータである。
【0021】
コントローラ用ツール3は、CPU301と、RAM302と、HDD303と、ROM304と、ディスプレイ(表示部)305と、マウスやキーボード等の入力装置306と、通信インタフェース307と、バス308とを備える。コントローラ用ツール3は、例えば、通常のハードウェア構成を備えるPCでもよいし、専用端末でも良い。
【0022】
より詳細には、コントローラ用ツール3は、例えばエンジニアの操作に基づいて、コントローラ4で実行される制御プログラム70の生成、および制御プログラム70により参照および更新されるタグの定義をするエンジニアリングツールである。コントローラ用ツール3で生成された制御プログラム70およびタグがLAN5を介してコントローラ4にダウンロードされることにより、コントローラ4がプラントを制御するための処理を実行することができる。
【0023】
コントローラ用ツール3のHDD303は、コントローラ用ツール3で生成された制御プログラム70、タグデータベース71、およびPOUテーブル700を記憶する。POUテーブル700は、制御プログラム70に含まれるタスクに参照されるタグの識別情報の一覧である。POUテーブル700の詳細については後述する。
【0024】
HMI用ツール1は、エンジニアまたはユーザがHMI2で照会する画面を作成するために使用されるコンピュータである。HMI用ツール1を使用して画面を作成するエンジニアは、コントローラ用ツール3を使用して制御プログラム70を作成するエンジニアと同一の場合もあるが、異なる場合もある。
【0025】
HMI用ツール1は、CPU101と、RAM102と、HDD103と、ROM104と、ディスプレイ(表示部)105と、マウスやキーボード等の入力装置106と、通信インタフェース107と、バス108とを備える。HMI用ツール1は、例えば、通常のハードウェア構成を備えるPCでもよいし、専用端末でも良い。CPU101は、本実施形態における制御装置の一例である。RAM102、HDD103、およびROM104は、本実施形態における記憶装置の一例である。
【0026】
より詳細には、HMI用ツール1は、例えばユーザであるエンジニアの操作に基づいて、HMI2で表示される複数の画面の各々を定義する複数のモデル530を生成する。各モデル530は、タグを参照し、当該タグに紐付く情報を画面に表示させる。各モデル530には、個々のモデル530を特定可能なモデル名が付与される。モデル名は、モデル530の識別情報である。モデル530と、当該モデル530が参照するタグの識別情報とは、HMI用ツール1のHDD103等の記憶装置に保存される。タグの識別情報は、個々のタグを特定可能な名称、ID、または番号である。
【0027】
また、HMI用ツール1は、例えばエンジニアの操作または自動生成機能により、各画面をHMI2で表示するためのメニューを生成する。メニューは、モデルを表示する画面名と、複数の画面をグループ化するフォルダ名とが対応付けられた情報である。HMI用ツール1で生成されたメニューおよびモデル530がLAN5を介してHMI2にダウンロードされることにより、HMI2がメニューおよび各画面を表示することができる。
【0028】
HMI用ツール1のHDD103は、モデル530、画面テーブル710、および画面なしタグテーブル720を記憶する。画面なしタグテーブル720は、画面テーブル710およびPOUテーブル700から生成される。なお、HDD103は、画面なしタグテーブル720の他に、ユーザによって手動で生成されたメニューを記憶してもよい。
【0029】
なお、
図1ではHMI用ツール1とコントローラ用ツール3とを別個の装置として図示しているが、HMI用ツール1およびコントローラ用ツール3が1つのPC等で実現されても良い。この場合、HMI用ツール1の機能を備えるソフトウェアと、コントローラ用ツール3の機能を備えるソフトウェアとが、1台PCで動作する。
【0030】
次に、本実施形態におけるコントローラ用ツール3で生成され、コントローラ4で実行される制御プログラム70について説明する。
【0031】
本実施形態の制御プログラム70は、POU(Program Organization Unit)という形式で生成される。POUは、機能毎にモジュール化して作成された制御プログラム70である。一般にエンジニアはタスク毎にその応答性(POUが演算されるまでの時間、以下ではスキャン周期)を設定可能であり、そのためエンジニアはPOUをその応答性を考慮して作成する。
【0032】
図2は、本実施形態に係るコントローラ4で実行されるタスクの構成の一例を説明する図である。
図2では、POU1~5は、最大許容実行時間の長いメインスキャンタスク(MSタスク)252aと、最大許容実行時間の短いハイスピードスキャンタスク(HSタスク)252bの2つに分類される。MSタスク252aとHSタスク252bは、スキャン周期の異なるタスク種別である。
【0033】
例えば、MSタスク252aのスキャン周期は、“1000ms”と設定されているため、MSタスク252aに属するPOU1~3は、1000msごとに実行される。次のスキャン周期が開始される前にPOU1~3の処理が終了している必要があるため、スキャン周期はMSタスク252aの全体の最大許容実行時間となる。
【0034】
POU1~5は、実行順に沿ってMSタスク252aとHSタスク252bのタスクエントリに設定される。1つのタスクエントリには、最大で1つのPOUが設定可能である。各POU1~5は、例えば、複数のファンクションブロックで構成される制御プログラム70である。各POU1~5内の各ファンクションブロックの処理で用いられるパラメータの値は、タグで管理される。
【0035】
図3は、本実施形態に係るタグの定義の一例を示す図である。
図3では、1つのタグに設定される情報を、項目ごとに表示している。タグ番号は、タグを特定可能な識別情報である。また、タグ名称は、オペレータおよびエンジニアがタグの内容を把握するための名称である。なお、タグ名称をタグの識別情報としても良い。その他の項目には、タグの特性に応じて、種々のデータが設定される。
【0036】
図3に示すタグ名称“PID調節計1”は、当該タグがPID(Proportional Integral Differential)制御によって温度、湿度、圧力、または流量を制御する調節計の動作に関する情報を管理するタグであることを示す。一般に、1つのプラントには目的に応じて複数の調整計が設置される。“PID調節計1”は、複数のPID調節計のうちの1つ目のPID調節計を示す。コントローラ4が当該PID調節計から取得した当該PID調節計の制御対象の温度、湿度、圧力、または流量の値は、変数として当該タグに登録される。また、当該PID調節計でアラートが発生した場合、アラート情報が当該タグに登録される。つまり、タグとは、1つのタグ番号に紐付けられた種々の情報の集合である。コントローラ4では、タグ単位でこれらの情報を管理する。
【0037】
コントローラ用ツール3では、エンジニアの操作により、このようなタグが複数登録されたタグデータベースを生成する。タグデータベースは、POUと共に、コントローラ4にダウンロードされる。
【0038】
次に、HMI用ツール1で作成される画面について説明する。
【0039】
図4は、本実施形態に係るモデル生成画面の一例を示す図である。
図4に示すモデル生成画面は、HMI用ツール1のCPU101により、ディスプレイ105に表示される。
【0040】
HMI2で表示される画面は、モデル530により定義される。HMI用ツール1は、ユーザの操作に基づいて、制御プログラム70に含まれるタスクに対応する画面を定義するモデルを作成することにより、当該タスクに対応する画面を生成する。タスクに対応する画面は、タスクと1対1で対応する画面に限定されるものではなく、複数のタスクに関する情報を表示する画面でもよい。HMI用ツール1のユーザは、例えばエンジニアである。
【0041】
図4に示す例では、モデル530は、制御プラグラムのフローを示すプロセスフロー
図608と、当該制御プラグラム内のタスクに参照される複数のタグに関する情報を表示する画面を定義する。
【0042】
エンジニアは、例えば、マウス等を操作することにより、プロセスフロー
図608上に、表示欄609a~609fを配置する。また、エンジニアは、表示欄609a~609fがプロセスフロー
図608で定義される処理に含まれるPOUと紐付くタグを参照するように設定する。表示欄609b~609fは、それぞれ異なるタグを参照する。例えば、表示欄609aは、タグ番号“AEGW_PID_001”のタグを参照し、当該タグに関する情報を表示する。
【0043】
モデルの生成画面では、各表示欄609a~609fに消去ボタン610a~610fが表示されており、エンジニアが当該消去ボタン610a~610fを押下することで、表示欄609a~609fを消去することもできる。
【0044】
また、画面は、画面種別により分類される。
図4のようにプロセスフロー
図608等の視覚的情報を含む画面は、画面種別「グラフィック」に属する。また、単一のタグを参照する画面は、画面種別「ポイント」に属し、複数のタグを参照する画面は画面種別「グループ」に属する。
【0045】
次に、HMI用ツール1で作成されるメニューについて説明する。
【0046】
図5は、本実施形態に係るメニューの定義の一例を示す図である。HMI用ツール1は、HMI2で表示されるメニューを生成する。メニューは、HMI2で表示される画面の画面名を分類して一覧したものであり、ユーザはメニューに含まれる画面名から所望の画面名を選択することにより、当該画面名に対応する画面をHMI2に表示させることができる。
【0047】
メニューの表現には種々の手法があるが、
図5ではツリー標記を一例として示す。メニューの定義は、HMI用ツール1を用いてエンジニアが作成する。また、本実施形態のHMI用ツール1においては、後述のメニュー自動生成処理により、HMI用ツール1が自動的に生成することもできる。
【0048】
フォルダ510は、複数の画面520a~520dをまとめるカテゴリである。
図5に示す例では、“A工場”を制御する制御プログラム70に含まれるタスクに関する画面520a~520dがフォルダ510に対応付けられる。また、各画面520a~520dは、モデル530a~530dにより定義される。各モデル530a~530dは、1または複数のタグを参照し、タグに登録された変数の値やアラートを画面520a~520dに表示させる。
【0049】
HMI用ツール1は、生成したメニューおよび当該メニューに含まれる複数の画面の各々を定義する複数のモデルを、LAN5を介してHMI2にダウンロードする。HMI2のCPU201は、ディスプレイ205に、HMI用ツール1からダウンロードしたメニュー900aを表示させる。
【0050】
図5では画面520a~520dとモデル530a~530dとの関係を示すために530a~530dを図示したが、HMI2では、メニュー900aとして、フォルダ510と画面520a~520dのみが表示される。なお、
図5に示す例では1つのフォルダ510のみを図示したが、1つのメニュー900aが複数のフォルダを含んでも良い。
【0051】
次に、
図6および
図7を用いて、HMI2で表示される画面について説明する。
【0052】
図6は、本実施形態に係るHMI2のディスプレイ205に表示される単一のタグを参照する画面520bの一例を示す図である。画面520bは、画面種別「ポイント」に属する。画面520bは、タグ番号“AEGW_PID_0001”、タグ名称“PID調節計1”のタグを参照するモデル530bにより画面が定義される。画面520bでは単一のタグに定義された情報を、種々の表示態様で表示する。例えば、画面520bは、タグ番号およびタグ名称を表示する表示欄601、タグの特性情報を表示する表示欄602、タグに紐付くアラートを表示する表示欄603、タグの変数の変化を時系列に表示するグラフを表示する表示欄604、およびタグの変数の最新の値を表示する表示欄605を含む。グラフとタグの紐付け等は、エンジニアがHMI用ツール1の入力装置106を操作することにより設定する。なお、画面520bに表示される内容および配置は
図6に示す例に限定されるものではない。
【0053】
図7は、本実施形態に係るHMI2のディスプレイ205に表示される複数のタグを参照する画面520cの一例を示す図である。画面520cは、画面種別「グループ」に属する。画面520cは、タグ番号およびタグ名称を表示する表示欄606と、それぞれ1つずつのタグの情報を表示する表示欄607a~607hとを含む。各表示欄607a~607hが参照するタグを特定するタグ番号は、当該画面520cを定義するモデル530cに設定される。
【0054】
図8は、本実施形態に係るHMI用ツール1、HMI2、コントローラ用ツール3、およびコントローラ4が保持するデータについて説明する図である。
【0055】
コントローラ用ツール3で生成された複数のタグ(
図8では一例としてタグA、タグB)を含むタグデータベースは、コントローラ4にダウンロードされる。また、タグA、タグBを参照する制御プログラム70(POU)も、コントローラ用ツール3からコントローラ4にダウンロードされる。POUでは、タグA、タグBを都度参照しているだけで、タグA、タグBに登録される実際の値はタグデータベース71内に保存される。
【0056】
コントローラ4では、POUが実行されることにより、例えば、タグA、タグBの変数の値が変更される。
【0057】
また、HMI用ツール1で作成されたメニュー900、およびモデル530は、HMI用ツール1からHMI2にダウンロードされる。
図8に示す例では、モデル530はタグAを参照する。
【0058】
HMI2では、HMI用ツール1からダウンロードしたメニュー900、およびモデル530に基づいて、メニューおよび各種の画面を表示する。例えば、HMI2は、コントローラ4からタグAの変数の値を取得して、画面に表示する。
【0059】
プラントの検証のフェーズと操業後のフェーズにおいてユーザが必要とする画面は異なる。なお、検証とは、コントローラ4で実行されるPOUの動作検証を指す。通常、検証は、プラントの操業前にエンジニアによって行われる。HMI2が操業時のオペレータのための装置であると同時に、実際には検証時のエンジニアのための装置としても活用されるからである。つまり、プラントの検証のフェーズにおけるHMI2のユーザはエンジニアであり、プラントの操業後のフェーズにおけるHMI2のユーザはオペレータとなる。
【0060】
しかしながら、一般に、検証のフェーズ用の専用の画面およびメニューを作成せず、操業後のフェーズ用の画面およびメニューが検証のフェーズにも用いられる場合がある。この場合、操業後のフェーズのための業務要件に基づいて画面が作成されている場合、検証のフェーズでPOUの動作検証のために必要なタグを参照する画面が作成されていない場合がある。例えば、コントローラ用ツール3でPOUおよびタグを作成するエンジニアと、HMI用ツール1で画面を作成するエンジニアとが異なる場合がある。画面を作成するエンジニアが、プラントの操業後を想定した業務要件のみに基づいて画面を作成した場合、動作検証対象のPOUが参照するタグを画面から照会するという検証用の要件が満たされない場合がある。
【0061】
図8に示す例では、HMI用ツール1が生成したモデル530は、タグBを参照していない。このため、コントローラ4で実行されたPOUによってタグBの値が変化しても、HMI2が当該タグBの値を表示することはできない。
【0062】
このため、本実施形態のHMI用ツール1は、タグBのようにモデル530から参照されないことにより画面に表示されないタグを特定する。
【0063】
図9は、本実施形態に係る画面との対応関係がないタグの識別情報を特定する手法を説明する図である。
【0064】
上述のように、POUおよびタグの情報はコントローラ用ツール3で生成される。例えば、コントローラ用ツール3が、タスクと、タスクが参照するタグの識別情報の一覧であるPOUテーブル700を出力する。HMI用ツール1は、出力されたPOUテーブル700を取得する。
【0065】
より詳細には、コントローラ用ツール3のCPU301は、HDD303等の記憶装置に保存された制御プログラム70およびタグデータベース71からタスクと、各タスクが参照するタグの情報を抽出して、POUテーブル700を生成する。POUテーブル700は、1つのPOUごとに1レコードで定義される。出力されるPOUテーブル700のファイル形式は例えばCSVファイル等であるが、これに限定されるものではない。
【0066】
HMI用ツール1の通信インタフェース107は、コントローラ用ツール3から出力されたPOUテーブル700を、LAN5を介して取得する。コントローラ用ツール3は、HMI用ツール1のHDD103等を指定したパスにPOUテーブル700を主力しても良いし、他のコンピュータの記憶部等にPOUテーブル700を出力しても良い。HMI用ツール1は、直接的にコントローラ用ツール3からPOUテーブル700を受信しても良いし、他のコンピュータの記憶部にアクセスしてPOUテーブル700を取り込んでも良い。
【0067】
HMI用ツール1は、上述のように、ユーザの操作に基づいて画面を定義する複数のモデル530a~530dを生成する機能を有する。HMI用ツール1は、生成した複数のモデル530a~530d(以下、モデル530)と、ユーザにより入力される画面種別と、画面No.、画面の名称、およびモデルの名称とから、モデル530により定義される画面と当該画面が参照するタグの識別情報が対応付けられた画面テーブル710を生成する。
【0068】
HMI用ツール1は、コントローラ用ツール3から入力されたPOUテーブル700と、生成した画面テーブル710とから、POUテーブル700に含まれるタグの識別情報のうち、画面との対応関係がないタグの識別情報を示す画面なしタグテーブル720を生成する。画面なしタグテーブル720は、HMI用ツール1のディスプレイ105に表示される。
【0069】
なお、コントローラ用ツール3とHMI用ツール1とが同一の装置である場合は、例えばコントローラ用ツール3はHDD等の記憶装置にPOUテーブル700を、出力し、HMI用ツール1が当該記憶装置からPOUテーブル700を読み込む。
【0070】
また、ファイル出力以外の手法でPOUテーブル700が連携されても良い。例えば、HMI用ツール1は、コントローラ用ツール3にアクセスし、コントローラ用ツール3のHDD303等の記憶装置から、POUテーブル700を取得しても良い。
【0071】
図10は、本実施形態に係るHMI用ツール1のディスプレイ105に表示されるPOUテーブル700の取り込みおよび確認用の操作画面650の一例を示す図である。操作画面650は、CPU101により、ディスプレイ105に表示される。
【0072】
図10に示すように、操作画面650には、インポートボタン651、エクスポートボタン652、アップロードボタン653が設けられる。
【0073】
インポートボタン651は、コントローラ用ツール3から出力されたPOUテーブル700の取り込みを開始させるボタンである。例えば、コントローラ用ツール3がHMI用ツール1のHDD103等の記憶装置にPOUテーブル700のファイルを出力した場合、エンジニアがマウス等でインポートボタン651を押下すると、CPU101は、記憶装置からPOUテーブル700のファイル読み出し、操作画面650に表示させる。
【0074】
エクスポートボタン652は、操作画面650に表示されたPOUテーブル700をファイルとして出力するボタンである。例えば、操作画面650に表示されたPOUテーブル700をバックアップとして保存する場合に、エンジニアがエクスポートボタン652を押下することにより、POUテーブル700をファイルとして出力させる。
【0075】
アップロードボタン653は、HMI用ツール1がコントローラ用ツール3にアクセスしてPOUテーブル700を読み込む場合に使用するボタンである。
【0076】
POUテーブル700は、一例として、タスク種別と、タスクエントリと、タスク名と、参照タグ番号とが対応付けられたテーブルである。
【0077】
POUテーブル700におけるタスクは、POUを指す。タスク名は、POUの名称である。
【0078】
タスク種別は、POUが属するタスク種別である。
図10に示す例では、POUは、
図2で説明したメインスキャンタスク(MSタスク)またはハイスピードスキャンタスク(HSタスク)のいずれの種別に属する。
【0079】
タスクエントリは、当該タスク種別に含まれる複数のタスクエントリのうち、各POUが割当てられるタスクエントリの番号である。
【0080】
POUテーブル700は、本実施形態における制御プログラム70に含まれるタスクに参照されるタグの一覧の一例である。
図2で説明したように、各タスク種別の1つのタスクエントリには、最大で1つのPOUが設定可能であるため、各POUは、タスク種別とタスクエントリとタスク名により、一意に特定される。
【0081】
POUテーブル700では、POUを基準に、当該POUが参照するタグのタグ番号が登録されるため、タグデータベースに登録されたタグのうち、POUの処理で実際に使用されているタグのみが登録の対象となる。例えば、エンジニアが定義だけを登録したが実際の処理では使用されていないタグについては、POUテーブル700から除外される。
【0082】
操作画面650に表示される日時は、POUテーブル700がインポートまたはアップロードされた日時である。なお、
図10では操作画面650はPOUテーブル700の参照用と記載しているが、当該操作画面650はエンジニアによるPOUテーブル700の編集の操作を受け付けても良い。
【0083】
また、HMI用ツール1は、複数の画面とタグの対応関係を表す画面テーブルを生成する。
【0084】
図11は、本実施形態に係る画面テーブル710の一例を示す図である。画面テーブル710は、画面種別と、画面No.、画面の名称(画面名)、モデルの名称(モデル名)、およびモデルに参照されるタグのタグ番号(参照タグ番号)が対応付けられている。なお、画面の名称で画面が一意に特定可能な場合、画面種別および画面No.は必須ではない。また、画面No.で画面が一意に特定可能な場合、画面種別および画面の名称は必須ではない。
【0085】
画面種別と、画面No.、画面の名称、およびモデルの名称は、入力装置106を介してエンジニアが手動で入力する。例えば、CPU101は、ディスプレイ105に、画面種別と、画面No.、画面の名称、およびモデルの名称を入力可能な入力画面を表示させる。例えば、画面の名称で画面が一意に特定可能な場合、CPU101は、ディスプレイ105に、画面の名称およびモデルの名称を対応付けて入力可能な入力画面を表示させる。この場合、画面の名称は画面の識別情報の一例である。
【0086】
画面No.は、画面種別ごとの各レコードに振られる通し番号である。画面No.は、画面種別が変わる度に“0001”から開始する。本実施形態では、一例として、1つの画面種別ごとに最大で4096個の画面名を登録可能とする。なお、4096個以下であれば、1つの画面種別に属する画面名の数は限定されない。
【0087】
また、画面テーブル710はモデル名と画面名の両方を必須の入力項目とするため、いずれの画面名にも対応付けられず、実際には使用されないモデルについては、画面テーブル710の登録対象から除外される。
【0088】
また、HMI用ツール1のCPU101は、入力画面に入力されたモデルの名称により特定されるモデルが参照するタグの識別情報を、HDD103から取得することにより、画面とタグとの対応関係を特定する。より詳細には、HMI用ツール1のCPU101は、HDD103に記憶された複数のモデルから、POUテーブル700に入力されたモデルの名称に対応するモデルを検索する。そして、CPU101は、検索したモデルに定義された参照対象のタグのタグ番号を取得する。CPU101は、取得したタグ番号を、POUテーブル700における検索したモデルと同一のレコードに登録する。
【0089】
なお、画面種別と、画面No.、画面の名称、およびモデルの名称についても、HMI用ツール1のCPU101が、HDD103に記憶された複数の画面の画面名と複数のモデルに基づいてPOUテーブル700に登録しても良い。
【0090】
HMI用ツール1のCPU101は、POUテーブル700と、画面テーブル710とに基づいて、画面なしタグテーブルを生成する。画面なしタグテーブルは、タスクと、当該タスクに対応する画面と、当該タスクに参照されるタグのうち画面との対応関係がないタグの識別情報とを対応付けたテーブルである。
【0091】
図12は、本実施形態に係るHMI用ツール1のディスプレイ105に表示される画面なしタグテーブル720の作成用の操作画面660の一例を示す図である。操作画面660は、CPU101により、ディスプレイ105に表示される。
【0092】
操作画面660は、作成ボタン661と、登録ボタン662とを含む。
【0093】
作成ボタン661は、POUテーブル700と、画面テーブル710とに基づいて、画面なしタグテーブル720を生成する操作を受け付けるボタンである。エンジニアが作成ボタン661を押下した場合、画面なしタグテーブル720の生成処理が開始する。当該処理が完了すると、画面なしタグテーブル720がディスプレイ105に表示される。操作画面660に表示される日時は、画面なしタグテーブル720が作成された日時である。
【0094】
図12に示すように、画面なしタグテーブル720は、No.と、タスク情報と、画面情報と、当該タスク情報に対応する画面を定義するモデルに参照されないタグのタグ番号(画面なしタグ番号)とが対応付けられている。
【0095】
No.は、各タスク情報に振られた通し番号である。
【0096】
タスク情報は、POUテーブル700のタスク種別とタスクエントリとタスク名とを結合したテキストである。タスク種別とタスクエントリとタスク名の組み合わせは、1つのPOUに対応する。つまり、タスク情報は、1つのPOUを示す。なお、タスク名でPOUが一意に特定可能な場合、タスク情報の代わりに画面なしタグテーブル720に含まれてもよい。
【0097】
また、画面情報は、画面テーブル710の画面種別と画面No.と画面名とモデル名とを結合したテキストである。画面名が画面を一意に特定可能に命名されている場合、画面情報と画面名とは1対1で対応する。
【0098】
画面なしタグ番号は、タスク情報によって特定されるタスクに参照されるタグのうち、画面との対応関係がないタグの識別情報である。より具体的には、画面なしタグ番号は、POUテーブル700のタスク種別、タスクエントリ、およびタスク名ごと、つまりPOUごとに登録された参照タグ番号のうち、画面テーブル710の参照タグ番号に登録されていないタグ番号である。
【0099】
図12に示す例では、フォルダ“MS_001_ボイラー”に対応するPOUが参照するタグは、4つの画面“グループ_0001_ボイラー_Gp_boiler”、“グラフィック_0001_全体_G_all”、“グラフィック_0002_ボイラー_G_boier”、および“ポイント_0001_PID001”により参照されているため、フォルダ“MS_001_ボイラー”に対応する画面なしタグ番号は空欄となる。また、フォルダ“MS_002_蒸留塔”に対応するPOUが参照するタグ“PID002”は、いずれの画面にも参照されていないため、フォルダ“MS_002_蒸留塔”に対応する画面なしタグ番号は“PID002”となる。
【0100】
操作画面660に表示された画面なしタグテーブル720は、本実施形態における画面との対応関係がないタグの識別情報の表示の一例である。
【0101】
登録ボタン662は、操作画面660に表示された画面なしタグテーブル720の内容を登録する操作を受け付けるボタンである。ユーザが登録ボタン662を押下した場合、画面なしタグテーブル720がHMI用ツール1のHDD103に登録される。
【0102】
また、登録ボタン662が押下された場合、画面なしタグテーブル720が、通信インタフェース107およびLAN5を介してHMI2にダウンロードされる。なお、画面なしタグテーブル720のHMI2へのダウンロードのタイミングは、登録ボタン662の押下のタイミングに限定されない。例えば、HMI用ツール1からHMI2に複数のモデル530をダウンロードする際に、画面なしタグテーブル720が一緒にダウンロードされてもよい。
【0103】
また、HMI用ツール1からHMI2へは、画面なしタグテーブル720そのものではなく、画面なしタグテーブル720から生成されたメニューであってもよい。例えば、本実施形態においては、HMI用ツール1のCPU101は、画面なしタグテーブル720の「タスク情報」をメニューのフォルダ、「画面情報」を各フォルダによってグループ化される個々の画面としてメニューを生成する。このため、画面なしタグテーブル720の生成処理は、メニュー自動生成処理でもある。
【0104】
あるいは、HMI用ツール1からHMI2へは、画面なしタグテーブル720を送信し、HMI2が画面なしタグテーブル720に基づくメニューを自動生成してもよい。あるいは、HMI2は、画面なしタグテーブル720をディスプレイ205に表示させてもよい。
【0105】
なお、操作画面660では画面なしタグテーブル720の生成結果の照会だけではなく、エンジニアによる画面なしタグテーブル720の編集が可能であっても良い。
【0106】
図13は、本実施形態に係るHMI2のディスプレイ205に表示されるメニュー900bの一例を示す図である。当該メニュー900bは、HMI用ツール1のCPU101により画面なしタグテーブル720により生成されたメニューである。メニュー900bは、HMI用ツール1からHMI2へダウンロードされる。
【0107】
図13に示すメニュー900bでは、画面なしタグテーブル720の「タスク情報」を、ファルダ名、「画面情報」を画面名として表示する。
【0108】
図13に示す1つ目のフォルダ“MS_001_ボイラー”には、
図12に示したように、4つの画面“グループ_0001_ボイラー_Gp_boiler”、“グラフィック_0001_全体_G_all”、“グラフィック_0002_ボイラー_G_boier”、および“ポイント_0001_PID001”が対応付けられる。1つ目のフォルダ“MS_001_ボイラー”に対応するPOUが参照するタグのうち、画面に参照されていないタグはないため、フォルダ“MS_001_ボイラー”には特に警告は表示されない。
【0109】
2つめのフォルダ“!MS_002_蒸留塔”は、
図12に示したタスク情報“MS_002_蒸留塔”に、エクスクラメーションマーク“!”が追加されて表示されている。エクスクラメーションマーク“!”は、当該フォルダに対応するPOUが参照するタグのうち、画面に参照されていないタグがあることを示す注意喚起の表記である。なお、注意喚起の表記はエクスクラメーションマーク“!”に限定されない。また、HMI2のCPU201は、フォルダ“!MS_002_蒸留塔”の近傍に画面に参照されていないタグを特定するメッセージM1を表示しても良い。
図13に示す例では、CPU201は、フォルダ“!MS_002_蒸留塔”の近傍に「検証に必要な画面がありません タグ:PID002」というメッセージM1を表示させている。
【0110】
なお、
図12の画面なしタグテーブル720に図示したタスク情報“HS_001_ESD”、“HS_002_入退室”に対応するフォルダについては
図13では図示を省略する。
【0111】
次に、以上のように構成されたHMI用ツール1で実行される画面なしタグテーブル720の生成処理の流れについて説明する。
【0112】
図14は、本実施形態に係る画面なしタグテーブル720の生成処理の流れの一例を示すフローチャートである。このフローチャートの処理は、HMI用ツール1のCPU101がHDD103またはROM104に記憶されたプログラムを読み出して実行することにより実行される。
【0113】
まず、CPU101は、HDD103に記憶されたPOUテーブル700を探索する(S1)。S1~S13の処理では、POUテーブル700のレコードを1件ずつ処理対象とする。また、S1~S13の処理は、POUテーブル700の全レコードを処理するまでループする。
【0114】
そして、CPU101は、POUテーブル700の1件目のレコードに、タスクエントリと参照タグが登録されている場合(S2“Yes”)、画面なしタグテーブル720に、当該レコードに登録されたタスク種別とタスクエントリとタスク名とを結合したテキストをタスク情報として登録する(S3)。
【0115】
また、POUテーブル700の1件目のレコードに、タスクエントリまたは参照タグのいずれかが登録されていない場合(S2“No”)、S12の処理に進む。タスクエントリまたは参照タグのいずれかが登録されていない場合とは、POUテーブル700の当該レコードに登録されたPOUが実際に実行されるPOUではないか、いずれのタグも参照しないPOUであるかのいずれかであるため、画面なしタグテーブル720の登録対象から除外する。
【0116】
そして、S3の次に、CPU101は、画面テーブル710を探索する(S4)。S4~S9の処理では、画面テーブル710のレコードを1件ずつ処理対象とする。また、S4~S9の処理は、画面テーブル710の全レコードを処理するまでループする。
【0117】
当該ループ処理の最初に、CPU101は、RAM102等に設けられた画面ありフラグをOFFにする(S5)。画面ありフラグは、POUが参照するタグを表示する画面の有無を示すフラグであり、POUテーブル700の参照タグ番号ごとに設けられる。S5では、POUテーブル700の対象レコードの参照タグ番号と画面テーブル710の対象レコードの参照タグ番号とを比較する前の初期状態として、POUテーブル700の対象レコードの全ての参照タグ番号の画面ありフラグをOFFにする。
【0118】
次に、CPU101は、POUテーブル700の対象レコード(1回目のループ時は1件目のレコード)の参照タグと、画面テーブル710の対象レコード(1回目のループ時は1件目のレコード)の参照タグとを比較する。POUテーブル700の対象レコードの参照タグと、画面テーブル710の対象レコードの参照タグとが1つでも一致する場合(S6“Yes”)、画面の重複がなければ、CPU101は、S3で登録したフォルダ名に対応付けて、当該画面を画面なしタグテーブル720に登録し、画面ありフラグをONにする(S7)。
【0119】
具体的には、CPU101は、画面テーブル710の対象レコードの画面種別とNo.と画面名とモデル名とを結合したテキストを、画面なしタグテーブル720の項目「画面情報」に登録し、POUテーブル700の対象レコードと画面テーブル710の対象レコードとで一致した参照タグ番号に対応する画面ありフラグをONにする。
【0120】
そして、CPU101は、画面テーブル710の次のレコードを読み出し(S8)、1件目のレコードと同様に、S5~8の処理を実行する。
【0121】
また、POUテーブル700の対象レコードの参照タグと、画面テーブル710の対象レコードの参照タグとが1つも一致しない場合(S6“No”)、つまり、POUテーブル700の対象レコードの参照タグのいずれも、画面テーブル710の対象レコードに登録された画面に表示されない場合、S7の処理は実行されず、S8の処理に進む。
【0122】
POUテーブル700の対象レコードに登録された参照タグ番号に対して、画面テーブル710の全レコードの参照タグ番号の比較が終了した場合、S4~S9のループが終了する。
【0123】
そして、CPU101は、いずれかの参照タグ番号の画面ありフラグがOFFである場合(S10“Yes”)、当該画面ありフラグがOFFである参照タグ番号を、S3で登録したフォルダ名に対応付けて、画面なしタグテーブル720の項目「画面なしタグ番号」に登録する(S11)。
【0124】
そして、CPU101はPOUテーブル700の次のレコードを読み出し(S12)、1件目のレコードと同様に、S2~12の処理を実行する。
【0125】
また、すべての画面ありフラグがONである場合は(S10“No”)、S11の処理は実行されず、S12の処理に進む。
【0126】
そして、POUテーブル700の全レコードの処理が終了した場合、
図12に示したように、画面なしタグテーブル720が完成する。この場合、このフローチャートの処理は終了する。
【0127】
このように、本実施形態のHMI用ツール1は、制御プログラム70に含まれるタスクに対応する複数の画面を作成し、コントローラ用ツール3からPOUテーブル700の入力を受け付け、作成された複数の画面とタグとの対応関係を表す画面テーブル710から、OUテーブル700に含まれるタグの識別情報のうち、画面との対応関係がないタグの識別情報をディスプレイ105に表示させる。このため、本実施形態のHMI用ツール1によれば、画面に表示されないタグがある場合、当該タグを監視可能な画面がないことを使用者が容易に把握することができるHMI用ツール1を提供する。
【0128】
例えば、使用者がPOUを検証するエンジニアである場合、画面なしタグテーブル720を参照することにより、エンジニアは、いずれの画面にも表示されないタグを容易に把握することができる。このため、本実施形態のHMI用ツール1によれば、エンジニアが画面の追加または検証手法の検討等の対策を迅速に進めることを、支援することができる。
【0129】
また、本実施形態のHMI用ツール1は、作成した画面なしタグテーブル720に基づくメニューの定義情報を、通信インタフェース107により、HMI2に出力する。このため、本実施形態のHMI用ツール1によれば、HMI2のディスプレイ205上で、画面に表示されないタグの有無を表示することができる。
【0130】
また、本実施形態のHMI用ツール1は、画面定義情報に基づいて、画面の識別情報と、モデルの識別情報と、当該モデルが参照するタグの識別情報とを対応付けた画面テーブル710を生成する。そして、本実施形態のHMI用ツール1は、POUテーブル700と画面テーブル710とに基づいて、画面テーブル710に含まれないタグの識別情報を、表示される画面のないタグの識別情報として特定する。このため、本実施形態のHMI用ツール1によれば、実際に処理で参照されているタグと、実際に画面に紐付けられているタグを対象として、表示される画面のないタグを特定することができる。
【0131】
本実施形態のHMI用ツール1、HMI2、およびコントローラ用ツール3で実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでCD-ROM、フレキシブルディスク(FD)、CD-R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
【0132】
また、本実施形態のHMI用ツール1、HMI2、およびコントローラ用ツール3で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、本実施形態のHMI用ツール1、HMI2、およびコントローラ用ツール3で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成しても良い。
【0133】
また、本実施形態のHMI用ツール1、HMI2、およびコントローラ用ツール3で実行されるプログラムを、ROM等に予め組み込んで提供するように構成してもよい。
【0134】
本実施形態のHMI用ツール1、HMI2、およびコントローラ用ツール3で実行されるプログラムは、上述した各機能を含むモジュール構成となっており、実際のハードウェアとしてはCPU(プロセッサ)が上記記憶媒体からプログラムを読み出して実行することにより上記各機能がRAM等の主記憶装置上にロードされ、各機能が実行されるようになっている。
【0135】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0136】
1 HMI用ツール
2 HMI
3 コントローラ用ツール
4 コントローラ
5 LAN
70 制御プログラム
71 タグデータベース
101,201,301,401 CPU
102,202,302,402 RAM
103,203,303 HDD
104,204,304 ROM
105,205,305 ディスプレイ
106,206,306 入力装置
107,207,307 通信インタフェース
108,208,308,406 バス
403 ツールインタフェース
404 FROM
405 I/Oインタフェース
510 フォルダ
520a~520d 画面
530,530a~530d モデル
650,660 操作画面
651 インポートボタン
652 エクスポートボタン
653 アップロードボタン
661 作成ボタン
662 登録ボタン
700 POUテーブル
710 画面テーブル
720 画面なしタグテーブル
900,900a,900b メニュー
S 制御システム