JP3775466B2 - プログラマブルコントローラ - Google Patents

プログラマブルコントローラ Download PDF

Info

Publication number
JP3775466B2
JP3775466B2 JP29402699A JP29402699A JP3775466B2 JP 3775466 B2 JP3775466 B2 JP 3775466B2 JP 29402699 A JP29402699 A JP 29402699A JP 29402699 A JP29402699 A JP 29402699A JP 3775466 B2 JP3775466 B2 JP 3775466B2
Authority
JP
Japan
Prior art keywords
program
output
program block
block
memory
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.)
Expired - Fee Related
Application number
JP29402699A
Other languages
English (en)
Other versions
JP2001117608A (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 JP29402699A priority Critical patent/JP3775466B2/ja
Publication of JP2001117608A publication Critical patent/JP2001117608A/ja
Application granted granted Critical
Publication of JP3775466B2 publication Critical patent/JP3775466B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Programmable Controllers (AREA)

Description

【0001】
【発明の属する技術分野】
この発明は、プログラムを複数のプログラムブロックに分割して記憶するプログラマブルロジックコントローラに係り、特に、プログラムブロックの実行とその対象となる出力装置への出力処理とをプログラムプロック単位で個別に制御可能とすることにより、異常発生時の被害波及範囲の制限並びに異常停止対策の低コスト化等を可能としたプログラマブルロジックコントローラに関する。
【0002】
【従来の技術】
一般に、プログラマブルロジックコントローラ(以下、PLCという)は、入力装置、演算装置、出力装置の組み合わせを基本とし、入力装置に接続されたセンサやスイッチなどの信号入力を入力装置を介して演算装置に取り込み、その入力結果を基に演算装置に予め格納されているユーザが作成したラダーなどの制御プログラムを実行し、その実行結果を出力装置を介して外部のモータやアクチュエータなどに出力するように構成されている。
【0003】
この外部のモータやアクチュエータなどへの出力処理は一般的に以下に示す方法で行われる。なお、当業者には良く知られているように、この種のPLCにはユーザプログラムの実行結果として生成される出力データを出力装置の該当出力ポートへと直接に送出する方式のものと、同出力データを一旦内部メモリに一時記憶させた後、それらを所定のタイミングで一括して内部メモリから該当出力ポートへと送出する処理(リフレッシュ処理)を行う方式のものとが存在する。
【0004】
すなわち、最も一般的である後者の方式のものにあっては、外部の入出力のための入出力ポートアドレスと、プログラム実行において実際の入出力の代用となる演算装置内の内部メモリであるI/OメモリのI/Oメモリアドレスとの対応付けを一定のルールで行い、その入出力ポートアドレスとI/Oメモリアドレスとの対応情報を予めPLC内に記憶しておく。
【0005】
プログラム実行開始時に、I/Oメモリをクリアした上で、プログラム実行においては実際の参照/書き込みは上記I/Oメモリ上で行う。
【0006】
そして、プログラム実行後、上述した入出力ポートアドレスとI/Oメモリアドレスとの対応情報をもとに、I/Oメモリのデータを対応する出力ポートに書き込み、また、入力ポートから読み込んだデータは対応するI/Oメモリアドレスに書き込む。つまり、I/Oメモリと入出力ポートとの間でデータ交換(I/Oリフレッシュ)を行うこととなる。
【0007】
全ての入出力ポートとデータ交換が完了した後でプログラムの実行が行われ、その実行完了後、再びI/Oメモリと入出力ポートとのデータ交換を行うという繰り返し動作で、プログラム実行側からみて、常に最新の入力情報を参照することができ、実行結果を常に外部へ出力することができることになる。
【0008】
ところで、近年、PLCは、半導体メモリのコストダウン、マイコンチップの高性能化に相まって、1台のPLCで制御できる入出力点数が飛躍的に増加する傾向にある。また、これに比例して、PLCのプログラム容量も大幅に増加している。
【0009】
さらに、PLCを組み込むことで設計される各種機械や製造設備自身の高機能化も、プログラム容量の大容量化に拍車をかけている。
【0010】
このような傾向の中で、PLCには近年、大容量のプログラムを効率よく、また高品質で設計するために、また再利用やメンテナンス管理のために、プログラムを分割/階層化したりして、プログラムをブロック分割する機能が付け加えられる傾向にある。
【0011】
ユーザは、これらの機能を利用して、分割ブロック化されたプログラムを1台のPLCで制御される複数の装置のうちの個々の装置に割り当てたり、装置内の独立性の高い機能ユニット個々と対応させることで、プログラム設計において装置毎または機能毎の設計を順次または複数の作業者で分担して行うことでその生産性を高めている。
【0012】
【発明が解決しようとする課題】
しかし、従来のプログラム分割可能なPLCにあっては、装置内で比較的独立性の高い機能ユニット毎に、それを制御するプログラムをブロック分割したものの、プログラム実行時の異常発生に伴うエラー停止はプログラム全体であり、また、入出力のリフレッシュも全体で一括のため、ある特定の機能ユニットの制御において異常が発生するとプログラム全体が停止し、また、基本的には出力も全体で一括でリセットされてしまうという問題がある。
【0013】
つまり、従来のPLCにおいては、その異常に対して独立して動作可能でかつ正常に動作している機能ユニットの制御まで止めてしまうことになり、このために設備全体の稼動率や生産性を低下させることになる。
【0014】
また、異常停止した個所をプログラムで自動的にリカバーしようとすると、異常発生によるエラー停止の影響が及ばない別のPLCを設置しなければならず、このために自ずとコストアップに繋がる。
【0015】
そこで、この発明は、プログラムを複数のプログラムブロックに分割して実行するプログラマブルロジックコントローラにおける異常発生時の被害波及範囲の制限並びに異常停止対策の低コスト化等を図ることを目的とする。
【0016】
【課題を解決するための手段】
この発明のプログラマブルロジックコントローラは、ユーザプログラムを複数のプログラムブロックに分割して記憶するユーザプログラム記憶手段と、前記複数のプログラムブロックが起動中か停止中であるかを示すプログラムブロック起動情報をプログラムブロック毎に記憶するプログラムブロック起動情報記憶手段と、前記ユーザプログラム記憶手段に記憶されたユーザプログラム実行中に、いずれかのプログラムブロックに関して異常が発生すると、異常が発生したプログラムブロックの実行を停止するとともに、前記プログラムブロック起動情報記憶手段の当該プログラムブロックに該当するプログラムブロック起動情報を停止中に設定するユーザプログラム実行手段とを備え、前記ユーザプログラムの実行結果として生成される出力データを外部へ出力するリフレッシュ処理を実行する際に前記プログラムブロック起動情報記憶手段に格納されているプログラムブロック起動情報を参照している。
【0017】
なお、ここで言う『プログラマブルロジックコントローラ』には、ユーザプログラムの実行結果として生成される出力データを出力装置の該当出力ポートへと直接に送出する方式のものと、同出力データを一旦内部メモリに一時記憶させた後、それらを所定のタイミングで一括して内部メモリから該当出力ポートへと送出する処理(リフレッシュ処理)を行う方式のものとの双方が含まれる。
【0018】
このような構成によれば、いずれかのプログラムブロックに関して異常が発生した場合には、異常発生にかかるプログラムブロックの実行のみが停止されるとともに、プログラムブロックに該当するプログラムブロック起動情報が停止中に設定されるため、従来のPLCにおいて問題とされた、その異常に対して独立して動作可能でかつ正常に動作している機能ユニットの制御まで止めてしまうことがなくなり、このために設備全体の稼動率や生産性を低下させることもなくなる。
【0019】
また、このようなブロック単位の実行停止機能を有するプログラマブルロジックコントローラの好ましい実施の形態では、さらに、
出力使用状況情報をプログラムブロック別に記述したブロック別出力使用状況情報を記憶する記憶手段を備え、異常発生によりいずれかのプログラムブロックの実行を停止する際に、前記ブロック別出力使用状況情報を参照し、異常発生にかかるプログラムブロックが扱う出力ポートにOFFデータを出力している。
【0020】
このような構成によれば、いずれかのプログラムブロックに関して異常が発生した場合には、異常発生にかかるプログラムブロックが扱う出力ポートにOFFデータを出力することから、制御対象機器等の動作状態はその制御初期状態に保持され、予期せぬ動作を来すことがない。例えば、制御対象機器が正常回復後に初期状態から動作を再開するような場合には、この出力リセット機能が有効に作用する。
【0021】
このようなブロック単位の実行停止機能を有するプログラマブルロジックコントローラの好ましい実施の形態では、さらに、
出力使用状況情報をプログラムブロック別に記述したブロック別出力使用状況情報を記憶する記憶手段と、
ユーザプログラムの実行により生成される出力データを一時記憶する内部メモリと、
プログラムブロックの実行を停止する際に、内部メモリの該当出力領域の記憶を保持するか又はクリアするかを設定する停止時メモリ状態設定手段と、
停止中のプログラムブロックに関して、内部メモリの該当出力領域から出力ポートへの出力リフレッシュ処理を継続するか又は停止するかを設定する停止時リフレッシュ有無設定手段と、
プログラムブロックの実行を停止する際に、前記停止時メモリ状態設定手段の設定内容に応じて、前記内部メモリの該当出力領域の記憶を保持するか又はクリアする停止時メモリ状態制御手段と、
停止中のプログラムブロックに関して、前記停止時リフレッシュ有無設定手段の設定内容に応じて、前記内部メモリの該当出力領域から出力ポートへの出力リフレッシュ処理を継続するか又は停止する停止時リフレッシュ制御手段と、
を具備することができる。
【0022】
このような構成によれば、プログラムブロックの実行を停止する際に、内部メモリの該当出力領域の記憶を保持するか又はクリアするか、並びに、停止中のプログラムブロックに関して、内部メモリの該当出力領域から出力ポートへの出力リフレッシュ処理を継続するか又は停止するかを、任意にプログラミングすることができる。そして、この機能を利用すれば、制御対象機器の性質等に応じて、最適な異常時対策並びに自由度の高い復帰操作を可能とすることができる。
【0023】
このような異常時対策並びに自由度の高い復帰操作を可能とするプログラマブルロジックコントローラのさらに好ましい実施の形態としては、プログラムブロックの実行を停止する際に、ブロック別出力使用状況情報を参照して、該当する出力ポートの状態を強制的にOFF状態とする出力強制OFF設定手段をさらに具備することができる。
【0024】
このような構成によれば、異常発生にかかるプログラムブロックが扱う出力ポートの状態をOFF状態に固定しつつも、内部メモリの該当出力データについては保存して、中断時のプログラム実行状態からの再開に備えることができる。
【0025】
以上説明した本発明のプログラマブルロジックコントローラにあっては、ブロック別出力使用状況情報は、好ましい実施の形態では、ユーザプログラムメモリに格納されたユーザプログラム中から出力先チャネルを検索することで当該プログラマブルロジックコントローラ自身により自動的に生成される。
【0026】
このような構成によれば、ユーザのプログラミング作業に特別な負担をかけることがない。
【0027】
また、ブロック別出力使用状況情報は、別の好ましい実施の形態では、ユーザプログラム作成の際に、ユーザプログラム中から出力先チャネルを検索することでサポートツールにより自動的に生成される。
【0028】
このような構成によれば、ユーザのプログラミング作業に特別な負担をかけることがないばかりでなく、コントローラ本体側のソフトウェア負荷もその分軽減される。
【0029】
【発明の実施の形態】
以下、この発明に係わるPLCの実施の形態を添付図面を参照して詳細に説明する。
【0030】
図1は、この発明に係わるPLC全体のハードウェア構成を示すブロック図である。
【0031】
図1において、PLC100は、演算プロセッサ(CPU)101、入出力メモリ(I/Oメモリ)102、ユーザプログラムメモリ103、システムプログラムメモリ104、パラメータメモリ105、ワークメモリ106、入出力装置200とのインタフェースをなす入出力インタフェース(I/OI/F)107サポートツール300とのインタフェースをなすシリアルインタフェース(シリアルI/F)108を具備して構成される。
【0032】
ここで、CPU101は、このPLC100の全体動作を統括制御する。また、システムプログラムメモリ104には、CPU101で処理されるシステムプログラムが記憶される。ユーザプログラムメモリ103には、ブロック分割された複数のプログラムブロックからなるユーザプログラムが記憶される。
【0033】
パラメータメモリ105には、ユーザプログラムメモリ102に記憶されたブロック分割されたプログラム毎の停止時出力設定、すなわち後に詳述する「プログラムブロック毎の停止時出力設定」が記憶される。
【0034】
また、ワークメモリ106には、後に詳述する
1)「入出力装置上のI/O構成情報」
2)「プログラムブロック別I/O使用状況情報」
3)「入出力装置上のI/OポートアドレスとI/Oメモリとの対応情報」
4)「プログラムブロック起動情報」
が記憶される。
【0035】
I/Oメモリ102は、このPLCユニット100において、プログラム実行により入出力情報の代用として参照/書き換えされる内部メモリである。
【0036】
また、入出力装置200は、センサ、スイッチなどに接続される入力装置と、モータ、アクチュエータなどに接続される出力装置とを組み合わせた装置で、8点、16点、32点、64点毎にユニット化され、これらが自由に組み合わされて構成される、この入出力装置200は、CPU101からは入出力ポートとして認識される。
【0037】
サポートツール300は、
1)ユーザプログラムメモリ103に格納されるユーザプログラムの生成 2 2)ユーザプログラムメモリ103に格納されるユーザプログラムのプログラムブロック単位の分割
3)後述する各種の設定
4)CPU101へのユーザプログラムのダウンロード、アップロード等を行うために使用される。
【0038】
さて、このこの発明に係わるPLCにおいては、プログラムを複数のプログラムブロックに分割してユーザプログラムメモリ103に記憶するとともに、ユーザプログラムメモリ103に記憶された各プログラムブロックの実行とその対象となる出力装置200への出力処理の範囲をパラメータメモリ105に記憶された「プログラムブロック毎の停止時出力設定」を参照して連動して制御するように構成され、これによりPLC100を用いた制御設備の安全性の向上とコストダウンを図るように構成されている。
【0039】
すなわち、この発明に係わるPLCの第1の実施の形態においては、
1)プログラムブロック毎にエラー停止時に出力データを保持するか、クリアするかを設定する(「プログラムブロック毎の停止時出力設定」)
2)プログラムブロック毎にエラー停止時以降に出力装置200への出力処理を継続するか停止するかを設定する(「プログラムブロック毎の停止時出力設定」)
3)プログラム実行開始時にプログラムブロック個々の出力チャネルを抽出する(「プログラムブロック別I/O使用状況情報(未使用チャネル情報を含む)」の抽出)
4)プログラム実行を開始する
5)あるプログラムブロックに異常が発生すると該当プログラムブロックの処理を停止する
6)プログラムブロックの実行処理の停止の直後に、「プログラムブロック毎の停止時出力設定」に従い、当該プログラムブロックがその実行結果を出力しているI/Oメモリ102のデータをクリア若しくは保持する
7)プログラムブロックが実行結果を出力しているI/Oメモリ102のデータのクリア若しくは保持以降に、「プログラムブロック毎の停止時出力設定」にしたがい、当該プログラムブロックがその演算結果を出力しているI/Oメモリ102に対応する出力ポートへの出力処理を停止若しくは継続する
機能を有する。
【0040】
また、この発明に係わるPLCの第2の実施の形態においては、
1)プログラムブロック毎にエラー停止時以降に出力装置200への出力処理を継続するか停止するかを設定する(「プログラムブロック毎の停止時出力設定」)
2)プログラム実行開始時にプログラムブロック個々の出力チャネルを抽出する(「プログラムブロック別I/O使用状況情報(未使用チャネル情報を含む)」の抽出)
3)プログラム実行を開始する
4)あるプログラムブロックに異常が発生すると該当プログラムブロックの処理を停止する
5)プログラムブロックの演算処理の停止の直後に、当該プログラムブロックがその演算結果を出力しているI/Oメモリ102に対応する出力ポートにOFFデータを出力する
6)プログラムブロックがその演算結果を出力しているI/Oメモリ102に対応する出力ポートにOFFデータを出力した以降に、当該プログラムブロックがその演算結果を出力しているI/Oメモリ102に対応する出力ポートへのOFFデータの出力を継続するか出力処理そのものを停止する
機能を有する。
【0041】
また、この発明に係わるPLCの第3の実施の形態においては、
1)サポートツール300により、プログラムブロック単位で分割されたプログラムを生成する
2)サポートツール300によるプログラムブロック単位で分割されたプログラムの生成に併せて、サポートツール300により、プログラム個々の出力チャネルを抽出する
3)プログラムとプログラムブロック毎の出力チャネル情報をサポートツール300からPLC100に読み込ませる
4)PLC100によりプログラム実行を開始する
機能を有する。
【0042】
図2は、図1に示したPLC100のプログラム構成の一例を示すメモリマップ図である。同図において、このプログラムは、図1に示したユーザプログラムメモリ103に格納される複数のプログラムブロックに分割されたユーザプログラムの一例を示すもので、図2においては、分割されたプログラムブロックがラダーダイヤグラムで記述されているものを想定する。ただし、プログラムによりプログラムで使用しているチャネル番号が抽出できれば、言語の種類には依存しない。
【0043】
すなわち、図2において、このプログラムメモリのアドレス「A」には、プログラムブロック0オブジェクト格納領域先頭アドレスを示すデータ「B」が格納され、アドレス「A+1」には、プログラムブロック0オブジェクト格納領域最終アドレスを示すデータ「C−1」が格納され、アドレス「A+2」には、プログラムブロック1オブジェクト格納領域先頭アドレスを示すデータ「C」が格納され、同様にして、アドレス「B−2」には、プログラムブロックXオブジェクト格納領域先頭アドレスを示すデータ「D」が格納され、アドレス「B−1」には、プログラムブロックXオブジェクト格納領域最終アドレスを示すデータ「E」が格納される。
【0044】
また、アドレス「B」から始まる、プログラムブロック0オブジェクト格納領域には、データ「プログラムブロック0オブジェクト」が格納され、アドレス「C」から始まるプログラムブロック1オブジェクト格納領域にはデータ「プログラムブロック1オブジェクト」が格納され、アドレス「D」からアドレス「E」のプログラムブロックXオブジェクト格納領域にはデータ「プログラムブロックXオブジェクト」が格納される。
【0045】
図3は、図1に示したPLC100の入出力ポート構成の一例を示す図である。
【0046】
この実施の形態においては、図1に示したCPU101からみた入出力ポートの仕様として、1ポートに対して4ch(8byte)分の空間が固定で割り当てられており、ポート番号の若い順にアドレス空間が割付けられている。
【0047】
例えば、0ラックの0ポートに16点のユニットが装着された場合、データAの空間が実際の入出力空間となり、B〜Dは空き空間となる。32点ユニットの場合は、データA〜Bが入出力空間となり、データC〜Dが空き空間となる。また、64点ユニットの場合は、データA〜Dが入出力空間となる。
【0048】
図4は、図1に示したPLC100のI/Oメモリ102の構成の一例を示す図である。同図において、I/Oメモリ102は、CPU101でのプログラム実行演算のための入力および出力エリアを構成するもので、このI/Oメモリ102のメモリ空間は、16ビットを1ch(チャネル)としてチャネル番号の若い順に連続して並ぶ空間を構成する。
【0049】
また、このI/Oメモリ102は、図1に示した入出力装置200上の構成により対応するチャネルごとに入出力ポートが割り付けられ、I/Oメモリ102と入出力ポートとの間で、データ交換、すなわち、入力ポートからI/Oメモリ102へのデータ交換、I/Oメモリ102から出力ポートへのデータ交換が行われる。
【0050】
図5は、図1に示したPLC100で使用する「入出力装置上のI/O構成情報」の一例を示す図である。同図に示す「入出力装置上のI/O構成情報」は、図1に示した入出力装置200のポートアドレス毎に、入出力ユニットの装着の有無、ユニットの種別(入力か出力か)、ユニットの点数を記憶するものである。ここでは、1ポート毎に4ビットが確保されている。この「入出力装置上のI/O構成情報」は、図1に示したワークメモリ106に格納される。
【0051】
なお、この実施の形態において、装着されるユニットの1ユニット当たりの点数は16点、32点、64点の3種類とする。
【0052】
ここで、上記4ビットのデータの意味は、
1)0*** 入出力ユニットの装着なし
2)1*** 入出力ユニットの装着あり
3)*0** 入出力ユニットの種別がOUT
4)*1** 入出力ユニットの種別がIN
5)**00 未使用
6)**01 16点
7)**10 32点
8)**11 64点
に設定されている。
【0053】
図6は、図1に示したPLC100で使用する「入出力装置上のI/OポートアドレスとI/Oメモリとの対応情報」の一例を示す図である。
【0054】
図6において、この「入出力装置上のI/OポートアドレスとI/Oメモリとの対応情報」は、図1に示したI/Oメモリ102のチャネル毎に、対応する入出力装置200のポートアドレス(ラック、ポート、割付位置)を記憶する。この「入出力装置上のI/OポートアドレスとI/Oメモリとの対応情報」は、図1に示したワークメモリ106に格納される。
【0055】
この実施の形態においては、CPU101に接続される入出装置200の仕様として、1ラックに対して8ポートまで、ラック総数は8ラックまでとする。
【0056】
また、I/Oメモリ102のI/Oメモリアドレスと入出力装置200の入出力ポートアドレスとの対応ルールは、ラック番号の若い順に、そして、ポート番号の若い順に装着されているユニットから、ユニットの入出力点数分のチャネル領域を確保する仕様とする。
【0057】
ここで、「あり/なし」は、該当チャネルが入出力ポートに割り付けられているか否かを記憶するもので、「0」は割り付けなし、「1」は割り付けありに設定されている。
【0058】
また、「IN/OUT」は、入力ポートか出力ポートかを記憶するもので、「0」は入力ポート、「1」は出力ポートに設定されている。
【0059】
また、「ラック番号」は、割り付けられたラックの番号を示すもので、「0」〜「7」に設定される。
【0060】
また、「ポート番号」は、割り付けられたポート番号を示すもので、「0」〜「7」に設定される。
【0061】
また、「割付位置」は、割り付けられたポート内の位置を示すもので、「0」〜「3」に設定される。
【0062】
また、「空き」は未使用を示す。
【0063】
図7は、図1に示したPLC100で使用する「プログラムブロック別I/O使用状況情報(未使用チャンネル情報を含む)」の一例を示す図である。
【0064】
図7において、この「プログラムブロック別I/O使用状況情報」は、プログラムブロック毎に使用されている出力チャネルを記憶するものである。なお、この実施形態では、入力チャネルに関しては特に記憶する必要はないため割愛する。この「プログラムブロック別I/O使用状況情報」は、図1に示したワークメモリ106に格納される。
【0065】
すなわち図7において、プログラムメモリのアドレス「A」には、プログラムブロック0用領域先頭アドレスを示すデータ「B」が格納され、アドレス「A+1」には、プログラムブロック0用領域最終アドレスを示すデータ「C−1」が格納され、アドレス「A+2」には、プログラムブロック1用領域先頭アドレスを示すデータ「C」が格納され、同様にして、アドレス「B−4」には、プログラムブロックX用領域先頭アドレスを示すデータ「D」が格納され、アドレス「B−3」には、プログラムブロックX用領域最終アドレスを示すデータ「E−1」が格納される。
【0066】
また、アドレス「B−2」には、未使用CH用領域先頭アドレスを示すデータ「E」が格納され、アドレス「B−1」には、未使用CH用領域最終アドレスを示すデータ「F」が格納される。
【0067】
また、アドレス「B」には、プログラムブロック0用領域先頭の「出力チャネルアドレス」が格納され、アドレス「C−1」には、プログラムブロック0用領域最終の「出力チャネルアドレス」が格納され、アドレス「C」には、プログラムブロック1用領域先頭の「出力チャネルアドレス」が格納され、以下同様に、アドレス「D」には、プログラムブロックX用領域先頭の「出力チャネルアドレス」が格納され、アドレス「E−1」には、プログラムブロックX用領域終了の「出力チャネルアドレス」が格納される。
【0068】
また、アドレス「E」には、未使用CH用領域先頭の「出力チャネルアドレス」が格納され、アドレス「F」には、未使用CH用領域最終の「出力チャネルアドレス」が格納される。
【0069】
図8は、図1に示したPLC100で使用する「プログラムブロック起動情報」の一例を示す図である。
【0070】
図8において、この「プログラムブロック起動情報」は、プログラムブロック毎の起動中/停止中を示す情報を記憶するものである。この「プログラムブロック起動情報」は、図1に示したワークメモリ106に格納される。
【0071】
すなわち、図8において、この「プログラムブロック起動情報」は、各プログラムブロックに対応するプログラムブロック0用記憶エリア〜プログラムブロックX用記憶エリアを有しており、情報「A」には、該当するプログラムブロックが起動中か停止中であるかを示す情報が記憶される。ここで、「1」は起動中、「0」は停止中に設定されている。
【0072】
図9は、図1に示したPLC100で使用する「プログラムブロック毎の停止時出力設定」の一例を示す図である。
【0073】
図9において、この「プログラムブロック毎の停止時出力設定」は、プログラムブロック毎に設定された以下の内容を記憶する。この「プログラムブロック毎の停止時出力設定」は、図1に示したパラメータメモリ105に格納される。
【0074】
1)プログラムブロック停止時のメモリ保持/クリア
2)プログラムブロック停止時以降の出力処理停止/継続
すなわち、図9において、この「プログラムブロック毎の停止時出力設定」は、各プログラムブロックに対応するプログラムブロック0用記憶エリア〜プログラムブロックX用記憶エリアを有しており、情報「A」には、該当するプログラムブロック停止時のメモリ保持/クリアを示す情報(「1」が保持、「0」がクリア)が設定され、情報「B」には、該当するプログラムブロック停止時以降の出力処理停止/継続(「1」が停止、「0」が継続)が設定される。
【0075】
図10は、図1に示したPLC100における第1の実施の形態および第2の実施の形態におけるPLC100の全体処理を示すフローチャートである。
【0076】
図10において、まず、所定の電源ON初期処理が実行され(ステップ110)、次に、入出力装置確認処理が実行される(ステップ111)。
【0077】
そして、ステップ111の入出力装置確認処理に基づき、図5に示した「入出力装置上のI/O構成情報」を作成する(ステップ112)。このステップ112で作成した「入出力装置上のI/O構成情報」は、図1に示したワークメモリ106に格納される。
【0078】
次に、図6に示した「入出力装置上のI/OポートアドレスとI/Oメモリとの対応情報」を作成する(ステップ113)。
【0079】
この「入出力装置上のI/OポートアドレスとI/Oメモリとの対応情報」は、図2に示した複数のプログラムブロックに分割されたプログラム構成、図3に示した入出力装置200の入出力ポート構成、図4に示したI/Oメモリ102の構成、ステップ112で作成した図5に示す「入出力装置上のI/O構成情報」に基づき作成される。
【0080】
次に、所定の共通処理を実行した(ステップ114)後、このPLC100は運転可能かを調べる(ステップ115)。
【0081】
ここで、運転可能でないと判断されると(ステップ115でNO)、ステップ119に進み、後に詳述するI/Oリフレッシュ処理を実行し、その後、サポートツール300との通信を行って(ステップ120)、ステップ114に戻る。
【0082】
また、ステップ115で、運転可能と判断されると(ステップ115でYES)、次に、プログラム運転初回かまたはプログラム変更ありかを調べる(ステップ116)。
【0083】
ここで、プログラム運転初回でもなくまたプログラム変更もないと判断されると(ステップ116でNO)、ステップ118に進み、プログラム運転処理を実行し、後に詳述するI/Oリフレッシュ処理を実行し(ステップ119)、その後、サポートツール300との通信を行って(ステップ120)、ステップ114に戻る。
【0084】
また、ステップ116で、プログラム運転初回かまたはプログラム変更ありと判断されると(ステップ116でYES)、図7に示した「プログラムブロック別I/O使用状況情報」を作成する(ステップ117)。この「プログラムブロック別I/O使用状況情報」は、図2に示した複数のプログラムブロックに分割されたプログラム構成、図3に示した入出力装置200の入出力ポート構成、図4に示したI/Oメモリ102の構成に基づき作成される。
【0085】
その後、プログラム運転処理を実行し(ステップ118)、後に詳述するI/Oリフレッシュ処理を実行し(ステップ119)、その後、サポートツール300との通信を行って(ステップ120)、ステップ114に戻る。
【0086】
図11は、図10示したPLC100の全体処理のステップ119における第1の実施の形態におけるI/Oリフレッシュ処理の詳細を示すフローチャートである。
【0087】
図11において、まず、図1のワークメモリ106から図8に示した「プログラムブロック起動情報」を読み出す(ステップ121)。そして、ステップ121で読み出した「プログラムブロック起動情報」に基づきプログラムブロックは起動中かを調べる(ステップ122)。
【0088】
ここで、プログラムブロックが起動中であると判断されると(ステップ122でYES)、ステップ125へ進み、図7に示した「プログラムブロック別I/O使用状況情報」と図6に示した「入出力装置上のI/OポートアドレスとI/Oメモリとの対応情報」からI/Oメモリ102と入出力ポートとのデータ交換を行い、次に、残りプログラムブロックはあるかを調べ(ステップ126)、ここで、残りプログラムブロックはあると判断されると(ステップ126でYES)、ステップ121に戻るが、残りプログラムブロックがないと判断されると(ステップ126でNO)、図7に示した未使用I/Oの「プログラムブロック別I/O使用状況情報」と図6に示した「入出力装置上のI/OポートアドレスとI/Oメモリとの対応情報」からI/Oメモリ102と入出力ポートとのデータ交換を行い(ステップ127)この処理を終了する。
【0089】
また、ステップ122で、プログラムブロックが起動中ではないと判断されると(ステップ122でNO)、図1に示したパラメータメモリ105から、図9に示した「プログラムブロック毎の停止時出力設定」を読み出す(ステップ123)。
【0090】
そして、ステップ123で読み出した「プログラムブロック毎の停止時出力設定」に基づき、当該プログラムブロック停止時リフレッシュがあるかを調べる(ステップ124)。
【0091】
ここで、当該プログラムブロック停止時リフレッシュがないと判断されると(ステップ124でNO)、ステップ126に進み、残りプログラムブロックはあるかを調べ、ここで、残りプログラムブロックはあると判断されると(ステップ126でYES)、ステップ121に戻るが、残りプログラムブロックがないと判断されると(ステップ126でNO)、図7に示した未使用I/Oの「プログラムブロック別I/O使用状況情報」と図6に示した「入出力装置上のI/OポートアドレスとI/Oメモリとの対応情報」からI/Oメモリ102と入出力ポートとのデータ交換を行い(ステップ127)この処理を終了する。
【0092】
また、ステップ124で、当該プログラムブロック停止時リフレッシュがあると判断されると(ステップ124でYES)、図7に示した「プログラムブロック別I/O使用状況情報」と図6に示した「入出力装置上のI/OポートアドレスとI/Oメモリとの対応情報」からI/Oメモリ102と入出力ポートとのデータ交換を行い(ステップ125)、次に、残りプログラムブロックはあるかを調べ(ステップ126)、ここで、残りプログラムブロックはあると判断されると(ステップ126でYES)、ステップ121に戻るが、残りプログラムブロックがないと判断されると(ステップ126でNO)、図7に示した未使用I/Oの「プログラムブロック別I/O使用状況情報」と図6に示した「入出力装置上のI/OポートアドレスとI/Oメモリとの対応情報」からI/Oメモリ102と入出力ポートとのデータ交換を行い(ステップ127)この処理を終了する。
【0093】
図12は、図10示したPLC100の第1の実施の形態におけるエラー発生時のプログラムブロック停止処理を示すフローチャートである。
【0094】
図12において、エラーが発生すると、まず、エラーが発生した該当プログラムブロックの処理を停止し(ステップ131)、次に、図8に示した「プログラムブロック起動情報」に該当プログラムブロック停止を記憶する(ステップ132)。
【0095】
次に、図9に示した「プログラムブロック毎の停止時出力設定」を読み出し(ステップ133)、この読み出した「プログラムブロック毎の停止時出力設定」に基づき該当プログラムブロックは停止時クリアかを調べる(ステップ134)。
【0096】
ここで、該当プログラムブロックが停止時クリアに設定されていないと判断されると(ステップ134でNO)、この処理を終了する。
【0097】
また、ステップ134で、該当プログラムブロックが停止時クリアに設定されていると判断されると(ステップ134でYES)、図7に示した「プログラムブロック別I/O使用状況情報」を読み出し(ステップ135)、該当I/Oメモリアドレスのデータをクリアし(ステップ136)、この処理を終了する。
【0098】
図13は、図10示したPLC100の全体処理のステップ119における第2の実施の形態におけるI/Oリフレッシュ処理の詳細を示すフローチャートである。
【0099】
図13において、まず、図1のワークメモリ106から図8に示した「プログラムブロック起動情報」を読み出し(ステップ141)、次に、図7に示した「プログラムブロック別I/O使用状況情報」を読み出す(ステップ142)。
【0100】
そして、ステップ141で読み出した「プログラムブロック起動情報」およびステップ142で読み出した「プログラムブロック別I/O使用状況情報」に基づきプログラムブロックは起動中かを調べる(ステップ143)。
【0101】
ここで、プログラムブロックが起動中であると判断されると(ステップ143でYES)、ステップ149へ進み、図7に示した「プログラムブロック別I/O使用状況情報」と図6に示した「入出力装置上のI/OポートアドレスとI/Oメモリとの対応情報」からI/Oメモリ102と入出力ポートとのデータ交換を行い、次に、残りプログラムブロックはあるかを調べ(ステップ147)、ここで、残りプログラムブロックはあると判断されると(ステップ147でYES)、ステップ141に戻るが、残りプログラムブロックがないと判断されると(ステップ147でNO)、図7に示した未使用I/Oの「プログラムブロック別I/O使用状況情報」と図6に示した「入出力装置上のI/OポートアドレスとI/Oメモリとの対応情報」からI/Oメモリ102と入出力ポートとのデータ交換を行い(ステップ148)この処理を終了する。
【0102】
また、ステップ143で、プログラムブロックが起動中ではないと判断されると(ステップ143でNO)、図1に示したパラメータメモリ105から、図9に示した「プログラムブロック毎の停止時出力設定」を読み出す(ステップ144)。
【0103】
そして、ステップ144で読み出した「プログラムブロック毎の停止時出力設定」に基づき、当該プログラムブロック停止時リフレッシュがないかを調べる(ステップ145)。
【0104】
ここで、当該プログラムブロック停止時リフレッシュがないと判断されると(ステップ145でYES)、ステップ147に進み、残りプログラムブロックはあるかを調べ、ここで、残りプログラムブロックはあると判断されると(ステップ147でYES)、ステップ141に戻るが、残りプログラムブロックがないと判断されると(ステップ147でNO)、図7に示した未使用I/Oの「プログラムブロック別I/O使用状況情報」と図6に示した「入出力装置上のI/OポートアドレスとI/Oメモリとの対応情報」からI/Oメモリ102と入出力ポートとのデータ交換を行い(ステップ148)この処理を終了する。
【0105】
また、ステップ145で、当該プログラムブロック停止時リフレッシュがあると判断されると(ステップ124でNO)、図7に示した「プログラムブロック別I/O使用状況情報」と図6に示した「入出力装置上のI/OポートアドレスとI/Oメモリとの対応情報」から該当の出力ポートにOFFデータを出力し(ステップ146)、次に、残りプログラムブロックはあるかを調べ(ステップ147)、ここで、残りプログラムブロックはあると判断されると(ステップ147でYES)、ステップ141に戻るが、残りプログラムブロックがないと判断されると(ステップ147でNO)、図7に示した未使用I/Oの「プログラムブロック別I/O使用状況情報」と図6に示した「入出力装置上のI/OポートアドレスとI/Oメモリとの対応情報」からI/Oメモリ102と入出力ポートとのデータ交換を行い(ステップ148)この処理を終了する。
【0106】
図14は、図10示したPLC100の第2の実施の形態におけるエラー発生時のプログラムブロック停止処理を示すフローチャートである。
【0107】
図14において、エラーが発生すると、まず、エラーが発生した該当プログラムブロックの処理を停止し(ステップ151)、次に、図8に示した「プログラムブロック起動情報」に該当プログラムブロック停止を記憶する(ステップ152)。
【0108】
次に、図9に示した「プログラムブロック毎の停止時出力設定」を読み出し(ステップ153)、更に、図7に示した「プログラムブロック別I/O使用状況情報」および図6に示した「入出力装置上のI/OポートアドレスとI/Oメモリとの対応情報」を読み出す(ステップ154)。
【0109】
そして、該当の出力ポートにOFFデータを出力し(ステップ155)、この処理を終了する。
【0110】
図15は、図1に示したPLC100における第3の実施の形態におけるPLC100の全体処理を示すフローチャートである。
【0111】
図15において、まず、所定の電源ON初期処理が実行され(ステップ160)、次に、入出力装置確認処理が実行される(ステップ161)。
【0112】
そして、ステップ161の入出力装置確認処理に基づき、図5に示した「入出力装置上のI/O構成情報」を作成する(ステップ162)。このステップ162で作成した「入出力装置上のI/O構成情報」は、図1に示したワークメモリ106に格納される。
【0113】
次に、図6に示した「入出力装置上のI/OポートアドレスとI/Oメモリとの対応情報」を作成する(ステップ163)。
【0114】
この「入出力装置上のI/OポートアドレスとI/Oメモリとの対応情報」は、図2に示した複数のプログラムブロックに分割されたプログラム構成、図3に示した入出力装置200の入出力ポート構成、図4に示したI/Oメモリ102の構成、ステップ112で作成した図5に示す「入出力装置上のI/O構成情報」に基づき作成される。
【0115】
次に、所定の共通処理を実行した(ステップ164)後、このPLC100は運転可能かを調べる(ステップ165)。
【0116】
ここで、運転可能でないと判断されると(ステップ165でNO)、ステップ167に進み、I/Oリフレッシュ処理を実行し、その後、サポートツール300との通信を行って(ステップ168)、ステップ164に戻る。
【0117】
また、ステップ165で、運転可能と判断されると(ステップ165でYES)、プログラム運転処理を実行し(ステップ166)、I/Oリフレッシュ処理を実行し(ステップ167)、その後、サポートツール300との通信を行って(ステップ168)、ステップ164に戻る。
【0118】
図16は、図1に示したPLC100における入出力装置200のユニット実装例とI/Oメモリ102への割付の具体例を示す図である。
【0119】
図16において、第0ラックの0chは、第0ポートに対応しており、ここには16点の入力ユニットが割り当てられ、1chは、第1ポートに対応し、ここには16点の出力ユニットが割り当てられ、2chは、第2ポートに対応し、ここには16点の出力ユニットが割り当てられる。また、第0ラックの第3ポートおよび第4ポートは空きである。
【0120】
また、第0ラックの3chは、第5ポートに対応し、ここには16点の出力ユニットが割り当てられ、4chおよび5chは、第6ポートに対応し、ここには、32点の入力ユニットが割り当てられ、6chは、第7ポートに対応し、ここには16点の入力ユニットが割り当てられる。
【0121】
また、第1ラックの第0ポートは空きであり、7chは、第1ポートに対応し、ここには16点の出力ユニットが割り当てられ、また、第2ポートは空きである。
【0122】
また、第1ラックの8chおよび9chは、第3ポートに対応しており、ここには32点の入力ユニットが割り当てられ、また、第2ポートは空きである。
【0123】
また、第1ラックの10ch、11ch、12ch、13chは、第5ポートに対応しており、ここには64点の出力ユニットが割り当てられ、また、第6ポートおよび第7ポートは空きである。
【0124】
図17は、図16に示した実装例における「入出力装置上のI/O構成情報」の具体例を示す図である。
【0125】
図17において、4ビットのデータは、上述したように
1)0*** 入出力ユニットの装着なし
2)1*** 入出力ユニットの装着あり
3)*0** 入出力ユニットの種別がOUT
4)*1** 入出力ユニットの種別がIN
5)**00 未使用
6)**01 16点
7)**10 32点
8)**11 64点
の意味を持っている。
【0126】
例えば、第0ラックの第2ポートは「1001」であるので、ここには16点の出力ユニットが割り当てられていることを示している。また、第0ラックの第6ポートは「1010」であるので、ここには32点の入力ユニットが割り当てられていることを示している。
【0127】
また、例えば、第1ラックの第2ポートは「0000」であるので、このポートは空きであることを示しており、第1ラックの第5ポートは「1011」であるので、64点の出力ユニットが割り当てられていることを示している。他も同様である。
【0128】
図18は、図16に示した実装例における「入出力装置上のI/OポートアドレスとI/Oメモリとの対応情報」の具体例を示す図である。
【0129】
ここでは、I/Oメモリ102のチャネル毎に、対応する入出力装置200のポートアドレス(ラック、ポート、割付位置)が記憶されている。
【0130】
図19は、ユーザプログラムの具体例を示す図である。
【0131】
図19においては、以下の仕様を仮定している。
【0132】
1)プログラムの分割の総数は3である
2)各プログラムブロックはラダー命令を命令単位とする実行オブジェクトの組み合わせとして構成される
3)ラダーオブジェクトは32bit/命令で構成される
なお、ラダープログラムには実際は単純なリレー命令から高度なデータ演算が存在するが、ここでは以下の3命令を例にとって説明する。
【0133】
1)LD(入力リレーアドレス)
2)OUT(出力リレーアドレス)
3)MOV(転送元CHアドレス)(転送先アドレス)
なお、括弧内は、命令に与えられるパラメータである。
【0134】
すなわち、「LD」は、パラメータで指定されたリレーアドレスのON/OFF状態を読み込む命令で、論理演算の初期化を行い、以降に読み込まれる他のリレーのON/OFF状態との論理演算が行われる。
【0135】
また、「OUT」は、パラメータで指定されたリレーアドレスに論理演算の結果を出力する命令である。
【0136】
また、「MOV」は、第1パラメータで指定されたCHのデータを第2パラメータで指定されたCHに転送する命令である。
【0137】
また、図20は、図19に示したユーザプログラムの場合の「プログラムブロック別I/O使用状況情報」の具体例を示す図である。
【0138】
さて、図19に示したユーザプログラムから、図20に示した「プログラムブロック別I/O使用状況情報」の生成は以下に示す方法により行われる。
【0139】
1)命令毎にパラメータが割り付けられるリレー/CHアドレスが読み出しか書き込みかが決まっているため、プロジェクトオブジェクトを読み出し、書き込みのための命令パラメータとして定義されているCHアドレスをプログラムブロックごとに抽出する。
【0140】
2)「入出力装置上のI/OポートアドレスとI/Oメモリとの対応情報」と照らし合わせ、出力I/Oアドレスに割り付けられていないCHアドレスは上記の抽出から除外する。
【0141】
3)2)の結果と「入出力装置上のI/OポートアドレスとI/Oメモリとの対応情報」とを再度照らし合わせ、出力ポートに割り付けられているCHのうち、プログラム上で使用されていないCHを未使用のCHとして抽出する。
【0142】
4)2)の結果を「プログラムブロック別I/O使用状況情報」の「プログラム*用領域」として、プログラム番号の小さい順に、また、CH番号の小さい順に並べる。各領域の境界アドレスを算出し、「プログラムブロック別I/O使用状況情報」の先頭に配置する。
【0143】
なお、第3の実施の形態のサポートツール300による上記「プログラムブロック別I/O使用状況情報」の生成においては、「入出力装置上のI/OポートアドレスとI/Oメモリとの対応情報」の代用となるようなCH割付情報をサポートツール側で予め用意しておくことで同様に生成することができる。
【0144】
以上説明したように、この発明の第1〜第3実施形態によれば、以下に示すような効果を奏する。
【0145】
1)異常が発生したプログラムブロックのみ異常停止させることができ、併せて該当プログラムブロックからの出力をリセットすることができるため、他のプログラムブロックは正常に動作を続け、装置全体の停止範囲を必要最小限に留めることができる。
【0146】
2)異常停止した機能ユニットのリカバリを他の正常に動作しているプログラムブロックから行えるため、別のPLCを設置することなく設備全体のコストダウンに繋がる。
【0147】
3)装置そのもの、または装置内の機能ユニット単位で、プログラムブロックを独立させておけば、PLCの運転を止めることなく、つまり他の装置または機能ユニットを停止させることなく、該当部分を切り離すことができ、段取り替え等の際に該当の機能ユニット装置を、運転停止することなく行うことができる。
【0148】
4)実際に動いているプログラムブロックの部分の出力処理のみ行われるので、入出力点数は多くても実動作している点数が少ない場合は、リフレッシュ処理の負担が軽減されるため、PLCの性能、つまり入出力応答性が向上する。
【0149】
5)異常停止させるべき装置/ユニットへの出力方法として、I/Oメモリの保持/クリアの選択および出力ポートへの出力処理停止/継続、およびI/Oメモリの状態如何に拘わらず強制的に出力ポートにゼロデータ(OFFデータ)を出力する動作が選択できる手段を用意することで、停止対象の装置/ユニットの仕様に合わせてユーザが望む装置/ユニットの停止状態が選択できる。
【0150】
例えば、異常停止後の復旧作業のために一旦は出力をOFFしておいて、その原因を除去した後に再び動作を停止した状態から継続させるような場合は、I/Oメモリの内容は保持したままで出力ポートにゼロデータを出力する方法を用いればよい。
【0151】
また、異常停止後の復旧動作において、停止対象となった出力ポートに対してユーザが強制的にON/OFF操作をマニュアルで行うような場合には、I/Oメモリをクリアで出力ポートへの出力処理を継続する方法を用いることで、ユーザ自身によるI/Oメモリの変更操作によってその結果が装置/ユニット側に反映される。
【0152】
【発明の効果】
以上の説明で明らかなように、この発明によれば、いずれかのプログラムブロックに関して異常が発生した場合には、異常発生にかかるプログラムブロックの実行のみが停止され、その他のプログラムブロックについては実行が継続されるため、従来のPLCにおいて問題とされた、その異常に対して独立して動作可能でかつ正常に動作している機能ユニットの制御まで止めてしまうことがなくなり、このために設備全体の稼動率や生産性を低下させることもなくなり、異常発生時の被害波及範囲の制限並びに異常停止対策の低コスト化等を図ることが可能となる。
【図面の簡単な説明】
【図1】 この発明に係わるPLCの全体構成を示すブロック図である。
【図2】 図1に示したPLC100のプログラム構成の一例を示す図である。
【図3】 図1に示したPLC100の入出力ポート構成の一例を示す図である。
【図4】 図1に示したPLC100のI/Oメモリ102の構成の一例を示す図である。
【図5】 図1に示したPLC100で使用する「入出力装置上のI/O構成情報」の一例を示す図である。
【図6】 図1に示したPLC100で使用する「入出力装置上のI/OポートアドレスとI/Oメモリとの対応情報」の一例を示す図である。
【図7】 図1に示したPLC100で使用する「プログラムブロック別I/O使用状況情報」の一例を示す図である。
【図8】 図1に示したPLC100で使用する「プログラムブロック起動情報」の一例を示す図である。
【図9】 図1に示したPLC100で使用する「プログラムブロック毎の停止時出力設定」の一例を示す図である。
【図10】 図1に示したPLC100における第1の実施の形態および第2の実施の形態におけるPLC100の全体処理を示すフローチャートである。
【図11】 図10示したPLC100の全体処理のステップ119における第1の実施の形態におけるI/Oリフレッシュ処理の詳細を示すフローチャートである。
【図12】 図10示したPLC100の第1の実施の形態におけるエラー発生時のプログラムブロック停止処理を示すフローチャートである。
【図13】 図10示したPLC100の全体処理のステップ119における第2の実施の形態におけるI/Oリフレッシュ処理の詳細を示すフローチャートである。
【図14】 図10示したPLC100の第2の実施の形態におけるエラー発生時のプログラムブロック停止処理を示すフローチャートである。
【図15】 図1に示したPLC100における第3の実施の形態におけるPLC100の全体処理を示すフローチャートである。
【図16】 図1に示したPLC100における入出力装置200のユニット実装例とI/Oメモリ102への割付の具体例を示す図である。
【図17】 図16に示した実装例における「入出力装置上のI/O構成情報」の具体例を示す図である。
【図18】 図16に示した実装例における「入出力装置上のI/OポートアドレスとI/Oメモリとの対応情報」の具体例を示す図である。
【図19】 ユーザプログラムの具体例を示す図である。
【図20】 図19に示したユーザプログラムの場合の「プログラムブロック別I/O使用状況情報」の具体例を示す図である。
【符号の説明】
100 プログラマブルロジックコントローラ(PLC)
101 演算プロセッサ(CPU)
102 入出力メモリ(I/Oメモリ)
103 ユーザプログラムメモリ
104 システムプログラムメモリ
105 パラメータメモリ
106 ワークメモリ
107 入出力インタフェース(I/OI/F)
108 シリアルインタフェース(シリアルI/F)
200 入出力装置
300 サポートツール

Claims (3)

  1. ユーザプログラムを複数のプログラムブロックに分割して記憶するユーザプログラム記憶手段と、
    前記複数のプログラムブロックが起動中か停止中であるかを示すプログラムブロック起動情報をプログラムブロック毎に記憶するプログラムブロック起動情報記憶手段と、
    前記ユーザプログラム記憶手段に記憶されたユーザプログラム実行中に、いずれかのプログラムブロックに関して異常が発生すると、異常が発生したプログラムブロックの実行を停止するとともに、前記プログラムブロック起動情報記憶手段の当該プログラムブロックに該当するプログラムブロック起動情報を停止中に設定するユーザプログラム実行手段と、を備えて、
    前記ユーザプログラムの実行結果として生成される出力データを外部へ出力するリフレッシュ処理を実行する際に前記プログラムブロック起動情報記憶手段に格納されているプログラムブロック起動情報を参照するように構成され、さらに
    出力使用状況情報をプログラムブロック別に記述したブロック別出力使用状況情報を記憶する記憶手段と、
    ユーザプログラムの実行により生成される出力データを一時記憶する内部メモリと、
    プログラムブロックの実行を停止する際に、内部メモリの該当出力領域の記憶を保持するか又はクリアするかを設定する停止時メモリ状態設定手段と、
    停止中のプログラムブロックに関して、内部メモリの該当出力領域から出力ポートへの出力リフレッシュ処理を継続するか又は停止するかを設定する停止時リフレッシュ有無設定手段と、
    プログラムブロックの実行を停止する際に、前記停止時メモリ状態設定手段の設定内容に応じて、前記内部メモリの該当出力領域の記憶を保持するか又はクリアする停止時メモリ状態制御手段と、
    停止中のプログラムブロックに関して、前記停止時リフレッシュ有無設定手段の設定内容に応じて、前記内部メモリの該当出力領域から出力ポートへの出力リフレッシュ処理を継続するか又は停止する停止時リフレッシュ制御手段と、
    を具備することを特徴とするプログラマブルロジックコントローラ。
  2. ブロック別出力使用状況情報は、ユーザプログラムメモリに格納されたユーザプログラムから出力先チャネルをブロック別に抽出する処理を通して当該プログラマブルロジックコントローラ自身により生成される、
    請求項に記載のプログラマブルロジックコントローラ。
  3. ブロック別出力使用状況情報は、ユーザプログラム作成の際にユーザプログラムから出力先チャネルをブロック別に抽出する処理を通してサポートツールにより生成される、
    請求項に記載のプログラマブルロジックコントローラ。
JP29402699A 1999-10-15 1999-10-15 プログラマブルコントローラ Expired - Fee Related JP3775466B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP29402699A JP3775466B2 (ja) 1999-10-15 1999-10-15 プログラマブルコントローラ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP29402699A JP3775466B2 (ja) 1999-10-15 1999-10-15 プログラマブルコントローラ

Publications (2)

Publication Number Publication Date
JP2001117608A JP2001117608A (ja) 2001-04-27
JP3775466B2 true JP3775466B2 (ja) 2006-05-17

Family

ID=17802310

Family Applications (1)

Application Number Title Priority Date Filing Date
JP29402699A Expired - Fee Related JP3775466B2 (ja) 1999-10-15 1999-10-15 プログラマブルコントローラ

Country Status (1)

Country Link
JP (1) JP3775466B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5365875B2 (ja) * 2009-03-12 2013-12-11 オムロン株式会社 産業用コントローラ
JP6757386B2 (ja) 2018-10-23 2020-09-16 株式会社キーエンス プログラマブルロジックコントローラおよびプログラム作成支援装置
JP7412076B2 (ja) * 2018-10-23 2024-01-12 株式会社キーエンス プログラマブルロジックコントローラ用のエンジニアリングツール
KR20200121090A (ko) 2019-04-15 2020-10-23 엘에스일렉트릭(주) Plc 시스템 및 이의 입출력 리프레시 주기 제어방법

Also Published As

Publication number Publication date
JP2001117608A (ja) 2001-04-27

Similar Documents

Publication Publication Date Title
US4355390A (en) Method for checking data written into buffered write-read memories in numerically controlled machine tools
EP2386921B1 (en) Method to separate and persist static and dynamic portions of a control application
CA1131365A (en) Programmable controller with data archive
JPH09305212A (ja) 数値制御装置および数値制御装置に対するコントロールソフトウェアの入力設定方法
JPH0213321B2 (ja)
CN101167055A (zh) 信息处理装置中的功率控制装置
CN1484149A (zh) 半导体集成电路
EP2733613B1 (en) Controller and program
JP3775466B2 (ja) プログラマブルコントローラ
US10018990B2 (en) Numerical controller including DNC operation unit
US8464016B2 (en) Method and device for switching over in a memory for a control device
JP6007677B2 (ja) 安全制御システム、及び安全制御システムのプロセッサ
BE1009813A3 (nl) Programmeerbare logische controller.
EP1435551B1 (en) Numerical controller comprising programmable logic controller (PLC)
US20180232303A1 (en) Method and Apparatus for Controlling a Non-Volatile Digital Information Memory
CN1287287C (zh) 基于控制系统实现在线更新数据的方法
JPH05225159A (ja) 制御情報のバックアップ方式
EP0382853B1 (en) Programmable controller
US6988191B1 (en) Method for the synchronized start-up of a numerical control
JPH0643920A (ja) 工具管理方式
JP4255090B2 (ja) 工作機械の数値制御装置
WO2023199408A9 (ja) 数値制御装置およびコンピュータ読み取り可能な記憶媒体
JPS58102652A (ja) 数値制御装置
JP6762411B2 (ja) 自動車用電子制御装置
CN102262598B (zh) 可提升写入保护的存储器系统及相关方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050119

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050131

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050401

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20051026

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051221

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20051227

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060214

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090303

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100303

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100303

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110303

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110303

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120303

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120303

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130303

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140303

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees