Hallo,
benötige ein Schieberegister. In diesem Schieberegister müsste ich ein
eigenes struct hinterlegen.
bräuchte dringend Tipps oder hat schon jemand so etwas ähnlicheds implementiert ??
gruß und vielen Dank
bertl71
Selberbauen:
Man nehme:
1 Struct
1 Array [0..wievielauchimmer] of Struct
1 FB PushPop
PushPop:
1 VAR_IN_OUT Array of Struct
1 VAR_IN Inhalt der eingegeben werden soll : Struct
1 VAR_OUT Inhalt der Ausgegeben werden soll : Struct
noch backen, dann benutzen...
Eine einfache Struktur für ein Schieberegister ist dieses Beispiel.
Hat den Nachteil das der Baustein die Zykluszeit sehr belastet.
Deshalb wird meistens ein Ringregister benutzt der aber wesentlich aufwendiger ist.
VAR
aDataStruct : ARRAY [1..100] OF myStruct ;
xStart : BOOL ;
i: INT;
END_VAR
( um zu Schieben das bit xStart auf TRUE Setzen )
IF xStart THEN
FOR i := 0 TO 98 DO
aDataStruct [100 - i] := aDataStruct [99 - i];
END_FOR
( aDataStruct [1] := ??? ; neue Daten )
xStart := FALSE ; ( Solange xStart TRUE darf aus einer anderen task nicht auf Daten zugegriffen werden Inkonsistenz )
END_IF
Talk.ru: 1
schau dir mal die sachen von oscat (open source community for automation technology) an
dort gibts eine freie bibliothek mit vielem in st und alles mit source code
schieberegister findest du unter logic
Hallo
Ich kann trotz intensiven Googeln nichts über OSCAT finden.
Bitte einen Link posten.
Grüße Paul
http://www.oscat.de m
Log in to post a comment.
Hallo,
benötige ein Schieberegister. In diesem Schieberegister müsste ich ein
eigenes struct hinterlegen.
bräuchte dringend Tipps oder hat schon jemand so etwas ähnlicheds implementiert ??
gruß und vielen Dank
bertl71
Selberbauen:
Man nehme:
1 Struct
1 Array [0..wievielauchimmer] of Struct
1 FB PushPop
PushPop:
1 VAR_IN_OUT Array of Struct
1 VAR_IN Inhalt der eingegeben werden soll : Struct
1 VAR_OUT Inhalt der Ausgegeben werden soll : Struct
noch backen, dann benutzen...
Eine einfache Struktur für ein Schieberegister ist dieses Beispiel.
Hat den Nachteil das der Baustein die Zykluszeit sehr belastet.
Deshalb wird meistens ein Ringregister benutzt der aber wesentlich aufwendiger ist.
VAR
aDataStruct : ARRAY [1..100] OF myStruct ;
xStart : BOOL ;
i: INT;
END_VAR
( um zu Schieben das bit xStart auf TRUE Setzen )
IF xStart THEN
FOR i := 0 TO 98 DO
END_FOR
( aDataStruct [1] := ??? ; neue Daten )
xStart := FALSE ; ( Solange xStart TRUE darf aus einer anderen task nicht auf Daten zugegriffen werden Inkonsistenz )
END_IF
Related
Talk.ru: 1
schau dir mal die sachen von oscat (open source community for automation technology) an
dort gibts eine freie bibliothek mit vielem in st und alles mit source code
schieberegister findest du unter logic
Hallo
Ich kann trotz intensiven Googeln nichts über OSCAT finden.
Bitte einen Link posten.
Grüße Paul
http://www.oscat.de m