Step 7 Pointer und E-/A-Adressen in SCL

Jannis_WM

Level-1
Beiträge
1
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo erstmal :)

Ich/Wir arbeiten gerade daran, Werte eines bestimmten Moduls zu lesen und zu schreiben.
(Kann leider nicht näher darauf eingehen was für eins. Ist aber auch egal, gehe ich von aus..)

Gearbeitet wird in TIA Portal 17 und SCL

Situation:
Die Eingangsadressen des Moduls gehen von 196 bis 213 und Ausgangsadressen von 154 bis 171.
In einem Baustein möchte ich jetzt diese auf 2 Arrays mappen, ein paar Berechnungen durchführen, um diese dann für andere Bausteine zu Verfügung zu stellen.
Stand jetzt habe ich für jedes Byte eine eigene Variable angelegt und diese dann einzeln auf die Arrays gelegt.

Gibt es eine Möglichkeit das in mit einem FOR-Loop, zu lösen, oder es mit einer anderen Methode zu vereinfachen?
Ich und andere haben schon viel ausprobiert, ge-googlelt und ge-chatgpt-t, aber nichts gefunden, was uns weiterhilft.

Ich hoffe,hier kann mir/uns weiter geholfen werden!

MfG Jannis
 
Hä? Du kannst die Ein-Ausgangsdaten direkt do deklarieren wie du sie brauchst. Also auch direkt ein Array in den Ein/Ausgangsdaten (verpackt in einen UDT)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Erstelle für die E/As UDT, übergib die an eine Function und überlagere den Eingangsparameter per AT mit einem Array (geht das IN_OUT? sonst INPUT)
Benötigt Baustein mit Standard Zugriff (also nicht "optimiert", was bei E/A-Adressen eh keinen Sinn macht).
Was für eine CPU hast du? liegen die Adressen in den Prozessabbildern der E/A?
 
Solche Prozessabbilder belege ich meistens direkt in der E/A Deklaration mit der passenden UDT, dann brauchst du auch keine Arrays und Bytes zu verrechnen, bevor die eigentliche Arbeit beginnt.

Noch ein Schöner-Wohnen-Tipp: E/A Adressen von Komponenten immer mit den gleichen Adressen beginnen, so erkennst und hast du automatisch E/A Komponenten getrennt und zugeordnet.. und musst dir nur eine Anfangsadresse merken.

Du musst uns ja nicht sagen um welches Modul es geht, was aber genau mit den E/As passieren soll, wäre schon wichtig (und bisschen Beispielcode)
 
Zurück
Oben