Ich möchte ein kontinuierliches Signal alle 4 sekunden abtasten und in ein Array schreiben. Habe nun versucht das ganze mit dem Blink-Baustein zu machen. Woher soll ich nun wissen wie lange das Programm zum lesen eines Messwertes braucht? Zur zeit sieht das bei mir so aus, dass das Programm versucht alle werte in der timehigh phase aufzunehmen...
Kann mir da jemand helfen?
Danke
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
wenn ich Dich recht verstehe, zeichnet Dein Programm während der ganzen Zeit, in der der Blinker High liefert, Messwerte auf. Du musst die Aufzeichnung an die Flanken des Blinkersignals anhängen:
VAR lhFlanke : R_TRIG; (* steigende Flanke *) hlFlanke : F_TRIG; (* fallende Flanke *)END_VARlhFlanke (CLK := Blinker);hlFlanke (CLK := Blinker);IF lhFlanke.Q(* OR hl.Flanke.Q, wenn Du beide Blinkerflanken auswerten willst / musst *)THEN ArrayWert[..] := Messwert;END_IF;
Gruss Rolf
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Habe nun eine Visualisierung von dem Ausgang des Blinkers und des R_TRIG
gemacht und musste erschreckend feststellen, dass der Ausgang des Blinkers unregelmäßig ist. dazu kommt noch, dass der Ausgang des Triggers nicht auf jede positive flanke reagiert sondern ab und zu mal.
Woran könnte das liegen?
Die Taskkonfiguration hab ich nun offen gelassen, sodass er mich immer automatisch returned...
danke
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
habe ehrlich gesagt keine Ahnung. Ist mir noch nicht untergekommen.
Betreffs des R_TRIG kann ich mir bestenfalls vorstellen, dass Du die Bearbeitung dieses Flankentriggers in bestimmten Situationen überspringst. Wenn dann eine LH- und eine HL-Flanke in der Ausblendzeit einlaufen, hat das Kerlchen keine Chance zu schalten.
Was die Regelmäßigkeit des Blinkers angeht, kann das auch nur scheinbar so sein. Die Kommunikation zwischen der SPS und der Visualisierung ist nicht besonders schnell (auch die onboard-Visualisierung direkt im System - Arbeitsblatt Visualisierungen - reagiert ziemlich träge, selbst auf ausgesprochen schnellen Systemen wie TwinCAT auf einer Raketen-CPU). Du kannst ja mal testweise die SPS-Zyklen von einer Blinkerflanke zur nächsten mitzählen, der Wert sollte bei von Zyklus zu Zyklus einigermassen gleicher Rechenzeit immer annähernd gleich sein.
Gruss Rolf
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Ich möchte ein kontinuierliches Signal alle 4 sekunden abtasten und in ein Array schreiben. Habe nun versucht das ganze mit dem Blink-Baustein zu machen. Woher soll ich nun wissen wie lange das Programm zum lesen eines Messwertes braucht? Zur zeit sieht das bei mir so aus, dass das Programm versucht alle werte in der timehigh phase aufzunehmen...
Kann mir da jemand helfen?
Danke
Hi,
wenn ich Dich recht verstehe, zeichnet Dein Programm während der ganzen Zeit, in der der Blinker High liefert, Messwerte auf. Du musst die Aufzeichnung an die Flanken des Blinkersignals anhängen:
Gruss Rolf
danke danke problem gelöst...am anfang findet man nicht so schnell die benötigten FBs.
grüße andreas
Hallo Rolf,
ich habe deinen vorschlag nun umgesetzt.
Habe nun eine Visualisierung von dem Ausgang des Blinkers und des R_TRIG
gemacht und musste erschreckend feststellen, dass der Ausgang des Blinkers unregelmäßig ist. dazu kommt noch, dass der Ausgang des Triggers nicht auf jede positive flanke reagiert sondern ab und zu mal.
Woran könnte das liegen?
Die Taskkonfiguration hab ich nun offen gelassen, sodass er mich immer automatisch returned...
danke
Hallo Andreas,
habe ehrlich gesagt keine Ahnung. Ist mir noch nicht untergekommen.
Betreffs des R_TRIG kann ich mir bestenfalls vorstellen, dass Du die Bearbeitung dieses Flankentriggers in bestimmten Situationen überspringst. Wenn dann eine LH- und eine HL-Flanke in der Ausblendzeit einlaufen, hat das Kerlchen keine Chance zu schalten.
Was die Regelmäßigkeit des Blinkers angeht, kann das auch nur scheinbar so sein. Die Kommunikation zwischen der SPS und der Visualisierung ist nicht besonders schnell (auch die onboard-Visualisierung direkt im System - Arbeitsblatt Visualisierungen - reagiert ziemlich träge, selbst auf ausgesprochen schnellen Systemen wie TwinCAT auf einer Raketen-CPU). Du kannst ja mal testweise die SPS-Zyklen von einer Blinkerflanke zur nächsten mitzählen, der Wert sollte bei von Zyklus zu Zyklus einigermassen gleicher Rechenzeit immer annähernd gleich sein.
Gruss Rolf