EMC (der Enhanced Machine Controller) wurde von NIST , dem National Institute of Standards and Technology, einer Behörde des Handelsministeriums der Vereinigten Staaten, entwickelt.
Das NIST interessierte sich zunächst für die Entwicklung eines Bewegungssteuerungspakets als Testplattform für Konzepte und Normen. Die frühe Förderung durch General Motors führte zu einer Anpassung der noch jungen Version von EMC unter Verwendung intelligenter PMAC-Steuerungskarten, die unter einer "Echtzeit"version von Windows NT liefen und eine große Fräsmaschine steuerten.
Wie bei allen Arbeitsprodukten von Mitarbeitern der US-Bundesregierung vorgeschrieben, müssen die resultierende Software und der Bericht darüber öffentlich zugänglich sein, und ein Bericht darüber wurde ordnungsgemäß veröffentlicht, auch im Internet. Dort entdeckte Matt Shaver EMC. Er setzte sich mit dem NIST in Verbindung und diskutierte mit Fred Proctor über die Anpassung des Codes für die Steuerung preiswerterer Hardware, die für die Aufrüstung und den Ersatz veralteter oder schlichtweg toter CNC-Steuerungen verwendet werden sollte. Das NIST war fasziniert, denn auch sie wollten etwas Günstigeres. Um eine Zusammenarbeit in die Wege zu leiten, wurde eine formelle Vereinbarung getroffen, die garantierte, dass der resultierende Code und das Design public domain bleiben würden.
Early considerations focused on replacing the expensive and temperamental "real time" Windows NT system. It was proposed that a relatively new (at the time) real time extension of the Linux operating system be tried. This idea was pursued with success. Next up was the issue of the expensive intelligent motion control boards. By this time the processing power of a PC was considered great enough to directly take control of the motion routines. A quick search of available hardware resulted in the selection of a Servo-To-Go interface board as the first platform for letting the PC directly control the motors. Software for trajectory planning and PID loop control was added to the existing user interface and RS274 interpreter. Matt successfully used this version to upgrade a couple of machines with dead controls and this became the EMC system that first caught the attention of the outside world. Mention of EMC on the rec.crafts.metalworking USENET newsgroup resulted in early adopters like Jon Elson building systems to take advantage of EMC.
Das NIST richtete eine Mailingliste für Personen ein, die sich für EMC interessierten. Im Laufe der Zeit interessierten sich auch andere außerhalb des NIST für die Verbesserung von EMC. Viele Leute baten um kleine Verbesserungen des Codes oder programmierten sie. Ray Henry wollte die Benutzeroberfläche verfeinern. Da Ray sich nicht traute, den C-Code, in dem die Benutzeroberfläche geschrieben war, zu verändern, wurde eine einfachere Methode gesucht. Fred Proctor vom NIST schlug eine Skriptsprache vor und schrieb einen Code, um die Skriptsprache Tcl/Tk mit der internen NML-Kommunikation von EMC zu verbinden. Mit diesem Tool schrieb Ray dann ein Tcl/Tk-Programm, das zur damals vorherrschenden Benutzeroberfläche für EMC wurde.
For NIST’s perspective, see this paper written by William Shackleford and Frederick Proctor, describing the history of EMC and its transition to open source.
Zu dieser Zeit begann das Interesse an EMC erheblich zuzunehmen. Als immer mehr Leute versuchten, EMC zu installieren, wurde die Schwierigkeit, einen Linux-Kernel mit den Echtzeit-Erweiterungen zu patchen und den EMC-Code zu kompilieren, überdeutlich. Viele Versuche, den Prozess zu dokumentieren und Skripte zu schreiben, wurden unternommen, einige mit mäßigem Erfolg. Immer wieder tauchte das Problem auf, die richtige Version der Patches und Compiler mit der ausgewählten Linux-Version abzugleichen. Paul Corner kam zur Rettung mit der BDI (brain dead install), einer CD, von der ein komplettes funktionierendes System (Linux, Patches und EMC) installiert werden konnte. Der BDI-Ansatz öffnete die Welt der EMC für eine viel größere Benutzergemeinschaft. Als diese Gemeinschaft weiter wuchs, wurden die EMC-Mailingliste und die Code-Archive nach SourceForge verschoben und die LinuxCNC-Website eingerichtet.
Durch die Teilnahme einer größeren Gemeinschaft von Anwendern wurde EMC zu einem wichtigen Interessenschwerpunkt bei den laufenden CNC-Ausstellungen auf der NAMES, und die NAMES wurde zur jährlichen Veranstaltung für EMC. In den ersten Jahren fanden die Treffen nur deshalb statt, weil die interessierten Parteien auf der NAMES waren. Im Jahr 2003 fand das erste angekündigte öffentliche Treffen der EMC-Anwendergemeinschaft statt. Es fand am Montag nach der NAMES in der Lobby der Arena statt, in der auch die NAMES-Messe abgehalten wurde. Die Organisation war locker, aber die Idee einer Hardware-Abstraktionsschicht (HAL) wurde geboren und die Umstrukturierung des Codes zur Vereinfachung der Entwicklung (EMC2) wurde vorgeschlagen.
1. Namensänderung
Im Frühjahr 2011 wurde der LinuxCNC-Vorstand von einer Anwaltskanzlei in Vertretung der EMC Corporation (www.emc.com) wegen der Verwendung von "EMC" und "EMC2" zur Kennzeichnung der auf linuxcnc.org angebotenen Software kontaktiert. Die EMC Corporation hat verschiedene Marken im Zusammenhang mit EMC und EMC² (EMC mit hochgestellter Zahl zwei) eingetragen.
Nach einer Reihe von Gesprächen mit dem Vertreter der EMC Corporation war das Endergebnis, dass mit dem nächsten großen Release der Software, linuxcnc.org aufhörte, die Identifizierung der Software mit "emc", "EMC", oder diese Zeichenfolgen in Kombination mit nachfolgenden Ziffern zu nutzen. Soweit das LinuxCNC Board of Directors eine Kontrolle hat über die Bezeichnung der auf linuxcnc.org angeboten Software, hat der Vorstand diesem zugestimmt.
Infolgedessen war es notwendig, einen neuen Namen für die Software zu wählen. Von den Optionen, die der Vorstand in Betracht zog, gab es einen Konsens, dass "LinuxCNC" die beste Option ist, da dies seit Jahren der Name unserer Website ist'.
In Vorbereitung auf den neuen Namen haben wir eine Unterlizenz für die Marke LINUX® von der Linux Foundation (www.linuxfoundation.org) erhalten, die unsere Verwendung des Namens LinuxCNC schützt. (LINUX® ist die eingetragene Marke von Linus Torvalds in den USA und anderen Ländern.)
Die Umbenennung umfasste die Website linuxcnc.org, die IRC-Kanäle und die Versionen der Software und der Dokumentation seit Version 2.5.0.
2. Zusätzliche Informationen
Das NIST hat ein Papier veröffentlicht, in dem die Sprache RS274NGC und das von ihr gesteuerte abstrakte Bearbeitungszentrum sowie eine frühe Implementierung von EMC beschrieben werden. Das Papier ist auch unter https://linuxcnc.org/files/RS274NGCv3.pdf verfügbar.
Das NIST hat auch ein Papier über die Geschichte der EMC und ihren Übergang zu open source veröffentlicht. Das Papier ist auch unter https://linuxcnc.org/files/Use-of-Open-Source-Distribution-for-a-Machine-Tool-Controller.pdf verfügbar