JPH07210218A - シーケンス・プログラムの異常検出方式 - Google Patents

シーケンス・プログラムの異常検出方式

Info

Publication number
JPH07210218A
JPH07210218A JP6003960A JP396094A JPH07210218A JP H07210218 A JPH07210218 A JP H07210218A JP 6003960 A JP6003960 A JP 6003960A JP 396094 A JP396094 A JP 396094A JP H07210218 A JPH07210218 A JP H07210218A
Authority
JP
Japan
Prior art keywords
sampling
program
sequence program
execution
sequence
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.)
Pending
Application number
JP6003960A
Other languages
English (en)
Inventor
Kunio Tanaka
久仁夫 田中
Yasushi Onishi
靖史 大西
Kazuo Sato
和生 佐藤
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 JP6003960A priority Critical patent/JPH07210218A/ja
Publication of JPH07210218A publication Critical patent/JPH07210218A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Testing And Monitoring For Control Systems (AREA)
  • Numerical Control (AREA)
  • Programmable Controllers (AREA)

Abstract

(57)【要約】 【目的】 ループプログラムの実行時の異常を検出する
シーケンス・プログラムの異常検出方式において、無限
ループに陥った箇所を容易に確認できるようにする。 【構成】 プログラム実行手段1は、ROM22内のシ
ーケンス・プログラム22aを読み込んで実行する。こ
のとき、無限ループが生じた場合には、オペレータのキ
ー入力等によりサンプリング指令手段2がサンプリング
実行を指令する。このサンプリング実行の指令ととも
に、サンプリング実行手段3はシーケンス・プログラム
の実行状態を監視し、プログラムカウンタのカウント値
を予め設定されたサンプリング周期毎に所定時間だけサ
ンプリングする。分布表示手段4は、サンプリングされ
たカウント値の分布状態を画面表示するようにグラフィ
ック制御回路(CRTC)16に指令し、グラフィック
制御回路16が表示装置31に表示する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は作成されたシーケンス・
プログラムの異常をデバッグ時に検出するシーケンス・
プログラムの異常検出方式に関し、特にループプログラ
ムの実行時の異常を検出するシーケンス・プログラムの
異常検出方式に関する。
【0002】
【従来の技術】最近では、PC(プログラマブル・コン
トローラ)の機能として、シーケンス・プログラムにル
ープ機能を組み込めるようになっている。
【0003】図6はループ機能を含んだラダー・プログ
ラムの一例を示す図である。ループを行う区間をネット
N1〜N2とすると、先頭のネットN1にはラベル機能
命令LBL71が設けられ、一方、最終のネットN2に
はジャンプ機能命令JMP72が設けられる。
【0004】ネットN1〜N2間の実行中は、ジャンプ
機能命令JMP72のところに実行がくると、再びラベ
ル機能命令LBL71に実行が戻る。これが複数回繰り
返されると、実行がこのループから脱出する。この場合
には、ネットN3のSTOP73がオンになり、以降の
ラダーが実行される。
【0005】
【発明が解決しようとする課題】しかし、このようなル
ープ機能は、その設計を誤ると、ループから脱出するこ
とができなくなる所謂無限ループに陥る虞がある。従来
は、この無限ループに陥ったループを特定する手法がな
く、シーケンス・プログラムのデバッグに多くの時間を
要していた。
【0006】本発明はこのような点に鑑みてなされたも
のであり、無限ループに陥った箇所を容易に確認するこ
とのできるシーケンス・プログラムの異常検出方式を提
供することを目的とする。
【0007】
【課題を解決するための手段】本発明では上記課題を解
決するために、作成されたシーケンス・プログラムの異
常をデバッグ時に検出するシーケンス・プログラムの異
常検出方式において、前記シーケンス・プログラムを実
行するプログラム実行手段と、サンプリング実行を指令
するサンプリング指令手段と、前記サンプリング実行の
指令とともに前記シーケンス・プログラムの実行状態を
監視し、プログラムカウンタのカウント値を予め設定さ
れたサンプリング周期毎に所定時間だけサンプリングす
るサンプリング実行手段と、前記サンプリングされたカ
ウント値の分布状態を画面表示する分布表示手段と、を
有することを特徴とするシーケンス・プログラムの異常
検出方式が提供される。
【0008】
【作用】プログラム実行手段がシーケンス・プログラム
を実行しているときに、無限ループが生じた場合には、
オペレータのキー入力等によりサンプリング指令手段が
サンプリング実行を指令する。このサンプリング実行の
指令とともに、サンプリング実行手段はシーケンス・プ
ログラムの実行状態を監視し、プログラムカウンタのカ
ウント値を予め設定されたサンプリング周期毎に所定時
間だけサンプリングする。分布表示手段は、サンプリン
グされたカウント値の分布状態を画面表示する。
【0009】無限ループが生じているときには、一定の
区間のみがカウントされることになり、その箇所が画面
表示されることにより、オペレータが容易に確認するこ
とができる。
【0010】
【実施例】以下、本発明の一実施例を図面に基づいて説
明する。図1は本実施例の機能の概念を示すブロック図
である。プログラム実行手段1は、ROM22内のシー
ケンス・プログラム22aを読み込んで実行する。この
とき、無限ループが生じた場合には、オペレータのキー
入力等によりサンプリング指令手段2がサンプリング実
行を指令する。このサンプリング実行の指令とともに、
サンプリング実行手段3はシーケンス・プログラムの実
行状態を監視し、プログラムカウンタのカウント値を予
め設定されたサンプリング周期毎に所定時間だけサンプ
リングする。分布表示手段4は、サンプリングされたカ
ウント値の分布状態を画面表示するようにグラフィック
制御回路(CRTC)16に指令し、グラフィック制御
回路16が表示装置31に表示する。
【0011】なお、サンプリング指令手段2は、シーケ
ンス・プログラム22aの実行のスキャンタイムを監視
し、スキャンタイムが予め設定されたウォッチドッグタ
イマのタイマ時間を越えた場合にサンプリング実行を指
令するようにしてもよい。
【0012】図2は本発明を実施するための数値制御装
置(CNC)全体のハードウェアのブロック図である。
プロセッサ11は数値制御装置10全体の制御の中心と
なるプロセッサであり、バス19を介して、ROM13
に格納されたシステムプログラムを読み出し、このシス
テムプログラムに従って、数値制御装置10全体の制御
を実行する。
【0013】共有RAM12はCNC10とPMC20
とのデータの授受を行うためのRAMであり、この共有
RAM12を経由して、互いにデータの授受を行う。ま
た、同時に双方からのアクセスに必要なデータを格納す
る。
【0014】RAM14には一時的な計算データ、表示
データ等が格納される。不揮発性メモリ15にはバッテ
リによりバックアップされたCMOSや、フラッシュR
OM等が使用され、工具補正量、ピッチ誤差補正量、加
工プログラムおよびパラメータ等が格納される。また、
不揮発性メモリ15にはPMC20側に必要なパラメー
タ等も格納されている。
【0015】グラフィック制御回路16は各軸の現在位
置、アラーム、パラメータ、画像データ等のディジタル
データを画像信号に変換して出力する。この画像信号は
CRT/MDIユニット30の表示装置31に送られ、
表示装置31に表示される。表示装置31には、PMC
20側のパラメータ、ラダーダイヤグラム、および後述
するデバッグデータ等も表示することができる。このと
きのデータはPMC20から共有RAM12を経由して
送られてくる。さらに、表示装置31には、後述するル
ープ機能の分布表示画面が表示される。
【0016】インタフェース17はCRT/MDIユニ
ット30内のキーボード32からのデータを受けて、プ
ロセッサ11に渡す。また、PMC20側へのデータも
キーボード32から入力することができ、そのデータは
共有RAM12を経由して、PMC20側へ送られる。
【0017】インタフェース18には自動プログラミン
グ装置40が接続され、この自動プログラミング装置4
0によって作成されたシーケンス・プログラムがインタ
フェース18を介して読み込まれ、PMC20に送られ
る。また、インタフェース18には、図示されていない
紙テープリーダ、紙テープパンチャー、紙テープリーダ
・パンチャー、プリンタ等の外部機器が接続される。紙
テープリーダからは加工プログラムが読み込まれる。ま
た、数値制御装置10内で編集された加工プログラムを
紙テープパンチャーに出力することもできる。
【0018】なお、プロセッサ11と共有RAM12、
ROM13等の要素はバス19によって結合されてい
る。図ではサーボモータ等を制御する軸制御回路、サー
ボアンプ、スピンドル制御回路、スピンドルアンプ、手
動パルス発生器インタフェース等は省略してある。
【0019】PMC(プログラマブル・マシン・コント
ローラ)20はPC(プログラマブル・コントローラ)
の一種であり、数値制御装置10に内蔵されている。P
MC20にはPMC用のプロセッサ21があり、プロセ
ッサ21はバス26によって、共有RAM12と接続さ
れ、共有RAM12はCNC10のバス19に結合され
ている。また、バス26にはROM22が結合されてい
る。ROM22にはPMC20を制御するための管理プ
ログラムが格納されている。
【0020】RAM23には入出力信号が格納され、シ
ーケンス・プログラムの実行に従って、その内容は書き
換えられていく。RAM23には、シーケンス・プログ
ラムのオブジェクトを実行する度にプログラムカウンタ
が書き込まれ、更新される。不揮発性メモリ24には、
バッテリによりバックアップされたCMOSや、フラッ
シュROM等が使用され、自動プログラミング装置40
で作成されたシーケンス・プログラムが格納される。シ
ーケンス・プログラムは一般にラダー言語で作成される
が、パスカル等の高級言語で作成される場合もある。
【0021】この不揮発性メモリ24に格納されたシー
ケンス・プログラムは、動作時にはRAM23に転送さ
れ、プロセッサ21はRAM23のプログラムを読んで
実行する。また、シーケンス・プログラムは、表示装置
31に表示することができる。不揮発性メモリ24に
は、シーケンス・プログラム以外にも、電源切断後に保
持しておきたいデータ等が記憶される。
【0022】I/O制御回路25はバス26に接続さ
れ、RAM23に格納された出力信号をI/Oユニット
27にシリアル信号に変換して送る。また、I/Oユニ
ット27からのシリアルな入力信号をパラレル信号に変
換してバス26に送る。その信号はプロセッサ21によ
って、RAM23に格納される。RAM23に格納され
た入出力信号や不揮発性メモリ24に格納されたデータ
は、CRT/MDIユニット30の表示装置31に表示
することができる。
【0023】プロセッサ21はCNC10から共有RA
M12を経由して、M機能指令、T機能指令等の指令信
号を受け、一旦RAM23に格納し、その指令をROM
22に格納されたシーケンス・プログラムに従って処理
し、I/O制御回路25を経由して、I/Oユニット2
7に出力する。この出力信号によって、機械側の油圧機
器、空圧機器、電磁機器が制御される。
【0024】また、プロセッサ21はI/Oユニット2
7からの機械側のリミットスイッチ信号、機械操作盤の
操作スイッチの信号等の入力信号を受けて、この入力信
号を一旦RAM23に格納する。PMC20で処理する
必要のない入力信号は共有RAM12を経由してプロセ
ッサ11に送られる。その他の信号はシーケンス・プロ
グラムで処理し、一部の信号はCNC10側へ、他の信
号は出力信号として、I/O制御回路25を経由してI
/Oユニット27から機械側へ出力される。
【0025】一方、シーケンス・プログラムには、各軸
の移動等を制御する命令を含めることができる。これら
の指令はプロセッサ21によって読み出されると、共有
RAM12を経由して、プロセッサ11に送られ、サー
ボモータを制御する。同様にして、スピンドルモータ等
もPMC側からの指令で制御することもできる。
【0026】次に、このような構成を有するCNC10
の動作中のPMC20側のシーケンス・プログラムの異
常検出方式の具体的な手順を説明する。まず、オペレー
タは、パラメータ画面においてウォッチドッグタイマの
タイマ時間を設定する。このタイマ時間は、実行するシ
ーケンス・プログラムのスキャンタイムの数十倍程度の
値に設定され、不揮発性メモリ24に格納される。タイ
マ時間の設定がない場合には、システムが自動的に設定
する。
【0027】シーケンス・プログラムが実行されると、
オブジェクトの1アドレス実行の度にプログラムカウン
タが更新される。プロセッサ21は、実行しているシー
ケンス・プログラムのスキャンタイムを常時監視し、ス
キャンタイムがウォッチドッグタイマのタイマ時間をオ
ーバーした場合には、プログラムカウンタのサンプリン
グの実行を開始する。
【0028】このサンプリングの周期は、例えば8m秒
程度に設定される。プロセッサ21は、サンプリングを
行う度に、各アドレスのサンプリング回数をRAM23
の所定の領域に書き込む。こうして所定のサンプリング
時間(例えば1秒)に亘るサンプリングが終了すると、
プロセッサ21は、そのデータを編集し、アドレスに対
するサンプリング回数の分布を演算する。
【0029】そして、各アドレスが含まれるラダーのネ
ット番号とそのサンプリング回数の分布を求め、サンプ
リング回数の多い部分について無限ループが生じている
ものと判断し、その状態を表示装置31の画面上に表示
する。
【0030】図3はサンプリングの分布表示画面として
の無限ループ表示画面の一例を示す図である。表示装置
31の画面31aには、無限ループ表示画面50が表示
される。無限ループ表示画面50は、表示中のラダー図
52の上部に範囲表示欄51が表示される。範囲表示欄
51には、図に示すように、ウォッチドッグタイマのタ
イマ時間がタイムアップしたことを示すメッセージ「W
ATCH DOG TIME UP」と、無限ループの
開始ネット番号を示すメッセージ「LOOPSTART
LINE =100」と、無限ループの終了ネット番
号を示すメッセージ「LOOP END LINE =
200」とが表示される。
【0031】これにより、オペレータは一目で無限ルー
プ箇所を認識することができる。また、このとき、ラダ
ー図52は、無限ループ箇所の一部、例えば無限ループ
の終了ネット番号200付近を表示するようにすれば、
修正作業が容易になる。
【0032】図4は無限ループ表示画面の他の例を示す
図である。無限ループ表示画面60には、簡略化された
ラダー図61が表示されている。ラダー図61のライン
の横には、10単位でネット番号が付されている。この
無限ループ表示画面60では、サンプリング回数の多い
ネットの範囲を、その頻度に応じて色別表示している。
この図では、ネット番号35から52付近が少ない回数
のループ状態、ネット番号40から47付近が多い回数
のループ状態であることが示されている。こうすること
により、無限ループの状態がより明確に分かる。
【0033】図5はこのようなサンプリングの処理を行
うためのプロセッサ21側の処理手順を示すフローチャ
ートである。 〔S1〕シーケンス・プログラムの実行を開始する。 〔S2〕ウォッチドッグタイマのカウントを開始する。 〔S3〕ウォッチドッグタイマがタイムアップしたか否
かを判断し、タイムアップすればステップS5に進み、
していなければステップS4に進む。 〔S4〕キー入力によるサンプリング実行指令があった
か否かを判断し、あればステップS5に進み、なければ
ステップS3に戻る。 〔S5〕プログラムカウンタのサンプリングの実行を開
始する。 〔S6〕サンプリング時間のカウントを開始する。 〔S7〕サンプリング時間がタイムアップしたか否かを
判断し、タイムアップすればステップS8に進み、して
いなければステップS7を繰り返す。 〔S8〕無限ループの位置を確定し、画面表示する。
【0034】なお、本実施例では、シーケンス・プログ
ラムのデバッグとしてPMC20を内蔵したCNC10
の表示装置31を使用する例を示したが、PMC20に
自動プログラミング装置40を直接接続し、自動プログ
ラミング装置40の表示画面上で行うようにしてもよ
い。
【0035】
【発明の効果】以上説明したように本発明では、プログ
ラムカウンタのカウント値を予め設定されたサンプリン
グ周期毎に所定時間だけサンプリングし、サンプリング
されたカウント値の分布状態を画面表示するようにした
ので、無限ループが生じているときには、一定の区間の
みがカウントされることになり、その箇所が画面表示さ
れる。したがって、無限ループに陥った箇所を容易に確
認することが可能となる。
【図面の簡単な説明】
【図1】本実施例の機能の概念を示すブロック図であ
る。
【図2】本発明を実施するための数値制御装置(CN
C)全体のハードウェアのブロック図である。
【図3】サンプリングの分布表示画面としての無限ルー
プ表示画面の一例を示す図である。
【図4】無限ループ表示画面の他の例を示す図である。
【図5】サンプリングの処理を行うためのプロセッサ側
の処理手順を示すフローチャートである。
【図6】ループ機能を含んだラダー・プログラムの一例
を示す図である。
【符号の説明】
1 プログラム実行手段 2 サンプリング指令手段 3 サンプリング実行手段 4 分布表示手段 10 数値制御装置(CNC) 20 PMC 21 プロセッサ 22 ROM 22a シーケンス・プログラム 23 RAM 24 不揮発性メモリ 31 表示装置 40 自動プログラミング装置
【手続補正書】
【提出日】平成7年1月11日
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】請求項4
【補正方法】変更
【補正内容】
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】請求項5
【補正方法】変更
【補正内容】

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 作成されたシーケンス・プログラムの異
    常をデバッグ時に検出するシーケンス・プログラムの異
    常検出方式において、 前記シーケンス・プログラムを実行するプログラム実行
    手段と、 サンプリング実行を指令するサンプリング指令手段と、 前記サンプリング実行の指令とともに前記シーケンス・
    プログラムの実行状態を監視し、プログラムカウンタの
    カウント値を予め設定されたサンプリング周期毎に所定
    時間だけサンプリングするサンプリング実行手段と、 前記サンプリングされたカウント値の分布状態を画面表
    示する分布表示手段と、 を有することを特徴とするシーケンス・プログラムの異
    常検出方式。
  2. 【請求項2】 前記サンプリング指令手段は、オペレー
    タによる所定のキー入力時に前記サンプリング実行を指
    令するように構成されていることを特徴とする請求項1
    記載のシーケンス・プログラムの異常検出方式。
  3. 【請求項3】 前記サンプリング指令手段は、前記シー
    ケンス・プログラムのスキャンタイムを監視し、前記ス
    キャンタイムが予め設定されたタイマ時間を越えた場合
    に前記サンプリング実行を指令するように構成されてい
    ることを特徴とする請求項1記載のシーケンス・プログ
    ラムの異常検出方式。
  4. 【請求項4】 前記表示手段は、前記サンプリングされ
    たプログラムカウンタのカウント値の最大値および最小
    値を検索し、前記最大値および最小値のカウント値に対
    応するラダー図のネット番号を前記画面表示するように
    構成されていることを特徴とする請求項1記載のシーケ
    ンス・プログラムの異常検出方式。
  5. 【請求項5】 前記表示手段は、前記サンプリングされ
    たプログラムカウンタのカウント値の度数分布を前記画
    面表示するように構成されていることを特徴とする請求
    項1記載のシーケンス・プログラムの異常検出方式。
JP6003960A 1994-01-19 1994-01-19 シーケンス・プログラムの異常検出方式 Pending JPH07210218A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6003960A JPH07210218A (ja) 1994-01-19 1994-01-19 シーケンス・プログラムの異常検出方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6003960A JPH07210218A (ja) 1994-01-19 1994-01-19 シーケンス・プログラムの異常検出方式

Publications (1)

Publication Number Publication Date
JPH07210218A true JPH07210218A (ja) 1995-08-11

Family

ID=11571667

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6003960A Pending JPH07210218A (ja) 1994-01-19 1994-01-19 シーケンス・プログラムの異常検出方式

Country Status (1)

Country Link
JP (1) JPH07210218A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017016234A (ja) * 2015-06-29 2017-01-19 ファナック株式会社 最寄りのネットコメントを表示可能なラダープログラム編集装置
CN110362028A (zh) * 2018-04-09 2019-10-22 发那科株式会社 控制装置以及编辑装置

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017016234A (ja) * 2015-06-29 2017-01-19 ファナック株式会社 最寄りのネットコメントを表示可能なラダープログラム編集装置
US10268764B2 (en) 2015-06-29 2019-04-23 Fanuc Corporation Ladder program editing device capable of displaying network comment
CN110362028A (zh) * 2018-04-09 2019-10-22 发那科株式会社 控制装置以及编辑装置
JP2019185361A (ja) * 2018-04-09 2019-10-24 ファナック株式会社 制御装置及び編集装置
US10664274B2 (en) 2018-04-09 2020-05-26 Fanuc Corporation Controller and editor

Similar Documents

Publication Publication Date Title
US5469352A (en) Operation history display device of numerical control apparatus
EP0397887B1 (en) Method of correcting machining program
US6859898B1 (en) Monitor apparatus for sequential-function-chart-type programmable controller
EP0436035A1 (en) Machine operation history display method
US5784621A (en) Sequence program display apparatus
US6290403B1 (en) Sequence program execution control system
CN101025622A (zh) 数值控制器
US5659337A (en) Message display system for programmable controller
EP0287663B1 (en) Method and apparatus for numerical control having an override playback function
JPH07210218A (ja) シーケンス・プログラムの異常検出方式
JPH08278804A (ja) シーケンス・プログラムの診断方式
EP0428735A1 (en) System for displaying data on a screen
EP0538482A1 (en) Method for debugging sequential program
JPH04235603A (ja) Pcの信号トレース制御方式
EP0481082B1 (en) Symbol definition method for programmable machine controller
JPH06324717A (ja) シーケンス・プログラムの編集方式
EP0418393B1 (en) Input/output signal control system
EP0800127A1 (en) Method of editing sequence data
JP2533373B2 (ja) 制御プログラム作成方法
EP0425688A1 (en) Method of editing program for program controller
JPH08286712A (ja) シーケンス・プログラムの編集方式
JP3549383B2 (ja) Pmcの制御装置
JPH04229303A (ja) Pcの信号トレース制御方式
JPH07261811A (ja) シーケンス・プログラムのトレース方式
EP0440806A1 (en) System for controlling program of pc