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

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

Info

Publication number
JPH04215106A
JPH04215106A JP40195190A JP40195190A JPH04215106A JP H04215106 A JPH04215106 A JP H04215106A JP 40195190 A JP40195190 A JP 40195190A JP 40195190 A JP40195190 A JP 40195190A JP H04215106 A JPH04215106 A JP H04215106A
Authority
JP
Japan
Prior art keywords
subroutine
program
sequence
instruction
execution
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
JP40195190A
Other languages
English (en)
Other versions
JP2853774B2 (ja
Inventor
Toshiyuki Ishihara
石原 俊幸
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 JP40195190A priority Critical patent/JP2853774B2/ja
Publication of JPH04215106A publication Critical patent/JPH04215106A/ja
Application granted granted Critical
Publication of JP2853774B2 publication Critical patent/JP2853774B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Programmable Controllers (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、シーケンスプログラム
を実行したときにサブルーチンプログラムに対する演算
の異常を検出する機能を有するプログラマブルコントロ
ーラに関する。
【0002】
【従来の技術】従来、シーケンスプログラム中のサブル
ーチンプログラムの実行時の異常を検出する機能を有す
るプログラマブルコントローラでは、メインルーチンへ
の中央処理装置(CPU)内のスタック領域に格納され
たサブルーチンの戻り番地を異常検出のために参照して
いる。
【0003】
【発明が解決しようとする課題】しかしながら従来装置
ではスタック領域に他種の情報をも書き込むために、ス
タック領域内における戻り先番地の格納位置が移動(プ
ッシュ)されてしまう。このため、他種の情報をスタッ
ク領域に書き込むときに上記戻り先番地をスタック領域
から読出し、汎用レジスタに記憶する処理が必要であり
、この処理を指示するプログラム命令の分だけシーケン
スプログラムの容量が増大するという不具合があった。
【0004】この点について、図6を参照して詳しく説
明する。
【0005】図6は2つのサブルーチンプログラムを有
するシーケンスプログラムの一例を示す。
【0006】中間語のシーケンスプログラムをCPUの
実行可能な機械語に翻訳する際に、またはユーザ自身が
中間語のシーケンスプログラムを作成する際に、メイン
ルーチンMAIN内に記載されたサブルーチン実行命令
PP2の前に、入出力パラメータにより逆算要求を行う
ためのプログラム命令PP1が挿入される。
【0007】この入力パラメータがレベルオンを示すと
きには次に移動するサブルーチンプログラムにおいて、
スタック領域に通常のデータ格納を行うこと、すなわち
、サブルーチンの戻り番地のスタック領域の格納位置の
変更があることを表わす。
【0008】また、サブルーチンの中の、スタック領域
にデータを格納する命令PP3,PP7の後には上記入
力パラメータのオン/オフを確認し、サブルーチンの戻
り番地の格納されたスタック領域のアドレスを逆算し、
サブルーチンの戻り番地を読出し、汎用レジスタに書き
込む旨を指示するプログラム命令(図6のPP4,PP
5,PP8,PP9)が挿入される。
【0009】このような図6のシーケンスプログラムを
実行するときのCPUの動作手順をプルグラム命令毎に
説明する。
【0010】プログラム命令PP1:メインルーチンM
AINにおいて、サブルーチンSUB1を実行(CAL
L)する際に、戻り番地逆算要求を示すオンの入力パラ
メータがCPU内のレジスタにセットされる。
【0011】プログラム命令PP2:サブルーチン実行
命令CALL  SUBにより周知のシステム動作して
CPUはスタック領域4にサブルーチンSUB1のメイ
ンルーチンへの戻り番地を格納し、実行手順をサブルー
チンSUB1に移す。
【0012】プログラム命令PP3:このプログラム命
令によりCPU内のスタック領域にレジスタReg.1
のデータが格納される。
【0013】プログラム命令PP4:入力パラメータが
オンに設定されているのでこの判定処理は肯定判定が得
られ、次のプログラム命令の番地逆算の処理に移る。
【0014】プログラム命令PP5:スタックポインタ
の値より、サブルーチンSUB1についての戻り番地が
格納されているスタック領域アドレス(すなわち図7の
符号Aの位置)を逆算し、次にこのアドレスからサブル
ーチンSUB1の戻り番地情報を読出し、CPU内の汎
用レジスタReg.0にセーブ(記憶)しておく(図7
,8参照)。
【0015】プログラム命令PP6:サブルーチン実行
命令CALL  SUB2により、スタック領域にサブ
ルーチンSUB2の戻り番地が格納され(図6参照)、
サブルーチンSUB2に実行手順が移る。
【0016】プログラム命令PP7:このプルグラム命
令によりレジスタReg.2をセーブ(PUSH)して
いるので、スタック領域にレジスタReg.2のデータ
が格納される。
【0017】プログラム命令PP8:サブルーチンSU
B2についての戻り番地逆算要求プログラムに記載され
ていないので、実行手順は逆算の処理に移らず飛び越す
【0018】プログラム命令PP9:サブルーチンSU
B1の戻り番地を使用したエラー検出処理をするため、
先ほどセーブした汎用レジスタReg.0により、戻り
番地を参照する。
【0019】以上のように、2つのサブルーチン(プロ
グラム)をネスト的に実行する際に、第2番目のサブル
ーチンにおいて、メインルーチンに対する戻り番地を知
るためには、プログラム命令PP1,3,4,8,9を
シーケンスプログラム内に挿入しておかなければならな
い。また、メインプログラム上のサブルーチンの実行回
数が増える程その実行回数分だけプログラム命令PP1
は必要となる。
【0020】このため、従来装置では、サブルーチンの
実行エラー処理を検出する場合、シーケンスプログラム
の容量が増大するという不具合があった。
【0021】そこで、本発明の目的は、このような点に
鑑みて、シーケンスプログラムの容量を従来よりも短縮
し、かつ、サブルーチンの戻り番地を記憶しておくこと
ができるプログラマブルコントローラを提供することに
ある。
【0022】
【課題を解決するための手段】このような目的を達成す
るために、本発明は、サブルーチンの実行異常を検出す
る機能を有するプログラマブルコントローラにおいて、
前記実行異常の検出のためにサブルーチンの戻り先番地
を示す情報を専用的に記憶する記憶手段と、シーケンス
プログラムに記載された実行対象の第1プログラム命令
の種類内容を識別する識別手段と、サブルーチンの実行
を指示する第2プログラム命令であって、かつ、当該サ
ブルーチンの戻り先番地の記憶を指示する第2プログラ
ム命令を予め定め、前記実行対象の第1プログラム命令
が当該第2プログラム命令であると前記識別手段により
識別されたときは、当該第1プログラム命令の示すサブ
ルーチンに対する戻り先番地を前記記憶手段に書き込む
書き込み手段とを具えたことを特徴とする。
【0023】
【作用】本発明では、ユーザは新たに定義されたサブル
ーチン実行命令をシーケンスプログラムに記載しておく
だけで、シーケンスプログラムの実行時に書き込み手段
により自動的にサブルーチンの戻り先情報が記憶手段に
書き込まれる。
【0024】
【実施例】以下、図面を参照して本発明の実施例を詳細
に説明する。
【0025】図1は本発明実施例の基本構成を示す。
【0026】本実施例のプログラマブルコントローラは
サブルーチンの実行異常を検出する機能を有するプログ
ラマブルコントローラである。
【0027】図1において、100は前記実行異常の検
出のためにサブルーチンの戻り先番地を示す情報を専用
的に記憶する記憶手段である。
【0028】200はシーケンスプログラムに記載され
た実行対象の第1プログラム命令の種類内容を識別する
識別手段である。
【0029】300はサブルーチンの実行を指示する第
2プログラム命令であって、かつ、当該サブルーチンの
戻り先番地の記憶を指示する第2プログラム命令を予め
定め、前記実行対象の第1プログラム命令が当該第2プ
ログラム命令であると前記識別手段により識別されたと
きは、当該第1プログラム命令の示すサブルーチンに対
する戻り先番地を前記記憶手段に書き込む書き込み手段
である。
【0030】図2は本発明実施例におけるプログラマブ
ルコントローラの主要回路の構成を示す。
【0031】図2において、CPU10およびユーザプ
ログラムメモリ20がバスに共通接続されている。
【0032】CPU10はシステムプログラムに従って
、ユーザプログラムメモリ20に格納されたシーケンス
プログラムをシーケンス命令単位で読出し、内部の演算
回路10−1によりシーケンス命令で規定されたシーケ
ンス演算を実行する。
【0033】読出しのシーケンス命令がサブルーチン命
令であるときは、従来同様そのサブルーチンの戻り先番
地がスタック領域10−2に記憶され、同時に、本発明
に関わる専用レジスタ領域10−3にもサブルーチンの
戻り先番地が記憶される。
【0034】専用レジスタ領域10−3が本発明の記憶
手段として動作する。
【0035】このような回路におけるシーケンスプログ
ラムの実行手順を図4を参照して説明する。
【0036】図4はCPU10の実行するシステム処理
手順を示し、CPU10内または外部のシステムプログ
ラムメモリに予め格納されている。
【0037】また、実行対象のシーケンスプログラムに
は従来例と同一内容の図3のプログラムを用いるが、次
の点が従来のシーケンスプログラムと異なる。
【0038】サブルーチンの戻り先番地の記憶を付加的
に指示するサブルーチン実行命令“CALLS+「サブ
ルーチン名」”を従来のサブルーチン実行命令“CAL
L+「サブルーチン名」”とは別個に定め、サブルーチ
ンの実行異常を検出したいときにはこの新サブルーチン
実行命令をシーケンスプログラムにおいて用いる。
【0039】このような図3のシーケンスプログラムを
実行するために、CPU10は、図4において、プログ
ラムカウンタの示す読出しアドレスをユーザプログラム
メモリ20の先頭アドレスに設定し、先頭のシーケンス
命令を読出す(ステップS10→S20)。
【0040】続いて、CPU10は読出したシーケンス
命令を、予め種類内容の判別している各種シーケンス命
令とコード比較する。この比較により、読出しのシーケ
ンス命令の中の“CALLS”を含むサブルーチン実行
命令を識別する(ステップS30)。このときのCPU
10が本発明の識別手段として動作する。
【0041】図3のシーケンスプログラム例では先頭の
シーケンス命令はサブルーチン命令ではないので、CP
U10の実行手順はステップS30→S80の順序で進
み、従来同様そのシーケンス命令の指示する処理がCP
U10において実行される。次に、プログラムカウンタ
が更新されて次のシーケンス命令がユーザプログラムメ
モリ20から読出される(ステップS90→S70→S
20)。
【0042】このような処理を繰り返し実施し、図3の
シーケンスプログラムをシーケンス命令の記載順に実行
してゆくと、メインルーチン中のサブルーチン実行命令
“CALLS  SUB1”がステップS30で検出さ
れる。
【0043】CPU10はプログラムカウンタの示す現
在の計数値に“1”を加えた値をサブルーチンの戻り先
番地としてスタック領域に書き込む(ステップS40)
。このスタック領域10−2の戻り先番地情報はサブル
ーチン実行後、実行手順をメインルーチンに復帰させる
際に用いられる。これら処理手順は周知のため詳細な説
明を省略する。
【0044】次にCPU10は上記戻り先番地情報を専
用レジスタ領域のレジスタReg.0に格納する(ステ
ップS50)。このときのCPU10が本発明の書き込
み手段として動作する。次にCPU10はシーケンス命
令の示す識別名に基づきプログラムカウンタの計数値を
ユーザプログラムメモリ20上のサブルーチンSUB1
の先頭格納アドレスに設定してサブルーチンSUB1の
先頭のシーケンス命令を読出す(ステップS60→S7
0→S20)。
【0045】以下、図3のサブルーチンプログラムSU
B1,SUB2はCPU10では従来同様の処理手順に
より演算実行される(ステップS30→S80→S90
→S70→S20のループ処理)。
【0046】また、サブルーチンSUB2において、サ
ブルーチンSUB1の戻り番地を使用する処理を行う場
合は、CPU10は専用レジスタ領域10−3のレジス
タReg.0を読出し、参照する。
【0047】CPU10はこのような処理手順を順次に
実行し、ユーザプログラムメモリ20の全てのシーケン
ス命令を読出し実行すると、1回のシーケンス演算を終
了する(ステップS70)。
【0048】以上、説明したように、本実施例において
はユーザは戻り番地を記憶させたいサブルーチンについ
ては“CALLS”のサブルーチン実行命令を記載して
おくだけでよい。本実施例ではサブルーチンの実行エラ
ーの検出に際し、従来のように、スタック領域の戻り番
地を使用しないので、スタック領域の格納位置の移動に
伴う戻り番地の再格納処理も不要となる。
【0049】本実施例の他に次にの例が挙げられる。
【0050】1)本実施例では、サブルーチンの戻り番
地を専用レジスタに格納しているが、処理速度の遅延を
許せばCPU10内の汎用レジスタや外付きのメモリに
戻り番地を専用的に格納するようにしてもよい。
【0051】2)本実施例ではソフトウェア(システム
プログラム)を実行するCPU10により識別手段を構
成しているが、シーケンス命令をユーザプログラムメモ
リ20から読出したときに、デコーダによりシーケンス
命令の内容を識別してもよい。
【0052】3)本実施例では新たなサブルーチン実行
命令“CALLS”をメインルーチンMAIN上におい
て用いる例を示したが、サブルーチン上においても用い
てもよく、この場合図5に示すように、サブルーチンの
分岐回数に対応させて戻り先番地を累積的にレジスタ領
域10−3に格納する。
【0053】
【発明の効果】以上、説明したように、本発明によれば
、サブルーチンの戻り番地を記憶する指示を付加したサ
ブルーチン実行命令を新たに定め、この命令を実行する
手段を設けたので、従来のようにスタック領域の戻り番
地情報を用いる必要がなくなる。この結果、スタック領
域の情報の格納位置の移動に伴う戻り番地情報の再記憶
のための複数のプログラム処理命令をシーケンスプログ
ラムに記載する必要がなくなり、シーケンスプログラム
の容量を従来よりも縮小化することができる。さらに、
シーケンスプログラムの縮小に伴ってプログラムメモリ
を小型化でき、シーケンス演算時間も短縮することがで
きるという効果も得られる。
【図面の簡単な説明】
【図1】本発明実施例の基本構成を示すブロック図であ
る。
【図2】本発明実施例の回路構成を示すブロック図であ
る。
【図3】本発明実施例のシーケンスプログラムの内容を
示すフローチャートである。
【図4】本発明実施例の動作手順を示すフローチャート
である。
【図5】本発明実施例のレジスタの格納例を示す説明図
である。
【図6】従来例のシーケンスプログラムの内容を示すフ
ローチャートである。
【図7】従来例のスタック領域の格納内容を示す説明図
である。
【図8】従来例のサブルーチン関連記憶情報の内容を示
す説明図である。
【符号の説明】
10  CPU 10−1  演算回路 10−2  スタック領域 10−3  専用レジスタ領域

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】  サブルーチンの実行異常を検出する機
    能を有するプログラマブルコントローラにおいて、前記
    実行異常の検出のためにサブルーチンの戻り先番地を示
    す情報を専用的に記憶する記憶手段と、シーケンスプロ
    グラムに記載された実行対象の第1プログラム命令の種
    類内容を識別する識別手段と、サブルーチンの実行を指
    示する第2プログラム命令であって、かつ、当該サブル
    ーチンの戻り先番地の記憶を指示する第2プログラム命
    令を予め定め、前記実行対象の第1プログラム命令が当
    該第2プログラム命令であると前記識別手段により識別
    されたときは、当該第1プログラム命令の示すサブルー
    チンに対する戻り先番地を前記記憶手段に書き込む書き
    込み手段とを具えたことを特徴とするプログラマブルコ
    ントローラ。
JP40195190A 1990-12-13 1990-12-13 プログラマブルコントローラ Expired - Fee Related JP2853774B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP40195190A JP2853774B2 (ja) 1990-12-13 1990-12-13 プログラマブルコントローラ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP40195190A JP2853774B2 (ja) 1990-12-13 1990-12-13 プログラマブルコントローラ

Publications (2)

Publication Number Publication Date
JPH04215106A true JPH04215106A (ja) 1992-08-05
JP2853774B2 JP2853774B2 (ja) 1999-02-03

Family

ID=18511768

Family Applications (1)

Application Number Title Priority Date Filing Date
JP40195190A Expired - Fee Related JP2853774B2 (ja) 1990-12-13 1990-12-13 プログラマブルコントローラ

Country Status (1)

Country Link
JP (1) JP2853774B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008040996A (ja) * 2006-08-10 2008-02-21 Meidensha Corp プログラマブルコントローラ
JP5460928B1 (ja) * 2013-03-06 2014-04-02 三菱電機株式会社 プログラマブルコントローラ、プログラマブルコントローラシステムおよび実行エラー情報作成方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008040996A (ja) * 2006-08-10 2008-02-21 Meidensha Corp プログラマブルコントローラ
JP5460928B1 (ja) * 2013-03-06 2014-04-02 三菱電機株式会社 プログラマブルコントローラ、プログラマブルコントローラシステムおよび実行エラー情報作成方法
KR20150096478A (ko) 2013-03-06 2015-08-24 미쓰비시덴키 가부시키가이샤 프로그래머블 컨트롤러, 프로그래머블 컨트롤러 시스템 및 실행 에러 정보 작성 방법
CN105009006A (zh) * 2013-03-06 2015-10-28 三菱电机株式会社 可编程控制器、可编程控制器系统及执行错误信息生成方法
CN105009006B (zh) * 2013-03-06 2017-04-05 三菱电机株式会社 可编程控制器、可编程控制器系统及执行错误信息生成方法
US9753444B2 (en) 2013-03-06 2017-09-05 Mitsubishi Electric Corporation Programmable controller, programmable controller system, and method of creating execution error information

Also Published As

Publication number Publication date
JP2853774B2 (ja) 1999-02-03

Similar Documents

Publication Publication Date Title
JP2526688B2 (ja) プログラマブルコントロ―ラおよびシ―ケンスプログラムの部分実行方法
US4462086A (en) Loading system in numerical controller
JPH10214203A (ja) 情報処理装置
JPH04215106A (ja) プログラマブルコントローラ
JP2754899B2 (ja) デバック装置のリターンアドレス監視回路
JP2658342B2 (ja) データ処理装置
JP3186214B2 (ja) 繰り返し演算方法および装置
JPS5822765B2 (ja) 電子計算機システムにおけるプログラムロ−ド方式
JPH03208132A (ja) シングルチツプマイクロコンピユータ
JPS58158747A (ja) プログラマブル・コントロ−ラ
JPS6270947A (ja) デバグ割込み制御方式
JPH1139897A (ja) デジタル記憶手段の記憶データ検査方法
JPH01207840A (ja) プログラム評価用制御装置
JPH064356A (ja) ソフトウエアの異常動作検出方式
JPS6240550A (ja) プログラムデバツク装置
JPH03127126A (ja) 情報処理装置
JPH04286042A (ja) メモリテストにおけるデータの保護方法
GB2300496A (en) Data processing system
KR930014003A (ko) 실시간 운영체계에서의 운영체계와 사용자 프로그램의 정합 방법
JPH02242444A (ja) 情報処理装置のデバッグ機構
JPS6349943A (ja) 演算処理装置
JPH09146793A (ja) プログラム評価の方法および装置
JPS6140648A (ja) ブレ−クポイント設定装置
JPS59158449A (ja) デバツグ装置
JPH0253146A (ja) プログラム・トレース方法

Legal Events

Date Code Title Description
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

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

Free format text: PAYMENT UNTIL: 20071120

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20081120

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20091120

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20091120

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20101120

Year of fee payment: 12

LAPS Cancellation because of no payment of annual fees