LinuxCNC

Z Wikipedii, wolnej encyklopedii
Przejdź do nawigacji Przejdź do wyszukiwania

LinuxCNC (dawniej Enhanced Machine Controller lub EMC2) – darmowe, otwartoźródłowe oprogramowanie umożliwiające kontrolowanie maszyn CNC za pomocą powszechnie dostępnych komputerów i darmowych systemów jak Linux. Zazwyczaj jest rozpowszechniane głównie jako obraz ISO, zawierające pełną dystrybucję 32-bitowego Linuxa Ubuntu, z przydatną w tej dziedzinie wersją jądra (kernela) tworzącą system czasu rzeczywistego.

Przeznaczenie[edytuj | edytuj kod]

LinuxCNC to system oprogramowania do numerycznego sterowania maszynami, takimi jak frezarki, tokarki, przecinarki plazmowe, routery, maszyny do cięcia, roboty i platformy Stewarta („hexapods”). Może kontrolować do 9 osi lub połączeń maszyny CNC wykorzystując G-code (RS-274NGC). Posiada kilka GUI dostosowanych do konkretnych zastosowań (ekran dotykowy, interaktywny).

Obecnie jest prawie wyłącznie używany na platformach PC x86, ale został przeniesiony dla innych architektur. Wykorzystuje on w dużym stopniu zmodyfikowane jądro(aby cały system działał w pełni jako system czasu rzeczywistego) i obsługuje zarówno urządzenia z silnikami typu stepper (krokowy), jak i servo (serwomotor).

Historia[edytuj | edytuj kod]

System oprogramowania EMC Public Domain został pierwotnie opracowany przez NIST (National Center for Manufacturing Sciences / Air Force), jako następny krok poza sponsorowanego programu kontrolerów następnej generacji Next Generation Controller Program[NGC 1989] /Specification for an Open Systems Architecture[SOSAS]. Nazywało się to EMC [Enhanced Machine Controller Architecture 1993]. Finansowane przez rząd systemy oprogramowania Public Domain, do kontroli frezarek były jednymi z pierwszych projektów opracowanych z użyciem komputera cyfrowego w latach 50. XX wieku. Miała to być referencyjna „niezależna od dostawcy” implementacja standardowego języka branżowego do sterowania numerycznego obróbką skrawaniem, RS-274D (G-code).

Oprogramowanie zawierało interpreter RS274 sterujący planerem trajektorii ruchu, sterowniki silnika / siłownika w czasie rzeczywistym oraz interfejs użytkownika. Pokazało ono możliwość zaawansowanego systemu sterowania numerycznego przy użyciu półprofesjonalnego sprzętu komputerowego z systemem FreeBSD lub Linux, współpracującego z różnymi systemami sterowania ruchem. Dalszy rozwój jest kontynuowany przy użyciu obecnych i innych architektur (np. ARM).

Projekt demonstracyjny zakończył się wielkim sukcesem i stworzył społeczność użytkowników i wolontariuszy. Około czerwca 2000 r. NIST przeniósł kod źródłowy do sourceforge.net na licencji domeny publicznej, aby umożliwić zewnętrznym autorom wprowadzanie zmian. W 2003 r. Społeczność przepisała niektóre jego części, zreorganizowała i uprościła inne części, a następnie nadała mu nową nazwę EMC2. EMC2 jest nadal aktywnie rozwijany. Licencjonowanie jest obecnie objęte Powszechną Licencją Publiczną GNU (GPL).

Przyjęcie nowej nazwy EMC2 było spowodowane kilkoma poważnymi zmianami. Przede wszystkim wprowadzono nową warstwę zwaną warstwą HAL (Hardware Abstraction Layer), aby łatwo łączyć funkcje bez zmiany kodu C lub rekompilacji. Ta dzielona trajektoria i planowanie ruchu ze sprzętu ruchomego ułatwia tworzenie programów sterujących obsługujących suwnicę, gwintowanie tokarskie i gwintowanie sztywne, ramiona robotów SCARA i wiele innych adaptacji. HAL jest dostarczany z interaktywnymi narzędziami do badania sygnałów oraz łączenia i usuwania połączeń. Zawiera również wirtualny oscyloskop do badania sygnałów w czasie rzeczywistym. Kolejną zmianą w EMC2 jest Classic Ladder (implementacja logiki drabinkowej w wersji open source) dostosowana do środowiska czasu rzeczywistego w celu konfiguracji złożonych urządzeń pomocniczych, takich jak automatyczne zmieniarki narzędzi.

Około 2011 roku oficjalnie zmieniono nazwę z EMC2 na LinuxCNC. Dokonano tego przy naleganiu EMC Corporation i zgody kierownictwa projektu. Wewnętrznie niektóre odnoszą się do LinuxCNC przez EMC lub EMC2, jak to było historycznie znane. Firma EMC Corporation zaproponowała, że projekt LinuxCNC, jak wcześniej wspomniano, będzie mylący dla klientów lub potencjalnych klientów za pomocą ich (głównie) produktów związanych z pamięcią masową.

Bibliografia[edytuj | edytuj kod]

Więcej[edytuj | edytuj kod]

  • Proctor, F. M., and Michaloski, J., „Enhanced Machine Controller Architecture Overview,” NIST Internal Report 5331, December 1993.
  • Albus, J.S.; Lumia, R. (1994). „The Enhanced Machine Controller (EMC): An Open Architecture Controller for Machine Tools”. Journal of Manufacturing Review. 7 (3): 278–280.
  • Lumia, „The Enhanced Machine Controller Architecture”, 5th International Symposium on Robotics and Manufacturing, Maui, HI, August 14–18, 1994, https://www.nist.gov/customcf/get_pdf.cfm?pub_id=820483
  • Fred Proctor et al., „Simulation and Implementation of an Open Architecture Controller”, Simulation, and Control Technologies for Manufacturing, Volume 2596, Proceedings of the SPIE, October 1995, https://web.archive.org/web/20100527174141/http://www.isd.mel.nist.gov/documents/proctor/sim/sim.html
  • Fred Proctor, John Michaloski, Will Shackleford, and Sandor Szabo, „Validation of Standard Interfaces for Machine Control”, Intelligent Automation and Soft Computing: Trends in Research, Development, and Applications, Volume 2, TSI Press, Albuquerque, NM, 1996, https://web.archive.org/web/20100527165142/http://www.isd.mel.nist.gov/documents/proctor/isram96/isram96.html
  • Shackleford and Proctor, „Use of open source distribution for a Machine tool Controller”, Sensors and controls for intelligent manufacturing. Conference, Boston MA, 2001, vol. 4191, s. 19–30, https://web.archive.org/web/20100820224129/http://www.isd.mel.nist.gov/documents/shackleford/4191_05.pdf or doi:10.1117/12.417244
  • Morar et al., „ON THE POSSIBILITY OF IMPROVING THE WIND GENERATORS”, International Conference on Economic Engineering and Manufacturing Systems, Brasov, 25–26 October 2007, 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
  • Leto et al., „CAD/CAM INTEGRATION FOR NURBS PATH INTERPOLATION ON PC BASED REAL-TIME NUMERICAL CONTROL”, 8th INTERNATIONAL CONFERENCE ON ADVANCED MANUFACTURING SYSTEMS AND TECHNOLOGY JUNE 12–13, 2008 UNIVERSITY OF UDINE – ITALY, https://web.archive.org/web/20110703113248/http://158.110.28.100/amst08/papers/art837759.pdf
  • Xu et al., „Mechanism and Application of HAL in the EMC2", Modern Manufacturing Technology and Equipment 2009-05, http://en.cnki.com.cn/Article_en/CJFDTOTAL-SDJI200905037.htm
  • Zivanovic et al., „Methodology for Configuring Desktop 3-axis Parallel Kinematic Machine” [permanent dead link], FME Transactions (2009) 37, 107-115,
  • Glavonjic; et al. (2009). „Desktop 3-axis parallel kinematic milling machine”. The International Journal of Advanced Manufacturing Technology. 46 (1-4): 51–60. doi:10.1007/s00170-009-2070-3.
  • Staroveski et al., „IMPLEMENTATION OF A LINUX-BASED CNC OPEN CONTROL SYSTEM”, 12th INTERNATIONAL SCIENTIFIC CONFERENCE ON PRODUCTION ENGINEERING –CIM2009, Croatian Association of Production Engineering, Zagreb 2009,
  • Li et al., „Control system design and simulation of parallel kinematic machine based on EMC2", Machinery Design & Manufacture 2010-08, http://en.cnki.com.cn/Article_en/CJFDTOTAL-JSYZ201008074.htm
  • Li; et al. (2010). „Kinematics Analysis and Control System Design of 6-DOF Parallel Kinematic Machine with Matlab and EMC2". Advanced Materials Research. 102-104: 363–367. doi:10.4028/www.scientific.net/AMR.102-104.363.
  • Klancnik et al., „Computer-Based Workpiece Detection on CNC Milling Machine Tools Using Optical Camera and Neural Networks”, Advances in Production Engineering & Management 5 (2010) 1, 59-68, http://maja.uni-mb.si/files/apem/APEM5-1-view.pdf[permanent dead link]
  • Milutinovic; et al. (2010). „Reconfigurable robotic machining system controlled and programmed in a machine tool manner”. The International Journal of Advanced Manufacturing Technology. 55 (9-12): 555. doi:10.1007/s00170-010-2888-8.