JP2008090656A - プログラマブルコントローラ - Google Patents
プログラマブルコントローラ Download PDFInfo
- Publication number
- JP2008090656A JP2008090656A JP2006271749A JP2006271749A JP2008090656A JP 2008090656 A JP2008090656 A JP 2008090656A JP 2006271749 A JP2006271749 A JP 2006271749A JP 2006271749 A JP2006271749 A JP 2006271749A JP 2008090656 A JP2008090656 A JP 2008090656A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- data
- program
- user program
- user
- 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
- 230000015654 memory Effects 0.000 claims abstract description 136
- 238000000034 method Methods 0.000 claims description 61
- 230000008569 process Effects 0.000 claims description 53
- 238000012545 processing Methods 0.000 claims description 23
- 238000001514 detection method Methods 0.000 claims description 10
- 238000003745 diagnosis Methods 0.000 abstract description 28
- 230000008439 repair process Effects 0.000 abstract description 17
- 230000006378 damage Effects 0.000 description 14
- 230000006870 function Effects 0.000 description 8
- 230000002159 abnormal effect Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 102220637010 Actin-like protein 7A_S10T_mutation Human genes 0.000 description 3
- 102220646157 Actin-like protein 7A_S12A_mutation Human genes 0.000 description 3
- 238000012508 change request Methods 0.000 description 3
- 238000011084 recovery Methods 0.000 description 3
- 230000005856 abnormality Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- JJWKPURADFRFRB-UHFFFAOYSA-N carbonyl sulfide Chemical compound O=C=S JJWKPURADFRFRB-UHFFFAOYSA-N 0.000 description 2
- 230000008570 general process Effects 0.000 description 2
- 230000009225 memory damage Effects 0.000 description 2
- 238000012937 correction Methods 0.000 description 1
- 238000002405 diagnostic procedure Methods 0.000 description 1
- 230000005672 electromagnetic field Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000005855 radiation Effects 0.000 description 1
- 238000004092 self-diagnosis Methods 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Landscapes
- Programmable Controllers (AREA)
Abstract
【解決手段】ユーザプログラムメモリ17(RAM)にはスキャン周期ごとの制御演算のために読み出されるユーザプログラムMが、システムワークメモリ16とユーザデータメモリ18(共にRAM)にはそれぞれプログラムMと同一内容のバックアップユーザプログラムB1とB2が格納され、多数決メモリ診断・修復手段15B(システムプログラムメモリ15内)がスキャン周期ごとに各プログラムM、B1、B2の互いに対応する領域のデータを読み出して比較し、このデータが一致するプログラムの数がユーザプログラムおよびバックアップユーザプログラムの総数の過半数(本例では2つ以上)となるデータが正しいとして各プログラムM、B1、B2の破損の有無を検出し、破損プログラムを非破損プログラムによって修復する。
【選択図】 図1
Description
なお、以下各図において同一の符号は同一もしくは相当部分を示す。
このPLCは、複数のモジュール、すなわち、電源供給源となる電源モジュール、PLC全体を統括制御するCPUモジュール、各種の制御対象機器の適所に取り付けたスイッチやセンサの信号を入力する入力モジュール、同じく制御対象機器のアクチュエータなどに制御出力を出す出力モジュール、通信ネットワークに接続するための通信モジュールなどの各種モジュールを適宜組み合わせて構成される。
CPUモジュール10は、内部のシステムバス19によって互いに接続された、以下の11、13〜18の各構成部からなる。
ここでCPU11は、システムプログラムメモリ15に記憶されたシステムプログラムを実行し、CPUモジュール10内の各構成部の動作制御を行うと共に、ユーザプログラムメモリ17に記憶されたユーザプログラムを実行して図外の制御対象機器のシーケンス制御を行う。このCPU11には通常、汎用のMPUあるいはこれに代わる専用IC(ASIC)が用いられている。
PLC固有バスインタフェース14は、I/Oモジュール40に対してPLC固有バス14aを介し外部の制御対象機器の制御に関わる信号の入出力を行う。
システムプログラムを保持するシステムプログラムメモリ15には、通常、不揮発性メモリであるEPROMあるいはFLASHメモリが使用される。なお、サムチェック・メモリ診断手段15Aはこのメモリ15に格納されたシステムプログラムが保持する後述のメモリ診断用のソフトウェア手段である。
ユーザプログラムメモリ17は、プログラミングローダ200から受信したユーザプログラムを記憶する役割を持ち、このメモリ17には、通常、RAMが使用される。
なお、このメモリ17には、ローダ200からのユーザプログラムがマシンコードである命令オブジェクトコード、つまりこのユーザプログラムを高速に実行すべきCPU11が理解できるコードに変換されて格納されている。
図5は従来のPLCのCPU11が実行する全般的なソフトウェア処理の例を示すフローチャートで、S1〜S13はそのステップ番号である。ここではステップS6のみがユーザプログラムの処理に相当し、これ以外のステップはシステムプログラムの処理に相当する。
このシーケンス制御処理では、CPU11は、先ずI/Oモジュール40内の図外の入力モジュールで入力した制御対象機器からの入力信号をユーザデータメモリ18内のI/Oメモリ領域に取り込み(ステップS5、入力リフレッシュ)、次いでユーザプログラムメモリ17に格納されたユーザプログラム(シーケンスプログラム)を読み出し、上記制御対象機器からの最新の入力信号を用いて論理演算を行う(ステップS6、ユーザプログラム演算実行)。
なお、スキャンEND処理内のローダ処理(ステップS11)では、プログラミングローダ200から新規の、あるいは変更されたユーザプログラムがダウンロードされた場合、このダウンロードされたユーザプログラムをユーザプログラムメモリ17に取り込んで従来のユーザプログラムを更新する。
また同じくスキャンEND処理内の各種システム診断処理(ステップS13)では、I/Oモジュール40のPLC固有バス14aからの外れチェックなどを行う。
なお、図4のシステムプログラムメモリ15内に示したサムチェック・メモリ診断手段15Aの機能は図5のメモリ診断処理(ステップS10)、つまり図6のメモリ診断サブルーチン処理と、図5の基準SUM値算出処理(ステップS12)に相当する。
具体的には、実際の運転中(つまりスキャン周期ごとのシーケンス制御のループ処理中)、図5中のメモリ診断処理(ステップS10)において、CPU11は、ユーザプログラムメモリのRAM17上にあるユーザプログラムのSUM値としての被診断SUM値をスキャン周期の複数回分に分けて算出する(ステップS41)。
他方、このステップS42で最終データまでのSUM値算出を終えたと判別した場合は(分岐YES)、この被診断SUM値を前記のようにシステムワークメモリ16内の所定領域に格納した基準SUM値と比較する(ステップS43、44)。
しかし、SUM値が一致しない場合は(ステップS44、分岐「不一致」)、何らかの理由でRAM17上のユーザプログラムが破損したと判断し、暴走・不正出力を防止するためPLCの運転を異常停止させる状態変更要求をセットし(ステップS45)、図6の処理を抜ける。
しかし、このようにPLCの運転を異常停止させると、制御しているシステム全体が停止してしまい工場の操業等に重大な影響が生じる可能性がある。そこで、システムを復旧動作させるため、保守員などによりプログラミングローダ等のツールをPLCに接続し、ユーザプログラムを再度転送してメモリの修正作業を実行する必要があるが、PLCは、一般に制御盤の奥に設置されているので、その接続は簡単ではなく、メモリの修復作業・システムの再起動までに多くの時間が必要となる。
スキャン周期ごとにシーケンス制御の演算処理のために読み出されるユーザプログラム(M)および該ユーザプログラムと同一内容の複数のバックアップユーザプログラム(B1、B2など)が1個のメモリに共に、または複数個のメモリ(それぞれRAMからなるユーザプログラムメモリ17、システムワークメモリ16、ユーザデータメモリ18など)の各々に前記ユーザプログラムおよびバックアップユーザプログラムの各プログラムが少なくとも1または複数プログラム格納されてなるプログラマブルコントローラ(100)であって、
(多数決メモリ診断・修復手段15Bを介し)前記スキャン周期ごとに前記ユーザプログラムおよび全てのバックアップユーザプログラムの互いに対応する領域のデータを読み出して比較し、このデータが互いに一致するプログラムの数が前記ユーザプログラムおよび全バックアップユーザプログラムの総数の過半数となるデータが正しいデータであるとして前記各プログラムの破損の有無を検出するようにする。
また請求項3のプログラマブルコントローラは、請求項2に記載のプログラマブルコントローラにおいて、前記の検出によって破損有りとされたプログラムが前記ユーザプログラムであるときは、前記の検出によって破損無しとされたバックアップユーザプログラムの所定の1つを前記ユーザプログラムに置き換えて前記スキャン周期ごとの演算処理に利用し、シーケンス制御を継続するようにする。
不揮発性メモリ(ROM、FLASHメモリ等)上にバックアップユーザプログラムを保存していないPLCにおいてもユーザプログラムの破損を確実に検出して、破損していないバックアップユーザプログラムのデータからこれを直ちに修復したり、またはCPUが制御演算実行のために読み込むユーザプログラムを破損していないバックアップユーザプログラムに切り替えるようにして、PLCの制御運転動作を停止することなく、システムの稼働を継続させことができる。
図1は本発明の一実施例としてのPLCの要部の構成を示すブロック回路図で図4に対応するものである。図1の図4に対する相違は、図1ではシステムプログラムメモリ15に付加されるメモリ診断に関わるソフトウェア手段が、図4のサムチェック・メモリ診断手段15Aから多数決メモリ診断・修復手段15Bに置き換わった点と、ユーザプログラムメモリ17に格納されるユーザプログラム(図1ではMとして示す)に対するバックアップ用の2つのプログラムであるバックアップ・ユーザプログラムB1およびB2の格納領域が、それぞれシステムワークメモリ16およびユーザデータメモリ18の各RAMに設けられている点である。
また、図2は図1のCPU11が実行する全般的なソフトウェア処理の実施例を示すフローチャートで、図5に対応するものである。図2の図5に対する相違は、図5のメモリ診断処理(ステップS10)が図2では後述の図3のメモリ診断修復サブルーチン処理でその具体内容を示すメモリ診断修復処理(ステップS10A)に置き換わった点と、図5の基準SUM値算出処理(ステップS12)が、図2ではバックアップ・ユーザプログラム格納処理(ステップS12A)に置き換わった点である。
図2のバックアップ・ユーザプログラム格納処理(ステップS12A)では、図2のローダ処理(ステップS11)でユーザプログラムメモリ17にユーザプログラムMが新規あるいは従来のプログラムを更新してダウンロードされたとき、CPU11が、このユーザプログラムMと同一内容の2つのプログラムであるバックアップユーザプログラムB1およびB2をそれぞれシステムワークメモリ16およびユーザデータメモリ18に格納する。
図3は図2のメモリ診断修復処理(ステップS10A)の詳細処理としてのサブルーチン処理の実施例を示すフローチャートで、ステップS21〜S32はそのステップ番号である。なお本実施例では、図3の後述するステップS21、S22、S23に定義する〔データM〕、〔データB1〕、〔データB2〕は、図2の正常運転時におけるスキャン周期での毎回のループ処理ごとに、順次、1命令文ずつ、それぞれユーザプログラムM、バックアップユーザプログラムB1、バックアップユーザプログラムB2から読み出される、相対アドレスが共通の命令データであるものとする。
次のステップS22では、運転に使用していない一つ目のバックアップユーザプログラム(本例ではシステムワークメモリ16に格納したバックアップユーザプログラムB1とする)内の前記〔データM〕と共通の相対アドレスの命令文のデータを読み出し〔データB1〕とする。
次のステップS24(メモリ破損検出)では、〔データM〕と〔データB1〕を比較する。ここで両者が一致した場合(分岐「一致」)、さらにステップS25(メモリ破損検出)に進み〔データM〕と〔データB2〕を比較する。
他方、前記ステップS25の比較結果が不一致の場合(分岐「不一致」)、〔データB2〕に破損ありとして、次のステップS26(破損メモリ修復)で〔データB2〕のアドレスに〔データM〕を書き込んで〔データB2〕を修復し図3の処理を抜ける。なお、この〔データB2〕の修復は、以後も継続して図3の処理によるメモリの破損検出を実施できるようにするためである。
このステップS27で〔データM〕と〔データB2〕が一致した場合(分岐「一致」)、〔データB1〕に破損ありとして、次のステップS28(破損メモリ修復)で〔データB1〕のアドレスに〔データM〕を書き込んで〔データB1〕を修復し図3の処理を抜ける。なお、この〔データB1〕の修復も、以後の図3の処理によるメモリの破損検出を実施可能にするためである。
そこで本実施例では安全のため、次のステップS31(未破損メモリへの切り替え)でシーケンス制御の演算実行に使用するユーザプログラムのアドレスを、破損のあったユーザプログラムMのアドレスからバックアップユーザプログラムB1のアドレスに切り替える(つまり、今までのバックアップユーザプログラムB1を今までのユーザプログラムMに置き換える)と共に、ステップS30の処理で破損が修復された今までのユーザプログラムMを今までのバックアップユーザプログラムB1に置き換えた形で図3の処理が継続できるようにし、図3の処理を抜ける。
なお、3者データの不一致の場合、前記ステップS32では運転の異常停止をすることとしたが、実際には、この3者のデータ内に破損していないデータが存在する可能性もある。そこで、運転異常停止をする前に、さらに従来のサムチェックを併用することとすれば、サム値が一致するユーザプログラム(またはバックアップユーザプログラム)を「破損なし」、サム値が一致しないユーザプログラム(またはバックアップユーザプログラム)を「破損あり」として正常なユーザプログラム(またはバックアップユーザプログラム)を選別することができ、PLC異常停止の確率をさらに減少させることができる。
また、上述した図3のメモリ診断修復処理の実施例では、スキャン周期での本処理1回ごとにユーザプログラムおよびバックアップユーザプログラムの1命令文ずつを読み出して比較することとしているが、これに代わり、処理に時間がかかるものの、1回のメモリ診断修復処理でユーザプログラムおよびバックアップユーザプログラムの全命令文をいっぺんに読み出して比較する方法をとることもできる。
11 CPU
13 ドライバ/レシーバ
14 PLC固有バスインタフェース
14a PLC固有バス
15 システムプログラムメモリ
15B 多数決メモリ診断・修復手段
16 システムワークメモリ
17 ユーザプログラムメモリ
18 ユーザデータメモリ
19 システムバス
30 ローダインタフェース
40 I/Oモジュール
100 プログラマブルコントローラ(PLC)
200 プログラミングローダ
300 通信線
M ユーザプログラム
B1、B2 バックアップユーザプログラム
Claims (3)
- スキャン周期ごとにシーケンス制御の演算処理のために読み出されるユーザプログラムおよび該ユーザプログラムと同一内容の複数のバックアップユーザプログラムが1個のメモリに共に、または複数個のメモリの各々に前記ユーザプログラムおよびバックアップユーザプログラムの各プログラムが少なくとも1または複数プログラム格納されてなるプログラマブルコントローラであって、
前記スキャン周期ごとに前記ユーザプログラムおよび全てのバックアップユーザプログラムの互いに対応する領域のデータを読み出して比較し、このデータが互いに一致するプログラムの数が前記ユーザプログラムおよび全バックアップユーザプログラムの総数の過半数となるデータが正しいデータであるとして前記各プログラムの破損の有無を検出することを特徴とするプログラマブルコントローラ。 - 前記の検出によって破損有りとされたプログラムの該当データを前記の正しいデータで修復し、シーケンス制御を継続することを特徴とする請求項1に記載のプログラマブルコントローラ。
- 前記の検出によって破損有りとされたプログラムが前記ユーザプログラムであるときは、前記の検出によって破損無しとされたバックアップユーザプログラムの所定の1つを前記ユーザプログラムに置き換えて前記スキャン周期ごとの演算処理に利用し、シーケンス制御を継続することを特徴とする請求項2に記載のプログラマブルコントローラ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006271749A JP4867557B2 (ja) | 2006-10-03 | 2006-10-03 | プログラマブルコントローラ |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006271749A JP4867557B2 (ja) | 2006-10-03 | 2006-10-03 | プログラマブルコントローラ |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2008090656A true JP2008090656A (ja) | 2008-04-17 |
JP4867557B2 JP4867557B2 (ja) | 2012-02-01 |
Family
ID=39374721
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006271749A Active JP4867557B2 (ja) | 2006-10-03 | 2006-10-03 | プログラマブルコントローラ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4867557B2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011221751A (ja) * | 2010-04-08 | 2011-11-04 | Hitachi Ltd | 情報処理装置および情報処理方法 |
CN114428477A (zh) * | 2021-12-07 | 2022-05-03 | 首钢京唐钢铁联合有限责任公司 | 可编程逻辑控制器plc及其数据恢复方法、装置和存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS61125652A (ja) * | 1984-11-24 | 1986-06-13 | Matsushita Electric Works Ltd | 制御システム |
JPH11161554A (ja) * | 1997-11-25 | 1999-06-18 | Nec Corp | 記憶装置正常性確認装置および情報処理装置 |
-
2006
- 2006-10-03 JP JP2006271749A patent/JP4867557B2/ja active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS61125652A (ja) * | 1984-11-24 | 1986-06-13 | Matsushita Electric Works Ltd | 制御システム |
JPH11161554A (ja) * | 1997-11-25 | 1999-06-18 | Nec Corp | 記憶装置正常性確認装置および情報処理装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011221751A (ja) * | 2010-04-08 | 2011-11-04 | Hitachi Ltd | 情報処理装置および情報処理方法 |
CN114428477A (zh) * | 2021-12-07 | 2022-05-03 | 首钢京唐钢铁联合有限责任公司 | 可编程逻辑控制器plc及其数据恢复方法、装置和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
JP4867557B2 (ja) | 2012-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101246443B (zh) | 用于恢复存储器故障的方法和*** | |
US7882388B2 (en) | Dual independent non volatile memory systems | |
JP3961478B2 (ja) | プログラマブルコントローラ用ユニット及びメモリ自動復旧方法 | |
US7716524B2 (en) | Restarting an errored object of a first class | |
JP5041290B2 (ja) | プログラマブルコントローラおよびその異常時復旧方法 | |
JP2003015900A (ja) | 追走型多重化システム、及び追走により信頼性を高めるデータ処理方法 | |
WO2019040287A1 (en) | GUARANTEED A CORRECT PROGRAM SEQUENCE IN A DOUBLE PROCESSOR ARCHITECTURE | |
JP5620730B2 (ja) | 2重系演算処理装置および2重系演算処理方法 | |
JP2009116642A (ja) | Pciバス障害リカバリ方法及びプログラム | |
CN112559059B (zh) | 一种bios选项配置方法及相关装置 | |
JP4867557B2 (ja) | プログラマブルコントローラ | |
JP5012548B2 (ja) | プログラマブルコントローラ | |
JP2013175118A (ja) | 制御装置、及びそのメモリ故障検出方法、その自己診断方法 | |
CN111273928A (zh) | 一种自升级的bootloader设计方法 | |
JP4484074B2 (ja) | プログラマブルコントローラ用ユニット及びメモリ自動復旧方法 | |
JP2001290710A (ja) | データエラー検出装置 | |
JP2007304972A (ja) | マイクロプロセッサシステム | |
JP2005092695A (ja) | 二重化コントローラ、その等値化モード決定方法 | |
US20130007565A1 (en) | Method of processing faults in a microcontroller | |
JP2010061258A (ja) | デュプレックスプロセッサシステム及びプロセッサ二重化方法 | |
JP2013065261A (ja) | メモリ管理装置 | |
US8108740B2 (en) | Method for operating a memory device | |
JP2003140915A (ja) | コンピュータ装置及びプログラムのダウンロード方法 | |
KR100922409B1 (ko) | 정보 처리 장치 및 메모리 이상 감시 방법 | |
JPH05225077A (ja) | Eccを保持したメモリ制御回路のハードエラー検出方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20080919 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20081215 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20090219 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090914 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110225 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110301 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110404 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20110422 |
|
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: 20111018 |
|
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: 20111031 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4867557 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20141125 Year of fee payment: 3 |
|
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 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |