JP2019128668A - 制御装置、制御方法、および制御プログラム - Google Patents

制御装置、制御方法、および制御プログラム Download PDF

Info

Publication number
JP2019128668A
JP2019128668A JP2018008339A JP2018008339A JP2019128668A JP 2019128668 A JP2019128668 A JP 2019128668A JP 2018008339 A JP2018008339 A JP 2018008339A JP 2018008339 A JP2018008339 A JP 2018008339A JP 2019128668 A JP2019128668 A JP 2019128668A
Authority
JP
Japan
Prior art keywords
filtering
control
communication data
input
filtering condition
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
JP2018008339A
Other languages
English (en)
Other versions
JP7078889B2 (ja
Inventor
陽一 黒川
Yoichi Kurokawa
陽一 黒川
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 JP2018008339A priority Critical patent/JP7078889B2/ja
Priority to CN201880055502.0A priority patent/CN111095137B/zh
Priority to PCT/JP2018/046988 priority patent/WO2019142587A1/ja
Priority to EP18901114.1A priority patent/EP3745221A4/en
Priority to US16/643,834 priority patent/US11226611B2/en
Publication of JP2019128668A publication Critical patent/JP2019128668A/ja
Application granted granted Critical
Publication of JP7078889B2 publication Critical patent/JP7078889B2/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
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • G05B19/054Input/output
    • GPHYSICS
    • 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/552Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/82Protecting input, output or interconnection devices
    • G06F21/85Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/02Capturing of monitoring data
    • H04L43/028Capturing of monitoring data by filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • 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/30Nc systems
    • G05B2219/31From computer integrated manufacturing till monitoring
    • G05B2219/31347Communication adaptors between network and each machine
    • 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]

Abstract

【課題】駆動機器を停止せずに通信データのフィルタリング条件を変更することが可能な技術を提供する。【解決手段】制御装置100は、情報処理装置200が属する第1ネットワークN1に接続する物理的な第1通信ポート100P1と、駆動機器300が属する第2ネットワークN2に接続する物理的な第2通信ポート100P2と、駆動機器を制御するために作成されたユーザプログラム110を格納する記憶装置108とを備える。ユーザプログラムは、駆動機器および情報処理装置の一方の機器から受信した通信データを他方の機器に送信するか否かを決定するフィルタリング条件を、当該ユーザプログラムの実行中において入力されるフィルタリング条件の設定に応じて切り替えるフィルタリング機能を含む。【選択図】図1

Description

本開示は、制御装置による通信データのフィルタリング技術に関する。
様々な生産現場において、PLC(Programmable Logic Controller)やロボットコントローラなどの産業用の制御装置(以下、「コントローラ」ともいう。)が導入されている。コントローラは、種々の産業用の駆動機器を制御することで、生産工程を自動化することができる。
近年、異なる複数のネットワークに接続され得るコントローラが普及している。当該コントローラは、ゲートウェイとしての機能し、上位のネットワークと下位のネットワークとの間の通信データのやり取りを管理する。
このようなコントローラに関し、特開2017−199154号公報(特許文献1)は、「多種多様な処理機械を、異なるネットワーク同士を相互に接続すると共に、異なるネットワークに接続される処理機械の相互制御を行うための設定を容易にできる」設備システムを開示している。
特開2017−199154号公報
コントローラは、セキュリティのために、設定されているフィルタリング条件を満たした通信データのみを通過させる。通過させるべき通信データは、状況に応じて変化する。そのため、フィルタリング条件を状況に応じて適宜変更することが望まれている。
通信データのフィルタリング条件を変更する方法の一例として、FA(Factory Automation)システムの各種駆動機器を停止した上でネットワーク設定を変更する方法がある。しかしながら、FAシステムの駆動機器が停止すると多大な機会損失が生じるため、フィルタリング条件の変更時にFAシステムを極力停止しないことが望まれている。
本開示は上述のような問題点を解決するためになされたものであって、ある局面における目的は、駆動機器を停止せずに通信データのフィルタリング条件を変更することが可能な技術を提供することである。
本開示の一例では、駆動機器を制御するための制御装置は、情報処理装置が属する第1ネットワークに接続するための物理的な第1通信ポートと、上記駆動機器が属する第2ネットワークに接続するための物理的な第2通信ポートと、上記駆動機器を制御するために作成されたユーザプログラムを格納するための記憶装置とを備える。上記ユーザプログラムは、上記駆動機器および上記情報処理装置の一方の機器から受信した通信データを他方の機器に送信するか否かを決定するためのフィルタリング条件を、当該ユーザプログラムの実行中において入力されるフィルタリング条件の設定に応じて切り替えるためのフィルタリング機能を含む。
この開示によれば、フィルタリング機能は、ユーザプログラムの実行中においてフィルタリング条件の設定入力を受け付けるように規定されているので、制御装置は、駆動機器を停止せずに通信データのフィルタリング条件を変更することができる。
本開示の一例では、上記入力されるフィルタリング条件の設定は、上記フィルタリング条件の変更処理を実行するか否かを指定するための設定を含む。
この開示によれば、制御装置は、駆動機器の駆動中においてフィルタリング条件の実行タイミングを任意に調整することができる。
本開示の一例では、上記入力されるフィルタリング条件の設定は、上記フィルタリング条件が満たされた場合における上記フィルタリング機能の動作態様を指定するための設定を含む。上記動作態様は、上記一方の機器から受信した通信データのみを上記他方の機器に送信する態様と、上記一方の機器から受信した通信データを上記他方の機器に送信しない態様とを含む。
この開示によれば、制御装置は、駆動機器の駆動中であってもフィルタリング機能の動作態様を切り替えることができる。
本開示の一例では、上記入力されるフィルタリング条件の設定は、上記駆動機器から受信した通信データの送信をフィルタリング対象とするか、上記情報処理装置から受信した通信データをフィルタリング対象とするかを指定するための設定を含む。
この開示によれば、制御装置は、駆動機器の駆動中であってもフィルタリング対象とする通信データの通信方向を適宜切り替えることができる。
本開示の一例では、上記入力されるフィルタリング条件の設定は、フィルタリング対象とする通信データの通信プロトコルを指定するための設定を含む。
この開示によれば、制御装置は、駆動機器の駆動中であってもフィルタリング対象の通信プロトコルを切り替えることができる。
本開示の一例では、上記入力されるフィルタリング条件の設定は、上記一方の機器から受信した通信データの送信先を指定するための設定と、当該通信データの送信元を指定するための設定との少なくとも一方を含む。
この開示によれば、制御装置は、駆動機器の駆動中であってもフィルタリング対象とする送信元機器または送信先機器を適宜切り替えることができる。
本開示の他の例では、駆動機器を制御するための制御装置の制御方法は、第1ネットワークに属する情報処理装置と通信を確立するステップと、第2ネットワークに属する上記駆動機器と通信を確立するステップと、上記駆動機器を制御するために作成されたユーザプログラムを上記制御装置が実行するステップと、上記駆動機器および上記情報処理装置の一方の機器から受信した通信データを他方の機器に送信するか否かを決定するためのフィルタリング条件を、当該ユーザプログラムの実行中において入力されるフィルタリング条件の設定に応じて上記ユーザプログラムが切り替えるステップとを備える。
この開示によれば、フィルタリング機能は、ユーザプログラムの実行中においてフィルタリング条件の設定入力を受け付けるように規定されているので、制御装置は、駆動機器を停止せずに通信データのフィルタリング条件を変更することができる。
本開示の他の例では、駆動機器を制御するための制御装置の制御プログラムは、上記制御装置に、第1ネットワークに属する情報処理装置と通信を確立するステップと、第2ネットワークに属する上記駆動機器と通信を確立するステップと、上記駆動機器を制御するために作成されたユーザプログラムを実行するステップと、上記駆動機器および上記情報処理装置の一方の機器から受信した通信データを他方の機器に送信するか否かを決定するためのフィルタリング条件を、当該ユーザプログラムの実行中において入力されるフィルタリング条件の設定に応じて切り替えるステップとを実行させる。
この開示によれば、フィルタリング機能は、ユーザプログラムの実行中においてフィルタリング条件の設定入力を受け付けるように規定されているので、制御装置は、駆動機器を停止せずに通信データのフィルタリング条件を変更することができる。
ある局面において、駆動機器を停止せずに通信データのフィルタリング条件を変更することができる。
実施の形態に従うFAシステムの構成例を示す図である。 実施の形態に従うFAシステム1の概略構成を示す模式図である。 ファンクションブロックで規定されているフィルタリング機能を示す図である。 図3で説明したファンクションブロックを組み込んだユーザプログラムの例を示す図である。 TCP/IPプロトコルに従う通信パケットのデータ構造を示す図である。 実施の形態に従うコントローラのハードウェア構成例を示すブロック図である。 実施の形態に従うコントローラが実行する処理の一部を表わすフローチャートである。
以下、図面を参照しつつ、本発明に従う各実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがって、これらについての詳細な説明は繰り返さない。
<A.適用例>
図1を参照して、本発明の適用例について説明する。図1は、FAシステム1の構成例を示す図である。
FAシステム1は、設備および装置などの制御対象を制御し、生産工程を自動化するためのシステムである。FAシステム1は、1または複数のコントローラ100と、1または複数の情報処理装置200と、1または複数の駆動機器300とで構成されている。コントローラ100は、物理的な通信ポート100P1,100P2と、記憶装置108とを含む。
コントローラ100は、複数のネットワークに接続され得る。図1の例では、通信ポート100P1(第1通信ポート)は、ネットワークN1(第1ネットワーク)に接続されている。通信ポート100P2(第2通信ポート)は、ネットワークN2(第2ネットワーク)に接続されている。
ネットワークN1には、たとえば、EtherNET(登録商標)が採用される。但し、ネットワークN1は、EtherNETに限定されず、任意の通信手段が採用され得る。図1の例では、ネットワークN1に情報処理装置200が接続されている。情報処理装置200は、たとえば、PC(Personal Computer)、タブレット端末、スマートフォン、表示器(たとえば、HMI(Human Machine Interface))などを含む。
ネットワークN2は、ネットワークN1よりも下位のネットワークである。ネットワークN2には、EtherNet/IP(登録商標)などが採用される。図1の例では、ネットワークN2に駆動機器300が接続されている。駆動機器300は、生産工程を自動化するための種々の産業用機器を含む。一例として、駆動機器300は、アームロボットや、アームロボットを制御するためのロボットコントローラや、生産工程を搬送されるワークを撮影するための画像センサや、生産工程で利用されるその他の機器などを含む。
記憶装置108には、ユーザプログラム110が格納されている。ユーザプログラム110は、駆動機器300に応じて設計者によって実装された制御プログラムである。ユーザプログラム110の開発ツールは、たとえば、PCとしての情報処理装置200にインストールされている。設計者は、予め規定されている複数種類の命令を開発ツール上で組み合わせることで、駆動機器300の構成に合わせたユーザプログラム110を設計することができる。開発ツール上で組み合わせることが可能な命令は、駆動機器300に対する制御命令と、通信データのフィルタリング命令とを含む。開発ツール上でコンパイルされたユーザプログラム110は、コントローラ100にインストールされる。図1の例では、ユーザプログラム110は、駆動機器300に対する制御機能150と、通信データのフィルタリング機能152を含む。
図1の例では、ユーザプログラム110は、制御機能150と、フィルタリング機能152とを含む。典型的には、制御機能150およびフィルタリング機能152は、プログラムである。
制御機能150は、規定されている制御内容に従って駆動機器300に制御命令を出力する。フィルタリング機能152は、情報処理装置200および駆動機器300の一方の機器から受信した通信データを他方の機器に送信するか否かを決定するためのフィルタリング条件を、ユーザプログラム110の実行中において入力されるフィルタリング条件の設定に応じて切り替える。以下では、情報処理装置200および駆動機器300の内の、通信データの送信元となる機器を「送信元機器」ともいう。また、情報処理装置200および駆動機器300の内の、通信データの宛先となる機器を「送信先機器」ともいう。
フィルタリング機能152は、フィルタリング条件の設定入力を受け付けるように規定されているので、コントローラ100は、駆動機器300を停止せずに通信データのフィルタリング条件を変更することができる。その結果、コントローラ100は、フィルタリング対象の通信データをFAシステム1の状態に応じて適宜変えることができる。
なお、フィルタリング機能152によるフィルタリング対象の通信データの種類は、異なるネットワークN1,N2間を伝送されるデータであれば特に限定されない。たとえば、フィルタリング対象の通信データは、TCP/IPなどの通信プロトコルに従った通信パケットであってもよいし、フィールドネットワークを伝送されるフレームであってもよい。
また、フィルタリング機能152に設定可能なフィルタリング条件は、1つであってもよいし、複数であってもよい。
<B.FAシステム1の装置構成>
次に、本実施の形態に従うFAシステム1の全体構成について説明する。図2は、本実施の形態に従うFAシステム1の概略構成を示す模式図である。
上述のように、FAシステム1は、1または複数のコントローラ100と、1または複数の情報処理装置200と、1または複数の駆動機器300とを含む。
コントローラ100は、複数のネットワークに接続され得る。図2の例では、コントローラ100は、上位のネットワークN1と、下位のネットワークN2に接続されている。
上位のネットワークN1には、情報処理装置200が接続されている。情報処理装置200は、ネットワークN1に接続され得る通信機器である。図2に示されるように、情報処理装置200は、1または複数のサポート装置200Aと、1または複数のサーバ装置200Bと、1または複数の表示器200Cとの少なくとも1つで構成される。
サポート装置200Aは、ユーザプログラム110を設計するための開発環境を設計者に提供する。サポート装置200Aは、たとえば、ノート型PC、デスクトップ型PC、タブレット端末、または、スマートフォンなどである。設計者は、サポート装置200A上でユーザプログラム110を設計し、当該ユーザプログラム110をネットワークN1を介してコントローラ100にダウンロードすることができる。
サーバ装置200Bは、データベースシステム、製造実行システム(MES:Manufacturing Execution System)などが想定される。製造実行システムは、制御対象の製造装置や設備からの情報を取得して、生産全体を監視および管理するものであり、オーダ情報、品質情報、出荷情報などを扱うこともできる。これらに限らず、情報系サービス(制御対象から各種情報を取得して、マクロ的またはミクロ的な分析などを行う処理)を提供する装置をネットワークN1に接続するようにしてもよい。サーバ装置200Bがコントローラ100から受信する各種情報は、コントローラ100のフィルタリング機能152(図1参照)によるフィルタリング対象になり得る。
表示器200Cは、ユーザからの操作を受けて、コントローラ100に対してユーザ操作に応じたコマンドなどを出力する。表示器200Cから出力されるコマンドは、コントローラ100のフィルタリング機能152(図1参照)によるフィルタリング対象になり得る。表示器200Cは、コントローラ100での演算結果などをグラフィカルに表示する。
下位のネットワークN2には、駆動機器300が接続されている。駆動機器300は、直接的または間接的にワークWに対して所定の作業を行うための機器の集合である。図2の例では、駆動機器300は、リモートIO装置310,320と、画像センサ315と、アームロボット325とで構成されている。
リモートIO装置310は、複数の物理的な通信ポートを有する。それぞれの通信ポートに異なるネットワークが接続され得る。図2の例では、リモートIO装置310は、2つの通信ポート310P1,310P2を有する。ネットワークN2は、ハブ305で分離されており、一方が通信ポート310P1に接続される。通信ポート310P2には、ネットワークN3が接続されている。ネットワークN3には、データの到達時間が保証される、定周期通信を行うフィールドネットワークを採用することが好ましい。このような定周期通信を行うフィールドネットワークとしては、EtherCAT(登録商標)、CompoNet(登録商標)などが知られている。
リモートIO装置310は、コントローラ100の制御指令に従って画像センサ315を制御する。画像センサ315は、リモートIO装置310から受けた制御指示に従ってコンベア上を搬送されるワークWを順次撮影し、得られた画像に対して予め定められた画像処理を実行する。これにより、画像センサ315は、コンベア上を搬送されるワークWの品質検査などを順次行う。画像センサ315の検査結果は、リモートIO装置310を介してコントローラ100に順次送られる。
リモートIO装置320は、複数の物理的な通信ポートを有する。それぞれの通信ポートに異なるネットワークが接続され得る。図2の例では、リモートIO装置320は、2つの通信ポート320P1,320P2を有する。ネットワークN2は、ハブ305で分離されており、一方が通信ポート310P2に接続される。通信ポート320P2には、ネットワークN3が接続されている。ネットワークN3には、データの到達時間が保証される、定周期通信を行うフィールドネットワークを採用することが好ましい。このような定周期通信を行うフィールドネットワークとしては、EtherCAT、CompoNetなどが知られている。
リモートIO装置320は、コントローラ100の制御指令に従ってアームロボット325を制御する。一例として、コントローラ100は、画像センサ315による検査工程(作業工程A)に従って、アームロボット325に所定の作業(作業工程B)を行わせるための制御指令をリモートIO装置320に出力する。リモートIO装置320は、当該制御指令に従ってアームロボット325を制御する。一例として、リモートIO装置320は、検査品質が不良と判断されたワークWをコンベアから除去するように制御指令を与える。アームロボット325の状態(たとえば、各関節の位置や角度など)は、リモートIO装置320からコントローラ100に順次フィードバックされる。
<C.ファンクションブロック>
上述のように、ユーザプログラム110は、情報処理装置200および駆動機器300の一方の機器(すなわち、送信元機器)から受信した通信データを他方の機器(すなわち、送信先機器)に送信するか否かを決定するためのフィルタリング条件を、入力されるフィルタリング条件の設定に応じて切り替えるためのフィルタリング機能152を含む。
フィルタリング機能152は、コントローラ100を通過する通信データをフィルタリングするためのプログラム(制御命令)であり、種々のプログラムで規定され得る。一例として、フィルタリング機能152は、ファンクションブロックダイアグラム(FBD:Function Block Diagram)で規定される。
以下では、フィルタリング機能152がファンクションブロックで規定されている前提で説明を行うが、フィルタリング機能152は、他のプログラム言語で規定されてもよい。一例として、フィルタリング機能152は、ラダーダイアグラム(LD:Ladder Diagram)で規定されてもよいし、命令リスト(IL:Instruction List)、構造化テキスト(ST:Structured Text)、および、シーケンシャルファンクションチャート(SFC:Sequential Function Chart)のいずれか、あるいは、これらの組み合わせで規定されてもよい。さらにあるいは、JavaScript(登録商標)やC言語のような汎用的なプログラミング言語で規定されていてもよい。
図3は、ファンクションブロックFBで規定されているフィルタリング機能152を示す図である。図3に示されるように、ファンクションブロックFBは、フィルタリング条件の設定を受け付ける入力部155A〜155Fと、フィルタリング条件の設定処理を行った結果を出力するための出力部157A〜157Dとを含む。入力部155A〜155Fは、フィルタリング機能152によるフィルタリング条件の設定の入力を受け付ける。すなわち、フィルタリング機能152は、入力部155A〜155Fに入力される値に応じてフィルタリング条件を切り替える。
「Excute」として示される入力部155Aは、フィルタリング条件の変更処理を実行するか否かを指定するための設定を受け付ける。一例として、入力部155Aは、「True」または「False」の入力を受け付ける。入力部155Aに「False」が入力されている限り、フィルタリング機能152は、フィルタリング条件を変更しない。一方で、入力部155Aに「True」が入力された場合には、フィルタリグ条件の変更処理を実行する。この場合、他の入力部155B〜155Fに入力されたフィルタリング条件を新たなフィルタリング条件として設定する。これにより、コントローラ100は、駆動機器300の駆動中においてフィルタリング条件の実行タイミングを任意に調整することができる。
「Action」として示される入力部155Bは、フィルタリング条件が満たされた場合におけるフィルタリング機能152の動作態様を指定するための設定を受け付ける。一例として、入力部155Bは、「pass」または「block」の入力を受け付ける。入力部155Bに「pass」が入力された場合、フィルタリング機能152は、フィルタリング条件を満たした通信データのみを通過させるようにフィルタリング条件を設定する。すなわち、この場合には、フィルタリング条件を満たした通信データのみが送信先機器に送信され、それ以外の通信データは送信先機器に送信されない。一方で、入力部155Bに「block」が入力された場合、フィルタリング条件を満たした通信データを遮断するようにフィルタリング条件を設定する。すなわち、この場合には、フィルタリング条件を満たした通信データのみが遮断され、それ以外の通信データは送信先機器に送信される。これにより、コントローラ100は、駆動機器300の駆動中であっても入力部155Bに入力する値に応じてフィルタリング機能152の動作態様を適宜切り替えることができる。
「Direction」として示される入力部155Cは、フィルタリング対象の通信データの通信方向を指定するための入力を受け付ける。すなわち、入力部155Cは、駆動機器300から受信した通信データの送信をフィルタリング対象とするか、情報処理装置200から受信した通信データをフィルタリング対象とするかを指定するための入力を受け付ける。一例として、入力部155Cは、「in」または「out」の入力を受け付ける。入力部155Cに「in」が入力された場合、フィルタリング機能152は、上位のネットワークN1に属する情報処理装置200から下位のネットワークN2に属する駆動機器300に送信された通信データをフィルタリング対象とするようにフィルタリング条件を変更する。入力部155Cに「out」が入力された場合、フィルタリング機能152は、下位のネットワークN2に属する駆動機器300から上位のネットワークN1に属する情報処理装置200に送信された通信データをフィルタリング対象とするようにフィルタリング条件を変更する。これにより、コントローラ100は、駆動機器300の駆動中であっても入力部155Cに入力する値に応じてフィルタリング対象とする通信データの通信方向を適宜切り替えることができる。
「Protocol」として示される入力部155Dは、フィルタリング対象とする通信データの通信プロトコルを指定するための入力を受け付ける。一例として、入力部155Dは、通信プロトコルの識別情報の入力を受け付ける。当該識別情報は、通信プロトコル名で指定されてよいし、通信プロトコルのID(Identification)で指定されてもよい。一例として、入力部155Dは、「TCP」または「FTP」の入力を受け付ける。入力部155Dに「TCP」が入力された場合、フィルタリング機能152は、TCPプロトコルに従った通信データをフィルタリング対象とするようにフィルタリング条件を変更する。入力部155Dに「FTP」が入力された場合、フィルタリング機能152は、FTPプロトコルに従った通信データをフィルタリング対象とするようにフィルタリング条件を変更する。これにより、コントローラ100は、駆動機器300の駆動中であっても入力部155Dに入力する値に応じてフィルタリング対象の通信プロトコルを適宜切り替えることができる。
なお、フィルタリング対象として入力部155Dに指定される通信プロトコルは、上位のネットワークN1に対して指定されてもよいし、下位のネットワークN2に対して指定されてもよい。
「IP Address」として示される入力部155Eは、送信先機器を指定するための入力を受け付ける。一例として、送信先機器は、IPアドレスで指定される。たとえば、「10.0.0.1」が入力部155Eに入力された場合、フィルタリング機能152は、IPアドレス「10.0.0.1」の送信先機器に送られる通信データをフィルタリング対象とするようにフィルタリング条件を変更する。これにより、コントローラ100は、駆動機器300の駆動中であっても入力部155Eに入力する値に応じてフィルタリング対象とする送信元機器を適宜切り替えることができる。
なお、上述では、通信データの送信先機器を入力部155Eで指定できる例について説明を行ったが、ファンクションブロックFBは、通信データの送信元機器を入力部155Eまたは他の入力部で指定できるように規定されてもよい。
「Port」として示される入力部155Fは、通信データの送信先機器のポート番号を指定するための入力を受け付ける。一例として、「80」が入力部155Fに入力された場合、フィルタリング機能152は、送信先機器のポート番号「80」に送られる通信データをフィルタリング対象とするようにフィルタリング条件を変更する。これにより、コントローラ100は、駆動機器300の駆動中であっても入力部155Fに入力する値に応じてフィルタリング対象とするポート番号を適宜切り替えることができる。
なお、上述では、通信データの送信先機器の通信ポートを入力部155Fで指定できる例について説明を行ったが、ファンクションブロックFBは、通信データの送信元機器のポート番号を入力部155Fまたは他の入力部で指定できるように規定されてもよい。
フィルタリング条件が正常に設定された場合には、正常終了を示す信号が、「Done」として示される出力部157Aから出力される。フィルタリング条件の変更中には、変更処理中を示す信号が、「Busy」として示される出力部157Bから出力される。フィルタリング条件が適切に設定されなかった場合には、異常終了を示す信号が、「Error」として示される出力部157Cから出力される。この場合には、さらに、エラーの内容を識別するためのエラーIDが、「ErrorID」として示される出力部157Dから出力される。
なお、ファンクションブロックFBには、入力部155A〜155Fおよび出力部157A〜157Dの他にも様々な入力部および出力部が設けられもよい。一例として、複数の通信インターフェイスが存在する場合には、通信インターフェイスを指定するための入力部がファンクションブロックFBに設けられてもよい。また、上述では、ファンクションブロックFBが1つのフィルタリング条件のみを受け付ける例について説明を行ったが、ファンクションブロックFBは、複数のフィルタリング条件を受け付けるように規定されてもよい。
<D.プログラム例>
図4を参照して、図3で説明したファンクションブロックFBの使用例について説明する。図4は、図3で説明したファンクションブロックFBを組み込んだユーザプログラムの例を示す図である。
図4の例では、ユーザプログラム110は、ラダープログラムで規定されている。当該ユーザプログラム110は、ワークに対する作業工程に応じて通信データのフィルタリング条件を変えるように規定されている。なお、図4に示されるユーザプログラム110は、コントローラ100における全処理を示しているわけではなく、たとえば、各作業工程の切り替え時における一部のロジックが省略されている。
ユーザプログラム110は、入力要素IN0〜IN7と、ファンクションブロックFB0〜FB2と、出力要素OUT0〜OUT2とで規定されている。ファンクションブロックFB1,FB2は、図3で説明した、フィルタリング機能152を有するファンクションブロックFBに相当する。
入力要素IN0〜IN7の値は、割付けられている変数に応じて変化する。より具体的には、入力要素IN0には、変数「ChangeTrigger」が割り当てられている。変数「ChangeTrigger」は、BOOL型であり、初期値は、「False」(=OFF)である。変数「ChangeTrigger」の値は、コントローラ100が起動されたことに基づいて、「True」(=ON)に変化する。その他の場合、変数「ChangeTrigger」の値は、「False」(=OFF)となる。
入力要素IN1には、変数「Busy0」が割り当てられている。変数「Busy0」は、BOOL型である。また、変数「Busy0」は、ファンクションブロックFB1の出力「Busy」に関連付けられている。そのため、入力要素IN1の値は、ファンクションブロックFB1の出力「Busy」の値に応じて変化する。上述したように、ファンクションブロックFB1の出力「Busy」からは、フィルタリング条件の変更中において変更処理中を示す信号「True」(=ON)が出力される。入力要素IN1における変数「Busy0」の値は、ファンクションブロックFB1の出力「Busy」の値と反対になるので、ファンクションブロックFB1の出力「Busy」が「True」(=ON)となる場合、入力要素IN1の値は、「False」(=OFF)となる。一方で、出力「Busy」が「False」(=OFF)となる場合、入力要素IN1の値は、「True」(=ON)となる。
入力要素IN2には、変数「Done0」が割り当てられている。変数「Done0」は、BOOL型であり、初期値は、「False」(=OFF)である。また、変数「Done0」は、ファンクションブロックFB1の出力「Done」に関連付けられている。上述したように、フィルタリング条件が正常に変更された場合には、ファンクションブロックFB1の出力「Done」からは、正常終了を示す信号「True」(=ON)が出力される。ファンクションブロックFB1の出力「Done」が「True」(=ON)となると、入力要素IN2の値は、「True」(=ON)となる。一方で、ファンクションブロックFB1の出力「Done」が「False」(=OFF)となると、入力要素IN2の値は、「False」(=OFF)となる。
入力要素IN3には、変数「Error0」が割り当てられている。変数「Error0」は、BOOL型であり、初期値は、「False」(=OFF)である。また、変数「Error0」は、ファンクションブロックFB1の出力「Error」に関連付けられている。上述したように、フィルタリング条件の変更処理が異常終了した場合には、ファンクションブロックFB1の出力「Error」からは、異常を示す信号「True」(=ON)が出力される。ファンクションブロックFB1の出力「Error」が「True」(=ON)となると、入力要素IN3の値は、「True」(=ON)となる。一方で、ファンクションブロックFB1の出力「Error」が「False」(=OFF)となると、入力要素IN3の値は、「False」(=OFF)となる。
入力要素IN4には、変数「SettingTrigger0」が割り当てられている。変数「SettingTrigger0」は、BOOL型であり、初期値は、「False」(=OFF)である。また、変数「SettingTrigger0」は、ファンクションブロックFB0の出力「Q1」に関連付けられている。ファンクションブロックFB0の出力「Q1」が「True」(=ON)となると、入力要素IN4の値は、「True」(=ON)となる。一方で、ファンクションブロックFB0の出力「Q1」が「False」(=OFF)となると、入力要素IN4の値は、「False」(=OFF)となる。
入力要素IN5には、変数「PA」が割り当てられている。変数「PA」は、BOOL型であり、初期値は、「False」(=OFF)である。図4には示されていないが、作業工程Aを実現するための制御機能150がユーザプログラム110に規定されている。当該制御機能150は、作業工程Aの実行中に変数「PA」の値を「True」(=ON)とし、作業工程Aの実行中でない場合に変数「PA」の値を「False」(=OFF)とするように規定されている。
入力要素IN6には、変数「SettingTrigger1」が割り当てられている。変数「SettingTrigger1」は、BOOL型であり、初期値は、「False」(=OFF)である。図4には示されていないが、作業工程Bのリセット処理がユーザプログラム110に規定されており、変数「SettingTrigger1」の値は、当該リセット処理の結果に応じて変化する。変数「SettingTrigger1」の値は、作業工程Bを実行時に開始されるリセット処理が終了したことに基づいて、「True」(=ON)となる。その結果、入力要素IN6の値も「True」(=ON)となる。一方で、変数「SettingTrigger1」の値が「False」(=OFF)になると、入力要素IN6の値は、「False」(=OFF)となる。
入力要素IN7には、変数「PB」が割り当てられている。変数「PB」は、BOOL型であり、初期値は、「False」(=OFF)である。図4には示されていないが、作業工程Bを実現するための制御機能150がユーザプログラム110に規定されている。当該制御機能150は、作業工程Bの実行中に変数「PB」の値を「True」(=ON)とし、作業工程Bの実行中でない場合に変数「PB」の値を「False」(=OFF)とするように規定されている。
ファンクションブロックFB0は、作業工程Aの開始時に実行されるリセット処理を実行するためのプログラムである。ファンクションブロックFB0は、入力部「Set」,「Reset1」と、出力部「Q1」とを有する。変数「ChangeTrigger」が「True」(=ON)になり、かつ、変数「Busy0」が「False」(=OFF)になった場合に、有効を示す信号「True」(=ON)が入力部「Set」に入力される。それ以外の場合には、有効を示す信号「False」(=OFF)が入力部「Set」に入力される。また、変数「Done0」が「True」(=ON)になった場合、または、変数「Error0」が「True」(=ON)になった場合、有効を示す信号「True」(=ON)が入力部「Reest1」に入力される。それ以外の場合には、有効を示す信号「False」(=OFF)が入力部「Reest1」に入力される。有効を示す信号が入力部「Set」,「Reset1」の両方に入力されたことに基づいて、ファンクションブロックFB0は、作業工程Aに関するリセット処理を開始する。当該リセット処理が正常に終了した場合には、ファンクションブロックFB0の出力部「Q1」の値は、「True」(=ON)となる。
ファンクションブロックFB1は、通信データのフィルタリング条件を変更するためのプログラムである。変数「SettingTrigger0」が「True」(=ON)になり、かつ、変数「PA」が「True」(=ON)になったことに基づいて、有効を示す信号「True」(=ON)がファンクションブロックFB1の入力部「Execute」に入力される。このことに基づいて、ファンクションブロックFB1は、フィルタリング条件の変更処理を実行する。
より具体的には、ファンクションブロックFB1は、入力部「Action」に入力される「pass」、入力部「Direction」に入力される「in」、入力部「Protocol」に入力される「TCP」、入力部「IP Address」に入力される「10.0.0.1」、および、入力部「Port」に入力される「80」に従ったフィルタリング条件を新たなフィルタリング条件として設定する。フィルタリング条件の変更方法の詳細については図3で説明した通りであるので、その説明については繰り返さない。
ファンクションブロックFB2は、通信データのフィルタリング条件を変更するためのプログラムである。変数「SettingTrigger1」が「True」(=ON)になり、かつ、変数「PB」が「True」(=ON)になったことに基づいて、有効を示す信号「True」(=ON)がファンクションブロックFB2の入力部「Execute」に入力される。このことに基づいて、ファンクションブロックFB2は、フィルタリング条件の変更処理を実行する。
より具体的には、ファンクションブロックFB2は、入力部「Action」に入力される「pass」、入力部「Direction」に入力される「in」、入力部「Protocol」に入力される「FTP」、入力部「IP Address」に入力される「10.0.0.2」、および、入力部「Port」に入力される「20」に従ったフィルタリング条件を新たなフィルタリング条件として設定する。フィルタリング条件の変更方法の詳細については図3で説明した通りであるので、その説明については繰り返さない。
出力要素OUT0〜OUT2の値は、それぞれ、関連付けられているファンクションブロックの出力値に応じて変化する。出力要素OUT0には、変数「SettingTrigger0」が割付けられている。また、出力要素OUT0は、ファンクションブロックFB0の出力「Q1」に関連付けられている。その結果、出力要素OUT0の値は、出力「Q1」の値に応じて変化する。
出力要素OUT1には、変数「Done0」が割付けられている。また、出力要素OUT1は、ファンクションブロックFB1の出力「Done」に関連付けられている。その結果、出力要素OUT1の値は、ファンクションブロックFB1の出力「Done」の値に応じて変化する。
出力要素OUT2には、変数「Done1」が割付けられている。また、出力要素OUT2は、ファンクションブロックFB2の出力「Done」に関連付けられている。その結果、出力要素OUT2の値は、ファンクションブロックFB2の出力「Done」の値に応じて変化する。
以上のようにして、作業工程Aにおいては、ファンクションブロックFB1に入力されるフィルタリング条件が設定され、作業工程Bにおいては、ファンクションブロックFB2に入力されるフィルタリング条件が設定される。このように、作業工程に応じてフィルタリング条件が適宜変更される。フィルタリング条件が固定である場合には、作業工程Aで通過させるべき通信データと、作業工程Bで通過させるべき通信データとの両方が常に通過するようにフィルタリング条件が設定される必要があるが、図4に示されるユーザプログラム110においては、その必要がなくなる。
なお、上述では、作業工程に応じてフィルタリング条件が変えられる例について説明を行ったが、ユーザプログラム110は、その他の状況に応じてフィルタリング条件を変更するように規定されてもよい。一例として、ユーザプログラム110は、FAシステム1における駆動機器300の装置構成が変化した場合に、FAシステム1の装置構成に応じたフィルタリング条件を設定するように規定されてもよい。これにより、たとえば、意図しない通信機器がコントローラ100に接続された場合に、コントローラ100は、当該通信機器をブロックすることができる。通信機器の接続/非接続を検知する方法として、ネットワークの状態を監視するファンクションブロックなどを利用する方法が考えられる。当該ファンクションブロックは、ネットワークテーブルの状態を定期的に監視し、当該ネットワークテーブルの変化情報から通信機器の接続/非接続を検知する。
他の例として、ユーザプログラム110は、外部機器からの悪意の攻撃を受けた場合、当該悪意の攻撃を防ぐためのフィルタリング条件を設定するように規定されてもよい。一例として、コントローラ100の通信ドライバが単位時間当たりの受信データ量(たとえば、単位時間当たりの受信パケット数)を監視し、当該受信データ量が所定閾値を超えた場合に、外部機器からの悪意の攻撃を受けていると判断する。外部機器からの悪意の攻撃が検知された場合、フィルタリング機能152は、IPアドレスやポート番号などの情報に基づいて、悪意の攻撃を行っている外部機器をブロックする。あるいは、外部機器からの悪意の攻撃が検知された場合、フィルタリング機能152は、全ての通信パケットの受信をブロックしてもよい。
他の例として、ユーザプログラム110は、コントローラ100の通信の接続状況が変化した場合、接続状況に応じたフィルタリング条件を設定するように規定されてもよい。たとえば、フィルタリング機能152は、送信元機器との通信が確立されてから非接続状態になるまでの間のみ、当該送信元機器からの受信データを通過させ、それ以外の場合は当該送信元機器からの受信データをブロックする。これにより、フィルタリング機能152は、必要な期間のみ通信データを通過させるので、セキュリティを向上させることができる。
また、上述では、ファンクションブロックFB1,FB2の入力部「Action」,「pass」,「Direction」,「Protocol」,「IP Address」,「Port」に固定値が入力される前提で説明を行ったが、これらの入力部には変数などが入力されてもよい。
<E.通信データのデータ構造>
コントローラ100は、送信元機器から受信した通信データがフィルタリング条件を満たすか否かに応じて、受信した通信データをフィルタリング対象とするか否かを判断する。典型的には、フィルタリング対象とするか否かを判断するための情報は、通信データに規定されている。
一例として、通信データは、送信元機器の識別情報(たとえば、IPアドレスやMACアドレス)と、送信先機器のポート番号と、通信データの受信時に利用された通信プロトコルと、送信先機器の識別情報(たとえば、IPアドレスやMACアドレス)と、送信元機器のポート番号と、通信データの送信時に利用された通信プロトコルとの内の少なくとも1つを含む。コントローラ100は、通信データからこれらの情報を抽出し、これらの情報がフィルタリング条件に合致するか否かに応じて、当該通信データをフィルタリング対象とするか否かを判断する。
コントローラ100によるフィルタリング対象の通信データの種類は、異なるネットワーク間を伝送される通信データであれば特に限定されない。以下では、図5を参照して、コントローラ100によるフィルタリング対象の通信データの一例について説明する。
コントローラ100によるフィルタリング対象の通信データは、たとえば、TCP/IPプロトコルに従う通信パケットを含む。図5は、TCP/IPプロトコルに従う通信パケットのデータ構造を示す図である。
送信元機器は、送信対象のデータを複数の通信パケットに分割して、各通信パケットをコントローラ100に順次送信する。図5には、送信元機器によって分割された通信パケットの1つが通信パケットPAとして示されている。
通信パケットPAは、Ethenetプロトコルのヘッダ部分であるEthernetヘッダと、Ethenetプロトコルのデータ部分であるEthernetデータとで構成されている。Ethernetデータは、IPプロトコルのヘッダ部分であるIPヘッダと、IPプロトコルのデータ部分であるIPデータとで構成されている。IPデータは、TCPプロトコルのヘッダ部分であるTCPヘッダと、TCPプロトコルのデータ部分であるTCPデータとで構成されている。
通信パケットPAのIPヘッダは、送信元機器のIPアドレスと、送信先機器のIPアドレスと、通信プロトコルとを含む。通信パケットPAのTCPヘッダは、送信元機器のポート番号と、送信先機器のポート番号とを含む。通信パケットPAのTCPデータは、送信対象のデータの内容を含む。送信対象のデータは、たとえば、駆動機器300の状態を表わす各種変数や、情報処理装置200による各種変数の取得命令などを含む。ここでいう変数とは、ユーザプログラム110に含まれる各種変数のこという。当該変数は、駆動機器300の各種コンポーネントの状態に応じて変化する。
コントローラ100は、通信パケットPAを受信したことに基づいて、当該通信パケットPAからフィルタリング条件と比較するための情報を抽出する。当該情報は、たとえば、送信元機器のIPアドレスと、送信先機器のIPアドレスと、通信プロトコルと、送信元機器のポート番号と、送信先機器のポート番号との少なくとも1つを含む。コントローラ100は、通信パケットPAから抽出した情報がフィルタリング条件を満たすか否かを判断する。通信パケットPAから抽出した情報がフィルタリング条件を満たすと判断した場合、コントローラ100は、通信パケットPAをフィルタリング対象とする。
<F.コントローラ100のハードウェア構成>
図6は、コントローラ100のハードウェア構成例を示すブロック図である。図6を参照して、コントローラ100は、プロセッサ102と、チップセット104と、主メモリ106と、記憶装置108と、USB(Universal Serial Bus)インターフェイス112と、メモリカードインターフェイス114と、ネットワークインターフェイス118と、内部バスコントローラ120と、フィールドネットワークコントローラ130とを含む。
プロセッサ102は、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、GPU(Graphics Processing Unit)などで構成される。プロセッサ102としては、複数のコアを有する構成を採用してもよいし、プロセッサ102を複数配置してもよい。このように、コントローラ100は、1または複数のプロセッサ102、および/または、1または複数のコアを有するプロセッサ102を有している。チップセット104は、プロセッサ102および周辺エレメントを制御することで、コントローラ100全体としての処理を実現する。主メモリ106は、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)などの揮発性記憶装置などで構成される。記憶装置108は、たとえば、フラッシュメモリなどの不揮発性記憶装置などで構成される。
プロセッサ102は、記憶装置108に格納された各種プログラムを読出して、主メモリ106に展開して実行することで、制御対象に応じた制御を実現する。記憶装置108には、コントローラ100の制御プログラム109が格納されている。制御プログラム109は、基本的な処理を実現するためのシステムプログラム111に加えて、制御対象の製造装置や設備に応じて作成されたユーザプログラム110を含む。
USBインターフェイス112は、USB接続を介した外部装置(たとえば、ユーザプログラムの開発などを行うサポート装置)との間のデータ通信を仲介する。
メモリカードインターフェイス114は、メモリカード116が着脱可能に構成されており、メモリカード116に対してデータを書込み、メモリカード116から各種データ(ユーザプログラムやトレースデータなど)を読出すことが可能になっている。
ネットワークインターフェイス118は、ネットワークN1を介したデータ通信の仲介が可能になっている。
内部バスコントローラ120は、コントローラ100に装着される機能ユニットとの間のデータ通信を仲介する。フィールドネットワークコントローラ130は、ネットワークN2を介した他のユニットとの間のデータ通信を仲介する。
図6には、プロセッサ102がプログラムを実行することで必要な処理が実現される構成例を示したが、これらの提供される処理の一部または全部を、専用のハードウェア回路(たとえば、ASICまたはFPGAなど)を用いて実装してもよい。
<G.コントローラ100の制御構造>
図7を参照して、コントローラ100の制御構造について説明する。図7は、コントローラ100が実行する処理の一部を表わすフローチャートである。図7に示される処理は、コントローラ100のプロセッサ102がユーザプログラム110を実行することにより実現される。他の局面において、処理の一部または全部が、回路素子またはその他のハードウェアによって実行されてもよい。
ステップS110において、プロセッサ102は、ユーザプログラム110の実行命令を受け付けたか否かを判断する。プロセッサ102は、ユーザプログラム110の実行命令を受け付けたと判断した場合(ステップS110においてYES)、制御をステップS112に切り替える。そうでない場合には(ステップS110においてNO)、プロセッサ102は、ステップS110の処理を再び実行する。
ステップS112において、プロセッサ102は、情報処理装置200や駆動機器300との通信の確立など初期化処理を実行する。その後、プロセッサ102は、ユーザプログラム110に規定されている制御機能150(図1参照)を実行し、駆動機器300の制御を開始する。
ステップS120において、プロセッサ102は、通信データのフィルタリング条件を変更するための実行命令を受け付けたか否かを判断する。一例として、プロセッサ102は、ユーザプログラム110に規定されているフィルタリング機能152における上述の入力部155A(図3参照)に「True」(=ON)が入力されたことに基づいて、フィルタリング条件を変更するための実行命令を受け付けたと判断する。プロセッサ102は、通信データのフィルタリング条件を変更するための実行命令を受け付けたと判断した場合(ステップS120においてYES)、制御をステップS122に切り替える。そうでない場合には(ステップS120においてNO)、プロセッサ102は、制御をステップS130に切り替える。
ステップS122において、プロセッサ102は、ユーザプログラム110のフィルタリング機能152に入力される設定に応じてフィルタリング条件を変更する。一例として、プロセッサ102は、図3に示される入力部155B〜155Fに入力される値に応じて、フィルタリング条件を設定する。フィルタリング条件の変更方法については図3で説明した通りであるので、その説明については繰り返さない。
ステップS130において、プロセッサ102は、送信先機器から何らかの通信データを受信したか否かを判断する。プロセッサ102は、送信先機器から何らかの通信データを受信したと判断した場合(ステップS130においてYES)、制御をステップS140に切り替える。そうでない場合には(ステップS130においてNO)、プロセッサ102は、制御をステップS150に切り替える。
ステップS140において、プロセッサ102は、ステップS130で受信した通信データが現在設定されているフィルタリング条件を満たすか否かを判断する。一例として、プロセッサ102は、送信元機器の識別情報(たとえば、IPアドレスやMACアドレス)と、送信先機器のポート番号と、通信データの受信時に利用された通信プロトコルと、送信先機器の識別情報(たとえば、IPアドレスやMACアドレス)と、送信元機器のポート番号と、通信データの送信時に利用された通信プロトコルとの内の少なくとも1つを、フィルタリング条件の比較情報として受信した通信データから抽出する。このとき、プロセッサ102は、送信先機器や送信元機器の識別情報から通信データの通信方向を比較情報の1つとしてさらに特定してもよい。プロセッサ102は、これらの比較情報がフィルタリング条件に合致している場合(ステップS140においてYES)、制御をステップS142に切り替える。そうでない場合には(ステップS140においてNO)、プロセッサ102は、制御をステップS150に切り替える。
ステップS142において、プロセッサ102は、フィルタリング機能152の設定されている動作態様に従って、通信データをフィルタリングする。図3で説明したように、フィルタリング機能152の入力部155Bに「pass」が設定されている場合には、プロセッサ102は、フィルタリング条件を満たした通信データのみを通過させ、それ以外の通信データをフィルタリングする。一方で、フィルタリング機能152の入力部155Bに「block」が設定されている場合には、プロセッサ102は、フィルタリング条件を満たした通信データのみをフィルタリングし、それ以外の通信データを通過させない。
ステップS150において、プロセッサ102は、ユーザプログラム110の停止命令を受け付けたか否かを判断する。プロセッサ102は、ユーザプログラム110の停止命令を受け付けたと判断した場合(ステップS150においてYES)、図7に示される処理を終了する。そうでない場合には(ステップS150においてNO)、プロセッサ102は、制御をステップS120に戻す。
<H.まとめ>
以上のようにして、ユーザによって作成されたユーザプログラム110は、制御機能150と、フィルタリング機能152とを含む。制御機能150は、規定されている制御内容に従って駆動機器300に制御命令を出力する。フィルタリング機能152は、送信元機器から受信した通信データを送信先機器に送信するか否かを、ユーザプログラム110の実行中において入力されるフィルタリング条件の設定に応じて切り替える。
このように、フィルタリング機能152は、フィルタリング条件の設定入力を受け付けるように規定されているので、コントローラ100は、駆動機器300を停止せずに通信データのフィルタリング条件を変更することができる。
<I.付記>
以上のように、本実施形態は以下のような開示を含む。
[構成1]
駆動機器(300)を制御するための制御装置(100)であって、
情報処理装置(200)が属する第1ネットワーク(N1)に接続するための物理的な第1通信ポート(100P1)と、
前記駆動機器(300)が属する第2ネットワーク(N2)に接続するための物理的な第2通信ポート(100P2)と、
前記駆動機器(300)を制御するために作成されたユーザプログラム(110)を格納するための記憶装置(108)とを備え、
前記ユーザプログラム(110)は、前記駆動機器(300)および前記情報処理装置(200)の一方の機器から受信した通信データを他方の機器に送信するか否かを決定するためのフィルタリング条件を、当該ユーザプログラム(110)の実行中において入力されるフィルタリング条件の設定に応じて切り替えるためのフィルタリング機能を含む、制御装置。
[構成2]
前記フィルタリング条件の設定は、前記フィルタリング条件の変更処理を実行するか否かを指定するための設定を含む、構成1に記載の制御装置。
[構成3]
前記フィルタリング条件の設定は、前記フィルタリング条件が満たされた場合における前記フィルタリング機能の動作態様を指定するための設定を含み、
前記動作態様は、
前記一方の機器から受信した通信データのみを前記他方の機器に送信する態様と、
前記一方の機器から受信した通信データを前記他方の機器に送信しない態様とを含む、構成1または2に記載の制御装置。
[構成4]
前記フィルタリング条件の設定は、前記駆動機器(300)から受信した通信データの送信をフィルタリング対象とするか、前記情報処理装置(200)から受信した通信データをフィルタリング対象とするかを指定するための設定を含む、構成1に記載の制御装置。
[構成5]
前記フィルタリング条件の設定は、フィルタリング対象とする通信データの通信プロトコルを指定するための設定を含む、構成1〜4のいずれか1項に記載の制御装置。
[構成6]
前記フィルタリング条件の設定は、前記一方の機器から受信した通信データの送信先を指定するための設定と、当該通信データの送信元を指定するための設定との少なくとも一方を含む、構成1〜5のいずれか1項に記載の制御装置。
[構成7]
駆動機器(300)を制御するための制御装置(100)の制御方法であって、
第1ネットワーク(N1)に属する情報処理装置(200)と通信を確立するステップ(S112)と、
第2ネットワーク(N2)に属する前記駆動機器(300)と通信を確立するステップ(S112)と、
前記駆動機器(300)を制御するために作成されたユーザプログラム(110)を前記制御装置(100)が実行するステップ(S112)と、
前記駆動機器(300)および前記情報処理装置(200)の一方の機器から受信した通信データを他方の機器に送信するか否かを決定するためのフィルタリング条件を、当該ユーザプログラム(110)の実行中において入力されるフィルタリング条件の設定に応じて前記ユーザプログラム(110)が切り替えるステップ(S122)とを備える、制御方法。
[構成8]
駆動機器(300)を制御するための制御装置(100)の制御プログラムであって、
前記制御プログラムは、前記制御装置に、
第1ネットワーク(N1)に属する情報処理装置(200)と通信を確立するステップ(S112)と、
第2ネットワーク(N2)に属する前記駆動機器(300)と通信を確立するステップ(S112)と、
前記駆動機器(300)を制御するために作成されたユーザプログラム(110)を実行するステップ(S112)と、
前記駆動機器(300)および前記情報処理装置(200)の一方の機器から受信した通信データを他方の機器に送信するか否かを決定するためのフィルタリング条件を、当該ユーザプログラム(110)の実行中において入力されるフィルタリング条件の設定に応じて切り替えるステップ(S122)とを実行させる、制御プログラム。
今回開示された実施の形態は全ての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内での全ての変更が含まれることが意図される。
1 FAシステム、100 コントローラ、100P1,100P2,310P1,310P2,320P1,320P2 通信ポート、102 プロセッサ、104 チップセット、106 主メモリ、108 記憶装置、109 制御プログラム、110 ユーザプログラム、111 システムプログラム、112 USBインターフェイス、114 メモリカードインターフェイス、116 メモリカード、118 ネットワークインターフェイス、120 内部バスコントローラ、130 フィールドネットワークコントローラ、150 制御機能、152 フィルタリング機能、155A,155B,155C,155D,155E,155F 入力部、157A,157B,157C,157D 出力部、200 情報処理装置、200A サポート装置、200B サーバ装置、200C 表示器、300 駆動機器、305 ハブ、310,320 リモートIO装置、315 画像センサ、325 アームロボット。

Claims (8)

  1. 駆動機器を制御するための制御装置であって、
    情報処理装置が属する第1ネットワークに接続するための物理的な第1通信ポートと、
    前記駆動機器が属する第2ネットワークに接続するための物理的な第2通信ポートと、
    前記駆動機器を制御するために作成されたユーザプログラムを格納するための記憶装置とを備え、
    前記ユーザプログラムは、前記駆動機器および前記情報処理装置の一方の機器から受信した通信データを他方の機器に送信するか否かを決定するためのフィルタリング条件を、当該ユーザプログラムの実行中において入力されるフィルタリング条件の設定に応じて切り替えるためのフィルタリング機能を含む、制御装置。
  2. 前記入力されるフィルタリング条件の設定は、前記フィルタリング条件の変更処理を実行するか否かを指定するための設定を含む、請求項1に記載の制御装置。
  3. 前記入力されるフィルタリング条件の設定は、前記フィルタリング条件が満たされた場合における前記フィルタリング機能の動作態様を指定するための設定を含み、
    前記動作態様は、
    前記一方の機器から受信した通信データのみを前記他方の機器に送信する態様と、
    前記一方の機器から受信した通信データを前記他方の機器に送信しない態様とを含む、請求項1または2に記載の制御装置。
  4. 前記入力されるフィルタリング条件の設定は、前記駆動機器から受信した通信データの送信をフィルタリング対象とするか、前記情報処理装置から受信した通信データをフィルタリング対象とするかを指定するための設定を含む、請求項1に記載の制御装置。
  5. 前記入力されるフィルタリング条件の設定は、フィルタリング対象とする通信データの通信プロトコルを指定するための設定を含む、請求項1〜4のいずれか1項に記載の制御装置。
  6. 前記入力されるフィルタリング条件の設定は、前記一方の機器から受信した通信データの送信先を指定するための設定と、当該通信データの送信元を指定するための設定との少なくとも一方を含む、請求項1〜5のいずれか1項に記載の制御装置。
  7. 駆動機器を制御するための制御装置の制御方法であって、
    第1ネットワークに属する情報処理装置と通信を確立するステップと、
    第2ネットワークに属する前記駆動機器と通信を確立するステップと、
    前記駆動機器を制御するために作成されたユーザプログラムを前記制御装置が実行するステップと、
    前記駆動機器および前記情報処理装置の一方の機器から受信した通信データを他方の機器に送信するか否かを決定するためのフィルタリング条件を、当該ユーザプログラムの実行中において入力されるフィルタリング条件の設定に応じて前記ユーザプログラムが切り替えるステップとを備える、制御方法。
  8. 駆動機器を制御するための制御装置の制御プログラムであって、
    前記制御プログラムは、前記制御装置に、
    第1ネットワークに属する情報処理装置と通信を確立するステップと、
    第2ネットワークに属する前記駆動機器と通信を確立するステップと、
    前記駆動機器を制御するために作成されたユーザプログラムを実行するステップと、
    前記駆動機器および前記情報処理装置の一方の機器から受信した通信データを他方の機器に送信するか否かを決定するためのフィルタリング条件を、当該ユーザプログラムの実行中において入力されるフィルタリング条件の設定に応じて切り替えるステップとを実行させる、制御プログラム。
JP2018008339A 2018-01-22 2018-01-22 制御装置、制御方法、および制御プログラム Active JP7078889B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2018008339A JP7078889B2 (ja) 2018-01-22 2018-01-22 制御装置、制御方法、および制御プログラム
CN201880055502.0A CN111095137B (zh) 2018-01-22 2018-12-20 控制装置、控制方法和存储介质
PCT/JP2018/046988 WO2019142587A1 (ja) 2018-01-22 2018-12-20 制御装置、制御方法、および制御プログラム
EP18901114.1A EP3745221A4 (en) 2018-01-22 2018-12-20 DEVICE, PROCESS AND CONTROL PROGRAM
US16/643,834 US11226611B2 (en) 2018-01-22 2018-12-20 Control device, control method, and control program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018008339A JP7078889B2 (ja) 2018-01-22 2018-01-22 制御装置、制御方法、および制御プログラム

Publications (2)

Publication Number Publication Date
JP2019128668A true JP2019128668A (ja) 2019-08-01
JP7078889B2 JP7078889B2 (ja) 2022-06-01

Family

ID=67302168

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018008339A Active JP7078889B2 (ja) 2018-01-22 2018-01-22 制御装置、制御方法、および制御プログラム

Country Status (5)

Country Link
US (1) US11226611B2 (ja)
EP (1) EP3745221A4 (ja)
JP (1) JP7078889B2 (ja)
CN (1) CN111095137B (ja)
WO (1) WO2019142587A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7078889B2 (ja) * 2018-01-22 2022-06-01 オムロン株式会社 制御装置、制御方法、および制御プログラム

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000029849A (ja) * 1998-07-15 2000-01-28 Hitachi Ltd 分散制御システム、及び分散制御システムにおけるフィルタリング方法
JP2002268961A (ja) * 2001-03-08 2002-09-20 Toshiba Corp 監視制御装置、監視制御方法及び監視制御プログラム
JP2005513542A (ja) * 2001-12-13 2005-05-12 イレクトラニク、デイタ、システィムズ、コーパレイシャン 無線ユニット間におけるハイファイ音響信号の送信
JP2006099777A (ja) * 2004-09-28 2006-04-13 Rockwell Automation Technologies Inc レガシー・オートメーション・システムのための集中管理プロキシ・ベースのセキュリティ
JP2010212961A (ja) * 2009-03-10 2010-09-24 Canon Inc 処理装置、その制御方法、及びプログラム
JP2013143077A (ja) * 2012-01-12 2013-07-22 Hitachi Ltd 制御装置の監視方法および制御装置監視システム
WO2016018622A1 (en) * 2014-07-28 2016-02-04 Ge Intelligent Platforms, Inc. Apparatus and method for security of industrial control networks
JP2016034066A (ja) * 2014-07-31 2016-03-10 株式会社日立システムズ 遠隔監視制御システムおよびセキュリティゲートウェイならびに通信制御プログラム
WO2019142587A1 (ja) * 2018-01-22 2019-07-25 オムロン株式会社 制御装置、制御方法、および制御プログラム

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08221108A (ja) * 1994-12-12 1996-08-30 Omron Corp Plcのリモートi/oシステム
JP2003244243A (ja) * 2002-02-13 2003-08-29 Seiko Epson Corp フィルタリング機能を有するネットワーク接続装置
JP2004214948A (ja) * 2002-12-27 2004-07-29 Ntt Comware Corp パケット通信方法、パケット通信装置、パケット通信プログラム、およびパケット通信プログラム記録媒体
JP2005005820A (ja) * 2003-06-10 2005-01-06 Hitachi Ltd フィルタリング装置に対するフィルタ設定情報管理方法
JP4290526B2 (ja) * 2003-10-29 2009-07-08 富士通株式会社 ネットワークシステム
JP4815956B2 (ja) * 2005-09-06 2011-11-16 オムロン株式会社 作業監視装置、フィルタリング方法、作業時間計測システム、制御プログラム、および記録媒体
JP4700473B2 (ja) * 2005-11-04 2011-06-15 株式会社 デジタルデザイン データ通信方法
JP2007201757A (ja) * 2006-01-26 2007-08-09 Sony Corp 情報処理装置および方法、並びにプログラム
US8737398B2 (en) * 2008-12-31 2014-05-27 Schneider Electric USA, Inc. Communication module with network isolation and communication filter
ES2445894T3 (es) * 2010-06-22 2014-03-05 Siemens Aktiengesellschaft Dispositivo de protección de red
DE102010025638B4 (de) * 2010-06-30 2012-09-06 Siemens Aktiengesellschaft Verfahren zum Verarbeiten von Daten in einem paketvermittelten Kommunikationsnetz
JP5614293B2 (ja) * 2011-01-12 2014-10-29 富士通株式会社 通信制御装置、通信システム、情報処理装置および通信制御方法
US20120198541A1 (en) * 2011-02-02 2012-08-02 Reeves Randall E Methods and apparatus for preventing network intrusion
JP2015039080A (ja) * 2011-07-27 2015-02-26 株式会社東芝 情報処理装置及び通信制御方法
JP6114204B2 (ja) * 2014-01-16 2017-04-12 日本電信電話株式会社 通信システム、フィルタリング装置、フィルタリング方法およびプログラム
US9729440B2 (en) * 2015-02-22 2017-08-08 Mellanox Technologies, Ltd. Differentiating among multiple management control instances using IP addresses
JP2017199154A (ja) 2016-04-26 2017-11-02 株式会社ジェイテクト 設備システム
US10482063B2 (en) * 2017-08-14 2019-11-19 Rockwell Automation Technologies, Inc. Modular control manifest generator for cloud automation

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000029849A (ja) * 1998-07-15 2000-01-28 Hitachi Ltd 分散制御システム、及び分散制御システムにおけるフィルタリング方法
JP2002268961A (ja) * 2001-03-08 2002-09-20 Toshiba Corp 監視制御装置、監視制御方法及び監視制御プログラム
JP2005513542A (ja) * 2001-12-13 2005-05-12 イレクトラニク、デイタ、システィムズ、コーパレイシャン 無線ユニット間におけるハイファイ音響信号の送信
JP2006099777A (ja) * 2004-09-28 2006-04-13 Rockwell Automation Technologies Inc レガシー・オートメーション・システムのための集中管理プロキシ・ベースのセキュリティ
JP2010212961A (ja) * 2009-03-10 2010-09-24 Canon Inc 処理装置、その制御方法、及びプログラム
JP2013143077A (ja) * 2012-01-12 2013-07-22 Hitachi Ltd 制御装置の監視方法および制御装置監視システム
WO2016018622A1 (en) * 2014-07-28 2016-02-04 Ge Intelligent Platforms, Inc. Apparatus and method for security of industrial control networks
JP2016034066A (ja) * 2014-07-31 2016-03-10 株式会社日立システムズ 遠隔監視制御システムおよびセキュリティゲートウェイならびに通信制御プログラム
WO2019142587A1 (ja) * 2018-01-22 2019-07-25 オムロン株式会社 制御装置、制御方法、および制御プログラム

Also Published As

Publication number Publication date
EP3745221A1 (en) 2020-12-02
CN111095137A (zh) 2020-05-01
EP3745221A4 (en) 2021-09-29
US20210064004A1 (en) 2021-03-04
CN111095137B (zh) 2023-08-08
US11226611B2 (en) 2022-01-18
WO2019142587A1 (ja) 2019-07-25
JP7078889B2 (ja) 2022-06-01

Similar Documents

Publication Publication Date Title
JP6922793B2 (ja) 制御装置、制御方法、および制御プログラム
EP1705540B1 (en) Network opening method in manufacturing system
EP3547049B1 (en) Safety control system and safety control unit
CN108369403A (zh) 现场总线耦合器、系统和用于配置故障保险模块的方法
US20120260305A1 (en) Access Protection Accessory for an Automation Network
JP7230677B2 (ja) 制御装置
JP6502908B2 (ja) スレーブ機器
JP7078889B2 (ja) 制御装置、制御方法、および制御プログラム
US20130145025A1 (en) Programmable controller
JP2008181572A (ja) Plcシステム
US11196812B2 (en) Method for establishing a network communication in an automation system
WO2019176386A1 (ja) 制御システム、制御方法、および制御プログラム
JP6612151B2 (ja) ネットワーク機器監視装置
JP4147430B2 (ja) プログラマブル・コントローラ・システム
CN110309649B (zh) 支持装置、非易失性的计算机可读记录介质以及设定方法
JP2000049891A (ja) プログラマブルロジックコントロ―ラおよびその通信条件設定方法および通信条件設定装置
JP4873220B2 (ja) フィールド通信システム
JP2011134061A (ja) プログラマブルコントローラ
JP2019180019A (ja) 制御装置
CN111065976A (zh) 工厂自动化系统、控制器和控制方法
JP6915583B2 (ja) セーフティ制御システムおよびセーフティ制御システムにおける制御方法
JP2017034433A (ja) 通信制御装置および方法
JP7163657B2 (ja) サポート装置、設定方法、および設定プログラム
JP7034885B2 (ja) 異常要因判定装置およびその表示装置
CN112213991A (zh) 控制装置、诊断方法以及诊断程序

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200305

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210302

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210428

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210713

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210913

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211207

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220119

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220503

R150 Certificate of patent or registration of utility model

Ref document number: 7078889

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150