TIA PN/PN Koppler Datenaustauch

knuppel

Level-1
Beiträge
189
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Es handelt sich um eine CPU 1212 mit PN/PN Koppler. Von einem Bekannten habe ich ein paar PLC-Datentypen als udt's bekommen, siehe Bild. Ich habe einen Datenbaustein angelegt (DB_Daten_PN) und dort Variablen mit den udt's als Datentypen angelegt, damit ich diese auf meiner Steuerung schreiben/lesen kann.
An meiner Steuerung soll dann ein PN/PN Koppler angeschlossen werden. Diesen habe ich im Projekt auch schon angelegt und habe im jeweils 3 mal 128 Byte für IN und Out vergeben.
Ziel ist es, dass eine andere Steuerung über den PN/PN Koppler auf meine Steuerung zugreift und die Udt's ausliest, bzw. mit Werten füllt.
Leider habe ich noch keine Vorstellung wie das genau passiert. Muss ich da noch irgendetwas in meiner SPS vorbereiten? Wie kommt die andere SPS auf meine Daten?

Gruß knuppel
 
Ein PN/PN Koppler funktioniert genau wie der DP/DP Koppler.

d.h. du legst z.B. 128 Byte in und 128 Byte Out in den Koppler, dein Gegenüber projektiert ebenfalls den PN/PN Koppler,
legt die Reihenfolge der E/A aber genau anders herum rein ( also zuerst 128 Byte Out und dann 128 Byte In ).

Wenn du dann auf die Ausgänge des Kopplers Werte schreibst, kommen die beim Gegenüber als Eingänge an.

Datenkonsistenz beachten.
 
Wenn du z.B. einen 128 Byte Block Out reingezogen hast, dann hat dein PN-PN Koppler nun einen Ausgangsbereich
von z.B. 128 Ausgangsbytes, welche du beschreiben kannst. Auf diese Ausgänge musst du deine Daten schreiben.
Er liest diese dann mittels den seinen 128 Byte Eingängen wieder ein.

Die Startadresse für diese Daten kannst du ändern.
 
Ich stelle mir das bei meinen UDT's mit ca. 300 Variablen(Bool,Ints,Arrays,...) gerade etwas umständlich vor.
 
Das ist genauso umständlich wie das Schreiben solcher Daten z.B. in einen Datenbaustein.
Es liegt ja an dir, den Austauschbereich sinnvoll zu definieren um es dann beim Beschreiben etwas einfacher zu haben.
...

Gruß
Larry
 
.. ein paar PLC-Datentypen als udt's ..
Versuche mal, diese UDTs direkt als Datentypen für die E/A in der Variablentabelle zu verwenden. Dann kannst du mit irgendwelchen MOVE-Befehlen deine Daten zwischen den DBs und den E/As hin und her schaufeln, bzw. in SCL eventuell auch durch einfache Zuweisungen. Ich bin mir nicht sicher, bei der 1200er geht das wohl erst ab V14?

Gruß, Onkel
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Du kannst mit der Serialize() Funktion UDTs in Array of Byte wandeln. Dieses Array of Byte legst du an deinen Koppler. Die Gegenseite liest dann das Array of Byte und wandelt mit Deserialize() wieder in die UDT Struktur. Der UDT muss somit auf beiden Seiten bekannt sein. Und ich weiß nicht ob diese Funktion in einer 1200er zur Verfügung steht. Für 1512 habe ich das so gelöst.
 
Zurück
Oben