JPH06289919A - Nc装置のマンマシンインタフェース装置 - Google Patents

Nc装置のマンマシンインタフェース装置

Info

Publication number
JPH06289919A
JPH06289919A JP9671793A JP9671793A JPH06289919A JP H06289919 A JPH06289919 A JP H06289919A JP 9671793 A JP9671793 A JP 9671793A JP 9671793 A JP9671793 A JP 9671793A JP H06289919 A JPH06289919 A JP H06289919A
Authority
JP
Japan
Prior art keywords
program
execution
data
code
node
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
JP9671793A
Other languages
English (en)
Inventor
Toshifumi Satake
竹 利 文 佐
Kunihiko Noda
田 邦 彦 野
Takahiro Funaki
木 崇 宏 船
Tomoo Matsumoto
本 倫 雄 松
Kenji Kato
藤 健 二 加
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.)
Shibaura Machine Co Ltd
Original Assignee
Toshiba Machine 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 Toshiba Machine Co Ltd filed Critical Toshiba Machine Co Ltd
Priority to JP9671793A priority Critical patent/JPH06289919A/ja
Publication of JPH06289919A publication Critical patent/JPH06289919A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Numerical Control (AREA)

Abstract

(57)【要約】 【目的】 ユーザ側でマンマシンインタフェースを手軽
にカスタマイズすることができ、しかもユーザが作成し
た機能がNC本体へ影響を与えることのないNC装置の
マンマシンインタフェースを提供する。 【構成】 NC装置のマンマシンインタフェースのカス
タマイズに関するカスタマイズプログラムを受け付けて
システムの所定の条件に合致するときにプログラム管理
データとして出力するコンパイル手段(11)と、この
プログラム管理データを記憶するプログラム管理データ
記憶手段(14)と、実行すべきプログラムの内部コー
ドを解析して実行の適否を判断する内部コード解析手段
(21)と、実行データ格納手段と、前記プログラム管
理データ記憶手段から出力されたプログラム管理データ
を前記内部コード解析手段の出力に基づいて実行データ
として前記実行データ格納手段に展開させるロード手段
(22)とを備える。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はNC装置のマンマシンイ
ンタフェース装置に関するもので、特にそのカスタマイ
ズに関する。
【0002】
【従来の技術】NC装置は様々なタイプの工作機械およ
び様々な工場のシステムに対応する必要があることか
ら、NC装置に備えられる機能は増加の一途をたどって
いる。しかし、ユーザから見ると必ずしも必要でない機
能も多く、操作の複雑化を招いている。
【0003】一方、開発を行うNCメーカや機械メーカ
においては、機能が増えすぎたために、開発工数の大部
分がマンマシンインタフェースの開発に費やされること
になってしまい、本来の性能を発揮すべき部分に十分な
時間を割くことができないという問題がある。また、N
C装置の操作においては、正確な加工を迅速かつ安全に
行う必要性から、マンマシンインタフェースがオペレー
タによって使い易いことが極めて重要である。NC装置
のマンマシンインタフェースは徐々に使い易くなっては
いるものの、ユーザから見ればまだ十分なものではな
い。
【0004】ユーザの要求に合致するインタフェースを
装置ごとに実現する方法としては、従来次のようなもの
があった。その第1は、NCメーカが各ユーザから要求
を集めておき、特定あるいは複数のユーザむけのプログ
ラムを最初から作成して機械語レベルで表されたプログ
ラムをROM化してNC装置に組み込んで装置納入を行
う方法である。また、第2の方法は機械メーカが編集装
置、ROM作成装置を購入し、機械メーカでプログラム
を作成する方法である。この場合の例としてはユーザ独
特の点検項目等を含むメンテナンス画面やオプション機
能等のための特殊画面などを表示するプログラムがあ
る。
【0005】
【発明が解決しようとする課題】しかしながら、前者で
は、NCメーカ、機械メーカ、ユーザの関係は、多くの
ユーザから要求が機械メーカに出され、多くの機械メー
カから要求がNCメーカに出されるという関係にあるた
めに、NCメーカはエンドユーザの要求をすべて考慮し
てマンマシンインタフェースを設計してROM化する必
要が生じるが、各ユーザの要求が必ずしも一致しないた
め、これは現実的には不可能で十分な対応ができないと
いう問題がある。また、必要な機能が無かったり、あっ
ても探しにくかったりして、使いこなしが困難であると
いう問題がある。また、後者では専用の装置が必要であ
るため、設備投資額が大きくなって機械メーカでは負担
が重くなるという問題がある。さらに、ソフトが複雑で
あるために、機械メーカで作成された機能がNCメーカ
の作成した機能に悪影響を及ぼしてNCシステムのダウ
ンや暴走の原因になることもある。このようなシステム
ダウンが生じたときにはメーカが持ち帰り修理を行うた
めに、システムが長期にわたって停止することになると
いう問題がある。同様の問題はNC装置のバージョンア
ップの際に生じ、マンマシンインタフェースの継続的使
用を確保することに困難が生じることがある。
【0006】本発明はこのような問題を解決するために
なされたもので、当初からNC装置に作り込まれた機能
とキー入力とを対応付け、ユーザ側でマンマシンインタ
フェースを手軽にカスタマイズすることができ、しかも
ユーザが作成した機能がNC本体へ影響を与えることの
ないNC装置のマンマシンインタフェースを提供するこ
とを目的とする。
【0007】
【課題を解決するための手段】本発明にかかるNC装置
のマンマシンインタフェース装置によれば、NC装置の
マンマシンインタフェースのカスタマイズに関するカス
タマイズプログラムを受け付けてシステムの所定の条件
に合致するときにプログラム管理データとして出力する
コンパイル手段と、このプログラム管理データを記憶す
るプログラム管理データ記憶手段と、実行すべきプログ
ラムの内部コードを解析して実行の適否を判断する内部
コード解析手段と、実行データ格納手段と、前記プログ
ラム管理データ記憶手段から出力されたプログラム管理
データを前記内部コード解析手段の出力に基づいて実行
データとして前記実行データ格納手段に展開させるロー
ド手段とを備えたことを特徴とする。
【0008】
【作用】本発明のマンマシンインタフェース装置ではコ
ンパイル手段がカスタマイズプログラムが正規のシステ
ムデータの範囲内であるかをチェックし、このチェック
結果が良好であるときにはプログラム管理データとして
保存し、以後、このプログラム管理データがプログラム
の実行領域への展開の際に機能するようになり、ユーザ
の要求に合わせてカスタマイズが可能となる。
【0009】
【実施例】
(カスタマイズ装置の構成の概要)図1は本発明にかか
るNC装置のマンマシンインタフェース装置のうちカス
タマイズ部分の構成を示すシステム構成図である。この
カスタマイズ装置は、図1に示すように、解析部10と
実行部20とからなる。解析部10はユーザプログラム
格納部12、システムプログラム格納部13、解析およ
びロードを行うコンパイラとしての解析/ ロード部11
およびプログラム管理データ格納部14を有している。
また、実行部20は内部コード解析部21、実行データ
ロード部22、実行データ展開部23を有している。図
2はこのカスタマイズ装置を実現するハードウェアを示
すものであって、種々の処理を行うCPU1にROM
2、RAM3、バックアップRAM4がバス5に接続さ
れている。システムプログラム13はROM12に、ユ
ーザプログラム12およびプログラム管理データ14は
バックアップRAM4に、実行データ22はRAM3に
それぞれ格納される。
【0010】まず、解析部における動作を説明すると、
図3のフローチャートに示すように、ファイルされてい
るマンマシンインタフェース用のアプリケーションプロ
グラムであるユーザプログラムおよび装置の動作を決定
するシステムプログラムをそれぞれユーザプログラム格
納部12およびシステムプログラム格納部13から受け
取り(ステップS111)、それらの内容を解析し(ス
テップS112)、所定の条件を満たしているかをチェ
ックする。そして、チェック結果が良好であるときには
(ステップS113)、内部コード化を行って(ステッ
プS114)プログラム管理データとして出力し(ステ
ップS115)、プログラム管理データ格納部14に格
納させる。
【0011】なお、カスタマイズに関するプログラム
は、パーソナルコンピュータまたはNC装置上で作成
し、これを複数のNC装置のマンマシンインタフェース
装置へ通信回線あるいはフロッピーディスクを介してロ
ードすることができる。また、実行部20は指定された
プログラムをメインプログラムとしてプログラム管理領
域から実行領域へ展開して走らせる部分である。この実
行部20は内部コード解析エンジンとしてのインタープ
リタ21と実行データローダ22を有している。実行デ
ータローダ22はメインプログラムとして呼び出された
各種プログラムをプログラム管理データ格納部14に格
納された内部コードを参照しながら実行管理領域へ展開
するものである。
【0012】(マンマシンインタフェース装置の説明)
このようなカスタマイズ装置を含むマンマシンインタフ
ェース装置の構成を図4に示す。図4に示されたのは、
ユーザインタフェースツール(User InterfaceTool :
UIT)システムと称されているものである。UITシ
ステムは、前述したように、NC装置のマンマシンイン
ターフェースを作成するための言語を解析するコンパイ
ラ、および解析されたデータを実行するインタープリタ
で構成されるものである。
【0013】UITシステムはUITシステムデータ格
納部30を中心として、コンパイラ40を介してプログ
ラムファイル群格納部41、インタープリタ43および
デバッグ用インタープリタ45を介して実行データ格納
部44、、デバッガ46を介してデバッグデータ格納部
47およびトレースファイル格納部48、システム設定
部49を介してシステムコンフィグレーションファイル
格納部50、バックアップ部51を介してバックアップ
ファイル格納部52がそれぞれ接続されている。
【0014】このようなマンマシンインタフェース装置
における動作の概略は次のようなものである。エディタ
42で作成されたプログラムはプログラムファイル群格
納部41に一旦格納され、これをコンパイラ40がNC
プログラムとの整合性をとりながらシステムデータ格納
部30に格納する。このシステムデータ格納部40から
実行データが読み出され、インタープリタ43により解
析され、実行データ展開領域44で展開される。
【0015】以下、各部分を詳細に説明する。 (システムデータ)UITシステムデータ格納部30に
格納されるUITシステムデータとしてはグローバル変
数とプログラムデータに大別される。そして、グローバ
ル変数としては、UITシステムとNCとの共通領域に
おけるNCとのデータのやり取りを規定する変数である
NCとのインターフェース31およびシステムで予め定
義されているグローバル32からなるシステムグローバ
ル変数33と、ユーザが定義したユーザグローバル変数
34があり、プログラムデータとしては、プログラム解
析後のユーザプログラム35、ローカルデータ37やシ
ステムプログラム36などがある。
【0016】プログラムテーブルは、定義された個々の
プログラム及びサブプログラムを管理するためのデータ
群であり、後述するように、ユーザが定義したユーザプ
ログラムと、システムで予め用意したシステムプログラ
ムがある。UITシステムの各機能はこのUITデータ
に対しての処理であり、各機能はこのデータを介してリ
ンクしている以外は独立している。
【0017】(コンパイラ)コンパイラ40は、UIT
言語仕様に従って作成されたプログラムを解析し、この
解析結果がシステムの条件に合致するときにはユーザグ
ローバル34とユーザプログラム35をUITシステム
内に作成するものである。コンパイラが行う解析は、カ
スタマイズ内容が正規のシステムデータの範囲内である
かをチェックすることである。システム条件としてチェ
ックされるものとしては以下に示すものがある。 (1) プログラムの書式 UIT文法に従った書式でプログラムが書かれているか
をコンパイルプログラムに作り込まれたチェックプログ
ラムにしたがってチェックする。 (2) システム設定時に決まるプログラム数、グローバ
ル数の及びシステムグローバル変数の設定値 システム設定ファイルに設定されている、ユーザプログ
ラムの最大数、システムグローバル変数の最大数、ユー
ザグローバル変数の最大値を越えていないかのチェック
及び、システムグローバル変数の型大きさが間違って使
用されていないかを静的にチェックするもので、システ
ム設定ファイルの読込み時にUITプログラムデータに
セットされている値をコンパイル時に参照することによ
り行なわれる。 (3) 変数の型 ユーザプログラム中に定義される各変数が正しく使用さ
れているかについての静的チェックで、各プログラム毎
にあるローカル変数の定義によって作成されるUITプ
ログラムデータの変数テーブルを参照し、使われている
変数が定義の領域を越えていないかを変数がプログラム
文中に見つかる度にチェックすることにより行われる。 (4) サブプログラムへ渡される引数の型及び大きさ プログラム呼出しの際の、呼び側と呼出される側の引数
の型、配列の大きさ等のチェックで、プログラム文中に
プログラム呼出し文が見つかると、UITプログラムデ
ータにある呼出すプログラムの引数の情報を参照し、引
数の型が一致しているか、配列の場合の大きさが一致し
ているかをチェックする。 (5) プログラムの格納メモリサイズ ユーザプログラムが格納される領域が一杯になっていな
いかのチェックで、(1) から(4) までのチェックを全て
パスした1つのプログラム単位をUITプログラムデー
タに追加する際に予め使用可能な領域としてあるUIT
プログラムデータ領域が一杯であった場合エラーとする
ことにより判定する。以上のコンパイル時のチェックの
結果、異常が見つかったときにはエラー或いは警告の形
で表示される。
【0018】(インタープリタ)インタープリタ43
は、指定されたメインプログラムに対応するプログラム
のデータをUITデータ格納部30から取出し、実行デ
ータ格納部44の領域に展開する。そしてその実行デー
タに従ってプログラムデータを次々実行データ領域に展
開していく。実際に画面上等に現われる実行結果は、U
ITシステム外のNC装置の各ドライバによって行なわ
れる。UITシステムではシステムプログラムを各ドラ
イバとリンクされており、ユーザプログラムはシステム
プログラムを呼ぶ順序を制御する。したがって、ユーザ
プログラムによりシステムの動作をユーザの希望通りに
変更することができるようになる。
【0019】(デバッガ)デバッガ46はデバッグ用の
1ステップずつ実行するデバッグ用インタープリタ45
の動作を制御しユーザとの対話を行ないながら、各段階
での実行状況をモニターするものである。
【0020】(システム設定部)システム設定部49は
UITデータの領域の大きさ、システムグローバル、シ
ステムプログラム等のUITデータのユーザが関与でき
ない部分の設定を行なうものである。ここではコンフィ
グレーションファイルに書かれたシステム設定のための
データを解析してセットする。
【0021】(バックアップ部)バックアップ部51は
UITシステムデータを全てファイルに格納するもので
あり、またバックアップファイルの内容をロードする機
能を持つ。この機能により一度コントロールされたUI
Tデータを、フロッピーディスクまたは通信によって他
のNC装置上で実行することができ、またパソコン上で
作成されコンパイルされるデータをNC装置上で実行す
ることも可能になる。
【0022】(データテーブル)図5は本発明で使用さ
れるプログラムが展開されるデータテーブルである、プ
ログラムテーブルの概念を示す説明図である。プログラ
ムテーブルは、ユーザの作成したユーザプログラム35
を格納するユーザプログラムテーブルとシステムの持つ
ライブラリやシステムコール等からなるシステムプログ
ラム36を格納するシステムプログラムテーブルが主な
ものである。ユーザプログラム35では名前、プログラ
ムの識別コード、システムプログラムかユーザプログラ
ムかのフラグであるタイプ、プログラムのインターフェ
ースとなる引数の数、変数テーブル、値テーブルの数、
陰変数テーブルとその個数、実行コード列と大きさが記
述されている。システムプログラム36では名前、識別
コード、タイプ、引数の数、変数の数、変数テーブル、
格納された領域の先頭番地へのポインタである実行ポイ
ンタ等が記述されている。
【0023】これらのユーザプログラム、システムプロ
グラムに対してそれぞれ変数テーブル、値テーブル、陰
変数テーブルの3つのテーブルが準備されている。これ
らの各テーブルは、全て同じデータ構造を持ち、1つの
領域(テーブル領域)に格納されている。したがって、
これらを区別するには各テーブルの先頭ポインタを指定
することになる。変数テーブル38aは、文字列で記述
されたプログラムを内部のコードに変数するために必要
となる、プログラム内で明示的に表現された変数を格納
するもので、変数コード、変数名、変数の型、変数バッ
ファ長さ、バッファへのポインタが記憶される。同様の
データ構造で、値テーブル38bには数値や文字列が直
接プログラム内に記述された場合の実質の値が、陰変数
テーブル38cには解析、例えば演算式等の展開の際に
必要となるシステムが生成した変数がそれぞれ格納され
ている。この陰変数はコンパイル時には作成されるが、
ユーザが作成するプログラム中には現われない。
【0024】(実行)UITプログラムの実行は、変数
や実行位置を管理する領域を、プログラムが実行される
度に確保し、終了時には解放する。このような領域は通
常スタックと呼ぶ領域を用いて行なわれる。
【0025】(実行管理データ)実行を管理するプログ
ラム管理データは図6に示すような複数階層をなす木構
造をしており、呼び出されたプログラムが実行ノードと
呼ぶデータによって管理されている。この管理のための
木構造を実行木と呼ぶ。木構造の節(ノード)によって
1つのプログラムの情報を表わし、全体でプログラムの
呼出しているプログラムである。インタープリタはプロ
グラムデータのコードを読み、実行木を作り、その実行
木を探索していくものである。
【0026】実行木の最も上にあるノードはメインプロ
メグラムであり、その下にはそこから呼出されたサブプ
ログラムの実行ノードが接続されており、実行中のプロ
グラムは最も下位の実行ノードである。実行木を構成す
るノードである実行ノードには、プログラムの局所変数
等の変数テーブルと実行済み内部コードのポインタ及び
呼び出しプログラムのリンクのデータが格納される。例
えば、ノードがどのタイプに属するかのデータである
「ノードタイプ」、実行状態によって変化する値である
「ノードの値」、実行しているノードが管理するプログ
ラムデータの内部コードの読出し位置の情報である「読
出しポインタ」、読出しの終わりを示す情報である「読
出し終了ポインタ」、コピーされたプログラムのデータ
である「プログラムテーブルへのポインタ」などのポイ
ンタがある。
【0027】また、実行ノード間をつなぐリンクには、
この実行ノードが管理するプログラムを呼出したプログ
ラムの実行ノードへのリンクである「上位ノードへのリ
ンク」、ノードの実行が条件付である場合(例えばIF
文のような)に条件を検査するノードへのリンクである
「参照ノードへのリンク」、内部コードを解析してプロ
グラムを呼出した際に作られた実行ノードへのリンクで
ある「実行ノードリンク」、実行ノードリンクリストの
中で現在実行中の実行ノードを指すリンクである「アク
ティヴな下位ノードへのリンク」の4つのものがある。
【0028】(コンパイルされたUITプログラム)コ
ンパイルされたUITプログラムは、UITプログラム
管理データとしてメモリに格納される。パソコンではヒ
ープ領域に、NC上ではヒープ或いはバックアップメモ
リの一部に確保される領域がUITプログラム管理デー
タの格納されるメモリである。
【0029】また、このデータの大きさは「システム設
定ファイル」によって指定され、ロード前にこのファイ
ルを読み必要な領域を確保する。更に実行時には、実行
データがメモリ上に展開されそれに基づいて実行が進
む。このメモリ領域は、パソコンではプログラム管理領
域と同じヒープ領域に確保され、NCにおいてもヒープ
領域に確保される。
【0030】なお、一般的にはプログラム管理データは
確保された領域に全てのデータが格納されるわけではな
く、一部のデータその外側の領域に格納される。NC装
置の場合、UITプログラム用にメモリ領域が装置内に
設けられており、その中にプログラム管理データ領域を
確保するため、プログラム管理データ以外のデータにつ
いてもUITプログラム用の領域に格納するようにす
る。また、NC装置の場合は、プログラム管理データが
バックアップメモリにあるため、システムが終了しても
クリアされず、次の実行時にロードの必要はない。
【0031】(必要ファイル)ここで、UITシステム
で必要なファイルについて説明する。UOTシステムで
はNCとパソコンで共通に使用できる幾つかのファイル
を用いて、同じプログラム動作できる環境を提供してい
る。UITシステムに必要なファイルは、 (1) UITプログラム (2) UITプログラムリンクファイル (3) システム設定ファイル (4) 実行データファイル(プログラム管理データの
バックアップ)の4つである。
【0032】(1)はUITプログラミング言語で作成
されたアスキー(ASCII)ファイルで、複数のファ
イルに分けてプログラムを記述することができる。 (2)はプログラムをコンパイルする際に必要なファイ
ルで、プログラムファイル名が書かれたASCIIファ
イルである。 (3)はプログラム管理データの領域の大きさ、NCと
の共通領域を定義するためのファイルでこれも、ある書
式で記述するASCIIファイルである。 (4)の実行データファイルは、プログラム管理データ
をバックアップしたもので、これをロードすることによ
ってコンパイルされた時のUITプロクラム管理データ
が再現される。しかし全く同じになるとは限らず、シス
テム設定ファイルによって変わる可能性がある。例え
ば、システム設定ファイルを変更し登録できるプログラ
ムの数を少なくすれば、実行データファイルがロードで
きなくなることも考えられる。これらのファイルは全て
NC装置、パソコンに共通に使えるものである。したが
って、NC、パソコンで特別なことをする必要はなく、
パソコンで開発したプログラムをそのままNCで実行で
きることとなる。
【0033】(動作の概要)次に本発明にかかるマンマ
シンインタフェースシステムの動作の概要についてUI
Tシステム内部のデータ構造と処理を関連づけて説明す
る。最初にインタープリタの動作について説明する。図
7は図2および図3の内容からインタープリタの動作に
関連する部分を取り出して整理したものである。
【0034】インタープリタ43はUITプログラム管
理データ14、システムプログラム36、システムグロ
ーバル33、実行データ44の4つの情報をアクセスし
ながら実行を進める。まずそれぞれの情報がパソコン及
びNCのメモリのどこに割り当てられるかを述べる。U
ITプログラム管理データ14はコンパイラによってメ
モリにロードされたプログラムの情報でUITシステム
のコンパイラ、実行データロード機能によってヒープ領
域に格納される。
【0035】システムプログラム36はUITシステム
が持つライブラリで、インタープリタで取出せるように
データの形で管理されており、パソコンではメモリのコ
ード領域とデータ領域に、NCではROM及びNCシス
テムのワークエリア(メモリ)領域に存在する。
【0036】システムグローバル33はUITシステム
が持つ変数情報の1つでシステム設定ファイルによって
定義されるグローバル変数であり、パソコンではデータ
領域、NCではNCシステムのワークエリア(メモリ)
に格納されている。この領域はNCの場合、NCシステ
ムとのインタフェースともなるデータ領域である。実行
データ44はヒープ領域に展開される。
【0037】インタープリタ43は、与えられたプログ
ラム(メインプログラム)を実行データである実行木の
エントリーにセットし、そのノードの示すプログラムの
コードを読み実行木を成長させていく。そしてその実行
木を辿り、システムプログラムを呼び出す実行ノードを
見つけると、システムプログラムに値を与え実行させ
る。その実行が終わると後戻りをし、次の実行ノードへ
探索を進めるという処理をエントリーの実行ノードの示
すプログラムのコードを全て読み込むまで探索を進め
る。
【0038】(処理の流れ)以上述べてきたシステム構
成を持つUITシステムについての処理の流れを以下に
述べる。この処理はプログラミング、コンパイル、デバ
ッグ、実行の4つのステップからなる。
【0039】プログラミング(STEP1) 本システムで実行可能なプログラムを規定された文法に
従って記述する。文法はほぼC言語に近い形式で、更に
記述の自由度を限定したものであり、次のような形式で
記載される。
【数1】 このプログラム例は、10文字の文字列を10個定義し
たグローバル変数MOJIを、CRT画面上に表示するサブ
プログラムWRITE DISPLAY に与え画面に表示するプログ
ラムである。下線で示した語はキーワードであり、PR
Oはプログラムの定義でプログラムTESTの定義、プログ
ラムWRITE DISPLAY の定義が以下に行われることを示し
ている。プログラム名の後に続く括弧は引数を定義する
もので引数の型、引数名が記述されている。引数は複雑
であってもよく、その場合はそれぞれの間にカンマを付
ける、キーワードINT は整数型の変数を定義するもので
ある。変数定義は定義された場所によってグローバル変
数、ローカル変数となる。キーワードWHILE は次に続く
括弧内の条件が真である間{ }で括られた部分を実行
するという制御命令である。EXITはプログラムの終了を
示すもので、RETURNはサブプログラムの終了を示すキー
ワードである。
【0040】コンパイル(UITシステムデータへの変
換)(STEP2) 作成されたプログラムは、コンパイルされ、UITシス
テムデータへ変換される。変換はキーワードや区切り記
号を頼りに行われる。以下には、上述したプログラムが
変換された様子を示す。プログラムはグローバル変数、
プログラム定義、ローカル変数、プログラムの動作のデ
ータに分割され保存される。 (a)グローバル変数
【表1】 (b)プログラム定義 プログラムTEST
【表2】 プログラムWRITE DISPLAY
【表3】 (c)ローカル変数 c−1.プログラムTEST内のローカル変数
【表4】 c−2.プログラムWRITE DISPLAY 内のローカル変数
(=引数)
【表5】 (d)動作コード d−1.TESTの動作コード
【表6】 d−2.WRITE DISPLAY の実行コード
【表7】 コンパイラでは、例題のプログラムは以上のようなデー
タに変換される。このデータの詳細は以下の章で述べ
る。
【0041】デバッグ(STEP3) プログラムがプログラマの意図どおり正確に作られたな
らば問題はないが、実際に動作させてみると意図どおり
に実行されない場合が多い。そこで本システムでは、プ
ログラムの動作を確認するためのデバッガを用意する。
【0042】実行(STEP4) インタープリタは前述したように、プログラムデータの
情報の実行コードを読出しながら実行データを作成し、
それに従って実行を進めていく。図8に、例示したプロ
グラムの実行された際の全実行データの構造を示す。実
行データは木構造をしており、各枝の際下層はシステム
プログラムを表わすノードであり、途中のノードにはユ
ーザが作成したプログラムを表わすノードと実行の流れ
を制御するノードがある。図8において制御ノードはWH
TLI ノード、条件ノードのみである。実行はこの木構造
を深さ優先で探索していき、制御ノードが現われればそ
のノードの種類に従った実行を行なう。WHTLI ノードの
場合はWHTLI ノードにつながる条件ノードの下位ノード
を実行しその結果真であればWHTLIノードの下位のノー
ドを実行していき、条件ノードが偽になるまで繰り返さ
れる。なお、図8では展開される全てのノードが存在し
ているが、実際にはメモリの節約のため実行済みのノー
ドは削除されるようになっている。
【0043】(内部コード)次に、プログラムがシステ
ムにロードされると変数及び定数のデータ情報はテーブ
ルの形式で格納され、動作を表わす処理の部分はプログ
ラムテーブル及び変数、定数テーブルの情報を基に内部
コードに変換される。ここではこの内部コードについて
説明する。まず、内部コードの基本構造は、図9に示さ
れるように、コードタイプ1バイト、セグメントコード
2バイト、オフセットコード2バイトの計5バイトのコ
ードによって表わされる。
【0044】内部コードには以下に挙げる種類のものが
ある。 a 変数、定数等を示すコード これはコードが生成される段階で既に作られている変
数、定数テーブルの中の指定するものの位置を示すもの
であり、演算、プログラム呼出し等に必要となる変数、
定数を表現したコードである。変数、定数コードは図1
0のようにコードタイプにNUMBまたはCHARの変
数の型が、セグメントに変数あるいは定数の位置が記述
される。この位置はunsigned shortの0
h〜FFFFh(65535)の間にプログラムコード
と合わせ割り振られている。オフセットは変数が配列の
場合に変数バッファの位置を示す変数あるいは定数のセ
グメントと同様なコードが記述される。 b プログラム呼出しのためのプログラムコード これは呼び出すプログラムのプログラムテーブルでの位
置を示すものであり、プログラム呼出しのキーとなる。
プログラムコードは図11に示すように、タイプはNO
RMAL、セグメントはプログラムテーブルの位置、オ
フセットは0である。変数、定数コードと同様にプログ
ラム位置は0h〜FFFFhの間に割り付けられてい
る。プログラム呼出しは、このプログラムコードと引数
を示す変数、定数コードによって行なわれる。 c プログラム実行の流れを制御するための特殊コード これは条件分岐や繰り返し等の流れを制御する特殊なコ
ードである。特殊コードには、 条件分岐コード(IF) 条件多分岐コード(SWITCH、CASE) 繰り返しコード(WHILE) がある。
【0045】条件分岐コードには、条件分岐であること
を表わす“IF”コード、条件が真であったとき実行さ
れる実行コード群を表わす“THEN”コード、偽であ
ったとき実行される実行コード群を表わす“ELSE”
コードがある。IFコードは図12に示されるように、
タイプにIFがセグメントには条件文のコード数が記述
されオフセットには0が記述されている。このコードの
後にはIFコードに記述されている条件文のコード数だ
け条件文が記述される。THENコードは図13に示さ
れるように、タイプにTHENが、セグメントには真の
とき実行されるコード群が、実行コード数だけ記述され
る。ELSEコードは図14に示されるように、タイプ
にELSEが、セグメントには偽のとき実行されるコー
ド群が、実行コード数だけ記述される。条件多分岐は値
によって幾つかの飛び先へ実行を移すことを表わすコー
ドである。条件多分岐コードには、条件多分岐コード
“SWITCH“、飛び先となる場所を表わす“CAS
E”コードがある。SWITCHコードは図15に示さ
れるように、タイプにSWITCHが記述され、セグメ
ント、オフセットには0が記述される。CASEコード
は図16に示されるように、タイプにCASE、セグメ
ントに実行コードの数、オフセットに0が記述されてい
る。このコードの後には飛んでくる条件である値を示す
定数コード、その後には実行コード数だけ実行されるコ
ード群が記述される。繰り返しコード“WHILE”
は、ある範囲の実行文をある条件を満たしている間実行
を繰り返すということを表わすコードである。図17に
示されるように、タイプにWHILE、セグメントに条
件文のコード数、オフセットに実行コード数が記述され
ている。このコードの後には条件文コード数分だけの条
件文のコードが、実行コード数分だけの実行を行なうコ
ード群が記述される。
【0046】(インタープリタの詳細動作説明)以上説
明した内部コードを用いて実行木への変換、実行を行う
インタープリタの動作について、さらに詳細に説明す
る。インタープリタの動作が開始される実行木の状態
と、インタープリタの動作が正常終了する実行木の状態
を以下のように定義する。 ・初期状態 実行木のエントリーが作られ、その下位にメインプログ
ラムのタイプを持つ実行ノードがある状態である。この
状態では実行ポインタはメインプログラムノードにあ
る。 ・終了状態 メインプログラムノードのプログラムコードの読み出し
が全て終了した状態である。なお、正常終了以外にはプ
ログラムによる強制終了やエラーによる終了がある。
【0047】インタープリタの処理としては、次のよう
な動作を行う。 (i) 内部コードの読出し 実行ノードのプログラムデータの内部コードを、読み出
すことである。この読み出したコードはどのような実行
ノードを作るかという指令である。
【0048】 (ii) 内部コードに基づいた実行ブロックの作成 (i) のステップで読み出したコードに基づき実行ノード
から成る実行ブロックを作成し、プログラムデータより
必要なデータをコピーあるいはポインタの接続を行な
う。実行ノードにあるプログラムの情報は、不変である
プログラムの名、内部コード、内部コード長等のデータ
はプログラムデータを直接参照するのでポインタ、実行
に伴い変化する変数等のデータはコピーする。これは同
じプログラムが同時に使用された場合に対応できるよう
にするためである。
【0049】 (iii) 実行ブロックの種類毎に異なる実行ノード探索 作成された実行ブロックをブロック毎に異なるルールに
従って実行ノードを移動し、そのノードの情報に従って
次のノードへ移動する動作、すなわち探索を行なう。
【0050】(iv) システムプログラムの実行 機械語に翻訳されているシステムプログラムを実行す
る。実行木はシステムプログラムの実行ノードを末端と
する木構造であり、実行はこの実行木を探索し初期状態
からスタートしゴールである終了状態にたどり着くこと
である。
【0051】(v) 探索の中断 実行の中断を行なうものとして準備したBREAK、R
ETURN、EXITの処理を行なうことである。
【0052】(vi) 実行を終了したノードの処理 実行が終了した実行ノードをその下位のノードを含め削
除することである。実行ノードの作成や削除はワークエ
リアの節約のために行なうものである
【0053】(vii) エラー処理 実行中に起こった異常事態に対処することである。 (内部コードの読出しとブロックの作成)内部コードは
キーとなるコードとその他のコードの組み合わせで格納
されており、数及び内容はキーとなるコード毎に異な
り、それは実行ブロック種類に対応している。複数の実
行ノードで構成されるブロック作成の処理は、前述した
ように、インタープリタからサブルーチンとして呼ばれ
る。以下に、ブロック作成処理の流れについて説明す
る。
【0054】(viii) コード読出し位置の管理 実行ノードを作成するためのコード読み出しに関するデ
ータは、各実行ノードの「読出し開始位置(read−
st)」、「読出し位置(read−p)」、「読出し
終了位置(read−end)」によって管理されてい
る。コードはプログラム呼出しノード以外にはないが、
この読出し位置に関するデータは全てのノードが持って
いる。実行ノードの作成はブロック単位に行なわれる
が、コードの読み出しもブロック単位に行なわれる。基
本的にコードは自分に直接リンクする下位ノードの作成
のためにあり、下位のノードがブロックのエントリーで
ある下位にノードを持つものであれば、コードの管理は
そのエントリーのノードが行なう。
【0055】図18のようなプログラム構造を有してい
たとし、プログラム呼出しノードaがコードを読出し点
線で囲まれたブロックを作成した場合、コード管理は図
19のように行われる。図19に示されたbのノードは
下位に実行ノードを持つサブブロックのエントリーであ
る(CASE−NODE、THEN−NODE、ELS
E−NODE)。コード読出しデータは自分にリンクす
る下位のノードを再現するために与えられるものである
ため、aはbのブロックができると読出し位置をbのブ
ロックの最後の位置(図19中では位置x)まで進め
る。bブロックに対する下位のノードが全て作成されて
いなくてもこのブロックに関するコード読出しは位置x
で終わる。下位のノードc,d,eはブロックbに関し
て始点から終点までの範囲内で管理されることになる。
インタープリタの行うその他の処理としては次のような
ものがある。
【0056】(xi) 下位ノードの削除 ノードの削除は、サブプログラムの終了時、THEN−
NODE、ELSE−NODE、CASE−NODEの
実行終了時にのみ、その下位のノードが削除される。そ
して削除されたノードはいつでも再現できるように、コ
ードの読出しデータを初期化する。ノード削除処理につ
いては実行木管理ルーチンを参照。
【0057】 (x) ノードの作成及びプログラムデータのセット コードのセグメントアドレスからユーザ或いは、システ
ムのプログラム番号を取出し、プログラムテーブルのポ
インタを取出す。この情報から実行ノードを作成しプロ
グラムデータを実行領域に展開する。
【0058】(xi) 条件ブロックの作成 条件ブロックのエントリーは、下位のプログラム呼出し
ノードを論理和(OR)で結合するか、論理積(AN
D)で結合するかによって異なるタイプのものがある。
このブロックはエントリーの下位実行ノードを1つずつ
実行し、ANDのときは1つでも偽の値のノードがあれ
ば即座に条件ブロックの値を偽として実行を終了する。
ORのときは1つでも真の実行ノードがあれば即座に条
件ブロックの値を真として実行を終了する。
【0059】(プログラムテーブルの役割)ここで、プ
ログラムテーブルの役割について説明する。プログラム
テーブルは、そのコピーが実行データとして実行木のノ
ードとして実行データ領域に展開されている。したがっ
て、実行の開始時には、まずメインプログラムが実行木
の一番上に実行ノードとして作成されます。メインプロ
グラムは、特別な書式を用いてプログラムコード中に記
述される(例えばC言語ではmain(){…}の様に)ので
はなく実行時に指定される。すなわち、NC装置の各種
パラメータが格納されているテーブルにパラメータの1
つとして書かかれるものである。指定されているメイン
プログラムはプログラムテーブルのデータを元に作られ
るもので、図20に示されるように、上位ノードへのリ
ンク、ノードタイプ等の通常のプログラムノードとして
作成される。また、プログラムノードにはプログラムテ
ーブルの対応するプログラムデータのポインタがセット
されており、このメインプログラムの実行はプログラム
テーブルの実行コード(内部コード)を読み出すことに
より行われる。最初、実行ポインタはメインプログラム
を示す表示ノードにセットされる。インタープリンタの
実行は、この実行ポインタがあるノードに対して行われ
る。インタープリンタは実行ポインタのあるノードの示
す対応するプログラムデータへのポインタを見て、その
先にあるプログラムデータの実行コードを取出す。そし
て、実行ノードのうち読みだし位置のコードを読み、図
9と同様の形式のコードの種類によって実行ノードから
なる実行ブロックを作成する。例えばプログラム呼出し
を示すコードであった場合は、以下のような動作を行な
う。 (1) 実行ノードを作成し下位ノードとしてメインノード
にリンクする。 (2) コードのセグメントの値から呼び出すプログラムを
プログラムテーブルから取出す。 (3) 実行ノードに各データをセットする。 (4) 取出したプログラムデータに書かれている引き数の
数分だけコードを読み読みだし位置のデータを変更す
る。 (5) コードのセグメントの値から引き数となる変数(ロ
ーカル、グローバル)、定数(値)あるいは陰変数を取
出す。 (6)(5)で取出したものが配列の場合、配列の大きさを超
えたもの指していないかをチェックする。超えていれば
エラーとして強制的に実行を終了する。 (7) 引数をセットし実行ポインタを作成したノードへ移
す。 (8) 実行ポインタのあるノードのコードを読む。このよ
うな動作により、図21に示すように呼び出されたプロ
グラムノードに実行ポインタがセットされる。図21に
示すように、実行ポインタが「読みだし終了位置」に等
しくなったときにはノードの実行は終了してノードは消
去され、図22に示すように、実行ポインタは上位の実
行ノードへ移る。なお、複数の実行ノードからなる実行
ブロックの場合は実行ブロックが消去される。なお、コ
ードにはこのプログラム呼び出しコードの他に図11か
ら図17までに示した形式のものがあり、それぞれの実
行ノードからなる実行ブロックが作成される。
【0060】(カスタマイズの実例)本発明にかかるU
ITシステムを用いたカスタマイズとしては以下に示す
ようないくつかの種類がある。 (1) ROMに作り込まれている機能の一部がUITプロ
グラムで作成されておりその部分がカスタマイズ可能と
なっている場合。ROMに作り込まれているNC装置の
操作画面等の機能のうち、ユーザ毎に変更したい部分を
UITプログラムで作成するような場合に該当し、RO
Mプログラム中に固定のメインプログラムが実行される
ように記述されていることからこのメインプログラムを
変更することによりカスタマイズ可能となる。 (2) NC装置立ち上げ時にUITプログラムが実行され
UITプログラムがキーを受けROMに作り込まれた機
能を呼び出す場合。全ての操作画面及び入力画面等の画
面コントロールをUITプログラムで管理するもので、
ユーザが必要な画面だけをユーザの要求で使用できるよ
うにカスタマイズするものである。 (3) ROMに作り込まれた機能部から呼び出されデータ
入力画面等を作成する場合。NC装置が搭載される機械
特有の画面を作る場合で、パラメータ等にメインプログ
ラム名を記述し、NC装置の1つの画面で加工プログラ
ムの実行機能を実現するよう、対話形式で作成する。す
なわち、画面に表示された絵を参考にして、数字キーで
値を入力することにより、加工プログラムを加工プログ
ラムファイルに出力することができるようになり、絵の
表示、キー入力、ファイルへの出力を、UITプログラ
ムで作成することになる。以上のような構成により、N
C装置が有している機能、たとえば表示機能のうち、ユ
ーザが良く使う機能を使いやすいキーに自由に割り当て
るようなカスタマイズが可能となる。そして、NC装置
内にマンマシンインタフェースシステム全体を持つこと
ができるようになるため、障害が発生したときユーザの
工場内において容易に対処することができる。
【0061】
【発明の効果】このように、本発明によれば、NC装置
のマンマシンインタフェース内にユーザの作成したカス
タマイズに関するプログラム内容を解析し、チェックし
て内部コードを発生するコンパイラおよびこの内部コー
ドにしたがってプログラムの実行を行うインタープリタ
を備えているので、NC装置の機能をユーザの要求に合
わせてカスタマイズできることが可能になる。
【図面の簡単な説明】
【図1】本発明にかかるNC装置のマンマシンインタフ
ェース装置のカスタマイズ装置に関する部分の構成を示
すシステム構成図。
【図2】図1のカスタマイズ装置を実現するハードウェ
ア構成図。
【図3】本発明にかかるマンマシンインタフェース装置
の構成図。
【図4】本発明にかかるカスタマイズ装置を含むマンマ
シンインタフェース装置の構成図。
【図5】本発明で使用されるプログラムが展開されるデ
ータテーブルを示す説明図。
【図6】プログラムの実行を管理するデータの複数階層
をなす木構造を示す説明図。
【図7】インタープリタの動作の説明図。
【図8】例示したプログラムの実行された際の全実行デ
ータの構造を示す説明図。
【図9】内部コードの基本構造を示す説明図。
【図10】変数、定数コードを示す説明図。
【図11】プログラム呼出しのためのプログラムコード
を示す説明図。
【図12】IFコードの説明図。
【図13】THENコードの説明図。
【図14】ELSEコードの説明図。
【図15】SWITCHコードの説明図。
【図16】CASEコードの説明図。
【図17】WHILEコードの説明図。
【図18】プログラム構造の一例を示す説明図。
【図19】コード管理の様子を示す説明図。
【図20】メインプログラムノードを示す説明図。
【図21】呼び出されたプログラムノードの終了を示す
説明図。
【図22】呼び出されたプログラムノードの終了に伴い
上位のメインプログラムに移行した様子を示す説明図。
【符号の説明】
1 CPU 2 ROM 3 RAM 4 バックアップRAM 5 バス 10 解析部 11 解析/ロード部 12 ユーザプログラム格納部 13 システムプログラム格納部 14 プログラム管理データ格納部 15 プログラム管理データ格納部 20 実行部 21 内部コード解析部 22 実行データロード部 23 実行データ展開部 30 UITシステムデータ格納部 31 NCとのインタフェース 32 グローバル 33 システムグローバル 34 ユーザグローバル 35 ユーザプログラム 36 システムプログラム 37 ローカルデータ 40 コンパイラ 41 プログラムファイル群格納部 42 エディタ 43 インタープリタ 44 実行データ格納部 45 デバッグ用インタープリタ 46 デバッガ 47 デバッグデータ格納部 48 トレースファイル部 49 システム設定部 50 コンフィグレーションファイル格納部 51 バックアップ部 52 バックアップファイル格納部
───────────────────────────────────────────────────── フロントページの続き (72)発明者 松 本 倫 雄 静岡県沼津市大岡2068の3 東芝機械株式 会社沼津事業所内 (72)発明者 加 藤 健 二 静岡県沼津市大岡2068の3 東芝機械株式 会社沼津事業所内

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】NC装置のマンマシンインタフェースのカ
    スタマイズに関するカスタマイズプログラムを受け付け
    てシステムの所定の条件に合致するときにプログラム管
    理データとして出力するコンパイル手段と、 このプログラム管理データを記憶するプログラム管理デ
    ータ記憶手段と、 実行すべきプログラムの内部コードを解析して実行の適
    否を判断する内部コード解析手段と、 実行データ格納手段と、 前記プログラム管理データ記憶手段から出力されたプロ
    グラム管理データを前記内部コード解析手段の出力に基
    づいて実行データとして前記実行データ格納手段に展開
    させるロード手段と、を備えたNC装置のマンマシンイ
    ンタフェース装置。
  2. 【請求項2】前記コンパイル手段は、前記プログラム管
    理データを複数階層からなる木構造として出力するもの
    であることを特徴とするNC装置のマンマシンインタフ
    ェース装置。
JP9671793A 1993-03-31 1993-03-31 Nc装置のマンマシンインタフェース装置 Pending JPH06289919A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP9671793A JPH06289919A (ja) 1993-03-31 1993-03-31 Nc装置のマンマシンインタフェース装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP9671793A JPH06289919A (ja) 1993-03-31 1993-03-31 Nc装置のマンマシンインタフェース装置

Publications (1)

Publication Number Publication Date
JPH06289919A true JPH06289919A (ja) 1994-10-18

Family

ID=14172503

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9671793A Pending JPH06289919A (ja) 1993-03-31 1993-03-31 Nc装置のマンマシンインタフェース装置

Country Status (1)

Country Link
JP (1) JPH06289919A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004503039A (ja) * 2000-06-16 2004-01-29 ハスキー インジェクション モールディング システムズ リミテッド 機械の操作を簡単化する方法
JP2004206550A (ja) * 2002-12-26 2004-07-22 Fanuc Ltd 数値制御装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004503039A (ja) * 2000-06-16 2004-01-29 ハスキー インジェクション モールディング システムズ リミテッド 機械の操作を簡単化する方法
JP2004206550A (ja) * 2002-12-26 2004-07-22 Fanuc Ltd 数値制御装置

Similar Documents

Publication Publication Date Title
EP0785510B1 (en) Program debugging system for debugging a program having a graphical user interface
US8091075B2 (en) Method and apparatus for breakpoint analysis of computer programming code using unexpected code path conditions
US5182806A (en) Incremental compiler for source-code development system
US5325531A (en) Compiler using clean lines table with entries indicating unchanged text lines for incrementally compiling only changed source text lines
US5987250A (en) Transparent instrumentation for computer program behavior analysis
US5313387A (en) Re-execution of edit-compile-run cycles for changed lines of source code, with storage of associated data in buffers
US5854932A (en) Compiler and method for avoiding unnecessary recompilation
US5170465A (en) Incremental-scanning compiler for source-code development system
US5193191A (en) Incremental linking in source-code development system
US5201050A (en) Line-skip compiler for source-code development system
WO2020134633A1 (zh) 一种应用程序的开发方法、装置及集成开发工具
US6177942B1 (en) Part development system
US7016807B2 (en) Device and method for monitoring a program execution
US20230004368A1 (en) Multi-chip compatible compiling method and device
AU4098700A (en) Circuit arrangement for measuring the resistances of a pressure-sensitive resistance mat
US6345387B1 (en) Coherent object system architecture
US7765535B2 (en) Software development tool program
CN112882718A (zh) 编译处理方法、装置、设备及存储介质
US10839124B1 (en) Interactive compilation of software to a hardware language to satisfy formal verification constraints
US7624381B1 (en) Portable detection of start and completion of object construction
AU638999B2 (en) Incremental compiler for source-code development system
KR100417655B1 (ko) 최적화과정을참조하면서동작검증을행하도록디버그정보를생성하는디버그정보생성장치및프로그래머가최적화과정을의식하면서동작검증을할수있는디버그장치로이루어지는프로그램개발시스템
JPH06289919A (ja) Nc装置のマンマシンインタフェース装置
CN114356783A (zh) 单元测试代码自动生成方法、装置、存储介质及设备
AU760395B2 (en) Program reproducing method and device, and medium on which program for program reproduction recording