JP2018010389A - 制御アプリケーション生成支援装置、及び制御アプリケーション生成支援方法 - Google Patents

制御アプリケーション生成支援装置、及び制御アプリケーション生成支援方法 Download PDF

Info

Publication number
JP2018010389A
JP2018010389A JP2016137287A JP2016137287A JP2018010389A JP 2018010389 A JP2018010389 A JP 2018010389A JP 2016137287 A JP2016137287 A JP 2016137287A JP 2016137287 A JP2016137287 A JP 2016137287A JP 2018010389 A JP2018010389 A JP 2018010389A
Authority
JP
Japan
Prior art keywords
control
control application
generation support
task
controller
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.)
Granted
Application number
JP2016137287A
Other languages
English (en)
Other versions
JP2018010389A5 (ja
JP6576884B2 (ja
Inventor
藤平 達
Tatsu Fujihira
達 藤平
知彦 茂岡
Tomohiko Shigeoka
知彦 茂岡
島袋 潤
Jun Shimabukuro
潤 島袋
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2016137287A priority Critical patent/JP6576884B2/ja
Publication of JP2018010389A publication Critical patent/JP2018010389A/ja
Publication of JP2018010389A5 publication Critical patent/JP2018010389A5/ja
Application granted granted Critical
Publication of JP6576884B2 publication Critical patent/JP6576884B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)
  • Programmable Controllers (AREA)

Abstract

【課題】制御周期の制約を満たすとともにタスクを効率よく実行することが可能な制御アプリケーションの生成を支援する。【解決手段】制御対象装置30を制御する一つ以上のコントローラ20において実行される制御AP154の生成を支援する制御AP生成支援装置1が、実際にコントローラ20に入力された入力データを取得し、制御AP154の生成元となる制御プログラム153を生成し、制御プログラム153に基づき制御AP154を生成する。制御AP生成支援装置1は、コントローラ20が制御AP154を実行することにより生成されるタスクについて設定されている実行時間の上限値である制御周期514を記憶し、上記入力データを入力として与えつつ制御AP154を実行するシミュレーションを行ってタスクの実行時間を求め、タスクの実行時間が制御周期514を超えるか否かを判定する。【選択図】図3

Description

本発明は、制御アプリケーション生成支援装置、及び制御アプリケーション生成支援方法に関する。
特許文献1には、「コントローラサポートプログラムは、コントローラが制御プログラムを実行優先度と実行サイクルとに従って実行するときに、実行サイクルの開始からその実行サイクルにおける制御プログラムの実行終了までの間に経過する時間であって、コントローラにおいて測定された時間またはコントローラサポート装置において推定された時間である総計実行時間を取得する総計実行時間取得処理と、総計実行時間を出力するための出力処理とを、演算部に実行させる。」と記載されている。
特開2012−194671号公報
PLC(Programmable Logic Controller)等のコントローラを用いて機械装置や電気
機器等の制御対象装置の制御を行うシステムにおいては、コントローラが1サイクル分の処理を繰り返し実行するように構成されていることが多い。ここでコントローラが制御アプリケーションを実行する際、上記1サイクル分の処理に相当するタスクの実行時間が制御対象装置の制御周期を超えてしまうと、短い入力の変化を取り込むことができなくなるため、制御アプリケーションはタスクの実行時間が制御周期を超えないように構成する必要がある。そこで制御アプリケーションの開発や更新に際しては、タスクの実行時間が制御周期内に終了するか否かについて、シミュレーションによる検証が行われる。
上記シミュレーションに際しては、実際の入力データによるタスクの実行時間の変動を考慮する必要がある。しかしシミュレーションが行われる時点ではコントローラや制御対象装置の環境が未整備であることも多く、その場合は人手で入力データを作成する必要があり、手間がかかる上、誤りも発生しやすい。またコントローラがマルチタスク方式でタスクを実行する場合は複数のタスクが全体として効率よく実行されるように制御アプリケーションを構成する必要もある。
本発明は、こうした背景に基づきなされたもので、制御周期の制約を満たすとともにタスクを効率よく実行することが可能な制御アプリケーションの生成を支援する、制御アプリケーション生成支援装置、及び制御アプリケーション生成支援方法を提供することを目的としている。
上記目的を達成するための本発明の一つは、制御対象装置を制御する一つ以上のコントローラにおいて実行される制御アプリケーションの生成を支援する制御アプリケーション生成支援装置であって、前記制御対象装置の制御に際して実際に前記コントローラに入力された入力データを取得する入力データ取得部と、前記制御アプリケーションの生成元となる制御プログラムを生成する制御プログラム生成部と、前記制御プログラムに基づき前記制御アプリケーションを生成する制御アプリケーション生成部と、前記コントローラが
前記制御アプリケーションを実行することにより生成されるタスクについて設定されている実行時間の上限値である制御周期を記憶する制御周期記憶部と、前記入力データ取得部が取得した前記入力データを入力として与えつつ前記制御アプリケーションを実行するシミュレーションを行って前記タスクの実行時間を求め、前記タスクの実行時間が前記制御周期を超えるか否かを判定するシミュレーション実行部と、を備える。
その他、本願が開示する課題、及びその解決方法は、発明を実施するための形態の欄、及び図面により明らかにされる。
本発明によれば、制御周期の制約を満たすとともにタスクを効率よく実行することが可能な制御アプリケーションの生成を支援することができる。
制御AP生成支援装置1並びに制御システム2の概略的な構成を示す図である。 コントローラ20の概略的な構成を示す図である。 制御AP生成支援装置1の機能ブロック図である。 コントローラ情報1532の一例である。 タスク設定1533の一例である。 (a)は入力パターンデータ155の一例であり、(b)は実行ログデータの一例である。 制御AP生成支援処理S700を説明するフローチャートである。 実施例2における、制御AP生成支援装置1並びに制御システム2の概略的な構成を示す図である。 制御AP生成支援処理S900を説明するフローチャートである。 実施例3における、制御AP生成支援装置1並びに制御システム2の概略的な構成を示す図である。 制御AP生成支援処理S1100を説明するフローチャートである。
以下、発明を実施するための形態について詳細に説明する。尚、以下の説明において、同一の又は類似する構成に共通の符号を付して重複する説明を省略することがある。
[実施例1]
図1に、実施例1として説明する、制御アプリケーション生成支援装置(以下、制御AP生成支援装置1と称する。)、及び制御システム2の概略的な構成を示している。同図に示すように、制御システム2は、コントローラ20と、コントローラ20によって制御される制御対象装置30とを含む。制御AP生成支援装置1は、コントローラ20において実行される制御アプリケーション(以下、制御AP154と称する。)を生成し、生成した制御AP154をコントローラ20に配布(ダウンロードとも称される。)する。コントローラ20は、制御AP154を実行することにより制御対象装置30を制御する。
制御AP生成支援装置1は、中央演算処理装置11、主記憶装置12、補助記憶装置13、入力装置14、出力装置15、及び通信装置16を備え、情報処理装置(コンピュータ)として機能する。同図に示すように、制御AP生成支援装置1の各構成要素は、バス17等の通信手段を介して通信可能に接続されている。
中央演算処理装置11は、例えば、CPU(Central Processing Unit)やMPU(Micro Processing Unit)を用いて構成されており、主記憶装置12に記憶されているプログ
ラムを実行する。主記憶装置12は、例えば、RAM(Random Access Memory)、ROM(Read Only Memory)、NVRAM(Non Volatile RAM)等の記憶素子を含む。補助記憶装置13は、例えば、ハードディスクドライブ、SSD(Solid State Drive)等である
入力装置14は、ユーザから情報を取得するユーザインタフェースであり、例えば、キーボード、マウス、タッチパネル等である。出力装置15は、情報をユーザに提供するユーザインタフェースであり、例えば、液晶モニタ等のディスプレイ、スピーカ、印字/印刷装置等である。通信装置16は、通信線や通信ネットワークを介して他の装置と通信する装置であり、例えば、NIC(Network Interface Card)や無線通信モジュール等を用いて構成されている。
図2に制御システム2を構成しているコントローラ20の概略的な構成を示している。コントローラ20は、例えば、PLC(Programmable Logic Controller)として機能す
るものであり、主処理装置21、記憶装置22(いわゆるI/Oメモリを含む)、入力装置23、出力装置24、及び通信装置25等を含む。コントローラ20では、例えば、制御AP生成支援装置1より配布(ダウンロード)される制御AP154を実行し、それにより生成されるタスクを制御するソフトウェア(オペレーティングシステム等)が動作している。
主処理装置21は、例えば、CPUやMPU等のプロセッサ(シングルコアタイプ、マルチコアタイプ)を用いて構成されている。尚、主処理装置21は、例えば、ASIC(Application Specific LSI)として実現されるものであってもよい。
記憶装置22は、例えば、ROM、RAM、NVRAM等である。尚、主処理装置21及び記憶装置22は、例えば、これらが一体化されたユニット(例えば、プロセッサユニットやCPUユニットなどと称されるもの。)として提供されることもある。
入力装置23は、例えば、スイッチ、各種センサ、A/Dコンバータ、エンコーダ等であり、ユーザの操作入力や各種センサの出力、制御対象装置30の出力等を、入力データとして取り込んで主処理装置21に入力する。
出力装置24は、主処理装置21から入力される制御信号や各種の情報を出力データとして制御対象装置30等に入力する。尚、入力装置23及び出力装置24は、例えば、これらが一体化されたユニット(例えば、I/Oユニットなどと称されるもの。)として提供されることもある。
通信装置25は、通信ネットワーク5を介して制御AP生成支援装置1と通信する。通信装置25が上記通信に際して用いるプロトコルは、例えば、RS−422、RS−485、RS−232C、USB(Universal Serial Bus)、Ethernet(登録商標)等である。
図1に戻り、制御対象装置30は、コントローラ20の出力装置24から出力される制御信号によって制御される機器(機械装置や電気機器等)であり、例えば、電磁開閉器、電磁バルブ、リレー、表示灯、警報器等である。
図3に制御AP生成支援装置1の機能ブロック図を示している。同図に示すように、制御AP生成支援装置1は、装置構成・パラメータ入力部111、制御プログラム生成部112、タスク割当部113、制御アプリケーション生成部(以下、制御AP生成部114と称する。)、入力データ取得部115、シミュレーション実行部116、及び制御アプ
リケーション配布部(以下、制御AP配布部117と称する。)の各機能を備える。尚、これらの機能は、制御AP生成支援装置1の中央演算処理装置11が備えるハードウェアによって、もしくは、制御AP生成支援装置1の中央演算処理装置11が、主記憶装置12や補助記憶装置13に格納されているプログラムを読み出して実行することにより実現される。
同図に示すように、制御AP生成支援装置1は、モジュールデータ151、デバイスデータ152、制御プログラム153(プロジェクト情報)、制御AP154、及び入力パターンデータ155を記憶する。これらのデータは、例えば、制御AP生成支援装置1の補助記憶装置13に記憶されている。またこれらのデータは、例えば、制御AP生成支援装置1において動作するDBMS(DataBase Management System)によってデータベースのテーブルとして管理されている。
装置構成・パラメータ入力部111は、制御システム2が備える各種装置の構成や、制御プログラム153の生成に際して用いる各種パラメータの入力を受け付け、受け付けた情報を装置構成・パラメータ情報110として記憶する。
制御プログラム生成部112は、装置構成・パラメータ情報110と、モジュールデータ151及びデバイスデータ152とに基づき制御プログラム153を生成する。
モジュールデータ151は、例えば、制御システム2の構成要素(コントローラ20、I/O装置等)の制御のために用意されたモジュール群を含む。尚、モジュールとは、例えば、制御対象装置30を制御するための所定の機能を実現するプログラムの要素である。
デバイスデータ152は、例えば、制御システム2の構成要素(コントローラ20の主処理装置、記憶装置、入力装置、出力装置、及び通信装置、制御対象装置30等)に関する情報(製品情報、製品仕様(スペック)、カタログ情報等)を含む。
制御プログラム153は、例えば、国際電気標準会議(International Electrotechnical Commission)が発行する国際標準規格「IEC61131−3」に規定されている構
成(ラダー・ロジック、シーケンシャル・ファンクション・チャート、ファンクション・ブロック、ストラクチャード・テキスト、インストラクション・リスト)の全部又は一部を含む。同図に示すように、本実施形態で示す制御プログラム153は、プログラム1531、タスク設定1533、装置構成1534、及びコントローラ情報1532を含む。
このうちプログラム1531は、例えば、装置構成・パラメータ情報110、モジュールデータ151、及びデバイスデータ152に基づき作成されたラダー図に対応するソースコードやデータである。コントローラ20が制御AP154を実行することにより生成される1サイクル分のタスクは、例えば、入力データを読み込んでから出力データを出力するまでの完結した1つのラダー図に相当する。
コントローラ情報1532は、装置構成・パラメータ情報110やデバイスデータ152に基づくコントローラ20の構成要素(例えば、プロセッサユニット、I/Oユニット、特殊機能ユニット等)に関する情報を含む。
図4にコントローラ情報1532の一例を示す。同図に示すように、コントローラ情報1532は、コントローラID411、アドレス412、種別413、及び型番414の各項目からなる一つ以上のレコードで構成されている。コントローラ情報1532の各行は、コントローラ20の構成要素(例えば、主処理装置21を構成しているコアプロセッ
サ)に対応している。
同図において、コントローラID411は、コントローラ20の識別子(以下、コントローラIDと称する。)である。アドレス412は、同じ行のコントローラID411で特定されるコントローラ20(以下、当該コントローラ20と称する。)の構成要素について一意に付与されるアドレスである。アドレス412は、例えば、当該コントローラ20が制御対象装置30の構成要素にアクセスする際に参照する。尚、アドレス412は、例えば、コントローラ20への各構成要素の接続順序に従って決定される。本例では、アドレス412を、構成要素の階層的な接続構成に対応させたドット「.」区切りの表記と
しているが、例えば、アドレス412として構成要素ごとに固有の値(オフセット等)を付与してもよい。種別413は、当該コントローラ20の構成要素の種類を示す情報である。型番414は、当該コントローラ20の構成要素の型番(製品番号、製造番号等)を示す情報である。
図3に戻り、タスク設定1533は、制御プログラム生成部112によって生成されるタスクに関する情報を含む。
図5にタスク設定1533の一例を示す。同図に示すように、タスク設定1533は、タスクID511、プログラムID512、割当コアプロセッサ513、制御周期514、及び優先度515の各項目を有する一つ以上のレコードで構成されている。タスク設定1533の各行は、コントローラ20が制御AP154を実行することにより生成されるタスクの一つに対応している。
同図におけるタスクID511は、タスクごとに固有に付与される識別子(以下、タスクIDと称する。)である。プログラムID512は、同じ行のタスクID511で特定されるタスク(以下、当該タスクと称する。)に対応するプログラムの識別子(以下、プログラムIDと称する。)である。
割当コアプロセッサ513は、当該タスクに割り当てられている、コントローラ20の主処理装置21が備えるコアプロセッサ(以下、当該コアプロセッサと称する。)を特定する情報(以下、コアプロセッサIDと称する。)である。尚、主処理装置21がマルチコアタイプのプロセッサを用いて構成されている場合、コアプロセッサIDは、当該プロセッサが備える各コアプロセッサを特定する情報である。
制御周期514は、当該タスクについて設定されている実行時間の上限値(制御周期)である。制御周期514は、例えば、ユーザが装置構成・パラメータ入力部111を介して設定する。
優先度515は、割当コアプロセッサ513の余裕度(当該コアプロセッサに現在割り当てられているタスクについて設定されている制御周期−当該コアプロセッサに現在割り当てられているタスクの実行時間(例えば、シミュレーション実行部116のシミュレーションにより取得された実行時間。))を示す。上記余裕度が高い程、優先度515は小さな値となる。
図3に戻り、装置構成1534は、コントローラ20の制御対象となる制御対象装置30に関する情報(装置構成、制御パラメータ等)や、コントローラ20のI/Oメモリのアドレスへの制御対象装置30の入出力との対応(以下、I/O割当と称する。)を示す情報を含む。I/O割当は、例えば、制御プログラム生成部112が、モジュールデータ151及びデバイスデータ152を参照しつつ、制御プログラム153で用いられる変数の入出力種別やデータ型に応じて自動的に生成する。またI/O割当は、例えば、装置構
成・パラメータ入力部111を介してユーザが設定する。
尚、制御プログラム153の生成や管理が、例えば、制御AP生成支援装置1に導入されている統合開発環境(IDE:Integrated Development Environment)等を利用して行われる場合、制御プログラム153は、例えば、プロジェクト情報などとして管理される。ユーザは、統合開発環境に対して、制御対象装置30やコントローラ20の構成要素、及び制御対象装置30やコントローラ20の構成要素を制御するためのパラメータ等を設定していくことにより、制御プログラム153を効率よく生成することができる。ユーザは、統合開発環境を利用して新規に制御プログラム153を作成することもできるし、統合開発環境に管理されている既存の制御プログラム153(プロジェクト情報)を利用して制御プログラム153を作成することもできる。統合開発環境は、例えば、制御プログラム生成部112のみならず、装置構成・パラメータ入力部111、タスク割当部113、制御AP生成部114、入力データ取得部115、シミュレーション実行部116、及び制御AP配布部117の全部又は一部の機能を包含するものであってもよい。
図3に示す入力データ取得部115は、制御システム2の既存のコントローラ20から収集した実行ログ(ロギングデータ)を用いて入力パターンデータ155を生成する。実行ログは、コントローラ20が実際にタスクを実行した際に生成する実行履歴情報であり、コントローラ20が、制御周期ごとに制御対象装置30から受信する入力データを時系列的に記録した内容を含む。入力データ取得部115は、既存の制御システム2を構成しているコントローラ20から送信される実行ログを受信し、受信した実行ログに基づき入力パターンデータ155を生成する。
図6(a)に入力パターンデータ155の一例を示す。同図に示すように、入力パターンデータ155は、装置種別611、制御対象装置ID612、制御パラメータ613、及び実行ログデータID614の各項目を有する一つ以上のレコードで構成されている。入力パターンデータ155の各行は、制御対象装置30の一つに対応している。
装置種別611は、制御対象装置30の種別を示す情報である。制御対象装置ID612は、制御対象装置30の識別子(以下、装置IDと称する。)である。
制御パラメータ613は、コントローラ20が実行する制御AP154によって参照される情報(シミュレーション実行部116がシミュレーションに際して制御AP154に与える入力データの一つ)であり、例えば、制御AP154が条件判断を行う際に参照する閾値等である。
実行ログデータID614は、制御AP生成支援装置1が記憶している実行ログを識別するための識別子(以下、実行ログデータIDと称する。)である。
図6(b)は実行ログデータの一例である。同図に示すように、制御AP生成支援装置1は、実行ログデータID6142ごとサイクル6141ごとの実行ログデータを記憶している。
図3に戻り、制御AP生成部114は、制御プログラム153(プロジェクト情報)に基づき制御AP154を生成する。上記生成には、例えば、ソースコードやオブジェクトコードを実行コードに変換(コンパイル)する処理が含まれる。
図3に示すシミュレーション実行部116は、例えば、実際の実行環境を模擬して構成された仮想的なコントローラ20に制御AP154を実行させることにより生成されるタスクの実行時間を求める。またシミュレーション実行部116は、各タスクについて、夫
々について求めた実行時間が、夫々について設定されている制御周期514を超えているか否かを判定する。
シミュレーションに際し、シミュレーション実行部116は、コントローラ情報1532から、制御AP154を実行するコントローラ20の構成要素に関する情報を取得する。またシミュレーション実行部116は、装置構成1534から、制御AP154を実行するコントローラ20の制御対象となる制御対象装置30に関する情報やI/O割当を取得する。そしてシミュレーション実行部116は、これら取得した情報に対応する入力データを入力パターンデータ155から取得し、取得した入力データを制御AP154に与えつつシミュレーションを行う。
タスク割当部113は、シミュレーション実行部116により実行時間が制御周期514を超えていると判定されたタスクについてコアプロセッサへの割り当てが変更されるように制御プログラム153を変更する。尚、タスクの割り当て先の変更は、同一のコントローラ20のコアプロセッサ間で行うこともできるし、同一のコントローラ20の枠を超えて行うこともできる。即ち、主処理装置21がマルチコアタイプのプロセッサで構成されている場合、タスク割当部113は、当該主処理装置21のあるコアプロセッサに割り当てられているタスクを当該主処理装置21の他のコアプロセッサに割り当てる。また例えば、タスク割当部113は、あるコントローラ20のコアプロセッサに割り当てられているタスクを、他のコントローラ20のコアプロセッサに割り当てる。またタスク割当部113は、制御AP154の実行環境におけるコアプロセッサへの可能な全てのタスクの割り当てパターンについて検証済みか否かを判定する。
制御AP配布部117は、制御AP生成部114によって生成された制御AP154をコントローラ20に配布(ダウンロード)する。尚、制御AP154の該当のコントローラ20への配布は、例えば、シミュレーション実行部116による上記シミュレーションの結果、実行時間が制御周期514を超えているタスクが一つも存在しなくなった場合に行われる。
続いて、図7に示すフローチャートとともに、制御AP生成支援装置1が行う処理(以下、制御AP生成支援処理S700と称する。)について説明する。尚、制御AP生成支援処理S700が行われる前提として、入力データ取得部115が、既存の制御システム2のコントローラ20から取得した実行ログに基づき予め入力パターンデータ155を生成済みであるものとする。
同図に示すように、まず装置構成・パラメータ入力部111が、制御システム2の各種装置の構成や、制御プログラム153の生成に際して用いる各種パラメータの入力を受け付け、受け付けた情報を装置構成・パラメータ情報110として記憶する(S711)。
続いて、制御プログラム生成部112が、装置構成・パラメータ情報110と、モジュールデータ151及びデバイスデータ152とに基づき、制御プログラム153を生成する(S712)。
続いて、制御AP生成部114が、制御プログラム153に基づき制御AP154を生成する(S713)。
続いて、シミュレーション実行部116がシミュレーションを実行し、タスクごとの実行時間を出力する(S714)。
続いて、シミュレーション実行部116は、各タスクの実行時間と夫々について設定さ
れている制御周期514とを比較する(S715)。実行時間が制御周期514を超えているタスクが一つでも存在すれば(S715:Yes)、処理はS717に進む。実行時間が制御周期514を超えているタスクが存在しなければ(S715:No)、処理はS716に進む。
S717では、タスク割当部113が、制御AP154の実行環境におけるコアプロセッサへの可能な全てのタスクの割り当てパターンについて検証済みか否かを判定する。全てのパターンについて検証済みであれば(S717:Yes)、処理はS719に進む。全てのパターンについて検証済みでなければ(S717:No)、処理はS718に進む。
S718では、タスク割当部113が、実行時間が制御周期514を超えているタスクについて、割り当て先のコアプロセッサを変更する。尚、タスク割当部113は、例えば、上記タスクを、優先度515が高いコアプロセッサに優先的に割り当てる。
S719では、タスク割当部113は、出力装置15に警告(例えば、「制御周期内にタスクを割り当てることができませんでした。」等)を出力する。
S716では、制御AP配布部117は、制御AP154を該当のコントローラ20に配布(ダウンロード)する。
以上詳細に説明したように、本実施形態の制御AP生成支援装置1は、制御対象装置30の制御に際して実際にコントローラ20に入力された入力データ(入力パターンデータ155)を与えつつ、制御AP154のシミュレーションを行うので、タスクの実行時間が制御周期514を超えるか否かを精度よく判定することができる。またユーザは、上記判定結果に基づき制御プログラム153を調整し、タスクの実行時間が制御周期514の制約を満たすようにすることができる。
また制御AP生成支援装置1は、タスクの実行時間が制御周期514を超えていると判定されたタスクのコアプロセッサへの割り当てが変更されるように制御プログラム153を変更するので、タスクの実行時間が制御周期514の制約を満たすようなタスクのコアプロセッサへの割り当て方を探索することができる。
また制御AP生成支援装置1は、制御プログラム153の変更、制御AP154の生成、及び、シミュレーションの実行を、複数のタスクのいずれもが、夫々の実行時間が夫々について設定された制御周期514を超えなくなるまで繰り返すので、複数のタスクの全ての実行時間が夫々の制御周期514の制約を満たすようなタスクのコアプロセッサへの割り当て方を自動的に探索することができる。
また制御AP生成支援装置1は、実行時間が制御周期514を超えるタスクを、実行時間が制御周期514を超えないようにすることができる可能性が高い余裕度の大きなコアプロセッサに優先的に割り当てるので、複数のタスクの全ての実行時間が夫々の制御周期514の制約を満たすようなタスクのコアプロセッサへの割り当て方を効率よく探索することができる。
尚、シミュレーション実行部116がシミュレーションを実行する際に制御AP154に与える入力データとして、例えば、既存の制御システム2のコントローラ20から収集した実行ログのうち、構成(コントローラ20の構成、コントローラ20が制御する制御対象装置30の構成、コントローラ20と制御対象装置30の接続構成等)が類似するシステムのコントローラ20が取得した実行ログに基づく入力データを用いることで、シミ
ュレーションの精度を高めることができる。
[実施例2]
実施例1では、制御AP生成支援装置1が、コントローラ20とは独立した情報処理装置(コンピュータ)として構成されているが、実施例2における制御AP生成支援装置1は、制御システム2におけるコントローラ20としても機能する。尚、このような構成は、例えば、制御AP生成支援装置1がいわゆるソフトウェアPLC(Software Programmable Logic Controller)として機能する場合に相当する。
図8は、実施例2における、制御AP生成支援装置1並びに制御システム2の概略的な構成である。実施例1の制御AP生成支援装置1と異なり、実施例2の制御AP生成支援装置1は、制御AP配布部117に代えて制御AP実行部815を備える。この制御AP実行部815は、制御対象装置30を制御するコントローラ20として機能する。中央演算処理装置11は、例えば、複数のコアプロセッサを備えており、制御AP実行部815は、制御AP154を実行することにより生成される複数のタスクの夫々を、中央演算処理装置11が備えるコアプロセッサの一つに割り当てる。
同図に示すように、制御システム2側の一部の制御対象装置30は、コントローラ20ではなく、リモートI/O40を介して制御AP実行部815と通信可能に接続されている。尚、リモートI/O40は、通信ネットワーク5を介して、制御AP実行部815と制御対象装置30とを通信可能に接続する装置である。
図9は、実施例2の制御AP生成支援装置1が行う処理(以下、制御AP生成支援処理S900と称する。)を説明するフローチャートである。同図に示すように、このフローチャートは、S716の処理がS916となっている点で図7に示すフローチャートと相違する。尚、図7と共通の符号を付している他の処理については図7と同様であるので説明を省略する。
S916において、制御AP実行部815は、リモートI/Oを介して制御対象装置30を制御するコントローラ20として機能し、制御AP154を実行する。
制御AP生成支援装置1を以上の構成とすることで、制御AP生成支援装置1をコントローラ20としても機能させることができ、制御システム2の構築にかかるコストを削減することができる。
[実施例3]
図7に示したように、実施例1では、タスクの実行時間が制御周期514の制約(S715)を満たすようなタスクの割り当てパターンを見いだすことができない場合(S717:Yes)に警告を出力(S719)するのみである。しかし例えば、コントローラ20のコアプロセッサの性能を向上する等、コントローラ20の構成を変更することで上記制約を満たすことが可能な場合もある。そこで実施例3では、制御AP生成支援装置1が、既存のコントローラ20の構成では上記制約(S715)を満たすようなタスクの割り当てパターンを見いだすことができない場合に、上記制約を満たすようなコントローラ20の構成の変更案を生成するようにしている。
図10は、実施例3として示す、制御AP生成支援装置1並びに制御システム2の概略的な構成である。実施例1の制御AP生成支援装置1の構成に加えて、制御AP生成支援装置1は、構成変更部119を更に備える。
図11は、実施例3の制御AP生成支援装置1が行う処理(以下、制御AP生成支援処
理S1100と称する。)を説明するフローチャートである。同図に示すように、このフローチャートはS719の処理がS1119となっている点等が図7に示すフローチャートと相違する。尚、S717において、全てのパターンについて検証済みの場合に(S717:Yes)、処理はS1119に進む。尚、その他の処理は図7と基本的に同様であるので説明を省略する。
S1119では、構成変更部119は、タスクの処理能力が高まるように制御プログラム153のコントローラ情報1532を変更する。例えば、構成変更部119は、主処理装置21を構成しているコアプロセッサをより処理性能の高いコアプロセッサに変更する。また構成変更部119は、記憶装置22を構成している記憶素子を、よりアクセス性能の高い記憶素子に変更する。また構成変更部119は変更内容を出力装置15に出力してユーザに構成変更案等として提示する。
その後、処理はS718に進み、実施例1と同様に、制御AP生成支援装置1は、制御プログラム153の変更、制御AP154の生成、及びシミュレーションの実行を、複数のタスクのいずれもが、夫々の実行時間が夫々について設定された制御周期を超えなくなるまで繰り返す。
以上のように、実施例3の制御AP生成支援装置1によれば、構成変更部119は、タスクの処理能力が高まるように制御プログラム153のコントローラ情報1532を変更するので、制御タスクの制御周期514の制約を満たすタスク割当が見つからない場合に、ユーザにタスクの実行時間が制御周期の制約を満たすような構成変更案を提供することができる。
尚、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
また上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、
ICカード、SDカード、DVD等の記録媒体に置くことができる。
また制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
また以上の説明で例示した各種のデータの形式は、例えば、CSV(Comma-Separated Values)、XML(eXtensible Markup Language)、バイナリ(binary)等であるが、必ずしもこれらに限定されるものではない。
1 制御AP生成支援装置、11 中央演算処理装置、12 主記憶装置、20 コントローラ、21 主記憶装置、30 制御対象装置、111 装置構成・パラメータ入力部、112 制御プログラム生成部、113 タスク割当部、114 制御AP生成部、1
15 入力データ取得部、116 シミュレーション実行部、117 制御AP配布部、151 モジュールデータ、152 デバイスデータ、153 制御プログラム、1531 プログラム、1532 コントローラ情報、1533 タスク設定、1534 装置構成、154 制御AP、155 入力パターンデータ、815 制御AP実行部、119 構成変更部、S700 制御AP生成支援処理

Claims (15)

  1. 制御対象装置を制御する一つ以上のコントローラにおいて実行される制御アプリケーションの生成を支援する制御アプリケーション生成支援装置であって、
    前記制御対象装置の制御に際して実際に前記コントローラに入力された入力データを取得する入力データ取得部と、
    前記制御アプリケーションの生成元となる制御プログラムを生成する制御プログラム生成部と、
    前記制御プログラムに基づき前記制御アプリケーションを生成する制御アプリケーション生成部と、
    前記コントローラが前記制御アプリケーションを実行することにより生成されるタスクについて設定されている実行時間の上限値である制御周期を記憶する制御周期記憶部と、
    前記入力データ取得部が取得した前記入力データを入力として与えつつ前記制御アプリケーションを実行するシミュレーションを行って前記タスクの実行時間を求め、前記タスクの実行時間が前記制御周期を超えるか否かを判定するシミュレーション実行部と、
    を備える、
    制御アプリケーション生成支援装置。
  2. 請求項1に記載の制御アプリケーション生成支援装置であって、
    前記制御周期記憶部は、前記制御アプリケーションを前記コントローラに実行させることにより生成される複数の前記タスクの夫々について設定された前記制御周期を記憶し、
    前記シミュレーション実行部は、前記入力データ取得部が取得した前記入力データを入力として与えつつ前記制御アプリケーションを実行するシミュレーションを行って前記複数のタスクの夫々の実行時間を求め、前記複数のタスクの夫々の実行時間が夫々について設定された前記制御周期を超えているか否かを判定する、
    制御アプリケーション生成支援装置。
  3. 請求項2に記載の制御アプリケーション生成支援装置であって、
    前記制御アプリケーションは、前記コントローラが備える複数のコアプロセッサにより実行され、
    前記複数のタスクの夫々は、前記コアプロセッサのいずれかに割り当てられて実行され、
    前記シミュレーション実行部により前記実行時間が前記制御周期を超えていると判定された前記タスクの前記コアプロセッサへの割り当てが変更されるように前記制御プログラムを変更するタスク割当部を更に備え、
    前記アプリケーション生成部は、前記変更後の前記制御プログラムに基づき前記制御アプリケーションを生成し、
    前記シミュレーション実行部は、前記制御アプリケーションについて前記シミュレーションを行うことにより前記複数のタスクの夫々の実行時間を求め、前記複数のタスクの夫々の実行時間が夫々について設定された前記制御周期を超えているか否かを判定する、
    制御アプリケーション生成支援装置。
  4. 請求項3に記載の制御アプリケーション生成支援装置であって、
    前記制御プログラムの変更、前記制御アプリケーションの生成、及び前記シミュレーションの実行及び前記判定を、前記複数のタスクのいずれもが、夫々の実行時間が夫々について設定された前記制御周期を超えなくなるまで繰り返す、
    制御アプリケーション生成支援装置。
  5. 請求項4に記載の制御アプリケーション生成支援装置であって、
    前記タスク割当部は、前記シミュレーション実行部により前記実行時間が前記制御周期
    を超えていると判定された前記タスクを、余裕度(現在割り当てられているタスクについて設定されている前記制御周期−現在割り当てられているタスクの前記実行時間)が大きい前記コアプロセッサに優先的に割り当てる、
    制御アプリケーション生成支援装置。
  6. 請求項1乃至5のいずれか一項に記載の制御アプリケーション生成支援装置であって、
    前記コントローラと通信する通信装置と、
    制御アプリケーション生成部が生成した前記制御アプリケーションを前記コントローラに送信する制御アプリケーション配布部と、
    を更に備える、
    制御アプリケーション生成支援装置。
  7. 請求項1乃至5のいずれか一項に記載の制御アプリケーション生成支援装置であって、
    前記制御対象装置30と通信する通信装置と、
    制御アプリケーション生成部が生成した前記制御アプリケーションを実行して前記制御対象装置を制御する制御アプリケーション実行部と、
    を更に備える、
    制御アプリケーション生成支援装置。
  8. 請求項1乃至5のいずれか一項に記載の制御アプリケーション生成支援装置であって、
    前記タスクの実行時間が前記制御周期を超えている場合に、前記タスクの実行時間が前記制御周期を超えないように前記制御プログラムの構成を変更する構成変更部を更に備える、
    制御アプリケーション生成支援装置。
  9. 請求項1乃至5のいずれか一項に記載の制御アプリケーション生成支援装置であって、
    前記コントローラはPLC(Programmable Logic Controller)である、
    制御アプリケーション生成支援装置。
  10. 制御対象装置を制御する一つ以上のコントローラにおいて実行される制御アプリケーションの生成を支援する方法であって、
    情報処理装置が、
    前記制御対象装置の制御に際して実際に前記コントローラに入力された入力データを取得するステップと、
    前記制御アプリケーションの生成元となる制御プログラムを生成するステップと、
    前記制御プログラムに基づき前記制御アプリケーションを生成するステップと、
    前記コントローラが前記制御アプリケーションを実行することにより生成されるタスクについて設定されている実行時間の上限値である制御周期を記憶するステップと、
    前記入力データを入力として与えつつ前記制御アプリケーションを実行するシミュレーションを行って前記タスクの実行時間を求め、前記タスクの実行時間が前記制御周期を超えるか否かを判定するステップと、
    を実行する、
    制御アプリケーション生成支援方法。
  11. 請求項10に記載の制御アプリケーション生成支援方法であって、
    前記情報処理装置が、
    前記制御アプリケーションを前記コントローラに実行させることにより生成される複数の前記タスクの夫々について設定された前記制御周期を記憶ステップと、
    前記入力データを入力として与えつつ前記制御アプリケーションを実行するシミュレーションを行って前記複数のタスクの夫々の実行時間を求め、前記複数のタスクの夫々の実
    行時間が夫々について設定された前記制御周期を超えているか否かを判定するステップと、
    をさらに実行する、
    制御アプリケーション生成支援方法。
  12. 請求項11に記載の制御アプリケーション生成支援方法であって、
    前記制御アプリケーションは、前記コントローラが備える複数のコアプロセッサにより実行され、
    前記複数のタスクの夫々は、前記コアプロセッサのいずれかに割り当てられて実行され、
    前記情報処理装置が、
    前記実行時間が前記制御周期を超えていると判定された前記タスクの前記コアプロセッサへの割り当てが変更されるように前記制御プログラムを変更するステップと、
    前記変更後の前記制御プログラムに基づき前記制御アプリケーションを生成するステップと、
    前記制御アプリケーションについて前記シミュレーションを行うことにより前記複数のタスクの夫々の実行時間を求め、前記複数のタスクの夫々の実行時間が夫々について設定された前記制御周期を超えているか否かを判定するステップと、
    をさらに実行する、
    制御アプリケーション生成支援方法。
  13. 請求項12に記載の制御アプリケーション生成支援方法であって、
    前記情報処理装置が、前記制御プログラムの変更、前記制御アプリケーションの生成、及び前記シミュレーションの実行及び前記判定を、前記複数のタスクのいずれもが、夫々の実行時間が夫々について設定された前記制御周期を超えなくなるまで繰り返すステップ、
    をさらに実行する、
    制御アプリケーション生成支援方法。
  14. 請求項13に記載の制御アプリケーション生成支援方法であって、
    前記情報処理装置が、前記シミュレーション実行部により前記実行時間が前記制御周期を超えていると判定された前記タスクを、余裕度(現在割り当てられているタスクについて設定されている前記制御周期−現在割り当てられているタスクの前記実行時間)が大きい前記コアプロセッサに優先的に割り当てるステップ、
    をさらに実行する、
    制御アプリケーション生成支援方法。
  15. 請求項10乃至14のいずれか一項に記載の制御アプリケーション生成支援装置であって、
    前記情報処理装置が、前記制御アプリケーションを前記コントローラに送信するステップ、
    をさらに実行する、
    制御アプリケーション生成支援方法。
JP2016137287A 2016-07-12 2016-07-12 制御アプリケーション生成支援装置、及び制御アプリケーション生成支援方法 Expired - Fee Related JP6576884B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016137287A JP6576884B2 (ja) 2016-07-12 2016-07-12 制御アプリケーション生成支援装置、及び制御アプリケーション生成支援方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016137287A JP6576884B2 (ja) 2016-07-12 2016-07-12 制御アプリケーション生成支援装置、及び制御アプリケーション生成支援方法

Publications (3)

Publication Number Publication Date
JP2018010389A true JP2018010389A (ja) 2018-01-18
JP2018010389A5 JP2018010389A5 (ja) 2018-11-15
JP6576884B2 JP6576884B2 (ja) 2019-09-18

Family

ID=60994348

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016137287A Expired - Fee Related JP6576884B2 (ja) 2016-07-12 2016-07-12 制御アプリケーション生成支援装置、及び制御アプリケーション生成支援方法

Country Status (1)

Country Link
JP (1) JP6576884B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020086638A (ja) * 2018-11-19 2020-06-04 日鉄テックスエンジ株式会社 制御プログラム作成支援ツール及び制御プログラムの作成方法
WO2020122171A1 (ja) * 2018-12-13 2020-06-18 Vivita株式会社 情報処理システム

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006134203A (ja) * 2004-11-09 2006-05-25 Hitachi Ltd 分散制御システム
JP2010009497A (ja) * 2008-06-30 2010-01-14 Digital Electronics Corp 表示器、表示器の制御方法および表示器の制御プログラム
JP2010277272A (ja) * 2009-05-27 2010-12-09 Oki Electric Ind Co Ltd 負荷分散制御装置、プログラム及び方法、並びに、負荷分散装置及び情報処理装置
JP2011100338A (ja) * 2009-11-06 2011-05-19 Hitachi Automotive Systems Ltd 車載用マルチアプリ実行装置
JP2012118715A (ja) * 2010-11-30 2012-06-21 Fuji Electric Co Ltd Plcシステム、その開発支援装置、プログラム
JPWO2012023296A1 (ja) * 2010-08-16 2013-10-28 三菱電機株式会社 制御プログラム生成装置、制御プログラム生成プログラム、及び制御プログラム生成方法
JP2015219896A (ja) * 2014-05-21 2015-12-07 株式会社東芝 複数の演算サーバを備えるクラウド制御システム、その制御プログラムのスケジューリング方法、及び演算サーバの冗長化方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006134203A (ja) * 2004-11-09 2006-05-25 Hitachi Ltd 分散制御システム
JP2010009497A (ja) * 2008-06-30 2010-01-14 Digital Electronics Corp 表示器、表示器の制御方法および表示器の制御プログラム
JP2010277272A (ja) * 2009-05-27 2010-12-09 Oki Electric Ind Co Ltd 負荷分散制御装置、プログラム及び方法、並びに、負荷分散装置及び情報処理装置
JP2011100338A (ja) * 2009-11-06 2011-05-19 Hitachi Automotive Systems Ltd 車載用マルチアプリ実行装置
JPWO2012023296A1 (ja) * 2010-08-16 2013-10-28 三菱電機株式会社 制御プログラム生成装置、制御プログラム生成プログラム、及び制御プログラム生成方法
JP2012118715A (ja) * 2010-11-30 2012-06-21 Fuji Electric Co Ltd Plcシステム、その開発支援装置、プログラム
JP2015219896A (ja) * 2014-05-21 2015-12-07 株式会社東芝 複数の演算サーバを備えるクラウド制御システム、その制御プログラムのスケジューリング方法、及び演算サーバの冗長化方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020086638A (ja) * 2018-11-19 2020-06-04 日鉄テックスエンジ株式会社 制御プログラム作成支援ツール及び制御プログラムの作成方法
WO2020122171A1 (ja) * 2018-12-13 2020-06-18 Vivita株式会社 情報処理システム

Also Published As

Publication number Publication date
JP6576884B2 (ja) 2019-09-18

Similar Documents

Publication Publication Date Title
EP2924562B1 (en) Multiple controllers configuration management interface for system connectivity
CN107111308B (zh) 在工业过程控制和自动化系统中使用功能块进行高级控制的方法和装置
BR112017020469B1 (pt) Sistema adaptativo de controle de processo para direção independente de sistemas de controle de instalação
EP3042254A1 (en) Systems and methods for virtualizing a programmable logic controller
JP2018159981A (ja) 制御システム、制御装置、制御プログラム、および制御方法
US20170228225A1 (en) System and method for preserving value and extending life of legacy software in face of processor unavailability, rising processor costs, or other issues
US10712731B2 (en) Control device, control method, and non-transitory computer-readable recording medium
JP6576884B2 (ja) 制御アプリケーション生成支援装置、及び制御アプリケーション生成支援方法
WO2018152213A1 (en) System and method for automatic configuration of a data collection system and schedule for control system monitoring
CN113632024A (zh) 上级机器平台上的虚拟传感器
Gaitan et al. A flexible acquisition cycle for incompletely defined fieldbus protocols
US11287793B2 (en) Control device, control method for control device, information processing program, and recording medium
US11165745B2 (en) Control system, controller, and control method
CN107621946B (zh) 一种软件开发方法、装置及系统
JP6135247B2 (ja) 情報処理装置および情報処理プログラム
JP2019139365A (ja) アプリケーションプログラムを生成する方法、装置、プログラム
WO2014204635A1 (en) Cyber-physical systems programmable logic controller
EP3196718A1 (en) Embedded emulation modules in industrial control devices
US11601494B2 (en) Method for transferring data from a device to a data management means, switching unit, device and system
US20190044997A1 (en) Method for providing functions within an industrial automation system, and an automation system
US10599112B2 (en) Method for programming and configuring a device in a traceable manner
WO2013005350A1 (ja) シンボルテーブル生成方法、周辺機器との通信方法およびプログラマブルロジックコントローラ
JP5079166B1 (ja) シンボルテーブル生成方法、周辺機器との通信方法およびプログラマブルロジックコントローラ
JP6988773B2 (ja) 制御システムおよび制御装置
WO2015158359A1 (en) Dynamic configuration of intelligent electronic devices

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181002

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181002

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190717

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190821

R150 Certificate of patent or registration of utility model

Ref document number: 6576884

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees