Aller au contenu principal

Pauses automatiques

Cet article se concentre sur la façon de configurer les pauses automatiques avec le moteur de règles.

Cette configuration tente de prendre en compte tous les scénarios possibles pour améliorer votre collecte de données, réduire la charge de travail de vos opérateurs, tout en gardant les données aussi proches que possible de ce qui se passe réellement dans votre usine.

Cet article suppose que vous avez des connaissances sur la configuration du moteur de règles, des conditions de règles et des états de machine.
Les pauses automatiques sont une fonctionnalité de configuration avancée.

Cas d'étude

Cet article est construit sur un exemple et suit les étapes de la configuration du début à la fin.

Dans notre exemple d'usine, les quarts de travail ont une durée de 8 heures, de 8:00 à 16:00 et de 00:00 à 8:00.
Les pauses déjeuner sont à 12:00/20:00/4:00 et ont une durée d'une heure.
Les petites pauses sont à 10:00/14:00/18:00/22:00/2:00/6:00 et ont une durée de 15 minutes.

Cas particuliers

L'approche de base pour configurer une pause automatique serait de créer une cause d'arrêt pré-remplie à chaque pause avec soit une cause d'arrêt de déjeuner, soit une cause d'arrêt de pause.
Cependant, que se passe-t-il si votre opérateur travaille 5 minutes de plus? Et s'il y a un rush de production et que les déjeuners sont réduits à 30 minutes? Et si votre machine ne fonctionne pas pour X raison pendant toute une journée, vous devez envisager de créer un évènement OFF normal à la fin de chaque pause. Ce sont tous des cas que cette configuration prend en compte.

Étape 1 : Configurer la variable "break_status".

Plus tard dans la configuration, les règles devront savoir dans quelle tranche horaire vous vous trouvez : production, petite pause ou déjeuner.
Pour cela, nous créons une variable nommée break_status définie comme suit :

  • 1 = temps normal de production
  • 2 = petites pauses de 15 minutes
  • 3 = longues pauses déjeuner

Créons 3 actions de type Variable qui seront utilisées dans l'étape 2, pour passer d'un statut de pause à l'autre.

Étape 2 : Configurer la variable break_status

Dans cette deuxième étape, nous devons créer une règle qui modifie la variable à 1, 2 ou 3 avec un déclencheur planifié. Veuillez lire l'intégralité de l'étape 2 avant de vous plonger dans la configuration.

Dans notre exemple, nous avons 3 pauses déjeuner et 6 petites pauses. Comme nous devons configurer une règle pour le début et la fin de chaque pause, cela signifie 18 règles à configurer.

Voici comment configurer les déclencheurs pour les règles des pauses déjeuner de 12:00 à 13:00 :

Voici l'exemple d'une règle complète, utilisant notre action créée à l'étape 1 :

Règle 12h00

Maintenant que vous savez comment configurer une règle pour une pause, il ne vous reste plus qu'à en faire 16 de plus.

astuce

Créer une règle pour chaque début/fin de pause peut être long et déroutant. Pour cela, nous pouvons utiliser une Cron String à sa pleine capacité pour réduire le nombre de règles que vous devez créer.

Voir ci-dessous pour comprendre ce qu'est une Cron String et comment l'utiliser.

Réduire le nombre de règles à créer

Le fonctionnement interne du déclencheur planifié utilise ce qu'on appelle une Cron String.
C'est un format utilisé dans les systèmes Unix pour planifier des tâches répétitives : c'est une façon de coder une phrase comme "Faire quelque chose tous les vendredis de février à 6 heures du matin".
Nous avons créé une interface pour qu'elle soit plus facile à créer, mais vous pouvez toujours voir la chaîne de caractères sous le formulaire dans une entrée en lecture seule.
Voyons comment nous pouvons l'utiliser à notre avantage dans cette configuration.

Pour notre configuration de pause automatique, nous devons coder quatre Cron String :

  • À 12:00, 20:00 et 04:00 tous les jours faire : début des pauses déjeuner (break_status à 3)
  • À 13:00, 21:00 et 05:00 tous les jours faire : fin des pauses déjeuner (break_status à 1)
  • À 10:00/14:00/18:00/22:00/2:00/6:00 tous les jours faire : début des petites pauses (break_status à 2)
  • À 10:15/14:15/18:15/22:15/2:15/6:15 tous les jours, faites : fin des petites pauses (break_status à 1)

Si nous le configurons ainsi, nous n'avons besoin que de 4 règles, contre 18 auparavant.

Voici ce que représente la chaîne de caractères, tirée de la page Cron sur Wikipédia :

 ┌───────────── minute (0 - 59)
│ ┌───────────── heure (0 - 23)
│ │ ┌───────────── jour du mois (1 - 31)
│ │ ┌───────────── mois (1 - 12)
│ │ │ │ ┌───────────── jour de la semaine (0 - 6) (du dimanche au samedi)
│ │ │ │ │
│ │ │ │ │
* * * * *

Voyons cela avec quelques exemples (jouez avec l'interface pour la voir changer) :
Tous les jours à 12:00 : 0 12 * * *
Tous les jours à 13:00 : 0 13 * * *
Tous les lundis à 12:00 : 0 12 * * 1
Tous les jours de la semaine sauf le dimanche (0) à 15:30 : 30 15 * * 1,2,3,4,5,6

Nous pouvons remarquer que la virgule permet d'ajouter une sélection de jours. Cela fonctionne exactement de la même manière pour les heures :
Tous les jours à 12:00, 20:00 et 04:00 : 0 4,12,20 * * *
Sélectionnez Répéter "Aucun" en haut de votre déclencheur planifié, et créez vos 4 règles pour vos 4 Cron String.

astuce
  • A 12:00, 20:00 et 04:00 tous les jours : 0 4,12,20 * * *
  • A 13:00, 21:00 et 05:00 tous les jours : 0 5,13,21 * * *
  • A 10:00/14:00/18:00/22:00/2:00/6:00 tous les jours : 0 2,6,10,14,18,22 * * *
  • A 10:15/14:15/18:15/22:15/2:15/6:15 tous les jours : 15 2,6,10,14,18,22 * * *

Si la configuration n'est pas assez claire avec une Cron String complexe, tenez-vous-en à la création d'une règle pour chaque changement de statut de pause. C'est parfois plus facile, surtout si vous n'avez pas beaucoup de pauses et/ou de machines.

Étape 3 : Configurer les causes d'arrêt de la machine

Cette dernière étape consiste à configurer la cause d'arrêt pré-remplie et à éviter les erreurs de configuration avec l'état machine précédemment configuré.

Vous devez répéter cette étape pour chaque machine sur laquelle vous voulez configurer des arrêts automatiques.

Nous supposons, pour garder l'exemple concis, que vous avez choisi de configurer avec les Cron Strings. Dans le cas contraire, vous devrez créer autant de règles que vous venez de le faire : 18 au lieu de 4 pour cet exemple. Pour CHAQUE machine, vous voulez ajouter la configuration de la pause automatique.

danger

Comme dit précédemment, cette configuration essaie de prendre en compte tous les scénarios possibles pour améliorer votre collecte de données, réduire la charge de travail de vos opérateurs, tout en gardant les données aussi proches que possible de ce qui se passe réellement dans votre usine.

Pour que les données soient aussi vraies que possible, il faut beaucoup de configuration. Les erreurs de configuration peuvent réduire la précision des données.

ON ou OFF à l'heure de la pause?

Cette partie concerne l'heure programmée des pauses et le moment où il ne faut pas créer un évènement OFF.

Comme indiqué précédemment, nous devons créer 4 autres règles planifiées pour chaque machine, avec les mêmes heures de déclenchement.
Nous pourrions nous demander : si ma règle planifiée se déclenche à 12:00, pourquoi en créer une autre qui se déclenchera aussi à 12:00? Pourquoi ne mettons-nous pas une action de pré-remplissage de l'état de la machine pour chaque machine à nos règles précédemment créées qui gèrent break_status?
Parce que sinon nous ne pourrions pas répondre à cette question : Et si votre opérateur travaille 5 minutes de plus?.

En effet, les copies de nos 4 règles planifiées ont une condition : ma machine est-elle éteinte?

Cela répond à deux problèmes :

  • Nous ne voulons pas créer un évènement OFF à 12:00 si votre opérateur travaille encore à 12:05.
  • Nous ne voulons pas avoir une pause déjeuner de 20 minutes après 13:00 si l'opérateur est en retard. Nous voulons créer un évènement OFF par défaut pour maintenir de vraies données.

Tout d'abord, créez deux actions d'état machine pré-remplies OFF pour le déjeuner et les petites pauses :

Action déjeuner Action petite

Ajoutez ensuite une condition dans vos 4 règles planifiées : ma machine est-elle éteinte? ($machine_state == false)

Enfin, ajoutez les actions respectives à vos 4 règles comme ceci :

  • À 12:00, 20:00 et 04:00 tous les jours faire : État de la machine à OFF - Pause déjeuner
  • À 13:00, 21:00 et 05:00 tous les jours faire : État de la machine à OFF (par défaut)
  • À 10:00/14:00/18:00/22:00/2:00/6:00 tous les jours : État de la machine à OFF - Petite pause
  • À 10:15/14:15/18:15/22:15/2:15/6:15 tous les jours : État de la machine à OFF (par défaut)

Aperçu de la pause

Configurer l'état de la machine OFF pendant une pause

Cette dernière partie configure le moment où la machine s'éteint pendant une pause. Elle répond à la question : Que se passe-t-il si votre opérateur arrête la machine 5 minutes après la pause programmée et que vous avez "manqué" l'évènement de cause d'arrêt de pré-remplissage programmé?

Pour cela, nous devons ajouter 2 règles à votre configuration de base de l'état de la machine qui écoutent la variable d'état machine passant à false. Cela nous donne 3 règles qui écoutent le passage à false de votre état : temps de production OFF, pause déjeuner OFF et petite pause OFF.

Ce qui différencie ces 3 règles, c'est que chacune de ces règles a une condition en fonction de la valeur de break_status. Chaque règle a le même déclencheur, mais une condition différente.

Utilisez les actions que nous avons créées précédemment avec un déclencheur de valeur écoutant la variable d'état machine passant à false pour obtenir ceci :

Règle condition

Faites de même pour la pause déjeuner (break_status == 3) et n'oubliez pas d'ajouter une condition à votre règle d'état machine OFF de base.

Conclusion

Vous savez maintenant comment configurer les pauses automatiques dans votre application. Attention à l'effet des règles mal configurées.