JP2006018697A - スクリプト言語で記述されたプログラムを呼出し可能な数値制御装置 - Google Patents

スクリプト言語で記述されたプログラムを呼出し可能な数値制御装置 Download PDF

Info

Publication number
JP2006018697A
JP2006018697A JP2004197377A JP2004197377A JP2006018697A JP 2006018697 A JP2006018697 A JP 2006018697A JP 2004197377 A JP2004197377 A JP 2004197377A JP 2004197377 A JP2004197377 A JP 2004197377A JP 2006018697 A JP2006018697 A JP 2006018697A
Authority
JP
Japan
Prior art keywords
script
program
machining program
numerical control
machining
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
JP2004197377A
Other languages
English (en)
Other versions
JP4388427B2 (ja
Inventor
Hiroshi Oyama
博司 大山
Osamu Kuzutani
修 葛谷
Yukinori Otsubo
幸則 大坪
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.)
Okuma Corp
Original Assignee
Okuma Corp
Okuma Machinery Works 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 Okuma Corp, Okuma Machinery Works Ltd filed Critical Okuma Corp
Priority to JP2004197377A priority Critical patent/JP4388427B2/ja
Priority to DE102005028943A priority patent/DE102005028943A1/de
Priority to US11/172,487 priority patent/US7561927B2/en
Publication of JP2006018697A publication Critical patent/JP2006018697A/ja
Application granted granted Critical
Publication of JP4388427B2 publication Critical patent/JP4388427B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/4155Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by programme execution, i.e. part programme or machine function execution, e.g. selection of a programme
    • 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/36019Using interpreted descriptive commands giving G-codes
    • 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/36032Script, interpreted language

Abstract

【課題】数値制御装置において、実行される加工プログラムの中からスクリプト言語で記述されたプログラムを呼出して実行できるようにする。
【解決手段】加工プログラム1を解釈して実行するプログラム解釈部3は、スクリプトプログラムの設定やロード、実行指示などのために用意された所定のニーモニック(スクリプト用ニーモニック)を認識可能であり、加工プログラム1の解釈実行中にスクリプト用ニーモニックを認識すると、そのニーモニックのパラメータに示されたスクリプトプログラム(インスタンス)の実行をスクリプトエンジン部12に指示する。スクリプトエンジン部12は、指示されたスクリプトプログラムを実行する。
【選択図】図1

Description

本発明は、加工プログラムに基づきサーボ装置などを駆動して機械制御を行う数値制御装置に関する。
今日パーソナルコンピュータ(PC)の普及とともにPCベース数値制御装置(NC)が普及し始めている。PCは生産管理、設計・製図、自動プログラミングなどのアプリケーションが豊富にそろい、加工現場におけるIT化を推し進める上で有効である。しかし、これらのアプリケーションがPCベースNC上で利用できることは、単にPCとNCを同居させたに過ぎず、PCとNCを有機的に結合したとは言えなかった。
一方、PCにはエンドユーザーによって容易に自動化機能を盛り込むための手段としてスクリプトエンジン機能が提供されている。これは、スクリプト言語というNCの加工プログラムと同様に平易な文法で、プログラミングに関する特別な知識がなくてもプログラムを作成して実行できるものである。この技術はWEBブラウザ機能やWEBサーバー機能を拡張する目的で用いられることが多いが、それ以外にも表計算アプリケーションの内部で使用したり、独立したアプリケーションを作成したりすることができ、専門のプログラマーでなくても容易に作業の自動化を図ることができる。
本発明は、上述の問題および現状に鑑みてなされたもので、実行される加工プログラムの中からスクリプト言語で記述されたプログラムを呼出して実行できるようにすることを目的とする。
本発明は、加工プログラムに基づきサーボ装置などを駆動して機械制御を行う数値制御装置において、加工プログラムを実行する加工プログラム実行手段と、加工プログラム実行手段による加工プログラムの実行の際に、加工プログラムからスクリプト言語で記述されたスクリプトプログラムを呼出すスクリプト呼出手段と、を備えることを特徴とする数値制御装置を提供する。
本発明の好適な態様では、前記スクリプト呼出手段は、前記加工プログラム実行手段の一部として実装され、一以上の所定のスクリプト命令を認識可能であり、前記加工プログラムの実行の際にその加工プログラム中からスクリプト命令を認識した場合に、認識したそのスクリプト命令に付随するパラメータが示すスクリプトプログラムを呼出す。
更に好適な態様では、前記一以上の所定のスクリプト命令の中には、スクリプトプログラムを呼出す直前のブロックの完了を待たずにそのスクリプトプログラムの呼出しを開始する非同期開始モードの命令、及び、スクリプトプログラムの呼出しが終了する前にそのスクリプトプログラムを呼出すブロックに後続のブロックの動作を開始する非同期再開モードの命令、のうちの少なくとも一方が含まれる。
別の好適な態様では、前記スクリプト呼出手段は、前記加工プログラム実行手段の一部として実装され、スクリプトプログラムの開始を示す開始タグ及び終了を示す終了タグを認識可能であり、前記加工プログラムの実行の際にその加工プログラムから開始タグを検出した場合、その開始タグから次の終了タグまでの記述をスクリプトプログラムとして抽出し、抽出したそのスクリプトプログラムを呼出す。
別の好適な態様では、前記スクリプト呼出手段により呼出されたスクリプトプログラムを実行するスクリプトエンジン手段が、前記加工プログラムを記述する言語で記述された部分プログラムの実行を前記加工プログラム実行手段に指示する手段を備える。
別の好適な態様では、スクリプトプログラムを実行するスクリプトエンジン手段を、前記加工プログラム実行手段とは別に設けることを特徴とする。
更に好適な態様では、前記スクリプトエンジン手段は複数のスクリプトエンジンインスタンスを生成可能であり、1つの加工プログラムにおいて複数の異なる種類のスクリプト言語で記述されたスクリプトプログラムの呼出しを可能とすることを特徴とする。
更に好適な態様では、前記加工プログラム実行手段はリアルタイムオペレーティングシステム上で動作し、前記スクリプトエンジン手段は汎用オペレーティングシステム上で動作することを特徴とする。
更に好適な態様では、コンポーネント機構を用いてスクリプトプログラムからリアルタイムオペレーティングシステム上で動作する前記加工プログラム実行手段の機能の呼出しを可能とすることを特徴とする。
また、本発明の別の好適な態様では、数値制御装置は、前記スクリプト呼出手段に呼出されたスクリプトプログラムを実行するスクリプトエンジン手段を有し、前記スクリプト呼出手段は、イベントが発生したときに動作するスクリプトプログラムを登録するためのイベント駆動スクリプト命令を認識可能であり、前記加工プログラム中からイベント駆動スクリプト命令を認識すると、認識したイベント駆動スクリプト命令のパラメータに指定されたイベント及びスクリプトプログラムを認識し、認識したスクリプトプログラムを、認識したイベントを実行条件に指定して呼出し、前記スクリプトエンジン手段は、呼出されたスクリプトプログラムに対して実行条件とするイベントが指定されている場合は、そのイベントが発生したことを示す通知を受けた場合に、そのスクリプトプログラムを実行する。
また本発明は、加工プログラムに基づきサーボ装置などを駆動して機械制御を行う数値制御装置において、イベントが発生したときに動作するスクリプト言語で記述されたスクリプトプログラムを指定可能とし、当該イベントが発生したときには、指定されたスクリプトプログラムを実行することを特徴とする数値制御装置を提供する。
本発明の加工プログラムからスクリプト言語記述されたプログラムを呼出し可能とした数値制御装置では、メールを送信する機能や、データベースにアクセスしてデータ更新する機能、グラフィックスを画面に表示する機能、さらには数値制御装置の提供する各種の機能にアクセスする機能など、およそスクリプト言語によりなし得るほとんどの機能を実現可能となる。これらの機能は従来の加工プログラムでは実行できなかったものなので、本発明によれば、数値制御装置の機能を飛躍的に向上させることができる。また、スクリプト言語の習得は容易であるので、多くの人が容易に数値制御装置をカスタマイズ可能になし得るという効果が得られる。
好適な態様では、スクリプトプログラムの開始、終了を加工プログラムの前後のブロックの終了、開始と同期しても非同期にも行うことができ、タイミングが問題になる場合と、そうではなくてすばやく並列に動かしたい場合の両方を実現できるという効果を有する。
別の好適な態様では、スクリプト言語記述されたプログラムを、タグによって区切って加工プログラムに混ぜて記述できるから、加工プログラムとスクリプトプログラムの動作の流れがわかりやすくなるという効果がある。
別の好適な態様では、スクリプトプログラムの中から加工プログラムを記述するための言語(例えばGコード)で記述されたブロックを実行可能であるから、スクリプト言語記述されたプログラムにより算出された文字列を加工プログラム用の言語で記述した部分プログラムとして実行できるため、加工プログラムの進行状況に応じて加工プログラムを自動生成し実行可能とするという効果がある。
別の好適な態様では加工プログラム解釈部とスクリプトエンジン部とに分けて実現するから、従来の加工プログラム解釈部を大幅に変更することなくスクリプト言語記述されたプログラムの呼出しを可能とすることができるという効果がある。
別の好適な態様では、スクリプトエンジン部は複数のスクリプトエンジンインスタンスを生成可能とするから、サブプログラムを含めた1つの加工プログラムで異なるスクリプト言語を混用可能となるという効果がある。
別の好適な態様では、イベントに応じたスクリプトプログラムを指定可能とするから、イベントに応じた動作、例えばイベントの発生をデータベースに登録するなどのスクリプトプログラムを実行させることが可能となるという効果がある。
図1は、本発明による数値制御装置のブロック図である。加工プログラム1は、この数値制御装置の制御対象、例えば加工機に設けられた各種のサーボ装置、の動作制御のためのプログラムである。加工プログラム1は、ブロックごとにプログラム読取り部2により読取られて、プログラム解釈部3に送られる。プログラム解釈部3は、受け取ったプログラムを解釈し、実行する。この加工プログラムの解釈、実行の中で、制御のための関数やシーケンスが適宜呼出される。関数発生部4は、プログラム解釈部3の解釈結果に基づいて関数発生を行い、この発生された関数に従いサーボ駆動部5がサーボモータ6を駆動することで、図示しない機械を動作させる。位置検出器7はサーボモータ6の回転状態を検出し、それをサーボ駆動部5にフィードバックすることで、サーボ制御を可能としている。PLC(プログラマブル・ロジック・コントロール)制御部8はプログラム解釈部3のプログラム解釈、実行において呼出されたシーケンスに基づきPLC制御を行い、周辺機器駆動部9は主軸や工具交換装置などの周辺機器10を駆動する。
ここまでに説明した加工プログラム1の処理機構は、従来から存在するPCベースNCの処理機構と同様のものである。以下、従来のPCベースNCにはない本実施形態の機構を説明する。
スクリプトエンジン部12はスクリプト言語で記述されたプログラム(以下、簡単のため、適宜「スクリプトプログラム」と略称する)11をロードして実行する。このスクリプトプログラムの実行により、例えば図示しないデータベースソフトウェアやメール配信ソフトウェアなどが駆動される。
ここで、図2を参照して、本実施形態の数値制御装置が処理可能な加工プログラム例を説明する。例示したのは、加工プログラムの記述に従来よりよく利用されているGコードに対し、スクリプトエンジン部12に対する実行要求する命令のためのニーモニックとして、SCRIPT(スクリプト言語指定),SLOAD(スクリプトプログラムのロード),SCALL(スクリプトの呼出し),SCALLS(「非同期開始」のスクリプトの呼出し),SCALLE(「非同期再開」のスクリプトの呼出し),SEVENT(イベント定義)などのニーモニックを追加したものである。なお、「非同期開始」とは、当該ニーモニックにより指定されたスクリプト指令を、加工プログラム中の直前の処理(ブロック)とは無関係に(すなわち非同期的に)開始するモードを意味する。すなわち、加工プログラム中に非同期開始のスクリプト指令がある場合、そのスクリプト指令は、直前のブロックの実行の完了を待たずに処理が開始される。逆に非同期開始でないスクリプト指令(「同期開始」モードのスクリプト指令)は、前のブロックの実行完了を待って処理を開始する。
また、「非同期再開」とは、当該ニーモニックにより指定されたスクリプト指令の実行と非同期的に、そのスクリプト指令の後のブロックの動作を開始するモードである。すなわち、加工プログラム中に非同期再開のスクリプト指令がある場合は、そのスクリプト指令の実行が完了するのを待たずに、後続のブロックの処理が開始される。逆に非同期再開でないスクリプト指令(「同期再開」スクリプト指令)の場合、後続のブロックの処理は、そのスクリプト指令の実行の終了を待って開始される。
これらのニーモニックは以下の呼出し形式である。
SCRIPT [言語名],[エンジンインスタンス名]
SLOAD [スクリプトファイル名],[エンジンインスタンス名]
SCALL [関数名],[エンジンインスタンス名]
SCALLS [関数名],[エンジンインスタンス名]
SCALLE [関数名],[エンジンインスタンス名]
SEVENT [イベント種類],[関数名],[エンジンインスタンス名]
ここで「言語名」はVBScript,JScriptなどのプログラミング言語(スクリプト言語)名である。VBScriptは、米国Microsoft社が提供するMicrosoft(登録商標)Visual Basic(登録商標)Script Editionの略称である。また、JScriptは、米国マイクロソフト社が開発したJava(登録商標)Script互換のスクリプト言語である。
「エンジンインスタンス名」は、スクリプトプログラムを実行するスクリプトエンジンインスタンスの名称である。すなわち、本実施形態のスクリプトエンジン部12は、個々のスクリプトプログラムの処理ごとにスクリプトエンジンインスタンスを生成し、このインスタンスにスクリプト処理を実行させる。このように処理ごとにスクリプトエンジンインスタンスを生成する構成を採ることで、1つの加工プログラムにおいて異なる言語を利用可能となるとともに、メインプログラム中から呼出されるスクリプトプログラムとサブプログラムから呼出されるスクリプトプログラムにおいて名前衝突が起こらないようにエンジンインスタンスを切換えて使用できる。
「関数名」にはスクリプト言語記述されたプログラムの関数名あるいはサブプログラム名を指定する。「イベント種類」には、加工プログラムの選択(PSELECT)、起動(START)、終了(END)、アラーム発生(ALARM)、NCリセット(RESET)など、イベント検出部14が検出するイベントの種類を指定する。
以下、プログラム解釈部3の動作について、図5および図6のフローチャートに基づき、図2の加工プログラムの例を交えながら説明する。
まず図2の加工プログラムの例について概説する。このプログラムは、シーケンス名N001のブロックでVBScriptのスクリプトエンジンインスタンス(インスタンス名”VBSEngine”)を生成し、次のN002でそのインスタンスに"sendmail.vbs"というスクリプトプログラムをロードする。"sendmail.vbs"は、メール送信のためのスクリプトであり、その記述例を図4に示す。次にN003でJScriptのスクリプトエンジンインスタンスJSEngineを生成し、N004でそのインスタンスに”scriptlibrary.js”というスクリプトをロードする。”scriptlibrary.js”は、数値制御加工の際に実行したい各種の処理を示す関数群を記述したスクリプトプログラムであり、そのコード記述例を図3に例示する。次にN005では、アラーム発生イベントが起きたときに実行する関数”ALARMMAIL”と、これを実行するスクリプトエンジンインスタンス”VBSEngine”(これはsendmail.vbsを実行するエンジンである)を登録する。次にN006,N007では工具移動や工具交換などのNC指令が実行され、その次のN008では、N007における工具交換の情報を記録するべく、スクリプトエンジンインスタンスJSEngineが呼出され、このエンジンにて関数”RECORDTOOL”が実行される。次に、N009,N010,N011では主軸回転、早送りなどのNC指令が実行され、N012にてJSEngineを呼出すことで、そのNC指令の実行による送り速度を計算し、データベースに記録する。そしてN013で切削送り指令を実行する。またN014では、図3に例示したスクリプトプログラム”scriptlibrary.js”中の関数”DOFIXEDCYCLE”を呼出し、この関数が示す固定サイクルの切削動作制御を行わせる。そして、N075でメール送信スクリプトのエンジンVBSEngineを呼出して加工プログラムの終了を示すメールを送信させ、N076の終了指令にて加工プログラムを終了する。
このような加工プログラムを実行するため、プログラム解釈部3は、処理を開始すると(ステップS1)、始めにプログラム読取り部2より加工プログラムの中の1ブロック受取る(ステップS2)。次に受取った1ブロックについて解釈を行う(ステップS3)。するとサブプログラムにより1ブロックの解釈が開始される(ステップS11)。受取ったブロックが、図2のシーケンス名N006,N010,N013などのブロックのように移動指令であれば(ステップS12)、終点位置、移動速度、直線、円弧などの関数発生モードを算出し(ステップS13)、これらの情報を関数発生部4へ送出し(ステップS14)、関数を発生させる。関数発生部4は速度指令信号をサーボ駆動部5に送出する。サーボ駆動部5は速度指令信号に基づきサーボモータ6を指令された速度で動作させるよう、検出器7のフィードバック信号を受けながら制御する。
また、プログラム解釈部3は受取ったブロックごとにプログラムを解釈し、図2のシーケンス名N007,N009などのブロックのように周辺機器に対する指令であれば(ステップS15)、周辺機器動作指令をPLC制御部8へ送出する(ステップS16)。PLC制御部8は、周辺機器駆動部9に対し駆動信号を発し、工具交換装置や主軸などの周辺機器10を駆動する。
さらにプログラム解釈部3は受取ったブロックごとにプログラムを解釈し、図2のシーケンス名N001〜N005,N008,N014,N075のブロックのようにスクリプト指令であれば(ステップS17)、そのスクリプト指令が「非同期開始」かどうかを判定し(ステップS18)、非同期開始でなければ(すなわちこの場合そのスクリプト指令は同期開始である)前ブロックが終了するのを待つ(ステップS19)。そして、前ブロックが終了したら、スクリプトエンジン部12にそのスクリプト指令の実行要求を送出する(ステップS20)。
N075のブロックの場合は、前ブロックの実行完了を待たない非同期開始のSCALLS指令であるので、ステップS19はスキップされる。すなわち、1つ前のN074のブロックの早送り指令が完了することなくスクリプトが実行され、ステップS20へ進む。そしてスクリプトエンジン部12に実行要求を送出する(ステップS20)。
スクリプトエンジン部12にスクリプト指令の実行を要求した後、そのスクリプト指令が非同期再開か否かを判定する(ステップS21)。この判定の結果、非同期再開でなければ、そのスクリプト指令の実行が完了するまで待つ(ステップS22)。これに対し、非同期再開である場合は、スクリプト指令の実行完了を待たずに、ステップS25に進む。例えばN008のブロックは、スクリプトの実行完了を待たない非同期再開のSCALLE指令であるので、ステップS22はスキップされ、ステップS25へ進みこの1ブロックの解釈を終了する。ステップS22にてスクリプトの完了を待つとき(すなわち非同期再開でない場合)は、そのスクリプト自身が完了するまでは後続のブロックは開始されない。
ただし、非同期再開でないスクリプト指令のブロックであっても、そのスクリプト指令が示すスクリプトプログラムの内部から、Gコードで記述されたブロックの実行が指令された場合は、そのスクリプト指令に対応した処理の実行が完了していない場合でも、スクリプトプログラム内部から指令されたそのブロックを実行する。このようなスクリプトプログラム内部からのGコードブロックの呼出しは、ncコンポーネント部13により実現される。
すなわち、ステップS22でスクリプトの実行が完了していないと判定された場合でも、ncコンポーネント部13より1ブロックの実行要求がある場合には(ステップS23)、要求されたその1ブロックの解釈を行う(ステップS24)。この1ブロックの処理は、ステップS11を再帰呼出しすることで実現される。なお、ncコンポーネント部13関連の構成や処理内容については、後で詳しく説明する。
ステップS25にて1ブロックの解釈を終わると、ステップS4へ戻り終了コード(M02)が実行されたかどうかを判定し(ステップS4)、終了していなければステップS2から繰返す。終了していれば、スクリプトエンジン部にも終了指令を発し(ステップS5)、プログラム解釈を終わる(ステップS6)。
なお、以上の説明では簡単のために、軸移動指令、周辺機器動作指令およびスクリプト指令を各ブロックにわけて記述するものとしているが、1つのブロックにこれらを混合して記述できるように変更してもよい。また、ニーモニックや呼出し形式は一例として示したにすぎず、必ずしも上記のものである必要はない。
次に図7のフローチャートに基づきスクリプトエンジン部12の動作について説明する。スクリプトエンジン部12は加工プログラムの解釈開始とともに動作が開始され(ステップS31)、プログラム解釈部3からスクリプト指令があるか(ステップS32)またはイベント検出部14より検出イベントがあるか(ステップS43)を検査する。この検査で、もしプログラム解釈部3のステップS20の実行によるスクリプト指令があれば、プログラム解釈部3よりスクリプト指令を1ブロック受取る(ステップS33)。
受取ったスクリプト指令が”SCRIPT”であれば(ステップS34)、指定された言語名に従ってスクリプトエンジンインスタンスを生成する(ステップS35)。
受取ったスクリプト指令が“SLOAD”であれば(ステップS36)、指定されたスクリプトエンジンインスタンスにスクリプトプログラムをロードする(ステップS37)。
受取ったスクリプト指令が“SCALL”,“SCALLS“,“SCALLE“のいずれかであれば(ステップS38)、指定されたスクリプトエンジンインスタンスで、指定された関数名の関数を呼出し実行する(ステップS39)。なおSCALL,SCALLS,SCALLEの間の動作の差違は、プログラム解釈部3によって達成される。
受取ったスクリプト指令が“SEVENT”であれば(ステップS40)、その指令のパラメータとして指定されているイベントタイプ、指定されたスクリプトエンジンインスタンス、指定された関数名の関数を登録する(ステップS41)。
また受取ったスクリプト指令がステップS5により発せされた終了指令であれば(ステップS42)、終了する(ステップS45)。
またステップS43では、イベント検出部14から、PSELECT,ALARM,START,END,RESETなどの検出対象のイベントが検出されたかどうかを検査して、そのようなイベントが検出された場合は、予めステップS41で登録された情報に基づき、指定されたスクリプトエンジンで、指定された関数を実行させる(ステップS44)。
次に図9に示す第2の加工プログラム例について説明する。図2の加工プログラム例ではスクリプト指令の実行のための各種のニーモニックを導入していたのに対し、この加工プログラム例では、Gコードの加工プログラムの中に混じってスクリプト言語によるプログラムが直接記述されている。このような混合記法を利用すると、図2〜4の加工プログラムとスクリプトプログラムを別に記述した場合に比べ、全体の流れを把握しやすいというメリットがある。
図9のプログラム例では、スクリプト記述の開始がタグ「<?」で、終了がタグ「?>」でそれぞれ示されている。
前述の図2のプログラム例を処理する場合、プログラム解釈部3は、従来のPCベースNCのプログラム解釈部に対し、スクリプト処理のための上述のニーモニックを解釈する機能を付加したものになる。これに対し、図9のプログラム例を処理する場合、プログラム解釈部3は、タグによりスクリプト記述の開始と終了を認識して、その間のスクリプト記述をスクリプトエンジン部12に渡す機能を持つよう、従来のものを機能拡張すればよい。
図8は図9の加工プログラム例を解釈して実行可能な数値制御装置の構成図である。図1の構成要素と同じ働きをするものについては同じ符号を付し、ここでの説明を省略する。同じ名称の構成要素でも働きの異なるものについては異なる符号を付した。
加工プログラム81は図9の加工プログラム例で示したようなGコードのプログラムとスクリプトプログラムが混合して記述された加工プログラムであり、加工プログラム・スクリプトプログラム分別部82により、Gコードとニーモニックからなる加工プログラム一時ファイル83と、スクリプトプログラム一時ファイル84(図11に作成例を示す)に分別される。加工プログラム81中で、開始のタグからそれに対応する終了のタグまでに記述された文字列が、1つのスクリプトプログラム一時ファイル84となる。加工プログラム81中に複数のスクリプトプログラムが記述される場合もあり、その場合にはそれら各スクリプトプログラムがそれぞれ抽出され、一時ファイルとなる。これらのファイルをプログラム読取り部2、スクリプトエンジン部12の入力ファイルとすることで、図1を使って説明した数値制御装置と構成を共通化することができる。
図12のフローチャートは、加工プログラム・スクリプトプログラム分別部82によって加工プログラム81(図9に例示)が、加工プログラム一時ファイル83(図10に例示)とスクリプトプログラム一時ファイル84(図11に例示)に分別する手順を示すものである。
加工プログラム・スクリプトプログラムの分別を開始すると(ステップS51)、加工プログラム一時ファイル83(ここでは”TEMP.NC”という名前)を書込みモードで開き、これを一時ファイルTPFとする(ステップS52)。次にスクリプトプログラム一時ファイル84(ここでは”TEMP.js”という名前)を書込みモードで開き、これを一時スクリプトTSFとする(ステップS53)。
加工プログラム81を1行読み込み、変数stに代入する(ステップS54)。もしstがファイルの終了を示していれば(ステップS55)、分別を終了する(ステップS66)。
stの行頭が”<?”であれば(ステップS56)、スクリプトプログラムの開始を表すのでステップS58からの処理を実行する。そうでなれば、Gコードの加工プログラムであるので、stを加工プログラム一時ファイル83すなわちTPFに書きこみ(ステップS57)、ステップS54より繰返す。
なおステップS56においてstの行頭が”<?”であれば、加工プログラム一時ファイル83すなわちTPFに、”SCRIPT JScript,JSEngine”,“SLOAD TEMP.js,JSEngine”,“SCALL JSFunc0,JSEngine”の3行を書きこむ(ステップS58〜S60)。これは、加工プログラム81中に直接記述されたスクリプトを、図2に例示したスクリプト用のニーモニックを用いた記述と等価な記述に置き換えるための処理である。ここで、スクリプト言語の種類とスクリプトエンジンインスタンス名は、加工プログラム81中のスクリプト記述にしめされているもの(図9の4行目)を用いればよい。関数名JSFunc0は自動生成すればよい。次にスクリプト一時ファイル84すなわちTSFに”function JSFunc0()[“を書きこむ(ステップS61)。これは加工プログラム一時ファイル83中のニーモニックで指定される関数名と、スクリプト一時ファイル84中で記述された実際の関数とを関連づけるためである。そして加工プログラム81より1行の記述を、変数stに読み込む(ステップS62)。stの行頭が”?>”であればスクリプトプログラムの終わりを表すので(ステップS63)、ステップS65へ進む。そうでなければスクリプト一時ファイル84すなわちTSFにstを書込み(ステップS64)、ステップS62から繰返す。スクリプトプログラムの終わりに達したときは、スクリプト一時ファイル84すなわちTSFに関数の終わりを表す”]”を書込み、ステップS54から繰返す。
以上により加工プログラム81は、加工プログラム一時ファイル83とスクリプトプログラム一時ファイル84とに分別され、これらを加工プログラム解釈部3とスクリプトエンジン部12の入力とすることで、図1を使って説明した数値制御装置を利用して、図9に示したGコードとスクリプトプログラムの混合記述した加工プログラムを解釈し実行する数値制御装置が実現できる。
以上の実施例においては、スクリプトプログラムの開始と終了を”<?”,“?>”で表したが、一例に過ぎず他の記号を用いてもよい。またこの図9以下の例では、説明を簡潔に保つために、加工プログラム81にスクリプト記述が一箇所以下、スクリプト言語はJScriptのみ、スクリプトエンジンインスタンは1つだけ、関数定義は禁止などの制約を設けていたが、これらを解除することは自然な拡張であり、本発明の範囲である。
本実施例ではスクリプト言語としてJScript, VBScriptを例として挙げたが、この他にもJava(登録商標)script,Perl,Rubyなどのスクリプト言語を利用してもよいし、UNIX(登録商標)やWindows(登録商標)で利用されるB-shell,C-shellなどと呼ばれるシェルによるシェルスクリプトを用いてもよい。また本発明の実施例では、スクリプトプログラムの引数や戻り値を扱うようにはしていなかったが、それらを扱うようにすることも容易にできる。また、加工プログラムは、例示のような単純なものだけでなく、メインプログラムから1乃至複数のサブプログラムを呼出すようなものも存在するが、メインプログラムとサブプログラムの双方からそれぞれスクリプト言語記述されたプログラムを呼出すようにすることも可能であり、このようなケースも本発明の範囲内である。
図13および図14は、いずれも本発明に係るスクリプト言語で記述されたプログラムを呼出し可能な数値制御装置のハードウェア構成の例である。
図13の構成において、CPU(中央演算装置)101は、ROM102やハードディスク104に記憶された各種プログラムを、RAM103を作業領域として利用しつつ実行する。このプログラム実行により、図1のプログラム読取部2,プログラム解釈部3,関数発生部4,スクリプトエンジン部12,ncコンポーネント部13,イベント検出部14,コモン変数記憶部15が実現される。シーケンス制御部105は、図1のPLC制御部8に対応したものであり、シーケンス制御を実行するプログラマブルコントローラである。グラフィック表示制御部107は、表示装置109への画面表示を制御する回路であり、操作パネルI/F(インタフェース)部111は、操作パネル112上のハードウエアボタンやインジケータなどの制御のためのインタフェース回路である。サーボ制御部113は、図1のサーボ駆動部5に対応するハードウエア回路であり、CPU101からの指令に応じ、位置検出器の検出信号を用いて、サーボモータ114をサーボ制御する。
図13の場合は1つのCPU101によりリアルタイム制御と非リアルタイム制御を同時に実現しようとするものであり、ITRONなどのリアルタイムOS(オペレーティングシステム)と、UNIX(登録商標)やWindows(登録商標)などの汎用OSを組合わせて構成することができる。この場合、リアルタイムOSにおいて図1の部分22(すなわちプログラム読取部2,プログラム解釈部3,関数発生部4,PLC制御部8,ncコンポーネント部13,イベント検出部14,及びコモン変数記憶部15)の演算制御を実現し、汎用OSにおいて図1の部分21(すなわちスクリプトエンジン部12及びncコンポーネント部13)の演算制御を実現するとよい。そうすることでGコードによるプログラム解釈はリアルタイムOSのもとで時間制約に対し安定した動作が期待でき、スクリプト言語記述されたプログラムは汎用OS上の豊富な機能を容易に利用することができ高い利便性が実現される。
図14の例は、数値制御装置を、UNIX(登録商標)やWindows(登録商標)などの汎用OSにより制御される部分120と、ITRONなどのリアルタイムOSにより制御される部分121という2つの部分に分けて構成した例である。それら2つの部分120及び121は、それぞれプログラム実行のためのCPU101,101’、ROM102,102’、RAM103,103’を備えており、両者の間はバスI/F部115により結合される。なお、図14において、図13と同一のコンポーネントには、同一符号を付してその説明を省略する。
図14の構成の場合は、図1の部分21の演算制御を汎用OSにより制御される部分120で実現し、図1の部分22の演算制御はリアルタイムOSにより制御される部分121で実現するとよい。これは図13の場合と同様の理由による。この場合加工機制御のための操作パネルI/F部111やサーボ制御部113は、リアルタイムOSにより制御される部分121に設けられる。これに対し、汎用OSにより制御される部分120には、画面表示の制御のためのグラフィック表示制御部107などのユーザインタフェース装置が接続される。
ここでバスI/F部115は共有メモリやFIFOであってもよいが、RS232CやEthernet(登録商標)などの通信を用いて結合してもよい。
次に、図1におけるncコンポーネント部13について説明する。
ncコンポーネント部13は、スクリプトエンジン部12から呼び出され、数値制御のための関数を実行する。数値制御のための関数は、図3に例示したnc.SetCommonVarのように”nc.”から始まる関数名を有している。スクリプトエンジン部12は、実行するスクリプトプログラム中からそのような関数名の関数を検出すると、ncコンポーネント部13に含まれるその関数を呼び出す。呼び出されたncコンポーネント部13の関数は、その関数の引数に従ってGコード命令を生成し、このGコード命令をプログラム解釈部3に渡して実行させる。また、ncコンポーネント部13が提供する関数の中には、コモン変数記憶部15に記憶されたコモン変数を操作するための関数もある。なお、コモン変数は、プログラム解釈部3における加工プログラム実行と、スクリプトエンジン部12におけるスクリプトプログラム実行との間で、共用する変数のことである。
ncコンポーネント部13は、例えば図3のスクリプトプログラム中で用いられている以下の部分プログラムの機能を提供する。このうち、SetCommonVarという関数はコモン変数記憶部15が記憶するコモン変数の値を変更する機能を提供するものであり、GetCommonVarはコモン変数記憶の値を読み出す機能を提供するものであり、ExecuteBlockは1ブロックを解釈し実行すると言う機能を提供するものである。
nc.SetCommonVar(number,value)
string=nc.GetCommonVar(number)
nc.ExecuteBlock(blockString)
具体例で説明すると、図3のスクリプト例において
nc.SetCommonVar(1,feed)
と記述されて使用されているのは、コモン変数の1番に変数feedの内容を代入することを表している。
nc.ExecuteBlock(“G81 Z0 R50 P1 F100")
と記述されて使用されているのは、スクリプトプログラム内から加工プログラムの1ブロックを実行させるもので、この場合はG81指令による固定サイクルを行わせる。
ここでは単純に固定の文字列を指定したが、スクリプト言語の持つ文字列演算機能を用いることで、スクリプト言語記述されたプログラムによってGコード記述されたブロックの文字列を生成し、実行させることも可能である。例えば、図3のスクリプト例において、
var cycle=nc.GetCommonVar(2);
var block="G" & cycle & " Z0 R50 P1 F" & feed;
nc.ExecuteBlock(block)
と記述されているのは、コモン変数の2番の値を読み出して変数cycleに代入し、これを文字列演算子して変数blockにGコード記述されたブロックを代入し、変数blockの文字列を解釈し実行させる。
本出願人は、特願2003−343279号「デバイスドライバのインターフェース方法」にて、リアルタイムOS(リアルタイムOSは汎用OSのカーネル部の一部として動作)と汎用OSのアプリケーション部との間でのコンポーネント機構を利用した通信手段を提案した。コンポーネント機構としては、例えばマイクロソフト社が提供しているCOM(Component Object Model)などを利用することができる。本実施形態のncコンポーネント部13は、このコンポーネント機構を利用した通信手段を利用することで容易に実現できる。図15はncコンポーネントのインターフェース定義(IDLファイル)の抜粋である。ここには、ncコンポーネント部13がスクリプトエンジン部に対して提供する機能のインターフェースが記述されており、GetCommonVar,ExecuteBlockなどが記述されている。このIDLファイルをIDLコンパイラに通し、プロキシー部、スタブ部を生成させ、プロキシー部を汎用OSにより制御されるソフトウェアの一部として用い、スタブ部をリアルタイムOSにより制御されるソフトウェアの一部として用いることでncコンポーネント部13が実現される。この手段を利用することで、ncコンポーネント部13に関数を追加して機能拡張を図ることが容易化され、スクリプト言語からリアルタイム部のデータを取得したり、機能呼出ししたりする活用範囲を大幅に広げることができる。
本発明による数値制御装置の構成図である。 本発明による加工プログラムの例である。 JScript言語を利用したスクリプト言語プログラムの例である。 VBScript言語を利用したスクリプト言語プログラムの例である。 プログラム解釈部の動作を示すフローチャートである。 プログラム解釈部(1ブロック解釈)の動作を示すフローチャートである。 スクリプトエンジン部の動作を表すフローチャートである。 本発明による第2の数値制御装置の構成図である。 本発明による第2の加工プログラムの例である。 加工プログラム一時ファイルの例である。 スクリプトプログラム一時ファイルの例である。 加工プログラム・スクリプトプログラム分別部の動作を表すフローチャートである。 本発明による数値制御装置のハードウェア構成図である。 本発明による第2の数値制御装置のハードウェア構成図である。 ncコンポーネントのインターフェース定義(IDLファイル)の抜粋を示す図である。
符号の説明
1 加工プログラム、2 プログラム読取り部、3 プログラム解釈部、4 関数発生部、5 サーボ駆動部、6 サーボモータ、7 位置検出器、8 PLC制御部、9 周辺機器駆動部、10 周辺機器、11 スクリプト言語記述されたプログラム、12 スクリプトエンジン部、13 ncコンポーネント部、14 イベント検出部、15 コモン変数記憶部、81 第2の加工プログラム、82 加工プログラム・スクリプトプログラム分別部、83 加工プログラム一時ファイル、84 スクリプトプログラム一時ファイル、101 CPU、102 ROM、103 RAM、104 ハードディスク、105 シーケンス制御部、106 システムバス、107 グラフィック表示制御部、109 表示装置、111 操作パネルI/F部、112 操作パネル、113 サーボ制御部、114 サーボモータ。

Claims (12)

  1. 加工プログラムに基づきサーボ装置などを駆動して機械制御を行う数値制御装置において、
    加工プログラムを実行する加工プログラム実行手段と、
    加工プログラム実行手段による加工プログラムの実行の際に、加工プログラムからスクリプト言語で記述されたスクリプトプログラムを呼出すスクリプト呼出手段と、
    を備えることを特徴とする数値制御装置。
  2. 請求項1記載の数値制御装置において、前記スクリプト呼出手段は、前記加工プログラム実行手段の一部として実装され、一以上の所定のスクリプト命令を認識可能であり、前記加工プログラムの実行の際にその加工プログラム中からスクリプト命令を認識した場合に、認識したそのスクリプト命令に付随するパラメータが示すスクリプトプログラムを呼出すことを特徴とする数値制御装置。
  3. 請求項2記載の数値制御装置において、前記一以上の所定のスクリプト命令の中には、スクリプトプログラムを呼出す直前のブロックの完了を待たずにそのスクリプトプログラムの呼出しを開始する非同期開始モードの命令、及び、スクリプトプログラムの呼出しが終了する前にそのスクリプトプログラムを呼出すブロックに後続のブロックの動作を開始する非同期再開モードの命令、のうちの少なくとも一方が含まれることを特徴とする数値制御装置。
  4. 請求項1記載の数値制御装置において、前記スクリプト呼出手段は、前記加工プログラム実行手段の一部として実装され、スクリプトプログラムの開始を示す開始タグ及び終了を示す終了タグを認識可能であり、前記加工プログラムの実行の際にその加工プログラムから開始タグを検出した場合、その開始タグから次の終了タグまでの記述をスクリプトプログラムとして抽出し、抽出したそのスクリプトプログラムを呼出すことを特徴とする数値制御装置。
  5. 請求項1〜4のいずれか1項に記載の数値制御装置において、
    前記スクリプト呼出手段により呼出されたスクリプトプログラムを実行するスクリプトエンジン手段が、前記加工プログラムを記述する言語で記述された部分プログラムの実行を前記加工プログラム実行手段に指示する手段を備えることを特徴とする数値制御装置。
  6. 請求項1〜5のいずれか1項に記載の数値制御装置において、スクリプトプログラムを実行するスクリプトエンジン手段を、前記加工プログラム実行手段とは別に設けることを特徴とする数値制御装置。
  7. 請求項6記載の数値制御装置において、前記スクリプトエンジン手段は複数のスクリプトエンジンインスタンスを生成可能であり、1つの加工プログラムにおいて複数の異なる種類のスクリプト言語で記述されたスクリプトプログラムの呼出しを可能とすることを特徴とする数値制御装置。
  8. 請求項6または7に記載の数値制御装置において、前記加工プログラム実行手段はリアルタイムオペレーティングシステム上で動作し、前記スクリプトエンジン手段は汎用オペレーティングシステム上で動作することを特徴とする数値制御装置。
  9. 請求項8において、コンポーネント機構を用いてスクリプトプログラムからリアルタイムオペレーティングシステム上で動作する前記加工プログラム実行手段の機能の呼出しを可能とすることを特徴とする数値制御装置。
  10. 請求項1または2記載の数値制御装置において、
    前記スクリプト呼出手段に呼出されたスクリプトプログラムを実行するスクリプトエンジン手段を有し、
    前記スクリプト呼出手段は、イベントが発生したときに動作するスクリプトプログラムを登録するためのイベント駆動スクリプト命令を認識可能であり、前記加工プログラム中からイベント駆動スクリプト命令を認識すると、認識したイベント駆動スクリプト命令のパラメータに指定されたイベント及びスクリプトプログラムを認識し、認識したスクリプトプログラムを、認識したイベントを実行条件に指定して呼出し、
    前記スクリプトエンジン手段は、呼出されたスクリプトプログラムに対して実行条件とするイベントが指定されている場合は、そのイベントが発生したことを示す通知を受けた場合に、そのスクリプトプログラムを実行する、
    ことを特徴とする数値制御装置。
  11. 加工プログラムに基づきサーボ装置などを駆動して機械制御を行う数値制御装置において、イベントが発生したときに動作するスクリプト言語で記述されたスクリプトプログラムを指定可能とし、当該イベントが発生したときには、指定されたスクリプトプログラムを実行することを特徴とする数値制御装置。
  12. 請求項10又は11に記載の数値制御装置において、イベントとして、加工プログラムが選択されたとき、加工プログラム実行が開始されたとき、加工プログラムの実行が終了したとき、アラームが発生したとき、リセットが発生したときの、少なくともいずれか1つを含むことを特徴とする数値制御装置。
JP2004197377A 2004-07-02 2004-07-02 スクリプト言語で記述されたプログラムを呼出し可能な数値制御装置 Expired - Fee Related JP4388427B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2004197377A JP4388427B2 (ja) 2004-07-02 2004-07-02 スクリプト言語で記述されたプログラムを呼出し可能な数値制御装置
DE102005028943A DE102005028943A1 (de) 2004-07-02 2005-06-22 Numerische Steuerung, die ein in einer Schriftsprache geschriebenes Programm aufrufen kann
US11/172,487 US7561927B2 (en) 2004-07-02 2005-06-30 Numerical controller which can call program described in script language

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004197377A JP4388427B2 (ja) 2004-07-02 2004-07-02 スクリプト言語で記述されたプログラムを呼出し可能な数値制御装置

Publications (2)

Publication Number Publication Date
JP2006018697A true JP2006018697A (ja) 2006-01-19
JP4388427B2 JP4388427B2 (ja) 2009-12-24

Family

ID=35515061

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004197377A Expired - Fee Related JP4388427B2 (ja) 2004-07-02 2004-07-02 スクリプト言語で記述されたプログラムを呼出し可能な数値制御装置

Country Status (3)

Country Link
US (1) US7561927B2 (ja)
JP (1) JP4388427B2 (ja)
DE (1) DE102005028943A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009262279A (ja) * 2008-04-25 2009-11-12 Nec Corp ロボット、ロボットプログラム共有システム、ロボットプログラム共有方法およびプログラム
JP2012175026A (ja) * 2011-02-24 2012-09-10 Yamaha Motor Co Ltd 部品実装機
WO2014002125A1 (ja) * 2012-06-25 2014-01-03 三菱電機株式会社 数値制御装置

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1548527B1 (de) * 2003-12-22 2010-02-17 Siemens Aktiengesellschaft Steuerungs- oder Regelungseinrichtung einer Werkzeug- oder Produktionsmaschine
US8037102B2 (en) * 2004-02-09 2011-10-11 Robert T. and Virginia T. Jenkins Manipulating sets of hierarchical data
US9646107B2 (en) 2004-05-28 2017-05-09 Robert T. and Virginia T. Jenkins as Trustee of the Jenkins Family Trust Method and/or system for simplifying tree expressions such as for query reduction
US7882147B2 (en) * 2004-06-30 2011-02-01 Robert T. and Virginia T. Jenkins File location naming hierarchy
US7620632B2 (en) * 2004-06-30 2009-11-17 Skyler Technology, Inc. Method and/or system for performing tree matching
US7627591B2 (en) 2004-10-29 2009-12-01 Skyler Technology, Inc. Method and/or system for manipulating tree expressions
US7801923B2 (en) 2004-10-29 2010-09-21 Robert T. and Virginia T. Jenkins as Trustees of the Jenkins Family Trust Method and/or system for tagging trees
US7636727B2 (en) 2004-12-06 2009-12-22 Skyler Technology, Inc. Enumeration of trees from finite number of nodes
US7630995B2 (en) 2004-11-30 2009-12-08 Skyler Technology, Inc. Method and/or system for transmitting and/or receiving data
US8316059B1 (en) 2004-12-30 2012-11-20 Robert T. and Virginia T. Jenkins Enumeration of rooted partial subtrees
US8615530B1 (en) 2005-01-31 2013-12-24 Robert T. and Virginia T. Jenkins as Trustees for the Jenkins Family Trust Method and/or system for tree transformation
US7681177B2 (en) 2005-02-28 2010-03-16 Skyler Technology, Inc. Method and/or system for transforming between trees and strings
US8356040B2 (en) 2005-03-31 2013-01-15 Robert T. and Virginia T. Jenkins Method and/or system for transforming between trees and arrays
US7899821B1 (en) 2005-04-29 2011-03-01 Karl Schiffmann Manipulation and/or analysis of hierarchical data
DE102006057297A1 (de) * 2006-12-05 2008-06-12 Giesecke & Devrient Gmbh Verfahren zur Überwachung des Ablaufs eines Programms
US20090062950A1 (en) * 2007-08-27 2009-03-05 Ren An Information Technology Co., Ltd. System and method for monitoring production of cnc machines
US20090070663A1 (en) * 2007-09-06 2009-03-12 Microsoft Corporation Proxy engine for custom handling of web content
US9906549B2 (en) * 2007-09-06 2018-02-27 Microsoft Technology Licensing, Llc Proxy engine for custom handling of web content
DE102007056117A1 (de) * 2007-11-15 2009-05-28 Kuka Roboter Gmbh Industrieroboter und Verfahren zum Steuern der Bewegung eines Industrieroboters
US8688258B2 (en) * 2008-09-11 2014-04-01 Rockwell Automation Technologies, Inc. Method of controlling a machine tool
US8701096B2 (en) * 2009-10-15 2014-04-15 Adobe Systems Incorporated In-order execution in an asynchronous programming environment
DE102009052707B4 (de) * 2009-11-11 2011-09-01 Siemens Aktiengesellschaft Verfahren und Vorrichtung zum Steuern einer Maschine
EP2667268A1 (de) * 2012-05-24 2013-11-27 Siemens Aktiengesellschaft Verfahren zum Betrieb eines Automatisierungsgeräts
US20140018972A1 (en) * 2012-07-10 2014-01-16 Michael G. Myrah Enclosure temperature script interpreter
JP5681230B2 (ja) * 2013-04-18 2015-03-04 ファナック株式会社 Dnc運転装置
US9130492B2 (en) 2013-04-22 2015-09-08 Thermadyne, Inc. Animatronic system with unlimited axes
US10333696B2 (en) 2015-01-12 2019-06-25 X-Prime, Inc. Systems and methods for implementing an efficient, scalable homomorphic transformation of encrypted data with minimal data expansion and improved processing efficiency
CN105912339B (zh) * 2016-04-15 2019-01-29 华中科技大学 一种数控系统中应用的开发与集成方法及系统
DE112016007069T5 (de) * 2016-08-30 2019-03-28 Mitsubishi Electric Corporation Programmeditiervorrichtung, programmeditierverfahren und programmeditierprogramm

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS51130781A (en) * 1975-05-09 1976-11-13 Toyoda Mach Works Ltd Group controlling system
US4149235A (en) * 1976-12-27 1979-04-10 Mcdonnell Douglas Corporation Computer numerical control system for machine tool
JPS5636709A (en) * 1979-09-04 1981-04-10 Fanuc Ltd Numerical control system
JPS6243703A (ja) * 1985-08-21 1987-02-25 Fanuc Ltd 数値制御システム
JPH01205901A (ja) * 1988-02-09 1989-08-18 Yamazaki Mazak Corp 複合加工工作機械における加工制御方法
JP2692011B2 (ja) * 1990-02-09 1997-12-17 三菱電機株式会社 数値制御自動プログラミング装置
US5740033A (en) * 1992-10-13 1998-04-14 The Dow Chemical Company Model predictive controller
US5784541A (en) * 1996-01-18 1998-07-21 Ruff; John D. System for controlling multiple controllable devices according to a script transmitted from a personal computer
US5801942A (en) * 1996-04-12 1998-09-01 Fisher-Rosemount Systems, Inc. Process control system user interface including selection of multiple control languages
US6268924B1 (en) * 1996-06-06 2001-07-31 Microsoft Corporation Document object having a print interface for programmatic automation by a using program
US6173327B1 (en) * 1996-07-11 2001-01-09 Jeroen De Borst Object-oriented method and apparatus for information delivery
US20030217005A1 (en) * 1996-11-27 2003-11-20 Diebold Self Service Systems, Division Of Diebold, Incorporated Automated banking machine system and method
US5984499A (en) * 1997-09-12 1999-11-16 Manufacturing Data Systems, Inc. Method and apparatus for a numerical control system for processing multiple job streams
JP4319706B2 (ja) 1998-04-10 2009-08-26 株式会社日立製作所 プログラム開発支援ツール
JP2000222335A (ja) 1998-06-30 2000-08-11 Seiko Epson Corp デバイス制御システム、デバイス制御方法、及び上記システムを構築するためのプログラムを記録した記録媒体
JP2000090057A (ja) * 1998-09-11 2000-03-31 Omron Corp グループオブジェクト及び制御システム
JP2000164716A (ja) * 1998-11-26 2000-06-16 Seiko Epson Corp 半導体装置及びその製造方法
DE19929751A1 (de) 1999-06-30 2001-01-18 Siemens Ag System und Verfahren zur Übertragung von Daten, insbesondere zwischen einem Anwender- und einem Serverprogramm im Bereich der Automatisierungstechnik mit verteilten Objekten
US6934934B1 (en) * 1999-08-30 2005-08-23 Empirix Inc. Method and system for software object testing
US6775824B1 (en) * 2000-01-12 2004-08-10 Empirix Inc. Method and system for software object testing
JP2001222412A (ja) 2000-02-07 2001-08-17 Sony Corp データ処理装置
US7012706B1 (en) * 2000-10-10 2006-03-14 Nexpress Digital Llc System and method for interfacing with multiple production scanners
DE10304706A1 (de) * 2002-07-24 2004-02-05 Kuka Roboter Gmbh Verfahren und Vorrichtung zum Steuern einer Anlage
JP3896076B2 (ja) * 2002-12-26 2007-03-22 ファナック株式会社 数値制御装置
US7240212B2 (en) * 2003-02-18 2007-07-03 Ubs Painewebber, Inc. Method and system for secure alert messaging
WO2004077184A1 (ja) * 2003-02-28 2004-09-10 Mori Seiki Co., Ltd. 稼働管理システム
DE10340403A1 (de) * 2003-09-02 2005-04-07 Siemens Ag Echtzeitsteuerverfahren für eine Steuerungseinrichtung eines industriellen technischen Prozesses und Echtzeitbetriebsverfahren für eine Recheneinrichtung
US6903031B2 (en) * 2003-09-03 2005-06-07 Applied Materials, Inc. In-situ-etch-assisted HDP deposition using SiF4 and hydrogen
JP2005108082A (ja) 2003-10-01 2005-04-21 Okuma Corp デバイスドライバのインターフェース方法
US7163896B1 (en) * 2003-12-10 2007-01-16 Novellus Systems, Inc. Biased H2 etch process in deposition-etch-deposition gap fill
US7217658B1 (en) * 2004-09-07 2007-05-15 Novellus Systems, Inc. Process modulation to prevent structure erosion during gap fill
US7176039B1 (en) * 2004-09-21 2007-02-13 Novellus Systems, Inc. Dynamic modification of gap fill process characteristics
US7148155B1 (en) * 2004-10-26 2006-12-12 Novellus Systems, Inc. Sequential deposition/anneal film densification method
US7211525B1 (en) * 2005-03-16 2007-05-01 Novellus Systems, Inc. Hydrogen treatment enhanced gap fill

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009262279A (ja) * 2008-04-25 2009-11-12 Nec Corp ロボット、ロボットプログラム共有システム、ロボットプログラム共有方法およびプログラム
JP2012175026A (ja) * 2011-02-24 2012-09-10 Yamaha Motor Co Ltd 部品実装機
KR101314141B1 (ko) 2011-02-24 2013-10-04 야마하하쓰도키 가부시키가이샤 부품 실장기
WO2014002125A1 (ja) * 2012-06-25 2014-01-03 三菱電機株式会社 数値制御装置

Also Published As

Publication number Publication date
US7561927B2 (en) 2009-07-14
US20060004479A1 (en) 2006-01-05
JP4388427B2 (ja) 2009-12-24
DE102005028943A1 (de) 2006-02-16

Similar Documents

Publication Publication Date Title
JP4388427B2 (ja) スクリプト言語で記述されたプログラムを呼出し可能な数値制御装置
US10230784B2 (en) Method and system for interface configuration via device-side scripting
US6175206B1 (en) Robot information processor
US8984423B2 (en) Dynamic representation of component configuration method and system
US9292309B2 (en) Abstracted display building method and system
US8918733B2 (en) Interface method and system for enhanced data and memory management
JPH0561646B2 (ja)
US9927792B2 (en) Universal web-based reprogramming method and system
US20060095855A1 (en) HMI reconfiguration method and system
GB2232514A (en) Programmable controller
US7930635B2 (en) Relegendable interface device design-time environment system and method
US20060277461A1 (en) Real time parallel interface configuration and device representation method and system
WO2020039900A1 (ja) 情報処理装置およびプログラム
JP2007086921A (ja) 機械装置制御プログラム実行システム
KR20030027790A (ko) 범용 소프트웨어 개발 지원 시스템
US11321052B2 (en) Development support device, development support method, and non-transitory computer readable medium
US5239476A (en) Multi-level state language controller for multi-threaded machine control
JP6939662B2 (ja) プログラミング支援装置、プログラミング支援方法及びプログラム
JP2000315104A (ja) Nc工作機械の管理システムおよび管理プログラム
GB2244828A (en) Programmable controller
JP7241982B1 (ja) 画像生成プログラム、画像生成装置、プログラマブルコントローラシステム及び画像生成方法
US11579580B2 (en) Control system, control method, and non-transitory computer readable medium
JPH10289011A (ja) 数値制御装置及び数値制御装置におけるバックグラウンド処理のカスタマイズ方法
KR100423742B1 (ko) 순차기능챠트에 의한 전용 제어 시스템
JP2004178303A (ja) 表示装置、画面データ生成装置、および、そのプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070313

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090519

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090521

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090715

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20091002

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20121009

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20151009

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees