-> Hier kostenlos registrieren
Hallo,
eine Frage zum einlesen von Spannunsgwerten einer KL3062 (0...10V):
Ich möchte meherer Spannungen messen und habe hierzu einen analog-Multiplexter an den Eingang der Analog-Klemme KL3062
geschaltet. Dieser MUX wird aus der SPS mittels Steuersignale angesteuert.
Die Umschatung der Kanäle des MUX dauert nur max 1ms also sehr schnell im Verglich zu meiner Zykluszeit von 50ms
Mein Program besteht aus einer state maschine in einer CASE Anfrage (prinzipiell dargestellt):
Erst Kanal setzen, dann im nächsten Zyklus auslesen, dann wieder setzen, auslesen usw.
CASE STEP OF
1: (* Ansteuerung des entsprechenden Messkanals *)
Select_A:= TRUE;
Select_B:= FALSE;
STEP:=STEP+1;
2: (*Auslesen des Spannungswert und zuordnen zum Kanal *)
OUT_2 := Analog_IN;
STEP:=STEP+1;
3: (* Ansteuerung des entsprechenden Messkanals *)
Select_A:= TRUE;
Select_B:= TRUE;
STEP:=STEP+1;
4: (*Auslesen des Spannungswert und zuordnen zum Kanal *)
OUT_3 := Analog_IN;
STEP:=STEP+1;
...
END_CASE
Die Wandlungszeit der Klemme soll <2ms sein. Ich dachte mit meiner Zykluszeit von 50ms ist die setup und hold Zeit lange genug
um den Wert von der Klemme zu lesen.
Das ganze funktionert aber leider nicht. Ich messe zwar Werte aber die Zuordung zu den Kanälen ist falsch!
Erst wenn ich noch eine Warteschleife von min. 2 Zyklen pro Step einbaue ist die Zuordnung richtig ... d.h zum Zeitpunkt der Abfrage
OUT_3 :=Analog_IN wird nicht der aktuelle Wert am Klemmeneingang ausgelesen sondern ein vorheriger ?!
Nun meine Frage: Was habe ich nicht bedacht ? Wann wird den der Analogwert gemessen bzw. wann steht er am Ausgang der Klemme zur Verfügung.
Danke für Antworten
Klaus
eine Frage zum einlesen von Spannunsgwerten einer KL3062 (0...10V):
Ich möchte meherer Spannungen messen und habe hierzu einen analog-Multiplexter an den Eingang der Analog-Klemme KL3062
geschaltet. Dieser MUX wird aus der SPS mittels Steuersignale angesteuert.
Die Umschatung der Kanäle des MUX dauert nur max 1ms also sehr schnell im Verglich zu meiner Zykluszeit von 50ms
Mein Program besteht aus einer state maschine in einer CASE Anfrage (prinzipiell dargestellt):
Erst Kanal setzen, dann im nächsten Zyklus auslesen, dann wieder setzen, auslesen usw.
CASE STEP OF
1: (* Ansteuerung des entsprechenden Messkanals *)
Select_A:= TRUE;
Select_B:= FALSE;
STEP:=STEP+1;
2: (*Auslesen des Spannungswert und zuordnen zum Kanal *)
OUT_2 := Analog_IN;
STEP:=STEP+1;
3: (* Ansteuerung des entsprechenden Messkanals *)
Select_A:= TRUE;
Select_B:= TRUE;
STEP:=STEP+1;
4: (*Auslesen des Spannungswert und zuordnen zum Kanal *)
OUT_3 := Analog_IN;
STEP:=STEP+1;
...
END_CASE
Die Wandlungszeit der Klemme soll <2ms sein. Ich dachte mit meiner Zykluszeit von 50ms ist die setup und hold Zeit lange genug
um den Wert von der Klemme zu lesen.
Das ganze funktionert aber leider nicht. Ich messe zwar Werte aber die Zuordung zu den Kanälen ist falsch!
Erst wenn ich noch eine Warteschleife von min. 2 Zyklen pro Step einbaue ist die Zuordnung richtig ... d.h zum Zeitpunkt der Abfrage
OUT_3 :=Analog_IN wird nicht der aktuelle Wert am Klemmeneingang ausgelesen sondern ein vorheriger ?!
Nun meine Frage: Was habe ich nicht bedacht ? Wann wird den der Analogwert gemessen bzw. wann steht er am Ausgang der Klemme zur Verfügung.
Danke für Antworten
Klaus
Zuletzt bearbeitet: