FC_UpdateCmdTableListElement – Allgemeine Informationen

Übersicht

Typ

Funktion

Verfügbar ab

V1.0.4.0

Aufgabe

Den Zeiger einer Befehlstabelle innerhalb einer Befehlstabellenliste aktualisieren, um den Zugriff zum Online-Change sicher zu gestalten

Beschreibung

Die Funktion sucht in der Liste der Befehlstabellen i_pstListofCmdTables von 1 bis i_diCmd nach dem Befehl i_udiNumberofCmdTables und aktualisiert in der Liste i_pstListofCmdTables den Zeiger der Befehlstabelle mit i_pstCmdTable.

HINWEIS: Die Funktion muss in jedem Programmzyklus vor der Verwendung der Befehlstabelle aufgerufen werden.

Durch einen Online-Change kann sich die Position der Befehlstabelle im Speicher verschieben. Wenn der Zeiger auf diese Befehlstabelle nicht aktualisiert wird, werden falsche Befehle gelesen, sodass die Maschine unerwartetes Verhalten zeigt.

Schnittstelle

Eingang

Datentyp

Beschreibung

i_pstListofCmdTables

POINTER TO ST_CmdTable

Die Liste der Befehlstabellen des Equipmentmoduls.

i_udiNumberOfCmdTables

UDINT

Die Anzahl der Befehlstabellen in der Liste am Eingang i_pstListofCmdTables.

i_diCmd

DINT

Der Befehl für die Befehlstabelle, die aktualisiert werden soll.

i_pstCmdTable

POINTER TO ST_Cmd

Der Zeiger auf die Befehlstabelle.

Ausgang

Datentyp

Beschreibung

q_etDiag

GD.ET_Diag

Allgemeingültige, bibliotheksunabhängige Aussage zur Diagnose.

Ein Wert ungleich ET_Diag.Ok entspricht einer Fehlermeldung.

q_etDiagExt

ET_DiagExt

POU-spezifischer Ausgang des Diagnosegeräts.

q_etDiag = ET_Diag.Ok -> Statusmeldung

q_etDiag <> ET_Diag.Ok -> Fehlermeldung

Diagnosemeldungen

q_etDiag

q_etDiagExt

Aufzählungswert

Beschreibung

OK

Ok

0

OK

InputParameterInvalid

CmdRange

35

Ein Befehl ist außerhalb des gültigen Bereichs.

InputParameterInvalid

NumberOfCmdTablesRange

34

Die Anzahl der Befehlstabellen ist außerhalb des gültigen Bereichs.

InputParameterInvalid

PointerCmdTableInvalid

36

Der Zeiger auf CmdTable ist ungültig.

InputParameterInvalid

PointerListOfCmdTablesInvalid

33

Der Zeiger auf ListOfCmdTables ist ungültig.

CmdRange

Aufzählungsname:

CmdRange

Aufzählungswert:

35

Beschreibung:

Ein Befehl ist außerhalb des gültigen Bereichs.

Problem

Ursache

Lösung

-

Am Eingang i_diCmd wurde ein Wert <= 0 angelegt.

Stellen Sie sicher, dass am Eingang i_diCmd ein positiver Wert entsprechend dem Befehl der zu aktualisierenden Tabelle übergeben wird.

NumberOfCmdTablesRange

Aufzählungsname:

NumberOfCmdTablesRange

Aufzählungswert:

34

Beschreibung:

Die Anzahl der Befehlstabellen ist außerhalb des gültigen Bereichs.

Problem

Ursache

Lösung

-

Am Eingang i_udiNumberOfCmdTables wurde ein Wert <= 0 angelegt.

Stellen Sie sicher, dass am Eingang i_udiNumberOfCmdTables ein positiver Wert entsprechend der Anzahl der Befehlstabellen in der Liste am Eingang i_pstListOfCmdTables übergeben wird.

Ok

Aufzählungsname:

Ok

Aufzählungswert:

0

Beschreibung:

OK

Der Zeiger wurde erfolgreich aktualisiert.

PointerCmdTableInvalid

Aufzählungsname:

PointerCmdTableInvalid

Aufzählungswert:

36

Beschreibung:

Der Zeiger auf CmdTable ist ungültig.

Problem

Ursache

Lösung

-

Am Eingang i_pstCmdTable wurde ein nicht initialisierter Zeiger (0) übergeben.

Stellen Sie sicher, dass am Eingang i_pstCmdTable ein Wert größer 0 übergeben wird, der der Adresse der Liste von Befehlstabellen entspricht, die aktualisiert werden soll.

PointerListOfCmdTablesInvalid

Aufzählungsname:

PointerListOfCmdTablesInvalid

Aufzählungswert:

33

Beschreibung:

Der Zeiger auf ListOfCmdTables ist ungültig.

Problem

Ursache

Lösung

-

Am Eingang i_pstListofCMDTables wurde ein nicht initialisierter Zeiger (0) übergeben.

Stellen Sie sicher, dass am Eingang i_pstListofCMDTables ein Wert größer 0 übergeben wird, der der Adresse der Liste von Befehlstabellen entspricht, die aktualisiert werden soll.