Quantcast
Channel: SPS-Forum - Automatisierung und Elektrotechnik
Viewing all articles
Browse latest Browse all 49362

TIA Pointer

$
0
0
Hallo Forum,

meine Hardware: CPU 315-2 PN/DP (6ES7 315-2EH14-0AB0)
meine Software: TIA V14 SP1

Meine Aufgabe, ist es einen Pointer zusammenzustellen. Aber der Pointer soll nicht komplett absolut adressiert sein, sondern der FB (mit dem Pointeraufruf) soll seinen eigene Instanzdatenbausteinnummer selbst auslesen, und den Pointer die DB Nummer mitteilen (als Variable). Wie ich die Instanzdatenenbausteinnummer des FBs auslese habe ich herausgefunden.

Code:

 
VAR_INPUT
X :INT;
END_VAR
 
VAR_OUTPUT
DBNR :INT;
END_VAR
 
VAR_TEMP
//---------------------------------------------------
// Definition einer Hilfsvariablen und einer eigenen
// Datentypsicht auf den Datentyp ANY
//---------------------------------------------------
TempPointer              :ANY;              // Hilfsvariable
AnyPointer AT TempPointer: STRUCT
                              BYTE0 :BYTE;  // Byte 0
                              TYP  :BYTE;  // Byte 1        Daten/Parametertyp
                              ANZ  :WORD;  // Byte 2+3      Länge der Variablen
                              DBNR  :WORD;  // Byte 4+5      DB-Nummer
                              BZ    :DWORD; // Byte 6 bis 10 Bereichszeiger
                          END_STRUCT;
END_VAR
 
BEGIN
 
TempPointer := X;                    // Hilfsvariable mit Zeiger auf
              // Eingang X laden
 
DBNR := WORD_TO_INT(AnyPointer.DBNR); // Zugriff auf Byte 4 und 5
 
END_FUNCTION_BLOCK

Das funktioniert auch alles soweit. Das Programm liest die Datenbausteinnummer des FBs aus.

Mein Frage, wie kann ich die ausgelesene DB Nummer an den Pointer anbinden.

Zum Beispiel
p#Meineausgelesenedbnummer.dbx48.0 byte 48

Folgende Beiträge zu dem Thema habe ich schon gelesen:
https://www.sps-forum.de/faq/12923-z...atentypen.html
https://www.sps-forum.de/faq/8887-po...fifo-lifo.html
https://www.sps-forum.de/simatic/474...und-lesen.html
https://support.industry.siemens.com...dti=0&lc=de-WW
https://support.industry.siemens.com...dti=0&lc=de-WW

Viewing all articles
Browse latest Browse all 49362


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>