Umgang mit SFC20 - BLOCKMOVE
Moderatoren: Matthias, Weiss_MHJ
Umgang mit SFC20 - BLOCKMOVE
Hallo zusammen,
beim Arbeiten mit dem SFC20 in WinSPS7 (V5) habe ich ein kleines Problem.
Die Parametrierung stimmt nicht und es wird der SFC20 nicht ausgefüht.
Mein CODE:
U M 14.0
SPBNB _001
CALL SFC 20
SRCBLK:=P#DB1.DBX 0.0 BYTE 5
RET_VAL:=MW200
DSTBLK:=P#DB2.DBX 0.0 BYTE 5
_001: NOP 0
Ich möchte wenn der Merker M14.0 gesetzt ist aus dem DB1 ab dem Byte 0 die nachfolgenden 5 Byte an den DB2 ab Byte 0 senden.
Das Senden klappt gar nicht, kein einzigstes Byte wird vom DB1 an den DB2 gesendet. In der Version 4 des WinSPS7-Software hat dieses Vorgehen und der o.g. Syntax geklappt. Schon bei der Eingabe der Werte für SRCBLK und DSTBLK verhielt sich die Eingabe nicht wie in der Version 4. Denn da konnte ich z.B. DB1.dbb0 Byte 5 eingeben und erhielt P#DB1.DBX0.0BYTE5!!!!
Was mache ich falsch? Oder ist noch ein Bug vorhanden?
Gruß Carsten
beim Arbeiten mit dem SFC20 in WinSPS7 (V5) habe ich ein kleines Problem.
Die Parametrierung stimmt nicht und es wird der SFC20 nicht ausgefüht.
Mein CODE:
U M 14.0
SPBNB _001
CALL SFC 20
SRCBLK:=P#DB1.DBX 0.0 BYTE 5
RET_VAL:=MW200
DSTBLK:=P#DB2.DBX 0.0 BYTE 5
_001: NOP 0
Ich möchte wenn der Merker M14.0 gesetzt ist aus dem DB1 ab dem Byte 0 die nachfolgenden 5 Byte an den DB2 ab Byte 0 senden.
Das Senden klappt gar nicht, kein einzigstes Byte wird vom DB1 an den DB2 gesendet. In der Version 4 des WinSPS7-Software hat dieses Vorgehen und der o.g. Syntax geklappt. Schon bei der Eingabe der Werte für SRCBLK und DSTBLK verhielt sich die Eingabe nicht wie in der Version 4. Denn da konnte ich z.B. DB1.dbb0 Byte 5 eingeben und erhielt P#DB1.DBX0.0BYTE5!!!!
Was mache ich falsch? Oder ist noch ein Bug vorhanden?
Gruß Carsten
Hallo,
sowohl in der SoftSPS als auch in der realen VIPA-CPU konnte ich am mw200 dies feststellen. Zur Zeit ist dieses Verhalten nicht vorhanden und alles läuft zur vollen Zufriedenheit.
Gerade bin ich an meinem Zweit-PC mit der Vorgänger-Version 4 (DEMO) beschäftigt. Hier habe ich einen SFC20 in ein Netzwerk eingefügt, am SRCBLK den Eintrag "db1.dbb2 byte5" eingegeben. Nachdem ich den Fokus aus dem Eingabefeld gesetzt habe erhielt ich folgenden Eintrag "P#DB1.DBX2.0BYTE5"! Das ist mir bekannt. In der Version 5 habe ich die gleichen Eingaben gemacht und habe nicht nach der Verlassen des Eingabefeld den abgeänderten Eintrag erhalten. Gibt es einen Grund warum sich Version 5 abweichend verhält wie Version 4?
Gruß
sowohl in der SoftSPS als auch in der realen VIPA-CPU konnte ich am mw200 dies feststellen. Zur Zeit ist dieses Verhalten nicht vorhanden und alles läuft zur vollen Zufriedenheit.
Gerade bin ich an meinem Zweit-PC mit der Vorgänger-Version 4 (DEMO) beschäftigt. Hier habe ich einen SFC20 in ein Netzwerk eingefügt, am SRCBLK den Eintrag "db1.dbb2 byte5" eingegeben. Nachdem ich den Fokus aus dem Eingabefeld gesetzt habe erhielt ich folgenden Eintrag "P#DB1.DBX2.0BYTE5"! Das ist mir bekannt. In der Version 5 habe ich die gleichen Eingaben gemacht und habe nicht nach der Verlassen des Eingabefeld den abgeänderten Eintrag erhalten. Gibt es einen Grund warum sich Version 5 abweichend verhält wie Version 4?
Gruß
Hallo,
der Any-Zeiger "P#DB1.DBB0 BYTE 5" ist eigentlich falsch, da bei Any-Zeiger immer Bitoperanden anzugeben sind.
Bei der V5 wurde dies so gemacht, dass man z.B. "MB10" bei einem Any-Zeiger angeben kann und der Editor daraus "P#M10.0 BYTE 1" macht.
Bei DB-Daten wird aus "DB1.DBB0" dann "P#DB1.DBX0.0 BYTE 1" oder auch "DB2.DBW10" zu "P#DB2.DBX10.0 WORD 1"
Die "falsche"Angabe wird nicht mehr akzeptiert.
Am Besten also den Anfangsoperanden angeben, danach muss dann nur noch die Länge (und vielleicht der Datentyp) verändert werden.
Gruss
der Any-Zeiger "P#DB1.DBB0 BYTE 5" ist eigentlich falsch, da bei Any-Zeiger immer Bitoperanden anzugeben sind.
Bei der V5 wurde dies so gemacht, dass man z.B. "MB10" bei einem Any-Zeiger angeben kann und der Editor daraus "P#M10.0 BYTE 1" macht.
Bei DB-Daten wird aus "DB1.DBB0" dann "P#DB1.DBX0.0 BYTE 1" oder auch "DB2.DBW10" zu "P#DB2.DBX10.0 WORD 1"
Die "falsche"Angabe wird nicht mehr akzeptiert.
Am Besten also den Anfangsoperanden angeben, danach muss dann nur noch die Länge (und vielleicht der Datentyp) verändert werden.
Gruss