Step 7 S7-317-2 DP E/A Prozessabbild Schreib-Lesezugriff "verkehrt herum" mittels BLCKMOVE

Draco Malfoy

Level-1
Beiträge
1.168
Reaktionspunkte
82
Zuviel Werbung?
-> Hier kostenlos registrieren
S7-317-2 DP E/A Prozessabbild Schreib-Lesezugriff "verkehrt herum" mittels BLCKMOVE

Guten Morgen!

Weiß jemand von euch, ob es zulässig ist, auf das Prozessabbild der CPU "verkehrt herum" zuzugreifen, also schreibend auf den E-Bereich und lesend auf den A-Bereich ??
Vielen Dank schon mal im Voraus!

Beste Grüße, Draco

Code:
      CALL  "BLKMOV"
       SRCBLK :="Obertisch Siemens->Bosch".Statusworte
       RET_VAL:=#TEMP0
       DSTBLK :=P#E 68.0 BYTE 28
      NOP   0
 
Nachdem die Transfer-Befehler ins EW klappen, müsste es mit Blockmove auch klappen.
Vorausgesetzt die entsprechenden Fehler-OBs sind geladen.

Ist aber schon ganz schlechter Stil!
Kannst du nicht wenigstens bei deiner Ziehanlage auf einen Koppel-DB ausweichen?

Gruß
Dieter
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke für die Rückmeldung!
Nachdem die Transfer-Befehler ins EW klappen, müsste es mit Blockmove auch klappen.
Vorausgesetzt die entsprechenden Fehler-OBs sind geladen.
Welche Fehler-OBs meinst Du ?
Ist aber schon ganz schlechter Stil!
Kannst du nicht wenigstens bei deiner Ziehanlage auf einen Koppel-DB ausweichen?
Ja das mit dem Stil da hast Du leider recht. Koppel-DBs habe ich wüsten Haufen, um die Steuer/Statuswörter entsprechend aufzusplitten.
Mein Problem ist, das was ich im Code sehe, ist daß dort mit SFC14/15 die Kommunikation mit dem Slave aus dem entsprechenden Speicherbereich stattfindet. Jedoch, wo im ursprünglichen Programm diese Daten in das Prozessabbild erst geschrieben werden, das habe ich bisher noch nicht rausgefunden. Und ob es am Stück passiert, ist auch so ne Frage. Daher wollte ich von diesem Backengineering die Finger lassen.

Das ist die Ursprungssituation:
Code:
CALL  SFC   14
  IN0    :=W#16#44
  RET_VAL:=#TEMP0
  OUT1   :=P#E 68.0 BYTE 28
NOP   0
 
Zuletzt bearbeitet:
Die üblichen Fehler-OBs für E/A
OB82,83,86,121,122

Du greifst ja auf eine Hardware zu, die nicht existiert.

Gruß
Dieter
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Die Eingänge E und die Ausgänge A im Prozessabbild sind eigentlich nur spezielle Merker und können beschrieben und gelesen werden. Man muß nur beachten, daß die E-"Merker" am Zyklusbeginn mit dem Zustand der Eingangsmodule beschrieben werden und die A-"Merker" bei CPU-Stop gelöscht werden.
Das komplette Prozeßabbild kann ohne Fehler beschrieben werden, egal ob es eine zugehörige Baugruppe gibt oder nicht. Es werden keine Fehler-OB aufgerufen.

Schreiben auf Eingänge wird oft benutzt um Prozeßsignale zu simulieren oder SE/TON von Eingängen direkt wieder auf die E-Merker zu speichern. Man kann die E/A-"Merker" auch als Schmiermerker oder Zwischenmerker innerhalb des selben OB1-Zyklus nutzen, wenn die "echten" Merker M nicht ausreichen und DB nicht genutzt werden können/sollen. Wegen dem "guten Programmierstil" sollte man sowas allerdings nur ausnahmsweise tun ...

Harald
 
Zurück
Oben