History zur NC-Pilot Firmware, Stand 2.2.2011

Anmerkung: Der NCPloader sucht standardmig nach Dateien mit der Endung *.CRX
Whlen Sie "alle Dateien", um die Firmware mit der Endung *.NCP sehen zu knnen.


History:
V1.42:
  - Referenzfahrt: Fehler behoben. Nach Notstopp, Halt und Abbruch der Verbindung wurde
    bei der nchsten Referenzfahrt nur die erste Achse referenziert.

V1.40:
 - Neuer Modus "PC_Programmbertragung" eingefgt
 		Programme werden in RAM1, RAM2, RAM3 oder RAM4 abgelegt:
    Jedes Programm darf maximal 100 Befehle enthalten.
    Das Programm darf nur die Automatik-Befehle enthalten               
			FahreRelativ_XY, FahreRelativ_ZC, HaltePosition,
			SpindelKuhlungSetzen, AllgemeineAusgaeneSetzen,
			Referenzfahrt, ParkPositionAnfahren, NullPunktSetzen
    Neuer Befehl fr diesen Modus: "LoadRAMprogramm"
 - Im Automatik neue Befehle "StartRAMprogramm" und "HaltePosition" eingefgt.


V1.31:
 - Firmware mit englischen Display-Texten verfgbar.

V1.22:
 - Endschalter von deaktivierten Achsen haben keinen Einfluss mehr auf den Programmablauf,
   d.h. wird ein Endschalter einer solchen Achse bettigt, wird kein Fehler ausgegeben und nicht angehalten.
 - Die Bits 0-3 im Byte 2 des Antwortframes signalisieren, ob die jeweiligen Achsen bereits referenziert wurden
 
V1.21:
 - DLL:	Neue Funktion "NCStepOpenConnection4FirmwareUpdate"

V1.20:
  - Referenzfahrt : Auswertung der End-/Refernzschalter gendert.
    Entsprechende Fehlermeldung sowohl bei "Referenzfahrt" im manuellen Betrieb als auch bei "Referenzfahrt" im Automatik.
 	  Im Antwortframe sind neue Fehler definiert :	0x13 - X-Endschalter ist aktiv,
							0x23 - Y-Endschalter ist aktiv,
							0x33 - Z-Endschalter ist aktiv,
							0x43 - C-Endschalter ist aktiv,
							0x53 - NotAus ist aktiv.
	  Dabei wird der Befehlpuffer gelscht. Der Fehler muss mit dem Befehl "FehlerQuitieren" gelscht werden.
	  Bei "Referenzfahrt" im Automatikbetrieb ist Anzeige auf dem Display gendert woden.
  - Der Arbeitsraum fr eine Achse wird nicht berwacht, wenn BEIDE Grenzen (untere und obere) fr diese Achse auf "0" parametriert sind.
  - Alle Geschwindigkeiten (Startgeschwindigkeit, Fahrgeschwindigkeit, Eilganggeschwindigkeit, Manuell_langsam, Manuell_schnell,
    Referenz_langsam, Referenz_schnell, Motortest_Startgeschwindigkeit, Motortest_Fahrgeschwindigkeit) sind von 0.1 bis 999.0 manuell
    ber die Tasten einstellbar.
	  Achtung! Gltigkeitsbereich fr Geschwindigkeiten ist von [0.01 bis 99.0] auf [0.1 bis 999.0] gendert.
  - Gltigkeitsbereich fr Beschleunigung und Motortest_Beschleunigung auf [1 bis 999] gendert.
	  Manuele Einstellung wie bei Geschwindigkeiten (jede Dezimalstelle einzeln).
	  Achtung! 	Beschleunigungen sind vom Typ "unsigned int". Es ist zwar manuell mglich, Nachkomastelle zu setzen, es wird abgerundet.
  - berprfung der Gltigkeit von Geschwindigkeiten, Auflsungen und Beschleunigungen bei der Parameterbertragung entsprechend gendert.
  - SendeFrameLibrary.h entsprechend gendert.
  - Auf die "Parameter ndern"-Befehle (ParameterAendern_long, ParameterAendern_float, ParameterAendern_4_longs,
    ParameterAendern_4_uchar, ParameterAendern_Richtung_Sequenz_ReferenzFahrt, ParameterAendern_ControllerName)
    wird mit Antwortframe wie bei "Parameter lesen" (Tabelle 4) geantwortet. In den Funktionen wird berprft,
    ob die Parameter richtig gendert worden waren.
  - Im Antwortframe "Parameter lesen" (Tabelle 4) Byte21 ist Antwortframeflag. (Wie im Antwortframe (Tabelle 2))
  - Wenn der Controller durch Tastaturbedienung weder im Automatikmodus, noch in Parameterbertragung ist (sondern z.B.
    im manuellen Fahren), wird zum PC als BA "Zwischenzustand" (g_modus=0) geantwortet. Zwischen den Menpunkten "PC-bertragung"
    und "Automatik" wird jetzt direkt umgeschaltet (ohne "g_modus=0"-Zustand).
  - Nur im BA "Automatik" (g_modus=2) und "Parameterbertragung" (g_modus=1) werden die angekommene Befehle akzeptiert
    und im Ringpuffer abgespeichert. Wenn der Controller im "Zwischenzustand" ist (g_modus=0),
    werden alle angekommene Befehle verworfen und ein g_error=0x04 gesetzt, der mit dem Befehl "FehlerQuitieren" gelscht werden muss.
  - Firmware: Auf ein angekommenen Frame im Automatik-Modus wird NUR in Schritten geantwortet.
    Auf Befehl "BetriebsArtenWechsel" wird mit dem Modus=3 geantwortet (auch in Schritten).
    Im Modus "Parameterbertragung" wird in menu_pc_uebertragung_parameter mit dem reply_parameter geantwortet.
  - Firmware: Nachdem die Verbindung mit dem Host hergestellt wurde (der erste SendeFrame vom Host wurde empfangen),
    wird berwacht, ob diese Verbindung erhalten bleibt. Wenn der Controller mehr als 1 Sekunde kein Frame vom Host bekommt,
    betrachtet er Verbindung als "getrennt". Die Achsen werden abgebremst.
  - DLL: Nachdem die Verbundung mit dem Controller geffnet wurde, wird periodisch eine Statusabfrage gesendet,
	  wenn keine Befehle in der Warteschlange stehen.

V1.13:
	- Fehler bei Initialisierung der Signale Spindel, Khlung, Sleep und Boost behoben
	- Fehler bei den Schaltfunktionen fr Spindel und Khlung behoben
	- Der Controller sendet im Automatikbetrieb ca. 16-20 mal pro Sekunde einen
	  Antwortframe, um am PC die Position verfolgen zu knnen. Diese Funktion wird
	  in der nchsten Version per Parameter abschaltbar sein. Die Firmware 1.13 ist
	  daher nicht mit lteren DLL Versionen kompatibel!
	- Untersttzung fr zustzliche Ein- und Ausgnge eingebaut (ab Hardware V2.0)
	  Der Zustand der Eingnge wird im Antwortframe Byte22 ausgegeben, das zuletzt
	  ausgegebene Byte der Ausgnge im Antwortframe Byte23.
	- In allen Befehlen ist Byte63 im Sendeframe auf 0xA7 ("") zu setzen, um das Ende
	  des Frames zu kennzeichnen. Im Fall von bertragungsfehlern wird der Frame
	  komplett verworfen.
	- Zustzliche Parameter-Adressen definiert, um Parameter blockweise lesen/schreiben
	  zu knnen:
    HBYTE_ALLINONE 0x0F
    LBYTE_ALLINONE_AUFLOESUNG_FLOAT 0x00
    LBYTE_ALLINONE_START_FAHR_MANUELL_FLOAT 0x01
    LBYTE_ALLINONE_REFERENZ_EILGANG_FLOAT 0x02
    Im Antwortframe werden jeweils 4 Parameter von Typ FLOAT zurckgegeben:
    0x00 : MECHANIK_AUFLOESUNG_X, MECHANIK_AUFLOESUNG_Y,
           MECHANIK_AUFLOESUNG_Z, MECHANIK_AUFLOESUNG_C
    0x01 : GESCHWINDIGKEITEN_START_STOP, GESCHWINDIGKEITEN_FAHR,
           GESCHWINDIGKEITEN_MANUEL_LANGSAM, GESCHWINDIGKEITEN_MANUEL_SCHNELL
    0x02 : GESCHWINDIGKEITEN_REFERENZFAHRT_FREI, GESCHWINDIGKEITEN_REFERENZFAHRT,
           GESCHWINDIGKEITEN_EILGANG, 0x00
  - DLL: Im Befehl "NCStepOpenConnectionAuto" wird zustzlich Controllername aus den
    Parametern gelesen und in NCStepCommPortSettings gespeichert.
  - DLL: Neue Befehle in der DLL:
	  "GetPosition_mm", "GetPosition_Schritte"
	  "NotStop_ohneBremsrampe" (sf[0]:0x00, sf[1]:0x03, sf[2]:0x00) 
	  "NotHalt_mitBremsrampe" (sf[0]:0x00, sf[1]:0x03, sf[2]:0x01) 
	  "AllgemeineAusgaeneSetzen" (sf[0]:0x02, sf[1]:0x22, sf[2]:8bit, die im OutputPort3
	  ausgegeben werden) 

V1.12:
	- Zustzliche Eingnge J1, J2 und J3 eingefhrt. Der Zustand der Eingnge wird in der
	  Statusmeldung des Controlers im selben Byte wie die Endschalter ausgegeben.
	- Der Controller startet nach einem Reset jetzt direkt im Automatikmodus
	- Bekannter Fehler (noch nicht behoben): Bei unterschiedlichen Achsauflsungen
	  (X/Y oder Z/C) kommt es bei Fahrkommandos mit v=0 (Fahren mit parametrierter
	  Geschwindigkeit) zu falschen Geschwindigkeiten der beiden Achsen. Das fhrt dazu,
	  dass beide Achsen *nicht* gleichzeitig ankommen.

V1.11:
	- Unterscheidung Maschinen- und Werkstckkoordinaten eingefhrt (MKS/WKS)
	  Parkposition und Arbeitsraumberwachung werden in MKS angegeben,
	  nach nderung des Nullpunktes erfolgt die Anzeige im WKS.
	- Arbeitsraumberachung implementiert (Einstellung in Maschinenkoordinaten)
	- Controllername (Feste Lnge=16 Zeichen!) als Parameter eingefhrt. Neuer Befehl
	  "ParameterAendern_ControllerName" in DLL ergnzt. "ncpilot.ini" ist auf
	  Parameter: Controllername="NC-Pilot USB    " erweitert. 
	- Bei der Parameterbertragung werden die vorgeschriebenen Grenzen fr Parameter
	  berwacht (siehe ini-File und Softwaredoku). Falls der Parameter auerhalb
	  des zulssigen Bereiches ist, wird er nicht akzeptiert und nicht gendert.
	  Im Antwortframe wird dann mit dem Fehler 0x71: "Parameter unzulssig" signalisiert.
	- Auch im Befehl "ParameterAendern_Richtung_Sequenz_ReferenzFahrt"
	  fhrt der Controller die berprfung der Werte auf Gltigkeit durch.
  - Globale Rampe wird bei der Initialisierung NUR dann berechnnet,
    wenn die Checksumme mit GLB_RAMP_CHECKSUMME nicht bereinstimmt (in der Regel
    nur nach einem Kaltstart).
	- Der Parameter "Sicherheitsabstand" ist aus "Mechanik" nach "Sonstige"
	  verschoben worden. "ncpilot.ini", "SendeFrameLibrary.h" sind entsprechend gendert.
	- Neuer Parameter "Achsenconfiguration" im Men "Einstellungen/Mechanik" ergnzt,
	  "ncpilot.ini" und "SendeFrameLibrary.h" sind entsprechend gendert.
	  Die DLL ist auf Befehl "ParameterAendern_4_uchar" erweitert.
	  Neues Menu: "Einstellungen/Mechanik/AchsenKonfiguration".
	  Die Achsen knnen entweder ber DLL-Befehl oder manuell konfiguriert werden.
	  DLL:                  MEN
	  0: linear (default)		lin
	  1: rotatorisch        rot
	  2: deaktiviert        *
	  Achtung! Wenn die Achse als "deaktiviert" konfiguriert ist, wird sie automatisch
	  als "nicht referenzierbar" definiert, d.h. im Men
	  "Einstellungen/Mechanik/Richtung/Sequenz Referenzfahrt" wird die Achse mit "*" markiert).
	- Bug behoben: Bei der Referenzfahrt einzelner Achsen ber Men "Fahren/Referenzfahren"
	  z.B "X-Achse" wurde nicht geprft, ob die Achse referenzierbar ist.
	- Einheit ""  (Anzeige "gr" fr Grad) fr Drehachsen und "mm" fr Linearachsen sind eingebaut
	- Einheiten im Antwortframe abhngig vom Sendeframe (Schritte oder mm/).
	  Auf die Befehle, die eine Basiseinheit im Sendeframe (Byte[7]: 0=mm, 1=Schritte) haben
	  (FahreRelativ_XY_mm, FahreRelativ_XY_Schritte, FahreRelativ_ZC_mm, FahreRelativ_ZC_Schritte,
	  NullPunktSetzen_mm, NullPunktSetzen_Schritte), wird mit derselben Basiseinheit geantwortet.
	  Befehl "Statusabfrage" ist auf Byte[7] - Basiseinheit erweitert (0=mm, 1=Schritte).
	  Im Antwortframe wird dann mit der angeforderten Basiseinheit geantwortet.
	- Im Antwortframe Byte[21] - Antwortframeflag = 0x01 definiert, um die Antwort als Antwort
	  vom NC-Pilot zu identifizieren.
	- DLL: Neuer Befehl "NCStepOpenConnectionAuto". ComPort automatisch suchen (1 bis 8).
	  Den ersten gefundenen Controller nehmen, der Parameter Controllername wird dabei nicht
	  analysiert.
	- DLL: Neuer Befehl "NCStepOpenConnectionName". Ab dem COM1 bis COM8 wird nach dem Controller
	  mit dem angegebenen Namen gesucht.

V1.10:
	- Komplette Berechnung der Beschleunigungsrampen berarbeitet.
	  Die Rampen werden jetzt online gerechnet, dadurch sind deutlich schnellere
	  Satzwechselzeiten mglich.
	- Manuelles Fahren untersttzt jetzt neben "manuell langsam" und "manuell schnell"
	  auch Fahren von festen Wegen (10/1/0,1/0,01mm) mit Eilganggeschwindigkeit
	- Meneintrag zum Schalten fr Khlung und Spindel beim manuellen Fahren ergnzt.
	
V1.05:
	- Einige Funktionen wurden fr die Verwendung mit der neuen DLL modifiziert.
	- Falsche Datentypen fr MOTORTEST -> Start-Stop und MOTORTEST -> Maximal-
	  geschwindigkeit gendert, siehe auch gendertes INI-File.
	- Parameterbertragung: Fehler "Falsche Anzahl empfangener Daten" behoben.
	- Parameterbertragung: Fehler "Ungltige Daten in reservierten Feldern" behoben.
	- Referenzfahrt: Achsen, die nicht Referenziert werden sollen, knnen jetzt
	  in Einstellungen -> Mechanik -> Richtung/Sequenz Referenzfahrt m,it F2 abgewhlt
	  werden (Kennzeichung ber "*").
	- Men fr manuelles Fahren : Umschaltung zwischen den beiden Untermens fr
	  X/Y und Z/C jetzt in beide Richtungen mglich.

V1.04:
	- 4te Achse hinzugefgt
	- Men fr manuelles Fahren auf zwei Seiten erweitert (Umschaltung ber
	  Pfeiltasten), um alle 4 Achsen ansteuern zu knnen
	- Schrittfehler beim automatischen Fahren der Z-Achse behoben (teilweise wurde
	  1 Schritt zuviel gefahren)
	- Intern wurden verschiedene Funktionen zusammengefasst. Dadurch werden jetzt
	  Wegstcke, die ohne Brems- oder Beschleunigungsrampe auskommen, ohne Pausen
	  hintereinander abgefahren

V1.03:
	 - Fehler beim Fahren mit variabler Geschwindigkeit (ungleich Fahrt-
	  geschwindigkeit) im Automatikbetrieb behoben.
	- Fehler beim Abfahren von Diagonalen mit spitzen Winkeln behoben.
	  Die Achsen kommen jetzt immer gleichzeitig an (kein Nachlaufen mehr).
	- Fehler beim Abfahren von Diagonalen mit spitzen Winkeln behoben.
	  Es gehen keine Schritte mehr verloren.
	- Fehler bei der Ausgabe des Boost-Signals behoben.
	- Fehler "Falscher Ruhezustand beim Taktsignal" behoben.
	- Das Richtungssignal kommt jetzt erst mit der ersten fallenden Flanke des Taktsignals
	  
V1.02:
	- nderung der Parameter fr Richtung/Reihenfolge Referenz:
	  Einzelne Achsen knnen von der "Referenzfahrt alle Achsen" ausgeschlossen werden
	  (Taste F2, Symbol '*'). Beim Referenzieren von Einzelachsen wird die Einstellung ignoriert!

V1.01:
	- Fehler: LED nicht an bei normalem Betrieb behoben
	- nderung der Reaktion auf End-/Referenzschalter: Nach einem Endschalterkontakt
	  knnen die anderen Achsen weiterhin manuell gefahren werden, jedoch nur mit
	  langsamer Geschwindigkeit.
	- Fehler: Parken ohne Rampen bei hheren Beschleunigungen behoben

V1.0:
	Erste Verffentlichung