JP6201298B2 - コントローラおよびプログラム - Google Patents

コントローラおよびプログラム Download PDF

Info

Publication number
JP6201298B2
JP6201298B2 JP2012250658A JP2012250658A JP6201298B2 JP 6201298 B2 JP6201298 B2 JP 6201298B2 JP 2012250658 A JP2012250658 A JP 2012250658A JP 2012250658 A JP2012250658 A JP 2012250658A JP 6201298 B2 JP6201298 B2 JP 6201298B2
Authority
JP
Japan
Prior art keywords
access
program
database system
plc
command
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
JP2012250658A
Other languages
English (en)
Other versions
JP2014099061A (ja
JP2014099061A5 (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 JP2012250658A priority Critical patent/JP6201298B2/ja
Priority to US14/078,710 priority patent/US9824229B2/en
Priority to EP13192819.4A priority patent/EP2733613B1/en
Priority to CN201310566385.3A priority patent/CN103809502B/zh
Publication of JP2014099061A publication Critical patent/JP2014099061A/ja
Publication of JP2014099061A5 publication Critical patent/JP2014099061A5/ja
Application granted granted Critical
Publication of JP6201298B2 publication Critical patent/JP6201298B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • 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
    • 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/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2358Change logging, detection, and notification
    • 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/3024Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]
    • 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/3041Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is an input/output interface

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Automation & Control Theory (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Programmable Controllers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Safety Devices In Control Systems (AREA)

Description

本発明は、プログラマブルロジックコントローラ(PLC:Programmable Logic Controller)等のコントローラおよびプログラムに関し、特に、データベースシステムへデータを送信するコントローラおよびプログラムに関する。
PLC等のコントローラは、工場などの自動機械の制御などに用いられ、複数の入出力機能を有して、例えば、センサ等から出力される値を逐次、読みこんでデータを保持する。
また、近年、PLCは、データベースシステムと接続して、PLCで保持しているデータを、データベースシステムに蓄積する。これにより、データベースに接続する情報処理装置同士でのデータの共有を容易にしたり、各種データを収集して、データの集計や解析などを容易にしたりすることができる。例えば、特開2012−108642号公報(特許文献1)は、データベースをアクセスするSQL文を複数含むSQL処理群をデータベースに送信する機能を有するPLCを開示している。
特開2012−108642号公報
しかし、PLC等のコントローラへの電力の供給が何らかの原因で不安定化すると、データベースシステムへのアクセスが中断することとなる。例えば、従来、コントローラは、データをSpool情報として不揮発性メモリに保持し、外部記憶装置に定期的にデータを退避させている。コントローラは、電断が発生した際に、外部記憶装置に退避できていなかったデータについては、電断から復旧後、この退避できていなかった分のSpool情報を、再度、外部記憶装置に退避する構成とされていることもある。この場合、コントローラが外部記憶装置へデータを退避させている退避中に電断が発生すると、既存の退避済みのデータが破損することがある。このような電断が発生することによって、コントローラからデータベースシステムへ送信するデータが消失することとなり、コントローラの信頼性が低下する。
そこで、本発明は、PLC等のコントローラにおいてデータベースシステムへのアクセスの信頼性を向上させる技術を提供することを目的とする。
一実施形態に従うコントローラは、制御対象を制御するためのユーザプログラムを実行する命令実行部と、データベースシステムと接続するための通信インタフェースと、データベースシステムへアクセスするためのアクセス命令を含むユーザプログラムが実行されることにより、アクセス命令に応じた命令文を生成し、生成した命令文に基づいてデータベースシステムへのアクセスを制御するアクセス処理部と、アクセス処理部がアクセス命令に応じて生成した命令文に基づくデータベースシステムへのアクセス処理を開始してから当該命令文に基づく処理が完了するまでの間、命令文の実行状況を示すステータス情報を生成し、生成したステータス情報を出力するステータス出力部とを備える。
好ましくは、コントローラは、不揮発性のメモリをさらに備え、アクセス処理部は、命令文に基づく処理が完了するまでの間、命令文をメモリへ記憶させる命令出力部を含むこととしてもよい。
好ましくは、ステータス情報は、データベースシステムへアクセスするためのSQL文の送信状況を示す情報を含むこととしてもよい。
好ましくは、ステータス情報は、データベースシステムへアクセスするためのSQL文を記憶部へ保留するか否かを示す情報を含むこととしてもよい。
好ましくは、コントローラは、ステータス情報を参照してステータス情報に示されるアクセスの状況に応じてデータベースシステムへのアクセス処理のリカバリを行うリカバリプログラムを保持する保持部をさらに備え、所定の動作状態の時に、リカバリプログラムを実行することとしてもよい。
好ましくは、リカバリプログラムは、コントローラからデータベースシステムへ送信するSQL文の送信状況に応じてリカバリを行うこととしてもよい。
別の実施の形態に従うと、コントローラの動作を制御するためのプログラムが提供される。コントローラは、プロセッサと、データベースシステムと接続するための通信インタフェースとを備え、プログラムは、プロセッサに、データベースシステムへアクセスするためのアクセス命令を含むユーザプログラムが実行されることにより、アクセス命令に応じた命令文を生成し、生成した命令文に基づいてデータベースシステムへのアクセスを制御するステップと、アクセスを制御するステップによりアクセス命令に応じて生成した命令文に基づくデータベースシステムへのアクセス処理を開始してから当該命令文に基づく処理が完了するまでの間、命令文の実行状況を示すステータス情報を生成し、生成したステータス情報を出力するステップとを実行させる。
上記の一実施の形態によると、コントローラがデータベースシステムへアクセスする際のアクセスの状況をステータス情報として保持されるため、電断が発生した場合においてもリカバリ時にアクセスの状況を参照することができ、データベースシステムへのアクセスの信頼性が向上する。
この発明の上記および他の目的、特徴、局面および利点は、添付の図面と関連して理解されるこの発明に関する次の詳細な説明から明らかとなるであろう。
本実施形態における制御システム全体の構成を示す図である。 PC10の機能を示すブロック図である。 DBサーバ20の機能を示すブロック図である。 PLC30の機能を示すブロック図である。 本実施形態のハードウェアの構成を示す図である。 ステータス情報51に保持されるデータを示す図である。 DBアクセス処理プログラム35によるDBサーバ20へのアクセス処理と、DBサーバ20へのアクセスの状態を示す出力変数Stateの出力とを示す図である。 ユーザプログラム32の命令に従ってDBアクセス処理プログラム35によりDBサーバ20へのアクセスを開始し、出力変数Stateを出力する処理を示す図である。 電断のタイミングと、出力変数Stateと、電断発生時に取りうる処置とを示す図である。 DBアクセス処理プログラム35によりステータス情報51を出力させるためのユーザプログラムの一例を示す図である。 電断発生時にリカバリするためのユーザプログラムの一例を示す図である。
以下、図面を参照しつつ、本発明の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
<実施の形態1>
図1は、本実施形態における制御システム全体の構成を示す図である。
まず概要を説明する。図1を参照して、制御システムには、PC(Personal Computer)10と、DB(Database)サーバ20と、PLC30と、PLC40とが含まれる。PC10は、PLC30で動作させるユーザプログラムをユーザが作成するための情報処理装置である。DBサーバ20は、データベースを管理するため、DBMS(database management system)として機能するサーバである。
PLC30は、PC10と、DBサーバ20と、PLC40と接続される。PLC30は、DBサーバ20と接続するための設定を保持しており、設定に従ってDBサーバ20へアクセスする。
また、PLC30は、センサ出力などを外部から受け付けてデータを蓄積し、蓄積されたデータを、後述するDBアクセス処理プログラム35によりDBサーバ20へ送信する。PLC30は、他のPLC(図1の例ではPLC40)がDBサーバ20へ送信するデータを受け付けて、受け付けたデータをDBサーバ20へ送信する。PLC40は、センサ出力などを外部から受け付けてデータを蓄積し、蓄積されたデータを、PLC30を介してDBサーバ20へ送信する。
<各機器の構成の詳細>
次に、各機器の構成の詳細について説明する。
図2は、PC10の機能を示すブロック図である。
PC10は、MCU(Micro Control Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)等を備えるコンピュータシステム(情報処理装置)である。図2を参照して、PC10は、PLC30を動作させるためのユーザプログラムをユーザが作成するためのプログラミングツール12の機能を発揮する。プログラミングツール12は、命令実行状態取得部14と、プログラミング機能16との機能を含む。ユーザがプログラミングツール12により作成したユーザプログラムは、PLC30へ送信され、PLC30で実行される。
命令実行状態取得部14は、PLC30に対し、PLC30のメモリに保持されるステータス情報51の内容をPC10へ送信するよう指示するためのソフトウェアである。
プログラミング機能16は、ユーザによるプログラム作成を支援するためのソフトウェアである。これらソフトウェアがPC10において実行されることにより、命令実行状態取得部14とプログラミング機能16等の機能が発揮される。
図3は、DBサーバ20の機能を示すブロック図である。DBサーバ20は、大容量の記憶装置などを備える。
DBサーバ20は、データベースへの読み出しおよび書き込みを管理するDBMS22の機能を発揮する。DBMS22は、データベースとして機能するDB24へのデータの書き込みおよび読み出しを制御する。DB24は、複数件のデータレコードを保持するための記憶領域であり、DBMS22の制御に従ってデータの保持等を行う。
図4は、PLC30の機能を示すブロック図である。PLC30は、ユーザプログラムを周期的に実行する。PLC30は、PLC30内のメモリ領域の情報を読み書きして、ユーザプログラムに示される命令を順に実行する。PLC30は、入出力機能を備えており、センサ出力などPLC30の外部からデータを受け付けて、データを蓄積する。PLC30は、蓄積されたデータをDBサーバ20へ送信する。
図4を参照して、PLC30の各機能は、OS31と、システムプログラム33と、ユーザプログラム32等が動作することで発揮される。PLC30は、ステータス情報51とを保持している。
OS31は、PLC30の資源を管理するオペレーティングシステムであり、タスクのスケジューリングや、DBサーバ20へのアクセス処理などを行う機能をPLC30に発揮させる。
システムプログラム33は、PLC30としての基本的な機能を提供するためのソフトウェア群である。具体的には、システムプログラム33は、シーケンス命令プログラム34と、DBアクセス処理プログラム35と、入出力処理プログラム36と、ツールインタフェース処理プログラム37と、スケジューラ38とを含んでいる。
シーケンス命令プログラム34は、PLC30内のメモリ領域の情報を読み書きしながら、ユーザプログラム32の命令を順に実行する機能をPLC30に発揮させる。
DBアクセス処理プログラム35は、PLC30がシーケンス命令プログラム34によってユーザプログラム32を実行することに伴って呼び出され、ユーザプログラム32がDBサーバ20へアクセスするための処理、例えばSQL文の生成などの処理を実行する機能をPLC30に発揮させる。
入出力処理プログラム36は、PLC30が備える複数の入出力機能によるPLC30へのデータ入力およびPLC30からのデータ出力を制御する機能をPLC30に発揮させる。各入出力機能は、それぞれメモリのアドレスが割りあてられている。各入出力機能に対応するメモリに保持されるデータは、周期的にPLC30の外部のデータと一括して交換される。ツールインタフェース処理プログラム37は、PC10において動作するプログラミングツール12の機能によりPC10からPLC30へ通知される指示を受けて、DBアクセス処理プログラム35等へ処理を渡し、処理の結果等をPC10へ応答する機能をPLC30に発揮させる。スケジューラ38は、PLC30で実行するタスクの優先度に基づいて、タスクのスケジューリングを行う機能をPLC30に発揮させる。
ユーザプログラム32は、PC10により作成され、PLC30のメモリに保持されている。図4を参照して、ユーザプログラム32とシーケンス命令プログラム34とが制御プログラム39を構成する。すなわち、シーケンス命令プログラム34がユーザプログラム32をメモリから読み出して、命令が順に実行されることで、PLC30が動作する。
ステータス情報51は、DBアクセス処理プログラム35により出力され、DBアクセス処理プログラム35によるDBサーバ20へのアクセスの状況を保持する。詳しくは後述する。
図5は、本実施形態のハードウェアの構成を示す図である。図5(A)は、コンピュータシステムとしてPC10の構成を示す。図5(A)を参照して、PC10は、CPU101と、ROM102と、RAM103と、通信インタフェース104と、ディスプレイ105と、入出力インタフェース106とを備える。CPU101は、プログラムをROM102等から読み出して実行することでPC10に各種機能を発揮させる。ROM102は、不揮発性の記憶領域であり、システムデータ等が記憶される。RAM103は、揮発性のメモリであり、プログラムやデータが格納される。通信インタフェース104は、PC10が外部の機器と通信するためのインタフェースである。ディスプレイ105は、CPU101等による演算の結果を画像により出力するための表示機器である。入出力インタフェース106は、PC10がユーザの入力操作等を受け付け、PC10の動作状態を出力するためのインタフェースである。
図5(B)は、PLC30のハードウェア構成を示す図である。PLC30は、CPU101と、ROM102と、RAM103と、通信インタフェース104と、バス107等を備える。PLC40もPLC30と同様のハードウェア構成を備える。
<データ>
次に、本実施形態で用いるデータについて、説明する。
図6はステータス情報51に保持されるデータを示す図である。ステータス情報51は、DBアクセス処理プログラム35によって出力される出力変数Stateを含んでおり、不揮発性のメモリに保持される。
本実施の形態では、ユーザプログラムにおいて出力変数Stateの出力が指定されることで、PLC30は、DBアクセス処理プログラム35によって出力変数Stateを出力して不揮発性のメモリに保持する。ステータス情報51はDBアクセス処理プログラム35によって出力される出力変数Stateにより示される5つの状態のいずれかを保持する。出力変数Stateのデータ型は列挙型であり、列挙子は図6に示すとおりである。例えば、列挙子には、DBアクセス処理プログラム35によるDBサーバ20へのアクセスの初期状態を示す「_DBC_SEND_INIT」(初期状態)、DBアクセス処理プログラム35によってDBサーバ20へとSQL文を送信する前(未送信)の状態を示す「_DBC_SEND_UNSENT」(SQL文未送信)、DBアクセス処理プログラム35によってDBサーバ20へとSQL文を送信しており、送信が完了するまでの状態を示す「_DBC_SEND_SENDING」(SQL文送信中)、DBアクセス処理プログラム35によってDBサーバ20へ送信するSQL文がスプールされ、不揮発性のメモリにSQL文が保持されている状態を示す「_DBC_SEND_SPOOLED」(SQL文スプール)、DBアクセス処理プログラム35によるDBサーバ20へのSQL文の送信が完了した状態を示す「_DBC_SEND_COMPLETE」(SQL文送信完了)がある。
<動作>
次に、本実施形態におけるPLC30の動作について、図面を用いて詳しく説明する。実施の形態1における動作の概要は、以下のとおりである。PC10は、ユーザの操作入力に基づいて、PLC30で実行させるユーザプログラムを作成する。PLC30は、PC10からユーザプログラムを受信して記憶する。PLC30は、シーケンス命令プログラム34によるユーザプログラム32の実行に伴ってDBアクセス処理プログラム35を呼び出す。PLC30は、ユーザプログラム32がDBサーバ20へアクセスするための処理、例えばSQL文の生成と送信等をDBアクセス処理プログラム35により行う。
図7は、DBアクセス処理プログラム35によるDBサーバ20へのアクセス処理と、DBサーバ20へのアクセスの状態を示す出力変数Stateの出力とを示す図である。
ステップS11において、PLC30は、DBアクセス処理プログラム35によって、DBサーバ20へアクセスするための値(DBサーバ20へ書き込む対象となるデータであって、メモリに蓄積されたデータの現在値)を読み出す。このときの出力変数Stateの出力は、SQL文の未送信を示す「_DBC_SEND_UNSENT」である。
ステップS13において、PLC30は、DBアクセス処理プログラム35によって、DBサーバ20へアクセスするためのSQL文を生成してDBサーバ20へ送信する。このときの出力変数Stateの出力は、SQL文が送信中の状態であることを示す「_DBC_SEND_SENDING」である。
ステップS15において、PLC30は、DBアクセス処理プログラム35によって、DBサーバ20に対して送信したSQL文について、DBサーバ20からのAck応答(送信Ack)があるか、タイムアウトするまで待機する。このときの出力変数Stateの出力は、SQL文が送信中であることを示す「_DBC_SEND_SENDING」である。
ステップS17において、PLC30は、DBアクセス処理プログラム35によって、DBサーバ20との通信においてエラーを受信したか、またはAck応答を受信する処理がタイムアウトしたかの少なくともいずれか一方があったか判定する。このときの出力変数Stateの出力は、SQL文が送信中であることを示す「_DBC_SEND_SENDING」である。ステップS17において肯定的な判定結果の場合、PLC30は、DBアクセス処理プログラム35によって、ステップS21の処理を行い、判定結果が否定的な場合、DBアクセス処理プログラム35によってステップS19の処理を行う。
ステップS19(DBアクセス処理プログラム35によるDBサーバ20へのSQL文の送信が正常に終了)において、PLC30は、DBアクセス処理プログラム35によって、DBアクセス処理プログラム35を呼び出したプログラムに対してDBサーバ20へのアクセスが完了したことを示す応答を出力する。このときの出力変数Stateの出力は、SQL文の送信が完了したことを示す「_DBC_SEND_COMPLETE」である。
ステップS21において、PLC30は、DBアクセス処理プログラム35によって、DBサーバ20への送信が正常に終了しなかったSQL文を不揮発性のメモリにスプールする。スプールが完了するまでの間、出力変数Stateの出力は、SQL文が送信中であることを示す「_DBC_SEND_SENDING」である。
ステップS23において、PLC30は、DBアクセス処理プログラム35によるDBサーバ20へのアクセスが終了したことを示す応答を、DBアクセス処理プログラム35を呼び出したプログラムに対して出力する。このときの出力変数Stateの出力は、SQL文がスプールされていることを示す「_DBC_SEND_SPOOLED」である。
図8は、ユーザプログラム32の命令に従ってDBアクセス処理プログラム35によりDBサーバ20へのアクセスを開始し、出力変数Stateを出力する処理を示す図である。
(1)開始
ユーザプログラム32に含まれるDB命令60は、DBアクセス処理プログラム35を呼び出してDBサーバ20へアクセスするためのものであり、DBサーバ20への接続命令を示すDB_Connect命令61と、DBサーバ20にデータを挿入するDB_Insert命令62等を含む。出力変数StateをDBアクセス処理プログラム35に出力させる指示を含むDB命令60が実行されることで、PLC30は、DBアクセス処理プログラム35を呼び出して出力変数Stateの出力を開始する。
(2)現在値読み出し
PLC30は、DBアクセス処理プログラム35によってステップS11の処理を実行する。
(3)送信
PLC30は、DBアクセス処理プログラム35によってステップS13の処理を実行する。
(4)送信Ack
PLC30は、DBアクセス処理プログラム35によってステップS15およびステップS17の処理を実行する。
(5−1)障害発生時、(5−2)命令タイムアウト時
PLC30は、DBアクセス処理プログラム35によってステップS21の処理を実行し、不揮発性メモリ66にSQL文をスプールする。
(6−1)完了、(6−2)完了(スプール)
PLC30は、DBアクセス処理プログラム35によってステップS19またはステップS23の処理を実行する。
図9は、電断のタイミングと、出力変数Stateと、電断発生時に取りうる処置とを示す図である。
図9における電断のタイミング(1)開始、(2)現在値の読み出し、(3)送信、(4)送信Ack、(5−1)障害発生時、(5−2)命令タイムアウト時、(6−1)完了、(6−2)完了(スプール)は、図8で説明した各タイミングに対応する。図9を参照して、電断のタイミングが「(1)開始」と「(2)現在値の読み出し」の場合、DBアクセス処理プログラム35によるDBサーバ20へのSQL文の送信はなされていない。そのため、電断発生時に取りうる処置は、ユーザプログラムが実行されることによってDBアクセス処理プログラム35を再度呼び出すことによるSQL文の再送である。
電断のタイミングが「(3)送信、(4)送信Ack、(5−1)障害発生時、(5−2)命令タイムアウト時」の場合、DBアクセス処理プログラム35によるSQL文の送信がなされているため、電断発生時に取りうる処置は、DBサーバ20側のレコードの有無を確認し、DBサーバ20にレコードが記録されていない場合にSQL文を再送することとなる。
電断のタイミングが「(6−1)完了」の場合、DBアクセス処理プログラム35によるDBサーバ20へのSQL文の送信が完了しているため、電断発生時においても特段の処置は必要とされない。
電断のタイミングが「(6−2)完了(スプール)」の場合、SQL文がスプールされているため、電断発生時に取りうる処置は、スプールされているSQL文をDBアクセス処理プログラム35によって再送することである。
<ユーザプログラムの例>
上記のようにPLC30がDBアクセス処理プログラム35によってDBサーバ20へアクセスする際にアクセス状況をステータス情報51に出力する動作を説明した。ここで、DBアクセス処理プログラム35にステータス情報51を出力させるためのユーザプログラムの例と、電断発生時にリカバリするためのユーザプログラムの例を説明する。
図10は、DBアクセス処理プログラム35によりステータス情報51を出力させるためのユーザプログラムの一例を示す図である。
図10を参照して、例えば、ユーザプログラム32がDBアクセス処理プログラム35を呼び出すための命令(DB_Insert命令62等)において、DBアクセス処理プログラム35から出力されるDBサーバ20へのアクセス状況を格納する指示が含まれる。
図11は、電断発生時にリカバリするためのユーザプログラムの一例を示す図である。なお、図11は、ユーザプログラムの一例とともに、ファンクションブロック「DB_Insert」の一例を示している。図11を参照して、PLC30の電源投入後の1サイクル目(「P_First_RunMode」)に不揮発性のメモリに格納されたステータス情報51を参照するようユーザプログラムに命令を含める。電源投入後の1サイクル目のステータス情報51において、「_DBC_SEND_UNSENT」(SQL文未送信)と示されている場合は、SQL文を再送している。また、ステータス情報51において「_DBC_SEND_SENDING」(SQL文送信中)と示されている場合は、PLC30は、DBサーバ20のレコードの有無を確認し、確認結果に応じてSQL文を再送する。このように、リカバリプログラムは、SQL文の送信状況に応じた処理をPLC30に行わせることとしてもよい。
このように各実施形態について説明してきたが、これら実施形態を組み合わせてもよいことはいうまでもない。以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
今回開示された実施の形態はすべての点で例示であって制限的なものでないと考えられるべきである。この発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
101 CPU、102 ROM、103 RAM、104 通信インタフェース、105 ディスプレイ、106 入出力インタフェース、10 PC、12 プログラミングツール、14 命令実行状態取得部、16 プログラミング機能、20 DBサーバ、22 DBMS、24 DB、30 PLC、31 OS、32 ユーザプログラム、33 システムプログラム、34 シーケンス命令プログラム、35 DBアクセス処理プログラム、36 入出力処理プログラム、37 ツールインタフェース処理プログラム、38 スケジューラ、39 制御プログラム、40 PLC、51 接続設定情報。

Claims (7)

  1. コントローラであって、
    不揮発性のメモリと、
    制御対象を制御するためのユーザプログラムを実行する命令実行部と、
    データベースシステムと接続するための通信インタフェースと、
    前記データベースシステムへアクセスするためのアクセス命令を含む前記ユーザプログラムが前記実行されることにより、前記アクセス命令に応じた命令文を生成し、前記生成した命令文に基づいて前記データベースシステムへのアクセスを制御するアクセス処理部と、
    前記アクセス処理部が前記アクセス命令に応じて前記生成した命令文に基づく前記データベースシステムへのアクセス処理を開始してから当該命令文に基づく処理が完了するまでの間、前記命令文の実行状況を示すとともに前記ユーザプログラムの作成に利用可能なステータス情報を生成し、生成した前記ステータス情報を前記メモリに出力するステータス出力部とを備え、
    前記アクセス命令は、前記ステータス情報を前記ステータス出力部に出力させる指示を含む、
    コントローラ。
  2. 前記アクセス処理部は、
    前記命令文に基づく処理が完了するまでの間、前記命令文を前記メモリへ記憶させる命令出力部を含む、
    請求項1記載のコントローラ。
  3. 前記ステータス情報は、前記データベースシステムへアクセスするためのSQL文の送信状況を示す情報を含む、
    請求項1記載のコントローラ。
  4. 前記ステータス情報は、前記データベースシステムへアクセスするためのSQL文を前記メモリへ保留するか否かを示す情報を含む、
    請求項1記載のコントローラ。
  5. 前記ステータス情報に示される前記アクセスの状況に応じて前記データベースシステムへのアクセス処理のリカバリを行うリカバリプログラムを保持する保持部をさらに備え、
    所定の動作状態の時に、前記リカバリプログラムを実行する、
    請求項1記載のコントローラ。
  6. 前記リカバリプログラムは、前記コントローラから前記データベースシステムへ送信するSQL文の送信状況に応じてリカバリを行う、
    請求項5記載のコントローラ。
  7. コントローラの動作を制御するためのプログラムであって、前記コントローラは、プロセッサと、不揮発性のメモリと、データベースシステムと接続するための通信インタフェースとを備え、
    前記プログラムは、前記プロセッサに、
    前記データベースシステムへアクセスするためのアクセス命令を含むユーザプログラムが実行されることにより、前記アクセス命令に応じた命令文を生成し、前記生成した命令文に基づいて前記データベースシステムへのアクセスを制御するステップと、
    前記アクセスを制御するステップにより前記アクセス命令に応じて前記生成した命令文に基づく前記データベースシステムへのアクセス処理を開始してから当該命令文に基づく処理が完了するまでの間、前記命令文の実行状況を示すとともに前記ユーザプログラムの作成に利用可能なステータス情報を生成し、生成した前記ステータス情報を前記メモリに出力するステップとを実行させ、
    前記アクセス命令は、前記ステータス情報を前記メモリに出力する指示を含む、
    プログラム。
JP2012250658A 2012-11-14 2012-11-14 コントローラおよびプログラム Active JP6201298B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2012250658A JP6201298B2 (ja) 2012-11-14 2012-11-14 コントローラおよびプログラム
US14/078,710 US9824229B2 (en) 2012-11-14 2013-11-13 Controller with enhanced reliability
EP13192819.4A EP2733613B1 (en) 2012-11-14 2013-11-14 Controller and program
CN201310566385.3A CN103809502B (zh) 2012-11-14 2013-11-14 控制器及记录介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012250658A JP6201298B2 (ja) 2012-11-14 2012-11-14 コントローラおよびプログラム

Publications (3)

Publication Number Publication Date
JP2014099061A JP2014099061A (ja) 2014-05-29
JP2014099061A5 JP2014099061A5 (ja) 2016-01-07
JP6201298B2 true JP6201298B2 (ja) 2017-09-27

Family

ID=49554160

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012250658A Active JP6201298B2 (ja) 2012-11-14 2012-11-14 コントローラおよびプログラム

Country Status (4)

Country Link
US (1) US9824229B2 (ja)
EP (1) EP2733613B1 (ja)
JP (1) JP6201298B2 (ja)
CN (1) CN103809502B (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2866108A4 (en) 2012-06-22 2015-11-04 Omron Tateisi Electronics Co CONTROL DEVICE
JP6064749B2 (ja) * 2013-03-29 2017-01-25 オムロン株式会社 コントローラおよびプログラム
JP6600976B2 (ja) * 2015-04-20 2019-11-06 株式会社ジェイテクト プログラマブルコントローラのモニタ装置
JP6816554B2 (ja) 2017-02-22 2021-01-20 オムロン株式会社 制御システム、制御装置および制御プログラム
JP7331507B2 (ja) * 2019-07-08 2023-08-23 オムロン株式会社 コントローラ、制御システム、および制御方法
KR102143378B1 (ko) * 2020-02-24 2020-08-11 주식회사 대은계전 Plc 기반에 tf 메모리 방식을 이용한 설비 원격제어시스템

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06169528A (ja) * 1992-11-30 1994-06-14 Kansai Electric Power Co Inc:The 地中送電線事故復旧業務支援システム
US5325528A (en) * 1993-04-22 1994-06-28 Digital Equipment Corporation Distributed computation recovery management system and method
JP3253881B2 (ja) * 1997-01-06 2002-02-04 株式会社東芝 コンピュータシステムおよびそのシステムにおけるハイバネーション制御方法
US6859834B1 (en) * 1999-08-13 2005-02-22 Sun Microsystems, Inc. System and method for enabling application server request failover
US6983374B2 (en) * 2000-02-14 2006-01-03 Kabushiki Kaisha Toshiba Tamper resistant microprocessor
US20020156983A1 (en) * 2001-04-19 2002-10-24 International Business Machines Corporation Method and apparatus for improving reliability of write back cache information
JP2003280963A (ja) * 2002-03-22 2003-10-03 Ricoh Co Ltd 文書管理システム、復旧方法、復旧を実行させるためのプログラム、該プログラムを記録した記録媒体
JP4391793B2 (ja) * 2002-10-17 2009-12-24 パナソニック株式会社 ファイル更新装置
US20060212422A1 (en) * 2005-03-21 2006-09-21 Anil Khilani Efficiently executing commands against a large set of servers with near real time feedback of execution and presentation of the output of the commands
JP2006338145A (ja) * 2005-05-31 2006-12-14 Nippon Telegr & Teleph Corp <Ntt> 多重化データベースシステム及びその同期化方法、仲介装置、仲介プログラム
DE102006046643A1 (de) * 2006-09-29 2008-04-03 Phoenix Contact Gmbh & Co. Kg Speicherprogrammierbare Steuereinrichtung mit integriertem Datenbanktreiber
JP5088735B2 (ja) * 2007-12-07 2012-12-05 インターナショナル・ビジネス・マシーンズ・コーポレーション データベースへのアクセスを制御する技術
CN101211172A (zh) * 2007-12-25 2008-07-02 上海亚太计算机信息系统有限公司 一种采用缓冲模式的生产线实时数据采集方法
JP5541649B2 (ja) * 2008-07-14 2014-07-09 キヤノン株式会社 画像処理装置、その制御方法、及びプログラム
JP5376221B2 (ja) * 2009-03-31 2013-12-25 富士通株式会社 状態通知システム、状態通知装置、状態監視装置、状態検知装置、状態通知プログラムおよび状態通知方法
CN102456052B (zh) 2010-11-02 2013-04-10 江苏大学 一种嵌入式设备与数据库数据同步方法
JP5549556B2 (ja) * 2010-11-16 2014-07-16 富士電機株式会社 データ収集システム、データ収集システムの異常要因判定方法
CN102637008A (zh) * 2012-03-26 2012-08-15 唐山钢铁集团微尔自动化有限公司 一种热轧基础自动化控制数据安全时效的跟踪方法

Also Published As

Publication number Publication date
US9824229B2 (en) 2017-11-21
EP2733613A3 (en) 2015-05-13
JP2014099061A (ja) 2014-05-29
US20140136570A1 (en) 2014-05-15
CN103809502B (zh) 2018-04-20
EP2733613A2 (en) 2014-05-21
CN103809502A (zh) 2014-05-21
EP2733613B1 (en) 2020-03-11

Similar Documents

Publication Publication Date Title
JP6201298B2 (ja) コントローラおよびプログラム
JP6171386B2 (ja) コントローラ、情報処理装置およびプログラム
US9141336B2 (en) Data transfer device
CN103777972A (zh) 基于现场可编程门阵列的系统、配置方法以及升级方法
CN104570846A (zh) Fpga重配置控制器及其控制方法
US9317397B2 (en) Programmable logic controller (PLC) simulation system, PLC simulator, recording medium, and simulation method
CN109507991B (zh) 一种双轴伺服控制平台调试系统及方法
CN106528217B (zh) 一种现场可编程门阵列程序加载系统和方法
JP6442131B2 (ja) 制御システムおよび制御装置
JP6064749B2 (ja) コントローラおよびプログラム
CN106484587B (zh) 一种命名空间管理方法、装置及计算机系统
JP2011110687A (ja) ロボットコントロール・システム、ロボットコントロール方法
JP2008226111A (ja) 2重化コントローラシステム、その稼動系コントローラ
US20210405597A1 (en) Engineering device, engineering method, and information storage medium
JP7331507B2 (ja) コントローラ、制御システム、および制御方法
JP5036615B2 (ja) 制御装置
JP6175759B2 (ja) コントローラ、制御システム、プログラム、および情報処理装置
JP6205812B2 (ja) プログラム及び通信抑制方法
JP4527419B2 (ja) プログラムトレース方法およびトレース処理システム
JP5490267B2 (ja) データ転送装置
CN115291558A (zh) 一种plc顺序控制流程更正方法及相关组件
JP4716929B2 (ja) プログラムデバッグ支援処理装置及び通信用アダプタ並びにプログラムデバッグ支援処理プログラム
KR20090121755A (ko) 로봇 제어기 부트로더, 부트로더 관리 장치 및 로봇 응용프로그램 실행 방법
JP2007128413A (ja) プログラマブルコントローラ
JP2006157311A (ja) コンフィグ設定プログラム、コンフィグ設定装置、及びコンフィグ設定システム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151112

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20151112

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160708

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160719

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160906

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170221

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170403

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170814

R150 Certificate of patent or registration of utility model

Ref document number: 6201298

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150