TIA S7-1200 Eingangsdaten in Datenbaustein kopieren

Philipp7010

Level-1
Beiträge
2
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo
ich bin neu im Forum und im TIA-Portal. Meine Frage ist vermutlich ein alter Hut aber irgendwie steh ich auf dem Schlauch. Ich möchte bei einem DP-Slave an einer 1200 CPU die Eingangsdaten in eine Datenbaustein kopieren. Bei der 300er habe ich das einfach mit einem MOVE_BLK gemacht. Das gibt es ja in der 1200er so nicht mehr. Ich habe es nun mit dem POKE_BLK versucht. Laut Dokumentation sollte das Funktionieren, es tut sich aber nichts... Der Code in SCL dazu sieht so aus:

OKE_BLK(area_src:=#Tag_Source_Area,


dbNumber_src:=#Tag_Source_DBNumber, ///16#81 für zugriff auf eingangsdaten
byteOffset_src:=#Tag_Source_Byte, /// 0 weil es ein Eingang ist
area_dest:=#Tag_Destination_Area, ///16#84 f¸r Datenbaustein
dbNumber_dest:=#Tag_Destination_DBNumber, //25 --> Datenbausteinnummer in meinem Projekt
byteOffset_dest:=#Tag_Destination_Byte, // 0--> als Startadresse im Baustein
count:=#Tag_Count); // 64-->64byte sollen ¸bertragen werden

Machen soll er, aus dem Eingang 256 64byte in den DB25 mit der startadresse 0.0 schreiben.

Das ist in einem FB geschrieben und wird im Programm aufgerufen. Genauso wollte ich Ausgänge aus einem DB beschreiben. Sollte ja eigentlich nichts besonderes sein....
Kann mir jemand weiterhelfen?
Gruß Philipp
 
Hi Philipp7010,

ich würde einen UDT erstellen, der die Struktur von deinen Daten hat, die du von der Peripherie kopieren möchtest. Danach legst du eine Eingangsvariable mit dem UDT als Typ auf die Adresse einer dezentralen Peripherie. Dann eine DB anlegen, in dem du entweder ein Element vom Type des UDTs hast oder der DB hat den Type des UDTs. Danach kannst du ganz einfach dein Eingangsvariable dem Element im DB bzw. dem DB zuweisen.
Für dii Ausgänge geht es genauso. Siehe beigefügtes Bild.

Peripherie_mit_UDT.jpg

Gruß Michitronik
 
Zurück
Oben