B&R OPC UA CLient "Bad_TypeMismatch"

MichiP66

New member
Beiträge
3
Punkte Reaktionen
0
Zuviel Werbung?
->Hier kostenlos registrieren
Hallo zusammen,

bin aktuell dabei eine B&R CPU (Client) mit einem Fanuc Roboter(Server) via OPC Ua zu verbinden.
Über UaExpert funktioniert das Schreiben und Lesen von Werten zum Roboter einwandfrei.

Auf B&R Seite verwende ich die AsOpcUac Library. Das Lesen von Variablen funktioniert, einzeln und in einer Liste.

Leider das Schreiben der Variablen nicht. Nach Aufruf des Write_Bausteins bekomme ich den Fehlercode "0x80740000" zurück.
Laut Hilfe "BadTypeMismatch"
(Der für das Attribut angegebene Wert ist nicht der gleichen Art wie der Wert des Attributs)

Für das Lesen benutze ich genau die selben Einstellungen wie für das Schreiben.
Laut Fanuc Anleitung und UaExpert soll ein Int16 als Datentyp geschrieben werden.(Siehe Schreenshot)
Bin mir aber aktuell nicht mehr sicher ob die BuR CPU auch in diesem Format schreibt und ich wüsste auch nicht wie ich das Format ändern könnte.

Oder hat jemand noch eine andere Idee an was es liegen könnte. Bin um jeden Vorschlag dankbar.
 

Anhänge

  • Bur_Write.JPG
    Bur_Write.JPG
    66,8 KB · Aufrufe: 22
  • uaExpert.JPG
    uaExpert.JPG
    56,1 KB · Aufrufe: 22

da_kine

Well-known member
Beiträge
263
Punkte Reaktionen
38
Warum verwendst du kein OpcUa Any Device?

Findest du in der Hardwareauswahl rechts. Dann musst du in der Konfiguration nur noch die Adresse eingeben und hast alles als Variable in der Hardwareverknüpfung.

MfG

Markus
 
OP
M

MichiP66

New member
Beiträge
3
Punkte Reaktionen
0
Warum verwendst du kein OpcUa Any Device?

Findest du in der Hardwareauswahl rechts. Dann musst du in der Konfiguration nur noch die Adresse eingeben und hast alles als Variable in der Hardwareverknüpfung.

MfG

Markus
Das geht leider nicht, da meine Steuerung Client ist und der Roboter der Server. Das einfügen des Any Device ist nicht möglich.

Wie ist VarD deklariert?

Und wird die auch verwendet? Ansonsten optimiert der Compiler die Variable weg.

Ja, wurde verwendet

*****************************************

Problem wurde gelöst, VarD muss als Array deklariert sein.


****************************************

Danke für eure Antworten...(y)
 
OP
M

MichiP66

New member
Beiträge
3
Punkte Reaktionen
0
Zuviel Werbung?
->Hier kostenlos registrieren
Ok, war zu blöd das AnyDevice richtig einzufügen.

Bekomme das lesen und schreiben aber auch nicht richtig hin.
Bin mir aber auch nicht sicher ob ich den Browse Pfad bzw den Datentyp richtig eingebe, da es sich ja um ein INT Array handelt das ich schreiben bzw lesen will.
 

Anhänge

  • anydevice.JPG
    anydevice.JPG
    78,5 KB · Aufrufe: 5
  • logger.JPG
    logger.JPG
    80,3 KB · Aufrufe: 5

da_kine

Well-known member
Beiträge
263
Punkte Reaktionen
38
Ich würde mit dem UaExpert die absolute Adresse des Arrays ermitteln und dann für jedes Arrayelement [x] einen eigenen Kanal anlegen. Ist zwar leider etwas umständlich aber ich glaube es geht nicht anders. Über UaExpert müsstest du ja die Berechtigung die du auf den einzelnen Knoten hast sehen können. Wie du hier Datenkonsistenz herstellen kannst kann ich dir leider nicht sagen da ich das Fanuc System nicht kenne. Aber eigentlich müsste es ja sowas wie einen Handshake Kanal geben...
 
Oben