JP7292558B1 - ゲートウェイ装置、ゲートウェイ制御方法、及び、ゲートウェイ制御プログラム - Google Patents

ゲートウェイ装置、ゲートウェイ制御方法、及び、ゲートウェイ制御プログラム Download PDF

Info

Publication number
JP7292558B1
JP7292558B1 JP2023519900A JP2023519900A JP7292558B1 JP 7292558 B1 JP7292558 B1 JP 7292558B1 JP 2023519900 A JP2023519900 A JP 2023519900A JP 2023519900 A JP2023519900 A JP 2023519900A JP 7292558 B1 JP7292558 B1 JP 7292558B1
Authority
JP
Japan
Prior art keywords
safety
state
control
input
gateway device
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
JP2023519900A
Other languages
English (en)
Other versions
JPWO2022239116A1 (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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of JPWO2022239116A1 publication Critical patent/JPWO2022239116A1/ja
Application granted granted Critical
Publication of JP7292558B1 publication Critical patent/JP7292558B1/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/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0428Safety, monitoring
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/66Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
    • 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/20Pc systems
    • G05B2219/24Pc safety
    • G05B2219/24024Safety, surveillance

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)
  • Selective Calling Equipment (AREA)

Abstract

ゲートウェイ装置(10)は、安全入出力ユニット(40)と安全入出力ユニット(40)を制御する安全コントローラ(20)との間における安全データの通信を中継し、状態監視制御部(130)と、安全制御部(120)とを備える。状態監視制御部(130)は、安全制御システム(80)の状態に対応する状態であって、安全状態と非安全状態とのいずれかの状態である制御状態を管理し、かつ、ゲートウェイ装置(10)が安全入出力ユニット(40)から受信した安全データを、制御状態についての状態遷移を示す状態遷移情報に適用することにより制御状態の状態遷移を制御する。安全制御部(120)は、制御状態が非安全状態から安全状態に遷移した場合に、安全入出力ユニット(40)に送信する安全データであって、安全状態を示す安全データを生成する。

Description

本開示は、ゲートウェイ装置、ゲートウェイ制御方法、及び、ゲートウェイ制御プログラムに関する。
安全制御は、作業者の保護、又は事故の防止等に関わる制御であり、フェールセーフな特性を保証するように実現される。作業者の保護は、具体例として、生産設備のインタロック制御により実現される。事故の防止は、具体例として、化学プラントの温度制御により実現される。安全制御を実現するシステムは安全関連系(SRS)と呼ばれ、国際規格であるIEC(International Electrotechnical Commission) 61508シリーズ等において、安全関連系が満たすべき要求事項が規定されている。
安全制御に関する重要な性能の一つに安全応答時間がある。安全応答時間は、システムへの非定常データの入力に対して安全コントローラが反応し、安全コントローラが安全状態への遷移を示すデータを出力するための時間である。非定常データは、システムを安全状態に遷移させるべきことを示す情報である。安全状態は、具体例として、安全停止の制御を実行すべき状態である。安全応答時間が短いほど、生産設備の危険部への安全距離を小さく設計することができる。そのため、安全応答時間の短さは生産設備の小型化等に寄与する。
一方、FA(Factory Automation)又はPA(Process Automation)における制御は、分散して配置されたコントローラと、入出力ユニット等の機器同士が通信することにより実現されるため、機器間をフィールドバス又はフィールドネットワーク等により接続することによって実現される。また、安全制御に必要な入出力データの通信において、通信するデータに対して特別な通信エラー対策を施す安全通信技術が用いられる。安全通信においてエラー対策のための処理等が実行されるために、安全通信は安全応答時間を構成する一要素となる。
IEC 61784-3シリーズで標準化された複数種類の安全通信方式の各々に対応した製品が市場に流通しており、互いに異なる安全通信方式に対応する製品の間に相互接続性は基本的にない。なお、互いに異なる安全通信方式に対応する装置同士を接続して生産ラインを構築する場合に対応するため、安全通信方式を変換する製品が市場に存在する。
特許文献1は、安全通信方式を採用する安全ネットワークシステムにおいて、安全応答時間を短縮する技術を開示している。特許文献1を適用しないシステムでは、安全スレーブに入力された安全情報全てを安全コントローラに送信するため、安全スレーブの台数が増加した場合に台数に応じて通信サイクル時間が増加し、安全応答時間が長くなるという課題があった。ここで、安全スレーブは安全入出力ユニットとも呼ばれる。
そこで、特許文献1に係る安全スレーブは、複数の入力安全情報に基づいて安全条件を満足するか否かを判断する安全判断手段を備える。安全判断手段は、具体例として、入力安全情報を用いた論理演算により簡単に安全条件を満足するか否かを判断することができる手段である。安全スレーブは、安全コントローラに対して入力安全情報そのものではなく、安全判断手段が判断した判断結果を送信する。そのため、特許文献1によれば、安全コントローラに送信すべきデータ量が少なくなるために1回のサイクルタイムを短縮することができ、その結果、安全応答時間を短縮することができる。
なお、特許文献1は、前述の技術の適用対象を安全スレーブに限定しておらず、具体例として、異種フィールドバスを接続するゲートウェイに対して前述の技術を適用する構成のほか、判断結果の送信元であるノード以外のデバイスを判断結果の送信先とする構成も開示している。
国際公開第2003/001306号
特許文献1が開示する技術によれば、送信データ量の削減を通して安全応答時間を短縮することができるが、安全入出力ユニットから安全コントローラに至る通信パスの伝送遅延が大きい場合に、安全応答時間を比較的安価なコストで短縮することができないという課題がある。当該技術には、通信周期を改善する効果はあるものの伝送遅延を改善する効果はないことがその一因である。
ここで、通信パスの伝送遅延が大きくなる場合は、具体例として、システム構成が下記に示す構成である場合である。なお、伝送遅延時間には一般的に幅があるが、伝送遅延の平均値又は中央値ではなく、ジッタを加味して受容可能な到達性を確率的に保証する時間を伝送遅延時間と呼ぶこととする。
構成1:定時性の低い拠点内ネットワークを介する構成。当該ネットワークは、具体例として、ソフトウェアレベルでの中継処理が経路に存在するネットワーク、タイムスロット管理若しくはQoS(Quality of Service)制御等の遅延の抑制制御がなされていないネットワーク、又は、送信の衝突が起こりうる無線部分を含むネットワークである。
構成2:安全コントローラが公衆網を隔てた先にある構成。具体例として、安全コントローラが遠隔地のデータセンター又はクラウドにある構成。
本開示は、安全入出力ユニットから安全コントローラに至る通信パスの伝送遅延が大きい場合であっても、安全応答時間を比較的安価なコストで短縮することを目的とする。
本開示に係るゲートウェイ装置は、
安全制御システムが備える安全入出力ユニットと前記安全入出力ユニットを制御する安全コントローラとの間における安全データの通信を中継することにより前記安全入出力ユニットと前記安全コントローラとの安全コネクションを確立するゲートウェイ装置であって、
前記安全制御システムの状態に対応する状態であって、安全状態と非安全状態とのいずれかの状態である制御状態を管理し、かつ、前記ゲートウェイ装置が前記安全入出力ユニットから受信した安全データを、前記制御状態についての状態遷移を示す状態遷移情報に適用することにより前記制御状態の状態遷移を制御する状態監視制御部と、
前記制御状態が前記非安全状態から前記安全状態に遷移した場合に、前記安全入出力ユニットに送信する安全データであって、前記安全状態を示す安全データを生成する安全制御部と
を備える。
本開示によれば、ゲートウェイ装置は安全入出力ユニットと安全コントローラとの間に位置しており、安全制御部は安全入出力ユニットに送信する安全データであって安全状態を示す安全データを生成する。そのため、本開示によれば、安全コントローラが当該安全データを安全入出力ユニットに送信する場合と比較して、当該安全データが安全入出力ユニットに到達するまでの時間を短縮することができる。また、状態監視制御部は制御状態が安全状態と非安全状態とのいずれであるかを判断する機能を有していれば十分である。従って、本開示によれば、安全入出力ユニットから安全コントローラに至る通信パスの伝送遅延が大きい場合であっても、安全応答時間を比較的安価なコストで短縮することができる。
実施の形態1に係る安全コントローラ20のハードウェア構成例を示す図。 実施の形態1に係る安全入出力ユニット40のハードウェア構成例を示す図。 実施の形態1に係るゲートウェイ装置10のハードウェア構成例を示す図。 実施の形態1に係る設定端末50のハードウェア構成例を示す図。 実施の形態1に係る安全制御システム80の構成例を示す図。 実施の形態1に係る安全制御部120と状態監視制御部130との構成例を示す図。 実施の形態1に係る通信パケットを説明する図。 実施の形態1に係る制御ロジックの具体例を示す図。 実施の形態1に係る安全制御システム80の基本動作を示すフローチャート。 実施の形態1に係るゲートウェイ装置10の基本動作を示すフローチャート。 実施の形態1に係る安全制御システム80の動作を示すフローチャート。 実施の形態1に係るゲートウェイ装置10の特徴的な動作を示すフローチャート。 実施の形態1に係る安全データマッピング表194の具体例を示す図。 実施の形態1に係る出力定義情報191の具体例を示す図。 実施の形態1に係る安全制御システム80の動作を示すフローチャート。 実施の形態1に係るゲートウェイ装置10の特徴的な動作を示すフローチャート。 実施の形態1に係る状態遷移表192の具体例を示す図。 実施の形態1に係るエンジニアリングツール30の動作を示すフローチャート。 実施の形態1に係る全体状態遷移表の具体例を示す図。 実施の形態1に係るエンジニアリングツール30の動作を説明する表。 実施の形態1に係るエンジニアリングツール30の動作を説明する表。 実施の形態1に係る出力定義情報191の具体例を示す図。 実施の形態1の変形例に係るゲートウェイ装置10のハードウェア構成例を示す図。
実施の形態の説明及び図面において、同じ要素及び対応する要素には同じ符号を付している。同じ符号が付された要素の説明は、適宜に省略又は簡略化する。図中の矢印はデータの流れ又は処理の流れを主に示している。また、「部」を、「回路」、「工程」、「手順」、「処理」又は「サーキットリー」に適宜読み替えてもよい。
実施の形態1.
以下、本実施の形態について、図面を参照しながら詳細に説明する。
***構成の説明***
図1から図4は、安全制御システム80が備える各構成要素のハードウェア構成例を示している。安全制御システム80は、安全コントローラ20と、安全入出力ユニット40と、ゲートウェイ装置10と、設定端末50とを備える。安全制御システム80は、ファクトリーオートメーション(FA)又はプロセスオートメーション(PA)の分野における、安全制御に関するシステムである。各構成要素は、安全関連系(SRS)の要求事項に従って開発されたハードウェアであり、典型的にはコンピュータである。必要な安全度水準(SIL)を満たすために、各構成要素の一部又は全体、あるいは構成要素である機器が二重化されていてもよい。
安全コントローラ20は、プロセッサ21と、メモリ22と、設定ポート23と、第1ポート24と、バス25と、不揮発メモリ26とを備える。
プロセッサ21は、演算処理を行うIC(Integrated Circuit)であり、かつ、コンピュータが備えるハードウェアを制御する。プロセッサ11は、具体例として、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、又はGPU(Graphics Processing Unit)である。安全コントローラ20は、プロセッサ21を代替する複数のプロセッサを備えてもよい。複数のプロセッサは、プロセッサ21の役割を分担する。
メモリ22は、典型的には、揮発性の記憶装置である。メモリ22は、主記憶装置又はメインメモリとも呼ばれる。メモリ22は、具体例として、RAM(Random Access Memory)である。メモリ22に記憶されたデータは、必要に応じて不揮発メモリ26に保存される。
設定ポート23は、エンジニアリングツール30による設定を行うためのポートである。設定ポート23は、具体例として、USB(Universal Serial Bus)端子である。
第1ポート24は、通信方式1に対応したポートであり、レシーバ及びトランスミッタである。第1ポート24は、具体例として、通信チップ又はNIC(Network Interface Card)である。
バス25は、内部通信を実現するための信号線である。
不揮発メモリ26は、典型的には、不揮発性の記憶装置である。不揮発メモリ26は、具体例として、ROM(Read Only Memory)、HDD(Hard Disk Drive)、又はフラッシュメモリである。不揮発メモリ26は、プログラム及びパラメータ等を格納する。不揮発メモリ26に記憶されたデータは、必要に応じてメモリ22にロードされる。メモリ22及び不揮発メモリ26は一体的に構成されていてもよい。
安全入出力ユニット40は、安全I/O(Input/Output)又は安全I/Oデバイスとも呼ばれる。I/OはIOとも表記される。安全入出力ユニット40は、プロセッサ41と、メモリ42と、IOポート43と、第2ポート44と、バス45と、不揮発メモリ46とを備える。
プロセッサ41はプロセッサ21と同様である。メモリ42はメモリ22と同様である。第2ポート44は、通信方式1の代わりに通信方式2に対応したポートである点を除いて第1ポート24と同様である。バス45はバス25と同様である。不揮発メモリ46は不揮発メモリ26と同様である。
IOポート43は、安全入出力ユニット40は、接続機器からデータを受け付け、制御装置にデータを出力するためのポートである。IOポート43は、具体例として、USB端子である。接続機器は、具体例として、センサとスイッチとの少なくともいずれかである。制御装置は、具体例として、アクチュエータとリレーとの少なくともいずれかである。接続機器と制御装置とは一体的に構成されていてもよい。
ゲートウェイ装置10は、プロセッサ11と、メモリ12と、第1ポート13と、第2ポート14と、バス15と、不揮発メモリ16と、設定ポート17とを備える。ゲートウェイ装置10は安全ゲートウェイとも呼ばれる。
プロセッサ11はプロセッサ21と同様である。メモリ12はメモリ22と同様である。第1ポート13は第1ポート24と同様である。第2ポート14は第2ポート44と同様である。バス15はバス25と同様である。不揮発メモリ16は、不揮発メモリ26と同様であり、ゲートウェイ制御プログラムを記憶している。設定ポート17は設定ポート23と同様である。
なお、本明細書に記載されているいずれのプログラムも、コンピュータが読み取り可能な不揮発性の記録媒体に記録されていてもよい。不揮発性の記録媒体は、具体例として、光ディスク又はフラッシュメモリである。本明細書に記載されているいずれのプログラムも、プログラムプロダクトとして提供されてもよい。
設定端末50は、ソフトウェアであるエンジニアリングツール30を実行するための端末であり、具体例として、一般的なPC(Personal Computer)である。設定端末50は、プロセッサ51と、メモリ52と、バス55と、不揮発メモリ56とに加え、設定ポート53を備える。
プロセッサ51はプロセッサ21と同様である。メモリ52はメモリ22と同様である。バス55はバス25と同様である。不揮発メモリ56は不揮発メモリ26と同様であり、エンジニアリングプログラムを記憶している。
設定ポート53は、設定ポート23と同様であり、安全コントローラ20とゲートウェイ装置10との各々に対してプログラム及びパラメータ等を設定するためのポートである。
図5は、安全制御システム80の構成例を示している。安全制御システム80の構成する要素は適宜一体的に構成されていてもよい。安全制御システム80が備える各構成要素の機能は、ソフトウェアにより実現される。
安全コントローラ20は、安全入出力ユニット40からの入力を元に制御ロジックを実行し、制御ロジックを実行した結果に基づく出力を安全入出力ユニット40に対し出力する機能を持つ。即ち、安全コントローラ20は安全入出力ユニット40を制御する。制御ロジックは安全入出力ユニット40を制御するアルゴリズム等である。安全コントローラ20は、安全入出力ユニット40と直接的に通信せず、第1ポート24を介してゲートウェイ装置10と通信する。安全コントローラ20とゲートウェイ装置10との間の通信経路は、ネットワークN1で接続されている。ネットワークN1は通信方式1に対応するネットワークである。
ゲートウェイ装置10は、安全コントローラ20と安全入出力ユニット40との間の通信経路上に介在し、第1通信ポート111と、第2通信ポート112と、第1通信制御部113と、制御データ中継部114と、第2通信制御部115とを有する。また、ゲートウェイ装置10は、本実施の形態が特徴とする部分として、制御データ中継部114と接続された、安全制御部120と状態監視制御部130とを有する。ゲートウェイ装置10は、安全入出力ユニット40と安全コントローラ20との間における安全データの通信を中継することにより安全入出力ユニット40と安全コントローラ20との安全コネクションを確立する。安全制御部120は安全状態発動解除制御部とも呼ばれる。状態監視制御部130はステートマシン監視制御部とも呼ばれる。
第1通信ポート111と第1通信制御部113との各々は、通信方式1に対応しており、第1ポート13により実現される。
第2通信ポート112と第2通信制御部115との各々は、通信方式2に対応しており、第2ポート14により実現される。
図6は、安全制御部120と状態監視制御部130との各々の構成例を示している。
安全制御部120は、安全状態管理部121と安全データ制御部122とを備える。安全制御部120は、制御状態が非安全状態から安全状態に遷移した場合に、安全入出力ユニット40に送信する安全データであって、安全状態を示す安全データを生成する。安全制御部120は、制御状態が非安全状態から安全状態に遷移した場合に、安全コネクションを切断する制御を実行してもよい。安全制御部120は、安全コネクションが切断されている場合において、制御状態が安全状態から非安全状態に遷移した場合に安全コネクションの切断を解除してもよい。安全制御部120は、安全コネクションを切断する制御として、安全状態を示す安全データとなるよう、ゲートウェイ装置10が安全コントローラ20から受信した安全データを書き換える制御を実行してもよい。安全コントローラ20が出力した安全データをゲートウェイ装置10が直接的に安全入出力ユニット40に中継しないことにより、安全コネクションが切断されている。
ここで、安全状態は、受容できないリスクから免れている状態であり、具体例として、制御システムが制御する工作機械が停止している状態、又は、当該工作機械が安全な速度で動作している状態等の作業者が保護されている状態である。一方、非安全状態は、直面するリスクが許容できない状態であり、具体例として、作業者に危害を加えるリスクが十分に低減されていない状態である。安全状態及び非安全状態の各々は、安全入出力ユニット40の下位に接続された接続機器に対する入出力値として表現される。
状態監視制御部130は、状態遷移検出部131と安全データ監視部132とを備える。状態監視制御部130は、制御状態を管理し、かつ、ゲートウェイ装置10が安全入出力ユニット40から受信した安全データを、状態遷移情報に適用することにより制御状態の状態遷移を制御する。状態遷移情報は、制御状態についての状態遷移を示す情報である。状態監視制御部130は、ゲートウェイ装置10が安全コントローラ20から受信した安全データを状態遷移情報に適用することにより制御状態の状態遷移を制御してもよい。状態監視制御部130は、安全コネクションが切断されている場合において、安全コネクションを切断する契機となった安全データよりも古い安全データに基づいて制御を実施した結果を示す安全データであって、ゲートウェイ装置10が安全コントローラ20から受信した安全データを用いずに制御状態の状態遷移を制御してもよい。状態監視制御部130は、安全コントローラ20が用いる制御ロジックの少なくとも一部である部分制御ロジックを用いてもよい。状態遷移情報は、部分制御ロジックの少なくとも一部を示す情報であってもよい。状態遷移情報は、エンジニアリングツール30を用いて設定された情報であってもよい。
ゲートウェイ装置10が実施する処理は、主に下記の処理1から処理3である。
処理1:通信方式1と通信方式2とを相互に変換する処理。
処理2:安全コントローラ20が安全入出力ユニット40からの非定常信号の入力に応答して安全入出力ユニット40に対して行った非安全状態を示す出力を、安全状態を示す出力になるよう上書きし、上書きした出力を安全入出力ユニット40に出力する処理。
処理3:安全状態への遷移後、安全コントローラ20からの安全状態の解除出力が安全入出力ユニット40に反映されるように、処理2における出力よりも安全コントローラ20からの出力を優先するよう切り替える処理。
安全入出力ユニット40は、安全入出力ユニット40の下位に接続された接続機器からの入力値に対応する安全データを安全コントローラ20に送信し、また、安全コントローラ20から受信した安全データに対応するデータを下位に接続された制御装置に出力する。安全データは、安全I/Oデータ、I/Oデータ、又は安全情報とも呼ばれる。安全入出力ユニット40は、安全コントローラ20と直接的に通信せず、第2ポート44を介してゲートウェイ装置10と通信する。ゲートウェイ装置10と安全入出力ユニット40との間は、ネットワークN2で接続されている。ネットワークN2は通信方式2に対応するネットワークである。
エンジニアリングツール30は、プログラミング手段提供部31と、ロジック生成部34と、ロジック設定部35とを有し、さらに、本実施の形態が特徴とする部分として、ゲートウェイロジック生成部32と、ゲートウェイロジック設定部33とを有する。エンジニアリングツール30はゲートウェイ装置10と通信することができる。ユーザは安全制御システム80の利用者である。制御アプリケーションは、安全制御システム80の機能を実現するアプリケーションであり、安全制御アプリケーションとも呼ばれる。アプリケーションは、特に断りがない限りアプリケーションプログラムを指す。制御アプリケーションは、制御ロジックに基づいて制御状態を求め、求めた制御状態を管理する。制御状態は、制御アプリケーションが示す状態であり、安全制御システム80の状態として想定される状態である。制御状態は内部状態とも呼ばれる。制御状態は、安全制御システム80の状態に対応する状態であって、安全状態と非安全状態とのいずれかの状態である。
プログラミング手段提供部31は、ユーザが実現したい制御アプリケーションに応じて制御プログラム及びパラメータを作成するための手段をユーザに提供する。
ロジック生成部34は、プログラミング手段提供部31の処理結果に応じて、安全コントローラ20に設定すべき制御ロジック及びパラメータを生成する。
ロジック設定部35は、ロジック生成部34が生成した制御ロジック及びパラメータを安全コントローラ20に設定する。
ゲートウェイロジック生成部32は、プログラミング手段提供部31の処理結果に応じて、ゲートウェイ装置10の説明で述べた動作を実現するための制御ロジック及びパラメータを生成する。
ゲートウェイロジック設定部33は、ゲートウェイロジック生成部32が生成した制御ロジック及びパラメータをゲートウェイ装置10に設定する。
なお、安全コントローラ20と安全入出力ユニット40との各々は既存のものであってよい。即ち、ゲートウェイ装置10は、動作が透過的になるよう、安全コントローラ20に対して通信方式1を採用する安全入出力ユニット40のように振る舞い、かつ、安全入出力ユニット40に対して通信方式2を採用する安全コントローラ20のように振る舞ってもよい。
また、通信方式1と通信方式2とは基本的に互いに異なるが、通信方式1と通信方式2とは同じ通信方式であってもよい。通信方式1と通信方式2とが同じ通信方式である場合において、通信方式を変換する効果は得られないが、ゲートウェイ装置10が安全入出力ユニット40に対してキャッシュサーバのように代理応答することによって、安全応答時間を短縮する効果は得られる。安全応答時間は、安全入出力ユニット40が安全データを送信してから、安全入出力ユニット40が出力した安全データに対応する安全データを安全入出力ユニット40が受信するまでの最悪時間である。安全応答時間は、安全状態への遷移においてアクチュエータが反応する時間等、機器の動作に関する時間を含んでもよい。
補足として、安全制御とその他の一般制御とを同じシステム内又はネットワーク内に混在させることは広く行われており、本実施の形態においても安全制御システム80内にこれらの制御が混在してよい。一般制御は、具体例として、一般IO制御、又は駆動制御である。これらの制御が混在する場合において、一般制御に係る機器が混在して第2通信ポート112に接続されていてもよく、安全コントローラ20に加えて一般IOコントローラと駆動制御コントローラとの少なくとも一方が第1通信ポート111に接続されていてもよく、一般制御に係る制御ロジックが安全コントローラ20の制御ロジックに統合されていてもよい。また、この場合において、ゲートウェイ装置10が一般制御の通信データに対しレイヤ2とレイヤ3との少なくともいずれか等の中継処理のみを行うことが考えられる。
図7は、通信方式1と通信方式2との各々に対応する通信パケットを説明する図である。通信パケットの構造は、一般的な安全通信における構造と同じである。
一般通信パケット90は、一般通信ヘッダ91と、一般通信ペイロード92と、一般通信FCS(Frame Check Sequence)93とから構成される。一般通信ペイロード92の少なくとも一部として安全通信パケット920が格納される。
安全通信パケット920は、一般通信パケット90に格納され、安全通信ヘッダ921と、安全通信ペイロード922と、安全通信FCS924とから構成される。安全通信パケット920は安全パケットとも呼ばれる。
安全通信ヘッダ921は、安全通信パケット920の伝送中の宛先誤り又は適時性に関するエラー等の通信エラーを検出するための情報等を含む。適時性に関するエラーは、具体例として、喪失又は受容できない遅延である。
安全通信ペイロード922は、安全データの本体であり、安全入出力データ923等を含む。
安全通信FCS924は、安全通信パケット920の完全性を確認するものであり、CRC(Cyclic Redundancy Check)等により生成されたチェックサム等が格納される。
通信パケットの構造が通信方式1と通信方式2との各々に対して定義され、通信方式1と通信方式2との各々の構造が互いに異なってもよい。ここで、通信方式1に従う安全通信パケット920を安全通信パケットP1と呼ぶ。通信方式2に従う安全通信パケット920を安全通信パケットP2と呼ぶ。
また、通信パケットの内部は前述の構造と異なってもよく、具体例として、通信パケットの構造は下記に示す構造であってもよい。
構造1:安全通信パケット920が一般通信パケット90に格納されずに伝送路を伝送される構造。
構造2:安全通信ヘッダ921と安全通信FCS924とが一体となって安全通信パケット920に格納された構造。
構造3:安全通信ヘッダ921と、安全通信ペイロード922と、安全通信FCS924との少なくとも1つが、安全通信パケット920内に複製されて格納された構造、又は、安全通信パケット920内に分割されて格納された構造。
***動作の説明***
ゲートウェイ装置10の動作手順はゲートウェイ制御方法に相当する。ゲートウェイ装置10の動作を実現するプログラムはゲートウェイ制御プログラムに相当する。エンジニアリングツール30の動作手順はエンジニアリング方法に相当する。エンジニアリングツール30の動作を実現するプログラムはエンジニアリングプログラムに相当する。
安全制御システム80の動作は、設定フェーズと制御フェーズとから成る。
設定フェーズでは、ユーザがエンジニアリングツール30を用いて必要な制御ロジックをプログラミングし、エンジニアリングツール30は、その結果生成されたプログラム及びパラメータを、安全コントローラ20及びゲートウェイ装置10に設定する。
制御フェーズでは、設定されたプログラム及びパラメータに基づいて、安全コントローラ20及びゲートウェイ装置10が安全入出力ユニット40と連携して安全制御を行う。
<制御フェーズ>
図8は、安全制御システム80に設定される1つの制御ロジックの一例を示している。以下では、この制御ロジックに従うゲートウェイロジックを設定する場合における安全制御システム80の動作を説明する。なお、安全制御システム80において互いに異なる複数の制御ロジックが並列に設定されていてもよい。安全制御システム80は、以下で説明する1つの制御ロジックに対する具体例を複数の制御ロジックの各々に適用することにより、複数の制御ロジックが並列に設定されている場合に対応することができる。また、安全制御システム80において複数の安全制御プログラムが連動する場合については、状態遷移の条件に他の安全制御プログラムによる出力が加わるのみであるため、安全制御システム80は以下で説明する方法により当該場合に対応することができる。
図8に示す制御ロジックは、状態0から状態6までの7つの状態を持ち、11の状態遷移を持つ。これらのうち、非安全状態は状態4及び状態5のみであり、それ以外の状態は安全状態である。非安全状態は、具体例として、接続機器の動作が許可されることを示す状態である。安全状態は、具体例として、接続機器を停止させることを示す状態である。安全状態において安全制御システム80は安全制御を実施する。
安全制御システム80が図8に示す制御を行うためには、安全制御システム80は、下記の認識事項1及び認識事項2を認識することができなければならない。ここで、管理対象非安全状態は、非安全状態のうち、安全状態と見分けるために管理される状態である。管理対象非安全状態は後述の管理対象安全状態と同様である。
認識事項1:制御状態が管理対象非安全状態である状態4又は状態5であること。
認識事項2:非安全状態から安全状態への遷移条件である条件6-A又は条件6-Bが満たされたこと。
認識事項2のみを考慮するよう安全制御システム80を構成することも考えられるが、条件6-A及び条件6-Bの少なくとも一方と他の遷移条件とに重複があると、既に安全状態であるにも関わらず不要な出力が行われる可能性がある。不要な出力が行われた場合、安全状態を示す出力がなされるため制御が意図せず安全状態を逸脱するリスクはないものの、不要な出力により制御アプリケーションの動作が不安定になり、その結果エラーが発生するリスクがある。このため、安全制御システム80を運用するに当たり、安全制御システム80において認識事項1と認識事項2との双方を認識することができるか否かを確認する必要がある。
図9は、安全制御システム80の基本動作についての全体の流れの一例を示すフローチャートである。本図を参照して安全制御システム80の基本動作を説明する。
ここで、制御アプリケーションの一連の処理を説明する。まず、安全入出力ユニット40は、接続機器から得たデータを示す安全データを安全コントローラ20に向けて出力する。次に、安全コントローラ20は、ゲートウェイ装置10を介して入力された安全データを用いて安全入出力ユニット40の制御を決定し、決定した結果を示す安全データを安全入出力ユニット40に向けて出力する。次に、安全入出力ユニット40は、ゲートウェイ装置10を介して入力された安全データに応じたデータを制御装置に向けて出力する。この一連の処理が繰り返されることにより、制御アプリケーションが実現される。
前段の説明として、入力から出力までの基本的な動作について、既存技術と本実施の形態との特徴的な差異に当たる部分を除いて説明する。なお、下記では安全入出力ユニット40が接続機器からデータを取得してから制御装置にデータを出力まで1回の流れに着目して安全制御システム80の動作を説明している。しかしながら、安全制御システム80において、安全入出力ユニット40と、ゲートウェイ装置10と、安全コントローラ20とが非同期的に動作し、その結果として安全入出力ユニット40が取得したデータがバケツリレー式に処理されるという動作が実現されてもよい。また、安全入出力ユニット40と、ゲートウェイ装置10と、安全コントローラ20との各々についても、安全通信パケットP2の生成若しくは検査、又は制御ロジックの実行等の各内部処理が、独立したタイミングで動作していてもよい。
(ステップS01)
安全入出力ユニット40は、安全入出力ユニット40の配下に接続された接続機器から信号又は電位等を読み出すことにより、入力値を取得する。入力値は、ビット値又はアナログ値を模した多値であってもよい。入力値を取得するタイミングは、どのようなタイミングであってもよく、具体例として、あらかじめ決めた周期に従うタイミング、又は、安全コントローラ20若しくはゲートウェイ装置10からの要求に応じたタイミングである。
(ステップS02)
安全入出力ユニット40は、入力値を示すデータを安全データとして安全通信パケットP2に格納し、当該安全通信パケットP2を、ネットワークN2を介してゲートウェイ装置10に送出する。安全入出力ユニット40が安全通信パケットP2を送出するタイミングは、ステップS01におけるタイミングと同じタイミングであることが一般的であるが、ステップS01におけるタイミングと異なるタイミングであってもよい。
本ステップを含め、以後の全てのステップにおいて、安全通信パケット920の生成、送出、又は検査に関わる処理は、安全層において実現される。安全層は、IEC(International Electrotechnical Commission) 61508等の機能安全規格に基づいて実現されたソフトウェアである。
(ステップS03)
ゲートウェイ装置10は、安全通信パケットP2を受信し、受信した安全通信パケットP2を検査する。ゲートウェイ装置10は、安全通信パケットP2に含まれている安全データを取り出して使用する前に、安全通信パケットP2に対する通信エラーが生じているか否かを検査により確認する。
図10は、本ステップの詳細なフローの一例を示すフローチャートである。本図を参照して当該フローを説明する。
(ステップS03-1)
ゲートウェイ装置10は、第2通信ポート112を用いてネットワークN2から安全通信パケットP2を受信する。
(ステップS03-2)
ゲートウェイ装置10は、受信した安全通信パケットP2に通信エラーがあるか否かを、安全通信パケットP2が含む安全通信ヘッダ921と安全通信FCS924との各々の内容を確認することにより検査する。ゲートウェイ装置10は、具体例として、安全通信ヘッダ921の個々のフィールドの値が正しい安全通信パケットP2として期待される範囲の値であること、又は、安全通信FCS924を含む安全通信パケットP2全体のチェックサムを規定の初期値及び多項式を用いたCRC演算により計算し、計算した結果が正常を示す値であること等の確認方法を組み合わせることにより安全通信パケットP2を検査する。また、安全通信パケットP2を検査する方式は安全通信方式ごとに異なってもよい。
(ステップS03-3)
受信した安全通信パケットP2に通信エラーがない場合、ゲートウェイ装置10はステップS03-4に進む。それ以外の場合、ゲートウェイ装置10はステップS03-5に進む。
(ステップS03-4)
ゲートウェイ装置10は、受信した安全通信パケットP2に含まれている安全データに異常がないものとして安全データを扱う。具体的には、ゲートウェイ装置10は、次のステップにおいて、当該安全データを信頼し、安全データを制御ロジックへ入力する際と、制御ロジックによる出力を安全入出力ユニット40へ出力する際とにエラー出力等を行わない。
(ステップS03-5)
ゲートウェイ装置10は、受信した安全通信パケットP2に含まれている安全データに異常があるものとして安全データを扱う。具体的には、ゲートウェイ装置10は、当該安全データを、制御ロジックへ入力することと、制御ロジックによる出力を安全入出力ユニット40へ出力することに用いない。本ステップの処理を実現するために、一般的には当該安全データを廃棄し以後のステップに渡さないこと、通信パケットに通信エラーを表すフラグを設定し当該安全データが制御に用いられないようにすること、あるいは通信エラーを契機として直後のネットワークにおいてコネクションを強制的に切断すること等の方法が取られる。
なお、安全通信パケットP2の受信と検査との各々は、ステップS02における安全通信パケットP2の送出と同じ頻度で行われることが一般的であるが、当該頻度と異なる頻度で行われてもよい。
以後の安全通信パケット920の受信と検査とに関わるフローについても、動作の主体と扱う安全通信パケット920の通信方式との各々に差異があることがあるものの、ステップS03-1からステップS03-5のフローと同様である。ここで、以後の安全通信パケット920の受信と検査とに関わるフローを、以下で説明する。
(ステップS05)
安全コントローラ20は、ゲートウェイ装置10から受信した安全通信パケットP1に対し、ステップS03-1からステップS03-5のフローと同様のことを行う。
(ステップS08)
ゲートウェイ装置10は、安全コントローラ20から受信した安全通信パケットP1に対し、ステップS03-1からステップS03-5のフローと同様のことを行う。
(ステップS10)
安全入出力ユニット40は、ゲートウェイ装置10から受信した安全通信パケットP2に対し、ステップS03-1からステップS03-5のフローと同様のことを行う。
(ステップS04)
ゲートウェイ装置10は、安全データを安全通信パケットP1に格納し、ネットワークN1に当該安全通信パケットP1を送出する。ここで、格納される安全データは、ステップS03を実行した結果得られた安全データである。
なお、ステップS03において通信エラーが検出された場合、ゲートウェイ装置10は、具体例として、送出する安全通信パケットP1に非定常状態を表す安全データを格納すること、安全通信パケットP1に通信エラーを表すフラグを設定すること、あるいは安全コネクションを切断すること等を実行することにより、安全コントローラ20に通信エラーの発生を伝達することができるようにする。
(ステップS05)
安全コントローラ20は、ネットワークN1を介してゲートウェイ装置10から安全通信パケットP1を受信し、受信した安全通信パケットP1を検査する。この際、安全コントローラ20は、ステップS03におけるゲートウェイ装置10の処理と同様の処理を実行する。
安全コントローラ20が通信エラーを検出した場合、安全コントローラ20は、受信した安全通信パケットP1に含まれている安全データを正常な安全データとして制御ロジックに使わないこととする。
(ステップS06)
安全コントローラ20は、受信した安全通信パケットP1に含まれている安全データを入力として制御ロジックを実行する。当該制御ロジックは、安全入出力ユニット40が生成した安全データを入力として安全入出力ユニット40を制御するためのプログラムを実行し、プログラムを実行した結果を安全入出力ユニット40に向けて安全データとして出力するよう構成されている。なお、当該制御ロジックは、入力された安全データが非定常状態を表すこと、安全通信パケットP1に通信エラーを表すフラグが設定されていること、又は、安全コネクションの切断が発生したこと等を検出したことによって通信エラーを検出した場合等に、安全制御システム80の状態が安全状態となるよう安全制御システム80を制御する処理を含む。
(ステップS07)
安全コントローラ20は、制御ロジックを実行した結果を示す安全データを安全通信パケットP1に格納し、当該安全通信パケットP1をネットワークN1に送出する。
(ステップS08)
ゲートウェイ装置10は、安全コントローラ20から安全通信パケットP1を受信し、受信した安全通信パケットP1を検査する。この際、ゲートウェイ装置10は、ステップS03におけるゲートウェイ装置10の処理と同様の処理を実行する。ゲートウェイ装置10が通信エラーを検出した場合、ゲートウェイ装置10は、安全通信パケットP1に含まれている安全データを正常な安全データとして制御ロジックに使わないこととする。
(ステップS09)
ゲートウェイ装置10は、安全通信パケットP1に含まれている安全データを安全通信パケットP2に格納し、当該安全通信パケットP2をネットワークN2に送出する。
(ステップS10)
安全入出力ユニット40は、安全通信パケットP2を受信し、受信した安全通信パケットP2を検査する。この際、安全入出力ユニット40は、ステップS03におけるゲートウェイ装置10の処理と同様の処理を実行する。
(ステップS11)
安全入出力ユニット40は、ステップS10で受信した安全通信パケットP2に含まれている安全データに対応する出力値の出力を、安全入出力ユニット40の配下に接続された制御装置に対して実行する。安全入出力ユニット40は、安全入出力ユニット40が備える接続端子を介して出力を実行してもよい。出力の方法は、一般的な安全入出力ユニットが採用する出力の方法と同様であってもよい。安全入出力ユニット40は、具体例として、PNPトランジスタ出力等により出力を実行する。
なお、ステップS10で安全入出力ユニット40が通信エラーを検出した場合において、具体例として、安全入出力ユニット40は、当該通信エラーに関するパラメータ等があらかじめ設定された許容範囲内ではない場合、出力をあらかじめ定めた値であって安全状態に対応する値とし、制御状態を安全状態に遷移させる。許容範囲は、具体例として、回数と時間との少なくともいずれかについての範囲である。なお、あらかじめ設定されたウォッチドッグ時間内に、安全入出力ユニットが規定の数以上の正常な安全通信パケットを受信したか否かによって通信エラーに関するパラメータ等が許容範囲内であるか否かを判断する手法が採用されることが一般的には多い。しかしながら、安全入出力ユニット40は他の手法により通信エラーの発生が許容範囲内であるか否かを判断してもよい。
以上が、本実施の形態の特徴を除いた、ゲートウェイ装置10を含む安全制御システム80の入力から出力までの基本的な動作である。以下では、前述の基本的な動作と、本実施の形態に係る特徴的な動作との差分を説明する。
本実施の形態では、ステップS04を変更してステップS04’とし、ステップS04’においてゲートウェイ装置10が安全入出力ユニット40から受信した安全データに対応する制御を行うことにより、高い応答性能を実現することができるようにする。
図11は、安全制御システム80の動作についての全体の流れの一例を示すフローチャートである。本図を参照して、安全制御システム80の特徴的な動作を説明する。
(ステップS04’)
図12は、ステップS04’の詳細なフローの一例を示すフローチャートである。本図を参照して当該フローを説明する。
(ステップS04’-1)
安全データ監視部132は、制御データ中継部114が中継する安全データを、監視安全データとして監視する。ステップS04’における監視安全データは、ゲートウェイ装置10が安全入出力ユニット40から安全コントローラ20に向けて中継する安全データである。監視安全データは、制御データ中継部114が管理するメモリ領域の一部に格納されており、状態監視制御部130は、監視安全データへアクセスする方法を示す情報がなければ当該方法が分からない。そこで、監視安全データの識別情報と、監視安全データにアクセスするためのメモリアドレス等の情報を対応づけて示す安全データマッピング表194が用意される。メモリアドレスをアドレスと表記することもある。
図13は、安全データマッピング表194の具体例を表形式で示している。シンボルは、データを識別する情報であり、データの名称等である。安全データマッピング表194が本例に示すものである場合、安全データ監視部132は、具体例として、S_Estop1という安全データを監視安全データとして監視する必要がある場合、安全データマッピング表194を参照して当該監視安全データがメモリアドレス0x1001C番地のビット0に示されているという情報を得て、当該メモリアドレスにアクセスすることによりS_Estop1の値を得る。
(ステップS04’-2)
状態遷移検出部131は、監視安全データに基づき、制御状態が、状態遷移表192が示すいずれの状態であるかを検出する。状態遷移検出部131は状態比較検出部とも呼ばれる。少なくとも制御状態が非安全状態であるか否かを制御アプリケーションが把握することができるよう、かつ、制御アプリケーションが互いに異なる複数の非安全状態のいずれかを制御状態として示し得る場合に、制御状態が複数の非安全状態のいずれの状態であるかを制御アプリケーションが識別することができるよう、状態遷移表192は構成される。また、管理対象安全状態であるか否かを制御アプリケーションが把握することができるよう、かつ、制御アプリケーションが互いに異なる複数の管理対象安全状態を示し得る場合、互いに異なる複数の管理対象安全状態のいずれの状態であるかを制御アプリケーションが識別することができるよう、状態検出表102は構成される。ここで、管理対象安全状態は、安全状態のうち、非安全状態と見分けるために管理される状態である。ここで、非安全状態と管理対象安全状態とを総称して管理対象状態と呼ぶ。
ここで、図8を用いて管理対象安全状態の具体例を説明する。まず、状態遷移検出部131が制御データ中継部114のデータを静的に確認するのみでは状態2と状態4とを区別することができないものとする。このとき、現状態が状態4であれば条件6-Aが満たされたことをもって状態6に遷移するが、現状態が状態2であれば条件6-Aが満たされても状態遷移は起こらない。そのため、状態遷移検出部131は、状態2と状態4とを区別する必要があり、状態2と状態4とを区別するために、状態2を管理対象安全状態として監視しなければならない。また、状態2を監視するために、状態1と状態2とを区別することができないものとすると、状態遷移検出部131は状態1も管理対象安全状態として監視する必要がある。一方、状態3は非安全状態に遷移しうる状態であるが、状態遷移検出部131は、状態4及び状態3と、状態5及び状態3との各々を制御データ中継部114のデータを静的に確認するのみで区別することができるものとすると、状態3を監視する必要がない。従って、このとき状態3は管理対象安全状態に含まれない。
状態遷移表192は、少なくとも、ある時刻における制御状態を示す現状態と、現状態における出力値と、現状態においてとり得る次状態と、現状態から次状態への遷移条件との各々を示す。次状態は現状態の次の状態である。出力値は、安全コントローラ20が安全入出力ユニット40に向けて出力する安全データの値であり、具体例として、0若しくは1を取るバイナリ値、又は、連続値を離散値で表現したアナログ値ある。遷移条件は、次状態への遷移を起こすために安全データが取るべき条件であり、具体例として、出力値が特定の値であることと、出力値の立ち上がり又は立ち下がりが特定の値であることと、出力値が閾値を上回っていること又は下回っていることと、今回の出力値と前回の出力値との差が閾値を超えていること等、出力値の変化が特定の基準を満たすこととの少なくとも1つを組み合わせた条件である。また、遷移条件は、1つの安全データに対する条件に限らず、複数の安全データの各々に対する条件を組み合わせた条件であってもよく、複数の条件の論理和又は論理積等により表現されてもよい。状態遷移表192は、状態遷移情報に当たり、部分制御ロジックの少なくとも一部を示す情報に当たる。
状態遷移検出部131は、状態記憶部193に制御状態の現状態を記録する。状態記憶部193は、少なくとも、現状態が管理対象状態のいずれかにあたるか否かを区別して記憶することができる。状態記憶部193は、制御状態の現状態を表す情報に加えて、現状態が直前の制御状態から変化したか否かを表す状態変化ビットを有していてもよい。
(ステップS04’-3)
状態遷移検出部131は、状態遷移表192を参照して現状態に対応する遷移条件のいずれかが満たされているか否かを、監視安全データに基づいて、少なくとも、監視安全データに変化が発生する全てのタイミングにおいて、繰り返し判定する。
遷移条件のいずれかが満たされている場合、ゲートウェイ装置10はステップS04’-4に進む。それ以外の場合、ゲートウェイ装置10はステップS04’-8に進む。
(ステップS04’-4)
状態遷移検出部131は、状態記憶部193が示す現状態を、満たされた遷移条件に対応する次状態が示す状態に書き換える。
安全制御部120は、状態遷移検出部131の動作によって状態記憶部193が記憶している制御状態が変化した場合、安全入出力ユニット40の状態を安全状態に遷移させる制御、又は、安全入出力ユニット40の状態を安全状態から非安全状態に解除する制御を適切に行うために、安全データの値と安全データの出力経路とを変更する制御を行う。安全制御部120は、具体的には下記の処理を実行する。
(ステップS04’-5)
安全状態管理部121は、状態記憶部193を参照し、制御状態が前回確認したときの状態から変化しているか否かを確認する。安全状態管理部121は安全状態発動管理部とも呼ばれる。安全状態管理部121は、制御状態の変化を確認するために状態記憶部193の状態変化ビットを利用してもよい。安全状態管理部121は、制御状態が変化している場合、状態記憶部193から変化後の制御状態を読み出し、読み出した制御状態に対応する状態遷移表192のエントリを参照する。
制御状態が非安全状態から安全状態に遷移していた場合、ゲートウェイ装置10はステップS04’-6に進む。それ以外の場合、ゲートウェイ装置10はステップS05に進む。
(ステップS04’-6)
安全制御システム80において比較的高速に安全制御を実施することができるよう、ゲートウェイ装置10は、対象安全データを非定常な値に書き換え、値を書き換えた対象安全データを安全入出力ユニット40に出力する。対象安全データは、制御データ中継部114が管理する安全データであり、ゲートウェイ装置10によって書き換えられた上で安全入出力ユニット40に出力される安全データである。対象安全データは、安全コントローラ20が出力した安全データであってもよく、安全コントローラ20から安全データを受信していない場合においてデフォルト値を示すデータであってもよい。当該デフォルト値は、非定常状態を示し、安全入出力ユニット40に入力されても安全入出力ユニット40に問題が生じない値である。安全入出力ユニット40は、受信した対象安全データを、安全コントローラ20が出力した安全データと同等に扱うことができる。ここで、書き換えられた対象安全データを単に対象安全データと表記することもある。具体例として、ゲートウェイ装置10は、安全コントローラ20から安全入出力ユニット40に向けて対象安全データを中継しているように見せかけて、安全入出力ユニット40に対象安全データを出力する。
安全状態管理部121は、非安全状態から安全状態へ制御状態が変化した場合に、どのように対象安全データを変更すればよいか、出力定義情報191を参照して判断する。出力定義情報191は安全状態出力定義情報とも呼ばれる。出力定義情報191は、少なくとも前状態と現状態と出力定義との3つを組にした情報であり、前状態から現状態に制御状態が変化したときに出力すべき値を表す情報である。前状態は現状態の1つ前の状態である。ゲートウェイ装置10が出力定義に従って安全データを生成すると生成した安全データが安全状態を示すよう、出力定義は定義される。図14は、出力定義情報191の具体例を示している。「制御アプリケーション」欄には、制御アプリケーションの名称が入力されている。
安全状態管理部121は、対象安全データを出力定義に従う安全データに変更するよう、安全データ制御部122に対して指示する。
なお、安全制御部120は、ステップS09’における解除が実行されるまで、本ステップ及びステップS04’-7の処理を継続して実行する。
(ステップS04’-7)
安全データ制御部122は、安全データ監視部132が実行した処理と同様に、安全データマッピング表194を参照して、対象安全データのアドレスを特定する。
その後、安全データ制御部122は、特定したアドレスに対応する対象安全データを出力定義に従い書き換える。ゲートウェイ装置10は、書き換えられた対象安全データを安全入出力ユニット40に出力される。その結果、安全制御システム80において必要な安全制御が比較的高速に行われる。
なお、制御データ中継部114による対象安全データの書き換えについては、対象安全データが安全状態を示すよう書き換える契機となった監視安全データ、又は、当該監視安全データよりも新しい安全データに基づく安全コントローラ20の出力によって制御状態が安全状態から非安全状態に遷移するまで、対象安全データが非安全状態を示すよう書き換えられることがないように管理する必要がある。具体例として、安全データ制御部122がある監視安全データに基づいて安全状態を表す安全データとなるよう対象安全データを上書きした後で、安全コントローラ20が当該ある監視安全データよりも古い安全データに基づいた制御結果として非安全状態を示す安全データを出力した場合を考える。この場合において、ゲートウェイ装置10は、安全コントローラ20から受信した安全データではなく対象安全データを優先的に安全入出力ユニット40に出力しなければならない。このための手段の具体例として、対象安全データに安全データ制御部122による上書きが行われていることにより対象安全データがロックされていることを示すフラグを設け、フラグの値が特定の値である場合に安全コントローラ20が出力する安全データにより対象安全データを更新しないように制御する手段が挙げられる。別の手段として、安全コントローラ20による出力が対象安全データに反映されないように対象安全データを別のバッファ領域に待避させる等、対象安全データを保護する手段が挙げられる。
本ステップの処理によって、ゲートウェイ装置10が安全入出力ユニット40に出力する対象安全データに安全入出力ユニット40から受信した安全データに対する制御結果が反映される。また、ゲートウェイ装置10は、制御結果が反映された対象安全データを安全通信パケットP2に含めて安全入出力ユニット40に送出する。このため、本ステップの処理の終了後、ステップS09から処理が継続される。
(ステップS04’-8)
状態遷移検出部131は、状態記憶部193が示す現状態を書き換えない。
また、安全制御部120は何も実施せず、ゲートウェイ装置10はステップS05に遷移する。
一方、制御状態が安全状態から非安全状態に遷移した場合、前述の手段と類似の手段によって、安全コントローラ20から受信した安全データを優先的に安全入出力ユニット40に出力するよう切り替える制御が必要である。
そのため、安全状態管理部121は、制御状態が変化した場合に、安全データをどのように変更すればよいか、出力定義情報191を参照して判断する。出力定義情報191の構造は前述の通りであるが、出力定義に格納する内容が異なる。
そこで、本実施の形態ではステップS09を変更してステップS09’とし、ステップS09’において安全コントローラ20の出力に基づいて安全状態の解除を検出し、ステップS04’で行った安全状態へ遷移するための処理を解除する。
図15は、安全制御システム80の動作についての全体の流れの一例を示すフローチャートである。本図を参照して、安全制御システム80の特徴的な動作を説明する。
(ステップS09’)
図16は、ステップS09’の詳細なフローの一例を示すフローチャートである。本図を参照して当該フローを説明する。
(ステップS09’-1)
本ステップはステップS04’-1と同様である。ただし、本ステップにおける監視安全データは、ゲートウェイ装置10が安全コントローラ20から安全入出力ユニット40に向けて中継する安全データである。
ステップS09’-2は、ステップS04’-2と同様である。
ステップS09’-3は、ステップS04’-3と同様である。
ステップS09’-4は、ステップS04’-4と同様である。
ステップS09’-5は、ステップS04’-5と同様である。なお、制御状態が安全状態のまま変化していない場合、安全状態管理部121は何も行なわず、ステップS10に遷移する。
(ステップS09’-6)
安全状態管理部121は、対象安全データの書き換え解除を、安全データ制御部122に要求する。即ち、本ステップでは、ステップS04’-6で安全状態管理部121が安全データ制御部122に対して行った対象安全データの書き換えの逆に当たる処理を行うことにより、対象安全データの代わりに安全コントローラ20が出力した安全データが、安全入出力ユニット40に出力されるようにする。
安全状態管理部121は、制御状態が安全状態から非安全状態へ変化した場合に、対象安全データをどのように変更すればよいかを、出力定義情報191を参照して判断する。出力定義情報191は、出力定義として、制御状態が安全状態から非安全状態に遷移していた場合において、操作すべき安全データと安全データを操作する方法を示す情報とを含む。この方法には、具体例として、ステップS04’-6で安全状態管理部121が行った対象安全データの書き換えを終了させる操作が含まれる。
安全状態管理部121は、出力定義に応じた出力を対象安全データに反映させるため、安全データ制御部122に対して指示する。
ただし、安全制御部120は、本ステップで対象安全データの書き換え解除を行う前に、制御状態に非安全状態から安全状態への遷移が起きていないことを追加的に確認し、当該遷移が発生していない場合にのみ、安全データの書き換え解除を行うことが考えられる。なぜならば、安全入出力ユニット40が安全データを出力してから安全コントローラ20が当該安全データに基づく制御ロジックの実行結果を出力するまでの時間には通信パスが長いこと等による遅延がある。そのため、安全コントローラ20が非安全状態への遷移を示す安全データを出力した時点において、安全入出力ユニット40が出力したより新しい安全データが、安全状態への遷移を起こすべき内容に変わっている場合があり得るためである。ここで、当該場合に安全制御部120が対象安全データの書き換え解除を行うと、非安全状態への遷移が優先されて安全状態への遷移が行われず、安全応答時間が延びるリスクがある。
(ステップS09’-7)
安全データ制御部122は、制御データ中継部114による安全データ書き換え操作を変更する。安全データ制御部122は、ステップS04’-7で安全データ監視部132が実行した方法と同様に、安全データマッピング表194を参照して、対象の安全データのアドレスを特定する。
安全データ制御部122は、さらに、特定した対象安全データのアドレスを用いて対象安全データを操作する。この操作は、出力定義の内容によるが、ステップS04’-7で実施した対象安全データの書き換えを終了し、安全コントローラ20が出力する安全データが優先的に出力されるようにする操作である。この操作を実現する方法はどのような方法であってもよい。当該方法は、具体例として、ステップS04’-7で対象安全データがロックされていることを示すフラグを設けることにより安全データ制御部122による安全データの上書きを実現していた場合、当該フラグの値を元の値に復元する方法である。あるいは、ステップS04’-7で安全コントローラ20による出力が対象安全データに反映されないように対象安全データを別のバッファ領域に退避させる手段を実行していた場合、バッファ領域の状態を元の状態に復元する方法が考えられる。
(ステップS09’-8)
安全制御部120は、状態遷移検出部131の動作によって状態記憶部193が記憶している制御状態が変化していない場合、何も実施せず、ステップS10に遷移する。
安全制御システム80の動作は前述の通りである。本実施の形態の特徴であるステップS04’とステップS09’とがあることにより、安全データの入力から応答までの流れは下記の通りとなる。
ケース1:ゲートウェイ装置10に入力された安全データの値が、定常状態又は非定常状態を引き続き示しているケース
入力値の取得から出力までの流れは基本動作と変わらない。従って、本実施の形態に係る安全応答時間は基本動作に係る安全応答時間と変わらない。ここで、定常状態は安全データの値が安全状態を示す値であることであり、非定常状態は安全データの値が非安全状態を示す値であることである。
ケース2:ゲートウェイ装置10に入力された安全データの値が、定常状態から非定常状態に変化したケース
安全制御システム80は、変更されたステップS04’により、ステップS05からステップS08までのステップをスキップし、安全状態への遷移を引き起こすための安全データの安全入出力ユニット40への出力をステップS09から開始する。従って、本実施の形態に係る安全応答時間は、基本動作に係る安全応答時間と比較して改善される。
ケース3:ゲートウェイ装置10に入力された安全データの値が、非定常状態から定常状態に変化したケース
変更されたステップS09’により安全状態の解除が行われる。しかしながら、ステップの長さは基本動作におけるステップの長さと変わらないため、本実施の形態に係る安全応答時間は基本動作に係る安全応答時間と変わらない。
前述の3つのケースのうち、安全の確保のために重要であり、かつ、機能安全規格において性能の保証が求められる安全応答時間は、ケース2における最悪時間である。一方、ケース1及びケース3の安全応答時間については、生産性の向上につながることはあり得るものの、安全の確保にはつながらない。本実施の形態では、安全を確保するための安全応答時間を、ゲートウェイ装置10による比較的簡易な処理によって短縮することができる。
以下では、制御フェーズを実現するためのエンジニアリングツール30による設定について説明する。
本実施の形態では、出力定義情報191と、状態遷移表192と、状態記憶部193と、安全データマッピング表194とをゲートウェイ装置10に設定する必要がある。これらの具体的なデータは、実現すべき制御アプリケーションによって異なる。ユーザの手作業によってこれらを設定することも考えられるが、設定作業の工数削減のためエンジニアリングツールによってこれらをゲートウェイ装置10に設定することが現実的である。
エンジニアリングツール30を用いた設定作業であって、ユーザによるプログラミングに連動した設定作業の具体例を述べる。ここで、エンジニアリングツール30の構成要素のうち、一般的なエンジニアリングツールに対する本実施の形態の特徴的な部分は、ゲートウェイロジック生成部32と、ゲートウェイロジック設定部33とである。
プログラミング手段提供部31は、ユーザに対して、安全コントローラ20が実行すべきプログラムを作成する手段と、必要なパラメータを設定する手段とを提供する。
具体例として、プログラミング手段提供部31はあらかじめ汎用的に利用されるプログラムの構成要素をファンクションブロックとして提供し、ユーザは、提供されたファンクションブロックと、論理和(OR)と、積(AND)と、否定(NOT)と、排他的論理和(XOR)等の基本演算と、その他独自に作成したファンクションブロック等とを組み合わせることによって、必要な制御ロジックを構成するプログラムを作成してよい。また、プログラムは、手続き型プログラミング又はラダーロジックによるもの等、ファクトリーオートメーションの分野で利用されるプログラミングの方式及び言語に従うプログラムであってもよい。また、プログラミング手段提供部31は、安全プログラムを扱う構成要素であるため、典型的には機能安全のIEC 61508シリーズ等の安全規格に従って実現される必要がある。
ロジック生成部34は、プログラミング手段提供部31の結果に従って、安全コントローラ20に割り付けるべきロジック及びパラメータを生成する。ロジックは、プログラミングされた制御ロジックを実行するためのファイルである。ロジック及びパラメータは、安全制御システム80の誤動作につながるデータ破損を防ぐため、CRC等を用いて保護される。
ロジック設定部35は、ロジック生成部34が生成したロジック及びパラメータを、安全コントローラ20に送信する。安全コントローラ20は、受信したロジック及びパラメータを書き込む。送信の手段として、USB、LAN(Local Area Network)等による手段が挙げられるが、ロジック設定部35がロジック及びパラメータを安全コントローラ20に送信し、安全コントローラ20が受信したロジック及びパラメータを書き込む目的を達成することができれば、どのような手段であってもよい。
ゲートウェイロジック生成部32は、プログラミング手段提供部31によってエンジニアリングツール30に入力されたプログラム及びパラメータに基づき、下記のことを行う。ここでは、プログラムが汎用のファンクションブロックを組み合わせて実現されていることを想定して説明する。
<状態遷移表192の生成>
ゲートウェイロジック生成部32は、プログラミング手段提供部31において設定されたプログラムに基づいて状態遷移表192を作成する。図17は、図19に示す全体状態遷移表に対応する状態遷移表192の具体例を示している。ここで、「S_Estop」1から「デバイスC」の各欄は安全データの各項目を示している。状態遷移表192は、一般的なソフトウェア設計又はシステム設計等において用いられるプログラムの状態遷移表に相当する情報から、少なくとも下記の条件1及び条件2を状態遷移検出部131が判定することができるように情報を抜粋して構成したものである。
条件1:制御状態が管理対象非安全状態であること、及び、安全状態への遷移条件が満たされたこと
条件2:制御状態が安全状態から非安全状態に遷移したこと
図18は、状態遷移表192のうち条件1の判定を行うための部分を得るための処理の一例を示すフローチャートである。本図を参照して当該処理を説明する。
(ステップS101)
ゲートウェイロジック生成部32は、制御ロジックの全体状態遷移表を得る。全体状態遷移表は、状態遷移表192にとって不要な情報を削減していない状態遷移表であって、制御ロジック全体についての状態遷移表である。
図19は、図8に対応する全体状態遷移表の構成例を示している。ゲートウェイロジック生成部32が全体状態遷移表を得るための方法として、エンジニアリングツール30があらかじめ用意したファンクションブロックに対する状態遷移表であって設計段階において状態遷移表を作成し、作成した状態遷移表をエンジニアリングツール30の一部として提供する方法が考えられる。状態遷移表192は、少なくとも、現状態を表す識別情報と、現状態に対応する状態遷移が発生するために満たされるべき条件と、次状態との各々を示す情報を含む。当該条件は、満たされるべきデバイスの値と値の変化等を識別することができるように定義したものである。値の変化は、具体例として、立ち上がりにおける値の変化、立ち下がりにおける値の変化、又は、値の変化が閾値を上回ること若しくは下回ることである。また、本実施の形態に係る全体状態遷移表は、各現状態が安全状態に当たるか否かを示す安全状態フラグを含んでいなければならない。
なお、ゲートウェイロジック生成部32が全体状態遷移表を得る方法は、前述の方法に限定されない。具体例として、ゲートウェイロジック生成部32は、ユーザが生成したプログラムを解析することによって全体状態遷移表を得てもよく、プログラミング手段提供部31と各種の設計ツールと連動してプログラムの設計情報に基づいて全体状態遷移表を得てもよい。
(ステップS102)
ゲートウェイロジック生成部32は、非安全状態に当たる全ての行を全体状態遷移表から抽出する。ゲートウェイロジック生成部32は、「安全状態フラグ」の値を参照することにより非安全状態に当たる状態を抽出することができる。ゲートウェイロジック生成部32は、本ステップで抽出した行を保持する。
図20は、図19に示す例に対して本ステップの処理を実行した結果を示している。
(ステップS103)
ゲートウェイロジック生成部32は、ステップS102で抽出した行のうち、全体状態遷移表の他の少なくともいずれかの行に対応する重複行を抽出する。重複行は、行の「条件」のうち安全データの各値が他の行の「条件」のうち安全データの各値と重複する行である。ここで、ゲートウェイロジック生成部32は、2つの行の「条件」が完全に一致する場合に「条件」が重複するものと判断する。ゲートウェイロジック生成部32は、本ステップで抽出した行を一次リストとして保持する。
図20に示す例において、通番7の「条件」のうち安全データの各値であるS_Estop1からデバイスCまでの各値と、通番4及び5の各々の「条件」のうち安全データの各値とが重複する。よって、通番7に対応する行は重複行であるため、ゲートウェイロジック生成部32は通番7に対応する行を一次リストとして保持する。
(ステップS104)
ゲートウェイロジック生成部32がステップS103で重複行を抽出した場合、ゲートウェイロジック生成部32はステップS105に遷移する。それ以外の場合、ゲートウェイロジック生成部32はステップS108に遷移する。
(ステップS105)
ゲートウェイロジック生成部32は、一次リストに含まれている各行を一次リストから削除し、削除した各行が示す現状態を次状態とする行を全体状態遷移表から抽出する。ゲートウェイロジック生成部32は、本ステップで抽出した行を一次リストに加えて保持する。
ここで、前述のように一次リストに通番7に対応する行が含まれている場合を考える。このとき、通番7の現状態は状態4であり、状態4を次状態とする行は通番5及び6の各々に対応する行である。そのため、ゲートウェイロジック生成部32は通番5及び6の各々に対応する行を一次リストに加える。
(ステップS106)
ゲートウェイロジック生成部32は、ステップS105を実行した結果である一次リストに含まれている行のうち、「条件」のうち安全データの各値が、ステップS102で抽出した行の「条件」のうち安全データの各値とも、本フローチャートの処理を開始してからこれまでに一度でも一次リストに加えられた行の「条件」のうち安全データの各値とも重複しない行を一次リストから削除する。一次リストに残った行がある場合、ゲートウェイロジック生成部32はステップS105に戻る。ゲートウェイロジック生成部32は、一次リストに含まれている行が尽きるまで、ステップS105を繰り返す。
ここで、前述のように一次リストに通番5及び6の各々に対応する行が含まれている場合を考える。通番5に対応する行は、通番4に対応する行と「条件」のうち安全データの各値が重複するため、一次リストから取り除かれず、ステップS105の処理対象とされる。ここで、通番5の現状態は状態2であり、状態2を次状態とする行は通番3に対応する行のみである。よって、次にゲートウェイロジック生成部32がステップS105を実行した際に、通番3に対応する行が一次リストに加えられる。通番6に対応する行は、本ステップにおける比較対象である行のいずれとも「条件」のうち安全データの各値が重複しないので、一次リストから取り除かれる。
(ステップS107)
ゲートウェイロジック生成部32は、ステップS102で抽出した行と、ステップS103とステップS105とステップS106との少なくともいずれかで一度でも一次リストに加えられた行とを重複なく結合した状態遷移表を作成する。
図21は、図19に対応する状態遷移表であって、本ステップにおいて生成される状態遷移表の具体例を示している。
(ステップS108)
ゲートウェイロジック生成部32は、ステップS107で作成した状態遷移表から、他の行との差別化において不要な要素を削除する。なお、本ステップは必須ではないが、状態遷移表192のサイズを削減するためにゲートウェイロジック生成部32は本ステップを実施してもよい。
以上の処理により、ゲートウェイロジック生成部32は、状態遷移表192のうち条件1の判定を行うための部分を生成することができる。
同様に、状態遷移表192のうち条件2の判定を行うための部分は、ステップS101からステップS108までを下記の通り変更することにより生成することができる。
ステップS101では、制御ロジックの全体状態遷移表を、安全コントローラ20が出力する安全データの値に対して生成する。
ステップS102では、ゲートウェイロジック生成部32は、安全状態から非安全状態への遷移に当たる全ての行を全体状態遷移表から抽出する。
ステップS103からステップS108までについては、ゲートウェイロジック生成部32は、上記と同様のことを行って状態遷移表を得る。
<出力定義情報191の作成>
ゲートウェイロジック生成部32は、状態遷移表192と全体状態遷移表とに基づいて、出力定義情報191を生成する。
具体例として、まず、ゲートウェイロジック生成部32は、状態遷移表192が示す遷移のうち、安全状態への遷移が生じる遷移を抽出し、抽出した遷移に対応する状態遷移表192の「現状態」と「次状態」とを、それぞれ、出力定義情報191の「前状態」と「現状態」とする。なお、抽出した遷移が複数ある場合において、出力定義情報191の1行は1つの遷移に対応する。次に、ゲートウェイロジック生成部32は、全体状態遷移表を参照して抽出した遷移に対応する「出力値」の変化を求め、求めた変化を示す情報を出力定義情報191の「出力定義」に入力する。図14における「0->1」は、「前状態」における出力値が0であり、「現状態」における出力値が1であることを示している。なお、ゲートウェイ装置10が複数の制御アプリケーションを並列に実行する場合、いずれの制御アプリケーションに対応する出力定義情報191であるかを示す情報を出力定義情報191に設けてもよい。
<状態記憶部193の作成>
ゲートウェイロジック生成部32は、状態記憶部193を作成し、作成した状態記憶部193を初期化する。
ゲートウェイ装置10が複数の制御アプリケーションを並列に実行する場合において、ゲートウェイロジック生成部32は、各制御アプリケーションの状態を記憶する記憶領域である状態記憶部193を作成し、各制御アプリケーションの状態が各制御アプリケーションの開始直後の状態であるものとして状態記憶部193を初期化する。
<安全データマッピング表194の作成>
ゲートウェイロジック生成部32は、安全データの名称とメモリの特定情報とを対応づけることにより安全データマッピング表194を作成する。当該名称はラベルであってもよい。当該特定情報は、具体例としてアドレスである。当該名称と当該特定情報との対応付けは、プログラミング手段提供部31によってユーザによって設定され又は自動設定により生成され、ゲートウェイロジック生成部32は、当該対応付けを示す情報に基づいて安全データマッピング表194を生成する。なお、安全データマッピング表194の要素は、状態監視制御部130及び安全制御部120が安全データの所在を特定することができる要素であればよい。前述の安全データの名称の代わりにシンボル名を用い、また、特定情報としてデバイス番号を用いる等、安全データマッピング表194の要素は適宜変更されてもよい。
なお、前述の状態遷移表192と、出力定義情報191と、状態記憶部193と、安全データマッピング表194との4つの情報の説明では、非安全状態から安全状態への遷移の場合を中心に述べたが、安全状態から非安全状態への遷移についても、同様に4つへの情報を作成する必要がある。情報の生成方法は非安全状態から安全状態への遷移の場合と類似するが、下記が異なる。
ゲートウェイロジック生成部32は、状態遷移表192に、安全状態から非安全状態への遷移を表す全体状態遷移表の行を漏れなくかつ重複無く追加する。この際、ゲートウェイロジック生成部32は、安全コントローラ20から安全入出力ユニット40に向けた安全データに着目して条件を追加する。一意に識別することができない条件が含まれる場合、ゲートウェイロジック生成部32は、ステップS105と同じ考え方に基づき、当該条件を含む前状態の行を状態遷移表に追加し、新たに追加した前状態が他の行と区別することができるようになるまで前状態の追加を繰り返す。
ゲートウェイロジック生成部32は、安全状態から非安全状態への遷移に対応する出力定義情報191を追加する。「出力定義」は、ステップS09’-7で述べた安全データ書き換え操作の変更の方法を示すように作成する。図22は、安全状態から非安全状態への遷移についての出力定義情報191の具体例を示している。当該出力定義情報191の出力定義は、安全データの書き換えを終了することを指示する情報、即ち、安全コントローラ20の出力を優先するように切り替えることを指示する情報である。
***実施の形態1の効果の説明***
以上のように、本実施の形態によれば、安全入出力ユニット40と安全コントローラ20との間の通信を中継するゲートウェイ装置10であって、必要な処理量を削減したゲートウェイ装置10を用いることにより、安全応答時間を短縮した安全制御システム80を比較的安価に実現することができる。背景技術には内部状態を持つ制御ロジックを実行するゲートウェイ装置を実現することができないという課題があるが、本実施の形態によれば、内部状態を持つ制御ロジックを実行するゲートウェイ装置を少ない処理量で実現することができる。
安全応答時間の短縮は、安全状態への遷移をゲートウェイ装置10の判断により実施できることによって実現される。そのため、先行技術における安全応答時間には、安全入出力ユニット40から安全コントローラ20までの往復に関する伝送遅延と伝送乗り遅れ時間とが含まれるが、本実施の形態によれば、安全入出力ユニット40から安全コントローラ20までの途中に位置するゲートウェイ装置10から安全コントローラ20までの往復に関する伝送遅延と伝送乗り遅れ時間とが安全応答時間に含まれないように構成することができる。安全応答時間は安全状態への遷移に要する最悪時間であるので、本実施の形態によれば安全応答時間を短縮することができる。また、本実施の形態によれば、あたかも通信方式の変換によるオーバヘッドがないように振る舞うゲートウェイ装置10を構成することができる。
また、安全状態への遷移に関わる処理以外の処理をゲートウェイ装置10が実行せず、安全コントローラ20が判断するようにゲートウェイ装置10が安全状態への遷移を判断することにより、ゲートウェイ装置10の処理を削減することができる。そのため、安価なマイクロコンピュータ等のコンポーネントによって安全制御システム80を実現することができるほか、限られた計算リソースでより多くの安全コネクションを変換するゲートウェイ装置10を構成することができるため、安価に安全制御システム80を構成することができる。加えて、ゲートウェイ装置10を安全コントローラ20と安全入出力ユニット40との双方に対して透過的に振る舞うように構成することができるため、既存の安全コントローラ20と、安全入出力ユニット40とをそのまま利用することができることも、安全制御システム80を安価に実現できることに貢献する。
また、本実施の形態は、通信方式の変換を必要としない場合においても、同様の効果を有する。具体例として、安全制御システム80の構成が安全入出力ユニット40と安全コントローラ20との間の伝送遅延が大きい構成である場合において、安全入出力ユニット40から近い箇所等の伝送遅延が小さい箇所にゲートウェイ装置10を設置することにより、安全応答時間を短縮することができる。安全入出力ユニット40と安全コントローラ20との間の伝送遅延が大きいシステム構成は、具体例として、ルータ又はL3(Layer 3)スイッチ等で異なるネットワークセグメントを跨いだ通信が生じる構成、安全コントローラ20がクラウド等伝送遅延の大きい箇所に設置されている構成、又は、安全コントローラ20の処理の定時性が低いために最悪時間が大きい構成である。安全制御システム80の構成がこのような構成である場合において、ゲートウェイ装置10は、安全入出力ユニット40とも安全コントローラ20とも同じ通信方式で通信するように構成されればよい。
このような安全制御システム80を構成する場合に、ゲートウェイ装置10に対して制御ロジックに応じたゲートウェイロジックを設定することに関する手間が生じることが考えられる。しかしながら、エンジニアリングツール30の支援によって半自動的にゲートウェイロジックを生成すること及び設定することができるため、当該場合に係る手間を軽減することができる。
ここで、特許文献1に係る課題が生じる理由を述べる。特許文献1では判断結果の送信先を変えた変形例を認めていることから、安全コントローラの制御出力を待つことなく安全制御を行うことにより伝送遅延が生じることを回避することができるゲートウェイ装置を実現することが考えられる。しかし、特許文献1の開示範囲では、安全判断を簡易に行うことができる場合が限られるため、幅広い安全制御に対応するためには安全コントローラと同等の制御ロジックをもつゲートウェイが必要である。そのため、特許文献1の技術によってはゲートウェイ装置を安価に実現することができない。具体的には下記の通りである。
特許文献1では、安全判断手段は安全条件を満足するか否かを入力安全情報を用いた論理演算により簡単に判断することができると説明しているものの、詳細な判断手法を開示していない。しかし、多くの安全制御アプリケーションでは内部状態を伴って制御を行うため、入力安全情報を用いた演算のみでは安全判断を実行することができない。具体例として、入力安全情報が同じであったとしても、入力安全情報が生成されるまでにある手順を経ているか否かによって安全状態が異なることがある。非常停止ボタンと、両手操作系と、ミューティング等の制御が本例に該当する。
同様に、判断結果を安全状態から非安全状態に見直す場合についても、所定のリセット等の手順を経ているか否かを確認する必要があるものの、特許文献1が開示する技術では手順の確認等に対応することができない。
従って、先行技術を利用するだけではゲートウェイ装置での安全判断を適切に行うことができないため、安全コントローラと同程度の複雑度をもつ安全判断部をゲートウェイ装置に実現する手法と、ゲートウェイ装置の安全判断部を、安全判断部の複雑度を下げる代わりに本来不要な安全状態への遷移を引き起こし得るものとする手法とのいずれか等を追加的に採用せざるを得ない。ここで、ゲートウェイ装置を安全コントローラに比べて安価で実現することが一般的に期待される。さらに、ゲートウェイ装置は安全コントローラと安全入出力ユニットとの両方との通信を行わなければならない。そのため、前者を採用する場合、ゲートウェイ装置の処理に十分な余裕がなくなるリスクがある。後者を採用する場合、常に通常よりも安全な状態が保たれるために機能安全の観点において課題はないものの、安全制御システム80の可用性が低下するため実用的ではないという課題がある。しかしながら、本実施の形態によればこれらの課題が生じない。
***他の構成***
<変形例1>
図23は、本変形例に係るゲートウェイ装置10のハードウェア構成例を示している。
ゲートウェイ装置10は、プロセッサ11、プロセッサ11とメモリ12、プロセッサ11と不揮発メモリ16、あるいはプロセッサ11とメモリ12と不揮発メモリ16とに代えて、処理回路18を備える。
処理回路18は、ゲートウェイ装置10が備える各部の少なくとも一部を実現するハードウェアである。
処理回路18は、専用のハードウェアであってもよく、また、メモリ12に格納されるプログラムを実行するプロセッサであってもよい。
処理回路18が専用のハードウェアである場合、処理回路18は、具体例として、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ASIC(ASICはApplication Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)又はこれらの組み合わせである。
ゲートウェイ装置10は、処理回路18を代替する複数の処理回路を備えてもよい。複数の処理回路は、処理回路18の役割を分担する。
ゲートウェイ装置10において、一部の機能が専用のハードウェアによって実現されて、残りの機能がソフトウェア又はファームウェアによって実現されてもよい。
処理回路18は、具体例として、ハードウェア、ソフトウェア、ファームウェア、又はこれらの組み合わせにより実現される。
プロセッサ11とメモリ12と不揮発メモリ16と処理回路18とを、総称して「プロセッシングサーキットリー」という。つまり、ゲートウェイ装置10の各機能構成要素の機能は、プロセッシングサーキットリーにより実現される。
本明細書に記載されている他の装置についても本変形例と同様の構成であってもよい。
***他の実施の形態***
実施の形態1について説明したが、本実施の形態のうち、複数の部分を組み合わせて実施しても構わない。あるいは、本実施の形態を部分的に実施しても構わない。その他、本実施の形態は、必要に応じて種々の変更がなされても構わず、全体としてあるいは部分的に、どのように組み合わせて実施されても構わない。
なお、前述した実施の形態は、本質的に好ましい例示であって、本開示と、その適用物と、用途の範囲とを制限することを意図するものではない。フローチャート等を用いて説明した手順は、適宜変更されてもよい。
10 ゲートウェイ装置、11 プロセッサ、12 メモリ、13 第1ポート、14 第2ポート、15 バス、16 不揮発メモリ、17 設定ポート、18 処理回路、111 第1通信ポート、112 第2通信ポート、113 第1通信制御部、114 制御データ中継部、115 第2通信制御部、120 安全制御部、121 安全状態管理部、122 安全データ制御部、130 状態監視制御部、131 状態遷移検出部、132 安全データ監視部、191 出力定義情報、192 状態遷移表、193 状態記憶部、194 安全データマッピング表、20 安全コントローラ、21 プロセッサ、22 メモリ、23 設定ポート、24 第1ポート、25 バス、26 不揮発メモリ、30 エンジニアリングツール、31 プログラミング手段提供部、32 ゲートウェイロジック生成部、33 ゲートウェイロジック設定部、34 ロジック生成部、35 ロジック設定部、40 安全入出力ユニット、41 プロセッサ、42 メモリ、43 IOポート、44 第2ポート、45 バス、46 不揮発メモリ、50 設定端末、51 プロセッサ、52 メモリ、53 設定ポート、55 バス、56 不揮発メモリ、80 安全制御システム、90 一般通信パケット、91 一般通信ヘッダ、92 一般通信ペイロード、93 一般通信FCS、920 安全通信パケット、921 安全通信ヘッダ、922 安全通信ペイロード、923 安全入出力データ、924 安全通信FCS、N1,N2 ネットワーク、P1,P2 安全通信パケット。

Claims (10)

  1. 安全制御システムが備える安全入出力ユニットと前記安全入出力ユニットを制御する安全コントローラとの間における安全データの通信を中継することにより前記安全入出力ユニットと前記安全コントローラとの安全コネクションを確立するゲートウェイ装置であって、
    前記安全制御システムの状態に対応する状態であって、安全状態と非安全状態とのいずれかの状態である制御状態を管理し、かつ、前記ゲートウェイ装置が前記安全入出力ユニットから受信した安全データを、前記制御状態についての状態遷移を示す状態遷移情報に適用することにより前記制御状態の状態遷移を制御する状態監視制御部と、
    前記制御状態が前記非安全状態から前記安全状態に遷移した場合に、前記安全入出力ユニットに送信する安全データであって、前記安全状態を示す安全データを生成する安全制御部と
    を備えるゲートウェイ装置。
  2. 前記安全制御部は、前記制御状態が前記非安全状態から前記安全状態に遷移した場合に、前記安全コネクションを切断する制御を実行する請求項1に記載のゲートウェイ装置。
  3. 前記状態監視制御部は、前記ゲートウェイ装置が前記安全コントローラから受信した安全データを前記状態遷移情報に適用することにより前記制御状態の状態遷移を制御し、
    前記安全制御部は、前記安全コネクションが切断されている場合において、前記制御状態が前記安全状態から前記非安全状態に遷移した場合に前記安全コネクションの切断を解除する請求項2に記載のゲートウェイ装置。
  4. 前記安全制御部は、前記安全コネクションを切断する制御として、前記安全状態を示す安全データとなるよう、前記ゲートウェイ装置が前記安全コントローラから受信した安全データを書き換える制御を実行する請求項2又は3に記載のゲートウェイ装置。
  5. 前記状態監視制御部は、前記安全コネクションが切断されている場合において、前記安全コネクションを切断する契機となった安全データよりも古い安全データに基づいて制御を実施した結果を示す安全データであって、前記ゲートウェイ装置が前記安全コントローラから受信した安全データを用いずに前記制御状態の状態遷移を制御する請求項2から4のいずれか1項に記載のゲートウェイ装置。
  6. 前記状態監視制御部は、前記安全コントローラが用いる制御ロジックの少なくとも一部である部分制御ロジックを用い、
    前記状態遷移情報は、前記部分制御ロジックの少なくとも一部を示す情報である請求項1から5のいずれか1項に記載のゲートウェイ装置。
  7. 前記状態遷移情報は、前記ゲートウェイ装置と通信することができるエンジニアリングツールを用いて設定された情報である請求項1から6のいずれか1項に記載のゲートウェイ装置。
  8. 前記安全入出力ユニットが採用する通信方式は、前記安全コントローラが採用する通信方式と異なる請求項1から7のいずれか1項に記載のゲートウェイ装置。
  9. 安全制御システムが備える安全入出力ユニットと前記安全入出力ユニットを制御する安全コントローラとの間における安全データの通信を中継することにより前記安全入出力ユニットと前記安全コントローラとの安全コネクションを確立するゲートウェイ装置を制御するゲートウェイ制御方法であって、
    前記安全制御システムの状態に対応する状態であって、安全状態と非安全状態とのいずれかの状態である制御状態を管理し、かつ、前記ゲートウェイ装置が前記安全入出力ユニットから受信した安全データを、前記制御状態についての状態遷移を示す状態遷移情報に適用することにより前記制御状態の状態遷移を制御し、
    前記制御状態が前記非安全状態から前記安全状態に遷移した場合に、前記安全入出力ユニットに送信する安全データであって、前記安全状態を示す安全データを生成するゲートウェイ制御方法。
  10. 安全制御システムが備える安全入出力ユニットと前記安全入出力ユニットを制御する安全コントローラとの間における安全データの通信を中継することにより前記安全入出力ユニットと前記安全コントローラとの安全コネクションを確立するコンピュータであるゲートウェイ装置を制御するゲートウェイ制御プログラムであって、
    前記安全制御システムの状態に対応する状態であって、安全状態と非安全状態とのいずれかの状態である制御状態を管理し、かつ、前記ゲートウェイ装置が前記安全入出力ユニットから受信した安全データを、前記制御状態についての状態遷移を示す状態遷移情報に適用することにより前記制御状態の状態遷移を制御する状態監視制御処理と、
    前記制御状態が前記非安全状態から前記安全状態に遷移した場合に、前記安全入出力ユニットに送信する安全データであって、前記安全状態を示す安全データを生成する安全制御処理と
    を前記ゲートウェイ装置に実行させるゲートウェイ制御プログラム。
JP2023519900A 2021-05-11 2021-05-11 ゲートウェイ装置、ゲートウェイ制御方法、及び、ゲートウェイ制御プログラム Active JP7292558B1 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2021/017904 WO2022239116A1 (ja) 2021-05-11 2021-05-11 ゲートウェイ装置、ゲートウェイ制御方法、及び、ゲートウェイ制御プログラム

Publications (2)

Publication Number Publication Date
JPWO2022239116A1 JPWO2022239116A1 (ja) 2022-11-17
JP7292558B1 true JP7292558B1 (ja) 2023-06-16

Family

ID=84028930

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2023519900A Active JP7292558B1 (ja) 2021-05-11 2021-05-11 ゲートウェイ装置、ゲートウェイ制御方法、及び、ゲートウェイ制御プログラム

Country Status (5)

Country Link
US (1) US20230418254A1 (ja)
JP (1) JP7292558B1 (ja)
DE (1) DE112021007224T5 (ja)
TW (1) TW202244642A (ja)
WO (1) WO2022239116A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11609543B2 (en) * 2020-10-21 2023-03-21 Ring Bus Americas LLC Safety network controller redundancy in an electronic safety system
WO2024209501A1 (ja) * 2023-04-03 2024-10-10 三菱電機株式会社 ゲートウェイ装置、中継方法及び中継プログラム

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003001306A1 (fr) * 2001-06-22 2003-01-03 Omron Corporation Systeme de reseau securise, esclave securise et controleur securise
JP2008507929A (ja) * 2004-07-23 2008-03-13 サイトリックス システムズ, インコーポレイテッド プライベートネットワークへの遠隔アクセスを安全にする方法およびシステム
WO2014041829A1 (ja) * 2012-09-11 2014-03-20 三菱電機株式会社 安全演算装置、安全入力装置、安全出力装置および安全コントローラ
JP2015100356A (ja) * 2013-11-22 2015-06-04 生禾禾科技實業有限公司 クラウド監視制御装置
CN106911673A (zh) * 2017-01-23 2017-06-30 全球能源互联网研究院 一种电力广域互联网安全协同防护系统及其防护方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003001306A1 (fr) * 2001-06-22 2003-01-03 Omron Corporation Systeme de reseau securise, esclave securise et controleur securise
JP2008507929A (ja) * 2004-07-23 2008-03-13 サイトリックス システムズ, インコーポレイテッド プライベートネットワークへの遠隔アクセスを安全にする方法およびシステム
WO2014041829A1 (ja) * 2012-09-11 2014-03-20 三菱電機株式会社 安全演算装置、安全入力装置、安全出力装置および安全コントローラ
JP2015100356A (ja) * 2013-11-22 2015-06-04 生禾禾科技實業有限公司 クラウド監視制御装置
CN106911673A (zh) * 2017-01-23 2017-06-30 全球能源互联网研究院 一种电力广域互联网安全协同防护系统及其防护方法

Also Published As

Publication number Publication date
WO2022239116A1 (ja) 2022-11-17
DE112021007224T5 (de) 2024-01-18
TW202244642A (zh) 2022-11-16
JPWO2022239116A1 (ja) 2022-11-17
US20230418254A1 (en) 2023-12-28

Similar Documents

Publication Publication Date Title
US20230418254A1 (en) Gateway device, gateway control method, and non-transitory computer readable medium
US8335573B2 (en) Safety-oriented control system
US9665072B2 (en) Method for determining a safety step and safety manager
CN103152327B (zh) 一种配置压缩/解压缩插件的方法、客户端及系统
CN104956273A (zh) 控制装置及控制装置的动作方法
JP3829020B2 (ja) 電力系統保護制御システム、電力系統保護制御システムの制御方法およびプログラムモジュールを記憶した記憶媒体
EP2927759A2 (en) Programmable logic controller and programming tool for programmable logic controller
US10645112B2 (en) Method and device for processing and transmitting data within a functionally secure, electrical, electronic and/or programmable electronic system
JP2019508811A (ja) 安全システムの安全チェーン内でデータ処理およびデータ送信を監視するための方法およびデバイス
CN110309649B (zh) 支持装置、非易失性的计算机可读记录介质以及设定方法
ES2904855T3 (es) Método y aparato de sincronización de datos
KR102438292B1 (ko) 안전 통신 장치, 안전 통신 시스템, 안전 통신 방법, 및, 기록 매체에 저장된 안전 통신 프로그램
KR20160090485A (ko) 소프트웨어 정의 네트워크에서 분산 컨트롤러를 운용하는 방법 및 장치
JPWO2015037116A1 (ja) 制御装置および制御システム
CN108427894B (zh) 一种数据通信方法及装置
JP6516923B2 (ja) ホワイトリスト生成器、ホワイトリスト評価器およびホワイトリスト生成・評価器、並びにホワイトリスト生成方法、ホワイトリスト評価方法およびホワイトリスト生成・評価方法
JP4812546B2 (ja) 送信装置,受信装置及び通信システム
WO2024209501A1 (ja) ゲートウェイ装置、中継方法及び中継プログラム
JP6388674B2 (ja) 光パワー低減保護方法及び装置、コンピュータ記憶媒体
KR20150122188A (ko) 시퀀서 시스템 및 어드레스 설정 방법
CN116737445B (zh) 一种利用伪容器实现资源隔离的控制方法
US20240007233A1 (en) Edge Device and Method for Providing Redundancy Functions on the Edge Device
JP6546008B2 (ja) 保護リレー装置
US11757799B2 (en) Line monitor device and network switch
CN111756748B (zh) 一种数据交互方法、装置、电子设备和存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230330

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20230330

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230606

R150 Certificate of patent or registration of utility model

Ref document number: 7292558

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150