JP5540928B2 - プログラマブルコントローラシステムおよびそのアプリケーション起動方法 - Google Patents

プログラマブルコントローラシステムおよびそのアプリケーション起動方法 Download PDF

Info

Publication number
JP5540928B2
JP5540928B2 JP2010141116A JP2010141116A JP5540928B2 JP 5540928 B2 JP5540928 B2 JP 5540928B2 JP 2010141116 A JP2010141116 A JP 2010141116A JP 2010141116 A JP2010141116 A JP 2010141116A JP 5540928 B2 JP5540928 B2 JP 5540928B2
Authority
JP
Japan
Prior art keywords
application
controller
synchronous
operation state
status
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
JP2010141116A
Other languages
English (en)
Other versions
JP2012003732A (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.)
Fuji Electric Co Ltd
Original Assignee
Fuji Electric Co Ltd
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 Fuji Electric Co Ltd filed Critical Fuji Electric Co Ltd
Priority to JP2010141116A priority Critical patent/JP5540928B2/ja
Publication of JP2012003732A publication Critical patent/JP2012003732A/ja
Application granted granted Critical
Publication of JP5540928B2 publication Critical patent/JP5540928B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Programmable Controllers (AREA)

Description

本発明は、基本コントローラおよび少なくとも1つの拡張コントローラを備え、これらの複数のコントローラの各々で別々のアプリケーションプログラムを実行する構成とされたプログラマブルコントローラシステムおよびそのアプリケーション起動方法に係り、例えば、各々のコントローラでユーザデータ領域を使用するアプリケーションプログラムを実行する場合等に利用できる。
図7には、従来のプログラマブルコントローラシステム90の構成の一例が、システム処理の流れの概略とともに示されている。また、図8には、プログラマブルコントローラシステム90による従来のシステム処理のタイムチャートが示されている。
図7において、プログラマブルコントローラシステム90は、基本コントローラ91と拡張コントローラ92とを備えている。基本コントローラ91は、マイクロプロセッサ91Aと、このマイクロプロセッサ91Aで実行されるアプリケーションプログラムαが使用するユーザデータ領域を有するデータメモリ91Bとを含んで構成されている。同様に、拡張コントローラ92は、マイクロプロセッサ92Aと、このマイクロプロセッサ92Aで実行されるアプリケーションプログラムβが使用するユーザデータ領域を有するデータメモリ92Bとを含んで構成されている。
これらの基本コントローラ91および拡張コントローラ92では、マイクロプロセッサ91A,92Aにより、それぞれ次のようなシステム処理を行う。すなわち、(1)先ず、アプリケーション運転状態においては、タイマ時間計測によりアプリケーション起動周期を生成し、所定の周期でアプリケーションプログラムα,βを起動する。(2)次に、アプリケーション停止状態からアプリケーション運転状態へ移行する際には、アプリケーションプログラムα,βが使用するデータメモリ91B,92Bのユーザデータ領域の各種変数の初期化等のようなアプリケーションプログラムα,βの起動準備処理を実行した後、アプリケーションプログラムα,βを実行するアプリケーション運転状態へ移行する。
そして、図8に示すように、前記(1)については、タイマ時間計測により生成されるアプリケーション起動周期(図8中の点線で示された縦線の各時刻)は、基本コントローラ91と拡張コントローラ92とで同期していないので、双方のアプリケーションプログラムα,βの起動タイミングには同期性がない。なお、図8中のアプリケーション運転状態におけるAPLは、アプリケーションプログラムα,βが実行される期間を示し、SYSは、アプリケーション起動周期の到来を待っているシステム処理の期間を示している。
また、前記(2)については、アプリケーションプログラムα,βの起動準備処理の開始タイミングが非同期であるとともに、それぞれの起動準備処理に要する時間も異なる。なお、図8中のアプリケーション停止状態におけるSYSは、アプリケーションプログラムα,βの起動準備処理期間を示している。
従って、基本コントローラ91のアプリケーションプログラムαと、拡張コントローラ92のアプリケーションプログラムβとは、完全に非同期で実行されることになる。
なお、プログラマブルコントローラの同期方式として、定周期の割込信号および同期信号により、PLCモジュール(基本コントローラ91に相当)とオプションモジュール(拡張コントローラ92に相当)とを同期させる方式が知られている(特許文献1参照)。
また、すべての外部機器が動作準備完了状態であることが確認された段階で、同期信号がすべての外部機器に送信される分散制御システムが知られている(特許文献2参照)。
特開2004−102791号公報(段落[0018]、図4、図5) 特開2006−209646号公報(要約)
しかしながら、前述した従来のプログラマブルコントローラシステム90では、基本コントローラ91のアプリケーションプログラムαと、拡張コントローラ92のアプリケーションプログラムβとが、完全に非同期で実行されるので、精緻な制御が要求される制御対象の場合には、不都合が生じるおそれがある。例えば、カラー印刷機に設けられた送り用のサーボモータの制御等では、僅かなズレで印刷物の品質が落ちてしまうため、高精度な同期制御が要求される。
本発明の目的は、アプリケーション運転状態におけるアプリケーションプログラムの起動の同期化、およびアプリケーション停止状態からアプリケーション運転状態への移行の同期化を図ることができるプログラマブルコントローラシステムおよびそのアプリケーション起動方法を提供するところにある。
本発明は、基本コントローラおよび少なくとも1つの拡張コントローラを備え、これらの複数のコントローラの各々で別々のアプリケーションプログラムを実行する構成とされたプログラマブルコントローラシステムであって、基本コントローラおよび拡張コントローラで共有される共有メモリ領域に設けられた同期フリーランカウンタと、共有メモリ領域に設けられてアプリケーション運転状態の開始タイミングを示す同期フリーランカウンタ値を記憶するアプリ運転状態開始カウンタ値記憶手段と、基本コントローラ用のアプリケーションについての運転状態および停止状態を含むステータスを記憶する基本コントローラ用のステータス記憶手段と、拡張コントローラ用のアプリケーションについての運転状態および停止状態を含むステータスを記憶する拡張コントローラ用のステータス記憶手段とを備え、基本コントローラは、拡張コントローラへ同期割込み信号を送信する処理を実行する同期割込み送信処理手段と、同期フリーランカウンタに、同期割込み信号の1回の送信につき、1カウント若しくは一定数のカウントを加算または減算する処理を実行するカウント更新処理手段とを備え、拡張コントローラは、基本コントローラからの同期割込み信号を受信する処理を実行する同期割込み受信処理手段を備え、基本コントローラおよび拡張コントローラの各々は、同期フリーランカウンタの現在値と、アプリ運転状態開始カウンタ値記憶手段に記憶された同期フリーランカウンタ値とが一致したか否かを判断する処理を繰り返し実行するアプリ運転状態開始タイミング判断処理手段と、このアプリ運転状態開始タイミング判断処理手段により一致したと判断した場合に、各々のステータス記憶手段に記憶されたステータスを、アプリケーション停止状態からアプリケーション運転状態へ移行させる処理を実行するアプリ運転状態移行処理手段と、同期割込み信号の送受信のタイミングで、各々のステータス記憶手段に記憶されたステータスを取得し、取得したステータスがアプリケーション運転状態である場合に、各々のアプリケーションの起動要求処理を実行するアプリケーション起動要求処理手段とを備えたことを特徴とするものである。
ここで、「カウント更新処理手段」における「同期割込み信号の1回の送信につき、1カウント若しくは一定数のカウントを加算または減算する処理」とは、同期割込み信号の送信を繰り返すと、同期フリーランカウンタが、0,1,2,3,4,…と1カウントずつ増加してもよく、あるいは、例えば、0,2,4,6,8,…等のように毎回カウントが同数ずつ増加してもよく、さらには、…,8,7,6,5,4,…と1カウントずつ減少してもよく、あるいは、例えば、…,16,14,12,10,8,…等のように毎回カウントが同数ずつ減少してもよい趣旨である。但し、設計の容易化、構成の簡易化等の観点からは、1カウントずつ増加していくことが好ましい。
このような本発明のプログラマブルコントローラシステムにおいては、基本コントローラの同期割込み送信処理手段および拡張コントローラの同期割込み受信処理手段により、同期割込み信号の送受信を行い、基本コントローラおよび拡張コントローラの各々のアプリケーション起動要求処理手段により、同期割込み信号の送受信のタイミングで、各々のアプリケーションの起動要求処理を実行するので、アプリケーション運転状態では、双方のアプリケーションの周期的に繰り返される起動を毎回同期させることが可能となる。
また、基本コントローラのカウント更新処理手段により、同期フリーランカウンタの値を更新していき、基本コントローラおよび拡張コントローラの各々のアプリ運転状態開始タイミング判断処理手段により、同期フリーランカウンタの現在値と、アプリ運転状態開始カウンタ値記憶手段に記憶された同期フリーランカウンタ値とが一致したと判断した場合に、各々のアプリ運転状態移行処理手段により、各々のステータス記憶手段に記憶されたステータスを、アプリケーション停止状態からアプリケーション運転状態へ移行させる。そして、各々のアプリケーション起動要求処理手段により、同期割込み信号の送受信のタイミングで、各々のアプリケーションの起動要求処理を実行する際には、各々のステータス記憶手段に記憶されたステータスを取得し、ステータスがアプリケーション運転状態に既に移行されている場合に起動要求処理を実行するので、アプリケーション停止状態からアプリケーション運転状態への移行を同期させることが可能となる。
このため、アプリケーション運転状態におけるアプリケーションプログラムの周期的に繰り返される起動の同期化、およびアプリケーション停止状態からアプリケーション運転状態への移行の同期化を実現することができるので、例えば、カラー印刷機に設けられた送り用のサーボモータ等のような高精度な同期制御が要求される制御対象の場合であっても、不都合なく稼働させることが可能となり、これらにより前記目的が達成される。
なお、前述した特許文献1,2に記載された技術は、同期フリーランカウンタによるタイミング制御を行っていないので、本発明とは異なる技術である。
また、前述したプログラマブルコントローラシステムにおいて、基本コントローラは、外部からの起動要求を受け付けた場合に、同期フリーランカウンタの現在値に、予め定められたカウント数を加算または減算することにより、アプリケーション運転状態の開始タイミングを示す同期フリーランカウンタ値を算出し、算出した同期フリーランカウンタ値をアプリ運転状態開始カウンタ値記憶手段に記憶させる処理を実行する設定用カウンタ値算出・設定処理手段を備えた構成とすることが望ましい。
ここで、「予め定められたカウント数を加算または減算する」とは、同期フリーランカウンタが、0,1,2,3,4,…と1カウントずつ増加していくか、あるいは、例えば、0,2,4,6,8,…等のように同数カウントずつ増加していく場合には、「予め定められたカウント数」を「加算」し、一方、…,8,7,6,5,4,…と1カウントずつ減少していくか、あるいは、例えば、…,16,14,12,10,8,…等のように同数カウントずつ減少していく場合には、「予め定められたカウント数」を「減算」するという意味である。
このように同期フリーランカウンタの現在値に予め定められたカウント数を加算または減算する設定用カウンタ値算出・設定処理手段を備えた構成とした場合には、外部からの起動要求を受け付けたときに、そのときの同期フリーランカウンタの値を基準として、相対的にアプリケーション運転状態の開始タイミングを定めることができるので、アプリケーション運転状態の開始タイミングの判断処理の容易化を図ることが可能となる。
さらに、本発明は、基本コントローラおよび少なくとも1つの拡張コントローラを備え、これらの複数のコントローラの各々で別々のアプリケーションプログラムを実行する構成とされたプログラマブルコントローラシステムのアプリケーション起動方法であって、基本コントローラおよび拡張コントローラで共有される共有メモリ領域に、同期フリーランカウンタと、アプリケーション運転状態の開始タイミングを示す同期フリーランカウンタ値を記憶するアプリ運転状態開始カウンタ値記憶手段とを設けるとともに、基本コントローラ用のアプリケーションについての運転状態および停止状態を含むステータスを記憶する基本コントローラ用のステータス記憶手段と、拡張コントローラ用のアプリケーションについての運転状態および停止状態を含むステータスを記憶する拡張コントローラ用のステータス記憶手段とを設けておき、基本コントローラの同期割込み送信処理手段が、拡張コントローラへ同期割込み信号を送信する処理を実行し、基本コントローラのカウント更新処理手段が、同期フリーランカウンタに、同期割込み信号の1回の送信につき、1カウント若しくは一定数のカウントを加算または減算する処理を実行し、拡張コントローラの同期割込み受信処理手段が、基本コントローラからの同期割込み信号を受信する処理を実行し、基本コントローラおよび拡張コントローラの各々のアプリ運転状態開始タイミング判断処理手段が、同期フリーランカウンタの現在値と、アプリ運転状態開始カウンタ値記憶手段に記憶された同期フリーランカウンタ値とが一致したか否かを判断する処理を繰り返し実行し、基本コントローラおよび拡張コントローラの各々のアプリ運転状態移行処理手段が、アプリ運転状態開始タイミング判断処理手段により一致したと判断した場合に、各々のステータス記憶手段に記憶されたステータスを、アプリケーション停止状態からアプリケーション運転状態へ移行させる処理を実行し、基本コントローラおよび拡張コントローラの各々のアプリケーション起動要求処理手段が、同期割込み信号の送受信のタイミングで、各々のステータス記憶手段に記憶されたステータスを取得し、取得したステータスがアプリケーション運転状態である場合に、各々のアプリケーションの起動要求処理を実行することを特徴とするものである。
このような本発明のプログラマブルコントローラシステムのアプリケーション起動方法においては、前述した本発明のプログラマブルコントローラシステムで得られる作用・効果がそのまま得られ、これにより前記目的が達成される。
以上に述べたように本発明によれば、基本コントローラと拡張コントローラとの間での同期割込み信号および同期フリーランカウンタによるタイミング制御により、アプリケーション運転状態におけるアプリケーションプログラムの周期的に繰り返される起動の同期化、およびアプリケーション停止状態からアプリケーション運転状態への移行の同期化を図ることができるので、高精度な同期制御を実現することができるという効果がある。
本発明の一実施形態のプログラマブルコントローラシステムの全体構成図。 前記実施形態のシステム処理手段の構成図。 前記実施形態のシステム構成およびシステム処理に伴うデータや信号の流れの概略図。 前記実施形態のシステム処理のうちの同期割込みを行う処理Aの流れを示すフローチャートの図。 前記実施形態のシステム処理のうちのアプリケーションの起動準備および運転状態への移行を行う処理Bの流れを示すフローチャートの図。 前記実施形態のシステム処理の全体的な流れを示すタイムチャートの図。 従来のシステム構成およびシステム処理の流れの概略図。 従来のシステム処理の流れを示すタイムチャートの図。
以下に本発明の一実施形態について図面を参照して説明する。図1には、本実施形態のプログラマブルコントローラシステム10の全体構成が示されている。図2には、プログラマブルコントローラシステム10のシステム処理手段24,34の構成が示され、図3には、システム構成およびシステム処理に伴うデータや信号の流れの概略が示されている。また、図4には、システム処理のうちの同期割込みを行う処理Aの流れがフローチャートで示され、図5には、システム処理のうちのアプリケーションの起動準備および運転状態への移行を行う処理Bの流れがフローチャートで示されている。さらに、図6には、システム処理の全体的な流れがタイムチャートで示されている。
図1において、プログラマブルコントローラシステム10は、基本コントローラ20と、拡張コントローラ30と、管理部40とを備えて構成されている。本実施形態では、これらの基本コントローラ20、拡張コントローラ30、および管理部40は、それぞれ別々のプリント基板上に形成され、これらの3つの基板が1つの筐体(不図示)に収納される構成となっているが、これに限定されるものではなく、例えば、基本コントローラ20、拡張コントローラ30、および管理部40が、それぞれ別の筐体に収納されていてもよい。
基本コントローラ20は、バスLSI21と、マイクロプロセッサ22と、主メモリ23と、共有メモリ領域25と、フラッシュメモリ26と、データメモリ27とを備えている。そして、マイクロプロセッサ22およびその動作手順を規定するシステムプログラムγ、並びに作業領域である主メモリ23等により、システム処理手段24が構成されている。
拡張コントローラ30も同様な構成であり、バスLSI31と、マイクロプロセッサ32と、主メモリ33と、共有メモリ領域35と、フラッシュメモリ36と、データメモリ37とを備えている。そして、マイクロプロセッサ32およびその動作手順を規定するシステムプログラムδ、並びに作業領域である主メモリ33等により、システム処理手段34が構成されている。
管理部40は、基本コントローラ20や拡張コントローラ30とは異なった構成であり、バスLSI41と、マイクロプロセッサ42と、主メモリ43と、共有メモリ領域45と、フラッシュメモリ46と、USB接続部47Aと、イーサネット接続部47B(イーサネットは登録商標)と、シリアル接続部47Cと、スイッチ操作信号入力部48とを備えている。そして、マイクロプロセッサ42およびその動作手順を規定するシステムプログラムε、並びに作業領域である主メモリ43等により、システム処理手段44が構成されている。
基本コントローラ20、拡張コントローラ30、および管理部40のバスLSI21,31,41は、内部バス11に接続され、これらのバスLSI21,31,41による共有化のための内部バス11を介した通信機能により、基本コントローラ20、拡張コントローラ30、および管理部40の共有メモリ領域25,35,45に記憶された各種のデータは共有化され、各共有メモリ領域25,35,45のそれぞれに同じデータが保持されるようになっている。
マイクロプロセッサ22,32,42は、主メモリ23,33,43に記憶されたアプリケーションプログラムα,βやシステムプログラムγ,δ,εを読み込んで実行する中央演算処理装置である。なお、管理部40のマイクロプロセッサ42では、アプリケーションプログラムの実行処理は行わない。
主メモリ23,33,43は、本実施形態では、一例としてシンクロナスDRAM(SDRAM)とされているが、これに限定されるものではない。
共有メモリ領域25,35,45は、本実施形態では、一例としてSRAMとされているが、これに限定されるものではない。これらの共有メモリ領域25,35,45には、同期フリーランカウンタ25A,35A,45Aと、アプリケーション起動準備処理の開始タイミングを示す同期フリーランカウンタ値を記憶するアプリ起動準備開始カウンタ値記憶手段25B,35B,45Bと、アプリケーション運転状態の開始タイミングを示す同期フリーランカウンタ値を記憶するアプリ運転状態開始カウンタ値記憶手段25C,35C,45Cと、基本コントローラ20に対してアプリケーション運転開始要求が行われたか否かを示すフラグを記憶する基本コントローラ20用のアプリ運転開始要求フラグ記憶手段25D,35D,45Dと、拡張コントローラ30に対してアプリケーション運転開始要求が行われたか否かを示すフラグを記憶する拡張コントローラ30用のアプリ運転開始要求フラグ記憶手段25E,35E,45Eと、基本コントローラ20用のアプリケーションαについての運転状態および停止状態を含むステータスを記憶する基本コントローラ20用のステータス記憶手段25F,35F,45Fと、拡張コントローラ30用のアプリケーションβについての運転状態および停止状態を含むステータスを記憶する拡張コントローラ30用のステータス記憶手段25G,35G,45Gとが設けられている。
なお、共有メモリ領域25,35,45には、その他に、基本コントローラ20に対してアプリケーション停止要求が行われたか否かを示すフラグを記憶する基本コントローラ20用のアプリ停止要求フラグ記憶手段(不図示)や、拡張コントローラ30に対してアプリケーション停止要求が行われたか否かを示すフラグを記憶する拡張コントローラ30用のアプリ停止要求フラグ記憶手段(不図示)等が設けられているが、本発明の処理に直接関係しないため、説明を省略する。また、後述するように、アプリ起動準備開始カウンタ値記憶手段25B,35B,45Bの設置を省略してもよい。
フラッシュメモリ26,36、46は、ローダ50でユーザにより作成されてコンパイルされたアプリケーションプログラムα,βや、システムプログラムγ,δ,εを格納するものである。
データメモリ27,37は、例えばSRAM等であり、アプリケーションプログラムα,βの実行時に使用される各種変数等を記憶するユーザデータ領域27A,37Aを有している。なお、管理部40では、アプリケーションプログラムを実行することはないので、データメモリ27,37に相当するメモリは設置されていない。
管理部40のUSB接続部47A、イーサネット接続部47B(イーサネットは登録商標)、およびシリアル接続部47Cは、外部端末との通信のために設けられ、ローダ50を接続することができる。なお、外部端末との通信のための接続部は、これらの種類に限定されるものではなく、有線、無線の別も問わない。また、管理部40のスイッチ操作信号入力部48は、スイッチ操作による外部からの起動要求等の信号を入力するものである。
図2において、基本コントローラ20のシステム処理手段24は、システムイニシャル処理手段24Aと、アプリケーション起動周期待機処理手段24Bと、カウント更新処理手段24Cと、同期割込み送信処理手段24Dと、アプリケーション起動要求処理手段24Eと、外部要求待機処理手段24Fと、設定用カウンタ値算出・設定処理手段24Gと、アプリ運転開始要求フラグ設定処理手段24Hと、アプリ起動準備開始タイミング判断処理手段24Jと、アプリ起動準備処理手段24Kと、アプリ運転状態開始タイミング判断処理手段24Lと、アプリ運転状態移行処理手段24Mとを含んで構成されている。なお、後述するように、アプリ起動準備開始タイミング判断処理手段24Jの設置を省略してもよい。
また、拡張コントローラ30のシステム処理手段34は、システムイニシャル処理手段34Aと、同期割込み受信処理手段34Bと、アプリケーション起動要求処理手段34Cと、アプリ運転開始要求フラグ監視処理手段34Dと、アプリ起動準備開始タイミング判断処理手段34Eと、アプリ起動準備処理手段34Fと、アプリ運転状態開始タイミング判断処理手段34Gと、アプリ運転状態移行処理手段34Hとを含んで構成されている。なお、後述するように、アプリ起動準備開始タイミング判断処理手段34Eの設置を省略してもよい。
このうち、基本コントローラ20の各処理手段24B,24C,24D,24Fおよび拡張コントローラ30の各処理手段34B,34Cは、図4の処理Aを実行する手段である。また、基本コントローラ20の各処理手段24F,24G,24H,24J,24K,24L,24Mおよび拡張コントローラ30の各処理手段34D,34E,34F,34G,34Hは、図5の処理Bを実行する手段である。
システムイニシャル処理手段24A,34Aは、リセット状態解除で立ち上がり、ハンドシェイク(通信用パラメータの取り決め等の通信規律の確立処理)により、基本コントローラ20と拡張コントローラ30との間のイニシャル完了待ち合わせを行うものである。また、基本コントローラ20のシステムイニシャル処理手段24Aは、同期フリーランカウンタ25Aを起動する処理を行う。
(処理Aを実行する手段)
基本コントローラ20のアプリケーション起動周期待機処理手段24Bは、タイマ時間計測により、所定の時間間隔(例えば1ミリ秒の間隔等)のアプリケーション起動周期が到来したか否かを判断する処理を繰り返し実行するものである。
基本コントローラ20のカウント更新処理手段24Cは、アプリケーション起動周期が到来したときに、同期割込み信号の送信直前に、同期フリーランカウンタ25Aに、1カウントを加算する処理を実行するものである。従って、同期フリーランカウンタ25Aの値は、同期割込み信号の1回の送信につき、1カウント増加することになる。
基本コントローラ20の同期割込み送信処理手段24Dは、アプリケーション起動周期が到来したときに、拡張コントローラ30へ同期割込み信号を送信する処理を実行するものである。従って、同期割込み信号は、アプリケーション起動周期の到来タイミングに合わせて送信されることになる。
拡張コントローラ30の同期割込み受信処理手段34Bは、基本コントローラ20からの同期割込み信号を受信する処理を実行するものである。
アプリケーション起動要求処理手段24E,34Cは、同期割込み信号の送受信の直後に、各々のステータス記憶手段25F,35Gに記憶されたステータスを取得し、取得したステータスがアプリケーション運転状態(RUN)である場合に、各々のアプリケーションα,βの起動要求処理を実行するものである。従って、アプリケーションの起動要求処理は、アプリケーション起動周期の到来タイミングに合わせて行われることになる。なお、このアプリケーションプログラムの起動要求処理が行われるときには、アプリケーションプログラムα,βは、既に主メモリ23,33上に配置されている。
(処理Bを実行する手段)
基本コントローラ20の外部要求待機処理手段24Fは、管理部40のスイッチ操作信号入力部48(図1参照)に、スイッチ操作による外部からの起動要求信号の入力があったときに、この起動要求信号を管理部40から受信する処理を実行するものである。
基本コントローラ20の設定用カウンタ値算出・設定処理手段24Gは、外部からの起動要求信号を受信した場合に、同期フリーランカウンタの現在値に、予め定められたアプリ起動準備開始タイミング設定用のカウント数C1を加算することにより、アプリケーション起動準備処理の開始タイミングを示す同期フリーランカウンタ値を算出し、算出した同期フリーランカウンタ値を、アプリ起動準備開始カウンタ値記憶手段25Bに記憶させるとともに、同期フリーランカウンタの現在値に、予め定められたアプリ運転状態開始タイミング設定用のカウント数C2を加算することにより、アプリケーション運転状態の開始タイミングを示す同期フリーランカウンタ値を算出し、算出した同期フリーランカウンタ値を、アプリ運転状態開始カウンタ値記憶手段25Cに記憶させる処理を実行するものである。
具体的には、同期フリーランカウンタの現在値をLとすると、アプリケーション起動準備処理の開始タイミングを示す同期フリーランカウンタ値Mは、M=L+C1で算出され、アプリケーション運転状態の開始タイミングを示す同期フリーランカウンタ値Nは、N=L+C2で算出される(図6参照)。
例えば、アプリ起動準備開始タイミング設定用のカウント数C1は、拡張コントローラ30のアプリ運転開始要求フラグ監視処理手段34Dによるフラグ受付までに要する時間を考慮し、例えば2カウント等と定められている。また、アプリ運転状態開始タイミング設定用のカウント数C2は、基本コントローラ20および拡張コントローラ30のメモリ初期化処理(データメモリ27,37のユーザデータ領域27A,37Aに記憶された各種変数の初期化処理)を含む各々のコントローラ20,30のアプリケーション起動準備処理に要する時間(例えば、数百ミリ秒)のうち最長のものの所要時間を考慮し、例えば1000カウント(仮に1カウントを1ミリ秒とすれば、1秒に相当する。)等と定められている。そして、これらのカウント数C1,C2は、上記のように見込みの数値であるが、設定用カウンタ値算出・設定処理手段24G(システム処理手段24)を構成するシステムプログラムγ内に記述しておいてもよく、あるいはメモリ(例えばフラッシュメモリ26等)に記憶させておいてもよい。
なお、後述するように、上記の設定用カウンタ値算出・設定処理手段24Gの処理のうち、アプリケーション起動準備処理の開始タイミングを示す同期フリーランカウンタ値Mを算出・設定する処理(M=L+C1)は省略してもよく、省略する場合には、アプリ起動準備開始タイミング設定用のカウント数C1も予め定めておく必要はない。
基本コントローラ20のアプリ運転開始要求フラグ設定処理手段24Hは、外部からの起動要求信号を受信した場合に、基本コントローラ20に設けられた基本コントローラ20用のアプリ運転開始要求フラグ記憶手段25Dに記憶されたフラグ、および基本コントローラ20に設けられた拡張コントローラ30用のアプリ運転開始要求フラグ記憶手段25Eに記憶されたフラグを立てる処理(運転開始要求があったことを示す状態に変更する処理)を実行するものである。なお、このアプリ運転開始要求フラグ設定処理手段24Hにより、基本コントローラ20に設けられた拡張コントローラ30用のアプリ運転開始要求フラグ記憶手段25Eに記憶されたフラグが立てられると、この状態が内部バス11を介して、共有メモリ機能により、拡張コントローラ30に設けられた拡張コントローラ30用のアプリ運転開始要求フラグ記憶手段35Eに記憶されたフラグに反映される。
拡張コントローラ30のアプリ運転開始要求フラグ監視処理手段34Dは、拡張コントローラ30に設けられた拡張コントローラ30用のアプリ運転開始要求フラグ記憶手段35Eに記憶されたフラグの状態を監視し、このフラグが立った状態に変更されたか否かを判断する処理を繰り返し実行するものである。
アプリ起動準備開始タイミング判断処理手段24J,34Eは、同期フリーランカウンタ25A,35Aの現在値と、アプリ起動準備開始カウンタ値記憶手段25B,35Bに記憶された同期フリーランカウンタ値とが一致したか否かを判断することにより、アプリケーション起動準備処理の開始タイミングが到来したか否かを判断する処理を繰り返し実行するものである。
アプリ起動準備処理手段24K,34Fは、アプリ起動準備開始タイミング判断処理手段24J,34Eにより双方の値が一致した(つまり、アプリケーション起動準備処理の開始タイミングが到来した)と判断した場合に、図3に示すように、基本コントローラ20および拡張コントローラ30のメモリ初期化処理(データメモリ27,37のユーザデータ領域27A,37Aに記憶された各種変数の初期化処理)を含む各々のコントローラ20,30のアプリケーション起動準備処理を実行するものである。
アプリ運転状態開始タイミング判断処理手段24L,34Gは、同期フリーランカウンタ25A,35Aの現在値と、アプリ運転状態開始カウンタ値記憶手段25C,35Cに記憶された同期フリーランカウンタ値とが一致したか否かを判断することにより、アプリケーション運転状態の開始タイミングが到来したか否かを判断する処理を繰り返し実行するものである。
アプリ運転状態移行処理手段24M,34Hは、アプリ運転状態開始タイミング判断処理手段24L,34Gにより双方の値が一致した(つまり、アプリケーション運転状態の開始タイミングが到来した)と判断した場合に、各々のコントローラ20,30用のアプリ運転開始要求フラグ記憶手段25D,35Eに記憶されたフラグを降ろす処理(運転開始要求が無いことを示す状態に変更する処理)を実行するとともに、各々のステータス記憶手段25F,35Gに記憶されたステータスを、アプリケーション停止状態(STOP)からアプリケーション運転状態(RUN)へ移行させる処理を実行するものである。
管理部40のシステム処理手段44は、スイッチ操作信号入力部48(図1参照)に、スイッチ操作による外部からの起動要求信号の入力があったときに、この起動要求信号を基本コントローラ20へ送信する処理、あるいは、ローダ50から送信されてくるアプリケーションプログラムα,βを、フラッシュメモリ26,36に格納するために、基本コントローラ20や拡張コントローラ30へ送信する処理等を実行するものである。
このような本実施形態においては、以下のようにしてプログラマブルコントローラシステム10におけるシステム処理が実行され、アプリケーションが起動される。
(処理Aの流れ)
図4において、基本コントローラ20および拡張コントローラ30において、システム処理のうちの処理Aを開始する(ステップS1,S2)。先ず、基本コントローラ20において、アプリケーション起動周期待機処理手段24Bにより、タイマ時間計測を行って所定の時間間隔(例えば1ミリ秒の間隔等)のアプリケーション起動周期が到来したか否かを繰り返し判断する(ステップS3)。
ステップS3でアプリケーション起動周期が到来したと判断された場合には、カウント更新処理手段24Cにより、同期フリーランカウンタ25Aに、1カウントを加算する(ステップS4)。なお、同期フリーランカウンタ25Aの値を変更した状態は、内部バス11を介して、共有メモリ機能により、他の同期フリーランカウンタ35A,45Aにも反映される。
続いて、同期割込み送信処理手段24Dにより、拡張コントローラ30へ同期割込み信号を送信する(ステップS5)。この同期割込み信号は、基本コントローラ20のバスLSI21、内部バス11、および拡張コントローラ30のバスLSI31を介して拡張コントローラ30のマイクロプロセッサ32に伝達される。そして、拡張コントローラ30において、同期割込み受信処理手段34Bにより、基本コントローラ20からの同期割込み信号を受信する(ステップS6)。
それから、同期割込み信号の送受信の後に、基本コントローラ20においては、アプリケーション起動要求処理手段24Eにより、基本コントローラ20用のステータス記憶手段25Fに記憶されたステータスを取得し、取得したステータスがアプリケーション運転状態(RUN)であるか否かを判断し(ステップS7)、アプリケーション運転状態(RUN)である場合には、基本コントローラ20のアプリケーションαの起動要求を行い(ステップS8)、処理Aを終了する(ステップS9)。一方、取得したステータスがアプリケーション停止状態(STOP)である場合には、アプリケーションαの起動要求は行わずに、処理Aを終了する(ステップS9)。
また、拡張コントローラ30においても同様にして、アプリケーション起動要求処理手段34Cにより、拡張コントローラ30用のステータス記憶手段35Gに記憶されたステータスを取得し、取得したステータスがアプリケーション運転状態(RUN)であるか否かを判断し(ステップS10)、アプリケーション運転状態(RUN)である場合には、拡張コントローラ30のアプリケーションβの起動要求を行い(ステップS11)、処理Aを終了する(ステップS12)。一方、取得したステータスがアプリケーション停止状態(STOP)である場合には、アプリケーションβの起動要求は行わずに、処理Aを終了する(ステップS12)。
(処理Bの流れ)
図5において、基本コントローラ20および拡張コントローラ30において、システム処理のうちの処理Bを開始する(ステップS21,S22)。先ず、基本コントローラ20において、外部要求待機処理手段24Fにより、外部からの起動要求を待ち、管理部40のスイッチ操作信号入力部48(図1参照)に、スイッチ操作による外部からの起動要求信号の入力があったときに、この起動要求信号を管理部40から受信する(ステップS23)。
続いて、設定用カウンタ値算出・設定処理手段24Gにより、同期フリーランカウンタの現在値(図6の例では、L)に、予め定められたアプリ起動準備開始タイミング設定用のカウント数C1(例えば、C1=2カウント等)を加算することにより、アプリケーション起動準備処理の開始タイミングを示す同期フリーランカウンタ値(図6の例では、M)を、M=L+C1として算出する(ステップS24)。このステップS24における同期フリーランカウンタ値(図6の例では、M)の算出処理は、アプリケーション起動準備処理の開始タイミングの同期を図らない場合には、省略してもよい。
また、設定用カウンタ値算出・設定処理手段24Gにより、同期フリーランカウンタの現在値(図6の例では、L)に、予め定められたアプリ運転状態開始タイミング設定用のカウント数C2(例えば、C2=1000カウント等)を加算することにより、アプリケーション運転状態の開始タイミングを示す同期フリーランカウンタ値(図6の例では、N)を、N=L+C2として算出する(ステップS24)。
それから、設定用カウンタ値算出・設定処理手段24Gにより、算出したアプリケーション起動準備処理の開始タイミングを示す同期フリーランカウンタ値(図6の例では、M)を、アプリ起動準備開始カウンタ値記憶手段25Bに記憶させる(ステップS25)。なお、アプリ起動準備開始カウンタ値記憶手段25Bに記憶された同期フリーランカウンタ値(図6の例では、M)は、内部バス11を介して、共有メモリ機能により、他のアプリ起動準備開始カウンタ値記憶手段35B,45Bにも反映される。このステップS25の処理は、アプリケーション起動準備処理の開始タイミングの同期を図らない場合には、省略してもよい。
また、設定用カウンタ値算出・設定処理手段24Gにより、算出したアプリケーション運転状態の開始タイミングを示す同期フリーランカウンタ値(図6の例では、N)を、アプリ運転状態開始カウンタ値記憶手段25Cに記憶させる(ステップS26)。なお、アプリ運転状態開始カウンタ値記憶手段25Cに記憶された同期フリーランカウンタ値(図6の例では、N)は、内部バス11を介して、共有メモリ機能により、他のアプリ運転状態開始カウンタ値記憶手段35C,45Cにも反映される。
続いて、アプリ運転開始要求フラグ設定処理手段24Hにより、基本コントローラ20用のアプリ運転開始要求フラグ記憶手段25Dに記憶されたフラグ、および拡張コントローラ30用のアプリ運転開始要求フラグ記憶手段25Eに記憶されたフラグを立てる処理(運転開始要求があったことを示す状態に変更する処理)を実行する(ステップS27)。なお、基本コントローラ20用のアプリ運転開始要求フラグ記憶手段25Dに記憶されたフラグが立てられると、この状態が内部バス11を介して、共有メモリ機能により、拡張コントローラ30や管理部40に設けられた基本コントローラ20用のアプリ運転開始要求フラグ記憶手段35D,45Dに記憶されたフラグに反映される。同様に、拡張コントローラ30用のアプリ運転開始要求フラグ記憶手段25Eに記憶されたフラグが立てられると、この状態が内部バス11を介して、共有メモリ機能により、拡張コントローラ30や管理部40に設けられた拡張コントローラ30用のアプリ運転開始要求フラグ記憶手段35E,45Eに記憶されたフラグに反映される。
そして、拡張コントローラ30において、アプリ運転開始要求フラグ監視処理手段34Dにより、拡張コントローラ30用のアプリ運転開始要求フラグ記憶手段35Eに記憶されたフラグの状態を監視し、このフラグが立った状態に変更されたか否かを判断する処理を繰り返し実行し(ステップS28)、フラグが立った場合には、次のステップに進む。
その後、基本コントローラ20においては、アプリ起動準備開始タイミング判断処理手段24Jにより、同期フリーランカウンタ25Aの現在値と、アプリ起動準備開始カウンタ値記憶手段25Bに記憶された同期フリーランカウンタ値(図6の例では、M)とが一致したか否かを判断することにより、アプリケーション起動準備処理の開始タイミングが到来したか否かを判断する処理を繰り返し実行する(ステップS29)。このステップS29の処理は、アプリケーション起動準備処理の開始タイミングの同期を図らない場合には、省略してもよい。
ステップS29で双方の値が一致した(つまり、アプリケーション起動準備処理の開始タイミングが到来した)と判断された場合には、アプリ起動準備処理手段24Kにより、図3に示すように、基本コントローラ20のメモリ初期化処理(データメモリ27のユーザデータ領域27Aに記憶されたアプリケーションα用の各種変数の初期化処理)を含む基本コントローラ20のアプリケーション起動準備処理を実行する(ステップS30)。
また、拡張コントローラ30においては、アプリ起動準備開始タイミング判断処理手段34Eにより、同期フリーランカウンタ35Aの現在値と、アプリ起動準備開始カウンタ値記憶手段35Bに記憶された同期フリーランカウンタ値(図6の例では、M)とが一致したか否かを判断することにより、アプリケーション起動準備処理の開始タイミングが到来したか否かを判断する処理を繰り返し実行する(ステップS31)。このステップS31の処理は、アプリケーション起動準備処理の開始タイミングの同期を図らない場合には、省略してもよい。
ステップS31で双方の値が一致した(つまり、アプリケーション起動準備処理の開始タイミングが到来した)と判断された場合には、アプリ起動準備処理手段34Fにより、図3に示すように、拡張コントローラ30のメモリ初期化処理(データメモリ37のユーザデータ領域37Aに記憶されたアプリケーションβ用の各種変数の初期化処理)を含む拡張コントローラ30のアプリケーション起動準備処理を実行する(ステップS32)。
次に、基本コントローラ20においては、アプリ運転状態開始タイミング判断処理手段24Lにより、同期フリーランカウンタ25Aの現在値と、アプリ運転状態開始カウンタ値記憶手段25Cに記憶された同期フリーランカウンタ値(図6の例では、N)とが一致したか否かを判断することにより、アプリケーション運転状態の開始タイミングが到来したか否かを判断する処理を繰り返し実行する(ステップS33)。
ステップS33で双方の値が一致した(つまり、アプリケーション運転状態の開始タイミングが到来した)と判断された場合には、アプリ運転状態移行処理手段24Mにより、基本コントローラ20用のアプリ運転開始要求フラグ記憶手段25Dに記憶されたフラグを降ろす処理(運転開始要求が無いことを示す状態に変更する処理)を実行する(ステップS34)。なお、基本コントローラ20用のアプリ運転開始要求フラグ記憶手段25Dに記憶されたフラグが降ろされると、この状態が内部バス11を介して、共有メモリ機能により、拡張コントローラ30や管理部40に設けられた基本コントローラ20用のアプリ運転開始要求フラグ記憶手段35D,45Dに記憶されたフラグに反映される。
続いて、アプリ運転状態移行処理手段24Mにより、基本コントローラ20用のステータス記憶手段25Fに記憶されたステータスを、アプリケーション停止状態(STOP)からアプリケーション運転状態(RUN)へ移行させる処理を実行し(ステップS35)、処理Bを終了する(ステップS36)。なお、基本コントローラ20用のステータス記憶手段25Fに記憶されたステータスを変更すると、この変更後の状態が内部バス11を介して、共有メモリ機能により、拡張コントローラ30や管理部40に設けられた基本コントローラ20用のステータス記憶手段35F,45Fに記憶されたステータスに反映される。
また、拡張コントローラ30においては、アプリ運転状態開始タイミング判断処理手段34Gにより、同期フリーランカウンタ35Aの現在値と、アプリ運転状態開始カウンタ値記憶手段35Cに記憶された同期フリーランカウンタ値(図6の例では、N)とが一致したか否かを判断することにより、アプリケーション運転状態の開始タイミングが到来したか否かを判断する処理を繰り返し実行する(ステップS37)。
ステップS37で双方の値が一致した(つまり、アプリケーション運転状態の開始タイミングが到来した)と判断された場合には、アプリ運転状態移行処理手段34Hにより、拡張コントローラ30用のアプリ運転開始要求フラグ記憶手段35Eに記憶されたフラグを降ろす処理(運転開始要求が無いことを示す状態に変更する処理)を実行する(ステップS38)。なお、拡張コントローラ30用のアプリ運転開始要求フラグ記憶手段35Eに記憶されたフラグが降ろされると、この状態が内部バス11を介して、共有メモリ機能により、基本コントローラ20や管理部40に設けられた拡張コントローラ30用のアプリ運転開始要求フラグ記憶手段25E,45Eに記憶されたフラグに反映される。
続いて、アプリ運転状態移行処理手段34Hにより、拡張コントローラ30用のステータス記憶手段35Gに記憶されたステータスを、アプリケーション停止状態(STOP)からアプリケーション運転状態(RUN)へ移行させる処理を実行し(ステップS39)、処理Bを終了する(ステップS40)。なお、拡張コントローラ30用のステータス記憶手段35Gに記憶されたステータスを変更すると、この変更後の状態が内部バス11を介して、共有メモリ機能により、基本コントローラ20や管理部40に設けられた拡張コントローラ30用のステータス記憶手段25G,45Gに記憶されたステータスに反映される。
(システム処理の全体の流れ)
図6において、先ず、リセット状態解除により、基本コントローラ20および拡張コントローラ30において、システムイニシャル処理手段24A,34Aによる処理が開始される。この際、基本コントローラ20のシステムイニシャル処理手段24Aにより、同期フリーランカウンタ25Aが起動され、ゼロからのカウントが開始される。なお、同期フリーランカウンタ25Aの状態は、内部バス11を介して、共有メモリ機能により、拡張コントローラ30や管理部40に設けられた同期フリーランカウンタ35A,45Aに反映される。
また、基本コントローラ20のシステムイニシャル処理手段24Aにより、基本コントローラ20用のステータス記憶手段25Fに記憶されたステータスが、アプリケーション停止状態(STOP)に設定され、この状態が内部バス11を介して、共有メモリ機能により、拡張コントローラ30や管理部40に設けられた基本コントローラ20用のステータス記憶手段35F,45Fに記憶されたステータスに反映される。同様に、拡張コントローラ30のシステムイニシャル処理手段34Aにより、拡張コントローラ30用のステータス記憶手段35Gに記憶されたステータスが、アプリケーション停止状態(STOP)に設定され、この状態が内部バス11を介して、共有メモリ機能により、基本コントローラ20や管理部40に設けられた拡張コントローラ30用のステータス記憶手段25G,45Gに記憶されたステータスに反映される。なお、ステータスは、最初にイニシャル状態としておき、ハンドシェイクしてイニシャル処理を完了してから、アプリケーション停止状態(STOP)としてもよい。
続いて、基本コントローラ20のアプリケーション起動周期待機処理手段24Bによるアプリケーション起動周期の到来監視が開始され、以降、図6中の点線で示された縦線のように、一定周期(例えば1ミリ秒間隔等)で、すなわちアプリケーション起動周期のタイミングで、処理A(図4参照)の同期割込みが繰り返し実行されるとともに、同期フリーランカウンタ25Aのカウントアップが進んでいく。図6では、アプリケーション起動周期の到来(図4のステップS3)が点線の縦線で示され、同期フリーランカウンタ25Aのカウントアップ(図4のステップS4)で点線の直後からカウンタ値が1カウント増加し、さらにその直後の同期割込み信号の送受信(図4のステップS5,S6)が下方に向かう太い矢印で示されている。
その後、システムイニシャル処理手段24A,34Aにより、ハンドシェイク(通信用パラメータの取り決め等の通信規律の確立処理)を行うことにより、基本コントローラ20と拡張コントローラ30との間のイニシャル完了待ち合わせを行う。なお、図6の例では、イニシャル完了待ち合わせ時のカウンタ値が2となっているが、説明の便宜と紙面の都合上の記載であり、実際のカウンタ値を示すものではない。
そして、イニシャル処理の完了後には、基本コントローラ20および拡張コントローラ30の双方とも、イニシャル状態からアプリケーション停止状態となり、基本コントローラ20の外部要求待機処理手段24Fによる外部からの起動要求待ち(起動のスイッチ操作待ち)を行う処理B(図5参照)が開始される。なお、図6の例では、カウンタ値が3のときに外部からの起動要求待ちが開始されているが、説明の便宜と紙面の都合上の記載であり、実際のカウンタ値を示すものではない。
この際、処理B(図5参照)に対し、処理A(図4参照)は、一定周期での割込みとなるので、図6に示すように、処理Aと処理Bとが交互に実行されるタイムチャートとなる。但し、処理Aは、割込みの処理であるため、図6のタイムチャートにおいて、図4の処理Aの流れは何回も繰り返されるが、図5の処理Bの流れは1回である。なお、図6中において、点線で示されたアプリケーション起動周期の時間間隔(例えば1ミリ秒等)を示す長さと、処理Aの実行時間を示す長さと、処理Bの実行時間を示す長さとは、実際の時間の比率を示すものではなく、各処理の時間的関係をイメージし易くするための説明の便宜上の記載である。
図6に示すように、同期フリーランカウンタ25Aの値がLになった時点で、外部からの起動要求(図5のステップS23)があったとすると、この時点で、アプリケーション起動準備処理の開始タイミングを示す同期フリーランカウンタ値Mが、見込みで予め定められたカウント数C1を用いて、M=L+C1により算出されるとともに、アプリケーション運転状態の開始タイミングを示す同期フリーランカウンタ値Nが、見込みで予め定められたカウント数C2を用いて、N=L+C2により算出される(図5のステップS24)。そして、算出された同期フリーランカウンタ値M,Nの設定が行われる(図5のステップS25,S26)。
そして、同期フリーランカウンタ25A,35Aの値が、設定されたカウンタ値Mになった時点で、アプリケーション起動準備処理の開始タイミングが到来したと判断され(図5のステップS29,S31)、基本コントローラ20では、アプリケーションαの起動準備処理が開始され(図5のステップS30)、拡張コントローラ30では、アプリケーションβの起動準備処理が開始される(図5のステップS32)。但し、アプリケーション起動準備処理の開始タイミングの同期を行わない場合には、このようなカウンタ値Mによる開始タイミング判断処理(図5のステップS29,S31)を行うことなく、それぞれの起動準備処理を開始してもよい。
なお、図6の例では、アプリケーションαの起動準備処理がカウント値(N−1)まで続き、アプリケーションβの起動準備処理がカウント値(N−2)まで続くように記載されているが、これは、各コントローラ20,30によって起動準備処理に要する時間が異なることを示すための記載であり、実際のカウント値ではない。実際には、例えばC2=1000カウント等の大きさの数値を見込んでNを設定するので、Nよりも、もっと手前のカウント値でそれぞれの起動準備処理は終了する。
その後、アプリケーション起動周期の到来タイミングで、処理Aの同期フリーランカウンタ25Aのカウンタアップ(図4のステップS4)を行って、同期フリーランカウンタ25Aの値がNになったとする。そして、処理Aの同期割込み信号の送受信(図4のステップS5,S6)の後に、ステータスの確認(図4のステップS7,S10)を行っても、このときには、ステータスは、未だアプリケーション停止状態(STOP)であるから、アプリケーション起動要求(図4のステップS8,S11)は行われない。
この直後に、処理Aの割込みを終了し、処理Bに戻ると、同期フリーランカウンタ25A,35Aの値はNになっているので、アプリケーション運転状態の開始タイミングが到来したと判断され(図5のステップS33,S37)、基本コントローラ20および拡張コントローラ30において、基本コントローラ20用のステータスおよび拡張コントローラ30用のステータスが、それぞれアプリケーション停止状態(STOP)からアプリケーション運転状態(RUN)へ移行される(図5のステップS35,S39)。
続いて、同期フリーランカウンタ25A,35Aの値が(N+1)になった時点で、処理Aの同期割込み信号の送受信(図4のステップS5,S6)の後に、ステータスの確認(図4のステップS7,S10)を行うと、この時点では、ステータスは、既にアプリケーション運転状態(RUN)へ移行されているので、基本コントローラ20および拡張コントローラ30において、アプリケーションα,βが起動される(図4のステップS8,S11)。以降、同期フリーランカウンタ25A,35Aの値が(N+2),(N+3),…になった時点でも同様であり、ステータスは、アプリケーション運転状態(RUN)となっているので、アプリケーションα,βが起動される(図4のステップS8,S11)。従って、アプリケーション運転状態の開始タイミングを示す同期フリーランカウンタ値がNであれば、その次のカウンタ値(N+1)の時点から、アプリケーション運転状態(アプリケーションα,βの一定周期での起動が繰り返される期間)が続くことになる。
このような本実施形態によれば、次のような効果がある。すなわち、基本コントローラ20の同期割込み送信処理手段24Dおよび拡張コントローラ30の同期割込み受信処理手段34Bにより、同期割込み信号の送受信を行い、基本コントローラ20および拡張コントローラ30の各々のアプリケーション起動要求処理手段24E,34Cにより、同期割込み信号の送受信のタイミングで、各々のアプリケーションの起動要求処理を実行するので(図4参照)、アプリケーション運転状態(図6の例では、カウンタ値が(N+1)以降の期間)では、双方のアプリケーションα,βの周期的に繰り返される起動を毎回同期させることができる。
また、基本コントローラ20のカウント更新処理手段24Cにより、同期フリーランカウンタ25Aの値を更新していき、基本コントローラ20および拡張コントローラ30の各々のアプリ運転状態開始タイミング判断処理手段24L,34Gにより、同期フリーランカウンタ25A,35Aの現在値と、アプリ運転状態開始カウンタ値記憶手段25C,35Cに記憶された同期フリーランカウンタ値とが一致したと判断した場合に、各々のアプリ運転状態移行処理手段24M,34Hにより、各々のステータス記憶手段25F,35Gに記憶されたステータスを、アプリケーション停止状態(STOP)からアプリケーション運転状態(RUN)へ移行させる(図5参照)。そして、各々のアプリケーション起動要求処理手段24E,34Cにより、同期割込み信号の送受信のタイミングで、各々のアプリケーションの起動要求処理を実行する際には、各々のステータス記憶手段25F,35Gに記憶されたステータスを取得し、ステータスがアプリケーション運転状態(RUN)に既に移行されている場合に起動要求処理を実行するので(図4参照)、アプリケーション停止状態からアプリケーション運転状態への移行を同期させることができる。つまり、図6の例でいえば、カウンタ値が(N+1)の時点から、双方のアプリケーションα,βの起動要求を開始することができる。
このため、アプリケーション運転状態(図6の例では、カウンタ値が(N+1)以降の期間)におけるアプリケーションプログラムα,βの周期的に繰り返される起動の同期化、およびアプリケーション停止状態からアプリケーション運転状態への移行の同期化(図6の例でいえば、カウンタ値が(N+1)の時点からアプリケーション運転状態となる。)を実現することができるので、例えば、カラー印刷機に設けられた送り用のサーボモータ等のような高精度な同期制御が要求される制御対象の場合であっても、不都合なく稼働させることができる。
また、設定用カウンタ値算出・設定処理手段24Gは、同期フリーランカウンタ25Aの現在値に、予め定められたカウント数C2を加算することにより、アプリケーション運転状態の開始タイミングを示す同期フリーランカウンタ値(図6の例では、N)を算出し、設定する構成とされているので、外部からの起動要求を受け付けたときに、そのときの同期フリーランカウンタ25Aの値を基準として、相対的にアプリケーション運転状態の開始タイミングを定めることができるため、開始タイミングの判断処理の容易化を図ることができる。
なお、本発明は前記実施形態に限定されるものではなく、本発明の目的を達成できる範囲内での変形等は本発明に含まれるものである。
例えば、前記実施形態では、拡張コントローラ30は1つであるものとして説明を行ったが、拡張コントローラ30は複数でもよい。
また、前記実施形態では、設定用カウンタ値算出・設定処理手段24Gにより、外部からの起動要求を受け付けたときの同期フリーランカウンタ25Aの値を基準として、相対的にアプリケーション運転状態の開始タイミングを示す同期フリーランカウンタ値を算出し、設定する構成とされていたが(図5のステップS24)、これに限定されるものではなく、例えば、基本コントローラ20および拡張コントローラ30の双方(3つ以上のコントローラがある場合には、それらの全部)についてのアプリケーション起動準備処理が終了するのをフラグやステータス等を用いて確認してから(つまり、起動準備処理の終了を判断できるようなフラグやステータスを設けておく。)、確認後にアプリケーション運転状態の開始タイミングを示す同期フリーランカウンタ値を算出し、設定する構成としてもよい。例えば、全部のアプリケーション起動準備処理が終了するのを確認した時点の同期フリーランカウンタ25Aの値に、予め定められたカウント数C3(例えば、C3=2カウント等)を加算することにより、アプリケーション運転状態の開始タイミングを示す同期フリーランカウンタ値を算出し、設定してもよい。しかし、アプリケーション運転状態の開始タイミングの判断処理の容易化という観点からは、前記実施形態のような構成とすることが好ましい。
さらに、前記実施形態では、3つの共有メモリ領域25,35,45でデータを共有する構成とされていたが(図1、図2参照)、それぞれのマイクロプロセッサとバスで接続された1つの共有メモリ領域を設置してもよい。
そして、前記実施形態では、アプリケーション起動準備処理の開始タイミングを示す同期フリーランカウンタ値を算出・設定し、このカウンタ値(図6の例では、M)を用いてアプリケーション起動準備処理の開始タイミングの到来を判断する構成とされていたが(図5のステップS29,S31)、この処理を省略し、アプリケーション起動準備処理の開始タイミングの同期を図らない構成としてもよく、要するに、少なくともアプリケーション運転状態の開始タイミングの同期が図られていればよい。
また、実用上、同期フリーランカウンタ25Aの値のオーバーフローが問題になることはないが、万一、オーバーフローした場合(外部からの起動要求が著しく遅れた場合等)を考慮し、アプリケーション運転状態の開始タイミングを示す同期フリーランカウンタ値の算出処理を、次のようにしてもよい。すなわち、同期フリーランカウンタ25Aの最大値をMAXとし(0〜MAXの値をとるので、カウント総数は(MAX+1)となる。)、算出するアプリケーション運転状態の開始タイミングを示す同期フリーランカウンタ値をNとし、この算出処理の時点での同期フリーランカウンタ25Aの現在値をLとし、予め定められたカウント数をC2(このC2の値は、前記実施形態と同じでよい。)とすると、N=L+C2がMAXを超える場合には、N=L+C2−(MAX+1)とする処理を行ってもよい。つまり、カウント値がMAXとなった後に、0に戻ることを考慮し、カウント総数の(MAX+1)を減じている。なお、同期フリーランカウンタ25Aが1からカウントされるものとすれば(つまり、カウント値がMAXとなった後に、1に戻るとすれば)、1〜MAXの値をとるので、カウント総数はMAXとなり、N=L+C2−MAXでよい。要するに、カウント値がLの時点(外部からの起動要求があった時点)から、カウント数C2の時間分だけ経過した時点を定めることができればよい。
以上のように、本発明のプログラマブルコントローラシステムおよびそのアプリケーション起動方法は、例えば、各々のコントローラでユーザデータ領域を使用するアプリケーションプログラムを実行する場合等に用いるのに適している。
10 プログラマブルコントローラシステム
20 基本コントローラ
24B アプリケーション起動周期待機処理手段
24C カウント更新処理手段
24D 同期割込み送信処理手段
24E,34C アプリケーション起動要求処理手段
24G 設定用カウンタ値算出・設定処理手段
24L,34G アプリ運転状態開始タイミング判断処理手段
24M,34H アプリ運転状態移行処理手段
25,35,45 共有メモリ領域
25A,35A,45A 同期フリーランカウンタ
25C,35C,45C アプリ運転状態開始カウンタ値記憶手段
25D,35D,45D 基本コントローラ用のアプリ運転開始要求フラグ記憶手段
25E,35E,45E 拡張コントローラ用のアプリ運転開始要求フラグ記憶手段
25F,35F,45F 基本コントローラ用のステータス記憶手段
25G,35G,45G 拡張コントローラ用のステータス記憶手段
30 拡張コントローラ
34B 同期割込み受信処理手段
α,β アプリケーションプログラム

Claims (3)

  1. 基本コントローラおよび少なくとも1つの拡張コントローラを備え、これらの複数のコントローラの各々で別々のアプリケーションプログラムを実行する構成とされたプログラマブルコントローラシステムであって、
    前記基本コントローラおよび前記拡張コントローラで共有される共有メモリ領域に設けられた同期フリーランカウンタと、
    前記共有メモリ領域に設けられてアプリケーション運転状態の開始タイミングを示す同期フリーランカウンタ値を記憶するアプリ運転状態開始カウンタ値記憶手段と、
    前記基本コントローラ用のアプリケーションについての運転状態および停止状態を含むステータスを記憶する前記基本コントローラ用のステータス記憶手段と、
    前記拡張コントローラ用のアプリケーションについての運転状態および停止状態を含むステータスを記憶する前記拡張コントローラ用のステータス記憶手段とを備え、
    前記基本コントローラは、
    前記拡張コントローラへ同期割込み信号を送信する処理を実行する同期割込み送信処理手段と、
    前記同期フリーランカウンタに、前記同期割込み信号の1回の送信につき、1カウント若しくは一定数のカウントを加算または減算する処理を実行するカウント更新処理手段とを備え、
    前記拡張コントローラは、
    前記基本コントローラからの前記同期割込み信号を受信する処理を実行する同期割込み受信処理手段を備え、
    前記基本コントローラおよび前記拡張コントローラの各々は、
    前記同期フリーランカウンタの現在値と、前記アプリ運転状態開始カウンタ値記憶手段に記憶された前記同期フリーランカウンタ値とが一致したか否かを判断する処理を繰り返し実行するアプリ運転状態開始タイミング判断処理手段と、
    このアプリ運転状態開始タイミング判断処理手段により一致したと判断した場合に、各々の前記ステータス記憶手段に記憶された前記ステータスを、アプリケーション停止状態からアプリケーション運転状態へ移行させる処理を実行するアプリ運転状態移行処理手段と、
    前記同期割込み信号の送受信のタイミングで、各々の前記ステータス記憶手段に記憶された前記ステータスを取得し、取得した前記ステータスがアプリケーション運転状態である場合に、各々のアプリケーションの起動要求処理を実行するアプリケーション起動要求処理手段と
    を備えたことを特徴とするプログラマブルコントローラシステム。
  2. 前記基本コントローラは、
    外部からの起動要求を受け付けた場合に、前記同期フリーランカウンタの現在値に、予め定められたカウント数を加算または減算することにより、前記アプリケーション運転状態の開始タイミングを示す同期フリーランカウンタ値を算出し、算出した前記同期フリーランカウンタ値を前記アプリ運転状態開始カウンタ値記憶手段に記憶させる処理を実行する設定用カウンタ値算出・設定処理手段を備えた
    ことを特徴とする請求項1に記載のプログラマブルコントローラシステム。
  3. 基本コントローラおよび少なくとも1つの拡張コントローラを備え、これらの複数のコントローラの各々で別々のアプリケーションプログラムを実行する構成とされたプログラマブルコントローラシステムのアプリケーション起動方法であって、
    前記基本コントローラおよび前記拡張コントローラで共有される共有メモリ領域に、同期フリーランカウンタと、アプリケーション運転状態の開始タイミングを示す同期フリーランカウンタ値を記憶するアプリ運転状態開始カウンタ値記憶手段とを設けるとともに、
    前記基本コントローラ用のアプリケーションについての運転状態および停止状態を含むステータスを記憶する前記基本コントローラ用のステータス記憶手段と、前記拡張コントローラ用のアプリケーションについての運転状態および停止状態を含むステータスを記憶する前記拡張コントローラ用のステータス記憶手段とを設けておき、
    前記基本コントローラの同期割込み送信処理手段が、前記拡張コントローラへ同期割込み信号を送信する処理を実行し、
    前記基本コントローラのカウント更新処理手段が、前記同期フリーランカウンタに、前記同期割込み信号の1回の送信につき、1カウント若しくは一定数のカウントを加算または減算する処理を実行し、
    前記拡張コントローラの同期割込み受信処理手段が、前記基本コントローラからの前記同期割込み信号を受信する処理を実行し、
    前記基本コントローラおよび前記拡張コントローラの各々のアプリ運転状態開始タイミング判断処理手段が、前記同期フリーランカウンタの現在値と、前記アプリ運転状態開始カウンタ値記憶手段に記憶された前記同期フリーランカウンタ値とが一致したか否かを判断する処理を繰り返し実行し、
    前記基本コントローラおよび前記拡張コントローラの各々のアプリ運転状態移行処理手段が、前記アプリ運転状態開始タイミング判断処理手段により一致したと判断した場合に、各々の前記ステータス記憶手段に記憶された前記ステータスを、アプリケーション停止状態からアプリケーション運転状態へ移行させる処理を実行し、
    前記基本コントローラおよび前記拡張コントローラの各々のアプリケーション起動要求処理手段が、前記同期割込み信号の送受信のタイミングで、各々の前記ステータス記憶手段に記憶された前記ステータスを取得し、取得した前記ステータスがアプリケーション運転状態である場合に、各々のアプリケーションの起動要求処理を実行する
    ことを特徴とするプログラマブルコントローラシステムのアプリケーション起動方法。
JP2010141116A 2010-06-21 2010-06-21 プログラマブルコントローラシステムおよびそのアプリケーション起動方法 Active JP5540928B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010141116A JP5540928B2 (ja) 2010-06-21 2010-06-21 プログラマブルコントローラシステムおよびそのアプリケーション起動方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010141116A JP5540928B2 (ja) 2010-06-21 2010-06-21 プログラマブルコントローラシステムおよびそのアプリケーション起動方法

Publications (2)

Publication Number Publication Date
JP2012003732A JP2012003732A (ja) 2012-01-05
JP5540928B2 true JP5540928B2 (ja) 2014-07-02

Family

ID=45535593

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010141116A Active JP5540928B2 (ja) 2010-06-21 2010-06-21 プログラマブルコントローラシステムおよびそのアプリケーション起動方法

Country Status (1)

Country Link
JP (1) JP5540928B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5549455B2 (ja) * 2010-07-21 2014-07-16 富士電機株式会社 プログラマブルコントローラシステムおよびそのプログラム更新方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63211056A (ja) * 1987-02-27 1988-09-01 Hitachi Ltd マルチプロセツサシステム
JPH1131133A (ja) * 1997-07-11 1999-02-02 Yaskawa Electric Corp モジュール間の同期方法
JP2000010806A (ja) * 1998-06-25 2000-01-14 Hitachi Ltd 分散プログラム実行方法及び複数コンピュータ立ち上げ方法
JP2000357002A (ja) * 1999-06-15 2000-12-26 Canon Inc 負荷制御装置及び負荷制御方法
JP3606281B2 (ja) * 2002-06-07 2005-01-05 オムロン株式会社 プログラマブルコントローラ及びcpuユニット並びに特殊機能モジュール及び二重化処理方法
JP4273905B2 (ja) * 2003-09-30 2009-06-03 富士電機システムズ株式会社 2重化コントローラシステム、その方法
JP3852469B2 (ja) * 2004-03-11 2006-11-29 オムロン株式会社 同期コントローラおよびコントローラシステム
JP2006268476A (ja) * 2005-03-24 2006-10-05 Murata Mfg Co Ltd 熱処理設備システム
JP2007213474A (ja) * 2006-02-13 2007-08-23 Yaskawa Electric Corp モーション制御システム

Also Published As

Publication number Publication date
JP2012003732A (ja) 2012-01-05

Similar Documents

Publication Publication Date Title
US8190941B2 (en) Field control system
JP2016110458A (ja) プログラマブル・ロジック・コントローラ、基本ユニット、制御方法およびプログラム
US20180041375A1 (en) Communication device, communication method, and computer readable medium
JP4241343B2 (ja) 送信タイミング決定方法、バス使用権の調停方法、ネットワークシステム、プログラム
KR101568955B1 (ko) I/o 디바이스, 프로그래머블 로직 컨트롤러 및 연산 방법
JP5549455B2 (ja) プログラマブルコントローラシステムおよびそのプログラム更新方法
US20200150611A1 (en) Functional unit and control apparatus wherein a functional unit synchronized with another functional unit on basis of an outside trigger signal having a synchronized period
JP5540928B2 (ja) プログラマブルコントローラシステムおよびそのアプリケーション起動方法
CN106576038A (zh) 网络系统、时间主站点、以及时间从站点
JP4961589B2 (ja) ネットワークシステムおよびスレーブ同期方法
JP5067670B2 (ja) マシンコントローラシステム
JP6816765B2 (ja) 車両用表示装置
JP2015132894A (ja) マイクロコントローラ装置及びその動作制御方法
JP6608019B2 (ja) 機能ユニット及び制御装置
JP2011096114A (ja) 数値制御装置、工作機械の制御方法、及び工作機械の制御プログラム
JP2014157386A (ja) データ処理システム
JPH09219714A (ja) 伝送制御システム
JP2014134989A (ja) 計算機システム及び計算機管理方法
JP5742693B2 (ja) 通信装置及びクロック同期式通信システム
JP2011234212A (ja) タスク制御装置
JP2016082394A (ja) 伝送装置及び時刻同期方法
WO2019106783A1 (ja) 温度調節計及び通信変換器
JP2001005505A (ja) プログラマブル・コントローラ
WO2015136686A1 (ja) 情報処理装置及び方法
KR20000039889A (ko) 교환기에서 프로세서간의 메시지 송신점유 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130614

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140312

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140421

R150 Certificate of patent or registration of utility model

Ref document number: 5540928

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250