Benutzerdefinierte Funktionen

FactoryTalk Design Workbench
unterstützt das Erstellen und Verwalten von benutzerdefinierten Funktionen (BDF) zur Wiederverwendung von Programmlogiken und zur besseren Lesbarkeit des Programms. Verwenden Sie eine BDF für einfache Berechnungen, die nur eine Ausgabe erfordern.
BDFs können nicht auf die lokalen Variablen im aufrufenden Programm zugreifen. Die lokalen Variablen im aufrufenden Programm müssen als Eingabeparameter an die BDF übergeben werden.
WICHTIG:
Ein benutzerdefinierter Eingabeparameter kann BDFs weder aktivieren noch deaktivieren, da der Eingabeparameter nur die Anweisungen innerhalb der BDF aktiviert oder deaktiviert.
Um eine BDF zu aktivieren oder zu deaktivieren, aktivieren oder deaktivieren Sie
EN/ENO
im Bereich
Eigenschaften
.
Wenn
EN/ENO
deaktiviert wird, wird der BDF nicht ausgeführt, und die Ausgangsparameter werden nicht überschrieben.
Wenn eine BDF mehrmals pro Programmabtastung ausgeführt wird, sollten Sie keine Anweisungen verwenden, die mehr als eine Programmabtastung erfordern, wie z. B. Timer-, Bewegungs-, Meldungs- oder Zähleranweisungen. Diese Anweisungen behalten die Zustände zwischen Programmabtastungen bei.

Verwenden von BDFs anstelle von benutzerdefinierten Funktionsblöcken (BDFB)

  • Für einfache Berechnungen, die nur eine Ausgabe erfordern, wie z. B.
    Y=MX+B.
    .
  • Für statusfreie Anweisungen, die keine Speicherung der lokalen Variablenwerte von Ausführung zu Ausführung erfordern, wie z. B. SIN.
  • Wenn der Ausgabeparameter keinen Array- oder Struktur-Datentyp erfordert.
  • Wann immer möglich, da eine BDF weniger Arbeitsspeicher belegt.
    Wenn mehrere Instanzen erforderlich sind, verbraucht die Verwendung eines BDFB möglicherweise weniger Arbeitsspeicher als eine BDF, da ein BDFB nicht im Programm vorhanden ist, bis er als Variable instanziiert wird.

Einen BDFB statt einer BDF verwenden

  • Für komplexe Berechnungen mit mehreren Ausgaben.
  • Wenn das Speichern der lokalen Variablenwerte von Ausführung zu Ausführung erforderlich ist (speichert den Zustand).
  • Wenn mehrere Instanzen erforderlich sind. Die Verwendung eines BDFBs verbraucht möglicherweise weniger Arbeitsspeicher als eine BDF, da ein BDFB in einem Projekt nicht in einem Programm vorhanden ist, bis er als Variable instanziiert wird.
  • Wenn der Ausgabeparameter einen Array- oder Struktur-Datentyp erfordert.
  • Wenn mehr als eine Meldung gleichzeitig gesendet wird.
    Enthält eine BDF eine Nachrichtenanweisung, wie z. B. MSG_CIPGENERIC, sendet die BDF jeweils nur eine Nachricht, selbst wenn die BDF mehrmals pro Programm-Scan aufgerufen wird.

Beachten Sie bei der Verwendung von BDFs die folgenden bewährten Methoden

  • Verwenden Sie Datenkapselung.
    BDFs können auf globale Variablen zugreifen. Der Zugriff auf globale Variablen über einen BDFB wird nicht empfohlen.
  • Bevor Sie eine BDF mehrmals in Ihrem Projekt aufrufen, debuggen Sie das BDF-Programm, da:
    • Eine Überwachung der Logik einer BDF schwierig ist, wenn sie mehrmals aufgerufen wird.
    • Die Überwachung einer BDF, die von einem Interrupt-Programm aufgerufen wird, wird nicht unterstützt.
  • Initialisieren Sie lokale Variablen bei jeder Ausführung.
    Standardmäßig werden lokale Variablen in einem BDF-Programm nicht bei jedem Aufruf der BDF neu initialisiert. Da mehrere Instanzen für BDFs nicht unterstützt werden, wird die Initialisierung der lokalen BDF-Variablen bei jeder Ausführung mit den Eingabeparametern oder einer Konstante empfohlen.
Rückmeldung geben
Haben Sie Fragen oder Feedback zu dieser Dokumentation? Bitte geben Sie hier Ihr Feedback ab.
Normal