JP2019185361A - 制御装置及び編集装置 - Google Patents

制御装置及び編集装置 Download PDF

Info

Publication number
JP2019185361A
JP2019185361A JP2018075022A JP2018075022A JP2019185361A JP 2019185361 A JP2019185361 A JP 2019185361A JP 2018075022 A JP2018075022 A JP 2018075022A JP 2018075022 A JP2018075022 A JP 2018075022A JP 2019185361 A JP2019185361 A JP 2019185361A
Authority
JP
Japan
Prior art keywords
infinite loop
loop
control device
infinite
information table
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
Application number
JP2018075022A
Other languages
English (en)
Other versions
JP6901430B2 (ja
Inventor
翔平 宮下
Shohei Miyashita
翔平 宮下
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.)
Fanuc Corp
Original Assignee
Fanuc 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 Fanuc Corp filed Critical Fanuc Corp
Priority to JP2018075022A priority Critical patent/JP6901430B2/ja
Priority to US16/371,228 priority patent/US10664274B2/en
Priority to DE102019002413.3A priority patent/DE102019002413A1/de
Priority to CN201910281028.XA priority patent/CN110362028A/zh
Publication of JP2019185361A publication Critical patent/JP2019185361A/ja
Application granted granted Critical
Publication of JP6901430B2 publication Critical patent/JP6901430B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30065Loop control instructions; iterative instructions, e.g. LOOP, REPEAT
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • G05B19/056Programming the PLC
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30032Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/36Nc in input of data, input key till input tape
    • G05B2219/36588Endless loop

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)
  • Numerical Control (AREA)

Abstract

【課題】ラダープログラムにおける無限ループを脱出することが可能な制御装置及び編集装置を提供する。【解決手段】ラダープログラムの実行中に、ループ処理が無限ループに陥ったことを検出することが可能な制御装置1は無限ループの発生時に、ループ処理を構成するジャンプ命令の起動条件を強制的に不成立とすることにより、無限ループから脱出する無限ループ脱出手段102を有することを特徴とする。【選択図】図1

Description

本発明は、制御装置及び編集装置に関し、特にラダープログラムにおける無限ループを脱出することが可能な制御装置及び編集装置に関する。
ラダープログラムにおいて特定の処理を繰り返し実行させる手法として、ジャンプ命令を使用して、ジャンプ命令の起動条件が不成立となるまで、特定の処理を繰り返す手法がある。このような処理手法を一般にループ処理という。
図5にループ処理を行うラダープログラムの一例を示す。ループ処理が行われる区間はネット番号0100から0110までである。ネット0100にはラベル1が設けられ、ネット0110にはラベル1へのジャンプ命令が設けられる。ネット0110のジャンプ命令まで実行が進むと、ラベル1に戻って実行が再開される。ネット0110のジャンプ命令の直前には起動条件(破線囲み部)が設けられており、起動条件が不成立となるとジャンプ命令が実行されず、ループから脱出する。図5の例では、
Figure 2019185361

が成立すればジャンプ命令が実行され、不成立となればジャンプ命令は実行されない。
ループ処理の設計に誤りがあると、ループから脱出することができずに無限ループに陥ることがある。無限ループはラダープログラムを実行するまでは事前検出が困難である。
特許文献1には、ラダープログラムの実行時に無限ループに陥ったことを検出し、無限ループの発生箇所を推定して画面表示するシステムが開示されている。
特開平07−104829号公報
特許文献1は、無限ループを検出する方法を示しているが、無限ループから脱出する方法は開示していない。ラダープログラムの実行中に無限ループに陥ると、ループから脱出することができず機械を正常に制御できない恐れがある。
本発明はこのような課題を解決するためのものであり、ラダープログラムにおける無限ループを脱出することが可能な制御装置及び編集装置を提供することを目的とする。
本発明の一実施形態にかかる制御装置は、ラダープログラムの実行中に、ループ処理が無限ループに陥ったことを検出することが可能な制御装置であって、前記無限ループの発生時に、前記ループ処理を構成するジャンプ命令の起動条件を強制的に不成立とすることにより、前記無限ループから脱出する無限ループ脱出手段を有することを特徴とする。
本発明の一実施形態にかかる制御装置において、前記無限ループ脱出手段は、前記ループ処理の正常終了時の起動条件信号の状態を少なくとも記録した無限ループ発生条件情報テーブルを参照し、現在の前記起動条件信号を、前記正常終了時の起動条件信号に強制的に書き換えることにより、前記無限ループから脱出することを特徴とする。
本発明の一実施形態にかかる制御装置において、前記無限ループ脱出手段は、前記ジャンプ命令内に設けられた閉接点の信号状態を強制的に書き換えることにより、前記無限ループから脱出することを特徴とする。
本発明の一実施形態にかかる制御装置において、前記無限ループの原因となりうる前記ループ処理の前記起動条件信号を前記無限ループ発生条件情報テーブルに記録する無限ループ検出手段を有する。
本発明の一実施形態にかかる制御装置において、前記ラダープログラムの実行中に、前記ループ処理の正常終了時の起動条件信号の状態を前記無限ループ発生条件情報テーブルに記録する無限ループ検出手段を有する。
本発明の一実施形態にかかる編集装置は、ラダープログラムを編集するための編集装置であって、無限ループの原因となりうるループ処理の起動条件信号を無限ループ発生条件情報テーブルに記録する無限ループ検出手段を有する。
本発明により、ラダープログラムにおける無限ループを脱出することが可能な制御装置及び編集装置を提供することができる。
制御装置1のハードウェア構成図である。 編集装置2のハードウェア構成図である。 制御装置1及び編集装置2の機能ブロック図である。 編集装置2においてラダープログラムのコンパイル時に実行される処理を示すフローチャートである。 ループ処理及びジャンプ命令の検出処理を示す図である。 無限ループ条件検出処理を示すフローチャートである。 無限ループ条件検出処理を示す図である。 無限ループ発生条件情報テーブル301の一例を示す図である。 制御装置1においてラダープログラムの実行中に行われる処理を示すフローチャートである。 無限ループ発生条件情報テーブル301の一例を示す図である。 脱出処理を示す図である。 脱出処理を示す図である。
図1及び図2は、本発明の第1の実施形態による制御装置1と、編集装置2と、の要部とを示す概略的なハードウェア構成図である。制御装置1は、例えばラダープログラムを読み込んで産業用機械やロボット等(以下、単に機械という)の制御を行う装置であり、例えばPLC(programmable logic controller)、PLC機能を備える数値制御装置等である。制御装置1は、CPU11、ROM12、RAM13、不揮発性メモリ14、インタフェース18、インタフェース19、バス10、軸制御回路16、サーボアンプ17を有する。制御装置1には、サーボモータ50、操作盤60、編集装置2が接続される。
CPU11は、制御装置1を全体的に制御するプロセッサである。CPU11は、ROM12に格納されたシステム・プログラムをバス10を介して読み出し、システム・プログラムに従って制御装置1全体を制御する。
ROM12は、機械の各種制御等を実行するためのシステム・プログラムを予め格納している。
RAM13は、一時的な計算データや表示データ、後述する操作盤60を介してオペレータが入力したデータ等を一時的に格納する。
不揮発性メモリ14は、例えば図示しないバッテリでバックアップされており、制御装置1の電源が遮断されても記憶状態を保持する。不揮発性メモリ14は、操作盤60から入力されるデータや、インタフェース19を介して編集装置2から入力されたラダープログラム等を格納する。不揮発性メモリ14に記憶されたプログラムやデータは、実行時及び利用時にはRAM13に展開されても良い。
軸制御回路16は、機械の動作軸を制御する。軸制御回路16は、CPU11が出力する軸の移動指令量を受けて、軸の移動指令をサーボアンプ17に出力する。
サーボアンプ17は、軸制御回路16が出力する軸の移動指令を受けて、サーボモータ50を駆動する。
サーボモータ50は、サーボアンプ17により駆動されて機械の動作軸を動かす。サーボモータ50は、典型的には位置・速度検出器を内蔵する。位置・速度検出器は位置・速度フィードバック信号を出力し、この信号が軸制御回路16にフィードバックされることで、位置・速度のフィードバック制御が行われる。
なお、図1では軸制御回路16、サーボアンプ17、サーボモータ50は1つずつしか示されていないが、実際には制御対象となる機械に備えられた軸の数だけ用意される。例えば、6軸を備えたロボットを制御する場合、それぞれの軸に対応する軸制御回路16、サーボアンプ17、サーボモータ50が合計6セット用意される。
操作盤60は、ディスプレイやハードウェアキー等を備えたデータ入出力装置である。操作盤60は、インタフェース18を介してCPU11から受けた情報をディスプレイに表示する。操作盤60は、ハードウェアキー等から入力された指令やデータ等をインタフェース18を介してCPU11に渡す。
インタフェース19は、制御装置1と編集装置2とを接続するための通信インタフェースである。
編集装置2は、ラダープログラムの作成及び編集機能を有する情報処理装置であり、例えばPC(personal computer)である。編集装置2は、CPU21、ROM22、RAM23、不揮発性メモリ24、インタフェース28、インタフェース29、バス20を有する。編集装置2には、入出力装置70、制御装置1が接続される。
CPU21は、編集装置2を全体的に制御するプロセッサである。CPU21は、ROM22に格納されたシステム・プログラムをバス20を介して読み出し、システム・プログラムに従って編集装置2全体を制御する。
ROM22は、編集装置2の各種機能を実行するためのシステム・プログラムを予め格納している。
RAM23は、一時的な計算データや表示データ、後述する入出力装置70を介してオペレータが入力したデータ等を一時的に格納する。
不揮発性メモリ24は、例えば図示しないバッテリでバックアップされており、編集装置2の電源が遮断されても記憶状態を保持する。不揮発性メモリ24は、ラダープログラムの編集ツール(プログラム)や、編集ツールを利用して作成又は編集されたラダープログラム等を格納する。不揮発性メモリ24に記憶されたプログラムやデータは、実行時及び利用時にはRAM23に展開されても良い。
入出力装置70は、ディスプレイやキーボード等のデータ入出力装置である。入出力装置70は、インタフェース28を介してCPU21から受けた情報をディスプレイに表示する。入出力装置70は、キーボード等から入力されたデータ等をインタフェース28を介してCPU21に渡す。
インタフェース29は、編集装置2と制御装置1とを接続するための通信インタフェースである。
図3は、第1の実施形態における制御装置1及び編集装置2の概略的な機能ブロック図である。制御装置1は、ラダープログラム実行部101、無限ループ脱出手段102を有する。編集装置2は、無限ループ検出手段201を有する。ラダープログラム実行部101、無限ループ脱出手段102、無限ループ検出手段201は、例えばCPU11又はCPU21の一機能として実現されても良く、例えばROM12、ROM22、RAM13、RAM23、不揮発性メモリ14又は不揮発性メモリ24に格納されたプログラムをCPU11又はCPU21が実行することにより実現されても良い。
無限ループ検出手段201は、典型的には、編集装置2のラダープログラムのコンパイラの一機能として実装される。無限ループ検出手段201は、例えばラダープログラム(ソースコード)のコンパイル時に、ジャンプ命令の起動条件と、起動条件に含まれる各種信号(以下、起動条件信号)と、各種信号の制御箇所と、を特定する。無限ループ検出手段201は、これらの情報を無限ループ発生条件情報テーブル301に記録する。
本実施の形態の無限ループ検出手段201は、無限ループ発生条件情報テーブル301をラダープログラムのオブジェクトコードに埋め込む。例えばオブジェクトコードの末尾等に無限ループ発生条件情報テーブル301を付加する。無限ループ検出手段201は、オブジェクトコードを制御装置1の例えば不揮発性メモリ14に転送する。
なお無限ループ検出手段201は、無限ループ発生条件情報テーブル301をオブジェクトコードに対応付けられた別のファイル内に格納し、当該ファイルをオブジェクトコードとともに制御装置1に転送しても良い。又は、無限ループ検出手段201は、制御装置1からアクセス可能な任意の記憶領域(制御装置1、編集装置2、又は他の装置内のいずれに存在しても良い)にオブジェクトコード又は無限ループ発生条件情報テーブル301を格納しても良い。また本実施の形態では無限ループ発生条件情報テーブル301をテーブル構造を有するデータとして示しているが、他の任意のデータ構造(例えばツリー構造等)により情報を格納しても差し支えない。
ラダープログラム実行部101は、例えば不揮発性メモリ14に転送されたラダープログラムのオブジェクトコードを読み出し、実行する。
無限ループ脱出手段102は、ラダープログラム実行部101がラダープログラムを実行しているあいだ、ジャンプ命令の起動条件信号の状態を監視する。無限ループ脱出手段102は、無限ループに陥ったか否かを判定し(従来技術。特許文献1参照)、無限ループに陥っていればそのことを外部に通知する。無限ループ脱出手段102は、無限ループからの脱出処理を実行する。
図4のフローチャートを用いて、編集装置2においてラダープログラムのコンパイル時に実行される処理について説明する。
<無限ループの原因となりうるジャンプ命令の検出>
図4のフローチャート及び図5のチャートを用いて、無限ループの原因となりうるジャンプ命令の検出処理について説明する。
S101:ラダープログラム(ソースコード)内の全てのネットについて、それぞれ、以下のS102乃至S104の処理を実行する。すなわち先頭ネットから順に最後のネットに至るまで、以下のS102乃至S104の処理を繰り返し実行する。
S102: 無限ループ検出手段201は、ネット内にジャンプ命令が含まれるか否かを判定する。含まれる場合、S103に遷移する。含まれない場合は次のネットの処理に移行する。
図5の例では、ネット番号0110にジャンプ命令が存在する。
S103:無限ループ検出手段201は、ジャンプ命令のネット番号と、ジャンプ命令に含まれるラベル(ジャンプ先)が存在するネット番号と、を比較する。ジャンプ命令のネット番号>ラベルのネット番号であれば、このジャンプ命令はループ処理を定義しているもの、換言すれば無限ループの原因となりうるものであると判断し、S104に遷移する。その他の場合は次のネットの処理に移行する。
図5の例では、ジャンプ命令が存在するネット番号0110と、このジャンプ命令のジャンプ先であるラベル1が存在するネット番号0100と、を比較する。0110>0100であるから、このジャンプ命令はループ処理を定義している、すなわち無限ループの原因ともなりうるものと判断される。一般化すれば、ラダーの処理方向とは逆方向(ネット番号が小さくなる方向)へジャンプしている場合、ループ処理が存在するものと判断できる。図5の例では、ジャンプ命令の直前には起動条件が定義されており(破線囲み部)、起動条件が不成立となるまでループ処理が継続する。
S104:無限ループ検出手段201は、無限ループ条件検出処理(図6、後述)を実行する。
<無限ループ条件検出処理>
S104における無限ループ条件検出処理について、図6のフローチャート、図5及び図7のチャートを用いて詳細に説明する。
S201: 無限ループ検出手段201は、ジャンプ命令のネット番号と、ジャンプ命令の起動条件と、を記録する。例えば、起動条件に含まれる1以上の起動条件信号と、起動条件信号が複数である場合はそれらの関係を示す論理式等と、を起動条件として記録できる。典型的にはRAM23にこれらの情報を一時的に格納する。
図5の例では、破線で囲んだ回路が起動条件である。この起動条件には、起動条件信号としてR0001.0,F0000.5,X0000.0が含まれる。これらの起動条件信号間の関係は数1(上述)のとおりである。
S202:無限ループ検出手段201は、S201で記録した全ての起動条件信号について、それぞれS203乃至S205の処理を実行する。
S203:無限ループ検出手段201は、ラダープログラムを探索し、起動条件信号がループ内で制御されているか否かを判定する。制御されている場合、S204に遷移する。制御されていない場合、S205に遷移する。
図7の例では、ネット番号0110で評価されている起動条件信号R0001.0(破線囲み部)は、ループ内のネット番号0101で値が制御されている。ネット番号0101では、D0000>100であればR0001.0がONとなる制御が行われている。
S204:無限ループ検出手段201は、起動条件信号を制御しているネットの番号を記録する。
図7の例では、起動条件信号R0001.0を制御しているネット番号0101が記録される。
S205:無限ループ検出手段201は、起動条件信号はループ内で制御されていないことを示す情報を記録する。
図7の例において、F0000.5は自動運転起動中のステータスを示す信号(制御装置1がラダープログラム外から取得できる)、X0000.0は操作盤60からの入力信号であるものとする。この場合、F0000.5,X0000.0はいずれもループ内で制御されていないことが記録される。
<無限ループ発生条件情報テーブル301の生成>
図4のフローチャートに戻り、ラダープログラム(ソースコード)内の全てのネットについてそれぞれS102乃至S104の処理を実行した後に行われる処理について説明する。
S105:無限ループ検出手段201は、これまでの処理において無限ループ条件検出処理(図6、S104)を一度でも実行したか否かを判定する。実行していれば、S106に遷移する。実行していなければ、S109に遷移する。
S106:無限ループ検出手段201は、S104においてRAM23等に記録した情報に基づいて、無限ループ発生条件情報テーブル301を生成する。
図8に、無限ループ発生条件情報テーブル301の一例を示す。図8の例では、無限ループの発生原因となりうるジャンプ命令それぞれについて、ジャンプ命令のネット番号、1以上の起動条件信号、無限ループの発生原因(すなわち起動条件。本例では起動条件信号間の関係を示す論理式が記録される)、1以上の起動条件それぞれを制御しているネット番号(ループ内に制御箇所がない場合は「ループ内での書き換えなし」と記載される)が対応付けられている。
S107:無限ループ検出手段201は、ラダープログラムのコンパイル結果とともに、無限ループ発生条件情報テーブル301の内容の一部又は全部を、例えば入出力装置70のディスプレイに表示することによりオペレータに提示する。
S108:無限ループ検出手段201は、ラダープログラムのオブジェクトコードに無限ループ発生条件情報テーブル301を埋め込む。例えば、オブジェクトコードの末尾に無限ループ発生条件情報テーブル301のバイナリデータ等を付加する。無限ループ検出手段201は、無限ループ発生条件情報テーブル301を埋め込んだオブジェクトコードを、インタフェース29を介して制御装置1に送信する。
制御装置1は、無限ループ発生条件情報テーブル301が埋め込まれたオブジェクトコードをインタフェース19を介して受信し、不揮発性メモリ14に格納する。
S109: 無限ループ検出手段201は、ラダープログラムのオブジェクトコードを、インタフェース29を介して制御装置1に送信する。
制御装置1は、オブジェクトコードをインタフェース19を介して受信し、不揮発性メモリ14に格納する。
図9のフローチャートを用いて、制御装置1においてラダープログラムの実行中に行われる処理について説明する。
<無限ループの判定>
図9のフローチャート及び図7のチャートを用いて、無限ループの検出処理について説明する。
ラダープログラム実行部101が、S108で編集装置2から受信した、無限ループ発生条件情報テーブル301が埋め込まれたオブジェクトコードを、不揮発性メモリ14から読み出して実行する。無限ループ脱出手段102は、オブジェクトコードの実行状態を監視し、命令が実行される度にS301以下の処理を実行する。
S301:ループ処理の開始時の処理である。無限ループ脱出手段102は、無限ループ発生条件情報テーブル301に記録されているジャンプ命令が実行されたか否かを判定する。実行された場合は、S302に遷移する。
S302:無限ループ脱出手段102は、無限ループ発生条件情報テーブル301に記録されているジャンプ命令のネットに処理が移ったなら、ジャンプ命令の起動条件が成立したか否かを判定する。成立した場合、S304に遷移する。成立しなかった場合、S303に遷移する。
S303:ループ処理が正常終了した場合の処理である。無限ループ脱出手段102は、現在(S302でジャンプ命令の起動条件が成立しなかったとき)の起動条件信号の状態を無限ループ発生条件情報テーブル301に記録する。
図10に、起動条件信号の状態を記録した無限ループ発生条件情報テーブル301の例を示す。「正常終了時の信号状態」として起動条件信号の状態が記録される。
S304:ループ処理を継続する場合の処理である。無限ループ脱出手段102は、従来技術(特許文献1参照)を利用してループ処理が無限ループに陥っているか否かを判定する。特許文献1記載の手法により、無限ループ脱出手段102は、スキャンタイムがウォッチドッグタイマのタイマ時間をオーバーしたら無限ループと判定し、プログラムカウンタのサンプリングを開始する。無限ループ脱出手段102は、各アドレスのサンプリング回数を記録し、各アドレスが含まれるラダーのネット番号とそのサンプリング回数の分布から、無限ループが生じている箇所を特定する。無限ループに陥っている場合、S306に遷移する。陥っていない場合、S305に遷移する。
S305:ループ処理が正常に継続している場合の処理である。無限ループ脱出手段102は、現在(S304で無限ループに陥っていないと判定されたとき)の起動条件信号の状態を無限ループ発生条件情報テーブル301に記録する。
図10に、起動条件信号の状態を記録した無限ループ発生条件情報テーブル301の例を示す。「ループ中の信号状態」として起動条件信号の状態が記録される。
S306:無限ループに陥った場合の処理である。無限ループ脱出手段102は、制御装置1の操作盤60のディスプレイ上に以下の情報を表示し、無限ループが発生したことをオペレータに通知する。
・S304で検出した無限ループの発生箇所。
・無限ループ発生条件情報テーブル301の内容。例えば
−ジャンプ命令の起動条件信号の制御箇所
−起動条件信号の信号状態(正常終了時の信号状態、無限ループ時の信号状態)
S307:無限ループ脱出手段102は、脱出処理(後述)を実行して無限ループ状態を強制的に終了させる。
S308:無限ループ脱出手段102は、好ましくは機械を非常停止状態とする。これにより安全を確保することができる。
<無限ループの脱出>
S307の脱出処理について具体的に説明する。
図11を用いて、第1の脱出処理について説明する。
無限ループ脱出手段102は、無限ループ発生条件情報テーブル301を参照し、正常終了時の信号状態と、無限ループ時の信号状態と、を比較する。これによりどの信号が原因で無限ループに陥っているかが判明する(破線囲み部)。
無限ループ脱出手段102は、起動条件信号の信号状態を、無限ループの停止条件すなわち正常終了時の信号状態に強制的に書き換える。これによりジャンプ命令の起動条件が不成立となり、無限ループから脱出することが可能となる。
例えば図10に示すように、無限ループ時の信号状態がR0001.0=OFF,F0000.5=ON,X0000.0=OFFであり、正常終了時の信号状態がR0001.0=ON,F0000.5=ON,X0000.0=OFFであるとする。このとき無限ループ脱出手段102は、起動条件信号の信号状態を、R0001.0=ON,F0000.5=ON,X0000.0=OFFに強制的に書き換える。
論理式で表現すれば、無限ループの成立条件は数1である。第1の脱出処理における無限ループ脱出手段102は、無限ループの停止条件
Figure 2019185361

を満たすよう起動条件信号の信号状態を書き換える。
図12を用いて、第2の脱出処理について説明する。
本例では、ジャンプ命令の内部に閉接点が予め組み込まれているものとする(破線囲み部)。無限ループ脱出手段102は、このジャンプ命令内部の閉接点を強制的にONに書き換える。これによりジャンプ命令の起動条件が不成立となり、無限ループから脱出することが可能となる。
論理式で表現すれば、通常の無限ループの成立条件は数1である。第2の脱出処理における無限ループ脱出手段102は、無限ループの成立条件を以下のように書き換える。
Figure 2019185361
以上、本発明の実施の形態について説明したが、本発明は上述した実施の形態の例のみに限定されることなく、適宜の変更を加えることにより様々な態様で実施することができる。
例えば、上述の実施の形態では、無限ループ発生条件情報テーブル301は、ジャンプ命令の起動条件信号の制御箇所等を記録し、これらの情報が無限ループ発生時にオペレータに提示される例を示した。しかしながら、本発明はこれに限定されるものでなく、問題解決に必要な他の任意の情報を無限ループ発生条件情報テーブル301に記録し、これらの情報を無限ループ発生時にオペレータに提示することとしても良い。又は、ジャンプ命令の起動条件信号の制御箇所や他の情報を無限ループ発生条件情報テーブル301に記録せず、これらの情報は無限ループ発生時にオペレータに提示しないこととしても良い。すなわち、図10に示した要素を除く情報は、無限ループ発生条件情報テーブル301に記録するか否かは任意である。
また、本実施の形態におけるジャンプ命令には、ラダープログラムでループ処理を記述する際に用いることができる様々な命令や構文が含まれるものとし、本発明は特定の命令や構文に限定されるものではない。
また、上述の実施の形態では制御装置1、編集装置2をそれぞれ異なる装置として示したが、本発明はこれに限定されるものでなく、両者の機能は1つの装置に実装されても差し支えない。
1 制御装置
11 CPU
12 ROM
13 RAM
14 不揮発性メモリ
18,19 インタフェース
10 バス
16 軸制御回路
17 サーボアンプ
50 サーボモータ
60 操作盤
2 編集装置
21 CPU
22 ROM
23 RAM
24 不揮発性メモリ
28,29 インタフェース
20 バス
70 入出力装置
101 ラダープログラム実行部
102 無限ループ脱出手段
201 無限ループ検出手段
301 無限ループ発生条件情報テーブル
302 記録テーブル

Claims (6)

  1. ラダープログラムの実行中に、ループ処理が無限ループに陥ったことを検出することが可能な制御装置であって、
    前記無限ループの発生時に、前記ループ処理を構成するジャンプ命令の起動条件を強制的に不成立とすることにより、前記無限ループから脱出する無限ループ脱出手段を有することを特徴とする
    制御装置。
  2. 前記無限ループ脱出手段は、前記ループ処理の正常終了時の起動条件信号の状態を少なくとも記録した無限ループ発生条件情報テーブルを参照し、現在の前記起動条件信号を、前記正常終了時の起動条件信号に強制的に書き換えることにより、前記無限ループから脱出することを特徴とする
    請求項1記載の制御装置。
  3. 前記無限ループ脱出手段は、前記ジャンプ命令内に設けられた閉接点の信号状態を強制的に書き換えることにより、前記無限ループから脱出することを特徴とする
    請求項1記載の制御装置。
  4. 前記無限ループの原因となりうる前記ループ処理の前記起動条件信号を前記無限ループ発生条件情報テーブルに記録する無限ループ検出手段を有する
    請求項2記載の制御装置。
  5. 前記ラダープログラムの実行中に、前記ループ処理の正常終了時の起動条件信号の状態を前記無限ループ発生条件情報テーブルに記録する無限ループ検出手段を有する
    請求項2記載の制御装置。
  6. ラダープログラムを編集するための編集装置であって、
    無限ループの原因となりうるループ処理の起動条件信号を無限ループ発生条件情報テーブルに記録する無限ループ検出手段を有する
    編集装置。
JP2018075022A 2018-04-09 2018-04-09 制御装置及び編集装置 Active JP6901430B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2018075022A JP6901430B2 (ja) 2018-04-09 2018-04-09 制御装置及び編集装置
US16/371,228 US10664274B2 (en) 2018-04-09 2019-04-01 Controller and editor
DE102019002413.3A DE102019002413A1 (de) 2018-04-09 2019-04-02 Steuerung und Editor
CN201910281028.XA CN110362028A (zh) 2018-04-09 2019-04-09 控制装置以及编辑装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018075022A JP6901430B2 (ja) 2018-04-09 2018-04-09 制御装置及び編集装置

Publications (2)

Publication Number Publication Date
JP2019185361A true JP2019185361A (ja) 2019-10-24
JP6901430B2 JP6901430B2 (ja) 2021-07-14

Family

ID=67992055

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018075022A Active JP6901430B2 (ja) 2018-04-09 2018-04-09 制御装置及び編集装置

Country Status (4)

Country Link
US (1) US10664274B2 (ja)
JP (1) JP6901430B2 (ja)
CN (1) CN110362028A (ja)
DE (1) DE102019002413A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07210218A (ja) * 1994-01-19 1995-08-11 Fanuc Ltd シーケンス・プログラムの異常検出方式
JP2012248055A (ja) * 2011-05-30 2012-12-13 Hitachi Advanced Digital Inc シミュレーション装置及びシミュレーション方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NZ218742A (en) * 1986-06-03 1990-09-26 Fisher & Paykel Programmed logic controller
US5285376A (en) * 1991-10-24 1994-02-08 Allen-Bradley Company, Inc. Fuzzy logic ladder diagram program for a machine or process controller
JP2902888B2 (ja) * 1993-01-20 1999-06-07 三菱電機株式会社 プログラマブルコントローラ
US5690656A (en) 1995-06-27 1997-11-25 Cook Incorporated Method and apparatus for creating abdominal visceral anastomoses
JP2000194569A (ja) * 1998-12-25 2000-07-14 Toshiba Corp コンパイル装置、コンパイル方法、コンパイルプログラムを格納したコンピュ―タ読み取り可能な記録媒体および目的プログラムを格納したコンピュ―タ読み取り可能な記録媒体
US7272815B1 (en) * 1999-05-17 2007-09-18 Invensys Systems, Inc. Methods and apparatus for control configuration with versioning, security, composite blocks, edit selection, object swapping, formulaic values and other aspects
AU5025600A (en) * 1999-05-17 2000-12-05 Foxboro Company, The Process control configuration system with parameterized objects
US20050028036A1 (en) * 2003-07-30 2005-02-03 Kohsaku Shibata Program debug apparatus, program debug method and program
EP1703348B1 (en) * 2005-03-14 2010-10-13 Omron Corporation Programmable controller system
JP4491439B2 (ja) * 2006-06-30 2010-06-30 株式会社日立製作所 制御装置及び制御方法
US7827022B2 (en) * 2006-09-27 2010-11-02 Rockwell Automation Technologies, Inc. Sequential function chart validation tool
JP4967939B2 (ja) * 2007-09-07 2012-07-04 横河電機株式会社 デジタル指示調節計
CN101504615A (zh) * 2009-03-24 2009-08-12 杭州华三通信技术有限公司 为任务死循环提供定位信息的方法和装置
CN101537622B (zh) * 2009-04-24 2011-12-14 东莞艾尔发自动化机械有限公司 一种操作多轴机械手臂的控制方法及全伺服控制系统
JP4752984B1 (ja) * 2011-03-15 2011-08-17 オムロン株式会社 Plcのcpuユニット、plc用のシステムプログラムおよびplc用のシステムプログラムを格納した記録媒体
JP5916677B2 (ja) * 2013-09-20 2016-05-11 株式会社日立製作所 制御コントローラ及びそのプログラミング方法
CN105630680B (zh) * 2015-12-28 2018-12-18 中国科学院微电子研究所 一种随机测试程序生成方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07210218A (ja) * 1994-01-19 1995-08-11 Fanuc Ltd シーケンス・プログラムの異常検出方式
JP2012248055A (ja) * 2011-05-30 2012-12-13 Hitachi Advanced Digital Inc シミュレーション装置及びシミュレーション方法

Also Published As

Publication number Publication date
CN110362028A (zh) 2019-10-22
US10664274B2 (en) 2020-05-26
US20190310850A1 (en) 2019-10-10
DE102019002413A1 (de) 2019-10-10
JP6901430B2 (ja) 2021-07-14

Similar Documents

Publication Publication Date Title
US10295985B2 (en) Program processing apparatus and program
CN107885305B (zh) 控制装置、控制方法以及记录介质
EP3035139A2 (en) Systems and methods that facilitate management of add-on instruction generation, selection, and/or monitoring during execution
CN101669077A (zh) 可编程控制器的线图的调试系统、其编程装置及其程序
JP2017187992A (ja) 制御装置、制御方法およびプログラム
KR102063966B1 (ko) Plc 명령어 컴파일 최적화 방법
JP6901430B2 (ja) 制御装置及び編集装置
JP2008059573A (ja) 多重バイナリ入力を使用したロボットプログラミング制御
JP5365875B2 (ja) 産業用コントローラ
JP6469330B1 (ja) モニタ支援装置、モニタ支援方法およびモニタ支援プログラム
CN105320030A (zh) 工程装置、工程系统以及下载处理方法
CN110506242B (zh) 程序开发支持装置、系统、方法以及记录媒体
JPH0410081B2 (ja)
JP2021039568A (ja) 情報処理システム、プログラマブル表示器および情報処理装置
JP3764436B2 (ja) 機械の制御装置
US20190212708A1 (en) Safety control unit, safety control method, and safety control program
JP4387288B2 (ja) 制御用表示装置、エディタ装置、プログラムおよび記録媒体
JP6748146B2 (ja) 制御装置、制御方法及び制御プログラム
WO1988006751A1 (en) Processor for plc and plc
KR20060061001A (ko) 단일씨피유를 이용한 씨앤씨시스템
JP2009009314A (ja) エディタ装置、エディタプログラムおよびそれを記録した記録媒体
JP3400920B2 (ja) プログラム読み出し装置
JP2005301334A (ja) モーションコントローラ
JP2011183498A (ja) ロボットのコントローラ
JP2020027347A (ja) 制御プログラム管理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190911

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20191217

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20200217

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200421

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200428

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200601

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200901

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201009

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210105

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210305

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210617

R150 Certificate of patent or registration of utility model

Ref document number: 6901430

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150