LabVIEWForum.de
Signal-Flackern von ModBus - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Signal-Flackern von ModBus (/Thread-Signal-Flackern-von-ModBus)



Signal-Flackern von ModBus - Labview Anfänger - 03.10.2020 13:31

Hallo Zusammen und schönen Feiertag,
an alle die keinen Feiertag haben schönen Samstag.

Ich habe vor ein 5 Jahren hier schon gute Tipps bekommen und hoffe wieder auf Euch.

Ich habe einen Schaltschrank mit einer Sicherheitssteuerung und 8 Prüfständen.
Ich schicke die Daten über Modbus und hole andere wieder ab.
Leider "flackern" die digitalen Lese-Signale unregelmäßig und ich bekomme ab und zu Nullen anstatt schöne Einsen.

Dann denkt mein Programm, dass z. B. NotAus aktiviert ist und deaktiviert die Programmabläufe in meinem Hauptprogramm (.exe).

Das Problem bekomme ich Modbus-seitig mit dem Hersteller nicht hin, deswegen will ich jetzt aus den digitalen Signalen einzelne "fehlerhaften" Nullen ignorieren.
Das beste was ich als Labview Anfänger hinbekomme ist im Signal_Flacker_Vermeider.vi und Bild dargestellt.


Ich wandle meine digitalen Eingangssignale zu 0 und 1 und addiere die Werte der aktuellen und der letzten Schleife.
Wenn das Ergebnis größer 0 ist, setze ich den digitalen Wert für das Weitergabesignal wieder zu "T".
Ich kann das natürlich auch mit drei oder beliebig vielen Schleifen-Durchgängen machen.

Meine Schleifen dauern 200ms und das Flackern ist kürzer --> Das Problem ist damit also behoben.
Allerdings muss ich das mit 128 Signalen machen.

Habt Ihr einen Tipp wie das eleganter gehen könnte?

Vielen Dank schon mal.
Ich geh jetzt Badewanne_2_2 und freue mich auf Eure Hilfe und Ideen!

Anfänger


RE: Signal-Flackern von ModBus - Labview Anfänger - 03.10.2020 14:35

So,

und hier hab ich es mit Hilfe anderer Beispiele aus dem Forum sogar digitalisieren können.

Es gibt aber bestimmt einen eleganteren Weg.

Danke


RE: Signal-Flackern von ModBus - GerdW - 03.10.2020 17:21

Hallo Anfänger,

dein erstes VI könnte man so aufräumen:
[attachment=61326]
Kein ExpressVI, nur ein Schieberegister, kein Rube-Goldberg in Form der Case-Struktur…

Oder noch einfacher gleich mit boolschen Werte rechnen:
[attachment=61327]

Und wenn man dann noch alle Inputs/Outputs in Arrays umwandelt, kann man auch 128 Kanäle auf einmal testen:
[attachment=61328]
(Bei Arrays muss man evtl. noch die Startbedingung in Form der Startwerte des Schieberegisters initialisieren…)

Und zuletzt entfernt man noch die While-Loop, ersetzt das Schieberegister durch FeedbackNodes und löscht die Wartezeit:
[attachment=61329]
Jetzt hat man nämlich ein subVI (reentrant setzen!), welches in der Schleife des MainVIs aufgerufen wird. Diese Schleife im MainVI bestimmt dann die Iterationszeit und nicht mehr das subVI zum Prüfen der boolschen Werte…

Nachtrag: auch bei deinem zweiten Versuch hast du aber konsequent am Rube-Goldberg festgehalten! Big Grin
Code:
IF true THEN true ELSE false…



RE: Signal-Flackern von ModBus - Labview Anfänger - 03.10.2020 17:51

Hallo GerdW,

danke für Deine Hilfe und Mühe.
Die While-loop hab ich tatsächlich schon weg, die war noch zum ausprobieren drin.

Das letzte sieht ja tatsächlich fast aus wie mein zweites, da bin dann als Maschinenbauer doch auch stolz.


Zitat: Und wenn man dann noch alle Inputs/Outputs in Arrays umwandelt, kann man auch 128 Kanäle auf einmal testen:

(Bei Arrays muss man evtl. noch die Startbedingung in Form der Startwerte des Schieberegisters initialisieren…)



Kannst Du mir da bitte noch ein kleines Bildchen schicken, in Deinem Post waren zweimal die gleichen Bilder. Oder war das Absicht?


Zitat: Und zuletzt entfernt man noch die While-Loop, ersetzt das Schieberegister durch FeedbackNodes und löscht die Wartezeit:

Jetzt hat man nämlich ein subVI (reentrant setzen!), welches in der Schleife des MainVIs aufgerufen wird. Diese Schleife im MainVI bestimmt dann die Iterationszeit und nicht mehr das subVI zum Prüfen der boolschen Werte…


Jupp, erledigt, danke.


Das mit dem Rube-Goldberg-Dingens liegt daran, dass ich nur Maschinenbauer bin und bisher gar nicht wusste was das ist :-)

Anfänger


RE: Signal-Flackern von ModBus - GerdW - 03.10.2020 18:15

Hallo Anfänger,

Zitat:Kannst Du mir da bitte noch ein kleines Bildchen schicken, in Deinem Post waren zweimal die gleichen Bilder. Oder war das Absicht?
Ich weiß nicht, was du meinst: alle 4 Bilder sind einzigartig!

Zitat:Das mit dem Rube-Goldberg-Dingens liegt daran, dass ich nur Maschinenbauer bin und bisher gar nicht wusste was das ist :-)
Gerade als Maschinenbauer solltest du wissen, was eine Rube-Goldberg-Maschine ist!
Big Grin


RE: Signal-Flackern von ModBus - Labview Anfänger - 03.10.2020 18:29

Hi GerdW,

bei mir sehen die Bildchen 2 und 3 gleich aus.
Ich hab´s aber tatsächlich aus einem anderen Beispiel rausgefunden:

[attachment=61330]

Kannst Du mir noch einen Tipp geben, wie ich die Eingänge und Ausgänge für das SubVi schick verbinde.
Gibt es eine andere Möglichkeit außer mit dem 1 Pixel großen Eingang rechts oben zu verbinden?

[attachment=61332]

Dank vom Anfänger!


RE: Signal-Flackern von ModBus - GerdW - 03.10.2020 19:00

Hallo Anfänger,

nimm das 4224-Pattern, das ist der Standard.
Wenn du mehr In/Outputs benötigst, machst du wahrscheinlich etwas falsch...


RE: Signal-Flackern von ModBus - Labview Anfänger - 03.10.2020 21:54

Hallo nochmal und guten Abend zusammen,

mit dem Tipp mit dem Array kann ich alle digitalen Signale auf einmal mit dem Code-Schnipsel bearbeiten und benötige gar kein SubVi mehr - danke.

Anfänger