ROBOPro Änderungshinweise zur Version 1.1.2.40 Änderungen in Version 1.1.2.41 gegenüber 1.1.2.40 ================================================= - Neue ftLib und neue Firmware mit RF-DataLink support - Automatischer Firmwareupdate fuer RF-DataLink und ROBO I/O Extension - Hinweisfenster erscheint, wenn die Funkverbindung unterbrochen ist. Änderungen in Version 1.1.2.40 gegenüber 1.1.2.26 ================================================= Hinweis: Alle Versionen zwischen 1.1.2.26 und 1.1.2.40 sind nicht freigegebene Betaversionen. - Beispieldateien für Industry Robots II hinzugefügt. - Listeninhalte kann man nun auch aus einem CSV Zwischenspeicher laden und in einen CSV Zwischenspeicher speichern. Den Zwischenspeicher kann man dann über das Datei Menü in eine Datei speichern oder aus einer Datei laden. Dadurch kann man verschiedene CSV Dateien verwenden, ohne das Programm ändern zu müssen. Das ist insbesondere für Teach-In Programme praktisch. Der CSV Zwischenspeicher muss vor dem Programmstart geladen und nach Programmende gespeichert werden. - Druckknöpfe im Bedienpanel und Anzeigelampen werden nun beim Programmstart wieder zurück gesetzt. Bei Druckschaltern kann man den Anfangszustand im Eigenschaftsfenster einstellen. - Der Codegenerator von ROBOPro wurde komplett überarbeitet. Die Überarbeitung war Notwendig um einen Absturz in 1.1.2.26 zu beseitigen der unter bestimmten Voraussetzungen auftrat, wenn man eine lokale Variable oder andere lokale Datenquelle an Unterprogrammeingänge mit Objekttyp angeschlossen hatte. Die Versionen zwischen 1.1.2.26 und 1.1.2.40 waren nötig um die ganzen durch die Überarbeitung neu entstandenen Fehler zu beseitigen. Da diese Fehler weder in 1.1.2.26 und früher noch in 1.1.2.40 oder später auftreten, erspare ich mir hier eine Auflistung all dieser Fehler. Da der überarbeitete Codegenerator leistungsfähiger ist, wurden auch einige Neuerungen eingeführt, die alte Unzulänglichkeiten beseitigen: - Ein Dateneingang für Unterprogramme kann nun mit mehreren Datenquellen (Befehlselementen) verbunden werden. - Bei Variablen und Listen kann man ab Level 3 einstellen, ob die Werte namensgebunden sind oder nicht. Bisher waren globale Variablen und Listen namensgebunden, das heißt dass globale Variablen oder Listen mit gleichem Namen immer den gleichen Wert haben. Lokale Variablen oder Listen waren dagegen bisher nicht namensgebunden, das heißt zwei lokale Variablen oder Listen mit gleichem Namen konnten selbst im gleichen Unterprogramm verschiedene Werte haben konnten. Ab Version 1.1.2.40 kann man nun bei globalen und lokalen (und auch Objektvariablen) einstellen, ob Namensbindung gewünscht wird oder nicht. Standardmäßig sind nun alle Variablen namensgebunden. Alte Programme werden jedoch mit der bisherigen Semantik (lokal nicht namensgebunden) geladen. - Bei Listen kann man ab Level 4 für die Indexvariable den Typ (lokal, global, ...) und auch die Namensbindung getrennt vom Listenspeicher einstellen. Das hat den Vorteil, dass man zum Beispiel für eine globale Liste bei jeder Verwendung einen eigenen Wert für den Index haben kann. Bisher hatte eine Liste auch nur einen Indexwert, was in der Regel recht unpraktisch ist. Standardmäßig haben Indexvariablen den gleichen Typ (lokal, global, ...) wie die Listendaten, sind aber nicht namensgebunden. Alte Programme werden jedoch mit der bisherigen Semantik (global namensgebunden) geladen. Änderungen in Version 1.1.2.26 gegenüber 1.1.2.11 ================================================= In diesen Versionen wurden im Wesentlichen Fehler korrigiert. Die einzige Verbesserung ist die "ROBOPro entscheidet" Option bei Variablen und Listentypen (lokal, global). Siehe Version 1.1.2.21. Fehler behoben in 1.1.2.26 -------------------------- - Wenn im Hauptprogramm kein Unterprogramm mit Flusseingang aufgerufen wird, werden globale Prozesse in Unterprogramm ohne Flusseingang nicht übersetzt (=> Interner Programmfehler) Fehler behoben in 1.1.2.25 -------------------------- - Wenn bei Unterprogrammaufrufen ein Ausgang nicht angeschlossen ist, erscheint Fehlermeldung "Interner Programmfehler, Befehlsempfänger konnte nicht erstellt werden" - Wenn ein Befehlselement an einen Unterprogrammaufruf im Hauptprogramm angeschlossen wird, erscheint Meldung "Interner Programmfehler, Main program has local data". - Prozessstartelemente in Unterprogrammen mit Scope "ROBOPro entscheidet" haben jetzt Scope "Objekt", wenn das Unterprogramm keinen Programmflusseingang hat. - Im Testpanel/Info werden die Seriennummern jetzt wie überall in Hex angezeigt. - ROBOPro hängt wenn im Einzelschritt über das Programmende hinaus gegangen wird. - Einige Fehlermeldungen haben ein ganzes Unterprogramm selektiert (was nicht mehr rückgängig zu machen war) - Fehler "Eine unerwartete Situation ist eingetreten." bei bestimmten rekursiven Programmen. - Wenn ein Prozess im Einzelschrittmodus beendet wird, werden in anderen Prozessen zum Teil zwei Schritte ausgeführt. - Wenn in einem Unterprogramm globale Prozesse und lokale Variablen verwendet werden crasht ROBOPro - Bei Verzögerungselement wird bei 0,12 eine zu große Zahl von Stellen angezeigt Fehler behoben in 1.1.2.24 -------------------------- - Wenn man im Eigenschaftsfenster des Hauptprogramms eine Moduldefinition bearbeitet, aber nichts ändert, gibt es eine USB Fehlermeldung, wenn man das Programm stoppt. Fehler behoben in 1.1.2.23 -------------------------- - Im Simulationsmodus hängt ein Programm manchmal für 30 Sekunden in Wartebeaustein Fehler behoben in 1.1.2.22 -------------------------- - Crash des Compilers, wenn man eine "Aus" Nachricht an eine Bedienfeldlampe schickt. Verbesserungen in 1.1.2.21 -------------------------- - reine Elektroniksimulationsprogramme (ohne blaue Linien/Elemente) lassen sich nun auch ohne Level 4 Einstellungen erstellen. Bei den Unterprogramm I/Os und bei den Unterprogrammaufrufen ist in Level 4 die Option "ROBOPro entscheidet" hinzugekommen. Im Hauptprogramm und Programmen mit globalen Prozessen verwendet ROBOPro globale Variablen. Bei Unterprogrammen, die keine Programmflusseingänge haben verwendet ROBOPro Objektvariablen. In allen anderen Fällen verwendet ROBOPro lokale Variablen. Der von ROBOPro ausgewählte Typ wird nach der Übersetzung im Eigenschaftsfenster angezeigt. - Fixes einiger schwer reproduzierbarer Fehler im Compiler Änderungen in Version 1.1.2.11 gegenüber 1.1.2.8 ================================================ - Die online Hilfe wurde deutlich verbessert. Die Hilfe zu einem Programmelement ist nun durch einen rechten Mausklick auf das Element im Programmelementefenster möglich. - Korrektur von verschiedenen "Internen Programmfehlern", und Abstürzen. Änderungen in Version 1.1.2.8 gegenüber Betaversionen ===================================================== Die Version 1.1.2.8 war die erste verkaufte Version. Zu den vorhergehenden Betaversionen gibt es unzählige Unterschiede, da ROBOPro während der Entwicklung auch konzeptionell mehrfach überarbeitet wurde. Soweit mir bekannt ist sind jedoch die aktuellen Versionen zu allen mit Betaversionen entwickelten ROBOPro Programmen kompatibel, mit der folgenden Ausnahme: In Version 1.1.2.3 wurde die Funktionsweise der Textanzeige für Bedienfelder verändert. In den älteren Versionen war in der Textanzeige ein Zahlenwert gespeichert, in den neueren Versionen ist in der Textanzeige ein Textwert gespeichert. Man kann der Textanzeige nach wie vor Zahlenwerte mit = Befehlen zuweisen, die dann automatisch in Text umgewandelt werden. Es sind jedoch keine arithmetischen Befehle an die Textanzeige mehr möglich (+, -), was vor 1.1.2.3 möglich war. In Programmen die dies verwenden muss man zwischen den Befehlen und dem Bedienfeldausgang im Programm einen Variablenbaustein setzen. Die Variable erledigt dann die arithmetischen Operationen und schickt den jeweiligen Wert an die Anzeige weiter.