JP7103214B2 - サポート装置および支援プログラム - Google Patents

サポート装置および支援プログラム Download PDF

Info

Publication number
JP7103214B2
JP7103214B2 JP2018246641A JP2018246641A JP7103214B2 JP 7103214 B2 JP7103214 B2 JP 7103214B2 JP 2018246641 A JP2018246641 A JP 2018246641A JP 2018246641 A JP2018246641 A JP 2018246641A JP 7103214 B2 JP7103214 B2 JP 7103214B2
Authority
JP
Japan
Prior art keywords
security
program
unit
instruction
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.)
Active
Application number
JP2018246641A
Other languages
English (en)
Other versions
JP2020107158A (ja
Inventor
豊 田原
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
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 filed Critical Omron Corp
Priority to JP2018246641A priority Critical patent/JP7103214B2/ja
Priority to PCT/JP2019/046604 priority patent/WO2020137343A1/ja
Priority to US17/294,409 priority patent/US20220011735A1/en
Priority to EP19901761.7A priority patent/EP3904980A4/en
Priority to CN201980057873.7A priority patent/CN112689805A/zh
Publication of JP2020107158A publication Critical patent/JP2020107158A/ja
Application granted granted Critical
Publication of JP7103214B2 publication Critical patent/JP7103214B2/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/058Safety, monitoring
    • 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/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0426Programming the control sequence
    • 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/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0428Safety, monitoring
    • 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/056Programming the PLC
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action

Description

本発明は、制御対象を制御するコントローラシステムに利用されるサポート装置、コントローラシステムに含まれる制御装置で実行されるユーザプログラムの開発を支援する支援プログラム、および制御対象を制御するための制御演算を実行する制御装置に関する。
様々な製造現場において、PLC(Programmable Logic Controller)などの制御装置が導入されている。このような制御装置は、一種のコンピュータであり、製造装置や製造設備などに応じて設計された制御プログラムを実行する。制御装置は、中継装置を介して工場内または工場外の様々な装置と接続される。
たとえば、特許第6407494号公報(特許文献1)には、中継装置の一例であるルータを介して、工場の外のクラウドシステムと通信可能に接続された制御装置が開示されている。
また、国際公開第2016/157477号(特許文献2)には、中継装置の一例であるルータを介して、他の制御装置と通信可能に接続された制御装置が開示されている。
特許第6407494号公報 国際公開第2016/157477号
特許文献1に開示された制御装置のように、近年のICT(Information and Communication Technology)の進歩に伴って、制御装置も様々な外部装置とネットワーク接続される。また、制御装置において実行される処理も高度化している。このようなネットワーク化あるいはインテリジェント化に伴って、制御装置に対して様々なセキュリティ脅威が発生し得る。
従来の制御装置においては、ネットワーク化あるいはインテリジェント化に伴って生じ得る、セキュリティ脅威を含むセキュリティ事象については、何ら想定されていない。
本発明は、制御装置および制御システムのネットワーク化あるいはインテリジェント化に伴って生じ得るセキュリティ事象から制御装置および制御装置を含むコントローラシステムを好適に保護するという新たな課題を解決することを一つの目的としている。
本開示の一例によれば、コントローラシステムで利用されるサポート装置が提供される。コントローラシステムは、制御対象を制御するための制御演算を実行する制御装置と、コントローラシステムに生じ得るセキュリティ事象の検知およびセキュリティ事象に応じた処理の実行を含むセキュリティ防護処理を実行するセキュリティ監視装置とを含む。サポート装置は、制御装置で実行される制御演算の内容を規定するユーザプログラムを作成または編集するためのユーザインターフェイスを提供する作成編集部と、作成編集部が提供するユーザインターフェイスを介して作成されたユーザプログラムを出力する出力部とを含む。作成編集部は、ユーザプログラムを構成する命令として、セキュリティ防護処理が実行されることで行われるセキュリティ監視装置の挙動を変更するための変更命令の選択を受け付けるユーザインターフェイスを提供する。
この開示によれば、セキュリティ監視装置の挙動を変更できる環境が提供される。その結果、生じ得るセキュリティ事象からコントローラシステムを好適に保護するための環境が提供される。
上述の開示において、作成編集部は、変更命令の実行条件の設定を受け付けるユーザインターフェイスを提供する。
この開示によれば、セキュリティ監視装置の挙動を変更する条件を設定できるため、セキュリティ事象が発生する状況に応じたセキュリティ環境を提供できる。
上述の開示において、変更命令は、制御装置の動作状態を示す入力信号に対して、セキュリティ防護処理が実行されることで行われるセキュリティ監視装置の挙動を示す出力信号の値を決定するための変更命令を含む。この変更命令が選択された場合、作成編集部は、入力信号と出力信号との対応関係の設定を受け付けるユーザインターフェイスを提供する。
この開示によれば、制御装置の動作状態に応じたセキュリティ対策をとるための環境が提供される。
上述の開示において、作成編集部は、セキュリティ監視装置の挙動を設定するためのユーザインターフェイスを提供する。
この開示によれば、制御装置の動作状態に応じたセキュリティ対策をとるための環境が提供される。
上述の開示において、セキュリティ監視装置の挙動は、コントローラシステムを外部ネットワークに接続するための接続条件の設定を含む。作成編集部は、接続条件の内容を設定するためのユーザインターフェイスを提供する。
この開示によれば、制御装置の動作状態に応じて外部ネットワークに接続するための接続条件を設定できるため、状況に合わせた通信制限をかけることができ、柔軟性のあるセキュリティ対策をとるための環境が提供される。
本開示の別の一例によれば、コントローラシステムが備える制御対象を制御するための制御演算を実行する制御装置で実行されるユーザプログラムの開発を支援するための支援プログラムが提供される。コントローラシステムは、コントローラシステムに生じ得るセキュリティ事象の検知およびセキュリティ事象に応じた処理の実行を含むセキュリティ防護処理を実行するセキュリティ監視装置を含む。支援プログラムは、コンピュータに、制御装置で実行される制御演算の内容を規定するユーザプログラムを作成または編集するためのユーザインターフェイスを提供するステップと、ユーザインターフェイスを介して作成されたユーザプログラムを出力するステップとを実行させる。ユーザインターフェイスを提供するステップにおいて、ユーザプログラムを構成する命令として、セキュリティ防護処理が実行されることで行われるセキュリティ監視装置の挙動を変更するための変更命令の選択を受け付けるユーザインターフェイスが提供される。
この開示によれば、セキュリティ監視装置の挙動を変更できる環境が提供される。その結果、生じ得るセキュリティ事象からコントローラシステムを好適に保護するための環境が提供される。
本開示の別の一例によれば、制御対象を制御するための制御演算を実行する制御装置が提供される。制御装置は、制御装置に生じ得るセキュリティ事象の検知およびセキュリティ事象に応じた処理の実行を含むセキュリティ防護処理を実行するセキュリティ監視装置と接続するための通信インターフェイスと、制御演算を実現するためのユーザプログラムを実行するプログラム実行部とを含む。ユーザプログラムは、セキュリティ防護処理が実行されることで行われるセキュリティ監視装置の挙動を変更するための変更命令を含む。プログラム実行部は、変更命令の実行によって、セキュリティ監視装置で実行されるセキュリティ防護処理の内容を変更するための指令をセキュリティ監視装置へ通知する。
この開示によれば、セキュリティ監視装置の挙動を変更できる環境が提供される。その結果、生じ得るセキュリティ事象から制御装置を好適に保護するための環境が提供される。
生じ得るセキュリティ事象から制御装置および制御装置を含むコントローラシステムを好適に保護することができる。
コントローラシステム1aを中心とした制御システム10aの一例を示す図である。 制御装置100aが受けるセキュリティ事象が生じ得る場面を説明するための図である。 サポート装置およびサポート装置が接続されるコントローラシステムの機能構成の一例を示す図である。 本実施の形態に係るコントローラシステム1の構成例を示す外観図である。 本実施の形態に従うコントローラシステム1を構成する制御ユニット100のハードウェア構成例を示す模式図である。 本実施の形態に従うコントローラシステム1を構成するセキュリティユニット200のハードウェア構成例を示す模式図である。 本実施の形態に従うコントローラシステム1を構成するセーフティユニット300のハードウェア構成例を示す模式図である。 コントローラシステム1のソフトウェア構成を示す模式図である。 コントローラシステム1のセキュリティ機能の概要を示す機能構成図である。 レベル対応データ864のデータ構成を示す図である。 処理内容対応データ866のデータ構成を示す図である。 サポート装置600のハードウェア構成例を示す模式図である。 変更命令の選択を受け付けるユーザインターフェイスの一例を示す図である。 変更命令が選択されたときに提供されるユーザインターフェイスの一例を示す図である。 外部ネットワークに接続するための接続条件の内容を設定するためのユーザインターフェイスの一例を示す図である。 変更命令の実行条件の設定を受け付けるユーザインターフェイスの一例を示す図である。 サポート装置600のソフトウェア構成を示す模式図である。 制御ユニット100が実行するセキュリティレベル移行処理の一例を示すフローチャートである。 サポート装置600が実行する処理の一例を示すフローチャートである。
以下、図面を参照しつつ、本発明に従う各実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがって、これらについての詳細な説明は繰り返さない。なお、以下で説明される各実施の形態および各変形例は、適宜選択的に組み合わせてもよい。
§1 適用例
図1~図3を参照して、本発明が適用される場面の一例について説明する。図1は、コントローラシステム1aを中心とした制御システム10aの一例を示す図である。図2は、制御装置100aが受けるセキュリティ事象が生じ得る場面を説明するための図である。図3は、サポート装置およびサポート装置が接続されるコントローラシステムの機能構成の一例を示す図である。
コントローラシステム1aは、制御装置100aと、セキュリティ監視装置200aとを含む。制御装置100aとセキュリティ監視装置200aとは、PCI Expressあるいはイーサネット(登録商標)などの任意のデータ伝送経路を介して通信可能に接続されている。
制御装置100aは、制御対象を制御するための制御演算を実行し、コントローラシステム1aにおいて中心的な処理を実行する。制御装置100aは、1または複数の通信ポートを有している。図1に示す例では、制御装置100aは、通信ポート142a,144a,146a,148aを有している。
制御装置100aは、通信ポート142aを介して、サポート装置600aと通信可能に接続される。サポート装置600aは、コントローラシステム1aに含まれる各装置で実行されるプログラムの作成、デバッグ、各種パラメータの設定などの機能をユーザに提供する。サポート装置600aを用いてユーザが作成したプログラムをユーザプログラム1086aと称し、ユーザプログラム1086aは、サポート装置600aから制御装置100aに向けて送信され、制御装置100aで実行される。サポート装置600aと制御装置100aとは、典型的には、USB(Universal Serial Bus)ケーブルを用いて接続される。
なお、ユーザプログラム1086aは、メモリカード115aなどの記憶媒体に格納されていてもよい。図1に示す例では、制御装置100aは、メモリカードインターフェイス114aを有し、メモリカード115aを着脱可能に構成されており、メモリカード115aに格納されたユーザプログラム1086aを読み出すことができる。
制御装置100aは、通信ポート144aを介して、フィールドデバイス500aと通信可能に接続される。フィールドデバイス500aは、制御対象から制御演算に必要な各種情報を収集するセンサや検出器、および、制御対象に対して何らかの作用を与えるアクチュエータなどを含む。フィールドデバイス500aと制御装置100aとの間の通信プロトコルは、典型的には、EtherCAT(登録商標)が利用される。
制御装置100aは、通信ポート146aを介して、1または複数のHMI(Human Machine Interface)800aと通信可能に接続される。HMI800aは、コントローラシステム1aでの制御演算によって得られる各種情報をオペレータへ提示するとともに、オペレータからの操作に従ってコントローラシステム1aに対して内部コマンドなどを生成する。HMI800aと制御装置100aとの間の通信プロトコルは、典型的には、EtherNet/IP(登録商標)が利用される。
制御装置100aは、通信ポート148aを介してデータベース950aと通信可能に接続される。データベース950aは、コントローラシステム1aから送信される各種データ(たとえば、制御対象であるワークから計測されたトレーサビリティに関する情報など)を収集する。なお、データベース950aは、制御装置100aと、社内ネットワークを介して通信可能に接続されていてもよく、また、VPN(Virtual Private Network)などを介して通信可能に接続されていてもよい。図1に示す例では、データベース950aと制御装置100aとの間の通信プロトコルは、EtherNet/IP(登録商標)が利用される。
セキュリティ監視装置200aは、コントローラシステム1aに対するセキュリティ機能を担当し、コントローラシステム1aに対するセキュリティ防護処理を実行する。セキュリティ防護処理の詳細については、後述する。セキュリティ監視装置200aは、1または複数の通信ポートを有している。図1に示す例では、セキュリティ監視装置200aは、通信ポート242aを有している。
セキュリティ監視装置200aは、通信ポート242aを介して、サポート装置600aまたはSCADA(Supervisory Control And Data Acquisition)装置750aと通信可能に接続されている。セキュリティ監視装置200aとサポート装置600aとの間の通信、およびセキュリティ監視装置200aとSCAD装置750aとの間の通信は、典型的には、VPNを利用して行われる。
サポート装置600aは、たとえば、VPNを介してセキュリティ監視装置200aと通信可能に接続されることで、コントローラシステム1aのリモートメンテナンスを実現する。
SCADA装置750aは、コントローラシステム1aでの制御演算によって得られる各種情報をオペレータへ提示するとともに、オペレータからの操作に従って、コントローラシステム1aに対して内部コマンドなどを生成する。SCADA装置750aは、コントローラシステム1aが扱うデータを収集する機能も有する。
図2を参照して、制御装置100aが受けるセキュリティ事象が生じ得る場面について説明する。ここで、「セキュリティ事象」は、制御システム10aに含まれる設備や機械を正常運転することを妨げる任意の事象に加えて、この事象に関係し得るすべての事象を含む。
なお、「正常運転」は、システム設計通りおよび生産計画通りに、設備や機械を運転継続するための、設備や機械の立ち上げ、メンテナンス、段取り替えなどの付属的な処理も「正常運転」の概念に含まれる。
制御装置100aにおいては、典型的には、(1)データベース950aといった上位装置との間の通信、(2)フィールドデバイス500aなどの制御対象との間の通信、(3)サポート装置600aまたはメモリカード115aなどの制御装置100aが実行する制御プログラムに変更を与える装置との間の通信、または(4)社外の装置との間の通信でセキュリティ事象の発生リスクが存在する。さらに、制御装置100aに搭載されているすべての物理ポートは、セキュリティ事象の発生リスクが存在する。なお、ここで、制御プログラムとは、ユーザプログラム1086aに加えて、制御装置100aとしての基本的な機能を提供するシステムプログラムを含む概念である。
セキュリティ監視装置200aは、これらの各場面でコントローラシステム1aに生じ得るセキュリティ事象の検知、およびセキュリティ事象に応じた処理を含むセキュリティ防護処理を実行する。セキュリティ事象に応じた処理は、コントローラシステム1aに生じ得るセキュリティ事象に対する予防と、検知されたセキュリティ事象に対する対応とのうちの少なくとも一方に関する処理を含む。
制御装置100aが実行するユーザプログラム1086aは、セキュリティ防護処理が実行されることで行われるセキュリティ監視装置200aの挙動を変更するための変更命令860aを含む。変更命令860aが実行されることで、セキュリティ監視装置200aが実行するセキュリティ事象に対する予防および検知されたセキュリティ事象に対する対応とのうちの少なくとも一方を変更することができる。
サポート装置600aは、ユーザプログラム1086aの作成にあたって、変更命令860aを選択するためのユーザインターフェイスを提供する。ユーザインターフェイスは、サポート装置600aが備えるディスプレイなどの表示部と、マウスおよびキーボードなどの入力部とを利用して実現される。
図3を参照して、サポート装置は、ユーザプログラムを作成または編集するためのユーザインターフェイスを提供するための作成編集部602aと、作成編集部が提供するユーザインターフェイスを介して作成されたユーザプログラムを出力する出力部620aとを備える。
ここで、サポート装置600aが出力するユーザプログラム1086aは、コンパイルされた後のオブジェクトコードで書かれたプログラムであってもよく、また、コンパイルされる前のソースコードで書かれたプログラムであってもよい。
作成編集部602aは、たとえば、サポート装置600aが備えるプロセッサなどが、各種プログラムを実行することで発現される機能である。
出力部620aは、ユーザプログラム1086aを制御装置100aに直接出力するためのUSBコントローラでああってもよく、また、メモリカード115aに出力するためのメモリカードインターフェイスなどであってもよく、また、制御装置100aと通信可能に接続された他の装置(たとえば、セキュリティ監視装置200a)と通信可能に接続されるためのインターフェイスであってもよい。
制御装置100aは、ユーザプログラムを実行するプログラム実行部102aと、セキュリティ監視装置200aと接続するための通信インターフェイス110aとを備える。
プログラム実行部102aは、サポート装置600aが提供するユーザインターフェイスを介して作成された変更命令を含むユーザプログラムを実行すると、セキュリティ監視装置200aで実行されるセキュリティ防護処理の内容を変更するための指令をセキュリティ監視装置200aに通知する。なお、プログラム実行部102aは、制御装置100aが備えるプロセッサがシステムプログラムを実行することで発現される機能である。
セキュリティ監視装置200aは、制御装置100aからの指令を受けて、セキュリティ防護処理の内容を変更する。たとえば、図3に示す例では、セキュリティ監視装置200aは、セキュリティ防護処理の内容を実行内容Aから実行内容Bに変更する。
このように、サポート装置600aが、変更命令を選択することのできるユーザインターフェイスを提供することで、セキュリティ監視装置200aの挙動を変更できる環境が提供される。その結果、生じ得るセキュリティ事象からコントローラシステムを好適に保護するための環境が提供される。
§2 構成例
<A.コントローラシステム1のシステム構成>
図4は、本実施の形態に係るコントローラシステム1の構成例を示す外観図である。コントローラシステム1は、制御ユニット100と、セキュリティユニット200と、セーフティユニット300と、1または複数の機能ユニット400と、電源ユニット450とを含む。
制御ユニット100とセキュリティユニット200との間は、任意のデータ伝送路(例えば、PCI Expressあるいはイーサネットなど)を介して接続されている。制御ユニット100とセーフティユニット300および1または複数の機能ユニット400との間は、図示しない内部バスを介して接続されている。
制御ユニット100は、制御対象を制御するための制御演算を実行する制御装置の一例であり、コントローラシステム1において中心的な処理を実行する。制御ユニット100は、任意に設計された要求仕様に従って、制御対象を制御するための制御演算を実行する。後述のセーフティユニット300で実行される制御演算との対比で、制御ユニット100で実行される制御演算を「標準制御」とも称す。図4に示す構成例において、制御ユニット100は、1または複数の通信ポートを有している。
セキュリティユニット200は、制御ユニット100に接続され、コントローラシステム1に対するセキュリティ機能を担当する。セキュリティユニット200は、セキュリティ防護処理を実行するセキュリティ監視装置の一例である。図4に示す構成例において、セキュリティユニット200は、1または複数の通信ポートを有している。セキュリティユニット200が提供するセキュリティ機能の詳細については、後述する。
セーフティユニット300は、制御ユニット100とは独立して、制御対象に関するセーフティ機能を実現するための制御演算を実行する。セーフティユニット300で実行される制御演算を「セーフティ制御」とも称す。通常、「セーフティ制御」は、IEC 61508などに規定されたセーフティ機能を実現するための要件を満たすように設計される。「セーフティ制御」は、設備や機械などによって人の安全が脅かされることを防止するための処理を総称する。
機能ユニット400は、コントローラシステム1による様々な制御対象に対する制御を実現するための各種機能を提供する。機能ユニット400は、典型的には、I/Oユニット、セーフティI/Oユニット、通信ユニット、モーションコントローラユニット、温度調整ユニット、パルスカウンタユニットなどを包含し得る。I/Oユニットとしては、例えば、デジタル入力(DI)ユニット、デジタル出力(DO)ユニット、アナログ出力(AI)ユニット、アナログ出力(AO)ユニット、パルスキャッチ入力ユニット、および、複数の種類を混合させた複合ユニットなどが挙げられる。セーフティI/Oユニットは、セーフティ制御に係るI/O処理を担当する。
電源ユニット450は、コントローラシステム1を構成する各ユニットに対して、所定電圧の電源を供給する。
<B.各ユニットのハードウェア構成例>
次に、本実施の形態に従うコントローラシステム1を構成する各ユニットのハードウェア構成例について説明する。
(b1:制御ユニット100)
図5は、本実施の形態に従うコントローラシステム1を構成する制御ユニット100のハードウェア構成例を示す模式図である。制御ユニット100は、主たるコンポーネントとして、CPU(Central Processing Unit)やGPU(Graphical Processing Unit)などのプロセッサ102と、チップセット104と、主記憶装置106と、二次記憶装置108と、通信コントローラ110と、USB(Universal Serial Bus)コントローラ142と、メモリカードインターフェイス114と、ネットワークコントローラ144,146,148と、内部バスコントローラ122と、インジケータ124とを含む。
プロセッサ102は、二次記憶装置108に格納された各種プログラムを読み出して、主記憶装置106に展開して実行することで、標準制御に係る制御演算、および、後述するような各種処理を実現する。すなわち、プロセッサ102は、プログラムを実行するプログラム実行部としての機能を有する。チップセット104は、プロセッサ102と各コンポーネントとの間のデータの遣り取りを仲介することで、制御ユニット100全体としての処理を実現する。
二次記憶装置108には、システムプログラムに加えて、システムプログラムが提供する実行環境上で動作する制御プログラムが格納される。
通信コントローラ110は、セキュリティユニット200との間のデータの遣り取りを担当する。通信コントローラ110としては、例えば、PCI Expressあるいはイーサネットなどに対応する通信チップを採用できる。
USBコントローラ142は、通信ポートに相当し、USB接続を介して任意の情報処理装置との間のデータの遣り取りを担当する。具体的には、USBコントローラ142は、サポート装置600との間のデータの遣り取りを担当する。サポート装置600は、少なくとも制御ユニット100にアクセス可能になっており、コントローラシステム1に含まれる各ユニットで実行されるプログラムの作成、デバッグ、各種パラメータの設定などの機能をユーザへ提供する。
メモリカードインターフェイス114は、メモリカード115を着脱可能に構成されており、メモリカード115に対して制御プログラムや各種設定などのデータを書込み、あるいは、メモリカード115から制御プログラムや各種設定などのデータを読出すことが可能になっている。
ネットワークコントローラ144は、1または複数のフィールドデバイス500との間のデータの遣り取りを担当する。フィールドデバイス500は、制御対象から制御演算に必要な各種情報を収集するセンサや検出器、および、制御対象に対して何らかの作用を与えるアクチュエータなどを含む。フィールドデバイス500は、ワークに対して何らかの外的な作用を与えるロボット、ワークを搬送するコンベヤ、フィールドに配置されたセンサやアクチュエータとの間で信号を遣り取りするI/Oユニットなどを含む。
ネットワークコントローラ146は、HMI800との間のデータの遣り取りを担当する。HMI800は、コントローラシステム1での制御演算によって得られる各種情報をオペレータへ提示するとともに、オペレータからの操作に従って、コントローラシステム1に対して内部コマンドなどを生成する。
ネットワークコントローラ148は、データベース950との間のデータの遣り取りを担当する。データベース950は、コントローラシステム1から送信される各種データ(例えば、各ワークから計測されたトレーサビリティに関する情報など)を収集する。
ネットワークコントローラ144,146,148の各々は、通信ポートに相当し、EtherCAT(登録商標)、EtherNet/IP(登録商標)、DeviceNet(登録商標)、CompoNet(登録商標)などの産業用ネットワークプロトコルを採用してもよい。
内部バスコントローラ122は、コントローラシステム1を構成するセーフティユニット300や1または複数の機能ユニット400との間のデータの遣り取りを担当する。内部バスには、メーカ固有の通信プロトコルを用いてもよいし、いずれかの産業用ネットワークプロトコルと同一あるいは準拠した通信プロトコルを用いてもよい。
インジケータ124は、制御ユニット100の動作状態などを通知するものであり、ユニット表面に配置された1または複数のLEDなどで構成される。
図5には、プロセッサ102がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASIC(Application Specific Integrated Circuit)またはFPGA(Field-Programmable Gate Array)など)を用いて実装してもよい。あるいは、制御ユニット100の主要部を、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコンをベースとした産業用パソコン)を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のOS(Operating System)を並列的に実行させるとともに、各OS上で必要なアプリケーションを実行させるようにしてもよい。
(b2:セキュリティユニット200)
図6は、本実施の形態に従うコントローラシステム1を構成するセキュリティユニット200のハードウェア構成例を示す模式図である。セキュリティユニット200は、主たるコンポーネントとして、CPUやGPUなどのプロセッサ202と、チップセット204と、主記憶装置206と、二次記憶装置208と、通信コントローラ210と、USBコントローラ212と、メモリカードインターフェイス214と、ネットワークコントローラ242と、インジケータ224とを含む。
プロセッサ202は、二次記憶装置208に格納された各種プログラムを読み出して、主記憶装置206に展開して実行することで、後述するような各種セキュリティ機能を実現する。チップセット204は、プロセッサ202と各コンポーネントとの間のデータの遣り取りを仲介することで、セキュリティユニット200全体としての処理を実現する。
二次記憶装置208には、システムプログラムに加えて、システムプログラムが提供する実行環境上で動作するセキュリティシステムプログラムが格納される。
通信コントローラ210は、制御ユニット100との間のデータの遣り取りを担当する。通信コントローラ210としては、制御ユニット100に通信コントローラ210と同様に、例えば、PCI Expressあるいはイーサネットなどに対応する通信チップを採用できる。
USBコントローラ212は、USB接続を介して任意の情報処理装置との間のデータの遣り取りを担当する。USBコントローラ212は、典型的には、サポート装置600との間のデータの遣り取りを担当する。
メモリカードインターフェイス214は、メモリカード215を着脱可能に構成されており、メモリカード215に対して制御プログラムや各種設定などのデータを書込み、あるいは、メモリカード215から制御プログラムや各種設定などのデータを読出すことが可能になっている。
ネットワークコントローラ242は、ネットワークを介した任意のデバイスとの間のデータの遣り取りを担当する。ネットワークコントローラ242は、イーサネット(登録商標)などの汎用的なネットワークプロトコルを採用してもよい。ネットワークを介しては、たとえば、サポート装置600およびSCADA装置750が接続され得る。
SCADA装置750は、コントローラシステム1での制御演算によって得られる各種情報をオペレータへ提示するとともに、オペレータからの操作に従って、コントローラシステム1に対して内部コマンドなどを生成する。SCADA装置750は、コントローラシステム1が扱うデータを収集する機能も有している。
インジケータ224は、セキュリティユニット200の動作状態などを通知するものであり、ユニット表面に配置された1または複数のLEDなどで構成される。
図6には、プロセッサ202がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASICまたはFPGAなど)を用いて実装してもよい。あるいは、セキュリティユニット200の主要部を、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコンをベースとした産業用パソコン)を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のOSを並列的に実行させるとともに、各OS上で必要なアプリケーションを実行させるようにしてもよい。
(b3:セーフティユニット300)
図7は、本実施の形態に従うコントローラシステム1を構成するセーフティユニット300のハードウェア構成例を示す模式図である。セーフティユニット300は、主たるコンポーネントとして、CPUやGPUなどのプロセッサ302と、チップセット304と、主記憶装置306と、二次記憶装置308と、メモリカードインターフェイス314と、内部バスコントローラ322と、インジケータ324とを含む。
プロセッサ302は、二次記憶装置308に格納された各種プログラムを読み出して、主記憶装置306に展開して実行することで、セーフティ制御に係る制御演算、および、後述するような各種処理を実現する。チップセット304は、プロセッサ302と各コンポーネントとの間のデータの遣り取りを仲介することで、セーフティユニット300全体としての処理を実現する。
二次記憶装置308には、システムプログラムに加えて、システムプログラムが提供する実行環境上で動作するセーフティプログラムが格納される。
メモリカードインターフェイス314は、メモリカード315を着脱可能に構成されており、メモリカード315に対してセーフティプログラムや各種設定などのデータを書込み、あるいは、メモリカード315からセーフティプログラムや各種設定などのデータを読出すことが可能になっている。
内部バスコントローラ322は、内部バスを介した制御ユニット100との間のデータの遣り取りを担当する。
インジケータ324は、セーフティユニット300の動作状態などを通知するものであり、ユニット表面に配置された1または複数のLEDなどで構成される。
図7には、プロセッサ302がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASICまたはFPGAなど)を用いて実装してもよい。あるいは、セーフティユニット300の主要部を、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコンをベースとした産業用パソコン)を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のOSを並列的に実行させるとともに、各OS上で必要なアプリケーションを実行させるようにしてもよい。
<C.コントローラシステム1のソフトウェア構成>
図8は、コントローラシステム1のソフトウェア構成を示す模式図である。なお、図8においては、セーフティユニット300、機能ユニット400、および電源ユニット450の記載は省略している。図8に示す制御ユニット100のソフトウェア群に含まれる命令コードは、二次記憶装置108に格納されており、適切なタイミングで読み出され、プロセッサ102によって実行される。図8に示すセキュリティユニット200のソフトウェア群に含まれる命令コードは、二次記憶装置208に格納されており、適切なタイミングで読み出され、プロセッサ202によって実行される。
制御ユニット100で実行されるソフトウェアとしては、基本的には、OS1082と、システムプログラム1084と、ユーザプログラム1086とを含む。なお、システムプログラム1084と、ユーザプログラム1086とは総じて制御プログラム1085ともいう。
OS1082は、制御ユニット100のコンピュタアーキテクチャに応じて設計されており、プロセッサ102がシステムプログラム1084およびユーザプログラム1086を実行するための基本的な実行環境を提供する。OS1082は、典型的には、コントローラのメーカあるいは専門のソフトウェア会社などによって提供される。
システムプログラム1084は、コントローラシステム1としての機能を提供するためのソフトウェア群である。具体的には、システムプログラム1084は、スケジューラプログラム842と、シーケンス命令プログラム844と、入出力処理プログラム846と、アクセス処理プログラム848とを含む。システムプログラム1084に含まれる各プログラムは、典型的には、コントローラのメーカあるいは専門のソフトウェア会社などによって提供される。
ユーザプログラム1086は、ユーザにおける制御目的に応じて作成される。ユーザプログラム1086は、例えばサポート装置600において生成される。ユーザプログラム1086は、サポート装置600からUSBケーブルを介して制御ユニット100に転送され、二次記憶装置108に格納される。
ユーザプログラム1086は、シーケンス命令プログラム44と協働して、ユーザにおける制御目的を実現する。すなわち、ユーザプログラム1086は、シーケンス命令プログラム44によって提供される命令、関数、機能モジュールなどを利用することで、プログラムされた動作を実現する。
ユーザプログラム1086は、1または複数の変更命令860を含む。変更命令は、セキュリティユニット200で実行されるセキュリティ防護処理の内容を変更するための命令である。なお、図8に図示しないものの、変更命令860は、第1変更命令と第2変更命令とを含む。第1変更命令は、制御ユニット100の動作状態を示す入力信号に対して、セキュリティ防護処理が実行されることで行われるセキュリティユニット200の挙動を示す出力信号の値を決定するための命令である。第2変更命令は、セキュリティユニット200の挙動を示す命令である。
サポート装置600からは、変更命令を実行するためのパラメータを示す情報として、ユーザプログラム1086と合わせてレベル対応データ864と、処理内容対応データ866とが送られる。なお、レベル対応データ864および処理内容対応データ866の詳細については後述する。
ユーザプログラム1086は、変更命令以外のフィールドデバイス500などを制御するための制御命令863を含む。サポート装置600からは、制御命令を実行するためのパラメータを示す情報として、ユーザプログラム1086と合わせて構成データ865が送られる。なお、構成データ865の詳細は後述する。
スケジューラプログラム842は、予め定められた優先度に従ってプログラムをプロセッサ102に実行させる。スケジューラプログラム842は、プロセッサ102が実行する各プログラムについて、処理開始および処理中断、ならびに、処理中断後の処理再開を制御する。
シーケンス命令プログラム844は、ユーザプログラム1086の実行に伴って、ユーザプログラム1086内で指定されているシーケンス命令の実体を呼び出して、その命令の内容を実現するための命令コード群を含む。
入出力処理プログラム846は、制御ユニット100に接続されたフィールド機器との間で、入力データの取得および出力データの送信を管理するためのプログラムである。
アクセス処理プログラム48は、セキュリティユニット200などの他の装置と通信する処理を実現するための命令コード群を含む。より具体的には、アクセス処理プログラム48を実行することで、制御ユニット100は、変更命令の実行に伴って決定した、セキュリティ防護処理が実行されることで行われるセキュリティユニット200の挙動を示す出力信号を、アクセス処理プログラム48の実行によりセキュリティユニット200に出力する。
セキュリティユニット200は、基本的には、OS2082と、システムプログラム2084とを含む。
OS2082は、セキュリティユニット200のコンピュタアーキテクチャに応じて設計されており、プロセッサ202がシステムプログラム2084を実行するための基本的な実行環境を提供する。OS2082は、典型的には、コントローラのメーカあるいは専門のソフトウェア会社などによって提供される。
システムプログラム2084は、アクセス処理プログラム2081と、セキュリティ防護プログラム2083とを含む。
アクセス処理プログラム2081は、制御ユニット100などの他の装置と通信する処理を実現するための命令コード群を含む。
セキュリティ防護プログラム2083は、予防プログラム2085と、検知プログラム2087と、対処プログラム2089とを含む。セキュリティ防護プログラム2083は、アクセス処理プログラム2081の実行により得られる制御ユニット100から送られるセキュリティユニット200の挙動を示す出力信号に従って予防プログラム2085、検知プログラム2087、対処プログラム2089の各々を実行するための命令コード群を含む。
セキュリティユニット200は、制御ユニット100から出力されたセキュリティユニット200の挙動を示す出力信号に従ってセキュリティ防護プログラム2083に含まれる各プログラムを実行する。
<D.セキュリティユニット200が実行するセキュリティ防護処理>
セキュリティユニット200は、コントローラシステム1に対するセキュリティ機能を担当し、コントローラシステム1に対するセキュリティ防護処理を実行する。制御ユニット100に対しては、様々な場面でセキュリティ事象が生じ得る(図2参照)。セキュリティユニット200は、これらの各場面で制御ユニット100に生じ得るセキュリティ事象に対する予防、セキュリティ事象の検知、および検知したセキュリティ事象に応じた対処を含むセキュリティ防護処理を実行する。
セキュリティユニット200は、予め定められた複数のセキュリティレベルのそれぞれに応じたセキュリティ防護処理を実行可能である。また、制御ユニット100の動作状態と制御ユニット100で実行される制御演算により発行される通知のうちの少なくとも一方に従って、複数のセキュリティレベルのうちのいずれかのセキュリティレベルに応じたセキュリティ防護処理を実行する。
図9は、コントローラシステム1のセキュリティ機能の概要を示す機能構成図である。図9に示す制御ユニット100の機能は、プロセッサ102が、図8に示す各プログラムを実行することで実現される。また、図9に示すセキュリティユニット200の機能は、プロセッサ202が、図8に示す各プログラムを実行することで実現される。
制御ユニット100は、状態管理部1022と、制御演算部1024と、レベル決定部1026と、セキュリティ策定部1028とを備える。
状態管理部1022は、制御ユニット100の動作状態を管理する。動作状態は、制御ユニット100に予めインストールされており、制御ユニット100としての機能を提供するためのシステムプログラム1084の実行により制御される状態である。すなわち、制御ユニット100の動作状態は、制御ユニット100のメーカにより規定されている状態である。また、状態管理部1022は、システムプログラム1084の実行により発現される機能であるともいえる。
制御ユニット100の動作状態は、典型的には、制御ユニット100が備える制御プログラムが実行されている状態と実行されていない状態または、制御プログラムの書き換えが許可されている状態と許可されていない状態という観点で分類できる。
本実施の形態においては、「プログラムモード」「運転モード」「オンラインエディットモード」「保守モード」の4つの動作状態のうちのいずれかの状態に制御されるものとする。
「プログラムモード」は、制御ユニット100がプログラムを実行しておらず、制御ユニット100にユーザプログラム1086をインストールする前からインストールを完了するまでの期間に制御される動作状態であって、たとえば、制御ユニット100が出荷されたときの動作状態や、制御ユニット100の制御プログラムを書き換えるときに制御される動作状態である。
「運転モード」は、制御ユニット100がプログラムの実行中に制御される動作状態であって、設備や機械が運転しているときに制御されるモードである。
「オンラインエディットモード」は、制御プログラムの実行中に制御プログラムの書き換えが可能な動作状態である。
「保守モード」は、制御ユニット100がプログラムを実行しておらず、制御ユニット100のプログラムの書き換えが可能な動作状態である。
なお、これらの動作状態は一例であって、制御ユニット100が制御する動作状態の種類は、4種類未満であっても、1種類であっても、5種類以上であってもよく、また、制御ユニット100が、図9に示した動作状態を必ずしも備えている必要はない。
状態管理部1022は、動作状態を移行させる条件が成立したことに伴い、成立した条件に応じた動作状態に制御する。状態管理部1022は、動作状態が移行したことをレベル決定部1026に通知する。状態管理部1022は、たとえば、典型的には、サポート装置600からの状態移行の指示、HMI800が生成した内部コマンド、または、制御ユニット100に設けられた図示しないキースイッチに対する操作などを検知した場合に動作状態を移行させる。
制御演算部1024は、制御対象であるワークを制御するための制御演算を行う。制御演算部1024は、制御ユニット100と通信可能に接続されたフィールドデバイス500またはセーフティユニット300から出力される入力値および構成データ865に従って制御演算を実行する。
構成データ865は、制御演算を実行するために必要な設定情報を含み、たとえば、I/Oユニットに割り当てられた信号に対するプログラムに用いる変数の割り当てを含む。
レベル決定部1026は、状態管理部1022または制御演算部1024からの入力値およびレベル対応データ864に従い、セキュリティレベルを決定する。レベル決定部1026は、決定したセキュリティレベルをセキュリティ策定部1028に通知する。
図10は、レベル対応データ864のデータ構成を示す図である。図10を参照して、レベル対応データ864は、状態管理部1022および制御演算部1024から入力される入力値へのセキュリティレベルの割り当てを含む。より具体的には、動作状態または、演算結果を示す変数に対して、セキュリティレベルが割り当てられている。演算結果としては、たとえば異常信号の出力などが挙げられる。
図9に戻り、セキュリティ策定部1028は、セキュリティレベルに応じた内容のセキュリティ防護処理の内容を特定し、セキュリティユニット200に、特定した内容のセキュリティ防護処理の実行を指示する。セキュリティ策定部1028は、レベル決定部1026から通知されたセキュリティレベルおよび処理内容対応データ866に従ってセキュリティ防護処理の内容を特定する。
図11は、処理内容対応データ866のデータ構成を示す図である。図11を参照して、セキュリティ防護処理の内容は、予め定められた複数のセキュリティレベルの各々に応じて規定されている。
たとえば、処理内容対応データ866は、図11を参照して、セキュリティ事象に対する予防方法として、セキュリティレベルごとに、制御ユニット100から出力される情報のうち出力を制限する情報および制限する出力先、制御ユニット100に接続されている装置から入力される情報のうち入力を制限する情報および制御ユニット100に情報を送ることが可能な対象を規定する。
なお、処理内容対応データ866は、セキュリティ事象の検知方法として、セキュリティレベルごとに、セキュリティ事象が発生したと判断する閾値および検知対象を規定してもよい。
また、処理内容対応データ866は、検知したセキュリティ事象に応じた対処方法として、セキュリティレベルごとに、セキュリティ事象が検知された場合に、制御ユニット100から出力される情報のうちの出力を制限する情報、制限する出力先、制限される制御ユニット100に入力される情報および制御ユニット100に情報を送ることが可能な対象が規定されていてもよい。また、処理内容対応データ866は、セキュリティレベルごとに、セキュリティ事象が発生した場合に生じたセキュリティ事象の通知方法を規定してもよい。
セキュリティユニット200は、実行部2022を有する。実行部2022は、セキュリティ策定部1028が特定した内容のセキュリティ防護処理を実行する。具体的には、実行部2022は、規定された予防方法でセキュリティ事象に対する防御を行い、規定された検知方法でセキュリティ事象を検知し、規定された対処方法で検知されたセキュリティ事象に対する対処を行う。
たとえば、本実施の形態においては、制御ユニット100の動作状態に応じて、セキュリティユニット200は次のような挙動を示す。制御プログラムが実行されている「運転モード」においては、セキュリティレベル2が設定されており、データベース950といった上位装置との通信は有効に設定される。これにより、プログラムの実行に伴って収集される稼働ログを、常時、データベース950にアップロードすることができる。なお、このときに、稼働中の情報が外部に流出するリスクを下げるために、VPNを介した通信は無効にされている。
また、制御ユニット100の制御プログラムの書き換えが許可されている「プログラムモード」においては、データベース950などの上位装置との通信、および、VPNを介した通信は、いずれも無効となっている。これにより、制御プログラムの意図しない書き換えが生じてしまうことを防止することができる。
また、制御演算の結果、異常を示す通知がされた場合、VPNを介した通信を有効にすることで、リモートメンテナンスをできる環境が提供される。
ここで、状態管理部1022からの入力値に従ってセキュリティ防護処理の実行に伴うセキュリティユニット200の挙動が変更される一連の流れは、後述する第1変更命令が実行されたことで実現される。一方、制御演算部1024からの入力値に従って、セキュリティ防護処理の実行に伴うセキュリティユニット200の挙動が変更される一連の流れは、後述する第2変更命令が実行されたことで実現される。
<E.サポート装置のハードウェア構成>
図12は、サポート装置600のハードウェア構成例を示す模式図である。サポート装置600は、変更命令を含むユーザプログラムの作成機能を提供する。より具体的には、サポート装置600は、変更命令を選択するためのユーザインターフェイスを提供する。サポート装置600は、一例として、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコン)を用いて実現される。
図12を参照して、サポート装置600は、プロセッサ602と、メインメモリ604と、入力部606と、表示部608と、ストレージ610と、光学ドライブ612と、USBコントローラ620とを含む。これらのコンポーネントは、プロセッサバス618を介して接続されている。
プロセッサ602は、CPUやGPUなどで構成され、ストレージ610に格納されたプログラムを読出して、メインメモリ604に展開して実行することで、変更命令を選択するためのユーザインターフェイスを提供し、ユーザによる操作に従ってユーザプログラム1086を作成する。
メインメモリ604は、DRAMやSRAMなどの揮発性記憶装置などで構成される。ストレージ610は、例えば、HDDやSSDなどの不揮発性記憶装置などで構成される。
ストレージ610は、基本的な機能を実現するためのOSに加えて、サポート装置600としての機能を提供するためのサポートプログラムを格納する。
入力部606は、キーボードやマウスなどで構成され、ユーザ操作を受け付ける。表示部608は、ディスプレイなどで構成され、プロセッサ602からの処理結果などを出力する。
USBコントローラ620は、USB接続を介して、コントローラシステム1などとの間のデータを遣り取りする。
サポート装置600は、光学ドライブ612を有しており、コンピュータ読取可能なプログラムを非一過的に格納する記録媒体614(例えば、DVD(Digital Versatile Disc)などの光学記録媒体)から、その中に格納されたプログラムが読取られてストレージ610などにインストールされる。
サポート装置600で実行されるサポートプログラム6140などは、コンピュータ読取可能な記録媒体614を介してインストールされてもよいが、ネットワーク上のサーバ装置などからダウンロードする形でインストールするようにしてもよい。また、本実施の形態に係るサポート装置600が提供する機能は、OSが提供するモジュールの一部を利用する形で実現される場合もある。
図12には、プロセッサ602がプログラムを実行することで、サポート装置600として必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASICまたはFPGAなど)を用いて実装してもよい。
<F.サポート装置600が提供するユーザインターフェイス>
サポート装置600は、ユーザが変更命令を含むユーザプログラム1086を作成するためのユーザインターフェイスを提供する。より具体的には、サポート装置600のプロセッサ602がストレージ610に格納されたプログラムを実行することで、表示部608に、図13~図16に示すユーザインターフェイスを表示するとともに、入力部606が受け付けた設定に従って変更命令を含むユーザプログラム1086、ならびに変更命令の実行に必要なレベル対応データ864および処理内容対応データ866を生成する。
図13は、変更命令の選択を受け付けるユーザインターフェイスの一例を示す図である。図14は、変更命令が選択されたときに提供されるユーザインターフェイスの一例を示す図である。図15は、外部ネットワークに接続するための接続条件の内容を設定するためのユーザインターフェイスの一例を示す図である。図16は、変更命令の実行条件の設定を受け付けるユーザインターフェイスの一例を示す図である。
図13を参照して、ユーザインターフェイス650は、図中の左側のセキュリティ設定タブ652が選択されると、右側の領域に設定画面700が表示される。設定画面700は、変更命令の選択を受け付けるための変更命令を選択するための選択領域702を有す。選択領域702には、変更命令を選択しないことを示すタブ704と、選択することを示すタブ706とが表示されている。なお、図13には、ユーザインターフェイス650の一部を省略して記載している。
図14を参照して、タブ706が選択されると、設定画面700に2種類の変更命令の各々について、変更命令を選択するための第1選択領域710と第2選択領域720とが提供される。
第1選択領域710は、第1変更命令の選択を受け付ける。第1変更命令は、制御ユニット100の動作状態を示す入力信号に対して、セキュリティ防護処理が実行されることで行われるセキュリティユニット200の挙動を示す出力信号の値を決定するための命令である。第1選択領域710には、第1変更命令を選択しないことを示すタブ712と、選択することを示すタブ714とが表示されている。
第2選択領域720は、第2変更命令の選択を受け付ける。第2変更命令は、セキュリティ防護処理が実行されることで行われるセキュリティユニット200の挙動を規定する命令である。第2変更命令は、ユーザが任意に設定した条件が成立したときに実行される。第2選択領域720には、第2変更命令を選択しないことを示すタブ722と、選択することを示すタブ724とが表示されている。
図14を参照して、タブ714が選択されると、制御ユニット100の動作状態と、セキュリティレベルとを対応付けるためのレベル対応領域730が提供される。レベル対応領域730は、制御ユニット100の動作状態が規定された状態表示領域732と、状態表示領域732に表示された動作状態に対応するセキュリティレベルの入力を受け付けるレベル入力領域734とを含む。レベル入力領域734のタブ736が選択されると、複数のレベルのうちのいずれかのレベルを選択できるようになっている。なお、レベルを追加することも可能である。なお、状態表示領域732に表示される制御ユニット100の動作状態は予め定まっているため、状態表示領域732の表示は、基本的には変化しない。
各セキュリティレベルに応じて、セキュリティ防護処理の内容が設定されているため、レベル対応領域730は、制御ユニット100の動作状態を示す入力信号と、セキュリティ防護処理が実行されることで行われるセキュリティユニット200の挙動を示す出力信号との対応関係の設定を受け付ける領域であるともいえる。
図14を参照して、タブ714が選択されると、レベル対応領域730に加えて、セキュリティレベルごとにセキュリティ防護処理の内容を設定するための設定内容対応領域740が提供される。設定内容対応領域740は、セキュリティレベルを示すレベル領域742と、レベルごとのセキュリティ防護処理の内容の設定を受け付ける設定内容入力領域744とを含む。
設定内容入力領域744内の各セルには、設定内容を選択するためのタブ746が設けられている。タブ746を選択することで、設定内容を選択するためのユーザインターフェイスが提供される。
設定内容対応領域740は、出力信号に相当するセキュリティレベルごとのセキュリティ防護処理の内容の設定を受け付けるため、出力信号が示すセキュリティユニット200の挙動を設定するためのユーザインターフェイスに相当する。
設定内容入力領域744は、外部ネットワークを介した通信を許可した場合に、その許可条件の設定を受け付ける許可条件入力領域748を含む。許可条件入力領域748内の各許可条件(「Maintainer」「Adiministrator」「Engineer」)が示す具体的な許可条件の内容は、許可条件設定画面800を操作することで設定される。
図15を参照して、許可条件設定画面800は、許可条件をレベルごとに変更するための許可条件変更命令の選択を受け付ける条件変更選択領域810と、許可条件変更命令の選択がされた場合に、許可条件を設定するための許可条件設定領域820とを提供する。
条件変更選択領域810は、許可条件変更命令を選択しないことを示すタブ812と、選択することを示すタブ814とを含む。タブ814が選択されると、許可条件設定領域820が提供される。
許可条件設定領域820は、条件項目が提示されている条件項目領域822と、ユーザ名ごとに、各条件項目の入力を受け付ける条件入力領域824とを含む。「VPN Group」には、任意のグループ名を入力することができ、このグループ名と、図14中の許可条件入力領域748内で設定されたグループ名とが紐付かれている。たとえば、許可条件入力領域748に「Engineer」が入力されている場合、図15中の「Use_CCC」「User_DDD」「User_EEE」として設定されている各々の条件で、制御ユニット100にVPNを介して接続できることとなる。
図16を参照して、図14中のタブ724が選択されたとき、すなわち第2変更命令が選択された場合、第2変更命令の実行条件を設定するためのユーザインターフェイスとして変数テーブル画面900が提供される。
変数テーブル画面900は、ラダープログラムの入力を受け付ける。たとえば、図16中に描かれたラダープログラムは、Error1という変数が出力されたときに第2変更命令の実行条件が成立することを示している。
ユーザは任意の変数910を入力したり、あるいは、接点を組み合わせたりすることで、第2変更命令の実行条件を設定することができる。
また、インスタンスブロック920をクリックした場合に、いずれのセキュリティレベルのセキュリティ防護処理を実行するかを選択するための、レベル選択タブ922が提供される。なお、インスタンスブロック920をクリックした場合に、第2変更命令の命令内容そのものを入力するための変数テーブルが提供されてもよい。
なお、図13~図16に示したユーザインターフェイスは一例であって、別の表示形式で実現されてもよい。
<G.サポート装置600のソフトウェア構成>
図17は、サポート装置600のソフトウェア構成を示す模式図である。図17には、サポート装置600が各種機能を提供するためのソフトウェア群の一例を示す。これらのソフトウェア群に含まれる命令コードは、適切なタイミングで読み出され、サポート装置600のプロセッサ602によって実行される。
サポート装置600で実行されるソフトウェアは、少なくとも、OS6120と、サポートプログラム6140とを含む。これらのプログラムは、ストレージ610に格納されている。また、プログラムの実行に利用されるデータは、命令ライブラリ6160と、変数ライブラリ6180とを含み、ストレージ610に格納されている。
OS6120は、サポートプログラム6140を実行可能な基本的な環境を提供する。サポートプログラム6140は、サポート装置600が提供する機能を実現するためのプログラムであって、ユーザプログラム1086を作成するための機能を提供する。
命令ライブラリ6160は、ユーザプログラム1086を生成するための命令情報ごとに規定されたプログラム部品である命令を格納する。命令ライブラリ6160に格納される命令は、変更命令860と、制御命令863とを含む。変更命令860は、第1変更命令862aと第2変更命令862bとを含む。ユーザが第1変更命令862aを選択すると第1変更命令862aがユーザプログラム1086に組み込まれる。同様に、ユーザが第2変更命令862bを選択すると第2変更命令862bがユーザプログラム1086に組み込まれる。
変数ライブラリ6180は、変更命令の実行に必要なパラメータを規定する変数テーブル6182を含む。第1変更命令862aが選択された場合には、第1変更命令862aに応じた変数テーブルが呼び出され、表示部608に出力され、図14に示したレベル対応領域730および設定内容対応領域740が提供される。
レベル対応領域730および設定内容対応領域740に情報が入力されると、サポートプログラム6140は、レベル対応データ864および処理内容対応データ866を生成し、データ格納部6146に格納する。なお、制御命令863が選択された場合には、選択された制御命令に応じた変数テーブルが呼び出され、表示部608に出力され、変数の入力がされると、構成データ865が生成され、データ格納部6146に格納される。
これらの命令ライブラリ6160および変数ライブラリ6180は、たとえば、コントローラのメーカあるいは専門のソフトウェア会社などが記録媒体614に格納させた状態で流通する。ユーザは、記録媒体614に格納された命令ライブラリ6160および変数ライブラリ6180をサポート装置600にインストールすることで、命令ライブラリ6160および変数ライブラリ6180を利用することができる。
サポートプログラム6140は、エディタ6141と、コンパイラ6142と、デバッガ6143と、GUI(Graphical User Interface)モジュール6144と、シミュレータ6145と、データ格納部6146とを含む。
エディタ6141は、ユーザプログラム1086のソースプログラムを作成するための入力および編集といった機能を提供する。より具体的には、エディタ6141は、キーボードまたはマウスで構成された入力部606をユーザが操作してユーザプログラム1086のソースプログラムを作成する機能に加えて、作成したソースプログラムの保存機能および編集機能を提供する。エディタ6141は、設計者の操作に応じて、命令ライブラリ6160から選択された変更命令を用いて、ユーザプログラム1086のソースプログラムを作成する。
コンパイラ6142は、ソースプログラムをコンパイルして、制御ユニット100で実行可能なプログラム形式のユーザプログラム1086を生成する機能を提供する。
デバッガ6143は、ユーザプログラム1086のソースプログラムに対してデバッグを行うための機能を提供する。
GUIモジュール6144は、設計者が各種データやパラメータなどを入力するためのユーザインターフェイス画面を提供する機能を有する。当該ユーザインターフェイス画面は、表示部608に表示される。
シミュレータ6145は、サポート装置600内に制御ユニット100でのプログラムの実行をシミュレーションする環境を構築する。
データ格納部6146には、作成されたユーザプログラム1086が格納される。このユーザプログラム1086は、一または複数の命令を含む。データ格納部6146に格納されたユーザプログラム1086、レベル対応データ864、処理内容対応データ866、および構成データ865などは、USBケーブルを介して制御ユニット100に送られ、設定される。
なお、図17に示す例では、命令ライブラリ6160および変数ライブラリ6180がサポート装置600のストレージ610に格納されているものとしたが、命令ライブラリ6160および変数ライブラリ6180のうちの少なくとも一方が、サポート装置600とネットワークを介して接続可能なサーバ装置に格納されていてもよい。
<H.フローチャート>
(h1.制御ユニットが実行するフローチャート)
図18を参照して制御ユニット100が実行するセキュリティレベル移行処理を説明する。図18は、制御ユニット100が実行するセキュリティレベル移行処理の一例を示すフローチャートである。
ステップS112において、プロセッサ102は、制御ユニット100の動作状態が切り替わったか否かを判定する。
動作状態が切り替わっていないと判定した場合(ステップS112においてNo)、プロセッサ102は制御をステップS116に切り替える。動作状態が切り替わっていると判定した場合(ステップS112においてYes)、プロセッサ102は、ステップS114において、動作状態に対応するセキュリティレベルを特定する。
ステップS116において、プロセッサ102は、第2変更命令の実行条件が成立したか否かを判定する。すなわち、制御演算により発行される通知に応じたセキュリティレベルの変更を行うか否かを判定する。
第2変更命令の実行条件が成立していない場合(ステップS116においてNo)、プロセッサ102は、処理をステップS120に切り替える。第2変更命令の実行条件が成立している場合(ステップS116においてYes)、プロセッサ102は、ステップS118において、第2変更命令が示すセキュリティ防護処理の内容を特定する。
ステップS120において、プロセッサは、セキュリティ防護処理の内容を変更する指令を生成するか否かを判定する。具体的には、ステップS112およびステップS116のいずれにおいても、Noである場合、プロセッサ102は、指令を生成しないと判定し(ステップS120においてNo)、セキュリティレベル移行処理を終了する。
プロセッサ102は、セキュリティ防護処理の内容を変更する指令を生成すると判定した場合(ステップS120においてYes)、ステップS122において、セキュリティ防護処理の内容を変更する指令を生成し、ステップS124において生成した指令をセキュリティユニット200に通知して、処理を終了する。動作状態が切り替わっており、かつ、第2変更命令の実行条件も成立している場合、プロセッサ102は、最もセキュリティが高くなるようにセキュリティ防護処理の内容を変更する指令を生成する。
なお、ステップS122においては、プロセッサ102は、セキュリティ防護処理の内容そのものを示す指令が生成されてもよく、また、セキュリティ防護処理の内容を決定するための情報を指令として生成してもよい。
(h2.サポート装置が実行するフローチャート)
図19を参照してサポート装置が実行する処理のフローを説明する。図19は、サポート装置600が実行する処理の一例を示すフローチャートである。
ステップS612において、プロセッサ602は、セキュリティレベルに関する設定の開始を受け付けたか否かを判定する。受け付けなかった場合(ステップS612においてNo)、プロセッサ602は処理を終了する。
受け付けた場合(ステップS612においてYes)、プロセッサ602は、ステップS614において、変更命令の選択を受け付けるユーザインターフェイスを提供する。
ステップS616において、プロセッサ602は、変更命令が選択されたか否かを判定する。変更命令が選択されなかった場合(ステップS616においてNo)、プロセッサ602は処理を終了する。
変更命令が選択された場合(ステップS616においてYes)、ステップS618において、プロセッサ602は、選択された変更命令に応じて、命令を実行するための入力を促すユーザインターフェイスを提供する。
ステップS620において、プロセッサ602は、ユーザプログラムの出力指示を受け付けたか否かを判定する。出力指示が受け付けられていない場合(ステップS620においてNo)、プロセッサ602は、処理を終了する。
出力指示が受け付けられている場合(ステップS620においてYes)、プロセッサ602は、ステップS622において、変更命令を含むユーザプログラムを出力する。
<I.変形例>
(変形例1)
上記の実施の形態において、セキュリティ防護処理の内容は、予め定められた複数のセキュリティレベルに対応して設定されるものとしたが、制御ユニット100の動作状態または制御演算の結果のうちのいずれか一方に従って決定されればよい。たとえば、セキュリティレベルという中間変数を利用せずに、動作状態および演算結果ごとにセキュリティ防護処理の内容が規定されていてもよい。また、サポート装置600が提供するユーザインターフェイスは、セキュリティレベルという中間変数を用いていたものの、これを用いず、動作状態ごと、第2変更命令ごとにセキュリティ防護処理の内容を設定できるようにしてもよい。
(変形例2)
上記の実施の形態において、セキュリティ防護処理の内容は、動作状態および制御演算の結果の各々に従って決定するものとしたが、一方の情報だけに従い決定されてもよい。また、ユーザプログラム1086として変更命令が提供されるものを例に挙げたが、システムプログラムとして予め変更命令に相当するプログラムが設けられていてもよい。
たとえば、制御ユニット100は、ユーザがユーザプログラム1086を作成して、インストールする以前から、制御ユニット100の動作状態に応じてセキュリティ防護処理の内容を変更させることのできる機能を有していてもよい。この場合、動作状態ごとのセキュリティ防護処理の内容はデフォルトで設定されており、ユーザによって変更可能に構成されていてもよい。
(変形例3)
制御ユニット100とセキュリティユニット200とは、一体で構成されていてもよい。この場合、制御ユニット100の機能を一のCPUで実現し、セキュリティユニット200の機能を他のCPUで実現してもよい。また、マルチコアのCPUにより実現させてもよい。たとえば、マルチコアのCPUの一のコアを制御ユニット100の機能に割り当て、他のコアをセキュリティユニット200の機能に割り当てるようにしてもよい。
§3 付記
以上のように、上記の実施の形態よび変形例は以下のような開示を含む。
<構成1>
コントローラシステムで利用されるサポート装置(600,600a)であって、
前記コントローラシステム(1,1a)は、
制御対象を制御するための制御演算を実行する制御装置(100,100a)と、
前記コントローラシステムに生じ得るセキュリティ事象の検知および当該セキュリティ事象に応じた処理の実行を含むセキュリティ防護処理(2083)を実行するセキュリティ監視装置(200,200a)とを備え、
前記サポート装置は、
前記制御装置で実行される制御演算の内容を規定するユーザプログラム(1086,1086a)を作成または編集するためのユーザインターフェイス(650)を提供する作成編集部(602,602a)と、
前記作成編集部が提供する前記ユーザインターフェイスを介して作成された前記ユーザプログラムを出力する出力部(110a,110)とを備え、
前記作成編集部は、前記ユーザプログラムを構成する命令として、前記セキュリティ防護処理が実行されることで行われる前記セキュリティ監視装置の挙動を変更するための変更命令の選択を受け付けるユーザインターフェイス(702,710,720)を提供する、サポート装置。
<構成2>
前記作成編集部は、前記変更命令の実行条件の設定を受け付けるユーザインターフェイス(900)を提供する、構成1に記載のサポート装置。
<構成3>
前記変更命令は、前記制御装置の動作状態を示す入力信号に対して、前記セキュリティ防護処理が実行されることで行われる前記セキュリティ監視装置の挙動を示す出力信号の値を決定するための命令(862b)であって、
前記作成編集部は、前記入力信号と前記出力信号との対応関係の設定を受け付けるユーザインターフェイス(730,740)を提供する、構成1または構成2に記載のサポート装置。
<構成4>
前記作成編集部は、前記セキュリティ監視装置の挙動を設定するためのユーザインターフェイス(740)を提供する、構成1~構成3のうちいずれか1項に記載のサポート装置。
<構成5>
前記セキュリティ監視装置の挙動は、前記コントローラシステムを外部ネットワークに接続するための接続条件の設定を含み、
前記作成編集部は、前記接続条件の内容を設定するためのユーザインターフェイス(820)を提供する、構成1~構成4のうちいずれか1項に記載のサポート装置。
<構成6>
コントローラシステム(1,1a)が備える制御対象を制御するための制御演算を実行する制御装置(100,100a)で実行されるユーザプログラム(1086,1086a)の開発を支援するための支援プログラム(6140)であって、
前記コントローラシステムは、前記コントローラシステムに生じ得るセキュリティ事象の検知および当該セキュリティ事象に応じた処理の実行を含むセキュリティ防護処理(2083)を実行するセキュリティ監視装置(100)を有し、
前記支援プログラムは、コンピュータに、
前記制御装置で実行される制御演算の内容を規定するユーザプログラムを作成または編集するためのユーザインターフェイス(650)を提供するステップ(ステップS612~ステップS618)と、
前記ユーザインターフェイスを介して作成された前記ユーザプログラムを出力するステップS620)とを実行させ、
前記ユーザインターフェイスを提供するステップにおいて、前記ユーザプログラムを構成する命令として、前記セキュリティ防護処理が実行されることで行われる前記セキュリティ監視装置の挙動を変更するための変更命令の選択を受け付けるユーザインターフェイス(702,710,720)が提供される、支援プログラム。
<構成7>
制御対象を制御するための制御演算を実行する制御装置(100,100a)であって、
前記制御装置に生じ得るセキュリティ事象の検知および当該セキュリティ事象に応じた処理の実行を含むセキュリティ防護処理(2083)を実行するセキュリティ監視装置(200a,200)と接続するための通信インターフェイス(110,110a)と、
前記制御演算を実現するためのユーザプログラム(1086,1086a)を実行するプログラム実行部(102,102a)とを備え、
前記ユーザプログラムは、前記セキュリティ防護処理が実行されることで行われる前記セキュリティ監視装置の挙動を変更するための変更命令(862,862a,862b)を含み、
前記プログラム実行部は、前記変更命令の実行によって、前記セキュリティ監視装置で実行されるセキュリティ防護処理の内容を変更するための指令を前記セキュリティ監視装置へ通知する、制御装置。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。また、実施の形態および各変形例において説明された発明は、可能な限り、単独でも、組合せても、実施することが意図される。
1,1a コントローラシステム、10a 制御システム、100 制御ユニット、100a 制御装置、102,202,302,602 プロセッサ、102a プログラム実行部、104,204,304 チップセット、106,206,306 主記憶装置、108,208,308 二次記憶装置、110,210 通信コントローラ、110a 通信インターフェイス、114,114a,214,314 メモリカードインターフェイス、115,115a,215,315 メモリカード、122,322 内部バスコントローラ、124,224,324 インジケータ、142,212,620 USBコントローラ、142a,144a,146a,148a,242a 通信ポート、144,146,148,242 ネットワークコントローラ、200 セキュリティユニット、200a セキュリティ監視装置、300 セーフティユニット、400 機能ユニット、450 電源ユニット、500,500a フィールドデバイス、600,600a サポート装置、602a 作成編集部、604 メインメモリ、606 入力部、608 表示部、610 ストレージ、612 光学ドライブ、614 記録媒体、618 プロセッサバス、620a 出力部、844 シーケンス命令プログラム、848,2081 アクセス処理プログラム、650 ユーザインターフェイス、652 セキュリティ設定タブ、700 設定画面、702 選択領域、704,706,712,714,722,724,736,746,812,814 タブ、710 第1選択領域、720 第2選択領域、730 レベル対応領域、732 状態表示領域、734 レベル入力領域、740 設定内容対応領域、742 レベル領域、744 設定内容入力領域、748 許可条件入力領域、750,750a SCADA装置、800 許可条件設定画面、810 条件変更選択領域、820 許可条件設定領域、822 条件項目領域、824 条件入力領域、842 スケジューラプログラム、846 入出力処理プログラム、860,860a 変更命令、862a 第1変更命令、862b 第2変更命令、863 制御命令、864 レベル対応データ、865 構成データ、866 処理内容対応データ、900 変数テーブル画面、910 変数、920 インスタンスブロック、922 レベル選択タブ、950,950a データベース、1022 状態管理部、1024 制御演算部、1026 レベル決定部、1028 セキュリティ策定部、1084,2084 システムプログラム、1085 制御プログラム、1086,1086a ユーザプログラム、2022 実行部、2083 セキュリティ防護プログラム、2085 予防プログラム、2087 検知プログラム、2089 対処プログラム、6140 サポートプログラム、6141 エディタ、6142 コンパイラ、6143 デバッガ、6144 モジュール、6145 シミュレータ、6146 データ格納部、6160 命令ライブラリ、6180 変数ライブラリ、6182 変数テーブル。

Claims (4)

  1. コントローラシステムで利用されるサポート装置であって、
    前記コントローラシステムは、
    制御対象を制御するための制御演算を実行する制御装置と、
    前記コントローラシステムに生じ得るセキュリティ事象の検知および当該セキュリティ事象に応じた処理の実行を含むセキュリティ防護処理を実行するセキュリティ監視装置とを備え、
    前記サポート装置は、
    前記制御装置で実行される制御演算の内容を規定するユーザプログラムを作成または編集するためのユーザインターフェイスを提供する作成編集部と、
    前記作成編集部が提供する前記ユーザインターフェイスを介して作成された前記ユーザプログラムを出力する出力部とを備え、
    前記作成編集部は、前記ユーザプログラムを構成する命令として、前記セキュリティ防護処理が実行されることで行われる前記セキュリティ監視装置の挙動を変更するための変更命令の選択を受け付ける第1ユーザインターフェイスを提供し、
    前記変更命令は、第1変更命令と第2変更命令とを含み、
    第1変更命令は、前記制御装置の動作状態を示す入力信号に対して、前記セキュリティ防護処理が実行されることで行われる前記セキュリティ監視装置の挙動を示す出力信号の値を決定するための命令であり、
    前記第2変更命令は、前記セキュリティ監視装置の挙動を示す命令であり、
    前記第1ユーザインターフェイスは、前記第1変更命令および前記第2変更命令の選択を受け付け、
    前記サポート装置は、前記第1ユーザインターフェイスが前記第2変更命令の選択を受け付けた場合、ユーザが任意の命令内容を設定できる第2ユーザインターフェイスをさらに提供する、サポート装置。
  2. 前記作成編集部は、
    前記第1ユーザインターフェイスとして、前記第1変更命令の選択を受け付ける第1選択領域と、前記第2変更命令の選択を受け付ける第2選択領域とを設定画面に表示し、
    前記第2変更命令の選択を受け付けた場合、前記第2ユーザインターフェイスとして、ラダープログラムを用いてユーザが任意の命令内容を設定できる画面を表示する、請求項1に記載のサポート装置。
  3. 前記セキュリティ監視装置の挙動は、前記コントローラシステムを外部ネットワークに接続するための接続条件の設定を含み、
    前記作成編集部は、前記接続条件の内容を設定するためのユーザインターフェイスを提供する、請求項1または請求項2に記載のサポート装置。
  4. コントローラシステムが備える制御対象を制御するための制御演算を実行する制御装置で実行されるユーザプログラムの開発を支援するための支援プログラムであって、
    前記コントローラシステムは、前記コントローラシステムに生じ得るセキュリティ事象の検知および当該セキュリティ事象に応じた処理の実行を含むセキュリティ防護処理を実行するセキュリティ監視装置を有し、
    前記支援プログラムは、コンピュータに、
    前記制御装置で実行される制御演算の内容を規定するユーザプログラムを作成または編集するためのユーザインターフェイスを提供するステップと、
    前記ユーザインターフェイスを介して作成された前記ユーザプログラムを出力するステップとを実行させ、
    前記ユーザインターフェイスを提供するステップにおいて、前記ユーザプログラムを構成する命令として、前記セキュリティ防護処理が実行されることで行われる前記セキュリティ監視装置の挙動を変更するための変更命令の選択を受け付ける第1ユーザインターフェイスが提供され、
    前記変更命令は、第1変更命令と第2変更命令とを含み、
    第1変更命令は、前記制御装置の動作状態を示す入力信号に対して、前記セキュリティ防護処理が実行されることで行われる前記セキュリティ監視装置の挙動を示す出力信号の値を決定するための命令であり、
    前記第2変更命令は、前記セキュリティ監視装置の挙動を示す命令であり、
    前記第1ユーザインターフェイスは、前記第1変更命令および前記第2変更命令の選択を受け付け、
    前記支援プログラムは、前記第1ユーザインターフェイスが前記第2変更命令の選択を受け付けた場合、ユーザが任意の命令内容を設定できる第2ユーザインターフェイスをさらに提供する、支援プログラム。
JP2018246641A 2018-12-28 2018-12-28 サポート装置および支援プログラム Active JP7103214B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2018246641A JP7103214B2 (ja) 2018-12-28 2018-12-28 サポート装置および支援プログラム
PCT/JP2019/046604 WO2020137343A1 (ja) 2018-12-28 2019-11-28 サポート装置、支援プログラムおよび制御装置
US17/294,409 US20220011735A1 (en) 2018-12-28 2019-11-28 Support apparatus, non-transitory computer readable medium, and control apparatus
EP19901761.7A EP3904980A4 (en) 2018-12-28 2019-11-28 SUPPORT DEVICE, SUPPORT PROGRAM AND CONTROL DEVICE
CN201980057873.7A CN112689805A (zh) 2018-12-28 2019-11-28 支持装置、支持程序以及控制装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018246641A JP7103214B2 (ja) 2018-12-28 2018-12-28 サポート装置および支援プログラム

Publications (2)

Publication Number Publication Date
JP2020107158A JP2020107158A (ja) 2020-07-09
JP7103214B2 true JP7103214B2 (ja) 2022-07-20

Family

ID=71127088

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018246641A Active JP7103214B2 (ja) 2018-12-28 2018-12-28 サポート装置および支援プログラム

Country Status (5)

Country Link
US (1) US20220011735A1 (ja)
EP (1) EP3904980A4 (ja)
JP (1) JP7103214B2 (ja)
CN (1) CN112689805A (ja)
WO (1) WO2020137343A1 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006011511A (ja) 2004-06-22 2006-01-12 Yokogawa Electric Corp 複数装置のデータ相互アクセス方法および複数装置を有するシステム
JP2011100443A (ja) 2009-09-24 2011-05-19 Fisher-Rosemount Systems Inc プロセス制御システムのための一体型統合脅威管理
WO2015001594A1 (ja) 2013-07-01 2015-01-08 株式会社日立製作所 制御システム、制御方法及びコントローラ
JP2017167622A (ja) 2016-03-14 2017-09-21 オムロン株式会社 プログラム開発支援装置、プログラム開発支援プログラムおよびプログラム開発支援方法

Family Cites Families (14)

* 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 液体スプレー装置
US5461372A (en) * 1993-01-19 1995-10-24 Honeywell Inc. System and method for modifying security in a security system
JP4807562B2 (ja) * 2005-11-25 2011-11-02 横河電機株式会社 プラント制御システム
JP4877423B1 (ja) * 2011-03-15 2012-02-15 オムロン株式会社 Plcのcpuユニット、plc用システムプログラムおよびplc用システムプログラムを格納した記録媒体
JP6149393B2 (ja) * 2012-12-14 2017-06-21 オムロン株式会社 通信カプラ、情報処理装置、制御方法およびプログラム
US10075470B2 (en) * 2013-04-19 2018-09-11 Nicira, Inc. Framework for coordination between endpoint security and network security services
JP6337810B2 (ja) * 2014-03-14 2018-06-06 オムロン株式会社 情報処理装置、情報処理方法、およびプログラム
US10108168B2 (en) * 2014-06-01 2018-10-23 Si-Ga Data Security (2014) Ltd. Industrial control system smart hardware monitoring
CN107430391B (zh) 2015-04-01 2019-01-11 三菱电机株式会社 管理系统
US10097585B2 (en) * 2016-01-22 2018-10-09 Rockwell Automation Technologies, Inc. Model-based security policy configuration and enforcement in an industrial automation system
WO2018051441A1 (ja) * 2016-09-14 2018-03-22 三菱電機株式会社 ラダープログラム編集支援装置およびラダープログラムの編集方法
JP6724847B2 (ja) * 2017-03-31 2020-07-15 オムロン株式会社 制御装置、制御プログラム、制御システム、および制御方法
US10476912B2 (en) * 2017-09-18 2019-11-12 Veracity Security Intelligence, Inc. Creating, visualizing, and simulating a threat based whitelisting security policy and security zones for networks
EP3457655B1 (en) * 2017-09-19 2023-09-06 CODESYS Holding GmbH A security unit and method for an industrial control system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006011511A (ja) 2004-06-22 2006-01-12 Yokogawa Electric Corp 複数装置のデータ相互アクセス方法および複数装置を有するシステム
JP2011100443A (ja) 2009-09-24 2011-05-19 Fisher-Rosemount Systems Inc プロセス制御システムのための一体型統合脅威管理
WO2015001594A1 (ja) 2013-07-01 2015-01-08 株式会社日立製作所 制御システム、制御方法及びコントローラ
JP2017167622A (ja) 2016-03-14 2017-09-21 オムロン株式会社 プログラム開発支援装置、プログラム開発支援プログラムおよびプログラム開発支援方法

Also Published As

Publication number Publication date
EP3904980A1 (en) 2021-11-03
US20220011735A1 (en) 2022-01-13
EP3904980A4 (en) 2022-08-31
JP2020107158A (ja) 2020-07-09
CN112689805A (zh) 2021-04-20
WO2020137343A1 (ja) 2020-07-02

Similar Documents

Publication Publication Date Title
US9912737B2 (en) Method and system for modular interoperable distributed control
JP6442843B2 (ja) 制御装置
JP4578839B2 (ja) プロセス安全システムで使用するための原因結果マトリックスの機能ブロック実装
EP2833225B1 (en) Systems and methods for batch device commissioning and decommissioning
JP5274667B2 (ja) 安全ステップの判定方法および安全マネージャ
JP6299064B2 (ja) 制御装置、制御方法、およびプログラム
Berger Automating with SIMATIC S7-400 inside TIA portal: configuring, programming and testing with STEP 7 Professional
CN108572611A (zh) 信息处理装置、信息处理方法及计算机可读取记录媒体
EP2725438B1 (en) System and method for vendor release independent reusable customized function block libraries
CN113557478A (zh) 控制器系统、支持装置及评价方法
US20190306250A1 (en) Support apparatus, non-transitory computer-readable recording medium and setting method
JP7103214B2 (ja) サポート装置および支援プログラム
JP7180500B2 (ja) 制御システム、および設定方法
JP7143762B2 (ja) コントローラシステム、制御装置および制御プログラム
JP7255369B2 (ja) 制御システム
US20210349446A1 (en) Control device, support device, and communication system
WO2020240969A1 (ja) サポート装置および設定プログラム
Hajarnavis et al. A Framework for Implementing Process Applications using CIP Technologies
JP2018200731A (ja) サポート装置およびサポートプログラム
US11669391B2 (en) Data processing procedure for safety instrumentation and control (IandC) systems, IandC system platform, and design procedure for IandC system computing facilities
Klang et al. Modelling and simulation of a gas turbine
US20210356925A1 (en) Control system, control method, and drive device

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

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220126

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220620

R150 Certificate of patent or registration of utility model

Ref document number: 7103214

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150