| LinuxCNC | |
|---|---|
![]() | |
| 安定版リリース | 2.9.8
|
| リポジトリ | https://github.com/LinuxCNC/linuxcnc |
| ライセンス | GNU GPLv2、GNU LGPLv2.1 [1] |
| ウェブサイト | https://linuxcnc.org/ |
LinuxCNC(旧称Enhanced Machine Controller、EMC2 )は、汎用コンピュータを使用してコンピュータ数値制御(CNC)マシンを制御する、無料のオープンソースLinuxソフトウェアシステムです。主にPC AMD x86-64システムで実行することを目的としています。linuxcnc.orgの様々なボランティア開発者によって設計されており、通常は必要なリアルタイムカーネルを提供するDebian Linuxの修正バージョンにISOファイルとしてバンドルされています
リアルタイム オペレーティング システムとの緊密な統合により、リアルタイム カーネルのない標準の Linux デスクトップ PC では、パッケージはデモ モードでのみ実行されます。
目的
LinuxCNCは、フライス盤、旋盤、プラズマカッター、ルーター、切断機、ロボット、ヘキサポッドなどの機械の数値制御用のソフトウェアシステムです。Gコード(RS-274NGC)を入力として、 CNCマシンの最大9軸またはジョイントを制御できます。特定の用途(タッチスクリーン、インタラクティブ開発)に適した 複数のGUIを備えています
現在、 x86 PC プラットフォームでのみ使用されていますが、他のアーキテクチャにも移植されています。[引用が必要]リアルタイム修正カーネルを広範に使用し、ステッパー型とサーボ型の両方のドライブをサポートしています。
図面 (CAD - コンピュータ支援設計) や図面からの G コード生成 (CAM - コンピュータ自動製造) 機能は提供されません。
歴史
EMCパブリックドメインソフトウェアシステムは、もともとNISTによって、国立製造科学センター(National Center for Manufacturing Sciences) /空軍が後援した次世代コントローラプログラム[NGC 1989]/オープンシステムアーキテクチャ仕様[SOSAS]の次のステップとして開発されました。EMC [Enhanced Machine Controller Architecture 1993]と呼ばれていました。政府が後援したフライス盤制御用のパブリックドメインソフトウェアシステムは、1950年代にデジタルコンピュータで開発された最初のプロジェクトの1つでした。これは、機械加工操作の数値制御のための業界標準言語であるRS-274D(Gコード) の「ベンダー中立」なリファレンス実装となることを目指していました
このソフトウェアには、動作軌道プランナーを駆動するRS274インタープリタ、リアルタイムモーター/アクチュエータドライバ、そしてユーザーインターフェースが含まれていました。これにより、FreeBSDまたはLinuxを搭載した市販のPCハードウェアを用いて、様々なハードウェア動作制御システムとインターフェースする高度な数値制御システムの実現可能性が実証されました。現在、既存のアーキテクチャに加え、 ARMアーキテクチャデバイス などの追加アーキテクチャを用いた開発が継続されています。
デモプロジェクトは大きな成功を収め、ユーザーとボランティアの貢献者からなるコミュニティが形成されました。2000年6月頃、NISTは外部貢献者が変更を加えられるように、ソースコードをパブリックドメインライセンスの下でSourceForgeに移管しました。2003年、コミュニティはソースコードの一部を書き直し、他の部分を再編成・簡素化した後、EMC2という新しい名前を付けました。EMC2は現在も活発に開発が進められており、ライセンスはGNU General Public License(GNU一般公衆利用許諾契約書)に基づいています。
EMC2という新しい名前の採用は、いくつかの大きな変更によって促されました。まず、Cコードの変更や再コンパイルなしに機能を簡単に相互接続するために、HAL(ハードウェア抽象化レイヤー)と呼ばれる新しいレイヤーが導入されました。これにより、軌道と動作計画がモーションハードウェアから分離され、ガントリーマシン、旋盤のねじ切りとリジッドタッピング、SCARAロボットアーム、およびその他のさまざまな適応をサポートする制御プログラムを簡単に生成できるようになりました。HALには、信号を調べたり、リンクを接続および削除したりするための対話型ツールがいくつか付属しています。また、信号をリアルタイムで調べるための仮想オシロスコープも含まれています。EMC2でのもう1つの変更点は、自動工具交換装置などの複雑な補助デバイスを構成するためにリアルタイム環境に適応したClassic Ladder(オープンソースのラダーロジック実装)です。
2011年頃、 EMC Corporation( EMCおよびEMC 2の商標を保有)との商標権紛争により、名称がEMC2からLinuxCNCに変更されました。LinuxCNCはLinux Foundationから「Linux」商標のライセンスを取得していました。[2]
プラットフォーム
LinuxCNCは、きめ細やかで正確なリアルタイムマシン制御を必要とするため、リアルタイムコンピューティング機能を備えたプラットフォームを必要とします。EMCの初期バージョンはWindows NTのリアルタイムバージョンで動作していましたが、Windowsの後期バージョンはリアルタイムサポートが不十分だったため、リアルタイム拡張機能を備えたLinuxが推奨プラットフォームとなりました。[2]現在、LinuxCNCはRTAIカーネルまたはPREEMPT-RT [ broken anchor ]と、LinuxCNCのRTAPIの「uspace」フレーバーを使用しています。
LinuxCNCとその基盤となるリアルタイムカーネルパッチをLinuxシステムにインストールするのは、困難な作業です。Paul Corner氏がBDI (Brain Dead Install) でその問題を解決しました。これは、完全な動作システム (Linux、リアルタイムパッチ、LinuxCNC) をインストールできるCDでした。[3]これにより、LinuxCNCはより大規模なユーザーコミュニティに利用可能になりました。現在、Paul氏のBDIは、CDやUSBに書き込むことができるブート可能な(ライブ)ISOへと進化し、システムをインストールすることなく、ほとんどすべてのPCスタイルのコンピューターで実行してLinuxCNCを試用できます。ブート可能なLinuxCNC ISOは、 RT-PREEMPTカーネルを搭載したDebian BookwormとTrixieで利用でき、RTAIとXenomaiカーネルも引き続きサポートされています。
LinuxCNCのポリシーはDebian向けのパッケージを構築してサポートを提供することですが、他のLinuxシステムやアーキテクチャ向けのビルド済みバイナリパッケージも利用可能です。[4]
設計
LinuxCNCは、ハードウェアとのやり取りにおいて「感知、計画、動作」モデルを採用しています。[5]例えば、現在の軸位置を読み取り、新しい目標位置/電圧を計算し、それをハードウェアに書き込みます。コマンドのバッファリングはなく、外部からの読み取りや書き込みも許可されていません。このバッファリングなしのアプローチにより、LinuxCNCの機能の追加や変更に最大限の自由度が与えられます。比較的「ダム」な外部ハードウェアを使用し、ホストコンピュータで機能をプログラミングすることで、LinuxCNCは特定のハードウェアに固定されません。また、関心のあるユーザーは、動作/機能/ハードウェアを簡単に変更することもできます
このモデルは、特定の種類の外部インターフェース(PCI、PCIE、パラレルポート(SPPまたはEPPモード)、ISA、イーサネットなど)に適しています。USBとRS232シリアルは適していません。USBはリアルタイム性が低く、RS232はモーター制御には速度が遅すぎるためです。
LinuxCNCはこのモデルのため、基本的な「リアルタイム性」要件を満たしています。読み取りと書き込みの間隔は一定で、かつ適度に高速である必要があります。一般的なマシンは、1ミリ秒の繰り返しスレッドでリアルタイム計算を行います。ハードウェアへの読み取りと書き込みは、この時間のうちのごく一部、例えば200マイクロ秒程度に抑える必要があります。そうでないと、位相シフトによってチューニングが困難になり、非リアルタイムプログラムに使える時間が少なくなり、画面コントロールの応答性が低下する可能性があります。
LinuxCNCは「台形速度プロファイルジェネレータを採用しています。」[6]
設定
LinuxCNCはHAL(ハードウェア抽象化レイヤー)と呼ばれるソフトウェアレイヤーを使用します。[7]
HALは柔軟性がありながら多様な構成を構築できます[8]。様々なハードウェア制御ボードを組み合わせたり、パラレルポートやシリアルポートを介して制御信号を出力したり、ステッピングモータやサーボモータ、ソレノイドやその他のアクチュエータを駆動したりできます。
LinuxCNCには、複雑なマシニングセンターなどの大規模な構成で使用されるソフトウェアPLC(プログラマブルロジックコントローラ)も搭載されています。このソフトウェアPLCは、オープンソースプロジェクトClassicladder [9]をベースにしており、リアルタイム環境で動作します。
参照
参考文献
- 注記
- ^ 「Linuxcnc / COPYING.more at 2.9 · LinuxCNC/Linuxcnc」GitHub
- ^ ab 「EMCの歴史」。Linuxcnc取締役会。2018年9月12日。 2018年9月14日閲覧。
- ^ 「EMCの歴史」Linuxcnc取締役会。2018年9月12日。 2018年9月14日閲覧。
- ^ 「Getting LinuxCNC」. linuxcnc.org. 2018年2月19日. 2018年9月14日閲覧。
- ^ 「Linuxcnc ハードウェア設計要件」。
- ^ 「シンプルなTpノート」。
- ^ 「EMC2のハードウェア抽象化レイヤー」Linuxcnc取締役会. 2010年9月30日閲覧。
- ^ 「いくつかのケーススタディ」 。 2010年9月30日閲覧。
- ^ 「ClassicLadder」 . 2014年3月6日閲覧。
- 参考文献
- Proctor, FM、Michaloski, J.、「拡張マシンコントローラアーキテクチャの概要」、NIST内部報告書5331、1993年12月。オンラインで入手可能:https://web.archive.org/web/20201208080506/https://nvlpubs.nist.gov/nistpubs/Legacy/IR/nistir5331.pdf
- Albus, JS; Lumia, R. (1994). 「拡張マシンコントローラ(EMC):工作機械向けオープンアーキテクチャコントローラ」. Journal of Manufacturing Review . 7 (3): 278– 280.
- Lumia、「強化されたマシンコントローラアーキテクチャ」、第5回国際ロボット工学・製造シンポジウム、マウイ島、ハワイ、1994年8月14~18日、https://www.nist.gov/customcf/get_pdf.cfm?pub_id=820483
- Fred Proctor 他、「オープンアーキテクチャコントローラのシミュレーションと実装」、製造業向けシミュレーションおよび制御技術、第 2596 巻、SPIE 会議録、1995 年 10 月、https://web.archive.org/web/20100527174141/http://www.isd.mel.nist.gov/documents/proctor/sim/sim.html
- Fred Proctor、John Michaloski、Will Shackleford、Sandor Szabo、「機械制御用標準インターフェースの検証」、Intelligent Automation and Soft Computing: Trends in Research, Development, and Applications、第 2 巻、TSI Press、ニューメキシコ州アルバカーキ、1996 年、https://web.archive.org/web/20100527165142/http://www.isd.mel.nist.gov/documents/proctor/isram96/isram96.html
- ShacklefordとProctor、「工作機械コントローラにおけるオープンソースディストリビューションの活用」、インテリジェント製造のためのセンサーと制御、カンファレンス、ボストン、マサチューセッツ州、2001年、第4191巻、19~30ページ、https://web.archive.org/web/20100820224129/http://www.isd.mel.nist.gov/documents/shackleford/4191_05.pdf またはdoi :10.1117/12.417244
- Morar他「風力発電機の改良の可能性について」、国際経済工学・製造システム会議、ブラショフ、2007年10月25~26日、https://web.archive.org/web/20120313054238/http://www.recentonline.ro/021/Morar_L_01a.pdf
- Zhang et al., "Development of EMC2 CNC Based on Qt", Manufacturing Technology & Machine Tool, 2008, http://en.cnki.com.cn/Article_en/CJFDTOTAL-ZJYC200802046.htm 2016年3月3日アーカイブ、Wayback Machineにて
- Leto 他、「PC ベースのリアルタイム数値制御における NURBS パス補間のための CAD/CAM 統合」、第 8 回国際先進製造システム技術会議、2008 年 6 月 12~13 日、ウディネ大学(イタリア)、https://web.archive.org/web/20110703113248/http://158.110.28.100/amst08/papers/art837759.pdf
- Xu et al., "EMC2におけるHALのメカニズムと応用", Modern Manufacturing Technology and Equipment 2009–05, http://en.cnki.com.cn/Article_en/CJFDTOTAL-SDJI200905037.htm 2016年3月3日アーカイブ、Wayback Machine
- Zivanovic et al., "Methodology for Configuring Desktop 3-axis Parallel Kinematic Machine" [ dead link ] , FME Transactions (2009) 37, 107–115, https://www.researchgate.net/publication/268357920_Methodology_for_Configuring_Desktop_3-axis_Parallel_Kinematic_Machine
- Glavonjic; et al. (2009). 「デスクトップ型3軸パラレルキネマティックフライス盤」.国際先進製造技術ジャーナル. 46 ( 1–4 ): 51–60 . doi :10.1007/s00170-009-2070-3. S2CID 60640709.
- Staroveski他「LinuxベースのCNCオープン制御システムの実装」、第12回国際生産工学会議 – CIM2009、クロアチア生産工学協会、ザグレブ2009年、
- Li et al., "EMC2に基づくパラレルキネマティックマシンの制御システム設計とシミュレーション", Machinery Design & Manufacture 2010–08, http://en.cnki.com.cn/Article_en/CJFDTOTAL-JSYZ201008074.htm 2016年3月3日アーカイブ、Wayback Machineにて
- Li; et al. (2010). 「MATLABとEMC2を用いた6自由度パラレルキネマティックマシンの運動学解析と制御システム設計」. Advanced Materials Research . 102–104 : 363–367 . doi :10.4028/www.scientific.net/AMR.102-104.363. S2CID 62700779.
- Klancnikら、「光学カメラとニューラルネットワークを用いたCNCフライス盤におけるコンピュータベースのワークピース検出」、Advances in Production Engineering & Management 5 (2010) 1, 59–68、[1]
- ミルティノビッチ他 (2010). 「工作機械のように制御・プログラムされた再構成可能なロボット加工システム」.国際先進製造技術ジャーナル. 55 ( 9–12 ): 555. doi :10.1007/s00170-010-2888-8. S2CID 109149203.
外部リンク
- LinuxCNCプロジェクト wiki
- NIST RS274NGC規格 - バージョン3 2000年8月 PDF版も入手可能
- NISTの拡張マシンコントローラのホームページ
- Machinekit は、EMC2/LinuxCNC を移植および拡張して、 BeagleBoneおよび関連ハードウェア上で効率的に実行するためのオープン ソース プロジェクトです。
