Question

Je travaille avec un logiciel d'automatisation sur PC appelé Think'n'Do créé par Contact Phénix Il effectue le traitement en temps réel, la lecture des entrées/la logique de contrôle/l'écriture des sorties, le tout en un maximum de 50 ms.Nous avons un serveur OPC qui lit/écrit des balises à partir d'un automate toutes les 10 ms.Il y a un long délai entre l'écriture d'un tag sur l'automate et la lecture de la valeur écrite (Think'n'Do (50 ms) > Serveur OPC (10 ms) > Automate (10 ms) > Serveur OPC (10 ms) > Think'n'Do (50 ms) ), ce processus prend jusqu'à 6 secondes alors qu'il ne devrait, selon mes calculs, prendre que 130 ms.

Toute idée sur où chercher ou pourquoi cela pourrait prendre autant de temps serait utile.

Était-ce utile?

La solution

Cela dépend de la façon dont votre client OPC est configuré pour extraire les données.Lorsque vous vous abonnez à un groupe dans OPC, vous pouvez spécifier un taux de rafraîchissement.La valeur par défaut peut être 1 s ou même 5 s, selon le client OPC.Il existe également une limite que le serveur OPC peut imposer à la fréquence des données mises à jour.Cela s'applique uniquement si votre client OPC est abonné aux événements de modification de données.

L'autre solution consiste à effectuer des lectures/écritures asynchrones ou synchronisées sur le serveur OPC.Il existe également plusieurs modes de lecture.Puisque vous utilisez OPC, vous pouvez utiliser n'importe quel client compatible OPC pour tester votre serveur, cela vous dira si le problème vient d'un paramètre dans Think'n'Do ou s'il s'agit d'un problème lié à l'automate/serveur.

Le meilleur client OPC à usage général que j'ai utilisé est OPC Quick Client.Vous pouvez l'obtenir avec TOP Server ici : http://www.toolboxopc.com/Features/Demo/demo.shtml.Téléchargez simplement la démo TOP Server et installez OPC Quick Client.Vous pouvez l'utiliser pour vous connecter à votre serveur OPC, parcourir les balises et voir à quoi ressemblent les données.Le deuxième meilleur client OPC que j'ai utilisé vient d'ICONICS (appelé OPC Data Spy) disponible ici : http://www.iconics.com/support/free_tools.asp.

Utilisez le client OPC pour voir à quelle vitesse vous pouvez lire les données.Assurez-vous de définir correctement le taux de rafraîchissement du groupe.Je pense que les outils pourraient également vous fournir des informations sur le timing (mais vous pourrez déterminer assez facilement un délai de 6 secondes).

Autres conseils

Il semble que vous n'utilisiez pas le cache du serveur OPC.Normalement, les serveurs OPC ont un cache, si votre client se connecte et ne précise pas qu'il souhaite utiliser le cache, vous n'obtenez pas les performances dont vous pourriez avoir besoin.Le serveur OPC est responsable de l'actualisation du cache de l'appareil, bien que les critères d'actualisation puissent différer d'un serveur OPC à l'autre.

Si le système effectue des lectures synchrones (blocage des appels d'E/S), puis implémente la logique de votre application puis des écritures synchrones (à nouveau bloquantes), vous devez alors considérer qu'il y a plusieurs allers-retours vers l'automate.

Une lecture synchrone implique App(request)->OPCServer->PLC->OPCServer->App(result).Il ne s'agit que de la lecture d'un élément (bien que vous puissiez demander un groupe d'éléments en une seule fois).

Ensuite, une écriture de synchronisation similaire implique également App(Write)->OPCServer->PLC->OPCServer->App(Done).

Les lectures et écritures asynchrones et les lectures et écritures de groupe peuvent aider à réduire le blocage de l'application, mais veillez à ce que votre application puisse gérer ce comportement ansynchrone.

L'autre chose à examiner est la configuration de l'API. Sur les API Allen-Bradley, il existe un paramètre de délai interscan qui est utilisé pour répondre aux demandes d'E/S sur les réseaux externes.Si ce temps est court et que vous disposez d’une bande passante élevée de données, cela ralentira les choses.

Voici quelques endroits où chercher :Configuration du client OPC, du client OPC lui-même, du serveur OPC ou de l'automate lui-même.

Voici les éléments que vous devriez vérifier :

  1. Configuration du client OPC - Le groupe OPC auquel vous avez ajouté les balises OPC doit avoir une vitesse d'analyse rapide (c.-à-d.100 ms à 1 seconde selon l'usage que vous en faites).Lors de l'écriture de valeurs, remarquez-vous si les valeurs arrivent plus rapidement ?Sinon, il peut y avoir un problème de configuration DCOM ou réseau.
  2. Client OPC - Téléchargez un logiciel client OPC gratuit (probablement à partir du site Web de la Fondation OPC ou des principaux fournisseurs de logiciels de serveur OPC) pour voir si vous récupérez les valeurs plus rapidement.Si tel est le cas, il se peut qu'il y ait un problème avec votre client.
  3. Serveur OPC - Certains serveurs OPC disposent d'outils de diagnostic.Activez-les et voyez à quelle heure les écritures se produisent réellement et à quelle heure les lectures ont réellement lieu.Si vous pouvez répondre à ces questions, vous pourrez probablement identifier si le coupable du retard vient de l'automate ou du serveur OPC.Observez également l'utilisation du processeur du serveur OPC. Si vous remarquez qu'il utilise plus de processeur que d'habitude, cela signifie probablement que le serveur OPC est chargé, ce qui pourrait détériorer les performances.
  4. Autres - Enfin, vérifiez que le PLC et le réseau fonctionnent correctement.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top