Premiers pas avec DPM > Configuration de l'automatisation des données
Configuration de l'automatisation des données
L'intégration de l'automatisation DPM permet à DPM de recevoir les données des cadenceurs connectés en quasi-temps réel. Un cadenceur est un poste de travail qui définit le rythme de production d'un poste de charge. Cette intégration de l'automatisation DPMprend en charge les modifications d'ordre de travail (démarrage de la production, arrêt de la production ou modification de l'ordre de travail), les décomptes de production et du rebut, ainsi que les événements de disponibilité résultant du mappage des codes machine à des codes de raison dans DPM. La réception de données à partir du cadenceur connecté entraîne des modifications de propriétés dans ThingWorx. Toutes les modifications de propriété qui présentent des données de bonne qualité sont stockées dans un flux de valeurs. Toutes les 5 minutes, ces transactions sont récupérées dans l'ordre chronologique et sont écrites dans les tables d'événements appropriées dans DPM.
Par exemple, lorsque toutes les propriétés d'automatisation des données sont configurées, DPM peut recevoir des données qui démarrent la production sur un ordre de travail. Pendant que l'ordre de travail est en production, des données peuvent être reçues pour ajouter les décomptes de production et du rebut concernant cet ordre de travail, pour journaliser les événements de temps d'arrêt de la machine, tels que les pauses ou les coupures de courant, et pour journaliser le retour de la machine à l'état Running. DPM peut ensuite recevoir des données qui terminent le premier ordre de travail et démarrent la production sur l'ordre de travail suivant.
Si le système est déconnecté pendant moins de 15 minutes, les événements qui se sont produits au cours de cette période sont capturés. Si le système est déconnecté pendant plus de 15 minutes, les événements datant de plus de 15 minutes sont ignorés. Cela permet d'éviter toute duplication des données, car les opérateurs peuvent avoir entré des données manuellement dans l'intervalle. Pour plus d'informations, consultez la rubrique Entrées de données manuelles et automatisées.
Pour configurer l'automatisation des données pour DPM, procédez comme suit :
1. Installez votre source de données et connectez-la à ThingWorx.
Pour plus d'informations sur Kepware, consultez le manuel anglais KEPServerEX Version 6 Install Guide (Guide d'installation de KEPServerEX Version 6).
Pour plus d'informations sur Azure IoT Hub, consultez l'Azure IoT Hub Connector Help Center.
2. Dans ThingWorx Composer, créez ou utilisez une connexion industrielle. Pour créer une connexion industrielle, créez un objet avec le modèle d'objet IndustrialGateway comme Modèle d'objet de base.
3. L'automatisation des données peut être configurée sur le cadenceur de chaque poste de charge. Les autres types d'équipements (entreprise, région, site, zone ou poste de charge) ne peuvent pas être automatisés.
Sur l'objet de poste de travail d'un cadenceur, procédez comme suit :
a. Dans le champ Formes implémentées, ajoutez les formes d'objet suivantes :
PTC.OperationKPI.AutomationEventsModelLogic_TS
IndustrialThingShape
b. Définissez le champ Flux de valeurs sur PTC.OperationKPI.Automation_VS.
c. Sous Propriétés et alertes, définissez la propriété IndustrialThing sur la connexion industrielle créée à l'étape 2.
d. Définissez les propriétés des activités d'automatisation des données que vous souhaitez utiliser. Les informations concernant chacune de ces propriétés sont fournies dans les sections liées :
e. Cliquez sur Enregistrer pour enregistrer les modifications apportées à l'objet de poste de travail.
4. Répétez l'étape 3 pour chaque cadenceur que vous souhaitez automatiser.
5. Accédez à la minuterie PTC.OperationKPI.AutomationEventProcessor_TI. Cochez la case Activé, puis cliquez sur Enregistrer. Cette opération initialise le traitement par lots de l'automatisation des données.
Pour démarrer des ordres de travail existants
Pour démarrer des ordres de travail existants à l'aide de l'automatisation des données, procédez comme suit dans ThingWorx Composer :
1. Sur l'objet de poste de travail d'un cadenceur, sous Propriétés et alertes, liez la propriété PTCJobOrderID au tag approprié. Cette propriété accepte les valeurs STRING.
2. Cliquez sur Enregistrer pour enregistrer les modifications apportées à l'objet.
Chaque fois que la valeur de la propriété PTCJobOrderID change, l'ordre de travail spécifié démarre. Si un ordre de travail est en cours d'exécution lorsque la propriété change, cet ordre de travail est terminé, et le nouvel ordre de travail est démarré. S'il n'existe aucun ordre de travail correspondant à cet ID, l'opérateur reçoit un message d'erreur. Les ordres de travail sont créés sur la page Ordres de travail dans Administration. Pour plus d'informations, consultez la rubrique Création d'un ordre de travail.
Lorsque la propriété PTCJobOrderID reçoit la valeur 0 (valeur par défaut de la propriété PTCJobOrderIDNullValue), l'ordre de travail en cours d'exécution est terminé, et aucun nouvel ordre de travail n'est démarré.
Si un opérateur modifie manuellement le statut d'un ordre de travail dans le Tableau de bord de production en démarrant la production ou en arrêtant la production postérieurement à l'horodatage du changement de la propriété PTCJobOrderID, la modification de la propriété est ignorée, et l'opérateur reçoit un message d'erreur. Les événements automatisés sont traités une fois qu'ils se sont produits, et l'opérateur est supposé savoir ce qui se passe sur l'équipement en temps réel.
Pour créer des ordres de travail basés sur une matière spécifiée
Pour créer des ordres de travail basés sur une matière spécifiée à l'aide de l'automatisation des données, ce que l'on désigne également sous le terme d'exécution de matière, procédez comme suit dans ThingWorx Composer :
1. Sur l'objet de poste de travail d'un cadenceur, sous Propriétés et alertes, liez la propriété PTCMaterialMasterID au tag approprié. Cette propriété accepte les valeurs STRING.
2. Cliquez sur Enregistrer pour enregistrer les modifications apportées à l'objet.
Chaque fois que la valeur de la propriété PTCMaterialMasterID change, un ordre de travail est créé pour la matière spécifiée avec une quantité cible par défaut de 1. Si un ordre de travail est en cours d'exécution lorsque cette propriété change, cet ordre de travail est terminé, et l'ordre de travail nouvellement créé est démarré. S'il n'existe aucune matière correspondant à l'ID de données de base matière, une erreur est générée.
Si un opérateur modifie manuellement le statut d'un ordre de travail dans le Tableau de bord de production en démarrant la production ou en arrêtant la production postérieurement à l'horodatage du changement de la propriété PTCMaterialMasterID, la modification de la propriété est ignorée, et l'opérateur reçoit un message d'erreur. Les événements automatisés sont traités une fois qu'ils se sont produits, et l'opérateur est supposé savoir ce qui se passe sur l'équipement en temps réel.
Lorsque la propriété PTCMaterialMasterID reçoit la valeur 0 (valeur par défaut de la propriété PTCMaterialMasterIDNullValue), l'ordre de travail en cours d'exécution est terminé, et aucun nouvel ordre de travail n'est démarré.
Pour mettre à jour la quantité cible des ordres de travail
La propriété PTCTargetQuantity est utilisée pour définir la quantité cible des ordres de travail créés à l'aide de la propriété PTCMaterialMasterID. Cette propriété doit toujours être définie après la propriété PTCMaterialMasterID. Lorsque la valeur de cette propriété change, la quantité cible de l'ordre de travail en cours d'exécution est mise à jour.
* 
Lorsque deux matières successives sont exécutées avec la même quantité cible, réinitialisez la propriété PTCTargetQuantity avant de transmettre la deuxième valeur de quantité cible en envoyant la valeur -1 (valeur par défaut de la propriété PTCTargetQuantityResetValue). Le système ne reconnaît pas la réception d'une valeur identique comme une modification de données. La valeur de la propriété doit être réinitialisée pour que la quantité cible du second ordre de travail soit mise à jour avec la même valeur que celle définie pour le premier ordre de travail.
Pour mettre à jour la quantité cible des ordres de travail à l'aide de l'automatisation des données, procédez comme suit dans ThingWorx Composer :
1. Sur l'objet de poste de travail d'un cadenceur, sous Propriétés et alertes, liez la propriété PTCTargetQuantity au tag approprié.
2. Cliquez sur Enregistrer pour enregistrer les modifications apportées à l'objet de poste de travail.
Pour journaliser les décomptes de production
Le compteur de production enregistre le décompte de production bonne qui a lieu sur le cadenceur. Le décompte de production total est calculé en tant que décompte de production bonne plus le décompte du rebut.
Pour journaliser les décomptes de production à l'aide de l'automatisation des données, procédez comme suit dans ThingWorx Composer :
1. Sur l'objet de poste de travail d'un cadenceur, sous Propriétés et alertes, liez la propriété PTCProductionCount au tag approprié. Cette propriété accepte les valeurs numériques.
2. Les compteurs de production absolus et de substitution sont pris en charge. Par défaut, le compteur de production est absolu. Pour le convertir en compteur de substitution, définissez la propriété PTCIsProductionCountRollover sur TRUE, et définissez la propriété PTCProductionRolloverCounter sur la valeur de substitution du décompte.
* 
Un compteur absolu enregistre les nouveaux décomptes lors de leur réception. Par exemple, si le compteur reçoit les décomptes 3, 5 et 2, il enregistre un total de 10.
Un compteur de substitution enregistre la différence entre le décompte précédent et le nouveau décompte, jusqu'à ce qu'une valeur de substitution désignée soit atteinte et que le compteur soit réinitialisé. Lorsque le compteur est réinitialisé, il enregistre la différence entre le décompte précédent et la valeur de substitution, plus le nouveau décompte. Par exemple :
Le compteur de substitution reçoit les décomptes 0, 2 et 5. Lorsqu'il reçoit le décompte 2, il enregistre la valeur 2 (différence entre 2 et 0). Lorsque le compteur reçoit le décompte 5, il enregistre la valeur 3 (différence entre 2 et 5).
Le compteur de substitution reçoit les décomptes 990, 998 et 3, et la valeur de substitution est de 999. Lorsque le compteur reçoit le décompte 998, il enregistre la valeur 8 (différence entre 998 et 990). Lorsque le compteur reçoit le décompte 3, il enregistre la valeur 4 (différence entre 999 et 998, plus le nouveau décompte de 3).
Un compteur de substitution n'est pas réinitialisé lorsque l'ordre de travail change sur l'objet de poste de travail.
3. Par défaut, le compteur de production démarre à 0. Si vous souhaitez que le compteur de production démarre avec un numéro différent, ajoutez une ligne à la propriété de la table d'informations PTCLastAutomationProcessedValues avec les valeurs suivantes :
propertyName : PTCProductionCount
value : valeur à laquelle vous souhaitez que le compteur de production démarre.
jobOrderUid : ce champ est ignoré par DPM.
4. Cliquez sur Enregistrer pour enregistrer les modifications apportées à l'objet de poste de travail.
* 
Pour obtenir un compteur absolu, lorsque deux décomptes de production successifs présentent la même valeur, réinitialisez la propriété PTCProductionCount avant de transmettre la deuxième valeur de décompte de production en envoyant la valeur -1 (valeur par défaut de la propriété PTC.ProductionCountResetValue). Le système ne reconnaît pas la réception d'une valeur identique comme une modification de données. La valeur de la propriété doit être réinitialisée pour que le second décompte de production présentant la même valeur soit reconnu comme un nouveau décompte de production.
Pour journaliser les décomptes du rebut
Les compteurs de rebut enregistrent la production mise au rebut qui s'est produite sur le cadenceur. Il peut y avoir plusieurs compteurs de rebut pour un seul cadenceur. Le décompte du rebut d'un cadenceur est calculé à partir des valeurs de tous ses compteurs de rebut.
Chaque compteur de rebut dans DPM est mappé à un code machine de rebut unique généré par le cadenceur. Par conséquent, si votre cadenceur comporte un seul compteur de rebut pouvant générer différents codes machine pour différents décomptes, vous devez créer un tag de compteur de rebut unique dans votre source de données pour chaque code machine pour lequel vous souhaitez conserver le décompte.
Chaque code machine de rebut est mappé à un code de raison de rebut dans DPM.
Pour journaliser les décomptes du rebut à l'aide de l'automatisation des données, procédez comme suit :
1. Vérifiez que les codes machine de rebut sont présents sur chaque cadenceur et qu'ils sont affectés aux codes de raison de rebut appropriés. Les codes machine et les codes de raison qui leur sont affectés sont visibles sous Administration, dans l'onglet Paramètres de code machine relatif au poste de travail sur la Liste des équipements.
* 
Si un code machine est absent du cadenceur ou n'est pas mappé à un code de raison, tous les événements reçus via l'automatisation des données pour ce code machine sont journalisés avec la valeur de catégorie d'événement (eventCategory) et de catégorie de perte (reasonCategory) Invalid. Ces événements non valides n'apparaissent pas dans les journaux des événements du Tableau de bord de production, ne sont pas ajoutés au décompte du rebut et ne sont pris en compte dans aucun calcul de données.
2. Dans ThingWorx Composer, sur l'objet de poste de travail d'un cadenceur, sous Propriétés et alertes, créez une propriété pour chaque code machine de rebut pour lequel vous souhaitez conserver le décompte. Chaque propriété de rebut est considérée comme un compteur de rebut dans DPM.
3. Les compteurs de rebut absolus et de substitution sont pris en charge. Par défaut, les compteurs de rebut sont absolus. Pour créer les compteurs de rebut sur les compteurs de substitution du cadenceur, définissez la propriété PTCIsScrapCounterRollover de l'objet sur TRUE.
* 
Un compteur absolu enregistre les nouveaux décomptes lors de leur réception. Par exemple, si le compteur reçoit les décomptes 3, 5 et 2, il enregistre un total de 10.
Un compteur de substitution enregistre la différence entre le décompte précédent et le nouveau décompte, jusqu'à ce qu'une valeur de substitution désignée soit atteinte et que le compteur soit réinitialisé. Lorsque le compteur est réinitialisé, il enregistre la différence entre le décompte précédent et la valeur de substitution, plus le nouveau décompte. Par exemple :
Le compteur de substitution reçoit les décomptes 0, 2 et 5. Lorsqu'il reçoit le décompte 2, il enregistre la valeur 2 (différence entre 2 et 0). Lorsque le compteur reçoit le décompte 5, il enregistre la valeur 3 (différence entre 2 et 5).
Le compteur de substitution reçoit les décomptes 990, 998 et 3, et la valeur de substitution est de 999. Lorsque le compteur reçoit le décompte 998, il enregistre la valeur 8 (différence entre 998 et 990). Lorsque le compteur reçoit le décompte 3, il enregistre la valeur 4 (différence entre 999 et 998, plus le nouveau décompte de 3).
Un compteur de substitution n'est pas réinitialisé lorsque l'ordre de travail change sur l'objet de poste de travail.
4. Mettez à jour la propriété PTCScrapEventProperties pour inclure chaque propriété de rebut créée à l'étape 2. La valeur de la propriété PTCScrapEventProperties est une table d'informations. Pour chaque propriété de rebut, ajoutez une ligne à la table d'informations avec les informations suivantes :
propertyName : nom de la propriété de rebut.
machineCode : code machine associé à la propriété de rebut.
rolloverCounter : valeur de substitution. Si la propriété PTCIsScrapCountRollover de l'objet de poste de travail est FALSE, la valeur de substitution est ignorée.
reallocateFromGoodCount : cochez la case (TRUE) si le décompte du rebut reçu pour cette propriété doit être réalloué à partir du décompte de production bonne qui a déjà été enregistré. Si le décompte du rebut reçu pour cette propriété n'a pas besoin d'être réalloué à partir du décompte de production bonne, ne cochez pas la case (FALSE).
Tenez compte de la position du compteur de rebut pour déterminer si les décomptes du rebut signalés par le compteur de rebut doivent être réalloués à partir du décompte de production bonne. Les décomptes du rebut peuvent être enregistrés avant et après l'enregistrement des décomptes de production bonne, en fonction de l'emplacement physique du compteur de rebut par rapport au compteur de production. L'image suivante illustre un exemple simple dans lequel un cadenceur comporte deux compteurs de rebut : le compteur de rebut 1 est placé avant le compteur de production et le compteur de rebut 2 est positionné après celui-ci.
Diagramme illustrant un cadenceur avec deux compteurs de rebut et un compteur de production. Le compteur de rebut 1 est placé devant le compteur de production, et le compteur de rebut 2 est placé derrière le compteur de production.
Lorsqu'un décompte du rebut est enregistré à partir du compteur de rebut 1, le décompte de production bonne n'a pas encore été enregistré par le compteur de production. Par conséquent, le décompte du rebut n'a pas besoin d'être réalloué à partir du décompte de production bonne. Cela suppose que tout produit mis au rebut qui est compté par le compteur de rebut 1 ne sera pas inclus dans le décompte de production bonne enregistré par le compteur de production. Définissez reallocateFromGoodCount sur FALSE pour ce compteur de rebut.
Lorsqu'un décompte du rebut est enregistré à partir du compteur de rebut 2, le décompte de production bonne a déjà été enregistré par le compteur de production. Tout produit désormais mis au rebut doit être réalloué à partir du décompte de production bonne, car il a été inclus dans le décompte de production bonne enregistré par le compteur de production. Définissez reallocateFromGoodCount sur TRUE pour ce compteur de rebut.
* 
Si la propriété de rebut et le code machine ne sont pas correctement mappés dans la table d'informations PTCScrapEventProperties, toutes les données reçues pour cette propriété de rebut sont journalisées en tant qu'événement avec la valeur de catégorie d'événement (eventCategory) et de catégorie de perte (reasonCategory) Invalid. Ces événements non valides n'apparaissent pas dans les journaux des événements du Tableau de bord de production, ne sont pas ajoutés au décompte du rebut et ne sont pris en compte dans aucun calcul de données.
5. Par défaut, chaque compteur de rebut démarre à 0. Si vous souhaitez qu'un compteur de rebut démarre avec un numéro différent, ajoutez une ligne à la propriété de la table d'informations PTCLastAutomationProcessedValues avec les valeurs suivantes :
propertyName : nom de la propriété de rebut.
value : valeur à laquelle vous souhaitez que le compteur de rebut démarre.
jobOrderUid : ce champ est ignoré par DPM.
6. Ajoutez un abonnement à l'événement de modification de données pour chaque propriété de rebut que vous avez créée à l'étape 2. Sous Abonnements, cliquez sur Ajouter. Spécifiez les informations suivantes :
Sous Infos abonnement, saisissez un nom pour l'abonnement et cochez la case Activé.
Sous Entrées, sélectionnez l'événement DataChange et le nom de la propriété de rebut pour laquelle vous créez l'abonnement.
Dans l'éditeur de script, collez le code suivant :
me.AddPTCValueStreamEntry({
propertyName: sourceProperty,
newEventData: eventData.newValue
});
Cliquez sur Terminé.
7. Cliquez sur Enregistrer pour enregistrer les modifications apportées à l'objet de poste de travail.
* 
Pour obtenir un compteur absolu, lorsque deux décomptes du rebut successifs présentent la même valeur pour une propriété de rebut donnée, réinitialisez la propriété de rebut avant de transmettre la deuxième valeur de décompte du rebut en envoyant la valeur -1 (valeur par défaut de la propriété PTC.ScrapCountResetValue). Le système ne reconnaît pas la réception d'une valeur identique comme une modification de données. La valeur de la propriété doit être réinitialisée pour que le second décompte de rebut présentant une valeur identique pour la même propriété de rebut soit reconnu comme un nouveau décompte de rebut.
* 
Si une propriété de décompte du rebut est supprimée de l'objet de poste de travail d'un cadenceur, vous devez également la supprimer de la propriété PTCScrapEventProperties. Si la propriété PTCScrapEventProperties répertorie une propriété de décompte du rebut inexistante, aucun des événements du flux de valeurs ne sera traité pour cet objet.
Pour journaliser les événements de disponibilité
Les événements de disponibilité enregistrent l'état actuel de la machine en acceptant les codes machine de la machine qui sont mappés à des codes de raison.
Pour journaliser les événements de disponibilité à l'aide de l'automatisation des données, procédez comme suit :
1. Vérifiez que les codes machine de défaillance sont présents sur chaque cadenceur et qu'ils sont affectés aux raisons appropriées. Cela inclut un code machine Running auquel un code de raison est affecté à partir de l'arborescence de raisons Running. Les codes machine et les codes de raison qui leur sont affectés sont visibles sous Administration, dans l'onglet Paramètres de code machine relatif au poste de travail sur la Liste des équipements.
* 
Si un code machine est absent du cadenceur ou s'il n'est pas mappé à un code de raison provenant d'une arborescence de raisons affectée au cadenceur, l'événement est enregistré avec le code de raison Inconnu.
2. Dans ThingWorx Composer, sur l'objet de poste de travail de chaque cadenceur, sous Propriétés et alertes, liez la propriété PTCAvailabilityEventFaultCode au tag approprié.
3. Cliquez sur Enregistrer pour enregistrer les modifications apportées à l'objet de poste de travail.
Est-ce que cela a été utile ?