TIA Optimierten DB an FB interne Bausteinschnittstelle Variant übergeben.

vollmi

Level-3
Beiträge
5.447
Reaktionspunkte
1.414
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallöchen

Ich habe da einen Kommunikationsbaustein, den ich vor Jahren mal für die 300/400 gebastelt habe. Da gebe ich einen Any an der Schnittstelle. Haue ne Pointersicht drauf und übergebe dann den Any an die SEND/RECV Bausteine für den Sende und Empfangsbereich.

Das hat auch immer wunderbar geklappt, auch bei der 1500er funktioniert das wunderbar. Jetzt ist es ja aber so das man vermutlich irgendwann auf Optimierte DBs wechseln will. Und darum würde ich mich gerne jetzt schonmal damit beschäftigen wie man solche Konstrukte korrekt übergibt.

Die neuen BSEND können ja mit einem ANY beschickt werden (schnittstelle ist ein INOUT Variant), ein ANY geht aber natürlich nur mit nicht optimierten Bausteinen.
Aber wie übergebe ich einen Optimierten Baustein als Empfangs und Sendebereich über die Aufrufende Schnittstelle an einen BSEND BRECV?

mfG René
 
Wenn Sie fur dass bereich von der ANY POINTER eine PLC-Datentyp macht konte Sie das vol symbolisch adressieren sehe bilden.

Optimierter DB.JPG
Gruss,
Joop
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo René,

hast du es mal mit "VARIANT" versucht? Ich nutze das so mit TSEND_C/TRCV_C im nichtoptimierten Bereich. Ich denke das funktioniert aber auch optimal optimiert :) . Allerdings fasse ich mit "SERIALIZE"/DESERIALIZE" bis zu zehn solcher Datenbereiche zu einen Sendepuffer bzw. Empfangspuffer (jeweils ARRAY of Byte) zusammen, und übergebe diese ARRAYS an die Kommunikationsbausteine.
 
Optimierte Bausteine machen mit SEND/RECV Bausteine meiner Meinung nach keinen Sinn. Optimiert bedeutet ja schließlich dass noch nicht mal zwingend die Daten in der angelegten Reihenfolge im Speicher liegen müssen. Selbst wenn das Gegenstück mit der gleichen Firmware und TIA Version arbeitet, würde ich mich nicht drauf verlassen, dass auf beiden Seiten gleich optimiert sprich angeordnet wird.
 
Zurück
Oben