JP2020088690A - 制御装置、サポート装置、および通信システム - Google Patents

制御装置、サポート装置、および通信システム Download PDF

Info

Publication number
JP2020088690A
JP2020088690A JP2018222648A JP2018222648A JP2020088690A JP 2020088690 A JP2020088690 A JP 2020088690A JP 2018222648 A JP2018222648 A JP 2018222648A JP 2018222648 A JP2018222648 A JP 2018222648A JP 2020088690 A JP2020088690 A JP 2020088690A
Authority
JP
Japan
Prior art keywords
unit
communication
command
relay device
relay
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
JP2018222648A
Other languages
English (en)
Other versions
JP7159818B2 (ja
Inventor
豊 田原
Yutaka Tawara
豊 田原
ジョンストン・ホール
Hall Johnston
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 JP2018222648A priority Critical patent/JP7159818B2/ja
Priority to US17/285,096 priority patent/US20210349446A1/en
Priority to PCT/JP2019/043973 priority patent/WO2020110668A1/ja
Priority to EP19889785.2A priority patent/EP3890247A4/en
Priority to CN201980058646.6A priority patent/CN112655175B/zh
Publication of JP2020088690A publication Critical patent/JP2020088690A/ja
Application granted granted Critical
Publication of JP7159818B2 publication Critical patent/JP7159818B2/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/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/4155Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by programme execution, i.e. part programme or machine function execution, e.g. selection of a programme
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40006Architecture of a communication node
    • 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/418Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM]
    • G05B19/4185Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM] characterised by the network communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40169Flexible bus arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]
    • H04L12/4645Details on frame tagging
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/18Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
    • 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/13Plc programming
    • G05B2219/13058One instruction of plc generates a whole independent sequence, relay
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L2012/4026Bus for use in automation systems
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Physics & Mathematics (AREA)
  • Manufacturing & Machinery (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Computer Security & Cryptography (AREA)
  • Human Computer Interaction (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Programmable Controllers (AREA)
  • Small-Scale Networks (AREA)

Abstract

【課題】中継装置に対して行う設定を容易にすることを目的とする。【解決手段】中継装置を介して他の装置と通信可能に構成された制御装置は、他の装置との間の通信に関する設定である通信設定を行うための命令を少なくとも一つ含むユーザプログラムが格納された記憶部と、通信設定を行う通信設定部とを備える。通信設定部は、命令の実行条件が成立したことに基づき、中継装置との間でコマンドの送受信を行い、当該命令が示す通信設定を行う。【選択図】図1

Description

本発明は、制御装置と他の装置との間の通信に関する設定作業を支援するための技術に関する。
様々な製造現場において、PLC(Programmable Logic Controller)などの制御装置が導入されている。このような制御装置は、一種のコンピュータであり、製造装置や製造設備などに応じて設計された制御プログラムが実行される。制御装置は、中継装置を介して工場内または工場外の様々な装置と接続される。
たとえば、特許第6407494号公報(特許文献1)には、中継装置の一例であるルータを介して、工場の外のクラウドシステムと通信可能に接続された制御装置が開示されている。
また、国際公開第2016/157477号(特許文献2)には、中継装置の一例であるルータを介して、他の制御装置と通信可能に接続された制御装置が開示されている。
特許第6407494号公報 国際公開第2016/157477号
しかし、中継装置に対する設定は複雑であり、設定方法の学習が必要となる。すなわち、工場内のネットワークを設計し、運用するためには、ネットワークの設計を行う者の教育だけでなく、工場内の現場で設計されたネットワークを運用する者に対しても教育を行う必要があった。そのため、中継装置に対して行う設定の複雑さが、工場内にネットワークを構築することを困難にする一つの要因となっていた。
本発明は、上記課題を解決することを目的とするものであって、中継装置に対して行う設定を容易にすることを目的とする。
本開示の一例によれば、中継装置を介して他の装置と通信可能な制御装置が提供される。制御装置は、中継装置を介した通信に関する通信設定を行うための命令を少なくとも一つ含むユーザプログラムが格納された記憶部と、命令の実行条件が成立したことに基づき、中継装置との間でコマンドの送受信を行い、命令が示す通信設定を行う通信設定部とを含む。
この開示によれば、中継装置との間でのコマンドの送受信の方法を知らないユーザであっても、通信設定を指定すれば、指定した設定内容に応じた処理を制御装置が実行するため、中継装置に対する通信設定を容易に行うことができる。
上述の開示において、中継装置との間で行われるコマンドの送受信にかかるプロトコルは、中継装置の種類に応じて異なる。通信設定部は、中継装置の種類に応じたプロトコルに従い、中継装置との間でコマンドの送受信を行う。
この開示によれば、種々の中継装置に対応することができ、ユーザは複数種類の中継装置を利用することができる。
上述の開示において、記憶部は、プロトコルを含む変換情報を、中継装置の種類ごとに格納する。制御装置は、中継装置の種類を中継装置が備えるデバイス情報に基づいて判断し、中継装置の種類に基づいて変換情報を特定する変換情報特定部をさらに含む。通信設定部は、変換情報が特定した変換情報に基づいて中継装置との間でコマンドの送受信を行う。
この開示によれば、ユーザは中継装置の種類を意識することなく、通信設定を行うことができる。
上述の開示において、変換情報は、命令の内容ごとに記憶部に格納される。変換情報特定部は、実行条件が成立した命令および中継装置の種類に基づいて変換情報を特定する。
この開示によれば、制御装置は、命令の内容と中継装置の種類とに応じたプログラムを記憶しておく必要がないため、記憶部に格納するデータ量を減らすことができる。
上述の開示において、ユーザプログラムは、通信設定にかかる命令と、この命令に比べて優先度の高い優先命令とを含む。制御装置は、優先命令を定周期で繰り返し実行する定周期タスク実行部をさらに含む。通信設定部は、前記優先命令の実行を妨げないように通信設定にかかる命令を行う。
この開示によれば、優先度の高い命令を妨げることなく、通信設定にかかる命令を実行することができる。
上述の開示において、制御装置は、中継装置を介して第1のフィールド装置群を管理する第1機器と、第2のフィールド装置群を管理する第2機器と通信可能に接続されている。記憶部は、第1のフィールド装置群を動かす条件を含む第1のレシピと、第2のフィールド装置群を動かす条件を含む第2のレシピとを格納する。ユーザプログラムは、接続先の機器を切り替える命令と、切り替えに応じてレシピを切り替える命令とを含む。
この開示によれば、段取り替えを容易に行うことができる。
本開示の別の一例によれば、中継装置を介して他の装置と通信可能な制御装置用のユーザプログラムの開発を支援するためのサポート装置が提供される。サポート装置は、中継装置を介した通信に関する通信設定を行うための命令を少なくとも一つ格納する記憶部と、記憶部に格納された少なくとも一つの命令を組み合わせてユーザプログラムを生成するための制御部とを含む。制御部は、命令の実行時に制御装置が中継装置との間でコマンドの送受信を行うことが可能な形式でユーザプログラムを作成する。
この開示によれば、中継装置との間でのコマンドの送受信の方法を知らないユーザであっても、中継装置に対する通信設定を容易に行うためのユーザプログラムを作成することができる。
本開示の別の一例によれば、中継装置と、中継装置を介して他の装置と通信可能な制御装置とを含む通信システムが提供される。制御装置は、中継装置を介した通信に関する通信設定を行うための命令を少なくとも一つ含むユーザプログラムが格納された記憶部と、
命令の実行条件が成立したことに基づき、中継装置との間でコマンドの送受信を行い、命令が示す通信設定を行う通信設定部とを含む。
この開示によれば、中継装置との間でのコマンドの送受信の方法を知らないユーザであっても、通信設定を指定すれば、指定した設定内容に応じた処理を制御装置が実行するため、中継装置に対する通信設定を容易に行う環境が提供される。
中継装置に対して行う設定を容易に行うことが可能な環境が提供される。
本実施の形態に係るネットワークシステムの適用場面を模式的に示す図である。 実施の形態1に係る通信システムのシステム構成を示す図である。 CPUユニットの装置構成の一例を示す模式図である。 CPUユニットのソフトウェア構成を示す模式図である。 サポート装置の装置構成の一例を示す模式図である。 サポート装置のソフトウェア構成を示す模式図である。 通信設定に係るプログラムの実行により実現されるコントローラの機能構成を示す図である。 通信設定に係るファンクションブロックを組み込んだユーザプログラムの例を示す図である。 通信設定に係るファンクションブロックを組み込んだユーザプログラムの例を示す図である。 図8および図9に示すユーザプログラムを実行したときの定周期タスク実行部および通信設定部が処理を実行するタイミングを示す図である。 通信設定部と設定情報更新部との間のコマンドの遣り取りを示す図である。 サポート装置において用意されている命令の一例である。 通信システムの変形例を示す図である。 実施の形態2の制御装置の概略構成を示す図である。
以下、図面を参照しつつ、本発明に従う各実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがって、これらについての詳細な説明は繰り返さない。なお、以下で説明される各実施の形態および各変形例は、適宜選択的に組み合わせてもよい。
§1 適用例
図1を参照して、本発明が適用される場面の一例について説明する。図1は、本実施の形態に係る制御装置100Aの適用場面を模式的に示す図である。制御装置100Aは、中継装置200Aを介して、他の装置(装置41A,41B,41C)と通信可能に接続されている。
制御装置100Aは、他の装置との間の通信に関する設定である通信設定を行うための命令を少なくとも一つ含むユーザプログラム1066Aが格納された記憶部106Aと、通信設定を行う通信設定部160Aとを備える。
通信設定は、他の装置との間の通信に関する設定であって、中継装置200Aに対して行う設定をいう。
通信設定部160Aは、命令の実行条件が成立したことに基づき、中継装置との間でコマンドの送受信を行い、当該命令が示す通信設定を行う。
たとえば、図1に示す例では、命令aの実行条件が成立し、命令aの実行が完了すると命令bの実行条件が成立し、命令bの実行が完了すると命令cの実行条件が成立し、命令cの実行が完了すると命令dの実行条件が成立するというユーザプログラム1066Aを記憶部106Aは格納する。
このユーザプログラム1066Aは、たとえば、サポート装置30Aが提供する開発環境によって作成される。サポート装置30Aは、たとえば、汎用的なアーキテクチャに従うハードウェアを用いて実現される。
通信設定部160Aは、図1に示すように、命令aを実行するにあたり、中継装置200Aとの間でコマンドの遣り取りを行う。通信設定部160Aは、命令aの実行が完了すると、命令bを実行し、命令bの実行にあたり中継装置200Aとの間でコマンドの遣り取りを行う。同様に、命令c、命令dの実行にあたっても、通信設定部160Aは、中継装置200Aとの間でコマンドの遣り取りを行う。
このように、通信設定においては、中継装置200Aと制御装置100Aとの間でコマンドの遣り取りが必要であるものの、通信設定部160Aが命令の実行に伴い、このコマンドの遣り取りを行うため、ユーザは、中継装置200Aと制御装置100Aとの間で行われる詳細なコマンドの遣り取りについて学習しなくとも、中継装置200Aに対する通信設定を行うことが可能である。
§2 構成例
[実施の形態1]
<A.通信システムのシステム構成>
図2は、実施の形態1に係る通信システム1のシステム構成を示す図である。通信システム1は、製造作業が実際に行われる製造現場2に設置されるシステムである。通信システム1は、製造現場2で働く人々(以下、「ユーザ」ともいう。)によって利用される。通信システム1は、製造現場2に対してリモートで閲覧や操作が可能なリモートサイト4と製造現場2との間の通信に関する設定(以下、「通信設定」ともいう。)を行うための環境を提供する。
通信システム1は、製造装置やロボットなどを制御するコントローラ10と、ユーザが通信設定を行うために操作するタッチパネル式のHMI(Human Machine Interface)20とを含む。
コントローラ10は、情報系ネットワークNW1を介してHMI20と通信可能に接続されており、HMI20をユーザが操作することでHMI20から出力される設定指示に従って通信設定を行う。
コントローラ10は、制御系ネットワークNW2を介してフィールド装置群40と接続されている。フィールド装置群40は、制御対象または制御に関連する製造装置や生産ラインなど(以下、「フィールド」とも総称する。)からデータを収集する装置を含む。このようなデータを収集する装置としては、入力リレーや各種センサなどが想定される。フィールド装置群40は、さらに、コントローラ10にて生成される指令に基づいて、フィールドに対して何らかの作用を与える装置を含む。このようなフィールドに対して何らかの作用を与える装置としては、出力リレー、コンタクタ、サーボドライバおよびサーボモータ、その他任意のアクチュエータが想定される。
図2に示す例においては、フィールド装置群40は、リモートI/O(Input/Output)装置41と、リレー群42と、サーボドライバ45およびサーボモータ46とを含み、これらがコントローラ10に接続されている例を示す。
コントローラ10は、CPUユニット100と、中継ユニット200と、電源ユニット300とを含む。電源ユニット300は、CPUユニット100などコントローラ10を構成する各種装置に電力を供給する。
CPUユニット100は、制御対象についての制御演算を実行する制御装置に相当する。CPUユニット100は、中継ユニット200を介して、リモートサイト4のコンピュータ4aと接続される。CPUユニット100は、ユーザにおける制御目的に応じて作成されるユーザプログラムを実行することで、制御対象を制御する。CPUユニット100は、CPUユニット100に接続された種々の装置を制御対象とすることが可能である。具体的には、CPUユニット100は、中継ユニット200を制御対象とすることができ、中継ユニット200の状態を変更することができる。具体的には、CPUユニット100は、中継ユニット200の設定を行うことができる。中継ユニット200の設定が行われることで、リモートサイト4と製造現場2との間の通信設定が行われることとなる。なお、実施の形態1において、通信設定にかかるユーザプログラムは、ユーザがHMI20を操作することでHMI20から出力される設定変更指示に従って実行される。
ユーザプログラムは、サポート装置30が提供する開発環境によって作成される。CPUユニット100は、サポート装置30と接続するためのインターフェイスを備える。サポート装置30で作られたユーザプログラムは、サポート装置30からCPUユニット100にインストールされ、CPUユニット100によって実行される。ユーザプログラムは、国際規格IEC61131−3においてPLCアプリケーションのプログラミング言語として規定されたプログラム言語で記述されたものである。具体的には、ユーザプログラムは、ラダーダイアグラム(LD:Ladder Diagram)、ファンクションブロックダイアグラム(FBD:Function Block Diagram)、シーケンシャルファンクションチャート(SFC:Sequential Function Chart)、インストラクションリスト(IL:Instruction List)、ストラクチャードテキスト(ST:Structured Text)の5種類のうちの一または複数の言語で記述されたプログラムである。
中継ユニット200は、ルータ機能を有する制御機器であって、CPUユニット100と他の装置との間のデータの遣り取りを仲介する中継機能を提供する。図2に示す例では、中継ユニット200は、ネットワークNW3を経由してリモートサイト4内のネットワークと通信可能に接続される。リモートサイト4内のネットワークには、コンピュータ4aが接続されている。すなわち、中継ユニット200は、CPUユニット100とコンピュータ4aとの間のデータの遣り取りを仲介する。より具体的には、中継ユニット200は、ネットワークNW3を経由してコンピュータ4aが接続された中継器4bと通信可能である。
ネットワークNW3としては、インターネット、VPN(Virtual Private Network)、専用回線、またはこれらを組み合わせた通信回線などが想定され、有線のネットワークと無線のネットワークとのうちのいずれのネットワークであってもよい。実施の形態1においては、ネットワークNW3は、VPNである。
CPUユニット100と中継ユニット200との間の通信を可能にするネットワークにおいて、一例として、CPUユニット100には、IPアドレスとして「192.168.1.1/24」が割り当てられる。中継ユニット200には、IPアドレスとして「192.168.1.254/24」が割り当てられる。
ネットワークNW3において、一例として、中継ユニット200には、IPアドレスとして「10.0.0.1」が割り当てられる。中継器4bには、IPアドレスとして「20.0.0.1」が割り当てられる。
中継器4bとコンピュータ4aとの間の通信を可能にするネットワークにおいて、一例として、中継器4bには、IPアドレスとして「192.168.2.254/24」が割り当てられる。コンピュータ4aには、IPアドレスとして「192.168.2.1/24」が割り当てられる。
<B.CPUユニットの装置構成>
図3は、CPUユニット100の装置構成の一例を示す模式図である。CPUユニット100は、プロセッサ102と、メインメモリ104と、ストレージ106と、情報系ネットワークコントローラ108と、制御系ネットワークコントローラ110と、ユニット間バスコントローラ112と、ローカルバスコントローラ114と、USBコントローラ116と、メモリカードインターフェイス118とを備える。これらのコンポーネントは、プロセッサバス120を介して接続されている。
プロセッサ102は、標準制御に係る制御演算を実行する演算処理部に相当し、CPU(Central Processing Unit)やGPU(Graphics Processing Unit)などで構成される。プロセッサ102としては、複数のコアを有する構成を採用してもよいし、プロセッサ102を複数配置してもよい。このように、CPUユニット100は、1または複数のプロセッサ102、および/または、1または複数のコアを有するプロセッサ102を有している。プロセッサ102は、ストレージ106に格納されたプログラムを読出して、メインメモリ104に展開して実行することで、制御対象に応じた制御演算、および、後述するような各種処理を実現する。
メインメモリ104は、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)などの揮発性記憶装置などで構成される。ストレージ106は、例えば、SSD(Solid State Drive)やHDD(Hard Disk Drive)などの不揮発性記憶装置などで構成される。
ストレージ106には、プロセッサ102が実行する各種プログラムおよびプログラムの実行に必要な各種データが格納される。
情報系ネットワークコントローラ108は、情報系ネットワークNW1(図2参照)を介してHMI20との通信を仲介する。情報系ネットワークNW1としては、たとえば、EtherNet/IP(登録商標)などの定時性が保証されるネットワークプロトコルが好ましい。
制御系ネットワークコントローラ110は、制御系ネットワークNW2(図2参照)を介してフィールド装置群40との通信を仲介する。制御系ネットワークNW2としては、たとえば、EtherCAT(登録商標)などの定時性が保証されるネットワークプロトコルが好ましい。
ユニット間バスコントローラ112は、他のユニットとデータ通信可能に接続するためのデバイスである。実施の形態1においては、CPUユニット100のユニット間バスコントローラ112を介して、中継ユニット200および電源ユニット300が接続される。ユニット間バスコントローラ112としては、例えば、公知のデータ伝送規格(例えば、PCI Express)などに従うデバイスを採用できる。
ローカルバスコントローラ114は、図示しないローカルバスを介してCPUユニット100に直接装着される入出力ユニットとの間の通信を仲介する。
USBコントローラ116は、USB接続を介して、サポート装置30などとの間でデータを遣り取りする。
メモリカードインターフェイス118は、着脱可能な記録媒体の一例であるメモリカード118aを受付ける。メモリカードインターフェイス118は、メモリカード118aに対してデータを書込み、メモリカード118aから各種データを読出すことが可能になっている。
<C.CPUユニットのソフトウェア構成>
図4は、CPUユニット100のソフトウェア構成を示す模式図である。図4には、実施の形態1に係る各種機能を提供するためのソフトウェア群の一例を示す。これらのソフトウェア群に含まれる命令コードは、ストレージ106に格納されており、適切なタイミングで読み出され、CPUユニット100のプロセッサ102によって実行される。
CPUユニット100で実行されるソフトウェアとしては、基本的には、OS(Operating System)1062と、システムプログラム1064と、ユーザプログラム1066とを含む。
OS1062は、CPUユニット100のコンピュタアーキテクチャに応じて設計されており、プロセッサ102がシステムプログラム1064およびユーザプログラム1066を実行するための基本的な実行環境を提供する。OS1062は、典型的には、コントローラのメーカあるいは専門のソフトウェア会社などによって提供される。
システムプログラム1064は、コントローラ10としての機能を提供するためのソフトウェア群である。具体的には、システムプログラム1064は、スケジューラプログラム642と、シーケンス命令プログラム644と、入出力処理プログラム646と、アクセス処理プログラム648とを含む。システムプログラム1064に含まれる各プログラムは、典型的には、コントローラのメーカあるいは専門のソフトウェア会社などによって提供される。
ユーザプログラム1066は、ユーザにおける制御目的に応じて作成される。実施の形態1において、ユーザプログラム1066は、例えばサポート装置30において生成される。ユーザプログラム1066は、サポート装置30からUSBケーブルを介してCPUユニット100に転送され、ストレージ106に格納される。
ユーザプログラム1066は、シーケンス命令プログラム644と協働して、ユーザにおける制御目的を実現する。すなわち、ユーザプログラム1066は、シーケンス命令プログラム644によって提供される命令、関数、機能モジュールなどを利用することで、プログラムされた動作を実現する。
スケジューラプログラム642は、予め定められた優先度に従ってプログラムをプロセッサ102に実行させる。プログラムは、実行タイミングが保証されている必要性が高いプログラムと、実行タイミングが保証されている必要性が低いプログラムとを含む。たとえば、複数の制御装置を協働して動かすためのプログラムは、実行タイミングが保証されている必要性が高い。一方、通信設定を行なうためのプログラムは、実行タイミングが保証されている必要性が低い。実行タイミングが保証されている必要性が高いプログラムは、定周期で繰り返し実行される定周期タスクに設定される。これに対して、実行タイミングが保証されている必要性が低いプログラムは、定周期タスクに設定されたプログラムの実行を妨げないように、定周期タスクを実行していないプロセッサ102の空き時間に実行される。なお、ここで、「タスク」とはコンピューティング資源を割当てる制御の対象となる基本単位のことをいう。スケジューラプログラム642は、プロセッサ102が実行する各プログラムについて、処理開始および処理中断、ならびに、処理中断後の処理再開を制御する。
シーケンス命令プログラム644は、ユーザプログラム1066の実行に伴って、ユーザプログラム1066内で指定されているシーケンス命令の実体を呼び出して、その命令の内容を実現するための命令コード群を含む。
入出力処理プログラム646は、コントローラ10に接続されたフィールド機器との間で、入力データの取得および出力データの送信を管理するためのプログラムである。
アクセス処理プログラム648は、ユーザプログラム1066の実行に伴って、通信設定を行なうために必要な処理を実現するための命令コード群を含む。
<D.サポート装置の装置構成>
図5は、サポート装置30の装置構成の一例を示す模式図である。サポート装置30は、一例として、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコン)を用いて実現される。
サポート装置30は、プロセッサ31と、メインメモリ32と、入力部33と、出力部34と、ストレージ35と、光学ドライブ36と、通信インターフェィスの一実施例であるUSBコントローラ37とを含む。これらのコンポーネントは、プロセッサバス38を介して接続されている。
プロセッサ31は、CPUやGPUなどで構成され、ストレージ35に格納されたプログラムを読出して、メインメモリ32に展開して実行することで、後述するような各種処理を実現する。
メインメモリ32は、DRAMやSRAMなどの揮発性記憶装置などで構成される。ストレージ35は、例えば、HDDやSSDなどの不揮発性記憶装置などで構成される。
ストレージ35には、ユーザプログラム1066を作成するにあたって利用される各種データおよび、ユーザプログラム1066の開発を支援するためのプログラムが格納される。
入力部33は、キーボードやマウスなどで構成され、サポート装置30に対するユーザ操作を受付ける。
出力部34は、ディスプレイ、各種インジケータ、プリンタなどで構成され、プロセッサ31からの処理結果などを出力する。実施の形態1において、出力部34はディスプレイで構成されているものとする。
USBコントローラ37は、USB接続を介して、CPUユニット100などとの間のデータを遣り取りする。
サポート装置30は、光学ドライブ36を有しており、コンピュータ読取可能なプログラムを非一過的に格納する記録媒体36a(例えば、DVD(Digital Versatile Disc)などの光学記録媒体)から、その中に格納されたプログラムが読取られてストレージ35などにインストールされる。
サポートプログラム354やファンクションブロック400などは、コンピュータ読取可能な記録媒体36aを介してサポート装置30にインストールされてもよいが、ネットワーク上のサーバ装置などからダウンロードする形でインストールするようにしてもよい。また、本実施の形態に係るサポート装置30が提供する機能は、OSが提供するモジュールの一部を利用する形で実現される場合もある。
図5には、プロセッサ31がプログラムを実行することで、サポート装置30として必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASICまたはFPGAなど)を用いて実装してもよい。
<E.サポート装置30のソフトウェア構成>
図6は、サポート装置30のソフトウェア構成を示す模式図である。図6には、実施の形態1に係る各種機能を提供するためのソフトウェア群の一例を示す。これらのソフトウェア群に含まれる命令コードは、適切なタイミングで読み出され、サポート装置30のプロセッサ31によって実行される。
サポート装置30で実行されるソフトウェアは、少なくとも、OS352と、サポートプログラム354とを含む。これらのプログラムは、ストレージ35に格納されている。また、プログラムの実行に利用されるデータは、ファンクションブロックライブラリ(以下、「FBライブラリ」ともいう。)356と、コマンドライブラリ358とを含み、ストレージ35に格納されている。
OS352は、サポートプログラム354を実行可能な基本的な環境を提供する。サポートプログラム354は、サポート装置30が提供する機能を実現するためのプログラムであって、ユーザプログラム1066を作成するための機能を提供する。
FBライブラリ356は、ユーザプログラム1066を生成するための命令情報ごとに規定されたプログラム部品であるファンクションブロックのライブラリである。FBライブラリ356は、通信の設定に必要な命令に対応するファンクションブロック400を含む。実施の形態1において、たとえば、製造現場2とリモートサイト4との間でのVPN設定を中継ユニット200に書き込むという命令に対応するファンクションブロック、中継ユニット200に書き込まれたVPN設定を読み出す命令に対応するファンクションブロック、中継ユニット200に書き込まれた設定を有効にする命令に対応するファンクションブロックなどがFBライブラリ356に含まれる。
ユーザは、ファンクションブロック400の実行に必要なパラメータを入力部33を介して入力することができ、パラメータを入力したファンクションブロック400を組合わせることでユーザプログラム1066を作成する。
コマンドライブラリ358は、中継ユニット200とCPUユニット100との間で行われるコマンドの送受信にかかるプロトコルを含む変換情報582のライブラリである。より具体的には、プロトコルは、コマンドの送受信の手順、およびコマンドの種類とを含む情報である。CPUユニット100は、変換情報582に含まれるプロトコルに従い中継ユニット200に対して通信設定を行う。
変換情報582は、中継ユニット200がサポートするコマンドの種類ごとにコマンド群580としてコマンドライブラリ358に格納されている。たとえば、A社のコマンドに変換するためのコマンド群580AとB社のコマンドに変換するためのコマンド群580Bなどがコマンドライブラリ358に格納されている。各コマンド群580は、各々、ファンクションブロック400を対応するコマンドに変換する変換情報582を含む。
これらのファンクションブロック400およびコマンドライブラリ358は、たとえば、コントローラのメーカあるいは専門のソフトウェア会社などが記録媒体36aに格納させた状態で流通する。ユーザは、記録媒体36aに格納されたファンクションブロック400およびコマンドライブラリ358をサポート装置30にインストールすることで、ファンクションブロック400およびコマンドライブラリ358を利用することができる。
サポートプログラム354は、エディタ541と、コンパイラ542と、デバッガ543と、GUI(Graphical User Interface)モジュール544と、シミュレータ545と、データ格納部550とを含む。
エディタ541は、ユーザプログラム1066のソースプログラムを作成するための入力および編集といった機能を提供する。より具体的には、エディタ541は、キーボードまたはマウスで構成された入力部33をユーザが操作してユーザプログラム1066のソースプログラムを作成する機能に加えて、作成したソースプログラムの保存機能および編集機能を提供する。エディタ541は、設計者の操作に応じて、FBライブラリ356から選択されたファンクションブロック400を用いて、ユーザプログラム1066のソースプログラムを作成する。
コンパイラ542は、ソースプログラムをコンパイルして、コントローラ10で実行可能なプログラム形式のユーザプログラム1066を生成する機能を提供する。
デバッガ543は、ユーザプログラム1066のソースプログラムに対してデバッグを行うための機能を提供する。
GUIモジュール544は、設計者が各種データやパラメータなどを入力するためのユーザインターフェイス画面を提供する機能を有する。当該ユーザインターフェイス画面は、ディスプレイで構成された出力部34に表示される。
シミュレータ545は、サポート装置30内にコントローラ10でのプログラムの実行をシミュレーションする環境を構築する。
データ格納部550には、作成されたユーザプログラム1066が格納される。このユーザプログラム1066は、一または複数のファンクションブロック400を含む。データ格納部550に格納されたユーザプログラム1066は、USBケーブルを介してCPUユニット100に送られ、設定される。このとき、ユーザプログラム1066に含まれるファンクションブロック400に対応する変換情報582も併せてCPUユニット100に送られ、設定される。なお、実施の形態1において、サポート装置30は、ファンクションブロック400に対応する変換情報582を各コマンド群580からそれぞれ抽出し、抽出した全ての変換情報582をCPUユニット100に送る。
これにより、通信設定を行なうためのユーザプログラムを、FAの分野で利用されるIECプログラムで作成することができる。その結果、IECプログラムの設計者が、新たに通信機能を設定するための学習をしなくとも、通信機能にかかる設定を行なうためのユーザプログラムを作成することができる。
なお、図6に示す例では、FBライブラリ356およびコマンドライブラリ358がサポート装置30のストレージ35に格納されているものとしたが、FBライブラリ356およびコマンドライブラリ358のうちの少なくとも一方が、サポート装置30とネットワークを介して接続可能なサーバ装置に格納されていてもよい。
<F.通信設定に係るプログラムの実行により実現される機能構成>
図7は、通信設定に係るプログラムの実行により実現されるコントローラ10の機能構成を示す図である。
図7に示す各種機能は、ユーザプログラム1066に含まれる通信設定に関するファンクションブロック400の実行条件が成立し、ファンクションブロック400が示す命令がプロセッサ102により実行されることで実現される。
CPUユニット100は、定周期タスク実行部140と、通信設定部160と、変換情報特定部180とを含む。中継ユニット200は、設定情報格納部220と、設定情報更新部240とを含む。
定周期タスク実行部140は、定周期タスクを定周期で繰り返し実行する。定周期タスク実行部140は、少なくとも、ファンクションブロック400が示す命令を実行するか否かの判断を行う。ファンクションブロック400が示す命令の実行条件が成立すると、定周期タスク実行部140は、通信設定部160にファンクションブロック400が示す命令の実行を指示する。
変換情報特定部180は、CPUユニット100に接続されている中継ユニット200が解釈可能なコマンドを特定し、特定したコマンドに変換するための変換情報582を特定する。より具体的には、変換情報特定部180は、中継ユニット200のデバイス情報260を中継ユニット200から取得し、デバイス情報260に基づいて変換情報582を特定する。デバイス情報260は、たとえば、MAC(Media Access Control)アドレスが想定される。
より具体的には、サポート装置30からユーザプログラム1066がインストールされるときには、ユーザプログラム1066に含まれる1または複数のファンクションブロック400の各々に対応する変換情報582が各コマンド群580から抽出され、CPUユニット100にインストールされる。この変換情報582の集合を変換情報群182とする。変換情報特定部180は、変換情報群182から、通信設定部160が実行するファンクションブロック400と、特定したデバイス情報260とに基づいて変換情報582を特定する。たとえば、CPUユニット100に接続されている中継ユニット200がA社のコマンドを解釈し、通信設定部160がファンクションブロックAの命令を実行する場合、変換情報特定部180は、変換情報aaを特定することとなる。
通信設定部160は、変換情報特定部180が特定した変換情報582に基づいて、ファンクションブロック400が示す命令を中継ユニット200との間でコマンドの遣り取りを行なうことで実行する。
定周期タスク実行部140は定周期でタスクを実行し、当該タスクには通信設定部160の命令の実行状況を取得する処理が含まれる。すなわち、定周期タスク実行部140は、通信設定部160が行なう命令の実行を監視する。
中継ユニット200の設定情報格納部220は、通信設定に関する情報が格納されている。中継ユニット200とCPUユニット100との間でコマンドが遣り取りされる中で、設定情報格納部220に格納された通信設定に関する情報(設定情報222)は改変される。
中継ユニット200の設定情報更新部240は、通信設定部160とコマンドの遣り取りをし、コマンドの遣り取りをする中で、設定情報格納部220に設定情報222を格納する。
製造現場2においては、CPUユニット100を中心にフィールド装置群40などの装置が制御される。実施の形態2において、CPUユニット100は、中継装置である中継ユニット200と遣り取りができるコマンドに変換した上で、中継ユニット200との間でデータの遣り取りを行い、中継ユニット200の通信設定を行う。すなわち、実施の形態1の通信システム1は、フィールド装置群40などの装置を制御する制御装置であるCPUユニット100から、通信を中継する中継装置である中継ユニット200の状態を変えることができる。
そのため、製造現場2で働くユーザは、セキュリティや通信に対する専門的な知識を身につけなくとも、フィールド装置群40などの装置を制御するときと同じように中継装置である中継ユニット200の状態を変えることができる。実施の形態1においては、CPUユニット100は、中継装置の状態として、通信の設定を変更することができる。また、実施の形態1において、CPUユニット100から中継ユニット200の状態を変える方法として、ユーザプログラムを実行するという方法が採用されている。
<G.プログラム例>
(G1.ユーザプログラム)
図8および図9を参照して、ファンクションブロックの使用例について説明する。図8および図9は、通信設定に係るファンクションブロックを組み込んだユーザプログラム1066の例を示す図である。
図8および図9に示すユーザプログラム1066は、ラダープログラムで規定されている。このユーザプログラム1066は、製造現場2において異常が発生し、コントローラ10がメンテナンスモードに設定された場合に、リモートサイト4からメンテナンスを行えるようにVPNの設定を行なうことが規定されている。
ユーザプログラム1066は、入力要素IN1〜IN6と、ファンクションブロックFB1〜FB3と、ストラクチャードテキストSTと、出力要素OUT1〜OUT5とで規定されている。
ファンクションブロックFB1は、「RC_SetVPNServerSetting」と称される。ファンクションブロックFB1は、製造現場2とリモートサイト4との間でのVPN設定を中継ユニット200に書き込むという命令を示している。ファンクションブロックFB1は、中継ユニット200に書き込む設定条件の入力を受け付ける入力部412A〜412Kと、書き込み処理を行った結果を出力するための出力部414A〜414Dとを含む。
入力部412B〜412KはVPNの設定条件を示しており、入力部412B〜412Kに入力された設定条件にしたがってVPNが規定される。
「Execute」として示される入力部412Aは、書き込み処理を実行するか否かを指定するための設定を受け付ける。一例として、入力部412Aは、「True」(ON)または「False」(OFF)の入力を受け付ける。入力部412Aに「False」が入力されている限り、書き込み処理は実行されない。図8に示す例では、入力要素IN3の値が「True」(ON)となったときに書き込み処理が実行される。
「VPNServerAddress」として示される入力部412Bは、VPNサーバとして利用するIPアドレスを指定するための入力を受け付ける。このIPアドレスは、中継ユニット200に予め設定されている1または複数のIPアドレスのうちの一のIPアドレスである。CPUユニット100は、入力部412Bに入力されたIPアドレスに従って、通信設定を行なう対象を特定する。図8に示す例では、入力部412Bに「192.168.1.254/24」が入力されており、CPUユニット100は、中継ユニット200に割り振られたIPアドレスのうち、「192.168.1.254/24」をVPNサーバ用のアドレスとして利用する。
「LoginID」として示される入力部412Cは、VPNの設定を行なうためのユーザIDの入力を受け付ける。「LoginPassword」として示される入力部412Dは、VPNの設定を行なうためのパスワードの入力を受け付ける。ユーザIDおよびパスワードは、中継ユニット200に対してリモートアクセスする際に必要な情報である。
「VPNSeverConfigName」として示される入力部412Eは、任意に設定可能な設定するVPNサーバの名称の入力を受け付ける。
「VPNClientAddress」として示される入力部412Fは、フィールドネットワークの外部のネットワーク上で、中継ユニット200に対してアクセスする中継器4bに割り当てられているIPアドレスを指定するための入力を受け付ける。図8に示す例では、入力部412Fに「20.0.0.1」が入力されており、中継ユニット200は、「20.0.0.1」のIPアドレスが割り当てられた中継器4bからのアクセスを許可する。
「PreSharedKey」として示される入力部412Gは、リモートアクセスを許可するか否かを決定するための事前共有鍵を指定するための入力を受け付ける。
「AuthenticationAlgorithm」として示される入力部412Hは、設定されたVPNにおいて利用される認証アルゴリズムを指定するための入力を受け付ける。認証アルゴリズムは、たとえば、MD5(Message Digest Algorithm 5),SHA(Secure Hash Algorithm)−1,HMAC(Hash-based Message Authentication Code)などが想定される。
「EncryptionAlgorithm」として示される入力部412Iは、設定されたVPNにおいて利用される暗号アルゴリズムを指定するための入力を受け付ける。暗号アルゴリズムは、たとえば、DES(Data Encryption Standard),3DES,AES(Advanced Encryption Standard)などが想定される。
「DestinationIPAddress」として示される入力部412Jは、設定されたVPNにアクセスする機器のIPアドレスを指定するための入力を受け付ける。図8に示す例では、入力部412Jに「192.168.2.0」が入力されており、中継ユニット200は、「192.168.2.0」が割り当てられた機器のアクセスを許可する。
「DestinationNetworkMask」として示される入力部412Kは、入力部412Jに入力されたIPアドレスのネットマスクを指定するための入力を受け付ける。
書き込み処理が正常に実行された場合には、正常終了を示す信号が、「Done」として示される出力部414Aから出力される。書き込み処理の実行中には、書き込み処理中を示す信号が、「Busy」として示される出力部414Bから出力される。VPN設定が正常に書き込まれなかった場合には、異常終了を示す信号が、「Error」として示される出力部414Cから出力される。この場合には、さらに、エラーの内容を識別するためのエラーIDが、「ErrorID」として示される出力部414Dから出力される。
ファンクションブロックFB2は、「RC_ApplyVPNServerSetting」と称される。ファンクションブロックFB2は、中継ユニット200に書き込まれたVPN設定を有効にする命令を示している。ファンクションブロックFB2は、有効にするVPN設定を指定するための入力を受け付ける入力部422A〜422Eと、有効化処理を行った結果を出力するための出力部424A〜424Dとを含む。
入力部422B〜424Eが受け付ける情報は、有効にするVPNサーバを特定するための情報である。入力部422B〜424Eの各々が受け付ける詳細な情報は、入力部412B〜414Eが受け付ける情報と共通するため、説明を省略する。また、出力部424A〜424Dが出力する情報は、出力部414A〜414Dが出力する情報と共通するため、説明を省略する。
ファンクションブロックFB3は、「RC_GetVPNServerSetting」と称される。ファンクションブロックFB3は、中継ユニット200に書き込まれたVPN設定を読み出す命令を示している。ファンクションブロックFB3は、読み出す対象のVPN設定を指定するための入力を受け付ける入力部432A〜432Eと、有効化処理を行った結果を出力するための出力部434A〜434Jとを含む。
入力部432A〜434Eが受け付ける情報は、入力部412A〜414Eが受け付ける情報と共通するため、説明を省略する。また、出力部434A〜434Dが出力する情報は、出力部414A〜414Dが出力する情報と共通するため、説明を省略する。出力部414E〜414Jが出力する情報は、入力部432A〜434Eに入力されて指定されたVPN設定の結果である。出力部414E〜414Jの全てから情報が出力されたことに伴って、正常終了を示す信号が、「Done」として示される出力部414Aから出力される。
ストラクチャードテキストSTは、「RC_CheckVPNServerSetting」と称される。ストラクチャードテキストSTは、書き込まれたVPN設定の情報と、読み出されたVPN設定の情報とが一致しているか否かを判定するための命令を示している。ストラクチャードテキストSTが示す命令を設定照合処理とする。より具体的には、ストラクチャードテキストSTは、ファンクションブロックFB0の入力部412F〜入力部412Kに入力された各情報と、ファンクションブロックFB0の出力部432E〜432Jから出力された各情報とが一致している場合に、変数「CheckVPNDone」の値を「True」(ON)にし、いずれか一つでも一致していなけらば、変数「CheckVPNDone」の値を「False」(OFF)にする。
入力要素IN1〜IN6の値は、割付けられている変数に応じて変化する。より具体的には、入力要素IN1には、変数「Status_Err」が割り当てられている。変数「Status_Err」は、BOOL型であり、初期値は、「False」(=OFF)である。変数「Status_Err」の値は、コントローラ10の状態がエラー状態となったことに基づいて、「True」(ON)に変化する。その他の場合、変数「Status_Err」の値は、「False」(OFF)となる。
入力要素IN2には、変数「Mode_maintenance」が割り当てられている。変数「Mode_maintenance」は、BOOL型であり、初期値は、「False」(=OFF)である。変数「Mode_maintenance」の値は、ユーザがHMI20を操作して、コントローラ10をリモートメンテナンスを実行するモードに変化させたことに基づいて、「True」(ON)に変化する。その他の場合、変数「Mode_maintenance」の値は、「False」(OFF)となる。なお、リモートメンテナンスを実行するモードに変化させる契機は、HMI20からの操作に限らず、コントローラ10に設けられた図示しないスイッチへの操作によるものであってもよい。
入力要素IN3には、変数「SetVPNFlag」が割り当てられている。変数「SetVPNFlag」は、BOOL型であり、初期値は、「False」(=OFF)である。変数「SetVPNFlag」の値は、出力要素OUT1に関連付けられている。出力要素OUT1から「True」(ON)が出力されたことに基づいて、「True」(ON)に変化する。その他の場合、変数「SetVPNFlag」の値は、「False」(OFF)となる。なお、出力要素OUT1は、入力要素IN0および入力要素IN1がいずれも「True」(ON)となるときに、「True」(ON)を出力し、その他の場合、「False」(OFF)を出力する。
入力要素IN4には、変数「SetVPNDone」が割り当てられている。変数「SetVPNDone」は、BOOL型であり、初期値は、「False」(=OFF)である。変数「SetVPNDone」の値は、出力要素OUT2に関連付けられている。出力要素OUT2から「True」(ON)が出力されたことに基づいて、「True」(ON)に変化する。その他の場合、変数「SetVPNDone」の値は、「False」(OFF)となる。なお、出力要素OUT2は、ファンクションブロックFB1の出力部414Aから正常終了を示す信号が出力されると、「False」(=OFF)から「True」(ON)に変化する。
入力要素IN5には、変数「ApplyVPNDone」が割り当てられている。変数「ApplyVPNDone」は、BOOL型であり、初期値は、「False」(=OFF)である。変数「ApplyVPNDone」の値は、出力要素OUT3に関連付けられている。出力要素OUT3から「True」(ON)が出力されたことに基づいて、「True」(ON)に変化する。その他の場合、変数「ApplyVPNDone」の値は、「False」(OFF)となる。なお、出力要素OUT3は、ファンクションブロックFB2の出力部424Aから正常終了を示す信号が出力されると、「False」(=OFF)から「True」(ON)に変化する。
入力要素IN6には、変数「GetVPNDone」が割り当てられている。変数「GetVPNDone」は、BOOL型であり、初期値は、「False」(=OFF)である。変数「GetVPNDone」の値は、出力要素OUT4に関連付けられている。出力要素OUT4から「True」(ON)が出力されたことに基づいて、「True」(ON)に変化する。その他の場合、変数「GetVPNDone」の値は、「False」(OFF)となる。なお、出力要素OUT4は、ファンクションブロックFB3の出力部434Aから正常終了を示す信号が出力されると、「False」(=OFF)から「True」(ON)に変化する。
出力要素OUT5には、変数「CheckVPNDone」が割り当てられている。変数「CheckVPNDone」は、ストラクチャードテキストSTにおいて、書き込まれたVPN設定の情報と、読み出されたVPN設定の情報とが全て一致している場合に「True」(ON)となり、少なくとも一の情報が一致しなかった場合およびストラクチャードテキストSTのプログラムが実行されていないときに「False」(OFF)となる。
(G2.実行タイミング)
図10は、図8および図9に示すユーザプログラムを実行したときの定周期タスク実行部140および通信設定部160が処理を実行するタイミングを示す図である。
定周期タスク実行部140は、コントローラ10の制御周期に従ってユーザプログラム1066を繰り返し実行する。定周期タスク実行部140において実行される一連の処理は、制御周期Tごとに必ず1周期実行される。定周期タスク実行部140が実行する一連の処理(優先処理142と称する)には、I/Oリフレッシュ処理144が含まれる。I/Oリフレッシュ処理144においては、変数の値が更新される。
定周期タスク実行部140は、I/Oリフレッシュ処理144を実行することで変数の値を更新し、その後の処理で、通信設定にかかる処理の実行条件の成立の有無を判断する。通信設定にかかる処理の実行条件が成立している場合、通信設定部160は、優先処理142の実行が完了した後、実行条件の成立している通信設定にかかる処理を実行する。通信設定部160は、次の周期が開始されると実行中の処理を中断し、その後、優先処理142の実行が再度完了すると、中断した処理を再開する。
図10に示す例においては、タイミングt1でエラー信号が出力され、タイミングt2でメンテナンスモードに設定されたものとする。メンテナンスモードに設定されたタイミングt2における制御周期Tを第1周期とすると、第2周期に実行されるI/Oリフレッシュ処理144で、変数「SetVPNFlag」は「False」(=OFF)から「True」(ON)に変化する。これにより、図8のファンクションブロックFB1が示す書き込み処理の実行条件が成立する。
書き込み処理は、通信設定部160が実行する処理である。通信設定部160は、第2周期の優先処理142が完了したタイミングt3から書き込み処理を開始し、第3周期の始まるタイミングt4で書き込み処理を中断する。その後、第3周期の優先処理142が完了したタイミングt4から中断した書き込み処理を再開する。
通信設定部160は、書き込み処理の実行中は処理の実行中を示す信号を出力し、処理が正常に終了すると、正常終了を示す信号を出力する。図10に示す例では、タイミングt5で書き込み処理が終了したものとする。
タイミングt5で書き込み処理が終了すると、第5周期で実行されるI/Oリフレッシュ処理144で、変数「SetVPNDone」は「False」(=OFF)から「True」(ON)に変化する。これにより、図8のファンクションブロックFB2が示す有効化処理の実行条件が成立する。
このように、図8および図9に示すユーザプログラム1066の処理は、通信設定部160と定周期タスク実行部140とが協働して進める。そして、ストラクチャードテキストSTが示す設定照合処理が完了した以降は、他の実行条件が成立するまで通信設定部160は、処理を行わない。
(G3.CPUユニットと中継ユニットとの間のコマンドの遣り取り)
図8および図9に示すユーザプログラムを実行したときにCPUユニット100の通信設定部160と中継ユニット200の設定情報更新部240との間で行われる具体的なコマンドの遣り取りについて説明する。図11は、通信設定部160と設定情報更新部240との間のコマンドの遣り取りを示す図である。図11においては、通信設定処理の一例として書き込み処理について説明する。なお、図11においては、図10に示すような処理の中断、再開の記載を省略している。また、ステップは、以下、「S]と省略する。
前述のように、通信設定部160は、変換情報特定部180が特定した変換情報582に基づいて、ファンクションブロック400が示す命令を中継ユニット200との間でやり取り可能なコマンドに変換し、中継ユニット200との間でコマンドの遣り取りを行ない、ファンクションブロック400が示す命令を実行する。
より具体的には、通信設定部160は、書き込み処理の実行条件が成立して(S100)、定周期タスク実行部140から書き込み処理の実行について指示を受ける(S102)。通信設定部160は、受けた指示、すなわち実行するファンクションブロック400の種類に対応する変換情報582を特定する(S104)。より具体的には、通信設定部160は、変換情報特定部180に変換情報582の特定を指示し、特定結果を変換情報特定部180から受けることで、変換情報582を特定する。
通信設定部160は、S104において特定した変換情報582に従ってファンクションブロックFB1が示す命令を解釈し、コマンドの種類、および処理手順などの処理の内容を決定する(S106)。
通信設定部160は、S106においてい決定した事項に従って、中継ユニット200との間でのコマンドの遣り取りを行う。図11に示す例では、S108〜S128の処理が実行される。なお、S108〜S128の処理は一例であって、この処理は中継ユニット200の機種に応じて異なる場合もあり、また、遣り取りを行う際に利用されるコマンド(言語)も異なる場合がある。
通信設定部160は、たとえば、新たに設定するユーザ名、パスワードが利用可能か否かの確認を設定情報更新部240に対して行う(S108)。
設定情報更新部240は、設定情報格納部220に格納されている情報に基づいて新たに設定するユーザ名、パスワードが利用可能か否かを確認し、確認結果を通信設定部160に通知する(S110)。
通信設定部160は、設定情報更新部240から通知された確認結果に基づいて、異常があるか否かを判定する(S112)。通信設定部160は、異常がある場合(S112においてYES)、より具体的には、新たに設定するユーザ名、パスワードを利用できない場合、異常終了を示す信号および発生した異常を出力する(S114)。通信設定部160は、異常がない場合(S112においてNO)、より具体的には、新たに設定するユーザ名、パスワードを利用できる場合、指定されたIPアドレスをVPNサーバとして利用可能か否かの確認を設定情報更新部240に対して行う(S116)。
設定情報更新部240は、設定情報格納部220に格納されている情報および中継ユニット200に対して割り当てられているポートの情報に基づいて指定されたIPアドレスをVPNサーバとして利用可能か否かを確認し、確認結果を通信設定部160に通知する(S118)。
通信設定部160は、設定情報更新部240から通知された確認結果に基づいて、異常があるか否かを判定する(S120)。通信設定部160は、異常がある場合(S120においてYES)、より具体的には、新たにIPアドレスを利用できない場合、異常終了を示す信号および発生した異常を出力する(S122)。通信設定部160は、異常がない場合(S120においてNO)、より具体的には、新たにIPアドレスを利用できる場合、設定内容にかかる情報の書き込み指示を設定情報更新部240に対して行う(S124)。
設定情報更新部240は、設定内容にかかる情報を設定情報格納部220に格納し、格納の完了を通信設定部160に対して通知する(S126)。
通信設定部160は、処理が正常に終了したことを示す信号を出力する(S128)。定周期タスク実行部140は、処理が正常に終了したことを受けて、出力要素OUT2を「False」(=OFF)から「True」(ON)に変化させる。
これによりファンクションブロックFB2の実行条件が成立し、次の処理が実行される。なお、図11においては、ファンクションブロックFB2以降の処理は省略する。
このように、通信設定部160は、ユーザが選択した一の命令(ファンクションブロック)を実行するために、設定情報更新部240との間で実行する処理の手順などを規定し、規定した手順に従って処理を実行することで選択された命令を行う。
<H.通信設定の具体例>
図12は、サポート装置30において用意されている命令の一例である。実施の形態1においては、中継ユニット200にVPN設定を書き込むという命令、中継ユニット200に書き込まれたVPN設定を有効にする命令、および中継ユニット200に書き込まれたVPN設定を読み出す命令を一例として説明した。中継ユニット200との間でのデータの遣り取りが必要な命令としては、図12に示す命令が想定される。
図12においては、各設定対象について、当該設定対象に対して想定される命令が「チェック印」で示されている。また、各設定対象について、当該設定対象に設定において必要なパラメータが設定パラメータの列に示されている。
具体的には、CPUユニット100から中継ユニット200に対して設定可能な事項として、IPアドレス、IPアドレスルーティング(通信経路)、通信ポート、ポートミラーリング、NAT(Network Address Translation)またはNAPT(Network Address Port Translation)、VLAN(Virtual LAN)、Qos(Quality of Service)、ユーザ認証、ACL(Access Control List:アクセス制限リスト)、ファイアフォール設定、電子証明書、ステータス、ログ、レポート通知などが挙げられる。
設定内容は、取得(Get)、書込(Set)、反映(Apply)、一覧取得(GetList)、クリア(Clear)、および有効・無効(Enable/Disable)が設けられている。取得(Get)は、設定事項に関する情報を取得することを意味する。書込(Set)は、設定事項に関する情報を書き込むことを意味する。反映(Apply)は、設定事項に関する情報を反映することを意味する。一覧取得(GetList)は、設定事項に関する情報の一覧を取得することを意味する。たとえば、一覧取得(GetList)の命令が実行されると、中継装置に接続されているすべての機器から設定事項に関する情報を取得できたり、設定事項に関わるすべての情報を取得できたりする。クリア(Clear)は、設定事項に関する情報を消去したり初期値にもどしたりすることを意味する。有効・無効(Enable/Disable)は、設定された事項の有効・無効を意味する。
パラメータは、命令を実行する際に入力または出力される情報である。IPアドレスに関する設定においては、たとえば、IPアドレス,ネットワークマスク,デフォルトゲートウェイ,DNS(Domain Name System)サーバー,ホスト名などがパラメータとして規定されている。また、IPアドレスについて用意されている命令としては、たとえば、取得、書込、反映、一覧取得、およびクリアを用意することが可能である。
IPアドレスルーティングに関する設定においては、たとえば、IPルーターテーブルなどがパラメータとして規定されている。また、IPアドレスルーティングについて用意されている命令としては、たとえば、取得、書込、反映、一覧取得、およびクリアを用意することが可能である。
通信ポートに関する設定においては、通信速度、双方向通信(Duplex)の方式などがパラメータとして規定されている。通信ポートについて用意されている命令としては、たとえば、取得、書込、反映、一覧取得、およびクリアを用意することが可能である。
ポートミラーリングに関する設定においては、たとえば、ミラーリングポート、モニタポートなどがパラメータとして規定されている。ポートミラーリングについて用意されている命令としては、たとえば、取得、書込、反映、一覧取得、クリア、および有効・無効を用意することが可能である。
NATまたはNATPに関する設定においては、たとえば、使用するIPアドレス、変換ルールを示すポート変換テーブルなどがパラメータとして規定されている。NATまたはNATPについて用意されている命令としては、たとえば、取得、書込、反映、一覧取得、クリア、および有効・無効を用意することが可能である。
VLANに関する設定においては、たとえば、VLAN ID、VLANのポート番号(VLAN PortNumber)、アクセスポートまたはトランクポートとして設定されるポート番号などがパラメータとして規定されている。VLANについて用意されている命令としては、たとえば、取得、書込、反映、一覧取得、クリア、および有効・無効を用意することが可能である。
Qosに関する設定においては、たとえば、フレームを転送する際の優先度がパラメータとして規定されている。Qosについて用意されている命令としては、たとえば、取得、書込、反映、一覧取得、クリア、および有効・無効を用意することが可能である。
ユーザ認証に関する設定においては、たとえば、ユーザ名やパスワードなどの中継ユニット200のユーザ情報がパラメータとして規定されている。ユーザ認証について用意されている命令としては、たとえば、取得、書込、反映、一覧取得、クリア、および有効・無効を用意することが可能である。
ACLについて用意されている命令としては、たとえば、取得、書込、反映、一覧取得、クリア、および有効・無効を用意することが可能である。
ファイアウォール設定について用意されている命令としては、たとえば、取得、書込、反映、一覧取得、クリア、および有効・無効を用意することが可能である。
電子証明書に関する設定において、たとえば、ネットワーク機器の電子証明書がパラメータとして規定されている。たとえば、電子証明書が出力される。電子証明書について用意されている命令としては、たとえば、取得、書込、反映、一覧取得、クリア、および有効・無効を用意することが可能である。
ステータスに関する設定においては、たとえば、中継ユニット200のステータスがパラメータとして規定されている。たとえば、中継ユニット200のステータスが出力される。ステータスについて用意されている命令としては、たとえば、取得、反映、一覧取得、および有効・無効を用意することが可能である。
ログに関する設定においては、たとえば、中継ユニット200のログがパラメータとして規定されている。たとえば、中継ユニット200のログが出力される。ログについて用意されている命令としては、たとえば、反映、一覧取得、クリアおよび有効・無効を用意することが可能である。
レポート通知に関する設定においては、たとえば、ログの通知先の情報であるアドレスがパラメータとして規定されている。レポート通知について用意されている命令としては、たとえば、取得、書込、反映、一覧取得、クリアおよび有効・無効を用意することが可能である。
<H.変形例>
(変形例1)
実施の形態1において、通信システム1は、中継ユニット200およびCPUユニット100から構成されるとした。通信システム1の構成は図1に示した構成に限られない。図13は、通信システムの変形例を示す図である。実施の形態1においては、中継装置は制御装置であるCPUユニット100とともに一のコントローラ10を構成する中継ユニット200であるとした。なお、中継装置は、コントローラ10を構成するものである必要はなく、たとえば、図13に示すように、ルータのような中継装置200aであってもよい。図13中のコントローラ10aは、中継ユニット200を含まない構成である。
また、制御装置の機能を構成するCPUと、中継装置の機能を構成するCPUとを備えるコントローラによって通信システムを構成してもよい。また、制御装置の機能を構成するプロセッサコアと中継装置の機能を構成するプロセッサコアとを備えるマルチコアCPUをコントローラに搭載することで通信システムを構成してもよい。
(変形例2)
実施の形態1において、通信システム1は、HMI20を含むものとしたが、HMIを備えていなくともよい。たとえば、通信設定の実行条件が、HMI20から出力される信号に基づいて成立したが、CPUユニット100に入力部を設け、当該入力部が受け付けた捜査に基づいて成立するものであってもよい。また、通信設定の実行条件は、ユーザの操作にかかわらず、コントローラ10の状態や、フィールドネットワークから出力される信号に基づいて成立するものであってもよい。なお、通信設定が変更されると、通信が途切れてしまい、製造現場2に対して多大な影響を与える虞があるため、通信設定の実行条件は、ユーザの操作により成立するようにしてもよい。
(変形例3)
実施の形態1において、CPUユニット100は、中継ユニット200の機種および命令に応じた変換情報582を備えるものとした。なお、変換情報582を備えることなく、中継ユニット200の機種ごとに命令を用意してもよい。この場合に、サポート装置30からCPUユニット100へは、CPUユニット100に接続された中継ユニット200に応じた命令を含むユーザプログラムをインストールしてもよく、また、中継ユニット200の機種ごとにユーザプログラムを用意し、すべてのユーザプログラムをCPUユニット100にインストールし、接続された中継ユニット200の種類に応じてユーザプログラムを実行するようにしてもよい。
また、CPUユニット100は、中継ユニット200の機種を中継ユニット200のデバイス情報260を取得し、デバイス情報260に基づいて変換情報582を特定するものとしたが、中継ユニット200の機種の指定をユーザに行わせるようにしてもよい。たとえば、HMI20に機種の特定を要求する画面を表示させ、HMI20への入力に基づいて変換情報582を特定するようにしてもよい。
[実施の形態2]
実施の形態1において、中継装置は、リモートサイト4のネットワークとCPUユニット100の間の通信を中継する装置であった。中継装置は、製造現場2内の各コントローラとそれらのコントローラを統括して管理するコントローラとを中継するスイッチであってもよい。図14は、実施の形態2の制御装置の概略構成を示す図である。
通信システム1aは、Ethernetスイッチである中継装置200bと、製造現場2の一または複数のラインを管理する上位コントローラ100bと、中継装置200bを介して上位コントローラ100bと接続されている一の製造ラインを管理するコントローラである機器41a〜41cとを含む。上位コントローラ100bは、本願発明の制御装置の一例である。機器41a〜41cは、中継装置を介して制御装置と接続される機器の一例である。中継装置200bは、本願発明の中継装置の一例である。
中継装置200bは、複数のポート210a〜210dを備える。なお、中継装置200bが有するポートの数は、4つに限られるものではなく、3つ以下であってもよく、また、5つ以上であってもよい。
ポート210aには、上位コントローラ100bが接続されている。ポート210bには、製品A用のラインを管理するコントローラである機器41aが接続されている。機器41aには、製品Aを製造するために必要なフィールド装置群40aが接続されている。ポート210cには、製品B用のラインを管理するコントローラである機器41bが接続されている。機器41bには、製品Bを製造するために必要なフィールド装置群40bが接続されている。ポート210dには、製品C用のラインを管理するコントローラである機器41cが接続されている。機器41cには、製品Cを製造するために必要なフィールド装置群40cが接続されている。
上位コントローラ100bは、(1)選択された一または複数の機器との間の通信を切断する(リンクオフ)、(2)選択された一または複数の機器との間の通信をつなげる(リンクオン)、(3)つなげた通信を確認するという3つの命令が組み合わされた構成のユーザプログラム1066aをストレージ106に格納する。また、ストレージ106は、フィールド装置群40a〜40cごとに、フィールド装置群を動かすための条件を含むレシピ1068a〜1068cを格納する。レシピとは、生産手順、生産品種または生産に適したパラメータなどの条件を含むデータである。すなわち、レシピ1068aは、フィールド装置群40aを動かすための条件を含み、この条件とは、製品Aを製造するための生産手順、生産品種または生産に適したパラメータなどの条件を含む。
ユーザプログラム1066bは、たとえばサポート装置30を利用して作成され、サポート装置30から上位コントローラ100bにインストールされる。また、レシピ1068a〜1068cは、サポート装置30からインストールされてもよく、また、メモリーカードなどの記憶媒体に格納された状態で上位コントローラ100bにインストールされてもよい。
上位コントローラ100bは、実施の形態1と同様、通信設定部160bを備える。通信設定部160bは、ユーザプログラム1066bに含まれる各命令を実行するにあたり、中継装置200bとの間でコマンドの遣り取りをする。
ユーザプログラム1066bは、(1)の命令→レシピの更新→(2)の命令→(3)の命令の順で行われるようにプログラミングされている。ここで、レシピとは、生産手順、生産品種または生産に適したパラメータなどの条件を含むデータである。
すなわち、上位コントローラ100bは、ユーザプログラム1066bの実行条件が成立した場合に、中継装置200bとデータを遣り取りすることでポート210bとの通信を切断し、その後、レシピを製品A用のレシピから製品C用のレシピに切り替える。上位コントローラ100bは、レシピを切り替えたのち、中継装置200bとデータを遣り取りすることで新たにポート210dとの間の通信を確立させる。そして、上位コントローラ100bは、機器Cとの間の通信が確立されたか否かのテストを行い、通信の確立が確認されると処理が正常に終了したものとする。
このように、通信の切り替え機能を有する中継装置200bを利用し、各ポートに予め機器を接続しておくことで、段取り替えを容易に行うことができる。また、予め機器を中継装置200bに接続しておくことで、段取り替えのときに機器同士を接続する線を抜いたりさしたりする必要がなく、接続線の劣化を防止することができるとともに、接続間違いを防止することができる。
§3 付記
以上のように、上記の実施の形態1,2および変形例は以下のような開示を含む。
<構成1>
中継装置(200,200A,200a,200b)を介して他の装置(4a,41A,41B,41C,41a,41b,41c)と通信可能な制御装置(100,100A,100a,100b)であって、
前記中継装置を介した通信に関する通信設定を行うための命令(FB1,FB2,FB3)を少なくとも一つ含むユーザプログラム(1066,1066A,1066a)が格納された記憶部(106,106A)と、
前記命令の実行条件が成立したことに基づき、前記中継装置との間でコマンドの送受信を行い、当該命令が示す前記通信設定を行う通信設定部(160,160A,160b)とを備える、制御装置。
<構成2>
前記中継装置との間で行われるコマンドの送受信にかかるプロトコルは、当該中継装置の種類に応じて異なり、
前記通信設定部は、前記中継装置の種類に応じたプロトコルに従い、当該中継装置との間でコマンドの送受信を行う、構成1に記載の制御装置。
<構成3>
前記記憶部は、前記プロトコルを含む変換情報(582)を、前記中継装置の種類ごとに格納し、
前記中継装置の種類を当該中継装置が備えるデバイス情報(260)に基づいて判断し、当該中継装置の種類に基づいて前記変換情報を特定する変換情報特定部(180)をさらに備え、
前記通信設定部は、前記変換情報が特定した前記変換情報に基づいて当該中継装置との間でコマンドの送受信を行う、構成2に記載の制御装置。
<構成4>
前記変換情報は、前記命令の内容ごとに前記記憶部に格納され、
前記変換情報特定部は、実行条件が成立した命令および前記中継装置の種類に基づいて前記変換情報を特定する、構成3に記載の制御装置。
<構成5>
前記ユーザプログラムは、前記通信設定にかかる命令と、当該命令に比べて優先度の高い優先命令とを含み、
前記優先命令を定周期で繰り返し実行する定周期タスク実行部(140)をさらに備え、
前記通信設定部は、前記優先命令の実行を妨げないように前記通信設定にかかる命令を行う、構成1〜構成4のうちいずれか1項に記載の制御装置。
<構成6>
前記中継装置を介して第1のフィールド装置群を管理する第1機器(41a)と、第2のフィールド装置群を管理する第2機器(41c)と通信可能に接続されており、
前記記憶部は、前記第1のフィールド装置群を動かす条件を含む第1のレシピ(1068a)と、前記第2のフィールド装置群を動かす条件を含む第2のレシピ(1068c)とを格納し、
前記ユーザプログラムは、接続先の機器を切り替える命令と、当該切り替えに応じてレシピを切り替える命令とを含む、構成1〜構成5のうちいずれか1に記載の制御装置。
<構成7>
中継装置(200,200A,200a,200b)を介して他の装置(4a,40A,40B,40C,41a,41b,41c)と通信可能な制御装置(100,100A,100a,100b)用のユーザプログラムの開発を支援するためのサポート装置(30,30A)であって、
前記中継装置を介した通信に関する通信設定を行うための命令(FB1,FB2,FB3)を少なくとも一つ格納する記憶部(106,106A)と、
前記記憶部に格納された少なくとも一つの前記命令を組み合わせて前記ユーザプログラムを生成するための制御部(31)とを備え、
前記制御部は、前記命令の実行時に前記制御装置が前記中継装置との間でコマンドの送受信を行うことが可能な形式で前記ユーザプログラムを作成する、サポート装置。
<構成8>
中継装置(200,200A,200a,200b)と、
前記中継装置を介して他の装置と通信可能な制御装置(100,100A,100a,100b)とを備え、
前記制御装置は、
前記中継装置を介した通信に関する通信設定を行うための命令(FB1,FB2,FB3)を少なくとも一つ含むユーザプログラム(1066,1066A,1066a)が格納された記憶部(106,106A)と、
前記命令の実行条件が成立したことに基づき、前記中継装置との間でコマンドの送受信を行い、当該命令が示す前記通信設定を行う通信設定部(160,160A,160b)とを備える、通信システム。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。また、実施の形態および各変形例において説明された発明は、可能な限り、単独でも、組合せても、実施することが意図される。
1,1a 通信システム、2 製造現場、4 リモートサイト、4a コンピュータ
4b 中継器、10,10a コントローラ、30,30A サポート装置、31,102 プロセッサ、32,104 メインメモリ、33 入力部、34 出力部、35,106 ストレージ、36 光学ドライブ、36a 記録媒体、38,120 プロセッサバス、40,40a,40b,40c フィールド装置群、41A,41B,41C,41 装置、41a,41b,41c,C 機器、42 リレー群、45 サーボドライバ、46 サーボモータ、100 CPUユニット、100b 上位コントローラ、100A 制御装置、106A 記憶部、108 情報系ネットワークコントローラ、110 制御系ネットワークコントローラ、112 ユニット間バスコントローラ、114 ローカルバスコントローラ、118 メモリカードインターフェイス、118a メモリカード,140 定周期タスク実行部、142 優先処理、144 I/Oリフレッシュ処理、160,160A,160b 通信設定部、180 変換情報特定部、182 変換情報群、200,200A,200b 中継装置、210a,210b,210c,210d ポート、220 設定情報格納部、222 設定情報、240 設定情報更新部、260 デバイス情報、300 電源ユニット、354 サポートプログラム、356 FBライブラリ、358 コマンドライブラリ、400 ファンクションブロック、541 エディタ、542 コンパイラ、543 デバッガ、544 GUIモジュール、545 シミュレータ、550 データ格納部、580,580A,580B コマンド群、582 変換情報、642 スケジューラプログラム、644 シーケンス命令プログラム、646 入出力処理プログラム、648 アクセス処理プログラム、1064 システムプログラム、1066,1066A,1066a,1066b ユーザプログラム、1068a,1068b,1068c レシピ。

Claims (8)

  1. 中継装置を介して他の装置と通信可能な制御装置であって、
    前記中継装置を介した通信に関する通信設定を行うための命令を少なくとも一つ含むユーザプログラムが格納された記憶部と、
    前記命令の実行条件が成立したことに基づき、前記中継装置との間でコマンドの送受信を行い、当該命令が示す前記通信設定を行う通信設定部とを備える、制御装置。
  2. 前記中継装置との間で行われるコマンドの送受信にかかるプロトコルは、当該中継装置の種類に応じて異なり、
    前記通信設定部は、前記中継装置の種類に応じたプロトコルに従い、当該中継装置との間でコマンドの送受信を行う、請求項1に記載の制御装置。
  3. 前記記憶部は、前記プロトコルを含む変換情報を、前記中継装置の種類ごとに格納し、
    前記中継装置の種類を当該中継装置が備えるデバイス情報に基づいて判断し、当該中継装置の種類に基づいて前記変換情報を特定する変換情報特定部をさらに備え、
    前記通信設定部は、前記変換情報が特定した前記変換情報に基づいて当該中継装置との間でコマンドの送受信を行う、請求項2に記載の制御装置。
  4. 前記変換情報は、前記命令の内容ごとに前記記憶部に格納され、
    前記変換情報特定部は、実行条件が成立した命令および前記中継装置の種類に基づいて前記変換情報を特定する、請求項3に記載の制御装置。
  5. 前記ユーザプログラムは、前記通信設定にかかる命令と、当該命令に比べて優先度の高い優先命令とを含み、
    前記優先命令を定周期で繰り返し実行する定周期タスク実行部をさらに備え、
    前記通信設定部は、前記優先命令の実行を妨げないように前記通信設定にかかる命令を行う、請求項1〜請求項4のうちいずれか1項に記載の制御装置。
  6. 前記中継装置を介して第1のフィールド装置群を管理する第1機器と、第2のフィールド装置群を管理する第2機器と通信可能に接続されており、
    前記記憶部は、前記第1のフィールド装置群を動かす条件を含む第1のレシピと、前記第2のフィールド装置群を動かす条件を含む第2のレシピとを格納し、
    前記ユーザプログラムは、接続先の機器を切り替える命令と、当該切り替えに応じてレシピを切り替える命令とを含む、請求項1〜請求項5のうちいずれか1に記載の制御装置。
  7. 中継装置を介して他の装置と通信可能な制御装置用のユーザプログラムの開発を支援するためのサポート装置であって、
    前記中継装置を介した通信に関する通信設定を行うための命令を少なくとも一つ格納する記憶部と、
    前記記憶部に格納された少なくとも一つの前記命令を組み合わせて前記ユーザプログラムを生成するための制御部とを備え、
    前記制御部は、前記命令の実行時に前記制御装置が前記中継装置との間でコマンドの送受信を行うことが可能な形式で前記ユーザプログラムを作成する、サポート装置。
  8. 中継装置と、
    前記中継装置を介して他の装置と通信可能な制御装置とを備え、
    前記制御装置は、
    前記中継装置を介した通信に関する通信設定を行うための命令を少なくとも一つ含むユーザプログラムが格納された記憶部と、
    前記命令の実行条件が成立したことに基づき、前記中継装置との間でコマンドの送受信を行い、当該命令が示す前記通信設定を行う通信設定部とを備える、通信システム。
JP2018222648A 2018-11-28 2018-11-28 制御装置および通信システム Active JP7159818B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2018222648A JP7159818B2 (ja) 2018-11-28 2018-11-28 制御装置および通信システム
US17/285,096 US20210349446A1 (en) 2018-11-28 2019-11-08 Control device, support device, and communication system
PCT/JP2019/043973 WO2020110668A1 (ja) 2018-11-28 2019-11-08 制御装置、サポート装置、および通信システム
EP19889785.2A EP3890247A4 (en) 2018-11-28 2019-11-08 CONTROL DEVICE, SUPPORT DEVICE AND COMMUNICATION SYSTEM
CN201980058646.6A CN112655175B (zh) 2018-11-28 2019-11-08 控制装置、支持装置及通信系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018222648A JP7159818B2 (ja) 2018-11-28 2018-11-28 制御装置および通信システム

Publications (2)

Publication Number Publication Date
JP2020088690A true JP2020088690A (ja) 2020-06-04
JP7159818B2 JP7159818B2 (ja) 2022-10-25

Family

ID=70852232

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018222648A Active JP7159818B2 (ja) 2018-11-28 2018-11-28 制御装置および通信システム

Country Status (5)

Country Link
US (1) US20210349446A1 (ja)
EP (1) EP3890247A4 (ja)
JP (1) JP7159818B2 (ja)
CN (1) CN112655175B (ja)
WO (1) WO2020110668A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE112021005610T5 (de) 2021-05-28 2023-08-24 Mitsubishi Electric Corporation Fernsystem und Fernverbindungsverfahren

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007053485A (ja) * 2005-08-16 2007-03-01 Nec Corp ネットワーク機器制御システム
WO2014133015A1 (ja) * 2013-02-27 2014-09-04 日本電気株式会社 制御装置、通信システム、スイッチ制御方法及びプログラム
WO2016157477A1 (ja) * 2015-04-01 2016-10-06 三菱電機株式会社 管理システム

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59103344A (ja) 1983-09-19 1984-06-14 Hitachi Ltd 液体スプレー装置
JP2005174306A (ja) * 2003-11-20 2005-06-30 Omron Corp 通信インタフェースおよびネットワークシステムならびにプログラマブルコントローラ
JP2005316548A (ja) * 2004-04-27 2005-11-10 Hitachi Ltd 複数種のストレージネットワークを有する計算機システムおよび情報設定方法
US8195844B2 (en) * 2007-09-20 2012-06-05 Siemens Aktiengesellschaft Systems, devices, and/or methods for managing communications
JP2012009996A (ja) * 2010-06-23 2012-01-12 National Institute Of Information & Communication Technology 情報処理システム、中継装置、および情報処理方法
EP2421298A1 (en) * 2010-08-17 2012-02-22 Alcatel Lucent Transmitting radio configuration parameters from a base station to a relay node
US8898243B2 (en) * 2013-04-08 2014-11-25 Jani Turkia Device relay control system and method
JP2015130121A (ja) * 2014-01-08 2015-07-16 ヤマハ株式会社 中継装置
CN107209492B (zh) * 2015-01-22 2019-03-26 三菱电机株式会社 可编程逻辑控制器设定文件生成辅助装置
WO2016199288A1 (ja) * 2015-06-12 2016-12-15 富士機械製造株式会社 中継装置及び製造システム
JP6477281B2 (ja) * 2015-06-17 2019-03-06 株式会社オートネットワーク技術研究所 車載中継装置、車載通信システム及び中継プログラム
JP6772899B2 (ja) * 2017-03-06 2020-10-21 横河電機株式会社 管理装置、中継装置、フィールド無線システム、設定方法、プログラム及び記録媒体
CN114258118B (zh) * 2018-05-31 2023-11-03 阿里巴巴集团控股有限公司 终端与基站的通信方法和装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007053485A (ja) * 2005-08-16 2007-03-01 Nec Corp ネットワーク機器制御システム
WO2014133015A1 (ja) * 2013-02-27 2014-09-04 日本電気株式会社 制御装置、通信システム、スイッチ制御方法及びプログラム
WO2016157477A1 (ja) * 2015-04-01 2016-10-06 三菱電機株式会社 管理システム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE112021005610T5 (de) 2021-05-28 2023-08-24 Mitsubishi Electric Corporation Fernsystem und Fernverbindungsverfahren

Also Published As

Publication number Publication date
EP3890247A4 (en) 2022-08-24
CN112655175A (zh) 2021-04-13
CN112655175B (zh) 2022-12-27
EP3890247A1 (en) 2021-10-06
WO2020110668A1 (ja) 2020-06-04
JP7159818B2 (ja) 2022-10-25
US20210349446A1 (en) 2021-11-11

Similar Documents

Publication Publication Date Title
US11099951B2 (en) Cyberattack-resilient control system design
US11212322B2 (en) Automated discovery of security policy from design data
JP2015138525A (ja) 仮想プラント監視制御装置
JP2014146070A (ja) 制御装置、制御方法、およびプログラム
WO2020110668A1 (ja) 制御装置、サポート装置、および通信システム
JP7392370B2 (ja) 制御システム、サポート装置およびサポートプログラム
US12001179B2 (en) Control subsystem having an integration framework
US20190306250A1 (en) Support apparatus, non-transitory computer-readable recording medium and setting method
JP6135247B2 (ja) 情報処理装置および情報処理プログラム
EP3547056B1 (en) Support apparatus, support program and setting method
US20230160592A1 (en) Control system
JP2019179475A (ja) サポート装置、サポートプログラム、設定方法
TW201633811A (zh) 多裝置網路管理方法與系統
WO2022254953A1 (ja) 制御システムおよび制御方法
US11651006B2 (en) Method of visualizing screen content on a data visualization system, and data visualization system for visualizing screen content
JP7163657B2 (ja) サポート装置、設定方法、および設定プログラム
JP6547020B2 (ja) Ipアドレス付与のない隔離運転での仮想コンポーネントによる機械の試運転
WO2022124153A1 (ja) ロボット制御装置、ロボット制御システム及びロボット制御方法
JP7437408B2 (ja) 設定装置、通信システム、設定方法、及びプログラム
WO2021166308A1 (ja) 監視制御装置およびクライアントpc
JP6915583B2 (ja) セーフティ制御システムおよびセーフティ制御システムにおける制御方法
US20220011735A1 (en) Support apparatus, non-transitory computer readable medium, and control apparatus
JP2024130006A (ja) サポート装置、制御方法、およびサポートプログラム
JP2024130005A (ja) サポート装置、制御方法、およびサポートプログラム
JP2020107159A (ja) コントローラシステム、制御装置および制御プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201214

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210928

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211112

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20220405

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220630

C60 Trial request (containing other claim documents, opposition documents)

Free format text: JAPANESE INTERMEDIATE CODE: C60

Effective date: 20220630

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20220711

C21 Notice of transfer of a case for reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C21

Effective date: 20220712

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220926

R150 Certificate of patent or registration of utility model

Ref document number: 7159818

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150