4 votes

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

Je développe un client OPC en Windows C#. J'ai développé le code et j'ai lu Les éléments OPC sur l'échantillonnage ainsi que sur l'événement (OnDataChange). Lorsque je Lorsque je travaille avec une machine locale, mon code fonctionne correctement avec l'échantillonnage et l'événement (OnDataChange). OnDataChange, mais lorsque j'essaie de lire des données à partir d'un serveur OPC distant, l'échantillonnage fonctionne bien, mais je n'arrive pas à lire les données. l'échantillonnage fonctionne bien, mais je ne peux pas récupérer les données dans le cadre d'un processus basé sur les événements. Je peux me connecter au serveur OPC, mais lorsque j'ajoute un abonnement à celui-ci, je reçois une erreur. je reçois un message d'erreur.

HRESULT : 0x80040202.

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

Le serveur OPC s'est connecté et a enregistré le groupe, mais j'ai obtenu une exception lors de la lecture des données.

3voto

Garo Yeriazarian Points 2189

Le problème réside généralement dans le fait 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 que cela puisse se produire (c.-à-d. les bons paramètres de sécurité pour permettre au serveur d'exécuter du code sur le client).

Vous devriez lire cette page : http://www.softwaretoolbox.com/xpsp2/ Il contient de nombreuses recommandations sur la manière de configurer correctement DCOM pour l'utilisation d'OPC. Les problèmes de sécurité sont nombreux. Le site Software Toolbox contient de nombreuses informations intéressantes (ainsi que des vidéos). Si vous avez toujours des difficultés à faire fonctionner votre système, je vous recommande d'investir dans un produit de tunneling OPC qui vous permettra d'utiliser OPC à distance sans avoir à passer par toutes les boucles DCOM.

Il n'est pas nécessaire d'utiliser OPCDA.NET pour rencontrer le même problème. Vous pouvez utiliser n'importe quel client OPC et le faire fonctionner d'abord avec votre serveur distant, puis vous concentrer sur la façon de le raccorder à OPCDA.NET. Je recommande OPC Quick Client (fourni avec la démo TOP Server de Software Toolbox).

1voto

Andrew Points 11

Le problème que vous rencontrez se situe au niveau du callback. En d'autres termes, ce n'est pas l'appel à advise qui échoue, mais le rappel du serveur OPC (que advise déclenche). Cette erreur est généralement due à des problèmes d'authentification de l'utilisateur (c'est-à-dire que les comptes d'utilisateur ne correspondent pas sur les deux ordinateurs). Vérifiez le compte 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). Il s'agit d'une application gratuite, qui ne nécessite pas d'installation et qui ne modifie pas le registre de Windows. Elle m'a sauvé la mise à plusieurs reprises. De plus, le vendeur (OPCTI) est extrêmement utile, alors n'hésitez pas à le consulter.

0voto

Tianzi Points 1

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

Essayez plutôt :

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

Cela fonctionne pour moi. J'espère que cela vous aidera :)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X