JPH08511643A - 計算機数値制御システム - Google Patents

計算機数値制御システム

Info

Publication number
JPH08511643A
JPH08511643A JP7508764A JP50876495A JPH08511643A JP H08511643 A JPH08511643 A JP H08511643A JP 7508764 A JP7508764 A JP 7508764A JP 50876495 A JP50876495 A JP 50876495A JP H08511643 A JPH08511643 A JP H08511643A
Authority
JP
Japan
Prior art keywords
message
objects
machine
tool
machine tool
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
JP7508764A
Other languages
English (en)
Inventor
ライト・マイケル・アール
プラッツ・デヴィット・イー
フレンチ・ダニエル・ビー
トレイコフ・ジェラルド
デュポント・マイケル・エイ
ヘッド・グレゴリー・エイ
Original Assignee
ハーコ カンパニーズ インコーポレイテッド
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 ハーコ カンパニーズ インコーポレイテッド filed Critical ハーコ カンパニーズ インコーポレイテッド
Publication of JPH08511643A publication Critical patent/JPH08511643A/ja
Pending legal-status Critical Current

Links

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/414Structure of the control system, e.g. common controller or multiprocessor systems, interface to servo, programmable interface controller
    • 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/31From computer integrated manufacturing till monitoring
    • G05B2219/31367MMS manufacturing message specification, rs511, iso9506
    • 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/34Director, elements to supervisory
    • G05B2219/34208Motion controller
    • 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/36035Special language, task programming, oop object oriented programming
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Abstract

(57)【要約】 製作品を形成する制御可能な可動性ある工具と、前記製作品に実行される形成機能を記述する制御指令を受け入れる手段と、処理ユニットとメモリ手段とを含む工作機械制御システムである。前記制御システムは、オブジェクト指向デザインに従って定められるオブジェクトを含む。オブジェクトの1つのタイプは、製作品で実行される形成プロセスのモデルであり、そのプロセスから得られる形成の物理的ディメンションに注目して情報パラメータを含んでいる。プロセスオブジェクトはオブジェクト指向メッセージシステムを介してマシンオブジェクトとデータ送受を行う。マシンオブジェクトは制御システムが動作するCNCマシンに表される物理的装置を表現する。また、このシステムは、オブジェクト指向メッセージに対する他のオブジェクトと交信する毎にオブジェクション指向モーション制御と手動除外オブジェクトを含む。制御システムは制御システムの全体について、限定された知識で人的に制御システムを簡易に変更することもできる。また、新しいCNC工作マシンでも、進歩的に適切な準備がなされ得る。

Description

【発明の詳細な説明】 【発明の名称】 計算機数値制御システム 【産業上の利用分野】 本発明は計算機数値制御(CNC)工作機械、特に斯か る工作機械の操作に使用される制御システムに関する。 【発明が解決しようとする課題】 CNC制御システム CNC機械の目的は仕様書に従って機械加工され る部品を生産すべき物理的対象を記述している入力仕様書一式を使用するにある 。該部品は一般に金属のような固形の塊から造られ、ドリル盤、フライス盤、旋 盤、静電放電加工機(EDM)、計量システムその他のような種々の工作機械に よって成型される。CNC機械は複雑で数百の部品を含む。入力装置の例は打鍵 盤、操作卓、感圧ブラウン管(CRT)、種々の工具と機械センサー、リミット スイッチ及びネットワークインターフェースを含む。出力装置はモーター駆動軸 や工具、CRTディスプレイ、状態表示灯及び可聴警報器に運動制御信号を送信 する運動制御器を含む。その他の要素はマイクロプロセッサー、メモリ、ディス クドライブ、データバス及び配線ハーネスを含む。コンピュータープロセッサー で実行されるソフトウェアは、それがシステムのすべてのその他の要素の機能を 整合させることから、CNC機械の決定的要素である。一般に、CNCソフトウ ェアはCNCメーカー又はシステム設計者がCNC機械に組込むために選定した 特殊なブランドで書き込まれる習慣である。結論として、CNCソフトウェアは 極度に複雑になり、個々のCNC機械のソフトウェアプログラマーは実質上あら ゆるハードウェア部品とソフトウェアとのインターフェースの方法、及び全ソフ トウェアシステムそれ自身に精通しなければならない。 例えば、大多数のCNCソフトウェアの二つの代表的機能は論理及び運 動制御機能(本書ではまとめて“カーネル”に属するものとする)である。論理 制御機能はタスクを遂行するために種々の可動ハードウェア部 品がとらねばならない特定のステップ列と接触を保っている。例えば、フライス 加工で自動工具交換機からスピンドルの工具保持器中に別のサイズのドリルを装 着するに要するステップは:(1)現在装着されているドリルを有するスピンド ルを工具交換機がその下にぴったり合うように起すコマンドを送る、(2)工具 交換機にスピンドルの下に移動するように命令するコマンドを送る、(3)スピ ンドルに現在装着しているドリルを外すように命令するコマンドを送る、(4) ドリルが外されたことを表すスピンドルからの信号を待つ、(5)工具交換機に スピンドルの下に新しいドリルが位置するようにそれを時計廻りで30度回転さ せるコマンドを送る、(6)工具交換機が首尾良く回転コマンドを実行したこと を確認のため工具交換機に質問する、(7)スピンドルにその下の工具交換機の 中の新しいドリルを装着するようにコマンドを送る、(8)工具交換機にスピン ドルと作業領域から離れるように命令するコマンドを送る。CNC工作機械の中 の数百の可動、可制御部品に与える論理制御機能は上記の簡単な例示よりは遥か に複雑である。 ソフトウェアの運動制御機能は如何にして特別な軸又はモーターが稼働 されるべきかを記述しているコマンドを受信する。例えば、上記論理制御の例で は、論理制御機能は運動制御機能にスピンドルを起すようにコマンドを送信する 。運動制御機能はこの“一般的な”コマンドを受けて、それをより小さな、離散 的な運動(即ちそれが全長152mm移動するまでスピンドルを一度に0.025mmづつ可 制御的に動かす)に分解し、運動が実行されたことを保証するために精密モータ ーから電気信号を送受信する。運動制御機能は、被加工物に特殊な大きさの楕円 を切取るような型にフライス盤の軸を動かすような、より複雑な多次元コマンド を実行することもできる。 運動制御機能は実際に被加工物に成形処理を施すハードウェア部分と最も密 接に相互作用しているソフトウェア(装置の駆動部を除く)の部分であるから、 運動制御機能はハードウェア機器からハードウェアが故障した 情報も受取る。例えば、もしハードウェアが命令の実行が不可能ならば、運動制 御機能はハードウェア(又はそれに関連した装置の駆動部)から故障の警報を受 取るであろう。この情報はソフトウェアが現在引受けている機能を完成させるた めに運動制御機能を要求する責任があるCNC制御ソフトウェアのその他の部分 に伝達されることが必要である、そこでオペレーターのCRT上にメッセージを 表示するような適切な動作が起り得る。然し、通常ハードウェアの故障を通報す る必要があるCNC制御システムソフトウェアの多くの他の部分も存在する。更 に、故障について知る必要のある部分は正確な故障に応じて変化するであろう。 今までのシステムでは、運動制御機能はCNC制御システムソフトウェアのどの 部分にどのハードウェアの故障を通知せねばならないか接触を保つのに用いられ た。このことはCNC制御システムソフトウェアの運動制御部分に増大した負荷 を掛けるばかりでなく、この部分の保守を益々困難にしている。 CNCソフトウェアを書き込んだコンピュータープログラマーは一般に 全ソフトウェアシステムをCNC工作機械全体がなさねばならないことを分析す る(機能分解)構造化技術を用いて設計していた。このことは複雑で修正の困難 なソフトウェアシステムを結果することとなった。例えば、ユーザーが機械加工 されるべき部品を記述するユーザーインターフェースに関するソフトウェアコー ドは、運動制御器のような、CNC制御システムの他の部分で見出される。一つ の例は運動制御器が工作機械から故障状態(例えば、作業領域内の物体のせいで テーブルが望みの位置に移動できない、又はフューズが飛んだ)を表示する信号 を受けた時、運動制御器が直接CRTディスプレイにエラーメッセージを表示す ることである。先のCNC制御システムソフトウェアは一般にCNC工作機械の 離散的な物理的成分に対応する部分に分解されないから、ソフトウェアの一部分 の変更は作るのに難しく屡々ソフトウェアの他の部分の変更が必要になる。 ユーザー、システム設計者又は工作機械メーカ ーでさえ工作機械に一つの新しいハードウェア部品を追加することを欲した時に 、この問題のもう一つの例が現れる。例えば、AC誘導モーターを別のメーカー のDCブラシレスモーターと交換する方が望ましいかも知れない。新しいモータ ーは恐らく別の通信プロトコルを用いて別の公差仕様と操作限界を有するであろ う。それ故、運動制御ソフトウェアはその通信プロトコルを用いている新しいモ ーターとの通信を可能にするために修正する必要があるであろう。ユーザーイン ターフェースもユーザーが改良された公差パラメーターを明確にするために修正 する必要があるであろう。然し、これまでのCNCソフトウェアでは、これらの 変更は全ソフトウェアシステムに亘って波及効果を及ぼし、新しいモーターの使 用を可能にする新しいソフトウェアシステムの開発には莫大な時間を要するであ ろう。追加訂正の多くはソフトウェアがアクセスするのに必要とするデータが全 ソフトウェアシステムに亘って分散しているという事実によってもたらされる。 例えば、新しいソフトウェア機能を追加するには、ソフトウェアは現在スピンド ルにある工具が何か、スピンドルの回転速度、軸の座標(テーブルの位置)、熱 センサーの読み、切削中のスピンドルに及ぼす力についての情報、及び被加工物 の現在の工程段階を知る必要がある。今までのCNCシステムではこの情報は恐 らく種々のソフトウェアモジュールに亘って拡散させられ、且つこれらデータ要 素が相互作用する方法は認識するのに余りに複雑(元のソフトウェアの作者を除 く)であるか、又は特許所有権があるかどちらかである。CNC制御システムに ついてのこれらの問題は産業の到る所でいくつかのその他の問題を惹き起した。 システム設計者やCNC工作機械メーカーにとって現存システムに新しいハード ウェア部品を組込むことを可能にするには長い準備期間を必要とする。この問題 は新しいCNC機械設計に対してばかりでなく、既存のCNC工作機械に改良又 は追加部品を付け加える努力、又は既存のCNC能力付の工作機械の改造に対し ても当てはまる。もう一つの問題はscalabilityのそれである。CNC制御ソ フトウェアは通常ハードウェア部品の予想された集りに従って使うように書かれ るから、同じソフトウェアは他のハードウェア部品との関連使用には容易に適合 できない。換言すれば、CNCソフトウェアは洗練された高級CNC機械操作用 ソフトウェアは“bare-bones”な低級CNC工作機械の操作には使用できないと 言う意味で一般的には“scalable”ではない。結論として、CNCメーカーはた だそれが違うハードウェア部品を持ったCNCで働くように設計されたという理 由だけで同じ機能性を持ったソフトウェアを“再発明”する。 CNC制御システムのプログラマーは新しいハードウェアには応じない が、CNC機械で成型されるべき部品の記述を入力する新しい標準には応じるソ フトウェア部品を“再発明”するよう要求され得る。最も初期のCNC機械は穿 孔紙テープで部品の定義を受理した。次のCNC機械(公開米国特許No.4,477,7 54)は如何にして望みの部品を創り出すかの命令を得るために機械の操作員に一 連の質問を行う。より近くなると、HURCO会話型とかRS-274D M&G 符号プログラ ムのような、幾つかのデータファイル書式が加工されるべき部品の記述に浮上し てきた。CNC制御システムプログラムの今までの“部品プログラム・インター プリター”モジュールでは、違った書式での部品定義の受理用の各モジュールは 、般的に上記の如く、CNC制御システムソフトウェアの到る所に拡散した種々 のデータ要素とソフトウェアルーチンにアクセスせねばならない。再び、各異な った入力書式は単一の部品プログラム・インタープリター・ソフトウェアプログ ラムに帰着した、そしてこれらプログラムすべては多くの共通なものを含んでい るので、複製や機能性は不要となる。 オブジェクト指向ソフトウェア 大部分の現存のプログラム言語は実行 するプロセッサーに“逐次”命令を与える。これらの言語は前にはCNC制御シ ステムに用いられた。然し、コンピューターは斯かるシステムが種々な条件下で 振舞うであろう一連の動作を決定するために対話型部門のモデリングシステムに 屡々使用され る。例えば、プログラマーはある特殊なディジタル論理回路網が特殊な入力刺激 に応答するような方法を模倣するコンピューターをプログラムしたくなるかも知 れない。プログラマーが予め論理回路網が刺激に応じて行うであろうステップの 列については知らないが、如何にして個々の部品がその入力の変化に応じて出力 を変えるかということだけは知っている場合、プログラマーはシステムの行動を モデルにコンピューターをプログラムするのに逐次組織化した命令を使用するの が困難なことを屡々見出す。 逐次組織化ソフトウェアと対比して、“オブジェクト指向”ソフトウェ アは“オブジェクト”の中に組織化される、その各々はオブジェクトに送られた “メッセージ”に応じて振舞う種々の手続きを記述しているコンピューター命令 のブロック(“メソッド”)より成っている。メッセージはプロセスを実行する 或機能と知識を有するオブジェクトの間でやりとりされる。オブジェクトの一つ がメッセージを受取ると、そのオブジェクトはそのメッセージに対応した処理( メッセージ手続き)を行う、又必要とあれば処理の結果を送り返す。各オブジェ クトはオブジェクトそれ自身の内部状態(インスタンス変数)が貯蔵され且つ他 のオブジェクトのアクセスを許さない領域を有している。オブジェクトは概念を 表現する概念オブジェクトとその概念オブジェクトのインスタンスを表現するイ ンスタンスオブジェクトより成っている。概念はインスタンスからは明らかに区 別されている。オブジェクト指向システムの一つの特徴は継承である。或概念オ ブジェクトに関して、或概念オブジェクトによって保持されている概念よりも抽 象的な概念を有する上位概念オブジェクトが定義される、そしてその或概念オブ ジェクトは使用するために上位概念オブジェクトの機能(メッセージ手続き)と 知識(インスタンス変数)を継承することが出来る。例えば、概念オブジェクト “円”はその上位概念オブジェクト“形状”から機能と知識を継承できる。 オブジェクト指向プログラム言語でのプログラマー“プログラム”を個 々のコードブロックに書き込むことによりその各々はそのメソッドを定義するこ とにより一つのオブジェクトを創り出す。メッセージによりお互いに通信するの に適合した斯かるオブジェクト集合は一つのオブジェクト指向プログラムを構成 する。オブジェクト指向型コンピュータープログラミングは、システムの各部品 がオブジェクト、その対応するオブジェクトのメソッドによりシミュレートされ た各部品の動作、及びオブジェクト間を伝播するメッセージによりシミュレート された部品間の相互作用によりモデル化出来るように、対話型システムのモデリ ングを容易にする。 操作員はオブジェクトの一つにメッセージを送ることによりオブジェク ト指向プログラムより成る相互に関連したオブジェクトの集合を刺激できる。メ ッセージを受け取ったオブジェクトのメソッドは応答したオブジェクトに、一つ 又はそれ以上の他のオブジェクトにメッセージを送信することを含む予め決めら れている機能を実行させる。他のオブジェクトは受け取ったメッセージに応答し て、尚多くのメッセージ送信を含む付加的機能を次々に実行し得る。この方法で 、メッセージと応答の続き物は限りなく続くか又はすべてのメッセージが応答し 且つ新しいメッセージが送られなくなった時に終わりが来る。オブジェクト指向 言語を使用したモデリングシステムの時には、プログラマーは如何にしてモデル 化したシステムの各部品が刺激に応答し又一連の処理によって或刺激には応答し ないかを考えることだけが必要である。この一連の処理は刺激に応答するオブジ ェクト間の相互作用を自然に流出させるのであってプログラマーが前もって決め ておく必要はない。 オブジェクト指向型プログラミングはより直感的に相互に関連した部品 のシステムのシミュレーションを作るけれども、オブジェクト指向型プログラム の処理はオブジェクト指向型プログラムによって為された一連の処理が通常逐次 組織化プログラムの場合のようにソフトウェアリストから即座に明白にならない ことから屡々 理解が困難である。如何にしてオブジェクト指向型プログラムが働くかをその処 理の容易に明白な表示の観察を通して決定することは容易ではない。比較的少し のプログラムステップだけが通常可観測なコンピューター出力を生じるのである からプログラムに応答するコンピューターによって行われる処理の大部分はオブ ザーバーには“不可視”である。 オブジェクト指向型解析と設計法は同じファミリーの他の製品からのシ ステム解析と条件の再利用を許している。オブジェクト指向ソフトウェア設計と はソフトウェア部品がデータと機能から創り出されオブジェクトの中に組織化さ れることを意味している。一つのオブジェクトは実世界中の或物の抽象であり、 それについての、又はそれと相互作用する、又はその両方に関する情報を保持す るためのシステムの可能性を反映している。それ故、それは属性値と独占的サー ビスの要約である。オブジェクトの属性はオブジェクトを記述するが、如何にそ れが働くかではない。オブジェクトのサービスは何かが起こった時にオブジェク トが為すであろうことを記述する命令、プログラム、手続き、又は動作である。 上記の如く、オブジェクトは複数のクラスにグループ分けされる。クラ スはそのクラスの中に如何にして新しいオブジェクトを創り出すかの記述を含み 又そのオブジェクトのすべてに共通な基本変数を確立する。新しいオブジェクト は親クラスからこれら共通特性を継承する。この特徴はソフトウェア技術者が既 存の設計とコードの上に一般クラスの容易に再利用できるコードからより特化し たオブジェクトを構築することを許す。例えば、ソフトウェア技術者はスピンド ルのようなより特化した装置のモデルを創り出すのに‘装置’用特性の一般クラ スを使うことが出来る。オブジェクト指向型解析と設計はシステムのオブジェク トの全体を明確に表現して属性とサービスの全体の同定と利用に継承を使用する 。システムはサービスを通してアクセスするだけでよい。サービスはオブジェク トのデータを隠して処理を行うメッセージを送信する。このことは元のオブジェ クトの配 列を変えること無しに加えられる新しい特徴を許している特殊なデータ構造への 依存性を断ち切る。この構造はモノリシックな特許システムで変更中に共通に起 こる損傷からデータを保護している。 【発明の目的】 本発明の一つの目的はオブジェクトがオブジェクト指向型メッセージを 交換するようなオブジェクト指向プログラムを使用するCNC工作機械制御シス テムを提供するにある。 本発明の他の目的は高級から低級までのCNC工作機械のどちらにも使 用できるようなscalableなCNC工作機械制御システムを提供するにある。 本発明の他の目的は、予め書き込まれたソフトウェアが再利用でき、又 新しいオブジェクトが予め定義されたオブジェクトの合成を継承したか又は取り 込んだ物を付け加えられるような、容易に改造可能なCNC工作機械制御システ ムを提供するにある。 本発明の他の目的はプログラマーが如何にして特殊なハードウェア部品 が特化した被加工物成形工程を行うかの詳細を知る必要無しに新しいプロセスが プログラマーによって付け加えられるようなCNC工作機械制御システムを提供 するにある。 【図面の簡単な説明】 【図1】 本発明の制御システムが処理し得るCNC工作機械システムのハード ウェア部品の概略図。 【図2】 CNC制御システムに含まれるソフトウェアクラスのタイプ、及びこ れら幾つかのクラスの内部のオブジェクト指向型オブジェクトの幾つかの代表的 タイプの概略図。 【発明の要約】 本発明の制御システムはCNCメーカー又はシステム設計者が複雑性と 変更を管理することを許すクラ ス内のシステム責任を分離する実時間CNCソフトウェアシステムを提供する。 本制御システムは同じモデルから創られる別のシステムも許容するそして将来、 未だ想像出来ないような、技術的進歩が再設計とか大規模な変更無しで組み込ま れることが出来る。 本システムはオブジェクト指向ソフトウェア環境を使用する。オブジェ クトタイプの第一クラスは機械工具部品で実行されるべき工程(ドリリング、リ ーミング、ミーリングのような)用に用意される(プロセスクラス)。或工程オ ブジェクトはプロセスクラス内の他のオブジェクトの特性を継承できる。例えば 、“孔”オブジェクトは深さ及び直径のような特性を持ち、それはドリル、リー ム又は穴掘り工程オブジェクトのような他の工程オブジェクトにより継承され得 る。オブジェクトタイプの第二クラスは、テーブル(軸)、スピンドル、工具交 換機又は操作卓のような、工作機械部品のインスタンスを表現するものを備える 。再び、或オブジェクトは他のオブジェクトの属性を継承できる。例えば、軸グ ループ、即ち複雑な3次元対象物を形削るための同時多軸制御用オブジェクト、 は単軸オブジェクトの属性を継承し得る。他のオブジェクトは他の工具オブジェ クトの合成オブジェクトであり得る。例えば工具交換機は(それ自身の属性を持 つのに加えて)工具交換機中に保持され得る異なったミーリングの刃の集まりの 合成オブジェクトであり得る。 最も重要なことには、制御システムのソフトウェア部品の実行中、オブ ジェクトは互いにメッセージを通信していることである。例えばドリルプロセス オブジェクトはドリリング工程を定義するのに必要とされる全ての情報を保持す るように定義され得る、そしてこの情報は(スピンドルを下降移動させ孔を明け るために)マシンクラスのスピンドルオブジェクト及び(固有の場所に被加工物 を位置させるために)軸グループオブジェクトにメッセージを送信できる。然し 、ドリリング工程を定義するソフトウェアの部分は如何にして実際の機械工具が そのタスクを行うのか、又は如何にして運動制御モ ジュールが機械部品を制御するのかについての情報にアクセスする必要はない。 それ故、ソフトウェアの実現に際して、同じ工程オブジェクトがメーカーや特殊 なハードウェア部品に関して不都合無しで殆どどんなCNC機械にも使用可能で ある。更に、種々のオブジェクト通信によるオブジェクト指向メッセージはCN C工作機械制御システムに付加的機能性を付加するための標準インターフェース を与える。 例えば、ユーザーインターフェースの第一の目的は実行されるべき一連 の機械加工プロセスについての情報を集めるにある。一度基本情報が集められる と、ユーザーインターフェースは以下のステップでプロセスを実行できる:(1 )それによって物を造り出す新しい工程についてのデータ付きの加工オブジェク トを呼出す;(2)各工程についてステップ(1)を繰り返す;そして(3)各 定義されたオブジェクトにそれ自身の実行を告げるメッセージを逐次送信する。 斯くして、ユーザーインターフェースのプログラマーは機械工具が実行するのに 必要な運動制御データからは完全に絶縁され得る。 ソフトウェアオブジェクト間の通信はメッセージにより遂行されるので 、ソフトウェア機能を別の同時に実行中のタスクの間により容易に配布すること が出来る。例えば、特定のハードウェアの故障に関する情報を必要とするタスク と接触を保つことを必要としている運動制御モジュールの代わりに、故障に関す る情報は例外処理オブジェクトに送られるだけである。このことは運動制御モジ ュールが運動を制御するという主要タスクにより多くの処理時間を振り向けるこ とを許し、又あらゆる誤り条件を一様な方法で処理されることを可能にする。明 言すると、例外処理部はどのオブジェクトがどのタイプの故障について知る必要 があるかのデータベースを保持していて、それらのオブジェクトに対してだけ特 定の故障を通報する。それ故、システムに新しい工程又は機械部品オブジェクト を付け加えるには、運動制御モジュールの修正は故障条件が例外処理部で処理さ れるので最小に抑えられる。 ソフトウェア部品の七つの基本クラスがある:装置起動部、オペレーテ ィングシステム(OS)、プラットフォームサービス、カーネル、機械クラスオ ブジェクト、工程クラスオブジェクト、及びオペレータークラスである。装置起 動部クラスはハードドライブ、フロッピードライブ、直並列ポート、モーション ボード、及びI/Oドライブのような特定のハードウェアへのインターフェース を含む。これは新しいハードウェア部品が現存システム部品に付加されてシステ ムと別の方法で通信する必要になる時に変更を要する物だけの単一クラスの中に 全てのハードウェアインターフェースを隔離する。 OSクラスはハードウェアとソフトウェア資源管理に責任を負っている 。それはメモリー、タイマー、及び全てのプロセスとタスクのスケジューリング を管理する。このクラスは本発明システムに従って制御システムを他のハードウ ェアプラットフォームにポートする事を可能にする。プラットフォームサービス クラスは部分プログラムインタープリターとシステムのより低い水準との間の例 外処理と通信のようなタスクの実行を容易にする責任がある。このクラスはシス テム通信を簡略化するそして効率を改良するか又は立上げの管理とメッセージ処 理を変える理由でコンピューター科学技術の進歩を組み入れるかどうかで変更を 要求するだけである。 カーネルクラスは連続的な運動と離散的なインプット/アウトプットの 実行部品を処理する。このクラスは性能尺度が要求される時に変更を要するだけ のCNC制御システムの安定した芯を形成している。この処理方法は、昔のプロ グラムインタープリターのように、オペレータークラスオブジェクトを変更させ る時にカーネルを変えるためにシステムデベロッパーを必要とした以前のCNC 制御システムとは際立った対比を見せる。 残りの三つのクラス(機械、工程、そしてオペレーター)は工作機械C NCになるべきどのシステムでも特別に仕立てる。オペレーターと工程クラスは 上記ハードウェア指向クラスにはっきり通信するために使用される“工具”であ る。機械クラスはこの通信がカーネル の部品によって理解可能になるオブジェクトを含んでいる。 機械クラスは、工具交換機、スピンドル、又は冷却材のような実世界の 部品の抽象化を具体化するオブジェクトの集合である。このクラスはその基本的 な要求される特性により工作機械装置の全ての一般カテゴリーを記述する。オペ レータープログラムは通常このクラスのオブジェクトによりカーネルに通信する 。機械クラスは“工具♯6に変更せよ”のようなオペレーターコマンドをカーネ ルの部品で理解できるようなメッセージ又はメッセージ列に変換する。新しい工 作機械部品は機械クラスに付加することが出来て又既存の部品はカーネルを変更 させずに容易に修正することが出来る。 工程クラスは特定のタイプの機械(低級フライス盤、旋盤、孔抜きプレ ス、EDM、計量システム等)で特定の共通実務を行う工程技術(方法)を保持 している。このクラスのオブジェクトは多重機械クラスオブジェクトを使用し又 多重部分プログラムインタープリター(オペレーター)プログラムからアクセス 出来る。このクラスは通常ミーリングフレーム、タッピング、孔明けのような操 作を扱う缶詰サイクルのライブラリーを含んでいる、しかしそれは使用するのに 幾つかの異なったアプリケーションが必要な何らかのサブルーチンも含んでいる 。オブジェクトは複雑なCNCの特徴に容易にアクセスできる性質を備えている 。 オペレータークラス(部分プログラムインタープリターを含む)はCN Cオペレーターの技能と仕事の拡張である。それは部分プログラミングやシステ ム診断のようなオペレータープログラムも保持している。このクラスは機械の制 御管理に他のクラスによって提供されるサービスを使用する。この水準でのプロ グラムを使用して、オペレーターはシステムのパラメーター(例えば最大供給速 度)を設定できる、そして部分プログラムが走っている間工作機械と通信する。 CNCに為される変更の大部分はオペレーターが為し得ることを変更するための 修正であろう。これらの変更は通常部分プログラミ ングと部分切削環境に影響する、そして工程クラスで変更したのに伴う技術でこ の水準で為すことが出来る。 本発明の制御システムを変更する技術者は一つのクラス内の単一の部品 を修正するのに全システムに関するエキスパートである必要はないので容易にシ ステムに変更を加えられる。一つの変更がシステムの全体に波及効果を及ぼすこ とはない。ユーザーインターフェースや装置起動部のような最も変更しそうな部 分はカーネルからは分離されている。これらの部品はPLCプログラム、機械ク ラスのカスタム化及びオペレータープログラムの追加又は修正により変更のため によりアクセスし易くなる。 本発明の制御システムのユーザーは完全性をテストできるより安定した 設計を持つであろう。本システムはシステム解析、要求条件、設計、及び部品の 効率的再利用を可能にする。本システムはシステムデザイナーにオブジェクト指 向ソフトウェアで処理されるCNCの責任の殆ど全てのレベルについて考慮させ る。更に、装置起動部とOSレベルでの変更は新技術を組み込める、又オペレー ターと工程レベルではシステムの特徴と機能性を高めるか縮小するように変わる だろう。コアのクラス、機械とカーネル、はこれら二つのクラスのオブジェクト の‘目的’性により滅多に変わらないであろう。 現在のシステムはオブジェクト指向設計方式の開放型システムを用いて いる。これはユーザーに競合型エッジを得るためにハードウェアとソフトウェア を仕立てることを許す。CNC制御システムは別々の業者からのハードウェアと ソフトウェアの容易な統合を許す、又他のハードウェアプラットフォームへのシ ステムのポーティングを認める。組立と保守を簡単にする工業規格のハードウェ アインターフェースが用いられ得る。本システムはソフトウェア部品の第3者開 発を容易に認めるために動的再構成が可能である。システムはメッセージスキー マで簡単な標準メッセージを使用する。メッセージはフレキシブルでありユーザ ーに使用したいメッセージを選択し又ニーズにあったメッセージに変更すること を 許す。システムソフトウェアは同じソフトウェア構造を用いている全特徴を有す るCNCハードウェアシステムを高価でなく支援するためにscalableである。 データ特性に関して、サービスは新しいクラス又はオブジェクトが創ら れた時親クラスから継承されることも出来る。勿論、新しいクラス又はオブジェ クトはこのサービスを使っても良いし又は別のバージョンを創っても良い。別の オブジェクトは同一サービスを使うことが出来る。それ故、ソフトウェア技術者 はたった一度だけサービス用のコードを書いてその後はそれを再利用する。既存 のオブジェクト指向型コードの再利用性は書き込みと保全が僅かで済むことから より速く開発と修正が出来る。 ソフトウェア部品のクラスのシステム図が図2で示される。 ソフトウェアオブジェクトは部品間の通信にメッセージを使う。クラス 構造は各クラスへのインタレストのメッセージを制限することによりシステム処 理とプログラミングを簡単にする。例えば、機械クラスはトラベルリミットとか サーボエラーのようなカーネルの責任については心配しない。逆に、カーネルは 機械クラスがそれを独占的に処理することから所有権や装置については関心がな い。オペレーター及び工程クラスからシステム装置に送られたメッセージは、部 分プログラムインタープリター、ユーザーインターフェース、操作卓の押しボタ ン又は吊りスイッチを含む、幾つかの発信源から起こり得る、又センサーインタ ーフェースアプリケーションはシステムクラスのどれか又は全てを通してカーネ ルと通信できる。特殊な機能では、ソフトウェア技術者は一つのクラスをバイパ スさせ直接次のクラス又はその他のクラスにアプリケーションを連結する。これ はシステム内の各オブジェクト部品向けに供給された標準メッセージフォーマッ トにより達成される。 本発明は埋め込まれたソフトウェアシステムの代表である一個のモノリ シックソフトウェアよりもむしろ一列の自律型プロセスとして設計されている。 斯くし て、信頼できて予測できるインターフェースがプロセス間通信に要求される。通 信の詳細は“トランスポーター”又はトランスポート層として参照されるオブジ ェクトの中に要約される。このオブジェクトは他のプロセスと通信するつもりの 各プロセスによって嗾けられる。他のプロセスへの通信は記号名により要求され る。 プロセスのディレクトリーは記号名により種々のプロセスを同定するの を許す。連続的に走っているプロセスで“ディレクトリーサービス”として参照 される共通にアクセスできるプロセスはシステムと連結している全てのプロセス がその存在、記号名、及び通信チャネルを登録することを許す。定期的に、ディ レクトリーサービスは未だ機能しているかどうかを決定するために全ての登録済 みプロセスに質問する。もしどれかのプロセスが機能していないことが決定した ら、それはディレクトリーから除去されその通信窓口は閉鎖される。この共通に アクセスできるプロセスは、予め決定されたメッセージプロトコルを持っていて 、他のプロセスが自由に開発され保守されることを許す。 メッセージオブジェクトはプロセス間を伝送されるデータの基礎クラス として定義される。メッセージオブジェクトは他のプロセスに情報を送るために 必要な基本的情報の全てを含んでいる。メッセージの特別な導出はメッセージ基 礎クラスから継承される。これら導出されたメッセージの内容は共通に定義され た特性を持つ。メッセージは実行されるべき動作の受け取りプロセス又は伝送さ れている情報のタイプを知らせる識別子を含んでいる。識別子はデータの順序付 けの特別な詳細が第3者には透明であるようなオブジェクトとして設計されてい る。又、これは未だ計画されていない他のメッセージクラスのための基礎クラス としてメッセージに使用されることを許してもいる。 プロセス間通信のメッセージ方式はシステムとの相互連絡用のプロセス の自由な開発を容易にする。トランスポーターは実際のメッセージ伝送を実行す るのにOSの特徴を利用する。別のOSがシステムのコアに使 われている場合は、トランスポート層はソフトウェアの休止の影響無しで容易に 交換される。最も普通のシステムでは、他のコンピュータープラットフォームに システムを移すことはシステムソフトウェアの重大な修正を引き起こす。本発明 のオブジェクト指向メッセージ受渡し方式によって、システムは他のコンピュー ター環境により容易に移される。このメッセージ受渡し方式ははっきり定義され たインターフェースとフォーマットはロバストなソフトウェアの構築と保存に重 要な役割を演ずるのでソフトウェアの不備の影響も制限する。クラス間送信のメ ッセージ用の一般フォーマットは共通ヘッダーと各特定メッセージで独特の引数 を含むデータ構造で組立てられている。ヘッダーは全てのメッセージに共通な幾 つかの変数を含んでいる。メッセージは効率上可変な長さで設計される。メッセ ージタイプは送られているメッセージ(例えば、較正用メッセージ)のクラスに 独特な静的識別番号である。特定のメッセージ伝送の各々に独特な、トランザク ション番号は、メッセージが送られてそのメッセージに応答を合わせるのに使わ れる時に割り当てられる。応答メッセージはそれが要求メッセージのIDとトラ ンザクションの場を使用するように組立てられる、そしてその状態は要求に従っ て‘受信した’又は‘完了した’又は‘否定した’に設定される。これはどの要 求が応答に関連しているかを明らかにする。応答はそれらに関連して引数を持た ない。受渡される引数を要求するどんな物でも新しいメッセージなのか検討され る。 例えば、IOS endNodeメッセージへの応答は引数として受渡されるデータ場付きのIOInfoメッ セージである。メッセージ構造の一例を以下に記す: メッセージには三つのタイプがある:アクション、情報ブロック(info )、及びサイクル。アクションはシステム部品間の基本通信を管理することを要 求され又一つの機械のタイプからもう一つに変更しないシステムメッセージであ る。Infoメッセージはシステム部品により要求されたか又は例えばボタン事象、 打鍵又はマウスクリックに関係して送られるかのどちらかの情報のブロックを含 んでいる。サイクルは一つの機械からもう一つのに変更できる特殊処理を実行す るメッセージである。サイクルは論理制御器プログラム中のはしご型論理シーケ ンスにより支援されている。新規と既存のサイクルを使用するに加えて、システ ム設計者はオペレーター操作卓から対話型入力を許す特殊処理を作るのにはしご 型論理と協力してソフトキーとプロンプトメッセージの利点を採れる。例えば、 工具交換機較正は特殊なソフトキーに応答するはしご型論理シーケンスを援用す ることで実行できた、それで特定の機械の較正を為すための論理的必然を果たし ている。これはシステムにハードコード化したソフトウェアを要求しないし又制 御技術者の助け無しでシステム設計者で完全に作り上げられるであろう。 どの部分プログラムインタープリター(PPI)でもそれが実施例のイ ンターフェイスを用いる限り使用できる。 オペレータークラスの部品は次の物を含んでいる:会話型部分プログラ ムインタープリター、NC(数値制御)インタープリター、手動モードユーザー インターフェース、自動モードユーザーインターフェース、診断ユーザーインタ ーフェース、会話型プログラミング用 プログラムエディター及びNCプログラミング用プログラムエディター。 工程クラスは多重クラスオブジェクトを用いている予めパッケージされ たオブジェクトを含む。アプリケーションがパッケージされたサイクルを使用す る時、オペレーターは操作のタイプを明確にして必要な可変情報だけを定義でき る。それでシステムは操作を完全に定義するために追加計算を作る。例えば、オ ペレーターがつついて穴をあけるドリル操作のような成形工程をプログラミング する時、オペレーターはつつきのタイプと深さ(そのためにX,Y,Zの寸法を 定義する)を簡単に明確にする、そしてシステムはつつき工程中のドリルの正確 な動きを決定する缶詰にしたサイクルを利用する。もう一つの例は被加工物を成 形するのに用いるミーリング操作を表現するミーリングオブジェクトであろう。 そのオブジェクトはその上切削されるべき形状が被加工物から除かれるべきか被 加工物に残されるべきかどうかを定義する手段を含んでいる。オブジェクトは又 オブジェクトによって定義された工程が行われたかどうかの代理を意味する続き 状態も含んでいる。一実施例では、パッケージされたサイクルが殆ど修正のない 別のオペレータープログラムで使用できるライブラリー中に含まれている。これ らのサイクルは予めプログラムされた共通機械加工操作でありドリル、タップ、 つつき及びリーマーを含んでいる。 機械クラスはカーネルとオペレータープログラムの詳細と缶詰サイクル の間の装置指向インターフェースを作っている。機械クラスはオペレータープロ グラムとカーネルの間の装置責任を処理することによりシステムの複雑性を管理 する。機械クラスはオペレータープログラムのカーネルへの連絡を確立してモニ ターし又アプリケーションとカーネルの間のメッセージを処理する。各アプリケ ーションはカーネルに共通な方法でインターフェースするために含まれている機 械クラスのコピーを持っている。共有したデータは全てのアプリケーションが同 じ機械クラス状態情報を使用することを確実にする。 機械クラスはオブジェクト指向型設計を使用しているので、各装置用の 可能機能により特定の装置を定義するオブジェクトを含んでいる。例えば、スピ ンドルオブジェクトの幾つかの可能機能は運転、締め付け及び停止である。オブ ジェクトのデータは速度範囲と現在速度を記述する。オペレータープログラムは 必ずしも全ての機械クラスオブジェクトの機能を使うわけではないが、その機能 はカーネルによって使用可能で支援されている。 代表的には、機械クラスのコピーはカーネルに共通なインターフェース を提供するために用いられている各オペレーターアプリケーションに付加される だろう。更に、顧客は、同じ機械クラスが全てのオペレータープログラムによっ て使われている限り、使われている機械クラスの機能性を拡張しても良い。機械 クラスの一実施例は次のオブジェクトを含む:押しボタン操作卓、揺動スイッチ 、軸、軸グループ、スピンドル、工具交換機、冷却材及び潤滑油。 カーネルは複数のサーボ軸の調整をとり且つ離散的なI/O制御を備え るメカニズムを提供する。CNCアプリケーションはカーネルの部品、論理制御 器と運動制御器、と機械クラスを通して通信する。これらカーネルの部品は如何 にして与えられたハードウェアにオペレータープログラムのコマンドを実行する かを決定する。更にそれは線形、円、楕円、螺旋、及び多項式を含む補間アルゴ リズムの幾つかのタイプを支援する。アプリケーションは機械クラスメッセージ インターフェースによって運動制御器と通信する。 論理制御器(LC)は二つのプログラムを含む:プログラマブルはしご 型論理とLCエンジン。LCはLC上を走る論理プログラムの作成を簡単にする ためにオフラインか又はオペレーターレベルでかの何れのウィンドーベースのプ ログラム環境を使用する。LCはまたはしご型論理操作の変更、デバッグ、及び モニターのためのソフトウェアツールも有している。 本発明のプラットフォームサービスクラスはオペレータープログラムと 第3者ソフトウェアをシステム に連結することを許す構造を備えて他のソフトウェアアプリケーションと通信す る。制御システムの連結と通信には四つのサービスがある: 立上げシーケンス‐立上げの間にスタートする 順に全てのオペレータープログラムをリストに した、PCのautoexec.batファイルと同等な、 ファイル; ディレクトリーサービス‐全ての能動プログラ ムの登録; 機械構成ライブラリー‐アプリケーション構成 のためにデフォルト機械パラメーターを貯蔵す る共有メモリー領域。これはマイクロソフト社 のウィンドーズシステムのwin.iniファイルと 同等である;及び 例外報告部‐能動アプリケーションに入り込む 全ての誤りを集め、組織化し、貯蔵し且つ分配 する。 ディレクトリーサービスは全ての走っているアプリケーションをリスト した‘電話帳’を含んでいる。アプリケーションはディレクトリーサービスに登 録して通信の必要がある他のアプリケーションのアドレスを受取る。ディレクト リーサービスはどんな特殊な通信連絡も引き受けない。このことはシステムが本 発明の実施例のインターフェースを使う他のアプリケーションの追加を許すよう に動的に構成できることを意味している。アプリケーションはディレクトリーサ ービスから受取ったアドレスをそれ自身のディレクトリーの中に貯蔵する。機械 構成パラメーターを必要としている、カーネルのようなアプリケーションは機械 構成ライブラリーが情報を貯蔵している共有メモリーからこれらのパラメーター を検索できる。 本発明に関連する使用可能OSはIEEE-1003.1 POSIX(UNIXのアプ リケーションプログラミングインターフェースの規格)と実時間拡張を定義する IEEE-1003.4POSIX規格に従う。本実施例では386 PC/AT又はそれより大きいコン パティブルなコンピューター上を 走る、実時間UNIX様オペレーティングシステムである、LynxOSを使用 する。LynxOSは以下の特性を有する:(1)POSIX 1003.1,POSIX 1003.4 実時間拡張及びPOSIX 1003.4aひも付きインターフェースに従う;(2)完全な UNIX両立性(2値及びシステムVソース、BSD 4.3ソース);及び(3)完 全な決定性、ユーザー定義の優先度レベル付きマルチタスクを含む、実時間Ad aの多重支援、要求時ページングする仮想記憶の提案、再コンパイル無しで在庫 品で対話型UNIXシステムVのソフトウェアを走らせる、又TCP/IPとN FSを含んでいるネットワークと通信資源。170以上のUNIXコンパティブ ルなユーティリティと標準UNIXライブラリーを含んでいるLynxOS開発 ツールも利用される。一実施例で使用されるツール一式はDOSI/O 資源、 デバッガーソフトウェア、再入可能装置起動部、C,FORTRAN,Pasc al,BASIC,及びAda用のコンパイラー、GNUパッケージ(GCC, Emacs,GDB,C++)、Xウィンドウシステム、Motif、Network File Sharing(NFS)及びTransmission Control Proto-col/Internet Protoc ol(TCP/IP)を支援する。 装置起動部クラスはOSとI/O周辺機器(例えば、シリアル通信ポー ト)、ビデオディスプレイ、及び大容量記憶装置のようなハードウェア装置との 間のインターフェースを形成する。装置が立ち上げられた(ブートタイムで又は 動的に)時及びアプリケーションプログラムが装置にアクセスする必要が出来た 時OSはこれらの起動部を呼び出す。実施例中の装置起動部は多数の装置を扱う ことが可能で高い優先度のタスクに素早く応答する。本発明は次のタイプの起動 部を含んでいる:PC/AT打鍵盤とマウス、アナログ入出力カード、SCSI 装置起動部、フロッピーディスク装置ドライブ、イーサネットインターフェース 、インターネットメッセージと伝送制御プロトコル、インターネットプロトコル とプロトコル族、インターネットユーザーのデータグラムプロトコル、疑似端末 装置駆動部、ハードコピーとビデ オ端末インターフェース、NFSクライアントI/Oとサーバー起動部、CAN bus、及びMATRIX4。 [発明の詳細な説明] ハードウェアの概要 図1は本発明の制御システムが処理し得る代表的なCNC機械の概略図 である。標準PCコンパティブルなISAバス10はCPU処理部11及びそれ に関連したマザーボード、なるべくならインテル社の80486クラスのマイクロプ ロセッサー、と連結されている。バスは又択一的に直接マザーボードに連結され る、RAMメモリー12にもアクセスできる。ISAバス10は任意選択的にネ ットワークへのインターフェース13を備えられる。ハードとフロッピーの両方 のディスクドライブを有している、大容量記憶装置14も又、標準通信ポート2 0、運動制御ボード18(なるべくならVMEバス上に組み合わせ装着されたDS PCG社(Minneapolis,MN)Matrix 4/Vector 4)、及びビデオインターフェース 15と同時に、ISAバス10に連結されている。 一実施例では、システムのCNC機械特有のハードウェアはCANbu sバスシステム経由で相互連絡している。従って、CANbusインターフェー スカード16も又ISAバス10に位置している。CANbusケーブル17は 他のCNC機械のハードウェア部品と連結して、CNC機械のオペレーター操作 卓19、揺動スイッチ21、及びサーボモーター25,26、それらの間の通信 に与る。一般に、運動制御ボード18、又はCANbusインターフェース16 とCANbusケーブル17は、サーボモーター22−26及びそれに連結して いる軸又は工具設備のような、可動工具に要求信号を転送する手段を提供する。 サーボモーター22−24は、夫々工作機械のX,Y及びZ軸のような、被加工 物を成形する可動工具を制御する、一方サーボモーター25は切削工具を回転さ せるスピンドルを制御する。サーボモーター26はミーリングの刃のような被加 工物を成 形する複数の工具を保持する工具交換機を制御するか、又は回転テーブルを制御 する。 システムはI/Oカードを分配された新CANbusを含む工業規格カ ードを使用する。このバスはユーザーがキャビネットにカードを挿入するよりも むしろシステムにノードを付け加えることを許す。カードの高い利用性が低価格 と高信頼性を維持している。標準ボードのサイズと取り付け孔はシステムを変更 と格上げに対してオープンにしている。打鍵盤、トラックボード、及び揺動スイ ッチはシステムにCANbusのノードとして連結されている。打鍵盤は信号の 品質を落とさずに主プラットフォームから離れて置かれても良い。然し安全規格 に従って、非常停止ボタンと電源オン/オフスイッチは直に配線される。 本発明の制御システムには二つのバックプレーンバスがある:ISAと VME。両者は共にLynxOSとPOSIX規格に合っていて制御システムソ フトウェアと通信する。CANbusとMATRIX4どちらのバスを用いても 、視覚、第二軸、及び温度のセンサーのような補助センサーに基づいた実時間パ ス補正を許す。 システムのI/OバックボーンはCANbus、マルチマスター直列バ スである。CANbusはそれがI/O周辺機器へのインターフェースを標準化 するために種々のタイプのPC構成とCANcoreモジュールを有しているの で、多くの異なったアーキテクチャーを作る構造が出来る。CANcoreは顧 客が工業規格SPI(Serial Peripheral Interface)バスを通って周辺I/O に連結するのを許すCANbusのノードとして働く。 本システムはシステム統合の価格を下げ、モーター制御システムの性能 を上げ、又顧客が選択の源となる部品を創り出すためにMATRIX4を使用す る。この制御器はISAとVMEの両方のホストプラットフォームで共に使える 全ディジタルの4軸位置制御器である。制御器設計の柔軟性はユーザーが市販の どんなモーター設計にも本制御器を適用することを許す。本制御器はD Cブラシ、DCブラシレス、及びAC誘導モーターへのインターフェースが可能 であり、又動的にプログラムされるべき殆どのパラメーターを許す。これは環境 又は操作条件に変化があった場合に即座に最新のものにすることを許す。 オブジェクト指向システムの概略 本発明のCNC機械制御システムのソフトウェア部品の広いカテゴリー の概略が図2で示される。オペレータークラスには一般に部分プログラムインタ ープリター(PPI)又はユーザーインターフェースとして分類されるソフトウ ェアプログラムがある。この型のソフトウェアは一般に当業界にはよく知られて いて、それが情報を通信する方法を除いて得られる残りのソフトウェア部品は、 本質的に本発明の一部を為している。PPIはオペレーターが被加工物を加工す るために入力ステップに質問するか、又はユーザーが製造記述をディジタルに貯 蔵した部分を有するデータファイルを明確にするのを助ける。一度その部分につ いての情報が得られたかどうかには関係なく、PPIは更に後述するように工程 クラスで適当なオブジェクトを動的に創り出す。 本発明の制御システムはソフトウェア部品がデータと機能から創り出さ れ又オブジェクト内で組織化されるようなオブジェクト指向設計とオブジェクト 指向設計のプログラミングを使用する。ソフトウェア部品はオブジェクト間を送 られるメッセージによって通信する。オブジェクトは二つの部分:データとメソ ッドを持っている。オブジェクトはシステムが扱う基本的な物(例えば、スピン ドル、工具交換機、又は運動のタイプ)の抽象的表現である。オブジェクトの属 性はオブジェクトに記述するが、それを如何に加工するかではない。オブジェク トのメソッドは、何かが起こった時にオブジェクトが為すであろうことを記述す る命令、プログラム、手続き、又は動作である。そこでスピンドルオブジェクト のメソッドは立ち上げ、起動、方向付け、速度上乗せ、そして停止である。オブ ジェクトのデータは速度範囲と現在速 度を記述する。 オブジェクト指向プログラミングを用いて、オブジェクトはクラス、オ ブジェクトの青写真を用いて早く創ることが出来る。クラスはそのオブジェクト の全てに共通な基本変数を確立する、そして新しいオブジェクトは親クラスから これら共通の特性を継承する。この特徴はソフトウェア技術者が既存の設計とコ ードの上に一般クラスで容易に再利用されるコードからより特殊なオブジェクト を創って構築することを許す。例えば、ソフトウェア技術者はスピンドルの様な より特化した装置のモデルを創るために‘装置’用特性の一般クラスを使用出来 る。メソッドはオブジェクトに属し、如何にして動作を行うか又は動作がそのオ ブジェクトに行われた時に如何に反応するかを表示する。システムはメソッドを 通してデータにアクセスするだけである。それ故、メソッドはオブジェクトのデ ータを隠して操作を行うメッセージを送る。斯くしてこれは元のオブジェクトの 配列を変えずに加えられるべき新しい特徴を許しつつ特殊なデータ構造への依存 性を隔離する。この構造はモノリシックな特許システムで変更中に共通に起こる 損傷からデータを保護する。 データ特性に関して、メソッドは新しいクラス又はオブジェクトが創ら れた時に親クラスからの継承も出来る。勿論、新しいクラス又はオブジェクトは そのメソッドを使用できるか又はそれの別のバージョンを創っても良い。別のオ ブジェクトは同一のメソッドを使用できる。それ故、ソフトウェア技術者は唯一 度メソッド用のコードを書くだけでその後はそれを再利用する。既存のオブジェ クト指向型コードの再利用性は書き込みと保全が少なくなるのでより速やか開発 と修正が出来る。オブジェクト指向メソッドを使う更なる利点は変更の局所化で ある。データ隠しはその他のコードからコードを切り離し又メソッドの再利用は システムの条件又は処理状態でコード全体の記述とその他の参照の切換の必要を 除いた。これは変更の波及効果を制限し、大きく複雑なプログラムの保全を容易 にする。 本発明ソフトウェアの制御システムはソフトウェアにマッチしたライブ ラリーのクラスを含む。これらのライブラリーは期待結果と呼ばれる機械加工手 続きと機能を含む。これらのライブラリーは拡張されたand/orとして使用される オブジェクト指向クラスの中にグループ分けされる。コアライブラリーは基本的 な操作で必要とされる最も基本的な特性を含んでいる。 ソフトウェアは部品間の通信を容易にするために双方向メッセージイン ターフェースを使う。メッセージはCNCアプリケーション(PPIと工程クラ ス)とカーネルの間で受渡される。アプリケーションからカーネルへの通信は、 カーネル通信はカーネルのためにより精密に定義されているので、アプリケーシ ョン間の通信とは違っている。各部品はメッセージで通信する。これらのメッセ ージは違った要求を持っている。メッセージは通信を効率化するため管理されて いる。不定の独立なメッセージは即座に実行される。規定の従属なメッセージは 順番を待たされる。待ちのメッセージは前のメッセージが完了するまで実行され ない、又各部品は分けられたメッセージの待ち行列を保持している。 本発明のCNC制御システムの重要な特徴は既存のシステムを新システ ムに容易に移せることである。この特徴の明白な利点は未来の技術への移住パス を用意する時に既存のシステムの特徴を保存することである。ユーザーが既存の ソフトウェアを本発明の制御システムに移すのに二つの方法がある:(1)すぐ に使える‘C’システムを移植、又は(2)C又はC++に手続きコードの変換 。 機械クラス 機械クラスはカーネルと工程クラスへのオブジェクト指向インターフェ ースである。このクラスはCNCアプリケーションからカーネルとメッセージイ ンターフェースの複雑性を隠すための機械の装置特定アプリケーションの手続き を含む。これは機械クラスとCNCアプリケーション(工程クラス/PPI)の 間のインター フェースにより成就される。アプリケーションはカーネルにメッセージを送る機 械クラスオブジェクトに標準機能を呼び出す。機械クラスオブジェクトは、通信 ポートの生成、適合する通信機能の使用、及びCNCアプリケーションへの受渡 しメッセージの返送を含む工程クラスオブジェクトとカーネルの間の全ての通信 を処理する。明確な機械クラスの責任はカーネルへの資源と連結の配分、カーネ ルとCNCアプリケーションの間のメッセージ処理、及び装置状態の監視と管理 である。 システムが始動する時、機械クラスはアプリケーションが各アプリケー ションからカーネルへのポートを必要として生成する資源を配分する。ポートが 生成された後、機械クラスはカーネルと各起動中のアプリケーションの間の両方 向連結を生成しているポートに記録する。これはメッセージがアプリケーション からカーネルまでを往復送信するのを許す。機械クラスの多重コピーはシステム で使用可能である。事実、機械クラスのコピーを使用中の各アプリケーションに 付加することは習慣になっている。 カーネル カーネルクラスはCNCアプリケーションが機械を制御するメカニズム である。カーネルは離散的なI/Oを制御し運動軸を整合させるメカニズムを提 供する。この一般的制御器は多くの機械加工アプリケーションに使用可能である 。カーネルは二つの部品を含む:論理制御器と運動制御器。運動は多軸整合を行 う。その基本的な形態では、それは五つの整合された軸プラス一つのスピンドル と二つの補助軸を制御する。更にそれは線形、円、楕円、螺旋、及び多項式を含 む幾つかのタイプの補間アルゴリズムを支援する。アプリケーションはメッセー ジインターフェースにより運動制御器と通信する。 論理制御器(LC)エンジンは最低水準で機械を制御するはしご型論理 /GRAFCETプログラムを実行する。LCエンジンが実行する二つのプログ ラムがある:ユーザープログラムとシステムプログラム。LC は又はしご型論理操作を変更、デバッグ、及びモニターするツールも持っている 。 オペレーティングシステム(OS) 実時間、UNIX、実行環境はその診断と応答可能性を持つ実時間環境 の標準利点の全てを備えている。更に、Xウィンドウが標準、グラフィックス、 ユーザーインターフェースである。Xウィンドウは幾つかのプログラムで同時に 分配される種々の入力装置(例えば、マウス、打鍵番、グラフィックディスプレ イ)を許す。この柔軟性は開発者に基本システムグラフィックスについて関係な く専門知識の分野にてこ入れを許す。このウィンドウディスプレイインターフェ ースはユーザーに一つの機械を走らせ他の一つにその出力をディスプレイして、 CNCアプリケーションの明確な利益を許す。MotifはXウィンドウにより 生成されたウィンドウを管理する。このマネージャーはユーザーにスクリーン上 のウィンドウのサイズと位置、及び動作ウィンドウの同定を制御することを許す 。このソフトウェアはシステム開発に使用するXウィンドウ項目のライブラリー も備えている。TCP/IPはイーサネット上を走るネットワークプロトコルで ある。それはXウィンドウが遠隔手続き呼出しの様なネットワーク透明性活動を 行うことを許す。そのファイル分配能力はプログラマーがファイルをダウンロー ドする必要がないことを意味する。 プラットフォームサービス プラットフォームサービスクラスは以下の機能を備えている: 立上げシーケンス‐通電中に起動する順序で全 てのアプリケーションをリストしたファイル; ディレクトリーサービス‐全ての活動アプリケ ーションの登録; 機械構成ライブラリー‐デフォルト機械のパラ メーターを保持している割り当てられたメモリ ー領域; 例外報告部‐活動アプリケーションへ関与する 全てのエラーを集め、組織化し、貯蔵して配分 する。 アプリケーションはディレクトリーサービスで登録し通信の必要な他の アプリケーションのアドレスを受取る。アプリケーションはディレクトリーサー ビスから受け取ったアドレスをそれら自身のディレクトリーに貯蔵する。カーネ ルのような、機械構成パラメーターを必要とするアプリケーションは機械構成ラ イブラリーが情報を記憶している割当てメモリーからそれらのパラメーターを検 索できる。 アプリケーション間のメッセージはPOSIXメッセージの待ち行列を 使用する。これら待ち行列は実行時に生成され独特の名前を持つ。各アプリケー ションは、電話を使う時を除いて一つの装置でメッセージを受取る、各アプリケ ーションは多くの別のアプリケーションと通信できる。 立上げシーケンスは通電中に起動する順序で全てのアプリケーションを リストしたinitスクリプトファイルである。それはOSが立上がった後で実行さ れる。立上げシーケンスの主要責任は以下のことである: 種々のCNCシステム起動部のロード(CANbus,MATRIX4, 及びシリアルポート起動部); ディレクトリーサービス、例外報告部、カーネル、及びユーザーディス プレイのスタート; 機械構成ライブラリーの生成; リストにされたアプリケーションのスタート。ユーザーはこの台本の作 成と変更をしても良い。それは装置駆動部、プラットフォームサービス、及びX ウィンドウシステムで始めるべきである。台本中のその他のアプリケーションは CNCアプリケーションとカーネルの中の運動サブシステムと論理制御器である 。台本の作成又は変更には、顧客はエディター(Vi)又は対話型計画プログラ ムを使える。台本は又ソフトウェア立上げプログラムでも自動的に生成できる。 以下は代表的な立上げシーケンスの台本である。 プラットフォームサービスメッセージ メッセージは可能な修飾子(qualifier)付のコマンド動詞を用いてい る標準文法を持っている。修飾子には三つのタイプがある: 構造体(Structure)‐変数のタイプを定義する。 列挙子(Enumeration)‐修飾子の名前の付いた定数値の結合を許す整数値のリ スト。 共用体(Union)‐(違った時に)違ったタイプとサイズのオブジェクトを保持 できる変数。それはプログラム中のどんな機械依存情報の埋込みのない単一記憶 領域で別の種類のデータを操作するのに用いられる。 要求される修飾子は大文字で始る、又任意の修飾子は大文字は用いない。 メッセージ構造体 プラットフォームサービスにより使用されるメッセージはこの基本構造 を持つ: 動詞修飾子 動詞はメッセージの要求を記述する。プラットフォームサービスの部品で使われ る動詞は‐ Add‐ アプリケーションにリストする電話帳を確立する Get‐ 割当てられたメモリー中にアプリケーション又は構成情報のアドレス を見つける Update‐ アプリケーションに新しい情報を提供する Ping‐ アプリケーションの状態(活動か休止か)を検査する Request‐ 条件が変ったときに通知されるべきか調べる。修飾子はデータ構造体 の要素に従うデータ構造体の名前である。これらの修飾子は他の修飾子から組立 てられる(例えば、ダイナミックデータ構造体)。動詞は修飾子上で活動する。プラットフォームサービススキーマ スキーマはプラットフォームサービスで用いられる全てのメッセージと 大域データ用のデータ構造体修飾子を定義する。プラットフォームサービスのメ ッセージは次の修飾子を使用する: ・ String ・ PhoneListing ・ Description ・ Value ・ FieldPtr ・ FieldCount ・ DataType ・ ErrorCode 以下の修飾子記述はテキストの形で及び‘C’コードでの定義及び‘C’コード データの名前の定義を含む。 String StringはASCII文字の集合を記述している構造体である。’C’データ構造体は 以下である: Description Descriptionはメッセージの中の変数概念(例えば、誤り条件)を説明するstrin gである。’C’データ構造体は以下である: typedef String Description; FieldPtr FieldPtrは機械構成データベースの中の索引である。‘C’データ構造体は以下 である: typedef int FieldPtr; FieldCount もしフィールドが配列(array)であるならば、FieldCountは配列中の要素(ele ment)の数を示す。’C’データ構造体は以下である: typedef int FieldCount; PhoneListing PhoneListingはディレクトリーリストの中のアプリケーションのアドレスを表す データ構造体である。’C’データ構造体は以下である: DataType DataTypeはデータ表現の列挙子である。‘C’データ構造体は以下である: Value Valueは変数データタイプを表現する共有体である。 DataTypeはデータのサイズとタイプを定義する。‘C’データ構造体は以下であ る: ErrorCode ErrorCodeは例外の列挙子である。’C’データ構造体は以下である: ディレクトリーサービス ディレクトリーサービスはシステムアプリケーションの登録係として機能する。 ディレクトリーサービスの責任は以下である‐ システムの中のアプリケーションのリストを保守する これらが未だ稼働中かどうかを見るアプリケーションを定期的に検査す る(ping) 登録アプリケーションの待ち行列のアドレスを提供する アプリケーションはそれらの独特な ASCII名前をリストすることでデ ィレクトリーサービスの電話帳に登録する。それでアプリケーションが他のアプ リケーションと通信できる前に、それはディレクトリーサービスの電話帳からPO SIXメッセージ待ち行列アドレスを要求する。各アプリケーションはそれ自身の 電話帳を持っている。それは通信が必要な他のアプリケーションのアドレスだけ をリストする。 アプリケーションの休止 ディレクトリーサービスはそれらが未だ稼働していることを確かめるた めに全ての登録アプリケーションを定期的に検査する。もしアプリケーションが 休止し たならば、ディレクトリーサービスは休止したアプリケーションを登録アプリケ ーションのリストから除き、そのアプリケーションのポート連結のコピーを破棄 し、そして全ての残った登録アプリケーションにアプリケーションが休止したこ とを通知する。その時点で、残りのアプリケーションは休止したアプリケーショ ンから連絡を絶つ必要があるかどうかを決定する。アプリケーションはそれら自 身のディレクトリーから休止したアプリケーションとの関係を除くことで連絡を 絶った後きれいになる。 ディレクトリーサービスへのメッセージ アプリケーションは電話帳への登録及び他のアプリケーションのエント リーで電話帳を検索するためディレクトリーサービスにメッセージを送る。これ らのメッセージは前述の標準メッセージ構造を使用する。 アッド(Add) アプリケーションはアプリケーション用にリストした電話帳を確立する ためにディレクトリーサービスにアッドメッセージを送る。アッド動詞は要求さ れる要素Name,PortName,ProcessIDによりPhoneListing修飾子を使う。メッセー ジ構造体は‐ 期待される応答 ディレクトリーサービスがその電話帳に新しいエントリ ーを加えた時、‘アッデッド(Added)’応答が電話帳がうまく最新版になった ことを表示するのに送られる。もしディレクトリーサービスがその電話帳を最新 版に出来なかったならば‘ノットアッデッド(NotAdded)’応答が送られる。 Get アプリケーションは通信を欲するアプリケーションアドレスを見つける ためにディレクトリーサービスにGetメッセージを送る。Get動詞はPhoneListing 修飾子を使う。メッセージ構造体は‐ 期待される応答 ディレクトリーサービスが要求アプリケーション用の電話帳からエントリーを検 索する時、それは電話帳がうまく検索されたことを表示するために‘Got’応答 を送る。ディレクトリーサービスが電話帳に見つけられなかったならば‘NotGot ten’応答が送られる。 ディレクトリーサービスは以下の二つの条件下でアプリケーションにメッセージ を送る: ・ アプリケーションが未だ活動できることを見るための検査(Ping) ・ 他のアプリケーションがもはや活動できないことをそれ以外のアプリケ ーションへの通知(Update)これらのメッセージは前記の標準メッセージ構造体 を使用する。 Ping Ping動詞はProcessName修飾子を使う。メッセージ構造体は‐ Update ディレクトリーサービスはアプリケーションに他のアプリケーションの状態の変 更のアプリケーションを通知するUpdateメッセージを送る。Update動詞はPhoneL i-sting修飾子を使用し又この構造体は‐ 機械構成ライブラリー 機械構成ライブラリーは共有記憶(shared nemory)領域にアプリケーションの デフォルトパラメーターを備えている。このサービスの責任は以下にある‐ ファイルシステムから立上げパラメーターをロードし且つ分配する アプリケーションにパラメーターを分配する 幾つかの共通パラメーターはスピンドルの最大加速度、最大回転数(RPM)、及 び各軸の移動限界とフィードフォワードゲインである。アプリケーションは三つ の情況下でこれらのパラメーターにアクセスする: 立上げパラメーターでアプリケーションが起動中 運転中に操作パラメーターが必要になった時 チューニング又はその他の操作がその構成パラメーターに関してアプリ ケーションを必要とした時 このパラメーターライブラリーは大域にアクセスできる共有記憶領域でデーター を読み書きするのに、C++オブジェクト、システム変数を使用する。ライブラ リーは又構成の生成、ロード、システム変数記憶領域への情報のプリント、リス ト、保存(save)、復旧(restore)、及び消去(remove)するユーティリティ も含む。システム変数オブジェクト システム変数オブジェクトは七つのデータタイプを支援する: Bytes Strings Doubles Integers Short Integers Long Integers このオブジェクトも又ディスクを出入りするパラメーター情報の保存と読出しの メソッドを含む。システム変数メソッドは以下にリストされる: BasePtr‐共有記憶へ基本ポインターを返す。 Close‐共有領域への連絡を閉じる。 Field‐フィールドネームで明確にしたフィールドを見つけるためSVField(次節 で述べる)を呼出す。 FieldCount‐フィールドの要素の数を数えてパラメーターカウントを返す。 FieldSize‐フィールドのサイズを取入れてパラメーターサイズを返す。 FieldType‐データのタイプを取入れて、byteに‘B’、integerに‘I’、double に‘D’、stringに‘S’、short integerに‘H’、又はlong integerに‘L’を 返す。 FileName‐共有データ領域を定義するのに用いた構成ファイルネームを返す。 幾つかの付加システム変数メソッドが以下にリストされる: Get‐共有記憶に構成情報を見つける。 Update‐アプリケーション用の共有記憶に新しい構成パラメーターを入れる。 GetField‐共有領域の中のフィールドのリストを走査する。 Name‐構成ファイルの中の明確になった共有領域のネームを返す。 NumberOfField‐システム変数で定義されたフィールドの数を返す。 PostSemaphore‐共有領域への同期アクセスに使われたセマフォア(semaphore) を解放する。 Remove‐システムから完全に共有領域を削除する。 Restore‐共有領域の中に構成パラメーターの保存された2値コピーを入れる。 Save‐構成パラメーターの2値コピーを作りそれをディスクに入れる。 Size‐共有領域のバイトでの総量(使用中の共有領域の量ではない)を返す。 WaitSemaphore‐共有領域に同期アクセスするのに使われたセマフォアを取入れ る。 PostSemaphoreとWaitSemaphoreメソッドはプログラムが共有領域にアクセスする のを許し又各GetとUpdateメッセージへセマフォアの取入れと解放のオーバーヘ ッド無しに幾つかのメッセージを送る。この方式は時間を節約する。SVfield オブジェクト システム変数オブジェクトは各フィールドを記述するのにシステム変数フィール ド(SVfield)オブジェクトを使用する。このオブジェクトの使用は詳しいフィ ールド情報を提供し又個々のフィールドの探索を省略することによってフィール ドアクセス機能の効率を改善する。 このオブジェクトは次のメソッドを含む: Name‐フィールドの名前を供給する(零終端子(null terminator)を含んで3 1文字まで)。 Type‐フィールドデータのタイプを供給する(byteには‘B’、integerには‘I ’、doubleには‘D’、str-ingには‘S’、short integerには‘H’、又はlong integerには‘L’)。 Count‐フィールドネームの下に記憶されている要素の数を供給する。要素は零 から始って数えられる。 Size‐各フィールドのサイズを供給する。368/486システムでは、整数と倍数はs tringが変数の長さの場合4バイトで貯蔵される。 ユーティリティ 機械構成共有データと記憶領域を生成し管理するのに使用される幾つかのユーテ ィリティがある: SVcreate‐構成ファイルを構築する。 SVsize‐構成ファイルのサイズを検査して最小サイズを推薦する。 SVprint‐フィールドネーム、データのタイプ(B,I,H,L,D,S)、計数値(要素の 数)、及び各フィールドのサイズを表示する。 SVloadConfig‐共有記憶領域にデフォルト値を入れる。 SVlistData‐共有記憶領域に現在貯蔵されているデータ値の全てを示すファイル を創る。 SVsave‐構成ファイルで明確にされたファイルネーム の下で共有記憶領域のコピーを作る。 SVrestore‐詳細デバッグのタスク用に用いられるように6バイトでの共有領域 をダンプする。 SVremove‐システムから共有領域を削除する。構成ファイルとどの2値の保存フ ァイルも無傷で残される。 SVshmdump‐6バイトで共有領域をディスプレイする。これは低水準デバッグに 使うことが出来る。 機械構成ライブラリーへのメッセージ アプリケーションは機械構成ライブラリーにメッセージを送る。 Get アプリケーションは情報アクセスのために機械構成ライブラリーにGetメッセー ジを送る。それはこのフォーマットを使う: Get Qualifier Get FieldPtr このメッセージは〈fieldPtr〉又はフィールド記述を要求する。もし〈fieldPtr 〉がゼロならば、このメッセージは記述〈name〉にポインターを要求する。もし この記述が空ならば、このメッセージは〈fieldPtr〉で指示されるフィールドの 記述を要求する。もし〈fieldPtr〉がゼロで記述が空であるならばそれは誤りで ある。 Get FieldPtr〈fieldPtr〉Description〈name〉 要素 Get動詞に関する要素は‐ 〈fieldPtr〉 構成ライブラリーのフィール ドへのポインター 〈name〉 フィールドのネーム サンプルメッセージ: Get FieldPtr O String“MaxTravelX” 期待される応答 このメッセージは機械構成ライブラリーの中のフィールドについての情報を要求 するのに使われる。フィールドはネームを使ってか又はフィールドポインターの どちらかを記述することが出来る。 Get Description〈name〉Qualifier FieldPtr〈fieldPtr〉 Get Description〈name〉Qualifier Description〈fieldName〉 要素 Get動詞に関する要素は‐ 〈name〉 フィールドから要求される情 報の名前: Field Count Field Size Field Type Field value 修飾子 修飾子はGetの結果の場所を 保持する物である。それは又 望ましい結果のデータのフォ ーマット(int,float.string) を明確にもする。 〈FieldName〉 フィールドの名前 〈FieldPtr〉 フィールドへのポインター サンプルメッセージ: 期待される応答 構成ライブラリーは以下の応答を返す: Get Description〈name〉Qualifier FieldPtr〈fieldPtr〉 Get Description〈name〉Qualifier Description〈fieldName〉 サンプル応答 Update Update記述 このメッセージは機械構成ライブラリーの中のフィールドについての情報を変更 するのに用いられる。フィールドはネームを使ってか又はフィールドポインター のどちらかを記述することが出来る。 Update Description〈name〉Qualifier FieldPtr〈fieldPtr〉 Update Description〈name〉Qualifier Description〈fieldName〉 要素 Get動詞に関する要素は‐ 〈name〉 フィールドから要求される情 報の名前: Field value 修飾子 修飾子はフィールドの新しい valueである 〈FieldName〉 フィールドの名前 〈FieldPtr〉 フィールドへのポインター サンプルメッセージ 期待される応答 構成ライブラリーは以下の応答を返す: Updated Description〈name〉Qualifier FieldPtr〈fieldPtr〉 Updated Description〈name〉Qualifier Description〈fieldName〉 サンプル応答 例外報告部 例外報告部はカーネルによって送られる全ての自発的なエラーメッセージ(例え ば、サーボの故障)を受取る。例外の責任は以下である‐ ・ アプリケーションとカーネル向けのエラー報告を受取る ・ アプリケーションへエラー報告を配布する これは全てのアプリケーションに亘って一様にエラー処理を行う。それは特別な タイプのメッセージを受取るために例外報告部で登録されたアプリケーションへ のエラーを集め組織化する。更に、例外報告部は全ての現在未定のエラーメッセ ージを保持する。アプリが起動し検査する時、それは全ての関与するメッセージ を受取ることが出来る。 アプリケーションはそれらが受取ることを欲するエラーの厳しさ又はカテゴリー を明確にする。そこでどんなI/Oエラーが発生した時でもアプリケーションは それを例外報告部に連絡する。もう一つのアプリケーションは機械が停止するよ うな決定的なエラーだけを通知されることを欲する。 エラーメッセージと厳密さ アプリケーションは必要とするメッセージを受取るだけであるので例外報告部は アプリケーションへのエラーをフィルターする。例外報告部の待ち行列には二つ の基本的なメッセージのタイプがある: 一発メッセージ ラッチドメッセージ 一発メッセージが到着すると、例外報告部はメッセージを受取る必要のあるアプ リケーションを決定し、それらのアプリケーションにメッセージのコピーを送り 、そしてその待ち行列からメッセージを消去する。ラッチドメッセージが到着す ると、例外報告部はメッセージを受取る必要のあるアプリケーションを決定して それらのアプリケーションにメッセージのコピーを送る。然し、報告部に記憶し たメッセージの消去を命令する他のメッセージが到着するまでラッチドメッセー ジは待ち行列から消去されない。消去されなかったラッチドメッセージは新しく 起動したアプリケーションが受取る必要があるかも知れない現在未定のメッセー ジのグループを形成する。 メッセージは三つの厳密さを持っている: 情報‐他のアプリケーションに一般的関与のある条件を記述する。 警告‐電源は未だオンなのに機械の運転が停止したことを表示する。オペレータ ーは運転を続けるのに何らかの動作をとる必要がある。 決定的‐サーボ電流が切れて電源が機械制御ハードウェアから離れたことをシス テムアプリケーションに告げる。オペレーターは運転を再開するのに何らかの動 作をとらねばならない。 アプリケーションに関与するアプリケーションのカテゴリーもある: 運動 論理制御 装置層 ディレクトリーサービス 勿論、顧客が付加的なエラーのカテゴリーを定義しても 良い。そこでメッセージが到着すると、報告部はメッセージのタイプによりその 厳密さとカテゴリーを受取りを欲していることを表している各アプリケーション に合わせる。例えば、或アプリケーションは決定的な、運動制御メッセージだけ が必要で、他の一つは全ての論理制御エラーが必要かも知れない。 メッセージはこの方法でフィルターされた後、一発メッセージは全ての関与して いるアプリケーションに伝送されて待ち行列から消去される。全てのラッチドメ ッセージは関与するアプリケーションに伝送されて他のメッセージにより特別に 消去されるまで待ち行列に保持される。 メッセージフォーマット メッセージは例外報告部に報告エラーか要求エラーかどちらかの情報を 送る。二つの動詞が例外報告部に用いられる:UpdateとRequest。 Update エラー条件のアプリケーションを通知するには、例外報告部はアプリケ ーションにUpdateメッセージを送る。Update動詞はエラー修飾子を使用し以下の 構造体を持つ‐ サンプルメッセージ: Update Error Fatal loss of encoder:X axis 期待される応答 例外報告部はアプリケーションにエラーメッセージを送る。もしエラーメッセー ジがうまく送られたならば、それは‘Updated’メッセージを返送する。もしエ ラーメッセージがうまく送られなかったら、それは‘NotUpdated’メッセージを 返送する。応答は以下のフォーマットを使 用する: 要求 アプリケーションは例外報告部にそれが特定のエラー条件を通知されることを尋 ねる要求メッセージを送る。 Request ErrorCode〈Code〉 要素 〈Code〉 例外の列挙子 サンプルメッセージ: Request ErrorCode Fatal 期待される応答 二つの期待される応答動詞がある:RequestedとNotRequested。両動詞ともErroe Code修飾子を用いる。 Requested ErrorCode〈Code〉 NotRequested ErrorCode〈Code〉 オペレータークラス オペレータークラスアプリケーションは部分プログラミングソフトウェアを含む 。充分に特徴のあるパッケージで使用される会話型言語は、はっきりと言葉でオ ペレーターが催促するばかりでなく、多数選択とかfill-in-the-blank(空欄を 埋める方式)の質問を用いた質問/回答フォーマットを持っている。部分プログ ラミングを更に簡略するのに、システムはX,Y,Z軸の3次元スケーリングで 平面図、側面図、及びアイソメトリック透視図のグラフィック表示をディスプレ イする。 会話型部分プログラミングパッケージは次の項目を特徴とする: ・ パッケージサイクル(Packaged Cycles) ・ 会話型及びNCプログラムの部分とツールパスグラフィックス検証 ・ プログラマブル安全領域 ・ ‘No-Calc’プログラミング ・ 推定実行時(Estimated Run Time) ・ 99ツール参照 ・ 自動速度と供給計算 ・ インチ/メートル プログラミング ・ 様相(modal)パラメーターブロック ・ 自動Rough/Finish(精粗切換)パス ・ データブロック探索 オペレーターが部分プログラムを完了した後、効率と精度を改良するために使用 できるソフトウェアの幾つかの付加的特徴がある: ・ エラー検査 ・ テストラン機能 ・ プログラム見直し(review) ・ プログラムテキストのプリントアウト ・ グラフィックスのプリントアウト ・ アップロード/ダウンロード ユーティリティ 自動計算の特徴はシステムに充分な情報が入った後ある種の未知の次元 の計算を許す。この特徴はプログラムされた運動を直行座標及び極座標で計算し てディスプレイする。例えば、もし‘X’と‘Y’の端点座標が入って来たなら ば、システムは自動的にXYの長さとXYの角度パラメーターを計算する。XY 角度は30分の時計の位置から反時計回りで測られた線分(スタート地点から終了 地点まで)の角度である。もしXYの長さとXYの角度が入ってくると、システ ムは‘X’と‘Y’の端点座標を計算する。 カッター補正 部分プログラムが始ると、オペレーターは使用される全ての工具を記述 する。そこでプログラムは自動的に内部螺旋の工具軌道を決定する時又はミーリ ング部 分に連結する時の工具の直径を許可できる。カッター補正の使用により、工具は 卦引線から工具の半径に等しい距離だけオフセットされる。オペレーターは従来 のミーリングの如く右に補正するか又はクライムミーリングで左にするかどうか を表示しても良い。もしカッター補正特徴が必要でないならば、オペレーターは ブロックをプログラミングする時自発的な選択としてそれを選ばない。 パッケージサイクル パッケージサイクルとはドリリング、タッピング、ペッキング(つつい て穴を掘る:pecking)、及びボーリングとリーミングのような予めプログラム された、共通な機械加工操作のことである。システムはパッケージサイクルを含 んでいるから、オペレーターは操作のタイプを特定し必要な変数情報だけを定義 することが出来る。そこでシステムは操作を完全に定義する付加的な計算を行う 。例えば、オペレーターがペッキングによるドリル操作をプログラミングする時 、オペレーターはつつきのタイプと深さを簡単に特定してシステムはペッキング 工程中のドリルの正確な動きを決定する缶詰サイクルを使用する。 RS-274-D パッケージ RS-274-Dパッケージは従来型のNC(G-code)プログラミング能力を備え ている。このパッケージはオペレーターにCAD/CAMアプリケーションを走らせて いる遠隔コンピューターとかその他の周辺機器(例えば、紙テープリーダー)を 往復するプログラムを保存しロードすることを許す。これら装置間の通信はRS-2 32-Cシリアルポート上で処理される。 このパッケージのNCエディターは次の特徴を有する: ・ 文字挿入又は上書きモード ・ 任意選択のシーケンス番号 ・ プログラマブル増分による自動シーケンス番号付け ・ ブロックからブロックへのカーソルの移動(前 後進) ・ 文字から文字及び語から語へのカーソルの移動(前後進) ・ プログラムの始め又は終りへのジャンプ又は一つのページ上でのスクロ ールアップ及びダウン ・ ブロック又はシーケンス番号へのジャンプ ・ よく合ったNC語へのジャンプ又は置換 ・ NCデータブロックの自動構文検査 ・ ‘製本’プログラム用の10-要素タグ待ち行列 ・ タグの一つへのジャンプ ・ NCブロックの挿入と削除 ・ NCブロックの一範囲のコピー、移動、又は削除 ・ プログラム検証のためのグラフィックシステムとの対話 NCプログラムはこのインタープリターを通して会話型PPIにロードできる。 PPIメッセージ 部分プログラムインタープリターメッセージは可能な修飾子付の共通動 詞を使用する標準文法を持っている。三つのタイプの修飾子がある: 構造体‐変数のタイプを定義する。 列挙子‐修飾子の名前の付いた定数値の協力を許す整数値のリスト。 共用体‐違ったタイプとサイズのオブジェクトを(別の時に)保持する変数。そ れはプログラム中のどんな機械依存情報の埋込みのない単一記憶領域で別の種類 のデータを操作するのに用いられる。 要求される修飾子は大文字で始る、又任意の修飾子は大文字は用いない。 メッセージ構造体 本システムで用いられるどの部分プログラムインタープリターも同じ基 本メッセージ構造体を持っている: 動詞修飾子 動詞はメッセージ要求を記述する。PPIで使われる動詞は‐ Interpret‐軸位置と速度についての情報を見つけるUpdate‐軸位置と速度につ いての新情報を供給する修飾子はデータ構造体の要素によって追従されるデータ 構造体の名前である。これらの修飾子は他の修飾子(例えば、動的データ構造体 )で組立てられる。動詞は修飾子上で活動する。 PPIスキーマ スキーマはどの部分プログラムインタープリター(PPI)によっても使 用される全てのメッセージと大域データ用のデータ構造体修飾子を定義する。メ ッセージは次の修飾子を使用する: ・ String ・ Description これら修飾子の以下の記述はテキストの形式及び‘C’コードでの修飾子の定義 ‘C’コードデータの名前の定義を含む。 String StringはASCII文字の集合を記述する構造体である。‘C’データ構造 は以下: Description Descriptionはメッセージ中の変数概念(例えば、エラー条件)を説明 するstringである。‘C’デ ータ構造は以下: typedef String Description; インタープリターメッセージ システム中で働くどの部分プログラムインタープリターも二つの標準メ ッセージを使わねばならない: InterpretとUpdate。 Interpret InterpretメッセージはインタープリターにRS-274の断片を送る。 Interpret Description〈programBlock〉 InterpretメッセージはPPIに部分プログラムの実行開始を指示する。 〈programBlock〉RS-274 program block 期待される応答 もしPPIがプログラムブロックを解釈できるならば、それはInterpreted メッセージで応答する。もしPPIがメッセージを解釈できないならば、それはNot -Interpretingメッセージで応答する。Interpretコマンドのどれかの期待される 応答は‐ 『以下の2行は原文のp54,14〜15行』 Update RS-274プログラムは多くの様相を形作る。これら様相の最初の値はUpda teメッセージを使って設定できる。 期待される応答 PPIは様相が設定されたことを表すのにUpdateメッセージで応答する。 もし様相が定義されないならば、 NotUpdatingエラーメッセージが返送される。 構成パラメーター この章の後で述べる、統合ツール(Integration Tools)は統合器(int egrator)が機械に制御を適応させるとき制御の動作を対話的に修正することを 許す。OEMは以下の項目のパラメーターを修正できる: ・ 運動学 ・ サーボチューニング ・ 安全領域 ・ 最大供給量と速度 ・ 案内ねじの写像 ・ 遠隔通信 ・ 言語 構成ファイルのバージョン制御は統合器がパラメーターの前のバージョンを拡大 し後戻り目的での変更を記録することを許す。機械クラス 本発明の制御システムの機械クラスはカーネルとCNCアプリケーショ ンの間の装置指向インターフェースを形作る。機械クラスはCNCアプリケーシ ョンのカーネルへの連絡を確立してモニターしアプリケーションとカーネル間の メッセージを処理する。各アプリケーションはカーネルへの共通インターフェー スを容易にする機械クラスのコピーを含む。又、共有データは全てのアプリケー ションが同じ機械クラス状態情報を使用することを確実にする。 機械クラスはオブジェクト指向型設計を使うので、それは各装置のため に可能な機能の全てで特別の装置を定義するオブジェクトを含む。例えば、スピ ンドルオブジェクトは運転、締付け、と停止の可能な機能持つ。オブジェクトの データはスピンドルの速度範囲と現在速度を記述する。CNCアプリケーション は機械クラスオ ブジェクトの機能の全てを必ずしも使わなくても良いが、機能は使用可能であり カーネルによって支援されている。 CNCアプリケーションは又アプリケーションツールキット(Applicat ion Tool Kit)からパッケージサイクルに鉤で留める。これらのサイクルはドリ ル、掘削、及びタップのような共通機械加工操作を定義し又制御システムの中の 機械クラスよりも高いレベルで操作する。これら同じ機械クラスオブジェクトメ ソッドを使うことにより、顧客は機械クラス操作の詳細に関係せず特殊なニーズ に合うようにパッケージサイクルをカスタマイズして拡大する。 機械クラスの多数コピーが制御システムに用いられる。機械クラスの一 コピーがカーネルへの共通インターフェースを提供するために使用されている各 CNCアプリケーションに付加される。更に、同じ機械クラスのコピーが全ての アプリケーションにより使用されている限り、顧客は使用されている機械クラス の機能性を拡げられる。 此処に述べたのは本発明に従った二つの機能的機械クラスである:(1 )フライス盤クラス;及び(2)サンプル、一般機械クラス。サンプル、一般機 械クラスはメッセージインターフェースの利得理解を得るのを助けるように設計 された簡単な例である。フライス盤クラスは基本的なフライス盤で実行される物 である。フライス盤クラス フライス盤クラスは顧客がフライス盤と共に即座に操作的になるのを許 す。この機械クラスを使うには、顧客はCNCアプリケーション付の機械クラス ライブラリーに簡単にリンクして以下のオブジェクトへのアクセスを手に入れる : ・ 流れ制御 ・ 押しボタン操作卓 ・ 揺動スイッチ ・ 軸 ・ 軸グループ ・ スピンドル ・ 工具交換機 ・ 冷却材 ・ 潤滑油 これらオブジェクトの全ては装置の所有権の獲得、装置の立上げ、その 現在状態のモニター、及び所有権の解除にCNCアプリケーションを許す。アプ リケーションが装置の所有権を握った時に、それは与えられたメソッドを用いて いるその装置に活動要求を発行する権限を持つ。フライス盤クラスは又フライス 盤の操作をカスタマイズするためにアプリケーションツールキットにパッケージ サイクルを組合わせて使うこともできる。サンプル、一般機械クラス サンプル機械クラスは新しい機械クラス開発の見本として使われる。そ れは代表的工作機械を操作するのに必要なメソッド付の最小のオブジェクト指向 装置を含む: 流れ制御‐ CNCアプリケーションから カーネルの同期待ち行列まで の通信を制御する。 押しボタン操作卓‐ アプリケーション用 の操作卓上に全ての必要な押 しボタンとランプを確保する。 軸‐ 個々の軸又はジョイントを制 御するアプリケーションを許 す。 軸グループ‐ 軸の動きを座標化したユーザ ー定義のグループ スピンドル‐ 工作機械スピンドルの基本機 能 工具交換機‐ 工具交換機の基本機能 共有記憶 本発明の代りの実施例では、コンピューターの記憶領域は機械クラス情 報で確保されている。共有記憶 は各装置の所有権と状態情報を含む。機械クラスの各コピーは装置についての情 報にアクセスするのにこの領域を見る。然し、この領域へのアクセスはアプリケ ーションが機械クラスにより装置情報を見て変更することだけが出来るように制 御されている。所有権の規則 多数のアプリケーションが同じ装置にアクセスを試みるので、装置所有 権の概念が機械クラスの操作の中心となる。装置の所有権とはアプリケーション がその瞬間装置を使用していなくてもそのアプリケーションがその装置を確保し たことを意味する。 他のアプリケーションが読出しオンリーのアクセスをしている間でも装 置を所有しているアプリケーションはそれに充分アクセスする。アプリケーショ ンはそれが装置の所有権を持っている時に限り装置にメッセージを送ることが許 される。これはコマンドの許可条件を決定するのに屡々用いられるどのアプリケ ーションにも要求される部品間の論理を最小にする。然し、或決定論理は各アプ リケーション内部で未だ必要である。 唯一つのアプリケーションを持つシステムは決して装置の所有権は持た ない構造である。この情況では、全ての装置に唯一人の所有者がいることになる 。通信 機械クラスの装置へのメッセージは幾つかの送信源から送ることが出来 る: ・ 部分プログラムインタープリター ・ ユーザーインターフェース ・ 操作卓上の押しボタン又は揺動スイッ チ ・ センサーインターフェース システム操作とプログラミングを簡単にするために、本制御システムは その部品間の労働の特別な割振りをしている。例えば、機械クラスは移動限界と かサーボエラーのようなカーネルの責任については心配しない。 逆に、カーネルは機械クラスがそれを独占的に扱うことから所有権や装置には関 心がない。 このシステムは又システム通信を簡略化してオープンシステムの概念に も従う。CNCアプリケーションは何れの又は全てのシステム層を通じてカーネ ルと通信できる。特殊な機能として、顧客のソフトウェア技術者は一つの層をバ イパスしてアプリケーションを直接次の層又は他の下の層に接続できる。勿論、 これは各制御システム部品に供給される標準メッセージフォーマットにより達成 される。通信接続 アプリケーションは二つの方法でシステム部品に通信する:(1)シス テム層を介して;又は(2)直接部品に。アプリケーションが機械クラス層を使 用する時、三つの利点が結果する: 1. カーネル部品(論理及び運動制御器) への自動メッセージ順序付け(sequen- cing) 2. 多数プロセスの所有権の処理 3. 装置への簡略化通信 制御システムは機械クラス層を介してカーネル部品への通信を許す。効 率的に操作するために、CNCアプリケーションの部分プログラムインタープリ ターとそのユーザーインターフェース(マンマシーンインターフェース(MMI) とも呼ばれる)はアプリケーションツールキットからのパッケージサイクルと機 械クラスの特徴により提供された操作の簡略化を必要とする。 然し、或プログラムはこれら中間層の特徴を必要としない。たとえば、 CNCアプリケーションの中の診断とチューニングプログラムはシステムの装置 又は所有権規則とは関係がない。これらの特殊なプログラムはカーネル機能に直 接接続することにより効率的に通信できる。中間層をバイパスするもう一つのプ ログラムは例外報告部である。それは機械装置又はカーネル機能にさえも関与し なくて直接メッセージ機能に接続できる。 もし顧客が全システムを制御するのに唯一つのCNCアプリケーション だけを使用しているならば、そのアプリケーションはプログラムの別の部分間に アクセスする装置を管理せねばならない。メッセージスキーマ 機械クラスメッセージはメッセージを定義するのに、スキーマの下にリ ストされた、修飾子を使用する。修飾子はデータ構造体の要素によって追従され るデータ構造体の名前である。これら修飾子は他の修飾子(例えば、動的データ 構造体)で組立てられる。以下の節で述べられる、メッセージ動詞はこれら修飾 子上で活動する。 String StringはASCII文字の集合を記述す る構造体である。‘C’データ構造体は以下に 示す: length‐ string中の文字の数 characters‐ 文字、数字、及び/又は記号の 配列 DataType DataTypeはデータ表現の列挙子である。 ‘C’データ構造体は以下に示す: Undefined‐ 特定されてないデータタイプ Intege‐ 全ての数より成るデータ FloatingPoint‐ 倍精度の浮動小数点数 String‐ 文字で表現されたデータ Value Valueは変数データタイプを表現する共用体である。DataType はデータのサイズとタイプを定義する。‘C’データ構造体は以下に示す: intege‐ 全ての数より成るデータ floatingPoint‐ 浮動小数点データ string‐ 文字で表現されたデータ AxisID AxisIDは個々の軸を記述する列挙子で ある。‘C’データ構造体は以下に示す: Group Groupは軸のグループを記述する構造体である。‘C’データ 構造体は以下に示す: id‐ 軸グループ id numberAxes‐ グループ内の軸の数 Range 1‐NumberAxismax axes‐ AxisTDの配列 State Stateは装置の現在状態の列挙子であ る。‘C’データ構造体は以下に示す: Uninitialized‐オブジェクトが立上がらなかった。 Calibrated‐ オブジェクトが較正された。 Stopped‐ オブジェクトが動かない OrientPosition‐ オブジェクトが定位置に付いた ParameterInfo ParameterInfoは装置への情報特質を 記述する構造体である。工具交換のための‘C’ データ構造体の例は以下である: toolID‐ 工具同定番号を表現する整数 Range:1‐NumberToolsmax VelocityType Velocity Velocityは速さと方向を記述する構造 体である。‘C’データ構造体は以下に示す: type‐ 構造体中の速度データを表示する data‐ そくどでーた;直進軸では(m/sec)及び回転軸では(radian /sec)の単位 Override Overrideは速度増大を表現する。‘C ’データ構造体は以下に示す: typedef double Override; Override‐ 速度増大の表現。1の値は100 %を示す。 Range:Range:0.1‐2.0 Increment Incrementはデルタ位置を表す。‘C’ データ構造体は以下に示す: typedef double Increment; Increment‐ デルタの動きの表現。Incre- mentの単位はメートルである。 Offset Offsetはデルタ位置を記述する構造体 である。‘C’データ構造体は以下に示す: count‐構造体に記述される軸のデルタの数。 (range 0‐maxAxes) delta‐軸のデルタの配列。メートルが直進軸に 使われ、ラジアンが回転軸に使われる。 Feedrate Feedrateは座標付けられた直行軸の直線速度を表す。Feedrate は(meters/sec)の単位を使用する。‘C’データ構造体は以下に示す: typedef double Feedrate; Linear Linearは直線の動きを記述するのに “Move”動詞を使った修飾子である。 ‘C’データ構造体は以下に示す: endPosition‐ 動きの終点での直線位置を表す attributes‐ 属性は動きに影響す る条件を記述する。‘リミッ トスイッチまで’が属性の一 例である。 Tool Toolは工具を記述するのに用いられる 修飾子である。‘C’データ構造体は以下に示 す: toolID‐工具の同定番号を表現する整 数。 Range:1‐NumberToolsmax Gear Gearは減速比を記述するのに使われる 修飾子である。‘C’データ構造体は以下に示 す: gearID‐歯車同定番号を表す整数 gearRatio‐ 減速比を表す浮動小数点数機械クラスメッセージフォーマット 機械クラスメッセージはメッセージ要求を記述する動詞で始る。これら の動詞は次説で述べられる装置オブジェクト用にリストされたメソッドの動作を 反映する。このリストの下で、各動詞が定義されてその定義の後で可能なメッセ ージフォーマットが示される。多くの機械クラス動詞がオブジェクトの動作を指 示して独立している。これらの動詞には、リストされていないメッセージフォー マットはない。 Grqb 特定の装置の所有権を要求する。 Ungrab 特定の装置の所有権を解除する。 Initialize 装置を操作するのに必要なデフォルト パラメーターを確立する。 UnInitialize 特定の装置の再立上げを強要する(この動詞が用いられた後で 立上げねばならない)。 Get 特定の装置から現在の情報を検索する。 Get Description〈name〉Qualifier Get〈ParameterInfo〉 Update 装置の特定の操作パラメーターを確立する。 Enable 特定の装置の特殊操作を可能にする。 Enable〈Power〉 Disable 特定の装置の特殊操作を不能にする。 Disable〈Power〉 Clamp 軸又はスピンドルにクランプをつなぐ。 UnClamp 軸又はスピンドルのクランプを外す。 Calibrate 特定の装置に参照点を確立する。 Run 特定の装置の連続運転を始める。 Cycle 特定の装置の逐次運転の出発位置をマークする。 Cycle Description〈cycleID〉 Move 特定の装置の整合操作を連動させる Move Linear Move Velocity Move〈Increment〉 Dwell 特定の時間に特定の装置のゼロ操作を始める。 Dwell FloatingPoint〈time〉 stop 再開可能な方法で特定の装置の運転を止める。 Cancel 特定の装置の運転を即座に止める(再開は不可能であろう)。 Step 前進方向に特定の装置の予め定義された操作を確保する。 UnStep 逆方向に特定の装置の予め定義された操作を確保する。機械クラスオブジェクト 機械クラスのオブジェクトは機械の装置及びそれら装置を管理するのに 必要な機能(例えば、流れ制御、工具交換機、軸、及びスピンドル)のシステム 内部の表現である。全ての機械クラスオブジェクトは二つの部分を持つ:データ とメソッド。 オブジェクトのメソッドは、オブジェクトが事象に応答して為すことを 記述する、命令、機能、手続き、又は動作である。メソッドはオブジェクトに属 していて又以下に動作を行うか又は以下に外部事象に反応するかを表示する。ア プリケーションはそのメソッドを通してオブジェクトのデータに、せいぜいアク セスするだけである。メソッドは操作を行うのにメッセージを送る。これらメソ ッドを持つ機械クラスオブジェクトは次説で述べられる。流れ制御オブジェクト 本発明の別の実施例に於いて、制御システムのフライス盤クラスの流れ 制御オブジェクトはCNCアプリケーションとカーネルの同期待ち行列の間の通 信を制御する。このオブジェクトはCNCアプリケーションがカーネルへの通信 ポートを設け又アプリケーションのためにカーネルの現状をモニターすることを 許す。アプリケーションはカーネルの同期待ち行列の制御を獲得するのに流れ制 御オブジェクトの所有権を取らねばならない。以下のメソッドはこのオブジェク トに含まれる: Grab‐ カーネルの同期待ち行列の所有権を要 求する。 UnGrab‐ カーネルの同期待ち行列の所有権を 解除する。 Initialize‐ カーネルの同期待ち行列を操 作するのに必要なデフォルト パラメーターを確立する。 Get〈State〉‐ カーネルの同期待ち行列の現 在の動作状態を取得する。 Enable〈Power〉‐ カーネルの同期待ち行列の 電源を入れる。 Disable〈Power〉‐カーネルの同期待ち行列の 電源を切る。 Run‐ カーネルが連続的にプロセスに同期要 求を指示する。 Stop‐ カーネルが同期待ち行列からのプロセ ス要求の停止を指示する。 Cancel‐ カーネルが全ての活動を即座に停止 して待ち行列を水に流すことを指示 する。 Step‐ カーネルがプロセスに同期待ち行列の 単一の要求をプロセスに指示する。押しボタン操作卓オブジェクト フライス盤クラスの押しボタン操作卓オブジェクトはアプリケーション が操作卓上の全ての必要なボタンとランプを立上げて確保するのを許す。この方 法で、オペレーターは電源の制御、サイクルの始動、機械の運 動の保持、及びアプリケーションがこれらの動作をモニターしている間操作の中 断にボタンを押すことが出来る。オペレーターがボタンを押すと、メッセージが そのボタンを制御しているアプリケーションに送られる。もしボタンがアプリケ ーションにより不能であれば、それらは論理制御器により無視される。 以下のメソッドがこのオブジェクトに含まれている: Initialize‐ 押しボタン操作卓を操作する のに必要なデフォルトパラメ ーターを確立する。 Grab‐ 押しボタン操作卓の所有権を要求する。 UnGrab‐ 押しボタン操作卓の所有権を 解除する。 Get‐ システム部品から特定の情報を要求す る。 Enable‐ 押しボタン操作卓での遠隔操 作を可能にする。 Disab1e‐ 押しボタン操作卓での遠隔操 作を出来なくする。 Update‐ 押しボタン操作卓の特定の操 作パラメーターを確立する。吊り操作函オブジェクト フライス盤クラスの吊り操作函オブジェクトはアプリケーションが吊り 操作函の全ての必要な押しボタンとランプを立上げて確保することを許す。オペ レーターがボタンを押すと、カーネルはアプリケーションからのEnableメッセー ジを受取った後直ちにMoveメッセージを発信できる。もしボタンがカーネルによ って不能であるならば、それらはカーネルによって無視される。 以下のメソッドがこのオブジェクトに含まれている: Initialize‐ 吊り操作函を操作するのに必 要なデフォルトパラメーター を確立する。 Grab‐ 吊り操作函の所有権を要求する。 UnGrab‐ 吊り操作函の所有権を解除する。 Get‐ システム部品から特定の情報を要求す る。 Enable‐ 吊り操作函での遠隔操作を可能にす る。 Disable‐ 吊り操作函での遠隔操作を不 可能にする。軸オブジェクト フライス盤クラスの軸オブジェクトはアプリケーションが個々の軸又は ジョイントを制御することを許す。以下のメソッドがこのオブジェクトに含まれ る: Initialize‐ 軸を操作するのに必要なデフ ォルトパラメーターを確立す る。 Grab‐ 軸の所有権を要求する。 UnGrab‐ 軸の所有権を解除する。 Get〈State〉‐ 軸の現在の動作状態を取得す る。 Get〈ParameterInfo〉‐ 現在のパラメーター を返送する。 Clamp‐ 軸にクランプを取付ける。 UnClamp‐ 軸のクランプを弛める。 Calibrate‐ 軸の参照点を確立する。 Move〈Velocity〉‐ 特定の速度で軸を動 かす。 Move〈Increment〉‐ 特定の距離軸を動か す。 stop‐ 軸の運動を停止する。軸グループオブジェクト 機械クラスの軸グループオブジェクトはユーザー定義の軸グループを記 述する。軸グループは線形と円形及び時間を組合わせた動き(点から点へ)の様 な組合わせられた動きの多軸運動を扱う。オブジェクトは軸の運動学を定義し、 所有権を処理し、そして以下のメソッドを含んでいる: Initialize‐ 軸グループを操作するのに必 要なデフォルトパラメーター を確立する。 Grab‐ 軸グループの所有権を要求する。 UnGrab‐ 軸グループの所有権を解除す る。 Get〈State〉‐ 軸グループの現在の動作状態 を入手する。 Get〈ParameterInfo〉‐ 現在のパラメーター を返送する。 Move〈Linear〉‐点ベクトル、供給速度、属性、 及び停止性(termination)のタ イプによって定義される軸グ ループの組合わせ操作を連動 させる。 Move〈Joint〉‐ 点から点への時間整合を用い ている軸グループの組合わせ 操作を連動させる。 Dwell‐ 1/10秒ごとの時間で定義された運動の 一時停止。 Update〈Group〉‐ (軸)どの軸がこのグルー プに属するかを識別する。 Update〈Override〉‐供給速度の乗越しファク ターを表示する。 Update〈Feedrate〉‐(数値)与えられた軸グル ープに適用される速度を 表示する。 Update〈Offsets〉‐ ゼロ部分と他の一般オフ セットに用いられるオフ セットを表示する。 軸グループオブジェクトは以下の付加メソッドを持っている: Enable〈Power〉‐ 軸グループに電源を入れる。 Disable〈Power〉‐ 軸グループの電源を切る。 stop‐ 特定の軸を止める。スピンドルオブジェクト スピンドルオブジェクトは工作機械スビンドル の全ての可能な機能を記述する。このオブジェクトはスピンドル軸の所有権を握 りそして論理制御器にスピンドルの指向角度、最大RPM、及び他の全ての必要な 操作を立上げ、可能にして、処理するメッセージを送る。この機械クラスオブジ ェクトは以下のメソッドを含んでいる: Initialize‐ スピンドルを操作するのに必 要なデフォルトパラメーター を確立する。 UnInitialize‐ スピンドルの再立上げを強制 する。 Grab‐ スピンドルの所有権を要求する。 UnGrab‐ スピンドルの所有権を解除する。 Get〈State〉‐ スピンドルの現在の動作状態 を入手する。 Get〈ParameterInfo〉‐ スピンドルの現在の 情報パラメーターを入手する。 Run‐ 特定の方向と回転数でスピンドルの連 続運転を開始する。 Update〈Override〉‐ 特定のファクターで 速度を乗越える。 Update〈Gear〉‐スピンドルのギヤー速度の遠 隔切換を立ち上げる。 Clamp‐ スピンドルの工具を保持する。 Unclamp‐ スピンドルから工具を外す。スピンドルオブジェクト は以下の付加メソッドを持っている: Enable‐ スピンドルの手動押しボタンの遠隔 操作を可能にする。 Disable‐ スピンドルの手動押しボタンの遠隔 操作を不能にする。 stop‐ スピンドルの運動を停止する。工具交換機オブジェクト 高度に詳述した工具交換機オブジェクトは工具交換機の全ての可能な機 能を記述する。このオブジェクトは交換機中の工具の数、スピンドル中の現在の 工具、及びカルーセルの位置を表すデータへのアクセスを有す る。工具交換機はスピンドルと軸のような必要とされる資源の所有権を握ってい る。工具交換機は位置決め用の工具番号よりもむしろ収納スロットの番号を使用 する。工具番号と関連データは工具データベースに納められている。このオブジ ェクトは次のメソッドを含む: Initialize‐ 工具交換機を操作するのに必 要なデフォルトパラメーター を確立する。 UnInitialize‐ 工具交換機の再立上げを強制 する。 Grab‐ 工具交換機の所有権を要求する。 UnGrab‐ 工具交換機の所有権を解除する。 Get〈State〉‐ 工具交換機の現在の動作状態 を入手する。 Get〈ParameterInfo〉‐ 工具交換機の現在の 情報パラメーターを入手する。 Update〈Tool〉‐スピンドル中の工具用収納ス ロット番号をセットする。 Enable‐ 工具交換機の遠隔操作を可能 にする。 Disable‐ 工具交換機の遠隔操作を不能 にする。 Calibrate‐ 指標の位置をセットする。 この工具交換機オブジェクトは以下のメソッドも含む: Cycle‐ 工具交換機のシーケンス操作のスター ト位置をマークする。 stop‐ 工具交換機の運動を停止する。 Step‐ 工具交換機を一回で一論理ステップだ け動かす。冷却材オブジェクト 冷却材オブジェクトは冷却材のメカニズムの全ての可能な機能を記述す る。この冷却材オブジェクトは以下のメソッドを含む: Grab‐ 冷却材装置の所有権を要求する。 UnGrab‐ 冷却材装置の所有権を解除する。 Get〈State〉‐ 冷却材装置の現在の動作状態 を取得する。 stop‐ 冷却材を止める時を表示する。 Run‐ 冷却材の連続使用を開始し冷却材のタ イプ(噴霧、流れ、又は浴)を同定す る。 Enable‐ 自動清掃面検出と自動遮断を可能に する。 Disable‐ 自動清掃面検出と自動遮断を不能に する。潤滑油オブジェクト 潤滑油オブジェクトは潤滑メカニズムの全ての可能な機能を記述する。 この潤滑油オブジェクトは以下のメソッドを含む: Grab‐ 潤滑装置の所有権を要求する。 UnGrab‐ 潤滑装置の所有権を解除する。 Get〈State〉‐ 潤滑装置の現在の動作状態を 取得する。 stop‐ 潤滑を止める時を表示する。 Run− 潤滑の連続使用を開始する。カーネル‐機械クラス通信の例 次の通信例は機械クラスを通ってカーネル部品へのデータの移動を例示 している。この例では、CNCアプリケーションは以下のステップを用いてスピ ンドルを操作している: 1.アプリケーションはスピンドルの所有権を握っ ている。それは‘OK’又は‘保留’の応答を受 取る。 2.アプリケーションはSpindleRunを要求する。 3.機械クラスは以下の要求を運動制御器に送る: ・ Update〈Gear〉(論理制御器が活動シーケン スに指示する) ・ LCflagまで待て(MCがLCフラグを待つ ように指示する) ・ Move Velocity〈rpm〉(MCがスピンドル軸 に印加電圧を指示する) ・ Update〈Flag〉SpindleAtSpeed(LCが速度 を上げる時を報告するよう指示する) ・ LCflagまで待て(MCが続ける前にLCフラ グを待つように指示する) 4.運動制御器は‘OK’又は‘衝突(Conflict)’の 応答を返す。 5.運動制御器は論理制御器にSpindleGear要求を 送りLCflagを待つ。 6.LCはスピンドルを可能にしてギヤーチェンジロ ジックを実行する: ・ spidleOrient = Off ・ spindleEnable = On ・ spindleOn = On ・ select gear speed based on RPM 7.LCはMCにスピンドル軸の徐行を要求する。 8.MCはLCに‘atCreep’メッセージを送る。 9.Cは歯車を選定する。もしエラーが発生すると エラーメッセージが例外報告部に送られて機械 クラスは待ち行列を清算する。 10.LCは最初のMCの待ちを満足させるのにLC- flagを立てる(軸のスタートがOKであること を表示する)。 11.MCはMoveパラメーターに基づいてスピンドル の軸の旋回を始める。 12.MCはLCにSpindleAtSpeed要求を与える。 13.LCはSpindleAtSpeed入力又は中断を待つ。も しエラーが発生すると、エラーメッセージが例 外報告部に送られて、機械クラスは待ち行列を 清算する。 14.LCは第二のMCの待ちを満足させるのにLC- flagを立てる(シーケンスが完了したことを表 示する)。 15.LCはアプリケーションに完了報告を送る(もし アプリケーションが要求しているならば)。 16.機械クラスは(もしアプリケーションが要求し ているならば)DalState = SpindleRunningを セットする。機械クラスのカスタマイズ 本発明の制御システムのオープンシステム設計は制御メーカーによって 使用されなかった機械を扱うのに機械クラスの修正を許す。装置は装置間の関係 とは独立に定義されているのでこれは可能である。カーネルの論理制御器と実際 の装置を扱うアプリケーションは運転中相互依存している。 システムのユーザーは装置の定義に特徴を加えそして又他の装置に変更 を強いられることなく装置の特性を修正しても良い。これは顧客が特定の機械に カスタマイズされたシステムの実現を開発することを許す。 機械クラスのオブジェクト指向設計は機械クラスのカスタマイズをする ソフトウェアの技術者が既存の機械クラスからの継承とそれらの修正により新し い機械クラスオブジェクトを素早く創ることを許す。C++の尖端プログラミン グの特徴のせいで、ソフトウェア技術者は修正のためにオブジェクト用のシステ ム制御のソースコードを代える必要はない。それで新オブジェクトは親オブジェ クトからの共通データ特性を継承する。この特徴はソフトウェア技術者が既存の 機械クラスオブジェクトの中の容易に再利用されるコードからより特殊なオブジ ェクトを既存の設計とコードの上に構築することを許す。 データ特性と共に、メソッドも又新オブジェクトが創られたとき親オブ ジェクトから継承されることが出来る。勿論、新オブジェクトはそのメソッドを 使用するか又はそれの別のバージョンを創っても良い。メソッドは操作を行うメ ッセージを送る。これは元のオブジェクトの配列を変えること無しに加えられる 新しい特徴を許している特殊なデータ構造への依存性を分離する。カーネル 制御システムのカーネルは離散的な入力/出力(I/O)制御により組 合わされた運動軸のメカニズム を備える。この一般制御器は種々の適応したアプリケーションで使用できる。C NCアプリケーションは機械クラスを通してカーネル部品、論理制御器(LC) と運動制御器(MC)、と通信する。 制御システムのソフトウェアはオブジェクト指向設計とプログラミング 技術を用いるので、ソフトウェア部品はオブジェクト内で組織化されたデータと 機能から創られる。論理制御器と運動制御器部品はメッセージを呼出す特殊なオ ブジェクトによりお互い同士及びCNCアプリケーションと通信する。これらの メッセージは共通メッセージ構造を使用し、且つ共に共通メッセージインターフ ェースを有する。各部品は非同期待ち行列と同期待ち行列を有する。これらの待 ち行列は同じ方法で両制御機内で機能する。 メッセージはアプリケーションの要求次第で同期又は非同期となる。同 期メッセージは順序付けられていて、それ故、待ち行列中の前のメッセージの実 行に依存する。非同期メッセージはそれらが即座に実行され得るように前のメッ セージとは独立である。カーネルメッセージ システムメッセージはアプリケーションとカーネル部品の間の両方向通 信を備える。これらのメッセージは次の能力を有する: 単一コマンド メッセージを通して送られる立上げパラメータ ーと構成 同期メッセージは待ち行列を作る 非同期メッセージは即座に実行される メッセージには別のカテゴリーがある: 流れ制御 パラメーター 診断 要求 データ 誤り(エラー)メッセージ構造 本発明の制御システムのメッセージは可能な修飾子と変数属性付きのコ マンド動詞を用いる標準文法を持っている。 三つのタイプの修飾子がある: 構造体‐ 変数のタイプを定義する。 列挙子‐ 修飾子の名前と共に定数値の協力を 許す整数値のリスト。 共用体‐ 違ったタイプとサイズのオブジェク トを(違った時に)保持できる変数。 それはプログラム中のどんな機械依 存情報の埋込みのない単一記憶領域 で別の種類のデータを操作するのに 用いられる。 以下に表されるメッセージのリストでは、要求されるデータ要素は大文 字で始る、又任意の要素は大文字は用いない。カーネルで用いられるメッセージ はこの基本的構造を持っている: 動詞修飾子 動詞はメッセージ要求を記述する。修飾子はデータ構造要素によって追 従されるデータ構造の名前である。これらの修飾子は他の修飾子で構成できる( 即ち、動的データ構造)。動詞は修飾子上で活動する。 動詞はカーネル部品で用いられる‐ Run ‐ 同期バッファー(MCとLC)の実行を 制御するのに用いられる。 StopRun ‐ 同期バッファー(MCとLC)の実 行を制御するのに用いられる。 Move‐ 運動制御器に直線軌道に沿っての運動 又は固定速度での運動を指示する。 Wait‐ MC又はLCにWaitメッセージの後 StopWaitingのメッセージが送られて 来るまではどんなメッセージも実行し ないように告げる。 StopWait‐ MC又はLCにメッセージを再 び実行し始めるように告げる。 Get ‐ MC又はLCにアプリケーションに情報 を送るように告げる。 Update‐ MC又はLCにアプリケーションがパ ラメーターの値の変更を欲しているこ とを告げる。 Flush ‐ 運動制御器にその同期待ち行列の全 てのメッセージを削除するように告げ る。カーネル修飾子 メッセージ修飾子を記述しているカーネルのスキーマは本ページ及び以 下のページで示される。修飾子はカーネルによって使用される全てのメッセージ と大域データのデータ構造を定義する。 String StringはASCII文字の集合を記述す る構造体である。‘C’データ構造は以下: length‐ string中の文字の数 characters‐ 文字、数字、及び記号 の配列。 Name Nameは、記述情報を有するメッセージのサブジェクトを識別する構造 である。’C’データ構造はつぎのとおりである。 Description Descriptionは、メッセージのサブジェクトの基本的特徴を決定す るために使われる構造である。’C’データ構造はつぎのとおりである 。 Value Valueは、可変データタイプを示すユニオンである。DataTypeはデータ のサイズおよびタイプを決定する。’C’データ構造はつぎのとおりで ある。 integer − は全体の数からなるデータである。 floatingPoint − フローティングポイントデータ。 string − はキャラクターで表されるデータである。 PositionType PositionTypeは、Position表現のエミュレーションである。’C’デ ータ構造はつぎのとおりである。 XYZ − 3軸マシンのための位置。 SYZAB − 5軸マシンのための位置。 ZS − Z軸およびspindleの位置。 Spindle − spindleの位置。 XYZ XYZは、XおよびYおよびZ軸のための位置を記述する構造である。 ’C’データ構造はつぎのとおりである。 x − X軸のための位置。 Range:Xmix - Xmax (単位:メートル) y − Y軸のための位置。 Range:Ymin - Ymax (単位:メートル) z − Z軸のための位置。 Range:Zmin - Zmax (単位:メートル) XYZAB XYZABは、XおよびYおよびZおよびAおよびB軸のための位置を記述 する構造である。直線位置はメートルで表される。回転位置はラジアン で表される。’C’データ構造はつぎのとおりである。 x − X軸のための位置。 Range:Xmin - Xmax (単位:メートル) y − Y軸のための位置。 Range:Ymin - Ymax (単位:メートル) z − Z軸のための位置。 Range:Zmin - Zmax (単位:メートル) a − A軸のための位置。 Range:Amin - Amax (単位:ラジアン) b − b軸のための位置。 Range:Bmin - Bmax (単位:ラジアン) ZS ZSは、Z軸およびSpindleのための位置を記述する構造である。直線位 置はメートルで表される。回転位置はラジアンで表される。’C’デー タ構造はつぎのとおりである。 Spindle − spindleの位置。(単位:ラジアン)。 Position Positionは、位置を記述する構造である。’C’データ構造はつぎの とおりである。 type − 構造中の位置データのタイプを表す。 data − 位置データ;直線軸および回転軸のために使われ たメートルである。 Contact Contactは、属性のための物理的接触のエミュレーションタイプである。 たとえば、プローブ属性は、接触またはブレーキ接触までの移動である。 ’C’データ構造はつぎのとおりである。 EnableDisable EnableDisableは、属性がイネーブルであるであるかどうかを記述する エミュレーションである。たとえば、Feed rate overrideはイネーブル またはディスエーブルである。’C’データ構造はつぎのとおりである 。 Enable − 属性をオンにする。 Disable − 属性をオフにする。 TerminationTyepe TerminationTyepeは、移動の終了状態を記述するエミュレーションで ある。’C’データ構造はつぎのとおりである。 PrecisionEndpoint − 線の終点が位置内許容範囲に達したな ればならない。 NoDeceleration − 移動は連続する輪郭(contour)の一部で ある。終点は重要でない。 AttributeType AttributeTypeは、属性のエミュレーションである。’C’データ構造 はつぎのとおりである。 Limitswitch − 移動がリミットスイッチのメークまたはブレ ークのいずれかで終わったことを示す。 Probe − 移動がプローブのメークまたはブレークのいずれか で終わったことを示す。 Override − 移動のためのイネーブルまたはディスエーブル オーバーライドである。 MotionHold − 移動のためのイネーブルまたはデイスエーブ ルオーバーライドである。 Absolute − 絶対座標の位置が記述される。 Incremental − インクリメンタル座標での位置が記述される 。 Deceleration − デクリメンタル属性。 Concurrent − この移動は他の移動と同方向で行うことがで きる。 Linear Linearは、直線移動を記述するためにMoveverbとともに使用される修 飾語である。’C’データ構造はつぎのとおりである。 position − 直線移動の終点を示す。 data − 運動記述を修正する属性である。 VeiocityTyTpe VelocityTypeは、速度表現のエミュレーションである。’C’データ 構造はつぎのとおりである。 速度 速度は位置を述べる構造である。 ’C’データ構造は次のとおり: タイプ − 構造における速度データのタイプをさす。 データ − 速度データ;直線軸のため(m/sec)と回転軸 のための(ラディアン/sec)の単位 速度動作 速度動作は一定速度動作を記述する速度動詞として使われる 限定詞である。’C’データ構造は次のとおり: 速度 − 動作の割合参照フレームを示す。 特性 − 運動の記述を変更する特性 ランアトリイビュート ランアトリィビュートはランメッセージアトリィビュート特性の 計算である。’C’データ構造は次のとおり: シングルサイクル − 動作コントロールが各サイクルの最後に 停止するリクエスト イミーディト − 動作コマンドがすぐに実行されるリクエ スト エンドオブサイクル − 一サイクルでの分離運動のためのマーカ ー モーションホールド − 動作ホールド条件を示す エラーコード エラーコードはエラーコードのタイプの計算である。’C’デー タ構造は次のとおり: ノンシビリティ − カテゴリーに入らないシビリティのエラ ー インフォメーション − (必要とされる非動作)だけの情報を備 えたエラーメッセージ ウオーニング − アプリケーションが仕事を完成するのが 困難であることを示すエラー フェイタル − アプリケーションが現在の仕事を完成す ることができないことを示すエラー 運転コントローラ カーネル運転コントローラはサーボハードウエアのためのターゲ ットポイントを発生する多軸インターポレイションを実行する。運転コントロー ラは高速度スピンドル(60,000 RPMまで)、精密タッピング、エンコーダージョ グ、タッチプロービングをサポートする。模範的な運転コントローラーはこれら の特徴を持っている。 * 5コーディネイト軸 + 1スピンドル * プログラムできるインターポレイション割合−5ミリ秒から20ミリ 秒まで * 以下のためのステータス情報を備える * 位置(コマンドとアクチュアル) * 速度 * 次のエラー * インターポレイテッドテーブルを線状に使うリードスクリュウとバッ クラッシュ補整 * リードスクリュウ補整は200回/秒まで機械的エラーを補整する。 * より詳細な情報により生ずる5ミリ秒ブロック転送比はより速く処理 される。 * サークル補整のためのノンリニアコントロール * 加速コントロールは速度を調整する,機械のメカニカルウエアを最小 にする間に、1軸以上の間でよりタイトなコーディネイションを認め る。 * スピンドルと関係するコーディネイトされたインターポレイション * プログラムできる測定とシーケンスの参照 * 10,000回/秒機械の位置をモニターする運転コントローラボードを持 つエンハンスドサーボアルゴリズムインターフェイス 運転コントローラの形状パラメータ 運転コントローラ形状パラメータはトラベルリミッツ、PIDゲ インパラメータ、カイネマティクス、加えられる雑多のパラメータを定める。 トラベルリミッツ このパラメータは正しいトラベルリミッツを定める。これらは X,Y,Z軸に沿ってネガティブからポジティブか、ポジティブからネガティブ にできる。 PIDゲインパラメータ ゲインパラメータは各軸(x to b)のクローズドループコン トロールのために使われる。これらのパラメータは − 比例数(P) 積分(I) 導関数(D) 積分範囲 速度フィードフォワード パラメータ値は軸をコントロールするためのアプリケーション ハードウエアにダウンロードされる。それから、そのハードウエアに属する速度 フィードフォワードを持つモディファイされたPIDアルゴリズムが各軸をコン トロールする。 アプリケイションツールキットは、パラメータをセットし調整 するのに利用される。 プログラムできるカイネマティクス ユーザーは軸配置の多用性をサポートするアクセス間の関係を 指定するかもしれない。フォワードカイネマティクスはジョイントアングルを与 えるエンドイフェクターの位置と方位を定める。インバースカイネマティクスは エンドイフェクターの位置と方位を与えるジョイントアングルを定める。可能な カイネマティクスパラメータは − X位置=X00+X11+X22+X33+X44 Y位置=Y00+Y11+Y22+Y33+Y44 Z位置=Z00+Z11+Z22+Z33+Z44 A位置=A00+A11+A22+A33+A44 B位置=B00+B11+B22+B33+B44 雑多の運転コントロールパラメータ 運転パラメータによってセットされえるある付加されたパラメ ータは − * DAC(デジタル−アナログコンバータ)バランスパラメータ * 最大アクセレイション * 軸センス * 軸リゾリューション * 最大ロータリイ RPM * マーカーパルスへのリミットスイッチ(インデックスパルス) * リードスクリュウ 補整テーブル 運転コントローラメッセージ コントロールシステムのメッセージは、C++オブジェクトの ようなオブジェクトである。各メッセージオブジェクトはアプリケイションのメ イルボックスを受けるバイナリィフォームに送られ、それからオブジェクトに再 生される。このセクションは運転コントローラメッセージバーブを示す。 ラン アップデート ムーブ ストップラン ウエイト フラッシュ ゲット ストップウエイト モデルはその他のモデルがそれを変えるまで持続する条件を定める 。 運転コントローラモデルは − オーバーライドイネイブル モーションホールドイネイブル インクリメンタルイネイブル デーセルタイプ これらのモデルはまた、メッセージの実行の間モデル値を一時的に メッセージがセットされ、実行より先にそのモードをリストアしておく間、ワン ショットモデルとして使われる。そのコンカレントモデルは、ワンショットモデ ルとしてのみ使われる。ワンショットモデルはメッセージが次のメッセージにリ ンクされ、その両方が一つとして遂行されなければならないシステムをいう。こ れは、メッセージのワンペアより多く及ぶことができる。 ラン ランメッセージはシンクロナスバッファの実行をコントロールする ストップランメッセージとともに用いられる。ランメッセージは運転コントロー ラにその列から実行するメッセージを始めるかをとう。 ラン<限定詞> ラン・ランアトリビュート<アトリビュート> ラン・ランアトリビュートはシンクロナスバッフアのメッセージ の実行を開始する運転コントローラを管理する。 アトリビュート> ノン シングルサイクル ランシングルサイクルはシンクロナスバッ ファのメッセージをブロックで同時に実行 する運転コントローラを管理する。 ブロックはシングルサイクルヘッダーメッ セージにより定められる。 期待されるレスポンス 運転コントローラーはシンクロナスバッファからメッセージの実行を 始めることができるなら、ランニングメッセージで答える。運転コントローラー はシンクロナスバッファからメッセージの実行を始めることができないなら、ノ ットランニングメッセージで答える。ランコマンドのどれかの期待されるレスポ ンスは − ランニング<クオリファイア> ノットランニング<クオリファイア>ディスクリプション <エラーディスクリプション> ストップラン ストップランメッセージはシンクロナスバッファのメッセージの実行 を止めるために、運転コントローラに送られる。その動作は(動作のコントロー ルされた減速で)又はブロック範囲ですぐにメッセージの実行を停止できる。ブ ロック範囲はサイクルヘッダーによって定められる。 ストップラン ランアトリビュート<アトリビュート> このストップランメッセージは同期バッファーの実行を停止する運動制御装置を 要する。 予想応答 運動制御装置がストップランメッセージを受けた時、運動制御装置は同期バッ ファーでメッセージ実行を停止し、ストップランニングメッセージ(下記フォー マット)に応答する。 移動 運動制御装置における移動メッセージは直線及び速度の2つのクオリファイア ーである。移動メッセージは下記の基本構造を使う。 移動直線 移動直線メッセージは直線通路に沿って移動するモーション制御装置を統制する 。この通路は前回の運動の最終点からメッセージにおいて特定された位置により 明らかにされる。メッセージ構造は以下の通り。 サンプルメッセージ 予想応答 wait ウエイトメッセージは常に運動制御装置の同期キュー送られる。このメッセ ージが停止待機メッセージが送られるまで通過したメッセージを実行しないよう にする制御装置を要する。 エラー説明 停止待機メッセージ 停止待機メッセージは待機メッセージをキャンセルする運動制御装置に 送られる。 Update アップデイトメッセージはアプリケーションがパラメーター値を変えたいと きに運動制御装置に送られる。 Data 応答 ゲット ゲットメッセージはアプリケーションが情報を運動制御装置からアクセルしたい 時に運動制御装置に送られる。メッセージはアプリケーションが運動制御パラメ ータを探し及び読ませ、可変及び運動び運動レジスターを示すことを。 これらのレジスターは以下の通り。 ゲット名 応答 フラッシュ フラッシュメッセージはアプリケーションが運動制御装置を同期メッセー ジキューより全メッセージを除去したいとき運動制御装置に送られる。 フラッシュ プロセス名 予想応答 運動制御装置・備考 以下は本発明による運動制御装置において望まれるいくつかの制御オプショ ンの説明である。カリブレーション シーケンス 運動制御装置は以下を含む初期プログラムシーケンスを含んでいる。 プロービング 運動制御装置のプロービング配列は以下を含む。 ロジック制御装置 カーネル・ロジック制御装置(LC)は入力をスキャンし、プログラムを 実行し、機械工具を操作する出力を書き込むことよりロジックプログラムを実行 する機関である。LCは以下の特徴がある。 シムレーションは メッセージを介して連通し ロジック制御ファイルフォーマットをLCファイルフォーマットに通常変換 するウインドー基本トランスレータを供給する。プログラム可能ハードウエアに おけるオプショナルエンベッデッドロジック制御装置は、1ミリセンドにスキャ ンする。 ロジック制御装置メッセージ ロジック制御のメッセージはC++物体のようなものである。各メッセー ジ目的は受取アプリケーションのメイルボックスに形状にて伝達され、物体に組 み込まれる。以下の3タイプのメッセージはロジック制御装置へ送ることができ る。 ロジック制御装置がユーザー定義メッセージを受けた時、ロジック制御装置はダ ータテーブルにメッセージを収容する。ロジックはメッサージを評価および実行 するラダープログラムに加えられる。 ユーザー定義メッセージ例は以下の表に表す。 Run Runメッセージは、Stop Runメッセージと共に使われ、動機バッファーの実行 を制御するために使われる。Runメッセージは、ロジックコントローラーに、そ のキューから、メッセージの実行を開始するように依頼する。 期待される応答 もし、ロジックコントローラが同期バッファからのメッセージを実行開始可能 であれば、Runnigメッセージで応答する。 もし、ロジックコントローラが同期バッファからのメッセージを実行開始不可 能であれば、NotRunningメッセージで応答する。 いくつかのRunメッセージに期待される応答は、 Running〈Qualifier〉 NotRunning〈Qualifier〉記述 〈errordescription〉StopRun StopRunメッセージは、同期バッファのメッセージの実行を停止するためにロ ギックコントローラに送られる。この動作は、メッセージの動作をただちに(制 御された、動作の減速により)、あるいはブロックの境界で停止する。 ブロック境界は、Cycle Headersにより、限界を定められる。 期待される応答 ロジックコントローラは、StopRunメッセージを受けた時は、同期バッファの メッセージの実行を停止し、StoppedRunningメッセージを応答する。 StoppedRunning〈Qualifier〉Wait Waitメッセージは、ふつう、モーションコントローラの同期キューに送られる 。それは、モーションコントローラに対して、このメッセージが、StopWaiting メッセージが送られるまでpastの実行がされないように依頼する。 StopWait Message このStopWaitメッセージは、モーションコントローラに対して、Waitメッセー ジをキャンセルするために送られる。 Update Updateメッセージは、ladderプログラムに情報を容易するために、アプリケー ションプログラムによって、ロジックコントローラに送られる。このメッセージ は、ロジックコントローラデータテーブルのフラグの更新を許し、genericメッ セージを送るか、ロジックコントローラに、新しいladderプログラムを用意する 。 Update〈Qualifier〉 期待される応答 ロジックコントローラプロセスは、そのスキャンの開始時に、メッセージを更 新する。それは、Updateメッセージがうまく実行されたことを示すためUpdate m essageで応答する。もし、ロジックコントローラが更新の実行が不可能である場 合、NotUpdateメッセージが返される。 Update Flag Update Flagメッセージは、ロジックコントローラ データテーブルのデータ を変更するために使われる。これらのメッセージは、それぞれのLCプログラムス キャンの開始時にインタープリットされる。フラグは、Nameか、IDを通して参照 される。 Update LCmsg Update LCmsgは、genericメッセージをロジックコントローラに送るために 使われる。実際のメッセージは、ladderプログラムにより、インタープリットさ れる。 Update LCmsg〈msgType〉Size〈MsgSize〉 Value〈msg〉 Update Program アプリケーションは、Update programメッセージを、ladderプログラムメッ セージをロジックコントローラにダウンロードするために使用する。プログラム のダウンロードは、セグメンツにブレークアップし、セグメンツをロジックコン トローラに送ることにより行なわれる。 ‘SequenceNumber’は、プログラムセグメンツが順序良く受け
られることを確実 にするために使われる。 Get アプリケーションは、ロジックコントローラのデータテーブルの情報にアクセ スしたい時に、Getメッセージをロジックコントローラに送る。 期待される応答 ロジックコントローラは、Getメッセージに対して、それぞれのladderプログ ラム スキャンの最後に、応答する。Gotメーッセージは、リクエスト フラグ の値を返すために使われる。NotGottenメッセージは、リクエスト フラグがみ つからなかったことを示す。 ラダー ロジック プログラミング ラダー ロジック プログラミング環境は、LCをカストマイズするために、OE Mオフラインツールと、コントローラ レジデント モニタを与える。 ラダー ロジック プログラミング環境には、3つの部品がある。 ラダー ロジック プログラミング ツール(オフ ライン) ラダー ロジック デバッグ ツール(遠隔配置ホスト,直列接続) ロジック モーション ツール(コントローラ レジデント) プログラミング環境は、ロジックプログラムのために、バージョン コントロ ールと、いかなる箇所の変更でもバックアップを容易する。この特徴はまた、OE Mに、選択されたポイントでのブランチ オフと、新機械戦略のための新たに開 発された道をスタートすることを許可する。プログラミング ツール OEMは、ラダー ロジック プログラミング ツールの中の、よく知られた記 号法と概念を用いることにより、ラダー ロジック プログラムを作成し、変更 することができる。このツールは、開発者に、オフ−ラインの簡単な使い方と、 作成や、編集や、実行や、テスト、のためのグラフィック手段と、コントローラ ーのためのロジックコントロールプログラムのダウンローディングを与える。こ のツールを用いて、エンジニアは、コントロールプロクラムを、初期の概念から 最終的なオペレーティングまで、トップ ダウン設計手続きを使って設計するこ とができる。以下は、プログラミングツールの特徴である。 ラダー ロジックを用いてプログラミングをサポート: ・コイルとコンタクト; ・仮想コイルとコンタクト; ・タイマー; ・カウンター; ・ブランチ; ・数学(加算、減算、乗算、除算、三角法)のための機能ブロック; ・CNCのための機能ブロック; ・コプロセッサ ボードをターゲットとするクロスコンパイルのための ‘ANSI−C’のソースコード形式での出力; ・パラメータ化や、シェアしたデータテーブルの作成のために有益な、他の プログラムにより読まれる、シンボル テーブルの出力; ・シーケンシャル ファンクション チャート(GRAFCET SFCs)のプログラ ミングのサポート; ・プログラムとデータドキュメンテイションのハードコピーの生成; ・タイミングダイアグラムのプログラミングのサポート ・インテグレーターが検算しながら加算変更することを許すバージョン コ ントロール;ラダー ロジック デバッギング ツール オン−ライン デバッギング ツールは、コントローラとシリアル接続(RS23 2)された、ウィンドウズ ワークステーション上で、実行される。このツール は、以下の特徴を備えている。 ・ラダープログラムのコンタクトとコイルが、活性化又は不活性化される時の グラフィック イラストレーション; ・カウンターとタイマーのアキュムレータを含むデータテーブルに、数値をセ ットし、モニターする能力; ・GRAFCETstepsと、それらの活性化と不活性化の転移の表示; ・ロジック コントローラに、ある時刻に、一回のスキャンを実行するコマン ドを出す能力;ロジック コントロール ツール リアルタイム ロジック モニタリング ツールは、インテグレータに、マシ ンがサイクリング中の、状態、入力、出力のマシン ツール自身を、見るための 方法を与える。ソフトウエアは、インテグレーターに、I/Oのタイミングの問題 や、ロジック シーケンスのデバッギング設備を監視することや、マシンの接続 や、スイッチのアジャストを助けることができるようにする。 ロジック モニタリング ツールの特徴は、以下にリストされる。 ・CNC実行ソフトウエア システムに合同させる; ・CNCプラットフォーム診断モードを通してアクセス可能とする; ・リアルタイムで、入力、出力の状態を表示する; ・インテグレータに、出力の状態を実施し、入力の応答を見ることを許す。 ・スクリーン上のI/Oポイント定義に、シンボル名を付けるために、別名ファ イルから読む。モーション コントロール ハードウエア 本発明のシステムは、前述したMATRIX4多軸サーボ コントロール ボードを 用いる。本システムのモーションコントロールに対する方法は、位置や、速度や 、CNCの一部としてのカレントループを通して、デジタル制御を保つ。 結果として、システムは、他のサーボシステムよりも、更なる高精度、高速性 、強力なクローズド ループ制御を達成する。多くの制御機能は、ホストコンピ ュータ上のモーション コントロール ソフトウエアの中で、互いに独立してい る。この方法は、ユーザーに、工業的必要性の変化に対応する場合に、更なる柔 軟性を与える。これは、また、すでに存在するマシンに、新しいCNCを再び取り 付けることも容易にする。MATRIX4コントローラ ボードは、フル デジタル化 され、4軸の位置と、速度のコントローラである。ボードは、スピンドルが能力 を発揮するように、定速度での制御を行なう。姉妹ボードのVECTOR4との結合時 においては、システムは、CNCコントロールに、DCブラシ、DCブラシレス、そし てACインダクションモーターの利用を許し、動的にプログラムされたパラメータ のほとんどを可能にする。動的プログラミングは、エンジニアに、環境又は操作 条件の変化時に、モーション コントロール パラメータを直ちに更新すること を可能とする。モーション コントロール 構成 システム構成の柔軟性によって、OEMsは、倍数のモーターを使用することがで きる。これは、CNCメッセージをパワーモジュールを介して、モーターを動かす ために、送ることにより、CNCが、アプリケーション ソフトウエアからモータ ーを隠すためである。この構成は、大きな機械の設計変更なしに、モーターの交 換を容易にする。 それぞれのコントローラー ボードに対して、OEMは、それぞれの軸が独立し て異なるタイプのモーターをサポートする4つの軸を構成可能である。4つのボ ードは、16のモーターをいっしょにサポートすることに使うこともできる。CN Cとモーターの間のパワーモジュールは、所有者にとって、今日、多くのシステ ムで普通にあるドライブと、安価に交換できるものである。これらのモジュール は、多くのことなる供給者から購入することができる。モーション コントロール ソフトウエア CNCのモーション コントロール ソフトウエアは、パート プログラムの要 求を、基本的な位置と速度の命令に翻訳する。次ページのイラストレーションに 示すように、モーション コントロール ソフトウエアは、機能部品に分割され ている。操作員は、パート プログラム インタープリタ(PPI) ソフトウエ アを、軸の動作を指示するために使う。PPIソフトウエアは、ドリルやタップの ような一般的な操作を実行するためのパッケージ サイクルのプリ プログラム に使っても良い。 PPIは、プロセス又はマシン オブジェクトに、リクエストを送る。このソフ トウエアは、ツール チェンジや冷却剤のON/OFFといったリクエストと手動操作 を、シェア メモリにロードする。 インターフェース ドライバー ソフトウエアは、以下の機能を有する。 ・シェア メモリからリクエストを引き出し、処理する。 ・動作線を書き入れる。 ・リードスクリュー マッピングを実行する。 ・MATRIX4ボードに、位置/速度の目標を送る。インターフェースドライバー は、ホストから、倍数のDSPsに、同時にコマンドを供給する。ドライバーソフト ウエアは、PPIからのリクエストを、位置と速度の目標値に変換し、それらは、 モーション インターフェースを介して、MATRIX4に、供給される。ドライバー はまた、'C'ライブラリと機能プロトタイプを使って、MATRIX4ボードのためのコ マンドを定義する。 ドライバソフトウエアの'C'ライブラリは、以下のものを定義する。 ・軸指定 ・モジュール指定 ・マルチプル リード パラメータ タイプ ・インタラプト マスクのディセーブル ・オペレーションのサーボモード ・モジュールあたりの軸 ・モジュールあたりの最大軸数 ・出力ループ利得 ・制御規則の索引 ・制御PID利得の索引 ・エラーコード ・最大及び最小速度と加速度 ・ブロック転送レートコード ・機能プロトタイプ モーション コントロール ソフトウエアは、また、アプリケーションのため に、モーター技術をプログラムするためのユーティリティーも含む。これらのユ ーティリティーは、エンジニアに、構成、調整、そしてアプリケーションのメン テナンスを、書類によるシステムと同じように作業することを可能とする。 MATRIX4ボードは、モーション コマンドを受け付け、サーボコントロール ループを閉じる。軸は、電圧が供給されることにより動くので、MATRIX4ボード は、位置/速度の命令を、電圧(0から10ボルト)に変換し、制御される軸に 電圧を供給する。MATRIX4ボードは、機能がソフトウエアによりハンドリングさ れるため、マシンツールの操作を理解することを必要としない。マシン構成 ライブラリー マシン構成ライブラリーは、デフォルトのパラメータを、アプリケーションの ために、シェア メモリの中に用意される。これによるサービスは、 *ファイルシステムからのイニシャライズパラメータのロード及びディストリ ビューション *アプリケーションへのパラメータのディストリビューション 具体例の一つとしては、このパラメータ ライブラリは、C++オブジェクト' SystemVariables'を使い、グローバルにアクセス可能なシェア メモリにデータ を読み書きするために用いる。ライブラリはまた、クリエートしたり、コンフィ グレーションをロードしたり、プリント、リスト、リストア、SystemVariables のメモリ領域から情報を取り除くために、ユーティリティを格納している。 このセクションの情報は、新しいコンフィグレーション プログラムを開発ま たは修正しようとしているエンジニアに、必要な詳細情報を提供する。更に一般 的には、これらの情報は、ここで議論される'Platform Services'に関する。構成ファイルの定義 このプラットフォームサービスのための開発作業では、第1ステップは、シス テムパラメータを格納するコンフィグレーションファイルの定義である。ASCII ファイルは、シェアド バリアブル ネーム、そのサイズ、そしてシェアドメモ リ内のそれぞれのデータフィールドを定義することに使うことができる。例えば 、 システムバリアブル コンフィグレーション ファイルの最初の2行は、'♯' で始まることが述べられる。すべてのキーワードは、ファイル内で、大文字でな ければならない。第2行は、システムバリアブルファイルの名前を明細に記すた め、NAMEキーワードを使う。アブソリュート パス ネームは、使われるべきで ある。第3行は、SIZEキーワードを使ってデータエリアのサイズを明確に記す。 サイズは、たとえ、使われているデータスペースが、それよりも少ないとしても 、4Kインクリメントで記載されるべきである。 SOF(スタート オブ フィールド)キーワードは、定義されたフィールドに 先んじねばならない。 6つのサポートフィールドタイプはバイト(byte)、ストリング(str ing)、ダブル(double)、インテジャー(integer)、ショー トインテジャー(short integer)及びロングインテジャー(lo ng integer)である。第1のカラムはフィールドの名前と同一である ことを確認する。フィールド名は30キャラクターに1つの無価値の末端を加え て形成される全部で31のキャラクター限定される。第2のカラムはストリング 、ダブル及びインテジャーのフィールドタイプを定義する。ストリングの中の文 字の数は限定されない。第3のカラムはそのフィールド名に貯えられるべきエレ メントの数を定義する。実例は、フィールド‘kTermsX’が4つのインテ ジャー、‘TravelLimits’が3つのダブル、‘Units’が7つ のキャラクター(いくつかの無価値の末端を包含する)を含む1つのストリング を含むことを示す。 このとき、サイズフィールド(SIZE field)はストリング・データ ・タイプのためだけに使用される。それはストリング中の文字の数(無価値の末 端を包含する)を指し示す。 ユーティリティー 構成ファイル(configuration file)を創り終えたら、操 作者はメモリー領域をセットアップ(set up)し次いで構成パラメーター をロードする必要がある。ライブラリーは、構成をロードし、プリントし、リス トし、セーブし、リストアし(restore)、そしてシステムバリアブル( SystemVariables)メモリー域中の情報を移す、占有(shar ed)メモリー領域を創るユーティリティーを含む。それらのユーティリティー は− それらのユーティリティーは、SVサイズ(SVsize)ユーティリティーか ら始める最も慣用的な順序で説明される。 SVsize 操作者が必要とする第1のユーティリティーであるSVsizeは、占有メモ リーのサイズを設定する。4096サイズ値より小さい実例では、定義占有デー タ領域に十分なスペースを提供する。全使用バイト(Total Bytes Used)パラメーターは、操作者が記入した占有データ定義のために必要なス ペースの全量を指し示す。この形態は、次の4K値まで増加されて、構成ファイ ル中でサイズパラメーターとして使用されなければならない。 SVcreate 占有データ領域を定義後、操作者はSVcreateユーティリティーに使用 する占有データ領域を創る。以下はこのユーティリティープログラムを用いた実 例である。 SVprint ひとたび占有データ領域が創られると、操作者はSVprintユーティリテ ィーを使用してデータ記述を示す。SVprintユーティリティーはフィール ド名、データタイプ(B、I、D、S、H、L)カウント(エレメント数)及び 各ストリングフィールドのサイズを示す。以下はインテジャー(I)、ダブル( D)及びストリング(S)データタイプを示す実例である。このユーティリティ ーはまた各ストリングフィールドのサイズを示す。 SVloadconfig 次に操作者は占有領域にSVloadconfigユーティリティーを使用し てデフォルト(default)値をロードする。このユーティリティーは各フ ィールドに割り当てられ値が記述されたアスキー(ASCII)ファイルを使用 する。ファイルのフォーマット次のようである。 ♯ SharedVariable実例プログラムに使用するデフォルト値が ある。 SVloadconfigユーティリティー中、♯で始まる行はコメントとし て解される。第2のカラムがインデックスであるのに対し、第1のカラムはフィ ールド名を記入する。フィールドまたはインデックはいかなる特定の順序で定義 される必要はない。第3のカラムは値である。もしフィールドが見つからないか 、または値が価値がなければ、エラーメッセージがプリントされる。 SVlistData 操作者は、SVlistDataユーティリティーを使用して占有領域中に広 く貯められた全データ値をリストする。このユーティリティーは、SVload configユーティリティーを使用して読み出しが可能なファイルをアウトプ ットする。インデックスによる各フィールドのための値はプリントされる。SVセーブ 分配域に貯蔵されたデータをモデファイした後で、技術者がディスクに情報を セイブすることが可能である。これは、SVセーブ・ユウティリティに用いるこ とができる。以下は、このユウティリティを用いた実施例である。 上記セーブ・ユウティリティは、a.sav伸長部で、コンフィグレイション ・ファイルに特定されたファイルネームの元で、上記配分域をセーブする。SVリストア 予めセーブされたファイルをリストアするために、SVリストア・ユウティリ ティが用いられる。以下は、このユウティリティを用いた実施例である。 SVshmダンプ そこには、もう一つのユウティリティ、SVshmダンプがあり、これは非常 に低いレベルで、上記配分域をデバッグするために関連してもよい。このプログ ラムは6バイトで上記配分域をダンプし、また、技術者が上記配分域を検査する 時に有効である。配分されたメモリ機能 上記システム可変域は配分メモリの隣接域として記述することができる。この メモリは3個のセクションに分割されている。 配分メモリの貯蔵ヘッダー 内容のテーブル データ貯蔵 上記ヘッダーは3個のフィールドに分割されている。 上記配分域に定義されたフィールドの数(最初の4バイト) 上記配分域へのオフセット(新たなフィールドのためのスペースをアロケー トする時に用いられる) 手旗ハンドルを貯蔵する整数(integer:データ領域にアクセスする 際のみに同期するのに用いられる) 上記ヘッダーの構成は次の如くである。 上記ヘッダーの第2の4バイトは上記配分域へのオフセットの長い整数(こ れもまた4バイト)を収納する。この値は上記配分域の新たなフィールドの ためのスペースをアロケートするときに用いられる。この企画では、内容の テーブルは上記データー貯蔵が情報に増加する間、下方に増加する。最終的 に、上記ヘッダー情報は、データ領域にアクセスする際のみに同期するのに 用いられる手旗ハンドルを貯蔵する整数を収容する。これは上記手旗がフィ ールドについての情報を得るときに用いられないが、上記データ領域への読 み書きにのみ用いられることを意味する。 付記:上記整数およびダブルのためにこのドキュメントに記述された上記バ イトのサイズは、386および486アーチテクチャーを反映する。 上記配分域の第2セクションは、内容のテーブルである。この領域はこのデー ター構造を用いて、それぞれ、記述できるフィールド記述の連続を収容する。 各フィールド記述の上記第一の31バイトはフィールド・ネームを収納する。 これはコンフィグレーション・ファイルに用いられるのと同じ名前である。この 時点で、31キャラクタの上限(ヌル・ターミネータを含む)は許容される。上 記記述の次のバイトは上記フィールド・データ形式を示す。この6フィールド・ データ形式は次の文字で表示される。 B − byte I − integer D − double S − string H − short integer L − long integer 次の4バイトは,この名前の元で貯蔵されるべき要素の数値を表示する整数を 記述する。これは第一の要素のためのインデックス・ゼロで始まる配列へのイン デックスを考慮している。各要素のサイズを表示する整数はカウントの後で貯蔵 される。利用者がストリング・サイズを決める際、ダブルは8バイトを用い、ま た、整数は4バイトを用いる。フィールド記述の最後の4バイトは、貯蔵値が上 記フィールドのために保持される場合、上記データ貯蔵域への配分域の始めから のオフセットを収容する。プログラムの書き込み 配分メモリ域へのアクセスのためにプログラムを書くことを望んでいる技術者 は、次の例を検証することができる。このプログラムは、対象についてのコンフ ィグレーション・ファイル・ネームを通すのに、システム可変対象を簡単に創作 する。コールは、そのサイズを得、フィールド対象をフィールドにマッピングし 、 データを得て、データアップし、そして、他の必要な作用をなすためのシステム 可変対象に対して作られる。 最後に、配分データ域に対する接続を閉じる。 以下にはこのプログラムのコンパイルおよびリンクに用いるメイクファイルが 示されている。 このシステム可変方法は次のセクションに記述されている。システム可変方法 機械コンフィグレーション・ライブラリは、グローバルでアクセス可能な配分 メモリ域にデータを読み込み、また、書き込むために、C++対象としてのシス テム可変のような対象を用いる。上記システム可変方法は、以下のように定義さ れ、また、可能なリターン値が各方法のためにリストアップされる。ベースPtr (BasePtr) このクラスメソッド[クラス法](class method)は、ベースポ インタをシェアドエリア(shared area)へリターンさせる。このメ ソッドのためのファンクションプロトタイプ(function protot ype)は char *BasePtr( ) リターンバリュー: サクセスにおける非ヌルポインタクローズ (Close) このクラスメソッドは、シェアドエリアへの接続をクローズする。このメソッ ドのためのファンクションプロトタイプは int Close( ) リターンバリュー: 0 サクセス −1 エラー エラーの記述のための‘Errno’をチ ェック エラーは、シェアドエリアのアンマップ(unmap)コールまたはシェアド エリアファイルへのクローズコールの間に、生ずる。これらのエラーが生じた時 には、Errnoがセットされる。デスクリプション[記述] (Description) このクラス法は、フィールドを記述するキャラクタストリングをリターンさせ る。ストリングは、フィールドネーム、タイプ、カウント及びサイズを含む(ス トリングタイプの場合)。コーリング[呼出](calling)プログラムは 、リターンされた記述においてデリート[削除]を実行しなければならない。ア プリケーションはフィールドまたはゲットフィールド(Field or Ge tField)法コールを用いて、このコールにおいて用いられるフィールドパ ラメータを得ることができる。このメソッドのためのファンクションプロトタイ プは int Description(svField &field,ch ar *description) GetField,Fieldも参照フィールド (Field) このメソッド[方法](method)は、フィールドネーム(fieldN ame)により特定されたフィールドのためのFieldを見出す。このメソッ ドのためのファンクションプロトタイプは int Field(char *fieldName,svField &field) リターンバリュー: 0 サクセス −2 フィールド見出せず −3 シェアドエリアがイニシャライズされていない Get,Updateも参照フィールドカウント (FieldCount) このメソッドは、フィールドネーム(fieldName)により特定された フィールドのためのエレメントの数を得る。カウントは、パラメータカウントに てリターンされる。このメソッドのためのファンクションプロトタイプは int FieldCount(char *fieldName,in t &count) リターンバリュー: 0 サクセス −2 フィールド見出せず −3 シェアドエリアがイニシャライズされていないフィールドサイズ (FieldSize) このメソッドは、フィールドネーム(fieldName)により特定された フィールドのサイズを得る。サイズは、パラメータサイズにてリターンされる。 このメソッドのためのファンクションプロトタイプは int FieldSize(char *fieldName,int &size) リターンバリュー: 0 サクセス −2 フィールド見出せず −3 シェアドエリアがイニシャライズされていないフィールドタイプ (FieldType) このメソッドは、フィールドネーム(fieldName)により特定された フィールドのためのデータタイプを得る。パラメータタイプにてリターンされる タイプは、インテジャ[整数](integer)に対してI、ダブル(dou ble)に対してD、ストリングに対してS、バイトに対してB、ショートイン テジャ(short integer)に対してH、ロングインテジャ(lon g integer)に対してLである。このメソッドのためのファンクション プロトタイプは int FieldType(char *fieldName,cha r type) リターンバリュー: 0 サクセス −2 フィールド見出せず −3 シェアドエリアがイニシャライズされていないファイルネーム (FileName) このクラスメソッドは、シェアドデータエリア(shared data a rea)を規定するのに用いられる配置ファイルネームをリターンさせる。この メソッドのためのファンクションプロトタイプは char *FileName( )ゲット (Get) このメソッドは、与えられたフィールドのためにネームによりストアされる値 (バリュー)を回復させる。 int Get(char *fieldName,int &data ,int index) int Get(char *fieldName,char *dat a,int index) int Get(char *fieldName,double &d ata,int index) インデックスパラメータはオプショナルである。これが用いられな い場合には、0番目のインデックスがサーチされる。ストリングバリューをゲッ トする(得る)際には注意が必要である。技術者は、この方法に通すキャラクタ ポインタ(character pointer)がキャラクタストリングをス トアするのに十分なスペースを有することを確認しなければならない。そのため の良い方法は、フィールドサイズ(FieldSize)法を用いてキャラクタ ストリングのサイズを得ることである。次に、この方法をコールする前にスペー スを配置する。 リターンバリュー: 0 サクセス −1 無効フィールドタイプ −2 フィールド見出せず −3 シェアドエリアがイニシャライズされていない −4 無効インデックス ゲットメソッドは、また、与えられたフィールドのためにストアされるバリュ ーをsfFieldレファレンスにより特定される様に回復させる。 int Get(sfField &field,int &data, int index) int Get(sfField &field,char *da ta,int index) int Get(sfField &field,double &da ta,int index) フィールドポインタは、フィールドまたはゲットフィールド法を用 いて見出される。技術者は、この方法に通すキャラクタポインタがキャラクタス トリングをストアするのに十分なスペースを有することを確認しなければならな い。そのための良い方法は、フィールドサイズ法を用いてキャラクタストリング のサイズを得ることである。次に、この方法をコールする前にスペースを配置す る。 リターンバリュー: 0 サクセス −1 無効フィールドタイプ −3 シェアドエリアがイニシャライズされていない −4 無効インデックス Field,GetField,FieldSizeも参照ゲットフィールド (GetField) このメソッドコールは、シェアドエリア内のフィールドのリストをトラバース [拒否](traverse)するのに用いられる。パラメータデータ中ゼロ[ 零]を用いることにより、リストのトップから始めることができる。各コールの 後、データパラメータはインクレメントされる。リストは、−1のリターンバリ ューがリターンされる迄この方法を継続してコールすることにより、トラバース される。このメソッドのためのファンクションプロトタイプは int GetField(svField &field,int & data) リターンバリュー: 0 サクセス −1 リストのエンド −3 シェアドエリアがイニシャライズされていない Get,Updateも参照ネーム (Name) このクラスメソッドは、配置ファイル内で特定されるシェアドエリアネームを リターンする。このメソッドのためのファンクションプロトタイプは char *Name( )ナンバーオブフィールド (NumberOfFields) このクラスメソッドは、システムバリアブルのために規定されるフィールドの 数をリターンする。このメソッドのためのファンクションプロトタイプは int NumberOfFields( )リムーブ (Remove) このクラスメソッドは、シェアドエリアを完全に除去する。このコールの後に は、他のいかなるアプリケーションもシェアドエリアにアクセスすることはでき ない。このメソッドのためのファンクションプロトタイプは int Remove( ) リターンバリュー: 0 サクセス −1 シェアドエリアファイルに対するアンマップ(unm ap)コールまたはクローズ(close)コールの間に生じたエラー −3 シェアドエリアがイニシャライズされていない −4 シェアドエリアファイルをアンリンク(unlink )できない −5 シェアドエリアセマフォア(semaphore)を アンリンクできないセーブ (Save) このクラスメソッドは、シェアドエリアのコピーをディスクにセーブする。フ ァイルネームは、シェアドメモリネーム(shared memory nam e)にセーブのサフィックスを付して、用いる。このメソッドのためのファンク ションプロトタイプは int Save( ) リターンバリュー: 0 サクセス −1 セーブファイルをオープンできない −3 シェアドエリアがイニシャライズされていない 更なるインフォメーションのためには‘リストア(R estore)’法の記述に言及する。リストア (Restore) このメソッドは、シェアドエリアのセーブされたコピーをリストア[再保存] する。セーブ及びリストアメソッドを用いる際には、.savエクステンション (extension)を付したファイルネームが用いられる。このメソッドの ためのファンクションプロトタイプは int Restore( ) リターンバリュー: 0 サクセス −1 リストアファイルをオープンできない −3 シェアドエリアがイニシャライズされていない セーブ及びリストアメソッドは、シェアドエリアをセ ーブしリストアするためのファイルネームとして、シェアドエリアネームに.s avエクステンションを付したものを、用いる。ファイルはバイナリフォーマッ トでセーブされ、リストアコールを用いてのみ読み取ることができる。現在のフ ィールドバリューのASCII可読ファイルわ作成するために、SVリストデー タ(SVlistData)ユーティリティプログラムを用いる。サイズ (Size) このクラスメソッドは、シェアドエリアのバイトにおける全サイズをリターン する(シェアドエリアの量は用いられない)。このメソッドのためのファンクシ ョンプロトタイプは int Size( )アップデート [更新](Update) アップデートメソッドは、データ中に与えられた値(バリュー)を持つ与えら れたフィールドのためにストアされた値を置き換える。 int Update(char *fieldName,intdat a,int index) int Update(char *fieldName,char * data,int index) int Update(char *fieldName,double data,int index) インデックスパラメータはオプショナルである。これが特定されな い場合には、0番目のインデックスが用いられる。ストリングフィールドタイプ を更新する際には、フィールドサイズはストアされるキャラクタの数を制限する 。たとえば、30のキャラクタのキャラクタストリングを持ち、20のみをホー ルドできるフィールドを更新する場合には、最初の20のキャラクタのみがスト アされる。 リターンバリュー: 0 サクセス − 無効フィールドタイプ −2 フィールド見出せず −3 シェアドエリアがイニシャライズされていない −4 無効インデックス アップデートメソッドは、また、与えられたフィールドのためにストアされる バリューをsfFieldレファレンスにより特定される様に置き換える。 int Update(sfField &field,int dat a,int index) int Update(sfField &field,char *d ata,int index) int Update(sfField &field,double data,int index) フィールドポインタは、フィールドまたはゲットフィールド法を用 いて見出される。 リターンバリュー: 0 サクセス −1 無効フィールドタイプ −3 シェアドエリアがイニシャライズされていない −4 無効インデックス Get,Field,GetFieldも参照セマフォア (Semaphore) このメソッドは、シェアドエリアへのアクセスに同期して使用されるセマフォ アハンドル(semaphore handle)をリターンする。このメソッ ドのためのファンクションプロトタイプは int Semaphore( )ポストセマフォア (PostSemaphore) このメソッドコールは、シェアドエリアへのアクセスに同期して使用されるセ マフォアをリリース(release)する。この方法をコールする前にセマフ ォアをゲット(get)する[得る]ためにウェイトセマフォア(WaitSe maphore)メソッドコールを使用せねばならない。このメソッドのための ファンクションプロトタイプは void PostSemaphore( )ウェイトセマフォア (WaitSemaphore) このメソッドコールは、シェアドエリアへのアクセスに同期して使用されるセ マフォアを得る。このコールはセマフォアが得られるまでペンディングとされる 。このメソッドのためのファンクションプロトタイプは void WaitSemaphore( ) ウェイトセマフォアとポストセマフォアのコールは、プログラムがシェアドエ リアへのアクセスを得るのを可能にし、各ゲット/アップデートコールを持つセ マフォアをゲットしリリースするオーバーヘッドなしにいくつかのコールを作る のに用いられる。このコールは、ポストセマフォアメソッドコールと組合せて使 用される。いくつかのケースにおいては、アプリケーションは、各コールのため のセマフォアを得る必要なしにフィールドのグループのためのデータを更新しま たは得ることが望まれる。 このケースでは、アプリケーションはコールをウェイトセマフォアにし、次に 全てのフィールドのためのデータを更新/ゲットし、ポストセマフォアコールに 続ける。このコールを実行する場合には、他のプロセスを長過ぎる期間ホールド しないように、注意を払わねばならない。このメソッドは、各ゲット/アップデ ートコールから35マイクロセコンドの節約をする。SVフィールドメソッド (SVfield Method) システムバリアブルズ(SystemVariables)クラスは、各フィ ールドをシステムバリアブルズ内に記述するのにSVフィールドクラスを使用す る。個々のフィールドのレファレンズを得るためには、システムバリアブルズク ラスにゲットフィールドまたはフィールドメソッドを使用する。SVフィールド レファレンスを得ることにより、エンジニアはシステムバリアブルズにおけるフ ィールドをアクセスする効率を大いに改善することができる。なぜなら、これは 、個々のフィールドのサーチを不要にし除外するからである。加えて、これはS Vフィールドクラスメソッドへのコールを作ることにより個々のフィールドにつ いてのインフォメーションを提供する。このセクションはSVフィールドクラス メソッドコールを記述する。ネーム (Name) このクラスメソッドは、フィールドのネームをリターンする。フィールドネー ムは現在はヌルターミネータ(Null terminator)を含む31の キャラクタに制限されている。このメソッドのためのファンクションプロトタイ プは char *Name( )タイプ (Type) このクラスメソッドは、フィールドデータタイプをリターンする。リターンバ リューは、I(インテジャ)、D(ダブル)、S(ストリング)、B(バイト) 、H(ショートインテジャ)またはL(ロングインテジャ)である。このメソッ ドのためのファンクションプロトタイプは char Type( )カウント (Count) このクラスメソッドは、このフィールドネームのもとでストアされるエレメン トのナンバー(数)をリターンする。エレメントは0で始まる番号が付される。 例えば、5のカウントを持つインテジャフィールドは0から4までのインデック スを用いてアクセスされる。このメソッドのためのファンクションプロトタイプ は int Count( )サイズ (Size) このクラスメソッドは、各フィールドエレメントのサイズをリターンする。リ ンクス(Lynx)OS(386/486システム)のもとでは、インテジャ及 びダブルは4バイトでストアされ、ストリングは任意のサイズでストアされる。 例えば、カウント7でサイズ10を持つストリングフィールドは、10の長さの 7つのキャラクタストリングが存在することを意味する(ヌルターミネータを含 む)。このメソッドのためのファンクションプロトタイプは int Syze( ) エクセプション[例外]レポータ(Exception Reporter) エラーメッセージをフィルタリングするのに使用されるエラーコードは、ファ イル‘ErrorCodes.hpp’中で利用できる。このファイルは、顧客 のニーズに合致するように変形され拡張される。 マシンクラス(Machine Class)新マシンクラスの作成 全く新しいマシンクラスの作成は、現存するマシンクラスを単に変更するより も極めて複雑なプロセスである。顧客は、次のような理由で新しいマシンクラス を作成する: *現存するマシンクラスが顧客の極めて特殊なマシンを操作するのに必要な 対象を含んでいない。 *顧客がメッセージインターフェースの交換を望む。 *顧客が特殊なカーネル(Kernel)を持っており、それと交信するた めにマシンクラスを発展させる必要がある。 全ての発展の努力には、2つの主な段階(準備と発展)がある。準備 (Preparation) 全く新しいマシンクラスの発展の準備のためには、顧客は目標のマシンツール を解析してその全てのデバイスを同定すべきである。 顧客は、また、この努力においてシステムツールを同定してアシストしもしな ければならない。これらのツールのいくつかは OSユーティリティズ ANSI C コンパイラ C++プログラミングフィーチャズ(コンパイラ、対象のインヘリタンス [承継](inheritance)、特性[キャラクタリスティックス]及び 変更[チェンジ]のアイソレーション) UNIX−ベースの発展ツール 顧客は、2つの重要なコントロールシステムのコンポーネントに親しむことが 必要である: *メッセージパラメータ及びロジックコントローラフラグを含み良く実証 (ドクメンテーション)されたカーネルインターフェース *サンプルのためのフルソースコード、ゼネリックマシンクラス これら2つのコンポーネントの理解は、顧客が新しいマシンクラスを現存する カーネルファンクションに接続するのを助けることにより、発展の努力を簡単化 する。発展のステップ 新しいマシンクラスを作成する際に開発者が従うステップは、次の通りである : 1.目標のマシンの全ての解析の後に、マシンを操作するのに必要なデバイス の全てにネームをつける。これらは新しいマシンクラス対象となる。 2.各デバイスにより用いられる全てのメソッドを同定する。現存するマシン クラスオブジェクト(対象)により用いられているのと同じバーブ(動詞)を用 いるのがしばしば有利である。このようにして、開発者は現存するメッセージと 接続し、これを用いることができる。 3.利用可能なカーネルファンクションを新しいマシンクラスオブジェクトに マッチさせる。必要ならは新しいメッセージを作成する。 当業者には、ここに記載されている本発明の精神及び範囲から逸脱することな く本発明には多くの変形が可能であり、そのような変形が下記の請求の範囲に含 まれる、ということが理解されるであろう。
【手続補正書】特許法第184条の8 【提出日】1995年8月30日 【補正内容】 補正書の翻訳文[条約34条に基づく補正] 請求の範囲 1.製作品を形成する制御可能な可動性ある工具と、前記製作品に実行されてい る制御指示記述形成機能を受け入れる手段と、処理ユニットとメモリ手段とから 構成される工作機械のタイプの工作機械制御システムであって、 前記工作機械制御システムは、製作品形成指示を受け入れてメモリに記録する 手段と、 可動性ある工具を可動させるために前記可動性ある工具に指令信号を伝送する 手段と、 該伝送する手段は、多数のオブジェクトを含むオブジェクト指向ソフトウエア プログラムを特徴とし、前記各オブジェクトは多数の命令と、関連データとを含 み、さらに前記オブジェクトのおのおのは相応するコンセプトと交換に関する動 作を実行し、どんな動作が実行されるべきかを指示するメッセージと送付オブジ ェクトのステイタスを示す他のオブジェクトとを含み、 前記多数のオブジェクトの少なくとも1つからメッセージを受け入れるモーシ ョンコントローラソフトウエアモジュールと、 前記モーションコントローラソフトウエアモジュールで、前記受け入れられた メッセージは可動性工具の希望される運転を指示するコマンドを含み、 さらに、前記可動性工具を可動させることによって前記伝送する手段にコマン ド信号を送出する手段から成る前記モーションコントローラソフトウエアモジュ ールと、 から構成されることを特徴とする工作機械制御システム。 2.請求項1に記載の工作機械において、前記オブジェクトの少なくとも1つが 前記可動性工具によって製作品で実行される形成プロセスのモデルからなること を特徴とする工作機械。 3.請求項2に記載の工作機械において、前記オブジェクトの少なくとも1つが 製作品を形成する可動性工具のモデルからなり、前記可動性工具のオブジェクト が前記形成プロセスのオブジェクトを有するメッセージと交換することを特徴と する工作機械。 4.請求項1に記載の工作機械において、第1と第2のオブジェクトがそれぞれ 、製作品に実行される形成プロセスのモデルからなり、前記第2のオブジェクト が前記第1のオブジェクトから継承されることを特徴とする工作機械。 5.請求項1に記載の工作機械において、前記オブジェクトの少なくとも1つが 製作品に孔を形成できる孔形成のモデルからなり、そのモデルが孔のX,Yと, Zのディメンションを定義する定義を含むことを特徴とする工作機械。 6.請求項1に記載の工作機械において、前記オブジェクトの少なくとも1つが 製作品に形成され得る研磨プロセスのモデルからなり、当該モデルが形成の2次 のディメンション定義を含むことを特徴とする工作機械。 7.請求項1に記載の工作機械において、前記オブジェクトの少なくとも1つが 旋盤で回転される製作品に実行され得る輪郭に合わせて造るプロセスのモデルか らなることを特徴とする工作機械。 8.請求項1に記載の工作機械において、前記オブジェクトが前記オブジェクト によって定義される前記プロセスが製作品で実行されたかどうかの表現するステ イタス手段を含むことを特徴とする工作機械。 9.請求項1に記載の工作機械において、前記オブジェクトの少なくとも1つが 製作品を形成するのに関連して可動性工具を使用するモデルからなることを特徴 とする工作機械。 10.請求項1に記載の工作機械において、 可動性工具で故障を指示する信号を可動性工具から受け入れる手段と、 可動性工具から検出された故障を促す情報を記憶する手段と、前記記憶する手 段は各検出された故障と、前記検出された故障を確認するオブジェクト指向メッ セージをどこかに送るための前記オブジェクトのサブリストと、可動性工具故障 を促す情報受け入れた上で前記故障に関連する各オブジェクトに対するオブジェ クト指向メッセージとから成るデバイス故障ソフトウエアモジュールと、 を備えたことを特徴とする工作機械。
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,DE, DK,ES,FR,GB,GR,IE,IT,LU,M C,NL,PT,SE),OA(BF,BJ,CF,CG ,CI,CM,GA,GN,ML,MR,NE,SN, TD,TG),AT,AU,BB,BG,BR,BY, CA,CH,CN,CZ,DE,DK,ES,FI,G B,HU,JP,KP,KR,KZ,LK,LU,LV ,MG,MN,MW,NL,NO,NZ,PL,PT, RO,RU,SD,SE,SI,SK,UA,US,U Z,VN (72)発明者 プラッツ・デヴィット・イー アメリカ合衆国、インディアナ州 46168、 プレインフィールド、ラッドゲート ドラ イブ 4642 (72)発明者 フレンチ・ダニエル・ビー アメリカ合衆国、インディアナ州 46033、 カルメル、チャーリング クロス ロード 12727 (72)発明者 トレイコフ・ジェラルド アメリカ合衆国、インディアナ州 46260、 インディアナポリス、オールド タウン ノース ドライブ 1325 (72)発明者 デュポント・マイケル・エイ アメリカ合衆国、インディアナ州 46038、 フィッシャーズ、ラッシュ コート 111 (72)発明者 ヘッド・グレゴリー・エイ アメリカ合衆国、インディアナ州 46168、 プレインフィールド、ティンバーウッド ドライブ 3421

Claims (1)

  1. 【特許請求の範囲】 1.製作品を形成する制御可能な可動性ある工具と、前記製作品に実行されてい る制御指示記述形成機能を受け入れる手段と、処理ユニットとメモリ手段とから 構成される工作機械のタイプの工作機械制御システムであって、 前記制御システムは、 製作品形成指示を受け入れてメモリに記録する手段と、 工具を可動させるために前記可動性ある工具にコマンド信号を伝送する手段と 該コマンド信号を伝送する手段は、多数の伝送オブジェクトと、多数の受け入 れオブジェクトと、多数のメッセージが前記伝送オブジェクトによって前記多数 の受け入れオブジェクトに伝送される多数のメッセージと、多数のオブジェクト の少なくとも1つからメッセージを受け入れるモーションコントローラソフトウ エアモジュールと、から成るオブジェクト指向ソフトウエアプログラムによって 特徴付けられ、 さらに、可動性工具の希望される運動を指示するコマンドを含む前記受け入れ メッセージと、 更に、前記可動性工具を可動させることによって前記伝送する手段にコマンド 信号を送出する手段からなるモーションコントローラーソフトウエアモジュール と、から成ることを特徴とする工作機械制御システム。 2.請求項1に記載の工作機械において、前記オブジェクトの少なくとも1つが 前記可動性工具によって製作品で実行される形成プロセスのモデルからなること を特徴とする工作機械。 3.請求項2に記載の工作機械において、前記オブジェクトの少なくとも1つが 製作品を形成する可動性工具のモデルからなり、前記可動性工具のオブジェクト が前記形成プロセスのオブジェクトを有するメッセージと交換することを特徴と する工作機械。 4.請求項1に記載の工作機械において、第1と第2のオブジェクトがそれぞれ 、製作品に実行される形成プロセスのモデルからなり、前記第2のオブジェクト が前記第1のオブジェクトから継承されることを特徴とする工作機械。 5.請求項1に記載の工作機械において、前記オブジェクトの少なくとも1つが 製作品に孔を形成できる孔形成のモデルからなり、そのモデルが孔のX,Yと, Zのディメンションを定義する定義を含むことを特徴とする工作機械。 6.請求項1に記載の工作機械において、前記オブジェクトの少なくとも1つが 製作品に形成され得る研磨プロセスのモデルからなり、当該モデルが形成の2次 のディメンション定義を含むことを特徴とする工作機械。 7.請求項1に記載の工作機械において、前記オブジェクトの少なくとも1つが 旋盤で回転される製作品に実行され得る輪郭に合わせて造るプロセスのモデルか らなることを特徴とする工作機械。 8.請求項1に記載の工作機械において、前記オブジェクトが前記オブジェクト によって定義される前記プロセスが製作品で実行されたかどうかの表現するステ イタス手段を含むことを特徴とする工作機械。 9.請求項1に記載の工作機械において、前記オブジェクトの少なくとも1つが 製作品を形成するのに関連して可動性工具を使用するモデルからなることを特徴 とする工作機械。 10.請求項1に記載の工作機械において、 可動性工具で故障を指示する信号を可動性工具から受け入れる手段と、 可動性工具から検出された故障を促す情報を記憶する手段と、前記記憶する手 段は各検出された故障と、前記検出された故障を確認するオブジェクト指向メッ セージをどこかに送るための前記オブジェクトのサブリストと、可動性工具故障 を促す情報受け入れた上で前記故障に関連する各オブジェクトに対するオブジェ クト指向メッセージとから成るデバイス故障ソフトウエアモジョールと、 を備えたことを特徴とする工作機械。
JP7508764A 1993-09-08 1994-09-07 計算機数値制御システム Pending JPH08511643A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/118,445 US5453933A (en) 1993-09-08 1993-09-08 CNC control system
US118,445 1993-09-08
PCT/US1994/010029 WO1995007504A1 (en) 1993-09-08 1994-09-07 Cnc control system

Publications (1)

Publication Number Publication Date
JPH08511643A true JPH08511643A (ja) 1996-12-03

Family

ID=22378639

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7508764A Pending JPH08511643A (ja) 1993-09-08 1994-09-07 計算機数値制御システム

Country Status (10)

Country Link
US (1) US5453933A (ja)
EP (1) EP0717866B1 (ja)
JP (1) JPH08511643A (ja)
AT (1) ATE160031T1 (ja)
AU (1) AU7794994A (ja)
CA (1) CA2169916C (ja)
DE (2) DE717866T1 (ja)
ES (1) ES2092454T1 (ja)
TW (1) TW475911B (ja)
WO (1) WO1995007504A1 (ja)

Families Citing this family (194)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4437057C2 (de) * 1994-10-17 1999-04-01 Agie Ag Ind Elektronik Verfahren und Vorrichtung zur Steuerung von Funkenerosionsmaschinen
US5751585A (en) * 1995-03-20 1998-05-12 Electro Scientific Industries, Inc. High speed, high accuracy multi-stage tool positioning system
US5847960A (en) * 1995-03-20 1998-12-08 Electro Scientific Industries, Inc. Multi-tool positioning system
DE19513230A1 (de) * 1995-04-07 1996-10-10 Siemens Ag Programmiergerät
US5691897A (en) * 1995-05-30 1997-11-25 Roy-G-Biv Corporation Motion control systems
US7139843B1 (en) 1995-05-30 2006-11-21 Roy-G-Biv Corporation System and methods for generating and communicating motion data through a distributed network
US6859671B1 (en) 1995-05-30 2005-02-22 Roy-G-Biv Corporation Application programs for motion control devices including access limitations
US6209037B1 (en) 1995-05-30 2001-03-27 Roy-G-Biv Corporation Motion control systems using communication map to facilitating communication with motion control hardware
US6571141B1 (en) 1995-05-30 2003-05-27 Roy-G-Biv Corporation Application programs for motion control devices including access limitations
US6542925B2 (en) 1995-05-30 2003-04-01 Roy-G-Biv Corporation Generation and distribution of motion commands over a distributed network
US20060206219A1 (en) * 1995-05-30 2006-09-14 Brown David W Motion control systems and methods
US7024666B1 (en) 2002-01-28 2006-04-04 Roy-G-Biv Corporation Motion control systems and methods
US7137107B1 (en) 2003-04-29 2006-11-14 Roy-G-Biv Corporation Motion control systems and methods
US6405262B1 (en) * 1995-07-14 2002-06-11 Microsoft Corporation Efficient inter-process object and interface pinging
US5732261A (en) 1995-07-19 1998-03-24 Ricoh Company, Ltd. Method of using an object-oriented communication system with support for multiple remote machine types
US5918051A (en) * 1995-07-19 1999-06-29 Ricoh Company, Ltd. Object-oriented communication system with support for multiple remote machine types
US5832264A (en) 1995-07-19 1998-11-03 Ricoh Company, Ltd. Object-oriented communications framework system with support for multiple remote machine types
US5940296A (en) * 1995-11-06 1999-08-17 Medar Inc. Method and system for interactively developing a graphical control-flow structure and associated application software for use in a machine vision system
US5742504A (en) * 1995-11-06 1998-04-21 Medar, Inc. Method and system for quickly developing application software for use in a machine vision system
JP3647955B2 (ja) * 1996-01-23 2005-05-18 三菱電機株式会社 操作ボード、リモートi/o通信制御方法
US5946449A (en) * 1996-04-05 1999-08-31 Georgia Tech Research Corporation Precision apparatus with non-rigid, imprecise structure, and method for operating same
DE19614202C2 (de) * 1996-04-10 1999-08-12 Agie Ag Ind Elektronik Verfahren und Vorrichtung zur Steuerung einer Werkzeugmaschine, insbesondere einer Funkenerosionsmaschine
US5745675A (en) * 1996-04-23 1998-04-28 International Business Machines Corporation Object oriented framework mechanism for performing computer system diagnostics
US5886897A (en) * 1996-05-06 1999-03-23 Amada Soft America Inc. Apparatus and method for managing and distributing design and manufacturing information throughout a sheet metal production facility
US5971589A (en) 1996-05-06 1999-10-26 Amadasoft America, Inc. Apparatus and method for managing and distributing design and manufacturing information throughout a sheet metal production facility
US5828575A (en) * 1996-05-06 1998-10-27 Amadasoft America, Inc. Apparatus and method for managing and distributing design and manufacturing information throughout a sheet metal production facility
US5864482A (en) * 1996-05-06 1999-01-26 Amadasoft America, Inc. Apparatus and method for managing distributing design and manufacturing information throughout a sheet metal production facility
EP0825506B1 (en) 1996-08-20 2013-03-06 Invensys Systems, Inc. Methods and apparatus for remote process control
US6151623A (en) * 1996-12-13 2000-11-21 International Business Machines Corporation Agent activity report via object embedding
JP4044169B2 (ja) * 1997-02-26 2008-02-06 株式会社アマダ 工程の流れに沿った情報設定画面の表示方法及びその機能を有するマルチウィンドウ方式のnc装置
US5997167A (en) * 1997-05-01 1999-12-07 Control Technology Corporation Programmable controller including diagnostic and simulation facilities
DE29712266U1 (de) * 1997-07-11 1997-09-11 Siemens Ag Numerische Steuerung für Werkzeugmaschinen, Roboter o.dgl.
JP3663842B2 (ja) * 1997-07-18 2005-06-22 株式会社デンソー 自動車用電子制御装置
JPH1153223A (ja) * 1997-08-01 1999-02-26 Sony Corp データ処理方法、記録媒体及び電子機器
IL121458A0 (en) * 1997-08-03 1998-02-08 Lipsker Daniel Rapid prototyping
US6233538B1 (en) * 1997-09-11 2001-05-15 Amada America, Inc. Apparatus and method for multi-purpose setup planning for sheet metal bending operations
JPH11112652A (ja) 1997-09-29 1999-04-23 Sony Corp 留守番機能付き電話装置
US20010032278A1 (en) 1997-10-07 2001-10-18 Brown Stephen J. Remote generation and distribution of command programs for programmable devices
US5950006A (en) * 1997-11-05 1999-09-07 Control Technology Corporation Object-oriented programmable controller
US6061602A (en) * 1998-06-23 2000-05-09 Creative Lifestyles, Inc. Method and apparatus for developing application software for home automation system
JP3460593B2 (ja) * 1998-09-17 2003-10-27 株式会社デンソー 車両用制御装置
CN1083750C (zh) * 1998-11-12 2002-05-01 财团法人工业技术研究院 车床控制器系统及其控制方法
DE19853205A1 (de) 1998-11-18 2000-06-15 Siemens Ag Verfahren zur Steuerung technischer Prozesse
US6345212B1 (en) * 1998-11-20 2002-02-05 Manufacturing Data Systems, Inc. Automatic variable linkage mechanism for integrating third party software components
DE19856098C2 (de) * 1998-12-04 2002-01-17 Agie Sa Verfahren und Vorrichtung zur Steuerung einer Senkerosionsmaschine
JP3663950B2 (ja) * 1999-01-20 2005-06-22 株式会社デンソー 自動車用電子制御装置
US6618162B1 (en) 1999-01-26 2003-09-09 Intermec Ip Corp. Apparatus and method to configure a device, such as a printer, over a network
US20050274801A1 (en) * 1999-01-29 2005-12-15 Intermec Ip Corp. Method, apparatus and article for validating ADC devices, such as barcode, RFID and magnetic stripe readers
US6857013B2 (en) 1999-01-29 2005-02-15 Intermec Ip.Corp. Remote anomaly diagnosis and reconfiguration of an automatic data collection device platform over a telecommunications network
US6470225B1 (en) * 1999-04-16 2002-10-22 Siemens Energy & Automation, Inc. Method and apparatus for automatically tuning feedforward parameters
US6298474B1 (en) 1999-04-30 2001-10-02 Intergral Vision, Inc. Method and system for interactively developing a graphical control-flow structure and associated application software for use in a machine vision system and computer-readable storage medium having a program for executing the method
AU5025600A (en) 1999-05-17 2000-12-05 Foxboro Company, The Process control configuration system with parameterized objects
US7089530B1 (en) 1999-05-17 2006-08-08 Invensys Systems, Inc. Process control configuration system with connection validation and configuration
DE19924461A1 (de) 1999-05-28 2000-11-30 Heidenhain Gmbh Dr Johannes Verfahren zum synchronisierten Hochlauf einer Steuerung
US6788980B1 (en) 1999-06-11 2004-09-07 Invensys Systems, Inc. Methods and apparatus for control using control devices that provide a virtual machine environment and that communicate via an IP network
US7069185B1 (en) * 1999-08-30 2006-06-27 Wilson Diagnostic Systems, Llc Computerized machine controller diagnostic system
US6560720B1 (en) 1999-09-09 2003-05-06 International Business Machines Corporation Error injection apparatus and method
US6487208B1 (en) 1999-09-09 2002-11-26 International Business Machines Corporation On-line switch diagnostics
US6601195B1 (en) 1999-09-09 2003-07-29 International Business Machines Corporation Switch adapter testing
US6976062B1 (en) * 1999-09-22 2005-12-13 Intermec Ip Corp. Automated software upgrade utility
DE19949558A1 (de) 1999-10-14 2001-04-19 Heidenhain Gmbh Dr Johannes Steuerungsprogramm für eine numerische Werkzeugmaschine mit einer wiederverwendbaren Softwarestruktur
JP2003513348A (ja) 1999-10-27 2003-04-08 ロイ ジー ビヴ コーポレイション 分散型ネットワークを経て運動データを発生しそして通信するためのシステム及び方法
US20100131078A1 (en) * 1999-10-27 2010-05-27 Brown David W Event driven motion systems
US8032605B2 (en) 1999-10-27 2011-10-04 Roy-G-Biv Corporation Generation and distribution of motion commands over a distributed network
US6885898B1 (en) 2001-05-18 2005-04-26 Roy-G-Biv Corporation Event driven motion systems
US6876991B1 (en) 1999-11-08 2005-04-05 Collaborative Decision Platforms, Llc. System, method and computer program product for a collaborative decision platform
DK176631B1 (da) * 1999-12-20 2008-12-08 Danfoss Drives As Programmering af en motorstyring
FR2804218B1 (fr) * 2000-01-26 2002-03-29 Schneider Automation Automate programmable dote de fonctions de communication dans une architecture client-serveur
US8028049B1 (en) 2000-02-01 2011-09-27 Peer Intellectual Property Inc. Apparatus and method for web-based tool management
US7873428B2 (en) * 2005-04-15 2011-01-18 PEER Intellectual Property, Inc. Automated job management
US7403984B2 (en) * 2000-02-01 2008-07-22 Asyst Technologies, Inc. Automated tool management in a multi-protocol environment
US9785140B2 (en) 2000-02-01 2017-10-10 Peer Intellectual Property Inc. Multi-protocol multi-client equipment server
US6627835B1 (en) 2000-02-02 2003-09-30 Purdue Research Foundation Three dimensional object fabrication techniques
WO2001064395A2 (en) * 2000-03-01 2001-09-07 Speedfam-Ipec Corporation A modular control system and method for a cmp tool
US6324931B1 (en) 2000-04-19 2001-12-04 Dana Corporation Straight bevel gears with improved tooth root area geometry and method for manufacturing forging die for making thereof
US7283888B2 (en) * 2000-05-16 2007-10-16 Brigham Young University Method and system for controlling a machine tool with direct transfer of machining data
DE10055168A1 (de) * 2000-08-03 2002-02-21 Siemens Ag Industrielle Steuerung auf der Basis verteilbarer Technologischer Objekte
US7117049B2 (en) * 2000-08-03 2006-10-03 Siemens Aktlencesellschaft Industrial controller based on distributable technology objects
WO2002019044A2 (de) * 2000-08-28 2002-03-07 Markus Gillich Vorrichtung und verfahren zur integrierten überwachung, steuerung und regelung von komplexen technischen verfahrensabläufen
US6921877B2 (en) * 2000-08-29 2005-07-26 Tai-I Electron Machining Co., Ltd. EDM drill
JP2002099312A (ja) * 2000-09-22 2002-04-05 Mitsubishi Electric Corp プログラマブルコントローラおよび制御プログラム開発支援装置
JP3479506B2 (ja) * 2000-10-18 2003-12-15 有限会社リニアセル・デザイン 加重平均値演算回路
EP1351108B1 (en) * 2000-11-24 2015-06-24 Mitsubishi Denki Kabushiki Kaisha Method and apparatus for programming
US6965803B2 (en) * 2000-12-22 2005-11-15 Siemens Aktiengesellschaft Apparatus and method for commissioning and diagnosing control systems
WO2002054184A2 (en) 2001-01-04 2002-07-11 Roy-G-Biv Corporation Systems and methods for transmitting motion control data
DE10104163A1 (de) * 2001-01-30 2002-08-14 Rexroth Indramat Gmbh Steuerungs-und/oder Überwachungsanlage von Maschinen und/oder Anlagen mit Aktionskomponenten unterschiedlicher Aktionsgruppen
US7904194B2 (en) 2001-02-09 2011-03-08 Roy-G-Biv Corporation Event management systems and methods for motion control systems
US7031798B2 (en) 2001-02-09 2006-04-18 Roy-G-Biv Corporation Event management systems and methods for the distribution of motion control commands
EP1393137B1 (de) * 2001-06-06 2005-03-23 Automationx GmbH Verfahren zum festlegen von automatisierten prozessen
US6839600B2 (en) * 2001-07-02 2005-01-04 Entivity, Inc. Project organization and dissemination system for machine programming and control systems
US7756963B2 (en) * 2001-07-05 2010-07-13 PEER Intellectual Property, Inc. Automated tool management in a multi-protocol environment
US6975913B2 (en) 2001-07-13 2005-12-13 Siemens Aktiengesellschaft Database system and method for industrial automation services
US7292900B2 (en) * 2001-07-13 2007-11-06 Siemens Aktiengesellschaft Power distribution expert system
US7603289B2 (en) * 2001-07-13 2009-10-13 Siemens Aktiengesellschaft System and method for electronic delivery of content for industrial automation systems
CA2451275C (en) * 2001-07-25 2008-02-12 Lhr Technologies Processor-controlled carving and multi-purpose shaping device
US20060190106A1 (en) 2001-07-30 2006-08-24 Rockwell Automation Technologies, Inc. Method for consistent storage of data in an industrial controller
US6819960B1 (en) 2001-08-13 2004-11-16 Rockwell Software Inc. Industrial controller automation interface
EP1324286A3 (en) * 2001-12-20 2005-01-05 NCR International, Inc. Self-service terminal
US7334215B2 (en) * 2001-12-21 2008-02-19 Lockheed Martin Corporation Manager for software controls in an operating environment
JP2003271211A (ja) * 2002-03-15 2003-09-26 Union Denshi Kogyo:Kk マシニングセンター支援システム
US7117043B1 (en) * 2002-03-28 2006-10-03 Integrator.Com Method for programming a programmable logic controller
US7096076B2 (en) * 2002-06-19 2006-08-22 Rockwell Automation Technologies, Inc. Output cam system and method
US7099719B2 (en) * 2002-06-19 2006-08-29 Rockwell Automation Technologies, Inc. Output cam system and method
US6974082B2 (en) * 2002-07-15 2005-12-13 Monode Marking Products, Inc. Hardware integration system
US6775585B2 (en) * 2002-10-02 2004-08-10 The Goodyear Tire & Rubber Company Method and designing and manufacturing rubber process tooling using an interface to a CAD/CAM software program
US6961637B2 (en) * 2003-02-25 2005-11-01 Ge Fanuc Automation Americas, Inc. On demand adaptive control system
US8027349B2 (en) * 2003-09-25 2011-09-27 Roy-G-Biv Corporation Database event driven motion systems
US20060064503A1 (en) 2003-09-25 2006-03-23 Brown David W Data routing systems and methods
US7180253B2 (en) * 2003-09-30 2007-02-20 Rockwell Automation Technologies, Inc. Method and system for generating multi-dimensional motion profiles
US7107119B2 (en) * 2003-10-27 2006-09-12 Siemens Aktiengesellschaft Controller for a machine tool or production machine
US20100131077A1 (en) * 2004-02-25 2010-05-27 Brown David W Data Collection Systems and Methods for Motion Control
DE102004023848A1 (de) * 2004-05-13 2005-12-08 Siemens Ag Datenträger mit einer auf dem Datenträger gespeicherten Steuerdatei für eine Steuereinrichtung für eine Maschine und hiermit zusammenhängende Verfahren und Einrichtung
US7266425B2 (en) * 2004-09-30 2007-09-04 Rockwell Automation Technologies, Inc. Systems and methods that facilitate motion control through coordinate system transformations
US7693585B2 (en) * 2004-09-30 2010-04-06 Rockwell Automation Technologies, Inc. Enabling object oriented capabilities in automation systems
JP2006107043A (ja) * 2004-10-04 2006-04-20 Toyoda Mach Works Ltd 工作機械制御装置
US7398129B2 (en) * 2004-10-07 2008-07-08 Amada Company, Limited Representation of sheet metal part models
KR100674182B1 (ko) 2004-11-30 2007-01-24 주식회사 터보테크 표준인터페이스서버 구동방식을 채용한 개방형 씨앤씨시스템
US20060129270A1 (en) * 2004-12-10 2006-06-15 Gerold Pankl Processes and systems for creation of machine control for specialty machines requiring manual input
US20060129461A1 (en) * 2004-12-10 2006-06-15 Gerold Pankl Data entry and system for automated order, design, and manufacture of ordered parts
US7554560B2 (en) * 2004-12-24 2009-06-30 Donald Pieronek System for defining network behaviors within application programs
JP4271159B2 (ja) * 2005-02-25 2009-06-03 ファナック株式会社 対話形数値制御装置
CN100377151C (zh) * 2005-03-11 2008-03-26 鸿富锦精密工业(深圳)有限公司 量测设备离线编程系统及方法
US7792604B2 (en) * 2005-03-23 2010-09-07 Hurco Companies, Inc. Method of performing additive lookahead for adaptive cutting feedrate control
JP2006293744A (ja) * 2005-04-12 2006-10-26 Fanuc Ltd プログラム変換装置
DE602005023981D1 (de) * 2005-08-01 2010-11-18 Agie Charmilles S A Verfahren zum Betreiben einer Funkenerosionsmaschine und Funkenerosionsmaschine.
US7761864B2 (en) 2005-08-09 2010-07-20 Intermec Ip Corp. Method, apparatus and article to load new instructions on processor based devices, for example, automatic data collection devices
CN1932760B (zh) * 2005-09-12 2012-07-18 全智科技公司 用于运行应用程序的系统和方法
CN101288032B (zh) * 2005-12-26 2010-06-02 三菱电机株式会社 数控装置及数控工作机械
US7866021B2 (en) * 2006-05-31 2011-01-11 Jac Property Holdings, Llc Methods and assemblies for manufacturing components
KR20080005692A (ko) * 2006-07-10 2008-01-15 엘지전자 주식회사 데이터 방송 신호, 이를 처리하는 방법 및 수신하는 장치
US7933677B2 (en) * 2006-08-04 2011-04-26 Hurco Companies, Inc. System and method for surface finish management
US8944332B2 (en) 2006-08-04 2015-02-03 Intermec Ip Corp. Testing automatic data collection devices, such as barcode, RFID and/or magnetic stripe readers
US8725283B2 (en) * 2006-08-04 2014-05-13 Hurco Companies, Inc. Generalized kinematics system
EP2049958B1 (en) 2006-08-04 2012-09-19 Hurco Companies Inc. System and method for tool use management
US8024068B2 (en) * 2006-08-04 2011-09-20 Hurco Companies, Inc. Machine tool control system
US20080099104A1 (en) * 2006-10-09 2008-05-01 Bradley Anthony A Multi-Function Workbench with Wireless controls
DE102007004423A1 (de) * 2007-01-23 2008-07-31 Carl Zeiss Industrielle Messtechnik Gmbh Steuerung eines Betriebes eines Koordinatenmessgerätes
DE102007015520A1 (de) * 2007-03-30 2008-10-02 Airbus Deutschland Gmbh Unterbodensystem für ein Flugzeug
US8171634B2 (en) 2007-07-09 2012-05-08 Pratt & Whitney Canada Corp. Method of producing effusion holes
US9588511B2 (en) * 2007-08-03 2017-03-07 Hurco Companies, Inc. Virtual machine manager
US8844104B2 (en) * 2009-04-22 2014-09-30 Hurco Companies, Inc. Multi-zone machine tool system
DE102007049162A1 (de) * 2007-08-30 2009-03-05 Robert Bosch Gmbh Vorrichtung zum Betrieb einer Maschine
WO2009036464A2 (en) * 2007-09-14 2009-03-19 Infimatic, Llc A human-machine interface (hmi) and method of operating the same
US7894930B2 (en) * 2008-02-07 2011-02-22 Dp Technology, Corp. Method and device for composite machining based on tool-path pattern types with tool axis orientation rules
WO2009155483A1 (en) 2008-06-20 2009-12-23 Invensys Systems, Inc. Systems and methods for immersive interaction with actual and/or simulated facilities for process, environmental and industrial control
CN101620439A (zh) * 2008-06-30 2010-01-06 鸿富锦精密工业(深圳)有限公司 马达控制系统
US9141105B2 (en) 2008-07-23 2015-09-22 Hurco Companies, Inc. Method and apparatus for monitoring or controlling a machine tool system
US9333577B2 (en) 2008-08-29 2016-05-10 General Electric Company Electro discharge machining apparatus and method
CN101670532B (zh) * 2008-09-08 2011-06-22 鸿富锦精密工业(深圳)有限公司 刀具磨损补偿系统及方法
US8688258B2 (en) * 2008-09-11 2014-04-01 Rockwell Automation Technologies, Inc. Method of controlling a machine tool
JP5359320B2 (ja) * 2009-01-29 2013-12-04 株式会社ジェイテクト 工作機械
US8299743B2 (en) * 2009-01-29 2012-10-30 Jtekt Corporation Machine tool and controlling method thereof
US8463964B2 (en) 2009-05-29 2013-06-11 Invensys Systems, Inc. Methods and apparatus for control configuration with enhanced change-tracking
US8127060B2 (en) 2009-05-29 2012-02-28 Invensys Systems, Inc Methods and apparatus for control configuration with control objects that are fieldbus protocol-aware
JP2011016220A (ja) * 2009-07-09 2011-01-27 Mori Seiki Co Ltd プログラミング装置
CN102231616B (zh) * 2010-01-29 2014-01-08 中山大洋电机制造有限公司 一种电子驱动电机的电机控制器及其控制方法
DE102010028135A1 (de) * 2010-04-22 2011-10-27 Trumpf Werkzeugmaschinen Gmbh + Co. Kg NC-Programm und Verfahren zur vereinfachten Nachproduktion an einer Werkzeugmaschine
DE112010005521B4 (de) * 2010-04-27 2017-09-21 Mitsubishi Electric Corporation Numerische Steuervorrichtung
TWI427448B (zh) * 2010-11-02 2014-02-21 Ind Tech Res Inst 多軸同動機械之程式轉換模組及程式轉換方法
DE102011089014A1 (de) * 2011-01-19 2012-07-19 Dr. Johannes Heidenhain Gmbh Numerische Steuerung
CN102354155B (zh) * 2011-07-22 2013-05-01 江俊逢 开放式数控系统的实时内核及刀路曲线的实时控制方法
TWI460568B (zh) * 2012-01-19 2014-11-11 Lnc Technology Co Ltd Flexible application of multi - axis controller application system
US9784554B2 (en) 2012-03-20 2017-10-10 Hurco Companies, Inc. Method for measuring a rotary axis of a machine tool system
US20140074279A1 (en) * 2012-09-07 2014-03-13 Haas Automation, Inc. Computer numerical controlled machine tool control system
CN102880153B (zh) * 2012-10-15 2015-06-24 中达光电工业(吴江)有限公司 使用不同运动控制产品的pcb钻铣设备的运行方法及系统
WO2014118918A1 (ja) 2013-01-30 2014-08-07 三菱電機株式会社 数値制御装置
FR3001553B1 (fr) * 2013-01-31 2018-11-02 Wesby Sarl Dispositif de commande pour un systeme d'automatisme
US10955238B1 (en) 2013-03-15 2021-03-23 Kerr Machine Co. In-process automatic recalibration
US9235337B2 (en) 2013-05-09 2016-01-12 Mitutoyo Corporation System, GUI and method for editing step and repeat operation instructions in a machine vision inspection system
TWI501059B (zh) * 2013-09-12 2015-09-21 Syntec Inc 用於工具機之工件程式解譯方法
WO2015051332A1 (en) 2013-10-04 2015-04-09 Kanawha Automation, Llc Dynamic additive manufacturing system
EP3205448B1 (en) * 2014-10-07 2020-08-12 Citizen Watch Co., Ltd. Control device for machine tool
US9798315B2 (en) * 2014-10-14 2017-10-24 Siemens Product Lifecycle Management Software Inc. Machine tool post configurator systems and methods
JP2016081469A (ja) * 2014-10-22 2016-05-16 ファナック株式会社 数値制御装置のオプション機能の使用状況管理システム
DE102015001557B3 (de) * 2015-02-10 2016-02-04 Komet Group Gmbh Verfahren zum Überwachen einer Werkzeugmaschine
JP6325500B2 (ja) * 2015-09-17 2018-05-16 ファナック株式会社 Cncの動作状況をコメント中に追加表示可能なラダー図モニタ装置
US9959158B2 (en) 2015-10-13 2018-05-01 Honeywell International Inc. Methods and apparatus for the creation and use of reusable fault model components in fault modeling and complex system prognostics
KR102079499B1 (ko) * 2015-10-20 2020-02-21 엘에스산전 주식회사 Plc 위치 결정 시스템의 축별 제어주기 독립 할당 방법
TWI554856B (zh) * 2015-10-30 2016-10-21 財團法人工業技術研究院 加工程式轉換裝置及方法
US10650621B1 (en) 2016-09-13 2020-05-12 Iocurrents, Inc. Interfacing with a vehicular controller area network
US20210276214A1 (en) * 2017-04-11 2021-09-09 Viswesh Srinivasan Method of cutting accurate designs in cnc machine using hot-wire/edm methods
US10573034B2 (en) 2018-04-13 2020-02-25 Honeywell International Inc. System and method for translation of graphics to newer format using pattern matching
US10747207B2 (en) 2018-06-15 2020-08-18 Honeywell International Inc. System and method for accurate automatic determination of “alarm-operator action” linkage for operator assessment and alarm guidance using custom graphics and control charts
US10699159B2 (en) 2018-08-17 2020-06-30 Honeywell International Inc. Objects aggregation and standardization for legacy graphics conversion
MX2021000559A (es) * 2018-08-22 2021-03-31 Mitsubishi Heavy Ind Ltd Sistema de soporte de fijacion de miembro y metodo de soporte de fijacion de miembro.
JP7000302B2 (ja) * 2018-12-14 2022-01-19 ファナック株式会社 情報処理装置
TWI710748B (zh) * 2019-04-15 2020-11-21 財團法人工業技術研究院 輪廓精度量測系統及量測方法
TWI704435B (zh) * 2019-08-23 2020-09-11 國立中正大學 在啟動工具機之後進行模擬確認的加工方法與加工系統
TWI742458B (zh) * 2019-11-05 2021-10-11 張聰捷 木工機刀具保護系統
JP7358257B2 (ja) * 2020-01-28 2023-10-10 住友重機械工業株式会社 制御プログラム生成装置、制御プログラム生成方法、ロール・ツー・ロール搬送システム
US11086306B1 (en) * 2020-03-12 2021-08-10 Guangdong University Of Technology Generalization and encapsulation method and system based on digital twin model of workshop
CN111913438B (zh) * 2020-08-04 2022-03-04 天津大学 针对五轴加工刀尖点与刀轴方向非线性误差的控制方法
TWI757926B (zh) * 2020-10-22 2022-03-11 財團法人工業技術研究院 工具機數值控制器軟體動態產生裝置及方法
CN113625661B (zh) * 2021-07-29 2023-07-04 广东工贸职业技术学院 一种数控内嵌plc中间文件转化指令表的设计方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02257204A (ja) * 1989-03-29 1990-10-18 Yaskawa Electric Mfg Co Ltd 複数ロボット腕の衝突回避制御方式
JPH0736525A (ja) * 1993-07-26 1995-02-07 Nitto Kohki Co Ltd コンピュータシステム

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA1102434A (en) * 1976-07-06 1981-06-02 Gerald V. Roch Interactive machining system
US4477754B1 (en) * 1976-07-06 1995-03-21 Hurco Co Inc Interactive machining system
JPS62119608A (ja) * 1985-11-20 1987-05-30 Fanuc Ltd 対話形プログラミング装置
JPS62199338A (ja) * 1986-02-27 1987-09-03 Fanuc Ltd 工具衝突自動防止方法
US4885717A (en) * 1986-09-25 1989-12-05 Tektronix, Inc. System for graphically representing operation of object-oriented programs
JPS63104104A (ja) * 1986-10-21 1988-05-09 Fanuc Ltd 自動プログラミングシステム
JPS647231A (en) * 1987-06-30 1989-01-11 Toshiba Corp Parallel processing device for object directional system
US5239477A (en) * 1987-07-24 1993-08-24 Fanuc Ltd. Conversational-type programming apparatus classifying by color regions to be machined
JP2649838B2 (ja) * 1989-03-15 1997-09-03 オークマ 株式会社 数値制御情報作成装置における加工方法の決定方法
JP2691613B2 (ja) * 1989-05-08 1997-12-17 菱電工機エンジニアリング株式会社 Cad/cam装置
US5181162A (en) * 1989-12-06 1993-01-19 Eastman Kodak Company Document management and production system
JP2810170B2 (ja) * 1989-12-15 1998-10-15 株式会社日立製作所 多層型ネットワークの学習装置
US5237654A (en) * 1990-04-17 1993-08-17 International Business Machines Corporation Hierarchical inter-panel process flow control
US5168441A (en) * 1990-05-30 1992-12-01 Allen-Bradley Company, Inc. Methods for set up and programming of machine and process controllers
US5235701A (en) * 1990-08-28 1993-08-10 Teknekron Communications Systems, Inc. Method of generating and accessing a database independent of its structure and syntax
US5247447A (en) * 1990-10-31 1993-09-21 The Boeing Company Exception processor system
JP2773451B2 (ja) * 1991-04-11 1998-07-09 三菱電機株式会社 Cad/cam装置
DE59107794D1 (de) * 1991-07-26 1996-06-13 Siemens Ag Konfigurierbare Werkzeugmaschinensteuerung
US5506787A (en) * 1992-08-31 1996-04-09 Siemens Aktiengesellschaft Configurable man-machine communication structure for machine tool or robot control systems

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02257204A (ja) * 1989-03-29 1990-10-18 Yaskawa Electric Mfg Co Ltd 複数ロボット腕の衝突回避制御方式
JPH0736525A (ja) * 1993-07-26 1995-02-07 Nitto Kohki Co Ltd コンピュータシステム

Also Published As

Publication number Publication date
TW475911B (en) 2002-02-11
AU7794994A (en) 1995-03-27
US5453933A (en) 1995-09-26
EP0717866B1 (en) 1997-11-05
CA2169916A1 (en) 1995-03-16
CA2169916C (en) 1998-10-27
ES2092454T1 (es) 1996-12-01
EP0717866A1 (en) 1996-06-26
DE69406672D1 (de) 1997-12-11
WO1995007504A1 (en) 1995-03-16
DE69406672T2 (de) 1998-06-04
ATE160031T1 (de) 1997-11-15
DE717866T1 (de) 1997-03-13

Similar Documents

Publication Publication Date Title
JPH08511643A (ja) 計算機数値制御システム
EP1260891B1 (en) Motion control systems
US9268581B2 (en) Internationalization of objects executable in a supervisory process control and manufacturing information system
EP2498156B1 (en) Industrial simulation using redirected I/O module configurations
US6209037B1 (en) Motion control systems using communication map to facilitating communication with motion control hardware
US7917863B2 (en) System and method for graphically creating a sequence of motion control operations
US8271105B2 (en) Motion control systems
US20060150149A1 (en) System and method for programmatically generating a graphical program based on a sequence of motion control, machine vision, and data acquisition (DAQ) operations
US20030139848A1 (en) System and method for invoking execution of a sequence of operations that includes motion control, machine vision, and data acquisition (DAQ) functionality
Wang et al. Constructing reconfigurable software for machine control systems
Gruver et al. Intelligent Manufacturing:: Programming Environments for CIM
Garbev et al. Comparative analysis of robodk and robot operating system for solving diagnostics tasks in off-line programming
Rzonca et al. Mini-DCS system programming in IEC 61131-3 Structured Text
Braun et al. Object-Oriented Programming with SIMOTION: Fundamentals, Program Examples and Software Concepts According to IEC 61131-3
Brecher et al. Mechatronic development of PLC software with virtual machine tools
MARTIN MARIETTA ASTRONAUTICS GROUP DENVER CO Next Generation Controller Specification for an Open Systems Architecture Standard.
Carrott et al. The UMC software environment for machine control system integration, configuration, and programming
Farooq Software Development for Manufacturing Systems-Language and Networking Issues
Schultz et al. An Ada based approach to factory scale MAP network simulaton
Mahalik et al. Client server‐based distributed architecture for concurrent design of DCS networks: a case study
Sorensen An offline approach to task-level state-driven robot programming
Suzuki et al. Recent trends and issues of device integration standardization
Johnsson On Extending JGrafchart with Support for FMI for Co-Simulation
Pereira Study on influence of the new CoDeSys V3. 0 on the existing CoDeSys discipline of the Mind8 Engineering Center
Week et al. CASE tools