Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Ergebnis 1 bis 5 von 5

Thema: Test von FBs

  1. #1
    Registriert seit
    22.10.2011
    Beiträge
    2
    Danke
    5
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen,

    möchte gerne wissen wie ihr eure FBs testet. Ich programmiere meist in JAVA und da gibt es eine lib für Unit-Tests. Eine Unit entspricht dabei ganz grob einem FB bei der SPS Programmierung. So ein Unit-Test sieht die zu testende Unit als Black-Box. Man gibt bestimmte Daten rein und drückt eine Erwartungshaltung der Ausgangsdaten aus. Diese Tests kann man automatisch ablaufen lassen. Das macht man nach jeder Iteration um zu sehen, ob die einzelnen Units noch so funktionieren wie geplant. "Abfallprodukt" vom Ganzen ist auch eine Beschreibung der Funktion der zu testenden Unit, man sieht ja in den Tests was reingeht und was rauskommen soll. Gibt es so etwas auch bei der SPS Programmierung? Oder wie testet ihr eure FBs?

    Jürgen
    Zitieren Zitieren Test von FBs  

  2. #2
    Registriert seit
    29.03.2004
    Beiträge
    5.742
    Danke
    143
    Erhielt 1.688 Danke für 1.226 Beiträge

    Standard

    Ich muss vorab sagen, dass ich diese Unit-Test nur aus Einsehen von fremden Quellcode kenne, bzw. weil ich mal bei der Wireshark Mailingliste angemeldet war, und dadurch mitbekommen habe wenn die zyklischen Testläufe fehlgeschlagen haben.
    Prinzipiell finde ich das schon eine gute Sache, aber aus mehreren Gründen ist das bei der SPS-Programmierung aus meiner Sicht schwer umzusetzen.
    Ein paar Gründe dafür:

    Die Testläufe müssen erst in eine SPS-Umgebung geladen werden. Also entweder in eine echte SPS oder zumindest eine Simulation wie Plcsim bei Siemens.
    Aber nicht alle Hersteller bieten so eine Simulationsumgebung an (kostet bei Siemens auch extra).
    Diese ganze Umgebung zu starten, das Programm zu laden, Meldungen auszuwerten usw. ist sicher automatisiert möglich, aber sehr aufwändig zu realisieren.

    Die meisten Funktionen in einem SPS-Programm sind immer mit der realen Welt gekoppelt.
    Darum kann ein einfacher Test der einmaligen Überprüfung Eingangszustand <-> Ausgangszustand nicht unbedingt einen Fehler in einem Baustein anzeigen.
    Zumindest die Unit-Tests in den Programmen die ich mir angesehen habe funktionieren alle statisch (Eingangswerte schreiben -> Prüfung der Ausgangswerte auf bestimmte Zustände).
    Wenn ich beispielsweise einen PID-Regler testen will, müsste ich einen Prozess simulieren und diesen für eine bestimmte Zeit laufen lassen um festzustellen dass der Regler so funktioniert wie er funktionieren soll.

    Für ganz einfache Antriebsbausteine z.B. für Schieber/Ventile kann man sowas bestimmt realisieren, aber solche Bausteine werden (zumindest bei mir) einmal vor Inbetriebnahme erstellt und getestet, ggf. einmalig bei Inbetriebnahme angepasst, und dann funktionieren diese (müssen).

  3. Folgender Benutzer sagt Danke zu Thomas_v2.1 für den nützlichen Beitrag:

    Pumpernickel (29.10.2011)

  4. #3
    Registriert seit
    13.09.2010
    Beiträge
    113
    Danke
    0
    Erhielt 18 Danke für 18 Beiträge

    Standard

    Willkommen in der agilen Softwareentwicklung. Leider unterscheiden sich SPS- und Hochsprachenprogrammierung sehr stark. Der von Dir genannte Unit-Test wird so bald wohl keinen Einzug in die SPS-Welt erhalten. Schade eigentlich, die Idee ist brillant.

  5. #4
    Pumpernickel ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    22.10.2011
    Beiträge
    2
    Danke
    5
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hmmm, eure Antworten klingen ja nicht so berauschend, da bin ich von der Hochsprachenprogrammierung wohl doch ziemlich verwöhnt. Das Problem bei uns ist nicht so sehr die Ansteuerung und Abfrage der Hardware denn dafür gibt es ausgereifte und in der Praxis getesteste FBs. Das Problem ist vielmehr das Zusammenspiel dieser Basisfunktionen wie z.B. deren zeitlicher Ablauf und deren Interlocks gegeneinandern. Zeitlicher Ablauf heißt: zuerst die eine Achse bewegen dann warten bis Bewegung fertig ist und dann die nächste Achse starten usw. Interlocks heißt wenn sich die eine Achse gerade bewegt bzw. in einer bestimmten Position befindet darf die andere Achse nicht bewegt werden. Wobei wir für eine Maschineneinheit von ca. 15-20 Achsen sprechen. Wie testet ihr so etwas vorab im Büro?

  6. #5
    Registriert seit
    27.04.2006
    Ort
    Sauerland
    Beiträge
    626
    Danke
    183
    Erhielt 88 Danke für 81 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ich testet sowas eigentlich nur am schaltschrank. da hat man dann die entsprechenden ea's auch unter kontrolle. erspart unheimlich stress bei der IBN. einige kunden wünschen ja auch vorab eine FAT. da ist sowas dann nicht anders zu lösen.
    bei der positionierung wirds dann aber schon problematisch. man müsste ja alle motoren an die fu's anschliessen damit man dann auch eine positonsänderung bekommt. bleibt also nur -> ab auf die baustelle.
    Die Kunst in der Personalführung ist es
    die Mitarbeiter so über den Tisch zu ziehen,
    dass sie die Reibungshitze als Nestwärme empfinden.

Ähnliche Themen

  1. Test
    Von Anonymous im Forum Feldbusse
    Antworten: 0
    Letzter Beitrag: 06.11.2003, 18:29

Stichworte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •