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

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

Info

Publication number
JP6705266B2
JP6705266B2 JP2016077607A JP2016077607A JP6705266B2 JP 6705266 B2 JP6705266 B2 JP 6705266B2 JP 2016077607 A JP2016077607 A JP 2016077607A JP 2016077607 A JP2016077607 A JP 2016077607A JP 6705266 B2 JP6705266 B2 JP 6705266B2
Authority
JP
Japan
Prior art keywords
real
time
general
server function
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
JP2016077607A
Other languages
English (en)
Other versions
JP2017187993A (ja
Inventor
勇気 金谷
勇気 金谷
矢尾板 宏心
宏心 矢尾板
秀平 宮口
秀平 宮口
拓也 廣田
拓也 廣田
フェファー フレッド
フェファー フレッド
ケインス トスティン
ケインス トスティン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Omron Corp
Original Assignee
Omron Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Omron Corp filed Critical Omron Corp
Priority to JP2016077607A priority Critical patent/JP6705266B2/ja
Priority to US15/473,641 priority patent/US20170293502A1/en
Priority to EP17163847.1A priority patent/EP3229135B1/en
Priority to CN201710204585.2A priority patent/CN107272549B/zh
Publication of JP2017187993A publication Critical patent/JP2017187993A/ja
Application granted granted Critical
Publication of JP6705266B2 publication Critical patent/JP6705266B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • G05B19/056Programming the PLC
    • 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/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/45541Bare-metal, i.e. hypervisor runs directly on hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3034Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3055Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/176Support for shared access to files; File sharing support
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • 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/10Plc systems
    • G05B2219/13Plc programming
    • G05B2219/13004Programming the plc
    • 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
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage
    • 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
    • G06F2009/45583Memory management, e.g. access or allocation
    • 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
    • G06F2009/45591Monitoring or debugging support

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Automation & Control Theory (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Description

本技術は、設備または機械を制御する制御装置、制御方法およびプログラムに関する。
近年のICT(Information and Communication Technology)の進歩に伴って、汎用的なコンピューティングデバイスについても信頼性が高まってきている。設備または機械を制御するためのFA(Factory Automation)関連装置においても、このような汎用的なコンピューティングデバイスの導入が進められている。
例えば、特開2009−217707号公報(特許文献1)は、次世代の産業用コントローラとされるPAC(Programmable Automation Controller)を開示している。PACは、一般的なPLCと同様に、ネットワークを介して生産設備の機器と通信を行なうことで、I/Oデータの送受を行ない、生産設備を制御する。特許文献1に開示される構成においては、専用ツール装置を用いることなく、汎用のパソコン等によってPACのメモリデバイスに格納されたデータにアクセスして読み書きできる。
特開2009−217707号公報
ICTの進歩に伴って、コンピューティングデバイスは、信頼性に加えて、その処理能力も高まっている。共通のハードウェアリソースを用いて、互いに独立したオペレーティングシステム(Operating System:以下「OS」とも略称する。)環境を実現するとともに、各OS環境においてそれぞれ異なったアプリケーションを実行するような、いわゆる仮想化技術などが発展しつつある。このような仮想化技術を採用することで、装置コストを低廉化できる可能性がある。
上述の特許文献1に開示される構成では、FA機器に対して外部のツール装置などがデータアクセスする処理が想定されるにすぎず、このような仮想化技術については想定されていない。そのため、仮想化技術を採用した制御装置に対してより好適な構成が要望されている。
本発明のある局面に従えば、設備または機械を制御する制御装置が提供される。制御装置は、1つ以上のプロセッサおよびストレージデバイスを含むハードウェアリソースと、ハードウェアリソースを用いて実行されるリアルタイムオペレーティングシステム(OS)と、ハードウェアリソースを用いて実行され、リアルタイムOSとは独立して動作する汎用オペレーティングシステム(OS)と、リアルタイムOSおよび汎用OSに割り当てるハードウェアリソースを管理するハイパーバイザとを含む。制御装置は、汎用OS上で動作する、ストレージデバイスの一部の領域を記憶領域として確保するとともに、当該確保した記憶領域のうちユーザ設定された少なくとも一部の領域を他の装置との間で共有するファイル共有サーバ機能を含む。制御装置は、さらに、リアルタイムOS上で動作する、ハイパーバイザを介してファイル共有サーバ機能にクライエントとして参加する機能と、ファイル共有サーバ機能により提供される共有領域へアクセス可能であるか否かを周期的に監視する機能とを含む。
好ましくは、リアルタイムOS上で動作するプログラムにおいて、共有領域へアクセスすることを可能にする命令が利用可能である。
好ましくは、リアルタイムOS上で動作するプログラムにおいて、共有領域へアクセス可能であるか否かを示す情報が参照可能である。
好ましくは、制御装置は、リアルタイムOS上で動作する、外部装置からのFTP接続を処理するFTPサーバ機能と、リアルタイムOS上で動作する、外部装置がFTPサーバ機能を介して共有領域へアクセスすることを可能にする機能とを含む。
好ましくは、制御装置は、リアルタイムOS上で動作する、外部装置からFTPサーバ機能を介して共有領域へアクセス可能であるか否かを示す情報を参照可能にする機能を含む。
好ましくは、制御装置は、リアルタイムOS上で動作する、外部装置からのHTTP接続を処理するHTTPサーバ機能と、リアルタイムOS上で動作する、外部装置がHTTPサーバ機能を介して共有領域へアクセスすることを可能にする機能とを含む。
好ましくは、制御装置は、リアルタイムOS上で動作する、外部装置からHTTPサーバ機能を介して共有領域へアクセス可能であるか否かを示す情報を参照可能にする機能を含む。
好ましくは、リアルタイムOSが確保している記憶領域への、汎用OSで実行されるアプリケーションからのアクセスは不可能になっている。
好ましくは、ファイル共有サーバ機能は、制御装置とは異なる他の装置との間でも、共有領域を共有可能に構成されている。
好ましくは、ハイパーバイザは、リアルタイムOSと汎用OSとの間に論理コネクションを確立する。
好ましくは、ストレージデバイスは、複数種類の記憶装置を含む。リアルタイムOS上で動作するプログラムにおいて、共有領域および複数種類の記憶装置のそれぞれの記憶領域へ選択的にアクセスすることを可能にする命令が利用可能である。
本発明の別の局面に従えば、設備または機械を制御する制御装置での制御方法が提供される。制御方法は、リアルタイムオペレーティングシステム(OS)と、リアルタイムOSとは独立して動作する汎用オペレーティングシステム(OS)とに対する、1つ以上のプロセッサおよびストレージデバイスを含むハードウェアリソースの割り当てについて管理するステップと、汎用OS上で実行される、ストレージデバイスの一部の領域を記憶領域として確保するとともに、当該確保した記憶領域のうちユーザ設定された少なくとも一部の領域を他の装置との間で共有するステップと、リアルタイムOS上で実行される、ハイパーバイザを介してファイル共有サーバ機能にクライエントとして参加するステップと、リアルタイムOS上で実行される、ファイル共有サーバ機能により提供される共有領域へアクセス可能であるか否かを周期的に監視するステップとを含む。
本発明のさらに別の局面に従えば、設備または機械を制御するための環境を構築可能なリアルタイムオペレーティングシステム(OS)を含むプログラムが提供される。リアルタイムOSは、1つ以上のプロセッサおよびストレージデバイスを含むハードウェアリソースを用いて、ハードウェアリソースを管理するハイパーバイザの下で、リアルタイムOSとは独立して動作する汎用オペレーティングシステム(OS)とともに、並列的に実行される。汎用OS上では、ストレージデバイスの一部の領域を記憶領域として確保するとともに、当該確保した記憶領域のうちユーザ設定された少なくとも一部の領域を他の装置との間で共有するファイル共有サーバ機能が動作している。プログラムは、ハイパーバイザを介してファイル共有サーバ機能にクライエントとして参加するモジュールと、ファイル共有サーバ機能により提供される共有領域へアクセス可能であるか否かを周期的に監視するモジュールとを含む。
本技術によれば、仮想化技術を採用した制御装置に対してより好適な構成を提供できる。
本実施の形態に従う制御装置の一局面を一般的なPLCと比較して説明するための模式図である。 本実施の形態に従う制御装置のハードウェア構成の一例を示す模式図である。 本実施の形態に従う制御装置のソフトウェア構成の一例を示す模式図である。 本実施の形態に従う制御装置における共有領域についての監視機能を説明するための模式図である。 図4に示す共有領域についての監視機能に係るシステム変数を用いたユーザプログラムの一例を示す図である。 本実施の形態に従う制御装置のリアルタイムOSにて実行されるファイル共有に係る処理手順を示すフローチャートである。 本実施の形態に従う制御装置において複数種類の記憶領域を用いた実装例を示す模式図である。
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
<A.概要>
本実施の形態に従う制御装置100は、設備または機械を制御するものであり、一般的なPLCが提供する機能と同等の機能を提供するとともに、以下に説明するような付加的な機能を提供することができる。
制御装置100は、共通のハードウェアリソースを用いて複数のOSを互いに独立に事項可能な仮想化環境を有している。この仮想化環境においては、ハードウェアリソースを用いて実行されるリアルタイムOS(図中においては「RTOS」とも記す。)と、当該ハードウェアリソースを用いて実行され、リアルタイムOSとは独立して動作する汎用OSとが並列的に実行可能になっている。リアルタイムOSおよび汎用OSに割り当てるハードウェアリソースは、ハイパーバイザによって管理される。なお、ハイパーバイザ上で実行されるOSの数は2個に限定されることなく、複数のリアルタイムOSを実行させるようにしてもよいし、複数の汎用OSを実行させるようにしてもよい。
制御装置100においては、設備または機械を制御するためのプログラムの実行に適したリアルタイムOSが実行されるとともに、ユーザが利用しやすい汎用OSも実行されるので、安定した制御動作の実現と、ユーザビリティの向上とを両立できる。
図1は、本実施の形態に従う制御装置100の一局面を一般的なPLCと比較して説明するための模式図である。図1(A)には、一般的なPLCの構成例を示し、図1(B)には、本実施の形態に従う制御装置100の構成例を示す。
図1(A)に示すように、一般的なPLC300では、可搬型の記録媒体310(例えば、SDメモリカード)を介して、PLC300に対してレシピデータ(例えば、品種別に指定される処理を指定する情報)を与えたり、PLC300で収集されているログデータなどを回収したりするようなことが行なわれる場合がある。
記録媒体310を用いる場合には、PLC300に対して記録媒体310を挿抜する必要があり、取扱いがやや不便である。
あるいは、PLC300にパーソナルコンピュータ320を接続し、パーソナルコンピュータ320のFTPクライエント機能を利用し、あるいは、パーソナルコンピュータ320にインストールされたプログラム開発アプリケーションを利用して、PLC300にアクセスするという方法が用いられていた。
しかしながら、FTPクライエント機能を用いる場合には、それに応じたアプリケーションを操作する必要があり、また、プログラム開発アプリケーションについても、専用のアプリケーションであり、汎用のパーソナルコンピュータ上でのデータの取扱いと全く同一ということにはなっていなかった。
図1(B)に示すように、本実施の形態に従う制御装置100では、リアルタイムOSおよび汎用OSがそれぞれ独立に実行される一方で、両OS上からそれぞれアクセス可能な共有の記憶領域(以下、単に「共有領域」とも称す。)が用意される。典型的には、共有領域は、共有フォルダなどの形で実現される。制御装置100では、設備または機械を制御するためのプログラムが実行される一方で、共有領域へアクセスするための汎用的なユーザインターフェイスも提供される。すなわち、制御装置100のユーザから見れば、日常使用している汎用のパーソナルコンピュータ上で実行される汎用アプリケーションを用いて、設備または機械の制御に係る各種データへ容易にアクセスできる。
さらに、共有領域には、他の装置(例えば、上位サーバ装置など)からもアクセスすることが可能である。このような構成を採用することで、制御装置100が処理または保有するデータの収集および分析などの処理をより汎用的な技術を用いて実装することができる。
このように、本実施の形態に従う制御装置100は、それぞれ独立に実行されるリアルタイムOSおよび汎用OSから共通的にアクセス可能な記憶領域が用意されており、これによって、データアクセスおよびデータ処理をよりフレキシブルに実現できる。
<B.制御装置の装置構成>
次に、本実施の形態に従う制御装置100の装置構成の一例について説明する。図2は、本実施の形態に従う制御装置100のハードウェア構成の一例を示す模式図である。図2に示す制御装置100は、基本的には、汎用アーキテクチャに従うコンピューティングエレメントによって構成されており、汎用のパーソナルコンピュータに類似したハードウェア構成を有している。
図2を参照して、制御装置100は、プロセッサ102と、システムコントローラ104と、ビデオコントローラ106と、RAM(Random Access Memory)108と、HDD(Hard Disk Drive)110と、ネットワークインターフェイス(Interface:以下「I/F」とも記す。)122と、入出力インターフェイス124と、ローカル通信インターフェイス126とを含む。
プロセッサ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)や光学ディスクなどのストレージデバイスを用いるようにしてもよい。
図2に示すように、制御装置100は、1つ以上のプロセッサ102およびストレージデバイス(図2においては、HDD110)を含むハードウェアリソースを用いて、仮想化環境を実現する。
HDD110には、典型的には、ハイパーバイザ112と、リアルタイムOS(Operating System)114と、汎用OS116と、ユーザプログラム118と、汎用アプリケーション120とが格納される。さらに、各OS上で動作する様々なプログラムが格納される。
ハイパーバイザ112は、後述するように、共通のハードウェアリソースを用いて、複数のOSを互いに独立して実行するためのマネージングプログラムである。ハイパーバイザ112は、リアルタイムOS114および汎用OS116に割り当てるハードウェアリソースを管理する。ハイパーバイザ112は、各OSに対して仮想的なハードウェアリソースを提供することになり、各OSから見ると、通常のハードウェアリソースを利用しているのと同様の処理を実行することができる。
リアルタイムOS114は、指定されたタスクを指定された優先度に基づいて実行することで、所定の時間内に指定された処理を完了できる環境を提供する。具体的には、リアルタイムOS114は、スケジューラ、I/O(Input/Output)プロセスモジュール、ネットワーク処理モジュールなどを含む。
汎用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(登録商標)などの無線方式のいずれであってもよい。
入出力インターフェイス124は、PLCに装着される入出力ユニットに相当するものであり、フィールド機器との間で、フィールド信号(デジタル入出力信号、アナログ入出力信号、パルス信号など)を遣り取りする。
ローカル通信インターフェイス126は、任意の通信インターフェイスを包含する。典型的には、ローカル通信インターフェイス126は、USB(Universal Serial Bus)、パラレル通信、RS−232Cなどのシリアル通信などを含み、プリンタといった各種の周辺装置との間でデータを遣り取りする。
<C.制御装置のソフトウェア構成>
次に、制御装置100のソフトウェア構成の一例について説明する。図3は、本実施の形態に従う制御装置100のソフトウェア構成の一例を示す模式図である。
図3を参照して、制御装置100においては、ハイパーバイザ112が制御装置100のハードウェアリソースを管理するとともに、リアルタイムOS114および汎用OS116に対して、これらのハードウェアリソースを調停しながら割り当てることで、共通のハードウェアリソース上で、互いに独立したリアルタイムOS114および汎用OS116を実行させる。すなわち、ハイパーバイザ112を用いて、複数の異なるOSを実行する仮想化環境を実現する。
リアルタイムOS114の実行環境下(図中においては「RTOS側」とも記す。)においては、主として、システムプロセス1142と、ユーザプログラム実行環境1144と、FTPサーバ機能1146と、HTTP(Hyper Text Transfer Protocol)サーバ機能1148と、ファイルマネジャ115とが実行されている。図示していない任意のタスクまたはプロセスが実行されていてもよい。
システムプロセス1142は、ユーザプログラム実行環境1144がユーザプログラム118を実行するのに必要な機能を提供する。具体的には、フィールド信号の収集、収集されたフィールド信号と変数へのマッピング、出力される指令値の更新などの処理が実行される。
ユーザプログラム実行環境1144は、PLCに実装されるファームウェアに相当する機能を提供するものであり、ユーザプログラム118を実行するためのライブラリなどを提供する。ユーザプログラム118は、シーケンス命令、ファンクションブロック命令、特殊命令などの組合せで構成され、実行周期が互いに異なる複数のタスクで構成される場合もある。ユーザプログラム118の全部または一部は、オブジェクト形式などの実行可能な形式とされてもよい。また、ユーザプログラム実行環境1144は、ユーザプログラム118に含まれる命令の組合せ(例えば、シーケンス命令など)を逐次解釈して実行するようにしてもよい。
FTPサーバ機能1146は、リアルタイムOS114上で動作する、外部装置からのFTP接続を処理する。典型的には、FTPサーバ機能1146は、外部のパーソナルコンピュータ250(FTPクライエント機能)からのアクセスに応じて、ファイルマネジャ115が管理するデータへのアクセスを管理する機能を提供する。
HTTPサーバ機能1148は、リアルタイムOS114上で動作する、外部装置からのHTTP接続を処理する。典型的には、HTTPサーバ機能1148は、外部のパーソナルコンピュータ260(典型的には、プログラム開発装置)からのアクセスに応じて、ファイルマネジャ115が管理するデータへのアクセスを管理する機能を提供する。
ファイルマネジャ115は、リアルタイムOS114内の各プロセスに対してファイルアクセスを提供する機能であり、HDD110(図2)のうち予めリアルタイムOS114に対して割り当てられた記憶領域に対する読出しおよび書込みを制御する。仮想環境下においては、ファイルマネジャ115からのアクセス要求に対して、ハイパーバイザ112がHDD110へのアクセスに係るハードウェアリソースを割り当てることで、HDD110へのアクセスを実現する。
汎用OS116の実行環境下(図中においては「汎用OS側」とも記す。)においては、主として、汎用アプリケーション120と、ファイルマネジャ117とが実行されている。図示していない任意のタスクまたはプロセスが実行されていてもよい。
ファイルマネジャ117は、汎用OS116内の各プロセスに対してファイルアクセスを提供する機能であり、HDD110(図2)のうち予め汎用OS116に対して割り当てられた記憶領域に対する読出しおよび書込みを制御する。汎用OS116上で実行される汎用アプリケーション120は、ファイルマネジャ117が管理するデータへのアクセスが可能になっている。仮想環境下においては、ファイルマネジャ117からのアクセス要求に対して、ハイパーバイザ112がHDD110へのアクセスに係るハードウェアリソースを割り当てることで、HDD110へのアクセスを実現する。
本実施の形態に従う制御装置100においては、汎用OS116のファイルマネジャ117は、ファイル共有サーバ機能1162を有しており、リアルタイムOS114のファイルマネジャ115は、ファイル共有クライエント機能1152を有している。制御装置100においては、リアルタイムOS114のファイルマネジャ115のファイル共有クライエント機能1152が、汎用OS116のファイルマネジャ117のファイル共有サーバ機能1162によって提供される共有の記憶領域をマウントすることで、リアルタイムOS114上で実行される各プロセスに対して、汎用OS116が管理する記憶領域(共有の記憶領域)をあたかも汎用OS116が管理する記憶領域としてアクセスすることができる。
より具体的には、ハイパーバイザ112は、リアルタイムOS114と汎用OS116との間に仮想的なネットワーク接続(論理コネクション)を確立する。これにより、リアルタイムOS114上で実行されるアプリケーションと汎用OS116上で実行されるアプリケーションとの間は、仮想的なネットワーク接続を介して通信することができる。
ファイル共有サーバ機能1162は、汎用OS116上で動作する、ストレージデバイスの一部の領域を記憶領域として確保するとともに、当該確保した記憶領域のうちユーザ設定された少なくとも一部の領域を他の装置(本実施の形態においては、仮想的に別の装置に見えるリアルタイムOS114またはリアルタイムOS114上で実行されるアプリケーションまたはプロセス)との間で共有する。ファイル共有サーバ機能1162が提供する共有領域は、ユーザ設定に基づいて、確保している記憶領域の一部または全部が任意に設定できる。なお、ユーザ設定に関わらず、予め定められたフォルダを共有できるようにしてもよい。
ファイル共有サーバ機能1162およびファイル共有クライエント機能1152がファイル共有を実現するためのプロトコルとしては、現在利用可能なプロトコルおよび将来利用可能になるプロトコルのうち、任意のものを採用できる。このようなファイル共有を実現するためのプロコトルとしては、SMB(Server Message Block)、NFS(Network File System)、AFP(Apple Filing Protocol)などが挙げられる。
ファイル共有クライエント機能1152は、リアルタイムOS114上で動作する、ハイパーバイザ112を介してファイル共有サーバ機能1162にクライエントとして参加する。ファイル共有クライエント機能1152は、ファイル共有サーバ機能1162にクライエントとして参加することで、ユーザプログラム118、ならびに、FTPサーバ機能1146またはHTTPサーバ機能1148を介して接続される外部装置がアクセス可能な記憶領域を提供する。
ファイル共有クライエント機能1152は、ファイル共有サーバ機能1162が管理するHDD110の所定の記憶領域を、あたかもリアルタイムOS114上で管理される記憶領域(共有領域1156)として提供する。つまり、ファイル共有クライエント機能1152は、ハイパーバイザ112上で実行される他のOSまたは制御装置100とネットワークを介して接続された他の装置が保持する記憶領域を共有することができる。このように、ファイル共有クライエント機能1152は、他のOSまたは他の制御装置が保持する記憶領域をファイルマネジャ115内においてある特定のフォルダ名を付した仮想的な記憶領域として提供する(いわゆる、マウントする)ことができる。
具体的には、リアルタイムOS114は、ファイル共有クライエント機能1152と連携することで、リアルタイムOS114上で実行されるユーザプログラム118などが利用可能な、共有領域1156へのアクセス(データ書込みおよびデータ読出し)用の命令を提供する。すなわち、リアルタイムOS114上で動作するプログラムにおいて、共有領域1156へアクセスすることを可能にする命令が利用可能になっている。
リアルタイムOS114上では、外部装置がFTPサーバ機能1146を介して共有領域1156へアクセスすることも可能であるとともに、外部装置がHTTPサーバ機能1148を介して共有領域1156へアクセスすることも可能である。典型的な実装例として、FTPサーバ機能1146およびHTTPサーバ機能1148は、監視マネジャ1140が公開する関数を使って、対象の記憶領域が共有状態であるか(すなわち、共有領域1156として設定されているか)を確認するとともに、共有領域であると確認されると、ファイルマネジャ115が公開する関数を使って、当該領域へアクセスする。
あるいは、ユーザプログラム118が利用可能な命令についても、FTPサーバ機能1146およびHTTPサーバ機能1148が利用するように実装してもよい。このような実装を採用することで、アクセス用の関数などの実装量を低減できる。
制御装置100は、ネットワークインターフェイス122を介して他の装置(例えば、上位サーバ装置200)とも接続されており、このネットワークインターフェイス122に係るネットワークから見ても、ファイル共有機能を利用することができる。すなわち、汎用OS116から見れば、リアルタイムOS114および上位サーバ装置200は、いずれもネットワーク上に存在している他の装置とみなすことができる。
上位サーバ装置200に実装されるファイルマネジャ220は、制御装置100のファイルマネジャ117が管理する記憶領域を自己のフォルダとしてマウントすることができ、このファイル共有を通じて、上位サーバ装置200で実行される任意のアプリケーション210は、制御装置100の汎用OS116のファイルマネジャ117が管理する記憶領域へアクセスすることができる。このように、ファイル共有サーバ機能1162は、制御装置100とは異なる他の装置との間でも、共有領域を共有可能にすることができる。
なお、リアルタイムOS114のファイルマネジャ115がHDD110の記憶領域を管理する方式またはフォーマットと、汎用OS116のファイルマネジャ117がHDD110の記憶領域を管理する方式またはフォーマットとは、互いに異なっていてもよい。
図3および図4においては、制御装置100に内蔵されているHDD110の記憶領域を共有化する構成について例示したが、共有化される記憶領域としては、制御装置100に外付けされているストレージデバイスや、汎用OS116がアクセス可能な他の装置に内蔵または外付けされているストレージデバイスであってもよい。
複数のリアルタイムOSが並列的に実行される場合には、それぞれのリアルタイムOSが共有化された記憶領域にアクセスできるようにすればよい。
<D.共有領域へアクセス可能であるか否かを監視する機能>
次に、本実施の形態に従う制御装置100において実行されるリアルタイムOS上で共有領域へアクセス可能であるか否かを監視する機能に説明する。上述したように、リアルタイムOS114は、汎用OS116が提供するファイル共有機能を利用することができるが、一般的には、汎用OS116はリアルタイムOS114に比較して安定性および堅牢性において劣る。そのため、リアルタイムOS114が健全であっても、汎用OS116側で何らかの不具合があり、ファイル共有機能がダウンしている場合も想定される。
そこで、リアルタイムOS114には、いずれかの共有領域をマウントしている状態において、ファイル共有されているか否か、すなわち、共有領域へアクセス可能であるか否かを周期的(例えば、1秒毎)またはイベント的に監視する機能を実装することが好ましい。
図4は、本実施の形態に従う制御装置100における共有領域についての監視機能を説明するための模式図である。図4を参照して、汎用OS116のファイル共有サーバ機能1162と、リアルタイムOS114のファイル共有クライエント機能1152との間は、ハイパーバイザ112が提供する仮想ネットワークポート1121および1122を通じて、互いに仮想的なネットワークを介して接続されている。
ファイル共有クライエント機能1152と連携する監視マネジャ1140は、リアルタイムOS114上で動作し、ファイル共有サーバ機能1162により提供される共有領域1156へアクセス可能であるか否かを周期的に監視する。より具体的には、監視マネジャ1140は、ファイル共有サーバ機能1162へ定期的にデータの読出しを行ない、その成否に基づいて、共有領域へアクセス可能であるか否かを監視する。監視マネジャ1140は、その監視結果に応じて、システム変数1154を更新する。システム変数1154は、リアルタイムOS114によって管理される記憶領域に格納され、共有領域へアクセス可能であるか否かを示す情報を含み得る。なお、データの定期的な読出しではなく、定期的なデータの書込みを行なって、その成否に基づいて、共有領域へアクセス可能であるか否かを監視するようにしてもよい。データの読出しまたは書込みのいずれを実施するのかについては、予め設定されたアクセス権限などを考慮して選択するようにしてもよい。
共有領域へアクセス可能であるか否かを示す情報を含むシステム変数1154は、ユーザプログラムから参照することができる。すなわち、リアルタイムOS114上で動作するプログラムにおいて、共有領域へアクセス可能であるか否かを示す情報が参照可能になっている。
また、共有領域へアクセス可能であるか否かを示す情報は、FTPサーバ機能1146およびHTTPサーバ機能1148からも参照可能になっていてもよい。すなわち、リアルタイムOS114上では、外部装置からFTPサーバ機能1146およびHTTPサーバ機能1148を介して、共有領域へアクセス可能であるか否かを示す情報を参照可能にする機能が提供される。この場合、FTPサーバ機能1146およびHTTPサーバ機能1148がシステム変数1154を直接参照するようにしてもよいし、FTPサーバ機能1146およびHTTPサーバ機能1148が監視マネジャ1140に問合せを行なうようにしてもよい。
図5は、図4に示す共有領域についての監視機能に係るシステム変数1154を用いたユーザプログラムの一例を示す図である。図5に示す例では、「Memcard」のディレクトリに「D0001」にあるデータを書込むための命令が定義されている。データの書込むに係るファンクションブロック302を活性化するための条件として、書込み指令を示すフラグ304と、共有領域へアクセス可能であるか否かを示すフラグ306とを含む。
別の命令にて、フラグ304が「ON」に活性化され、かつ、フラグ306の値が共有領域へアクセス可能であることを示す「ON」である場合に限って、ファンクションブロック302が活性化され、データ書込みの処理が実行される。すなわち、書込み命令は、共有領域へアクセス可能である場合に限って実行される。このような共有領域へアクセス可能であるか否かの監視機能を実装することで、他のOSが管理する記憶領域を自OSが管理する記憶領域であると仮想的に取り扱う際に、何らかの原因により仮想的に設けられる記憶領域に不具合が生じた場合であっても、その不具合に起因して、ユーザプログラム118の実行が妨げられるといった事態を回避できる。
図4および図5に示すように、ユーザプログラム118は、ファイル共有サーバ機能1162が提供する共有領域(典型的には、共有フォルダ)へアクセス可能であるか否かを示す情報のいずれをも利用することができる。
図6は、本実施の形態に従う制御装置100のリアルタイムOSにて実行されるファイル共有に係る処理手順を示すフローチャートである。図6に示す各ステップは、リアルタイムOS114のシステムプロセス1142(図3)がプロセッサ102によって実行されることで実現される。
図6を参照して、事前のシステム設定またはユーザプログラム118内での設定に基づいて、汎用OS116のファイル共有サーバ機能1162が管理する記憶領域をマウントする(ステップS2)。これにより、ユーザプログラム118において参照可能な記憶領域が提供される。
汎用OS116の記憶領域をマウントした状態であるかが判断され(ステップS4)、汎用OS116の記憶領域をマウントした状態でなければ(ステップS4においてNOの場合)、ステップS2以下の処理が繰返される。
汎用OS116の記憶領域をマウントした状態であれば(ステップS4においてYESの場合)、共有領域へアクセス可能であるか否かを監視する所定タイミングが到来したか否かが判断され(ステップS6)、共有領域へアクセス可能であるか否かを監視する所定タイミングが到来していなければ(ステップS6においてNOの場合)、共有領域へアクセス可能であるか否かを監視する所定タイミングの到来まで待つ。
共有領域へアクセス可能であるか否かを監視する所定タイミングが到来していれば(ステップS6においてYESの場合)、汎用OS116のファイル共有サーバ機能1162へデータの読出しを行ない、その成否に基づいて、共有領域へアクセス可能であるかを決定し(ステップS8)、決定された共有領域へアクセス可能であるか否かを示す情報をシステム変数1154として反映する(ステップS10)。そして、ステップS4以下の処理が繰返される。
なお、上述の説明においては、監視マネジャ1140が共有領域へアクセス可能であるか否かを監視する構成について説明したが、「ファイル共有サーバ機能1162が停止している」といったアクセス不可能な場合の要因を切り分けるような機能が実装されてもよい。
<E.複数種類の記憶領域を用いた実装例>
上述したように、本実施の形態に従う制御装置100は、他のOSが管理する記憶領域を利用することもできるため、データの特性や種類に応じて、複数種類の記憶領域を実装することで、より安定性を高めつつ、ユーザビリティも高めることができる。
図7は、本実施の形態に従う制御装置100において複数種類の記憶領域を用いた実装例を示す模式図である。図7を参照して、制御装置100は、記憶領域として、SSD150、RAMディスク152、RAM108、共有フォルダ156を含む。
RAMディスク152は、典型的には、揮発性のメモリを一種のストレージデバイスとして機能させるコンポーネントであり、アクセス速度は高いが、記憶容量は比較的少ないという記憶デバイスである。共有フォルダ156は、典型的には、HDDの記憶領域をフォルダに設定したものであり、ファイル共有プロトコルを介してアクセスするため比較的アクセス速度が低いが、記憶容量は大きくできる。
一時的な記憶領域としてのRAM108に対して、RAMディスク152および共有フォルダ156のいずれからもデータ(ログやスプール)を書込むことができるとともに、処理されたデータをRAMディスク152および共有フォルダ156のいずれにも書込みすることができるようになっている。さらに、RAMディスク152と共有フォルダ156との間でもデータ(ファイル)のコピーが可能になっている。
リアルタイムOS114で実行される、設備または機械を制御するユーザプログラムが利用するデータやユーザプログラム自体については、高速なアクセスが可能なRAMディスク152またはRAM108に格納することで、より高速かつ安定した制御を実現できる。また、RAMディスク152を採用することで、データ損失の可能性を低減できる。なお、RAMディスク152またはRAM108に格納されるデータについては、汎用OS116からアクセスすることはできなくなっており、汎用OS116の処理などによって、ユーザプログラムの実行が影響を受けることはない。
一方、ログファイルや各種設定値などのユーザが参照または変更したいようなデータについては、共有フォルダ156に格納することで、ユーザに対して容易なアクセスを提供できる。共有フォルダ156については、リアルタイムOS114および汎用OS116のいずれからもアクセスが可能になっており、OSを跨いでデータを遣り取りすることを容易に行なうことができる。
なお、RAMディスク152については、電源が遮断されることで、その記憶していたデータが消去されるので、SSD150は、RAMディスク152が保持する情報をバックアップする。より具体的には、制御装置100の電源がオンされるとき(厳密に言えば、リアルタイムOS114が起動されるとき)に、SSD150に格納されているデータがRAMディスク152にリストアされる。逆に、制御装置100の電源がオフされるとき(厳密に言えば、リアルタイムOS114がシャットダウンされるとき)に、RAMディスク152に格納されているデータがSSD150にリストアされる。
このように、SSD150とRAMディスク152とを組み合わせることで、データの損失を防止しつつ、アクセス速度を高めた制御装置100を実現できる。
図7に示すように、特性の異なる複数種類のストレージデバイスを用意しておき、ユーザが用途に応じて任意のストレージデバイスを選択できるようにしてもよい。例えば、信頼性の高いSSD150、利便性の高い共有フォルダ156、高速アクセスのRAMディスク152などを、ユーザが用途に併せて指定可能にしてもよい。
上述のような複数のストレージデバイスを用いる場合において、ユーザが使用するストレージデバイスを明示的に選択した上で、当該選択したストレージデバイスを指定して命令を実行するようにしてもよい。このような構成を採用することで、同時に複数のストレージデバイスを利用することはできないが、従来機種との間の命令互換性を維持できる。
上述のような複数種類の記憶領域を利用する場合には、リアルタイムOS114上で動作するプログラムにおいて、共有領域および複数種類の記憶装置のそれぞれの記憶領域へ選択的にアクセスすることを可能にする命令を利用可能にしてもよい。例えば、各記憶領域にユニークなデバイス変数を割り当てておき、そのデバイス変数を指定することで、アクセス先の記憶領域を特定するようにしてもよい。
あるいは、使用するストレージデバイス毎に専用命令をそれぞれ用意してもよい。ストレージデバイスの種類と同数の専用命令を用意することで、複数種類のストレージデバイスを同時に利用することができる。
なお、リアルタイムOS114が管理する記憶領域への、汎用OS116で実行される汎用アプリケーション120からのアクセスは不可能になっている。これは、汎用OS116で実行される任意のアプリケーションによって、ユーザプログラム118などの実行への影響を回避するためのである。そのため、そもそも、リアルタイムOS114側には、ファイル共有機能自体を実装しないようにすることが好ましい。
<F.セキュリティ>
図3および図4に示す汎用OS116のファイル共有サーバ機能1162に対して、リアルタイムOS114のファイル共有クライエント機能1152がアクセスする場合には、ファイル共有サーバ機能1162において設定されている認証情報(パスワード)や、ファイル共有サーバ機能1162自体の指定および各種設定が必要になる。このような共有の記憶領域(典型的には、共有フォルダ)に対するアクセスを実現するための設定については、制御装置100に接続されるプログラム開発装置を介して行なってもよいし、汎用OS116で実行される汎用アプリケーション120を利用して、リアルタイムOS114のファイル共有クライエント機能1152に対する設定を行なうようにしてもよい。
なお、汎用OS116が管理するストレージデバイスへのアクセスを許容するための認証情報については、予めデフォルト設定などを与えないようにすることが好ましい。
<G.結論>
本実施の形態に従う制御装置100は、汎用的なコンピューティングデバイスを用いて、設備または機械に対する制御を安定的に実行できるとともに、汎用OSで実行される任意の汎用アプリケーションを用いて、リアルタイムOSで実行される制御処理に関する情報をフレキシブルに処理することができる。このような構成を採用することで、安定した制御動作の実現と、ユーザビリティの向上とを両立できる。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
100 制御装置、102 プロセッサ、104 システムコントローラ、106 ビデオコントローラ、108 RAM、110 HDD、112 ハイパーバイザ、114 リアルタイムOS、115,117,220 ファイルマネジャ、116 汎用OS、118 ユーザプログラム、120 汎用アプリケーション、122 ネットワークインターフェイス、124 入出力インターフェイス、126 ローカル通信インターフェイス、152 RAMディスク、156 共有フォルダ、200 上位サーバ装置、210 アプリケーション、250,260,320 パーソナルコンピュータ、300 PLC、302 ファンクションブロック、310 記録媒体、1121 仮想ネットワークポート、1140 監視マネジャ、1142 システムプロセス、1144 ユーザプログラム実行環境、1146 FTPサーバ機能、1148 HTTPサーバ機能、1152 ファイル共有クライエント機能、1154 システム変数、1156 共有領域、1162 ファイル共有サーバ機能。

Claims (11)

  1. 設備または機械を制御する制御装置であって、
    1つ以上のプロセッサおよびストレージデバイスを含むハードウェアリソースと、
    前記ハードウェアリソースを用いて実行されるリアルタイムオペレーティングシステム(OS)と、
    前記リアルタイムOS上で、設備または機械を制御するためのユーザプログラムを実行する実行環境と、
    前記ハードウェアリソースを用いて実行され、前記リアルタイムOSとは独立して動作する汎用オペレーティングシステム(OS)と、
    前記リアルタイムOSおよび前記汎用OSに割り当てるハードウェアリソースを管理するハイパーバイザとを備え、
    前記汎用OS上で動作する、前記ストレージデバイスの一部の領域を記憶領域として確保するとともに、当該確保した記憶領域のうちユーザ設定された少なくとも一部の領域を他の装置との間で共有するファイル共有サーバ機能を備え、
    前記リアルタイムOS上で動作する、
    前記ハイパーバイザを介して前記ファイル共有サーバ機能にクライエントとして参加する機能と、
    前記ファイル共有サーバ機能により提供される共有領域へアクセス可能であるか否かを周期的に監視する機能とを備え
    前記ユーザプログラムにおいては、前記共有領域へアクセスすることを可能にする命令の利用、および、前記共有領域へアクセス可能であるか否かを示す情報が参照、のうち少なくとも一方が可能である、制御装置。
  2. 前記リアルタイムOS上で動作する、外部装置からのFTP接続を処理するFTPサーバ機能と、
    前記リアルタイムOS上で動作する、前記外部装置が前記FTPサーバ機能を介して前記共有領域へアクセスすることを可能にする機能とを備える、請求項に記載の制御装置。
  3. 前記リアルタイムOS上で動作する、前記外部装置から前記FTPサーバ機能を介して前記共有領域へアクセス可能であるか否かを示す情報を参照可能にする機能を備える、請求項に記載の制御装置。
  4. 前記リアルタイムOS上で動作する、外部装置からのHTTP接続を処理するHTTPサーバ機能と、
    前記リアルタイムOS上で動作する、前記外部装置が前記HTTPサーバ機能を介して前記共有領域へアクセスすることを可能にする機能を備える、請求項1〜のいずれか1項に記載の制御装置。
  5. 前記リアルタイムOS上で動作する、前記外部装置から前記HTTPサーバ機能を介して前記共有領域へアクセス可能であるか否かを示す情報を参照可能にする機能を備える、請求項に記載の制御装置。
  6. 前記リアルタイムOSが確保している記憶領域への、前記汎用OSで実行されるアプリケーションからのアクセスは不可能になっている、請求項1〜のいずれか1項に記載の制御装置。
  7. 前記ファイル共有サーバ機能は、前記制御装置とは異なる他の装置との間でも、前記共有領域を共有可能に構成されている、請求項1〜のいずれか1項に記載の制御装置。
  8. 前記ハイパーバイザは、前記リアルタイムOSと前記汎用OSとの間に論理コネクションを確立する、請求項1〜のいずれか1項に記載の制御装置。
  9. 前記ストレージデバイスは、複数種類の記憶装置を含み、
    前記ユーザプログラムにおいて、前記共有領域および前記複数種類の記憶装置のそれぞれの記憶領域へ選択的にアクセスすることを可能にする命令がさらに利用可能である、請求項1〜のいずれか1項に記載の制御装置。
  10. 設備または機械を制御する制御装置での制御方法であって、
    リアルタイムオペレーティングシステム(OS)と、前記リアルタイムOSとは独立して動作する汎用オペレーティングシステム(OS)とに対する、1つ以上のプロセッサおよびストレージデバイスを含むハードウェアリソースの割り当てについて管理するステップと、
    前記リアルタイムOS上で、設備または機械を制御するためのユーザプログラムを実行するステップと、
    前記汎用OS上で実行される、前記ストレージデバイスの一部の領域を記憶領域として確保するとともに、当該確保した記憶領域のうちユーザ設定された少なくとも一部の領域を他の装置との間で共有するステップと、
    前記リアルタイムOS上で実行される、ハイパーバイザを介してファイル共有サーバ機能にクライエントとして参加するステップと、
    前記リアルタイムOS上で実行される、前記ファイル共有サーバ機能により提供される共有領域へアクセス可能であるか否かを周期的に監視するステップとを備え
    前記ユーザプログラムにおいては、前記共有領域へアクセスすることを可能にする命令の利用、および、前記共有領域へアクセス可能であるか否かを示す情報が参照、のうち少なくとも一方が可能である、制御方法。
  11. 設備または機械を制御するための環境を構築可能なリアルタイムオペレーティングシステム(OS)を含むプログラムであって、
    前記リアルタイムOSは、1つ以上のプロセッサおよびストレージデバイスを含むハードウェアリソースを用いて、前記ハードウェアリソースを管理するハイパーバイザの下で、前記リアルタイムOSとは独立して動作する汎用オペレーティングシステム(OS)とともに、並列的に実行され、
    前記リアルタイムOS上では、設備または機械を制御するためのユーザプログラムが実行されており、
    前記汎用OS上では、前記ストレージデバイスの一部の領域を記憶領域として確保するとともに、当該確保した記憶領域のうちユーザ設定された少なくとも一部の領域を他の装置との間で共有するファイル共有サーバ機能が動作しており、
    前記プログラムは、
    前記ハイパーバイザを介して前記ファイル共有サーバ機能にクライエントとして参加するモジュールと、
    前記ファイル共有サーバ機能により提供される共有領域へアクセス可能であるか否かを周期的に監視するモジュールとを備え
    前記ユーザプログラムにおいては、前記共有領域へアクセスすることを可能にする命令の利用、および、前記共有領域へアクセス可能であるか否かを示す情報が参照、のうち少なくとも一方が可能である、プログラム。
JP2016077607A 2016-04-07 2016-04-07 制御装置、制御方法およびプログラム Active JP6705266B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2016077607A JP6705266B2 (ja) 2016-04-07 2016-04-07 制御装置、制御方法およびプログラム
US15/473,641 US20170293502A1 (en) 2016-04-07 2017-03-30 Control device, control method and program
EP17163847.1A EP3229135B1 (en) 2016-04-07 2017-03-30 Control device, control method and program for controlling an equipment or a machine
CN201710204585.2A CN107272549B (zh) 2016-04-07 2017-03-30 控制装置、控制方法以及记录介质

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
JP2017187993A JP2017187993A (ja) 2017-10-12
JP6705266B2 true JP6705266B2 (ja) 2020-06-03

Family

ID=58672287

Family Applications (1)

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

Country Status (4)

Country Link
US (1) US20170293502A1 (ja)
EP (1) EP3229135B1 (ja)
JP (1) JP6705266B2 (ja)
CN (1) CN107272549B (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6996257B2 (ja) * 2017-11-27 2022-01-17 オムロン株式会社 制御装置、制御方法、およびプログラム
CN112136110A (zh) * 2018-05-07 2020-12-25 三菱电机株式会社 信息处理装置、调整方法及调整程序
US11029986B2 (en) * 2018-05-25 2021-06-08 Microsoft Technology Licensing, Llc Processor feature ID response for virtualization
EP3812853B1 (en) 2018-06-22 2024-01-17 Soft Servo Systems, Inc. Motion control program, motion control method, and motion control device
SG11202010173TA (en) * 2018-06-22 2020-11-27 Soft Servo Systems Inc Motion control program, motion control method, and motion control device
SG11202010344QA (en) 2018-06-22 2020-11-27 Soft Servo Systems Inc Motion control program, motion control method, and motion control device
JP6950634B2 (ja) * 2018-07-03 2021-10-13 オムロン株式会社 制御装置および制御方法
JP2020160483A (ja) 2019-03-25 2020-10-01 株式会社東芝 評価装置、システムlsi及びシステムlsiのための評価プログラム
JP7378356B2 (ja) * 2020-06-12 2023-11-13 株式会社バッファロー 情報処理装置、及びプログラム
CN113407510A (zh) * 2021-06-22 2021-09-17 北京联创信安科技股份有限公司 一种数据共享系统
JP2023091541A (ja) 2021-12-20 2023-06-30 株式会社日立産機システム データ共有装置、通信システム、通信方法
CN114879593B (zh) * 2022-05-07 2023-03-14 科东(广州)软件科技有限公司 实时系统运行plc控制器的方法、装置、设备及存储介质

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050015430A1 (en) * 2003-06-25 2005-01-20 Rothman Michael A. OS agnostic resource sharing across multiple computing platforms
US7478204B2 (en) * 2004-04-29 2009-01-13 International Business Machines Corporation Efficient sharing of memory between applications running under different operating systems on a shared hardware system
US7752367B2 (en) * 2005-12-22 2010-07-06 International Business Machines Corporation File-based access control for shared hardware devices
KR20090087885A (ko) * 2006-12-11 2009-08-18 보르그워너 인코퍼레이티드 터보차저
JP2010514028A (ja) * 2006-12-22 2010-04-30 バーチャルロジックス エスエイ 単一データ処理を共有するために複数の実行環境を有効化するシステム
JP5146656B2 (ja) 2008-03-12 2013-02-20 オムロン株式会社 Fa機器並びにファイルアクセスシステム
CN101989196A (zh) * 2009-08-04 2011-03-23 张济政 基于移动存储设备的寄生操作系统
US8880783B2 (en) * 2011-07-05 2014-11-04 Kandou Labs SA Differential vector storage for non-volatile memory
JPWO2012081156A1 (ja) * 2010-12-15 2014-05-22 パナソニック株式会社 アレイ管理装置、アレイ管理方法及び集積回路
US20140223122A1 (en) * 2013-02-06 2014-08-07 International Business Machines Corporation Managing virtual machine placement in a virtualized computing environment
US9690669B2 (en) * 2014-06-16 2017-06-27 Internaitonal Business Machines Corporation Techniques for improving cloud infrastructure backup in a shared storage environment
CN104333603A (zh) * 2014-11-18 2015-02-04 武汉噢易云计算有限公司 一种上传文件到虚拟机的实现系统及方法
JP6447217B2 (ja) * 2015-02-17 2019-01-09 富士通株式会社 実行情報通知プログラム、情報処理装置および情報処理システム

Also Published As

Publication number Publication date
CN107272549A (zh) 2017-10-20
JP2017187993A (ja) 2017-10-12
EP3229135A1 (en) 2017-10-11
CN107272549B (zh) 2020-06-30
US20170293502A1 (en) 2017-10-12
EP3229135B1 (en) 2020-04-22

Similar Documents

Publication Publication Date Title
JP6705266B2 (ja) 制御装置、制御方法およびプログラム
US9588787B2 (en) Runtime virtual process creation for load sharing
JP6564838B2 (ja) インダストリアル・インターネットオペレーティングシステムに基づくマルチオペレーティングシステム運行方法および装置
US9912535B2 (en) System and method of performing high availability configuration and validation of virtual desktop infrastructure (VDI)
CN109522088A (zh) 一种虚拟机迁移方法及装置
JP6776436B2 (ja) 制御装置
EP3489776B1 (en) Control device, control method, and program
JP2019153144A (ja) 制御装置、システムプログラム、制御方法
US11216211B1 (en) Emulated block storage for devices
CN113110918A (zh) 读写速率管控方法、装置、节点设备及存储介质
JP2007221364A (ja) コントローラ、制御システム及び制御装置の拡張方法
EP2472396A1 (en) Computer device
US11392412B2 (en) Engineering tool, controller, and control system
WO2020075351A1 (ja) コントロール装置
KR20230053496A (ko) 인터커넥트를 통해 장치 운영 체제에 액세스하기 위한 시스템, 방법 및 장치
CN112882798B (zh) 交换分区管理方法、装置、电子设备和存储介质
US10922149B2 (en) System comprising a plurality of virtualization systems
CN112631154A (zh) 在云计算环境中安全地执行自动化程序的装置和方法
JP7413183B2 (ja) コントロールシステム
US20240118990A1 (en) Monitoring a computer system
JP7200580B2 (ja) 制御システム、サポート装置、サポートプログラム
JP7115195B2 (ja) 制御システム、サポート装置、サポートプログラム
JP2021022242A (ja) コントロール装置
JP2023049531A (ja) 制御装置
JP2023051319A (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: 20191112

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191126

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191212

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200427

R150 Certificate of patent or registration of utility model

Ref document number: 6705266

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250