TIA PEW mit flexibler Adresse

Beiträge
6
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
habe gerade ein Retrofit in Arbeit.

früher konnte man so PEW zugriffe auf die jeweiligen Adressen machen.

L PEW [#tDP_Adress_2]
T #sHIW
L 164
/I
T #o_n_Ist

wie kann ich das im Tia realisieren, stehe gerade etwas auf dem Schlauch.

Danke
 
Moin Guybrush Threepwood,

für Dich relevant ist der indirekte Zugriff auf PEW's? Warum?
Soll/muss muss es AWL bleiben?

Du könntest einen Datentyp anlegen. Z.B. mit einem Array an Worten.
Dann kannst Du in der Variablentabelle eine Variable Ex.y mit dem Datentypen Deines UDT anlegen.
So kannst Du per INDEX auf die einzelnen EWs zugreifen.
Der Zugriff auf ein PEW erfolgt mit ":p"
Also EW256:p

Gruß
MFreiberger
 
Ich habe es grade mal grob getestet und wüsste nichts, was dagegen spricht, es ebenso zu machen. Vielleicht gibt's eine schönere Methode, aber L EW [ #Adresse] wird bei mir im TIA AWL nicht angemeckert, solange #Adresse vom Typ DInt ist.

Getestet mit TIA V18Upd3, S7-1515
 
Zuletzt bearbeitet:
Du kannst dir mal die TIA Hilfe von PEEK / POKE anschauen. Vielleicht bringt dich das weiter.
PEEK: Speicheradresse lesen (S7-1200, S7-1500)
Beschreibung
Mit der Anweisung "Speicheradresse lesen" lesen Sie eine Speicheradresse ohne Angabe eines Datentyps aus einem Standard-Speicherbereich aus.
Um den Datentyp der Anweisung zu verändern, verwenden Sie die folgende Syntax:
PEEK_<Datentyp>();
PEEK: Speicheradresse lesen (S7-1200, S7-1500)
ParameterDeklarationDatentypSpeicherbereichBeschreibung
AREAInputBYTEE, A, M, DFolgende Bereiche können ausgewählt werden:
  • 16#81: Input
  • 16#82: Output
  • 16#83: Merker
  • 16#84: DB
  • 16#1: Peripherieeingang (nur S7-1500)
DBNUMBERInputDINT, DB_ANYDNummer des Datenbausteins, wenn AREA = DB, ansonsten "0"
BYTEOFFSETInputDINTE, A, M, DAdresse, an der ausgelesen wird
Es werden nur die 16 niederstwertigen Bits verwendet.
_<Datentyp>Bitfolgen
Vorbelegung: BYTE
-Datentyp des Funktionswerts:
  1. Sie können den Datentyp der Anweisung explizit mit Hilfe von "_" angeben.
  2. Wenn Sie den Datentyp nicht explizit angeben, dann wird er durch die verwendeten Variablen oder typisierten Konstanten bestimmt.
  3. Wenn Sie den Datentyp weder explizit angeben, noch definierte Variablen oder typisierte Konstanten angeben, wird der voreingestellte Datentyp verwendet.
FunktionswertBitfolgenE, A, M, DErgebnis der Anweisung
 
Hi,

wir lesen und schreiben unsere DIs und DOs ausschließlich mit Peek und Poke.
Wir haben da dazu schöne Faceplates für die HMI gebaut, um die Werte auch zu Forcen usw.

1709816684617.png
 
Moin Stups,

Hi,

wir lesen und schreiben unsere DIs und DOs ausschließlich mit Peek und Poke.
Wir haben da dazu schöne Faceplates für die HMI gebaut, um die Werte auch zu Forcen usw.

Anhang anzeigen 76163

und warum macht ihr das? Inputs manipulieren halte ich bei produktiven Anlagen nicht für sinnvoll. Aber das ist eine andere Baustelle.

In diesem Thread geht es auch gar nicht darum, wie man die E/As behandelt, sondern wir man den Peripheriezugriff innerhalb eines abgeschlossenen FBs handeln kann.

VG
MFreiberger
 
und warum macht ihr das? Inputs manipulieren halte ich bei produktiven Anlagen nicht für sinnvoll. Aber das ist eine andere Baustelle.
Hat einiges für sich. es werden die Namen der eingänge, die aus einem DB kommen automatisch in die HMI geladen. Wir müssen nur noch aufkopieren bei neuen Anlagen. So können mittels Indexer- Verfahrens auch 1000e E/As auch auf kleinen Panels (bis 7" hinab) dargestellt werden. Forcen ist auch nur mit derfiniertem Benutzerlevel möglich
 
Zurück
Oben