Accès au serveur OPC à distance à l’aide des outils OPCDA.NET

Je développe le client OPC sous Windows C #. J’ai développé le code et lu les articles OPC sur échantillonnage ainsi que sur événement (OnDataChange). Lorsque je travaille avec une machine locale, mon code fonctionne correctement avec Sampling et OnDataChange, mais lorsque j’essaie de lire des données à partir du serveur OPC distant, Sampling fonctionne bien, mais je ne peux pas extraire de données sur un processus basé sur des événements. Je suis en mesure de me connecter au serveur OPC, mais lorsque j’ajoute un abonnement, je reçois une erreur.

HRESULT: 0x80040202.

group1.DataChanged += new DataChangeEventHandler(this.DataChangeHandler); group1.AdviseIOPCDataCallback();//exception HRESULT : 0x80040202. 

Serveur OPC connecté et ensuite enregistrer le groupe aussi, mais j’ai obtenu l’exception lors de la lecture des données.

Le problème est généralement que lorsque vous utilisez Advise() , le serveur établira une connexion DCOM avec le client (points de connexion DCOM standard). Le client doit être configuré correctement pour permettre que cela se produise (c.-à-d. Les bons parameters de sécurité permettant au serveur d’exécuter du code sur le client).

Vous devriez lire cette page: http://www.softwaretoolbox.com/xpsp2/ , elle contient de nombreuses recommandations sur la manière de configurer DCOM correctement pour une utilisation OPC. Il y a beaucoup de problèmes de sécurité ici. Le site Software Toolbox contient de nombreuses informations utiles (et des vidéos). Si vous rencontrez toujours des difficultés pour le faire fonctionner, je vous recommande d’investir dans un produit de tunnelisation OPC qui vous permettra d’effectuer une opération OPC à distance sans avoir à parcourir toutes les boucles DCOM.

Vous n’avez pas besoin d’utiliser OPCDA.NET pour avoir le même problème. Vous pouvez utiliser n’importe quel client OPC et le faire fonctionner d’abord sur votre serveur distant, puis vous concentrer sur la manière de le connecter à OPCDA.NET. Je recommande OPC Quick Client (fourni avec la démo de Software Toolbox TOP Server).

Le problème que vous rencontrez est avec le rappel. En d’autres termes, ce n’est pas l’appel de conseil qui vous manque, c’est le rappel du serveur OPC (qui avertit les déclencheurs). Cette erreur est généralement due à des problèmes d’authentification de l’utilisateur (les comptes d’utilisateurs ne correspondent pas sur les deux ordinateurs). Consultez le compte d’utilisateur du serveur OPC sur l’ordinateur distant. S’il n’existe pas sur votre ordinateur local, vous avez trouvé le problème!

Il existe une application automatisée pour vous aider à résoudre votre problème. Je vous recommande de télécharger OPC Expert (Google it). C’est une application gratuite, ne nécessite pas d’installation, et ne change pas le registre Windows. Cela m’a sauvé plusieurs fois. En outre, le fournisseur (OPCTI) est extrêmement utile, alors vérifiez-les.

Ce problème est dû au fait que lorsque vous vous connectez au serveur, vous pouvez utiliser la première fonction de connexion, à savoir server.connect();

Au lieu de cela, essayez:

 server.connect(new Opc.ConnectData(new System.Net.NetworkCredential())); 

Cela fonctionne pour moi. J’espère que ça aide:)