Erstellte Rezepttypen und Rezepte

Wenn das NuGet-Paket RecipeHelper bei der ersten Initialisierung in ein TwinCAT-HMI-Projekt eingebunden wird, erstellt es automatisch Objekte wie Rezepttypen, Rezepte und Serversymbole, die im Projekt für seine Funktionen benötigt werden.

Die neu hinzugefügten Objekte sind unten aufgeführt.

Serversymbole:

  1. LastActivatedRecipe: Hierbei handelt es sich um ein Serversymbol vom Typ String, in dem der Name des Rezepts gespeichert wird, das zuletzt auf dem Server aktiviert wurde.
  2. RecipeLastUpdatedTime: Dieses Symbol speichert Datum und Uhrzeit in einem String-Format, wenn ein Rezept geändert wird. Dieses Symbol wird zu jedem Produktrezept hinzugefügt.
  3. UnsavedChangesInActRecipe: Dieses boolesche Symbol ist TRUE, wenn es im aktiven temporären Rezept letzte Änderungen gibt, die noch nicht im Originalrezept gespeichert sind.
  4. PLC_HMI_Handshake_State: Dieses Integer-Symbol wird aktualisiert, wenn die RecipeHelper-State-Machine die Handshake-Kommunikation mit der SPS verarbeitet. Der Status der Kommunikation ist eine wichtige Information, um zu verhindern, dass während eines ungültigen Status falsche Daten in das Rezept eingegeben werden.

Rezepttypen und Rezepte:

  1. ActRcpDataType: Dies ist der Rezepttyp für Standardproduktrezepte. Bei der Erstellung dieses Rezepttyps gibt es nur eine Variable, nämlich RecipeLastUpdatedTime, als Member.
  2. Der RecipeHelper erstellt auch eine Rezeptinstanz dieses Typs mit dem Namen ActRcpData. Diese fungiert als das Rezept, das immer als aktuelles Rezept funktioniert und alle Änderungen am ursprünglichen Rezept speichert.

Distributed-Recipe-Struktur:

Seit Version 12.14.0 unterstützt das NuGet-Paket RecipeHelper eine strukturierte Rezeptkonfiguration.

Jedes Framework-Control hat das Attribut RecipeTypeName, mit dem ein Benutzer einzelne Rezepttypen auswählen kann, um bestimmte Variablen zusammenzufassen.

Jeder dieser Rezepttypen wird erstellt und im Rezepttypenordner ActRcpDataTypeFolder gespeichert. Wenn ein Symbol nicht Teil eines anderen bestehenden Rezepttyps ist, fügt das Control es zum Rezepttyp hinzu, der durch das Attribut RecipeTypeName vorgegeben ist.

Jeder Unterrezepttyp innerhalb von ActRcpDataTypeFolder hat sein Instanzrezept für jedes Produkt unter einem Rezeptordner {PODUCTNAME}Folder. Zum Beispiel werden die Unterrezepte von ActRcpData innerhalb von ActRcpDataFolder gespeichert.

Während der Aktivierung, des Exports und des Imports werden alle Unterrezepte durch das RecipeHelper NuGet-Paket verarbeitet.

Die Teach-Operation wird nur für einzelne Unterrezepte durchgeführt, die von Änderungen der Servervariablen betroffen sind.