▼
Scroll to page 2
of
564
Cat. No. W353-E1-1 SYSMAC CPM1/CPM1A/CPM2A/CPM2C/SRM1(-V2) Automate programmable MANUEL DE PROGRAMMATION AUTOMATES PROGRAMMABLES CPM1/CPM1A/CPM2A/CPM2C/SRM1(-V2) Manuel de Programmation Réalisé en Mai 1999 Avis : Les produits OMRON sont conçus pour être utilisés par un opérateur qualifié, en respectant des procédures appropriées et uniquement dans le cadre de ce qui est précisé dans ce document. Dans ce manuel, les conventions suivantes permettent de spécifier et de classer les conseils d’utilisation. Toujours faire très attention aux informations qui sont données. Le non--respect des conseils d’utilisation stipulés peut blesser des personnes ou endommager des biens. ! DANGER Indique une situation dangereuse imminente qui, si elle n’est pas évitée, peut entraîner des blessures graves ou mortelles. ! AVERTISSEMENT ! Attention Indique une situation potentiellement dangereuse qui, si elle n’est pas évitée, peut provoquer des blessures graves ou mortelles. Indique une situation potentiellement dangereuse qui, si elle n’est pas évitée, peut provoquer de légères ou moyennes blessures ou endommager des biens. Références des produits OMRON Dans ce manuel, tous les noms de produits OMRON sont écrits en majuscules. Le mot “ unité ” désigne un produit OMRON, que la désignation de ce produit apparaisse ou nom dans le texte. L’abréviation “Ch,” qui figure sur certains affichages et sur certains produits OMRON signifie souvent “ word ” (“ mot ”) et, dans la documentation, il est souvent remplacé par l’abréviation “Wd”. L’abréviation “API” signifie Automate programmable industriel et n’est jamais utilisée comme abréviation d’un autre système, composant ou élément. Aides visuelles Les intitulés suivants apparaissent dans la colonne de gauche du manuel, pour vous aider à trouver différents types d’informations. Rem. Désigne des informations particulièrement intéressantes pour utiliser le produit de façon pratique et efficace. 1, 2, 3... 1. Indique une ou des listes de différents types, par exemple procédures, checklists, etc ! OMRON, 1999 Tous droits réservés. Aucune partie de cette publication ne peut être, stockée dans un système à mémoire ou transmise, sous aucune forme et par aucun moyen mécanique, électronique, photocopie, enregistrement sans l’accord écrit préalable d’OMRON. L’utilisation des informations contenues ci--après ne peut engendrer aucune responsabilité. De plus, la mesure où OMRON travaille constamment à l’amélioration de ses produits de haute qualité, les informations contenues dans ce manuel sont soumises à changement sans avis préalable. Toutes les précautions ont été prises dans l’élaboration de ce manuel. Toutefois, OMRON ne peut être tenu responsable des erreurs ou omissions. Les dommages résultant de l’utilisation des informations contenues dans cette publication ne peuvent engendrer aucune responsabilité. v TABLE DES MATIERES CONSEILS D’UTILISATION . . . . . . . . . . . . . . . . . . . . . 1 Personnel concerné . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Conseils généraux d’utilisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Conseils de sécurité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Conseils relatifs à l’environnement d’exploitation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Conseils d’utilisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CHAPITRE 1 Configuration de l’API . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-1 1-2 Le Setup de l’API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Fonctionnement de l’API de base et traitement des E/S . . . . . . . . . . . . . . . . . . . . . . . . . . CHAPITRE 2 Caractéristiques spécifiques . . . . . . . . . . . . . . . . . . . . . . . 2-1 2-2 2-3 2-4 2-5 2-6 2-7 2-8 2-9 2-10 2-11 2-12 2-13 2-14 2-15 2-16 2-17 Fonctions d’interruption des CPM2A/CPM2C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Compteurs à grande vitesse du CPM2A/CPM2C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Fonctions d’interruption du CPM1/CPM1A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Fonctions d’interruption du SRM1(-V2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Fonctions de sortie d’impulsions du CPM2A/CPM2C . . . . . . . . . . . . . . . . . . . . . . . . . . . Fonctions de la sortie d’impulsions du CPM1A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Commande d’impulsions synchronisée (CPM2A/CPM2C uniquement) . . . . . . . . . . . . . Fonctions analogiques d’E/S (CPM1/CPM1A/CPM2A uniquement) . . . . . . . . . . . . . . . . Fonctions esclave d’E/S du CompoBus/S (CPM1A/CPM2A uniquement) . . . . . . . . . . . Fonctions maître d’E/S du CompoBus/S (SRM1(-V2) uniquement) . . . . . . . . . . . . . . . . Commandes analogiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Entrées de capture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Fonction de la macro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Calcul avec les données binaires signées . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Détections de fronts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Instructions d’expansion (CPM2A/CPM2C/SRM1(-V2) uniquement) . . . . . . . . . . . . . . . Utilisation de la fonction d’horloge des CPM2A/CPM2C . . . . . . . . . . . . . . . . . . . . . . . . CHAPITRE 3 Utilisation des modules d’extension . . . . . . . . . . . . . . . . . 3-1 3-2 Modules d’E/S analogiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Unité de liaison d’E/S CompoBus/S . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CHAPITRE 4 Fonctions de communication . . . . . . . . . . . . . . . . . . . . . . . 4-1 4-2 4-3 4-4 4-5 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Fonctions de communication du CPM1/CPM1A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Fonctions de communication du CPM2A/CPM2C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Fonctions de communication SRM1(-V2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Commandes de communication à l’ordinateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CHAPITRE 5 Zones mémoire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-1 5-2 5-3 5-4 Fonctions des zones mémoire des CPM1/CPM1A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Fonctions des zones mémoire des CPM2A/CPM2C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Fonctions de la zone mémoire du SRM1(-V2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Mémoire flash du SRM1(-V2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii xiv xiv xiv xv xvi 1 2 19 27 28 43 76 96 99 134 137 149 149 149 151 153 158 159 161 162 164 167 168 177 183 184 185 189 221 236 261 262 266 272 275 vii TABLE DES MATIERES CHAPITRE 6 Programmation en schéma à contacts . . . . . . . . . . . . . . . 6-1 6-2 6-3 6-4 6-5 6-6 6-7 CHAPITRE 7 Ensemble d’instructions . . . . . . . . . . . . . . . . . . . . . . . . . . 7-1 7-2 7-3 7-4 7-5 7-6 7-7 7-8 7-9 7-10 7-11 7-12 7-13 7-14 7-15 7-16 7-17 7-18 7-19 7-20 7-21 7-22 7-23 7-24 7-25 7-26 7-27 7-28 viii 278 278 279 299 301 303 305 307 Notation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Format d’instruction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zones de données, valeurs utilisées comme bits de définition et drapeaux . . . . . . . . . . . Instructions sur changement d’état . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Codages des instructions à droite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Tableaux d’instruction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Programmation en schémas à contacts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Instructions de commande de bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . NO OPERATION -- NOP(00) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . END -- END(01) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . INTERLOCK et INTERLOCK CLEAR -- IL(02) et ILC(03) . . . . . . . . . . . . . . . . . . . . . . JUMP et JUMP END -- JMP(04) et JME(05) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Instructions relatives aux erreurs d’utilisation : FAILURE ALARM AND RESET -- FAL(06) et SEVERE FAILURE ALARM -- FALS(07) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Instructions de définition d’étapes : STEP DEFINE et STEP START--STEP(08)/SNXT(09) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Instructions de temporisation et de comptage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Instructions de décalage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Instructions de transfert de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Instructions de comparaison . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Instructions de conversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Instructions de calcul sur les valeurs BCD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Instructions de calcul binaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Instructions mathématiques spéciales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Instructions logiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Instructions d’incrémentation/décrémentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Instructions de sous-programmes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Instructions spéciales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Instructions de commande d’interruptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Instructions de communication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CHAPITRE 8 Opérations exécutées par les API et temps de traitement 8-1 8-2 8-3 277 Procédure fondamentale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Terminologie des instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Les bases du schéma à contacts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Commande de l’état des bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Bits de travail (Relais internes) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Conseils d’utilisation à la programmation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Exécution des programmes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Temps de cycle et temps de réponse des E/S des CPM1/CPM1A . . . . . . . . . . . . . . . . . . Temps de cycle des CPM2A/CPM2C et temps de réponse d’E/S . . . . . . . . . . . . . . . . . . . Temps de cycle et temps de réponse des E/S du SRM1(-V2) . . . . . . . . . . . . . . . . . . . . . . 310 310 310 312 313 316 323 324 328 328 328 330 332 333 335 352 360 370 377 401 411 415 421 424 426 429 452 457 463 464 476 493 TABLE DES MATIERES CHAPITRE 9 Recherche de pannes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-1 9-2 9-3 9-4 9-5 9-6 9-7 9-8 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Erreurs de fonctionnement de la console de programmation . . . . . . . . . . . . . . . . . . . . . . Erreurs de programmation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Erreurs définies par l’utilisateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Erreurs de fonctionnement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Journal d’erreurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Erreurs de liaison à l’ordinateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Organigrammes de dépannage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Historique des révisions . . . . . . . . . . . . . . . . . . . . . . . . . . . 505 506 506 507 508 509 511 513 513 555 ix A propos de ce manuel : Veuillez lire ce manuel attentivement et s’assurer d’avoir bien compris les informations qu’il apporte avant de tenter d’installer et d’utiliser l’API. La Chapitre 1 explique le Setup de l’API. Le Setup de l’API est utilisé pour définir les paramètres de fonctionnement. La Chapitre 2 explique les caractéristiques spécifiques à l’API. La Chapitre 3 décrit comment utiliser l’Unité d’E/S analogique du CPM1A-MAD01 et l’Unité de liaison d’E/S CompoBus/S du CPM1A-SRT21. La Chapitre 4 décrit comment utiliser les fonctions de communications fournies par les API. La Chapitre 5 décrit la structure des zones mémoire de l’API et explique comment les utiliser. Les précisions sur certaines zones sont fournies dans l’Annexe C en fin de ce manuel. La Chapitre 6 explique les étapes et concepts de base impliqués dans l’écriture du programme de diagrame d’échelle de base. Elle débute par la présentation des instructions utilisées pour construire la structure de base du diagramme d’échelle et pour contrôler son exécution. La Chapitre 7 explique individuellement les instructions et fournit le symbole en schéma à contacts, les zones de données et les drapeaux utilisés pour chacun. La Chapitre 8 explique le traitement de l’API interne, ainsi que le temps nécessaire pour le traitement et l’exécution du programme. La Chapitre 9 décrit comment diagnostiquer et corriger les défauts matériels et les erreurs du logiciel pouvant survenir au cours du fonctionnement. Les recherches de références sont accessibles depuis certaines Annexes. Se reporter à la table des matières traitant des annexes. ! AVERTISSEMENT : Omettre de lire et comprendre les informations contenues dans ce manuel peut entraîner la mort, des blessures corporelles, l’endommagement du produit ou des pannes. Lire chaque chapitre, ainsi que les chapitres auxquels il est fait référence dans leur totalité et s’assurer d’une bonne compréhension des informations qui y sont contenues avant la mise en oeuvre des procédures ou fonctionnalités décrites. xi CONSEILS D’UTILISATION L’objet de cette partie est de présenter les conseils d’utilisation généraux de l’automate programmable (API) et des dispositifs s’y rattachant. Les informations contenues dans cette partie sont très importantes pour la sécurité et la fiabilité d’exploitation de l’automate programmable. Ce chapitre doit être lu et les informations qu’il contient comprises avant toute tentative de mise en oeuvre ou d’utilisation d’un système API. 1 Personnels concernés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Conseils généraux d’utilisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Conseils de sécurité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Conseils relatifs à l’environnement d’exploitation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Conseils d’utilisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiv xiv xiv xv xvi xiii 3 Conseils de sécurité 1 Personnel concerné Ce manuel est destiné aux personnels mentionnés ci--après, qui doivent posséder des connaissances suffisantes dans le domaine des systèmes électriques (niveau ingénieur électricité ou équivalent). ! Personnels responsables de l’installation des systèmes automatisés. ! Personnels responsables de la conception de systèmes automatisés. ! Personnels responsables de la gestion de systèmes automatisés et des locaux. 2 Conseils généraux d’utilisation Consulter votre correspondant OMRON avant toute utilisation du produit dans des conditions non décrites dans ce manuel ou avant de l’exploiter dans le cadre de systèmes de contrôle nucléaire, de systèmes ferroviaires, de systèmes aéronautiques, de véhicules, de systèmes de combustion, d’équipements médicaux, de machines d’attraction ou d’équipements de sécurité ou associé à tout autre système, machine ou équipement susceptible de mettre des vies ou la propriété en péril en cas de mauvaise utilisation. S’assurer que les caractéristiques et capacités du produit sont bien adaptées aux systèmes, machines et équipements et que ces systèmes, machines et équipements, sont assortis de mécanismes de sécurité doubles. Les informations contenues dans ce manuel sont destinées à la programmation et à l’utilisation de l’unité. Bien lire ce manuel avant toute utilisation du logiciel et le conserver à portée de main pour en permettre l’utilisation en cours d’exploitation. ! DANGER Il est extrêmement important d’utiliser l’API et toutes les unités API pour ce à quoi ils sont destinés et ceci dans les conditions spécifiées, particulièrement dans le cas d’applications pouvant provoquer la mort. Consulter votre correspondant OMRON avant toute utilisation du système API pour des applications mentionnées ci--dessus. 3 Conseils de sécurité ! DANGER Ne jamais tenter de démonter une Unité sous tension sous peine de s’exposer à un choc électrique sérieux ou à une électrocution. ! DANGER Eviter tout contact avec les borniers sous tension sous peine de s’exposer à un choc électrique sérieux ou à une électrocution. ! DANGER Prévoir des mesures de sécurité pour les circuits extérieurs (c’est--à--dire en dehors de l’automate programmable), y compris dans les articles suivants, afin d’assurer la sécurité du système si une anomalie intervient à la suite d’un dysfonctionnement de l’API ou d’un autre facteur externe affectant le fonctionnement de l’automate. Le non--respect de cet avertissement peut se traduire par des accidents graves. ! Des circuits d’arrêt d’urgence, des circuits à verrouillage réciproque, des limiteurs et des mesures de sécurité similaires doivent être mis en place sur tous les circuits de pilotage externes. xiv Conseils relatifs à l’environnement d’exploitation 4 ! L’API met toutes ses sorties à l’état OFF lorsque sa fonction de diagnostic intégrée détecte une erreur ou bien à l’exécution d’une instruction d’alarme de défaillance grave (FALS). Pour se protéger contre ces erreurs, des mesures de sécurité externes doivent être prises pour assurer la sécurité du système. ! Les sorties de l’automate peuvent rester sur ON ou OFF du fait de l’encrassement ou du brûlage des relais de sortie ou de la destruction des transistors de sortie. Pour se prémunir contre ce type de problèmes, des mesures de sécurité externes doivent être prises pour assurer la sécurité du système ! Lorsque la sortie 24 V continus (alimentation électrique de service de l’automate) est surchargée ou court--circuitée, il peut y avoir une baisse de tension et, par suite, les sorties passent à l’état OFF. Pour se prémunir contre ce type de problèmes, des mesures de sécurité externes doivent être prises pour assurer la sécurité du système. ! DANGER Lors de la manipulation de la pile de sauvegarde de la mémoire, ne pas la laisser tomber, ni la démonter, ni la déformer, ni la recharger, ni la chauffer à une température supérieure à 100_C, ni la jeter dans le feu. La pile risque d’exploser, de prendre feu ou de fuir si elle est malmenée de quelque manière que ce soit. ! Attention Pour exécuter une édition en ligne, s’assurer d’abord que cette opération n’aura pas d’effets néfastes par suite de l’allongement de la durée des cycles. Sinon des modifications inattendues ou inappropriées dans le fonctionnement du système de commande risquent de survenir. ! Attention Lors du transfert des programmes à d’autres stations ou lors de modification de la mémoire des E/S, s’assurer de la sécurité de la station de destination avant de faire le transfert. Autrement, cela risquerait de blesser. ! Attention Serrer les vis du bornier de l’unité d’alimentation en courant alternatif en respectant le couple spécifié dans le manuel d’exploitation. Des vis mal serrées risque de mettre le feu ou de provoquer un dysfonctionnement. 4 Conseils relatifs à l’environnement d’exploitation ! Attention Ne pas exploiter le système de commande dans les conditions suivantes : ! Endroits recevant directement la lumière du soleil. ! Endroits présentant des températures ou une humidité à l’extérieur de la plage figurant dans les spécifications. ! Endroits présentant de la condensation provoquée par de fortes variations de la température. ! Endroits soumis à des gaz corrosifs ou inflammables. ! Endroits poussiéreux (en particulier limaille de fer) ou contenant des sels. ! Endroits exposés à l’eau, à l’huile ou à des produits chimiques. ! Endroits soumis à des chocs ou à des vibrations. ! Attention Prendre des contres mesures de protection ad hoc et suffisantes lors de l’installation des systèmes dans les endroits suivants : ! Endroits présentant de l’électricité statique ou d’autres formes de bruits. xv 5 Conseils d’utilisation ! Endroits soumis à des champs électromagnétiques puissants. ! Endroits susceptibles d’être soumis à de la radioactivité. ! Endroits proches d’alimentations électriques. ! Attention L’environnement d’exploitation du Système API peut avoir des conséquences importantes sur la durée de vie et la fiabilité du système. Des environnements d’exploitation inadéquats peuvent provoquer des dysfonctionnements, pannes et autres problèmes imprévisibles au niveau du Système API. S’assurer que l’environnement d’exploitation répond aux conditions spécifiées lors de l’installation et continue à y répondre pendant toute la durée de vie du système. 5 Conseils d’utilisation Respecter les conseils d’utilisation suivants lors de l’utilisation du Système API. ! Attention Le non respect des conseils d’utilisation suivants peut amener à provoquer des erreurs de fonctionnement de l’API ou du système, ou encore à endommager l’API ou ses unités. Toujours tenir compte de ces recommandations. Conception des circuits ou réalisation de programmes d’échelle ! Des mesures “Fail–safe” doivent être prises par le client pour assurer la sécurité en présence de signaux manquants, incorrects ou anormaux provoqués par une rupture de lignes de transmission de signaux, par des coupures courtes du courant ou d’autres causes. ! Réaliser un circuit de commande et de contrôle de façon que l’alimentation des circuits d’E/S ne puisse pas passer sur ON avant l’alimentation de l’unité. Si l’alimentation des circuits d’E/S passe sur ON avant l’alimentation de l’unité, le fonctionnement normaI risque d’être interrompu provisoirement. ! Si le mode opératoire RUN ou MONITOR passe en mode PROGRAM, avec le bit de maintien IOM sur ON, la sortie va rester dans l’état le plus récent. Dans ce cas, s’assurer que la charge externe ne dépasse pas la valeur figurant dans les spécifications. Si l’exploitation est arrêtée à la suite d’une erreur de fonctionnement générés par des instructions FALS, les valeurs se trouvant dans la mémoire interne de l’UC seront conservées, mais les sorties passent toutes à l’état OFF. ! Pour les modèles avec un seul super condensateur, les contenus de la zone valide READ/WRITE de la zone DM, de la zone HR, de la zone AR et de la zone de données CNT risquent d’être endommagés si l’alimentation est désactivée pendant longtemps. Pour éviter cela, appliquer un programme d’échelle qui vérifiera l’AR 1314 s’assurant que le système est bien opérationnel. ! La durée de vie des relais est très variable en fonction des conditions de commutations. S’assurer de tester les conditions d’exploitation à l’aide des unités proprement dites et d’utiliser le produit en respectant la quantité spécifique des commutations définie afin de ne provoquer aucune altération des performances. Au risque, lors d’emploi de ce produit avec des performance altérées, d’obtenir une isolation défectueuse entre les circuits ou de détériorer les relais. Installation ! Installer les unités correctement comme indiqué dans le(s) manuel(s) concerné(s). ! Ne pas installer l’API ou ses unités là où elles risquent d’être agressées par trop de parasites. Sinon cela risquerait de provoquer un dysfonctionnement. xvi 5 Conseils d’utilisation ! Installer les unités correctement afin qu’elles ne tombent pas. ! S’assurer que toutes les vis de montage, celles des bornes et des connecteurs de câbles soient serrées au couple spécifié dans les manuels applicables. Un serrage avec un couple incorrect peut provoquer un dysfonctionnement. ! Installer le capot du connecteur de l’unité d’E/S d’expansion sur la dernière unité d’E/S d’expansion pour la protéger de la poussière ou de substances étrangères. Sinon cela risquerait de provoquer un dysfonctionnement. ! Vérifier que les borniers, les câbles d’extension et les autres pièces équipées de dispositifs de verrouillage soient bien fixés. Une mauvaise fixation risquerait de provoquer des dysfonctionnements. Câblage et connexion ! S’assurer d’utiliser des câbles comme le(s) manuel(s) concerné(s) l’indique(nt). ! Installer des disjoncteurs externes et recourir à d’autres mesures de sécurité contre d’éventuels courts--circuits dans le câblage externe. Des mesures de sécurité insuffisantes contre les courts--circuits risquent de détériorer les circuits. ! Lors du câblage des liaisons de signaux, ne jamais les placer dans les mêmes gaines que les lignes à haute tension ou que les lignes d’alimentation. Sinon cela risquerait de provoquer des dysfonctionnements. ! Vérifier que les borniers et les connecteurs soient connectés dans la direction spécifiée et que les polarités soient bien conformes. Toute anomalie peut provoquer un dysfonctionnement. ! Lors du câblage, laisser les étiquettes attachées aux unités CPM1 ou CPM2A pour éviter que des morceaux de fils coupés pénètrent dans l’unité. ! Attacher les étiquettes fournies avec les unités CPM1A ou CPM2C, ou encore tous autres types de protection, lors du câblage afin d’empêcher la poussière ou les morceaux de fils coupés d’entrer dans les unités. ! Lorsque le câblage est terminé, enlever les étiquettes pour assurer une bonne dissipation thermique. Laisser des étiquettes risquerait de provoquer un dysfonctionnement. ! S’assurer que toutes des vis de montage, des bornes et des connecteurs de câbles soient serrées au couple spécifié dans les manuels concernés. un serrage à un couple incorrect risquerait de provoquer un dysfonctionnement. ! Utiliser les connecteurs et les matériaux de câblage indiqués dans les manuels concernés. ! S’assurer de câbler selon les manuels concernés. Un mauvais câblage risquerait de détériorer les circuits. ! Toujours se connecter à la terre avec une résistance d’au plus 100 " lors de l’installation des unités. Connexion des E/S et démarrage du système ! Déconnecter la borne terre lors de tests de rigidité. ! Toujours utiliser les tensions d’alimentation indiquées dans le(s) manuel(s) d’exploitation. ! Effectuer les mesures nécessaires pour s’assurer que l’alimentation spécifiée à la tension nominale et à la fréquence voulue est bien fournie. Attention tout particulièrement là où l’alimentation est instable. ! Ne pas appliquer des tensions ou connecter des charges aux bornes de sortie au delà de la tension d’entrée nominale. Des tensions excessives risqueraient de détériorer les circuits. xvii 5 Conseils d’utilisation ! Ne pas appliquer des tensions ou connecter des charges aux bornes de sortie au delà du maximum de la capacité des commutateurs. Des tensions ou des charges excessives risqueraient de détériorer les circuits. ! Effectuer un double contrôle de tous les câblages et réglages de commutateurs avant de mettre l’alimentation sur ON. ! Vérifier l’exécution du programme utilisateur avant de le faire tourner sur l’unité. La non vérification du programme peut être à l’origine d’un fonctionnement imprévisible. Conseils d’utilisation lors de manipulation ! Lors de l’utilisation, de la sauvegarde ou du transport du produit, rester conforme aux indications listées dans le(s) manuel(s) concerné(s). ! Ne pas tenter de démonter, réparer ou changer les unités. ! Un dysfonctionnement ou un choc électrique risque de survenir si l’alimentation de l’API n’est pas sur OFF avant d’effectuer une des opérations présentée ci--dessous : ! Montage des unités. ! Connexion ou déconnexion des unités d’E/S d’expansion. ! Connexion ou câblage des câbles. ! Connexion ou déconnexion des connecteurs. ! Réglage des commutateurs DIP. ! Changement de pile. ! S’assurer que le système ne sera pas perturbé avant de lancer une des opérations de la liste ci--dessous. Le non respect de cette règle peut être à l’origine d’un fonctionnement imprévisible. ! Changer le mode opératoire de l’API. ! Réglage/RAZ forcé d’un bit en mémoire. ! Changer la valeur actuelle d’un mot quelconque ou de n’importe quelle valeur configurée en mémoire. ! Avant de toucher à l’unité, penser en premier à tenir un objet métallique relié à la terre pour le décharger de toute électricité statique. Ne pas le faire risquerait d’entraîner un dysfonctionnement ou des dégâts. ! Ne pas toucher le câble de connexion de l’unité d’E/S d’expansion tant que l’alimentation est toujours active afin d’éviter tout dysfonctionnement dû à l’électricité statique. ! Ne pas exercer de tractions et ne pas plier les câbles au--delà des limites qu’ils peuvent naturellement supporter. Sinon les câbles tirés ou pliés risquent de rompre. ! Ne poser aucun objet sur les câbles. Sinon les câbles risquent de rompre. ! Lors de l’installation des unités ou autres produits, le faire conformément aux réglementations et lois en vigueur dans le pays. Maintenance ! Lorsque des pièces sont remplacées, vérifier que les caractéristiques nominales des pièces neuves sont correctes. Une différence dans ces caractéristiques peut provoquer un dysfonctionnement ou la brûlure des circuits. ! Lorsque l’unité centrale est remplacée, ne remettre en route qu’après avoir transféré dans la nouvelle unité centrale les contenus des zones DM et HR nécessaires pour l’exploitation. Sinon un fonctionnement inattendu risque de se produire. xviii Conseils d’utilisation 5 Transport et sauvegarde ! Lors du transport des unités, utiliser des boîtes d’emballage spéciales. Ne pas exposer les unités ou tous autres produits à des vibrations excessives ou à des chocs durant le transport et surtout ne pas les faire tomber. ! Sauvegarder les unités en respectant les plages de températures et d’humidité suivantes : Température de sauvegarde : -25 à 65#C Humidité de sauvegarde : 25% à 85% (sans glace ni condensation) xix CHAPITRE 1 Configuration de l’API Ce chapitre décrit les caractéristiques propres au Setup de l’API dans les API CPM1, CPM1A, CPM2A, CPM2C et SRM1(-V2). Le Setup de l’API permet de commander les paramètres de fonctionnement. Pour modifier le Setup de l’API, se reporter au Manuel de programmation de l’API au chapitre concernant les procédures de la Console de Programmation. Si les API d’OMRON ou le programme en schéma à contacts ne vous sont pas familiers, lire la Configuration API 1--1pour obtenir une vue générale des paramètres de fonctionnement disponibles pour les CPM1/CPM1A, CPM2A/CPM2C et SRM1(-V2). De plus, les Chapitre 5 -- Zones mémoire, Chapitre 6 -- Programmation en schéma à contacts et les instructions s’y rapportant se trouvant au Chapitre 7 -- Configuration d’instructions qui précède ce chapitre 1 peuvent vous êtres utiles. 1-1 1-2 Le Setup de l’API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-1-1 Modifier le Setup de l’API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-1-2 Configurations du Setup de l’API des CPM1/CPM1A . . . . . . . . . . . . . . . . . . . . 1-1-3 Configuration du Setup de l’API des CPM2A/CPM2C . . . . . . . . . . . . . . . . . . . 1-1-4 Configuration du Setup de l’API du SRM1(-V2) . . . . . . . . . . . . . . . . . . . . . . . . Fonctionnement de l’API de base et traitement des E/S . . . . . . . . . . . . . . . . . . . . . . . . . . 1-2-1 Mode démarrer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-2-2 Etat du bit de maintien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-2-3 Mémoire du programme protégé en écriture . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-2-4 Temps d’utilisation du port RS-232C (CPM2A/CPM2C/SRM1(-V2) uniquement) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-2-5 Temps d’utilisation du port périphérique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-2-6 Temps de surveillance de cycle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-2-7 Temps de cycle minimal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-2-8 Constantes de temps d’entrée (filtrage) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-2-9 Configurations du journal d’erreurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2 3 9 15 19 19 20 20 21 21 22 23 23 24 1 Chapitre Le Setup de l’API 1-1 1-1 Le Setup de l’API Le Setup de l’API se compose de différents paramètres commandant le fonctionnement de l’API. Il est possible de personnaliser le Setup de l’API afin d’utiliser au mieux les capacités de l’API selon les conditions d’exploitation, telles que l’utilisation des fonctions d’interruption du traitement et des fonctions de communications. Lors de la livraison du produit, les conditions générales de fonctionnement sont réglées par défaut afin que l’API soit opérationnel sans avoir à modifier les configurations. Cependant il vous est fortement recommandé de vérifier ces valeurs par défaut avant de le faire fonctionner. Valeurs par défaut Les valeurs par défaut du Setup de l’API sont 0000 pour tous les mots (sauf pour la validation de l’erreur batterie faible dans les bits 12 à 15 de la zone DM 6655 des unités centrales CPM2A). Les valeurs par défaut sont réinitialisables à tout moment en activant le SR 25210 du mode PROGRAM. ! Attention Lorsque tous les périphériques de programmation sont effacés de la zone mémoire de données (DM), les réglages du Setup de l’API seront tous configurés à zéro. 1-1-1 Modifier le Setup de l’API Les configurations du Setup de l’API sont accessibles à différents moments selon les types de configurations, comme précisé ci--dessous : ! les zones de DM 6600 à DM 6614 : Accessible seulement lorsque l’alimentation de l’API est sur ON. ! les zones de DM 6615 à DM 6644 : Accessible seulement lorsque le lancement du programme débute. ! les zones de DM 6645 à DM 6655 :Accessible généralement lorsque l’alimentation est sur ON. Les modifications apportées au Setup de l’API ne devenant effectives qu’aux moments indiqués ci--dessus, l’API devra être redémarré pour que les modifications dans les zones de DM 6600 à DM 6614 soient enregistrées et le lancement de programme devra également être redémarré pour que les modifications apportées aux zones de DM 6615 à DM 6644 soient enregistrées. Lorsque les bits 00 à 03 de la zone DM 6602 sont réglés pour protéger la mémoire du programme, la zone DM 6602 n’est pas modifiable à partir des fonctions de configuration du logiciel dans le Setup de l’API. Pour modifier la zone DM 6602, utiliser la surveillance d’E/S ou la fonction Edition de la zone DM. Effectuer les modifications à partir des éléments de programmation Le Setup de l’API est en lecture seule à partir du programme utilisateur. Pour écrire, utiliser un périphérique de programmation. Bien que le Setup de l’API soit sauvegardé dans les zones de DM 6600 à DM 6655, les configurations ne s’effectuent et ne se modifient qu’avec un périphérique de programmation (ex. : SSS ou Console de programmation). Les zones de DM 6600 à DM 6644 ne sont configurables ou modifiables qu’en mode PROGRAM. Les zones de DM 6645 à DM 6655 sont configurables à partir des deux modes PROGRAM ou MONITOR. Les configurations suivantes s’effectuent en mode PROGRAM à partir des fonctions du menu du SSS. Toutes les autres configurations doivent s’effectuer à l’aide de fonctions de réglage hexadécimale. ! Mode Démarrer (DM 6600) ! Etat du bit de maintien d’E/S et du bit de maintien d’état forcé (DM 6601) ! Temps réel du cycle automate (DM 6618) 2 Chapitre Le Setup de l’API 1-1 ! Temps de cycle (DM 6619) ! Configurations du port RS-232C (de DM 6645 à DM 6649) Rem. Les configurations du port RS-232C (de DM 6645 à DM 6649) ne sont pas utilisées dans les API CPM1/CPM1A car ces API ne sont pas équipés de port RS-232C. Erreurs dans le Setup de l’API Si une mauvaise configuration du Setup de l’API est identifiée, une erreur non fatale (code d’erreur 9B) sera générée, le drapeau d’erreur correspondant (de AR 1300 à AR 1302) sera activé et la configuration par défaut remplacera le réglage imprécis. 1-1-2 Configurations du Setup de l’API des CPM1/CPM1A Le Setup de l’API se divise en quatre catégories : 1) les configurations concernant le fonctionnement de base de l’API et le traitement des E/S, 2) les configurations concernant le temps de cycle, 3) les configurations concernant les interruptions et 4) les configurations concernant les communications ; ce chapitre décrit les configurations selon cette classification. Le tableau ci--dessous présente les configurations pour les API CPM1/CPM1A. Se reporter au numéro des pages de la dernière colonne pour de plus amples informations sur le paramétrage. Mot(s) Bit(s) Fonction Page Traitement Démarrer (de DM 6600 à DM 6614) Les sélections suivantes sont effectives après leur transfert vers l’API et uniquement après un redémarrage de l’API. DM 6600 19 00 à 07 Mode Démarrer (enregistré lorsque les bits de 08 à 15 sont réglés sur 02). 00 : PROGRAM ; 01 : MONITOR 02 : RUN 08 à 15 Indication mode Démarrer 00 : Commutateur de Console de Programmation 01 : Dernier mode utilisé, poursuit son fonctionnement avant l’interruption de l’alimentation (Voir Rem. 1.) 02 : Configuré de 00 à 07 DM 6601 00 à 07 Inutilisés. 08 à 11 Etat du bit de maintien IOM (SR 25212) au démarrage 0 : Réinitialiser ; 1 : Conserver (Voir Rem. 3.) Etat du bit de maintien d’état forcé (SR 25211) au démarrage 0 : Réinitialiser ; 1 : Conserver (Voir Rem. 3.) Protéger en écriture la mémoire du programme 0 : Mémoire du programme non protégé 1 : Mémoire du programme protégé en écriture (sauf la zone DM 6602 elle--même) 12 à 15 DM 6602 00 à 03 04 à 07 20 20 08 à 15 Langue d’affichage de la Console de programmation 0 : Anglais ; 1 : Japonais Inutilisés. DM 6603 00 à 15 Inutilisés. DM 6604 00 à 07 00 : Si les données ne peuvent pas être enregistrées avec le condensateur intégré (AR 1314 ON), l’erreur mémoire ne sera pas générée. 08 à 15 de DM 6605 00 à 15 à DM 6614 01 : Si les données ne peuvent pas être enregistrées avec le condensateur intégré (AR 1314 ON), l’erreur mémoire sera générée. Inutilisés. Inutilisés. 3 Chapitre Le Setup de l’API Mot(s) Bit(s) Fonction 1-1 Page Configurations du temps de cycle (de DM 6615 à DM 6619) Les sélections suivantes sont effectives après leur transfert vers l’API et uniquement après un redémarrage de l’API. DM 6615, 00 à 15 Inutilisés. DM 6616 DM 6617 21 00 à 07 Temps d’utilisation du port périphérique (enregistré lorsque les bits de 08 à 15 sont réglés sur 01) 00 à 99 (BCD) : Pourcentage du temps de cycle utilisé pour la gestion du périphérique. DM 6618 DM 6619 4 08 à 15 Validation de la configuration du temps d’utilisation du port périphérique 00 : 5% du temps de cycle 01 : Utilise le temps de 00 à 07. 00 à 07 Temps de surveillance de cycle (enregistré lorsque les bits de 08 à 15 sont réglés sur 01, 02 ou 03) 00 à 99 (BCD) : Configuration (voir 08 à 15) 08 à 15 Valide la surveillance de cycle (configuration de 00 à 07 x unité ; 99 s max.) 00 : 120 ms (configuration en bits de 00 à 07 désactiver) 01 : Configuration de l’unité : 10 ms 02 : Configuration de l’unité : 100 ms 03 : Configuration de l’unité : 1 s 00 à 15 Temps de cycle 0000 : Variable (aucun minimum) 0001 à 9999 (BCD) : Temps minimal en ms 22 23 Chapitre Le Setup de l’API Mot(s) Bit(s) Fonction 1-1 Page Traitement d’interruption (de DM 6620 à DM 6639) Les sélections suivantes sont effectives après leur transfert vers l’API et uniquement après un redémarrage de l’API. DM 6620 23 00 à 03 Constante d’entrée pour l’IR 00000 à l’IR 00002 0 : 8 ms ; 1 : 1 ms ; 2 : 2 ms ; 3 : 4 ms ; 4 : 8 ms ; 5 : 16 ms ; 6 : 32 ms ; 7 : 64 ms ; 8 : 128 ms 04 à 07 08 à 11 12 à 15 DM 6621 DM 6622 DM 6623 DM 6624 DM 6625 DM 6626 à DM 6627 DM 6628 00 à 07 Constante d’entrée pour l’IR 00003 et l’IR 00004 (Configuration identique à celle des bits de 00 à 03) Constante d’entrée pour IR 00005 et l’IR 00006 (Configuration identique à celle des bits de 00 à 03) Constante d’entrée pour IR 00007 à l’IR 00011 (Configuration identique à celle des bits de 00 à 03) Constante d’entrée pour l’IR 001 00 : 8 ms ; 01 : 1 ms ; 02 : 2 ms ; 03 : 4 ms ; 04 : 8 ms ; 05 : 16 ms ; 06 : 32 ms ; 07 : 64 ms ; 08 : 128 ms 08 à 15 Constante d’entrée pour l’IR 002 (Configuration identique à l’IR 001). 00 à 07 Constante d’entrée pour l’IR 003 (Configuration identique à l’IR 001). 08 à 15 Constante d’entrée pour l’IR 004 (Configuration identique à l’IR 001). 00 à 07 Constante d’entrée pour l’IR 005 (Configuration identique à l’IR 001). 08 à 15 Constante d’entrée pour l’IR 006 (Configuration identique à l’IR 001). 00 à 07 Constante d’entrée pour l’IR 007 (Configuration identique à l’IR 001). 08 à 15 Constante d’entrée pour l’IR 008 (Configuration identique à l’IR 001). 00 à 07 Constante d’entrée pour l’IR 009 (Configuration identique à l’IR 001). 08 à 15 Inutilisés. 00 à 15 Inutilisés. 00 à 03 Sélection de l’entrée d’IR 00003 (0 : Entrée normale ; 1 : Entrée d’interruption ; 2 : Capture) Sélection de l’entrée d’IR 00004 (0 : Entrée normale ; 1 : Entrée d’interruption ; 2 : Capture) Sélection de l’entrée d’IR 00005 (0 : Entrée normale ; 1 : Entrée d’interruption ; 2 : Capture) Sélection de l’entrée d’IR 00006 (0 : Entrée normale ; 1 : Entrée d’interruption ; 2 : Capture) Inutilisés. 04 à 07 08 à 11 12 à 15 79 DM 6629 à 00 à 15 DM 6641 Configurations du compteur à grande vitesse (de DM 6640 à DM 664) Les sélections suivantes sont effectives après leur transfert vers l’API et uniquement après un redémarrage de l’API. DM 6640 à 00 à 15 Inutilisés. DM 6641 DM 6642 87 00 à 03 Mode compteur à grande vitesse 0 : Mode compteur incrémental/décrémental ; 4 : Mode compteur d’incrémentation 04 à 07 Mode réinitialisation du compteur à grande vitesse 0 : Phase Z et réinitialisation par programme ; 1 : Réinitialisation par programme uniquement DM 6643, DM 6644 08 à 15 Valide compteur à grande vitesse 00 : N’utilise pas le compteur à grande vitesse ; 01 : Utilise le compteur à grande vitesse avec les paramétrages de 00 à 07 00 à 15 Inutilisés. 5 Chapitre Le Setup de l’API Mot(s) Bit(s) Fonction 1-1 Page Configurations de port périphérique Les sélections suivantes sont effectives après leur transfert vers l’API. DM 6645 à 00 à 15 Inutilisés. DM 6649 DM 6650 00 à 07 Paramétrage du port 00 : Standard (1 bit de lancement, données en 7 bits, parité paire, 2 bits d’arrêt, 9 600 bps) 01 : Configurations dans la zone DM 6651 (Les autres configurations provoqueraient une erreur non fatale et l’AR 1302 serait activé). 08 à 11 12 à 15 Zone de liaison pour liaison Inter API via le port périphérique : 0 : de LR 00 à LR 15 Modes de communication 0 : Liaison à l’ordinateur (SYSMAC--WAY) ; 2 : 1 :1 Liaison API esclave ; 3 : 1 :1 Liaison API maître ; 4 : 1 :1 Liaison NT (Les autres configurations provoqueraient une erreur non fatale et l’AR 1302 serait activé). DM 6651 00 à 07 Débit en bauds 00 : 1,2 K, 01 : 2,4 K, 02 : 4,8 K, 03 : 9,6 K, 04 : 19,2 K, de 05 à 07 : Inutilisable (Voir Rem. 2) (Les autres configurations provoqueraient une erreur non fatale et l’AR 1302 serait activé). 08 à 15 Format de trame Lancement 00 : 1 bit 01 : 1 bit 02 : 1 bit 03 : 1 bit 04 : 1 bit 05 : 1 bit 06 : 1 bit 07 : 1 bit 08 : 1 bit 09 : 1 bit 10 : 1 bit 11 : 1 bit Longueur 7 bits 7 bits 7 bits 7 bits 7 bits 7 bits 8 bits 8 bits 8 bits 8 bits 8 bits 8 bits Arrêt 1 bit 1 bit 1 bit 2 bits 2 bits 2 bits 1 bit 1 bit 1 bit 2 bits 2 bits 2 bits Parité Paire Impaire Aucune Paire Impaire Aucune Paire Impaire Aucune Paire Impaire Aucune (Les autres configurations provoqueraient une erreur non fatale et l’AR 1302 serait activé). DM 6652 DM 6653 DM 6654 6 00 à 15 00 à 07 Délais de transmission (Liaison à l’ordinateur (SYSMAC--WAY)) (Voir Rem. 4.) de 0000 à 9999 : en ms. (Les autres configurations provoqueraient une erreur non fatale et l’AR 1302 serait activé). Numéro de station (Liaison à l’ordinateur (SYSMAC--WAY)) 00 à 31 (BCD) 08 à 15 (Les autres configurations provoqueraient une erreur non fatale et l’AR 1302 serait activé). Inutilisés. 00 à 15 Inutilisés. 184 Chapitre Le Setup de l’API Mot(s) Bit(s) Fonction 1-1 Page Configurations du journal d’erreur (DM 6655) Les sélections suivantes sont affectives après leur transfert à l’API. DM 6655 00 à 03 Style 0 : Décalage après 7 enregistrements d’erreurs 1 : Mémorise seulement les 7 premiers enregistrements (sans changement) 2 à F : Ne mémorise pas les enregistrements 04 à 07 Inutilisés. 08 à 11 Valide la surveillance du temps de cycle 0 : Détecte les cycles longs en tant qu’erreurs non fatales 1 : Ne détecte pas les cycles longs 12 à 15 Inutilisés. Rem. 24 1. Lorsque le mode démarrer est réglé pour que le dernier mode de fonctionnement utilisé avant la désactivation se poursuive, ce mode de fonctionnement sera conservé par le condensateur intégré. Mais les données risquent d’être perdues, si l’alimentation reste désactivée au delà du temps de sauvegarde du condensateur. Pour plus d’informations sur le temps de maintien, se reporter au Manuel de programmation du CPM1A ou à celui du CPM1. 2. Ne pas régler “05” à “07”, sinon les CPM1/CPM1A ne fonctionneront pas correctement et le drapeau d’erreur du Setup de l’API RUN (AR 1302 ON) ne sera pas activé. 3. Maintien de l’état du bit de maintien IOM (SR 25212) Lorsque l’“Etat du bit de maintien IOM au démarrage” (DM 6601, bits de 08 à 11) est réglé sur “Conserve” avec le bit de maintien IOM (SR 25212) d’activé, le programme peut être lancé avec l’état de la mémoire des E/S (E/S, IR, LR) dans l’état où il se trouvait avant d’être désactivé. La zone d’entrée est régénérée au démarrage, cependant la plus récente mise à jour de l’état d’entrée écrase la précédente. Maintien de l’état du bit de maintien d’état forcé (SR 25211) Si l’“Etat du bit de maintien d’état forcé au démarrage” (DM 6601, bits de 12 à 15) est réglé sur “Conserve” avec le bit de maintien d’état forcé (SR 25211) d’activé, le programme peut être lancé avec l’état régler/réinitialiser forcé dans l’état où il se trouvait avant d’être désactivé. Cependant lorsque le mode RUN est lancé, l’état initialiser/réinitialiser forcé est effacé. Même si l’“Etat du bit de maintien IOM au démarrage” ou l’“Etat du bit de maintien d’état forcé au démarrage” est réglé sur “Conserve”, le bit de maintien IOM (SR 25212) ou l’état du bit de maintien d’état forcé (SR 25211) est effacé lorsque l’alimentation est désactivée pendant une durée supérieure au temps de sauvegarde du condensateur intégré. Pour plus d’informations sur le temps de maintien, se reporter au Manuel de programmation du CPM1A ou à celui du CPM1. A ce moment--là, la mémoire des E/S sera également effacée, régler donc le système afin que la suppression de la mémoire des E/S n’entraîne aucun problème. 4. Le délai de transmission correspond au délai survenant entre la transmission précédente et la transmission suivante. Ordinateur Commande Contrôleur programmable Commande Réponse Réponse Durée du délai de transmission 7 Le Setup de l’API Chapitre 1-1 5. Lorsqu’une valeur est réglée en dehors des limites, re--régler la valeur afin de rester dans la plage autorisée. Sinon les conditions de communications seront les suivantes : Modes de communication : Liaison à l’ordinateur (SYSMAC--WAY) Format de communications : Configurations standard (1 bit de lancement, données à 7 bits ; parité paire, 2 bits d’arrêt, 9 600 bps) Délai de transmission : Aucun Numéro de station : 00 8 Chapitre Le Setup de l’API 1-1 1-1-3 Configuration du Setup de l’API des CPM2A/CPM2C Le Setup de l’API se divise en quatre catégories : 1) les configurations concernant le fonctionnement de base de l’API et le traitement des E/S, 2) les configurations concernant les fonctions de sortie d’impulsions, 3) les configurations concernant les interruptions et 4) les configurations concernant les communications. Ce chapitre décrit les configurations selon cette classification. Le tableau ci--dessous présente les configurations selon la zone de DM. Pour de plus amples informations, se reporter au numéro des pages. Mots(s) Bit(s) Fonction Page Traitement démarrer (DM 6600 à DM 6614) Les sélections suivantes sont effectives après leur transfert vers l’API et uniquement après un redémarrage de l’API. DM 6600 19 00 à 07 Mode démarrer (enregistré lorsque les bits de 08 à 15 sont réglés sur 02). 00 : PROGRAM ; 01 : MONITOR ; 02 : RUN 08 à 15 Indication mode Démarrer 00 : En fonction du commutateur de configuration de port de communications et de la connexion du port périphérique (Voir le tableau au bas de cette page) 01 : Dernier mode utilisé, poursuit son fonctionnement avant l’interruption de l’alimentation. 02 : Configuration de 00 à 07 DM 6601 20 00 à 07 Inutilisés. 08 à 11 12 à 15 DM 6602 00 à 03 04 à 07 Etat du bit de maintien IOM (SR 25212) au démarrage 0 : Réinitialiser à 0 ; 1 : Conserver l’état précédent Etat du bit de maintien d’état forcé (SR 25211) au démarrage 0 : Réinitialiser à 0 ; 1 : Conserver l’état précédent Protéger en écriture la mémoire du programme 0 : Mémoire du programme non protégé 1 : Mémoire du programme protégé en écriture (sauf la zone DM 6602 elle--même) 08 à 11 Langue d’affichage de la Console de programmation 0 : Anglais ; 1 : Japonais Attribution de code de fonction d’instruction d’expansion 0 : Configuration par défaut 1 : Personnalisation de l’utilisateur 20 163 12 à 15 Inutilisés. DM 6603 00 à 15 Inutilisés. DM 6604 00 à 07 00 : Une erreur mémoire ne sera pas générée lorsque la batterie ne peut pas conserver les données. 01 : Une erreur mémoire sera générée lorsque la batterie ne peut pas conserver les données. DM 6605 à DM 6614 08 à 15 Inutilisés. 00 à 15 Inutilisés. Rem. Le mode d’exploitation Démarrer décrit dans le tableau suivant correspond aux bits 08 à 15 de la zone DM 6600 réglés sur 00. Port périphérique connecté à Commutateur de configuration des ports de communications Broche 2 OFF Broche 2 ON Aucun PROGRAM RUN Console de programmation Mode régler sur le commutateur en mode Console de programmation PROGRAM (Le CPM2C ne pourra pas communiquer avec une console de programmation) Autres périphériques de programmation PROGRAM (Le CPM2C ne pourra pas communiquer avec un autre périphérique de programmation) PROGRAM 9 Chapitre Le Setup de l’API Mots(s) Bit(s) Fonction 1-1 Page Configurations du temps de cycle (DM 6615 à DM 6619) Les sélections suivantes sont effectives après leur transfert vers l’API et uniquement après un redémarrage de l’API. DM 6615 00 à 15 Inutilisés. DM 6616 00 à 07 Temps d’utilisation du port RS-232C (enregistré lorsque les bits de 08 à 15 sont réglés sur 01) 00 à 99 (BCD) : Pourcentage du temps de cycle utilisé pour la gestion du port RS-232C. Valide le temps d’utilisation du port RS-232C 00 : 5% du temps de cycle 01 : Utilise le temps des bits de 00 à 07. 21 00 à 07 Temps d’utilisation pour port périphérique (enregistré lorsque les bits de 08 à 15 sont réglés sur 01) 00 à 99 (BCD) : Pourcentage du temps de cycle utilisé pour la gestion de périphérique. 21 08 à 15 Validation de la configuration du temps d’utilisation du port périphérique 00 : 5% du temps de cycle 01 : Utilise le temps des bits 00 à 07. 00 à 07 Temps de surveillance de cycle (enregistré lorsque les bits de 08 à 15 sont réglés sur 01, 02 ou 03) 00 à 99 (BCD) : Configuration (Voir bits 08 à 15, en bas.) 08 à 15 DM 6617 DM 6618 22 Une erreur fatale est générée et l’exploitation de l’API s’arrête lorsque le temps de cycle est supérieur au temps de surveillance de cycle défini ici. DM 6619 08 à 15 Valide la surveillance de cycle (configuration de 00 à 07" unités ; 99 s max.) 00 : 120 ms (configuration en bits 00 à 07 désactivés) 01 : Configuration des unités : 10 ms 02 : Configuration des unités : 100 ms 03 : Configuration des unités : 1 s 00 à 15 Temps de cycle minimal 0000 : Variable (aucun minimum) 0001 à 9999 (BCD) : Temps minimal en ms 23 Traitement d’interruption (DM 6620 à DM 6639) Les sélections suivantes sont effectives après leur transfert vers l’API et uniquement après un redémarrage de l’API. DM 6620 00 à 03 Constante d’entrée pour l’IR 00000 à l’IR 00002 0 : 10 ms ; 1 : 1 ms ; 2 : 2 ms ; 3 : 3 ms ; 4 : 5 ms ; 5 : 10 ms ; 6 : 20 ms ; 7 : 40 ms ; 8 : 80 ms 04 à 07 Constante d’entrée pour l’IR 00003 et l’IR 00004 (Configuration identique à celle des bits de 00 à 03) Constante d’entrée pour l’IR 00005 et l’IR 00006 (Configuration identique à celle des bits de 00 à 03) Constante d’entrée pour l’IR 00007 à l’IR 00011 (Configuration identique à celle des bits de 00 à 03) Constante d’entrée pour IR 001 00 : 10 ms 01 : 1 ms 02 : 2 ms 03 : 3 ms 04 : 5 ms 05 : 10 ms 06 : 20 ms 07 : 40 ms 08 : 80 ms 08 à 11 12 à 15 DM 6621 DM 6622 DM 6623 DM 6624 DM 6625 DM 6626 à DM 6627 10 00 à 07 08 à 15 Constante d’entrée pour IR 002 (Configuration identique à l’IR 001). 00 à 07 Constante d’entrée pour IR 003 (Configuration identique à l’IR 001). 08 à 15 Constante d’entrée pour IR 004 (Configuration identique à l’IR 001). 00 à 07 Constante d’entrée pour IR 005 (Configuration identique à l’IR 001). 08 à 15 Constante d’entrée pour IR 006 (Configuration identique à l’IR 001). 00 à 07 Constante d’entrée pour IR 007 (Configuration identique à l’IR 001). 08 à 15 Constante d’entrée pour IR 008 (Configuration identique à l’IR 001). 00 à 07 Constante d’entrée pour IR 009 (Configuration identique à l’IR 001). 08 à 15 Inutilisés. 00 à 15 Inutilisés. 23 Chapitre Le Setup de l’API Mots(s) DM 6628 Bit(s) 00 à 03 04 à 07 08 à 11 Fonction Sélection de l’entrée d’IR 00003 (0 : Entrée normale ; 1 : Entrée d’interruption ; 2 : Capture) Sélection de l’entrée d’IR 00004 (0 : Entrée normale ; 1 : Entrée d’interruption ; 2 : Capture) Sélection de l’entrée d’IR 00005 (0 : Entrée normale ; 1 : Entrée d’interruption ; 2 : Capture) 1-1 Page 30 (Régler à 0 dans les unités centrales CPM2C ayant 10 points d’E/S) 12 à 15 Sélection de l’entrée d’IR 00006 (0 : Entrée normale ; 1 : Entrée d’interruption ; 2 : Capture) (Cette entrée n’existe pas dans les unités centrales CPM2C ayant 10 points d’E/S) DM 6629 00 à 03 04 à 07 08 à 15 Système de coordination PV pour sortie d’impulsion 0 0 : Coordonnées relatives ; 1 : Coordonnées absolues Système de coordination PV pour sortie d’impulsion 1 0 : Coordonnées relatives ; 1 : Coordonnées absolues Inutilisés. 104 DM 6630 à 00 à 15 Inutilisés. DM 6641 Configurations du compteur à grande vitesse (DM 6640 à DM 6644) Les sélections suivantes sont effectives après leur transfert vers l’API et uniquement après un redémarrage de l’API. DM 6640 à 00 à 15 Inutilisés. DM 6641 DM 6642 46, 55 00 à 03 Mode compteur à grande vitesse 0 : Mode bidirectionnel (5 kHz) 1 : Impulsion + mode d’entrée de direction (20 kHz) 2 : Mode d’entrée incrémental/décrémental (20 kHz) 4 : Mode incrémental (20 kHz) DM 6643, DM 6644 04 à 07 Mode réinitialisation du compteur à grande vitesse 0 : Phase Z et réinitialisation par programme ; 1 : Réinitialisation par programme uniquement 08 à 15 Compteur à grande vitesse/Commande d’impulsion synchronisée pour l’IR 00000 à l’IR 00002 00 à 15 00 : Utilise aucune fonction. 01 : S’utilise comme un compteur à grande vitesse 02 : S’utilise pour synchroniser la commande d’impulsion (10 à 500 Hz). 03 : S’utilise pour synchroniser la commande d’impulsion (20 Hz à 1 kHz). 04 : S’utilise pour synchroniser la commande d’impulsion (300 Hz à 20 kHz). Inutilisés. 11 Chapitre Le Setup de l’API Mots(s) Bit(s) Fonction 1-1 Page Configurations du port de communication RS-232C Les sélections suivantes sont effectives après leur transfert vers l’API. Lorsque le commutateur des communications de l’unité centrale du CPM2A est sur ON, les communications transmises par le port RS-232C du CPM2A dépendent de la configuration par défaut (tout à 0) indépendamment de la configuration de la zone allant de DM 6645 à DM 6649. Lorsque la broche 2 du micro--interrupteur de l’unité centrale du CPM2C est sur ON, les communications transmises par le port RS-232C du CPM2C dépendent de la configuration par défaut (tout à 0) indépendamment de la configuration de la zone allant de DM 6645 à DM 6649. DM 6645 00 à 03 Paramétrage du port 0 : Standard (1 bit de lancement, données en 7 bits, parité paire, 2 bits d’arrêt, 9 600 bps) 1 : Configurations de la zone DM 6646 184 (Toute autre configuration provoquerait une erreur non fatale et l’AR 1302 serait activé) 04 à 07 Paramétrage de la commande de CTS 0 : Commande CTS non valide ; 1 : Commande CTS valide (Toute autre configuration provoquerait une erreur non fatale et l’AR 1302 serait activé) 08 à 11 12 à 15 Mots de liaison pour 1 :1 liaison de données 0 : LR 00 à LR 15 (Toutes les autres configurations sont inopérantes) Modes de communication 0 : Liaison à l’ordinateur (SYSMAC--WAY) ; 1 : Sans protocole ; 2 : 1 :1 Liaison API esclave ; 3 : 1 :1 Liaison API maître ; 4 : Liaison NT (Toute autre configuration provoquerait une erreur non fatale et l’AR 1302 serait activé) DM 6646 00 à 07 08 à 15 Débit en bauds 00 : 1 200 bps ; 01 : 2 400 bps ; 02 : 4 800 bps ; 03 : 9 600 bps ; 04 : 19 200 bps Format de trame Lancement Longueur Arrêt Parité 00 : 1 bit 7 bits 1 bit Paire 01 : 1 bit 7 bits 1 bit Impaire 02 : 1 bit 7 bits 1 bit Aucune 03 : 1 bit 7 bits 2 bits Paire 04 : 1 bit 7 bits 2 bits Impaire 05 : 1 bit 7 bits 2 bits Aucune 06 : 1 bit 8 bits 1 bit Paire 07 : 1 bit 8 bits 1 bit Impaire 08 : 1 bit 8 bits 1 bit Aucune 09 : 1 bit 8 bits 2 bits Paire 10 : 1 bit 8 bits 2 bits Impaire 11 : 1 bit 8 bits 2 bits Aucune 184 (Pour toute autre configuration préciser les configurations standard (1 bit de lancement, données en 7 bits ; parité paire, 2 bits d’arrêt, 9 600 bps), et toute autre configuration provoquerait une erreur non fatale et l’AR serait activé). DM 6647 00 à 15 Délai de transmission (le BCD de 0000 à 9999 règle un délai de 0 à 99 990 ms.) 184 (Pour toute autre configuration préciser un délai de 0 ms, sinon cela provoquerait une erreur non fatale et l’AR 1302 serait activé) DM 6648 00 à 07 08 à 11 12 à 15 Numéro de station (Liaison à l’ordinateur (SYSMAC--WAY)) 00 à 31 (BCD) (Pour toute autre configuration préciser le numéro de station à 00, sinon cela provoquerait une erreur non fatale et l’AR 1302 serait activé) Sélection du code de démarrage pour les communications sans protocole 0 : Code de démarrage désactivé ; 1 : Code de démarrage valide dans la DM 6649 (Pour toute autre configuration, désactiver le code de démarrage, sinon cela provoquerait une erreur non fatale et l’AR 1302 serait activé) Sélection du code de Fin pour les communications sans protocole 0 : Code de fin désactivé ; 1 : Code de fin valide dans la DM 6649 ; 2 : Code de fin de CR, LF réglé. (Pour toute autre configuration, désactiver le code de fin, sinon cela provoquerait une erreur non fatale et l’AR 1302 serait activé) 12 184 Chapitre Le Setup de l’API Mots(s) DM 6649 Bit(s) 00 à 07 Fonction Code de démarrage (00 à FF) 1-1 Page 184 (Cette configuration est valable uniquement lorsque les bits 8 à 11 de la DM 6648 sont réglés sur 1). 08 à 15 Lorsque les bits 12 à 15 de la DM 6648 sont réglés sur 0 : Régler le nombre d’octets à recevoir (00 : 256 octets ; 01 à FF : 1 à 255 octets). Lorsque les bits 12 à 15 de la DM 6648 sont réglés sur 1 : Régler le code de fin (00 à FF). Configurations des communications du port de périphérique Les configurations suivantes sont enregistrées après leur transfert à l’API. Lorsque le commutateur des communications de l’unité centrale du CPM2A est sur ON, les communications transmises par le port RS-232C du CPM2A dépendent de la configuration par défaut (paramétrage usine) indépendamment de la configuration de la zone allant de DM 6645 à DM 6649. La configuration du commutateur des communications du CPM2A n’a aucun effet sur les communications avec la Console de programmation connectée au port périphérique ou avec le logiciel réglé pour des communications de bus périphérique. L’unité centrale CPM2A détectera automatiquement l’un ou l’autre des périphériques de programmation et établira automatiquement les communications. Le sélecteur 1 du micro--interrupteur de l’unité centrale du CPM2C doit être sur OFF et le sélecteur 2 doit être sur ON afin que les communications transmises par le port périphérique du CPM2C dépendent bien de la configuration de la zone de DM 6650 à DM 6654. Lorsque le sélecteur 2 est sur OFF, les communications transmises par le port périphérique du CPM2C dépendent du protocole de la Console de programmation. Lorsque les sélecteurs 1 et 2 des micro--interrupteurs de l’unité centrale du CPM2C sont sur ON, les communications transmises dépendent des configurations des liaisons à l’ordinateur (SYSMAC--WAY) standard (1 bit de lancement, données en 7 bits, parité paire, 2 bits d’arrêt, 9 600 bps). DM 6650 00 à 03 Paramétrage du port 00 : Standard (1 bit de lancement, données en 7 bits, parité paire, 2 bits d’arrêt, 9 600 bps) 01 : Configuration dans la DM 6651 184 (Pour toute autre configuration, spécifier les configurations par défaut, sinon cela provoquerait une erreur non fatale et l’AR 1302 serait activé) 04 à 11 Inutilisés. 12 à 15 Modes de communication 0 : Liaison à l’ordinateur (SYSMAC--WAY) ; 1 : Sans protocole (ASCII) (Pour toute autre configuration, spécifier la liaison à l’ordinateur (SYSMAC--WAY), sinon cela provoquerait une erreur non fatale et l’AR 1302 serait activé) DM 6651 00 à 07 08 à 15 Pour connecter un logiciel de passage de l’ordinateur à un CPM2C, désactiver le sélecteur 1 et activer le sélecteur 2 à partir du commutateur de configuration des communications et régler les zones de DM 6650 à 0001. L’unité centrale modifiera automatiquement les modes de communication série pour le bus périphérique. Il s’avérera impossible de communiquer à partir du port périphérique en configuration par défaut. Débit en bauds 00 : 1 200 bps ; 01 : 2 400 bps ; 02 : 4 800 bps ; 03 : 9 600 bps ; 04 : 19 200 bps Format de trame Lancement Longueur Arrêt Parité 00 : 1 bit 7 bits 1 bit Paire 01 : 1 bit 7 bits 1 bit Impaire 02 : 1 bit 7 bits 1 bit Aucune 03 : 1 bit 7 bits 2 bits Paire 04 : 1 bit 7 bits 2 bits Impaire 05 : 1 bit 7 bits 2 bits Aucune 06 : 1 bit 8 bits 1 bit Paire 07 : 1 bit 8 bits 1 bit Impaire 08 : 1 bit 8 bits 1 bit Aucune 09 : 1 bit 8 bits 2 bits Paire 10 : 1 bit 8 bits 2 bits Impaire 11 : 1 bit 8 bits 2 bits Aucune (Pour toute autre configuration, préciser les configurations standard (1 bit de lancement, données en 7 bits ; parité paire, 2 bits d’arrêt, 9 600 bps), et toute autre configuration provoquerait une erreur non fatale et l’AR serait activé). 13 Chapitre Le Setup de l’API Mots(s) DM 6652 Bit(s) 00 à 15 Fonction Délai de transmission (le BCD de 0000 à 9999 règle un délai de 0 à 99 990 ms.) 1-1 Page 184 (Pour toute autre configuration, préciser un délai de 0 ms, sinon cela provoquerait une erreur non fatale et l’AR 1302 serait activé) DM 6653 00 à 07 08 à 11 Numéro de station (Liaison à l’ordinateur (SYSMAC--WAY)) 00 à 31 (BCD) 184 (Pour toute autre configuration, préciser le numéro de station à 00, sinon cela provoquerait une erreur non fatale et l’AR 1302 serait activé) Démarrer la sélection du code pour les communications sans protocole 0 : Désactive le code de démarrage ; 1 : Valide le code de démarrage dans la DM 6649 (Pour toute autre configuration, désactiver le code de démarrage, sinon cela provoquerait une erreur non fatale et l’AR 1302 serait activé) 12 à 15 Sélection du code de fin pour les communications sans protocole 0 : Désactive code de fin ; 1 : Valide code de fin dans la DM 6649 ; 2 : Règle code de fin de CR, LF. (Pour toute autre configuration, désactiver le code de fin, sinon cela provoquerait une erreur non fatale et l’AR 1302 serait activé) DM 6654 00 à 07 Code de démarrage (00 à FF) 184 (Cette configuration est valable uniquement lorsque les bits 8 à 11 de la DM 6648 sont réglés sur 1). 08 à 15 Lorsque les bits 12 à 15 de la DM 6648 sont réglés sur 0 : Régler le nombre d’octets à recevoir (00 : 256 octets ; 01 à FF : 1 à 255 octets). Lorsque les bits 12 à 15 de la DM 6648 sont réglés sur 1 : Régler le code de fin (00 à FF). Configurations du journal d’erreur (DM 6655) Les sélections suivantes sont effectives après leur transfert vers l’API. DM 6655 00 à 03 Style 0 : Décalage après 7 enregistrements d’erreurs 1 : Mémorise seulement les 7 premiers enregistrements (sans changement) 2 à F : Ne mémorise pas les enregistrements 04 à 07 Inutilisés. 08 à 11 Valide la surveillance du temps de cycle 0 : Génère une erreur non fatale pour un temps de cycle trop long 1 : Ne génère pas d’erreur non fatale 12 à 15 Active l’erreur batterie faible 0 : Génère une erreur non fatale pour une détection de batterie faible 1 : Ne génère pas d’erreur non fatale La détection d’erreur batterie faible est désactivée (ex. : régler sur 1) par défaut dans l’unité centrale ne possédant pas d’horloge. Lorsque le Setup de l’API est effacé, la configuration passe à 0 et l’erreur batterie faible peut survenir. Les bits 12 à 15 devraient toujours être réglés sur 0 lors du montage du CPM2C-BAT01 optionnel. 14 24 Chapitre Le Setup de l’API 1-1 1-1-4 Configuration du Setup de l’API du SRM1(-V2) Le Setup de l’API se divise en quatre catégories : 1) les configurations concernant le fonctionnement de base de l’API et le traitement des E/S, 2) les configurations concernant le temps de cycle, 3) les configurations concernant les interruptions et 4) les configurations concernant les communications. Ce chapitre décrit les configurations selon cette classification. Le tableau ci--dessous présente les configurations pour les API SRM1(-V2). Se reporter au numéro des pages de la dernière colonne pour de plus amples informations sur le paramétrage. Mots(s) Bit(s) Fonction Page Traitement démarrer (DM 6600 à DM 6614) Les sélections suivantes sont effectives après leur transfert vers l’API et uniquement après un redémarrage de l’API. DM 6600 19 00 à 07 Mode démarrer (enregistré lorsque les bits de 08 à 15 sont réglés sur 02). 00 : PROGRAM ; 01 : MONITOR ; 02 : RUN 08 à 15 Indication mode Démarrer 00 : Commutateur de Console de Programmation 01 : Dernier mode utilisé, poursuit son fonctionnement avant la désactivation de l’alimentation 02 : Paramétré de 00 à 07 DM 6601 00 à 07 Inutilisés. 08 à 11 Etat du bit de maintien IOM (SR 25212) 0 : Réinitialiser ; 1 : Conserver (Voir Attention page 20) Etat du bit de maintien d’état forcé (SR 25211) 0 : Réinitialiser ; 1 : Conserver Protéger en écriture la mémoire du programme 0 : Mémoire du programme non protégé 1 : Mémoire du programme protégé en écriture (sauf pour la DM 6602 elle--même) 12 à 15 DM 6602 00 à 03 04 à 07 08 à 11 12 à 15 DM 6603 DM 6604 20 20 Langue d’affichage de la Console de programmation 0 : Anglais ; 1 : Japonais Instructions d’expansion 0 : Configuration par défaut ; 1 : Configuration d’utilisateur Inutilisés. 00 à 03 Nombre maximum de périphériques du CompoBus/S 0 : Max. 32 1 : Max. 16 04 à 07 Paramétrage du mode communications CompoBus/S (V2 uniquement) 0 : Communications à grande vitesse 1 : Communications longue distance 08 à 15 Inutilisés. 00 à 07 00 : Si les données ne peuvent pas être sauvegardées lors d’une interruption d’alimentation (AR 1314 ON), l’erreur mémoire ne sera pas générée. 01 : Si les données ne peuvent pas être sauvegardées lors d’une interruption d’alimentation (AR 1314 ON), l’erreur mémoire sera générée. Inutilisés. 08 à 15 DM 6605 à 00 à 15 Inutilisés. DM 6614 Configurations du temps de cycle (DM 6615 à DM 6619) Les sélections suivantes sont effectives après leur transfert vers l’API. DM 6615 00 à 15 Inutilisés. DM 6616 00 à 07 21 Temps d’utilisation du port RS-232C (enregistré lorsque les bits de 08 à 15 sont réglés) 00 à 99 (BCD) : Pourcentage du temps de cycle utilisé pour la gestion du port RS-232C 08 à 15 Validation du temps d’utilisation du port RS-232C 00 : 5% du temps de cycle 01 : Utilise le temps de 00 à 07. 15 Chapitre Le Setup de l’API Mots(s) DM 6617 DM 6618 DM 6619 Bit(s) Fonction 00 à 07 Temps d’utilisation du port périphérique (enregistré lorsque les bits de 08 à 15 sont réglés sur 01) 00 à 99 (BCD) : Pourcentage du temps de cycle utilisé pour la gestion du périphérique 08 à 15 Validation de la configuration du temps d’utilisation du port périphérique 00 : 5% du temps de cycle 01 : Utilise le temps de 00 à 07. 00 à 07 Temps de surveillance de cycle (enregistré lorsque les bits de 08 à 15 sont réglés sur 01, 02 ou 03) 00 à 99 (BCD) : Paramétrage (voir 08 à 15) 08 à 15 Valide la surveillance de cycle (Paramétrage de 00 à 07 x unité ; 99 s max.) 00 : 120 ms (paramétrage en bits de 00 à 07 hors service) 01 : Configuration de l’unité : 10 ms 02 : Configuration de l’unité : 100 ms 03 : Configuration de l’unité : 1 s 00 à 15 Temps de cycle 0000 : Variable (aucun minimum) 0001 à 9999 (BCD) : Temps minimal en ms 1-1 Page 21 22 23 DM 6620 à 00 à 15 Inutilisés. DM 6644 Configuration du port de communication RS-232C Les sélections suivantes sont effectives après leur transfert vers l’API. DM 6645 00 à 03 Paramétrage du port 0 : Standard (1 bit de lancement, données en 7 bits, parité paire, 2 bits d’arrêt, 9 600 bps) 1 : Configurations de la zone DM 6646 04 à 07 Paramétrage de la commande de CTS 0 : Désactive ; 1 : Valide 08 à 11 Pour l’utilisation de mots de liaison pour 1 :1 liaison de données : définir la zone de liaison pour 1 :1 liaison API. 0 : LR 00 à LR 15 Non 0 : Désactive Lors de l’utilisation d’une 1 : N liaison NT : définir le nombre maximal de station TOP. 1à7 12 à 15 Modes de communication 0 : Liaison à l’ordinateur (SYSMAC--WAY) ; 1 : Sans protocole ; 2 : 1 :1 Liaison API esclave ; 3 : 1 :1 Liaison API maître ; 4 : 1 :1 Liaison NT ; 5 : 1 : Liaison N NT (Toute autre configuration spécifique du mode liaison à l’ordinateur (SYSMAC--WAY), provoquerait une erreur non fatale et l’AR 1302 serait activé) 1 : Liaison N NT n’est supportée que par le SRM1-C02-V2. 16 221 Chapitre Le Setup de l’API Mots(s) DM 6646 Bit(s) 00 à 07 08 à 15 Fonction 1-1 Page Débit en bauds 00 : 1,2 K, 01 : 2,4 K, 02 : 4,8 K, 03 : 9,6 K, 04 : 19,2 K Format de trame Lancement Longueur Arrêt Parité 00 : 1 bit 7 bits 1 bit Paire 01 : 1 bit 7 bits 1 bit Impaire 02 : 1 bit 7 bits 1 bit Aucune 03 : 1 bit 7 bits 2 bits Paire 04 : 1 bit 7 bits 2 bits Impaire 05 : 1 bit 7 bits 2 bits Aucune 06 : 1 bit 8 bits 1 bit Paire 07 : 1 bit 8 bits 1 bit Impaire 08 : 1 bit 8 bits 1 bit Aucune 09 : 1 bit 8 bits 2 bits Paire 10 : 1 bit 8 bits 2 bits Impaire 11 : 1 bit 8 bits 2 bits Aucune Autre : 1 bit 7 bits 2 bits Paire L’AR 1302 sera activé pour indiquer une erreur configuration de système non--fatale lorsque aucune valeur n’est paramétrée entre 00 et 11. DM 6647 00 à 15 Délai de transmission (Liaison à l’ordinateur (SYSMAC--WAY)) 0000 à 9999 (BCD) : défini dans les unités à 10 ms, ex. : paramétrage de 0001 égal à 10 ms DM 6648 00 à 07 Numéro de station (Liaison à l’ordinateur (SYSMAC--WAY), enregistré lorsque les bits de 12 à 15 de la DM 6645 sont réglés sur 0.) 00 à 31 (BCD) 08 à 11 Valide le code de démarrage (RS-232C, enregistré lorsque les bits de 12 à 15 de la DM 6645 sont réglés sur 1). 0 : Désactivé; 1 : Défini 12 à 15 Valide le code de fin (RS-232C, enregistré lorsque les bits de 12 à 15 de la DM 6645 sont réglés sur 1). 0 : Désactivé (nombre de bits reçus) 1 : Défini (code fin spécifié) 2 : CR, LF 00 à 07 Code de démarrage (RS-232C) 00 à FF (binaire) Lorsque les bits 12 à 15 de la DM 6648 sont réglés sur 0 : Nombre de bits reçus : 00 : Configuration par défaut (256 octets) 01 à FF : 1 à 255 octets DM 6649 08 à 15 221 Lorsque les bits 12 à 15 de la DM 6648 sont réglés sur 1 : Code de fin (RS-232C) 00 à FF (binaire) 17 Chapitre Le Setup de l’API Mots(s) Bit(s) Fonction 1-1 Page Configurations de port périphérique Les sélections suivantes sont effectives après leur transfert vers l’API. DM 6650 00 à 03 Paramétrage du port 00 : Standard (1 bit de lancement, données sur 7 bits, parité paire, 2 bits d’arrêt, 9 600 bps) 01 : Configurations de la zone DM 6651 221 (Les autres configurations provoqueraient une erreur non fatale et l’AR 1302 serait activé). DM 6651 04 à 07 Inutilisés. 08 à 11 Inutilisés. 12 à 15 Modes de communication 0 : Liaison à l’ordinateur (SYSMAC--WAY) ; 1 : Sans protocole 00 à 07 08 à 15 (Les autres configurations provoqueraient une erreur non fatale et l’AR 1302 serait activé). Débit en bauds 00 : 1,2K, 01 : 2,4K, 02 : 4,8K, 03 : 9,6K, 04 : 19,2K Format de trame Lancement Longueur Arrêt Parité 00 : 1 bit 7 bits 1 bit Paire 01 : 1 bit 7 bits 1 bit Impaire 02 : 1 bit 7 bits 1 bit Aucune 03 : 1 bit 7 bits 2 bits Paire 04 : 1 bit 7 bits 2 bits Impaire 05 : 1 bit 7 bits 2 bits Aucune 06 : 1 bit 8 bits 1 bit Paire 07 : 1 bit 8 bits 1 bit Impaire 08 : 1 bit 8 bits 1 bit Aucune 09 : 1 bit 8 bits 2 bits Paire 10 : 1 bit 8 bits 2 bits Impaire 11 : 1 bit 8 bits 2 bits Aucune Autre : 1 bit 7 bits 2 bits Paire L’AR 1302 sera sur ON pour indiquer une erreur configuration de système non fatale lorsque la valeur n’est pas définie entre 00 et 11. DM 6652 DM 6653 00 à 15 00 à 07 08 à 11 12 à 15 18 Délai de transmission (Liaison à l’ordinateur (SYSMAC--WAY)) 0000 à 9999 (BCD) : Défini dans les unités à 10 ms. (Les autres configurations provoqueraient une erreur non fatale et l’AR 1302 serait activé). Numéro de station (Liaison à l’ordinateur (SYSMAC--WAY)) 00 à 31 (BCD) (Les autres configurations provoqueraient une erreur non fatale et l’AR 1302 serait activé). Valide le code de démarrage (RS-232C, enregistré lorsque les bits de 12 à 15 de la DM 6650 sont réglés sur 1) 0 : Désactive 1 : Valide Valide le code de fin (RS-232C, enregistré lorsque les bits de 12 à 15 de la DM 6650 sont réglés sur 1.) 0 : Désactive (nombre d’octets reçus) 1 : Valide (code de fin spécifié) 2 : CR, LF 221 Chapitre Fonctionnement de l’API de base et traitement des E/S Mots(s) DM 6654 Bit(s) 00 à 07 08 à 15 Fonction 1-2 Page Code de démarrage (enregistré lorsque les bits de 08 à 11 de la DM 6650 sont réglés sur 1). 00 : 256 octets 01 à FF : 1 à 255 octets Code de fin 221 Lorsque les bits 12 à 15 de la DM 6653 sont réglés sur 0 : 00 : 256 octets 01 à FF : 1 à 255 octets Lorsque les bits 12 à 15 de la DM 6653 sont réglés sur 1 : Configuration : 00 à FF (binaire) Configuration du journal d’erreurs (DM 6655) Les sélections suivantes sont effectives après leur transfert vers l’API. DM 6655 00 à 03 Style 0 : Décalage après 7 enregistrements d’erreurs 1 : Mémorise seulement les 7 premiers enregistrements 24 2àF 04 à 07 Les erreurs ne sont pas mémorisées si d’autres valeurs sont valides. Inutilisé. 08 à 11 Valide la surveillance de temps de cycle 0 : Détecte les cycles longs en tant qu’erreurs non fatales 1 : Ne détecte pas les cycles longs 12 à 15 Valide l’erreur batterie faible 0 : Génère une erreur non fatale pour une détection de batterie faible 1 : Ne génère pas d’erreur non fatale Rem. Lorsqu’une valeur est paramétrée en dehors des limites, réinitialiser la valeur afin de rester dans la plage autorisée. Il en résulte les conditions des communications suivantes : Modes de communication : Format des communications : Délai de transmission : Numéro de station : 1-2 Liaison à l’ordinateur (SYSMAC--WAY) Configurations standard (1 bit de lancement, données en 7 bits ; parité paire, 2 bits d’arrêt, 9 600 bps) Aucun 00 Fonctionnement de l’API de base et traitement des E/S Ce chapitre explique la configuration du Setup de l’API en ce qui concerne le fonctionnement de base et le traitement des E/S. 1-2-1 Mode démarrer Dans ce mode de fonctionnement, l’API démarrera dès que l’alimentation est activée et il se paramètre comme indiqué ci--dessous : Bit 15 0 DM6600 Appellation mode démarrer 00 : Sélecteur de mode console de programmation (Si non connecté : mode RUN ) 01 : Dernier mode de fonctionnement utilisé avant la désactivation de l’alimentation 02 : Mode réglé en bits 00 à 07 Mode démarrer (Bits 08 à 15 : Valide lorsque les bits 00 à 07 sont réglés sur 02) 00 : mode PROGRAM 01 : mode MONITOR 02 : mode RUN Par défaut : est réglé sur le sélecteur de mode console de programmation ou le mode RUN lorsque la console de programmation n’est pas connectée. 19 Chapitre Fonctionnement de l’API de base et traitement des E/S 1-2 Rem. Lorsque “l’indication mode démarrer” est réglé sur 00 et que le sélecteur 2 du micro--interrupteur de l’unité centrale du CPM2C est sur ON, le CPM2C entre automatiquement en mode RUN indépendamment de la configuration des commutateurs du mode Console de programmation. 1-2-2 Etat du bit de maintien Effectuer les sélections ci-dessous afin de déterminer si les bits de maintien d’état forcé (SR 25211) et/ou les bits de maintien IOM (SR 25212) doivent retenir l’état effectif des bits à la coupure de tension ou si cet état doit être effacé. Bit 15 DM6601 0 0 0 Configuration Toujours 00 SR 25211 0 : Etat supprimé 1 : Etat conservé Configuration SR 25212 0 : Etat supprimé 1 : Etat conservé Par défaut : Supprimés tous les deux Le bit de maintien d’état forcé (SR 25211) détermine si l’état de réglage/réinitialisation forcé est ou non conservé lors du changement du mode PROGRAM au mode MONITOR. Le bit de maintien IOM (SR 25212) détermine si l’état des bits IR et des bits LR est ou non conservé lorsque l’API démarre puis est arrêté. ! Attention Ne pas utiliser les bits d’état (DM 6601) (bit de maintien E/S et bit de maintien d’état forcé) si la coupure de l’alimentation du micro API excède le temps de sauvegarde de la mémoire alimentée par l’intermédiaire d’un condensateur interne. Si ce temps est dépassé, l’état de la mémoire est instable, même si les états bit de maintien E/S et bit de maintien d’état forcé sont utilisés. Si un fonctionnement en état de mémoire instable est tenté, des résultats imprévisibles peuvent apparaître. Rem. 1. La durée de sauvegarde de la mémoire du condensateur interne varie selon la température ambiante, mais est de 20 jours à 25_C. Se reporter aux caractéristiques techniques du matériel pour plus d’informations. 2. La durée de sauvegarde de la mémoire suppose que le condensateur interne soit entièrement chargé avant la coupure de l’alimentation. Le chargement total du condensateur nécessite qu’il soit alimenté par l’unité centrale pendant au moins 15 minutes. 1-2-3 Mémoire du programme protégé en écriture Dans les API CPM1, CPM1A, CPM2A et CPM2C la mémoire du programme est protégée en paramétrant les bits 00 à 03 des zones de DM 6602 à 0. Les bits 04 20 Chapitre Fonctionnement de l’API de base et traitement des E/S 1-2 à 07 déterminent si les messages de la Console de programmation doivent s’afficher en anglais ou en japonais. Bit 15 DM6602 0 0 0 Toujours 00 Messages de la Console de programmation 0 : Anglais 1 : Japonais Mémoire du programme 0 : Non protégé en écriture 1 : Protégé en écriture Par défaut : Affiche l’anglais, non protégé en écriture Rem. La zone DM 6602 peut toujours être modifiée après que la mémoire de programme soit protégée en écriture en paramétrant les bits 04 à 07 des zones DM 6602 à 1. 1-2-4 Temps d’utilisation du port RS-232C (CPM2A/CPM2C/SRM1(-V2) uniquement) Les configurations suivantes sont utilisées pour déterminer le pourcentage de temps de cycle consacré à l’utilisation du port RS-232C. Bit 15 0 DM6616 Valide paramétrage temps d’utilisation 00 : Désactivé (5% utilisé) 01 : Valide (configuration en bits 00 à 07 utilisés) Temps d’utilisation (%, valide avec les bits 08 à 15 sur 01) 00 à 99 (BCD, deux digits) Par défaut : 5% du temps de cycle Exemple : Si la DM 6616 est réglée sur 0110, le port RS-232C interviendra pour 10% du temps de cycle. Le temps d’utilisation sera de 0,34 ms minimum. La totalité du temps d’utilisation ne sera pas utilisée à moins que le traitement le nécessitant existe. 1-2-5 Temps d’utilisation du port périphérique Les configurations suivantes servent à déterminer le pourcentage de temps de cycle consacré à l’utilisation du port périphérique. Bit 15 0 DM6617 Valide paramétrage du temps d’utilisation 00 : Désactive (5% utilisé) 01 : Valide (configuration en bits 00 à 07 utilisés) Temps d’utilisation (%, valide avec les bits 08 à 15 sur 01) 00 à 99 (BCD, deux digits) Par défaut : 5% du temps de cycle 21 Chapitre Fonctionnement de l’API de base et traitement des E/S 1-2 Exemple : Si la DM 6617 est réglée sur 0115, le port périphérique interviendra pour 15% du temps de cycle. Le temps d’utilisation sera de 0,34 ms minimum. La totalité du temps d’utilisation ne sera pas utilisée à moins que le traitement le nécessitant existe. 1-2-6 Temps de surveillance de cycle Bit 15 0 DM6618 Valide temps de surveillance de cycle 00 : Désactive la configuration (temps fixé à 120 ms) 01 : Valide paramétrage en 00 à 07 ; unités :10 ms 02 : Valide paramétrage en 00 à 07 ; unités :100 ms 03 : Valide paramétrage en 00 à 07 ; unités :1 s Configuration temps de surveillance de cycle (Lorsque les bits 08 à 15 ne sont pas 00) 00 à 99 (2 digits BCD ; unités définies en bits 08 à 15). Par défaut : 120 ms. Le temps de surveillance de cycle est utilisé pour vérifier les temps de cycle extrêmement longs qui peuvent survenir lorsque le programme effectue une boucle ininterrompue. Lorsque le temps de cycle dépasse la valeur paramétrée de surveillance de cycle, une erreur fatale (FALS 9F) est générée. Rem. 22 1. Les unités utilisées pour les temps de cycle maximaux et actuels enregistrés dans la zone AR (AR 14 et AR 15) sont déterminées par la configuration du temps de surveillance de cycle dans la DM 6618, comme indiqué ci--dessous : Bits 08 à 15 réglés sur 01 : 0,1 ms Bits 08 à 15 réglés sur 02 : 1 ms Bits 08 à 15 réglés sur 03 : 10 ms 2. Le temps de cycle est d’1 s ou plus, la lecture du temps de cycle provenant des périphériques de programmation sera de 999,9 ms. Les bons temps de cycle maximaux et actuels seront enregistrés dans la zone AR. Exemple Si 0230 est réglé dans la DM 6618, une erreur FALS 9F ne surviendra pas tant que le temps de cycle ne dépasse pas 3 s. Si le temps de cycle actuel est de 2,59 s, le temps de cycle actuel mémorisé dans la zone AR sera de 2590 (ms), mais la lecture du temps de cycle provenant des périphériques de programmation sera de 999,9 ms. Une erreur “fin de temps de cycle” (non fatale) est générée lorsque le temps de cycle dépasse 100 ms à moins que la détection des temps de cycle long soit désactivée depuis la configuration de la DM 6655. Chapitre Fonctionnement de l’API de base et traitement des E/S 1-2 1-2-7 Temps de cycle minimal Effectuer les configurations décrites ci--dessous pour standardiser le temps de cycle et pour éliminer les variations de temps de réponse des E/S en paramétrant le temps de cycle au minimum Bit 15 0 DM6619 Temps de cycle (4 digits BCD) 0000 : Temps de cycle variable 0001 à 9999 : Temps de cycle minimal (Unité : 1 ms) Par défaut : Temps de cycle variable Lorsque le temps de cycle réel est plus court que le temps de cycle minimum, le déroulement attendra jusqu’à l’expiration du temps de cycle minimal. Par contre, lorsque le temps de cycle réel est plus long que le temps de cycle minimum, le déroulement poursuivra selon le temps de cycle réel. L’AR 2405 sera activé si le temps de cycle minimum est dépassé. 1-2-8 Constantes de temps d’entrée (filtrage) Effectuer la configuration présentée ci--dessous afin de régler le temps à partir du moment où les entrées réelles provenant de l’unité d’entrée c.c. sont activées ou non jusqu’au moment où les bits d’entrée correspondant sont miss à jour. En augmentant la constante de temps d’entrée cela réduit les effets des perturbations et parasites externes. Entrée telle qu’un fin de course Etat du bit d’entrée t t Constante de temps d’entrée La configuration du SRM1(-V2) est différente. Les API CPM1/CPM1A Régler les constantes de temps d’entrée pour les entrées des CPM1/CPM1A provenant de périphérique de programmation. Constantes de temps d’entrée pour IR 000 Bit 15 0 DM 6620 Constante de temps pour IR 00007 à IR 00011 (1 digit BCD ; voir ci--dessous) Constante de temps pour IR 00005 à IR 00006 (1 digit BCD ; voir ci--dessous) Constante de temps pour IR 00003 à IR 00004 (1 digit BCD ; voir ci--dessous) Constante de temps pour IR 00000 à IR 00002 (1 digit BCD ; voir ci--dessous) Par défaut : 0000 (8 ms pour chacun) 23 Chapitre Fonctionnement de l’API de base et traitement des E/S 1-2 Constantes de temps d’entrée pour IR 001 à IR 009 DM 6621 : IR 001 et IR 002 DM 6622 : IR 003 et IR 004 DM 6623 : IR 005 et IR 006 DM 6624 : IR 007 et IR 008 DM 6625 : IR 009 Bit 15 0 DM 6621 à DM 6625 Constante de temps pour IR 002, IR 004, IR 006, et IR 008 Constante de temps pour IR 001, IR 003, IR 005, IR 007, et IR 009 Par défaut : 0000 (8 ms pour chacun) Les neuf configurations possibles pour la constante de temps d’entrée sont présentées ci--dessous. Régler seulement au digit le plus proche pour chaque paramétrage du IR 000. 00 : 8 ms 01 : 1 ms 02 : 2 ms 03 : 4 ms 04 : 8 ms 05 : 16 ms 06 : 32 ms 07 : 64 ms 08 : 128 ms Le temps de réponse d’E/S des CPM1/CPM1A est la constante de temps d’entrée (de 1 ms à 128 ms ; par défaut à 8 ms) + le temps de cycle. Pour plus d’informations se reporter au paragraphe 8-1 Temps de cycle des CPM1/CPM1A et temps de réponse d’E/S. Les API CPM2A/CPM2C Régler les constantes de temps d’entrée pour les entrées des CPM2A/CPM2C provenant des périphériques de programmation. Constantes de temps d’entrée pour IR 000 Bit 15 0 DM 6620 Constante de temps pour IR 00007 à IR 00011 (1 digit BCD ; voir ci--dessous) Constante de temps pour IR 00005 à IR 00006 (1 digit BCD ; voir ci--dessous) Constante de temps pour IR 00003 à IR 00004 (1 digit BCD ; voir ci--dessous) Constante de temps pour IR 00000 à IR 00002 (1 digit BCD ; voir ci--dessous) Par défaut : 0000 (10 ms pour chacun) Constantes de temps d’entrée pour IR 001 à IR 009 DM 6621 : IR 001 et IR 002 DM 6622 : IR 003 et IR 004 DM 6623 : IR 005 et IR 006 DM 6624 : IR 007 et IR 008 DM 6625 : IR 009 Bit 15 0 DM 6621 à DM 6625 Constante de temps pour IR 002, IR 004, IR 006, et IR 008 Constante de temps pour IR 001, IR 003, IR 005, IR 007, et IR 009 Par défaut : 0000 (10 ms pour chacun) Les neuf configurations possibles pour la constante de temps d’entrée sont présentées ci--dessous. Régler seulement au digit le plus proche pour chaque paramétrage du IR 000. 00 : 10 ms 01 : 1 ms 02 : 2 ms 03 : 3 ms 04 : 5 ms 05 : 10 ms 06 : 20 ms 07 : 40 ms 08 : 80 ms 1-2-9 Configurations du journal d’erreurs Détection d’erreur et fonctionnement du journal d’erreurs (DM 6655) Effectuer la configuration présentée ci--dessous pour déterminer si une erreur non fatale a ou non été générée lorsque le temps de cycle dépasse 100 ms ou 24 Chapitre Fonctionnement de l’API de base et traitement des E/S 1-2 lorsque la tension de la batterie intégrée chute (CPM2A/CPM2C uniquement), et régler le moyen de mémoriser les enregistrements dans le journal d’erreurs lorsque des erreurs surviennent. Bit 15 DM6655 Détection de tension batterie faible 0 : Détecte 1 : Ne détecte pas 0 0 Toujours 0 Détection de fin de temps de cycle 0 : Détecte 1 : Ne détecte pas Méthode de mémorisation du journal d’erreurs 0 : Enregistrement d’erreurs concerne toujours la mémorisation des 7 dernières erreurs (anciennes erreurs détectées). 1 : Seulement les 7 premiers enregistrements d’erreurs mémorisés (aucune erreur mémorisée au--delà de ce point). 2 à F : Enregistrement d’erreurs non mémorisé. Par défaut : Tension de batterie faible et temps de cycle concernant la détection d’erreurs et l’enregistrement d’erreurs mémorisés pour les 7 erreurs les plus récentes. Erreurs de batterie et erreurs de dépassement de temps de cycle sont des erreurs non fatales. Pour plus d’informations sur le journal d’erreurs, se reporter au Chapitre 9 Dépannage. Rem. L’erreur batterie faible concerne uniquement les CPM2A/CPM2C. Ce digit n’est pas utilisé dans les API CPM1/CPM1A/SRM1(-V2) qui ne sont pas équipés d’une batterie. 25 CHAPITRE 2 Caractéristiques spécifiques Ce chapitre explique les caractéristiques spécifiques aux CPM1, CPM1A, CPM2A, CPM2C et SRM1(-V2). 2-1 2-2 2-3 2-4 2-5 2-6 2-7 2-8 2-9 2-10 2-11 2-12 2-13 2-14 2-15 2-16 2-17 Fonctions d’interruption des CPM2A/CPM2C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-1-1 Entrées d’interruption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-1-2 Interruptions par temporisation cyclique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Compteurs à grande vitesse du CPM2A/CPM2C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-2-1 Utilisation des compteurs à grande vitesse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-2-2 Entrées d’interruption en mode compteur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Fonctions d’interruption du CPM1/CPM1A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-3-1 Types d’interruptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-3-2 Entrées d’interruption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-3-3 Masquage de toutes les interruptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-3-4 Interruptions par temporisation cyclique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-3-5 Interruptions du compteur à grande vitesse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Fonctions d’interruption du SRM1(-V2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-4-1 Types d’interruptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-4-2 Interruptions par temporisation cyclique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Fonctions de sortie d’impulsions du CPM2A/CPM2C . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-5-1 Utilisation des sorties d’impulsions monophasées sans accélération ni décélération (Rapport cyclique fixe) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-5-2 Utilisation des sorties d’impulsions avec rapport cyclique variable (PWM) . . . 2-5-3 Utilisation des sorties d’impulsions avec accélération et décélération trapézoïdales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Fonctions de la sortie d’impulsions du CPM1A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-6-1 Exemple de programmation en mode continu . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-6-2 Exemple de programmation en mode indépendant . . . . . . . . . . . . . . . . . . . . . . . 2-6-3 Utilisation des instructions de la sortie d’impulsions . . . . . . . . . . . . . . . . . . . . . 2-6-4 Modification de la fréquence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-6-5 Interruption de la sortie d’impulsions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Commande d’impulsions synchronisée (CPM2A/CPM2C uniquement) . . . . . . . . . . . . . Fonctions analogiques d’E/S (CPM1/CPM1A/CPM2A uniquement) . . . . . . . . . . . . . . . . Fonctions esclave d’E/S du CompoBus/S (CPM1A/CPM2A uniquement) . . . . . . . . . . . Fonctions maître d’E/S du CompoBus/S (SRM1(-V2) uniquement) . . . . . . . . . . . . . . . . Commandes analogiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-11-1 Commandes analogiques CPM1/CPM1A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-11-2 Commandes analogiques du CPM2A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Entrées de capture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-12-1 Entrées de capture des CPM1/CPM1A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-12-2 Entrées de capture des CPM2A/CPM2C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Fonction de la macro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Calcul avec les données binaires signées . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-14-1 Définition de données binaires signées . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-14-2 Drapeaux arithmétiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-14-3 Réception des données binaires signées en utilisant les valeurs décimales . . . . Détections de fronts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Instructions d’expansion (CPM2A/CPM2C/SRM1(-V2) uniquement) . . . . . . . . . . . . . . . 2-16-1 Les instructions d’expansion du CPM2A/CPM2C . . . . . . . . . . . . . . . . . . . . . . . 2-16-2 Instruction d’expansion du SRM1(-V2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Utilisation de la fonction d’horloge des CPM2A/CPM2C . . . . . . . . . . . . . . . . . . . . . . . . 2-17-1 Mots de zone de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-17-2 Configuration du temps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 30 37 43 46 67 76 76 79 84 85 87 96 96 96 99 104 115 120 134 135 135 135 136 136 137 149 149 149 151 151 152 153 153 155 158 159 160 160 160 161 162 163 164 164 164 165 27 Fonctions d’interruption des CPM2A/CPM2C 2-1 Chapitre 2-1 Fonctions d’interruption des CPM2A/CPM2C Des interruptions peuvent être désactivées temporairement lorsque l’édition en ligne est effectuée pendant le fonctionnement, ou lorsque le STUP(-- --) est exécuté pour modifier des configurations. Les CPM2A et les CPM2C permettent les types de traitement d’interruption suivants : Entrées d’interruption Les programmes d’interruption sont exécutés lorsque les entrées de l’unité centrale (00003 à 00006*) passent de l’état OFF à ON. Les numéros 000 à 003* des sous--programmes d’interruption sont attribués aux points d’entrée 00003 à 00006*. Types d’interruptions Rem. *Les points d’entrée 00005 et 00006 n’existent pas dans les unités centrales de CPM2C ne comportant que 10 points d’entrée/sortie. Dans ces unités centrales les numéros 000 et 001 des sous--programmes d’interruption sont attribués aux points d’entrée 00003 et 00004. Interruption par temporisation cyclique Les programmes d’interruption par temporisation cyclique sont exécutés avec une précision de 0,1 ms. Les numéros 000 à 049 des sous--programmes d’interruption sont attribués par instructions. Nombre d’interruptions en utilisant les entrées d’interruption (mode compteur) Les signaux d’entrée de l’unité centrale (00003 à 00006*) sont comptés à grande vitesse (2 kHz). Dès la détection du comptage, le programme normal est arrêté et un programme d’interruption est exécuté. Les numéros 000 à 003* des sous--programmes d’interruption sont attribués pour entrer les points 00003 à 00006*. Rem. *Les points d’entrée 00005 et 00006 n’existent pas dans les unités centrales de CPM2C ne comportant que 10 points d’entrée/sortie. Dans ces unités centrales les numéros 000 et 001 des sous--programme d’interruption sont attribués pour entrer les points 00003 et 00004. Vérification du nombre des interruptions en utilisant le compteur à grande vitesse Les entrées d’impulsion aux points d’entrée de l’unité centrale (00000 à 00002) sont comptées à grande vitesse (20 kHz/5 kHz), et un programme d’interruption est exécuté lorsque la valeur en cours atteint la valeur recherchée (consigne) ou se situe dans un intervalle fixé. Les numéros 000 à 049 des sous--programmes d’interruption sont attribués par des instructions. Programmes d’interruptions d’écriture 28 Les programmes d’interruption sont définis comme sous--programmes d’interruption dans le programme utilisateur. Un sous--programme d’interruption est Chapitre Fonctions d’interruption des CPM2A/CPM2C 2-1 défini par SBN(92) et RET(93), simplement comme un sous--programme ordinaire. Il est écrit à la fin du programme normal. Programme normal Programme d’interruption Sous--programme FIN 1, 2, 3... Une nouvelle interruption peut être définie dans un sous--programme d’interruption, et une interruption existante peut être annulée. Pour tout sous--programme d’interruption donné, il est impossible d’écrire un autre sous--programme pour traiter une autre interruption. Ne pas imbriquer un autre sous--programme d’interruption entre les instructions SBN(92) et RET(93). Il est impossible d’écrire un sous--programme dans un sous--programme d’interruption. Ne pas imbriquer un sous--programme normal entre les instructions SBN(92) et RET(93). Il est impossible d’écrire un sous--programme d’interruption dans un sous-programme normal. Ne pas imbriquer un sous--programme d’interruption entre les instructions SBN(92) et RET(93). Lorsqu’un sous--programme d’interruption est défini, une erreur SBS UNDEFD se produit pendant le contrôle de programme mais l’exécution sera normale. ! Attention Bien que l’IORF(97) puisse être utilisé dans des sous--programmes d’interruption, faire attention à l’intervalle entre les exécutions de l’IORF(97). Lorsque l’IORF(97) est exécuté trop fréquemment, une erreur fatale du système peut se produire (FALS 9F), arrêtant le fonctionnement. L’intervalle entre les exécutions de l’IORF(97) devrait être au moins de 1,3 ms + le temps d’exécution total du sous--programme d’interruption. L’ordre de priorité pour des interruptions est le suivant : Ordre de priorité des interruptions Entrées d’interruption = Numéro d’interruptions > Interruption par temporisation cyclique = Compteur à grande vitesse vérifiant le nombre d’interruptions Lorsqu’une interruption avec une priorité plus élevée se produit pendant l’exécution du programme d’interruption, l’interruption actuellement traitée s’arrête et la nouvelle interruption est traitée en priorité. L’interruption initiale sera alors reprise après le traitement d’interruption de haute--priorité. Lorsque des interruptions de la même priorité sont produites simultanément, elles sont traitées dans l’ordre suivant : Entrée 0 d’interruption ! Entrée 1 d’interruption ! Entrée 2 d’interruption ! Entrée 3 d’interruption (incluant le mode nombre d’interruptions) 29 Chapitre Fonctions d’interruption des CPM2A/CPM2C 2-1 Interruption par temporisation cyclique ! interruptions compteur à grande vitesse 2-1-1 Entrées d’interruption En basculant les points d’entrée intégrés de l’unité centrale de l’état OFF en ON, le programme normal s’arrête et le programme d’interruption est exécuté. Les entrées d’interruption sont attribuées à quatre points (00003 à 00006*). Rem. *Les points d’entrée 00005 et 00006 n’existent pas dans des unités centrales de CPM2C ne comportant que 10 points d’entrée/sortie. Entrée d’interruption Programme normal Programme d’interruption Sous--programme FIN Numéros d’entrées (Rem. 1) Rem. 30 Numéro d’inter-ruptions 00003 0 Numéro de sous-programme (Rem. 2) 000 00004 1 001 00005 2 002 00006 3 003 Largeur minimale du signal d’entrée 50 "s Temps de réponse d’interruption 0,3 ms (à partir du moment où ll’entrée entrée passe à ON jusqu’ à l’exécution du programme) 1. Les numéros d’entrée de 00003 à 00006 peuvent être utilisés pour n’importe laquelle des fonctions suivantes : entrées d’interruption, entrées d’interruption (mode compteur), ou interruption de capture. Ces numéros peuvent être également utilisées en tant qu’entrées normales, s’ils ne sont pas déjà utilisés pour ces entrées d’interruption. 2. Les sous--programme de 000 à 003 sont les numéros de sous--programmes des entrées d’interruption qui ont été générés. Ces numéros peuvent être également utilisées en tant qu’entrées normales, s’ils ne sont pas utilisés pour ces entrées d’interruption. Chapitre Fonctions d’interruption des CPM2A/CPM2C 2-1 Le tableau suivant montre les liens entre les entrées d’interruption et d’autres fonctions des API CPM2A/CPM2C. Fonction Rem. Entrées d’interruptions (mode compteur) Commande d’impulsion synchronisée Peut être utilisé simultanément Entrées d’interruptions Voir Rem. 1. Interruptions par temporisation cyclique Peut être utilisé simultanément Compteurs à grande vitesse Peut être utilisé simultanément Entrées d’interruptions (mode compteur) Voir Rem. 1. Sorties d’impulsion Peut être utilisé simultanément Entrée de capture Voir Rem. 1. Constante de temps de sortie Voir Rem. 2. Horloge Peut être utilisé simultanément 1. Le même numéro d’entrée (de 00003 à 00006) ne peut pas être utilisé pour plus d’une des fonctions suivantes : entrées d’interruption, entrées d’interruption (mode compteur) ou interruption de capture. 2. Lorsque les entrées de 00003 à 00006 sont définies comme entrées d’interruption (mode compteur), les constantes de temps d’entrée pour les entrées appropriées sont désactivées. Les constantes de temps d’entrée persistent cependant, pour les valeurs afin de rafraîchir la zone appropriée de relais d’entrée. Procédure pour l’utilisation des entrées d’interruption Définir le numéro d’entrée d’interruption Câblage des entrées Lancer le Setup de l’API (DM 6628) Créer un programme en schéma à contacts Numéro d’entrées : 00003 à 00006 Utiliser comme entrées d’interruption (mode d’entrée d’interruption ou mode compteur) INT(89) : Pour les entrées d’interruption masquées et non masquées. SBN(92) et RET(93) : Pour la création de sous--programmes d’interruption. 31 Chapitre Fonctions d’interruption des CPM2A/CPM2C Entrée d’interruption 2-1 Génération de l’interruption Entrée 0 d’interruption Programme en schéma à contacts Exécution de sous--programme spécifé Instruction INT(89) (92) Autorisation d’utiliser l’entrée d’interruption Entrée 1 d’interruption (93) Entrée 2 d’interruption Entrée 3 d’interruption Setup de l’API DM 6628 Configuration du numéro d’entrée d’interruption Pour les entrées d’interruption (mode entrée d’interruption), le numéro des sous--programmes exécutés pour les numéros d’entrée sont fixés. Numéro d’entrées Numéro d’interruption 00003 0 Numéro de sous--programmes 000 00004 1 001 00005 2 002 00006 3 003 Le même numéro d’entrée (de 00003 à 00006) ne peut pas être utilisé pour plus d’une des fonctions suivantes : entrées d’interruption, entrées d’interruption (mode compteur) ou interruption de capture. Câblage des entrées Avec un CPM2A, câbler les bornes d’entrée comme montré dans l’illustration suivante. Numéro d’entrée 00003 : Entrée 0 d’interruption Numéro d’entrée 00004 : Entrée 1 d’interruption Numéro d’entrée 00005 : Entrée 2 d’interruption Numéro d’entrée 00006 : Entrée 3 d’interruption 32 Chapitre Fonctions d’interruption des CPM2A/CPM2C 2-1 Avec un CPM2C, câbler les bornes d’entrée comme montré dans l’illustration suivante : Numéros de bornes du bornier des entrées Numéros de broches du connecteur des entrées 00006 00005 00004 00003 00006 00005 00004 00003 Rem. Se reporter au manuel de programmation de votre unité centrale pour plus d’informations sur le câblage. Setup de l’API Le tableau ci--après présente la configuration des zones du Setup de l’API, concernant l’utilisation des entrées d’interruption. Mots DM 6628 Bits 00 à 03 04 à 07 08 à 11 12 à 15 Fonction Configuration d’interruption pour l’entrée 00003 Configuration d’interruption pour l’entrée 00004 Configuration d’interruption pour l’entrée 00005* Configuration d’interruption pour l’entrée 00006* 0 : Entrée normale Para-métrage 1 1 : Entrée d’interruption (mode d’interruption ou mode compteur) 2 : Entrée capture Rem. *Les points d’entrée de 00005 et 00006 existent pour les unités centrales du CPM2C ne comportant que 10 points d’entrée/sortie. Les configurations seront effectives au changement de mode (passage du mode PROGRAM au mode MONITOR/RUN) ou lorsque l’alimentation du CPM2A/CPM2C est sur ON. Programmation en schéma à contacts Le tableau suivant montre le fonctionnement des instructions par rapport à la commande d’entrée d’interruption. 33 Chapitre Fonctions d’interruption des CPM2A/CPM2C Instruction Commande (@)INT(89) Masquage / non masquage des entrées d’interruption Suppression des entrées d’interruption Lecture de l’état du masque en cours Masquage de toutes les interruptions Non masquage de toutes les interruptions 2-1 Fonctionnement Interdit ou autorise des interruptions spécifiques. Supprime la cause d’une entrée d’interruption interdite. Lit l’état d’autorisation/interdiction d’une entrée d’interruption. Interdit toutes les interruptions, y compris les entrées d’interruption, les interruptions par temporisations cycliques, les compteurs à grande vitesse, etc. Autorise toutes les interruptions, y compris les entrées d’interruption, les interruptions par temporisations cycliques, les compteurs à grande vitesse, etc. Masquage ou non masquage des entrées d’interruptions Cette fonction est utilisée pour masquer ou ne pas masquer les numéros d’entrée de 00003 à 00006 (l’entrée d’interruption de 0 à 3). (@)INT(89) 000 000 C2 Appellation de commande d’interruption (000 : Masquage / non masquage des entrées d’interruption) Fixé à 000. Vérification des mots de données Personnalise/mémorise 0 Personnalise l’entrée 00006 (entrée 3 d’interruption) Personnalise l’entrée 00005 (entrée 2 d’interruption) Personnalise l’entrée 00004 (entrée 1 d’interruption) Personnalise l’entrée 00003 (entrée 0 d’interruption) 0 : Suppression du masque (entrée d’interruption autorisée) 1 : Définition du masque (entrée d’interruption interdite) Toutes les entrées d’interruption sont interdites au début du fonctionnement (en mode de PROGRAM ou en mode RUN/MONITOR). Pour utiliser des entrées d’interruption, utiliser INT(89) l’autorisant. Suppression des entrées d’interruption Cette fonction est utilisée pour supprimer les nombres d’entrée de 00003 à 00006 (entrées d’interruption entre 0 à 3). Puisque des entrées d’interruption sont enregistrées, les interruptions masquées sont traitées après que le masque soit enlevé, à moins qu’elles soient d’abord supprimées. Utiliser INT(89) pour supprimer la cause des entrées d’interruption afin qu’elles ne soient pas 34 Chapitre Fonctions d’interruption des CPM2A/CPM2C 2-1 exécutées lorsque des entrées d’interruption sont autorisées (c.--à--d. lorsque le masque est enlevé). (@)INT(89) 001 000 C2 Appellation de commande d’interruption (001 : Suppression des entrées d’interruption) Fixé à 000. Vérification des mots de données Personnalise/mémorise 0 Personnalise l’entrée 00006 (entrée 3 d’interruption) Personnalise l’entrée 00005 (entrée 2 d’interruption) Personnalise l’entrée 00004 (entrée 1 d’interruption) Personnalise l’entrée 00003 (entrée 0 d’interruption) 0 : Conserve la cause de l’entrée d’interruption 1 : Supprime la cause de l’entrée d’interruption Une cause est enregistrée pour chaque entrée d’interruption, à chaque entrée d’interruption masquées. Lecture de l’état du masque en cours Cette fonction est utilisée pour lire l’état du masque en cours pour les numéros d’entrée de 00003 à 00006 (entrées d’interruption de 0 à 3). (@)INT(89) 002 000 C2 Appellation de commande d’interruption (002 : Lecture de l’état du masque en cours) Fixé à 000 Vérification des mots de données Personnalise/mémorise 0 Personnalise l’entrée 00006 (entrée 3 d’interruption) Personnalise l’entrée 00005 (entrée 2 d’interruption) Personnalise l’entrée 00004 (entrée 1 d’interruption) Personnalise l’entrée 00003 (entrée 0 d’interruption) 0 : Masque supprimé (entrée d’interruption autorisée) 1 : Masque défini (entrée d’interruption interdite) Masquage ou non masquage de toutes les interruptions Cette fonction est utilisée pour masquer ou ne pas masquer tout traitement d’interruption, y compris les entrées d’interruption (mode entrée d’interruption et mode compteur), les interruptions par temporisations cycliques et les compteurs à grande vitesse. Des entrées masquées sont enregistrées, mais ignorées. 35 Chapitre Fonctions d’interruption des CPM2A/CPM2C 2-1 Masquage de toutes les interruptions (@)INT(89) 1,0 000 000 Appellation de commande d’interruption (1,0 : Masquage de toutes les interruptions) Fixé à 000. Fixé à 000. Non masquage de toutes les interruptions (@)INT(89) 200 000 000 Appellation de commande d’interruption (200 : Non masquage de toutes les interruptions) Fixé à 000. Fixé à 000. Le masquage ou le non masquage de toutes les interruptions peut ne pas être exécuté dans un sous--programme d’interruption. Si les causes pour des interruptions se produisent tandis que toutes les interruptions sont masquées, les causes seront enregistrées pour chaque interruption mais le traitement d’interruption ne sera pas exécuté. Lorsque le “non masquage de toutes les interruptions” est exécuté, le traitement est alors suivi selon l’état du masque d’interruption du moment. Les masques d’interruption ne peuvent pas être supprimés simplement en exécutant le “non masquage de toutes les interruptions”. L’exécution du “non masquage de toutes les interruptions” restaure simplement l’état qui était effectif avant l’exécution du “masquage de toutes les interruptions”. Rem. INT(89) doit être utilisé d’abord avec le “masquage de toutes les interruptions” puis avec le “non masquage de toutes les interruptions”. Exemple de fonctionnement Explication Dans cet exemple, un sous--programme d’interruption est exécuté en basculant l’entrée 00003 de l’état OFF à l’état ON. Le sous--programme d’interruption ajoute 1 à DM 0000. Câblage Le schéma suivant montre le câblage d’entrée dans le CPM2A. Périphérique d’entrée 36 Chapitre Fonctions d’interruption des CPM2A/CPM2C 2-1 Le schéma suivant montre le câblage d’entrée dans le CPM2C. Bornier d’entrée Connecteur d’entrée Périphérique d’entrée Périphérique d’entrée Setup de l’API 15 DM 6628 0 0 0 0 1 L’entrée 00003 est utilisée comme entrée d’interruption (les entrées 00004 à 00006 sont utilisées en tant qu’entrées normales). Programmation Sur ON pour 1 cycle au début du fonctionnement Efface la zone de l’incrément (DM 0000). (89) Autorise les interruptions pour l’entrée 0 d’interruption (entrée 00003). Toujours ON Exécuté lorsque l’entrée 00003 passe de l’état OFF à ON. 2-1-2 Interruptions par temporisation cyclique Une temporisation cyclique (précision : 0,1 ms.) est maintenue et peut être réglée de 0,5 ms à 319 968 ms. Il existe deux modes d’interruption : le mode à une impulsion, pour lequel une interruption simple est exécutée lorsque la 37 Chapitre Fonctions d’interruption des CPM2A/CPM2C 2-1 période de temps est révolue, et le mode interruption planifiée pour lequel des interruptions sont exécutées à intervalles réguliers. Interruption par temporisation cyclique Programme normal Sous--programme Programme d’interruption FIN Mode à une impulsion Fonctionnement Installation Temps de réponse de l’interruption Mode interruption planifiée L’interruption est exécutée L’interruption est exécutée à lorsque le temps s’est écoulé. intervalles réguliers. 0,5 à 316 968 ms (Unité : 0,1 ms) 0,3 ms (à partir du temps écoulé jusqu’ à l’exécution du programme) Le tableau suivant montre les liens entre les interruptions par temporisations cycliques et les autres fonctions des API CPM2A/CPM2C. Fonction 38 Commande d’impulsion synchronisée Interruptions par temporisations cycliques Peut être utilisé simultanément Entrées d’interruptions Peut être utilisé simultanément Interruptions par temporisations cycliques Compteur à grande vitesse --- Entrées d’interruptions (mode compteur) Sorties d’impulsion Peut être utilisé simultanément Entrée de capture Peut être utilisé simultanément Constante de temps de sortie Peut être utilisé simultanément Horloge Peut être utilisé simultanément Peut être utilisé simultanément Peut être utilisé simultanément Chapitre Fonctions d’interruption des CPM2A/CPM2C 2-1 Procédure pour l’emploi des interruptions par temporisations cycliques Sélectionner le mode L’un ou l’autre mode : mode à une impulsion ou mode à interruption planifiée Programmation en schéma à contacts STIM(69) Temporisation cyclique L’interruption est exécutée Programme en schéma à contacts STIM(69) Le sous--programme indiqué est exécuté. Instructions de l’INTERVAL TIMER SBN(92) Début du temporisation Mode à 1 impulsion Mode interruption planifiée RET(93) Lecture du temps écoulé Sélection du mode Sélectionner l’un ou l’autre des modes, à une impulsion ou à interruption planifiée. Mode à une impulsion programme normal Programme normal Programme d’interruption Interruption par temporisation cyclique Fonction temporisation cyclique Début de la temporisation Mode interruption planifiée Programme normal Programme d’interruption Interruption par temporisation cyclique Fonction temporisation cyclique Début de la temporisation Dans le mode interruption planifiée, la temporisation est remise à zéro chaque fois que le programme d’interruption est appelé à la fin du temps écoulé et la temporisation refonctionne. 39 Chapitre Fonctions d’interruption des CPM2A/CPM2C 2-1 Faire attention au temps d’exécution du programme d’interruption et à l’interruption par temporisation cyclique planifiée. Lorsque le temps d’exécution du programme d’interruption excède la temporisation cyclique de l’installation, les interruptions planifiées ne peuvent pas être correctement exécutées. Programmation en schéma à contacts Le tableau suivant montre les fonctions d’instruction liées à la commande d’entrée d’interruption : Instruction Commande (@)STIM(69) Début de la temporisation d’une impulsion Début de la temporisation d’une interruption planifiée Lecture de la temporisation de la PV Arrêt de la temporisation (@)INT(89) Masquage de toutes les interruptions Non masquage de toutes les interruptions Fonctionnement Commence la temporisation en mode à une impulsion Commence la temporisation cyclique en mode interruption planifiée Lit la temporisation de la PV Arrête le fonctionnement de temporisations Interdit toutes les interruptions, y compris les entrées d’interruption, les interruptions par temporisation cyclique, les compteurs à grande vitesse, etc. Autorise toutes les interruptions, y compris les entrées d’interruption, les interruptions par temporisation cyclique, les compteurs à grande vitesse, etc. Début des temporisations Cette fonction définit le mode (à une impulsion ou à interruption planifiée) et la SV du temporisateur, et lance la temporisation cyclique. Mode à une impulsion (@)STIM(69) 000 C2 C3 Désignation de la commande (000 : Début de la temporisation d’une impulsion) Premier mot de la temporisation SV Numéro de sous--programme (4 digits BCD : 0000 à 0049) Mode interruption planifiée (@)STIM(69) 003 C2 C3 Désignation de la commande (003 : Début de la temporisation d’interruption planifiée) Premier mot de la temporisation SV Numéro de sous--programme (4 digits de BCD) : 0000 à 0049 C2 Décrémentation d’après la valeur initiale (4 digits Hex) : 0000 à 9999 C2+1 Décrémentation de la temporisation cyclique (4 digits BCD ; unité : 0,1 ms) : 0005 à 0320 (0,5 à 32 ms) L’intervalle à compter de l’exécution de STIM(69) jusqu’à l’écoulement de la durée définie est calculé comme suit : (Contenu de mot C2) x (Contenu des mots C2 + 1) x 0,1 ms (0,5 à 319 968 ms) Lorsqu’une constante est définie pour le C2, cette valeur est prise comme valeur initiale pour la décrémentation, et la temporisation cyclique décrémentée commence à 10 (1 ms). La SV est simplement indiquée telle quelle, en unité ms). 40 Chapitre Fonctions d’interruption des CPM2A/CPM2C 2-1 Lecture de la PV de la temporisation Cette fonction lit les temporisations cycliques de la PV. (@)STIM(69) 006 Désignation de la commande (006 : Lecture de la temporisation de la PV) C2 C3 C2 C2+1 C3 Le nombre de décrémentation de la temporisation (4 digits Hex) Intervalle de temps décrémenté (4 digits BCD ; unité : 0,1 ms) Temps écoulé depuis la dernière décrémentation (4 digits BCD ; unité : 0,1 ms) Arrêt de la temporisation Cette fonction arrête la temporisation cyclique. (@)STIM(69) 010 Désignation de la commande (010 : Arrêt temporisation) 000 Fixé : 000 Fixé : 000 000 Masquage ou non masquage de toutes les interruptions Pour plus d’informations sur maquage / non masquage de toutes les interruptions, se reporter aux paragraphes 2-1-1 Entrées d’interruption et 7-12 Instructions commande d’interruption. 41 Chapitre Fonctions d’interruption des CPM2A/CPM2C 2-1 Exemple de fonctionnement Mode à une impulsion Explication Dans cet exemple, la temporisation commence lorsque l’état d’exécution (00005) passe de OFF à ON. Lorsque le temps (approx. 1 s) s’est écoulé, le sous--programme d’interruption est exécuté une fois. Lorsque le sous--programme d’interruption est exécuté, 1 est ajouté à DM 0000. Temps écoulé : 100 x 100 x 0,1 = 1 000 ms Programme ON pour 1 cycle au début du fonctionnement Efface la zone de l’incrément (DM 0000). Configuration de la décrémentation du compteur Compteur : 100 (0000 à 9999 BCD) Configuration de l’intervalle de comptage (69) (Conditions d’exécution) Configuration de l’intervalle de comptage : 10 ms (0005 à 0320 BCD) Commence la temporisation cyclique en mode à une impulsion. Toujours ON Exécute l’interruption qu’une fois le temps écoulé. 42 Chapitre Compteurs à grande vitesse du CPM2A/CPM2C 2-2 Mode interruption planifiée Explication Dans cet exemple, la temporisation commence lorsque l’état d’exécution (00005) passe de OFF à ON. Le sous--programme d’interruption est exécuté à chaque fois que le temps défini (approx. 1 s) est écoulé. A chaque fois que le sous--programme d’interruption est exécuté, 1 est ajouté à DM 0000. Temps écoulé : 100 x 100 x 0,1 = 1 000 ms Programme ON pour 1 cycle au début du fonctionnement Efface la zone de l’incrément (DM 0000). Configuration de la décrémentation du compteur Compteur : 100 (0000 à 9999 BCD) Configuration de l’intervalle de comptage (69) (Conditions d’exécution) Configuration intervalle de comptage : 10 ms (0005 à 0320 BCD) Commence la temporisation cyclique en mode interruption planifiée Toujours ON Exécute l’interruption à chaque fois que le temps est écoulé 2-2 Compteurs à grande vitesse du CPM2A/CPM2C Les unités centrales CPM2A et la plupart des unités centrales CPM2C ont cinq points pour les compteurs à grande vitesse : un point pour un compteur à grande vitesse avec une fréquence de réponse maximale de 20 kHz, et quatre points pour des entrées d’interruption (mode compteur). Les unités centrales des CPM2C avec 10 points d’entrée--sortie ont quatre points pour les compteurs à grande vitesse : un point pour un compteur à grande vitesse avec une fréquence de réponse maximale de 20 kHz, et trois points pour des entrées d’interruption (mode compteur). Compteurs à grande vitesse Compteur à grande vitesse Pas d’interruptions 1 point Interruptions vérification décompte Entrées d’interruptions (mode compteur) 4 points (2 dans l’UC du CPM2C avec 10 points d’E/S) de de Interruptions de comparaison de valeur à atteindre Interruptions de comparaison de plage. Pas d’interruptions Décompte des interruptions 43 Chapitre Compteurs à grande vitesse du CPM2A/CPM2C 2-2 Le CPM2A/CPM2C fournit un compteur à grande vitesse intégré et les entrées d’interruption intégrées. Types de compteurs à grande vitesse Compteur à grande vitesse Le compteur à grande vitesse intégré est un compteur basé sur les entrées intégrées aux points 00000 à 00002 de l’unité centrale. Le compteur à grande vitesse possède lui--même un point, et il peut fournir une incrémentation/décrémentation ou simplement un décompte d’incrémentation selon le paramétrage du mode. Numéro d’entrée. (Voir Rem.) 00000 00001 00002 Fréquence de réponse 5 kHz 20 kHz Mode entrée (valeur de décompte) Mode entrée bidirectionnelle (-8388608 à 8388607) Mode entrée d’impulsion et de sens (-8388608 à 8388607) Méthode de commande Interruptions de comparaison de p valeur à atteindre Interruptions de comparaison de plage Mode entrée d’impulsion avance/retour (-8388608 à 8388607) Mode incrément (0 à 16777215) Rem. Les points d’entrée non utilisés pour des entrées de décompte peuvent être utilisés en tant qu’entrées normales. Entrées d’interruption (Mode compteur) Les entrées d’interruption (mode compteur) sont des compteurs basés sur des entrées aux points intégrées 00003 à 00006 de l’unité centrale (00003 à 00005 dans les unités centrales de CPM2C avec 10 points d’entrée--sortie). Ces compteurs ont quatre points, et ils peuvent fournir un décompte d’incrémentation ou de décrémentation selon le paramétrage du mode. Puisque cette fonction utilise des entrées d’interruption pour le comptage, il est impossible d’utiliser les mêmes entrées pour d’autres entrées d’interruption. Numéro d’entrée (Voir Rem.) 00003 00004 00005 00006 Rem. Fréquence de réponse 2 kHz Mode d’entrée (valeur de décompte) Compteur p incrémental ( (0000 à FFFF) Méthode de commande Décompte p des i interruptions i Compteur décrémental (0000 à FFFF) 1. Les points d’entrée non utilisés pour des entrées de décompte sont utilisés en tant qu’entrées normales. 2. Les points d’entrée 00005 et 00006 n’existent pas dans les UC de CPM2C avec 10 points d’E/S. Interruptions de compteur à grande vitesse Interruptions par le compteur à grande vitesse (Interruptions de vérification de décompte) Interruptions de comparaison de valeur à atteindre Le décompte actuel est comparé à chaque valeur à atteindre dans l’ordre de leur enregistrement dans le tableau. Lorsque le décompte est identique à la valeur courante à atteindre, un sous--programme d’interruption est exécuté. Jusqu’à 44 Chapitre Compteurs à grande vitesse du CPM2A/CPM2C 2-2 16 valeurs à atteindre et sous--programmes d’interruption peuvent être enregistrés dans le tableau dans le sens incrémental ou décrémental. Décompte actuel Valeurs à atteindre dans le sens incrémental Valeurs à atteindre dans le sens décrémental Correspond à la valeur à atteindre pendant l’incrémentation du décompte Correspond à la valeur à atteindre pendant la décrémentation du décompte Temps Le traitement d’interruption peut être exécuté lorsque le décompte actuel atteint une valeur à atteindre dans le sens incrémental ou décrémental. Interruptions de comparaison de plage Le tableau de comparaison de plage contient jusqu’à huit plages dont chacune est définie par une limite inférieure et une limite supérieure, ainsi que par leurs nombres correspondants de sous--programme. Le sous--programme correspondant est appelé et est exécuté lorsque le décompte courant (la PV du compteur) est inclus dans la plage indiquée. Décompte de PV Limite 1 supérieure Limite 1 inférieure Limite 2 supérieure Limite 2 inférieure Remplit la condition 2 de comparaison de plage. Remplit la condition 1 de comparaison de plage. Remplit la condition 1 de comparaison de plage. Remplit la condition 2 de comparaison de plage. Le traitement d’interruption s’exécute lorsqu’une condition de comparaison de plage est satisfaite. En outre, lorsque la PV du compteur est dans la plage entre une limite supérieure et une limite inférieure, les bits correspondants (de 0 à 7) dans l’AR 11 seront activés. Décompte des d’interruptions par les entrées d’interruption (mode compteur) Un sous--programme d’interruption est exécuté chaque fois que la condition de décompte de PV égale à la SV du compteur est remplie (en mode incrémental mode) ou 0 (en mode décrémental). 45 Chapitre Compteurs à grande vitesse du CPM2A/CPM2C 2-2 2-2-1 Utilisation des compteurs à grande vitesse L’unité centrale de CPM2A/CPM2C possède un canal intégré pour un compteur à grande vitesse qui peut compter des entrées à une vitesse maximale de 20 kHz. Utiliser celui--ci en même temps que la fonction d’interruption permet de lancer la commande de comparaison de valeur à atteindre ou de comparaison de plage à exécuter sans déviation de la durée de cycle. Entrées compteur Entrée des mise à zéro Capteur Codeur rotatif Mode entrée Bidirectionnelle Numéro d’entrées 00000 Impulsion et sens Entrée Phase-A Entrée Incrément incrémental/décré mental Entrées CW Entrée des impulsions Entrées CCW Voir Rem. 1. Entrées d’impulsions Entrée Phase-B Entrées de direction Entrée Phase-Z (Entrée des mise à zéro) (Voir Rem. 1) 00001 00002 Méthode d’entrée Fréquence de réponse Entrée bidirectionnelles (4X) 5 kHz Entrée des phases Entrée des phases Entrée des phases Valeur du compteur --8388608 to 8388607 20 kHz 20 kHz 20 kHz Destination de stockage de PV de décompte (Voir Rem. 2.) Interruptions Comparaison de la valeur à atteindre Comparaison de plages Méthode de mise à zéro du compteur Mots de SR 248 (digit à l’extrême droite) et de SR 249 (digit à l’extrême gauche) 0 à 16777215 Jusqu’à 16 valeurs à atteindre et nombres de sous--programme d’interruption peuvent être enregistrés dans le sens incrémental ou décrémental Jusqu’à huit plages (avec des limites supérieures et inférieures) et nombres de sous--programme peuvent être enregistrés. Signal Phase--Z + remise à zéro par programme : Le compteur est remis à zéro si l’IR 00002 est activé alors que le SR 25200 est déjà sur ON. Remise à zéro par programme : Le compteur est remis à zéro lorsque le SR 25200 est activé. Rem. 1. Les points d’entrée non utilisés pour des entrées de décompte peuvent être utilisés en tant qu’entrées normales. 2. S’ils ne sont pas utilisés pour la destination de stockage de PV de décomptes, ces mots peuvent être utilisés en tant que mots IR normaux. 3. Le SR 25200 est lu une fois pour chaque cycle. Jusqu’à un cycle peut être exigé pour qu’une remise à zéro se produise sur le bord de la phase Z. Le tableau suivant montre les liens existant entre le compteur à grande vitesse et les autres fonctions du CPM2A/CPM2C. 46 Chapitre Compteurs à grande vitesse du CPM2A/CPM2C Fonction 2-2 Commande d’impulsion synchronisée Interruptions par temporisations cycliques inutilisable simultanément Entrées d’interruptions utilisable simultanément Interruptions par temporisations cycliques Compteur à grande vitesse utilisable simultanément Entrées d’interruptions (mode compteur) Sorties d’impulsion utilisable simultanément Entrée de capture utilisable simultanément Constante de temps d’entrée Voir Rem. Horloge utilisable simultanément ------ utilisable simultanément Rem. Lorsque les entrées de 00000 à 00002 sont définies comme compteur à grande vitesse, les constantes de temps d’entrée pour les entrées appropriées sont désactivées. Exemple de fonctionnement Définir le mode d’entrée et la méthode de réinitialisation Mode d’entrée : Entrée bidirectionnelle, impulsion + entrée de direction, entrée incrémental/décrémental, ou incrémentale Méthode de réinitialisation : Phase--Z + réinitialisation par programme, ou réinitialisation par programme Aucune interruption (lecture de la PV du compteur à grande vitesse, ou lecture des résultats de comparaison de plage) Définir les interruptions à utiliser Interruptions de comparaison de valeur à atteindre Interruptions de comparaison de plage Câblage des entrées Numéros d’entrées : 00000, 00001, 00002 Configuration du compteur à grande vitesse Lancer le Setup de l’API (DM 6642) Mode d’entrée : Entrée bidirectionnelle, impulsion + entrée de direction, entrée incrémental/décrémental, ou incrémentale Méthode de réinitialisation : Phase--Z + réinitialisation par programme, ou réinitialisation par programme Créer un programme en schéma à contacts CTBL(63) : Enregistrer le tableau de comparaison, démarrage de la comparaison INI(61) : Changer la PV, démarrage de la comparaison PRV(62) : Lire la PV du compteur à grande vitesse, lire la condition de comparaison du compteur à grande vitesse, lire les résultats de comparaison de plage. SBN(92) et RET(93) : Créer le programme de sous--programme d’interruption (lorsque les interruptions de vérification de décompte sont utilisées). 47 Chapitre Compteurs à grande vitesse du CPM2A/CPM2C Fonction compteur grande vitesse Mode entrée Entrées codeur 2-2 Setup de l’API DM 6642, bits 08 à 15 Génération des interruptions de vérification de décompte Compteur E* phase bidirectionnelle Programmation en schéma à contacts Impulsion et direction E* Entréeincré./décré. CTBL(63) Entrée incrémentale Instruction REGISTER COMPARISON TABLE Sous--programme indiqué exécuté (lorsque les interruptions de vérification de décompte sont utilisés). SBN(92) Tableau de comparaison de registre Comparaison de démarrage Setup de l’API DM 6642, bits 00 à 03 INI(61) Instruction MODE COMMANDE Changer la PV RET(93) Démarrage/arrêt de comparaison Chaque balayage Chaque fois PV du compteur PRV(62) SR 249 SR 248 Instruction LECTURE DE LA PV DU COMPTEUR À GRANDE VITESSE Lire la PV Résultats de comparaison de plage AR 1100 à AR 1107 Lire l’condition de comparaison Lire les résultats de comparaison de plage *E = entrée Sélection du mode Entrée et de la méthode de réinitialisation Mode entrée Choisir le mode entrée pour le compteur à grande vitesse selon le type de signal. Mode entrée bidirectionnelle En mode entrée bidirectionnelle, le décompte est incrémenté ou décrémenté selon deux signaux bidirectionnels avec une multiplication par 4 (phase A et phase B). Fréquence maximale : 5 kHz ON Phase A OFF ON Phase B OFF Compteur Nms ! Fréquence = 1 000 Nx4 48 Chapitre Compteurs à grande vitesse du CPM2A/CPM2C 2-2 Mode implusion+signal d’entrée de direction En mode implusion+signal d’entrée de direction, des signaux d’impulsion et les signaux de sens sont enregistrés, et le décompte est incrémenté ou décrémenté selon l’état du signal de direction. Fréquence maximale : 20 kHz ON Entrées d’impulsions OFF ON Entrées de sens OFF Compteur 1 000 Nms ! Fréquence = N Mode entrée d’impulsion avance/retour En mode entrée d’impulsion avance/retour, les signaux CW (impulsions hautes) et les signaux CCW (impulsions basses) sont enregistrés, et le décompte est incrémenté ou décrémenté en conséquence. Fréquence maximale : 20 kHz ON Entrées CW OFF ON Entrées CCW OFF Compteur Incrémental Nms ! Fréquence = Décrémental 1 000 N Mode incrémental En mode incrémental, des signaux d’impulsion sont enregistrés et le décompte est incrémenté avec chaque impulsion. L’IR 00001 peut s’utiliser comme entrée normale. Fréquence maximale : 20 kHz ON Entrées d’impulsions OFF Compteur Nms ! Fréquence = 1 000 N Lorsque le mode entrée bidirectionnelle est utilisé, les entrées doivent être les entrées bidirectionnelles 4X. Lorsqu’un codeur est relié à ce mode, le nombre de décomptes par révolution sera quatre fois la résolution du codeur incrémental. Choisir un codeur en fonction du nombre de décomptes possibles. Valeurs de décompte La plage des nombres décomptés par le compteur à grande vitesse est seule- 49 Chapitre Compteurs à grande vitesse du CPM2A/CPM2C 2-2 ment en mode linéaire. Lorsque le décompte est en dehors de la plage permise, un dépassement ou un dépassement négatif en résultera. La PV deviendra 0FFFFFFF si un dépassement se produit, ou FFFFFFFF si un dépassement négatif se produit, et la comparaison sera arrêtée. Mode entrée bidirectionnelle Mode impulsion+signal d’entrée de direction Mode entrée d’impulsion avance/retour Mode incrémental Dépassement (0FFFFFFF) Dépassement négatif (FFFFFFFF) Dépassement (0FFFFFFF) Pour re--activer le décompte suivant un dépassement ou un dépassement négatif, remettre à zéro la PV. La PV est automatiquement remise à zéro toutes les fois que l’opération est commencée ou arrêtée. Méthode de remise à zéro L’une ou l’autre des deux méthodes suivantes peut être choisie pour remettre à zéro la PV du compteur. Signal de Phase-Z (Entrée de remise à zéro) + remise à zéro par programme La PV est remise à zéro lorsqu’un signal de phase--Z (c.--à--d. une entrée de remise à zéro) est activé tandis que le drapeau de remise à zéro du compteur à grande vitesse (25200) est activé. 1 balayage Phase Z Remise à zéro Remise à zéro Pas de remise à zéro Remise à zéro Pas de remise à zéro Remise à zéro par programme La PV est remise à zéro lorsque le drapeau de remise à zéro du compteur à grande vitesse (25200) est activé. 1 balayage Remise à zéro Pas de remise à zéro Pas de remise à zéro Pas de remise à zéro Le drapeau de remise à zéro du compteur à grande vitesse (25200) est réactualisé à chaque balayage, ainsi il doit rester sur ON pendant au moins une durée de cycle pour être certain qu’il soit lu. Même lorsque la PV est remise à zéro, l’état répertorié au tableau de comparaison, l’état d’exécution de comparaison, et les résultats des comparaisons de plage sont maintenus comme ils étaient avant la remise à zéro de la PV. Si une comparaison était en cours avant la remise à zéro de la PV, cette comparaison est poursuivie sans le changement après la remise à zéro. Après la remise à zéro, le drapeau de remise à zéro du compteur à grande vitesse (25200) doit être arrêté afin de pouvoir exécuter la prochaine remise à zéro. 50 Chapitre Compteurs à grande vitesse du CPM2A/CPM2C 2-2 Pour être certain qu’il soit arrêté, il doit être resté sur OFF pendant au moins une durée de cycle. Sélection des interruptions à utiliser Interruption du compteur de grande vitesse Les interruptions du compteur à grande vitesse emploient un tableau de comparaison et exécutent un contrôle de décompte par l’une ou l’autre des méthodes décrites ci--dessous (c.--à--d. comparaison de valeur à atteindre ou comparaison de plage). Si les conditions sont remplies, alors une interruption se produit. Pour plus d’informations concernant les priorités d’interruption, se reporter à l’ordre des priorités pour les interruptions dans le paragraphe 2--1 Interruptions. Lorsqu’une interruption se produit pendant l’exécution d’une des instructions du compteur, c.--à--d. C TBL(63), INI(61) ou PRV(62), ces instructions ne s’éxécutent pas dans le programme d’interruption. Interruptions de comparaison de valeur à atteindre Jusqu’à 16 combinaisons des états de comparaison (valeur à atteindre et sens de décompte) et des nombres de sous--programme d’interruption peuvent être répertoriées dans le tableau de comparaison. Le sous--programme indiqué est exécuté lorsque la PV du compteur atteint une valeur du tableau de comparaison. Tableau de comparaison Valeur à atteindre : 5 000 Sens du décompte : Incrémental Nombre de sous-programme : 10 Valeur à atteindre : 1 000 Sens du décompte : Incrémental Nombre de sous-programme : 8 Valeur à atteindre : 3 000 Sens du décompte : Décrémental Nombre de sous-programme : 9 PV Sens incrémental Sens décrémental Sens incrémental Temps Interruption 8 Sous--programmes exécutés Interruption 10 Sous--programmes exécutés Interruption 9 Sous--programmes exécutés Le lien entre la vérification du décompte de la comparaison de la valeur à atteindre et le tableau de comparaison est différent pour le CPM1/CPM1A. Se reporter aux différents manuels pour plus de détails. Il est impossible d’indiquer plus d’un état de sens de comparaison pour la même valeur à atteindre dans le tableau de comparaison. La comparaison de valeur à atteindre ou celle de la plage peut l’une ou l’autre être utilisée pour des interruptions de compteurs à grande vitesse. Interruptions de comparaison de plage Jusqu’à 8 combinaisons des états de comparaison (limites supérieures et inférieures) et de nombres de sous--programme d’interruption peuvent être répertoriées dans le tableau de comparaison. Le sous--programme indiqué est exécuté 51 Chapitre Compteurs à grande vitesse du CPM2A/CPM2C 2-2 une fois que la PV du compteur est supérieur ou égal à la limite inférieure, et inférieur ou égal à la limite supérieure dans le tableau de comparaison. Tableau de comparaison PV Limite inférieure : 1 000 Limite supérieure : 4 000 Nombre de sous-programmes : 10 Limite inférieure : 3 000 Limite supérieure : 5 000 Nombre de sous-programmes : 9 Temps Interruption Interruption Interruption Interruption 10 Sous-programmes exécutés 9 Sous-9 Sous-programmes programmes exécutés exécutés 10 Sous-programmes exécutés Si deux états ou plus de comparaison sont satisfaits simultanément (dans le même cycle), l’interruption pour l’état le plus proche du début du tableau de comparaison sera exécutée. La comparaison de valeur à atteindre ou celle de la plage peut s’utiliser pour des interruptions de compteurs à grande vitesse. Lorsqu’une interruption s’est produite pendant l’exécution d’une des instructions du compteur, c.--à--d. C TBL(63), INI(61) ou PRV(62), ces instructions ne sont pas exécutées dans le programme d’interruption. Si une interruption s’est produite pendant l’exécution d’une instruction commandant le compteur à grande vitesse dans la zone de programme normale, les instructions des CTBL(63), INI(61) et PRV(62), ne seront pas exécutées dans le programme d’interruption. Cette situation peut être évitée par la programmation suivante. 1ère méthode 2ème méthode Interdire les interruptions dans la zone de programme normale tout en exécutant l’instruction. Dans la zone de programme normale, exécuter de nouveau l’instruction qui n’a pas pu être exécutée. Zone de programme normale Zone de programme d’interruption Les sous--programmes de traitement d’interruption sont définis par SBN(92) et RET(93), simplement comme des sous--programmes normaux. Une erreur de SBS UNDEFD se produira pendant le contrôle de programme lorsqu’un sous--programme de traitement d’interruption sera défini, mais l’exécution sera normale. 52 Chapitre Compteurs à grande vitesse du CPM2A/CPM2C Câblage des entrées 2-2 Câbler les entrées selon la représentation des illustrations suivantes, en fonction du mode d’entrée et de la méthode de remise à zéro. Entrées CPM2A Mode entrée bidirectionnelle Mode entrée impulsion avance/retour 00000 : Entrée CW 00001 : Entrée CCW 00002 : Entrée de remise à zéro 00000 : Entrée Phase-A 00001 : Entrée Phase-B 00002 : Entrée Phase-Z Mode entrée d’impulsion et de sens 00000 : Entrée d’impulsion 00001 : Entrée de sens 00002 : Entrée de remise à zéro Mode incrémental 00000 : Entrée d’impulsion 00002 : Entrée de remise à zéro Entrée CPM2C Mode entrée bidirectionnelle Bornier d’entrée Connecteur d’entrées 00002 : Entrée phase-Z 00001 : Entrée phase-B 00000 : Entrée phase-A 00002 : Entrée phase-Z 00001 : Entrée phase-B 00000 : Entrée phase-A 53 Chapitre Compteurs à grande vitesse du CPM2A/CPM2C 2-2 Mode entrée impulsion avance/retour Bornier d’entrée Connecteur d’entrées 00002 : Entrée de remise à zéro 00001 : Entrée CCW 00000 : Entrée CW 00002 : Entrée de remise à zéro 00001 : Entrée CCW 00000 : Entrée CW Mode entrée d’impulsion et de sens Connecteur d’entrées Bornier d’entrée 00002 : Entrée de remise à zéro 00001 : Entrée de sens 00000 : Entrée d’impulsion 00002 : Entrée de remise à zéro 00001 : Entrée de sens 00000 : Entrée d’impulsion Mode incrémental Bornier d’entrée Connecteur d’entrées 00002 : Entrée de remise à zéro 00000 : Entrée d’impulsion 00002 : Entrée de remise à zéro 00000 : Entrée d’impulsion Lorsque les entrées phase--Z et de remise à zéro ne sont pas utilisées, 00002 peut être utilisé comme entrée normale. 54 Chapitre Compteurs à grande vitesse du CPM2A/CPM2C Setup de l’API 2-2 Définir les zones du Setup de l’API liées au compteur à grande vitesse comme suit : Utilisation du compteur à grande vitesse Mots DM 6642 DM 6642, bits 08 à 15 Mode entrée DM 6642, bits 00 à 03 Méthode de remise à zéro (utilisation ou non de 00002 comme entrée normale) DM 6642, bits 04 à 07 Bits 00 à 03 Fonction Configuration du mode d’entrée compteur à grande vitesse Paramé-trage 0, 1, 2 ou 4 0 : Entrée bidirectionnelle 5 kHz 1 : Impulsion+signal d’entrée de direction 20 kHz 2 : Point incrémental/décrémental 20 kHz 4 : Incrémental 20 kHz 04 à 07 08 à 15 Configuration de la méthode de remise à zéro du compteur à grande vitesse 0 : Signal phase Z + remise à zéro par programme 1 : Remise à zéro par programme Configuration de l’utilisation du compteur à grande vitesse 0 ou 1 01 00 : Ne pas utiliser 01 : Utiliser comme compteur à grande vitesse 02 : Utiliser comme commande de synchronisation d’impulsion (10 Hz à 500 Hz) 03 : Utiliser comme commande de synchronisation d’impulsion (20 Hz à 1 kHz) 04 : Utiliser comme commande de synchronisation d’impulsion (300 Hz à 20 kHz) Les nouvelles configurations pour le Setup du système sont effectifs lorsque le fonctionnement débute (lorsque le mode PROGRAM est changé en mode MONITOR ou RUN), ou lorsque l’alimentation de CPM2A/CPM2C est rétablie. 55 Chapitre Compteurs à grande vitesse du CPM2A/CPM2C Programmation en schéma à contacts 2-2 Le tableau suivant montre les instructions liées au compteur à grande vitesse : Instruction (@)CTBL(63) (@)INI(61) Commande Répertorie le tableau de comparaison de la valeur à atteindre Répertorier le tableau de comparaison de plage et démarrage de la comparaison Début de comparaison Répertorie le tableau de comparaison de plage et démarre la comparaison Arrêt de comparaison Modifier la PV (@)PRV(62) (@) ( ) (@)INT(89) Fonctionnement Répertorier le tableau de comparaison de la valeur à atteindre Répertorier le tableau de comparaison de plage Répertorier le tableau de comparaison des valeurs à atteindre et démarrage de la comparaison Répertorie le tableau de comparaison de plage Répertorie le tableau de comparaison des valeurs à atteindre et démarre la comparaison Commence la comparaison avec le tableau de comparaisons répertoriées Arrête la comparaison Lire la PV Modifie la PV du compteur à grande vitesse Lit la PV du compteur à grande vitesse Lire le status Lit l’état du compteur à grande vitesse Lire les résultats de comparaison de plage Masquer toutes les interruptions Lit les résultats de comparaison de plage Ne pas masquer toutes les interruptions Interdit toutes les interruptions, y compris les entrées d’interruption, les interruptions par temporisation cyclique, les compteurs à grande vitesse, etc. Autorise toutes les interruptions, y compris les entrées d’interruption, les interruptions par temporisation cyclique, les compteurs à grande vitesse, etc. Le tableau suivant montre les zones de données liées à la commande de compteur à grande vitesse : Mots Bits 248 249 00 à 15 252 AR11 Dénomination Contenu PV du compteur p à grande g vitesse i Lit la PV du compteur p à grande d vitesse i 00 Remise à zéro du compteur à grande vitesse Quand ce bit est activé, une remise à zéro par programme est déclenchée pour le compteur à grande vitesse. 00 à 07 Résultat de la comparaison du compteur à grande vitesse Comparaison du compteur à grande vitesse PV dépassement/ dépassement négatif du compteur à grande vitesse ON : Condition satisfaite OFF : Condition non satisfaite ON : Comparaison en cours OFF : Comparaison arrêtée ON : Dépassement/ dépassement négatif OFF : Normal 00 à 15 08 09 Répertorier le tableau de comparaison de la valeur à atteindre Répertorier le tableau de comparaison de la valeur à ateindre et démarre la comparaison Ces fonctions répertorient un tableau de comparaison du CPM2A/CPM2C pour vérifier le décompte de la comparaison de la valeur à atteindre. Il est également 56 Chapitre Compteurs à grande vitesse du CPM2A/CPM2C 2-2 possible de commencer la comparaison en même temps que l’enregistrement au répertoire. Répertorier le tableau de comparaison de la valeur à atteindre (@)CTBL(63) 000 002 S Spécificateur de port (000 : Compteur à grande vitesse) Désignation de mode (002 : Répertorie le tableau de comparaison de la valeur à atteindre uniquement) Début du mot du tableau de comparaison Répertorier le tableau de comparaison de la valeur à atteindre et démarrer la comparaison (@)CTBL(63) 000 000 S Spécificateur de port (000 : Compteur à grande vitesse) Désignation de mode (000 : Répertorie le tabeau de comparaison de la valeur à atteindre et démarre la comparaison) Début du mot de la table de comparaison Tableau de comparison de la valeur à atteindre Nombre de comparaisons 0001 à 0016 BCD Nombre de comparaisons Valeur à atteindre 1 (extrême droite) Valeur à atteindre 1 (extrême gauche) Valeur à atteindre (extrême droite, extrême gauche) Arrangement de la comparaison 1 N_ de sous--programme Enregistrer la valeur du compteur à comparer. Le digit à l’extrême gauche montre le signe (+/--). Mode entrée bidirectionnelle Valeur à atteindre 2 (extrême droite) Valeur à atteindre 2 (extrême gauche) Arrangement de la comparaison 2 Mode impulsion+signal d’entrée de direction Mode entrée d’impulsions avance/retour F8388608 à 08388607 Mode incrément 00000000 à 16777215 N_ de sous--programme Nombre de sous--programme Enregistrer le sens de la comparaison et du nombre de sous-programme à exécuter quand il y a une correspondance. Sens d’incrément : 0000 à 0049 Sens de décrementation : F000 à F049 Il est impossible d’indiquer plus d’un état de sens de comparaison pour la même valeur à atteindre dans le tableau de comparaison. Une fois qu’un tableau de comparaison est enregistré, il sera répertorié dans le CPM2A/CPM2C tant qu’aucun autre tableau de comparaison ne soient répertoririé et le mode n’est pas modifié en mode PROGRAM (et cela tant que l’alimentation n’est pas coupée). Répertorier le tableau de comparaison de plage Répertorier le tableau de comparaison de plage et démarrer la comparaison Ces fonctions répertorient un tableau de comparaison du CPM2A/CPM2C afin vérifier le calcul dans la comparaison de plage. Il est également possible de démarrer la comparaison par l’enregistrement du registre. Répertorier le tableau de comparaison de plage (@)CTBL(63) 000 003 S Spécificateur de port (000 : Compteur à grande vitessse) Mode appellation (003 : Répertorie seulement le tableau de comparaison de plage). Premier mot du tableau de comparaison 57 Chapitre Compteurs à grande vitesse du CPM2A/CPM2C 2-2 Répertorier le tableau de comparaison de plage et démarrer la comparaison (@)CTBL(63) 000 001 S Spécificateur de port (000 : Compteur à grande vitesse) Désignation de mode (001 : Répertorie le tableau de comparaison de plage et démarrer la comparaison) Premier mot du tableau de comparaison Tableau de comparaison de plage Huit états de comparaison de plage se composant des limites supérieures et inférieures, et les nombres de sous--programmes doivent être définis. Limite inférieure 1 (droite) Limite inférieure 1 (gauche) Limite supérieure 1 (droite) État 1 de comparaison de plage Limites supérieures et inférieures (extrême droite, extrême gauche) Répertorier les limites supérieures et inférieures. Le digit à l’extrême gauche affiche le signe (+/--). Limite supérieure 1 (gauche) Mode entrée bidirectionnelle Mode impulsion+signal d’entrée de direction No de sous programme Mode entrée d’impulsion avance/retour F8388608 à 08388607 Mode incrémentation 00000000 à 16777215 Nombre de sous--programme Répertorier le numéro de sous--programme à exécuter quand l’condition de comparaison de plage est satisfaite. Limite inférieure 8 (droite) Limite inférieure 8 (gauche) Limite supérieure 8 (droite) 0000 à 0049 État 8 de comparaison de plage Si les valeurs d’ensemble n’atteignent pas 8, définir FFFF. Limite supérieure 8 (gauche) No de sous programme Si deux états ou plus de comparaison sont satisfaits simultanément (dans le même cycle), l’interruption pour l’état le plus proche du début du tableau de comparaison sera exécutée. Dès qu’un tableau de comparaison est enregistré, il est sauvegardé dans le CPM2A/CPM2C tant qu’aucun autre tableau de comparaison ne sera enregistré et le mode n’est pas modifié en mode PROGRAM (et cela tant que l’alimentation n’est pas coupée). La comparaison de démarrage/d’arrêt La comparaison peut être démarrée ou arrêtée selon le tableau qui a été déjà répertorié au CPM2A/CPM2C par CTBL(63). Commencer la comparaison (@)INI(61) 000 Spécificateur de port (000 : Compteur à grande vitesse) 000 Désignation de la commande (000 : Commencer la comparaison) Fixé : 000 000 Arrêter la comparaison (@)INI(61) 000 58 001 Spécificateur de port (000 : Compteur à grande vitesse) Désignation de la commande (001 : Arrêter la comparaison) 000 Fixé : 000 Chapitre Compteurs à grande vitesse du CPM2A/CPM2C 2-2 Changer la PV Cette fonction modifie la PV du compteur à grande vitesse. (@)INI(61) 000 Spécificateur de port (000 : Compteur à grande vitesse) 002 Désignation de commande (002 : Changer la Pv) Premier mot des données de la PV à changer C2 4 digits à l’extrême droite 4 digits à l’extrême gauche C2 C2+1 Données de PV à changer (extrême droite et extrême gauche) Répertorier les données de PV à changer. Le digit à l’extrême gauche affiche le signe (+/--). Mode entrée bidirectionnelle Mode impulsion+signal d’entrée de direction Mode entrée d’impulsion avance/retour F8388608 à 08388607 Mode incrémentation 00000000 à 16777215 Aucune interruption ne se produira pendant une comparaison de valeur à atteindre même si la valeur à atteindre répertoriée dans le tableau de comparaison est changée par INI(61). Lire la PV Cette fonction lit la PV du compteur à grande vitesse. Utilisation d’une instruction (@)PRV(62) 000 Spécificateur de port (000 : Compteur à grande vitesse) 000 Désignation de commande (000 : Lire la Pv) Premier mot pour la mémorisation de la PV C2 D 4 digits à l’extrême droite D+1 4 digits à l’extrême gauche PV (extrême droite et extrême gauche) La PV lue sera mémorisée ici. Le digit à l’extrême gauche affiche le signe (+/--). Mode entrée bidirectionnelle Mode impulsion+signal d’entrée de direction Mode entrée d’impulsion avance/retour F8388608 à 08388607 Mode incrémentation 00000000 à 16777215 Utilisation des régions de données La PV du compteur à grande vitesse est sauvegardée dans les mots 248 et 249 comme montré ci--dessous. SR 248 Pv (mot à l’extrême droite) SR 249 Pv (mot à l’extrême gauche) Les mots 248 et 249 sont rafraîchis avec chaque balayage, il peut donc y avoir un écart avec la PV exacte à un moment donné. Quand le compteur à grande vitesse n’est pas utilisé, les mots 248 et 249 peuvent être utilisés comme mots de travail. Quand la PV est lue en exécutant PRV(62), les mots 248 et 249 sont rafraîchis en même temps. 59 Chapitre Compteurs à grande vitesse du CPM2A/CPM2C 2-2 Etat de lecture Cette fonction lit l’état du compteur à grande vitesse, comme si une opération de comparaison est en cours ou si un dépassement positif / négatif s’est produit Utilisation d’une instruction (@)PRV(62) 000 Spécificateur de port (000 : Compteur à grande vitesse) 001 Désignation de commande (001 : Etat lu) D Mot pour la mémorisation de l’état Dépassement positif/négatif 0 : Normal 1 : Dépassement positif/négatif Comparaison 0 : Arrêté 1 : En marche Utilisation des zones de données L’état est sauvegardé dans l’AR 1108 et l’AR 1109 comme montré ci--dessous. Dépassement positif/négatif 0 : Normal 1 : Dépassement positif/négatif Comparaison 0 : Arrêté 1 : En marche L’AR 1108 et l’AR 1109 sont rafraîchis à chaque balayage, il peut donc y avoir un écart avec l’état exact à un moment donné. Lorsque l’état est lu en exécutant PRV(62), l’AR 1108 et l’AR 1109 sont rafraîchis en même temps. Lire le résultat de comparaison de plage Cette fonction lit le résultat d’une comparaison de plage montrant si la PV est, ou non, dans la plage. Utilisation d’une instruction (@)PRV(62) 000 002 D Spécificateur de port (000 : Compteur à grande vitesse) Désignation de commande (002 : Lire le résultat de comparaison de plage) Premier mot pour mémoriser le résultat de comparaison de la plage Atteint, avec la 1ère condition (0 : Non atteint ; 1 : Atteint) Atteint, avec la 2ème condition (0 : Non atteint ; 1 : Atteint) Atteint, avec la 3ème condition (0 : Non atteint ; 1 : Atteint) Atteint, avec la 4ème condition (0 : Non atteint ; 1 : Atteint) Atteint, avec la 5ème condition (0 : Non atteint ; 1 : Atteint) Atteint, avec la 6ème condition (0 : Non atteint ; 1 : Atteint) Atteint, avec la 7ème condition (0 : Non atteint ; 1 : Atteint) Atteint, avec la 8ème condition (0 : Non atteint ; 1 : Atteint) 60 Chapitre Compteurs à grande vitesse du CPM2A/CPM2C 2-2 Utilisant des régions de données Le résultat de comparaison de plage est sauvegardé dans l’AR 1100 jusqu’à l’AR 1107, comme montré ci--dessous : Atteint, avec la 1ère condition (0 : Non atteint ; 1 : Atteint) Atteint, avec la 2ème condition (0 : Non atteint ; 1 : Atteint) Atteint, avec la 3ème condition (0 : Non atteint ; 1 : Atteint) Atteint, avec la 4ème condition (0 : Non atteint ; 1 : Atteint) Atteint, avec la 5ème condition (0 : Non atteint ; 1 : Atteint) Atteint, avec la 6ème condition (0 : Non atteint ; 1 : Atteint) Atteint, avec la 7ème condition (0 : Non atteint ; 1 : Atteint) Atteint, avec la 8ème condition (0 : Non atteint ; 1 : Atteint) L’AR 1100 jusqu’à l’AR 1107 sont rafraîchis à chaque balayage, il peut donc y avoir un écart avec le résultat exact de comparaison de plage de la PV à un moment donné. Lorsque le résultat de comparaison de plage est lu en exécutant PRV(62), l’AR 1100 à l’AR 1107 sont rafraîchis en même temps. Masquage/Non masquage de toutes les interruptions Pour plus de détails concernant le masquage et le non masquage de toutes les interruptions, se reporter au paragraphe 2--1--1 Entrées d’interruption. Exemples d’applications Comparaison de valeur à atteindre Explication Dans cet exemple, des sous--programmes spécifiques d’interruption sont exécutés en confrontant la PV du compteur à grande vitesse avec cinq valeurs de consigne comme tableau de comparaison de valeur à atteindre. Pour chaque interruption, les données en DM 0000 à DM 0004 sont incrémentées par un. Câblage (CPM2A) Orange E6B2-CWZ6C Codeur rotatif Blanc Noir Bleu Marron 61 Chapitre Compteurs à grande vitesse du CPM2A/CPM2C Câblage (CPM2C) Bornes d’entrée Bleu Codeur rotatif Marron Orange Blanc Noir Connecteur d’entrée Bleu Codeur rotatif Marron Orange Blanc Noir Setup de l’API 15 DM 6642 0 0 1 0 0 0 : Entrée bidirectionnelle 0 : Remise à zéro par le signal de phase Z + remise à zéro par programme 01 : Utilisation comme compteur à grande vitesse 62 2-2 Chapitre Compteurs à grande vitesse du CPM2A/CPM2C 2-2 Programmation Sur ON pour 1 cycle au début de l’opération (71) (63) Repertorier le tableau de comparaison de valeur à atteindre et commencer la comparaison Compteur à grande vitesse Répertorier le tableau de comparaison de valeur à atteindre et commencer la comparaison Premier mot du tableau de comparaison Nombre de comparaisons : 5 (92) Val. à atteindre : 0001,000 Toujours ON (38) Comparaison 2 Comparaison 1 Increment, sous--programme 049 Val. à atteindre : 00003000 Comparaison 2 Increment, sous programme 040 Val. à atteindre : 00000000 (93) Comparaison 3 Décrément, sous programme 010 (92) Val. à atteindre : 00003000 Toujours ON Comparaison 4 Décrément, sous programme 041 (38) Comparaison 4 Val. à atteindre : Comparaison 00010000 Deécrément, sous programme 048 5 (93) (92) Toujours ON (38) Comparaison 5 (93) (92) Toujours ON (38) Comparaison 1 (93) (92) Toujours ON (38) Comparaison 3 (93) (01) 63 Chapitre Compteurs à grande vitesse du CPM2A/CPM2C 2-2 Comparaison de plage Explication Dans cet exemple, des sous--programmes d’interruption spécifiques sont exécutés en confrontant la PV du compteur à grande vitesse avec une plage de cinq valeurs de consigne comme un tableau de comparaison de plage. A chaque interruption, les données de DM 0000 à DM 0004 sont incrémentées par un. Câblage (CPM2A) Orange E6B2-CWZ6C Codeur rotatif Blanc Noir Bleu Marron 64 Chapitre Compteurs à grande vitesse du CPM2A/CPM2C 2-2 Câblage (CPM2C) Bornes d’entrée Blue Codeur rotatif Marron Orange Blanc Noir Connecteur d’entrée Bleu Codeur rotatif Marron Orange Blanc Noir Setup de l’API 15 DM 6642 0 0 1 0 0 0 : Entrée bidirectionnelle 0 : Remise à zéro par le signal de phaseZ + remise à zéro par programme 01 : Utilisation en tant que compteur à grande vitesse 65 Chapitre Compteurs à grande vitesse du CPM2A/CPM2C Programmation Sur ON pour 1 cycle au début de l’opération (71) (63) Répertorier le tableau de comparaison de plage et commencer la comparaison Compteur à grande vitesse Répertorier le tableau de comparaison de plage et commencer la comparaison Premier mot du tableau de comparaison Limite inf : 9 000 (92) Comparaison 1 Toujours ON Limite sup : 10 000 (38) Comparaison 1 Sous programme 040 Limite inf : 7 000 (93) Comparaison 2 Limite sup : 8 000 (92) Toujours ON Sous programme 041 Limite inf : 3 000 (38) Comparaison 2 Comparaison 3 Limite sup : -3 000 (93) Sous programme 010 Limite inf : -8 000 (92) Comparaison 4 Toujours ON Limite sup : 7 000 (38) Comparaison 3 Sous programme 042 Limite inf : -10 000 (93) Comparaison 5 Limite sup : 9 000 (92) Sous programme 043 Toujours ON (38) Comparaison 4 Comparaison 6 Non utilisée. Comparaison 7 Non utilisée. Comparaison 8 Non utilisée (93) (92) Toujours ON (38) (93) (01) 66 Comparaison 5 2-2 Chapitre Compteurs à grande vitesse du CPM2A/CPM2C 2-2 2-2-2 Entrées d’interruption en mode compteur Les quatre entrées intégrées d’interruption de l’unité centrale du CPM2A/CPM2C peuvent être utilisées en mode compteur comme entrées jusqu’à 2 kHz. Ces entrées peuvent être utilisées pour incrémenter ou décrémenter des compteurs, déclenchant une interruption (c.--à--d. exécutant un sous--programme d’interruption) lorsque le comptage atteint la valeur de consigne. Entrée du compteur E* du compteur Programme normal Programme d’interruption Sous-programme *E = Entrée Numéro d’entrée (Rem. 2) 00003 00004 Rem. Compte 0 à 65535 ( (0000 à FFFF) Numéro Numéro de d’interrup sous--program tion me (Note 3) 0 000 1 001 00005 2 002 00006 3 003 Frequence de résponse 2 kHz 1. Les numéro d’entrée 00005 et 0006 ne peuvent pas être utilisés dans l’unité centrale du CPM2C avec 10 points d’entrée--sortie. 2. Les numéros d’entrée 00003 à 0006 peuvent être utilisés pour n’importe laquelle des fonctions suivantes : les entrées d’interruption, les entrées d’interruption (en mode compteur) ou les entrées de capture. Lorsqu’elles ne sont pas utilisées dans ces cas précis, elles peuvent être utilisées en tant qu’entrées ordinaires. 3. Les numéros de sous--programme 000 à 003 sont les numéros de sous--programme pour des programmes d’interruption commencés lorsque des entrées d’interruption ou le nombre d’interruptions pour les entrées d’interruption (en mode compteur) sont générés. S’ils ne sont pas utilisés à cette fin, ils peuvent être utilisés en tant qu’entrées ordinaires. 67 Chapitre Compteurs à grande vitesse du CPM2A/CPM2C 2-2 ! Attention Bien que l’IORF(97) puisse être utilisé dans des sous--programmes d’interruption, faire attention à l’intervalle entre les exécutions d’IORF(97). Si l’IORF(97) est exécuté trop fréquemment, une erreur fatale du système peut se produire (FALS 9F), arrêtant l’opération. L’intervalle entre les exécutions d’IORF(97) devrait être d’au moins 1,3 ms + le temps d’exécution total du sous--programme d’interruption. Le tableau suivant montre les rapports entre les entrées d’interruption (en mode compteur) et d’autres fonctions des CPM2A/CPM2C : Fonction Commande d’impulsions synchronisée Entrées d’interruption Rem. 68 Entrées d’interruption (mode compteur) Utilisable simultanément. Voir Rem. 1. Interruptions par temporisation cyclique Compteurs à grande vitesse Utilisable simultanément. Entrées d’interruption (mode compteur) Sorties d’impulsions Voir Rem. 1. Entrées à capture Voir Rem. 1. Constante de temps d’entrée Voir Rem. 2. Horloge Utilisable simultanément. Utilisable simultanément. Utilisable simultanément. 1. Le même nombre d’entrée (de 00003 à 00006) ne peut pas être utilisé pour plus d’une des fonctions suivantes : les entrées d’interruption, les entrées d’interruption (en mode compteur) ou les entrées de capture. 2. Lorsque les entrées 00003 à 00006 ne sont pas définies pour être utilisées comme entrées d’interruption (en mode compteur), les constantes de temps d’entrée pour les entrées appropriées sont désactivées. Cependant, les constantes de temps d’entrée demeurent actives pour rafraîchir les valeurs de la zone de relais d’entrée appropriée. Compteurs à grande vitesse du CPM2A/CPM2C Chapitre 2-2 Procédure pour l’utilisation des entrées d’interruption en mode compteur Définir le numéro d’entrée d’interruption. Selectionner un compte à incrémentation ou à décrémentation. Câbler les entrées. Setup de l’API (DM 6628) Créer un programme en schéma à contacts Numéro d’entrées : 00003 à 00006 (00003 ou 00004 pour les unités centrales CPM2C avec 10 points d’entrée/sortie) 1 : Utiliser comme entrée d’interruption (mode entrée d’interruption ou mode compteur) INI(61) : Change la PV du compteur INT(89) : Rafraichit la SV du compteur* PRV(62) : Lit la PV du compteur SBN(92) et RET(93) : Pour créer des sous--programmes d’interruption.* *Utilisé seulement pour le nombre d’interruptions. 69 Chapitre Compteurs à grande vitesse du CPM2A/CPM2C E* d’interrupt. (mode compteur) Compteur (2 kHz) 0 2-2 Interruption générée Sous--programme spécifié éxécuté (utilisé seulement pour le nb d’interruptions) Programme en schéma à contacts SBN(92) InstructionCOMMANDE D’INTERRUPTION INT(89) Compteur (2 kHz) 1 RET(93) Change la SV (incrémente/ décrémente) Compteur (2 kHz) 2 SV Compteur Compteur 0 Compteur 1 Compteur 2 Compteur 3 Compteur (2 kHz) 3 Setup de l’API INI(61) DM 6628 SR 240 SR 241 SR 242 SR 243 Instruction COMMANDE DE MODE Change la PV Chaque balayage SV Compteur Compteur 0 Compteur 1 Compteur 2 Compteur 3 Configuration du numéro d’entrée d’interruption SR 244 SR 245 SR 246 SR 247 Immédiatement Instruction LECTURE DE LA PV DU COMPTEUR À PRV(62) GRANDE VITESSE Lit la PV du compteur Avec des entrées d’interruption en mode compteur, le sous--programme à exécuter est déterminé par l’interruption correspondant au numéro d’entrée. Numéro d’entrée Numéro d’interruption Numéro de sous--programme 00003 0 000 00004 1 001 00005* 2 002 00006* 3 003 Rem. *Les numéros d’entrées 00005 et 00006 ne peuvent pas être utilisés pour des unités centrales CPM2C avec 10 points d’entrée--sortie. Le même numéro d’entrée (de 00003 à 00006) ne peut pas être utilisé pour plus d’une des fonctions suivantes : les entrées d’interruption, les entrées d’interruption (en mode compteur), ou les entrées de capture. Choix de compteur à incrémentation ou à décrémentation 70 Un compteur à incrémentation ou à décrémentation peut être utilisé avec des entrées d’interruption en mode compteur. Mode compteur à incrémentation Lorsque la valeur de consigne (SV) est rafraîchie, le comptage est incrémenté Chapitre Compteurs à grande vitesse du CPM2A/CPM2C 2-2 depuis 0 et le sous--programme d’interruption est exécuté lorsque la valeur en cours (PV) correspond à la SV. PV Le sous--programme est exécuté lorsque le compte est croissant et que la PV est remise à 0. SV Incrémentation Incrémentation Temps Interruption Interruption Retour Sous--programme éxécuté. Sous--programme éxécuté. Mode compteur à décrémentation Lorsque la valeur de consigne (SV) est rafraîchie, le compte est décrémenté vers 0, et le sous--programme d’interruption est exécuté lorsque la valeur en cours (PV) atteint 0. PV Le sous--programme est exécuté lorsque le compte est croissant et que la PV est réinitialisée à SV. SV Décrémentation Décrémentation Temps Interruption Sous--programme éxécuté Câblage des entrées Interruption Retour Sous--programme éxécuté Avec le CPM2A, câbler les bornes d’entrée comme montré dans l’illustration suivante : Entrée 00003 : Entrée d’interruption (Mode compteur) 0 Entrée 00004 : Entrée d’interruption (Mode compteur) 1 Entrée 00005 : Entrée d’interruption (Mode compteur) 2 Entrée 00006 : Entrée d’interruption (Mode compteur) 3 71 Chapitre Compteurs à grande vitesse du CPM2A/CPM2C 2-2 Avec le CPM2C, câbler les bornes d’entrée comme montré dans l’illustration suivante : Bornes d’entrée 00004 : Entrée d’interruption (Mode compteur) 1 00003 : Entrée d’interruption (Mode compteur) 0 Connecteur d’entrée 00006 : Entrée d’interruption (Mode compteur) 3 00005 : Entrée d’interruption (Mode compteur) 2 00004 : Entrée d’interruption (Mode compteur) 1 00003 : Entrée d’interruption (Mode compteur) 0 Rem. Les entrées 00006 et 00005 ne peuvent pas être utilisées avec les unités centrales ayant seulement 10 points d’entrée-sortie. Setup de l’API Le tableau suivant montre les configurations dans la zone de Setup de l’API liée à l’utilisation d’entrée d’interruption : Mot DM 6628 Bits 00 à 03 04 à 07 08 à 11 12 à 15 Fonction Configuration de l’entrée d’interruption 00003 Configuration de l’entrée d’interruption 00004 Configuration de l’entrée d’interruption 00005* Configuration de l’entrée d’interruption 00006* 0 : Entrée normale Paramétrage 1 1 : Entrée d’interruption (Mode entrée d’interruption ou mode compteur) 2 : Entrée à capture Rem. *Les numéros d’entrées 00005 et 00006 ne peut pas être utilisés dans les unité centrale CPM2C avec 10 points d’entrée--sortie. La configuration sera effective lorsque le mode sera changé (de PROGRAM à MONITOR/RUN) ou lorsque l’alimentation des CPM2A/CPM2C passera sur ON. 72 Chapitre Compteurs à grande vitesse du CPM2A/CPM2C Programmation en schéma à contacts 2-2 Le tableau suivant montre les opérations d’instruction liées à la commande d’entrée d’interruption (mode compteur) : Instruction (@)INT(89) Commande Fonctionnement Rafraîchir la SV du compteur à incrémentation Rafraîchir la SV du compteur à décrémentation Masquer toutes les interruptions Régénère la SV du compteur et commence le comptage incrémental. Régénère la SV du compteur et commence le comptage décrémental. Démasquer toutes les interruptions (@)INI(61) Changement de la PV (@)PRV(62) Lecture de la PV Interdit toutes les interruptions, dont les entrées d’interruption, les interruptions par temporisation cyclique, les compteurs à grande vitesse, etc. Autorise toutes les interruptions, dont les entrées d’interruption, les interruptions de temporisateur cyclique, les compteurs à grande vitesse, etc. Change la PV du compteur. Lit la PV du compteur. Les fonctions liées aux entrées d’interruption (en mode compteur) sont exécutées selon les zones de données montrées dans le tableau suivant : Mot Bits 240 00 à 15 241 00 à 15 242 00 à 15 243 00 à 15 244 00 à 15 245 00 à 15 246 00 à 15 247 00 à 15 Dénomination Zone SV pour l’entrée d’interruption (Compteur mode) 0 Zone SV pour l’entrée d’interruption (Compteur mode) 1 Zone SV pour l’entrée d’interruption (Compteur mode) 2 Zone SV pour l’entrée d’interruption (Compteur mode) 3 Zone PV pour l’entrée d’interruption (Compteur mode) 0 Zone PV pour l’entrée d’interruption (Compteur mode) 1 Zone PV pour l’entrée d’interruption (Compteur mode) 2 Zone PV pour l’entrée d’interruption (Compteur mode) 3 Contenu Mémorise la valeur de consigne du compteur (SV). Mémorise la valeur en cours du compteur (PV). Rafraîchissement de la SV du compteur à incrémentation / Rafraîchissement de la SV du compteur à décrémentation Ces fonctions mémorisent les valeurs de consigne du compteur dans des zones de données et les régénèrent au moyen d’INT(89). De cette façon, elles commencent l’opération de compte pour des entrées d’interruption (en mode compteur) et elles permettent des interruptions. Mémorisation des valeurs de consigne dans des zones de données Les valeurs de consigne du compteur sont mémorisées dans les mots 240, 241, 242 et 243. SR 240 SV pour les entrées d’interruption (mode compteur) 0 : 0000 à FFFF SR 241 SV pour les entrées d’interruption (mode compteur) 1 : 0000 à FFFF SR 242 SV pour les entrées d’interruption (mode compteur) 2 : 0000 à FFFF SR 243 SV pour les entrées d’interruption (mode compteur) 3 : 0000 à FFFF 73 Chapitre Compteurs à grande vitesse du CPM2A/CPM2C 2-2 Démarrage de la fonction de comptage et autorisation d’interruptions Compteur à incrémentation (@)INT(89) 004 000 C2 Intitulé de la commande d’interruption (004 : Rafraîchit la SV du compteur à incrémentation) Fixe : 000 Mot de donnée de commande Compteur à décrémentation (@)INT(89) 003 000 C2 Intitulé de la commande d’interruption (003 : Rafraîchit la SV du compteur à décrémentation) Fixe : 000 Mot de donnée de commande Spécifier et mémoriser 0 Spécifier l’entrée d’interruption (Compteur mode) 3 Spécifier l’entrée d’interruption (Compteur mode) 2 Spécifier l’entrée d’interruption (Compteur mode) 1 Spécifier l’entrée d’interruption (Compteur mode) 0 0 : Rafraîchit la SV 1 : Ne rafraîchit pas la SV Rem. Lorsque l’INT(89) est exécuté pour masquer des interruptions pendant l’opération de comptage (intitulé de la commande d’interruption 000), l’opération de comptage est arrêtée et la PV du compteur est remise à zéro. Pour utiliser le compteur à nouveau, recommencer l’opération de comptage comme décrit ci-dessus. Changement de la PV Cette fonction rafraîchit la valeur en cours du compteur (PV). (@)INT(89) P 002 C2 Spécificateur de port (100. 102, 102, 103 : Entrées d’interruption (Mode compteur 0 à 3) Intitulé de la commande (002 : Change la PV) Changer le mot de donnée de la PV C2 Changer la donnée de la PV Enregistre la donnée de la PV à changer. 0000 à FFFF Lecture de la PV Cette fonction lit la valeur en cours du compteur (PV). 74 Chapitre Compteurs à grande vitesse du CPM2A/CPM2C 2-2 Utilisation d’une instruction (@)PRV(62) P 000 D Spécificateur de port (100. 102, 102, 103 : Entrées d’interruption (Mode compteur 0 à 3) Intitulé de la commande (000 : Lire la PV) Mot pour mémoriser la PV D Lire la donnée de la PV La PV lue est mémorisée ici. 0000 à FFFF Utilisation des zones de données La valeur en cours du compteur à grande vitesse (PV) est mémorisée dans les mots SR 244 à SR 247 comme montré ci--dessous : SR 244 PV Entrée d’interruption (Mode compteur) 0 SR 245 PV Entrée d’interruption (Mode compteur) 1 SR 246 PV Entrée d’interruption (Mode compteur) 2 SR 247 PV Entrée d’interruption (Mode compteur) 3 Les mots SR 244 à SR 247 sont rafraîchis à chaque balayage, il peut donc y avoir une anomalie par rapport à la PV exacte à un moment donné. Les mots SR 244 à SR 247 ne peuvent pas être utilisés comme mots de travail même lorsque les entrées d’interruption (en mode compteur) ne sont pas utilisées. Lorsque la PV est lue en exécutant PRV(62), les mots 244 à 247 sont rafraîchis en même temps. Masquage/démasquage de toutes les interruptions Pour plus d’information concernant le masquage et démasquage de toutes les interruptions, se reporter au paragraphe 2-1-1 Entrées d’interruption. Exemple d’application Explication Dans cet exemple, la PV est décrémentée chaque fois que l’entrée 00003 passe sur ON et DM 0000 est incrémenté de 1 par un sous--programme d’interruption toutes les 100 fois (64 Hex) que cette entrée 00003 passe sur ON. Câblage Le schéma suivant montre le câblage d’entrée dans le CPM2A. Périphérique d’entrée 75 Chapitre Fonctions d’interruption du CPM1/CPM1A 2-3 Le schéma suivant montre le câblage d’entrée dans le CPM2C. Bornes d’entrée Connecteur d’entrée Périphérique d’entrée Périphérique d’entrée Setup de l’API 15 DM 6628 0 0 0 0 1 Indique le bit 00003 comme entrée d’interruption (en mode compteur). Les entrées 00004 à 00006 sont utilisées comme entrées ordinaires. Programmation Sur ON pour 1 cycle au début du fonctionnement Efface la zone d’incrément (DM 0000). Configuration du compteur à décrémentation SV du compteur : 64 Hex (100 fois) Mémorise la SV dans le mot 240. (89) Démarre le compteur avec le bit 00003 comme entrée d’interruption (Mode compteur). Rafraîchit la SV du compteur (Compteur à décrémentation). Toujours 000. Indique le bit 00003 (les autres sont masqués). Exécuté une fois lorsque la valeur de consigne est atteinte. 2-3 Fonctions d’interruption du CPM1/CPM1A Ce chapitre explique les configurations et les méthodes pour l’utilisation des fonctions d’interruption du CMP1/CPM1A. 2-3-1 Types d’nterruptions Le CPM1/CPM1A a trois types de traitement d’interruptions décrits ci-dessous. 76 Fonctions d’interruption du CPM1/CPM1A Chapitre 2-3 Entrée d’interruption Les API du CPM1/CPM1A ont deux ou quatre entrées d’interruption. Le traitement d’interruption est exécuté quand l’une de ces entrées est passée sur ON depuis une source extérieure. Interruptions par temporisation cyclique Le traitement d’interruption est exécuté par une temporisation cyclique avec une précision de 0,1 ms. Interruptions des compteurs à grande vitesse Le compteur à grande vitesse compte des entrées d’impulsion dans l’un des bits 00000 à 00002 de l’unité centrale. Le traitement d’interruption est exécuté quand le comptage atteint la valeur de consigne d’un compteur à grande vitesse intégré. Priorité d’interruption Lorsqu’une interruption se produit, le programme de traitement d’interruption indiqué est exécuté. Les interruptions ont le niveau de priorité suivant : Entrées d’interruption > Interruptions cycliques = Interruptions de compteur à grande vitesse Lorsqu’une interruption avec une priorité plus élevée est reçue pendant le traitement d’interruption, les traitements courants sont arrêtés et l’interruption nouvellement reçue est traitée à la place. Dès que le programme a été complètement exécuté, le traitement de l’interruption précédente est repris. Lorsqu’une interruption avec une priorité inférieure ou égale est reçue pendant le traitement d’interruption, elle est traitée dès que l’interruption actuellement traitée est complètement exécutée. Lorsque deux interruptions avec une priorité égale sont reçues en même temps, elles sont exécutées dans l’ordre suivant : Entrée d’interruption 0 > Entrée d’interruption 1 > Entrée d’interruption 2 > Entrée d’interruption 3 Interruption cyclique > Interruption de compteur à grande vitesse Conseils d’utilisation des programmes d’interruption 1, 2, 3... Observer les conseils d’utilisation suivants lors de l’utilisation de programmes d’interruption : Une nouvelle interruption peut être définie dans un programme d’interruption. En outre, une interruption peut être effacée dans un programme d’interruption. Un autre programme d’interruption ne peut pas être écrit dans un programme d’interruption. Un sous-programme ne peut pas être écrit dans un programme d’interruption. Ne pas écrire une instruction SUBROUTINE DEFINE, SBN(92), dans un programme d’interruption. Un programme d’interruption ne peut pas être écrit dans un sous-programme. Ne pas écrire un programme d’interruption entre une instruction SUBROUTINE DEFINE (SBN(92)) et une instruction RETURN (RET(93)). Les entrées utilisées comme interruption ne peuvent pas être utilisées comme entrées normales. Instructions et interruptions de compteur à grande vitesse Les instructions suivantes ne peuvent pas être exécutées dans un sous-programme d’interruption quand une instruction qui commande les compteurs à grande vitesse est exécutée dans le programme principal : INI(61), PRV(62) ou CTBL(63) 77 Chapitre Fonctions d’interruption du CPM1/CPM1A 2-3 Les méthodes suivantes peuvent être utilisées pour éviter cette limitation : Méthode 1 Tout traitement d’interruption peut être masqué lorsque l’instruction est exécutée. @INT(89) 1,0 000 000 INI(61) 000 000 000 @INT(89) 200 000 000 Méthode 2 Exécuter l’instruction de nouveau dans le programme principal. 1, 2, 3... Voici la section de programme du programme principal : @PRV(62) 000 002 DM 0000 LR 0000 CTBL(63) 000 000 DM 0000 RSET LR 0000 Voici la section de programme du sous-programme d’interruption : SBN(92) 000 25313 @CTBL(63) 000 000 DM 0000 25503 Rem. 78 LR 0000 1. Définir les programmes d’interruption à la fin du programme principal avec les instructions SBN(92) et RET(93), comme des sous-programmes normaux. 2. Lors de la définition d’un programme d’interruption, une erreur de “SBS UNDEFD” se produira pendant l’opération de contrôle du programme, mais le programme sera exécuté normalement. Chapitre Fonctions d’interruption du CPM1/CPM1A 2-3 2-3-2 Entrées d’interruption Les unités centrales à 10 points (CPM1-10CDR-j et CPM1A-10CDR-j) ont deux entrées d’interruption (00003 et 00004). Les unités centrales à 20, 30 et 40 points (CPM1-20CDR-j, CPM1A-20CDRj, CPM1-30CDR-j(-V1), CPM1A-30CDR-j et CPM1A-40CDR-j) ont quatre entrées d’interruption (00003 à 00006). Il existe deux modes pour des entrées d’interruption : le mode d’entrée d’interruption et mode compteur. Les API de CPM1 00004 00003 00004 00005 00006 UC 20 et 30 points (CPM1-20CDR-j et CPM1-30CDR-j(-V1)) 00003 UC 10 points (CPM1-10CDR-j) NC 24VDC Les API de CPM1A UC 20n 30 et 40 points (CPM1A-20CDR-j, CPM1A-30CDR-j et CPM1A-40CDR-j) UC 10 points (CPM1A-10CDR-j) UC Entrée Numéro d’interrup d’i tion CPM1-10CDR-j CPM1A 10CDj j CPM1A-10CDj-j 00003 00 00004 01 CPM1-20CDR-j CPM1A 20CDj j CPM1A-20CDj-j 00003 00 00004 01 CPM1-30CDR-j(-V1) CPM1 30CDR j( V1) CPM1A-30CDj-j CPM1A 30CDj j 00003 02 CPM1A-40CDj-j 00004 03 Temps de réponse Mode d’interruption 0,3 , ms max. Mode compteur 1 kHz (Temps jusqu jusqu’à à la fn d’exécution du programme p g d’interruption) Rem. Si des entrées d’interruption ne sont pas utilisées, utiliser les entrées 00003 à 00006 en tant qu’entrées courantes. Configuration de l’entrée d’interruption Les entrées 00003 à 00006 doivent être définies comme entrées d’interruption en DM 6628 lorsqu’elles doivent être utilisées pour des entrées d’interruption dans le CPM1/CPM1. Définir le digit correspondant à 1 lorsque l’entrée doit être utilisée comme entrée d’interruption (entrée d’interruption ou mode compteur) ; la définir à 0 lorsqu’elle doit être utilisée comme entrée courante. 79 Chapitre Fonctions d’interruption du CPM1/CPM1A Mot Paramétrage DM 6628 0 : Entrée normale (paramètre par défaut) 1 : Entrée d d’interruption interruption 2 : Entrée à capture Bit 15 2-3 0 DM 6628 Configuration pour l’entrée 00006 : Défini à 1 Configuration pour l’entrée 00005 : Défini à 1 Configuration pour l’entrée 00004 : Défini à 1 Configuration pour l’entrée 00003 : Défini à 1 00003 à 0006 sont les numéros d’interruption assignés 000 à 003 et appellent les sous-programmes 000 à 003. Si les entrées d’interruption ne sont pas utilisées, les sous-programmes 000 à 003 peuvent être utilisés comme sous-programmes normaux. Sous-programmes d’interruption Numéro d’entrées Rafraîchissement d’entrée Numéro d’interruption 00003 0 Numéro de sous-programme 000 00004 1 001 00005 2 002 00006 3 003 Si le rafraîchissement d’entrée n’est pas utilisé, l’état du signal d’entrée dans le programme d’interruption ne sera pas fiable. Selon la constante de temps d’entrée, les signaux d’entrée pourraient ne pas continuer même si le rafraîchissement d’entrée est utilisé. Ceci inclut l’état du bit d’entrée d’interruption ayant activé l’interruption. Par exemple, IR 00000 ne serait pas sur ON dans un programme d’interruption pour l’entrée d’interruption 0 à moins qu’elle ait été rafraîchie. Dans ce cas, utiliser le drapeau Toujours ON, SR 25313 dans programme d’interruption au lieu d’IR 00000. Mode entrée d’interruption Lorsqu’un signal d’entrée d’interruption est reçu, le programme principal est interrompu et le programme d’interruption est exécuté immédiatement, indépendamment du point dans le cycle où l’interruption est reçue. Le signal doit être sur ON pour 200 " ou plus pour être détecté. Programme principal Programme principal Programme d’interruption Entrée d’interruption Utiliser les instructions suivantes pour programmer des entrées d’interruption en utilisant le mode entrée d’interruption. 80 Chapitre Fonctions d’interruption du CPM1/CPM1A 2-3 Masquage/démasquage des interruptions Avec l’instruction INT(89), définir ou effacer les masques d’entrée d’interruption comme requis. (@)INT(89) 000 Configurer avec le mot D des bits 0 à 3, correspondant aux entrées d’interruption 0 à 3. 0 : Masque effacé (entrée d’interruption activée). 000 1 : Masque défini (entrée d’interruption désactivée). D Toutes les entrées d’interruption sont masquées quand le fonctionnement de l’API commence. Si le mode d’entrée d’interruption est utilisé, s’assurer de permettre les entrées en exécutant INT(89) comme montré ci-dessus. Effacement des interruptions masquées Si le bit correspondant à une entrée d’interruption passe sur ON alors qu’il est masqué, cette entrée d’interruption sera enregistrée dans la mémoire et exécutée dès que le masque sera effacé. Afin que cette entrée d’interruption ne soit pas exécutée quand le masque est effacé, l’interruption doit être effacée de la mémoire. Seul un signal d’interruption sera sauvé dans la mémoire pour chaque numéro d’interruption. Avec l’instruction INT(89), effacer l’entrée d’interruption de la mémoire. Si les bits D 0 à 3, correspondant aux entrées d’interruption 0 à 3, sont définis à “1”, alors les entrées d’interruption seront effacées de la mémoire. (@)INT(89) 001 000 0 : Entrée d’interruption conservée. D 1 : Entrée d’interruption effacée. Lecture de l’état du masque Avec l’instruction INT(89), lire l’état du masque de l’entrée d’interruption. L’état du digit à l’extrême droite des données enregistrées dans le mot D (bits 0 à 3) indique l’état du masque. (@)INT(89) 002 0 : Masque effacé (entrée d’interruption activée). 000 1 : Masque défini (entrée d’interruption désactivée). D Exemple de programme Lorsque l’entrée 00003 (interruption numéro 0) est sur ON, le traitement se déplace immédiatement au programme d’interruption avec le sous-programme numéro 000. Les entrées pour DM 6628 ont été définies à 0001. 25315 Premier drapeau de cycle Sur ON pour 1 cycle @INT(89) 000 Masquage/démasquage des entrées d’interruption. 000 #000E SBN(92) Démasque 00003 (entrée d’interruption 0), masque les autres. 000 Programme d’interruption RET(93) Mode compteur Les entrées de signal externes sont comptées à grande vitesse et une interruption est produite quand le comptage atteint la valeur de consigne. Quand une 81 Chapitre Fonctions d’interruption du CPM1/CPM1A 2-3 interruption est générée, le programme principal est interrompu et le programme d’interruption est exécuté. Des signaux jusqu’à 1 kHz peuvent être comptés. Programme principal Programme principal Programme d’interruption Entrée d’interruption Valeur de consigne Utiliser les étapes suivantes pour programmer des entrées d’interruption en utilisant le mode compteur. 1, 2, 3... Ecrire les valeurs de consigne pour le fonctionnement du compteur aux mots SR montrés dans le tableau suivant. Les valeurs de consigne sont écrites entre 0000 et FFFF (0 à 65 535). Une valeur de 0000 neutralise l’opération de comptage jusqu’à ce qu’une nouvelle valeur soit définie et l’étape 2, ci-dessous, est répétée. Interruption Mot Entrée d’interruption 0 SR 240 Entrée d’interruption 1 SR 241 Entrée d’interruption 2 SR 242 Entrée d’interruption 3 SR 243 Les mots SR utilisés dans le mode compteur (SR 240 à SR 243) contiennent des données hexadécimales, pas BCD. Si le mode compteur n’est pas utilisé, ces mots peuvent être utilisés comme bits de travail. Rem. Ces mots SR sont effacés au début de l’opération et doivent être écrits par le programme. Avec l’instruction INT(89), rafraîchir la valeur de consigne du mode compteur et permettre les interruptions. (@)INT(89) 003 000 D Si les bits D 0 à 3, correspondant aux entrées d’interruption 0 à 3, sont définis à “0”, alors la valeur de consigne sera rafraîchie et les interruptions seront autorisées. 0 : Valeur de consigne du mode compteur rafraîchie et masque effacé. 1 : Non rafraîchie. S’assurer de placer le bit correspondant à 1, si une entrée d’interruption n’est pas commandée. L’entrée d’interruption pour laquelle la valeur de consigne est rafraîchie sera permise en mode compteur. Quand le compteur atteint la valeur de consigne, une interruption se produira, le compteur sera remis à zéro et comptage/interruptions continueront jusqu’à ce que le compteur soit arrêté. Rem. 82 1. Si l’instruction INT(89) est utilisée pendant le comptage, la valeur en cours (PV) reviendra à la valeur de consigne (SV). La forme différenciée de l’instruction doit être utilisée ou une interruption ne peut jamais se produire. 2. La valeur de consigne sera définie lors de l’exécution de l’instruction INT(89). Si des interruptions sont déjà en fonction, alors la valeur de consigne ne sera pas changée juste en changeant le contenu de SR 240 à SR 243, c.--à--d. si le contenu est changé, la valeur de consigne doit être rafraîchie en exécutant de nouveau l’instruction INT(89). Chapitre Fonctions d’interruption du CPM1/CPM1A 2-3 Des interruptions peuvent être masquées en utilisant le même processus qu’avec le mode d’entrée d’interruption, mais si les interruptions masquées son effacées en utilisant le même processus, les interruptions fonctionneront en mode d’entrée d’interruption et non en mode compteur. Les signaux d’interruption reçus pour des interruptions masquées peuvent également être effacés en utilisant le même processus que pour le mode d’entrée d’interruption. PV du compteur en mode compteur Quand des entrées d’interruption sont utilisées en mode compteur, la PV du compteur sera mémorisée dans le mot SR correspondant aux entrées d’interruption 0 à 3. Les valeurs sont 0000 à FFFE (0 à 65 534) et égaleront la PV du compteur moins un. Interruption Mot Entrée d’interruption 0 SR 244 Entrée d’interruption 1 SR 245 Entrée d’interruption 2 SR 246 Entrée d’interruption 3 SR 247 Exemple : La valeur en cours pour une interruption dont la valeur de consigne est 000A sera enregistrée en tant que 0009 juste après qu’INT(89) soit exécutée. Rem. Même si des entrées d’interruption ne sont pas utilisées dans le mode compteur, ces bits SR ne peuvent pas être utilisés comme bits de travail. 83 Chapitre Fonctions d’interruption du CPM1/CPM1A 2-3 Exemple de programme Lorsque l’entrée 00003 (numéro d’interruption 0) passe 10 fois à l’état ON, le fonctionnement se déplace immédiatement au programme d’interruption avec le sous-programme numéro 000. Le tableau suivant montre où les valeurs de consigne et les valeurs en cours du compteur --1 sont mémorisées. Les entrées pour DM 6628 sont définies à 0001. Interruption Mot contenant SV Entrée 00003 (entrée d’interruption 0) Entrée 00004 (entrée d’interruption 1) Entrée 00005 (entrée d’interruption 2) Entrée 00006 (entrée d’interruption 3) SR 240 Mot contenant PV--1 SR 244 SR 241 SR 245 SR 242 SR 246 SR 243 SR 247 25315 Premier drapeau de cycle Sur ON pour 1 cycle MOV(21) #000A Définit la SV à 10 (0000 à FFFF) 240 Mot contenant la SV (SR 240) 003 Rafraîchir les SV du compteur. @INT(89) 000 #000E SBN(92) Rafraîchit la SV de 00003 (entrée d’interruption 0) seulement. 000 Programme d’interruption RET(93) 2-3-3 Masquage de toutes les interruptions Toutes les interruptions, y compris les entrées d’interruption, les interruptions par temporisation cyclique et les interruptions de compteur à grande vitesse, peuvent être masquées ou non en tant que groupe au moyen de l’instruction INT(89). Ce masquage est en supplément de tous les masques sur les différents types d’interruptions individuelles. En outre, effacer les masques pour que toutes les interruptions n’efface pas les masques pour les types d’interruptions individuelles, mais les réactualise aux conditions masquées qui existaient avant qu’INT(89) soit exécutée pour les masquer en tant que groupe. Ne pas utiliser INT(89) pour masquer des interruptions à moins qu’il soit necessaire de masquer temporairement toutes les interruptions et toujours utiliser les instructions INT(89) par paires pour le faire, en utilisant la première instruction INT(89) pour masquer la seconde pour démasquer les interruptions. INT(89) ne peut pas être utilisée pour masquer et démasquer toutes les interruptions dans des programmes d’interruptions. Interruptions de masquage Utiliser l’instruction INT(89) pour désactiver toutes les interruptions. (@)INT(89) 1,0 000 000 84 Chapitre Fonctions d’interruption du CPM1/CPM1A 2-3 Si une interruption est générée tandis que des interruptions sont masquées, le traitement d’interruption ne sera pas exécuté mais l’interruption sera entregistrée pour l’entrée, la temporisation cyclique et les interruptions de compteur à grande vitesse. Les interruptions seront alors activées dès que les interruptions seront démasquées. Interruptions de démasquage Utiliser l’instruction INT(89) pour démasquer les interruptions comme suit : (@)INT(89) 200 000 000 2-3-4 Interruptions par temporisation cyclique Le CPM1/CPM1A est équipé d’une temporisation cyclique. Durant un délai d’attente de la temporisation cyclique, le programme principal est interrompu et le programme d’interruption est exécuté immédiatement, indépendamment du point dans le cycle. Deux modes de fonctionnement de la temporisation cyclique existent, le mode à une impulsion pour lequel seulement une interruption sera exécutée à l’expiration du temps et le mode d’interruption programmée pour lequel l’interruption est répétée à intervalle fixe. La valeur de consigne de la temporisation cyclique peut être placée n’importe où de 0,5 à 319968 ms, par unités de 0,1 ms. Utiliser l’instruction suivante pour activer et commander la temporisation cyclique. Fonctionnement Démarrage en mode à une impulsion Utiliser l’instruction STIM(69) pour commencer la temporisation cyclique en mode à une impulsion. (@)STIM(69) C1 1, 2, 3... C1 : Tempor. cyclique, mode à une impulsion (000) C2 C2 : Val. de consigne de tempor. (adresse du 1er mot) C3 C3 : Nº du sous-prog. (4 digits BCD) : 0000 à 0049 Lorsque C2 est écrit comme une adresse de mots : C2 : Valeur de consigne du compteur à décrémentation (4 digits BCD) : 0000 à 9999 C2 + 1 : Intervalle de temps de décrémentation (4 digits BCD ; unité : 0,1 ms) : 0005 à 0320 (0,5 ms à 32 ms) Chaque fois que l’intervalle indiqué dans le mot C2 + 1 s’écoule, le compteur à décrémentation décroît la valeur en cours de un. Lorsque la PV atteint 0, le sous-programme indiqué n’est appelé qu’une fois et la temporisation s’arrête. Le temps depuis l’instruction STIM(69) jusqu’à écoulement du temps est calculé comme suit : (Contenu de C2) # (Contenu de C2 + 1) # 0,1 ms = (0,5 à 319 968 ms) Lorsque C2 est entré comme constante : La valeur de consigne du compteur à décrémentation égalisera la constante indiquée (en ms) et l’intervalle de temps de décrémentation vaut 10 (1 ms). 85 Chapitre Fonctions d’interruption du CPM1/CPM1A 2-3 Démarrage en mode d’interruption programmée Utiliser l’instruction STIM(69) pour commencer la temporisation cyclique en mode d’interruption programmée. (@)STIM(69) 1, 2, 3... C1 C1 : Horloge, mode interruption programmée (003) C2 C2 : Val. de consigne de temporisation (Nº de mot de tête) C3 C3 : Nº de sous-prog. (4 digits BCD) : 0000 à 0049 Lorsque C2 est écrit comme une adresse de mot : C2 : Valeur de consigne du compteur à décrémentation (4 digits BCD) : 0000 à 9999 C2 + 1 : Intervalle de temps de décrémentation (4 digits BCD ; unité : 0,1 ms) : 0005 à 0320 (0,5 ms à 32 ms) Les significations de la configurations sont les mêmes que pour le mode à une impulsion, mais en mode à interruption programmée la PV de la temporisation sera réinitialisée à la valeur de consigne et la décrémentation recommencera dès que le sous-programme aura été appelé. En mode d’interruption programmée, les interruptions continueront à être répétées à intervalles fixes jusqu’à ce que l’opération soit arrêtée. Lorsque C2 est entré comme constante : La configuration est la même que pour le mode à une impulsion, mais les interruptions continueront à être répétées à intervalles fixes jusqu’à ce que le fonctionnement soit arrêté. Lecture du temps écoulé de la temporisation Utiliser l’instruction STIM(69) pour lire le temps écoulé de la temporisation. (@)STIM(69) C1 C2 C3 C1 : Lecture du temps écoulé (006) C2 : Mot de tête du paramètre 1 C3 : Paramètre 2 C2 : Nombre de fois où le compteur à décrémentation a été dérémenté (4 digits BCD) C2 + 1 : Intervalle de temps du compteur à décrémentation (4 digits BCD ; unité : 0,1 ms) C3 : Temps écoulé depuis la décrémentation précédente (4 digits BCD ; unité : 0,1 ms) Le temps entre le départ de la temporisation cyclique et l’exécution de cette instruction est calculé comme suit : {(Contenu de C2) # (Contenu de C2+1) + (Contenu de C3)} # 0,1 ms Si la temporisation cyclique indiquée est arrêtée, alors “0000” sera mémorisé. Arrêt de la temporisation Utiliser l’instruction STIM(69) pour arrêter la temporisation cyclique. (@)STIM(69) C1 000 000 86 C1 : Arrêt de l’horloge (010) Chapitre Fonctions d’interruption du CPM1/CPM1A Exemple d’application (Mode à une impulsion) 2-3 Dans cet exemple, une interruption est produite 2,4 ms (0,6 ms # 4) après que l’entrée 00005 est sur ON ; l’interruption exécute le sous-programme d’interruption numéro 23. 25315 Premier drapeau de cycle Sur ON pour 1 cycle MOV(21) #0004 DM 0010 Définit la valeur de consigne du compteur à décrémentation à 4 (BCD : 0000 à 9999) MOV(21) #0006 DM 0011 Définit l’intervalle de temps de décrémentation à 0,6 ms (BCD : 0005 à 0320) 00005 @STIM(69) 000 DM 0010 #0023 Démarre l’horloge en mode à une impulsion. Indique le premier contenant la valeur de consigne. Indique le numéro de sous-programme (23). SBN(92) 023 Programme d’interruption RET(93) Exemple d’application (Mode d’interruption programmée) Dans cet exemple, une interruption est produite toutes les 4,0 ms (1,0 ms # 4) après que l’entrée 00005 passe sur ON ; les interruptions exécutent le sous-programme d’interruption numéro 23. 25315 Premier drapeau de cycle Sur ON pour 1 cycle MOV(21) #0004 DM 0010 Définit la valeur de consigne du compteur à décrémentation à 4 (BCD : 0000 à 9999) MOV(21) #0010 DM 0011 Définit l’intervalle de temps de décrémentation à 1,0 ms. (BCD : 0005 à 0320) 00005 @STIM(69) 003 DM 0010 #0023 Démarre l’horloge en mode d’interruption programmée. Indique le premier contenant la valeur de consigne. Indique le numéro de sous-programme (23). SBN(92) 023 Programme d’interruption RET(93) 2-3-5 Interruptions du compteur à grande vitesse Les API du CPM1/CPM1A ont une fonction compteur à grande vitesse qui peut être utilisée en mode incrémentation ou en mode incrémental/décrémental. Le compteur à grande vitesse peut être combiné avec des entrées d’interruption pour effectuer le contrôle de valeur à atteindre ou de zone de comparaison qui n’est pas affectée par la durée du cycle de l’API. 87 Chapitre Fonctions d’interruption du CPM1/CPM1A 2-3 Les signaux du compteur à grande vitesse peuvent être entrés dans les bits 00000 à 00002 de l’unité centrale. 00002 00001 00000 API CPM1 NC 24VDC API CPM1A Mode Fonctions d’entrée Méthode d’entrée Incrémental/ décrémental 00000 : Entrée phase A 00001 : Entrée phase B 00002 : Entrée phase Z Différence de phase, 4# entrées Incrémentation 00000 : Entrée compteur 00001 : Voir Rem. 00002 : Entrée réinitialisation Entrées individuelles Fréqu. de comptage Plage de comptage 2,5 kHz max. --32767 à 32767 5,0 kHz max. 0 à 65535 Méthodes de commande Commande de valeur à atteindre : jusqu’à 16 valeurs à atteindre et les numéros de sous-programmes d’interruption peuvent être mémorisés. Commande de comparaison de zone : jusqu’à 8 ensembles de valeurs limites supérieures, valeurs limites inférieures et les numéros de sous-programmes d’interruption peuvent être mémorisés. Rem. En mode incrémentation, l’entrée 00001 peut être utilisée comme entrée normale. Le compteur peut être remis à zéro par programme, alors l’entrée 00002 peut être utilisée comme entrée normale. Il est possible d’effectuer une RAZ du compteur non seulement par le programme mais aussi par le signal de phase Z du codeur ; dans ce cas, l’état d’entrée est reflété dans 00002 de la mémoire d’entrée/sortie. Paramétrage du compteur à grande vitesse 88 Le paramétrage suivant doit être fait en DM 6642 lors de l’utilisation de la fonction compteur à grande vitesse du CPM1/CPM1A. Chapitre Fonctions d’interruption du CPM1/CPM1A Bits DM 6642 00 à 03 04 à 07 Paramètres Fonction Incrémentation Définit le mode compteur : 2-3 4 0 : Incrémental/décrémental 4 : Incrémentation Définit la méthode de remise 0 ou 1 à zéro : Incré./ décré. 0 Non utilisé 0 ou 4 0 ou 1 0 ou 1 01 00 0 : Réinitialisation phase Z + programme 1 : Réinitialisation par programme 08 à 15 Définit le compteur : 01 00 : Compteur non utilisé. 01 : Compteur utilisé. Plage de compteur Le compteur à grande vitesse du CPM1/CPM1A utilise l’opération linéaire et le comptage (valeur en cours) est mémorisé en SR 248 etSR 249. Les quatre digits supérieurs sont sauvegardés en SR 249 et les quatre digits inférieurs sont sauvegardés en SR 248. Mode Count range Incrémental/ décrémental F003 2767 à 0003 2767 (--32 767 à 32 767) Le digit le plus à gauche en SR 248 détermine le signe, F est négatif, 0 est positif. 0000 0000 à 00,6 5535 (0 à 65 535) Incrémentation Un dépassement se produira si le comptage dépasse la limite supérieure dans la plage de comptage et un dépassement négatif se produira si le comptage va au-dessous de la limite inférieure dans la plage de comptage Erreur Dépassement Dépassement négatif Traitement Incrémentation Intervient lorsque le comptage est incrémenté depuis 65 535. --- Incrémental/décrémental Intervient lorsque le comptage est incrémenté depuis 32 767. Intervient lorsque le comptage est décrémenté depuis -32 767. Valeur en cours 0FFF FFFF FFFF FFFF Deux types de signaux peuvent être réceptionnés d’un codeur d’impulsion. Le mode de comptage utilisé pour le compteur à grande vitesse dépend du type de signal. Le mode de comptage et le mode de remise à zéro sont définis en DM 6642 ; ces paramètres deviennent effectifs lorsque l’alimentation est activée ou lorsque le fonctionnement de l’API est démarré. Mode incrémental/décrémental : une différence de phase égale à 4 x le signal à deux phases (phases A et B) et une phase Z sont utilisées pour les entrées. Le comptage est incrémenté ou décrémenté selon les différences des signaux à 2 phases. 89 Chapitre Fonctions d’interruption du CPM1/CPM1A 2-3 Mode incrémental : un signal d’impulsion à une phase et un signal de remise à zéro du comptage sont utilisés pour les entrées. Le comptage est incrémenté en fonction du signal à phase unique. Mode incrémental Mode incrémental/décrémental ON ON Entrée d’impulsion OFF Phase A OFF ON Phase B OFF Comptage 1 2 3 4 5 6 7 8 7 6 5 4 3 2 1 0 --1 --2 Incrémentation Comptage 1 2 3 4 Incrémentation uniquement Decrémentation Rem. Il faut obligatoirement utiliser une des méthodes suivantes pour remettre à zéro le compteur lorsqu’on le relance. Il est automatiquement remis à zéro au départ ou à l’arrêt de l’exécution du programme. Les transitions de signaux suivantes sont traitées comme des impulsions d’incrémentation : front montant de phase A vers front montant de phase B vers front descendant de phase A vers front descendant de phase B. Les transitions de signaux suivantes sont traitées comme des impulsions de décrémentation : front montant de phase B vers front montant de phase A vers front descendant de phase B vers front descendant de phase A. Le mode incrémental/décrémental utilise toujours une entrée égale à 4 x la différence de phase. Le nombre de comptages pour chaque tour de codeur est égal à 4 fois la résolution du compteur. Sélectionner le codeur en fonction des gammes de comptage possibles. Méthodes de remise à zéro L’une ou l’autre des deux méthodes décrites ci-dessous peut être choisie pour redéfinir la PV du comptage (c.--à--d. la mettre à 0). Remise à zéro par signal de phase Z + par programme : La PV est remise à zéro lorsque le signal de phase Z (entrée de remise à zéro) passe sur ON tandis que le bit de remise à zéro du compteur à grande vitesse (SR 25200) est sur ON. Remise à zéro par programme : La PV est remise à zéro lorsque le bit de remise à zéro du compteur à grande vitesse (SR 25200) passe sur ON. Réinitialisation par signal phase Z + par programme Rafraîchissement d’entrée/sortie Traitement commun, entretien des communications, etc. 1 cycle Traitement de l’UC Exéc. du prog. Exéc. du prog. (3) (4) (5) Réinit. Réinit. Exéc. du prog. Exéc. du prog. (2) Exéc. du prog. 25200 (1) Phase Z Non réinit. 90 Non réinit. Non réinit. Exéc. du prog. Chapitre Fonctions d’interruption du CPM1/CPM1A Nº Temporisation des commandes (1) Le signal phase Z passe sur ON lorsque SR 25200 passe sur OFF. Le signal phase Z passe sur ON dans le cycle suivant celui où SR 25200 passe sur ON. Le signal phase Z passe sur ON après qu’au moins un cycle se soit écoulé après que SR 25200 passe sur ON. Le signal phase Z passe sur ON dans le cycle suivant celui où SR 25200 passe sur OFF. SR 25200 passe sur ON lorsque le signal phase Z est ON. (2) (3) (4) (5) 2-3 Réinitialisation Non réinitialisé. Non réinitialisé. Réinitialisé avec le bord d’attaque de la phase Z. Réinitialisé avec le bord d’attaque de la phase Z. Non réinitialisé. Rem. Le bit de remise à zéro du compteur à grande vitesse (SR 25200) est rafraîchi une fois par cycle, et afin qu’il soit lu correctement il doit être sur ON pendant au moins un cycle. Le “Z” dans “phase Z” est une abbréviation de “Zéro.” Ce signal indique la position zéro du codeur; Comptage d’interruption du compteur à grande vitesse Pour les interruptions du compteur à grande vitesse 0, un tableau de comparaison est utilisé au lieu d’un “comptage”. Le contrôle de comptage peut être effectué par l’une ou l’autre des deux méthodes décrites ci-dessous. Les états de comparaison (pour comparer à la PV) et les combinaisons de programmes d’interruption sont enregistrés dans le tableau de comparaison. Valeur à atteindre : Un maximum de 16 états de comparaison (valeurs à atteindre et sens de comptage) et des combinaisons de programmes d’interruption sont enregistrés dans le tableau de comparaison. Lorsque la PV du compteur et les sens de comptage correspondent aux condition de comparaison, alors le programme d’interruption indiqué est exécuté. Comparaison de plage (zone) : Huit états de comparaison (limites supérieures et inférieures) et combinaisons de programmes d’interruption sont enregistrés dans le tableau de comparaison. Lorsque la PV est supérieure ou égale à la limite inférieure et inférieure ou égale à la limite supérieure, le programme d’interruption indiqué est exécuté. Le comptage en cours est comparé aux valeurs à atteindre dans l’ordre où les valeurs à atteindre sont placées dans le tableau de comparaison et des interruptions sont produites lorsque le comptage égale chaque valeur à atteindre. Une fois que le comptage a égalé toutes les valeurs à atteindre dans le tableau, le cycle recommence... Comparaisons de valeurs à atteindre Comptage Interruptions Tableau de comparaison Valeur à atteindre 1 Valeur à atteindre 2 Valeur à atteindre 3 Valeur à atteindre 4 Valeur à atteindre 5 Valeur intiale Valeur à atteindre 1 2 3 4 5 91 Chapitre Fonctions d’interruption du CPM1/CPM1A 2-3 Le comptage en cours est comparé de manière cyclique à toutes les plages en même temps et des interruptions sont générées, basées sur les résultats de comparaison. Comparaisons de plage Tableau de comparaison 0 Comptage 1 3 2 Conf. de plage 1 Conf. de plage 2 Conf. de plage 3 Conf. de plage 4 4 Rem. En effectuant des comparaisons de valeur à atteindre, ne pas utiliser à plusieurs reprises l’instruction INI pour changer la valeur courante du comptage et commencer l’opération de comparaison. L’opération d’interruption peut ne pas fonctionner correctement si l’opération de comparaison est commencée juste après un changement de la valeur en cours depuis le programme (L’opération de comparaison revient automatiquement à la première valeur à atteindre une fois qu’une interruption est produite pour la dernière valeur à atteindre. L’opération répétitive est possible simplement en changeant la valeur en cours). Utiliser les étapes suivantes pour programmer le compteur à grande vitesse. Le compteur à grande vitesse commence l’opération de comptage lorsque le Setup de l’API est correctement configuré, mais les comparaisons ne seront pas effectuées avec le tableau de comparaison et des interruptions ne seront pas générées à moins que l’instruction CTBL(63) soit exécutée. Le compteur à grande vitesse est remis à “0” lorsque l’alimentation passe sur ON et lorsque l’opération commence. La valeur en cours du compteur à grande vitesse est maintenue en SR 248 et SR 249. Programmation Contrôle des interruptions du compteur à grande vitesse 1, 2, 3... Utiliser l’instruction CTBL(63) pour enregistrer le tableau de comparaison dans le CPM1/CPM1A et commencer les comparaisons. (@)CTBL(63) P C TB C : (3 digits BCD) 000 : Définit tableau de valeurs spécifiées et démarre comparaison 001 : Définit tableau de comparaison et démarre comparaison 002 : Définit seulement tableau de valeurs spécifiées 003 : Définit seulement tableau de comparaison TB : Premier mot du tableau de comparaison Lorsque C est défini à 000, les comparaisons sont effectuées par la méthode de correspondance de valeur spécifiée ; lorsqu’il est défini à 001, elles sont effectuées par la méthode de comparaison de plage. Le tableau de comparaison est enregistré et, lorsque l’opération de sauvegarde est terminée, les comparaisons commencent. Tandis que des comparaisons sont exécutées, des interruptions à grande vitesse sont exécutées selon le tableau de comparaison. Pour plus d’informations sur le contenu des tableaux de comparaison sauvegardés, se reporter à l’explication de l’instruction CTBL(63) au Chapitre 7 Ensemble d’instructions.. Rem. Les résultats de comparaison sont normalement mémorisés dans les AR 1100 à AR 1107 tandis que la comparaison de plage est exécutée. Lorsque C est défini à 002, les comparaisons sont faites par la méthode de correspondance de valeur spécifiée ; lorsqu’il est défini à 003, elles sont effectuées par la méthode de comparaison de plage. Pour l’une ou l’autre de 92 Chapitre Fonctions d’interruption du CPM1/CPM1A 2-3 ces configurations, le tableau de comparaison sera sauvegardé, mais les comparaisons ne commenceront pas, et l’instruction INI(61) doit être utilisée pour démarrer les comparaisons. Pour arrêter des comparaisons, exécuter l’instruction INI(61) comme montré ci-dessous : (@)INI(61) 000 001 000 Pour recommencer les comparaisons, placer le deuxième opérande à “000” (exécuter la comparaison) et exécuter l’instruction INI(61). Une fois qu’un tableau a été sauvegardé, il est maintenu dans le CPM1/CPM1A lors du fonctionnement (c.--à--d. pendant l’exécution du programme) aussi longtemps qu’aucun autre tableau n’est sauvegardé. Lecture de la PV Deux manières sont possibles pour lire une PV. La première est de la lire depuis les SR 248 et SR 249 et la seconde d’utiliser l’instruction PRV(62). Lecture de SR 248 et SR 249 La PV du compteur à grande vitesse est sauvegardée en SR 248 et SR 249 comme cela est montrée ci-dessous. Le bit le plus à gauche est F pour les valeurs négatives 4 digits ext. gauche SR 249 Rem. 4 digits ext. droite SR 248 Mode incrémental/ décrémental F0032767 à 00032767 (--32767) Mode incrémental 00000000 à 00065535 1. Ces mots sont rafraîchis seulement une fois par cycle, il peut donc y avoir une différence avec la PV en cours. 2. Lorsque le compteur à grande vitesse n’est pas utilisé, les bits dans ces mots peuvent être utilisés comme bits de travail. Utilisation de l’instruction PRV(62) Lire la PV du compteur à grande vitesse en utilisant l’instruction PRV(62). (@)PRV(62) 000 P1 : Premier mot de la PV 000 P1 La PV du compteur à grande vitesse est mémorisée comme montré ci-dessous. Le bit le plus à gauche est F pour les valeurs négatives 4 digits ext. gauche P1+1 4 digits ext. droite P1 Mode incrémental/ décrémental Mode incrémental F0032767 à 00032767 (--32767) 00000000 à 00065535 La PV est lue lorsque l’instruction PRV(62) est réellement exécutée. Changement de la PV Deux manières sont possibles pour changer la PV du compteur à grande vitesse. La première est de la remettre à zéro en utilisant les méthodes de réinitialisation (dans ce cas la PV est remise à zéro). La deuxième manière est d’utiliser l’instruction INI(61). 93 Chapitre Fonctions d’interruption du CPM1/CPM1A 2-3 La méthode utilisant l’instruction INI(61) est expliquée ici. Pour une explicatioin de la méthode de réinitialisation, se reporter au début de cette description du compteur à grande vitesse. Changer la PV de la temporisation en utilisant l’instruction INI(61) comme montré ci-dessous : (@)INI(61) 000 D : 1er mot pour mémoriser les données de changement de PV 002 D 4 digits ext. gauche D1+1 4 digits ext. droite Mode incrémental/ décrémental F0032767 à 00032767 D Mode incrémental 00000000 à 00065535 Pour indiquer qu’un nombre négatif est en mode incrémental/décrémental, mettre à F le digit le plus à gauche. Exemple d’application (Mode incrémental) Cet exemple montre un programme qui utilise le compteur à grande vitesse avec des entrées monophases en mode incrémentation, faisant des comparaisons au moyen de la méthode valeur spécifiée. Les conditions de comparaison (valeur à atteindre et sens de comptage) sont mémorisées dans le tableau de comparaison avec les nombres de sous-programmes. Jusqu’à 16 valeurs à atteindre peuvent être mémorisées. Le sousprogramme correspondant est exécuté lorsque la PV du compteur atteint la valeur à atteindre. Les données suivantes sont mémorisées dans le tableau de comparaison : DM 0000 DM 0001 DM 0002 DM 0003 DM 0004 DM 0005 DM 0006 0002 1000 0000 0030 2000 0000 0001 Nombre de conditions de comparaison : 2 Valeur à atteindre 1 : 1000 Nº prog. d’interruption pour la comparaison 1 : 30 Valeur à atteindre 2 : 2000 Nº prog. d’interruption pour la comparaison 2 : 31 Le schéma suivant montre l’exemple de schéma à contacts. DM 6642 doit être réglé à 01j4, lorsque j est la méthode de remise à zéro pouvant être réglée à 0 ou 1. 25315 (Sur ON pour le premier cycle) CTBL(63) 000 000 DM 0000 SBN(92) Mémorise le tableau de comparaison, mode valeur à atteindre Premier mot du tableau de comparaison 030 Programme d’interruption 30 RET(93) SBN(92) 001 Programme d’interruption 31 RET(93) 94 Chapitre Fonctions d’interruption du CPM1/CPM1A Exemple d’application (Mode incrémental/ décrémental) 2-3 Cet exemple montre un programme utilisant le compteur à grande vitesse avec des entrées à différence de phase en mode incrémental/décrémental, faisant des comparaisons au moyen de la méthode de comparaison de plage. Les conditions de comparaison (limites supérieures et inférieures des plages) sont mémorisées dans le tableau de comparaison avec les numéros de sousprogrammes. Jusqu’à 8 plages séparées peuvent être définies. Le sous-programme correspondant est exécuté lorsque la PV du compteur est dans la plage. Rem. Toujours définir 8 plages. Lorsque moins de 8 plages sont nécessaires, placer les numéros restants de sous-programme à FFFF. La valeur FFFF indique qu’aucun sous-programme ne doit être exécuté. Les données suivantes sont mémorisées dans le tableau de comparaison : DM 0000 1500 DM 0001 0000 Limite inférieure 1 : 1 500 comptages DM 0002 3000 DM 0003 0000 Limite supérieure 1 : 3 000 comptages DM 0004 0040 Nº prog. d’interruption pour la plage 1 : 40 DM 0005 7500 DM 0006 0000 Limite inférieure 2 : 7 500 comptages DM 0007 0000 DM 0008 0001 Limite supérieure 2 : 10 000 comptages DM 0009 0041 Nº prog. d’interruption pour la plage 2 : 41 DM 0010 0000 DM 0011 0000 DM 0012 0000 DM 0013 0000 DM 0014 FFFF Prog. d’interruption de la plage 3 non exécuté . . . . . . . . . . . . DM 0035 0000 DM 0036 0000 DM 0037 0000 DM 0038 0000 DM 0039 FFFF Prog. d’interruption de la plage 8 non exécuté Le schéma suivant montre l’exemple de schéma à contacts. DM 6642 doit être réglé à 01j0, lorsque j est la méthode de remise à zéro pouvant être réglée à 0 ou 1. 25315 (Sur ON pour le premier cycle) CTBL(63) 000 001 DM 0000 SBN(92) Mémorise le tableau de comparaison, mode valeur à atteindre Premier mot du tableau de comparaison 040 Programme d’interruption 40 RET(93) SBN(92) 001 Programme d’interruption 41 RET(93) 95 Chapitre Fonctions d’interruption du SRM1(-V2) 2-4 2-4 Fonctions d’interruption du SRM1(-V2) Ce chapitre explique les configurations et les méthodes pour l’utilisation des fonctions d’interruption SRM1(-V2). 2-4-1 Types d’interruptions Le SRM1(-V2) a seulement un type de traitement d’interruption, comme décrit ci-dessous. Interruptions par temporisation cyclique Le traitement de l’interruption est exécuté par une temporisation cyclique avec une précision de 0,1 ms. 2-4-2 Interruptions par temporisation cyclique Le SRM1(-V2) est équipé d’une temporisation cyclique. Lorsque la temporisation cyclique s’arrête, le programme principal est interrompu et le programme d’interruption est exécuté immédiatement, indépendamment du point dans le cycle. Deux modes existent pour le fonctionnement de la temporisation cyclique, le mode à une impulsion, pour lequel seulement une interruption est exécutée à l’expiration du temps, et le mode d’interruption programmée pour lequel l’interruption est répétée à intervalle fixe. La valeur de consigne de la temporisation cyclique peut être définie n’importe quand de 0,5 à 319 968 ms, par unités de 0,1 ms. Utiliser les instructions suivantes pour activer et commander la temporisation cyclique. Fonctionnement Démarrage en mode à une impulsion Utiliser l’instruction STIM(69) pour commencer la temporisation cyclique en mode à une impulsion. (@)STIM(69) C1 1, 2, 3... C1 : Horloge, mode à une impulsion (000) C2 C2 : Valeur de consigne de la temporisation (adresse du premier mot) C3 C3 : Sous-programme Nº (4 digits BCD) : 0000 à 0049 Lorsque C2 est écrit comme une adresse de mot : C2 : Valeur de consigne du compteur à décrémentation (4 digits BCD) : 0000 à 9999 C2 + 1 : Intervalle de temps de décrémentation (4 digits BCD ; unité : 0,1 ms) : 0005 à 0320 (0,5 ms à 32 ms) Chaque fois que l’intervalle indiqué dans le mot C2 + 1 s’écoule, le compteur à décrémentation décrémentera la valeur en cours de un. Lorsque la PV atteint 0, le sous-programme indiqué est appelé juste une fois et la temporisation s’arrête. Le temps depuis l’exécution de l’instruction STIM(69) jusqu’à l’écoulement du temps est calculé comme suit : (Contenu de C2) # (Contenu de C2 + 1) # 0,1 ms = (0,5 à 319 968 ms) Lorsque C2 est entré comme constante : La valeur de consigne du compteur à décrémentation égalisera la constante indiquée (en ms) et l’intervalle de temps de décrémentation est de 10 (1 ms). 96 Chapitre Fonctions d’interruption du SRM1(-V2) 2-4 Démarrage en mode interruption programmée Utiliser l’instruction STIM(69) pour démarrer la temporisation cyclique en mode d’interruption programmée. (@)STIM(69) C1 C2 C3 1, 2, 3... C1 : Horloge, mode d’interruption programmée (003) C2 : Valeur de consigne de la temporisation (nº du premier mot) C3 : Sous-programme Nº (4 digits BCD) : 0000 à 0049 Lorsque C2 est écrit comme une adresse de mot : C2 : Valeur de consigne du compteur à décrémentation (4 digits BCD) : 0000 à 9999 C2 + 1 : Intervalle de temps de décrémentation (4 digits BCD ; unité : 0,1 ms) : 0005 à 0320 (0,5 ms à 32 ms) Les raisons de paramétrage sont les mêmes que pour le mode à une impulsion, mais en mode d’interruption programmée la PV de la temporisation est réinitialisée à la valeur de consigne et la décrémentation recommence après l’appel du sous-programme. En mode d’interruption programmée, les interruptions continuent à être répétées à intervalles fixes jusqu’à ce que le fonctionnement soit arrêté. Lorsque C2 est entré comme constante : Les paramètres sont les mêmes que pour le mode à une impulsion, mais les interruptions continuent à être répétées à intervalles fixes jusqu’à ce que l’opération soit arrêté. Lecture du temps écoulé de la temporisation Utiliser l’instruction STIM(69) pour lire le temps écoulé de la temporisation. (@)STIM(69) C1 C2 C3 C1 : Lecture du temps écoulé (006) C2 : Premier mot du paramètre 1 C3 : Paramètre 2 C2 : Nombre de fois où le compteur à décrémentation a été décrémenté (4 digits BCD) C2 + 1 : Intervalle de temps du compteur à décrémentation (4 digits BCD ; unité : 0,1 ms) C3 : Temps écoulé depuis la décrémentation précédente (4 digits BCD ; unité : 0,1 ms) Le temps depuis le départ de la temporisation cyclique jusqu’à l’exécution de cette instruction est calculé comme suit : {(Contenu de C2) # (Contenu de C2+1) + (Contenu de C3)} # 0,1 ms Si la temporisation cyclique indiquée est arrêté, alors “0000” est mémorisée. Arrêt de la temporisation Utiliser l’instruction STIM(69) pour arrêter la temporisation cyclique. La temporisation cyclique sera arrêtée. (@)STIM(69) C1 C1 : Arrêt de l’horloge (010) 000 000 97 Chapitre Fonctions d’interruption du SRM1(-V2) Exemple d’application (Mode à une impulsion) 2-4 Dans cet exemple, une interruption est produite 2,4 ms (0,6 ms # 4) après que l’entrée 00005 soit passée sur ON ; l’interruption exécute le sous-programme d’interruption numéro 23. 25315 Premier drapeau de cycle Sur ON pour 1 cycle MOV(21) #0004 DM 0010 Définit la valeur de consigne du compteur à 4 (BCD : 0000 à 9999) MOV(21) #0006 DM 0011 Définit l’intervalle de temps de décrémentation à 0,6 ms (BCD : 0005 à 0320) 00005 @STIM(69) 000 DM 0010 #0023 Démarre l’horloge en mode à une impulsion. Indique le premier mot contenant la valeur de consigne. Indique le numéro de sous-programme (seulement les octets inférieurs sont effectifs). SBN(92) 023 Programme d’interruption RET(93) Exemple d’application (Mode d’interruption programmée) Dans cet exemple, une interruption est produite toutes les 4,0 ms (1,0 ms # 4) après que l’entrée 00005 soit passée sur ON ; les interruptions exécutent le sous-programme d’interruption numéro 23. 25315 Premier drapeau de cycle Sur ON pour 1 cycle MOV(21) #0004 DM 0010 Définit la valeur de consigne du compteur à décrémentation à 4 (BCD : 0000 à 9999) MOV(21) #0010 DM 0011 Définit l’intervalle de temps de décrémentation à 1,0 ms. (BCD : 0005 à 0320) 00005 @STIM(69) DM 0010 Démarre l’horloge en mode d’interruption programmée. #0023 Indique le premier mot contant la valeur de consigne. 003 Indique le numéro de sous-programme (seulement les octets inférieurs sont effectifs). SBN(92) 023 Programme d’interruption RET(93) 98 Chapitre Fonctions de sortie d’impulsions du CPM2A/CPM2C 2-5 2-5 Fonctions de sortie d’impulsions du CPM2A/CPM2C Le CPM2A/CPM2C possède deux sorties d’impulsions. En effectuant une sélection dans le Setup de l’API, ces sorties peuvent être utilisées en tant que deux sorties monophasées sans accélération ni décélération, deux sorties PWM (rapport cyclique fixe) ou deux sorties d’impulsions avec accélération/décélération trapézoïdale (une impulsion + sortie de direction et une sortie d’impulsions avance/retour). Le système de coordonnées de la PV de la sortie d’impulsions est défini dans le Setup de l’API comme relatif ou absolu. Les deux modes sorties d’impulsions sont : le mode indépendant, où les sorties sont arrêtées à une quantité prédéfinie d’impulsions, et le mode continu où les sorties sont arrêtées par une instruction. Rem. Pour utiliser les sorties d’impulsions, il est nécessaire d’utiliser une unité centrale avec des sorties transistor, c’est--à--dire : soit un CPM2A-jjCDT-D soit un CPM2A-jjCDT1-D. Le schéma suivant présente la configuration d’un CPM2A, c’est la même configuration pour un CPM2C Moteur pas à pas Contrôleur du moteur Sorties d’impulsions 99 Chapitre Fonctions de sortie d’impulsions du CPM2A/CPM2C Sorties d’impulsions monophasées sans accél./décél. Instructions d’exécution Sorties d’impulsions à rapport cyclique variable 2-5 Sorties d’impulsions monophasées avec accélération/décélération trapézoïdale Sorties d’impulsions et de direction Sorties d’impulsions Avance/Retour PULS(65) et SPED(64) Sortie d’impulsions 0 (Voir Rem. 1.) PWM(----) PULS(65) et ACC(----) Sortie d’impulsions 0 (Voir Rem. 1.) Sortie d’impulsions 1 (Voir Rem. 1.) Sortie d’impulsions 1 (Voir Rem. 1.) Sortie d’im-pulsion p 0 Plage de fréquence de sortie Pas 10 Hz à 10 kHz 0,1 à 999,9 Hz 10 Hz à 10 kHz 10 Hz à 10 kHz 10 Hz 0,1 Hz 10 Hz 10 Hz Pas fréquence Avance/Retour Pas de la vitesse de démarrage Mode sortie --- --- 10 Hz (Voir Rem. 2.) 10 Hz (Voir Rem. 2.) --- --- 10 Hz 10 Hz Continu, Indépendant 1 à 16777215 Continu Continu, Indépendant Continu, Indépendant --- !1 à 16777215 !1 à 16777215 50% 0 à 100% 50% 50% Oui Non Oui Oui Non Non Oui Oui Non Non Oui Oui Non Oui Non Non Numéro de sortie 01000 01001 Nombre d’impulsions Rapport cyclique (Voir Rem. 3.) Méthode Caractéristique de com-- du mouvement mande Caractéristique d’accél/décél Caractéristique de vitesse de démarrage Caractéristique PWM Rem. 100 Sortie d’impulsions Sortie de direction Sortie d’im-pulsion p 0 Sortie d’impulsions CW Sortie d’impulsions CCW 1. Avec les sorties d’impulsions monophasées, les sorties d’impulsions 0 et 1 peuvent chacune être une sortie indépendante l’une de l’autre. 2. Les sorties d’impulsions sont accélérées ou décélérées avec une fréquence minimum de 10 Hz toutes les 10 ms. 3. Les impulsions réelles dépendent du temps de réponse ON de sortie transistor (20 "s max.) et du temps de réponse OFF (40 "s max.). Le tableau suivant présente le lien existant entre le compteur à grande vitesse et les autres fonctions du CPM2A/CPM2C. Chapitre Fonctions de sortie d’impulsions du CPM2A/CPM2C 2-5 Interruptions par temporisation cyclique Inutilisable simultanément. Commande d’impulsions synchronisée Entrées d’interruption Utilisable simultanément. Interruptions par temporisation cyclique Compteurs à grande vitesse Utilisable simultanément. Entrées d’interruption (mode compteur) Sorties d’impulsions Utilisable simultanément. Entrées à capture Utilisable simultanément. Constante de temps d’entrée Utilisable simultanément. Horloge Utilisable simultanément. Utilisable simultanément. Voir Rem. Rem. Le nombre de sorties simultanées varie en fonction du type de sortie d’impulsions, comme le tableau suivant le résume : PWM Combinaison Ratio fixe Sortie d’impulsions monophasée p s Ratio variable Sortie Sortie d’impulsions et de d’impulsions direction Avance/Retour Inutilisable. Inutilisable. Ratio fixe Utilise deux points simultanément (indépendamment). Utilise un point à la fois (indépendamment). Ratio variable Utilise un point à la fois (indépendamment). Utilise deux points simultanément (indépendamment). Inutilisable. Inutilisable. Inutilisable. Inutilisable. Inutilisable. Inutilisable. Inutilisable. Inutilisable. Inutilisable. Inutilisable. Sortie d’impulsions et de direction Sortie d’impulsions Avance/Retour Jusqu’à deux points transmettent simultanément avec seulement des sorties d’impulsions monophasées, ainsi une sortie de deux points est possible lorsque le rapport cyclique fixe et le rapport cyclique variable sont combinés. Les sorties sont possibles pour un seul point à la fois avec les sorties d’impulsions et de direction et les Sorties d’impulsions avance/retour, ainsi aucune autre impulsion ne peut être transmise. Types de sorties d’impulsions Trois types de sorties d’impulsions existent : les sorties d’impulsions monophasées sans accélération ni décélération, les sorties d’impulsions à rapport cyclique variable et les sorties d’impulsions monophasées sans accélération ni décélération trapézoïdale. Sorties d’impulsions monophasées sans accélération ni décélération # Fréquence : 10 Hz à 10 kHz (définie par unités de 10 Hz.) # Destination de sortie : Numéro de sortie 01000 (Mot 010, bit 00) Numéro de sortie 01001 (Mot 010, bit 01) (Les impulsions se transmettent simultanément et indépendamment de deux points). # Mode sortie : Continu ou indépendant # Nombre d’impulsions : 1 à 16 777 215 101 Fonctions de sortie d’impulsions du CPM2A/CPM2C Chapitre 2-5 PULS(65) et SPED(64) # Instructions : # Avec PULS(65), le nombre d’impulsions est défini pour chaque point (en mode indépendant uniquement). # Avec SPED(64), le mode sortie et la fréquence à atteindre sont définis pour chaque point et les impulsions sont émises. Exécution d’instruction : PULS(65) + SPED(64) (Mode indépendant) Mode indépendant Nombre d’impulsions défini Les sorties s’arrêtent automatiquement lorsque le nombre défini d’impulsions est transmis. Exécution d’instruction : SPED(64) (Mode continu) Mode continu Les impulsions sont émises toujours à la fréquence définie jusqu’à ce qu’une instruction les arrête. Sorties PWM # Rapport cyclique : # Fréquence : # Destination de sortie : 0% à 100% (Défini par unité de 1%) 0,1 à 999,9 Hz (Défini par unité de 0,1 Hz) Numéro de sortie 01000 (Mot 010, bit 00) Numéro de sortie 01001 (Mot 010, bit 01) (Les impulsions se transmettent simultanément et indépendamment de deux points). Continu # Mode sortie : PWM(----) # Instruction : Avec PWM(----), les impulsions sont émises avec un rapport cyclique variable. Exécution d’instruction : PWM(----) Les impulsions sont émises à la fréquence définie jusqu’à ce qu’elles soient arrêtées. Rapport cyclique (D) = ton T Sorties d’impulsions monophasées avec accélération/décélération trapézoïdale 10 Hz à 10 kHz (Défini par unité de 10 Hz) # Fréquence : # Rapport accélération/décélération : 10 Hz/10 ms à 10 kHz/10 ms (Défini par unité de 10 Hz) Sorties d’impulsions et de direction # Pour une sortie en sens horaire (CW) : Numéro de sortie 01001 (Mot 010, bit 01) est basculé sur OFF. Sortie d’impulsions du numéro de sortie 01000 (Mot 010, bit 00). # Pour une sortie en sens anti horaire (CCW) : Numéro de sortie 01001 (Mot 010, bit 01) est basculé sur ON. Sortie d’impulsions du numéro de sortie 01000 (Mot 010, bit 00). 01000 Sorties d’impulsions 01001 Sorties de direction (OFF : fonctionnement CW ; ON : fonctionnement CCW) 102 Chapitre Fonctions de sortie d’impulsions du CPM2A/CPM2C 2-5 Sorties d’impulsions Avance/Retour # Pour une sortie CW : Les impulsions sortent du numéro de sortie 01000 (mot 010, bit 00). # Pour une sortie CCW : Les impulsions sortent du numéro de sortie 01001 (mot 010, bit 01). 01000 Fonctionnement CW 01001 Fonctionnement CCW Continu et indépendant # Mode sortie : # Nombre d’impulsions : 1 à 16 777 215 PULS(65) et ACC(----) # Instructions : # Avec PULS(65), le nombre d’impulsions est défini (en mode indépendant uniquement). # Avec ACC(----), le mode sortie, la fréquence de démarrage, la fréquence à atteindre et le rapport accélération/décélération sont définis, et les sorties d’impulsions sont lancées. A partir du moment où les sorties d’impulsions démarrent jusqu’a ce qu’elles s’arrêtent, elles sont commandées à un changement de fréquence de rapport constant. Mode Indépendant Fréquence de sortie d’impulsions Exécution d’instruction : PULS(65) + ACC(----) (Mode independant) Fréquence à atteindre Fréquence de démarrage Temps 0 Hz Accélération Démarrer Décélération ACC(----) Mode continu Fréquence de sortie d’impulsions Exécution d’instruction : ACC(----) (Mode continu) Fréquence 2 à atteindre Fréquence 3 à attteindre Fréquence 1 à ateindre 0 Hz Temps Démarrage d’accélération/ décélération Accélération/décélération Accélération ou décélération Accélération/décélération Accélération ou décélération ACC(----) ACC(----) ACC(----) 103 Chapitre Fonctions de sortie d’impulsions du CPM2A/CPM2C 2-5 2-5-1 Utilisation des sorties d’impulsions monophasées sans accélération ni décélération (Rapport cyclique fixe) Sélectionner le numéro de sortie d’impulsions. Numéro de sortie d’impulsions 0 ou 1 Câbler des sorties. Numéros de sortie : 01000 et 01001 Système de coordonnées de la PV pour les numéros de sortie d’impulsions 0 et 1 Lancer le Setup de l’API (DM 6629) Créer un programme en schéma à contacts PULS(65) : Pour paramétrer le nombre d’impulsions de sortie. SPED(64) : Pour la commande de sortie d’impulsions sans accélération ni décélération. INI(61) : Pour interrompre les sorties d’impulsions et modifier la PV de sortie d’impulsions. PRV(62) : Pour la lecture de la PV de sortie d’impulsions et de l’état. Sorties d’impulsions monophasées PULS(65) Instruction DEFINIT LES IMPULSIONS Spécifie des impulsions relative ou absolue. SV de la sortie d’impulsions (8 digits BCD) INI(61) SPED(64) Instruction SORTIE VITESSE Sortie d’impulsions 0 Sortie d’impulsions 1 Mode sortie : Continu ou Indépendant Fréq. à atteindre : 10 Hz à 10 kHz Démarrer les S. d’impulsions. InstructionMODE COMMANDE Chaque balayage Chaque balayage Etat de S. d’impulsions Arrête les S. d’impulsions. AR 11 Modifie la PV S. d’impulsions. AR 12 PV de S. d’impulsions SR 228 SR 229 SR 230 SR 231 Immédiatement Instruction LECTURE de la PV du COMPTEUR A GRANDE VITESSE PRV(62) Lecture PV S. d’impulsions. Setup de l’API DM 6629, bits 04 à 07 Sélection du numéro de sortie d’impulsions Sélection de l’un des numéros d’impulsions 0 ou 1. Numéro de sortie 104 Numéro de sortie d’impulsions 01000 0 01001 1 Fonctions de sortie d’impulsions du CPM2A/CPM2C Câblage des sorties Chapitre 2-5 Câbler les sorties du CPM2A comme l’illustration suivante l’indique. Les impulsions sortent indépendamment des sorties d’impulsions 0 et 1. Sortie 01000 : Sortie d’impulsions 0 (sortie monophasée) Sortie 01001 : Sortie d’impulsions 1 (sortie monophasée) Câbler des sorties CPM2C comme l’illustration suivante l’indique. Les impulsions sortent indépendamment des sorties d’impulsions 0 et 1. Connecteur de sortie 01000 : Sortie d’impulsions 0 (sortie mono-phase) 01001 : Sortie d’impulsions 1 (sortie monophasées) Setup de l’API Effectuer les configurations suivantes dans le Setup de l’API. 105 Chapitre Fonctions de sortie d’impulsions du CPM2A/CPM2C Mot DM 6629 DM 6642 Bits Fonction 00 à 03 Impulsion 0 système de coordonnées de la PV 04 à 07 Impulsion 1 système de coordonnées de la PV 08 à 15 Configuration du compteur à grande vitesse 0 : Système de coordonnées relatif 2-5 Paramé-trage Soit 0 soit 1 1 : Système de coordonnées absolu 00 : Ne pas utiliser 01 : Utiliser comme un compteur à grande vitesse Soit 00 soit 01 02 : Utiliser comme une commande d’impulsions synchronisée (10 à 500 Hz). 03 : Utiliser comme une commande d’impulsions synchronisée (20 Hz à 1 kHz). 04 : Utiliser comme une commande d’impulsions synchronisée (300 Hz à 20 kHz). Lorsque des impulsions absolues sont définies avec PULS(65), s’assurer de régler le système de coordonnées absolu (1). La commande d’impulsions synchronisée est inutilisable simultanément. Les configurations prendront effet lors du changement de mode (de PROGRAM à MONITOR/RUN) ou lorsque l’alimentation de l’API est basculée sur ON. Programme en schéma à contacts Le tableau suivant présente les fonctionnements d’instruction concernant les sorties d’impulsions sans accélération ni décélération (rapport cyclique fixe). Instruction (@)PULS(65) (@)SPED(64) Commande Définit le nombre d’impulsions à sortir en mode indépendant. Définit la fréquence des sorties en mode indépendant ou en mode continu, et démarre les sorties d’impulsions. Modifier la fréquence Modifie la fréquence des sorties en mode indépendant ou en mode continu. Interrompt les sorties d’impulsions (en modifiant la vitesse pour une fréquence de 0 Hz). Interrompre les sorties d’impulsions (@)INI(61) (@)PRV(62) Fonctionnement Définir le nombre d’impulsions Définir la fréquence et démarrer les sorties d’impulsions Interrompre les sorties d’impulsions Modifier la PV de sortie d’impulsions Lecture de la PV de sortie d’impulsions Lecture de l’état de sortie d’impulsions Interrompt les sorties d’impulsions. Modifie la PV de sortie d’impulsions. Lit la PV de sortie d’impulsions. Lit l’état de sortie d’impulsions. Le tableau suivant présente les instructions pouvant être exécutées durant les sorties d’impulsions sans accélération ni décélération. 106 Chapitre Fonctions de sortie d’impulsions du CPM2A/CPM2C PULS(65) Mode continu Non Mode indépendant Non SPED(64) Oui (Voir Rem. 2) Oui (Voir Rem. 2) Rem. INI(61) Oui (Voir Rem. 1) Oui (Voir Rem. 1) PRV(62) ACC(----) 2-5 PWM(----) Oui Non Non Oui Non Non 1. Cette instruction s’exécute seulement lorsque les sorties d’impulsions sont interrompues. La PV n’est pas modifiable tant que les impulsions sortent. Si la PV nécessite d’être modifiée, s’assurer d’interrompre d’abord la sortie d’impulsions. 2. Cette instruction s’exécute seulement pour modifier une fréquence et interrompre une sortie d’impulsions. Elle est inutilisable pour basculer du mode indépendant au mode continu. Le tableau suivant présente les mots et les bits concernant les sorties d’impulsions sans accélération ni décélération (rapport cyclique fixe). Bits Dénomination Contenu 228 Mot 00 à 15 229 00 à 15 230 00 à 15 Inutilisable comme bits de travail même lorsqu’ils sont utilisés é comme sorties d’impulsions d’impulsions. 231 00 à 15 252 04 PV de sortie d’impulsions 0, les 4 digits à l’extrême droite PV de sortie d’impulsions 0, les 4 digits à l’extrême gauche PV de sortie d’impulsions 1, les 4 digits à l’extrême droite PV de sortie d’impulsions 1, les 4 digits à l’extrême gauche PV de sortie d’impulsions 0 ré--initialisée PV de sortie d’impulsions 1 ré--initialisée dépassement positif/dépassement négatif Nombre d’impulsions défini pour la sortie d’impulsions 0 14 Sortie d’impulsions terminée pour la sortie d’impulsions 0 ON : Terminé (par SPED(64)) OFF : Pas terminé 15 Sortie d’impulsions en cours pour la sortie d’impulsions 0 ON : En cours (par SPED(64)) OFF : Interrompu 12 dépassement positif/dépassement négatif Nombre d’impulsions définies pour la sortie d’impulsions 1 ON : Se produit OFF : Normal ON : Défini (par PULS(65)) OFF : Non défini 14 Sortie d’impulsions terminée pour la sortie d’impulsions 1 ON : Terminé (par SPED(64)) OFF : Non terminé 15 Sortie d’impulsions en cours pour la sortie d’impulsions 0 ON : En cours (par SPED(64)) OFF : Interrompu 05 AR 11 12 13 AR 12 13 Supprime la PV 0 lorsqu’il est actif. Supprime la PV 1 lorsqu’il est actif. ON : Se produit OFF : Normal ON : Défini (par PULS(65)) OFF : Non défini 107 Fonctions de sortie d’impulsions du CPM2A/CPM2C Chapitre 2-5 Définir le nombre d’impulsions Précise le nombre d’impulsions à transmettre en mode indépendant. (@)PULS(65) P Spécificateur de port (000 : Sortie d’impulsions 0 ; 010 : Sortie d’impulsions 1) D Drapeau de sortie d’impulsions (000 : Impulsion relative ; 001 : Impulsion absolue) (Voir Rem.) Début du mot du paramétrage pour le nombre d’impulsions N N Nombre d’impulsions (digit à l’extrême droite, à l’extrême gauche) 4 digits à l’extrême droite 4 digits à l’extrême gauche N+1 Inscrire le nombre d’impulsions à définir. 96 777 215 à 16 777 215 (soit de --16 777 215 à 16 777 215) Les nombres négatifs s’expriment en basculant sur ON le bit à l’extrême gauche. Drapeau de sortie d’impulsions 000 : Impulsions relatives (SV pour le nombre d’impulsions = Nombre d’impulsions déplacé) 001 : Impulsions absolues (SV pour le nombre d’impulsions = la PV de la sortie d’impulsions + le nombre d’impulsions déplacées)* *Les impulsions absolues sont seulement précisées par le PULS(65) lorsque la PV du système de coordonnées du Setup de l’API est réglé pour un système de coordonnées absolu. Définir la fréquence et démarrer les sorties d’impulsions Modifier la fréquence Ces fonctions définissent le numéro de la sortie d’impulsions, le mode sortie et la fréquence, et commencent les sorties d’impulsions. Elles peuvent également être utilisées pour modifier la fréquence si les sorties d’impulsions sont déjà en cours. (@)SPED(64) M Spécificateur de port (000 : Sortie d’impulsions 0; 010 : Sortie d’impulsions 1) Mode appelation (000 : Indépendant; 001 : Continu) F Mot de données de fréquence à atteindre P F Fréquence à atteindre Inscrire les données de fréquence à atteindre et à définir. #0001 à #1000 (4 digits BCD) : 10 Hz à 10 kHz #0000 : Sortie d’impulsions interrompue Modifier la PV de la sortie d’impulsions Reconfigurer la PV de la sortie d’impulsions Cette fonction modifie la sortie d’impulsions de la valeur en cours (PV). La PV peut également être créée en utilisant la SR 25204 et la SR 25205. (@)INI(61) P 004 C2 C2 C2+1 Spécificateur de port (000 : Sortie d’impulsions 0 ; 010 : Sortie d’impulsions 1) Appellation de la commande (004 : Modifie la PV de la sortie d’impulsions ) Commence le mot pour les données à changer de la PV 4 digits à l’extrême droite 4 digit à l’extrême gauche Modifie les données de la PV (digits à l’extrême droite, extrême gauche) Répertorie les données de la PV à modifier. 96 777 215 à 16 777 215 Les nombres négatifs s’expriment en basculant sur ON le bit à l’extrême gauche. La PV de la sortie d’impulsions n’est modifiable ou réinutilisable que lorsque les sorties d’impulsions sont interrompues. S’assurer que les drapeaux d’évolution de la sortie d’impulsions (AR 1115 et AR 1215) ont été mis sur OFF. 108 Chapitre Fonctions de sortie d’impulsions du CPM2A/CPM2C 2-5 Interrompre les sorties d’impulsions Cette fonction interrompt les sortie d’impulsions. Utilisation du SPED(64) (@)SPED(64) P M F Spécificateur de port (000 : Sortie d’impulsions 0; 010 : Sortie d’impulsions 1) Mode appelation (000 : Indépendant; 001 : Continu) Mot de données de fréquence à atteindre F #0000 Précise une fréquence de 0 Hz. Utilisation du INI(61) (@)INI(61) P 003 000 Spécificateur de port (000 : Sortie d’impulsions 0; 010 : Sortie d’impulsions 1) Intitulé de commande (003 : Interruption des sorties d’impulsions) Fixé : 000 En plus de l’exécution des instructions présentée ci--dessus, il est également possible d’interrompre les sorties d’impulsions en interrompant le fonctionnement (mode PROGRAM). Lecture de la PV de la sortie d’impulsions Cette fonction lit la PV de la sortie d’impulsions. Utilisation d’une instruction (@)PRV(62) P 003 D D D+1 Spécificateur de port (000 : Sortie d’impulsions 0; 010 : Sortie d’impulsions 1) Intitulé de commande (003 : Lecture de la PV de la sortie d’impulsions) Premier mot pour les données à changer de la PV 4 digits à l’extrême droite 4 digits à l’extrême gauche PV de la sortie d’impulsions (digit à l’extrême droite, à l’extrême gauche) Les données de la PV qui sont lues, sont mémorisées ici. 96 777 215 à 16 777 215 Les nombres négatifs s’expriment en basculant sur ON le bit à l’extrême gauche. Utilisation des zones de données Comme l’illustration suivante le montre, la PV de la sortie d’impulsions 0 est mémorisée dans les mots 228 et 229, et la PV de la sortie d’impulsions 1 est mémorisée dans les mots 230 et 231. Sortie d’impulsions 0 Mot 228 Mot 229 Sortie d’impulsions 1 PV Mot 230 (Extrême droite) PV Mot 231 (Extrême gauche) PV (Extrême droite) PV (Extrême gauche) Les mots 228 à 231 sont actualisés à chaque balayage c’est pourquoi, parfois une différence apparaît avec la PV exacte à un moment donné. Les mots 228 à 231 ne sont pas utilisés en tant que mots de travail même lorsque les sorties d’impulsions sont utilisées. Lorsque la PV est lue par l’exécution du PRV(62), les mots 228 à 231 sont actualisés avec la même synchronisation. Lecture de l’état de la sortie d’impulsions Cette fonction lit l’état de la sortie d’impulsions. 109 Chapitre Fonctions de sortie d’impulsions du CPM2A/CPM2C 2-5 Utilisation d’une instruction (@)PRV(62) P 001 D Spécificateur de port (000 : Sortie d’impulsions 0 ; 010 : Sortie d’impulsions 1) Intitulé de commande (001 : Lecture de l’état de la sortie d’impulsions) Mot pour mémoriser l’état de la sortie d’impulsions Etat de la sortie d’impulsions 0 : Vitesse constante ; 1 : Accélération/décélération Dépassement positif/négatif de la PV de la sortie d’impulsions 0 : Normal ; 1 : Se produit un dépassement positif ou négatif Nombres d’impulsions 0 : Non défini 1 : Défini Achèvement de sortie d’impulsions Sortie d’impulsions en cours 0 : Non achevée 1 : Achevée 0 : Interrompu 1 : Sortie en cours Utilisation des zones de données Comme l’illustration suivante le montre, l’état de la sortie d’impulsions 0 est mémorisée dans l’AR 11 et l’état de la sortie d’impulsions 1 est mémorisée dans l’AR 12. AR 11 : Sortie d’impulsions 0 AR 12 : Sortie d’impulsions 1 Etat de la sortie d’impulsions : 0 : Vitesse constante ; Sortie d’impulsions en cours 1 : Accélération/décélération 0 : Interrompu Dépassement positif/négatif de la 1 : Sortie en cours PV de la sortie d’impulsions Achèvement de sortie d’impulsions 0 : Normal 0 : Non achevée 1 : Se produit un dépassement posi1 : Achevée Nombre d’impulsions tif ou négatif 0 : Non défini 1 : Défini Rem. Les drapeaux en AR 11 et en AR 12 sont actualisés à chaque cycle c’est pourquoi les valeurs de ces mots ne reflètent pas toujours l’état réel durant chaque cycle, mais les drapeaux en AR 11 et en AR 12 sont actualisés lorsque l’état est lu avec le PRV(62). Relations entre l’état et le fonctionnement Mode indépendant (sans accélération ni décélération) Fréquence Temps Exécution du PULS(65) Exécution du SPED(64) Sortie en cours Sortie achevée Nombre défini d’impulsions 110 Chapitre Fonctions de sortie d’impulsions du CPM2A/CPM2C 2-5 Mode continu Fréquence Temps Exécution du SPED(64) Exécution du INI(61) Sortie en cours Sortie achevée Nombre défini d’impulsions Interruption de la sortie en mode indépendant (sans accélération ni décélération) Fréquence Temps Exécution du PULS(65) Exécution du SPED(64) Exécution du INI(61) Sortie en cours Sortie achevée Nombre défini d’impulsions Exemples d’application Positionnement Explication Dans cet exemple, lorsque la condition d’exécution (00005) passe sur ON, 100 impulsions sortent de la sortie 01000 (sortie d’impulsions 0) à une fréquence de 60 Hz. Fréquence 60 Hz Nombre d’impulsions Condition d’exécution (00005) 111 Chapitre Fonctions de sortie d’impulsions du CPM2A/CPM2C 2-5 Câblage Câbler le CPM2A au pilote du moteur comme l’illustration suivante le montre. Pilote du moteur Câbler le CPM2C au pilote du moteur comme l’illustration suivante le montre. Dans ce cas, une unité centrale avec des sorties de transistor récepteur est utilisée. Connecteur de sortie Pilote de moteur 24 Vc.c. Setup de l’API 15 0 0 DM 6629 DM 6642 0 0 Définit le système de coordonnées pour la sortie d’impulsions 0 comme relatif. Définit pour une commande d’impulsions autre que synchronisée. (Réglé à 01jj lors de l’utilisation du compteur à grande vitesse). 112 Chapitre Fonctions de sortie d’impulsions du CPM2A/CPM2C 2-5 Programmation 00005 (Condition d’exécution) (13) Détecte la mise sur ON de la condition d’exécution. PLUS(65) Définit le nombre d’impulsions. Sortie d’impulsions 0 Impulsions relatives DM 0000 Premier mot pour les données SV d’impulsions DM 0001 SPED(64) Définit la fréquence et démarre la sortie d’impulsions. Nombre d’impulsions : 100 Sortie d’impulsions 0 Mode indépendant Fréquence : 60 Hz Fonctionnement pas à pas (JOG) Explication Dans cet exemple, lorsque la condition d’exécution (00005) est mise sur ON, les impulsions JOG sortent à la fréquence de 100 Hz depuis la sortie 01000 (sortie d’impulsions 0) ou la sortie 01001 (sortie d’impulsions 1). Lorsque la condition d’exécution (00005) est sur OFF, la sortie est interrompue. Pour basculer entre la sortie 01000 (sortie d’impulsions 0) et la sortie 01001 (sortie d’impulsions 1), utiliser le désignateur de direction (00006). Fréquence (sens) Temps Condition d’exécution (00005) Désignateur de direction (00006) Câblage Câbler le CPM2A au pilote du moteur comme l’illustration suivante le montre : Pilote du moteur 113 Chapitre Fonctions de sortie d’impulsions du CPM2A/CPM2C 2-5 Câbler le CPM2C au pilote du moteur comme l’illustration suivante le montre. Dans ce cas, une unité centrale avec des sorties de transistor récepteur est utilisée. Connecteur de sortie Pilote du moteur 24 Vc.c. Rem. Se reporter à la page du manuel de programmation pour plus d’informations sur le câblage des sorties. Setup de l’API 15 0 DM 6629 DM 6642 0 0 0 0 Définit le système de coordonnées pour les sorties d’impulsions 0 et 1 comme relatif. Définie pour une commande d’impulsions autre que synchronisée. (Réglé à 01jj lors de l’utilisation du compteur à grande vitesse). Programmation 00005 (Condition d’exécution) (Designateur de direction) (13) Détecte la mise sur ON de la condition d’exécution. (14) Détecte la mise sur OFF de la condition d’exécution. SPED(64) SPED(64) Sortie sens horaire Sortie d’impulsions 0 Mode continu Fréquence de sortie : 100 Hz Sortie sens anti horaire Sortie d’impulsions 1 Mode continu Fréquence de sortie : 100 Hz INI(61) Interrompt les sorties d’impulsions 0 et 1. INI(61) 010 114 Chapitre Fonctions de sortie d’impulsions du CPM2A/CPM2C 2-5 2-5-2 Utilisation des sorties d’impulsions avec rapport cyclique variable (PWM) Définit le numéro de sortie d’impulsions. Numéro de sortie d’impulsions 0 ou 1 Câble les sorties. Numéros de sortie : 01000 et 01001 PWM(----) : Pour configurer la fréquence et le rapport cyclique. Crée un programme en schéma à contacts. INI(61) : Pour interrompre les sorties d’impulsions. PRV(62) : Pour lire l’état de sortie d’impulsions. Sortie d’impulsions avec rapport cyclique variable PWM(----) Instruction IMPULSION AVEC RAPPORT CYCLIQUE VARIABLE Sortie d’impulsions 0 Sortie d’impulsions 1 Fréquence à atteindre : 0,1 à 999,9 Hz Rapport cyclique : 0 à 100% Démarre sorties d’impulsions (Rem. : le rapport cyclique est le rapport de temps ON par fréquence d’impulsions) Chaque balayage INI(61) Instruction COMMANDE MODE Arrêt Sorties d’impulsions Définition du numéro de sortie d’impulsions Câblage des sorties Chaque balayage Etat sortie d’impulsions AR 11 (soit 01000 ou 01001 utilisable) Immédiatement Instruction LECTURE PV COMPTEUR A PRV(62) GRANDE VITESSE AR 12 Lecture de l’état de sortie d’impulsions. Sélectionne l’une des sorties d’impulsions 0 ou 1. Numéro de sortie Numéro de sortie d’impulsions 01000 0 01001 1 Les impulsions sortent indifféremment des sorties d’impulsions 0 et 1. Câbler les sorties du CPM2A comme le montre l’illustration suivante : Sortie 01000 : Sortie d’impulsions 0 (sortie monophasée) Sortie 01001 : Sortie d’impulsions 1 (sortie monophasée) 115 Chapitre Fonctions de sortie d’impulsions du CPM2A/CPM2C 2-5 Les impulsions sortent indifféremment des sorties d’impulsions 0 et 1. Câbler lessorties du CPM2C comme le montre l’illustration suivante : Connecteur de sortie 01000 : Sortie d’impulsions 0 (sortie monophasée) 01001 : Sortie d’impulsions 1 (sortie monophasée) Setup de l’API Effectuer les configurations suivantes dans le Setup de l’API : Mot DM 6642 Bits 08 à 15 Fonction Configura-tion du compteur à grande vitesse 00 : Ne pas utiliser. Paramé-trage 00 ou 01 01 : Utilisé comme compteur à grande vitesse 02 : Utilisé comme commande d’impulsions synchronisée (10 à 500 Hz). 03 : Utilisé comme commande d’impulsions synchronisée (20 Hz à 1 kHz). 04 : Utilisé comme commande d’impulsions synchronisée (300 Hz à 20 kHz). Les commandes d’impulsions synchronisées ne peuvent pas être utilisées simultanément. Les configurations seront effectives lorsque le mode sera modifié (de PROGRAM à MONITOR/RUN) ou lorsque l’alimentation est mise sur ON vers l’API. Programme en schéma à contacts Le tableau suivant présente les fonctionnements des instructions concernant les sorties d’impulsions avec rapport cyclique variable : Instruction Commande (@)PWM(----) Sortie d’impulsions avec rapport cyclique variable Définit la fréquence et le rapport cyclique et démarre les sorties d’impulsions. Modification du rapport cyclique Modifie le rapport cyclique pendant l’impulsion lorsque les sorties d’impulsions avec rapport cyclique variable sont déjà en cours. Interrompt les sorties d’impulsions. (@)INI(61) (@)PRV(62) Interruption des sorties d’impulsions Lecture de l’état de la sortie d’impulsions Fonctionnement Lit l’état de la sortie d’impulsions (pendant les sorties d’impulsions). Le tableau suivant montre quelles instructions sont exécutables pendant les sorties d’impulsions sans accélération ni décélération : 116 Chapitre Fonctions de sortie d’impulsions du CPM2A/CPM2C PULS(65) SPED(64) Non Non INI(61) Oui (Voir Rem. 1) PRV(62) ACC(----) Oui Non 2-5 PWM(----) Oui (Voir Rem. 2) 1. Cette instruction s’utilise seulement pour interrompre les sorties d’impulsions. Rem. 2. Cette instruction s’utilise seulement pour modifier le rapport cyclique. La fréquence n’est pas modifiable alors que les impulsions sortent. Si la fréquence doit être modifiée, s’assurer d’abord d’interrompre la sortie d’impulsions. Le tableau suivant montre les mots et les bits propres aux sorties d’impulsions avec rapport cyclique variable : Mot Bit Dénomination Contenu AR 11 15 Sortie d’impulsions en cours pour la sortie d’impulsions 0 ON : En cours (par SPED(64), ACC(----) ou PWM(----)) OFF : Interrompu AR 12 15 Sortie d’impulsions en cours pour la sortie d’impulsions 1 ON : En cours (par SPED(64), ACC(----) ou PWM(----)) OFF : Interrompu Sortie d’impulsions avec rapport cyclique variable Modification du rapport cyclique Ces fonctions définissent la position pour les impulsions en sortie (01000, 01001), la fréquence et le rapport cyclique, et démarre les sorties d’impulsions. En modifiant les paramètres du rapport cyclique et en exécutant à nouveau le PWM(----) , il est également possible de modifier le rapport cyclique alors que les sorties d’impulsions avec rapport cyclique variable sont déjà en cours. (@PWM(----) P F Spécificateur de port (000 : Sortie d’impulsions 0 ; 010 : Sortie d’impulsions 1) Mot de données de fréquence à atteindre D Mot de données du rapport cyclique Fréquence à atteindre Répertorie la fréquence à atteindre et à définir. F #0001 à #9999 (4 digits BCD) : 0,1 Hz à 999,9 Hz Rapport cyclique D Répertorie le rapport cyclique à définir. #0000 à #0100 (4 digits BCD) : 0% à 100% La fréquence d’impulsions n’est pas modifiable lorsque les impulsions sont transmises. Interruption des sorties d’impulsions Cette fonction interrompt les sorties d’impulsions. (@)INI(61) P 003 000 Spécificateur de port (000 : Sortie d’impulsions 0 ; 010 : Sortie d’impulsions 1) Intitulé de commande (003 : Interruption des sorties d’impulsions) Fixé : 000 Rem. Les sorties d’impulsions peuvent également être interrompues en basculant l’API en mode PROGRAM. Lecture de l’état de la sortie d’impulsions Cette fonction lit l’état de la sortie d’impulsions. 117 Chapitre Fonctions de sortie d’impulsions du CPM2A/CPM2C 2-5 Utilisation d’une instruction (@)PRV(62) P 001 D Spécificateur de port (000 : Sortie d’impulsions 0 ; 010 : Sortie d’impulsions 1) Intitulé de commande (001 : Lecture de l’état de la sortie d’impulsions) Premier mot pour mémoriser l’état des sorties d’impulsions Sortie d’impulsions en cours 0 : Interrompu 1 : Sortie en cours Utilisation des zones de données Comme l’illustration suivante le montre, l’état de la sortie d’impulsions 0 est mémorisé dans l’AR 1115 et l’état de la sortie d’impulsions 1 est mémorisé dans l’AR 1215. AR 11 : Sortie d’impulsions 0 AR 12 : Sortie d’impulsions 1 Sortie d’impulsions en cours 0 : Interrompu 1 : Sortie en cours Rem. L’AR 1115 et l’AR 1215 sont actualisés une fois par cycle ainsi les valeurs de ces mots ne reflètent pas toujours l’état réel au cours de chaque cycle, mais l’AR 1115 et l’AR 1215 sont actualisés lorsque l’état est lu avec le PRV(62). Relations entre l’état et le fonctionnement Mode continu (Sortie d’impulsions avec rapport cyclique variable) Fréquence Temps Exécution du PWM(----) Exécution du INI(61) Sortie en cours Achèvement de la sortie Définit le nombre d’impulsions Exemple d’application Explication Dans cet exemple, lorsque la condition d’exécution (00005) bascule sur ON, les impulsions cyclique variable sortent de la sortie 01000 (sortie d’impulsions 0) à la fréquence de 100 Hz. Le rapport cyclique peut à ce moment--là être modifié en tournant la roue codeuse à 0. 118 Chapitre Fonctions de sortie d’impulsions du CPM2A/CPM2C 2-5 Câblage Câbler le CPM2A au pilote du moteur et à la roue codeuse comme l’illustration suivante le montre : Pilote du moteur Câbler le CPM2C au pilote du moteur et à la roue codeuse comme l’illustration suivante le montre. Dans ce cas, l’unité centrale avec des sorties transistor récepteur est utilisée. Connecteur de sortie Numéros de broches du connecteur des entrées Pilote du moteur Roue codeuse 24 Vc.c. Rem. Se reporter au manuel de programmation pour plus d’informations sur le câblage. Setup de l’API 15 DM 6642 0 0 0 Compteur à grande vitesse non utilisé. (Définir pour des commandes d’impulsions autres que synchronisées). 119 Fonctions de sortie d’impulsions du CPM2A/CPM2C Chapitre Programmation (Exemple CPM2A) 00005 (Condition d’exécution) (14) DIV(33) Détecte le passage sur OFF de la condition d’exécution. Modifie la valeur 0 de la commande analogique en une valeur de 0 à 100. Valeur du SR 250 (Commande analogique 0 dans les API CPM2A) (Voir Rem.) Divise la valeur par 2. Configuration du rapport cyclique PWM(----) Sortie d’impulsions avec cyclique variable Sortie d’impulsions 0 Fréquence de sortie : 100 Hz Configuration du rapport cyclique INI(61) Interrompt la sortie d’impulsions 0. Rem. Le CPM2C n’est pas fourni avec une commande analogique. Pour les configurations externes, préciser le mot d’entrée connecté à la roue codeuse. 2-5-3 Utilisation des sorties d’impulsions avec accélération et décélération trapézoïdales Définit la méthode de commande de direction Sortie d’impulsions et de direction ou sortie d’impulsions avance/retour Définit le numéro de la sortie d’impulsions. Sortie d’impulsions numéro 0 Câble les sorties Setup de l’API (DM 6629) Crée un programme en schéma à contacts. Numéros de sortie : 01000 et 01001 Le système de coordonnées de la PV pour la sortie d’impulsions numéro 0 PULS(65) : Pour paramétrer le nombre d’impulsions en sortie. ACC(----) : Pour contrôler les sorties d’impulsions avec accélération et décélération trapézoïdales. INI(61) : Pour arrêter les sorties d’impulsions et modifier la PV de la sortie d’impulsions. PRV(62) : Pour lire la PV et l’état de la sortie d’impulsions. 120 2-5 Chapitre Fonctions de sortie d’impulsions du CPM2A/CPM2C 2-5 Sorties d’impulsions avec accélération et décélération trapézoïdale PULS(65) Instruction ACC(----) DEFINIT LES IMPULSIONS Précise impulsions relatives ou absolues. Instruction COMMANDE D’ACCELERATION Impulsion, CW Direction, CCW Mode appellation Fréq. de démarrrage : 0 Hz à 10 kHz Nb. d’impul. en S. val. déf. (8 digits BCD) Fréq. à atteindre : 10 Hz à 10 kHz INI(61) Instruction MODE COMMANDE Interrompt les S. d’impul.. Modifie la PV de la S. d’impu. Rapport d’accél./de décél. : 10 ms aug./dim. 10 Hz à 10 kHz Démarre les S. d’impulsions. Immédiatement Instruction Chaque balayage Chaque LECTURE PV balayage COMPTEUR A Etat des S. d’impul. PV d’impul. de S. PRV(62) GRANDE VITESSE SR 228 AR 11 Setup de l’API SR 229 Lire PV de S. d’impul. Lire état S. d’impul. DM 6629, bits 00 à 03 *S. = sortie et E. = entrée Sélection de la méthode de commande de la direction Sélectionner la méthode de commande de la direction de sortie d’impulsions selon le type de signal utilisé. Sorties d’impulsions et de direction Sélection du numéro de sortie d’impulsions Sortie d’impulsions avance/retour Sélectionne la sortie d’impulsions 0. Numéro de sortie 01000 Numéro de sortie d’impulsions 0 01001 Câblage des sorties Câbler les sorties de CPM2A comme montré dans l’illustration suivante : Sorties d’impulsions et de direction Sorties d’impulsions avance/retour Sortie 01000 : Sortie d’impulsions Sortie 01000 : sortie CW Sortie 01001 : Sortie de direction Sortie 01001 : sortie CCW 121 Chapitre Fonctions de sortie d’impulsions du CPM2A/CPM2C 2-5 Câbler les sorties de CPM2C comme montré dans l’illustration suivante : Sorties d’impulsions et de direction Sorties d’impulsions avance/retour Connecteur de sortie Connecteur de sortie 01000 : Sortie d’impulsions 01000 : Sortie CW 01001 : Sortie de direction 01001 : Sortie CCW Setup de l’API Effectuer le paramétrage suivant dans le Setup de l’API : Mot Bits Fonction DM 6629 00 à 03 Système de coor-données de PV de l’impulsion 0 0: Système de coordonnées relatives 1: Système de coordonnées absolues DM 6642 08 à 15 Paramé-trage du compteur à grande vitesse 00: Ne pas utiliser. 01: Utiliser en tant que compteur à grande vitesse 02: Utiliser comme commande d’impulsions synchronisée (10 à 500 Hz). 03: Utiliser comme commande d’impulsions synchronisée (20 Hz à 1 kHz). 04: Utiliser comme commande d’impulsions synchronisée (300 Hz à 20 kHz). Paramé-trage 0 ou 1 00 ou 01 Si des impulsions absolues sont indiquées avec PULS(65), s’assurer de définir le système de coordonnées absolu (1). La commande d’impulsions synchronisée ne peut pas être utilisée simultanément. Le paramétrage ne serat effectif que lorsque le mode sera modifié (du PROGRAM au MONITOR/RUN) ou lorsque l’alimentation de l’API sera sur ON. 122 Chapitre Fonctions de sortie d’impulsions du CPM2A/CPM2C Programme en schéma à contacts 2-5 Le tableau suivant présente les fonctions d’instruction liées aux sorties d’impulsions avec accélération et décélération trapézoïdales (rapport cyclique fixe). Instruction (@)PULS(65) (@)ACC(----) Commande Fonction Définir le nombre d’impulsions Définir la fréquence et démarrer les sorties d’impulsions Définit le nombre d’impulsions à produire en mode indépendant. Définit la fréquence à atteindre, la fréquence de démarrage, et le taux d’accélération/de décélération pour des sorties en mode indépendant ou en mode continu, et démarre les sorties d’impulsions. Modifie la fréquence pendant la sortie d’impulsions en mode continu pour l’accélération ou la décélération selon le taux indiqué d’accélération/de décélération. Modifier la fréquence Interrompre les sorties d’impulsions (@)INI(61) (@)PRV(62) Décélération des sorties d’impulsions jusqu’à l’arrêt selon le taux indiqué d’accélération/de décélération. Interrompre les sorties Interrompt les sorties d’impulsions. d’impulsions (interruption de décélération) Modifier la PV de la sortie d’impulsions Lire la PV de la sortie d’impulsions Lire l’état de la sortie d’impulsions Modifie la PV de la sortie d’impulsions. Lit la PV de la sortie d’impulsions. Lit l’état de la sortie d’impulsions. Le tableau suivant montre quelles instructions s’exécutent pendant les sorties d’impulsions avec accélération et décélération trapézoïdales : PULS(65) SPED(64) INI(61) PRV(62) ACC(----) PWM(----) Mode continu Non Non Oui (Voir Rem. 1.) Oui Non Mode indépendant Non Non Oui (Voir Rem. 1.) Oui Oui (Voir Rem. 2.) Non Rem. Non 1. Cette instruction s’exécute seulement lorsque les sorties d’impulsions sont interrompues. La PV n’est pas modifiable tant que des impulsions sont produites. Si la PV a besoin d’être modifiée, s’assurer d’abord que la sortie d’impulsions est interrompue. 2. Cette instruction s’utilise seulement pour modifier la fréquence et interrompre la sortie d’impulsions. Elle ne peut pas être utilisée pour commuter entre le mode indépendant et le mode continu. D’ailleurs, ACC(-- --) ne peut pas être reçu pendant la décélération ou l’accélération. Le tableau suivant montre les mots et les bits liés aux sorties d’impulsions avec accélération et décélération trapézoïdales (rapport cyclique fixe) : 123 Chapitre Fonctions de sortie d’impulsions du CPM2A/CPM2C Mot Bits Dénomination 228 00 à 15 PV de la sortie d’impulsions 0, les 4 digits à l’extrême doite 229 00 à 15 PV de la sortie d’impulsions 0, les 4 digits à l’extrême gauche 252 04 AR 11 11 Remise à zéro de la PV de la sortie d’impulsions 0 Etat de la sortie d’impulsions 0 12 13 14 15 PV de la sortie d’impulsions 0 dépassement positif/négatif Nombre d’impulsions défini pour la sortie d’impulsions 0 Sortie d’impulsions achevée pour la sortie d’impulsions 0 Sortie d’impulsions en cours pour la sortie d’impulsions 0 2-5 Contenu Ne peut pas être utilisé comme bits de travail même lorsque non utilisé comme sortie d’impulsions. Supprime la PV 0 lorsqu’il est actif. ON : Accélération ou décélération OFF : Vitesse constante ON : Se produit OFF : Normal ON : Défini OFF : Non défini ON : Achevé OFF : Non achevé ON : En cours (avec SPED(64), ACC(----) ou PWM(----)) OFF : Interrompu Définir le nombre d’impulsions Indiquer le nombre d’impulsions à produire en mode indépendant. (@)PULS(65) 000 D N Fixé à 000 : Sortie d’impulsions 0 Drapeau de sortie d’impulsions (000 : Impulsions relatives ; 001 : Impulsions absolues) (Voir Rem.) Premier mot du paramétrage pour le nombre d’impulsions N N+1 4 digits à l’extrême droite 4 digits à l’extrême gauche Nombre d’impulsions (digits à l’extrême droite et gauche) Répertorie le nombre d’impulsions à définir. 96 777 215 à 16 777 215 (soit de -- 16 777 215 à 16 777 215) Les nombres négatifs sont obtenus en activant le bit à l’extrême gauche. Drapeau de sortie d’impulsions 000 : Impulsions relatives (SV pour nombre d’impulsions = Nombre d’impulsions sorties) 001 : Impulsions absolues (SV pour nombre d’impulsions = PV de la sortie d’impulsions + nombre d’impulsions sorties)* *Les impulsions absolues sont seulement indiquées par PULS(65) lorsque le système de coordonnées de la PV dans le Setup de l’API est défini pour un système de coordonnées absolu. 124 Chapitre Fonctions de sortie d’impulsions du CPM2A/CPM2C 2-5 Définir la fréquence et démarrer la modification de la fréquence de sorties d’impulsions Ces fonctions définissent le mode sortie, la fréquence à atteindre, la fréquence de démarrage et le taux d’accélération/décélération, et elles commencent les sorties d’impulsions. Elles peuvent également être utilisées pour modifier la fréquence, en accélérant ou décélérant au taux indiqué d’accélération/décélération, si les sorties d’impulsions déjà en cours sont en mode continu. Configuration des fréquences, de l’accélération/décélération et du démarrage des sorties d’impulsions en mode indépendant (@)ACC(----) 000 M T M Fixé à 000 : Sortie d’impulsions 0 Appellation du mode sortie Premier mot du tableau de configuration Mode sortie Précise le mode sortie. 000 : Sorties d’impulsions avance/retour, mode indépendant 002 : Sorties d’impulsions et de direction, mode indépendant T Taux d’accélération/décélération (#0001 à #1000 BCD : 10 Hz à 10 kHz) T+1 Fréquence à atteindre (#0001 à #1000 BCD : 10 Hz à 10 kHz) T+2 Fréquence de démarrage (#0000 à #1000 BCD : 0 à 10 kHz) Répertorie les données de chaque fréquence. Le taux d’accélération/décélération correspond à l’augmentation ou à la diminution de fréquence toutes les 10 ms. Fréquence de sortie d’impulsions Fréquence à atteindre Fréquence de démarrage 0 Hz Nombre d’impulsions Temps En mode indépendant, les points d’accélération et de décélération sont déterminés selon le nombre d’impulsions, le taux d’accélération/décélération, la fréquence à atteindre et la fréquence de démarrage. 125 Fonctions de sortie d’impulsions du CPM2A/CPM2C Chapitre 2-5 Configuration de la fréquence et de l’accélération/décélération, démarrage des sorties d’impulsions et modification de la fréquence en mode continu (@)ACC(----) M Fixé à 000 : Sortie d’impulsions 0 Intitulé du mode sortie T Premier mot du tableau de configuration 000 M Mode sortie Préciser le mode sortie. 010 : Sortie d’impulsions avance/retour, CW, mode continu 011 : Sortie d’impulsions avance/retour, CCW, mode continu 012 : Sortie d’impulsions et de direction, CW, mode continu 013 : Sortie d’impulsions et de direction, CCW, mode continu T Taux d’accélération/décélération (#0001 à #1000 BCD : 10 Hz à 10 kHz) T+1 Fréquence à atteindre (#0001 à #1000 BCD : 10 Hz à 10 kHz) T+2 Fréquence de démarrage (#0000 à #1000 BCD : 0 à 10 kHz) Répertorie les données pour chaque fréquence. Le taux d’accélération/décélération correspond à l’augmentation ou à la diminution de la fréquence toutes les 10 ms. Fréquence de sortie d’impulsions Fréquence à atteindre Fréquence de démarrage 0 Hz Temps En mode continu, les impulsions se produisent à la fréquence à atteindre jusqu’à ce quelles soient interrompues. L’instruction ACC(----) suivante ne peut être reçue que lors d’accélération ou de décélération. Modifier la PV de la sortie d’impulsions Cette fonction modifie la PV de la sortie d’impulsions. (@)INI(61) 000 004 C2 C2 C2+1 Fixé à 000 : Sortie d’impulsions 0 Intitulé de commande (004 : Modifie la PV de la sortie d’impulsions) Premier mot pour la modification de la PV en données 4 digits à l’extrême droite 4 digits à l’extrême gauche Modifie les données de la PV (digits à l’extrême : droite et gauche) Répertorie les données de la PV à modifier. 96 777 215 à 16 777 215 (soit de -- 16 777 215 à 16 777 215) Les nombres négatifs sont obtenus en activant le bit à l’extrême gauche. Rem. La PV de la sortie d’impulsions se modifie seulement lorsque la sortie d’impulsions est interrompue. 126 Chapitre Fonctions de sortie d’impulsions du CPM2A/CPM2C 2-5 Interrompre les sorties d’impulsions, Ralentir et interrompre les sorties d’impulsions Ces fonctions interrompent les sorties d’impulsions. Interrompre les sorties d’impulsions (@)INI(61) 000 Fixé à 000 : Sortie d’impulsions 0 003 Intitulé de commande (003 : Interrompre les sorties d’impulsions) 000 Fixé à 000 Ralentir et interrompre les sorties d’impulsions (@)ACC(----) 000 000 T Fixé à 000 : Spécificateur de port Mode appellation Premier mot du tableau de configuration T Taux d’accélération/décélération (N_0001 à N_1000 BCD : 10 Hz à 10 kHz) T+1 Fréquence à atteindre (N_0000 à N_1000 BCD : 0 Hz à 10 kHz) T+2 Fréquence de démarrage (N_0000 à N_1000 BCD : 0 à 10 kHz) Répertorie les données de chaque fréquence. Le taux d’accélération/décélération correspond à l’augmentation ou à la diminution en fréquence toutes les 10 ms. Rem. Les sorties d’impulsions peuvent également être interrompues en commutant l’API au mode PROGRAM. Lecture de la PV de la sortie d’impulsions Cette fonction lit la PV de la sortie d’impulsions. Utilisation d’une instruction (@)PRV(62) 000 003 D D D+1 Fixé à 000 : Sortie d’impulsions 0 Intitulé de commande (003 : Lecture de la PV de la sortie d’impulsions) Premier mot pour mémoriser la PV de la sortie d’impulsions 4 digits à l’extrême droite 4 digits à l’extrême gauche PV de la sortie d’impulsions (digits à l’extrême : droite et gauche) Les données de la PV lue sont mémorisées ici. 96 777 215 à 16 777 215 (soit --16 777 215 à 16 777 215) Les nombres négatifs sont obtenus en activant le bit à l’extrême gauche. Utilisation des zones de données Comme montré dans l’illustration suivante, la PV de la sortie d’impulsions 0 est mémorisée dans les mots 228 et 229 : Sortie d’impulsions 0 Mot 228 PV (Extrême droite) Mot 229 PV (Extrême gauche) Rem. La SR 228 et la SR 229 sont rafraîchies une fois à chaque cycle, ainsi les valeurs dans ces mots ne reflètent pas toujours l’état réel pendant chaque cycle, mais la SR 228 et la SR 229 sont rafraîchies immédiatement lorsque leur valeur est lue avec PRV(62). 127 Chapitre Fonctions de sortie d’impulsions du CPM2A/CPM2C 2-5 Lecture de l’état de la sortie d’impulsions Cette fonction lit l’état de la sortie d’impulsions. En utilisant une instruction (@)PRV(62) 000 Fixé à 000 : Sortie d’impulsions 0 001 Intitulé de commande (001 : Lecture de l’état de la sortie d’impulsions) Mot pour mémoriser l’état de la sortie d’impulsions D Etat de la sortie d’impulsions 0 : Taux constant 1 : Accélération ou décélération Dépassement positif/négatif de la PV de la sortie d’impulsions 0 : Normal ; 1 : Dépassement positif/ négatif survenu Nombre d’impulsions 0 : Non défini 1 : Defini Achèvement de la sortie d’impulsions 0 : Non achevé 1 : Achevé Sortie d’impulsions en cours 0 : Interrompu 1 : Sortie en cours Utilisation des zones de données Comme montré dans l’illustration suivante, l’état de la sortie d’impulsions 0 est mémorisé dans AR 1111 à AR 1115 : AR 11 : Sortie d’impulsions 0 Sortie d’impulsions en cours 0 : Interrompu 1 : Sortie en cours Achèvement de la sortie d’impulsions 0 : Non achevé 1 : Achevé Etat de la sortie d’impulsions 0 : Taux constant 1 : Accélération ou décélération Dépassement positif/négatif de la PV de la sortie d’impulsions 0 : Normal 1 : Dépassement positif ou négatif survenu Nombre d’impulsions 0 : Non défini 1 : Défini Rem. Les zones de AR 1111 à AR 1115 sont rafraîchies une fois à chaque cycle, ainsi les valeurs de ces drapeaux ne reflètent pas toujours l’état réel, mais ces drapeaux sont rafraîchis immédiatement lorsque leur état est lu avec PRV(62). Relation entre l’état et le fonctionnement Mode indépendant avec accélération et décélération Fréquence Temps Exécution PULS(65) Exécution ACC(----) Sortie 0 en cours Sortie 1 en cours Achèvement de la Sortie Etat de la sortie Nombre défini d’impulsions Rem. Sortie 0 : sortie d’impulsions. Sortie 1 : sortie direction. 128 Chapitre Fonctions de sortie d’impulsions du CPM2A/CPM2C 2-5 Mode continu avec accélération et décélération 1 Fréquence Temps Exécution ACC(----) (1) Exécution ACC(----) (2) Exécution INI(61) Sortie 0 en cours Sortie 1 en cours Achèvement de la Sortie Etat de la sortie Nombre défini d’impulsions Mode continu avec accélération et décélération 2 Fréquence Temps Exécution ACC(----) (Interruption) Sortie 0 en cours Sortie 1 en cours Achèvement de la Sortie Etat de la sortie Nombre défini d’impulsions Interruption des sorties en mode continu avec l’accélération et la décélération 1 Fréquence Temps Exécution PULS(65) Exécution ACC(----) Exécution INI(61) Sortie 0 en cours Sortie 1 en cours Achèvement de la Sortie Etat de la sortie Nombre défini d’impulsions 129 Chapitre Fonctions de sortie d’impulsions du CPM2A/CPM2C 2-5 Interruption des sorties en mode continu avec l’accélération et la décélération 2 Fréquence Temps Exécution PULS(65) Exécution ACC(----) Exécution ACC(----) Sortie 0 en cours Sortie 1 en cours Achèvement de la Sortie Etat de la sortie Nombre défini d’impulsions Exemple d’application Positionnement Explication Dans cet exemple, quand la condition d’exécution (00005) est sur ON, 1 000 impulsions sont produites à partir de la sortie 01000 (sortie d’impulsions 0) dans un modèle d’accélération/décélération trapézoïdal comme montré dans le schéma suivant : Fréquence (Hz) Taux d’accélération/décélération 500 10 Hz 10 ms 200 Nombre d’impulsions Condition d’exécution (00005) Câblage Câbler le CPM2A au pilote du moteur comme montré dans l’illustration suivante : Pilote du moteur 130 Chapitre Fonctions de sortie d’impulsions du CPM2A/CPM2C 2-5 Câbler le CPM2C au pilote du moteur comme montré dans l’illustration suivante. Dans ce cas, une unité centrale avec les sorties de transistor récepteur est utilisée. Connecteur de sortie Pilote du moteur 24 Vc.c. Rem. Se reporter au manuel de programmation pour plus d’informations sur le câblage. Setup de l’API 15 0 0 DM 6629 DM 6642 0 Définit le système de coordonnées pour la sortie d’impulsions 0 comme relatif. Compteur à grande vitesse non utilisé. (Définit pour une commande d’impulsions autre que synchronisé). 0 Programmation 00005 (Condition d’exécution) (13) Détecte l’activation de la condition d’exécution. PULS(65) Définit le nombre d’impulsions. Sortie d’impulsions 0 Impulsions relatives d’impulsions ACC(----) Nombre d’impulsions : 1 000 Définit la fréquence et démarre les sorties d’impulsions. Sortie d’impulsions 0 Mode indépendant, sortie d’impulsions avance/retour Premier mot du Taux d’accélération/décélération : 10 Hz/10 ms tableau de configuFréquence à atteindre : 500 Hz ration Fréquence de démarrage : 200 Hz 131 Chapitre Fonctions de sortie d’impulsions du CPM2A/CPM2C 2-5 Fonctionnement pas à pas Explication Dans cet exemple, quand la condition d’exécution (00005) est ON, les impulsions pas à pas (JOG) sont produites à une fréquence de 100 Hz de l’une ou l’autre des sorties 01000 (sens CW) ou 01001 (sens CCW). Lorsque la condition d’exécution (00005) est OFF, la sortie est interrompue. Comme montré dans le schéma suivant, les impulsions JOG sont accélérées et décélérées au démarrage et à l’interruption de la fonction. Le basculement entre les sorties 01000 (sens CW) et 01001 (sens CCW) est exécuté au moyen de l’indicateur de direction (00006). Fréquence (Hz) Taux accélération/décélération Temps 10 Hz 10 ms Condition d’exécution (00005) Indicateur de direction (00006) Câblage Câbler le CPM2A au pilote du moteur comme montré dans l’illustration suivante : Pilote du moteur 132 Chapitre Fonctions de sortie d’impulsions du CPM2A/CPM2C 2-5 Câbler le CPM2C au pilote du moteur comme montré dans l’illustration suivante. Dans ce cas, une unité centrale avec les sorties transistor récepteur est utilisée. Connecteur de sortie Pilote du moteur 24 Vc.c. Rem. Se reporter au manuel de programmation pour plus d’informations sur le câblage. Setup de l’API 15 0 0 DM 6629 DM 6642 0 0 Définit le système de coordonnées pour la sortie d’impulsions 0 comme relatif. Compteur à grande vitesse non utilisé (Défini pour une commande d’impulsions autre que synchronisée). Programmation 00005 (Condition d’exécution) (Indicateur de direction) (13) Détecte l’activation de la condition d’exécution. (14) Détecte la désactivation de la condition d’exécution. AR1115 ACC(----) Sortie en sens CW Sortie d’impulsions 0 Mode continu, impulsions avance/retour, sens CW Premier mot du tableau de configuration ACC(----) Sortie en sens CCW Sortie d’impulsions 1 Mode continu, impulsions avance/retour, sens CCW Premier mot du tableau de configuration Taux d’accélération/décélération : 10 Hz/10 ms Fréquence à atteindre : 500 Hz Fréquence de démarrage : 200 Hz (Indicateur de direction) (14) ACC(----) Interruption de décélération Sortie d’impulsions 0 Premier mot du tableau de configuration Taux d’accélération/décélération : 10 Hz/10 ms Fréquence à atteindre : 0 Hz 133 Chapitre Fonctions de la sortie d’impulsions du CPM1A 2-6 2-6 Fonctions de la sortie d’impulsions du CPM1A Les API du CPM1A avec des sorties transistors ont une fonction de sortie d’impulsions capable de produire une impulsion de 20 Hz à 2 kHz (monophasées). L’une ou l’autre des zones IR 01000 ou IR 01001 peut être sélectionnée pour la sortie d’impulsions et la sortie d’impulsions peut être définie soit pour le mode continu, où la sortie est interrompue par une instruction, soit pour le mode indépendant, où la sortie est interrompue après un nombre prédéfini d’impulsions (1 à 16 777 215). Se reporter au manuel de programmation du CPM1A pour plus d’informations sur des raccordements de matériel aux points et aux ports de sorties. Les impulsions sont transmises à une fréquence précise jusqu’à leurs interruptions. Mode continu La sortie d’impulsions s’interrompt automatiquement lorsque le nombre précisé d’impulsions a été transmis. Mode indépendant Nombre précisé d’impulsions Moteur pas à pas Moteur pas à pas Entrée de commande Contrôleur du moteur Sortie de commande CW/CCW Sortie d’impulsions (sortie monophasée) IR 01000 ou IR 01001 Rem. 1. Le CPM1A utilise une sortie d’impulsions monophasée. Le signal de commande pour le sens de la rotation (CW/CCW) du pilote du moteur doit être écrit dans le programme. 2. S’assurer d’utiliser une unité centrale avec des sorties transistors. 134 Chapitre Fonctions de la sortie d’impulsions du CPM1A 2-6 2-6-1 Exemple de programmation en mode continu Dans cet exemple de programme, la sortie d’impulsions commence à IR 01000 lorsque l’entrée IR 00004 passe sur ON et s’arrête lorsque l’entrée IR 00005 passe sur ON. SPED(64) est utilisé pour interrompre ou démarrer la sortie d’impulsions. En utilisant SPED(64) dans ce but, indiquer N_ 0000 (contenu dans la constante ou le mot) comme fréquence d’impulsions. 00004 (Etat de sortie d’impulsions) @SPED(64) 000 001 #0100 00005 (Etat d’interruption de la sortie d’impulsions) @INI(61) Démarre la sortie d’impulsions. Sortie du 01000 Mode continu Fréquence d’impulsions : 1 kHz Interrompt la sortie d’impulsions. 000 003 000 2-6-2 Exemple de programmation en mode indépendant Dans cet exemple de programme, la sortie d’impulsions commence à IR 01000 lorsque l’entrée IR 00004 passe sur ON, et s’arrête dès que le nombre indiqué d’impulsions a été produit. La quantité d’impulsions est définie en DM 0100 et DM 0101. 00004 (Etat de la sortie d’impulsions) @PULS(65) Définit le nombre d’impulsions. 000 000 DM 0100 Paramètre le nombre d’impulsions 00004 (Etat de la sortie d’impulsions) @SPED(64) 000 000 #0100 Démarre la sortie d’impulsions. Mode indépendant Fréquence d’impulsions : 1 kHz 2-6-3 Utilisation des instructions de la sortie d’impulsions Paramétrage du nombre d’impulsions Avant le lancement de la sortie d’impulsions à partir du mode indépendant, utiliser PULS(65) comme montré ci--dessous pour définir le nombre d’impulsions à produire. Ce paramétrage n’est pas exigé pour le mode continu. @PULS(65) 000 000 N Dans N, définir l’adresse du premier mot des mots où le nombre d’impulsions est défini. Mémoriser le nombre d’impulsions dans les mots N et N+1, dans huit digits BCD, avec les quatre digits à l’extrême gauche dans N+1 et les quatre digits à l’extrême droite dans N. Effectuer le paramétrage dans une plage de 00000001 à 16777215 (BCD). 135 Chapitre Fonctions de la sortie d’impulsions du CPM1A 2-6 Avec SPED(64), définir la position du bit pour les sorties d’impulsions (IR 01000 ou IR 01001), le mode sortie (indépendant, continu) et la fréquence d’impulsions pour démarrer la sortie d’impulsions. Démarrage de la sortie d’impulsions @SPED(64) P M F P (3 digits BCD) M (3 digits BCD) F (4 digits BCD) Rem. 000 : Produit vers IR 01000 010 : Produit vers IR 01001 000 : Mode indépendant 001 : Mode continu Pour la première fréquence de sortie d’impulsions, indiquer les contenus de la constante ou du mot. La valeur indiquée et la fréquence définie sont : Valeur indiquée : 0002 à 0200 Fréquence définie : 20 à 2 000 Hz 1. Les impulsions ne se produisent qu’à partir d’un seul bit à la fois. 2. Lorsque la sortie d’impulsions est commencée en mode indépendant, le nombre d’impulsions est lu dès que SPED(64) est exécuté. PULS(65) n’est pas utilisable pour modifier le nombre d’impulsions quand les impulsions sont produites. 2-6-4 Modification de la fréquence Pour modifier la fréquence pendant la sortie d’impulsions, modifier la configuration de la fréquence avec SPED(64). A ce moment--là, paramétrer les opérandes autres que celui de la fréquence aux mêmes valeurs de sélection qu’au début de la sortie par impulsion. @SPED(64) P M F P (3 digits BCD) M (3 digits BCD) F (4 digits BCD) Identique à la première sortie d’impulsions. Identique à la première sortie d’impulsions. Pour la fréquence de sortie d’impulsions modifiée, indiquer les contenus de la constante ou du mot. La valeur indiquée et la fréquence définie sont : Valeur indiquée : 0002 à 0200 Fréquence définie : 20 à 2 000 Hz 2-6-5 Interruption de la sortie d’impulsions Lorsque des impulsions sont produites en mode indépendant, la sortie d’impulsions s’arrêtera automatiquement dès que le nombre d’impulsions indiquées par PULS(65) sera produit. Lorsque des impulsions sont produites en mode continu, l’une ou l’autre des deux méthodes suivantes s’utilise pour interrompre la sortie d’impulsions : 1. Utiliser SPED(64) pour définir la fréquence à 0. 2. Utiliser INI(61) pour interrompre la sortie d’impulsions. Utilisation de SPED(64) 136 La première méthode consiste à utiliser SPED(64) pour interrompre la sortie d’impulsions en paramétrant la fréquence à 0. Pour plus d’informations, se reporter au paragraphe 2--6--4 Modification de la fréquence. Commande d’impulsions synchronisée (CPM2A/CPM2C uniquement) Chapitre 2-7 La deuxième méthode consiste à utiliser INI(61) pour interrompre la sortie d’impulsions, comme suit : Utilisation de INI(61) @INI(61) 000 003 000 2-7 Commande d’impulsions synchronisée (CPM2A/CPM2C uniquement) En combinant la fonction du compteur à grande vitesse de CPM2A/CPM2C avec la fonction de sortie d’impulsions, la fréquence d’impulsions de sortie peut être commandée comme un multiple de la fréquence d’impulsions d’entrée indiquée. Rem. Une unité centrale avec des sorties transistors est exigée afin d’utiliser la commande d’impulsions synchronisée : soit un CPM2A-jjCDT-D, soit un CPM2A-jjCDT1-D. Le schéma suivant présente la configuration pour un CPM2A, la configuration pour un CPM2C est identique. Entrée du compteur Entrée d’impulsions 00000 ou 00001 Moteur principal Codeur rotatif Pilote du moteur Sortie d’impulsions 01000 ou 01001 (sortie monophasée) 137 Commande d’impulsions synchronisée (CPM2A/CPM2C uniquement) Chapitre 2-7 Mode entrée Mode entrée bidirectionnelle Numéro d’entrée 00000 Entrée phase A 00001 Entrée phase B Mode entrée d’impulsions et de direction Mode entrée d’impulsions avance/retour Entrée du compteur Entrée de direction Entrée CW Entrée CCW Entrée du compteur (Voir Rem. 1) Entrée de monophase Entrée de monophase Entrée de monophase Méthode d’entrée Entrée bidirectionnelle (4X) Plage de fréquence d’entrée 10 à 500 Hz (précision !1 Hz) 20 Hz à 1 kHz (précision !1 Hz) 300 Hz à 20 kHz (précision ! 25 Hz) (Voir Rem. 2) Numéro de sortie (Voir Rem. 3.) 01000 Sortie d’impulsions 0 01001 Sortie d’impulsions 1 Méthode de sortie Sortie monophasée Plage de fréquence de sortie 10 Hz à 10 kHz (précision 10 Hz) Taux de fréquence 1% à 1 000% (indiqué par unité de 1%) Cycle de commande synchronisé 10 ms Rem. Mode incrémental 1. Peut être utilisé comme entrée ordinaire. 2. Lorsque de 10 kHz ou moins, la précision est de +10 Hz. 3. L’une ou l’autre peut être sélectionnée en tant que numéro de sortie, en utilisant SYNC(-- --). Les sens des entrées d’impulsions sont tous ignorés. La fréquence d’une impulsion reçue est lue, indépendamment du sens. Le tableau suivant montre les relations entre la commande d’impulsions synchronisée et les autres fonctions du CPM2A : Fonction Commande d’impulsions synchronisée Commande d’impulsions synchronisée --- Entrées d’interruption S’utilise simultanément. Interruptions d’horloge S’utilise simultanément. Compteurs à grande vitesse Ne s’utilise pas simultanément. Entrées d’interruption (mode compteur) S’utilise simultanément. Sorties d’impulsions Ne s’utilise pas simultanément. Entrées de capture S’utilise simultanément. Constant de temps d’entrée Voir Rem. Horloge S’utilise simultanément. Rem. Lorsque les entrées 00000 et 00001 sont définies pour être utilisées comme des entrées de commande d’impulsions synchronisée, le paramétrage de la constante de temps d’entrée des entrées concernées est désactivé. Cependant les constantes de temps d’entrée demeurent opérationnelles, pour les valeurs actualisant la zone de données d’entrée appropriée. 138 Chapitre Commande d’impulsions synchronisée (CPM2A/CPM2C uniquement) 2-7 La relation entre la fréquence d’entrée d’impulsions et la fréquence de sortie d’impulsions est présentée ci--dessous : Fréquence d’entrée d’impulsions X Taux de fréquence = Esquisse de la fréquence de sortie d’impulsions Valeurs arrondies en unité de 10 Hz. 10 à 500 Hz Une valeur inférieure à 10 Hz est considérée être à 0 Hz. 20 Hz à 1 kHz Une valeur supérieure à 10 Hz est considérée être à 10 kHz. 300 Hz à 20 kHz Fréquence de sortie d’impulsions (10 Hz à 10 kHz) Le cycle de commande du facteur de mise à l’échelle est de 10 ms et la fréquence de la sortie d’impulsions est modifiée à intervalles de 10 ms en fonction de la fréquence d’entrée d’impulsions. Fréquence Temps Utilisation de la commande d’impulsions synchronisée Définit le mode d’entrée. Définit la fréquence d’entrée de synchronisation d’impulsions. Câble les entrées et les sorties Setup de l’API (DM 6642) Crée un programme en schéma à contacts. Mode entrée d’impulsions bidirectionnelle , mode entrée d’impulsions et de direction, mode entrée d’impulsions avance/retour, mode incrémental Fréquence d’entrée : 10 Hz à 500 Hz ; 20 Hz à 1 kHz ; 300 Hz à 20 kHz Numéros d’entrées : 00000, 00001 et 0002 Numéros de sorties : 01000 et 01001 Configuration de la commande d’impulsions synchronisée : mode entrée, fréquence d’entrée SYNC(----) : Pour la première commande d’impulsions synchronisée et la modification du facteur de mise à l’échelle. INI(61) : Pour interrompre la commande d’impulsions synchronisée. PRV(62) : Pour lire la fréquence du compteur à grande vitesse et l’état de la commande d’impulsions synchronisée. 139 Chapitre Commande d’impulsions synchronisée (CPM2A/CPM2C uniquement) Commande d’impulsions synchronisée 2-7 Setup de l’API DM 6642, bits 08 à 15 10 Hz à 500 Hz 20 Hz à 1 kHz 300 Hz à 20 kHz l’un ou l’autre Entrées du codeur Mode entrée Compter Sortie d’impulsions 0 Sortie d’impulsions 1 E. bidirectionnelle Programme en schéma à contacts E. d’impul. et de dir. Entrée avance/retour Instruction COMMANDE SYNC(----) D’IMPULSIONS Entrée d’incrément SYNCHRONISEE Démarre la com. d’impul. synch. Modif. facteur de mise à l’échelle Setup de l’API DM 6642, bits 00 à 03 Instruction COMMANDE INI(61) DE MODE Interruption de la com. d’impul. synch. Chaque balayage PV de la fréquence du compteur SR 249 *E. = entrée Immédiatement PRV(62) SR 248 Chaque balayage Instruction LECTURE DE LA PV DU COMPTEUR A GRANDE VITESSE Lecture de la fréq. du compteur à grande vitesse Lecture de l’état de la com. d’impul. synch. Etat de la com. d’impul. synch. AR 1100 à AR 1107 La fréquence de la sortie d’impulsions n’est pas lisible. Sélection du mode entrée Sélectionner le mode entrée bidirectionnelle, mode entrée d’impulsions et de direction, le mode entrée d’impulsions avance/retour, ou le mode incrémental. Ces modes sont expliqués ci--dessous. Sélection de la fréquence d’entrée de synchronisation d’impulsions Sélectionner une des plages de fréquence d’entrée suivantes : 10 Hz à 500 Hz, 20 Hz à 1 kHz ou 300 Hz à 20 kHz. Pour plus d’informations sur les fréquences d’entrée, se reporter aux schémas suivants. Mode entrée bidirectionnelle En mode entrée bidirectionnelle, le compteur est incrémenté ou décrémenté selon deux signaux bidirectionnels (phase A et phase B) avec un facteur de multiplication de 4. ON Phase A OFF ON Phase B OFF Nms $ Fréquence = 1 000 N Mode d’impulsions et de direction En mode entrée d’impulsions et de direction, des signaux d’impulsions et des 140 Chapitre Commande d’impulsions synchronisée (CPM2A/CPM2C uniquement) 2-7 signaux de direction sont reçus et le compteur est incrémenté ou décrémenté selon l’état du signal de direction. ON Entrées d’impulsions OFF Entrées de direction ON OFF Nms $ Fréquence = 1 000 N Mode entrée d’impulsions avance/retour En mode entrée d’impulsions avance/retour, des signaux CW (impulsions vers le haut) et des signaux CCW (impulsions vers le bas) sont reçus et le compteur est incrémenté ou décrémenté en conséquence. ON Entrées CW OFF ON Entrées CWW OFF Incrémenté Nms $ Fréquence = Décrémenté 1 000 N Mode incrémental En mode incrémental, des signaux d’impulsions sont reçus et le compteur est incrémenté à chaque impulsion. Des entrées de phase B peuvent être utilisées en tant qu’entrées ordinaires. ON Entrées d’impulsions OFF Nms $ Fréquence = 1 000 N 141 Commande d’impulsions synchronisée (CPM2A/CPM2C uniquement) Chapitre Câblage des entrées Câblage d’entrée Câbler les entrées du CPM2A comme montré dans le schéma suivant : Mode entrée bidirectionnelle Mode entrée d’impulsions avance/retour 00000 : Entrée phase A 00001 : Entrée phase B 00002 : Entrée phase Z Mode entrée d’impulsions et de direction 00000 : Entrée CW 00001 : Entrée CCW Mode incrémental 00000 : Entrée d’impulsions 00001 : Entrée de direction 142 00000 : Entrée d’impulsions 2-7 Commande d’impulsions synchronisée (CPM2A/CPM2C uniquement) Chapitre 2-7 Câbler les entrées du CPM2C comme montré dans le schéma suivant. Mode d’entrée bidirectionnelle Mode d’entrée d’impulsions avance/retour Numéros de broches du connecteur des entrées Numéros de broches du connecteur des entrées 00002 : Entrée de phase Z 00001 : Entrée de phase B 00001 : Entrée CCW 00000 : Entrée de phase A 00000 : Entrée CW Mode d’impulsions et de direction Mode incrémental Numéros de broches du connecteur des entrées Numéros de broches du connecteur des entrées 00001 : Entrée de direction 00000 : Entrée d’impulsions 00000 : Entrée d’impulsions Câblage de sorties Câbler les sorties du CPM2A comme montré dans le schéma suivant : Câblage de sorties 01000 : Sortie d’impulsions 0 01001 : Sortie d’impulsions 1 143 Chapitre Commande d’impulsions synchronisée (CPM2A/CPM2C uniquement) 2-7 Câbler les sorties du CPM2C comme montré dans le schéma suivant. Connecteur de sortie 01000 : Sortie d’impulsions 0 01001 : Sortie d’impulsions 1 Setup de l’API La configuration du Setup de l’API concernant la commande d’impulsions synchronisée est présentée dans le tableau suivant : Mot DM 6642 Bits 00 à 03 Fonction Configuration du mode entrée du compteur à grande vitesse Paramé-trage 0, 1, 2 ou 4 0 : Entrée bidirectionnelle 5 kHz 1 : Entrée d’impulsions et de direction 20 kHz 2 : Entrée avance/retour 20 kHz 4 : Incrémental 20 kHz 04 à 07 Configuration de la méthode de réinitialisation du compteur à grande vitesse 0 ou 1 0 : Signal de phase Z ou bit de RAZ 1 : Bit de RAZ uniquement 08 à 15 Configuration du compteur à grande vitesse 02, 03, 04 00 : Ne pas utiliser. 01 : Utiliser pour un compteur à grande vitesse 02 : Utiliser pour une commande d’impulsions synchronisée (10 Hz à 500 Hz) 03 : Utiliser pour une commande d’impulsions synchronisée (20 Hz à 1 kHz) 04 : Utiliser pour une commande d’impulsions synchronisée (300 Hz à 20 kHz) Les configurations sont effectives dès que le mode est modifié (de PROGRAM à MONITOR/RUN) ou dès que l’alimentation est activée pour l’API. 144 Commande d’impulsions synchronisée (CPM2A/CPM2C uniquement) Programme en schéma à contacts Chapitre 2-7 Le tableau suivant montre les fonctions d’instruction liées à la commande d’impulsions synchronisée : Instruction Commande (@)SYNC(----) Fonction Démarrer la commande synchronisée Précise le facteur de mise à l’échelle des fréquences et du port de sortie, et des sorties impulsions. Modifier le facteur de mise à l’échelle des fréquences Modifie le facteur de mise à l’échelle des fréquences pendant les sorties d’impulsions. (@)INI(61) Interrompre la commande synchronisée Interrompt la sortie d’impulsions. (@)PRV(62) Lecture de la fréquence d’entrée Lecture de l’état de la commande synchronisée Lit la fréquence d’entrée. Lit l’état de la commande synchronisée. Le tableau suivant montre les mots et les bits liés à la commande d’impulsions synchronisée : Mot Bits 248 00 à 15 249 00 à 15 AR 11 15 AR 12 15 Dénomination PV de la fréquence d’entrée, digits à l’extrême droite PV de la fréquence d’entrée, digits à l’extrême gauche Sortie d’impulsions en cours pour Sortie d’impulsions 0 Sortie d’impulsions en cours pour Sortie d’impulsions 1 Contenu Lit la PV de la fréquence d’entrée. q ON : Sortie en cours OFF : Interrompu p Démarrer la commande de fréquence Cette fonction indique les bits pour les sorties d’impulsions (01000, 01001) et le facteur de mise à l’échelle des fréquences (1% à 1 000%) et démarre la sortie d’impulsions. (@)SYNC(----) 000 P2 C C Intitulé du port d’entrée d’impulsions (000 : Compteur à grande vitesse) Intitulé du port de sortie d’impulsions (000 : Sortie d’impulsions 0 ; 010 : Sortie d’impulsions 1) Configuration du facteur de mise à échelle des fréquences Facteur de mise à échelle des fréquences Répertorie le facteur de mise à l’échelle des fréquences à définir. N_0001 à N_1000 (4 digits BCD) : 1 à 1 000% Rem. En utilisant SYNC(-- --) pour indiquer un facteur de mise à l’échelle des fréquences, s’assurer de garder la fréquence de la sortie d’impulsions inférieure à 10 kHz. Modifier le facteur de mise à l’échelle des fréquences Cette fonction modifie le facteur de mise à l’échelle des fréquences pendant la commande synchronisée (durant la sortie d’impulsions) en indiquant les bits pour les sorties d’impulsions (01000, 01001) et le facteur de mise à l’échelle des fréquences (1% à 1 000%) et en exécutant SYNC(-- --). 145 Commande d’impulsions synchronisée (CPM2A/CPM2C uniquement) Chapitre 2-7 Interrompre la commande synchronisée Cette fonction interrompt les sorties d’impulsions. (@)INI(61) 005 Spécificateur de port (000 : Compteur à grande vitesse) Intitulé de commande (005 : Interrompre la commande synchronisée) 000 Fixé : 000 000 Rem. La sortie d’impulsions peut également être arrêtée en basculant l’API au mode PROGRAM. Lire la fréquence d’entrée Cette fonction lit la PV de la fréquence d’entrée. Utilisation d’une instruction (@)PRV(62) 000 000 D Fixé : 000 Intitulé de commande (000 : Lire la fréquence d’entrée du compteur à grande vitesse) Premier mot pour la mémorisation de la PV de la fréquence d’entrée D 4 digits à l’extrême droite D+1 4 digits à l’extrême gauche 00000000 à 00020000 (8 digits BCD) Utilisation des zones de données Comme montré dans l’illustration suivante, la fréquence d’entrée est mémorisée dans les mots 248 et 249 : Mot 248 PV de la fréquence d’entrée (Extrême droite) Mot 249 PV de la fréquence d’entrée (Extrême gauche) Les mots 248 et 249 sont rafraîchis à chaque balayage, ainsi un écart peut toujours exister par rapport à la PV exact à un moment donné. Lorsque la PV est lue en exécutant PRV(62), les mots 248 et 249 sont rafraîchis pendant l’instruction. Lire l’état de la commande synchronisée Cette fonction lit l’état de la commande synchronisée. Utilisation d’une instruction (@)PRV(62) 000 Spécificateur de port (000 : Sortie d’impulsions 0 ; 010 : Sortie d’impulsions 1) 001 Intitulé de commande (001 : Lire l’état de la commande synchronisée) Premier mot pour mémoriser l’état de la commande synchronisée D # Spécificateur de port : 000 Etat de la sortie d’impulsions 0 0 : Interrompu 1 : Sortie d’impulsions en cours # Spécificateur de port : 010 Etat de la sortie d’impulsions 1 0 : Interrompu 1 : Sortie d’impulsions en cours 146 Commande d’impulsions synchronisée (CPM2A/CPM2C uniquement) Chapitre 2-7 Utilisation des zones de données Comme l’illustration suivante le montre, l’état de la sortie d’impulsions 0 est mémorisé dans AR 1115 et l’état de la sortie d’impulsions 1 est mémorisé dans AR 1215. AR 11 Etat de la sortie d’impulsions 0 0 : Interrompu 1 : Sortie en cours AR 12 Etat de la sortie d’impulsions 1 0 : Interrompu 1 : Sortie en cours AR 1115 et AR 1215 sont rafraîchis une fois à chaque cycle, ainsi un écart peut toujours exister avec la PV exacte à un moment donné. Lorsque la PV est lue en exécutant PRV(62), AR 1112 et AR 1212 sont rafraîchis immédiatement. Relation entre l’état et le fonctionnement Fréquence Impulsions d’entrée Temps Fréquence Impulsions de sortie Temps Exécution SYNC(----) Exécution INI(61) Sortie 0 en cours Sortie 1 en cours Exemple d’application Explication Dans cet exemple, lorsque la condition d’exécution (00005) passe sur ON, la commande d’impulsions synchronisée est démarrée et des impulsions sont produites à partir de la sortie 01000 (sortie d’impulsions 0) en fonction des impulsions entrées par le compteur à grande vitesse. C’est à ce moment là que le facteur de mise à l’échelle des fréquences peut être modifié au moyen de la commande analogique 0. Lorsque la condition d’exécution (00005) passe sur OFF, la commande d’impulsions synchronisée est interrompue. 147 Chapitre Commande d’impulsions synchronisée (CPM2A/CPM2C uniquement) 2-7 Câblage Câbler le CPM2A comme montré dans l’illustration suivante : Orange Blanc Noir Bleu Codeur rotatif Marron Pilote du moteur Câbler le CPM2C comme montré dans l’illustration suivante. Dans ce cas, une unité centrale avec des sorties de transistor récepteur est utilisée. Numéros de broches du connecteur des entrées Connecteur de sortie Pilote du moteur Bleu Codeur rotatif Marron COM Orange 24 Vc.c. Blanc Noir Rem. Pour plus d’informations concernant le câblage du pilote du moteur aux sorties et le câblage au codeur rotatif aux entrées, se reporter au Manuel de programmation du CPM2A/CPM2C. Setup de l’API 15 DM 6642 0 0 2 0 0 0 : Entrée bidirectionnelle 02 : Utilise une sortie de synchronisation de phase 148 Chapitre 2-10 Fonctions maître d’E/S du CompoBus/S (SRM1(-V2) uniquement) Programmation 00005 (Condition d’exécution) DIFD(14) 20000 Détecte le passage sur OFF de la condition d’exécution. MOV(21) 250 DM0000 Déplace la valeur de la commande analogique 0 en DM 0000. CMP(20) Définit DM 0000 à “1” lorsque la commande analogique 0 est réglée à “0.” MOV(21) (Les commandes analogiques sont intégrées dans les API du CPM2A, mais pas dans ceux du CPM2C) SYNC(----) L’execution de la COMMANDE D’IMPULSIONS SYNCHRONISEE Compteur à grande vitesse Port de sortie d’impulsions 0 Premier mot du facteur de mise à l’échelle de la fréquence INI(61) 2-8 Interrompt la commande d’impulsions synchronisée Fonctions analogiques d’E/S (CPM1/CPM1A/CPM2A uniquement) Jusqu’à 3 unités d’E/S analogiques se connectent à l’API pour fournir des E/S analogiques. Une unité d’E/S analogique permet 2 entrées analogiques et 1 sortie analogique. Pour plus d’informations se reporter au paragraphe 3--1 Unité analogique. 2-9 Fonctions esclave d’E/S du CompoBus/S (CPM1A/CPM2A uniquement) L’API du CPM2A fonctionne comme une unité esclave par rapport à l’unité maître CompoBus/S (ou de l’unité de commande maître du CompoBus/S de SRM1) lorsqu’une unité de liaison d’E/S du CompoBus/S est connectée. Se reporter, pour plus d’informations, au paragraphe 3--2 Unité de liaison d’E/S du CompoBus/S. 2-10 Fonctions maître d’E/S du CompoBus/S (SRM1(-V2) uniquement) Nombre maximal de stations Un maximum de 16 ou 32 stations CompoBus/S sont connectables. Mode communication Mode g grande vitesse Mode longue g distance N_ _ de stations définies 16 Temps de réponse des communications 0,5 ms 32 0,8 ms 16 4,0 ms 32 6,0 ms Le mode communication et le nombre maximal de stations sont définis dans le Setup de l’API et présentés dans le tableau suivant : 149 Chapitre 2-10 Fonctions maître d’E/S du CompoBus/S (SRM1(-V2) uniquement) Mot Bit(s) DM 6603 00 à 03 Fonction Paramétrage Nombre maximal de stations CompoBus/S 0 ou 1 04 à 07 0 : 32 stations 1 : 16 stations Mode communication du CompoBus/S 0 ou 1 08 à 15 0 : Communications à grande vitesse 1 : Communications longue distance Non utilisés. 00 Rem. Lorsque des modifications sont effectuées dans ces configurations, toujours désactiver et réactiver l’alimentation pour rendre le nouveau paramétrage effectif. Les bits d’entrée de IR 000 à IR 007 et les bits de sortie de IR 010 à IR 017 sont utilisés en tant qu’interruption dans les borniers d’E/S du CompoBus/S. Les interruptions de bornier d’E/S du CompoBus/S (IN 0 à 15 et OUT 0 à 15) sont attribués comme le tableau suivant le précise : Interruptions esclaves Bit Mot 15 14 13 12 11 10 9 Entrée Sortie Rem. 8 7 6 5 4 3 IR 000 IN1 IN0 IR 001 IN3 IN2 IR 002 IN5 IN4 IR 003 IN7 IN6 IR 004 IN9 IN8 IR 005 IN11 IN10 IR 006 IN13 IN12 IR 007 IN15 IN14 IR 010 OUT1 OUT0 IR 011 OUT3 OUT2 IR 012 OUT5 OUT4 IR 013 OUT7 OUT6 IR 014 OUT9 OUT8 IR 015 OUT11 OUT10 IR 016 OUT13 OUT12 IR 017 OUT15 OUT14 2 1 0 1. Lorsque le nombre maximal de stations CompoBus/S est défini à 16, IN8 à IN15 sont utilisés comme bits de travail. 2. Les borniers du CompoBus/S ayant moins de 8 points ont des adresses de bit allouées 0 ou 8. 3. Les borniers du CompoBus/S ayant 16 points sont définis pour les adresses à nombre pair seulement. 4. Les borniers analogiques sont définis pour les adresses à nombre pair seulement. 150 Chapitre 2-11 Commandes analogiques L’état des communications entre les borniers du CompoBus/S est produit par les drapeaux d’ajouts esclaves AR04 à AR07 et les drapeaux d’erreurs de communications esclaves. Drapeaux d’état Bits supérieurs : Drapeaux d’erreurs de communications esclaves Mot Bits inférieurs : Drapeaux d’ajouts esclaves 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 AR04 OUT 7 OUT 6 OUT 5 OUT 4 OUT 3 OUT 2 OUT 1 OUT 0 OUT 7 OUT 6 OUT 5 OUT 4 OUT 3 OUT 2 OUT 1 OUT 0 AR05 IN7 IN6 IN5 IN4 IN3 IN2 IN1 IN0 IN7 IN6 IN5 IN4 IN3 IN2 IN1 IN0 AR06 OUT 15 OUT 14 OUT 13 OUT 12 OUT 11 OUT 10 OUT 9 OUT 8 OUT 15 OUT 14 OUT 13 OUT 12 OUT 11 OUT 10 OUT 9 OUT 8 AR07 IN15 IN14 IN13 IN12 IN11 IN10 IN9 IN8 IN15 IN14 IN13 IN12 IN11 IN10 IN9 IN8 Rem. 1. IN0 à IN15 sont les borniers d’entrée et OUT0 à OUT15 sont les borniers de sorties. 2. Lorsque le nombre maximal des unités CompoBus/S est défini à 16, IN8 à IN15 et OUT8 à OUT15 ne sont pas utilisables. 3. Le drapeau d’ajout esclave passe sur ON lorsqu’un esclave se joint aux communications. Lorsque l’alimentation de l’unité centrale passe sur OFF puis de nouveau sur ON, tous les bits passeront sur OFF. 4. Le drapeau d’erreurs de communications esclaves passe sur ON lorsqu’un esclave membre du réseau est séparé du réseau. Le bit passe alors sur OFF lorsque l’esclave réintègre le réseau. 2-11 Commandes analogiques Les API des CPM1/CPM1A et CPM2A sont équipés de commandes analogiques qui transfèrent automatiquement les configurations des commutateurs de réglage de l’unité centrale aux mots de la mémoire d’E/S de l’unité centrale. Cette fonction est très utile lorsque les valeurs nécessitent un réglage précis au cours du fonctionnement. Ces valeurs définies sont modifiables en tournant tout simplement les commutateurs de réglage de l’unité centrale. 2-11-1 Commandes analogiques CPM1/CPM1A Configurations CPM1/CPM1A Les API du CPM1/CPM1A ont deux commandes de réglage analogiques. Le schéma suivant montre les commandes de réglage et indique les mots SR correspondants contenant les arrangements de réglage. Utiliser un tournevis cruciforme pour régler les paramètres. La configuration analogique pour la commande 0 se trouve dans SR 250. La configuration analogique pour la commande 1 se trouve dans SR 251. Rem. Le schéma ci--dessus montre le CPM1, les configurations sont les mêmes pour le CPM1A. 151 Chapitre 2-11 Commandes analogiques ! Attention Les différences de température peuvent modifier la configuration analogique. Ne pas utiliser les commandes analogiques de réglage pour les applications exigeant une configuration précise et fixée. Exemple de programme du CPM1/CPM1A Le programme à contacts suivant utilise les configurations analogiques de CPM1/CPM1A. La configuration analogique en SR 250 (BCD 0000 à 0200) est déterminée en réglant la commande analogique 0 de réglage. Cette valeur est utilisée pour régler la valeur de consigne de la temporisation de 0,0 à 20,0 secondes. Etat de démarrage TIM 000 TIM 000 SR 250 est désigné comme valeur de consigne de temporisation. 01003 2-11-2 Commandes analogiques du CPM2A Le CPM2A a deux commandes analogiques pouvant être utilisées pour une large plage pour les configurations de temporisation et de compteur analogique. Pendant que ces commandes sont activées, les valeurs de 0 à 200 (BCD) sont mémorisées dans la zone SR. Utiliser un tournevis cruciforme pour régler les commandes. Commande analogique 0 Commande analogique 1 Zone de mémorisation Commande analogique 0 SR 250 Commande analogique 1 SR 251 valeur de consigne (BCD) 0000 à 0200 La zone de mémorisation est rafraîchie une fois à chaque cycle de CPM2A. Rem. La modification de la température ambiante peut affecter les valeurs réglées par les commandes analogiques, ainsi, utiliser les commandes analogiques pour des applications où les valeurs définies n’exigent pas une grande précision. 152 Chapitre 2-12 Entrées de capture Utilisation des commandes analogiques Effectue la configuration analogique. Utiliser un tournevis cruciforme pour régler les commandes. Connecter un périphérique de programmation tel que la console de programmation et vérifier les valeurs mémorisées dans le SR 250 et le SR 251. Crée un programme en schéma à contacts. Lire les valeurs en SR 250 et SR 251 avec le programme en schéma à contacts Commande analogique 0 Effectuer la configuration analogique Commande analogique 1 SR 251 Commande analogique 1 valeur de consigne (SV) SR 250 Commande analogique 0 valeur de consigne (SV) Utiliser un tournevis cruciforme pour régler les commandes analogiques. Les valeurs définies sont vérifiées en connectant un périphérique de programmation tel qu’une console de programmation et en lisant les valeurs mémorisées en SR 250 et SR 251. Commande analogique 0 Programme en schéma à contacts Commande analogique 1 Le tableau suivant montre les mots et les bits où les configurations analogiques sont mémorisées : Mot Bit SR 250 00 à 15 SR 251 00 à 15 Dénomination Commande analogique 0 zone de mémorisation de SV Commande analogique 1 zone de mémorisation de SV Valeur 0000 à 0200 ((BCD)) Dans l’exemple de programme suivant, la SV de la commande analogique (0000 à 0200 BCD) mémorisée en SR 250 est définie comme temporisation. La plage définie de la temporisation est 0,0 s à 20,0 s. Bit de démarrage Détermine SR 250 pour la SV de temporisation Rem. Les temps de fonctionnement pour la temporisation analogique montré dans l’exemple ci--dessus changeront selon la modification apportée à la température ambiante. Ne pas utiliser ce programme pour des applications où des opérations précises sont exigées. 2-12 Entrées de capture 2-12-1 Entrées de capture des CPM1/CPM1A Les CPM1/CPM1A ont des entrées de capture utilisables pour valider les signaux entrant plus courts que le temps de cycle API. 153 Chapitre 2-12 Entrées de capture Toutes les unités centrales de 10 points ont 2 bornes d’entrée de capture et les unités centrales de 20, 30 et 40 points ont 4 bornes d’entrée de capture. Ces mêmes bornes sont utilisées pour les entrées rapides et les entrées d’interruption. Programme en schéma à contacts Les entrées de capture ont un tampon interne, ainsi les signaux d’entrée plus court qu’un cycle peuvent être détectés. Les signaux avec une largeur d’impulsions aussi courte que 0,2 ms peuvent être détectés, quelle que soit leur place dans le cycle de l’API. Suveillance Exécution Rafraîchis- Suveillance Exécution Rafraîchisdes traite- du pro- sement des des traite- du pro- sement des ments gramme E/S ments gramme E/S Signal d’entrée (00003) IR 00003 Un cycle Unité centrale Configuration des entrées de capture Bits d’entrée UC à10 points IR 00003 à IR 00004 UC à 20, 30, 40 points IR 00003 à IR 00006 Largeur min. des entrées d’interruption 0,2 , ms les bits d’entrée du tableau ci--dessus peuvent être définis comme des entrées de capture en DM 6628, comme le montre le tableau suivant : Mot DM 6628 Paramétrage 0 : Entrée normale 1 : Entrée d’interruption 2:E Entrée té d de capture t (C fi (Configuration i par défaut déf : 0) Bit 15 0 DM 6628 Paramétrage pour entrée 00006 : Défini à 2 Paramétrage pour entrée 00005 : Défini à 2 Paramétrage pour entrée 00004 : Défini à 2 Paramétrage pour entrée 00003 : Défini à 2 Example de programme Dans cet exemple, DM 6628 a été défini à 0002. Premier drapeau de cycle 25315 sur ON pour 1 cycle @INT(89) 000 000 Masquage/non masquage des entrées d’interruption. #000E Non masque 00003 (entrée d’interruption 0), masque d’autres. 154 Chapitre 2-12 Entrées de capture 2-12-2 Entrées de capture des CPM2A/CPM2C Quatre des entrées des CPM2A et CPM2C sont utilisées pour des entrées de capture (partagées avec des entrées d’interruption et de compteur à grande vitesse 2 kHz). Avec les entrées de capture, les signaux modifiés dans un cycle peuvent être reçus en maintenant un tampon interne. Traitement partagé Traitement de calcul Rafraîchi ssement d’E/S Traitement partagé Traitement de calcul Rafraichissement d’E/S Borne d’entrée (00003) 00003 1 cycle Numéro d’entrée (Voir Rem.) Largeur minimale du signal d’entrée 50 "s " 00003 00004 00005 00006 (Voir Rem. 2) Rem. 1. Les numéros d’entrée de 00003 à 00006 peuvent être utilisés comme entrées d’interruption, entrées à grande vitesse 2 kHz ou entrées de capture. Si elles ne sont utilisées pour aucune de ces fonctions, elles peuvent être utilisées en tant qu’entrées ordinaires. 2. Le numéro d’entrée 00006 n’existe pas dans les unités centrales avec 10 points d’entrée/sortie du CPM2C. Le tableau suivant montre les rapports entre les entrées de capture et les autres fonctions des CPM2A/CPM2C : Fonction Commande d’impulsions synchronisée Entrées d’interruption Rem. Interruption de temporisation cyclique Utilisable simultanément. Voir Rem. 1. Interruptions d’horloge Utilisable simultanément. Compteur à grande vitesse Utilisable simultanément. Entrées d’interruption (mode compteur) Sorties d’impulsions Voir Rem. 2. Entrée de capture Voir Rem. 3. Constante de temps d’entrée Voir Rem. 4. Horloge Utilisable simultanément. Utilisable simultanément. 1. Les entrées de capture utilisent la fonction d’entrée d’interruption, ainsi, dans le Setup de l’API, le même numéro d’entrée de 00003 à 00006 ne peut pas être affecté à la fois à une entrée de capture et à une entrée d’interruption. 2. Une entrée de capture et une interruption en mode compteur ne peuvent pas se voir affectées le même numéro d’entrée dans le Setup de l’API. 3. Les numéros d’entrée affectés aux entrées de capture sont de 00003 à 00006. Ces entrées peuvent être définies et actionnées comme des entrées de capture. 4. Les constantes de temps d’entrée sont désactivées pour toutes les entrées définies comme des entrées de capture. 155 Chapitre 2-12 Entrées de capture Utilisation des entrées de capture Câbler les entrées. Setup de l’API (DM 6628) Entrées de capture Numéros d’entrée : 00003, 00004, 00005 et 00006 2 : Utiliser les entrées de capture Entrée de capture 0 Capture Entrée de capture 1 Entrée de capture 2 Entrée de capture 3 Setup de l’API DM 6628 Câblage des entrées Câbler les entrées du CPM2A comme montré dans le schéma suivant : Entrée 00003 : Entrée de capture 0 Entrée 00004 : Entrée de capture 1 Entrée 00005 : Entrée de capture 2 Entrée 00006 : Entrée de capture 3 Câbler les entrées de CPM2C comme montré dans le schéma suivant : Unités centrales avec 10 points d’E/S 156 Chapitre 2-12 Entrées de capture Numéros de bornes du bornier des entrées Entrée 00004 : Entrée de capture 1 Entrée 00003 : Entrée de capture 0 Numéros de broches du connecteur des entrées 00004 : Entrée de capture 1 00003 : Entrée de capture 0 Unités centrales avec 20 points d’E/S Numéros de broches du connecteur des entrées 00006 : Entrée de capture 3* 00005 : Entrée de capture 2* 00004 : Entrée de capture 1 00003 : Entrée de capture 0 Setup de l’API Pour utiliser des entrées de capture avec le CPM2C ou le CPM2A, effectuer les configurations suivantes dans la zone de configuration du système (DM 6628) du périphérique de programmation : 157 Chapitre 2-13 Fonction de la macro Mot DM 6628 Bits 00 à 03 Fonction Configuration d’interruption pour l’entrée numéro 3 04 à 07 Configuration d’interruption pour l’entrée numéro 4 08 à 11 Configuration d’interruption pour l’entrée numéro 5* 12 à 15 Configuration d’interruption pour l’entrée numéro 6* 0 : Entrée normal Paramé --trage 2 1 : Entrée d’interruption (mode entrée d’interruption ou mode compteur) 2 : Entrée de capture Rem. *Les numéros d’entrée 00005 et 00006 n’existent pas dans les unités centrales du CPM2C avec 10 points d’entrée/sortie. Les configurations seront effectives lorsque le mode sera modifié (de PROGRAM en MONITOR/RUN) ou que l’alimentation de l’API sera passée sur ON. 2-13 Fonction de la macro La fonction de la macro permet à un simple sous--programme (modèle de programmation) d’être utilisé en modifiant seulement le mot d’entrée/sortie. Un certain nombre de sections semblables du programme peuvent être gérées avec juste un sous--programme, réduisant ainsi considérablement le nombre d’étapes dans le programme et en rendant le programme plus facile à comprendre. Utilisation des macros Pour utiliser une macro, appeler un sous--programme au moyen de l’instruction MACRO, MCRO(99), comme montré ci--dessous, au moyen de SBS(91) (SUBROUTINE ENTRY). MCRO(99) N_ sous--programme 1er mot d’entrée 1er mot de sortie Lorsque MCRO(99) est exécutée, l’opération poursuivra comme suit : 1, 2, 3... 158 1. Les contenus des quatre mots sucessifs commençant par le premier mot d’entrée seront transférés de SR 232 à SR 235. 2. Le sous--programme indiqué sera exécuté jusqu’à ce que RET(93) (retour de sous--programme) soit exécuté. 3. Le contenu de SR 236 à SR 239 (résultats de l’exécution du sous--programme) sera transféré aux quatre mots successifs commençant par le premier mot de sortie. 4. MCRO(99) sera alors finie. Lorsque MCRO(99) est exécutée, le même modèle d’instruction peut être utilisé tout simplement en changeant le première mot d’entrée ou le premier mot de sortie. Les restrictions suivantes s’appliquent lorsque la fonction de la macro est utilisée : # Les seuls mots pouvant être utilisés pour chaque exécution de la macro sont les quatre mots successifs commençant par le premier numéro de mot d’entrée (lors de réception) et les quatre mots successifs commençant par le premier mot de sortie (lors d’émission). # Les entrées et les sorties indiquées doivent correspondre exactement aux mots utilisés dans le sous--programme. Chapitre 2-14 Calcul avec les données binaires signées # Même lors de l’utilisation de la méthode de sortie directe pour des émissions, les résultats des sous--programmes se reflèteront réellement dans les mots de sortie indiqués uniquement lorsque le sous--programme sera accompli (étape 3 ci--dessus). Rem. SR 232 à SR 239 sont utilisés comme bits de travail lorsque MCRO(99) n’est pas utilisée. Le premier mot d’entrée et le premier mot de sortie ne sont pas qualifiés par les bits d’entrée/sortie, mais par d’autres bits (tels que les bits HR, les bits de travail, etc.) ou par des mots DM. Des sous--programmes appelés par MCRO(99) sont définis par SBN(92) et RET(93), tout comme le sont les sous--programmes ordinaires. Exemple d’application Lorsqu’une macro est utilisée, le programme peut être simplifié comme montré ci--dessous : Macro non utilisée Macro utilisée 25313 (toujours sur ON) 00000 20001 MCRO(99) 20000 030 20000 000 200 00001 00002 MCRO(99) 20001 00200 030 002 20501 205 20500 MCRO(99) 20500 030 00201 005 00202 20501 00500 210 MCRO(99) 21001 21000 030 010 21000 220 00501 00502 SBN(92) 21001 01000 23200 22001 23601 23600 22000 23600 22000 00101 030 00102 22001 Sous--programme utilisé pour définir une macro 23201 23202 23201 RET(93) 2-14 Calcul avec les données binaires signées Les CPM1/CPM1A/CPM2A/SRM1(--V2) permettent des calculs sur des données binaires signées. Les instructions suivantes traitent les données binaires signées en utilisant le complément de 2. Instructions CPM2A/CPM2C et SRM1(-V2) Les instructions binaires signées suivantes sont disponibles dans les API de CPM2A, de CPM2C et de SRM1(--V2) : # BINARY ADD -- ADB(50) (ADDITION BINAIRE) # BINARY SUBTRACT -- SBB(51) (SOUSTRACTION BINAIRE) # 2’S COMPLEMENT -- NEG(----) (COMPLEMENT DE 2) 159 Chapitre 2-14 Calcul avec les données binaires signées Instructions des CPM1/CPM1A Les instructions binaires suivantes sont disponibles dans les API de CPM1/CPM1A : # BINARY ADD -- ADB(50) (ADDITION BINAIRE) # BINARY SUBTRACT -- SBB(51) (SOUSTRACTION BINAIRE) Calcul des données signées Addition Soustraction 7 + 3 = 10 7 -- 3 = 4 (--7) + 3 = --4 (--7) -- 3 = --10 7 + (--3) = 4 7 -- (--3) = 10 (--7) + (--3) = --10 (--7) -- (--3) = --4 2-14-1 Définition de données binaires signées Les données binaires signées sont traitées en utilisant un complément de 2 et le bit 15 est utilisé comme bit de signe. La plage des données s’exprimant en utilisant un mot est comme suit : --32 767 à --32 768 (8000 hexadécimal à 7FFF). Le tableau suivant montre des équivalences existantes entre les données décimales et hexadécimales : Décimale 32 767 32 766 ... 2 1 0 --1 --2 ... --32 767 --32 768 Hexadecimale à 4 digits 7FFF 7FFE ... 0002 0001 0000 FFFF FFFE ... 8001 8000 2-14-2 Drapeaux arithmétiques Les résultats d’exécution des instructions binaires signées sont représentés dans les drapeaux arithmétiques. Les drapeaux et les conditions pour lesquels il passera sur ON sont donnés dans le tableau suivant. Les drapeaux seront éteints lorsque ces conditions ne seront pas atteintes. Drapeau Achemine le drapeau (SR 25504) Conditions ON Réalise une addition. Résultat négatif lors de soustraction. Egualise le drapeau (SR 25506) Le résultat de l’addition, de la soustraction, de la multiplication ou de la division est 0. Résultat de la conversion de complément de 2 est 0. 2-14-3 Réception des données binaires signées en utilisant les valeurs décimales Bien que les calculs des données binaires signées utilisent des expressions hexadécimales, les entrées de la console de programmation ou du SSS sont possibles en utilisant des entrées décimales et mnémoniques pour les instructions. Les procédures à suivre lors de l’utilisation de console de programmation pour réceptionner en utilisant des valeurs décimales sont développées dans : Manuel de programmation de CPM1, Manuel de programmation de CPM1A, 160 Chapitre 2-15 Détections de fronts Manuel de programmation de CPM2A, Manuel de programmation de CPM2C et Manuel de programmation d’unité de commande maître du SRM1. Se reporter au Manuel de programmation du SSS : API série C pour plus d’informations concernant l’utilisation du SSS. Instructions d’entrée Se reporter au Manuel de programmation du CPM1, Manuel de programmation du CPM1A, Manuel de programmation du CPM2C, Manuel de programmation du CPM2A et Manuel de programmation d’unité du commande maître du SRM1 pour plus d’informations concernant les instructions d’entrée de la console de programmation. 2-15 Détections de fronts La console de programmation connectée aux CPM1/CPM1A, CPM2A//CPM2C et SRM1(--V2) peut détecter les transitions de ON à OFF et de OFF à ON dans le bit précisé. Lorsque la transition précisée à lieu, la transition est indiquée sur l’affichage et une alarme sonore permettant une identification facile de la transition est signalée. 161 Chapitre 2-16 Instructions d’expansion (CPM2A/CPM2C/SRM1(-V2) uniquement) 2-16 Instructions d’expansion (CPM2A/CPM2C/SRM1(-V2) uniquement) Un ensemble d’instructions d’expansion est disponible pour le CPM2A, le CPM2C et le SRM1(--V2) afin de particier aux besoins de la programmation spéciale. Jusqu’à 18 instructions d’expansion peuvent se voir attribuer des codes de fonction pour pouvoir les utiliser dans les programmes. Ceci permet à l’utilisateur de choisir les instructions nécessaires pour chaque programme du CPM2A, du CPM2C ou du SRM1(--V2) afin d’utiliser plus efficacement les codes de fonction requis pour les instructions d’entrée. Les mnémoniques des instructions d’expansion sont suivies du “(----)” comme le code de fonction pour indiquer qu’elles doivent être des codes de fonction attribués par l’utilisateur dans le tableau d’instructions avant qu’elles puissent être utilisées dans la programmation (à moins qu’elles soient utilisées en configuration par défaut). Toutes les instructions dont les codes de fonction ne sont pas attribués auront besoin que des codes de fonction leurs soient attribués dans le tableau d’instructions utilisé par le périphérique de programmation et les CPM2A/CPM2C ou le SRM1(--V2) avant qu’elles puissent être utilisées dans la programmation. L’attribution des instructions d’expansion dans le tableau d’instructions modifiera la signification des instructions et des opérandes, s’assurer de définir le tableau d’instructions avant la programmation et de transférer le bon tableau d’instructions aux CPM2A/CPM2C ou à SRM1(--V2) avant l’exécution du programme. Exemple : les API des CPM2A/CPM2C Les instructions caractéristiques utilisées dans l’exemple suivant sont valables pour les CPM2A/CPM2C. Les concepts sont les mêmes pour le SRM1(--V2). Code de fonction 61 INI Code de fonction 61 SPED Code de fonction 64 PULS SPED Code de fonction 64 MIN SUM Lors du transport, les codes de fonctions sont attribués comme présenté ci--dessus. Dans cet exemple, les instructions sont toutes liées aux sortie d’impulsions. Rem. PULS MAX MAX Code de fonction 65 INI Code de fonction 65 MIN SUM Lorsque les sorties d’impulsions ne sont pas utilisées et lorsque les valeurs maximales, minimales et les aditions sont requises, le fonctionnement des instructions de configuration est utilisé comme ci--dessus pour une réattribution des instructions dans le tableau d’instructions. 1.Définir le modèle d’API à “CQM1” lors de la configuration des instructions d’expansion du SRM1(--V2) ou des CPM2A/CPM2C vers le SSS. 2. Le Setup de l’API doit être défini pour les codes de fonction d’instruction d’expansion déterminés par l’utilisateur afin d’affecter les codes de fonction. Donner la valeur 0100 à DM 6602 (BCD). 162 Instructions d’expansion (CPM2A/CPM2C/SRM1(-V2) uniquement) Chapitre 2-16 2-16-1 Les instructions d’expansion du CPM2A/CPM2C Les 18 codes de fonction suivants peuvent être utilisés pour les instructions d’expansion : 17, 18, 19, 47, 48, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69 et 89. Les affectations de code de fonction peuvent être modifiées par une console de programmation ou par le logiciel SYSWIN. Se reporter au paragraphe 4--4--5, Attribution de codes de fonction d’instruction d’expansion du Manuel de programmation du CPM2C ou du CPM2A concernant le traitement de la console de programmation. Les instructions d’expansion utilisables sont énumérées ci--dessous, avec les codes de fonction affectés par défaut lors du transport de l’API. Mnémonique Code de fonction ASFT 17 TKY 18 MCMP 19 RXD 47 TXD 48 CMPL 60 INI 61 PRV 62 CTBL 63 SPED 64 PULS 65 SCL 66 BCNT 67 BCMP 68 STIM 69 INT 89 ACC --- AVG --- FCS --- HEX --- HMS --- MAX --- MIN --- NEG --- PID --- PWM --- SCL2 --- SCL3 --- SEC --- SRCH --- STUP --- SUM --- SYNC --- TIML --- TMHH --- ZCP --- ZCPL --- 163 Chapitre 2-17 Utilisation de la fonction d’horloge des CPM2A/CPM2C 2-16-2 Instruction d’expansion du SRM1(-V2) Les 18 codes suivants de fonction peuvent être utilisés pour des instructions d’expansion : 17, 18, 19, 47, 48, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69 et 89. Les affectations de code de fonction peuvent être modifiées par une console de programmation ou par le logiciel SYSWIN. Se reporter au paragraphe 4--2--6 Configuration des instruction d’expansion du Manuel de programmation d’unité de commande du SRM1 pour le traitement de la console de programmation. Les instructions d’expansion utilisables sont énumérées ci--dessous, avec les codes de fonction affectés par défaut lors du transport du SRM1(--V2). Mnémonique Code fonction ASFT 17 RXD 47 TXD 48 CMPL 60 SCL* 66 BCNT 67 BCMP 68 STIM 69 FCS --- HEX --- NEG* --- PID* --- STUP --- ZCP* --- Rem. *Seules les unités centrales du SRM1-C0j-V2 accueillent le SCL(66), le NEG(-- --), le PID(-- --) et le ZCP (-- --). 2-17 Utilisation de la fonction d’horloge des CPM2A/CPM2C Les API du CPM2A et certains API du CPM2C ont une fonction d’horloge intégrée. Ce chapitre explique comment utiliser l’horloge. 2-17-1 Mots de zone de données L’illustration suivante montre la configuration des mots (AR 17 jusqu’à AR 21) utilisés avec l’horloge. Ces mots peuvent être lus et utilisés comme nécessaire. AR 17 est fourni pour que l’heure et la minute puissent être consultées rapidement. 15 AR 17 AR 18 AR 19 AR 20 AR 21 Heure Minute Date Année 8 7 0 Minute Seconde Heure Mois 2 digits BCD chaque. (affiche seulement les 2 derniers chiffres de l’année) Jour de la semaine 00 à 06 : Dimanche à samedi AR 2115 Bit définission de l’horloge AR 2114 Bit arrêt d’horloge AR 2113 164 Bit réglage à 30 secondes Utilisation de la fonction d’horloge des CPM2A/CPM2C Chapitre 2-17 2-17-2 Configuration du temps Pour régler l’heure, utiliser un périphérique de programmation comme suit : Configuration de tout 1, 2, 3... 1. Activer l’AR 2114 (bit arrêt d’horloge) pour arrêter l’horloge et permettre à l’AR 18 jusqu’à l’AR 21 d’être écrasés. 2. En utilisant un périphérique de programmation, régler l’AR 18 jusqu’à l’AR 20 (minute/seconde, date/heure et année/mois) et l’AR 2100 jusqu’à AR 2107 (jour de la semaine). 3. Activer l’AR 2115 (bit définition de l’horloge) dès que le temps réglé à l’étape 2 est atteint. Le fonctionnement de l’horloge démarrera à partir du temps réglé et lorsque le bit arrêt d’horloge ainsi que le bit réglage d’horloge seront passés automatiquement en état OFF. Configuration seulement des secondes Il est également possible, en utilisant l’AR 2113, de régler tout simplement les secondes à “00” sans avoir à passer par un procédé compliqué. Lorsque l’AR 2113 est activé, l’horloge est modifiée comme suit : Losque le paramétrage des secondes va de 00 à 29, les secondes seront réinitialisées “00” et la configuration des minutes demeurera la même. Lorsque le paramétrage des secondes va de 30 à 59, les secondes seront réinitialisées à “00” et le paramétrage des minutes avancera de un. Lorsque la configuration du temps est achevée, l’AR 2113 basculera automatiquement sur OFF. Rem. L’horloge peut être réglée facilement en utilisant les fonctions du menu d’une console de programmation. 165 CHAPITRE 3 Utilisation des modules d’extension Ce chapitre décrit l’utilisation du module d’E/S analogique CPM1A-MAD01 et de l’unité de liaison d’E/S CompoBus/S CPM1A-SRT21. 3-1 3-2 Modules d’E/S analogiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Unité de liaison d’E/S CompoBus/S . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 177 167 Chapitre Modules d’E/S analogiques 3-1 3-1 Modules d’E/S analogiques Un maximum de 3 modules d’extension, y compris des modules d’E/S analogiques CPM1A-MAD01, peuvent être connectés à un API CPM2A. Un module d’E/S analogique permet l’utilisation de 2 entrées analogiques et d’une sortie analogique. Lorsque les 3 modules d’E/S analogiques sont connectés, il est possible de disposer de 6 entrées et de 3 sorties analogiques. ! La plage d’entrée analogique peut être définie à 0 -- 10 V c.c., 1-- 5 V c.c. ou 4 -20 mA avec une résolution de 1/256 (la fonction de détection de circuit ouvert peut être utilisée avec les plages 1 -- 5 V c.c. et 4 -- 20 mA). ! La plage de sortie analogique peut être définie à 0 -- 10 V c.c., 4 -- 20 mA ou --10 -- 10 V c.c.. La sortie a une résolution de 1/256 lorsque la plage sélectionnée est 0 -- 10 V c.c. ou 4 -- 20 mA ; elle a une résolution de 1/512 lorsque la plage sélectionnée est --10 -- 10 V c.c.. 3 modules d’extension max. doivent être connectés Unité centrale Module d’E/S d’extension CPM1A-20EDR1 Module d’E/S d’extension CPM1A-8ED Module d’E/S d’extension CPM1A-MAD01 168 2 entrées analogiques 1 sortie analogique 1 sortie analogique Chapitre Modules d’E/S analogiques Elément défini Partie E é Entrées analog analog. Partie S i Sortie analog. (Voir Rem. 1) E/S de tension E/S de courant Nombre d’entrées 2 Plage de signaux d’entrée 0 à 10 V/1 à 5 V 4 à 20 mA Entrée max. spécifiée Impédance d’entrée externe "15 V 1 M# min. "30 mA Nominal 250 # Résolution 1/256 Précision 1,0% de la pleine échelle Conversion A/N Valeur binaire de 8 bits Nombre de sorties 1 Plage de signaux de sortie 0 à 10 V ou --10 à 10 V 5 mA 4 à 20 mA --- 350 # Courant max. de sortie externe Résistance admissible de la charge externe en sortie Résolution --- Précision 1/256 (1/512 lorsque la plage de signaux de sortie est --10 -10 V) 1,0% de la pleine échelle Valeur de consigne Valeur binaire signée de 8 bits Temps de conversion 10 ms max. par moldule (Voir Rem. 2) Méthode d’isolation Isolation par photocoupleur entre les délimiteurs d’E/S et les signaux de l’API. Aucune isolation entre les signaux d’E/S. Rem. 3-1 1. Avec les sorties analogiques, il est possible d’utiliser en même temps les deux sorties de tension et les deux sorties de courant. Dans ce cas, toutefois, la valeur totale de courant de sortie ne doit pas dépasser 21 mA. 2. Le temps de conversion est la durée totales de conversion de 2 entrées analogiques et d’une sortie analogique. Plage de signaux d’E/S analogiques Plage de signaux d’entrée analogiques Entrées 0 à 10 V Valeur de conversion Entrées 1 à 5 V Valeur de conversion 1V Signal d’entrée Entrées 4 à 20 mA Valeur de conversion 3V Signal d’entrée Signal d’entrée 169 Chapitre Modules d’E/S analogiques Plage de signaux de sortie analogiques Sorties 0 à 10 V Sortie --10 à +10 V Valeur de consigne Valeur de consigne Sorties 4 à 20 mA Valeur de consigne Utilisation des E/S anlogiques Définir la plage d’E/S Connecter le module Câbler le module d’E/S analogique Entrées analogiques : 0 à 10 V, 1 à 5 V ou 4 à 20 mA Sorties analogiques : 0 à 10 V, --10 à +10 V ou 4 à 20 mA Connecter le module d’E/S analogique Connecter un équip. d’entrée analogique Ecrire le code de plage Créer en programme à contacts Entrée analogique : lire données converties Sortie analogique : écrire valeur de consigne 170 3-1 Chapitre Modules d’E/S analogiques 3-1 Entrées analogiques Unité centrale Module d’E/S analogique Programme à contacts (n + 1) mots (21) Instruction MOVE Ecrit le code de plage. Code de plage (m + 1) mots Valeur de conversion de l’entrée analogique 1 (m + 2) mots Valeur de conversion de l’entrée analogique 2 Lit la valeur de conversion. Equipements analogiques Sonde de température “m” est le dernier mot en entrée et “n” le dernier mot en sortie affecté à l’unité centrale ou au module d’extension précédent. Capteur de pression Capteur de vitesse Capteur de début Voltmètre/ampèremètre Sorties analogiques Unité centrale Module d’E/S analogique Programme à contacts (Voir Rem.) (n + 1) mots Code de plage Valeur de consigne (21) Instruction MOVE de sortie analogique Ecrit le code de plage. Ecrit la valeur de consigne Equipements analogiques Equipement de réglage “n” est le dernier mot en sortie affecté à l’unité centrale ou au module d’extension précédent. Servocontrôleur Equipement à vitesse variable Enregistreur Autre Rem. Mot (n + 1) peut être utilisé soit pour le code de plage, soit pour la valeur de consigne de la sortie analogique. 171 Chapitre Modules d’E/S analogiques Définition de la plage de signaux d’E/S 3-1 La plage de signaux d’E/S est définie en connectant la borne d’E/S et en transférant le code de plage dans le mot de sortie du module d’E/S analogique. Configuration des délimiteurs d’E/S Rem. Pour l’utilisation de courants d’entrée, relier les délimiteurs V IN1 et I IN1 et les délimiteurs V IN2 with I IN2. V OUT Sortie de tension I OUT Sortie de courant COM Commun de sortie V IN1 Entrée de tension 1 I IN1 Entrée de courant 1 COM1 Commun d’entrée 1 V IN2 Entrée de tension 2 I IN2 Entrée de courant 2 COM2 Commun d’entrée 2 Code de plage Le code de plage doit être défini pour que le module d’E/S analogique puisse effectuer la conversion des données. Les 8 codes de plages représentent 8 combinaisons de plages de signaux d’entrée analogique et de sortie analogique, comme indiqué par le tableau suivant : Code de plage Plage de signaux de Plage de signaux de l’entrée analogique 1 l’entrée analogique 2 Plage de signaux de sortie analogique FF00 0 à 10 V 0 à 10 V 0 à 10 V ou 4 à 20 mA FF01 0 à 10 V 0 à 10 V --10 à 10 V ou 4 à 20 mA FF02 1 à 5 V ou 4 à 20 mA 0 à 10 V 0 à 10 V ou 4 à 20 mA FF03 1 à 5 V ou 4 à 20 mA 0 à 10 V --10 à 10 V ou 4 à 20 mA FF04 0 à 10 V 1 à 5 V ou 4 à 20 mA 0 à 10 V ou 4 à 20 mA FF05 0 à 10 V 1 à 5 V ou 4 à 20 mA --10 à 10 V ou 4 à 20 mA FF06 1 à 5 V ou 4 à 20 mA 1 à 5 V ou 4 à 20 mA 0 à 10 V ou 4 à 20 mA FF07 1 à 5 V ou 4 à 20 mA 1 à 5 V ou 4 à 20 mA --10 à 10 V ou 4 à 20 mA Ecrire le code de plage dans le mot de sortie du module d’E/S analogique (n+1) au cours du premier cycle d’exécution du programme Drapeau du 1er cycle SR 25315 Sur ON sur 1 cycle (21) Entrée analogique 1 : 1 à 5 V/4 à 20 mA Entrée analogique 2 : 0 à 10 V Sortie analogique : 0 à 10 V/4 à 20 mA (n + 1) Code de plage (valeur hexadécimale à 4 digits) 172 Chapitre Modules d’E/S analogiques 3-1 Le module d’E/S analogique ne commence à convertir les valeurs d’E/S analogiques que lorsque le code de plage a été défini. Une fois le code de plage défini, il n’est pas possible de le modifier lorsque le CPM2A est sous tension. Pour modifier la plage d’E/S, mettre le CPM2A hors tension puis de nouveau sous tension. Rem. Si un code de plage autre que ceux spécifiés dans le tableau ci-dessus est écrit dans n+1, il ne sera pas reçu par le module d’E/S analogique et la conversion des E/S analogiques ne pourra avoir lieu. Connexion du module d’E/S analogique Ce chapitre décrit la connexion du module d’E/S analogique à l’unité centrale. Un maximum de 3 modules d’extension, y compris les modules d’E/S analogiques, peuvent être connectés à un API CPM2A. Lorsque le module d’E/S analogique est utilisé avec d’autres modules d’extension, il n’existe aucune restriction quant à l’ordre des connexions. Unité centrale Module d’E/S analogique Affectation des E/S L’affectation des E/S du module d’E/S analogique s’effectue de la même façon que pour les autres modules d’extension, à partir du mot qui suit le dernier mot affecté à l’unité centrale ou au module d’extension précédent. Si “m” étatit le dernier mot d’entrée et “n” le dernier mot alloué à l’unité centrale ou au dernier module d’extension, les E/S sont affectées de la façon suivante : Module d’E/S analogique (m + 1) : Bits 00 à 15 (m + 2) : Bits 00 à 15 Entrées : 32 points Sorties : 16 points (n + 1) : Bits 00 à 15 Par exemple, sur le schéma suivant, un module d’E/S analogique est connecté à une unité centrale CPM2A à 30 points d’E/S. Adresse d’entrée IR 000 IR 001 Unité centrale à 30 points Adresse de sortie IR 010 IR 011 IR 002 IR 003 Module d’E/S analogique IR 012 173 Chapitre Modules d’E/S analogiques 3-1 Câblage d’équipement d’E/S analogiques Câblage des entrées analogiques Câble à paire torsadée à 2 âmes Sortie de tension de l’équip. de sortie analog. Module d’E/S analogique 250 # 10 k# Sortie de courant de l’équip. de sortie analog. 250 # 10 k# Câblage des sorties analogiques Sorties de tension Module d’E/S analogique Câble à paire torsadée à 2 âmes Entrée de tension de l’équip. d’entrée analog. Sorties de courant Module d’E/S analogique Câble à paire torsadée à 2 âmes Entrée de courant de l’équip. d’entrée analog. Pour les sorties analogiques, il est possible d’utiliser en même temps les deux sorties de tension et les deux sorties de courant, mais la valeur totale du courant de sortie ne doit pas dépasser 21 mA. Rem. 1. Utiliser des câbles à paires torsadées blindés à 2 âmes. 2. Rester à distance des conducteurs (fils d’alimentation secteur, etc...). 3. Pour toute entrée non utilisée, relier V IN et I IN à la borne COM. 4. Utiliser des bornes à sertir (serrer les bornes selon un couple de 0,5 N$m). 5. Pour les entrées de courant, relier V IN à I IN. 6. Si l’alimentation est bruyante, installer un filtre de bruit dans la partie d’entrée et le module d’alimentation. 174 Chapitre Modules d’E/S analogiques 3-1 Programme à contacts Définition du code de plage Définir la plage de signaux d’E/S en transférant, depuis le programme à contacts, le code de plage dans le mot de sortie du module d’E/S au cours du premier cycle d’exécution du programme. Le module d’E/S analogique ne commence à convertir les valeurs d’E/S analogiques que lorsque le code de plage a été défini. Lorsque le code de plage est transféré dans le mot de sortie du module d’E/S analogique, ce mot de sortie est “n+1”, “n” étant le dernier mot alloué à l’unité centrale ou au module d’extension précédent dans la configuration. (n + 1) Code de plage (valeur hexadécimale à 4 digits) Code de plage Signaux de l’entrée analogique 1 Signaux de l’entrée analogique 2 Plage de signaux de sortie analogique FF00 0 à 10 V 0 à 10 V 0 à 10 V ou 4 à 20 mA FF01 0 à 10 V 0 à 10 V --10 à 10 V ou 4 à 20 mA FF02 1 à 5 V ou 4 à 20 mA 0 à 10 V 0 à 10 V ou 4 à 20 mA FF03 1 à 5 V ou 4 à 20 mA 0 à 10 V --10 à 10 V ou 4 à 20 mA FF04 0 à 10 V 1 à 5 V ou 4 à 20 mA 0 à 10 V ou 4 à 20 mA FF05 0 à 10 V 1 à 5 V ou 4 à 20 mA --10 à 10 V ou 4 à 20 mA FF06 1 à 5 V ou 4 à 20 mA 1 à 5 V ou 4 à 20 mA 0 à 10 V ou 4 à 20 mA FF07 1 à 5 V ou 4 à 20 mA 1 à 5 V ou 4 à 20 mA --10 à 10 V ou 4 à 20 mA Lecture des valeurs d’entrée analogiques converties Un programme à contacts peut être utilisé pour lire la zone mémoire dans laquelle sont enregistrées les données converties. Ces valeurs sont transférées dans les deux mots (m+1, m+2) qui suivent le dernier mot d’entrée (m) affecté à l’unité centrale ou au module d’extension précédent. (m + 1) Entrée analog. 1 Drapeau de détection de circuit ouvert 0 : Normal 1 : Circuit ouvert Valeur de conversion de l’entrée analog. 1 (Hex : 00 à FF) Entrée analog. 2 Drapeau de détection de circuit ouvert 0 : Normal 1 : Circuit ouvert Valeur de conversion de l’entrée analog. 2 (Hex : 00 à FF) (m + 2) Rem. Le drapeau de détection de circuit ouvert passe à l’état ON lorsque la plage de signaux d’entrée est définie à “1 à 5 V ou 4 à 20 mA” et que le signal d’entrée est inférieur à 1 V ou 4 mA (les circuits ouverts ne sont pas détectés lorsque la plage de signaux d’entrée est définie à “0 à 10 V”). 175 Chapitre Modules d’E/S analogiques 3-1 Ecriture des valeurs de consigne de sortie analogique Un programme à contacts peut être utilisé pour transférer des données au mot de sortie dans lequel est enregistrée la valeur de consigne. Le mot de sortie est “n+1”, “n” étant le dernier mot de sortie alloué à l’unité centrale ou au module d’extension précédent. (n + 1) Bit de signe (utilisé quand la plage du signal de sortie = --10 à 10 V). 1, 2, 3... Valeur de consigne (Hex : 00 à FF) 1. La plage de valeurs de consigne est 0000 à 00FF lorsque la plage de signaux de sortie est “0 à 10 V/4 à 20 mA”. 2. La plage de valeurs de consigne est divisée en deux parties : 80FF à 8000 (--10 à 0V) et 0000 à 00FF (0 à 10V) lorsque la plage de signaux de sortie est “--10 à 10V”. Exemple Exemple de programme d’entrée analogique Connexion du module d’E/S analogique Dans cet exemple, un module d’E/S analogique est connecté à une unité centrale à 30 points d’E/S. Les mots d’E/S sont affectés au module d’E/S analogique à partir du mot qui suit les derniers mots alloués à l’unité centrale. IR 000 IR 001 Mots d’entrée Unité centrale à 30 points d’E/S IR 010 IR 011 Mots de sortie IR 002 IR 003 Module d’E/S analogique IR 012 Câblage des E/S analogiques Utilisation de l’entrée 1 analog. comme entrée de tension Commun (--) Entrée de tension 1 (+) Utilisation de la sortie analog. comme sortie de tension Sortie de tension (+) Commun (--) 176 Utilisation de l’entrée 2 comme entrée de courant Entrée de courant 2 (+) Commun (--) Chapitre Unité de liaison d’E/S CompoBus/S 3-2 Définition des E/S analogiques Plage de signaux de l’entrée 1 : 0 à 10 V Plage de signaux de l’entrée 2 : 4 à 20 mA Plage de signaux de sortie : 0 à 10 V Code de plage : FF04 IR 012 Code de plage : FF04 Programme SR 25135 (1er drapeau sur ON) (21) 4 Transfère le code de plage (FF04) au module. Condition d’exécution (21) Lit la valeur convertie de l’entrée analog. 1. Condition d’exécution (21) Lit la valeur convertie de l’entrée analog. 2. Condition d’exécution (21) Le contenu de DM0010 est transféré au mot de sortie comme valeur de consigne de sortie analogique. 3-2 Unité de liaison d’E/S CompoBus/S L’API CPM2A peut être utilisé comme Esclave vis-à-vis d’une unité Maître CompoBus/S (ou d’un contrôleur Maître CompoBus/S SRM1) lorsqu’une unité de liaison d’E/S CompoBus/S lui est connectée. Cette dernière établit une liaison d’E/S à 8 entrées et 8 sorties entre l’unité Maître et le CPM2A. Jusqu’à 3 modules d’extension peuvent également être reliés à une unité centrale CPM2A. Unité Maître CompoBus/S (ou contrôleur Maître CompoBus/S SRM1) Unité centrale CPM2A Unité de liaison d’E/S CompoBus/S CPM1A-SRT21 Câble plat spécial ou câble VCTF 177 Chapitre Unité de liaison d’E/S CompoBus/S 3-2 Vus de l’unité centrale, les 8 bits d’entrée et les 8 bits de sortie affectés à l’unité de liaison d’E/S CompoBus/S sont identiques aux bits d’entrée et de sortie alloués aux autres modules d’E/S d’extension, bien qu’en fait l’unité de liaison d’E/S CompoBus/S ne contrôle pas les entrées et les sorties entre le CPM2A et l’unité Maître. Elle représente une liaison d’E/S entre le CPM2A et l’autre unité centrale connectée à l’unité Maître. API Maître (séries CS1) Unité centrale CPM2A Unité Maître CompoBus/S Unité centrale à 30 points d’E/S Mémoire d’E/S Mémoire d’E/S Unité n% 0 8 bits Sortie 2000 Entrée 2004 8 bits 8 bits 8 bits Spécifications Elément défini Entrée IR 002 Unité de liaison d’E/S CompoBus/S CPM1A--SRT21 Numéro de stations : 0 Sortie IR 012 Caractéristiques Numéro de modèle CPM1A-SRT21 Maître/esclave Esclave CompoBus/S Nombre de points d’E/S 8 points d’entrée, 8 points de sortie Nombre de mots occupés dans la mémoire d’E/S du CPM2A 1 mot d’entrée, 1 mot de sortie Numéro de station Défini à l’aide du micro-interrupteur (Attribués de la même manière que les autres unités d’expansion) (Défini avant la mise sous tension de l’alimentation de l’unité centrale). Voyants LED Voyant Etat Signification COMM (j (jaune) ) ON Communications en cours. OFF ERR ( (rouge) ) ON Les communications sont arrêtées ou une erreur s’est produite. Une erreur de communication s’est produite. OFF Indique des communications normales ou l’état de veille. Procédure à utiliser Connecter le module. Déterminer l’adresse de station de l’unité de liaison d’E/S CompoBus/S I/O Link Unit et positionner le micro-interrupteur. Connecter à la ligne de transmission CompoBus/S. 178 Connecter l’unité de liaison d’E/S CompoBus/S. Le numéro de station doit être un numéro unique entre 0 et 15. Utiliser le micro-interrupteur pour définir le numéro de station de l’unité de liaison d’E/S CompoBus/S, le mode communication et l’état des données de sortie en présence d’une erreur de communication. Connecter l’unité de liaison d’E/S CompoBus/S à une ligne de transmission CompoBus/S. Chapitre Unité de liaison d’E/S CompoBus/S Connecter l’unité de liaison d’E/S CompoBus/S 3-2 Connecter l’unité de liaison d’E/S CompoBus/S à l’unité centrale. Une seule liaison d’E/S peut être connectée. Lorsque d’autres modules d’extension sont également connectés, ils peuvent être reliés dans n’importe quel ordre à l’unité centrale. Unité de liaison d’E/S CompoBus/S Unité centrale Affectation des E/S Les mots d’E/S sont affectés à l’unité de liaison d’E/S CompoBus/S de la même façon que pour les autres modules d’extension, à savoir que les mots alloués sont les mots d’entrée et de sortie qui suivent. “m” étant le dernier mot d’entrée et “n” le dernier mot de sortie, le mot d’entrée de l’unité de liaison d’E/S CompoBus/S devient “m+1” et son mot de sortie “n+1”. Unité de liaison d’E/S CompoBus/S Mot m+1 bits 00 à 07 8 entrées 8 sorties Mot n+1 bits 00 à 07 Dans l’exemple suivant, une unité de liaison d’E/S CompoBus/S est connectée à une unité centrale à 30 points d’E/S. Mots d’entrée Mots de sortie IR 000 IR 001 IR 002 Unité centrale à 30 points d’E/S Unité de liaison d’E/S CompoBus/S IR 010 IR 011 IR 012 Le mot d’entrée (m+1) contient les 8 bits de données de l’unité Maître et deux drapeaux de communications CompoBus/S. 15 09 08 07 00 Mot m+1 Données de l’unité Maître Drapeau d’état des erreurs du CompoBus/S 0 : Normal ; 1 : Erreur Drapeau d’état des communications du CompoBus/S 0 : Stop ; 1 : Communication Ecrire les données à transmettre à l’unité Maître dans le mot de sortie (n+1). 15 07 00 Mot n+1 Données à transférer à l’unité Maître 179 Chapitre Unité de liaison d’E/S CompoBus/S 3-2 Les 8 bits de données d’E/S ne sont pas toujours transmis en même temps. En d’autres termes, 8 bits de données transférés simultanément depuis l’unité Maître ne parviennent pas toujours en même temps à l’unité centre CPM2A, et 8 bits de données transférés simultanément depuis le CPM2A ne parviennent pas toujours en même temps à l’unité Maître. Lorsque les 8 bits de données d’entrée doivent être lus en même temps, modifier le programme à contacts dans l’unité centrale recevant les données ; par exemple, pour lire les données d’entrée deux fois de suite et ne les accepter que lorsque les deux valeurs concordent. Les bits non utilisés dans le mot de sortie de l’unité de liaison d’E/S CompoBus/ S peuvent être utilisés comme bits de travail, mais pas les bits non utilisés dans les esclaves en sortie. Les bits non utilisés dans le mot d’entrée ne peuvent pas être utilisés comme bits de travail. Définition du numéro de station à l’aide du micro-interrupteur Numéro de station L’unité de liaison d’E/S CompoBus/S est une unité esclave à 8 bits d’entrée et 8 bits de sortie. Le numéro de station est défini à l’aide du micro-interrupteur ; les entrées et les sorties ont le même numéro de station. La plage de numéros de stations possibles est déterminée par le type d’API sur lequel est montée l’unité Maître. Pour de plus amples informations, se reporter au Manuel d’utilisation du CompoBus/S. Paramètres définis à l’aide du micro-interrupteur Utiliser le micro-interrupteur pour définir le numéro de station de la liaison d’E/S CompoBus/S, le mode communication et l’état de données de sortie en présence d’une erreur de communications. Broches 1à4 Contenu Définition du numéro de station : Broche 4321 Broche 4321 0: 1: 2: 3: 4: 5: 6: 7: 0000 0001 0010 0011 0100 0101 0110 0111 8: 9: 10 : 11 : 12 : 13 : 14 : 15: 1000 1001 1010 1011 1100 1101 1110 1111 “1” = ON, “0” = OFF 5 6 Rem. 180 ON Mode communication longue distance (Voir Rem. 2) OFF Mode communication à grande vitesse ON Préserve les sortie après une erreur de communications. OFF Supprime les sorties après une erreur de communications. 1. Veiller à mettre hors tension le CPM2A avant de modifier les paramètres définis à l’aide du micro-interrupteur. Chapitre Unité de liaison d’E/S CompoBus/S 3-2 2. Le mode communication longue distance ne peut être utilisé que lorsqu’une des unités Maîtres suivantes est connectée : C200HW-SRM21-V1, CQM1-SRM21-V1 ou SRM1-C0j-V2. Connexion du chemin de communication CompoBus/S Connecter le chemin de communication CompoBus/S comme indiqué dans le schéma suivant : NC NC (BS+) (BS +) (BS--) Ces délimiteurs ne sont pas utilisés. Ils peuvent l’être cependant comme délimiteurs de relais d’alimentation des communications. (BS --) Connecter un câble de communication CompoBus/S. 181 CHAPITRE 4 Fonctions de communication Ce chapitre décrit l’utilisation des fonctions de communication des API CPM1, CPM1A, CPM2A, CPM2C et SRM1(-V2). 4-1 4-2 4-3 4-4 4-5 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-1-1 Généralités . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-1-2 Câblage des ports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Fonctions de communication du CPM1/CPM1A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-2-1 Communications à l’ordinateur CPM1/CPM1A . . . . . . . . . . . . . . . . . . . . . . . . . 4-2-2 Communications entre un NT et un API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-2-3 Communication Inter API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Fonctions de communication du CPM2A/CPM2C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-3-1 Communications à l’ordinateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-3-2 Communications sans protocole . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-3-3 Communications entre un NT et un API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-3-4 Communications Inter API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Fonctions de communication SRM1(-V2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-4-1 Communications à l’ordinateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-4-2 Communications sans protocole . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-4-3 Communications entre un NT et un API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-4-4 Communications NT 1 à N . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-4-5 Communications Inter API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Commandes de communication à l’ordinateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-5-1 LIRE ZONE IR/SR ---- RR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-5-2 LIRE ZONE LR ---- RL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-5-3 LIRE ZONE HR ---- RH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-5-4 LIRE PV ---- RC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-5-5 LIRE ETAT TC ---- RG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-5-6 LIRE ZONE DM ---- RD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-5-7 LIRE ZONE AR ---- RJ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-5-8 ECRIRE ZONE IR/SR ---- WR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-5-9 ECRIRE ZONE LR ---- WL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-5-10 ECRIRE ZONE HR ---- WH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-5-11 ECRIRE PV ---- WC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-5-12 ECRIRE ETAT TC ---- WG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-5-13 ECRIRE ZONE DM ---- WD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-5-14 ECRIRE ZONE AR ---- WJ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-5-15 LIRE 1 SV ---- R# . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-5-16 LIRE 2 SV ---- R$ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-5-17 CHANGER 1 SV ---- W# . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-5-18 CHANGER 2 SV ---- W$ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-5-19 LIRE ETAT ---- MS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-5-20 ECRIRE ETAT ---- SC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-5-21 LIRE ERREUR ---- MF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-5-22 AFFECTATION FORCEE ---- KS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-5-23 REINITIALISATION FORCEE ---- KR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-5-24 AFFECTATION/REINITIALISATION FORCEE MULTIPLE ---- FK . . . . . . . . 4-5-25 ANNULER AFFECTATION/REINITIALISATON FORCEE ---- KC . . . . . . . . 4-5-26 LIRE MODELE API ---- MM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-5-27 TEST---- TS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-5-28 LIRE PROGRAMME ---- RP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-5-29 ECRIRE PROGRAMME ---- WP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-5-30 COMMANDE COMPOSEE ---- QQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-5-31 INTERROMPRE ---- XZ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-5-32 INITIALISER ---- :: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-5-33 REPONSE TXD ---- EX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-5-34 COMMANDE NON DEFINE ---- IC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184 184 184 185 185 186 187 189 189 206 215 217 221 221 226 231 232 234 236 236 237 237 237 238 239 239 240 241 241 242 242 243 244 244 245 246 247 248 249 250 251 252 253 255 255 256 256 257 257 259 259 260 260 183 Chapitre Introduction 4-1 4-1 Introduction 4-1-1 Généralités Communications du CPM1/CPM1A Le CPM1/CPM1A peut exécuter un ensemble de communications par l’intermédiaire de son port périphérique, via une interface RS-232C ou RS-422. Communications à l’ordinateur Les API CPM1/CPM1A sont compatibles avec le système de communication à l’ordinateur (SYSMAC-WAY), qui permet de contrôler jusqu’à 32 API depuis un ordinateur. Une interface RS-232C sert aux communications Inter API et une interface RS-422 associée à l’interface B500-AL004 sert aux communications 1:N. Un CPM1/CPM1A doté d’une interface RS-232C peut également communiquer avec un terminal programmable opérateur en liaison NT-Link (40 Kbds) et en adressage direct. Communications Inter API Une liaison de données peut être créée avec une zone de données d’un autre API CPM1, CPM1A, CPM2A, CPM2C, CQM1 ou C200HS. Une interface RS-232C permet de réaliser la connexion Inter API. Communications entre un NT et un API En utilisant la communication en un NT et un API, l’API CPM1/CPM1A peut être connecté au terminal programmable (interface de communication NT) par l’intermédiaire d’une interface RS-232C. Communications du CPM2A/CPM2C Les types de communication suivants peuvent être exécutés par les ports du CPM2A/CPM2C : ! Communications avec un ordinateur maître ! Communications RS-232C avec un ordinateur ou un autre périphérique ! Communications Inter API avec un autre API ! Communications entre un NT et un API avec des terminaux programmables Ce chapitre décrit la configuration de l’API, ainsi que les méthodes permettant d’utiliser ces différents types de communication. Communications du SRM1(-V2) Les types de communication suivants peuvent être exécutés par les ports du SRM1(-V2) : ! Communications avec un ordinateur maître ! Communications RS-232C avec un ordinateur ou un autre périphérique ! Communications Inter API avec un autre API (C200H/CS1/CQM1/CPM1/2A) ! Communications entre un NT et un API avec des terminaux programmables Rem. Les communications entre un NT et un API sont impossibles avec le SRM1-C01, qui n’est doté que d’un port périphérique. Le SRM1-C01 peut être connecté à un PT (terminal opérateur programmable, TOP) par l’intermédiaire d’une interface RS-232C en mode communications à l’ordinateur. 4-1-2 Câblage des ports Se reporter aux Manuel de programmation du CPM1, Manuel de programmation du CPM1A, Manuel de programmation du CPM2A, Manuel de programmation du CPM2C ou Manuel de programmation des unités de commande maîtres SRM1 pour de plus amples informations concernant le câblage des ports de communication. 184 Chapitre Fonctions de communication du CPM1/CPM1A 4-2 4-2 Fonctions de communication du CPM1/CPM1A 4-2-1 Communications à l’ordinateur CPM1/CPM1A Ce type de communication a été développé par OMRON pour la connexion d’un ordinateur et d’un ou plusieurs API par câble RS-232C et pour le contrôle des communications API à partir de l’ordinateur. En temps normal, l’ordinateur envoie une commande à l’API et celui-ci renvoie automatiquement une réponse. Les communications sont ainsi effectuées sans que les API soient activement impliqués, mais les API ont généralement la capacité de commencer la transmission de données lorsqu’un engagement direct est nécessaire. En général, il est possible de mettre en oeuvre des communications à l’ordinateur de deux manières. L’une est basée sur des commandes en mode C, l’autre sur des commandes FINS (mode CV). Le CPM1/CPM1A ne prend en charge que les communications en mode C. Pour en savoir davantage sur les communications à l’ordinateur, se reporter à 4-5 Commandes de communication à l’ordinateur. Les paramètres du port périphérique du CPM1/CPM1A doivent être définis correctement pour pouvoir utiliser les communications à l’ordinateur, comme dans le tableau suivant : Setup de l’API Mot Bit Fonction DM 6650 00 à 07 Configuration du port1 00 : Standard (1 bit de départ, 7 bits de données, 2 bits d’arrêt, parité paire, 9 600 bps) 01 : Paramètres dans DM 6651 08 à 11 Zone de liaison pour liaison Inter API via un port périphérique 0 : LR 00 à LR 15 0 (Toutes val. OK) 12 à 15 Modes communications1 0 : Liaison à l’ordinateur ; 2 : Liaison Inter API esclave ; 3 : Liaison Inter API Maître ; 4 : Liaison entre un NT et un API 0 00 à 07 Débit en Baud1 00 : 1,2K, 01 : 2,4K, 02 : 4,8K, 03 : 9,6K, 04 : 19,2K 00 (Toutes val. OK) 08 à 15 Format de trame1 Départ Longueur Arrêt 00 : 1 bit 7 bits 1 bit 01 : 1 bit 7 bits 1 bit 02 : 1 bit 7 bits 1 bit 03 : 1 bit 7 bits 2 bit 04 : 1 bit 7 bits 2 bit 05 : 1 bit 7 bits 2 bit 06 : 1 bit 8 bits 1 bit 07 : 1 bit 8 bits 1 bit 08 : 1 bit 8 bits 1 bit 09 : 1 bit 8 bits 2 bit 10 : 1 bit 8 bits 2 bit 11 : 1 bit 8 bits 2 bit Délai de transmission (Liaison à l’ordinateur)1 0000 à 9999: In ms. Numéro de station (Liaison à l’ordinateur)1 00 à 31 (BCD) Non utilisés. DM 6651 DM 6652 00 à 15 DM 6653 00 à 07 08 à 15 Rem. Parité Paire Impaire Aucune Paire Impaire Aucune Paire Impaire Aucune Paire Impaire Aucune Paramètres 00 00 (Toutes val. OK) 0000 00 à 31 00 (Toutes val. OK) 1. En cas d’utilisation d’un paramètre incorrect, une erreur non fatale se produit, AR 1302 sera activé et le paramètre par défaut (0, 00 ou 0000) sera utilisé. 185 Chapitre Fonctions de communication du CPM1/CPM1A 4-2 2. Pour de plus amples informations concernant les paramètres de communications à l’ordinateur d’un autre API OMRON, se reporter au Manuel de programmation de celui-ci. 3. Lorsqu’une valeur hors limite est définie, il en résulte les conditions de communication suivantes. Dans ce cas, réinitialiser la valeur pour qu’elle soit dans la plage autorisée. Exemple de programme Modes communication : Liaison à l’ordinateur Format de communications : Parmètres standard (1 bit de départ, 7 bits de données, 2 bits d’arrêt, parité paire, 9 600 bps) Retard de transmission : Non Numéro de station : 00 Cet exemple illustre un programme BASIC qui lit l’état des entrées du CPM1 dans IR 000. Pour de plus amples informations, se reporter à 4-5 Commandes de communication à l’ordinateur. Aucune séquence de vérification de trame (FCS) n’est réalisée sur les données des réponses reçues dans ce programme. Vérifier que le port RS-232C de l’ordinateur est correctement configuré avant d’exécuter le programme. 1010 1020 1030 1040 1050 1060 1070 1080 1090 1100 1110 1120 1130 1140 1150 1160 1170 1180 ’CPM1 SAMPLE PROGRAM ’SET THE COMMAND DATA S$=”@00RR00000001” FCS=0 FOR I=1 TO LEN(S$) FCS=FCS XOR ASC(MID$(S$,I,1)) NEXT I FCS$=(FCS):IF LEN(FCS$)=1 THEN FCS$=”0”+FCS$ CLOSE 1 CLS PRINT ”SENDING COMMAND” OPEN ”COM:E73” AS #1 PRINT #1,S$ + FCS + CHR$(13); CLS PRINT ”RECEIVING RESPONSE DATA” LINE INPUT #1,A$ PRINT A$ END 4-2-2 Communications entre un NT et un API En utilisant la communication entre un NT et un API, l’API du CPM1/CPM1A peut être connecté au terminal programmable (interface de communication NT) par l’intermédiaire d’un convertisseur RS-232C. API du CPM1 Convertisseur RS-232C Terminal Opérateur Programmable UC CPM1 CPM1 CPU Câble RS-232C 186 Chapitre Fonctions de communication du CPM1/CPM1A 4-2 API du CPM1A Convertisseur RS-232C Terminal Opérateur Programmable OMRON UC CPM1A Câble RS-232C Les paramètres concernant les communications API entre un NT et un API doivent être définis comme dans le tableau suivant : Setup de l’API Mot Bit DM 6650 00 à 07 Fonction Paramètres Configuration du port1 00 00 : Standard (1 bit de départ, 7 bits de données, 2 bits d’arrêt, parité paire, 9 600 bps) (Toutes val. OK) 01 : Réglage en DM 6651 08 à 11 Zone de liaison pour liaison API Inter API via un port périphérique 0 : LR 00 à LR 15 0 (Toutes val. OK) 12 à 15 Modes communications1 0 : Liaison à l’ordinateur ; 2 : Liaison Inter API esclave ; 3 : Liaison Inter API Maître ; 4 : Liaison entre un NT et un API 4 Rem. 1. En cas d’utilisation d’un paramètre incorrect, une erreur non fatale se produit, AR 1302 sera activé et le paramètre par défaut (0 ou 00) sera utilisé. 2. Pour de plus amples informations concernant les paramètres de communications NT d’un autre API OMRON, se reporter au Manuel de programmation de celui-ci. 3. Lorsqu’une valeur est définie hors limite, il en résulte les conditions de communication suivantes. Dans ce cas, réinitialiser la valeur pour qu’elle soit dans la plage autorisée. Modes communication : Liaison à l’ordinateur Format de communications : Parmètres standard (1 bit de départ, 7 bits de données, 2 bits d’arrêt, parité paire, 9 600 bps) Retard de transmission : Non Numéro de station : 00 4-2-3 Communication Inter API Dans une communication Inter API, un CPM1/CPM1A est connecté à un autre API CPM1/CPM1A, CPM2A/CPM2C, CQM1 ou C200HS par l’intermédiaire d’une interface RS-232C et d’un câble RS-232C standard. L’un des API fait fonction de maître et l’autre d’esclave. La communication Inter API peut connecter jusqu’à 256 bits (LR 0000 à LR 1515) dans les deux API. 187 Chapitre Fonctions de communication du CPM1/CPM1A 4-2 Le schéma suivant illustre une communication Inter API entre deux API CPM1. Se reporter au Manuel de programmation du CPM1A pour y trouver les informations relatives au CPM1A. Communications Inter API CPM1/CPM1A Câble RS-232C Convertisseur RS-232C UC CPM1 Convertisseur RS-232C UC CPM1 Les mots utilisés pour la communication Inter API se trouvent ci-après : Maître Esclave LR00 Données d’écriture Données de lecture LR00 Zone d’écriture LR07 LR08 Zone de lecture Zone de lecture Zone d’écriture LR15 LR07 LR08 LR15 Données de lecture Données d’écriture Limitations des communications Inter API avec un CPM1/CPM1A Seuls les 16 mots LR de LR 00 à LR 15 peuvent être reliés dansle CPM1/CPM1A ; il convient donc de n’utiliser que ces 16 mots dans le CQM1 ou le C200HS lorsqu’une communication Inter API est réalisée avec l’un de ces API. Une communication Inter API ne peut être réalisée avec un API CPM1/CPM1A en utilisant les mots LR 16 à LR 63 dans le CQM1 ou le C200HS. Setup de l’API Les paramètres concernant les communications Inter API doivent être définis comme dans le tableau suivant : Mot Bit DM 6650 00 à 07 08 à 11 12 à 15 Fonction Param. (Maître) Configuration du port1 00 00 : Standard (1 bit de départ, 7 bits de données, 2 bits d’arrêt, parité paire, (Toute val. OK) 9 600 bps) 01 : Paramètres dans DM 6651 Zone de liaison pour liaison Inter API via un port périphérique 0 0 : LR 00 à LR 15 Param. (Esclave) 00 (Toute val. OK) Modes communication1 3 0 : Liaison à l’ordinateur ; 2 : Liaison Inter API esclave ; 3 : Liaison Inter API Maître ; 4 : Liaison entre un NT et un API 2 Rem. 188 0 (Toute val. OK) 1. En cas d’utilisation d’un paramètre incorrect, une erreur non fatale se produit, AR 1302 sera activé et le paramètre par défaut (0 ou 00) sera utilisé. 2. Pour de plus amples informations concernant les paramètres de communications Inter API d’un autre API OMRON, se reporter au Manuel de programmation de celui-ci. 3. Lorsqu’une valeur est définie hors limite, il en résulte les conditions de communication suivantes. Dans ce cas, réinitialiser la valeur pour qu’elle soit dans la plage autorisée. Modes communication : Liaison à l’ordinateur Format de communications : Parmètres standard (1 bit de départ, 7 bits de données, 2 bits d’arrêt, parité paire, 9 600 bps) Retard de transmission : Non Chapitre Fonctions de communication du CPM2A/CPM2C Numéro de station : Exemple de programme 00 Cet exemple illustre des programmes à contacts qui copient l’état de IR 000 dans chaque CPM1/CPM1A vers SR 200 dans l’autre CPM1/CPM1A. Programme dans le Maître 25313 (Toujours ON) Programme dans l’Esclave 25313 (Toujours ON) MOV(21) MOV(21) 000 000 LR00 LR08 MOV(21) LR00 IR 000 SR 200 Zone d’écriture Ecriture Lecture LR07 LR08 Zone de lecture MOV(21) LR08 LR00 200 200 Zone de lecture Zone d’écriture LR15 4-3 4-3 LR00 Ecriture SR 200 Lecture IR 000 LR07 LR08 LR15 Fonctions de communication du CPM2A/CPM2C Ce chapitre décrit l’utilisation des fonctions de communication du CPM2A/ CPM2C. La lire dans le cas d’utilisation des communications de type à l’ordinateur, sans protocole, entre un NT et un API ou Inter API. 4-3-1 Communications à l’ordinateur Les communications à l’ordinateur utilisent un protocole de communication de type conversationnel, dans lequel l’API envoie des réponses aux commandes envoyées par un ordinateur, avecla possibilité de lire ou d’écrire des données dans les zones de données de l’API et d’en contrôler certaines opérations. Il n’est pas nécessaire que l’API soit doté d’un programme de communication. Les communications à l’ordinateur peuvent être effectuées par port de périphérique ou le port RS-232C du CPM2A/CPM2C. CPM2A Commandes Ordinateur Réponses 189 Chapitre Fonctions de communication du CPM2A/CPM2C Communications Inter API du CPM2A Réponses Commandes Réponses Commandes Terminal Opérateur Programmable OMRON Connexion de port RS-232C du CPM2A (voir Rem.) Connexion de port RS-232C du CPM2A (voir Rem.) Rem. Lors de la connexion au port périphérique, un convertisseur RS-232C ou un câble de connexion à un ordinateur (CQM1-CIF01 ou CQM1-CIF02) est nécessaire. Communications Inter API du CPM2C Commandes Commandes Terminal Opérateur Programmable OMRON connexion* RS-232C du CPM2C Réponses Réponses connexion* RS-232C du CPM2C Rem. *Lors de la connexion au port périphérique, un convertisseur RS-232C ou un câble de connexion à un ordinateur (CQM1-CIF01, CQM1-CIF02) est nécessaire. 190 4-3 Chapitre Fonctions de communication du CPM2A/CPM2C 4-3 Réponses Commandes Communications 1:N du CPM2A Connexion de port RS-232C du CPM2A Convertisseur NT-AL001 RS-232C/RS-422 Convertisseur de liaison B500-AL004 Connexion de port périphérique du CPM2A Convertisseur CPM1-CIF01 RS-422 Responses Convertisseur de liaison B500-AL004 CPM2C (Connexion RS-232C) Convertisseur NT-AL001 RS-232C/RS-422 Commandes Communications 1:N du CPM2C CPM2C (Connexion périphérique) Convertisseur CPM1-CIF01 RS-422 CPM2C (Connexion périphérique) Convertisseur de liaison B500-AL004 191 Chapitre Fonctions de communication du CPM2A/CPM2C 4-3 Emission et réception de trame Dans les communications à l’ordinateur, l’ordinateur dispose en général du privilège d’émission et déclenche les communications. Ensuite le CPM2A/CPM2C renvoie automatiquement une réponse. Les commandes et les réponses s’échangent dans l’ordre décrit par l’illustration ci-après Le bloc de données transféré dans une émission s’appelle une “trame”. Une trame est constituée d’un maximum de 131 caractères de données. Le droit d’émettre une trame s’appelle “droit d’émission”. L’unité disposant du droit d’émission est cele qui peut envoyer une trame à un moment donné. Le droit d’émission est négocié dans un sens, puis dans l’autre, entre l’ordinateur et le CPM2A/CPM2C, chaque fois qu’une trame est envoyée. Le droit d’émission passe de l’unité émettrice à celle qui reçoit dès qu’un caractère d’arrêt (le code marquant la fin d’une commande ou d’une réponse) ou un délimiteur (le code qui délimite les trames) est reçu. Bloc (commande) Bloc (commande) Num. unité Premier code Num. unité Premier code Texte Texte FCS Final FCS Final Ordinateur Transmission du prochain bloc possible (c’est--à--dire droit d’émission négocié) Num. unité Premier code Dernier code Num. unité Premier code Dernier code Texte Texte CPM2A/CPM2C FCS Final FCS Final Bloc (réponse) Bloc (réponse) Communications par un esclave Les transmissions de données de l’API vers l’ordinateur peuvent être déclenchées par l’UC par l’instruction TXD(48). Ordinateur Il n’y a pas de réponse de l’ordinateur Num. unité Premier code CPM2A/CPM2C Texte FCS Final Bloc (réponse) 192 Chapitre Fonctions de communication du CPM2A/CPM2C 4-3 Formats de commande et de réponse Ce chapitre décrit les formats des commandes et des réponses échangés dans les communications à l’ordinateur. Pour émettre une commande à partir de l’ordinateur, préparer les données dansle format ci-dessous : Format de commande @ x 101 x 100 N_ de station * Code titre Texte FCS " Caractère d’arrêt @ Un symbole “@” doit être placé au début. N_ _ de station Identifie l’API CPM2A/CPM2C communiquant avec l’ordinateur. Indiquer le numéro de station CPM2A/CPM2C dans la configuration de l’API (DM 6648, DM 6653). Code titre Définir le code de commande à 2 caractères. Texte Définir les paramètres de commande. FCS Définir un code de séquence de vérification de trame (FCS) à 2 caractères. Se reporter à la commande FCS décrite un peu plus loin dans ce chapitre. Caractère d’arrêt Définir deux caractères, “*” et le retour chariot (CHR$(13)) pour indiquer la fin de la commande. La réponse émise par le CPM2A/CPM2C est au format ci-dessous. Préparer le programme de manière à ce que les données de la réponse puissent être interprétées et traitées. Format de réponse @ x 101 x 100 N_ de station x 161 x 160 Code titre Code de fin * Texte FCS " Caractère d’arrêt _ de station, Code titre @, N_ Un contenu identique à celui de la commande est retourné. Code de fin L’état de fin de la commande (par ex., s’il s’est produit une erreur ou non) est retourné. Texte Du texte est retourné uniquement lorsque des données telles que des données en lecture existent. FCS Le code de séquence de vérification de trame (FCS) défini à 2 caractères est retourné. Caractère d’arrêt Définir deux caractères, “*” et le retour chariot (CHR$(13)) pour indiquer la fin de la réponse. Transmissions longues Le bloc de données le plus long pouvant être émis dans une seule trame est de 131 caractères. Une commande ou une réponse de 132 caractères ou plus doit 193 Chapitre Fonctions de communication du CPM2A/CPM2C 4-3 être divisée en plusieurs trames avant d’être émise. En cas de division d’une émission, les fins de la première trame et des trames intermédiaires sont marquées par un délimiteur et non par un caractère d’arrêt. Vision des commandes Lors de l’émission de chaque trame par l’ordinateur, celui-ci attend que le délimiteur soit émis à partir du CPM2A/CPM2C avant d’envoyer la trame suivante. Cette procédure se répète jusqu’à ce que toute la commande ait été envoyée. Ordinateur Bloc 3 (commande) Bloc 2 (commande) Bloc 1 (commande) Num. unité Premier code Texte Texte Texte FCS Final FCS Final FCS Final Délimiteur CPM2A/CPM2C Délimiteur Num. unité Premier code Dernier code Texte FCS Final Bloc (réponse) Vision des réponses Lors de la réception de chaque trame par l’ordinateur, un délimiteur est envoyé au CPM2A/CPM2C avant que ce dernier n’envoie pas la trame suivante. Cette procédure se répète jusqu’à ce que toute la réponse ait été envoyée. Bloc (commande) Num. unité Premier code Ordinateur Texte FCS Final Délimiteur Num. unité Premier code Dernier code CPM2A/CPM2C Texte FCS Final Bloc 1 (réponse) 194 Délimiteur Texte Texte FCS Final FCS Final Bloc 2 (réponse) Bloc 3 (réponse) Chapitre Fonctions de communication du CPM2A/CPM2C Lors de la division des commandes telles que WR, WL, WC ou WD qui exécutent des opérations d’écriture, veiller à ne pas séparer dans plusieurs trames des données qui doivent être écrites en un seul mot. Comme le montre l’illustration ci-dessous, vérifier que les trames sont divisées de sorte qu’elles coïncident avec les divisions entre les mots. Conseils d’utilisation pour les transmissions longues Trame 1 @ 4-3 (131 caractères maximum) 0 0 x101 x100 W Données D " Code titre N_ de station FCS Un mot de données Déimiteur Les données d’un même mot ne sont pas divisées. Trame 2 (128 caractères maximum) Données " * Un mot de données Caractère d’arrêt FCS Les données d’un même mot ne sont pas divisées. FCS (séquence de vérification de trame) Lorsqu’une trame est émise, une FCS est placée juste devant le délimiteur ou le caractère d’arrêt afin de vérifier si des erreurs se sont produites. La FCS est constituée de données de 8 bits converties en deux caractères ASCII. Les données 8 bits sont le résultat d’un EXCLUSIVE OR (ou exclusif) exécuté sur les données de début de la trame jusqu’à la fin du texte de celle-ci (c.--à--d. juste avant la FCS). Le fait de calculer la FCS à chaque réception de trame et de vérifier le résultat par rapport à la FCS incluse dans la trame, permet de contrôler si celle-ci contient des erreurs de données. @ 1 0 R R 0 0 Code titre N_ de station 0 Texte 1 4 2 FCS * " Caractère d’arrêt Plage de calcul FCS Extrême gauche Code ASCII @ # 40 # 0100 Extrême droite 0000 XOR 1 # 31 # 0011 0001 XOR 0 # 30 # 0011 0000 XOR R # 52 # 0101 0010 XOR 0 # 30 # 0011 0000 XOR 0 # 30 # 0011 0000 XOR à 0 # 30 # 0011 0000 XOR 1 # Résultats de calcul 31 # 0011 0100 $ $ 4 2 0001 0010 Converti en hexadécimal. Manipulé comme caractère ASCII. 195 Fonctions de communication du CPM2A/CPM2C Exemple de programme pour FCS Chapitre Cet exemple illustre un sous-programme BASIC permettant d’exécuter une vérification FCS sur une trame reçue par l’ordinateur. Les données de réception normales incluent la FCS, le délimiteur ou le caractère d’arrêt, et ainsi de suite. Lorsqu’une erreur de transmission se produit, il se peut que la FCS ou d’autres données soient absentes. S’assurer que la programmation du système prenne en compte cette éventualité. ---------------------------------------------------------------------------400 *FCSCHECK 410 L = LEN ( RESPONSE$ ) ’ ......................... Données transmises et reçues 420 Q = 0 : FCSCK$ = ” ” 430 A$ = RIGHT$ ( RESPONSE$ , 1) 440 PRINT RESPONSE$ , A$ , L 450 IF A$ = ”*” THEN LENGS = LEN ( RESPONSE$ ) - 3 ELSE LENGS = LEN ( RESPONSE$ ) - 2 460 FCSP$ = MID$ ( RESPONSE$ , LENGS + 1 , 2 ) ’ ........ Données FCS reçues 470 FOR I = 1 TO LENGS ’ .................... Nombre de caractères dans le FCS 480 Q = ASC ( MID$ ( RESPONSE$ , I , 1 ) ) XOR Q 490 NEXT I 500 FCSD$ = HEX$ ( Q ) 510 IF LEN ( FCS0$ ) = 1 THEN FCSD$ = ” 0 ” + FCSD$ ’ ... Résultats du FCS 520 IF FCSD$ < > FCSP$ THEN FCSCK$ = ” ERR ” 530 PRINT ” FCSD$ = ” ; FCSD$ , ” FCSP$ = ” ; FCSP$ , ” FCSCK$ = ” ; FCSCK$ 540 RETURN ---------------------------------------------------------------------------- 196 4-3 Chapitre Fonctions de communication du CPM2A/CPM2C 4-3 Commandes Mode de fonctionnement du CPM2A/CPM2C Code titre e RUN MONITOR Nom Page PROGRAM RR Valide Valide Valide IR/WR/SR AREA READ 236 RL Valide Valide Valide LR AREA READ 237 RH Valide Valide Valide HR AREA READ 237 RC Valide Valide Valide TC PV READ 237 RG Valide Valide Valide TC STATUS READ 238 RD Valide Valide Valide DM AREA READ 239 RJ Valide Valide Valide AR AREA READ 239 WR Invalide Valide Valide IR/WR/SR AREA WRITE 240 WL Invalide Valide Valide LR AREA WRITE 241 WH Invalide Valide Valide HR AREA WRITE 241 WC Invalide Valide Valide TC PV WRITE 242 WG Invalide Valide Valide TC STATUS WRITE 242 WD Invalide Valide Valide DM AREA WRITE 243 WJ Invalide Valide Valide AR AREA WRITE 244 R# Valide Valide Valide SV READ 1 244 R$ Valide Valide Valide SV READ 2 245 W# Invalide Valide Valide SV CHANGE 1 246 W$ Invalide Valide Valide SV CHANGE 2 247 MS Valide Valide Valide STATUS READ 248 SC Valide Valide Valide STATUS WRITE 249 MF Valide Valide Valide ERROR READ 250 KS Invalide Valide Valide FORCED SET 251 KR Invalide Valide Valide FORCED RESET 252 FK Invalide Valide Valide MULTIPLE FORCED SET/RESET 253 KC Valide Valide Valide FORCED SET/RESET CANCEL 255 MM Valide Valide Valide PC MODEL READ 255 TS Valide Valide Valide TEST 256 RP Valide Valide Valide PROGRAM READ 256 WP Invalide Invalide Valide PROGRAM WRITE 257 QQ Valide Valide Valide COMPOUND COMMAND 257 XZ Valide Valide Valide ABORT (commande seulement) 259 ** Valide Valide Valide INITIALIZE (commande seulement) 259 EX Valide Valide Invalide TXD RESPONSE (réponse seulement) 260 IC --- --- --- Undefined command (réponse seulement) 260 Rem. --- : Remarque dépendant du mode. 197 Chapitre Fonctions de communication du CPM2A/CPM2C 4-3 Codes de réponse Code de fin 00 Contenu Cause probable Mesures de correction Exécution normale --- --- 01 Non exécutable en mode RUN La commande envoyée ne peut pas être exécutée lorsque l’API est en mode RUN. Vérifier les relations entre les commandes et le mode de l’API. 02 Non exécutable en mode MONITOR La commande envoyée ne peut pas être exécutée lorsque l’API est en mode MONITOR. 04 Dépassement d’adresse L’adresse la plus haute de zone de programmation utilisateur a été dépassée. Vérifier le programme. 0B Non exécutable en mode PROGRAM La commande envoyée ne peut pas être exécutée lorsque l’API est en mode PROGRAM. Ce code n’est pas utilisé actuellement. 13 Erreur FCS La FCS est fausse : soit le calcul de la FCS est erroné, soit les parasites influent défavorablement. Vérifier la méthode de calcul de la FCS. S’il y a une influence de parasites, transférer la commande à nouveau. 14 Erreur de format Le format de commande est mauvais. Erreur de données de numéro d’en- La spécification de la zone de lectrée ture/écriture est mauvaise. Commande non reconnue La commande spécifiée n’existe pas à l’adresse indiquée (lecture de la SV, etc...). Vérifier le format et transférer la commande à nouveau. Corriger les zones et transférer la commande à nouveau. Vérifier l’adresse et l’instruction. 18 Erreur longueur de trame 19 Non exécutable La longueur maximum de trame a été dépassée. Objets à lire non enregistrés pour une commande composite (QQ). Diviser la commande en plusieurs trames. Exécuter QQ pour enregistrer les objets à lire avant d’essayer de lire par lot. 23 Mémoire utilisateur protégée en écriture Annulation due à une erreur FCS dans la transmission de données Annulation due à une erreur de format dans la transmission de données La mémoire est protégée en écriture dans le Setup de l’API. L’erreur a été générée lorsqu’une commande s’étendant sur plus p d’une trame a été é é exécuté. é é Changer la configuration du Setup de l’API (DM 6602). Vérifier les trames corrompues, corriger g si nécessaire et essayer y de la transférer é à nouveau. 15 16 A3 A4 A5 Annulation due à une erreur de données de numéro d’entrée dans la transmission de données A8 Annulation due à une erreur de longueur de trame dans la transmission de données Other --- 198 Rem. : Les données au-dessus de ce point ont déjà été écrites dans la zone appropriée de l’UC. Une influence de bruit a été reçue. Transférer la commande à nouveau. Chapitre Fonctions de communication du CPM2A/CPM2C 4-3 Procédure d’application Configuration du commutateur de communications de l’UC. Connexion des câbles. Paramétrer le commutateur de communications de l’UC du CPM2A ou le micro-interrupteur de l’UC du CPM2C. Effectuer les connexions Inter API ou 1:N. Commandes issues de l’ordinateur. Réglage du commutateur de communication Programme à contacts (Communications initiées par le CPM2A/CPM2C) Les communications du CPM2A sont contrôlées par le commutateur de communication situé à l’avant de l’UC et les communications du CPM2C sont contrôlées par le micro-interrupteur situé à l’avant de l’UC. Paramètres du commutateur de communication du CPM2A Lorsque le commutateur de communication est sur OFF, les communications par le port périphérique et le port RS-232C sont régies par les paramètres de configuration de l’API. Lorsque le commutateur de communication est sur ON, les communications par le port périphérique et le port RS-232C sont régies par les paramètres de communications à l’ordinateur standard (1 bit de début, 7 bits de données, 2 bits d’arrêt, parité paire et débit en Baud 9600). Rem. Lorsqu’une console de programmation est connectée au port périphérique, les communications avec celle-ci ne sont influencées ni par le commutateur de communication ni par les paramètres de configuration de l’API. Commutateur de communication Prot périphérique Port RS-232C Une interface RS-232C est nécessaire pour réaliser des communications à l’ordinateur à partir d’un port périphérique. Paramètres du micro-interrupteur du CPM2C Lorsque le sélecteur 2 du micro-interrupteur est sur OFF, les communications par le port périphérique sont définies sur le protocole de la console de pro- 199 Chapitre Fonctions de communication du CPM2A/CPM2C 4-3 grammation, quels que soient les paramètres du sélecteur 1 ou de configuration de l’API. Micro-interrupteur Lorsque le sélecteur 2 est sur ON, la position du sélecteur 1 détermine si les communications par le port périphérique et le port RS-232C sont régies par les paramètres de configuration de l’API ou par les paramètres standard (1 bit de début, 7 bits de données, 2 bits d’arrêt, parité paire et débit en Baud 9600). Configuration des sélecteurs Sél. 1 Sél. 2 OFF OFF OFF ON ON OFF ON ON Communications du port périphérique Protocole de la console de programmation Commandé par le Setup de l’API (DM 6650 à DM 6654) Protocole de la console de programmation Commandé par la configuration standard Communications du port RS-232C Commandé par le Setup de l’API (DM 6645 à DM 6649) Commandé par la configuration standard Un convertisseur RS-232C est nécessaire pour réaliser des communications à l’ordinateur à partir d’un port périphérique. Connexion des câbles Ce chapitre décrit les connexions RS-232C. Connexions Inter API Le port RS-232C de l’ordinateur et le port RS-232C du convertisseur RS-232C du CPM2A/CPM2C ou du CPM1-CIF01 sont connectés comme dans le schéma ci-après en l’absence de contrôle CTS sur le port RS-232C. Avec les CPM2C, CPM2C-CN111 et CS1W-CN118, il est possible d’utiliser des câbles de connexion à la place du convertisseur RS-232C. IBM PC/AT ou compatible Signal Sél. n_ Port RS-232C Signal Sél. n_ Capot 200 Chapitre Fonctions de communication du CPM2A/CPM2C Connexions un à N Régler le micro-interrupteur RS-232C/RS-422. de l’adaptateur d’interface 4-3 NT-AL001 Normalement ON ON lorsque l’unité est à la fin du chemin de transmission. OFF dans tous les autres cas. Utilisé comme méthode à 4 conducteurs (les deux commutateurs sur OFF) Conformément au contrôle CTS RS-232C (5 : OFF, 6 : ON) Le port RS-232C avec le convertisseur de liaison NT-AL001 RS-232C/RS-422 et le port RS-232C du convertisseur RS-232C du CPM2A/CPM2C ou du CPM1-CIF01 sont connectés comme dans le schéma ci-après en l’absence de contrôle CTS sur le port RS-232C. Une alimentation de 5 V c.c. est fournie au convertisseur de liaison RS-232C/RS-422. Avec les CPM2C, CPM2C-CN111 et CS1W-CN118, il est possible d’utiliser des câbles de connexion à la place du convetisseur RS-232C. Convertisseur de liaison NT-AL001 RS-232C/RS-422 Signal Sél. n_ Port RS-232C Signal Sél. n_ Capot Rem. Ne connecter aucun périphérique externe que le convertisseur de liaison NTAL001 à l’alimentation 5 V c.c. du sélecteur 6 du port RS-232C du CPM2A/ CPM2C. Le CPM2A/CPM2C ou le périphérique externe risquent d’être endommagés. Paramètres de l’API Les paramètres de l’API nécessaires varient suivant qu’un port périphérique ou qu’un port RS-232C est utilisé. Paramètre du port RS-232C Mot DM 6645 Bit 00 à 03 Fonction Configuration du port 00 : Standard (1 bit de départ, 7 bits de données, 2 bits d’arrêt, parité paire, 9 600 bps) 01 : Paramètres dans DM 6646 Paramètre Correspond aux paramètres de l’ordinateur (D’autres configurations causeront une erreur non fatale, la configuration par défaut sera utilisée et l’AR 1302 passera sur ON). 04 à 07 08 à 11 12 à 15 Paramètres de contrôle CTS 0 : Désactivé ; 1 : Configuré Mots de liaison pour une liaison Inter API 0 : LR 00 à LR 15 ; Autres : non effectifs Modes communication 0 : Liaison à l’ordinateur (par défaut) ; 1 : RS-232C (sans protocole) ; 2 : Liaison Inter API esclave ; 3 : Liaison Inter API Maître ; 4 : Liaison entre un NT et un API 0 ou 1 Tous 0 (D’autres configurations causeront une erreur non fatale, la configuration de la liaison à l’ordinateur sera utilisée et l’AR 1302 passera sur ON) 201 Fonctions de communication du CPM2A/CPM2C Mot DM 6646 Bit 00 à 07 Chapitre Fonction Débit en bauds : 00 : 1 200 bps 01 : 2 400 bps 02 : 4 800 bps 03 : 9 600 bps 04 : 19 200 bps DM 6647 08 à 15 Format de trame Départ Longueur Arrêt Parité 00 : 1 bit 7 bits 1 bit Paire 01 : 1 bit 7 bits 1 bit Impaire 02 : 1 bit 7 bits 1 bit Aucune 03 : 1 bit 7 bits 2 bit Paire 04 : 1 bit 7 bits 2 bit Impaire 05 : 1 bit 7 bits 2 bit Aucune 06 : 1 bit 8 bits 1 bit Paire 07 : 1 bit 8 bits 1 bit Impaire 08 : 1 bit 8 bits 1 bit Aucune 09 : 1 bit 8 bits 2 bit Paire 10 : 1 bit 8 bits 2 bit Impaire 11 : 1 bit 8 bits 2 bit Aucune (D’autres configurations causeront une erreur non fatale, les paramètres par défaut (03) seront utilisés et l’AR 1302 passera sur ON) 00 à 15 Délai de transmission (Liaison à l’ordinateur) 0000 à 9999 (BCD) : Défini par unités de 10 ms, par exemple, un paramètre de 0001 vaut 10 ms 4-3 Paramètre Correspond aux paramètres de l’ordinateur 0000 à 9999 (D’autres configurations causeront une erreur non fatale, la configuration par défaut (0000) sera utilisée et l’AR 1302 passera sur ON) DM 6648 00 à 07 08 à 11 12 à 15 00 à 31 (BCD) : Numéro de station (Liaison à l’ordinateur) (D’autres configurations causeront une erreur non fatale, la configuration par défaut (00) sera utilisée et l’AR 1302 passera sur ON) Activation du code de départ (RS-232C) 0 : Désactivé ; 1 : Utiliser le code de départ en DM 6649. Activation du code de fin (RS-232C) 0 : Désactivé (nombre d’octets reçus) 1 : Utiliser le code de fin en DM 6649. 2 : CR, LF 00 à 31 Tous Tous (D’autres configurations causeront une erreur non fatale, la configuration désactivée sera utilisée et l’AR 1302 passera sur ON) DM 6649 00 à 07 00 à 15 Code de départ (01 à FF) (Sans protocole, effectif lorsque les bits 8 à 11 de DM 6648 sont à 1) Nombre d’octets de données reçus (Sans protocole, effectif lorsque les bits 12 à 15 de DM 6648 sont à 0) 00 : 256 octets 01 à FF: 1 à 255 octets Code de fin (00 à FF) (Sans protocole, effectif lorsque les bits 12 à 15 de DM 6648 sont à 1) Tous Tous Paramètres du port périphérique Mot DM 6650 Bit 00 à 03 Fonction Configuration du port 0 : Standard (1 bit de départ, 7 bits de données, 2 bits d’arrêt, parité paire, 9 600 bps) 1 : Paramètres dans DM 6651 Paramètre Correspond aux paramètres de l’ordinateur (D’autres configurations causeront une erreur non fatale, la configuration par défaut (0) sera utilisée et l’AR 1302 passera sur ON) 04 à 11 Non utilisés. 0 12 à 15 Modes communication 0 : Liaison à l’ordinateur ; 1 : Sans protocolee 0 (D’autres configurations causeront une erreur non fatale, la configuration de la liaison à l’ordinateur (0) sera utilisée et l’AR 1302 passera sur ON) 202 Chapitre Fonctions de communication du CPM2A/CPM2C Mot DM 6651 Bit 00 à 07 Fonction Paramètre 00 : 1 200 bps, 01 : 2 400 bps, 02 : 4 800 bps, 03 : 9 600 bps, 04 : 19 200 bps Correspond aux paramètres de l’ordinateur Débit en Baud : 08 à 15 Format de trame 00: 01: 02: 03: 04: 05: 06: 07: 08: 09: 10: 11: DM 6652 00 à 15 4-3 Départ 1 1 1 1 1 1 1 1 1 1 1 1 Longueur 7 7 7 7 7 7 8 8 8 8 8 8 Arrêt 1 1 1 2 2 2 1 1 1 2 2 2 Parité Paire Impaire Aucune Paire Impaire Aucune Paire Impaire Aucune Paire Impaire Aucune (D’autres configurations causeront une erreur non fatale, les paramètres par défaut (03) seront utilisés et l’AR 1302 passera sur ON) Délai de transmission (Liaison à l’ordinateur) 0000 à 9999 (BCD) : Défini par unités de 10 ms. 0000 à 9999 (D’autres configurations causeront une erreur non fatale, la configuration par défaut (0000) sera utilisée et l’AR 1302 passera sur ON) DM 6653 00 à 07 Numéro de station (Liaison à l’ordinateur) 00 à 31 (BCD) 00 à 31 (D’autres configurations causeront une erreur non fatale, les paramètres par défaut (03) seront utilisés et l’AR 1302 passera sur ON) 08 à 11 Activation du code de début (port périphérique) 0 : Désactivé 1 : Utiliser le code de départ en DM 6654. Tous 12 à 15 Activation du code de fin (port périphérique) 0 : Désactivé (nombre d’octets reçus) 1 : Utiliser le code de fin en DM 6654. 2 : CR, LF Tous (D’autres configurations causeront une erreur non fatale, la configuration désactivée (0) sera utilisée et l’AR 1302 passera sur ON) DM 6654 00 à 07 Code de démarrage (Port périphérique, effectif lorsque les bits 08 à 11 de DM 6653 sont mis à 1) 01 à FF (Hex) Tous 08 à 15 Nombre d’octets de données reçus (Port périphérique, effectif lorsque les bits 12 à 15 de DM 6653 sont mis à 0) 00 : 256 octets 01 à FF : 1 à 255 octets Code de fin (00 à FF) (Port périphérique, effectif lorsque les bits 12 à 15 de DM 6653 sont mis à 1.) Tous Cet exemple illustre un programme BASIC qui lit l’état des entrées du CPM2A/CPM2C dans IR 000. Pour de plus amples informations, se reporter à 4-5 Commandes de communication à l’ordinateur. Aucune séquence de vérification de trame (FCS) n’est réalisée sur les données des réponses reçues dans ce programme. Vérifier que le port RS-232C de l’ordinateur est correctement configuré avant d’exécuter le programme. 1000 ’ ---------------------------------------------------------------------1010 ’ CPM2A/CPM2C Sample Program for PC-9801 N88-BASIC 1020 ’ 1050 ’ ---------------------------------------------------------------------1060 ’ ---Set value RS-232C SPEED:9600BPS,PARITY:EVEN,DATA:7,STOP:2--1070 OPEN ”COM:E73” AS #1 Envoi de commandes à partir d’un ordinateur 203 Fonctions de communication du CPM2A/CPM2C Chapitre 4-3 1080 *REPEAT 1090 ---Transmission data input----------------------------------------------1100 INPUT ” send data : ”,send$ 1110 ’ ---FCS Calculation----------------------------------------------1120 FCS=0 1130 FOR IFCS = 1 TO LEN ( send$ ) 1140 FCS = FCS XOR ASC( MID$ ( SEND$ , IFCS , 1 ) ) 1150 NEXT 1160 FCS$ = RIGHT$ ( ”0” + HEX$ ( FCS ) , 2 ) 1170 ’ ---Communications execute----------------------------------------------1180 ZZZ$ = SEND$ + SCS$ + ”*” + CHR$(13) 1190 PRINT #1 , ZZZ$ ; 1200 ’ ---réponse check----------------------------------------------1210 RECCNT = 0 : TMP$ - ”” 1220 *DRECLOOP 1230 IF LOC ( 1 ) < > 0 THEN *DREC1 1240 RECCNT = RECCNT + 1 1250 IF RECCNT = 5000 THEN *DRECERR ELSE *DRECLOOP 1260 *DREC1 1270 TMP$ = TMP$ + INPUT$ ( LOC (1 ) , #1 ) 1280 IF RIGHT$ ( TMP$ , 1 ) = CHR$ (13) THEN *DRECEND ELSE RECCNT = 0 : GOTO * DRECLOOP 1290 *DRECERR 1300 TMP$ = ” No response !! ” + CHR$ ( 13 ) 1310 *DRECEND 1320 PRINT ” receive data : ” ; RECV$ 1340 ’ ---Go à transmission data input---------------------------------------1350 GOTO *REPEAT 1360 ’ ---Processing complete----------------------------------------------1370 CLOSE #1 1380 END Programme à contacts (Mnémoniques) 204 Les communications à l’ordinateur inattendues sont exécutées en utilisant TXD(48). MnémoContrôle nique (@)TXD(48) Sortie du port de communications Contenu Lit les données depuis la mémoire E/S et les transmet dans le format de trame spécifié. Chapitre Fonctions de communication du CPM2A/CPM2C 4-3 Les communications à l’ordinateur sont commandées avec les drapeaux de registre d’adresse suivants : Mot Bit(s) Contenu AR 08 00 à 03 Code d’erreur du port RS-232C 0 : Exécution normale 1 : Erreur de parité 2 : Erreur de trame 3 : Erreur de dépassement 04 Drapeau d’erreur de communications RS-232C ON : Une erreur de communication avec le port RS-232C est survenue OFF : Normal Drapeau Prêt à transmettre sur RS-232C ON : L’API est prêt à transmettre des données. Code d’erreur du port périphérique 0 : Exécution normale 1 : Erreur de parité 2 : Erreur de trame 3 : Erreur de dépassement 05 08 à 11 12 Drapeau d’erreur de communications sur le port périphérique ON : Une erreur de communication avec le port périphérique est survenue Drapeau Prêt à transmettre sur le port périphérique ON : L’API est prêt à transmettre des donées. 13 Communications inattendues Une transmission de données vers l’ordinateur est déclenchée par l’API. (@)TXD(48) S S : Première adresse des données à transmettre C C : Données de contrôle N N : Nombre d’octects à transmettre (BCD : 0001 à 0061) Port de communicationst 0 : Port RS-232 ; 1 : Port périphérique Lorsque des communications à l’ordinateur sont utilisées, TXD(48) convertit en ASCII les N octets de données en commençant par S, ajoute le titre de la communication à l’ordinateur, la FCS et le caractère d’arrêt et émet ces données comme une trame de communication à l’ordinateur. La trame de communication à l’ordinateur émise se présente comme dans le schéma ci-après : Converti en ASCII. N octets N_ de station Données (ASCII) " 205 Chapitre Fonctions de communication du CPM2A/CPM2C 4-3 Dans l’exemple de programme suivant, TXD(48) sert à transmettre des données d’un port RS-232C vers un ordinateur. Si AR 0805 (de drapeau RS-232C prêt à émettre) est sur ON lorsque IR 00100 passe à ON, les dix octets de données (DM 0100 à DM 0104) seront transmis à l’ordinateur en commençant par les octets de gauche. (48) Première adresse des données à transmettre Spécification du port RS-232C 10 octets 4-3-2 Communications sans protocole Généralités Lorsque des communications sans protocole sont utilisées, des données peuvent être échangées avec des périphériques série tels que des lecteurs de codes barres et des imprimantes série en utilisant TXD(48) et RXD(47). Les communications sans protocole s’utilisent indifféremment avec un port RS-232C ou un port périphérique. 206 Chapitre Fonctions de communication du CPM2A/CPM2C 4-3 Connexions du CPM2A UC CPM2A Périphériques RS-232C Lecteur de code barre Imprimante série Autre Port RS-232C Convertisseur RS-232C CPM1-CIF01 (Contrôle CTS inutilisable). UC CPM2A Périphériques RS-232C Lecteur de code barre Imprimante série Autre Port périphérique Périphériques RS-232C Convertisseur RS-232C CQM1-CIF01/02 (Contrôle CTS inutilisable). UC CPM2A Lecteur de code barre Imprimante série Autre Port périphérique Connexions du CPM2C UC CPM2C Périphériques RS-232C Lecteur de code barre Imprimante série Autre Rem. *Le convertisseur RS-232C du CPM1-CIF01 peut également être utilisée pour les communications sans protocole par le port périphérique. Configuration des données de transmission Lorsque des communications sans protocole sont utilisées, TXD(48) sert à envoyer les données et RXD(47) à les recevoir. La quantité maximale de données pouvant être envoyées ou reçues est de 259 octets, y compris les codes de début et de fin. 207 Chapitre Fonctions de communication du CPM2A/CPM2C 4-3 Pas de code de début ou de fin : Données (Nombre d’octets spécifié) Code de début seulement : ST Données (Nombre d’octets spécifié) Code de fin seulement : Données (256 octets max.) ED Code de début et de fin : ST ED Données (256 octets max.) Code de fin de CR, LF : Données (256 octets max.) CR LF Données (256 octets max.) CR LF Code de début 00-FF/code de fin CR, LF : ST Rem. 1. Les codes de début et de fin sont définis de DM 6648 à DM 6649 (RS-232C) ou de DM 6653 à DM 6654 (port périphérique) dans les paramètres de l’API. 2. Lorsque plusieurs codes de début ou de fin sont présents dans la transmission, c’est le premier de chaque qui est reconnu. 3. Lorsque le code de fin est accidentellement dupliqué dans les données de transmission et que celle-ci est interrompue dans son déroulement, utiliser CR et LF comme code de fin. 4. Les codes de début et de fin ne sont ni envoyés ni reçus. Drapeaux de transmission Lors de l’envoi des données à partir du CPM2A/CPM2C, vérifier que le drapeau d’autorisation d’émission est sur ON pour l’exécution de l’instruction TXD(48). Le drapeau d’autorisation d’émission passera sur OFF pendant l’émission des données, puis à nouveau sur ON lorsqu’elle sera terminée. Lorsque le CPM2A/CPM2C a reçu les données, le drapeau d’autorisation de réception passe à ON. Lorsque l’instruction RXD(47) est exécutée, les données réçues sont écrites vers les mots spécifiés et le drapeau de fin de réception passe sur OFF. Drapeau Port périphérique Port RS-232C Drapeau Prêt à transmettre AR 0813 AR 0805 Drapeau Réception terminée AR 0814 AR 0806 Rem. Le CPM2A/CPM2C débute et termine la réception des données aux points suivants : Début de la réception : Code de début désactivé : Continuellement disponible en réception Code de début activé : Après réception du code de début Fin de la réception : A la réception du code de fin, du nombre d’octets spécifié ou de 256 octets. 208 Chapitre Fonctions de communication du CPM2A/CPM2C 4-3 Procédure d’application Paramétrage du commutateur de communications Connexion des câbles Paramétrer le commutateur de communications de l’UC CPM2A CPU ou le micro-interrupteur de l’UC CPM2C. Effectuer la connexion du RS-232C avec le périphérique série. Programme à contacts Réglage ou commutateur de communication Les communications du CPM2A sont contrôlées par le commutateur de communication situé à l’avant de l’UC et les communication du CPM2C sont contrôlées par le micro-interrupteur situé à l’avant de l’UC. Paramètres du commutateur de communication du CPM2A Placer sur OFF le commutateur de communication dans le cas des communications sans protocole. Les communications sans protocole seront impossibles si le commutateur de communication est sur ON. Commutateur de communications Port périphérique Port RS-232C Rem. Un convertisseur RS-232C est nécessaire dans le cas des communications sans protocole sur le port périphérique. Paramètres du micro-interrupteur du CPM2C Placer sur OFF le sélecteur 1 du micro-interrupteur dans le cas des communications sans protocole de telle sorte que les communications par le port RS-232C soient régies par les paramètres de configuration de l’API (DM 6645 à 209 Chapitre Fonctions de communication du CPM2A/CPM2C 4-3 DM 6649). Dans le cas de communications sans protocole par le port périphérique, placer également le sélecteur 2 sur ON. Commutateur de paramétrage du port de communications Config. des sélecteurs Sél. 1 Sél. 2 OFF OFF OFF ON ON OFF ON ON Communications du port périphérique pé p é que Communications du port RS-232C S 3 C Protocole de la console de programmation Commandé par le Setup de l’API (DM 6650 à DM 6654) Protocole de la console de programmation Commandé par les paramètres standard Commandé par le Setup de l’API ((DM 6645 à DM 6649)) Commandé par les paramètres standard Rem. Un convertisseur RS-232C est nécessaire dans le cas des communications sans protocole sur port périphérique. Connexion des câbles Ce chapitre décrit les connexions RS-232C. Le port RS-232C du périphérique série et le port RS-232C du convertisseur RS-232C du CPM2A/CPM2C ou du CPM1-CIF01 sont connectés comme dans le schéma suivant. Avec les CPM2C, CPM2C-CN111 et CS1W-CN118, il est possible d’utiliser des câbles de connexion à la place du convertisseur RS-232C. Port RS-232C Signal Sél. n_ Périphérique série RD (réception de données) Périphérique série SD (émission de données) Périphérique série SG (masse du signal) Capot Paramètres de l’API 210 Les paramètres de l’API nécessaires varient suivant qu’un port périphérique ou qu’un port RS-232C est utilisé. Chapitre Fonctions de communication du CPM2A/CPM2C 4-3 Paramètres du port RS-232C Mot DM 6645 Bit 00 à 03 Fonction Paramètre Configuration du port 00 : Standard (1 bit de départ, 7 bits de données, 2 bits d’arrêt, parité paire, 9 600 bps) 01 : Réglage en DM 6646 Comme requis (D’autres configurations causeront une erreur non fatale, la configuration par défaut sera utilisée et l’AR 1302 passera sur ON) 04 à07 08 à 11 12 à 15 Paramètres de contrôle CTS 0 : Désactivé ; 1 : Défini Mots de liaison pour une liaison Inter API 0 : LR 00 à LR 15 ; Autres : Sans effet Modes communication 0 : Liaison à l’ordinateur ; 2 : Liaison Inter API esclave ; 3 : Liaison Inter API Maître ; 4 : Liaison entre un NT et un API Tous 1 (D’autres configurations causeront une erreur non fatale, la configuration de la liaison à l’ordinateur sera utilisée et l’AR 1302 passera sur ON) DM 6646 00 à 07 Débit en Baud 00 : 1 200 bps ; 01 : 2 400 bps ; 02 : 4 800 bps ; 3 : 9 600 bps ; 04 : 19 200 bps 08 à 15 00 : 01 : 02 : 03 : 04 : 05 : 06 : 07 : 08 : 09 : 10 : 11 : Format de trame Départ Longueur 1 7 1 7 1 7 1 7 1 7 1 7 1 8 1 8 1 8 1 8 1 8 1 8 Arrêt 1 1 1 2 2 2 1 1 1 2 2 2 Comme requis Parité Paire Impaire Aucune Paire Impaire Aucune Paire Impaire Aucune Paire Impaire Aucune (D’autres configurations causeront une erreur non fatale, les paramètres par défaut (03) seront utilisés et l’AR 1302 passera sur ON) DM 6647 00 à 15 Délai de transmission (Liaison à l’ordinateur) 0000 à 9999 (BCD) : Défini par unités de 10 ms, par ex., un paramètre à 0001 équivaut à 10 ms. 0000 à 9999 (D’autres configurations causeront une erreur non fatale, la configuration par défaut (0000) sera utilisée et l’AR 1302 passera sur ON) DM 6648 00 à 07 08 à 11 12 à 15 00 à 31 (BCD) : Numéro de station (Liaison à l’ordinateur) (D’autres configurations causeront une erreur non fatale, la configuration par défaut(00) seront utilisés et l’AR 1302 passera sur ON) Activation du code de départ (RS-232C) 0 : Désactivé ; 1 : Utiliser le code de début en DM 6649. Activation du code de fin (RS-232C) 0 : Désactivé (nombre d’octets reçus) 1 : Utiliser le code de fin en DM 6649. 2 : CR, LF Comme requis 0 ou 1 0à2 (D’autres configurations causeront une erreur non fatale, la configuration par défaut (0) serra utilisée et l’AR 1302 passera sur ON) DM 6649 00 à 07 08 à 15 Code de début (00 à FF) (Sans protocole, effectif lorsque les bits 8 à 11 de DM 6648 sont mis à 1) Nombre d’octets de données reçus (Sans protocole, effectif lorsque les bits 12 à 15 de DM 6648 sont mis à 0) 00 : 256 octets 01 à FF: 1 à 255 octets Code de fin (00 à FF) (Sans protocole, effectif lorsque les bits 12 à 15 de DM 6648 sont mis à 1) 00 à FF 00 à FF 00 à FF 211 Fonctions de communication du CPM2A/CPM2C Chapitre 4-3 Paramètres du port périphérique Mot DM 6650 Bit 00 à 03 Fonction Configuration du port 00 : Standard (1 bit de départ, 7 bits de données, 2 bits d’arrêt, parité paire, 9 600 bps) 01 : Réglage en DM 6651 Paramètre Comme requis (D’autres configurations causeront une erreur non fatale, la configuration par défaut (0) sera utilisée et l’AR 1302 passera sur ON) 04 à 11 Non utilisés. 0 12 à 15 Modes communication 0 : Liaison à l’ordinateur ; 1 : Sans protocole 1 (D’autres configurations causeront une erreur non fatale, la configuration de la liaison à l’ordinateur sera utilisée et l’AR 1302 passera sur ON) DM 6651 00 à 07 08 à 15 DM 6652 00 à 15 Débit en Baud 00 : 1 200 bps ; 01 : 2 400 bps ; 02 : 4 800 bps ; 03 : 9 600 bps ; 04 : 19 200 bps Format de trame Départ Longueur Arrêt Parité 00 : 1 7 1 Paire 01 : 1 7 1 Impaire 02 : 1 7 1 Aucune 03 : 1 7 2 Paire 04 : 1 7 2 Impaire 05 : 1 7 2 Aucune 06 : 1 8 1 Paire 07 : 1 8 1 Impaire 08 : 1 8 1 Aucune 09 : 1 8 2 Paire 10 : 1 8 2 Impaire 11 : 1 8 2 Aucune (D’autres configurations causeront une erreur non fatale, la configuration par défaut (03) sera utilisée et l’AR 1302 passera sur ON) Délai de transmission (Liaison à l’ordinateur) 0000 à 9999 (BCD) : Défini par unités de 10 ms. Comme requis q 0000 à 9999 (D’autres configurations causeront une erreur non fatale, la configuration par défaut (0000) sera utilisée et l’AR 1302 passera sur ON) DM 6653 00 à 07 08 à 11 12 à 15 00 à 31 (BCD) : Numéro de station (Liaison à l’ordinateur) Comme (D’autres configurations causeront une erreur non fatale, la configuration par défaut requis (00) sera utilisée et l’AR 1302 passera sur ON) Activation du code de début (Port périphérique) 0 ou 1 0 : Désactivé 1 : Use start code in DM 6654. Activation du code de fin (Port périphérique) 0 : Désactivé (nombre d’octets reçus) 1 : Use end code in DM 6654. 2 : CR. LF 0à2 (D’autres configurations causeront une erreur non fatale, a configuration par défaut (0) sera utilisée et l’AR 1302 passera sur ON) DM 6654 00 à 07 08 à 15 212 Code de début (00 à FF) (Port périphérique, effective when bits 8 à 11 de DM 6653 sont mis à 1). Nombre d’octets de données reçus (Port périphérique, effectif lorsque les bits 12 à 15 de DM 6653 sont mis à 0). 00 : 256 octets 01 à FF: 1 à 255 octets Code de fin (00 à FF) (Port périphérique, effectif lorsque les bits 12 à 15 de DM 6653 sont mis à 1). 00 à FF 00 à FF 00 à FF Chapitre Fonctions de communication du CPM2A/CPM2C Programme 4-3 Les instructions suivantes sont utilisées dans les communications sans protocole : Mnémonique (@)TXD(48) Contrôle (@)RXD(47) Contenu Sortie du port de communications Lit les données de la mémoire E/S et les transmet dans le format de trame spécifié (les codes de début et de fin peuvent être activés/désactivés). Entrée du port de communications Reçoit les données dans le format de trame spécifié (les codes de début et de fin peuvent être activés/désactivés) et enregistre seulement les données en mémoire E/S. Les communications sans protocole sont commandées avec les drapeaux de registre d’adresse suivants : Mot Bit(s) AR 08 00 à 03 Code d’erreur du port RS-232C 0 : Exécution normale ; 1 : Erreur de parité ; 2 : Erreur de trame ; 3 : Erreur de dépassement 04 Code d’erreur de communications sur RS-232C ON : Une erreur de communications sur le port RS-232C s’est produite. OFF : Normal Drapeau Prêt à transmettre sur RS-232C ON : L’API est prêt à transmettre des données. Drapeau Réception terminée sur RS-232C ON : L’API a terminé la lecture des données. Drapeau de dépassement positif de réception sur RS-232C ON : Un dépassement positif de réception s’est produit. 05 06 07 Contenu 08 à 11 Code d’erreur du port périphérique 0 : Exécution normale ; 1 : Erreur de parité ; 2 : Erreur de trame ; 3 : Erreur de dépassement 12 Drapeau d’erreur de communications du port périphérique ON : Une erreur de communications sur le port périphérique s’est produite. OFF : Normal 13 Drapeau Prêt à transmettre du port périphérique ON : L’API est prêt à transmettre des données. Drapeau Réception terminée du port périphérique ON : L’API a terminé la lecture des données. Drapeau de dépassement positif de réception sur le port périphérique 14 15 AR 09 00 à 15 ON : Un dépassement positif de réception s’est produit. Compteur de réception du port RS-232C (4 digits BCD) AR 10 00 à 15 Compteur de réception du port périphérique (4 digits BCD) 213 Chapitre Fonctions de communication du CPM2A/CPM2C 4-3 Emission de données sans protocole TXD(48) permet d’envoyer des données vers des périphériques RS-232C. (@)TXD(48) S S : Première adresse de données à transmettre C C : Données de contrôle N N : Nombre d’octets à transmettre (BCD : 0001 à 0256) Ordre de sauvegarde 0 : Les octets les plus à gauche d’abord 1 : Les octets les plus à droite d’abord Port de communications 0 : Port RS-232C 1: Port périphérique Lorsque des communications sans protocole sont utilisées, TXD(48) envoie N octets de données en commençant par S. Réception de données sans protocole RXD(47) permet de recevoir des données à partir des périphériques RS-232C. (@)RXD(47) S S : Première adresse de données à transmettre C C : Données de contrôle N N : Nombre d’octets à transmettre (BCD : 0001 à 0256) Ordre de sauvegarde 0 : Les octets les plus à gauche d’abord 1 : Les octets les plus à droite d’abord Port de communications 0 : Port RS-232C 1: Port périphérique L’exemple de programme suivant s’applique aux communications sans protocole réalisées par un port RS-232C avec les instructions TXD(48) et RXD(47). Si AR 0805 (le drapeau RS-232C Prêt à transmettre) est sur ON lorsque 00100 passe à ON, les données de DM 0100 à DM 0104 sont émises des octets les plus à gauche aux octets les plus à droite. Lorsque AR 0806 (le drapeau Réception terminée) passe à ON, 256 octets de données reçues sont lus et écrits vers DM 0200 des octets les plus à gauche aux octets les plus à droite. 00100 DIFU(13) Début des communications sans protocole 00101 00101 AR 0805 @TXD(48) DM 0100 #0000 #0010 Premier mot contenant des données à envoyer. Utiliser le port RS-232C, transmettre les données des octets les plus à gauche aux octets les plus à droite Transmet 10 octets. AR 0806 RXD(47) DM 0200 #0000 #0256 214 Premier mot pour sauvegarder les données reçues Utiliser le port RS-232C, transmettre les données des octets les plus à gauche aux octets les plus à droite Reçoit 256 octets. Chapitre Fonctions de communication du CPM2A/CPM2C 4-3 4-3-3 Communications entre un NT et un API La communication NT permet de connecter directement un API CPM2A/ CPM2C à un terminal programmable OMRON. il n’est pas nécessaire que l’API soit doté d’un programme de communication. La communication NT peut être utilisée avec un port RS-232C. Connexion du CPM2A UC CPM2A Câble RS-232C Terminal opérateur programmable OMRON Port RS-232C Connexion entre un NT et un API du CPM2C UC CPM2C Port RS-232C Port RS-232C Câble RS-232C Terminal opérateur programmable OMRON Port périphérique Câble à utilisation double ou CS1W-CN118 Procédure d’application Paramétrage des communications. Connexion des câbles Paramétrage du commutateur de communication Utiliser les paramètres du Setup de l’API (DM6645 à DM 6649) pour les communications RS-232C. (Mettre sur OFF le commutateur de communications sur l’UC du CPM2A ou le sélecteur 1 du micro-interrupteur sur l’UC du CPM2C). Connecter à un Terminal opérateur programmable. Les communications du CPM2A sont contrôlées par le commutateur de communication situé à l’avant de l’UC et les communications du CPM2C sont contrôlées par le micro-interrupteur situé à l’avant de l’UC. 215 Chapitre Fonctions de communication du CPM2A/CPM2C 4-3 Paramètres du commutateur de communications du CPM2A Placer sur OFF le commutateur de communication dans le cas des communications entre un NT et un API. Les communications entre un NT et un API seront impossibles si le commutateur de communication est sur ON. Commutateur de communications ON OFF Port RS-232C Paramètres du micro-interrupteur du CPM2C Placer sur OFF le sélecteur 1 du micro-interrupteur dans le cas des communications entre un NT et un API de telle sorte que les communications par le port RS-232C soient régies par les paramètres de configuration de l’API (DM 6645 à DM 6649). Micro-interrupteur Config. des sélecteurs 216 Sél. 1 Sél. 2 OFF OFF OFF ON ON OFF ON ON Communications du port périphérique pé p é que Protocole de la console de programmation Commandé par le Setup de l’API (DM 6650 à DM 6654) Protocole de la console de programmation Commandé par les paramètres standard Communications du port RS-232C S 3 C Commandé par le Setup de l’API (DM 6645 à DM 6649) Commandé par les paramètres standard Chapitre Fonctions de communication du CPM2A/CPM2C Lorsqu’une communication NT est utilisée avec un API CPM2A/CPM2C, les paramètres suivants doivent figurer dans la configuration de l’API (DM 6645) en utilisant un périphérique de programmation. Setup de l’API Mot DM 6645 Bit 00 à 03 4-3 Fonction Paramètre Configuration du port 00 : Standard (1 bit de départ, 7 bits de données, 2 bits d’arrêt, parité paire, 9 600 bps) 01 : Réglage en DM 6646 Tous (D’autres configurations causeront une erreur non fatale, la configuratin par défaut (00) sera utilisée et l’AR 1302 passera sur ON). 04 à 07 Paramètres de contrôle CTS 0 : Désactivés 1 : Définis Tous 08 à 11 Mots de liaison pour les liaisons Inter API 0 : LR 00 à LR 15 Tous 12 à 15 (Autres configurations : Désactivé) Modes communication 4 0 : Liaison à l’ordinateur ; 1: Sans protocole ; 2 : Liaison Inter API Esclave ; 3 : Liaison Inter API Maître ; 4 : Liaison entre un NT et un API (D’autres configurations causeront une erreur non fatale, la configuration de la liaison à l’ordinateur sera utilisée et l’AR 1302 passera sur ON). Pour de plus amples informations concernant les paramètres de la communication entre un NT et un API d’un terminal programmable OMRON, se reporter au Manuel de programmation de celui-ci. Connexion des câbles Ce chapitre décrit les connexions RS-232C. Le port RS-232C du terminal programmable et le port RS-232C de l’interface RS-232C du CPM2A/CPM2C ou du CPM1-CIF01 sont connectés comme dans le schéma suivant en l’absence de contrôle CTS sur le port RS-232C. Avec les CPM2C, CPM2C-CN111 et CS1W-CN118, des câbles de connexion sont utilisés. TOP OMRON Signal Sél. n_ Port RS-232C Sél. n_ Signal Câbles recommandés : XW2Z-200T : 2m XW2Z-500T : 5m TOP CPM2 4-3-4 Communications Inter API Une communication Inter API jusqu’à 256 bits (LR0000 à LR1515) peut être créée avec la zone de données d’un autre API CPM2A/CPM2C, CQM1, CPM1, CPM1A, SRM1(-V2) ou C200HX/HE/HG, dans lequel l’un sert de maître et l’autre d’esclave. Il n’est pas nécessaire que l’API soit doté d’un programme de communications. La communication Inter API peut être utilisée avec un port RS-232C. 217 Chapitre Fonctions de communication du CPM2A/CPM2C 4-3 Communications Inter API entre deux API du CPM2A UC CPM2A Port RS-232C UC CPM2A Port RS-232C Maître Esclave Bits de liaison Bits de liaison LR00 Ecriture LR07 LR08 Lecture LR00 Zone d’écriture Zone de lecture Zone de lecture Zone d’écriture LR15 Communication Inter API du CPM2A/CPM2C Lecture LR07 LR08 Ecriture LR15 La zone de relais de liaison des API CPM2A/CPM2C ne dépasse pas 16 mots, de LR00 à LR15. Dans le cas d’une communication Inter API avec un API CPM2A/CPM2C et un CQM1, C200HS ou C200HX/HE/HG, utiliser les 16 mots correspondants, de LR00 à LR15 sur l’API CQM1, C200HS ou C200HX/HE/ HG. Une communication Inter API avec un API CPM2A/CPM2C est impossible avec les mots LR16 à LR 63. Procédure d’applicaton Configuration des communications. Connexion des câbles Réglage du commutateur de communication 218 Utiliser les paramètres du Setup de l’API (DM6645 à DM 6649) pour les communications RS-232C. (Mettre sur OFF le commutateur de communications de l’UC du CPM2A ou le sélecteur 1 du micro-interrupteur de l’UC du CPM2C). Connecter une liaison Inter API avec un autre API. Les communications du CPM2A sont contrôlées par le commutateur de communication situé à l’avant de l’UC et les communications du CPM2C sont contrôlées par le micro-interrupteur situé à l’avant de l’UC. Chapitre Fonctions de communication du CPM2A/CPM2C 4-3 Paramètres du commutateur de communication du CPM2A Placer sur OFF le commutateur de communication dans le cas des communications Inter API. Les communications Inter API seront impossibles si le commutateur de communication est sur ON. Commutateur de communications ON OFF Port RS-232C Paramètres du micro-interrupteur du CPM2C Placer sur OFF le sélecteur 1 du micro-interrupteur dans le cas des communications Inter API de telle sorte que les communications par le port RS-232C soient régies par les paramètres de configuration de l’API (DM 6645 à DM 6649). Micro-interrupteur Config. des sélecteurs Sél. 1 Sél. 2 OFF OFF OFF ON ON OFF ON ON Communications du port périphérique pé p é que Communications du port RS-232C S 3 C Protocole de la console de programmation Commandé par le Setup de l’API (DM 6650 à DM 6654) Protocole de la console de programmation Commandé par les paramètres standard Commandé par le Setup de l’API ((DM 6645 à DM 6649)) Commandé par les paramètres standard 219 Chapitre Fonctions de communication du CPM2A/CPM2C Lors de la création d’une communication Inter API avec un API CPM2A/CPM2C, utiliser un périphérique de programmation afin de définir les paramètres suivants dans la configuration de l’API (DM 6645) pour le maître et l’esclave. Setup de l’API Mot DM 6645 Bit 00 à 03 4-3 Fonction Configuration du port 00 : Standard (1 bit de départ, 7 bits de données, 2 bits d’arrêt, parité paire, 9 600 bps) 01 : Réglage en DM 6646 Config. Maître Tous Config. Esclave Tous (D’autres configurations causeront une erreur non fatale, la configuration par défaut (00) sera utilisée et l’AR 1302 passera sur ON). 04 à 07 Paramètres du contrôle CTS 0 : Désactivés 1 : Définis 0 0 08 à 11 Mots de liaison pour la liaison Inter API 0 : LR 00 à LR 15 0 0 3 2 12 à 15 (Autres configuration : Désactivé) Modes communication 0 : Liaison à l’ordinateur ; 1: Sans protocole ; 2 : Liaison Inter API Esclave ; 3 : Liaison Inter API Maître ; 4 : Liaison entre un NT et un API (D’autres configurations causeront une erreur non fatale, la configuration de la liaison à l’ordinateur sera utilisée et l’AR 1302 passera sur ON). Pour de plus amples informations concernant les paramètres de la communication Inter API d’un autre API OMRON, se reporter au Manuel de programmation de celui--ci. Connexion des câbles Ce chapitre décrit la connexion RS-232C. Le câble RS-232C utilisé pour les communications Inter API est un câble d’interconnexion. En l’absence de contrôle CTS sur le port RS-232C, la connexion est réalisée comme dans le schéma ci--après. Avec les CPM2C, CPM2C-CN111 et CS1W-CN118, des câbles de connexion sont utilisés. Port RS-232C Port RS-232C Signal Signal Sél. n_ Sél. n_ Câbles recommandés : XW2Z-200T : XW2Z-500T : Capot 220 2m 5m Chapitre Fonctions de communication SRM1(-V2) 4-4 4-4 Fonctions de communication SRM1(-V2) 4-4-1 Communications à l’ordinateur Les communications à l’ordinateur ont été développées par OMRON dans le but de connecter des API et un ou plusieurs ordinateurs au moyen d’un câble RS-232C et de contrôler les communications API à partir de l’ordinateur. En règle générale, l’ordinateur envoie une commande à l’API qui renvoie automatiquement une réponse, de sorte que les communications s’effectuent sans la participation active des API. Ces derniers ont également la capacité de déclencher des transmissions de données lorsque leur participation directe est nécessaire. En général, il est possible de mettre en oeuvre des communications à l’ordinateur de deux manières. L’une est basée sur des commandes en mode C, l’autre sur des commandes FINS (mode CV). Le SRM1(-V2) ne prend en charge que les commandes en mode C. Pour en savoir davantage sur les communications à l’ordinateur, se reporter à 4-5 Commandes de communications à l’ordinateur. Les paramètres du port périphérique et du port RS-232C du SRM1(-V2) doivent être défins correctement pour pouvoir utiliser les communications à l’ordinateur, comme dans le tableau suivant : Setup de l’API Mot Bit Fonction Config. Configuration du port périphérique Les sélections suivantes sont effectivess après leur transfert vers l’API. DM 6650 00 à 03 Configuration du port 00 : Standard (1 bit de départ, 7 bits de données, 2 bits d’arrêt, parité paire, 9 600 bps) 01 : Réglage en DM 6651 DM 6651 (D’autres configurations causeront une erreur non fatale, la configuration par défaut (0) sera utilisée et l’AR 1302 passera sur ON). Pour correspondre aux paramètres à l’ordinateur 04 à 07 Non utilisés. 0 08 à 11 Non utilisés. 0 12 à 15 Modes communication 0 : Liaison à l’ordinateur ; 1: Sans protocole 0 : Liaison à l’ordinateur 00 à 07 08 à 15 (D’autres configurations causeront une erreur non fatale, la configuration par défaut (0) sera utilisée et l’AR 1302 passera sur ON). Débit en Baud 00 : 1,2K, 01 : 2,4K, 02 : 4,8K, 03 : 9,6K, 04 : 19,2K Format de trame Début 00 : 1 bit 01 : 1 bit 02 : 1 bit 03 : 1 bit 04 : 1 bit 05 : 1 bit 06 : 1 bit 07 : 1 bit 08 : 1 bit 09 : 1 bit 10 : 1 bit 11 : 1 bit Longueur 7 bits 7 bits 7 bits 7 bits 7 bits 7 bits 8 bits 8 bits 8 bits 8 bits 8 bits 8 bits Arrêt 1 bit 1 bit 1 bit 2 bit 2 bit 2 bit 1 bit 1 bit 1 bit 2 bit 2 bit 2 bit Parité Paire Impaire Aucune Paire Impaire Aucune Paire Impaire Aucune Paire Impaire Aucune Pour correspondre aux paramètres à l’ordinateur Pour correspondre aux paramètres à l’ordinateur (D’autres configurations causeront une erreur non fatale, la configuration par défaut (00) sera utilisée et l’AR 1302 passera sur ON). 221 Chapitre Fonctions de communication SRM1(-V2) Mot DM 6652 Bit 00 à 15 Fonction Config. Délai de transmission (Liaison à l’ordinateur) 0000 à 9999 (BCD) : Défini par unités de 10 ms. (D’autres configurations causeront une erreur non fatale, la configuration par défaut (0000) sera utilisée et l’AR 1302 passera sur ON). DM 6653 00 à 07 08 à 11 12 à 15 DM 6654 4-4 Numéro de station (Liaison à l’ordinateur) 00 à 31 (BCD) Pour correspondre aux paramètres à l’ordinateur 00 à 31 (D’autres configurations causeront une erreur non fatale, la configuration par défaut (0000) sera utilisée et l’AR 1302 passera sur ON). Activation du code de début (RS-232C, effectif lorsque les bits 12 à 15 de DM 6650 sont mis à 1). 0 : Désactivé 1 : Défini Activation du code de fin (RS-232C, effectif lorsque les bits 12 à 15 de DM 6650 sont mis à 1). 0 : Désactivé (nombre d’octets reçus) 1 : Défini (code de fin spécifié) 2 : CR, LF Tous Tous 00 à 07 Code de début (effectif lorsque les bits 08 à 11 de DM6650 sont mis à 1). 00 : 256 octets 01 à FF : 1 à 255 octets Tous 08 à 15 Code de fin (sans protocole) Tous Lorsque les bits 12 à 15 de DM6653 sont mis à 0 : 00 : 256 octets 01 à FF : 1 à 255 octets Lorsque les bits 12 à 15 de DM6653 sont mis à 1 : Configuration : 00 à FF (Hex) Rem. Lorsqu’une valeur hors limite est utilisée, il en résulte les conditions de communication suivantes. Dans ce cas, réinitialiser la valeur pour qu’elle soit dans la plage autorisée. Modes communication : Format de communications : Retard de transmission : Numéro de station : 222 Liaison à l’ordinateur Paramètres standard (1 bit de départ, 7 bits de données, 2 bits d’arrêt, parité paire, 9 600 bps) Non 00 Chapitre Fonctions de communication SRM1(-V2) Mot Bit Fonction 4-4 Config. Configurations du port RS-232C Les sélections suivantes sont effectives après leur transfert vers l’API. DM 6645 00 à 03 Configuration du port 00 : Standard (1 bit de départ, 7 bits de données, 2 bits d’arrêt, parité paire, 9 600 bps) 01 : Réglage en DM 6646 Pour correspondre aux paramètres à l’ordinateur 04 à 07 Paramètres de contrôle CTS 0 : Désactivés ; 1 : Définis Lors de l’utilisation d’une liaison Inter API : définit les mots de liaison pour une liaison Inter API. 0 : LR 00 à LR 15 Non 0 : Désactivé 0 08 à 11 12 à 15 Lors de l’utilisation d’une liaison NT 1:N : définit le numéro de station TOP maximum. 1à7 Communications mode 0 : Liaison à l’ordinateur ; 1 : Sans protocole ; 2 : Liaison Inter API Esclave ; 3 : Liaison Inter API Maître ; 4 : Liaison entre un NT et un API ; 5 : Liaison NT 1:N 0 (Toutes les autres définitions spécifiées en mode Liaison à l’ordinateur produisent une erreur non fatale et l’AR 1302 passera sur ON). La liaison NT 1:N est supportée seulement par SRM1-C02-V2. DM 6646 00 à 07 Débit en Baud 00 : 1,2K, 01 : 2,4K, 02 : 4,8K, 03 : 9,6K, 04 : 19,2K 08 à 15 Format de trame Début 00 : 1 bit 01 : 1 bit 02 : 1 bit 03 : 1 bit 04 : 1 bit 05 : 1 bit 06 : 1 bit 07 : 1 bit 08 : 1 bit 09 : 1 bit 10 : 1 bit 11 : 1 bit Longueur 7 bits 7 bits 7 bits 7 bits 7 bits 7 bits 8 bits 8 bits 8 bits 8 bits 8 bits 8 bits Arrêt 1 bit 1 bit 1 bit 2 bit 2 bit 2 bit 1 bit 1 bit 1 bit 2 bit 2 bit 2 bit Pour correspondre aux paramètres à l’ordinateur Parité Paire Impaire Aucune Paire Impaire Aucune Paire Impaire Aucune Paire Impaire Aucune Pour correspondre aux paramètres à l’ordinateur DM 6647 00 à 15 Délai de transmission (Liaison à l’ordinateur) 0000 à 9999 (BCD) : Défini par unités de 10 ms, par ex., définition de 0001 identique à 10 ms Pour correspondre aux paramètres à l’ordinateur DM 6648 00 à 07 Numéro de station (Liaison à l’ordinateur, effectif lorsque les bits 12 à 15 de DM 6645 sont définis à 0) 00 à 31 (BCD) 00 à 31 08 à 11 Activation du code de début (RS-232C, effectif lorsque les bits 12 à 15 de DM 6645 sont définis à 1). 0 : Désactivé ; 1 : Défini Tous 12 à 15 Activation du code de fin (RS-232C, effectif lorsque les bits 12 à 15 de DM 6645 sont définis à 1). 0 : Désactivé (nombre d’octets reçus) 1 : Défini (code de fin spécifié) 2 : CR, LF Tous 223 Chapitre Fonctions de communication SRM1(-V2) Mot DM 6649 Bit Fonction 4-4 Config. 00 à 07 Code de début (RS-232C) 00 : 256 octets 01 à FF : 1 à 255 octets Tous 08 à 15 Code de fin activé (RS-232C) Tous 00 à FF (BIN) Rem. Lorsqu’une valeur hors limite est utilisée, il en résulte les conditions de communication suivantes. Dans ce cas, réinitialiser la valeur pour qu’elle soit dans la plage autorisée. Modes communication : Format de communications : Retard de transmission : Numéro de station : 224 Liaison à l’ordinateur Paramètres standard (1 bit de départ, 7 bits de données, 2 bits d’arrêt, parité paire, 9 600 bps) Non 00 Fonctions de communication SRM1(-V2) Exemple de programme Chapitre 4-4 Cet exemple illustre un programme BASIC qui lit l’état des entrée du SRM1(--V2) dans IR 000. Pour de plus amples informations, se reporter à 4-5 Commandes de communications à l’ordinateur. Aucune séquence de vérification de trame (FCS) n’est réalisée sur les données des réponses reçues dans ce programme. Vérifier que le port RS-232C de l’ordinateur est correctement configuré avant d’exécuter le programme. 1000 ’ 1010 ’SRM1 Sample Program for PC-9801 N88-BASIC 1020 ’ 1050 ’ 1060 ’ Set value RS-232C SPEED:9600BPS,PARITY:EVEN,DATA:7,STOP:2 1070 OPEN ”COM:E73” AS #1 1080 *REPEAT 1090 ’ Transmission data input 1100 INPUT ”send data:”,SEND$ 1110 ’ FCS Calculation 1120 FCS=0 1130 FOR IFCS=1 TO LEN(SEND$) 1140 FCS=FCS XOR ASC(MID$(SEND$;IFCS,1) 1150 NEXT 1160 FCS$=RIGHT$(”0”+HEX$(FCS),2) 1170 ’ Communications execute 1180 ZZZ$=SEND$+FCS$+”*”+CHR$(13) 1190 PRINT #1,ZZZ$; 1200 ’ réponse check 1210 RECCNT=0:TMP$=”” 1220 *DRECLOOP 1230 IF LOC(1)<>0 THEN *DREC1 1240 RECCNT=RECCNT+1 1250 IF RECCNT=5000 THEN *DRECERR ELSE *DRECLOOP 1260 *DREC1 1270 TMP$=TMP$+INPUT$(LOC(1),#1) 1280 IF RIGHT$(TMP$,1)=CHR$(13) THEN *DRECEND ELSE RECCNT=0:GOTO *DRECLOOP 1290 *DRECERR 1300 TMP$=”No response!!”+CHR$(13) 1310 *DRECEND 1320 RECV$=TMP$ 1330 PRINT ”receive data:”;RECV$ 1340 ’ Go à transmission data input 1350 GOTO *REPEAT 1360 ’ Processing complete 1370 CLOSE #1 1380 END 225 Chapitre Fonctions de communication SRM1(-V2) 4-4 4-4-2 Communications sans protocole Ce chapitre décrit les communications sans protocole (RS-232C). Les communications sans protocole permettent d’échanger des données avec des périphériques RS-232C standards tels que des imprimantes et des lecteurs de codes barres. Les données peuvent être imprimées sur une imprimantes ou lues par un lecteur de codes barres. La confirmation de connexion n’est pas prise en charge dans les communications sans protocole. Procédure de communication Emissions 1, 2, 3... 1. Vérifier que AR 0805 (le drapeau d’autorisation d’émission du port RS-232C) est passé sur ON. 2. Utiliser l’instruction TXD(48) pour émettre les données. (@)TXD(48) S : Numéro du premier mot de données à transmettre S C : Données de contrôle C N : Nombre d’octets à transmettre (4 digits BCD), 0000 à 0256 N Depuis l’exécution de cette instruction jusqu’à la fin de l’émission des données, AR 0805 (ou AR 0813 pour le port périphérique) demeure sur OFF (il repassera sur ON à la fin de l’émission des données). Les codes de début et de fin ne sont pas inclus lorsque le nombre d’octets à émettre est précisé. La transmission la plus longue ne peut être envoyée avec ou sans code de débit et de fin en 256 octets, N se trouvera entre 254 et 256 suivant les désignations des codes de début et de fin. Si le nombre d’octets à émettre est sur 0000, seuls les codes de début et de fin seront envoyés. 256 octets max. Code de début Données Code de fin Pour réinitialiser le port RS-232C (c.--à--d. pour restaurer son état d’origine), passer SR 25209 sur ON. Pour réinitialiser le port périphérique, passer SR 25208 sur ON. Ces bits repasseront automatiquement sur OFF après réinitialisation. Réceptions 1, 2, 3... 1. Vérifier que AR 0806 (drapeau Réception terminiée RS-232C) ou AR 0814 (drapeau de fin de réception de périphérique) est sur ON. 2. Utiliser l’instruction RXD(47) pour recevoir les données. (@)RXD(47) D C N D : Numéro du premier mot pour l’enregistrement des données de réception C : Données de contrôle Bits 00 à 03 0 : Les octets les plus à gauche d’abord 1 : Les octets les plus à droite d’abord Bits 12 à 15 0 : Port RS-232C 1 : Port périphérique N : Nombre d’octets enregistrés (4 digits BCD), 0000 à 0256 226 Chapitre Fonctions de communication SRM1(-V2) 4-4 3. Les résultats de la lecture des données sont sauvegardés dans la zone de registre d’adresse. Vérifier que l’opération s’est déroulée avec succès. Le contenu de ces bits sera réinitialisé à chaque opération de l’instruction RXD(47). Port RS-232C AR 0800 à AR 0803 Port périphérique AR 0808 à AR 0811 Erreur AR 0804 AR0812 Erreur de communications AR 0807 AR0815 Drapeau de dépassement de réception (après la fin de la réception, les données suivantes ont été reçues avant que les données aient été lues au moyen de l’instruction RXD(47)). AR 09 AR10 Nombre d’octets reçus. Code d’erreur du port RS-232C (1 digit BCD) 0 : Exécution normale 1 : Erreur de parité 2 : Erreur de trame 3 : Erreur de dépassement Pour réinitialiser le port RS-232C (c.--à--d. pour restaurer son état d’origine), passer SR 25209 à ON. Pour réinitialiser le port périphérique, mettre SR 25208 sur ON. Ces bits repasseront automatiquement à OFF après réinitialisation. Le code de début et le code de fin ne sont pas inclus dans AR 09 ou AR 10 (nombre d’octets reçus). Les données se présenteront sour la forme : “31323132313231323132CR LF” Paramètres du port périphérique Mot Lorsque le port périphérique sert aux communications sans protocole, les paramètres suivants doivent être définis par le périphérique de programmation de DM 6650 à DM 6653 dans le SRM1(-V2). Bit Fonction Config. Configuration du port périphérique Les sélections suivantes sont effectives après leur transfert vers l’API. DM 6650 00 à 03 Configuration du port 00 : Standard (1 bit de départ, 7 bits de données, 2 bits d’arrêt, parité paire, 9 600 bps) 01 : Réglage en DM 6651 Comme requis (D’autres configurations causeront une erreur non fatale, la configuration par défaut (0) sera utilisée et l’AR 1302 passera sur ON). DM 6651 04 à 07 Non utilisés. 0 08 à 11 Non utilisés. 0 12 à 15 Modes communication 0 : Liaison à l’ordinateur ; 1 : Sans protocole 1 : Sans protocole 00 à 07 08 à 15 (D’autres configurations causeront une erreur non fatale, la configuration par défaut (0) sera utilisée et l’AR 1302 passera sur ON). Débit en Bauds 00 : 1,2K, 01 : 2,4K, 02 : 4,8K, 03 : 9,6K, 04 : 19,2K Format de trame Début Longueur Arrêt Parité 00 : 1 bit 7 bits 1 bit Paire 01 : 1 bit 7 bits 1 bit Impaire 02 : 1 bit 7 bits 1 bit Aucune 03 : 1 bit 7 bits 2 bit Paire 04 : 1 bit 7 bits 2 bit Impaire 05 : 1 bit 7 bits 2 bit Aucune 06 : 1 bit 8 bits 1 bit Paire 07 : 1 bit 8 bits 1 bit Impaire 08 : 1 bit 8 bits 1 bit Aucune 09 : 1 bit 8 bits 2 bit Paire 10 : 1 bit 8 bits 2 bit Impaire 11 : 1 bit 8 bits 2 bit Aucune Comme requis Comme requis (D’autres configurations causeront une erreur non fatale, la configuration par défaut (00) sera utilisée et l’AR 1302 passera sur ON). 227 Chapitre Fonctions de communication SRM1(-V2) Mot DM 6652 Bit 00 à 15 Fonction Délai de transmission (Liaison à l’ordinateur) 0000 à 9999 (BCD) : Défini par unités de 10 ms. (D’autres configurations causeront une erreur non fatale, la configuration par défaut (0000) sera utilisée et l’AR 1302 passera sur ON). DM 6653 00 à 07 08 à 11 12 à 15 DM 6654 Numéro de station (Liaison à l’ordinateur) 00 à 31 (BCD) 4-4 Config. Pour correspondre aux paramètres à l’ordinateur 00 à 31 (D’autres configurations causeront une erreur non fatale, la configuration par défaut (0000) sera utilisée et l’AR 1302 passera sur ON). Activation du code de départ (RS-232C, effectif lorsque les bits 12 à 15 de DM 6650 sont définis à 1). 0 : Désactivé 1 : Défini Activation du code de fin (RS-232C, effectif lorsque les bits 12 à 15 de DM 6650 sont définis à 1). 0: Désactivé (nombre d’octets reçus) 1 : Défini (code de fin spécifié) 2 : CR, LF Comme requis Comme requis 00 à 07 Code de début (effectif lorsque les bits 08 à 11 de DM6650 sont définis à 1). 00 : 256 octets 01 à FF : 1 à 255 octets Comme requis 08 à 15 Code de fin (Sans protocole) Comme requis Lorsque les bits 12 à 15 de DM6653 sont définis à 0 : 00 : 256 octets 01 à FF : 1 à 255 octets Lorsque les bits 12 à 15 de DM6653 sont définis à 1 : Configuration : 00 à FF (Hex) Rem. Lorsqu’une valeur hors limite est définie, il en résulte les conditions de communication suivante. Dans ce cas, réinitialiser la valeur pour qu’elle soit dans la plage autorisée. Modes communication : Liaison à l’ordinateur Format de communication :Paramètres standard (1 bit de début, 7 bits de données, 2 bits d’arrêt, parité paire, 9 600 bps) Paramètres du port RS-232C Mot Bit Retard de transmission : Non Numéro de station : 00 Lorsque le port RS-232C sert aux communications sans protocole, les paramètres suivants doivent être définis par le périphérique de programmation de DM 6645 à DM 6649 dans le SRM1(-V2). Fonction Config. Configuration du port RS-232C Les sélections suivantes sont effectives après leur transfert vers l’API. DM 6645 00 à 03 Configuration du port 0 : Standard (1 bit de début, 7 bits de données, 2 bits d’arrêt, parité paire, 9 600 bps) 1 : Réglage en DM 6646 04 à 07 Paramètres de contrôle CTS 0 : Désactivé ; 1 : Défini 228 Comme requis Chapitre Fonctions de communication SRM1(-V2) Mot Bit 08 à 11 Fonction Lors de l’utilisation d’une liaison Inter API : Définit les mots de liaison pour une liaison Inter API 0 : LR 00 à LR 15 Non 0 : Désactivé 4-4 Config. 0 Lors de l’utilisation d’une liaison NT 1:N : Définit le numéro de station TOP maximum. 1à7 La liaison NT 1:N est supportée par SRM1-C02-V2 seulement. 12 à 15 Modes communication 0 : Liaison à l’ordinateur ; 1 : Sans protocole ; 2 : Liaison Inter API Esclave ; 3 : Liaison Inter API Maître ; 4 : Liaison entre un NT et un API ; 5 : Liaison NT 1:N 1 (Toutes les autres configurations spécifient un mode Liaison à l’ordinateur, produisent une erreur non fatale et mettent l’AR 1302 sur ON). La liaison NT 1:N est supportée par SRM1-C02-V2 seulement. DM 6646 00 à 07 08 à 15 Débit en Bauds 00 : 1,2K, 01 : 2,4K, 02 : 4,8K, 03 : 9,6K, 04 : 19,2K Format de trame Début Longueur Arrêt Parité 00 : 1 bit 7 bits 1 bit Paire 01 : 1 bit 7 bits 1 bit Impaire 02 : 1 bit 7 bits 1 bit Aucune 03 : 1 bit 7 bits 2 bit Paire 04 : 1 bit 7 bits 2 bit Impaire 05 : 1 bit 7 bits 2 bit Aucune 06 : 1 bit 8 bits 1 bit Paire 07 : 1 bit 8 bits 1 bit Impaire 08 : 1 bit 8 bits 1 bit Aucune 09 : 1 bit 8 bits 2 bit Paire 10 : 1 bit 8 bits 2 bit Impaire 11 : 1 bit 8 bits 2 bit Aucune Délai de transmission (Liaison à l’ordinateur) 0000 à 9999 (BCD) : Défini par unités de 10 ms, par ex., un paramètre de 0001 équivaut à 10 ms Comme requis Comme requis DM 6647 00 à 15 DM 6648 00 à 07 Numéro de station (Liaison à l’ordinateur, effectif lorsque les bits 12 à 15 de DM 6645 sont définis à 0). 00 à 31 (BCD) Comme requis 08 à 11 Activation du code de début (RS-232C, effectif lorsque les bits 12 à 15 de DM 6645 sont définis à 1). 0 : Désactivé ; 1 : Défini Comme requis 12 à 15 Activation du code de fin (RS-232C, effectif lorsque les bits 12 à 15 de DM 6645 sont définis à 1). 0 : Désactivé (nombre d’octets reçus) 1 : Défini (code de fin spécifié) 2 : CR, LF 00 à 07 Code de début (RS-232C) 00 : 256 octets 01 à FF : 1 à 255 octets 08 à 15 Code de fin activé (RS-232C) DM 6649 Comme requis 00 à FF (BIN) Rem. Lorsqu’une valeur hors limite est définie, il en résulte les conditions de communication suivantes. Dans ce cas, réinitialiser la valeur pour qu’elle soit dans la plage autorisée. Modes communication : Liaison à l’ordinateur Format de communication :Paramètres standard (1 bit de début, 7 bits de données, 2 bits d’arrêt, parité paire, 9 600 bps) Retard de transmission : Non Numéro de station : 00 229 Chapitre Fonctions de communication SRM1(-V2) Configuration des données de transmission 4-4 Lorsque des communications sans protocole sont utilisées, TXD(48) sert à envoyer les données et RXD(47) à les recevoir. La quantité maximale de données pouvant être envoyées ou reçues est de 259 octets, y compris les codes de début et de fin. ! Pas de code de début ou de fin : Données (256 octets max.) ! Code de début seulement : ST Données (256 octets max.) ! Code de fin seulement : Données (256 octets max.) ED ! Code de début et de fin : ST Données (256 octets max.) ED ! Code de fin de CR, LF : Données (256 octets max.) CR LF CR LF ! Code de début 00-FF/code de fin CR, LF : ST Rem. Drapeaux de transmission Données (256 octets max.) 1. Les codes de début et de fin sont définis de DM 6648 à DM 6649 et de DM 6653 à DM 6654 dans les paramètres de l’API. 2. Lorsqu’il y a plusieurs codes de début et de fin, la première partie de chacun est prise en compte. 3. Lorsque le code de fin duplique les données de transmission et que celle-ci est interrompue dans son déroulement, utiliser CR ou LF comme code de fin. 4. Les codes de début et de fin ne sont pas sauvegardés. Lors de l’envoi de données à partir du SRM1(--V2), vérifier que le drapeau d’autorisation d’émission est sur ON pour l’exécution de l’instruction TXD(48). Le drapeau d’autorisation d’émission passera sur OFF pendant la transmission des données, puis à nouveau sur ON lorsqu’elle sera terminée. Lorsque le SRM1(-V2) a reçu des données, le drapeau d’autorisation de réception passe à ON. Lorsque l’instruction RXD est exécutée, les données reçues sont écrites dans les mots spécifiés et le drapeau de fin de réception passe sur OFF. Drapeau Drapeau Transmission possible Drapeau Réception terminée Port périphérique Port RS-232C AR 0813 AR 0805 AR 0814 AR 0806 Rem. La durée qui sépare le début de la fin de la réception des données pour le SRM1(--V2) est indiquée ci-après : 230 Chapitre Fonctions de communication SRM1(-V2) 4-4 Début de la réception : Sans code de début : Etat de réception normale Avec code de début : Après réception du code de début. Fin de la réception : A la réception du code de fin, du nombre d’octets spécifié ou de 256 octets. Exemple de programme L’exemple de programme qui suit s’applique aux communications sans protocole réalisées par un port RS-232C avec les instructions TXD(48) et RXD(47). Si AR 0805 (drapeau d’autorisation d’émission) est sur ON lorsque 00100 est sur ON, les données de DM0100 à DM0104 sont envoyées, des valeurs les plus élevées aux valeurs les plus basses. Lorsque AR 0806 (drapeau d’autorisation de réception) passe à ON, 256 octets de données reçues sont lus et écrits dans DM 0200 des valeurs les plus élevées aux valeurs les plus basses. 00100 DIFU(13) Début des communications sans protocole 00101 00100 AR0805 @TXD DM0100 #0000 #0010 AR0806 Premier mot contenant les données à envoyer. Utiliser le port RS-232C, transmettre les données des octets les plus à gauche aux octets les plus à droite. 10 octets transmis @RXD DM0200 #0000 256 Premier mot pour enregistrer les données reçues. Utiliser le port RS-232C, transmettre les données des octets les plus à gauche aux octets les plus à droite. 256 octets transmis 4-4-3 Communications entre un NT et un API En utilisant la communication entre un NT et un API, l’API SRM1(--V2) peut être connecté au terminal programmable (interface de communication NT). Le port RS-232C peut être utilisé pour la communication entre un NT et un API. SRM1 Terminal Opérateur Programmable La communication entre un NT et un API n’est possible qu’avec les API SRM1-C02-V1/-V2, qui sont dotés d’un port RS-232C. 231 Chapitre Fonctions de communication SRM1(-V2) Les paramètres concernant les communications entre un NT et un API doivent être définis comme dans le tableau suivant : Setup de l’API Mot DM 6645 4-4 Bit Fonction Config. port1 00 à 03 Configuration du 00 : Standard (1 bit de début, 7 bits de données, 2 bits d’arrêt, parité paire, 9 600 bps) 01 : Réglage en DM 6646 00 ou 01 04 à 07 Paramètres de contrôle CTS 0 : Désactivé 1 : Défini 0 ou 1 08 à 11 Lors de l’utilisation d’une liaison Inter API : Définit les mots de liaison pour une liaison Inter API. 0 : LR 00 à LR 15 Non 0 : Désactivé Tous Lors de l’utilisation d’une liaison NT 1:N : Définit le numéro de station TOP maximum. 1à7 12 à 15 La liaison NT 1:N est supportée SRM1-C02-V2 seulement. Modes communication1 0 : Liaison à l’ordinateur ; 1 : Sans protocole ; 2 : Liaison Inter API Esclave ; 3 : Liaison Inter API Maître ; 4 : Liaison entre un NT et un API ; 5 : Liaison NT 1:N 4 La liaison NT 1:N est supportée SRM1-C02-V2 seulement. Rem. 1. En cas d’utilisation d’un paramètre incorrect, une erreur non fatale se produit, AR 1302 sera activé et le paramètre par défaut (0 ou 00) sera utilisé. 2. Pour de plus amples informations concernant les paramètres de communication NT d’un autre API OMRON, se reporter au Manuel de programmation de celui-ci. 3. Lorsqu’une valeur hors limite est définie, il en résulte les conditions de communication suivante. Dans ce cas, réinitialiser la valeur pour qu’elle soit dans la plage autorisée. Modes communication : Liaison à l’ordinateur Format de communication :Paramètres standard (1 bit de début, 7 bits de données, 2 bits d’arrêt, parité paire, 9 600 bps) Retard de transmission : Non Numéro de station : 00 4-4-4 Communications NT 1 à N La communication NT 1:N permet de connecter un API SRM1(-V2) à un maximum 8 terminaux opérateurs programmables (TOP) OMRON et l’accès direct assure des communications à haut débit. La communication NT 1:N peut être utilisée avec le port RS-232C. SRM1 TOP OMRON La communication NT 1:N n’est possible qu’avec les API SRM1-C02-V2, qui sont dotés d’un port RS-232C. 232 Chapitre Fonctions de communication SRM1(-V2) 4-4 Connexion des câbles Se reporter au Manuel de programmation des unités de commande maître SRM1 pour de plus amples informations concernant la connexion des câbles dans une communication NT 1:N. Setup de l’API Lorsque le port RS-232C est utilisé pour une communication NT 1:N, définir comme suit les paramètres de l’API à partir d’un périphérique de programmation. Mot Bit Fonction DM 6645 00 à 03 Configuration du port1 00 : Standard (1 bit de début, 7 bits de données, 2 bits d’arrêt, parité paire, 9 600 bps) 01 : Réglage en DM 6646 00 ou 01 Config. 04 à 07 Paramètres de contrôle CTS 0 : Désactivé 1 : Défini 0 ou 1 08 à 11 Lors de l’utilisation d’une liaison Inter API : Définit les mots de liaison pour une liaison Inter API. 0 : LR 00 à LR 15 Non 0 : Désactivé 1à7 Lors de l’utilisation d’une liaison NT 1:N : Définit le numéro de station TOP maximum. 1à7 12 à 15 La liaison NT 1:N est supportée SRM1-C02-V2 seulement. Modes communication1 0 : Liaison à l’ordinateur ; 1 : Sans protocole ; 2 : Liaison Inter API Esclave ; 3 : Liaison Inter API Maître ; 4 : Liaison entre un NT et un API ; 5 : Liaison NT 1:N 5 La liaison NT 1:N est supportée SRM1-C02-V2 seulement. Rem. 1. En cas d’utilisation d’un paramètre incorrect, une erreur non fatale se produit, AR 1302 sera activé et le paramètre par défaut (0 ou 00) sera utilisé. 2. Pour de plus amples informations concernant les paramètres de communication NT 1:N des terminaux opérateurs programmables OMRON, se reporter au Manuel de programmation du terminal opérateur programmable. 3. Lorsqu’une valeur hors limite est définie, il en résulte les conditions de communication suivante. Dans ce cas, réinitialiser la valeur pour qu’elle soit dans la plage autorisée. Modes communication : Liaison à l’ordinateur Format de communication :Paramètres standard (1 bit de début, 7 bits de données, 2 bits d’arrêt, parité paire, 9 600 bps) Retard de transmission : Non Numéro de station : 00 233 Chapitre Fonctions de communication SRM1(-V2) 4-4 4-4-5 Communications Inter API Dans une communication Inter API, un SRM1 est relié à un autre API SRM1, CPM1/CPM1A, CQM1, C200HS ou C200HX/HG/HE par un câble RS-232C. L’un des API sert de maître et l’autre d’esclave. La communication Inter API peut connecter jusqu’à 256 bits (LR 0000 à LR 1515) dans les deux API. Le schéma suivant illustre une communication Inter API entre deux SRM1(-V2) : Communications Inter API du SRM1(-V2) SRM1 SRM1 Port RS-232C Port RS-232C Les mots utilisés pour la communication Inter API se trouvent ci-après : Maître Esclave LR00 Données d’écriture Données de lecture LR07 LR08 LR15 Limitations des communications Inter API avec un SRM1(-V2) 234 LR00 Zone d’écriture Zone de lecture Zone de lecture Zone d’écriture LR07 LR08 LR15 Données de lecture Données d’écriture Une communication Inter API n’est possible qu’avec les API SRM1-C02-V1/V2, qui sont dotés d’un port RS-232C. Seuls les 16 mots LR de LR 00 à LR 15 peuvent être connectés dans le SRM1, c’est pourquoi il ne faut utiliser que ces 16 mots dans le CQM1 ou le C200HS lorsqu’une communication Inter API avec l’un de ces API est réalisée. Une communication Inter API est impossible avec un API SRM1 utilisant les mots LR 16 à LR 63 dans le CQM1 ou le C200HS. Chapitre Fonctions de communication SRM1(-V2) 4-4 Connexion des câbles Se reporter au Manuel de programmation des unités de commande maîtres SRM1 pour de plus amples informations concernant la connexion des câbles dans une communication Inter API. Setup de l’API Lors de l’utilisation d’un SRM1(-V2) dans une communication Inter API, définir comme suit les paramètres de l’API à partir d’un périphérique de programmation. Mot Bit DM 6645 00 à 03 04 à 07 08 à 11 12 à 15 Fonction Configuration du port1 00 : Standard (1 bit de début, 7 bits de données, 2 bits d’arrêt, parité paire, 9 600 bps) 01 : Réglage en DM 6651 Paramètres de contrôle CTS 0 : Désactivé 1 : Défini Lors de l’utilisation d’une liaison Inter API : Définit les mots de liaison pour une liaison Inter API. 0 : LR 00 à LR 15 Non 0 : Désactivé Lors de l’utilisation d’une liaison NT 1:N : Définit le numéro de station TOP maximum. 1à7 Modes communication1 0 : Liaison à l’ordinateur ; 1 : Sans protocole ; 2 : Liaison Inter API Esclave ; 3 : Liaison Inter API Maître ; 4 : Liaison entre un NT et un API ; 5 : Liaison NT 1:N Rem. Config. Config. Maître Esclave 00 ou 01 00 ou 01 0 0 0 0 3 2 1. En cas d’utilisation d’un paramètre incorrect, une erreur non fatale se produit, AR 1302 sera activé et le paramètre par défaut (0 ou 00) sera utilisé. 2. Pour de plus amples informations concernant les paramètres de communication Inter API d’un autre API OMRON, se reporter au Manuel de programmation de celui-ci. 3. Lorsqu’une valeur hors limite est définie, il en résulte les conditions de communication suivante. Dans ce cas, réinitialiser la valeur pour qu’elle soit dans la plage autorisée. Modes communication : Liaison à l’ordinateur Format de communication :Paramètres standard (1 bit de début, 7 bits de données, 2 bits d’arrêt, parité paire, 9 600 bps) Retard de transmission : Non Numéro de station : 00 235 Chapitre Commandes de communication à l’ordinateur Cet exemple illustre des programmes à contacts qui copient l’état de IR 000 dans chaque SRM1 vers IR 200 de l’autre SRM1. Exemple de programme Programmation dans le Maître Programmation dans l’Esclave 25313 (Toujours ON) 25313 (Toujours ON) MOV(21) MOV(21) 000 000 LR00 LR08 MOV(21) LR00 IR 000 Ecriture LR07 LR08 IR 200 Lecture LR15 4-5 4-5 MOV(21) LR08 LR00 200 200 Zone d’écriture Zone de lecture Zone de lecture Zone d’écriture LR00 Lecture IR 200 Ecriture IR 000 LR07 LR08 LR15 Commandes de communication à l’ordinateur Ce chapitre décrit les commandes envoyées à l’ordinateur vers l’API. 4-5-1 LIRE ZONE IR/SR ---- RR Lit le contenu des nombres spécifiés de mots IR et SR, en commençant par le mot spécifié. Format de commande @ x 101 x 100 N_ de station R R Code titre x 103 x 102 x 101 x 100 x 103 x 102 x 101 x 100 Début de mot* Nombre de mots (0000 à 0256) : FCS " Caractère d’arrêt Rem. *Mot de début : 0000 à 0049 et 0200 à 0255 dans les API CPM2A/CPM2C, 0000 à 0019 et 0200 à 0255 dans les API CPM1/CPM1A/SRM1(-V2). (une réponse “0000” sera retournée pour les mots IR et SR qui n’existent pas). Un code de fin de 00 indique une fin normale. Format de réponse @ x 101 x 100 N_ de station R R Code titre x 161 x 160 x 163 x 162 x 161 x 160 Code de fin Données lues (1 mot) : FCS " Caractère d’arrêt Données lues (pour nombre de mots lus) Rem. Paramètres 236 1. Les mots 0050 à 0199 ne peuvent être spécifiés dans les API CPM2A/ CPM2C et les mots 0020 à 0199 ne peuvent être spécifiés dans les API CPM1/CPM1A/SRM1(-V2). En cas de tentative de lecture de n’importe lequel de ces mots, une réponse 0000 est retournée. 2. La réponse sera fragmentée lors de la lecture de plus de 30 mots de données. Lecture des données (réponse) Le contenu du nombre de mots spécifié dans la commande est retourné comme réponse sous forme hexadécimale. Les mots sont retournés dans l’ordre, en commançant par le mot de début spécifié. Chapitre Commandes de communication à l’ordinateur 4-5 4-5-2 LIRE ZONE LR ---- RL Lit le contenu du nombre spécifié de mots LR, en commençant par le mot de début spécifié. Format de commande @ x 101 x 100 N_ de station R L Début de mot1 Code titre FCS " Caractère de fin Un code de fin de 00 indique une fin normale. Format de réponse x 101 x 100 Nombre de mots2 : 1. Mot de début : 0000 à 0015 2. Nombre de mots : 0001 à 0016 Rem. @ x 103 x 102 x 101 x 100 x 103 x 102 x 101 x 100 R N_ de station L Code de fin Code titre Paramètres x 161 x 160 x 163 x 162 x 161 x 160 Données lues (1 mot) : FCS " Caractère de fin Données lues (pour nombre de mots lus) Lecture de données (réponse) Le contenu du nombre de mots spécifié dans la commande est retourné comme réponse sous forme hexadécimale. Les mots sont retournés dans l’ordre, en commançant par le mot de début spécifié. 4-5-3 LIRE ZONE HR ---- RH Lit le contenu du nombre spécifié de mots HR, en commençant par le mot de début spécifié. Format de commande @ x 101 x 100 N_ de station R H N_ de station Nombre de mots2 : FCS " Caractère de fin 1. Mot de début : 0000 à 0019 2. Nombre de mots : 0001 à 0020 Un code de fin de 00 indique une fin normale. Format de réponse x 101 x 100 Début de mot1 Code titre Rem. @ x 103 x 102 x 101 x 100 x 103 x 102 x 101 x 100 R H Code titre Paramètres x 161 x 160 x 163 x 162 x 161 x 160 Code de fin Données lues (1 mot) Données lues (pour nombre de mots lus) : FCS " Caractère d’arrêt Lecture de données (réponse) Le contenu du nombre de mots spécifié dans la commande est retourné comme réponse sous forme hexadécimale. Les mots sont retournés dans l’ordre, en commançant par le mot de début spécifié. 4-5-4 LIRE PV ---- RC Lit le contenu du nombre spécifié de PV (valeurs en cours) de temporisations/ compteurs (T/C), en commençant par la temporisation/compteur de début. 237 Chapitre Commandes de communication à l’ordinateur 4-5 Format de commande @ x 101 x 100 N_ de station R C Code titre Début du temporisation/ compteur1 Nombre de temporisations/compteurs2 : FCS " Caractère d’arrêt 1. T/C de début : 0000 à 0255 dans les API CPM2A/CPM2C, 0000 à 0127 dans les API CPM1/CPM1A/SRM1(-V2) 2. Nb de T/C : 0001 à 0256 dans les API CPM2A/CPM2C, 0001 à 0128 dans les API CPM1/CPM1A/SRM1(-V2) Rem. Un code de fin de 00 indique une fin normale Format de réponse @ x 103 x 102 x 101 x 100 x 103 x 102 x 101 x 100 x 101 x 100 R N_ de station C x 161 x 160 x 103 x 102 x 101 x 100 Code titre Code de fin : FCS Données lues (1 mot) Données lues (pour nombre de mots lus) " Caractère d’arrêt La réponse sera fragmentée lors de la lecture de plus de 30 mots de données. Paramètres Lecture de données (réponse) Le nombre de valeurs en cours (PV) spécifié dans la commande est retourné comme réponse sous forme hexadécimale. Les PV sont retournées dans l’ordre, en commançant par la temporisation/compteur de début spécifié. 4-5-5 LIRE ETAT TC ---- RG Lit l’état des drapeaux de fin du nombre spécifié de temporisations/compteurs, en commançant par la temporisation/compteur de début spécifié. Format de commande @ x 101 x 100 N_ de station R G x 103 x 102 x 101 x 100 x 103 x 102 x 101 x 100 Code titre Rem. Début du temporisation/ compteur1 FCS " Caractère d’arrêt 1. T/C de début : 0000 à 0255 dans les API CPM2A/CPM2C, 0000 à 0127 dans les API CPM1/CPM1A/SRM1(-V2) 2. Nb de T/C : Format de réponse Nombre de temporisations/compteurs2 : 0001 à 0256 dans les API CPM2A/CPM2C, 0001 à 0128 dans les API CPM1/CPM1A/SRM1(-V2) Un code de fin de 00 indique une fin normale. @ x 101 x 100 N_ de station R Code titre G x 161 x 160 ON/ OFF Code de fin FCS Données lues (1 temporisation/compteur) : " Caractère d’arrêt Données lues (pour nombre de TC lus) La réponse sera fragmentée lors de la lecture de plus de 123 temporisations/ compteurs. Paramètres 238 Lecture de données (réponse) L’état du nombre de drapeaux de fin spécifié dans la commande est retourné comme réponse. “1” indique que le drapeau de fin est sur ON. Chapitre Commandes de communication à l’ordinateur 4-5 4-5-6 LIRE ZONE DM ---- RD Lit le contenu du nombre spécifié de mots DM, en commençant par le mot de début spécifié. Format de commande @ x 101 x 100 N_ de station R D Code titre x 103 x 102 x 101 x 100 x 103 x 102 x 101 x 100 Début de mot* Nombre de mots (0001 à 6656) : FCS " Caractère d’arrêt Rem. Mot de début : DM 0000 à DM 1023 et DM 6144 à DM 6655 dans les API CPM1/CPM1A DM 0000 à DM 2047 et DM 6144 à DM 6655 dans les API CPM2A/CPM2C/ SRM1(-V2) (une réponse “0000” sera retournée pour les mots DM qui n’existent pas). Un code de fin de 00 indique une fin normale. Format de réponse @ x 101 x 100 N_ de station R D Code titre Rem. x 161 x 160 x 163 x 162 x 161 x 160 Code de fin Données lues (1 mot) : FCS Données lues (pour nombre de mots lus) " Caractère d’arrêt 1. Les mots DM 1024 à DM 6143 dans les API CPM1/CPM1A et les mots DM 2048 à DM 6143 dans les API CPM2A/CPM2C/SRM1(-V2) ne peuvent pas être spécifiés. En cas de tentative de lecture de n’importe lequel de ces mots, une réponse 0000 est retournée. 2. La réponse sera fragmentée lors de la lecture de plus de 30 mots de données. Paramètres Lecture de données (réponse) Le contenu du nombre de mots spécifié dans la commande est retourné comme réponse sous forme hexadécimale. Les mots sont retournés dans l’ordre, en commençant par le mot de début spécifié. Rem. Etre vigilant lors de la configuration de la zone DM, car elle dépend du modèle de l’UC. 4-5-7 LIRE ZONE AR ---- RJ Lit le contenu du nombre spécifié de mots AR, en commençant par le mot de début spécifié. Format de commande @ x 101 x 100 N_ de station R J Code titre Rem. x 103 x 102 x 101 x 100 x 103 x 102 x 101 x 100 Début du mot1 Nombre de mots2 : FCS " Caractère d’arrêt 1. Mot de début : 0000 à 0023 dans les API CPM2A/CPM2C, 0000 à 0015 dans les API CPM1/CPM1A/SRM1(-V2) 2. Nombre de mots : 0001 à 0024 dans les API CPM2A/CPM2C, 0001 à 0016 dans les API CPM1/CPM1A/SRM1(-V2) 239 Chapitre Commandes de communication à l’ordinateur Un code de fin de 00 indique une fin normale. Format de réponse @ 4-5 x 101 x 100 N_ de station R x 161 x 160 x 163 x 162 x 161 x 160 J Code titre Paramètres Code de fin : Données lues (1 mot) FCS Données lues (pour nombre de mots lus) " Caractère d’arrêt Lecture de données (réponse) Le contenu du nombre de mots spécifié dans la commande est retourné comme réponse sous forme hexadécimale. Les mots sont retournés dans l’ordre, en commençant par le mot de début spécifié. 4-5-8 ECRIRE ZONE IR/SR ---- WR Ecrit les données dans les zones IR et SR, en commançant par le mot de début spécifié. L’écriture s’effectue mot à mot Format de commande @ x 101 x 100 N_ de station W R Code titre Rem. x 103 x 102 x 101 x 100 x 163 x 162 x 161 x 160 Début de mot* : Caractère d’arrêt FCS Données lues (1 mot) Données lues (pour nombre de mots à écrire) " 1. Mot de début : 0000 à 0049 et 0200 à 0252 dans les API CPM2A/CPM2C, 0000 à 0019 et 0200 à 0252 dans les API CPM1/CPM1A/SRM1(-V2). 2. Fragmenter la commande lors de l’écriture de plus de 30 mots de données. Format de réponse Un code de fin de 00 indique une fin normale. @ x 101 x 100 N_ de station W Code titre R x 161 x 160 Code fin de : FCS " Caractère d’arrêt Rem. Les 0050 à 0199 ne peuvent être spécifiés dans les API CPM2A/CPM2C et les mots 0020 à 0199 ne peuvent être spécifiés dans les API CPM1/CPM1A/ SRM1(-V2). En cas de tentative d’écriture de l’un de ces mots, l’opération d’écriture ne sera pas exécutée et la fin normale de la commande interviendra. Paramètres Ecriture des données (commande) Indiquer dans l’ordre le contenu du nombre de mots à écrire dans la zone IR ou SR en hexadécimal, en commençant par le mot de début spécifié. Rem. Si les données spécifiées en écriture sont hors limite, une erreur se produira et l’opération d’écriture ne sera pas exécutée. Si, par exemple, 252 est indiqué comme mot de début à écrire et que deux mots de données sont spécifiés, 253 deviendra le dernier mot des données d’écriture et la commande ne sera pas exécutée du fait que SR 253 se trouve au-delà de la limite d’écriture. 240 Chapitre Commandes de communication à l’ordinateur 4-5 4-5-9 ECRIRE ZONE LR ---- WL Ecrit les données dans la zone LR, en commençant par le mot de début spécifié. L’écriture s’effectue mot à mot. Format de commande @ x 101 x 100 W N_ de station L Code titre x 103 x 102 x 101 x 100 x 163 x 162 x 161 x 160 Début de mot* : Données écrites (1 mot) FCS " Caractère d’arrêt Données écrites (pour nombre de mots à écrire) Rem. Mot de début : 0000 à 0015 Un code de fin de 00 indique une fin normale. Format de réponse @ x 101 x 100 W N_ de station Paramètres L Code tire x 161 x 160 Code de fin : FCS " Caractère d’arrêt Ecriture des données (commande) Indiquer dans l’ordre le contenu du nombre de mots à écrire dans la zone LR en hexadécimal, en commençant par le mot de début spécifié. Rem. Si les données spécifiées en écriture sont hors limite, une erreur se produira et l’opération d’écriture ne sera pas exécutée. Si, par exemple, 12 est indiqué comme mot de début à écrire et que cinq mots de données sont spécifiés, 16 deviendra le dernier mot de données d’écriture et la commande ne sera pas exécutée du fait que LR 16 se trouve au-delà de la limite. 4-5-10 ECRIRE ZONE HR ---- WH Ecrit les données dans la zone HR, en commençant par le mot de début spécifié. L’écriture s’effectue mot à mot. Format de commande @ x 101 x 100 N_ de station W H Code titre x 103 x 102 x 101 x 100 x 163 x 162 x 161 x 160 Début de mot* " : FCS Données écrites (1 mot) Caractère d’arrêt Données écrites (pour nombre de mots à écrire) Rem. Mot de début : 0000 à 0019 Format de réponse Un code de fin de 00 indique une fin normale. @ x 101 x 100 N_ de station Paramètres W H x 161 x 160 Code titre Code de fin : FCS " Caractère d’arrêt Ecriture des données (commande) Indiquer dans l’ordre le contenu du nombre de mots à écrire dans la zone HR en hexadécimal, en commençant par le mot de début spécifié. Rem. Si les données spécifiées en écriture sont hors limite, une erreur se produira et l’opération d’écriture ne sera pas exécutée. Si, par exemple, 18 est indiqué 241 Chapitre Commandes de communication à l’ordinateur 4-5 comme mot de début à écrire et que trois mots de données sont précisés, alors 20 deviendra le dernier mot de données d’écriture et la commande ne sera pas exécutée du fait que LR 20 se trouve au-delà de la limite. 4-5-11 ECRIRE PV ---- WC Ecrit les PV (valeurs en cours) de temporisations/compteurs en commençant par la temporisation/compteur de début. Format de commande @ x 101 x 100 N_ de station W x 103 x 102 x 101 x 100 x 103 x 102 x 101 x 100 C Code titre Début de temporisation/ compteur* : Données écrites (1 temporisation/ compteur) Données écrites (pour nombre de PV à écrire) FCS " Caractère d’arrêt 1. T/C de début : 0000 à 0255 dans les API CPM2A/CPM2C, 0000 à 0127dans les API CPM1/ CPM1A/SRM1(-V2). 2. Fragmenter la commande lors de l’écriture de plus de 29 mots de données. Rem. Un code de fin de 00 indique une fin normale. Format de réponse @ x 101 x 100 N_ de station Paramètres W C x 161 x 160 Code titre Code de fin " : FCS Caractère d’arrêt Ecriture des données (commande) Spécifier en format décimal (BCD) les valeurs en cours du nombre de temporisations/compteurs, en commençant par la temporisation/compteur de début. 1. Lorsque cette commande est utilisée pour l’écriture de données de la zone PV, les drapeaux de fin des temporisations/compteurs qui sont écrits sont sur OFF. 2. Si les données spécifiées en écriture sont hors limite, une erreur se produira et l’opération d’écriture ne sera pas exécutée. Si, par exemple, 126 est indiqué comme mot de début à écrire sur un API CPM1 et que trois mots de données sont précisés, alors 128 deviendra le dernier mot de données d’écriture et la commande ne sera pas exécutée du fait que TC 128 se trouve au-delà de la limite. Rem. 4-5-12 ECRIRE ETAT TC ---- WG Ecrit l’état des drapeaux de fin des horloges et des compteurs dans la zone TC, en commençant par la temporisation/compteur de début (nombre). L’écriture s’effectue nombre après nombre. Format de commande @ x 101 x 100 W N_ de station G Code titre x 103 x 102 x 101 x 100 ON/ OFF FCS Début du temporisation/ Données écrites compteur* (1 temporisation/compteur) : " Caractère d’arrêt Données écrites (pour nombre de TC à écrire) Rem. 242 1. T/C de début : 0000 à 0255 dans les API CPM2A/CPM2C, 0000 à 0127 dans les API CPM1/ CPM1A/SRM1(-V2). 2. Fragmenter la commande lors de l’écriture de plus de 118 temporisations/ compteurs. Chapitre Commandes de communication à l’ordinateur 4-5 Un code de fin de 00 indique une fin normale. Format de réponse @ x 101 x 100 N_ de station Paramètres W G x 161 x 160 Code titre Code de fin : FCS " Caractère d’arrêt Ecriture des données (commande) Spécifier l’état des drapeaux de fin, pour les nombres des temporisations/compteurs devant être écrits, dans l’ordre (à partir du mot de début) en précisant ON (c.--à--d. “1”) ou OFF (c.--à--d. “0”). Lorsqu’un drapeau de fin est sur ON, il indique que l’horloge ou le compteur est en fonctionnement. Rem. Si les données spécifiées en écriture sont hors limite, une erreur se produira et l’opération d’écriture ne sera pas exécutée. Si, par exemple, 126 est indiqué comme mot de début à écrire sur un API CMP1 et que trois mots de données sont précisés, alors 128 deviendra le dernier mot des données d’écriture et la commande ne sera pas exécutée du fait que TC 128 se trouve au-delà de la limite. 4-5-13 ECRIRE ZONE DM ---- WD Ecrit les données dans la zone DM, en commençant par le mot de début spécifié. L’écriture s’effectue mot à mot. Format de commande @ x 101 x 100 N_ de station W D Code titre Rem. x 103 x 102 x 101 x 100 x 163 x 162 x 161 x 160 Début du mot* : Données écrites (1 mot) " Caractère d’arrêt FCS Données écrites (pour nombre de mots à écrire) 1. Mot de début : DM 0000 à DM 1023 et DM 6144 à DM 6655 dans les API CPM1/CPM1A DM 0000 à DM 2047 et DM 6144 à DM 6655 dans les API CPM2A/CPM2C/ SRM1(-V2). 2. Fragmenter la commande lors de l’écriture de plus de 29 mots de données. Un code de fin de 00 indique une fin normale. Format de réponse @ x 101 x 100 N_ de station W Code titre D x 161 x 160 Code de fin : FCS " Caractère d’arrêt Rem. Les mots DM 1024 à DM 6143 dans les API CPM1/CPM1A et les mots DM 2048 à DM 6143 dans les API CPM2A/CPM2C/SRM1(-V2) ne peuvent être spécifiés. En cas de tentative d’écriture de l’un de ces mots, l’opération d’écriture ne sera pas exécutée et la fin normale de la commande interviendra Paramètres Ecriture des données (commande) Indiquer dans l’ordre le contenu du nombre de mots à écrire dans la zone DM en hexadécimal, en commençant par le mot de début spécifié. Rem. 1. Si les données spécifiées en écriture sont hors limite, une erreur se produira et l’opération d’écriture ne sera pas exécutée. Si, par exemple, 1022 est indiqué comme mot de début à écrire sur un API CMP1 et que trois mots de données sont précisés, alors 1024 deviendra le dernier mot des données 243 Chapitre Commandes de communication à l’ordinateur 4-5 d’écriture et la commande ne sera pas exécutée du fait que DM 1024 se trouve au-delà de la limite. 2. Etre vigilant lors de la configuration de la zone DM, car elle dépend du modèle de l’UC 4-5-14 ECRIRE ZONE AR ---- WJ Ecrit les données dans la zone AR, en commençant par le mot de début spécifié. L’écriture s’effectue mot à mot. Format de commande @ x 101 x 100 W N_ de station J x 103 x 102 x 101 x 100 x 163 x 162 x 161 x 160 Code titre Début de mot* : Données écrites (1 mot) " Caractère d’arrêt FCS Données écrites (pour nombre de mots à écrire) Rem. Mot de début : 0000 à 0023 dans les API CPM2A/CPM2C, 0000 à 0015 dans les API CPM1/CPM1A et SRM1(-V2). Un code de fin de 00 indique une fin normale. Format de réponse @ x 101 x 100 N_ de station Paramètres W J x 161 x 160 Code titre Code de fin :: FCS " Caractère d’arrêt Ecriture des données (commande) Indiquer dans l’ordre le contenu du nombre de mots à écrire dans la zone AR en hexadécimal, en commençant par le mot de début spécifié. Rem. Si les données spécifiées en écriture sont hors limite, une erreur se produira et l’opération d’écriture ne sera pas exécutée. Si, par exemple, 12 est indiqué comme mot de début à écrire sur un API CMP1 et que cinq mots de données sont précisés, alors 16 deviendra le dernier mot des données d’écriture et la commande ne sera pas exécutée du fait que AR 16 se trouve au-delà de la limite. 4-5-15 LIRE 1 SV ---- R# Recherche la première instance d’une instruction d’horloge ou de compteur (TIM, TIMH(15), TIML(----), TMHH(----), CNT ou CNTR(12)) avec le nombre de TC spécifié dans le programme utilisateur et lit la PV, considérée comme une constante. La SV qui est lue est un nombre décimal (BCD) à 4 digits. Le programme est scruté depuis le début, de sorte que la réponse puisse demander jusqu’à 10 secondes. Format de commande @ x 101 x 100 N_ de station R # Code titre OP1 OP2 OP3 OP4 x 103 x 102 x 101 x 100 Nom Nombre de TC* : FCS " Caractère d’arrêt Rem. Nombre de TC : 0000 à 0255 dans les API CPM2A/CPM2C et 0000 à 0127 dans les API CPM1/CPM1A/SRM1(-V2). 244 Chapitre Commandes de communication à l’ordinateur 4-5 Format de réponse @ x 101 x 100 R N_ de station # x 161 x 160 x 103 x 102 x 101 x 100 Code titre Code de fin Paramètres : FCS SV " Caractère d’arrêt Nom, nombre de TC (commande) Spécifier l’instruction de lecture de la SV dans “Nom”. 4 caractères sont proposés. Dans “nombre de TC”, spécifier le nombre de temporisations/compteurs utilisés dans l’instruction Dénomination OP1 OP2 Dénomination de l’instruction OP3 OP4 T I M (Espace) TIMER T I M H HIGH-SPEED TIMER T I M L LONG TIMER T M H H VERY HIGH-SPEED TIMER C N T (Espace) COUNTER C N T R REVERSIBLE COUNTER SV (réponse) La constante SV est retournée. 1. L’instruction spécifiée dans “Non” doit être contenue dans quatre caractères. Rem. 2. Si la même instruction est utilisée plusieurs fois dans un programme, seule la première sera lue. 3. N’utiliser cette commande que lorsqu’une constante SV a été définie. 4. Le code de fin de réponse indiquera une erreur (16) si la SV n’a pas été entrée comme une constante. 4-5-16 LIRE 2 SV ---- R$ Lit la constante SV ou l’adresse du mot où est enregistrée la SV. La SV qui est lue est un nombre décimal (BCD) à 4 digits écrit comme second opérande de l’instruction TIM, TIMH(15), TIML(----), TMHH(----), CNT ou CNTR(12) à l’adresse spécifiée du programme utilisateur. Ceci n’est possible que si la taille du programme n’excède pas 10K. Format de commande @ x 101 x 100 N_ de station R $ x 103 x 102 x 101 x 100 OP1 OP2 OP3 OP4 x 103 x 102 x 101 x 100 Code titre Adresse programme Nom Nombre de TC* : FCS " Caractère d’arrêt Rem. Nombre de TC : 0000 à 0255 dans les API CPM2A/CPM2C et 0000 à 0127 dans les API CPM1/CPM1A/SRM1(-V2). Un code de fin de 00 indique une fin normale. Format de réponse @ x 101 x 100 N_ de station R Code titre $ x 161 x 160 OP1 OP2 OP3 OP4 x 103 x 102 x 101 x 100 Code de fin Opérande SV : FCS " Caractère d’arrêt 245 Chapitre Commandes de communication à l’ordinateur Paramètres 4-5 Nom, nombre de TC (commande) Spécifier l’instruction de lecture de la SV dans “Nom”. 4 caractères sont proposés. Dans “nombre de TC”, spécifier le nombre de temporisations/compteurs utilisés dans l’instruction. Dénomination OP1 OP2 Dénomination de l’instruction OP3 OP4 T I M (Espace) TIMER T I M H HIGH-SPEED TIMER T I M L LONG TIMER T M H H VERY HIGH-SPEED TIMER C N T (Espace) COUNTER C N T R REVERSIBLE COUNTER Opérande, SV (réponse) Le nom qui indique la classification SV est retourné à “Opérande”, et soit l’adresse du mot dans laquelle est enregistrée la SV, soit la constante SV est retournée à “SV”. Opérande OP1 OP2 Constante ou adresse de mot Classification OP3 OP4 C I O (Espace) IR ou SR L R (Espace) (Espace) LR API CPM2A/ CPM2C 0000 à 0049 0200 à 0255 0000 à 0015 API CPM1 H R (Espace) (Espace) HR 0000 à 0019 0000 à 0019 A R (Espace) (Espace) AR 0000 à 0023 0000 à 0015 D M (Espace) (Espace) DM 0000 à 6655 0000 à 6655 D M : (Espace) DM (indirect) 0000 à 6655 0000 à 6655 C O N (Espace) Constantee 0000 à 9999 0000 à 9999 0000 à 0019 0200 à 0255 0000 à 0015 Rem. Le nom de l’instruction spécifiée dans “Nom” doit contenir quatre caractères. Remplir tous les vides avec des espaces pour obtenir un total de quatre caractères. 4-5-17 CHANGER 1 SV ---- W# Recherche la première instance d’une instruction (TIM, TIMH(15), TIML(----), TMHH(----), CNT ou CNTR(12)) spécifiée dans le programme utilisateur et remplace la SV par la nouvelle constante SV spécifiée dans le second mot de l’instruction. La recherche commençant au début du programme, l’obtention d’une réponse peut demander jusqu’à 10 secondes. Format de commande @ x 101 x 100 N_ de station W Code titre # OP1 OP2 OP3 OP4 x 103 x 102 x 101 x 100 x 103 x 102 x 101 x 100 Nom Nombre de TC* SV (0000 à 9999) : FCS " Caractère d’arrêt Rem. Nombre de TC : 0000 à 0255 dans les API CPM2A/CPM2C et 0000 à 0127 dans les API CPM1/CPM1A/SRM1(-V2). Format de réponse Un code de fin de 00 indique une fin normale. @ x 101 x 100 N_ de station 246 W Code titre # x 161 x 160 Code de fin : FCS " Caractère d’arrêt Chapitre Commandes de communication à l’ordinateur Paramètres 4-5 Nom, nombre de TC (commande) Dans “Nom”, spécifier le nom de l’instruction, en quatre caractètres, pour modifier la SV. Dans “nombre de TC”, spécifier le nombre de temporisations/compteurs utilisés dans l’instruction. Dénomination de l’instruction OP1 OP2 OP3 Classification OP4 T I M (Espace) TIMER T I M H HIGH-SPEED TIMER T I M L LONG TIMER T M H H VERY HIGH-SPEED TIMER C N T (Espace) COUNTER C N T R REVERSIBLE COUNTER 4-5-18 CHANGER 2 SV ---- W$ Modifie le contenu du second mot de l’instruction TIM, TIMH(15), TIML(----), TMHH(----), CNT ou CNTR(12) dans l’adresse spécifiée du programme utilisateur. Ceci n’est possible que si la taille du programme n’excède pas 10K. Format de commande @ x 101 x 100 N_ de station W Code titre $ x 103 x 102 x 101 x 100 OP1 OP2 OP3 OP4 Adresse programme x 103 x 102 x 101 x 100 Nom Nombre de TC OP1 OP2 OP3 OP4 x 103 x 102 x 101 x 100 Opérande SV : FCS " Caractère d’arrêt Rem. Nombre de TC : 0000 à 0255 dans les API CPM2A/CPM2C et 0000 à 0127 dans les API CPM1/CPM1A/SRM1(-V2). Format de réponse Un code de fin de 00 indique une fin normale. @ x 101 x 100 $ Code titre N_ de station Paramètres W x 161 x 160 Code de fin : FCS " Caractère d’arrêt Nom, nombre de TC (commande) Dans “Nom”, spécifier le nom de l’instruction, en quatre caractères, pour modifier la SV. Dans “nombre de TC”, spécifier le nombre de temporisations/compteurs utilisés dans l’instruction. Dénomination de l’instruction OP1 OP2 OP3 Classification OP4 T I M (Espace) TIMER T I M H HIGH-SPEED TIMER T I M L LONG TIMER T M H H VERY HIGH-SPEED TIMER C N T (Espace) COUNTER C N T R REVERSIBLE COUNTER 247 Chapitre Commandes de communication à l’ordinateur 4-5 Opérande, SV (réponse) Dans “Opérande,” spécifier le nom qui indique la classification SV. Spécifier le nom en quatre caractères. Dans “SV”, spécifier soit l’adresse du mot dans laquelle est enregistrée la SV, soit la constante SV. Opérande OP3 Constante ou adresse de mot Classification OP1 OP2 OP4 API CPM2A/ CPM2C C I O (Espace) IR ou SR L R (Espace) (Espace) H R (Espace) A R (Espace) D M D C API CPM1/CPM1A/ SRM1(-V2) LR 0000 à 0049 0200 à 0252 0000 à 0015 0000 à 0019 0200 à 0252 0000 à 0015 (Espace) HR 0000 à 0019 0000 à 0019 (Espace) AR 0000 à 0023 0000 à 0015 (Espace) (Espace) DM M : (Espace) DM (indirect) O N (Espace) Constante 0000 à 2047 6144 à 6655 0000 à 2047 6144 à 6655 0000 à 9999 0000 à 1023* 6144 à 6655 0000 à 1023* 6144 à 6655 0000 à 9999 Rem. *Pour les API SRM1(-V2), la plage de DM va de 0000 à 2047. 4-5-19 LIRE ETAT ---- MS Lit les conditions d’exploitation de l’API. Format de commande @ x 101 x 100 N_ de station x 101 x 100 N_ de station 248 : S Code titre FCS " Caractère d’arrêt Un code de fin de 00 indique une fin normale. Format de réponse @ M M Code titre S x 161 x 160 x 163 x 162 x 161 x 160 16 caractères Code de fin Etat des données Message : FCS " Caractère d’arrêt Chapitre Commandes de communication à l’ordinateur Paramètres Données d’état, Message (réponse) Les “Données d’état” sont constituées de quatre digits (deux octets) hexadécimaux. L’octet le plus à gauche indque le mode opératoire de l’UC, et l’octet le plus à droite indique la taille de la zone de programme. x 163 Bit 15 4-5 14 13 0 0 x 162 12 11 10 0 0 9 8 Bit 1 : Erreur fatale générée 1 : FALS généré Mode fonction 9 8 0 0 Mode PROGRAM 1 0 Mode RUN 1 1 Mode MONITOR x 161 Bit 7 6 5 Cette zone est différente de celle de ECRIRE ETAT (STATUS WRITE). x 160 4 3 1 Bit 2 1 0 0 0 0 6 5 4 Zone de programme 0 0 0 Aucune 0 0 1 4 Koctets 0 1 0 8 Koctets Zone de programme protégée en écriture 0 : Protégé en écriture 1 : Non protégé en écriture Le paramètre “Message” comporte 16 caractères et apparaît après l’exécution de MSG(47). En l’absence de message, ce paramètre n’est pas pris en compte. 4-5-20 ECRIRE ETAT ---- SC Modifie le mode opératoire. Format de commande @ x 101 x 100 N_ de station Format de réponse C Code titre x 161 x 160 Mode données : FCS " Caractère d’arrêt Un code de fin de 00 indique une fin normale. @ x 101 x 100 N_ de station Paramètres S S Code titre C x 161 x 160 Code de fin : FCS " Caractère d’arrêt Données de mode (commande) Les “Données de mode” sont constituées de deux digits (un octet) hexadéci- 249 Chapitre Commandes de communication à l’ordinateur 4-5 maux. Dans les deux bits les plus à gauche, spécifier le mode opératoire de l’API. Définir tous les autres bits à “0”. x 161 Bit x 160 7 6 5 4 3 2 0 0 0 0 0 0 1 0 Bit Mode fonction 1 0 0 0 1 0 Mode PROGRAM Mode MONITOR 1 1 Mode RUN Cette zone est différente de celle de LIRE ETAT (STATUS READ). 4-5-21 LIRE ERREUR ---- MF Lit et supprime les erreurs dans l’API. Vérifie également si des erreurs antérieures ont été supprimées. Format de commande @ x 101 x 100 N_ de station x 101 x 100 N_ de station Paramètres 250 Code titre F x 101 x 100 Erreur supprimée : FCS " Caractère d’arrêt Un code de fin de 00 indique une fin normale. Format de réponse @ M M Code titre F x 161 x 160 x 163 x 162 x 161 x 160 x 163 x 162 x 161 x 160 Code de fin Information erreur (1er mot) Information erreur (2ème mot) : FCS " Caractère d’arrêt Suppression d’erreur (commande) Spécifier 01 pour supprimer les erreurs et 00 pour ne pas les supprimer (BCD). Les erreurs fatales ne peuvent être supprimées que lorsque l’API est en mode PROGRAM. Information d’erreur (réponse) L’information d’erreur est en deux mots. Chapitre Commandes de communication à l’ordinateur 4-5 API CPM1/CPM1A/CPM2A/CPM2C 1er mot x 163 Bit 15 14 x 162 13 12 11 0 0 0 10 9 x 161 8 7 0 6 5 0 x 160 4 3 2 1 0 0 0 0 0 0 ON : Alarme batterie (F7) ON : Erreur système (FAL) ON : Erreur mémoire (Code d’erreur F1) ON : Erreur bus E/S (Code d’erreur C0) ON : Erreur pas d’instruction de fin (FALS) ON : Erreur système (FAL) 2ème mot x 163 Bit 15 14 0 0 13 x 162 12 x 161 11 10 9 8 0 0 0 0 7 6 5 x 160 4 3 2 1 0 FAL, Numéros FALS (00 à FF) ON : Dépassement temps cycle (Code d’erreur F8) ON : Dépassement positif unité E/S (Code d’erreur E1) API SRM1(-V2) 1er mot x 163 Bit 15 14 x 162 13 12 11 10 9 0 0 0 0 0 x 161 8 7 x 160 6 5 4 3 2 1 0 0 0 0 0 0 0 0 ON : Erreur système (FAL) ON : Erreur mémoire (Code d’erreur F1) ON : Erreur pas d’instruction de fin (FALS) ON : Erreur système (FAL) 2ème mot x 163 Bit 15 14 13 0 0 0 x 162 12 x 161 11 10 9 8 0 0 0 0 7 6 5 x 160 4 3 2 1 0 FAL, Numéros FALS (00 à 99) ON : Dépassement temps cycle (Code d’erreur F8) 4-5-22 AFFECTATION FORCEE ---- KS Définit de force un bit dans la zone IR, SR, LR, HR, AR ou TC. Un seul bit peut être défini à la fois. Lorsqu’un bit a été défini ou redéfini de force, cet état est conservé jusqu’à l’émission d’une commande FORCED SET/RESET CANCEL (KC) ou de la prochaine commande FORCED SET/RESET. 251 Chapitre Commandes de communication à l’ordinateur 4-5 Format de commande @ x 101 x 100 K N_ de station S OP1 OP2 OP3 OP4 x 103 x 102 x 101 x 100 x 101 x 100 Code titre Nom Adresse mot : Bit FCS " Caractère d’arrêt Un code de fin de 00 indique une fin normale. Format de réponse @ x 101 x 100 N_ de station Paramètres K S Code titre x 161 x 160 Code de fin " : FCS Caractère d’arrêt Nom, adresse de mot, bit (commande) Dans “Nom”, spécifier la zone (c.--à--d. IR, SR, LR, HR, AR ou TC) devant être définie de force. Spécifier le nom en quatre caractères. Dans “Adresse de mot”, spécifier l’adresse du mot et dans “Bit” le numéro du bit devant être défini de force. Dénomination Plage de paramétrage d’adresses de mots Classification OP1 OP2 OP3 OP4 API CPM2A/ CPM2C C I O (Espace) IR ou SR L R (Espace) (Espace) H R (Espace) A R (Espace) T I T Bit API CPM1/ CPM1A/ SRM1(-V2) LR 0000 à 0049 0200 à 0252 0000 à 0015 0000 à 0019 0200 à 0252 0000 à 0015 (Espace) HR 0000 à 0019 0000 à 0019 (Espace) AR M (Espace) Drapeau d’exécution (temporisation) 0000 à 0023 0000 à 0255 0000 à 0015 0000 à 0127 I M H T I M T M H C N T Drapeau d’exécution (temporisation grande vitesse) L Drapeau d’exécution (temporisation longue) H Drapeau d’exécution (temporisation très grande vitesse) (Espace) Drapeau d’exécution (compteur) C N T R 00 à 15 ((décimal)) Toujours j 00 Drapeau d’exécution (compteur réversible) Rem. La zone spécifiée dans “Nom” doit avoir quatre caractères. Ajouter des espaces après le nom de la zone de données si elle fait moins de quatre caractères. 4-5-23 REINITIALISATION FORCEE ---- KR Définit de force un bit dans la zone IR, SR, LR, HR, AR ou TC. Un seul bit peut être défini à la fois. Lorsqu’un bit a été défini ou redéfini de force, cet état est conservé jusqu’à l’émission d’une commande FORCED SET/RESET CANCEL (KC) ou de la prochaine commande FORCED SET/RESET. Format de commande @ x 101 x 100 N_ de station 252 K Code titre R OP1 OP2 OP3 OP4 x 103 x 102 x 101 x 100 x 101 x 100 Nom Adresse mot Bit : FCS " Caractère d’arrêt Chapitre Commandes de communication à l’ordinateur 4-5 Un code de fin de 00 indique une fin normale. Format de réponse @ x 101 x 100 R x 161 x 160 Code titre N_ de station Paramètres K Code de fin : FCS " Caractère d’arrêt Nom, adresse de mot, bit (commande) Dans “Nom,” spécifier la zone (c.--à--d. IR, SR, LR, HR, AR ou TC) devant être redéfinie de force. Spécifier le nom en quatre caractères. Dans “Adresse de mot”, spécifier l’adresse du mot et dans “Bit” le numéro du bit devant être redéfini de force. Dénomination Plage de paramétrage des adresses de mots Classification OP1 OP2 OP3 OP4 API CPM2A/ CPM2C C I O (Espace) IR ou SR L R (Espace) (Espace) H R (Espace) (Espace) A R (Espace) (Espace) T I M (Espace) Drapeau d’exécution (temporisation) T I M H T I M T M H C N T Drapeau d’exécution (temporisation grande vitesse) L Drapeau d’exécution (temporisation longue) H Drapeau d’exécution (temporisation très grande vitesse) (Espace) Drapeau d’exécution (compteur) C N T R Bit API CPM1/CPM1A /SRM1(-V2) LR 0000 à 0049 0200 à 0252 0000 à 0015 0000 à 0019 0200 à 0252 0000 à 0015 HR 0000 à 0019 0000 à 0019 AR 0000 à 0023 0000 à 0255 0000 à 0015 0000 à 0127 00 à 15 ((décimal)) Toujours j 00 Drapeau d’exécution (compteur réversible) Rem. La zone spécifiée dans “Nom” doit avoir quatre caractères. Ajouter des espaces après le nom de la zone de données si elle fait moins de quatre caractères. 4-5-24 AFFECTATION/REINITIALISATION FORCEE MULTIPLE ---- FK Définit de force, redéfinit de fource ou annule l’état des bits d’un mot de la zone IR, SR, LR, HR, AR ou TC. Format de commande @ x 101 x 100 N_ de station F Code titre K OP1 OP2 OP3 OP4 x 103 x 102 x 101 x 100 Nom Adresse mot Données forcées à définir/remise à zéro/réinitialiser x 160 x 160 x 160 x 160 x 160 x 160 : x 160 x 160 FCS Bit 15 14 13 12 11 10 1 0 " Caractère d’arrêt 253 Chapitre Commandes de communication à l’ordinateur 4-5 Un code de fin de 00 indique une fin normale. Format de réponse @ x 101 x 100 N_ de station Paramètres F K Code titre x 161 x 160 Code de fin : FCS " Caractère d’arrêt Nom, adresse de mot (commande) Dans “Nom,” spécifier la zone (c.--à--d. IR, SR, LR, HR, AR ou TC) devant être définie ou redéfinie de force. Spécifier le nom en quatre caractères. Dans “Adresse de mot”, spécifier l’adresse du mot devant être défini ou redéfini de force. Dénomination Plage de paramétrage des adresses de mots Classification OP1 OP2 OP3 OP4 API CPM2A/CPM2C C I O (Espace) IR ou SR L R (Espace) (Espace) H R (Espace) A R (Espace) T I T I T I M T M H C N T Drapeau d’exécution (temporisation grande vitesse) L Drapeau d’exécution (temporisation longue) H Drapeau d’exécution (temporisation très grande vitesse) (Espace) Drapeau d’exécution (compteur) C N T R API CPM1/CPM1A/ SRM1(-V2) LR 0000 à 0049 0200 à 0252 0000 à 0015 0000 à 0019 0200 à 0252 0000 à 0015 (Espace) HR 0000 à 0019 0000 à 0019 (Espace) AR 0000 à 0023 0000 à 0015 M (Espace) Drapeau d’exécution (temporisation) 0000 à 0255 0000 à 0127 M H 0000 à 0255 0000 à 0127 0000 à 0255 0000 à 0127 0000 à 0255 0000 à 0127 Drapeau d’exécution (compteur réversible) Données définies/redéfinies/annulées de force (commande) Si un drapeau de fin d’horloge ou de compteur est spécifié, seul le bit 15 est pris en compte, tous les autres étant ignorés. Seules les définitions et redéfinitions de force sont possibles pour les temporisations/compteurs. Lorsqu’une adresse de mot est spécifiée, le contenu du mot précise la procédure souhaitée pour chacun des bits de ce mot, comme dans le tableau suivant : Paramètre Hexadécimal Traitement 0000 Pas d’action (état du bit inchangé) 0002 Réinitialisé 0003 Défini 0004 Réinitialisation forcée 0005 Définition forcée 0008 Annule l’état de définition/réinitialisation forcée Les bits qui sont simplement définis ou redéfinis peuvent changer d’état à la prochaine exécution du programme, mais les bits qui sont définis ou redéfinis de force conserveront cet état jusqu’à leur suppression. 254 Chapitre Commandes de communication à l’ordinateur Format de réponse 4-5 Un code de fin de 00 indique une fin normale. @ x 101 x 100 F N_ de station K Code titre x 161 x 160 Code de fin : FCS " Caractère d’arrêt 4-5-25 ANNULER AFFECTATION/REINITIALISATON FORCEE ---- KC Annule tous les bits définis ou redéfinis de force (y compris ceux définis par FORCED SET, FORCED RESET et MULTIPLE FORCED SET/RESET). En cas de définition de plusieurs bits, l’état forcé sera annulé pour tous. KC ne permet pas d’annuler les bits un par un. Format de commande @ x 101 x 100 K N_ de station Format de réponse Code titre " : C FCS Caractère d’arrêt Un code de fin de 00 indique une fin normale. @ x 101 x 100 N_ de station K C Code titre x 161 x 160 Code de fin : FCS " Caractère d’arrêt 4-5-26 LIRE MODELE API ---- MM Lit le type de modèle de l’API Format de commande @ x 101 x 100 N_ de station Format de réponse M : M Code titre FCS " Caractère d’arrêt Un code de fin de 00 indique une fin normale. @ x 101 x 100 N_ de station M Code titre M x 161 x 160 x 161 x 160 Code de fin Code modèle : FCS " Caractère d’arrêt 255 Chapitre Commandes de communication à l’ordinateur Paramètres 4-5 Code de modèle Le “Code de modèle” indique le modèle de l’API sous forme de deux digits hexadécimaux. Code de modèle Modèle 01 C250 02 C500 03 C120 0E C2000 10 C1000H 11 C2000H/CQM1/CPM2A/CPM2C/CPM1/CPM1A/SRM1(-V2) 12 C20H/C28H/C40H/C200H/C200HS 20 CV500 21 CV1000 22 CV2000 40 CVM1-CPU01-E 41 CVM1-CPU11-E 42 CVM1-CPU21-E 4-5-27 TEST---- TS Retourne, sans modification, un bloc de données transmis à partir de l’ordinateur. Format de commande @ x 101 x 100 N_ de station Format de réponse S : 122 caractères max. Code titre FCS Caractères " Caractère d’arrêt Un code de fin de 00 indique une fin normale. @ x 101 x 100 N_ de station Paramètres T T S : 122 caractères max. Code titre FCS Caractères " Caractère d’arrêt Caractères (commande, réponse) Pour la commande, ce paramètre spécifie tous les caractères autres que le retour chariot (CHR$(13)). Pour la réponse, les mêmes caractères que ceux spécifiés dans la commande seront retournés sans modification en cas de succès du test. 4-5-28 LIRE PROGRAMME ---- RP Lit le contenu de la zone programme utilisateur de l’API en langage machine (code exécutable). Le contenu est lu comme un bloc, du début à la fin. Format de commande @ x 101 x 100 N_ de station 256 R Code titre : P FCS " Caractère d’arrêt Chapitre Commandes de communication à l’ordinateur 4-5 Un code de fin de 00 indique une fin normale. Format de réponse x 101 x 100 @ N_ de station Paramètres R P Code titre x 161 x 160 x 161 x 160 Code de fin " : 1 octet FCS Caractère d’arrêt Programme (pour toute la zone UM) Programme (réponse) Le programme est lu à partr de la zone entière du programme Rem. Pour interrompre le déroulement de cette opération, exécuter la commande ABORT (XZ). 4-5-29 ECRIRE PROGRAMME ---- WP Ecrit dans la zone de programme utilisateur de l’API le programme en langage machine (code exécutable) transmis à partir de l’ordinateur. Le contenu est écrit sous la forme d’un bloc, à partir du début. Format de commande @ x 101 x 100 W P x 161 x 160 FCS 1 octet Programme (haut à taille de mémoire maximum) Code titre N_ de station " : Caractère d’arrêt Un code de fin de 00 indique une fin normale. Format de réponse @ x 101 x 100 N_ de station Paramètres W P Code titre x 161 x 160 Code de fin " : FCS Caractère d’arrêt Programme (commande) Programme les données jusqu’à la taille mémoire maximale. 4-5-30 COMMANDE COMPOSEE ---- QQ Enregistre sur l’API tous les bits, mots et temporisations/compteurs devant être lus et lit l’état de chacun d’entre eux en tant que lot. Enregistrement des informations en lecture Enregistre l’information concernant tous les bits, mots et temporisations/compteurs devant être lus. Format de commande @ x 101 x 100 N_ de station Q Code titre Q M R Code soustitre OP1 OP2 OP3 OP4 x 103 x 102 x 101 x 100 OP1 OP2 Zone lue Adresse mots lus , Format Arrêt mots données Information lecture simple Information lecture totale (128 max.) , Arrêt mots OP1 OP2 OP3 OP4 x 103 x 102 x 101 x 100 OP1 OP2 Zone lue Adresse mots lus Format données : FCS " Caractère d’arrêt Information lecture simple Information lecture totale (128 max.) 257 Chapitre Commandes de communication à l’ordinateur Un code de fin de 00 indique une fin normale. Format de réponse @ x 101 x 100 N_ de station Paramètres Classification de zone IR ou SR Q Code titre Q M R Code soustitre x 161 x 160 Code de fin Données lues Zone de l lecture 0000 à 0049 0200 à 0255 API CPM1/ CPM1A/ SRM1(-V2) 0000 à 0019 0200 à 0255 L R (S) ( ) (S) ( ) 0000 à 0015 0000 à 0015 H R (S) ( ) (S) ( ) 0000 à 0019 0000 à 0019 A R (S) ( ) (S) ( ) 0000 à 0023 0000 à 0015 C I O ((S)) Bit Bit Mot lu API CPM2A/ CPM2C Mot HR Caractère d’arrêt Format de données 00 à 15 (décimal) “CH” 00 à 15 (décimal) 00 à 15 (décimal) “CH” Bit Bit 00 à 15 (décimal) “CH” Temporisation Drapeau d’exécution PV T I M (S) 0000 à 0255 0000 à 0127 Temporisation grande vitesse Drapeau d’exécution PV TIMH 0000 à 0255 0000 à 0127 Temporisation longue Drapeau d’exécution PV TIML 0000 à 0255 0000 à 0127 Temporisation très grande vitesse g Drapeau d’exécution PV TMHH 0000 à 0255 0000 à 0127 Compteur Drapeau d’exécution PV C N T (S) 0000 à 0255 0000 à 0127 Compteur réversible Drapeau d’exécution PV CNTR 0000 à 0255 0000 à 0127 Mot D M (S) (S) DM FCS " “CH” Bit Mot AR : Zone de lecture (commande) Spécifier, sous forme d’un code à quatre caractères, la zone devant être lue. Les codes disponibles se trouvent dans le tableau ci-après Adresse de mot en lecture, format des données (commande) Suivant la zone et le type de données devant être lues, les informations en lecture se présentent comme dans le tableau suivant. Les “données en lecture” sont spécifiées en quatre digits BCD et le format des données est spécifié en deux digits BCD. Mot LR 4-5 2 caractères autres que “CH” “CH” 2 caractères autres que “CH” “CH” 2 caractères autres que “CH” “CH” 2 caractères autres que “CH” “CH” 2 caractères autres que “CH” “CH” 2 caractères autres que “CH” “CH” 0000 à 2047 6144 à 6655 0000 à 1023* 6144 à 6655 2 caractères Rem. *Pour les API SRM1(-V2), la plage de DM va de 0000 à 2047. (S) : Espace Coupure de données (commande) Les informations en lecture sont spécifiées une à une et séparées par un code de coupure (,). Le nombre maximal d’éléments est de 128 (cependant, lorsque la PV d’une horloge/compteur est spécifiée, l’état du drapeau de fin est également retourné et compte par conséquent comme deux éléments). 258 Chapitre Commandes de communication à l’ordinateur 4-5 Lecture du lot L’état du bit, mot et horloge/compteur est lu en tant que lot d’après les informations de lecture enregistrées avec QQ. Format de commande x 101 x 100 @ Q N_ de station x 101 x 100 N_ de station Code titre Q Code titre Q I R Code soustitre , ON/ OFF x 161 x 160 ON/ OFF " : R Code soustitre FCS Code de fin , x 103 x 102 x 101 x 100 Caractère d’arrêt , Arrêt donTemporisation/compteur Si PV est spécifiée, l’état du nées drapeau de fin est retourné. , x 163 x 162 x 161 x 160 Mot données IR, SR, LR, HR, AR, DM Bit données ON/OFF Paramètres I Un code de fin de 00 indique une fin normale. Format de réponse @ Q : FCS " Caractère d’arrêt Lecture des données (réponse) Les données en lecture sont retournées d’après le format de données et l’ordre dans lequel les informations de lecture ont été enregistrées avec QQ. Si un “drapeau de fin” a été spécifié, les données de bit (ON ou OFF) sont retournées. Si un “Mot” a été spécifié, les données de mot sont retournées. Cependant, si une “PV” a été spécifiée pour les temporisations/compteurs, elle est retournée après le drapeau de fin. Coupure de données (réponse) Le code de coupure (, ) est retourné entre les sections lues. 4-5-31 INTERROMPRE ---- XZ Annule l’opération de communication à l’ordinateur en cours de traitement, puis autorise la réception de la commande suivante. La commande INTERROMPRE ne reçoit pas de réponse. Format de commande @ x 101 x 100 N_ de station X : Z Code titre FCS " Caractère d’arrêt 4-5-32 INITIALISER ---- :: Initialise la procédure de contrôle de transmission de tous les API connectés à l’ordinateur. La commande INITIALISER n’utilise pas les numéros de station ni les FCS, et ne reçoit pas de réponse. Format de commande @ : : " 259 Chapitre Commandes de communication à l’ordinateur 4-5 4-5-33 REPONSE TXD ---- EX Cette commande n’est prise en charque que par les API CPM2A/CPM2C. C’est le format de réponse utilisé lorsque l’instruction TXD(48) de l’API est exécutée en mode communications à l’ordinateur. Aucune commande n’est associée à EX. L’instruction TXD(48) convertit les données spécifiées en ASCII et les transmet à l’ordinateur dans ce format. La réponse peut contenir jusqu’à 122 caractères de données en ASCII (l’instruction TXD(48) ne prend pas en charge plusieurs trames). Format de réponse Un code de fin de 00 indique une fin normale. @ x 101 x 100 N_ de station Paramètres T S Données spécifiées en TXD(48) Code titre : FCS Caractères (122 max.) " Caractère d’arrêt Caractères (réponse) Ce sont les données spécifiées dans l’instruction TXD(48) qui ont été converties en ASCII. 4-5-34 COMMANDE NON DEFINE ---- IC Cette réponse est retournée si le code titre d’une commande ne peut être décodé. Vérifier le code titre. Format de réponse @ x 101 x 100 N_ de station 260 I Code titre : C FCS " Caractère d’arrêt CHAPITRE 5 Zones mémoire Ce chapitre décrit la structure des zones mémoire de l’API et explique comment les utiliser. 5-1 5-2 5-3 5-4 Fonctions des zones mémoire des CPM1/CPM1A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-1-1 Structure de la zone mémoire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-1-2 Zone IR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-1-3 Zone SR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-1-4 Zone TR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-1-5 Zone HR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-1-6 Zone AR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-1-7 Zone LR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-1-8 Zone de temporisation/compteur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-1-9 Zone DM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Fonctions des zones mémoire des CPM2A/CPM2C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-2-1 Structure de la zone mémoire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-2-2 Zone IR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-2-3 Zone SR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-2-4 Zone TR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-2-5 Zone HR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-2-6 Zone AR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-2-7 Zone LR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-2-8 Zone de temporisation/compteur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-2-9 Zone DM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Fonctions de la zone mémoire du SRM1(-V2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-3-1 Structure de la zone mémoire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-3-2 Zone IR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-3-3 Zone SR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-3-4 Zone TR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-3-5 Zone HR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-3-6 Zone AR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-3-7 Zone LR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-3-8 Zone de temporisation/compteur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-3-9 Zone DM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Mémoire flash du SRM1(-V2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262 262 263 264 264 265 265 265 265 265 266 266 267 270 270 271 271 271 271 271 272 272 273 273 274 274 274 274 274 274 275 261 Fonctions des zones mémoire des CPM1/CPM1A 5-1 Chapitre 5-1 Fonctions des zones mémoire des CPM1/CPM1A 5-1-1 Structure de la zone mémoire Les zones mémoire suivantes sont utilisées avec les CPM1/CPM1A : Zone de données Zone IR1 Mots Bits Fonction IR 000 à IR 009 (10 mots) IR 010 à IR 019 (10 mots) IR 200 à IR 231 (32 mots) SR 232 à SR 255 (24 mots) IR 00000 à IR 00915 (160 bits) IR 01000 à IR 01915 (160 bits) IR 20000 à IR 23115 (512 bits) SR 23200 à SR 25515 (384 bits) Ces bits sont affectés aux bornes d’E/S externes. Zone TR --- TR 0 à TR 7 (8 bits) Ces bits sont utilisés pour mémoriser temporairement l’état ON/OFF aux points d’embranchement du programme. Zone HR2 HR 00 à HR 19 (20 mots) HR 0000 à HR 1915 (320 bits) Ces bits mémorisent les données et conservent l’état ON/OFF lorsque l’alimentation est désactivée. Zone AR2 AR 00 à AR 15 (16 mots) AR 0000 à AR 1515 (256 bits) Ces bits remplissent des fonctions spécifiques telles que les drapeaux et le contrôle de bits. Zone d’entrée Zone de sortie Zone de travail Zone SR Zone LR1 LR 00 à LR 15 LR 0000 à LR 1515 (16 mots) (256 bits) Zone de temporisation/ TC 000 à TC 127 compteur2 (numéros de temporisations/compteur)3 Zone Lecture/écri- DM 0000 à DM 0999 --DM ture2 DM 1022 à DM 1023 (1 002 mots) Journal d’er- DM 1000 à DM 1021 reurs (22 mots) --- Lecture seule4 Setup de l’API4 --- DM 6144 à DM 6599 (456 mots) DM 6600 à DM 6655 (56 mots) Rem. --- Les bits de travail sont utilisés librement dans le programme. Ces bits remplissent des fonctions spécifiques telles que les drapeaux et le contrôle de bit. Utilisé pour une liaison de données Inter API avec un autre API. Les même numéros sont utilisés pour les temporisations et les compteurs. Les données de zone DM sont seulement accessibles par les unités de mots. Les valeurs de mots sont conservées lorsque l’alimentation est désactivée. Utilisé pour mémoriser le moment de l’occurence et le code d’erreurs des erreurs survenues. Ces mots sont utilisés comme DM en lecture/écriture lorsque la fonction du journal d’erreurs n’est pas utilisée. Ne peut pas être écrasé dans le programme. Utilisé pour mémoriser différents paramètres commandant le fonctionnement de l’API. 1. Les bits IR et LR qui ne sont pas utilisés pour ls fonctions d’allocation sont utilisés comme bits de travail. 2. Le contenu des zones HR, AR, compteur et du DM lecture/écriture est sauvegardé par un condensateur. La sauvegarde du temps dépend de la température ambiante, ainsi à 25_C, le condensateur sauvegarde la mémoire pendant 20 jours. Si l’alimentation est désactivée pendant plus longtemps que le temps de sauvegarde, le contenu de la mémoire sera effacé et AR1314 sera activé. Ce drapeau est activé lorsque les données ne peuvent plus être conservées par le condensateur intégré. Se reporter au paragraphe 2--1--2, Caractéristiques du Manuel de programmation du CPM1 et du CPM1A pour un graphique présentant le temps de sauvegarde par rapport à la température. 3. Lors de l’accès à une PV, les numéros TC sont utilisés comme données de mot ; lors de l’accès aux drapeaux de fin, ils sont utilisés comme données de bits. 262 Chapitre Fonctions des zones mémoire des CPM1/CPM1A 5-1 4. Les données de DM 6144 à DM 6655 ne peuvent pas être écrasées dans le programme, mais elles peuvent être modifiées à partir d’un périphérique de programmation. 5-1-2 Zone IR Les fonctions de la zonre IR sont expliquées ci--dessous. Bits d’E/S Les bits de la zone IR allant de IR 00000 à IR 01915 sont alloués aux borniers de l’unité centrale et des unités d’E/S. Ils reflètent l’état des ON/OFF des signaux d’entrée et de sortie. Les bits d’entrées commencent à IR 00000 et les bits de sorties à IR 01000. Le tableau suivant présente les bits IR alloués aux bornes d’E/S des unités centrales du CPM1 et l’unité d’E/S du CPM1-20EDR. Unité centrale du CPM1 CPM1-10CDR-j j CPM1-20CDR-j j E/S Borniers d’unité centrale Entrées 6 points : 00000 à 00005 12 points : 00100 à 00111 Sorties 8 points : 01100 à 01107 Entrées 12 points : 00000 à 00011 12 points : 00100 à 00111 Sorties CPM1-30CDR-j CPM1-30CDR-j -V1 4 points : 01000 à 01003 Borniers d’unité d’E/S 8 points : 01000 à 01007 8 points : 01100 à 01107 Entrées 18 points : 00000 à 00011, 00100 à 00105 12 points : 00200 à 00211 Sorties 12 points : 01000 à 01007, 01100 à 01103 8 points : 01200 à 01207 Entrées 18 points : 00000 à 00011, 00100 à 00105 36 points : 00200 à 00211 00300 à 00311 00400 à 00411 24 points : 01200 à 01207 01300 à 01407 01400 à 01407 Sorties 12 points : 01000 à 01007, 01100 à 01103 263 Chapitre Fonctions des zones mémoire des CPM1/CPM1A 5-1 Le tableau suivant présente les bits IR alloués aux bornes d’E/S des unités centrales et de l’unité d’E/S d’expansion. Borniers de l’unité Numéro centrale de bornes d’E/S sur Entrées Sorties l’unité centrale 10 6 points : 4 points : 20 30 40 Borniers d’unité d’E/S d’expansion CPM1A-20EDj Entrées --- Sorties --- Entrées --- Sorties --- Entrées --- --- 01000 à 01003 12 points : p 8 points : p 00000 à 00011 01000 à 01007 18 points : 12 points : 12 points : 8 points : 12 points : 8 points : 12 points : 8 points : 00000 à 00011 01000 à 01007 00200 à 00211 01200 à 01207 00300 à 00311 01300 à 01307 00400 à 00411 01400 à 01407 00100 à 00105 01100 à 01103 24 points : 16 points : 12 points : 8 points : 12 points : 8 points : 12 points : 8 points : 00000 à 00011 01000 à 01007 00200 à 00211 01200 à 01207 00300 à 00311 01300 à 01307 00400 à 00411 01400 à 01407 00100 à 00111 01100 à 01107 c.a. c.c. --- --- --- --- --- Référence du modèle Sorties 00000 à 00005 Bits de travail Alimentation --- c.a. CPM1A10CDj-A CPM1A10CDj-D CPM1A20CDj-A c.c. CPM1A20CDj-D c.a. CPM1A30CDj-A c.c. CPM1A30CDj-D c.a. CPM1A40CDj-A c.c. CPM1A40CDj-D Les bits de travail sont utilisés librement dans le programme. Cependant ils sont seulement utilisés au sein du programme et non par des E/S externes directes. 5-1-3 Zone SR Ces bits servent principalement de drapeaux reliés au fonctionnement des CPM1/CPM1A ou contiennent les valeurs en cours et de consigne de différentes fonctions. Pour de plus amples informations sur les différentes fonctions de bit, se reporter aux chapitres concernés de ce manuel ou l’Annexe C, Zones mémoire. SR 244 à SR 247 sont également utilisables comme bits de travail lorsque les entrées d’interruption ne sont pas utilisées par le mode compteur. 5-1-4 Zone TR Lorsqu’un schéma à contacts complexe ne peut pas être directement programmé en code mnémonique, ces bits servent à mémoriser temporairement les conditions d’exécution “ON/OFF” aux points d’embranchement du programme. Ils sont utilisés seulement pour le code mnémonique. En programmant directement avec des schémas à contacts à l’aide du logiciel SYSMAC (SSS) ou du logiciel SYSMAC--CPT, les bits TR sont automatiquement traités. Les mêmes bits TR ne peuvent pas être utilisés plus d’une fois dans le même bloc d’instruction, mais peuvent être utilisés de nouveau dans différents blocs d’instruction. L’état “ON/OFF” de bits TR ne peut pas être contrôlé à partir d’un périphérique de programmation. Des exemples montrant l’utilisation des bits TR dans la programmation sont fournis à la page 294. 264 Fonctions des zones mémoire des CPM1/CPM1A Chapitre 5-1 5-1-5 Zone HR Ces bits conservent leur état “ON/OFF” même après que l’alimentation des CPM1/CPM1A a été désactivée ou lorsque le fonctionnement commence ou s’arrête. Ils sont utilisés comme bits de travail. 5-1-6 Zone AR Ces bits servent principalement de drapeaux reliés au fonctionnement des CPM1/CPM1A. Ces bits conservent leurs états même après que l’alimentation des CPM1/CPM1A a été désactivée ou lorsque le fonctionnement commence ou s’arrête. Pour de plus amples informations sur les diverses fonctions de bit, se reporter aux chapitres appropriés de ce manuel ou à l’Annexe C, Zones mémoire. 5-1-7 Zone LR Lorsqu’un CPM1/CPM1A est lié Inter API à d’autres API tel que CPM1/CPM1A, CQM1, SRM1(-V2) ou C200HS, ces bits sont utilisés pour partager des données. Pour de plus amples informations, se reporter à la page 187. Les bits LR sont utilisés comme bits de travail lorsqu’ils ne sont pas utilisés pour des liaisons Inter API. 5-1-8 Zone de temporisation/compteur Cette zone est utilisée pour gérérer les temporisations et compteurs créés par TIM, TIMH(15), CNT et CNTR(12). Les mêmes numéros sont utilisés pour les temporisations et les compteurs, et chaque numéro est utilisé une seule fois dans le programme de l’utilisateur. Ne pas utiliser deux fois le même numéro pour des instructions différentes. Les numéros TC sont utilisés pour créer des temporisations et des compteurs, et également pour accéder aux drapeaux de fin et des valeurs en cours (PV). Si un numéro TC est indiqué pour des données de mot, il accédera à la valeur en cours (PV) ; s’il est utilisé pour des données de bit, il accédera au drapeau de fin pour la temporisation/compteur. Se reporter aux instructions commençant à la page 26 pour de plus amples informations sur les temporisations et les compteurs. 5-1-9 Zone DM La zone de données DM est seulement sollicitée dans des unités de mots. Les contenus des zones de DM sont conservés même après que l’alimentation des CPM1/CPM1A soit désactivée ou lorsque le fonctionnement commence ou s’arrête. Les mots de DM de DM 0000 jusqu’à DM 0999, DM 1022 et DM 1023 peuvent être utilisés librement dans le programme ; d’autres mots de DM sont affectés à des fonctions spécifiques, décrits ci--dessous. Journal d’erreurs DM 1000 jusqu’à DM 1021 contiennent le journal d’erreurs. Se reporter au Chapitre 9 Dépannage, pour de plus amples informations concernant le journal d’erreurs. Setup de l’API DM 6600 jusqu’à DM 6655 contiennent le Setup de l’API. Se reporter au 1-1 Setup de l’API pour de plus amples informations. 265 Fonctions des zones mémoire des CPM2A/CPM2C 5-2 Chapitre 5-2 Fonctions des zones mémoire des CPM2A/CPM2C 5-2-1 Structure de la zone mémoire Les zones mémoires suivantes sont utilisées dans les CPM2A/CPM2C : Zone de données Zone IR1 Mots Bits Fonction IR 000 à IR 009 (10 mots) IR 010 à IR 019 (10 mots) IR 020 à IR 049, IR 200 à IR 227 (58 mots) IR 00000 à IR 00915 (160 bits) IR 01000 à IR 01915 (160 bits) IR 02000 à IR 04915, IR 20000 à IR 22715 (928 bits) Ces bits sont alloués aux borniers d’E/S. Zone SR SR 228 à SR 255 (28 mots) SR 22800 à SR 25515 (448 bits) Ces bits remplissent des fonctions spécifiques telles que les drapeaux et le contrôle de bit. Zone TR --- TR 0 à TR 7 (8 bits) Ces bits sont utilisés pour mémoriser temporairement l’état ON/OFF aux points d’embranchement du programme. Zone HR2 HR 00 à HR 19 (20 mots) HR 0000 à HR 1915 (320 bits) Ces bits mémorisent les données et conservent leurs états lorsque l’alimentation est désactivée. Zone AR2 AR 00 à AR 23 (24 mots) AR 0000 à AR 2315 (384 bits) Ces bits remplissent les fonctions spécifiques telles que les drapeaux et le contrôle de bit. Zone LR1 LR 00 à LR 15 LR 0000 à LR 1515 (16 mots) (256 bits) TC 000 à TC 255 (numéros des temporisation/ compteur)3 DM 0000 à DM 1999 --DM 2022 à DM 2047 (2 026 mots) Zone d’entrée Zone de sortie Zone de travail Zone de la temporisation/compteur2 Zone Lecture/écriDM ture2 Les bits de travail sont utilisés librementdans le programme. Utiliser la liaison des données Inter API avec un autre API. Les mêmes numéros sont utilisés à la fois pour les temporisations et les compteurs. Les données de la zone DM sont seulement accessibles par unités de mots. Les valeurs de mots sont conservées lorsque l’alimentation est désactivée. Utilisé pour mémoriser le moment de l’occurence et le code d’erreurs des erreurs survenues. Ces mots sont utilisés en tant que DM de lecture/écriture normale lorsque la fonction du journal d’erreurs n’est pas utilisée. Journal d’erreurs DM 2000 à DM 2021 (22 mots) --- Lecture seule4,5 Setup de l’API4,5 DM 6144 à DM 6599 (456 mots) DM 6600 à DM 6655 (56 mots) --- N’est pas écrasé du programme. --- Utilisé pour mémoriser différents paramètres contrôlant le fonctionnement de l’API. Rem. 1. Les bits IR et LR qui ne sont pas utilisés pour leurs fonctions d’affectation sont utilisés comme bits de travail. 2. Les contenus des zones : HR, LR, compteur et de DM lecture/écriture sont sauvegardés par la batterie de l’unité centrale. Si la batterie est enlevée ou est défectueuse, les contenus de ces zones seront perdus et reprendront leurs valeurs par défaut. Dans les unités centrales du CPM2C sans batterie, ces zones sont sauvegardées par un condensateur. 3. Lorsqu’un numéro TC est utilisé comme opérande de mot, la PV de la temporisation ou du compteur est sollicitée ; lorsqu’il est utilisé comme opérande de bits, son drapeau de fin est sollicité. 4. Des données dans DM 6144 à DM 6655 ne peuvent pas être écrasées depuis le programme, mais elles peuvent être changées depuis un périphérique de programmation. 266 Chapitre Fonctions des zones mémoire des CPM2A/CPM2C 5-2 5. Le programme et les données dans DM 6144 à DM 6655 sont mémorisés dans la mémoire flash. 5-2-2 Zone IR Les fonctions de la zone IR sont expliquées ci--dessous. Les bits de zone IR 00000 à IR 01915 sont alloués aux bornes des unités centrales et d’unités d’expansion. Ils reflètent l’état “ON/OFF” d’entrée et de signaux de sortie. Les mots IR non alloués aux entrées ou aux sorties sont utilisés comme mots de travail. En outre, les bits non utilisés dans les mots IR alloués aux sorties sont utilisés comme bits de travail. Rem. Lorsque tous les bits d’un mot ne sont pas utilisés comme bits d’entrée, les bits non utilisés sont remis à 0 automatiquement. Ne pas utiliser les bits restants dans un mot d’entrée comme bits de travail. Affectation de l’unité centrale Les bits d’entrée commençant à IR 00000 sont alloués à l’unité centrale, et les bits de sortie commençant à IR 01000 sont assignés à l’unité centrale. Le tableau suivante présente les bits IR alloués aux bornes d’entrée/sortie des unités centrales des CPM2A/CPM2C. Unité centrale E/S CPM2C-10CDj-j jj 6 entrées1 00000 à 00005 (IR 00000 à IR 00005) 4 sorties 01000 à 01003 (IR 01000 à IR 01003) CPM2C-20CDj-j 12 entrées1 8 sorties 00000 à 00011 (IR 00000 à IR 00011) CPM2A-30CDj-j 18 entrées1 12 sorties CPM2A-40CDj-j 24 entrées1 16 sorties CPM2A-60CDj-j 36 entrées1 00000 à 00011 (IR 00000 à IR 00011) et 00100 à 00105 (IR 00100 à IR 00105) 01000 à 01007 (IR 01000 à IR 01007) et 01100 à 01103 (IR 01100 à IR 01103) 00000 à 00011 (IR 00000 à IR 00011) et 00100 à 00111 (IR 00100 à IR 00111) 01000 à 01007 (IR 01000 à IR 01007) et 01100 à 01107 (IR 01100 à IR 01107) 00000 à 00011 (IR 00000 à IR 00011), 00100 à 00111 (IR 00100 à IR 00111) et 00200 à 00211 (IR 00200 à IR 00211) 24 sorties Rem. Borniers d’unité centrale 01000 à 01007 (IR 01000 à IR 01007) 01000 à 01007 (IR 01000 à IR 01007), 01100 à 01107 (IR 01100 à IR 01107) et 01200 à 01207 (IR 01100 à IR 01107) 1. Les bits non utilisés dans IR 000 S, IR 001 S et IR 002 ne peuvent pas être utilisés comme bits de travail. 2. Les bits d’entrée présentés dans les tableaux suivants peuvent fonctionner en tant qu’entrées normales ou ils peuvent être affectés à des fonctions spéciales dans le Setup de l’API. Des fonctions spéciales pour les bits d’entrée IR 00000 jusqu’à IR 00002 sont définies en DM 6642 : Adresse d bi de bit IR 00000 IR 00001 IR 00002 Configuration du Setup de l’API (bits 08 à15 de DM 6642) 00 Utilisé comme entrées normales. 01 Utilisé comme entrées du compteur à grande p g vitesse. it 02, 03, ou 04 Utilisé comme entrées pour synchroniser la commande d’impulsions. Utilisé comme entrée normale. Les fonctions spéciales pour les bits d’entrée IR 00003 jusqu’à IR 00006 sont définies en DM 6628 : 267 Chapitre Fonctions des zones mémoire des CPM2A/CPM2C Adresse d bit de bi Bits en DM 6628 IR 00003 00 à 03 IR 00004 04 à 07 IR 00005* 08 à 11 IR 00006* 12 à 15 5-2 Configuration du Setup de l’API (en DM 6628) 0 Utilisé comme entrées é normales normales. 1 Utilisé comme entrées é d’interruption (mode compteur inclu). 2 Utilisé comme entrées é à réponse de capture. Rem. *L’entrée 00006 n’existe pas et l’entrée 00005 doit être utilisée comme entrée normale dans les unités centrales du CPM2C avec 10 points d’entrée/sortie. 3. Les bits IR 01000 et IR 01001 de sortie peuvent fonctionner en tant que des entrées normales ou ils peuvent être utilisés pour des sorties d’impulsions avec PULS(65), SYNC(-- --) ou PWM(-- --). Utiliser l’unité centrale à sorties de transistor pour les fonctions de sortie d’impulsions. Instruction PULS(65) Affectation de l’unité d’expansion (unités centrales du CPM2A) Fonction SYNC(----) Avec SPED(64) : Sortie d’impulsions monphase sans accélération ni décélération Avec ACC(----) : Sortie d’impulsions monphase sans accélération ni décélération Sortie de commande d’impulsions synchronisée PWM(----) Sortie dimpulsions de rapport d’exécution Jusqu’à 3 unités d’expansion sont reliées à l’unité centrale du CPM2A. Les bits d’entrée/sortie sont alloués aux unités d’expansion commençant par les prochains mots d’entrée/sortie disponibles. Le schéma suivant présente les bits d’entrée/sortie alloués à chaque unité d’expansion lorsque le dernier mot d’entrée alloué était “m” et que le dernier mot de sortie alloué était “n”. CPM1A-20EDjj Unité d’E/S d’expansion CPM1A-8ED Unité d’E/S d’expansion Mot (m+1) bits 00 à 11 CPM1A-8ER/8ET/8ET1 Unité d’E/S d’expansion Mot (m+1) bits 00 à 07 Aucun 12 entrées 8 entrées 0 entrées 8 sorties 0 sorties 8 sorties Mot (n+1) bits 00 à 07 None CPM1A-MAD01 Unité d’E/S analogique Mot (n+1) bits 00 à 07 CPM1A-SRT21 Unité d’E/S CompoBus/S Mot (m+1) bits 00 à 15 Mot (m+1) bits 00 à 15 Mot (m+1) bits 00 à 07 32 bits d’entrée 8 entrées 16 bits de sortie 8 sorties Mot (n+1) bits 00 à 15 Mot (n+1) bits 00 à 07 Exemple 1 : Une unité d’entrée/sortie d’expansion du CPM1A-20EDjj (12 entrées et 8 sorties) est connectée à l’unité centrale avec 30 points d’entrée/sortie. Unité 1 2 268 Unité centrale (CPM2A-30CDj-j) Unité d’E/S d’expansion (CPM1A-20EDjj) Bits d’entrée alloués IR 00000 à IR 00011 et IR 00100 à IR 00105 IR 00200 à IR 00211 Bits de sortie alloués IR 01000 à IR 01007 et IR 01100 à IR 01103 IR 01200 à IR 01207 Chapitre Fonctions des zones mémoire des CPM2A/CPM2C 5-2 Exemple 2 : Trois unités d’expansion sont connectées à l’unité centrale avec 30 points d’entrée/sortie. Unité 1 2 3 4 Unité centrale (CPM2A-30CDj-j) Unité d’E/S d’expansion (CPM1A-20EDjj) Unité d’E/S analogique (CPM1A-MAD01) Unité d’E/S d’expansion (CPM1A-20EDjj) Bits d’entrée alloués Bits de sortie alloués IR 00000 à IR 00011 et IR 00100 à IR 00105 IR 00200 à IR 00211 IR 01000 à IR 01007 et IR 01100 à IR 01103 IR 01200 à IR 01207 IR 00300 à IR 00315 et IR 00400 à IR 00415 IR 00500 à IR 00511 IR 01300 à IR 01315 IR 01400 à IR 01407 Example 3 : Trois unités d’expansion sont connectées à l’unité centrale avec 40 points d’entrée/sortie. Unité 1 2 3 4 Unité centrale (CPM2A-40CDj-j) Unité d’E/S d’expansion (CPM1A-20EDjj) Unité d’E/S d’expansion (CPM1A-8ED) Unité d’E/S d’expansion (CPM1A-8ER/ET/ET1) Bits d’entrée alloués Bits de sortie alloués IR 00000 à IR 00011 et IR 00100 à IR 00111 IR 00200 à IR 00211 IR 01000 à IR 01007 et IR 01100 à IR 01107 IR 01200 à IR 01207 IR 00300 à IR 00307 Aucun* Aucun* IR 01300 à IR 01307 Rem. Si une unité d’entrée/sortie d’expansion n’a pas d’entrées, aucun mot d’entrée ne sera affecté. Il en sera de même pour les sorties. Exemple 4 : Trois unités d’expansion sont connectées à l’unité centrale avec 60 points d’entrée/sortie. Unité Bits d’entrée alloués Bits de sortie alloués 1 Unité centrale (CPM2A-60CDj-j) IR 00000 à IR 00011, IR 00100 à IR 00111 et IR 00200 à IR 00211 IR 01000 à IR 01007, IR 01100 à IR 01107 et IR 01200 à IR 01207 2 Unité d’E/S d’expansion (CPM1A-20EDjj) IR 00300 à IR 00311 IR 01300 à IR 01307 3 Unité d’E/S de CompoBus/S (CPM1A-SRT21) IR 00400 à IR 00407 (IR 00408 et IR 00409*) IR 01400 à IR 01407 4 Unité d’E/S d’expansion (CPM1A-20EDjj) IR 00500 à IR 00511 IR 01500 à IR 01507 Rem. L’unité d’entrée/sortie de CompoBus/S a deux drapeaux d’état : le drapeau de communication et le drapeau d’erreur. Ces drapeaux sont alloués aux bits 8 et 9 du mot d’entrée. Affectation de l’unité d’expansion (Unités centrales du CPM2C) Jusqu’à 5 unités d’entrée/sortie d’expansion peuvent être connectées à l’unité centrale du CPM2C. Les bits d’entrée/sortie sont alloués aux unités d’entrée/ sortie d’expansion commençant par les prochains mots d’entrée/sortie disponibles. D’autres unités d’expansion (des unités d’entrée/sortie analogiques et de CompoBus/S) ne peuvent pas être connectées à l’unité centrale du CPM2C. 269 Chapitre Fonctions des zones mémoire des CPM2A/CPM2C 5-2 Les schémas suivants présentent les bits d’entrée/sortie alloués à chaque unité d’entrée/sortie d’expansion lorsque le dernier mot d’entrée alloué est “m” et le dernier mot de sortie alloué est “n”. CPM2C-10EDR Unité d’E/S d’expansion CPM2C-24EDTC/ CPM2C-24EDT1C Unité d’E/S d’expansion 6 entrées 4 sorties 16 entrées 8 sorties entrées sorties entrées sorties Mot (m+1) bits 00 à 05 Mot (n+1) bits 00 à 03 Mot (m+1) bits 00 à 15 Mot (n+1) bits 00 à 07 Exemple : Cinq unités d’entrée/sortie d’expansion avec 24 points d’entrées/sorties sont connectées à l’unité centrale avec 20 points d’entrée/sortie pour un total de 140 points d’entrée--sortie. Unité 1 2 3 4 5 6 Unité centrale (CPM2A-20CDjj-j) Unité d’E/S d’expansion (CPM1A-24EDTC) Unité d’E/S d’expansion (CPM1A-24EDTC) Unité d’E/S d’expansion (CPM1A-24EDTC) Unité d’E/S d’expansion (CPM1A-24EDTC) Unité d’E/S d’expansion (CPM1A-24EDTC) Bits d’entrée alloués Bits de sortie alloués IR 00000 à IR 00011 IR 01000 à IR 01007 IR 00100 à IR 00115 IR 01100 à IR 01107 IR 00200 à IR 00215 IR 01200 à IR 01207 IR 00300 à IR 00315 IR 01300 à IR 01307 IR 00400 à IR 00415 IR 01400 à IR 01407 IR 00500 à IR 00515 IR 01500 à IR 01507 5-2-3 Zone SR Ces bits servent principalement de drapeaux lors du fonctionnement du CPM2A ou contiennent des valeurs en cours et de consigne pour les différentes fonctions. Pour de plus amples informations sur les diverses fonctions de bits, se reporter aux chapitres appropriés de ce manuel ou à l’Annexe C, Zones mémoire. Quelques mots de le zone SR sont utilisés comme mots de travail lorsqu’ils ne sont pas utilisés dans leur but assigné. 5-2-4 Zone TR Lorsque un schéma à contacts complexe ne peut pas être programmé directement en code mnémonique, ces bits sont utilisés pour mémoriser temporairement les conditions d’exécution “ON/OFF” aux points d’embranchement du programme. Ils sont utilisés seulement pour le code mnémonique. En programmant directement avec des schémas à contacts à l’aide du logiciel SYSMAC (SSS) ou le logiciel SYSMAC--CPT, les bits TR sont automatiquement traités. Les mêmes bits TR ne peuvent pas être utilisés plus d’une fois dans le même bloc d’instruction, mais peuvent être utilisés de nouveau dans différents blocs d’instruction. L’état “ON/OFF” de bits TR ne peut pas être contrôlé à partir d’un périphérique de programmation. Des exemples montrant l’utilisation des bits TR dans la programmation sont fournis à la page 294. 270 Fonctions des zones mémoire des CPM2A/CPM2C Chapitre 5-2 5-2-5 Zone HR Ces bits maintiennent leur état “ON/OFF” même après que l’alimentation du CPM2A soit désactivée ou lorsque l’opération commence ou s’arrête. Ils sont utilisés comme bits de travail. 5-2-6 Zone AR Ces bits servent principalement de drapeaux en relation au fonctionnement du CPM2A. Ces bits conservent leurs états même après que l’alimentation du CPM2A soit désactivée ou lorsque le fonctionnement commence ou s’arrête. Pour de plus amples informations sur les diverses fonctions de bits, se reporter aux chapitres appropries de ce manuel ou à l’Annexe C, Zones mémoire. 5-2-7 Zone LR Cette zone est utilisée pour échanger des données entre les API lorsque le CPM2A est lié Inter API avec un autre API tel que CPM2A, CPM1A, CPM2C, SRM1(--V2), CQM1, C200HS ou C200HX/HG/HE. Pour de plus amples informations, se reporter à la page 187. 5-2-8 Zone de temporisation/compteur Cette zone est utilisée pour gérer les temporisations et les compteurs créés avec TIM, TIMH(15), TMHH(-- --), TIML(-- --), CNT et CNTR(12). Les mêmes numéros sont utilisés pour les temporisations et les compteurs, ainsi chaque numéro peut être utilisé seulement une fois dans le programme de l’utilisateur. Ne pas utiliser le même numéro TC deux fois même pour différentes instructions. Utiliser les numéros TC 000 à 003 pour TIMH(15) et les numéros TC 004 à 007 pour TMHH(-- --). Lorsque ces numéros de temporisation sont utilisés, la temporisation est exécutée comme un processus d’interruption et le cycle de l’horloge n’affecte pas le fonctionnement de la temporisation. Les numéros TC sont utilisés pour créer des temporisations et des compteurs et pour accéder à des drapeaux de fin et de valeurs en cours (PV). Si un numéro TC est utilisé comme opérande de mot, il accédera à la valeur en cours (PV) ; s’il est utilisé comme opérande de bits, il accédera au drapeau de fin pour la temporisation/compteur. Se reporter aux instructions commençant à la page 26, pour de plus amples informations sur les temporisations et les compteurs. 5-2-9 Zone DM La zone de données DM est sollicitée dans les unités de mot seulement. Les contenus des zones DM sont conservés même après que l’alimentation du CPM2A soit désactivée ou lorsque le fonctionnement commence ou s’arrête. Les mots DM de DM 0000 à DM 1999 et DM 2022 à DM 2047 peuvent être utilisés librement dans le programme ; d’autres mots de DM sont des fonctions spécifiques allouées, décrites ci--dessous. Journal d’erreurs DM 2000 à DM 2021 contiennent les informations relatives au journal d’erreurs. Se reporter au Chapitre 9 Dépannage pour de plus amples informations sur le journal d’erreurs. Setup de l’API DM 6600 à DM 6655 contiennent le Setup de l’API. Se reporter au paragraphe 1--1 Setup de l’API pour de plus amples informations. 271 Chapitre Fonctions de la zone mémoire du SRM1(-V2) 5-3 5-3 Fonctions de la zone mémoire du SRM1(-V2) 5-3-1 Structure de la zone mémoire Les zones mémoire suivantes peuvent être utilisées avec le SRM1(--V2). Zone de données Zone IR1 Mots Bits Zone d’entrée IR 000 à IR 007 (8 mots) IR 00000 à IR 00715 (128 bits) Zone de sortie IR 010 à IR 017 (8 mots) IR 01000 à IR 01715 (128 bits) Fonction Ces mots peuvent être affectés aux bornes d’E/S externes. L’état ON/OFF des bits d’E/S est le même que l’état ON/OFF des borniers d’E/S. d’E/S (Lorsque le CompoBus/S est utilisé en mode 128 bits, IR 004 à IR 007 et IR 014 à IR 017 sont également utilisés en bits de travail). Les bits de travail sont librement utilisés dans le programme. Cependant IR 232 à IR 239 sont utilisés comme zone d’entrée MACRO lorsque MCRO(99) est utilisée. Ces bits servent d’espace de mémorisation pour les drapeaux et les fonction des valeurs de consigne / valeurs en cours pour le fonctionnement du SRM1. Se reporter à la Zone SR. Zone de tra- IR 008 à IR 009 vail IR 018 à IR 019 IR 200 à IR 239 (44 mots) Zone SR SR 240 à SR 255 (16 mots) IR 00800 à IR 00915 IR 01800 à IR 01915 IR 20000 à IR 23915 (704 bits) SR 24000 à SR 25507 (248 bits) Zone TR --- TR 0 à TR 7 (8 bits) Lorsqu’un schéma à contacts complexe ne peut pas enregistrer comme mnémonique, ces bits sont utilisés pour mémoriser temporairement l’état ON/OFF aux points d’embranchement du programme. Ces bits temporaires ne peuvent pas être utilisés au sein d’un même bloc mais lorsque les blocs sont différents, plusieurs peuvent être utilisés. L’état ON/OFF de ces bits ne peut pas être contrôlé par la fonction de contrôle du périphérique de programmation. Zone HR2 HR 00 à HR 19 (20 mots) HR 0000 à HR 1915 (320 bits) Ces bits mémorisent les données et conservent leur état ON/OFF lorsque l’alimentation est désactivée ou que le fonctionnement commence ou s’arrête. Ils sont utilisés comme bits de travail. Zone AR2 AR 00 à AR 15 (16 mots) AR 0000 à AR 1515 (256 bits) Ces bits remplissent des fonctions spécifiques telles que les drapeaux et le contrôles de bit. AR 04 à 07 sont utilisés comme esclaves. Se reporter à la Zone AR. Zone LR1 LR 00 à LR 15 LR 0000 à LR 1515 (16 mots) (256 bits) TC 000 à TC 127 (numéros des temporisation/ compteur)3 Zone de la temporisation/compteur2 Utilisé pour une liaison Inter API avec un autre API SRM1, CQM1 ou C200HS. Les temporisations et compteurs utilisent les instructions TIM, TIMH(15), CNT et CNTR(12). Les mêmes numéros sont utilisés pour les temporisations et les compteurs. Les numéros de temporisation/compteur seront spécifiés en tant que bits lors de traitement avec les valeurs en cours de temporisation/compteur. Les données du compteur seront mémorisées même lorsque l’alimentation du SRM1 est désactivée ou le fonctionnement est arrêté ou commencé. Lorsque les temporisations/compteurs sont traités comme des drapeaux de dépassement, le nombre devra être précisé comme donnée relais. 272 Chapitre Fonctions de la zone mémoire du SRM1(-V2) Zone de données DM zone Mots Lecture/écri- DM 0000 à DM 1999 ture2 (2 000 mots) Bits --- Journal d’er- DM 2000 à DM 2021 reurs4 (22 mots) --- Lecture seule4 Setup de l’API4 --- DM 6144 à DM 6599 (456 mots) DM 6600 à DM 6655 (56 mots) Rem. --- 5-3 Fonction Les données de la zone DM sont accessibles en unités de mots seulement. Les valeurs de mots sont conservées lorsque l’alimentation est désactivée ou le fonctionnement commence ou s’arrête. Zones lecture/écriture sont lisibles et saisissables librement sans le programme. Utilisé pour mémoriser l’occurence de l’horloge et le code d’erreurs survenant. Se reporter au 1-5 Codage des instructions à droite. Ne peut pas être écrasé depuis le programme. Utilisé pour mémoriser des paramètres différents contrôlant le fonctionnement de l’API. 1. Les bits IR et LR non utilisés dans leurs fonctions allouées peuvent être utilisés comme bits de travail. 2. Les contenus des zones HR, LR, compteur et DM de lecture/écriture sont sauvegardés par un condensateur ou une batterie. Se reporter au paragraphe 2--1--2 Caractéristiques du Manuel de programmation de l’unité de commande maître du SRM1 pour un graphique montrant le temps de sauvegarde en fonction de la température. 3. En accédant à une PV, les numéros TC sont utilisés comme données de mot ; en accédant aux drapeaux de fin, ils sont utilisés comme données de bits. 4. Des données de DM 6655 à DM 6144 ne peuvent pas être écrasées depuis le programme, mais elles peuvent être modifiées à partir d’un périphérique de programmation. 5-3-2 Zone IR Les fonctions de la zone IR sont expliquées ci--dessous. Bits d’E/S Les bits des zones IR 00000 à IR 00715 et IR 01000 à IR 01715 sont affectés aux bornes de l’unité centrale et de l’unité d’entrée/sortie. Ils reflètent l’état “ON/ OFF” de signaux d’entrée et de sortie. Les bits d’entrée commencent à IR 00000 et les bits de sortie commencent à IR 01000. Se reporter au paragraphe 1--4 Affectation de zones d’E/S et de données dans le Manuel de programmation des unités de commande maître du SRM1 pour de plus amples informations. Bits de travail Les bits de travail peuvent être utilisés librement dans le programme. Cependant ils ne peuvent s’utiliser que dans le programme, et non par des entrées/sorties externes directes. 5-3-3 Zone SR Ces bits servent principalement de drapeaux en relation au fonctionnement du SRM1 ou contiennent les valeurs en cours et de consigne pour des fonctions diverses. Pour de plus amples informations sur les fonctions des différents bits, se reporter aux chapitres pertinants de ce manuel ou de l’Annexe C, Zones mémoire. SR 240 à SR 247 et SR 250, SR 251 sont également utilisables comme bits de travail, lorsque les entrées d’interruption ne sont pas utilisées en mode compteur. SR 232 à SR 239 peuvent également être utilisés comme bits de travail lorsque l’instruction MCRO(99) n’est pas utilisée. 273 Fonctions de la zone mémoire du SRM1(-V2) Chapitre 5-3 5-3-4 Zone TR Lorsqu’un schéma à contacts complexe ne peut pas être programmé en code mnémonique dans l’état, ces bits sont utilisés pour sauvegarder temporairement des conditions d’exécution “ON/OFF” aux points d’embranchement du programme. Ils sont utilisés uniquement pour le code mnémonique. En programmant directement avec les schémas à contacts utilisant le logiciel SYSMAC (SSS) ou le logiciel SYSMAC--CPT, les bits TR sont automatiquement traités. Les mêmes bits TR ne peuvent pas être utilisés plus d’une fois dans le même bloc d’instruction, mais peuvent être utilisés de nouveau dans différents blocs d’instruction. L’état “ON/OFF” des bits TR ne peut pas être contrôlé à partir d’un périphérique de programmation. Des exemples montrant l’utilisation des bits TR dans la programmation sont fournis à la page 294. 5-3-5 Zone HR Ces bits conservent leur état “ON/OFF” même après que l’alimentation du SRM1 soit désactivée ou lorsque l’opération commence ou s’arrête. Ils sont utilisés comme bits de travail. 5-3-6 Zone AR Ces bits servent principalement de drapeaux par rapport au fonctionnement du SRM1. Ces bits conservent leur état même après que l’alimentation du SRM1 soit arrêtée ou lorsque le fonctionnement commence ou s’arrête. Pour de plus amples informations sur les diverses fonctions de bits, se reporter aux chapitres appropriés de ce manuel ou à l’Annexe C, Zones mémoire. 5-3-7 Zone LR Lorsque le SRM1 est lié Inter API avec un autre API : SRM1, CQM1, CPM1/CPM1A ou C200HS, ces bits sont utilisés pour partager des données. Pour de plus amples informations, se reporter à la page 187. Les bits LR peuvent être utilisés comme bits de travail lorsqu’ils ne sont pas utilisés pour des liaisons Inter API. 5-3-8 Zone de temporisation/compteur Cette zone est utilisée pour contrôler les temporisations et les compteurs créés par TIM, TIMH(15), CNT et CNTR(12). Les mêmes numéros sont utilisés pour les temporisations et les compteurs ainsi chaque numéro ne peut être utilisé qu’une fois dans le programme de l’utilisateur. Ne pas utiliser le même numéro TC deux fois même pour différentes instructions. Les numéros de TC sont utilisés pour créer des temporisations et des compteurs, ainsi que pour accéder aux drapeaux de fin et aux valeurs en cours (PV). Si un numéro TC est indiqué pour des données de mot, il atteindra la valeur en cours (PV) ; s’il est utilisé pour des données de bits, il accédera au drapeau de fin pour la temporisation/compteur. Se reporter aux instructions de la page 26 pour de plus amples informations sur des temporisations et des compteurs. 5-3-9 Zone DM La zone de données DM est sollicitée par des unités de mot seulement. Les contenus des zones DM sont conservés même après que l’alimentation du SRM1 soit arrêtée ou lorsque le fonctionnement commence ou s’arrête. Les mots DM 0000 à DM 1999 sont utilisés librement dans le programme ; d’autres mots de DM sont affectés aux fonctions spécifiques décrites ci--dessous. 274 Mémoire flash du SRM1(-V2) Chapitre 5-4 Journal d’erreurs DM 2000 à DM 2021 contiennent les informations du journale d’erreurs. Se reporter au Chapitre 9, Dépannage pour de plus amples informations sur le journal d’erreurs. Setup de l’API DM 6600 à DM 6655 contiennent le Setup de l’API. Se reporter au paragraphe 1--1 Setup de l’API, pour de plus amples informations. 5-4 Mémoire flash du SRM1(-V2) Les configurations suivantes doivent être effectuées pour utiliser la zone de mémoire flash des API du SRM1(-V2). Données d’écriture Afin d’écrire les contenus de : la zone UM, la zone de lecture seule de DM (DM 6144 à DM 6599) et la zone du Setup de l’API (DM 6600 à DM 6655) dans la mémoire flash, l’une des opérations suivantes doit être effectuée : ! Basculer le SRM1 au mode MONITOR ou PROGRAM. ! Placer l’alimentation du SRM1 sur OFF puis de nouveau sur ON. Rem. Sauvegarde du condensateur du SRM1-CO01/02 Si les modifications décrites ci--dessus concernent les zones mémoire, elles ne sont pas écrites dans la mémoire flash, et lorsque l’alimentation sera désactivée pendant 20 jours ou plus (à 25"C), les modifications (dans la RAM) seront perdues. Si cela se produit, les contenus inchangés seront lus par la mémoire flash lorsque l’API redémarrera. Modification des zones mémoire En actionnant le SRM1 pour la première fois, après que des modifications aient été faites dans la zone UM, la zone de lecture seule de DM (DM 6144 à DM 6599) et la zone du Setup de l’API (DM 6655 à DM 6600) tiennent compte de l’effet résultant du retard de SRM1 dans le fonctionnement avec les autres périphériques. La première action du SRM1, après que les zones mémoire aient été changées comme ci--dessus, aura lieu au maximum 850 ms plus tard que l’éxécution de la première action normale sans modification. Cycle d’horloge Un dépassement de cycle d’horloge ne sera pas émis tant que l’une des actions suivantes sera effectuée en un des modes MONITOR ou OPERATION. Attention aux effets de correction en ligne du temps de réponse d’E/S du SRM1. ! Modifie le programme utilisant la correction en ligne. ! Modifie la zone de lecture seule de DM (DM 6144 à DM 6599). ! Modifie la zone du Setup de l’API (DM 6600 à DM 6655). Lorsque l’une des opérations décrites ci--dessus est effectuée, le cycle de l’horloge du SRM1 augmentera de 850 ms maximum. Durant ces interruptions minuscules, il sera désactivé pendant que les contenus du programme ou de la mémoire seront écrits. 275 CHAPITRE 6 Programmation en schéma à contacts Ce chapitre explique les étapes et les concepts de base impliqués dans l’écriture d’un programme de base en schéma à contacts. Il introduit les instructions qui sont utilisées pour bâtir la structure de base du schéma à contacts et commander son déroulement. L’ensemble complet d’instructions utilisé pour la programmation est décrit au Chapitre 7 Ensemble d’instructions. 6-1 6-2 6-3 6-4 6-5 6-6 6-7 Procédure fondamentale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Terminologie des instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Les bases du schéma à contacts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-3-1 Terminologie fondamentale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-3-2 Code mnémonique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-3-3 Instructions à contacts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-3-4 OUTPUT et OUTPUT NOT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-3-5 L’instruction END . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-3-6 Instructions de bloc logique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-3-7 Codage d’instructions multiples de droite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-3-8 Lignes secondaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-3-9 Sauts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Commande de l’état des bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-4-1 SET et RESET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-4-2 DIFFERENTIATE UP et DIFFERENTIATE DOWN . . . . . . . . . . . . . . . . . . . . . 6-4-3 KEEP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-4-4 Bits à auto--maintien (Scellement) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Bits de travail (Relais internes) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Conseils d’utilisation à la programmation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Exécution des programmes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278 278 279 280 280 282 284 285 285 293 293 297 299 299 300 300 300 301 303 305 277 Chapitre Procédure fondamentale 6-1 6-1 Procédure fondamentale Il y a plusieurs étapes de base impliquées dans l’écriture d’un programme. Les feuilles qui peuvent être copiées pour l’aide à la programmation sont données à l’Annexe D Feuille d’affectation des entrées/sorties et à l’Annexe E Feuille de codage des programmes. 1, 2, 3... 1. Dresser la liste de tous les périphériques d’E/S et des points d’E/S qui leur ont été attribués ; préparer un tableau des bit d’E/S attribués à chaque périphérique d’E/S. 2. Préparer les feuilles détaillant l’utilisation de chaque bit, lorsque les bits LR sont utilisés pour relier deux API. 3. Déterminer quels sont les canaux disponibles pour les bits de travail et préparer un tableau d’attribution de ces canaux selon leur utilisation. 4. Préparer également des tableaux comportant les numéros de TC et de sauts de façon à pouvoir les attribuer au fur et à mesure. Attention, la fonction d’un numéro de TC ne peut être définie qu’une seule fois dans le programme et les numéros de saut 01 à 99 ne peuvent être utilisés qu’une seul fois chacun (les numéros de TC sont décrits dans le paragraphe 1-15 Instructions pour les temporisations et les compteurs ; les numéros de saut sont décrits plus loin dans ce chapitre). 5. Dessiner le schéma à contacts. 6. Entrer le programme dans l’UC. L’utilisation de la console de programmation implique la conversion du programme en forme mnémonique. 7. Corriger les éventuelles erreurs de syntaxe du programme. 8. Exécuter le programme pour corriger les éventuelles erreurs d’exécution. 9. Après l’installation du système de contrôle complet et lorsque celui-ci est prêt à l’utilisation, exécuter le programme et effectuer les réglages qui s’imposent. Les bases de la programmation en schéma à contacts et de la conversion en mode mnémonique sont décrites en 6--3 Schémas à contact de base. La préparation et l’introduction du programme par l’intermédiaire de la console de programmation sont décrites dans le Manuel de programmation du CPM1, le Manuel de programmation du CPM1A, le Manuel de programmation du CPM2A, le Manuel de programmation du CPM2C et le Manuel de programmation des Unités maîtres de contrôle SRM1 et, par l’intermédiaire du SSS, dans le Manuel de programmation du SSS : API série C. Le reste du Chapitre 6 couvre la programmation plus avancée, les conseils d’utilisation à la programmation et le déroulement des programmes. Toutes les instructions spéciales d’application sont couvertes au Chapitre 7 Ensemble d’instructions. La mise au point est décrite dans le Manuel de programmation du CPM1, le Manuel de programmation du CPM1A, le Manuel de programmation du CPM2A, le Manuel de programmation du CPM2C, le Manuel de programmation des Micro--automates maîtres d’entrées/sorties déportées SRM1 et le Manuel de programmation du SSS : API série C. Le Chapitre 9 Dépannages donne aussi les informations nécessaires à la mise au point. 6-2 Terminologie des instructions Il existe deux types d’instructions en schéma à contacts : les instructions qui correspondent à des conditions, utilisées sous la forme d’instructions uniquement lors de la conversion en mnémonique et les instructions utilisées sur la partie de droite du schéma, exécutées en fonction des conditions se trouvant sur les lignes secondaires. La plupart des instructions ont au moins un opérande associé. Les opérandes fournissent des informations concernant l’exécution d’une instruction. Elles 278 Chapitre Les bases du schéma à contacts 6-3 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. Par exemple, une instruction MOVE (déplacer) ayant IR 000 comme opérande de source désigné déplace le contenu de IR 000. L’emplacement de destination est également désigné comme opérande. Un bit dont l’adresse est désignée comme opérande est appelé bit opérande ; un canal dont l’adresse est désignée comme opérande est appelé canal opérande. Si la valeur réelle est entrée comme constante, elle est précédée de “#” pour indiquer que ce n’est pas une adresse. D’autres termes utilisés pour décrire les instructions sont présentés au Chapitre 7 Ensemble d’instructions. 6-3 Les bases du schéma à contacts Un schéma à contacts comporte une ligne et des embranchements. La ligne de gauche est la ligne de bus (ou omnibus) et les lignes d’embranchemnent sont les lignes secondaires ou lignes secondaires. Le long des lignes secondaires, se trouvent des conditions, menant à d’autres instructions situées sur la droite. Les combinaisons logiques de ces conditions déterminent l’exécution des conditions de droite. Exemple de schéma à relais : 00000 20000 25208 HR 0109 LR 0003 20001 20002 Instruction 00001 00100 00002 00501 00003 HR 0050 00502 00007 TIM 001 LR 0515 00503 00504 00403 00405 Instruction 00010 21001 21002 00011 21005 21007 Comme il est représenté dans le schéma ci--dessus, des lignes secondaires peuvent se brancher séparément et elles peuvent se réunir à nouveau. Les paires de lignes verticales sont appelées conditions. Les conditions sans diagonales à travers sont appelées conditions normalement ouvertes et elles correspondent à une instruction LOAD, AND ou OR. Les conditions avec diagonales à travers sont appelées conditions normalement fermées et correspondent à une instruction LOAD NOT, AND NOT ou OR NOT. Le numéro au--dessus de chaque condition indique le bit opérande pour l’instruction. C’est l’état du bit associé à chaque condition qui détermine la condition de déroulement pour les instructions suivantes. La façon dont le fonctionnement de chacune des instructions correspond à une condition est décrite ci--dessous. Avant de considérer celles--ci, cependant, il y a certains termes de base qu’il faut expliquer. Rem. Lorsque des schémas à contacts sont affichés avec le SSS, une seconde ligne omnibus du côté droit du schéma à contacts sera représentée et connectée à toutes les instructions du côté droit. Ceci ne change pas le programme en schéma à contacts dans un sens fonctionnel quelconque. Il n’est pas possible de placer des conditions entre les instructions du côté droit et la ligne omnibus de droite, c’est--à--dire que toutes les instructions du côté droit doivent être connectées directement à la ligne omnibus de droite. Voir le Manuel de programmation du SSS : API série C pour de plus amples informations. 279 Chapitre Les bases du schéma à contacts 6-3-1 6-3 Terminologie fondamentale Conditions normalement ouverte et normalement fermée Chaque condition dans un schéma à contacts est soit ON, soit OFF, suivant l’état de l’opérande qui lui a été affecté. Une condition normalement ouverte est ON si le bit opérande est ON ; OFF si le bit opérande est OFF. En général, une condition normalement ouverte est utilisée si quelque chose doit se produire quand un bit est ON, et normalement fermée si quelque chose doit se produire quand un bit est OFF. 00000 Instruction Condition normalement ouverte 00000 Instruction Condition normalement ouverte L’instruction s’exécute lorsque le bit 00000 d’IR est ON. L’instruction s’exécute lorsque le bit 00000 d’IR est ON. Conditions d’exécution Dans la programmation en schéma à contacts, la combinaison logique des conditions ON et OFF avant une instruction détermine la condition résultante sous laquelle l’instruction est exécutée. Cette condition, qui est ON ou bien OFF, est appelée condition d’exécution pour l’instruction. Toutes les instructions autres que les instructions LOAD ont des conditions d’exécution. Bits d’opérandes Les opérandes désignés pour des instructions de contact quelconques peuvent être un bit dans les zones IR, SR, HR, AR, LR ou TC. Cela signifie que les conditions dans un schéma à contacts peuvent être déterminées par des bits d’entrée/sortie, des drapeaux, des bits de travail, des temporisations/compteurs, etc. Les instructions LOAD et OUTPUT peuvent aussi utiliser des bits de la zone TR, mais elles ne le font que dans des applications spéciales. Se reporter à 6--3--8 Lignes secondaires de branchement pour de plus amples informations. Blocs logiques La façon dont les conditions correspondent à quelles instructions est déterminée par la relation entre les conditions dans les lignes secondaires qui les connectent. Tout groupe de conditions qui vont ensemble pour créer un résultat logique est appelé un bloc logique. Bien que les schémas à contacts puissent être écrits sans véritable analyse individuelle des blocs logiques, il faut comprendre les blocs logiques pour programmer efficacement et c’est essentiel quand les programmes doivent être introduits en code mnémonique. Blocs d’instructions Un bloc d’instructions comprend toutes les instructions reliées entre elles dans le schéma à contacts. Un bloc d’instructions comprend donc toutes les instructions entre lesquelles on peut dessiner une ligne horizontale sans rencontrer de ligne verticale dans le schéma à contacts et ce jusqu’à l’emplacement suivant où le même genre de ligne peut être dessiné. 6-3-2 Code mnémonique Le schéma à contacts ne peut pas être introduit directement dans l’API au moyen d’une console de programmation ; il faut un SSS (SYSWIN). Pour l’introduire d’une console de programmation, il faut convertir le schéma à contacts en code mnémonique. Le code mnémonique fournit exactement la même information que le schéma à contacts, mais sous une forme qui peut être tapée directement dans l’API. En réalité, un programme direct en code mnémonique est possible, bien que ce ne soit pas recommandé pour les débutants ou pour les programmes complexes. Et quel que soit le périphérique de programmation utilisé, le programme est mis en mémoire sous forme mnémonique, ce qui fait qu’il est important de comprendre ce code. 280 Chapitre Les bases du schéma à contacts 6-3 Etant donné l’importance de la console de programmation comme périphérique de programmation et l’importance du code mnémonique pour comprendre complètement un programme, nous présenterons et décrirons le code mnémonique en même temps que le schéma à contacts. Il faut se rappeler qu’il ne sera pas nécessaire d’utiliser le code mnémonique si le programme est introduit au moyen du SSS (bien qu’il soit possible de l’utiliser avec le SSS ou non). Structure de la mémoire de programme Le programme est introduit dans des adresses de la mémoire de programme. Les adresses de la mémoire de programme sont légèrement différentes de celles dans les autres zones mémoire parce que chaque adresse ne contient pas nécessairement la même quantité de données. En réalité, chaque adresse contient une instruction et toutes les données d’opérande et opérandes (décrits plus en détail plus loin) nécessaires à cette instruction. Comme certaines instructions ne demandent pas d’opérandes, tandis que d’autres en demandent jusqu’à trois, les adresses de la mémoire de programmes peuvent avoir une longueur de un à quatre mots. Les adresses de la mémoire de programmes démarrent à 00000 et vont jusqu’à ce que la capacité de la mémoire de programmes ait été épuisée. Le premier mot de chaque adresse définit l’instruction. Toutes les données d’opérande utilisées par l’instruction sont contenues aussi dans le premier mot. D’autre part, si une instruction demande seulement un seul bit opérande (sans donnée d’opérande), le bit opérande est programmé aussi sur la même ligne que l’instruction. Le restant des mots demandés par une instruction contient les opérandes qui spécifient quelles sont les données à utiliser. Lors d’une conversion en code mnémonique, toutes les instructions sauf celles du schéma à contacts sont écrites sous la même forme, un mot par ligne, exactement comme elles apparaissent dans les symboles du schéma à contacts. Un exemple de code mnémonique est représenté ci--dessous. Les instructions qui y sont utilisées sont décrites plus loin dans le manuel. Adresse Instruction 00000 00001 00002 00003 00004 00005 00006 LD AND OR LD NOT OR AND LD MOV(21) Opérande HR DM 00007 00008 00009 00010 00011 00012 00013 0001 00001 00002 00100 00101 000 0000 CMP(20) DM HR 0000 00 25505 20000 DM DM 0000 0500 00502 00005 20001 AND OUT MOV(21) LD AND OUT Les colonnes d’adresses et d’instructions du tableau du code mnémonique sont remplies seulement pour le mot d’instruction. Pour toutes les autres lignes, les deux colonnes de gauche sont laissées vides. Si l’instruction ne demande pas de donnée d’opérande ou de bit opérande, la colonne de l’opérande est laissée vide à la première ligne. C’est une bonne idée de parcourir tous les espaces 281 Chapitre Les bases du schéma à contacts 6-3 vides des colonnes de données (pour tous les mots d’instruction qui ne demandent pas de données), de sorte que la colonne de données peut être rapidement balayée pour voir s’il y a des adresses qui ont été laissées de côté. Lors d’un programme, les adresses sont automatiquement affichées et il ne faut pas les introduire, à moins que pour une raison quelconque un autre emplacement pour l’instruction soit voulu. Lors d’une conversion en code mnémonique, il vaut mieux démarrer à l’adresse 00000 de la mémoire de programmes, à moins qu’il y ait une raison spécifique de démarrer d’ailleurs. 6-3-3 Instructions à contacts Les instructions à contacts correspondent aux conditions ; qu’elles soient indépendantes ou combinées avec le bloc logique, elles forment les conditions sur lesquelles toutes les autres instructions sont fondées. LOAD et LOAD NOT La première condition qui commence un bloc logique quelconque dans un schéma à contacts correspond à une instruction LOAD ou LOAD NOT. Chacune de ces instructions demande une ligne de code mnémonique. Dans les schémas suivants, on appelle ”instruction” une instruction servant d’exemple et qui pourrait être n’importe laquelle des instructions figurant à droite du schéma. 00000 Adresse Instruction LOAD 00000 00001 00002 00003 00000 Instruction LOAD NOT Instruction LD Instruction LD NOT Instruction Opérandes 00000 00000 Quand c’est la seule condition dans la ligne secondaire, la condition d’exécution pour l’instruction de droite est ON si la condition est ON. Pour l’instruction LOAD (c’est--à--dire une condition normalement ouverte), la condition d’exécution serait ON si IR 00000 était ON ; pour l’instruction LOAD NOT (c’est--à--dire une condition normalement fermée), ce serait ON si IR 00000 était OFF. AND et AND NOT Quand deux ou plusieurs conditions sont en série sur la même ligne secondaire, la première correspond à une instruction LOAD ou LOAD NOT ; et le reste des conditions à des instructions AND ou AND NOT. L’exemple suivant représente trois conditions qui correspondent dans l’ordre à partir de la gauche à une instruction LOAD, une AND NOT et une AND. De nouveau, chacune de ces instructions demande une ligne de code mnémonique. 00000 00100 LR 0000 Instruction Adresse 00000 00001 00002 00003 Instruction LD AND NOT AND Instruction Opérandes LR 00000 00100 0000 L’instruction aurait une condition d’exécution ON seulement si les trois conditions étaient ON, c’est--à--dire si IR 00000 était ON, IR 00100 était OFF et LR 0000 était ON. Les instructions AND en série peuvent être considérées individuellement, chacune prenant en compte le AND logique de la condition d’exécution précédente (c’est--à--dire l’ensemble des conditions jusqu’à ce point) et l’état du bit opé- 282 Chapitre Les bases du schéma à contacts 6-3 rande de l’instruction AND. Si tous les deux sont ON, une condition d’exécution ON se produira pour l’instruction suivante. Si l’un des deux est OFF, le résultat sera aussi OFF. La condition d’exécution pour la première instruction AND dans une série est la première condition sur la ligne secondaire. Chaque instruction AND NOT dans une série prend en compte le AND logique entre sa condition d’exécution et l’inverse de son bit opérande. OR et OR NOT Quand plusieurs conditions se trouvent sur des lignes secondaires séparées mais parallèles et se rejoignant ensuite, la première condition correspond à une instruction LOAD ou LOAD NOT ; le restant des conditions correspond à des instructions OR ou OR NOT. L’exemple suivant représente trois conditions qui correspondent, dans l’ordre à partir du haut, à une instruction LOAD NOT, une OR NOT et une OR. De nouveau, chacune de ces instructions demande une ligne de code mnémonique. 00000 Instruction 00100 LR 0000 Adresse 00000 00001 00002 00003 Instruction Opérandes LD NOT OR NOT OR Instruction 00000 00100 0000 LR L’instruction aurait une condition d’exécution ON si l’une quelconque des trois conditions était ON, c’est--à--dire si IR 00000 était OFF, si IR 00100 était OFF ou si LR 0000 était ON. Les instructions OR et OR NOT peuvent être considérées individuellement, chacune assumant le OR logique entre sa condition d’exécution et l’état du bit opérande de l’instruction OR. Si l’un de ceux--ci était ON, une condition d’exécution ON se produirait pour l’instruction suivante. Combinaison des instructions AND et OR Si des instructions AND et OR sont combinées dans des schémas plus compliqués, elles peuvent être parfois considérées individuellement, chaque instruction effectuant une opération logique sur la condition d’exécution et l’état du bit opérande. Voici un exemple. Etudiez cet exemple jusqu’à ce que vous soyez convaincu que le code mnémonique suit le même cheminement logique que le schéma à contacts. 00000 00001 00002 00003 Instruction 00200 Adresse 00000 00001 00002 00003 00004 00005 Instruction LD AND OR AND AND NOT Instruction Opérandes 00000 00001 00200 00002 00003 283 Chapitre Les bases du schéma à contacts 6-3 Ici un AND est pris entre l’état de IR 00000 et celui de IR 00001 pour déterminer la condition d’exécution pour un OR avec l’état de IR 00200. Le résultat de cette opération détermine la condition d’exécution pour un AND avec l’état de IR 00002, qui à son tour détermine la condition d’exécution pour un AND avec l’inverse (c’est--à--dire, et AND NOT) de l’état de IR 00003. Dans des schémas plus compliqués, cependant, il faut considérer des blocs logiques avant de pouvoir déterminer une condition d’exécution pour l’instruction finale, et c’est là que les instructions AND LOAD et OR LOAD sont utilisées. Avant de considérer des schémas plus compliqués, cependant, nous allons examiner les instructions nécessaires à effectuer un simple programme ”entrée--sortie”. 6-3-4 OUTPUT et OUTPUT NOT La façon la plus simple de sortir les résultats de conditions d’exécution combinées est de les sortir directement avec les OUTPUT et OUTPUT NOT. Ces instructions sont utilisées pour commander l’état du bit opérande désigné en fonction de la condition d’exécution. Avec l’instruction OUTPUT, l’opérande sera mis sur ON aussi longtemps que la condition d’exécution est ON et sera mis sur OFF aussi longtemps que la condition d’exécution est OFF. Avec l’instruction OUTPUT NOT, l’opérande sera mis sur ON aussi longtemps que la condition d’exécution est OFF et sera mis sur OFF aussi longtemps que la condition d’exécution est ON. Ces faits apparaissent comme il est représenté ci--dessous. En code mnémonique, chacune de ces instructions demande une ligne. Adresse 00000 01000 00000 00001 Instruction LD OUT Opérandes 00000 01000 00001 01001 Adresse 00000 00001 Instruction LD OUT NOT Opérandes 00001 01001 Dans les exemples ci--dessus, IR 01000 sera ON aussi longtemps que IR 00000 est ON et IR 01001 sera OFF aussi longtemps que IR 00001 est ON. Ici, IR 00000 et IR 00001 seraient des bits d’entrée et IR 01000 et IR 01001 des bits de sortie affectés aux unités commandées par l’API, c’est--à--dire que les signaux arrivant par IR 00000 et IR 00001 affectés aux points d’entrée commandent IR 01000 et IR 01001 affectés aux points de sortie, respectivement. Le temps pendant lequel un bit est ON ou OFF peut être réglé en combinant l’instruction OUTPUT ou OUTPUT NOT avec des instructions de temporisation. Se reporter aux exemples sous 7--15--1 Temporisation -- TIM pour de plus amples informations. 284 Chapitre Les bases du schéma à contacts 6-3-5 6-3 L’instruction END La dernière instruction nécessaire pour terminer un programme simple est l’instruction END. Quand l’UC balaye le programme, elle exécute toutes les instructions jusqu’à la première instruction END avant de retourner au début du programme et de recommencer l’exécution. Bien qu’une instruction END puisse être placée n’importe où dans un programme, ce qui se fait parfois à la mise au point, aucune instruction après la première instruction END ne sera exécutée jusqu’à ce que celle--ci soit enlevée. Le nombre suivant l’instruction END dans le code mnémonique est son code de fonction, qui est utilisé quand la plupart des instructions sont entrées dans l’API. Celles--ci sont décrites plus loin. L’instruction END ne demande pas d’opérandes et aucune condition ne peut être placée avec elle sur la même ligne secondaire. 00000 00001 Instruction END(01) Adresse 00500 00501 00502 00503 Instruction LD AND NOT Instruction END(01) L’exécution du programme s’arrête ici. Opérandes 00000 00001 --- S’il n’y a d’instruction END nulle part dans le programme, il ne sera pas exécuté du tout. Vous avez maintenant toutes les instructions nécessaires pour écrire de simples programmes d’entrée--sortie. Avant d’en finir avec les bases des schémas à contacts et de passer à l’introduction du programme dans l’API, examinons les instructions de bloc logique (AND LOAD et OR LOAD), qui sont parfois nécessaires même avec des schémas simples. 6-3-6 Instructions de bloc logique Les instructions de bloc logique ne correspondent pas à des conditions spécifiques sur le schéma à contacts ; elles décrivent plutôt des relations entre les blocs logiques. L’instruction AND LOAD fait l’intersection logique des conditions d’exécution produites par les deux blocs logiques. L’instruction OR LOAD fait la réunion logique des conditions d’exécution produites par les deux blocs logiques. AND LOAD Bien que simple en apparence, le schéma ci--dessous demande une instruction AND LOAD. 00000 00002 Instruction 00001 00003 Adresse Instruction 00000 00001 00002 00003 00004 LD OR LD OR NOT AND LD Opérandes 00000 00001 00002 00003 --- 285 Chapitre Les bases du schéma à contacts 6-3 Les deux blocs logiques sont indiqués par des lignes en pointillé. L’étude de cet exemple montre qu’une condition d’exécution ON sera produite quand : l’une des deux conditions dans le bloc logique de gauche est ON (c’est--à--dire quand IR 00000 ou bien IR 00001 est ON), et quand l’une des deux conditions dans le bloc logique de droite est ON (c’est--à--dire quand IR 00002 est ON ou bien IR 00003 est OFF). Il n’est cependant pas possible de convertir le schéma à contacts ci--dessus en code mnémonique en utilisant seulement des instructions AND et OR. Si un AND est tenté entre IR 00002 et les résultats d’un OR entre IR 00000 et IR 00001, le OR NOT entre IR 00002 et IR 00003 est perdu et le OR NOT finit par être un OR NOT simplement entre IR 00003 et le résultat d’un AND entre IR 00002 et le premier OR. Ce qu’il nous faut, c’est une façon de faire les OR(NOT) indépendamment et puis de combiner les résultats. Pour ce faire, nous pouvons utiliser l’instruction LOAD ou LOAD NOT au milieu d’une ligne secondaire. Quand LOAD ou LAOD NOT est exécuté de cette façon, la condition actuelle de l’instruction est sauvegardée dans des mémoires tampons spéciales et l’opération logique recommence. Pour combiner les résultats de la condition d’exécution actuelle à celle d’une condition d’exécution précédente ”non utilisée”, une instruction AND LOAD ou une instruction OR LOAD est utilisée. Ici ”LOAD” se rapporte au chargement de la dernière condition d’exécution non utilisée. Une condition d’exécution non utilisée est produite en utilisant l’instruction LOAD ou LOAD NOT pour une condition autre que la première sur une ligne secondaire. L’analyse du schéma ci-dessus en termes d’instructions mnémoniques révèle que la condition de IR 00000 est une instruction LOAD et que la condition située au-dessous est un OR entre l’état de IR 00000 et celui de IR 00001. La condition de IR 00002 est une nouvelle instruction LOAD et la condition située au-dessous est un OR NOT (un OR entre l’état de IR 00002 et l’état inverse de IR 00003). Pour parvenir à la condition d’exécution de l’instruction de droite, il faut prendre le AND logique des conditions d’exécution résultant de celles de ces deux blocs, avec AND LOAD. On trouvera ci-dessous les codes mnémoniques correspondant au schéma. L’instruction AND LOAD ne nécessite aucun opérande particulier parce qu’elle fonctionne sur des conditions préalablement déterminées. Les pointillés indiquent que les opérandes n’ont pas besoin de désignation ni d’entrée. OR LOAD Le schéma suivant demande une instruction OR LOAD entre le bloc logique du haut et le bloc logique du bas. Une condition d’exécution ON serait produite pour l’instruction à droite, soit si IR 00000 est ON et IR 00001 est OFF, soit si IR 00002 et IR 00003 sont tous les deux ON. Le fonctionnement et le code mnémonique de l’instruction OR LOAD sont exactement les mêmes que pour une instruction AND LOAD, excepté que la condition d’exécution actuelle est soumise à une réunion logique avec la dernière condition d’exécution non utilisée. 00000 00001 Instruction 00002 Adresse 00000 00001 00002 00003 00004 286 00003 Instruction LD AND NOT LD AND OR LD Opérandes 00000 00001 00002 00003 --- Chapitre Les bases du schéma à contacts 6-3 Evidemment, certains schémas vont demander à la fois des instructions AND LOAD et OR LOAD. Pour coder les schémas avec des instructions de blocs logiques en série, il faut les diviser en blocs logiques. Chaque bloc est codé en utilisant une instruction LOAD pour coder la première condition, puis AND LOAD ou OR LOAD sont utilisés pour combiner logiquement les blocs. Avec AND LOAD et OR LOAD il y a deux façons de le faire. L’une est de coder l’instruction du bloc logique après les deux premiers blocs et puis après chaque bloc supplémentaire. L’autre est de coder tous les blocs à combiner, en commençant chaque bloc par LOAD ou LOAD NOT, et puis de coder les instructions de bloc logique qui les combinent. Dans ce cas, il faut combiner d’abord les instructions pour la dernière paire de blocs, et puis combiner chaque bloc précédent, en remontant progressivement au premier bloc. Bien que chacune de ces méthodes produise exactement le même résultat, la seconde, celle qui consiste à coder toutes les instructions de bloc logique ensemble, peut être utilisée seulement si huit blocs ou moins sont combinés, c’est--à--dire s’il faut sept instructions de blocs logiques ou moins. Instructions de bloc logique en série Le schéma suivant demande que AND LOAD soit converti en code mnémonique parce que trois paires de conditions parallèles sont en série. Les deux moyens de coder les programmes sont aussi représentés. 00000 00002 00004 20000 00001 Adresse 00000 00001 00002 00003 00004 00005 00006 00007 00008 Instruction LD OR NOT LD NOT OR AND LD LD OR AND LD OUT 00003 Opérandes 00000 00001 00002 00003 — 00004 00005 — 20000 00005 Adresse 00000 00001 00002 00003 00004 00005 00006 00007 00008 Instruction LD OR NOT LD NOT OR LD OR AND LD AND LD OUT Opérandes 00000 00001 00002 00003 00004 00005 — — 20000 Ici aussi, avec la méthode à droite, un maximum de huit blocs peuvent être combinés. Il n’y a pas de limite au nombre de blocs pouvant être combinés avec la première méthode. Le schéma suivant demande que les instructions OR LOAD soient converties en code mnémonique parce que trois paires de conditions en série sont en parallèle les unes avec les autres. 00000 00001 20001 00002 00003 00004 00005 287 Chapitre Les bases du schéma à contacts 6-3 La première de chaque paire de conditions est convertie en LOAD avec le bit opérande affecté et puis soumise à intersection logique avec l’autre condition. Les deux premiers blocs peuvent être codés d’abord, suivis par OR LOAD, le dernier bloc et un autre OR LOAD, ou bien les trois blocs peuvent être codés d’abord, suivis par deux OR LOAD. Le code mnémonique pour les deux méthodes est représenté ci--dessous : Adresse Instruction 00000 00001 00002 00003 00004 00005 00006 00007 00008 LD AND NOT LD NOT AND NOT OR LD LD AND OR LD OUT Opérandes 00000 00001 00002 00003 — 00004 00005 — 20001 Adresse Instruction 00000 00001 00002 00003 00004 00005 00006 00007 00008 LD AND NOT LD NOT AND NOT LD AND OR LD OR LD OUT Opérandes 00000 00001 00002 00003 00004 00005 — — 20001 Ici aussi, avec la méthode à droite, un maximum de huit blocs peuvent être combinés. Il n’y a pas de limite au nombre de blocs pouvant être combinés avec la première méthode. Combinaison de AND LOAD et OR LOAD Il est possible aussi, d’utiliser les deux méthodes de codage décrites ci--dessus en utilisant AND LOAD et OR LOAD, aussi longtemps que le nombre de blocs à combiner ne dépasse pas huit. Le schéma suivant ne contient que deux blocs logiques comme il est représenté. Il n’est pas nécessaire de séparer encore les composants du bloc b, parce qu’il est possible de le coder directement en n’utilisant que AND et OR. 00000 00001 00002 00003 20001 00201 00004 Bloc a Bloc b Adresse Instruction 00000 00001 00002 00003 00004 00005 00006 00007 LD AND NOT LD AND OR OR AND LD OUT Opérandes 00000 00001 00002 00003 00201 00004 — 20001 Bien que le schéma suivant soit semblable à celui ci--dessus, le bloc b dans le schéma ci--dessous ne peut être codé sans le séparer en deux blocs combinés par OR LOAD. Dans cet exemple, les trois blocs ont été codés d’abord et puis OR LOAD a été utilisé pour combiner les deux derniers blocs, suivi par AND LOAD pour combiner la condition d’exécution produite par le OR LOAD avec la condition d’exécution du bloc a. 288 Chapitre Les bases du schéma à contacts 6-3 Lorsque les instructions de bloc logique sont codées ensemble à la fin des blocs logiques qu’elles combinent, il faut les coder dans l’ordre inverse, comme indiqué ci--dessous, c’est--à--dire que l’instruction de bloc logique est d’abord codée pour les deux derniers blocs, suivie de celle pour combiner la condition d’exécution résultant de l’instruction du premier bloc logique, et la condition d’exécution du bloc logique qui est le troisième à partir de la fin, et en remontant ainsi au premier bloc logique qui est combiné. Bloc b1 00000 00001 00002 00003 20002 00004 00202 Bloc b2 Bloc a Schémas compliqués Bloc b Adresse Instruction 00000 00001 00002 00003 00004 00005 00006 00007 00008 LD NOT AND LD AND NOT LD NOT AND OR LD AND LD OUT Opérandes 00000 00001 00002 00003 00004 00202 — — 20002 Lorsque les instructions de bloc logique qui seront nécessaires pour coder un schéma sont déterminées, il est parfois nécessaire de décomposer le schéma en grands blocs et puis continuer à décomposer encore les grands blocs jusqu’à former des blocs logiques qui peuvent être codés sans instructions de bloc logique. Ces blocs sont alors codés, en combinant d’abord les petits blocs et puis en combinant les plus grands. Soit AND LOAD, soit OR LOAD sont utilisés pour combiner les blocs, c’est--à--dire que AND LOAD ou OR LOAD combine toujours les deux dernières conditions d’exécution qui existaient, que les conditions d’exécution aient résulté d’une seule condition, de blocs logiques ou d’instructions de bloc logique précédentes. Lorsqu’il s’agit de schémas compliqués, les blocs en partant d’en haut à gauche et en descendant avant de traverser seront finalement codés. Ceci voudra dire en général que, s’il existe une possibilité de choix, OR LOAD sera codé avant AND LOAD. 289 Chapitre Les bases du schéma à contacts 6-3 Le schéma suivant doit être décomposé en deux blocs, et puis chacun d’eux décomposé en deux blocs avant de pouvoir être codé. Comme représenté ci-dessous, les blocs a et b demandent un AND LOAD. Mais avant de pouvoir utiliser AND LOAD, il faut utiliser OR LOAD pour combiner les blocs du haut et du bas des deux côtés, c’est--à--dire combiner a1 et a2 ; b1 et b2. Bloc a1 Bloc b1 00000 00001 00004 00005 20003 00002 00003 00006 00007 Bloc a2 Bloc b2 Bloc a Bloc b Adresse Instruction 00000 00001 00002 00003 00004 00005 00006 00007 00008 00009 00010 00011 LD AND NOT LD NOT AND OR LD LD AND LD AND OR LD AND LD OUT Opérandes 00000 00001 00002 00003 — 00004 00005 00006 00007 — — 20003 Blocs a1 et a2 Blocs b1 et b2 Blocs a et b Il est facile de coder un schéma du type suivant si chaque bloc est codé dans l’ordre : d’abord de haut en bas et puis de gauche à droite. Dans le schéma suivant, les blocs a et b seraient combinés en utilisant AND LOAD comme représenté au--dessus, et puis le bloc c serait codé et un deuxième AND LOAD serait utilisé pour le combiner avec la condition d’exécution du premier AND LOAD. Et puis le bloc d serait codé, un troisième AND LOAD serait utilisé pour combiner la condition d’exécution du bloc d à la condition d’exécution du deuxième AND LOAD, et ainsi de suite jusqu’au bloc n. 20000 Bloc a 290 Bloc b Bloc c Bloc n Chapitre Les bases du schéma à contacts 6-3 Le schéma suivant demande un OR LOAD suivi d’un AND LOAD pour coder le plus haut des trois blocs, et puis deux autres OR LOAD pour compléter le code mnémonique. 00000 00001 Adresse Instruction 00000 00001 00002 00003 00004 00005 00006 00007 00008 00009 00010 00011 00012 LD LD LD AND NOT OR LD AND LD LD NOT AND OR LD LD NOT AND OR LD OUT Opérandes LR 0000 00002 00004 00005 00006 00007 00003 LR 00000 00001 00002 00003 --00004 00005 -00006 00007 -0000 Bien que le programme soit exécuté comme il est écrit, ce schéma pourrait être dessiné comme représenté ci--dessous, pour éliminer le besoin du premier OR LOAD et du AND LOAD, ce qui simplifierait le programme et économiserait de l’espace en mémoire. 00002 00003 00000 LR 0000 00001 00004 00005 00006 00007 Adresse Instruction 00000 00001 00002 00003 00004 00005 00006 00007 00008 00009 00010 LD AND NOT OR AND LD NOT AND OR LD LD NOT AND OR LD OUT Opérandes LR 00002 00003 00001 00000 00004 00005 -00006 00007 -0000 Le schéma suivant demande cinq blocs, qui sont codés ici dans l’ordre avant d’utiliser OR LOAD et AND LOAD pour les combiner, en partant des deux derniers blocs et en travaillant vers l’arrière. Le OR LOAD à l’adresse de pro- 291 Chapitre Les bases du schéma à contacts 6-3 gramme 00008 combine les blocs d et e, le AND LOAD suivant combine la condition d’exécution résultante à celle du bloc c, etc. 00000 00001 00002 LR 0000 Bloc b Bloc a Bloc c 00003 Bloc d 00004 00005 00006 00007 Blocs d et e Bloc e Bloc c avec le résultat de ci--dessus Bloc b avec le résultat de ci--dessus Bloc a avec le résultat de ci--dessus Adresse Instruction 00000 00001 00002 00003 00004 00005 00006 00007 00008 00009 00010 00011 00012 LD LD AND LD AND LD LD AND OR LD AND LD OR LD AND LD OUT Opérandes 00000 00001 00002 00003 00004 00005 00006 00007 ----0000 LR De nouveau, ce schéma peut être redessiné comme suit pour simplifier la structure du programme et le codage et pour économiser de l’espace en mémoire. 00006 00007 00003 00004 00000 LR 0000 00000 00001 00002 00003 00004 00005 00006 00007 00008 00009 00005 00001 Adresse 00002 Instruction LD AND OR AND AND LD AND OR LD AND OUT Opérandes LR 00006 00007 00005 00003 00004 00001 00002 -00000 0000 L’exemple suivant et final peut paraître très compliqué à première vue, mais il peut être codé en utilisant seulement deux instructions de blocs logiques. Le schéma apparaît comme suit : Bloc a 00000 00001 00002 00003 00004 00005 20000 01000 01001 00006 20000 Bloc b 292 Bloc c Chapitre Les bases du schéma à contacts 6-3 La première instruction de bloc logique est utilisée pour combiner les conditions d’exécution résultant des blocs a et b, et la seconde doit combiner la condition d’exécution du bloc c à la condition d’exécution résultant de IR 00003 affecté à une condition normalement fermée. Le restant du schéma peut être codé par les instructions OR, AND et AND NOT. Le flux logique pour ceci et le code résultant sont représentés ci--dessous : Bloc a Bloc b 00000 00001 01000 01001 LD AND 00000 00001 LD AND 01000 01001 OR LD Bloc c 20000 00004 00005 00004 00005 OR 20000 LD AND 00002 00003 00006 AND 00002 AND NOT 00003 OR 00006 AND LD Adresse Instruction 00000 00001 00002 00003 00004 00005 00006 00007 00008 00009 00010 00011 00012 LD AND LD AND OR LD OR AND AND NOT LD AND OR AND LD OUT Opérandes 00000 00001 01000 01001 -20000 00002 00003 00004 00005 00006 -20000 20000 6-3-7 Codage d’instructions multiples de droite S’il y a plus d’une instruction de droite exécutée avec la même condition d’exécution, elles sont codées consécutivement en suivant la dernière condition de la ligne secondaire. Dans l’exemple suivant, la dernière ligne secondaire contient une condition de plus qui correspond à un AND avec IR 00004. 00000 00003 HR 0001 00001 20000 00002 00004 20001 HR 0000 6-3-8 Adresse 00000 00001 00002 00003 00004 00005 00006 00007 00008 Instruction LD OR OR OR AND OUT OUT AND OUT Opérandes HR HR 00000 00001 00002 0000 00003 0001 20000 00004 20001 Lignes secondaires Lorsqu’une ligne secondaire se sépare en une ou plusieurs autres lignes secondaires, il faut parfois utiliser des branchements ou des bits TR pour maintenir la condition d’exécution qui existait au niveau de l’embranchement. Cela vient du fait que les instructions sont exécutées de gauche à droite avant de retourner au point d’embranchement pour exécuter les instruction de la ligne secondaire. Si l’on trouve une condition située après un embranchement sur une des lignes secondaires, la condition d’exécution peut changer pendant ce temps et rendre sa propre exécution impossible. Les schémas suivants illustrent ce problème ; 293 Chapitre Les bases du schéma à contacts 6-3 l’instruction 1 est exécutée avant de revenir au point d’embranchement et de passer à la ligne secondaire menant à l’instruction 2. 00000 Point d’embranchement Adresse Instruction Instruction 2 00000 00001 00002 00003 LD Instruction 1 AND Instruction 2 Instruction 1 Adresse Instruction 00000 00001 00002 00003 00004 LD AND Instruction 1 AND Instruction 2 Instruction 1 00002 Schéma A : Fonctionnement Correct 00000 Point d’embranchement Opérandes 00000 00002 00001 00002 Instruction 2 Schéma B : Fonctionnement Incorrect Opérandes 00000 00001 00002 Si, comme il est représenté au schéma A, la condition d’exécution qui existait au point d’embranchement ne peut être changée avant de retourner à la ligne secondaire (les instructions à l’extrême droite ne changent pas la condition d’exécution), la ligne secondaire sera exécutée correctement et il ne faudra pas de mesure de programmation spéciale. Si, comme il est indiqué au schéma B, il existe une condition entre le point d’embranchement et la dernière instruction sur la ligne secondaire du haut, la condition d’exécution au point d’embranchement et la condition d’exécution après avoir terminé la ligne secondaire du haut seront parfois différentes, ce qui rendra impossible d’assurer l’exécution correcte de la ligne secondaire. Il y a deux moyens de programmer des programmes de branchement pour préserver la condition d’exécution. L’un est d’utiliser des bits TR ; l’autre, d’utiliser des verrouillages (IL(02)/IL(03)). La zone TR fournit huit bits, TR 0 à TR 7, pouvant être utilisés pour préserver temporairement les conditions d’exécution. Si un bit TR est placé à un point d’embranchement, la condition d’exécution actuelle sera mémorisée au bit TR désigné. En revenant au point d’embranchement, le bit TR rétablit la condition d’exécution qui avait été sauvegardée quand le point d’embranchement a été atteint pour la première fois dans l’exécution du programme. TR Bits Le schéma B précédent peut s’écrire comme indiqué ci--dessous pour assurer une exécution correcte. En code mnémonique, la condition d’exécution est mémorisée au point d’embranchement en utilisant le bit TR comme opérande de l’instruction OUTPUT. Cette condition d’exécution est alors rétablie après avoir exécuté l’instruction de droite en utilisant le même bit TR que l’opérande de l’instruction LOAD. TR 0 00000 Adresse 00001 Instruction 1 00002 Instruction 2 Schéma B : Corrigé en utilisant un bit TR 00000 00001 00002 00003 00004 00005 00006 Instruction LD OUT AND Instruction 1 LD AND Instruction 2 Opérandes TR TR 00000 0 00001 0 00002 Les véritables instructions du schéma ci-dessus sont les suivantes : l’état de IR 00000 est chargé (instruction LOAD) pour établir la condition d’exécution ini- 294 Chapitre Les bases du schéma à contacts 6-3 tiale ; celle-ci est ensuite sortie par OUTPOUT sur TR 0 pour sauvegarder la condition d’exécution au point d’embranchement. La condition est ensuite reliée par un AND à l’état de IR 00001 et l’instruction 1 est exécutée en conséquence. La condition d’exécution sauvegardée au point d’embranchement est alors rechargée (LOAD avec TR 0 comme opérande), reliée par un AND à l’état de IR 00002 et l’instruction 2 est exécutée. L’exemple suivant montre une application utilisant deux bits TR : TR 0 00000 Adresse TR 1 00001 00002 Instruction 1 00003 Instruction 2 00004 Instruction 3 00005 Instruction 4 00000 00001 00002 00003 00004 00005 00006 00007 00008 00009 00010 00011 00012 00013 00014 Instruction LD OUT AND OUT AND Instruction 1 LD AND Instruction 2 LD AND Instruction 3 LD AND NOT Instruction 4 Opérandes TR TR 00000 0 00001 1 00002 TR 1 00003 TR 0 00004 TR 0 00005 Dans cet exemple, TR 0 et TR 1 sont utilisés pour mémoriser les conditions d’exécution aux points d’embranchement. Après avoir exécuté l’instruction 1, la condition d’exécution mémorisée en TR 1 est chargée pour un AND avec l’état de IR 00003. La condition d’exécution mémorisée en TR 0 est chargée deux fois, la première fois pour un AND avec l’état de IR 00004 et la seconde fois pour un AND avec l’inverse de l’état de IR 00005. Les bits TR peuvent être utilisés aussi souvent qu’il est nécessaire aussi longtemps que le même bit TR n’est pas utilisé plus d’une fois dans le même bloc d’instructions. Ici, un nouveau bloc d’instructions est commencé chaque fois que l’exécution retourne à la ligne omnibus. Si, dans un même bloc d’instructions, il faut plus de huit points d’embranchement qui demandent que la condition d’exécution soit sauvegardée, il faut utiliser des verrouillages (qui sont décrits ci--après). En dessinant un schéma à contacts, prenez garde de ne pas utiliser de bits TR à moins que ce soit nécessaire. Souvent, le nombre d’instructions nécessaires à un programme peut être réduit pour faciliter la compréhension d’un programme en redessinant un schéma qui sinon exigerait des bits TR. Dans les deux paires de schémas suivantes, les versions du bas demandent moins d’instructions et ne demandent pas de bits TR. Dans le premier exemple, cela est obtenu en réorganisant les parties du bloc d’instructions ; dans celle du bas, en séparant la seconde instruction OUTPUT et en utilisant une autre instruction LOAD pour créer la bonne condition d’exécution à cet effet. Rem. Bien que la simplification des programmes soit toujours une préoccupation, l’ordre d’exécution des instructions est parfois important. Par exemple, une instruction MOVE peut être nécessaire avant l’exécution d’une instruction BINARY ADD pour placer les bonnes données dans le mot opérande requis. S’assurer 295 Chapitre Les bases du schéma à contacts 6-3 que vous avez pris en compte l’ordre d’exécution avant de réorganiser un programme pour le simplifier. TR 0 00000 00000 00001 00003 Instruction 1 Instruction 1 Instruction 2 TR 0 00001 00002 00004 Instruction 2 00000 Instruction 2 00001 Instruction 1 00001 00002 00003 Instruction 1 00000 00001 00004 Instruction 2 Rem. Les bits TR doivent être introduits par l’utilisateur seulement s’il programme en utilisant le code mnémonique. Ils ne sont pas nécessaires si des schémas à contacts sont entrés directement parce qu’ils sont traités pour vous automatiquement. Les limitations ci--dessus sur le nombre de points d’embranchement demandant des bits TR et les considérations sur les méthodes pour réduire le nombre d’instructions de programme sont toujours valables. Verrouillages Il faut aussi traiter le problème de mémoriser les conditions d’exécution aux points d’embranchement en utilisant les instructions INTERLOCK (IL(02)) et INTERLOCK CLEAR (ILC(03)) pour éliminer complètement le point d’embranchement en permettant à une condition d’exécution spécifique de commander un groupe d’instructions. Les instructions INTERLOCK et INTERLOCK CLEAR sont toujours utilisées ensemble. Si une instruction INTERLOCK est placée devant une section d’un programme à contact, la condition d’exécution pour l’instruction INTERLOCK commandera l’exécution de toutes les instructions jusqu’à l’instruction INTERLOCK CLEAR suivante. Si la condition d’exécution pour l’instruction INTERLOCK est OFF, toutes les instructions de droite jusqu’à l’instruction INTERLOCK CLEAR suivante seront exécutées avec des conditions d’exécution OFF pour remettre à zéro toute ce chapitre entier du schéma à contacts. L’effet que ceci a sur des instructions particulières est décrit dans 7–11 INTERLOCK et INTERLOCK CLEAR -- IL(02) et ILC(03). Le schéma B peut aussi être corrigé par un verrouillage. Ici, les conditions conduisant au point d’embranchement sont placées sur une ligne secondaire pour l’instruction INTERLOCK, toutes les lignes provenant du point d’embranchement sont écrites comme des lignes secondaires séparées, et une autre 296 Chapitre Les bases du schéma à contacts 6-3 ligne secondaire est ajoutée pour l’instruction INTERLOCK CLEAR. Notez que ni INTERLOCK, ni INTERLOCK CLEAR ne demande un opérande. 00000 IL(02) Adresse 00000 00001 00002 00003 00004 00005 00006 00001 Instruction 1 00002 Instruction 2 ILC(03) Instruction Opérandes LD IL(02) LD Instruction 1 LD Instruction 2 ILC(03) 00000 --00001 00002 --- Si IR 00000 est à ON dans la deuxième version du schéma B ci--dessus, l’état de IR 00001 et de IR 00002 détermine les conditions d’exécution des instructions 1 et 2, respectivement. Comme IR 00000 est à ON, le résultat est le même que produirait un AND entre les états de ces bits. Si IR 00000 est à OFF, l’instruction INTERLOCK produit une condition d’exécution OFF pour les instructions 1 et 2 et l’instruction continue avec la ligne secondaire qui suit INTERLOCK CLEAR. Comme indiqué dans le schéma suivant, plus d’une instruction INTERLOCK peuvent être utilisées dans un bloc d’instructions ; chacune est effective jusqu’à l’instruction INTERLOCK CLEAR suivante. 00000 IL(02) 00001 Instruction 1 00002 IL(02) 00003 00004 Instruction 2 00005 Instruction 3 00006 Instruction 4 ILC(03) Adresse 00000 00001 00002 00003 00004 00005 00006 00007 00008 00009 00010 00011 00012 00013 Instruction LD IL(02) LD Instruction 1 LD IL(02) LD AND NOT Instruction 2 LD Instruction 3 LD Instruction 4 ILC(03) Opérandes 00000 --00001 00002 --00003 00004 00005 00006 --- Si IR 00000 dans le schéma ci--dessus est OFF (c’est--à--dire si la condition d’exécution pour la première instruction INTERLOCK est OFF), les instructions 1 à 4 seraient exécutées avec les conditions d’exécution OFF et l’exécution progresserait jusqu’à l’instruction suivant l’instruction INTERLOCK CLEAR. Si IR 00000 est ON, l’état de IR 00001 serait chargé comme condition d’exécution pour l’instruction 1 et puis l’état de IR 00002 serait chargé pour former la condition d’exécution pour la seconde instruction INTERLOCK. Si IR 00002 est OFF, les instructions 2 à 4 seront exécutées avec les conditions d’exécution OFF. Si IR 00002 est ON, IR 00003, IR 00005 et IR 00006 détermineront la première condition d’exécution dans les nouvelles lignes secondaires. 6-3-9 Sauts Une section spécifique d’un programme peut être sautée suivant une condition d’exécution désignée. Bien que ceci soit semblable à ce qui se produit si la condition d’exécution pour une instruction INTERLOCK est OFF, avec des sauts, les opérandes de toutes les instructions maintiennent leur état. Les sauts peuvent donc être utilisés pour commander des dispositifs qui demandent une sortie durable, par exemples pneumatiques et hydrauliques, tandis que des ver- 297 Chapitre Les bases du schéma à contacts 6-3 rouillages peuvent être utilisés pour commander des dispositifs qui ne demandent pas de sortie durable, par exemple des instruments électroniques. Des sauts sont crées en utilisant les instructions JUMP (JMP(04)) et JUMP END (JME(05)). Si la condition d’exécution pour une instruction JUMP est ON, le programme se déroule normalement comme si le saut n’existait pas. Si la condition d’exécution pour l’instruction JUMP est OFF, le déroulement du programme se déplace immédiatement à une instruction JUMP END sans changer l’état de rien entre l’instruction JUMP et JUMP END. A toutes les instructions JUMP et JUMP END sont affectés des numéros de saut allant de 00 à 99. Il y a deux types de sauts. Le numéro du saut détermine son type. Il faut définir un saut en utilisant les numéros de saut 01 à 99 une fois seulement, c’est--à--dire que chacun de ces numéros peut être utilisé une fois dans une instruction JUMP et une fois dans une instruction JUMP END. Quand l’un de ces numéros affecté à une instruction JUMP est exécuté, l’exécution se déplace immédiatement à l’instruction JUMP END qui a le même numéro, comme si toute l’instruction entre eux n’existait pas. Le schéma B de l’exemple du bit TR et du verrouillage pourrait être redessiné comme indiqué ci--dessous en utilisant un saut. Bien que 01 ait été utilisé comme numéro de saut, tout nombre entre 01 et 99 pourrait être utilisé pour autant qu’il n’ait pas déjà été utilisé dans une partie différente du programme. JUMP et JUMP END ne demandent pas d’autre opérande et JUMP END n’impose jamais de conditions sur la ligne secondaire qui y conduit. 00000 JMP(04) 01 00001 Instruction 1 00002 Instruction 2 JME(05) 01 Schéma B : Corrigé avec un saut Adresse 00000 00001 00002 00003 00004 00005 00006 Instruction LD JMP(04) LD Instruction 1 LD Instruction 2 JME(05) Opérandes 00000 01 00001 00002 01 Cette version du schéma B aurait un temps d’exécution plus court si IR 00000 était OFF que n’importe laquelle des autres versions. L’autre type de saut est créé avec un numéro de saut de 00. Autant de sauts désirés peuvent être crées en utilisant le numéro de saut 00 et des instructions JUMP utilisant 00 peuvent être utilisées consécutivement sans un JUMP END utilisant 00 entre elles. Il est même possible que toutes les instructions JUMP 00 déplacent le déroulement du programme au même JUMP END 00, c’est--à--dire qu’il faut une seule instruction JUMP END 00 pour toutes les instructions JUMP 00 dans le programme. Quand 00 est utilisé comme numéro de saut pour une instruction JUMP, le déroulement du programme va à l’instruction qui suit l’instruction JUMP END suivante, avec un numéro de saut de 00. Bien que, comme dans tous les sauts, aucun état ne change et aucune instruction ne soit exécutée entre les instructions JUMP 00 et JUMP END 00, le programme doit chercher l’instruction JUMP END 00 suivante, ce qui donne un temps d’exécution légèrement plus long. Le déroulement de programmes contenant de multiples instructions JUMP 00 pour une seule instruction JUMP END 00 est semblable à celle des sections verrouillées. Le schéma suivant est le même que celui utilisé pour l’exemple de verrouillage ci--dessus, excepté qu’il est redessiné avec des sauts. Le déroulement de ce schéma différerait de celui du schéma décrit ci--dessus (par exemple, dans le schéma précédent, les verrouillages remettraient à zéro certaines par- 298 Chapitre Commande de l’état des bits 6-4 ties de la section verrouillée, mais les sauts n’affectent l’état d’aucun bit entre les instructions JUMP et JUMP END). 00000 JMP(04) 00 00001 Instruction 1 00002 JMP(04) 00 00003 00004 Instruction 2 00005 Instruction 3 00006 Instruction 4 JME(05) 00 6-4 Adresse 00000 00001 00002 00003 00004 00005 00006 00007 00008 00009 00010 00011 00012 00013 Instruction LD JMP(04) LD Instruction 1 LD JMP(04) LD AND NOT Instruction 2 LD Instruction 3 LD Instruction 4 JME(05) Opérandes 00000 00 00001 00002 00 00003 00004 00005 00006 00 Commande de l’état des bits Il y a sept instructions de base qui peuvent être utilisées en général pour commander l’état des bits individuels. Ce sont les instructions OUTPUT, OUTPUT NOT, SET, RESET, DIFFERENTIATE UP, DIFFERENTIATE DOWN et KEEP. Toutes ces instructions apparaissent comme la dernière instruction dans une ligne secondaire et prennent une adresse de bit comme opérande. Bien que des détails soient donnés dans 7--8 Instructions pour la commande des bits, ces instructions (excepté OUTPUT et OUTPUT NOT, qui ont déjà été présentées) sont décrites ici à cause de leur importance dans la plupart des programmes. Bien que ces instructions soient utilisées pour mettre les bits de sortie à ON et OFF dans la zone IR (c’est--à--dire pour envoyer ou arrêter les signaux de sortie vers des périphériques extérieurs), ils sont utilisés également pour commander l’état d’autres bits dans la zone IR ou dans d’autres zones de données. 6-4-1 SET et RESET Les instructions SET et RESET sont très semblables aux instructions OUTPUT et OUTPUT NOT, excepté qu’elles changent seulement l’état de leurs bits opérandes pour les conditions d’exécution ON. Aucune des ces instructions n’affectera l’état de son bit opérande si la condition d’exécution est OFF. SET mettra le bit opérande sur ON quand la condition d’exécution devient ON, mais à la différence de l’instruction OUTPUT, SET ne mettra pas le bit opérande sur OFF quand la condition d’exécution devient OFF. RESET mettra le bit opérande sur OFF quand la condition d’exécution devient OFF, mais au contraire de l’instruction OUTPUT NOT, RESET ne mettra pas le bit opérande sur ON quand la condition d’exécution devient OFF. Dans l’exemple suivant, IR 20000 sera mis sur ON quand IR 00100 devient ON et restera ON jusqu’à ce que IR I00101 devienne ON, quel que soit l’état de IR 00100. Quand IR 00101 devient ON, RESET mettra IR 20000 sur OFF. Adresse 00100 SET 20000 00101 RSET 20000 00000 00001 00002 00003 Instruction LD SET LD RSET Opérandes 00100 20000 00101 20000 299 Chapitre Commande de l’état des bits 6-4 Rem. SET et RSET n’ont pas de code de fonction. Pour les introduire à partir de la console de programmation, appuyer sur les touches FUN et SET ou bien les touches FUN et RSET suivies de l’adresse du bit. 6-4-2 DIFFERENTIATE UP et DIFFERENTIATE DOWN Les instructions DIFFERENTIATE UP et DIFFERENTIATE DOWN sont utilisées pour mettre le bit opérande sur ON pendant un cycle à la fois. L’instruction DIFFERENTIATE UP met le bit opérande sur ON pendant un cycle après que la condition d’exécution pour lui est passée de OFF à ON ; l’instruction DIFFERENTIATE DOWN met le bit opérande sur ON pendant un cycle après que la condition d’exécution pour lui est passée de ON à OFF. Ces deux instructions demandent seulement une ligne de code mnémonique. Adresse 00000 DIFU(13) 20001 00000 00001 Instruction Opérandes LD DIFU(13) 00000 20001 00001 DIFD(14) 20002 Adresse 00000 00001 Instruction Opérandes LD DIFD(14) 00001 20002 Ici, IR 01000 est placé à ON pendant un tour de scrutation après le passage de IR 00000 à ON. A l’exécution suivante de DIFU(13) 01000, IR 01000 passe à OFF, quel que soit l’état de IR 00000. Avec l’instruction DIFFERENTIATE DOWN, IR 01001 passe à ON pendant un tour de scrutation après le passage de IR 00001 à OFF (IR 20002 reste OFF jusque--là) et à OFF à la prochaine exécution de DIFD(14) 01001. 6-4-3 KEEP L’instruction KEEP est utilisée pour maintenir l’état du bit opérande sur la base de deux conditions d’exécution. Pour ce faire, l’instruction KEEP est connectée à deux lignes secondaires. Quand la condition d’exécution à la fin de la première ligne secondaire est ON, le bit opérande de l’instruction KEEP est mis sur ON. Quand la condition d’exécution à la fin de la seconde ligne secondaire est ON, le bit opérande de l’instruction KEEP est mis sur OFF. Le bit opérande pour l’instruction KEEP maintiendra son état ON ou OFF même s’il est placé dans une section verrouillée du schéma. Dans l’exemple suivant, HR 0000 sera mis sur ON si IR 00002 est ON et IR 00003 est OFF. HR 0000 restera ON jusqu’à ce que IR 00004 ou bien IR 00005 devienne ON. Pour KEEP, comme pour toutes les instructions qui demandent plus d’une ligne secondaire, les lignes secondaires sont codées d’abord, avant l’instruction qu’elles commandent. 00002 00003 S : règle l’entrée HR 0000 00004 00005 6-4-4 KEEP(11) R : réinitialise l’entrée Adresse Instruction 00000 00001 00002 00003 00004 LD AND NOT LD OR KEEP(11) Opérandes HR 00002 00003 00004 00005 0000 Bits à auto--maintien (Scellement) Bien que l’instruction KEEP puisse être utilisée pour créer des bits à auto--maintien, il est parfois nécessaire de créer des bits à auto--maintien d’une autre 300 Chapitre Bits de travail (Relais internes) 6-5 façon, de sorte qu’ils puissent être mis sur OFF quand il se trouvent dans une section verrouillée d’un programme. Pour créer un bit à auto--maintien, le bit opérande d’une instruction OUTPUT est utilisé comme condition pour cette même instruction OUTPUT dans une configuration OR (ou) de sorte que le bit opérande dans l’instruction OUTPUT reste ON ou OFF jusqu’à ce qu’il se produise des changements à d’autres bits. Au moins une autre condition est utilisée juste avant l’instruction OUTPUT pour fonctionner comme une remise à zéro. Sans cette remise à zéro, il n’y aurait pas moyen de commander le bit opérande de l’instruction OUTPUT. Le schéma ci--dessus pour l’instruction KEEP peut être réécrit comme indiqué ci--dessous. La seule différence dans ces schémas serait leur fonctionnement dans une section de programme verrouillé, si la condition d’exécution pour l’instruction INTERLOCK était ON. Ici, exactement comme dans le même schéma utilisant l’instruction KEEP, deux bits de remise à zéro sont utilisés, c’est--à--dire que HR 0000 peut passer sur OFF en mettant IR 00004 ou bien IR 00005 sur ON. 00002 00003 00004 HR 0000 00005 HR 0000 6-5 Adresse Instruction 00000 00001 00002 00003 00004 00005 00006 LD AND NOT OR AND NOT OR NOT AND LD OUT Opérandes HR HR 00002 00003 0000 00004 00005 --0000 Bits de travail (Relais internes) En programmation, il est souvent extrêmement difficile de combiner des conditions pour produire directement des conditions d’exécution. Cependant, ces difficultés sont surmontées facilement en utilisant certains bits pour déclencher indirectement d’autres instructions. Cette programmation est réalisée en utilisant des bits de travail. Il faut parfois des mots entiers à cet effet. Ces mots sont désignés par mots de travail. Les mots de travail ne sont pas transférés vers ou à partir de l’API. Ce sont des bits choisis par le programmeur pour faciliter la programmation comme décrit ci--dessus. Les bits d’entrée/sortie et les autres bits réservés ne peuvent pas être utilisés comme bits de travail. Tous les bits dans la zone IR qui ne sont pas pris comme bits d’entrée/sortie, et certains bits non utilisés dans la zone AR, peuvent servir de bits de travail. Prenez garde d’inscrire avec précision comment et à quel endroit vous employez des bits de travail. Cela aide à planifier et à écrire les programmes et cela aide aussi dans les opérations de mise au point. Applications des bits de travail Les exemples donnés plus loin dans cette sous--section indiquent deux des façons les plus courantes d’utiliser des bits de travail. Elles devraient servir de guide pour le nombre presque sans limite de façons d’utiliser des bits de travail. Chaque fois que des difficultés surgissent pour programmer une action de commande, il faut penser aux bits de travail et à la façon de les utiliser pour simplifier la programmation. Les bits de travail sont utilisés souvent avec les instructions OUTPUT, OUTPUT NOT, DIFFERENTIATE UP, DIFFERENTIATE DOWN et KEEP. Le bit de travail est utilisé d’abord comme opérande pour l’une de ces instructions, de façon à pouvoir être utilisé ensuite comme une condition qui déterminera comment ces instructions seront exécutées. Les bits de travail peuvent être utilisés aussi avec d’autres instructions, par exemple avec l’instruction SHIFT REGISTER (SFT(10)). Un exemple d’emploi de mots et de bits de travail avec l’instruction SHIFT REGISTER est donné dans 7–16–1 SHIFT REGISTER -- SFT(10). 301 Chapitre Bits de travail (Relais internes) 6-5 Bien qu’ils ne soient pas toujours désignés par bits de travail, beaucoup de bits utilisés dans les exemples dans le Chapitre 7 Ensemble d’instructions utilisent des bits de travail. Comprendre l’utilisation de ces bits est essentiel pour programmer efficacement. Conditions différenciées 00000 Il est possible d’utiliser les bits de travail pour simplifier la programmation quand une certaine combinaison de conditions est utilisée de façon répétée en combinaison avec d’autres conditions. Dans l’exemple suivant, IR 00000, IR 00001, IR 00002 et IR 00003 sont combinés dans un bloc logique qui mémorise la condition d’exécution résultante sous forme de l’état de IR 21600. IR 21600 est combiné alors avec diverses autres conditions pour déterminer les conditions de sortie pour IR 20000, IR 20001 et IR 20002, c’est--à--dire pour mettre les sorties attribuées à ces bits sur ON ou OFF. 00001 21600 00002 00003 21600 00004 00005 20000 21600 00005 20001 00004 21600 Adresse Instruction 00000 00001 00002 00003 00004 00005 00006 00007 00008 00009 00010 00011 00012 00013 00014 00015 00016 LD AND NOT OR OR NOT OUT LD AND AND NOT OUT LD OR NOT AND OUT LD NOT OR OR OUT Opérandes 00000 00001 00002 00003 21600 21600 00004 00005 20000 21600 00004 00005 20001 21600 00006 00007 20002 20002 00006 00007 Conditions différenciées Des bits de travail peuvent aussi être utilisés si un traitement différentiel est nécessaire pour certaines, mais pas toutes les conditions nécessaires à l’exécution d’une instruction. Dans cet exemple, IR 20000 doit être laissé sur ON de façon continue aussi longtemps que IR 001001 est sur ON et que IR 00002 et IR 00003 sont tous les deux sur OFF, ou aussi longtemps que IR 00004 est sur ON et IR 00005 est sur OFF. Il doit être mis sur ON pendant un cycle seulement chaque fois que IR 00000 se met sur ON (à moins que l’une des conditions précédentes le maintienne sur ON de façon continue). Cette action est facile à programmer en utilisant IR 22500 comme bit de travail comme opérande de l’instruction DIFFERENTIATE UP (DIFU(13)). Quand IR 00000 se met sur ON, IR 22500 sera mis sur ON pendant un cycle et puis mis sur OFF pendant le cycle suivant par DIFU(13). En supposant que les autres 302 Chapitre Conseils d’utilisation à la programmation 6-6 conditions qui commandent IR 20000 ne le maintiennent pas sur ON, le bit de travail IR 22500 mettra IR 20000 sur ON pendant un cycle seulement. 00000 DIFU(13) 22500 22500 20000 00001 00002 00004 6-6 00003 00005 Adresse Instruction 00000 00001 00002 00003 00004 00005 00006 00007 00008 00009 00010 LD DIFU(13) LD LD AND NOT AND NOT OR LD LD AND NOT OR LD OUT Opérandes 00000 22500 22500 00001 00002 00003 --00004 00005 --20000 Conseils d’utilisation à la programmation Le nombre de conditions qui peuvent être utilisées en série ou en parallèle est illimité aussi longtemps que la capacité de mémoire de l’API n’est pas dépassée. Par conséquent, utiliser autant de conditions qu’il faut pour dessiner un schéma clair. Bien que des schémas très compliqués avec des lignes secondaires sont dessinés, il ne doit pas y avoir de conditions sur des lignes verticales entre deux autres lignes secondaires. Le schéma A indiqué ci--dessous, par exemple, n’est pas possible, et il faudrait le dessiner comme le schéma B. Le code mnémonique est fourni pour le schéma B seulement ; le codage du schéma A serait impossible. 00000 00002 Instruction 1 00004 00001 00003 Instruction 2 Schéma A : Non programmable 00001 00004 00002 Adresse Instruction 00000 00001 00002 00003 00004 00005 00006 00007 00008 00009 LD AND OR AND Instruction 1 LD AND OR AND NOT Instruction 2 Opérandes Instruction 1 00000 00000 00004 00003 Instruction 2 00001 Schéma B : Version Correcte 00001 00004 00000 00002 00000 00004 00001 00003 Le nombre de fois qu’un bit quelconque peut être affecté à des conditions n’est pas limité, employez--les donc aussi souvent qu’il faut pour simplifier votre programme. Souvent des programmes compliqués sont le résultat de tentatives de réduire le nombre de fois qu’un bit est utilisé. Sauf pour les instructions pour lesquelles les conditions ne sont pas autorisées (par exemple, INTERLOCK CLEAR et JUMP END, voir ci--dessous), toute ligne secondaire doit aussi avoir au moins une condition sur elle pour déterminer la condition d’exécution pour l’instruction à droite. De même, le schéma A, ci--dessous, doit être dessiné sous la forme du schéma B. Si une instruction doit être 303 Chapitre Conseils d’utilisation à la programmation 6-6 exécutée de façon continue (c’est--à--dire si une sortie doit toujours être gardée ON pendant que le programme est exécuté), le drapeau Always ON (SR 25313) peut être utilisé dans la zone SR. Instruction Schéma A : Non programmable pour la plupart des instructions 25313 Instruction Schéma B : Version Correcte Adresse Instruction 00000 00001 LD Instruction Opérandes 25313 Il y a peu d’exceptions à cette règle, y compris les instructions INTERLOCK CLEAR, JUMP END et les instructions d’étape. Elles sont utilisées comme deuxième instruction d’une paire d’instructions et sont contrôlées par la condition d’exécution de la première instruction. Les conditions ne doivent pas être placées sur la ligne secondaire menant à ces instructions. Se reporter au Chapitre 7 Ensemble d’instructions pour de plus amples informations. Lorsque vous dessinez des schémas à contacts, gardez à l’esprit le nombre d’instructions nécessaires à son entrée. Dans le schéma A ci-dessous, il faut une instruction OR LOAD pour combiner les lignes secondaires du haut et du bas ; on peut éviter cela en redessinant le schéma B ci-dessous en éliminant les instructions AND LOAD et OR LOAD. Reportez-vous au Chapitre 5 pour de plus amples informations. Adresse 00000 20007 00001 20007 00000 00001 00002 00003 00004 Instruction LD LD AND OR LD OUT Opérandes 00000 00001 20007 --20007 Schéma A Adresse 00001 20007 20007 00000 Schéma B 304 00000 00001 00002 00003 Instruction LD AND OR OUT Opérandes 00001 20007 00000 20007 Chapitre Exécution des programmes 6-7 6-7 Exécution des programmes Au début de l’exécution d’un programme, l’UC scrute le programme de haut en bas, vérifie toutes les conditions et exécute toutes les instructions qui en résultent en descendant la ligne omnibus. Il est important de bien ordonner les instructions de façon à ce que, par exemple, les données voulues soient transférées vers un canal avant que celui-ci ne soit utilisé comme opérande d’instruction. Souvenez-vous qu’une ligne secondaire (ou équation logique) va jusqu’au niveau de l’instruction terminale de droite (OUT) avant d’exécuter une ligne dont le point d’embranchement serait situé sur la première ligne (LD) et qui mènerait à d’autres instructions à droite (AND ou OR). L’exécution du programme n’est que l’une des tâches exécutées par l’UC dans le temps de scrutation. Se reporter au Chapitre 8 Opérations et Temps de traitement de l’API pour de plus amples informations. 305 CHAPITRE 7 Ensemble d’instructions Les API des CPM1, CPM1A, CPM1X et SRM1(--V2) ont de grands ensembles d’instructions de programmation qui facilitent la programmation des traitements compliqués de commande. Ce chapitre explique individuellement ces instructions et indique la programmation en schéma à contacts, les zones de données et des drapeaux utilisés avec chacune. Les nombreuses instructions fournies par ces API sont organisées par groupe d’instructions dans les sous-paragraphes suivants. Ces groupes incluent des instructions de schéma à contacts, des instructions avec des codes fixes de fonction et des instructions d’ensemble. Quelques instructions, telles les instructions de temporisations et de compteurs, sont utilisées pour commander l’exécution d’autres instructions, par exemple, un drapeau de fin de TIM pourrait être utilisé pour mettre à 1 un bit quand la période de temps définie pour la temporisation a expiré. Bien que ces autres instructions soient souvent utilisées pour commander les bits de sortie à travers l’instruction de sortie, elles peuvent également être utilisées pour commander l’exécution d’autres instructions. Les instructions de sortie utilisées dans les exemples de ce manuel peuvent donc généralement être remplacées par d’autres instructions permettant de modifier le programme pour des applications spécifiques autres que la commande directe des bits de sortie. 7-1 7-2 7-3 7-4 7-5 7-6 7-7 7-8 7-9 7-10 7-11 7-12 7-13 7-14 7-15 Notation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Format d’instruction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zones de données, valeurs utilisées comme bits de définition et drapeaux . . . . . . . . . . . . . Instructions sur changement d’état . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Codages des instructions à droite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Tableaux d’instruction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-6-1 Codes de fonctions des CPM1/CPM1A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-6-2 Codes de fonction des CPM2A/CPM2C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-6-3 Codes de fonctions du SRM1(-V2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-6-4 Liste alphabétique des termes mnémoniques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Programmation en schémas à contacts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-7-1 LOAD, LOAD NOT, AND, AND NOT, OR et OR NOT . . . . . . . . . . . . . . . . . . . 7-7-2 AND LOAD et OR LOAD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Instructions de commande de bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-8-1 OUTPUT et OUTPUT NOT -- OUT et OUT NOT . . . . . . . . . . . . . . . . . . . . . . . . 7-8-2 SET et RESET -- SET et RSET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-8-3 KEEP -- KEEP(11) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-8-4 DIFFERENTIATE UP et DOWN -- DIFU(13) et DIFD(14) . . . . . . . . . . . . . . . . . NO OPERATION -- NOP(00) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . END -- END(01) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . INTERLOCK et INTERLOCK CLEAR -- IL(02) et ILC(03) . . . . . . . . . . . . . . . . . . . . . . . JUMP et JUMP END -- JMP(04) et JME(05) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Instructions relatives aux erreurs d’utilisation : FAILURE ALARM AND RESET -- FAL(06) et SEVERE FAILURE ALARM -- FALS(07) . . . . . . . . . . . . . . . . . . . Instructions de définition d’étapes : STEP DEFINE et STEP START--STEP(08)/SNXT(09) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Instructions de temporisation et de comptage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-15-1 TIMER -- TIM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-15-2 HIGH-SPEED TIMER -- TIMH(15) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-15-3 LONG TIMER : TIML(----) CPM2A/CPM2C SEULEMENT . . . . . . . . . . . . . . . 7-15-4 VERY HIGH-SPEED TIMER : TMHH(----) CPM2A/CPM2C SEULEMENT . . 7-15-5 COUNTER -- CNT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-15-6 REVERSIBLE COUNTER -- CNTR(12) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-15-7 REGISTER COMPARISON TABLE -- CTBL(63) . . . . . . . . . . . . . . . . . . . . . . . . 7-15-8 MODE CONTROL -- INI(61) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-15-9 HIGH-SPEED COUNTER PV READ -- PRV(62) . . . . . . . . . . . . . . . . . . . . . . . . 310 310 310 312 313 316 316 317 318 319 323 323 324 324 324 325 326 327 328 328 328 330 332 333 335 336 337 338 339 340 342 343 346 348 307 7-16 Instructions de décalage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-16-1 SHIFT REGISTER -- SFT(10) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-16-2 WORD SHIFT -- WSFT(16) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-16-3 ARITHMETIC SHIFT LEFT -- ASL(25) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-16-4 ARITHMETIC SHIFT RIGHT -- ASR(26) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-16-5 ROTATE LEFT -- ROL(27) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-16-6 ROTATE RIGHT -- ROR(28) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-16-7 ONE DIGIT SHIFT LEFT -- SLD(74) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-16-8 ONE DIGIT SHIFT RIGHT -- SRD(75) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-16-9 REVERSIBLE SHIFT REGISTER -- SFTR(84) . . . . . . . . . . . . . . . . . . . . . . . . . . 7-16-10 ASYNCHRONOUS SHIFT REGISTER -- ASFT(17) . . . . . . . . . . . . . . . . . . . . . 7-17 Instructions de transfert de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-17-1 MOVE -- MOV(21) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-17-2 MOVE NOT -- MVN(22) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-17-3 BLOCK TRANSFER -- XFER(70) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-17-4 BLOCK SET -- BSET(71) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-17-5 DATA EXCHANGE -- XCHG(73) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-17-6 SINGLE WORD DISTRIBUTE -- DIST(80) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-17-7 DATA COLLECT -- COLL(81) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-17-8 MOVE BIT -- MOVB(82) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-17-9 MOVE DIGIT -- MOVD(83) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-18 Instructions de comparaison . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-18-1 COMPARE -- CMP(20) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-18-2 TABLE COMPARE -- TCMP(85) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-18-3 BLOCK COMPARE -- BCMP(68) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-18-4 DOUBLE COMPARE -- CMPL(60) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-18-5 AREA RANGE COMPARE -- ZCP(----) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-18-6 DOUBLE AREA RANGE COMPARE -- ZCPL(----) . . . . . . . . . . . . . . . . . . . . . . 7-19 Instructions de conversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-19-1 BCD-TO-BINARY -- BIN(23) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-19-2 BINARY-TO-BCD -- BCD(24) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-19-3 DOUBLE BCD-TO-DOUBLE BINARY -- BINL(58) . . . . . . . . . . . . . . . . . . . . . 7-19-4 DOUBLE BINARY-TO-DOUBLE BCD -- BCDL(59) . . . . . . . . . . . . . . . . . . . . . 7-19-5 4-TO-16 DECODER -- MLPX(76) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-19-6 16-TO-4 ENCODER -- DMPX(77) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-19-7 7-SEGMENT DECODER -- SDEC(78) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-19-8 ASCII CONVERT -- ASC(86) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-19-9 ASCII-TO-HEXADECIMAL -- HEX(----) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-19-10 SCALING -- SCL(66) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-19-11 SIGNED BINARY TO BCD SCALING -- SCL2(----) . . . . . . . . . . . . . . . . . . . . . . 7-19-12 BCD TO SIGNED BINARY SCALING -- SCL3(----) . . . . . . . . . . . . . . . . . . . . . . 7-19-13 HOURS-TO-SECONDS -- SEC(----) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-19-14 SECONDS-TO-HOURS -- HMS(----) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-19-15 COMPLEMENT A 2 -- NEG(----) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-20 Instructions de calcul sur les valeurs BCD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-20-1 SET CARRY - STC(40) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-20-2 CLEAR CARRY - CLC(41) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-20-3 BCD ADD - ADD(30) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-20-4 BCD SUBTRACT - SUB(31) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-20-5 BCD MULTIPLY - MUL(32) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-20-6 BCD DIVIDE - DIV(33) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-20-7 DOUBLE BCD ADD - ADDL(54) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-20-8 DOUBLE BCD SUBTRACT - SUBL(55) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-20-9 DOUBLE BCD MULTIPLY - MULL(56) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308 352 352 353 354 354 355 355 356 357 357 359 360 360 361 362 363 364 364 366 368 369 370 370 371 372 374 375 377 377 377 378 379 379 380 382 384 387 389 391 393 395 397 398 399 401 401 401 401 402 404 405 406 408 410 7-20-10 DOUBLE BCD DIVIDE - DIVL(57) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-21 Instructions de calcul binaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-21-1 BINARY ADD - ADB(50) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-21-2 BINARY SUBTRACT - SBB(51) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-21-3 BINARY MULTIPLY - MLB(52) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-21-4 BINARY DIVIDE - DVB(53) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-22 Instructions mathématiques spéciales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-22-1 FIND MAXIMUM - MAX(--) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-22-2 FIND MINIMUM - MIN(--) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-22-3 AVERAGE VALUE - AVG(--) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-22-4 SUM - SUM(--) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-23 Instructions logiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-23-1 COMPLEMENT - COM(29) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-23-2 LOGICAL AND - ANDW(34) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-23-3 LOGICAL OR - ORW(35) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-23-4 EXCLUSIVE OR - XORW(36) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-23-5 EXCLUSIVE NOR - XNRW(37) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-24 Instructions d’incrémentation/décrémentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-24-1 BCD INCREMENT - INC(38) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-24-2 BCD DECREMENT - DEC(39) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-25 Instructions de sous-programmes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-25-1 SUBROUTINE ENTER - SBS(91) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-25-2 SUBROUTINE DEFINE et RETURN - SBN(92)/RET(93) . . . . . . . . . . . . . . . . . 7-25-3 MACRO - MCRO(99) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-26 Instructions spéciales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-26-1 MESSAGE DISPLAY - MSG(46) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-26-2 I/O REFRESH - IORF(97) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-26-3 BIT COUNTER - BCNT(67) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-26-4 FRAME CHECKSUM - FCS(--) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-26-5 SET PULSES - PULS(65) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-26-6 SPEED OUTPUT-- SPED(64) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-26-7 ACCELERATION CONTROL - ACC(--) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-26-8 PULSE WITH VARIABLE DUTY RATIO - PWM(--) . . . . . . . . . . . . . . . . . . . . 7-26-9 SYNCHRONIZED PULSE CONTROL - SYNC(--) . . . . . . . . . . . . . . . . . . . . . . 7-26-10 DATA SEARCH - SRCH(--) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-26-11 PID CONTROL - PID(--) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-27 Instructions de commande d’interruptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-27-1 INTERRUPT CONTROL - INT(89) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-27-2 INTERVAL TIMER - STIM(69) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-28 Instructions de communication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-28-1 RECEIVE - RXD(47) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-28-2 TRANSMIT - TXD(48) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-28-3 CHANGE RS-232C SETUP - STUP(--) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 410 411 411 412 414 414 415 415 416 417 419 421 421 422 422 423 424 424 424 425 426 426 428 428 429 429 431 431 432 434 435 438 441 443 445 446 452 452 455 457 457 458 460 309 Zones de données, valeurs utilisées comme bits de définition et drapeaux 7-1 Chapitre 7-3 Notation Dans ce manuel, toutes les instructions sont mentionnées par leur terme mnémonique. Par exemple, l’instruction OUTPUT s’intitulera OUT et l’instruction AND LOAD s’intitulera AND LD. En cas de doute au sujet d’une instruction à laquelle se réfère un terme mnémonique, se reporter aux Instructions de Programmation de l’Annexe A. Lorsqu’un code de fonction est assigné à une instruction, il sera indiqué entre parenthèses après le terme mnémonique. Ces codes de fonction, qui sont des nombres décimaux à 2 digits, sont utilisés pour paramétrer la plupart des instructions dans l’unité centrale. Un tableau des instructions listées par codes de fonctions est également fourni dans les Instructions de Programmation de l’Annexe A. Les listes d’instructions sont également fournies dans le paragraphe 7-6 Tableaux d’Instructions. Un @ avant un terme mnémomique indique un seul changement d’état de cette instruction. Les instructions sur changement d’état sont expliquées dans le Chapitre 7-4. 7-2 Format d’instruction Au moins un ou plusieurs opérandes sont associés à la plupart des instructions. Les opérandes indiquent ou fournissent les données sur lesquelles une instruction doit être exécutée. Ils sont parfois saisis comme des valeurs numériques courantes (c.--à--d. comme des constantes), mais ils correspondent habituellement aux adresses des mots ou des bits de données qui contiennent les données à utiliser. Un bit dont l’adresse est désignée comme opérande s’appelle un bit d’opérande ; un mot dont l’adresse est désignée comme opérande s’appelle un mot d’opérande. Dans certaines instructions, l’adresse d’un mot désigné dans une instruction indique le premier de plusieurs mots contenant les données désirées. Chaque instruction exige un ou plusieurs mots dans la mémoire programme. Le premier mot est le mot d’instruction, qui définit l’instruction et contient toutes les données d’opérande (décrites ci--dessous) ou bits d’opérandes exigés par l’instruction. Les autres opérandes exigés par l’instruction sont contenus dans les mots suivants, un opérande par mot. Certaines instructions exigent jusqu’à quatre mots. Une donnée d’opérande est un opérande associé à une instruction et contenu dans le même mot que cette instruction. Ces opérandes définissent l’instruction au lieu d’indiquer quelles données elle doit utiliser. Par exemple, des données d’opérande sont les numéros TC qui sont utilisés dans les instructions de temporisation et de comptage pour créer des temporisations et des compteurs, ainsi que les numéros de saut (qui définissent quelle instruction de saut correspond à quelle instruction de fin de saut). Les bits d’opérandes sont également contenus dans le même mot que l’instruction elle--même, mais ne sont pas considérés comme données d’opérande. 7-3 Zones de données, valeurs utilisées comme bits de définition et drapeaux Dans ce paragraphe, chaque description d’instruction inclut un symbole de schéma à contacts, les zones de données pouvant être utilisées par ses opérandes et les valeurs pouvant être utilisées comme données d’opérande. Les zones de données sont également définies par les noms d’opérande et le type de données requises pour chaque opérande (c.--à--d. mot ou bit et pour un mot et, pour les mots, valeur hexadécimale ou BCD). Toutes les adresses contenues dans les zones de données ne sont pas nécessairement autorisées pour un opérande ; par exemple, lorsqu’un opérande 310 Chapitre Zones de données, valeurs utilisées comme bits de définition et drapeaux 7-3 exige deux mots, le dernier mot de la zone de données ne peut être défini comme premier mot de l’opérande car tous les mots d’un même opérande doivent être dans la même zone de données. D’autres limitations spécifiques sont données dans le sous-paragraphe Limitations. Se reporter à Zones mémoire du Chapitre 5 pour les conventions d’adressage et les adresses des drapeaux et des bits de commande. ! Attention Les zones IR et SR sont considérées comme des zones de données séparées. Lorsqu’un opérande a accès à une de ces zones, ceci ne signifie pas nécessairement que le même opérande aura accès à l’autre. La frontière entre les zones IR et SR peut, cependant, être franchie pour un même opérande, à savoir que le dernier bit de la zone IR peut être défini pour un opérande qui exige plus d’un mot lorsque SR est également affectée à cet opérande. Le sous-paragraphe Drapeaux énumère les drapeaux qui sont affectés par l’exécution d’une instruction. Ces drapeaux incluent les drapeaux de la zone SR suivants : Abréviation ER Dénomination Bit 25503 CY Drapeau d’erreur d’exécution d’instruction (Instruction Execution Error Flag) Drapeau de report (Carry Flag) GR Drapeau Plus grand que (Greater Than Flag) 25505 EQ Drapeau Egal à (Equals Flag) 25506 LE Drapeau Plus petit que (Less Than Flag) 25507 25504 ER est le drapeau le plus généralement utilisé pour surveiller l’exécution d’une instruction. Lorsqu’ER passe à ON, il indique qu’une erreur s’est produite lors d’une tentative d’exécution de l’instruction courante. Le sous-paragraphe Drapeaux de chaque instruction énumère les raisons possibles au passage d’ER à l’état ON. ER passe à ON lorsque des opérandes ne sont pas entrés correctement. Les instructions ne sont pas exécutées lorsqu’ER est sur ON. Un tableau des instructions et des drapeaux qu’elles affectent est fourni dans Utilisation des drapeaux d’erreurs et arithmétiques à l’Annexe B. Adressage indirect Lorsque la zone DM est définie pour un opérande, une adresse indirecte peut être utilisée. L’adressage indirect de DM est défini en plaçant un astérisque avant DM: *DM. Lorsqu’une adresse indirecte est définie pour DM, le mot DM indiqué renferme l’adresse du mot DM qui contient les données à utiliser comme opérande de l’instruction. Lorsque, par exemple, *DM 0001 était défini comme premier opérande et LR 00 comme deuxième opérande de MOV(21), le contenu de DM 0001 serait 1111 et DM 1111 contiendrait 5555 et la valeur 5555 serait transférée à LR 00. MOV(21) *DM 0001 LR 00 Adressage indirect Mot DM 0000 DM 0001 DM 0002 Contenu 4C59 1111 F35A DM 1111 DM 1113 DM 1114 5555 2506 D541 Indique DM 1111. 5555 déplacé en LR 00. Lorsque l’adressage indirect est utilisé, l’adresse du mot désiré doit être une valeur BDC et elle doit indiquer un mot dans la zone DM. Dans l’exemple ci--des- 311 Chapitre Instructions sur changement d’état 7-4 sus, le contenu de DM 0001 doit être une valeur BCD et doit définir une adresse dans la zone DM de l’API utilisé. Se reporter au Chapitre 5 Zones mémoire pour des explications sur la zone DM. Définition des constantes 7-4 Bien que les adresses des zones de données soient le plus souvent données comme opérandes, un grand nombre d’opérandes et tous les bits de définition sont saisis sous forme de constantes. La plage de valeurs disponibles pour un bit de définition ou un opérande dépend de l’instruction particulière qui l’utilise. Les constantes doivent également être saisies sous la forme exigée par l’instruction, c.--à--d. BCD ou hexadécimale. Instructions sur changement d’état La plupart des instructions sont fournies sous leur forme sur changement d’état et sous leur forme simple. Les instructions sur changement d’état sont distinguées par un @ devant le terme mnémonique de l’instruction. Une instruction simple est exécutée chaque fois qu’elle est balayée lorsque son état est ON. Une instruction sur changement d’état est exécutée seulement une fois après que son état passe de OFF à ON. Lorsque l’état n’a pas changé ou est passé de ON à OFF depuis le dernier balayage de l’instruction, celle-ci ne sera pas exécutée. Les deux exemples suivants montrent comme ceci fonctionne avec MOV(21) et @MOV(21), qui sont utilisées pour transférer les données de l’adresse indiquée par le premier opérande à l’adresse indiquée par le deuxième opérande. 00000 MOV(21) HR 10 Schéma A DM 0000 Adresse 00000 00001 Instruction Opérandes LD MOV(21) 00000 HR DM 10 0000 00000 Schéma B @MOV(21) Adresse Instruction HR 10 00000 00001 LD @MOV(21) DM 0000 Opérandes 00000 HR DM 10 0000 Dans le schéma A, la MOV(21) simple transfère le contenu de HR 10 à DM 0000 à chaque scrutation avec 00000. Lorsque le temps de cycle est 80 ms et lorsque 00000 reste à l’état ON pendant 2,0 secondes, cette opération de transfert sera effectuée 25 fois et seulement la dernière valeur transférée à DM 0000 sera préservée. Dans le schéma B, la @MOV(21) sur changement d’état transfère le contenu de HR 10 à DM 0000 que lorsque 00000 passe à l’état ON. Même lorsque 00000 reste à l’état ON pendant 2,0 secondes avec le même temps de cycle de 80 ms, l’opération de transfert ne sera exécutée qu’une fois pendant le premier cycle durant lequel 00000 passe de OFF sur ON. Du fait que le contenu de HR 10 peut changer pendant les 2 secondes où 00000 est à ON, le contenu de DM 0000 après 2 secondes diffère selon que MOV(21) ou @MOV(21) a été utilisée. Tous les opérandes, les symboles de schéma à contacts et autres caractéristiques des instructions sont identiques quelque indépendamment de la forme (sur changement d’état ou simple) d’une instruction. A la saisie, les mêmes codes de fonction sont également utilisés, mais NOT est saisie après le code de fonction pour indiquer la forme sur changement d’état d’une instruction. La plupart, mais non la totalité, des instructions, sont sous forme sur changement d’état. 312 Codages des instructions à droite Chapitre 7-5 Se reporter au paragraphe 7-11 INTERLOCK et INTERLOCK CLEAR -- IL(02) et ILC(03) pour les effets des verrouillages sur des d’instructions sur changement d’état. Le CPM2A/CPM2C délivre également des instructions sur changement d’état : DIFU(13) et DIFD(14). DIFU(13) fonctionne de la même façon qu’une instruction sur changement d’état, mais est utilisée pour mettre à 1 un bit durant un cycle. DIFD(14) met également un bit à 1 durant un cycle, mais uniquement quant l’état de l’instruction passe de ON à OFF. Se reporter au paragraphe 7-8-4 DIFFERENCIATION VERS LE HAUT ET LE BAS - DIFU(13) et DIFD(14) pour de plus amples informations. 7-5 Codages des instructions à droite L’écriture des codes mnémoniques pour les instructions à contacts est décrite au Chapitre 6 Programmation en schéma à contacts. La conversion des informations en symboles de schémas à contacts pour toutes les autres instructions suit le même modèle, comme décrit ci-dessous,et n’est pas indiquée pour chaque instruction. Le premier mot de toute instruction définit l’instruction et indique tous les bits de définition. Lorsque l’instruction n’exige qu’un bit d’opérande, sans bit de définition, ce bit d’opérande est également placé sur la même ligne que le code mnémonique. Tous les autres opérandes sont placés sur les lignes qui suivent la ligne secondaire, un opérande par ligne et dans l’ordre où ils apparaissent dans le symbole à contacts. Les colonnes d’adresses et d’instructions des tableaux de codes mnémoniques ne sont remplies que pour le mot d’instruction. Pour toutes les autres lignes, les deux colonnes de gauche sont laissées vierges. Lorsque l’instruction n’exige aucun bit de définition ou d’opérande, la colonne de données est laissée vierge pour la première ligne. Il est recommandé de parcourir tous les espaces blancs de colonnes de données (correspondant aux mots d’instruction qui n’exigent pas des données) afin de balayer rapidement la colonne des donnée pour voir si des adresses ont été omises. Lorsqu’une adresse IR ou SR est utilisée dans la colonne de données, le côté gauche de la colonne est laissé en blanc. Lorsqu’une autre zone de données est utilisée, l’abréviation de cette zone est placée du côté gauche et l’adresse du côté droit. Pour la saisie d’une constante, le symbole de nombre (#) est placé du côté gauche de la colonne de données et le nombre à saisir du côté droit. Aucun nombre saisi comme bit de définition dans le mot d’instrcution n’exige le symbole de nombre du côté droit. Les bits TC, une fois utilisés pour la définition de temporisations ou de compteurs, sont précédés d’un préfixe TIM (temporisation) ou CNT (compteur). Lors du codage d’une instruction comportant un code de fonction, veiller à écrire ce code de fonction, ceci étant nécessaire lors de la saisie de l’instruction par l’intermédiaire de la console de programmation. Ne pas omettre non plus d’indiquer l’instruction sur changement d’état par le symbole @. Rem. Les codes mnémoniques des instructions d’expansion sont suivis de “(----)” qui correspond au code de fonction. Ceci indique que des codes fonction doivent leur être affectés par l’utilisateur dans le tableau d’instructions afin de pouvoir être utilisés au cours de la programmation. Se reporter à la page 162 pour de plus amples informations. 313 Chapitre Codages des instructions à droite 7-5 Le schéma suivant et le code mnémonique correspondant illustrent les points décrits précédemment : 00000 Adresse Instruction 00001 DIFU(13) 21600 00002 00100 00200 21600 BCNT(67) 01001 01002 LR 0000 Données 00000 LD 00000 00001 AND 00001 00002 OR 00002 00003 DIFU(13) 21600 00004 LD 00100 00005 AND NOT 00200 00006 LD 01001 00007 AND NOT 01002 00008 AND NOT 00009 OR LD 00010 AND 00011 BCNT(67) #0001 004 HR 00 00005 TIM 000 LR 0000 ---21600 #0150 TIM 000 ---# MOV(21) 0001 004 HR 00 HR LR 00 HR 0015 00012 LD 00013 TIM 314 00005 000 # 01000 00014 LD 00015 MOV(21) 00016 LD 00017 OUT NOT 00 TIM 0150 000 ---- HR 00 LR 00 HR 0015 01000 Chapitre Codages des instructions à droite Lignes secondaires multiple 00000 Lorsqu’une instruction avec codage à droite exige plusieurs lignes secondaires (par exemple, KEEP(11)), toutes les lignes de cette instruction sont écrites avant celle-ci. Chacune des lignes de cette instruction est codée, à partir de LD ou de LD NOT, pour former des “blocs logiques” qui sont combinés par cette instruction. Ceci est illustré ci-dessous par SFT(10). Adresse Instruction 00001 I SFT(10) 00002 P HR 00 00100 00200 01001 01002 7-5 21600 R HR 00 LR 0000 HR 0015 01001 Données 00000 LD 00000 00001 AND 00001 00002 LD 00002 00003 LD 00100 00004 AND NOT 00200 00005 LD 01001 00006 AND NOT 00007 AND NOT 00008 OR LD 00009 AND 00010 SFT(10) HR HR 00 00011 LD HR 0015 00012 OUT NOT 01002 LR 0000 ---21600 00 01001 315 Chapitre Tableaux d’instruction 7-6 7-6 Tableaux d’instruction Ce paragraphe contient des tableaux des instructions supportées par les API des CPM1/CPM1A, CPM2A/CPM2C et SRM1(-V2). Les premiers tableaux permettent la recherche d’instructions par leurs codes de fonctions. Le dernier tableau permet la recherche d’instructions par leurs codes mnémoniques. Dans les deux cas, le symbole @ indique des instructions sous forme sur changement d’état. 7-6-1 Codes de fonctions des CPM1/CPM1A Le tableau suivant présente les instructions des CPM1/CPM1A auxquels correspondent des codes de fonctions fixes. Chaque instruction est listée par mnémonique et par nom d’instruction. Utiliser les valeurs de la colonne de gauche en tant que digit de gauche et la valeur dans l’en-tête de la colonne en tant que digit de droite du code de fonction. Digit de droite Digit de gauche 0 1 2 3 4 5 6 7 8 9 0 NOP NO OPERATION END END IL INTERLOCK ILC INTERLOCK CLEAR JMP JUMP JME JUMP END (@) FAL FAILURE ALARM AND RESET FALS SEVERE FAILURE ALARM STEP STEP DEFINE SNXT STEP START 1 SFT SHIFT REGISTER KEEP KEEP CNTR REVERSIBLE COUNTER DIFU DIFFERENTIATE UP DIFD DIFFERENTIATE DOWN TIMH HIGHSPEED TIMER (@) WSFT WORD SHIFT (@) ASFT ASYNCHRONOUS SHIFT REGISTER --- --- 2 CMP COMPARE (@) MOV MOVE (@) MVN MOVE NOT (@) BIN BCD À BINARY (@) BCD BINARY À BCD (@) ASL SHIFT LEFT (@) ASR SHIFT RIGHT (@) ROL ROTATE LEFT (@) ROR ROTATE RIGHT (@) COM COMPLEMENT 3 (@) ADD BCD ADD (@) SUB BCD SUBTRACT (@) MUL BCD MULTIPLY (@) DIV BCD DIVIDE (@) ANDW LOGICAL AND (@) ORW LOGICAL OR (@) XORW EXCLUSIVE OR (@) XNRW EXCLUSIVE NOR (@) INC INCREMENT (@) DEC DECREMENT 4 (@) STC SET CARRY (@) CLC CLEAR CARRY --- --- --- --- (@) MSG MESSAGE DISPLAY --- --- --- 5 (@) ADB BINARY ADD (@) SBB BINARY SUBTRACT (@) MLB BINARY MULTIPLY (@) DVB BINARY DIVIDE (@) ADDL DOUBLE BCD ADD (@) SUBL DOUBLE BCD SUBTRACT (@) MULL DOUBLE BCD MULTIPLY (@) DIVL DOUBLE BCD DIVIDE --- --- 6 CMPL DOUBLE COMPARE (@) INI MODE CONTROL (@) PRV COMPTEUR À GRANDE VITESSE PV READ (@) CTBL COMPARISON TABLE LOAD (@) SPED SPEED OUTPUT (voir Rem.) (@) PULS SET PULSES (voir Rem.) --- (@) BCNT BIT COUNTER (@) BCMP BLOCK COMPARE (@) STIM INTERVAL TIMER 7 (@) XFER BLOCK TRANSFER (@) BSET BLOCK SET --- (@) XCHG DATA EXCHANGE (@) SLD ONE DIGIT SHIFT LEFT (@) SRD ONE DIGIT SHIFT RIGHT (@) MLPX 4-À-16 DECODER (@) DMPX 16-À-4 ENCODER (@) SDEC 7-SEGMENT DECODER --- 8 (@) DIST SINGLE WORD DISTRIBUTE (@) COLL DATA COLLECT (@) MOVB MOVE BIT (@) MOVD MOVE DIGIT (@) SFTR REVERSIBLE SHIFT REGISTER (@) TCMP TABLE COMPARE (@) ASC ASCII CONVERT --- --- (@) INT INTERRUPT CONTROL 9 --- (@) SBS SUBROUTINE ENTRY SBN SUBROUTINE DEFINE RET SUBROUTINE RETURN --- --- --- (@) IORF I/O REFRESH --- (@) MCRO MACRO Rem. Seulement pour les modèles de CPM1A à sorties du type NPN. 316 Chapitre Tableaux d’instruction 7-6 7-6-2 Codes de fonction des CPM2A/CPM2C Le tableau suivant présente les instructions des CPM2A/CPM2C auxquels correspondent des codes de fonctions fixes. Chaque instruction est listée par code mnémonique et par nom d’instruction. Utiliser les valeurs de la colonne de gauche en tant que digit de gauche et la valeur dans l’en-tête de la colonne en tant que digit de droite du code de fonction. Digit de droite Digit de gauche 0 1 2 3 4 5 6 7 8 9 0 NOP NO OPERATION END END IL INTERLOCK ILC INTERLOCK CLEAR JMP JUMP JME JUMP END (@) FAL FAILURE ALARM AND RESET FALS SEVERE FAILURE ALARM STEP STEP DEFINE SNXT STEP START 1 SFT SHIFT REGISTER KEEP KEEP CNTR REVERSIBLE COUNTER DIFU DIFFERENTIATE UP DIFD DIFFERENTIATE DOWN TIMH HIGHSPEED TIMER (@) WSFT WORD SHIFT (@) ASFT ASYNCHRONOUS SHIFT REGISTER --- --- 2 CMP COMPARE (@) MOV MOVE (@) MVN MOVE NOT (@) BIN BCD À BINARY (@) BCD BINARY À BCD (@) ASL SHIFT LEFT (@) ASR SHIFT RIGHT (@) ROL ROTATE LEFT (@) ROR ROTATE RIGHT (@) COM COMPLEMENT 3 (@) ADD BCD ADD (@) SUB BCD SUBTRACT (@) MUL BCD MULTIPLY (@) DIV BCD DIVIDE (@) ANDW LOGICAL AND (@) ORW LOGICAL OR (@) XORW EXCLUSIVE OR (@) XNRW EXCLUSIVE NOR (@) INC INCREMENT (@) DEC DECREMENT 4 (@) STC SET CARRY (@) CLC CLEAR CARRY --- --- --- --- (@) MSG MESSAGE DISPLAY (@) RXD RECEIVE (@) TXD TRANSMIT --- 5 (@) ADB BINARY ADD (@) SBB BINARY SUBTRACT (@) MLB BINARY MULTIPLY (@) DVB BINARY DIVIDE (@) ADDL DOUBLE BCD ADD (@) SUBL DOUBLE BCD SUBTRACT (@) MULL DOUBLE BCD MULTIPLY (@) DIVL DOUBLE BCD DIVIDE (@) BINL DOUBLE BCD-ÀDOUBLE BINARY (@) BCDL DOUBLE BINARY-ÀDOUBLE BCD 6 CMPL DOUBLE COMPARE (@) INI MODE CONTROL (@) PRV COMPTEUR À GRANDE VITESSE PV READ (@) CTBL COMPARISON TABLE LOAD SORTIE (@) PULS SET PULSES (@) SCL SCALING (@) BCNT BIT COUNTER (@) BCMP BLOCK COMPARE (@) STIM INTERVAL TIMER 7 (@) XFER BLOCK TRANSFER (@) BSET BLOCK SET --- (@) XCHG DATA EXCHANGE (@) SLD ONE DIGIT SHIFT LEFT (@) SRD ONE DIGIT SHIFT RIGHT (@) MLPX 4-TO-16 DECODER (@) DMPX 16-TO-4 ENCODER (@) SDEC 7-SEGMENT DECODER --- 8 (@) DIST SINGLE WORD DISTRIBUTE (@) COLL DATA COLLECT (@) MOVB MOVE BIT (@) MOVD MOVE DIGIT (@) SFTR REVERSIBLE SHIFT REGISTER (@) TCMP TABLE COMPARE (@) ASC ASCII CONVERT --- --- (@) INT INTERRUPT CONTROL 9 --- (@) SBS SUBROUTINE ENTRY SBN SUBROUTINE DEFINE RET SUBROUTINE RETURN --- --- --- (@) IORF I/O REFRESH --- (@) MCRO MACRO 317 Chapitre Tableaux d’instruction 7-6 7-6-3 Codes de fonctions du SRM1(-V2) Le tableau suivant présente les instructions des SRM1(-V2) auxquels correspondent des codes de fonctions fixes. Chaque instruction est listée par code mnémonique et par nom d’instruction. Utiliser les valeurs de la colonne de gauche en tant que digit de gauche et la valeur dans l’en-tête de la colonne en tant que digit de droite du code de fonction. Digit de droite Digit de gauche 0 1 2 3 4 5 6 7 8 9 0 NOP NO OPERATION END END IL INTERLOCK ILC INTERLOCK CLEAR JMP JUMP JME JUMP END (@) FAL FAILURE ALARM AND RESET FALS SEVERE FAILURE ALARM STEP STEP DEFINE SNXT STEP START 1 SFT SHIFT REGISTER KEEP KEEP CNTR REVERSIBLE COUNTER DIFU DIFFERENTIATE UP DIFD DIFFERENTIATE DOWN TIMH HIGHSPEED TIMER (@) WSFT WORD SHIFT (@) ASFT ASYNCHRONOUS SHIFT REGISTER --- --- 2 CMP COMPARE (@) MOV MOVE (@) MVN MOVE NOT (@) BIN BCD À BINARY (@) BCD BINARY À BCD (@) ASL SHIFT LEFT (@) ASR SHIFT RIGHT (@) ROL ROTATE LEFT (@) ROR ROTATE RIGHT (@) COM COMPLEMENT 3 (@) ADD BCD ADD (@) SUB BCD SUBTRACT (@) MUL BCD MULTIPLY (@) DIV BCD DIVIDE (@) ANDW LOGICAL AND (@) ORW LOGICAL OR (@) XORW EXCLUSIVE OR (@) XNRW EXCLUSIVE NOR (@) INC INCREMENT (@) DEC DECREMENT 4 (@) STC SET CARRY (@) CLC CLEAR CARRY --- --- --- --- (@) MSG MESSAGE DISPLAY (@) RXD RECEIVE (@) TXD TRANSMIT --- 5 (@) ADB BINARY ADD (@) SBB BINARY SUBTRACT (@) MLB BINARY MULTIPLY (@) DVB BINARY DIVIDE (@) ADDL DOUBLE BCD ADD (@) SUBL DOUBLE BCD SUBTRACT (@) MULL DOUBLE BCD MULTIPLY (@) DIVL DOUBLE BCD DIVIDE --- --- 6 CMPL DOUBLE COMPARE --- --- --- --- (@) SCL SCALING --- (@) BCNT BIT COUNTER (@) BCMP BLOCK COMPARE (@) STIM INTERVAL TIMER 7 (@) XFER BLOCK TRANSFER (@) BSET BLOCK SET --- (@) XCHG DATA EXCHANGE (@) SLD ONE DIGIT SHIFT LEFT (@) SRD ONE DIGIT SHIFT RIGHT (@) MLPX 4-TO-16 DECODER (@) DMPX 16-TO-4 ENCODER (@) SDEC 7-SEGMENT DECODER --- 8 (@) DIST SINGLE WORD DISTRIBUTE (@) COLL DATA COLLECT (@) MOVB MOVE BIT (@) MOVD MOVE DIGIT (@) SFTR REVERSIBLE SHIFT REGISTER (@) TCMP TABLE COMPARE (@) ASC ASCII CONVERT --- --- --- 9 --- (@) SBS SUBROUTINE ENTRY SBN SUBROUTINE DEFINE RET SUBROUTINE RETURN --- --- --- --- --- (@) MCRO MACRO 318 Chapitre Tableaux d’instruction 7-6 7-6-4 Liste alphabétique des termes mnémoniques Les tirets (“--”) dans la colonne Code indiquent des instructions d’expansion, auxquelles ne correspondent pas des codes de fonctions fixes. “None” (Aucun) indique les instructions pour lesquelles des codes de fonctions ne sont pas utilisés. Dans la colonne Unités centrales, “SRM1” désigne toutes les versions des unités centrales du SRM1 et “SRM1(-V2)” ne désigne que la version 2 des unités centrales du SRM1. Dans la suite du document, les désignations sont conservées en anglais, se reporter au tableau ci-après pour en connaître la signification en français. Mnémonique Code Mots Désignation Unités centrales Page ACC (@) ---- 4 COMMANDE D’ACCELERATION (ACCELERATION CONTROL) CPM2A/CPM2C 438 ADB (@) 50 4 AJOUTER VALEUR BINAIRE (BINARY ADD) Toutes 411 ADD (@) 30 4 AJOUTER VALEUR BCD (BCD ADD) Toutes 401 ADDL (@) 54 4 AJOUTER DOUBLE VALEUR BCD (DOUBLE BCD ADD) Toutes 407 ET None 1 ET (AND) Toutes 323 ET LD None 1 ET CHARGER (AND LOAD) Toutes 324 AND NOT None 1 NON ET (AND NOT) Toutes 323 ANDW (@) 34 4 ET LOGIQUE (LOGICAL AND) Toutes 422 ASC (@) 86 4 CONVERSION ASCII (ASCII CONVERT) Toutes 387 ASFT(@) 17 4 Toutes 359 ASL (@) 25 2 Toutes 354 ASR (@) 26 2 Toutes 354 AVG ---- 4 REGISTRE A DECALAGE ASYNCHRONE (ASYNCHRONOUS SHIFT REGISTER) DECALAGE ARITHMETIQUE A GAUCHE (ARITHMETIC SHIFT LEFT) DECALAGE ARITHMETIQUE A DROITE (ARITHMETIC SHIFT RIGHT) VALEUR MOYENNE (AVERAGE VALUE) CPM2A/CPM2C 417 BCD (@) 24 3 BINAIRE EN BCD (BINARY TO BCD) Toutes 378 BCDL (@) 59 3 CPM2A/CPM2C 379 BCMP (@) 68 4 Toutes 372 BCNT (@) 67 4 DOUBLE VALEUR BINAIRE EN DOUBLE VALEUR BCD (DOUBLE BINARY-TO-DOUBLE BCD) COMPARAISON DE BLOCS (BLOCK COMPARE) COMPTEUR DE BITS (BIT COUNTER) Toutes 431 BIN (@) 23 3 BCD EN BINAIRE (BCD-TO-BINARY) Toutes 377 BINL (@) 58 3 CPM2A/CPM2C 379 BSET (@) 71 4 DOUBLE BCD POUR DOUBLE BINAIRE (DOUBLE BCD-TO-DOUBLE BINARY) PARAMETRAGE DE BLOCS (BLOCK SET) Toutes 363 CLC (@) 41 1 ANNULATION REPORT (CLEAR CARRY) Toutes 401 CMP 20 3 COMPARAISON (COMPARE) Toutes 370 CMPL 60 4 DOUBLE COMPARAISON (DOUBLE COMPARE) Toutes 374 CNT None 2 COMPTEUR (COUNTER) Toutes 340 CNTR 12 3 COMPTEUR REVERSIBLE (REVERSIBLE COUNTER) Toutes 342 COLL (@) 81 4 COLLECTE DE DONNEES (DATA COLLECT) Toutes 366 COM (@) 29 2 COMPLEMENT (COMPLEMENT) Toutes 421 CTBL(@) 63 4 CHARGEMENT DU TABLEAU DE COMPARAISON (COMPARISON TABLE LOAD) Toutes 343 319 Chapitre Tableaux d’instruction Mnémonique DEC (@) 39 2 DECREMENT BCD (BCD DECREMENT) Toutes 425 DIFD 14 2 DIFFERENCIATION VERS LE BAS (DIFFERENTIATE DOWN) Toutes 327 DIFU 13 2 DIFFERENCIATION VERS LE HAUT (DIFFERENTIATE UP) Toutes 327 DIST (@) 80 4 DISTRIBUTION DE MOT SIMPLE (SINGLE WORD DISTRIBUTE) Toutes 364 DIV (@) 33 4 DIVISION BCD (BCD DIVIDE) Toutes 405 DIVL (@) 57 4 DIVISION DOUBLE VALEUR BCD (DOUBLE BCD DIVIDE) Toutes 410 DMPX (@) 77 4 CODEUR 16 A 4 (16-TO-4 ENCODER) Toutes 382 DVB (@) 53 4 DIVISION BINAIRE (BINARY DIVIDE) Toutes 414 END 01 1 FIN (END) Toutes 328 FAL (@) 06 2 ALARME DE PANNE ET REMISE A ZERO (FAILURE ALARM AND RESET) Toutes 332 FALS 07 2 ALARME DE PANNE GRAVE (SEVERE FAILURE ALARM) Toutes 332 FCS (@) ---- 4 CALCUL DE FCS (FCS CALCULATE) CPM2A/CPM2C/SRM1(-V2) 432 HEX (@) ---- 4 ASCII EN HEXADECIMAL (ASCII-TO-HEXADECIMAL) CPM2A/CPM2C/SRM1(-V2) 389 HMS ---- 4 SECONDES EN HEURES (SECONDS TOHOURS) CPM2A/CPM2C 398 IL 02 1 VERROUILLAGES (INTERLOCK) Toutes 328 ILC 03 1 SUPPRESSION VERROUILLAGE (INTERLOCK CLEAR) Toutes 328 INC (@) 38 2 INCREMENT (INCREMENT) Toutes 424 INI (@) 61 4 COMMANDE DU MODE (MODE CONTROL) Toutes 346 INT (@) 89 4 COMMANDE D’INTERRUPTION (INTERRUPT CONTROL) Toutes 452 IORF (@) 97 3 RAFRAICHISSEMENT E/S (I/O REFRESH) Toutes excepté SRM1 431 JME 05 2 FIN DE SAUT (JUMP END) Toutes 330 JMP 04 2 SAUT (JUMP) Toutes 330 KEEP 11 2 CONSERVER (KEEP) Toutes 326 LD None 1 CHARGER (LOAD) Toutes 323 LD NOT None 1 NE PAS CHARGER (LOAD NOT) Toutes 323 MAX (@) ---- 4 TROUVER MAXIMUM (FIND MAXIMUM) CPM2A/CPM2C 415 MCRO (@) 99 4 MACRO (MACRO) Toutes 428 MIN (@) ---- 4 TROUVER MINIMUM (FIND MINIMUM) CPM2A/CPM2C 416 MLB (@) 52 4 MULTIPLICATION BINAIRE (BINARY MULTIPLY) Toutes 414 MLPX (@) 76 4 CODEUR 4 A 16 (4-TO-16 DECODER) Toutes 380 MOV (@) 21 3 TRANSFERT (MOVE) Toutes 360 MOVB (@) 82 4 TRANSFERT DE BIT (MOVE BIT) Toutes 368 MOVD (@) 83 4 TRANSFERT DE DIGIT (MOVE DIGIT) Toutes 369 MSG (@) 46 2 MESSAGE (MESSAGE) Toutes 429 MUL (@) 32 4 MULTIPLICATION VALEUR BCD (BCD MULTIPLY) Toutes 404 MULL (@) 56 4 DOUBLE MULTIPLICATION BCD (DOUBLE BCD MULTIPLY) Toutes 410 MVN (@) 22 3 PAS DE TRANSFERT (MOVE NOT) Toutes 361 NEG (@) ---- 4 COMPLEMENT DE 2 (2’S COMPLEMENT) CPM2A/CPM2C/SRM1(-V2) 399 320 Code Mots Désignation Unités centrales 7-6 Page Chapitre Tableaux d’instruction Code Mots Désignation Unités centrales 7-6 Mnémonique NOP Page 00 1 PAS DE FONCTIONNEMENT (NO OPERATION) Toutes 328 OR None 1 OU (OR) Toutes 323 OU LD None 1 OU CHARGER (OR LOAD) Toutes 324 OR NOT None 1 NON OU (OR NOT) Toutes 323 ORW (@) 35 4 OU LOGIQUE (LOGICAL OR) Toutes 422 OUT None 2 SORTIE (OUTPUT) Toutes 324 OUT NOT None 2 PAS DE SORTIE (OUTPUT NOT) Toutes 324 PID ---- 4 COMMANDE DE PID (PID CONTROL) CPM2A/CPM2C/SRM1(-V2) 446 PRV (@) 62 4 LECTURE PV DU COMPTEUR A GRANDE VITESSE (HIGH-SPEED COUNTER PV READ) Toutes excepté SRM1 348 PULS (@) 65 4 DEFINITION DES IMPULSIONS (SET PULSES) CPM1A/CPM2A/CPM2C (Sorties du type NPN seulement) 434 PWM (@) ---- 4 CPM2A/CPM2C 441 RET 93 1 IMPULSION A RAPPORT CYCLIQUE VARIABLE (PULSE WITH VARIABLE DUTY RATIO) RETOUR A SOUS--PROGRAMME (SUBROUTINE RETURN) Toutes 428 ROL (@) 27 2 ROTATION A GAUCHE (ROTATE LEFT) Toutes 355 ROR (@) 28 2 ROTATION A DROITE (ROTATE RIGHT) Toutes 355 RSET None 2 REMISE A ZERO (RESET) Toutes 325 RXD (@) 47 4 RECEPTION (RECEIVE) CPM2A/CPM2C/SRM1 457 SBB (@) 51 4 SOUSTRACTION VALEUR BINAIRE (BINARY SUBTRACT) Toutes 412 SBN 92 2 DEFINITION DU SOUS--PROGRAMME (SUBROUTINE DEFINE) Toutes 428 SBS (@) 91 2 SAISIE DU SOUS--PROGRAMME (SUBROUTINE ENTRY) Toutes 426 SCL (@) 66 4 MISE A L’ECHELLE (SCALING) CPM2A/CPM2C/SRM1(-V2) 391 SCL2 (@) ---- 4 MISE A L’ECHELLE VALEUR BINAIRE SIGNEE VERS BCD (SIGNED BINARY TO BCD SCALING) CPM2A/CPM2C 393 SCL3 (@) ---- 4 MISE A L’ECHELLE VALEUR BCD VERS VALEUR BINAIRE SIGNEE (BCD TO SIGNED BINARY SCALING) CPM2A/CPM2C 395 SDEC (@) 78 4 DECODEUR 7 SEGMENTS (7-SEGMENT DECODER) CPM2A/CPM2C 384 SEC ---- 4 HEURES A SECONDES (HOURS TO SECONDS) CPM2A/CPM2C 397 SET None 2 DEFINIR (SET) Toutes 325 SFT 10 3 REGISTRE A DECALAGE (SHIFT REGISTER) Toutes 352 SFTR (@) 84 4 REGISTRE REVERSIBLE A DECALAGE (REVERSIBLE SHIFT REGISTER) Toutes 357 SLD (@) 74 3 DECALAGE A GAUCHE D’UN DIGIT (ONE DIGIT SHIFT LEFT) Toutes 356 SNXT 09 2 DEPART INCREMENT (STEP START) Toutes 333 SPED (@) 64 4 SORTIE DE VITESSE (SPEED OUTPUT) CPM1A/CPM2A/CPM2C (Sorties du type NPN seulement) 435 SRCH (@) ---- 4 RECHERCHE DE DONNEES (DATA SEARCH) CPM2A/CPM2C 445 321 Chapitre Tableaux d’instruction Mnémonique SRD (@) Code Mots 75 3 STC (@) 40 STEP 08 STIM (@) Désignation Unités centrales 7-6 Page Toutes 357 1 DECLGE DROIT D’UN DIGIT (ONE DIGIT SHIFT RIGHT) REPORT DE DEFINITION (SET CARRY) Toutes 401 2 DEFINITION D’ETAPE (STEP DEFINE) Toutes 333 69 4 Toutes 455 STUP ---- 3 CPM2A/CPM2C/SRM1 460 SUB (@) 31 4 TEMPORISATION CYCLIQUE (INTERVAL TIMER) MODIFICATION DU SETUP DE RS--232C (CHANGE RS-232C SETUP) SOUSTRACTION VALEUR BCD (BCD SUBTRACT) Toutes 402 SUBL (@) 55 4 DOUBLE SOUSTRACTION VALEUR BCD (DOUBLE BCD SUBTRACT) Toutes 408 SUM (@) ---- 4 SOMME (SUM) CPM2A/CPM2C 419 SYNC (@) ---- 4 CPM2A/CPM2C 443 TCMP (@) 85 4 Toutes 371 TIM None 2 COMMANDE SYNCHRONISEE D’IMPULSION (SYNCHRONIZED PULSE CONTROL) COMPARAISON DE TABLEAUX (TABLE COMPARE) TEMPORISATION (TIMER) Toutes 336 TIMH 15 3 Toutes 337 TIML ---- 4 TEMPORISATION A GRANDE VITESSE (HIGH-SPEED TIMER) TEMPORISATION LONGUE (LONG TIMER) CPM2A/CPM2C 338 TMHH ---- 4 CPM2A/CPM2C 339 TXD (@) 48 4 TEMPORISATION A TRES GRANDE VITESSE (VERY HIGH-SPEED TIMER) TRANSMISSION (TRANSMIT) CPM2A/CPM2C/SRM1 458 WSFT (@) 16 3 DECALAGE DE MOT (WORD SHIFT) Toutes 353 XCHG (@) 73 3 Toutes 364 XFER (@) 70 4 Toutes 362 XNRW (@) 37 4 ECHANGE DE DONNEES (DATA EXCHANGE) TRANSFERT PAR BLOCS (BLOCK TRANSFER) NON OU EXCLUSIF (EXCLUSIVE NOR) Toutes 424 XORW (@) 36 4 OU EXCLUSIF (EXCLUSIVE OR) Toutes 423 ZCP ---- 4 CPM2A/CPM2C/SRM1(-V2) 375 ZCPL ---- 4 COMPARAISON DE PLAGES DE ZONES (AREA RANGE COMPARE) DOUBLE COMPARAISON DE PLAGES DE ZONES (DOUBLE AREA RANGE COMPARE) CPM2A/CPM2C 377 322 Chapitre Programmation en schémas à contacts 7-7 7-7 Programmation en schémas à contacts Les instructions en schémas à contacts comprennent les instructions à contacts et les instructions pouvant être regroupées en blocs logiques ; elles effectuent le contrôle des conditions du schéma à contacts. Des blocs logiques d’instructions sont utilisés pour relier les pièces les plus complexes. 7-7-1 LOAD, LOAD NOT, AND, AND NOT, OR et OR NOT Symboles à contacts Zones de données d’opérandes B B : Bit LOAD -- LD IR, SR, AR, HR, TC, LR, TR B : Bit B LOAD NOT -- LD NOT IR, SR, AR, HR, TC, LR B : Bit B AND -- AND IR, SR, AR, HR, TC, LR B : Bit B AND NOT -- AND NOT IR, SR, AR, HR, TC, LR B : Bit OR -- OR B OR NOT -- OR NOT B IR, SR, AR, HR, TC, LR B : Bit IR, SR, AR, HR, TC, LR Limitations Il n’existe aucune limite quant au nombre de ces instructions, ou à l’ordre dans lequel elles doivent être utilsées, tant que la capacité de mémoire de l’API n’est pas dépassée. Description Ces six instructions de base correspondent aux conditions existant sur un schéma à contacts. Comme décrit au Chapitre 6 Programmation en schémas à contacts, l’état du bit affecté à chaque instruction détermine les conditions d’exécution de toutes autres instructions. Chacune de ces instructions et chaque adresse de bit peut être utilisée autant de fois que nécessaire. Chacune peut être utilisée dans autant d’instructions que nécessaire. L’état du bit d’opérande (B) assigné à LD ou à LD NOT détermine la première condition d’exécution. AND calcule le ET logique entre la condition d’exécution et l’état de son bit d’opérande ; AND NOT calcule le ET logique entre la condition d’exécution et l’inverse de l’état de son bit d’opérande. OR calcule le OU logique entre la condition d’exécution et l’état de son bit d’opérande ; OR NOT calcule le OU logique entre la condition d’exécution et l’inverse de l’état de son bit d’opérande. Drapeaux Aucun drapeau ne correspond à ces instructions. 323 Chapitre Instructions de commande de bits 7-8 7-7-2 AND LOAD et OR LOAD AND LOAD -- AND LD Symboles à contacts 00000 00002 00001 00003 OR LOAD -- OR LD Symboles à contacts 00000 00001 00002 00003 Description Pour l’obtention de blocs d’instructions, lorsqu’elles ne peuvent être combinées entre elles à l’aide des seules opérations OR et AND, on recourt à AND LD et OR LD. Alors que AND et OR effectuent la combinaison logique entre l’éta d’un bit et une condition d’exécution, AND LD et OR LD combinent entre elles deux conditions d’exécution, à savoir l’état actuel et le dernier état non utilisé. Il n’est pas nécessaire d’utiliser les instructions AND LD et OR LD pour la réalisation de schémas à contacts, ni pour la saisie directe des schémas à contacts, comme avec le SSS. Ces instructions sont cependant nécessaires pour convertir le programme en codes mnémoniques ou le saisir sous forme de codes mnémoniques. Afin de réduire le nombre des instructions de programme, une compréhension de base des blocs logiques d’instructions s’avère nécessaire. Une présentation des blocs logiques se trouve au paragraphe 6-3-6 Blocs logiques d’instructions. Drapeaux Aucun drapeau ne correspond à ces instructions. 7-8 Instructions de commande de bits Sept instructions peuvent être généralement utilisées pour commander l’état d’un bit individuel. Ce sont OUT, OUT NOT, DIFU(13), DIFD(14), SET, RSET et KEEP(11). Ces instructions sont utilisées de différentes façons afin de faire passer un bit à l’état ON ou OFF. 7-8-1 OUTPUT et OUTPUT NOT -- OUT et OUT NOT OUTPUT -- OUT Symboles à contacts Zones de données d’opérandes B : Bit B OUTPUT NOT -- OUT NOT Symboles à contacts IR, SR, AR, HR, LR, TR Zones de données d’opérandes B : Bit B IR, SR, AR, HR, LR Limitations Un bit de sortie ne peut généralement être utilisé que dans une seule instruction qui commande son état. Description OUT et OUT NOT sont utilisées pour commander l’état du bit indiqué, d’après la condition d’exécution. 324 Chapitre Instructions de commande de bits 7-8 OUT met à 1 le bit indiqué pour une condition d’exécution ON et met à zéro le bit indiqué pour une condition d’exécution OFF. Dans le cas d’un bit TR, OUT apparaît au point d’embranchement plûtot qu’à l’extrémite d’une ligne secondaire. Se reporter au paragraphe 6-3-8 Lignes secondaires d’embranchement pour de plus amples informations. OUT NOT met à 1 le bit indiqué pour une condition d’exécution OFF et à zéro le bit indiqué pour une condition d’exécution ON. OUT et OUT NOT peuvent être utilisées pour commander l’exécution en faisant passer à ON et à OFF les bits affectés aux conditions existant sur le schéma à contacts et déterminent ainsi les conditions d’exécutiondes autres instructions. Ces instructions sont particulièrement utiles en ce qu’elles permettent l’utilisation d’un ensemble complexe de conditions pour commander l’état d’un bit de travail, qui pourra ensuite être utilisé pour commander d’autres instructions. L’intervalle de temps durant lequel un bit est à l’état ON ou sur OFF peut être contrôlé en combinant l’instruction OUT ou OUT NOT avec TIM. Se reporter aux exemples sous le paragraphe 7-15-1 TIMER -- TIM pour de plus amples informations. Drapeaux Aucun drapeau ne correspond à ces instructions. 7-8-2 SET et RESET -- SET et RSET Symboles à contacts Zones de données d’opérandes SET B B : Bit IR, SR, AR, HR, LR RSET B B : Bit IR, SR, AR, HR, LR Description SET met le bit d’opérande sur ON quand la condition d’exécution est ON et n’affecte pas l’état du bit d’opérande lorsque la condition d’éxécution est OFF. RSET met le bit d’opérande sur OFF lorsque la condition d’exécution est ON et n’affecte pas l’état du bit d’opérande lorsque la condition d’éxécution est OFF. L’utilisation de SET diffère de celle de OUT parce que l’instruction OUT met le bit d’opérande sur OFF lorsque sa condition d’exécution est OFF. De même, RSET diffère de OUT NOT en ce que OUT NOT met le bit d’opérande sur ON lorsque sa condition d’exécution est OFF. Conseils d’utilisation L’état du bit d’opérande de SET et RSET, programmé entre IL(02) et ILC(03) ou JMP(04) et JME(05), ne change pas lorsqu’une condition de verrouillage ou de saut est satisfaite (c.--à--d. lorsque IL(02) ou JMP(04) est exécutée avec une condition d’exécution OFF). Drapeaux Aucun drapeau ne correspond à ces instructions. Exemples Les exemples suivants montrent la différence entre OUT et SET/RSET. Dans le premier exemple (schéma A), IR 20000 est à l’état ON ou OFF chaque fois que IR 00000 passe à l’état ON ou OFF. 325 Chapitre Instructions de commande de bits 7-8 Dans le deuxième exemple (schéma B), IR 10000 est à l’état ON quand IR 00001 passe à l’état ON, et reste à l’état ON (même lorsqu’IR 00001 passe à l’état OFF), et ce jusqu’à ce qu’IR 00002 passe à l’état ON. 00000 20000 Adresse 00000 00001 Schéma A Instruction Opérandes LD OUT 00000 20000 00001 SET 20000 00002 RSET 20000 Schéma B Adresse 00000 00001 00002 00003 Instruction Opérandes LD SET LD RSET 00001 20000 00002 20000 7-8-3 KEEP -- KEEP(11) Symboles à contacts Zones de données d’opérandes S B : Bit KEEP(11) B R IR, SR, AR, HR, LR Limitations Un bit de sortie ne peut généralement être utilisé que dans une instruction qui commande son état. Description KEEP(11) est utilisée pour préserver l’état du bit indiqué, d’après deux conditions d’exécution. Ces conditions d’exécution sont indiquées par S et R. S est la valeur de définition d’état ; R, la valeurde remise à zéro. KEEP(11) joue le rôle d’un relais de verrouillage dont l’état est défini par S et remis à zéro par R. Lorsque S est sur ON, le bit indiqué est sur ON et le reste jusqu’à sa remise à zéro, indépendamment de l’état de S (ON ou OFF). Lorsque R est sur ON, le bit indiqué passe à l’état OFF et le reste jusqu’à sa remise à zéro, indépendamment de l’état de R (ON ou OFF). Le rapport entre les conditions d’exécution et l’état du bit KEEP(11) est indiqué ci--dessous. Condition d’exécution de S Condition d’exécution de R Etat de B Drapeaux 326 Aucun drapeau ne correspond à ces instructions. Chapitre Instructions de commande de bits Conseils d’utilisation 7-8 Attention, lors de l’utilisation d’une ligne de remise à zéro KEEP commandée par un composant externe normalement fermé. Ne jamais utiliser de bit d’entrée à l’état inverse pour la remise à zéro (R) de KEEP(11) quand le circuit d’entrée utilise une alimentation en courant alternatif. Le temps de fermeture de l’alimentation continue de l’API (par rapport à l’alimentation alternative du circuit d’entrée) peut entraîner la remise à zéro du bit spécifié de KEEP(11). Cette situation est illustrée ci--dessous : Circuit d’entrée A S KEEP(11) JAMAIS B A R Les bits utilisés par KEEP ne sont pas remis à zéro en cas de verrouillage. Se reporter au paragraphe 7-11 INTERLOCK et INTERLOCK CLEAR de IL(02) et IL(03) pour de plus amples informations. 7-8-4 DIFFERENTIATE UP et DOWN -- DIFU(13) et DIFD(14) Symboles à contacts DIFU(13) B Zones de données d’opérandes B: Bit IR, SR, AR, HR, LR DIFD(14) B B: Bit IR, SR, AR, HR, LR Limitations Un bit de sortie ne peut généralement être utilisé que dans une instruction qui commande son état. Description DIFU(13) et DIFD(14) sont utilisées pour placer à ON le bit désigné pour un seul tour de scrutation. A chaque exécution de DIFU(13), celle-ci compare son exécution en cours avec la précédente. Si la précédente était à OFF et que celle en cours est à ON, DIFU(13) place à ON le bit désigné. Si la condition d’exécution précédente était à ON et que la condition en cours est à ON ou OFF, DIFU(13) place le bit désigné à OFF ou le laisse à OFF selon le cas (c’est--à--dire s’il est déjà à OFF). Le bit désigné ne sera donc jamais à ON pendant plus d’un tour de scrutation si l’on part du principe qu’il est exécuté à chaque tour (cf Conseils d’utilisation ci-dessous). A chaque exécution de DIFD(14), celle-ci compare son exécution en cours avec la précédente. Si la précédente était à ON et que celle en cours est à OFF, DIFD(14) place à ON le bit désigné. Si la condition d’exécution précédente était à OFF et que la condition en cours est à ON ou OFF, DIFD(14) place le bit désigné à OFF ou le laisse à OFF selon le cas. Le bit désigné ne sera donc jamais à ON pendant plus d’un tour de scrutation si l’on part du principe qu’il est exécuté à chaque tour (cf Conseils d’utilisation ci-dessous). Ces instructions sont utilisées lorsque les instructions sur changement d’état (précédées de “@”) ne sont pas disponibles et que l’exécution en un seul tour de scrutation d’une instruction particulière est souhaitée. On peut également les utiliser avec des instructions qui ne sont pas sur changement d’état que lorsqu’elles sont utilisées pour simplifier la programmation. En voici un exemple cidessous. 327 Chapitre 7-11 INTERLOCK et INTERLOCK CLEAR -- IL(02) et ILC(03) Drapeaux Aucun drapeau ne correspond à ces instructions. Conseils d’utilisation DIFU(13) et DIFD(14) peuvent ne pas s’exécuter lorsque ces instructions sont programmées entre IL et CIT, entre JMP et JME ou dans des sous-programmes. Se reporter aux paragraphes 7-11 INTERLOCK et INTERLOCK CLEAR -- IL(02) et ILC(03), 7-12 JUMP et JUMP END -- JMP(04) et JME(05), 7-25 Instructions de sous-programmes et 7-27-1 INTERRUPT CONTROL -- INT(89). Exemple Dans cet exemple, IR 20014 est à l’état ON sur un cycle quand IR 00000 passe de OFF à ON. IR 20015 est à l’état ON sur un cycle quand IR 00000 passe de ON à OFF. 00000 DIFU(13) 20014 DIFD(14) 20015 7-9 Adresse 00000 00001 00002 Instruction Opérandes LD DIFU(13) DIFD(14) 00000 20014 20015 NO OPERATION -- NOP(00) Description NOP(00) n’est généralement pas nécessaire en cours de programmation et il n’existe aucun symbole à contacts pour cette instruction. Lorsque NOP(00) est rencontrée dans un programme, aucune fonction n’est exécutée et l’exécution du programme reprend à l’instruction suivante. Lors de l’effacement de la mémoire en vue de la programmation, NOP(00) est écrit à toutes les adresses. NOP(00) peut être saisi au moyen du code de fonction 00. Drapeaux Aucun drapeau ne correspond à NOP(00). 7-10 END -- END(01) Symboles à contacts END(01) Description END(01) doit être la dernière instruction d’un programme. Lorsqu’il existe des sous-programmes, END(01) est placé après le dernier sous-programme. Aucune instruction ne doit être écrite après qu’END(01) soit exécutée. END(01) peut être placée à l’intérieur d’un programme pour spécifier l’exécution de toutes les instructions jusqu’à ce niveau, par exemple pour déboguer un programme, mais il devra être supprimé pour que l’exécution du reste du programme ait lieu. En l’absence d’instruction END(01) dans le programme, aucune instruction n’est exécutée et le message d’erreur “NO END INST” apparaît. Drapeaux END(01) met à l’état OFF les drapeaux ER, CY, GR, EQ et LE. 7-11 INTERLOCK et INTERLOCK CLEAR -- IL(02) et ILC(03) Description 328 Symboles à contacts IL(02) Symboles à contacts ILC(03) IL(02) est toujours utilisée en même temps qu’ILC(03) pour créer des verrouillages. Les verrouillages sont utilisés pour exécuter un embranchement, tout Chapitre 7-11 INTERLOCK et INTERLOCK CLEAR -- IL(02) et ILC(03) comme les bits TR, mais le traitement des instructions entre IL(02) et ILC(03) diffère par rapport au bit TR lorsque la condition d’exécution d’IL(02) est OFF. Lorsque la conditon d’exécution d’IL(02) est ON, le programme s’exécute tel quel ; une condition d’exécution ON est utilisée au départ de chaque ligne secondaire, entre l’emplacement d’IL(02) et l’emplacement d’ILC(03) suivant. Se reporter au paragraphe 6-3-8 Lignes secondaires d’embranchement pour des descriptions de base des deux méthodes. Lorsque la condition d’exécution d’IL(02) est OFF, la partie verrouillée entre IL(02) et ILC(03) est traitée comme indiqué dans le tableau qui suit : Instruction Traitement OUT et OUT NOT Met le bit indiqué à l’état OFF. TIM et TIMH(15) Remise à zéro. CNT, CNTR(12) Préserve la PV. KEEP(11) Préserve le bit d’état. DIFU(13) et DIFD(14) Non exécutées (voir plus bas). Toutes les autres instructions Les instructions ne sont pas exécutées, et tous les bits et mots IR, AR, LR, HR et SR utilisés comme opérandes dans les instructions sont mis à l’état OFF. IL(02) et ILC(03) ne doivent pas nécessairement être utilisées ensemble. IL(02) peut être utilisée plusieurs fois dans une rangée, chaque IL(02) verrouillant la partie qui précède l’ILC(03). ILC(03) ne peut être utilisée que s’il existe au moins une IL(02) entre celle-ci et l’ILC(03) qui précède. DIFU(13) et DIFD(14) dans les parties verrouillées Toute modification de la condition d’exécution d’une DIFU(13) ou d’une DIFD(14) n’est pas enregistrée lorsque la DIFU(13) ou la DIFD(14) se trouve dans une partie verrouillée et que la condition d’exécution d’IL(02) est OFF. Lorsque DIFU(13) ou DIFD(14) apparaît dans une partie verrouillée tout de suite après le passage à l’état ON de la condition d’exécution d’IL(02), la condition d’exécution de DIFU(13) ou DIFD(14) sera comparée à la condition d’exécution précédant l’activation du verrouillage (avant que l’état de verrouillage d’IL(02) ne passe à l’état OFF). Les modifications correspondantes du schéma à contacts et du bit d’état sont illustrées ci-dessous. Le verrouillage est actif lorsque 00000 est à l’état OFF. A noter que 20000 n’est pas mis à l’état ON au point nommé A, bien que 00001 passe à l’état OFF puis repasse à l’état ON. 00000 IL(02) 00001 DIFU(13) 20000 ILC(03) A Adresse 00000 00001 00002 00003 00004 Instruction LD IL(02) LD DIFU(13) ILC(03) Opérandes 00000 00001 20000 ON 00000 OFF ON 00001 OFF ON 20000 OFF Conseils d’utilisation Au moins une ILC(03) doit suivre une ou plusieurs IL(02). Bien qu’il soit possible d’utiliser autant d’instructions IL(02) que nécessaire avec une ILC(03), des instructions ILC(03) successives ne peuvent être utilisées sans être séparées par au moins une IL(02), ce qui rend toute imbrication impossible. Lorsqu’une ILC(03) est exécutée, tout verrouillage entre l’ILC(03) actif et l’ILC(03) précédent est annulé. 329 Chapitre 7-12 JUMP et JUMP END -- JMP(04) et JME(05) Lors de l’utilisaton de plus d’une IL(02) avec une seule ILC(03), un message d’erreur apparaît lors de la vérification du programme, mais son exécution se poursuit normalement. Drapeaux Aucun drapeau ne correspond à ces instructions. Exemple Le schéma suivant montre IL(02) utilisée deux fois avec ILC(03). Adresse 00000 IL(02) 00001 TIM 000 #0015 1,5 s Instruction 00000 00001 00002 00003 LD IL(02) LD TIM 00004 00005 00006 00007 00008 00010 LD IL(02) LD AND NOT LD CNT IL(02) 00100 00011 00012 00013 LD OUT ILC(03) 00000 # 00002 00003 Opérandes 00004 CP R CNT 001 IR 010 00003 00004 00100 001 010 00005 01002 00005 01002 ILC(03) 00001 000 0015 00002 Lorsque la conditon d’exécution de la première IL(02) est OFF, TIM 000 est réglée à 1,5 s, CNT 001 n’est pas modifiée et 01002 passe à l’état OFF. Lorsque la condition d’exécution de la première IL(02) est ON et la condition d’exécution de la deuxième IL(02) est OFF, TIM 000 est exécutée après l’état de 00001, CNT 001 n’est pas modifiée et 01002 est mise sur OFF. Lorsque les conditions d’exécution des IL(02) sont ON, le programme s’exécute tel quel. 7-12 JUMP et JUMP END -- JMP(04) et JME(05) Symboles à contacts JMP(04) N Valeurs de définition N : Numéro de saut # JME(05) N N : Numéro de saut # Limitations Chaque numéro de saut entre 01 et 49 ne peut être utilisé qu’une fois dans JMP(04) et une fois dans JME(05) (donc pour définir un seul saut). Le numéro de saut 00 peut être utilisé autant de fois que souhaité. Description JMP(04) est toujours utilisée en même temps que JME(05) pour créer des sauts, c’est-à-dire pour sauter d’un point d’un schéma à contacts à un autre. JMP(04) définit le point à partir duquel s’effectue le saut ; JME(05) définit la destination du saut. Lorsque la condition d’exécution de JMP(04) est ON, aucun saut n’a lieu et le programme s’exécute tel quel. Lorsque la condition d’exécution de JMP(04) est OFF, un saut est effectué vers JME(05) en utilisant le même numéro de saut ; l’instruction qui suit JME(05) est ensuite exécutée. Lorsque le numéro de saut de JMP(04) est compris entre 01 et 49, les sauts s’effectuent automatiquement vers JME(05) en utilisant le même numéro de saut, sans qu’aucune instruction soit exécutée dans l’intervalle. L’état des temporisations, des compteurs, des bits utilisés dans OUT, dans OUT NOT et de tout autre bit commandé par les instructions entre JMP(04) et JME(05) n’est pas modifié. 330 JUMP et JUMP END -- JMP(04) et JME(05) Chapitre 7-12 Chacun des numéros de saut ne peut être utilisé que pour définir un saut. Du fait que toutes les instructions entre JMP(04) et JME(05) sont “sautées”, les numéros de saut 01 à 49 permettent de réduire le temps de cycle. Saut numéro 00 Lorsque le numéro de saut dans JMP(04) est 00, l’unité centrale recherche la JME(05) suivante ayant un numéro de saut de même 00. Pour ce faire, elle doite rechercher à travers tout le programme, ce qui entraîne un temps de cycle plus long (lorsque la condition d’exécution est OFF) que pour les autres sauts. L’état des temporisations, des compteurs, des bits dans OUT, dans OUT NOT et tout autre état commandé par les instructions comprises entre JMP(04) 00 et JMP(05) 00 n’est pas modifié. Le numéro 00 peut être utilisé autant de fois que nécessaire. Un saut à partir de JMP(04) 00 s’effectue toujours vers la JME(05) 00 suivante dans le programme. Il est ainsi possible d’utiliser plusieurs JMP(04) 00 succesives, en leur faisant correspondre la même JME(05) 00. L’utilisation de plusieurs JME(05) 00 successives ne présente aucun intérêt, du fait que tous les sauts effectués vers JME(05) aboutissent toujours à la première JME(05) 00. DIFU(13) et DIFD(14) dans les parties ”sautées” Bien que DIFU(13) et DIFD(14) soient conçues pour mettre sur ON le bit indiqué durant un cycle, elles ne s’exécutent pas nécessaires dans les parties comprises entre JMP(04) et JME(05). Lorsque DIFU(13) ou DIFD(14) a mis un bit sur ON, il reste à l’état ON jusqu’à la prochaine exécution de DIFU(13) ou DIFD(14). En mode de programmation normale, ceci signifie au cycle suivant. A cours d’un saut, la prochaine fois que le saut de JMP(04) à JME(05) n’est pas effectué (lorsqu’un bit est sur ON par DIFU(13) ou DIFD(14) et qu’un saut est effectué dans le cycle suivant de sorte que DIFU(13) ou DIFD(14) soient “sautées”), le bit spécifié reste à l’état ON jusqu’à ce que la condition d’excution de JMP(04) commandant le saut passe à l’état ON. TIMH(15) et TMHH(----) dans les parties ”sautées” Lorsque TIMH(15) ou TMHH(----) est programmée entre JMP(04) et JME(05), la temporisation sera effectuée à l’aide d’une interruption lorsque les numéros de saut 01 à 49 sont utilisés, mais aucune temporisation n’aura lieu si le saut numéro 00 est utilisé. Conseils d’utilisation Lorsque JMP(04) et JME(05) ne sont pas utilisées par paires, un message d’erreur apparaît lors de l’utilisation du programme. Malgré ce message, le programme continue à s’exécuter correctement. Drapeaux Aucun drapeau ne correspond à ces instructions. Exemples Des exemples de sauts programmés sont fournis au paragraphe 6-3-9 Sauts. 331 Chapitre 7-13 Instructions relatives aux erreurs d’utilisation 7-13 Instructions relatives aux erreurs d’utilisation : FAILURE ALARM AND RESET -- FAL(06) et SEVERE FAILURE ALARM -- FALS(07) Symboles à contacts Zones de données de définition @FAL(06) N FAL(06) N N : Numéro FAL # (00 à 99) N : Numéro FAL FALS(07) N # (01 à 99) Description FAL(06) et FALS(07) permettent au programmeur de générer des numéros d’erreurs qui pourront être utilisés en mode d’exécution, de maintenance et de déboguage. Lorsqu’elle est exécutée avec une condition d’exécution ON, chacune de ces instructions transmet un numéro FAL aux bits 00 à 07 de SR 253. Ce numéro compris entre 01 et 99 représente la valeur de définition de FAL(06) ou FALS(07). Une instruction FAL(06) avec une définition de 00 est utilisée pour remettre à zéro cette zone (voir ci-dessous). Zone FAL 25307 25300 X101 X100 FAL(06) génère une erreur non fatale et FALS(07) une erreur fatale. Lorsque FAL(06) est exécutée avec une condition d’exécution ON, le voyant d’ALARM/ ERROR à l’avant de l’unité centrale clignote, mais l’API continue à fonctionner. Lorsque FALS(07) est exécutée avec une condition d’exécution ON, le voyant d’ALARM/ERROR s’allume et l’API cesse de fonctionner. Le système génère également des codes d’erreur dans la zone FAL. Remise à zéro des erreurs Des codes d’erreur FAL sont enregistrés dans la mémoire, bien que seulement l’un d’entre eux soit disponible dans la zone FAL. Pour accéder aux autres codes FAL, remettre à zéro la zone FAL en exécutant FAL(06) 00. Chaque fois que FAL(06) 00 est exécutée, une autre erreur FAL est transférée à la zone FAL et efface celle qui s’y trouve déjà. FAL(06) 00 est également utilisée pour effacer un message programmé à l’aide de l’instruction MSG(46). Lorsque la zone FAL ne peut être effacée, ce qui survient généralement lors de l’exécution de FALS(07), supprimer d’abord la cause de l’erreur puis effacer le contenu de la zone FAL sur la Console de programmation ou le SSS. 332 Chapitre 7-14 Instructions de définition d’étapes 7-14 Instructions de définition d’étapes : STEP DEFINE et STEP START--STEP(08)/SNXT(09) Symboles à contacts STEP(08) STEP(08) B Zones de données de définition B : Bit de commande IR, AR, HR, LR SNXT(09) B B : Bit de commande IR, AR, HR, LR Limitations Tous les bits de commande doivent se trouver dans le même mot et être placés les uns à la suite des autres. Description Les instructions de définition d’étapes STEP(08) et SNXT(09) sont utilisées conjointement pour définir des points d’arrêt entre les différents segments d’un grand programme, de façon à ce que ceux-ci s’exécutent comme des éléments individuels réinitialisés après exécution. Un segment de programme est habituellement défini pour correspondre à un processus complet de l’application (se reporter aux exemples d’applications plus loin dans ce chapitre). Une étape est similaire à un code de programmation normal mais certaines instructions (END(01), IL(02)/ILC(03), JMP(04)/JME(05) et SBN(92)) peuvent ne pas y figurer. STEP(08) utilise un bit de commande dans les zones IR ou HR pour définir le début d’un segment de programme appelé ”étape”. STEP(08) n’exige pas de condition d’exécution : son exécution est commandée par le bit de commande. Pour démarrer l’exécution d’une étape, SNXT(09) est utilisée avec le même bit de commande que STEP(08). Lorsque SNXT(09) est exécutée avec une condition d’exécution ON, l’étape correpondant au même bit de commande est exécutée. Lorsque la condition d’exécution est OFF, l’étape n’est pas exécutée. L’instruction SNXT(09) doit figurer dans le programme pour pouvoir être exécutée avant que le programme n’atteigne l’étape correspondante. Elle peut être utilisée à différents endroits précédant cette étape afin de commander celle-ci selon deux conditions d’exécution (voir exemple 2, ci--dessous). Les étapes du programme ne commençant pas par SNXT(09) ne seront pas exécutées. Une fois SNXT(09) utilisée dans le programme, l’exécution des étapes se poursuit jusqu’à ce que STEP(08) soit exécutée sans bit de commande. Pour ce faire, STEP(08) doit être précédée de SNXT(09) avec un bit de commande factice. Ce peut être n’importe quel bit IR ou HR. Il ne peut s’agir d’un bit de commande utilisé dans une STEP(08). 333 Chapitre 7-14 Instructions de définition d’étapes L’exécution d’une étape se termine avec l’exécution de la SNXT(09) suivante ou le passage à l’état OFF du bit de commande correspondant à cette étape (voir exemple 3 ci-dessous). Lorqu’une étape est terminée, tous les bits IR et HR de cette étape sont mis sur OFF et toutes les temporisations à l’intérieur de cette étapes sont réinitialisées à leurs SV. Les compteurs, registres à décalage et le bit utilisé dans KEEP(11) gardent le même état. L’exemple ci-dessous illustre deux étapes simples. 00000 SNXT(09) LR 1005 Démarre l’exécution des étapes STEP(08) LR 1005 Etape commandée par LR 1005 1ère étape 00001 SNXT(09) 20200 STEP(08) 20200 Etape commandée par IR 20200 2ème étape 00002 SNXT(09) 23000 STEP(08) Adresse Instruction 00000 00001 00002 LD SNXT(09) STEP(08) Opérandes LR LR 00000 1005 1005 Etape commandée par LR 1005. 00100 00101 LD SNXT(09) 00001 20200 Adresse Instruction 00102 STEP(08) Termine l’exécution de 2 étapes Opérandes 20200 Etape commandée par IR 20200. 00200 00201 00202 LD SNXT(09) STEP(08) 00002 23000 --- Les étapes peuvent être programmées en séquence. Chaque étape doit commencer par STEP(08) et se termine généralement par SNXT(09) (voir exception dans l’exemple 3, ci-dessous). Lorsque des étapes sont programmées en séquence, trois types d’exécutions sont possibles : séquentiel, par embranchement ou en parallèle. Les conditions d’exécution et l’emplacement de SNXT(09) déterminent la façon dont les étapes sont exécutées. Les trois exemples ci-dessous illustrent ces trois types d’exécutions. Conseils d’utilisation Les verrouillages, les sauts, SBN(92) et END(01) ne peuvent pas être utilisés pour la programmation des étapes. Les bits utilisés comme bits de commande ne doivent pas être utilisés ailleurs dans le programme sauf pour commander l’exécution de l’étape (voir exemple 3, ci-dessous). Tous les bits de commande doivent se trouver dans le même mot et être placés à la suite les uns des autres. Lorsque des bits IR ou de LR sont utilisés comme bits de commande, leur état est perdu lors d’une coupure d’alimentation. S’il est nécessaire de préserver cet état pour reprendre l’exécution à la même étape, le bit HR doit être utilisé. Drapeaux 25407: Drapeau de démarrage d’étape : est activé sur un cycle lorsque STEP(08) est exécutée et peut être utilisée, si nécessaire, pour 334 Chapitre 7-15 Instructions de temporisation et de comptage remettre à zéro les compteurs dans les étapes, comme illustré ci-dessous. 00000 Démarrage SNXT(09) 20000 20000 STEP(08) 20000 00100 CP CNT 001 25407 R Adresse Instruction 00000 00001 00002 00003 LD SNXT(09) STEP(08) LD Opérandes 00000 20000 20000 00100 25407 #0003 Adresse 00004 00005 1 cycle Instruction Opérandes LD CNT # 25407 01 0003 7-15 Instructions de temporisation et de comptage TIM et TIMH(15) sont utilisées pour décrémenter les instructions de temporisation de retard ON ; elles exigent un numéro TC et une valeur de consigne (SV). STIM(69) est utilisée pour commander des temporisations cycliques, qui sont utilisées pour lancer des sous-programmes d’interruption. CNT décrémente un compteur et CNTR(12) inverse celui-ci. Toutes deux exigent un numéro TC et une SV (valeur de consigne). Toutes deux sont également reliées à plusieurs lignes secondaires qui servent de signal(aux) d’entrée et de remise à zéro. CTBL(63), INT(89) et PRV(62) sont utilisées pour contrôler le compteur à grande vitesse. INT(89) est également utilisée pour mettre fin à la sortie des impulsions. Un numéro TC ne peut être redéfini, une fois utilisé comme valeur de définition dans une instruction de temporisation ou de comptage. Une fois définis, les numéros TC peuvent être utilisés autant de fois que nécessaire comme opérandes dans des instructions autres que les instructions de temporisation et de comptage. Les numéros TC sont compris entre 000 et 255 dans les API des CPM2A/ CPM2C et de 000 à 127 dans les API des CPM1/CPM1A/SRM1(-V2). Aucun préfixe n’est nécessaire pour l’utilisation d’un numéro TC comme valeur de définition dans une instruction de temporisation ou de comptage. Une fois défini comme compteur, un numéro TC peut être précédé d’un préfixe TIM pour être utilisé comme opérande dans certaines instructions. Ce préfixe TIM est utilisé indépendamment de l’instruction de temporisation ayant servi à définir la temporisation. Une fois défini comme compteur, un numéro TC peut être précédé d’un préfixe CNT pour être utilisé comme opérande dans certaines instructions. CNT est également utilisé indépendamment de l’instruction de comptage ayant servi à définir le comptage. Des numéros TC peuvent être spécifiés comme opérandes exigeant des données sous forme de bits ou de mots. Lorsqu’il est spécifié comme ce type d’opérande, le numéro TC accède à un bit faisant office de “drapeau de fin” (indiquant la fin de la temporisation ou du comptage) : ce bit, normalement à l’état OFF, passe à l’état ON à la fin de la temporisation ou du comptage. Un numéro TC spécifié comme opérande exigeant des données sous forme de bits ou de mots accède à un emplacement mémoire contenant la valeur en cours (PV) de la tem- 335 Chapitre 7-15 Instructions de temporisation et de comptage porisation ou de comptage. Cette PV peut être utilisée en tant qu’opérande dans CMP(20), ou dans n’importe quelle autre instruction à laquelle est affectée la zone TC. Ceci est effectué en spécifiant le numéro TC utilisé pour définir cette temporisation ou ce compteur afin d’accéder à l’emplacement mémoire contenant la PV. A noter que “TIM 000” est utilisée pour spécifier l’instruction TIMER définie avec le TC numéro 000, le drapeau de fin de cette temporisation et la PV de cette temporisation. La signification de ce terme apparaît clairement dans le contexte approprié : premièrement une instruction, deuxièmement un bit d’opérande et troisièmement un mot d’opérande. Ceci est vrai également pour tous les autres numéros TC ayant TIM ou CNT comme préfixe. Une SV peut être saisie comme constante ou comme l’adresse d’un mot dans une zone de données. Lorsqu’une zone IR affectée à un périphérique de saisie est spécifiée comme l’adresse d’un mot, ce périphérique peut être câble de façon à ce que la SV puisse être définie de l’extérieur par un commutateur, une roue codeuse ou autre. Les temporisations et les compteurs câblés de cette façon ne peuvent être réglés que de l’extérieur en mode RUN ou MONITOR. Toutes les SV, y compris celles définies de l’extérieur, doivent être en format BCD. 7-15-1 TIMER -- TIM Valeurs de définition N : Numéro TC Symboles à contacts # TIM N SV Zones de données d’opérandes SV : Valeur de consigne (mot, BCD) IR, SR, AR, DM, HR, LR, # Limitations La SV est comprise entre 000,0 et 999,9. La virgule décimale n’est pas entrée. Chaque numéro TC ne peut être utilisé comme définition que dans une instruction TIMER ou COUNTER. Les numéros TC sont compris entre 000 et 255 dans les API des CPM2A/CPM2C et entre 000 et 127 dans les API des CPM1/CPM1A/SRM1(-V2). TC 000 à TC 003 (TC 000 à TC 015 sur le CPM2A/CPM2C) ne doivent pas être utilisés dans TIM s’ils sont nécessaires à TIMH(15). Se reporter au paragraphe 7-15-2 HIGH-SPEED TIMER -- TIMH(15) pour de plus amples informations. Sur les API des CPM2A/CPM2C, les TC 004 à TC 007 ne doivent pas être utilisés dans TIM s’il sont nécessaires à TMHH(----). Se reporter au paragraphe 7-15-4 VERY HIGH-SPEED TIMER -- TMHH(----) pour de plus amples informations. Description Une temporisation est activée quand sa condition d’exécution passe à l’état ON puis est réinitialisée (à la valeur SV) quand sa condition d’exécution passe à l’état OFF. Une fois activé, TIM se mesure en unités de 0,1 seconde à partir de la SV. Lorsque la condition d’exécution reste à l’état ON suffisamment longtemps pour que TIM atteingne zéro, le drapeau de fin du numéro TC passe à l’état ON et y reste jusqu’à la remise à zéro de TIM (jusqu’à ce que sa condition d’exécution soit OFF). 336 Chapitre 7-15 Instructions de temporisation et de comptage La figure suivante illustre le rapport entre la condition d’exécution de TIM et l’indicateur de fin qui lui est affecté. ON Condition d’exécution OFF ON Drapeau de fin OFF SV SV Conseils d’utilisation Les temporisations dans les parties de programme verrouillées sont remises à zéro lorsque la condition d’exécution d’IL(02) est sur OFF. Une coupure de courant remet également les temporisations à zéro. Pour définir une temporisation qui ne soit pas remise à zéro dans ces conditions, il est possible d’effectuer le comptage des bits d’impulsions d’horloge dans la zone SR pour produire des temporisations utilisant l’instruction CNT. Se reporter au paragraphe 7-15-5 COUNTER -- CNT pour de plus amples informations. Drapeaux ER : Le canal DM indirectement adressé n’existe pas (le contenu du canal *DM n’est pas en BCD ou la limite de la zone DM a été dépassée). 7-15-2 HIGH-SPEED TIMER -- TIMH(15) Valeurs de définition N : Numéro TC Symboles à contacts # TIMH(15) N SV Zones de données d’opérandes SV : Valeur de consigne (mot, BCD) IR, SR, AR, DM, HR, LR, # Limitations La SV est comprise entre 00,00 et 99,99 (bien que 00,00 et 00,01 puissent être utilisés, 00,00 désactive la temporisation en mettant à l’état ON le drapeau de fin, ce qui fait qu’il n’est pas sûr que 00,01 soit balayé). La virgule décimale n’est pas prise en compte. Chaque numéro TC ne peut être utilisé comme valeur de définition que dans une instruction TIMER ou COUNTER. Les numéros TC sont compris entre 000 et 255 dans les API des CPM2A/CPM2C et entre 000 et 127 dans les API des CPM1/CPM1A/SRM1(-V2). Description TIMH(15) fonctionne comme TIM mais TIMH se mesure en unités de 0,01 seconde. Se reporter au paragraphe 7-15-1 TIMER -- TIM pour de plus amples informations sur son utilisation. Conseils d’utilisation Les temporisations dans les parties verrouillées du programme sont remises à zéro quand la condition d’exécution d’IL(02) est OFF. Les coupures de courant remettent également les temporisations à zéro. Pour définir une temporisation qui ne soit pas remise à zéro dans ces conditions, il est possible d’effectuer le comptage des bits d’impulsions d’horloge de la zone SR pour produire des temporisations en utilisant CNT. Se reporter au paragraphe 7-15-5 COUNTER -CNT pour de plus amples informations. Les temporisations se trouvant dans les parties “sautées” du programme ne sont pas remises à zéro quand la condition d’exécution de JMP(04) est OFF. La temporisation cesse de s’exécuter lorsque le numéro de saut 00 est utilisé, mais continue de s’exécuter avec les autres numéros de saut. 337 Chapitre 7-15 Instructions de temporisation et de comptage Il est nécessaire de toujours remettre à zéro la temporisation pour passer de TIM à TIMH(15) lors d’une édition en ligne. De même, il est nécessaire de travailler en mode PROGRAM pour modifier TIMH(15) en utilisant une interruption. Les numéros TC 000 à 003 doivent être utilisés pour TIMH(15). Les temporisations rapides correspondent aux numéros TC 004 à TC 127 (TC 016 à TC 255 sur le CPM2A/CPM2C) peuvent manquer de précision lorsque le temps de cycle dépasse 10 ms. API CPM2A/CPM2C CPM1, CPM1A et SRM1(-V2) Rafraîchissement d’interruption toutes les 10 ms TC 000 à TC 003 Rafraîchi lorsque TIMH(015) est exécutée TC 004 à TC 255 TC 000 à TC 003 TC 004 à TC 127 Sur les API des CPM2A/CPM2C, TC 004 à TC 007 ne doivent pas être utilisés dans TIMH(15) s’ils sont nécessaires à TMHH(----). Se reporter au paragraphe 7-15-4 VERY HIGH-SPEED TIMER -- TMHH(----) pour de plus amples informations. Le canal DM indirectement adressé n’existe pas (le contenu du canal *DM n’est pas en BCD ou la limite de la zone DM a été dépassée). Drapeaux ER : Exemple L’exemple suivant est relatif à une temporisation définie pour une constante. CIO 01600 est activée après que CIO 00000 est à l’état ON durant au moins 1,5 seconde. Lorsque 00000 passe à l’état OFF, la temporisation est remise à zéro et CIO 01600 passe à l’état OFF. 00000 TIMH(15) 000 #0150 Adresse 01,50 s Instruction 00000 00001 LD TIMH(15) 00002 00003 LD OUT TIM 000 01600 7-15-3 LONG TIMER : TIML(----) Symboles à contacts Opérandes # TIM 00000 000 0150 000 01600 CPM2A/CPM2C SEULEMENT Zones de données d’opérandes N : Numéro TC TIML(----) T0 à T255 N SV : Valeur de consigne SV C IR, SR, AR, DM, HR, LR, # C : Données de commande 000 ou 001 Cette instruction n’est supportée que par les API des CPM2A/CPM2C. Limitations Chaque numéro TC ne peut être utilisé comme définition que dans une instruction TIMER ou COUNTER. Les numéros TC sont compris entre 000 et 255 sur les API des CPM2A/CPM2C. SV est une valeur BCD comprise entre 0000 et 9999 (0 à 9 999 s quand C=000 et 0 à 99 990 s quand C=001). C doit être 000 (unité 1 s) ou 001 (unité 10 s). Description TIML(----) est une temporisation de retard ON dégressive définie en unités de 1 s ou de 10 s. La valeur de consigne peut être comprise entre 0 à 9 999 s (avec une 338 Chapitre 7-15 Instructions de temporisation et de comptage précision de 0 à 1s) lors de l’utilisation de l’unité 1 s (C=000) ou entre 0,10 et 99 990 s (avec une précision de 0 à 10 s) lors de l’utilisation de l’unité 10 s (C=001). Une longue temporisation est activée lorsque sa condition d’exécution passe à l’état ON et est réinitialisée (à la valeur SV) quand sa condition d’exécution passe à l’état OFF. Une fois activée, TIML(----) s’exécute à partir de la SV par unité de 1 s ou de 10 s (selon la valeur C). La précision de TIML(----) est de 0 à 1 s si l’unité 1 s est utilisée ou de 0 à 10 s si l’unité 10 s est utilisée. La temporisation s’achève quand la PV atteint #0000 (s). Une fois la temporisation écoulée, la PV et l’état du drapeau de fin sont maintenus. La temporisation peut être redémarrée en commutant sa condition d’exécution de ON à OFF, puis à ON ou en chargeant dans sa PV une valeur autre que #0000 avec une instruction telle que MOV(21). Les longues temporisations dans les parties “sautées” du programme ne sont pas remises à zéro lorsque la condition d’exécution de JMP(04) passe à OFF, mais cessent de s’exécuter et la PV est maintenue. La temporisation reprend lorsque la condition d’exécution de JMP(04) passe à ON. Il peut s’en suivre une importante perte de précision de ces longues temporisations dans les parties “sautées” du programme. Conseils d’utilisation TIML(----) peut manquer de précision pour un temps de cycle dépassant 1 s (C=000) ou 10 s (C=001). Les longues temporisations dans les parties “sautées” du programme sont réinitialisées (à la SV) quand la condition d’exécution d’IL(02) est OFF. Les unités de temps en C peuvent être modifiées durant l’exécution d’une longue temporisation. Toute modification de l’unité de temps dans ces conditions réduit à 10 s la précision de la temporisation. Drapeaux ER : N n’est pas un numéro T valide. C n’est pas 000 ni 001. 7-15-4 VERY HIGH-SPEED TIMER : TMHH(----) CPM2A/CPM2C SEULEMENT Symboles à contacts Zones de données d’opérandes N : Numéro TC TMHH(----) T0 à T255 N SV : Valeur de consigne SV 000 IR, SR, AR, DM, HR, LR, # 000 Placer à 000. Cette instruction n’est supportée que par les API des CPM2A/CPM2C. Limitations Chaque numéro TC ne peut être utilisé comme définition que dans une instruction TIMER ou COUNTER. Les numéros TC sont compris entre 000 et 255 sur les API des CPM2A/CPM2C. La SV est une valeur BCD comprise entre 0000 et 9999 (0 à 9,999 s). Définir le troisième opérande à 000 (cet opérande est ignoré). Description TMHH(----) est une temporisation de retard ON dégressive définie en unités de 1 ms. La valeur de consigne peut être comprise entre 0 et 9 999 s et la précision de cette temporisation est de 1 ms. Une temporisation à très grande vitesse est activée quand sa condition d’exécution passe à l’état ON et est réinitialisée (à la SV) quand sa condition d’exécution 339 Chapitre 7-15 Instructions de temporisation et de comptage passe à l’état OFF. Une fois activée, TMHH(----) s’exécute à partir de la SV par unités de 1 ms. La temporisation s’achève quand la PV atteint #0000 (s). Une fois la temporisation écoulée, la PV et le drapeau de fin sont maintenus. La temporisation peut être redémarrée en commutant sa condition d’exécution de ON à OFF, puis à ON ou en chargeant dans sa PV une autre valeur que #0000 avec une instruction telle que MOV(21). L’utilisation des temporisations à très grande vitesse dans les parties “sautées” du programme dépend du numéro TC utilisé pour définir la temporisation, comme l’indique le tableau suivant : Numéro TC 000 à 003, 008 à 255 004 à 007 Fonctionnement La temporisation s’arrête quand la condition d’exécution de JMP(04) est OFF. Ceci peut considérablement réduire la précision des temporisations dans les parties “sautées” du programme. Lorsque le saut numéro 00 est utilisé, la temporisation cesse de s’exécuter lorsque la condition d’exécution de JMP(04) est OFF. Ceci peut considérablement réduire la précision des temporisations dans les parties “sautées” du programme. Pour tous les autres numéros de sauts, la temporisation continuera de s’exécuter normalement lorsque la condition d’exécution de JMP(04) est OFF. Conseils d’utilisation Les temporisations à très grande vitesse définies avec des numéros TC autres que 004 à 007 peuvent manquer de précision au delà d’un temps de cycle de 1 ms (ce n’est pas le cas avec les temporisations à très grande vitesse définies avec les numéros TC 004 au TC 007). Les temporisations à très grande vitesse dans les parties “sautées” du programme sont réinitialisées (à la SV) lorsque la condition d’exécution d’IL(02) est OFF. Drapeaux ER : N n’est pas un numéro TC valide. 7-15-5 COUNTER -- CNT Valeurs de définition N : Numéro TC Symboles à contacts # CP R CNT N SV Zones de données d’opérandes SV : Valeur de consigne (mot, BCD) IR, SR, AR, DM, HR, LR, # Limitations Chaque numéro TC ne peut être utilisé comme valeur de définition que dans une instruction TIMER ou COUNTER. Les numéros TC sont compris entre 000 et 255 sur les API des CPM2A/CPM2C et de 000 à 127 sur les API des CPM1/CPM1A/SRM1(-V2). Description CNT est utilisée pour déclencher un comptage dégressif à partir de la SV quand la condition d’exécution de l’impulsion de comptage, CP, passe d’OFF à ON (la valeur en cours (PV) est décrémentée de un à chaque fois que CNT est exécutée avec une condition d’exécution ON pour CP, la dernière condition d’exécution étant OFF). Lorsque la condition d’exécution ne varie pas ou passe de ON à OFF, la PV de CNT n’est pas modifiée. Le drapeau de fin du compteur passe à 340 Chapitre 7-15 Instructions de temporisation et de comptage l’état ON quand la PV atteint zéro et reste à l’état ON jusqu’à ce que le compteur soit remis à zéro. CNT est remise à zéro par l’entrée de remise à zéro R. Lorsque R passe d’OFF à ON, la PV est remise à la valeur SV. La PV n’est pas décrémentée tant que R est à l’état ON. Le comptage dégressif à partir de la SV redémarre lorsque R passe à l’état OFF. La PV de CNT n’est pas remise à zéro dans les parties “sautées” du programme ou dans le cas d’une coupure de courant. L’illustration ci-dessous montre des modifications des conditions d’exécution, du drapeau de fin et de la PV. La hauteur de la ligne PV n’a pour but que de montrer les changements survenus dans la PV. Condition d’exécution de l’impulsion de comptage (CP) Condition d’exécution de la remise à zéro (R) ON OFF ON OFF ON Drapeau de fin OFF SV SV PV 0002 SV -- 1 0001 SV -- 2 0000 Conseils d’utilisation L’exécution du programme se poursuit lorsqu’une SV ne se trouvant pas en format BCD est utilisée, mais la SV est imprécise. Drapeaux ER : Exemple Dans l’exemple suivant, CNT est est utilisée pour créer des temporisations prolongées, par comptage de bits d’impulsions d’horloge dans la zone SR. Le canal DM indirectement adressé n’existe pas (le contenu du canal *DM n’est pas en BCD ou la limite de la zone DM a été dépassée). CNT 001 compte le nombre de fois où le bit d’impulsion d’horloge d’une seconde (SR 25502) passe d’OFF à ON. Ici encore, IR 00000 est utilisé pour contrôler l’exécution de CNT. Du fait que, dans cet exemple, la SV de CNT 001 est 700, le drapeau de fin de CNT 002 passe à l’état ON à l’issue de la durée d’une seconde x 700 fois, ou de 11 minutes et 40 secondes. Ceci a pour conséquence de faire passer IR 20002 à l’état ON. 00000 25502 Adresse CP CNT 001 00001 R #0700 CNT 001 20002 00000 00001 00002 00003 # CNT 20002 Instruction LD AND LD NOT CNT 0700 001 OUT Opérandes 00004 00005 00000 25502 00001 001 LD OUT ! Attention Les impulsions d’horloge courtes ne donnent pas nécessairement des temporisations plus précises car elles ne sont à l’état ON que durant un bref intervalle de temps, ce qui peut engendrer une perte de précision sur de longs cycles. Plus particulièrement, les impulsions d’horloge de 0,02 seconde et de 0,1 seconde ne doivent pas être utilisées pour créer des temporisations à l’aide des CNT. 341 Chapitre 7-15 Instructions de temporisation et de comptage 7-15-6 REVERSIBLE COUNTER -- CNTR(12) Valeurs de définition N : Numéro TC Symboles à contacts # II DI R CNTR(12) N Zones de données d’opérandes SV SV : Valeur de consigne (mot, BCD) IR, SR, AR, DM, HR, LR, # Limitations Chaque numéro TC ne peut être utilisé comme valeur de définition que dans une instruction TIMER ou COUNTER. Les numéros TC sont compris entre 000 et 255 sur les API des CPM2A/CPM2C et entre 000 et 127 sur les API des CPM1/CPM1A/SRM1(-V2). Description La CNTR(12) est un compteur rotatif réversible progressif ou dégressif : il est utilisé pour effectuer un comptage entre zéro et la SV (ou vice-versa) selon deux conditions d’exécution intervenant soit dans l’entrée “incrémenter” (II), soit dans l’entrée “décrémenter” (DI). La valeur en cours (PV) est incrémentée de un chaque fois que CNTR(12) est exécutée avec une condition d’exécution ON pour II, la dernière condition d’exécution de II étant OFF. La valeur en cours (PV) est décrémentée de un à chaque fois que CNTR(12) est exécutée avec une condition d’exécution ON pour DI, la dernière condition d’exécution de DI étant OFF. Lorsque des commutations de OFF à ON se sont produites dans II et DI depuis la dernière exécution, la PV n’est pas modifiée. Lorsque les conditions d’exécution n’ont pas changé ou sont passées de ON en OFF pour II et DI, la PV de CNT ne change pas. Une fois décrémentée jusqu’à 0000, la valeur en cours est rétablie à la valeur de la SV et le drapeau de fin est mis sur ON jusqu’à ce que la PV soit de nouveau décrémentée. Une fois incrémentée jusqu’à la SV, la PV est mise à 0000 et le drapeau de fin est mis sur ON jusqu’à ce que la PV soit de nouveau incrémentée. CNTR(12) est remise à zéro par une entrée de remise à zéro R. Lorsque R passe d’OFF à ON, la PV est remise à zéro. La PV n’est pas incrémentée ni décrémentée tant que R est sur ON. Le comptage reprend encore lorsque R passe à l’état OFF. La PV de CNTR(12) n’est pas remise à zéro dans les parties “sautées” du programme ou après une coupure de courant. 342 Chapitre 7-15 Instructions de temporisation et de comptage L’illustration ci-dessous montre les changements survenant dans les conditions d’exécution de II et de DI, dans le drapeau de fin et dans la PV, suite à l’utilisation de CNTR(12) (une fois remis à zéro, le comptage redémarre à partir de zéro). La hauteur de la ligne PV n’a pour but que de montrer les changements survenus dans la PV. Condition d’exécution à l’incrémentation (II) ON Condition d’exécution à la décrémentation (DI) ON OFF OFF ON Drapeau de fin OFF SV PV SV SV + 1 SV -- 1 0001 SV + 2 SV -- 2 0000 0000 Conseils d’utilisation L’exécution du programme se poursuit lorsqu’une SV ne se trouvant pas en format BCD est utilisée, mais la SV est erronée. Drapeaux ER : 7-15-7 Le canal DM indirectement adressé n’existe pas (le contenu du canal *DM n’est pas en BCD ou la limite de la zone DM a été dépassée). REGISTER COMPARISON TABLE -- CTBL(63) Symboles à contacts Zones de données d’opérandes CTBL(63) @CTBL(63) P P C C TB TB P : Spécificateur de port 000 C : Données de commande 000 à 003 TB : Premier mot du tableau de comparaison IR, SR, AR, DM, HR, LR Cette instruction n’est pas supportée par les API SRM1(-V2). Limitations Les premiers et derniers mots du tableau de comparaison doivent se trouver dans la même zone de données. La longueur du tableau de comparaison diffère selon la configuration utilisée. P doit être 000 et C doit être compris entre 000 et 003. Description Lorsque la condition d’exécution est OFF, CTBL(63) n’est pas exécutée. Lorsque la condition d’exécution est ON, CTBL(63) enregistre un tableau de comparaison devant être utilisé en parallèle avec la PV du compteur à grande vitesse. Selon la valeur de C, la comparaison avec la PV du compteur à grande vitesse peut démarrer immédiatement ou être lancée par INI(61). Le spécificateur du port (P) indique le compteur à grande vitesse qui sera utilisé dans la comparaison. P est toujours réglé à 000. La fonction de CTBL(63) est déterminée par les paramètres C indiqués dans le tableau suivant : 343 Chapitre 7-15 Instructions de temporisation et de comptage C 000 001 002 003 Fonction CTBL(63) Enregistre un tableau de comparaison de valeurs cibles et démarre la comparaison. Enregistre un tableau de comparaison de plages et démarre la comparaison. Enregistre un tableau de comparaison de valeurs cibles. Démarrer la comparaison avec INI(61). Enregistre un tableau de comparaison de plages. Démarrer la comparaison avec INI(61). Lorsque la PV correspond à une valeur cible ou fait partie d’une plage donnée, le sous-programme spécifié est appelé et exécuté. Se reporter au paragraphe 2-3-5 Interruptions du compteur à grande vitesse pour de plus amples informations sur le tableau de comparaison. Lorsque le compteur à grande vitesse est activé dans le Setup de l’API (DM 6642), il démarre à partir de zéro lorsque le CPM2A/CPM2C commence à fonctionner. La PV n’est évaluée par rapport au tableau de comparaison qu’une fois le tableau enregistré et la comparaison lancée à l’aide de INI(61) ou de CTBL(63). La comparaison peut être arrêtée et redémarrée, ou la PV remise à zéro en utilisant INI(61). Caractéristiques communes des comparaisons de valeurs cilbes et de plages 1, 2, 3... Une comparaison de valeurs cibles diffère d’une comparaison de plages, mais les deux fonctions partagent certaines caractéristiques communes. 1. Les numéros de sous-programme 000 à 049 peuvent être utilisés et le même numéro de sous-programme peut être utilisé plus d’une fois dans le tableau. 2. Un numéro de sous-programme non défini ou un FFFF peut être défini comme numéro de sous-programme lorsque le traitement des interruptions n’est pas nécessaire. 3. La comparaison peut être stoppée au moyen de INI(61). Un tableau enregistré reste valable jusqu’à l’arrêt de l’API jusqu’à l’enregistrement d’un nouveau tableau. 4. CTBL(62) ne peut pas être exécutée lorsque le compteur à grande vitesse est désactivé dans le Setup de l’API (DM 6642). Une erreur se produit lorsque CTBL(63) est exécutée alors que le compteur à grande vitesse est désactivé. Comparaison à des valeurs cibles Un tableau de comparaison de valeurs cibles contient jusqu’à seize valeurs cibles. Un numéro de sous-programme est également enregistré à chaque valeur cible. Le sous-programme correspondant est appelé et exécuté lorsque la PV correspond à une valeur cible. Quand le traitement des interruptions n’est pas nécessaire, un numéro de sous-programme non défini peut être saisi. ! Sur le CPM1/CPM1A, les comparaisons avec les valeurs cibles sont effectuées élément par élément dans l’ordre du tableau de comparaison. Lorsque la PV atteint la première valeur cible dans le tableau, le sous-programme d’interruption est exécuté et la comparaison se poursuit à la valeur suivante dans le tableau. Lorsque le traitement est terminé, au niveau de la dernière valeur cible du tableau, la comparaison reprend à la première valeur et le processus redémarre. ! Sur le CPM2A/CPM2C, la PV est comparée à toutes les valeurs cibles du tableau chaque fois que CTBL(63) est exécutée. Lorsque la PV correspond à une valeur cible, le sous-programme correspondant est appelé et exécuté. 344 Chapitre 7-15 Instructions de temporisation et de comptage Le diagramme suivant montre la structure d’un tableau de comparaison de valeurs cibles. Ces dernières doivent être uniques ; une erreur se produit lorsqu’une valeur cible apparaît à plus d’une reprise dans le tableau. TB TB+1 Nb de valeurs cibles (0001 à 0016, BCD) Valeur cible #1, 4 digits de poids faible (BCD) TB+2 TB+3 Valeur cible #1, 4 digits de poids fort (BCD) Num. de sous-programme pour #1 (voir Rem.) Exemples de valeurs cibles Rem. Le numéro du sous-programme peut être compris entre F000 et F049 pour activer le sous-programme en vue de la condition “décrémenter” et de 0000 à 0049 pour activer le sous-programme en vue de la condition “incrémenter”. Une erreur se produit lorsque le compteur à grande vitesse est en mode progressif mais qu’un numéro de sous-programme dégressif (F000 à F049) est spécifié. Comparaison à des plages Rem. Un tableau de comparaison de plages contient 8 plages définies par une limite basse à 8 digits et une limite haute à 8 digits, ainsi que les numéros de sous-programmes correspondants. La comparaison est effectuée à chaque cycle à la fin de l’exécution du programme et peut être effectuée pendant l’exécution du programme en utilisant INI(61). Lorsque la PV fait partie d’une plage donnée, le sous-programme correspondant est appelé et exécuté. Quand le traitement des interruptions n’est pas nécessaire, un numéro de sous-programme non défini peut être saisi. Les plages pouvant être définies en mode recouvrement, la PV peut faire partie de plus d’une plage ; si la PV figure dans deux plages ou plus, le sous-programme correspondant à la première d’entre elles est exécuté. Le schéma suivant montre la structure d’un tableau de comparaison de plages. 8 plages doivent être définies en permanence. Si moins de 8 plages sont nécessaires, définir les numéros de sous-programmes restants à FFFF. TB TB+1 TB+2 TB+3 Limite bse #1, 4 dig. poids faible (BCD) Limite bse #1, 4 dig. poids fort (BCD) Limite hte #1, 4 dig. poids faible (BCD) Limite hte #1, 4 dig. poids fort (BCD) TB+4 Num. sous-programme (v. Rem. 2.) TB+35 Limite bse #8, 4 dig. poids faible (BCD) TB+36 TB+37 TB+38 TB+39 Limite bse #8, 4 dig. poids fort (BCD) Limite hte #8, 4 dig. poids faible (BCD) Limite hte #8, 4 dig. poids fort (BCD) Num. sous-programme (v. Rem. 2.) Première plage Huitième plage 1. La limite basse de chaque plage doit être inférieure à sa limite haute. Une erreur se produit lorsque la limite basse est supérieure à la limite haute. 2. Le numéro de sous-programme peut être compris entre 0000 et 0049 et le sous-programme s’exécute tant que la PV du compteur est dans la plage indiquée. Une valeur FFFF indique qu’aucun sous-programme ne doit être exécuté. 3. Puisque la comparaison est généralement effectuée une fois par cycle, tenir compte du temps de cycle quand les limites hautes et basses correspondent à des valeurs de temps. 4. Un même numéro de sous-programme peut être utilisé plus d’une fois dans le tableau. 345 Instructions de temporisation et de comptage Drapeaux ER : Chapitre 7-15 Le tableau de comparaison dépasse la limite de la zone de données, ou il existe une erreur dans les valeurs du tableau de comparaison. Le canal DM indirectement adressé n’existe pas (le contenu du canal *DM n’est pas en BCD ou la limite de la zone DM a été dépassée). P n’est pas égal à 000 ou C n’est pas compris entre 000 et 003. Une instruction CTBL(63) utilise un format différent de comparaison dans le sous-programme appelé par une autre instruction CTBL(63). Une instruction CTBL(63) utilisant un format différent de comparaison est exécutée pendant la comparaison. CTBL(63) est exécutée dans un sous-programme d’interruption alors qu’une entrée-sortie d’impulsions ou une instruction de comptage à grande vitesse (INI(61), PRV(62), CTBL(63), SPED(64), PULS(65), ACC(----), PWM(----) ou SYNC(----)) est exécutée dans le programme principal. Erreurs décelées par comparaison à des valeurs cibles : Le nombre de valeurs cibles (dans TB) n’est pas compris entre 0001 et 0016. Une valeur à atteindre n’est pas comprise entre F838 8608 et 0838 8607 (mode bidirectionnel, entrée d’impulsions polarisées et entrée avance/retour). Une valeur à atteindre n’est pas entre 0000 0000 et 1677 7215 ou un numéro de sous-programme n’est pas entre 0000 et 0049 (mode d’incrément). Erreurs décelées par comparaison à des plages : La limite haute d’une plage est inférieure à sa limite basse. Une valeur à atteindre n’est pas entre F838 8608 et 0838 8607 (mode bidirectionnel, entrée d’impulsions polarisées et entrée avance/retour). Une valeur à atteindre n’est pas entre 0000 0000 et 1677 7215 ou un numéro de sous-programme n’est pas entre 0000 et 0049 (mode d’incrément). 7-15-8 MODE CONTROL -- INI(61) Symboles à contacts Zones de données d’opérandes P : Spécificateur de port INI(61) @INI(61) P P C C P1 P1 000, 010, 100, 101, 102, 103 C : Données de commande 000 à 005 P1 : Premier mot de la PV IR, SR, AR, DM, HR, LR (ou 000) Cette instruction n’est pas supportée par les API SRM1(-V2). Limitations 346 Sur les API des CPM1/CPM1A, P doit être 000 et C doit être compris entre 000 et 003. Sur les API des CPM2A/CPM2C, P doit être 000, 010, 100, 101, 102 ou 103 et C doit être compris entre 000 et 005. Chapitre 7-15 Instructions de temporisation et de comptage P1 doit être égal à 000 sauf si C est égal à 002 ou 004. P1 et P1+1 doivent être dans la même zone de données. Lorsqu’une adresse DM est utilisée pour P1, il doit s’agir d’une adresse accessible en lecture/écriture. Lorsque la condition d’exécution est OFF, INI(61) n’est pas exécutée. Lorsque la condition d’exécution est ON, INI(61) est utilisée pour contrôler le fonctionnement du compteur à grande vitesse et stopper la sortie des impulsions. Le port spécificateur (P) indique le compteur à grande vitesse ou la sortie d’impulsions à contrôler. Description P 000 Fonction 100* Indique l’entrée du compteur à grande vitesse (entrées 00000, 00001 et 00002), sortie d’impulsions monophasée 0 sans accélération/décélération (sortie 01000 ou 01001), sortie d’impulsions monophasée 0 avec accélération/décélération trapézoïdale (sortie 01000). Indique la sortie d’impulsions monophasée 1 sans accélération/décélération (sortie 01001). Indique l’entrée d’interruptions 0 en mode compteur (entrée 00003). 101* Indique l’entrée d’interruptions 1 en mode compteur (entrée 00004). 102* Indique l’entrée d’interruptions 2 en mode compteur (entrée 00005). 103* Indique l’entrée d’interruptions 3 en mode compteur (entrée 00006). 010* Rem. *Ces configurations ne peuvent être utilisées que sur les API des CPM2A/CPM2C. La fonction d’NI(61) est déterminée par le paramètre C. C P1 Fonction INI(61) 000 000 Démarre la comparaison de tableau CTBL(63). 001 000 Stoppe la comparaison de tableau CTBL(63). 002 Nouvelle PV 000 Change la PV du compteur à grande vitesse ou une entrée d’interruption en mode compteur. Stoppe la sortie d’impulsions. 004* Nouvelle PV Modifie la PV de la sortie d’impulsions. 005* 000 Stoppe la sortie de commande d’impulsion synchronisée. 003 Rem. *Ces configurations ne peuvent être utilisées que sur les API des CPM2A/CPM2C. Commencer ou arrêter la comparaison (C=000 ou C=001) Lorsque C est 000 ou 001, INI(61) démarre ou arrête la comparaison entre la PV du compteur à grande vitesse et le tableau de comparaison enregistré avec CTBL(63). Une erreur se produit lorsque cette fonction est exécutée sans l’enregistrement préalable d’un tableau de comparaison avec CTBL(63). En général, @INI(61) doit être utilisé lorsque C=000 car cette instruction ne doit être exécutée qu’une fois pour démarrer la comparaison de tableau. Changer PV (C=002) Lorsque C est 002, INI(61) modifie la PV de l’entrée spécifiée du compteur à grande vitesse ou de l’entrée d’interruptions (mode Compteur). PV du compteur à grande vitesse (P=000) INI(61) remplace la PV du compteur à grande vitesse indiquée par la valeur BCD à 8 digits dans P1 et P1+1. La nouvelle PV peut être comprise entre F838 8608 à 0838 8607 en mode bidirectionnel, entrée d’impulsions polarisée ou entrée avance/retour. Le “F” hexadécimal dans le premier digit fait office de signe “moins”. La nouvelle PV peut être comprise entre 0000 0000 à 1677 7215 en mode de comptage progressif. 347 Chapitre 7-15 Instructions de temporisation et de comptage PV d’entrée d’interruptions (P=100 à 103) INI(61) remplace la PV de l’entrée d’interruptions (en mode compteur) par une valeur hexadécimale à 4 digits (0000 à FFFF) dans P1. Arrêt de la sortie d’impulsions (C=003) Lorsque C est 003, INI(61) arrête la sortie d’impulsions. Modification de la PV (C=004) INI(61) change la PV de l’impulsion produite en valeur à 8 digits de BCD dans P1 et P1+1. La PV ne peut pas être changée tandis que la sortie d’impulsion est en marche. La nouvelle PV peut être comprise entre --16 777 215 et 16 777 215. Le bit 15 de P1+1 est utilisé comme bit de signe ; ce nombre est négatif lorsque le bit 15 est sur ON, positif s’il est sur OFF. Arrêt de la sortie de commande d’impulsions synchronisée (C=003) Lorsque C est 003, INI(61) arrête la sortie de commande d’impulsions synchronisée. Drapeaux ER : Le spécificateur de port et le paramètre C sont incompatibles (par exemple : P=010 et C=000). La définition d’un opérande est imprécise ou la PV indiquée n’est pas dans la plage autorisée. L’adresse indiquée pour P1 ou P1+1 dépasse la limite de la zone de données. Le canal DM indirectement adressé n’existe pas (le contenu du canal *DM n’est pas en BCD ou la limite de la zone DM a été dépassée). La fonction indiquée est incompatible avec le fonctionnement de l’API. Par exemple, ne pas définir C=005 lorsque la commande d’impulsions synchronisée n’est pas utilisée. INI(61) est exécutée pour modifier la PV d’une sortie d’impulsions (C=004) alors que la sortie d’impulsions est en cours. INI(61) est exécutée dans un sous-programme d’interruption alors qu’une entrée-sortie d’impulsions ou une instruction de comptage à grande vitesse instruction (INI(61), PRV(62), CTBL(63), SPED(64), PULS(65), ACC(----), PWM(----) ou SYNC(----)) est exécutée dans le programme principal. 7-15-9 HIGH-SPEED COUNTER PV READ -- PRV(62) Symboles à contacts Zones de données d’opérandes PRV(62) @PRV(62) P P C C D D P : Spécificateur de port 000, 010, 100, 101, 102, 103 C : Données de commande 000, 001, 002 ou 003 D : Premier mot de destination IR, SR, AR, DM, HR, LR Cette instruction n’est pas supportée par les API du SRM1(-V2). Limitations 348 Sur les API des CPM1/CPM1A, P doit être égal à 000 et C doit être compris entre 000 et 002. Sur les API des CPM2A/CPM2C, P doit être égal à 000, 010, 100, 101, 102 ou 103 et C doit être compris entre 000 et 003. Chapitre 7-15 Instructions de temporisation et de comptage D et D+1 doivent être dans la même zone de données. Lorsqu’une adresse DM est utilisée pour D, elle doit être accessible en lecture/ écriture. Description Lorsque la condition d’exécution est OFF, PRV(62) n’est pas exécutée. Lorsque la condition d’exécution est ON, PRV(62) contrôle la PV du compteur à grande vitesse, la PV de sortie d’impulsions, la PV d’entrée d’interruptions (mode compteur), ou la fréquence d’entrée de commande synchronisée spécifiée par P et C. Le spécificateur de port (P) spécifie le compteur à grande vitesse ou la sortie d’impulsions à contrôler. P Fonction 000 Indique l’entrée du compteur à grande vitesse (entrées 00000, 00001 et 00002), la fréquence d’entrée de commande d’impulsions synchronisée (entrées 00000, 00001 et 00002), la sortie d’impulsions monophasée 0 sans accélération/décélération (sorties 01000 et 01001), la sortie d’impulsions monophasée 0 avec accélération/décélération trapézoïdale (sortie 01000), ou la sortie de commande d’impulsions synchronisée 0 (sortie 01000/01001). 010* 100* Indique la sortie d’impulsions monophasée 1 sans accélération/décélération (sortie 01001) ou la sortie de commande d’impulsions 1 (sortie 01001). Indique l’entrée d’interruptions 0 en mode compteur (entrée 00003). 101* Indique l’entrée d’interruptions 1 en mode compteur (entrée 00004). 102* Indique l’entrée d’interruptions 2 en mode compteur (entrée 00005). 103* Indique l’entrée d’interruptions 3 en mode compteur (entrée 00006). Rem. *Ces configurations ne peuvent être utilisées que sur les API des CPM2A/CPM2C. Les paramètres C indiquent l’accès à tel ou tel type de données C 000 001 Fonction Lit la PV de l’entrée du compteur à grande vitesse ou de l’entrée d’interruptions (mode compteur) ou la fréquence d’entrée de commande d’impulsions synchronisée. Lit l’état de la sortie du compteur à grande vitesse ou de la sortie d’impulsions. Mot(s) de destination D et D+1 D 002 Lit les résultats de comparaison de plages. D 003* Lit la PV de la sortie d’impulsions. D et D+1 Rem. *Ces configurations ne peuvent être utilisées que sur les API des CPM2A/CPM2C. Lecture de la PV (C=000) Lorsque C est égal à 000, PRV(62) lit la PV du compteur à grande vitesse ou de l’entrée d’interruptions spécifiée (mode compteur). PV du compteur à grande vitesse ou fréquence d’entrée (P=000) Lorsque la sortie est utilisée pour un compteur à grande vitesse, PRV(62) lit la PV du compteur à grande vitesse spécifié et écrit la valeur BDC à 8 digits dans D et D+1 (les 4 digits de gauche sont écrits dans D+1). La PV peut être comprise entre F838 8608 et 0838 8607 en mode bidirectionnel, entrée d’impulsions polarisées, ou entrée avance/retour. Le “F hexadécimal” dans le premier digit détermine le signe. La PV peut être comprise entre 0000 0000 et 1677 7215 en mode progressif. Lorsque la sortie est utilisée pour la commande d’impulsions synchronisée, PRV(62) lit la fréquence d’entrée et écrit la valeur BDC à 8 digits dans D et D+1. La fréquence d’entrée peut être comprise entre 0000 0000 et 0002 0000. 349 Chapitre 7-15 Instructions de temporisation et de comptage PV d’entrée d’interruptions (P=100 à 103) PRV(62) lit la PV de l’entrée d’interruptions (mode compteur) et écrit la valeur hexadécimale à 4 digits (0000 à FFFF) dans D. Lecture de l’état (C=001) Lorsque C est égal à 001, PRV(62) lit l’état de fonctionnement du compteur à grande vitesse ou de la sortie d’impulsions spécifié(e) et écrit les données dans D. Etat du compteur à grande vitesse ou de la sortie d’impulsions 0 (P=000) Le tableau suivant monte la fonction des bits de D quand P=000. Les bits non listés dans le tableau ne sont pas utilisés et sont toujours à 0. Utilisation Compteur à grande g vitesse Sortie d’impulsions Bit 00 01 05 06 07 08 09 Fonction Etat de la comparaison du compteur à grande vitesse (0 : arrêtée ; 1 : comparaison) Dépassement positif/négatif du compteur à grande vitesse. (0 : normal ; 1 : un dépassement négatif/positif s’est produit) Nombre total d’impulsions spécifiées pour la sortie d’impulsions 0. (0 : non spécifié ; 1 : spécifié) Sortie d’impulsions 0 terminée. (0 : non terminé ; 1 : terminé) Etat de la sortie d’impulsions 0 (0 : arrêtée ; 1 : en cours) Dépassement négatif/positif indiqué par la PV de la sortie d’impulsions 0. (0 : normal ; 1 : un dépassement négatif/positif s’est produit) Accélération de la sortie d’impulsions 0 0 : constante ; 1 : accélération ou ralentissement) Etat de la sortie d’impulsions 1 (P=010) Le tableau suivant monte la fonction des bits de D quand P=010. Les bits non listés dans le tableau ne sont pas utilisés et sont toujours à 0. Bit 05 Fonction 06 Nombre total d’impulsions spécifiées pour la sortie d’impulsions 1. (0 : non spécifié ; 1 : spécifié) Sortie d’impulsions 1 terminée. (0 : non terminée ; 1 : terminée) 07 Etat de la sortie d’impulsions 1 (0 : arrêtée ; 1 : en cours) 08 Dépassement négatif/positif indiqué par la PV de la sortie d’impulsions 1. (0 : normal ; 1 : un dépassement négatif/positif s’est produit) 09 Accélération de la sortie d’impulsions 1 (0 : constante ; 1 : accélération ou ralentissement) Lecture des résultats de comparaison de plages (C=002) Lorsque C est égal à 002, PRV(62) lit les résultats de comparaison de la PV aux 8 plages définies par CTBL(63) et écrit ces données dans D. Les bits 00 à 07 de D contiennent les drapeaux de résultats de comparaison aux plages 1 à 8 (0 : hors de la plage ; 1 : dans la plage). Lecture de la PV de sortie d’impulsions (C=003) Lorsque C est égal à 003, PRV(62) lit la PV de la sortie d’impulsions et écrit la valeur BCD à 8 digits dans D et D+1. Les 4 digits de gauches sont écrits dans D+1. La PV peut être comprise entre --16 777 215 et 16 777 215. Le bit 15 de D+1 détermine le signe ; ce nombre est négatif lorsque le bit 15 est sur ON, positif s’il est sur OFF. Drapeaux ER : Le spécificateur de port et le paramètre C sont incompatibles. Par exemple : P=010 et C=000. L’adresse indiquée pour D ou D+1 dépasse la limite de la zone de données. Les valeurs des opérandes sont imprécises. 350 Instructions de temporisation et de comptage Chapitre 7-15 Le canal DM indirectement adressé n’existe pas (le contenu du canal *DM n’est pas en BCD ou la limite de la zone DM a été dépassée). PRV(62) est exécutée dans un sous-programme d’interruption alors qu’une entrée-sortie d’interruption ou une instruction de comptage à grande vitesse (INI(61), PRV(62), CTBL(63), SPED(64), PULS(65), ACC(----), PWM(----) ou SYNC(----)) est exécutée dans le programme principal. 351 Chapitre 7-16 Instructions de décalage 7-16 Instructions de décalage 7-16-1 SHIFT REGISTER -- SFT(10) Symboles à contacts Zones de données d’opérandes St : Mot de départ (Starting word) I SFT(10) IR, SR, AR, HR, LR P St R E : Mot de fin (End word) E IR, SR, AR, HR, LR Limitations E doit être supérieur ou égal à St et St et E doivent être dans la même zone de données. Losqu’une adresse de bit, dans un des mots utilisés dans un registre de décalage, est également utilisé dans une instruction qui commande l’état de chaque bit (par exemple, OUT, KEEP(11)), une erreur (“COIL/OUT DUPL”) est générée quand la syntaxe du programme est vérifiée sur la console de programmation ou sur un autre périphérique de programmation. Le programme, cependant, sera exécuté tel quel. Voir Exemple 2 : contrôle des bits dans les registres de décalage, relatif à un exemple de programmation réalisant cette opération. Description SFT(10) est commandée par trois conditions d’exécution, I, P et R. Si SFT(10) est exécutée et 1) la condition P d’exécution est ON et était OFF lors de la dernière exécution et alors 2) R est OFF, et la condition d’exécution I est décalée vers le bit de droite d’un registre à décalage défini entre St et E : si I est ON, un 1 est décalé dans le registre ; si I est OFF, un 0 y est décalé. Quand I est décalé dans le registre, tous les bits précédemment dans le registre sont décalés vers la gauche et le bit de gauche est perdu. E St+1, St+2, ... Données perdues St Exécution de la condition I La condition d’exécution sur P fonctionne comme une instruction sur changement d’état : I ne sera décalé dans le registre que lorsque P est ON et était OFF la dernière fois que SFT(10) a été exécutée. Lorsque la condition d’exécution P n’a pas changée ou est passée de ON à OFF, le registre à décalage demeurera inchangé. St désigne le mot de droite du registre à décalage ; E indique le mot de gauche. Le registre à décalage comprend ces deux mots et les mots qui les séparent. Un même mot peut être défini pour St et E afin de créer un unique registre à décalage de 16 bits (de 1-mot). Quand la condition d’exécution R est sur ON, tous les bits du registre à décalage seront mis sur OFF (à 0) et le registre à décalage ne fonctionnera que lorsque R passera de nouveau sur OFF. Drapeaux ER : Exemple L’exemple suivant utilise le bit d’impulsion d’horloge d’une seconde (25502) de sorte que la condition d’exécution générée par 00000 soit décalée vers HR 00 à 352 St et E ne sont pas dans la même zone ou St est plus grand que E. Chapitre 7-16 Instructions de décalage chaque seconde. La sortie 20000 passe sur ON chaque fois qu’un “1” est décalé vers HR 0007. 00000 Adresse I SFT(10) 25502 P HR 00 00001 R HR 00 0007 20000 7-16-2 Instruction 00000 00001 00002 00003 LD LD LD SFT(10) 00004 00005 LD OUT Opérandes HR HR HR 00000 25502 00001 00 00 0007 20000 WORD SHIFT -- WSFT(16) Symboles à contacts Zones de données d’opérandes St : Mot de départ (Starting word) Limitations WSFT(16) @WSFT(16) St St E E IR, SR, AR, DM, HR, LR E : Mot de fin (End word) IR, SR, AR, DM, HR, LR St et E doivent être dans la même zone de données et E doit être supérieur ou égal à St. DM 6144 à DM 6655 ne peuvent pas être utilisés pour St ou E. Description Lorsque la condition d’exécution est OFF, WSFT(16) n’est pas exécutée. Lorsque la condition d’exécution est ON, l’instruction WSFT(16) décale les données entre St et E en unités de mot. Des zéros sont écrits dans St et le contenu de E est perdu. E F 0 St + 1 C 2 3 4 5 St 2 1 0 2 9 Perdu 0000 E 3 Drapeaux ER : 4 St + 1 5 2 1 0 2 St 9 0 0 0 0 Les mots St et E sont dans des zones différentes ou St est plus grand que E. Le canal DM indirectement adressé n’existe pas (le contenu du canal *DM n’est pas en BCD ou la limite de la zone DM a été dépassée). 353 Chapitre 7-16 Instructions de décalage 7-16-3 ARITHMETIC SHIFT LEFT -- ASL(25) Symboles à contacts ASL(25) @ASL(25) Wd Wd Zones de données d’opérandes Wd : Décalage de mot (Shift word) IR, SR, AR, DM, HR, LR Limitations DM 6144 à DM 6655 ne peuvent pas être utilisés pour Wd. Description Lorsque la condition d’exécution est OFF, ASL(25) n’est pas exécutée. Lorsque la condition d’exécution est ON, ASL(25) décale un 0 dans le bit 00 de Wd, décale les bits de Wd d’un bit vers la gauche et décale l’état du bit 15 vers CY. CY Bit Bit 15 00 1 0 0 1 1 1 0 0 0 1 0 1 0 0 1 1 0 Conseils d’utilisation Un 0 sera décalé dans le bit 00 à chaque cycle lorsque ASL(25) est utilisée sous forme simple. Utiliser la forme sur changement d’état (@ASL(25)) ou combiner ASL(25) avec DIFU(13) ou DIFD(14) pour n’opérer qu’un décalage. Drapeaux ER : Le canal DM indirectement adressé n’existe pas (le contenu du canal *DM n’est pas en BCD ou la limite de la zone DM a été dépassée). CY : Reçoit l’état du bit 15. EQ : ON lorsque le contenu de Wd est zéro ; sinon OFF. 7-16-4 ARITHMETIC SHIFT RIGHT -- ASR(26) Symboles à contacts ASR(26) @ASR(26) Wd Wd Zones de données d’opérandes Wd : Décalage de mot (Shift word) IR, SR, AR, DM, HR, LR Limitations DM 6144 à DM 6655 ne peuvent pas être utilisés pour Wd. Description Lorsque la condition d’exécution est OFF, ASR(25) n’est pas exécutée. Lorsque la condition d’exécution est ON, ASR(25) décale un 0 vers le bit 15 de Wd, décale les bits de Wd d’un bit vers la droite et décale l’état du bit 00 vers CY. Bit Bit 15 00 1 1 0 0 1 0 1 1 0 0 1 1 0 0 1 0 CY 0 Conseils d’utilisation Un 0 sera décalé dans le bit 15 à chaque cycle lorsque ASR(26) est utilisée sous forme simple. Utiliser la forme sur changement d’état (@ASR(26)) ou combiner ASR(26) avec DIFU(13) ou DIFD(14) pour n’opérer qu’un décalage. Drapeaux ER : 354 Le canal DM indirectement adressé n’existe pas (le contenu du canal *DM n’est pas en BCD ou la limite de la zone DM a été dépassée). Chapitre 7-16 Instructions de décalage 7-16-5 CY : Reçoit l’état du bit 00. EQ : ON lorsque le contenu de Wd est zéro ; sinon OFF. ROTATE LEFT -- ROL(27) Symboles à contacts ROL(27) @ROL(27) Wd Wd Zones de données d’opérandes Wd : Rotation de mot (Rotate word) IR, SR, AR, DM, HR, LR Limitations DM 6144 à DM 6655 ne peuvent pas être utilisés pour Wd. Description Lorsque la condition d’exécution est OFF, ROL(27) n’est pas exécutée. Lorsque la condition d’exécution est ON, ROL(27) décale tous les bits de Wd d’un bit vers la gauche, décale CY vers le bit 00 de Wd et le bit 15 de Wd vers CY. CY Bit 15 Bit 00 0 1 0 1 1 0 0 1 1 1 0 0 0 1 1 0 1 Conseils d’utilisation Utiliser STC(41) pour définir l’état de CY ou CLC(41) de façon à réinitialiser l’état de CY avant d’opérer une rotation et s’assurer ainsi que CY contient l’état approprié avant d’exécuter ROL(27). CY sera décalé vers le bit 00 à chaque cycle lorsque ROL(27) est utilisée sous forme simple. Utiliser la forme sur changement d’état (@ROL(27)) ou combiner ROL(27) avec DIFU(13) ou DIFD(14) pour n’opérer qu’un décalage. Drapeaux ER : Le canal DM indirectement adressé n’existe pas (le contenu du canal *DM n’est pas en BCD ou la limite de la zone DM a été dépassée). CY : Reçoit les données du bit 15. EQ : ON lorsque le contenu de Wd est zéro ; sinon OFF. 7-16-6 ROTATE RIGHT -- ROR(28) Symboles à contacts ROR(28) @ROR(28) Wd Wd Zones de données d’opérandes Wd : Rotation de mot (Rotate word) IR, SR, AR, DM, HR, LR Limitations DM 6144 à DM 6655 ne peuvent pas être utilisés pour Wd. Description Lorsque la condition d’exécution est OFF, ROR(28) n’est pas exécutée. Lorsque la condition d’exécution est ON, ROR(28) décale tous les bits de Wd d’un bit vers la droite, décale CY vers le bit 15 de Wd et le bit 00 de Wd vers CY. CY Bit 15 Bit 00 0 0 1 0 1 0 1 0 0 0 1 1 1 0 0 0 1 355 Chapitre 7-16 Instructions de décalage Conseils d’utilisation Utiliser STC(41) de façon à définir l’état de CY ou CLC(41) afin de réinitialiser l’état de CY avant d’opérer une rotation et s’assurer ainsi que CY contient l’état approprié avant d’exécuter ROR(28). CY sera décalé vers le bit 15 à chaque cycle lorsque ROR(28) est utilisée sous forme simple. Utiliser la forme sur changement d’état (@ROR(28)) ou combiner ROR(28) avec DIFU(13) ou DIFD(14) pour n’opérer qu’un décalage. Drapeaux 7-16-7 ER : Le canal DM indirectement adressé n’existe pas (le contenu du canal *DM n’est pas en BCD ou la limite de la zone DM a été dépassée). CY : Reçoit les données du bit 00. EQ : ON lorsque le contenu de Wd est zéro ; sinon OFF. ONE DIGIT SHIFT LEFT -- SLD(74) Symboles à contacts Zones de données d’opérandes St : Mot de départ (Starting word) Limitations SLD(74) @SLD(74) St St E E IR, SR, AR, DM, HR, LR E : Mot de fin (End word) IR, SR, AR, DM, HR, LR St et E doivent être dans la même zone de données et E doit être supérieur ou égal à St. DM 6144 à DM 6655 ne peuvent pas être utilisés pour St ou E. Description Lorsque la condition d’exécution est OFF, SLD(74) n’est pas exécutée. Lorsque la condition d’exécution est ON, SLD(74) décale les données entre St et E (inclus) d’un digit (quatre bits) vers la gauche. Un 0 est écrit dans le digit de droite de St et le contenu du digit de gauche de E est perdu. E ... 8 F C 5 Donnée perdue Conseils d’utilisation St D 7 9 1 0 Lorsqu’une panne de courant se produit pendant une opération de décalage à travers plus de 50 mots, l’opération de décalage ne pourra être accomplie. Un 0 sera décalé vers le digit de poids faible de St à chaque cycle lorsque SLD(74) est utilisée sous forme simple. Utiliser la forme sur changement d’état (@SLD(74)) ou combiner SLD(74) avec DIFU(13) ou DIFD(14) pour n’opérer qu’un décalage. Drapeaux ER : Les mots St et E sont dans des zones différentes ou St est supérieur à E. Le canal DM indirectement adressé n’existe pas (le contenu du canal *DM n’est pas en BCD ou la limite de la zone DM a été dépassée). 356 Chapitre 7-16 Instructions de décalage 7-16-8 ONE DIGIT SHIFT RIGHT -- SRD(75) Symboles à contacts Zones de données d’opérandes E : Mot de fin (End word) SRD(75) @SRD(75) E E St St IR, SR, AR, DM, HR, LR St : Mot de départ (Starting word) IR, SR, AR, DM, HR, LR Limitations St et E doivent être dans la même zone de données et E doit être inférieur ou égal à St. DM 6144 à DM 6655 ne peuvent pas être utilisés pour St ou E. Description Lorsque la condition d’exécution est OFF, SRD(75) n’est pas exécutée. Lorsque la condition d’exécution est ON, SRD(75) décale les données comprises entre St et E (inclus) d’un digit (quatre bits) vers la droite. 0 est écrit dans le digit de gauche de St et le digit de droite de E est perdu. St 3 4 5 2 ... E F 8 C 1 Donnée perdue 0 Conseils d’utilisation Lorsqu’une panne de courant se produit pendant une opération de décalage à travers plus de 50 mots, l’opération de décalage ne pourra être accomplie. Un 0 sera décalé vers le digit de poids fort de St à chaque cycle lorsque SLD(75) est utilisée sous forme simple. Utiliser la forme sur changement d’état (@SLD(75)) ou combiner SLD(74) avec DIFU(13) ou DIFD(14) pour n’opérer qu’un décalage. Drapeaux ER : 7-16-9 Les mots St et E sont des zones différentes ou St est inférieur à E. Le canal DM indirectement adressé n’existe pas (le contenu du canal *DM n’est pas en BCD ou la limite de la zone DM a été dépassée). REVERSIBLE SHIFT REGISTER -- SFTR(84) Zones de données d’opérandes Symboles à contacts C : Mot de commande (Control word) IR, SR, AR, DM, HR, LR SFTR(84) @SFTR(84) C C St St E E St : Mot de départ (Starting word) IR, SR, AR, DM, HR, LR E : Mot de fin (End word) IR, SR, AR, DM, HR, LR Limitations St et E doivent être dans la même zone de données et St doit être inférieur ou égal à E. DM 6144 à DM 6655 ne peuvent pas être utilisés pour C, St ou E. Description SFTR(84) est utilisée pour créer un registre à décalage à un ou plusieurs mots pouvant décaler des données vers la droite ou vers la gauche. Pour créer un 357 Chapitre 7-16 Instructions de décalage registre à un mot, indiquer le même mot pour St et E. Le mot de commande indique le sens de décalage, l’état devant être placé dans le registre, l’impulsion de décalage et l’entrée de remise à zéro. Le mot de commande est configuré de la façon suivante : 15 14 13 12 Non utilisé. Sens de décalage 1 (ON) : Gauche (MSB vers LSB) 0 (OFF) : Droite (LSB à MSB) Etat à placer dans le registre Bit d’impulsion de décalage Remise à zéro Les données contenues dans le registre à décalage seront décalées d’un bit dans le sens indiqué par le bit 12, ce qui entraînera un décalage d’un bit vers CY et décalerat l’état du bit 13 vers l’autre extrémité chaque fois que SFTR(84) sera exécutée avec une conditon ON, aussi longtemps que le bit de remise à zéro est sur OFF et le bit 14 sur ON. Lorsque SFTR(84) est exécutée avec une condition OFF ou lorsque SFTR(84) est exécutée avec le bit 14 sur OFF, le registre à décalage demeurera inchangé. Lorsque SFTR(84) est exécutée avec une condition ON et lorsque le bit de remise à zéro (bit 15) est sur OFF, tout le registre à décalage et le CY seront mis à zéro. Drapeaux ER : St et E ne sont pas dans la même zone de données ou ST est plus grand que E. Le canal DM indirectement adressé n’existe pas (le contenu du canal *DM n’est pas en BCD ou la limite de la zone DM a été dépassée). CY : Exemple Reçoit l’état du bit 00 de St ou 15 bits de E, selon le sens de décalage. Dans l’exemple suivant, IR 00000, IR 00001, IR 00002 et IR 00003 sont utilisés pour commander le bit de C utilisé en @SFTR(84). Le registre à décalage est dans DM 0010 et est commandé par IR 00004. Adresse 00000 20012 Direction 20013 Etat en entrée 20014 Impulsion de décalage 20015 Remise à zéro 00001 00002 00003 Opérandes LD OUT LD OUT LD OUT LD OUT LD @SFTR(84) 00000 20012 00001 20013 00002 20014 00003 20015 00004 DM DM 00004 @SFTR(84) 200 DM 0010 DM 0011 358 00000 00001 00002 00003 00004 00005 00006 00007 00008 00009 Instruction 200 0010 0011 Chapitre 7-16 Instructions de décalage 7-16-10 ASYNCHRONOUS SHIFT REGISTER -- ASFT(17) Zones de données d’opérandes Symboles à contacts C : Mot de commande (Control word) IR, SR, AR, DM, HR, LR, # ASFT(17) @ASFT(17) St : Mot de départ (Starting word) C C IR, SR, AR, DM, HR, LR St St E E E : Mot de fin (End word) IR, SR, AR, DM, HR, LR Rem. ASFT(17) est une instruction d’expansion du SRM1(-V2). Le code de fonction 17 est configuré en usine et peut être modifié pour le SRM1(-V2) si désiré. Limitations St et E doivent être dans la même zone de données et E doit être supérieur ou égal à St. DM 6144 à DM 6655 ne peuvent pas être utilisés pour St ou E. Description Lorsque la condition d’exécution est OFF, ASFT(17) n’exécute aucune fonction et le programme passe à l’instruction suivante. Lorsque la condition d’exécution est ON, ASFT(17) est utilisée pour la création et le contrôle d’un registre à décalage asynchrone réversible de mots entre St et E. Il ne décale les mots que lorsque le mot suivant dans le registre contient la valeur zéro ; lorsqu’aucun mot dans le registre ne contient la valeur zéro, aucun décalage n’a lieu. En outre, un seul mot est décalé pour chaque mot du registre contenant la valeur zéro. Lorsque le contenu d’un mot est décalé vers le mot suivant, le contenu du mot initial est mis à zéro. Donc, lorsque le registre est décalé, chaque mot à zéro dans le registre change de place avec le mot suivant (voir Exemple ci-dessous). Le sens de décalage (le “mot suivant” étant le mot immédiatement supérieur ou immédiatement inférieur) est indiqué en C. C est également utilisé pour remettre à zéro le registre. La totalité, ou une partie, du registre peut être remise à zéro en indiquant la partie désirée avec St et E. Mot de commande Les bits 00 à 12 de C sont non utilisés. Le bit 13 est le sens de décalage : mettre le bit 13 à ON pour opérer un décalage vers le bas (vers les mots adressés inférieurs) et à OFF pour opérer un décalage vers le haut (vers les mots adressés supérieurs). Le bit 14 est le bit de validation de décalage : mettre le bit 14 sur ON pour activer le registre à décalage selon la position du bit 13, et sur OFF pour désactiver le registre. Le bit 15 est le bit de remise à zéro : le registre sera remis à zéro entre St et E lorsque ASFT(17) sera exécutée, le bit 15 étant sur ON. Mettre le bit 15 sur OFF en mode de fonctionnement normal. Rem. Lorsque la forme simple d’ASFT(17) est utilisée, les données seront décalées à chaque cycle lorsque la condition d’exécution est ON. Pour éviter ceci, utiliser la forme sur changement d’état. Drapeaux ER : Les mots St et E words sont dans une zone différente ou St est supérieur à E. Le canal DM indirectement adressé n’existe pas (le contenu du canal *DM n’est pas en BCD ou la limite de la zone DM a été dépassée). 359 Chapitre 7-17 Instructions de transfert de données Exemple L’exemple suivant utilise l’instruction ASFT(17) pour décaler des mots dans un registre à décalage de 11 mots créés entre DM 0100 et DM 0110 avec C=#6000. Les données différentes de zéro sont décalées vers St (DM 0110). 00000 ASFT(17) #6000 DM 0100 Adresse Instruction 00000 00001 Opérandes LD ASFT(17) 00000 # DM DM DM 0110 6000 0100 0110 Après sept exécutions Avant exécution Après une exécution DM 0100 1234 1234 1234 DM 0101 0000 0000 2345 DM 0102 0000 2345 3456 DM 0103 2345 0000 4567 DM 0104 3456 3456 5678 DM 0105 0000 4567 6789 DM 0106 4567 0000 789A DM 0107 5678 5678 0000 DM 0108 6789 6789 0000 DM 0109 0000 789A 0000 DM 0110 789A 0000 0000 Rem. Les zéros sont “décalés vers le haut” lorsque C=4000, et tout le registre à décalage est mis à zéro lorsque C=8000. 7-17 Instructions de transfert de données 7-17-1 MOVE -- MOV(21) Symboles à contacts Zones de données d’opérandes S : Mot d’origine (Source word) MOV(21) @MOV(21) S S D D IR, SR, AR, DM, HR, TC, LR, # D : Mot de destination (Dest. word) IR, SR, AR, DM, HR, LR Limitations DM 6144 à DM 6655 ne peuvent pas être utilisés pour D. Description Lorsque la condition d’exécution est OFF, MOV(21) n’est pas exécutée. Lorsque la condition d’exécution est ON, MOV(21) copie le contenu de S dans D. Mot d’origine Mot de destination Etat des bits inchangé. Conseils d’utilisation 360 Des valeurs TC ne peuvent pas être spécifiées en D pour changer la PV de temporisation ou de comptage. La PV de temporisation ou de comptage se modifie facilement en utilisant BSET(71). Chapitre 7-17 Instructions de transfert de données Drapeaux Exemple ER : Le canal DM indirectement adressé n’existe pas (le contenu du canal *DM n’est pas en BCD ou la limite de la zone DM a été dépassée). EQ : ON lorsque tous les zéros sont transférés en D. Les exemples suivants utilisent @MOV(21) pour copier le contenu de IR 001 dans HR 05 lorsque IR 00000 passe de OFF à ON. 00000 @MOV(21) 001 HR 05 Adresse Instruction 00000 00001 LD @MOV(21) Opérandes 00000 HR 7-17-2 IR 000 0 1 1 1 0 0 1 1 1 0 0 0 0 1 0 1 HR 05 0 1 1 1 0 0 1 1 1 0 0 0 0 1 0 1 001 05 MOVE NOT -- MVN(22) Symboles à contacts Zones de données d’opérandes S : Mot d’origine (Source word) MVN(22) @MVN(22) S S D D IR, SR, AR, DM, HR, TC, LR, # D : Mot de destination (Dest. word) IR, SR, AR, DM, HR, LR Limitations DM 6144 à DM 6655 ne peuvent pas être utilisés pour D. Description Lorsque la condition d’exécution est OFF, MVN(22) n’est pas exécutée. Lorsque la condition d’exécution est ON, MVN(22) transfère le contenu inversé de S (mot indiqué ou constante à quatre digits hexadécimaux) à D : pour chaque bit à l’état ON en S, le bit correspondant dans D est sur OFF et pour chaque bit à l’état OFF en S, le bit correspondant dans D est mis à 1. Mot d’origine Mot de destination Etat des bits inversé. Conseils d’utilisation Des valeurs TV ne peuvent pas être spécifiées en D pour changer la PV de temporisation ou de comptage. La PV de temporisation ou de comptage se modifie facilement en utilisant BSET(71). Drapeaux ER : Le canal DM indirectement adressé n’existe pas (le contenu du canal *DM n’est pas en BCD ou la limite de la zone DM a été dépassée). EQ : ON lorsque tous les zéros sont transférés en D. 361 Chapitre 7-17 Instructions de transfert de données Exemple Les exemples suivants utilisent @MVN(22) pour copier le complément de #F8C5 dans DM 0010 lorsque IR 00001 passe de OFF à ON. 00001 @MVN(22) #F8C5 DM 0010 Adresse Instruction 00000 00001 LD @MOV(21) Opérandes 00001 # DM 7-17-3 #F8C5 1 1 1 1 1 0 0 0 1 1 0 0 0 1 0 1 DM 0010 0 0 0 0 0 1 1 1 0 0 1 1 1 0 1 0 F8C5 0010 BLOCK TRANSFER -- XFER(70) Zones de données d’opérandes Symboles à contacts N : Nombre de mots (BCD) IR, SR, AR, DM, HR, TC, LR, # XFER(70) @XFER(70) N N S S D D S : Mot source de départ Limitations IR, SR, AR, DM, HR, TC, LR D : Mot de destination de départ IR, SR, AR, DM, HR, TC, LR S et S+N doivent être dans la même zone de données, de même que D et D+N. DM 6144 à DM 6655 ne peuvent pas être utilisés pour D. Description Drapeaux Lorsque la condition d’exécution est OFF, XFER(70) n’est pas exécutée. Lorsque la condition d’exécution est ON, XFER(70) copie le contenu de S, S+1, ..., S+N dans D, D+1, ..., D+N. ER : S D 3 4 5 2 3 4 5 2 S+1 D+1 3 4 5 1 3 4 5 1 S+2 D+2 3 4 2 2 3 4 2 2 S+N D+N 6 4 5 2 6 4 5 2 N n’est pas une valeur BCD. S et S+N ou D et D+N ne sont pas dans la même zone de données. Le canal DM indirectement adressé n’existe pas (le contenu du canal *DM n’est pas en BCD ou la limite de la zone DM a été dépassée). 362 Chapitre 7-17 Instructions de transfert de données 7-17-4 BLOCK SET -- BSET(71) Zones de données d’opérandes Symboles à contacts S : Données de base (Source data) IR, SR, AR, DM, HR, TC, LR, # BSET(71) @BSET(71) S S St St E E St : Mot de départ (Starting word) IR, SR AR, DM, HR, TC, LR E : Mot de fin (End Word) IR, SR, AR, DM, HR, TC, LR Limitations St doit être inférieure ou égale à E, et St et E doivent être dans la même zone de données. DM 6144 à DM 6655 ne peuvent pas être utilisés pour St ou E. Description Lorsque la condition d’exécution est OFF, BSET(71) n’est pas exécutée. Lorsque la condition d’exécution est ON, BSET(71) copie le contenu de S dans tous les mots de St à E. S St 3 4 5 2 3 4 5 2 St+1 3 4 5 2 St+2 3 4 5 2 E 3 4 5 2 BSET(71) peut être utilisée pour changer la PV de temporisation/comptage. Ceci ne peut être effectué avec MOV(21) ou MVN(22). BSET(71) peut également être utilisée pour effacer des parties d’une zone de données : la zone DM, afin de préparer l’exécution d’autres instructions. Elle peut également être utilisée pour effacer des mots en y transférant des zéros. Drapeaux ER : St et E ne sont pas dans la même zone de données ou St est plus grand que E. Le canal DM indirectement adressé n’existe pas (le contenu du canal *DM n’est pas en BCD ou la limite de la zone DM a été dépassée). Exemple L’exemple suivant montre comment utiliser BSET(71) pour copier une constante (#0000) dans un bloc de la zone DM (DM 0000 à DM 0500) lorsque IR 00000 est sur ON. 00000 @BSET(71) #0000 DM 0000 DM 0500 Adresse Instruction 00000 00001 LD @BSET(71) Opérandes 00000 # DM DM 0000 0000 0500 363 Chapitre 7-17 Instructions de transfert de données 7-17-5 DATA EXCHANGE -- XCHG(73) Symboles à contacts Zones de données d’opérandes E1 : Mot 1 échangé XCHG(73) @XCHG(73) E1 E1 E2 E2 IR, SR, AR, DM, HR, TC, LR E2 : Mot 2 échangé IR, SR, AR, DM, HR, TC, LR Limitations DM 6144 à DM 6655 ne peuvent pas être utilisés pour E1 ou E2. Description Lorsque la condition d’exécution est OFF, XCHG(73) n’est pas exécutée. Lorsque la condition d’exécution est ON, XCHG(73) permute le contenu d’E1 et d’E2. E1 E2 Pour permuter le contenu de blocs dont la taille est supérieure à un mot, utiliser les mots de travail comme un tampon intermédiaire pour contenir l’un des blocs, en utilisant trois fois XFER(70). Drapeaux 7-17-6 ER : Le canal DM indirectement adressé n’existe pas (le contenu du canal *DM n’est pas en BCD ou la limite de la zone DM a été dépassée). SINGLE WORD DISTRIBUTE -- DIST(80) Zones de données d’opérandes Symboles à contacts S : Données sources IR, SR, AR, DM, HR, TC, LR, # DIST(80) @DIST(80) S S DBs DBs C C DBs : Mot de base de destination IR, SR, AR, DM, HR, TC, LR C : Mot de commande (BCD) IR, SR, AR, DM, HR, TC, LR, # Limitations C doit être sous forme BCD. DM 6144 à DM 6655 ne peuvent pas être utilisés pour des DBs ou des C. Description DIST(80) peut être utilisée pour une distribution de mots simples ou pour une opération utilisant une batterie, spécifiée par le mot de commande C. Distribution de mots simples Lorsque les bits 12 à 15 de C=0 à 8, DIST(80) peut être utilisée pour une distribution de mots simples. Le contenu entier de C indique un décalage Of (0000 à 2047 dans une valeur BCD). Lorsque la condition d’exécution est OFF, DIST(80) n’est pas exécutée. Lorsque la condition d’exécution est ON, DIST(80) copie le contenu de S dans DBs+Of : Of est ajouté à DBs pour déterminer le mot de destination. Rem. DBs et DBs+Of doivent être dans la même zone de données et ne peuvent pas être compris entre DM 6144 et DM 6655. Exemple L’exemple suivant montre comment utiliser DIST(80) pour copier #00FF dans 364 Chapitre 7-17 Instructions de transfert de données HR 10 + Of. Le contenu de LR 10 est #3005, #00FF est copié dans HR 15 (HR 10 + 5) lorsque IR 00000 est sur ON. 00000 @DIST(80) #00FF Adresse Instruction 00000 00001 LD @DIST(80) HR 10 Opérandes 00000 # HR LR LR 10 LR 10 #00FF HR 10 3 0 0 5 0 0 F F 0 0 0 0 00FF 10 10 HR 15 5 décalages 0 0 F F Operation utilisant une batterie Lorsque les bits 12 à 15 de C=9, DIST(80) s’utilise pour une opération utilisant une batterie. Les 3 autres digits de C indiquent le nombre de mots de la batterie (000 à 999 dans un BCD). DBs contient l’indicateur de la batterie. Lorsque la condition d’exécution est OFF, DIST(80) n’est pas exécutée. Lorsque la condition d’exécution est ON, DIST(80) copie le contenu de S dans DBs+1 + le contenu de DBs. En d’autres termes, 1 et le contenu de DBs sont ajoutés à DBs pour déterminer le mot de destination. Le contenu de DBs est alors incrémenté de 1. Rem. 1. DIST(80) sera exécutée à chaque cycle, sauf lorsque la forme sur changement d’état (@DIST(80)) est utilisée ou lorsque DIST(80) est utilisée avec DIFU(13) ou DIFD(14). 2. Initialiser l’indicateur de la batterie avant d’utiliser DIST(80) pour une opération utilisant une batterie. Exemple L’exemple suivant montre comment utiliser DIST(80) pour créer une batterie entre DM 0001 et DM 0005. DM 0000 fait office d’indicateur de batterie. 00000 @DIST(80) 200 Adresse Instruction 00000 00001 LD @DIST(80) Opérandes 00000 DM 0000 216 Drapeaux IR 200 FFFF IR 216 9005 DM 0000 DM 0001 DM 0002 DM 0003 DM 0004 DM 0005 0000 0000 0000 0000 0000 0000 Première exécution Indicateur de batterie incrémenté ER : DM DM 0000 DM 0001 DM 0002 DM 0003 DM 0004 DM 0005 0001 FFFF 0000 0000 0000 0000 Deuxième exécution Indicateur de batterie incrémenté DM 0000 DM 0001 DM 0002 DM 0003 DM 0004 DM 0005 200 0000 216 0002 FFFF FFFF 0000 0000 0000 Le décalage ou la longueur de la batterie dans le mot de commande n’est pas une valeur BCD. 365 Chapitre 7-17 Instructions de transfert de données Le canal DM indirectement adressé n’existe pas (le contenu du canal *DM n’est pas en BCD ou la limite de la zone DM a été dépassée). Durant l’utilisation de la batterie, la valeur de l’indicateur de batterie + 1 est supérieure à la longueur de la batterie. EQ : 7-17-7 ON quand le contenu de S est de zéro ; sinon OFF. DATA COLLECT -- COLL(81) Zones de données d’opérandes SBs : Mot de base source Symboles à contacts IR, SR, AR, DM, HR, TC, LR COLL(81) @COLL(81) SBs SBs C C D D C : Mot de commande (BCD) IR, SR, AR, DM, HR, TC, LR, # D : Mot de destination IR, SR, AR, DM, HR, TC, LR Limitations C doit être sous forme BCD. DM 6144 à DM 6655 ne peuvent pas être utilisés pour D. Description COLL(81) peut être utilisée pour la collecte de données, une opération utilisant une batterie FIFO ou une opération utilisant une batterie LIFO spécifiée par le mot de commande C. Collecte de données Lorsque les bits 12 à 15 de C=0 à 7, COLL(81) est utilisée pour la collecte de données. Le contenu de C indique un décalage Of (0000 à 2047 en BCD). Lorsque la condition d’exécution est OFF, COLL(81) n’est pas exécutée. Lorsque la condition d’exécution est ON, COLL(81) copie le contenu de SBs + Of dans D : Of est ajouté à SBs pour déterminer le mot source. Rem. SBs et SBs+Of doivent être dans la même zone de données. Exemple L’exemple suivant montre comment utiliser COLL(81) pour copier le contenu de DM 0000+Of dans LR 00. Le contenu de 200 est #0005, ainsi le contenu de DM 0005 (DM 0000 + 5) est donc copié dans LR 00 lorsque IR 00001 passe à l’état ON. 00001 @COLL(81) DM 0000 Adresse Instruction 00000 00001 LD @COLL(81) 200 Opérandes 00001 DM LR 00 LR 200 DM 0000 LR 00 0 0 0 5 0 0 0 0 0 0 F F 0000 200 00 DM 0005 0 0 F F Opération utilisant une batterie FIFO 366 Lorsque les bits 12 à 15 de C=9, COLL(81) peut être utilisée pour une opération utilisant une batterie FIFO. Les 3 autres digits de C indiquent le nombre de mots Chapitre 7-17 Instructions de transfert de données dans la batterie (000 à 999 dans une valeur BCD). SBs contient l’indicateur de la batterie. Lorsque la condition d’exécution est ON, COLL(81) décale le contenu de chaque mot dans la batterie d’une adresse vers le bas et décale les données de SBs+1 (première valeur écrite dans la batterie) vers le mot de destination (D). Le contenu de l’indicateur de batterie (SBs) est alors décrémenté de 1. Rem. COLL(81) est exécutée à chaque cycle, sauf lorsque la forme sur changement d’état (@COLL(81)) est utilisée ou lorsque COLL(81) est utilisée avec DIFU(13) ou DIFD(14). Exemple L’exemple suivant montre comment utiliser COLL(81) pour créer une batterie entre DM 0001 et DM 0005. DM 0000 fait office d’indicateur de batterie. Lorsqu’IR 00000 passe de l’état OFF à l’état ON, COLL(81) décale la partie comprise entre DM 0002 et DM 0005 d’une adresse vers le bas et décale les données à partir de DM 0001 vers IR 001. Le contenu de l’indicateur de batterie (DM 0000) est alors décrémenté de 1. 00000 @COLL(81) DM 0000 Adresse Instruction 00000 00001 LD @COLL(81) 216 Opérandes 00000 DM 001 Opération utilisant une batterie LIFO IR 216 9005 DM 0000 DM 0001 DM 0002 DM 0003 DM 0004 DM 0005 0005 AAAA BBBB CCCC DDDD EEEE Indicateur de batterie décré- DM 0000 menté DM 0001 DM 0002 DM 0003 DM 0004 DM 0005 0004 BBBB CCCC DDDD EEEE EEEE IR 001 0000 216 001 AAAA Lorsque les bits12 à 15 de C=8, COLL(81) peut être utilisée pour une opération utilisant une batterie LIFO. Les 3 autres digits de C indiquent le nombre de mots dans la batterie (000 à 999 dans un BCD). SBs contient l’indicateur de la batterie. Lorsque la condition d’exécution est ON, COLL(81) copie les données du mot indiqué par l’indicateur de batterie (contenu de SBs+SBs) dans le mot de destination (D). Le contenu de l’indicateur de batterie (SBs) est alors décrémenté de 1. L’indicateur de batterie est le seul mot modifié dans la batterie. Rem. COLL(81) est exécutée à chaque cycle, sauf lorsque la forme sur changement d’état (@DIST(80)) est utilisée ou lorsque DIST(80) est utilisée avec DIFU(13) ou DIFD(14). Exemple L’exemple suivant montre comment utiliser COLL(81) pour créer une batterie entre DM 0001 et DM 0005. DM 0000 fait office d’indicateur de batterie. 367 Chapitre 7-17 Instructions de transfert de données Lorsque IR 00000 passe de l’état OFF à l’état ON, COLL(81) copie le contenu de DM 0005 (DM 0000 + 5) dans IR 001. Le contenu de l’indicateur de batterie (DM 0000) est alors décrémenté de 1. 00000 Adresse Instruction 00000 00001 LD @COLL(81) @COLL(81) DM 0000 216 Opérandes 00000 DM 0000 216 001 001 Drapeaux IR 216 8005 DM 0000 DM 0001 DM 0002 DM 0003 DM 0004 DM 0005 0005 AAAA BBBB CCCC DDDD EEEE ER : Indicateur de batterie décréDM 0000 menté DM 0001 DM 0002 DM 0003 DM 0004 DM 0005 0004 AAAA BBBB CCCC DDDD EEEE IR 001 EEEE Le décalage ou la longueur de la batterie dans le mot de commande n’est pas une valeur BCD. Le canal DM indirectement adressé n’existe pas (le contenu du canal *DM n’est pas en BCD ou la limite de la zone DM a été dépassée). Durant une opération utilisant une batterie, la valeur de l’indicateur de la batterie est supérieure à la longueur de la batterie. Une tentative d’écriture d’un mot au-delà de la batterie a été détectée. EQ : 7-17-8 ON quand le contenu de S est de zéro ; sinon OFF. MOVE BIT -- MOVB(82) Zones de données d’opérandes Symboles à contacts S : Mot source IR, SR, AR, DM, HR, LR, # MOVB(82) @MOVB(82) S S Bi Bi D D Bi : Indicateur de bit (BCD) Limitations IR, SR, AR, DM, HR, TC, LR, # D : Mot de destination IR, SR, AR, DM, HR, LR Les deux digits de droite et les deux digits de gauche de Bi doivent chacun être compris entre 00 et 15. DM 6144 à DM 6655 ne peuvent être utilisés pour Bi ou D. Description 368 Lorsque la condition d’exécution est OFF, MOVB(82) n’est pas exécutée. Lorsque la condition d’exécution est ON, MOVB(82) copie le bit spécifié de S Chapitre 7-17 Instructions de transfert de données dans D. Les bits dans S et D sont spécifiés par Bi. Les deux digits de droite de Bi indiquent le bit source ; les deux bits de gauche indiquent le bit de destination. Bit 15 Bi Bi MSB 1 2 0 1 Bit 00 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 1 Bit 15 LSB S 2 0 1 Bit 00 0 1 0 1 0 1 0 0 0 1 1 1 0 0 0 1 Bit de source (00 à 15) Bit 15 Bit de destination (00 à 15) D Drapeaux ER : Bit 00 0 1 0 0 0 1 0 0 0 1 1 1 0 0 0 1 Bi n’est pas une valeur BCD ou il indique un bit inexistant (les bits indiqués doivent être compris entre 00 et 15). Le canal DM indirectement adressé n’existe pas (le contenu du canal *DM n’est pas en BCD ou la limite de la zone DM a été dépassée). 7-17-9 MOVE DIGIT -- MOVD(83) Zones de données d’opérandes Symboles à contacts S : Mot d’origine (Source word) IR, SR, AR, DM, HR, TC, LR, # MOVD(83) @MOVD(83) S S Di Di D D Di : Indicateur de digit (BCD) IR, SR, AR, DM, HR, TC, LR, # D : Mot de destination (Dest. word) IR, SR, AR, DM, HR, TC, LR Limitations Les trois digits de droite de Di doivent chacun être compris entre 0 et 3. DM 6144 à DM 6655 ne peuvent pas être utilisés pour Di ou D. Description Lorsque la condition d’exécution est OFF, MOVD(83) n’est pas exécutée. Lorsque la condition d’exécution est ON, MOVD(83) copie le contenu du (ou des) digit(s) indiqué(s) de S dans le(s) digit(s) indiqué(s) dans D. Jusqu’à quatre digits peuvent être transférés en même temps. Le premier digit à copier, le nombre de digits à copier et le premier digit vers lequel s’effectue la copie sont indiqués dans Di, comme illustré ci-dessous. Les digits copiés à partir de S sont copiés dans les digits successifs de D à partir du premier digit indiqué, et ce pour le nombre de digits spécifié. Lorsque le dernier digit est atteint dans S ou D, d’autres digits sont utilisés en repartant du digit 0. Nombre de digits : 3 2 1 0 Premier digit dans S (0 à 3) Nombre de digits (0 à 3) 0 : 1 digit 1 : 2 digits 2 : 3 digits 3 : 4 digits Premier digit dans D (0 à 3) Non utilisé (Mettre à 0) 369 Chapitre 7-18 Instructions de comparaison Indicateur de digit Les exemples suivants illustrent des transferts de données correspondant à différentes valeurs de Di. Di: 0010 Di: 0030 S D S D 0 0 0 0 1 1 1 1 2 2 2 2 3 3 3 3 S D S D 0 0 0 0 1 1 1 1 2 2 2 2 3 3 3 3 Di: 0031 Drapeaux ER : Di: 0023 Au moins un des trois digits de droite des Di n’est pas compris entre 0 et 3. Le canal DM indirectement adressé n’existe pas (le contenu du canal *DM n’est pas en BCD ou la limite de la zone DM a été dépassée). 7-18 Instructions de comparaison 7-18-1 COMPARE -- CMP(20) Symboles à contacts Zones de données d’opérandes Cp1 : 1ère comparaison de mot CMP(20) IR, SR, AR, DM, HR, TC, LR, # Cp1 Cp2 : 2ème comparaison de mot Cp2 IR, SR, AR, DM, HR, TC, LR, # Limitations Pour la comparaison d’une valeur à la PV de temporisation ou de comptage, cette valeur doit être une valeur BCD. Description Lorsque la condition d’exécution est OFF, CMP(20) n’est pas exécutée. Lorsque la condition d’exécution est ON, CMP(20) compare Cp1 et Cp2 et génère les résultats dans les drapeaux GR, EQ et LE dans la zone SR. Conseils d’utilisation L’insertion d’autres instructions entre CMP(20) et l’opération accédant aux drapeaux EQ, LE et GR peut modifer l’état de ces drapeaux. L’accès doit avoir lieu avant que l’état correspondant ne soit modifié. Drapeaux ER : Le canal DM indirectement adressé n’existe pas (le contenu du canal *DM n’est pas en BCD ou la limite de la zone DM a été dépassée). EQ : ON lorsque Cp1 est égal à Cp2. LE : ON lorsque Cp1est plus petit que Cp2. GR : ON lorsque Cp1 est plus grand que Cp2. Drapeau 370 Adresse C1 < C2 C1 = C2 C1 > C2 GR 25505 OFF OFF ON EQ 25506 OFF ON OFF LE 25507 ON OFF OFF Chapitre 7-18 Instructions de comparaison Exemple : Sauvegarde des résultats de CMP(20) 00000 L’exemple suivant montre comment sauvegarder immédiatement le résultat de la comparaison. Lorsque le contenu de HR 09 est supérieur à DM 0000, 20000 passe à l’état ON. Lorsque les deux sont égaux, 20001 passe à l’état ON ; lorsque le contenu de HR 09 est inférieur à DM 0000, 20002 passe à l’état ON. Dans certaines applications, un seul des trois OUT s’avère nécessaire, ce qui évite d’utiliser TR 0. Dans ce type de programmation, 20000, 20001 et 20002 ne sont modifiés que lorsque CMP(20) est exécutée. TR 0 CMP(20) HR 09 DM 0000 25505 20000 Plus grand 20001 Egal 20002 Plus petit 25506 25507 Adresse Instruction 00000 00001 00002 LD OUT CMP(20) Opérande 7-18-2 AND OUT 00005 00006 00007 00008 00009 00010 00000 0 TR HR DM 00003 00004 Adresse 09 0000 25505 20000 Instruction LD AND OUT LD AND OUT Opérande TR TR 0 25506 20001 0 25507 20002 TABLE COMPARE -- TCMP(85) Zones de données d’opérandes Symboles à contacts CD : Données de comparaison IR, SR, DM, HR, TC, LR, # TCMP(85) @TCMP(85) CD CD TB TB R R TB : 1er mot du tableau de comp. IR, SR, DM, HR, TC, LR R : Mot de résultat IR, SR, DM, HR, TC, LR Limitations DM 6144 à DM 6655 ne peuvent pas être utilisés pour R. Description Lorsque la condition d’exécution est OFF, TCMP(85) n’est pas exécutée. Lorsque la condition d’exécution est ON, TCMP(85) compare CD au contenu de TB, de TB+1, de TB+2, ..., et de TB+15. Lorsque CD est égal au contenu de l’un de ces mots, le bit correspondant dans R est mis sur ON ; par exemple lorsque CD est égal au contenu de TB, le bit 00 est mis sur ON ; lorsqu’il est égal au contenu de TB+1, le bit 01 est mis sur ON, ... ; les bits restants dans R sont mis à l’état OFF. Drapeaux ER : Le tableau de comparaison (de TB à TB+15) dépasse la zone de données. 371 Chapitre 7-18 Instructions de comparaison Le canal DM indirectement adressé n’existe pas (le contenu du canal *DM n’est pas en BCD ou la limite de la zone DM a été dépassée). L’exemple suivant indique les comparaisons effectuées et les résultats apportés pour TCMP(85). La comparaison est ici effectuée à chaque cycle lorsqu’IR 00000 est à l’état ON. Exemple 00000 TCMP(85) HR 00 Adresse Instruction 00000 00001 LD TCMP(85) DM 0000 HR 00 Limites sup. 0210 Comparer les données dans IR 001 aux plages indiquées. 7-18-3 00000 HR DM 216 CD : HR 00 Opérandes 00 0000 216 R : 216 DM 0000 DM 0001 DM 0002 0100 0200 0210 IR 21600 IR 21601 IR 21602 0 0 1 DM 0003 DM 0004 DM 0005 DM 0006 0400 0500 0600 0210 IR 21603 IR 21604 IR 21605 IR 21606 0 0 0 1 DM 0007 DM 0008 DM 0009 DM 0010 DM 0011 0800 0900 1000 0210 1200 IR 21607 IR 21608 IR 21609 IR 21610 IR 21611 0 0 0 1 0 DM 0012 DM 0013 DM 0014 DM 0015 1300 1400 0210 1600 IR 21612 IR 21613 IR 21614 IR 21615 0 0 1 0 BLOCK COMPARE -- BCMP(68) Zones de données d’opérandes Symboles à contacts CD : Données de comparaison IR, SR, AR, DM, HR, TC, LR, # BCMP(68) @BCMP(68) CD CD CB CB R R CB : 1er mot du bloc comparé IR, SR, DM, HR, TC, LR R : Mot de résultat IR, SR, AR, DM, HR, TC, LR Rem. BCMP(68) est instruction d’expansion du SRM1(-V2). Le code de fonction 68 est défini en usine et peut être modifié sur le SRM1(-V2) si désiré. Limitations Chaque mot de limite inférieure du bloc comparé doit être inférieur ou égal à la limite supérieure. DM 6144 à DM 6655 ne peuvent pas être utilisés pour R. 372 Chapitre 7-18 Instructions de comparaison Description Lorsque la condition d’exécution est OFF, BCMP(68) n’est pas exécutée. Lorsque la condition d’exécution est ON, BCMP(68) compare CD aux plages définies par un bloc constitué de CB+1, CB+2, ..., CB+31. Chaque plage est définie par deux mots, le premier désignant la limite inférieure et le deuxième la limite supérieure. Lorsque CD se trouve dans l’une de ces plages (limites supérieures et inférieures incluses), le bit correspondant est placé dans R. Les comparaisons effectuées et le bit correspondant, dans R, positionné pour chaque comparaison à l’état vrai sont indiqués ci-dessous. Les bits restants dans R passent à l’état OFF. CB ! CD ! CB+1 Bit 00 CB+2 ! CD ! CB+3 Bit 01 CB+4 ! CD ! CB+5 Bit 02 CB+6 ! CD ! CB+7 Bit 03 CB+8 ! CD ! CB+9 Bit 04 CB+10 ! CD ! CB+11 Bit 05 CB+12 ! CD ! CB+13 Bit 06 CB+14 ! CD ! CB+15 Bit 07 CB+16 ! CD ! CB+17 Bit 08 CB+18 ! CD ! CB+19 Bit 09 CB+20 ! CD ! CB+21 Bit 10 CB+22 ! CD ! CB+23 Bit 11 CB+24 ! CD ! CB+25 Bit 12 CB+26 ! CD ! CB+27 Bit 13 CB+28 ! CD ! CB+29 Bit 14 CB+30 ! CD ! CB+31 Bit 15 Drapeaux ER : Le bloc comparé (entre CB et CB+31) dépasse la zone de données. Le canal DM indirectement adressé n’existe pas (le contenu du canal *DM n’est pas en BCD ou la limite de la zone DM a été dépassée). 373 Chapitre 7-18 Instructions de comparaison Exemple L’exemple suivant illustre les comparaisons effectuées et les résultats obtenus pour BCMP(68). La comparaison est ici effectuée à chaque cycle lorsque IR 00000 est sur ON. 00000 BCMP(68) HR 00 DM 0010 Adresse Instruction 00000 00001 LD BCMP(68) Opérandes 00000 HR DM LR LR 05 HR 00 HR 00 Limites inférieures 0210 La valeur 210 contenue dans HR 00 est comparée aux plages. 210 étant compris entre 201 et 300 (valeur des mots DM 0014 et DM 0015), le bit LR 0502 est mis à 1. 7-18-4 Limites supérieures 00 0010 05 R : LR 05 DM 0010 DM 0012 DM 0014 0000 0101 0201 DM 0011 DM 0013 DM 0015 0100 0200 0300 LR 0500 LR 0501 LR 0502 0 0 1 DM 0016 DM 0018 DM 0020 DM 0022 0301 0401 0501 0601 DM 0017 DM 0019 DM 0021 DM 0023 0400 0500 0600 0700 LR 0503 LR 0504 LR 0505 LR 0506 0 0 0 0 DM 0024 DM 0026 DM 0028 DM 0030 DM 0032 0701 0801 0901 1001 1101 DM 0025 DM 0027 DM 0029 DM 0031 DM 0033 0800 0900 1000 1100 1200 LR 0507 LR 0508 LR 0509 LR 0510 LR 0511 0 0 0 0 0 DM 0034 DM 0036 DM 0038 DM 0040 1201 1301 1401 1501 DM 0035 DM 0037 DM 0039 DM 0041 1300 1400 1500 1600 LR 0512 LR 0513 LR 0514 LR 0515 0 0 0 0 DOUBLE COMPARE -- CMPL(60) Symboles à contacts Zones de données d’opérandes Cp1 : 1er mot de la 1ère paire de mots comparés CMPL(60) IR, SR, AR, DM, HR, TC, LR Cp1 Cp2 : 1er mot de la 2ème paire de mots comparés Cp2 IR, SR, AR, DM, HR, TC, LR ---- Rem. CMPL(60) est instruction d’expansion du SRM1(-V2). Le code de fonction 60 est défini en usine et peut être modifié sur le SRM1(-V2) si désiré. Limitations Cp1 et Cp1+1 doivent être dans la même zone de données. Cp2 et Cp2+1 doivent être dans la même zone de données. Placer le troisième opérande à 000. Description Lorsque la condition d’exécution est OFF, CMPL(60) n’est pas exécutée. Lorsque la condition d’exécution est ON, CMPL(60) associe le contenu hexadécimal à 4 digits de Cp1+1 à celui de Cp1 et celui de Cp2+1 à celui de Cp2, pour créer deux nombres hexadécimaux à 8 digits, Cp+1,Cp1 et Cp2+1,Cp2. Les deux nombres à 8 digits sont alors comparés et le résultat est transmis aux drapeaux GR, EQ et LE dans la zone SR. Conseils d’utilisation L’insertion d’autres instructions entre CMPL(60) et l’opération accédant aux drapeaux EQ, LE et GR peut modifer l’état de ces drapeaux. L’accès doit avoir lieu avant que l’état correspondant ne soit modifié. 374 Chapitre 7-18 Instructions de comparaison Drapeaux Exemple : Résultat de sauvegarde de CMPL(60) 00000 ER : Le canal DM indirectement adressé n’existe pas (le contenu du canal *DM n’est pas en BCD ou la limite de la zone DM a été dépassée). GR : ON lorsque Cp1+1,Cp1 est plus grand que Cp2+1,Cp2. EQ : ON lorsque Cp1+1,Cp1 est égal à Cp2+1,Cp2. LE : ON lorsque Cp1+1,Cp1 est plus petit que Cp2+1,Cp2. L’exemple suivant montre comment sauvegarder immédiatement le résultat de la comparaison. Lorsque le contenu de HR 10, HR 09 est supérieur à DM 0001, DM 0000, 20000 passe à l’état ON ; lorsque les deux sont égaux, 20001 passe à l’état ON ; lorsque le contenu de HR 10, HR 09 est inférieur à DM 0001, DM 0000, 20002 passe à l’état ON. Dans certaines applications, un seul des trois OUT est nécessaire, ce qui évite d’utiliser TR 0. Dans ce type de programmation, 20000, 20001 et 20002 ne sont modifiés que lorsque CMPL(60) est dépassée. Adresse TR 0 00000 00001 00002 CMPL(60) HR 09 DM 0000 Instruction LD OUT CMPL(60) 25505 20000 Plus grand 25506 20001 Egal 25507 7-18-5 TR HR DM --- 20002 Opérandes Plus petit 00003 00004 00005 00006 00007 00008 00009 00010 AND OUT LD AND OUT LD AND OUT TR TR 00000 0 09 0000 25505 20000 0 25506 20001 0 25507 20002 AREA RANGE COMPARE -- ZCP(----) Zones de données d’opérandes Symboles à contacts CD : Données de comparaison IR, SR, AR, DM, HR, TC, LR, # ZCP(----) LL : Limite supérieure de plage CD LL UL Limitations IR, SR, AR, DM, HR, TC, LR, # UL : Limite inférieure de plage IR, SR, AR, DM, HR, TC, LR, # Cette instruction n’est disponible que sur le CPM2A/CPM2C/SRM1(-V2). LL doit être inférieur ou égal à UL. Description Lorsque la condition d’exécution est OFF, ZCP(----) n’est pas exécutée. Lorsque la condition d’exécution est ON, ZCP(----) compare le CD à la plage définie par la limite inférieure LL et la limite supérieure UL et transmet le résultat aux drapeaux GR, EQ et LE dans la zone SR. L’état résultant de ces drapeaux est indiqué dans le tableau suivant. 375 Chapitre 7-18 Instructions de comparaison Etat des drapeaux Résultat de la comparaison p GR (SR 25505) EQ (SR 25506) LE (SR 25507) CD < LL 0 0 1 LL ! CD ! UL 0 1 0 UL < CD 1 0 0 Conseils d’utilisation L’insertion d’autres instructions entre ZCP(----) et l’opération accédant aux drapeaux EQ, LE et GR peut modifer l’état de ces drapeaux. L’accès doit avoir lieu avant que l’état correspondant ne soit modifié. Drapeaux ER : Le canal DM indirectement adressé n’existe pas (le contenu du canal *DM n’est pas en BCD ou la limite de la zone DM a été dépassée). LL est supérieur à UL. Exemple EQ : ON lorsque LL ! CD ! UL LE : ON lorsque CD < LL. GR : ON lorsque CD > UL. Dans l’exemple qui suit, le contenu d’IR 200 (#6FA4) est comparé à la plage #0010 à #AB1F. Du fait que #0010 ! #6FA4 ! #AB1F, le drapeau EQ et IR 20001 passent à l’état ON. 00000 TR 0 ZCP(----) 200 #0010 #AB1F 25505 20000 Plus grand que (supérieur à la plage) 25506 20001 Egal à (dans la plage) 20002 Plus petit que (inférieur à la plage) 25507 Adresse Instruction 00000 00001 00002 LD OUT ZCP(----) Opérandes 200 0010 25505 20000 AND OUT LL : #0010 0 0 1 0 376 < 00005 00006 00007 00008 00009 00010 00000 0 TR # 00003 00004 Adresse 6 CD : 200 F A 4 < Instruction LD AND OUT LD AND OUT UL : #AB1F A B 1 F Opérandes TR TR 0 25506 20001 0 25507 20002 20000 : OFF 20001 : ON 20002 : OFF Chapitre 7-19 Instructions de conversion 7-18-6 DOUBLE AREA RANGE COMPARE -- ZCPL(----) Zones de données d’opérandes CD : Données de comparaison Symboles à contacts IR, SR, AR, DM, HR, LR ZCPL(----) LL : Limite supérieure de plage CD IR, SR, AR, DM, HR, LR LL UL : Limite inférieure de plage UL IR, SR, AR, DM, HR, LR Limitations Cette instruction n’est disponible que sur le CPM2A/CPM2C. La valeur à 8 digits contenue dans LL+1,LL doit être inférieure ou égale à UL+1,UL. Description Lorsque la condition d’exécution est OFF, ZCPL(----) n’est pas exécutée. Lorsque la condition d’exécution est ON, ZCPL(----) compare la valeur à 8 digits dans CD, CD+1 à la plage définie par la limite inférieure LL+1,LL et la limite supérieure UL+1,UL et transmet le résultat aux drapeaux GR, EQ et LE dans la zone SR. L’état résultant de ces drapeaux est indiqué dans le tableau qui suit : Etat des drapeaux Résultat de la comparaison p GR (SR 25505) EQ (SR 25506) LE (SR 25507) CD , CD+1< LL+1,LL 0 0 1 LL+1,LL ! CD, CD+1 ! UL+1,UL 0 1 0 UL+1,UL < CD, CD+1 1 0 0 Conseils d’utilisation L’insertion d’autres instructions entre ZCPL(----) et l’opération accédant aux drapeaux EQ, LE et GR peut modifier l’état de ces drapeaux. L’accès doit avoir eu lieu avant que l’état correspondant ne soit modifié. Drapeaux ER : Le canal DM indirectement adressé n’existe pas (le contenu du canal *DM n’est pas en BCD ou la limite de la zone DM a été dépassée). EQ : ON lorsque LL+1,LL ! CD, CD+1 ! UL+1,UL LE : ON lorsque CD, CD+1 < LL+1,LL. GR : ON lorsque CD, CD+1 > UL+1,UL. 7-19 Instructions de conversion 7-19-1 BCD-TO-BINARY -- BIN(23) Symboles à contacts Zones de données d’opérandes S : Mot d’origine (BCD) BIN(23) @BIN(23) S S R R IR, SR, AR, DM, HR, TC, LR Limitations R : Mot de résultat IR, SR, AR, DM, HR, LR DM 6144 à DM 6655 ne peuvent pas être utilisés pour R. 377 Chapitre 7-19 Instructions de conversion Description Lorsque la condition d’exécution est OFF, BIN(23) n’est pas exécutée. Lorsque la condition d’exécution est ON, BIN(23) convertit le contenu BCD de S en bits binaires d’une valeur numérique équivalente et transmets cette valeur binaire à R. Le contenu de R seul change ; le contenu de S n’est pas modifié. BCD S Binaire R BIN(23) permet de convertir une valeur BCD en valeur binaire, de façon à ce que toute valeur affichée sur la Console de Programmation ou tout autre périphérique de programmation apparaisse sous forme hexadécimale et non décimale. Cette instruction peut être utilisée pour effectuer des conversions en format binaire et exécuter des opérations arithmétiques binaires et non des opérations arithmétiques BCD, par exemple pour additionner des valeurs en format BCD et binaire. Drapeaux ER : Le contenu de S n’est pas une valeur BCD. Le canal DM indirectement adressé n’existe pas (le contenu du canal *DM n’est pas en BCD ou la limite de la zone DM a été dépassée). EQ : 7-19-2 ON lorsque le résultat est zéro. BINARY-TO-BCD -- BCD(24) Symboles à contacts Zones de données d’opérandes S : Mot d’origine (binaire) BCD(24) @BCD(24) S S R R IR, SR, AR, DM, HR, LR R : Mot de résultat IR, SR, AR, DM, HR, LR Limitations Lorsque le contenu de S dépasse 270F, le résultat converti dépasse 9999 et BCD(24) n’est pas exécutée. Dans ce cas, le contenu de R n’est pas modifié. DM 6144 à DM 6655 ne peuvent pas être utilisés pour R. Description BCD(24) convertit le contenu binaire (hexadécimal) de S en bits BCD d’une valeur numérique équivalente, et transmet les bits BCD à R. Seul le contenu de R est modifié, le contenu de S ne varie pas. Binaire S BCD R BCD(24) peut être utilisée pour convertir une valeur binaire en valeur BCD de façon à ce que toute valeur affichée sur la Console de Programmation ou tout autre périphérique de programmation apparaisse sous forme décimale et non hexadécimale. Cette instruction peut également être utilisée pour convertir une 378 Chapitre 7-19 Instructions de conversion valeur en format BCD afin d’exécuter des opérations arithmétiques BCD et non des opérations arithmétiques binaires, par exemple pour additionner des valeurs en format binaire et BCD. Drapeaux 7-19-3 ER : Le canal DM indirectement adressé n’existe pas (le contenu du canal *DM n’est pas en BCD ou la limite de la zone DM a été dépassée). EQ : ON lorsque le résultat est zéro. DOUBLE BCD-TO-DOUBLE BINARY -- BINL(58) Symboles à contacts Zones de données d’opérandes S : Premier mot source (BCD) BINL(58) @BINL(58) S S R R IR, SR, AR, DM, HR, TC, LR R : Premier mot de résultat IR, SR, AR, DM, HR, LR Limitations Cette instruction n’est disponible que sur le CPM2A/CPM2C. DM 6144 à DM 6655 ne peuvent pas être utilisés pour R. Description Lorsque la condition d’exécution est OFF, BINL(58) n’est pas exécutée. Lorsque la condition d’exécution est ON, BINL(58) convertit un nombre à huit digits dans S et S+1 en données binaires sur 32 bits, et transmet les données converties à R et R+1. Drapeaux ER : BCD S+1 S Binaire R+1 R Le contenu des mots S et/ou S+1 n’est pas en format BCD. Le canal DM indirectement adressé n’existe pas (le contenu du canal *DM n’est pas en BCD ou la limite de la zone DM a été dépassée). EQ : 7-19-4 ON lorsque le résultat est zéro. DOUBLE BINARY-TO-DOUBLE BCD -- BCDL(59) Symboles à contacts Zones de données d’opérandes S : Premier mot source (binaire) BCDL(59) @BCDL(59) S S R R IR, SR, AR, DM, HR, LR R : Premier mot de résultat Limitations IR, SR, AR, DM, HR, LR Cette instruction n’est disponible que sur les CPM2A/CPM2C. Lorsque le contenu de S dépasse 05F5E0FF, le résultat converti dépasse 99999999 et BCDL(59) n’est pas exécutée. Dans ce cas, le contenu de R et R+1 ne varie pas. 379 Chapitre 7-19 Instructions de conversion DM 6144 à DM 6655 ne peuvent pas être utilisés pour R. Description Drapeaux BCDL(59) convertit le contenu binaire à 32 bits de S et S+1 dans huit digits de données en format BCD, et transmet les données converties vers R et R+1. ER : Binaire S+1 S BCD R+1 R Le contenu de R et R1 dépasse 99999999. Le canal DM indirectement adressé n’existe pas (le contenu du canal *DM n’est pas en BCD ou la limite de la zone DM a été dépassée). EQ : 7-19-5 ON lorsque le résultat est zéro. 4-TO-16 DECODER -- MLPX(76) Zones de données d’opérandes S : Mot d’origine Symboles à contacts IR, SR, AR, DM, HR, TC, LR MLPX(76) @MLPX(76) S S Di Di R R Di : Indicateur de digit IR, SR, AR, DM, HR, TC, LR, # R : Premier mot de résultat IR, SR, AR, DM, HR, LR Limitations Les deux digits de droite de Di doivent être compris entre 0 et 3. Tous les mots de résultat doivent être dans la même zone de données. DM 6144 à DM 6655 ne peuvent pas être utilisés pour R. Description Lorsque la condition d’exécution est OFF, MLPX(76) n’est pas exécutée. Lorsque la condition d’exécution est ON, MLPX(76) convertit jusqu’à quatre digits hexadécimaux de quatre bits de S en valeurs décimales de 0 à 15, dont chacune est utilisée pour indiquer la position d’un bit. Le bit dont le numéro correspond à chaque valeur convertie est alors mis sur ON dans un mot de résultat. Lorsque plus d’un digit est spécifié, un bit de chacun des mots successifs, à partir de R, est mis sur ON (voir exemples ci-dessous). L’exemple suivant concerne une opération de décodage à un digit, à partir du digit numéro 1 de S ; la valeur de Di est ici 0001. Mot d’origine C Bit C (bit numéro 12) mis sur ON. Premier mot de résultat 0 380 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 Chapitre 7-19 Instructions de conversion Le premier digit et le nombre de digits à convertir sont indiqués dans Di. Lorsque DI contient un nombre de digits supérieur au nombre de digits restant en S (en comptant à partir du premier digit indiqué), les digits restant sont recalculés à partir du début de S. Le mot final nécessaire pour mémoriser le résultat converti (R plus le nombre de digits à convertir) doit être dans la même zone de données que R : lorsque deux digits sont convertis, l’adresse du dernier mot d’une zone de données ne peut être spécifiée ; lorsque trois digits sont convertis, les deux derniers mots d’une zone de données ne peuvent être spécifiés. Indicateur de digit Les digits de Di sont définis comme indiqué ci-dessous. Nombre de digits : 3 2 1 0 Spécifie le premier digit à convertir (0 à 3) Nombre de digits à convertir (0 à 3) 0 : 1 digit 1 : 2 digits 2 : 3 digits 3 : 4 digits Non utilisé (mis à zéro) Les exemples ci-dessous contiennet des valeurs Di et les conversions obtenues, de digit à mot. Di: 0010 Di: 0030 S S 0 R 1 R+1 0 R 1 R+1 2 2 R+2 3 3 R+3 Di: 0031 Di: 0023 S 0 Drapeaux ER : S R 0 R 1 R+1 1 R+1 2 R+2 2 R+2 3 R+3 3 L’indicateur de digits n’est pas défini ou R plus le nombre de digits dépasse une zone de données. Le canal DM indirectement adressé n’existe pas (Content of *DM word est not BCD ou la limite de la zone DM a été dépassée). 381 Chapitre 7-19 Instructions de conversion Exemple Le programme qui suit convertit les digits 1 à 3 de DM 0020 en positions de bits et fait passer à l’état ON les bits correspondants de trois mots successifs à partir de HR 10. Le digit 0 n’est pas converti. 00000 MLPX(76) Adresse DM 0020 00000 00001 #0021 Instruction R : HR 10 DM 0020 DM 0020 DM 0020 00 01 02 DM 0020 DM 0020 DM 0020 DM 0020 03 04 05 06 1 1 1 DM 0020 DM 0020 DM 0020 DM 0020 DM 0020 07 08 09 10 11 1 0 1 1 0 DM 0020 DM 0020 DM 0020 DM 0020 12 13 14 15 0 0 0 0 7-19-6 Non converti 15 6 0 00000 DM # HR HR 10 S : DM 0020 Opérandes LD MLPX(76) R+1 : HR 11 0020 0021 10 R+2 : HR 12 HR 1000 HR 1001 HR 1002 0 0 0 HR 1100 HR 1101 HR 1102 0 0 0 HR 1200 HR 1201 HR 1202 1 0 0 HR 1003 HR 1004 HR 1005 HR 1006 0 0 0 0 HR 1103 HR 1104 HR 1105 HR 1106 0 0 0 1 HR 1203 HR 1204 HR 1205 HR 1206 0 0 0 0 HR 1007 HR 1008 HR 1009 HR 1010 HR 1011 0 0 0 0 0 HR 1107 HR 1108 HR 1109 HR 1110 HR 1111 0 0 0 0 0 HR 1207 HR 1208 HR 1209 HR 1210 HR 1211 0 0 0 0 0 HR 1012 HR 1013 HR 1014 HR 1015 0 0 0 1 HR 1112 HR 1113 HR 1114 HR 1115 0 0 0 0 HR 1212 HR 1213 HR 1214 HR 1215 0 0 0 0 16-TO-4 ENCODER -- DMPX(77) Zones de données d’opérandes Symboles à contacts SB : Premier mot source IR, SR, AR, DM, HR, TC, LR DMPX(77) @DMPX(77) SB SB R R Di Di R : Mot de résultat IR, SR, AR, DM, HR, LR Di : Indicateur de digit IR, SR, AR, DM, HR, TC, LR, # Limitations Les deux digits de droite de Di doivent être compris entre 0 et 3. Tous les mots sources doivent être dans la même zone de données. DM 6144 à DM 6655 ne peuvent pas être utilisés pour SB, R ou Di. Description Lorsque la condition d’exécution est OFF, DMPX(77) n’est pas exécutée. Lorsque la condition d’exécution est ON, DMPX(77) détermine la position du bit à l’état ON le plus haut dans S, le code sous forme d’une valeur hexadécimale à un digit correspondant au numéro de bit à l’état ON le plus haut, puis transfère cette valeur hexadécimale au digit spécifié dans R. Les digits devant recevoir le résultat sont spécifiés dans Di et correspondent également au nombre de digits à coder. 382 Chapitre 7-19 Instructions de conversion L’exemple suivant concerne une opération de codage à un digit vers le digit numéro 1 de R ; Di est ici 0001. Premier mot source 0 0 0 1 0 0 0 1 0 0 0 1 0 1 1 0 C transféré pour indiquer le bit numéro 12 comme le bit à l’état ON le plus haut Mot de résultat C Jusqu’à quatre digits de quatre mots sources successifs, à partir de S, peuvent être codés ; les digits écrits dans R sont ordonnés à partir du premier digit spécifié. Lorsque Di contient un nombre de digits supérieur au nombre de digits restants en R (en comptant à partir du premier digit spécifié), les digits restant sont recalculés à partir du début de R. Le mot final à convertir (S plus le nombre de digits à convertir) doit être dans la même zone de données que SB. Indicateur de digit Les digits contenus dans Di sont définis comme indiqué ci-dessous. Nombre de digits : 3 2 1 0 Spécifie le premier digit devant recevoir les données converties (0 à 3). Nombre de mots à convertir (0 à 3) 0 : 1 mot 1 : 2 mots 2 : 3 mots 3 : 4 mots Non utilisé. Les exemples ci-dessous contiennent des valeurs Di et les conversions obtenues, de digit à mot. Di: 0011 Di: 0030 R R S 0 S 0 S+1 1 S+1 1 2 S+2 2 3 S+3 3 Di: 0013 Di: 0032 R R Drapeaux ER : 0 S 0 S S+1 1 S+1 1 2 S+2 2 3 S+3 3 Indicateur de digits non défini, ou S plus le nombre de digits dépasse une zone de données. Le contenu d’un mot source est zéro. Le canal DM indirectement adressé n’existe pas (le contenu du canal *DM n’est pas en BCD ou la limite de la zone DM a été dépassée). 383 Chapitre 7-19 Instructions de conversion Exemple Lorsque 00000 est sur ON, le schéma suivant code les mots IR 200 et 201 dans les deux premiers digits de HR 10 puis code LR 10 et 11 dans les deux derniers digits de HR 10. Bien que l’état de chaque bit de mot source ne soit pas indiqué, il est supposé que le bit à l’état 1 (ON) montré ici est le bit à l’état ON le plus haut dans le mot. 00000 DMPX(77) Adresse Instruction 200 00000 00001 LD DMPX(77) HR 10 Opérandes 00000 HR # 200 10 0010 LR HR # 10 10 0012 #0010 DMPX(77) 00002 LR 10 HR 10 #0012 IR 200 IR 201 01000 01100 : : 01011 1 01109 1 01012 0 01110 0 : : : : : : 01015 0 01115 0 HR 10 LR 11 LR 10 LR 1100 LR 1000 : : : : B Digit 1 9 Digit 2 1 Digit 3 8 LR 1108 1 LR 1002 0 : : Digit 0 : LR 1001 1 LR 1109 0 : : : LR 1115 0 LR 1015 0 7-19-7 DMPX(77) 7-SEGMENT DECODER -- SDEC(78) Zones de données d’opérandes Symboles à contacts S : Mot d’origine (binaire) IR, SR, AR, DM, HR, TC, LR SDEC(78) @SDEC(78) S S Di Di D D Di : Indicateur de digit IR, SR, AR, DM, HR, TC, LR, # D : Premier mot de destination IR, SR, AR, DM, HR, LR Limitations Di doit être dans les limites des valeurs indiquées ci-dessous. Tous les mots de destination doivent être dans la même zone de données. DM 6144 à DM 6655 ne peuvent pas être utilisés pour D. Description Lorsque la condition d’exécution est OFF, SDEC(78) n’est pas exécutée. Lorsque la condition d’exécution est ON, SDEC(78) convertit le(s) bit(s) spécifié(s) de S en code d’affichage équivalent à 8 bits et 7 segments et place ce dernier dans le(s) mot(s) de destination à partir de D. 384 Chapitre 7-19 Instructions de conversion Tous ou partie des digits de S peuvent être convertis dans l’ordre, à partir du premier digit spécifié. Le premier digit, le nombre de digits à convertir et la moitié de D devant recevoir le premier afficheur à 7 segments (les 8 bits de droite ou de gauche) sont spécifiés dans Di. Lorsque plusieurs digits sont spécifiés, ils sont ordonnés à partir de la moitié spécifiée de D, chacun exigeant deux digits. Lorsque Di contient un nombre de digits supérieur au nombre de digits restant en S (en comptant à partir du premier digit spécifié), les digits restant sont racalculés à partir du début de S. Indicateur de digit Les digits de Di sont définis comme indiqué ci-dessous. Nombre de digits : 3 2 1 0 Spécifie le premier digit de S à convertir (0 à 3). Nombre de digits à convertir (0 à 3) 0 : 1 digit 1 : 2 digits 2 : 3 digits 3 : 4 digits Première moitié de D à utiliser. 0 : 8 bits de droite (1ère moitié) 1 : 8 bits de gauche (2ème moitié) Non utilisé ; mis à zéro. Les exemples ci-dessous contiennent les valeurs Di et le résultat de la conversion de 4 digits binaires en afficheurs à 7 segments. Di: 0011 Digits S 0 1 Di: 0030 D Digits S D 1ère moit. 0 1ère moit. 2ème moit. 1 2ème moit. 2 2 3 3 D+1 1ère moit. 2ème moit. Di: 0112 Digits S D 0 1ère moit. 1 2ème moit. 2 3 D+1 Di: 0130 Digits S 0 1 2 3 D 1ère moit. 2ème moit. D+1 1ère moit. 1ère moit. 2ème moit. 2ème moit. D+2 1ère moit. 2ème moit. 385 Chapitre 7-19 Instructions de conversion Exemple L’exemple qui suit montre les données obtenues. Les lettres en minuscules indiquent quels bits correspondent à quels segments du code affiché à 7 segments. Le tableau ci-dessous contient les données initiales et le résultat de la conversion pour tous les digits hexadécimaux. 00000 @ SDEC(78) DM 0010 LR 07 200 LR 07 a IR 200 DM 0010 f Bit 00 1 a 1 1 b 22 0 1 c 0 23 0 1 d 0 20 0 1 e 21 0 1 f 0 22 0 1 g 0 23 1 0 20 0 21 1 22 1 0 23 1 0 20 1 21 0 0 22 1 0 23 1 0 1 0 x100 0 x101 0 x102 0 0 x103 1 : 2ème digit 0 0 : 1er digit 1 2 0 ou 1 : 0 Bits 00 à 07 1 Bits 08 à 15. 3 Non utilisés. Digit 386 20 0 21 8 Bit 07 Données initiales Bits -- g g e b c d 0 Code converti (segments) f e d c b Afficheur a 0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 0 0 1 0 0 1 1 0 0 0 0 2 0 0 1 0 0 0 1 1 0 0 1 1 3 0 0 1 1 0 0 1 1 0 0 1 1 4 0 1 0 0 0 0 1 1 0 1 0 0 5 0 1 0 1 0 0 1 1 0 1 0 1 6 0 1 1 0 0 0 1 1 0 1 0 1 7 0 1 1 1 0 0 1 1 0 1 1 1 8 1 0 0 0 0 0 1 1 1 0 0 0 9 1 0 0 1 0 0 1 1 1 0 0 1 A 1 0 1 0 0 1 0 0 0 0 0 1 B 1 0 1 1 0 1 0 0 0 0 1 0 C 1 1 0 0 0 1 0 0 0 0 1 1 D 1 1 0 1 0 1 0 0 0 1 0 0 E 1 1 1 0 0 1 0 0 0 1 0 1 F 1 1 1 1 0 1 0 0 0 1 1 0 Chapitre 7-19 Instructions de conversion Drapeaux ER : Indicateur de digit incorrect, ou dépassement de la zone de données de destination. Le canal DM indirectement adressé n’existe pas (le contenu du canal *DM n’est pas en BCD ou la limite de la zone DM a été dépassée). 7-19-8 ASCII CONVERT -- ASC(86) Zones de données d’opérandes S : Mot d’origine Symboles à contacts IR, SR, AR, DM, HR, TC, LR ASC(86) @ASC(86) S S Di Di D D Di : Indicateur de digit Limitations IR, SR, AR, DM, HR, TC, LR, # D : Premier mot de destination IR, SR, AR, DM, HR, LR Les Di doivent être dans les valeurs données ci-dessous. Tous les mots de destination doivent être dans la même zone de données. DM 6144 à DM 6655 ne peuvent pas être utilisés pour D. Description Lorsque la condition d’exécution est OFF, ASC(86) n’est pas exécutée. Lorsque la condition d’exécution est ON, ASC(86) convertit le(s) digit(s) indiqué(s) de S en code de 8 bits ASCII équivalent et le place dans le(s) mot(s) de destination commençant par D. N’importe lequel ou tous les digits dans S peuvent être convertis dans l’ordre du premier digit indiqué. Le premier digit, le nombre de digits à convertir et la moitié de D pour recevoir le premier code ASCII (8 bits extrême droite ou extrême gauche) sont indiqués en Di. Lorsque des digits multiples sont indiqués, ils seront placés dans l’ordre à partir de la moitié indiquée de D, chacun exigeant deux digits. Lorsque plus de digits sont indiqués que ceux restant en S (à partir du premier digit indiqué), d’autres digits seront utilisés en recommençant par la fin, au début de S. Rem. Se reporter à l’Annexe G pour un tableau des caractères ASCII. Indicateur de digit Les digits de Di sont placés comme montré ci-dessous. Nombre de digits : 3 21 0 Indique le premier digit à convertir (0 à 3). Nombre de digits à convertir (0 à 3) 0 : 1 digit 1 : 2 digits 2 : 3 digits 3 : 4 digits Première moitié de D à utiliser. 0 : 8 bits extrême droite (1ère moitié) 1 : 8 bits extrême gauche (2ème moitié) Parité 0 : aucune 1 : paire 2 : impaire 387 Chapitre 7-19 Instructions de conversion Quelques exemples de valeurs Di et de conversions de binaire à 4 bits vers le code ASCII à 8 bits. Di : 0011 S 0 1 Di : 0030 D S D 1ère moit. 0 1ère moit. 2ème moit. 1 2ème moit. 2 2 3 3 D+1 1ère moit. 2ème moit. Di : 0112 S Di : 0130 D 0 1ère moit. 1 2ème moit. 0 1 D 1ère moit. 2ème moit. 2 2 3 S D+1 3 D+1 1ère moit. 1ère moit. 2ème moit. 2ème moit. D+2 1ère moit. 2ème moit. Parité Le bit extrême gauche de chaque caractère ASCII (2 digits) peut être automatiquement ajusté à la parité paire ou impaire. Lorsqu’aucune parité n’est indiquée, le bit extrême gauche est toujours zéro. Lorsque la parité paire est indiquée, le bit extrême gauche est ajusté de sorte que tout le nombre de bits ON soit égal, par exemple, une fois ajusté à la parité paire, ASCII “31” (00110001) soit “B1” (10110001 : bit de parité ON pour créer un digit pair de bits ON) ; ASCII “36” (00110110) sera “36” (00110110 : bit de parité OFF parce que le nombre de bits ON est déjà égal). L’état du bit de parité n’affecte pas la signification du code ASCII. Lorsque l’imparité est indiquée, le bit extrême gauche de chaque caractère ASCII est ajusté de sorte qu’il y ait un nombre impair de bits ON. Drapeaux ER : Indicateur de digit incorrect, ou zone de données pour la destination dépassée. Le canal DM indirectement adressé n’existe pas (le contenu du canal *DM n’est pas en BCD ou la limite de la zone DM a été dépassée). 388 Chapitre 7-19 Instructions de conversion 7-19-9 ASCII-TO-HEXADECIMAL -- HEX(----) Zones de données d’opérandes S : Premier mot source Symboles à contacts IR, SR, AR, DM, HR, TC, LR, # HEX(----) @HEX(----) S S Di Di D D Di : Indicateur de digit Limitations IR, SR, AR, DM, HR, TC, LR, # D : Mot de destination IR, SR, AR, DM, HR, LR Cette instruction est disponible seulement dans CPM2A/CPM2C/SRM1(-V2). Les Di doivent être dans les valeurs données ci-dessous. Tous les mots sources doivent être dans la même zone de données. Les octets dans les mots sources doivent contenir l’équivalent du code ASCII des valeurs hexadécimales : 30 à 39 (0 à 9) ou 41 à 46 (A à F). DM 6144 à DM 6655 ne peuvent pas être utilisés pour D. Description Lorsque la condition d’exécution est OFF, HEX(----) n’est pas exécutée. Lorsque la condition d’exécution est ON, HEX(----) convertit le(s) octet(s) indiqué(s) du code ASCII des mots sources en hexadécimaux équivalent et les placent en D. Jusqu’à 4 codes ASCII peuvent êtr commencés à être convertis avec le premier octet indiqué de S. Les valeurs hexadécimales converties sont alos placées dans D dans l’ordre du digit indiqué. Le premier octet (8 bits extrême droite ou extrême gauche), le nombre d’octets à convertir et le digit de D pour recevoir la première valeur hexadécimale sont indiqués en Di. Lorsque des octets multiples sont indiqués, ils sont convertis dans l’ordre à partir de la moitié indiquée de S et puis en S+1 et S+2, au besoin. Lorsque plus de digits sont indiqués que ceux qui restent dans D (à partir du premier digit indiqué), d’autres digits restant seront commencés à être utilisés en arrière au début de D. Les digits de D qui ne recoivent pas des données converties ne seront pas changés. Indicateur de digit Les digits de Di sont placés comme montré ci-dessous. Nombre de digits : 3 2 1 0 Indique le premier digit de D à utiliser (0 à 3). Nombre d’octets à convertir (0 à 3) 0 : 1 octet (code ASCII à 2 digits) 1 : 2 octets 2 : 3 octets 3 : 4 octets Premier octet de S à utiliser. 0 : 8 bits extrême droite (1er octet) 1 : 8 bits extrême gauche (2ème octet) Parité 0 : aucune 1 : paire 2 : impaire 389 Chapitre 7-19 Instructions de conversion Quelques exemples de valeurs de Di et de conversion de 8 bits ASCII en 4 bits hexadécimales qu’ils produisent sont montrés ci-dessous : Di: 0011 Di: 0030 S D S D 1er octet 0 1er octet 0 2ème octet 1 2ème octet 1 2 2 S+1 3 3 1er octet 2ème octet Di: 0023 Di: 0133 S D S 1er octet 0 1er octet D 2ème octet 1 2ème octet 0 2 S+1 1 S+1 3 2 1er octet 1er octet 2ème octet 2ème octet 3 S+2 1er octet 2ème octet Tableau des codes ASCII Le tableau suivant montre les codes ASCII avant conversion et les valeurs hexadécimales après conversion. Se reporter à l’Annexe G pour un tableau des caractères ASCII. Données originales Code ASCII Données converties Etat du bit (Voir Rem.) Digit Bits 30 * 0 1 1 0 0 0 0 0 0 0 0 0 31 * 0 1 1 0 0 0 1 1 0 0 0 1 32 * 0 1 1 0 0 1 0 2 0 0 1 0 33 * 0 1 1 0 0 1 1 3 0 0 1 1 34 * 0 1 1 0 1 0 0 4 0 1 0 0 35 * 0 1 1 0 1 0 1 5 0 1 0 1 36 * 0 1 1 0 1 1 0 6 0 1 1 0 37 * 0 1 1 0 1 1 1 7 0 1 1 1 38 * 0 1 1 1 0 0 0 8 1 0 0 0 39 * 0 1 1 1 0 0 1 9 1 0 0 1 41 * 1 0 1 0 0 0 1 A 1 0 1 0 42 * 1 0 1 0 0 1 0 B 1 0 1 1 43 * 1 0 1 0 0 1 1 C 1 1 0 0 44 * 1 0 1 0 1 0 0 D 1 1 0 1 45 * 1 0 1 0 1 0 1 E 1 1 1 0 46 * 1 0 1 0 1 1 0 F 1 1 1 1 Rem. Le bit extrême gauche de chaque code ASCII est ajusté à la parité. Parité 390 Le bit extrême gauche de chaque caractère ASCII (2 digits) est automatiquement ajusté à la parité paire ou impaire. Sans la parité, le bit extrême gauche devrait toujours être zéro. Avec une parité impaire ou paire, le bit extrême gauche de chaque caractère ASCII doit être ajusté de sorte qu’il y ait un impair ou même un nombre de bits ON. Lorsque la parité du code ASCII dans S n’est pas conforme à la parité indiquée en Di, le drapeau ER (SR 25503) sera allumée et l’instruction ne sera pas exécutée. Chapitre 7-19 Instructions de conversion Drapeaux ER : Indicateur incorrect de digit, ou zone de données pour la destination dépassée. Les mots de source ne contiennent pas les données ASCII qui peuvent être converties en hexadécimal : plage de valeurs de 0 à 9 ou A à F. Le canal DM indirectement adressé n’existe pas (le contenu du canal *DM n’est pas en BCD ou la limite de la zone DM a été dépassée). Exemple Dans l’exemple suivant, le 2ème octet de LR 10 et le 1er octet de LR 11 sont convertis en valeurs hexadécimales et ces valeurs sont écrites aux premiers et deuxièmes octets de IR 200. 00000 @HEX(----) LR 10 HR 10 200 Adresse Instruction 00000 00001 LR HR LD @HEX(----) 10 10 200 Opérandes 00000 HR 10 0 1 1 0 LR 12 3 5 3 4 LR 11 4 2 3 2 LR 10 3 1 3 0 Conversion en hexadécimal 200 0 0 2 1 7-19-10 SCALING -- SCL(66) Symboles à contacts Zones de données d’opérandes S : Mot de source SCL(66) @SCL(66) S S P1 P1 R R IR, SR, AR, DM, HR, TC, LR, # P1 : Premier mot de paramètre IR, SR, AR, DM, HR, TC, LR R : Mot de résultat IR, SR, AR, DM, HR, LR Limitations Cette instruction est disponible seulement pour CPM2A/CPM2C/SRM1(-V2). S doit être BCD. P1 à P1+3 doivent être dans la même zone de données. DM 6144 à DM 6655 ne peuvent pas être utilisés de P1 à P1+3 ou R. Description SCL(66) est utilisée pour convertir linéairement une valeur hexadécimale à 4 digits en valeur à 4 digits en BCD. A la différence, BCD(24), qui convertit une valeur hexadécimale à 4 digits en son équivalent à 4 digits en BCD (Shex " SBCD), SCL(66) peut convertir la valeur hexadécimale selon un rapport linéaire indiqué. La ligne de conversion est définie par deux points indiqués dans les mots P1 de paramètre à P1+3. Lorsque la condition d’exécution est OFF, SCL(66) n’est pas exécutée. Lorsque la condition d’exécution est ON, SCL(66) convertit la valeur hexadécimale à 4 digits dans S en valeur à 4 digits en BCD sur la ligne définie par les points (P1, P1+1) et (P1+2, P1+3) et place les résultats dans R. Le résultat est arrondi au nombre entier supérieur le plus proche. Si le résultat est inférieur à 0000, alors 391 Chapitre 7-19 Instructions de conversion 0000 est écrit dans R et si le résultat est supérieur à 9999, alors 9999 est écrit dans R. Le tableau suivant montre les fonctions et les plages des mots de paramètre : Paramètre Fonction Plage Commentaires P1 Point BCD n# 1 (AY) 0000 à 9999 --- P1+1 Point Hex. n# 1 (AX) 0000 à FFFF P1+2 Point BCD n# 2 0000 à 9999 (BY) Point Hex. n# 2 (BX) 0000 à FFFF Ne pas placer P1+1=P1+3. --- P1+3 Ne pas placer P1+3=P1+1. Le schéma suivant montre le mot de source, S, converti en D selon la ligne définie par les points (AY, AX) et (BY, BX). Valeur après conversion (BCD) BY R AY AX S Valeur avant conversion (Hexadécimale) BX Les résultats peuvent être calculés en convertissant d’abord toutes les valeurs en BCD et en utilisant ensuite la formule suivante : Résultats = BY -- [(BY -- AY)/(BX -- AX) $ (BX -- S)] Drapeaux ER : La valeur en P1+1 est égale à P1+3. Le canal DM indirectement adressé n’existe pas (le contenu du canal *DM n’est pas en BCD ou la limite de la zone DM a été dépassée). P1 et P1+3 ne sont pas dans la même zone de données, ou toute autre erreur de réglage. EQ : Exemple ON lorsque le résultat R, est 0000. Lorsque 00000 est ON dans l’exemple suivant, les données de base en BCD en DM 0100 (#0100) sont converties en hexadécimales selon les paramètres en DM 0150 à DM 0153. Le résultat (#0512) est alors écrit dans DM 0200. 00000 @SCL(66) DM 0100 DM 0150 Instruction 00000 00001 LD @SCL(66) Opérandes 00000 DM DM DM DM 0200 392 Adresse DM 0150 DM 0151 0010 0005 DM 0152 DM 0153 0050 0019 0100 0150 0200 DM 0100 0100 DM 0200 0512 Chapitre 7-19 Instructions de conversion 7-19-11 SIGNED BINARY TO BCD SCALING -- SCL2(----) Symboles à contacts Zones de données d’opérandes S : Mot de source SCL2(----) @SCL2(----) S S P1 P1 R R IR, SR, AR, DM, HR, LR P1 : Premier mot de paramètre IR, SR, AR, DM, HR, LR R : Mot de résultat IR, SR, AR, DM, HR, LR Limitations Cette instruction est disponible seulement dans CPM2A/CPM2C. S doit être BCD. P1 à P1+2 doivent être dans la même zone de données. DM 6144 à DM 6655 ne peuvent pas être utilisés pour R. Description SCL2(----) est utilisée pour convertir linéairement une valeur hexadécimale signée à 4 digits en valeur à 4 digits en BCD. A la différence de BCD(24), qui convertit une valeur hexadécimale à 4 digits en son équivalent à 4 digits en BCD (Shex " SBCD), SCL2(----) peut convertir la valeur hexadécimale signée selon un rapport linéaire indiqué. La ligne de conversion est définie par l’interception sur l’axe x et la pente de la ligne indiquée dans les mots P1 de paramètre à P1+2. Lorsque la condition d’exécution est OFF, SCL2(----) n’est pas exécutée. Lorsque la condition d’exécution est ON, SCL2(----) convertit la valeur hexadécimale signée à 4 digits dans S en valeur à 4 digits en BCD sur la ligne définie par l’interception sur l’axe x, (P1, 0) et la pente (P1+2 % P1+1) et place les résultats en R. Le résultat est arrondi au nombre entier supérieur le plus proche. Lorsque le résultat est négatif, alors CY est placé à 1. Lorsque le résultat est inférieur à --9999, alors --9999 est écrit à R. Lorsque le résultat est plus grand que 9999, alors 9999 est écrit à R. Le tableau suivant montre les fonctions et les plages des mots de paramètre : Paramètre P1 Fonction Plage 8000 à 7FFF (--32,768 à 32,767) P1+1 Interception sur l’axe x (hex. signée) &X (hex. signée) P1+2 &Y (BCD) 0000 à 9999 8000 à 7FFF (--32,768 à 32,767) 393 Chapitre 7-19 Instructions de conversion Le diagramme suivant montre le mot d’origine, S, converti en R selon la ligne définie par le point (P1, 0) et la pente &Y/&X. Valeur (BCD) après conversion &Y &X R Valeur avant conversion (signé hexadécimal) S Interception sur l’axe x Le résultat peut être calculé en convertissant d’abord toutes les valeurs hexadécimales signées en BCD et en utilisant ensuite la formule suivante : R= Drapeaux ER : ΔY × (S–P1) ΔX Le canal DM indirectement adressé n’existe pas (le contenu du canal *DM n’est pas en BCD ou la limite de la zone DM a été dépassée). P1 et P1+2 ne sont pas dans la même zone de données, ou tout autre erreur de réglage. Exemple CY : ON lorsque le résultat, R, est negatif. EQ : ON lorsque le résultat, R, est 0000. Lorsque 05000 est ON dans l’exemple suivant, les données de base binaires signées dans 200 (#FFE2) sont converties en BCD selon les paramètres en DM 0000 à DM 0002. Le résultat (#0018) est alors écrit à LR 00 et CY est ON parce que le résultat est négatif. 05000 @SCL2(----) 200 DM 0000 Adresse Instruction 00000 00001 LD @SCL2(----) Opérandes 05000 LR 00 DM LR 2 DM 0000 DM 0001 FFFD 0003 DM 0002 0002 FFFD IR 200 FFE2 LR 00 0018 200 0000 00 3 FFE2 CY=1 --0018 R = 0002 × (FFE2–FFFD) 0003 = 2 × (–1B) = –18 3 394 Le drapeau CY est ON parce que le résultat de conversion est négatif. Chapitre 7-19 Instructions de conversion 7-19-12 BCD TO SIGNED BINARY SCALING -- SCL3(----) Symboles à contacts Zones de données d’opérandes S : Mot de source SCL3(----) @SCL3(----) S S P1 P1 R R IR, SR, AR, DM, HR, LR P1 : Premier mot de paramètre IR, SR, AR, DM, HR, LR R : Mot de résultat IR, SR, AR, DM, HR, LR Limitations Cette instruction est disponible seulement dans CPM2A/CPM2C. P1+1 doit être BCD. P1 à P1+4 doivent être dans la même zone de données. DM 6144 à DM 6655 ne peuvent pas être utilisés pour R. Description SCL3(----) est utilisée pour convertir linéairement une valeur à 4 digits en BCD en hexadécimale signée à 4 digits. SCL3(----) convertit la valeur en BCD selon un rapport linéaire indiqué. La ligne de conversion est définie par l’interception sur l’axe y et la pente de la ligne indiquée dans les mots P1 de paramètre à P1+2. Lorsque la condition d’exécution est OFF, SCL3(----) n’est pas exécutée. Lorsque la condition d’exécution est ON, SCL3(----) convertit la valeur à 4 digits en BCD dans S en valeur hexadécimale signée à 4 digits sur la ligne définie par l’interception sur l’axe y (0, P1) et la pente (P1+2 % P1+1) et place les résultats en R. Il est arrondi au nombre entier supérieur le plus proche. Le contenu de S peut être de 0000 à 9999, mais S sera traité comme valeur négative si CY=1, ainsi la portée utile de S est réellement --9999 à 9999. Etre sûr de placer le signe désiré dans CY en utilisant STC(40) ou CLC(41). Les mots P1+3 et P1+4 de paramètre définissent des limites supérieures et inférieures pour le résultat. Lorsque le résultat est plus grand que la limite supérieure dans P1+3, alors la limite supérieure est écrite dans R. Lorsque le résultat est plus petit que la limite inférieure dans P1+4, alors la limite inférieure est écrite dans R. Rem. Les limites supérieures et inférieures pour une unité de l’entrée 12 bits analogique seraient 07FF et F800. Le tableau suivant montre les fonctions et les plages des mots de paramètre : Paramètre P1 Fonction Plage 8000 à 7FFF (--32 768 à 32 767) P1+1 Interception sur l’axe y (signé hex.) &X (BCD) P1+2 &Y (signé hex.) 8000 à 7FFF (--32 768 à 32 767) P1+3 Limite supérieure (signé hex.) Limite inférieure (signé hex.) 8000 à 7FFF (--32 768 à 32 767) P1+4 0000 à 9999 8000 à 7FFF (--32 768 à 32 767) 395 Chapitre 7-19 Instructions de conversion Le schéma suivant montre le mot de source, S, converti en R selon la ligne définie par le point (0, P1) et la pente &Y/&X. Valeur après conversion (Signé hexadécimal) Limite supérieure &Y &X R Interception sur l’axe y S Valeur avant conversion (BCD) Limite inférieure Le résultat peut être calculé en convertissant d’abord toutes les valeurs de BCD en binaire signé et en utilisant ensuite la formule suivante : R= Drapeaux ER : ΔY × S + P1 ΔX Le canal DM indirectement adressé n’existe pas (le contenu du canal *DM n’est pas en BCD ou la limite de la zone DM a été dépassée). Le contenu de S n’est pas une valeur BCD. 396 CY : CY n’est pas changé par SCL3(----), (CY montre le signe de S avant exécution). EQ : ON lorsque le résultat, R, est 0000. Chapitre 7-19 Instructions de conversion Exemple L’état de 00101 détermine le signe du mot de source de BCD dans l’exemple suivant. Lorsque 00101 est allumé, alors le mot de source est négatif. Lorsque 00100 est allumé, les données de base en BCD dans LR 02 sont converties en binaire signé selon les paramètres en DM 0000 à DM 0004. Le résultat est alors écrit dans DM 0100. Dans la deuxième conversion, l’équivalent binaire signé de --1035 est plus petit que la limite inférieure indiquée en DM 0004, ainsi la limite inférieure est écrite à DM 0100. 25313 (Always ON) Adresse CLC(41) 00000 00001 00002 00101 00004 00005 00101 STC(40) 00100 @SCL3(----) Instruction Opérandes LD CLC(41) LD STC(40) LD SCL3(----) LR 02 25313 00101 00100 LR DM DM DM 0000 DM 0100 02 0000 0100 Signé hex. CY=1 CY=0 6 3 0005 BCD DM 0000 DM 0001 0005 0003 DM 0002 DM 0003 DM 0004 0006 07FF F800 LR 02 0100 LR 02 1035 DM 0100 00CD DM 0100 F800 7-19-13 HOURS-TO-SECONDS -- SEC(----) Symboles à contacts SEC(----) @SEC(----) S S R R 000 000 Zones de données d’opérandes S : Début mot source (BCD) IR, SR, AR, DM, HR, TC, LR R : Début résultat de mot (BCD) IR, SR, AR, DM, HR, TC, LR 000 : Aucune fonction 000 Limitations Cette instruction est disponible seulement pour CPM2A/CPM2C. S et S+1 doivent être dans la même zone de données. R et R+1 doivent être dans la même zone de données. S et S+1 doivent être BCD et doivent être dans le format approprié de heures/minutes/secondes. DM 6144 à DM 6655 ne peuvent pas être utilisés pour R. Description SEC(----) est utilisée pour convertir la notation de temps dans heures/minutes/ secondes en équivalent en secondes justes. Pour les données de base, les secondes sont indiquées dans les bits 00 à 07 et les minutes sont indiquées dans les bits 08 à 15 de S. Les heures sont indiquées dans S+1. Le maximum est ainsi de 9 999 heures, de 59 minutes et de 59 secondes. 397 Chapitre 7-19 Instructions de conversion Le résultat est émis en R et R+1. La valeur maximale obtenue est 35 999 999 secondes. Drapeaux ER : S et S+1 ou R et R+1 ne sont pas dans la même zone de données. S et/ou S+1 ne contiennent pas le BCD. Le nombre de secondes et/ou de minutes excède 59. Le canal DM indirectement adressé n’existe pas (le contenu du canal *DM n’est pas en BCD ou la limite de la zone DM a été dépassée). EQ : Exemple ON lorsque le résultat est zéro. Lorsque 00000 est OFF (lorsque la condition d’exécution est ON), l’instruction suivante convertirait les heures, les minutes et les secondes données en HR 12 et HR 13 en secondes et sauvegarderait les résultats en DM 0100 et DM 0101 comme montré. 00000 Adresse SEC(----) HR 12 DM 0100 000 HR 12 HR 13 3 2 2 8 0 1 7 5 2 815 hr, 32 min, 07 s DM 0100 DM 0101 5 1 9 0 2 1 7 3 10 135 927 s 00000 00001 Instruction Opérandes LD NOT SEC(----) 00000 HR DM 12 0100 000 7-19-14 SECONDS-TO-HOURS -- HMS(----) Symboles à contacts HMS(----) @HMS(----) S S R R 000 000 Zones de données d’opérandes S : Début mot source (BCD) IR, SR, AR, DM, HR, TC, LR R : Début résultat de mot (BCD) IR, SR, AR, DM, HR, TC, LR 000 : Aucune fonction 000 Limitations Cette instruction est disponible seulement pour CPM2A/CPM2C. S et S+1 doivent être dans la même zone de données. R et R+1 doivent être dans la même zone de données. S et S+1 doivent être BCD et doivent avoir lieu entre 0 et 35 999 999 secondes. DM 6144 à DM 6655 ne peuvent pas être utilisés pour R. Description HMS(----) est utilisée pour convertir la notation de temps en secondes en équivalent dans heures/minutes/secondes. Le nombre de secondes indiquées dans S et S+1 est converti en heures/minutes/secondes et placé dans R et R+1. Pour les résultats, les secondes sont placées dans les bits 00 à 07 et les minutes sont placées dans les bits 08 à 15 de R. Les heures sont placées dans R+1. Le maximum est de 9 999 heures, 59 minutes et secondes. 398 Chapitre 7-19 Instructions de conversion Drapeaux ER : S et S+1 ou R et R+1 ne sont pas dans la même zone de données. S et/ou S+1 ne contiennent pas le BCD ou excèdent 36 000 000 secondes. Le canal DM indirectement adressé n’existe pas (le contenu du canal *DM n’est pas en BCD ou la limite de la zone DM a été dépassée). EQ : Exemple ON lorsque le résultat est zéro. Lorsque 00000 est OFF (lorsque la condition d’exécution est ON), l’instruction suivante convertit les secondes données en HR 12 et HR 13 en heures, minutes et secondes et sauvegarde les résultats en DM 0100 et DM 0101 comme montré. 00000 Adresse HMS(----) HR 12 DM 0100 00000 00001 Instruction LD NOT HMS(----) 00000 HR DM 000 HR 12 HR 13 5 1 9 0 2 1 7 3 DM 0100 DM 0101 3 2 2 8 0 1 7 5 7-19-15 Opérandes 10 135 927 s 12 0100 000 2 815 hs, 32 min, 07 s 2’s COMPLEMENT -- NEG(----) Symboles à contacts NEG(----) @NEG(----) S S R R 000 000 Zones de données d’opérandes S : Mot source IR, SR, AR, DM, HR, TC, LR, # R : Mot de résultat IR, SR, AR, DM, HR, LR 000 : Non utilisé. Placer à 000. Limitations Cette instruction est disponible seulement pour CPM2A/CPM2C/SRM1(-V2). DM 6144 à DM 6655 ne peuvent pas être utilisés pour R. Description Convertit le contenu hexadécimal à quatre digits du mot de source (S) en complément à 2 et produit le résultat au mot de résultat (R). Cette opération est identique en soustrayant S de 0000 et produisant le résultat à R ; elle calculera la valeur absolue des données binaires signées négatives. Lorsque le contenu de S est 0000, le contenu de R est également 0000 après exécution et EQ (SR 25506) sera ON. Lorsque le contenu de S est 8000, le contenu de R est également 8000 après exécution et UF (SR 25405) sera ON. Rem. Se reporter au paragraphe 2-14 Calcul avec données binaires signées pour de plus amples informations. Drapeaux ER : Le canal DM indirectement adressé n’existe pas (le contenu du canal *DM n’est pas en BCD ou la limite de la zone DM a été dépassée). EQ : ON lorsque le contenu de R est zéro après exécution ; autrement OFF. 399 Chapitre 7-19 Instructions de conversion Exemple UF : ON lorsque le contenu de S est 8000 ; autrement OFF. N: ON lorsque le bit 15 de R est ON ; autrement OFF. L’exemple suivant montre comment utiliser NEG(----) pour trouver le complément à 2 du contenu de DM 0005 et produire le résultat IR 105. 00100 NEG(----) DM 0005 105 Adresse 00000 00001 Instruction #0000 400 00100 DM 000 -- Opérandes LD NEG(----) #001F Contenu de DM 0005. #FFE1 Sortie vers IR 105. 0005 105 000 Chapitre 7-20 Instructions de calcul sur les valeurs BCD 7-20 Instructions de calcul sur les valeurs BCD 7-20-1 SET CARRY - STC(40) Symboles à contacts STC(40) @STC(40) Lorsque la condition d’exécution est OFF, STC(40) ne s’exécute pas. Lorsque la condition d’exécution est ON, STC(40) passe CY (SR 25504) sur ON. Rem. Se reporter à Annexe B Utilisation des drapeaux d’erreurs et mathématiques où se trouve un tableau listant les instructions allouées à CY. 7-20-2 CLEAR CARRY - CLC(41) Symboles à contacts CLC(41) @CLC(41) Lorsque la condition d’exécution est OFF, CLC(41) ne s’exécute pas. Lorsque la condition d’exécution est ON, CLC(41) passe CY (SR 25504) sur OFF. CLEAR CARRY est utilisée pour mettre à “0” (mettre à l’état OFF) CY (SR 25504). Rem. Se reporter à Annexe B Utilisation des drapeaux d’erreurs et mathématiques où se trouve un tableau listant les instructions allouées à CY. 7-20-3 BCD ADD - ADD(30) Zones de données d’opérandes Au : Mot cumulande (BCD) Symboles à contacts IR, SR, AR, DM, HR, TC, LR, # ADD(30) @ADD(30) Au Au Ad Ad R R Ad : Mot cumulateur (BCD) IR, SR, AR, DM, HR, TC, LR, # R : Mot de résultat IR, SR, AR, DM, HR, LR Limitations DM 6144 à DM 6655 ne peuvent pas être utilisés pour R. Description Lorsque la condition d’exécution est OFF, ADD(30) ne s’exécute pas. Lorsque la condition d’exécution est ON, ADD(30) additionne le contenu de Au, Ad et CY, et insère le résultat dans R. CY est sélectionné si le résultat est supérieur à 9999. Au + Ad + CY Drapeaux ER : CY R Au et/ou Ad n’est pas une valeur BCD. Le canal DM indirectement adressé n’existe pas (le contenu du canal *DM n’est pas en BCD ou la limite de la zone DM a été dépassée). CY : ON lorsque le résultat contient un report. EQ : ON lorsque le résultat est égal à 0. 401 Chapitre 7-20 Instructions de calcul sur les valeurs BCD Exemple Lorsque 00002 est égal à ON, le programme représenté par le schéma suivant met CY à zéro avec CLC(41), ajoute le contenu d’IR 200 à une constante (6103), insère le résultat dans DM 0100, et transfère tous les zéros ou 0001 à DM 0101 selon l’état de CY (25504). Ceci garantit que tout report depuis le dernier digit sera préservé dans R+1 afin que tout le résultat puisse ensuite être traité comme une données à huit digits. Adresse TR 0 00002 CLC(41) ADD(30) 00000 00001 00002 00003 Instruction LD OUT CLC(41) ADD(30) Opérandes TR 200 # DM #6103 DM 0100 25504 MOV(21) 00004 00005 AND MOV(21) #0001 DM 0101 25504 MOV(21) 00006 00007 00008 LD AND NOT MOV(21) #0000 DM 0101 00002 0 200 6103 0100 25504 # DM TR 0001 0101 0 25504 # DM 0000 0101 Bien que deux ADD(30) puissent être utilisés ensemble pour exécuter une addition BCD à huit digits, ADDL(54) a été conçue spécialement dans cette intention. 7-20-4 BCD SUBTRACT - SUB(31) Zones de données d’opérandes Mi : Mot diminuende (BCD) Symboles à contacts IR, SR, AR, DM, HR, TC, LR, # SUB(31) @SUB(31) Mi Mi Su Su R R Su : Mot diminuteur (BCD) IR, SR, AR, DM, HR, TC, LR, # R : Mot de résultat IR, SR, AR, DM, HR, LR Limitations DM 6144 à DM 6655 ne peuvent pas être utilisés pour R. Description Lorsque la condition d’exécution est OFF, SUB(31) ne s’exécute pas. Lorsque la condition d’exécution est ON, SUB(31) soustrait le contenu de Su et CY de Mi, et insère le résultat dans R. Si le résultat est négatif, CY est sélectionné et le complément de 10 du résultat est mis dans R. Pour convertir ce complément de 10 en résultat réel, effectuer une soustraction entre le contenu de R et zéro (voir exemple ci--dessous). Mi - Su - CY Drapeaux ER : CY R Mi et/ou Su n’est pas une valeur BCD. Le canal DM indirectement adressé n’existe pas (le contenu du canal *DM n’est pas en BCD ou la limite de la zone DM a été dépassée). 402 Chapitre 7-20 Instructions de calcul sur les valeurs BCD ! Attention CY : ON lorsque le résultat est négatif, c’est--à--dire, lorsque Mi est inférieur à Su plus CY. EQ : ON lorsque le résultat est égal à 0. Veiller à supprimer le drapeau de report avec CLC(41) avant d’exécuter SUB(31) si son état précédent n’est pas nécessaire, et à vérifier l’état de CY après une soustraction avec SUB(31). Si CY est à l’état ON suite à l’exécution de SUB(31) le résultat est négatif, le résultat est transmisen complément de 10 du résultat obtenu. Pour convertir cette valeur en résultat réel, soustraire la valeur contenu dans R de 0. Exemple Lorsque 00002 est ON, le programme à contacts qui suit met à zéro CY, soustrait le contenu de DM 0100 et CY du contenu de 201 et insère le résultat dans HR 10. Si CY est sélectionné en exécutant SUB(31), le résultat de HR 10 est soustrait de zéro (à noter que CLC(41) est nécessaire, ici également, pour obtenir un résultat précis), le résultat est réinséré dans HR 10, et HR 1100 est mis sur ON pour indiquer un résultat négatif. Si CY n’est pas sélectionné en exécutant SUB(31), le résultat est positif, la seconde soustraction n’est pas exécutée, et HR 1100 n’est pas mis sur ON. HR 1100 est programmé comme un bit d’auto-maintien de façon à ce qu’une modification de l’état de CY ne le mettra pas sur OFF lorsque le programme sera balayé de nouveau. Cet exemple utilise des formes sur changement d’état de SUB(31) afin de n’exécuter l’opération de soustraction que lorsque 00002 est mis sur ON. Lorsqu’une autre opération de soustraction est exécutée, 00002 doit être mis sur OFF sur au moins un cycle (en remettant à zéro HR 1100) puis remis sur ON. TR 0 00002 CLC(41) @SUB(31) Première soustraction 201 DM 0100 HR 10 25504 CLC(41) @SUB(31) #0000 Seconde soustraction HR 10 HR 10 25504 HR 1100 HR 1100 Mis sur ON pour indiquer un résultat négatif. 403 Chapitre 7-20 Instructions de calcul sur les valeurs BCD Adresse Instruction 00000 00001 00002 00003 LD OUT CLC(41) @SUB(31) Opérandes 00002 0 TR DM HR 00004 00005 00006 00007 00008 00009 00010 00011 AND CLC(41) @SUB(31) LD LD OR AND LD OUT # HR HR TR HR HR 201 0100 10 25504 0000 10 10 0 25504 1100 --1100 La première et la seconde soustraction indiquées dans ce schéma sont illustrées ci--dessous en utilisant des exemples de données pour 201 et DM 0100. Rem. L’opération SUB(31) implique la soustraction de Su et de CY de10 000 plus Mi. Pour des résultats positifs, le digit de gauche est tronqué. Pour des résultats négatifs, le complément de 10 est calculé. La procédure utilisée pour l’obtention du résultat approprié est la suivante : Première soustraction IR 201 1029 DM 0100 - 3452 CY -0 HR 10 7577 (1029 + (10000 - 3452)) CY 1 (résultat négatif) Seconde soustraction 0000 HR 10 -7577 -0 CY HR 10 2423 (0000 + (10000 - 7577)) CY 1 (résultat négatif) Dans le cas qui précède, le programme doit mettre HR 1100 sur ON pour indiquer que la valeur contenue dans HR 10 est négative. 7-20-5 BCD MULTIPLY - MUL(32) Zones de données d’opérandes Symboles à contacts Md : Multiplicande (BCD) IR, SR, AR, DM, HR, TC, LR, # MUL(32) @MUL(32) Md Md Mr Mr R R Mr : Multiplicateur (BCD) Limitations 404 IR, SR, AR, DM, HR, TC, LR, # R : Premier mot de résultat IR, SR, AR, DM, HR LR DM 6144 à DM 6655 ne peuvent pas être utilisés pour R. Chapitre 7-20 Instructions de calcul sur les valeurs BCD Description Lorsque la condition d’exécution est OFF, MUL(32) ne s’exécute pas. Lorsque la condition d’exécution est ON, MUL(32) multiplie Md par le contenu de Mr, et insère le résultat en R et R+1. Md X Mr R +1 Exemple R Lorsqu’IR 00000 est ON avec le programme suivant, les contenus d’IR 013 et de DM 0005 sont multipliés et le résultat est inséré dans HR 07 et GR 08. Des exemples de données et de calculs sont montrés dans le programme suivant : 00000 MUL(32) 013 DM 0005 Adresse 00000 00001 Instruction HR 07 X 0 Drapeaux 3 Md : IR 013 3 5 6 0 Mr : DM 0005 0 2 5 R+1 : HR 08 0 0 8 ER : 3 Opérandes LD MUL(32) 00000 DM HR 013 0005 07 R : HR 07 9 0 0 Md et/ou Mr n’est pas une valeur BCD. Le canal DM indirectement adressé n’existe pas (le contenu du canal *DM n’est pas en BCD ou la limite de la zone DM a été dépassée). 7-20-6 CY : ON lorsque le résultat contient un report. EQ : ON lorsque le résultat est égal à 0. BCD DIVIDE - DIV(33) Zones de données d’opérandes Symboles à contacts Dd : Mot dividende (BCD) IR, SR, AR, DM, HR, TC, LR, # DIV(33) Dr : Mot diviseur (BCD) Dd Dr R Limitations IR, SR, AR, DM, HR, TC, LR, # R : Premier mot de résultat (BCD) IR, SR, AR, DM, HR, LR R et R+1 peuvent se trouver dans la même zone de données. DM 6144 à DM 6655 ne peuvent pas être utilisés pour R. 405 Chapitre 7-20 Instructions de calcul sur les valeurs BCD Description Lorsque la condition d’exécution est OFF, DIV(33) ne s’exécute pas et le programme passe à l’instruction suivante. Lorsque la condition d’exécution est ON, Dd est divisé par Dr et le résultat est inséré dans R et R + 1 : le quotient dans R et le reste dans R + 1. Reste Quotient R+1 R Dr Drapeaux ER : Dd Dd ou Dr n’est pas une valeur BCD. Le canal DM indirectement adressé n’existe pas (le contenu du canal *DM n’est pas BCD ou la limite de la zone DM a été dépassée). EQ : Exemple ON lorsque le résultat est égal à 0. Lorsqu’IR 00000 est ON avec le programme suivant, le contenu d’IR 216 est divisé par le contenu d’HR 09 et le résultat est inséré dans DM 0017 et DM 0018. Des exemples de données et de calculs sont montrés dans le programme suivant. 00000 Adresse DIV(33) 216 00000 00001 Instruction Opérandes LD DIV(33) 00000 HR 09 DM 0017 Quotient 1 0 7-20-7 R : DM 0017 1 5 0 Dd : HR 09 0 0 3 3 HR DM Reste 216 09 0017 R + 1 : DM 0018 0 0 0 2 Dd : IR 216 4 5 2 DOUBLE BCD ADD - ADDL(54) Zones de données d’opérandes Symboles à contacts Au : 1er terme de l’addition (BCD) IR, SR, AR, DM, HR, TC, LR ADDL(54) @ADDL(54) Au Au Ad Ad R R Ad : 2e terme de l’addition (BCD) Limitations 406 IR, SR, AR, DM, HR, TC, LR R : 1er canal de résultat IR, SR, AR, DM, HR, LR DM 6144 à DM 6655 ne peuvent pas être utilisés pour R. Chapitre 7-20 Instructions de calcul sur les valeurs BCD Description Lorsque la condition d’exécution est OFF, ADDL(54) ne s’exécute pas. Lorsque la condition d’exécution est ON, ADDL(54) additionne les contenus de CY aux valeurs à 8 digits dans Au et Au+1, et insère le résultat dans R et R+1. CY ne sera positionné que si le résultat est supérieur à 99999999. Au + 1 Au Ad + 1 Ad + CY Drapeaux ER : CY R+1 R Au et/ou Ad n’est pas une valeur BCD. Le canal DM indirectement adressé n’existe pas (le contenu du canal *DM n’est pas BCD ou la limite de la zone DM a été dépassée). Exemple CY : ON lorsque le résultat contient un report. EQ : ON lorsque le résultat est égal à 0. Lorsque 00000 est ON, la section du programme suivant additionne les deux nombres à 12 digits, le premier contenu deLR 00 à LR 02 et le deuxième de DM 0010 à DM 0012. Le résultat est inséré dans HR 10 à HR 13. Les 8 premiers digits en partant de la droite des deux nombres sont additionnés en utilisant ADDL(54), c’est--à--dire, les contenus de LR 00 et LR 01 sont additionnés à DM 0010 et DM 0011 et le résultat est inséré dans HR 10 et HR 11. La seconde addition additionne les 4 digits en partant de la gauche de chaque nombre en utilisant ADD(30) et inclut la retenue de la première addition. La dernière instruction, ADB(50) (voir 7-21-1 BINARY ADD - ADB(50)) additionne deux constantes toutes à zéro et place la retenue de la deuxième addition dans HR 13. 00000 Adresse Instruction 00000 00001 00002 LD CLC(41) @ADDL(54) Opérandes CLC(41) @ADDL(54) LR 00 DM 0010 HR 10 @ADD(30) 00003 DM 0012 HR 12 #0000 #0000 HR 13 00004 LR DM HR 00 0010 10 LR DM HR 02 0012 12 # # HR 0000 0000 13 @ADD(30) LR 02 @ADB(50) 00000 @ADB(50) 407 Chapitre 7-20 Instructions de calcul sur les valeurs BCD 7-20-8 DOUBLE BCD SUBTRACT - SUBL(55) Zones de données d’opérandes Mi : 1er terme de la soustraction (BCD) Symboles à contacts IR, SR, AR, DM, HR, TC, LR, # SUBL(55) @SUBL(55) Mi Mi Su Su R R Su : 2e terme de la soustraction (BCD) IR, SR, AR, DM, HR, TC, LR, # R : 1er canal de résultat IR, SR, AR, DM, HR, LR Limitations DM 6144 à DM 6655 ne peuvent pas être utilisés pour R. Description Lorsque la condition d’exécution est OFF, SUBL(55) ne s’exécute pas. Lorsque la condition d’exécution est ON, SUBL(55) soustrait CY et le contenu à 8 digits de Su et Su+1 de la valeur à 8 digits de Mi et Mi+1, et insère le résultat dans R et R+1. Lorsque le résultat est négatif, CY est activé et le complément de 10 du résultat est inséré dans R. Pour convertir le complément de 10 en résultat réel, soustraire le contenu de R de 0. Puisqu’une constante à 8 digits ne peut pas être directement saisie, utiliser l’instruction BSET(71) (voir 7-17-4 BLOCK SET BSET(71)) pour créer une constante à 8 digits. Mi + 1 Mi Su + 1 Su CY Drapeaux ER : CY R+1 R Mi, M+1,Su, ou Su+1 ne sont pas des valeurs BCD. Le canal DM indirectement adressé n’existe pas (le contenu du canal *DM n’est pas BCD ou la limite de la zone DM a été dépassée). 408 CY : ON lorsque le résultat est négatif, c’est--à--dire, lorsque Mi est inférieur à Su. EQ : ON lorsque le résultat est égal à 0. Chapitre 7-20 Instructions de calcul sur les valeurs BCD Exemple L’exemple qui suit est très similaire à une soustraction à un seul mot. Dans cet exemple, toutefois, BSET(71) est nécessaire pour supprimer le contenu de DM 0000 et de DM 0001 de façon à permettre de soustraire un résultat négatif de 0 (l’entrée d’une constante à 8 digits est impossible). TR 0 00003 CLC(41) Première soustraction @SUBL(55) HR 00 220 DM 0100 25504 @BSET(71) #0000 DM 0000 DM 0001 CLC(41) Seconde soustraction @SUBL(55) DM 0000 DM 0100 DM 0100 25504 HR 0100 HR 0100 Adresse 00000 00001 00002 00003 Instruction LD OUT CLC(41) @SUBL(55) Mis sur ON pour indiquer un résultat négatif Opérandes TR HR DM 00004 00005 AND @BSET(71) # DM DM 00003 0 00 220 0100 25504 0000 0000 0001 Adresse 00006 00007 00008 00009 00010 00011 00012 Instruction Opérandes CLC(41) @SUBL(55) LD LD OR AND LD OUT DM DM DM TR HR 0000 0100 0100 0 25504 0100 HR 0100 409 Chapitre 7-20 Instructions de calcul sur les valeurs BCD 7-20-9 DOUBLE BCD MULTIPLY - MULL(56) Zones de données d’opérandes Md : Premier mot multiplicande (BCD) Symboles à contacts IR, SR, AR, DM, HR, TC, LR MULL(56) @MULL(56) Md Md Mr Mr R R Mr : Premier mot multiplicateur (BCD) IR, SR, AR, DM, HR, TC, LR R : Premier mot de résultat IR, SR, AR, DM, HR LR Limitations DM 6144 à DM 6655 ne peuvent pas être utilisés pour R. Description Lorsque la condition d’exécution est OFF, MULL(56) ne s’exécute pas. Lorsque la condition d’exécution est ON, MULL(56) multiplie les contenus à 8 digits de Md et Md+1 par les contenus de Mr et Mr+1, et insère le résultat dans R à R+3. x R+3 Drapeaux ER : CY : EQ : R+2 Md + 1 Md Mr + 1 Mr R+1 R Md, Md+1,Mr, ou Mr+1 ne sont pas des valeurs BCD. Le canal DM indirectement adressé n’existe pas (le contenu du canal *DM n’est pas BCD ou la limite de la zone DM a été dépassée). ON lorsque le résultat contient un report. ON lorsque le résultat est égal à 0. 7-20-10 DOUBLE BCD DIVIDE - DIVL(57) Zones de données d’opérandes Dd : Premier mot dividende (BCD) Symboles à contacts IR, SR, AR, DM, HR, TC, LR DIVL(57) @DIVL(57) Dd Dd Dr Dr R R Dr : Premier mot diviseur (BCD) IR, SR, AR, DM, HR, TC, LR R : Premier mot de résultat IR, SR, AR, DM, HR LR Limitations DM 6144 à DM 6655 ne peuvent pas être utilisés pour R. Description Lorsque la condition d’exécution est OFF, DIVL(57) ne s’exécute pas. Lorsque la condition d’exécution est ON, DIVL(57) les contenus à 8 digits de Dd et D+1 est divisé par les contenus de Dr et Dr+1 et le résultat est inséré dans R et R+3 : le quotient dans R et R+1, le reste dans R+2 et R+3. Reste R+3 Dr+1 410 Quotient R+2 Dr R+1 R Dd+1 Dd Chapitre 7-21 Instructions de calcul binaire Drapeaux ER : Dr et Dr+1 contiennent 0. Dd, Dd+1, Dr ou Dr+1 ne sont pas des valeurs BCD. Le canal DM indirectement adressé n’existe pas (le contenu du canal *DM n’est pas BCD ou la limite de la zone DM a été dépassée). EQ : ON lorsque le résultat est égal à 0. 7-21 Instructions de calcul binaire 7-21-1 BINARY ADD - ADB(50) Zones de données d’opérandes Au : Mot cumulande (binaire) Symboles à contacts IR, SR, AR, DM, HR, TC, LR, # ADB(50) @ADB(50) Au Au Ad Ad R R Ad : Mot cumulateur (binaire) IR, SR, AR, DM, HR, TC, LR, # R : Mot de résultat IR, SR, AR, DM, HR, LR Limitations DM 6144 à DM 6655 ne peuvent pas être utilisés pour R. Description Lorsque la condition d’exécution est OFF, ADB(50) ne s’exécute pas. Lorsque la condition d’exécution est ON, ADB(50) additionne les contenus de Au, Ad et CY et insère le résultat dans R. CY est positionné si le résultat est supérieur à FFFF. Au + Ad + CY CY R ADB(50) peut aussi être utilisé pour additionner des données binaires signées. Avec CPM1A, CPM2A, CPM2C, et SRM1(-V2), les drapeaux de dépassement de capacité positif et négatif (SR 25404 and SR 25405) indiquent quand le résultat a dépassé la plus basse ou la plus haute limite de la plage de données binaires signées 16 bits. Drapeaux ER : Le canal DM indirectement adressé n’existe pas (le contenu du canal *DM n’est pas BCD ou la limite de la zone DM a été dépassée). CY : ON lorsque le résultat est supérieur à FFFF. EQ : ON lorsque le résultat est égal à 0. OF : ON lorsque le résultat dépasse +32 767 (7FFF). UF : ON lorsque le résultat est inférieur à -32 768 (8000). 411 Chapitre 7-21 Instructions de calcul binaire Exemple L’exemple suivant montre une addition à 4 digits avec CY utilisé pour insérer #0000 ou #0001 dans R+1 pour veiller à ce que chaque report soit préservé. Adresse TR 0 00000 00000 00001 00002 00003 CLC(41) ADB(50) Instruction LD OUT CLC(41) ADB(50) Opérandes TR 200 DM 0100 HR 10 DM HR =R 25504 00004 00005 MOV(21) #0000 HR 11 AND NOT MOV(21) = R+1 25504 MOV(21) #0001 HR 11 = R+1 00006 00007 00008 LD AND MOV(21) 00000 0 200 0100 10 25504 # HR TR 0000 11 0 25504 # HR 00001 11 Dans les cases ci--dessous, A6E2 + 80C5 = 127A7. Le résultat est un numéro à 5 digits, ainsi CY (SR 25504) = 1, et le contenu de R+1 devient #0001. A + 0 R+1 : HR 11 0 0 1 8 Au : IR 200 6 E 2 Ad : DM 0100 0 C 5 2 R : HR 10 7 A 7 Rem. Pour les calculs binaires signés, l’état des drapeaux UF et OF indique quand le résultat a dépassé la plage de données binaires signées (-32 768 (8000) à +32 767 (7FFF)). 7-21-2 BINARY SUBTRACT - SBB(51) Zones de données d’opérandes Symboles à contacts Mi : Mot minuende (binaire) IR, SR, AR, DM, HR, TC, LR, # SBB(51) @SBB(51) Mi Mi Su Su R R Su : Mot cumulateur (binaire) Limitations 412 IR, SR, AR, DM, HR, TC, LR, # R : Mot de résultat IR, SR, AR, DM, HR, LR DM 6144 à DM 6655 ne peuvent pas être utilisés pour R. Chapitre 7-21 Instructions de calcul binaire Description Lorsque la condition d’exécution est OFF, SBB(51) ne s’exécute pas. Lorsque la condition d’exécution est ON, SBB(51) soustrait les contenus de Su et CY de Mi et insère le résultat dans R. Lorsque le résultat est négatif, CY est activé et le complément 2 du résultat réel est inséré dans R. Mi - Su - CY CY R SBB(51) peut aussi être utilisé pour soustraire des données binaires signées. Avec CPM1A, CPM2A, CPM2C et SRM1(-V2), les drapeaux de dépassement de capacité positifi et négatif (SR 25404 and SR 25405) indiquent quand le résultat a dépassé la plus basse ou la plus haute limite de la plage de données binaires signées 16 bits. Drapeaux ER : CY : EQ : OF : UF : Exemple Le canal DM indirectement adressé n’existe pas (le contenu du canal *DM n’est pas BCD ou la limite de la zone DM a été dépassée). ON lorsque le résultat est négatif, c’est--à--dire, lorsque Mi est inférieur à Su plus CY. ON lorsque le résultat est égal à 0. ON lorsque le résultat dépasse +32 767 (7FFF). ON lorsque le résultat est inférieur à -32 768 (8000). L’exemple suivant montre une soustraction à 4 digits. Lorsque IR 00001 est ON, Les contenus de LR 00 et CY sont soustraits du contenu d’IR 002 et le résultat est écrit dans HR 01. CY est mis sur ON lorsque le résultat est négatif. Lorsque des données normales sont utilisées, un résultat négatif (binaire signé) peut être transformé en utilisation de données normale NEG(--). Se reporter au paragraphe 7-19-15 COMPLEMENT - NEG(--) de 2 pour de plus amples informations. Adresse 00001 00000 00001 00002 00003 CLC(41) SBB(51) Instruction LD OUT CLC(41) SBB(51) Opérandes TR 00001 1 LR HR 200 00 01 200 LR00 HR 01 Dans le cas suivant, les contenus de LR 00 (#7A03) et CY sont soustraits d’IR 002 (#F8C5) puisque le résultat est positif, CY est mis à 0. Si le résultat était négatif, CY serait placé à 1. Pour les données normales (non-signées), le résultat doit être converti en complément de 2. F Mi : IR 002 8 C 5 - 7 Su : LR 00 A 0 3 - 0 7 0 0 CY = 0 (de CLC(41)) 0 R : HR 01 E C 2 Rem. Pour les calculs binaires signés, l’état des drapeaux UF et OF indique quand le résultat a dépassé la plage de données binaires signées (-32 768 (8000) à +32 767 (7FFF)). 413 Chapitre 7-21 Instructions de calcul binaire 7-21-3 BINARY MULTIPLY - MLB(52) Zones de données d’opérandes Md : Mot multiplicande (binaire) Symboles à contacts IR, SR, AR, DM, HR, TC, LR, # MLB(52) @MLB(52) Md Md Mr Mr R R Mr : Mot multiplicateur (binaire) IR, SR, AR, DM, HR, TC, LR, # R : Premier mot de résultat IR, SR, AR, DM, HR LR Limitations DM 6144 à DM 6655 ne peuvent pas être utilisés pour R. MLB(52) ne peut pas être utilisé pour multiplier des données binaires signées. Description Lorsque la condition d’exécution est OFF, MLB(52) ne s’exécute pas. Lorsque la condition d’exécution est ON, MLB(52) multiplie le contenu de Md par le contenu de Mr, insère le résultat à 4 digits de droite dans R, et insère les 4 digits de gauche dans R+1. Md X Mr R +1 Drapeaux ER : EQ : R Le canal DM indirectement adressé n’existe pas (le contenu du canal *DM n’est pas BCD ou la limite de la zone DM a été dépassée). ON lorsque le résultat est égal à 0. 7-21-4 BINARY DIVIDE - DVB(53) Zones de données d’opérandes Dd : Mot dividende (binaire) Symboles à contacts IR, SR, AR, DM, HR, TC, LR, # DVB(53) @DVB(53) Dd Dd Dr Dr R R Dr : Mot diviseur (binaire) IR, SR, AR, DM, HR, TC, LR, # R : Premier mot de résultat IR, SR, AR, DM, HR LR Limitations DM 6144 à DM 6655 ne peuvent pas être utilisés pour R. DVB(53) ne peut pas être utilisé pour diviser des données binaires signées. Description Lorsque la condition d’exécution est OFF, DVB(53) ne s’exécute pas. Lorsque la condition d’exécution est ON, DVB(53) divise le contenu de Dd par le contenu de Dr et le résultat est inséré dans R et R+1 : le quotient dans R, le reste dans R+1. Dr 414 Quotient Reste R R+1 Dd Chapitre 7-22 Instructions mathématiques spéciales Drapeaux ER : Dr contient 0. Il n’existe pas de mot DM adresssé indirectement. (le contenu du canal *DM n’est pas BCD ou la limite de la zone DM a été dépassée). EQ : ON lorsque le résultat est égal à 0. 7-22 Instructions mathématiques spéciales 7-22-1 FIND MAXIMUM - MAX(--) Symboles à contacts Zones de données d’opérandes C : Données de contrôle MAX(--) @MAX(--) C C R1 R1 D D IR, SR, AR, DM, HR, TC, LR, # R1 : Premier mot de la plage IR, SR, AR, DM, HR, TC, LR D : Mot de destination IR, SR, AR, DM, HR, LR Limitations Cette instruction est applicable uniquement dans CPM2A/CPM2C. N peut être BCD entre 0001 et 9999. R1 et R1+N--1 peuvent être dans la même zone de données. DM 6144 à DM 6655 ne peuvent pas être utilisés pour D. Description Lorsque la condition d’exécution est OFF, MAX(--) ne s’exécute pas. Lorsque la condition d’exécution est ON, MAX(--) recherche les plages de mémoires de R1 à R1+N--1 pour l’adresse qui contient la valeur maximale et sort la valeur maximale dans le mot de destination (D). L’adresse s’identifie différemment dans la zone DM : 1, 2, 3... 1. Pour une adresse dans la zone DM, le mot adresse est écrit dans C+1. Par exemple, si l’adresse contenant la valeur maximale est DM 0014, alors #0114 est écrit dans D+1. 2. Pour une adresse dans une autre zone de données, le nombre d’adresses depuis le début de la recherche est écrit dans D+1. Par exemple, si l’adresse contenant la valeur maximale est IR 114 et le premier mot de la plage de recherche est IR 014, alors #0100 est écrit dans D+1. Lorsque le bit 14 de C est ON et que plus d’une adresse contient la même valeur maximale, la position la plus basse de l’adresse sera transmise à D+1. La position sera transmise comme une adresse de DM pour une zone DM qu’une position relative au premier mot de la plage pour toutes les autres zones. Le nombre de mots dans cette plage (N) est contenu dans les trois digits de droite de C, qui peuvent être des valeurs BCD entre 001 et 999. 415 Chapitre 7-22 Instructions mathématiques spéciales Lorsque le bit 15 de C est OFF, les données dans la plage sont traîtées comme un binaire non--signée et lorsqu’il est ON la données est traîtée comme une binaire signée. 15 14 13 12 11 00 C: Nombre de mots dans la plage (N : 001 à 999 BCD) Non utilisé - mis à zéro. Nom utilisé - mis à zéro. ! Attention Drapeaux Adresse de sortie du D+1 1 (ON) : Oui. 0 (OFF) : Non. Lorsque le bit 14 de C est ON, les valeurs d’environ #8000 sont traîtées comme des nombres négatifs, alors le résultat diffèrera selon le type de données spécifié. Veiller à ce que le type de données correct soit spécifié. ER : Il n’existe pas pas de mot DM adressé indirectement. (le contenu du canal *DM n’est pas BCD ou la limite de la zone DM a été dépassée). R1 et R1+N--1 ne sont pas dans la même zone. EQ : 7-22-2 ON lorsque la valeur maximale est égale à #0000. FIND MINIMUM - MIN(--) Symboles à contacts Zones de données d’opérandes C : Données de contrôle MIN(--) @MIN(--) C C R1 R1 D D IR, SR, AR, DM, HR, TC, LR, # R1 : Premier mot de la plage IR, SR, AR, DM, HR, TC, LR D : Mot de destination IR, SR, AR, DM, HR, LR Limitations Cette instruction est applicable uniquement dans CPM2A/CPM2C. N peut être une valeur BCD entre 0001 et 9999. R1 et R1+N--1 peuvent être dans la même zone de données. DM 6144 à DM 6655 ne peuvent pas être utilisés pour D. Description Lorsque la condition d’exécution est OFF, MIN(--) ne s’exécute pas. Lorsque la condition d’exécution est ON, MIN(--) recherche la plage de mémoire depuis R1 jusqu’à R1+N--1 pour l’adresse qui contient la valeur minimale et sort la valeur minimale vers le mot de destination (D). L’adresse s’identifie différemment dans la zone DM : 1, 2, 3... 416 1. Pour une adresse dans la zone DM, le mot adresse est écrit dans C+1. Par exemple, lorsque l’adresse contenant la valeur minimale est DM 0114, alors #0114 est écrit dans D+1. 2. Pour une adresse dans une autre zone de données, le nombre d’adresses depuis le début de la recherche est écrit dans D+1. Par exemple, lorsque l’adresse contenant la valeur minimale est IR 114 et le premier mot de la plage de recherche est IR 014, alors #0100 est écrit dans D+1. Chapitre 7-22 Instructions mathématiques spéciales Lorsque le bit 14 de C est ON et que plus d’une adresse contient la même valeur minimale, la position la plus basses de l’adresse sera transmise à D+1.La position sera transmise comme une adresse DM pour une zone DM, mais comme une position relative au premier mot de la plage pour toutes les autres zones. Le nombre de mots dans la plage (N) est contenu dans les trois digits de droite de C, qui peuvent être des valeurs BCD entre 001 et 999. Lorsque le bit 15 de C est OFF, la données de la plage est traîtée comme une binaire non--signée et lorsqu’il est ON la donnée est traîtée comme une binaire signée. 15 14 13 12 11 00 C: Nombre de mots dans la plage (N : 001 à 999 BCD) Non utilisé - mis à zéro. Non utilisé - mis à zéro. ! Attention Drapeaux Adresse de sortie pour D+1 1 (ON) : Oui. 0 (OFF) : Non. Lorsque le bit 14 de C est ON, les valeurs d’environ #8000 sont traîtées comme des nombres négatifs, alors le résultat diffèrera selon le type de données spécifié. Veillez à ce que le type de données correct soit spécifié. ER : Le canal DM indirectement adressé n’existe pas (le contenu du canal *DM n’est pas BCD ou la limite de la zone DM a été dépassée). R1 et R1+N--1 ne sont pas dans la même zone de données. EQ : 7-22-3 ON lorsque la valeur minimale est égale à #0000. AVERAGE VALUE - AVG(--) Symboles à contacts AVG(--) Zones de données d’opérandes S : Mot source IR, SR, AR, DM, HR, TC, LR S N : Nombre de cycles N IR, SR, AR, DM, HR, TC, LR, # D D : Premier mot de destination IR, SR, AR, DM, HR, LR Limitations Cette instruction est applicable uniquement dans CPM2A/CPM2C. S peut être hexadécimal. N peut être une valeur BCD de #0001 à #0064. D et D+N+1 peuvent être dans la même zone de données. DM 6144 à DM 6655 ne peuvent pas être utilisés pour S, N, ou D à D+N+1. Description AVG(--) est utilisée pour calculer la valeur moyenne de S après N cycles. Lorsque la condition d’exécution est OFF, AVG(--) ne s’exécute pas. Chaque fois que AVG(--) s’exécute, le contenu de S est enregistré dans les deux mots D+2 à D+N+1. Lors de la première opération, AVG(--) écrit le contenu de S 417 Chapitre 7-22 Instructions mathématiques spéciales à D+2 ; lors de la seconde opération, il écrit le contenu de S à D+3, etc. Lors de la Nième opération, AVG(--) écrit le contenu de S et l’enregistre dans D+N+1, AVG(--) calcule la valeur moyenne enregistrée dans D+2 à D+N+1, et écrit la moyenne dans D. Le schéma suivant montre la fonction des mots D à D+N+1. D D+1 Valeur moyenne (après N opérations ou plus) utilisé par le système. D+2 D+3 Contenu de S depuis la 1ère op. de AVG(--) Contentu de S depuis la 2ème op. de AVG(--) D+N+1 Contentu de S depuis la Nème op. de AVG(--) Conseils d’utilisation La valeur moyenne est calculée en binaire. Veiller à ce que le contenu de S soit en binaire. N peut être une valeur BCD de #0001 à #0064. Lorsque le contenu de N !"#0065, AVG(--) fonctionnera avec N=64. La valeur moyenne sera arrondie à la valeur du nombre entier le plus proche. (0,5 est arrondi à 1) Positionner les contenus de D+1 à #0000 pour exécuter AVG(--) depuis le premier scan. Drapeaux ER : Le canal DM indirectement adressé n’existe pas (le contenu du canal *DM n’est pas BCD ou la limite de la zone DM a été dépassée). Une ou plusieurs opérandes ont été positionnées incorrectement. D et D+N+1 ne sont pas dans la même zone de données. Exemple 418 Dans l’exemple suivant, le contenu d’IR 200 est positionné à #0000 et donc augmenté de 1 à chaque cycle. Pour les deux premiers cycles, AVG(--) déplace le contenu d’IR 200 à DM 1002 et DM 1003. Lors du troisième cycle et suivants, Chapitre 7-22 Instructions mathématiques spéciales AVG(--) calcule la valeur moyenne des contenus de DM 1002 à DM 1004 et écrit la valeur moyenne à DM 1000. 00001 @MOV(21) Adresse Instruction 00000 00001 LD @MOV(21) Opérandes #0000 200 00001 # AVG(--) 200 00002 AVG(--) #0003 DM 1000 # DM 00003 00004 CLC(41) 0000 200 200 0003 1000 CLC(41) ADB(50) ADB(50) # 200 200 0001 200 #0001 200 7-22-4 IR 200 1er cycle 0000 2è cycle 0001 3è cycle 0002 4è cycle 0003 DM 1000 1er cycle 0000 2è cycle 0001 3è cycle 0001 4è cycle 0002 Moyenne DM 1001 DM 1002 DM 1003 DM 1004 0000 ----- 0000 0001 --- 0000 0001 0002 0003 0001 0002 utilisé par le syst. Prévision valeurs de IR 200 SUM - SUM(--) Symboles à contacts SUM(--) @SUM(--) C C R1 R1 D D Zones de données d’opérandes C : Données de contrôle IR, SR, AR, DM, HR, LR, # R1 : Premier mot de la plage IR, SR, AR, DM, HR, TC, LR D : Premier mot de destination IR, SR, AR, DM, HR, LR Limitations Cette instruction applicable uniquement dans CPM2A/CPM2C. Les 3 digits de droite de C peuvent être des valeurs BCD entre 001 et 999. DM 6144 à DM 6655 ne peuvent pas être utilisés pour D. Lorsque le bit 14 de C est OFF (sélectionner pour données BCD), toutes les données dans la plage R1 à R1+N--1 doivent être des valeurs BCD. Description Lorsque la condition d’exécution est OFF, SUM(--) ne s’exécute pas. Lorsque la condition d’exécution est ON, SUM(--) additionne les contenus des mots R1 à R1+N--1 ou les bits dans les mots R1 à R1+N/2-1 et transmet cette valeur aux mots de destination (D et D+1). Les données peuvent être additonnées comme binaire ou BCD et sera sorite dans la même forme. Les données binaires peuvent être à la fois signées ou non--signées. 419 Chapitre 7-22 Instructions mathématiques spéciales Les fonctions des bits dans C sont indiquées dans le schéma suivant et expliquées plus en détails ensuite. 15 14 13 12 11 00 C: Nombre d’articles dans la plage (N, BCD) Nombre de mots ou nombre de bits 001 à 999 Premier bit (lorsque le bit 13 est ON) 1 (ON) : Extrême droite 0 (OFF) : Extrême gauche Type de données 1 (ON) : Binaire 0 (OFF) : BCD Unités d’addition 1 (ON) : Bits 0 (OFF) : Mots Non utilisé - mis à zéro Nombre d’articles dans la plage Le nombre d’articles dans la plage (N) est contenu dans les 3 digits de droite de C, qui doivent être des valeurs BCD entre 001 et 999. Ce nombre indiquera le numéro des mots ou le numéro des bits selon les articles additionnés. Unités d’additions Les mots seront additionnés lorsque le bit 13 est OFF et les bits seront additionnés lorsque le bit 13 est ON. Lorsque les bits sont spécifiés, la plage peut commencer avec l’octet à l’extrême gauche ou à l’extrême droite de R1. L’octet à gauche de R1 ne sera pas additonné lorsque le bit 12 est ON. R1 R1+1 R1+2 MSB 1 3 5 LSB 2 4 6 R1+3 7 8 Les bits seront additionnés dans cet ordre lorsque le bit 12 est OFF : 1+2+3+4.... Les bits seront additionnés dans cet ordre lorsque le bit 12 est ON : 2+3+4.... Type de données La donnée dans la plage est traîtée comme une donnée binaire non--signée lorsque le bit 14 de C est ON et quand le bit 15 est OFF, et elle est traîtée comme une donnée binaire signée lorsque les deux bits 14 et 15 sont ON. La donnée dans la plage est traîtée comme une valeur BCD lorsque le bit 14 de C est OFF, sans regard sur l’état du bit 15. Drapeaux ER : Le canal DM indirectement adressé n’existe pas (le contenu du canal *DM n’est pas BCD ou la limite de la zone DM a été dépassée.) R1 et R1+N--1 ne sont pas dans la même zone de données. Le nombre d’articles dans C n’est pas une valeur BCD entre 001 et 999. La donnée additionnée n’est pas une valeur BCD lorsque BCD était désigné. EQ : 420 ON lorsque le résultat est égal à 0. Chapitre 7-23 Instructions logiques Exemple Dans l’exemple suivant, les contenus BCD des 8 mots de DM 0000 à DM 0007 sont additionnés lorsque IR 00001 est ON et le résultat est écrit dans DM 0010 et DM 0011. 00001 @SUM(--) Adresse Instruction 00000 00001 LD @SUM(--) #0008 DM 0000 Opérandes 00001 # DM DM DM 0010 DM 0000 DM 0001 DM 0002 DM 0003 0001 0002 0003 0004 DM 0004 DM 0005 DM 0006 DM 0007 0005 0006 0007 0008 DM 0010 DM 0011 0008 0000 0010 0036 0000 7-23 Instructions logiques 7-23-1 COMPLEMENT - COM(29) Symboles à contacts Zones de données d’opérandes COM(29) @COM(29) Wd Wd Wd : Mot complément IR, SR, AR, DM, HR, LR Limitations DM 6144 à DM 6655 ne peuvent pas être utilisés pour Wd. Description Lorsque la condition d’exécution est OFF, COM(29) ne s’exécute pas. Lorsque la condition d’exécution est ON, COM(29) efface tous les bits ON et positionne tous les bits OFF dans Wd. Conseils d’utilisation Le complément de Wd sera calculé à chaque cycle lorsque la forme simple de COM(29) est utilisée. Utiliser la forme sur changement de front (@COM(29)) ou combiner COM(29) avec DIFU(13) ou DIFD(14) pour calculer une seule fois le complément. Exemple 15 Original 1 00 0 0 1 1 0 0 1 1 0 0 1 1 0 0 15 Complément Drapeaux 0 1 00 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 ER : Le canal DM indirectement adressé n’existe pas (le contenu du canal *DM n’est pas BCD ou la limite de la zone DM a été dépassée.) EQ : ON lorsque le résultat est égal à 0. 421 Chapitre 7-23 Instructions logiques 7-23-2 LOGICAL AND - ANDW(34) Zones de données d’opérandes Symboles à contacts I1 : Entrée 1 IR, SR, AR, DM, HR, TC, LR, # ANDW(34) @ANDW(34) I1 I1 I2 I2 R R I2 : Entrée 2 IR, SR, AR, DM, HR, TC, LR, # R : Mot de résultat IR, SR, AR, DM, HR, LR Limitations DM 6144 à DM 6655 ne peuvent pas être utilisés pour R. Description Lorsque la condition d’exécution est OFF, ANDW(34) ne s’exécute pas. Lorsque la condition d’exécution est ON, ANDW(34) effectue un ET logique entre les contenus de I1 et I2 bit par bit et insère le résultat dans R. Exemple 15 E1 1 00 0 0 1 1 0 0 1 1 0 0 1 1 0 0 15 E2 0 00 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 15 0 R Drapeaux 1 00 ER : Le canal DM indirectement adressé n’existe pas (le contenu du canal *DM n’est pas BCD ou la limite de la zone DM a été dépassée). EQ : ON lorsque le résultat est égal à 0. 7-23-3 LOGICAL OR - ORW(35) Zones de données d’opérandes Symboles à contacts E1 : Entrée 1 IR, SR, AR, DM, HR, TC, LR, # Limitations 422 ORW(35) @ORW(35) I1 I1 I2 I2 R R E2 : Entrée 2 IR, SR, AR, DM, HR, TC, LR, # R : Mot de résultat IR, SR, AR, DM, HR, LR DM 6144 à DM 6655 ne peuvent pas être utilisés pour R. Chapitre 7-23 Instructions logiques Description Lorsque la condition d’exécution est OFF, ORW(35) ne s’exécute pas. Lorsque la condition d’exécution est ON, ORW(35) effectue un OU logique entre les contenus de I1 and I2 bit par bit et insères le résultat dans R. 15 Exemple I1 1 00 0 0 1 1 0 0 1 1 0 0 1 1 0 0 15 I2 0 00 1 0 1 0 1 0 1 0 1 0 1 0 1 0 15 R Drapeaux 1 1 1 00 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 ER : Le canal DM indirectement adressé n’existe pas (le contenu du canal *DM n’est pas BCD ou la limite de la zone DM a été dépassée). EQ : ON lorsque le résultat est égal à 0. 7-23-4 EXCLUSIVE OR - XORW(36) Zones de données d’opérandes E1 : Entrée 1 Symboles à contacts IR, SR, AR, DM, HR, TC, LR, # XORW(36) @XORW(36) I1 I1 I2 I2 R R E2 : Entrée 2 IR, SR, AR, DM, HR, TC, LR, # R : Mot de résultat IR, SR, AR, DM, HR, LR Limitations DM 6144 à DM 6655 ne peuvent pas être utilisés pour R. Description Lorsque la condition d’exécution est OFF, XORW(36) ne s’exécute pas. Lorsque la condition d’exécution est ON, XORW(36) effectue un OU exclusif entre les contenus de I1 et I2 bit par bit et insère le résultat dans R. 15 Exemple I1 1 00 0 0 1 1 0 0 1 1 0 0 1 1 0 0 15 I2 0 00 1 0 1 0 1 0 1 0 1 0 1 0 1 0 15 R Drapeaux 1 1 1 00 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 ER : Le canal DM indirectement adressé n’existe pas (le contenu du canal *DM n’est pas BCD ou la limite de la zone DM a été dépassée). EQ : ON lorsque le résultat est égal à 0. 423 Chapitre 7-24 Instructions d’incrémentation/décrémentation 7-23-5 EXCLUSIVE NOR - XNRW(37) Zones de données d’opérandes I1 : Entrée 1 Symboles à contacts IR, SR, AR, DM, HR, TC, LR, # XNRW(37) @XNRW(37) I1 I1 I2 I2 R R I2 : Entrée 2 IR, SR, AR, DM, HR, TC, LR, # R : Mot de résultat IR, SR, AR, DM, HR, LR Limitations DM 6144 à DM 6655 ne peuvent pas être utilisés pour R. Description Lorsque la condition d’exécution est OFF, XNRW(37) ne s’exécute pas. Lorsque la condition d’exécution est ON, XNRW(37) effectue un NOR exclusif entre les contenus de I1 et I2 bit par bit et insère le résultat dans R. 15 I1 1 00 0 0 1 1 0 0 1 1 0 0 1 1 0 0 15 I2 0 00 1 0 1 0 1 0 1 0 1 0 1 0 1 0 15 R Drapeaux ER : EQ : 0 1 1 00 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 Le canal DM indirectement adressé n’existe pas (le contenu du canal *DM n’est pas BCD ou la limite de la zone DM a été dépassée). ON lorsque le résultat est égal à 0. 7-24 Instructions d’incrémentation/décrémentation 7-24-1 BCD INCREMENT - INC(38) Symboles à contacts INC(38) @INC(38) Wd Wd Zones de données d’opérandes Wd : Mot croissant (BCD) IR, SR, AR, DM, HR, LR Limitations DM 6144 à DM 6655 ne peuvent pas être utilisés pour Wd. Description Lorsque la condition d’exécution est OFF, INC(38) ne s’exécute pas. Lorsque la condition d’exécution est ON, INC(38) incrémente à chaque Wd, sans affecter Carry (CY). Conseils d’utilisation Le contenu de Wd est incrémenté à chaque cyle lorsque la forme simple de INC(38) est utilisée. Utiliser la forme sur changement de front (@INC(38)) ou combiner INC(38) avec DIFU(13) ou DIFD(14) pour augmenter une seule fois Wd. Drapeaux ER : EQ : 424 Wd n’est pas une valeur BCD Le canal DM indirectement adressé n’existe pas (le contenu du canal *DM n’est pas BCD ou la limite de la zone DM a été dépassée). ON lorsque le résultat incrémenté est égal à 0. Chapitre 7-24 Instructions d’incrémentation/décrémentation 7-24-2 BCD DECREMENT - DEC(39) Symboles à contacts DEC(39) @DEC(39) Wd Wd Zones de données d’opérandes Wd : Mot décroissant (BCD) IR, SR, AR, DM, HR, LR Limitations DM 6144 à DM 6655 ne peuvent pas être utilisés pour Wd. Description Lorsque la condition d’exécution est OFF, DEC(39) ne s’exécute pas. Lorsque la condition d’exécution est ON, DEC(39) décrémente Wd, sans affecter CY. DEC(39) fonctionne de la même manière que INC(38) à part qu’il décrémente la valeur au lieu de l’incrémenter. Conseils d’utilisation Le contenu de Wd est décrémenté à chaque cycle lorsque la forme simple de DEC(39) est utilisée. Utiliser la forme sur changement de front (@DEC(39)) ou combiner DEC(39) avec DIFU(13) ou DIFD(14) pour diminuer Wd une seule fois. Drapeaux ER : Wd n’est pas une valeur BCD. Le canal DM indirectement adressé n’existe pas (le contenu du canal *DM n’est pas BCD ou la limite de la zone DM a été dépassée). EQ : ON lorsque le résultat décrémenté est égal à 0. 425 Chapitre 7-25 Instructions de sous-programmes 7-25 Instructions de sous-programmes Les sous--programmes sont utiliser pour décomposer d’importantes tâches de commande en tâches plus petites et afin de permettre de réutiliser un jeu d’instructions particulier. Lorsque le programme principal appelle un sous--programme, le contrôle est transféré à ce dernier et ses instructions sont exécutées. Les instructions d’un sous--programme sont écrites de la même façon que le code du programme principal. Lorsque toutes ces instructions ont été exécutées, le contrôle revient au programme principal, à l’emplacement à partir duquel a été saisi le sous--programme (sauf indication contraire à l’intérieur du sous--programme). 7-25-1 SUBROUTINE ENTER - SBS(91) Symboles à contacts Zones de données de définition N : Numéro du sous-programme SBS(91) N 000 à 049 Limitations Le numéro du sous-programme doit être compris entre 000 et 049. Description Un sous--programme peut être exécuté en insérant SBS(91) dans le programme principal à l’emplacement où doit apparaître le sous--programme. Le numéro utilisé dans SBS(91) indique le sous--programme désiré. Lorsque SBS(91) est exécutée (lorsque sa condition d’exécution est ON), les instructions comprise entre le SBN(92) ayant le même numéro de sous--programme et le premier RET(93) qui le suit, sont exécutées avant le retour à l’instruction qui suit le SBS(91) ayant effectué l’appel. Prog. principal SBS(91) 000 Prog. principal SBN(92) 000 Sous-programme RET(93) END(01) SBS(91) peut être utilisée autant de fois que désiré dans le programme : le même sous--programme peut être appelé en différents endroits du programme). 426 Chapitre 7-25 Instructions de sous-programmes SBS(91) peut également être insérée dans un sous--programme pour faire passer l’exécution du programme d’un sous--programme à l’autre : ceci se nomme imbrication de sous--programmes. Une fois exécuté le second sous--programme (une fois que RET(93) a été atteinte), le programme revient au sous--programme initial qui est alors exécuté avant le retour au programme principal. Il peut exister jusqu’à seize niveaux d’imbrication. Un sous--programme ne peut pas s’appeler lui-même (ex., SBS(91) 000 ne peut pas être programmée dans le sous--programme intitulé SBN(92) 000). Le schéma ci-dessous montre deux niveaux d’imbrication : SBS(91) 010 SBN(92) 010 SBN(92) 011 SBS(91) 011 SBS(91) 012 RET(93) RET(93) SBN(92) 012 RET(93) Le schéma suivant illustre le flux d’exécution du programme en présence de différentes conditions d’exécution définies pour deux SBS(91). A SBS(91) 000 A B Prog. principal SBS(91) Conditions d’exécution OFF pour sous--prog. 000 et 001 B C 001 Condition d’exécution ON pour sous--prog. 000 A C SBN(92) 000 D B C Condition d’exécution ON pour sous--prog. 001 A B E C D RET(93) Sous--prog. SBN(92) 001 Conditions d’exécution ON pour sous--prog. 000 et 001 A D B E C E RET(93) END(01) Drapeaux ER : Aucun sous-programme ne correspond au numéro de sous-programme spécifié. Un sous-programme s’est appelé lui-même. Un sous-programme en cours d’exécution a été appelé. ! Attention SBS(91) ne s’exécute pas et le sous--programme n’est pas appelé lorsque ER est sur ON. 427 Chapitre 7-25 Instructions de sous-programmes 7-25-2 SUBROUTINE DEFINE et RETURN - SBN(92)/RET(93) Symboles à contacts SBN(92) N Zones de données de définition N : Numéro du sous-programme 000 à 049 RET(93) Limitations Le numéro du sous-programme doit être compris entre 000 et 049. Chaque numéro de sous--programme ne peut être utilisé qu’une fois dans SBN(92). Description SBN(92) est utilisée pour identifier le début d’un sous-programme et RET(93) pour identifier la fin. Chaque sous--programme est identifié par un numéro de sous--programmes, N, qui est la valeur de définition de SBN(92). Ce même numéro de sous--programme est utilisé dans SBS(91) qui appelle le sous--programme (voir 7-25-1 SUBROUTINE ENTER -- SBS(91)). Un numéro de sous--programme n’est pas nécessaire avec RET(93). Tous les sous--programmes doivent être écrits à la fin du sous-programme principal. Une fois un ou plusieurs sous--programme(s) écrit(s), le programme principal s’exécute jusqu’à la première SBN(92) avant de revenir à l’adresse 00000 du cycle suivant. Les sous--programmes ne s’exécutent que lorsqu’ils sont appelés par SBS(91). END(01) doit être insérée à la fin du dernier sous--programme, c’est-à-dire après la dernière RET(93). Elle n’est pas nécessaire à un autre endroit du programme. Conseils d’utilisation Lorsque SBN(92) est insérée par erreur dans un sous-programme, elle empêche l’exécution des instructions qui suivent : l’exécution du programme reprend à partir du début. Lorsque DIFU(13) ou DIFU(14) sont insérées dans un sous--programme, le bit d’opérande n’est pas mis sur OFF jusqu’à la prochaine exécution du sous--programme : le bit d’opérande peut rester à l’état ON durant plus d’un cycle. Drapeaux Aucun drapeau ne correspond à ces instructions. 7-25-3 MACRO - MCRO(99) Zones de données d’opérandes Symboles à contacts N : Numéro du sous-programme 000 à 127 MCRO(99) @MCRO(99) N N I1 I1 O1 O1 I1 : Premier mot d’entrée Limitations 428 IR, SR, AR, DM, HR, TC, LR O1 : Premier mot de sortie IR, SR, AR, DM, HR, LR Le numéro du sous-programme doit être compris entre 000 et 049. Si une adresse DM est utilisée pour O1, O1 à O1+3 doivent être accessibles en lecture/écriture. Chapitre 7-26 Instructions spéciales Description L’instruction MACRO permet à un sous-programme d’en remplacer plusieurs autres possédant des structures identiques mais des opérandes différents. 4 mots d’entrées (entre SR 232 et SR 235) et 4 mots de sortie (entre SR 236 et SR 239) sont affectés à MCRO(99). 8 mots sont utilisés dans le sous-programme, dont le contenu est extrait de I1 à I1+3 et de O1 à O1+3 lors de l’exécution du sous-programme Lorsque la condition d’exécution est OFF, MCRO(99) ne s’exécute pas. Lorsque la condition d’exécution est ON, MCRO(99) copie les données comprises entre I1 et I1+3 dans SR 232 - SR 235, puis appelle et exécute le sous-programme spécifié en N. A la fin du sous-programme, les données comprises entre SR 236 et SR 239 sont retransférées vers O1 - O1+3 avant la fin de MCRO(99). Rem. Se reporter à la page 158 pour de plus amples informations sur MCRO(99). Exemple Dans cet exemple, les données comprises entre DM 0010 et DM 0013 sont copiées dans SR 232 - SR 235, puis le sous-programme 10 est appelé et exécuté. A la fin du sous-programme, les données comprises entre SR 236 et SR 239 sont copiées dans les mots de sortie DM 0020 - DM 0023. Programme principal MCRO(99) 010 DM 0010 DM 0020 Programme principal SBN(92) 010 Sous-programme RET(93) END(01) Drapeaux ER : Aucun sous-programme ne correspond au numéro de sous-programme spécifié. Un opérande a dépassé la limite d’une zone de données. Le canal DM indirectement adressé n’existe pas (le contenu du canal *DM n’est pas en BCD ou la limite de la zone DM a été dépassée). Un sous-programme s’est appelé lui-même. Un sous-programme en cours d’exécution a été appelé. 7-26 Instructions spéciales 7-26-1 MESSAGE DISPLAY - MSG(46) Symboles à contacts MSG(46) @MSG(46) FM FM Zones de données d’opérandes FM : Premier mot du message IR, SR, AR, DM, HR, LR 429 Chapitre 7-26 Instructions spéciales Limitations DM 6649 à DM 6655 ne peuvent être utilisés pour FM. Description Lorsqu’elle est exécutée avec une condition d’exécution ON, MSG(46) lit 8 mots en code ASCII étendu de FM à FM+7 et affiche le message sur la Console de Programmation. Le message affiché peut comprendre jusqu’à 16 caractères, chaque caractère ASCII exigeant 8 bits (2 digits). Voir codes ASCII à l’Annexe G. Ces codes comprennent les caractères japonais katakana. Si le message n’utilise pas 8 mots, il peut être arrêté à n’importe quel endroit par “OD.” Lorsqu’OD est rencontré dans un message, aucun autre mot n’est lu et les mots qui auraient normalement été utilisés dans le message peuvent être utilisés à d’autres fins. Mise en mémoire tampon et priorité des messages Jusqu’à trois messages peuvent être mis en mémoire tampon. Ils sont ensuite affichés en mode “premier entré, premier sorti”. Du fait qu’il est possible d’exécuter plus de trois MSG(46) dans le même cycle, des priorités sont définies en fonction de l’endroit où sont sauvegardés les messages, pour la sélection des messages à mettre en mémoire tampon. Les priorités suivantes sont définies entre les zones de données pour l’affichage des messages : LR > IR > HR > AR > TC > DM Lors du traitement des messages issus de la même zone, ceux comportant la valeur d’adresse la plus basse ont la plus haute priorité. Lors du traitement des messages adressés indirectement (*DM), ceux comportant les adresses DM finales les plus basses ont la plus haute priorité. Suppression des messages Pour supprimer un message, exécuter FAL(06) 00 ou le supprimer via une console de programmation ou le logiciel de support. Si le contenu du message est modifié alors que celui-ci est affiché, l’affichage se modifie. Drapeaux ER : Exemple L’exemple suivant contient l’affichage obtenu pour l’instruction et les données indiquées lorsque 00000 est à l’état ON. Si 00001 passe à l’état ON, un message est supprimé. Le canal DM indirectement adressé n’existe pas (le contenu du canal *DM n’est pas en BCD ou la limite de la zone DM a été dépassée). 00000 Adresse Instruction Opérandes MSG(46) DM 0010 00001 00000 00001 LD MSG(46) 00002 00003 LD FAL(06) DM FAL(06) 00 Contenu de DM DM 0010 4 1 4 2 Equivalent ASCII A B DM 0011 4 3 4 4 C D DM 0012 4 5 4 6 E F DM 0013 4 7 4 8 G H DM 0014 4 9 4 A I J DM 0015 4 B 4 C K L DM 0016 4 D 4 E M N DM 0017 4 F 5 0 O P 430 00000 MSG ABCDEFGHIJKLMNOP 0010 00001 00 Chapitre 7-26 Instructions spéciales 7-26-2 I/O REFRESH - IORF(97) Symboles à contacts Zones de données d’opérandes St : Début de mot IORF(97) IR 000 à IR 019 St E : Fin de mot E IR 000 à IR 019 Rem. Cette instruction n’est pas supportée sur les API SRM1(-V2). Limitations St doit être égal ou inférieur à E. Description Pour rafraîchir les mots d’E/S, spécifier le premier mot d’E/S (St) et les derniers mots d’E/S (E) à rafraîchir. Lorsque la condition d’exécution de IORF(97) est ON, tous les mots compris entre St et E sont rafraîchis. Cette opération vient en supplément du rafraîchissement normal des E/S survenant durant le cycle de traitement de l’unité centrale. Lorsque St>E, IORF(97) est traitée de la même façon que NOP(00). Normalement, le rafraîchissement des E/S n’est exécuté qu’une fois par cycle à la fin de l’exécution du programme, mais IORF(97) peut être utilisée pour rafraîchir immédiatement les mots d’E/S durant l’exécution du programme. ! Attention Bien qu’IORF(97) puisse être utilisée dans les sous-programmes d’interruption, ne pas l’exécuter trop souvent. Ceci générerait une erreur système fatale (FALS 9F) qui bloquerait l’exécution du programme. L’intervalle entre deux exécutions de IORF(97) doit être de 1,3 m + temps d’exécution total du sous-programme d’interruption. Drapeaux ER : St ou E n’est pas dans la plage autorisée (IR 000 à IR 019). St est supérieur à E si St>E, IORF(97) est traitée de la même façon que NOP(00). Aucun drapeau ne correspond à ces instructions. Drapeaux 7-26-3 BIT COUNTER - BCNT(67) Symboles à contacts Zones de données d’opérandes N : Numéro de mots (BCD) BCNT(67) @BCNT(67) N N SB SB R R IR, SR, AR, DM, HR, TC, LR, # SB : Début de mot source IR, SR, AR, DM, HR, TC, LR R : Mot de destination IR, SR, AR, DM, HR, TC, LR Rem. BCNT(67) est une instruction d’expansion sur les API des CPM2A/CPM2C et SRM1(-V2). Le code de fonction 67 est défini en usine et peut être modifié si désiré. Limitations N ne peut être égal à 0. DM 6144 à DM 6655 ne peuvent être utilisés pour R. 431 Chapitre 7-26 Instructions spéciales Description Lorsque la condition d’exécution est OFF, BCNT(67) ne s’exécute pas. Lorsque la condition d’exécution est ON, BCNT(67) compte le nombre total de bits à l’état ON dans tous les mots compris entre SB et SB+(N--1) et insère le résultat dans R. Drapeaux ER : N n’est pas une valeur BCD, ou N est égal à 0 ; SB et SB+(N--1) ne se trouvent pas dans la même zone. Une adresse DM est utilisée pour SB, mais SB à SB+(N--1) ne sont pas toujours des DM accessibles en lecture/écriture. EQ : 7-26-4 Le canal DM indirectement adressé n’existe pas (le contenu du canal *DM n’est pas en BCD ou la limite de la zone DM a été dépassée). ON lorsque le résultat est 0. FRAME CHECKSUM - FCS(--) Zones de données d’opérandes Symboles à contacts FCS(--) @FCS(--) C C R1 R1 D D C : Paramètre IR, SR, AR, DM, HR, LR, # R1 : Premier mot de la plage IR, SR, AR, DM, HR, TC, LR D : Premier mot de destination IR, SR, AR, DM, HR, LR Limitations Cette instruction n’est disponible que sur les CPM2A/CPM2C/SRM1(-V2). Les 3 digits de droite de C doivent être des valeurs BCD comprises entre 001 et 999. DM 6144 à DM 6655 ne peuvent être utilisés pour D. Description FCS(----) peut être utilisée pour rechercher les erreurs lorsque des données sont transférées via les ports de communications. Lorsque la condition d’exécution est OFF, FCS(----) ne s’exécute pas. Lorsque la condition d’exécution est ON, FCS(----) calcule le checksum de la plage spécifiée en exécutant un OU exclusif sur le contenu des mots R1 à R1+N--1 ou sur les octets contenus dans les mots R1 à R1+N--1. La valeur de checksum (hexadécimale) est alors convertie en ASCII et transmise aux mots de destination (D et D+1). La fonction des bits de C est indiquée dans le schéma suivant et expliquée plus en détail ci--dessous : 15 14 13 12 11 00 C: Nombre d’élém. dans plage (N, BCD) 001 à 999 mots ou octets 1er octet (lorsque le bit 13 est sur ON) 1 (ON) : A droite 0 (OFF) : A gauche Non utilisé. Mis à zéro. Nombre d’éléments dans la plage 432 Unités de calcul 1 (ON) : Octets 0 (OFF) : Mots Le nombre d’éléments dans la plage (N) est contenu dans les 3 digits de droite de C, qui doivent être des valeurs BCD comprises entre 001 et 999. Chapitre 7-26 Instructions spéciales Le checksum des mots est calculé lorsque le bit 13 est sur OFF ; le checksum des octets est calculé lorsque le bit 13 est sur ON. Si les octets sont spécifiés, la plage peut commencer par l’octet poids fort ou faible de R1. L’octet de poids fort de R1 n’est pas inclus lorsque le bit 12 est sur ON. Unités de calcul R1 MSB LSB 1 2 R1+1 R1+2 R1+3 3 5 7 4 6 8 Lorsque le bit 12 est sur OFF, un OU logique est exécuté sur les octets dans l’ordre 1, 2, 3, 4, .... Lorsque le bit 12 est sur ON, un OU logique est exécuté sur les octets dans l’ordre 2, 3, 4, 5, .... Le calcul du checksum des octets donne une valeur hexadécimale à 2 digits qui est convertie en son équivalent ASCII à 4 digits. Le calcul du checksum des mots donne une valeur hexadécimale à 4 digits qui est convertie en son équivalent ASCII à 8 digits, comme indiqué ci--dessous : Conversion en ASCII Checksum des octets Checksum des mots 4A D Drapeaux ER : F10B 3 4 4 1 D 4 6 3 1 D+1 3 0 4 2 Le canal DM indirectement adressé n’existe pas (le contenu du canal *DM n’est pas en BCD ou la limite de la zone DM a été dépassée). Le nombre d’éléments n’est pas une valeur BCD comprise entre 001 et 999. Lorsqu’IR 00000 est sur ON dans l’exemple suivant, le checksum (0008) est calculé pour les 8 mots de DM 0000 à DM 0007 et l’équivalent ASCII (30 30 30 38) est écrit dans DM 0010 et DM 0011. Exemple 00000 Adresse @FCS(--) Instruction 00000 00001 #0008 DM 0000 Opérandes LD @FCS(--) 00000 # DM DM DM 0010 DM 0000 DM 0001 0001 0002 DM 0002 DM 0003 DM 0004 DM 0005 DM 0006 0003 0004 0005 0006 0007 DM 0007 0008 0008 0000 0010 Calcul du checksum 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 8 Conversion en ASCII DM 0010 3 0 3 0 DM 0011 3 0 3 8 433 Chapitre 7-26 Instructions spéciales 7-26-5 SET PULSES - PULS(65) Symboles à contacts Zones de données d’opérandes P : Spécificateur de port PULS(65) @PULS(65) 000 ou 010 C : Données de commande API API N N 000 ou 001 N : Numéro d’impulsion IR, SR, AR, DM, HR, LR Limitations Cette instruction n'est supportée que par les API CPM1A et CPM2A/CPM2C à sortie transistor. N et N+1 doivent être dans la même zone de données. DM 6144 à DM 6655 ne peuvent être utilisés pour N. Description PULS(65) est utilisée pour définir le nombre d’impulsions de sortie qui seront générées ultérieurement dans le programme par SPED(64) ou ACC(--). Les impulsions dont le nombre est défini par PULS(65) sont générées en mode indépendant. Le nombre d’impulsions ne peut être modifié pendant la sortie des impulsions. En général, PULS(65) doit être exécutée chaque fois que le nombre d’impulsions doit être défini ; utiliser la fonction de variation sur changement de front (@PULS(65)) ou une condition d’entrée sur ON sur un seul cycle. Rem. Se reporter au paragraphe 2-5 Fonctions de contrôle de sortie d’impulsions pour de plus amples informations. Spécificateur de port (P) Le spécificateur de port indique l’emplacement des sorties d’impulsions. Les paramètres définis dans C et N s’appliquent aux instructions SPED(64) ou ACC(--) suivantes, pour lesquelles le même emplacement de sortie est spécifié. P Emplacement(s) des sorties d’impulsions 000 Sortie d’impulsions monophasée 0 sans accélération ni décélération (sortie 01000) ou sortie d’impulsions monophasée 0 à accélération et décélération trapézoïdales (sorties 01000 et 01001). 010 Sortie d’impulsions monophasée 1 sans accélération ni décélération (sortie 01001) Cette configuration n’est supportée que sur les API des CPM2A/CPM2C. Paramètre (C) Le paramètre détermine le type d’impulsions (relative ou absolue). C Type d’impulsions 000 Définit des impulsions relatives 001 Définit des impulsions absolues (valable uniquement lorsque le système de coordonnées absolues est utilisé). Cette configuration n’est supportée que sur les API des CPM2A/CPM2C. Nombre d’impulsions de sortie (N+1 et N) N+1 et N contiennent un nombre BCD à digits correspondant au nombre d’impulsions de sortie en mode indépendant. Ce nombre est compris entre -16 777 215 et 16 777 215. Le bit 15 de N+1 détermine le signe ; ce nombre est négatif si le bit 15 est sur ON, positif si le bit 15 est sur OFF. Positif : 0 à +16 777 215 (0000 0000 à 1677 7215) Négatif : -16 777 215 à 0 (9677 7215 à 8000 0000) 434 Chapitre 7-26 Instructions spéciales N+1 contient les 4 digits de gauche et N les 4 digits de droite. Le nombre de déplacements d’impulsions dépend du nombre d’impulsions de sortie (N+1 et N) et du type d’impulsion (C). Nombre de déplacements d’impulsions Système de coordonnées Relatif Déplacements d’impulsions Nombre de déplacements d’impulsions = Nombre d’impulsions de sortie Type d’impulsions : Relatif (C=000) Nombre de déplacements d’impulsions = Nombre d’impulsions de sortie Absolu Type d’impulsions : Absolu (C=001, CPM2A/CPM2C only) Nombre de déplacements d’impulsions = Nombre d’impulsions de sortie - PV Une fois PULS(65) exécutée, le nombre de déplacements d’impulsions calculé ne peut être modifié même si INI(61) est exécutée pour modifier la PV de sortie d’impulsions. Il est possible de définir sans problème un nombre de déplacements d’impulsions en dehors de la plage de PV autorisée (entre -16 777 215 et 16 777 215). PULS(65) ne s’exécute pas et une erreur se produit (SR 25503 est à l’état ON) si le nombre calculé de déplacements d’impulsions est de 0. Lorsque la sortie d’impulsions est utilisée en mode indépendant, sans accélération ni décélération, et lorsque le nombre de déplacements est négatif, la valeur absolue du nombre de déplacements est utilisée. Par exemple, si le nombre de déplacements est égal à -500, la valeur 500 est utilisée. Drapeaux ER : Une limite de zone de données a été dépassée. Le canal DM indirectement adressé n’existe pas (le contenu du canal *DM n’est pas en BCD ou la limite de la zone DM a été dépassée). P n’est pas égal à 000 ou 010. C n’est pas égal à 000 ou 001. C ne peut être défini à 001 lorsque le système de coordonnées relatif est utilisé. Le nombre d’impulsions de sortie n’est pas compris entre -16 777 215 et 16 777 215. PULS(65) est exécutée dans un sous-programme d’interruption alors qu’une E/S d’impulsions ou une instruction de comptage rapide (INI(61), PRV(62), CTBL(63), SPED(64), PULS(65), ACC(--), PWM(--) ou SYNC(--)) est exécutée dans le programme principal. Une fois PULS(65) exécutée, la valeur absolue du nombre de déplacements d’impulsions n’est pas comprise entre 1 et 16 777 215. 7-26-6 SPEED OUTPUT-- SPED(64) Zones de données d’opérandes Symboles à contacts P: Spécificateur de port SPED(64) @SPED(64) P P M M F F 001 ou 010 M : Mode de sortie 000 ou 001 F : Fréquence cible IR, SR, AR, DM, HR, LR, # 435 Chapitre 7-26 Instructions spéciales Limitations Cette instruction n’est supportée que sur les API des CPM1A et CPM2A/ CPM2C à sortie transistor. Sur le CPM1A : F doit être une valeur BCD, #0000 ou entre #0002 et #0200. Sur le CPM2A/CPM2C : F doit être une valeur BCD, #0000 ou entre #0001 et #1000. DM 6144 à DM 6655 ne peuvent être utilisés pour F. Description SPED(64) est utilisée pour définir la fréquence des impulsions de sortie à partir du bit de sortie spécifié. Lorsque la condition d’exécution est OFF, SPED(64) ne s’exécute pas. Lorsque la condition d’exécution est ON, SPED(64) définit la fréquence des impulsions F correspondant au bit de sortie spécificateur de P. M détermine le mode de sortie. En général, SPED(64) doit être exécutée chaque fois que la fréquence doit être définie ; utiliser la fonction de variation sur changement de front (@SPED(64)) ou une condition d’entrée à l’état ON sur un seul cycle. Rem. Se reporter au paragraphe 2-5 Fonctions de contrôle de sortie d’impusions pour de plus amples informations. Spécificateur de port (P) Le spécificateur de port indique l’emplacement des sorties d’impulsions. P Emplacement de la (ou des) sortie(s) d’impulsion(s) 000 Sortie d’impulsions monophasée 0 sans accélération ni décélération (sortie 01000) 010 Sortie d’impulsions monophasée 1 sans accélération ni décélération (sortie 01001) Cette configuration n’est supportée que par les API des CPM2A/CPM2C. Mode de sortie (M) La valeur de M détermine le mode de sortie. M Type d’impulsions 000 Mode indépendant 001 Mode continu Les modes indépendant et continu sont décrits plus loin. Fréquence cible (F) La valeur BCD à 4 digits de F définit la fréquence d’impulsions en unités de 10 Hz, comme indiqué ci-dessous. Lorsque F est réglée à 0000, la sortie d’impulsions s’arrête à partir du bit de sortie spécifié. API 0000 (stoppe sortie d’impuls.) ou 0002 à 0200 (20 Hz à 2 kHz) CPM2A/CPM2C 0000 (stoppe sortie d’impuls.) ou 0001 à 1000 (10 Hz à 10 kHz) La sortie d’impulsions déclenchée par SPED(64) se poursuit jusqu’à l’occurence d’une des conditions suivantes : Principe général de fonctionnement 1, 2, 3... 436 Valeurs possibles de F CPM1A 1. L’instruction INI(61) est exécutée avec C=003. 2. En mode indépendant, le nombre d’impulsions de sortie spécifié par PULS(65) est atteint (exécuter PULS(65) avant SPED(64)). 3. SPED(64) est de nouveau exécutée avec la fréquence cible, F, réglée à #0000. 4. L’API est commuté en mode PROGRAM. Les impulsions peuvent être générées immédiatement et de façon indépendante, à partir de deux bits de sortie. En mode de sortie d’impulsions indépendant, spécifier au préalable le nombre d’impulsions avant d’exécuter PULS(65). Le nombre d’impulsions de sortie doit Chapitre 7-26 Instructions spéciales de nouveau être spécifié avec PULS(65) chaque fois que la sortie d’impulsions est arrêtée. La fréquence ne peut être modifiée avec SPED(64) lors d’une sortie d’impulsions à partir du bit de sortie spécifié par ACC(--) ou PWM(--). Une erreur se produit et SR 25503 est mis sur ON lorsque SPED(64) est exécutée dans ces circonstances. Mode indépendant En mode indépendant, seul le nombre d’impulsions de sortie défint par PULS(65) est généré. Ce nombre d’impulsions peut être spécifié en exécutant PULS(65) avant d’exécuter SPED(64). Aucune sortie d’impulsions n’a lieu si le nombre d’impulsions de sortie n’a pas été spécifié à l’avance. Lorsque de nombre d’impulsions de déplacement calculé est négatif, la valeur absolue du nombre de déplacements d’impulsions est utilisée. Par exemple, si ce nombre est -500, la valeur 500 est utilisée. Fréquence cible Temps Mode continu En mode continu, les impulsions sont générées de façon continue sauf si elles sont arrêtées par l’exécution d’INI(61) avec C=003, par une nouvelle exécution de SPED(64) avec F=0000, ou par la commutation de l’API en mode PROGRAM. Fréquence cible Temps Drapeaux ER : Une limite de zone de données a été dépassée. Le canal DM indirectement adressé n’existe pas (le contenu du canal *DM n’est pas en BCD ou la limite de la zone DM a été dépassée). P n’est pas égal à 000 ou 010, M n’est pas égal à 000 ou 001, ou F n’est pas égal à une valeur comprise entre 0000 et 1000. SPED(64) est exécutée dans un sous-programme d’interruption alors qu’une E/S d’impulsions ou une instruction de comptage rapide (INI(61), PRV(62), CTBL(63), SPED(64), PULS(65), ACC(--), PWM(--) ou SYNC(--)) est exécutée dans le programme principal. 437 Chapitre 7-26 Instructions spéciales 7-26-7 ACCELERATION CONTROL - ACC(--) Symboles à contacts Zones de données d’opérandes P : Spécificateur de port ACC(--) @ACC(--) P P M M C C 000 M : Mode spécificateur 000, 002, ou 010 à 013 C : Premier mot de commande IR, SR, AR, DM, HR, LR Limitations Cette instruction n’est disponible que sur les CPM2A/CPM2C. P doit être égal à 001 ou 002 et M doit être une valeur comprise entre 000 et 003. C à C+3 doivent être dans la même zone de données. Description ACC(--) est utilisée pour spécifier la vitesse d’accélération/décélération et déclencher la sortie d’impulsions pour une sortie d’impulsions définie avec accélération et décélération trapézoïdales. En général, ACC(--) doit être exécutée chaque fois que la vitesse d’accélération/décélération doit être définie ; utiliser la fonction de variation sur changement de front (@ACC(--)) ou une condition d’entrée à l’état ON sur un seul cycle. Rem. Se reporter au paragraphe 2-5 Fonctions de contrôle de sortie d’impulsions pour de plus amples informations. Spécificateur de port (P) Le spécificateur de port doit toujours être réglé à 000. La valeur 000 spécifie une sortie d’impulsions monophasée 0 à accélération et décélération trapézoïdales. Spécificateur de mode (M) La valeur de M détermine le mode de sortie. M Mode Rem. 000 Mode indépendant et mode sortie d’impulsions progressif/ dégressif 002 Mode indépendant et mode sortie d’impulsions polarisées --- 010 CW (mode continu et mode sortie d’impulsions progressif/dégressif) 011 CCW (mode continu et mode sortie d’impulsions progressif/dégressif) 012 CW (mode continu et mode sortie d’impulsions polarisées) CW : horaire --CCW : anti-horaire 013 CCW (mode continu et mode sortie d’impulsions polarisées) En mode indépendant, la polarité de la sortie est définie lorsque PULS(65) est exécutée. Mots de commande (C, C+1 et C+2) Les 3 mots de commande indique la vitesse d’accélération, la fréquence cible et la vitesse de décélération. Chaque fréquence est définie par multiples de 10 Hz. 438 Chapitre 7-26 Instructions spéciales Mot Fonction C Le contenu de C détermine la vitesse d’accélération. Au cours d’une accélération, la fréquence de sortie est augmentée toutes les 10 ms de la proposition définie dans C. C doit être une valeur BCD comprise entre 0001 et 1000 (10 Hz à 10 kHz). C+1 Le contenu de C+1 détermine la fréquence cible. C+1 doit être une valeur BCD comprise entre 0001 et 1000 (10 Hz à 10 kHz). C+2 Le contenu de C+2 détermine la vitesse de décélération. Au cours d’une décélération, la fréquence de sortie est augmentée toutes les 10 ms de la proposition définie dans C+2. C doit être une valeur BCD comprise entre 0001 et 1000 (10 Hz à 10 kHz). Deux bits de sortie sont nécessaires pour les sorties d’impulsions contrôlées par ACC(--). Principe général de fonctionnement Mode sortie d’impulsions progressif/dégressif IR 01000 (mode CW) IR 01001 (mode CCW) Mode sortie d’impulsions polarisées IR 01000 (sortie d’impulsions) IR 01001 (définit la polarité) La sortie d’impulsions démarre lorsqu’ACC(--) est exécutée et la fréquence de sortie est augmentée toutes les 10 ms de la proportion spécifiée dans le paramètre C. Lorsque la fréquence cible (définie dans C+1) est atteinte, l’accélération prend fin et la sortie d’impulsions se poursuit à une fréquence constante. Lorsque la sortie d’impulsions subit une accélération et une décélération trapézoïdales, elle peut être stoppée à l’aide de l’une des méthodes suivantes : 1, 2, 3... Mode indépendant 1. Exécuter l’instruction INI(61) avec C=003. Arrêt immédiat. 2. En mode indépendant, le nombre d’impulsions de sortie spécifié par PULS(65) est atteint. Décélération puis arrêt. 3. ACC(--) est exécutée avec la fréquence cible (dans C+1) réglée à 0000. a) En mode de sortie d’impulsions indépendant, il se produit une décélération puis un arrêt de la sortie à la vitesse de décélération définie lors du démarrage de la sortie d’impulsions. b) En mode de sortie d’impulsions continu, il se produit une décélération puis un arrêt de la sortie à la vitesse de décélération spécifiée. 4. Commuter l’API en mode PROGRAM. Arrêt immédiat. En mode indépendant, seul le nombre d’impulsions de sortie défini par PULS(65) est généré. Le nombre d’impulsions de sortie doit être spécifié en exécutant PULS(65) avant d’exécuter ACC(--). Aucune sortie d’impulsions n’a lieu si le nombre d’impulsions n’a pas été spécifié à l’avance. Fréquence cible Temps Le nombre d’impulsions de sortie doit de nouveau être défini avec PULS(65) chaque fois que la sortie d’impulsions est arrêtée. En mode indépendant, la sortie d’impulsions subit une décélération au point déterminé par le nombre prédéfini d’impulsions de sortie avec les vitesses d’accé- 439 Chapitre 7-26 Instructions spéciales lération/décélération rates. La sortie d’impulsions prend fin lorsque le nombre d’impulsions défini a été généré. Fréquence cible Temps (Le nombre d’impulsions en sortie est toujours précis). Lorsque le nombre d’impulsions de sortie nécessaire à l’accélération et à la décélération (temps nécessaire pour atteindre la fréquence cible ! fréquence cible) dépasse le nombre d’impulsions prédéfini, l’accélération et la décélération seront insuffisantes et la sortie d’impulsions sera triangulaire et non trapézoïdale. Fréquence cible Temps (Le nombre d’impulsions en sortie est toujours précis). Lorsqu’une faible vitesse d’accélération/décélération et un faible nombre d’impulsions de sortie sont définis, aucune accélération et aucune décélération n’ont lieu en réalité. La sortie d’impulsions se fait à vitesse constante. Lorsque (fréquence cible " vitesse d’accélération/décélération) n’est pas une valeur entière, les vitesses d’accélération/décélération spécifiées augmentent ou diminuent. Dans l’exemple ci-dessous, l’accélération et la décélération se font sur 10 ms, (1) est la valeur d’accélération/décélération et (2) est la fréquence cible. Fréquence cible Temps 10 ms Mode continu 10 ms En mode continu, les impulsions sont générées indéfiniment jusqu’à ce que la sortie soit arrêtée par l’exécution de INI(61) avec C=003, par une nouvelle exécution d’ACC(--) avec la fréquence cible (dans C+1) réglée à 0000, ou par la commutation de l’API en mode PROGRAM. Fréquence cible Temps Les conditions suivantes s’appliquent lorsqu’ACC(--) est exécutée alors que des impulsions sont déjà générées en mode d’accélération/décélération trapézoïdales. # ACC(--) est sans effet lorsqu’elle est exécutée alors que la sortie d’impulsions est déjà en mode d’accélération/décélération. 440 Chapitre 7-26 Instructions spéciales # Lorsqu’ACC(--) est exécutée alors que les impulsions sont générées en mode continu, la fréquence cible peut être modifiée (de 0001 à 1000 : de 10 Hz à 10 kHz) en fonction des vitesses d’accélération/décélération définies. # En mode de sortie d’impulsions indépendant, il se produit une décélération puis un arrêt de la sortie, lorsqu’ACC(--) est exécutée avec la fréquence cible (dans C+1) réglée à 0000. Les vitesses d’accélération/décélération et le nombre d’impulsions de sortie ne peuvent être vérifiées ni modifiées. # ACC(--) est sans effet lorsqu’elle est exécutée alors que la sortie d’impulsions est commandée par l’une des instructions suivantes (la sortie d’impulsions n’est pas modifiée) : Commande de la sortie d’impulsions à partir de 01000 par SPED(64). Commande de la sortie d’impulsions à partir de 01001 par SPED(64). Commande de la sortie d’impulsions à partir de 01000 par PWM(--). Commande de la sortie d’impulsions à partir de 01001 par PWM(--). Rem. Vérifier l’état de la sortie d’impulsions avant d’exécuter ACC(--). Drapeaux ER : Une limite de zone de données a été dépassée. Le canal DM indirectement adressé n’existe pas (le contenu du canal *DM n’est pas en BCD ou la limite de la zone DM a été dépassée). P n’est pas égal à 000. M n’est pas égal à 000, 002 ou n’est pas compris entre 010 et 013 (le spécificateur de mode n’est lu qu’au moment du démarrage de la sortie d’impulsions). ACC(--) est exécutée pour un bit à partir duquel les impulsions sont déjà générées par PWM(--) ou SPED(64). ACC(--) est exécutée dans un programme d’interruption alors qu’une E/S d’impulsions ou une instruction de comptage rapide (INI(61), PRV(62), CTBL(63), SPED(64), PULS(65), ACC(--), PWM(--) ou SYNC(--)) est exécutée dans le programme principal. 7-26-8 PULSE WITH VARIABLE DUTY RATIO - PWM(--) Symboles à contacts Zones de données d’opérandes P : Spécificateur de port PWM(--) @PWM(--) P P F F D D 000 ou 010 F : Fréquence IR, SR, AR, DM, HR, LR, # D : Rapport cyclique IR, SR, AR, DM, HR, LR, # Limitations Cette instruction n’est disponible que sur les CPM2A/CPM2C. P doit être 000 ou 010, F doit être une valeur BCD comprise entre 0001 et 9999, et D doit être une valeur BCD comprise entre 0001 et 0100. Description PWM(--) est utilisée pour générer des impulsions selon le rapport cyclique spécifié à partir du bit de sortie spécifié. La sortie d’impulsions se poursuit jusqu’à ce que PWM(--) soit de nouveau exécutée avec un rapport cyclique différent, qu’INI(61) soit exécutée avec C=003, ou que l’API soit commuté en mode PROGRAM. 441 Chapitre 7-26 Instructions spéciales En général, PWM(--) ne doit être exécutée qu’une fois pour démarrer la sortie d’impulsions ; utiliser la fonction de variation sur changement de front (@PWM(--)) ou une condition d’entrée sur ON sur un seul cycle. Des impulsions à rapport cyclique variable peuvent être générées de façon simultanée et indépendante à partir de deux bits de sortie. Lorsque des impulsions à rapport cyclique variable sont générées à partir d’un bit de sortie et que PWM(--) est de nouveau exécutée pour ce bit avec un rapport cyclique différent, la sortie d’impulsions continue avec le nouveau rapport cyclique. La fréquence ne peut être modifiée. PWM(--) ne peut être exécutée pour un bit de sortie si des impulsions sont déjà générées à partir de ce bit par SPED(64) ou ACC(--). Une erreur se produit et SR 25503 est mis sur ON lorsque PWM(--) est exécutée dans ces circonstances. Rem. Se reporter au paragraphe 2-5 Fonctions de contrôle de sortie d’impulsions pour de plus amples informations. Spécificateur de port (P) Le spécificateur de port indique le bit de sortie où a lieu la sortie d’impulsions. P Emplacement(s) de la (ou des) sortie(s) d’impulsion(s) 000 Sortie d’impulsions à rapport cyclique variable 0 (sortie 01000) 010 Sortie d’impulsions à rapport cyclique variable 1 (sortie 01001) Fréquence (F) La valeur BCD à 4 digits de F définit la fréquence d’impulsions en unités de 0,1 Hz. La fréquence peut être réglée entre 0001 et 9999 (0,1 à 999,9 Hz). Rapport cyclique (D) La valeur BCD à 4 digits de D définit le rapport cyclique variable de la sortie d’impulsions, c’est-à-dire le pourcentage de temps durant lequel la sortie sera à l’état ON. Le rapport cyclique peut être défini entre 0001 et 0100 (1% à 100%). Il est de 75% sur le schéma suivant : àn ton = D (1% à 100%) T T Drapeaux ER : Une limite de zone de données a été dépassée. Le canal DM indirectement adressé n’existe pas (le contenu du canal *DM n’est pas en BCD ou la limite de la zone DM a été dépassée). P n’est pas égal à 000 ou 010, F n’est pas une valeur BCD comprise entre 0001 et 9999, ou D n’est pas une valeur BCD comprise entre 0001 et 0100. (la valeur de fréquence dans F n’est lue qu’au démarrage de la sortie d’impulsions). ACC(--) est exécutée pour un bit à partir duquel des impulsions sont déjà générées par ACC(--) ou SPED(64). PWM(--) est exécutée dans un sous-programme d’interruption alors qu’une E/S d’impulsions ou ou une instruction de comptage rapide (INI(61), PRV(62), CTBL(63), SPED(64), PULS(65), ACC(--), PWM(--) ou SYNC(--)) est exécutée dans le programme principal. 442 Chapitre 7-26 Instructions spéciales 7-26-9 SYNCHRONIZED PULSE CONTROL - SYNC(--) Symboles à contacts Zones de données d’opérandes P1 : Spécificateur de port d’entrée SYNC(--) @SYNC(--) P1 P1 P2 P2 C C 000 P2 : Spécificateur de port de sortie 000 ou 010 C : Facteur d’échelle IR, SR, AR, DM, HR, LR, # Cette instruction n’est disponible que sur les CPM2A/CPM2C. Limitations P1 doit être égal à 000 et P2 doit être égal à 000 ou 010. SYNC(--) prend la fréquence de l’impulsion d’entrée reçue via les entrées du compteur à grande vitesse, la multiplie par un facteur d’échelle fixe et génère des impulsions, à partir du bit de sortie spécifié, à la fréquence résultante. Description Fréquence de sortie = Fréquence d’entrée ! Facteur d’échelle/100 En général, SYNC(--) doit être exécutée chaque fois que le nombre d’impulsions doit être défini ; utiliser la fonction de variation sur changement de front (@SYNC(--)) ou une condition d’entrée sur ON sur un seul cycle. Rem. Se reporter au paragraphe 2-5 Fonctions de contrôle de sortie d’impusions pour de plus amples informations. Spécificateur de port d’entrée (P1) P1 doit toujours être réglé à 000. Spécificateur de port de sortie (P2) La valeur de P2 détermine où a lieu la sortie d’impulsions mise à l’échelle. P2 Emplacement(s) de la (ou des) sortie(s) d’impulsion(s) 000 Sortie d’impulsions synchronisée 0 (sortie 01000) 010 Sortie d’impulsions synchronisée 1 (sortie 01001) Facteur d’échelle (C) La valeur BCD à 4 digits de C définit le facteur d’échelle par lequel la fréquence d’entrée est multipliée. Le facteur d’échelle peut être défini entre 0001 et 1000 (1 à 1 000%). Valeurs de Setup de l’API et principe général de fonctionnement Le mode d’entrée du compteur pour les entrées 00000 et 00001 est défini dans les bits 00 à 03 de DM 6642. DM 6642 bits 00 à 03 Configuration du compteur à grande vitesse 0 Mode phase sur changement d’état (5 kHz) 1 Mode d’entrée d’impulsions polarisées (20 kHz) 2 Mode d’entrée progressif/dégressif (20 kHz) 4 Mode Incrément (20 kHz) Plage de fréquence d’entrée La plage de fréquence d’entrée pour la commande d’impulsions synchronisée 443 Chapitre 7-26 Instructions spéciales est définie dans les bits 08 à 15 de DM 6642, comme indiqué dans le tableau suivant : DM 6642 bits 08 à 15 02 03 04 Fonction of inputs 00000 et 00001 Pour la commande d’impulsions synchronisée (10 à 500 Hz) Pour la commande d’impulsions synchronisée (20 Hz à 1 kHz). Pour la commande d’impulsions synchronisée (300 Hz à 20 kHz). La commande d’impulsions synchronisée ne peut être exécutée que si les entrées 00000 à 00003 sont paramétrées pour ce mode dans les bits 08 à 15 (valeurs 02, 03 et 04). Une erreur se produit et SR 25503 est mis sur ON si SYNC(--) est exécutée mais que DM 6642 n’est pas paramétré pour la commande d’impulsions synchronisée. Les fonctions “compteur à grande vitesse” et “sortie d’impulsions” ne peuvent être utilisées en mode de commande d’impulsions synchronisée. Une erreur se produit et SR 25503 est mis sur ON si une instruction de sortie d’impulsions associée est exécutée pour utiliser l’une de ces fonctions en mode de commande d’impulsions synchronisée. Lorsque la fréquence d’entrée dépasse la valeur maximale définie dans le tableau ci-dessus, la fréquence maximale d’entrée de cette plage est utilisée. Lorsque la fréquence d’entrée est inférieure à la valeur minimale, ne fréquence d’entrée de 0 Hz est utilisée. Plage de fréquence de sortie La plage de fréquences de sortie est comprise entre 10 Hz et 10 kHz. Lorsque la fréquence de sortie calculée (fréquence d’entrée x facteur d’échelle/100) dépasse 10 kHz, la sortie d’impulsions a lieu à 10 kHz. Lorsque la fréquence de sortie calculée chute et est inférieure à 10 Hz, aucune sortie d’impulsions n’a lieu (0 Hz). Modification du facteur d’échelle ou du port de sortie Le facteur d’échelle peut être modifié en mode de commande d’impulsions synchronisée en exécutant de nouveau SYNC(--) avec un facteur d’échelle différent, mais le spécificateur de port de sortie ne peut être modifié dans ce mode. Arrêt de la sortie de commande d’impulusions synchronisée La sortie d’impulsions synchronisée peut être arrêtée en exécutant INI(61) avec C=005 ou en commutant l’API en mode PROGRAM. Drapeaux ER : Une limite de zone de données a été dépassée. Le canal DM indirectement adressé n’existe pas (le contenu du canal *DM n’est pas en BCD ou la limite de la zone DM a été dépassée). P1 n’est pas égal à 000, P2 n’est pas égal à 000 ou 010, ou C n’est pas une valeur BCD comprise entre 0001 et 1000. SYNC(--) est exécutée alors que les bits 08 à 15 de DM 6642 ne sont pas paramétrés pour la commande d’impulsions synchronisée. SYNC(--) est exécutée dans un sous-programme d’interruption alors qu’une E/S d’impulsions ou ou une instruction de comptage rapide (INI(61), PRV(62), CTBL(63), SPED(64), PULS(65), ACC(--), PWM(--) ou SYNC(--)) est exécutée dans le programme principal. 444 Chapitre 7-26 Instructions spéciales 7-26-10 DATA SEARCH - SRCH(--) Symboles à contacts Zones de données d’opérandes N : Numéro de mots SRCH(--) @SRCH(--) N N R1 R1 C C IR, SR, AR, DM, HR, TC, LR, # R1 : Premier mot de la plage IR, SR, AR, DM, HR, TC, LR C : Comp. de données, résultat dans le mot IR, SR, AR, DM, HR, LR Cette instruction n’est disponible que sur les CPM2A/CPM2C. Limitations N doit être une valeur BCD comprise entre 0001 à 9999. R1 et R1+N--1 doivent être dans la même zone de données. DM 6144 à DM 6655 ne peuvent être utilisés pour C. Lorsque la condition d’exécution est OFF, SRCH(--) ne s’exécute pas. Lorsque la condition d’exécution est ON, SRCH(--) recherche dans la plage de mémoire entre R1 et R1+N--1 les adresses contenant les données de comparaison définies dans C. Si une ou plusieurs adresses contiennent ce données, le drapeau EQ (SR 25506) est mis sur ON et l’adresse la plus basse contenant les données de comparaison est identifiée en C+1. Cette adresse est identifiée différemment pour la zone DM : Description 1, 2, 3... 1. Pour une adresse de la zone DM, cette adresse est écrite dans C+1. Par exemple, lorsque l’adresse la plus basse contenant les données de comparaison est DM 0114, #0114 est écrit dans C+1. 2. Pour une adresse dans une autre zone de données, la valeur de cette adresse depuis le début de la recherche est écrite dans C+1. Par exemple, lorsque l’adresse la plus basse contenant les données de comparaison est IR 114 et que le premier mot dans la plage de recherche est IR 014, #0100 est écrit dans C+1. Si aucune des adresses dans cette plage ne contient les données de comparaison, le drapeau EQ (SR 25506) est mis sur OFF et C+1 n’est pas modifié. Drapeaux ER : Le canal DM indirectement adressé n’existe pas (le contenu du canal *DM n’est pas en BCD ou la limite de la zone DM a été dépassée). N n’est pas une valeur BCD comprise entre 0001 et 9999. R1 et R1+N--1 ne sont pas dans la même zone de données. EQ : Exemple ON lorsqu’il existe une concordance entre les données de comparaison et la plage de recherche. Dans l’exemple suivant, la plage de 10 mots entre IR 200 et IR 209 est sondée pour y trouver les adresses contenant les mêmes données que DM 0100 445 Chapitre 7-26 Instructions spéciales (89AB). IR 204 contient ces données, aussi le drapeau EQ (SR 25506) est mis sur ON et #0004 est écrit dans DM 0101. 00000 @SRCH(--) #0010 200 Adresse Instruction 00000 00001 LD @SRCH(--) Opérandes 00000 # DM 0100 0010 0200 0100 DM IR 200 IR 201 1234 5678 IR 202 IR 203 IR 204 IR 205 IR 206 ABCD EF13 89AB 8860 90CD IR 207 IR 208 IR 209 00FF 89AB 810C DM 0100 DM 0101 89AB 0004 Rem. Les données concordantes dans IR 208 sont ignorées car ces données ont été trouvées dans un mot précédent dans la plage de recherche. 7-26-11 PID CONTROL - PID(--) Symboles à contacts Zones de données d’opérandes IW : Mot d’entrée PID(--) IR, SR, AR, DM, HR, LR IW P1 : Premier mot de paramètre P1 OW IR, SR, DM, HR, LR OW : Mot de sortie IR, SR, AR, DM, HR, LR Limitations Cette instruction n’est disponible que sur les CPM2A/CPM2C et SRM1(-V2). DM 6144 à DM 6655 ne peuvent être utilisés pour P1 ou OW. P1 à P1+32 doivent être dans la même zone de données. ! Attention 33 mots continus au total doivent être définis à partir de P1 pour que PID(--) s’exécute correctement. PID(--) peut également ne pas s’exécuter de façon appropriée dans les situations suivantes : dans les programmes d’interruption, dans les sous-programmes, entre IL(02) et ILC(03), entre JMP(04) et JME(05) et en mode de programmation par étapes (STEP(08)/SNXT(09)). Ne pas utiliser PID(--) dans ces situations. Description 446 PID(--) exécute la commande PID selon les paramètres spécifiés de P1 à P1+6. Lorsque la condition d’exécution est OFF, PID(--) ne s’exécute pas. Lorsque la condition d’exécution est ON, PID(--) exécute la commande PID selon les paramètres spécifiés. Elle extrait la plage de données binaires spécifiée en entrée du contenu de IW et exécute une action PID sur ces données selon les paramètres définis. Le résultat est ensuite enregistré en tant que variable manipulée dans OW. Chapitre 7-26 Instructions spéciales Le tableau suivant indique la fonction des mots de paramètres : Mot Bits Nom du paramètre Fonction/Plage définie P1 00 à 15 Valeur de consigne (SV). Valeur cible de la commande PID. Elle peut être définie comme tout nombre binaire, avec le nombre de bits spécifié par le paramètre de plage d’entrée. P1+1 00 à 15 Largeur de bande proportionnelle Ce paramètre spécifie la largeur de bande proportionnelle ou le rapport de plage d’entrée entre 0,1% et 999,9%. Ce doit être une valeur BCD comprise entre 0001 et 9999. P1+2 00 à 15 Temps d’intégration (Tik)/période d’échantillonnage ($) Définit le champ de l’action par intégration. Une augmentation de cette valeur augmente le champ de l’action par intégration. Ce doit être une valeur BCD comprise entre 0001 et 8191, ou 9999. La valeur 9999 désactive la commande d’intégration. P1+3 00 à 15 Temps de dérivation (Tdk)/période d’échantillonnage ($) Définir le temps d’intégration divisé par le temps d’échantillonnage. Définit le champ de l’action de dérivation. Une augmentation de cette valeur augmente le champ de l’action de dérivation. Ce doit être une valeur BCD comprise entre 0001 et 8191, ou 0000 (la valeur 0000 désactive la commande de dérivation). Définir le temps de dérivation divisé par le temps d’échantillonnage. P1+4 00 à 15 Période d’échantillonnage ($) Définit l’intervalle entre deux échantillonnages de données en entrée. Ce doit être une valeur BCD comprise entre 0001 et 1023. La période correspondante est comprise entre 0,1 et 102,3 s. P1+5 00 à 03 Spécificateur d’opération Coefficient de filtre d’entrée (%) Définit une opération normale ou inversée. Choisir 0 pour spécifier une opération inversée et 1 pour spécifier une opération normale. Détermine le champ du filtre d’entrée. Plus ce coefficient est faible, plus le filtre est faible. 04 à 15 Ce doit être une valeur BCD comprise entre 100 et 199, ou 000. La valeur 000 définit la valeur par défaut (0,65) et une valeur entre 100 et 199 règle le coefficient entre 0,00 et 0,99. P1+6 P1+7 à P1+32 00 à 03 Plage de sortie Détermine le nombre de bits de données de sortie. Ce doit être une valeur BCD comprise entre 0 et 8, ce qui donne une plage de sortie entre 8 et 16 bits. 08 à 15 Plage d’entrée Détermine le nombre de bits de données d’entrée. Ce doit être une valeur BCD comprise entre 00 et 08, ce qui donne une plage d’entrée entre 8 et 16 bits. 00 à 15 Zone de travail Ne pas utiliser. (Utilisée par le système) ! Attention Les changements apportés à ces paramètres ne sont appliqués que lorsque la condition d’exécution de PID(--) passe de OFF à ON. Rem. Ne pas utiliser PID(--) dans les situations suivantes car elle risquerait de ne pas s’exécuter correctement : Dans les programmes d’interruption Dans les sous-programmes Dans les parties de programmes verrouillées (entre IL et ILC) Dans les parties de programmes “sautées” (entre JMP et JME) Dans les parties de programmes à contacts définies avec des étapes (crées par STEP) Lorsque la condition d’exécution est ON, PID(--) exécute un calcul PID sur les données en entrée à l’issue de la période d’échantillonnage. La période d’échantillonnage est le temps s’écoulant avant que les données en entrée soient lues et traitées. 447 Chapitre 7-26 Instructions spéciales Le schéma ci-dessous indique la relation entre une période d’échantillonnage et calcul PID. Ce dernier n’est exécuté qu’à l’issue de la période d’échantillonnage (ici 100 ms). 1 cycle 70 ms 60 ms 70 ms 70 ms Calcul PID Pas de calcul (70+30=100 ms, (70 ms) pas de report) Calcul PID avec Pas de calcul valeurs initiales (0 Calcul PID (60 ms) ms) (130 ms, report de 30 ms) Action de la COMMANDE PID Condition d’exécution OFF Toutes les données définies sont retenues. Lorsque la condition d’exécution est OFF, la variable manipulée peut être écrite dans le mot de sortie (OW) pour une commande manuelle. Front montant de la condition d’exécution La zone de travail est initialisée d’après les paramètres PID définis et l’action de la commande PID démarre. Des changements soudains et radicaux dans la sortie de la variable manipulée ne sont pas pris en compte au début de l’action pour éviter des effets néfastes sur le système sous contrôle (opération sans choc). Lorsque les paramètres PID sont modifiés, ces changements ne sont exécutés que lorsque la condition d’exécution passe de OFF à ON. Condition d’exécution ON L’action PID est exécutée à des intervalles définis par la période d’échantillonnage, selon les paramètres PID définis. Période d’échantillonnage et synchronisation avec les exécutions de PID La période d’échantillonnage est l’intervalle de temps à l’issu duquel les données de mesure sont extraites pour l’exécution d’une action PID. Toutefois, PID(--) est exécutée en fonction du cycle de l’unité centrale, ce qui fait qu’il peut se présenter des cas où cette période d’échantillonnage est dépassée. L’intervalle de temps avant le prochain échantillonnage sera donc réduit. Méthode de commande PID Des actions de commande PID sont exécutées au moyen de la commande PID en mode de commande à action directe (deux degrés de liberté). Lorsque des suroscillations sont évitées par une commande PID simple, ceci ralentit la stabilisation des perturbations (1). Si la stabilisation des perturbations est accélérée, d’autre part, il se produit une suroscillation et ceci ralentit la réponse vers la valeur cible (2). En mode de commande PID à action directe, aucune suroscillation ne se produit, et il est ainsi possible d’accélérer la réponse vers la valeur cible et la stabilisation des perturbations (3). Commande PID simple Commande PID à action directe (1) La réponse cible est ralentie, la réponse de perturbation empire. (2) Suroscillation 448 La réponse de perturbation est accélérée, la réponse cible empire. Réponse cible Réponse de perturbation Instructions spéciales Chapitre 7-26 Actions de commande Action proportionnelle (P) Une action proportionnelle est une opération selon laquelle une bande proportionnelle est établie par rapport à la valeur de consigne (SV) ; à l’intérieur de cette bande, la variable manipulée (MV) est rendue proportionnelle à l’écart. Un exemple d’opération inverse est indiqué dans l’illustration suivante. Si une action proportionnelle est utilisée et que la valeur en cours (PV) diminiue par rapport à la bande proportionnelle, la variable manipulée (MV) est de 100% (valeur maximale). Dans la bande proportionnelle, la MV est rendue proportionnelle à l’écart (la différence entre SV et PV) et diminue progressivement jusqu’à ce qu’il y ait concordance entre la SV et la PV (jusqu’à ce que l’écart soit 0), la MV étant alors de 0% (valeur minimale). La MV sera également de 0% lorsque la PV sera supérieure à la SV. La bande proportionnelle est exprimée en pourcentage de la plage d’entrée totale. Plus la bande proportionnelle sera petite, plus la constante proportionnelle sera importante et plus l’action corrective aura d’effet. En mode d’action proportionnelle, un décalage (écart résiduel) survient généralement, mais il peut être réduit en diminuant la bande proportionnelle. S’il est trop réduit, toutefois, il se produit un effet de vibration. Action proportionnelle (action inverse) Correction de la bande proportionnelle Bande proportionnelle Bande proportionnelle trop étroite (vibration) 100% Décalage Variable manipulée SV 0% SV Bande proportionnelle correcte Bande proportionnelle trop large (grand décalage) Action d’intégration (I) La combinaison de l’action d’intégration et de l’action proportionnelle réduit le décalage en proportion du temps écoulé. Le champ de l’action d’intégration est indiqué par le temps d’intégration, qui est le temps nécessaire pour que la variable manipulée de l’action d’intégration atteigne le même niveau que la variable manipulée de l’action proportionnelle en tenant compte de l’écart par échelon, comme indiqué dans l’illustration qui suit. Plus le temps d’intégration est court, plus la correction est importante. Si le temps d’intégration est trop court, la correction sera trop importante et entraînera un effet de vibration. Action d’intégration Réponse par échelon Ecart Variable manipulée Action Pi et temps d’intégration Réponse par échelon Ecart Variable manipulée Action PI Action I Action P Ti : Temps d’intégration 449 Chapitre 7-26 Instructions spéciales Action de dérivation (D) L’action proportionnelle et l’action de dérivation effectuent toutes deux des corrections par rapport aux résultats de commande ; il se produit donc inévitablement un retard dans la réponse. L’action de dérivation supprime cet inconvénient. Dans le cas d’une perturbation soudaine, elle produit une grande variable manipulée et rétablit rapidement l’état initial. Une correction est exécutée en rendant la variable manipulée proportionnelle à la pente (coefficient de dérivation) causée par l’écart. Le champ de l’action de dérivation est indiqué par le temps de dérivation, qui est le temps nécessaire pour que la variable manipulée de l’action de dérivation atteigne le même niveau que la variable manipulée de l’action proportionnelle en tenant compte de l’écart par échelon, comme indiqué dans l’illustration qui suit. Plus le temps de dérivation est long, plus la correction effectuée par l’action de dérivation est importante. Action de dérivation Réponse par échelon Ecart Variable manipulée Action PD et temps de dérivation Réponse par rampe Ecart Action PD Action P Action D Variable manipulée Td : Temps de dérivation Action PID Une action PID combine une action proportionnelle (P), une action d’intégration (I) et une action de dérivation (D). Elle produit des résultats de commande supérieurs, même en présence d’objets présentant un temps mort. Elle recourt à l’action proportionnelle pour une commande régulière sans effet de vibration, à l’action d’intégration pour corriger automatiquement tout décalage, et à l’action de dérivation pour accélérer la réponse aux perturbations. Réponse par échelon de la sortie de l’action PID Réponse par échelon Ecart Action PID Action I Action P Action D Variable manipulée Réponse par rampe de la sortie de l’action PID Réponse par rampe Ecart Action PID Action I Action P Variable manipulée 450 Action D Chapitre 7-26 Instructions spéciales Pour utiliser une action PID, sélectionner l’un des deux sens de commande suivants. Dans les deux cas, la MV augmente en proportion de l’augmentation de la différence entre la SV et la PV. Sens de l’action # Action directe : MV est augmentée lorsque la PV est supérieure à la SV. # Action inverse : MV est augmentée lorsque la PV est inférieure à la SV. Action inverse Action directe Bande proportionnelle Bande proportionnelle 100% 100% Variable manipulée Variable manipulée 0% 0% Basse température Haute SV température Basse température Haute température SV Réglage des paramètres PID La relation générale entre les paramètres PID et l’état de la commande est identiquée ci-dessous : # Lorsqu’un certain temps de stabilisation est nécessaire et que ceci ne pose pas de problème (temps de mise en place), mais qu’il est important de ne pas provoquer de suroscillation, il convient d’augmenter la bande proportionnelle. Commande par PID mesurée SV Lorsque P est augmenté # Lorsqu’une suroscillation ne pose pas de problème mais qu’il est nécessaire de stabiliser rapidement la commande, il convient de réduire la bande proportionnelle. Si celle-ci est trop réduite, cependant, il se produit un effet de vibration. Lorsque P est réduit SV Commande par PID mesurée # En présence de larges vibrations, ou de suroscillations ou d’affaissements, ceci est probablement dû à une action d’intégration trop importante. Les vibrations peuvent être réduites en augmentant le temps d’intégration ou en élargissant la bande proportionnelle. Commande par PID mesurée (en présence de larges vibrations) SV Augmenter I ou P. 451 Chapitre 7-27 Instructions de commande d’interruptions # Si la période est courte mais qu’il se produit un effet de vibration, ceci peut être dû au fait que la réponse du système de commande est rapide et que l’action de dérivation est trop importante. Dans ce cas, réduire l’action de dérivation. Commande par PID mesurée (en présence de vibrations sur une courte période) SV Réduire D. Drapeaux ER : Les paramètres sont imprécis. Le temps de cycle est deux fois plus long que la période d’échantillonnage ; PID(--) ne peut donc pas être exécutée avec précision. PID(--) s’exécute dans ce cas. P1 et P1+32 ne sont pas dans la même zone ou les paramètres définis ne sont pas dans la même plage spécifiée. Le canal DM indirectement adressé n’existe pas (le contenu du canal *DM n’est pas en BCD ou la limite de la zone DM a été dépassée). CY: ON au cours de l’exécution d’un calcul PID (OFF lorsque la période d’échantillonnage n’est pas terminée). 7-27 Instructions de commande d’interruptions Ce chapitre décrit l’utilisation d’INT(89) et de STIM(69). Pour des informations générales sur le traitement des interruptions dans les API des CPM1/CPM1A, CPM2A/CPM2C ou SRM1(-V2), se reporter aux paragraphes de chapitre indiqués dans le tableau suivant : API Référence CPM1/CPM1A Voir 2-3 CPM1/CPM1A Fonctions d’interruption. CPM2A/CPM2C Voir 2-1 CPM2A/CPM2C Fonctions d’interruption. SRM1(-V2) Voir 2-4 SRM1 Fonctions d’interruption. 7-27-1 INTERRUPT CONTROL - INT(89) Zones de données d’opérandes Symboles à contacts C1 : Code de commande # (000 à 004, 100 ou 200) INT(89) @INT(89) C1 C1 000 000 C2 C2 000 : Aucune fonction 000 C2 : Données de commande IR, SR, AR, DM, HR, TC, LR, # Rem. Cette instruction n’est pas supportée par les API SRM1(-V2). Limitations 452 DM 6144 à DM 6655 ne peuvent être utilisés pour C2 lorsque C1=002. Chapitre 7-27 Instructions de commande d’interruptions Lorsque la condition d’exécution est OFF, INT(89) ne s’exécute pas. Lorsque la condition d’exécution est ON, INT(89) est utilisée pour commander les interruptions et exécuter l’une des sept fonctions indiquées dans le tableau suivant en fonction de la valeur de C1 : Description C1 Fonction INT(89) 000 Entrée d’interruption masquées/non masquées 001 Suppression d’interruptions 002 Lecture du masque actuel d’entrée d’interruption 003 Redémarrage du compteur dégressif et interruptions non masquées 004* Redémarrage du compteur progressif et interruptions non masquées 100 Toutes les interruptions masquées 200 Toutes les interruptions non masquées Rem. *Cette valeur ne peut être utilisée que sur les API CPM2A/CPM2C. Entrées d’interruption masquées/non masquées (C1=000) Cette fonction est utilisée pour définir les entrées d’interruption masquées et non masquées 00003 à 00006. Les entrées masquées sont enregistrées mais ignorées. Lorsqu’une entrée est masquée, le programme d’interruption correspondant est exécuté dès que le masque du bit correspondant est supprimé (sauf s’il est annulé auparavant par l’exécution d’INT(89) avec C1=001). Mettre le bit correspondant dans C2 à 0 ou 1 pour définir ou supprimer un masque sur une entrée d’interruption. Les bits 00 à 03 correspondent aux entrées 00003 à 00006. Les bits 04 à 15 ne doivent pas être inférieurs à 0. Bits du mot C2 : 3 2 1 0 Entrée d’interruption 00003 (0 : non masquée, 1 : masquée) Entrée d’interruption 00004 (0 : non masquée, 1 : masquée) Entrée d’interruption 00005 (0 : non masquée, 1 : masquée) Entrée d’interruption 00006 (0 : non masquée, 1 : masquée) Toutes les entrées d’interruption sont masquée au départ de l’utilisation de l’API, aussi les masques correspondants devront être supprimés pour que ces entrées puissent être utilisées. Suppression des entrées d’interruption (C1=001) Cette fonction est utilisée pour supprimer les entrées d’interruption 00003 à 00006. Ces entrées étant enregistrées, elles seront prises en charge dès que la masque correspondant sera supprimé, à moins qu’elles ne soient d’abord effacées. Mettre le bit correspondant dans C2 à 1 pour supprimer une entrée d’interruption d’E/S. Les bits 00 à 03 correspondent aux entrées 00003 à 00006. Les bits 04 à 15 doivent être mis à 0. Bits du mot C2 : 3 2 1 0 Entrée d’interruption 00003 (0 : non supprimée, 1 : supprimée) Entrée d’interruption 00004 (0 : non supprimée, 1 : supprimée) Entrée d’interruption 00005 (0 : non supprimée, 1 : supprimée) Entrée d’interruption 00006 (0 : non supprimée, 1 : supprimée) Lecture du masque d’interruption actif (C1=002) Cette fonction lit le masque d’interruption actif pour connaître l’état des entrées d’interruption 00003 à 00006 et écrit le résultat dans C2. Un bit est mis sur ON lorsque l’entrée correspondante est masquée (les bits 00 à 03 correspondent aux entrées 00003 à 00006). Bits du mot C2 : 3 2 1 0 Entrée d’interruption 00003 (0 : non masquée, 1 : masquée) Entrée d’interruption 00004 (0 : non masquée, 1 : masquée) Entrée d’interruption 00005 (0 : non masquée, 1 : masquée) Entrée d’interruption 00006 (0 : non masquée, 1 : masquée) Redémarrage du compteur et suppression des masques (C1=003 ou C1=004) Ces fonctions permettent de redémarrer les entrées d’interruption (en mode compteur) en rafaîchissant la SV de comptage (dans SR 240 à SR 243) et en supprimant les masques des entrées d’interruption (00003 à 00006). 453 Instructions de commande d’interruptions Chapitre 7-27 Définir C1=3 pour redémarrer les compteurs dégressifs ou C1=4 (API CPM2A/ CPM2C seulement) pour redémarrer les compteurs progressifs. Mettre le bit correspondant de C2 à 0 pour rafraîchir la SV du compteur et supprimer le masque d’interruption (les bits 00 à 03 correspondent aux entrées 00003 à 00006). Bits du mot C2 : 3 2 1 0 Entrée d’interruption compteur 00003 Entrée d’interruption compteur 00004 Entrée d’interruption compteur 00005 Entrée d’interruption compteur 00006 Utiliser la variation sur changement de front (@INT(89)) ou une condition d’entrée à l’état ON pour un seul cycle lors de l’exécution d’INT(89) avec C1=003 ou C1=004. La PV du compteur est réinitialisée à la SV lorsqu’INT(89) est exécutée en cours d’exécution du compteur ; l’interruption ne sera donc jamais générée si INT(89) est exécutée à chaque cycle. Lorsqu’INT(89) est exécutée avec C1=003 ou C1=004 et que le mot de SV contient une SV différente de 0 (0001 à FFFF), le compteur correspondant démarre (dans le sens progressif ou dégressif) et l’interruption correspondante est activée en mode compteur. Lorsque le comptage atteint la SV, une interruption est générée et la PV est renvoyée à la SV ; les interruptions sont donc générées de façon répétitive jusqu’à l’arrêt du comptage. L’écriture de 0000 dans la SV d’un compteur (SR 240 à SR 243) et l’exécution d’INT(89) pour rafraîchir la SV arrête le compteur et désactive l’interruption correspondante. Pour redémarrer ce compteur, écrire une SV différente de zéro dans le mot de SV de ce compteur et exécuter INT(89) (les mots de SV sont remis à 0000 au départ d’une opération, aussi la SV du compteur doit-elle être écrite dans le mot correspondant depuis le programme à contacts). Lorsqu’une interruption a déjà été activée (suppression du masque), la SV ne peut être rafraîchie uniquement par l’écriture d’une nouvelle valeur dans le mot de SV. Rafraîchir la SV en exécutant INT(89) avec C1=003 (C1=004 pour un compteur progressif). Une interruption en mode compteur peut être masquée en exécutant INT(89) avec C1=000 et en mettant à 1 le bit correspondant de C2, mais une entrée s’exécute en mode d’entrée d’interruption et non en mode compteur lorsque le bit correspondant de C2 est mis à 0. Définition ou suppression de masques collectifs (C1=100 ou C1=200) Toutes les interruptions, y compris les entrées d’interruption, les temporisations cycliques et les compteurs rapides peuvent être masquées collectivement, ou les masques correspondants peuvent être supprimés collectivement par l’exécution d’INT(89) avec C1=100 ou C1=200. Les entrées d’interruption masquées sont enregistrées, mais ignorées à l’exécution. Un masque collectif vient s’ajouter aux masques définis individuellement. La suppression collective des masques d’interruption ne supprime pas les masques définis individuellement avec l’exécution d’INT(89) mais les rétablit. Utiliser INT(89) pour masquer les interruptions que s’il est nécessaire de les masquer de façon provisoire. Utiliser toujours les instructions INT(89) pour cette opération : la première instruction INT(89) pour les masquer toutes les interruptions et la seconde pour supprimer tous les masques. INT(89) ne peut être utilisée pour masquer toutes les interruptions ou supprimer tous les masques d’interruption depuis un programme d’interruption. 454 Chapitre 7-27 Instructions de commande d’interruptions Définition de masques d’interruption (C1=100) Utiliser l’instruction INT(89) avec C1=100 pour masquer toutes les interruptions. (@)INT(89) 100 000 000 Lorsqu’une interruption est générée alors que les interruptions ont été masquées, le traitement de cette interruption n’a pas lieu mais elle est enregistrée s’il s’agit d’une entrée d’interruption, d’une temporisation cyclique ou d’un compteur à grande vitesse. Les interruptions seront exécutées dès que les masques correspondants auront été supprimés. Suppression des masques d’interruption (C1=200) Utiliser l’instruction INT(89) avec C1=200 pour supprimer tous les masques d’interruption : (@)INT(89) 200 000 000 Drapeaux ER : Une limite de zone de données a été dépassée. Le canal DM indirectement adressé n’existe pas (le contenu du canal *DM n’est pas en BCD ou la limite de la zone DM a été dépassée). C1 n’est pas égal à 000 à 004,100 ou 200. C2 n’est pas égal à 0000 à 000F. INT(89) est exécutée avec C1=100 ou C1=200 alors qu’un programme d’interruption est en cours d’exécution. INT(89) est exécutée avec C1=100 alors que tous les interruptions sont déjà masquées. C1=200 alors que tous les masques d’entrées n’ont pas été supprimés. 7-27-2 INTERVAL TIMER - STIM(69) Symboles à contacts Zones de données d’opérandes C1 : Paramètre #1 STIM(69) @STIM(69) C1 C1 C2 C2 C3 C3 000 à 008, 010 à 012 C2 : Paramètre #2 IR, SR, AR, DM, HR, TC, LR, # C3 : Paramètre #3 IR, SR, AR, DM, HR, TC, LR, # Rem. STIM(69) est une instruction d’expansion dans les API des CPM2A/CPM2C et SRM1(-V2). Le code de fonction 69 est un paramètre par défaut et peut être modifié si nécessaire. Limitations C1 doit être égal à 000, 003, 006 ou 010. 455 Chapitre 7-27 Instructions de commande d’interruptions Si C1 est égal à 000 ou 003, C3 représente un numéro BCD de sous-programme jusqu’à 0049. Si C1 est égal à 006, des constantes ne peuvent être utilisées pour C2 ou C3. Si C1 est égal à 010, C2 et C3 doivent être réglés à 000. STIM(69) est utilisée pour commandes les temporisations cycliques selon quatre fonctions de base : démarrage de la temporisation d’interruption en monocoup, démarrage de la temporisation d’interruption programmée, lecture de la PV de temporisation, arrêt de la temporisation. Définir la valeur de C1 pour définir laquelle de ces fonctions sera exécutée, comme indiqué dans le tableau suivant. Se reporter au paragraphe du Chapitre 2 Fonctions spéciales pour une description plus détaillée du fonctionnement des interruptions de temporisations cycliques. STIM(69) est également décrite plus en détails à la suite du tableau. Description Valeur C1 Fonction 000 Démarre la temporisation d’interruption monocoup. 003 Démarre la temporisation d’interruption programmée. 006 Lit la PV de la temporisation. 010 Arrête la temporisation. Démarrage de temporisations d’interruption (C1= 000 ou 003) Définir C1=000 pour activer la temporisation d’interruption monocoup. Définir C1=003 pour activer la temporisation d’interruption programmée. C2, qui spécifie la PV de la temporisation, peut être une constante ou le premier de deux variables contenant la SV. La paramètres diffèrent légèrement d’une méthode à l’autre : C2 = Constante Si C2 est une constante, il spécifie la SV du compteur dégressif en valeurs BCD. La plage de valeurs est comprise entre 0000 et 9999 (0 à 9,999 ms) (les unités de temps sont de 1 ms). C3 spécifie le numéro de sous-programme : entre 0000 à 0049. C2 = Variable Si C2 est une variable, son contenu contient la SV du compteur dégressif (BCD, 0000 à 9999). Le contenu de C2+1 spécifie le nombre d’unités de temps (BCD, 0005 à 0320) de 0,1 ms. L’intervalle de temps de comptage dégressif peut donc être compris entre 0,5 à 32 ms. La SV de la temporisation est : (contenu de C2) ! (contenu de C2+1) ! 0,1 ms. C3 spécifie le numéro de sous-programme : 0000 à 0049. Lecture de la PV de temporisation (C1=006) Définir C1=006 pour lire la PV de temporisation. C2 spécifie le premier des deux mots de destination appelés à recevoir la PV de la temporisation. C2 reçoit le nombre de fois où le compteur dégressif a été décrémenté (valeur hexadécimale, 0000 à 9999) et C2+1 reçoit les unités (nombre BCD d’unités de 0,1 ms). C3 spécifie le mot de destination recevant le temps écoulé depuis la dernière fois où le compteur a été décrémenté (nombre BCD d’unités de 0,1 ms). Rem. Le temps écoulé depuis le démarrage du compteur est calculé de la façon suivante : ((Contenu de C2) ! (Contenu de C2+1)) + ((Contenu de C3)) ! 0,1 ms Arrêt de la temporisation (C=010) Définir C1=010 pour arrêter la temporisation. C2 et C3 n’ont pas de fonction et doivent être mis à 00. Drapeaux ER : 456 C1 n’est pas égal à 000, 003, 006 ou 010. Un numéro de sous-programme spécifié n’est pas compris entre 0000 et 0049. Chapitre 7-28 Instructions de communication Le canal DM indirectement adressé n’existe pas (le contenu du canal *DM n’est pas en BCD ou la limite de la zone DM a été dépassée). Une limite de zone de données à été dépassée. 7-28 Instructions de communication 7-28-1 RECEIVE - RXD(47) Symboles à contacts Zones de données d’opérandes D : Premier mot de destination RXD(47) @RXD(47) D D C C N N IR, SR, AR, DM, HR, TC, LR C : Mot de commande # N : Nombre d’octets IR, SR, AR, DM, HR, TC, LR, # Cette instruction n’est disponible que sur les CPM2A/CPM2C et SRM1(-V2). Limitations D et D+(N"2)-1 doivent être dans la même zone de données. DM 6144 à DM 6655 ne peuvent être utilisés pour D ou N. N doit être une valeur BCD entre #0000 et #0256 (#0000 à #0061 en mode liaison à l’ordinateur). Lorsque la condition d’exécution est OFF, RXD(47) ne s’exécute pas. Lorsque la condition d’exécution est ON, RXD(47) lit N octets de données reçues au port spécifié dans le mot de commande et écrit ces données dans les mots D à D+(N"2)-1. Jusqu’à 256 octets de données peuvent être lus à la fois. Si moins de N octets sont reçus, le nombre reçu est lu. Description Rem. Se reporter au paragraphe 4-1 Fonctions de communication pour de plus amples informations sur l’instruction RXD(47), la définition du protocole de communications dans le Setup de l’API, etc. ! Attention L’API ne peut recevoir plus de données après réception de 256 octets si ceux-ci ne sont pas lus au moyen de RXD(47). Lire les données le plus vite possible après que le drapeau Réception terminée soit mis sur ON (AR 0806 pour le port RS-232C, AR 0814 pour le port périphérique). Mot de commande La valeur du mot de commande détermine le port à partir duquel seront lues les données et l’ordre dans lequel les données seront écrites en mémoire. Numéro d’octet : 3 2 1 0 Ordre des octets 0 : Octets de poids fort en 1er, même mot 1 : Octets de poids faible en 1er, même mot 2 : Octet de poids faible suivi de l’octet de poids fort du mot suivant 3 : Octet de poids fort suivi de l’octet de poids faible du mot suivant Non utilisé (mis à 00). Port 0 : Port RS--232C. 1 : port périphérique. 457 Chapitre 7-28 Instructions de communication L’ordre dans lequel les données sont écrites en mémoire dépend de la valeur du digit 0 dans C. Huit octets de données 12345678... seront écrits de la façon suivante : D D+1 D+2 D+3 D D+1 D+2 D+3 Drapeaux ER : Digit 0 = 0 MSB LSB 1 2 3 5 7 D D+1 D+2 D+3 4 6 8 Digit 0 = 2 MSB LSB 1 2 4 6 Digit 0 = 1 MSB LSB 2 1 3 5 7 Digit 0 = 3 MSB LSB 1 D 3 5 7 4 6 8 D+1 D+2 D+3 2 4 6 3 5 7 Les paramètres dans C ne sont pas corrects N est supérieur à 256. Le Setup de l’API n’est pas défini pour le mode protocole. RXD(47) est déjà en cours d’exécution. AR 08 : AR 0806 est mis sur ON après réception normale des données au port RS-232C. Il est réinitialisé lorsque RXD(47) est exécutée. AR 0814 est mis sur ON après réception normale des données au port périphérique. Il est réinitialisé lorsque RXD(47) est exécutée. AR 09 : Contient le nombre d’octets reçus au port RS-232C. Il est remis à 0000 lorsque RXD(47) est exécutée. AR 10 : Contient le nombre d’octets reçus au port périphérique. Il est remis à 0000 lorsque RXD(47) est exécutée. Rem. Les drapeaux et les compteurs de communication peuvent être supprimés soit en spécifiant 0000 pour N, soit en utilisant les bits de réinitialisation de port (SR 25208 pour le port périphérique et SR 25209 pour le port RS-232C). 7-28-2 TRANSMIT - TXD(48) Symboles à contacts Zones de données d’opérandes S : Premier mot source TXD(48) @TXD(48) S S C C N N IR, SR, AR, DM, HR, TC, LR C : Mot de commande # N : Numéro d’octets IR, SR, AR, DM, HR, TC, LR, # Limitations 458 Cette instruction n’est disponible que sur les CPM2A/CPM2C et SRM1(-V2). S et S+(N"2)-1 doivent être dans la même zone de données. Chapitre 7-28 Instructions de communication DM 6144 à DM 6655 ne peuvent être utilisés pour S ou N. N doit être une valeur BCD comprise entre #0000 et #0256 (#0000 à #0061 en mode liaison à l’ordinateur). Lorsque la condition d’exécution est OFF, TXD(48) ne s’exécute pas. Lorsque la condition d’exécution est ON, TXD(48) lit N octets de données à partir des mots S à S+(N"2)--1, les convertit en ASCII et transmet le résultat à partir du port spécifié. TXD(48) a une fonction différente en mode liaison à l’ordinateur et en mode RS-232C ; ces modes sont donc décrits séparément. Description Rem. 1. Le drapeau AR 0805 est sur ON lorsque l’API est à même de transmettre des données via le port RS-232C et le drapeau AR 0813 est sur ON lorsque l’API est à même de transmettre des données via le port des périphériques. 2. Se reporter au paragraphe 4-1 Fonctions de communications pour de plus amples informations sur l’instruction TXD(48), la définition du protocole de communication dans le Setup de l’API, etc... Mode liaison à l’ordinateur N doit être une valeur BCD entre #0000 et #0061 (jusqu’à 122 octets ASCII). La valeur du mot de commande détermine le port via lequel sont transmises les données, comme indiqué ci--dessous : Numéro de digit : 3 2 1 0 Non utilisé (Défini à 000). Port 0 : Spécifie le port RS-232C. 1 : Spécifie le port périphérique. Le nombre d’octets spécifié est lu entre S et S+(N/2)--1, converti en ASCII et transmis via le spécificateur de port. Les octets de données sources ci--dessous seront transmis dans l’ordre suivant : 12345678... S MSB LSB 1 2 S+1 S+2 S+3 3 5 7 4 6 8 Le schéma qui suit indique le format de commande de liaison à l’ordinateur (TXD) à partir du CPM2A/CPM2C. Le CPM2A/CPM2C ajoute automatiquement les préfixes et les suffixes : numéros de stations, en--tête, FCS, etc... @ E Num. de station Mode RS-232C X Code d’en-tête & ......... Données (122 car. ASCII max.) FCS CR Terminaison N doit être une valeur BCD entre #0000 et #00256. La valeur du mot de commande détermine le port à partir duquel sont transmises les données et l’ordre d’écriture de celles--ci en mémoire. 459 Chapitre 7-28 Instructions de communication Mot de commande La valeur du mot de commande détermine le port à partir duquel sont lues les données et l’ordre d’écriture de celles--ci en mémoire. Numéro de digit : 3 2 1 0 Ordre des octets 0 : Octets de poids fort en 1er 1 : Octets de poids faible en 1er Non utilisé (défini à 00) Port 0 : Spécifie le port RS-232C 1 : Spécifie le port périphérique Le nombre d’octets spécifié est lu à partir de S -- S+(N"2)--1 et transmis via le port spécifié. S MSB LSB 1 2 S+1 S+2 S+3 3 5 7 4 6 8 Lorsque le digit 0 de C est égal à 0, les octets des données source indiqués ci-dessus sont transmis dans l’ordre suivant : 12345678... Lorsque le digit 0 de C est égal à 1, les octets des données source indiqués ci-dessus sont transmis dans l’ordre suivant : 21436587... Rem. Lorsque des codes de début et de fin sont spécifiés, le nombre total de données doit être de 256 octets au maximum, codes de début et de fin inclus. Drapeaux ER : Les paramètres dans C ne sont pas corrects. N est supérieur à 256 en mode hors-protocole ou à 61 en mode liaison à l’ordinateur. Le Setup de l’API ne définit pas le mode communication approprié. Le canal DM indirectement adressé n’existe pas (le contenu du canal *DM n’est pas en BCD ou la limite de la zone DM a été dépassée). TXD(48) est déjà en cours d’exécution. AR 08 : AR 0805 est mis sur ON lorsque la transmission via le port RS-232C est possible. AR 0813 est mis sur ON lorsque la transmission via le port périphérique est possible. 7-28-3 CHANGE RS-232C SETUP - STUP(--) Symboles à contacts Zones de données d’opérandes N : RS-232C spécificateur de port STUP(--) @STUP(--) N N S S 000 S : Premier mot source IR, SR, AR, DM, HR, LR, # Le 3ème opérande est ignoré. Limitations 460 Cette instruction n’est disponible que sur les CPM2A/CPM2C et SRM1(-V2). Chapitre 7-28 Instructions de communication N doit être égal à 000. S et S+4 doivent être dans la même zone de données. (S peut être défini à #0000 pour remplacer les paramètres RS-232C par les valeurs par défaut). STUP(--) ne peut être exécutée dans un sous-programme d’interruption. Lorsque la condition d’exécution est OFF, STUP(--) ne s’exécute pas. Lorsque la condition d’exécution est ON, STUP(--) modifie les paramètres contenus dans le Setup de l’API concernant le port RS-232C intégré. Ces changements ont lieu dans le Setup de l’API mais non dans la mémoire flash jusqu’à ce que l’API soit commuté en mode PROGRAM (depuis le mode RUN ou MONITOR), ou mis hors-tension puis de nouveau sous tension. Sur les API des CPM2A/CPM2C et SRM1(-V2), N doit être égal à 000 du fait que STUP(--) ne modifier que la configuration RS-232C du port RS-232C intégré (DM 6645 à DM 6649). Si S est une variable, le contenu de S à S+4 est copié dans les positions DM 6645 à DM 6649. Si S est une constante #0000, les paramètres par défaut du port RS-232C intégré sont rétablis. Description S Rem. Exemple d’application Fonction Variable Le contenu de S à S+4 est copié dans DM 6645 à DM 6649. Constante (#0000) Les valeurs par défaut des paramètres contenus dans DM 6645 à DM 6649 sont rétablies. 1. Le drapeau de configuration RS-232C variable (SR 25312) est sur ON au cours de l’exécution de STUP(--) ; il est mis sur OFF à la fin de l’exécution de STUP(--). 2. Sur les CPM2A/CPM2C, une erreur se produit et STUP(--) ne s’exécute pas lorsque le Commutateur Communications sur la face avant de l’unité centrale est sur ON. Dans ce cas, les communications RS-232C sont régies par les paramètres par défaut. Cet exemple illustre un programme transférant le contenu de DM 0100 à DM 0104 dans la zone du Setup de l’API correspondant au port RS-232C intégré (DM 6645 à DM 6649). 00000 Adresse Instruction 00000 00001 LD @STUP(--) Opérandes @STUP(--) 000 DM 0100 00000 DM 000 0100 Ces valeurs sont transmises comme indiqué ci-dessous. Le drapeau de configuration RS-232C variable (SR 25312) est mis sur OFF à la fin du transfert. Le tableau qui suit indique la fonction des données de configuration transférées. Mot source DM 0100 Mot de destination DM 6645 Contenu Fonction 1001 Valide les paramètres de communications dans DM 0101 et définit le mode communication “hors-protocole”. DM 0101 DM 6646 0803 Définit les paramètres de communication suivants : 9 600 bps, 1 bit de départ, 8 bits de données, 1 bit d’arrêt, parité nulle DM 0102 DM 6647 0000 Pas de délai de transmission (0 ms) DM 0103 DM 6648 2000 Valide le code de fin : CR, LF. DM 0104 DM 6649 0000 (Sans fonction lorsque DM 6648 est défini à 2000) 461 Chapitre 7-28 Instructions de communication Drapeaux ER : Le canal DM indirectement adressé n’existe pas (le contenu du canal *DM n’est pas une valeur BCD ou la limite de la zone DM a été dépassée). Le spécificateur de port (N) n’est pas égal à 000. Sur le CPM2A/CPM2C, le commutateur Communications sur la face avant de l’unité centrale est sur ON. Une autre instruction STUP(--) est déjà en cours d’exécution ou un traitement d’événements est en cours. Les mots sources spécifiés dépassent la zone de données. Cette instruction est exécutée depuis un programme d’interruption. Le Setup de l’API est protégé en écriture. 462 CHAPITRE 8 Opérations exécutées par les API et temps de traitement Ce chapitre explique les opérations exécutées par les API CPM1, CPM1A, CPM2A, CPM2C et SRM1(-V2), ainsi que le temps nécessaire au traitement et à l’exécution de ces opérations. Se reporter à ce chapitre pour des informations sur la durée précise de telle ou telle opération. 8-1 8-2 8-3 Temps de cycle et temps de réponse des E/S des CPM1/CPM1A . . . . . . . . . . . . . . . . . . 8-1-1 Cycle des CPM1/CPM1A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-1-2 Temps de cycle des CPM1/CPM1A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-1-3 Temps de réponse d’E/S . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-1-4 Temps de réponse de liaison Inter API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-1-5 Temps de traitements des interruptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-1-6 Temps d’exécution des instructions sur les CPM1/CPM1A . . . . . . . . . . . . . . . . Temps de cycle des CPM2A/CPM2C et temps de réponse d’E/S . . . . . . . . . . . . . . . . . . . 8-2-1 Temps de cycle des CPM2A/CPM2C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-2-2 Temps de réponse d’E/S . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-2-3 Temps de réponse de liaison d’API en mode “Inter API” . . . . . . . . . . . . . . . . . . 8-2-4 Temps de traitement des interruptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-2-5 Temps d’exécution des instructions sur les CPM2A/CPM2C . . . . . . . . . . . . . . . Temps de cycle et temps de réponse des E/S du SRM1(-V2) . . . . . . . . . . . . . . . . . . . . . . 8-3-1 Cycle du SRM1(-V2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-3-2 Temps de cycle du SRM1(-V2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-3-3 Temps de réponse d’E/S . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-3-4 Temps de réponse E/S Inter API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-3-5 Temps de traitement des interruptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-3-6 Temps d’exécution des instructions sur le SRM1(-V2) . . . . . . . . . . . . . . . . . . . . 464 464 465 466 467 469 470 476 476 477 478 480 482 493 493 494 496 497 498 499 463 Chapitre Temps de cycle et temps de réponse des E/S des CPM1/CPM1A 8-1 8-1 Temps de cycle et temps de réponse des E/S des CPM1/CPM1A 8-1-1 Cycle des CPM1/CPM1A Le flux des opérations exécutées par les CPM1/CPM1A est illustré dans l’organigramme suivant : Mise sous tension Processus d’initialisation Initialisation Vérification circuit et mémoire programme Non Vérification OK ? surveillance Oui Définition drapeaux d’erreurs et activation indicateurs ERROR ou ALARM ? ERROR (allumé) Prédéfinir temps de surveillance du temps de cycle ALARM (clignotant) Exécuter prog. utilisateur Fin du programme ? Non Exécution du programme Oui Vérification définition temps de cycle Réglage du temps de cycle mini ? Oui Attendre fin temps de cycle Temps de cycle Non Traitement du temps de cycle Calculer temps de cycle Rafraîchir bits d’entrée et bornes de sortie Prise en charge port périphérique Rafraîchiss. des E/S Prise en charge port périphérique Rem. Les processus d’initialisation comprennent l’effacement des zones IR, SR et AR, le préréglage des temporisations du système et la vérification des unités d’E/S. 464 Temps de cycle et temps de réponse des E/S des CPM1/CPM1A Chapitre 8-1 8-1-2 Temps de cycle des CPM1/CPM1A Les processus compris dans un cycle des CPM1/CPM1A sont indiqués dans le tableau suivant, qui indique également les temps de traitement correspondants. Processus Contenu Surveillance Temps nécessaire Définition de l’horloge du chien de garde des cycles, 0,6 ms vérification du bus d’E/S, vérification de l’UM, rafraîchissement des horloges, rafraîchissement des bits affectés aux nouvelles fonctions, etc... Exécution du programme utilisateur Temps total d’exécution des instructions (varie selon le contenu du programme utilisateur) Exécution Calcul du temps de cycle Attente jusqu’au temps sélectionné lorsque le temps de cycle minimum est défini dans le DM 6619 du Setup de l’API. Presque instantané, sauf dans le processus d’attente Calcul du temps de cycle. Rafraîchissement des E/S Prise en charge des ports périphériques Lecture des informations en entrée dans les bits d’entrée. Ecriture des informations de sortie (résultats d’exécution du programme) dans les bits de sortie. Prise en charge des périphériques reliés aux ports périphériques. UC 10 points : 0,06 ms UC 20 points : 0,06 ms UC 30 points : 0,3 ms Unité d’E/S d’extension : 0,3 ms 0,26 ms min., 5% ou moins du temps de cycle jusqu’à 66 ms (voir Rem.) Rem. Le pourcentage de cycle affecté à la prise en charge des ports périphériques peut être modifié dans le Setup de l’API (DM 6617). Effets du temps de cycle Temps de cycle 10 ms ou plus 20 ms ou plus Les effets du temps de cycle sur les opérations des CPM1/CPM1A sont indiqués ci-dessous. Dans le cas d’un long temps de cycle affectant les opérations, réduire le temps de cycle ou améliorer le temps de réponse à l’aide de programmes d’interruption. Conséquences TIMH(15) peut être imprécise dans le cas de l’utilisation de TC 004 à TC 127 (fonctionnement normal de TC 000 à TC 003). Le programme utilisant le bit d’horloge de 0,02 seconde (SR 25401) peut être imprécis. 100 ms ou plus TIM peut être imprécis. Le programme utilisant le bit d’horloge de 0,01 seconde (SR 25500) peut être imprécis. Une erreur CYCLE TIME OVER (temps de cycle terminé) est générée (SR 25309 passe à l’état ON). Voir Rem. 1. 120 ms ou plus La SV du temps de surveillance de FALS 9F est dépassée. Une erreur système (FALS 9F) est générée et l’opération s’arrête. Voir Rem. 2. Le programme utilisant le bit d’horloge de 0,02 seconde (SR 25501) peut être imprécis. 200 ms ou plus Rem. 1. Le Setup de l’API (DM 6655) peut être utilisé pour désactiver la détection de l’erreur CYCLE TIME OVER. 2. Le temps de surveillance de cycle peut être modifié dans le Setup de l’API (DM 6618). Exemple de temps de cycle Dans cet exemple, le temps de cycle est calculé pour une unité centrale CPM1/CPM1A à 20 points d’E/S (12 points d’entrée et 8 points de sortie). Les E/S sont paramétrées de la façon suivante : Entrées : 1 mot (00000 à 0,011) Sorties : 1 mot (01000 à 01007) Les autres conditions de fonctionnement sont supposées être : Programme utilisateur : 500 instructions (constituées seulement de LD et OUT) Temps de cycle : Variable (pas de minimum défini) 465 Chapitre Temps de cycle et temps de réponse des E/S des CPM1/CPM1A 8-1 Le temps de traitement moyen d’une instruction du programme utilisateur est estimé à 2,86 !s. Les temps de cycles sont indiqués dans le tableau suivant : Processus Temps avec périphérique de programmation 0,6 ms Temps sans périphérique de programmation 0,6 ms 2. Exécution du programme 2,86 " 500 (!s) 1,43 ms 1,43 ms 3. Calcul du temps de cycle Négligeable 0 ms 0 ms 0,01 " 1 + 0,005 " 1 (!s) 0,06 ms 0,06 ms Temps minimum 0,26 ms 0 ms (1) + (2) + (3) + (4) + (5) 2,35 ms 2,09 ms 1. Surveillance 4. Rafraîchissement des E/S 5. Prise en charge des ports périphériques Temps de cycle Méthode de calcul Fixe Rem. 1. Le temps de cycle peut être lu à partir de l’API via un périphérique de programmation. 2. Le temps de cycle maximum et le temps de cycle actuel sont enregistrés dans AR 14 et AR 15. 3. Le temps de cycle peut varier selon les conditions de fonctionnement et ne correspondra pas nécessairement avec précision à la valeur calculée. 8-1-3 Temps de réponse d’E/S Le temps de réponse d’E/S est le temps nécessaire à l’API, après réception d’un signal en entrée (après passage à l’état ON du bit d’entrée), pour vérifier et traiter les informations et générer un signal de commande (générer le résultat du traitement dans un bit de sortie). Ce temps de réponse varie selon les contraintes temporelles et les conditions de traitement. Les temps de réponse d’E/S minimum et maximum sont indiqués ici, en utilisant comme exemple le programme ci-dessous : Sortie Entrée Les conditions ci-dessous sont utilisées dans cet exemple pour calculer les temps de réponse d’E/S. Retard au travail entrée : 8 ms (constante de temps d’entrée : valeur par défaut) Temps de surveillance : 1 ms (comprend le rafraîchissement des E/S du CPM1A) Temps d’exécution des instructions : 14 ms Retard au travail sortie : 10 ms Port périphérique : Non utilisé. Temps minimum de réponse d’E/S Le CPM1/CPM1A a le temps de réponse le plus court lorsqu’il reçoit un signal d’entrée juste avant de rafraîchir les E/S, comme illustré ci-dessous : Point d’entrée Retard ON entrée (8 ms) Bit d’entrée Rafraîchissement des E/S Exécution du programme et des autres processus (15 ms) Rafraîchissement des E/S Retard ON sortie (10 ms) Point de sortie Temps de réponse d’E/S mini = 8+15+10 = 33 ms 466 Temps de cycle et temps de réponse des E/S des CPM1/CPM1A Temps maximum de réponse d’E/S Chapitre 8-1 Le CPM1/CPM1A a le temps de réponse le plus long lorsqu’il reçoit le signal d’entrée juste après la phase de rafraîchissement des entrées à l’intérieur du cycle, comme le montre l’illustration ci-dessous. Ceci entraîne un temps de réponse d’un cycle environ. Point d’entrée Retard ON entrée (8 ms) Bit d’entrée Rafraîchissement des E/S Exécution du programme et des autres processus (15 ms) Rafraîchissement des E/S Exécution du programme et des autres processus (15 ms) Rafraîchissement des E/S Retard ON sortie (10 ms) Point de sortie Temps de réponse d’E/S maxi = 8+15 " 2+10 = 48 ms 8-1-4 Temps de réponse de liaison Inter API Lorsque deux CPM1/CPM1A sont reliés en mode Inter API, le temps de réponse d’E/S est le temps nécessaire à la transmission d’une entrée exécutée sur l’un des CPM1/CPM1A à l’autre CPM1/CPM1A dans le cadre de communications d’API en mode Inter API. Les temps de réponse d’E/S minimum et maximum sont indiqués ici, en utilisant comme exemple les instructions suivantes, exécutées aux niveaux maître et esclave. Les communications s’effectuent ici en mode “maître-esclave”. Maître Esclave Sortie (LR) Entrée Entrée (LR) Sortie Les conditions suivantes sont utilisées comme exemples pour le calcul des temps de réponse. Sur les API CPM1/CPM1A, les zones LR comprises entre LR 00 et LR 15 sont utilisées dans le cadre de liaisons Inter API et le temps de transmission est fixé à 12 ms. Retard au travail entrée : 8 ms (constante de temps d’entrée : valeur par défaut) Temps de cycle du côté maître : 10 ms Temps de cycle du côté esclave : 15 ms Retard au travail sortie : 10 ms Port périphérique : Non utilisé. Temps minimum de réponse d’E/S Le CPM1/CPM1A a le temps de réponse le plus court dans les circonstances suivantes : 1, 2, 3... 1. Il reçoit un signal d’entrée juste avant la phase de rafraîchissement des entrées à l’intérieur du cycle. 2. La prise en charge des communications du Maître survient au moment précis où commence la transmission Maître-Esclave. 467 Chapitre Temps de cycle et temps de réponse des E/S des CPM1/CPM1A 8-1 3. La prise en charge des communications de l’Esclave survient juste après la fin de la transmission. Point d’entrée Retard ON entrée (8 ms) Rafraîchissement des E/S Surveillance, communications, ... Bit d’entrée Maître Exécution du programme Traitement par l’UC Temps de cycle du côte maître (10 ms) Maître à Esclave Temps de transmission (12 ms) Traitement par l’UC Exécution du programme Esclave Temps de cycle du côte esclave (15 ms) Point de sortie Retard ON sortie (10 ms) Temps de réponse d’E/S mini = 8+10+12+15+10 = 55 ms Formule de calcul = Temps de réponse d’entrée à l’état ON + Temps de cycle du côte maître + Temps de cycle du côte esclave + Temps de réponse de sortie à l’état ON Le CPM1/CPM1A a le temps de réponse le plus long dans les circonstances suivantes : Temps maximum de réponse d’E/S 1, 2, 3... 1. Il reçoit un signal d’entrée juste après la phase de rafraîchissement des entrées à l’intérieur du cycle. 2. La prise en charge des communications du Maître s’effectue juste après la transmission Maître-Esclave. 3. La transmission prend fin juste après la prise en charge des communications de l’Esclave. Temps de réponse maximum des E/S Temps de réponse d’entrée à l’état ON + Temps de cycle du côte maître x 2 + Temps de transmission x 3 + Temps de réponse de sortie à l’état ON. Point d’entrée Rafraîchissement des E/S Retard ON entrée Prise en charge du port périphérique Maître Bit d’entrée Traitement par UC Exécution du prog. Exécution du prog. Exécution du prog. (Transmission de données par rapport au point d’entrée) Maître #1 Maître à Esclave Traitement par UC Temps de Temps de transmis- Esclave à Maître transmis- Maître à Esclave sion sion Exécution du prog. Esclave #1 Esclave Exécution du prog. Exécution du prog. Temps de transmission Exécution du prog. Esclave #2 Exécution du prog. Esclave #3 Retard OFF sortie Point de sortie Temps de réponse d’E/S maximum = 8 + 10 x 2 + 12 x 3 + 15 x 3 + 10 = 119 (ms) 468 Chapitre Temps de cycle et temps de réponse des E/S des CPM1/CPM1A 8-1 8-1-5 Temps de traitements des interruptions Ce chapitre définit les temps de traitement compris entre l’exécution d’une interruption et l’appel du programme de traitement d’interruptions, et entre l’exécution du programme de traitement d’interruptions et le retour à l’emplacement initial. Cette définition s’applique aux interruptions des entrées, des temporisations cycliques et du compteur à grande vitesse. 1, 2, 3... 1. Source d’interruption 2. Temps de traitement des interruptions à l’état ON 3. Attente de la fin du traitement du masque d’interruption 4. Modification du traitement des interruptions 5. Acheminement des interruptions (CPM1A seulement) 6. Retour à l’emplacement initial Le tableau ci-dessous définit le temps compris entre la génération du signal d’interruption et l’appel du programme de traitement d’interruptions, et entre l’exécution du programme de traitement d’interruptions et le retour à l’emplacement initial du programme. Elément Contenu Durée Temps de traitement des interruptions à l’état ON Temps séparant le moment où le bit d’entrée d’interruption passe à l’état 100 !s ON et le moment où l’interruption est exécutée. Il varie d’une interruption à l’autre. Attente de la fin du traitement du masque d’interruption Temps d’attente des interruptions jusqu’à la fin du traitement. Ceci intervient pendant le traitement du masque. Voir détails ci-après. Voir ci-dessous. Modification du traitement des interruptions Retour Temps nécessaire à la modification du traitement des interruptions. 30 !s Temps de retour au traitement interrompu, après l’exécution de RET(93). 30 !s Traitement du masque Les interruptions sont masquées durant le traitement des opérations décrites ci-dessous. Jusqu’à la fin du traitement, toutes les interruptions resteront masquées pendant les intervalles de temps spécifiés. Génération et correction des erreurs non fatales : Lorsqu’une erreur non fatale est générée et que l’erreur associée est enregistré dans le CPM1, ou lorsqu’une erreur est corrigée, les interruptions sont masquées pendant 100 !s au maximum jusqu’à la fin du traitement. Edition en ligne : Les interruptions sont masquées pendant 600 !s au maximum (pour une édition entre DM 6144 et DM 6655) lorsque l’édition en ligne est exécutée au cours d’une opération. De plus, le traitement système est mis en attente durant un maximum de 170 !s pendant l’édition. Exemple de calcul Cet exemple indique le temps de réponse de traitement d’interruption (entre le moment où l’entrée d’interruption passe à l’état ON et le lancement du programme de traitement d’interruptions) lorsque des interruptions des entrées sont utilisées dans les conditions indiquées ci-dessous : Temps de réponse minimum + Temps de traitement des interruptions à l’état ON : Temps de mise en veille du masque : Traitement des modifications d’interruptions : Temps de réponse minimum : 100 !s 0 !s 30 !s 130 !s 469 Chapitre Temps de cycle et temps de réponse des E/S des CPM1/CPM1A 8-1 Temps de réponse maximum (Sauf pour une édition en ligne entre DM 6144 et DM6655) Temps de traitement des interruptions à l’état ON: 100 !s Temps de mise en veille du masque : 170 !s + Traitement des modifications 30 !s d’interruptions : Temps de réponse maximum : 300 !s Outre les temps de réponse indiqués ci-dessus, le temps nécessaire à l’exécution du programme de traitement des interruptions et un temps de retour de 30 !s doivent également être pris en compte pour le retour au processus interrompu. 8-1-6 Temps d’exécution des instructions sur les CPM1/CPM1A Le tableau suivant liste les temps d’exécution des instructions CPM1/CPM1A. Instructions de base Code Mnémonique Temps d’exécution d e écut o à l’état é ON (!s) --------------------------- LD LD NOT AND AND NOT OR OR NOT AND LD OR LD OUT OUT NOT SET RSET TIM 1,72 --- CNT 12,5 , Conditions (En haut : min. ; en bas : max.) Temps d’exécution à l’état OFF (!s) Aucune RSET --- Constante pour la SV :DM pour la SV Constante pour la SV :DM pour la SV 16,2 31,4 14,1 29,1 IL JMP 1,32 0,72 4,0 5,8 5,9 10,0 , 16,0 31 6,2 6,2 6,4 6,4 6,6 6,6 Instructions spéciales Code Mnémonique 00 01 02 03 04 05 06 07 08 09 10 NOP END IL ILC JMP JME FAL FALS STEP SNXT SFT 470 Temps d’exécution à l’état ON (!s) Conditions (En haut : min. ; en bas : max.) 0,36 10,8 4,6 3,6 4,3 4,7 38,5 5,0 14,9 14,2 Aucune 21,9 34,1 93,6 Avec registre à décalage d’un mot Avec registre à décalage de 10 mots Avec registre à décalage de 100 mots Temps d’exécution à l’état OFF (!s) 2,6 3,6 2,4 4,7 5,5 5,4 11,1 7,6 Réinit. 19,7 26,5 60,1 IL 2,6 2,6 2,6 JMP 2,6 2,6 2,6 Chapitre Temps de cycle et temps de réponse des E/S des CPM1/CPM1A Code Mnémonique 11 KEEP 12 CNTR Temps d’exécution à l’état ON (!s) 6,2 Aucune Constante pour la SV :DM pour la SV Aucune Aucune 13 DIFU 25,8 41,2 11,8 14 DIFD 11,0 15 TIMH Conditions (En haut : min. ; en bas : max.) Temps d’exécution à l’état OFF (!s) Réinit. 6,1 IL 3,1 JMP 3,1 Réinit. 16,8 , IL 12,2 , JMP 12,2 , Décalage 10,1 Décalage 10,0 IL JMP 12,2 IL 12,2 JMP 9,9 2,3 Réinit. 25,7 , IL 28,4 , JMP 15,8 , 41,2 , 43,6 , 15,8 , 19,0 20,2 19,0 20,2 Exécution normale, constante pour la SV Exécution d’interruption, constante pour la SV Exécution normale, :DM pour la SV Exécution d’interruption, :DM pour la SV 5,6 , 16 WSFT 29,2 40,7 1,42 ms 17 ASFT 29,6 50,2 1,76 ms Avec registre à décalage d’un mot Avec registre à décalage de 10 mots Avec registre à décalage de 1 024 mots via :DM Décalage d’un mot Décalage de 10 mots Décalage de 1 023 mots via :DM 20 CMP 15,8 17,2 46,3 Comparaison d’une constante à un mot Comparaison de deux mots Comparaison de deux :DM 5,6 , 21 MOV MVN Transfert d’une constante à un mot Transfert d’un mot à l’autre Transfert d’un :DM à un :DM Comparaison d’une constante à un mot Transfert d’un mot à l’autre Transfert d’un :DM à un :DM 5,6 , 22 16,3 17,7 45,5 16,4 17,5 45,7 23 BIN 31,6 45,7 Conversion d’un mot à un mot Conversion d’un :DM à un :DM 5,6 , 24 BCD 29,5 57,3 Conversion d’un mot à un mot Conversion d’un :DM à un :DM 5,6 , 25 ASL 17,3 31,3 Décalage d’un mot Décalage d’un :DM 5,5 , 26 ASR 16,9 31,1 Décalage d’un mot Décalage d’un :DM 5,5 , 27 ROL ROR Rotation Rotation Rotation Rotation 5,5 , 28 14,5 28,5 14,5 28,5 29 COM 18,1 32,1 Rotation d’un mot Inversion d’un :DM 5,5 , 30 ADD 29,5 30,9 72,7 Constante + mot # mot Mot + mot # mot :DM + :DM # :DM 5,6 , d’un mot d’un :DM d’un mot d’un :DM 8-1 5,6 , 5,6 , 5,5 , 471 Chapitre Temps de cycle et temps de réponse des E/S des CPM1/CPM1A Code Mnémonique SUB Temps d’exécution à l’état ON (!s) 29,3 30,5 72,5 31 32 Conditions (En haut : min. ; en bas : max.) Constante -- mot # mot Mot -- mot # mot :DM -- :DM # :DM 5,6 , MUL 49,1 Constante ¢ mot # mot 5,6 50,5 Mot ¢ mot # mot 95,1 :DM ¢ :DM # :DM Temps d’exécution à l’état OFF (!s) 33 DIV 47,7 50,9 94,3 Mot $ constante # mot mot $ mot # mot :DM $ :DM # :DM 5,6 , 34 ANDW 27,1 28,7 70,7 Constante mot # mot Mot mot # mot :DM :DM # :DM 5,6 , 35 ORW 27,1 28,7 70,7 Constante V mot # mot Mot V mot # mot :DM V :DM # :DM 5,6 , 36 XORW 27,1 28,7 70,5 Constante V mot # mot Mot V mot # mot :DM V :DM # :DM 5,6 , 37 XNRW 27,0 28,6 70,5 Constante V mot # mot Mot V mot # mot :DM V :DM # :DM 5,6 , 38 INC 17,9 31,9 Incrémentation d’un mot Incrémentation d’un :DM 5.5 39 DEC 18,3 32,3 Décrémentation d’un mot Décrémentation d’un :DM 5,5 , 40 41 STC CLC 6,3 6,3 Aucune 5,5 5,5 46 MSG 21,5 35,7 Avec un message dans les mots Avec un message dans un :DM 5,5 , 50 ADB 30,5 32,1 73,9 Constante + mot # mot Mot + mot # mot :DM + :DM # :DM 5,6 , 51 SBB 30,9 32,7 74,5 Constante -- mot # mot Mot -- mot # mot :DM -- :DM # :DM 5,6 , 52 MLB 34,7 Constante ¢ mot # mot 5,6 36,3 Mot ¢ mot # mot 80,7 :DM ¢ :DM # :DM 53 DVB 35,1 36,7 81,1 Mot $ constante # mot Mot $ mot # mot :DM $ :DM # :DM 5,6 , 54 ADDL 48,9 94,7 Mot + mot # mot :DM + :DM # :DM 5,6 , 55 SUBL 48,9 94,7 Mot -- mot # mot :DM -- :DM # :DM 5,6 , 56 MULL 138,7 Mot ¢ mot # mot 5,6 184,3 :DM ¢ :DM # :DM 472 8-1 Chapitre Temps de cycle et temps de réponse des E/S des CPM1/CPM1A Code Mnémonique 57 DIVL 60 CMPL 61 INI 62 PRV 63 CTBL Temps d’exécution à l’état ON (!s) 136,7 181,3 30,4 60,8 112,0 126,0 48,0 48,0 120,0 128,0 46,0 60,0 62,2 78,0 106,3 120,3 775,5 799,5 64 SPED 65 PULS 67 BCNT 68 BCMP 711,5 722,5 91,9 106,3 693,5 709,5 607,5 621,5 73,6 75,0 88,8 62,0 78,0 52,6 4,08 ms 79,6 80,8 123,2 Conditions (En haut : min. ; en bas : max.) Mot $ mot # mot :DM $ :DM # :DM Comparaison de mots Comparaison de :DM Démarrage d’une comparaison via un mot Démarrage d’une comparaison via :DM Arrêt d’une comparaison via un mot Arrêt d’une comparaison via :DM Modification d’une PV via un mot Modification d’une PV via :DM Arrêt d’une sortie d’impulsions via un mot Arrêt d’une sortie d’impulsions via :DM Définition d’une sortie via un mot Définition d’une sortie via :DM Tableau de cibles avec 1 cible en mots et départ Tableau de cibles avec 1 cible en :DM et départ Tableau de cibles avec 16 cibles en mots et départ Tableau de cibles avec 16 cibles en :DM et start Tableau de plages en mots et départ Tableau de plages en :DM et départ Tableau de cibles avec 1 cible en mots Tableau de cibles avec 1 cible en :DM Tableau de cibles avec 16 cibles en mots Tableau de cibles avec 16 cibles en :DM Tableau de plages en mots Tableau de plages en :DM Définition d’une constantee Définition d’un mot Définition d’un :DM Définition d’un mot Définition d’un :DM Comptage d’un mot Comptage de 6 656 mots via :DM Comparaison de constante, résultats dans un mot Comparaison de mot, résultats dans un mot Comparaison d’une :DM, résultats dans une :DM 8-1 Temps d’exécution à l’état OFF (!s) 5,6 , 5,6 , 5,6 , 5,6 , 5,6 5,6 , 5,6 5,6 , 5,6 , 5,6 473 Chapitre Temps de cycle et temps de réponse des E/S des CPM1/CPM1A Code Mnémonique 69 STIM Temps d’exécution à l’état ON (!s) 47,5 58,7 47,9 59,1 70 XFER 71 BSET 73 XCHG 74 SLD 75 SRD 76 MLPX 77 DMPX 78 SDEC 80 DIST 33,5 63,5 25,7 54,1 45,5 47,1 1,78 ms 28,1 38,3 1,12 ms 30,5 59,1 25,9 51,7 3,02 ms 25,9 51,7 3,02 ms 47,7 92,7 59,5 95,5 51,1 96,3 39,1 40,9 84,7 63,4 65,0 109,6 474 Conditions (En haut : min. ; en bas : max.) Départ d’interruption monocoup défini par un mot Départ d’interruption monocoup défini par un :DM Départ d’interruption programmée défini par un mot Départ d’interruption programmée défini par un :DM Lecture de temporisation définie par un mot Lecture de temporisation définie par un :DM Arrêt de temporisation définie par un mot Arrêt de temporisation définie par un :DM Transfert d’une constante à un mot Transfert d’un mot à un mot Transfert de 1 024 mots via :DM Définition d’une constante pour 1 mot Affectation d’une constante définie pour un mot à 10 mots Définition d’un :DM pour 1 024 mots Mot # mot :DM # :DM Décalage d’un mot Décalage de 10 mots Décalage de 1 024 mots via :DM Décalage d’un mot Décalage de 10 mots Décalage de 1 024 mots via :DM Décodage de mot à mot Décodage d’un :DM à :DM Codage de mot à mot Codage d’un :DM à un :DM Décodage de mot à mot Décodage d’un :DM à un :DM Définition d’une constante pour un mot + 1 mot Définition d’une constante pour un mot à un mot + 1 mot Définition d’une constante pour :DM à un :DM +:DM Définition d’une constante pour une batterie Définition d’un mot pour une batterie Définition d’un :DM pour une batterie via :DM 8-1 Temps d’exécution à l’état OFF (!s) 5,6 5,6 , 5,6 , 5,6 , 5,6 , 5,6 , 5,6 , 5,6 , 5,6 , 5,6 , Chapitre Temps de cycle et temps de réponse des E/S des CPM1/CPM1A Code Mnémonique 81 COLL Temps d’exécution à l’état ON (!s) 42,6 43,6 83,4 78,0 79,2 1,76 ms 66,8 68,0 112,0 82 MOVB 83 MOVD 84 SFTR 85 TCMP 32,5 37,5 79,1 28,3 33,3 75,5 39,3 52,9 1,42 ms 57,7 58,9 101,9 86 ASC 89 INT 56,7 103,9 32,3 46,3 29,1 43,1 27,3 41,5 29,7 43,7 15,3 15,3 15,9 15,9 Conditions (En haut : min. ; en bas : max.) Définition d’une constante pour un mot + un mot à un mot Définition d’une constante pour un mot + un mot à un mot Définition d’une constante pour :DM + :DM à un :DM Définition d’un mot + constante pour une batterie FIFO Définition d’une constante pour un mot + mot à une batterie FIFO Définition d’une constante pour un :DM + :DM à une batterie FIFO via :DM Définition d’une constante pour un mot + constante à une batterie LIFO Définition d’une constante pour un mot + mot à une batterie LIFO Définition d’une constante pour un :DM + :DM à une batterie LIFO via :DM Transfert d’une constante à un mot Transfert d’un mot à l’autre Transfert d’un :DM à un :DM Transfert d’une constante à un mot Transfert d’un mot à l’autre Transfert d’un :DM à un :DM Décalage d’un mot Décalage de 10 mots Décalage de 1 024 mots via :DM Comparaison d’une constante à un tableau défini en mots Comparaison d’un mot d’un tableau défini en mots Comparaison d’un :DM à un tableau défini en :DM Mot # mot :DM # :DM Définition de masques via un mot Définition de masques via :DM Suppression d’interruptions via un mot Suppression d’interruptions via :DM Lecture d’état de masque via un mot Lecture d’état de masque via :DM Modification de SV de compteur via un mot Modification de SV de compteur via :DM Masquage de toutes les interruptions via un mot Masquage de toutes les interruptions via :DM Suppression de toutes les interruptions via Suppression de toutes les interruptions via :DM 8-1 Temps d’exécution à l’état OFF (!s) 5,6 5,6 , 5,6 , 5,6 , 5,6 5,6 , 5,6 , 475 Chapitre Temps de cycle des CPM2A/CPM2C et temps de réponse d’E/S Code Mnémonique 91 92 93 SBS SBN RET 97 99 8-2 Temps d’exécution à l’état ON (!s) 36,6 1,7 15,0 Conditions (En haut : min. ; en bas : max.) Aucune 5,5 1,7 2,5 IORF 40,0 142,6 135,4 Rafraîchissement d’IR 000 Rafraîchissement d’un mot d’entrée Rafraîchissement d’un mot de sortie 6,0 , MCRO 74,0 116,4 Avec opérandes d’E/S définis en mots Avec opérandes d’E/S définis en :DM 5,6 , 8-2 Temps d’exécution à l’état OFF (!s) Temps de cycle des CPM2A/CPM2C et temps de réponse d’E/S 8-2-1 Temps de cycle des CPM2A/CPM2C Le processus compris dans un cycle d’un CPM2A/CPM2C sont indiqués dans le tableau suivant qui définit également leurs temps de traitement respectifs. Processus Contenu Temps nécessaire Surveillance Définition de l’horloge du chien de garde des cycles, 0,3 ms vérification du bus d’E/S, vérification de l’UM, rafraîchissement des horloges, rafraîchissement des bits affectés aux nouvelles fonctions, etc... Exécution Exécution du programme utilisateur Calcul du temps de cycle Retard automatique jusqu’au temps de cycle miniNégligeable sauf lorsque le temps lui-même est mum, lorsque ce dernier est défini dans le DM 6619 requis. du Setup de l’API. Temps total d’exécution des instructions (varie selon le contenu du programme utilisateur). Calcul du temps de cycle. Rafraîchissement des E/S Ecriture des informations de sortie (résultats d’exécution du programmation) dans les bits de sortie. Lecture des informations en entrée dans les bits d’entrée. UC 30 points : UC 40 points : UC 60 points : Unité d’E/S d’extension : 0,3 ms 0,3 ms 0,3 ms 0,3 ms Prise en charge Traitement des communications dans le cas où un 0,55 ms min., 5% ou moins du temps de cycle du port périphérique de programmation ou un convertisseur jusqu’à 131 ms RS-232C de communications est connecté au port RS-232C. (Le pourcentage de cycle affecté à la prise en charge du port périphérique RS-232C peut être modifié en DM 6616). Prise en charge Les périphériques reliés au port périphérique sont du port des pris en charge. ports périphériques Effets du temps de cycle 476 0,55 ms min., 5% ou moins du temps de cycle jusqu’à 131 ms (Le pourcentage de cycle affecté à la prise en charge du port périphérique RS-232C peut être modifié en DM 6617). Les effets du temps de cycle sur les opérations des CPM2A/CPM2C sont indiqués ci-dessous. Dans le cas d’un long temps de cycle affectant les opérations, Chapitre Temps de cycle des CPM2A/CPM2C et temps de réponse d’E/S 8-2 réduire le temps de cycle ou améliorer le temps de réponse à l’aide de programmes d’interruption. Temps de cycle 1 ms ou plus 10 ms ou plus 20 ms ou plus Conséquences TMHH(----) peut être imprécise dans le cas de l’utilisation de TC 000 à TC 003 ou TC 008 à TC 255 (fonctionnement normal de TC 004 à TC 007). dans le cas de l’utilisation de TC 004 à TC 255 (fonctionnement normal de TC 000 à TC 003). Le programme utilisant le bit d’horloge de 0,02 seconde (SR 25401) peut être imprécis. 100 ms ou plus TIM peut être imprécis. Le programme utilisant le bit d’horloge de 0,01 seconde (SR 25500) peut être imprécis. Une erreur CYCLE TIME OVER (temps de cycle terminé) est générée (SR 25309 passe à l’état ON). 120 ms ou plus La SV du temps de surveillance de FALS 9F est dépassée. Une erreur système (FALS 9F) est générée et l’opération s’arrêt. Le programme utilisant le bit d’horloge de 0,02 seconde (SR 25501) peut être imprécis. 200 ms ou plus Exemple de temps de cycle Processus Dans cet exemple, le temps de cycle est calculé pour une unité centrale CPM2A/CPM2C à 30 points d’E/S (18 points d’entrée et 12 points de sortie). Les E/S sont paramétrées de la façon suivante : 18 entrées : 2 mots (00000 à 00011, 00100 à 00105) 12 sorties : 2 mots (01000 à 01007, 01100 à 01103) Les autres conditions de fonctionnement sont supposées être : Programme utilisateur : 500 instructions (constituées seulement de LD et OUT) Temps de cycle : Variable (pas de minimum défini) Le temps de traitement moyen d’une instruction du programme utilisateur est estimé à 1,26 !s. Les temps de cycle sont indiqués dans le tableau suivant : Temps avec périphérique de programmation 0,3 ms Temps sans périphérique de programmation 0,3 ms 2. Exécution du programme 1,26 " 500 (!s) 0,6 ms 0,6 ms 3. Calcul du temps de cycle Négligeable 0 ms 0 ms 4. Rafraîchissement des E/S 5. Prise en charge des ports périphériques Temps de cycle Fixe 0,3 ms 0,3 ms Temps minimum 0,55 ms 0 ms (1) + (2) + (3) + (4) + (5) 1,75 ms 1,2 ms 1. Surveillance Méthode de calcul Fixe Rem. 1. Le temps de cycle peut être lu à partir de l’API via un périphérique de programmation. 2. Le temps de cycle maximum et le temps de cycle actuel sont enregistrés dans AR 14 et AR 15. 3. Le temps de cycle peut varier selon les conditions de fonctionnement et ne correspondra pas nécessairement avec précision à la valeur calculée. 8-2-2 Temps de réponse d’E/S Le temps de réponse d’E/S est le temps nécessaire à l’API, après la réception d’un signal en entrée (après passage à l’état ON du bit d’entrée), pour vérifier et traiter les informations et générer un signal de commande (générer le résultat du traitement dans un bit de sortie). Ce temps de réponse varie selon les contraintes temporelles et les conditions de traitement. Les temps de réponse d’E/S minimum et maximum sont indiqués ici, en utilisant comme exemple le programme ci-dessous. Sortie Entrée 477 Chapitre Temps de cycle des CPM2A/CPM2C et temps de réponse d’E/S 8-2 Les conditions ci-dessous sont utilisées dans cet exemple pour calculer les temps de réponse d’E/S. Retard au travail entrée : 10 ms (constante de temps d’entrée : valeur par défaut) 1 ms (comprend le rafraîchissement des E/S) 14 ms 15 ms Non utilisé. Temps de surveillance : Temps d’exécution des instructions : Retard au travail sortie : Ports périphérique : Temps minimum de réponse d’E/S Le CPM2A/CPM2C a le temps de réponse le plus court lorsqu’il reçoit un signal d’entrée juste avant de rafraîchir les E/S, comme illustré ci-dessous : Point d’entrée Retard ON entrée (10 ms) Bit d’entrée Rafraîchissement des E/S Exécution du programme et des autres processus (15 ms) Rafraîchissement des E/S Retard ON sortie (10 ms) Point de sortie Temps de réponse d’E/S mini = 10+15+15 = 40 ms Temps maximum de réponse d’E/S Le CPM2A/CPM2C a le temps de réponse le plus long lorsqu’il reçoit le signal d’entrée juste après la phase de rafraîchissement des entrées à l’intérieur du cycle, comme le montre l’illustration ci-dessous. Ceci entraîne un temps de réponse d’un cycle environ. Point d’entrée Retard ON entrée (10 ms) Bit d’entrée Exécution du proRafraîchissement gramme et des autres des E/S processus (15 ms) Rafraîchissement des E/S Exécution du programme et des autres processus (15 ms) Rafraîchissement des E/S Retard ON sortie (15 ms) Point de sortie Temps de réponse d’E/S maxi = 10+15 " 2+15 = 55 ms 8-2-3 Temps de réponse de liaison d’API en mode “Inter API” Lorsque deux CPM2A/CPM2C sont reliés en mode Inter API le temps de réponse d’E/S est le temps nécessaire à la transmission d’une entrée exécutée sur l’un des CPM2A/CPM2C à l’autre CPM2A/CPM2C dans le cadre de ommunications d’API en mode Inter API. 478 Chapitre Temps de cycle des CPM2A/CPM2C et temps de réponse d’E/S 8-2 Les temps de réponse d’E/S minimum et maximum sont indiqués ici, en utilisant comme exemple les instructions suivantes, exécutées aux niveaux maître et esclave. Les communications s’effectuent ici en mode “maître-esclave”. Maître Esclave Sortie (LR) Entrée (LR) Entrée Sortie Les conditions suivantes sont utilisées comme exemples pour le calcul des temps de réponse. Sur les API CPM2A/CPM2C, les zones LR comprises entre LR 00 et LR 15 sont utilisées dans le cadre de liaisons de données Inter API et le temps de transmission est fixé à 21 ms. Retard au travail entrée : Temps de cycle du côté maître : Temps de cycle du côté esclave : Retard au travail sortie : Temps minimum de réponse d’E/S 10 ms (constante de temps d’entrée : valeur par défaut) 10 ms 15 ms 15 ms Le CPM2A/CPM2C a le temps de réponse le plus court dans les circonstances suivantes : 1, 2, 3... 1. Il reçoit un signal d’entrée juste avant la phase de rafraîchissement des entrées à l’intérieur du cycle. 2. La prise en charge des communications du Maître survient au moment précis où commence la transmission Maître-Esclave. 3. La prise en charge des communications de l’Esclave survient juste après la fin de la transmission. Point d’entrée Retard ON entrée (10 ms) Maître Rafraîchissement des E/S Surveillance, communications, ... Bit d’entrée Traitement par UC Exécution du programme Temps de cycle du côte maître (10 ms) Maître à Esclave Temps de transmission (21 ms) Traitement par UC Exécution du programme Retard ON sortie (15 ms) Esclave Point de sortie Temps de cycle du côte esclave (15 ms) Temps de réponse d’E/S mini = 10+10+12+15+15 = 62 ms Temps maximum de réponse d’E/S Le CPM2A/CPM2C a le temps de réponse le plus long dans les circonstances suivantes : 479 Chapitre Temps de cycle des CPM2A/CPM2C et temps de réponse d’E/S 1, 2, 3... 8-2 1. Il reçoit un signal d’entrée juste après la phase de rafraîchissement des entrées à l’intérieur du cycle. 2. La prise en charge des communications du Maître s’effectue juste après la transmission Maître-Esclave. 3. La transmission prend fin juste après la prise en charge des communications de l’Esclave. Temps de réponse d’entrée à l’état ON + Temps de cycle du Maître " 2 + Temps de transmission " 3 + Temps de cycle de l’esclave " 2 + Temps de réponse de sortie à l’état ON. Temps maximum de réponse d’E/S Point d’entrée Rafraîchissement des E/S Retard ON entrée Prise en charge du port périphérique Maître Bit d’entrée Traitement par UC Exécution du prog. Exécution du prog. Exécution du prog. (Transmission de données par rapport au point d’entrée) Maître #1 Temps de Maître à Esclave transmission Traitement par UC Exécution du prog. Temps de Esclave à Maître transmis- Maître à Esclave sion Exécution du prog. Esclave #1 Esclave Exécution du prog. Temps de transmission Exécution du prog. Esclave #2 Point de sortie Exécution du prog. Esclave #3 Retard OFF sortie Temps de réponse d’E/S maximum = 10 + 10 " 2 + 12 " 3 + 15 " 2 + 15 = 111 (ms) 8-2-4 Temps de traitement des interruptions Ce chapitre définit les temps de traitement compris entre l’exécution d’une interruption et l’appel du programme de traitement d’interruptions, et entre l’exécution du programme de traitement d’interruptions et le retour à l’emplacement initial. Cette définition s’applique aux interruptions des entrées, des temporisations cycliques et du compteur à grande vitesse. 1, 2, 3... Elément Temps de traitement des interruptions à l’état ON Attente de la fin du traitement du masque d’interruption 1. Source d’interruption 2. Temps de traitement des interruptions à l’état ON 3. Attente de la fin du traitement du masque d’interruption 4. Modification du traitement des interruptions 5. Acheminement des interruptions (CPM1A/CPM2A/CPM2C seulement) 6. Retour à l’emplacement initial Le tableau ci-dessous définit le temps compris entre la génération du signal d’interruption et l’appel du programme de traitement d’interruptions, et entre l’exécution du programme de traitement d’interruptions et le retour à l’emplacement initial du programme. Contenu Modification du traitement Temps nécessaire à la modification du traitement des interruptions. des interruptions Retour Temps de retour au traitement interrompu, après l’exécution de RET(93). 480 Durée Temps séparant le moment où le bit d’entrée d’interruption passe à l’état ON et 100 !s le moment où l’interruption est exécutée. Il varie d’une interruption à l’autre. Lorsqu’un processus supprimant (masquant) l’interruption est exécuté, cette Voir ci-desvaleur représente le temps nécessaire à l’exécution de ce processus. sous. 30 !s 30 !s Temps de cycle des CPM2A/CPM2C et temps de réponse d’E/S Chapitre 8-2 Traitement du masque Les interruptions sont masquées durant le traitement des opérations décrites ci-dessous. Jusqu’à la fin du traitement, toutes les interruptions resteront masquées pendant les intervalles de temps spécifiés. Génération et correction des erreurs non fatales : Les interruptions sont masquées pendant 100 !s au maximum lorsqu’une erreur non fatale est générée et que l’erreur associée est enregistrée dans l’API ou lorsqu’une erreur est corrigée. Edition en ligne : L’opération cesse et les interruptions sont masquées pendant 600 !s au maximum (pour une édition entre DM 6144 et DM 6655) lorsque l’édition en ligne est exécutée ou lors d’un changement de paramètre par STUP(----) au cours d’une opération. Le programme ou le Setup de l’API peuvent être écrasés durant ce temps d’attente. Outre ce temps d’attente, les interruptions peuvent être masquées pendant 170 !s au maximum pour le traitement système. Exemple de calcul Cet exemple indique le temps de réponse de traitement d’interruption (entre le moment où l’entrée d’interruption passe à l’état ON et le lancement du programme de traitement d’interruptions) lorsque des interruptions des entrées sont utilisées dans les conditions indiquées ci-dessous : Temps de réponse minimum Temps de traitement des interruptions à l’état ON : 100 !s Temps de mise en veille du masque : 0 !s + Traitement des modifications 30 !s d’interruptions : Temps de réponse minimum : 130 !s Temps de réponse maximum (Sauf pour une édition en ligne entre DM 6144 et DM 6655) Temps de traitement des interruptions à l’état ON : 100 !s Temps de mise en veille du masque : 170 !s + Traitement des modifications 30 !s d’interruptions : Temps de réponse maximum : 300 !s Outre les temps de réponse indiqués ci-dessus, le temps nécessaire à l’exécution du programme de traitement des interruptions et un temps de retour de 30 !s doivent également être pris en compte pour le retour au processus interrompu. 481 Chapitre Temps de cycle des CPM2A/CPM2C et temps de réponse d’E/S 8-2 8-2-5 Temps d’exécution des instructions sur les CPM2A/CPM2C Le tableau suivant liste les temps d’exécution des instructions CPM2A/CPM2C. Instructions de base Code Mnémonique Temps d e écut o à d’exécution l’état é ON (!s) --------------------------- LD LD NOT AND AND NOT OR OR NOT AND LD OR LD OUT OUT NOT SET RSET TIM 0,64 --- CNT 4,50 , Conditions (En haut : min. ; en bas : max.) Temps d’exécution à l’état OFF (!s) Aucune RSET --- Constante pour la SV :DM pour la SV Constante pour la SV :DM pour la SV 7,8 15,6 6,8 14,5 IL JMP 0,52 0,26 1,88 2.,58 , 4,76 , 7,6 15,4 2,9 2,9 2,9 2,9 3,1 3,1 Special Instructions Code Mnémonique Temps d’exécution à l’état ON (!s) 00 01 02 03 04 05 06 07 08 09 10 NOP END IL ILC JMP JME FAL FALS STEP SNXT SFT 0,15 6,2 1,1 1,6 0,95 2,1 20,5 2,9 7,3 5,1 Aucune 10,4 15,3 39,6 3,2 Avec registre à décalage d’un mot Avec registre à décalage de 10 mots Avec registre à décalage de 53 mots Aucune Constante pour la SV :DM pour la SV Aucune Aucune 11 KEEP 12 CNTR 13 DIFU 10,9 18,8 5,5 14 DIFD 5,3 482 Conditions (En haut : min.; en bas : max.) Temps d’exécution à l’état OFF (!s) 2,1 1,6 1,8 2,1 2,5 2,5 6,0 3,6 Reset 9,2 11,9 26,2 Reset 3,1 Reset 7,9 , Décalage 5,1 Décalage 5,4 IL 0,98 1,0 1,0 IL 1,2 IL 5,5 , JMP 0,98 1,0 1,0 JMP 1,3 JMP 5,6 , IL JMP 4,8 IL 0,96 JMP 4,7 0,97 Chapitre Temps de cycle des CPM2A/CPM2C et temps de réponse d’E/S Code Mnémonique 15 TIMH Temps d’exécution à l’état ON (!s) Conditions (En haut : min.; en bas : max.) 9,0 9,6 9,8 10,7 Exécution normale, constante pour la SV Exécution d’interruption, constante pour la SV Exécution normale, :DM pour la SV Exécution d’interruption, :DM pour la SV Temps d’exécution à l’état OFF (!s) Reset 13,0 14,4 20,8 22,2 16 WSFT 14,0 18,6 1,15 ms Avec registre à décalage d’un mot Avec registre à décalage de 10 mots Avec registre à décalage de 2 048 mots via :DM 2,6 , 17 ASFT 13,0 22,9 1,51 ms Décalage d’un mot Décalage de 10 mots Décalage de 2 048 mots via :DM 2,6 , 20 CMP 7,0 8,3 12,1 Comparaison d’une constante à une constante Comparaison de 2 mots Comparaison de 2 :DM 2,6 , 21 MOV 7,8 8,4 22,8 Transfert d’une constante à un mot Transfert d’un mot à l’autre Transfert d’un :DM à un :DM 2,6 , 22 MVN 7,9 8,4 22,8 Transfert d’une constante à un mot Transfert d’un mot à l’autre Transfert d’un :DM à un :DM 2,6 , 23 BIN 15,8 30,3 Conversion d’un mot à un mot Conversion d’un :DM à un :DM 2,6 , 24 BCD 14,6 29,0 Conversion d’un mot à un mot Conversion d’un :DM à un :DM 2,6 , 25 ASL 8,6 15,8 Décalage d’un mot Décalage d’un :DM 2,5 , 26 ASR 8,4 15,6 Décalage d’un mot Décalage d’un :DM 2,5 , 27 ROL 7,3 14,5 Rotation d’un mot Rotation d’un :DM 2,5 , 28 ROR 7,3 14,5 Rotation d’un mot Rotation d’un :DM 2,5 , 29 COM 8,9 16,1 Inversion d’un mot Inversion d’un :DM 2,5 , 30 ADD 14,7 16,0 37,6 Constante + constante # mot Mot + mot # mot :DM + :DM # :DM 2,6 , 31 SUB 14,6 15,8 37,5 Constante -- constante # mot Mot -- mot # mot :DM -- :DM # :DM 2,6 , 32 MUL 26,8 Constante ¢ constante # mot 2,6 28,3 Mot ¢ mot # mot 51,0 :DM ¢ :DM # :DM 25,9 27,5 50,1 Constante $ constante # mot mot $ mot # mot :DM $ :DM # :DM 33 DIV 8-2 IL 12,6 14,0 20,5 22,0 JMP 6,1 7,5 6,1 7,5 2,6 , 483 Chapitre Temps de cycle des CPM2A/CPM2C et temps de réponse d’E/S Code Mnémonique Temps d’exConditions (En haut : min.; en bas : max.) écution à l’état ON (!s) 12,3 Constante constante # mot 13,8 Mot mot # mot :DM :DM # :DM 35,4 34 ANDW 35 ORW 12,3 13,8 35,4 Constante V constante # mot Mot V mot # mot :DM V :DM # :DM 2,6 , 36 XORW 12,3 13,8 35,4 Constante V constante # mot Mot V mot # mot :DM V :DM # :DM 2,6 , 37 XNRW 12,3 13,8 35,5 Constante V constante # mot Mot V mot # mot :DM V :DM # :DM 2,6 , 38 INC 8,8 15,9 Incrémentation d’un mot Incrémentation d’un :DM 2,5 , 39 DEC 8,9 16,1 Décrémentation d’un mot Décrémentation d’un :DM 2,5 , 40 41 STC CLC 3,0 3,0 Aucune 2,5 2,5 46 MSG 9,9 17,8 Avec un message dans les mots Avec un message dans un :DM 2,5 , 47 RXD 71,9 314,5 Définition d’un mot, entrée 1 octet Définition d’un :DM, entrée 256 octets 2,6 , 48 TXD 32,4 264,5 2,6 , 27,7 42,2 Définition Définition RS-232C Définition Définition d’un mot, entrée 1 octet, RS-232C d’un :DM, entrée 256 octets, Temps d’exécution à l’état OFF (!s) 2,6 , d’un mot, entrée 1 octet, ligne hôte d’un :DM, entrée 1 octet, ligne hôte 50 ADB 14,1 15,6 37,4 Constante + constante # mot Mot + mot # mot :DM + :DM # :DM 2,6 , 51 SBB 14,4 15,9 37,7 Constante -- constante # mot Mot -- mot # mot :DM -- :DM # :DM 2,6 , 52 MLB 16,8 Constante ¢ constante # mot 2,6 18,5 Mot ¢ mot # mot 41,2 :DM ¢ :DM # :DM 53 DVB 16,9 18,6 41,3 Constante $ constante # mot Mot $ mot # mot :DM $ :DM # :DM 2,6 , 54 ADDL 25,3 48,6 Mot + mot # mot :DM + :DM # :DM 2,6 , 55 SUBL 25,3 48,6 Mot -- mot # mot :DM -- :DM # :DM 2,6 , 56 MULL 79,1 Mot ¢ mot # mot 2,6 102,1 :DM ¢ :DM # :DM 73,9 98,6 Mot $ mot # mot :DM $ :DM # :DM 57 484 DIVL 8-2 2,6 , Chapitre Temps de cycle des CPM2A/CPM2C et temps de réponse d’E/S Code Mnémonique 58 BINL 59 BCDL 60 CMPL 61 INI Temps d’exécution à l’état ON (!s) 23,9 38,5 19,1 33,7 14,8 30,6 68,8 12,0 43,3 51,8 42,8 50,8 60,1 42,7 50,7 17,8 20,0 27,6 Conditions (En haut : min.; en bas : max.) Conversion d’un mot de données à un mot Conversion d’un :DM à :DM Conversion d’un mot de données à un mot Conversion d’un :DM à un :DM Comparaison de mots Comparaison d’un :DM Départ de la comparaison du compteur grande vitesse Arrêt de la comparaison du compteur grande vitesse Définiton d’une constante pour modifier la PV du compteur à grande vitesse Définiton de :DM pour modifier la PV du compteur à grande vitesse Définition du mode progressif via une constante Définition du mode progressif via un :DM Arrêt de la sortie d’implulsions Définiton d’une constante pour modifier la PV de la sortie d’impulsions Définiton d’un :DM pour modifier la PV de la sortie d’impulsions Arrêt de la commande synchronisée du compteur grande vitesse Définition d’une constante pour modifier la PV du compteur d’interruptions Définition d’un :DM pour modifier la PV du compteur d’interruptions 8-2 Temps d’exécution à l’état OFF (!s) 2,6 , 2,6 , 2,6 , 2,6 485 Temps de cycle des CPM2A/CPM2C et temps de réponse d’E/S Code Mnémonique 62 PRV 63 CTBL 486 Chapitre 8-2 Temps d’exConditions (En haut : min.; en bas : max.) Temps d’exécution à l’état écution à l’état OFF (!s) ON (!s) 2,6 36,9 Lecture de la PV du compteur grande vitesse via un mot 44,7 Lecture de la PV du compteur grande vitesse via un :DM 36,6 Définition du mode progressif 44,3 Définition du mode progressif via un :D 38,5 Définition d’un mot pour utiliser la commande synchronisée 46,2 Définition de :DM pour utiliser la commande synchronisée 20,2 Lecture de l’état de sortie d’impulsions du compteur grande vitesse via un mot 27,4 Lecture de l’état de sortie d’impulsions du compteur grande vitesse via :DM 24,4 Lecture des résultats de comparaison de plages du compteur grande vitesse via un mot 32,4 Lecture des résultats de comparaison de plages du compteur grande vitesse via :DM 39,9 Lecture de la PV de sortie d’impulsions via un mot 47,8 Lecture de la PV de sortie d’impulsions via :DM 20,1 Lecture de la PV du compteur d’impulsions via un mot 27,1 Lecture de la PV du compteur d’impulsions via :DM 186,0 Enregistrement d’un tableau de comparaison de 2,6 valeurs cibles et départ de la comparaison en mode d’entrée d’impulsions ascendantes/descendante via un mot 807,5 Enregistrement d’un tableau de comparaison de valeurs cibles et départ de la comparaison en mode d’entrée d’impulsions ascendantes/descendante via un :DM 185,8 Enregistrement d’un tableau de comparaison de valeurs cibles et départ de la comparaison en mode progressif via un mot 781,9 Enregistrement d’un tableau de comparaison de valeurs cibles et départ de la comparaison en mode progressif via un :DM 410,0 Enregistrement d’un tableau de comparaison de plages et départ de la comparaison en mode progressif/dégressif via un mot 418,9 Enregistrement d’un tableau de comparaison de plages et départ de la comparaison en mode progressif/dégressif via un :DM 380,6 Enregistrement d’un tableau de comparaison de plages et départ de la comparaison en mode progressif via un mot 399,7 Enregistrement d’un tableau de comparaison de plages et départ de la comparaison en mode progressif via un :DM 183,4 Enregistrement d’un tableau de comparaison de valeurs cibles seulement en mode d’entrée d’impulsions ascendante/descendante via un mot Chapitre Temps de cycle des CPM2A/CPM2C et temps de réponse d’E/S Code Mnémonique Temps d’exConditions (En haut : min.; en bas : max.) écution à l’état ON (!s) 810,3 Enregistrement d’un tableau de comparaison de valeurs cibles seulement en mode d’entrée d’impulsions ascendante/descendante via un :DM 182,4 Enregistrement d’un tableau de comparaison de valeurs cibles seulement en mode d’entrée d’impulsions en mode progressif via un mot 776,3 Enregistrement d’un tableau de comparaison de valeurs cibles seulement en mode d’entrée d’impulsions en mode progressif via un :DM 351,0 Enregistrement d’un tableau de comparaison de plages seulement en mode d’entrée d’impulsions ascendante/descendante via un mot 359,1 Enregistrement d’un tableau de comparaison de plages seulement en mode d’entrée d’impulsions ascendante/descendante via un :DM 331,2 Enregistrement d’un tableau de comparaison de plages seulement en mode d’entrée d’impulsions en mode progressif via un 335,9 Enregistrement d’un tableau de comparaison de plages seulement en mode d’entrée d’impulsions en mode progressif via un :DM 64 SPED 44,6 53,8 42,9 52,0 34,1 39,8 65 PULS 38,4 46,6 40,0 48,1 66 SCL 37,9 39,2 59,9 Temps d’exécution à l’état OFF (!s) 2,6 Définition d’une constante en mode indépendant Définition d’un :DM en mode indépendant Définition d’une constante en mode de sortie d’impulsions continue Définition d’un :DM en mode de sortie d’impulsions continue Définition d’un mot pour modifier la fréquence de sortie Définition d’un pour modifier la fréquence de sortie Définition d’une impulsion relative pour la sortie 2,6 d’impulsions définie par un mot Définition d’une impulsion relative pour la sortie d’impulsions définie par un :DM Définition d’une impulsion absolue pour la sortie d’impulsions définie par un mot Définition d’une impulsion absolue pour la sortie d’impulsions définie par un :DM Définition d’un paramètre par un mot ; constante vers mot Définition d’un paramètre par un mot ; constante vers mot Définition d’un paramètre par :DM ;:DM vers :DM 2,6 67 BCNT 24,9 4,32 ms Comptage d’un mot Comptage de 2 048 mots via :DM 2,6 , 68 BCMP 35,3 Comparaison de constante, résultats vers un mot Comparaison de mot, résultats dans un mot Comparaison d’un :DM, résultats dans un :DM 2,6 38,3 58,1 8-2 487 Chapitre Temps de cycle des CPM2A/CPM2C et temps de réponse d’E/S Code Mnémonique 69 STIM 70 XFER 71 BSET 73 XCHG 74 SLD 75 SRD 76 MLPX 77 DMPX 78 SDEC 80 DIST 488 Temps d’exConditions (En haut : min.; en bas : max.) écution à l’état ON (!s) 25,7 Départ d’interruption en monocoup défini par une constante 47,8 Départ d’interruption en monocoup défini par un :DM 25,9 Départ d’interruption programmée défini par une constante 47,8 Départ d’interruption programmée défini par une:DM 34,0 Lecture de temporisation définie par une constante 46,4 Lecture de temporisation définie par un :DM 10,6 Arrêt temporisation 21,3 Transfert d’une constante à un mot 23,8 Transfert d’un mot à un mot 1,52 ms Transfert de 2 048 mots via :DM 13,8 Définition d’une constante pour une constante à un mot 14,3 Définition d’une constante pour un mot à un mot 971,1 Définition d’une constante pour :DM à 2 048 mots 14,5 Mot # mot :DM # :DM 29,3 12,3 Décalage d’un mot 23,9 Décalage de 10 mots 2,83 ms Décalage de 2 048 mots via :DM 12,3 Décalage d’un mot 23,9 Décalage de 10 mots 2,83 ms Décalage de 2 048 mots via :DM 16,8 Décodage d’un mot à un mot 46,1 Décodage d’un :DM à un :DM 19,7 Décodage d’un mot à un mot 52,1 Décodage d’un :DM à un :DM 19,8 Décodage d’un mot à un mot 48,3 Décodage d’un :DM à un :DM 18,7 Définition d’une constante pour une constante à un mot + un mot 20,2 Définition d’une constante pour un mot à un mot + un mot 43,1 Définition d’une constante pour :DM à un :DM +:DM 31,0 Définition d’une constante pour une constante à une batterie 32,7 Définition d’une constante pour un mot à une batterie 55,9 Définition d’une constante pour :DM pour une batterie via :DM 8-2 Temps d’exécution à l’état OFF (!s) 2,6 2,6 , 2,6 2,6 , 2,6 , 2,6 , 2,6 , 2,6 , 2,6 , 2,6 Chapitre Temps de cycle des CPM2A/CPM2C et temps de réponse d’E/S Code Mnémonique 81 COLL 82 MOVB 17,3 18,0 41,7 Comparaison d’une constante à un mot Transfert d’un mot à l’autre Transfert d’un :DM à un :DM 2,6 , 83 MOVD 13,8 16,2 38,1 Comparaison d’une constante à un mot Transfert d’un mot à l’autre Transfert d’un :DM à un :DM 2,6 , 84 SFTR 22,8 24,3 1,15 ms Décalage d’un mot Décalage de 10 mots Décalage de 2 048 mots via :DM 2,6 , 85 TCMP 27,5 Comparaison d’une constante à un tableau défini en mots Comparaison d’un mot à un tableau défini en mots Comparaison d’un :DM à un tableau défini en :DM 2,6 8-2 Temps d’exConditions (En haut : min.; en bas : max.) Temps d’exécution à l’état écution à l’état OFF (!s) ON (!s) 2,6 , 21,5 Définition d’une constante + un mot à un mot 21,9 Définition d’un mot + un mot à un mot 42,5 Définition d’une constante pour :DM + :DM à un :DM 31,5 Définition d’une constante pour un mot + constante à une batterie FIFO 32,0 Définition d’une constante pour un mot + mot à une batterie FIFO 784,7 Définition d’une constante pour un :DM + :DM à une batterie FIFO via :DM 33,6 Définition d’une constante pour un mot + constante à une batterie LIFO 34,0 Définition d’une constante pour un mot + mot à une batterie LIFO 57,1 Définition d’une constante pour un :DM + :DM à une batterie LIFO via :DM 28,0 48,3 86 ASC 19,1 52,2 Mot # mot :DM # :DM 2,6 , 89 INT 22,1 30,1 18,4 26,4 17,2 24,1 23,1 31,1 10,7 10,7 11,0 11,0 Définition de masques via un mot Définition de masques via :DM Suppression d’interruptions via un mot Suppression d’interruptions via :DM Lecture d’état de masque via un mot Lecture d’état de masque via :DM Modification de SV de compteur via un mot Modification de SV de compteur via :DM Masquage de toutes les interruptions via mot Masquage de toutes les interruptions via :DM Suppression de toutes les interruptions via mot Suppression de toutes les interruptions via :DM 2,6 , 91 92 93 SBS SBN RET 10,8 --6,2 Aucune 2,6 0,76 1,0 489 Chapitre Temps de cycle des CPM2A/CPM2C et temps de réponse d’E/S Code Mnémonique 97 IORF 99 MCRO Temps d’exécution à l’état ON (!s) 16,8 130,7 110,7 26,1 42,3 Conditions (En haut : min.; en bas : max.) Rafraîchissement d’IR 000 Rafraîchissement d’un mot d’entrée Rafraîchissement d’un mot de sortie Avec opérandes d’E/S définis par des mots Avec opérandes d’E/S définis par :DM 8-2 Temps d’exécution à l’état OFF (!s) 2,8 , 2,6 , Instructions d’expension sans codes de fonctions par défaut Code Mnémonique Temps d’exécution à l’état OFF (!s) --- ACC 66,5 92,1 66,2 92,2 65,5 75,0 45,4 53,8 65,5 75,0 45,5 53,6 65,0 74,5 45,4 53,5 65,4 74,8 45,5 53,6 --- AVG 23,2 23,9 84,2 490 Conditions (En haut : min. ; en bas : max.) Définition d’un mot en mode indépendant et en mode CW/CCW Définition d’un :DM en mode indépendant et en mode CW/CCW Définition d’un mot en mode indépendant et Feed/Dir Définition d’un :DM en mode indépendant et Feed/Dir Exécution de la désignation de mot en mode CW continu et CW/CCW Exécution de la désignation d’un :DM en mode CW continu et CW/CCW Modification de la désignation de mot en mode CW continu et CW/CCW Modification de la désignation d’un :DM en mode CW continu et CW/CCW Exécution de la désignation de mot en mode CCW continu et CW/CCW Exécution de la désignation d’un :DM en mode CCW continu et CW/CCW Modification de la désignation de mot en mode CCW continu et CW/CCW Modification de la désignation d’un :DM en mode CCW continu et CW/CCW Exécution de la désignation de mot en mode CW continu et Feed/Dir Exécution de la désignation d’un :DM en mode CW continu et Feed/Dir Modification de la désignation de mot en mode CW continu et Feed/Dir Modification de la désignation d’un :DM en mode CW continu et Feed/Dir Exécution de la désignation d’un mot en mode CCW continu et Feed/Dir Exécution de la désignation d’un :DM en mode CCW continu et Feed/Dir Modification de la désignation de mot en mode CCW continu et Feed/Dir Modification de la désignation d’un :DM en mode CCW continu et Feed/Dir Moyenne d’un cycle (définition par une constante) Moyenne d’un cycle (définition par un mot) Moyenne de 64 cycles (définition par un :DM) Temps d’exécution à l’état OFF (!s) 2,6 3,2 Chapitre Temps de cycle des CPM2A/CPM2C et temps de réponse d’E/S Code Mnémonique --- FCS --- HEX Temps Conditions (En haut : min. ; en bas : max.) d’exécution à l’état OFF (!s) 27,6 Ajout d’un mot et transmission à un mot 592,3 Ajout de 999 mots et transmission à un :DM 25,8 Mot # Mot 72,2 :DM # :DM 30,7 45,0 21,9 713,9 Conversion d’un mot à mot Conversion d’un :DM à un :DM Recherche d’un mot et transmission à un mot Recherche de 999 mots et transmission à un :DM Recherche d’un mot et transmission à un mot Recherche de 999 mots et transmission à un :DM Conversion d’une constante en un mot Conversion d’un mot à un mot Conversion d’un :DM à un :DM Initialisation d’un mot vers un mot Initialisation de :DM vers :DM Echantillonnage d’un mot vers mot Echantillonnage de :DM vers :DM Constante de rapport de largeur d’impulsion Mot de rapport de largeur d’impulsion :DM de rapport de largeur d’impulsion Définition des paramètres des mots, mot à mot Définition des paramètres des :DM, :DM à :DM Définition des paramètres des mots, mot à mot Définition des paramètres des :DM, :DM à :DM Conversion d’un mot à un mot Conversion d’un :DM à un :DM Recherche d’un mot et transmission à un mot Définition d’un :DM, recherche de 2 048 mots et transmission à un :DM Définition d’une constante, exécution au premier balayage Définition d’une constante, exécution au second balayage ou ultérieurement Définition d’un :DM, exécution au premier balayage Définition d’un :DM, exécution au second balayage ou ultérieurement Ajout d’un mot et transmission à un mot Définition d’un :DM, ajout de 999 octets et transmission vers :DM --- HMS --- MAX --- MIN 21,9 713,9 --- NEG --- PID --- PWM --- SCL2 12,0 12,8 28,3 392,5 418,8 29,3 58,7 30,3 43,4 46,0 35,1 59,3 --- SCL3 37,1 62,3 --- SEC --- SRCH 29,8 44,0 28,9 1,40 ms --- STUP 3,42 ms 34,1 3,44 ms 39,8 --- SUM 22,8 1,44 ms 8-2 Temps d’exécution à l’état OFF (!s) 2,6 2,6 2,6 , 2,6 , 2,6 , 3,0 , 3,3 , 2,6 , 2,6 , 2,6 , 2,6 , 2,6 , 2,6 2,6 , 491 Temps de cycle des CPM2A/CPM2C et temps de réponse d’E/S Code Mnémonique --- SYNC --- TIML --- TMHH --- ZCP --- ZCPL 8-2 Temps Conditions (En haut : min. ; en bas : max.) Temps d’exécution à l’état d’exécution à OFF (!s) l’état OFF (!s) 2,6 34,6 Définition d’un rapport par une constante, quand exécutée 35,3 Définition d’un rapport par un mot, quand exécutée 42,5 Définition d’un rapport par un :DM, quand exécutée 25,3 Définition d’un rapport par un mot, quand modifiée 32,6 Définition d’un rapport par un :DM, quand modifiée Reset IL JMP 12,8 Exécution normale, définition d’une constante 17,9 17,5 8,1 13,5 Exécution d’interruption, définition d’une 25,7 25,5 8,1 constante Reset IL JMP 12,3 Exécution normale, définition d’une constante 15,6 15,1 7,4 12,7 Exécution d’interruption, définition d’une 17,2 16,9 9,1 constante 12,7 Exécution normale, définition d’un :DM 23,6 23,3 7,7 13,6 Exécution d’interruption, définition d’un :DM 25,1 24,7 9,1 2,6 9,4 Comparaison d’une constante à une plage de constantes et transmission à un mot 11,8 Comparaison d’un mot à une plage de mots et transmission à un mot 33,4 Comparaison d’un :DM à un :DM et transmission à un :DM 2,6 , 19,5 Comparaison d’un mot à une plage de mots 45,2 492 Chapitre Comparaison d’un :DM à un :DM Chapitre Temps de cycle et temps de réponse des E/S du SRM1(-V2) 8-3 8-3 Temps de cycle et temps de réponse des E/S du SRM1(-V2) 8-3-1 Cycle du SRM1(-V2) Le flux des opérations exécutées par le SRM1(-V2) est illustré dans l’organigramme suivant : Initialisation surveillance Attente fin CompoBus/S Rafraîchissement des entrées Exécution du programme Traitement du temps de cycle Temps de cycle Rafraîchissement des sorties Prise en charge du port RS-232C Prise en charge de port périphérique Rem. 1. Le temps de cycle peut être lu à partir de l’API via un périphérique de programmation. 2. Le temps de cycle maximum et le temps de cycle actuel sont enregistrés dans AR 14 et AR 15. 3. Le temps de cycle peut varier selon les conditions de fonctionnement et ne correspondra pas nécessairement avec précision à la valeur calculée. 493 Chapitre Temps de cycle et temps de réponse des E/S du SRM1(-V2) 8-3 8-3-2 Temps de cycle du SRM1(-V2) Les processus compris dans un cycle du SRM1(-V2) sont indiqués dans le tableau suivant, qui indique également les temps de traitement correspondants. Processus Surveillance Attente de la fin du CompoBus/S Rafraîchissement des entrées Exécution du programme Contenu Temps nécessaire Définition de l’horloge du chien de garde des cycles, vérification du bus d’E/S, vérification de l’UM, etc... Attente de la fin du traitement du CompoBus/S. 0,18 ms Lecture des informations en entrée dans les bits d’entrée. Exécution du programme utilisateur 0,02 ms Temps de réponse des communications du CompoBus/S - Temps de surveillance - Temps de prise en charge du port RS-232C - Temps de prise en charge du port périphérique Temps total d’exécution des instrucSe reporter au chapitre 8-3-6 Temps d’exécution des tions (varie selon le contenu du programme utilisateur). intructions du SRM1(-V2). Calcul du temps de cycle Attente jusqu’au temps sélectionné, lorsque le temps Presque instantané, sauf pour le de cycle minimum est défini dans le DM 6619 du traitement de l’attente. Setup de l’API. Calcul du temps de cycle. Rafraîchissement des sorties Ecriture des informations en sortie (résultats du programme) dans les bits de sortie. Prise en charge du port RS-232C Démarrage des communications du CompoBus/S. Prise en charge des périphériques reliés au port RS-232C. Prise en charge du port périphérique 0,05 ms 5% ou moins du temps de cycle, mais toujours entre 0,55 et 131 ms (Défini dans DM 6616). Prise en charge des périphériques reliés au port péri- 5% ou moins du temps de cycle, mais phérique. toujours entre 0,55 et 131 ms (Défini dans DM 6617). Temps de cycle minimum Sur les API SRM1(-V2), les communications du CompoBus/S démarrent dès la fin du rafraîchissement des sorties.. Il en résulte que le temps total de surveillance, de prise en charge du port RS-232C et de prise en charge des ports périphériques est plus court que le temps de réponse des communications du CompoBus/S ; le traitement est donc mis en attente jusqu’à la fin des communications du CompoBus/S. Le temps de cycle minimum est donc le temps de réponse des communications du CompoBus/S plus le temps d’exécution du programme, plus le temps de rafraîchissement des entrées, plus le temps de rafraîchissement des sorties. Le premier dépend du “nombre maximal de stations” et des pramètres de “mode communication”, indiqués ci-dessous : Nb max de stations Mode communication 32 Mode rapide Mode longue distance Mode rapide Mode longue distance 16 Temps de réponse du CompoBus/S 0,8 ms 6,0 ms 0,5 ms 4,0 ms Rem. Le nombre maximal de stations et le mode communication sont définis dans le Setup de l’API (DM 6603). Effets du temps de cycle 494 Les effets du temps de cycle sur les opérations du SRM1(-V2) sont indiqués cidessous. Dans le cas d’un long temps de cycle affectant les opérations, réduire Chapitre Temps de cycle et temps de réponse des E/S du SRM1(-V2) 8-3 le temps de cycle ou améliorer le temps de réponse à l’aide de porgrammes d’interruption. Temps de cycle 10 ms ou plus 20 ms ou plus Conséquences TIMH(15) peut être imprécis dans le cas de l’utilisation de TC 004 à TC 127 (fonctionnement normal de TC 000 à TC 003). Le programme utilisant le bit d’horloge de 0,02 seconde (SR 25401) peut être imprécis. 100 ms ou plus TIM peut être imprécis. Le programme utilisant le bit d’horloge de 0,01 seconde (SR 25500) peut être imprécis. Une erreur CYCLE TIME OVER est générée (SR 25309 passe à l’état ON). Voir Rem. 1. 120 ms ou plus La SV du temps de surveillance de FALS 9F est dépassée. Une erreur système (FALS 9F) est générée et l’opération s’arrête. Voir Rem. 2. Le programme utilisant le bit d’horloge de 0,02 seconde (SR 25501) peut être imprécis. 200 ms ou plus Rem. Exemple de temps de cycle Processus 1. Le Setup de l’API (DM 6655) peut être utilisé pour désactiver la détection de l’erreur CYCLE TIME OVER. 2. Le temps de surveillance de cycle peut être modifié dans le Setup de l’API (DM 6618). Les lignes suivantes contiennent un exemple de calcul de temps de cycle. Les E/S sont paramétrées de la façon suivante : Les conditions d’utilisation sont supposées être : Programme utilisateur : 500 instructions (constituées uniquement de LT et OUT) Temps de cycle : Variable (pas de minimum défini) Port RS-232C : Non utilisé. Nb max. de stations : 32 en mode communication rapide (temps de réponse des communications du CompoBus/S = 0,8 ms) Périphérique : 0,7 ms Le temps de réponse moyen d’une instruction du programme utilisateur est estimé à 1,16 !s. Les temps de cycle sont indiqués ci-dessous : Méthode de calcul 1. Surveillance Fixe 0,18 ms Port périphérique non utilisé 0,18 ms 2. Attente fin CompoBus/S Voir page précédente. 0,00 ms 0,62 ms 3. Rafraîchissement des entrées 4. Exécution du programme Calcul du temps de cycle Fixe 0,02 ms 0,02 ms 1,16 " 500 (!s) 0,8 ms 0,8 ms Négligeable 0,00 ms 0,00 ms 6. Rafraîchissement des sortie 7. Prise en charge du port RS-232C 8. Prise en charge des ports RS-232C Temps de cycle 0,01 " 1 + 0,005 " 1 (!s) 0,05 ms 0,05 ms Non exigée. 0,00 ms 0,00 ms 5% du temps de cycle 0,7 ms 0,00 ms (1) + (2) + (3) + ...+ (8) 1,75 ms 1,67 ms Rem. Port périphérique utilisé 1. Le temps de cycle peut être lu à partire de l’API via un périphérique de programmation. 2. Le temps de cycle maximum et le temps de cycle actuel sont enregistrés dans AR 14 et AR 15. 3. Le temps de cycle peut varier selon les conditions de fonctionnement et ne correspondra pas nécessairement avec précision à la valeur calculée. 4. Lorsque le port périphérique est utilisé, il n’y a pas de temps d’attente de fin de CompoBus/S car il est toujours de 0 ou moins. 495 Chapitre Temps de cycle et temps de réponse des E/S du SRM1(-V2) 8-3 5. Temps d’attente de fin de CompoBus/S = 0,8 -- 0,18 -- 0 -- 0 = 0,62 (temps d’attente de réponse des communications de CompoBus/S -- Surveillance -Temps de prise en charge du port RS-232C -- temps de prise en charge du port périphérique). 8-3-3 Temps de réponse d’E/S Le temps de réponse d’E/S est le temps nécessaire à l’API, après la réception d’un signal en entrée (après passage à l’état ON du bit d’entrée), pour vérifier et traiter les informations et générer un signal de commande (générer le résultat du traitement dans un bit de sortie). Les communicatins du CompoBus/S démarrent à la fin du rafraîchissement des entrées du SRM1(-V2). L’état ON/OFF est lu à partir des bornes d’entrée pendant le rafraîchissement des entrées et l’état ON/OFF est transmis au terminal de sortie pendant le rafraîchissement des sorties. En conséquence, le temps de réponse d’E/S du SRM1(-V2) varie en fonction du temps de cycle et de l’état du cycle de communications du CompoBus/S ou de la synchronisation des E/S. Des exemples de calcul du temps de réponse sont donnés dans le paragraphe qui suit Temps minimum de réponse d’E/S Temps de réponse d’E/S minimum = Retard ON entrée + Retard ON sortie + Temps de cycle des communications du CompoBus/S + Temps de cycle du SRM1(-V2) Temps de cycle Cycle du SRM1(-V2) Temps de cycle CompoBus/S Temps de réponse de communication Retard entrée Entrée sur esclave Retard sortie Sortie sur esclave Temps maximum de réponse d’E/S Temps de réponse d’E/S maximum = Retard ON entrée + Retard ON sortie + Temps de cycle des communications du CompoBus/S + Temps de cycle du SRM1(-V2) x 2 Temps de cycle Cycle du SRM1(-V2) Temps de réponse de communication Entrée sur esclave Sortie sur esclave 496 Temps de cycle CompoBus/S Retard entrée Retard sortie Chapitre Temps de cycle et temps de réponse des E/S du SRM1(-V2) 8-3 8-3-4 Temps de réponse E/S Inter API Lorsque deux SRM1 sont reliés en mode Inter API, le temps de réponse d’E/S est le temps nécessaire à la transmission d’une entrée exécutée sur l’un des SRM1 à l’autre SRM1 dans le cadre de communications Inter API. Temps minimum de réponse d’E/S Le SRM1 a le temps de réponse le plus court dans les circonstances suivantes : 1, 2, 3... 1. Il reçoit un signal d’entrée juste avant la phase de rafraîchissement des entrées à l’intérieur du cycle. 2. La prise en charge des communications du Maître survient au moment précis où commence la transmission Maître-Esclave. 3. La prise en charge des communications de l’Esclave survient juste après la fin de la transmission. Point d’entrée Retard ON entrée (8 ms) Maître Rafraîchissement des E/S Surveillance, communications, ... Bit d’entrée Traitement par UC Exécution du programme Temps de cycle du côte maître (10 ms) Maître à Esclave Temps de transmission (39 ms) Traitement par UC Esclave Exécution du programme Temps de cycle du côte esclave (15 ms) Retard ON sortie (10 ms) Point de sortie Temps de réponse d’E/S mini = 8+10+39+15+10 = 82 ms Le SRM1(-V2) a le temps de réponse le plus long dans les circonstances suivantes : Temps maximum de réponse d’E/S 1, 2, 3... 1. Il reçoit le signal d’entrée juste après la phase de rafraîchissement des entrées à l’intérieur du cycle. 2. La prise en charge des communications du Maître s’effectue juste après la transmission Maître-Esclave. 497 Chapitre Temps de cycle et temps de réponse des E/S du SRM1(-V2) 8-3 3. La transmission prend fin juste après la prise en charge des communications de l’Esclave Rafraîchissement des E/S Point d’entrée Retard ON entrée (8 ms) Surveillance, communications, ... Bit d’entrée Exécution du programme Exécution du programme Temps de cycle du côte maître (10 ms) Maître à Esclave Esclave à Maître Maître à Esclave Temps de transmission (39 ms " 3) Exécution du programme Exécution du programme Temps de cycle du côte esclave (15 ms) Point de sortie Retard ON sortie (10 ms) Temps de réponse d’E/S maxi = 8 + 10 " 2 + 39 " 3 + 15" 2 + 10 = 185 ms 8-3-5 Temps de traitement des interruptions Ce chapitre définit les temps de traitement compris entre l’exécution d’une interruption et l’appel du programme de traitement d’interruptions et entre l’exécution du programme de traitement d’interruptions et le retour à l’emplacement initial. Cette définition s’applique aux interruptions des entrées et des temporisations cycliques. 1, 2, 3... Elément 1. Source d’interruption 2. Attente de la fin du traitement du masque d’interruption 3. Modification du traitement des interruptions 4. Acheminement des interruptions (CPM1A seulement) 5. Retour à l’emplacement initial Le tableau ci-dessous définit le temps compris entre la génération du signal d’interruption et l’appel du programme de traitement d’interruptions et entre l’exécution du programme de traitement d’interruptions et le retour à l’emplacement initial du programme. Contenu Durée Attente de la fin du traitement du masque d’interruption Temps d’attente des interruptions jusqu’à la fin du traitement. Ceci intervient pendant le traitement du masque. Voir détails ci-après. Voir ci-dessous. Modification du traitement des interruptions Retour Temps nécessaire à la modification du traitement des interruptions. 15 !s Temps de retour au traitement interrompu, après l’exécution de RET(93). 15 !s Traitement du masque Les interruptions sont masquées durant le traitement des opérations décrites ci-dessous. Jusqu’à la fin du traitement, toutes les interruptions resteront masquées pendant les intervalles de temps spécifiés. Génération et correction des erreurs non fatales : Lorsqu’une erreur non fatale est généréé et que l’erreur associée est enregistrée dans le SRM1(-V2), ou lorsqu’une erreur est corrigée, les interrup- 498 Chapitre Temps de cycle et temps de réponse des E/S du SRM1(-V2) 8-3 tions sont masquées pendant 100 !s au maximum jusqu’à la fin du traitement. Edition en ligne : Les interruptions sont masquées pendant 600 !s au maximum (pour une édition entre DM 6144 et DM 6655) lorsque l’édition en ligne est exécutée au cours d’une opération. De plus, le traitement système est mis en attente durant un maximum de 170 !s pendant l’édition. 8-3-6 Temps d’exécution des instructions sur le SRM1(-V2) Le tableau suivant liste les temps d’exécution des instructions SRM1(-V2). Instructions de base Code Mnémonique Temps d exécution à d’exécution l’état é ON (!s) Conditions (En haut : min. ; en bas : max.) Temps d’exécution à l’état OFF (!s) RSET --- --------------------------- LD LD NOT AND AND NOT OR OR NOT AND LD OR LD OUT OUT NOT SET RSET TIM 0,97 0,97 0,77 Aucune 0,78 Aucune --- 0,39 Aucune --- --- CNT 6,6 , Constante pour la SV :DM pour la SV Constante pour la SV :DM pour la SV 9,3 17,4 8,0 16,3 IL JMP 2,2 2,7 2,8 5,7 , 9,1 17,2 3,6 3,6 3,5 3,5 3,8 3,8 Instructions spéciales et d’expansion Code Mnémonique Temps d’exécution à l’état OFF (!s) 00 01 02 03 04 05 06 07 08 09 10 NOP END IL ILC JMP JME FAL FALS STEP SNXT SFT 0,20 4,8 2,5 1,9 2,2 2,5 18,4 3,6 10,7 5,9 14,5 11 KEEP 21,0 49,1 3,0 12 CNTR 14,8 23,2 Conditions (En haut : min.; en bas : max.) Temps d’exécution à l’état OFF (!s) Aucune Avec registre à décalage d’un mot Avec registre à décalage de 10 mots Avec registre à décalage de 100 mots Aucune Constante pour la SV :DM pour la SV 1,4 1,9 1,3 2,5 2,9 2,9 9,0 4,1 Reset 11,0 14,9 30,8 Reset 3,4 Reset 9,1 , IL 1,4 1,4 1,4 IL 1,6 IL 6,6 , JMP 1,4 1,4 1,4 JMP 1,7 JMP 6,5 , 499 Chapitre Temps de cycle et temps de réponse des E/S du SRM1(-V2) Code Mnémonique 13 DIFU Temps Conditions (En haut : min.; en bas : max.) d’exécution à l’état OFF (!s) 6,7 , Aucune Temps d’exécution à l’état OFF (!s) IL 5,2 JMP 1,3 5,8 IL 5,7 JMP 1,3 Reset 14,1 15,6 22,8 23,9 IL 13,9 15,4 22,1 23,6 JMP 7,0 8,5 7,0 8,5 Décalage 5,8 14 15 DIFD TIMH 6,4 , Aucune 10,3 10,9 10,3 10,9 16 WSFT 16,2 23,0 712,3 17 ASFT* 20 Exécution normale, constante pour la SV Exécution d’interruption, constante pour la SV Exécution normale, :DM pour la SV Exécution d’interruption, :DM pour la SV Décalage 2,9 , 18,6 25,9 865,7 Avec registre à décalage d’un mot Avec registre à décalage de 10 mots Avec registre à décalage de 1 024 mots via :DM Décalage d’un mot Décalage de 10 mots Décalage de 1 023 mots via :DM CMP 9,1 9,9 25,6 Comparaison d’une constante à un mot Comparaison de deux mots Comparaison de deux :DM 3,0 , 21 MOV 9,1 9,5 24,9 Transfert d’une constante à un mot Transfert d’un mot à l’autre Transfert d’un :DM à :DM 3,0 , 22 MVN 9,3 9,8 25,1 Transfert d’une constante à un mot Transfert d’un mot à l’autre Transfert d’un :DM à :DM 3,0 , 23 BIN 17,2 32,0 Conversion d’un mot à un mot Conversion d’un :DM à :DM 3,0 , 24 BCD 15,8 30,6 Conversion d’un mot à un mot Conversion d’un :DM à :DM 3,0 , 25 ASL 9,9 17,3 Décalage d’un mot Décalage d’un :DM 2,9 , 26 ASR 9,7 17,2 Décalage d’un mot Décalage d’un :DM 3,0 , 27 ROL 8,5 16,1 Rotation d’un mot Rotation d’un :DM 2,9 , 28 ROR 8,5 16,1 Rotation d’un mot Rotation d’un :DM 2,9 , 29 COM 10,5 17,7 Inversion d’un un mot Inversion d’un :DM 3,0 , 30 ADD 15,9 16,4 39,5 Constante + mot # mot Mot + mot # mot :DM + :DM # :DM 3,1 , 31 SUB 15,6 16,3 38,6 Constante -- mot # mot Mot -- mot # mot :DM -- :DM # :DM 3,0 , 32 MUL 29,7 Constante ¢ mot # mot 3,0 28,5 Mot ¢ mot # mot 51,6 :DM ¢ :DM # :DM 500 8-3 3,0 , Chapitre Temps de cycle et temps de réponse des E/S du SRM1(-V2) Code Mnémonique Temps Conditions (En haut : min.; en bas : max.) d’exécution à l’état OFF (!s) 27,2 Mot $ constante # mot 28,5 mot $ mot # mot :DM $ :DM # :DM 53,1 33 DIV 34 ANDW 14,3 15,2 37,3 Constante mot # mot Mot mot # mot :DM :DM # :DM 2,9 , 35 ORW 14,3 15,2 37,3 Constante V mot # mot Mot V mot # mot :DM V :DM # :DM 2,9 , 36 XORW 14,3 15,2 37,3 Constante V mot # mot Mot V mot # mot :DM V :DM # :DM 2,9 , 37 XNRW 14,3 15,2 37,3 Constante V mot # mot Mot V mot # mot :DM V :DM # :DM 2,9 , 38 INC 9,9 17,3 Incrémentation d’un mot Incrémentation d’un :DM 2,9 , 39 DEC 10,2 17,4 Décrémentation d’un mot Décrémentation d’un :DM 2,9 , 40 41 STC CLC 3,5 3,0 Aucune 2,9 2,9 46 MSG 11,3 19,4 Message dans les mots Message dans un :DM 2,9 , 47 RXD* 39,1 116,8 Définition d’un mot, entrée 1 octet Définition d’un :DM, entrée 256 octets 2,9 , 48 TXD* 31,3 266,5 2,9 , Définition d’un mot, entrée 1 octet (RS-232C) Définition d’un :DM, entrée 256 octets (RS-232C) Définition d’un mot, entrée 1 octet (liaison à l’ordinateur) Définition d’un :DM, entrée 256 octets (liaison à l’ordinateur) 26,7 34,0 8-3 Temps d’exécution à l’état OFF (!s) 2,9 , 50 ADB 16,8 17,6 39,9 Constante + mot # mot Mot + mot # mot :DM + :DM # :DM 3,0 , 51 SBB 17,0 17,8 40,2 Constante -- mot # mot Mot -- mot # mot :DM -- :DM # :DM 3,0 , 52 MLB 19,1 Constante ¢ mot # mot 3,0 20,1 Mot ¢ mot # mot 43,5 :DM ¢ :DM # :DM 53 DVB 19,5 20,4 43,7 Mot $ constante # mot Mot $ mot # mot :DM $ :DM # :DM 3,0 , 54 ADDL 26.7 49.9 Mot + mot # mot :DM + :DM # :DM 3.0 55 SUBL 26.8 49.9 Mot -- mot # mot :DM -- :DM # :DM 3.0 501 Chapitre Temps de cycle et temps de réponse des E/S du SRM1(-V2) Code Mnémonique Temps Conditions (En haut : min.; en bas : max.) d’exécution à l’état OFF (!s) 81,4 Mot ¢ mot # mot 106,2 :DM ¢ :DM # :DM 56 MULL 57 DIVL 76,9 101,8 Mot $ mot # mot :DM $ :DM # :DM 3,0 , 60 CMPL 16,9 32,9 Comparaison de mots Comparaison de :DM 2,9 , 66 SCL* 69,5 91,5 Définition d’un mot Définition d’un :DM 3,0 , 67 BCNT* 26,9 2,29 ms Comptage d’un mot Compage de 6 656 mots via :DM 3,0 , 68 BCMP* 41,4 Comparaison d’une constante, résultats dans un mot Comparaison d’un mot, résultats dans un mot Comparaison d’un :DM, resultats dans un :DM 3,0 41,9 64,5 69 STIM* Temps d’exécution à l’état OFF (!s) 3,0 33,9 49,5 11,4 Définition d’un mot, démarrage du compteur en 3,0 monocoup Définition d’un :DM, démarrage du compteur en monocoup Définition d’un mot, démarrage programmé des interruptions Définition d’un :DM, démarrage programmé des interruptions Définition de mots, lecture de la temporisation Définition d’un :DM, lecture de la temporisation Définition d’un mot, arrêt de la temporisation 34,7 49,5 35,3 50,0 70 XFER 22,9 24,0 902,0 Transfert d’une constante à un mot Transfert d’un mot à un mot Transfert de 1 024 mots via :DM 3,0 , 71 BSET 15,2 15,7 Définition d’une constante dans un mot Définition d’une constante dans un mot vers 10 mots Définition d’une constante pour :DM à 1 024 mots 3,0 , 565,2 73 XCHG 16,2 31,5 Mot # mot :DM # :DM 3,1 , 74 SLD 13,6 26,7 1,54 ms Décalage d’un mot Décalage de 10 mots Décalage de 1 024 mots via :DM 3,0 , 75 SRD 13,6 26,6 1,54 ms Décalage d’un mot Décalage de 10 mots Décalage de 1 024 mots via :DM 3,0 , 76 MLPX 25,5 48,9 Décodage d’un mot vers un mot Décodage d’un :DM vers un :DM 3,0 , 77 DMPX 35,1 58,1 Décodage d’un mot vers un mot Codage d’un :DM vers un :DM 3,0 , 78 SDEC 26,8 49,9 Décodage d’un mot vers un mot Décodage d’un :DM vers un :DM 2,9 , 502 8-3 Chapitre Temps de cycle et temps de réponse des E/S du SRM1(-V2) Code Mnémonique 80 DIST 81 COLL 8-3 Temps Conditions (En haut : min.; en bas : max.) Temps d’exécution à l’état d’exécution à OFF (!s) l’état OFF (!s) , 21,3 Définition d’une constante pour un mot + 1 mot 3,0 21,9 Définition d’une constante pour un mot à un mot + 1 mot 45,7 Définition d’une constante pour :DM à :DM +:DM 34,3 Définition d’une constante pour une constante à une batterie 35,3 Définition d’une constante pour un mot à une batterie 59,3 Définition d’une constante pour :DM à une batterie via :DM 3,0 , 21,4 Définition d’une constante + un mot à un mot 21,8 44,9 34,0 33,9 892,0 35,4 36,1 60,5 Définition d’un mot + un mot à un mot Définition d’une constante pour un :DM + :DM à un :DM Définition d’une constante pour un mot + constante à une batterie FIFO Définition d’une constante pour un mot + mot à une batterie FIFO Définition d’une constante pour un :DM + :DM à une batterie FIFO via :DM Définition d’une constante pour un mot + constante à une batterie LIFO Définition d’une constante pour un mot + mot à une batterie LIFO Définition d’une constante pour un :DM + :DM à une batterie LIFO via :DM 82 MOVB 18,2 19,0 42,1 Transfert d’une constante à un mot Transfert d’un one mot à another Transfert d’un :DM à :DM 3,0 , 83 MOVD 16,3 17,6 39,9 Transfert d’une constante à un mot Transfert d’un mot à un autre mot Transfert d’un :DM à un :DM 2,9 , 84 SFTR 21,0 26,9 718,5 Décalage d’un mot Décalage de 10 mots Décalage de 1 024 mots via :DM 3,0 , 85 TCMP 30,0 Comparaison d’une constante à un tableau défini en mots Comparaison de mot à un tableau défini en mots Comparaison d’un :DM à un tableau défini en :DM 3,0 30,7 53,1 86 ASC 30,0 53,7 Mot # mot :DM # :DM 3,0 , 91 92 93 SBS SBN RET 13,2 --7,8 Aucune 3,0 1,3 1,3 99 MCRO 26,8 43,5 Avec opérandes d’E/S définis en mots Avec opérandes d’E/S définis en :DM 3,0 , Rem. Les instructions identifiées par un astérisque sont des instructions d’expansion. 503 Chapitre Temps de cycle et temps de réponse des E/S du SRM1(-V2) 8-3 Instructions d’expansion sans codes de fonctions par défaut Code Mnémonique Temps d’exécution à l’état OFF (!s) --- FCS 23,4 Addition d’un mot et transmission à un mot 3,0 643,7 43,6 Addition de 999 mots et transmission à un :DM DM # DM 3,0 73,5 :DM # :DM 46,0 48,0 65,5 420,0 452,0 63,0 84,5 51,2 Transfert d’une constante à un mot Transfert d’un mot à un mot Transfert d’un :DM à un :DM Initialisation d’un mot à un mot Initialisation d’un :DM à un :DM Echantillonnage d’un mot dans un mot Echantillonnage d’un :DM dans un :DM Transfert d’une constante à un mot 58,2 Transfert d’un mot à un mot 45,0 Comparaison d’un mot à une plage de constantes Comparaison d’un mot à une plage de mots Comparaison d’un :DM à un :DM --- HEX --- NEG --- PID --- STUP --- ZCP 46,5 69,0 504 Conditions (En haut : min. ; en bas : max.) Temps d’exécution à l’état OFF (!s) 3,0 , 3,0 , 3,0 3,0 CHAPITRE 9 Recherche de pannes Ce chapitre décrit comment diagnostiquer et corriger les erreurs de matériels et de logiciel pouvant se produire pendant le fonctionnement de l’API. 9-1 9-2 9-3 9-4 9-5 9-6 9-7 9-8 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Erreurs de fonctionnement de la console de programmation. . . . . . . . . . . . . . . . . . . . . . . . Erreurs de programmation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Erreurs définies par l’utilisateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Erreurs de fonctionnement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-5-1 Erreurs non fatales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-5-2 Erreurs fatales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-5-3 Autres erreurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Journal d’erreurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Erreurs de liaison à l’ordinateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Organigrammes de dépannage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 506 506 507 508 509 509 510 511 511 513 513 505 Erreurs de fonctionnement de la console de programmation 9-1 Chapitre 9-2 Introduction Les erreurs de l’API peuvent être divisées grossièrement dans les quatre catégories suivantes : 1, 2, 3... 1. Erreurs d’entrée de programme Ces erreurs se produisent en entrée du programme ou lors de la préparation de l’API. 2. Erreurs de programmation Ces erreurs se produisent lorsque le programme est vérifié en utilisant la fonction de contrôle de programme. 3. Erreurs définies par l’utilisateur L’utilisateur peut utiliser trois instructions pour définir ses propres erreurs ou messages. Les instructions sont exécutées lorsqu’un état particulier (défini par l’utilisateur) se produit lors du fonctionnement. 4. Erreurs de fonctionnement Ces erreurs se produisent après le commencement de l’exécution du programme. a) Erreurs non fatales de fonctionnement Le fonctionnement de l’API et l’exécution du programme continuent après qu’une ou plusieurs de ces erreurs se sont produites. b) Erreurs fatales de fonctionnement Le fonctionnement de l’API et l’exécution du programme s’arrêtent et toutes les sorties de l’API sont arrêtées lorsque l’une de ces erreurs s’est produite. Les voyants de l’API indiquent lorsqu’une erreur de l’API s’est produite et un message ou un code d’erreur est affiché sur la console de programmation ou l’ordinateur si l’un est connecté. Le code d’erreur est également contenu en SR 25300 à SR 25307. Pour les erreurs les plus récentes, le type d’erreur et l’instant de l’occurrence sont enregistrés dans la zone de journal d’erreurs de l’API. Les détails sont fournis à partir de la page 511. Des drapeaux et d’autres informations fournis dans les zones SR et AR peuvent être utilisés pour le dépannage. Se reporter au Chapitre 3 Zones mémoire pour les listes de ces derniers. Rem. En plus des erreurs décrites ci-dessus, des erreurs de communications peuvent survenir lorsque l’API est lié à un ordinateur central. Se reporter à la page 513 pour de plus amples informations. 9-2 Erreurs de fonctionnement de la console de programmation Les messages d’erreur suivants peuvent apparaître lors de l’exécution des fonctions de la Console de Programmation. Corriger les erreurs comme indiqué et poursuivre le fonctionnement. Les astérisques dans les affichages montrés ci-dessous seront remplacés par des données numériques, normalement une adresse, dans l’affichage réel. 506 Chapitre Erreurs de programmation Message 9-3 9-3 Signification et remède REPL ROM Une tentative de modification de la mémoire protégée en écriture a été faite. Paramétrer les bits 00 à 03 de DM 6602 à “0”. PROG OVER L’instruction à la dernière adresse en mémoire n’est pas NOP(00). Ecraser toutes les instructions inutiles à la fin du programme. ADDR OVER Une adresse paramétrée est plus longue que l’adresse mémoire la plus haute dans la Mémoire Programme. Entrer une adresse plus courte. SET DATA ERR FALS 00 a été entrée, et “00” ne peut pas être entré. Saisir à nouveau les données. I/O NO. ERR Une adresse zone de données désignée dépasse la limite de la zone de données : une adresse trop longue par exemple. Vérifier les exigences de l’instruction et entrer à nouveau l’adresse. Erreurs de programmation Les erreurs dans la syntaxe du programme sont détectées lors de la vérification du programme à l’aide de la fonction de Contrôle du Programme. Trois niveaux de vérification du programme sont disponibles. Le niveau souhaité doit être défini pour indiquer le type d’erreur à détecter. Le tableau suivant présente les types d’erreurs, les affichages et les explications de toutes les erreurs de syntaxe. Le niveau 0 permet de rechercher les erreurs de type A, B et C, le niveau 1 recherche les erreurs de type A et B, le niveau 2 les erreurs de type A uniquement. Erreurs niveau A Message Signification et remède ????? Le programme a été endommagé par la création d’un code de fonction inexistante. Saisir à nouveau le programme. CIRCUIT ERR Le nombre de blocs logiques ne correspond pas au nombre d’instructions à blocs logiques : LD ou LD NOT commencent un bloc logique dont la condition d’exécution n’a pas été utilisée par une autre instruction, ou une instruction à bloc logique n’a pas le nombre de blocs nécessaire. Vérifier le programme. OPERAND ERR Une constante d’entrée pour l’instruction n’est pas comprise dans les limites indiquées. Changer la constante afin que sa valeur soit comprise dans les limites correctes. NO END INSTR Il n’y a pas d’instruction END(01) dans le programme. Ecrire l’instruction END(001) à l’adresse finale du programme. LOCN ERR Une instruction n’est pas à la bonne place dans le programme. Vérifier l’instruction et corriger le programme. JME UNDEFD Une instruction JME(04) manque pour une instruction JMP(05). Corriger le numéro de saut ou insérer l’instruction JME(04) correcte. DUPL Le même numéro de saut ou le numéro du sous-programme a été utilisé deux fois. Corriger le programme afin que le même numéro soit utilisé uniquement une fois pour chaque. SBN UNDEFD L’instruction SBS(91) a été programmée pour un numéro de sous-programme qui n’existe pas. Corriger le numéro de sous-programme ou programmer le sous-programme souhaité. STEP ERR STEP(08) avec un numéro de section et STEP(08) sans numéro de section ont été utilisés de façon incorrecte. Vérifier les paramètres de programmation de STEP(08) et corriger le programme. 507 Chapitre Erreurs définies par l’utilisateur Erreurs niveau B Message Erreurs niveau C 9-4 Signification et remède IL-ILC ERR IL(02) et ILC(03) ne sont pas utilisées en paires. Corriger le programme de façon à ce qu’à chaque IL(02) corresponde une seule ILC(03). Bien que ce message d’erreur s’affiche lorsque plusieurs IL(02) sont associées à une seule ILC(03), le programme est tout de même exécuté. Vérifier que le programme est écrit comme souhaité avant de poursuivre. JMP-JME ERR SBN-RET ERR JMP(04) et JME(05) ne sont pas utilisées en paires. Vérifier que le programme est écrit comme souhaité avant de poursuivre. Si l’adresse affichée est celle de SBN(92), deux sous-programmes différents ont été définis avec le même numéro de sous-programme. Changer l’un des numéros ou supprimer un sous-programme. Si l’adresse affichée est celle de RET(93), RET(93) n’a pas été utilisée correctement. Vérifier les conditions d’utilisation de RET(93) et corriger le programme. Message Signification et remède COIL DUPL Le même bit est contrôlé (placé sur ON ou OFF) par plusieurs instructions (OUT, OUT NOT, DIFU(13), DIFD(14), KEEP(11), SFT(10)). Bien que cela soit permis pour certaines instructions, vérifier les conditions d’utilisation de l’instruction en cause pour savoir si le programme est correct ou le ré-écrire pour que chaque bit ne soit contrôlé que par une seule instruction. JMP UNDEFD JME(05) n’est pas utilisée avec JMP(04) avec le même numéro de saut. Ajouter une JMP(04) portant le même numéro ou supprimer la JME(05) non utilisée. SBS UNDEFD Un sous-programme n’est pas appelé par SBS(91). Programmer un appel de sous-programme à l’endroit adéquat ou supprimer le sous-programme si cela est nécessaire. ! Attention Les instructions d’expansion (assignées aux codes de fonction 17, 18, 19, 47, 48, 60 à 69, 87, 88 et 89) ne subissent aucune vérification programme, de même que les DM 3070 à DM 6143 pour les API non munis de ces zones. Les données ne sont pas inscrites, même dans le cas où ces zones sont spécifiées et les données lues à partir de ces zones sont toujours égales à “0000”. 9-4 Erreurs définies par l’utilisateur Voici les quatre instructions que l’utilisateur peut utiliser pour définir ses propres erreurs ou messages ; elles envoient des messages à la console de programmation connectée à l’API et causent des erreurs fatales ou non fatales. MESSAGE -- MSG(46) MSG(46) affiche un message sur la console de programmation ; il peut y avoir jusqu’à 16 caractères en longueur et s’affiche lorsque la condition d’exécution de l’instruction est sur ON. Se reporter à la page 429 pour obtenir plus d’informations. FAILURE ALARM -- FAL(06) FAL(06) est une instruction entraînant une erreur non fatale. Se reporter à la page 332 pour obtenir plus d’informations. Voici ce qui se produit lorsqu’une instruction FAL(06) est exécutée : 1, 2, 3... 508 1. Le voyant ERR/ALM de l’Unité centrale clignote. L’API continue à fonctionner. 2. Le numéro de FAL en BCD à 2 digits (01 à 99) est écrit dans SR 25300 à SR 25307. 3. Le numéro FAL est enregistré dans la zone de journal d’erreurs de l’API. Le nombre d’occurrences est également enregistré dans les API CPM2A et les API CPM2C possédant une horloge interne. Les numéros de FAL peuvent être sélectionnés arbitrairement pour indiquer des conditions particulières. Le même numéro ne peut être utilisé comme un numéro FAL et un numéro FALS. Chapitre Erreurs de fonctionnement 9-5 Pour effacer une erreur FAL, corriger la cause de l’erreur, exécuter FAL 00 et ensuite effacer l’erreur en utilisant la console de programmation. SEVERE FAILURE ALARM -FALS(07) FALS(07) est une instruction entraînant une erreur fatale. Se reporter à la page 332 pour obtenir plus d’informations. Voici ce qui se produit lorsqu’une instruction FALS(07) est exécutée : 1, 2, 3... 1. L’exécution du programme est arrêtée et les sorties sont mises sur OFF. 2. Le voyant ERR/ALM de l’Unité centrale est allumé. 3. Le numéro de FALS en BCD à 2 digits (01 à 99) est écrit dans SR 25300 à SR 25307. 4. Le numéro FALS est enregistré dans la zone de journal d’erreurs de l’API. Le nombre d’occurrences est également enregistré dans les API CPM2A et les API CPM2C possédant une horloge interne. Les numéros FALS peuvent être sélectionnés arbitrairement pour indiquer des conditions particulières. Le même numéro ne peut être utilisé comme un numéro FAL et un numéro FALS. Pour effacer une erreur FALS, commuter l’API sur le mode PROGRAM, corriger la cause de l’erreur et ensuite effacer l’erreur en utilisant la console de programmation. 9-5 Erreurs de fonctionnement Il existe deux types d’erreurs de fonctionnement : non fatales et fatales. L’API continue de fonctionner après la génération d’une erreur non fatale, mais le fonctionnement s’arrête si une erreur fatale se produit. ! Attention Rechercher toutes les erreurs, fatales ou non. Supprimer la cause de l’erreur dès que possible et redémarrer l’API. Se reporter au Manuel de programmation du CPM1, au Manuel de programmation du CPM2A ou au Manuel de programmation du CPM2C pour obtenir des informations sur le matériel et sur les fonctionnements de la console de programmation concernant les erreurs. Se reporter au Manuel de programmation du SSS pour obtenir des informations sur les fonctionnements du SSS concernant les erreurs. 9-5-1 Erreurs non fatales Le fonctionnement de l’API et l’exécution du programme continuent après la génération d’une ou plusieurs de ces erreurs, mais elles doivent être corrigées et effacées dès que possible. Lors de la génération d’une de ces erreurs, les voyants POWER et RUN restent allumés et le voyant ERR/ALM clignote. Message SYS FAIL FAL** (Voir Rem.) N!! FAL 01 à 99 9B Signification et remède Une instruction FAL(06) a été exécutée dans le programme. Vérifier le numéro FAL pour déterminer les conditions qui peuvent en provoquer l’exécution, corriger la cause et effacer l’erreur. Une erreur a été détectées dans le Setup de l’API. Vérifier les drapeaux AR 1300 à AR 1302 et corriger comme suit : AR 1300 ON : sélections incorrectes dans la configuration de l’API (DM 6600 à DM 6614) à la