> For the complete documentation index, see [llms.txt](https://docs.augelab.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.augelab.com/french/example-projects/alive-signal.md).

# Créer un signal de vie

Un signal de vie, aussi appelé heartbeat, alterne continuellement entre `TRUE` et `FALSE` pendant l'exécution d'un scénario. Un API ou un appareil externe peut surveiller ces changements d'état pour confirmer que le scénario est toujours actif.

## 1. Créer l'impulsion

1. Ajoutez un bloc [PWM (Pulse Width Modulation)](/french/function-blocks/blocks-reference/input-output/data-inputs/pwm-pulse-width-modulation.md).
2. Réglez **Time mode** sur **Seconds**.
3. Définissez **Interval** comme durée complète du cycle et **Up Duration** comme durée pendant laquelle la sortie reste à `TRUE`.

Par exemple, un intervalle de `0.3` seconde et une durée haute de `0.1` seconde produisent `TRUE` pendant 0,1 seconde et `FALSE` pendant 0,2 seconde, de façon répétée.

## 2. Envoyer le signal à l'appareil externe

Connectez la sortie **Boolean** du bloc PWM à l'entrée **Data** ou **Value** du bloc d'écriture de communication utilisé par l'appareil. Connectez le bloc d'écriture à son client ou à sa connexion de communication comme d'habitude.

* Si le bloc d'écriture possède une entrée **Enable**, connectez un [Logic Input](/french/function-blocks/blocks-reference/input-output/data-inputs/logic-input.md) réglé sur `TRUE`.
* Pour un bloc d'écriture TCP tel que **TCPIPWrite**, réglez **Send Policy** sur **Always** afin que les deux états du signal soient envoyés. L'exemple ci-dessous utilise cette configuration.
* Pour [Siemens S7 Write](/french/function-blocks/blocks-reference/input-output/communication/siemens-s7-write.md), connectez **Siemens S7 Connect** à **S7 Client**, réglez **DB Data Type** sur `Boolean` et configurez le numéro de DB, l'adresse d'octet et la position de bit requis.
* Pour [Modbus Write](/french/function-blocks/blocks-reference/input-output/communication/modbus-write.md), connectez **Modbus Connect** à **Modbus Client**, sélectionnez **Coil** et configurez l'adresse cible.

<figure><img src="/files/RnHbjxWxtfLtDAPMROAp" alt="La sortie Boolean de PWM est connectée à l&#x27;entrée Data de TCPIPWrite ; un Logic Input réglé sur TRUE est connecté à Enable."><figcaption><p>Exemple de heartbeat envoyé par TCPIPWrite</p></figcaption></figure>

## 3. Configurer le récepteur

L'appareil externe doit surveiller un changement d'état, et non uniquement la valeur courante. Avec l'exemple ci-dessus, un délai d'expiration d'environ une seconde laisse une marge pour la planification normale et le jitter réseau tout en détectant rapidement un scénario arrêté.

* Utilisez un bit ou un tag d'API dédié ; ne le partagez pas avec la logique de commande du processus.
* Choisissez une impulsion plus lente si l'appareil, le temps de cycle de l'API ou le réseau ne peuvent pas observer de courtes transitions de manière fiable.
* Si le bloc d'écriture fournit **Data on Stop**, définissez cette valeur sur `FALSE` lorsque le récepteur a besoin d'un état final connu.

L'appareil externe déclenche son alarme de timeout lorsqu'il ne reçoit plus de changements d'état. Le signal s'arrête lorsque le scénario cesse d'évaluer les blocs PWM et de communication.

## 4. Tester le signal

Avant de connecter un équipement de production, utilisez [Scope](/french/function-blocks/blocks-reference/input-output/outputs-exports/scope.md) pour confirmer le cycle `TRUE`/`FALSE` attendu. Vérifiez ensuite sur le récepteur qu'il voit les deux états et déclenche une alarme après le délai d'expiration configuré.
