Mit einem PLC einen anderen PLC testen

reloop2k

Level-1
Beiträge
35
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich habe Folgendes vor: Mit Hilfe eines PLC ein Endlosprogramm erstellen, dass alle möglichen Speicherbereiche eines anderen PLC zufällig beschreibt. Die sollte in eine Endlosschleife rein. Dazu wäre es von Vorteil den testenden PLC zu monitoren, damit fehlerhaftes Verhalten aufgrund von invaliden Daten erkannt wird.

Bin leider absoluter Laie, was PLC-Programmierung angeht. Hab bischer lediglich mit dem TIA-Portal ein Beispiel Projekt angelegt und etwas getestet, funktioniert soweit alles einwandfrei.
 
Wie gehe ich alle Speicherbereiche eines anderen PLC durch und beschreibe diese zufällig?

Irgendwie kann ich nicht so ganz folgen...:confused:

Code:
U E1.0
= DB1.DBX0.0

Jetzt willst du die Eingänge zufällig beschreiben?
oder auch den ganzen DB wild durcheinander würfeln?

Nenn mal die Speicherbereiche, die eventuell mit
zu tun haben
 
Irgendwie kann ich nicht so ganz folgen...:confused:

Code:
U E1.0
= DB1.DBX0.0

Jetzt willst du die Eingänge zufällig beschreiben?
oder auch den ganzen DB wild durcheinander würfeln?

Nenn mal die Speicherbereiche, die eventuell mit

zu tun haben

Die DB durcheinanderzuwürfeln würde sicherlich auch Sinn machen um unerwünschte Funktionalität eines PLC aufzudecken. Ziel ist eigentlich dass mit Hilfe eines PLCs[A], welcher an einen anderen PLC zufällige Daten über diverse Eingänge schickt und dadurch fehlerhaftes Verhalten provoziert wird. Daher auch die Frage wegen einem Monitor, gibt es einen mitgelieferten Monitor, mit dem es möglich wäre solche Fehler aufzudecken?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Mach das doch einfach. Hast du dir die Prosim-Schnittstelle mal angesehen? Damit kannst du sowas machen.

Ja, habe mir dein Tool nettoplcsim in der Version 0.72 angeschaut, welche ja die Schnittstelle nutzt. Dann ist mir aber die Idee gekommen, dass es evtl. leichter geht mit einem 2. PLC.
 
Zuletzt bearbeitet:
.. gibt es einen mitgelieferten Monitor, mit dem es möglich wäre solche Fehler aufzudecken?

Das wäre dann der Erfinder des Programms.

Eine PLC macht ja vordergründig erstmal das, was du der beibringst bzw. programmierst.

Und wenn da z.B. steht

Code:
U E0.0
SPBN m1

L 400
T DB1.DBW0

m1: Nop 0

dann macht es ja eigentlich keinen Sinn, den Eingang E0.0 ständig mit irgendwelchen nullen und einsen zu bombadieren.


Hast du mal ein Beispiel, wie sich so ein Monitor verhalten soll?

PS: Willst du "nur" dein Programm simulieren? oder tatsächlich Zufallskombinationen rausschreiben
 
Ja, habe mir dein Tool nettoplcsim angeschaut, mit der Version 0,72, welche ja die Schnittstelle nutzt. Dann ist mir aber die Idee gekommen, dass es evtl. leichter geht mit einem 2. PLC.

Kannst du auch machen. Eine zweite S7 nehmen und dann mit Put fleißig Daten reinschreiben. Du kannst damit aber keine Eingänge überschreiben, weil die am Anfang des OB1 wieder vom aktuellen Prozessabbild überschrieben werden. Und Peripherieadressen überschreiben geht schonmal gar nicht.

Ob dein ganzes Unterfangen überhaupt irgendeinen Sinn ergibt lasse ich mal offen, das musst du schon selber wissen. So wie es sich bis jetzt anhört ist es für mich völliger Mumpitz.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das wäre dann der Erfinder des Programms.

Eine PLC macht ja vordergründig erstmal das, was du der beibringst bzw. programmierst.

Ja und es wäre doch super wenn, man ein Tool hätte, mit dem man Fehler im Programm oder auch Design-Fehler im PLC selbst?(nur so ein Gedanke, weiß nicht ob es realistisch ist) aufdecken könnte.

Und wenn da z.B. steht

Code:
U E0.0
SPBN m1

L 400
T DB1.DBW0

m1: Nop 0

dann macht es ja eigentlich keinen Sinn, den Eingang E0.0 ständig mit irgendwelchen nullen und einsen zu bombadieren.

in dem Fall nicht, aber es kann doch auch sicher mal ein Fall auftreten, der zu unerwünschten Nebeneffekten führt.

Hast du mal ein Beispiel, wie sich so ein Monitor verhalten soll?

PS: Willst du "nur" dein Programm simulieren? oder tatsächlich Zufallskombinationen rausschreiben

Über den Monitor habe ich mir noch nicht so viele Gedanken gemacht, aber z.B. solche Ereignisse, dass der PLC auf einmal aufgrund unerwarteter Eingabe in eine Endlosschleife geriet, sollten erkannt werden.
 
Ob dein ganzes Unterfangen überhaupt irgendeinen Sinn ergibt lasse ich mal offen, das musst du schon selber wissen. So wie es sich bis jetzt anhört ist es für mich völliger Mumpitz.

Das befürchte ich auch, wenn ich die Kommentare hier lese. Der Gedanke dabei ist Folgender: Man hätte ein Tool mt dem man programmierte PLCs testen könnte, um im Programm selbst oder auch hardware-Design-Fehler aufzudecken. Gerade das erstere scheint mir nicht ganz unrealistisch bei komplexeren PLCs.
 
Das befürchte ich auch, wenn ich die Kommentare hier lese. Der Gedanke dabei ist Folgender: Man hätte ein Tool mt dem man programmierte PLCs testen könnte, um im Programm selbst oder auch hardware-Design-Fehler aufzudecken. Gerade das erstere scheint mir nicht ganz unrealistisch bei komplexeren PLCs.

DAS Universal Tool gibt es so nicht.

Überwachungen der Maschine, Positionen, Endlagen, Luftdruck, Temperaturen, Falsche Werteingaben, Grenzüberschreitungen an Variablen, Kabelbruchüberwachung, Überwachung der einzelnen Geräte usw...
sind in dem Sinne Monitore.
Daraus ergeben sich Hinweise, Warnungen Fehlermeldungen (zum Display).

Hardwarefehler am System oder deine genannten Endlosschleifen können z.B. bei BigS mit den "hauseigenen" Kontrollen überwacht werden.

OB 80 Zeitfehler
OB 81 Stromversorgungsfehler
OB 82 Diagnosealarm
OB 83 Ziehen/Stecken-Alarm
OB 84 CPU-Hardwarefehler
OB 85 Programmablauffehler
OB 86 Ausfall eines Erweiterungsgeräts,
OB 87 Kommunikationsfehler
OB 88 Bearbeitungsabbruch
OB 90 Neustart (Warmstart) oder Kaltstart
OB 121 Programmierfehler
OB 122 Peripheriezugriffsfehler
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Stimmt, Überwachen von Sensordaten ist ja praktisch Monitoring, wodurch solche Fehler definitiv entdeckt werden können.

Gibts für Access violations, denial-of-service etc. auch mitgelieferten Monitor?
 
Eine automatische Validierung für PLC gibt es noch? nicht.
Es fehlen die Algorithmen die universell einzusetzen sind.
Wir haben Simulationssoftware, der die möglichen Fehler bekannt sind und testen dann wie das Programm darauf reagiert.
Doch solche echten Simulationssoftwaren sind etwas teuer. :)

Tests wie bei Hochsprachenprogrammen sind in der Steuerungswelt nicht bekannt.
Da musst du wohl umdenken.


bike
 
Zuviel Werbung?
-> Hier kostenlos registrieren
@reloop2k

Nur weil Unit-Tests auf PC gerade modern sind, heißt das noch lange nicht, dass das auf einer SPS auch so Sinn macht.
Bei Tests von SPS-Programmen wird mit Modellen gearbeitet. Eine 2. SPS oder ein PC hängt an der Hardware der zu testenden SPS und simuliert dann die reale Anlage.
Die Simulation zu schreiben ist wesentlich mehr Aufwand als das eigentliche SPS-Programm. Deshalb wird in der Realität auf Tests kompletter Anlagen in den allermeisten Fällen verzichtet. Wenn du aber dein SPS-Programm sauber strukturierst und modular gestaltest, gibt es in aller Regel eben keine Seiteneffekte.
Und eines ist klar: Die Realität bietet dir immer einen Fehler mehr als du simulieren hättest können.

Gruß
Dieter
 
@reloop2k

Nur weil Unit-Tests auf PC gerade modern sind, heißt das noch lange nicht, dass das auf einer SPS auch so Sinn macht.
Bei Tests von SPS-Programmen wird mit Modellen gearbeitet. Eine 2. SPS oder ein PC hängt an der Hardware der zu testenden SPS und simuliert dann die reale Anlage.
Die Simulation zu schreiben ist wesentlich mehr Aufwand als das eigentliche SPS-Programm. Deshalb wird in der Realität auf Tests kompletter Anlagen in den allermeisten Fällen verzichtet. Wenn du aber dein SPS-Programm sauber strukturierst und modular gestaltest, gibt es in aller Regel eben keine Seiteneffekte.
Und eines ist klar: Die Realität bietet dir immer einen Fehler mehr als du simulieren hättest können.

Gruß
Dieter

Du sprichst mir aus der Seele.
Dieses Thema habe ich inzwischen öfter auf dem Tisch als frischen Kaffee.
Es kommen Studenten die solche Ideen haben und weil es neu ist muss es auch gut sein.


bike
 
Zurück
Oben