meine erste Schleife und schon gibts Probleme, lasse ich die for-schleife weg, funktioniert alles ohne probleme (wert wird ins array geschrieben), mit schleife passiert aber garnix (nicht mal ein fehler)
zum testen hab ich dann noch ein 2. array (int) angelegt und den zähler (i) reinschreiben lassen, das ging, also kann die schleife nicht so falsch sein, tipps?
Christian
FORi:=0TOListeLENDOAuswahl   :=LIST_GET(10,ListeLEN,ReceiveString2); (*Auswahl des Werts aus der Liste*)Sensor    :=LIST_GET(44,0,Auswahl);      (*Sensor*)Temperatur :=STRING_TO_REAL(LIST_GET(44,1,Auswahl));  (*Temp + in Real umwandeln *)Temp[i]      :=Temperatur;END_FOR;
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
wenn ich es richtig sehe, ist die Liste 0 basiert,
versuche:
FOR i:=0 TO ListeLEN - 1 DO
Heiwil
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Anonymous
-
2009-09-13
Originally created by: Ferengi
bringt leider nix
zum weiteren verständnis, ich lese über eine rs232 schnittstelle an der ein 1-wire-bus hängt temperaturen ein, diese kommen auch als string wunderbar an, das ganze sieht so aus "28CEB4B0010000F8 00,13.50,56.25$R$N289349F001000036 00,23.37,74.00$R$N........."
sensornr,temp,andererwert,Zeilenschaltung
da ganz am schluß noch einiger "müll" übertragen wird muß der string etwas gekürzt werden
LEN_ReceiveString2Â Â :=LEN(ReceiveString2)-9;ReceiveString2Â Â :=LEFT(ReceiveString2,LEN_ReceiveString2);
jetzt wirt mit dem oscat baustein list_len ermittelt wie oft es eine zeilenschaltung gab = wieviele werte, das ganze -1 damit ich bei 0 anfangen kann und den zähler gleich für das array verwenden kann
ListeLENÂ Â Â Â Â Â :=LIST_LEN(10,ReceiveString2)-1;
zum schluß dann der bereits gepostete teil der den string nochmal unterteilt und in das array schreiben soll
komplett
LEN_ReceiveString2 Â Â :=LEN(ReceiveString2)-9;ReceiveString2 Â Â :=LEFT(ReceiveString2,LEN_ReceiveString2);ListeLENÂ Â Â Â Â Â :=LIST_LEN(10,ReceiveString2)-1;FORi:=0TOListeLENDO
  Auswahl      :=LIST_GET(10,ListeLEN,ReceiveString2);      (*Auswahl des Werts*)
  Sensor      :=LIST_GET(44,0,Auswahl);      (*Sensor*)
  Temperatur    :=STRING_TO_REAL(LIST_GET(44,1,Auswahl));  (* in Real umwandeln *)
  Temp[i]      :=Temperatur;END_FOR;
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
PROGRAMPLC_PRGVARÂ Â LEN_ReceiveString2:Â Â INT;Â Â ReceiveString2:Â Â Â Â STRING(255);Â Â ListeLEN:Â Â Â Â Â Â INT;Â Â i:Â Â Â Â Â Â Â Â Â Â INT;Â Â Auswahl:Â Â Â Â Â Â STRING(255);Â Â Temperatur:Â Â Â Â Â Â REAL;Â Â Sensor:Â Â Â Â Â Â Â Â STRING(255);Â Â Temp:Â Â Â Â Â Â Â Â ARRAY[0..200]OFREAL;END_VAR
ReceiveString2Â Â Â Â :='28CEB4B0010000F800,13.50,56.25$R$N289349F001000036 00,23.37,74.00$R$N';ListeLENÂ Â Â Â Â Â :=LIST_LEN(10, ReceiveString2)-1;FORi:=0TOListeLENDO
  Auswahl      :=LIST_GET(10,i,ReceiveString2);      (*Auswahl des Werts*)
  Sensor      :=LIST_GET(44,0,Auswahl);          (*Sensor*)
  Temperatur    :=STRING_TO_REAL(LIST_GET(44,1,Auswahl));  (* in Real umwandeln *)
  Temp[i]      :=Temperatur;END_FOR
Heiwil
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Anonymous
-
2009-09-15
Originally created by: Ferengi
so einfach ist das manchmal, ganz großes danke
Christian
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Originally created by: Ferengi
hallo,
meine erste Schleife und schon gibts Probleme, lasse ich die for-schleife weg, funktioniert alles ohne probleme (wert wird ins array geschrieben), mit schleife passiert aber garnix (nicht mal ein fehler)
zum testen hab ich dann noch ein 2. array (int) angelegt und den zähler (i) reinschreiben lassen, das ging, also kann die schleife nicht so falsch sein, tipps?
Christian
wenn ich es richtig sehe, ist die Liste 0 basiert,
versuche:
FOR i:=0 TO ListeLEN - 1 DO
Heiwil
Originally created by: Ferengi
bringt leider nix
zum weiteren verständnis, ich lese über eine rs232 schnittstelle an der ein 1-wire-bus hängt temperaturen ein, diese kommen auch als string wunderbar an, das ganze sieht so aus "28CEB4B0010000F8 00,13.50,56.25$R$N289349F001000036 00,23.37,74.00$R$N........."
sensornr,temp,andererwert,Zeilenschaltung
da ganz am schluß noch einiger "müll" übertragen wird muß der string etwas gekürzt werden
jetzt wirt mit dem oscat baustein list_len ermittelt wie oft es eine zeilenschaltung gab = wieviele werte, das ganze -1 damit ich bei 0 anfangen kann und den zähler gleich für das array verwenden kann
zum schluß dann der bereits gepostete teil der den string nochmal unterteilt und in das array schreiben soll
komplett
Du musst das Element i aus der Liste auswählen.
So sollte es gehen:
Heiwil
Originally created by: Ferengi
so einfach ist das manchmal, ganz großes danke
Christian