Fc103 ctd

Computerliebe

Level-2
Beiträge
40
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo
Ich will mit Variablen Pointern auf mehrere verschiedenen Tabelleneinträge zugreifen . Das normale Pointerformat z.B P#DB100.DBX0.0 BYTE 4 funktioniert bei dem Baustein nicht !!
Es muß folgendes Format anliegen P#DB100.DBx0.0 Die Längenangabe und den Typ holt sich der Baustein aus der Tabelle. Ich müsste also einen Pointer im Format P#DB100.DBX0.0 erstellen .....aber wie ?? das weglassen der nicht benötigten Einträge brachte keinen Erfolg


Vielen Dank;)
 
Suche

Such mal im Forum nach any Pointer, da findest du massig threads wie du dir einen selber zusammenbastelst! Glaube im FAQ Bereich gibt's auch was dazu!
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das ist schon richtig aber diese Beschriebungen beziehen sich auf den standartmäßigen ANY Pointer im Format z.B P#DB100.DBX0.0 BYTE 4
ich brauch den Pointer aber ohne BYTE 4 also nur P#DB100.DBx0.0 und die Deklaration wegzulassen funktioniert nicht

mfg
 
Ich will mit Variablen Pointern auf mehrere verschiedenen Tabelleneinträge zugreifen . Das normale Pointerformat z.B P#DB100.DBX0.0 BYTE 4 funktioniert bei dem Baustein nicht !!
Das ist ja auch nicht das "normale" Pointerformat, sondern ein ANY-Pointer (belegt 10 Byte).
Der Baustein FC103 "CTD" verlangt aber einen POINTER (belegt 6 Byte).

Ich müsste also einen Pointer im Format P#DB100.DBX0.0 erstellen .....aber wie ??
Indem Du einfach P#DB100.DBX0.0 an den Baustein-Eingang dranschreibst.

das weglassen der nicht benötigten Einträge brachte keinen Erfolg
ich brauch den Pointer aber ohne BYTE 4 also nur P#DB100.DBx0.0 und die Deklaration wegzulassen funktioniert nicht
Da müsstest Du mal genauer erklären, was Du mit "brachte keinen Erfolg" und "funktioniert nicht" meinst.
Nimmt der Editor das P#DB100.DBX0.0 am Baustein-Eingang nicht an oder versuchst Du eine Variable vom Typ POINTER anzulegen?
Erhältst Du irgendeine Fehlermeldung? Hast Du mal ein Codebeispiel, das zeigt, was Du machen willst?

Der Datentyp POINTER ist ein Parametertyp.
Zitat Step7-Hilfe:
Parametertypen können nur für die Parameterdeklarationen IN, IN_OUT und OUT verwendet werden.
Der Datentyp POINTER kann also nicht für Variablen benutzt werden, nur für Baustein-Übergabeparameter.
Es sind folglich offiziell keine variablen POINTER möglich, nur Konstanten.

Einen variablen POINTER kann ich mir eventuell so vorstellen, daß der POINTER ein FB-Parameter ist und
direkt im Instanz-DB manipuliert wird. Das Pointerformat ist in den Step7-Hilfethemen beschrieben.

Gruß
Harald
 
vieln Dank dür eure Hilfe

Also ich will diese Pointer die an dem Baustein drangeschrieben werden müssen variabel gestalten und diesem am Baustein aufrufen mit Nummer 0-6 o Ä Dazu habe ich mir ein UDT erstellt den ich 6x im DB als Array aufrufe. nun wollte ich mir die Pointer durch Vorgabe der Nummer und Versatz aufrufen und an dem FC103 dranschreiben. Die Frage ist wie erzeuge ich einen POINTER .
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das Bitmuster eines Pointers in 6 aufeinanderfolgenden Bytes in TEMP oder einem DB zur Laufzeit zu erzeugen ist kein Problem.
Da der FC103 "CDT" aber ein FC ist, sehe ich im Moment keine Möglichkeit, den Inhalt dieser 6 Bytes an einen Eingang des FC103
zu übergeben.

Ich würde Dein Problem wohl so lösen:
6 mal FC103-Calls programmieren und abhängig vom Selector 1-6 nur den einen passenden Call FC103 ausführen.

Oder den Bausteinschutz vom FC103 entfernen und dann in einen FB umwandeln oder mit den gewonnenen Erkenntnissen einen
eigenen FC "CDT" mit anderer Parameterübergabe schreiben.

Gruß
Harald
 
Zurück
Oben