Seite 2 von 4
Verfasst: 22.05.2009 00:00
von - chris -
Auch wenn ich die Items so in einer Schleife lese, erhalte ich quality 32.
Code: Alles auswählen
For n = 1 To 10
; item lesen
r1 = OpcReadWord(*item1, @value1, @quality)
If r1
Debug GetErrorString(*Server, r1)
Else
;Debug "Item 1: " + Str(value1) + " Quality: " + PeekUnicode(OpcGetQualityText(quality))
SetGadgetText(#String_0, Str(value1) + " : " + Str(quality) + " - " + PeekUnicode(OpcGetQualityText(quality)))
EndIf
Delay(100)
Next n
Das merkwürdige ist ja, wenn ich gleichzeitig den 'Softing OPC Demo Client' starte und die gleichen Items anzeige, werden auch die Werte in meinem Programm richtig angezeigt.
Stoppe ich den 'Softing OPC Demo Client' werden die Werte in meinem Programm nicht mehr aktualisiert.
Verfasst: 22.05.2009 01:01
von mk-soft
Ist aber kein normales verhalten von den OPC-Server. Oder ist es eine Demo-Sever?
Verwende die Costumer-Schnittstelle mit SyscronIO schon einige Jahre und hatte so ein verhalten noch nicht gehabt.
P.S. fällt mir gerade wieder ein.
Vieleicht läuft der OPC-Server in einer falschen Instance wenn dieser ohne aktiven Fenster (Serverseitig) gestartet wird. Hatten schon mal den fall gehabt. Der Lieferant musste den OPC-Server überarbeiten das dieser eine ungültige abhängigkeit von ein Windowfenster hatte.
Verfasst: 22.05.2009 01:44
von - chris -
Also ein Demo-Server ist es bestimmt nicht.
---------
Den OPC-Server gibt es kostenlos bei ABB:
http://www.robotstudio.com/community/
dann rechts auf 'To download page'
---------
Vieleicht läuft der OPC-Server in einer falschen Instance wenn dieser ohne aktiven Fenster gestartet wird??
Der OPC-Server selber hat kein Fenster und es erscheint auch kein Symbol im Systray.
Im Taskmanager sehe ich nur die 'RobOPC.exe', wenn der OPC-Server gestartet ist.
Mit anderen OPC-Clients funktioniert der OPC-Server.
Gerade eben habe ich den OPC-Server in WinCC eingebunden
und es hat auf Anhieb funktioniert.
Verfasst: 22.05.2009 02:32
von mk-soft
Lade mir opc-server mal runter.
Ist schon manchmal eigenartig das wie dier server unterschiedlich reagieren. mit Inat, Opc.SimaticNET, Protool, etc hatte ich noch keine probleme gehabt.
P.S.
Der OPC-Server hat leider keine Standards Items zum testen.
Nehme aber an das es mit der SycronIO zu tun hat. Die meisten Testclients arbeiten mit der Asyncron Schnittstelle.
Das eigenartige ist das kein Fehler der Schnittstelle kommt, sondern das der Wert nicht mehr erscheint und die Quality einen unbekannten fehler liefert. (32)
P.S.
Update v2.24
Einstellungen einiger werte beim erstellen der Gruppe angepasst. Die Gruppe wird jetzt sofort aktiviert.
@chris
Vielleicht geht es mit der geänderten Gruppeneinstellung.
Verfasst: 22.05.2009 13:24
von - chris -
Also geändert hat sich erstmal nichts.
Ich hab noch einige Versuche gemacht:
Einige Items funktionieren zb.:
SystemName
InterfaceState
Aber z.b.: bei dem Item 'OperatingMode' wird quality: good angezeigt
und der wert: 0 (falscher Wert, sollte 2 sein)
Wenn ich dann den 'Softing OPC Demo Client' starte und die gleichen Items
anzeigen lasse werden wieder alle Items richtig angezeigt.
Verfasst: 22.05.2009 13:42
von mk-soft
Hi, chris
habe mich Heute mit ABB in Verbindung und das Problem beschieben. Nach Rücksprache mit den Servicetechniker habe ich E-Mail mit den genauen Ablauf gesendet.
Werde wohl nächste Woche von ABB eine Antwort bekommen.
Das die von mir verwendete Schnittstelle auf allen anderen getesteten OPC-Server funktioniert (INAT, Siemens, und die von Dir) denke ich das es vielleicht eine Problem des Servers ist.
Mal schauen welche antwort von ABB erhalte.
Verfasst: 22.05.2009 13:55
von - chris -
Hier noch mal ein Test:
Schreiben funktioniert, der Wert hier 200 kommt im Roboter an, aber das lesen funktioniert nicht (quality: 32 - UNKNOWN ERROR)
Code: Alles auswählen
; Items schreiben
Debug "Items schreiben"
r1 = OpcWriteWord(*item1, 200)
If r1
Debug GetErrorString(*Server, r1)
Else
Debug "Item 1 geschrieben. Variant Type: " + Str(OpcGetItemDataType(*item1))
EndIf
Debug "Fertig."
; item lesen
r1 = OpcReadWord(*item1, @value1, @quality)
If r1
Debug GetErrorString(*Server, r1)
Else
;Debug "Item 1: " + Str(value1) + " Quality: " + PeekUnicode(OpcGetQualityText(quality))
SetGadgetText(#String_0, Str(value1) + " : " + Str(quality) + " - " + PeekUnicode(OpcGetQualityText(quality)))
EndIf
Verfasst: 22.05.2009 14:18
von mk-soft
Habe mir RobotStudio herrunter geladen. In diesen kann man einen Virtuellen Roboter einrichten. Werde es mit diesen auch noch testen. Denke aber das meine Schnitstelle Ok ist und auf eine Antwort von ABB erforderlich ist.
In der Regel bekommt man sehr schnell eine antwort.
Verfasst: 25.05.2009 23:10
von mk-soft
Update v2.25
VisualStudio 2005 Express kompatibilität erreicht. VB Test Example im OpcPack enthalten.
FF

Verfasst: 07.06.2009 14:40
von mk-soft
Update v2.26
Bugfix:
- Item anlegen
Danke an Chris für die Fehlersuche und Bereitstellung eines ABB Projekts
Danke an den ABB Support für die Unterstützung und das C++ Beispiel
FF
