Schnick und Schnack
Level-1
- Beiträge
- 226
- Reaktionspunkte
- 27
-> Hier kostenlos registrieren
Hallo zusammen.
Ich bin dabei, einen SCL-FC zu erstellen, mit einem Bit als Eingangsparameter.
Dieses Bit ist immer Teil eines Arrays. Nun sollte ich im FC den Arrayindex davon wissen.
Wenn ich also DBXY.ArrayXY[25] am FC verknüpfe, brauche ich IM(!!) FC die 25 als zBsp. Integer.
Wobei das ArrayXY vom Typ Bool ist.
Da das Array immer am Anfang eines DB's liegt, könnte ich das Bit als Pointer einlesen.
Denn die Bitnummer entspricht dabei immer dem Arrayindex da das Array von 0 - n geht.
Aus diesem Faden habe ich folgende Lösung:
http://www.sps-forum.de/simatic/24511-pointer-scl-kein-any.html
Wie da auch steht, ist diese Deklaration als Input-Parameter in einem FC nicht möglich.
Ach übrigens, im AWL haben wir das so gemacht:
(ArrayBit ist ein InOut-Parameter vom Typ Pointer)
Und es muss ein FC sein. Hat jemand sowas ähnliches schon realisiert?
Ich hab auch daran gedacht einen reinen Pointer als Input-Parameter und einen als Tempvariable mit der Struktur
aber auch das frisst er mir nicht.
Im FB gehts. Der FC mag mich nicht :-(
Bin für alle Ideen dankbar.
Liebe Grüsse
Ich bin dabei, einen SCL-FC zu erstellen, mit einem Bit als Eingangsparameter.
Dieses Bit ist immer Teil eines Arrays. Nun sollte ich im FC den Arrayindex davon wissen.
Wenn ich also DBXY.ArrayXY[25] am FC verknüpfe, brauche ich IM(!!) FC die 25 als zBsp. Integer.
Wobei das ArrayXY vom Typ Bool ist.
Da das Array immer am Anfang eines DB's liegt, könnte ich das Bit als Pointer einlesen.
Denn die Bitnummer entspricht dabei immer dem Arrayindex da das Array von 0 - n geht.
Aus diesem Faden habe ich folgende Lösung:
http://www.sps-forum.de/simatic/24511-pointer-scl-kein-any.html
Code:
FUNCTION FC333 : void
VAR_INPUT
Zeiger1 : POINTER;
_Zeiger1 AT Zeiger1 : STRUCT
DBNr: WORD;
Adr: DWORD;
END_STRUCT;
END_VAR
;
END_FUNCTION
Ach übrigens, im AWL haben wir das so gemacht:
(ArrayBit ist ein InOut-Parameter vom Typ Pointer)
Code:
L P##ArrayBit
LAR1
L W [AR1,P#0.0]
T #DB_NR
L D [AR1,P#2.0]
L DW#16#FFFFFF
UD
T #INDEX
Und es muss ein FC sein. Hat jemand sowas ähnliches schon realisiert?
Ich hab auch daran gedacht einen reinen Pointer als Input-Parameter und einen als Tempvariable mit der Struktur
aber auch das frisst er mir nicht.
Im FB gehts. Der FC mag mich nicht :-(
Bin für alle Ideen dankbar.
Liebe Grüsse