TIA WDREC mt Simotion

undeat

Level-2
Beiträge
9
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich weiß leider nicht, ob es in dieses Forum am besten passt. Simotion Programmierung ist ja nicht ganz so populär für Logik und Dezentrale Peripherie, aber vielleicht kennt sich ja jemand aus. Ich muss mit einer D425 CAN Bus Telegramme mit Transparent Mode (Layer 2) über den Siemens PN/Link Adapter empfangen. Dazu muss ich in die Sub Module vom PN/Link Adapter ein paar Parameter (Criterion/Maske) schreiben. Auf Simatic Seite (S7 1500) war das kein Problem mit WDREC

REQ := Init
ID := HWID aus Geräteconfig
Index := 16#210
LEN := 8
RECORD := Struct of 2 DWORDs

Auf Simotion Seite brauche ich das auch. Dort gibt es aber die Hardware ID nicht und den Baustein WDREC gibt es dort so auch nicht.

es gibt

_writeVariableRecord(
EXECUTE := Init
// ,IOID := ???
,LOGADDR :=???
,DSNR := 16#210 ???
,LEN := 8
,RECORD := Array of 8 Byte
,DONE => Done
// ,BUSY =>
// ,ERROR =>
// ,ERRORID =>
);

dort bekomme ich im ST Programm aber die Meldung:
Fehler 15:17:21 CAN(47) : 6009 :Funktionsbezeichner erwartet "_writeVariableRecord"
Information 15:17:21 CAN(47) : 32024 :FUNCTION_BLOCK "_writeVariableRecord" global in der Quelle "device.pck"deklariert



oder

_writeRecord(
ioId := ???
,logAddress := ???
,recordNumber := 16#210 ???
,offset := 0 ???
,dataLength := 8
,data := Array of 8 Byte
,nextCommand := ???
,commandId := ???
);

Welchen Baustein muss ich nehmen und wie muss ich den beschalten?
die E/A Adressen vom Modul sind Eingänge Bytes 1..14 und Ausgänge Byte 1

Gibt es auch ein Pendant zum DPRD_DAT?
 
Hallo,

ich weiß leider nicht, ob es in dieses Forum am besten passt. Simotion Programmierung ist ja nicht ganz so populär für Logik und Dezentrale Peripherie, aber vielleicht kennt sich ja jemand aus. Ich muss mit einer D425 CAN Bus Telegramme mit Transparent Mode (Layer 2) über den Siemens PN/Link Adapter empfangen. Dazu muss ich in die Sub Module vom PN/Link Adapter ein paar Parameter (Criterion/Maske) schreiben. Auf Simatic Seite (S7 1500) war das kein Problem mit WDREC

REQ := Init
ID := HWID aus Geräteconfig
Index := 16#210
LEN := 8
RECORD := Struct of 2 DWORDs

Auf Simotion Seite brauche ich das auch. Dort gibt es aber die Hardware ID nicht und den Baustein WDREC gibt es dort so auch nicht.

es gibt

_writeVariableRecord(
EXECUTE := Init
// ,IOID := ???
,LOGADDR :=???
,DSNR := 16#210 ???
,LEN := 8
,RECORD := Array of 8 Byte
,DONE => Done
// ,BUSY =>
// ,ERROR =>
// ,ERRORID =>
);

dort bekomme ich im ST Programm aber die Meldung:
Fehler 15:17:21 CAN(47) : 6009 :Funktionsbezeichner erwartet "_writeVariableRecord"
Information 15:17:21 CAN(47) : 32024 :FUNCTION_BLOCK "_writeVariableRecord" global in der Quelle "device.pck"deklariert



oder

_writeRecord(
ioId := ???
,logAddress := ???
,recordNumber := 16#210 ???
,offset := 0 ???
,dataLength := 8
,data := Array of 8 Byte
,nextCommand := ???
,commandId := ???
);

Welchen Baustein muss ich nehmen und wie muss ich den beschalten?
die E/A Adressen vom Modul sind Eingänge Bytes 1..14 und Ausgänge Byte 1

Gibt es auch ein Pendant zum DPRD_DAT?

Servus,

IOID bezieht die LOGADDR auf Ein/Ausgang.
LOGADDR auf die Adresse.

Bsp mit E-Bereich 200.0 - 201.7 und
A-Bereich 300.0 - 301.7

Beispiel mit E
IOID = INPUT
LOGADDR = 200

Beispiel mit A
IOID = OUTPUT
LOGADDR = 300

Anbei noch ein Auszug aus dem Handbuch SIMOTION Systemfunktionen/-variablen.

Du kannst entweder den FB „_writeVariableRecord“ oder die Systemfunktion „_writeRecord“ benutzen.
Für den FB musst du noch die entsprechende Instanz deklarieren.

Aufruf müsste dann z.B. so Aussehen, dann
sollte die Meldung mit dem Funktionsbezeichner verschwinden.

Code:
VAR
writeVariableRecord_IDB : _writeVariableRecord;
END_VAR



writeVariableRecord_IDB(
        EXECUTE := Init
    // ,IOID := ???
        ,LOGADDR :=???
        ,DSNR := 16#210 ???
        ,LEN := 8
        ,RECORD := Array of 8 Byte
        ,DONE => Done
    // ,BUSY => 
    // ,ERROR => 
    // ,ERRORID =>
    );


656f495c8b0eb28aea0d03e673534f50.jpg



Mit freundlichen Grüßen
Piit


Gesendet von iPhone mit Tapatalk
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Vielen Dank für die Antwort. Damit wäre die Verwendung vom _writeVariableRecord ja soweit klar.
Leider lässt sich
_writeVariableRecord nicht instanziieren:

Fehler 16:26:22 CAN(32) : 5008 :FUNCTION_BLOCK oder CLASS "_writeVariableRecord" als Datentyp unzulässig
Fehler 16:26:22 CAN(48) : 6009 :Funktionsbezeichner erwartet "WDREC"


WDREC : _writeVariableRecord;
 
Ich probiers mal bei mir.
Welche Simotion FW hast du und welchen Scout ?
Welche Technologiepakete werden verwendet ?

Mit freundlichen Grüßen
Piit


Gesendet von iPhone mit Tapatalk
 
TIA 15 UPD4
Scout 5.2.10
FW 5.3
Technologie ist erstmal noch nichts projektiert

Komischerweise, wenn ich das in einem KOP/FUP mache, dann instanziiert er den Baustein mit dem Typ _WRITEVARIABLERECORD.
 
Hat sich geklärt. Ich war im ST innerhalb einer Function. Die hat ja keine "Static" VARs daher ging das nicht. Jetzt klappt es.
Vielen Dank.
 
Zurück
Oben