Fill_BLK usw in codesys?

In Codesys gibt es memcpy, memset, usw.
Wenn zwei Arrays den gleichen Typ und Größe haben kannst Du es über einen normalen Zuweisungsbefehl komplett übertragen, bei Strukturen geht das meine ich auch.
Im übrigen würde ich nicht versuchen krampfhaft irgendwelche Funktionalitäten von einer Steuerung auf eine andere zu übertragen, das geht schief.

Von irgendwas mit Internetzugang gesendet.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke!
Ich habe noch nicht viel Erfahrung mit Codesys und bin froh, dass ich die Software (Maschinenprogramm) im TIA nun langsam verstanden habe. Da ich im TIA viel mit DB's für Merker und Parameter arbeite, muss ich mir sowieso was ausdenken wie ich es im Codesys am besten umsetze. Im Tia kann man sehr komfortabel mit struct und UDT in den DB's arbeiten. Das muss sich mir im Codesesys erst noch erschließen.
Dazu aber gleich mal noch ne Frage zur Verwendung der Datentypen:
ich habe einen Datentyp angelegt zur Auswertung (Skalierung usw.) von Analogdaten.
PMES.png

Ich möchte nun in der Variablentabelle den Einzelheiten Werte zuweisen. Ich sehe aber nur den Datentyp
Variablentabelle.png
Im TIA Portal kann man das struct ja dann ausklappen und dann die Werte zuweisen. Gibt es in Codesys so eine Funktion auch, oder muss ich das explizit alles neu eintragen in der Variablentabelle, z.B. Druck.HI_LIM := ....; ?
 
Ich würde das gern in eine GVL packen um mir die Variablen "zentral" zu strukturieren.
Hier mal noch ein Bild wie ich es mir dachte, scheint aber nicht hinzuhaun. Daneben so, wie es im Moment im TIA in einem DB ist. So ähnlich würde ich es gern im Codesys auch haben wenns geht.
Variablentabelle.png Variablentabelle TIA.jpg

p.s. Jetzt habe ich es doch gefunden. Über Variable deklarieren kann ich die einzelnen Sachen vorbelegen.
 
Zuletzt bearbeitet:
gibt es denn eine Funktion mit der ich eine Int Zahl vorgebe zwischen 0 und 80 und die Funktion füllt dann das entsprechende Array Fach mit 1
also Zahl 27 --> Ausgang[27] :=1
Das einzige was ich in der Hilfe mit mem finde ist die CAA_Memory.library. Aber da ist nix passendes bei irgendwie (MEM.Fill usw.)
 
Hallo Credofire,
Du verwirrst mich etwas, denn Du hast Dir auf Deine Frage eigentlich schon die Antwort gegeben, oder ich verstehe hier was Mist.
Sehe ich das richtig, Du möchtest auf ein Element eines Arrays über eine Variable zugreifen?
Falls ja hast Du die Antwort schon gegeben nur musst Du die Zahl durch die Variable austauschen.
Code:
Ausgang[iVar] := 1;
 
Zuviel Werbung?
-> Hier kostenlos registrieren
ah, das ist ja schlau, ich mache den Array bereich einfach als Variable iVar und die seitze die Eingangszahl als iVar

Code:
iVar := Eingang; // zB 24
Ausgang[iVar] := 1; // ist dann bit/feld 24=1
an sowas habe ich ja noch gar nicht gedacht. Das wäre ja für mein Siemensprogramm ja auch nutzbar.

big thanx
 
Zurück
Oben