Skip to main content

Funktion RIGHT testen und Fehler ermitteln

Das Beispiel zeigt die Prüfung der Stringfunktion RIGHT der Bibliothek Standard. Der Testcode wird mit einer Testtabelle konfiguriert.

Mit Testtabellen können Sie nur Funktionsbausteine testen. Um eine Funktion zu testen, implementieren Sie einen Wrapper-Funktionsbaustein: Sie implementieren einen Funktionsbaustein, der diese Funktion aufruft und die Eingänge und Ausgänge der Funktion abbildet und diese 1:1 an die Funktion durchreicht. Wenn dann der Wrapper-Funktionsbaustein der Prüfling ist, wird indirekt die Funktion getestet.

Prüfprojekt erstellen

  1. Erstellen Sie mit dem Projektassistenten ein neues Standardprojekt Project_RIGHT für die vorhandene Steuerung.

    Das Projekt ist mit Applikation, Programm PLC_PRG und Gerät erstellt.

  2. Selektieren Sie das Objekt Applikation im Gerätebaum.

  3. Wählen Sie den Befehl Projekt → Objekt hinzufügen.

  4. Wählen Sie das Objekt POU aus.

    Der Dialog POU hinzufügen öffnet sich.

  5. Geben Sie den Namen FB_RIGHT ein.

    Wählen Sie den Typ Funktionsbaustein und die Implementierungssprache Strukturierter Text (ST).

    Klicken Sie auf Hinzufügen.

    Der Funktionsbaustein ist erstellt.

  6. Geben Sie im Funktionsbaustein FB_RIGHT folgende Deklaration ein:

    VAR_INPUT
    strCompleteString : STRING(255);
    iSize: INT;
    END_VAR
    VAR_OUTPUT
    strResult : STRING (255);
    END_VAR

    Geben Sie im Funktionsbaustein FB_RIGHT folgende Implementierung ein:

    strResult := right(strCompleteString,iSize);

    Der Prüfling ist erstellt. Der Wrapper-Funktionsbaustein ruft die zu testende Funktion auf. Die Eingänge und Ausgänge werden durchgereicht.

Testtabelle erstellen

  1. Selektieren Sie das Objekt Applikation im Gerätebaum.

  2. Wählen Sie den Befehl Projekt → Objekt hinzufügen.

  3. Wählen Sie das Objekt Testtabelle aus.

    Der Dialog Testtabelle hinzufügen öffnet sich.

  4. Geben Sie den Namen TestTable_RIGHT ein.

  5. Wählen Sie einen Prüfling. Klicken Sie dazu auf die Schaltfläche _cds_icon_three_dots.png.

  6. Wählen Sie den Baustein FB_RIGHT aus.

  7. Klicken Sie auf die Schaltfläche Prüfling durchsuchen.

    Eine Liste aller Eingänge und Ausgänge des Funktionsbausteins erscheint.

  8. Aktivieren Sie alle Eingänge und alle Ausgänge.

    Die aktivierten Variablen werden automatisch in der Testtabelle in der Registerkarte Tabelleneditor als Spalten eingefügt.

  9. Klicken Sie auf die Schaltfläche Hinzufügen.

    Die Testtabelle wird unterhalb der Applikation eingefügt. Es fehlen die Eingangs- und Ausgangsbelegungen.

Testtabelle konfigurieren

  1. Wählen Sie die Registerkarte Tabelleneditor.

  2. Selektieren Sie die Zeile <Zum Erzeugen eines Testfalls hier tippen> und geben Sie den Namen TC 1: empty string ein.

  3. Selektieren Sie die Zeile <Zum Erzeugen eines Testschritts editieren> und geben Sie den Namen Test 1 ein.

  4. Geben Sie folgende Daten in die Testtabelle ein:

    tm_img_testtable.png

    Test 1: Der Testschritt ermittelt aus einem leeren String die letzten zwei Zeichen. Das Ergebnis ist ebenfalls ein leerer String. Diese Prüfung liefert ein positives Ergebnis.

    Test 2: Der Testschritt ermittelt aus dem String 'hello world' die letzten 5 Zeichen. Das Ergebnis ist 'world'. Diese Prüfung liefert ein positives Ergebnis.

    Test 3: Der Testschritt ermittelt aus dem String 'hello world' die letzten 8 Zeichen. Das Ergebnis ist 'lo world'. Diese Prüfung liefert ein negatives Ergebnis.

IEC-Unittest ausführen

Tipp

Der Testablauf, der im Testskript erstellt ist, beinhaltet vor Aufruf eines IEC-Unittests immer auch vorbereitende Testaktionen. Ein Beispiel dazu zeigt das Skript ApplicationTest, das mit dem Package installiert wird. Dort sind die vorbereitenden Testaktionen im Testfall Prepare zusammengefasst.

  1. Erstellen Sie ein neues Testskript.

  2. Führen Sie den Befehl Tools → Testmanager aus.

    Die Ansicht Test Manager öffnet sich.

  3. Selektieren Sie den Eintrag Testskripte und führen Sie den Befehl Test Manager → Testskript erstellen aus.

    Ein neues Testskript wird hinzugefügt.

  4. Führen Sie einen Doppelklick auf das neue Testskript aus.

    Das Testskript öffnet im Editor.

  5. Selektieren Sie das Testskript im Editor und führen Sie den Befehl Test Manager → IEC Unittest hinzufügen aus.

    Ein IEC-Unittest wird zum Testskript hinzugefügt.

  6. Fügen Sie vor dem IEC-Unittest die vorbereitenden Testaktionen ein (siehe Beispiel IecUnitTest).

  7. Überprüfen Sie die Verbindungseinstellungen und starten Sie die Steuerung Control Win V3.

  8. Klicken Sie auf die Schaltfläche Speichern + Starten.

    Das Testskript wird ausgeführt.

  9. Nach der Durchführung des Testskripts erscheint der Testreport.

    tm_img_testreport.png
. Während des Testlaufs werden intern folgende Schritte ausgeführt:
  • Zuerst wird das Projekt nach Testtabellen durchsucht. Das Ergebnis ist die Testtabelle TestTable_RIGHT. In dieser Testtabelle ist der Funktionsbaustein FB_RIGHT als Prüfling eingetragen.

  • Für den Prüfling werden nun Testbausteine instanziert. Pro Testfall ein Testbaustein: für den Testfall 1 der Testbaustein TestTable_RIGHTTestee und für den Testfall 2 der Testbaustein TestTable_RIGHTTestee_1.

    Die Testbausteine dienen der Parameterprüfung.

  • Entsprechend den Eingangs- und Ausgangsbelegung in der Testtabelle werden die Testbausteine TestTable_RIGHTTesttable_RIGHTTC1Emptystring (FB) und TestTable_RIGHTTesttable_RIGHTTC1Validstring (FB) für die Testfälle 1 und 2 instanziert. Diese Funktionsbausteine führen den Prüfling aus. Dabei werden Eingänge gesetzt und die Ausgänge auf Ergebnis geprüft.

Wichtig

Beachten Sie Folgendes, bevor Sie den Test erneut ausführen: Löschen Sie die Applikation Backup und entfernen Sie im Programm PLC_PRG die automatisch eingefügten Zeilen, die mit Kommentaren gekennzeichnet sind.

Prüfling mit negativem Testergebnis untersuchen

Der Testreport listet das Ergebnis des Testlaufs für jeden einzelnen Testschritt auf. Wenn ein Testschritt mit Fehler durchlaufen wird, wird im Report der erwartete und der tatsächlichen Wert der überprüften Variable ausgegeben. Sie können nach Testablauf die dabei generierte Testapplikation ausführen und den Fehler beheben (debuggen).

Im Testreport ist ein Testbaustein mit fehlerhafter Prüfung als Failed (in roter Schrift) gekennzeichnet. In dieser Zeile steht auch der Name des erzeugten Testbausteins, im Beispiel TestTable_RightTestee_1.

Prozedur. Testapplikation debuggen
  1. Wählen Sie den Befehl Online → Einloggen.

    Sie können mit der Steuerung kommunizieren.

  2. Öffnen Sie in der Ansicht POU den Funktionsbaustein FB_RIGHTTestee_1 (FB).

  3. Setzen Sie den Cursor in die erste Zeile des Funktionsbausteins und klicken Sie F9.

    Ein Haltepunkt ist gesetzt.

  4. Öffnen Sie das Programm PLC_PRG im Editor.

  5. Expandieren Sie im Deklarationsteil die Variable instFB_RIGHTTESTTABLE_RIGHTTC2VALIDSTRING.

  6. Klicken Sie in das Feld Vorbereiteter Wert der Variablen xExecute (in Klasse ETrigA).

    Als vorbereiteter Wert wird TRUE angezeigt.

  7. Wählen Sie den Befehl Debug → Wert schreiben (Strg + F7).

    Die Variable wird auf TRUE gesetzt (Forcen).

  8. Starten Sie das Programm mit dem Befehl Debug → Start (F5).

    Das Programm startet und bleibt in der Abarbeitung an dem Haltepunkt im Funktionsbaustein Test_RightTestee_1 stehen.

  9. Wählen Sie den Befehl Debug → Einzelschritt (F8).

    Der Programmablauf springt in den FB instFB_RIGHTTESTTABLE_RIGHTTC2VALIDSTRING.

  10. Sie können nun die Funktionsbausteine schrittweise abarbeiten und so die Eingangs- und Ausgangswerte beobachten.