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

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

Info

Publication number
JP6971016B2
JP6971016B2 JP2016077606A JP2016077606A JP6971016B2 JP 6971016 B2 JP6971016 B2 JP 6971016B2 JP 2016077606 A JP2016077606 A JP 2016077606A JP 2016077606 A JP2016077606 A JP 2016077606A JP 6971016 B2 JP6971016 B2 JP 6971016B2
Authority
JP
Japan
Prior art keywords
time
shutdown
real
general
control 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
JP2016077606A
Other languages
English (en)
Other versions
JP2017187992A (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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=58672286&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=JP6971016(B2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Omron Corp filed Critical Omron Corp
Priority to JP2016077606A priority Critical patent/JP6971016B2/ja
Priority to EP17163788.7A priority patent/EP3229137B1/en
Priority to US15/473,640 priority patent/US10102045B2/en
Priority to CN201710211143.0A priority patent/CN107273180A/zh
Publication of JP2017187992A publication Critical patent/JP2017187992A/ja
Application granted granted Critical
Publication of JP6971016B2 publication Critical patent/JP6971016B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/442Shutdown

Description

本技術は、共通のハードウェアリソースを用いて複数のOSが実行される制御装置、制御方法およびプログラムに関する。
近年のICT(Information and Communication Technology)の進歩に伴って、汎用的なコンピューティングデバイスについても信頼性が高まってきている。設備または機械を制御するためのFA(Factory Automation)関連装置においても、このような汎用的なコンピューティングデバイスの導入が進められている。このような汎用的なコンピューティングデバイスを採用する場合であっても、設備または機械に係る処理については、信頼性の高いソフトウェアを採用することが好ましい。一方で、ユーザ操作に係る処理などについては、汎用的なソフトウェアを採用することで、操作性などを高めることができる。
そこで、信頼性の高いオペレーティングシステム(Operating System:以下「OS」とも略称する。)および汎用性の高い汎用OSの2つを用いたシステムが提案されている。
例えば、特開2005−275818号公報(特許文献1)は、通信手段にて接続された2つのシステムからなる電子機器装置を開示する。また、特開2005−004381号公報(特許文献2)は、マスタCPUブロックとスレーブCPUブロックとを含むマルチCPU装置を開示する。
特許文献1および特許文献2にそれぞれ開示される構成においては、通常時には、2つの装置が並列的に実行され、異常時には、2つの装置がいずれも停止されることになる。このような装置を停止する観点について、特許文献1は、一方のシステムのみに配置された異常検出部が他のシステムに対してシャットダウン命令を出力する構成を開示する。特許文献2は、元電源からの給電が停止したときに、リアルタイムOSが汎用OSをシャットダウンする構成を開示する。
また、電源供給が停止したときのシャットダウン処理に関して、特開平11−134073号公報(特許文献3)は、無停電電源装置から電力供給を受ける複数のサーバに対するOSシャットダウンの方法を開示する。
特開2005−275818号公報 特開2005−004381号公報 特開平11−134073号公報
ICTの進歩に伴って、コンピューティングデバイスの処理速度が向上し、共通のハードウェアリソースを用いて、互いに独立したOS環境を実現するとともに、各OS環境においてそれぞれ異なったアプリケーションを実行するような、いわゆる仮想化技術などが発展しつつある。このような仮想化技術を採用することで、装置コストを低廉化できる可能性がある。
上述の特許文献1〜3は、互いに独立した複数の装置(CPU)が並列実行される際のシャットダウンなどに関する技術を開示するにすぎず、仮想化技術については何ら検討されていない。
仮想化技術を採用した制御装置に対して安全にシャットダウンできる構成が要望されている。
本技術のある局面に従う設備または機械を制御する制御装置は、1または複数のプロセッサと、1または複数のプロセッサ上で並列的に実行される、汎用オペレーティングシステム(OS)と、設備または機械の制御を実現するためのユーザプログラムの実行環境を提供するリアルタイムOSと、外部からの遮断事象を受信する入力インターフェイスとを含む。リアルタイムOSは、遮断事象に応答して、リアルタイムOSのシャットダウンに必要なシャットダウン準備処理を実行する機能と、シャットダウン準備処理の実行後に、汎用OSに対してシャットダウンを指示する機能と、汎用OSからのシャットダウン完了の通知の受信を含む、予め定められた条件が満たされると、リアルタイムOSのシャットダウンを完了して制御装置の電源を遮断する機能とを含む。
好ましくは、リアルタイムOSは、汎用OSに対してシャットダウンを指示してから予め定められた期間が経過すると、汎用OSからのシャットダウン完了の通知を受信しなくとも、制御装置の電源を遮断する。
好ましくは、入力インターフェイスは、制御装置に電源を供給する無停電電源装置が、当該無停電電源装置へ供給される外部電源が喪失したときに発する遮断事象を受信するように構成されている。リアルタイムOSは、リアルタイムOSのシャットダウンが完了したことを無停電電源装置へ通知する機能をさらに含む。
好ましくは、リアルタイムOSは、ユーザプログラムに対して、遮断事象を受信したか否かを示す情報を参照可能にする機能をさらに含む。
好ましくは、リアルタイムOSは、遮断事象を受信した後、ユーザプログラムからの所定の通知を受信したことを含む、予め定められた条件が満たされると、シャットダウン準備処理を実行する。
好ましくは、リアルタイムOSは、ユーザプログラムに対してシャットダウンを指示してから予め定められた期間が経過すると、シャットダウン準備処理を開始する。
本技術の別の局面に従う設備または機械を制御する制御装置での制御方法は、1または複数のプロセッサ上で、汎用オペレーティングシステム(OS)と、設備または機械の制御を実現するためのユーザプログラムの実行環境を提供するリアルタイムOSとを並列的に実行するステップと、リアルタイムOSが、入力インターフェイスを介して受信した遮断事象に応答して、リアルタイムOSのシャットダウンに必要なシャットダウン準備処理を実行するステップと、リアルタイムOSが、シャットダウン準備処理の実行後に、汎用OSに対してシャットダウンを指示するステップと、リアルタイムOSが、汎用OSからのシャットダウン完了の通知の受信を含む、予め定められた条件が満たされると、リアルタイムOSのシャットダウンを完了して制御装置の電源を遮断するステップとを含む。
本技術のさらに別の局面に従えば、予め用意されたユーザプログラムに従って設備または機械を制御するための環境を構築するリアルタイムオペレーティングシステム(OS)を含むプログラムが提供される。リアルタイムOSは、汎用OSとともに1または複数のプロセッサ上で並列的に実行される。プログラムはコンピュータに、入力インターフェイスを介して受信した遮断事象に応答して、リアルタイムOSのシャットダウンに必要なシャットダウン準備処理を実行するステップと、シャットダウン準備処理の実行後に、汎用OSに対してシャットダウンを指示するステップと、汎用OSからのシャットダウン完了の通知の受信を含む、予め定められた条件が満たされると、リアルタイムOSのシャットダウンを完了して電源を遮断するステップとを実行させる。
本技術に従えば、仮想化技術を採用した制御装置に対してより安全にシャットダウンを行なうことができる。
本実施の形態に従う制御装置の概要を示す模式図である。 本実施の形態に従う制御システムの装置構成の一例を示す模式図である。 本実施の形態に従う制御装置のハードウェア構成の一例を示す模式図である。 本実施の形態に従う制御装置のソフトウェア構成の一例を示す模式図である。 本実施に従う制御装置におけるシャットダウン処理の処理手順を示すシーケンス図である。 本実施に従う制御装置におけるシャットダウン処理を考慮したユーザプログラムの一例を示す図である。 本実施に従う制御装置におけるシャットダウン処理の別の処理手順を示すシーケンス図である。 本実施に従う制御装置におけるシャットダウン処理のさらに別の処理手順を示すシーケンス図である。 本実施の形態に従う制御装置のリアルタイムOSで実行される処理手順を示すフローチャートである。 本実施に従う制御装置においてリアルタイムOSが起動中にシャットダウン処理へ移行する場合の処理手順を示すシーケンス図である。 本実施に従う制御装置において汎用OSが起動中にシャットダウン処理へ移行する場合の処理手順を示すシーケンス図である。
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
<A.概要>
まず、本実施の形態に従う制御装置100の概要について説明する。図1は、本実施の形態に従う制御装置100の概要を示す模式図である。
図1を参照して、制御装置100においては、設備または機械の制御を実現するためのユーザプログラムの実行環境を提供するリアルタイムOSと、汎用OSとが、1または複数のプロセッサを含む共通のハードウェアリソース上で並列的に実行される。制御装置100は、外部からの遮断事象を受信するインターフェイスを有している。
本明細書において、「遮断事象」は、制御装置100がシャットダウンまたは電源遮断する処理を開始するトリガとなる任意の事象を意味し、典型的には、後述するような、無停電電源装置200からのイベントや、ユーザによる電源ボタンの操作などを含み得る。
図1に示すリアルタイムOSおよび汎用OSは、ハイパーバイザなどを利用した仮想環境下で実行される。リアルタイムOSは、信頼性の高いOSであり、設備または機械を安定的に制御できる。これに対して、汎用OSは、リアルタイムOSに比較して信頼性の面では劣るが、汎用性が高いので、様々な汎用アプリケーションまたはユーザアプリケーションを実行させることができる。そのため、高度な情報処理を要求するシステムの構築をより低コストおよび短時間に行なうことができる。また、ネットワークを介して外部装置との接続も容易である。
何らか理由によって遮断事象が発生した場合には、両OSとも安全にシャットダウンする必要がある。そこで、本実施の形態においては、リアルタイムOSが主導権をとって、汎用OSをシャットダウンするとともに、自身もシャットダウンする。なお、一般的には、リアルタイムOSが扱うデータの方が、汎用OSが扱うデータに比較して優先度が高いので、リアルタイムOSが主導的な役割を果たすことで、より優先度の高いデータについても確実に保護できる。
シャットダウンの具体的な手順としては、遮断事象に応答して、リアルタイムOSは、リアルタイムOSのシャットダウンに必要なシャットダウン準備処理を実行する。続いて、リアルタイムOSは、シャットダウン準備処理の実行後に、汎用OSに対してシャットダウンを指示する。そして、汎用OSからのシャットダウン完了の通知の受信を含む、予め定められた条件が満たされると、リアルタイムOS自身のシャットダウンを完了して制御装置100の電源を遮断する。このような手順を経ることで、リアルタイムOSおよび汎用OSの両方を安全かつ確実にシャットダウンできる。
<B.制御システムの装置構成>
次に、本実施の形態に従う制御システムのより詳細な装置構成の一例について説明する。図2は、本実施の形態に従う制御システム1の装置構成の一例を示す模式図である。図2を参照して、制御システム1は、設備または機械を制御するための制御装置100と、制御装置100に対して電源を供給する無停電電源装置200とを含む。
制御装置100は、設備または機械を制御するためのユーザプログラムを実行する。このような設備または機械を制御するために、制御装置100は、フィールドネットワークなどを介してフィールド情報を遣り取りするとともに、上位ネットワーク上にあるサーバ装置などとの間でデータを遣り取りすることもできる。このような制御処理は、制御装置100で実行されるリアルタイムOSにて実現される。制御装置100では、リアルタイムOSに加えて、汎用OSも実行されており、任意の汎用アプリケーションを動作させることができる。
無停電電源装置(UPS:Uninterruptible Power Supply)200は、電力変換装置および蓄電装置などを含んでおり、外部電源(一次電源)202から供給される外部電力の一部を、そのまま、または、所定の交流電力または直流電力に変換して、二次電力として制御装置100へ供給するとともに、残りを蓄電装置に蓄える。何らかの要因により外部電源からの電力供給が停止すると、蓄電装置に蓄えていた電力を用いて制御装置100への二次電力の供給を継続する。但し、無停電電源装置200に内蔵する蓄電装置が蓄えることのできる電力は限られているので、外部電源からの電力供給が停止した場合には、無停電電源装置200は制御装置100に対して、外部電源が停止していること、および/または、所定時間経過後に二次電力の供給が停止すること、を通知する。
次に、本実施の形態に従う制御装置100のハードウェア構成の一例について説明する。図3は、本実施の形態に従う制御装置100のハードウェア構成の一例を示す模式図である。図3に示す制御装置100は、基本的には、汎用アーキテクチャに従うコンピューティングエレメントによって構成されており、汎用のパーソナルコンピュータに類似したハードウェア構成を有している。
図3を参照して、制御装置100は、プロセッサ102と、システムコントローラ104と、ビデオコントローラ106と、RAM(Random Access Memory)108と、HDD(Hard Disk Drive)110と、ネットワークインターフェイス(Interface:以下「I/F」とも記す。)122と、入出力インターフェイス124と、ローカル通信インターフェイス126と、電源ボタン128と、電源部130と、メモリカードインターフェイス132とを含む。制御装置100では、共通のハードウェアリソースを用いて、複数のOSが互いに独立して実行可能な仮想化環境が実現される。
プロセッサ102は、各種プログラムを実行する算術論理演算装置であり、典型的には、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、GPU(Graphics Processing Unit)などを含み得る。プロセッサ102は複数個が実装されていてもよく、あるいは、単一のプロセッサ102内に複数の演算コアが実装されていてもよい。すなわち、いわゆるマルチプロセッサであってもよいし、マルチコアであってもよい。
システムコントローラ104は、プロセッサ102と周辺装置との間の内部コマンドやデータの遣り取りなどを制御および仲介する回路であり、典型的には、LSI(Large Scale Integration)などによって実装される。
ビデオコントローラ106は、ディスプレイなどに接続され、制御装置100により提供される演算結果などを視覚的に出力する。
RAM108は、プロセッサ102においてプログラムを実行するために必要なワークデータや外部との遣り取りによって取得されたデータなどを一時的に格納する。RAM108は、典型的には、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)といった揮発性記憶装置によって実装される。
HDD110は、プロセッサ102によって実行されるプログラムやプロセッサ102によるプログラムの実行により生成されたデータを不揮発的に格納するストレージデバイスである。HDD110に代えて、あるいは、それに加えて、SSD(Solid State Drive)や光学ディスクなどのストレージデバイスを用いるようにしてもよい。図3には、説明の便宜上、単一のストレージデバイスとしてHDD110を描くが、格納するデータに応じて、複数のストレージデバイスを組み合わせてもよい。例えば、リアルタイムOS114および汎用OS116を格納するためのストレージデバイス(例えば、HDD)を個別に用意してもよい。このような構成を採用することで、例えば、汎用OS116を格納するストレージデバイスに故障が発生しても、リアルタイムOS114では、制御を継続できる。
HDD110には、典型的には、ハイパーバイザ112と、リアルタイムOS(Operating System)114と、汎用OS116と、ユーザプログラム118と、汎用アプリケーション120とが格納される。
ハイパーバイザ112は、後述するように、共通のハードウェアリソースを用いて、複数のOSを互いに独立して実行するためのマネージングプログラムである。ハイパーバイザ112は、リアルタイムOS114および汎用OS116に割当てるハードウェアリソースを管理する。ハイパーバイザ112は、各OSに対して仮想的なハードウェアリソースを提供することになり、各OSから見ると、通常のハードウェアリソースを利用しているのと同様の処理を実行することができる。
リアルタイムOS114は、制御装置100のハードウェアリソースを用いて実行され、設備または機械を制御するためのユーザプログラムの実行環境を提供するプログラムであり、スケジューラを用いて必要なプロセスの実行周期を管理することで、従前のPLC(Programmable Logic Controller)と同様の機能を実現する。すなわち、本明細書において、「リアルタイムOS」は、ユーザプログラムを指定された周期で実行可能な環境を実現するプログラムを意味し、制御装置としてのユーザプログラム(実行形式)を実行するために必要な各種ライブラリや関数などを提供するプログラム全体を意味する。
汎用OS116は、制御装置100のハードウェアリソースを用いて実行され、リアルタイムOS114とは独立して動作する。汎用OS116は、一般的なパーソナルコンピュータなどで実行されるOSであり、例えば、Windows(登録商標)、Mac OS(登録商標)、UNIX(登録商標)、LINUX(登録商標)、Android(登録商標)、MS−DOS(登録商標)、その他UNIX派生の任意のOSなどが挙げられる。
ユーザプログラム118は、リアルタイムOS114で実行される任意の制御プログラムである。ユーザプログラム118は、リアルタイムOSがインタプリタの機能を提供する場合には、ソースコードまたは中間コードの形で格納されていてもよいし、あるいは、オブジェクト形式などの実行可能な状態で格納されていてもよい。
汎用アプリケーション120は、汎用OS116上で実行される任意のアプリケーションであり、汎用OS116の一部として組込まれているもの、市販されている任意のアプリケーション、ユーザが作成した独自アプリケーションなどを含み得る。
ネットワークインターフェイス122は、他の装置との間でデータを遣り取りするためのインターフェイスであり、例えば、上位コンピュータまたは上位ネットワークに接続するためのポート、フィールドネットワークまたはフィールドバスを介して各種フィールド装置に接続するためのポート、他の制御装置との間でデータを遣り取りするためのポートなどを含み得る。ネットワークインターフェイス122は、任意の規格に従うデバイスを用いることができ、例えば、Ethernet(登録商標)、EtherCAT(登録商標)などの有線方式、あるいは、無線LAN(Local Area Network)、Bluetooth(登録商標)などの無線方式のいずれであってもよい。ネットワークインターフェイス122は、リアルタイムOS114および汎用OS116のいずれもが利用可能になっており、それぞれOSがネットワークインターフェイス122を介して他の装置との間でデータを遣り取りすることができる。
入出力インターフェイス124は、PLCに装着される入出力ユニットに相当するものであり、フィールド機器との間で、フィールド信号(デジタル入出力信号、アナログ入出力信号、パルス信号など)を遣り取りする。
ローカル通信インターフェイス126は、外部からの遮断事象を受信する入力インターフェイスに相当し、任意の通信インターフェイスを包含する。典型的には、ローカル通信インターフェイス126は、USB(Universal Serial Bus)、パラレル通信、RS−232Cなどのシリアル通信などを含み、図2に示す無停電電源装置200やプリンタなどの周辺装置との間でデータを遣り取りする。すなわち、ローカル通信インターフェイス126は、制御装置100に電源を供給する無停電電源装置200が、無停電電源装置200へ供給される外部電源が喪失したときに発する遮断事象を受信する。
なお、遮断事象を示す信号は、入出力インターフェイス124を介して受信するようにしてもよいし、入出力インターフェイス124およびローカル通信インターフェイス126の両方を使用するようにしてもよい。
電源ボタン128は、ユーザ操作に応じて、制御装置100の電源オン/オフを制御するための指令を発生する。
電源部130は、無停電電源装置200から供給される電力を所定の電圧に変換して各部へ供給する。電源部130は、典型的には、スイッチングレギュレータなどを含む。
メモリカードインターフェイス132は、メモリカード134(例えば、SDカードなど)に対してデータの書込み/読出しを行なう。
<C.制御装置のソフトウェア構成>
次に、制御装置100のソフトウェア構成の一例について説明する。図4は、本実施の形態に従う制御装置100のソフトウェア構成の一例を示す模式図である。
図4を参照して、制御装置100においては、ハイパーバイザ112が制御装置100のハードウェアリソースを管理するとともに、リアルタイムOS114および汎用OS116に対して、これらのハードウェアリソースを調停しながら割当てることで、共通のハードウェアリソース上で、互いに独立したリアルタイムOS114および汎用OS116を実行させる。すなわち、ハイパーバイザ112を用いて、複数の異なるOSを実行する仮想化環境を実現する。リアルタイムOS114と汎用OS116との間は、ハイパーバイザ112を介して、論理的なネットワークが構成されている。
リアルタイムOS114では、ユーザプログラム118が実行される。ユーザプログラム118の実行にあたって、タスクスケジューラ1142と、モーション制御プロセス1144と、I/O(Input/Output)制御プロセス1146とが連係する。ユーザプログラム118は、設備または機械を制御するための制御プログラムであり、制御対象の設備または機械に応じて任意に作成される。典型的には、ユーザプログラム118は、シーケンス制御およびモーション制御の命令を含む。ユーザプログラム118は、任意の言語で作成することができ、例えば、ラダープログラム、ST言語、C言語、ファンクションブロック命令などを用いることができる。典型的には、ユーザプログラム118は予め実行形式に変換されており、この実行形式のコードが、タスクスケジューラ1142、モーション制御プロセス1144、I/O制御プロセス1146と連係しつつ、制御対象からの信号の取得、制御ロジックの実行、実行結果の反映(アクチュエータの制御)を繰返す。
タスクスケジューラ1142は、ユーザプログラム118に含まれるタスク毎に、実行周期または実行タイミングを制御する。モーション制御プロセス1144は、モーション制御に必要な各種の数値演算(浮動小数点演算など)を実行する。I/O制御プロセス1146は、制御対象との間で各種信号を遣り取りする処理を司る。
汎用OS116では、任意のユーザアプリケーション1164および汎用アプリケーション1162が実行される。
ユーザアプリケーション1164は、典型的には、リアルタイムOS114で実行されるユーザプログラム118の開発ベンダなどによって作成されるアプリケーションであり、ユーザプログラム118の処理結果に係るデータおよび/または処理に必要なデータを取得および/または提供するような処理を実行する。例えば、ユーザプログラム118は、上位サーバ装置が有するデータベースへアクセスして、ユーザプログラム118での処理に関するデータを遣り取りする、あるいは、制御装置100のオペレータなどに対して、制御装置100に対する操作に関するユーザインターフェイス画面を提供する。
汎用アプリケーション1162は、汎用OS116で実行可能な標準的なアプリケーションであり、ユーザアプリケーション1164と連係することで、汎用的な処理や機能を用いて、より少ない工数でシステムを構築することができる。
ここで、制御装置100においては、種々のデータを取り扱うが、典型的には、システムデータと、ユーザデータとに大別できる。
システムデータは、リアルタイムOS114または汎用OS116の動作に必要なデータ全般を意味する。このようなシステムデータが破壊されると、リアルタイムOS114または汎用OS116の起動および動作が不能になる。このシステムデータとしては、リアルタイムOS114および汎用OS116が生成するログデータ、および、システムが生成するログデータ(イベントログ)を含む。これらのログデータは、制御装置100のユーザに公開するものとそうでないものが存在していてもよい。
ユーザデータは、基本的には、システムデータ以外のデータを包含する概念であり、例えば、ユーザが作成またはインストールしたデータなどを意味する。このようなユーザデータとしては、典型的には、ユーザプログラム118自体、および、制御対象の装置において生産される製品または半製品に応じた処理を定義する生産用レシピなどを含む。
<D.シャットダウン処理>
次に、本実施の形態に従う制御装置100でのシャットダウン処理のいくつかの例について説明する。本実施の形態においては、リアルタイムOS114がシャットダウン処理を主導する。このようなシャットダウン処理は、典型的には、無停電電源装置200からの通知、および、制御装置100のユーザが電源ボタン128を押下したこと、といった遮断事象をトリガにして開始される。
なお、制御装置100のディスプレイには、主として、汎用OS116によって提供されるユーザインターフェイス画面が表示されるが、このユーザインターフェイス画面上には、汎用OS116をシャットダウンするためのメニューは用意されないことが好ましい。すなわち、制御装置100のユーザによる意図しないシャットダウンを生じさせないようにするためである。汎用OS116を含めて制御装置100全体のシャットダウンは、リアルタイムOS114によって管理される。以下、それぞれの場合の典型的な処理手順について説明する。
(d1:無停電電源装置200起因のシャットダウン)
図5は、本実施に従う制御装置100におけるシャットダウン処理の処理手順を示すシーケンス図である。図5を参照して、無停電電源装置200への外部電源からの電力供給が停止すると、無停電電源装置200は、制御装置100に対してシャットダウン指令(バックアップ中の通知)を出力する。この信号は、ローカル通信インターフェイス126または入出力インターフェイス124を介して制御装置100へ入力される。この信号の入力によって、制御装置100の内部では外部割込みが発生する(シーケンスSQ100)。すると、リアルタイムOS114は、ユーザプログラム118に対してシャットダウン通知を出力する(シーケンスSQ102)。このユーザプログラム118への通知は、典型的には、システム変数を介して行なわれる。
ユーザプログラム118は、シャットダウン通知をトリガとして、安全にシャットダウンするために必要な処理を実行する(シーケンスSQ104)。ユーザプログラム118にて実行されるシャットダウン処理は、I/Oリフレッシュ(入出力信号の更新処理)を停止するための準備処理や、外部メモリへの書込み処理の完了などの処理を含んでいてもよい。このようなシャットダウン処理は、ユーザプログラム118の内容に応じてそれぞれプログラムされることになるが、例えば、制御対象の設備または機械を安全に停止させるための処理が実行される。加えて、開いている生産用レシピのファイルをクローズするような処理が実行される。このように、安全にシャットダウンするための処理の実行が完了すると、その処理完了をリアルタイムOS114へ通知する(シーケンスSQ106)。この処理完了は、リアルタイムOS114へのシャットダウン命令という形で通知されてもよい。すなわち、リアルタイムOS114は、ユーザプログラム118からのシャットダウン命令に応答して、シャットダウン処理を開始する。
リアルタイムOS114は、ユーザプログラム118に対してシャットダウン通知を出力(シーケンスSQ102)した後、ユーザプログラム118からのシャットダウン命令を受信したこと、または、シャットダウン通知後からの経過時間がタイムアウト時間Tuを超えたこと、をトリガとして、リアルタイムOS114自身のシャットダウン処理を開始する。このように、リアルタイムOS114は、ユーザプログラム118に対してシャットダウン通知を出力(シーケンスSQ102)してからの経過時間を監視する。
リアルタイムOS114のシャットダウン処理として、電源遮断処理1および電源遮断処理2が実行されるものとする。但し、電源遮断処理を一度に実行するようにしてもよいし、さらに多くの回数に分けて実行するようにしてもよい。電源遮断処理1および電源遮断処理2の詳細については後述する。
まず、リアルタイムOS114は、ユーザプログラム118からのシャットダウン命令を受信すると、または、シャットダウン通知後からの経過時間がタイムアウト時間Tuを超えると、電源遮断処理1を開始する(シーケンスSQ108)。電源遮断処理1の実行完了後、リアルタイムOS114は、汎用OS116に対してシャットダウン要求を出力する(シーケンスSQ110)。
汎用OS116は、リアルタイムOS114からのシャットダウン要求に応答して、実行中のアプリケーションを終了し(シーケンスSQ112)、OSのシャットダウン処理を実行する(シーケンスSQ114)。リアルタイムOS114は、シャットダウン要求の出力後、汎用OS116の状態を確認する(シーケンスSQ116,SQ120)。汎用OS116が稼動中であれば(シーケンスSQ118)、リアルタイムOS114は、汎用OS116でのシャットダウン処理が完了するまで待つ。なお、リアルタイムOS114が汎用OS116の状態を確認する処理は、典型的には、リアルタイムOS114が汎用OS116に対して何らかの要求またはメッセージを出力し、その応答の有無および内容などに基づいて状態を判断する。この状態において、汎用OS116はシャットダウン処理中であり、リアルタイムOS114からの要求に対して完全に応答することが保証されないからである。
リアルタイムOS114は、汎用OS116に対してシャットダウン要求を出力(シーケンスSQ110)した後、汎用OS116においてシャットダウン処理が完了したこと、または、シャットダウン要求の出力後からの経過時間がタイムアウト時間Twを超えたこと、をトリガとして、電源遮断処理2を開始する(シーケンスSQ124)。このように、リアルタイムOS114は、汎用OS116に対してシャットダウン要求を出力(シーケンスSQ110)してからの経過時間を監視する。すなわち、リアルタイムOS114は、基本的には、汎用OSからのシャットダウン完了の通知を受信したことをトリガとして電源遮断処理2を開始するが、汎用OS116に対してシャットダウンを指示してから予め定められた期間(タイムアウト時間Tw)が経過すると、汎用OS116からのシャットダウン完了の通知を受信しなくとも、制御装置100の電源を遮断する。
電源遮断処理2の実行完了後、リアルタイムOS114は、無停電電源装置200に対して給電停止許可を出力し(シーケンスSQ126)、電源を遮断する(シーケンスSQ128)。この制御装置100の電源遮断(シーケンスSQ128)は、ハイパーバイザ112を介して実行される。シーケンスSQ126において出力される給電停止許可は、制御装置100に対する電源供給が停止されても問題ないことを無停電電源装置200に対して通知する信号である。すなわち、リアルタイムOS114は、シャットダウンが完了したことを無停電電源装置200へ通知する。
以上のような処理手順によって、無停電電源装置200起因のシャットダウン処理が完了する。
(d2:ユーザプログラム118の一例)
次に、図5に示すシーケンスに沿ったユーザプログラム118の一例について説明する。図6は、本実施に従う制御装置100におけるシャットダウン処理を考慮したユーザプログラム118の一例を示す図である。リアルタイムOS114では、ユーザプログラム118に対して、遮断事象を受信したか否かを示す情報を参照可能にする機能を有しており、ユーザプログラム118はこれらの情報を参照しつつ、処理を実行できる。
図6に示すユーザプログラム118には、ユーザプログラム118からリアルタイムOS114へのシャットダウン処理の完了を出力する処理(図5に示すシーケンスSQ106)、および、メモリカードなどへデータを書込む処理を含む。
より具体的には、リアルタイムOS114へのシャットダウン命令(Shutdown)を発行するファンクションブロック1183は、無停電電源装置200に対する外部電源からの電力供給が遮断された状態(バックアップ中)を示すフラグ1181と、ファイル書込み完了を示すフラグ1182との論理積によって活性化される。すなわち、無停電電源装置200に対する外部電源からの電力供給が遮断されている状態において、何らかのファイル書込み処理が完了し、ファイルがクローズされたことをもって、リアルタイムOS114に対して、シャットダウン命令を出力する。
メモリカードなどへデータを書込む処理(File_Write)を実行するファンクションブロック1186は、ファイル書込みが完了すると、完了を示すコイル1187を活性化する。フラグ1182の値は、このコイル1187の値を示す。つまり、ファンクションブロック1186によるファイル書込みが完了すると、ファンクションブロック1183を活性化する条件が成立する。
ファンクションブロック1186の実行条件として、ファイル書込み命令が発行されていることを示すフラグ1184と、バックアップ中ではないことを示すフラグ1185との論理積が設定されている。すなわち、無停電電源装置200に対する外部電源からの電力供給が遮断された状態(バックアップ中)になると、それ以降に、ファイル書込み命令が発行されたとしても、ファンクションブロック1186は実行されない。つまり、無停電電源装置200に対する外部電源からの電力供給が遮断された状態(バックアップ中)になる直前に命令されたファイル書込みが完了すると、ファンクションブロック1183からシャットダウン命令が出力されることになる。
このようなユーザプログラム118を構築することで、無停電電源装置200に対する外部電源からの電力供給が遮断されたとしても、それ以前の処理において生成されたデータについては安全に保存することができる一方で、そのデータ保存が完了すれば、即座に、リアルタイムOS114および汎用OS116のシャットダウン処理を開始できる。
(d3:リアルタイムOS114における電源遮断処理)
上述した電源遮断処理(電源遮断処理1および電源遮断処理2)の詳細について説明する。
電源遮断処理1は、リアルタイムOS114のシャットダウンに必要なシャットダウン準備処理に相当、具体的には、以下のような処理を含む。
(1)ユーザプログラム118の実行を中断する。
(2)I/Oリフレッシュ(入出力信号の更新処理)について、アクチュエータへの信号出力を停止するともに、フィールドネットワークを介したデータ更新を停止する。
(3)外付けのメモリカード134へのアクセスについて、書込み途中であっても、その書込みを中断してファイルをクローズした上で、マウントを解除する。
(4)共有フォルダ(ネットワークドライブ)へのアクセスについて、書込み途中であっても、その書込みを中断してファイルをクローズした上で、マウントを解除する。
(5)ユーザプログラム118などが転送中であれば、その転送を中断する。この場合には、ユーザプログラム118の一部のみが転送された状態になっている可能性があるので、次回の電源投入時には、エラーを発生させて、ユーザプログラム118を実行しないようにする。
(6)ユーザプログラム118に対してオンラインエディット中であれば、そのオンラインエディットを中断する。次回の電源投入時には、エラーを発生させて、データの不整合などの復旧処理をユーザに促す。
(7)保持属性が設定されている変数の現在値を不揮発性メモリ領域へ退避する。
リアルタイムOS114は、遮断事象を受信した後、ユーザプログラム118からの所定の通知を受信したことを含む、予め定められた条件が満たされると、シャットダウン準備処理である電源遮断処理1を実行する。但し、後述するように、シャットダウン処理全体として許容される時間に制限があるので、リアルタイムOS114は、ユーザプログラム118に対してシャットダウンを指示してから予め定められた期間(タイムアウト時間Tu)が経過すると、電源遮断処理1(シャットダウン準備処理)を開始する。
また、電源遮断処理2においては、以下のような処理が実行される。
(1)内蔵のメモリカード(または、補助ストレージデバイス)へのアクセスについて、書込み途中であっても、その書込みを中断してファイルをクローズした上で、マウントを解除する。
(2)電源遮断が発生した時刻などを記録したイベントログを不揮発性メモリ領域へ退避する。
図5に示す処理手順においては、上述の電源遮断処理(電源遮断処理1および電源遮断処理2)が、汎用OS116に対してシャットダウン要求を出力する前、および、汎用OS116でシャットダウン処理が完了した後のそれぞれで実行される。これらの処理を、汎用OS116でシャットダウン処理が完了した後に一斉に実行してもよい。但し、以下のような理由によって、図5に示すように2回に分けて実行することが好ましい。
すなわち、汎用OS116において実行されるアプリケーション(ユーザアプリケーション1164または汎用アプリケーション1162)のうち、終了処理までに長い時間を要するアプリケーションが存在する場合や、いずれかのアプリケーションが終了処理においてフリーズしてしまう場合には、リアルタイムOS114は、汎用OS116からのシャットダウン処理の完了を待ち続けることになり、シャットダウン処理が進行しない可能性がある。
また、無停電電源装置200の蓄電装置での蓄電量が十分ではない場合には、汎用OS116のシャットダウン処理の完了待ちに要する時間が長くなると、汎用OS116またはリアルタイムOS114のシャットダウン中に無停電電源装置200からの電力供給が停止してしまう可能性がある。
このようなシャットダウン処理中にデータが喪失する可能性を考慮して、汎用OS116に対してシャットダウン要求を出力する前に、リアルタイムOS114においては可能な限り電源遮断処理を実行する。すなわち、データが喪失するリスクを低減するために、保存対象が確定しているデータについては、可能な限り早期に安全な領域に格納する。但し、汎用OS116のイベントログなどを残すために、汎用OS116からのシャットダウン処理の完了後に、電源遮断処理2を実行する。
なお、電源遮断処理1においても、イベントログを格納する処理を実行しておき、電源遮断処理2においては、電源遮断処理1の実行後に新たに生じたイベントログのみを追加で格納するような2段階の処理を採用してもよい。このような2段階でイベントログを格納する処理を採用することで、少なくとも、汎用OS116に対してシャットダウン要求を出力する直前の段階でのイベントログを保存することができる。
(d4:タイムアウト時間の設定)
次に、図5に示すタイムアウト時間TuおよびTwの設定例について説明する。タイムアウト時間TuおよびTwは、シャットダウン処理の完了を待つ時間であり、それぞれ、ユーザプログラム118および汎用OS116のシャットダウン処理が完了するまでに要する時間を予想して設定される。
タイムアウト時間Tuは、ユーザプログラム118におけるシャットダウン処理(例えば、制御プログラムの終了処理、データロギングの停止、I/Oリフレッシュの停止)などに要する時間を推定して設定される。例えば、1〜30秒の範囲の値に設定されてもよい。
タイムアウト時間Twは、汎用OS116で実行されているアプリケーションの終了に要する時間、および、汎用OS116自体のシャットダウンに要する時間を合計して設定される。例えば、30〜300秒の範囲の値に設定されてもよい。
このようなタイムアウト時間は、制御装置100に接続された設定ツールを用いてユーザが任意に設定してもよい。具体的には、タイムアウト時間TuおよびTwは、各システムのシャットダウン処理に要する最低時間を超えつつ、許容される最大時間未満となるように設定される。ここで、許容される最大時間は、外部電源からの電力供給が停止された後に無停電電源装置200単独で電力を供給可能な時間未満となるように設定される。
なお、制御装置100において実行されるシャットダウン処理の全体に要する時間の最大値のみを設定し、その設定された最大値に応じて、タイムアウト時間TuおよびTwを動的に決定するようにしてもよい。
(d5:タイムアウト時間Twを超えた場合)
リアルタイムOS114が汎用OS116に対してシャットダウン要求を出力した後、タイムアウト時間Twを超えても、汎用OS116からシャットダウン処理の完了が通知されなかった場合には、リアルタイムOS114は、汎用OS116を強制的にシャットダウンさせる。
図7は、本実施に従う制御装置100におけるシャットダウン処理の別の処理手順を示すシーケンス図である。図7を参照して、リアルタイムOS114は、汎用OS116に対してシャットダウン要求を出力した(シーケンスSQ110)後、汎用OS116の状態を確認する(シーケンスSQ116)。タイムアウト時間Twを超えても、汎用OS116が稼動中であれば、リアルタイムOS114は、汎用OS116を強制的にシャットダウンさせる(シーケンスSQ123)。
このような強制的なシャットダウンによって、汎用OS116上で実行されるアプリケーションのシステムデータの一部が保存されない可能性があるが、次回の電源投入後において、リアルタイムOS114上で実行されるユーザプログラム118に対する実質的な影響はないと考えられる。そのため、無停電電源装置200からの電源遮断によって制御装置100が受けるダメージを考慮して、タイムアウト時間Twを超えてシャットダウン処理が完了できない場合には、汎用OS116を強制的にシャットダウンする。
(d6:電源ボタン128起因のシャットダウン)
次に、制御装置100のユーザが電源ボタン128を押下することによって実行されるシャットダウン処理について説明する。電源ボタン128が押下されたときに実行されるシャットダウン処理についても、無停電電源装置200からの通知によって実行されるシャットダウン処理と同様である。但し、電源ボタン128が押下された場合には、通常、制御装置100への電力供給は継続されている状態である。そのため、ユーザプログラム118および汎用OS116についてのタイムアウト時間を考慮しなくてもよい。
図8は、本実施に従う制御装置100におけるシャットダウン処理のさらに別の処理手順を示すシーケンス図である。図8を参照して、制御装置100のユーザが電源ボタン128を押下すると、制御装置100の内部では外部割込みが発生する(シーケンスSQ101)。すると、リアルタイムOS114は、シャットダウン処理を開始する。このシャットダウン処理は、図5に示すシャットダウン処理と同様である。但し、電源ボタン128が押下されたときのシャットダウン処理においては、タイムアウト時間TuおよびTwが設定されておらず、あるいは、図5の場合に設定される時間より長い時間が設定される。
すなわち、リアルタイムOS114は、ユーザプログラム118からのシャットダウン命令の出力、および、汎用OS116でのシャットダウンの完了を待つ時間制限を緩和する。これによって、制御装置100では、ユーザプログラム118および汎用OS116の完全なシャットダウン処理の実行が確保される。つまり、汎用OS116が実行される通常のパーソナルコンピュータと同様のシャットダウン処理が実行される。
このように、電源ボタン128が押下された場合には、より確実かつ安全なシャットダウン処理が保証されることになる。
(d7:リアルタイムOS114の処理手順)
次に、本実施の形態に従う制御装置100のリアルタイムOS114で実行される処理手順について説明する。図9は、本実施の形態に従う制御装置100のリアルタイムOS114で実行される処理手順を示すフローチャートである。図9に示す各ステップは、プロセッサ102がリアルタイムOS114のコードを実行することで実現される。
図9を参照して、プロセッサ102は、シャットダウン処理を開始する割込み(遮断事象)が発生したか否かを判断する(ステップS2)。シャットダウン処理を開始する割込みが発生していなければ(ステップS2においてNOの場合)、ステップS2の処理が繰返される。
シャットダウン処理を開始する割込みが発生すると(ステップS2においてYESの場合)、ユーザプログラム118に対してシャットダウン通知を出力する(ステップS4)。そして、プロセッサ102は、ユーザプログラム118によりシャットダウン命令が通知されたか否かを判断する(ステップS6)。ユーザプログラム118によりシャットダウン命令が通知されていなければ(ステップS6においてNOの場合)、プロセッサ102は、シャットダウン通知を出力してからの経過時間がタイムアウト時間Tuに到達したか否かを判断する(ステップS8)。シャットダウン通知を出力してからの経過時間がタイムアウト時間Tuに到達していなければ(ステップS8においてNOの場合)、ステップS6以下の処理が繰返される。
これに対して、ユーザプログラム118によりシャットダウン命令が通知されると(ステップS6においてYESの場合)、または、シャットダウン通知を出力してからの経過時間がタイムアウト時間Tuに到達すると(ステップS8においてYESの場合)、プロセッサ102は、プロセッサ102は、電源遮断処理1を実行し(ステップS10)、続いて、汎用OS116に対してシャットダウン要求を出力する(ステップS12)。
そして、プロセッサ102は、汎用OS116の状態を確認し、汎用OS116においてシャットダウンが完了しているか否かを判断する(ステップS14)。汎用OS116においてシャットダウンが完了していなければ(ステップS14においてNOの場合)、プロセッサ102は、シャットダウン要求を出力してからの経過時間がタイムアウト時間Twに到達したか否かを判断する(ステップS16)。シャットダウン要求を出力してからの経過時間がタイムアウト時間Twに到達していなければ(ステップS16においてNOの場合)、ステップS14以下の処理が繰返される。
汎用OS116においてシャットダウンが完了していれば(ステップS14においてYESの場合)、プロセッサ102は、電源遮断処理2を実行し(ステップS20)、無停電電源装置200に対して給電停止許可を出力する(ステップS22)。そして、プロセッサ102は、電源を遮断する(ステップS24)。そして、一連の処理は終了する。
また、シャットダウン要求を出力してからの経過時間がタイムアウト時間Twに到達していれば(ステップS16においてYESの場合)、プロセッサ102は、汎用OS116を強制的にシャットダウンし(ステップS18)、ステップS20以下の処理が実行される。そして、一連の処理は終了する。
<E.システム起動中のシャットダウン処理>
上述の説明においては、リアルタイムOS114および汎用OS116のいずれもが稼動中にシャットダウン処理を開始する場合について例示した。次に、リアルタイムOS114および/または汎用OS116のシステム起動中にシャットダウン処理に移行する場合の処理例について説明する。
このようなシステム起動中にシャットダウン処理に移行する典型的なシナリオとしては、以下のようなものが想定される。
(1)リアルタイムOS114の起動前のシャットダウン処理
例えば、システム起動中に制御装置100のユーザが意図的に電源ボタン128を押下することで、起動前にシャットダウン処理が開始される場合がある。あるいは、システム起動中に外部電源からの電力供給が停止することで、起動前にシャットダウン処理が開始される場合がある。
いずれの場合も上述した稼働中のシャットダウン処理と同様の方法で、イベントを検出することができる。この場合、ユーザプログラム118は実行されないので、設備または機械の制御が開始されることはない。
図10は、本実施に従う制御装置100においてリアルタイムOS114が起動中にシャットダウン処理へ移行する場合の処理手順を示すシーケンス図である。図10を参照して、リアルタイムOS114および汎用OS116がそれぞれ初期化処理を開始したとする(シーケンスSQ210およびSQ220)。この初期化処理の開始の直後に、無停電電源装置200への外部電源からの電力供給が停止した(電源遮断)とする(シーケンスSQ200)と、無停電電源装置200は、制御装置100に対してシャットダウン指令(バックアップ中の通知)を出力する(シーケンスSQ202)。
リアルタイムOS114は、無停電電源装置200からのシャットダウン指令を受けてシャットダウン処理を開始する(シーケンスSQ212)とともに、汎用OS116の初期化処理の完了を待って、汎用OS116に対してシャットダウン要求を出力する(シーケンスSQ214)。
汎用OS116がシャットダウン処理を実行し(シーケンスSQ222)、その完了通知がリアルタイムOS114へ出力される(シーケンスSQ224)と、一連のシャットダウン処理は完了する。
なお、図10においては、説明の便宜上、リアルタイムOS114でのシャットダウン処理を簡潔に記載しているが、実際には、図5に示すような電源遮断処理が実行されることが好ましい。
(2)汎用OS116の起動前のシャットダウン処理
例えば、メンテナンス作業中に誤ってシステムを起動した場合や、使用した生産用レシピが誤っていることに気付いた場合などに、ユーザの操作によって、起動前にシャットダウン処理が開始される場合がある。制御装置100を安全に停止させるために、必要なシャットダウン処理が実行される。この場合にも、ユーザプログラム118は実行されないので、設備または機械の制御が開始されることはない。
これらの場合も上述した稼働中のシャットダウン処理と同様の方法で、リアルタイムOS114はイベントを検出することができる。但し、汎用OS116が起動中であれば、汎用OS116の起動完了を待って、シャットダウン処理を開始する。制御装置100においては、リアルタイムOS114がシャットダウン処理を主導するため、汎用OS116については、システム起動中ではなく、起動完了後にシャットダウン処理を実施することが好ましい。
図11は、本実施に従う制御装置100において汎用OS116が起動中にシャットダウン処理へ移行する場合の処理手順を示すシーケンス図である。図11を参照して、リアルタイムOS114および汎用OS116がそれぞれ初期化処理を開始したとする(シーケンスSQ210およびSQ220)。そして、リアルタイムOS114の初期化処理が先に完了し、正常運転の状態になったとする(シーケンスSQ211)。一方、汎用OS116については初期化処理の実行中において、無停電電源装置200への外部電源からの電力供給が停止した(電源遮断)とする(シーケンスSQ200)と、無停電電源装置200は、制御装置100に対してシャットダウン指令(バックアップ中の通知)を出力する(シーケンスSQ202)。
リアルタイムOS114は、無停電電源装置200からのシャットダウン指令を受けてシャットダウン処理を開始する(シーケンスSQ212)とともに、汎用OS116の初期化処理の完了を待って、汎用OS116に対してシャットダウン要求を出力する(シーケンスSQ214)。
汎用OS116がシャットダウン処理を実行し(シーケンスSQ222)、その完了通知がリアルタイムOS114へ出力される(シーケンスSQ224)と、一連のシャットダウン処理は完了する。
なお、図11においては、説明の便宜上、リアルタイムOS114でのシャットダウン処理を簡潔に記載しているが、実際には、図5に示すような電源遮断処理が実行される。
図10および図11には、無停電電源装置200からのシャットダウン指令(バックアップ中の通知)に応答してシャットダウン処理が開始される例を示すが、ユーザが制御装置100の電源ボタン128を押下した場合にも、同様の処理手順によってシャットダウン処理が実行される。
以上のように、本実施の形態に従う制御装置100においては、リアルタイムOS114または汎用OS116が起動中であっても、安全かつ確実にシャットダウン処理を完了できる。
<F.変形例>
上述した実施の形態に対して、以下のような変形例を適用可能である。
(f1:無停電電源装置200の残量に応じた処理)
無停電電源装置200に内蔵される蓄電装置は、劣化により充電可能容量が減少する。そのため、無停電電源装置200からの残容量(あるいは、寿命)などの情報を取得し、タイムアウト時間を調整するようにしてもよい。
具体的には、リアルタイムOS114は、無停電電源装置200からの残容量を定期的またはイベント的(例えば、電源遮断時)に取得し、その取得した情報に基づいて、シャットダウン処理の全体で許容される最大時間を推定し、その推定した最大時間に応じて、タイムアウト時間TuおよびTwを動的に決定してもよい。
ユーザが予めタイムアウト時間TuおよびTwを設定した場合であっても、無停電電源装置200からの情報に基づいて決定されたタイムアウト時間の方が長い場合には、より長いタイムアウト時間を採用してもよい。
なお、無停電電源装置200からの情報として、残容量ではなく、寿命を推定可能な情報(例えば、積算の運転時間など)を用いるようにしてもよい。
(f2:電源ボタン起因のシャットダウン)
電源ボタン128起因のシャットダウン処理においては、無停電電源装置200起因のシャットダウン処理とは異なり、電力供給は継続することが原則として保証される。そのため、設備または機械をより安全かつ確実に停止するための処理を事項するようにしてよい。
また、ユーザが電源ボタン128を直接押下するのではなく、何らかの事象を検知して制御装置100を停止しようとする場合などに、上位のサーバ装置などから制御装置100に対してシャットダウン指令を与えるようにしてもよい。この場合には、リアルタイムOS114がこの上位のサーバ装置などからのシャットダウン指令を受けて、上述と同様の手順に従ってシャットダウン処理を実行する。
(f3:ユーザプログラムのシャットダウン処理の切り替え)
無停電電源装置200からの情報などによって、シャットダウン処理の実行に許容される最大時間が変化し得る場合には、リアルタイムOS114からユーザプログラム118に対してその許容される最大時間の情報を出力するようにしてもよい。
ユーザプログラム118では、許容される最大時間の長さに応じて、複数の停止処理方法のうちいずれかを選択できるようにプログラムされていてもよい。例えば、停止させることで破損するリスクのある設備または機械については、そのリスクを可能な限り低減するパターン(但し、停止に必要な時間は長い)と、可能な限り短い時間で停止するパターンとを用意しておき、リアルタイムOS114からの許容される最大時間の情報に基づいて、いずれかのパターンを選択するようにしてもよい。例えば、モータを減速する際の加速度を複数段階設けておき、許容される最大時間の長さに応じて、適宜切り替えるようにすればよい。
(f4:複数のOSまたはプロセスに対するシャットダウン処理)
上述の説明においては、リアルタイムOS114が汎用OS116に対するシャットダウンを指示する構成について例示したが、制御装置100で実行される複数のOSまたはプロセスに対して、リアルタイムOS114がシャットダウン処理を指示するようにしてもよい。
例えば、リアルタイムOS114または他のOSで実行されている、データベース管理プロセスやソフトウェアHMI(Human Machine Interface)などに対して、リアルタイムOS114がシャットダウン処理を指示するようにしてもよい。このようなシャットダウン処理の指示は、ユーザが予め対象を設定しておくことで、自動的に事項される。例えば、データベース管理プロセスを事前にシャットダウンしておくことで、データが破壊されることを防止できる。ソフトウェアHMIは、シャットダウン処理の指示を受けて、シャットダウン処理中の操作画面の表示内容を適宜切り替えるようにしてもよい。
(f5:リアルタイムOSから汎用OSの監視処理/操作)
上述の説明では、リアルタイムOS114が汎用OS116に対してシャットダウン要求を出力する構成について例示したが、これに加えて、汎用OS116の状態を監視するような機能を実装してもよい。監視対象となる汎用OS116の状態としては、
・汎用OS116がアップデート中
・汎用OS116の動作状態
・汎用OS116のイベントログの内容
・汎用OS116でのデバイス動作状態
リアルタイムOS114は、収集した汎用OS116の状態を上位コンピュータへ通知してもよい。この場合、上位コンピュータが収集した情報を分析する。
また、リアルタイムOS114から汎用OS116に対して、シャットダウン処理以外の処理を指示してもよい。例えば、汎用OS116の起動または再起動、汎用OS116上でのアプリケーションの起動、汎用OS116を介した外部への通知、汎用OS116での定期的な処理の実行、汎用OS116へのアプリケーションのインストールまたはアンインストールなどである。
(f6:制御装置100に接続されるユニットの監視)
リアルタイムOS114は、制御装置100に接続されるユニットの監視を行なってもよい。例えば、ユニットの状態監視、ユニットが発生するイベントの収集、ユニットに対する診断などの機能を併せて実行してもよい。このような監視および診断の結果は、コンピュータへ通知してもよい。
(f7:シャットダウン処理のトリガ)
上述の実施の形態においては、無停電電源装置200または電源ボタン128に起因してシャットダウン処理が開始される例について説明したが、例えば、地震速報などを受信するようにして、当該地震速報をトリガとして、シャットダウン処理を開始するようにしてもよい。
<G.利点>
本実施の形態に従う制御装置によれば、共通のハードウェアリソースを利用して、リアルタイムOSおよび汎用OSを並列的に実行させることで、設備または機械を制御するための安定したユーザプログラムの実行を確保するとともに、ハードウェアリソースの簡素化によって低コスト化を実現できる。さらに、汎用OSを採用することで、高度な情報処理が必要なシステムであっても、より少ない工数で実現できる。
さらに、本実施の形態に従う制御装置によれば、遮断事象が発生した場合には、リアルタイムOSが主導して、リアルタイムOS上で実行されるユーザプログラムおよび汎用OSをシャットダウンするので、データが破壊されるといった可能性を低減しつつ、確実なシャットダウン処理を実現できる。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
1 制御システム、100 制御装置、102 プロセッサ、104 システムコントローラ、106 ビデオコントローラ、108 RAM、110 HDD、112 ハイパーバイザ、114 リアルタイムOS、116 汎用OS、118 ユーザプログラム、120,1162 汎用アプリケーション、122 ネットワークインターフェイス、124 入出力インターフェイス、126 ローカル通信インターフェイス、128 電源ボタン、130 電源部、132 メモリカードインターフェイス、134 メモリカード、200 無停電電源装置、1142 タスクスケジューラ、1144 モーション制御プロセス、1146 制御プロセス、1164 ユーザアプリケーション。

Claims (8)

  1. 設備または機械を制御する制御装置であって、
    1または複数のプロセッサを含むハードウェアリソースと、
    前記ハードウェアリソースを管理するハイパーバイザと、
    前記ハイパーバイザによって割り当てられるそれぞれの仮想的なハードウェアリソースを利用して並列的に実行される、汎用オペレーティングシステム(OS)と、前記設備または機械の制御を実現するためのユーザプログラムの実行環境を提供するリアルタイムOSと、
    外部からの遮断事象を受信する入力インターフェイスとを備え、
    前記リアルタイムOSは、
    前記遮断事象に応答して、前記ユーザプログラムに対してシャットダウンを指示するとともに、前記ユーザプログラムがシャットダウンされたことを示す条件が成立すると、前記リアルタイムOSのシャットダウンに必要なシャットダウン準備処理を開始する機能と、
    前記シャットダウン準備処理の開始後に、前記ハイパーバイザを介して構成される論理的なネットワークを通じて、前記汎用OSに対してシャットダウンを指示する機能と、
    前記汎用OSからのシャットダウン完了の通知の受信を含む、予め定められた条件が満たされると、前記ハイパーバイザを介して前記制御装置に対する電源供給が停止されても問題ないことを通知する信号を出力した後に、前記リアルタイムOSのシャットダウンを完了して前記制御装置の電源を遮断する機能とを備える、制御装置。
  2. 前記リアルタイムOSは、前記汎用OSに対してシャットダウンを指示してから予め定められた期間が経過すると、前記汎用OSからのシャットダウン完了の通知を受信しなくとも、前記制御装置の電源を遮断する、請求項1に記載の制御装置。
  3. 前記入力インターフェイスは、前記制御装置に電源を供給する無停電電源装置が、当該無停電電源装置へ供給される外部電源が喪失したときに発する前記遮断事象を受信するように構成されており、
    前記リアルタイムOSは、前記論理的なネットワークを通じて、前記リアルタイムOSのシャットダウンが完了したことを前記無停電電源装置へ通知する機能をさらに備える、請求項1または2に記載の制御装置。
  4. 前記リアルタイムOSは、前記ユーザプログラムに対して、前記遮断事象を受信したか否かを示す情報を参照可能にする機能をさらに備える、請求項1〜3のいずれか1項に記載の制御装置。
  5. 前記リアルタイムOSは、前記遮断事象を受信した後、前記ユーザプログラムからの所定の通知を受信したことを含む、予め定められた条件が満たされると、前記シャットダウン準備処理を開始する、請求項1〜4のいずれか1項に記載の制御装置。
  6. 前記ユーザプログラムがシャットダウンされたことを示す条件は、前記ユーザプログラムに対してシャットダウンを指示してから予め定められた期間が経過したことを含む、請求項1〜5のいずれか1項に記載の制御装置。
  7. 設備または機械を制御する制御装置での制御方法であって、
    1または複数のプロセッサを含むハードウェアリソースを管理するハイパーバイザによって割り当てられるそれぞれの仮想的なハードウェアリソースを利用して、汎用オペレーティングシステム(OS)と、前記設備または機械の制御を実現するためのユーザプログラムの実行環境を提供するリアルタイムOSとを並列的に実行するステップと、
    前記リアルタイムOSが、入力インターフェイスを介して受信した遮断事象に応答して、前記ユーザプログラムに対してシャットダウンを指示するとともに、前記ユーザプログラムがシャットダウンされたことを示す条件が成立すると、前記リアルタイムOSのシャットダウンに必要なシャットダウン準備処理を開始するステップと、
    前記リアルタイムOSが、前記シャットダウン準備処理の開始後に、前記ハイパーバイザを介して構成される論理的なネットワークを通じて、前記汎用OSに対してシャットダウンを指示するステップと、
    前記リアルタイムOSが、前記汎用OSからのシャットダウン完了の通知の受信を含む、予め定められた条件が満たされると、前記ハイパーバイザを介して前記制御装置に対する電源供給が停止されても問題ないことを通知する信号を出力した後に、前記リアルタイムOSのシャットダウンを完了して前記制御装置の電源を遮断するステップとを備える、制御方法。
  8. 予め用意されたユーザプログラムに従って設備または機械を制御するための環境を構築するリアルタイムオペレーティングシステム(OS)を含むプログラムであって、
    前記リアルタイムOSは、汎用OSとともに1または複数のプロセッサを含むハードウェアリソースを管理するハイパーバイザによって割り当てられるそれぞれの仮想的なハードウェアリソースを利用して並列的に実行され、
    前記プログラムはコンピュータに
    入力インターフェイスを介して受信した遮断事象に応答して、前記ユーザプログラムに対してシャットダウンを指示するとともに、前記ユーザプログラムがシャットダウンされたことを示す条件が成立すると、前記リアルタイムOSのシャットダウンに必要なシャットダウン準備処理を開始するステップと、
    前記シャットダウン準備処理の開始後に、前記ハイパーバイザを介して構成される論理的なネットワークを通じて、前記汎用OSに対してシャットダウンを指示するステップと、
    前記汎用OSからのシャットダウン完了の通知の受信を含む、予め定められた条件が満たされると、前記ハイパーバイザを介して前記制御装置に対する電源供給が停止されても問題ないことを通知する信号を出力した後に、前記リアルタイムOSのシャットダウンを完了して電源を遮断するステップとを実行させる、プログラム。
JP2016077606A 2016-04-07 2016-04-07 制御装置、制御方法およびプログラム Active JP6971016B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2016077606A JP6971016B2 (ja) 2016-04-07 2016-04-07 制御装置、制御方法およびプログラム
EP17163788.7A EP3229137B1 (en) 2016-04-07 2017-03-30 Control device, control method and program
US15/473,640 US10102045B2 (en) 2016-04-07 2017-03-30 Control device, control method and program
CN201710211143.0A CN107273180A (zh) 2016-04-07 2017-03-31 控制装置、控制方法以及程序

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016077606A JP6971016B2 (ja) 2016-04-07 2016-04-07 制御装置、制御方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2017187992A JP2017187992A (ja) 2017-10-12
JP6971016B2 true JP6971016B2 (ja) 2021-11-24

Family

ID=58672286

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016077606A Active JP6971016B2 (ja) 2016-04-07 2016-04-07 制御装置、制御方法およびプログラム

Country Status (4)

Country Link
US (1) US10102045B2 (ja)
EP (1) EP3229137B1 (ja)
JP (1) JP6971016B2 (ja)
CN (1) CN107273180A (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7154218B2 (ja) 2017-09-28 2022-10-17 シチズン時計株式会社 工作機械
JP6907976B2 (ja) * 2018-03-14 2021-07-21 オムロン株式会社 コントローラ及びデータ保存方法
EP3611642B1 (en) * 2018-08-17 2020-08-12 Omron Corporation Method for operating an industrial pc device and industrial pc device
CN109614221B (zh) * 2018-10-30 2024-01-09 北京技德系统技术有限公司 一种实时操作系统的应用框架及其方法
JP7063315B2 (ja) 2019-11-29 2022-05-09 オムロン株式会社 情報処理装置、管理プログラム、管理方法、および、情報処理システム
WO2021240720A1 (ja) * 2020-05-28 2021-12-02 三菱電機株式会社 プログラマブルコントローラ及び電力供給方法
US11900129B2 (en) * 2022-03-04 2024-02-13 International Business Machines Corporation Computer operating system shutdown sequencing

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1024963C (zh) * 1989-04-04 1994-06-08 横河电机株式会社 双计算机系统
JP3051771B2 (ja) * 1991-07-16 2000-06-12 株式会社日平トヤマ 生産管理用コンピュータシステムの給電停止処理方法
JPH08137765A (ja) * 1994-11-09 1996-05-31 Oki Electric Ind Co Ltd 電源断処理システムとフリーズ処理システム
JP2802744B2 (ja) 1996-01-26 1998-09-24 株式会社アイエスエイ タイマー付無停電電源制御装置
JP3049651B2 (ja) 1997-10-31 2000-06-05 株式会社ウェルビーン マルチcpu装置
US6230181B1 (en) * 1997-11-03 2001-05-08 3Com Corporation Management shutdown and reset of embedded systems
US6678582B2 (en) * 2002-05-30 2004-01-13 Kuka Roboter Gmbh Method and control device for avoiding collisions between cooperating robots
JP4341305B2 (ja) 2003-06-10 2009-10-07 富士電機システムズ株式会社 電源管理装置
JP4501484B2 (ja) 2004-03-25 2010-07-14 株式会社明電舎 電子機器装置のシャットダウン方法
JP5598429B2 (ja) * 2011-06-22 2014-10-01 株式会社オートネットワーク技術研究所 電源制御システム、電源制御装置及び電源制御方法
EP2575002B1 (de) * 2011-09-28 2018-02-21 Siemens Aktiengesellschaft Verfahren und Virtualisierungssoftware für die Bereitstellung von unabhängigen Zeitquellen für virtuelle Laufzeitumgebungen
WO2013065115A1 (ja) * 2011-10-31 2013-05-10 富士通株式会社 情報処理装置、情報処理装置の制御方法、仮想マシン制御プログラム及び情報処理システム
US9396012B2 (en) 2013-03-14 2016-07-19 Qualcomm Incorporated Systems and methods of using a hypervisor with guest operating systems and virtual processors
US9524172B2 (en) 2014-09-29 2016-12-20 Bank Of America Corporation Fast start

Also Published As

Publication number Publication date
JP2017187992A (ja) 2017-10-12
EP3229137B1 (en) 2023-03-08
US20170293509A1 (en) 2017-10-12
CN107273180A (zh) 2017-10-20
EP3229137A1 (en) 2017-10-11
US10102045B2 (en) 2018-10-16

Similar Documents

Publication Publication Date Title
JP6971016B2 (ja) 制御装置、制御方法およびプログラム
CN107122321B (zh) 硬件修复方法、硬件修复系统以及计算机可读取存储装置
US9910664B2 (en) System and method of online firmware update for baseboard management controller (BMC) devices
CN108121630B (zh) 电子装置、重新启动方法及记录媒介
CN107885305B (zh) 控制装置、控制方法以及记录介质
WO2018095107A1 (zh) 一种bios程序的异常处理方法及装置
US9541980B2 (en) Operation management device, operation management method, and recording medium
WO2013121502A1 (ja) プロセッサシステム
JP6130520B2 (ja) 多重系システムおよび多重系システム管理方法
JP2016066139A (ja) 車両制御装置
JP2015122030A (ja) 情報処理装置、監視プログラム及び監視方法
JP5353624B2 (ja) ロボット制御装置およびロボット制御方法
US11267122B2 (en) Robot control device, robot system, and method of controlling robot
US20160077512A1 (en) Numerical control device
TWI461905B (zh) 可遠端當機復原的運算裝置、用於運算裝置之遠端當機復原之方法及電腦可讀取媒體
JP2010079572A (ja) 情報処理装置、外部記憶装置、制御方法
US11550296B2 (en) Numerical controller
CN116991637B (zh) 嵌入式系统的运行控制方法及装置、电子设备及存储介质
US20030065854A1 (en) Method of temporarily interrupting a computer system
JP6024742B2 (ja) 情報処理装置、情報処理方法、情報処理プログラム、及び記録媒体
US11119461B2 (en) Controller
JP5884365B2 (ja) 電源装置およびプログラム
JP2017045303A (ja) パソコン機能異常時の要因検出が可能な制御装置
JPH0581065A (ja) プログラマブルコントローラシステムの自己診断方法
JP6757697B2 (ja) 制御コントローラおよび制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190207

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190830

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190917

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191002

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200310

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200330

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20200714

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201013

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

Free format text: JAPANESE INTERMEDIATE CODE: C60

Effective date: 20201013

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

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20201021

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

Free format text: JAPANESE INTERMEDIATE CODE: C21

Effective date: 20201027

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20201218

C211 Notice of termination of reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C211

Effective date: 20201222

C22 Notice of designation (change) of administrative judge

Free format text: JAPANESE INTERMEDIATE CODE: C22

Effective date: 20210608

C22 Notice of designation (change) of administrative judge

Free format text: JAPANESE INTERMEDIATE CODE: C22

Effective date: 20210831

C23 Notice of termination of proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C23

Effective date: 20210914

C03 Trial/appeal decision taken

Free format text: JAPANESE INTERMEDIATE CODE: C03

Effective date: 20211019

C30A Notification sent

Free format text: JAPANESE INTERMEDIATE CODE: C3012

Effective date: 20211019

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211101

R150 Certificate of patent or registration of utility model

Ref document number: 6971016

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150