Funktionsbausteine

Die SPS Bibliothek Tc3_IPCDiag bietet Funktionsbausteine, um IPC Diagnose Parameter auszulesen sowie zu setzen. Die zur Verfügung stehenden Parameter sind in der Enumeration E_IPCDiag_ParameterKey gelistet.

Bevor auf einen Parameter zugegriffen werden kann, müssen die auf dem IPC zur Verfügung stehenden IPC Diagnose Module erfasst werden. Dazu wird der Baustein FB_IPCDiag_Register genutzt. Dieser Baustein muss im Folgenden nicht mehr aufgerufen werden.

Alle Funktionsbausteine werden mit einer positiven Flanke am Eingang bExecute aufgerufen. Danach liefert zyklisches Aufrufen des Funktionsbausteins (bExecute = FALSE) das Ergebnis der Abfrage am Ausgang, sobald die Bearbeitung der Abfrage abgeschlossen ist (bBusy = FALSE). Jeder Funktionsbaustein muss solange aufgerufen werden (bExecute = FALSE), bis die interne Bearbeitung abgeschlossen (bBusy = FALSE) ist. Währenddessen alle Eingänge des Funktionsbausteins unverändert lassen.

Parameter auslesen

Parameter werden mit dem Baustein FB_IPCDiag_ReadParameter ausgelesen. Wenn der Bausteinrumpf aufgerufen wird, wird der Parameter aus dem Gesamtsystem in die SPS gelesen. Parameter, die mehrfach vorhanden sein können (z.B. IP-Adressen), werden allesamt in dem einen Aufruf gelesen. Dies geschieht asynchron, so dass der Bausteinrumpf solange aufgerufen werden muss, bis der Vorgang abgeschlossen ist und gültige Parameterwerte vorliegen.
Über dessen Methode GetParameter() wird der Parameter daraufhin einer SPS-Variablen zugewiesen. Es können mehrfach vorhandene Parameter auf einmal einem Array zugewiesen werden (mit GetParameter() bzw. GetParameterStrings()) oder gezielt einzeln zugewiesen werden (mit GetParameterByIdx()).

Ist ein periodisches Auslesen eines Parameters gewünscht, so steht der Baustein FB_IPCDiag_ReadParameterPeriodic zur Verfügung.

Parameter setzen

Parameter werden mit dem Baustein FB_IPCDiag_WriteParameter geschrieben. Wenn der Bausteinrumpf aufgerufen wird, wird der Parameter von der SPS in das Gesamtsystem geschrieben. Mit diesem ebenfalls asynchronen Aufruf wird jeweils ein einziger Parameter gesetzt. Bei potenziell mehrfach vorhandenen Parametern muss explizit der gewünschte Parameter über die Bausteineingänge ausgewählt werden.

Weitere Programmierhinweise können Sie den Beispielen entnehmen.

Funktionsbausteine 1:

Eingeschränkter Zugriff zum Zeitpunkt des Systemstarts

MDP bildet eine Schnittstelle zur Hardware. Diese ist unabhängig von TwinCAT. Mit der SPS Bibliothek kann aus TwinCAT heraus auf MDP zugegriffen werden. Dies geschieht intern mittels ADS Kommunikation. Die Vielseitigkeit der Hardwarekonfiguration begründet eine unterschiedlich lange Initialisierungsphase des MDP Dienstes. Es ist möglich, dass erste SPS Zyklen ausgeführt werden während die MDP Initialisierung noch nicht abgeschlossen ist.
Entweder kann auf die möglichen Fehlerausgaben sowie Timeouts der Funktionsbausteine aus der Bibliothek reagiert werden und eine erneute Abfrage getriggert werden oder die Abfragen werden bewusst verzögert nach dem Systemstart ausgeführt.
Es wird empfohlen im SPS-Programm nicht sofort nach dem Systemstart Werte aus dem MDP abzufragen, sondern eine kleine Wartezeit zu berücksichtigen. Wie groß diese sein sollte, hängt von verschiedenen Parametern (wie der Performance Ihres Steuerungsrechners) ab, und kann daher nicht pauschal angegeben werden. Typischerweise liegt sie im Bereich von 10-60 Sekunden.