| LinuxCNC | |
|---|---|
![]() | |
| 安定版リリース | 2.9.8 |
| ライセンス | GNU GPLv2、GNU LGPLv2.1 [ 1 ] |
| Webサイト | https://linuxcnc.org/ |
| リポジトリ | https://github.com/LinuxCNC/linuxcnc |
LinuxCNC(旧称Enhanced Machine Controller、またはEMC2 )は、汎用コンピュータを用いてコンピュータ数値制御(CNC)機能を実装した、無料のオープンソースLinuxソフトウェアシステムです。CNCマシンの制御に汎用コンピュータを使用しています。主にPC AMD x86-64システム上で動作するように設計されています。linuxcnc.orgの複数のボランティア開発者によって設計されており、通常は必要なリアルタイムカーネルを提供するDebian Linuxの修正版にISOファイルとしてバンドルされています。
リアルタイム オペレーティング システムとの緊密な統合により、リアルタイム カーネルのない標準の Linux デスクトップ PC では、パッケージはデモ モードでのみ実行されます。
目的
LinuxCNCは、フライス盤、旋盤、プラズマカッター、ルーター、カッティングマシン、ロボット、ヘキサポッドなどの機械の数値制御(CNC)ソフトウェアシステムです。Gコード(RS-274NGC)を入力として、CNCマシンの最大9軸または9関節を制御できます。特定の用途(タッチスクリーン、インタラクティブ開発)に適した 複数のGUIを備えています。
現在、x86 PCプラットフォームでほぼ独占的に使用されていますが、他のアーキテクチャにも移植されています。リアルタイム向けに修正されたカーネルを広範に使用し、ステッピングモータとサーボモータの両方の駆動方式をサポートしています。
図面 (CAD - コンピュータ支援設計) や図面からの G コード生成 (CAM - コンピュータ自動製造) 機能は提供されません。
歴史
EMCパブリックドメイン・ソフトウェアシステムは、もともとNISTによって、国立製造科学センター(National Center for Manufacturing Sciences) /空軍が後援する次世代コントローラプログラム(NGC 1989)/オープンシステムアーキテクチャ仕様(Specification for an Open Systems Architecture)[SOSAS]の次のステップとして開発されました。EMC [Enhanced Machine Controller Architecture 1993]と呼ばれていました。政府が後援するフライス盤制御用のパブリックドメイン・ソフトウェアシステムは、1950年代にデジタルコンピュータを用いて開発された最初のプロジェクトの一つでした。これは、機械加工の数値制御における業界標準言語である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カーネル、またはLinuxCNCのRTAPIの「uspace」フレーバーを備えた PREEMPT-RTを使用しています。
LinuxCNC と基礎となるリアルタイム カーネル パッチをベースの Linux システムにインストールするのは困難な作業です。Paul Corner が BDI (Brain Dead Install) で救いの手を差し伸べました。これは、完全な動作システム (Linux、リアルタイム パッチ、LinuxCNC) をインストールできる CD でした。[ 3 ]これにより、LinuxCNC ははるかに大きなユーザー コミュニティーにアクセスできるようになりました。現在、Paul の BDI は起動可能な (ライブ) ISO に進化しました。これは CD または USB に書き込むことができ、ほとんどすべての 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 .
- ^ a b「EMCの歴史」 Linuxcnc取締役会。2018年9月12日。 2018年9月14日閲覧。
- ^ 「EMCの歴史」 Linuxcnc取締役会。2018年9月12日。 2018年9月14日閲覧。
- ^ 「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.、「Enhanced Machine Controller Architecture Overview」、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 他、「デスクトップ 3 軸パラレル キネマティック マシンの構成方法論」、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プロジェクトウィキ
- NIST RS274NGC規格 - バージョン3 2000年8月PDF版も入手可能
- NISTの拡張マシンコントローラのホームページ
- Machinekit は、EMC2/LinuxCNC を移植および拡張して、 BeagleBoneおよび関連ハードウェア上で効率的に実行するためのオープン ソース プロジェクトです。
