Accueil > Automate Programmable > PROGRAMMATION DES APIs «OMRON CQM1»
Automate ProgrammableAutomatismeautomatisme

PROGRAMMATION DES APIs «OMRON CQM1»

1- Présentation :

Le CQM1 est un Automate Programmable Industriel (API) OMRON compact, programmable avec le logiciel SYSWIN, composé d’une alimentation, d’une unité centrale (UC) et de cartes d’E/S. Toutes ces cartes se connectent sur le côté pour constituer un API unique qui se monte généralement sur un rail DIN.
Toutes les UC CQM1, à l’exception du CQM1-CPU11-E, sont équipées d’un port RS-232C qui peut être connecté directement à un ordinateur, un autre CQM1, ou d’autres appareils en série.

CONFIGURATION OMRON CQM1
Modeles OMRON CQM1

Fonction interface ABS : L’UC CQM1-CPU44-E est équipé de deux interfaces ABS (interfaces de codeurs absolus) qui peuvent recevoir directement des entrées de codeurs absolus rotatifs (1 kHz max.).

2- programmation :

2 .1- Les consoles de programmation compatibles

Deux consoles de programmation peuvent être utilisées avec le CQM1: le CQM1-PRO01-E et le C200H-PRO27-E. Les fonctions fondamentales de ces consoles de programmation sont identiques.

Console OMRON CQM1

2.2- Le logiciel SYSWIN :

SYSWIN OMRON CQM1

Le logiciel « SYSWIN » permet la programmation des automates « OMRON-CQM1 » utilisés dans de nombreux systèmes automatisés. L’adressage (codage de variables d’entrées, de sorties et intermédiaires) et la définition de quelques instructions logiques sont présentés ci-après.

3– Structure de la zone de mémoire

Zones memoire OMRON CQM1

4- Procédure fondamentale

Il existe plusieurs étapes fondamentales impliquées dans l’écriture d’un programme :

  • Dresser la liste de tous les périphériques d’E/S et des points d’E/S et préparer un tableau présentant le bit d’E/S attribué à chaque périphérique d’E/S.
  • Déterminer quels sont les mots disponibles pour les bits de travail et préparer un tableau d’attribution de ces derniers suivant leur utilisation.
  • Dessiner le schéma à contacts.
  • Entrer le programme dans l’unité centrale. L’utilisation de la console de programmation implique la conversion du programme en forme mnémonique.
  • Vérifier le programme pour les erreurs de syntaxe et les corriger.
  • Exécuter le programme pour vérifier les erreurs d’exécution et les corriger.
  • Après installation du système de contrôle complet et lorsque celui–ci est prêt à l’usage, exécutez le programme et effectuez les réglages qui s’imposent..

5- Terminologie de l’instruction

Il existe deux types d’instructions en schéma à contact :

  • Les instructions qui correspondent à des conditions, utilisées sous la forme d’instructions uniquement lors de la conversion en mnémonique.
  • Les instructions utilisées sur la partie de droite du schéma, exécutées en fonction des conditions se trouvant sur les lignes d’instruction.

La plupart des instructions possèdent au moins une opérande associée. Les opérandes fournissent des informations concernant l’exécution d’une instruction. Elles sont parfois entrées en valeurs numériques réelles mais correspondent généralement à des adresses de canaux de zones ou à des bits contenant des données à utiliser.

6- Les bases du schéma à contacts

Un schéma à contacts se compose d’une ligne descendante du côté gauche avec des lignes se branchant vers la droite. La ligne du côté gauche s’appelle la barre omnibus. Les lignes de branchement s’appellent les lignes d’instructions. Le long des lignes d’instructions sont situées les conditions conduisant à d’autres instructions du côté droit. Les combinaisons logiques de ces conditions déterminent quand et comment les instructions à droite sont exécutées. Un schéma à contacts est présenté ci-dessous :

Schema contacts LD OMRON CQM1

6.1- Terminologie fondamentale

Chaque condition dans un schéma à contacts est à ON ou à OFF selon l’état du bit d’opérande lui étant attribué. Une condition normalement ouverte est à ON si le bit d’opérande est à ON ; à OFF si le bit d’opérande est à OFF. Une condition normalement fermée est à ON si le bit d’opérande est à OFF ; à OFF si le bit d’opérande est à ON.

Conditions normalement ouvertes fermees CQM1

6.2- Code mnémonique

Pour programmer un automate CQM1 par la console de programmation, il est nécessaire de convertir le schéma à contacts en mnémonique. Le code mnémonique fournit exactement les mêmes informations que le schéma à contacts mais sous une forme qui peut être directement entrée dans l’API. On peut programmer directement en code mnémonique mais cela n’est pas conseillé dans les cas de programmes complexes.
Quel que soit l’appareil de programmation, le programme est stocké en mémoire sous la forme mnémonique, d’où l’importance de ce code.

Le programme se présente dans la mémoire du programme sous la forme d’adresses. Chaque adresse contient une instruction et toutes les données d’opérande et opérandes nécessaires à cette instruction. Certaines instructions ne nécessitant pas d’opérandes et d’autres jusqu’à 3 opérandes. Les adresses de la mémoire programme commencent à 00000 et vont jusqu’à épuisement de la capacité.
Voici un exemple de code mnémonique ; les instructions utilisées seront décrites plus tard :

Code mnémonique

6.2.1- LOAD et LOAD NOT

La première condition d’un bloc logique dans un schéma à relais correspond à une instruction LOAD ou LOAD NOT. Chacune de ces instructions demande une ligne de code mnémonique.

Instruction LOAD LOAD NOT

6.2.2- AND et AND NOT

Quand plusieurs conditions sont en série sur la même ligne, la première correspondà une instruction LOAD ou LOAD NOT et les autres aux instructions AND ou AND NOT. L’exemple suivant montre trois conditions correspondant de gauche à droite à des instructions LOAD, AND NOT et AND. Chacune de ces instructions demande une ligne de code mnémonique.

Instruction AND AND NOT

6.2.3- OR et OR NOT

Lorsque plusieurs conditions sont présentes sur des lignes d’instruction séparées mais parallèles et se rejoignent, la première correspond à une instruction LOAD ou LOAD NOT ; le reste des conditions correspond à une instruction OR ou OR NOT. L’exemple suivant montre trois conditions correspondant de haut en bas à des instructions LOAD NOT, OR NOT et OR.

Instruction OR OR NOT

6.2.4- Combinaison d’instructions AND et OR

Lorsque des instructions AND et OR sont combinées dans des schémas plus complexes, elles peuvent parfois être considérées individuellement, chaque instruction effectuant une opération logique sur la condition et sur l’état du bit d’opérande. Dans les schémas plus compliqués, il est toutefois nécessaire de considérer les blocs logiques avant de pouvoir déterminer la condition d’exécution de l’instruction finale

Combinaison instructions AND OR

6.2.5- OUTPUT et OUTPUT NOT

La façon la plus simple de sortir les résultats d’une combinaison de conditions est de le faire directement avec OUTPUT et OUTPUT NOT. Ces instructions s’utilisent pour contrôler l’état du bit d’opérande désigné en fonction de la condition d’exécution. Avec l’instruction OUTPUT, le bit d’opérande passe respectivement à ON (ou OFF) aussi longtemps que la condition est à ON (ou OFF).

Instructions OUTPUT OUTPUT NOT

6.2.6- L’instruction END

La dernière instruction d’un programme simple est END. Lorsque l’UC scrute le programme, elle exécute toutes les instructions jusqu’à la première instruction END et retourne au début du programme pour recommencer l’exécution. Bien qu’une instruction END puisse être placée à n’importe quel endroit du programme, ce qui se fait parfois lors de la mise au point, aucune instruction située au–delà de END ne sera exécutée. Le nombre qui suit l’instruction END en code mnémonique est son code de fonction, utilisé lors de l’entrée de la plupart des instructions dans l’API. L’instruction END n’a besoin d’aucune opérande et aucune condition ne peutêtre placée sur la même ligne. En l’absence d’instruction END dans le programme, celui–ci n’est pas exécuté.

Instructions END

6.2.7- Les instructions en bloc logique

Les instructions en bloc logique ne correspondent à aucune condition spécifique sur le schéma à relais mais décrivent des relations existant entre blocs logiques. AND LOAD établit un AND logique entre les conditions d’exécution produites par deux blocs logiques ; OR LOAD établit un OR logique entre les conditions produites par deux blocs logiques.

AND LOAD

Bien que simple en apparence, le schéma ci–dessous nécessite une instruction AND LOAD. Les deux blocs logiques apparaissent en pointillés. Cet exemple montre
qu’une condition d’exécution ON est produite lorsque l’une des conditions situées dans le bloc de gauche est à ON (IR 00000 ou IR 00001 est à ON) et lorsque l’une des conditions du bloc de droite est à ON (IR 00002 est à ON ou IR 00003 est à OFF).

Instructions AND LOAD

OR LOAD

Le schéma suivant nécessite une instruction OR LOAD entre le bloc logique du haut et celui du bas. Une condition d’exécution ON est produite pour l’instruction de droite lorsque IR 00000 est à ON et IR 00001 à OFF ou lorsque IR 00002 et IR 00003 sont à ON. Le fonctionnement et le code mnémonique de OR LOAD sont exactement identiques à ceux de AND LOAD, à ceci près que la condition d’exécution en cours est reliée par OR avec la dernière condition non utilisée.

Instructions OR LOAD

Combinaison de AND LOAD et OR LOAD

Le bloc b ci–dessous ne peut être codé sans qu’il soit séparé en deux blocs combinés par OR LOAD. Dans cet exemple, les trois blocs ont été codés en premier et OR LOAD a ensuite été utilisée pour combiner les deux derniers blocs, puis AND LOAD pour combiner la condition d’exécution produite par OR LOAD avec la condition d’exécution du bloc a.

Combinaison AND LOAD OR LOAD

Schémas compliqués

Lorsque l’on détermine les instructions logiques nécessaires au codage d’un schéma, il faut parfois diviser ce dernier en grands blocs puis diviser à leur tour ces blocs pour arriver à des blocs logiques pouvant être codés sans former d’instructions en blocs logiques. Ces blocs sont ensuite codés en combinant les petit blocs d’abord puis les blocs plus importants. AND LOAD ou OR LOAD est utilisée pour la combinaison des blocs : elles combinent toujours les deux dernières conditions d’exécution, qu’elles résultent d’une seule condition, de blocs logiques ou d’instructions à blocs logiques antérieures.
Dans les schémas compliqués, les blocs sont codés en partant de la partie supérieure gauche puis en descendant. Quand on a le choix, on code donc OR LOAD avant AND LOAD.

Le schéma suivant doit être séparé en deux blocs et chaque bloc en deux autres blocs avant le codage. Comme on le voit, les blocs a et b nécessitent une instruction AND LOAD. Avant AND LOAD, OR LOAD doit cependantêtre utilisée pour combiner les blocs du haut et du bas des deux côtés c’est- à-dire pour combiner a1 et a2 ainsi que b1 et b2.

Schemas LD compliques

6.2.8- Codage des instructions multiples de droite

Dans le cas où plusieurs instructions de droite sont exécutées avec la même condition d’exécution, elles sont codées successivement à la suite de la dernière
condition de la ligne. Dans l’exemple suivant, la dernière ligne d’instruction contient une instruction supplémentaire correpondant à un AND avec IR 00004.

Instructions multiples de droite

6.2.9- Lignes secondaires

Lorsqu’une ligne d’instructions se sépare en deux ou plusieurs autres lignes secondaires, il est parfois nécessaire d’utiliser des branchements ou des bits TR pour maintenir la condition d’exécution ayant existé au niveau de l’embranchement.

Lignes secondaires

Dans cet exemple, TR 0 et TR 1 sont utilisés pour stocker les conditions d’exécution au point d’embranchement. Après l’exécution de l’instruction 1, la condition stockée dans TR 1 est chargée pour effectuer un AND avec l’état de IR 00003. La condition d’exécution stockée dans TR 0 est chargée deux fois, la première pour effectuer un AND avec l’état de IR 00004 et la deuxième avec l’état inversé de IR 00005.

6.3- Contrôle de l’état des bits

On peut utiliser 7 instructions de base pour contrôler individuellement l’état des bits : OUTPUT, OUTPUT NOT, SET, RESET, DIFFERENTIATE UP, DIFFERENTIATE
DOWN et KEEP. Toutes ces instructions apparaissent à la fin d’une ligne d’instructions et ont une adresse de bit comme opérande.

6.3.1- SET et RESET

Les instructions SET et RESET sont très similaires aux instructions OUTPUT et OUTPUT NOT, à ceci près qu’elles changent l’état de leurs bits d’opérande pour les conditions d’exécution à ON. Aucune de ces deux instructions n’affecte l’état de son bit d’opérande lorsque la condition d’exécution est à OFF.

  • SET place à ON son bit d’opérande lorsque la condition d’exécution passe à ON, mais à la différence de l’instruction OUTPUT, SET ne place pas à OFF le bit d’opérande lorsque la condition d’exécution passe à OFF.
  • RESET placeà OFF le bit d’opérande lorsque la condition d’exécution est à OFF, mais contrairement à OUTPUT NOT, RESET ne passe pas à ON le bit d’opérande lorsque la condition d’exécution passe à OFF.
Instructions SET RESET

6.3.2- DIFFERENTIATE UP et DIFFERENTIATE DOWN

Les instructions DIFFERENTIATE UP (front montant) et DIFFERENTIATE DOWN (front descendant) s’utilisent pour placer le bit d’opérande à ON pour un tour de scrutation à la fois.

  • DIFFERENTIATE UP place à ON le bit d’opérande pour un tour de scrutation après le passage de OFF à ON de sa condition d’exécution ;
  • DIFFERENTIATE DOWN place à ON le bit d’opérande pour un tour de scrutation après le passage de ON à OFF de sa condition d’exécution.

Ces deux instructions ne nécessitent qu’une ligne d’instruction en code mnémonique.

Instructions SET RESET

6.3.3- KEEP

KEEP s’utilise pour maintenir l’état du bit d’opérande résultant de deux conditions d’exécution. Pour ce faire, KEEP est connectée à deux lignes d’instruction. Lorsque la condition d’exécution de la fin de la première ligne est à ON (verrouillage), le bit d’opérande de KEEP est placé à ON (déverrouillage).
Lorsque la condition d’exécution de la fin de la deuxième ligne està ON, le bit d’opérande de KEEP est placé à OFF(verrouillage). Le bit d’opérande de KEEP maintient sont état ON ou OFF même s’il est situé dans un branchement. Le bit de déverrouillage est prioritaire sur le bit de verrouillage.

Instructions KEEP

6.4- Instructions de temporisation/comptage

TIM et TIMH(15) sont des instructions de temporisation de retard au travail en décrémentation nécessitant un numéro de TC et une valeur sélectionnée (SV).
STIM(––) s’utilise pour contrôler les tempo. cycliques qui servent à activer les sous–programmes d’interruption.
CNT est une instruction de compteur en décrémentation et CNTR est une instruction de compteur réversible. Toutes les deux nécessitent un numéro de TC et une SV ; elles sont connectées aux lignes d’instructions multiples et servent de signal d’entrée et de RAZ. CTBL(––), INT(––) et PRV(––) sont utilisées pour gérer le compteur rapide. INT(––) est également utilisée pour arrêter la sortie par impulsion.
Tout numéro de TC ne peut être défini deux fois, c’est–à–dire qu’une fois qu’il aété utilisé comme zone d’opérande dans une instruction de tempo. ou compteur,
il ne peut être ré–utilisé. Une fois définis, les numéros de TC peuvent être utilisés autant de fois qu’on le souhaite comme opérande dans les instructions autres
que tempo. ou compteur.
Les numéros de TC vont de 000 à 511. Aucun préfixe n’est nécessaire lorsque l’on utilise un numéro de TC comme donnée d’opérande dans une instruction de
tempo. ou compteur. Une fois défini comme temporisation, un numéro de TC peut porter le préfixe TIM pour être utilisé comme opérande dans certaines instructions. Le préfixe TIM s’utilise sans tenir compte de l’instruction de temporisation utilisée pour définir la temporisation. Une fois défini comme compteur, un numéro de TC peut porter le préfixe CNT pour être utilisé comme opérande dans certaines instructions. CNT s’utilise également sans tenir compte de l’instruction compteur utilisée pour définir le compteur.

6.4.1- TIMER – TIM

TIMER TIM

SV est située entre 000,0 et 999,9. La virgule décimale n’est pas entrée. Chaque numéro de TC peut être utilisé comme donnée d’opérande dans une seule instruction TIMER ou COUNTER. Une temporisation s’active lorsque sa condition d’exécution passe à ON et est remise à zéro (à la SV) lorsque la condition passe à OFF. Une fois activée, TIM mesure par unités de 0,1 seconde à partir de la SV.

6.4.2- COUNTER – CNT

COUNTER CNT

CNT s’utilise pour décompter à partir de la SV lorsque la condition de l’impulsion de comptage, CP, passe de OFF à ON, c’est–à–dire que la valeur en cours (PV) est décrémentée de un à chaque fois que CNT est exécutée avec une condition à ON pour la CP et que la condition de la dernière exécution était à OFF. Si la condition d’exécution n’a pas changé ou est passée de ON à OFF, la PV de CNT reste inchangée. Le drapeau de fin d’un compteur passe à ON lorsque la PV atteint zéro et y reste jusqu’à remise à zéro du compteur.
CNT est remis à zéro à l’aide d’une entrée de RAZ, R. Lorsque R passe de OFFà ON, la PV est remise à la valeur de la SV. La PV n’est pas décrémentée lorsque R est à ON. Le décomptage à partir de SV recommence lorsque R passe à OFF. La CP de CNT n’est pas remise à zéro dans les branchements ni en cas de coupure
de courant.

Voici une illustration de ce qui précède sous la forme d’un schéma et de codes mnémoniques correspondants :

Programme complet

7- Diagnostic rapide de l’API

On peut utilisez les diagrammes suivants pour résoudre les éventuels problèmes de fonctionnement.

Diagnostic OMRON CQM1

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Résoudre : *
1 + 11 =