JP2012194666A - Plcのcpuユニット、plc用のシステムプログラムおよびplc用のシステムプログラムを格納した記録媒体 - Google Patents
Plcのcpuユニット、plc用のシステムプログラムおよびplc用のシステムプログラムを格納した記録媒体 Download PDFInfo
- Publication number
- JP2012194666A JP2012194666A JP2011056772A JP2011056772A JP2012194666A JP 2012194666 A JP2012194666 A JP 2012194666A JP 2011056772 A JP2011056772 A JP 2011056772A JP 2011056772 A JP2011056772 A JP 2011056772A JP 2012194666 A JP2012194666 A JP 2012194666A
- Authority
- JP
- Japan
- Prior art keywords
- control program
- state
- referrer
- buffer
- execution
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/526—Mutual exclusion algorithms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/10—Plc systems
- G05B2219/13—Plc programming
- G05B2219/13005—Subroutine
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/10—Plc systems
- G05B2219/13—Plc programming
- G05B2219/13067—Use of variables, symbols in instructions, to indicate mechanisms, interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/52—Indexing scheme relating to G06F9/52
- G06F2209/523—Mode
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Programmable Controllers (AREA)
Abstract
【解決手段】システムプログラムは、制御プログラムの実行制御処理として、オーナー側制御プログラムを実行開始させるオーナー側開始処理と、オーナー側制御プログラムの実行が終了すると、そのオーナー側制御プログラムによって書き換えられるグローバル変数をグローバル変数領域からそのグローバル変数に対応する同期バッファにコピーするコピー処理と、リファラ側制御プログラムを実行開始させるリファラ側開始処理とを含む。
【選択図】図5
Description
たとえば、特許文献1(特開2007−140655号公報)には、モータを制御するモーション制御機能とシーケンス演算を実行するPLC機能とを1つのCPUで処理する装置において、基本クロックの1サイクルごとに、「定周期モーション制御処理および各軸処理」と「高速シーケンス処理」とを実行し、さらに各基本クロックサイクル内の残りの時間において、「低速シーケンス処理」または「非定周期モーション制御処理」を実行することが記載されている。また、低速シーケンス処理が基本クロックサイクル内に終了しない場合は、所定の基本クロック回数分の時間の停止後に残りの処理を実行することが記載されている。
本実施の形態に係るPLCは、機械や設備などの制御対象を制御する。本実施の形態に係るPLCは、その構成要素としてCPUユニットを含む。CPUユニットは、マイクロプロセッサと、記憶手段と、通信回路とを含む。記憶手段は、制御プログラム、プログラムの実行を制御するシステムプログラム、および制御プログラムが使用する変数についての属性データの格納に用いられる。マイクロプロセッサは、記憶手段に格納されたシステムプログラムおよび制御プログラムを実行する。通信回路は、出力データを送信しおよび記入力データを受信する。属性データは、変数が複数の制御プログラムから参照されるグローバル変数である場合に、その変数の書き換えができる1つのオーナー側制御プログラムの指定と、その変数の参照のみができる1つまたは複数のリファラ側制御プログラムの指定を含むことが可能である。まず、図1を参照して、本実施の形態に係るPLC1のシステム構成について説明する。
IOユニット14は、一般的な入出力処理に関するユニットであり、オン/オフといった2値化されたデータの入出力を司る。すなわち、IOユニット14は、検出スイッチ6などのセンサが何らかの対象物を検出している状態(オン)および何らの対象物も検出していない状態(オフ)のいずれであるかという情報を収集する。また、IOユニット14は、リレー7やアクチュエータといった出力先に対して、活性化するための指令(オン)および不活性化するための指令(オフ)のいずれかを出力する。
<B.CPUユニットのハードウェア構成>
次に、図2を参照して、CPUユニット13のハードウェア構成について説明する。図2は、本発明の実施の形態に係るCPUユニット13のハードウェア構成を示す模式図である。図2を参照して、CPUユニット13は、マイクロプロセッサ100と、チップセット102と、メインメモリ104と、不揮発性メモリ106と、システムタイマ108と、PLCシステムバスコントローラ120と、フィールドネットワークコントローラ140と、USBコネクタ110とを含む。チップセット102と他のコンポーネントとの間は、各種のバスを介してそれぞれ結合されている。
次に、図3を参照して、本実施の形態に係る各種機能を提供するためのソフトウェア群について説明する。これらのソフトウェアに含まれる命令コードは、適切なタイミングで読み出され、CPUユニット13のマイクロプロセッサ100によって実行される。
ユーザプログラム236は、上述したように、ユーザにおける制御目的(たとえば、対象のラインやプロセス)に応じて作成される。ユーザプログラム236は、典型的には、CPUユニット13のマイクロプロセッサ100で実行可能なオブジェクトプログラム形式になっている。このユーザプログラム236は、PLCサポート装置8などにおいて、ラダー言語などによって記述されたソースプログラムがコンパイルされることで生成される。そして、生成されたオブジェクトプログラム形式のユーザプログラム236は、PLCサポート装置8から接続ケーブル10を介してCPUユニット13へ転送され、不揮発性メモリ106などに格納される。
次に、図4を参照して、CPUユニット13のメインメモリ104に構成される記憶領域について説明する。
(2) PLCシステムバスコントローラ120のDMA制御回路122が行う、メインメモリ104上のPLCシステムバス送信バッファ1043および/またはPLCシステムバス受信バッファ1044とPLCシステムバスコントローラ120内のバッファメモリ126との間のデータ転送のための、メインメモリ104上のPLCシステムバス送信バッファ1043および/またはPLCシステムバス受信バッファ1044へのアクセス
(3) フィールドネットワークコントローラ140のDMA制御回路142が行う、メインメモリ104上のフィールドネットワーク送信バッファ1045および/またはフィールドネットワーク受信バッファ1046とフィールドネットワークコントローラ140内のバッファメモリ146との間のデータ転送のための、メインメモリ104上のフィールドネットワーク送信バッファ1045および/またはフィールドネットワーク受信バッファ1046へのアクセス
<E.システムプログラムの全体処理動作>
次に、システムプログラム210の全体処理動作について説明する。
(2) 各リファラ側制御プログラムについて、そのリファラ側制御プログラムから参照されるグローバル変数ごとに、そのリファラ側制御プログラムがグローバル変数を参照するときにグローバル変数領域に代えて参照先とする同期バッファを記憶手段内に生成する処理
さらに、制御プログラム230の実行準備処理は、具体的な実装形態に応じたその他の実行準備処理を含みうる。
(4) オーナー側制御プログラムの実行が終了すると、そのオーナー側制御プログラムによって書き換えられるグローバル変数をグローバル変数領域からそのグローバル変数に対応する同期バッファにコピーするコピー処理
(5) リファラ側制御プログラムを実行開始させるリファラ側開始処理
さらに、制御プログラム230の実行制御処理は、具体的な実装形態に応じたその他の実行制御処理を含みうる。
<F.単一同期バッファ方式(実施の形態1)>
(f1:概要)
実施の形態1においては、複数の制御プログラムが時分割的に実行される場合を想定する。この際、複数の制御プログラムから参照されるグローバル変数が存在する。このグローバル変数に対して、書き換えが可能となっている1つのオーナー側制御プログラムが設定されるとともに、グローバル変数の参照のみが可能となっている1つまたは複数のリファラ側制御プログラムが設定される。以下、オーナー側制御プログラムに設定されている制御プログラムを「グローバル変数のオーナー」、あるいは、単に「オーナー」とも称す。以下、実行サイクルの大小関係の別に、制御プログラムのうちいずれかをグローバル変数のオーナーとして指定した場合について例示する。
以下に示す例では、実行優先度と実行サイクルの長さとが異なる複数の制御プログラム(制御プログラム1〜3)が実行される状態を想定する。このとき、制御プログラムの実行優先度が他の制御プログラム2および3に比較して高く、かつ、制御プログラム1の実行サイクルが他の制御プログラム2および3に比較して短いとする。このような状況下において、実行サイクルの短い方の制御プログラム1がグローバル変数のオーナー(オーナー側制御プログラム)に設定され、制御プログラム2および3がグローバル変数のリファラ(リファラ側制御プログラム)に設定されているとする。
以下に示す例では、グローバル変数のリファラ(リファラ側制御プログラム)に設定されている制御プログラム1の方がより高い実行優先度とより短い実行サイクルとを有しており、グローバル変数のオーナー(オーナー側制御プログラム)に設定されている制御プログラム2の方がより低い実行優先度とより長い実行サイクルとを有しているとする。
いずれの実施形態においても、制御プログラム1および制御プログラム2がある場合に、あるグローバル変数については制御プログラム1がオーナーであり、別のグローバル変数については制御プログラム2がオーナーであるということがありうる。システムプログラムの「制御プログラムの実行制御処理」の動作は、グローバル変数ごとに理解することができる。
(2) 各リファラ側制御プログラムについて、そのリファラ側制御プログラムから参照されるグローバル変数ごとに、そのリファラ側制御プログラムがグローバル変数を参照するときにグローバル変数領域に代えて参照先とする1つの同期バッファを提供する同期バッファ領域1042bを記憶手段(基本的には、メインメモリ104)内に生成する処理
また、システムプログラム210は、制御プログラム230の実行制御処理として、以下の(1)〜(4)の処理を含む。
(2) オーナー側制御プログラムの実行が終了すると、そのオーナー側制御プログラムによって書き換えられるグローバル変数をグローバル変数領域からそのグローバル変数に対応する同期バッファにコピーすることを、コピー先の同期バッファが書込禁止状態でないことを条件として行うコピー処理(図8のS220、および、図10のS240A)
(3) リファラ側制御プログラムを実行開始させる処理であって、さらに、その実行において参照する同期バッファを書込禁止状態とする処理を実行するリファラ側開始処理(図8のS232,S252、および、図10のS212A)
(4) リファラ側制御プログラムの実行が終了すると、書込禁止状態であった同期バッファの書込禁止状態を解除する書込禁止解除処理(図8のS240,S260、および、図10のS220A)
上述のような実施の形態1によれば、同期バッファへの書込禁止状態の期間の存在にもかかわらず、たとえば各制御プログラムに共通の制御サイクルの中で各制御プログラムの実行の優先度制御がなされているような場合には、リファラ側制御プログラムはその実行開始時における最新のグローバル変数の値を参照することができる。すなわち、このような場合には、リファラ側制御プログラムにおいて参照すべきグローバル変数の値は書込禁止状態ではない期間におけるコピー処理によって得ることができる。
(g1:概要)
上述の実施の形態1においては、「書込禁止」状態になっている同期バッファには、グローバル変数領域に格納されているデータはコピーされない構成を採用した例を示す。これに対して、同期バッファを参照するリファラ側制御プログラムの実行状態にかかわらず、グローバル変数領域に格納されているデータを同期バッファにコピーできる構成について説明する。
図11は、実施の形態2に係る実行動作を示すシーケンス図である。図11に示すシーケンス図においては、2つの制御プログラム(制御プログラム1および制御プログラム2)が時分割的に実行されるとし、優先度が高く実行サイクルが短い方の制御プログラム1がグローバル変数のオーナー(オーナー側制御プログラム)に設定されているとする。
以下に示す例では、グローバル変数のリファラ(リファラ側制御プログラム)に設定されている制御プログラム1の方がより高い実行優先度とより短い実行サイクルとを有しており、グローバル変数のオーナー(オーナー側制御プログラム)に設定されている制御プログラム2の方がより長い実行サイクルを有しているとする。
上述したように、実施の形態2においては、システムプログラム210は、制御プログラム230の実行準備処理として、以下の(1)および(2)の処理を含む。
(2) 各リファラ側制御プログラムについて、そのリファラ側制御プログラムから参照されるグローバル変数ごとに、第1同期バッファおよび第2同期バッファを同期バッファの組として提供する同期バッファ領域1042bを記憶手段(基本的には、メインメモリ104)内に生成する処理
第2同期バッファは、リファラ側制御プログラムがグローバル変数を参照するときに参照先とする同期バッファである。
(2) オーナー側制御プログラムの実行が終了すると、そのオーナー側制御プログラムによって書き換えられるグローバル変数をグローバル変数領域からそのグローバル変数に対応する第1同期バッファにコピーするコピー処理(図12のS220B、および、図14のS240C)
(3) リファラ側制御プログラムを実行開始させる処理であって、さらに、第1同期バッファに格納されているデータを第2同期バッファにコピーする処理を実行するリファラ側開始処理(図12のS232B、および、図14のS212C)
上述のような実施の形態2によれば、グローバル変数領域から第1同期バッファへのコピー処理を行うことが常に可能であり、さらにリファラ側制御プログラムの実行開始時に第1同期バッファから第2同期バッファへのコピーを行うので、リファラ側制御プログラムはその実行開始時における最新のグローバル変数の値を参照することができる。
(h1:概要)
実施の形態2においては、2つの同期バッファを使用してデータを順送りする形態について例示した。これに対して、実施の形態3においては、複数(典型的には、2つ)の同期バッファを選択的に利用することで、同期バッファを参照するリファラ側制御プログラムの実行状態にかかわらず、グローバル変数領域に格納されているデータを同期バッファにコピーできる構成について説明する。
図15は、実施の形態3に係る実行動作を示すシーケンス図である。図15に示すシーケンス図においては、2つの制御プログラム(制御プログラム1および制御プログラム2)が時分割的に実行されるとし、実行優先度が高く実行サイクルが短い方の制御プログラム1がグローバル変数のオーナー(オーナー側制御プログラム)に設定されているとする。
以下に示す例では、グローバル変数のリファラ(リファラ側制御プログラム)に設定されている制御プログラム1の方がより高い実行優先度とより短い実行サイクルとを有しており、グローバル変数のオーナー(オーナー側制御プログラム)に設定されている制御プログラム2の方がより低い実行優先度とより長い実行サイクルとを有しているとする。
次に、マイクロプロセッサ100がマルチコアである場合について例示する。図19および図20は、実施の形態3に係るマルチコアのマイクロプロセッサでの実行動作を示すシーケンス図である。より具体的には、図19および図20には、コア1が制御プログラム1を実行し、コア2が制御プログラム2を実行するものとする。このとき、コア1では、制御プログラム1に加えてシステムプログラムも実行される。そして、制御プログラム1がオーナー側制御プログラムに設定されているものとする。図19には、制御プログラム1の実行サイクルと制御プログラム2の実行サイクルとが実質的に同じである場合の例を示し、図20には、制御プログラム1の実行サイクルの方が制御プログラム2の実行サイクルより短い場合の例を示す。
次に、マイクロプロセッサ100がマルチコアである場合において、システムプログラムを実行するコアとは異なるコアで実行される制御プログラムがオーナー側制御プログラムに設定されている場合について例示する。
上述したように、実施の形態3においては、システムプログラム210は、制御プログラム230の実行準備処理として、以下の(1)および(2)の処理を含む。
(2) 各リファラ側制御プログラムについて、そのリファラ側制御プログラムから参照されるグローバル変数ごとに、そのリファラ側制御プログラムがグローバル変数を参照するときにグローバル変数領域に代えて参照先とする第1同期バッファおよび第2同期バッファを同期バッファの組(同期バッファ1Aおよび1B、または、同期バッファ2Aまたは2B)として記憶手段(基本的には、メインメモリ104)内に生成する処理
このとき、最新データを格納している状態(最新状態)を格納するための最新状態記録領域が記憶手段(基本的には、メインメモリ104)内に生成する処理も含まれる。
(2) リファラ側制御プログラムを実行開始させる処理であって、さらに、最新状態記録領域の内容によって特定される最新状態である同期バッファをそのリファラ側制御プログラムの実行において参照する参照先状態とし、かつ、当該同期バッファを書込禁止状態とする処理を実行するリファラ側開始処理(図16および図21のステップS232D、ならびに、図18および図23のステップS212E)
(3) オーナー側制御プログラムの実行が終了すると、そのオーナー側制御プログラムによって書き換えられるグローバル変数を、グローバル変数領域から、そのグローバル変数に対応する第1同期バッファおよび第2同期バッファのうち書込禁止状態ではないいずれかの同期バッファをコピー先として、コピーする処理であって、さらに、コピー先の同期バッファが最新状態であることを最新状態記録領域に記録する処理を実行するコピー処理(図16および図21のステップS220D、ならびに、図18および図23のステップS240E)
(4) リファラ側制御プログラムの実行が終了すると、書込禁止状態であった同期バッファの書込禁止状態を解除する書込禁止解除処理(図16および図21のステップS240D、ならびに、図18および図23のステップS220E)
上述のような実施の形態3によれば、各リファラ側制御プログラムについて、そのリファラ側制御プログラムから参照されるグローバル変数ごとに同期バッファが2つあり、常に少なくとも1つの同期バッファに書込可能であるので、いつでもコピー処理が可能である。さらに、リファラ側制御プログラムの実行開始時に、最新状態記録領域の内容に基づいて、コピーされた最新データが格納されている同期バッファを参照先とすることにより、リファラ側制御プログラムはその実行開始時における最新のグローバル変数の値を参照することができる。
(i1:概要)
上述の実施の形態3においては、グローバル変数領域1に格納されているデータがコピーされた同期バッファを「書込禁止」状態に設定することで、グローバル変数領域1との間で同期を保つ構成を説明した。これに対して、実施の形態4および5では、同期バッファを「書込先」状態と「参照先」状態とに設定し、これらの状態を入れ替えることにより、グローバル変数領域1との間で同期を保つ構成が採用される。特に、実施の形態4においては、最新データ更新フラグを利用して同期バッファの状態の入れ替えを制御する構成について例示する。
図24および図25は、実施の形態4に係るマルチコアのマイクロプロセッサでの実行動作を示すシーケンス図である。より具体的には、図24および図25には、コア1が制御プログラム1を実行し、コア2が制御プログラム2を実行するものとする。このとき、コア1では、制御プログラム1に加えてシステムプログラムも実行される。そして、制御プログラム1がオーナー側制御プログラムに設定されているものとする。図24には、制御プログラム1の実行サイクルと制御プログラム2の実行サイクルとが実質的に同じである場合の例を示し、図25には、制御プログラム1の実行サイクルの方が制御プログラム2の実行サイクルより短い場合の例を示す。
次に、マイクロプロセッサ100がマルチコアである場合において、システムプログラムを実行するコアとは異なるコアで実行される制御プログラムがオーナー側制御プログラムに設定されている場合について例示する。
上述したように、実施の形態4においては、システムプログラム210は、制御プログラム230の実行準備処理として、以下の(1)〜(3)の処理を含む。
(2) 各リファラ側制御プログラムについて、そのリファラ側制御プログラムから参照されるグローバル変数ごとに、そのリファラ側制御プログラムがグローバル変数を参照するときにグローバル変数領域に代えて参照先とする、第1同期バッファおよび第2同期バッファを同期バッファの組(同期バッファ1Aおよび1B、または、同期バッファ2Aまたは2B)として記憶手段(基本的には、メインメモリ104)内に生成する処理
(3) グローバル変数によって関係付けられるオーナー側制御プログラムとリファラ側制御プログラムとの組み合わせごとに最新データ更新フラグを記憶手段(基本的には、メインメモリ104)内に生成する処理
第1同期バッファおよび第2同期バッファは、グローバル変数領域からグローバル変数をコピー可能な状態である「書込先」状態、および、リファラ側制御プログラムから参照可能な状態である「参照先」状態のうち、いずれかの状態が重複せずに付与される。
(2) オーナー側制御プログラムの実行が終了すると、そのオーナー側制御プログラムによって書き換えられるグローバル変数を、グローバル変数領域から、そのグローバル変数に対応する書込先状態である同期バッファにコピーする処理であって、さらに、当該コピー処理に関連する最新データ更新フラグをオンにする処理を実行するコピー処理(図26のステップS220G、および、図28のステップS240H)
(3) リファラ側制御プログラムを実行開始させる処理であって、さらに、実行開始させるリファラ側制御プログラムの同期バッファについて、最新データを格納している同期バッファが書込先状態であることを条件として(すなわち、実行開始させるリファラ側制御プログラムの同期バッファに関連する最新データ更新フラグがオンであることを条件として)、書込先状態である同期バッファおよび参照先状態である同期バッファの書込先状態と参照先状態とを入れ替える第3入替処理と、当該オン状態であった最新データ更新フラグをオフにする処理とを実行するリファラ側開始処理(図26のステップS232G、および、図28のステップS212H)
上述のような実施の形態4によれば、各リファラ側制御プログラムについて、そのリファラ側制御プログラムから参照されるグローバル変数ごとに同期バッファが2つあり、リファラ側開始処理において同期バッファの書込先状態と参照先状態との入替処理(第3入替処理)をしている間の短い時間を除き、常にいずれかの同期バッファが書込先状態であるので、いつでもコピー処理が可能である。さらに、リファラ側制御プログラムの実行開始時に、最新データ更新フラグの状態に基づいて、コピーされた最新データが格納されている同期バッファを参照先とすることにより、リファラ側制御プログラムはその実行開始時における最新のグローバル変数の値を参照することができる。
(j1:概要)
上述したように、実施の形態5においては、コピーされた最新データが格納されている同期バッファを参照先として識別するための情報を扱う。
実施の形態5に係るマルチコアのマイクロプロセッサでの実行動作は、上述した図24および図25のシーケンス図に示す。但し、図24および図25は、上述の実施の形態4と共通的に説明するためのシーケンス図であり、実施の形態5においては、同期バッファ2Aおよび2Bの時間軸に沿って示した「最新」状態の識別についてのみ着目し、「最新データ更新フラグ」は不要となる。
次に、マイクロプロセッサ100がマルチコアである場合において、システムプログラムを実行するコアとは異なるコアで実行される制御プログラムがオーナー側制御プログラムに設定されている場合について例示する。
上述したように、実施の形態5においては、システムプログラム210は、制御プログラム230の実行準備処理として、以下の(1)〜(3)の処理を含む。
(2) 各リファラ側制御プログラムについて、そのリファラ側制御プログラムから参照されるグローバル変数ごとに、そのリファラ側制御プログラムがグローバル変数を参照するときにグローバル変数領域に代えて参照先とする、第1同期バッファおよび第2同期バッファを同期バッファの組(同期バッファ1Aおよび1B、または、同期バッファ2Aまたは2B)として記憶手段内に生成する処理
(3) 最新状態記録領域を記憶手段(基本的には、メインメモリ104)内に生成する処理
第1同期バッファおよび第2同期バッファは、グローバル変数領域からグローバル変数をコピー可能な状態である「書込先」状態、および、リファラ側制御プログラムから参照可能な状態である「参照先」状態のうち、いずれかの状態が重複せずに付与される。
(2) オーナー側制御プログラムの実行が終了すると、そのオーナー側制御プログラムによって書き換えられるグローバル変数を、グローバル変数領域から、そのグローバル変数に対応する書込先状態である同期バッファにコピーする処理であって、さらに、コピー先の同期バッファが最新状態であることを最新状態記録領域に記録する処理を実行するコピー処理(図29のステップS220I、および、図30のステップS240J)
(3) リファラ側制御プログラムを実行開始させる処理であって、さらに、実行開始させるリファラ側制御プログラムの同期バッファについて、最新状態記録領域の内容によって特定される最新状態である同期バッファが書込先状態であることを条件として、書込先状態である同期バッファおよび参照先状態である同期バッファの書込先状態と参照先状態とを入れ替える第3入替処理を実行するリファラ側開始処理(図29のステップS232I、および、図30のステップS212J)
なお、リファラ側開始処理は、次のように説明することもできる。すなわち、リファラ側制御プログラムを実行開始させる処理であって、さらに、最新状態記録領域の内容によって特定される最新状態である同期バッファをそのリファラ側制御プログラムの実行において参照する参照先状態とし、かつ、参照先状態とする同期バッファと同じ組に属する他方の同期バッファを書込先状態とする処理を実行するリファラ側開始処理。
(k1:概要)
上述の実施の形態4においては、最新データ更新フラグを利用して、2つの同期バッファにデータを格納する構成について例示したが、実施の形態6においては、3つの同期バッファにデータを格納する構成について例示する。すなわち、実施の形態4の構成を3つの同期バッファに拡張した構成について例示する。
図31および図32は、実施の形態6に係るマルチコアのマイクロプロセッサでの実行動作を示すシーケンス図である。より具体的には、図31および図32には、コア1が制御プログラム1を実行し、コア2が制御プログラム2を実行するものとする。このとき、コア1では、制御プログラム1に加えてシステムプログラムも実行される。そして、制御プログラム1がオーナー側制御プログラムに設定されているものとする。図31には、制御プログラム1の実行サイクルと制御プログラム2の実行サイクルとが実質的に同じである場合の例を示し、図32には、制御プログラム1の実行サイクルの方が制御プログラム2の実行サイクルより短い場合の例を示す。
次に、マイクロプロセッサ100がマルチコアである場合において、システムプログラムを実行するコアとは異なるコアで実行される制御プログラムがオーナー側制御プログラムに設定されている場合について例示する。
上述したように、実施の形態6においては、システムプログラム210は、制御プログラム230の実行準備処理として、以下の(1)〜(3)の処理を含む。
(2) 各リファラ側制御プログラムについて、そのリファラ側制御プログラムから参照されるグローバル変数ごとに、そのリファラ側制御プログラムがグローバル変数を参照するときにグローバル変数領域に代えて参照先とする、第1同期バッファ、第2同期バッファおよび第3同期バッファを同期バッファの組(同期バッファ1A,1B,1C、または、同期バッファ2A,2B,2C)として記憶手段内に生成する処理
(3) グローバル変数によって関係付けられるオーナー側制御プログラムとリファラ側制御プログラムとの組み合わせごとに最新データ更新フラグを記憶手段内に生成する処理
このとき、第1同期バッファ、第2同期バッファ、および第3同期バッファは、グローバル変数領域からグローバル変数をコピー可能な状態である「書込先」状態、リファラ側制御プログラムから参照可能な状態である「参照先」状態、「待機」状態のいずれかの状態が重複せずに付与される。
(2) オーナー側制御プログラムの実行が終了すると、そのオーナー側制御プログラムによって書き換えられるグローバル変数を、グローバル変数領域から、そのグローバル変数に対応する書込先状態である同期バッファにコピーする処理であって、さらに、コピー先となった書込先状態である同期バッファおよびその同期バッファと同じ組の中で待機状態である同期バッファの書込先状態と待機状態とを入れ替える第1入替処理と、当該コピーする処理に関連する最新データ更新フラグをオンにする処理とを実行するコピー処理(図33のステップS220K、および、図35のステップS240L)
(3) リファラ側制御プログラムを実行開始させる処理であって、さらに、実行開始させるリファラ側制御プログラムの同期バッファについて、最新データを格納している同期バッファが待機状態であることを条件として(すなわち、実行開始させるリファラ側制御プログラムの同期バッファに関連する最新データ更新フラグがオンであることを条件として)、待機状態である同期バッファおよび参照先状態である同期バッファの待機状態と参照先状態とを入れ替える第2入替処理と、当該オン状態であった最新データ更新フラグをオフにする処理を実行するリファラ側開始処理(図33のステップS232K、および、図35のステップS212L)
上述のような実施の形態6によれば、各リファラ側制御プログラムについて、そのリファラ側制御プログラムから参照されるグローバル変数ごとに同期バッファが3つあり、常にいずれかの同期バッファが書込先状態であるので、いつでもコピー処理が可能である。さらに、リファラ側制御プログラムの実行開始時に、コピーされた最新データが格納されている同期バッファを参照先とすることにより、リファラ側制御プログラムはその実行開始時における最新のグローバル変数の値を参照することができる。
(l1:概要)
上述の実施の形態5においては、コピーされた最新データが格納されている同期バッファを参照先として識別するための情報を利用して、2つの同期バッファにデータを格納する構成について例示したが、実施の形態7においては、3つの同期バッファにデータを格納する構成について例示する。すなわち、実施の形態5の構成を3つの同期バッファに拡張した構成について例示する。
実施の形態7に係るマルチコアのマイクロプロセッサでの実行動作は、上述した図31および図32のシーケンス図に示す。但し、図31および図32は、上述の実施の形態6と共通的に説明するためのシーケンス図であり、実施の形態7においては、同期バッファ2A,2B,2Cの時間軸に沿って示した「最新」状態の識別についてのみ着目し、「最新データ更新フラグ」は不要となる。
次に、マイクロプロセッサ100がマルチコアである場合において、システムプログラムを実行するコアとは異なるコアで実行される制御プログラムがオーナー側制御プログラムに設定されている場合について例示する。
上述したように、実施の形態7においては、システムプログラム210は、制御プログラム230の実行準備処理として、以下の(1)〜(3)の処理を含む。
(2) 各リファラ側制御プログラムについて、そのリファラ側制御プログラムから参照されるグローバル変数ごとに、そのリファラ側制御プログラムがグローバル変数を参照するときにグローバル変数領域に代えて参照先とする、第1同期バッファ、第2同期バッファおよび第3同期バッファを同期バッファの組(同期バッファ1A,1B,1C、または、同期バッファ2A,2B,2C)として記憶手段内に生成する処理
(3) 最新状態記録領域を記憶手段内に生成する処理
第1同期バッファ、第2同期バッファ、および第3同期バッファは、グローバル変数領域からグローバル変数をコピー可能な状態である「書込先」状態、リファラ側制御プログラムから参照可能な状態である「参照先」状態、「待機」状態のいずれかの状態が重複せずに付与される。
(2) オーナー側制御プログラムの実行が終了すると、そのオーナー側制御プログラムによって書き換えられるグローバル変数を、グローバル変数領域から、そのグローバル変数に対応する書込先状態である同期バッファにコピーする処理であって、さらに、コピー先となった書込先状態である同期バッファおよびその同期バッファと同じ組の中で待機状態である同期バッファの書込先状態と待機状態とを入れ替える第1入替処理と、コピー先の同期バッファが最新状態であることを最新状態記録領域に記録する処理とを実行するコピー処理(図36のステップS220M、および、図37のステップS240N)
(3) リファラ側制御プログラムを実行開始させる処理であって、さらに、実行開始させるリファラ側制御プログラムの同期バッファについて、最新状態記録領域の内容によって特定される最新状態である同期バッファが待機状態であることを条件として、待機状態である同期バッファおよび参照先状態である同期バッファの待機状態と参照先状態とを入れ替える第2入替処理を実行するリファラ側開始処理(図36のステップS232M、および、図37のステップS212N)
なお、リファラ側開始処理は、次のように説明することもできる。すなわち、リファラ側制御プログラムを実行開始させる処理であって、さらに、最新状態記録領域の内容によって特定される最新状態である同期バッファをそのリファラ側制御プログラムの実行において参照する参照先状態とし、かつ、参照先状態とする同期バッファと同じ組に属する同期バッファであって書込先状態でない同期バッファを待機状態とする処理を実行するリファラ側開始処理。
次に、PLC1で実行されるプログラムの作成およびPLC1のメンテナンスなどを行うためのPLCサポート装置8について説明する。
Claims (30)
- 制御対象を制御するPLCのCPUユニットであって、
マイクロプロセッサと、
記憶手段と、
通信回路と、を備え、
前記PLCのCPUユニットは、出力データの送信と、入力データの受信と、前記入力データを使用して前記出力データを生成する制御プログラムの実行とを繰り返すことによって前記制御対象を制御するように構成されており、
前記記憶手段は、前記制御プログラムと、前記制御プログラムの実行を制御するシステムプログラムと、前記制御プログラムが使用する変数についての属性データとの格納に用いられ、
前記マイクロプロセッサは、前記記憶手段に格納された前記システムプログラムおよび前記制御プログラムを実行し、
前記通信回路は、前記出力データを送信しおよび前記入力データを受信し、
前記属性データは、前記変数が複数の前記制御プログラムから参照されるグローバル変数である場合に、その変数の書き換えができる1つのオーナー側制御プログラムの指定と、その変数の参照のみができる1つまたは複数のリファラ側制御プログラムの指定とを含むことが可能であり、
前記システムプログラムは、前記制御プログラムの実行準備処理として、
グローバル変数を格納するグローバル変数領域を前記記憶手段内に生成する処理と、
各リファラ側制御プログラムについて、そのリファラ側制御プログラムから参照されるグローバル変数ごとに、そのリファラ側制御プログラムがグローバル変数を参照するときに前記グローバル変数領域に代えて参照先とする同期バッファを前記記憶手段内に生成する処理とを含み、
前記システムプログラムは、前記制御プログラムの実行制御処理として、
オーナー側制御プログラムを実行開始させるオーナー側開始処理と、
オーナー側制御プログラムの実行が終了すると、そのオーナー側制御プログラムによって書き換えられるグローバル変数を前記グローバル変数領域からそのグローバル変数に対応する前記同期バッファにコピーするコピー処理と、
リファラ側制御プログラムを実行開始させるリファラ側開始処理とを含む、PLCのCPUユニット。 - 前記同期バッファを生成する処理は、各リファラ側制御プログラムについて、そのリファラ側制御プログラムから参照されるグローバル変数ごとに、第1同期バッファおよび第2同期バッファを同期バッファの組として生成する処理であり、
前記第1同期バッファおよび前記第2同期バッファは、前記グローバル変数領域からグローバル変数をコピー可能な状態である書込先状態、および、リファラ側制御プログラムから参照可能な状態である参照先状態、のいずれかの状態が重複せずに付与されるものであり、
前記コピー処理は、前記書込先状態である同期バッファにコピーする処理である、請求項1に記載のPLCのCPUユニット。 - 前記同期バッファを生成する処理は、各リファラ側制御プログラムについて、そのリファラ側制御プログラムから参照されるグローバル変数ごとに、前記第1同期バッファと、前記第2同期バッファと、第3同期バッファとを同期バッファの組として生成する処理であり、
前記第1同期バッファ、前記第2同期バッファおよび前記第3同期バッファは、前記書込先状態、前記参照先状態、待機状態、のいずれかの状態が重複せずに付与されるものであり、
前記コピー処理は、さらに、コピー先となった前記書込先状態である同期バッファおよびその同期バッファと同じ組の中で前記待機状態である同期バッファの書込先状態と待機状態とを入れ替える第1入替処理を含み、
前記リファラ側開始処理は、さらに、実行開始させるリファラ側制御プログラムの同期バッファについて、最新データを格納している同期バッファが前記待機状態であることを条件として、前記待機状態である同期バッファおよび前記参照先状態である同期バッファの待機状態と参照先状態とを入れ替える第2入替処理を含む、請求項2に記載のPLCのCPUユニット。 - 前記システムプログラムは、前記制御プログラムの実行準備処理として、さらに、グローバル変数によって関係付けられるオーナー側制御プログラムとリファラ側制御プログラムとの組み合わせごとに最新データ更新フラグを前記記憶手段内に生成する処理を含み、
前記コピー処理は、さらに、当該コピー処理に関連する最新データ更新フラグをオンにする処理を含み、
前記リファラ側開始処理は、さらに、実行開始させるリファラ側制御プログラムの同期バッファに関連する最新データ更新フラグがオンであることを条件として、前記第2入替処理および当該最新データ更新フラグをオフにする処理を含み、
それにより、最新データを格納している同期バッファが前記待機状態であることを条件として実行する前記第2入替処理を実現する、請求項3に記載のPLCのCPUユニット。 - 前記システムプログラムは、前記制御プログラムの実行準備処理として、さらに、最新状態記録領域を前記記憶手段内に生成する処理を含み、
前記コピー処理は、さらに、コピー先の同期バッファが最新状態であることを前記最新状態記録領域に記録する処理を含み、
前記リファラ側開始処理は、さらに、前記最新状態記録領域の内容によって特定される最新状態である同期バッファが前記待機状態であることを条件として実行される前記第2入替処理を含む、請求項3に記載のPLCのCPUユニット。 - 前記リファラ側開始処理は、さらに、実行開始させるリファラ側制御プログラムの同期バッファについて、最新データを格納している同期バッファが前記書込先状態であることを条件として、前記書込先状態である同期バッファおよび前記参照先状態である同期バッファの書込先状態と参照先状態とを入れ替える第3入替処理を含む、請求項2に記載のPLCのCPUユニット。
- 前記システムプログラムは、前記制御プログラムの実行準備処理として、さらに、グローバル変数によって関係付けられるオーナー側制御プログラムとリファラ側制御プログラムとの組み合わせごとに最新データ更新フラグを前記記憶手段内に生成する処理を含み、
前記コピー処理は、さらに、当該コピー処理に関連する最新データ更新フラグをオンにする処理を含み、
前記リファラ側開始処理は、さらに、実行開始させるリファラ側制御プログラムの同期バッファに関連する最新データ更新フラグがオンであることを条件として、前記第3入替処理および当該最新データ更新フラグをオフにする処理を含み、
それにより、最新データを格納している同期バッファが前記書込先状態であることを条件として実行される前記第3入替処理を実現する、請求項6に記載のPLCのCPUユニット。 - 前記システムプログラムは、前記制御プログラムの実行準備処理として、さらに、最新状態記録領域を前記記憶手段内に生成する処理を含み、
前記コピー処理は、さらに、コピー先の同期バッファが最新状態であることを前記最新状態記録領域に記録する処理を含み、
前記リファラ側開始処理は、さらに、前記最新状態記録領域の内容によって特定される最新状態である同期バッファが前記書込先状態であることを条件として実行される前記第3入替処理を含む、請求項6に記載のPLCのCPUユニット。 - 前記同期バッファを生成する処理は、各リファラ側制御プログラムについて、そのリファラ側制御プログラムから参照されるグローバル変数ごとに、第1同期バッファおよび第2同期バッファを同期バッファの組として生成する処理であり、
前記システムプログラムは、前記制御プログラムの実行準備処理として、さらに、最新状態記録領域を前記記憶手段内に生成する処理を含み、
前記コピー処理は、さらに、コピー先の同期バッファが最新状態であることを前記最新状態記録領域に記録する処理を含み、
前記リファラ側開始処理は、さらに、前記最新状態記録領域の内容によって特定される最新状態である同期バッファをそのリファラ側制御プログラムの実行において参照する参照先状態とする処理を含む、請求項1に記載のPLCのCPUユニット。 - 前記同期バッファを生成する処理は、各リファラ側制御プログラムについて、そのリファラ側制御プログラムから参照されるグローバル変数ごとに、前記第1同期バッファ、前記第2同期バッファおよび第3同期バッファを同期バッファの組として生成する処理であり、
前記第1同期バッファ、前記第2同期バッファおよび前記第3同期バッファは、前記グローバル変数領域からグローバル変数をコピー可能な状態である書込先状態、前記参照先状態、待機状態、のいずれかの状態が重複せずに付与されるものであり、
前記コピー処理は、前記書込先状態である同期バッファにコピーする処理であって、さらに、コピー先となった前記書込先状態である同期バッファおよびその同期バッファと同じ組の中で前記待機状態である同期バッファの書込先状態と待機状態とを入れ替える第1入替処理を含み、
前記リファラ側開始処理は、さらに、前記参照先状態とする同期バッファと同じ組に属する同期バッファであって前記書込先状態でない同期バッファを前記待機状態とする処理を含む、請求項9に記載のPLCのCPUユニット。 - 前記第1同期バッファおよび前記第2同期バッファは、前記グローバル変数領域からグローバル変数をコピー可能な状態である書込先状態、および、前記参照先状態、のいずれかの状態が重複せずに付与されるものであり、
前記コピー処理は、前記書込先状態である同期バッファにコピーする処理であり、
前記リファラ側開始処理は、さらに、前記参照先状態とする同期バッファと同じ組に属する他方の同期バッファを前記書込先状態とする処理を含む、請求項9に記載のPLCのCPUユニット。 - 前記リファラ側開始処理は、さらに、前記最新状態記録領域の内容によって特定される最新状態である同期バッファを書込禁止状態とする処理を含み、
前記システムプログラムは、前記制御プログラムの実行制御処理として、さらに、リファラ側制御プログラムの実行が終了すると、前記書込禁止状態であった同期バッファの前記書込禁止状態を解除する書込禁止解除処理を含み、
前記コピー処理は、前記第1同期バッファおよび前記第2同期バッファのうち前記書込禁止状態ではないいずれかの同期バッファをコピー先として、コピーする処理である、請求項9に記載のPLCのCPUユニット。 - 前記リファラ側開始処理は、さらに、その実行において参照する前記同期バッファを書込禁止状態とする処理を含み、
前記システムプログラムは、前記制御プログラムの実行制御処理として、さらに、リファラ側制御プログラムの実行が終了すると、前記書込禁止状態であった同期バッファの前記書込禁止状態を解除する書込禁止解除処理を含み、
前記コピー処理は、コピー先の前記同期バッファが前記書込禁止状態でないことを条件として実行される処理である、請求項1に記載のPLCのCPUユニット。 - 前記同期バッファを生成する処理は、各リファラ側制御プログラムについて、そのリファラ側制御プログラムから参照されるグローバル変数ごとに、1つの同期バッファを生成する処理である、請求項13に記載のPLCのCPUユニット。
- 前記同期バッファを生成する処理は、各リファラ側制御プログラムについて、そのリファラ側制御プログラムから参照されるグローバル変数ごとに、第1同期バッファおよび第2同期バッファを同期バッファの組として生成する処理であり、
前記システムプログラムは、前記制御プログラムの実行準備処理として、さらに、最新状態記録領域を前記記憶手段内に生成する処理を含み、
前記コピー処理は、前記第1同期バッファおよび第2同期バッファのうち前記書込禁止状態ではないいずれかの同期バッファをコピー先として、コピーする処理であって、さらに、コピー先の同期バッファが最新状態であることを前記最新状態記録領域に記録する処理を含み、
前記リファラ側開始処理は、さらに、前記最新状態記録領域の内容によって特定される最新状態である同期バッファをそのリファラ側制御プログラムの実行において参照する参照先状態とする処理を含む、請求項13に記載のPLCのCPUユニット。 - 前記同期バッファを生成する処理は、各リファラ側制御プログラムについて、そのリファラ側制御プログラムから参照されるグローバル変数ごとに、第1同期バッファおよび第2同期バッファを同期バッファの組として生成する処理であり、
前記第2同期バッファは、リファラ側制御プログラムがグローバル変数を参照するときに参照先とする同期バッファであり、
前記コピー処理は、前記第1同期バッファにコピーする処理であり、
前記リファラ側開始処理は、さらに、前記第1同期バッファに格納されているデータを前記第2同期バッファにコピーする処理を含む、請求項1に記載のPLCのCPUユニット。 - マイクロプロセッサと、記憶手段と、通信回路とを備え、出力データの送信と、入力データの受信と、前記入力データを使用して前記出力データを生成する制御プログラムの実行とを繰り返すことによって制御対象を制御するPLCのCPUユニットにおいて、前記記憶手段に格納されて前記マイクロプロセッサによって実行されるためのPLC用のシステムプログラムであって、
前記記憶手段は、前記制御プログラムと、前記制御プログラムの実行を制御する前記システムプログラムと、前記制御プログラムが使用する変数についての属性データとの格納に用いられ、
前記マイクロプロセッサは、前記システムプログラムに加えて、前記制御プログラムを実行し、
前記通信回路は、前記出力データを送信しおよび前記入力データを受信し、
前記属性データは、前記変数が複数の前記制御プログラムから参照されるグローバル変数である場合に、その変数の書き換えができる1つのオーナー側制御プログラムの指定と、その変数の参照のみができる1つまたは複数のリファラ側制御プログラムの指定とを含むことが可能であり、
前記システムプログラムは、前記マイクロプロセッサに、前記制御プログラムの実行準備処理として、
グローバル変数を格納するグローバル変数領域を前記記憶手段内に生成する処理と、
各リファラ側制御プログラムについて、そのリファラ側制御プログラムから参照されるグローバル変数ごとに、そのリファラ側制御プログラムがグローバル変数を参照するときに前記グローバル変数領域に代えて参照先とする同期バッファを前記記憶手段内に生成する処理とを実行させ、
前記システムプログラムは、前記マイクロプロセッサに、前記制御プログラムの実行制御処理として、
オーナー側制御プログラムを実行開始させるオーナー側開始処理と、
オーナー側制御プログラムの実行が終了すると、そのオーナー側制御プログラムによって書き換えられるグローバル変数を前記グローバル変数領域からそのグローバル変数に対応する前記同期バッファにコピーするコピー処理と、
リファラ側制御プログラムを実行開始させるリファラ側開始処理とを実行させる、PLC用のシステムプログラム。 - 前記同期バッファを生成する処理は、各リファラ側制御プログラムについて、そのリファラ側制御プログラムから参照されるグローバル変数ごとに、第1同期バッファおよび第2同期バッファを同期バッファの組として生成する処理であり、
前記第1同期バッファおよび前記第2同期バッファは、前記グローバル変数領域からグローバル変数をコピー可能な状態である書込先状態、および、リファラ側制御プログラムから参照可能な状態である参照先状態、のいずれかの状態が重複せずに付与されるものであり、
前記コピー処理は、前記書込先状態である同期バッファにコピーする処理である、請求項17に記載のPLC用のシステムプログラム。 - 前記同期バッファを生成する処理は、各リファラ側制御プログラムについて、そのリファラ側制御プログラムから参照されるグローバル変数ごとに、前記第1同期バッファと、前記第2同期バッファと、第3同期バッファとを同期バッファの組として生成する処理であり、
前記第1同期バッファ、前記第2同期バッファおよび前記第3同期バッファは、前記書込先状態、前記参照先状態、待機状態、のいずれかの状態が重複せずに付与されるものであり、
前記コピー処理は、さらに、コピー先となった前記書込先状態である同期バッファおよびその同期バッファと同じ組の中で前記待機状態である同期バッファの書込先状態と待機状態とを入れ替える第1入替処理を含み、
前記リファラ側開始処理は、さらに、実行開始させるリファラ側制御プログラムの同期バッファについて、最新データを格納している同期バッファが前記待機状態であることを条件として、前記待機状態である同期バッファおよび前記参照先状態である同期バッファの待機状態と参照先状態とを入れ替える第2入替処理を含む、請求項18に記載のPLC用のシステムプログラム。 - 前記リファラ側開始処理は、さらに、実行開始させるリファラ側制御プログラムの同期バッファについて、最新データを格納している同期バッファが前記書込先状態であることを条件として、前記書込先状態である同期バッファおよび前記参照先状態である同期バッファの書込先状態と参照先状態とを入れ替える第3入替処理を含む、請求項18に記載のPLC用のシステムプログラム。
- 前記同期バッファを生成する処理は、各リファラ側制御プログラムについて、そのリファラ側制御プログラムから参照されるグローバル変数ごとに、第1同期バッファおよび第2同期バッファを同期バッファの組として生成する処理であり、
前記システムプログラムは、前記マイクロプロセッサに、前記制御プログラムの実行準備処理として、さらに、最新状態記録領域を前記記憶手段内に生成する処理を実行させ、
前記コピー処理は、さらに、コピー先の同期バッファが最新状態であることを前記最新状態記録領域に記録する処理を含み、
前記リファラ側開始処理は、さらに、前記最新状態記録領域の内容によって特定される最新状態である同期バッファをそのリファラ側制御プログラムの実行において参照する参照先状態とする処理を含む、請求項17に記載のPLC用のシステムプログラム。 - 前記リファラ側開始処理は、さらに、その実行において参照する前記同期バッファを書込禁止状態とする処理を含み、
前記システムプログラムは、前記マイクロプロセッサに、前記制御プログラムの実行制御処理として、さらに、リファラ側制御プログラムの実行が終了すると、前記書込禁止状態であった同期バッファの前記書込禁止状態を解除する書込禁止解除処理を実行させ、
前記コピー処理は、コピー先の前記同期バッファが前記書込禁止状態でないことを条件として実行される処理である、請求項17に記載のPLC用のシステムプログラム。 - 前記同期バッファを生成する処理は、各リファラ側制御プログラムについて、そのリファラ側制御プログラムから参照されるグローバル変数ごとに、第1同期バッファおよび第2同期バッファを同期バッファの組として生成する処理であり、
前記第2同期バッファは、リファラ側制御プログラムがグローバル変数を参照するときに参照先とする同期バッファであり、
前記コピー処理は、前記第1同期バッファにコピーする処理であり、
前記リファラ側開始処理は、さらに、前記第1同期バッファに格納されているデータを前記第2同期バッファにコピーする処理を含む、請求項17に記載のPLC用のシステムプログラム。 - マイクロプロセッサと、記憶手段と、通信回路とを備え、出力データの送信と、入力データの受信と、前記入力データを使用して前記出力データを生成する制御プログラムの実行とを繰り返すことによって制御対象を制御するPLCのCPUユニットにおいて、前記記憶手段に格納されて前記マイクロプロセッサによって実行されるためのPLC用のシステムプログラムを格納した記録媒体であって、
前記記憶手段は、前記制御プログラムと、前記制御プログラムの実行を制御する前記システムプログラムと、前記制御プログラムが使用する変数についての属性データとの格納に用いられ、
前記マイクロプロセッサは、前記システムプログラムに加えて、前記制御プログラムを実行し、
前記通信回路は、前記出力データを送信しおよび前記入力データを受信し、
前記属性データは、前記変数が複数の前記制御プログラムから参照されるグローバル変数である場合に、その変数の書き換えができる1つのオーナー側制御プログラムの指定と、その変数の参照のみができる1つまたは複数のリファラ側制御プログラムの指定とを含むことが可能であり、
前記システムプログラムは、前記マイクロプロセッサに、前記制御プログラムの実行準備処理として、
グローバル変数を格納するグローバル変数領域を前記記憶手段内に生成する処理と、
各リファラ側制御プログラムについて、そのリファラ側制御プログラムから参照されるグローバル変数ごとに、そのリファラ側制御プログラムがグローバル変数を参照するときに前記グローバル変数領域に代えて参照先とする同期バッファを前記記憶手段内に生成する処理とを実行させ、
前記システムプログラムは、前記マイクロプロセッサに、前記制御プログラムの実行制御処理として、
オーナー側制御プログラムを実行開始させるオーナー側開始処理と、
オーナー側制御プログラムの実行が終了すると、そのオーナー側制御プログラムによって書き換えられるグローバル変数を前記グローバル変数領域からそのグローバル変数に対応する前記同期バッファにコピーするコピー処理と、
リファラ側制御プログラムを実行開始させるリファラ側開始処理とを実行させる、PLC用のシステムプログラムを格納した記録媒体。 - 前記同期バッファを生成する処理は、各リファラ側制御プログラムについて、そのリファラ側制御プログラムから参照されるグローバル変数ごとに、第1同期バッファおよび第2同期バッファを同期バッファの組として生成する処理であり、
前記第1同期バッファおよび前記第2同期バッファは、前記グローバル変数領域からグローバル変数をコピー可能な状態である書込先状態、および、リファラ側制御プログラムから参照可能な状態である参照先状態、のいずれかの状態が重複せずに付与されるものであり、
前記コピー処理は、前記書込先状態である同期バッファにコピーする処理である、請求項24に記載のPLC用のシステムプログラムを格納した記録媒体。 - 前記同期バッファを生成する処理は、各リファラ側制御プログラムについて、そのリファラ側制御プログラムから参照されるグローバル変数ごとに、前記第1同期バッファと、前記第2同期バッファと、第3同期バッファとを同期バッファの組として生成する処理であり、
前記第1同期バッファ、前記第2同期バッファおよび前記第3同期バッファは、前記書込先状態、前記参照先状態、待機状態、のいずれかの状態が重複せずに付与されるものであり、
前記コピー処理は、さらに、コピー先となった前記書込先状態である同期バッファおよびその同期バッファと同じ組の中で前記待機状態である同期バッファの書込先状態と待機状態とを入れ替える第1入替処理を含み、
前記リファラ側開始処理は、さらに、実行開始させるリファラ側制御プログラムの同期バッファについて、最新データを格納している同期バッファが前記待機状態であることを条件として、前記待機状態である同期バッファおよび前記参照先状態である同期バッファの待機状態と参照先状態とを入れ替える第2入替処理を含む、請求項25に記載のPLC用のシステムプログラムを格納した記録媒体。 - 前記リファラ側開始処理は、さらに、実行開始させるリファラ側制御プログラムの同期バッファについて、最新データを格納している同期バッファが前記書込先状態であることを条件として、前記書込先状態である同期バッファおよび前記参照先状態である同期バッファの書込先状態と参照先状態とを入れ替える第3入替処理を含む、請求項25に記載のPLC用のシステムプログラムを格納した記録媒体。
- 前記同期バッファを生成する処理は、各リファラ側制御プログラムについて、そのリファラ側制御プログラムから参照されるグローバル変数ごとに、第1同期バッファおよび第2同期バッファを同期バッファの組として生成する処理であり、
前記システムプログラムは、前記マイクロプロセッサに、前記制御プログラムの実行準備処理として、さらに、最新状態記録領域を前記記憶手段内に生成する処理を実行させ、
前記コピー処理は、さらに、コピー先の同期バッファが最新状態であることを前記最新状態記録領域に記録する処理を含み、
前記リファラ側開始処理は、さらに、前記最新状態記録領域の内容によって特定される最新状態である同期バッファをそのリファラ側制御プログラムの実行において参照する参照先状態とする処理を含む、請求項24に記載のPLC用のシステムプログラムを格納した記録媒体。 - 前記リファラ側開始処理は、さらに、その実行において参照する前記同期バッファを書込禁止状態とする処理を含み、
前記システムプログラムは、前記マイクロプロセッサに、前記制御プログラムの実行制御処理として、さらに、リファラ側制御プログラムの実行が終了すると、前記書込禁止状態であった同期バッファの前記書込禁止状態を解除する書込禁止解除処理を実行させ、
前記コピー処理は、コピー先の前記同期バッファが前記書込禁止状態でないことを条件として実行される処理である、請求項24に記載のPLC用のシステムプログラムを格納した記録媒体。 - 前記同期バッファを生成する処理は、各リファラ側制御プログラムについて、そのリファラ側制御プログラムから参照されるグローバル変数ごとに、第1同期バッファおよび第2同期バッファを同期バッファの組として生成する処理であり、
前記第2同期バッファは、リファラ側制御プログラムがグローバル変数を参照するときに参照先とする同期バッファであり、
前記コピー処理は、前記第1同期バッファにコピーする処理であり、
前記リファラ側開始処理は、さらに、前記第1同期バッファに格納されているデータを前記第2同期バッファにコピーする処理を含む、請求項24に記載のPLC用のシステムプログラムを格納した記録媒体。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011056772A JP4957853B1 (ja) | 2011-03-15 | 2011-03-15 | Plcのcpuユニット、plc用のシステムプログラムおよびplc用のシステムプログラムを格納した記録媒体 |
CN201180068881.5A CN103403684B (zh) | 2011-03-15 | 2011-03-22 | 可编程逻辑控制器的cpu单元 |
PCT/JP2011/056772 WO2012124136A1 (ja) | 2011-03-15 | 2011-03-22 | Plcのcpuユニット、plc用のシステムプログラムおよびplc用のシステムプログラムを格納した記録媒体 |
EP11860793.6A EP2672384B1 (en) | 2011-03-15 | 2011-03-22 | Cpu of plc, system program for plc, and recording medium storing system program for plc |
US14/017,904 US9618924B2 (en) | 2011-03-15 | 2013-09-04 | CPU of PLC, system program for PLC, and recording medium storing system program for PLC |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011056772A JP4957853B1 (ja) | 2011-03-15 | 2011-03-15 | Plcのcpuユニット、plc用のシステムプログラムおよびplc用のシステムプログラムを格納した記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP4957853B1 JP4957853B1 (ja) | 2012-06-20 |
JP2012194666A true JP2012194666A (ja) | 2012-10-11 |
Family
ID=46506007
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011056772A Active JP4957853B1 (ja) | 2011-03-15 | 2011-03-15 | Plcのcpuユニット、plc用のシステムプログラムおよびplc用のシステムプログラムを格納した記録媒体 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9618924B2 (ja) |
EP (1) | EP2672384B1 (ja) |
JP (1) | JP4957853B1 (ja) |
CN (1) | CN103403684B (ja) |
WO (1) | WO2012124136A1 (ja) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016194823A (ja) * | 2015-03-31 | 2016-11-17 | オムロン株式会社 | 制御装置 |
JP2016194831A (ja) * | 2015-03-31 | 2016-11-17 | オムロン株式会社 | 制御装置 |
KR20190026923A (ko) * | 2017-04-24 | 2019-03-13 | 미쓰비시덴키 가부시키가이샤 | 프로그래머블 로직 컨트롤러 시스템 및 엔지니어링 툴 프로그램 |
JP2019106225A (ja) * | 2019-04-08 | 2019-06-27 | オムロン株式会社 | 制御装置 |
JP2019153144A (ja) * | 2018-03-05 | 2019-09-12 | オムロン株式会社 | 制御装置、システムプログラム、制御方法 |
WO2021065033A1 (ja) * | 2019-10-03 | 2021-04-08 | オムロン株式会社 | プログラム開発装置およびプログラム開発装置を実現するためのプログラム |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105122158B (zh) * | 2013-04-16 | 2017-12-22 | 西门子公司 | 具有短延迟时间的可编程控制装置 |
JP2015130121A (ja) * | 2014-01-08 | 2015-07-16 | ヤマハ株式会社 | 中継装置 |
JP6626240B2 (ja) * | 2014-03-13 | 2019-12-25 | オムロン株式会社 | コントローラ |
EP3101494B1 (en) * | 2014-03-14 | 2018-06-20 | Omron Corporation | Control apparatus and control system |
JP6488830B2 (ja) | 2015-03-31 | 2019-03-27 | オムロン株式会社 | 制御装置 |
JP6356736B2 (ja) * | 2016-06-29 | 2018-07-11 | ファナック株式会社 | コントローラシステムおよび制御方法 |
JP6922583B2 (ja) * | 2017-09-15 | 2021-08-18 | オムロン株式会社 | 情報処理装置、情報処理方法、および、情報処理プログラム |
WO2019202888A1 (ja) * | 2018-04-19 | 2019-10-24 | 村田機械株式会社 | 排他制御システム及び排他制御方法 |
WO2019215919A1 (ja) * | 2018-05-11 | 2019-11-14 | 三菱電機株式会社 | コンパイラおよびプログラミング支援装置 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5119318A (en) * | 1989-04-17 | 1992-06-02 | Del Partners L.P. | Expert control system for real time management of automated factory equipment |
JP3447432B2 (ja) | 1995-06-07 | 2003-09-16 | 三菱電機株式会社 | ネットワークデータサーバ装置およびプログラマブルロジックコントローラシステム |
US6608638B1 (en) * | 2000-02-07 | 2003-08-19 | National Instruments Corporation | System and method for configuring a programmable hardware instrument to perform measurement functions utilizing estimation of the hardware implentation and management of hardware resources |
JP3783553B2 (ja) * | 2000-11-15 | 2006-06-07 | 株式会社デンソー | 情報処理装置 |
JP2003203062A (ja) * | 2002-01-09 | 2003-07-18 | National Institute Of Advanced Industrial & Technology | リアルタイム処理用共有メモリ制御方式及び方法、並びにそれを実行させるためのプログラム |
US7203553B2 (en) * | 2002-12-23 | 2007-04-10 | Siemens Energy & Automation, Inc. | Methods and structures for utilizing a memory device for a PLC |
JP3884417B2 (ja) * | 2003-08-08 | 2007-02-21 | 株式会社東芝 | クラスタシステム及びサーバプログラム |
JP2005129026A (ja) * | 2003-10-02 | 2005-05-19 | Omron Corp | プログラマブルコントローラおよび通信ユニットならびにコントローラシステムおよびデータ処理方法ならびに変数解決方法およびデータ受渡方法 |
DE102004017050A1 (de) | 2004-04-07 | 2005-10-27 | Robert Bosch Gmbh | Datenkonsistenz in Datenverarbeitungsanlagen |
US20080313413A1 (en) | 2004-07-27 | 2008-12-18 | Franz Hutner | Method and Device for Insuring Consistent Memory Contents in Redundant Memory Units |
JP2007140655A (ja) | 2005-11-15 | 2007-06-07 | Yaskawa Electric Corp | モーションコントローラ |
JP2010198600A (ja) | 2009-02-02 | 2010-09-09 | Omron Corp | 産業用コントローラ |
CN101950281B (zh) * | 2010-07-06 | 2015-11-25 | 无锡中星微电子有限公司 | 一种控制协处理器的方法和装置 |
-
2011
- 2011-03-15 JP JP2011056772A patent/JP4957853B1/ja active Active
- 2011-03-22 CN CN201180068881.5A patent/CN103403684B/zh active Active
- 2011-03-22 EP EP11860793.6A patent/EP2672384B1/en active Active
- 2011-03-22 WO PCT/JP2011/056772 patent/WO2012124136A1/ja active Application Filing
-
2013
- 2013-09-04 US US14/017,904 patent/US9618924B2/en active Active
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016194823A (ja) * | 2015-03-31 | 2016-11-17 | オムロン株式会社 | 制御装置 |
JP2016194831A (ja) * | 2015-03-31 | 2016-11-17 | オムロン株式会社 | 制御装置 |
US10274936B2 (en) | 2015-03-31 | 2019-04-30 | Omron Corporation | Control apparatus |
US10579031B2 (en) | 2015-03-31 | 2020-03-03 | Omron Corporation | Controller |
KR20190026923A (ko) * | 2017-04-24 | 2019-03-13 | 미쓰비시덴키 가부시키가이샤 | 프로그래머블 로직 컨트롤러 시스템 및 엔지니어링 툴 프로그램 |
KR102005224B1 (ko) | 2017-04-24 | 2019-07-29 | 미쓰비시덴키 가부시키가이샤 | 프로그래머블 로직 컨트롤러 시스템 및 엔지니어링 툴 프로그램 |
JP2019153144A (ja) * | 2018-03-05 | 2019-09-12 | オムロン株式会社 | 制御装置、システムプログラム、制御方法 |
JP2019106225A (ja) * | 2019-04-08 | 2019-06-27 | オムロン株式会社 | 制御装置 |
WO2021065033A1 (ja) * | 2019-10-03 | 2021-04-08 | オムロン株式会社 | プログラム開発装置およびプログラム開発装置を実現するためのプログラム |
Also Published As
Publication number | Publication date |
---|---|
CN103403684B (zh) | 2017-09-08 |
EP2672384B1 (en) | 2019-07-31 |
WO2012124136A1 (ja) | 2012-09-20 |
EP2672384A4 (en) | 2015-11-11 |
EP2672384A1 (en) | 2013-12-11 |
CN103403684A (zh) | 2013-11-20 |
US20140005805A1 (en) | 2014-01-02 |
JP4957853B1 (ja) | 2012-06-20 |
US9618924B2 (en) | 2017-04-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4957853B1 (ja) | Plcのcpuユニット、plc用のシステムプログラムおよびplc用のシステムプログラムを格納した記録媒体 | |
JP4894961B1 (ja) | Plcのcpuユニット、plc用システムプログラムおよびplc用システムプログラムを格納した記録媒体 | |
JP4752983B1 (ja) | Plcのcpuユニット、plc用のシステムプログラムおよびplc用のシステムプログラムを格納した記録媒体 | |
JP5099251B1 (ja) | Plcのcpuユニット、plc用のシステムプログラム、plc用のシステムプログラムを格納した記録媒体、plcシステム、plcサポート装置、plcサポートプログラム、および、plcサポートプログラムを格納した記録媒体 | |
JP6540166B2 (ja) | 制御装置 | |
US8706262B2 (en) | CPU unit of PLC, system program for PLC, and recording medium storing system program for PLC | |
WO2012124143A1 (ja) | 演算ユニット、支援装置、出力制御方法、表示制御方法、およびプログラム | |
JP4752984B1 (ja) | Plcのcpuユニット、plc用のシステムプログラムおよびplc用のシステムプログラムを格納した記録媒体 | |
JP6488830B2 (ja) | 制御装置 | |
JP6299064B2 (ja) | 制御装置、制御方法、およびプログラム | |
US8504176B2 (en) | CPU unit of PLC, system program for PLC, and recording medium storing system program for PLC | |
CN110456707B (zh) | 控制装置 | |
JP2019106225A (ja) | 制御装置 | |
JP4877424B1 (ja) | Plcのcpuユニット、plc用のシステムプログラムおよびplc用のシステムプログラムを格納した記録媒体 | |
JP5845629B2 (ja) | Plcのcpuユニット、plc用のシステムプログラムおよびplc用のシステムプログラムを格納した記録媒体 | |
JP7231073B2 (ja) | 制御装置および制御システム | |
JP2012194955A (ja) | 支援装置、表示制御方法、およびプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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: 20120221 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120305 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150330 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 4957853 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |