LE TRAITEMENT NUMERIQUE
Donnée numérique
Donnée numérique Représentation binaire L’automate programmable possède la possibilité de travailler sur : - des données booléennes 1 bit BOOL - des données numériques 8 bits SINT Entier court 16 bits INT Entier 32 bits DINT Entier double 64 bits LINT Entier long - des tableaux
Donnée numérique Représentation binaire Mot de 16 bits Octet de poids fort (PF) Octet de poids faible (Pf) 215 214 213 212 211 210 29 28 27 26 25 24 23 22 21 20 32768 16384 8192 4096 2048 1024 512 256 128 64 32 16 8 4 2 1 Avec un entier non signé de 16 bits, 65536 valeurs différentes (216) valeur minimum = 0 Valeur maximum = 216-1 = 65535
Donnée numérique Représentation binaire Bit de signe 0 – valeur positive 1 – valeur négative Mot de 16 bits Octet de poids fort (PF) Octet de poids faible (Pf) 215 214 213 212 211 210 29 28 27 26 25 24 23 22 21 20 32768 + ou - 16384 8192 4096 2048 1024 512 256 128 64 32 16 8 4 2 1 Capacité: Valeur positive maximum: Valeur négative maximum: + 32767 « 0111 1111 1111 1111 » - 32768 « 1000 0000 0000 0000 »
Donnée numérique Représentation des nombres signés Représentation d’une valeur positive Exemple: représentation de la valeur 629 1 32768 16384 8192 4096 2048 1024 512 256 128 64 32 16 8 4 2 1 512 + 64 + 32 + 16 + 4 + 1 = 629
Donnée numérique Représentation des nombres signés Représentation d’une valeur négative Exemple: représentation de la valeur - 629 Valeur positive (629) 1 Complément à 1 (complément bit à bit) 1 + 1 Complément à 2 1 - 32768 +16384 +8192 +4096 +2048 +1024 +256 +128 +8 + 2 + 1 = - 629
Donnée numérique Acquisition ou Affectation P2 Donnée numérique Acquisition ou Affectation emplacement 4 16 VOIES
Donnée numérique Acquisition ou Affectation emplacement 4 % IX 04.00 % QX 04.00 16 VOIES % IX 04.15 % QX 04.15 Niveau bit
Donnée numérique Acquisition ou Affectation emplacement 4 % IX 04.00 % QX 04.00 % IB 04.00 % QB 04.00 16 VOIES % IB 04.01 % QB 04.01 % IX 04.15 % QX 04.15 Niveau bit Niveau octet
Donnée numérique Acquisition ou Affectation emplacement 4 % IX 04.00 % QX 04.00 % IB 04.00 % QB 04.00 % IW 04 % QW 04 16 VOIES % IB 04.01 % QB 04.01 % IX 04.15 % QX 04.15 Niveau bit Niveau octet Niveau mot
Représentation Calcul numérique
Représentation Calcul numérique Organigramme de programmation Symbole général de « traitement » Opération ou groupe d’opérations portant sur des données. Sous-programme Portion de programme considérée comme une opération Entrée-sortie Entrée d’une information à traiter ou affectation d’une information. Début, fin Début, fin ou interruption d’un organigramme, point de contrôle, etc Embranchement, test Exploitation de variables impliquant un choix Renvoi Symbole utilisé pour assurer la continuité.
Représentation Calcul numérique Structure alternative début Traitement si vrai Test fin Traitement si faux
Représentation Calcul numérique Structure répétitive
Les Fonctions
Les Fonctions Fonctions numériques
Les Fonctions Fonctions arithmétiques Transfert bit a bit
Les Fonctions Fonctions arithmétiques B 0 1 1 0 1 1 1 0 0 0 1 0 1 1 0 1 MOVE A x x x x x x x x x x x x x x x x Transfert bit a bit A:=B ; transfert de contenu de B dans A
Les Fonctions Fonctions arithmétiques P4 Les Fonctions Fonctions arithmétiques B 0 1 1 0 1 1 1 0 0 0 1 0 1 1 0 1 MOVE A 0 1 1 0 1 1 1 0 0 0 1 0 1 1 0 1 Transfert bit a bit A:=B ; transfert de contenu de B dans A
Les Fonctions Fonctions de conversion
Les Fonctions Fonctions de décalage Décalage logique
Les Fonctions Fonctions de décalage P4 Les Fonctions Fonctions de décalage Décalage logique à droite SHR Perdu 1 1 1 1 1 1 1 1
Les Fonctions Fonctions de décalage Décalage circulaire
Donnée numérique Fonctions de décalage P4 Donnée numérique Fonctions de décalage Décalage circulaire à droite ROR Réinjecté dans le bit de poids fort 1 1 1 1 1 1 1 1 1
Donnée numérique Fonctions de sélection
Les Fonctions Fonctions de comparaison
Les Fonctions Fonctions liées au temps
Les Fonctions Fonctions logiques P5 Les Fonctions Fonctions logiques Fonction logique ET 1 1 1 1 1 AND 1 1 1 1 1 1 1 1 = 1
Les Fonctions Fonctions logiques P5 Les Fonctions Fonctions logiques Fonction logique OU 1 1 1 1 1 OR 1 1 1 1 1 1 1 1 = 1
Les Fonctions Fonctions logiques Fonction logique de regroupement 1 1
Les Fonctions Fonctions logiques Fonction logique d’éclatement 1 1 1 1 1 1
Les Fonctions Fonctions logiques Fonction gestion de pile empiler
Les Fonctions Fonctions logiques P5 Les Fonctions Fonctions logiques Fonction gestion de pile empiler dépiler LIFO Last Input First Output
Les Fonctions Fonctions logiques Fonction gestion de pile empiler
Les Fonctions Fonctions logiques P5 Les Fonctions Fonctions logiques Fonction gestion de pile empiler dépiler FIFO First Input First Output
Traitement d’entrées et de sorties numériques
Traitement d’entrées et de sorties numériques P6 Traitement d’entrées et de sorties numériques Le positionnement d’un mobile est réalisé à l’aide d’un codeur absolu (codage GRAY sur 12 bits) relié aux voies 0 à 11 d’une carte d’entrée tout ou rien de l’automate. Les autres entrées (voies 12 à15) sont utilisées pour d’autres capteurs. Le traitement de l’information par l’automate se fait en binaire. La visualisation de la position du mobile se fait sur des afficheurs 7 segments (codage BCD) reliés à une carte de sortie tout ou rien. Afficheurs Codeur
Traitement d’entrées et de sorties numériques P6 Traitement d’entrées et de sorties numériques Le positionnement d’un mobile est réalisé à l’aide d’un codeur absolu (codage GRAY sur 12 bits) relié aux voies 0 à 11 d’une carte d’entrée tout ou rien de l’automate. Les autres entrées (voies 12 à15) sont utilisées pour d’autres capteurs. Le traitement de l’information par l’automate se fait en binaire. La visualisation de la position du mobile se fait sur des afficheurs 7 segments (codage BCD) reliés à une carte de sortie tout ou rien. Codeur X X X X c11 c10 c9 c8 c7 c6 c5 c4 c3 c2 c1 c0 Autres capteurs codeur
Traitement d’entrées et de sorties numériques P6 Traitement d’entrées et de sorties numériques Le positionnement d’un mobile est réalisé à l’aide d’un codeur absolu (codage GRAY sur 12 bits) relié aux voies 0 à 11 d’une carte d’entrée tout ou rien de l’automate. Les autres entrées (voies 12 à15) sont utilisées pour d’autres capteurs. Le traitement de l’information par l’automate se fait en binaire. La visualisation de la position du mobile se fait sur des afficheurs 7 segments (codage BCD) reliés à une carte de sortie tout ou rien. Afficheurs 1 5 3 9
Acquisition d’entrée numérique Mise en place de la fonction « ACQ_NUM » Codeur X X X X c11 c10 c9 c8 c7 c6 c5 c4 c3 c2 c1 c0 capteurs codeur
Acquisition de la valeur du codeur P6 Acquisition d’entrée numérique Mise en place de la fonction « ACQ_NUM » début Acquisition de la valeur du codeur Conversion GRAY BIN fin
P7 Acquisition d’entrée numérique Mise en place de la fonction « ACQ_NUM » FONCTION ACQ_NUM (* déclaration *)
P7 Acquisition d’entrée numérique Mise en place de la fonction « ACQ_NUM » FONCTION ACQ_NUM (* déclaration *) VAR_INPUT ENTREE2 : UINT ; (*valeur du coupleur d’entrée 2*) END_VAR VAR CODEURGRAY: UINT ; (*valeur du codeur en GRAY*) VAR_OUTPUT CODEURBIN : UINT ; (*valeur du codeur en binaire*)
P7 Acquisition d’entrée numérique Mise en place de la fonction « ACQ_NUM » (* corps de la fonction *)
P7 Acquisition d’entrée numérique Mise en place de la fonction « ACQ_NUM » (* corps de la fonction *) CODEURGRAY := ENTREE2 AND # 0FFF ; CODEURBIN := GRAY TO BIN CODEURGRAY ; END_FONCTION
FONCTION ACQ_NUM END_FONCTION (* déclaration *) VAR_INPUT ENTREE2 : UINT ; (*valeur du coupleur d’entrée 2*) END_VAR VAR CODEURGRAY: UINT ; (*valeur du codeur en GRAY*) VAR_OUTPUT CODEURBIN : UINT ; (*valeur du codeur en binaire*) (* corps de la fonction *) CODEURGRAY := ENTREE2 AND # 0FFF ; CODEURBIN := GRAY TO BIN CODEURGRAY ; END_FONCTION
P8 Acquisition d’entrée numérique Mise en place de la fonction « ACQ_NUM » (* déclaration *)
P8 Acquisition d’entrée numérique Mise en place de la fonction « ACQ_NUM » (* corps de la fonction *)
P8 Acquisition d’entrée numérique Mise en place de la fonction « ACQ_NUM » (* corps de la fonction *)
Affectation d’une sortie numérique Mise en place de la fonction « SOR_NUM » Afficheurs 1 5 3 9
P9 Affectation d’une sortie numérique Mise en place de la fonction « SOR_NUM » début Conversion valeur codeur BIN BCD Affectation afficheur fin
P9 Affectation d’une sortie numérique Mise en place de la fonction « SOR_NUM » FONCTION SOR_NUM (* déclaration *)
P9 Affectation d’une sortie numérique Mise en place de la fonction « SOR_NUM » FONCTION SOR_NUM (* déclaration *) VAR_INPUT CODEURBIN : UINT ; (*valeur du codeur en binaire*) END_VAR VAR_OUTPUT POSITION : UINT ; (*valeur de la position du mobile en BCD*)
P9 Affectation d’une sortie numérique Mise en place de la fonction « SOR_NUM » (*corps de la fonction *) (*corps de la fonction *) POSITION := BIN TO BCD CODEURBIN; END_FONCTION
FONCTION SOR_NUM END_FONCTION (* déclaration *) VAR_INPUT CODEURBIN : UINT ; (*valeur du codeur en binaire*) END_VAR VAR_OUTPUT POSITION : UINT ; (*valeur de la position du mobile en BCD*) (*corps de la fonction *) POSITION := BIN TO BCD CODEURBIN; END_FONCTION
P10 Affectation d’une sortie numérique Mise en place de la fonction « SOR_NUM » (* déclaration *)
P10 Affectation d’une sortie numérique Mise en place de la fonction « SOR_NUM » (* corps de la fonction *)
Travail sur recettes
Travail sur recettes Cette technique de programmation utilise les possibilités de l’adressage indirect des API. Ceci permet de travailler avec des tables de mots pour de chargement de consignes. L’index est un mot entier toujours positif. valeur finale = valeur du mot dont l’adresse est dans l’index Cette technique permet d’extraire certaines valeurs d’une table de mots, ou la recherche d’une valeur parmi n.
Travail sur recettes MOVE Table de réception Table de stockage D 0000 0001 D 0002 0002 D 0003 0003 D 0004 0004 D 0005 0005 MOVE L 0000 D 0006 0006 D 0007 0007 Table de réception D 0008 0008 D 0009 0009 D 0010 0010 D 0011 0011 D 0012 0012 D 0013 0013 Table de stockage
Travail sur recettes MOVE Table de réception Table de stockage D 0000 0001 D 0002 0002 D 0003 0003 D 0004 0004 D 0005 0005 MOVE L 0000 0000 D 0006 0006 D 0007 0007 Table de réception D 0008 0008 D 0009 0009 D 0010 0010 D 0011 0011 MOVE D 0012 0012 D 0000 D 0013 0013 L 0000 Table de stockage
Travail sur recettes MOVE Table de réception Table de stockage D 0000 0001 D 0002 0002 D 0003 0003 D 0004 0004 D 0005 0005 MOVE L 0000 0008 D 0006 0006 D 0007 0007 Table de réception D 0008 0008 D 0009 0009 D 0010 0010 D 0011 0011 MOVE D 0012 0012 D 0008 D 0013 0013 L 0000 Table de stockage
P11 Travail sur recettes D 0000 0000 D 0001 0001 D 0002 0002 D 0003 0003 D 0004 0004 D 0005 0005 MOVE L 0000 0010 D 0006 0006 D 0007 0007 Table de réception D 0008 0008 D 0009 0009 D 0010 0010 D 0011 0011 MOVE D 0012 0012 D 0010 D 0013 0013 L 0000 Table de stockage 14 transferts, 14 équations avec la fonction MOV !
Travail sur recettes D 0100 est l’index Table de réception 0000 D 0001 0001 D 0002 0002 D 0003 0003 D 0004 0004 D 0005 0005 L 0000 0000 D 0006 0006 D 0007 0007 Table de réception D 0008 0008 D 0009 0009 D 0010 0010 D 0011 0011 MOVE D 0012 0012 *D 0100 D 0013 0013 L 0000 Table de stockage D 0100 est l’index
Travail sur recettes Table de réception Table de stockage D 0100=0005 0000 D 0001 0001 D 0002 0002 D 0003 0003 D 0004 0004 D 0005 0005 L 0000 0005 D 0006 0006 D 0007 0007 Table de réception D 0008 0008 D 0009 0009 D 0010 0010 D 0011 0011 MOVE D 0012 0012 *D 0100 D 0013 0013 L 0000 Table de stockage
P11 Travail sur recettes D 0100=0010 D 0000 0000 D 0001 0001 D 0002 0002 D 0003 0003 D 0004 0004 D 0005 0005 L 0000 0010 D 0006 0006 D 0007 0007 Table de réception D 0008 0008 D 0009 0009 D 0010 0010 D 0011 0011 MOVE D 0012 0012 *D 0100 D 0013 0013 L 0000 Table de stockage 14 transferts, 1 seule équation avec la fonction MOV !
Travail sur recettes Exemple
Température du bain contrôlé Travail sur recettes On veut, dans une usine de traitement de surface afficher sur un seul écran du TDI (l’écran N°11) de manière Successive (toutes les 10s) la température des10 bacs de traitement. PRODUCTION EN COURS N° bac contrôlé 09 Bac N° Température du bain contrôlé 125 Température du bain °C num_écran : UINT; (*numéro de l’écran en cours*) num_bac : UINT, (*numéro du bac contrôlé*) val_température : UINT; (*température du bain contrôlé*)
Travail sur recettes P12 index_bac num_bac Recette 1 N° des bacs Sélection du bac et envoi de son N° vers la variable « num_bac » pour affichage sur le TDI. « utilisation de index_bac »
P12 Travail sur recettes Recette 1 index_bac %MW 100 %MW 101 %MW 102 %MW 103 %MW 104 %MW 105 %MW 106 %MW 107 %MW 108 %MW 109 %MW 110 Bac N°1 Bac N°2 Bac N°3 Bac N°4 Bac N°5 Bac N°6 Bac N°7 Bac N°8 Bac N°9 Bac N°10 Recette 1 N° des bacs L’index et les variables de la recette doivent appartenir à la même zone de la mémoire des données !
Travail sur recettes P12 index_température Recette 2 Température des bains val_température Sélection du bac et envoi de la température de son bain vers la variable « val_température » pour affichage sur le TDI. « utilisation de index_température »
P12 Travail sur recettes Recette 1 index_température %MW 200 %MW 201 %MW 202 %MW 203 %MW 204 %MW 205 %MW 206 %MW 207 %MW 208 %MW 209 %MW 210 Bac N°1 Bac N°2 Bac N°3 Bac N°4 Bac N°5 Bac N°6 Bac N°7 Bac N°8 Bac N°9 Bac N°10 Recette 2 Température des bains L’index et les variables de la recette doivent appartenir à la même zone de la mémoire des données !
P14 MOVE MOVE
MOVE MOVE MOVE
MOVE MOVE
Fin