Einzelnen Beitrag anzeigen

Rainer Wolff

Registriert seit: 25. Okt 2005
Ort: Bretten
318 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Fehler bei der Bereichsprüfung

  Alt 20. Mär 2019, 13:16
Hier der Funktionsaufruf:

Hier die Zeilen, in denen der Range-Error zuschlägt

Code:
   
  if ConnectionState<>UA_STATUSCODE_GOOD then
    log(llError,format('UA_Client_connect failed ConnectionState %s',[GetHResultString(ConnectionState)]))
  else
    log(llBlack,format('UA_Client_connect connected ConnectionState %s',[GetHResultString(ConnectionState)]));
  if statuscode<>UA_STATUSCODE_GOOD then
    log(llError,format('UA_Client_run_iterate failed Statuscode %s',[GetHResultString(statuscode)]))
Code:
function TOpcUAServer.GetHResultString(HR: HResult): String;
begin
  result:='$'+IntToHex(hr);
  if Statuscodelist.ContainsKey(result) then
    result:=Statuscodelist[result];
end;
Die Log-Funktion selber mit den selben Parametern wird im Erfolgsfall laufend aufgerufen.

Zum Umfeld: Ich benutze eine C-Dll, um aus Delphi mit einem OPCUA-Server zu kommunizieren. Timer-gesteuert wird laufend eine Dll-Funktion angestoßen, um die Kommunikation zu am Leben zu erhalten. Bekomme ich einen Kommunikationsfehler, schreibe ich die entsprechende Log-Meldung raus.

Geht mir nun die Kommunikation flöten (passiert laufend, während die zugehörige Steuerung programmiert wird, oder halt auch wenn ich das Netzwerkkabel ziehe), dann beglückt mich diese Bereichsprüfungsmeldung, die an der Anlage blöd aussieht.

Deaktiviere ich die Bereichsprüfung, läuft alles wunderbar, die Kommunikation setzt wieder auf.
  Mit Zitat antworten Zitat