-> Hier kostenlos registrieren
Hallo,
folgende Situation: Ich habe einen FB in dessen IDB ein struct von 8 Doppelwörtern (Empfangspuffer) und 3 structs zs1, zs2, zs3 mit jeweils 8 doppelwörtern (Zwischenspeicher 1-3) vorhanden sind. Ich hole von einer peripheren Baugruppe eine Liste mit 8DW in den Empfangspuffer, transportiere sie mit SFC 20 in den ZS1, hole die nächste Liste in den EP, transportiere sie mit SFC20 in ZS2, hole die 3. Liste in den EP und transportiere sie wieder mit SFC 20 in den ZS3. Nun habe ich versucht, den SFC20 indirekt zu adressieren, dabei bin ich gescheitert.
Wenn ich beim ersten Aufruf an SRCBLK #ep und an DSTBLK #zs1 schreibe, beim 2. Aufruf #ep an SRCBLK und #zs2 an DSTBLK, beim 3. Aufruf wieder #ep an SRCBLK und #zs3 an DSTBLK, funktioniert das. Nun wollte ich aber die SFC 20 nur einmal in einem Netzwerk stehen haben, und vorher je nach Aufrufbedingungen einer Variable (z.B. #ziel) die verschiedenen Zielbereiche zuweisen, die Quelle ist ja in allen 3 Fällen gleich. Ich hatte mir das etwa so vorgestellt:
u M1.0 //Aufrufbedingung1
spbn end1
L P#zs1
T #ziel
end1: Nop 0
u M1.1 //Aufrufbedingung2
spbn end2
L P#zs2
T #ziel
end 2: Nop 0
usw. und dann SFC 20 mit SRCBLK #ep und DSTBLK #ziel aufrufen.
Das geht leider gar nicht. Auch mit einem MD und [#ziel] hatte ich keinen Erfolg. Geht das überhaupt so, wenn ich mich in einem FB und dem dazugehörigen IDB bewege?
Leider habe ich zu Hause nichts, um Beispielcode zu erzeugen, die Beschäftigung mit der Share- Version von WinSPS7 habe ich frustriert aufgegeben.
Ich hoffe, jemand hat eine Idee.
Gruß Micha
folgende Situation: Ich habe einen FB in dessen IDB ein struct von 8 Doppelwörtern (Empfangspuffer) und 3 structs zs1, zs2, zs3 mit jeweils 8 doppelwörtern (Zwischenspeicher 1-3) vorhanden sind. Ich hole von einer peripheren Baugruppe eine Liste mit 8DW in den Empfangspuffer, transportiere sie mit SFC 20 in den ZS1, hole die nächste Liste in den EP, transportiere sie mit SFC20 in ZS2, hole die 3. Liste in den EP und transportiere sie wieder mit SFC 20 in den ZS3. Nun habe ich versucht, den SFC20 indirekt zu adressieren, dabei bin ich gescheitert.
Wenn ich beim ersten Aufruf an SRCBLK #ep und an DSTBLK #zs1 schreibe, beim 2. Aufruf #ep an SRCBLK und #zs2 an DSTBLK, beim 3. Aufruf wieder #ep an SRCBLK und #zs3 an DSTBLK, funktioniert das. Nun wollte ich aber die SFC 20 nur einmal in einem Netzwerk stehen haben, und vorher je nach Aufrufbedingungen einer Variable (z.B. #ziel) die verschiedenen Zielbereiche zuweisen, die Quelle ist ja in allen 3 Fällen gleich. Ich hatte mir das etwa so vorgestellt:
u M1.0 //Aufrufbedingung1
spbn end1
L P#zs1
T #ziel
end1: Nop 0
u M1.1 //Aufrufbedingung2
spbn end2
L P#zs2
T #ziel
end 2: Nop 0
usw. und dann SFC 20 mit SRCBLK #ep und DSTBLK #ziel aufrufen.
Das geht leider gar nicht. Auch mit einem MD und [#ziel] hatte ich keinen Erfolg. Geht das überhaupt so, wenn ich mich in einem FB und dem dazugehörigen IDB bewege?
Leider habe ich zu Hause nichts, um Beispielcode zu erzeugen, die Beschäftigung mit der Share- Version von WinSPS7 habe ich frustriert aufgegeben.
Ich hoffe, jemand hat eine Idee.
Gruß Micha