Häufige Fehler (FAQ)

| ALPHA-VISION® SoftPlc7

# Häufige Fehler (FAQ)

### Frage: Warum werden die Einstellungen in der SoftPlc7.ini-Datei nicht wirksam?

Wenn beim Aufruf der SoftPlc7 kein Kommandozeilenparameter "/ini=<Dateiname>.ini" angegeben wurde, wird immer eine Datei "SoftPlc7.ini" im selben Verzeichnis wie die SoftPlc7.exe-Datei gesucht. Befindet sich dort keine solche Datei, werden Standardwerte als Parameter gewählt. Ob die selbst erstellte INI-Datei geladen wird, kann z.B. anhand der Instanznummer überprüft werden: Der Fenstername des Panel lautet immer "<Instanznummer> SoftPlc7 - <Projektverzeichnis>".

### Frage: Bei Programmstart erscheint die Fehlermeldung "Es wurden keine Bausteine gefunden. Ein leeres Projekt mit einem leeren OB1 wird erzeugt." Was bedeutet die Meldung?

Sie haben ein Verzeichnis ausgewählt, in dem sich keine Bausteindateien *.bin und *.dat befinden. Die Meldung kann ignoriert werden, wenn das STEP7-Projekt über die PG-Schnittstelle heruntergeladen werden soll. Währenddessen werden dann die erforderlichen Dateien erzeugt. Bei größeren Projekten ist allerdings dringend die TCP/IP-Schnittstelle anzuraten, um die Ladezeit zu verkürzen. Der schnellste Weg, ein SoftPlc7-Projekt anzulegen, ist allerdings, den Offline-Ordner des Original-STEP7-Programms mit der SoftPlc7 zu konvertieren.

### Frage: Wie findet man heraus, welcher Offline-Ordner zu einem bestimmten STEP7-Programm gehört?

Öffnen Sie im SIMATIC Manager einen beliebigen Baustein, der in der Sprache AWL erstellt wurde, und fügen im Code eine Leerzeile hinzu und speichern das Projekt. Anschließend muss im Windows-Explorer nur noch nach der momentanen Uhrzeit gesucht werden. Der Offline-Ordner mit dem jüngsten Datum/Uhrzeit speichert die Daten für das ausgewählte STEP7-Programm.
Bei einem SIMATIC-Projekt mit mehreren STEP7-Programmen empfiehlt es sich auch, über TCP/IP das Programm in die SoftPlc7 zu laden.

### Frage: Es kann keine Verbindung vom PG zur SoftPlc7 hergestellt werden. Welche Einstellungen fehlen?

Um eine Verbindung herzustellen, muss in der SoftPlc7 zunächst eine Schnittstelle (MPI oder TCP/IP) ausgewählt und das Häkchen vor "Verbindung aktiv" gesetzt werden. Dieselbe Schnittstelle muss auch im PG, z.B. im SIMATIC Manager, angegeben werden. Beachten Sie, dass dort entweder "PC Adapter (MPI)" oder "TCP/IP -> <Name>" angegeben werden muss.
Wenn immer noch keine Verbindung möglich ist, stimmt vielleicht die in der SoftPlc7 angegebene IP-Adresse nicht, wählen Sie "0.0.0.0".
Voraussetzung für das Debuggen über TCP/IP ist auch, dass im Originalprojekt eine TCP/IP-fähige CP (Communication Processor) projektiert ist. Falls diese fehlt, fügen Sie eine CP 443-1 hinzu und stellen eine am Rechner der SoftPlc7 gültige IP-Adresse ein.

### Frage: Alle Einstellungen in der SoftPlc7.ini-Datei sind richtig, aber das Programm geht nach kurzer Zeit in den STOP-Zustand. Was bedeutet das?

Wenn der Indikator INTF im Panel rot gefärbt ist, liegt ein STEP7-Fehler vor. Es wurde vielleicht versucht, aus einem Datenbaustein zu lesen, der (noch) gar nicht existiert. Überprüfen Sie, welche Anlaufarten für Ihr STEP7-Programm vorgesehen sind. Manchmal werden in den Anlauf-OBs (OB100-OB102) Datenbausteine erzeugt. Welcher OB beim Start ausgeführt wird, ist durch die Anlaufart bestimmt. Diese können Sie über Menüpunkte unter "Extras" festlegen. Falls die CPU in jedem Fall Stoppt, kann der Testbetrieb eingeschaltet werden (Strg+T). Es wird dann der zuletzt bearbeitete Baustein angezeigt. Setzen Sie vor die hervorgehobene Assembler-Anweisung einen Haltepunkt (F9) und starten das Programm erneut. Die CPU geht dann vor der Anweisung, die zum Fehler führt, in den Haltezustand. Anhand der Werte im Listenfenster kann manchmal auf die Fehlerursache geschlossen werden.
Möglicherweise werden auch Systembausteine verwendet, die von der SoftPlc7 noch nicht unterstützt werden: Gehen Sie in den Aufrufanalyse-Dialog (Strg+A) und dann im linken Fenster ganz nach unten. Alle SFB und SFC, die nicht in Klammern stehen, müssen fett dargestellt sein. Ansonsten werden eventuelle Aufrufe dieser Systembausteine nicht durch ein Äquivalent in einer Hochsprachen-DLL ersetzt. Es kann auch sein, dass die SFC51 mit einer noch nicht unterstützten SZL-ID aufgerufen wird. Dies muss im Einzelfall überprüft werden.
Etwaige Hinweise im Aufrufanalyse-Dialog deuten auch darauf hin, dass Bausteine fehlen. Es empfiehlt sich auch dringend, die Konsistenzprüfung laufen zu lassen (Strg+K).

### Frage: Welche Einstellungen müssen vorgenommen werden, damit der SoftPlc7OPCServer richtig funktioniert?

Zunächst muss das Programm registriert werden. Das erreichen Sie etwa über die Kommandozeile "SoftPlc7OPCServer.exe -regserver". Alternativ kann auf dem Desktop eine Verknüpfung erzeugt werden und ein entsprechender Parameter "-regserver" eingetragen werden. Nach Ausführung des Programms wird dieses beendet, und der Server ist registriert.
Für den Abgleich zwischen SoftPlc7 und SoftPlc7OPCServer muss in der SoftPlc7.ini-Datei in der Sektion [HLL-Functions] der Eintrag "PY0,0=SoftPlc7OPCServerDll,DoDataExchangeUDP" gemacht werden. Er sorgt dafür, dass die SoftPlc7 zyklisch die aktuellen Werte der angeforderten OPC-Items an den SoftPlc7OPCServer schickt. Wenn immer noch keine Werte im OPC-Client aktualisiert werden, wählen Sie als Datenformat den Typ kanonisch. Es werden nämlich nur die Datentypen unsigned 8Bit, signed 16Bit, signed 32Bit und real unterstützt, die Gründe dafür liegen in der MFC. Über den Workaround können allerdings auch andere Datentypen verwendet werden.

### Frage: Wieso werden im Debug-Panel die Operanden-Bereiche L, DB und DI immer leer dargestellt?

Für die drei Operanden-Bereiche ist immer ein spezieller Kontext, d.h. eine Assembler-Anweisung nötig. Wenn die CPU im sich im RUN-Zustand befindet, werden die Operanden im Debug-Panel zwischen den OB1-Zyklen aktualisiert, dann stehen aber keine Lokaldaten und keine aufgeschlagenen Datenbausteine mehr zur Verfügung. Nur im Haltezustand können sinnvolle Werte angezeigt werden. Die CPU kann in den Haltezustand überführt werden, indem man im Testmodus an einer Stelle im Code einen Haltepunkt (F9) setzt.

### Frage: Wie findet man am schnellsten die Stelle im STEP7-Programm, an der sich der Wert eines Operanden ändert?

Angenommen, der Wert des zehnten Bytes im Datenbaustein DB100 soll konstant bleiben, aber am Ende eines OB hat sich der Wert geändert. Klicken Sie im Testbetrieb auf die Spalte "Operand" oder wählen den Menüpunkt "Extras->Operand..." und geben "DB100.DBB10" ein. Starten Sie die CPU und suchen die Stelle, wo sich der Wert in der umbenannten Spalte ändert. Entweder die gesuchte Anweisung ist schon ersichtlich, oder der Wert ändert sich innerhalb eines Baustein-Aufrufs. Im letzten Fall setzen Sie dort einen Haltepunkt (F9), löschen diesen im Haltezustand wieder (F9) und setzen den Programmlauf im aufgerufenen Baustein fort (F11 und danach F5). Verfahren Sie nun wie im vorherigen Baustein.
Alternativ können Sie einen bedingten Haltepunkt definieren: Wählen Sie im Testbetrieb den Menüpunkt "Extras->Bedingte Haltepunkte...", drücken die Taste "Neu" und geben eine Bedingung ein. Drücken Sie danach die Tasten "Übernehmen" und "OK". Die CPU geht in den Haltezustand, sobald die eingegebene Bedingung vor Ausführung einer Assembler-Anweisung erfüllt ist. Gleichzeitig wird eine Meldung mit der Bedingung ausgegeben.

### Frage: Beim Download eines STEP7-Programms in die SoftPlc7 erscheint die Meldung, dass nicht genügend Speicher auf der Memory Card frei ist. Was bedeutet das?

Diese Meldung kann ignoriert werden, da die SoftPlc7 intern anders organisiert ist.