0% ont trouvé ce document utile (0 vote)
4 vues10 pages

Ladder Unity Pro

Le document présente le langage Ladder utilisé pour programmer des automates M340 et variateurs ATV312 sous UNITY PRO. Il décrit les concepts fondamentaux du langage, les types de données, la gestion de la mémoire, ainsi que des exemples pratiques de programmation incluant des temporisations et des blocs de communication Modbus. Un exemple complet de contrôle du variateur à travers des rungs est également fourni, illustrant l'interaction entre les entrées, les calculs et les sorties.

Transféré par

porgomoussa697
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
4 vues10 pages

Ladder Unity Pro

Le document présente le langage Ladder utilisé pour programmer des automates M340 et variateurs ATV312 sous UNITY PRO. Il décrit les concepts fondamentaux du langage, les types de données, la gestion de la mémoire, ainsi que des exemples pratiques de programmation incluant des temporisations et des blocs de communication Modbus. Un exemple complet de contrôle du variateur à travers des rungs est également fourni, illustrant l'interaction entre les entrées, les calculs et les sorties.

Transféré par

porgomoussa697
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd

PROJET RLI — Langage Ladder sous UNITY PRO

PROJET RLI
Automate M340 & Variateur ATV312

Langage Ladder sous UNITY PRO

1. Qu'est-ce que le langage Ladder ?


Le langage Ladder (schéma à contacts) est un langage de programmation graphique pour
automates programmables (PLC). Il est standardisé par la norme IEC 61131-3 et imite
visuellement les schémas électriques traditionnels.

Une ligne Ladder s'appelle un rung (échelon). Elle se lit de gauche à droite :
• Côté gauche : les conditions (contacts)
• Côté droit : les actions (bobines ou blocs fonctionnels)

Principe de base
• Si toutes les conditions (contacts) d'un rung sont vraies → la bobine s'active
• Chaque rung est évalué cycliquement par l'automate (cycle scan)
• Le programme est exécuté de haut en bas, rung par rung

2. Les types de données


Les types de données définissent la nature et la taille de l'information stockée dans une
variable.

Type Taille Plage de valeurs Usage typique


BOOL 1 bit 0 ou 1 Contacts, bobines,
états
INT 16 bits -32 768 à +32 767 Compteurs, vitesses
DINT 32 bits ±2 147 483 647 Grandes valeurs
REAL 32 bits Décimaux Calculs précis,
températures
WORD 16 bits 0 à 65 535 Registres Modbus
TIME 32 bits Durée Temporisations
STRING Variable Texte Messages, libellés

Langage Ladder — UNITY PRO


PROJET RLI — Langage Ladder sous UNITY PRO

Adressage mémoire sous UNITY PRO


Chaque variable peut être adressée directement dans la mémoire de l'automate M340 :

Adresse Type Description


%M0 BOOL Bit mémoire interne (0 ou 1)
%MW0 WORD / INT Mot mémoire 16 bits
%MD0 DINT Double mot mémoire 32 bits
%MF0 REAL Mot flottant (décimal)
%I0.x BOOL Entrée physique de l'automate
%Q0.x BOOL Sortie physique de l'automate

3. Variables statiques vs dynamiques

Variables STATIQUES Variables DYNAMIQUES


Valeur conservée après coupure Valeur perdue à chaque redémarrage
d'alimentation Stockées en RAM temporaire
Stockées en mémoire non-volatile (FLASH) Variables locales de blocs fonctionnels
Adresse fixe : %MW10, %M0... Usage : calculs temporaires, variables
Usage : compteurs, consignes, états intermédiaires
machine

Règle simple
• Si la valeur doit survivre à un arrêt/redémarrage → utiliser une variable STATIQUE
• Si la valeur est temporaire (calcul intermédiaire) → utiliser une variable DYNAMIQUE

Déclaration de variables dans UNITY PRO


Dans UNITY PRO, les variables se déclarent via l'Éditeur de données :
• Aller dans le menu Variables & FB instances
• Renseigner : Nom, Type, Adresse (%MW0...), Commentaire

Exemple de table de variables pour le projet ATV312 :

Nom Type Adresse Commentaire


Demarrage BOOL %M0 Bouton Start
Arret BOOL %M1 Bouton Stop

Langage Ladder — UNITY PRO


PROJET RLI — Langage Ladder sous UNITY PRO

Nom Type Adresse Commentaire


Consigne_Vitesse INT %MW10 Vitesse cible (tr/min)
Vitesse_Actuelle INT %MW20 Vitesse lue depuis ATV312
Alarme_Survitesse BOOL %M5 Défaut vitesse excessive
Consigne_Modbus INT %MW30 Valeur convertie pour Modbus

4. Les contacts et bobines (base du Ladder)

4.1 Les contacts (conditions)


Symbole Nom Rôle
--[ ]-- Contact Normalement Ouvert Passant si la variable = 1 (vraie)
(NO)
--[/]-- Contact Normalement Fermé Passant si la variable = 0 (fausse)
(NF)
--[P]-- Front montant (Rising Edge) Passant 1 seul cycle lors du passage
0→1
--[N]-- Front descendant (Falling Passant 1 seul cycle lors du passage
Edge) 1→0

4.2 Les bobines (actions)


Symbole Nom Rôle
--( )-- Bobine normale Active la sortie si conditions vraies, désactive
sinon
--(/)-- Bobine inversée Désactive si conditions vraies, active sinon
--(S)-- Set (mémorisation) Met à 1 et RESTE à 1 même si conditions
deviennent fausses
--(R)-- Reset Remet à 0 la variable
(démémorisation)

4.3 Exemple de rung


|---[Demarrage]---[/Arret]---(S: Moteur_ON)---|
Lecture : Si Demarrage=1 ET Arret=0 → Moteur_ON est mis à 1 (et reste à 1)

Langage Ladder — UNITY PRO


PROJET RLI — Langage Ladder sous UNITY PRO

5. Les temporisations
Les temporisations sont des blocs fonctionnels utilisés pour gérer des délais dans le
programme Ladder.

5.1 TON — Retard à l'enclenchement


La sortie Q passe à 1 seulement après que le délai PT soit écoulé, à condition que IN reste
à 1.

Broche Direction Description


IN Entrée Signal de déclenchement (doit rester à 1)
PT Entrée Durée du retard (ex : t#5s, t#500ms)
Q Sortie Passe à 1 après que PT soit écoulé
ET Sortie Temps écoulé depuis l'activation de IN

Chronogramme TON
• IN : ___████████████████
• Q : __________█████████ (Q monte après PT)
• ←─PT─→

Exemple concret : Le moteur démarre 5 secondes après l'appui sur le bouton de démarrage.

5.2 TOFF — Retard au déclenchement


La sortie Q reste active encore PT secondes après que IN soit passé à 0.

Chronogramme TOFF
• IN : ___████████████_____
• Q : ___██████████████___ (Q reste actif après IN=0)
• ←─PT─→

Exemple concret : Le ventilateur de refroidissement continue à tourner 10 secondes après


l'arrêt du moteur.

5.3 TP — Impulsion de durée fixe


Génère une impulsion de durée exactement PT, indépendamment de ce qui se passe sur IN
après le déclenchement.

Chronogramme TP

Langage Ladder — UNITY PRO


PROJET RLI — Langage Ladder sous UNITY PRO

• IN : ___█__________________
• Q : ___█████████__________ (impulsion de durée PT exacte)
• ←────PT────→

Exemple concret : Envoyer une commande de démarrage pendant exactement 2 secondes.

Tableau comparatif des temporisations


Bloc Déclenchement Arrêt Usage typique
TON Après délai PT Dès que IN = 0 Démarrage différé
TOFF Dès que IN = 1 Après délai PT Arrêt différé (ventilation)
TP Dès que IN = 1 Après délai PT fixe Commande
impulsionnelle

6. Les blocs de calcul

6.1 Operate — Opération arithmétique


Le bloc Operate permet d'effectuer un calcul mathématique et de stocker le résultat dans
une variable.

Syntaxe :
Operate : %MW30 := %MW10 + %MW20

Opérateur Fonction Exemple


+ Addition %MW30 := %MW10 + 500
- Soustraction %MW30 := %MW10 - 100
* Multiplication %MW30 := %MW10 * 10
/ Division %MW30 := %MW10 / 2
MOD Modulo (reste) %MW30 := %MW10 MOD 100

Exemple concret (projet ATV312) : Convertir la consigne de vitesse en valeur Modbus (le
variateur attend une valeur × 10) :
Operate : %MW30 := %MW10 * 10
Consigne_Modbus := Consigne_Vitesse × 10

6.2 Compare — Comparaison de valeurs


Le bloc Compare évalue une condition et active une bobine si la condition est vraie.

Langage Ladder — UNITY PRO


PROJET RLI — Langage Ladder sous UNITY PRO

Compare : %MW20 > 1500

Opérateur Signification Exemple


> Supérieur à %MW20 > 1500
< Inférieur à %MW20 < 500
= Égal à %MW20 = 1000
>= Supérieur ou égal %MW20 >= 800
<= Inférieur ou égal %MW20 <= 1200
<> Différent de %MW20 <> 0

Exemple concret : Si la vitesse actuelle dépasse 1500 tr/min → déclencher l'alarme :


|---[Compare: %MW20 > 1500]---(S: Alarme_Survitesse)---|

7. Les blocs de communication Modbus


Ces blocs permettent à l'automate M340 de communiquer avec le variateur ATV312 via le
protocole Modbus RTU/TCP.

7.1 ADDM — Définition de l'adresse Modbus


Avant toute communication, il faut définir l'adresse de l'esclave Modbus. Ce bloc retourne
une adresse formatée utilisée par Read_Var et Write_Var.

ADDM('0.1.0{1}')

Champ Signification Valeur exemple


0 Numéro de rack 0 (rack principal)
1 Numéro de module 1 (module communication)
0 Numéro de voie 0 (voie série)
{1} Adresse de l'esclave 1 (ATV312 adresse 1)

7.2 Read_Var — Lecture d'un registre


L'automate M340 lit la valeur d'un registre dans le variateur ATV312. Utilisé pour récupérer
la vitesse actuelle, les états, les défauts...

Paramètre Rôle Exemple


ADR Adresse Modbus de l'esclave ADDM('0.1.0{1}')

Langage Ladder — UNITY PRO


PROJET RLI — Langage Ladder sous UNITY PRO

Paramètre Rôle Exemple


OBJ Type d'objet Modbus 'MW' (registre holding)
NUM Numéro du registre à lire 8604 (vitesse ATV312)
NB Nombre de registres à lire 1
GEST Tableau de gestion (erreurs, %MW100:4
état)
RECP Variable qui reçoit la valeur %MW20
lue

Registre important ATV312


• %MW8604 = registre contenant la vitesse actuelle du moteur
• Valeur retournée en 1/10 de tr/min (ex : 15000 = 1500 tr/min)

7.3 Write_Var — Écriture dans un registre


L'automate M340 envoie une commande ou une consigne au variateur ATV312. Utilisé pour
démarrer, arrêter, changer la vitesse...

Paramètre Rôle Exemple


ADR Adresse Modbus de l'esclave ADDM('0.1.0{1}')
OBJ Type d'objet Modbus 'MW' (registre holding)
NUM Numéro du registre cible 8502 (mot de commande)
NB Nombre de registres à écrire 1
GEST Tableau de gestion (erreurs, %MW100:4
état)
EMIS Variable contenant la valeur à %MW30
envoyer

Registres importants ATV312


• %MW8502 = mot de commande (CMD Word) : démarrer / arrêter le variateur
• %MW8501 = registre de consigne de vitesse (Speed Reference)

8. Exemple complet — Contrôle ATV312 depuis M340

Objectif du programme
• Appui sur START → envoi de la consigne de vitesse → démarrage du variateur

Langage Ladder — UNITY PRO


PROJET RLI — Langage Ladder sous UNITY PRO

• Lecture en continu de la vitesse actuelle depuis l'ATV312


• Déclenchement d'une alarme si la vitesse dépasse 1500 tr/min
• Arrêt complet sur appui STOP

Table des variables utilisées


Nom Type Adresse Rôle
START BOOL %I0.0 Bouton démarrage (entrée
physique)
STOP BOOL %I0.1 Bouton arrêt (entrée physique)
Demarrage BOOL %M0 Mémorisation état démarré
Consigne_RPM INT %MW10 Consigne vitesse (tr/min)
Consigne_Modbus INT %MW30 Consigne convertie pour
ATV312
Vitesse_Actuelle INT %MW20 Vitesse lue depuis ATV312
Alarme BOOL %M5 Alarme survitesse

Programme Ladder — Rungs

Rung 1 — Mémorisation du démarrage (circuit de maintien)


|---[START]---[/STOP]---(S: Demarrage)---|
|---[STOP]---(R: Demarrage)---|
Explication : Appui sur START mémorise l'état Demarrage=1. Appui sur STOP le remet à 0.

Rung 2 — Calcul de la consigne Modbus


|---[Demarrage]---[Operate: %MW30 := %MW10 * 10]---|
Explication : Convertit la consigne en valeur Modbus (le variateur ATV312 attend la vitesse
× 10).

Rung 3 — Envoi de la consigne au variateur (Write_Var)


|---[Demarrage]---[Write_Var ADR:=ADDM('0.1.0{1}'), NUM:=8501,
EMIS:=%MW30]---|
Explication : Envoie la consigne de vitesse dans le registre 8501 du variateur ATV312.

Rung 4 — Lecture de la vitesse actuelle (Read_Var)


|---[Demarrage]---[Read_Var ADR:=ADDM('0.1.0{1}'), NUM:=8604, RECP:=
%MW20]---|
Explication : Lit en continu la vitesse réelle du moteur et la stocke dans %MW20.

Rung 5 — Alarme survitesse (Compare)

Langage Ladder — UNITY PRO


PROJET RLI — Langage Ladder sous UNITY PRO

|---[Compare: %MW20 > 1500]---(S: Alarme)---|


Explication : Si la vitesse dépasse 1500 tr/min → l'alarme est déclenchée et mémorisée.

Rung 6 — Arrêt du variateur


|---[STOP]---[Write_Var ADR:=ADDM('0.1.0{1}'), NUM:=8502,
EMIS:=0]---|
Explication : Envoie la valeur 0 dans le mot de commande pour arrêter le variateur.

Schéma fonctionnel du programme

BOUTON START

Mémorisation (Set %M0)

Operate → Calcul consigne Modbus (%MW30 := %MW10 × 10)

Write_Var → Envoi consigne vers ATV312 (registre 8501)

Read_Var ← Lecture vitesse réelle depuis ATV312 (registre 8604)

Compare → Si vitesse > 1500 tr/min → Alarme

9. Résumé — Points clés à retenir

Concept Définition courte


Rung Ligne du programme Ladder (condition → action)
Contact NO --[ ]-- Passant si variable = 1
Contact NF --[/]-- Passant si variable = 0
Bobine Set (S) Met à 1 et mémorise (reste à 1)
Bobine Reset (R) Remet à 0
TON Retard à l'enclenchement (délai avant activation)
TOFF Retard au déclenchement (délai avant désactivation)
TP Impulsion de durée fixe
Operate Calcul arithmétique entre variables
Compare Comparaison de deux valeurs
ADDM Définit l'adresse de l'esclave Modbus
Read_Var Lit un registre dans le variateur ATV312
Write_Var Écrit une commande dans le variateur ATV312

Langage Ladder — UNITY PRO


PROJET RLI — Langage Ladder sous UNITY PRO

Concept Définition courte


Variable statique Valeur conservée après coupure d'alimentation
Variable dynamique Valeur perdue au redémarrage

Langage Ladder — UNITY PRO

Vous aimerez peut-être aussi