Moeller GmbH, Bonn ----------------------------------------------------------------------- Sucosoft S40, Version 5.05 (Update) Stand: 20.09.2005 ==================================================================== Diese Datei enthält Änderungen, die nach Drucklegung der Dokumentation vorgenommen wurden, sowie Hinweise zu bekannten Fehlern. Inhalt A Kompatibilität A.1 Projekte A.2 Sprachelemente A.3 Betriebssysteme PS416 und PS4-300 A.4 PROFIBUS-FMS PS416 A.5 Funktionen und Funktionsbausteine A.6 Unterstützung neuer Flash-Speichermodule und -karten B Hinweise zu Handbüchern C Nicht dokumentierte Eigenschaften C.1 POE-Editor C.2 POE-Editor KOP/FBS C.3 Codegenerierung C.4 Test und Inbetriebnahme C.5 ASI-Gateway C.6 Umadressieren von ASi-Slaves mit Asic V2.1 C.7 Profibus-DP C.8 LON-Funktionsbausteine C.9 Topologiekonfigurator D Hinweise zu bekannten Fehlern D.1 POE-Editor D.2 Drucken D.3 Codegenerierung D.4 Navigator E Aufstellung behobener Fehler E.1 Codegenerierung E.2 Herstellerbibliotheken E.3 Navigator E.4 POE-Editor E.5 Test & Inbetriebnahme F Allgemeine Hinweise F.1 Schutzverletzungen F.2 Speichermangel auf Datenträgern F.3 Virenschutzprogrammen ================================================================== A Kompatibilität ================================================================== A.1 Projekte ============= A.1.1 Programmparametrierung Projekte, die mit der Sucosoft S4 V1.x bzw. mit der Sucosoft S40 vor Version 5.0 erstellt wurden, müssen für die aktuelle Version konvertiert, neu übersetzt und auf die SPS transferiert werden. Wenn Sie Projekte aus S4 V1.x, bzw. S40 V1.x übernehmen, müssen zusätzlich die Einstellungen für Merker-Bereiche, Zykluszeit usw. vor der Generierung erneut eingegeben werden. A.1.2 Programmierverbindung über Modem Wenn Sie eine Programmierverbindung über Modem aufbauen wollen, dürfen nicht Verbindungslisten aus der S40 V1.x verwendet werden. Legen Sie in diesem Fall in der Test-/Inbetriebnahme im Fenster "Verbindungsliste" eine neue Verbindung mit der Option "Verbindungsaufbau über Modem" an. A.1.3 Fuzzy-Funktionsbausteine Ältere Projekte, die Fuzzy-Funktionsbausteine enthalten, können mit der S40 V5.0 konvertiert und neu übersetzt werden. Die Fuzzy-Bausteine selbst können aber nicht mehr verändert oder online eingesehen werden, da keine Anbindung zur fuzzyTECH mehr besteht. A.2 Sprachelemente =================== A.2.1 Sprachelemente, die ab V4.0 nicht mehr zur Verfügung stehen Es können keine Definitionen, die in Bibliotheken definiert sind, durch Definitionen gleichen Namens im Projekt überschrieben werden. Dies gilt für: - Globale Datentypen - POE-Namen (dürfen in einem Projekt nur einmal vorkommen) - Lokale Datentypen - Sprungmarken Globale Datentypen und POE-Namen dürfen nicht mehr durch eine lokale Definition gleichen Namens in einer POE überschrieben werden. Dies gilt für: - Lokale Datentypen - Sprungmarken A.2.2 Sprachelemente, die ab V4.0 zur Verfügung stehen - Direkt dargestellte Variablen vom Datentyp REAL oder ARRAY OF REAL auf Doppelwort-Adressen werden nun unterstützt. - Schreibender Zugriff auf VAR_INPUT-Variablen innerhalb des Funktionsbausteins ist nun zulässig. - Schreibender Zugriff auf direkt dargestellte Variablen mit %I-Adresse ist nun zulässig. Sollen Schreibzugriffe auf derartige Variablen analog zu älteren S40-Versionen vom Compiler weiterhin verboten werden, müssen diese nun mit dem Qualifikator CONSTANT deklariert werden. A.2.3 Sprachelemente, die ab V4.1 nicht mehr zur Verfügung stehen Der Zugriff auf ein Feldelement unter Verwendung einer Indexvariable vom Typ UDINT wird für die PS416 und PS4-300 nicht mehr unterstützt. Zugelassen werden nur noch Indizes vom Typ DINT, UINT, INT, USINT oder SINT. Diese Beschränkung war bislang nur dokumentiert, wurde aber bei der Syntaxprüfung nicht geprüft. A.2.4 Sprachelemente, die ab V5.0 zur Verfügung stehen Die Sucosoft unterstützt nun für alle Gerätefamilien die Programmiersprache ST (Structured Text). Einzelheiten hierzu entnehmen Sie bitte dem Handbuch AWB2700-1306. Strukturen (Datentyp STRUCT) bis zu einer Größe von 254 Bytes werden nun auch für die PS4-200 Gerätefamilie unterstützt. Die Anordnung der Komponenten innerhalb einer Struktur erfolgt - soweit möglich - binärkompatibel zur PS4-300. Strukturen dürfen aber bei der PS4-200 keine Felder (Datentyp ARRAY) enthalten und umgekehrt können auch keine Felder über Strukturen gebildet werden. Die Funktion NEG() zur Durchführung eines Vorzeichenwechsels bzw. Zweierkomplements kann nun auch für den Datentyp TIME verwendet werden. Bei der Syntaxprüfung einer POE wird der Anweisungsteil nun auch auf nicht-abgeschlossene Anweisungssequenzen und unerreichbaren Code untersucht und ggf. entsprechende Warnungen ausgegeben. Unerreichbarer Code wird dabei wegoptimiert, so dass an diesen Stellen im Onlinemodus auch keine Zustandswerte angezeigt werden. Die Operatoren ADD, MUL, AND, OR und XOR können nun auch in AWL als Funktionen mit mehr als 2 Eingängen (extensible functions) aufgerufen werden. Eine Längenangabe zum Datentyp STRING kann nun entsprechend zur IEC- Norm 61131-3 auch in eckigen Klammern erfolgen, z.B. STRING[5]. Die alte Schreibweise mit runden Klammern, z.B. STRING(5), wird aber weiterhin unterstützt. Analog zur 2.Ausgabe zur Norm IEC 61131-3 können nun auch im Anweisungsteil, der in der Programmiersprache AWL geschrieben ist, Kommentare beliebig platziert werden. Sie müssen also nicht mehr generell hinter einem Operanden stehen, es sei denn, eine Umschaltung nach KOP oder FBS soll weiterhin möglich ein. A.2.5 Sprachelemente, die ab V5.0 nicht mehr zur Verfügung stehen Die 2.Ausgabe zur Norm IEC 61131-3 führt einige neue Schlüsselwörter ein. Analog stehen diese Bezeichner in der S40 nicht mehr für Typ- oder Variabelennamen dem Anwender zur Verfügung. Dies kann in Einzelfällen zu Namenskonflikten bei der Übernahme von älteren Projekten führen. Eine komplette Aufstellung aller Schlüsselwörter finden Sie im Anhang des Handbuchs AWB2700-1306. A.3 Betriebssysteme PS416 und PS4-300 ====================================== A.3.1 Laden von Betriebssystemen Verwenden Sie in Verbindung mit der Sucosoft S40 V5.x für neu generierte PS416 bzw. PS4-341-Programme die Betriebssysteme aus dieser S40-Version. Für Diagnosezwecke kann aber auch an eine SPS angekoppelt werden, die ein Betriebssystem aus der S40 V4.x enthält. A.3.1.1 Laden von Betriebssystemen in die PS416 Grundsätzlich ist das Überschreiben eines Betriebssystems in der PS416 möglich. Dies gilt aber nicht, wenn beim Ankoppeln festgestellt wird, dass die Betriebssystem-Version inkompatibel zur S40 ist. Erste Möglichkeit zur Aktualisierung des Betriebssystems: Beim Ankoppeln erscheint die Meldung, dass ein inkompatibles Betriebssystem in der SPS ist. Damit ist kein Ankoppeln mehr möglich. Durch das Ziehen der beiden Batterien (die CPU ausbauen) wird das vorhandene Betriebssystem gelöscht und das neue kann geladen werden. Zwischen Ziehen und Einsetzen der Batterien sollten einige Sekunden gewartet werden, damit sich alle Kapazitäten entladen können. Anschließend kann wieder angekoppelt werden und die neueste Betriebssystem-Version transferiert werden. Alternative Möglichkeit: Voraussetzung ist, dass neben der aktuellen S40 auch die ältere S40- Version installiert ist, die kompatibel zum Betriebssystem auf der PS416 ist. Die alte S40 starten, ankoppeln, in Transfer gehen, OSF Datei anwählen, in das OS Verzeichnis der aktuellen S40 wechseln und das zugehörige Betriebssystem transferieren. Danach kommt die Meldung, dass das Betriebssystem nicht zur S40 passt. Jetzt kann die alte S40 verlassen und in mit der aktuellen S40 weitergearbeitet werden. A.3.1.2 Laden von Betriebssystemen in die PS4-341 Die PS4-341 verhält sich wie die PS416. Wenn jedoch eine Speicherkarte mit einem alten Betriebssystem steckt, dann wird ein automatischer Austausch der Betriebssysteme angeboten. A.4 PROFIBUS-FMS PS416 ======================= Bei Verwendung von PROFIBUS-FMS-Anwendungen müssen Sie den "SuconetP"- Baustein mindestens einmal instanzieren, damit die benötigte Firmware in die Steuerung geladen wird. A.5 Funktionen und Funktionsbausteine ====================================== A.5.1 S40 V3.x -> S40 V4.x Die PS416-Bausteine CAlarm, TAlarm und FAlarm werden ab der Version V4.0 nicht mehr unterstützt. Verwenden Sie bitte stattdessen die Funktionsbausteine CounterAlarm, TimerAlarm und EdgeAlarm, die jetzt auch für die PS416 zur Verfügung stehen. A.6 Unterstützung neuer Flash-Speichermodule und -karten ========================================================= Ab der Betriebssystem-Version "341_201.OSF" der PS4-300 wird das Speichermodul ZB4-901-SF2 unterstützt. Bitte laden Sie kein älteres PS4-300-Betriebssystem als das "341_201.OSF" auf dieses neue Speichermodul. Es würde sonst unbrauchbar, weil beim Booten das alte Betriebssystem von der MC geladen wird und dieses die neue Speicherkarte nicht unterstützt. Somit besteht keine Möglichkeit mehr, auf die Speicherkarte zuzugreifen. Die bisher für die PS416 verwendeten Speicherkarten - 2MB-Flash: MF82M1-GMCAV01 - 4MB-Flash: MF84M1-GMCAV01 des Herstellers Mitsubishi sind nicht mehr lieferbar. Für die neuen Typen des Herstellers Glyn wird das Betriebssystem "416M_409.OSF" oder neuer benötigt. Die neuen Bezeichnungen sind: - 2MB-Flash: MF82M1-GMCAV01-G - 4MB-Flash: MF84M1-GMCAV01-G ============================================================== B Hinweise zu Handbüchern ============================================================== Die folgenden Fehler in den Handbüchern sind erst nach Drucklegung bekannt geworden: B.1 AWB2700-1306D 07/01 Seite 18f, Größe von Strukturen Die Größe einer Struktur wird generell auf eine gerade Byteanzahl aufgerundet. Eine Strukturkomponente, die größer als ein Byte ist (also z.B. WORD) muss auf einem geraden Offset innerhalb der Struktur liegen, ggf. wird bei der Übersetzung ein Füllbyte vorangestellt. Seite 28ff, Auswirkungen von RETAIN auf Bausteine Die Deklaration einer Instanz (Variable vom Typ FB) mit dem Schlüsselwort RETAIN bewirkt, dass alle Parameter, lokalen Variablen und lokalen Bausteininstanzen dieser Instanz ebenfalls remanent sind, die Remanenz wird also vererbt. Wenn dagegen lokale Variablen in einem Baustein mit dem Schlüsselwort RETAIN deklariert werden, dann sind diese generell remanent, auch wenn Instanzen davon als nicht-remanent deklariert wurden. Die Remanenz- Eigenschaft für lokale Variablen und für Bausteine überschreibt also die Nichtremanenz des übergeordneten Bausteins. Man muss hier zwischen der POE (dem Schema) und der Instanz (der Variable) trennen: Der erste Fall gilt nur für einzelne Instanzen, da mit demselben Baustein sowohl remanente als auch nichtremanente Datenbereiche erzeugt werden können. Der 2. Fall betrifft dagegen den Baustein generell, da in allen Instanzen die betreffenden Variablen remanent sind. Für die PS4-200-Gerätefamilie wird nur der 1. Ansatz (also kein RETAIN in einem FB) unterstützt. Seite 277, Funktionsbaustein CounterLE Bedeutung der Fehlercodes am Ausgang Error: 0: kein Fehler 1: Parameter "ChannelNumber" falsch. Zulässige Werte: 1-4 bei PS4-341 und 1-6 bei PS4-201 2: LE4-622-CX1 ist nicht vorhanden 3: LE-4-622-CX1 meldet Drahtbruch 4: Konfigurationsfehler ============================================================== C Nicht dokumentierte Eigenschaften ============================================================== C.1 POE-Editor =============== C.1.1 POE mit fremden Editoren ändern POE-Dateien, die mit fremden Editoren geändert wurden, können im POE- Editor nicht mehr verwendet werden, wenn der andere Editor die Header- Zeile umgebrochen hat. Löschen Sie in diesem Fall die Header-Zeile. C.1.2 POE-Info Die Anzahl der Zeichen, die im Kommentarfeld zur "POE-Info" eingegeben werden können, ist auf ca. 15kB begrenzt. C.2 POE-Editor KOP/FBS ======================= C.2.1 Bearbeiten einer POE Suchen nach Funktionsbausteinnamen sowie nach Ein- und Ausgängen von Funktionsbausteinen ist in der KOP-/FBS-Darstellung nicht möglich. Schalten Sie hierzu in den AWL-Modus um. C.3 Codegenerierung ==================== C.3.1 Anzahl Struktur-Elemente Innerhalb einer Verschachtelungsebene darf eine Struktur nicht mehr als 50 Elemente enthalten. Die Einhaltung dieses Grenzwerts wird nicht überwacht. C.3.2 Verwendung der Datentypen "BOOL R_EDGE" und "BOOL F_EDGE" C.3.2.1 Verwendung bei der PS4-300 und PS4-200 Diese Datentypen sind Bestandteil des Sprachumfanges der Gerätefamilien PS4-300 und PS4-200. Sie erleichtern die Programmierung, da sie nur TRUE sind, wenn eine steigende oder fallende Flanke festgestellt wurde. Möglich ist das dadurch, dass Variablen dieser Datentypen nicht nur das Informationsbit, sondern auch den Flankenmerker verdeckt für den Benutzer enthalten. Damit der Flankenwechsel erkannt werden kann, müssen Bausteinparameter dieses Typs bei jedem Aufruf parametriert werden. Dadurch ist garantiert, dass bei jedem Bausteinaufruf die "BOOL R_EDGE/F_EDGE"- Eingänge den korrekten Wert erhalten. Besonders wichtig ist diese Vorgehensweise bei mehrmaligen Aufrufen eines Bausteines im Zyklus. Nachfolgendes Beispiel verdeutlicht den Zusammenhang: VAR counter : _16BitCounter; bUp AT %I0.0.0.0.0 : BOOL; END_VAR (* Programm im 1. Zyklus *) CAL counter(Forward := bUp) (* bUp=1 -> steigende Flanke *) (* der Counter wurde um 1 hochgezählt *) CAL counter (* 2. Aufruf ohne Parametrierung *) (* Der Counter wurde, evtl. unbeabsichtigt, wiederum um 1 hochgezählt, da der R_EDGE-Eingang nicht parametriert wurde und deshalb noch seinen alten Zustand "steigende Flanke" hat. *) C.3.2.2 Verwendung bei der PS416 Programme, die für die PS416 geschrieben wurden, weisen dieses Verhalten nicht auf, da "BOOL R_EDGE/F_EDGE" nicht für Anwenderbausteine unterstützt wird. Funktionsbausteine mit Flankeneingängen besitzen den Flankenmerker in ihrem lokalen Datenfeld. Bei Bausteinaufrufen wird in diesem Fall immer der lokale Flankenmerker mit dem Wert im Inputdatenfeld verglichen. Um kompatible Programme zu schreiben, ist es daher angebracht, Funktionsbausteine mit R_EDGE/F_EDGE-Parametern bei jedem Aufruf zu parametrieren. C.4 Test und Inbetriebnahme ============================ C.4.1 Zusätzliches Programm von der Speicherkarte in die Steuerung laden Voraussetzungen: Die PS416 arbeitet ein Programm "A" ab. Ein Programm "B" soll nachträglich von der Speicherkarte in die PS416 übertragen werden, wobei Programm "A" nach Neustart zunächst weiter abgearbeitet werden soll und kein Programmiergerät zur Verfügung steht. Lösung: 1. Übertragen Sie Programm "B", aber kein Betriebssystem, auf die Speicherkarte. 2. Weisen Sie nach der Übertragung von Programm "B" auf die Speicherkarte diesem als Anlaufverhalten die Kommandosequenz "Load" zu. Dies geschieht im Dialogfeld "Anlaufverhalten". 3. Zur Programmübertragung in die PS416 bringen Sie zuerst deren Betriebsartenschalter in die Schalterstellung "HLT" und halten Sie anschließend die Ausführung von Programm "A" an. 4. Stecken Sie nun die Speicherkarte mit Programm "B", wobei Sie gleichzeitig den SET-Taster drücken. Nun wird Programm "B" in die Steuerung übertragen, wobei die READY-LED beständig leuchtet und der Anlauf "aktiv" von Programm "A" gelöscht wird. Anschließend können Sie beliebig eines der geladenen Programme starten. C.5 ASi-Gateway ================ Die Programmierung des ASI-Gateways in der S40 unterscheidet sich zur S30-S4. In S30-S4 existieren überlappende Speicherbereiche: IB0..IB15 belegen den selben Speicher wie RDB0..RDB15. Ebenso überschneidet sich der Speicher von QB0..QB15 mit SDB0..SDB15. Die ASI-Statusinformationen liegen auf den Datenfeldern RDB16..RDB19 und SDB16..SDB19. Ausführliche Programmierbeispiele für S30-S4 finden Sie in Ihrer Dokumentation zum ASI-Gateway. In S40 gibt es diese einander überschneidenden Datenbereiche nicht. Anders als in der Dokumentation zum ASI-Gateway, die in dieser Hinsicht nur für S30-S4 gilt, können die ASI-Daten nur über IB0..IB15 bzw. QB0..QB15 angesprochen werden. Die ASI- Statusinformationen liegen dagegen auf den Datenfeldern RDB0..RDB3 und SDB0..SDB3. Programme, die unter S30-S4 erstellt wurden, können nach S40 importiert werden. Die Datenzugriffe auf RD und SD müssen dann nachträglich von Hand in das Format der S40 konvertiert werden. Beispiel: SDB0 muss als IB0, SDB16 als SDB0 angesprochen werden. C.6 Umadressieren von ASi-Slaves mit Asic V2.1 ============================================== Es sind Asi-Geräte mit der neuen ASI-Spezifikation V2.1 von Moeller sowie von anderen Herstellern verfügbar. Von Moeller sind dies z. B. EASY-205-ASI oder SL-B-ASI. Wird im Online-Topologiekonfigurator ein solcher Slave umadressiert, erscheint eine Fehlermeldung. Diese Meldung kann ignoriert werden. Sie resultiert aus einer Inkompatibilität der neuen Slaves gegenüber den alten. Kontrollieren Sie jedoch im Online-Konfigurator, ob die Umadressierung erfolgreich war. C.7 PROFIBUS-DP ================ C.7.1 Sicherheitsfunktion des Anwenderprogrammes bei Kommunikationsstörungen Für einen DP-Slave muss das Diagnose-Bit und das Kommunikationsbit aus dem Statusbyte des Slaves ausgewertet werden. Bei gesetztem Kommunikationsbit (Bit 6 im Statusbyte) ist die Kommunikation mit dem Slave gestört. Dafür gibt es verschiedene Ursachen wie z.B. fehlender Teilnehmer, falsche Parametrierung des Teilnehmers aber auch EMV-Probleme oder Leitungskurzschlüsse im Betrieb. Die Eingangsdaten sind in diesem Fall 0. Der Slave kann unter Umständen auch bei gesetztem Kommunikationsbit (z.B. bei Leitungskurzschluss am Slave) noch Ausgangsdaten vom Master empfangen. Deshalb ist es erforderlich auf diesen Fall im Anwenderprogramm angemessen zu reagieren und dem Slave z.B. die Ausgänge auf 0 zu setzen. C.8 LON-Funktionsbausteine =========================== Ab der Version S40 V4.2 wird LON unterstützt. Dazu wurden der Konfigurator Cfg-LON und die Funktionsbausteine INT_REAL, LONSY_I, LONSY_IR; LONSY_O, LONSYKEY, LONSIWI, LONSIWIR, LONSYWO und REAL_INT integriert. Diese Bausteine werden ausschließlich systemintern verwendet. Sie sind deshalb nicht im Handbuch beschrieben. C.9 Topologiekonfigurator =========================== Bei der Projektierung der digitalen Baugruppen PS416-OUT-400 und PS416- OUT-410 im Topologiekonfigurator wird die Byteadresse so voreingestellt, dass es nicht zu Überschneidungen im Adressbereich kommt. Der Anwender hat die Möglichkeit, nachträglich die Byteadressen frei einzustellen. Dadurch besteht die Möglichkeit den Adressbereich beim nachträglichen Löschen bzw. Einfügen von Baugruppen zu korrigieren. Dabei wird aber vom Topologiekonfigurator dann keine Prüfung auf Überschneidungen im Adressbereich mehr vorgenommen. ============================================================== D. Hinweise zu bekannten Fehlern ============================================================== D.1 POE-Editor =============== D.1.1 Drucken unter KOP/FBS Komplexe Netzwerke, die nicht komplett auf eine Druckseite passen, werden auf mehrere Seiten verteilt. Reduzieren Sie zur besseren Übersicht zuerst den Zoomfaktor und drucken Sie dann. D.1.2 Suchen nach Akzenten oder dt. Umlauten Die Suche nach akzentuierten Lauten und deutschen Umlauten erfolgt im Deklarationsteil bei aktivem freien Modus bzw. im Anweisungsteil bei aktivem Textmodus immer unter Beachtung der Groß-/Kleinschreibung, auch wenn die entsprechende Option abgeschaltet ist. So wird z.B. ein Ö nicht gefunden, wenn die Quelle nur ein ö enthält. D.1.3 Kommentare am Ende des Deklarationsteils Kommentarblöcke, die im Deklarationsteil nach dem letzten Deklarationsblock (also nach dem letzten END_VAR oder END_TYPE) eingegeben werden, werden vom Compiler generell als zum Anweisungsteil gehörend interpretiert. Derartige Kommentare werden daher vom POE- Editor beim erneuten Öffnen der POE in den Anweisungsteil verschoben. Solange diese Verschiebung aber noch nicht stattgefunden hat, stimmen Fehlerpositionsangaben i.R. nicht mit der Anzeige im Editor überein. Es wird empfohlen, Kommentare generell nur innerhalb von Deklarationsblöcken zu setzen. D.2 Drucken ============ D.2.1 Druckvorschau In der Druckvorschau entspricht der dargestellte Text nicht immer dem tatsächlichen Druckbild. Bei "mittlerer" Auflösung ist die Darstellung korrekt. D.2.2 Druckvorlagen Die mit der Sucosoft S40 ausgelieferten Formulare und Deckblätter sind für das Drucken im Hochformat bestimmt. Werden diese Vorlagen trotzdem für den Querformatausdruck verwendet, so ist evtl. das Druckbild nicht einwandfrei lesbar. In diesem Fall sollten Sie die Schriftgröße des Formulars bzw. des Deckblatts verkleinern oder eine separate Vorlage im Querformat erzeugen. D.3 Codegenerierung ==================== D.3.1 Geschachtelter Aufruf der SEL-Funktion mit String-Argumenten Die Funktion SEL in Verbindung mit String-Argumenten liefert das Ergebnis nicht direkt im Arbeitsregister, sondern in einem dafür reservierten Speicherbereich zurück. Da dieser Speicherbereich immer derselbe ist, wird bei geschachtelten Aufrufen der SEL-Funktion das Ergebnis des vorhergehenden Aufrufes überschrieben bzw. zerstört! Beispiel: PROGRAM SelTest VAR Text : STRING(100); END_VAR Text := SEL( 1, SEL(1, SEL(0, 'Wort0', 'Wort1'), SEL(0, 'Wort2', 'Wort3')), SEL(1, SEL(0, 'Wort4', 'Wort5'), 'Wort6') ); END_PROGRAM Es wird daher empfohlen, die Ergebnisse derartiger SEL-Aufrufe in Variablen zwischenzuspeichern und diese dann für weitere SEL-Aufrufe zu verwenden. D.4 Navigator ============== D.4.1 Verschachtelte Ablage von Projekten Beim Rücksichern eines Projekts über den Navigator - Menüpunkt "Projekt->Zurücksichern" ist es scheinbar möglich, das Projekt in einem Verzeichnis eines bestehenden Projekts abzulegen. Gleiches gilt auch beim Anlegen eines neuen Projektes. Dies wird vom Navigator derzeit nicht verhindert, obwohl mit dem bestehenden Projekt anschließend nicht mehr weiter gearbeitet werden kann. D.4.2 Import von S30-Quellen Wenn sich in einer S30-Quelle logische und arithmetische Stackoperationen abwechseln, vergisst der Konverter Umsetzfunktionen in den portierten Quelltext einzufügen, wenn beide Operanden des Stackoperators Konstanten sind. S30-Sequenz L KHB70 L 'KHBAA L KHB55 L KHB01 SUB A MUL = 'BYTEVAR Äquivalente S40-Sequenz LD 16#70 MUL (usiM_KHBAA USINT_TO_BYTE AND (16#55 SUB (16#01 ) USINT_TO_BYTE (***) ) BYTE_TO_USINT ) ST usiM_BYTEVAR Die mit (***) markierte Zeile wird vom Konverter derzeit nicht generiert und muss von Hand in die erzeugte S40-Quelle eingetragen werden. Ursache ist die Beschaltung von SUB ausschließlich mit Konstanten. Der Import einer S30-Quelle scheitert, wenn ein Baustein mit einer Parameternachbeschaltung am letzten Ausgang aufgerufen wird: C1 [ ] U: LN M 0.1 AN M 0.5 [ ] D: [ ] S: [ ] R: N M 0.0 [w] I: [ ] Z: [w] Q: MUL KW 20 = MW34 Ändern Sie vor dem Import den Bausteinaufruf dahingehend, dass die Beschaltung in einer separaten Sequenz ausgeführt wird. ============================================================== E Aufstellung behobener Fehler ============================================================== In Version 5.01 sind folgende Fehler behoben worden: E.1 Codegenerierung ==================== Es kommt zum Absturz des SPS-Programms, wenn mit den AWL-Operatoren LDN oder STN auf eine Strukturkomponente zugegriffen wird, die innerhalb der Struktur auf einer ungeraden Adresse liegt. Betroffene Steuerungen: PS4-341 Wird ein Feld mit Elementen vom Typ STRUCT als VAR_IN_OUT-Parameter an einen Baustein übergeben, so kann dort beim Zugriff auf BOOL-Struktur- elemente auf falsche Bereiche innerhalb des Feldes zugegriffen werden. Betroffene Steuerungen: PS4-341 Es kann zum Stacküberlauf auf der SPS kommen, wenn auf Feldelemente mit Indexausdrücken zugegriffen wird. Der Fehler wird bei folgenden Randbedingungen sichtbar: 1) Das Feldelement ist größer als ein Wort, z.B. ARRAY[ ] OF REAL 2) Es wird auf das ARRAY mit einem Indexausdruck zugegriffen, z.B. mit a[i+1] 3) Der gesamte Operand wird in einem Ausdruck verwendet, der noch weitere Operanden enthält, z.B. b + a[i+1] Betroffene Steuerungen: PS416 und PS4-341. Werden in einem Programm versteckte Funktionsbausteine aus Bibliotheken mitverwendet (z.B. Bausteine aus der Regelungstechnik-Toolbox), so werden in der Zustandsanzeige für einzelne Bausteininstanzen falsche Werte angezeigt, obwohl das Programm selbst mit den korrekten Werten arbeitet. Betroffene Steuerungen: PS4-341 E.2 Herstellerbibliotheken =========================== Funktionsbaustein MI4NETK In Extremsituationen kann es zum Stillstand der Kommunikation zwischen der Steuerung und dem MI4-Gerät kommen. Betroffene Steuerungen: PS416 und PS4-341. E.3 Navigator ============== Beim Import eines PS3-Programms, dass Include-Anweisungen enthält, kommt es zum Absturz des Navigators. Aus den T-Operanden der PS316 werden beim Import MS_TimeRising-Aufrufe erzeugt. Allerdings waren die bislang generierten Parameternamen falsch, so dass es in der S40 zu Syntaxfehlern kam. E.4 POE-Editor =============== E.4.1 Beim Wechsel vom Deklarations- in den Anweisungsteil einer POE kann es u.U. zum Absturz des POE-Editors im KOP- oder FBS-Modus kommen. E.4.2 Der POE-Editor generiert im AWL-Modus eine fehlerhafte CAL-Schablone, wenn der aufgerufene Funtionsbaustein keine VAR_INPUT- sondern nur VAR_IN_OUT-Parameter besitzt. E.5 Test & Inbetriebnahme ========================== E.5.1 Wird eine Online-Topologie mit einem LE4-505-BS1 (ASi-Master)in der IST-Konfiguration aufgerufen, erhält man folgende Meldung: "Die aus dem ASI-Master gelesene Ist-Konfiguration ist ungültig." Dieser Fehler tritt dann auf, wenn in der Offline-Konfiguration kein Slave am ASi-Strang eingetragen war. E.5.2 Werden in einem Programm versteckte Funktionsbausteine aus Bibliotheken mitverwendet (z.B. Bausteine aus der Regelungstechnik-Toolbox), so werden in der Zustandsanzeige für einzelne Bausteininstanzen falsche Werte angezeigt, obwohl das Programm selbst mit den korrekten Werten arbeitet. Betroffene Steuerungen: PS4-341 Nach Einspielen des Updates ist eine Neuübersetzung des Programms jedoch kein erneuter Download notwendig. E.5.3 Weiterhin werden nun vom Bibliothekshersteller verwendete unterlagerten Bausteininstanzen nicht mehr in der Test & Inbetriebnahme angezeigt. Damit erhöht sich Übersichtlichkeit bei großen Programmen im Instanzbaum. (alle Steuerungstypen) In Version 5.02 sind folgende Fehler behoben worden: E.1 Codegenerierung ==================== E.1.1 Bei indizierten Operanden der Form StructVar.Feld[InOutFeld[variable]], wobei InOutFeld ein VAR_IN_OUT-Parameter ist, konnte es bei Verwendung weiterer indizierter Operanden innerhalb derselben POE zu fehlerhaftem Maschinencode kommen. Der Fehler tritt sowohl in AWL als auch ST und führt zum Booten der Steuerung ,wobei die Diagnosebits EIL und EOS gesetzt werden. Betroffene Steuerungen: PS416 und PS341-MM1 E.4 POE- Editor =============== E.4.1 Im Syntax gesteuerten Mode des Variablen- Editors Deklaration, wird beim kopieren bzw. einfügen einer kompletten Zeile, am Anfang des Kommentars ein zusätzliches Leerzeichen eingefügt. E.4.2 Befinden sich ein einer POE- Quelle Variablen in deren Namen der Begriff "PROGRAM..." vorkommt, so werden Teile der Variabelendeklaration im POE- Editor falsch dargestellt. Durch Editieren und Speichern wird der Fehler dann auch dauerhaft in die Quelle übernommen. E.4.3 Bei der Betätigung der Taste V (ohne STRG) im Online-Editor kommt es gelegentlich dazu, dass ein Text, der zuvor in der Zwischenablage war, in den Programmcode eingefügt wird. Der eingefügte Text entspricht dabei nicht dem aktuellen Zustand der Zwischenablage, sondern immer dem eines zuvor vorhanden Eintrags. E.4.4 Bei den nachfolgenden Vorgängen im Syntax gesteuerten Mode des Variablen- Editors konnte man nur einmal speichern. Danach musste der POE - Editor geschlossen und wieder geöffnet werden a. Löschvorgang: Nachdem man z.B. im Namensfeld mit der Entf-Taste den Namen entfernt hat, im gleichen Feld bleibt und dann speichert. b. Kopiervorgang: Wenn man z.B. mit der Maus in das Namensfeld klickt, dann mit Strg+v einen Namen hinein kopiert und dann, ohne das Feld zu verlassen, speichert. E.4.5 Wurde beim Ersetzen im Deklarationsteil z. B. "motor" mit "m_motor" ersetzt, wurde hier beim weiter suchen kein Ende gefunden. E.5 Test & Inbetriebnahme ========================== E.5.1 Änderung im Onlineverhalten der Test & Inbetriebnahme: Die Zeit für eine Onlineäderung kann unter Umständen solang sein, dass der Eindruck entsteht das Programm hängt. Dieser Effekt tritt auf, wenn in einem Projekt in einer POE, die sehr häufig instanziiert ist, eine Onlineänderung durchgeführt wird. Bei der nächsten nachfolgenden Onlineänderung wächst die Zeit für die Überprüfung der zuvor Online geänderten POE proportional zur Anzahl der vorhanden Instanzen (pro Instanz wird ca. 1 Sekunde zur Überprüfung benötigt) an. Ab dem Update 5.02 wird die Überprüfung nur einmal für diese POE durchgeführt, sodass immer die gleiche Zeit für eine Onlineänderung benötigt wird. E.5.2 Längenbeschränkung des Instanzpfades: Der Instanzpfad kann 99 Zeichen nicht überschreiten (beschränkt durch Buffergröße in einer Kommunikationsstruktur). Der Pfadname wird benutzerfreundlich aufbereitet, d.h. der Pfadname wird so aufbereitet das in der Mitte ein " \...\ " angezeigt wird. In Version 5.03 sind folgende Fehler behoben worden: E.1 Codegenerierung ==================== E.1.1 Fehlerbehebung bei SEL-Aufruf Bei folgender Sequenz kommt es zum Stacküberlauf auf der SPS. LD boolvar1 and boolvar2 or ( boolvar3 and boolvar2 ) sel dintvar1, dintvar2 st dintvar3 Steht vor dem SEL-Aufruf noch ein ST tritt der Effekt nicht auf. Gleiche Situation auch bei MUX und FIND. Betroffene SPS: PS341 und PS416 E.1.2 Bei Selbstdeklarierten Strukturen werden Bool- Werte in der Onlineanzeige immer mit 0 dargestellt Innerhalb einer Struktur werden Bool-Elemente in der Zustandsanzeige immer mit Wert 0 dargestellt, obwohl sie pogrammtechnisch korrekt verarbeitet werden. Der Fehler ist ab Build 3418 behoben. Ursache war die Ablage des Zustandswerts an einer falschen Bitposition. Zur Korrektur muss das Programm komplett neu übersetzt und transferiert werden. Betroffene SPS: PS4-201 E.1.3 IsBitTrue auf externe DWORD-Variable liefert falsche Ergebnisse Bei folgender Anweisung hat die Variable 'x' immer den Wert 0 (fehlerhafter Maschinencode). var_external g32:dword; end_var var pos:usint:=0; x:bool; end_var g32 := 1; x := IsBitTrue(g32,pos); Der Fehler ist ab Build 3418 behoben. zur Korrektur muss das Programm komplett neu übersetzt und transferiert werden. Betroffene SPS: PS341 und PS416 E.4 POE-Editor =============== E.4.1 Anzeige der Zustandswerte im Online-Editor Wenn man die Anzeige der Zustandswerte ausschaltet werden auch die Werte in der Zustandsspalte gelöscht. E.4.2 Ausrichtung der Zustandswerte im Online-Editor Die Ausrichtung der Zustandswerte in der Anzeige kann in der aktiven Online- POE rechts- oder linksbündig vorgewählt werden. Diese Einstellung bleibt ab dieser Version permanent bis zur erneuten Umstellung des Benutzers erhalten. E.4.3 Suche/Ersetzen Ist der Dialog „Suche/Ersetzen" geöffnet, so kann ab dieser Version, bei geöffneten Dialog, der Deklarations- bzw. Anweisungsteil wieder bedient werden. E.4.4 Arrays mit Initialwerten Beim Umschalten vom freien Mode des Deklarationseditors in den Syntaxgesteuerten Mode werden ab dieser Version auch Arrays mit Initialwerten akzeptiert. E.4.5 FBS -Editor Im FBS -Editor werden die Konstanten "TRUE" und "FALSE" ab dieser Version zu gelassen. E.4.6 Spaltenanpassung -->Automatisch Wird die Option "POE- Editor --> Extras --> Einstellungen -- >Spaltenanpassung -->Automatisch" aktiviert , so ist im Deklarationsteil des POE- Editors ein Scrollen mit der Scrollleiste nach unten wieder möglich. E.4.7 Netzwerkkommentar im FBS - Baustein Wird in einem FBS - Baustein ein Netzwerkkommentar eingegeben , und anschließend in den AWL Modus gewechselt, so bleibt dieser nach erneutem Wechsel in den FBS- Baustein erhalten. E.5 Test & Inbetriebnahme ========================== E.5.1 Transferfunktion auf die Flash-Speicherkarte Steuerung: PS4-341-MM1 Speicher: ZB4-901-SF2 Software: Sucosoft S40 Version 5.02 Betriebssystem: 341_206.osf Bei Programmen, deren Name länger als 8 Zeichen ist, wird die Transferfunktion auf die Flash-Speicherkarte wieder korrekt ausgeführt, wenn man diese direkt mit der Transferfunktion auf die SPS ausführen lässt. Nach einem Kaltstart wird das Programm wieder automatisch von der Flash-Speicherkarte geladen und gestartet, und nicht wie im Fehlerfall das lediglich das Betriebssystem geladen wird und die Steuerung in den Zustand "Ready" geht. E.5.2 Coboxen an PS4-341 S40 über Coboxen an PS4-341 angeschlossen. Wird die Ethernet Verbindung hinter der ersten Cobox aufgetrennt und dann ein Ankoppeln versucht, so scheint die S40 zu stehen. Dem ist nicht so denn: Wird die Test und Inbetriebnahme beendet, während ein Gerät über Ethernet angekoppelt ist, und trennt man dann die Netzwerkverbindung, bevor man die Test und Inbetriebnahme erneut startet, so dauert es etwa 10 Minuten bis man in der Test und Inbetriebnahme weitere Eingabe tätigen kann. Die ersten 5 Minuten sieht man nichts, wenn man im Redirector den Silent Mode aktiviert hat. Ansonsten muss man 10 Verbindungsversuche des Redirectors quittieren. Danach erscheint die Test und Inbetriebnahme Oberfläche, und man wartet erneut 5 Minuten und quittiert gegebenenfalls wieder 10 Verbindungsversuche des Redirectors. Will man ohne Netzanschluss arbeiten, so muss man in der Redirector Oberfläche die betreffenden virtuellen COM Schnittstellen wieder löschen. E.5.3 Anzahl der COM- Schnittstellen von 9 auf 32 hochgesetzt Die alte Beschränkung auf maximal 9 serielle Verbindungen in der Test und Inbetriebnahme ist beseitigt. In der Verbindungsliste werden nun maximal 32 serielle Schnittstellen (COM1 bis COM32) unterstützt, die für die Programmierung von bis zu 32 verschiedenen SPSen bereit stehen. Voraussetzung ist natürlich, dass diese Schnittstellen physikalisch und logisch korrekt eingerichtet sind. Es dürfen keine Lücken in der Liste der Schnittstellen auftreten, der Form, dass z. B. COM3 vorhanden ist, COM4 hingegen nicht, und dann COM5 wieder vorhanden. Die Verbindungsliste würde in diesem Fall nur die Verbindungen COM1 bis COM3 erkennen. In Version 5.05 sind folgende Fehler behoben worden: E.1 Codegenerierung ==================== E.1.1 Fehler bei der Initialwertberechnung und bei der Doppelbelegungsprüfung behoben. Für Bool'sche AT% -Variablen wurde fälschlich das ganze Byte als belegt angesehen, so dass weitere Bool'sche Variablen innerhalb desselben Bytes nicht mehr korrekt initialisiert wurden. Betroffene Steuerungen: PS4-200 E.1.2 Werden SFC-Bausteine im Programm global deklariert und aufgerufen, kann es zum HALT der Anwendung kommen, wenn die übrigen Deklarationen das globale Datenfeld auf über 16000 Bytes anwachsen lässt. Bei Schrittketten mit einer Länger größer 16 wurde die Schrittanzahl falsch in den Baustein eingetragen, so dass die Laufzeitprüfung der aktuellen Schrittnummer im Baustein nicht mehr zuverlässig funktionierte. Betroffene Steuerungen: PS4-341 E.1.3 Zugriff auf Feldelemente mit einem berechneten Indexausdruck unter Strukturiertem Text: Bei Operanden der Form a[i+1] wurde fehlerhafter Code generiert, wenn i vom Datentyp USINT und SINT war. Das konnte eine Laufzeitfehler-Meldung "Indexüberschreitung" zur Folge haben, wenn zuvor Operationen mit größeren Datentypen ausgeführt worden sind. Betroffene Steuerungen: PS416 und PS4-341 E.1.4 Absturz des SPS-Programms bei direkter Zuweisung von FB-Ausgängen an indizierte Feldelemente. Bei FB-Aufrufen der Form CAL myFB( a[i] := out_para1, b[j] := out_para2, c[k] := out_para3 ) kam es aufgrund eines fehlerhaften Maschinencodes zum Absturz des SPS-Programms. Der Fehler trat nicht auf, wenn die Zuweisungen außerhalb des CAL-Befehls erfolgten ( wird als Workaround für ältere S40-Versionen empfohlen ) oder wenn es sich um direkte Zuweisungen an FB-Eingängen handelte. E.1.5 Bei Variablendeklarationen in der Form variable AT %MB0.0.0.0 : INT(10..30); konnte es bei der Übersetzung zu einem Absturz der S40 kommen. Es werden jetzt auch Variablen mit einem eingeschränkten Wertebereich brücksichtigt. Betroffene Steuerungen: PS4-200 E.2 Test & Inbetriebnahme ========================== E.2.1 Absturz in der Test & Inbetriebnahme, wenn in der Liste des Variablenfensters noch ungültige Einträge aus früheren Sitzungen vorhanden waren, z.B. wenn FB- Instanzen im Programm nicht mehr vorhanden sind. Die Test & Inbetriebnahme überprüft jetzt exakter die vorhandenen Einträge und löscht diese, wenn sie nicht mehr gültig sind. E.2.2 Zustandsanzeigefehler bei VAR_IN_OUT-Parametern vom Typ BOOL Die in der Zustandsanzeige dargestellten Werte entsprachen nicht dem tatsächlichen Variablenwert. Nach Einspielen des Sucosoft-Updates müssen davon betroffene Programme neu übersetzt werden, um die Symbolinformationen des Programms zu korrigieren. Ein Programmtransfer ist nicht notwendig. Betroffene Steuerungen: PS4-341 E.2.3 Wiederanlaufverhalten nach Übertragung von SPS auf Speicherkarte Überträgt man ein Programm für PS341 von SPS auf eine Speicherkarte und und startet danach die SPS neu, so wird das Betriebsystem von der Speicherkarte z. B. ZB4-901-SF2 geladen und das Programm von Speicherkarte geladen. E.3 Topologiekonfigurator ========================== E.3.1 Der Betrieb der lokalen Erweiterungen LE4-206-AA1, LE4-622-CX1, LE4-633-CX1 auf den Modulposition 3 oder 4 funktioniert im Regelfall nicht. Daher wurden für diese Module die Positionen wieder wie in S40 V4.x und V5.00 gesperrt. ============================================================== F Allgemeine Hinweise ============================================================== F.1 Schutzverletzungen ======================= Ist eine Schutzverletzung in der S40 aufgetreten, so ist in der Regel davon auszugehen, dass fehlerfreies Weiterarbeiten nicht mehr möglich ist. Beenden Sie über den Windows-Task-Manager alle aufgeführten S40- Programme, den Navigator zuletzt. Kommt es nach einem Neustart der S40 zu weiteren Fehlern, sollten Sie einen Neustart von Windows und eine Konsistenzprüfung des Datenträgers durchführen. F.2 Speichermangel auf Datenträger =================================== Kommt es während der Arbeit mit der Sucosoft S40 zu nicht direkt erklärbaren Fehlermeldungen, (z. B.: Interner Fehler: Die Fehlerprotokolldatei konnte nicht geöffnet werden), kann das unter Umständen daran liegen, dass auf dem Datenträger (z. B. Festplatte) oder im temporären Verzeichnis nicht mehr genügend Speicher vorhanden ist. F.3 Einflüsse von Virenschutzprogrammen ======================================== Viele Virenschutzprogramme laufen permanent im Hintergrund und haben die Eigenschaft, nach jeder Dateioperation die betroffenen Dateien auf Viren zu überprüfen. Deshalb kann es bei verschiedenen Aktionen in der Sucosoft zu einer erheblichen Verlangsamung des Programmablaufs kommen. Es wird deshalb empfohlen, derartige Programme während der Arbeit mit der Sucosoft abzuschalten. Die Deinstallation ist nicht notwendig. ============================================================== Ende der Datei ==============================================================