AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein OPC mit Kassl-Komponenten unter Windows 10 und tRichedit
Thema durchsuchen
Ansicht
Themen-Optionen

OPC mit Kassl-Komponenten unter Windows 10 und tRichedit

Ein Thema von dravigi · begonnen am 11. Jun 2018 · letzter Beitrag vom 13. Jun 2018
Antwort Antwort
dravigi

Registriert seit: 18. Jul 2013
7 Beiträge
 
#1

OPC mit Kassl-Komponenten unter Windows 10 und tRichedit

  Alt 11. Jun 2018, 10:39
Hallo zusammen,

wir stellen aktuell unsere PCs von Windows 7 auf Windows 10 um.

Bei den Rechnern die mittels der Kassl-OPC-Komponenten auf eine SPS zugreifen, gibt es ein für uns nicht erklärbares Phänomen/Problem.

Sobald irgendwo im Projekt, auch in Bibliothek-Units, ein tRichedit eingebunden ist, kann keine Verbindung mehr zum OPC hergestellt werden.

Entfernt man das tRichedit funktioniert wieder alles wunderbar. (Getestet unter Delphi 2010 und Delphi 10.2 Tokyo).

Unter Windows-7 gibt es dieses Problem nicht.

Kann hier jemand weiter helfen, oder hat jemand ähnliche Probleme.

Grüße

Code:
var
  lclOPCGroup: TdOPCGroup;
  lclComputerName, lclServerName: string;
begin
  try
    dOPCCom.dOPCInitSecurity;
    dOPCServer := TdOPCServer.Create(self);
    lclComputerName := 'Computer.xyz'
    lclServerName :=  'Server.xyz'
    dOPCServer.ComputerName := lclComputerName;
    dOPCServer.ServerName :=  lclServerName;
    dOPCServer.OnDatachange := DoOPCServerDatachange;
    dOPCServer.Active := True;
    lclOPCGroup := dOPCServer.OPCGroups.Add('X');
    lclOPCGroup.UpdateRate := 20;
    Sleep(200);
  except
    on E: Exception do
    begin
      ShowMessage(E.Message);
    end;
  end;
end;
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#2

AW: OPC mit Kassl-Komponenten unter Windows 10 und tRichedit

  Alt 11. Jun 2018, 12:52
Was ist denn der Fehler?
Und habt Ihr mal versucht, die Richedit Kompo dynamisch einzubinden?
Globale Variablen / Sys Konstanten geprüft?
Gruß, Jo
  Mit Zitat antworten Zitat
dravigi

Registriert seit: 18. Jul 2013
7 Beiträge
 
#3

AW: OPC mit Kassl-Komponenten unter Windows 10 und tRichedit

  Alt 11. Jun 2018, 15:52
Hallo,
also es kommt erstmal keine Fehlermeldung beim Create/Connect aber ich kann wenn ein Richedit auf der Form ist weder lesend noch schreibend auf den OPC zugreifen.
Das OnRefreshWTData-Event wird auch nicht ausgelöst.

Wenn ich das Richedit zur Laufzeit erzeuge funktioniert nur die Reihenfolge
1. OPC createn und Connecten
2. Richedit erzeugen
--> Hier bleibt die Connection auf den OPC erhalten, OnRefreshWTData wird ausgelöst.
Ist aber auch keine wirkliche Lösung. Da wir eine Standatisierte GUI für verschiedene Programme verwenden in der mehrere Richedits eingebunden sind.

Wenn ich zuerst das Richedit zur Laufzeit erzeuge und dann das OPC-Objekt Create und Connecte hab ich wieder das Problem.

Zitat:
Globale Variablen / Sys Konstanten geprüft?
Was soll ich hier genau überprüfen?


Was ich absolut nicht verstehe ist warum es auf keinem Windows-7 Rechner Probleme gibt. Läuft aktuell auf über 20 Win-7 Rechnern.

Und auf drei verschiedenen Windows-10 Rechnern läuft es nicht.

Geändert von dravigi (11. Jun 2018 um 15:54 Uhr)
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#4

AW: OPC mit Kassl-Komponenten unter Windows 10 und tRichedit

  Alt 11. Jun 2018, 16:46
Ist aber auch keine wirkliche Lösung...
Klar, es geht mehr darum, dem Fehler auf die Schliche zu kommen.

Zitat:
Globale Variablen / Sys Konstanten geprüft?
Was soll ich hier genau überprüfen?
Ein Zusammenhang ist ja nicht offensichtlich, aber es müssen sich ja irgendwelche OS nahen Variablen, Konstanten überschneiden (Ich gehe mal davon aus, es geht um das gleiche Kompilat und keine Versionen die OS spezifisch erstellt wurden). Oder es werden irgendwelche Events gefressen. Um das rauszufinden, müsste man den Code auf Verwendung solcher OS Konstanten, globaler Variablen, Events prüfen.
Vielleicht sollte man das auch einfach mal beim Anbieter nachfragen.
Gruß, Jo
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: OPC mit Kassl-Komponenten unter Windows 10 und tRichedit

  Alt 11. Jun 2018, 16:52
Hallo,
macht ihr noch mal als das TRichEdit auf das Form zu packen,
irgendwelche Einstellungen im Object-Inspektor?

Im uses steht welche unit zuerst drin?
Tausche mal die Reihenfolge.
Heiko
  Mit Zitat antworten Zitat
dravigi

Registriert seit: 18. Jul 2013
7 Beiträge
 
#6

AW: OPC mit Kassl-Komponenten unter Windows 10 und tRichedit

  Alt 12. Jun 2018, 10:35
Hallo,
macht ihr noch mal als das TRichEdit auf das Form zu packen,
irgendwelche Einstellungen im Object-Inspektor?
Nein keinerlei Änderungen im Objektinsptekor.
Auch in einem neu erstellten Mini-Testprojekt, mit auschließlich einer Unit, einem Button und einem Memo zur Visualisierung,
einem erzeugten OPC-Objekt mit einer OPC-Group und nur einem OPC-Item tritt der Fehler auf sobald ich zusätzlich ein tRichedit auf die Form packe.

Zitat:
Im uses steht welche unit zuerst drin?
Tausche mal die Reihenfolge
Habe ich gerade probiert, brachte leider auch keinen Erfolg.


Beim Entwickler haben wir als erstes angefragt.
Nur ist diese Anfrage beim Entwickler der Komponenten seid über 3 Wochen leider unbeantwortet.
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: OPC mit Kassl-Komponenten unter Windows 10 und tRichedit

  Alt 12. Jun 2018, 10:40
Hallo,
sind die irgendwelche WM_USER + X Messages definiert?
Vielleicht nehmen die sich gegenseitig die Nachrichten weg,
oder die Nachrichten-Id ist doppelt (siehe jobo).

Passiert das auch unter anderen Betriebssystemen?
(Mit dem neuen Mini-Test-Projekt testen, nicht mit der kompletten Exe).

Hast Du es mal mit einer der OPC Explorer (Google) probiert?

Funktioniert Dein Mini-Test-Programm ohne RichEdit unter Windows 10?
Heiko

Geändert von hoika (12. Jun 2018 um 10:46 Uhr)
  Mit Zitat antworten Zitat
dravigi

Registriert seit: 18. Jul 2013
7 Beiträge
 
#8

AW: OPC mit Kassl-Komponenten unter Windows 10 und tRichedit

  Alt 13. Jun 2018, 10:34
Hallo,

erstmal danke an alle.

Gestern Abend hat sich der Entwickler bei mir gemeldet. Er konnte das Problem nachstellen und es auch teilweise lösen.

Das Problem ist folgendendes.
Sobald unter Windows 10 (64Bit) ein tRichedit in eingebunden ist schlägt folgende Funktion fehl.
Code:
dOPCCom.dOPCInitSecurity;
Warum konnte der Entwickler auch nicht sagen.

Die Funktion dOPCCom.dOPCInitSecurity macht folgendes
Code:
function dOPCSecurityInit: HResult;
const
  RPC_C_AUTHN_LEVEL_NONE = 1;
  RPC_C_IMP_LEVEL_IMPERSONATE = 3;
  EOAC_NONE = 0;
begin
  // this is for DCOM:
  // without this, callbacks from the server may get blocked, depending on
  // DCOM configuration settings
    result := CoInitializeSecurity(
    nil,                   // points to security descriptor
    -1,                    // count of entries in asAuthSvc
    nil,                   // array of names to register
    nil,                   // reserved for future use
    RPC_C_AUTHN_LEVEL_NONE, // the default authentication level for proxies
    RPC_C_IMP_LEVEL_IMPERSONATE,// the default impersonation level for proxies
    nil,                   // used only on Windows 2000
    EOAC_NONE,             // additional client or server-side capabilities
    nil                    // reserved for future use
    );
end;
Die Funktion CoInitializeSecurity(aus der Delphi-Lib ActiveX) hat die Aufgabe folgende Werte zu setzten:
Authentication Level: None
Impersonation level : Impersonate

Man kann diese Werte mit Hilfe des Windows-Programms DCOMCNFG auch manuell ändern

In einem deutschen Windows:
Unter Komponentendienste/Computer/Arbeitsplatz --> Rechte Maustaste auf Eigenschaften --> Tab Standardeigenschaften
und hier unter DCOM-Kommunikation folgdenes ändern

Standardauthentifizierungsebene = Keine
Standardidentitätswechselebene = Identität annehmen

Sobald ich hier die DCOM-Einstellungen ändere funktioniert die OPC-Verbindung, wie sie soll.

Das ganze hat nur folgendes Problem. Nach einem Neustart passiert folgendes:
Die Taskleiste funktioniert dann nicht mehr. Wenn man unten links auf das Windows-Symbol klickt passiert nichts, eigentlich sollte ja die Start-Leiste ausklappen.
Windows-Taste reagiert auch nicht. Rechtsklick auf einen Ordner in der Taskleiste öffnet kein Kontextmenü….

Also bisher auch nicht zufriedenstellend, da zwar unsere Produktionssofware mit Anbindung an die SPS normal läuft, aber Windows ansich, sich nicht mehr richtig bedienen lässt.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.453 Beiträge
 
Delphi 12 Athens
 
#9

AW: OPC mit Kassl-Komponenten unter Windows 10 und tRichedit

  Alt 13. Jun 2018, 10:49
Im MSDN findet man in der Beschreibung zu CoInitializeSecurity folgende Bemerkung:
Zitat:
Passing pSecDesc as NULL is strongly discouraged.
Ich empfehle hier, sich die Beschreibung genau anzusehen und die Parameter so zu setzen, daß exakt das gewünschte Ergebnis erreicht wird, aber eben auch nicht mehr.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
dravigi

Registriert seit: 18. Jul 2013
7 Beiträge
 
#10

AW: OPC mit Kassl-Komponenten unter Windows 10 und tRichedit

  Alt 13. Jun 2018, 11:11
Update:
Der Entwickler hat mir nun eine kleine Unit zum setzen der DCOM einstellung zur verfügung gestellt, mit der die Probleme behoben sind.

Damit kann ich die DCOM-Einstellungen in Windows 10 auch wieder auf die Standardeinstellungen setzten und die Probleme mit dem Startmenü etc. treten nicht mehr auf.

Auch hier nochmals Vielen Dank an Herrn Kassl für die gute Unterstützung.

Mein Problem scheint somit erstmals gelöst
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:14 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz