(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-30
(45)【発行日】2024-10-08
(54)【発明の名称】制御装置、データ通信方法およびデータ通信プログラム
(51)【国際特許分類】
G05B 19/05 20060101AFI20241001BHJP
【FI】
G05B19/05 L
(21)【出願番号】P 2021036472
(22)【出願日】2021-03-08
【審査請求日】2024-01-16
(73)【特許権者】
【識別番号】000002945
【氏名又は名称】オムロン株式会社
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】澤田 成憲
【審査官】田中 友章
(56)【参考文献】
【文献】特開2019-096211(JP,A)
【文献】米国特許出願公開第2020/0304567(US,A1)
【文献】米国特許出願公開第2020/0409340(US,A1)
【文献】米国特許出願公開第2015/0018980(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G05B 19/05
(57)【特許請求の範囲】
【請求項1】
制御対象を制御するための制御装置であって、
複数のネットワークインターフェイスと、
前記複数のネットワークインターフェイスにそれぞれ対応付けられた複数のOPC UAインスタンスと、
制御演算に係るデータオブジェクトを管理する共有アドレス空間とを備え、
前記複数のOPC UAインスタンスは、前記共有アドレス空間が管理するデータオブジェクトを共有する個別アドレス空間をそれぞれ有しており、
前記複数のOPC UAインスタンスの各々は、自身の個別アドレス空間を用いて、OPC UAに従うデータ通信を行う、制御装置。
【請求項2】
前記個別アドレス空間の各々は、前記共有アドレス空間が管理するデータオブジェクトの複製に加えて、各OPC UAインスタンスに固有のデータオブジェクトを管理する、請求項1に記載の制御装置。
【請求項3】
前記複数のOPC UAインスタンスに対するアクセス権をそれぞれ管理する管理モジュールをさらに備える、請求項1または2に記載の制御装置。
【請求項4】
前記管理モジュールは、前記共有アドレス空間が管理するデータオブジェクトのうち同一のデータオブジェクトに対するアクセスの優先度に基づいて、前記複数のOPC UAインスタンスから当該同一のデータオブジェクトに対するそれぞれのアクセス権を決定する、請求項3に記載の制御装置。
【請求項5】
前記管理モジュールは、前記同一のデータオブジェクトに対する書き込み権限を、前記複数のOPC UAインスタンスのうち1つのOPC UAインスタンスにのみ設定する、請求項4に記載の制御装置。
【請求項6】
前記アクセスの優先度は、IEEE802.1 TSNに従う優先度に従って決定される、請求項4または5に記載の制御装置。
【請求項7】
前記複数のネットワークインターフェイスのそれぞれのポートの状態を取得するポート状態制御部をさらに備え、
前記管理モジュールは、前記複数のネットワークインターフェイスのポートの状態に基づいて、アクセス権を決定する、請求項3~6のいずれか1項に記載の制御装置。
【請求項8】
前記ポート状態制御部は、前記複数のネットワークインターフェイスのポートの状態を変更するように構成される、請求項7に記載の制御装置。
【請求項9】
制御対象を制御するための制御装置におけるデータ通信方法であって、前記制御装置は複数のネットワークインターフェイスを有しており、
前記複数のネットワークインターフェイスにそれぞれ対応付けられた複数のOPC UAインスタンスを生成するステップと、
共有アドレス空間で制御演算に係るデータオブジェクトを管理するステップとを備え、前記複数のOPC UAインスタンスは、前記共有アドレス空間で管理されるデータオブジェクトを共有する個別アドレス空間をそれぞれ有しており、
前記複数のOPC UAインスタンスの各々が、自身の個別アドレス空間を用いて、OPC UAに従うデータ通信を行うステップを備える、データ通信方法。
【請求項10】
制御対象を制御するための制御装置で実行されるデータ通信プログラムであって、前記制御装置は複数のネットワークインターフェイスを有しており、前記データ通信プログラムは前記制御装置に、
前記複数のネットワークインターフェイスにそれぞれ対応付けられた複数のOPC UAインスタンスを生成するステップと、
共有アドレス空間で制御演算に係るデータオブジェクトを管理するステップとを実行させ、前記複数のOPC UAインスタンスは、前記共有アドレス空間で管理されるデータオブジェクトを共有する個別アドレス空間をそれぞれ有しており、
前記複数のOPC UAインスタンスの各々が、自身の個別アドレス空間を用いて、OPC UAに従うデータ通信を行うステップを実行させる、データ通信プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本技術は、制御装置、データ通信方法およびデータ通信プログラムに関する。
【背景技術】
【0002】
一般的な情報系ネットワークに採用されている標準的なネットワーク(例えば、イーサネット(登録商標))を産業分野のネットワークでも利用できるように拡張する取り組みが進行しつつある。例えば、デバイス間でデータ通信を行うための通信スタックとして、IEC62541として国際標準化されているOPC UA(OPC Unified Architecture)が普及しつつある。
【0003】
例えば、特許文献1(欧州特許第03357218号明細書)は、OPC-UAプロトコルに従うクライエントデバイスおよびサーバデバイスとの間のデータ通信などを開示する。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
PLC(Programmable Logic Controller)などの制御装置にOPC UAを実装した場合を考慮すると、レイヤ毎にネットワークインターフェイスが用意されることも多い。このような複数のネットワークインターフェイスを有する構成において、OPC UAに従うデータ通信を実現することについては何ら考慮されていない。
【0006】
本技術は、複数のネットワークインターフェイスを有する制御装置において、OPC UAに従うデータ通信を実現するための新規の構成を提供する。
【課題を解決するための手段】
【0007】
本技術のある実施の形態に係る制御対象を制御するための制御装置は、複数のネットワークインターフェイスと、複数のネットワークインターフェイスにそれぞれ対応付けられた複数のOPC UAインスタンスと、制御演算に係るデータオブジェクトを管理する共有アドレス空間とを含む。複数のOPC UAインスタンスは、共有アドレス空間が管理するデータオブジェクトを共有する個別アドレス空間をそれぞれ有している。複数のOPC UAインスタンスの各々は、自身の個別アドレス空間を用いて、OPC UAに従うデータ通信を行う。
【0008】
この構成によれば、制御演算に係る共通のデータオブジェクトに関して、複数の通信先との間でそれぞれOPC UAに従うデータ通信を行うことができる。
【0009】
個別アドレス空間の各々は、共有アドレス空間が管理するデータオブジェクトの複製に加えて、各OPC UAインスタンスに固有のデータオブジェクトを管理するようにしてもよい。この構成によれば、各OPC UAインスタンスで提供するサービスなどに応じたデータオブジェクトも管理できる。
【0010】
制御装置は、複数のOPC UAインスタンスに対するアクセス権をそれぞれ管理する管理モジュールをさらに含んでいてもよい。この構成によれば、複数の通信先およびデータ通信の間で競合を避けるようなアクセス管理を実現できる。
【0011】
管理モジュールは、共有アドレス空間が管理するデータオブジェクトのうち同一のデータオブジェクトに対するアクセスの優先度に基づいて、複数のOPC UAインスタンスから当該同一のデータオブジェクトに対するそれぞれのアクセス権を決定するようにしてもよい。この構成によれば、同一のデータオブジェクトに対するアクセスの優先度に基づいて、当該同一のデータオブジェクトに対するアクセスの競合などを回避できる。
【0012】
管理モジュールは、同一のデータオブジェクトに対する書き込み権限を、複数のOPC UAインスタンスのうち1つのOPC UAインスタンスにのみ設定するようにしてもよい。この構成によれば、複数のOPC UAインスタンスのみが任意のデータオブジェクトに対する書き込みを許可されるので、書き込みの競合を回避できる。
【0013】
アクセスの優先度は、IEEE802.1 TSNに従う優先度に従って決定されてもよい。この構成によれば、IEEE802.1 TSNに従うフレーム転送のルールと整合したアクセスの優先度を設定できる。
【0014】
制御装置は、複数のネットワークインターフェイスのそれぞれのポートの状態を取得するポート状態制御部をさらに含んでいてもよい。管理モジュールは、複数のネットワークインターフェイスのポートの状態に基づいて、アクセス権を決定するようにしてもよい。この構成によれば、インターフェイスのポートの状態に基づいて、アクセス権を適切に決定できる。
【0015】
ポート状態制御部は、複数のネットワークインターフェイスのポートの状態を変更するように構成されてもよい。この構成によれば、アクセス権の設定や変更とともに、複数のネットワークインターフェイスのポートの状態を変更することができる。
【0016】
本技術の別の実施の形態によれば、制御対象を制御するための制御装置におけるデータ通信方法が提供される。制御装置は複数のネットワークインターフェイスを有している。データ通信方法は、複数のネットワークインターフェイスにそれぞれ対応付けられた複数のOPC UAインスタンスを生成するステップと、共有アドレス空間で制御演算に係るデータオブジェクトを管理するステップとを含む。複数のOPC UAインスタンスは、共有アドレス空間で管理されるデータオブジェクトを共有する個別アドレス空間をそれぞれ有している。通信方法は、複数のOPC UAインスタンスの各々が、自身の個別アドレス空間を用いて、OPC UAに従うデータ通信を行うステップを含む。
【0017】
本技術のさらに別の実施の形態によれば、制御対象を制御するための制御装置で実行されるデータ通信プログラムが提供される。制御装置は複数のネットワークインターフェイスを有している。データ通信プログラムは、制御装置に、複数のネットワークインターフェイスにそれぞれ対応付けられた複数のOPC UAインスタンスを生成するステップと、共有アドレス空間で制御演算に係るデータオブジェクトを管理するステップとを実行させる。複数のOPC UAインスタンスは、共有アドレス空間で管理されるデータオブジェクトを共有する個別アドレス空間をそれぞれ有している。データ通信プログラムは、制御装置に、複数のOPC UAインスタンスの各々が、自身の個別アドレス空間を用いて、OPC UAに従うデータ通信を行うステップを実行させる。
【発明の効果】
【0018】
本技術によれば、複数のネットワークインターフェイスを有する制御装置において、OPC UAに従うデータ通信を実現するための新規の構成を提供できる。
【図面の簡単な説明】
【0019】
【
図1】本実施の形態に係る制御システムの全体構成例を示す模式図である。
【
図2】本実施の形態に係る制御装置のデータモデルを示す模式図である。
【
図3】本実施の形態に係る制御装置におけるデータオブジェクトの共有方法を示す模式図である。
【
図4】本実施の形態に係る制御装置のハードウェア構成例を示すブロック図である。
【
図5】本実施の形態に係る制御装置におけるアクセス管理の一例を示す模式図である。
【
図6】本実施の形態に係る制御装置におけるアクセス管理を実現するための機能構成のある局面を示す模式図である。
【
図7】本実施の形態に係る制御装置におけるアクセス管理を実現するための機能構成の別の局面を示す模式図である。
【
図8】本実施の形態に係る制御装置におけるアクセス管理に係る処理内容を説明するための図である。
【
図9】本実施の形態に係る制御装置が生成するアクセス権設定の一例を示す図である。
【
図10】本実施の形態に係る制御装置におけるデータ通信に係る処理手順を示すフローチャートである。
【
図11】本実施の形態に係る制御装置におけるアクセス管理に係る処理手順を示すフローチャートである。
【発明を実施するための形態】
【0020】
本技術の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。
【0021】
<A.適用例>
まず、本発明が適用される場面の一例について説明する。
【0022】
図1は、本実施の形態に係る制御システム1の全体構成例を示す模式図である。
図1を参照して、制御システム1は、制御装置100-1,100-2(以下、「制御装置100」とも総称する。)と、上位装置200とを含む。
【0023】
制御装置100は、典型的には、制御対象を制御するためのPLC(Programmable Logic Controller)である。制御装置100-1と制御装置100-2との間は、ネットワーク4を介して接続されており、OPC UAに従うデータ通信が可能になっている。より具体的には、制御装置100の各々は、フィールドバス8を有している。フィールドバス8には、1または複数のフィールドデバイス10が接続される。1または複数のフィールドデバイス10は、フィールド信号を取得する入力デバイス、および、制御装置100からの指示に従ってフィールドに対して何らかのアクションを行う出力デバイスあるいはアクチュエータを含む。
【0024】
上位装置200は、例えば、制御装置100からのデータを格納するデータベース、生産管理サーバ、認証サーバである。制御装置100-1と上位装置200との間は、ネットワーク2を介して接続されており、OPC UAに従うデータ通信が可能になっている。
【0025】
図2は、本実施の形態に係る制御装置100のデータモデルを示す模式図である。
図2を参照して、制御装置100は、制御対象を制御するための制御演算を担当するPLCエンジン170と、データ通信の対象となるデータ群であるグローバル変数モジュール172と、データ通信に係る各種処理を担当するサービスモジュール174とを含む。
【0026】
グローバル変数モジュール172は、PLCエンジン170が実行する制御演算において参照可能な変数(入力変数、出力変数、内部変数など)のうち、外部への公開が指定されている変数(グローバル変数)を保持および更新する。
【0027】
サービスモジュール174は、リクエストに応じて、指定された処理を実行し、その結果を応答するといった、データ通信に必要な様々な処理を実行する。PLCエンジン170は、必要に応じて、サービスモジュール174と連携して指定された処理を実行する。
【0028】
制御装置100は、複数のネットワークインターフェイス106-1,106-2(以下、「ネットワークインターフェイス106」とも総称する。)を有している。ネットワークインターフェイス106-1は、ネットワーク2を介して上位装置200と接続されており、ネットワークインターフェイス106-2は、ネットワーク4を介して他の制御装置100と接続されている。ネットワークインターフェイス106-1,106-2は、ポート108-1,108-2をそれぞれ論理的に有している。
【0029】
制御装置100は、ネットワークインターフェイス106-1,106-2にそれぞれ対応付けられたOPC UAインスタンス150-1,150-2(以下、「OPC UAインスタンス150」とも総称する。)を有している。すなわち、制御装置100は、2つのOPC UAインスタンス150-1,150-2を生成する処理を実行する。
【0030】
OPC UAで用いられるアプリケーション認証は、IPアドレスに基づくクライエント・サーバ証明書で行われるため、2つのネットワークインターフェイス106-1,106-2にそれぞれ対応付けて、2つのOPC UAインスタンス150-1,150-2が必要となる。
【0031】
OPC UAインスタンス150の各々は、Client/Server、Pub/Subなどの各種処理および機能を実現するための処理実体である。OPC UAインスタンス150の各々は、上位装置200または他の制御装置100との間のPub/Sub(Publisher/Subscriber)通信、ならびに、Req/Res(Request/Response)通信を担当する。Pub/Sub通信においては、周期的にデータがやり取りされる。Req/Res通信においては、イベント的にデータがやり取りされる。
【0032】
制御装置100においては、2つのOPC UAインスタンス150との内部インターフェイスとして、共有アドレス空間142および管理モジュール160が配置される。すなわち、2つのOPC UAインスタンス150は、共有アドレス空間142を介して、グローバル変数モジュール172およびサービスモジュール174にアクセスする。OPC UAインスタンス150-1,150-2は、個別アドレス空間152-1,152-2を有している。個別アドレス空間152-1,152-2の各々は、共有アドレス空間142が管理するデータオブジェクト144の全部または一部の複製を有している。すなわち、個別アドレス空間152-1,152-2の各々は、共有アドレス空間142が管理するデータオブジェクト144を共有する。
【0033】
共有アドレス空間142は、OPC UAに従うデータ通信において参照されるデータオブジェクト144を保持および格納する仮想空間である。より具体的には、共有アドレス空間142は、PLCエンジン170が実行する制御演算に係るデータオブジェクト144を管理する。すなわち、制御装置100は、共有アドレス空間142で制御演算に係るデータオブジェクト144を管理する処理を実行する。
【0034】
OPC UAインスタンス150-1は、自身の個別アドレス空間152-1を用いて、OPC UAに従うデータ通信を行う。同様に、そして、OPC UAインスタンス150-2は、自身の個別アドレス空間152-2を用いて、OPC UAに従うデータ通信を行う。このように、OPC UAインスタンス150-1およびOPC UAインスタンス150-2は、互いに独立したアドレス空間を公開して、データ通信を行う。但し、個別アドレス空間152-1,152-2は、いずれも共有アドレス空間142を共有するので、実体としては、統合されたアドレス空間となっている。
【0035】
このように、制御装置100においては、複数のOPC UAインスタンス150-1,150-2の各々が、自身の個別アドレス空間152-1,152-2を用いて、OPC UAに従うデータ通信を行う。
【0036】
管理モジュール160は、OPC UAインスタンス150-1,150-2に対するアクセス権をそれぞれ管理する。すなわち、管理モジュール160は、OPC UAインスタンス150-1,150-2による共有アドレス空間142へのアクセスを管理する。
【0037】
図3は、本実施の形態に係る制御装置100におけるデータオブジェクトの共有方法を示す模式図である。
図3を参照して、共有アドレス空間142が管理するデータオブジェクト144の複製であるデータオブジェクト154-1およびデータオブジェクト154-2が個別アドレス空間152-1および個別アドレス空間152-2にそれぞれ配置される。すなわち、OPC UAインスタンス150-1の個別アドレス空間152-1が管理するデータオブジェクト154-1、および、OPC UAインスタンス150-2の個別アドレス空間152-2が管理するデータオブジェクト154-2は、共有アドレス空間142が管理するデータオブジェクト144と実質的に同一である。
【0038】
このように、個別アドレス空間152-1および個別アドレス空間152-2は、共通のデータオブジェクトを管理する。データオブジェクト154-1およびデータオブジェクト154-2は、データオブジェクト144だけではなく、OPC UAインスタンス150-1とOPC UAインスタンス150-2との間で共通なデータオブジェクトをさらに含んでいてもよい。
【0039】
OPC UAインスタンス150の各々から見ると、基本的には、他のOPC UAインスタンス150が管理するデータオブジェクトにアクセスできないが、共有アドレス空間142が管理するデータオブジェクト144にはアクセスできることになる。
【0040】
データオブジェクト144およびデータオブジェクト154-1,154-2は、静的に事前に定義されたデータオブジェクトだけではなく、動的に変更されるデータオブジェクトを含んでいてもよい。すなわち、追加および削除されるデータオブジェクトについても反映される。
【0041】
個別アドレス空間152-1は、データオブジェクト154-1とは別に、固有データオブジェクト156-1を管理するようにしてもよい。同様に、個別アドレス空間152-2は、データオブジェクト154-2とは別に、固有データオブジェクト156-2を管理するようにしてもよい。固有データオブジェクト156-1および固有データオブジェクト156-2は、それぞれOPC UAインスタンス150-1およびOPC UAインスタンス150-2に固有のデータオブジェクトである。このように、個別アドレス空間152-1,152-2の各々は、共有アドレス空間142が管理するデータオブジェクト144の複製に加えて、各OPC UAインスタンス150に固有の固有データオブジェクト156を管理するようにしてもよい。
【0042】
なお、個別アドレス空間152-1が管理する固有データオブジェクト156-1、および、個別アドレス空間152-2が管理する固有データオブジェクト156-2を他方のOPC UAインスタンス150に公開するようにしてもよい。公開によって、一方のOPC UAインスタンス150から他方のOPC UAインスタンス150の固有データオブジェクトにアクセスできる。
【0043】
本実施の形態に係る制御装置100は、
図2および
図3に示すデータモデルを採用することで、複数の通信先との間でそれぞれOPC UAに従うデータ通信を実現できる。
【0044】
<B.ハードウェア構成例>
次に、本実施の形態に係る制御装置100のハードウェア構成の一例について説明する。
【0045】
図4は、本実施の形態に係る制御装置100のハードウェア構成例を示すブロック図である。
図4を参照して、制御装置100は、プロセッサ102と、主メモリ104と、ネットワークインターフェイス106-1,106-2と、ストレージ110と、内部バスインターフェイス120と、フィールドバスインターフェイス122と、メモリカードインターフェイス124とを含む。各コンポーネントは、バス128を介して電気的に接続されている。
【0046】
プロセッサ102は、CPU(Central Processing Unit)、MPU(Micro-Processing Unit)、GPU(Graphical Processing Unit)などで構成され、ストレージ110に格納された各種プログラムを読み出して、主メモリ104に展開して実行することで、制御装置としての処理を実現する。
【0047】
ネットワークインターフェイス106-1,106-2は、任意のネットワークを介してデータ通信を担当する。ネットワークインターフェイス106-1,106-2は、ネットワークと物理的に接続するためのポート108-1,108-2を有している。ネットワークインターフェイス106は、例えば、イーサネット(登録商標)をベースにして、ネットワークが決定性のある挙動をするように改良されたIEEE(Institute of Electrical and Electronic Engineers) 802.1 TSN(Time Sensitive Networking)(以下、単に「TSN」とも称す。)を利用してフレームを送受信するようにしてもよい。但し、通常のイーサネット(登録商標)に従うネットワークを用いることもできる。
【0048】
ストレージ110には、典型的には、制御装置としての機能を実現するためのシステムプログラム112と、制御装置が実行する制御ロジックを規定したユーザプログラム114とが格納される。システムプログラム112は、本実施の形態に係るデータ通信方法を実現するためのデータ通信プログラムを含む。ユーザプログラム114は、制御対象に応じて、ユーザが任意に設計および作成する。
【0049】
内部バスインターフェイス120は、制御装置100に搭載されるI/Oユニット130との間でデータをやり取りする。フィールドバスインターフェイス122は、フィールドバス8を介したフィールドデバイスとの間でデータをやり取りする。
【0050】
メモリカードインターフェイス124は、メモリカード126を着脱可能に構成されており、メモリカード126に対してデータを書き込み、メモリカード126から各種データ(ユーザプログラムやトレースデータなど)を読み出すことが可能になっている。
【0051】
図4には、プロセッサ102がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードワイヤード回路(例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field-Programmable Gate Array)など)を用いて実装してもよい。あるいは、制御装置100の主要部を、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコンをベースとした産業用パソコン)を用いて実現してもよい。このように、制御装置100で実行される処理および提供する機能は、プロセッサ、ASIC、FPGAなどを含む処理回路(processing circuitry)で実現してもよい。
【0052】
<C.アクセス管理>
次に、本実施の形態に係る制御装置100におけるアクセス管理について説明する。
【0053】
上述したように、制御装置100においては、複数のアクセス元から共有アドレス空間142に対してアクセスがなされる。このような複数のアクセス元からのアクセスを管理する必要がある。
【0054】
例えば、制御装置100においては、ユニットあるいはポート毎にプロファイルが設定され、あるいは、同一のポートに対して複数のプロファイルを切り替えて反映することもある。そのため、データ通信の優先度あるいは重要度、および、データ通信の通信状態などに基づいて、アクセス権を管理することが好ましい。
【0055】
上述したように、複数のネットワークインターフェイス106を有する制御装置100においては、ネットワークインターフェイス106毎にOPC UAインスタンスが生成される。すなわち、それぞれのOPC UAインスタンスが有している個別アドレス空間は、互いに独立したものでありが、複数の個別アドレス空間は、いずれも共有アドレス空間にアクセスすることになる。
【0056】
そのため、それぞれのOPC UAインスタンスに適したアクセス権の管理が必要であるとともに、排他制御などのアクセスが衝突しないような仕組みも導入することが好ましい。さらに、データ通信の種類も複数存在するため、データ通信の種類に応じたアクセス権の管理も必要となる。
【0057】
そこで、本実施の形態に係る制御装置100は、個別アドレス空間および共有アドレス空間を一体的に管理するとともに、データ通信の優先度やポートの状態などに応じて、適切なアクセス権の管理を実現する。
【0058】
さらに、TSNにおいては、8個の優先度が定義されており、各フレームに対して優先度を設定できる。例えば、制御装置100で実行される制御演算に用いるデータに対する優先度は高く設定され、上位装置200からのアクセスに対する優先度は低く設定される。すなわち、アクセス(データ通信)の優先度は、IEEE802.1 TSNに従う優先度に従って決定されてもよい。
【0059】
このような優先度を考慮して、優先度が相対的に高いアクセスを優先するようにしてもよい。この場合、同一のデータに対するアクセスが競合しないように、優先度が相対的に低いアクセスについては読み取り専用に設定してもよい。さらに、アクセスが競合しなくても、リセットなどの制御演算を停止するような操作については、書き込み禁止に設定してもよい。
【0060】
一方で、制御演算に用いるデータの通信が停止している場合であって、制御演算に対する影響が小さいと判断されるような場合には、アクセスできるように、書き込み禁止を解除してもよい。
【0061】
図5は、本実施の形態に係る制御装置100におけるアクセス管理の一例を示す模式図である。
図5を参照して、他の制御装置100とのデータ通信を担当するOPC UAインスタンス150-2の個別アドレス空間152-2から共有アドレス空間142へのアクセスは許可する一方で、上位装置200とのデータ通信を担当するOPC UAインスタンス150-1の個別アドレス空間152-1から共有アドレス空間142へのアクセスは禁止してもよい。
【0062】
また、アドレス空間は、制御演算に用いるデータを送受信するPub/Sub通信に関する情報を含む。このようなPub/Sub通信に関する情報に対してアクセスすることで、データ通信を停止し、あるいは、通信設定を削除することも可能になる。そのため、このようなデータ通信に致命的な影響を与えるような操作については、状況に応じて、アクセスを禁止することが好ましい。
【0063】
例えば、セーフティ通信であれば、制御装置100で実行されるセーフティロジック側からのみアクセスできるようにし、通信先の他の制御装置100あるいは上位装置200からのアクセスに対しては、書き込み禁止に設定してもよい。また、セーフティ通信中においては、通信設定を削除できないようにアクセスを制限するようにしてもよい。
【0064】
図6は、本実施の形態に係る制御装置100におけるアクセス管理を実現するための機能構成のある局面を示す模式図である。
図6を参照して、制御装置100の管理モジュール160は、機能構成として、ポート状態制御エンジン162と、評価エンジン164と、アドレス空間制御エンジン168とを含む。
【0065】
ポート状態制御エンジン162は、ネットワークインターフェイス106のポート108の状態を取得する。また、ポート状態制御エンジン162は、ネットワークインターフェイス106との間でコマンドなどをやり取りするとともに、ネットワークインターフェイス106のポート108の状態を変更することもできる。
【0066】
評価エンジン164は、アドレス空間に対するアクセス権の設定および変更を担当する。評価エンジン164は、通信状態情報165と、優先度テーブル166と、アクセス権設定167とを含む。
【0067】
アドレス空間制御エンジン168は、評価エンジン164からの指示に従って、アドレス空間のアクセス権を設定あるいは変更する。
【0068】
図6を参照して、制御装置100におけるアクセス権の変更に係る処理について説明する。
図6には、ポート108の通信状態に応じて、アクセス権の設定あるいは変更が実行される場合の例を示す。
【0069】
ポート状態制御エンジン162は、ネットワークインターフェイス106の状態を監視して、ポート108の状態および状態変化を通信状態情報165に反映する(ステップS2)。通信状態情報165には、各ポートの通信状態が格納される。
【0070】
評価エンジン164は、通信状態情報165を参照して、アクセス権の変更要否を判断する(ステップS4)。評価エンジン164は、アクセス権の変更が必要と判断すると、通信状態情報165および優先度テーブル166を参照して、アクセス権設定167を更新する(ステップS6)。そして、評価エンジン164は、更新後のアクセス権設定167に基づいて、アクセス権の変更をアドレス空間制御エンジン168へ通知する(ステップS8)。
【0071】
アドレス空間制御エンジン168は、共有アドレス空間142および個別アドレス空間152-1,152-2のアクセス権を変更する(ステップS10)。
【0072】
図7は、本実施の形態に係る制御装置100におけるアクセス管理を実現するための機能構成の別の局面を示す模式図である。
図7には、ネットワークインターフェイス106からの要求に応じて、アクセス権の設定あるいは変更が実行される場合の例を示す。
【0073】
図7を参照して、ポート状態制御エンジン162は、ネットワークインターフェイス106の状態を監視して、ポート108の状態および状態変化を通信状態情報165に反映する(ステップS12)。
【0074】
ポート状態制御エンジン162は、ネットワークインターフェイス106からのポート状態変更要求を受信すると(ステップS14)、アクセス権の見直し要求を評価エンジン164へ送信する(ステップS16)。
【0075】
評価エンジン164は、通信状態情報165および優先度テーブル166を参照して、アクセス権設定167を更新する(ステップS18)。そして、評価エンジン164は、更新後のアクセス権設定167に基づいて、アクセス権の変更をアドレス空間制御エンジン168へ通知する(ステップS20)。
【0076】
アドレス空間制御エンジン168は、共有アドレス空間142および個別アドレス空間152-1,152-2のアクセス権を変更する(ステップS22)。
【0077】
以上のような手順によって、アドレス空間のアクセス権が設定あるいは変更される。
【0078】
図8は、本実施の形態に係る制御装置100におけるアクセス管理に係る処理内容を説明するための図である。
図8を参照して、通信状態情報165には、対象のポート毎に通信状態が格納される。
図8に示す例では、3つのポート(ポートA,B,C)の各々についての通信状態が示されている。
【0079】
より具体的には、通信状態情報165は、通信種類1652と、優先度1654と、状態1656とを含む。通信種類1652は、対応するポートを利用して行われている通信の種類を示す。優先度1654は、対応する通信の種類に設定されている優先度を示す。状態1656は、対応する通信の状態(運転中/停止中)を示す。
【0080】
優先度1654に格納される優先度テーブル166を参照して決定される。優先度テーブル166は、例えば、TSNにおいて定義されている8個の優先度に対応して設定されてもよいし、任意の優先度の区分を設定してもよい。
【0081】
より具体的には、優先度テーブル166は、優先度1662と、通信種類1664とを含む。優先度1662は、設定される優先度を示し、通信種類1664は、対応する通信の種類を示す。すなわち、優先度テーブル166は、通信の種類毎に定義された優先度を示す。
【0082】
優先度が最も高い通信に関するアクセス権設定167-1と、それ以外の通信に関するアクセス権設定167-2が用意されている。アクセス権設定167-1およびアクセス権設定167-2は、データオブジェクトに対応する変数毎にアクセス権を規定する。
【0083】
アクセス権設定167-1は、変数1672と、関連する通信1674と、動作中の優先度高の通信種類1676と、動作中の優先度高のアクセス権1678とを含む。
【0084】
変数1672は、外部への公開が指定されている変数(グローバル変数)を示す。変数1672に規定されている変数は、共有アドレス空間142が管理するデータオブジェクト144に含まれることになる。
【0085】
関連する通信1674には、対応する変数にアクセスすることが予定されている通信が利用するポートおよび当該通信の優先度が格納される。例えば、変数「aa」に対応付けられている「Aの2」は、「ポートA」の優先度「2」の通信によるアクセス予定を示す。同様に、変数「ab」に対応付けられている「Aの2」および「Bの3」は、「ポートA」の優先度「2」の通信によるアクセス予定、および、「ポートB」の優先度「3」の通信によるアクセス予定を示す。
【0086】
動作中の優先度高の通信種類1676には、対応する変数にアクセスすることが予定されている1または複数の通信のうち、優先度が最も高い通信の通信種類が格納される。例えば、変数「aa」へのアクセスは、「ポートA」の優先度「2」の通信が予定されており、この通信は、優先度テーブル166の優先度「2」に対応する「モニタ」となる。
【0087】
一方、変数「ab」へのアクセスは、「ポートA」の優先度「2」の通信、および、「ポートB」の優先度「3」の通信が予定されており、これらの通信のうち優先度が最も高いのは「3」となる。ことのき、優先度テーブル166の優先度「3」に対応する「イベント」が通信種類として格納される。
【0088】
なお、変数「cc」へのアクセスは、「ポートC」の優先度「7」の通信が予定されているが、当該通信は停止中であるため、通信種類は「なし」となる。
【0089】
動作中の優先度高のアクセス権1678には、優先度が最も高い通信に対応するポート、および、アクセス権(書き込み可能(Write/Read)または読み出し専用(Read Only))が格納される。例えば、変数「aa」には通信種類として「モニタ」が対応付けられており、「モニタ」に対応して、読み出し専用(Read Only)が設定される。同様に、変数「ab」には通信種類として「イベント」が対応付けられており、「モニタ」に対応して、書き込み可能(Write/Read)が設定される。
【0090】
アクセス権設定167-2は、変数1672と、書き込み権限1679とを含む。変数1672には、アクセス権設定167-1の変数1672と同様の変数が格納される。書き込み権限1679には、アクセス権設定167-1の動作中の優先度高のアクセス権1678に応じたアクセス権(書き込み可能(Write/Read)または読み出し専用(Read Only))が格納される。
【0091】
図9は、本実施の形態に係る制御装置100が生成するアクセス権設定167の一例を示す図である。
図9を参照して、アクセス権設定167は、ポート(OPC UAインスタンス)毎のアクセス権(書き込み可能(Write/Read)または読み出し専用(Read Only))を変数毎に定義する。
【0092】
このように、管理モジュール160は、同一のデータオブジェクト(典型的には、上述したような変数)に対する書き込み権限を、複数のOPC UAインスタンス150のうち1つのOPC UAインスタンス150にのみ設定する。
【0093】
アドレス空間制御エンジン168は、
図9に示すようなアクセス権設定167に従って、アドレス空間のアクセス権を設定する。
【0094】
上述したように、管理モジュール160は、共有アドレス空間142が管理するデータオブジェクト144のうち同一のデータオブジェクト(典型的には、上述したような変数)に対するアクセス(データ通信)の優先度に基づいて、複数のOPC UAインスタンス150から当該同一のデータオブジェクトに対するそれぞれのアクセス権を決定する。また、管理モジュール160は、ネットワークインターフェイス106のポートの状態に基づいて、アクセス権を決定する。
【0095】
<D.処理手順>
次に、本実施の形態に係る制御装置100が実行する処理について説明する。
【0096】
図10は、本実施の形態に係る制御装置100におけるデータ通信に係る処理手順を示すフローチャートである。
図10に示す各ステップは、典型的には、制御装置100のプロセッサ102がシステムプログラム112を実行することで実現される。
【0097】
図10を参照して、制御装置100は、初期状態において、共有アドレス空間142を生成する(ステップS100)とともに、ネットワークインターフェイス106-1,106-2にそれぞれ対応付けられた複数のOPC UAインスタンス150-1,150-2を生成する(ステップS102)。
【0098】
制御周期が到来すると(ステップS104においてYES)、制御装置100は、制御演算を実行し(ステップS106)、制御演算の結果を共有アドレス空間142が管理するデータオブジェクト144に反映する(ステップS108)。すなわち、制御装置100は、共有アドレス空間142で制御演算に係るデータオブジェクト144を管理する。
【0099】
そして、制御装置100は、共有アドレス空間142が管理するデータオブジェクト144を個別アドレス空間152-1が管理するデータオブジェクト154-1に反映し、共有アドレス空間142が管理するデータオブジェクト144を個別アドレス空間152-2が管理するデータオブジェクト154-2に反映する(ステップS110)。
【0100】
制御装置100のOPC UAインスタンス150-1が個別アドレス空間152-1を用いて、OPC UAに従うデータ通信を行うとともに、制御装置100のOPC UAインスタンス150-2が個別アドレス空間152-2を用いて、OPC UAに従うデータ通信を行う(ステップS112)。そして、ステップS104以下の処理が繰り返される。
【0101】
なお、必要に応じて、以下に示すアクセス管理に係る処理が実行される。
【0102】
図11は、本実施の形態に係る制御装置100におけるアクセス管理に係る処理手順を示すフローチャートである。
図11に示す各ステップは、典型的には、制御装置100のプロセッサ102がシステムプログラム112を実行することで実現される。
【0103】
図11を参照して、制御装置100は、ネットワークインターフェイス106の状態を監視して、ポート108の状態を通信状態情報165に反映する(ステップS200)。続いて、制御装置100は、アクセス権の変更要否を判断すべき条件が成立したか否かを判断する(ステップS202)。
【0104】
アクセス権の変更要否を判断すべき条件としては、例えば、通信状態情報165に格納された通信状態が変更された場合、および、ネットワークインターフェイス106からの要求を受けた場合などを含む。
【0105】
アクセス権の変更要否を判断すべき条件が成立していなければ(ステップS202においてNO)、ステップS200以下の処理が繰り返される。
【0106】
アクセス権の変更要否を判断すべき条件が成立していれば(ステップS202においてYES)、制御装置100は、通信状態情報165および優先度テーブル166を参照して、変数毎に優先度が最も高いポートおよびアクセス権を決定し(ステップS204)、変数毎およびポート毎にアクセス権を規定したアクセス権設定167を決定する(ステップS206)。そして、制御装置100は、決定したアクセス権設定167に従って、アドレス空間のアクセス権を設定する(ステップS208)。そして、ステップS200以下の処理が繰り返される。
【0107】
<E.その他の実施の形態>
上述の説明においては、PLCなどの制御装置に複数のOPC UAインスタンスを実装した構成例を示すが、実装される装置は、制御装置に限らず、HMI(Human Machine Interface)やIPC(Industrial Personal Computer)などであってもよい。
【0108】
また、OPC UAインスタンスの数についても3つ以上であってもよい。
【0109】
<F.付記>
上述したような本実施の形態は、以下のような技術思想を含む。
【0110】
[構成1]
制御対象を制御するための制御装置(100)であって、
複数のネットワークインターフェイス(108-1,108-2)と、
前記複数のネットワークインターフェイスにそれぞれ対応付けられた複数のOPC UAインスタンス(150-1,150-2)と、
制御演算に係るデータオブジェクトを管理する共有アドレス空間(142)とを備え、
前記複数のOPC UAインスタンスは、前記共有アドレス空間が管理するデータオブジェクトを共有する個別アドレス空間(152-1,152-2)をそれぞれ有しており、
前記複数のOPC UAインスタンスの各々は、自身の個別アドレス空間を用いて、OPC UAに従うデータ通信を行う、制御装置。
【0111】
[構成2]
前記個別アドレス空間の各々は、前記共有アドレス空間が管理するデータオブジェクト(144)の複製(154)に加えて、各OPC UAインスタンスに固有のデータオブジェクト(156)を管理する、構成1に記載の制御装置。
【0112】
[構成3]
前記複数のOPC UAインスタンスに対するアクセス権をそれぞれ管理する管理モジュール(160)をさらに備える、構成1または2に記載の制御装置。
【0113】
[構成4]
前記管理モジュールは、前記共有アドレス空間が管理するデータオブジェクトのうち同一のデータオブジェクトに対するアクセスの優先度に基づいて、前記複数のOPC UAインスタンスから当該同一のデータオブジェクトに対するそれぞれのアクセス権を決定する、構成3に記載の制御装置。
【0114】
[構成5]
前記管理モジュールは、前記同一のデータオブジェクトに対する書き込み権限を、前記複数のOPC UAインスタンスのうち1つのOPC UAインスタンスにのみ設定する、構成4に記載の制御装置。
【0115】
[構成6]
前記アクセスの優先度は、IEEE802.1 TSNに従う優先度に従って決定される、構成4または5に記載の制御装置。
【0116】
[構成7]
前記複数のネットワークインターフェイスのそれぞれのポートの状態を取得するポート状態制御部(162)をさらに備え、
前記管理モジュールは、前記複数のネットワークインターフェイスのポートの状態に基づいて、アクセス権を決定する、構成3~6のいずれか1項に記載の制御装置。
【0117】
[構成8]
前記ポート状態制御部は、前記複数のネットワークインターフェイスのポートの状態を変更するように構成される、構成7に記載の制御装置。
【0118】
[構成9]
制御対象を制御するための制御装置(100)におけるデータ通信方法であって、前記制御装置は複数のネットワークインターフェイス(108-1,108-2)を有しており、
前記複数のネットワークインターフェイスにそれぞれ対応付けられた複数のOPC UAインスタンス(150-1,150-2)を生成するステップ(S102)と、
共有アドレス空間で制御演算に係るデータオブジェクトを管理するステップ(S108)とを備え、前記複数のOPC UAインスタンスは、前記共有アドレス空間で管理されるデータオブジェクトを共有する個別アドレス空間(152-1,152-2)をそれぞれ有しており、
前記複数のOPC UAインスタンスの各々が、自身の個別アドレス空間を用いて、OPC UAに従うデータ通信を行うステップ(S112)を備える、データ通信方法。
【0119】
[構成10]
制御対象を制御するための制御装置(100)で実行されるデータ通信プログラム(112)であって、前記制御装置は複数のネットワークインターフェイス(108-1,108-2)を有しており、前記データ通信プログラムは前記制御装置に、
前記複数のネットワークインターフェイスにそれぞれ対応付けられた複数のOPC UAインスタンス(150-1,150-2)を生成するステップ(S102)と、
共有アドレス空間で制御演算に係るデータオブジェクトを管理するステップ(S108)とを実行させ、前記複数のOPC UAインスタンスは、前記共有アドレス空間で管理されるデータオブジェクトを共有する個別アドレス空間(152-1,152-2)をそれぞれ有しており、
前記複数のOPC UAインスタンスの各々が、自身の個別アドレス空間を用いて、OPC UAに従うデータ通信を行うステップ(S112)を実行させる、データ通信プログラム。
【0120】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0121】
1 制御システム、2,4 ネットワーク、8 フィールドバス、10 フィールドデバイス、100 制御装置、102 プロセッサ、104 主メモリ、106 ネットワークインターフェイス、108 ポート、110 ストレージ、112 システムプログラム、114 ユーザプログラム、120 内部バスインターフェイス、122 フィールドバスインターフェイス、124 メモリカードインターフェイス、126 メモリカード、128 バス、130 I/Oユニット、142 共有アドレス空間、144,154 データオブジェクト、150 OPC UAインスタンス、152 個別アドレス空間、156 固有データオブジェクト、160 管理モジュール、162 ポート状態制御エンジン、164 評価エンジン、165 通信状態情報、166 優先度テーブル、167 アクセス権設定、168 アドレス空間制御エンジン、170 PLCエンジン、172 グローバル変数モジュール、174 サービスモジュール、200 上位装置、1652,1664,1676 通信種類、1654,1662 優先度、1656 状態、1672 変数、1674 通信、1678 アクセス権、1679 書き込み権限。