JP2020149459A - 制御システム、サポート装置、およびサポートプログラム - Google Patents

制御システム、サポート装置、およびサポートプログラム Download PDF

Info

Publication number
JP2020149459A
JP2020149459A JP2019047306A JP2019047306A JP2020149459A JP 2020149459 A JP2020149459 A JP 2020149459A JP 2019047306 A JP2019047306 A JP 2019047306A JP 2019047306 A JP2019047306 A JP 2019047306A JP 2020149459 A JP2020149459 A JP 2020149459A
Authority
JP
Japan
Prior art keywords
process data
data
controller
application
control
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
JP2019047306A
Other languages
English (en)
Other versions
JP7040484B2 (ja
Inventor
琢也 植木
Takuya Ueki
琢也 植木
雄大 永田
Yuta NAGATA
雄大 永田
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
Omron Tateisi Electronics Co
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, Omron Tateisi Electronics Co filed Critical Omron Corp
Priority to JP2019047306A priority Critical patent/JP7040484B2/ja
Priority to US17/434,218 priority patent/US20220137584A1/en
Priority to EP20769781.4A priority patent/EP3940471A4/en
Priority to PCT/JP2020/007783 priority patent/WO2020184185A1/ja
Priority to CN202080017707.7A priority patent/CN113508345A/zh
Publication of JP2020149459A publication Critical patent/JP2020149459A/ja
Application granted granted Critical
Publication of JP7040484B2 publication Critical patent/JP7040484B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • G05B19/054Input/output
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • G05B19/052Linking several PLC's
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • G05B19/058Safety, monitoring
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/55Push-based network services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/567Integrating service provisioning from a plurality of service providers
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/10Plc systems
    • G05B2219/11Plc I-O input output
    • G05B2219/1138Configuration of I-O
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/10Plc systems
    • G05B2219/12Plc mp multi processor system
    • G05B2219/1214Real-time communication between plc, Ethernet for configuration, monitor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/565Conversion or adaptation of application format or content

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Programmable Controllers (AREA)

Abstract

【課題】アプリケーションの実行に必要なプロセスデータが制御装置から情報処理装置に向けて送信されるような通信設定を容易に行うことを一つの目的とする。【解決手段】制御装置と、制御装置が管理するプロセスデータを利用してアプリケーションを実行する情報処理装置とを含む制御システムは、グループ化手段と、生成手段とを有する。グループ化手段は、アプリケーションにおいて利用されるプロセスデータを複数のグループに割り当てる。生成手段は、グループ化手段の割り当て結果に従って、一のグループに含まれるプロセスデータが一のデータセットに格納されて送信されるように通信設定を生成する。【選択図】図1

Description

本発明は、制御装置と、制御装置が管理するプロセスデータを利用する1または複数のアプリケーションを実行する情報処理装置との間の通信環境の設定を支援する機能に関する。
様々な製造現場において、PLC(Programmable Logic Controller)などの制御装置が導入されている。このような制御装置は、一種のコンピュータであり、製造装置または製造設備などに応じて設計された制御プログラムが実行される。このような制御装置は、HMI(Human Machine Interface)などの情報処理装置と通信可能に接続される。
情報処理装置は、たとえば、制御装置からの情報を利用して、制御装置の制御対象の稼働状況などをグラフィカルに表示したり、あるいは、制御装置からの情報を利用して、表示するアプリケーションとは異なるアプリケーションを実行したりする。
たとえば、特開2017−146803号公報(特許文献1)は、PLCと接続される情報処理装置の一例としてプログラム表示器を開示する。このプログラム表示器は、表示画面に表示される一画面を一ページとした場合に、ページ単位で当該ページに表示される機能部品のレイアウト、および、機能の割り当て等がされている。
特開2017−146803号公報
特許文献1には、各ページに割り当てられた機能を実現するために必要な情報を具体的にどのように取得するかについて言及されていない。この機能を実現するためのアプリケーションには、PLCである制御装置の情報(以下、「プロセスデータ」とする。)が利用される。ユーザは、アプリケーションに利用されるプロセスデータが送信されるような通信設定を制御装置に対して行う必要がある。
本願発明は、アプリケーションの実行に必要なプロセスデータが制御装置から情報処理装置に向けて送信されるような通信設定を容易に行うことを一つの目的とする。
本開示の一例によれば、制御装置と、情報処理装置と、グループ化手段と、生成手段とを含む制御システムが提供される。制御装置は、制御対象を制御するための制御プログラムを実行するとともに、当該制御プログラムにおいて参照または更新される複数のプロセスデータを管理し、予め定められた通信設定に従って、複数のプロセスデータの少なくとも一部を格納した1または複数種類のデータセットを送信するように構成されている。情報処理装置は、制御装置から送信される1または複数種類のデータセットを利用することで、複数のプロセスデータのうち指定された1または複数のプロセスデータを利用する1または複数のアプリケーションを実行するように構成されている。グループ化手段は、1または複数のアプリケーションにおいて利用することが指定されている1または複数のプロセスデータの各々を1または複数のグループに割り当てる。生成手段は、グループ化手段の割り当て結果に従って、グループ化手段がグループ化した1または複数のグループの各々について、当該グループに割り当てられた1または複数のプロセスデータが一のデータセットに格納されて送信されるように、制御装置のための通信設定を生成する。
この開示によれば、情報処理装置が実行するアプリケーションに応じて通信設定が自動で生成されるため、アプリケーションの実行に必要なプロセスデータが制御装置から情報処理装置に向けて送信されるような通信設定を容易に行うことができる。
上述の開示において、通信設定は、各データセットに格納されるべき1または複数のプロセスデータを特定するための情報を含んでもよい。
この開示によれば、一のデータセットに格納されるべきプロセスデータの組み合わせが規定されているため、単に格納ルールが規定されている場合に比べて、制御装置がデータセットを生成する処理負担を軽減することができる。
上述の開示において、通信設定は、各データセットにおける1または複数のプロセスデータの格納順序を特定するための情報を含んでもよい。
この開示によれば、制御装置はデータセットを生成する度に格納順序を決定する必要がなく、制御装置のデータセットを生成する処理負担を軽減することができる。さらに、たとえば、格納順序を特定する情報を含む通信設定を情報処理装置と制御装置の双方に送ることで、情報処理装置と制御装置との間のデータリンクを容易に構築することができる。
上述の開示において、制御システムは、1または複数のアプリケーションの開発環境を提供するサポート装置をさらに含んでもよい。制御システムにおいて、サポート装置がグループ化手段および生成手段を有してもよい。
この開示によれば、グループ化手段および生成手段をアプリケーションの開発環境を提供するサポート装置が備えるため、アプリケーションの開発と通信設定とを一括で行うことができる。
上述の開示において、制御システムは、制御装置と情報処理装置との間の通信を中継する中継装置をさらに含んでもよい。制御システムにおいて、中継装置がグループ化手段および生成手段を有してもよい。
この開示によれば、制御装置に対して予め通信設定をしなくとも、情報処理装置と制御装置との間のデータの遣り取りを実現することができる。
上述の開示において、情報処理装置は、1または複数のアプリケーションにおいて参照または更新される複数のアプリケーションデータを管理し、予め定められた情報処理装置の通信設定に従って、複数のアプリケーションデータの少なくとも一部を格納した1または複数種類のアプリケーションデータセットを送信してもよい。制御装置は、アプリケーションデータセットを利用することで、複数のアプリケーションデータのうち指定された1または複数のアプリケーションデータを利用して制御プログラムを実行してもよい。グループ化手段は、制御プログラムにおいて利用することが指定されている1または複数のアプリケーションデータの各々を1または複数の制御プログラムグループに割り当ててもよい。生成手段は、グループ化手段の割り当て結果に従って、グループ化手段がグループ化した1または複数の制御プログラムグループの各々について、制御プログラムグループに割り当てられた1または複数のアプリケーションデータが一のアプリケーションデータセットに格納されて送信されるように、情報処理装置の通信設定を生成してもよい。
この開示によれば、制御プログラムの実行にアプリケーションデータを利用する場合に、当該制御プログラムに応じて情報処理装置の通信設定が自動で生成されるため、制御プログラムの実行に必要なアプリケーションデータが情報処理装置から制御装置に向けて送信されるような情報処理装置の通信設定を容易に行うことができる。
本開示の別の一例によれば、制御装置と情報処理装置との間の通信環境の設定を支援するサポート装置が提供される。制御装置は、制御対象を制御するための制御プログラムを実行するとともに、当該制御プログラムにおいて参照または更新される複数のプロセスデータを管理し、予め定められた通信設定に従って、複数のプロセスデータの少なくとも一部を格納した1または複数種類のデータセットを送信するように構成されている。情報処理装置は、制御装置から送信される1または複数種類のデータセットを利用することで、複数のプロセスデータのうち指定された1または複数のプロセスデータを利用する1または複数のアプリケーションを実行するように構成されている。サポート装置は、1または複数のアプリケーションにおいて利用することが指定されている1または複数のプロセスデータの各々を1または複数のグループに割り当てるグループ化手段と、グループ化手段の割り当て結果に従って、グループ化手段がグループ化した1または複数のグループの各々について、当該グループに割り当てられた1または複数のプロセスデータが一のデータセットに格納されて送信されるように、制御装置のための前記通信設定を生成する生成手段とを含む。
この開示によれば、情報処理装置が実行するアプリケーションに応じて通信設定が自動で生成されるため、アプリケーションの実行に必要なプロセスデータが制御装置から情報処理装置に向けて送信されるような通信設定を容易に行うことができる。
本開示の別の一例によれば、制御装置と情報処理装置との間の通信環境の設定を支援するサポートプログラムが提供される。制御装置は、制御対象を制御するための制御プログラムを実行するとともに、当該制御プログラムにおいて参照または更新される複数のプロセスデータを管理し、予め定められた通信設定に従って、複数のプロセスデータの少なくとも一部を格納した1または複数種類のデータセットを送信するように構成されている。情報処理装置は、制御装置から送信される1または複数種類のデータセットを利用することで、複数のプロセスデータのうち指定された1または複数のプロセスデータを利用する1または複数のアプリケーションを実行するように構成されている。サポートプログラムは、コンピュータに、1または複数のアプリケーションにおいて利用することが指定されている1または複数のプロセスデータの各々を1または複数のグループに割り当てるグループ化ステップと、グループ化ステップにおいて割り当てられた結果に従って、グループ化ステップにおいてグループ化された1または複数のグループの各々について、当該グループに割り当てられた1または複数のプロセスデータが一のデータセットに格納されて送信されるように、制御装置のための通信設定を生成する生成ステップとを実行させる。
この開示によれば、情報処理装置が実行するアプリケーションに応じて通信設定が自動で生成されるため、アプリケーションの実行に必要なプロセスデータが制御装置から情報処理装置に向けて送信されるような通信設定を容易に行うことができる。
本開示の一例によれば、アプリケーションの実行に必要なプロセスデータが制御装置から情報処理装置に向けて送信されるような通信設定を容易に行うことができる。
FAシステム10aを中心とした制御システム1aの適用場面を示す模式図である。 実施の形態1に係る制御システム1の概略を示す図である。 Pub/Sub通信の概要を説明するための図である。 サブスクライバーとして機能するHMI200の概要を説明するための図である。 パブリッシャーとして機能するコントローラ100の概要を説明するための図である。 アプリケーションの開発から、開発したアプリケーションを導入するまでの一連の流れの一例を示す図である。 サポート装置300が備える機能構成を示すブロック図である。 サポート装置300のハードウェア構成の一例を示す模式図である。 HMI200のハードウェア構成の一例を示す模式図である。 コントローラ100のハードウェア構成の一例を示す模式図である。 変形例に係るアプリケーションの実行段階を説明するための図である。 変形例に係るグループ化手段20bおよび生成手段40bの概略図である。 実施の形態2に係る制御システム1cの概略を示す図である。 設定機器600のハードウェア構成の一例を示す模式図である。 実施の形態3に係る制御システム1dの概略を示す図である。 中継装置700とコントローラ100dとの通信が開始してから、通信設定400がコントローラ100dに送られるまでの流れを示すシーケンス図である。 中継装置700のハードウェア構成の一例を示す模式図である。 実施の形態4に係る制御システム1eの概略を示す図である。 データセット50のデータ構造の一例を示す図である。 コネクション情報480を説明するための図である。 変形例における制御システム1fの概略を示す模式図である。
以下、図面を参照しつつ、本発明に従う各実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがって、これらについての詳細な説明は繰り返さない。以下で説明される各実施の形態および各変形例は、適宜選択的に組み合わせてもよい。
§1 適用例
図1は、FAシステム10aを中心とした制御システム1aの適用場面を示す模式図である。制御システム1aは、FAシステム10aに含まれる各装置間の通信環境の設定を支援する機能を提供する。
FAシステム10aは、コントローラ100aと、HMI(Human Machine Interface)200aとを含む。コントローラ100aは、情報系ネットワーク2aを介してHMI200aと通信可能に接続される。情報系ネットワーク2aは、たとえば、ベンダやOS(Operating System)の種類などに依存することなくデータ交換を実現することができる通信規格に従ったネットワークである。このような通信規格としては、たとえば、OPC UA(Object Linking and Embedding for Process Control Unified Architecture)などが知られている。
なお、情報系ネットワーク2aに採用される通信規格は、OPC−UAに限定されるわけではない。たとえば、情報系ネットワーク2aは、特定のベンダまたはOS特有の通信規格に従ったネットワークであってもよく、また、Ethernet(登録商標)上に制御用プロトコルを実装した産業用オープンネットワークであるEtherNet/IP(登録商標)に従ったネットワークであってもよい。
FAシステム10aは、複数のコントローラ100aを含む構成であってもよい。また、FAシステム10aは、複数のHMI200aを含む構成であってもよい。また、FAシステム10aは、1のコントローラ100aに対して1のHMI200aが通信可能に接続された構成でもよく、複数のコントローラ100aに対して1のHMI200aが通信可能に接続された構成でもよく、1のコントローラ100aに対して複数のHMI200aが通信可能に接続された構成でもよく、また、複数のコントローラ100aに対して複数のHMI200aが通信可能に接続された構成でもよい。図1に示す例では、FAシステム10aは、1のコントローラ100aに対して2つのHMI200aが通信可能に接続された構成である。
コントローラ100aは、本願発明の制御装置の一例であって、制御対象を制御するための制御プログラム120を実行し、FAシステム10aにおいて中心的な処理を実行する。図1に示す例において、コントローラ100aは、制御系ネットワーク4を介して、制御対象であるフィールドデバイス500と通信可能に接続される。制御系ネットワーク4には、データの到達時間が保証される、定周期通信を行うネットワークを採用することが好ましい。このような定周期通信を行うネットワークとしては、EtherCAT(登録商標)、EtherNet/IP(登録商標)、DeviceNet(登録商標)、CompoNet(登録商標)などが知られている。
フィールドデバイス500は、生産工程を自動化するための種々の産業用機器を含み、製造装置や生産ラインなど(以下、「フィールド」とも総称する。)に対して何らかの物理的な作用を与える装置と、フィールドとの間で情報を遣り取りする入出力装置とを含む。たとえば、フィールドデバイス500は、サーボモータを制御するサーボドライバ、ロボットを制御するロボットコントローラ、データを収集する装置であるセンサ、コンベヤを動かすアクチュエータ、または、リモートI/O(Input/Output)装置などを含む。
コントローラ100aは、制御プログラム120を実行することでフィールドデバイス500を制御する。また、コントローラ100aは、制御プログラム120の実行に伴って参照または更新される複数のプロセスデータ52を管理する。
プロセスデータ52は、フィールドデバイス500からコントローラ100aに入力されるデータと、コントローラ100aからフィールドデバイス500に出力されるデータと、制御プログラム120の実行またはコントローラ100aの状態管理に用いられるデータと含む。プロセスデータ52は、制御プログラム120の実行に伴って、周期的にまたはイベント的に更新される。
コントローラ100aは、予め定められた通信設定400に従って、複数のプロセスデータ52の少なくとも一部を格納した複数種類のデータセット50を送信する。複数種類のデータセット50の各々は、互いに、格納されるプロセスデータ52の組合せと、送信される契機と、送信先とのうちの少なくとも一の要素が異なる。
HMI200aは、本願発明の情報処理装置の一例であって、コントローラ100aが送信したデータセット50に含まれるプロセスデータ52を利用してアプリケーション220を実行する。図1に示す例では、HMI200aは、アプリケーション220を実行することで、制御プログラム120の実行によって得られる各種情報をオペレータへ提示する。
HMI200aは、コントローラ100aが送信したデータセット50をコントローラ100aから直接受信してもよく、中継装置など、別のデバイスを介して受信してもよい。
なお、コントローラ100aが管理するプロセスデータ52を利用してアプリケーション220を実行する情報処理装置は、HMI200aに限られない。たとえば、情報処理装置は、制御対象であるフィールドデバイス500から計測されたトレーサビリティに関する情報などを収集するデータベースや、プロセス制御と集中監視とを行うSCADA(Supervisory Control And Data Acquisition)装置などであってもよい。
また、情報処理装置は、コントローラ100aと情報系ネットワーク2aを介して接続された装置に限られるものではなく、制御系ネットワーク4を介して接続されたロボットを制御するロボットコントローラ、アクチュエータ、他のコントローラなどであってもよい。すなわち、アプリケーション220は、情報の提示を目的としたものに限定されるものではなく、コントローラ100aが管理するプロセスデータ52を利用する機能の実現を目的としたものであればよい。なお、以下では、アプリケーションは、情報の提示を目的としたものであって、表示部に画像を表示する機能を提供するプログラムとして説明する。
また、図1に示す例では、制御装置と情報処理装置とが互いに異なる装置であって、物理的に接続されているものとしたが、制御装置と情報処理装置とは互いに論理的に接続されていてもよい。
アプリケーション220の実行段階において、HMI200aは、コントローラ100aから配信されるデータセット50に格納されるプロセスデータ52を利用することで、アプリケーション220を実行する。すなわち、アプリケーション220は、コントローラ100aから当該アプリケーション220で利用されるプロセスデータ52が送信されることを前提として実行される。制御システム1aは、FAシステム10aに加えて、アプリケーション220の実行に必要なプロセスデータ52がコントローラ100aからHMI200aに向けて送信されるような通信設定を生成する機能を有する。
以下、アプリケーション220を開発してFAシステム10aに導入する段階であって、通信設定を生成する段階について説明する。制御システム1aは、コントローラ100aおよびHMI200aに加えて、グループ化手段20aと、生成手段40aとを備える。グループ化手段20aおよび生成手段40aの各々の機能は、典型的には、アプリケーション220の開発環境を提供するサポート装置のプロセッサが、通信環境の設定を支援するためのサポートプログラムを実行することで実現される機能である。
なお、グループ化手段20aおよび生成手段40aの各々の機能は、専用の設定機器によって実現されてもよい。また、HMI200aとコントローラ100aとの間に中継装置を設け、グループ化手段20aおよび生成手段40aの各々の機能を中継装置によって実現させてもよい。
図1において、通信設定を生成するタイミングは、アプリケーション220を実行する前の導入段階に行うものとして説明する。なお、通信設定を生成するタイミングは、アプリケーションの実行段階で行っても良い。たとえば、実行するアプリケーション220を切り替える度に、通信設定を生成または更新するようにしてもよい。
アプリケーション220は、インストール可能な形式でメモリカードやデータベースに格納された状態で流通されるものであってもよく、また、ユーザによって作成されるものであってもよい。
グループ化手段20aは、アプリケーション220において利用することが指定されているプロセスデータ52を1または複数のグループに割り当てる。たとえば、グループ化手段20aは、予め定められた要素を抽出し、抽出した要素に基づいてプロセスデータ52をグループ化する。予め定められた要素は、プロセスデータ52を管理するコントローラ100aの種類、コントローラ100aがプロセスデータ52を更新する周期、アプリケーション220がプロセスデータ52を利用する周期、プロセスデータ52のデータサイズなどを含む。また、グループ化手段20aは、ユーザによって任意に設定された条件を満たすように、アプリケーション220において利用することが指定されているプロセスデータ52を1または複数のグループに割り当ててもよい。
生成手段40aは、グループ化手段20aの割り当て結果に従って、複数のグループの各々について、一のグループに含まれる一または複数のプロセスデータ52が一のデータセット50に格納されて送信されるように通信設定400を生成する。
図1に示す例では、アプリケーション220は、プロセスデータ52B,プロセスデータ52D,プロセスデータ52Xを利用する。グループ化手段20aは、複数のプロセスデータ52について、たとえば、アプリケーション220において利用される周期毎にグループ化したものとする。図1に示す例では、アプリケーション220は、プロセスデータ52Bおよびプロセスデータ52Dを利用した情報を第1周期ごとに更新し、プロセスデータ52Xを利用した情報を第2周期ごとに更新するものとする。なお、図1において、一部、符号を省略している。
グループ化手段20aは、プロセスデータ52Bおよびプロセスデータ52DをグループGR1に、プロセスデータ52XをグループGR2に割り当てる。
生成手段40aは、プロセスデータ52Bおよびプロセスデータ52Dが一のデータセット50−1に格納され、プロセスデータ52Xが別のデータセット50−2に格納されるように通信設定400を生成する。通信設定400は、データセット50を送信する条件、データセット50にデータを格納する順序、データセット50に格納するデータの種類などを含む。
生成手段40aは、たとえば、通信設定400を、プロセスデータ52の属性、情報系ネットワーク2aに利用される通信プロトコル、コントローラ100aを中心としたFAシステム10aのネットワーク構成などの情報に従って決定する。プロセスデータ52の属性は、たとえば、制御プログラム120において参照または更新されるタイミング、データサイズなどを含む。
データセット50を送信する条件は、たとえば、コントローラ100aがプロセスデータ52を更新するタイミング、アプリケーション220がプロセスデータ52を利用するタイミングなどに従って規定される。たとえば、図1に示す例では、更新周期が第1周期の情報の生成に利用されるプロセスデータ52Bおよびプロセスデータ52Xは、第1周期毎に配信されるように通信設定が生成される。
以上のように、制御システム1aは、グループ化手段20aと、生成手段40aとを備えることで、アプリケーション220に基づいて、コントローラ100aの通信設定を生成する。その結果、アプリケーション220の実行に必要なプロセスデータ52がコントローラ100aからHMI200aに向けて送信されるような通信設定400を容易に行うことができる。
§2 構成例
以下、上記適用例に示した制御システムを実現する構成例について説明する。
[実施の形態1]
<制御システム1の全体構成>
図2は、実施の形態1に係る制御システム1の概略を示す図である。制御システム1は、サポート装置300と、コントローラ100と、HMI200とを含む。
実施の形態1において、コントローラ100とHMI200との間の通信方式は、OPC UAのパブリッシュ・サブスクライブ(Publish-Subscribe)型の通信方式であるとして説明する。なお、以下、OPC−UAのパブリッシュ・サブスクライブ型の通信方式が適用された通信をPubSub通信ともいう。PubSub通信の概要は、後述する。
コントローラ100は、1または複数のフィールドデバイス500を直接または間接的に制御する。コントローラ100が制御するフィールドデバイス500のネットワーク構成は、ユーザによって任意に設計される。
また、図2に示す例では、コントローラ100とHMI200とが1対1で接続されている構成を示している。コントローラ100とHMI200との接続方法は、これに限らず、コントローラ100とHMI200との間に別の装置が設けられていても良い。
コントローラ100とHMI200とを含むネットワークの構成およびコントローラ100とフィールドデバイス500とを含むネットワークの構成は、図2に示す例に限られず、ユーザが任意に設計可能である。たとえば、HMI200は、複数のコントローラと通信可能に接続されていてもよい。また、コントローラ100は、複数のHMI200と通信可能に接続されていてもよい。
サポート装置300は、HMI200が実行するアプリケーション220の開発環境、およびコントローラ100で実行される制御プログラム120の開発環境を提供するとともに、コントローラ100とHMI200との間の通信環境を設定するための環境を提供する。このような開発環境および設定環境は、サポート装置300に、サポートプログラムがインストールされることで提供される。サポートプログラムは、たとえば、オムロン社製の「Sysmac Studio」である。
ユーザは、サポートプログラムを利用して、コントローラ100用の制御プログラム120を設計し、設計した制御プログラム120をコントローラ100にインストールすることができる。また、ユーザは、サポートプログラムを利用して、HMI200用のアプリケーション220を設計し、設計したアプリケーション220をHMI200にインストールすることができる。また、サポート装置300は、サポートプログラムを実行することで、設計された制御プログラム120とアプリケーション220とから、アプリケーション220を実現するための通信設定400を生成して、生成した通信設定400をコントローラ100にインストールする。
なお、制御プログラム120を開発するためのプログラムと、アプリケーション220を開発するためのプログラムと、通信設定400を生成するためのプログラムとは、パッケージ化されて一つのプログラムで提供される必要はなく、別々に提供されてもよい。
また、通信設定400は、サポート装置300からコントローラ100に向けてインストール可能な形式で生成される必要はなく、たとえば、レポート形式で生成されてもよい。このようにすることで、ユーザは、サポート装置300から直接、通信設定400をインストールすることが出来ないコントローラの設定も容易に行うことができる。
<B.PubSub通信>
図3は、PubSub通信の概要を説明するための図である。以下の説明では、データを配信する側を「パブリッシャー」と称し、パブリッシャーが配信したデータを購読する側を「サブスクライバー」と称する。実施の形態1に係る制御システム1において、コントローラ100は、データを配信するパブリッシャーに相当する。一方、HMI200は、コントローラ100が配信したデータを購読するサブスクライバーに相当する。
パブリッシャーは、1または複数のデータを格納したデータセットを生成して配信する。パブリッシャーは、送信先を特定することなく、パブリッシャーおよびサブスクライバーを含むネットワークにデータセットをマルチキャストする。
サブスクライバーは、購読対象のデータを規定する1または複数のサブスクリプションを有する。サブスクライバーはサブスクリプションごとに購読を開始または停止する。たとえば、図3に示す例では、サブスクライバーは、サブスクリプションAの購読を開始した場合には、データa,データbの購読を開始する。一方、サブスクリプションBの購読を開始した場合には、データa,データeの購読を開始する。なお、異なるサブスクリプションに共通の購読対象が含まれていても良い。
サブスクライバーは、パブリッシャーが配信した複数種類のデータセットのうち、購読中のサブスクリプションに含まれるデータを含むデータセットを少なくとも受信する。たとえば、図3に示す例では、購読中のサブスクリプションを斜線で示している。サブスクライバーは、サブスクリプションBを購読中の場合、データaおよびデータbが格納されたデータセット1と、データeが格納されたデータセット3とを少なくとも受信する。なお、サブスクライバーは、図3に示す例では、データセット2を受信しないものとしているが、受信してもよい。また、サブスクライバーは、少なくとも購読対象のデータを読み取ることができればよく、図3に示す例のように、購読対象ではないデータを含むデータセット(データセット1)を受信してもよい。
なお、サブスクライバーがデータの購読の開始と停止とを管理する方法は、図3に示す方法に限られない。たとえば、データごとに管理してもよい。
図4および図5を参照して、HMI200とコントローラ100との間のPubSub通信の概要について説明する。図4は、サブスクライバーとして機能するHMI200の概要を説明するための図である。図5は、パブリッシャーとして機能するコントローラ100の概要を説明するための図である。
図4を参照して、HMI200は、表示部242と、複数のアプリケーション220(220−1,220−2…)と、OPC UAクライアント60とを備える。各アプリケーション220は、表示部242に特定のページを表示するためのプログラムである。図4には、表示部242にページ1を表示するためのアプリケーション1が実行されている例が示されている。
各ページは、複数のオブジェクト54を含む。たとえば、ページ1は、オブジェクト54a〜オブジェクト54dを含む。オブジェクト54の表示は、プログラムに含まれる変数の値に応じて更新される。たとえば、オブジェクト54aの表示は、変数1の値に応じて更新される。同様に、オブジェクト54bの表示は変数2の値に、オブジェクト54cの表示は変数3の値に、オブジェクト54dの表示は変数4の値に応じて更新される。
アプリケーション220は、マッピング情報222を参照することで、変数の値を更新する。マッピング情報222は、変数とプロセスデータとを紐づけた情報である。たとえば、変数1の値は、プロセスデータAの値に従って更新される。各プロセスデータの値が更新される周期は、アプリケーション220の作成に応じてユーザが設定してもよく、また、プロセスデータを管理するコントローラ100の更新周期に応じて決定されるものでもよい。図4に示す例では、プロセスデータA〜プロセスデータDの各々の値は、コントローラ100によって第1周期毎に更新され、プロセスデータX〜プロセスデータZの各々の値は、コントローラ100によって第2周期毎に更新されるものとする。
OPC UAクライアント60は、HMI200をサブスクライバーとして機能させる。OPC UAクライアント60は、購読管理手段62と複数のサブスクリプション64(サブスクリプション1〜サブスクリプションn)と、通信ドライバ66とを備える。
購読管理手段62は、実行中のアプリケーション220に応じてサブスクリプション64の購読開始と購読停止とを管理する。具体的には、購読管理手段62は、複数のサブスクリプション64のうち、実行中のアプリケーション220が参照するプロセスデータが購読対象となるように、購読するサブスクリプション64を決定する。なお、図4に示す例では、購読中のサブスクリプションを斜線で示す。
サブスクリプション64は、アプリケーション220およびマッピング情報222に従って予め生成される。一例として、サブスクリプション64は、アプリケーション220ごとに生成される。また、サブスクリプション64は、プロセスデータ52がコントローラ100において更新される周期毎に生成される。図4に示す例では、サブスクリプション64は、アプリケーション220の種類と、コントローラ100が更新する周期とに基づいて生成される。より具体的には、アプリケーション1において参照されるプロセスデータA、B,D,Xは、コントローラ100が更新する周期毎にサブスクリプション1とサブスクリプション2とに割り当てられている。
購読管理手段62が実行中のアプリケーション220に応じて購読の開始と停止とを管理することから、各アプリケーション220に応じてサブスクリプションが生成される。なお、一のサブスクリプション64に含まれる全てのプロセスデータが、一のアプリケーションに利用されるようにサブスクリプションを生成する必要はなく、一のサブスクリプションに互いに異なるアプリケーションで利用される複数のプロセスデータが含まれていても良い。
なお、購読管理手段62が、プロセスデータ52の購読の開始と停止とを管理できれば、サブスクリプション64による管理に限定されるものではない。
通信ドライバ66は、購読中のプロセスデータが格納されたデータセット50を受信するように、コントローラ100から送信されるデータセット50をフィルタリングする。HMI200は、通信ドライバ66が受信したデータセット50に含まれるプロセスデータを利用してマッピング情報222に含まれるプロセスデータを更新する。
図5を参照して、コントローラ100は、制御プログラム120と、制御系ネットワークインターフェイス(IF)191と、OPC UAサーバ80とを備える。
コントローラ100は、制御プログラム120を実行することで、フィールドデバイス500を制御する。たとえば、制御プログラム120は、制御系ネットワークIF191を介して入力されたフィールドデバイス500の状態値を利用してプロセスデータ52を更新し、更新したプロセスデータ52を参照して制御演算を実行する。制御プログラム120は、実行した制御演算の結果に応じてプロセスデータ52の値を更新し、制御系ネットワークIF191を介してフィールドデバイス500に向けて、更新したプロセスデータ52の値を制御値として出力する。
OPC UAサーバ80は、コントローラ100をパブリッシャーとして機能させる。OPC UAサーバ80は、データセット50を生成するデータセット生成手段82と、データセット50を送信する通信ドライバ84とを備える。
データセット生成手段82は、通信設定400を参照して、1または複数のプロセスデータ52を格納したデータセット50を生成する。データセット50は、プロセスデータ52の集合をいうこともあれば、情報系ネットワーク2上に出力することが可能な形式にしたものをいうこともある。
通信設定400は、データセット設定420と、生成条件440とを含む。データセット設定420は、一のデータセット50に格納されるプロセスデータ52を特定する情報である。なお、一のデータセット50には、1のプロセスデータ52だけが格納されるように規定されていてもよく、また、複数のプロセスデータ52が格納されるように規定されていてもよい。すなわち、「データセット」という用語は、データセット50に格納される1または複数のプロセスデータ52の組み合わせを意味する。
すなわち、コントローラ100は、データセット設定420に従ってデータセットを生成する。これにより、通信設定400が、特定の属性のプロセスデータを一のデータセットとするように規定するものである場合と比べて、コントローラ100の処理負担が軽減される。
生成条件440は、データセット50を生成する条件を既定する。図5に示す例では、一例として、第1周期ごとに、データセット1、データセット3、データセット7が生成されることが、第2周期ごとに、データセット2、データセット6、データセット9が生成されることが規定されている。
通信ドライバ84は、データセット生成手段82が生成したデータセット50を、情報系ネットワーク2上に配信する。
図4および図5を参照して、OPC UAサーバ80は、第1周期毎に、プロセスデータAおよびプロセスデータBを格納したデータセット1と、プロセスデータDを格納したデータセット3とを生成して送信する。OPC UAクライアント60は、アプリケーション1を実行中のときは、サブスクリプション1を購読中とし、データセット1と、データセット3とを読み取る。これにより、アプリケーション1は、変数1〜変数3を、変数1〜変数3に対応するプロセスデータA,プロセスデータB、プロセスデータDがコントローラ100で更新される周期で更新して、オブジェクト54a〜52cの表示を更新する。
また、OPC UAサーバ80は、第2周期毎に、プロセスデータXを格納したデータセット2を生成して送信する。OPC UAクライアント60は、アプリケーション1を実行中のときは、サブスクリプション1を購読中とし、データセット2を読み取る。これにより、アプリケーション1は、変数4を、変数4に対応するプロセスデータXがコントローラ100で更新される周期で更新して、オブジェクト54dの表示を更新する。
実行対象のアプリケーションが変わると、OPC UAクライアント60は、購読対象のサブスクリプション64を変更して、読み取る対象のデータセット50を変更する。なお、以下では、購読対象のサブスクリプション64を変更することを「サブスクリプション64を変更する」ともいい、サブスクリプション64を変更することで購読対象を変更することを「購読要求を変更する」ともいう。
このように、PubSub通信は、実行対象のアプリケーションが変わったとしても、パブリッシャー側の処理を変更する必要がない。そのため、PubSub通信は、コマンドアンドレスポンド方式の通信に比べて、データを送信する側と、受信する側との間で行う遣り取りの回数を減らすことができる。
一方で、OPC UAクライアント60は、実行対象のアプリケーション220の変更に応じて、サブスクリプション64を変更することで購読要求も変更する。コントローラ100とHMI200との間でPubSub通信を実現しようとする場合、コントローラ100(パブリッシャー)側は、アプリケーション220の変更に応じて変わる各購読要求を満たすように、データセット50を生成する必要がある。すなわち、ユーザは、サブスクライバーであるHMI200が実行する全てのアプリケーション220毎に特化した購読要求を満たすようにコントローラ100の通信設定400を設計する必要がある。
実施の形態1において、サポート装置300は、生成されたアプリケーション220に基づいて、アプリケーション220ごとに特化した購読要求を満たす通信設定400を生成する。これにより、ユーザの負担が軽減される。
<C.アプリケーションの開発から導入までの流れ>
図6は、アプリケーションの開発から、開発したアプリケーションを導入するまでの一連の流れの一例を示す図である。なお、図6においては、制御プログラムは予め設計されているものとして説明する。また、図6に示す各ステップは、サポート装置300が実行するものとする。図6を参照して、通信設定400が生成されるタイミングについて説明する。
(Step1:アプリケーションの生成)
「アプリケーションの生成」は、HMI200に表示する内容の設計と、設計内容を実現するためのアプリケーションの作成と、当該アプリケーションにおいて利用するプロセスデータの指定とを含む。アプリケーションを作成し、当該アプリケーションにおいて利用するプロセスデータを指定するまでの流れは、多種多様である。たとえば、アプリケーションの作成過程で利用するプロセスデータを指定してもよく、また、アプリケーションの全体を作成したあとに各変数に対してプロセスデータを指定するようにしてもよい。
サポート装置300は、制御プログラムにおいて参照または更新されるプロセスデータの種類を特定可能な情報をメモリに格納している。サポート装置300は、メモリに格納されているプロセスデータの種類を特定可能な情報をユーザに提示し、ユーザは提示されたプロセスデータの種類の中からアプリケーションに利用するプロセスデータを指定する。
プロセスデータの指定方法は、利用するプロセスデータを直接特定する方法と、アプリケーションに利用した変数にプロセスデータを紐付ける方法とを含む。実施の形態1においては、アプリケーションに利用した変数にプロセスデータを紐付けることで、アプリケーションに利用するプロセスデータが指定されるものとして説明する。これにより、アプリケーションごとに利用するプロセスデータが特定される。
アプリケーションの生成が完了すると、アプリケーションに利用される変数とプロセスデータとを紐付けたマッピング情報222も生成される。なお、サポート装置300は、アプリケーション毎にマッピング情報を生成してもよく、また、複数のアプリケーションに対して一のマッピング情報を生成してもよい。なお、実施の形態1においては、複数のアプリケーションに対して一のマッピング情報が生成されるものとして説明する。
また、アプリケーションの生成に伴い、サポート装置300は、サブスクリプション64を生成する。サブスクリプション64は、購読管理手段62が購読の開始、停止を管理しやすくするため、たとえば、アプリケーション220ごとに生成される。また、サブスクリプション64は、通信ドライバ66が参照しやすいように、たとえば、コントローラ100の更新周期ごとに生成される。
(Step2:グループ化)
サポート装置300は、アプリケーションで利用されるプロセスデータ52の各々を1または複数のグループに割り当てる。たとえば、サポート装置300は、複数のプロセスデータ52の各々から予め定められた要素を抽出し、抽出した要素に基づいてプロセスデータ52をグループ化する。
抽出する要素は、たとえば、プロセスデータ52が更新される周期、アプリケーションにおいてプロセスデータ52が更新される周期、プロセスデータ52が利用されるアプリケーションなどを含む。また、HMI200が複数のコントローラ100と通信可能に接続されている場合、プロセスデータ52を管理するコントローラ100を抽出する要素に含めてもよい。また、グループ化手段20aは、ユーザによって任意に設定された条件を満たすように、アプリケーション220において利用することが指定されているプロセスデータ52を1または複数のグループに割り当ててもよい。また、サポート装置300は、一のグループに含まれるプロセスデータのデータの総量が、情報系ネットワーク2の通信性能に従って決定される1回に送信可能なデータセット50のサイズを下回るまでグループの振り分けを繰り返すようにしてもよい。
抽出する要素に基づくグループ化は、たとえば、格納するプロセスデータ52の属性、コントローラ100を含むネットワークの構成、コントローラ100の送信性能、HMI200の受信性能、情報系ネットワーク2の通信性能などに応じて行われる。プロセスデータ52の属性は、たとえば、制御プログラム120において参照または更新されるタイミング、データサイズなどを含む。
(Step3:通信設定の生成)
サポート装置300は、プロセスデータ52の割り当て結果に従って、各グループに含まれる1または複数のプロセスデータ52が1のデータセット50に格納されるように通信設定400を生成する。通信設定400は、たとえば、HMI200とコントローラ100との間の通信プロトコル、またはコントローラ100を含むネットワークの構成に基づいて生成される。
(Step4:インストール)
サポート装置300は、Step1で生成されたアプリケーション220およびサブスクリプション64をHMI200に、Step3で生成された通信設定400をコントローラ100に各々インストールする。なお、通信設定400およびサブスクリプション64は、インストール可能な形式で生成される必要はなく、たとえば、レポート形式で出力されてもよい。
<C.機能構成>
図7は、サポート装置300が備える機能構成を示すブロック図である。サポート装置300は、入力部320と、表示部340と、開発手段360と、グループ化手段20と、生成手段40とを備える。
入力部320は、ユーザ操作を受け付ける。典型的には、入力部320は、タッチパネル、マウス、キーボードなどである。開発手段360は、入力部320が受け付けたユーザ操作に従ってアプリケーション220およびマッピング情報222を生成する。
具体的には、ユーザは、作成したいページ毎に、1または複数のオブジェクト54を登録する(図7中の(1)オブジェクト登録)。次に、ユーザは、1または複数のオブジェクト54毎に、オブジェクト54の表示を更新するための演算と、演算に利用する変数とを登録する(図7中の(2)変数登録)。最後に、ユーザは、登録した変数に対して、制御プログラム120から抽出可能なプロセスデータ52を紐付ける(図7中の(3)紐付け)。これにより、1または複数のアプリケーション220、マッピング情報222およびサブスクリプション64が生成される。なお、アプリケーションの作成手順は一例であって、この順序に限定されるものではない。たとえば、変数とプロセスデータとの紐付けがされた後、当該変数を利用してアプリケーションを生成するようにしてもよい。また、図7において、サブスクリプション64の作成手順については図示していない。
開発手段360は、入力部320が受け付けた情報に従ってアプリケーション220およびマッピング情報222を作成するとともに、表示部340を介してアプリケーションの作成に必要なユーザインターフェイスを提供する。
グループ化手段20は、第1グループ化手段22と、第2グループ化手段24とを含む。第1グループ化手段22は、マッピング情報222およびアプリケーション220に基づき、マッピング情報222に含まれるプロセスデータ52の各々をアプリケーション毎にグループ分けする。
図7に示す例では、プロセスデータA,B,D,Xに対応する変数は、アプリケーション1で利用されるものとする。また、プロセスデータB,Dに対応する変数は、アプリケーション2で利用されるものとする。すなわち、第1グループ化手段22は、プロセスデータA,B,D,XをグループGR1に割り当て、プロセスデータB,DをグループGR2に割り当てる。
第2グループ化手段24は、第1グループ化手段22によって割り当てられた各グループをさらに、コントローラ100内で更新される周期毎にグループ分けする。プロセスデータ52がコントローラ100内で更新される周期は、制御プログラム120によって定義される。
図7に示す例では、プロセスデータA,B,Dは、コントローラ100内で100ms毎に更新されるものとする。プロセスデータXは、イベントXの発生に伴って更新されるものとする。すなわち、第2グループ化手段24は、グループ1に割り当てられたプロセスデータA,B,D,Xについて、プロセスデータA,B,DをグルーブGR1−1に、プロセスデータXをグルーブGR1−2に割り当てる。なお、図7に示す例では、グルーブGR2に含まれる各プロセスデータ52のコントローラ100内での更新周期は共通しているものとする。
生成手段40は、データセット設定生成手段42と、生成条件生成手段44とを備える。データセット設定生成手段42は、データセット設定420(図5参照)を生成する。具体的には、データセット設定生成手段42は、グループ化手段20によってグループ化された各グループに含まれるプロセスデータ52が一のデータセット50に含まれるような、プロセスデータ52の組み合わせを規定する。
生成条件生成手段44は、生成条件440(図5参照)を生成する。具体的には、データセット設定生成手段42が決定したプロセスデータ52の組み合わせ(データセット)毎の送信条件を決定する。
図7に示す例では、プロセスデータA,B,Dは一のデータセット50に格納され、プロセスデータXが異なるデータセット50に格納されるようにデータセット設定420が生成される。
生成条件生成手段44は、データセット設定420において規定された各データセットの生成条件と送信条件とをデータセット設定420および、第2グループ化手段24の結果に基づいて決定する。
図7に示す例では、プロセスデータA,B,Dが格納されたデータセット50が100ms周期で送信され、プロセスデータXが格納されたデータセット50がイベント的に生成されて送信されることが決定される。
なお、グループ化手段20は、情報系ネットワーク2の性能として、MTU(Maximum Transmission Unit)が規定されている場合、一のグループに含まれるプロセスデータの合計がMTUを超えなくなるまで、グループの分割を繰り返すようにしてもよい。
また、生成手段40は、プロセスデータ52の属性に従って、プロセスデータ52を格納する順序を規定してもよい。格納する順序は、コントローラ100の性能や、コントローラ100のネットワーク構成などに従って、コントローラ100が格納し易い順序に規定される。
<D.ハードウェア構成>
図8〜図10を参照して、制御システム1に含まれる装置のハードウェア構成について順に説明する。図8は、サポート装置300のハードウェア構成の一例を示す模式図である。図9は、HMI200のハードウェア構成の一例を示す模式図である。図10は、コントローラ100のハードウェア構成の一例を示す模式図である。
(d1.サポート装置300のハードウェア構成)
サポート装置300は、一例として、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコン)を用いて実現される。サポート装置300は、据え置き型でもよいし、コントローラ100が配置される製造現場では可搬性に優れたノート型のパーソナルコンピュータの形態で提供されてもよい。図8を参照して、サポート装置300は、プロセッサ310と、入力部320と、表示部340と、揮発性メモリ350と、不揮発性メモリ370と、光学ドライブ392と、USB(Universal Serial Bus)コントローラ394とを含む。これらのコンポーネントは、プロセッサバス396を介して接続されている。
プロセッサ310は、CPU(Central Processing Unit)やGPU(Graphical Processing Unit)などで構成され、不揮発性メモリ370に格納されたプログラムを読出して、揮発性メモリ350に展開して実行することで、制御プログラム120およびアプリケーション220の作成、デバッグ、並びにコントローラ100とHMI200との間の通信環境を設定するための機能をユーザに提供する。
揮発性メモリ350は、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)などで構成される。不揮発性メモリ370は、例えば、HDD(Hard Disk Drive)やSSD(Solid State Drive)などで構成される。
不揮発性メモリ370は、基本的な機能を実現するためのOS(図示省略)に加えて、サポート装置300としての機能を提供するためのサポートプログラム372を格納する。サポートプログラム372は、制御プログラム120の開発環境を提供する制御プログラム用開発プログラム374と、アプリケーション220の開発環境を提供するアプリケーション用開発プログラム376と、コントローラ100とHMI200との間の通信環境を設定する環境を提供する通信設定プログラム378とを含む。
たとえば、プロセッサ310が、アプリケーション用開発プログラム376を実行することで、図7に示した開発手段360に係る機能が提供される。また、プロセッサ310が、通信設定プログラム378を実行することで、図7に示したグループ化手段20および生成手段40に係る機能が提供される。
なお、プロセッサ310がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASIC(Application Specific Integrated Circuit)またはFPGA(Field-Programmable Gate Array)など)を用いて実装してもよい。
入力部320および表示部340は、図7を参照して説明した通りである。
サポート装置300は、光学ドライブ392を有しており、コンピュータ読取可能なプログラムを非一過的に格納する記録媒体392A(例えば、DVD(Digital Versatile Disc)などの光学記録媒体)から、その中に格納されたプログラムが読取られて不揮発性メモリ370などにインストールされる。
サポート装置300で実行されるサポートプログラム372などは、コンピュータ読取可能な記録媒体392Aを介してインストールされてもよいが、ネットワーク上のサーバ装置などからダウンロードする形でインストールするようにしてもよい。また、本実施の形態に係るサポート装置300が提供する機能は、OSが提供するモジュールの一部を利用する形で実現される場合もある。
USBコントローラ394は、USB接続を介して、任意の情報処理装置との間のデータの遣り取りを担当する。具体的には、USBコントローラ394は、コントローラ100またはHMI200とのデータの遣り取りを担当する。
(d2.HMI200のハードウェア構成)
HMI200は、一例として、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコン)を用いて実現される。HMI200は、据え置き型でもよいし、コントローラ100が配置される製造現場では可搬性に優れたノート型のパーソナルコンピュータの形態で提供されてもよい。図9を参照して、HMI200は、プロセッサ210と、タッチパネル240と、揮発性メモリ250と、不揮発性メモリ270と、通信IF292と、USBコントローラ294とを備える。これらのコンポーネントは、プロセッサバス296を介して接続されている。
プロセッサ210は、CPUやGPUなどで構成され、不揮発性メモリ270に格納されたプログラムを読み出して、揮発性メモリ250に展開して実行することで、制御プログラム120の実行によって得られる各種情報をタッチパネル240に出力する。
揮発性メモリ250は、DRAMやSRAMなどで構成される。不揮発性メモリ270は、たとえば、HDDやSSDなどで構成される。
不揮発性メモリ270は、基本的な機能を実現するためのOS(図示省略)に加えて、OPC UAプログラム260と、1または複数のサブスクリプション64と、1または複数のアプリケーション220と、マッピング情報222とを格納する。
OPC UAプログラム260は、HMI200をサブスクライバーとして機能させるためのプログラムであって、コントローラ100とHMI200との間で、OPC UAに従った通信を行うためのプログラムである。プロセッサ210がOPC UAプログラム260を実行することで、図4に示したOPC UAクライアント60に係る機能が提供される。OPC UAプログラム260は、たとえば、他の外部記憶媒体(たとえばメモリカード、ネットワーク上のサーバ装置)から、不揮発性メモリ270にインストールされる。
1または複数のサブスクリプション64と、1または複数のアプリケーション220と、マッピング情報222とは、各々、サポート装置300が提供する環境下で作成される。サポート装置300が提供する環境下で作成された各データは、典型的には、USB接続を介して、不揮発性メモリ270にインストールされる。なお、サポート装置300が提供する環境下で作成された各データの全部または一部は、他の外部記憶媒体(たとえばメモリカード、ネットワーク上のサーバ装置)を介して、不揮発性メモリ270にインストールされてもよい。
なお、プロセッサ210がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASICまたはFPGAなど)を用いて実装してもよい。また、HMI200が提供する機能は、OSが提供するモジュールの一部を利用する形で実現される場合もある。
タッチパネル240は、ディスプレイである表示部242と、遊技者の操作を受け付ける入力部244とを備える。なお、表示部242と入力部244とが別体で構成されていてもよい。
通信IF292は、コントローラ100とのデータの遣り取りを担当する。USBコントローラ294は、USB接続を介して、任意の情報処理装置との間のデータの遣り取りを担当する。具体的には、USBコントローラ294は、サポート装置300との間でデータを遣り取りする。
(b3.コントローラ100のハードウェア構成)
図10を参照して、コントローラ100は、主たるコンポーネントとして、プロセッサ110と、チップセット196と、不揮発性メモリ170と、揮発性メモリ150と、制御系ネットワークIF191と、情報系ネットワークIF192と、USBコントローラ193と、メモリカードIF194と、内部バスコントローラ195とを含む。
プロセッサ110は、CPUやGPUなどで構成され、不揮発性メモリ170に格納された各種プログラムを読み出して、揮発性メモリ150に展開して実行することで、フィールドデバイス500の制御および、パブリッシャーとしての機能を実現する。チップセット196は、プロセッサ110と各コンポーネントとの間のデータの遣り取りを仲介することで、コントローラ100全体としての処理を実現する。
不揮発性メモリ170には、制御プログラム120と、OPC UAプログラム180と、通信設定400とが格納される。
制御プログラム120は、典型的には、ユーザがサポート装置300を操作して設計することで生成されるユーザプログラムと、コントローラ100の基本的な機能を提供するシステムプログラムとから構成される。ユーザプログラムとシステムプログラムとが協働してユーザにおける制御目的を実現することで、フィールドデバイス500が制御される。
OPC UAプログラム180は、コントローラ100をパブリッシャーとして機能させるためのプログラムであって、コントローラ100とHMI200との間で、OPC UAに従った通信を行うためのプログラムである。プロセッサ110が、OPC UAプログラム180を実行することで、図5に示したOPC UAサーバ80に係る機能が提供される。OPC UAプログラム180は、たとえば、システムプログラムの一種として予めコントローラ100にインストールされていてもよく、また、他の外部記憶媒体(たとえばメモリカード194A、ネットワーク上のサーバ装置)から、不揮発性メモリ170にインストールされてもよい。
通信設定400は、サポート装置300が提供する環境下で生成される。通信設定400および、ユーザがサポート装置300を操作して設計することで生成された制御プログラム120は、典型的には、USB接続を介して、不揮発性メモリ170にインストールされる。なお、サポート装置300が提供する環境下で作成された各データの全部または一部は、他の外部記憶媒体(たとえばメモリカード194A、ネットワーク上のサーバ装置)を介して、不揮発性メモリ170にインストールされてもよい。
なお、プロセッサ110がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASICまたはFPGAなど)を用いて実装してもよい。また、コントローラ100の主要部を、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコンをベースとした産業用パソコン)を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のOSを並列的に実行させるとともに、各OS上で必要なアプリケーションを実行させるようにしてもよい。
制御系ネットワークIF191は、フィールドデバイス500との間のデータの遣り取りを担当する。
情報系ネットワークIF192は、HMI200との間のデータの遣り取りを担当する。
USBコントローラ193は、USB接続を介して任意の情報処理装置との間のデータの遣り取りを担当する。具体的には、USBコントローラ146は、サポート装置300との間のデータの遣り取りを担当する。
メモリカードIF194は、メモリカード194Aを着脱可能に構成されており、メモリカード194Aに対して制御プログラムや各種設定などのデータを書込み、あるいは、メモリカード194Aから制御プログラムや各種設定などのデータを読出すことが可能になっている。
内部バスコントローラ195は、コントローラ100に搭載される図示しないI/Oユニットなどとの間でデータを遣り取りするインターフェイスである。内部バスには、メーカ固有の通信プロトコルを用いてもよいし、いずれかの産業用ネットワークプロトコルと同一あるいは準拠した通信プロトコルを用いてもよい。
<E.グループ化の変形例>
実施の形態1において、HMI200は、一のコントローラ100と通信可能に接続されているものとした。また、1または複数のアプリケーション220に利用されるプロセスデータ52は、一のコントローラ100から送信されるものとした。その上で、グループ化手段20は、第1グループ化手段22と、第2グループ化手段24とを備えるものとして説明した。
なお、HMI200は、複数のコントローラ100と通信可能に接続されてもよい。この場合、1または複数のアプリケーション220は、互いに異なるコントローラ100から送信される複数のプロセスデータ52を利用するように構成されてもよい。また、この場合、グループ化手段20は、図7を参照して説明したグループ化の方法とは異なる方法でグループ化してもよい。
図11を参照して、アプリケーション220が、互いに異なるコントローラ100から送信される複数のプロセスデータ52を利用するように構成されている場合のアプリケーションの実行段階について説明する。図11は、変形例に係るアプリケーションの実行段階を説明するための図である。なお、図4を参照して説明した、実施の形態1にかかるHMI200が備える構成に相当する構成については、図4と共通の符号を付し、説明を省略する。
HMI200bは、複数のコントローラ100−1,100−2,100−3と通信可能に接続されている。HMI200bは、OPC UAクライアント60bを備える。OPC UAクライアント60bは、接続されたコントローラ100−1,100−2,100−3ごとに通信ドライバ66b−1、66b−2,66b−3を備える。
各サブスクリプション64bは、各サブスクリプション64bに含まれる購読対象のプロセスデータ52が互いに共通のコントローラ100が管理するように設定される。具体的には、サブスクリプション1に含まれるプロセスデータa,b,cは、いずれも、コントローラ100−1によって管理されるプロセスデータ52である。また、サブスクリプション2に含まれるプロセスデータl,m,nは、いずれも、コントローラ100−2によって管理されるプロセスデータ52である。また、サブスクリプション3に含まれるプロセスデータx,y,zは、いずれも、コントローラ100−3によって管理されるプロセスデータ52である。
アプリケーション1の実行に、プロセスデータa,b,cが利用される場合は、サブスクリプション1が購読対象となる。この場合、コントローラ100−1から送られるデータセット50のみが購読対象となり、コントローラ100−2、コントローラ100−3から送られるデータセット50は、購読対象とはならない。
図12を参照して、アプリケーション220が、互いに異なるコントローラ100から送信される複数のプロセスデータ52を利用するように構成されている場合の通信設定の生成方法について説明する。図12は、変形例に係るグループ化手段20bおよび生成手段40bの概略図である。なお、図7を参照して説明した、実施の形態1にかかるHMI200が備える構成に相当する構成については、図7と共通の符号を付し、説明を省略する。
グループ化手段20bは、第1グループ化手段22と第2グループ化手段24に加えて第3グループ化手段26を備える。グループ化手段20bは、第3グループ化手段26、第1グループ化手段22、第2グループ化手段24の順にグループ化を進める。
第3グループ化手段26は、アプリケーションで利用されるプロセスデータ52の各々についてプロセスデータ52を管理するコントローラ100毎にグループ分けする。図12に示す例では、プロセスデータa,b,cは、コントローラ100−1が管理するプロセスデータであり、プロセスデータl,m,nは、コントローラ100−2が管理するプロセスデータであり、プロセスデータx,y,zは、コントローラ100−3が管理するプロセスデータである。そのため、第3グループ化手段26は、プロセスデータa,b,cをグループGR1に割り当て、プロセスデータl,m,nをグループGR2に、プロセスデータx,y,zをグループGR3割り当てる。なお、プロセスデータ52を管理するコントローラ100は、各コントローラ100−1,100−2,100−3で実行される制御プログラム120から特定される。
その後、第1グループ化手段22は、第3グループ化手段26によって割り当てられた各グループをさらに、アプリケーション毎にグループ分けする。なお、第1グループ化手段22および第2グループ化手段24の実行内容は、図7と共通するため、説明を省略する。
生成手段40bは、コントローラ100−1,100−2,100−3ごとに通信設定400を生成する。コントローラ100−1の通信設定400−1は、第3グループ化手段26によってグループ化されたグループGR1から派生した各グループに含まれるプロセスデータ52が一のデータセット50に格納されるように生成される。同様に、コントローラ100−2の通信設定400−2は、第3グループ化手段26によってグループ化されたグループGR2から派生した各グループに含まれるプロセスデータ52が一のデータセット50に格納されるように生成される。コントローラ100−3の通信設定400−3は、第3グループ化手段26によってグループ化されたグループGR3から派生した各グループに含まれるプロセスデータ52が一のデータセット50に格納されるように生成される。
このように、アプリケーションに含まれる複数のプロセスデータ52の各々について、管理するコントローラ100が異なる場合は、コントローラごとに通信設定400を生成する必要がある。本変形例のように、複数のプロセスデータ52の各々について、当該プロセスデータ52を管理するコントローラ100ごとにグループ分けした上で、各グループについて通信設定400を生成することで、少ない処理で、複数のコントローラの各々についての通信設定を生成することができる。
また、実施の形態1および当該変形例にかかる制御システムは、アプリケーション220の実行に必要なプロセスデータ52がコントローラからHMIに向けて送信されるような通信設定400を容易に行うことができる。
また、実施の形態1および当該変形例において、サポート装置300は、アプリケーションの開発と通信設定とを一括で行うことができる。また、実施の形態1および当該変形例において、サポート装置300は、アプリケーションの開発環境と通信の設定環境とだけでなく、制御プログラムの開発環境も提供する。そのため、アプリケーションと制御プログラムとの関係性を考慮した通信設定の実現を容易にできる。
[実施の形態2]
実施の形態1において、通信設定400を生成するための環境は、アプリケーション220を生成するための環境と同じ、サポート装置300によって実現されるものとした。なお、通信設定400を生成するための環境は、アプリケーション220を生成するための環境とは別に設けても良い。具体的には、通信設定400を生成するための環境は、通信設定400を生成するための専用の設定機器によって実現されてもよい。
<A.制御システムの構成>
図13は、実施の形態2に係る制御システム1cの概略を示す図である。図13を参照して、実施の形態2において、制御システム1cは、コントローラ100と、HMI200と、設定機器600とを含む。実施の形態1に係る制御システム1と、実施の形態2の制御システム1cとを比較すると、制御システム1cは、サポート装置300に代えて設定機器600を備える点で制御システム1と異なる。なお、HMI200には、既にアプリケーション220およびサブスクリプション64がインストールされているものとする。また、コントローラ100には、既に制御プログラム120がインストールされているものとする。
設定機器600は、USB接続などを介してHMI200と通信可能に接続される。設定機器600は、HMI200にインストールされているサブスクリプション64をエクスポートする。設定機器600は、サブスクリプション64に基づいて、通信設定400を生成する。
設定機器600は、USB接続などを介してコントローラ100と通信可能に接続される。設定機器600は、サブスクリプション64に基づいて生成した通信設定400をコントローラ100に送信する。
これにより、コントローラ100とHMI200との間のPubSub通信が確立される。
より具体的には、設定機器600は、グループ化手段20cと、生成手段40cとを備える。グループ化手段20cは、HMI200からインストールした各サブスクリプション64から購読対象に規定されているプロセスデータ52を抽出する。抽出したプロセスデータ52をサブスクリプション64ごとにグループ分けする。なお、一のサブスクリプション64で規定される複数のプロセスデータ52は、少なくとも、互いに管理されるコントローラ100が共通しているものとする。
なお、グループ化手段20cは、サブスクリプション64ごとにグループ分けしなくともよく、上記実施の形態1および、実施の形態1の変形例に示した方法でグループ分けしてもよい。
生成手段40cは、グループ化手段20cの割り振り結果に従って通信設定400を生成する。なお、生成手段40cが通信設定400を生成する方法は、上記実施の形態1と共通するため、説明を省略する。生成手段40cは、生成した通信設定400を対応するコントローラ100に送信する。
<B.設定機器のハードウェア構成>
図14は、設定機器600のハードウェア構成の一例を示す模式図である。設定機器600は、一例として、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコン)を用いて実現される。設定機器600は、据え置き型でもよいし、コントローラ100が配置される製造現場では可搬性に優れたノート型のパーソナルコンピュータの形態で提供されてもよい。
図14を参照して、設定機器600は、プロセッサ610と、入力部620と、表示部640と、揮発性メモリ650と、不揮発性メモリ670と、USBコントローラ694とを含む。これらのコンポーネントは、プロセッサバス696を介して接続されている。
プロセッサ610は、CPUやGPUなどで構成され、不揮発性メモリ670に格納されたプログラムを読出して、揮発性メモリ650に展開して実行することで、コントローラ100とHMI200との間の通信環境を設定するための機能をユーザに提供する。
揮発性メモリ650は、DRAMやSRAMなどで構成される。不揮発性メモリ670は、例えば、HDDやSSDなどで構成される。
不揮発性メモリ670は、基本的な機能を実現するためのOSに加えて、コントローラ100とHMI200との間の通信環境を設定する環境を提供する通信設定プログラム678を格納する。
たとえば、プロセッサ610が、通信設定プログラム678を実行することで、上述した機能が提供される。なお、プロセッサ610がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASICまたはFPGAなど)を用いて実装してもよい。
入力部620は、ユーザ操作を受け付ける。典型的には、入力部320は、タッチパネル、マウス、キーボードなどである。表示部640は、ユーザに情報を提示する。典型的には、表示部640は、ディスプレイである。
通信設定プログラム678などは、コンピュータ読取可能な記録媒体を介してインストールされてもよいが、ネットワーク上のサーバ装置などからダウンロードする形でインストールするようにしてもよい。また、本実施の形態に係る設定機器600が提供する機能は、OSが提供するモジュールの一部を利用する形で実現される場合もある。
USBコントローラ694は、USB接続を介して、任意の情報処理装置との間のデータの遣り取りを担当する。具体的には、USBコントローラ694は、コントローラ100またはHMI200とのデータの遣り取りを担当する。
<C.制御システム1cの変形例>
実施の形態2に係る制御システム1cは、サブスクリプション64が既にHMI200にインストールされているものとして説明した。なお、設定機器600は、サブスクリプション64を生成する機能を有していても良い。すなわち、設定機器600は、HMI200からアプリケーション220およびマッピング情報222をエクスポートして、これらの情報に基づいてサブスクリプション64と通信設定400とを生成し、各々をHMI200とコントローラ100とにインストールするようにしてもよい。なお、設定機器600は、アプリケーション220およびマッピング情報222から、通信設定400を生成する機能のみを有していても良い。
このように、実施の形態2および当該変形例においては、設定機器600によって、HMI200とコントローラ100との間の通信環境の支援機能が提供される。この場合も、実施の形態1と同様、アプリケーション220の実行に必要なプロセスデータ52がコントローラからHMIに向けて送信されるような通信設定400を容易に行うことができる。
また、設定機器600によって、HMI200とコントローラ100との間の通信環境の支援機能が提供されることで、既にアプリケーションの開発環境および制御プログラムの開発環境がある現場に、容易に導入することができる。
[実施の形態3]
実施の形態1および実施の形態2においては、HMI200とコントローラ100との通信を開始する前に、通信設定400を生成するものとした。なお、通信設定400は、HMI200とコントローラ100との通信を開始した後、サブスクライバーであるHMI200から購読要求がされるときに設定されるものであってもよい。実施の形態3は、HMI200から購読要求がされるときに通信設定400が設定される例を示す。
<A.制御システム1dの構成>
図15は、実施の形態3に係る制御システム1dの概略を示す図である。図15を参照して、制御システム1dは、コントローラ100dと、HMI200と、中継装置700とを備える。実施の形態1に係る制御システム1と、実施の形態3の制御システム1dとを比較すると、制御システム1dは、コントローラ100に代えてコントローラ100dを備える点、および、サポート装置300に代えて中継装置700を備える点で制御システム1と異なる。なお、HMI200には、既にアプリケーション220およびサブスクリプション64がインストールされているものとする。また、コントローラ100dには、既に制御プログラム120がインストールされているものとする。
中継装置700は、グループ化手段20dと、生成手段40dとに加えて、送受信管理手段70およびプロセスデータ管理手段72を備える。
送受信管理手段70は、HMI200からの購読要求を受けて、要求を満たすように、コントローラ100dから配信されるデータセット50をHMI200に送信する。具体的には、送受信管理手段70は、HMI200のサブスクリプション64とコントローラ100dから配信されるデータセット50とを対応付けたトピックリスト74を参照することで、コントローラ100dから配信される複数種類のデータセット50の中から、購読要求を満たすデータセット50を選択してHMI200に送信する。
送受信管理手段70は、トピックリスト74を参照して、HMI200からの購読要求を満たすことができないと判定した場合、グループ化手段20dおよび生成手段40dに対して、HMI200の購読要求を満たすデータセット50をコントローラ100dから配信されるように通信設定400を生成するための処理の実行を要求する。
グループ化手段20dは、プロセスデータ52と、プロセスデータ52を配信するコントローラ100dとの対応関係を規定するプロセスデータリスト76を参照して、HMI200からのサブスクリプション64に含まれる1または複数のプロセスデータ52を1または複数のグループに割り振る。なお、実施の形態3においては、HMI200と通信可能に接続されているコントローラ100dは1つである例を示しているが、HMI200と通信可能に複数のコントローラが接続されている場合、グループ化手段20dは、少なくとも、プロセスデータ52をコントローラごとに振り分ける。
プロセスデータリスト76は、プロセスデータ管理手段72によって管理される。プロセスデータ管理手段72は、中継装置700とコントローラ100dとの通信が確立すると、コントローラ100dに対して、管理しているプロセスデータ52を示す情報の送信を要求する。プロセスデータ管理手段72は、プロセスデータ52を示す情報(図15中のプロセスデータ情報)を受けて、コントローラ100dとコントローラ100dが管理するプロセスデータ52との対応関係が、プロセスデータリスト76に登録されているか否かを確認し、登録されていなければ、コントローラ100dとコントローラ100dが管理するプロセスデータ52との対応関係をプロセスデータリスト76に登録する。
グループ化手段20dは、たとえば、一のグループに含まれるプロセスデータの合計がコントローラ100dの通信性能を超えない範囲となるようにサブスクリプション64に含まれる1または複数のプロセスデータ52を1または複数のグループに割り振る。
生成手段40dは、振り分け結果に従い一のデータセット50に格納するプロセスデータ52の組み合わせを規定する。生成手段40dは、コントローラ100dに向けて、規定したプロセスデータ52の組み合わせを一のデータセット50に格納して送信するようにコントローラ100dに要求する。
また、生成手段40dは、送受信管理手段70に規定した結果を通知する。送受信管理手段70は、HMI200のサブスクリプション64に対して生成手段40dが規定した結果を対応付けてトピックリスト74に登録する。
中継装置700は、新たな購読要求がされる度に、データセット50を新たに規定する。コントローラ100dは、新たに規定されたデータセット50を送信するように通信設定400を更新する。また、中継装置700は、データセット50を新たに規定すると、トピックリスト74を更新する。また、中継装置700は、新たにコントローラが接続されると、プロセスデータリスト76を更新する。
<B.シーケンス>
図16は、中継装置700とコントローラ100dとの通信が開始してから、通信設定400がコントローラ100dに送られるまでの流れを示すシーケンス図である。なお、以下では「ステップ」を単に「S」と示す。
S120において、中継装置700とコントローラ100dとがネットワーク接続されたものとする。
S122において、中継装置700は、コントローラ100に向けてプロセスデータ52の登録を要求する。
S124において、コントローラ100dは、要求を受けて、プロセスデータ52を登録する。
S126において、中継装置700は、プロセスデータリスト76を更新する。
中継装置700は、HMI200から購読要求がされると(S128)、HMI200にデータセットを送信するための処理(S150)を開始する。
S152において、中継装置700は、サブスクリプション64に含まれるプロセスデータ52を、プロセスデータリスト76に従って、1または複数のグループに割り振る。
たとえば、サブスクリプション64に含まれるプロセスデータ52は、コントローラ100dで更新される周期ごとに割り振られる。また、サブスクリプション64に含まれるプロセスデータ52は、一のグループに含まれるプロセスデータの合計がコントローラ100dの通信性能を超えない範囲となるように割り振られる。
S154において、中継装置700は、振り分け結果に従い一のデータセット50に格納するプロセスデータ52の組み合わせを規定する。
S156において、中継装置700は、トピックリスト74を更新する。S158において、S154において生成したデータセットを送信するようにコントローラ100に要求する。このデータセットの送信要求が通信設定400に相当する。
コントローラ100dは、要求に応じて通信設定400を更新する(S160)。コントローラ100は、更新した通信設定400に従ってデータセットを生成して送信する(S162,S164)。
S166において、中継装置700は、送られたデータセット50を送信するHMI200をトピックリスト74に従って特定する。S168において、中継装置700は、特定した送信先(HMI200)にデータセットを送信する。
その後、HMI200から購読要求の停止がされると(S170)、中継装置700は、トピックリスト74を更新して(S172)、コントローラ100dから送られるデータセットのHMI200への送信を停止する。これにより、中継装置700の一の購読要求に対してデータセットを送信する処理(S150)が終了する。
なお、コントローラ100dは、HMI200から購読要求の停止がされても、継続してプロセスデータを送信し続けるものとする。
なお、中継装置700は、購読要求がされる度にトピックリスト74を参照して、サブスクリプション64により規定される購読対象のプロセスデータ52が配信されているか否かを判定する。たとえば、トピックリスト74には、サブスクリプション64ごとに、サブスクリプション64が規定する購読要求を満たすためのデータセットの組み合わせが規定されている。中継装置700は、トピックリスト74を参照して、購読要求がされたサブスクリプション64がトピックリスト74に登録されているか否かを判定する。
トピックリスト74に購読要求がされたサブスクリプション64が登録されている場合、中継装置700は、購読要求をしたHMI200に向けて、購読要求がされたサブスクリプション64が規定する購読要求を満たすための1または複数種類のデータセットを送信するように、トピックリスト74を更新する。
トピックリスト74に購読要求がされたサブスクリプション64が登録されていない場合、中継装置700は、トピックリスト74に登録されているデータセットのうち、購読要求がされたサブスクリプション64により規定される購読対象のプロセスデータ52を含むデータセットを特定する。そして、中継装置700は、特定したデータセットに含まれるプロセスデータ52をサブスクリプション64から除外して、グループ化およびデータセットの規定をし、規定したデータセット50の生成および送信をコントローラ100dに要求するとともに、トピックリスト74を更新する。
具体的には、トピックリスト74にプロセスデータa,bから構成されたデータセット1と、プロセスデータa,fから構成されたデータセット2とが、既に登録されているものとする。この場合に、新たに要求されたサブスクリプション64に含まれるプロセスデータがプロセスデータa,b,c,dであったとする。このとき、中継装置700は、要求されたサブスクリプション64とデータセット1とを対応付けてトピックリスト74に登録する。また、プロセスデータc、dを、グループ化およびデータセットの生成の対象とする。たとえば、プロセスデータc、dを一のデータセット3として生成することが決定された場合、中継装置700は、要求されたサブスクリプション64とデータセット3とを対応付けてトピックリスト74に登録する。
これにより、要求されたサブスクリプション64に対して、データセット1およびデータセット3が対応付けられてトピックリスト74に登録されたこととなる。中継装置700は、トピックリスト74を参照して、サブスクリプション64を要求したHMI200に向けてデータセット1およびデータセット3を配信する。
すなわち、中継装置700は、新たにサブスクリプション64が要求される度に、トピックリスト74を更新することで、要求を満たすようにデータセットをHMI200に向けて配信することができる。
<C.中継装置のハードウェア構成>
図17は、中継装置700のハードウェア構成の一例を示す模式図である。図17を参照して、中継装置700は、プロセッサ710と、揮発性メモリ750と、不揮発性メモリ770と、通信IF792とを含む。これらのコンポーネントは、プロセッサバス696を介して接続されている。
プロセッサ710は、CPUやGPUなどで構成され、不揮発性メモリ770に格納されたプログラムを読出して、揮発性メモリ750に展開して実行することで、コントローラ100とHMI200との間の通信を中継する機能を提供する。
揮発性メモリ750は、DRAMやSRAMなどで構成される。不揮発性メモリ770は、例えば、HDDやSSDなどで構成される。
不揮発性メモリ770は、基本的な機能を実現するためのOSに加えて、コントローラ100とHMI200との間の通信環境を設定する環境を提供する通信設定プログラム778と、コントローラ100とHMI200との間の通信を中継するための各種リストを管理してPubSub通信を実現するPubSubプログラム772と、トピックリスト74と、プロセスデータリスト76とを含む。
たとえば、プロセッサ610が、通信設定プログラム778を実行することで、図15に示すグループ化手段20dおよび生成手段40dの機能が提供される。また、プロセッサ610が、PubSubプログラム772を実行することで、図15に示す送受信管理手段70およびプロセスデータ管理手段72の機能が提供される。なお、プロセッサ610がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASICまたはFPGAなど)を用いて実装してもよい。
不揮発性メモリ770に格納された各種プログラムは、コンピュータ読取可能な記録媒体を介してインストールされてもよいが、ネットワーク上のサーバ装置などからダウンロードする形でインストールするようにしてもよい。また、本実施の形態に係る中継装置700が提供する機能は、OSが提供するモジュールの一部を利用する形で実現される場合もある。
通信IF792は、コントローラ100dとのデータの遣り取り、および、HMI200とのデータの遣り取りを担当する。
<D.変形例>
なお、実施の形態3において、サブスクリプション64が予めHMI200にインストールされている例を示した。なお、HMI200は、実行対象のアプリケーション220に利用するプロセスデータ52を特定できればよく、サブスクリプション64による管理に限定されるものではない。
また、実施の形態3において、中継装置700を介してHMI200とコントローラ100dとは1対1で接続されている例を示したが、中継装置700を介して、複数のHMI200と、複数のコントローラ100dとが通信可能に接続されていてもよい。
また、中継装置700が、コントローラ100dが送信したデータセット50を中継してHMI200に送信する例を示したが、中継装置700が、コントローラ100dから送信されたデータセット50に含まれるプロセスデータ52を抽出し、再度新たなデータセットを生成してHMI200に送信する構成であってもよい。この場合、中継装置700は、中継装置700からHMI200に向けて送信するデータセットに含まれるプロセスデータ52を特定可能な情報を予めHMI200に向けて通知したり、あるいは、データセットのヘッダに書き込んだりする。
このように、実施の形態3および当該変形例においては、中継装置700によって、HMI200とコントローラ100dとの間の通信環境の支援機能が提供される。この場合も、実施の形態1と同様、アプリケーション220の実行に必要なプロセスデータ52がコントローラからHMIに向けて送信されるような通信設定400を容易に行うことができる。
また、中継装置700によって、HMI200とコントローラ100dとの間の通信環境の支援機能が提供されることで、コントローラ100dに予め通信設定400をインストールすることなくHMI200とコントローラ100dとの間のデータの遣り取りを実現することができる。また、HMI200とコントローラ100dから構成されたネットワーク内に新たなHMIまたはコントローラが加入したり、または離脱したりした場合であっても、既存のHMIとコントローラとの間の通信を止めることなく、このような加入、離脱に対応した通信設定を行うことができる。
[実施の形態4]
上記実施の形態1〜3において、情報系ネットワーク2は、OPC UAに従ったネットワークであるとした。なお、情報系ネットワーク2が、EtherNET/IP(登録商標)に従ったネットワークであったとしても、HMIとコントローラとの間のデータリンクが必要である。データリンクを設定することをコネクションを貼るともいう。実施の形態4においては、情報系ネットワーク2の変わりにEtherNET/IP(登録商標)に従ったネットワークを利用した場合の通信設定について説明する。
<A.制御システム1eの構成>
図18は、実施の形態4に係る制御システム1eの概略を示す図である。図18を参照して、制御システム1eは、コントローラ100eと、複数のHMI200e−1,200e−3,200e−3(以下、総じてHMI200eとも称する)と、設定機器600eとを含む。
コントローラ100eと、複数のHMI200eとは、EtherNET/IPに従った情報系ネットワーク2eによって、互いに通信可能に接続されている。
なお、図18に示す例では、設定機器600eを介して、HMI200e−3と、コントローラ100eとの間のデータリンクの設定が行われて、コネクション3が貼られる様子を示している。
設定機器600eは、グループ化手段20eと、生成手段40eとを備える。設定機器600eは、HMI200e−3の備えるアプリケーション220を参照して、アプリケーション220において利用される複数のプロセスデータ52を特定する。
グループ化手段20eは、特定した複数のプロセスデータ52を1または複数のグループに振り分ける。振り分け方は、実施の形態1〜3において説明した観点と同様の観点で振り分けることができる。
生成手段40eは、割り振り結果に従って、一のグループに含まれるプロセスデータ52が一のデータセット50に格納されるように、通信設定400を設定する。通信設定400は、実施の形態1において説明したデータセット設定420(一のデータセット50に格納されるプロセスデータ52を規定する情報)と、生成条件440(データセット50を生成する条件を規定する情報)とに加えて、プロセスデータ52が格納される順序を規定する格納情報460を含む。
また、生成手段40eは、データセット50ごとに、いずれの場所に、いずれのプロセスデータ52が格納されるかを特定可能なコネクション情報480を生成する。
設定機器600eは、コネクション情報480をHMI200e−3へ、通信設定400をコントローラ100eへ各々インストールする。設定機器600eは、コネクション情報480および通信設定400をアプリケーション220ごとに作成してもよく、また、複数のアプリケーション220に対して一つ作成されるようにしてもよい。また、設定機器600eは、コネクション情報480をHMI200e−3へ、通信設定400をコントローラ1eへ各々インストールするものとしたが、これらの情報をレポートとして出力してもよい。
設定機器600eは、HMI200e−1,200e−2,200e−3の各々について、通信設定400およびコネクション情報480を生成する。設定機器600eが精製した通信設定400をコントローラ100eに、コネクション情報480をHMI200e−1,200e−2,200e−3の各々にインストールすることで、コネクション1〜3が貼られることとなる。
また、一のHMI200eにおいて実行されるアプリケーション220に利用される複数のプロセスデータ52の各々が別々のコントローラ100eによって管理される場合、コントローラ100eごとにコネクション情報480および通信設定400が生成される。
<B.データセット50のデータ構造およびコネクション情報480>
図19および図20を参照して、コントローラ100eが生成するデータセット50のデータ構造および、HMI200eがデータセット50を解釈するために参照するコネクション情報480について説明する。
図19は、データセット50のデータ構造の一例を示す図である。図20は、コネクション情報480を説明するための図である。
図19を参照して、各データセット50には、ConnectionID54が付されている。また、データセット50は、複数の格納部580から構成された格納領域56を有する。各格納部580にはシーケンスナンバー582が割り振られており、各格納部580にプロセスデータ52が格納される。
図20を参照して、コネクション情報480は、各格納部580にいずれのプロセスデータが格納されるかを示す情報である。具体的には、コネクション情報480は、ConnectionIDごとに、シーケンスナンバーと、当該シーケンスナンバーの格納部に格納されるプロセスデータの種類とを対応付けた情報である。
HMI200は、コネクション情報480に基づいて、コントローラ100eから送られたデータセット50を解釈してプロセスデータ52を抽出し、アプリケーション220を実行する。
<C.変形例>
なお、コネクションを貼る方法は、設定機器600eを利用した方法に限られない。上記実施の形態1および3に示すように、サポート装置や中継装置を利用してHMIとコントローラとの間のコネクションを貼っても良い。
このように、実施の形態4および当該変形例においては、HMIとコントローラとの間のコネクションが実行されるアプリケーションに基づいて自動で貼られるため、アプリケーション220の実行に必要なプロセスデータ52がコントローラからHMIに向けて送信されるような通信設定400を容易に行うことができる。また、コントローラからHMIに向けて送られるデータは、アプリケーションに必要なプロセスデータに限定されるため、不要なデータを送付する必要がない。
また、実施の形態4および当該変形例においては、設定機器600eが格納情報460を生成するため、コントローラ100eはデータセット50を生成する度に格納順序を決定する必要がなく、コントローラ100eのデータセット50を生成する処理負担を軽減することができる。また、格納情報460に相当するコネクション情報480がHMI200に送付されるため、コントローラ100eとHMI200との間のデータリンクを容易に構築することができる。
[その他の変形例]
上記実施の形態1〜4においては、HMIがサブスクライバーの機能を有し、コントローラがパブリッシャーの機能を有しているものとして説明した。上記実施の形態1〜4に示した各制御システムは、予め定められたHMIの通信設定に従ってHMIからコントローラに向けて情報を配信する構成を備えていてもよい。この場合においても、上記実施の形態1〜4と同様に、HMIが配信する情報を生成するための通信設定が制御プログラムに応じて生成されてもよい。
図21は、変形例における制御システム1fの概略を示す模式図である。図21においては、実施の形態1〜4において説明したコントローラからHMIに向けた情報の配信に関する内容を省略している。
図21を参照して、制御システム1fは、複数のコントローラ100fと、複数のHMI200fと、グループ化手段20fと、生成手段40fとを備える。図21においては、各コントローラ100fに接続されたフィールドデバイス500の表示は省略している。
HMI200fは、アプリケーション220において参照または更新されるアプリケーションデータ2052を予め定められた通信設定800に従い一または複数種類のアプリケーションデータセット2050に格納して配信する。
アプリケーションデータ2052は、たとえば、プロセスデータ52、アプリケーション220の実行結果として出力されるデータ、ユーザの操作に従い入力されたコントローラ100を制御するための制御値などを含む。
HMI200fからコントローラ100fへのアプリケーションデータセット2050の配信は、たとえば、ユーザがHMI200fを操作してコントローラ100fを制御するとき、送られたプロセスデータ52をコントローラ100に返すときなどに行われる。
コントローラ100は、予め指定されたアプリケーションデータ2052を利用して、制御プログラム120を実行する。ここで、アプリケーションデータ2052は、コントローラ100の観点でみるとプロセスデータに相当し、プロセスデータのうち、HMI200から配信されたデータに相当する。
制御プログラム120は、たとえば、図2を参照して説明したサポート装置300が提供する開発環境のもとで作成される。
グループ化手段20fは、制御プログラム120おいて利用することが指定されているアプリケーションデータ2052について、各アプリケーションデータ2052を1または複数のグループに割り当てる。グループ化の方法は、上記実施の形態において説明した方法を利用可能である。また、グループ化手段20fは、複数のコントローラ100fのの各制御プログラム120からアプリケーションデータ2052を取得し、取得したアプリケーションデータ2052をグループ化してもよい。
生成手段40fは、グループ化手段20fの割り当て結果に従って、グループ化手段20fがグループ化した複数のグループGR1,GR2…の各々について、当該グループに割り当てられたアプリケーションデータ2052が一のアプリケーションデータセット2050に格納されて送信されるように、通信設定800を生成する。
すなわち、制御プログラム120の実行にアプリケーションデータ2052を利用する場合に、制御プログラム120に応じて、当該制御プログラム120の実行に必要なアプリケーションデータ2052がHMI200fからコントローラ100fに向けて送信されるような通信設定800を用意に行うことができる。
図21には示していないものの、グループ化手段20fおよび生成手段40fは、コントローラ100の通信設定400を作成してもよい。
グループ化手段20fおよび生成手段40fは、実施の形態1〜3に示したサポート装置、設定装置、中継装置によって実現可能である。
また、HMI200fとコントローラ100fとの通信は、OPC UAに限定されるものではなく、実施の形態4に示したように、EtherNET/IP(登録商標)に従った通信であってもよい。
§3 付記
以上のように、上記の実施の形態1〜3よび変形例は以下のような開示を含む。
<構成1>
制御対象(500)を制御するための制御プログラム(120)を実行するとともに、当該制御プログラムにおいて参照または更新される複数のプロセスデータ(52)を管理する制御装置(100,100a,100d,100e,100f)を備え、前記制御装置は、予め定められた通信設定(400)に従って、前記複数のプロセスデータの少なくとも一部を格納した1または複数種類のデータセット(50)を送信するように構成されており、
前記制御装置から送信される前記1または複数種類のデータセットを利用することで、前記複数のプロセスデータのうち指定された1または複数のプロセスデータを利用する1または複数のアプリケーション(220)を実行する情報処理装置(200,200a,200b,200e,200f)と、
前記1または複数のアプリケーションにおいて利用することが指定されている前記1または複数のプロセスデータの各々を1または複数のグループに割り当てるグループ化手段(20,20a,20b,20c,20d,20e,20f)と、
前記グループ化手段の割り当て結果に従って、前記グループ化手段がグループ化した前記1または複数のグループの各々について、当該グループに割り当てられた1または複数のプロセスデータが一のデータセットに格納されて送信されるように、前記制御装置のための前記通信設定を生成する生成手段(40,40a,40b,40c,40d,40e,20f)とを備える、制御システム。
<構成2>
前記通信設定は、各データセットに格納されるべき1または複数のプロセスデータを特定するための情報(420)を含む、構成1に記載の制御システム。
<構成3>
前記通信設定は、各データセットにおける1または複数のプロセスデータの格納順序を特定するための情報(460)を含む、構成1または2に記載の制御システム。
<構成4>
前記1または複数のアプリケーションの開発環境を提供するサポート装置(300)をさらに備え、
前記サポート装置は、前記グループ化手段(20,20b)および前記生成手段(40,40b)を含む、構成1〜構成3のうちいずれかに記載の制御システム。
<構成5>
前記制御装置と前記情報処理装置との間の通信を中継する中継装置(700)をさらに備え、
前記中継装置は、前記グループ化手段(20d)および前記生成手段(40d)を含む、構成1〜構成3のうちいずれかに記載の制御システム。
<構成6>
前記情報処理装置(200f)は、
前記1または複数のアプリケーションにおいて参照または更新される複数のアプリケーションデータ(2052)を管理し、
予め定められた情報処理装置の通信設定(800)に従って、前記複数のアプリケーションデータの少なくとも一部を格納した1または複数種類のアプリケーションデータセット(2050)を送信し、
前記制御装置(100f)は、前記アプリケーションデータセットを利用することで、前記複数のアプリケーションデータのうち指定された1または複数のアプリケーションデータを利用して前記制御プログラムを実行可能であり、
前記グループ化手段(20f)は、前記制御プログラムにおいて利用することが指定されている前記1または複数のアプリケーションデータの各々を1または複数の制御プログラムグループに割り当て、
前記生成手段(40f)は、前記グループ化手段の割り当て結果に従って、前記グループ化手段がグループ化した前記1または複数の制御プログラムグループの各々について、当該グループに割り当てられた1または複数のアプリケーションデータが一のアプリケーションデータセットに格納されて送信されるように、前記情報処理装置の通信設定を生成する、構成1〜構成5のうちいずれかに記載の制御システム。
<構成7>
制御対象(500)を制御するための制御プログラム(120)を実行するとともに、当該制御プログラムにおいて参照または更新される複数のプロセスデータ(52)を管理する制御装置(100,100e)と、前記複数のプロセスデータのうち指定された1または複数のプロセスデータを利用する1または複数のアプリケーション(220)を実行する情報処理装置(200,200b,200e)との間の通信環境の設定を支援するサポート装置(300,600,600e)であって、
前記制御装置は、予め定められた通信設定(400)に従って、前記複数のプロセスデータの少なくとも一部を格納した1または複数種類のデータセット(50)を送信するように構成されており、
前記情報処理装置は、前記制御装置から送信される前記1または複数種類のデータセットを利用することで、前記1または複数のアプリケーションを実行するように構成されており、
前記1または複数のアプリケーションにおいて利用することが指定されている前記1または複数のプロセスデータの各々を1または複数のグループに割り当てるグループ化手段(20,20b,20c,20e)と、
前記グループ化手段の割り当て結果に従って、前記グループ化手段がグループ化した前記1または複数のグループの各々について、当該グループに割り当てられた1または複数のプロセスデータが一のデータセットに格納されて送信されるように、前記制御装置のための前記通信設定を生成する生成手段(40,40b,40c,40e)とを備える、サポート装置。
<構成8>
制御対象を制御するための制御プログラムを実行するとともに、当該制御プログラムにおいて参照または更新される複数のプロセスデータを管理する制御装置と、前記複数のプロセスデータのうち指定された1または複数のプロセスデータを利用する1または複数のアプリケーションを実行する情報処理装置との間の通信環境の設定を支援するサポートプログラム(378,678,778)であって、
前記制御装置は、予め定められた通信設定(400)に従って、前記複数のプロセスデータの少なくとも一部を格納した1または複数種類のデータセット(50)を送信するように構成されており、
前記情報処理装置は、前記制御装置から送信される前記1または複数種類のデータセットを利用することで、前記1または複数のアプリケーションを実行するように構成されており、
前記サポートプログラムは、コンピュータ(300,600,600e,700)に、
前記1または複数のアプリケーションにおいて利用することが指定されている前記1または複数のプロセスデータの各々を1または複数のグループに割り当てるグループ化ステップ(Step2)と、
前記グループ化ステップにおいて割り当てられた結果に従って、前記グループ化ステップにおいてグループ化された前記1または複数のグループの各々について、当該グループに割り当てられた1または複数のプロセスデータが一のデータセットに格納されて送信されるように、前記制御装置のための前記通信設定を生成する生成ステップ(Step3)とを実行させる、サポートプログラム。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。また、実施の形態および各変形例において説明された発明は、可能な限り、単独でも、組合せても、実施することが意図される。
1,1a,1c,1d,1e,1f 制御システム、2,2a,2e 情報系ネットワーク、4 制御系ネットワーク、10a FAシステム、20,20a,20b,20c,20d,20e,20f グループ化手段、22 第1グループ化手段、24 第2グループ化手段、26 第3グループ化手段、40,40a,40b,40c,40d,40e,40f 生成手段、42 データセット設定生成手段、44 生成条件生成手段、50 データセット、52 プロセスデータ、54 オブジェクト、56 ConnectionID、58 格納領域、60,60b OPC UAクライアント、62 購読管理手段、64,64b サブスクリプション、66,66b,84 通信ドライバ、70 送受信管理手段、72 プロセスデータ管理手段、74 トピックリスト、76 プロセスデータリスト、80 OPC UAサーバ、82 データセット生成手段、100,100a,100d,100e,100f コントローラ、110,210,310,610,710 プロセッサ、120 制御プログラム、146,193,294,394,694 USBコントローラ、150,250,350,650,750 揮発性メモリ、170,270,370,670,770 不揮発性メモリ、180,260 OPC UAプログラム、191 制御系ネットワークIF、192 情報系ネットワークIF、194 メモリカードIF、194A メモリカード、195 内部バスコントローラ、196 チップセット、200,200a,200b,200e,200f HMI、220 アプリケーション、222 マッピング情報、240 タッチパネル、242,340,640 表示部、244,320,620 入力部、292,792 通信IF、296,396,696 プロセッサバス、300 サポート装置、360 開発手段、372 サポートプログラム、374 制御プログラム用開発プログラム、376 アプリケーション用開発プログラム、378,678,778 通信設定プログラム、392 光学ドライブ、392A 記録媒体、400,800 通信設定、420 データセット設定、440 生成条件、460 格納情報、480 コネクション情報、500 フィールドデバイス、580 格納部、582 シーケンスナンバー、600,600e 設定機器、700 中継装置、772 PubSubプログラム、2050 アプリケーションデータセット、2052 アプリケーションデータ。

Claims (8)

  1. 制御対象を制御するための制御プログラムを実行するとともに、当該制御プログラムにおいて参照または更新される複数のプロセスデータを管理する制御装置を備え、前記制御装置は、予め定められた通信設定に従って、前記複数のプロセスデータの少なくとも一部を格納した1または複数種類のデータセットを送信するように構成されており、
    前記制御装置から送信される前記1または複数種類のデータセットを利用することで、前記複数のプロセスデータのうち指定された1または複数のプロセスデータを利用する1または複数のアプリケーションを実行する情報処理装置と、
    前記1または複数のアプリケーションにおいて利用することが指定されている前記1または複数のプロセスデータの各々を1または複数のグループに割り当てるグループ化手段と、
    前記グループ化手段の割り当て結果に従って、前記グループ化手段がグループ化した前記1または複数のグループの各々について、当該グループに割り当てられた1または複数のプロセスデータが一のデータセットに格納されて送信されるように、前記制御装置のための前記通信設定を生成する生成手段とを備える、制御システム。
  2. 前記通信設定は、各データセットに格納されるべき1または複数のプロセスデータを特定するための情報を含む、請求項1に記載の制御システム。
  3. 前記通信設定は、各データセットにおける1または複数のプロセスデータの格納順序を特定するための情報を含む、請求項1または2に記載の制御システム。
  4. 前記1または複数のアプリケーションの開発環境を提供するサポート装置をさらに備え、
    前記サポート装置は、前記グループ化手段および前記生成手段を含む、請求項1〜請求項3のうちいずれかに記載の制御システム。
  5. 前記制御装置と前記情報処理装置との間の通信を中継する中継装置をさらに備え、
    前記中継装置は、前記グループ化手段および前記生成手段を含む、請求項1〜請求項3のうちいずれかに記載の制御システム。
  6. 前記情報処理装置は、
    前記1または複数のアプリケーションにおいて参照または更新される複数のアプリケーションデータを管理し、
    予め定められた情報処理装置の通信設定に従って、前記複数のアプリケーションデータの少なくとも一部を格納した1または複数種類のアプリケーションデータセットを送信し、
    前記制御装置は、前記アプリケーションデータセットを利用することで、前記複数のアプリケーションデータのうち指定された1または複数のアプリケーションデータを利用して前記制御プログラムを実行可能であり、
    前記グループ化手段は、前記制御プログラムにおいて利用することが指定されている前記1または複数のアプリケーションデータの各々を1または複数の制御プログラムグループに割り当て、
    前記生成手段は、前記グループ化手段の割り当て結果に従って、前記グループ化手段がグループ化した前記1または複数の制御プログラムグループの各々について、当該制御プログラムグループに割り当てられた1または複数のアプリケーションデータが一のアプリケーションデータセットに格納されて送信されるように、前記情報処理装置の通信設定を生成する、請求項1〜請求項5のうちいずれかに記載の制御システム。
  7. 制御対象を制御するための制御プログラムを実行するとともに、当該制御プログラムにおいて参照または更新される複数のプロセスデータを管理する制御装置と、前記複数のプロセスデータのうち指定された1または複数のプロセスデータを利用する1または複数のアプリケーションを実行する情報処理装置との間の通信環境の設定を支援するサポート装置であって、
    前記制御装置は、予め定められた通信設定に従って、前記複数のプロセスデータの少なくとも一部を格納した1または複数種類のデータセットを送信するように構成されており、
    前記情報処理装置は、前記制御装置から送信される前記1または複数種類のデータセットを利用することで、前記1または複数のアプリケーションを実行するように構成されており、
    前記1または複数のアプリケーションにおいて利用することが指定されている前記1または複数のプロセスデータの各々を1または複数のグループに割り当てるグループ化手段と、
    前記グループ化手段の割り当て結果に従って、前記グループ化手段がグループ化した前記1または複数のグループの各々について、当該グループに割り当てられた1または複数のプロセスデータが一のデータセットに格納されて送信されるように、前記制御装置のための前記通信設定を生成する生成手段とを備える、サポート装置。
  8. 制御対象を制御するための制御プログラムを実行するとともに、当該制御プログラムにおいて参照または更新される複数のプロセスデータを管理する制御装置と、前記複数のプロセスデータのうち指定された1または複数のプロセスデータを利用する1または複数のアプリケーションを実行する情報処理装置との間の通信環境の設定を支援するサポートプログラムであって、
    前記制御装置は、予め定められた通信設定に従って、前記複数のプロセスデータの少なくとも一部を格納した1または複数種類のデータセットを送信するように構成されており、
    前記情報処理装置は、前記制御装置から送信される前記1または複数種類のデータセットを利用することで、前記1または複数のアプリケーションを実行するように構成されており、
    前記サポートプログラムは、コンピュータに、
    前記1または複数のアプリケーションにおいて利用することが指定されている前記1または複数のプロセスデータの各々を1または複数のグループに割り当てるグループ化ステップと、
    前記グループ化ステップにおいて割り当てられた結果に従って、前記グループ化ステップにおいてグループ化された前記1または複数のグループの各々について、当該グループに割り当てられた1または複数のプロセスデータが一のデータセットに格納されて送信されるように、前記制御装置のための前記通信設定を生成する生成ステップとを実行させる、サポートプログラム。
JP2019047306A 2019-03-14 2019-03-14 制御システム、サポート装置、およびサポートプログラム Active JP7040484B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2019047306A JP7040484B2 (ja) 2019-03-14 2019-03-14 制御システム、サポート装置、およびサポートプログラム
US17/434,218 US20220137584A1 (en) 2019-03-14 2020-02-26 Control system, support device, and support program
EP20769781.4A EP3940471A4 (en) 2019-03-14 2020-02-26 CONTROL SYSTEM, SUPPORT DEVICE AND SUPPORT PROGRAM
PCT/JP2020/007783 WO2020184185A1 (ja) 2019-03-14 2020-02-26 制御システム、サポート装置、およびサポートプログラム
CN202080017707.7A CN113508345A (zh) 2019-03-14 2020-02-26 控制系统、支持装置以及支持程序

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019047306A JP7040484B2 (ja) 2019-03-14 2019-03-14 制御システム、サポート装置、およびサポートプログラム

Publications (2)

Publication Number Publication Date
JP2020149459A true JP2020149459A (ja) 2020-09-17
JP7040484B2 JP7040484B2 (ja) 2022-03-23

Family

ID=72425967

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019047306A Active JP7040484B2 (ja) 2019-03-14 2019-03-14 制御システム、サポート装置、およびサポートプログラム

Country Status (5)

Country Link
US (1) US20220137584A1 (ja)
EP (1) EP3940471A4 (ja)
JP (1) JP7040484B2 (ja)
CN (1) CN113508345A (ja)
WO (1) WO2020184185A1 (ja)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0410107A (ja) * 1990-04-27 1992-01-14 Nissan Motor Co Ltd シーケンス制御のモニタ方法
JPH08147007A (ja) * 1994-11-21 1996-06-07 Yaskawa Electric Corp コントローラとプログラマブル表示装置との間のデータ伝送方法
JP2000242326A (ja) * 1999-02-23 2000-09-08 Keyence Corp 表示中継装置
JP2002358105A (ja) * 2001-05-31 2002-12-13 Digital Electronics Corp 制御用コンピュータ、そのプログラム、および、それが記録された記録媒体
JP2013161106A (ja) * 2012-02-01 2013-08-19 Omron Corp サポート装置およびサポートプログラム
JP2016012173A (ja) * 2014-06-27 2016-01-21 オムロン株式会社 プログラマブル表示器
JP2016100846A (ja) * 2014-11-25 2016-05-30 富士電機株式会社 コントロールシステム、そのコントローラ、表示装置
JP2016126495A (ja) * 2014-12-26 2016-07-11 株式会社キーエンス 組込機器設定システム

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4241036B2 (ja) * 2000-09-28 2009-03-18 三井化学産資株式会社 電気融着装置のデータ転記方法及び装置
US8341279B2 (en) * 2008-11-17 2012-12-25 Cisco Technology, Inc. Dynamically activating buffered data publishers in sensor networks
EP2693283A4 (en) * 2011-03-30 2016-06-15 Citizen Holdings Co Ltd DEVICE FOR CONTROLLING A MACHINE TOOL
KR101949623B1 (ko) * 2014-10-07 2019-02-18 시티즌 도케이 가부시키가이샤 공작 기계의 제어 장치
DE212015000254U1 (de) * 2014-10-31 2017-06-30 Cloudbased Industry 4.0 Technologies Ag Client-Vorrichtung zur Datenerfassung und Vorverarbeitung von prozessbezogenen Massendaten von mindestens einer CNC-Maschine oder einem Industrieroboter
WO2016155857A1 (en) * 2015-03-27 2016-10-06 Bühler AG Adaptive cross plant control and steering system, and corresponding method thereof
JP6590726B2 (ja) 2016-02-17 2019-10-16 株式会社キーエンス プログラマブル表示器及びこれを備えるプログラマブルシステム、プログラマブル表示器の設計装置、プログラマブル表示器の設計方法、プログラマブル表示器の操作方法、プログラマブル表示器の設計プログラム及びコンピュータで読み取り可能な記録媒体並びに記憶した機器
JP6870347B2 (ja) * 2017-01-31 2021-05-12 オムロン株式会社 情報処理装置、情報処理プログラムおよび情報処理方法
CN110300967B (zh) * 2017-08-29 2023-10-03 西门子股份公司 一种数据读取周期的确定方法和装置
EP3457655B1 (en) * 2017-09-19 2023-09-06 CODESYS Holding GmbH A security unit and method for an industrial control system

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0410107A (ja) * 1990-04-27 1992-01-14 Nissan Motor Co Ltd シーケンス制御のモニタ方法
JPH08147007A (ja) * 1994-11-21 1996-06-07 Yaskawa Electric Corp コントローラとプログラマブル表示装置との間のデータ伝送方法
JP2000242326A (ja) * 1999-02-23 2000-09-08 Keyence Corp 表示中継装置
JP2002358105A (ja) * 2001-05-31 2002-12-13 Digital Electronics Corp 制御用コンピュータ、そのプログラム、および、それが記録された記録媒体
JP2013161106A (ja) * 2012-02-01 2013-08-19 Omron Corp サポート装置およびサポートプログラム
JP2016012173A (ja) * 2014-06-27 2016-01-21 オムロン株式会社 プログラマブル表示器
JP2016100846A (ja) * 2014-11-25 2016-05-30 富士電機株式会社 コントロールシステム、そのコントローラ、表示装置
JP2016126495A (ja) * 2014-12-26 2016-07-11 株式会社キーエンス 組込機器設定システム

Also Published As

Publication number Publication date
JP7040484B2 (ja) 2022-03-23
EP3940471A4 (en) 2022-12-07
WO2020184185A1 (ja) 2020-09-17
CN113508345A (zh) 2021-10-15
US20220137584A1 (en) 2022-05-05
EP3940471A1 (en) 2022-01-19

Similar Documents

Publication Publication Date Title
US20130138818A1 (en) Method for accessing an automation system and system operating according to the method
US8843876B2 (en) Method for keeping a web session alive in a web application
US20120117186A1 (en) Dds structure with scalability and adaptability and node constituting the same
CN104977875B (zh) 具有同级间冗余性的控制器系统和操作该系统的方法
WO2020189086A1 (ja) 制御システム、設定装置、および設定プログラム
US9594606B2 (en) Runtime extension framework
CN105391652A (zh) 基于usb重定向实现usb设备网络共享的系统及方法
EP2710469A1 (en) A method and a system for online and dynamic distribution and configuration of applications in a distributed control system
KR20190028210A (ko) 컨테이너 기반 인공지능 어플리케이션을 배포하는 클라우드 서비스 방법과 시스템
US10198538B1 (en) Relocate targets to different domains in an emulator
US20200278891A1 (en) Dynamic Load Balancing In Network Centric Process Control Systems
KR20150113353A (ko) 가상 데스크탑 이미지를 분산 저장 및 블록 레벨로 입출력하는 서버 시스템
US9535758B2 (en) Managing data distribution to networked client computing devices
JP6655118B2 (ja) 自動化システムおよび動作方法
JP7040484B2 (ja) 制御システム、サポート装置、およびサポートプログラム
JP6431903B2 (ja) ネイティブ制御システム監視アプリケーションへのfdt/dtm技術の組込み
CN114579250A (zh) 一种构建虚拟集群的方法、装置及存储介质
US8301273B2 (en) Method for providing functions in an industrial automation system, control program and industrial automation system
CN112292659A (zh) 通过从语义变焦增强用户接口调用开发工具来从控制计算机编写装置的代码
WO2020189204A1 (ja) 制御システム、中継装置、および中継プログラム
CN103617077A (zh) 智能型云端化移转的方法与系统
CN113544601B (zh) 控制系统、设定装置以及记录介质
CN112860374A (zh) 快速部署Ceph方法、装置、服务器及存储介质
JP7036069B2 (ja) 制御システム、中継装置、および中継プログラム
Fedi et al. Interoperability issues reduction in command and control for multi-robot systems

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201215

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211130

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211220

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220221

R150 Certificate of patent or registration of utility model

Ref document number: 7040484

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150