![]() |
OPC mit Kassl-Komponenten unter Windows 10 und tRichedit
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; |
AW: OPC mit Kassl-Komponenten unter Windows 10 und tRichedit
Was ist denn der Fehler?
Und habt Ihr mal versucht, die Richedit Kompo dynamisch einzubinden? Globale Variablen / Sys Konstanten geprüft? |
AW: OPC mit Kassl-Komponenten unter Windows 10 und tRichedit
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:
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. |
AW: OPC mit Kassl-Komponenten unter Windows 10 und tRichedit
Zitat:
Zitat:
Vielleicht sollte man das auch einfach mal beim Anbieter nachfragen. |
AW: OPC mit Kassl-Komponenten unter Windows 10 und tRichedit
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. |
AW: OPC mit Kassl-Komponenten unter Windows 10 und tRichedit
Zitat:
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:
Beim Entwickler haben wir als erstes angefragt. Nur ist diese Anfrage beim Entwickler der Komponenten seid über 3 Wochen leider unbeantwortet. |
AW: OPC mit Kassl-Komponenten unter Windows 10 und tRichedit
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? |
AW: OPC mit Kassl-Komponenten unter Windows 10 und tRichedit
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:
Warum konnte der Entwickler auch nicht sagen.
dOPCCom.dOPCInitSecurity;
Die Funktion dOPCCom.dOPCInitSecurity macht folgendes
Code:
Die Funktion CoInitializeSecurity(aus der Delphi-Lib ActiveX) hat die Aufgabe folgende Werte zu setzten:
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; 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. |
AW: OPC mit Kassl-Komponenten unter Windows 10 und tRichedit
Im MSDN findet man in der
![]() Zitat:
|
AW: OPC mit Kassl-Komponenten unter Windows 10 und tRichedit
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 :-) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:26 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz