▼
Scroll to page 2
of
1329
Cat. No. W340-FR2-11 Variablen: Vor Druckbeginn bitte entfernen!!! Automates programmables Série SYSMAC CS Série SYSMAC CJ FRANCE Omron Electronics S.A.S. 14, rue de Lisbonne 93110 ROSNY SOUS BOIS BELGIQUE Omron Electronics N.V./S.A. Stationsstraat 24, B-1702 Groot-Bijgaarden Tél: +32 (0) 2 466 24 80 Fax: +32 (0) 2 466 06 87 www.omron.be 316 853 332 R. C. S. BOBIGNY Tél. : + 33 1 56 63 70 00 Fax : + 33 1 48 55 90 86 www.omron.fr SUISSE Omron Electronics AG Sennweidstrasse 44, CH-6312 Steinhausen Tél. : +41 (0) 41 748 13 13 Fax : +41 (0) 41 748 13 45 www.omron.ch Romanel Tél. : +41 (0) 21 643 75 75 316 853 332 R.C.S BOBIGNY Tél. : +33 1 56 63 70 00 Bien que nous nous efforcions d’atteindre la perfection, Omron Europe BV et/ou ses filiales et partenaires n’offrent aucune garantie et n’assument aucune responsabilité pour ce qui est de l’exactitude ou de l’exhaustivité des information fournies dans ce document. Nous nous réservons le droit de modifier son contenu à tout moment et sans préavis. MANUEL DE REFERENCE DES INSTRUCTIONS Sommaire 1 Introduction 15 Résumé des instructions 141 Instructions 1219 Temps d’exécution des instructions et nombre de pas Advanced Industrial Automation Remarque : le produit étant sans cesse amélioré, ces caractéristiques peuvent être modifiées sans préavis. Cat. No. W340-FR2-11 Série SYSMAC CS CS1G/H-CPU@@-EV1 CS1G/H-CPU@@H CS1D-CPU@@H CS1D-CPU@@S Série SYSMAC CJ CJ1G-CPU@@ CJ1G/H-CPU@@H CJ1G-CPU@@P CJ1M-CPU@@ Automates programmables Manuel de référence des instructions Révisé en juillet 2004 iv Remarque : Les produits OMRON sont conçus pour être utilisés par un utilisateur qualifié, en respectant les procédures appropriées et uniquement aux fins précisées dans le présent document. Les conventions suivantes sont utilisées dans ce manuel pour indiquer et catégoriser les consignes de sécurité. Respectez toujours les informations fournies. Le non-respect de ces consignes peut entraîner des blessures ou des dégâts matériels. !DANGER Indique une situation dangereuse qui, si elle n'est pas évitée, peut entraîner des blessures graves ou mortelles. !AVERTISSEMENT Indique une situation potentiellement dangereuse qui, si elle n'est pas évitée, peut provoquer des blessures graves ou mortelles. !Attention Indique une situation potentiellement dangereuse qui, si elle n'est pas évitée, risque d'entraîner des blessures mineures ou modérées, ou des dégâts matériels. Références des produits OMRON Tous les produits OMRON sont écrits en majuscules dans le présent manuel. Le mot "Carte" porte également une majuscule lorsqu'il fait référence à un produit OMRON, sous forme de nom propre ou de nom commun. L'abréviation "Ch" qui apparaît sur certains affichages et sur certains produits OMRON signifie souvent "mot" (abréviation "Wd" dans la documentation). L'abréviation "API" signifie Automate programmable. "PC" est toutefois utilisé dans certains affichages de périphérique de programmation et signifie Programmable Controller. Aide visuelle Les intitulés suivants apparaissent dans la colonne de gauche du manuel pour vous aider à localiser différents types d'informations. Remarque Désigne des informations particulièrement intéressantes en vue d'une utilisation pratique et efficace du produit. 1,2,3... 1. Indique la présence d'une liste telle que des procédures ou des listes de contrôles, etc. OMRON, 1999 Tous droits réservés. Aucune partie de cette publication ne peut être reproduite, stockée dans un système de mémoire ou transmise, sous quelque forme ou par quelque moyen mécanique, électronique, photocopie, enregistrement que ce soit, sans l'accord écrit préalable d'OMRON. L'utilisation des informations contenues ci-après n'entraîne aucunement la responsabilité d’OMRON. De plus, dans un souci d'améliorer la qualité de ses produits, OMRON se réserve le droit de modifier toute information contenue dans le présent manuel sans avis préalable. Toutes les précautions ont été prises lors de 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 n'entraînent aucune responsabilité. v Versions des UC série CS/CJ Version des UC Afin de gérer les UC de la série CS/CJ en fonction de leurs différences de fonctionnalités dues à leurs mises à niveau, nous avons introduit la notion de "version d’UC". Elle s'applique aux UC CS1-H, CJ1-H, CJ1M et CS1D. Notation des versions sur les produits Le numéro de version apparaît à droite du numéro de lot sur la plaque signalétique des produits concernés par ce mode de gestion des versions, comme illustré ci-dessous. Plaque signalétique du produit UC série CS/CJ CS1H-CPU67H CPU UNIT Lot No. Version de l'UC Exemple pour la version 3.0 Lot No. 040715 0000 Ver.3.0 OMRON Corporation MADE IN JAPAN • La version des UC CS1-H, CJ1-H et CJ1M (à l'exception des modèles économiques) fabriquées avant le 4 Novembre 2003 n'est pas indiquée sur l'UC (l'emplacement réservé à ce numéro, illustré ci-dessus, est vide). • Les UC CS1-H, CJ1-H et CJ1M, ainsi que les UC CS1D pour systèmes d'UC unique, commencent à la version 2.0. • Les UC CS1D des systèmes d'UC en duplex commencent à la version 1.1. • Les UC pour lesquelles aucun numéro de version n'est fourni sont appelées UC pré-ver. @.@, telles que UC pré-ver. 2.0 et UC pré-ver. 1.1. Vérification des versions de carte avec un logiciel de prise en charge Vous pouvez utiliser CX-Programmer version 4.0 pour contrôler la version de l’UC en appliquant l'une des deux méthodes suivantes. • En utilisant les informations API • A l'aide des informations sur la fabrication de la carte (cette méthode peut aussi être utilisée pour les cartes E/S spéciales et les cartes réseaux.) Remarque CX-Programmer version 3.3 ou antérieure ne permet pas de vérifier les versions de carte. Informations API • Si vous connaissez le type de périphérique et le type d'UC, sélectionnezles dans la boîte de dialogue Modification API, connectez-vous en ligne, puis sélectionnez API - Edition - Information dans les menus. • Si vous ne connaissez pas le type de périphérique ni le type d'UC, mais que vous êtes connecté directement à l'UC sur une ligne série, sélectionnez API - Auto Online pour passer en ligne, puis sélectionnez API - Edition - Information dans les menus. Dans les deux cas, la boîte de dialogue Information API s'affiche. vi Version de l'UC Utilisez l'affichage ci-dessus pour vérifier la version de l'UC. Informations de fabrication de la carte Dans la fenêtre Table E/S, faites un clic droit et sélectionnez Informations de fabrication de carte - UC. La boîte de dialogue Informations de fabrication de carte s’affiche. vii Version de l'UC Utilisez l'affichage ci-dessus pour vérifier la version de l'UC connectée en ligne. Utilisation des étiquettes de version d’UC Les étiquettes de version suivantes sont fournies avec l'UC. Ver. 3.0 Ver. Ver. 3.0 Ver. These Labels can be used to manage differencies in the available functions among the Units. Place the appropriate label on the front of the Unit to show what Unit version is actually being used. Ces étiquettes peuvent être attachées à l'avant des UC antérieures afin de différencier les versions d'UC. viii Notation des versions de carte Plaque signalétique du produit Dans ce manuel, la version d'une UC est indiquée comme dans le tableau cidessous. UC sans numéro de version UC avec numéro de version (ver. @.@) Lot No. XXXXXX XXXX OMRON Corporation Signification Désignation UC individuelle (CS1H-CPU67H par ex.) Désignation de groupes d'UC (par exemple, UC CS1H) Désignation d'une série d'UC (par exemple, les UC série CS) MADE IN JAPAN Lot No. XXXXXX XXXX Ver. @ .@ UC CS1-H pré-ver. 2.0 UC CS1H-CPU67H ver. @.@ UC CS1-H pré-ver. 2.0 UC CS1-H ver. @.@ UC série CS pré-ver. 2.0 UC série CS ver. @.@ ix Versions d’UC et numéros de lot Série Modèle Date de fabrication Antérieure Série CS UC CS1 CS1@CPU@@ UC CS1-V1 s UC CS1-H CS1@CPU@@-V1 Sept. 2003 Oct. 2003 UC pour système d'UC en duplex UC CJ1 UC CJ1-H CS1@CPU@@H UC ver. 2.0 (N° lot : 031105 indiqué) CS1DCPU@@H CJ1GCPU@@ UC CJ1M, modèles économiques CJ1MCPU11/21 UC pré-ver. 2.0 UC pré-ver. 2.0 UC ver. 2.0 (N° lot : 031105 indiqué) UC pré-ver. 2.0 UC ver. 2.0 (N° lot : 031105 indiqué) x Ver. 3.2 Ver. 3.3 UC ver. 3.0 (N° lot : 040623 indiqué) UC ver. 3.0 (N° lot : 040624 indiqué) UC ver. 3.0 (N° lot : 040629 indiqué) UC ver. 2.0 (N° lot : 031002 indiqué) WS02CXPC1EV@ UC ver. 3.0 (N° lot : 040622 indiqué) UC ver. 2.0 (N° lot : 031215 indiqué) CJ1@CPU@@H CJ1MCPU@@ Ultérieure UC ver. 1.1 (N° lot : 031120 indiqué) UC pré-ver. 1.1 UC CJ1M excepté modèles économiques LogiCX-Programmer ciel de prise en charge Juin 2004 Pas de n° de version UC pour CS1Dsystème CPU@@S d'UC unique Série CJ Déc. 2003 Pas de n° de version UC pré-ver. 2.0 UC CS1D Nov. 2003 Ver. 4.0 Ver. 5.0 Fonction prise en charge par la version UC CS1-H (CS1@-CPU@@H) Fonction Téléchargement de tâches individuelles Protection de lecture améliorée grâce aux mots de passe Protection en écriture à partir de commandes FINS envoyées aux UC via le réseau Connexions au réseau en ligne sans table d'E/S Communications via 8 niveaux de réseau maximum Connexion en ligne aux API via les IHM série NS Paramétrage des mots du premier emplacement Transferts automatiques à la mise sous tension sans fichier de paramètres Détection automatique de la méthode d'affectation d'E/S pour le transfert automatique à la mise sous tension Heures de début/fin de fonctionnement MILH, MILR, MILC Instructions nouvelle appli- =DT, <>DT, <DT, <=DT, >DT, >=DT cation BCMP2 GRY TPO DSW, TKY, HKY, MTR, 7SEG EXPLT, EGATR, ESATR, ECHRD, ECHWR Lecture/écriture de cartes réseaux avec IORD/IOWR PRV2 Version UC UC pré-ver. 2.0 UC ver. 2.0 --OK --OK --- OK ----OK à partir du numéro de lot 030201 OK jusqu'à 8 groupes --- OK OK OK OK jusqu'à 64 groupes OK --- --- --------OK à partir du numéro de lot 030201 ------OK à partir du numéro de lot 030418 --- OK OK OK OK OK OK OK OK OK --- xi UC CS1D Fonction UC CS1D pour systèmes d'UC en duplex (CS1D-CPU@@H) OK OK OK OK UC CS1D pour systèmes d'UC unique (CS1D-CPU@@S) UC ver. 2.0 --OK OK OK ------- OK OK OK ----- OK OK OK OK OK --- --- OK --- --- OK --- --- OK --- --- OK --- --- Transferts automatiques à la mise sous tension sans fichier de paramètres --- --- OK jusqu'à 64 groupes OK Détection automatique de la méthode d'affectation d'E/S pour le transfert automatique à la mise sous tension Heures de début/fin de fonctionnement Instructions MILH, MILR, MILC nouvelle =DT, <>DT, <DT, <=DT, >DT, application >=DT BCMP2 GRY TPO DSW, TKY, HKY, MTR, 7SEG EXPLT, EGATR, ESATR, ECHRD, ECHWR Lecture/écriture de cartes réseaux avec IORD/IOWR PRV2 --- --- --- ------- OK ----- OK OK OK ----------- ----------- OK OK OK OK OK --- --- OK --- --- --- UC pré-ver. 1.1 Fonctions sur UC en duplex les UC CS1D Remplacement de la carte en uniquement ligne Cartes d'alimentation duplex Carte Controller Link duplex Carte Ethernet duplex Téléchargement de tâches individuelles Protection de lecture améliorée grâce aux mots de passe Protection en écriture à partir de commandes FINS envoyées aux UC via le réseau Connexions au réseau en ligne sans table d'E/S Communications via 8 niveaux de réseau maximum Connexion en ligne aux API via les IHM série NS Paramétrage des mots du premier emplacement xii UC ver. 1.1 UC CJ1-H/CJ1M Fonction Téléchargement de tâches individuelles Protection de lecture améliorée grâce aux mots de passe Protection en écriture à partir de commandes FINS envoyées aux UC via le réseau Connexions au réseau en ligne sans table d'E/S UC CJ1-H (CJ1@-CPU@@H) UC pré-ver. 2.0 UC ver. 2.0 --OK UC pré-ver. 2.0 UC ver. 2.0 --OK UC CJ1M, modèles économiques (CJ1MCPU11/21) UC ver. 2.0 OK --- OK --- OK OK --- OK --- OK OK OK OK OK OK jusqu'à 64 groupes OK OK jusqu'à 64 groupes OK OK OK, mais uniquement si l'affectation de tables d'E/S est activée à la mise sous tension OK jusqu'à 8 groupes OK à partir du numéro de lot 030201 --- OK OK OK --- OK OK OK --- OK OK OK --- OK OK OK OK ----- OK OK OK OK OK, mais uniquement si l'affectation de tables d'E/S est activée à la mise sous tension Communications via 8 niveaux OK jusqu'à 8 de réseau maximum groupes Connexion en ligne aux API via OK à partir du les IHM série NS numéro de lot 030201 Paramétrage des mots du --premier emplacement Transferts automatiques à la --mise sous tension sans fichier de paramètres Détection automatique de la --méthode d'affectation d'E/S pour le transfert automatique à la mise sous tension Heures de début/fin de --fonctionnement MILH, MILR, MILC --Instructions nou- =DT, <>DT, <DT, --velle <=DT, >DT, >=DT applicaBCMP2 --tion GRY OK à partir du numéro de lot 030201 TPO --DSW, TKY, HKY, --MTR, 7SEG EXPLT, EGATR, --ESATR, ECHRD, ECHWR Lecture/écriture de --cartes réseaux avec IORD/IOWR PRV2 --- OK jusqu'à 64 groupes OK UC CJ1M, excepté les modèles économiques (CJ1M-CPU@@) OK OK OK OK OK OK OK OK OK OK à partir du numéro de lot 030201 ----- OK OK OK OK OK --- OK OK OK --- OK OK --- --- OK, mais uniquement pour les modèles avec E/S intégrées OK, mais uniquement pour les modèles avec E/S intégrées xiii Fonctions prises en charge par l’UC Ver.3.0 ou supérieure UC CS1-H (CS1@-CPU@@H) Fonction Blocs fonction (pris en charge pour CX-Programmer ver. 5.0 ou supérieure) Passerelle série (conversion des commandes FINS en commandes CompoWay/F au port série intégré) Mémoire des commentaires (dans la mémoire flash interne) Données de sauvegarde simple étendues Instructions TXDU(256), RXDU(255) (prennent en charge les nouvelle appli- communications sans protocole pour les cartes de communication série avec la version 1.2 ou cation supérieure) Instructions de conversion des modèles : XFERC(565), DISTC(566), COLLC(567), MOVBC(568), BCNTC(621) Instructions spéciales des blocs fonction : GETID(286) Fonctions des Instructions TXD(235) et RXD(236) (prennent en autres instruc- charge les communications sans protocole avec tions les cartes de communication série, avec la version 1.2 ou supérieure) UC CS1D Version de l’UC Pré-ver. 2.0, Ver. 2.0 Ver. 3.0 --OK --- OK ------- OK OK OK --- OK --- OK --- OK La version 3.0 n’est pas prise en charge. UC CJ1-H/CJ1M (CJ1@-CPU@@H, CJ1G-CPU@@P, CJ1M-CPU@@) Fonction Blocs de fonction (pris en charge pour CX-Programmer ver. 5.0 ou supérieure) Passerelle série (conversion des commandes FINS en commandes CompoWay/F au port série intégré) Mémoire des commentaires (dans la mémoire flash interne) Données de sauvegarde simple étendues TXDU(256), RXDU(255) (prennent en charge les Instructions communications sans protocole pour les cartes nouvelle de communication série avec la version 1.2 ou application supérieure) Instructions de conversion des modèles : XFERC(565), DISTC(566), COLLC(567), MOVBC(568), BCNTC(621) Instructions spéciales des blocs de fonction : GETID(286) Fonctions des Instructions PRV(881) et PRV2(883) : Ajout de autres méthodes de calcul à haute fréquence pour instructions calculer la fréquence d'impulsion. (UC CJ1M uniquement) xiv Version d’UC Pré-ver. 2.0, Ver. 2.0 Ver. 3.0 --OK --- OK ------- OK OK OK --- OK --- OK --- OK Version des UC et périphériques de programmation Vous devez utiliser CX-Programmer version 4.0 ou supérieure pour pouvoir bénéficier des fonctions ajoutées à l'UC ver.2.0. L’utilisation des blocs de fonction ajoutés pour l’UC version 3.0 nécessite CXProgrammer version 5.0 ou supérieure. Les tableaux suivants montrent la relation entre les versions de l’UC et les versions de CX-Programmer. Version UC et périphériques de programmation UC Fonctions UC CJ1M, modèles économiques, UC ver. 2.0 Fonctions ajoutées pour la version 2.0 de l’UC UC CS1-H, CJ1-H et CJ1M, excepté les modèles économiques, UC ver. 2.0 UC CS1D pour systèmes à UC unique, UC ver. 2.0 Fonctions ajoutées pour la version 2.0 de l’UC Fonctions ajoutées pour la version 2.0 de l’UC Fonctions ajouUC CS1D pour systèmes d'UC en tées pour la verduplex, UC ver. 1. sion 1.1 de l’UC UC série CS/CJ ver. 3.0 Blocs fonction ajoutés pour la version UC 3.0 CX-Programmer Ver. 3.3 Ver. 4.0 Utilisation des nouvelles fonctions Sans utilisation des nouvelles fonctions Utilisation des nouvelles fonctions Sans utilisation des nouvelles fonctions Utilisation des nouvelles fonctions Sans utilisation des nouvelles fonctions Utilisation des nouvelles fonctions Sans utilisation des nouvelles fonctions Blocs fonction utilisés Blocs fonction non utilisés Console de programmation Ver. 3.2 ou antérieure ----- OK --- OK OK Ver. 5.0 ou supérieure OK Pas de restriction OK --- --- OK OK OK OK OK OK --- --- OK OK OK --- --- OK OK OK OK OK OK --OK --OK --OK OK OK Remarque Comme indiqué ci-dessus, il n'est pas nécessaire d'effectuer une mise à niveau vers CX-Programmer 4.0 tant que les fonctions ajoutées pour les UC version 2.0 ou 1.1 ne sont pas utilisées. Réglage du type de périphérique Série La version de l’UC n'affecte pas le réglage effectué pour le type de périphérique sur CX-Programmer. Sélectionnez le type de périphérique comme illustré dans le tableau suivant sans tenir compte de la version de l'UC. Groupe d'UC Modèle d'UC Série CS UC CS1-H CS1G-CPU@@H CS1D-CPU@@H Série CJ UC CS1D pour systèmes d'UC en duplex UC CS1D pour systèmes d'UC unique UC CJ1-H CS1H-CPU@@H UC CJ1M CS1D-CPU@@S CJ1G-CPU@@H CJ1H-CPU@@H CJ1M-CPU@@ Réglage du type de périphérique dans CX-Programmer ver. 4.0 ou supérieure CS1G-H CS1H-H CS1D-H (ou CS1H-H) CS1D-S CJ1G-H CJ1H-H CJ1M xv Résolution des problèmes dus aux versions des cartes dans CX-Programmer Problème Après l'affichage du message ci-dessus, une erreur de compilation apparaît dans l'onglet Compile de la fenêtre Sortie. “????” apparaît dans un programme transféré d'un API vers CX-Programmer. xvi Cause Vous avez essayé d'utiliser CXProgrammer version 4.0 ou supérieure pour télécharger un programme contenant des instructions prises en charge uniquement par des UC version 2.0 ou ultérieure. Solution Vérifiez le programme ou remplacez l'UC téléchargée par une UC version 2.0 ou supérieure. Vous avez essayé d'utiliser CXProgrammer version 4.0 ou supérieure pour télécharger vers des UC pré-ver. 2.0 une configuration de l'API contenant des paramètres pris en charge uniquement par des UC version 2.0 ou ultérieure (c.-à-d. non définies sur leurs valeurs par défaut). Vous avez utilisé CX-Programmer version 3.3 ou inférieure pour télécharger un programme contenant des instructions prises en charge uniquement par les UC version 2.0 ou supérieure à partir d'une UC version 2.0 ou supérieure. Vérifiez les paramètres dans la configuration de l'API ou remplacez l'UC téléchargée par une UC version 2.0 ou supérieure. Il est impossible de télécharger les nouvelles instructions à l'aide de CXProgrammer version 3.3 ou inférieure. Utilisez CXProgrammer version 4.0 ou supérieure. SOMMAIRE PRECAUTIONS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxiii 1 Public visé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxiv 2 Précautions générales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxiv 3 Précautions de sécurité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxiv 4 Précautions liées à l'environnement d'utilisation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxvi 5 Précautions d'application. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxvi 6 Conformité aux directives CE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxx CHAPITRE 1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1-1 Caractéristiques générales des instructions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1-2 Contrôle d'exécution de l'instruction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 CHAPITRE 2 Résumé des instructions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2-1 Classement des instructions par fonction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2-2 Fonction des instructions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 2-3 Liste alphabétique des instructions par mnémonique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 2-4 Liste des instructions par code fonction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 CHAPITRE 3 Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 3-1 Notation et présentation des descriptions d'instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 3-2 Mises à niveau des instructions et nouvelles instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 3-3 Instructions d'entrée de séquences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 3-4 Instructions de sortie de séquences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 3-5 Instructions de contrôle de séquences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197 3-6 Instructions de temporisateur et compteur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 3-7 Instructions de comparaison . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275 3-8 Instructions de déplacement de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315 3-9 Instructions de décalage de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344 3-10 Instructions d'incrémentation/décrémentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393 3-11 Instructions mathématiques à symboles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409 3-12 Instructions de conversion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465 3-13 Instructions logiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 517 3-14 Instructions mathématiques spéciales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 534 3-15 Instructions mathématiques à virgule flottante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 558 3-16 Instructions à virgule flottante double précision (CS1-H, CJ1-H, CJ1M ou CS1D uniquement) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 613 3-17 Instructions de traitement des données de tableaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 660 3-18 Instructions de contrôle des données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 720 3-19 Sous-programmes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 773 xvii SOMMAIRE 3-20 Instructions de contrôle des interruptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 798 3-21 Instructions de compteur à grande vitesse et de sortie d'impulsions . . . . . . . . . . . . . . . . . . . 823 3-22 Instructions de pas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 867 3-23 Instructions des cartes E/S standard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 885 3-24 Instructions de communication série . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 926 3-25 Instructions réseau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 973 3-26 Instructions de mémoire de fichiers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1042 3-27 Instructions d'affichage : DISPLAY MESSAGE : MSG(046) . . . . . . . . . . . . . . . . . . . . . . . 1058 3-28 Instructions d'horloge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1061 3-29 Instructions de débogage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1075 3-30 Instructions de diagnostic d'erreur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1079 3-31 Autres instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1104 3-32 Instructions de programmation de bloc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1124 3-33 Instructions de traitement de chaînes de texte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1158 3-34 Instructions de contrôle des tâches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1192 3-35 Instructions de conversion des modèles (UC version 3.0 ou supérieure) . . . . . . . . . . . . . . . 1199 CHAPITRE 4 Temps d'exécution des instructions et nombre de pas . . . . 1219 4-1 Temps d'exécution des instructions série CS et nombre de pas. . . . . . . . . . . . . . . . . . . . . . . 1221 4-2 Temps d'exécution des instructions série CJ et nombre de pas . . . . . . . . . . . . . . . . . . . . . . . 1250 Appendices A Table des codes ASCII . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1285 Index. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1287 Historique des révisions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1295 xviii A propos de ce manuel : Ce manuel décrit les instructions de programmation en schéma contact des UC pour les automates programmables (API) série CS/CJ. Les séries CS et CJ sont subdivisées comme indiqué dans le tableau ci-dessous. Unité UC UC CS1-H : UC CS1 : Série CS CS1H-CPU@@H CS1G-CPU@@H CS1H-CPU@@-EV1 CS1G-CPU@@-EV1 UC CS1D : UC CS1D pour systèmes d'UC en duplex : CS1D-CPU@@H UC CS1D pour systèmes d'UC unique : CS1D-CPU@@S UC de process CS1D : CS1D-CPU@@P Cartes E/S standard Cartes E/S standard série CS Cartes E/S spéciales Cartes E/S spéciales série CS Cartes réseaux Cartes réseaux série CS Cartes Cartes d'alimentation série CS d'alimentation UC CJ1-H : UC CJ1 : UC CJ1M : Série CJ CJ1H-CPU@@H CJ1G-CPU@@H CJ1G-CPU@@P CJ1G-CPU@@-EV1 CJ1M-CPU@@ Cartes E/S standard série CJ Cartes E/S spéciales série CJ Cartes réseaux série CJ Cartes d'alimentation série CJ Veuillez lire ce manuel et tous les manuels répertoriés dans le tableau suivant et vous assurer d'avoir bien compris les informations qu'ils contiennent avant d'essayer de programmer ou d'utiliser des UC série CS/CJ dans un système API. Chapitre 1 introduit les API série CS/CJ en termes de jeux d'instructions qu'ils prennent en charge. Chapitre 2 fournit plusieurs listes d'instructions à titre de référence. Chapitre 3 décrit chacune des instructions des jeux d'instructions série CS/CJ. Chapitre 4 indique les temps d'exécution des instructions et le nombre de pas pour chaque instruction série CS/CJ. xix A propos de ce manuel, suite Nom Série SYSMAC CS/CJ CS1G/H-CPU@@-EV1, CS1G/H-CPU@@H, CS1DCPU@@H, CS1D-CPU@@S, CJ1G-CPU@@, CJ1MCPU@@, CJ1G-CPU@@P, CJ1G/H-CPU@@H Manuel de référence des instructions des automates programmables Série SYSMAC CS/CJ CS1G/H-CPU@@-EV1, CS1G/H-CPU@@H, CS1DCPU@@H, CS1D-CPU@@S, CJ1G-CPU@@, CJ1MCPU@@, CJ1G-CPU@@P, CJ1G/H-CPU@@H Manuel de programmation des automates programmables Série SYSMAC CS CS1G/H-CPU@@-EV1, CS1G/H-CPU@@H Manuel d'utilisation des automates programmables Série SYSMAC CJ CJ1G-CPU@@, CJ1M-CPU@@, CJ1G-CPU@@P, CJ1G/HCPU@@H Manuel d'utilisation des automates programmables Série SYSMAC CJ CJ1M-CPU21/22/23 Manuel d'utilisation des fonctions E/S intégrées Série SYSMAC CS UC CS1D-CPU@@H UC CS1D-CPU@@S Carte duplex CS1D-DPL1 Carte d’alimentation CS1D-PA207R Manuel d'utilisation du système duplex Série SYSMAC CS/CJ CQM1H-PRO01-E, C200H-PRO27-E, CQM1-PRO01-E Manuel d'utilisation des consoles de programmation Série SYSMAC CS/CJ CS1G/H-CPU@@-EV1, CS1G/H-CPU@@H, CS1D-CPU@@H, CS1D-CPU@@S, CJ1M-CPU@@, CJ1G-CPU@@, CJ1G-CPU@@P, CJ1G/H-CPU@@H, CS1W-SCB21-V1/41-V1, CS1W-SCU21-V1, CJ1W-SCU21-V1/41-V1 Manuel de référence des commandes de communication SYSMAC WS02-CXP@@-E Manuel d'utilisation de CX-Programmer version 3.@ SYSMAC WS02-CXP@@-E Manuel d'utilisation de CX-Programmer version 4.@ SYSMAC WS02-CXP@@-E Manuel d'utilisation de CX-Programmer version 5.@ SYSMAC WS02-CXP@@-E Manuel d'utilisation de CX-Programmer – Blocs fonction xx Cat. No. Sommaire W340 Décrit les instructions de programmation en schéma contact pris en charge par les API série CS/CJ. (Ce manuel) W394 Ce manuel décrit la programmation et les autres modes d'utilisation des fonctions des API série CS/CJ. W339 Présente les grandes lignes et décrit la conception, l'installation, la maintenance et autres opérations de base des API série CS. Présente les grandes lignes et décrit la conception, l'installation, la maintenance et autres opérations de base des API série CJ. W393 W395 Décrit les fonctions des E/S intégrées des UC CJ1M. W405 Présente les grandes lignes et décrit la conception, l'installation, la maintenance et autres opérations standard d'un système duplex basé sur les UC CS1D. W341 Fournit des informations sur la programmation et l'utilisation des API série CS/CJ à l'aide d'une console de programmation. Décrit la série C (Host Link) et les commandes de communication FINS utilisées avec les API série CS/CJ. W342 W414 W425 Fournit des informations sur l'utilisation de CXProgrammer, un périphérique de programmation qui prend en charge les API série CS/CJ, et de CX-Net contenu dans CX-Programmer. W437 W438 Décrit les spécifications et les méthodes d’utilisation relatives aux blocs fonction. Ces informations sont requises uniquement lorsque vous utilisez des blocs fonction avec la combinaison de CXProgrammer ver. 5.0 et UC CS1-H/CJ1-H/CJ1M ver. 3.0. Reportez-vous au Manuel d'utilisation de CX-Programmer version 5.@ (W437) pour des informations détaillées sur les autres fonctions de CX-Programmer ver. 5.0. Nom Série SYSMAC CS/CJ CS1W-SCB21-V1/41-V1, CS1W-SCU21-V1, CJ1W-SCU21-V1/41-V1 Manuel d'utilisation des cartes de communication série SYSMAC WS02-PSTC1-E Manuel d'utilisation de CX-Protocol Cat. No. Sommaire W336 Décrit l'utilisation des cartes de communications série en vue d'effectuer des communications série avec des périphériques externes, y compris l'utilisation des protocoles système standard des produits OMRON. W344 Décrit l'utilisation de CX-Protocol pour créer des macros protocole en tant que séquences de communication pour communiquer avec des périphériques externes. !AVERTISSEMENT Une lecture partielle ou une mauvaise compréhension des informations contenues dans ce manuel peut provoquer des dysfonctionnements ou endommager les appareils, et présente des risques de blessures corporelles, voire un danger de mort. Veuillez lire attentivement chaque chapitre dans son intégralité. Il est essentiel de bien comprendre les informations de chaque chapitre et des chapitres qui lui sont associés avant d'entamer toute procédure ou opération. xxi xxii PRECAUTIONS Ce chapitre présente les précautions générales à prendre lors de l'utilisation des automates programmables (API) séries CS/ CJ et des périphériques associés. Les informations contenues dans ce chapitre sont importantes pour garantir une utilisation fiable et sans danger des automates programmables. Avant d'essayer de configurer ou de faire fonctionner un système d'API, vous devez lire ce chapitre et comprendre les informations qu'il renferme. 1 Public visé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxiv 2 Précautions générales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxiv 3 Précautions de sécurité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxiv 4 Précautions liées à l'environnement d'utilisation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxvi 5 Précautions d'application. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxvi 6 Conformité aux directives CE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxx 6-1 Directives applicables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxx 6-2 Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxx 6-3 Conformité aux directives CE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxxi 6-4 Méthodes de réduction des parasites des sorties relais. . . . . . . . . . . . . . . . . . . . . . . . . . . xxxi xxiii 1 Public visé 1 Public visé Ce manuel est destiné au personnel suivant, qui doit également avoir une connaissance des systèmes électriques (ingénieur électricien ou équivalent). • Personnel chargé d'installer des systèmes d'automatisme. • Personnel chargé de concevoir des systèmes d'automatisme. • Personnel chargé de la gestion de sites et de systèmes d'automatisme. 2 Précautions générales L'utilisateur doit se servir du produit conformément aux spécifications de performances décrites dans les manuels d'utilisation. Avant d'utiliser ce produit dans des conditions non décrites dans ce manuel ou d'appliquer le produit à des systèmes de contrôle nucléaire, des systèmes ferroviaires, des systèmes aéronautiques, des véhicules, des systèmes de combustion, des équipements médicaux, des machines de jeu, des équipements de sécurité et d'autres systèmes, machines et équipements susceptibles d'avoir des conséquences graves sur la vie et la propriété d'autrui en cas d'utilisation inadéquate, veuillez consulter votre revendeur OMRON. Assurez-vous que les valeurs nominales et les caractéristiques de performances du produit sont suffisantes pour les systèmes, machines et équipements, et veillez à ce que ceux-ci soient munis de doubles dispositifs de sécurité. Ce manuel fournit des informations sur la programmation et l'utilisation de l’unité. Vous devez absolument lire ce manuel avant d'essayer d'utiliser l’unité et le conserver à portée de main pour toute référence ultérieure pendant le fonctionnement du système. !AVERTISSEMENT Il est extrêmement important qu'un API et toutes les cartes API soient utilisés aux fins prévues et dans les conditions spécifiées, en particulier lorsqu'il s'agit d'applications susceptibles d'affecter directement ou indirectement la vie de l'homme. Avant d'utiliser un système d'API dans le cadre des applications mentionnées cidessus, vous devez impérativement consulter votre représentant OMRON. 3 Précautions de sécurité !AVERTISSEMENT L'UC met à jour les E/S même lorsque le programme est à l'arrêt (c'est-à-dire, même en mode PROGRAM). Contrôlez les conditions de sécurité avant de modifier l'état de toute partie de mémoire réservée aux cartes E/S, aux cartes E/S spéciales ou aux cartes réseaux. Tout changement des données affectées à une carte risque de provoquer un fonctionnement inattendu des charges connectées à la carte. Chacune des opérations suivantes peut provoquer un changement de l'état de la mémoire. • Transfert de données de la mémoire E/S vers l'UC depuis un périphérique de programmation. • Modification des valeurs actuelles de la mémoire depuis un périphérique de programmation. • Mise à 0/1 forcée de bits depuis un périphérique de programmation. • Transfert de fichiers de la mémoire E/S à partir d'une carte mémoire ou de la mémoire de fichiers EM vers l'UC. • Transfert de la mémoire E/S depuis un ordinateur hôte ou un autre API sur un réseau. !AVERTISSEMENT N'essayez jamais de démonter une carte alors qu'elle est sous tension. Vous pourriez en effet recevoir une décharge électrique. !AVERTISSEMENT Ne touchez jamais les bornes ou borniers pendant que le système est sous tension. Vous pourriez en effet recevoir une décharge électrique. xxiv Précautions de sécurité 3 !AVERTISSEMENT N'essayez jamais de démonter, de réparer ou de modifier une unité quelconque sous peine de provoquer un dysfonctionnement, un incendie ou une décharge électrique. !AVERTISSEMENT Prévoyez des mesures de sécurité pour les circuits externes (extérieurs à l'automate programmable), y compris les mesures suivantes, afin de garantir la sécurité du système si une anomalie intervient à la suite d'un dysfonctionnement de l'API ou un autre facteur externe affectant le fonctionnement de l'API. Le non-respect de cet avertissement pourrait provoquer des accidents graves. • Des circuits d'arrêt d'urgence, des circuits à verrouillage, des interrupteurs de fin de course et autres mesures de sécurité similaires doivent être utilisés avec tous les circuits de contrôle externes. • L'API désactive toutes les sorties lorsque sa fonction de diagnostic automatique détecte une erreur ou qu'une instruction d'alarme de défaillance grave (FALS) est exécutée. Pour éviter de telles erreurs, des mesures de sécurité externes doivent être prises pour assurer la sécurité du système. • Les sorties de l'API peuvent rester sur ON ou sur OFF en raison de l'encrassement ou de la surchauffe 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 de 24 Vc.c. (alimentation électrique de service de l'API) est surchargée ou court-circuitée, il peut y avoir une baisse de tension entraînant une désactivation des sorties. 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. !Attention Vérifiez la sécurité avant de transférer des fichiers de données stockés dans la mémoire de fichiers (carte mémoire ou mémoire de fichiers EM) vers la zone E/S (CIO) de l'UC à l'aide d'un outil périphérique. Les périphériques connectés à la carte de sortie risquent sinon de connaître des dysfonctionnements indépendamment du mode de fonctionnement de l'UC. !Attention Des mesures de sécurité doivent être prises par le client pour garantir la sécurité dans le cas de signaux incorrects, manquants ou anormaux dus à une rupture des lignes de signaux, à des interruptions momentanées de l'alimentation ou à d'autres causes. Des accidents graves peuvent survenir suite à un fonctionnement anormal si des mesures appropriées ne sont pas prises. !Attention N'exécutez une édition en ligne qu'après vous être assuré que cette opération n'aura pas d'effets néfastes par suite de l'allongement du temps de cycle. Les signaux d'entrée risquent sinon d'être illisibles. !Attention Les UC CS1-H, CJ1-H, CJ1M et CS1D enregistrent automatiquement le programme utilisateur ainsi que les données des paramètres dans la mémoire flash lorsque ces données sont écrites sur l'UC. Cependant, la mémoire E/S (y compris les zones DM, EM et HR) n'est pas sauvegardée dans la mémoire flash. Il est possible de conserver les zones DM, EM et HR en cas d'interruption d'alimentation grâce à une batterie. En cas d'erreur de batterie, il est possible que le contenu de ces zones ne soit pas exact après une interruption d'alimentation. Si le contenu des zones DM, EM et HR sert à contrôler les sorties externes, évitez des sorties inadéquates chaque fois que le drapeau d'erreur de batterie (A40204) est activé (ON). !Attention Assurez-vous de la sécurité du nœud de destination avant de transférer un programme vers un autre nœud ou de modifier le contenu de la zone de mémoire E/S. Exécuter l'une de ces opérations sans vérifier la sécurité risque de provoquer des blessures. xxv Précautions liées à l'environnement d'utilisation 4 !Attention Serrez les vis du bornier de la carte d'alimentation c.a. en respectant le couple spécifié dans le manuel d'utilisation. Des vis mal serrées risquent de provoquer une surchauffe ou un dysfonctionnement. !Attention Ne touchez pas la carte d'alimentation alors qu'elle est sous tension ou juste après la mise hors tension. Elle risque d'être chaude et de vous brûler. !Attention Faites attention lorsque vous connectez des ordinateurs ou d'autres périphériques à un API sur lequel est montée une unité non isolée (CS1W-CLK12/52(V1) ou CS1W-ETN01) connectée à une alimentation externe. Si le côté 24 V de l'alimentation externe est raccordé à la terre et que le côté 0 V de l'appareil périphérique l'est aussi, vous produirez un court-circuit. Lorsque vous connectez un appareil périphérique à ce type d'API, vous pouvez soit raccorder à la terre le côté 0 V de l'alimentation externe, soit ne pas raccorder du tout à la terre l'alimentation externe. 4 Précautions liées à l'environnement d'utilisation !Attention N'utilisez pas le système de contrôle dans les endroits suivants : • Endroits exposés à la lumière directe du soleil. • Endroits soumis à des températures ou des taux d'humidité en dehors des valeurs indiquées dans les spécifications. • Endroits soumis à la condensation due à des variations importantes de température. • Endroits en contact avec des gaz corrosifs ou inflammables. • Endroits soumis à la poussière (en particulier, la limaille de fer) ou au contact de sels. • Endroits où l'on utilise de l'eau, de l'huile ou des produits chimiques. • Endroits soumis à des chocs ou des vibrations importantes. !Attention Prenez des mesures de protection appropriées et suffisantes lorsque vous installez des systèmes dans les endroits suivants : • • • • Endroits soumis à l'électricité statique ou à d'autres formes de parasites. Endroits soumis à des champs électromagnétiques intenses. Endroits susceptibles d'être exposés à la radioactivité. Endroits proches de sources d'alimentation. !Attention L'environnement d'utilisation du système d'API peut affecter fortement sa longévité et sa fiabilité. Un environnement d'utilisation hostile peut provoquer des dysfonctionnements, des défaillances et d'autres problèmes imprévisibles au niveau du système API. Vérifiez bien qu'au moment de l'installation, l'environnement d'utilisation est conforme aux conditions spécifiées et qu'il présente toujours les mêmes conditions tout au long de la durée de vie du système. 5 Précautions d'application Observez les précautions suivantes lorsque vous utilisez le système API. • Vous devez utiliser CX-Programmer (logiciel de programmation qui fonctionne sous Windows) si vous devez programmer plusieurs tâches. La console de programmation peut uniquement être utilisée pour programmer une seule tâche cyclique et des tâches d'interruption. Elle peut toutefois être utilisée pour éditer des programmes multitâches créés initialement avec CX-Programmer. xxvi 5 Précautions d'application !AVERTISSEMENT Suivez toujours ces précautions. Le non-respect des précautions suivantes pourrait entraîner des blessures graves, voire mortelles. • Effectuez toujours une mise à la terre de 100 Ω ou moins lors de l'installation des cartes. L'absence d'une mise à la terre de 100 Ω ou moins risque de provoquer des décharges électriques. • Une mise à la terre de 100 Ω ou moins doit être installée lors du court-circuitage des bornes GR et LG sur la carte d'alimentation. • Mettez toujours l'API hors tension avant de tenter d'effectuer l'une des opérations suivantes. Si vous ne le faites pas, vous risquez de provoquer un dysfonctionnement ou de recevoir une décharge électrique. • Montage ou démontage des cartes d'alimentation, des cartes E/S, des UC ou des autres cartes. • Assemblage des cartes. • Réglage des interrupteurs DIP et autres commutateurs rotatifs. • Connexion des câbles ou câblage du système. • Connexion ou déconnexion des connecteurs. !Attention Le non-respect des précautions suivantes peut provoquer un dysfonctionnement de l'API ou du système, ou endommager l'API ou les cartes API. Suivez toujours ces précautions. • Les données du programme utilisateur et de la zone de paramètre des UC CS1-H, CS1D, CJ1-H et CJ1M sont sauvegardées dans la mémoire flash intégrée. Le voyant BKUP s'allume sur le devant de l'UC pendant que la sauvegarde est en cours. Ne pas mettre l'UC hors tension lorsque le voyant BKUP est allumé. Les données ne seront pas sauvegardées si l'alimentation est coupée. • Lorsque vous utilisez une UC CS1 série CS la première fois, installez la batterie CS1W-BAT1 fournie avec la carte et effacez toutes les zones de mémoire à partir d'un périphérique de programmation avant de commencer à programmer. Lorsque vous utilisez l'horloge interne, mettez le système sous tension après avoir installé la batterie et réglez l'horloge à partir d'un périphérique de programmation ou à l'aide de l'instruction DATE(735). L'horloge ne démarrera pas tant que l'heure n'aura pas été réglée. • Lorsque l'UC sort de l'usine, l'API est configuré de manière à ce que l'UC démarre dans le mode de fonctionnement réglé sur le commutateur de mode de la console de programmation. Lorsqu'aucune console de programmation n'est connectée, une UC CS1 série CS démarrera en mode PROGRAM mais une UC CS1-H, CS1D, CJ1, CJ1-H ou CJ1M démarrera en mode RUN et commencera à fonctionner immédiatement. Evitez de lancer, intentionnellement ou non, le fonctionnement sans être sûr de sa sécurité. • Lorsque vous créez un fichier AUTOEXEC.IOM depuis un périphérique de programmation (console de programmation ou CX-Programmer) pour transférer automatiquement des données au démarrage, configurez la première adresse en écriture sur D20000 et assurez-vous que la taille des données écrites ne dépasse pas la taille de la zone DM. Lorsque le fichier de données est lu depuis la carte mémoire au démarrage, les données sont écrites sur l'UC en commençant par l'adresse D20000 et ce, même si une autre adresse a été configurée lors de la création du fichier AUTOEXEC.IOM. De plus, si la zone DM est dépassée (ce qui est possible lorsque CX-Programmer est utilisé), les données restantes sont écrites sur la zone EM. • Mettez toujours l'API sous tension avant de brancher le système de contrôle. Si l'API est mis sous tension après le système de contrôle, des erreurs temporaires risquent de se produire au niveau des signaux du système de contrôle car les bornes de sortie des cartes de sorties c.c. et des autres cartes sont momentanément activées lors de la mise sous tension de l'API. xxvii Précautions d'application 5 • Des mesures de sécurité doivent être prises par le client pour garantir la sécurité dans le cas où les sorties de cartes de sorties restent sur ON à la suite d'un dysfonctionnement interne qui peut survenir au niveau des relais, des transistors et des autres éléments. • Des mesures de sécurité doivent être prises par le client pour garantir la sécurité dans le cas de signaux incorrects, manquants ou anormaux dus à une rupture des lignes de signaux, à des interruptions momentanées de l'alimentation ou à d'autres causes. • Des circuits à verrouillage, des interrupteurs de fin de course et des mesures de sécurité similaires dans les circuits externes (c'est-à-dire, extérieurs à l'automate programmable) doivent être fournis par le client. • Ne débranchez pas l'API pendant le transfert de données. Plus particulièrement, ne débranchez pas l'alimentation lors de la lecture ou de l'écriture d'une carte mémoire. De même, ne retirez pas la carte mémoire lorsque le voyant BUSY est allumé. Pour retirer une carte mémoire, appuyez d'abord sur le commutateur d'alimentation de la carte mémoire et attendez que le voyant BUSY s'éteigne avant de la retirer. • Si le bit de maintien E/S est sur ON, les sorties de l'API ne sont pas désactivées et conservent leur état précédent lorsque l'API passe du mode RUN ou MONITOR au mode PROGRAM. Assurez-vous que les charges externes ne produisent pas de situations dangereuses lorsque cette situation se présente. (Lorsque le fonctionnement s'arrête à la suite d'une erreur fatale, y compris celles dues à l'instruction FALS(007), toutes les sorties de la carte de sortie passent à OFF et seul l'état interne des sorties est conservé.) • Le contenu des zones DM, EM et HR de l'UC est sauvegardé grâce à une batterie. Si la tension de la batterie diminue, ces données risquent d'être perdues. Utilisez des contre-mesures dans le programme en utilisant le drapeau d'erreur de batterie (A40204) pour réinitialiser les données ou pour prendre d'autres dispositions en cas de diminution de la tension de la batterie. • Si la tension d'alimentation est de 200 à 240 Vc.a. avec un API série CS, enlevez toujours le cavalier métallique des bornes de sélection de tension sur la carte d'alimentation (excepté pour les cartes d'alimentation à caractéristiques techniques étendues). Si le cavalier métallique n'est pas enlevé et que l'alimentation est de 200 à 240 Vc.a., le produit sera détruit. • Utilisez toujours la tension d'alimentation spécifiée dans les manuels d'utilisation. Une tension incorrecte peut provoquer un dysfonctionnement ou une surchauffe. • Prenez les mesures appropriées pour vous assurer que l'alimentation indiquée est conforme à la tension et à la fréquence nominales. Etre particulièrement prudent aux endroitse où l'alimentation électrique est instable. Une alimentation incorrecte peut provoquer un dysfonctionnement. • Installez des disjoncteurs externes et prenez d'autres mesures de sécurité contre d'éventuels courts-circuits au niveau du câblage externe. Des mesures de sécurité insuffisantes contre les courts-circuits peuvent provoquer une surchauffe. • N'appliquez jamais une tension supérieure à la tension nominale d'entrée aux cartes d'entrées. Une tension excessive peut provoquer une surchauffe. • N'appliquez pas de tension et ne connectez pas de charges aux cartes de sorties qui dépassent la capacité maximale de commutation. Une tension excessive peut provoquer une surchauffe. • Séparez la borne de terre des lignes (LG) de la borne de terre fonctionnelle (GR) sur la carte d’alimentation avant de réaliser les essais de tension de maintien ou de résistance d’isolement. Le non-respect de cette consigne peut provoquer une surchauffe. • Installez la carte correctement, comme indiqué dans les manuels d'utilisation. Une installation incorrecte de la carte peut provoquer un dysfonctionnement. • Dans le cas des API série CS, assurez-vous que toutes les vis de montage de la carte et du panneau arrière sont serrées au couple spécifié xxviii 5 Précautions d'application • • • • • • • • • • • • • • • • • dans les manuels correspondants. Un serrage à un couple incorrect peut provoquer un dysfonctionnement. Assurez-vous que toutes les vis des bornes et des connecteurs de câble sont serrées au couple spécifié dans les manuels correspondants. Un serrage à un couple incorrect peut provoquer un dysfonctionnement. Laissez l'étiquette sur la carte pendant le câblage. Le retrait de l'étiquette peut provoquer un dysfonctionnement si des corps étrangers pénètrent dans la carte. Lorsque le câblage est terminé, enlevez l'étiquette pour assurer une bonne dissipation de la chaleur. Laisser l'étiquette peut provoquer un dysfonctionnement. Utilisez des bornes serties pour effectuer le câblage. Ne pas raccorder directement des fils toronnés nus à des bornes. Le raccordement de fils multibrins nus peut provoquer une surchauffe. Câblez correctement toutes les connexions. Vérifiez deux fois le câblage et les paramètres d'interrupteur avant de mettre l'API sous tension. Un câblage incorrect peut provoquer une surchauffe. Installez les cartes uniquement après avoir complètement vérifié les borniers et les connecteurs. Vérifiez que les borniers, les cartes mémoire, les câbles d'extension et autres éléments avec périphériques de verrouillage sont bien connectés Un verrouillage incorrect peut provoquer un dysfonctionnement. Vérifiez les paramètres des interrupteurs, le contenu de la zone DM et d'autres préparatifs avant de commencer à utiliser la carte. Commencer à utiliser la carte sans les réglages ou les données appropriés peut provoquer un fonctionnement inattendu. Vérifiez le fonctionnement correct du programme utilisateur avant de l'exécuter sur la carte. Ne pas vérifier le programme peut provoquer un fonctionnement inattendu. Assurez-vous que le système ne sera pas perturbé avant de lancer l'une des opérations suivantes. Le système risque sinon de fonctionner de façon imprévisible. • Modification du mode de fonctionnement de l'API (y compris la configuration du mode de fonctionnement au démarrage). • Mise à 1/0 forcée d'un bit en mémoire. • Modification de la valeur actuelle d'un mot ou d'une valeur dans la mémoire. Ne tirez pas sur les câbles et ne les pliez pas au-delà des limites qu'ils peuvent normalement supporter. Vous risquez sinon de casser les câbles. Ne posez aucun objet sur les câbles ou les lignes électriques. Vous pourriez en effet casser les câbles. Ne pas utiliser les câbles RS-232C pour ordinateurs disponibles dans le commerce. Toujours utiliser les câbles répertoriés dans ce manuel ou assembler un câble en respectant les caractéristiques techniques du manuel. L'utilisation de câbles disponibles dans le commerce risque d'endommager les périphériques externes ou l'UC. Ne connectez jamais la broche 6 (alimentation 5 V) du port RS-232C de l'UC à un autre périphérique qu'un adaptateur NT-AL001 ou CJ1W-CIF11. Le périphérique externe ou l'UC risquent d'être endommagés. Lorsque vous remplacez des pièces, vérifiez que les caractéristiques nominales des pièces neuves sont correctes. Une différence risque de provoquer un dysfonctionnement ou une surchauffe. Avant de toucher une carte, touchez d'abord un objet métallique relié à la terre afin de vous décharger de toute électricité statique qui aurait pu s'accumuler. Le non-respect de cette consigne peut provoquer un dysfonctionnement ou des dommages. xxix 6 Conformité aux directives CE • Lors du transport ou du stockage des cartes, couvrez-les d'un matériau antistatique pour les protéger contre l'électricité statique et maintenez la température de stockage appropriée. • Ne touchez pas les cartes circuit ou les composants montés avec vos mains nues. Des fils pointus et d'autres parties des cartes peuvent causer des blessures en cas de manipulation incorrecte. • Ne court-circuitez pas les bornes de la batterie et prenez garde de ne pas charger, démonter, chauffer ou incinérer la batterie. Ne soumettez pas la batterie à des chocs importants. Le non-respect de ces consignes peut provoquer une fuite, une rupture, une génération de chaleur ou l'ignition de la batterie. Débarrassez-vous des batteries qui sont tombées sur le sol ou qui ont été soumises à des chocs excessifs. Le liquide des batteries qui ont été soumises à des chocs risque de s'écouler lors de l'utilisation de la batterie. • Les normes UL exigent que les batteries soient remplacées seulement par des techniciens expérimentés. Ne permettez pas à des personnes non qualifiées de les remplacer. • Sur une UC série CJ, les cliquets du haut et du bas de la carte d'alimentation, de l'UC, des cartes E/S, des cartes E/S spéciales et des cartes réseaux doivent être complètement verrouillés (jusqu'à ce qu'ils soient bien en place). L'unité ne fonctionnera pas correctement si les cliquets ne sont pas bien en place. • Dans le cas d'un API série CJ, connectez toujours la plaque d'extrémité à l'unité la plus à droite de l'API. Sans cette plaque, l'API ne fonctionnera pas correctement. • Un fonctionnement inattendu peut survenir si des tables de liaison de données ou des paramètres inappropriés sont configurés. Même si les tables de liaison des données et les paramètres corrects ont été définis, assurez-vous que le système de contrôle ne risque pas d'être endommagé avant de lancer ou d'interrompre les liaisons de données. • Les cartes réseaux redémarrent lorsque les tables de routage sont transférées depuis un périphérique de programmation vers l'UC. Le redémarrage de ces cartes est nécessaire pour lire et activer les nouvelles tables de routage. Assurez-vous que le système ne risque pas d'être endommagé avant de permettre la réinitialisation des cartes réseaux. 6 6-1 Conformité aux directives CE Directives applicables • Directives CEM • Directive basses tensions 6-2 Concepts Directives CEM Les dispositifs OMRON en conformité avec les directives CE respectent également les normes CEM correspondantes, ce qui facilite leur intégration dans d'autres dispositifs ou dans une machine. Les produits commercialisés ont fait l'objet d'un contrôle de conformité avec les normes CEM (voir la remarque suivante). C'est au client qu'il appartient de s'assurer que les produits sont en conformité avec les normes du système qu'il utilise. Les performances liées à la CEM des dispositifs OMRON en conformité avec les directives CE varient selon la configuration, le câblage et d'autres particularités de l'équipement et du tableau de commande sur lesquels ces dispositifs sont installés. Le client doit dès lors effectuer le contrôle final pour s'assurer que les dispositifs et l'ensemble de la machine sont conformes aux normes CEM. xxx 6 Conformité aux directives CE Remarque Les normes CEM (Compatibilité électromagnétique) d'application sont les suivantes : EMS (Electromagnetic Susceptibility, susceptibilité électromagnétique) : EN61131-2 (série CS)/ EN61000-6-2 (série CJ) EMI (Electromagnetic Interference, interférence électromagnétique) : EN61000-6-4 (Emission de radiations : réglementation 10 m) Directive Basse tension Vérifier toujours que les appareils fonctionnant à des tensions de 50 à 1 000 Vc.a. et de 75 à 1 500 Vc.c. répondent aux normes de sécurité requises pour l'API (EN 61131-2). 6-3 Conformité aux directives CE Les API série CS/CJ sont conformes aux directives CE. Pour garantir que la machine ou le dispositif sur lequel est utilisé l'API série CS/CJ respecte les directives CE, l'API doit être installé comme suit : 1,2,3... 6-4 1. L'API série CS/CJ doit être installé dans un tableau de commande. 2. Pour les alimentations c.c. utilisées pour l'alimentation des communications et des E/S, utilisez une isolation renforcée ou double. 3. Les API série CJ conformes aux directives CE respectent également la norme d'émission commune (EN61000-6-4). Les caractéristiques d'émission de radiations (réglementations 10-m) peuvent varier en fonction de la configuration du tableau de commande utilisé, des périphériques connectés au tableau de commande, du câblage et d'autres facteurs. Il convient donc de s'assurer que l'ensemble de la machine ou de l'équipement est conforme aux directives CE. Méthodes de réduction des parasites des sorties relais Les API série CS/CJ sont conformes aux normes relatives aux émissions communes (EN61000-6-4) des directives sur la CEM. Cependant, il est possible que les parasites générés par la commutation de la sortie relais ne respectent pas ces normes. Dans ce cas, vous devez connecter un filtre antiparasite au côté charge ou prendre d'autres mesures spécifiques à l'extérieur de l'API Les contre-mesures prises pour être en conformité avec les normes varient en fonction des périphériques qui sont du côté charge, du câblage, de la configuration des machines, etc. Les exemples suivants décrivent des contremesures permettant de réduire les parasites générés. Contre-mesures (Pour plus de détails, reportez-vous à la norme EN61000-6-4.) Les contre-mesures sont inutiles si la fréquence de commutation de la charge de l'ensemble du système - API inclus - est inférieure à 5 fois par minute. Des contre-mesures sont obligatoires si la fréquence de commutation de la charge pour l'ensemble du système - API inclus - est supérieure à 5 fois par minute. xxxi 6 Conformité aux directives CE Exemples de contre-mesures En cas de commutation d'une charge inductive, connectez un limiteur de tension, des diodes, etc. en parallèle avec la charge ou le contact, comme illustré ci-dessous. Circuit Courant c.a. c.c. Oui Oui Alimentation Charge inductive Méthode CR Alimentation Alimentation Charge inductive Méthode à varistor Elément requis Si la charge est un relais ou un solénoïde, il y a un décalage entre l'ouverture du circuit et la réinitialisation de la charge. Si la tension d'alimentation est de 24 ou 48 V, placez le limiteur de surtension en parallèle avec la charge. Si la tension d'alimentation est comprise entre 100 et 200 V, placez le limiteur entre les contacts. La capacité du condensateur doit être de 1 à 0,5 µF pour un courant de contact de 1 A et la résistance du condensateur doit être de 0,5 à 1 Ω pour une tension de contact de 1 V. Toutefois, ces valeurs peuvent varier en fonction de la charge et des caractéristiques du relais. Ces valeurs doivent être choisies à partir d'expérimentations en tenant compte du fait que la capacité supprime la décharge d’étincelles lorsque les contacts sont séparés et que la résistance limite le courant qui circule dans la charge lorsque le circuit est à nouveau fermé. La rigidité diélectrique du condensateur doit être comprise entre 200 et 300 V. S'il s'agit d'un circuit c.a., utilisez un condensateur sans polarité. La valeur de la rigidité diélectrique inverse de la diode doit être au moins 10 fois plus grande que la valeur de la tension du circuit. Le courant direct de la diode doit être supérieur ou égal au courant de la charge. La valeur de la rigidité diélectrique inverse de la diode peut être deux ou trois fois plus grande que la tension d'alimentation si le limiteur de surtension est appliqué à des circuits électroniques présentant de faibles tensions de circuit. --- Non Oui La diode connectée en parallèle avec la charge transforme l'énergie accumulée par la bobine en courant, qui circule alors dans la bobine afin d'être converti en chaleur par la résistance de la charge inductive. Le décalage entre l'ouverture du circuit et la réinitialisation de la charge, qui est provoqué par cette méthode, est plus long que celui obtenu par la méthode CR. Oui Oui La méthode du varistor empêche d'appliquer une tension élevée entre les contacts grâce à la caractéristique de tension constante du varistor. Il y a un décalage entre l'ouverture du circuit et la réinitialisation de la charge. Si la tension d'alimentation est de 24 ou 48 V, placez le varistor en parallèle avec la charge. Si la tension d'alimentation est comprise entre 100 et 200 V, placez-le entre les contacts. Charge inductive Méthode avec diode Caractéristique Lorsque vous commutez une charge avec un courant élevé induit tel qu'une lampe à incandescence, supprimez le courant induit comme illustré ci-dessous. Contre-mesure 1 Contre-mesure 2 R SORTIE SORTIE R COM Fourniture d'un courant d'obscurité d'environ un tiers de la valeur nominale via une lampe à incandescence. xxxii COM Fourniture d'une résistance de limitation CHAPITRE 1 Introduction Ce chapitre fournit des informations sur les caractéristiques générales des instructions ainsi que sur les erreurs susceptibles de se produire lors de l'exécution d'une instruction. 1-1 1-2 Caractéristiques générales des instructions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1-1-1 Capacité de programme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1-1-2 Instructions différenciées . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1-1-3 Variations d'instruction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1-1-4 Emplacement de l'instruction et conditions d'exécution. . . . . . . . . . . . . . . . . . . . . . . . . . 5 1-1-5 Entrée des données dans les opérandes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1-1-6 Formats de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Contrôle d'exécution de l'instruction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 1-2-1 Erreurs lors de l'exécution d'une instruction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 1-2-2 Erreurs fatales (erreurs de programme) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 1 Chapitre 1-1 Caractéristiques générales des instructions 1-1 1-1-1 Caractéristiques générales des instructions Capacité de programme La capacité de programme indique la taille de la zone du programme utilisateur dans l'UC et s'exprime par le nombre de pas de programme. Le nombre de pas nécessaires dans la zone du programme utilisateur pour chaque instruction de la série CS/CJ varie de 1 à 7 en fonction de l'instruction et de l'opérande utilisé. Série CS Les tableaux ci-dessous indiquent le nombre maximum de pas pouvant être programmés dans chaque UC série CS. • UC CS1-H Modèle CS1H-CPU67H CS1H-CPU66H CS1H-CPU65H CS1H-CPU64H CS1H-CPU63H CS1G-CPU45H CS1G-CPU44H CS1G-CPU43H CS1G-CPU42H Capacité de programme Points E/S 250K pas 5 120 120K pas 60K pas 30K pas 20K pas 60K pas 30K pas 1 280 20K pas 960 10K pas • UC CS1 Modèle CS1H-CPU67-E CS1H-CPU66-E CS1H-CPU65-E CS1H-CPU64-E CS1H-CPU63-E CS1G-CPU45-E CS1G-CPU44-E CS1G-CPU43-E CS1G-CPU42-E Capacité de programme Points E/S 250K pas 5 120 120K pas 60K pas 30K pas 20K pas 60K pas 30K pas 1 280 20K pas 960 10K pas • UC CS1D pour système à UC uniques Modèle CS1D-CPU67H CS1D-CPU65H Capacité de programme Points E/S 250K pas 5 120 60K pas UC CS1D pour systèmes à UC en duplex Modèle CS1D-CPU42S CS1D-CPU44S CS1D-CPU65S CS1D-CPU67S Capacité de programme Points E/S 10K pas 960 30K pas 1 280 60K pas 5 120 250K pas Série CJ Les tableaux ci-dessous indiquent le nombre maximum de pas pouvant être programmés dans chaque UC série CJ. 2 Chapitre 1-1 Caractéristiques générales des instructions • UC CJ1-H Modèle CJ1H-CPU67H CJ1H-CPU66H CJ1H-CPU65H CJ1G-CPU45H CJ1G-CPU44H CJ1G-CPU43H CJ1G-CPU42H Capacité de programme Points E/S 250K pas 2 560 120K pas 60K pas 60K pas 1 280 30K pas 20K pas 960 10K pas • UC CJ1 Modèle CJ1G-CPU45 CJ1G-CPU44 Capacité de programme Points E/S 60K pas 1 280 30K pas • UC CJ1M Modèle CJ1M-CPU23 Capacité de programme Points E/S 20K pas 640 CJ1M-CPU22 CJ1M-CPU21 CJ1M-CPU13 CJ1M-CPU12 CJ1M-CPU11 10K pas 5K pas 20K pas 10K pas 5K pas 320 160 640 320 160 Remarque La capacité du programme pour les API série CS/CJ est mesurée en pas tandis que la capacité du programme des anciens API d'OMRON, tels que ceux de la série C et de la série CV, était mesurée en mots. Fondamentalement, 1 pas est équivalent à 1 mot. Toutefois, la quantité de mémoire nécessaire pour chaque instruction est différente pour certaines instructions de la série CS/CJ et des inexactitudes apparaissent si la capacité d'un programme utilisateur d'un autre API est convertie pour un API série CS/CJ en supposant qu'un mot égale un pas. Consultez les informations décrites à la fin du CHAPITRE 4 Temps d'exécution des instructions et nombre de pas pour les directives sur la conversion des capacités des programmes des anciens API d'OMRON. Le nombre de pas d'un programme est différent du nombre d'instructions. Par exemple, les instructions LD et OUT requièrent un pas chacune, alors que l'instruction MOV(021) en a besoin de 3. D'autres instructions requièrent jusque 7 pas chacune. Le nombre de pas requis par une instruction est également augmenté d'un pas pour chaque opérande de longueur double utilisé dans celle-ci. Par exemple, l'instruction MOVL(498) nécessite en général 3 pas, mais 4 pas seront requis si une constante est spécifiée pour l'opérande mot source, S. Consultez le CHAPITRE 4 Temps d'exécution des instructions et nombre de pas pour connaître le nombre de pas requis pour chaque instruction. 1-1-2 Instructions différenciées La plupart des instructions des API série CS/CJ sont fournies avec des variations non différenciées et différenciées sur front montant, et certaines sont également accompagnées d'une variation différenciée sur front descendant. • Une instruction non différenciée est exécutée chaque fois qu'elle est passée. • Une instruction différenciée sur front montant n'est exécutée qu'après que sa condition d'exécution passe de OFF à ON. 3 Chapitre 1-1 Caractéristiques générales des instructions • Une instruction différenciée sur front descendant n'est exécutée qu'après que sa condition d'exécution passe de ON à OFF. Variation Non différenciée Type d'instruction Instructions de sortie (instructions requérant une condition d'exécution) Instructions d'entrée (instructions utilisées comme conditions d'exécution) Différentiation Instructions de sortie sur front montant (avec préfixe @) Instructions d'entrée (instructions utilisées comme conditions d'exécution) Différentiation sur front descendant (avec préfixe %) Instructions de sortie Instructions d'entrée (instructions utilisées comme conditions d'exécution) Fonctionnement L'instruction est exécutée à chaque cycle lorsque la condition d'exécution est vraie (ON). Le traitement de bit (tel que lecture, comparaison ou test) est effectué à chaque cycle. La condition d'exécution est vraie lorsque le résultat est ON. L'instruction est exécutée une seule fois lorsque la condition d'exécution passe de OFF à ON. Format Instruction de sortie exécutée à chaque cycle Exemple MOV Instruction d'entrée exécutée à chaque cycle Instruction exécutée une fois pour la différentiation sur front montant Le traitement de bit (tel que lecture, comparaison ou test) est effectué à chaque cycle. La condition d'exécution est vraie pour un cycle lorsque le résultat passe de OFF à ON. L'instruction est exécutée une seule fois lorsque la condition d'exécution passe de ON à OFF. Instruction d'entrée différenciée sur front montant Le traitement de bit (tel que lecture, comparaison ou test) est effectué à chaque cycle. La condition d'exécution est vraie pour un cycle lorsque le résultat passe de ON à OFF. Instruction d'entrée différenciée sur front descendant @ MOV MOV(021) exécutée une fois pour chaque transition de OFF à ON dans CIO 000102. Condition d'exécution ON créée pour un cycle uniquement pour chaque transition de OFFà ON dans CIO 000103. Instruction % exécutée une fois pour la différentiation sur front descendant 0001 02 %SET SET exécutée une fois pour chaque transition de ON à OFF dans CIO 000102. 0001 03 Condition d'exécution ON créée pour un cycle uniquement pour chaque transition de ON à OFF dans CIO 000103. Remarque L'option de différentiation sur front descendant (%) n'est disponible que pour les instructions LD, AND, OR et RSET. Pour créer des variations différenciées sur front descendant d'autres instructions, contrôlez l'exécution de l'instruction avec des bits de travail contrôlés par DIFD(014) ou DOWN(522). 1-1-3 Variations d'instruction Les préfixes de variation (@, % et !) peuvent être ajoutés à une instruction pour créer une instruction différenciée ou pour effectuer une mise à jour immédiate. Variation Différentiation Différentiation sur front montant Différentiation sur front descendant Rafraîchissement immédiat 4 Préfixe Fonctionnement @ Crée une instruction différenciée sur front montant. % Crée une instruction différenciée sur front descendant. ! Les données d'opérande de l'instruction dans la zone E/S sont mises à jour à l'exécution de l'instruction. Chapitre 1-1 Caractéristiques générales des instructions ! @ MOV Instruction (mnémonique) Variation de différentiation sur front montant Variation de rafraîchissement immédiat 1-1-4 Emplacement de l'instruction et conditions d'exécution Le tableau ci-dessous indique les emplacements dans lesquels les instructions peuvent être programmées. Le tableau mentionne également si une instruction requiert ou non une condition d'exécution. Reportez-vous au CHAPITRE 2 Résumé des instructions pour de plus amples informations sur des instructions spécifiques. Type d'instruction Entrée Sortie Emplacement Condition d’exécution Instructions Au bus gauche ou au Non obligatoire qui lancent début d'un bloc des conditions d'instruction logiques Instructions Entre une instruction Obligatoire de connexion de démarrage et une instruction de sortie Au bus de droite Format Exemples LD, LD TST et instructions de comparaison d'entrées telles que LD > AND, OR, AND TST, instructions de comparaison d'entrées telles que AND >, UP, DOWN, NOT La majorité des instructions (telles que OUT et MOV) Obligatoire Non obligatoire Instructions telles que END, JME, FOR et ILC Outre ces instructions, les API série CS/CJ sont pourvus d'instructions de programmation de bloc. Consultez les descriptions des instructions de programmation de bloc pour plus de détails. Remarque Si une condition d'exécution ne précède pas une instruction qui en requiert une, une erreur de programme se produit lorsque le programme est contrôlé par un périphérique. 1-1-5 Entrée des données dans les opérandes Les opérandes sont des paramètres définis à l'avance avec les adresses mémoire E/S ou constantes à utiliser lorsque l'instruction est exécutée. Il existe trois grands types d'opérandes : des opérandes source, des opérandes destination et des numéros. MOV #0000 D00000 JMP S (Source) &3 N (Numéro) D (Destination) Opérande Code habituel Source Adresse contenant S Opéles données ou les rande données proprement source dites C Données de contrôle Destina- Adresse où les don- D --tion nées sont stockées Numéro Contient un numéro N --tel un numéro de saut ou un numéro de sous-programme. Contenu Données sources autres que les données de contrôle Données de contrôle avec un ou plusieurs bits contrôlant l'exécution de l'instruction 5 Chapitre 1-1 Caractéristiques générales des instructions Remarque On peut également se référer aux opérandes d'une instruction par leur position dans l'instruction (premier opérande, deuxième opérande, ...). Les codes utilisés pour l'opérande varient selon la fonction spécifique de l'opérande. MOV #0000 D00000 Premier opérande Deuxième opérande Spécification des adresses de bit Description Exemple Pour spécifier une adresse de bit, définissez directement l'adresse de mot et l'adresse de bit. @@@@ 0001 02 Exemple d'instruction 0001 02 Bit 02 @@ Mot CIO 0001 Numéro de bit Adresse de mot Remarque Le format adresse de mot + numéro de bit n'est pas utilisé pour les drapeaux de fin de temporisateur/compteur ni pour les drapeaux de tâches. Spécification des adresses de mot Description Exemple Pour spécifier une adresse de mot, définissez directement l'adresse de mot. @@@@ Exemple d'instruction MOV 0003 D00200 0003 Mot CIO 0003 D00200 Adresse de mot Mot D00200 Spécification des adresses DM/EM indirectes en mode binaire Description Exemple Lorsque le préfixe @ est utilisé devant une adresse DM ou EM, le contenu de ce mot spécifie un autre mot utilisé comme opérande. Le contenu peut être 0000 à 7FFF (0 à 32 767), correspondant à l'adresse de mot souhaitée dans la zone DM ou EM. Exemple d'instruction --- --- @D00300 MOV #0001 @D00300 @D@@@@@ Contenu 00000 à 32767 (0000 à 7FFF) D Lorsque le contenu de @D@@@@@ est compris entre 0000 et 7FFF (00000 à 32 767), le mot correspondant entre D00000 et D32767 est spécifié. 0 1 0 0 Décimal : 256 Spécifie D00256. Ajouter le préfixe @. Lorsque le contenu de @D@@@@@ est compris @D00300 entre 8000 et FFFF (32 768 à 65 535), le mot correspondant entre E0_00000 et E0_32767 dans la 8 0 0 1 banque EM 0 est spécifié. Décimal : 32,769 Spécifie E0_00001. 6 --- Chapitre 1-1 Caractéristiques générales des instructions Description Exemple Exemple d'instruction Lorsque le contenu de @En@_@@@@@ est com- @E1_00200 pris entre 0000 et 7FFF (00000 à 32 767), le mot correspondant entre En@_00000 et En@_32767 0 1 0 1 est spécifié. MOV #0001 @E1_00200 Décimal : 257 Spécifie E1_00257. Lorsque le contenu de @En@_@@@@@ est com- @E1_00200 pris entre 8000 et FFFF (32 768 à 65 535), le mot correspondant entre E (@+1) _00000 et E (@+1) 8 0 0 2 _32767 (dans la banque EM suivante) est spéciDécimal : 32770 fié. Spécifie E2_00002. Remarque Lorsque le mode binaire est sélectionné dans la configuration de l'API, la zone DM et les adresses de banque EM courantes (banque 0 à C) sont traitées comme adresses mémoire consécutives. Un mot dans la banque EM 0 sera spécifié si un mot DM indirectement adressé contient une valeur supérieure à 32 767. Par exemple, E00000 dans la banque 0 sera spécifié lorsque le mot DM d'adressage indirect contient une valeur hexadécimale de 8000 (32 768). Un mot dans la banque EM suivante sera spécifié si un mot EM indirectement adressé contient une valeur supérieure à 32 767. Par exemple, E3_00000 sera spécifié lorsque le mot EM d'adressage indirect dans la banque 2 contient une valeur hexadécimale de 8000 (32 768). Spécification des adresses DM/EM indirectes en mode BCD Méthode Description Adressage DM/EM Lorsque le préfixe * est utilisé devant indirect une adresse DM ou EM, le contenu (mode BCD) BCD de ce mot spécifie un autre mot utilisé comme opérande. Le contenu peut être 0000 à 9999, correspondant à l'adresse de mot souhaitée dans la zone DM ou EM. *D@@@@@ Contenu Exemple *D00200 Exemple d'instruction MOV #0001 *D00200 0 1 0 0 Spécifie D00100. Ajouter le préfixe *. De 0000 à 9999 (BCD) D 7 Chapitre 1-1 Caractéristiques générales des instructions Adressage des registres d'index Méthode Adressage direct des registres d'index Description MOVR(560) déplace l'adresse mémoire de l'API d'un mot ou bit vers un registre d'index (IR0 à IR15). (MOVRW(561) déplace l'adresse mémoire de l'API d'une PV de temporisateur/compteur vers un registre d'index.) Adressage indi- FonctionneLe mot ou bit à l'adresse mémoire rect à l’aide de ment de base E/S contenue dans @ est utilisé registres (pas de décacomme opérande. Ajoutez une d’index lage) virgule devant le registre d'index pour indiquer l'adressage indirect. (La désignation bit/mot peut être déterminée par l'instruction ou l'opérande.) Décalage La valeur de décalage (–2 048 à constant +2 047) est ajouté à l'adresse mémoire E/S contenue dans IR@ et l'adresse résultante est utilisée comme opérande. (Le décalage est converti en données binaires lors de l'exécution de l'instruction.) Décalage DR Exemple Exemple d'instruction IR0 MOVR 0010 IR0 Sauvegarde l'adresse mémoire IR2 de l'API de CIO 0010 dans IR0. MOVR 000102 IR2 Sauvegarde l'adresse mémoire de l'API de CIO 000102 dans IR2. ,IR0 LD ,IR0 Charge l'état du bit à l'adresse ,IR1 mémoire E/S contenue dans IR0. MOV #0001, IR1 Déplace #0001 au mot à l'adresse mémoire E/S contenue dans IR1. +5 ,IR0 +31 ,IR1 Le contenu binaire signé du regis- DR0 ,IR0 tre de données est ajouté à DR0 ,IR1 l'adresse mémoire E/S contenue dans IR@ et l'adresse résultante est utilisée comme opérande. Auto-incrémen- Après lecture de l'adresse tation mémoire E/S de IR@, le contenu du registre d'index est incrémenté de 1 ou 2. Incrément de 1: ,R@+ Incrément de 2: ,IR@++ Remarque Les registres d'index sont incrémentés lorsque l'instruction est exécutée même si une erreur se produit et que le drapeau d'erreur se met sur ON. Auto-décréLe contenu de IR@ est décrémentation menté de un ou deux et l'adresse mémoire E/S du registre est utilisée comme opérande. Décrément de 1 : ,–IR@ Décrément de 2 : ,– –IR@ Remarque Les registres d'index sont décrémentés lorsque l'instruction est exécutée même si une erreur se produit et que le drapeau d'erreur passe ON. LD +5 ,IR0 Ajoute 5 à l'adresse mémoire E/S contenue dans IR0 et charge l'état du bit à cette adresse. MOV #0001 +31 ,IR1 Ajoute 31 à l'adresse mémoire E/S contenue dans IR1 et déplace #0001 au mot à cette adresse. LD DR0,IR0 Ajoute le contenu de DR0 à l'adresse mémoire E/S contenue dans IR0 et charge l'état du bit à cette adresse. MOV #0001 DR0 ,IR1 Ajoute le contenu de DR0 à l'adresse mémoire E/S contenue dans IR1 et déplace #0001 au mot à cette adresse. ,IR0 + + ,IR1+ LD , IR0++ Charge l'état du bit à l'adresse mémoire E/S contenue dans IR0 et incrémente ensuite le registre de deux. MOV #0001 ,IR1 + Déplace #0001 au mot à l'adresse mémoire E/S contenue dans IR1 et incrémente ensuite le registre de un. , – – IR0 , – IR1 LD , – –IR0 Décrémente le contenu de IR0 de deux et charge ensuite l'état du bit à cette adresse mémoire E/S. MOV #0001 , – IR1 Décrémente le contenu de IR0 de un et déplace ensuite #0001 au mot à cette adresse mémoire E/S. Remarque Assurez-vous que le contenu des registres d'index indique des adresses mémoire E/S valides. 8 Chapitre 1-1 Caractéristiques générales des instructions Spécification de constantes Méthode Constante (données 16 bits) Constante (données 32 bits) Opérandes applicables Toutes les données binaires et les données binaires dans une plage Toutes les données BCD et les données BCD dans une plage Toutes les données binaires et les données binaires dans une plage Toutes les données BCD et les données BCD dans une plage Format de données Binaire non signé Décimal signé Décimal non signé BCD Binaire non signé Décimal signé Décimal non signé BCD Code Plage Exemple # #0000 à #FFFF --- ± –32 768 à +32 767 --- & &0 à &66 535 --- # #0000 à #9999 --- # #0000 0000 à #FFFF FFFF –2 147 483 648 à +2 147 483 647 &0 à &4 294 967 295 --- + – & # #0000 0000 à #9999 9999 ------- Spécification de chaînes de texte Méthode Chaînes de texte Description Le texte est enregistré en ASCII (1 octet/caractère à l'exclusion des caractères spéciaux) en commençant par l'octet le plus petit du mot le plus bas dans la plage. Si le nombre de caractères est impair, 00 (NULL) est enregistré dans l'octet le plus élevé du dernier mot de la plage. Si le nombre de caractères est pair, 0000 (deux NULL) sont enregistrés dans le mot après le dernier de la plage. Code Exemples "ABCDE" "A" "B" "C" "D" "E" NUL 41 43 45 42 44 00 "ABCD" "A" "B" "C" "D" NUL NUL 41 43 00 Exemple d'instruction MOV$ D00100 D00200 D00100 D00101 D00102 41 43 45 42 44 00 D00200 D00201 D00202 41 43 45 42 44 00 42 44 00 9 Chapitre 1-1 Caractéristiques générales des instructions Le schéma ci-dessous indique les caractères pouvant être exprimés en ASCII. Bit le plus à gauche Bit le plus à droite SP Remarque Les instructions suivantes sont exécutées même lorsque les conditions d'entrée sont OFF. Aussi, lorsque des adresses mémoire indirectes sont spécifiées à l'aide de l'auto-incrémention ou de l'auto-décrémentation (,IR+ ou ,IR-) dans un opérande de l'une de ces instructions, la valeur du registre d'index (IR) est mise à jour à chaque cycle indépendamment de la condition d'entrée (augmente ou diminue d'un à chaque cycle). Il faut en tenir compte lors de l'écriture d'un programme. Catégorie Instructions d'entrée de séquences Instructions LD, LD NOT, AND, AND NOT, OR, OR NOT, LD TST(350), LD TSTN(351), AND TST(350), AND TSTN(351), OR TST(350), OR TSTN(351) OUT, OUT NOT, DIFU(013), DIFD(014) Instructions de sortie de séquences Instructions de contrôle JMP(004), FOR(512) de séquences Instructions de tempo- TIM/TIMX(550), TIMH(015)/TIMHX(551), TMHH(540)/ risateur/compteur TMHHX(552), TTIM(087)/TTIMX(555), TIML(542)/ TIMLX(553), MTIM(533)/MTIMX(554), CNT/CNTX(546), CNTR(012)/CNTRX(548) Instructions de Instructions de comparaison de symboles (LD, AND, OR =, comparaison etc.(codes fonction : 300, 305, 310, 320 et 325)) Instructions mathéma- Comparaison des données à virgule flottante simple tiques à virgule flotprécision (LD, AND, OR = F, etc.(codes fonction : 329 à 334)). tante simple précision Instructions mathéma- Comparaison des données à virgule flottante double précision (LD, AND, OR = D, etc.(codes fonction : 335 à 340)). tiques à virgule flottante double précision Instructions de BPPS(811), BPRS(812), EXIT(806), EXIT(806) NOT, programmation de bloc IF(802), IF(802) NOT, WAIT(805), WAIT(805) NOT, TIMW(813)/TIMWX(816), CNTW(814)/CNTWX(818), TMHW(815)/TMHWX(817), LEND(810), LEND(810) NOT Instructions de traiteCOMPARAISON DE CHAINES (LD, AND, OR =, etc. (codes ment de chaîne de fonction : 670 à 675)). texte 10 Chapitre 1-1 Caractéristiques générales des instructions Les exemples suivants de programmation contact indiquent la façon dont les registres d'index sont traités. Exemple 1 Programme contact : LD P_Off OUT, IR0+ Fonctionnement : Lorsque l'adresse mémoire 000013 de l'API est enregistrée dans IR0. La condition d'entrée est OFF (P_Off correspond au drapeau Toujours OFF), de sorte que l'instruction OUT définit 000013, indirectement adressé par IR0, sur OFF. L'instruction OUT est exécutée et IR0 est incrémenté. En conséquence, l'adresse mémoire 000014 de l'API, incrémentée de +1 dans IR0, est enregistrée. Aussi, au cours du cycle suivant, l'instruction OUT se met sur OFF 000014. Exemple 2 Programme contact : LD P_Off SET, IR0+ Fonctionnement : Lorsque l'adresse mémoire 000013 de l'API est enregistrée dans IR0. La condition d'entrée est OFF (P_Off correspond au drapeau Toujours OFF), de sorte que l'instruction SET n'est pas exécutée. Dès lors, IR0 n'est pas incrémenté et la valeur enregistrée dans IR0 demeure l'adresse mémoire 000013 de l'API. 1-1-6 Formats de données Le tableau ci-dessous reprend les formats de donnés pouvant être utilisés avec les API série CS/CJ. Nom Données binaires non signées Format 15 14 13 12 11 10 Binaire 9 8 215 214 213 212 211 210 29 28 7 6 5 27 26 Décimal 32768 16384 8192 4096 2048 1024 512 256 128 64 Hexadécimal Données binaires signées 23 22 21 20 23 22 21 20 15 14 13 12 11 10 9 Binaire 8 215 214 213 212 211 210 29 28 7 6 Données BCD 23 22 21 20 23 22 21 20 2 1 0 2 3 22 21 20 32 8 5 27 26 3 25 2 4 16 23 22 21 20 Décimal -32768 16384 8192 4096 2048 1024 512 256 128 64 Hexadécimal 4 4 4 2 1 23 22 21 20 3 2 1 0 25 24 23 22 21 20 32 8 16 23 22 21 20 Plage Plage hexadécimale décimale 0à 0000 à FFFF 65 535 4 2 –32 768 à 8000 à 7FFF +32 767 1 23 22 21 20 Bit de signe 0: Positif 1: Négatif 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 BCD 23 22 21 20 23 22 21 20 23 22 21 20 23 22 21 20 Décimal 0à9 0à9 0à9 0à9 0 à 9 999 0000 à 9999 11 Chapitre 1-1 Caractéristiques générales des instructions Nom Décimale à virgule flottante Format 31 30 29 Signe de mantisse 23 Exposant 22 21 20 19 18 17 Binaire 3 2 1 0 Plage décimale Plage hexadécimale --- --- --- --- Mantisse Valeur = (−1)Signe x 1.[Mantisse] x 2Exposant Signe (bit 31) 1: négatif ou 0 : positif Mantisse La mantisse inclut 23 bits du bit 00 au bit 22 et indique la portion sous la décimale en 1.@@@..... en binaire. L'exposant inclut 8 bits du bit 23 au bit 30 et indique n plus 127 en 2n en binaire. Exposant Remarque Décimale à virgule flottante double précision Ce format est conforme aux normes IEEE754 relatives aux données à virgule flottante simple précision et est utilisé uniquement avec les instructions qui convertissent ou calculent les données à virgule flottante. Il peut être utilisé pour configurer ou surveiller à partir de l'écran de surveillance et de modification de mémoire E/S de CX-Programmer (pas pris en charge par les consoles de programmation). Les utilisateurs ne doivent dès lors pas connaître ce format mais ils doivent cependant savoir que le formatage prend jusqu'à deux mots. 63 62 61 Signe de mantisse 52 Exposant 51 50 49 48 47 46 Binaire 3 2 1 0 Mantisse Valeur = (−1)Signe x 1.[Mantisse] x 2Exposant Signe (bit 63) 1: négatif ou 0 : positif Mantisse Les 52 bits du bit 00 au bit 51 contiennent la mantisse, à savoir la portion sous la décimale en 1.@@@..... en binaire. Les 11 bits du bit 52 à bit 62 contiennent l'exposant. L'exposant s'exprime en binaire par 1023 plus n en 2n. Exposant Remarque Ce format est conforme aux normes IEEE754 relatives aux données à virgule flottante double précision et est utilisé uniquement avec les instructions qui convertissent ou calculent les données à virgule flottante. Il peut être utilisé pour configurer ou surveiller à partir de l'écran de surveillance et modification de mémoire E/S de CX-Programmer (pas pris en charge par les consoles de programmation). Les utilisateurs ne doivent dès lors pas connaître ce format mais ils doivent cependant savoir que le formatage prend jusqu'à quatre mots. Nombres binaires signés Les nombres binaires négatifs signés sont exprimés comme complément à 2 de la valeur hexadécimale absolue. Pour une valeur décimale de –12 345, la valeur absolue est équivalente à 3039 hexadécimal. Le complément à 2 égale 10000 – 3039 (tous deux hexadécimaux) ou CFC7. Pour convertir un nombre binaire signé négatif (CFC7) en nombre décimal, prenez le complément à 2 de ce nombre (10000 – CFC7 = 3039), convertissez en nombre décimal (3039 hexadécimal = 12 345 décimal) et ajoutez un signe négatif (–12 345). 12 Chapitre 1-2 Contrôle d'exécution de l'instruction 1-2 1-2-1 Contrôle d'exécution de l'instruction Erreurs lors de l'exécution d'une instruction Les opérandes d'une instruction et l'emplacement sont vérifiés lorsqu'une instruction est lancée à partir d'un périphérique ou lorsqu'un contrôle de programme est effectué à partir d'un périphérique (autre qu'une console de programmation), mais il ne s'agit pas de contrôles finaux. Les quatre erreurs suivantes peuvent se produire lors de l'exécution d'une instruction. Erreur de traitement d'instruction (Drapeau ER ON) En général, les erreurs de traitement d'instruction ne sont pas des erreurs fatales, mais l'API peut être configuré de manière à les traiter comme telles. Si cette configuration a été réalisée, le drapeau d'erreur de traitement d'instruction (A29508) est mis sur ON et l'exécution du programme est arrêtée si une erreur de traitement d'instruction se produit. Erreur d’accès (Drapeau AER ON) En général, les erreurs d'accès ne sont pas des erreurs fatales, mais l'API peut être configuré de manière à les traiter comme telles. Si cette configuration a été réalisée, le drapeau d'erreur d'accès illégal (A29510) et le drapeau d'erreur BCD de DM/EM indirecte (A29509) passent ON et l'exécution du programme est arrêtée si une erreur d'accès se produit. Erreur d'instruction illégale Le drapeau d'erreur d'instruction illégale (A29514) passe ON et l'exécution du programme est arrêtée si ce type d'erreur se produit. Erreur de dépassement UM (mémoire de programme utilisateur) Le drapeau d'erreur de dépassement UM (A29515) est sur ON et l'exécution du programme est arrêtée si ce type d'erreur se produit. 1-2-2 Erreurs fatales (erreurs de programme) L'exécution du programme sera arrêtée si l'une des erreurs de programme suivantes se produit. Si une erreur de programme s'est produite, le numéro de tâche de la tâche exécutée au moment de l'arrêt est enregistré en A294 et l'adresse du programme est enregistré en A298 et A299. Ces informations permettent de localiser l'erreur de programme et d'y remédier de manière appropriée. Adresse A294 A298 et A299 Description Le numéro de tâche de la tâche en cours est enregistré dans ce mot en cas d'arrêt d'exécution du programme suite à une erreur de programme. Les tâches cycliques ont les numéros de tâche de 0000 à 001F (tâches cycliques de 0 à 31). Les tâches d'interruption ont les numéros de 8000 à 80FF (tâches d'interruption de 0 à 255). L'adresse du programme en cours est enregistrée dans ces mots en cas d'arrêt de l'exécution du programme à la suite d'une erreur de programme. A299 contient les chiffres les plus à gauche de l'adresse du programme et A298 contient les chiffres les plus à droite de l'adresse du programme. 13 Contrôle d'exécution de l'instruction Chapitre 1-2 Toutes les erreurs à la suite desquelles le drapeau d'erreur ou le drapeau d'erreur d'accès passent ON, sont traitées comme erreurs de programme. Le tableau ci-dessous énumère les erreurs de programme. L'API peut être configuré de manière à arrêter l'exécution du programme si l'une de ces erreurs se produit. Type d'erreur Pas d'instruction END Description Absence d'instruction END(001) dans le programme. Drapeaux associés Drapeau d'erreur : pas d'instruction END (A29511) Erreur de tâche Il existe trois causes possibles d'erreur de tâche : 1) Il n'existe pas de tâche cyclique exécutable. 2) Aucun programme n'est affecté à la tâche. 3) Une interruption a été générée mais il n'existe pas de tâche d'interruption correspondante. L'UC a tenté d'exécuter une instruction mais les données fournies dans l'opérande de l'instruction sont incorrectes. *Si l'API a été configuré pour traiter les erreurs d'instruction comme erreurs fatales (erreurs de programme), le drapeau d'erreur de traitement d'instruction (A29508) passe ON et l'exécution du programme est arrêtée. Il existe cinq causes possibles d'erreur d'accès : 1) Lecture/écriture dans la zone de paramètre. 2) Ecriture sur une mémoire non installée. 3) Lecture/écriture dans une banque EM qui est une mémoire du fichier EM. 4) Ecriture sur une zone en lecture seule. 5) Le contenu d'un mot DM/EM ne consiste pas en données BCD alors que l'API est configuré pour l'adressage indirect BCD. *Si l'API a été configuré pour traiter les erreurs d'instruction comme erreurs fatales (erreurs de programme), le drapeau d'erreur d'accès illégal (A29510) passe ON et l'exécution du programme est arrêtée. Le contenu d'un mot DM/EM ne consiste pas en données BCD alors que l'API est configuré pour l'adressage indirect BCD. *Si l'API a été configuré pour traiter les erreurs d'instruction comme erreurs fatales (erreurs de programme), le drapeau d'erreur BCD de DM/EM indirecte (A29509) passe ON et l'exécution du programme est arrêtée. Drapeau d'erreur de tâche (A29512) Erreur de traitement d'instruction* Erreur d'accès* Erreur BCD de DM/EM indirecte* Erreur de dépassement de différentiation Erreur de dépassement UM Erreur d'instruction illégale 14 Des instructions différenciées ont été continuellement insérées et supprimées au cours de l'édition en ligne (plus de 31 072 fois). La dernière adresse de UM (mémoire du programme utilisateur) a été dépassée. Le programme contient une instruction non exécutable. Drapeau d'erreur (ER), Drapeau d'erreur de traitement d'instruction (A29508) Drapeau d'erreur d'accès (AER), Drapeau d'erreur d'accès illégal (A29510) Drapeau d'erreur d'accès (AER), Drapeau d'erreur BCD de DM/EM indirecte (A29509) Drapeau d'erreur de dépassement de différentiation (A29513) Drapeau d'erreur de dépassement UM (A29515) Drapeau d'erreur d'instruction illégale (A29514) CHAPITRE 2 Résumé des instructions Ce chapitre vous donne un résumé des instructions utilisées avec les API série CS/CJ. 2-1 Classement des instructions par fonction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2-2 Fonction des instructions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 2-2-1 Instructions d'entrée de séquences. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 2-2-2 Instructions de sortie de séquences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 2-2-3 Instructions de contrôle de séquences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 2-2-4 Instructions de temporisateur et compteur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 2-2-5 Instructions de comparaison . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 2-2-6 Instructions de déplacement de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 2-2-7 Instructions de décalage de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 2-2-8 Instructions d'incrémentation/décrémentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 2-2-9 Instructions mathématiques à symboles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 2-2-10 Instructions de conversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 2-2-11 Instructions logiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 2-2-12 Instructions mathématiques spéciales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 2-2-13 Instructions mathématiques à virgule flottante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 2-2-14 Instructions à virgule flottante double précision. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 2-2-15 Instructions de traitement des données de tableaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 2-2-16 Instructions de contrôle de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 2-2-17 Instructions de sous-programme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 2-2-18 Instructions de contrôle des interruptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 2-2-19 Instructions de compteur à grande vitesse et de sortie d'impulsions (CJ1M-CPU21/22/23 uniquement) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 2-2-20 Instructions de pas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 2-2-21 Instructions des cartes d’E/S standard. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 2-2-22 Instructions de communication série. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 2-2-23 Instructions réseau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 2-2-24 Instructions de mémoire de fichiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 2-2-25 Instructions d'affichage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 2-2-26 Instructions d'horloge. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 2-2-27 Instructions de débogage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 2-2-28 Instructions de diagnostic d'erreur. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 2-2-29 Autres instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 2-2-30 Instructions de programmation de bloc. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 2-2-31 Instructions de traitement de chaînes de texte. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 2-2-32 Instructions de contrôle des tâches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 2-2-33 Instructions de conversion des modèles (UC ver. 3.0 ou supérieure uniquement). . . . . . . . 106 2-2-34 Instructions spéciales des blocs fonction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 2-3 Liste alphabétique des instructions par mnémonique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 2-4 Liste des instructions par code fonction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 15 Chapitre 2-1 Classement des instructions par fonction 2-1 Classement des instructions par fonction Le tableau ci-dessous énumère les instructions par fonction pour la série CS/ CJ. (Les instructions apparaissent par ordre de leur fonction repris au Chapitre 3 Instructions.) *Les instructions ou groupes d'instructions suivis d'un seul astérisque sont pris en charge uniquement par les UC CS1-H, CJ1-H, CJ1M et CS1D. **Les instructions ou groupes d'instructions suivis de deux astérisques sont pris en charge uniquement par les UC CJ1M. ***Les instructions ou groupes d'instructions suivis de trois astérisques ne sont pas pris en charge par les UC CS1D pour systèmes d'UC en duplex. Remarque 1. UC série CS/CJ ver. 2.0 ou supérieure uniquement 2. UC CJ1M-CPU21/22/23 ver. 2.0 ou supérieure uniquement 3. UC série CS/CJ ver. 2.0 ou supérieure uniquement UC CJ1M (Pré-ver. 2.0 ou ver. 2.0 ou supérieure) Catégorie Instructions de base Instructions d'entrée de séquences Instructions de sortie de séquences Sous-catégorie Entrée Sortie --- Mnémonique LD AND NOT AND LD OUT NOT Instruction LOAD AND NOT AND LOAD OUTPUT NOT Mnémonique LD NOT OR OR LD OUT NOT UP Test de bit LD TST LD BIT TEST LD TSTN AND TSTN AND BIT TEST NOT KEEP OR TST --- Instruction LOAD NOT OR OR LOAD OUTPUT NOT CONDITION ON LD BIT TEST NOT OR BIT TEST Mnémonique AND OR NOT ----DOWN DIFD --- DIFFERENTIATE UP --- --- RSET RESET SETA SETB* IL INTERLOCK ILC SINGLE BIT SET NO OPERATION INTERLOCK CLEAR RSTB* END MULTIPLE BIT RESET END MILR (Voir remarque 1.) MULTI-INTERLOCK DIFFERENTIATION RELEASE JUMP MILC (Voir remarque 1.) MULTI-INTERLOCK CLEAR --- JME JUMP END CJP CONDITIONAL JUMP FOR-NEXT LOOPS JMP0 MULTIPLE JUMP BREAK LOOP JME0 KEEP OUTB* Mise à 1/0 SET RSTA Instructions --de contrôle de séquences Interverrouillage Saut JMP CJPN Répétition 16 FOR SINGLE BIT OUTPUT SET DIFU NOP BREAK AND TST OR TSTN --MILH NEXT Instruction AND OR NOT ----CONDITION OFF AND BIT TEST NOT OR BIT TEST NOT DIFFERENTIATE DOWN --MULTIPLE BIT SET SINGLE BIT RESET --MULTI-INTERLOCK DIFFERENTIATION HOLD --- CONDITIONAL JUMP MULTIPLE JUMP END FOR-NEXT LOOPS Chapitre 2-1 Classement des instructions par fonction Catégorie Sous-catégorie Instructions BCD Temporide temporisasateur teur et comp(avec teur numéros de temporisateur) Temporisateur (sans numéro de temporisateur) Compteur (avec numéros de compteur) Binaire* Temporisateur (avec numéros de temporisateur) Temporisateur (sans numéro de temporisateur) Compteur (avec numéros de compteur) Instructions Comparaison de comparai- de symboles son Instructions de déplacement de données Mnémonique Instruction TIM TIMER Mnémonique Instruction TIMH HIGH-SPEED TIMER ----- Mnémonique Instruction TMHH ONE-MS TIMER ----- TTIM ACCUMULATIVE TIMER TIML LONG TIMER MTIM MULTI-OUTPUT TIMER --- --- CNT COUNTER CNTR REVERSIBLE TIMER CNR RESET TIMER/ COUNTER TIMX TIMER TIMHX TMHHX TTIMX ACCUMULATIVE TIMER --- HIGH-SPEED TIMER --- --- ONE-MS TIMER --- TIMLX LONG TIMER MTIMX MULTI-OUTPUT TIMER --- --- CNTX COUNTER CNTRX REVERSIBLE TIMER CNRX RESET TIMER/ COUNTER LD, AND, OR + =, <>, <, <=, >, >= LD, AND, OR + =, <>, <, <=, >, >= + SL Comparaison de LD, AND, OR symboles (non + =, <>, <, <=, >, signé) >= + L Comparaison de LD, AND, OR symboles (mot + double, signé) = DT, <> DT, < DT, <= DT, > DT, >= DT (Voir remarque 1.) UNSIGNED CMPL COMPARE Comparaison de symboles (mot double, non signé) Comparaison de temps LD, AND, OR + =, <>, <, <=, >, >= +S --- Comparaison de symboles (signé) Comparaison de données (Drapeaux de condition) CMP Comparaison de tableaux MCMP CPSL Mot simple/double BCMP2 (Voir remarque 3.) MOV MVNL Bit/chiffre Echange MOVB XCHG Transfert bloc/bit XFRB Distribution / récupération Registre d’index DIST MOVR DOUBLE SIGNED BINARY COMPARE MULTIPLE COMPARE EXPANDED BLOCK COMPARE MOVE DOUBLE MOVE NOT MOVE BIT DATA EXCHANGE MULTIPLE BIT TRANSFER SINGLE WORD DISTRIBUTE MOVE TO REGISTER --- DOUBLE UNSI- CPS GNED COMPARE AREA RANGE ZCPL* COMPARE SIGNED BINARY COMPARE DOUBLE AREA RANGE COMPARE TCMP TABLE COMPARE BCMP --- --- --- UNSIGNED BLOCK COMPARE --- MOVL --- DOUBLE MOVE MVN ----- MOVE NOT --- MOVD XCGL MOVE DIGIT DOUBLE DATA EXCHANGE BLOCK TRANSFER DATA COLLECT ----- ----- BSET BLOCK SET --- --- MOVE TIMER/ COUNTER PV TO REGISTER --- --- ZCP* XFER COLL MOVRW 17 Chapitre 2-1 Classement des instructions par fonction Catégorie Instructions de décalage de données Sous-catégorie Décalage 1 bit Mnémonique Instruction SFT SHIFT REGISTER ASL 0000 hex asynchrone ASFT Décalage de mot Décalage 1 bit WSFT ROL RLNL RRNC Décalage 1 chiffre SLD Décalage de données NSFL n bits Décalage de n bits NASL NSRL Instructions BCD d'incrémentation/décrémentation Binaire ++B – –BL ++ – –L 18 ARITHMETIC SHIFT LEFT ASYNCHRONOUS SHIFT REGISTER WORD SHIFT ROTATE LEFT Mnémonique Instruction SFTR REVERSIBLE SHIFT REGISTER ASR ARITHMETIC SHIFT RIGHT ----- --- --ROLL --RLNC DOUBLE ROR ROTATE LEFT WITHOUT CARRY ROTATE RIGHT RRNL WITHOUT CARRY ONE DIGIT SHIFT LEFT SHIFT N-BIT DATA LEFT SHIFT N-BITS LEFT DOUBLE SHIFT N-BITS RIGHT INCREMENT BCD SRD DOUBLE DECREMENT BCD INCREMENT BINARY --- DOUBLE DECREMENT BINARY NSFR NSLL --++BL ++L --- --DOUBLE ROTATE LEFT Mnémonique Instruction ASLL DOUBLE SHIFT LEFT ASRL ROTATE RIGHT RORL DOUBLE ROTATE RIGHT WITHOUT CARRY ONE DIGIT SHIFT RIGHT SHIFT N-BIT DATA RIGHT DOUBLE SHIFT N-BITS LEFT --DOUBLE INCREMENT BCD --- DOUBLE INCREMENT BINARY --- DOUBLE SHIFT RIGHT --- --ROTATE LEFT WITHOUT CARRY DOUBLE ROTATE RIGHT --- --- --- --- --- --- NASR SHIFT N-BITS RIGHT --- --– –B DECREMENT BCD --- --- –– DECREMENT BINARY --- --- Chapitre 2-1 Classement des instructions par fonction Catégorie Instructions mathématiques à symboles Sous-catégorie Addition binaire Mnémonique Instruction + SIGNED BINARY ADD WITHOUT CARRY +CL Addition BCD +B +BCL Soustraction binaire – –CL Soustraction BCD –B –BCL Multiplication binaire * *UL Multiplication BCD *B Division binaire / /UL Division BCD Instructions Conversion BCD/ de conversion binaire /B DOUBLE SIGNED BINARY ADD WITH CARRY BCD ADD WITHOUT CARRY DOUBLE BCD ADD WITH CARRY SIGNED BINARY SUBTRACT WITHOUT CARRY DOUBLE SIGNED BINARY WITH CARRY BCD SUBTRACT WITHOUT CARRY DOUBLE BCD SUBTRACT WITH CARRY SIGNED BINARY MULTIPLY Mnémonique Instruction +L DOUBLE SIGNED BINARY ADD WITHOUT CARRY ----- --- --- +BL +BC BCD ADD WITH CARRY --- --- –C SIGNED BINARY SUBTRACT WITH CARRY --- --- –BC BCD SUBTRACT WITH CARRY --- --- *U UNSIGNED BINARY MULTIPLY --- --- DOUBLE BCD --MULTIPLY DOUBLE /U SIGNED BINARY DIVIDE ----- --- --- –L --- –BL --*L DOUBLE UNSI- --GNED BINARY MULTIPLY BCD *BL MULTIPLY SIGNED /L BINARY DIVIDE DOUBLE UNSI- --GNED BINARY DIVIDE BCD DIVIDE /BL NEGL DOUBLE 2'S COMPLEMENT --- --- --- --- DMPX DATA ENCODER ASCII TO HEX --- --- --- --- --- --- BCDS SIGNED BINARY-TOBCD --- NEG LINE BINS BDSL DOUBLE SIGNED BINARY-TOBCD --- BINARY-TOBCD DOUBLE BINARY-TODOUBLE BCD 16-BIT TO 32-BIT SIGNED BINARY DATA DECODER ASCII CONVERT COLUMN TO LINE SIGNED BCDTO-BINARY ASC UNSIGNED BINARY DIVIDE BCD BCDL Conversion ASCII/ HEX Conversion ligne/ colonne Conversion binaires signés / BCD DOUBLE SIGNED BINARY MULTIPLY --- --- BINL MLPX DOUBLE BCD SUBTRACT WITHOUT CARRY --- --- BCD-TOBINARY Décodeur/ encodeur DOUBLE SIGNED BINARY SUBTRACT WITHOUT CARRY --- DOUBLE BCD DIVIDE DOUBLE BCDTO-DOUBLE BINARY 2'S COMPLEMENT BIN SIGN DOUBLE BCD ADD WITHOUT CARRY --- Mnémonique Instruction +C SIGNED BINARY ADD WITH CARRY HEX COLM BISL GRY (Voir remarque 1.) LINE TO COLUMN DOUBLE SIGNED BCDTO-BINARY GRAY CODE CONVERSION --- 19 Classement des instructions par fonction Catégorie Instructions logiques Sous-catégorie AND/OR logique Mnémonique Instruction ANDW LOGICAL AND ORWL XNRW Complément COM Instructions mathématiques spéciales --- ROTB Instructions mathématiques à virgule flottante Conversion virgule flottante/binaire FDIV FIX FLTL Math de base virgule flottante +F *F Trigonométrie à virgule flottante RAD COS ACOS Math virgule flottante SQRT PWR Comparaison et conversion de symboles * Instructions à Conversion virgule virgule flotflottante/binaire tante double précision* Math de base virgule flottante LD, AND, OR + =, <>, <, <=, >, >= + F FIXD DBLL +D *D Trigonométrie à virgule flottante RADD COSD ACOSD Math virgule flottante SQRTD PWRD Comparaison de symboles 20 LD, AND, OR + =, <>, <, <=, >, >= + D Chapitre 2-1 Mnémonique Instruction Mnémonique Instruction ANDL DOUBLE LOGI- ORW LOGICAL OR CAL AND DOUBLE LOGI- XORW EXCLUSIVE XORL DOUBLE CAL OR OR EXCLUSIVE OR EXCLUSIVE XNRL DOUBLE ----NOR EXCLUSIVE NOR COMPLEMENT COML DOUBLE COM- ----PLEMENT BINARY ROOT ROOT BCD SQUARE APR ARITHMETIC ROOT PROCESS FLOATING BCNT BIT COUNTER ----POINT DIVIDE FLOATING TO FIXL FLOATING TO FLT 16-BIT TO 16-BIT 32-BIT FLOATING 32-BIT TO --------FLOATING FLOATING–F FLOATING/F FLOATINGPOINT ADD POINT POINT DIVIDE SUBTRACT FLOATING--------POINT MULTIPLY DEGREES TO DEG RADIANS TO SIN SINE RADIANS DEGREES COSINE TAN TANGENT ASIN ARC SINE ARC COSINE ATAN ARC TANGENT ----SQUARE ROOT EXP EXPONENT LOG LOGARITHM EXPONENTIAL --------POWER Comparaison de FSTR* FLOATINGFVAL* ASCII TO symboles (virPOINT TO FLOATINGgule flottante ASCII POINT simple précision) DOUBLE FLOA- FIXLD DOUBLE FLOA- DBL 16-BIT TO TING TO 16-BIT TING TO 32-BIT DOUBLE FLOATING 32-BIT TO --------DOUBLE FLOATING DOUBLE FLOA- –D DOUBLE FLOA- /D DOUBLE FLOATING-POINT TING- POINT TING-POINT ADD SUBTRACT DIVIDE DOUBLE FLOA- --------TING- POINT MULTIPLY DOUBLE DEGD DOUBLE SIND DOUBLE SINE DEGREES TO RADIANS TO RADIANS DEGREES DOUBLE TAND DOUBLE TAN- ASIND DOUBLE ARC COSINE GENT SINE DOUBLE ARC ATAND DOUBLE ARC ----COSINE TANGENT DOUBLE EXPD DOUBLE LOGD DOUBLE SQUARE ROOT EXPONENT LOGARITHM DOUBLE --------EXPONENTIAL POWER Comparaison de --------symboles (virgule flottante double précision) Chapitre 2-1 Classement des instructions par fonction Catégorie Instructions de traitement des données de tableaux Sous-catégorie Traitement de pile Mnémonique Instruction SSET SET STACK Traitement 1 enregistrement / plusieurs mots Traitement enregistrement vers mot DIM Traitement d'octets --- SWAP Mnémonique Instruction PUSH PUSH ONTO STACK FIRST IN FIRST SNUM* STACK SIZE OUT READ STACK DATA SINS* STACK DATA OVERWRITE INSERT DIMENSION SETR SET RECORD RECORD LOCATION TABLE DATA SEARCH MAX FIND MAXIMUM SUM FCS FRAME CHECKSUM SWAP BYTES ----- PID PID CONTROL PIDAT* BAND DEAD BAND CONTROL ZONE SCL AVG SBS SCALING AVERAGE SUBROUTINE CALL SUBROUTINE RETURN SCL2 --MCRO GLOBAL SUBROUTINE RETURN SET INTERRUPT MASK DISABLE INTERRUPTS MODE CONTROL --- FIFO SWRIT* Instructions de contrôle de données Instructions de sous-programme --- SRCH SUM RET GRET* Instructions de contrôle des interruptions --- MSKS*** DI Instructions --de compteur à grande vitesse et de sortie d'impulsions** INI --- PRV2 (Voir remarque 2.) PULS COUNTER FREQUENCY CONVERT SET PULSES ORG ORIGIN SEARCH SNXT STEP START PRV TEN KEY INPUT HKY (Voir remarque 1.) IORD PMCR STUP --- --- STEP 7-SEGMENT DISPLAY OUTPUT CPU BUS UNIT I/O REFRESH PROTOCOL MACRO CHANGE SERIAL PORT SETUP GSBN* TIME-PROPORTIONAL OUTPUT SCALING 3 --SUBROUTINE ENTRY GLOBAL SUBROUTINE ENTRY --- --- PULSE WITH VARIABLE DUTY FACTOR I/O REFRESH TKY (Voir remarque 1.) 7SEG (Voir remarque 1.) DLNK* GLOBAL SUBROUTINE CALL --- LIMIT CONTROL ENABLE INTERRUPTS HIGH-SPEED COUNTER PV READ SPEED OUTPUT ACC IORF PID CONTROL LMT WITH AUTOTUNING DEAD ZONE TPO CONTROL (Voir remarque 1.) SCALING 2 SCL3 ----MACRO SBN EI PULSE OUTPUT --- --- CLEAR INTERRUPT PLS2 Instructions des cartes E/ S standard --- CLI*** SPED PWM --- FIND MINIMUM --- READ INTERRUPT MASK COMPARISON TABLE LOAD --- MIN MSKR*** CTBL Instructions de pas Instructions de communication série GSBS* Mnémonique Instruction LIFO LAST IN FIRST OUT SREAD* STACK DATA READ SDEL* STACK DATA DELETE GETR GET RECORD NUMBER SDEC ACCELERATION CONTROL STEP DEFINE 7-SEGMENT DECODER DSW (Voir remarque 1.) HEXADECIMTR MAL KEY (Voir remarque INPUT 1.) INTELLIGENT I/ IOWR O READ DIGITAL SWITCH INPUT INTELLIGENT I/ O WRITE --- --- --- --- TXD TRANSMIT RXD RECEIVE --- --- --- --- MATRIX INPUT 21 Chapitre 2-1 Classement des instructions par fonction Catégorie Instructions réseau Instructions d'affichage Instructions de mémoire de fichiers Instructions d'horloge Sous-catégorie --- ----- --- Mnémonique Instruction SEND NETWORK SEND EXPLT SEND GENE(Voir remarque RAL EXPICIT 1.) ECHRD EXPLICIT (Voir remarque WORD READ 1.) MSG DISPLAY MESSAGE FREAD READ DATA FILE Mnémonique Instruction RECV NETWORK RECEIVE EGATR EXPLICIT GET (Voir remarque ATTRIBUTE 1.) ECHWR EXPLICIT (Voir remarque WORD WRITE 1.) ----- --- --- FWRIT WRITE DATA FILE --- --- CADD CALENDAR ADD SECONDS TO HOURS TRACE MEMORY SAMPLING FAILURE ALARM CSUB CALENDAR SUBTRACT CLOCK ADJUSTMENT --- SEC --- HOURS TO SECONDS --- --- --- HMS DATE Instructions de débogage --- TRSM Instructions de diagnostic d'erreur Autres instructions --- FAL --- STC SET CARRY CLC WDT CCS* SAVE CONDITION FLAGS CCL* TOCV* CONVERT ADDRESS TO CV --- IOSP*** --- DISABLE PERIPHERAL SERVICING --- BLOCK PROGRAM END BLOCK PROGRAM RESTART Conditional END NOT CONDITIONAL BLOCK BRANCHING (NOT) --- --- --- --- --- input_condition EXIT Conditional END CONDITIONAL BLOCK BRANCHING (ELSE) --- WAIT bit_address TIMW EXTEND MAXIMUM CYCLE TIME CONVERT ADDRESS FROM CV ENABLE PERIPHERAL SERVICING BLOCK PROGRAM BEGIN BLOCK PROGRAM PAUSE Conditional END CONDITIONAL BLOCK BRANCHING CONDITIONAL BLOCK BRANCHING END ONE CYCLE AND WAIT TIMER WAIT WAIT NOT bit_address CNTW TIMWX TIMER WAIT CNTWX LOOP LOOP BLOCK input_condition LEND LOOP BLOCK END LEND bit_address --- FRMCV* IORS*** Instructions de programmation de bloc Définition de zone de programme de bloc Arrêt/Démarrage programme de bloc BPRG EXIT EXIT bit_address IF bit_address IF traitement conditionnel BPPS IEND WAIT Tempo- BCD risateur/ compBinaire* teur Répétition 22 --- Mnémonique Instruction CMND DELIVER COMMAND ESATR EXPLICIT SET (Voir remarque ATTRIBUTE 1.) ----- FALS --- BEND BPRS EXIT bit_address IF NOT bit_address --- SEVERE FPD FAILURE ALARM CLEAR CARRY EMBC ONE CYCLE AND WAIT NOT COUNTER WAIT COUNTER WAIT LOOP BLOCK END --- ELSE --- input_condition WAIT TMHW TMHWX LEND NOT bit_address --- FAILURE POINT DETECTION SELECT EM BANK LOAD CONDITION FLAGS ONE CYCLE AND WAIT HIGH-SPEED TIMER WAIT HIGH-SPEED TIMER WAIT LOOP BLOCK END NOT --- Chapitre 2-1 Classement des instructions par fonction Catégorie Sous-catégorie Instructions --de traitement de chaînes de texte Mnémonique Instruction MOV$ MOV STRING RIGHT$ LEN$ XCHG$ Instructions de contrôle des tâches --- LD, AND, OR + =$, <>$, <$, <=$, >$, >=$ TKON GET STRING RIGHT STRING LENGTH EXCHANGE STRING STRING COMPARISON TASK ON Mnémonique Instruction +$ CONCATENATE STRING MID$ GET STRING MIDDLE RPLC$ REPLACE IN STRING CLR$ CLEAR STRING ----- Mnémonique Instruction LEFT$ GET STRING LEFT FIND$ FIND IN STRING DEL$ DELETE STRING INS$ INSERT INTO STRING ----- TKOF --- TASK OFF --- 23 Chapitre 2-2 Fonction des instructions 2-2 2-2-1 Fonction des instructions Instructions d'entrée de séquences *1: Instruction Mnémonique Code LOAD LD @LD %LD !LD*1 !@LD*1 !%LD*1 LOAD NOT LD NOT @LD NOT*2 %LD NOT*2 !LD NOT*1 !@LD NOT*3 !%LD NOT*3 Symbole/ Opérande Barre de bus Barre de bus AND NOT AND NOT @AND NOT*2 %AND NOT*2 !AND NOT*1 !@AND NOT*3 !%AND NOT*3 OR NOT OR NOT @OR NOT*2 %OR NOT*2 !OR NOT*1 !@OR NOT*3 !%OR NOT*3 24 *3 : Prise en charge par les UC CS1-H, CJ1-H et CJ1M uniquement. Fonction Emplacement Condition d’exécution Page Indique un départ logique et crée une condition d'exécution ON/OFF fondée sur l'état ON/OFF du bit d'opérande spécifié. Démarrage de 153 la logique Non obligatoire Indique un départ logique et crée une condition d'exécution ON/OFF fondée sur l'état ON/OFF inverse du bit d'opérande spécifié. Démarrage de 155 la logique Non obligatoire Effectue un AND logique de l'état du bit d'opérande spécifié et de la condition d'exécution en cours. Continue sur le segment Obligatoire 157 Inverse l'état du bit d'opérande spécifié et effectue un AND logique avec la condition d'exécution en cours. Continue sur le segment Obligatoire 159 Effectue un OR logique de l'état ON/OFF du bit d'opérande spécifié et de la condition d'exécution en cours. Continue sur le segment Obligatoire 161 Inverse l'état du bit spécifié et effectue un OR logique avec la condition d'exécution en cours. Continue sur le segment Obligatoire 163 Point de départ du bloc AND @AND %AND !AND*1 !@AND*1 !%AND*1 OR @OR %OR !OR*1 !@OR*1 !%OR*1 Non prise en charge par les UC CS1D pour systèmes d'UC en duplex. : Prise en charge par les UC CS1-H, CJ1-H , CJ1M et CS1D uniquement. Point de départ du bloc AND OR *2 Barre de bus Barre de bus Chapitre 2-2 Fonction des instructions Symbole/ Opérande Instruction Mnémonique Code AND LOAD AND LD Bloc logique Bloc logique Fonction Emplacement Condition d’exécution Page Continue sur le segment Obligatoire 164 Continue sur le segment Obligatoire 166 Inverse la condition d'exécution. Continue sur le segment Obligatoire 172 UP(521) passe ON la condition d'exécution pendant un cycle lorsque la condition d'exécution passe de OFF à ON. Continue sur le segment Obligatoire 173 DOWN(522) passe ON la condition d'exécution pendant un cycle lorsque la condition d'exécution passe de ON à OFF. Continue sur le segment Obligatoire 173 LD TST(350), AND TST(350) et OR TST(350) sont utilisées dans le programme comme LD, AND et OR ; la condition d'exécution est ON lorsque le bit spécifié dans le mot spécifié est ON et OFF lorsque le bit est OFF. Continue sur le segment Non obligatoire 174 LD TSTN(351), AND TSTN(351) et OR TSTN(351) sont utilisées dans le programme comme LD NOT, AND NOT et OR NOT ; la condition d'exécution est OFF lorsque le bit spécifié dans le mot spécifié est ON et ON lorsque le bit est OFF. Continue sur le segment Non obligatoire 174 LD TST(350), AND TST(350) et OR TST(350) sont utilisées dans le programme comme LD, AND et OR ; la condition d'exécution est ON lorsque le bit spécifié dans le mot spécifié est ON et OFF lorsque le bit est OFF. Continue sur le segment Obligatoire 174 LD TSTN(351), AND TSTN(351) et OR TSTN(351) sont utilisées dans le programme comme LD NOT, AND NOT et OR NOT ; la condition d'exécution est OFF lorsque le bit spécifié dans le mot spécifié est ON et ON lorsque le bit est OFF. Continue sur le segment Obligatoire 174 Effectue un AND logique entre les blocs logiques. LD à Bloc logique A LD Bloc logique B à AND LD OR LOAD OR LD Bloc logique Bloc logique Connexion série entre le bloc logique A et le bloc logique B. Effectue un OR logique entre les blocs logiques. LD à LD Bloc logique A Bloc logique B à OR LD --- NOT Connexion parallèle entre le bloc logique A et le bloc logique B. NOT 520 CONDITION ON UP 521 CONDITION OFF DOWN 522 BIT TEST LD TST 350 UP(521) DOWN(522) TST(350) S N S: Mot source N: Numéro de bit BIT TEST LD TSTN 351 TSTN(351) S N S: Mot source N: Numéro de bit BIT TEST AND TST 350 AND TST(350) S N S: Mot source N: Numéro de bit BIT TEST AND TSTN 351 AND TSTN(351) S N S: Mot source N: Numéro de bit 25 Chapitre 2-2 Fonction des instructions Instruction Mnémonique Code Symbole/ Opérande BIT TEST OR TST 350 TST(350) S Fonction Emplacement Condition d’exécution Page LD TST(350), AND TST(350) et OR TST(350) sont utilisées dans le programme comme LD, AND et OR ; la condition d'exécution est ON lorsque le bit spécifié dans le mot spécifié est ON et OFF lorsque le bit est OFF. Continue sur le segment Obligatoire 174 LD TSTN(351), AND TSTN(351) et OR TSTN(351) sont utilisées dans le programme comme LD NOT, AND NOT et OR NOT ; la condition d'exécution est OFF lorsque le bit spécifié dans le mot spécifié est ON et ON lorsque le bit est OFF. Continue sur le segment Obligatoire 174 N S: Mot source N: Numéro de bit BIT TEST OR TSTN 351 TSTN(351) S N S: Mot source N: Numéro de bit 2-2-2 Instructions de sortie de séquences *1 Instruction Mnémonique Code Symbole/ Opérande OUTPUT OUT !OUT*1 OUTPUT NOT OUT NOT !OUT NOT*1 KEEP KEEP !KEEP*1 : Non prise en charge par les UC CS1D pour systèmes d'UC en duplex. S (passe ON) KEEP(011) B Fonction Emplacement Page Condition d’exécution Sort le résultat (condition d'exécution) du traitement logique dans le bit spécifié. Sortie Obligatoire 177 Inverse le résultat (condition d'exécution) du traitement logique et place le résultat dans le bit spécifié. Sortie Obligatoire 178 Fonctionne comme un relais maintenu. Sortie Obligatoire 179 Sortie Obligatoire 184 Set R (passe OFF) 011 B: Bit Reset Condition d'exécution S Condition d'exécution R Etat de B DIFFERENTIATE UP DIFU !DIFU*1 DIFU(013) DIFU(013) passe le bit désigné sur ON pour un cycle lorsque la condition d'exécution passe de OFF à ON (front montant). B B: Bit Condition d'exécution 013 Etat de B Un cycle 26 Chapitre 2-2 Fonction des instructions Instruction Mnémonique Code Symbole/ Opérande DIFFERENTIATE DOWN DIFD !DIFD*1 DIFD(014) Fonction Emplacement Page Condition d’exécution Sortie Obligatoire 184 Sortie Obligatoire 186 Sortie Obligatoire 186 Sortie Obligatoire 189 Sortie Obligatoire 189 SETB(532) passe le bit spécifié ON dans le mot spécifié lorsque la con- Sortie dition d'exécution est ON. Obligatoire A la différence de l'instruction SET, SETB(532) peut être utilisée pour passer ON un bit dans un mot DM ou EM. 192 DIFU(014) passe le bit désigné sur ON pour un cycle lorsque la condition d'exécution passe de ON à OFF (front descendant). B Condition d'exécution B: Bit 014 Etat de B Un cycle SET SET @SET %SET !SET*1 B: Bit !@SET*1 !%SET*1 RESET RSET @RSET %RSET !RSET*1 B: Bit !@RSET*1 !%RSET*1 MULTIPLE BIT SET SETA @SETA 530 SET B SET passe le bit d'opérande sur ON lorsque la condition d'exécution est ON. Condition d'exécution de SET Etat de B RSET B RSET passe le bit d'opérande sur OFF lorsque la condition d'exécution est ON. Condition d'exécution de RSET Etat de B SETA(530) SETA(530) passe ON le nombre de bits consécutifs spécifié. D N1 N2 N2 bits sont mis à 1 (ON). D: Mot de départ N1: Bit de départ N2: Nombre de bits MULTIPLE BIT RESET RSTA @RSTA 531 RSTA(531) RSTA(531) passe OFF le nombre de bits consécutifs spécifié. D N1 N2 N2 bits sont remis à 0 (OFF). D: Mot de départ N1: Bit de départ N2: Nombre de bits SINGLE BIT SET (CS1-H, CJ1-H, CJ1M ou CS1D SETB(532) uniquement) SETB D @SETB N *1 !SETB *1 !@SETB D: Adresse de mot N: Numéro de bit 27 Chapitre 2-2 Fonction des instructions Instruction Mnémonique Code Symbole/ Opérande Fonction Emplacement Page Condition d’exécution SINGLE BIT RSTB(533) RESET (CS1-H, CJ1-H, CJ1M ou D CS1D uniquement) N RSTB @RSTB D: Adresse de mot !RSTB*1 *1 N: Numéro de bit !@RSTB RSTB(533) passe le bit spécifié OFF dans le mot spécifié lorsque la condition d'exécution est ON. A la différence de l'instruction RSET, RSTB(533) peut être utilisée pour passer OFF un bit dans un mot DM ou EM. Sortie Obligatoire 192 SINGLE BIT OUTPUT (CS1-H, OUTB(534) CJ1-H, CJ1M ou CS1D uniqueD ment) OUTB N @OUTB !OUTB*1 D: Adresse de mot N: Numéro de bit OUTB(534) sort le résultat (condition d'exécution) du traitement logique dans le bit spécifié. A la différence de l'instruction OUT, OUTB(534) peut être utilisée pour contrôler un bit dans un mot DM ou EM. Sortie Obligatoire 195 28 Chapitre 2-2 Fonction des instructions 2-2-3 Instructions de contrôle de séquences Instruction Mnémonique Code END END 001 Symbole/ Opérande END(001) Fonction Emplacement Page Condition d’exécution Sortie Indique la fin d'un programme. END(001) termine l'exécution d'un programme pour ce cycle. Aucune Non obligatoire instruction écrite après END(001) n'est exécutée. L'exécution passe au programme avec le numéro de tâche suivant. Lorsque le programme en cours d'exécution correspond au numéro de tâche le plus élevé dans le programme, END(001) marque la fin de l'ensemble du programme principal. 197 Tâche 1 Programme A Vers le numéro de tâche suivant Tâche 2 Programme B Vers le numéro de tâche suivant Tâche n Programme Z Fin du programme principal Mise à jour E/S NO OPERATION NOP 000 INTERLOCK IL 002 IL(002) Cette instruction n'a aucune fonction. (aucun traitement n'est effectué pour NOP(000).) Sortie Non obligatoire 198 Verrouille toutes les sorties comprises entre IL(002) et ILC(003) lorsque la condition d'exécution de IL(002) est OFF. IL(002) et ILC(003) sont normalement utilisées par paires. Sortie Obligatoire 201 Condition d'exécution Condition Condition d'exécution ON d'exécution OFF Section verrouillée du programme Exécution Sorties normale verrouillées. 29 Chapitre 2-2 Fonction des instructions Instruction Mnémonique Code Symbole/ Opérande Fonction Emplacement Page Condition d’exécution Toutes les sorties situées entre IL(002) et ILC(003) sont verrouillées Sortie lorsque la condition d'exécution de IL(002) est OFF. IL(002) et ILC(003) Non sont normalement utilisées par paires. obligatoire 201 Lorsque la condition d'exécution de MILH(517) est OFF, les sorties de toutes les instructions comprises entre cette instruction MILH(517) et la prochaine instruction MILC(519) sont verrouillées. MILH(517) et MILC(519) sont utilisées par paire. Les verrouillages MILH(517)/MILC(519) peuvent être imbriqués (exemple : MILH(517)—MILH(517)—MILC(519)—MILC(519)). S'il existe une instruction différenciée (DIFU, DIFD ou une instruction avec un préfixe @ ou %) entre MILH(517) et la MILC(519) correspondante, cette instruction sera exécutée après la suppression du verrouillage si la condition de différentiation de l'instruction a été établie. Sortie Obligatoire 205 Lorsque la condition d'exécution de MILR(518) est OFF, les sorties de toutes les instructions comprises entre cette instruction MILR(518) et la prochaine instruction MILC(519) sont verrouillées. MILR(518) et MILC(519) sont utilisées par paire. Les verrouillages MILR(518)/MILC(519) peuvent être imbriqués (exemple : MILR(518)—MILR(518)—MILC(519)—MILC(519)). S'il existe une instruction différenciée (DIFU, DIFD ou une instruction avec un préfixe @ ou %) entre MILR(518) et la MILC(519) correspondante, cette instruction ne sera pas exécutée après la suppression du verrouillage, même si la condition de différentiation de l'instruction a été établie. Sortie Obligatoire 205 MULTI-INTERMILC (519) LOCK CLEAR MILC N 519 N: Numéro de UC série CS/CJ verrouillage Efface un verrouillage déclenché par une MILH(517) ou une MILR(518) Sortie portant le même numéro de verrouillage. Non obligatoire Toutes les sorties comprises entre MILH(517)/MILR(518) et la MILC(519) correspondante, et qui portent le même numéro de verrouillage, sont verrouillées lorsque la condition d'exécution de MILH(517)/MILR(518) est OFF. 205 JUMP Lorsque la condition d'exécution de JMP(004) est OFF, l'exécution du Sortie Obligatoire programme passe directement au premier JME(005) du programme portant le même numéro de saut. JMP(004) et JME(005) sont utilisées par paires. Condition d'exécution Instructions sautées 219 INTERLOCK CLEAR ILC(003) ILC 003 MULTI-INTERMILH (517) LOCK DIFFERENTIATION N HOLD MILH D 517 N : Numéro de UC série CS/CJ verrouillage ver. 2.0 ou supérieure uniquement MULTI-INTERLOCK DIFFERENTIATION RELEASE MILR 518 UC série CS/CJ ver. 2.0 ou supérieure uniquement D : Bit d'état du verrouillage MILR (518) N D N : Numéro de verrouillage D : Bit d'état du verrouillage ver. 2.0 ou supérieure uniquement JMP 004 JMP(004) N N: Numéro de saut Instructions exécutées JUMP END JME 005 JME(005) N N: Numéro de saut 30 Les instructions de cette section ne sont pas exécutées et l'état de la sortie est conservé. Le temps d'exécution de ces instructions est éliminé. Indique la fin d'un saut déclenché par JMP(004) ou CJP(510). Sortie Non obligatoire 219 Chapitre 2-2 Fonction des instructions Instruction Mnémonique Code CONDITIONAL JUMP CJP 510 Symbole/ Opérande Fonction Emplacement Page Condition d’exécution Sortie Obligatoire 223 Sortie Non obligatoire 223 Sortie Obligatoire 227 Lorsque la condition d'exécution de JMP0(515) est OFF, toutes les ins- Sortie tructions comprises entre JMP0(515) et la prochaine JME0(516) dans Non le programme sont traitées en tant que NOP(000). Utilisez JMP0(515) obligatoire et JME0(516) par paires. Le nombre de paires pouvant être utilisées dans le programme est illimité. 227 Le fonctionnement de CJP(510) est fondamentalement à l'opposé de celui de JMP(004). Lorsque la condition d'exécution de CJP(510) est ON, l'exécution du programme passe directement au premier N JME(005) du programme portant le même numéro de saut. CJP(510) N: Numéro de saut et JME(005) sont utilisées par paires. Condition Condition d'exécution OFF d'exécution ON CJP(510) Instructions sautées Instructions exécutées CONDITIONAL JUMP CJPN 511 Le fonctionnement de CJPN(511) est presque identique à celui de JMP(004). Lorsque la condition d'exécution de CJP(004) est OFF, l'exécution du programme passe directement au premier JME(005) du N programme portant le même numéro de saut. CJPN(511) et JME(005) N: Numéro de saut sont utilisées par paires. Condition Condition d'exécution ON d'exécution OFF Instructions sautées CJPN(511) Instructions exécutées MULTIPLE JUMP JMP0 515 Les instructions de cette section ne sont pas exécutées et l'état de la sortie est conservé. Le temps d'exécution de ces instructions est éliminé. JMP0(515) Les instructions de cette section ne sont pas exécutées et l'état de la sortie est conservé. Le temps d'exécution de ces instructions est éliminé. Lorsque la condition d'exécution de JMP0(515) est OFF, toutes les instructions comprises entre JMP0(515) et la prochaine JME0(516) dans le programme sont traitées en tant que NOP(000). Utilisez JMP0(515) et JME0(516) par paires. Le nombre de paires pouvant être utilisées dans le programme est illimité. Condition Condition d'exécution a ON d'exécution a OFF Instructions sautées Instructions exécutées Les instructions sautées sont traitées en tant que NOP(000). Les temps Condition Condition d'exécution b ON d'exécution b OFF d'exécution des instructions sont les mêmes que pour NOP(000). Instructions exécutées Instructions sautées MULTIPLE JUMP END JME0 516 JME0(516) 31 Chapitre 2-2 Fonction des instructions Instruction Mnémonique Code FOR-NEXT LOOPS Symbole/ Opérande FOR(512) FOR 512 N Fonction Emplacement Page Condition d’exécution Les instructions comprises entre FOR(512) et NEXT(513) sont répétées un nombre défini de fois. FOR(512) et NEXT(513) sont utilisées par paires. N: Nombre de boucles Sortie Non obligatoire 229 Sortie Obligatoire 232 Sortie Non obligatoire 229 Répété N fois Section de programme répétée BREAK LOOP BREAK 514 BREAK(514) Programmé dans une boucle FOR-NEXT de façon à annuler l'exécution de la boucle pour une condition d'exécution donnée. Les autres instructions de la boucle sont traitées comme des instructions NOP(000). Condition a ON N répétitions Fin forcée des répétitions. Traité en tant que NOP(000). FOR-NEXT LOOPS NEXT(513) NEXT 513 32 Les instructions comprises entre FOR(512) et NEXT(513) sont répétées un nombre défini de fois. FOR(512) et NEXT(513) sont utilisées par paires. Chapitre 2-2 Fonction des instructions 2-2-4 Instructions de temporisateur et compteur Instruction Mnémonique Code TIMER TIM (BCD) TIMX (Binaire) (CS1-H, CJ1-H, CJ1M ou CS1D uniquement) Symbole/ Opérande TIM N S N: Numéro de temporisateur S: Valeur de consigne TIMX(550) Fonction TIM/TIMX(550) effectue une temporisation décroissante par pas de 0,1 s. La plage de configuration pour la valeur de consigne (SV) va de 0 à 999,9 s pour les données BCD et de 0 à 6 553,5 s pour les données binaires (décimales ou hexadécimales). Entrée de temporisateur PV de temporisateur Emplacement Condition d’exécution Page Sortie Obligatoire 235 Sortie Obligatoire 240 Sortie Obligatoire 244 SV Drapeau de fin N S N: Numéro de temporisateur S: Valeur de consigne Entrée de temporisateur PV de temporisateur SV Drapeau de fin HIGH-SPEED TIMER TIMH 015 (BCD) TIMH(015) N S N: Numéro de TIMHX temporisateur 551 S: Valeur de (Binaire) consigne (CS1-H, CJ1-H, CJ1M ou CS1D uniquement) TIMH(015)/TIMHX(551) effectue une temporisation décroissante par pas de 10 ms. La plage de configuration pour la valeur de consigne (SV) va de 0 à 99,99 s pour les données BCD et de 0 à 655,35 s pour les données binaires (décimales ou hexadécimales). Entrée de temporisateur PV de temporisateur SV Drapeau de fin TIMHX(551) N S N: Numéro de temporisateur S: Valeur de consigne Entrée de temporisateur PV de temporisateur SV Drapeau de fin ONE-MS TIMER TMHH 540 (BCD) TMHH(540) N S TMHHX 552 (BCD) (CS1-H, CJ1-H, CJ1M ou CS1D uniquement) N: Numéro de temporisateur S: Valeur de consigne TMHH(540)/TMHHX(552) effectue une temporisation décroissante par pas de 1 ms. La plage de configuration pour la valeur de consigne (SV) va de 0 à 9,999 s pour les données BCD et de 0 à 65,535 s pour les données binaires (décimales ou hexadécimales). Les tableaux de temporisation pour TMHH(540) et TMHHX(552) sont les mêmes que ceux donnés ci-dessus pour TIMH(015). TMHHX(552) N S N: Numéro de temporisateur S: Valeur de consigne 33 Chapitre 2-2 Fonction des instructions Instruction Mnémonique Code Symbole/ Opérande ACCUMULATIVE TIMER TTIM 087 (BCD) Entrée de tem- TTIM(087) porisaN teur TTIMX 555 (Binaire) (CS1-H, CJ1-H, CJ1M ou CS1D uniquement) S Entrée de réinitialisation N: Numéro de temporisateur S: Valeur de consigne Entrée de temporisateur N: Numéro de temporisateur S: Valeur de consigne TIML(542) D1 D2 Page Sortie Obligatoire 247 Sortie Obligatoire 251 Entrée de temporisateur PV de temporisateur SV La temporisation . reprend PV conservée. Drapeau de fin Entrée de réinitialisation TIML(542)/TIMLX(553) effectue une temporisation décroissante par pas de 0,1 s qui peut aller jusqu'à 115 jours pour les données BCD et 49 710 jours pour les données binaires (décimales ou hexadécimales). Entrée de temporisateur S PV de temporisateur D1: Drapeau de fin D2: Mot PV S: Mot SV TIMLX(553) D1 D2 S D1: Drapeau de fin D2: Mot PV S: Mot SV 34 Emplacement Condition d’exécution N Entrée de réinitialisation TIMLX 553 (Binaire) (CS1-H, CJ1-H, CJ1M ou CS1D uniquement) TTIM(087)/TTIMX(555) effectue une temporisation croissante par pas de 0,1 s. La plage de configuration pour la valeur de consigne (SV) va de 0 à 999,9 s pour les données BCD et de 0 à 6 553,5 s pour les données binaires (décimales ou hexadécimales). TTIMX(555) S LONG TIMER TIML 542 (BCD) Fonction Drapeau de fin (Bit 00 de D1) SV Chapitre 2-2 Fonction des instructions Instruction Mnémonique Code Symbole/ Opérande MULTI-OUTPUT TIMER MTIM 543 (BCD) MTIMX 554 (Binaire) (CS1-H, CJ1-H, CJ1M ou CS1D uniquement) MTIM(543) D1 D2 Fonction MTIM(543)/MTIMX(554) effectue une temporisation basée sur des incréments de 0,1 s avec 8 valeurs de consigne (SV) et drapeaux de fin indépendants. La plage de configuration pour la valeur de consigne (SV) est comprise entre 0 et 999,9 s pour les données BCD, entre 0 et 6 553,5 s pour les données binaires (décimales ou hexadécimales). Emplacement Condition d’exécution Page Sortie Obligatoire 254 Sortie Obligatoire 260 PV de temporisateur S D1: Drapeaux de fin D2: Mot PV S: 1er mot SV SV de temporisateur 0 à MTIMX(554) à D1 D2 S D1: Drapeaux de fin D2: Mot PV S: 1er mot SV Entrée de temporisateur SV 7 à SV 2 PV de SV 1 temporisateur (D2) SV 0 0 Drapeaux de fin (D1) Bit 7 à Bit 2 Bit 1 Bit 0 COUNTER Entrée CNT comp(BCD) tage CNTX 546 (Binaire) (CS1-H, CJ1-H, CJ1M ou CS1D uniquement) CNT N S CNT/CNTX(546) contrôle un compteur décrémental. La plage de configuration pour la valeur de consigne (SV) va de 0 à 9 999 pour les données BCD et de 0 à 65 535 pour les données binaires (décimales ou hexadécimales). Entrée de réinitialisation Entrée comptage N: Numéro de compteur S: Valeur de consigne Entrée de réinitialisation Entrée comptage PV de compteur SV CNTX(546) N S Drapeau de fin Entrée de réinitialisation N: Numéro de compteur S: Valeur de consigne 35 Chapitre 2-2 Fonction des instructions Instruction Mnémonique Code Symbole/ Opérande REVERSIBLE COUNTER CNTR 012 (BCD) Entrée incrémen- CNTR(012) tielle N CNTRX 548 (Binaire) (CS1-H, CJ1-H, CJ1M ou CS1D uniquement) Entrée décrémentielle S Entrée de réinitialisation Entrée décrémentielle Emplacement Condition d’exécution Page Sortie Obligatoire 263 CNR(545)/CNRX(547) réinitialise les temporisateurs ou les compteurs Sortie compris dans l'intervalle des numéros de temporisateur et de compteur Obligatoire spécifié. Attribue à la valeur de consigne (SV) la valeur maximale de 9999. 267 CNTR(012)/CNTRX(548) contrôle un compteur réversible. Entrée incrémentielle Entrée décrémentielle N: Numéro de compteur S: Valeur de consigne Entrée incrémentielle Fonction PV de compteur CNTRX(548) N SV PV de compteur S +1 Entrée de réinitialisation N: Numéro de compteur S: Valeur de consigne Drapeau de fin SV 1 PV de compteur Drapeau de fin RESET TIMER/ COUNTER CNR @CNR 545 (BCD) CNR(545) N1 N2 N1: Premier numéro de la plage CNRX @CNRX N2: Dernier nu547 méro de la plage (Binaire) (CS1-H, CJ1-H, CNRX(547) CJ1M ou CS1D uniquement) N1 N2 N1: 1er numéro de la plage N2: Dernier numéro de la plage 36 Chapitre 2-2 Fonction des instructions 2-2-5 Instructions de comparaison *1: Instruction Mnémonique Code Comparaison de symboles (non signé) LD, AND, OR + =, <>, <, <=, >, >= 300 (=) 305 (<>) 310 (<) 315 (<=) 320 (>) 325(>=) Non prise en charge par les UC CS1D pour systèmes d'UC en duplex. Symbole/ Opérande Symbole et options S1 S2 S1: Donnée de comparaison 1 S2: Donnée de comparaison 2 Fonction Emplacement Page Condition d’exécution Les instructions de comparaison de symboles (non signées) comparent deux valeurs (constantes et/ou le contenu de mots spécifiés) en données binaires 16 bits et créent une condition d'exécution ON lorsque la condition de comparaison est vraie. Il existe trois types d'instructions de comparaison de symboles : LD (LOAD), AND et OR. Condition d'exécution ON lorsque le LD résultat de la comparaison est vrai. LD : non obligatoire AND, OR : obligatoire 275 < Condition d'exécution ON lorsque le résultat de la comparaison est vrai. AND < OR < Condition d'exécution ON lorsque le résultat de la comparaison est vrai. Comparaison de symboles (mot double, non signé) LD, AND, OR + =, <>, <, <=, >, >= + L 301 (=) 306 (<>) 311 (<) 316 (<=) 321 (>) 326 (>=) S1: Donnée de comparaison 1 S2: Donnée de comparaison 2 Les instructions de comparaison de symboles (mot double, non signé) comparent deux valeurs (constantes et/ou le contenu de données de mots doubles spécifiés) en données binaires 32 bits non signées et créent une condition d'exécution ON lorsque la condition de comparaison est vraie. Il existe trois types d'instructions de comparaison de symboles : LD (LOAD), AND et OR. LD : non obligatoire AND, OR : obligatoire 275 Comparaison de symboles (signé) LD, AND, OR + =, <>, <, <=, >, >= +S 302 (=) 307 (<>) 312 (<) 317 (<=) 322 (>) 327 (>=) S1: Donnée de comparaison 1 S2: Donnée de comparaison 2 Les instructions de comparaison de symboles (signé) comparent deux valeurs (constantes et/ou le contenu de mots spécifiés) en données binaires 16 bits signées (4 chiffres hexadécimaux) et créent une condition d'exécution ON lorsque la condition de comparaison est vraie. Il existe trois types d'instructions de comparaison de symboles : LD (LOAD), AND et OR. LD : non obligatoire AND, OR : obligatoire 275 37 Chapitre 2-2 Fonction des instructions Instruction Mnémonique Code Symbole/ Opérande Fonction Emplacement Page Condition d’exécution Comparaison de symboles (mot double, signé) LD, AND, OR + =, <>, <, <=, >, >= +SL 303 (=) 308 (<>) 313 (<) 318 (<=) 323 (>) 328 (>=) S1: Donnée de comparaison 1 S2: Donnée de comparaison 2 Les instructions de comparaison de symboles (mot double, signé) comparent deux valeurs (constantes et/ou le contenu de données mots doubles spécifiés) en données binaires 32 bits signées (8 chiffres hexadécimaux) et créent une condition d'exécution ON lorsque la condition de comparaison est vraie. Il existe trois types d'instructions de comparaison de symboles : LD (LOAD), AND et OR. LD : non obligatoire AND, OR : obligatoire 275 Comparaison de LD (LOAD) : temps LD, AND, OR + = Symbole DT, <> DT, < DT, C <= DT, > DT, >= DT S1 341 (= DT) S2 342 (<> DT) 343 (< DT) 344 (<= DT) 345 (> DT) AND : 346 (>= DT) Symbole (UC série CS/CJ ver. 2.0 ou C supérieure uniquement) S1 Les instructions de comparaison de temps comparent deux valeurs de temps BCD et créent une condition d'exécution ON lorsque la condition de comparaison est vraie. Il existe trois types d'instructions de comparaison de temps : LD (LOAD), AND et OR. Les valeurs de temps (année, mois, jour, heure, minute et seconde) peuvent être masquées/démasquées dans la comparaison, ce qui permet de créer facilement des fonctions de temporisation de calendrier. LD : non obligatoire AND, OR : obligatoire 281 Compare deux valeurs binaires non signées (constantes et/ou le contenu de mots spécifiés) et place le résultat dans les drapeaux arithmétiques de la zone auxiliaire. Sortie Obligatoire 287 Sortie Obligatoire 290 S2 OR : Symbole C S1 S2 C : Mot de contrôle S1 : 1er mot temps présent S2 : 1er mot temps de comparaison UNSIGNED COMPARE CMP !CMP*1 020 CMP(020) S1 Comparaison de valeurs binaires non signées S2 S1: Donnée de comparaison 1 S2: Donnée de comparaison 2 DOUBLE UNSIGNED COMPARE CMPL 060 CMPL(060) S1 Compare deux valeurs binaires doubles non signées (constantes et/ou le contenu de mots spécifiés) et place le résultat dans les drapeaux arithmétiques de la zone auxiliaire. Comparaison de valeurs binaires non signées S2 S1: Donnée de comparaison 1 S2: Donnée de comparaison 2 38 Drapeaux arithmétiques (>, >=, =, <=, <, <>) S1+1 S2+1 Drapeaux arithmétiques (>, >=, =, <=, <, <>) Chapitre 2-2 Fonction des instructions Instruction Mnémonique Code SIGNED BINARY COMPARE CPS !CPS*1 114 Symbole/ Opérande CPS(114) S1 Fonction Sortie Obligatoire 293 Compare deux valeurs binaires doubles signées (constantes et/ou Sortie le contenu de mots spécifiés) et place le résultat dans les drapeaux Obligatoire arithmétiques de la zone auxiliaire. 296 Compare deux valeurs binaires signées (constantes et/ou le contenu de mots spécifiés) et place le résultat dans les drapeaux arithmétiques de la zone auxiliaire. Comparaison de valeurs binaires signées S2 S1: Donnée de comparaison 1 S2: Donnée de comparaison 2 DOUBLE SIGNED BINARY COMPARE CPSL 115 CPSL(115) S1 Drapeaux arithmétiques (>, >=, =, <=, <, <>) Comparaison de valeurs binaires signées S2 S1: Donnée de comparaison 1 S2: Donnée de comparaison 2 MULTIPLE COMPARE MCMP @MCMP 019 MCMP(019) S1 S1+1 S2+1 Drapeaux arithmétiques (>, >=, =, <=, <, <>) Sortie Obligatoire 299 Compare les données sources avec le contenu de 16 mots et passe le bit correspondant ON dans le mot de résultat lorsque les contenus sont égaux. Comparaison R 1: Les données sont égales. 0: Les données ne sont pas égales. Sortie Obligatoire 301 Compare les données sources avec 16 plages (définies par 16 limites inférieures et 16 limites supérieures) et passe le bit correspondant ON dans le mot de résultat lorsque les données sources sont comprises dans la plage. 1: Dans la plage Plages 0: En dehors de la plage Limite inférieure Limite supérieure R 0 à T+1 T Données 1 T+2 à T+3 sources Sortie Obligatoire 304 Compare 16 mots consécutifs avec 16 autres mots consécutifs et passe le bit correspondant ON dans le mot de résultat lorsque les contenus ne sont pas égaux. Comparaison S2 R 0: Les mots sont égaux. 1: Les mots ne sont pas égaux. R S1: 1er mot de l'ensemble 1 S2: 1er mot de l'ensemble 2 R: Mot de résultat TABLE COMPARE TCMP @TCMP 085 TCMP(085) S T R S: Données sources T: 1er mot de la table R: Mot de résultat UNSIGNED BLOCK COMPARE BCMP @BCMP 068 BCMP(068) S T R S: Données sources T: 1er mot de la table R: Mot de résultat Emplacement Page Condition d’exécution S T+28 T+30 à T+29 14 à T+31 15 39 Chapitre 2-2 Fonction des instructions Instruction Mnémonique Code EXPANDED BLOCK COMPARE BCMP2 @BCMP2 502 (UC CS1-H, CJ1-H ou CS1D ver. 2.0 ou supérieure uniquement) UC CJ1M (préver. 2.0 ou ver. 2.0 ou supérieure) Symbole/ Opérande BCMP2(502) S T Fonction Compare les données sources à 256 plages maximum (définies par Sortie des limites supérieure et inférieure) et passe ON le bit correspondant Obligatoire dans le mot de résultat lorsque les données sources sont comprises dans une plage. R S: Données sources T: 1er mot du bloc R: Mot de résultat Emplacement Page Condition d’exécution T Données sources N n=255 max. 306 1 : Dans la plage 0 : En dehors de la plage D Bit T+1 Plage 0 A Plage 0 B T+2 0 T+3 Plage 1 A Plage 1 B T+4 1 S D+15 max. T+2N+1 Plage N A Plage N B T+2N+2 Remarque : A peut être inférieur ou égal à B ou supérieur à B. AREA RANGE COMPARE ZCP @ZCP 088 (CS1-H, CJ1-H, CJ1M ou CS1D uniquement) ZCP(088) CD Sortie Obligatoire 310 Compare la valeur binaire 32 bits non signée de CD et CD+1 (contenu de mot ou constante) à la plage définie par LL et UL, puis sort les résultats dans les drapeaux arithmétiques de la zone auxiliaire. Sortie Obligatoire 313 LL UL CD: Donnée de comparaison (1 mot) LL: Limite inférieure de la plage UL: Limite supérieure de la plage DOUBLE AREA ZCPL(116) RANGE COMPARE CD ZCPL @ZCPL LL 116 UL (CS1-H, CJ1-H, CJ1M ou CS1D CD: Donnée de comuniquement) paraison (2 mots) LL: Limite inférieure de la plage UL: Limite supérieure de la plage 40 Compare la valeur binaire 16 bits non signée de CD (contenu de mot ou constante) à la plage définie par LL et UL, puis sort les résultats dans les drapeaux arithmétiques de la zone auxiliaire. Chapitre 2-2 Fonction des instructions 2-2-6 Instructions de déplacement de données Instruction Mnémonique Code MOVE MOV @MOV !MOV !@MOV 021 Symbole/ Opérande MOV(021) Fonction Transfère un mot de données vers le mot spécifié. Emplacement Condition d’exécution Page Sortie Obligatoire 315 Sortie Obligatoire 318 Sortie Obligatoire 317 Sortie Obligatoire 320 Sortie Obligatoire 321 Mot source S D S: Source D: Destination Etat des bits inchangé. Mot de destination DOUBLE MOVE MOVL @MOVL 498 MOVL(498) S S S+1 D S: 1er mot source D: 1er mot de destination MOVE NOT MVN @MVN 022 Transfère deux mots de données vers les mots spécifiés. MVN(022) Etat des bits inchangé. D D+1 Transfère le complément d'un mot de données vers le mot spécifié. Mot source S D S: Source D: Destination Etat des bits inversé. Mot de destination DOUBLE MOVE NOT MVNL @MVNL 499 MVNL(499) S S+1 S D S: 1er mot source D: 1er mot de destination MOVE BIT MOVB @MOVB 082 Transfère le complément de deux mots vers les mots spécifiés. MOVB(082) Etat des bits inversé. D Transfère le bit spécifié. D+1 S C D S: Mot ou donnée source C: Mot de contrôle D: Mot de destination 41 Chapitre 2-2 Fonction des instructions Instruction Mnémonique Code MOVE DIGIT MOVD @MOVD 083 Symbole/ Opérande MOVD(083) Fonction Emplacement Condition d’exécution Page Transfère le ou les chiffres spécifiés. (Chaque chiffre est constitué de 4 bits.) Sortie Obligatoire 323 Transfère le nombre de bits consécutifs spécifié. Sortie Obligatoire 326 Transfère le nombre de mots consécutifs spécifié. Sortie Obligatoire 328 Sortie Obligatoire 331 Sortie Obligatoire 333 S C D S: Mot ou donnée source C: Mot de contrôle D: Mot de destination MULTIPLE BIT TRANSFER XFRB @XFRB 062 XFRB(062) C S D C: Mot de contrôle S: 1er mot source D: 1er mot de destination BLOCK TRANSFER XFER @XFER 070 XFER(070) N S D à N mots à D+(N−1) S+(N−1) N: Nombre de mots S: 1er mot source D: 1er mot de destination BLOCK SET BSET @BSET 071 BSET(071) S Copie le même mot dans une plage de mots consécutifs. Mot source Mots de destination St St E S: Mot source St: Mot de départ E: Mot de fin E DATA EXCHANGE XCHG @XCHG 073 XCHG(073) E1 E2 E1: 1er mot échange E2: Deuxième mot échange 42 Echange le contenu des deux mots spécifiés. E1 E2 Chapitre 2-2 Fonction des instructions Instruction Mnémonique Code DOUBLE DATA EXCHANGE XCGL @XCGL 562 Symbole/ Opérande XCGL(562) Fonction Echange le contenu d'une paire de mots consécutifs avec une autre paire de mots consécutifs. Emplacement Condition d’exécution Page Sortie Obligatoire 334 Sortie Obligatoire 336 Sortie Obligatoire 338 Sortie Obligatoire 340 Sortie Obligatoire 342 E1 E2 E1 E1+1 E2 E2+1 E1: 1er mot échange E2: Deuxième mot échange SINGLE WORD DISTRIBUTE DIST @DIST 080 DIST(080) S Transfère le mot source vers un mot de destination calculé en ajoutant une valeur de décalage à l'adresse de base. S Bs Of Bs Of S: Mot source Bs: Adresse de base destination Of: Décalage DATA COLLECT COLL @COLL 081 COLL(081) Bs+n Transfère le mot source (calculé en ajoutant une valeur de décalage à l'adresse de base) vers le mot de destination. Bs Of Of Bs D Bs: Adresse de base source Of: Décalage D: Mot de destination MOVE TO REGISTER MOVR @MOVR 560 MOVR(560) S D Bs+n Ecrit l'adresse mémoire E/S interne du mot, du bit ou du drapeau de fin de temporisateur/compteur spécifié dans le registre d'index spécifié. (Utilisez MOVRW(561) pour écrire l'adresse mémoire E/S interne d'une PV de temporisateur/compteur dans un registre d'index.) Adresse mémoire E/S de S S: Source (mot ou bit souhaité) D: Destination (registre d'index) Registre d'index MOVE TIMER/ COUNTER PV TO REGISTER MOVRW @MOVRW 561 MOVRW(561) S D S: Source (numéro de TC souhaité) D: Destination (registre d'index) Ecrit l'adresse mémoire E/S interne de la PV de temporisateur/compteur spécifiée dans le registre d'index spécifié. (Utilisez MOVRW(560) pour écrire l'adresse mémoire E/S interne d'un mot, d'un bit ou d'un drapeau de fin de temporisateur/compteur dans un registre d'index.) Adresse mémoire E/S de S PV de temporisateur/ compteur uniquement Registre d'index 43 Chapitre 2-2 Fonction des instructions 2-2-7 Instructions de décalage de données Instruction Mnémonique Code SHIFT REGISTER SFT 010 Symbole/ Opérande Entrée de données SFT(010) Entrée de décalage Fonction Contrôle un registre à décalage St St+1, St+2 E Sortie Obligatoire 345 Sortie Obligatoire 346 Sortie Obligatoire 349 Sortie Obligatoire 352 Sortie Obligatoire 354 E Etat de l'entrée de données pour chaque entrée de décalage Perdu St: Mot de départ E: Mot de fin SFTR(084) Crée un registre de décalage qui décale les données soit vers la droite soit vers la gauche. C St E St E St Entrée de données E C: Mot de contrôle St: Mot de départ E: Mot de fin ASYNCHRONOUS SHIFT REGISTER ASFT @ASFT 017 Page St Entrée de réinitialisation REVERSIBLE SHIFT REGISTER SFTR @SFTR 084 Emplacement Condition d’exécution ASFT(017) C Entrée de données Sens de décalage Décale toutes les données de mot non nulles dans la plage de mots spécifiée vers St ou vers E, en remplaçant les données de mot 0000Hex. St E Sens de décalage Décalage activé St ••• C: Mot de contrôle St: Mot de départ E: Mot de fin Décalage Effacer Décalage E St ••• Données nulles Données non nulles E WORD SHIFT WSFT @WSFT 016 WSFT(016) Décale les données entre St et E en unités de mots. E S St St Perdu E S: Mot source St: Mot de départ E: Mot de fin ARITHMETIC SHIFT LEFT ASL(025) ASL Wd @ASL 025 Wd: Mot 44 Décale le contenu de Wd d'un bit vers la gauche. Chapitre 2-2 Fonction des instructions Instruction Mnémonique Code Symbole/ Opérande Fonction Emplacement Condition d’exécution Page Sortie Obligatoire 355 DOUBLE SHIFT ASLL(570) LEFT ASLL Wd @ASLL 570 Wd: Mot Décale le contenu de Wd et Wd +1 d'un bit vers la gauche. ARITHMETIC ASR(026) SHIFT RIGHT ASR Wd @ASR 026 Wd: Mot Décale le contenu de Wd d'un bit vers la droite. Sortie Obligatoire 357 Décale le contenu de Wd et Wd +1 d'un bit vers la droite. Sortie Obligatoire 358 Sortie Obligatoire 360 Sortie Obligatoire 362 Sortie Obligatoire 367 Sortie Obligatoire 369 Décale tous les bits de Wd d'un bit vers la droite, y compris le drapeau de report (CY). Wd Wd+1 Sortie Obligatoire 364 Décale tous les bits de Wd et Wd +1 d'un bit vers la droite, y compris le drapeau de report (CY). Wd Wd+1 Sortie Obligatoire 365 DOUBLE SHIFT ASRL(571) RIGHT ASRL Wd @ASRL 571 Wd: Mot ROTATE LEFT ROL @ROL 027 ROL(027) Wd+1 Wd+1 Wd Wd Décale tous les bits de Wd d'un bit vers la gauche, y compris le drapeau de report (CY). Wd Wd: Mot DOUBLE ROLL(572) ROTATE LEFT ROLL Wd @ROLL 572 Wd: Mot ROTATE LEFT RLNC(574) WITHOUT CARRY Wd RLNC @RLNC Wd: Mot 574 DOUBLE RLNL(576) ROTATE LEFT WITHOUT Wd CARRY RLNL @RLNL Wd: Mot 576 ROTATE RIGHT ROR @ROR 028 ROR(028) Wd Décale tous les bits de Wd et Wd +1 d'un bit vers la gauche, y compris le drapeau de report (CY). Wd+1 Wd Décale tous les bits de Wd d'un bit vers la gauche, sans inclure le drapeau de report (CY). Wd Décale tous les bits de Wd et Wd +1 d'un bit vers la gauche, sans inclure le drapeau de report (CY). Wd+1 Wd Wd: Mot DOUBLE ROTATE RIGHT RORL @RORL 573 RORL(573) Wd Wd: Mot 45 Chapitre 2-2 Fonction des instructions Instruction Mnémonique Code Symbole/ Opérande ROTATE RIGHT RRNC(575) WITHOUT CARRY Wd RRNC @RRNC Wd: Mot 575 DOUBLE RRNL(577) ROTATE RIGHT WITHOUT Wd CARRY RRNL @RRNL Wd: Mot 577 ONE DIGIT SHIFT LEFT SLD @SLD 074 SLD(074) Fonction Décale tous les bits de Wd d'un bit vers la droite, sans inclure le drapeau de report (CY). Le contenu du bit le plus à droite de Wd se décale vers le bit de gauche et vers le drapeau de report (CY). Page Sortie Obligatoire 371 Sortie Obligatoire 372 Sortie Obligatoire 374 Sortie Obligatoire 376 Sortie Obligatoire 377 Sortie Obligatoire 379 Wd Décale tous les bits de Wd et Wd +1 d'un bit vers la droite, sans inclure le drapeau de report (CY). Le contenu du bit le plus à droite de Wd +1 est décalé vers le bit de gauche de Wd et vers le drapeau de report (CY). Wd+1 Wd Décale les données d'un chiffre (4 bits) vers la gauche. U St E Emplacement Condition d’exécution I t Perdu St: Mot de départ E: Mot de fin ONE DIGIT SHIFT RIGHT SRD @SRD 075 SRD(075) Décale les données d'un chiffre (4 bits) vers la droite. U I t St Perdu E St: Mot de départ E: Mot de fin SHIFT N-BIT DATA LEFT NSFL @NSFL 578 NSFL(578) Décale le nombre de bits spécifié vers la gauche. D C N D: Mot de départ pour le décalage C: Bit de départ N: Longueur du décalage N−1 bit Décale un bit vers la gauche N−1 bit SHIFT N-BIT DATA RIGHT NSFR @NSFR 579 NSFR(579) Décale le nombre de bits spécifié vers la droite. D C N D: Mot de départ pour le décalage C: Bit de départ N: Longueur du décalage N−1 bit N−1 bit 46 Décale un bit vers la droite Chapitre 2-2 Fonction des instructions Instruction Mnémonique Code SHIFT N-BITS LEFT NASL @NASL 580 Symbole/ Opérande NASL(580) Fonction Décale les 16 bits de données de mot spécifiés vers la gauche, du nombre de bits spécifié. Emplacement Condition d’exécution Page Sortie Obligatoire 381 Sortie Obligatoire 384 Sortie Obligatoire 387 Sortie Obligatoire 389 D C D: Mot à décaler C: Mot de contrôle Décalage de n bits Contenu de introduit en "a" ou "0" par le décalage Perdu N bits DOUBLE SHIFT N-BITS LEFT NSLL @NSLL 582 NSLL(582) Décale les 32 bits de données du mot vers la gauche, du nombre de bits spécifié. D C Décalage de n bits D: Mot à décaler C: Mot de contrôle Contenu de "a" ou "0" introduit par décalage Perdu N bits SHIFT N-BITS RIGHT NASR @NASR 581 NASR(581) D Décale les 16 bits de données de mot spécifiés vers la droite, du nombre de bits spécifié. C D: Mot à décaler C: Mot de contrôle Contenu de "a" ou "0" introduit par décalage Perdu N bits DOUBLE SHIFT N-BITS RIGHT NSRL @NSRL 583 NSRL(583) Décale les 32 bits de données de mot spécifiés vers la droite, du nombre de bits spécifié. D C Contenu de D: Mot à décaler "a" ou "0" C: Mot de contrôle introduit par décalage Décalage de n bits Perdu 47 Chapitre 2-2 Fonction des instructions 2-2-8 Instructions d'incrémentation/décrémentation Instruction Mnémonique Code INCREMENT BINARY Symbole/ Opérande ++(590) ++ Wd @++ 590 Wd: Mot Fonction Emplacement Condition d’exécution Page Incrémente de 1 le contenu (4 chiffres hexadécimaux) du mot spécifié. Sortie Obligatoire Wd Wd 393 DOUBLE INCRE++L(591) MENT BINARY ++L Wd @++L 591 Wd: Mot Incrémente de 1 le contenu (8 chiffres hexadécimaux) des mots spécifiés. Wd+1 Wd Wd+1 Wd Sortie Obligatoire 395 DECREMENT BINARY Décrémente de 1 le contenu (4 chiffres hexadécimaux) du mot spécifié. Sortie Obligatoire 397 Sortie Obligatoire 399 Sortie Obligatoire 401 Sortie Obligatoire 403 Sortie Obligatoire 405 Sortie Obligatoire 407 − − (592) –– Wd @– – 592 Wd: Mot DOUBLE DECREMENT BINARY – –L @– –L 593 INCREMENT BCD − − L(593) Wd Wd Wd Décrémente de 1 le contenu (8 chiffres hexadécimaux) des mots spécifiés. Wd+1 Wd Wd+1 Wd Wd: 1er mot ++B(594) Incrémente de 1 le contenu BCD à 4 chiffres du mot spécifié. ++B Wd @++B 594 Wd: Mot Wd Wd DOUBLE INCRE++BL(595) MENT BCD ++BL Wd @++BL 595 Wd: 1er mot Incrémente de 1 le contenu BCD à 8 chiffres des mots spécifiés. DECREMENT − − B(596) BCD – –B Wd @– –B 596 Wd: Mot Décrémente de 1 le contenu BCD à 4 chiffres du mot spécifié. DOUBLE − − BL(597) DECREMENT BCD Wd – –BL @– –BL Wd: 1er mot 597 48 Wd+1 Wd Wd Wd+1 −1 Wd Wd Décrémente de 1 le contenu BCD à 8 chiffres des mots spécifiés. Wd+1 Wd Wd+1 Wd Chapitre 2-2 Fonction des instructions 2-2-9 Instructions mathématiques à symboles Instruction Mnémonique Code SIGNED BINARY ADD WITHOUT CARRY + @+ 400 Symbole/ Opérande +(400) Au R CY passera à ON s'il existe un report. +L(401) Au R +C(402) CY R (binaire signé) CY passera à ON s'il existe un report. + Ad+1 Ad (binaire signé) CY R+1 R (binaire signé) Additionne 4 chiffres (mot unique) de données hexadécimales et/ou des constantes avec le drapeau de report (CY). R +CL(403) Au (binaire signé) Ad (binaire signé) CY passera à ON s'il existe un report. Emplacement Condition d’exécution Page Sortie Obligatoire 410 Sortie Obligatoire 412 Sortie Obligatoire 414 Sortie Obligatoire 416 Sortie Obligatoire 418 CY + CY (binaire signé) R Additionne 8 chiffres (mot double) de données hexadécimales et/ou des constantes avec le drapeau de report (CY). Au Au+1 Au (binaire signé) Ad+1 Ad (binaire signé) Ad R +B(404) +B @+B 404 (binaire signé) Ad Au: 1er mot cumulande Ad: 1er mot cumulateur R: 1er mot de résultat BCD ADD WITHOUT CARRY Ad Au Au: Mot cumulande Ad: Mot cumulateur R: Mot de résultat DOUBLE SIGNED BINARY ADD WITH CARRY +CL @+CL 403 + Additionne 8 chiffres (mot double) de données hexadécimales et/ou des constantes. (binaire signé) Au+1 Au Ad Au: 1er mot cumulande Ad: 1er mot cumulateur R: 1er mot de résultat SIGNED BINARY ADD WITH CARRY +C @+C 402 Additionne 4 chiffres (mot unique) de données hexadécimales et/ou des constantes. (binaire signé) Au Ad Au: Mot cumulande Ad: Mot cumulateur DOUBLE SIGNED BINARY ADD WITHOUT CARRY +L @+L 401 Fonction Au CY passera à ON s'il existe un report. CY Au: Mot cumulande Ad: Mot cumulateur R: Mot de résultat R+1 R (binaire signé) Additionne 4 chiffres de données BCD (mot unique) et/ou des constantes. (BCD) Au Ad R CY + CY passera à ON s'il existe un report. + Ad (BCD) CY R (BCD) 49 Chapitre 2-2 Fonction des instructions Instruction Mnémonique Code DOUBLE BCD ADD WITHOUT CARRY +BL @+BL 405 Symbole/ Opérande +BL(405) Au Additionne 8 chiffres de données BCD (mot double) et/ou des constantes. Au+1 (BCD) Au Ad R Au: 1er mot cumulande Ad: 1er mot cumulateur R: 1er mot de résultat BCD ADD WITH CARRY +BC @+BC 406 Fonction +BC(406) Au CY passera à ON s'il existe un report. + Ad+1 Ad (BCD) CY R+1 R (BCD) Additionne 4 chiffres de données BCD (mot unique) et/ou des constantes avec le drapeau (BCD) Au de report (CY). Ad DOUBLE BCD ADD WITH CARRY +BCL @+BCL 407 +BCL(407) Au 419 Sortie Obligatoire 421 Sortie Obligatoire 423 Sortie Obligatoire 424 Sortie Obligatoire 426 (BCD) R Additionne 8 chiffres de données BCD (mot double) et/ou des constantes avec le drapeau de report (CY). Au+1 (BCD) Au Ad+1 Ad (BCD) R −(410) Mi CY + CY passera à ON s'il existe un report. CY R R+1 (BCD) Soustrait 4 chiffres (mot unique) de données hexadécimales et/ou des constantes. (binaire signé) Mi Su − Su (binaire signé) CY R (binaire signé) R Mi: Mot à soustraire Su: Mot soustracteur R: Mot de résultat DOUBLE − L(411) SIGNED BINARY SUBTRACT Mi WITHOUT CARRY Su –L R @–L 411 Mi: Mot à soustraire Su: Mot soustracteur R: Mot de résultat 50 CY Ad Au: 1er mot cumulande Ad: 1er mot cumulateur R: 1er mot de résultat SIGNED BINARY SUBTRACT WITHOUT CARRY – @– 410 CY passera à ON s'il existe un report. Sortie Obligatoire CY + Au: Mot cumulande Ad: Mot cumul: Mot de résultat Page (BCD) Ad R Emplacement Condition d’exécution CY passera à ON s'il existe une retenue. Soustrait 8 chiffres (mot double) de données hexadécimales et/ou des constantes. (binaire signé) Mi+1 Mi CY passera à ON s'il existe une retenue. − Su+1 Su (binaire signé) CY R+1 R (binaire signé) Chapitre 2-2 Fonction des instructions Instruction Mnémonique Code SIGNED BINARY SUBTRACT WITH CARRY –C @–C 412 Symbole/ Opérande −C(412) Mi CY Sortie Obligatoire 430 Sortie Obligatoire 432 Sortie Obligatoire 435 Sortie Obligatoire 436 Sortie Obligatoire 440 (binaire signé) R des constantes avec le drapeau de report (CY). Mi Su Mi+1 Mi (binaire signé) R Su+1 Su (binaire signé) −B(414) Mi − CY passera à ON s'il existe une retenue. CY CY R+1 (binaire signé) R Soustrait 4 chiffres (mot unique) de données BCD et/ou des constantes. (BCD) Mi Su − Su (BCD) CY R (BCD) R −BL(415) Mi CY passera à ON s'il existe une retenue. Soustrait 8 chiffres (mot double) de données BCD et/ou des constantes. (BCD) Mi +1 Mi Su − Su+1 Su (BCD) CY R+1 R (BCD) R Mi: 1er mot à soustraire Su: 1er mot soustracteur R: 1er mot de résultat BCD SUBTRACT WITH CARRY –BC @–BC 416 CY passera à ON s'il existe une retenue. Page CY −CL(413) Soustrait 8 chiffres (mot double) de données hexadécimales et/ou Mi: Mot à soustraire Su: Mot soustracteur R: Mot de résultat DOUBLE BCD SUBTRACT WITHOUT CARRY –BL @–BL 415 − Emplacement Condition d’exécution (binaire signé) Su R Mi: Mot à soustraire Su: Mot soustracteur R: Mot de résultat BCD SUBTRACT WITHOUT CARRY –B @–B 414 Soustrait 4 chiffres (mot unique) de données hexadécimales et/ou des constantes avec le (binaire signé) Mi drapeau de report (CY). Su Mi: Mot à soustraire Su: Mot soustracteur R: Mot de résultat DOUBLE SIGNED BINARY WITH CARRY –CL @–CL 413 Fonction −BC(416) Mi CY passera à ON s'il existe une retenue. Soustrait 4 chiffres (mot unique) de données BCD et/ou des constantes avec le drapeau de report (CY). (BCD) Mi Su Su R Mi: Mot à soustraire Su: Mot soustracteur R: Mot de résultat − CY passera à ON s'il existe une retenue. CY (BCD) CY R (BCD) 51 Chapitre 2-2 Fonction des instructions Instruction Mnémonique Code DOUBLE BCD SUBTRACT WITH CARRY –BCL @–BCL 417 Symbole/ Opérande −BCL(417) Soustrait 8 chiffres (mot double) de données BCD et/ou de constantes avec le drapeau de report (CY). Mi R *(420) Md CY passera à ON s'il existe une retenue. Mr *L(421) Md Md Su (BCD) R+1 Sortie Obligatoire 441 Sortie Obligatoire 443 Sortie Obligatoire 445 Sortie Obligatoire 447 Sortie Obligatoire 449 (BCD) R Mr (binaire signé) R (binaire signé) Multiplie 8 chiffres de données hexadécimales signées et/ou des constantes. (binaire signé) Md + 1 Md × R+3 R+2 Mr + 1 Mr (binaire signé) R+1 R (binaire signé) Multiplie 4 chiffres de données hexadécimales non signées et/ou des constantes. (binaire non signé) Md Mr × Mr (binaire non signé) R +1 R (binaire non signé) R Md: Mot multiplicande Mr: Mot multiplicateur R: Mot de résultat *UL(423) Md Multiplie 8 chiffres de données hexadécimales non signées et/ou des constantes. Md + 1 Md (binaire non signé) Mr R Md: 1er mot multiplicande Mr: 1er mot multiplicateur R: 1er mot de résultat 52 CY R +1 R *U(422) DOUBLE UNSIGNED BINARY MULTIPLY *UL @*UL 423 Su+1 Page CY × Mr Md: 1er mot multiplicande Mr: 1er mot multiplicateur R: 1er mot de résultat *U @*U 422 (BCD) Multiplie 4 chiffres de données hexadécimales signées et/ou des constantes. (binaire signé) Md Md: Mot multiplicande Mr: Mot multiplicateur R: Mot de résultat UNSIGNED BINARY MULTIPLY Mi − R DOUBLE SIGNED BINARY MULTIPLY *L @*L 421 Mi +1 Emplacement Condition d’exécution Su Mi: 1er mot à soustraire Su: 1er mot soustracteur R: 1er mot de résultat SIGNED BINARY MULTIPLY * @* 420 Fonction × R+3 R+2 Mr + 1 Mr (binaire non signé) R+1 R (binaire non signé) Chapitre 2-2 Fonction des instructions Instruction Mnémonique Code BCD MULTIPLY *B @*B 424 Symbole/ Opérande *B(424) Md Fonction Multiplie 4 chiffres (mot unique) de données BCD et/ou des constantes. (BCD) Md Mr × R Md: Mot multiplicande Mr: Mot multiplicateur R: Mot de résultat DOUBLE BCD MULTIPLY *BL @*BL 425 *BL(425) Md Md: 1er mot multiplicande Mr: 1er mot multiplicateur R: 1er mot de résultat / @/ 430 /(430) Dd × R +3 (BCD) R +2 Dr /L(431) Mr + 1 Mr (BCD) R+1 R (BCD) Divise 4 chiffres (mot unique) de données hexadécimales signées et/ou des constantes. (binaire signé) Dd ÷ Dd: Mot dividende Dr: Mot diviseur R: Mot de résultat R +1 Reste Sortie Obligatoire 450 Sortie Obligatoire 452 Sortie Obligatoire 454 Dr (binaire signé) R (binaire signé) Sortie Obligatoire 456 Sortie Obligatoire 458 Quotient Divise 8 chiffres (mot double) de données hexadécimales signées et/ou des constantes. Dd Dd + 1 Dd (binaire signé) Dr + 1 Dr (binaire signé) R+1 R (binaire signé) Dr R Dd: 1er mot dividende Dr: 1er mot diviseur R: 1er mot de résultat UNSIGNED BINARY DIVIDE /U @/U 432 R Multiplie 8 chiffres (mot double) de données BCD et/ou des constantes. (BCD) Md + 1 Md R DOUBLE SIGNED BINARY DIVIDE /L @/L 431 (BCD) Page Mr R SIGNED BINARY DIVIDE R +1 Mr Emplacement Condition d’exécution /U(432) ÷ R +3 R +2 Reste Quotient Divise 4 chiffres (mot unique) de données hexadécimales non signées et/ou des constantes. Dd Dr R Dd: Mot dividende Dr: Mot diviseur R: Mot de résultat ÷ R +1 Reste Dd (binaire non signé) Dr (binaire non signé) R (binaire non signé) Quotient 53 Chapitre 2-2 Fonction des instructions Instruction Mnémonique Code DOUBLE UNSIGNED BINARY DIVIDE /UL @/UL 433 Symbole/ Opérande /UL(433) /B @/B 434 Divise 8 chiffres (mot double) de données hexadécimales non signées et/ou des constantes. Dd R /B(434) Dd Dr ÷ R +3 R +2 (binaire non signé) Dr + 1 Dr (binaire non signé) R+1 R (binaire non signé) Divise 4 chiffres (mot unique) de données BCD et/ou des constantes. (BCD) Dd Dd: Mot dividende Dr: Mot diviseur R: Mot de résultat ÷ Dr (BCD) R +1 R (BCD) Reste /BL @/BL 435 Dd Page Sortie Obligatoire 460 Sortie Obligatoire 462 Sortie Obligatoire 464 Emplacement Condition d’exécution Page Sortie Obligatoire 466 Sortie Obligatoire 467 Quotient Reste R DOUBLE BCD DIVIDE Dd + 1 Emplacement Condition d’exécution Dr Dd: 1er mot dividende Dr: 1er mot diviseur R: 1er mot de résultat BCD DIVIDE Fonction /BL(435) Dd Quotient Divise 8 chiffres (mot double) de données BCD et/ou des constantes. (BCD) Dd Dd + 1 Dr R Dd: 1er mot dividende Dr: 1er mot diviseur R: 1er mot de résultat ÷ R +2 R +3 Reste Dr + 1 Dr (BCD) R+1 R (BCD) Quotient 2-2-10 Instructions de conversion Instruction Mnémonique Code BCD-TO-BINARY BIN @BIN 023 Symbole/ Opérande BIN(023) S Fonction Convertit des données BCD en données binaires. (BCD) R (BIN) R S: Mot source R: Mot de résultat DOUBLE BCDTO-DOUBLE BINARY BINL @BINL 058 BINL(058) S (BCD) R (BCD) S: 1er mot source R: 1er mot de résultat 54 Convertit des données BCD à 8 chiffres en données hexadécimales à 8 chiffres (données binaires 32 bits). R R+1 (BIN) (BIN) Chapitre 2-2 Fonction des instructions Instruction Mnémonique Code BINARY-TO-BCD BCD @BCD 024 Symbole/ Opérande BCD(024) Fonction Convertit un mot de données binaires en un mot de données BCD. (BIN) S Emplacement Condition d’exécution Page Sortie Obligatoire 469 Sortie Obligatoire 470 Sortie Obligatoire 472 Sortie Obligatoire 474 Sortie Obligatoire 476 (BCD) R R S: Mot source R: Mot de résultat DOUBLE BINARY-TODOUBLE BCD BCDL @BCDL 059 2'S COMPLEMENT NEG @NEG 160 BCDL(059) S Convertit des données hexadécimales à 8 chiffres (données binaires 32 bits) en données BCD à 8 chiffres. (BIN) R (BCD) R (BIN) (BCD) R+1 S: 1er mot source R: 1er mot de résultat NEG(160) Calcule le complément à 2 d'un mot de données hexadécimales. Complément à 2 (Complément + 1) S R (S) (R) S: Mot source R: Mot de résultat DOUBLE 2'S COMPLEMENT NEGL @NEGL 161 NEGL(161) Calcule le complément à 2 de deux mots de données hexadécimales. Complément à 2 (Complément + 1) S R (S+1, S) (R+1, R) S: 1er mot source R: 1er mot de résultat 16-BIT TO 32-BIT SIGNED BINARY SIGN @SIGN 600 SIGN(600) S R S: Mot source R: 1er mot de résultat Développe une valeur binaire de 16 bits signée de façon à obtenir son équivalent 32 bits. MSB S MSB = 0 : 0000 Hex MSB = 1 : FFFF Hex D+1 D D = Contenu de S 55 Chapitre 2-2 Fonction des instructions Instruction Mnémonique Code DATA DECODER MLPX @MLPX 076 Symbole/ Opérande MLPX(076) S C Fonction Lit la valeur numérique dans le chiffre (ou l'octet) spécifié du mot source, met sur ON le bit correspondant dans le mot de résultat (ou la plage de 16 mots) et met sur OFF tous les autres bits dans le mot de résultat (ou la plage de 16 mots). Conversion 4 à 16 bits R S: Mot source C: Mot de contrôle R: 1er mot de résultat C l=1 (Convertir 2 chiffres.) n=2 (Partir du deuxième chiffre.) décodage de 4 à 16 bits (Le bit m de R est mis sur ON.) R R+1 Conversion de 8 à 256 bits C l=1 (Convertir 2 octets.) n=1 (Partir du premier octet.) décodage de 8 à 256 bits (Le bit m de R à R+15 est passé ON.) R+1 R+14 R+15 R+16 R+17 R+30 R+31 56 Deux plages de 16 mots sont utilisées lorsque l spécifie 2 octets. Emplacement Condition d’exécution Page Sortie Obligatoire 477 Chapitre 2-2 Fonction des instructions Instruction Mnémonique Code DATA ENCODER DMPX @DMPX 077 Symbole/ Opérande DMPX(077) S R C Fonction Recherche l'emplacement du premier ou du dernier bit ON dans le mot source (ou la plage de 16 mots) et écrit cette valeur dans le chiffre (ou l'octet) spécifié du mot de résultat. Conversion 16 à 4 bits C Recherche le bit le plus à gauche (adresse de bit la plus haute) S: 1er mot source R: Mot de résultat C: Mot de contrôle Emplacement Condition d’exécution Page Sortie Obligatoire 482 Sortie Obligatoire 486 l=1 (Convertir 2 mots.) Décodage 16 à 4 bits (L'emplacement du bit le plus à gauche (m) est écrit dans R.) Bit le plus à gauche Bit le plus à droite n=2 (Partir du chiffre 2.) R Conversion 256 à 8 bits C l=0 (Convertir une plage de 16 mots.) Bit le plus à gauche Recherche le bit le plus à gauche (adresse de bit la plus haute) Décodage 256 à 8 bits (L'emplacement du bit le plus à gauche dans la plage de 16 mots (m) est écrit dans R.) n=1 (Partir de l'octet 1.) R ASCII CONVERT ASC @ASC 086 S Convertit les chiffres hexadécimaux 4 bits du mot source dans leurs équivalents ASCII 8 bits. Di Di Premier chiffre à convertir ASC(086) D S: Mot source Di: Désignateur de chiffre D: 1er mot de destination Nombre de chiffres (n+1) Gauche (1) Droite (0) 57 Chapitre 2-2 Fonction des instructions Instruction Mnémonique Code ASCII TO HEX HEX @HEX 162 Symbole/ Opérande HEX(162) S Fonction Convertit jusqu'à 4 octets de données ASCII du mot source dans leurs équivalents hexadécimaux et écrit ces chiffres dans le mot de destination spécifié. Emplacement Condition d’exécution Page Sortie Obligatoire 490 Sortie Obligatoire 494 Sortie Obligatoire 496 C : 0021 Di Di Premier octet à convertir D S: 1er mot source Di: Désignateur de chiffre D: Mot de destination Gauche (1) Droite (0) Nombre de chiffres (n+1) Premier chiffre à écrire COLUMN TO LINE LINE @LINE 063 LINE(063) S N D S: 1er mot source N: Numéro de bit D: Mot de destination Convertit une colonne de bits d'une plage de 16 mots (le même numéro de bit dans 16 mots consécutifs) dans les 16 bits du mot de destination. N Bit Bit 15 00 S S+1 S+2 S+3 . . . S+15 0 0 0 1 1 1 1 0 0 0 1 0 0 0 0 1 1 1 0 1 0 0 1 0 0 1 1 1 0 0 0 1 0 0 0 1 1 0 1 1 0 0 1 0 0 1 1 1 1 0 0 0 0 0 1 1 0 0 0 0 0 1 1 1 . . . . . . . . . 0 1 1 0 0 0 0 1 1 0 0 0 1 0 1 0 Bit 15 D 0 LINE TO COLUMN COLM @COLM 064 COLM(064) S Bit 15 N S 0 Bit 00 . . . . . . D D+1 D+2 D+3 . . . D+15 . 0 1 1 1 Bi Bit 15 58 . . . 0 1 1 1 Convertit les 16 bits du mot source en une colonne de bits dans une plage de 16 mots de destination (le même numéro de bit dans 16 mots consécutifs). D S: Mot source D: 1er mot de destination N: Numéro de bit Bit 00 Bit 00 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 1 1 1 0 1 0 0 1 0 0 1 1 1 0 0 0 1 0 0 0 1 1 0 1 1 0 0 1 0 0 1 1 1 1 0 0 0 0 0 1 1 0 0 0 0 0 1 1 1 . . . . . . . . . 0 1 1 1 0 0 0 1 1 0 0 0 1 0 1 0 Chapitre 2-2 Fonction des instructions Instruction Mnémonique Code SIGNED BCDTO-BINARY BINS @BINS 470 Symbole/ Opérande BINS(470) C Fonction Emplacement Condition d’exécution Page Sortie Obligatoire 499 Sortie Obligatoire 502 Sortie Obligatoire 505 Sortie Obligatoire 507 Convertit les données de code Gray du mot spécifié en données binai- Sortie res, données BCD ou données d'angle (°) à la résolution spécifiée. Obligatoire 511 Convertit un mot de données BCD signées en un mot de données binaires signées. S Format BCD signé spécifié dans C D C: Mot de contrôle S: Mot source D: Mot de destination DOUBLE SIGNED BCDTO-BINARY BISL @BISL 472 BISL(472) Convertit des données BCD doubles signées en données binaires doubles signées. Format BCD signé spécifié dans C S D BCDS(471) BCD signé BCD signé C S C: Mot de contrôle S: Mot source D: Mot de destination BDSL(473) Format BCD signé spécifié dans C Binaire signé BCD signé Convertit des données binaires doubles signées en données BCD doubles signées. C S Format BCD signé spécifié dans C D C: Mot de contrôle S: 1er mot source D: 1er mot de destination GRAY CODE CONVERSION GRY 474 (UC série CS/CJ ver. 2.0 ou supérieure uniquement, y compris les UC CS1-H, CJ1-H et CJ1M à partir du numéro de lot 030201) Binaire signé Binaire signé Convertit un mot de données binaires signées en un mot de données BCD signées. D DOUBLE SIGNED BINARYTO-BCD BDSL @BDSL 473 Binaire signé C C: Mot de contrôle S: 1er mot source D: 1er mot de destination SIGNED BINARYTO-BCD BCDS @BCDS 471 BCD signé GRY (474) Binaire signé Binaire signé BCD signé BCD signé C S D C: Mot de contrôle S: Mot source D: 1er mot de destination 59 Chapitre 2-2 Fonction des instructions 2-2-11 Instructions logiques Instruction Mnémonique Code LOGICAL AND ANDW @ANDW 034 Symbole/ Opérande ANDW(034) I1 I2 R I1: Entrée 1 I2: Entrée 2 R: Mot de résultat DOUBLE LOGICAL AND ANDL @ANDL 610 ANDL(610) I1 I2 R I1: Entrée 1 I2: Entrée 2 R: Mot de résultat LOGICAL OR ORW @ORW 035 ORW(035) I1 I2 R I1: Entrée 1 I2: Entrée 2 R: Mot de résultat DOUBLE LOGICAL OR ORWL @ORWL 611 ORWL(611) I1 I2 R I1: Entrée 1 I2: Entrée 2 R: Mot de résultat EXCLUSIVE OR XORW @XORW 036 XORW(036) I1 I2 R I1: Entrée 1 I2: Entrée 2 R: Mot de résultat 60 Fonction Effectue le AND logique des bits correspondants dans des données mots uniques et/ou des constantes. Emplacement Condition d’exécution Page Sortie Obligatoire 517 Sortie Obligatoire 519 Sortie Obligatoire 520 Sortie Obligatoire 522 Sortie Obligatoire 524 I1. I2→ R I1 1 I2 1 R 1 1 0 0 0 1 0 0 0 0 Effectue le AND logique des bits correspondants dans des données mots doubles et/ou des constantes. (I1, I1+1). (I2, I2+1)→ (R, R+1) I1, I1+1 I2, I2+1 R, R+1 1 1 1 1 0 0 0 1 0 0 0 0 Effectue le OR logique des bits correspondants dans des données mots uniques et/ou des constantes. I1 + I2 → R I1 I2 R 1 1 1 1 0 1 0 1 1 0 0 0 Effectue le OR logique des bits correspondants dans des données mots doubles et/ou des constantes. (I1, I1+1) + (I2, I2+1) →(R, R+1) I1, I1+1 I2, I2+1 R, R+1 1 1 1 1 0 1 0 1 1 0 0 0 Effectue le OR exclusif logique des bits correspondants dans des données mots uniques et/ou des constantes. I1. I2 + I1.I2 → R I1 I2 R 1 1 0 1 0 1 0 1 1 0 0 0 Chapitre 2-2 Fonction des instructions Instruction Mnémonique Code DOUBLE EXCLUSIVE OR XORL @XORL 612 Symbole/ Opérande XORL(612) I1 I2 R I1: Entrée 1 I2: Entrée 2 R: Mot de résultat EXCLUSIVE NOR XNRW @XNRW 037 XNRW(037) I1 I2 R I1: Entrée 1 I2: Entrée 2 R: Mot de résultat DOUBLE EXCLUSIVE NOR XNRL @XNRL 613 XNRL(613) I1 I2 R I1: Entrée 1 I2: Entrée 2 R: 1er mot de résultat COMPLEMENT COM @COM 029 COM(029) Wd Fonction Effectue le OR exclusif logique des bits correspondants dans des données mots doubles et/ou des constantes. Emplacement Condition d’exécution Page Sortie Obligatoire 526 Sortie Obligatoire 528 Sortie Obligatoire 529 Sortie Obligatoire 531 Sortie Obligatoire 533 (I1, I1+1). (I2, I2+1) + (I1, I1+1). (I2, I2+1) → (R, R+1) I1, I1+1 I2, I2+1 R, R+1 1 1 0 1 0 1 0 1 1 0 0 0 Effectue le NOR exclusif logique des données mots uniques et/ou des constantes correspondants. I1. I2 + I1.I2 →R I1 I2 R 1 1 1 1 0 0 0 1 0 0 0 1 Effectue le NOR exclusif logique des bits correspondants dans des données mots doubles et/ou des constantes. (I1, I1+1). (I2, I2+1) + (I1, I1+1). (I2, I2+1) → (R, R+1) I1, I1+1 1 I2, I2+1 R, R+1 1 1 1 0 0 0 1 0 0 0 1 Passe OFF tous les bits ON et passe ON tous les bits OFF dans Wd. Wd→Wd: 1 → 0 et 0 → 1 Wd: Mot DOUBLE COMPLEMENT COML @COML 614 COML(614) Wd Passe OFF tous les bits ON et passe ON tous les bits OFF dans Wd et Wd+1. (Wd+1, Wd) → (Wd+1, Wd) Wd: Mot 61 Chapitre 2-2 Fonction des instructions 2-2-12 Instructions mathématiques spéciales Instruction Mnémonique Code BINARY ROOT ROTB @ROTB 620 Symbole/ Opérande ROTB(620) Fonction Calcule la racine carrée du contenu binaire 32 bits des mots spécifiés et sort la partie entière du résultat dans le mot de résultat spécifié. Emplacement Condition d’exécution Page Sortie Obligatoire 534 Sortie Obligatoire 536 Sortie Obligatoire 540 Sortie Obligatoire 552 Sortie Obligatoire 556 S R S: 1er mot source R: Mot de résultat BCD SQUARE ROOT ROOT @ROOT 072 ROOT(072) APR @APR 069 S R Données binaires (32 bits) Données binaires (16 bits) Calcule la racine carrée d'un nombre BCD à 8 chiffres et sort la partie entière du résultat dans le mot de résultat spécifié. S R S: 1er mot source R: Mot de résultat ARITHMETIC PROCESS S+1 APR(069) C S+1 S R Données BCD (8 chiffres) Données BCD (4 chiffres) Calcule le sinus, le cosinus ou une extrapolation linéaire des données sources. La fonction d'extrapolation linéaire permet d'établir une approximation en segments d'une relation entre X et Y. S R C: Mot de contrôle S: Données sources R: Mot de résultat FLOATING POINT DIVIDE FDIV @FDIV 079 FDIV(079) Dd Divise un nombre de 7 chiffres à virgule flottante par un autre. Les nombres à virgule flottante sont exprimés dans une notation scientifique (7 chiffres pour la mantisse et 1 chiffre pour l'exposant). Dr Quotient R Dd: 1er mot dividende Dr: 1er mot diviseur R: 1er mot de résultat BIT COUNTER BCNT @BCNT 067 BCNT(067) Dr S N: Nombre de mots S: 1er mot source R: Mot de résultat R Dd+1 Dd Compte le nombre total de bits ON dans le(s) mot(s) spécifié(s). N R 62 Dr+1 R+1 à N mots Compte le nombre de bits ON. S+(N −1) Résultat binaire R Chapitre 2-2 Fonction des instructions 2-2-13 Instructions mathématiques à virgule flottante Instruction Mnémonique Code FLOATING TO 16-BIT FIX @FIX 450 Symbole/ Opérande FIX(450) Fonction Emplacement Condition d’exécution Page Sortie Obligatoire 563 Sortie Obligatoire 565 Sortie Convertit une valeur binaire signée 16 bits en données à virgule flottante 32 bits et place le résultat dans les mots de résultat spécifiés. Obligatoire 566 Convertit une valeur à virgule flottante 32 bits en données binaires signées 16 bits et sort le résultat dans le mot de résultat spécifié. S S+1 R S: 1er mot source R: Mot de résultat FLOATING TO 32-BIT FIXL @FIXL 451 FIXL(451) R+1 R Données binaires signées (32 bits) S Au S Données binaires signées (16 bits) R Données à virgule flottante (32 bits) Convertit une valeur binaire signée 32 bits en données à virgule flottante 32 bits et sort le résultat dans les mots de résultat spécifiés. R +F(454) +F @+F 454 Données à virgule flottante (32 bits) R+1 S: 1er mot source R: 1er mot de résultat FLOATINGPOINT ADD S S FLTL(453) FLTL @FLTL 453 Données binaires signées (16 bits) S+1 R S: Mot source R: 1er mot de résultat 32-BIT TO FLOATING R S R FLT(452) FLT @FLT 452 Données à virgule flottante (32 bits) Convertit une valeur à virgule flottante 32 bits en données binaires signées 32 bits et sort le résultat dans les mots de résultat spécifiés. S: 1er mot source R: 1er mot de résultat 16-BIT TO FLOATING S S+1 S Données binaires signées (32 bits) R+1 R Données à virgule flottante (32 bits) Ajoute deux nombres à virgule flottante 32 bits et place le résultat dans les mots de résultat spécifiés. Ad Au+1 Au Cumulande (données à virgule flottante, 32 bits) Ad+1 Ad Cumulateur (données à virgule flottante, 32 bits) R+1 R Résultat (données à virgule flottante, 32 bits) R Au: 1er mot cumulande AD: 1er mot cumulateur R: 1er mot de résultat FLOATINGPOINT SUBTRACT F(455) –F @–F 455 + Soustrait un nombre à virgule flottante 32 bits d'un autre nombre et place le résultat dans les mots de résultat spécifiés. Mi Su R Mi: 1er mot à soustraire Su: 1er mot soustracteur R: 1er mot de résultat − Mi+1 Mi Su+1 Su R+1 R Sortie Obligatoire 568 Sortie Obligatoire 570 Sortie Obligatoire 572 Nombre à soustraire (données à virgule flottante, 32 bits) Nombre soustracteur (données à virgule flottante, 32 bits) Résultat (données à virgule flottante, 32 bits) 63 Chapitre 2-2 Fonction des instructions Instruction Mnémonique Code FLOATINGPOINT MULTIPLY *F @*F 456 Symbole/ Opérande *F(456) Mr R /F @/F 457 /F(457) × RAD(458) COS @COS 461 R Dd+1 Dd Dr+1 Dr R+1 R S+1 R DEG(459) S+1 S Source (radians, données 32 bits à virgule flottante) R+1 R Résultat (degrés, données 32 bits à virgule flottante) Calcule le sinus d'un nombre 32 bits à virgule flottante (en radians) et place le résultat dans les mots de résultat spécifiés. S R SIN COS(461) S R S+1 S Source (données 32 bits à virgule flottante) R+1 R Résultat (données 32 bits à virgule flottante) Calcule le cosinus d'un nombre 32 bits à virgule flottante (en radians) et place le résultat dans les mots de résultat spécifiés. COS Sortie Obligatoire 576 Sortie Obligatoire 578 Sortie Obligatoire 579 Sortie Obligatoire 581 Sortie Obligatoire 583 Résultat (radians, données 32 bits à virgule flottante) R S SIN(460) 574 Source (degrés, données 32 bits à virgule flottante) Convertit un nombre 32 bits à virgule flottante de radians en degrés et place le résultat dans les mots de résultat spécifiés. R Sortie Obligatoire Résultat (données à virgule flottante, 32 bits) S R+1 Page Dividende (données à virgule flottante, 32 bits) Diviseur (données à virgule flottante, 32 bits) S S: 1er mot source R: 1er mot de résultat 64 R+1 Convertit un nombre de 32 bits à virgule flottante de degrés en radians et place le résultat dans les mots de résultat spécifiés. S: 1er mot source R: 1er mot de résultat COSINE Mr ÷ S: 1er mot source R: 1er mot de résultat SIN @SIN 460 Mr+1 Emplacement Condition d’exécution Multiplicande (données à virgule flottante, 32 bits) Multiplicateur (données à virgule flottante, 32 bits) Résultat (données à virgule flottante, 32 bits) Divise un nombre à virgule flottante 32 bits par un autre et place le résultat dans les mots de résultat spécifiés. S: 1er mot source R: 1er mot de résultat SINE Md Dr R RADIANS TO DEGREES DEG @DEG 459 Md+1 Dd Dd: 1er mot dividende Dr: 1er mot diviseur R: 1er mot de résultat DEGREES TO RADIANS RAD @RAD 458 Multiplie deux nombres à virgule flottante 32 bits et place le résultat dans les mots de résultat spécifiés. Md Md: 1er mot multiplicande Mr: 1er mot multiplicateur R: 1er mot de résultat FLOATINGPOINT DIVIDE Fonction S+1 S Source (données 32 bits à virgule flottante) R+1 R Résultat (données 32 bits à virgule flottante) Chapitre 2-2 Fonction des instructions Instruction Mnémonique Code TANGENT TAN @TAN 462 Symbole/ Opérande TAN(462) S R Fonction Calcule la tangente d'un nombre 32 bits à virgule flottante (en radians) et place le résultat dans les mots de résultat spécifiés. TAN S: 1er mot source R: 1er mot de résultat ASIN(463) S R S: 1er mot source R: 1er mot de résultat S R+1 R ARC COSINE ACOS @ACOS 464 ACOS(464) S R S: 1er mot source R: 1er mot de résultat ARC TANGENT ATAN @ATAN 465 ATAN(465) S R S: 1er mot source R: 1er mot de résultat SQUARE ROOT SQRT @SQRT 466 SQRT(466) S+1 S R+1 R Sortie Obligatoire 587 Sortie Obligatoire 589 Sortie Obligatoire 591 Sortie Obligatoire 593 Résultat (données 32 bits à virgule flottante) S+1 S Source (données 32 bits à virgule flottante) R+1 R Résultat (données 32 bits à virgule flottante) Calcule l'arc tangente d'un nombre 32 bits à virgule flottante et place le résultat dans les mots de résultat spécifiés. (la fonction arc tangente est l'inverse de la fonction tangente ; elle retourne l'angle qui correspond à une valeur de tangente donnée). TAN−1 585 Source (données 32 bits à virgule flottante) Calcule l'arc cosinus d'un nombre 32 bits à virgule flottante et place le résultat dans les mots de résultat spécifiés. (la fonction arc cosinus est l'inverse de la fonction cosinus ; elle renvoie l'angle qui donne une valeur de cosinus donnée, comprise entre −1 et 1.) COS−1 Sortie Obligatoire Résultat (données 32 bits à virgule flottante) Calcule l'arc sinus d'un nombre 32 bits à virgule flottante et place le résultat dans les mots de résultat spécifiés. (la fonction arc sinus est l'inverse de la fonction sinus ; elle renvoie l'angle qui correspond à une valeur de sinus donnée, comprise entre −1 et 1.) SIN−1 Page Source (données 32 bits à virgule flottante) S+1 ARC SINE ASIN @ASIN 463 Emplacement Condition d’exécution S+1 S R+1 R Source (données 32 bits à virgule flottante) Résultat (données 32 bits à virgule flottante) Calcule la racine carrée d'un nombre 32 bits à virgule flottante et place le résultat dans les mots de résultat spécifiés. S R S: 1er mot source R: 1er mot de résultat S+1 S Source (données 32 bits à virgule flottante) R+1 R Résultat (données 32 bits à virgule flottante) 65 Chapitre 2-2 Fonction des instructions Instruction Mnémonique Code EXPONENT EXP @EXP 467 Symbole/ Opérande EXP(467) Fonction Calcule l'exponentiel naturel (base e) d'un nombre de 32 bits à virgule flottante et place le résultat dans les mots de résultat LOG @LOG 468 R S+1 LOG(468) S R PWR(840) B R+1 B: 1er mot de base E: 1er mot exponentiel R: 1er mot de résultat Utilisation de LD : Symbole, option S1 S2 Utilisation de AND : Symbole, option S1 S2 Utilisation de OR : Symbole, option S1 S2 S1: Donnée de comparaison 1 S2: Donnée de comparaison 2 66 595 Sortie Obligatoire 597 Sortie Obligatoire 599 LD : non obligatoire 600 Résultat (données 32 bits à virgule flottante) R Calcule le logarithme naturel (base e) d'un nombre de 32 bits à virgule flottante et place le résultat dans les mots de résultat spécifiés. S+1 loge Source (données 32 bits à virgule flottante) S R+1 Résultat (données 32 bits à virgule flottante) R Elève un nombre 32 bits à virgule flottante à la puissance d'un autre nombre de 32 bits à virgule flottante. Puissance E R FLOATING SYMBOL COMPARISON (CS1-H, CJ1-H, CJ1M ou CS1D uniquement) LD, AND. ou OR + =F (329), <>F (330), <F (331), <=F (332), >F (333), ou >=F (334) Sortie Obligatoire Source (données 32 bits à virgule flottante) S e S: 1er mot source R: 1er mot de résultat EXPONENTIAL POWER PWR @PWR 840 Page S S: 1er mot source R: 1er mot de résultat LOGARITHM Emplacement Condition d’exécution E+1 B+1 S E R+1 R Base Compare les données simple précision (32 bits) ou les constantes spécifiées et crée une condition d'exécution ON si le résultat de la comparaison est vrai. Trois types de symboles peuvent être utilisés avec les instructions de comparaison de symboles à virgule flottante : LD (Load), AND et OR. AND ou OR : obligatoire Chapitre 2-2 Fonction des instructions Instruction Mnémonique Code FLOATINGPOINT TO ASCII (CS1-H, CJ1-H, CJ1M ou CS1D uniquement) FSTR @FSTR 448 Symbole/ Opérande FSTR(448) Fonction Emplacement Condition d’exécution Page Convertit les données à virgule flottante simple précision (format à virgule décimale ou exponentiel 32 bits) spécifiées en chaîne de caractères (ASCII) et place le résultat dans le mot de destination. Sortie obligatoire 604 Convertit la chaîne de caractères (ASCII) spécifiée représentant les données à virgule flottante simple précision (format à virgule décimale ou exponentiel) en données à virgule flottante simple précision 32 bits et sort le résultat dans les mots de destination. Sortie obligatoire 609 S C D S: 1er mot source C: Mot de contrôle D: Mot de destination ASCII TO FLOATINGFVAL(449) POINT (CS1-H, CJ1-H, CJ1M ou S CS1D D uniquement) FVAL @FVAL S: Mot source 449 D: 1er mot de destination 2-2-14 Instructions à virgule flottante double précision Les instructions à virgule flottante double précision sont prises en charge uniquement par les UC CS1-H, CJ1-H, CJ1M et CS1D. Instruction Mnémonique Code DOUBLE FLOATING TO 16-BIT BINARY FIXD @FIXD 841 Symbole/ Opérande FIXD(841) S Fonction Emplacement Page Condition d’exécution Convertit les données à virgule flottante double précision spécifiées (64 bits) en données binaires 16 bits signées et sort le résultat dans le mot de destination. Sortie Obligatoire 620 Convertit les données à virgule flottante double précision spécifiées (64 bits) en données binaires 32 bits signées et sort le résultat dans les mots de destination. Sortie Obligatoire 621 Convertit les données binaires 16 bits signées spécifiées en données à virgule flottante double précision (64 bits) et sort le résultat dans les mots de destination. Sortie Obligatoire 623 D S: 1er mot source D: Mot de destination DOUBLE FLOATING TO 32-BIT BINARY FIXLD @FIXLD 842 FIXLD(842) S D S: 1er mot source D: 1er mot de destination 16-BIT BINARY TO DOUBLE FLOATING DBL @DBL 843 DBL(843) S D S: Mot source D: 1er mot de destination 67 Chapitre 2-2 Fonction des instructions Instruction Mnémonique Code 32-BIT BINARY TO DOUBLE FLOATING DBLL @DBLL 844 Symbole/ Opérande DBLL(844) S Fonction Emplacement Page Condition d’exécution Convertit les données binaires 32 bits signées spécifiées en données à virgule flottante double précision (64 bits) et sort le résultat dans les mots de destination. Sortie Obligatoire 624 Ajoute les valeurs à virgule flottante double précision spécifiées (64 bits chacune) et sort le résultat dans les mots de résultat. Sortie Obligatoire 626 Soustrait les valeurs à virgule flottante double précision spécifiées (64 bits chacune) et sort le résultat dans les mots de résultat. Sortie Obligatoire 628 Multiplie les valeurs à virgule flottante double précision spécifiées (64 bits chacune) et sort le résultat dans les mots de résultat. Sortie Obligatoire 630 Divise les valeurs à virgule flottante double précision spécifiées (64 bits chacune) et sort le résultat dans les mots de résultat. Sortie Obligatoire 632 D S: 1er mot source D: 1er mot de destination DOUBLE FLOATINGPOINT ADD +D(845) +D @+D 845 Au Ad R Au: 1er mot cumulande Ad: 1er mot cumulateur R: 1er mot de résultat DOUBLE FLOATINGPOINT SUBTRACT −D(846) Mi −D @−D 846 Su R Mi: 1er mot à soustraire Su: 1er mot soustracteur R: 1er mot de résultat DOUBLE FLOATINGPOINT MULTIPLY *D @*D 847 *D(847) Md Mr R Md: 1er mot multiplicande Mr: 1er mot multiplicateur R: 1er mot de résultat DOUBLE FLOATINGPOINT DIVIDE /D @/D 848 /D(848) Dd Dr R Dd: 1er mot dividende Dr: 1er mot diviseur R: 1er mot de résultat 68 Chapitre 2-2 Fonction des instructions Instruction Mnémonique Code DOUBLE DEGREES TO RADIANS RADD @RADD 849 DOUBLE RADIANS TO DEGREES DEGD @DEGD 850 DOUBLE SINE SIND @SIND 851 Symbole/ Opérande RADD(849) S Fonction Emplacement Page Condition d’exécution Convertit les données à virgule flottante double précision spécifiées Sortie (64 bits) de degrés en radians et sort le résultat dans les mots de résul- Obligatoire tat. 634 Convertit les données à virgule flottante double précision spécifiées Sortie (64 bits) de radians en degrés et sort le résultat dans les mots de résul- Obligatoire tat. 636 Calcule le sinus de l'angle (radians) dans les données à virgule flottante Sortie double précision spécifiées (64 bits) et sort le résultat dans les mots de Obligatoire résultat. 637 Calcule le cosinus de l'angle (radians) dans les données à virgule flottante double précision spécifiées (64 bits) et sort le résultat dans les mots de résultat. Sortie Obligatoire 639 Calcule la tangente de l'angle (radians) dans les données à virgule flottante double précision spécifiées (64 bits) et sort le résultat dans les mots de résultat. Sortie Obligatoire 641 Calcule l'angle (en radians) à partir de la valeur du sinus dans les données à virgule flottante double précision spécifiées (64 bits) et sort le résultat dans les mots de résultat (la fonction arc sinus est l'inverse de la fonction sinus ; elle retourne l'angle qui correspond à une valeur de sinus donnée, comprise entre -1 et 1). Sortie Obligatoire 643 Calcule l'angle (en radians) à partir de la valeur du cosinus dans les données à virgule flottante double précision spécifiées (64 bits) et sort le résultat dans les mots de résultat (la fonction arc cosinus est l'inverse de la fonction cosinus ; elle retourne l'angle qui correspond à une valeur de cosinus donnée, comprise entre -1 et 1). Sortie Obligatoire 645 R S: 1er mot source R: 1er mot de résultat DEGD(850) S R S: 1er mot source R: 1er mot de résultat SIND(851) S R S: 1er mot source R: 1er mot de résultat DOUBLE COSINE COSD(852) COSD @COSD 852 S R S: 1er mot source R: 1er mot de résultat DOUBLE TANGENT TAND @TAND 853 TAND(853) S R S: 1er mot source R: 1er mot de résultat DOUBLE ARC SINE ASIND @ASIND 854 ASIND(854) S R S: 1er mot source R: 1er mot de résultat DOUBLE ARC COSINE ACOSD @ACOSD 855 ACOSD(855) S R S: 1er mot source R: 1er mot de résultat 69 Chapitre 2-2 Fonction des instructions Instruction Mnémonique Code DOUBLE ARC TANGENT ATAND @ATAND 856 Symbole/ Opérande ATAND(856) S R Fonction Emplacement Page Condition d’exécution Calcule l'angle (en radians) à partir de la valeur de la tangente dans les données à virgule flottante double précision spécifiées (64 bits) et sort le résultat dans les mots de résultat (la fonction arc tangente est l'inverse de la fonction tangente ; elle retourne l'angle qui correspond à une valeur de tangente donnée). Sortie Obligatoire 647 Calcule la racine carrée des données à virgule flottante double précision spécifiées (64 bits) et sort le résultat dans les mots de résultat. Sortie Obligatoire 649 Calcule l'exponentiel naturel (base e) des données à virgule flottante double précision spécifiées (64 bits) et sort le résultat dans les mots de résultat. Sortie Obligatoire 651 Calcule le logarithme naturel (base e) des données à virgule flottante double précision spécifiées (64 bits) et sort le résultat dans les mots de résultat. Sortie Obligatoire 653 Elève un nombre à virgule flottante double précision (64 bits) à la puissance d'un autre nombre à virgule flottante double précision et sort le résultat dans les mots de résultat. Sortie Obligatoire 655 Compare les données double précision spécifiées (64 bits) et crée une condition d'exécution ON si le résultat de la comparaison est vrai. Trois types de symboles peuvent être utilisés avec les instructions de comparaison de symboles à virgule flottante : LD (Load), AND et OR. LD : non obligatoire 657 S: 1er mot source R: 1er mot de résultat DOUBLE SQUARE ROOT SQRTD @SQRTD 857 SQRTD(857) S R S: 1er mot source R: 1er mot de résultat DOUBLE EXPONENT EXPD(858) EXPD @EXPD 858 S R S: 1er mot source R: 1er mot de résultat DOUBLE LOGARITHM LOGD @LOGD 859 LOGD(859) S R S: 1er mot source R: 1er mot de résultat DOUBLE EXPONENTIAL POWER PWRD @PWRD 860 PWRD(860) B E R B: 1er mot de base E: 1er mot exponentiel R: 1er mot de résultat DOUBLE SYMBOL COMPARISON LD, AND. ou OR + =D (335), <>D (336), <D (337), <=D (338), >D (339), ou >=D (340) Utilisation de LD : Symbole, option S1 S2 Utilisation de AND : Symbole, option S1 S2 Utilisation de OR : Symbole, option S1 S2 S1: Donnée de comparaison 1 S2: Donnée de comparaison 2 70 AND ou OR : obligatoire Chapitre 2-2 Fonction des instructions 2-2-15 Instructions de traitement des données de tableaux Instruction Mnémonique Code SET STACK SSET @SSET 630 Symbole/ Opérande SSET(630) Fonction Définit une pile de la longueur spécifiée commençant au mot spécifié et met à zéro les mots dans la zone de données. TB Sortie Obligatoire 666 Sortie Obligatoire 669 Sortie Obligatoire 675 Sortie Obligatoire 672 Adresse mémoire E/S interne N TB: 1ère adresse de pile N: Nombre de mots Emplacement Page Condition d’exécution TB m+(N−1) TB+1 N mots dans la pile TB+2 Dernier mot de la pile TB+3 Pointeur de pile m+(N−1) PUSH ONTO STACK PUSH @PUSH 632 PUSH(632) Adresse mémoire E/S interne TB S TB: 1ère adresse de pile S: Mot source LAST IN FIRST OUT LIFO @LIFO 634 Ecrit un mot de données dans la pile spécifiée. LIFO(634) TB D TB: 1ère adresse de pile D: Mot de destination Adresse mémoire E/S interne TB TB TB+1 TB+1 TB+2 TB+2 PUSH(632) TB+3 TB+3 Lit le dernier mot de données écrit dans la pile spécifiée (les données de la pile les plus récentes). Adresse mémoire E/S interne Pointeur de pile TB Adresse mémoire E/S interne TB Données les plus TB+1 récentes TB+2 TB+1 TB+2 m−1 TB+3 TB+3 Pointeur de pile m−1 m−1 A reste inchangé. Dernier entré, premier sorti Le pointeur est décrémenté. FIRST IN FIRST OUT FIFO @FIFO 633 FIFO(633) Lit le premier mot de données écrit dans la pile spécifiée (les données de la pile les plus anciennes). TB Adresse mémoire E/S interne D TB: 1ère adresse de pile D: Mot de destination TB Pointeur de pile TB+1 TB+2 TB+3 Données les plus anciennes Adresse mémoire E/S interne TB TB+1 TB+2 TB+3 m−1 Pointeur de pile m−1 Premier entré, premier sorti 71 Chapitre 2-2 Fonction des instructions Instruction Mnémonique Code DIMENSION RECORD TABLE DIM @DIM 631 Symbole/ Opérande DIM(631) N Fonction Emplacement Page Condition d’exécution Définit un tableau d'enregistrements en déclarant la longueur de chaque enregistrement et le nombre d'enregistrements. Il est possible de définir jusqu'à 16 tableaux d'enregistrements. Numéro de tableau (N) LR Sortie Obligatoire 678 Sortie Obligatoire 681 Sortie Obligatoire 683 Sortie Obligatoire 685 Enregistrement 1 NR TB N: Numéro de tableau LR: Longueur de chaque enregistrement NR: Nombre d'enregistrements TB: 1er mot du tableau SET RECORD LOCATION SETR @SETR 635 SETR(635) N R Nombre d'enregistrements LR × NR mots Enregistrement NR Ecrit l'emplacement de l'enregistrement spécifié (l'adresse mémoire E/S interne du début de l'enregistrement) dans le registre d'index spécifié. Adresse mémoire Numéro de tableau (N) E/S interne D R N: Numéro de tableau R: Numéro d'enregistrement D: Registre d'index de destination GET RECORD NUMBER GETR @GETR 636 GETR(636) Numéro d'enregistrement (R) SETR(635) écrit l'adresse mémoire E/S interne (m) du premier mot de l'enregistrement R dans le registre d'index D. Renvoie le numéro de l'enregistrement à l'adresse mémoire E/S interne contenue dans le registre d'index spécifié. N Numéro de tableau (N) IR Adresse mémoire E/S interne D N: Numéro de tableau IR: Registre d'index D: Mot de destination GETR(636) écrit le numéro de l'enregistrement qui inclut l'adresse mémoire E/S (m) dans D. Numéro d'enregistrement (R) IR n DATA SEARCH SRCH @SRCH 181 SRCH(181) C R1 Cd C: 1er mot de contrôle R1: 1er mot de la plage CD: Donnée de comparaison 72 Recherche un mot de données dans une plage de mots. Adresse mémoire E/S interne R1 Recherche C R1+(C-1) Cd Correspondance Chapitre 2-2 Fonction des instructions Instruction Mnémonique Code SWAP BYTES SWAP @SWAP 637 Symbole/ Opérande SWAP(637) N MAX @MAX 182 Permute l'octet le plus à gauche et l'octet le plus à droite dans tous les mots de la plage. Permute la position des octets. MAX(182) R1 MIN(183) Recherche la valeur maximale dans la plage. Adresse mémoire E/S interne 689 Sortie Obligatoire 693 Sortie Obligatoire 697 Sortie Obligatoire 700 Mots C Valeur max. R1+(W −1) Recherche la valeur minimale dans la plage. Adresse mémoire E/S interne R1 D C: 1er mot de contrôle R1: 1er mot de la plage D: Mot de destination SUM(184) Mots C Valeur min. R1+(W-1) Ajoute les octets ou les mots dans la plage et place le résultat dans deux mots. C R1 D C: 1er mot de contrôle R1: 1er mot de la plage D: 1er mot de destination FRAME CHECKSUM FCS @FCS 180 Sortie Obligatoire R1 C R1 SUM @SUM 184 687 N C C: 1er mot de contrôle R1: 1er mot de la plage D: Mot de destination SUM Sortie Obligatoire R1 D FIND MINIMUM MIN @MIN 183 Emplacement Page Condition d’exécution R1 N: Nombre de mots R1: 1er mot de la plage FIND MAXIMUM Fonction FCS(180) C R1 ) R1+(W–1) Calcule la valeur FCS ASCII pour la plage spécifiée. R1 Unités C R1 D C: 1er mot de contrôle R1: 1er mot de la plage D: 1er mot de destination Calcul Conversion ASCII Valeur FCS 73 Chapitre 2-2 Fonction des instructions Instruction Mnémonique Code Symbole/ Opérande Fonction Emplacement Page Condition d’exécution STACK SIZE READ (CS1-H, SNUM(638) CJ1-H, CJ1M ou CS1D TB uniquement) D SNUM @SNUM TB: Première 638 adresse de la pile D: Mot de destination Compte le nombre de données de pile (nombre de mots) dans la pile spécifiée. Sortie obligatoire 704 STACK DATA SREAD(639) READ (CS1-H, CJ1-H, CJ1M TB ou CS1D uniquement) C SREAD D @SREAD 639 TB: Première adresse de la pile C: Valeur de décalage D: Mot de destination Lit les données d'un élément de données spécifié dans la pile. La valeur de décalage indique l'emplacement de l'élément de données voulu (nombre d'éléments de données avant la position actuelle du pointeur). Sortie obligatoire 707 STACK DATA OVERWRITE (CS1-H, CJ1-H, CJ1M ou CS1D uniquement) SWRIT @SWRIT 640 Ecrit les données sources dans l'élément de données spécifié dans la pile Sortie obliga(en écrasant les données existantes). La valeur de décalage indique toire l'emplacement de l'élément de données voulu (nombre d'éléments de données avant la position actuelle du pointeur). 710 Insère les données sources à l'emplacement spécifié dans la pile et décale le reste des données de la pile vers le bas. La valeur de décalage indique l'emplacement du point d'insertion (nombre d'éléments de données avant la position actuelle du pointeur). Sortie obligatoire 713 Supprime l'élément de données à l'emplacement spécifié dans la pile et décale le reste des données de la pile vers le haut. La valeur de décalage indique l'emplacement du point de suppression (nombre d'éléments de données avant la position actuelle du pointeur). Sortie obligatoire 716 STACK DATA INSERT (CS1H, CJ1-H, CJ1M ou CS1D uniquement) SINS @SINS 641 STACK DATA DELETE (CS1H, CJ1-H, CJ1M ou CS1D uniquement) SDEL @SDEL 642 74 SWRIT(640) TB C S TB: Première adresse de la pile C: Valeur de décalage S: Données sources SINS(641) TB C S TB: Première adresse de la pile C: Valeur de décalage S: Données sources SDEL(642) TB C D TB: Première adresse de la pile C: Valeur de décalage D: Mot de destination Chapitre 2-2 Fonction des instructions 2-2-16 Instructions de contrôle de données Instruction Mnémonique Code PID CONTROL PID 190 Symbole/ Opérande PID(190) Fonction Emplacement Condition d’exécution Page Sortie Obligatoire 720 Exécute le contrôle PID en fonction des paramètres spécifiés. Les constantes PID peuvent être réglées automatiquement par PIDAT(191). Sortie obligatoire 731 Contrôle les données de sortie en fonction des données d'entrée (selon qu'elles sont comprises ou non entre les limites supérieure et inférieure). Sortie Obligatoire 741 Sortie Obligatoire 743 Exécute le contrôle PID en fonction des paramètres spécifiés. Paramètres (C à C+8) S C D Entrée PV (S) S: Mot d'entrée C: 1er mot paramètre D: Mot de sortie PID CONTROL WITH AUTOTUNING PIDAT 191 (CS1-H, CJ1-H ou CJ1M uniquement) PIDAT(191) S Contrôle PID Variable manipulée (D) C D S: Mot d'entrée C: 1er mot paramètre D: Mot de sortie LIMIT CONTROL LMT @LMT 680 LMT(680) S C D S: Mot d'entrée C: 1er mot limite D: Mot de sortie Limite supérieure C+1 Limite inférieure C DEAD BAND CONTROL BAND @BAND 681 BAND(681) S Contrôle les données de sortie en fonction des données d'entrée (selon qu'elles sont comprises ou non dans la bande morte). Sortie C D S: Mot d'entrée C: 1er mot limite D: Mot de sortie Limite inférieure (C) Entrée Limite supérieure (C+1) 75 Chapitre 2-2 Fonction des instructions Instruction Mnémonique Code DEAD ZONE CONTROL ZONE @ZONE 682 Symbole/ Opérande ZONE(682) Fonction Emplacement Condition d’exécution Page Sortie Obligatoire 746 Sortie Saisit le taux de service ou la variable manipulée à partir du mot Obligatoire spécifié, convertit le taux de service en une sortie proportionnelle au temps en fonction des paramètres spécifiés et sort le résultat à partir de la sortie spécifiée. 749 Sortie Obligatoire 757 Ajoute la pente spécifiée aux données d'entrée et sort le résultat. Sortie S C D Pente positive (C+1) S: Mot d'entrée C: 1er mot limite D: Mot de sortie TIMETPO (685) PROPORTIONAL OUTPUT S TPO C 685 (UC série CS/CJ R ver. 2.0 ou supérieure S: Mot d'entrée uniquement) C: 1er mot paramètre R: Bit de sortie d'impulsions SCALING SCL @SCL 194 SCL(194) S Entrée Pente négative (C) Convertit les données binaires non signées en données BCD non signées selon la fonction linéaire spécifiée. R (BCD non signée) P1 R S: Mot source P1: 1er mot paramètre R: Mot de résultat Point B Point A La mise à l'échelle est effectuée selon la fonction linéaire définie par les points A et B. P P1 + 1 P1 +2 P1 +3 (BCD) (BIN) (BCD) (BIN) S (binaire non signé) 76 Valeur convertie Valeur convertie Chapitre 2-2 Fonction des instructions Instruction Mnémonique Code SCALING 2 SCL2 @SCL2 486 Symbole/ Opérande SCL2(486) S Fonction Convertit les données binaires signées en données BCD signées selon la fonction linéaire spécifiée. Vous pouvez entrer un décalage en définissant la fonction linéaire. P1 Décalage positif R R (BCD signé) Emplacement Condition d’exécution Page Sortie Obligatoire 762 Décalage négatif R (BCD signé) S: Mot source P1: 1er mot paramètre R: Mot de résultat ∆Y ∆Y Décalage ∆X ∆X S (binaire signé) S (binaire signé) Décalage Décalage de 0000 P1 Décalage ∆Y P1 + 1 ∆X P1 +2 (binaire signé) R (BCD signé) (binaire signé) (BCD signé) ∆Y Décalage = 0000 hex ∆X S (binaire signé) 77 Chapitre 2-2 Fonction des instructions Instruction Mnémonique Code SCALING 3 SCL3 @SCL3 487 Symbole/ Opérande SCL3(487) S P1 R S: Mot source P1: 1er mot paramètre R: Mot de résultat Fonction Convertit les données BCD signées en données binaires signées selon la fonction linéaire spécifiée. Vous pouvez entrer un décalage en définissant la fonction linéaire. Décalage positif Décalage négatif R (binaire signé) R (binaire signé) Emplacement Condition d’exécution Page Sortie Obligatoire 766 Sortie Obligatoire 769 Conversion max. Conversion max. ∆Y ∆Y ∆X Décalage Conversion min. ∆X S (BCD signé) Décalage S (BCD signé) Conversion min. Décalage de 0000 R (binaire signé) Conversion max. ∆Y ∆X S (BCD signé) Conversion min. AVERAGE AVG 195 AVG(195) S Calcule la valeur moyenne d'un mot d'entrée pour le nombre de cycles spécifié. S: Mot source N R S: Mot source N: Nombre de cycles R: Mot de résultat N: Nombre de cycles R R+1 Pointeur Drapeau de moyenne valide Moyenne R +2 R +3 N valeurs R+N+1 78 Chapitre 2-2 Fonction des instructions 2-2-17 Instructions de sous-programme Instruction Mnémonique Code Symbole/ Opérande SUBROUTINE SBS(091) CALL SBS N @SBS 091 N: Numéro de sous-programme Fonction Appelle le sous-programme correspondant au numéro spécifié et l'exécute. Condition d'exécution ON Emplacement Condition d’exécution Page Sortie Obligatoire 773 Sortie Obligatoire 779 Sortie non obligatoire 783 Sortie non obligatoire 786 Programme principal Sousprogramme (SBN(092) à RET(093)) Fin de programme MACRO MCRO @MCRO 099 MCRO(099) N S Appelle le sous-programme correspondant au numéro spécifié et l'exécute en utilisant les paramètres d'entrée inclus dans S à S+3 et les paramètres de sortie inclus dans D à D+3. MCRO(099) D N: Numéro de sous-programme S: 1er mot paramètre entrée D: 1er mot paramètre sortie Exécution du sousprogramme entre SBN(092) et RET(093). MCRO(099) Le sous-programme utilise A600 à A603 comme entrées et A604 à A607 comme sorties. SUBROUTINE ENTRY SBN 092 SBN(092) Indique le début du sous-programme correspondant au numéro spécifié. N N: Numéro de sous-programme ou Zone de sous-programme SUBROUTINE RETURN RET 093 RET(093) Indique la fin d'un sous-programme. 79 Chapitre 2-2 Fonction des instructions Instruction Mnémonique Code Symbole/ Opérande Fonction Emplacement Condition d’exécution Page GLOBAL SUBROUTINE GSBS(750) CALL (CS1-H, N CJ1-H, CJ1M ou CS1D N: Numéro de uniquement) GSBS sous-programme 750 Appelle le sous-programme correspondant au numéro spécifié et l'exécute. Sortie non obligatoire 786 GLOBAL SUBROUTINE GSBN(751) ENTRY (CS1-H, N CJ1-H, CJ1M ou CS1D N: Numéro de uniquement) GSBN sous-programme 751 Indique le début du sous-programme correspondant au numéro spécifié. Sortie non obligatoire 794 GLOBAL SUBROUTINE RETURN (CS1-H, CJ1-H, CJ1M ou CS1D uniquement) GRET 752 Indique la fin d'un sous-programme. Sortie non obligatoire 797 Emplacement Condition d’exécution Page Sortie Obligatoire 798 Sortie Obligatoire 804 GRET(752) 2-2-18 Instructions de contrôle des interruptions Instruction Mnémonique Code SET INTERRUPT MASK (Non prise en charge par les UC CS1D pour systèmes d'UC en duplex.) MSKS @MSKS 690 Symbole/ Opérande MSKS(690) N S N: Identificateur d'interruption S: Données d'interruption Fonction Définit le traitement pour les interruptions E/S ou interruptions programmées. Les tâches d'interruption E/S et les tâches d'interruption programmées sont masquées (désactivées) lorsque l'API est mis sous tension pour la première fois. Vous pouvez utiliser MSKS(690) pour démasquer ou masquer les interruptions E/S et définir les intervalles de temps des interruptions programmées. Cartes d'entrée d'interruption 0 à 3 Interruption E/S Interruption programmée READ INTERRUPT MASK (Non prise en charge par les UC CS1D pour systèmes d'UC en duplex.) MSKR @MSKR 692 80 MSKR(692) N D N: Identificateur d'interruption D: Mot de destination Masque (1) ou démasque (0) les entrées d'interruption 0 à 7. Intervalle Définit le temps d'interruption programmé. Lit les paramètres de traitement des interruptions courants qui ont été définis avec MSKS(690). Chapitre 2-2 Fonction des instructions Instruction Mnémonique Code CLEAR INTERRUPT (Non prise en charge par les UC CS1D pour systèmes d'UC en duplex.) CLI @CLI 691 Symbole/ Opérande Fonction N Efface ou conserve les entrées d'interruption sauvegardées pour les interruptions E/S ou définit le délai jusqu'à la première interruption programmée pour les interruptions programmées. S N=0à3 CLI(691) N: Identificateur d'interruption S: Données d'interruption Entrée d'interruption n Entrée d'interruption n Etat interne Etat interne Interruption sauvegardée effacée Emplacement Condition d’exécution Page Sortie Obligatoire 809 Sortie Obligatoire 814 Sortie non obligatoire 816 Interruption sauvegardée conservée N=4à5 MSKS(690) Exécution de la tâche d'interruption programmée. Temps jusqu'à la première interruption programmée DISABLE INTERRUPTS DI(693) DI @DI 693 Désactive l'exécution de toutes les tâches d'interruption à l'exception de la tâche d'interruption de mise hors tension. Désactive l'exécution de toutes les tâches d'interruption (à l'exception de la tâche d'interruption de mise hors tension). ENABLE INTERRUPTS EI(694) EI 694 Active l'exécution de toutes les tâches d'interruption qui ont été désactivées par DI(693). Désactive l'exécution de toutes les tâches d'interruption (à l'exception de la tâche d'interruption de mise hors tension). Active l'exécution de toutes les tâches d'interruption désactivées. 81 Chapitre 2-2 Fonction des instructions 2-2-19 Instructions de compteur à grande vitesse et de sortie d'impulsions (CJ1M-CPU21/22/23 uniquement) Emplacement Condition d’exécution Page INI(880) permet de démarrer et d'interrompre la comparaison des valeurs cibles, de changer la valeur actuelle (PV) d'un compteur à grande vitesse, de changer la PV d'une entrée d'interruption (mode compteur), de changer la PV d'une sortie d'impulsions ou d'arrêter la sortie d'impulsions. Sortie Obligatoire 823 PRV(881) permet de lire la valeur actuelle (PV) d'un compteur à grande vitesse, d'une sortie d'impulsions ou d'une entrée d'interruption (mode compteur). Sortie Obligatoire 827 COUNTER PRV2 FREQUENCY CONVERT C1 PRV2 C2 883 (UC CJ1M ver. 2.0 D ou supérieure C1 : Données de uniquement) contrôle C2 : Impulsions / tour D : 1er mot de destination Lit l'entrée de la fréquence d'impulsion sur un compteur à grande vitesse et convertit la fréquence en vitesse de rotation (nombre de tours) ou convertit la valeur actuelle (PV) du compteur en nombre total de tours. Le résultat est sorti sur les mots de destination en 8 chiffres hexadécimaux. Les impulsions peuvent être entrées à partir du compteur à grande vitesse 0 seulement. Sortie Obligatoire 833 COMPARISON TABLE LOAD CTBL @CTBL 882 CTBL(882) permet de comparer la valeur actuelle (PV) d'un compteur à grande vitesse par rapport à des plages ou des valeurs cibles. Sortie Obligatoire 837 SPED(885) permet de spécifier la fréquence et d'exécuter la sortie d'impulsions sans accélération ni décélération. Sortie Obligatoire 841 Instruction Mnémonique Code MODE CONTROL INI @INI 880 Symbole/ Opérande INI P C Fonction NV P : Identificateur de port C : Données de contrôle NV : 1er mot avec nouvelle PV HIGH-SPEED COUNTER PV READ PRV @PRV 881 PRV P C D P : Identificateur de port C : Données de contrôle D : 1er mot de destination CTBL P C TB P : Identificateur de port C : Données de contrôle TB : 1er mot du tableau de comparaison SPEED OUTPUT SPED @SPED 885 SPED P M F P : Identificateur de port M: Mode de sortie F : 1er mot de fréquence d'impulsion 82 Chapitre 2-2 Fonction des instructions Instruction Mnémonique Code SET PULSES PULS @PULS 886 Symbole/ Opérande PULS Fonction Emplacement Condition d’exécution Page PULS(886) permet de définir le nombre d'impulsions pour la sortie d'impulsions. Sortie Obligatoire 846 PLS2(887) permet de définir la fréquence d'impulsion et les taux d'accélération/décélération, et d'exécuter la sortie d'impulsions avec accélération/décélération (avec des taux d'accélération/décélération différents). Seul le positionnement est possible. Sortie Obligatoire 849 ACC(888) permet de définir la fréquence d'impulsion et les taux d'accélération/décélération, et d'exécuter la sortie d'impulsions avec accélération/décélération (avec le même taux d'accélération/ décélération). Le contrôle de position et vitesse sont possibles. Sortie Obligatoire 855 ORG(889) permet d'exécuter des recherches d'origine et des retours. Sortie Obligatoire 862 PWM(891) permet de sortir des impulsions avec un coefficient d'exploitation variable. Sortie Obligatoire 865 P T N P : Identificateur de port T : Type d'impulsion N: Nombre d'impulsions PULSE OUTPUT PLS2 @PLS2 887 PLS2 P M S F P : Identificateur de port M : Mode de sortie S: 1er mot du tableau de paramètres F : 1er mot de la fréquence de démarrage ACCELERATION CONTROL ACC @ACC 888 ACC P M S P : Identificateur de port M: Mode de sortie S: 1er mot du tableau de paramètres ORIGIN SEARCH ORG @ORG 889 ORG P C P : Identificateur de port C : Données de contrôle PULSE WITH VARIABLE DUTY FACTOR PWM @ 891 PWM P F D P : Identificateur de port F : Fréquence D : Coefficient d'exploitation 83 Chapitre 2-2 Fonction des instructions 2-2-20 Instructions de pas Instruction Mnémonique Code Symbole/ Opérande STEP DEFINE STEP 008 STEP(008) B B: Bit STEP START SNXT 009 SNXT(009) B Fonction Emplacement Condition d’exécution Page STEP(008) fonctionne de 2 façons, en fonction de sa position et selon qu'un bit de contrôle a été spécifié ou non. (1)Démarre un pas spécifique. (2)Termine la zone de programmation par pas (c'est-à-dire exécution par pas). Sortie Obligatoire 868 SNXT(009) est utilisée de trois façons : (1)Pour démarrer l'exécution de la programmation par pas. (2)Pour passer au bit de contrôle de pas suivant. (3)Pour arrêter l'exécution de la programmation par pas. Sortie Obligatoire 868 Emplacement Condition d’exécution Page Sortie Obligatoire 885 Sortie Obligatoire 888 B: Bit 2-2-21 Instructions des cartes d’E/S standard Instruction Mnémonique Code I/O REFRESH IORF @IORF 097 Symbole/ Opérande IORF(097) St E St: Mot de départ E: Mot de fin Fonction Rafraîchit les mots E/S spécifiés. Zone de bits E/S ou zone de bits de carte E/S spéciale St Carte E/S ou carte E/S spéciale Rafraîchissement E/S E 7-SEGMENT DECODER SDEC @SDEC 078 SDEC(078) S Convertit le contenu hexadécimal des chiffres désignés en code d'affichage 8 bits, 7 segments et le place dans les 8 bits supérieurs ou inférieurs des mots de destination spécifiés. Di Di Nombre de chiffres D S: Mot source Di: Désignateur de chiffre D: 1er mot de destination Premier chiffre à convertir 8 bits les plus à droite (0) 7 segments 84 Chapitre 2-2 Fonction des instructions Symbole/ Opérande Instruction Mnémonique Code DIGITAL SWITCH INPUT DSW 210 (UC série CS/CJ ver. 2.0 ou supérieure uniquement) DSW (210) I O Fonction Emplacement Condition d’exécution Page Sortie Lit la valeur définie sur un interrupteur numérique externe (ou un interrupteur à roue codeuse) raccordé à une carte d'entrée ou une carte Obligatoire de sortie et enregistre les données BCD (4 ou 8 chiffres) dans les mots spécifiés. 890 Lit les données numériques à partir d'un clavier de dix touches raccordé Sortie Obligatoire à une carte d'entrée et enregistre jusqu'à 8 chiffres de données BCD dans les mots spécifiés. 896 Lit des données numériques à partir d'un clavier hexadécimal raccordé Sortie Obligatoire à une carte d'entrée et une carte de sortie, et enregistre jusqu'à 8 chiffres de données hexadécimales dans les mots spécifiés. 899 Sortie Entre jusqu'à 64 signaux à partir d'une matrice de 8 × 8 connectée à Obligatoire une carte d'entrée et une carte de sortie (avec 8 points d'entrée et 8 points de sortie) et enregistre ces données 64 bits dans les 4 mots de destination. 904 D C1 C2 I: Mot d'entrée de données (D0 à D3) O: Mot de sortie D: 1er mot de résultat C1: Nombre de chiffres C2: Mot système TEN KEY INPUT TKY 211 (UC série CS/CJ ver. 2.0 ou supérieure uniquement) TKY (211) I D1 D2 I: Mot d'entrée de données D1: 1er mot registre D2: Mot d'entrée touche HEXADECIMAL KEY INPUT HKY 212 (UC série CS/CJ ver. 2.0 ou supérieure uniquement) HKY (212) I O D C I: Mot d'entrée de données O: Mot de sortie D: 1er mot registre C: Mot système MATRIX INPUT MTR 213 (UC série CS/CJ ver. 2.0 ou supérieure uniquement) MTR (213) I O D C I: Mot d'entrée de données O: Mot de sortie D: 1er mot de destination C: Mot système 85 Chapitre 2-2 Fonction des instructions Instruction Mnémonique Code 7-SEGMENT DISPLAY OUTPUT 7SEG 214 (UC série CS/CJ ver. 2.0 ou supérieure uniquement) Symbole/ Opérande 7SEG (214) S Fonction Emplacement Condition d’exécution Page Sortie Convertit les données sources (BCD à 4 chiffres ou 8 chiffres) en données d'affichage à 7 segments et place ces données dans le mot de Obligatoire sortie spécifié. 908 Sortie Obligatoire 913 Sortie Obligatoire 917 Sortie obligatoire 921 O C D S: 1er mot source O: Mot de sortie C: Données de contrôle D: Mot système INTELLIGENT I/O READ IORD @IORD 222 IORD(222) C S Lit le contenu de la zone de mémoire pour la carte E/S spéciale ou la carte réseau (voir remarque). S S+1 D Numéro de carte E/S spéciale C: Données de contrôle S: Source du transfert et nombre de mots D: Destination du transfert et nombre de mots Nombre désigné de mots lus. Remarque : UC série CS/CJ ver. 2.0 ou supérieure (y compris les UC CS1-H, CJ1-H et CJ1M du lot numéro 030418 ou ultérieur) peuvent lire à partir des cartes réseaux. INTELLIGENT I/O WRITE IOWR @IOWR 223 IOWR(223) C S Sort le contenu de la zone de mémoire E/S de l'UC dans la carte E/S spéciale ou la carte réseau (voir remarque). D D+1 D C: Données de contrôle S: Source du transfert et nombre de mots D: Destination du transfert et nombre de mots Numéro de carte E/S spéciale Nombre désigné de mots écrits Remarque : UC série CS/CJ ver. 2.0 ou supérieure (y compris les UC CS1-H, CJ1-H et CJ1M du lot numéro 030418 ou ultérieur) peuvent écrire sur les cartes réseaux. CPU BUS UNIT DLNK(226) I/O REFRESH (CS1-H, CJ1-H, N CJ1M ou CS1D uniquement) DLNK N: Numéro d'unité @DLNK 226 86 Rafraîchit immédiatement les E/S sur la carte réseau avec le numéro de carte spécifié. Chapitre 2-2 Fonction des instructions 2-2-22 Instructions de communication série Instruction Mnémonique Code PROTOCOL MACRO PMCR @PMCR 260 Symbole/ Opérande PMCR(260) Fonction Emplacement Condition d’exécution Page Sortie Obligatoire 928 Sort le nombre spécifié d'octets de données dans le port RS-232C intégré à l'UC ou le port série d'une carte de communication série (version 1.2 ou supérieure). Sortie Obligatoire 937 Lit le nombre spécifié d'octets de données du port RS-232C intégré à l'UC ou du port série d'une carte de communication série (version 1.2 ou supérieure). Sortie Obligatoire 944 Sort le nombre spécifié d’octets de données dans le port série d’une carte de communication série (version 1.2 ou supérieure). Les données sont sorties en mode sans protocole avec le code de départ et le code de fin (le cas échéant) spécifiés dans la zone de configuration DM affectée. Sortie Obligatoire 952 Appelle et exécute une séquence de communication enregistrée dans une carte de communication série. C1 UC Carte de communication série Port C2 S R S à C1: Mot de contrôle 1 C2: Mot de contrôle 2 S: 1er mot envoyé R: 1er mot reçu R à TRANSMIT TXD @TXD 236 TXD(236) S Périphérique externe C N S: 1er mot source C: Mot de contrôle N: Nombre d'octets 0000 à 0100 hex (0 à 256 décimal) RECEIVE RXD @RXD 235 RXD(235) D C N D: 1er mot de destination C: Mot de contrôle N: Nombre d'octets à sauvegarder 0000 à 0100 hex (0 à 256 décimal) TRANSMIT VIA SERIAL COMMUNICATIONS UNIT TXDU @TXDU 256 TXDU(256) S C N S: 1er mot source C: 1er mot de contrôle N: Nombre d'octets 0000 à 0256 BCD 87 Chapitre 2-2 Fonction des instructions Instruction Mnémonique Code RECEIVE VIA SERIAL COMMUNICATIONS UNIT RXDU @RXDU 255 Symbole/ Opérande RXDU(255) D Fonction Emplacement Condition d’exécution Page Lit le nombre spécifié d’octets de données du port série d’une carte de communication série (version 1.2 ou supérieure). Les données sont lues en mode sans protocole avec le code de début et le code de fin (le cas échéant) spécifiés dans la zone de configuration DM affectée. Sortie Obligatoire 960 Change les paramètres de communication d'un port série sur l'UC, la carte de communication série (carte réseau) ou la carte de communication série. STUP(237) permet ainsi de changer le mode de protocole pendant le fonctionnement de l'API. Sortie Obligatoire 968 Emplacement Condition d’exécution Page Sortie Obligatoire 991 Sortie Obligatoire 997 C N D: 1er mot de destination C: 1er mot de contrôle N: Nombre d'octets à sauvegarder 0000 à 0256 BCD CHANGE SERIAL PORT SETUP STUP @STUP 237 STUP(237) C S C: Mot de contrôle (port) S: Premier mot source 2-2-23 Instructions réseau Instruction Mnémonique Code NETWORK SEND SEND @SEND 090 Symbole/ Opérande SEND(090) Fonction Transmet les données à un nœud du réseau. D C RECV @RECV 098 RECV(098) 0 D n: Nombre de mots envoyés n Demande la transmission des données à partir d'un nœud du réseau et reçoit les données. S Nœud local 0 15 D C S: 1er mot source D: 1er mot de destination C: 1er mot de contrôle 88 15 S S: 1er mot source D: 1er mot de destination C: 1er mot de contrôle NETWORK RECEIVE Nœud de destination Nœud local 15 0 S Nœud source 15 S D m n 0 Chapitre 2-2 Fonction des instructions Emplacement Condition d’exécution Page Sortie Obligatoire 1003 Envoie un message explicite avec un code de service. EXPLICIT EXPLT (720) MESSAGE SEND EXPLT S 720 D (UC série CS/CJ ver. 2.0 ou C supérieure uniquement) S: 1er mot du message envoyé D: 1er mot du message reçu C: 1er mot de contrôle Sortie Obligatoire 1013 Lit les informations d'état avec un message explicite (Get Attribute EXPLICIT GET EGATR (721) Single, Service Code: 0E hex). ATTRIBUTE EGATR S 721 D (UC série CS/CJ ver. 2.0 ou C supérieure uniquement) S: 1er mot du message envoyé D: 1er mot du message reçu C: 1er mot de contrôle message Sortie Obligatoire 1021 Ecrit les informations d'état avec un message explicite EXPLICIT SET ESATR (722) (Set Attribute Single, Service Code : 0E hex) ATTRIBUTE ESATR S 722 C (UC série CS/CJ ver. 2.0 ou S: Premier mot du supérieure message envoyé uniquement) C: Premier mot de contrôle Sortie Obligatoire 1028 Instruction Mnémonique Code DELIVER COMMAND CMND @CMND 490 Symbole/ Opérande CMND(490) Fonction Envoie la commande FINS et reçoit la réponse. S Nœud local 15 D C S: 1er mot de commande D: 1er mot de réponse C: 1er mot de contrôle Nœud de destination 0 S (S−1) + n 2 15 D (D−1) + m 2 Données de commande (n octets) Commande Données de réponse (m octets) Réponse Interpréte 0 Exécute 89 Chapitre 2-2 Fonction des instructions Instruction Mnémonique Code Symbole/ Opérande Fonction Emplacement Condition d’exécution Page Lit les données sur l'UC locale à partir d'une UC distante dans le Sortie EXPLICIT WORD ECHRD (723) réseau. (L'UC distante doit prendre en charge les messages explicites.) Obligatoire READ ECHRD S 723 D (UC série CS/CJ ver. 2.0 ou C supérieure uniquement) S: 1er mot source dans UC distante D: 1er mot de destination dans UC locale C: 1er mot de contrôle 1034 Ecrit les données de l'UC locale sur une UC distante dans le réseau. EXPLICIT WORD ECHWR (724) WRITE (L'UC distante doit prendre en charge les messages explicites.) ECHWR S 724 D (UC série CS/CJ ver. 2.0 ou C supérieure uniquement) S: 1er mot source dans UC locale D: 1er mot de destination dans UC distante C: 1er mot de contrôle 1038 90 Sortie Obligatoire Chapitre 2-2 Fonction des instructions 2-2-24 Instructions de mémoire de fichiers Instruction Mnémonique Code READ DATA FILE FREAD @FREAD 700 Symbole/ Opérande FREAD(700) C S1 S2 Fonction Emplacement Page Condition d’exécution Lit les données ou la quantité de données spécifiées du fichier de données spécifié dans la mémoire de fichiers à la zone de données spécifiée dans l'UC. Adresse de début de lecture spécifiée Fichier spécifié dans S1+2 et S1+3 dans S2 UC Sortie Obligatoire 1045 Sortie Obligatoire 1052 D C: Mot de contrôle S1: 1er mot source S2: Nom du fichier D: 1er mot de destination Nombre de mots spécifiés dans S1 et S1+1 Carte mémoire ou mémoire de fichiers EM (spécifiée par le 4ème chiffre de C.) Fichier spécifié dans S2 Nombre de mots écrits dans D et D+1. UC Nombre de mots Carte mémoire ou mémoire de fichiers EM (spécifiée par le 4ème chiffre de C.) WRITE DATA FILE FWRIT @FWRIT 701 FWRIT(701) C D1 D2 S C: Mot de contrôle D1: 1er mot de destination D2: Nom du fichier S: 1er mot source Ecrase ou ajoute des données dans le fichier de données spécifié dans la mémoire de fichiers avec les données spécifiées de la zone de données dans l'UC. Si le fichier spécifié n'existe pas, un nouveau fichier est créé avec ce nom. Mot de départ Fichier spécifié dans D2 UC spécifié dans Adresse D1+2 et D1+3 de début spécifiée Nombre de mots dans S spécifiés dans D1 et D1+1 Ecrase Carte mémoire ou mémoire de fichiers EM (spécifiée par le 4ème chiffre de C.) UC Adresse de début spécifiée dans S Fichier spécifié dans D2 Fin de fichier Données existantes Nombre de mots spécifiés dans D1 et D1+1 Ajout UC Adresse de début spécifiée dans S Début de fichier Carte mémoire ou mémoire de fichiers EM (spécifiée par le 4ème chiffre de C) Fichier spécifié dans D2 Nouveau fichier créé Nombre de mots spécifiés dans D1 et D1+1 Carte mémoire ou mémoire de fichiers EM (spécifiée par le 4ème chiffre de C.) 91 Chapitre 2-2 Fonction des instructions 2-2-25 Instructions d'affichage Instruction Mnémonique Code DISPLAY MESSAGE Symbole/ Opérande MSG(046) MSG @MSG 046 Fonction Lit les seize mots ASCII étendu spécifiés et affiche le message sur un équipement périphérique tel qu'une console de programmation. Emplacement Condition d’exécution Page Sortie Obligatoire 1058 Emplacement Condition d’exécution Page Sortie Obligatoire 1061 Sortie Obligatoire 1065 N M N: Numéro de message M: 1er mot de message 2-2-26 Instructions d'horloge Instruction Mnémonique Code CALENDAR ADD CADD @CADD 730 Symbole/ Opérande CADD(730) C T R C: 1er mot de calendrier T: 1er mot de temps R: 1er mot de résultat CALENDAR SUBTRACT CSUB @CSUB 731 CSUB(731) Fonction Ajoute des données de temps aux données de calendrier dans les mots spécifiés. C C+1 C+2 Minutes Jour Année T T+1 Minutes Secondes Heures R R+1 R+2 Minutes Jour Année Secondes Heure Mois Soustrait des données de temps aux données de calendrier dans les mots spécifiés. C T R C: 1er mot de calendrier T: 1er mot de temps R: 1er mot de résultat C C+1 C+2 Minutes Jour Année Secondes Heure Mois − T Minutes Secondes Heures T+1 R R+1 R+2 92 Secondes Heure Mois Minutes Jour Année Secondes Heure Mois Chapitre 2-2 Fonction des instructions Instruction Mnémonique Code HOURS TO SECONDS Symbole/ Opérande SEC(065) SEC @SEC 065 Fonction Convertit les données de temps au format heures/minutes/secondes en un temps équivalent en secondes uniquement. Emplacement Condition d’exécution Page Sortie Obligatoire 1068 Sortie Obligatoire 1070 Sortie Obligatoire 1073 Emplacement Condition d’exécution Page Sortie non obligatoire 1075 S D Minutes Secondes Heures S: 1er mot source D: 1er mot de destination Secondes SECONDS TO HOURS HMS @HMS 066 HMS(066) Convertit les données en secondes en un temps équivalent au format heures/minutes/secondes. S D Secondes S: 1er mot source D: 1er mot de destination Minutes Secondes Heures CLOCK DATE(735) ADJUSTMENT DATE S @DATE 735 S: 1er mot source Règle le paramètre de l'horloge interne sur celui des mots sources spécifiés. UC Horloge interne Nouveau paramètre Minutes Jour Secondes Année 00 Mois Heure Jour de la semaine 2-2-27 Instructions de débogage Instruction Mnémonique Code TRACE MEMORY SAMPLING Symbole/ Opérande TRSM(045) TRSM 045 Fonction Lorsque TRSM(045) est exécuté, l'état d'un bit ou d'un mot présélectionné est échantillonné et enregistré dans la mémoire de traçé. TRSM(045) peut être utilisé n'importe où dans le programme, autant de fois que vous le souhaitez. 93 Chapitre 2-2 Fonction des instructions 2-2-28 Instructions de diagnostic d'erreur Instruction Mnémonique Code FAILURE ALARM FAL @FAL 006 Symbole/ Opérande FAL(006) N S N: Numéro FAL S: 1er mot de message ou code d'erreur à générer Fonction Génère ou efface des erreurs définies par l'utilisateur non fatales. Les erreurs non fatales n'interrompent pas le fonctionnement de l'API. Génère également des erreurs non fatales avec le système. L'exécution de FAL(006) génère une erreur non fatale avec le numéro FAL N. Emplacement Condition d’exécution Page Sortie Obligatoire 1079 Sortie 1087 Drapeau d'erreur FAL ON Drapeau correspondant au numéro d'instruction FAL exécutée ON Code d'erreur écrit dans A400 Code d'erreur et heure écrits dans la zone du journal d'erreurs Le voyant ERR clignote Message affiché sur la console de programmation SEVERE FAILURE ALARM FALS 007 FALS(007) N S N: Numéro FALS S: 1er mot de message ou code d'erreur à générer Génère des erreurs fatales définies par l'utilisateur. Les erreurs fatales arrêtent Obligatoire le fonctionnement de l'API. Génère également des erreurs fatales avec le système. Drapeau d'erreur FALS sur ON L'exécution de Code d'erreur écrit dans A400 FALS(007) Code d'erreur et heure/date écrits dans la zone du journal d'erreurs génère une erreur fatale avec le numéro Voyant ERR allumé FALS N. Message affiché sur la console de programmation FAILURE POINT DETECTION FPD 269 FPD(269) C T R C: Mot de contrôle T: Temps de surveillance R: 1er mot registre Permet de diagnostiquer une erreur au niveau d'un bloc d'instruction en surveillant le temps entre l'exécution de l'instruction FPD(269) et l'exécution d'une sortie diagnostic et en retrouvant l'entrée qui empêche une sortie de passer ON. Fonction de surveillance du temps : Démarre la temporisation lorsque la condition d'exécution A passe à ON. Génère une erreur non fatale si la sortie B ne passe pas à ON pendant le temps de surveillance. Condition d'exécution A T R Prochain bloc d'instruction Bloc de traitement d'erreur (facultatif) Bloc de diagnostic logique* Condition d'exécution de diagnostic logique C Sortie de diagnostic B La fonction de diagnostic logique détermine quelle entrée dans C empêche la sortie B de passer à ON. 94 Sortie Obligatoire 1095 Chapitre 2-2 Fonction des instructions 2-2-29 Autres instructions Emplacement Condition d’exécution Page Passe le drapeau de report sur ON (CY). Sortie Obligatoire 1104 Passe le drapeau de report sur OFF (CY). Sortie Obligatoire 1105 SELECT EM EMBC(281) BANK EMBC N @EMBC 281 N: Numéro de banque EM Change la banque EM en cours. Sortie Obligatoire 1106 EXTEND WDT(094) MAXIMUM CYCLE TIME T WDT @WDT T: Paramètre de 094 temporisateur Prolonge le temps de cycle maximum, mais seulement pour le cycle pendant lequel cette instruction est exécutée. Sortie Obligatoire 1108 SAVE CONDITION FLAGS (CS1-H, CJ1-H, CJ1M ou CS1D uniquement) CCS @CCS 282 Sauvegarde l'état des drapeaux de condition. Sortie Obligatoire 1110 Lit l'état des drapeaux de condition qui a été enregistré. Sortie Obligatoire 1112 Convertit une adresse mémoire d'API série CV en une adresse mémoire d'API série CS/CJ équivalente. Sortie Obligatoire 1113 Sortie Obligatoire 1117 Instruction Mnémonique Code Symbole/ Opérande SET CARRY STC @STC 040 CLEAR CARRY CLC @CLC 041 LOAD CONDITION FLAGS (CS1-H, CJ1-H, CJ1M ou CS1D uniquement) CCL @CCL 283 Fonction STC(040) CLC(041) CCS(282) CCL(283) CONVERT ADDRESS FROM FRMCV(284) CV (CS1-H, CJ1S H, CJ1M ou CS1D D uniquement) FRMCV S: Mot contenant @FRMCV l'adresse mémoire 284 série CV D: Registre d'index de destination Convertit une adresse mémoire d'API série CS/CJ en une adresse CONVERT TOCV(285) mémoire d'API série CV équivalente. ADDRESS TO CV (CS1-H, CJ1-H, S CJ1M ou CS1D uniquement) D TOCV @TOCV S: Registre d'index 285 contenant l'adresse mémoire série CS D: Mot de destination 95 Chapitre 2-2 Fonction des instructions Instruction Mnémonique Code Symbole/ Opérande DISABLE PERIPHERAL SERVICING (UC CS1D pour les systèmes d'UC unique, CS1-H, CJ1-H ou CJ1M uniquement) IOSP @IOSP 287 IOSP(287) ENABLE PERIPHERAL SERVICING (UC CS1D pour les systèmes d'UC unique, CS1-H, CJ1-H ou CJ1M uniquement) IORS 288 IORS(288) Fonction Emplacement Condition d’exécution Page Désactive le traitement des périphériques pendant l'exécution du programme dans l'un des modes de traitement parallèle ou dans le mode prioritaire du traitement des périphériques. Sortie Obligatoire 1121 Active le traitement des périphériques qui a été désactivé par IOSP(287) pour l'exécution du programme dans l'un des modes de traitement parallèle ou dans le mode prioritaire du traitement des périphériques. Sortie non obligatoire 1123 Emplacement Condition d’exécution Page Sortie Obligatoire 1128 2-2-30 Instructions de programmation de bloc Instruction Mnémonique Code Symbole/ Opérande BLOCK PROGRAM BEGIN BPRG(096) Fonction Définition d'une zone de programmation de bloc. A chaque BPRG(096) doit correspondre un BEND(801). N BPRG 096 N: Numéro du programme de bloc Programme de bloc Exécuté lorsque la condition d'exécution est ON. BLOCK PROGRAM END BEND 801 BLOCK PROGRAM PAUSE BPPS (811) Définition d'une zone de programmation de bloc. A chaque BPRG(096) Programme doit correspondre un BEND(801). de bloc Obligatoire 1128 Programme de bloc Obligatoire 1131 Mise en pause et redémarrage du programme de bloc spécifié à partir d'un autre programme de bloc. N BPPS 811 N: Numéro du programme de bloc à à à 96 BPPS(811) exécuté pour le programme de bloc n. Programme de bloc n. Une fois en pause, ce programme de bloc ne sera pas exécuté, même si le bit "a" est ON. Chapitre 2-2 Fonction des instructions Instruction Mnémonique Code BLOCK PROGRAM RESTART Symbole/ Opérande BPRS (812) Fonction Emplacement Condition d’exécution Page Programme de bloc Obligatoire 1131 Programme de bloc Obligatoire 1137 Programme de bloc Obligatoire 1137 EXIT NOT(806) sans un bit d'opérande quitte le programme si la condi- Programme tion d'exécution est OFF. de bloc Obligatoire 1137 Mise en pause et redémarrage du programme de bloc spécifié à partir d'un autre programme de bloc. N BPRS 812 N: Numéro du programme de bloc à à à BPPS(812) exécuté pour le programme de bloc n. Programme de bloc n. Ce programme de bloc sera maintenant exécuté tant que le bit "a" est ON. EXIT(806) CONDITIONAL EXIT(806) sans un bit d'opérande quitte le programme si la BLOCK EXIT condition d'exécution est ON. EXIT B : Bit d'opérande Condition Condition 806 d'exécution d'exécution OFF ON "A" exécuté. "A" exécuté. Condition d'exécution "B" exécuté. Bloc terminé. EXIT(806)B CONDITIONAL BLOCK EXIT EXIT B: Bit d'opérande 806 EXIT(806) avec un bit d'opérande quitte le programme si le bit d'opérande est ON. Bit d'opérande OFF (ON pour EXIT NOT) Bit d'opérande ON (OFF pour EXIT NOT) "A" exécuté. "A" exécuté. "B" exécuté. Bloc terminé. EXIT NOT(806) CONDITIONAL B BLOCK EXIT NOT EXIT NOT B: Bit d'opérande 806 97 Chapitre 2-2 Fonction des instructions Symbole/ Opérande Instruction Mnémonique Code CONDITIONAL BLOCK BRANCHING IF (802) IF 802 Fonction Si la condition d'exécution est ON, les instructions entre IF(802) et ELSE(803) seront exécutées et si la condition d'exécution est OFF, les instructions entre ELSE(803) et IEND(804) seront exécutées. Condition d'exécution IF (802) B IF B: Bit d'opérande 802 Page Programme de bloc Obligatoire 1133 Programme de bloc Obligatoire 1133 Condition d'exécution ON ? "A" exécuté (entre IF et ELSE). CONDITIONAL BLOCK BRANCHING Emplacement Condition d’exécution "B" exécuté (après ELSE). Si le bit d'opérande est ON, les instructions entre IF(802) et ELSE(803) seront exécutées. Si le bit d'opérande est OFF, les instructions entre ELSE(803) et IEND(804) seront exécutées. Bit d'opérande ON ? IF R (IF NOT R) "A" exécuté (entre IF et ELSE). "B" exécuté (après ELSE). IF (802) NOT CONDITIONAL BLOCK B BRANCHING (NOT) B: Bit d'opérande IF NOT 802 Si le bit d'opérande est OFF, les instructions entre IF NOT(802) et ELSE(803) seront exécutées. Si le bit d'opérande est ON, les instructions entre ELSE(803) et IEND(804) seront exécutées. Programme de bloc Obligatoire 1133 --CONDITIONAL BLOCK BRANCHING (ELSE) ELSE 803 Si l'instruction ELSE(803) est omise et que le bit d'opérande est ON, les instructions entre IF(802) et IEND(804) seront exécutées. Programme de bloc Obligatoire 1133 --CONDITIONAL BLOCK BRANCHING END IEND 804 Si le bit d'opérande est OFF, seules les instructions après IEND(804) seront exécutées. Programme de bloc Obligatoire 1133 98 Chapitre 2-2 Fonction des instructions Instruction Mnémonique Code Symbole/ Opérande ONE CYCLE AND WAIT(805) WAIT WAIT 805 Fonction Si la condition d'exécution est ON pour WAIT(805)), les autres instructions du programme de bloc seront ignorées. Condition Condition Condition d'exécution d'exécution d'exécution ON OFF OFF Emplacement Condition d’exécution Page Programme de bloc Obligatoire 1140 "A" exécuté. Condition d'exécution "B" exécuté. "C" exécuté. "C" exécuté. "C" exécuté. Attente ONE CYCLE AND WAIT(805) WAIT B WAIT 805 B: Bit d'opérande Si le bit d'opérande est OFF (ON pour WAIT NOT(805)), les autres instructions du programme de bloc seront ignorées. Dans le cycle suivant, aucun élément du programme de bloc ne sera exécuté, sauf pour la condition d'exécution de WAIT(805) ou WAIT(805) NOT. Lorsque la condition d'exécution passera à ON (OFF pour WAIT(805) NOT), l'instruction de WAIT(805) ou WAIT(805) NOT à la fin du programme sera exécutée. Programme de bloc Obligatoire 1140 ONE CYCLE AND WAIT(805) NOT B WAIT (NOT) WAIT NOT 805 B: Bit d'opérande Si le bit d'opérande est OFF (ON pour WAIT NOT(805)), les autres instructions du programme de bloc seront ignorées. Dans le cycle suivant, aucun élément du programme de bloc ne sera exécuté, sauf pour la condition d'exécution de WAIT(805) ou WAIT(805) NOT. Lorsque la condition d'exécution passe ON (OFF pour WAIT(805) NOT), l'instruction de WAIT(805) ou WAIT(805) NOT à la fin du programme sera exécutée. Programme de bloc Obligatoire 1140 TIMW(813) TIMER WAIT N TIMW SV 813 (BCD) Retarde l'exécution du programme de bloc jusqu'à la fin du délai spécifié. A l'expiration de la temporisation, l'exécution reprend à partir de l'instruction qui suit TIMW(813)/TIMWX(816). SV: 0 à 999,9 s pour des données BCD et 0 à 6 553,5 s pour des données binaires Programme de bloc Obligatoire 1144 TIMWX 816 (Binaire) (CS1-H, CJ1-H, CJ1M ou CS1D uniquement) N : Numéro de temporisateur SV : Valeur de consigne "A" exécuté. TIMWX(816) N SV SV prédéfinie. N : Numéro de temporisateur SV : Valeur de consigne Temps écoulé. "B" exécuté. BEND "C" exécuté. C 99 Chapitre 2-2 Fonction des instructions Instruction Mnémonique Code Symbole/ Opérande COUNTER WAIT CNTW(814) N CNTW SV 814 (BCD) CNTWX 818 (Binaire) (CS1-H, CJ1-H, CJ1M ou CS1D uniquement) N : Numéro de compteur SV : Valeur de consigne I : Entrée de comptage Fonction Retarde l'exécution du reste du programme de bloc jusqu'à ce que le compte spécifié ait été atteint. L'exécution reprendra à partir de l'instruction qui suit CNTW(814)/CNTWX(818) lorsque le décompte sera terminé. SV: 0 à 9 999 fois pour les données BCD et 0 à 65 535 fois pour les données binaires Emplacement Condition d’exécution Page Programme de bloc Obligatoire 1147 Programme de bloc Obligatoire 1150 "A" exécuté. CNTWX(818) N SV SV prédéfinie. Temps écoulé. "B" exécuté. N : Numéro de compteur SV : Valeur de consigne I : Entrée de comptage TMHW(815) HIGH-SPEED TIMER WAIT N TMHW SV 815 (BCD) N : Numéro de temporisateur TMHWX SV : Valeur de 817 consigne (Binaire) (CS1-H, CJ1-H, TMHWX(817) CJ1M ou CS1D N uniquement) SV C "C" exécuté. "C" exécuté. "C" exécuté. Retarde l'exécution du reste du programme de bloc jusqu'à l'expiration du délai spécifié. A l'expiration de la temporisation, l'exécution reprendra à partir de l'instruction qui suit TMHW(815)/TMHWX(818). SV: 0 à 99,99 fois pour les données BCD et 0 à 655,35 fois pour les données binaires "A" exécuté. SV prédéfinie. N : Numéro de temporisateur SV : Valeur de consigne Temps écoulé. "B" exécuté. BEND "C" exécuté. C 100 Chapitre 2-2 Fonction des instructions Symbole/ Opérande Emplacement Condition d’exécution Page Programme de bloc Obligatoire 1153 LEND (810) LEND(810) ou LEND(810) NOT spécifie la fin de la boucle. Lorsque Programme LEND(810) ou LEND(810) NOT est atteint, l'exécution du programme de bloc reviendra au précédent LOOP(809) jusqu'à ce que le bit d'opérande de Obligatoire LEND(810) ou LEND(810) NOT passe à ON ou à OFF (respectivement) ou jusqu'à ce que la condition d'exécution de LEND(810) passe à ON. 1153 LEND (810) B Si le bit d'opérande est OFF pour LEND(810) (ou ON pour LEND(810) NOT), l'exécution de la boucle est répétée à partir de l'instruction qui suit LOOP(809). Si le bit d'opérande est ON pour LEND(810) (ou OFF pour LEND(810) NOT), la boucle est interrompue et l'exécution reprend à partir de l'instruction qui suit LEND(810) ou LEND(810) NOT. Programme de bloc Obligatoire 1153 Programme LEND(810) ou LEND(810) NOT spécifie la fin de la boucle. Lorsque de bloc LEND(810) ou LEND(810) NOT est atteint, l'exécution du programme revient au précédent LOOP(809) jusqu'à ce que le bit d'opérande de Obligatoire LEND(810) ou LEND(810) NOT passe à ON ou à OFF (respectivement) ou jusqu'à ce que la condition d'exécution de LEND(810) passe à ON. 1153 Instruction Mnémonique Code --- LOOP LOOP 809 Fonction LOOP(809) désigne le début du programme en boucle. Condition d'exécution ON Condition Condition Condition d'exécution d'exécution d'exécution OFF OFF OFF Condition d'exécution Boucle répétée LEND LEND 810 LEND LEND 810 B: Bit d'opérande Bit Bit d'opérande d'opérande ON OFF Bit d'opérande OFF Bit d'opérande OFF Boucle répétée Remarque L'état du bit d'opérande serait inversé pour LEND(810) NOT. LEND(810) NOT LEND NOT LEND NOT 810 B: Bit d'opérande 101 Chapitre 2-2 Fonction des instructions 2-2-31 Instructions de traitement de chaînes de texte Instruction Mnémonique Code MOV STRING MOV$ @MOV$ 664 Symbole/ Opérande MOV$(664) Fonction Emplacement Condition d’exécution Page Transfère une chaîne de texte. Sortie Obligatoire 1159 Lie une chaîne de texte à une autre chaîne de texte. Sortie Obligatoire 1161 Extrait un nombre désigné de caractères à partir de la gauche (début) d'une chaîne de texte. Sortie Obligatoire 1164 Lit un nombre désigné de caractères à partir de la droite (fin) d'une chaîne de texte. Sortie Obligatoire 1166 Sortie Obligatoire 1168 S D S: 1er mot source D: 1er mot de destination CONCATENATE STRING +$ @+$ 656 +$(656) S1 → + → → → S2 D S1: Chaîne de texte 1 S2: Chaîne de texte 2 D: Premier mot de destination GET STRING LEFT LEFT$ @LEFT$ 652 LEFT$(652) S1 S2 D S1: Premier mot de la chaîne de texte S2: Nombre de caractères D: Premier mot de destination GET STRING RIGHT RGHT$ @RGHT$ 653 RGHT$(653) S1 00 S2 D S1: Premier mot de la chaîne de texte S2: Nombre de caractères D: Premier mot de destination GET STRING MIDDLE MID$ @MID$ 654 MID$(654) S1 S2 S3 D S1: Premier mot de la chaîne de texte S2: Nombre de caractères S3: Position de départ D: Premier mot de destination 102 Lit un nombre désigné de caractères à partir d'une position quelconque au milieu d'une chaîne de texte. → → Chapitre 2-2 Fonction des instructions Instruction Mnémonique Code FIND IN STRING FIND @FIND$ 660 Symbole/ Opérande FIND$(660) S1 Fonction Emplacement Condition d’exécution Page Recherche une chaîne de texte désignée à l'intérieur d'une chaîne de texte. Donnée trouvée → → → Sortie Obligatoire 1171 Calcule la longueur d'une chaîne de texte. Sortie Obligatoire 1173 Sortie Obligatoire 1175 Sortie Obligatoire 1178 S2 D S1: Premier mot de la chaîne de texte source S2: Premier mot de la chaîne de texte trouvée D: Premier mot de destination STRING LENGTH LEN$ @LEN$ 650 LEN$(650) → S D 1 3 5 2 4 S: Premier mot de la chaîne de texte D: 1er mot de destination REPLACE IN STRING RPLC$ @RPLC$ 661 RPLC$(654) Remplace une chaîne de texte par une chaîne de texte désignée à partir d'une position désignée. S1 S2 → → S3 S4 D S1: Premier mot de la chaîne de texte S2: Premier mot de la chaîne de remplacement S3: Nombre de caractères S4: Position de départ D: Premier mot de destination DELETE STRING DEL$ @DEL$ 658 DEL$(658) S1 S2 S3 Supprime une chaîne de texte désignée au milieu d'une chaîne de texte. Nombre de caractères à supprimer (désigné par S2). → → G D S1: Premier mot de la chaîne de texte S2: Nombre de caractères S3: Position de départ D: Premier mot de destination 103 Chapitre 2-2 Fonction des instructions Symbole/ Opérande Instruction Mnémonique Code EXCHANGE STRING XCHG$ @XCHG$ 665 XCHG$(665) Ex1 Fonction Emplacement Condition d’exécution Page Sortie Obligatoire 1180 Sortie Obligatoire 1182 Supprime une chaîne de texte désignée au milieu d'une chaîne de texte. Sortie Obligatoire → 1184 Remplace une chaîne de texte désignée par une autre chaîne de texte désignée. Ex1 Ex1 Ex2 Ex1: 1er mot échange 1 Ex2: 1er mot échange 2 CLEAR STRING CLR$ @CLR$ 666 CLR$(666) Remet à zéro une chaîne de texte entière avec NUL (00 hex). S→ S S: Premier mot de la chaîne de texte INSERT INTO STRING INS$ @INS$ 657 INS$(657) S1 D A C B D NUL S→ NUL NUL S2 S3 Ex2 Ex2 → → Caractères insérés S1: Premier mot de la chaîne de texte de base S2: Premier mot de la chaîne de texte à insérer S3: Position de départ D: Premier mot de destination Comparaison de LD chaînes Symbole LD, AND, OR + =$, <>$, <$, <=$, S1 >$, >=$ 670 (=$) S2 671 (<>$) 672 (<$) 673 (<=$) AND 674 (>$) Symbole 675 (>=$) S1 S2 OR Symbole S1 S2 S1: Chaîne de texte 1 S2: Chaîne de texte 2 104 Les instructions de comparaison de chaînes (=$, <>$, <$, <=$, >$, >=$) comparent deux chaînes de texte à partir du début, en se basant sur la valeur des codes ASCII. Si le résultat de la comparaison est vrai, une condition d'exécution ON est créée pour un LOAD, un AND ou un OR. 1187 LD : non obligatoire AND, OR : obligatoire Chapitre 2-2 Fonction des instructions 2-2-32 Instructions de contrôle des tâches Instruction Mnémonique Code Symbole/ Opérande TASK ON TKON @TKON 820 TKON(820) N N: Numéro de tâche Fonction Rend la tâche spécifiée exécutable. Le numéro de la tâche spécifiée est supérieur au numéro de la tâche locale (m<n). Tâche n N N: Numéro de tâche 1192 Sortie Obligatoire 1196 Devient exécutable dans le cycle suivant. Tâche n Met la tâche spécifiée à l'état d'attente. Le numéro de la tâche spécifiée est supérieur au numéro de la tâche locale (m<n). Le numéro de la tâche spécifiée est inférieur au numéro de la tâche locale (m>n). Tâche m Tâche m A l'état d'attente pendant le cycle suivant. A l'état d'attente pendant ce cycle. Tâche n Sortie Obligatoire Tâche m Devient exécutable dans ce cycle. TKOF(821) Page Le numéro de la tâche spécifiée est inférieur au numéro de la tâche locale (m>n). Tâche m TASK OFF TKOF @TKOF 821 Emplacement Condition d’exécution Tâche n 105 Chapitre 2-2 Fonction des instructions 2-2-33 Instructions de conversion des modèles (UC ver. 3.0 ou supérieure uniquement) Instruction Mnémonique Code BLOCK TRANSFER XFERC @XFERC 565 Symbole/ Opérande Fonction XFERC(565) Transfère le nombre de mots consécutifs spécifié. Emplacement Condition d’exécution Page Sortie Obligatoire 1201 Sortie Obligatoire 1203 Sortie Obligatoire 1206 Sortie Obligatoire 1211 Sortie Obligatoire 1212 N S D N mots à à D+(N−1) S+(N−1) N: Nombre de mots S: 1er mot source D: 1er mot de destination SINGLE WORD DISTRIBUTE DISTC @DISTC 566 DISTC(566) S Bs Transfère le mot source vers un mot de destination calculé en ajoutant une valeur de décalage à l'adresse de base. Peut également écrire dans une pile (opération pousser sur pile). S Bs Of Of S: Mot source Bs: Adresse destination de Of: Décalage Bs+n DATA COLLECT COLLC @COLLC 567 COLLC(567) Bs Of Transfère le mot source (calculé en ajoutant une valeur de décalage à l'adresse de base) vers le mot de destination. Peut également lire les données d'une pile suivant la séquence FIFO ou LIFO (opération lire sur pile). Of Bs D Bs: Adresse source de base Of: Décalage D: Mot de destination MOVE BIT MOVBC @MOVBC 568 MOVBC(568) Bs+n Transfère le bit spécifié. S C D S: Mot ou donnée source C: Mot de contrôle D: Mot de destination BIT COUNTER BCNTC @BCNTC 621 BCNTC(621) N S R N: Nombre de mots (BCD) S: 1er mot source R: Mot de résultat 106 Compte le nombre total de bits ON dans le(s) mot(s) spécifié(s). à N mots Compte le nombre de bits ON. S+(N −1) Résultat BCD R Chapitre 2-2 Fonction des instructions 2-2-34 Instructions spéciales des blocs fonction Instruction Mnémonique Code GET VARIABLE ID GETID @GETID 286 Symbole/ Opérande GETID(286) S Fonction Sort le code et l’adresse mot du type de variable de commande FINS (zone données) pour la variable ou l’adresse spécifiée. Cette instruction est généralement utilisée pour obtenir l’adresse affectée à une variable dans un bloc fonction. Emplacement Condition d’exécution Page Sortie Obligatoire 1214 D1 D2 S: Variable ou adresse D1: Code ID D2: Mot de destination 107 Chapitre 2-3 Liste alphabétique des instructions par mnémonique 2-3 Liste alphabétique des instructions par mnémonique A Mnémonique Instruction Code fonction Différentiation sur front montant Différentiation sur front descendant Spécification de rafraîchissement immédiat Page ACC ACCELERATION CONTROL 888 @ACC --- --- 855 ACOS ARC COSINE 464 @ACOS --- --- 589 ACOSD DOUBLE ARC COSINE 855 @ACOSD --- --- 645 AND AND --- @AND %AND !AND 157 AND < AND LESS THAN 310 --- --- --- 275 AND <$ AND STRING LESS THAN 672 --- --- --- 1187 AND <> AND NOT EQUAL 305 --- --- --- 275 AND <>$ AND STRING NOT EQUAL 671 --- --- --- 1187 AND <>D AND DOUBLE FLOATING NOT EQUAL 336 --- --- --- 657 AND <> DT AND TIME NOT EQUAL 342 --- --- --- 281 AND <>F AND FLOATING NOT EQUAL 330 --- --- --- 600 AND <>L AND DOUBLE NOT EQUAL 306 --- --- --- 275 AND <>S AND SIGNED NOT EQUAL 307 --- --- --- 275 AND <>SL AND DOUBLE SIGNED NOT EQUAL 308 --- --- --- 275 AND <D AND DOUBLE FLOATING LESS THAN 337 --- --- --- 657 AND <DT AND TIME LESS THAN 343 --- --- --- 281 AND <F AND FLOATING LESS THAN 331 --- --- --- 600 AND <L AND DOUBLE LESS THAN 311 --- --- --- 275 AND <S AND SIGNED LESS THAN 312 --- --- --- 275 AND <SL AND DOUBLE SIGNED LESS THAN 313 --- --- --- 275 AND = AND EQUAL 300 --- --- --- 275 AND =$ AND STRING EQUALS 670 --- --- --- 1187 AND =D AND DOUBLE FLOATING EQUAL 335 --- --- --- 657 AND =DT AND TIME EQUAL 341 --- --- --- 281 AND =F AND FLOATING EQUAL 329 --- --- --- 600 AND =L AND DOUBLE EQUAL 301 --- --- --- 275 AND =S AND SIGNED EQUAL 302 --- --- --- 275 AND =SL AND DOUBLE SIGNED EQUAL 303 --- --- --- 275 AND > AND GREATER THAN 320 --- --- --- 275 AND >$ AND STRING GREATER THAN 674 --- --- --- 1187 AND >D AND DOUBLE FLOATING GREATER THAN 339 --- --- --- 657 AND >DT AND TIME GREATER THAN 345 --- --- --- 281 108 Chapitre 2-3 Liste alphabétique des instructions par mnémonique Mnémonique Instruction Code fonction Différentiation sur front montant Différentiation sur front descendant Spécification de rafraîchissement immédiat Page AND >F AND FLOATING GREATER THAN 333 --- --- --- 600 AND >L AND DOUBLE GREATER THAN 321 --- --- --- 275 AND >S AND SIGNED GREATER THAN 322 --- --- --- 275 AND >SL AND DOUBLE SIGNED GREATER THAN 323 --- --- --- 275 AND LD AND LOAD --- --- --- --- 164 AND NOT AND NOT --- --- --- !AND NOT 159 AND TST AND BIT TEST 350 --- --- --- 174 AND TSTN AND BIT TEST 351 --- --- --- 174 AND <= AND LESS THAN OR EQUAL 315 --- --- --- 275 AND <=$ AND STRING LESS THAN OR EQUAL 673 --- --- --- 1187 AND <=D AND DOUBLE FLOATING LESS THAN OR EQUAL 338 --- --- --- 657 AND <=DT AND TIME LESS THAN OR EQUAL 344 --- --- --- 281 AND <=F AND FLOATING LESS THAN OR EQUAL 332 --- --- --- 600 AND <=L AND DOUBLE LESS THAN OR EQUAL 316 --- --- --- 275 AND <=S AND SIGNED LESS THAN OR EQUAL 317 --- --- --- 275 AND <=SL AND DOUBLE SIGNED LESS THAN OR EQUAL 318 --- --- --- 275 AND >= AND GREATER THAN OR EQUAL 325 --- --- --- 275 AND >=$ AND STRING GREATER THAN OR EQUALS 675 --- --- --- 1187 AND >=D AND DOUBLE FLOATING GREATER THAN OR EQUAL 340 --- --- --- 657 AND >=DT AND TIME GREATER THAN OR EQUAL 346 --- --- --- 281 AND >=F AND FLOATING GREATER THAN OR EQUAL 334 --- --- --- 600 AND >=L AND DOUBLE GREATER THAN OR EQUAL 326 --- --- --- 275 AND >=S AND SIGNED GREATER THAN OR EQUAL 327 --- --- --- 275 AND >=SL AND DOUBLE SIGNED GREATER THAN OR EQUAL 328 --- --- --- 275 ANDL DOUBLE LOGICAL AND 610 @ANDL --- --- 519 ANDW LOGICAL AND 034 @ANDW --- --- 517 APR ARITHMETIC PROCESS 069 @APR --- --- 540 ASC ASCII CONVERT 086 @ASC --- --- 486 ASFT ASYNCHRONOUS SHIFT REGISTER 017 @ASFT --- --- 349 ASIN ARC SINE 463 @ASIN --- --- 587 ASIND DOUBLE ARC SINE 854 @ASIND --- --- 643 ASL ARITHMETIC SHIFT LEFT 025 @ASL --- --- 354 109 Chapitre 2-3 Liste alphabétique des instructions par mnémonique Mnémonique Instruction Code fonction Différentiation sur front montant Différentiation sur front descendant Spécification de rafraîchissement immédiat Page ASLL DOUBLE SHIFT LEFT 570 @ASLL --- --- 355 ASR ARITHMETIC SHIFT RIGHT 026 @ASR --- --- 357 ASRL DOUBLE SHIFT RIGHT 571 @ASRL --- --- 358 ATAN ARC TANGENT 465 @ATAN --- --- 591 ATAND DOUBLE ARC TANGENT 856 @ATAND --- --- 647 AVG AVERAGE 195 --- --- --- 769 B Mnémonique Instruction Code fonction Différentiation sur front montant Différentiation sur front descendant Spécification de rafraîchissement immédiat Page BAND DEAD BAND CONTROL 681 @BAND --- --- 743 BCD BINARY-TO-BCD 024 @BCD --- --- 469 BCDL DOUBLE BINARY-TOBCD 059 @BCDL --- --- 470 BCDS SIGNED BINARY-TOBCD 471 @BCDS --- --- 505 BCMP UNSIGNED BLOCK COMPARE 068 @BCMP --- --- 304 BCMP2 EXPANDED BLOCK COMPARE 502 @BCMP2 --- --- 306 BCNT BIT COUNTER 067 @BCNT --- --- 556 BCNTC BIT COUNTER 621 @BCNTC --- --- 1212 BDSL DOUBLE SIGNED BINARY-TO-BCD 473 @BDSL --- --- 507 BEND BLOCK PROGRAM END 801 --- --- --- 1128 BIN BCD-TO-BINARY 023 @BIN --- --- 466 BINL DOUBLE BCD-TODOUBLE BINARY 058 @BINL --- --- 467 BINS SIGNED BCD-TOBINARY 470 @BINS --- --- 499 BISL DOUBLE SIGNED BCD-TO-BINARY 472 @BISL --- --- 502 BPPS BLOCK PROGRAM PAUSE 811 --- --- --- 1131 BPRG BLOCK PROGRAM BEGIN 096 --- --- --- 1128 BPRS BLOCK PROGRAM RESTART 812 --- --- --- 1131 BREAK BREAK LOOP 514 --- --- --- 232 BSET BLOCK SET 071 @BSET --- --- 331 C Mnémonique Instruction Code fonction Différentiation sur front montant Différentiation sur front descendant Spécification de rafraîchissement immédiat Page CADD CALENDAR ADD 730 @CADD --- --- 1061 CCL LOAD CONDITION FLAGS 283 @CCL --- --- 1112 CCS SAVE CONDITION FLAGS 282 @CCS --- --- 1110 CJP CONDITIONAL JUMP 510 --- --- --- 223 CJPN CONDITIONAL JUMP 511 --- --- --- 223 CLC CLEAR CARRY 041 @CLC --- --- 1105 CLI CLEAR INTERRUPT 691 @CLI --- --- 809 110 Chapitre 2-3 Liste alphabétique des instructions par mnémonique Mnémonique Instruction Code fonction Différentiation sur front montant Différentiation sur front descendant Spécification de rafraîchissement immédiat Page CLR$ CLEAR STRING 666 @CLR$ --- --- 1182 CMND DELIVER COMMAND 490 @CMND --- --- 1003 CMP COMPARE 020 --- --- !CMP 287 CMPL DOUBLE COMPARE 060 --- --- --- 290 CNR RESET TIMER/ COUNTER 545 @CNR --- --- 267 CNRX RESET TIMER/ COUNTER 548 @CNRX --- --- 267 CNT COUNTER --- --- --- --- 260 CNTX COUNTER 546 --- --- --- 260 CNTR REVERSIBLE COUNTER 012 --- --- --- 263 CNTRX REVERSIBLE COUNTER 548 --- --- --- 263 CNTW COUNTER WAIT 814 --- --- --- 1147 CNTWX COUNTER WAIT 818 --- --- --- 1147 COLL DATA COLLECT 081 @COLL --- --- 338 COLLC DATA COLLECT 567 @COLLC --- --- 1206 COLM LINE TO COLUMN 064 @COLM --- --- 496 COM COMPLEMENT 029 --- --- --- 531 COML DOUBLE COMPLEMENT 614 @COML --- --- 533 COS COSINE 461 @COS --- --- 583 COSD DOUBLE COSINE 852 @COSD --- --- 639 CPS SIGNED BINARY COMPARE 114 --- --- !CPS 293 CPSL DOUBLE SIGNED BINARY COMPARE 115 --- --- --- 296 CSUB CALENDAR SUBTRACT 731 @CSUB --- --- 1065 CTBL COMPARISON TABLE LOAD 882 @CTBL --- --- 837 D Mnémonique Instruction Code fonction Différentiation sur front montant Différentiation sur front descendant Spécification de rafraîchissement immédiat Page DATE CLOCK ADJUSTMENT 735 @DATE --- --- 1073 DBL 16-BIT BINARY TO DOUBLE FLOATING 843 @DBL --- --- 623 DBLL 32-BIT BINARY TO DOUBLE FLOATING 844 @DBLL --- --- 624 DEG RADIANS-TO DEGREES 459 @DEG --- --- 579 DEGD DOUBLE RADIANS TO 850 DEGREES @RADD --- --- 634 DEL$ DELETE STRING 658 @DEL$ --- --- 1178 DI DISABLE INTERRUPTS 693 @DI --- --- 814 DIFD DIFFERENTIATE DOWN 014 --- --- !DIFD 184 DIFU DIFFERENTIATE UP 013 --- --- !DIFU 184 DIM DIMENSION RECORD TABLE 631 @DIM --- --- 678 DIST SINGLE WORD DISTRIBUTE 080 @DIST --- --- 336 DISTC SINGLE WORD DISTRIBUTE 566 @DISTC --- --- 1203 111 Chapitre 2-3 Liste alphabétique des instructions par mnémonique Mnémonique Instruction Code fonction DLNK CPU BUS UNIT I/O REFRESH 226 DMPX DATA ENCODER DOWN CONDITION OFF DSW DIGITAL SWITCH INPUT Différentiation sur front montant Différentiation sur front descendant Page Spécification de rafraîchissement immédiat @DLNK --- --- 921 077 @DMPX --- --- 482 522 --- --- --- 173 210 --- --- --- 890 E Mnémonique Instruction Code fonction Différentiation sur front montant Différentiation sur front descendant Spécification de rafraîchissement immédiat Page ECHRD EXPLICIT WORD READ 723 @ECHRD --- --- 1034 ECHWR EXPLICIT WORD WRITE 724 @ECHWR --- --- 1038 EGATR EXPLICIT GET ATTRIBUTE 721 @EGATR --- --- 1021 EI ENABLE INTERRUPTS 694 --- --- --- 816 ELSE ELSE 803 --- --- --- 1133 EMBC SELECT EM BANK 281 @EMBC --- --- 1106 END END 001 --- --- --- 197 ESATR EXPLICIT SET ATTRIBUTE 722 @ESATR --- --- 1028 EXIT NOT (opérande) CONDITIONAL BLOCK 806 EXIT NOT --- --- --- 1137 EXIT (condition d'entrée) CONDITIONAL BLOCK 806 EXIT --- --- --- 1137 EXIT (opérande) CONDITIONAL BLOCK 806 EXIT --- --- --- 1137 EXP EXPONENT 467 @EXP --- --- 595 EXPD DOUBLE EXPONENT 858 @EXPD --- --- 651 EXPLT EXPLICIT MESSAGE SEND 720 @EXPLT --- --- 1013 F Mnémonique Instruction Code fonction Différentiation sur front montant Différentiation sur front descendant Spécification de rafraîchissement immédiat Page FAL FAILURE ALARM 006 @FAL --- --- 1079 FALS SEVERE FAILURE ALARM 007 --- --- --- 1087 FCS FRAME CHECKSUM 180 @FCS --- --- 700 FDIV FLOATING POINT DIVIDE 079 @FDIV --- --- 552 FIFO FIRST IN FIRST OUT 633 @FIFO --- --- 672 FIND$ FIND IN STRING 660 @FIND$ --- --- 1171 FIX FLOATING TO 16-BIT 450 @FIX --- --- 563 FIXD DOUBLE FLOATING TO 16-BIT BINARY 841 @FIXD --- --- 620 FIXL FLOATING TO 32-BIT 451 @FIXL --- --- 565 FIXLD DOUBLE FLOATING TO 32-BIT BINARY 842 @FIXLD --- --- 621 FLT 16-BIT TO FLOATING 452 @FLT --- --- 566 FLTL 32-BIT TO FLOATING 453 @FLTL --- --- 568 FOR FOR-NEXT LOOPS 512 --- --- --- 229 FPD FAILURE POINT DETECTION 269 --- --- --- 1095 FREAD READ DATA FILE 700 @FREAD --- --- 1045 112 Chapitre 2-3 Liste alphabétique des instructions par mnémonique Mnémonique Instruction Code fonction Différentiation sur front montant Différentiation sur front descendant Spécification de rafraîchissement immédiat Page FRMCV CONVERT ADDRESS FROM CV 284 @FRMCV --- --- 1113 FSTR FLOATING POINT TO ASCII 448 @FSTR --- --- 604 FWRIT WRITE DATA FILE 701 @FWRIT --- --- 1052 FVAL ASCII TO FLOATING POINT 449 @FVAL --- --- 609 G Mnémonique Instruction Code fonction Différentiation sur front montant Différentiation sur front descendant Spécification de rafraîchissement immédiat Page GETID GET VARIABLE ID 286 @GETID --- --- 1214 GETR GET RECORD NUMBER 636 @GETR --- --- 683 GRET GLOBAL SUBROUTINE RETURN 752 --- --- --- 797 GRY GRAY CODE CONVERSION 474 @GRY --- --- 511 GSBN GLOBAL SUBROUTINE ENTRY 751 --- --- --- 794 GSBS GLOBAL SUBROUTINE CALL 750 @GSBS --- --- 786 H Mnémonique Instruction Code fonction Différentiation sur front montant Différentiation sur front descendant Spécification de rafraîchissement immédiat Page HEX ASCII TO HEX 162 @HEX --- --- 490 HKY HEXADECIMAL KEY INPUT 212 --- --- --- 899 HMS SECONDS TO HOURS 066 @HMS --- --- 1070 I Mnémonique Instruction Code fonction Différentiation sur front montant Différentiation sur front descendant Spécification de rafraîchissement immédiat Page IEND IF END 804 --- --- --- 1133 IF NOT (opérande) IF NOT 802 --- --- --- 1133 IF (condition d'entrée) IF 802 --- --- --- 1133 1133 IF (opérande) IF 802 --- --- --- IL INTERLOCK 002 --- --- --- 201 ILC INTERLOCK CLEAR 003 --- --- --- 201 INI MODE CONTROL 880 @INI --- --- 823 INS$ INS$ 657 @INS$ --- --- 1184 IORD INTELLIGENT I/O READ 222 @IORD --- --- 913 IORF I/O REFRESH 097 @IORF --- --- 885 IORS ENABLE PERIPHERAL SERVICING 288 --- --- --- 1123 IOSP DISABLE PERIPHERAL SERVICING 287 @IOSP --- --- 1121 IOWR INTELLIGENT I/O WRITE 223 @IOWR --- --- 917 113 Chapitre 2-3 Liste alphabétique des instructions par mnémonique J Mnémonique Instruction Code fonction Différentiation sur front montant Différentiation sur front descendant Spécification de rafraîchissement immédiat Page JME JUMP END 005 --- --- --- 219 JME0 MULTIPLE JUMP END 516 --- --- --- 227 JMP JUMP 004 --- --- --- 219 JMP0 MULTIPLE JUMP 515 --- --- --- 227 K Mnémonique KEEP Instruction KEEP Code fonction 011 Différentiation sur front montant --- Différentiation sur front descendant --- Spécification de rafraîchissement immédiat !KEEP Page 179 L Mnémonique Instruction Code fonction Différentiation sur front montant Différentiation sur front descendant Spécification de rafraîchissement immédiat Page LD LOAD --- @LD %LD !LD 153 LD < LOAD LESS THAN 310 --- --- --- 275 LD <$ LOAD STRING LESS THAN 672 --- --- --- 1187 LD <D LOAD DOUBLE FLOATING LESS THAN 337 --- --- --- 657 LD <DT LOAD TIME LESS THAN 343 --- --- --- 281 LD <F LOAD FLOATING LESS THAN 331 --- --- --- 600 LD <> LOAD NOT EQUAL 305 --- --- --- 275 LD <>$ LOAD STRING NOT EQUAL 671 --- --- --- 1187 LD <>D LOAD DOUBLE FLOATING NOT EQUAL 336 --- --- --- 657 LD <>DT LOAD TIME NOT EQUAL 342 --- --- --- 281 LD <>F LOAD FLOATING NOT EQUAL 330 --- --- --- 600 LD <>L LOAD DOUBLE NOT EQUAL 306 --- --- --- 275 LD <>S LOAD SIGNED NOT EQUAL 307 --- --- --- 275 LD <>SL LOAD DOUBLE SIGNED NOT EQUAL 308 --- --- --- 275 LD <L LOAD DOUBLE LESS THAN 311 --- --- --- 275 LD <S LOAD SIGNED LESS THAN 312 --- --- --- 275 LD <SL LOAD DOUBLE SIGNED LESS THAN 313 --- --- --- 275 LD = LOAD EQUAL 300 --- --- --- 275 LD =$ LOAD STRING EQUALS 670 --- --- --- 1187 LD =D LOAD DOUBLE FLOATING EQUAL 335 --- --- --- 657 LD =DT LOAD TIME EQUAL 341 --- --- --- 281 LD =F LOAD FLOATING EQUAL 329 --- --- --- 600 LD =L LOAD DOUBLE EQUAL 301 --- --- --- 275 LD =S LOAD SIGNED EQUAL 302 --- --- --- 275 114 Chapitre 2-3 Liste alphabétique des instructions par mnémonique Mnémonique Instruction Code fonction Différentiation sur front montant Différentiation sur front descendant Spécification de rafraîchissement immédiat Page LD =SL LOAD DOUBLE SIGNED EQUAL 303 --- --- --- 275 LD > LOAD GREATER THAN 320 --- --- --- 275 LD >$ LOAD STRING GREATER THAN 674 --- --- --- 1187 LD >D LOAD DOUBLE FLOATING GREATER THAN 339 --- --- --- 657 LD >DT LOAD TIME GREATER 345 THAN --- --- --- 281 LD >F LOAD FLOATING GREATER THAN 333 --- --- --- 600 LD >L LOAD DOUBLE GREATER THAN 321 --- --- --- 275 LD >S LOAD SIGNED GREATER THAN 322 --- --- --- 275 LD >SL LOAD DOUBLE SIGNED GREATER THAN 323 --- --- --- 275 LD NOT LOAD NOT --- --- --- !LD NOT 155 LD TST LOAD BIT TEST 350 --- --- --- 174 LD TSTN LOAD BIT TEST 351 --- --- --- 174 LD <= LOAD LESS THAN OR EQUAL 315 --- --- --- 275 LD <=$ LOAD STRING LESS THAN OR EQUAL 673 --- --- --- 1187 LD <=D LOAD DOUBLE FLOATING LESS THAN OR EQUAL 338 --- --- --- 657 LD <=DT LOAD TIME LESS THAN OR EQUAL 344 --- --- --- 281 LD <=F LOAD FLOATING LESS THAN OR EQUAL 332 --- --- --- 600 LD <=L LOAD DOUBLE LESS THAN OR EQUAL 316 --- --- --- 275 LD <=S LOAD SIGNED LESS THAN OR EQUAL 317 --- --- --- 275 LD <=SL LOAD DOUBLE SIGNED LESS THAN OR EQUAL 318 --- --- --- 275 LD >= LOAD GREATER THAN OR EQUAL 325 --- --- --- 275 LD >=$ LOAD STRING GREATER THAN OR EQUALS 675 --- --- --- 1187 LD >=D LOAD DOUBLE FLOATING GREATER THAN OR EQUAL 340 --- --- --- 657 LD >=DT LOAD TIME GREATER 346 THAN OR EQUAL --- --- --- 281 LD >=F LOAD FLOATING GREATER THAN OR EQUAL 334 --- --- --- 600 LD >=L LOAD DOUBLE GREATER THAN OR EQUAL 326 --- --- --- 275 LD >=S LOAD SIGNED GREATER THAN OR EQUAL 327 --- --- --- 275 LD >=SL LOAD DOUBLE SIGNED GREATER THAN OR EQUAL 328 --- --- --- 275 115 Chapitre 2-3 Liste alphabétique des instructions par mnémonique Mnémonique Instruction Code fonction Différentiation sur front montant Différentiation sur front descendant Spécification de rafraîchissement immédiat Page LEFT$ GET STRING LEFT 652 @LEFT$ --- --- LEN$ STRING LENGTH 650 @LEN$ --- --- 1164 1173 LEND NOT (opérande) LOOP END NOT 810 --- --- --- 1153 LEND (condition d'entrée) LOOP END 810 --- --- --- 1153 LEND (opérande) LOOP END 810 --- --- --- 1153 LIFO LAST IN FIRST OUT 634 @LIFO --- --- 675 LINE COLUMN TO LINE 063 @LINE --- --- 494 LMT LIMIT CONTROL 680 @LMT --- --- 741 LOG LOGARITHM 468 @LOG --- --- 597 LOGD DOUBLE LOGARITHM 859 @LOGD --- --- 653 LOOP LOOP --- --- --- 1153 809 M Mnémonique Instruction Code fonction Différentiation sur front montant Différentiation sur front descendant Spécification de rafraîchissement immédiat Page MAX FIND MAXIMUM 182 @MAX --- --- MCMP MULTIPLE COMPARE 019 @MCMP --- --- 689 299 MCRO MACRO 099 @MCRO --- --- 779 MID$ GET STRING MIDDLE 654 @MID$ --- --- 1168 MILC MULTI-INTERLOCK CLEAR 519 --- --- --- 205 MILH MULTI-INTERLOCK DIFFERENTIATION HOLD 517 --- --- --- 205 MILR MULTI-INTERLOCK DIFFERENTIATION RELEASE 518 --- --- --- 205 MIN FIND MINIMUM 183 @MIN --- --- 693 MLPX DATA DECODER 076 @MLPX --- --- 477 MOV MOVE 021 @MOV --- !MOV 315 MOV$ MOVE STRING 664 @MOV$ --- --- 1159 MOVB MOVE BIT 082 @MOVB --- --- 321 MOVBC MOVE BIT 568 @MOVBC --- --- 1211 MOVD MOVE DIGIT 083 @MOVD --- --- 323 MOVL DOUBLE MOVE 498 @MOVL --- --- 318 MOVR MOVE TO REGISTER 560 @MOVR --- --- 340 MOVRW MOVE TIMER/ COUNTER PV TO REGISTER 561 --- --- --- 342 MSG DISPLAY MESSAGE 046 @MSG --- --- 1058 MSKR READ INTERRUPT MASK 692 @MSKR --- --- 804 MSKS SET INTERRUPT MASK 690 @MSKS --- --- 798 MTIM MULTI-OUTPUT TIMER 543 --- --- --- 254 MTIMX MULTI-OUTPUT TIMER 554 --- --- --- 254 MTR MATRIX INPUT 213 --- --- --- 904 MVN MOVE NOT 022 @MVN --- --- 317 MVNL DOUBLE MOVE NOT 499 @MVNL --- --- 320 116 Chapitre 2-3 Liste alphabétique des instructions par mnémonique N Mnémonique Instruction Code fonction Différentiation sur front montant Différentiation sur front descendant Spécification de rafraîchissement immédiat Page NASL SHIFT N-BITS LEFT 580 @NASL --- --- 381 NASR SHIFT N-BITS RIGHT 581 @NASR --- --- 387 NEG 2'S COMPLEMENT 160 @NEG --- --- 472 NEGL DOUBLE 2’S COMPLEMENT 161 @NEGL --- --- 474 NEXT FOR-NEXT LOOPS 513 --- --- --- 229 NOP NO OPERATION 000 --- --- --- 198 NOT NOT 520 --- --- --- 172 NSFL SHIFT N-BIT DATA LEFT 578 @NSFL --- --- 377 NSFR SHIFT N-BIT DATA RIGHT 579 @NSFR --- --- 379 NSLL DOUBLE SHIFT N-BITS LEFT 582 @NSLL --- --- 384 NSRL DOUBLE SHIFT N-BITS RIGHT 583 @NSRL --- --- 389 O Mnémonique Instruction Code fonction Différentiation sur front montant Différentiation sur front descendant Spécification de rafraîchissement immédiat Page OR OR --- @OR %OR !OR OR < OR LESS THAN 310 --- --- --- 161 275 OR <$ OR STRING LESS THAN 672 --- --- --- 1187 OR <> OR NOT EQUAL 305 --- --- --- 275 OR <>$ OR STRING NOT EQUAL 671 --- --- --- 1187 OR <>D OR DOUBLE FLOATING NOT EQUAL 336 --- --- --- 657 OR <>DT OR TIME NOT EQUAL 342 --- --- --- 281 OR <>F OR FLOATING NOT EQUAL 330 --- --- --- 600 OR <>L OR DOUBLE NOT EQUAL 306 --- --- --- 275 OR <>S OR SIGNED NOT EQUAL 307 --- --- --- 275 OR <>SL OR DOUBLE SIGNED NOT EQUAL 308 --- --- --- 275 OR <D OR DOUBLE FLOATING LESS THAN 337 --- --- --- 657 OR <DT OR TIME LESS THAN 343 --- --- --- 281 OR <F OR FLOATING LESS THAN 331 --- --- --- 600 OR <L OR DOUBLE LESS THAN 311 --- --- --- 275 OR <S OR SIGNED LESS THAN 312 --- --- --- 275 OR <SL OR DOUBLE SIGNED LESS THAN 313 --- --- --- 275 OR = OR EQUAL 300 --- --- --- 275 OR =$ OR STRING EQUALS 670 --- --- --- 1187 OR =D OR DOUBLE FLOATING EQUAL 335 --- --- --- 657 OR =DT OR TIME EQUAL 341 --- --- --- 281 OR =F OR FLOATING EQUAL 329 --- --- --- 600 117 Chapitre 2-3 Liste alphabétique des instructions par mnémonique Mnémonique Instruction Code fonction Différentiation sur front montant Différentiation sur front descendant Spécification de rafraîchissement immédiat Page OR =L OR DOUBLE EQUAL 301 --- --- --- 275 OR =S OR SIGNED EQUAL 302 --- --- --- 275 OR =SL OR DOUBLE SIGNED EQUAL 303 --- --- --- 275 OR > OR GREATER THAN 320 --- --- --- 275 OR >$ OR STRING GREATER 674 THAN --- --- --- 1187 OR >D OR DOUBLE FLOATING GREATER THAN 339 --- --- --- 657 OR >DT OR TIME GREATER THAN 345 --- --- --- 281 OR >F OR FLOATING GREATER THAN 333 --- --- --- 600 OR >L OR DOUBLE GREATER THAN 321 --- --- --- 275 OR >S OR SIGNED GREATER THAN 322 --- --- --- 275 OR >SL OR DOUBLE SIGNED GREATER THAN 323 --- --- --- 275 OR LD OR LOAD --- --- --- --- 166 OR NOT OR NOT --- --- --- !OR NOT 163 OR TST OR BIT TEST 350 --- --- --- 174 OR TSTN OR BIT TEST 351 --- --- --- 174 OR <= OR LESS THAN OR EQUAL 315 --- --- --- 275 OR <=$ OR STRING LESS THAN OR EQUALS 673 --- --- --- 1187 OR <=D OR DOUBLE FLOATING LESS THAN OR EQUAL 338 --- --- --- 657 OR <=DT OR TIME LESS THAN OR EQUAL 344 --- --- --- 281 OR <=F OR FLOATING LESS THAN OR EQUAL 332 --- --- --- 600 OR <=L OR DOUBLE LESS THAN OR EQUAL 316 --- --- --- 275 OR <=S OR SIGNED LESS THAN OR EQUAL 317 --- --- --- 275 OR <=SL OR DOUBLE SIGNED LESS THAN OR EQUAL 318 --- --- --- 275 OR >= OR GREATER THAN OR EQUAL 325 --- --- --- 275 OR >=$ OR STRING GREATER 675 THAN OR EQUALS --- --- --- 1187 OR >=D OR DOUBLE FLOATING GREATER THAN OR EQUAL 340 --- --- --- 657 OR >=DT OR TIME GREATER THAN OR EQUAL 346 --- --- --- 281 OR >=F OR FLOATING GREATER THAN OR EQUAL 334 --- --- --- 600 OR >=L OR DOUBLE GREATER THAN OR EQUAL 326 --- --- --- 275 OR >=S OR SIGNED GREATER THAN OR EQUAL 327 --- --- --- 275 OR >=SL OR DOUBLE SIGNED GREATER THAN OR EQUAL 328 --- --- --- 275 118 Chapitre 2-3 Liste alphabétique des instructions par mnémonique Mnémonique Instruction Code fonction Différentiation sur front montant Différentiation sur front descendant Spécification de rafraîchissement immédiat Page ORG ORIGIN SEARCH 889 @ORG --- --- 862 ORW LOGICAL OR 035 @ORW --- --- 520 ORWL DOUBLE LOGICAL OR 611 @ORWL --- --- 522 OUT OUTPUT --- --- --- !OUT 177 OUTB SINGLE BIT OUTPUT 534 @OUTB --- !OUTB 195 OUT NOT OUTPUT NOT --- --- --- !OUT NOT 178 P Mnémonique Instruction Code fonction Différentiation sur front montant Différentiation sur front descendant Spécification de rafraîchissement immédiat Page PID PID CONTROL 190 --- --- --- 720 PIDAT PID CONTROL WITH AUTOTUNING 191 --- --- --- 731 PMCR PROTOCOL MACRO 260 @PMCR --- --- 928 PRV HIGH-SPEED COUNTER PV READ 881 @PRV --- --- 827 PRV2 COUNTER FREQUENCY CONVERT 883 @PRV2 --- --- 833 PULS SET PULSES 886 @PULS --- --- 846 PLS2 PULSE OUTPUT 887 @PLS2 --- --- 849 PUSH PUSH ONTO STACK 632 @PUSH --- --- 669 PWM PULSE WITH VARIABLE DUTY FACTOR 891 @PWM --- --- 865 PWR EXPONENTIAL POWER 840 @PWR --- --- 599 PWRD DOUBLE EXPONENTIAL POWER 860 @PWRD --- --- 655 R Mnémonique Instruction Code fonction Différentiation sur front montant Différentiation sur front descendant Spécification de rafraîchissement immédiat Page RAD DEGREES TO RADIANS 458 @RAD --- --- 597 RADD DOUBLE DEGREES TO RADIANS 849 @RADD --- --- 634 RECV NETWORK RECEIVE 098 @RECV --- --- 997 RET SUBROUTINE RETURN 093 --- --- --- 786 RGHT$ GET STRING RIGHT 653 @RGHT$ --- --- 1166 RLNC ROTATE LEFT WITHOUT CARRY 574 @RLNC --- --- 367 RLNL DOUBLE ROTATE LEFT WITHOUT CARRY 576 @RLNL --- --- 369 ROL ROTATE LEFT 027 @ROL --- --- 360 ROLL DOUBLE ROTATE LEFT 572 @ROLL --- --- 362 ROOT BCD SQUARE ROOT 072 @ROOT --- --- 536 ROR ROTATE RIGHT 028 @ROR --- --- 364 RORL DOUBLE ROTATE RIGHT 573 @RORL --- --- 365 ROTB BINARY ROOT 620 @ROTB --- --- 534 RPLC$ REPLACE IN STRING 661 @RPLC$ --- --- 1175 RRNC ROTATE RIGHT WITHOUT CARRY 575 @RRNC --- --- 371 119 Chapitre 2-3 Liste alphabétique des instructions par mnémonique Mnémonique Instruction Code fonction Différentiation sur front montant Différentiation sur front descendant Spécification de rafraîchissement immédiat Page RRNL DOUBLE ROTATE RIGHT WITHOUT CARRY 577 @RRNL --- --- 372 RSET RESET --- @RSET %RSET !RSET 186 RSTA MULTIPLE BIT RESET 531 @RSTA --- --- 189 RSTB SINGLE BIT RESET 533 @RSTB --- !RSTB 192 RXD RECEIVE 235 @RXD --- --- 944 RXDU RECEIVE VIA SERIAL COMMUNICATIONS UNIT 255 @RXDU --- --- 960 S Mnémonique Instruction Code fonction Différentiation sur front montant Différentiation sur front descendant Spécification de rafraîchissement immédiat Page SBN SUBROUTINE ENTRY 092 --- --- --- 783 SBS SUBROUTINE CALL 091 @SBS --- --- 773 SCL SCALING 194 @SCL --- --- 757 SCL2 SCALING 2 486 @SCL2 --- --- 762 SCL3 SCALING 3 487 @SCL3 --- --- 766 SDEC 7-SEGMENT DECODER 078 @SDEC --- --- 928 SDEL STACK DATA DELETE 642 SEC HOURS TO SECONDS 065 @SDEL --- --- 716 @SEC --- --- 1068 SEND NETWORK SEND 090 @SEND --- --- 991 SET SET --- @SET %SET !SET 186 SETA MULTIPLE BIT SET 530 @SETA --- --- 189 SETB SINGLE BIT SET 532 @SETB --- !SETB 192 SETR SET RECORD LOCATION 635 @SETR --- --- 681 SFT SHIFT REGISTER 010 --- --- --- 345 SFTR REVERSIBLE SHIFT REGISTER 084 @SFTR --- --- 346 SIGN 16-BIT TO 32-BIT SIGNED BINARY 600 @SIGN --- --- 476 SIN SINE 460 @SIN --- --- 581 SIND DOUBLE SINE 851 @SIND --- --- 637 SINS STACK DATA INSERT 641 @SINS --- --- 713 SLD ONE DIGIT SHIFT LEFT 074 @SLD --- --- 374 SNUM STACK SIZE READ 638 @SNUM --- --- 704 SNXT STEP START 009 --- --- --- 868 SPED SPEED OUTPUT 885 @SPED --- --- 841 SQRT SQUARE ROOT 466 @SQRT --- --- 593 SQRTD DOUBLE SQUARE ROOT 857 @SQRTD --- --- 649 SRCH DATA SEARCH 181 @SRCH --- --- 685 SRD ONE DIGIT SHIFT RIGHT 075 @SRD --- --- 376 SREAD STACK DATA READ 639 @SREAD --- --- 707 SSET SET STACK 630 @SSET --- --- 666 STC SET CARRY 040 @STC --- --- 1104 STEP STEP DEFINE 008 --- --- --- 868 STUP CHANGE SERIAL PORT SETUP 237 @STUP --- --- 968 SUM SUM 184 @SUM --- --- 697 120 Chapitre 2-3 Liste alphabétique des instructions par mnémonique Mnémonique Instruction Code fonction Différentiation sur front montant Différentiation sur front descendant Spécification de rafraîchissement immédiat Page SWAP SWAP BYTES 637 @SWAP --- --- 687 SWRIT STACK DATA WRITE 640 @SWRIT --- --- 710 T Mnémonique Instruction Code fonction Différentiation sur front montant Différentiation sur front descendant Spécification de rafraîchissement immédiat Page TAN TANGENT 462 @TAN --- --- 585 TAND DOUBLE TANGENT 853 @TAND --- --- 641 TCMP TABLE COMPARE 085 @TCMP --- --- 301 TIM TIMER --- --- --- --- 235 TIMH HIGH-SPEED TIMER 015 --- --- --- 240 TIMHX HIGH-SPEED TIMER 551 --- --- --- 240 TIML LONG TIMER 542 --- --- --- 251 TIMLX LONG TIMER 553 --- --- --- 251 TIMW TIMER WAIT 813 --- --- --- 1144 TIMWX TIMER WAIT 816 --- --- --- 1144 TIMX TIMER 505 --- --- --- 235 TKOF TASK OFF 821 @TKOF --- --- 1196 TKON TASK ON 820 @TKON --- --- 1192 TKY TEN KEY INPUT 211 @TKY --- --- 896 244 TMHH ONE-MS TIMER 540 --- --- --- TMHHX ONE-MS TIMER 552 --- --- --- 244 TMHW HIGH-SPEED TIMER WAIT 815 --- --- --- 1150 TMHWX HIGH-SPEED TIMER WAIT 817 --- --- --- 1150 TOCV CONVERT ADDRESS TO CV 285 @TOCV --- --- 1117 TPO TIMEPROPORTIONAL OUTPUT 685 --- --- --- 749 TRSM TRACE MEMORY SAMPLING 045 --- --- --- 1075 TTIM ACCUMULATIVE TIMER 087 --- --- --- 247 TTIMX ACCUMULATIVE TIMER 555 --- --- --- 247 TXD TRANSMIT 236 @TXD --- --- 937 TXDU TRANSMIT VIA SERIAL COMMUNICATIONS UNIT 256 @TXDU --- --- 952 U Mnémonique UP Instruction CONDITION ON Code fonction 521 Différentiation sur front montant --- Différentiation sur front descendant --- Spécification de rafraîchissement immédiat --- Page 173 W Mnémonique WAIT NOT (opérande) Instruction Code fonction Différentiation sur front montant Différentiation sur front descendant Spécification de rafraîchissement immédiat Page ONE CYCLE AND WAIT NOT 805 --- --- --- 1140 WAIT (condition ONE CYCLE AND d'entrée) WAIT 805 --- --- --- 1140 121 Chapitre 2-3 Liste alphabétique des instructions par mnémonique Mnémonique Instruction Code fonction Différentiation sur front montant Différentiation sur front descendant Spécification de rafraîchissement immédiat Page WAIT (opérande) ONE CYCLE AND WAIT 805 --- --- --- 1140 WDT EXTEND MAXIMUM CYCLE TIME 094 @WDT --- --- 1108 WSFT WORD SHIFT 016 @WSFT --- --- 352 X Mnémonique XCGL Instruction Code fonction Différentiation sur front montant Différentiation sur front descendant Spécification de rafraîchissement immédiat Page DOUBLE DATA EXCHANGE 562 @XCGL --- --- 334 XCHG DATA EXCHANGE 073 @XCHG --- --- 333 XCHG$ EXCHANGE STRING 665 @XCHG$ --- --- 1180 XFER BLOCK TRANSFER 070 @XFER --- --- 328 XFERC BLOCK TRANSFER 565 @XFERC --- --- 1201 XFRB MULTIPLE BIT TRANSFER 062 @XFRB --- --- 326 XNRL DOUBLE EXCLUSIVE NOR 613 @XNRL --- --- 529 XNRW EXCLUSIVE NOR 037 @XNRW --- --- 528 XORL DOUBLE EXCLUSIVE OR 612 @XORL --- --- 526 XORW EXCLUSIVE OR 036 @XORW --- --- 524 Z Mnémonique Instruction Code fonction Différentiation sur front montant Différentiation sur front descendant Spécification de rafraîchissement immédiat Page ZCP AREA RANGE COMPARE 088 --- --- --- 310 ZCPL DOUBLE AREA RANGE COMPARE 116 --- --- --- 313 ZONE DEAD ZONE CONTROL 682 @ZONE --- --- 746 Symboles Mnémonique Instruction Code fonction Différentiation sur front montant Différentiation sur front descendant Spécification de rafraîchissement immédiat Page 7SEG 7-SEGMENT DISPLAY OUTPUT 214 --- --- --- 908 + SIGNED BINARY ADD WITHOUT CARRY 400 @+ --- --- 410 +$ CONCATENATE STRING 656 @+$ --- --- 1161 ++ INCREMENT BINARY 590 @++ --- --- 393 ++B INCREMENT BCD 594 @++B --- --- 401 ++BL DOUBLE INCREMENT BCD 595 @++BL --- --- 403 ++L DOUBLE INCREMENT BINARY 591 @++L --- --- 395 +B BCD ADD WITHOUT CARRY 404 @+B --- --- 418 +BC BCD ADD WITH CARRY 406 @+BC --- --- 421 +BCL DOUBLE BCD ADD WITH CARRY 407 @+BCL --- --- 423 +BL DOUBLE BCD ADD WITHOUT CARRY 405 @+BL --- --- 419 122 Chapitre 2-3 Liste alphabétique des instructions par mnémonique Mnémonique Instruction Code fonction Différentiation sur front montant Différentiation sur front descendant Page Spécification de rafraîchissement immédiat +C SIGNED BINARY ADD WITH CARRY 402 @+C --- --- 414 +CL DOUBLE SIGNED BINARY ADD WITH CARRY 403 @+CL --- --- 416 +D DOUBLE FLOATINGPOINT ADD 845 @+D --- --- 626 +F FLOATING-POINT ADD 454 @+F --- --- 570 +L DOUBLE SIGNED BINARY ADD WITHOUT CARRY 401 @+L --- --- 412 – SIGNED BINARY SUBTRACT WITHOUT CARRY 410 @– --- --- 424 –– DECREMENT BINARY 592 @– – --- --- 397 – –B DECREMENT BCD 596 @– –B --- --- 405 – –BL DOUBLE DECREMENT BCD 597 @– –BL --- --- 407 – –L DOUBLE 593 DECREMENT BINARY @– –L --- --- 399 –B BCD SUBTRACT WITHOUT CARRY 414 @–B --- --- 435 –BC BCD SUBTRACT WITH CARRY 416 @–BC --- --- 440 –BCL DOUBLE BCD SUBTRACT WITH CARRY 417 @–BCL --- --- 441 –BL DOUBLE BCD SUBTRACT WITHOUT CARRY 415 @–BL --- --- 436 –C SIGNED BINARY SUBTRACT WITH CARRY 412 @–C --- --- 430 –CL DOUBLE SIGNED BINARY SUBTRACT WITH CARRY 413 @–CL --- --- 432 −D DOUBLE FLOATINGPOINT SUBTRACT 846 @−D --- --- 628 –F FLOATING-POINT SUBTRACT 455 @–F --- --- 572 * SIGNED BINARY MULTIPLY 420 @* --- --- 443 *B BCD MULTIPLY 424 @*B --- --- 450 *BL DOUBLE BCD MULTIPLY 425 @*BL --- --- 452 *D DOUBLE FLOATINGPOINT MULTIPLY 847 @*D --- --- 630 *F FLOATING-POINT MULTIPLY 456 @*F --- --- 574 *L DOUBLE SIGNED BINARY MULTIPLY 421 @*L --- --- 445 *U UNSIGNED BINARY MULTIPLY 422 @*U --- --- 447 *UL DOUBLE UNSIGNED BINARY MULTIPLY 423 @*UL --- --- 449 –L DOUBLE SIGNED BINARY SUBTRACT WITHOUT CARRY 411 @–L --- --- 426 / SIGNED BINARY DIVIDE 430 @/ --- --- 454 /B BCD DIVIDE 434 @/B --- --- 462 /BL DOUBLE BCD DIVIDE 435 @/BL --- --- 464 123 Chapitre 2-3 Liste alphabétique des instructions par mnémonique Mnémonique Instruction Code fonction Différentiation sur front montant Différentiation sur front descendant Spécification de rafraîchissement immédiat Page /D DOUBLE FLOATINGPOINT DIVIDE 848 @/D --- --- 632 /F FLOATING-POINT DIVIDE 457 @/F --- --- 576 /L DOUBLE SIGNED BINARY DIVIDE 431 @/L --- --- 456 /U UNSIGNED BINARY DIVIDE 432 @/U --- --- 458 /UL DOUBLE UNSIGNED BINARY DIVIDE 433 @/UL --- --- 460 124 Chapitre 2-4 Liste des instructions par code fonction 2-4 Liste des instructions par code fonction Code fonction --- Mnémonique LD Instruction LOAD Différentiation sur front montant @LD Différentiation sur front descendant %LD Spécification de rafraîchissement immédiat !LD Page 153 --- LD NOT LOAD NOT --- --- !LD NOT 155 --- AND AND @AND %AND !AND 157 --- AND NOT AND NOT --- --- !AND NOT 159 --- OR OR @OR %OR !OR 161 --- OR NOT OR NOT --- --- !OR NOT 163 --- AND LD AND LOAD --- --- --- 164 --- OR LD OR LOAD --- --- --- 166 --- OUT OUTPUT --- --- !OUT 177 178 --- OUT NOT OUTPUT NOT --- --- !OUT NOT --- SET SET @SET %SET !SET 186 --- RSET RESET @RSET %RSET !RSET 186 --- TIM TIMER --- --- --- 235 --- TIMX TIMER --- --- --- 235 --- CNT COUNTER --- --- --- 260 000 NOP NO OPERATION --- --- --- 198 001 END END --- --- --- 197 002 IL INTERLOCK --- --- --- 201 003 ILC INTERLOCK CLEAR --- --- --- 201 004 JMP JUMP --- --- --- 219 005 JME JUMP END --- --- --- 219 006 FAL FAILURE ALARM @FAL --- --- 1079 007 FALS SEVERE FAILURE ALARM --- --- --- 1087 008 STEP STEP DEFINE --- --- --- 868 009 SNXT STEP START --- --- --- 868 010 SFT SHIFT REGISTER --- --- --- 345 011 KEEP KEEP --- --- !KEEP 179 012 CNTR REVERSIBLE COUNTER --- --- --- 263 013 DIFU DIFFERENTIATE UP --- --- !DIFU 184 014 DIFD DIFFERENTIATE DOWN --- --- !DIFD 184 015 TIMH HIGH-SPEED TIMER --- --- --- 240 016 WSFT WORD SHIFT @WSFT --- --- 352 017 ASFT ASYNCHRONOUS SHIFT REGISTER @ASFT --- --- 349 @MCMP 019 MCMP MULTIPLE COMPARE 020 CMP UNSIGNED COMPARE --- --- --- 299 --- !CMP 287 021 MOV MOVE @MOV --- !MOV 315 022 MVN MOVE NOT @MVN --- --- 317 023 BIN BCD-TO-BINARY @BIN --- --- 466 024 BCD BINARY-TO-BCD @BCD --- --- 469 025 ASL ARITHMETIC SHIFT LEFT @ASL --- --- 354 026 ASR ARITHMETIC SHIFT RIGHT @ASR --- --- 357 027 ROL ROTATE LEFT @ROL --- --- 360 028 ROR ROTATE RIGHT @ROR --- --- 364 029 COM COMPLEMENT @COM --- --- 531 034 ANDW LOGICAL AND @ANDW --- --- 517 035 ORW LOGICAL OR @ORW --- --- 520 125 Chapitre 2-4 Liste des instructions par code fonction Code fonction Mnémonique Instruction Différentiation sur front montant Différentiation sur front descendant Spécification de rafraîchissement immédiat Page 036 XORW EXCLUSIVE OR @XORW --- --- 037 XNRW EXCLUSIVE NOR @XNRW --- --- 524 528 040 STC SET CARRY @STC --- --- 1104 041 CLC CLEAR CARRY @CLC --- --- 1105 045 TRSM TRACE MEMORY SAMPLING --- --- --- 1075 046 MSG DISPLAY MESSAGE @MSG --- --- 1058 058 BINL DOUBLE BCD-TODOUBLE BINARY @BINL --- --- 467 059 BCDL DOUBLE BINARY-TOBCD @BCDL --- --- 470 060 CMPL DOUBLE UNSIGNED COMPARE --- --- --- 290 062 XFRB MULTIPLE BIT TRANSFER @XFRB --- --- 326 063 LINE COLUMN TO LINE @LINE --- --- 494 064 COLM LINE TO COLUMN @COLM --- --- 496 065 SEC HOURS TO SECONDS @SEC --- --- 1068 066 HMS SECONDS TO HOURS @HMS --- --- 1070 067 BCNT BIT COUNTER @BCNT --- --- 556 068 BCMP UNSIGNED BLOCK COMPARE @BCMP --- --- 304 069 APR ARITHMETIC PROCESS @APR --- --- 540 070 XFER BLOCK TRANSFER @XFER --- --- 328 071 BSET BLOCK SET @BSET --- --- 331 072 ROOT BCD SQUARE ROOT @ROOT --- --- 536 073 XCHG DATA EXCHANGE @XCHG --- --- 333 074 SLD ONE DIGIT SHIFT LEFT @SLD --- --- 374 075 SRD ONE DIGIT SHIFT RIGHT @SRD --- --- 376 076 MLPX DATA DECODER @MLPX --- --- 477 077 DMPX DATA ENCODER @DMPX --- --- 482 078 SDEC 7-SEGMENT DECODER @SDEC --- --- 928 079 FDIV FLOATING POINT DIVIDE @FDIV --- --- 552 080 DIST SINGLE WORD DISTRIBUTE @DIST --- --- 336 081 COLL DATA COLLECT @COLL --- --- 338 321 082 MOVB MOVE BIT @MOVB --- --- 083 MOVD MOVE DIGIT @MOVD --- --- 323 084 SFTR REVERSIBLE SHIFT REGISTER @SFTR --- --- 346 085 TCMP TABLE COMPARE @TCMP --- --- 301 086 ASC ASCII CONVERT @ASC --- --- 486 087 TTIM ACCUMULATIVE TIMER --- --- --- 247 088 ZCP AREA RANGE COMPARE --- --- --- 310 090 SEND NETWORK SEND @SEND --- --- 991 091 SBS SUBROUTINE CALL @SBS --- --- 773 092 SBN SUBROUTINE ENTRY --- --- --- 783 093 RET SUBROUTINE RETURN --- --- --- 786 126 Chapitre 2-4 Liste des instructions par code fonction Code fonction Mnémonique Instruction Différentiation sur front montant Différentiation sur front descendant Spécification de rafraîchissement immédiat Page 094 WDT EXTEND MAXIMUM CYCLE TIME @WDT --- --- 1108 096 BPRG BLOCK PROGRAM BEGIN --- --- --- 1128 097 IORF I/O REFRESH @IORF --- --- 885 098 RECV NETWORK RECEIVE @RECV --- --- 997 099 MCRO MACRO @MCRO --- --- 779 114 CPS SIGNED BINARY COMPARE --- --- !CPS 293 115 CPSL DOUBLE SIGNED BINARY COMPARE --- --- --- 296 116 ZCPL DOUBLE AREA RANGE COMPARE --- --- --- 313 160 NEG 2'S COMPLEMENT @NEG --- --- 472 161 NEGL DOUBLE 2’S COMPLEMENT @NEGL --- --- 474 162 HEX ASCII TO HEX @HEX --- --- 490 180 FCS FRAME CHECKSUM @FCS --- --- 700 181 SRCH DATA SEARCH @SRCH --- --- 685 689 182 MAX FIND MAXIMUM @MAX --- --- 183 MIN FIND MINIMUM @MIN --- --- 693 184 SUM SUM @SUM --- --- 697 190 PID PID CONTROL --- --- --- 720 191 PIDAT PID CONTROL WITH AUTOTUNING --- --- --- 731 194 SCL SCALING @SCL --- --- 757 195 AVG AVERAGE --- --- --- 769 210 DSW DIGITAL SWITCH INPUT --- --- --- 890 211 TKY TEN KEY INPUT @TKY --- --- 896 212 HKY HEXADECIMAL KEY INPUT --- --- --- 899 213 MTR MATRIX INPUT --- --- --- 904 214 7SEG 7-SEGMENT DISPLAY OUTPUT --- --- --- 908 222 IORD INTELLIGENT I/O READ @IORD --- --- 913 223 IOWR INTELLIGENT I/O WRITE @IOWR --- --- 917 226 DLNK CPU BUS UNIT I/O REFRESH @DLNK --- --- 921 235 RXD RECEIVE @RXD --- --- 944 236 TXD TRANSMIT @TXD --- --- 937 255 RXDU RECEIVE VIA SERIAL COMMUNICATIONS UNIT @RXDU --- --- 960 256 TXDU TRANSMIT VIA SERIAL COMMUNICATIONS UNIT @TXDU --- --- 952 237 STUP CHANGE SERIAL PORT SETUP @STUP --- --- 968 260 PMCR PROTOCOL MACRO @PMCR --- --- 928 269 FPD FAILURE POINT DETECTION --- --- --- 1095 281 EMBC SELECT EM BANK @EMBC --- --- 1106 282 CCS SAVE CONDITION FLAGS @CCS --- --- 1110 283 CCL LOAD CONDITION FLAGS @CCL --- --- 1112 127 Chapitre 2-4 Liste des instructions par code fonction Code fonction Mnémonique Instruction Différentiation sur front montant Différentiation sur front descendant Spécification de rafraîchissement immédiat Page 284 FRMCV CONVERT ADDRESS FROM CV @FRMCV --- --- 1113 285 TOCV CONVERT ADDRESS TO CV @TOCV --- --- 1117 286 GETID GET VARIABLE ID @GETID --- --- 1214 287 IOSP DISABLE PERIPHERAL SERVICING @IOSP --- --- 1121 288 IORS ENABLE PERIPHERAL SERVICING --- --- --- 1123 300 AND = AND EQUAL --- --- --- 275 300 LD = LOAD EQUAL --- --- --- 275 300 OR = OR EQUAL --- --- --- 275 301 AND =L AND DOUBLE EQUAL --- --- --- 275 301 LD =L LOAD DOUBLE EQUAL --- --- --- 275 301 OR =L OR DOUBLE EQUAL --- --- --- 275 302 AND =S AND SIGNED EQUAL --- --- --- 275 302 LD =S LOAD SIGNED EQUAL --- --- --- 275 302 OR =S OR SIGNED EQUAL --- --- --- 275 303 AND =SL AND DOUBLE SIGNED EQUAL --- --- --- 275 303 LD =SL LOAD DOUBLE SIGNED EQUAL --- --- --- 275 303 OR =SL OR DOUBLE SIGNED EQUAL --- --- --- 275 305 AND <> AND NOT EQUAL --- --- --- 275 305 LD <> LOAD NOT EQUAL --- --- --- 275 305 OR <> OR NOT EQUAL --- --- --- 275 306 AND <>L AND DOUBLE NOT EQUAL --- --- --- 275 306 LD <>L LOAD DOUBLE NOT EQUAL --- --- --- 275 306 OR <>L OR DOUBLE NOT EQUAL --- --- --- 275 307 AND <>S AND SIGNED NOT EQUAL --- --- --- 275 307 LD <>S LOAD SIGNED NOT EQUAL --- --- --- 275 307 OR <>S OR SIGNED NOT EQUAL --- --- --- 275 308 AND <>SL AND DOUBLE SIGNED NOT EQUAL --- --- --- 275 308 LD <>SL LOAD DOUBLE SIGNED NOT EQUAL --- --- --- 275 308 OR <>SL OR DOUBLE SIGNED NOT EQUAL --- --- --- 275 310 AND < AND LESS THAN --- --- --- 275 310 LD < LOAD LESS THAN --- --- --- 275 310 OR < OR LESS THAN --- --- --- 275 311 AND <L AND DOUBLE LESS THAN --- --- --- 275 311 LD <L LOAD DOUBLE LESS THAN --- --- --- 275 311 OR <L OR DOUBLE LESS THAN --- --- --- 275 312 AND <S AND SIGNED LESS THAN --- --- --- 275 312 LD <S LOAD SIGNED LESS THAN --- --- --- 275 128 Chapitre 2-4 Liste des instructions par code fonction Code fonction Mnémonique Instruction Différentiation sur front montant Différentiation sur front descendant Spécification de rafraîchissement immédiat Page 312 OR <S OR SIGNED LESS THAN --- --- --- 275 313 AND <SL AND DOUBLE SIGNED LESS THAN --- --- --- 275 313 LD <SL LOAD DOUBLE SIGNED LESS THAN --- --- --- 275 313 OR <SL OR DOUBLE SIGNED LESS THAN --- --- --- 275 315 AND <= AND LESS THAN OR EQUAL --- --- --- 275 315 LD <= LOAD LESS THAN OR EQUAL --- --- --- 275 315 OR <= OR LESS THAN OR EQUAL --- --- --- 275 316 AND <=L AND DOUBLE LESS THAN OR EQUAL --- --- --- 275 316 LD <=L LOAD DOUBLE LESS THAN OR EQUAL --- --- --- 275 316 OR <=L OR DOUBLE LESS THAN OR EQUAL --- --- --- 275 317 AND <=S AND SIGNED LESS THAN OR EQUAL --- --- --- 275 317 LD <=S LOAD SIGNED LESS THAN OR EQUAL --- --- --- 275 317 OR <=S OR SIGNED LESS THAN OR EQUAL --- --- --- 275 318 AND <=SL AND DOUBLE SIGNED LESS THAN OR EQUAL --- --- --- 275 318 LD <=SL LOAD DOUBLE SIGNED LESS THAN OR EQUAL --- --- --- 275 318 OR <=SL OR DOUBLE SIGNED LESS THAN OR EQUAL --- --- --- 275 320 AND > AND GREATER THAN --- --- --- 275 320 LD > LOAD GREATER THAN --- --- --- 275 320 OR > OR GREATER THAN --- --- --- 275 321 AND >L AND DOUBLE GREATER THAN --- --- --- 275 321 LD >L LOAD DOUBLE GREATER THAN --- --- --- 275 321 OR >L OR DOUBLE GREATER THAN --- --- --- 275 322 AND >S AND SIGNED GREATER THAN --- --- --- 275 322 LD >S LOAD SIGNED GREATER THAN --- --- --- 275 322 OR >S OR SIGNED GREATER THAN --- --- --- 275 323 AND >SL AND DOUBLE SIGNED GREATER THAN --- --- --- 275 323 LD >SL LOAD DOUBLE SIGNED GREATER THAN --- --- --- 275 323 OR >SL OR DOUBLE SIGNED GREATER THAN --- --- --- 275 325 AND >= AND GREATER THAN OR EQUAL --- --- --- 275 325 LD >= LOAD GREATER THAN OR EQUAL --- --- --- 275 129 Chapitre 2-4 Liste des instructions par code fonction Code fonction Mnémonique Instruction Différentiation sur front montant Différentiation sur front descendant Spécification de rafraîchissement immédiat Page 325 OR >= OR GREATER THAN OR EQUAL --- --- --- 275 326 AND >=L AND DOUBLE GREATER THAN OR EQUAL --- --- --- 275 326 LD >=L LOAD DOUBLE GREATER THAN OR EQUAL --- --- --- 275 326 OR >=L OR DOUBLE GREATER THAN OR EQUAL --- --- --- 275 327 AND >=S AND SIGNED GREATER THAN OR EQUAL --- --- --- 275 327 LD >=S LOAD SIGNED GREATER THAN OR EQUAL --- --- --- 275 327 OR >=S OR SIGNED GREATER THAN OR EQUAL --- --- --- 275 328 AND >=SL AND DOUBLE SIGNED GREATER THAN OR EQUAL --- --- --- 275 328 LD >=SL LOAD DOUBLE SIGNED GREATER THAN OR EQUAL --- --- --- 275 328 OR >=SL OR DOUBLE SIGNED GREATER THAN OR EQUAL --- --- --- 275 329 AND =F AND FLOATING EQUAL --- --- --- 600 329 LD =F LOAD FLOATING EQUAL --- --- --- 600 329 OR =F OR FLOATING EQUAL --- --- --- 600 330 AND <>F AND FLOATING NOT EQUAL --- --- --- 600 330 LD <>F LOAD FLOATING NOT EQUAL --- --- --- 600 330 OR <>F OR FLOATING NOT EQUAL --- --- --- 600 331 AND <F AND FLOATING LESS THAN --- --- --- 600 331 LD <F LOAD FLOATING LESS THAN --- --- --- 600 331 OR <F OR FLOATING LESS THAN --- --- --- 600 332 AND <=F AND FLOATING LESS THAN OR EQUAL --- --- --- 600 332 LD <=F LOAD FLOATING LESS THAN OR EQUAL --- --- --- 600 332 OR <=F OR FLOATING LESS THAN OR EQUAL --- --- --- 600 333 AND >F AND FLOATING GREATER THAN --- --- --- 600 333 LD >F LOAD FLOATING GREATER THAN --- --- --- 600 333 OR >F OR FLOATING GREATER THAN --- --- --- 600 334 AND >=F AND FLOATING GREATER THAN OR EQUAL --- --- --- 600 334 LD >=F LOAD FLOATING GREATER THAN OR EQUAL --- --- --- 600 130 Chapitre 2-4 Liste des instructions par code fonction Code fonction Mnémonique Instruction Différentiation sur front montant Différentiation sur front descendant Page Spécification de rafraîchissement immédiat 334 OR >=F OR FLOATING GREATER THAN OR EQUAL --- --- --- 600 335 AND =D AND DOUBLE FLOATING EQUAL --- --- --- 657 335 LD =D LOAD DOUBLE FLOATING EQUAL --- --- --- 657 335 OR =D OR DOUBLE FLOATING EQUAL --- --- --- 657 336 AND <>D AND DOUBLE FLOATING NOT EQUAL --- --- --- 657 336 LD <>D LOAD DOUBLE FLOATING NOT EQUAL --- --- --- 657 336 OR <>D OR DOUBLE FLOATING NOT EQUAL --- --- --- 657 337 AND <D AND DOUBLE FLOATING LESS THAN --- --- --- 657 337 LD <D LOAD DOUBLE FLOATING LESS THAN --- --- --- 657 337 OR <D OR DOUBLE FLOATING LESS THAN --- --- --- 657 338 AND <=D AND DOUBLE FLOATING LESS THAN OR EQUAL --- --- --- 657 338 LD <=D LOAD DOUBLE FLOATING LESS THAN OR EQUAL --- --- --- 657 338 OR <=D OR DOUBLE FLOATING LESS THAN OR EQUAL --- --- --- 657 339 AND >D AND DOUBLE FLOATING GREATER THAN --- --- --- 657 339 LD >D LOAD DOUBLE FLOATING GREATER THAN --- --- --- 657 339 OR >D OR DOUBLE FLOATING GREATER THAN --- --- --- 657 340 AND >=D AND DOUBLE FLOATING GREATER THAN OR EQUAL --- --- --- 657 340 LD >=D LOAD DOUBLE FLOATING GREATER THAN OR EQUAL --- --- --- 657 340 OR >=D OR DOUBLE FLOATING GREATER THAN OR EQUAL --- --- --- 657 341 AND =DT AND TIME EQUAL --- --- --- 281 341 LD =DT LOAD TIME EQUAL --- --- --- 281 341 OR =DT OR TIME EQUAL --- --- --- 281 342 AND <> DT AND TIME NOT EQUAL --- --- --- 281 342 LD <> DT LOAD TIME NOT EQUAL --- --- --- 281 342 OR <> DT OR TIME NOT EQUAL --- --- --- 281 343 AND < DT AND TIME LESS THAN --- --- --- 281 343 LD < DT LOAD TIME LESS THAN --- --- --- 281 343 OR < DT OR TIME LESS THAN --- --- --- 281 131 Chapitre 2-4 Liste des instructions par code fonction Code fonction Mnémonique Instruction Différentiation sur front montant Différentiation sur front descendant Spécification de rafraîchissement immédiat Page 344 AND <= DT AND TIME LESS THAN OR EQUAL --- --- --- 281 344 LD <= DT LD TIME LESS THAN OR EQUAL --- --- --- 281 344 OR <= DT OR TIME LESS THAN OR EQUAL --- --- --- 281 345 AND > DT AND TIME GREATER THAN --- --- --- 281 345 LD > DT LOAD TIME GREATER --THAN --- --- 281 345 OR > DT OR TIME GREATER THAN --- --- --- 281 346 AND >= DT AND TIME GREATER THAN OR EQUAL --- --- --- 281 346 LD >= DT LOAD TIME GREATER --THAN OR EQUAL --- --- 281 346 OR >= DT OR TIME GREATER THAN OR EQUAL --- --- 281 350 AND TST AND BIT TEST --- --- --- 174 350 LD TST LOAD BIT TEST --- --- --- 174 --- 350 OR TST OR BIT TEST --- --- --- 174 351 AND TSTN AND BIT TEST NOT --- --- --- 174 351 LD TSTN LOAD BIT TEST NOT --- --- --- 174 351 OR TSTN OR BIT TEST NOT --- --- --- 174 400 + SIGNED BINARY ADD WITHOUT CARRY @+ --- --- 410 401 +L DOUBLE SIGNED BINARY ADD WITHOUT CARRY @+L --- --- 412 402 +C SIGNED BINARY ADD WITH CARRY @+C --- --- 414 403 +CL DOUBLE SIGNED BINARY ADD WITH CARRY @+CL --- --- 416 404 +B BCD ADD WITHOUT CARRY @+B --- --- 421 405 +BL DOUBLE BCD ADD WITHOUT CARRY @+BL --- --- 419 406 +BC BCD ADD WITH CARRY @+BC --- --- 421 407 +BCL DOUBLE BCD ADD WITH CARRY @+BCL --- --- 423 410 – SIGNED BINARY SUBTRACT WITHOUT CARRY @– --- --- 424 411 –L DOUBLE SIGNED BINARY SUBTRACT WITHOUT CARRY @–L --- --- 426 412 –C SIGNED BINARY SUBTRACT WITH CARRY @–C --- --- 430 413 –CL DOUBLE SIGNED BINARY SUBTRACT WITH CARRY @–CL --- --- 432 414 –B BCD SUBTRACT WITHOUT CARRY @–B --- --- 435 415 –BL DOUBLE BCD SUBTRACT WITHOUT CARRY @–BL --- --- 436 416 –BC BCD SUBTRACT WITH CARRY @–BC --- --- 440 417 –BCL DOUBLE BCD SUBTRACT WITH CARRY @–BCL --- --- 441 132 Chapitre 2-4 Liste des instructions par code fonction Code fonction Mnémonique Instruction Différentiation sur front montant Différentiation sur front descendant Spécification de rafraîchissement immédiat Page 420 * SIGNED BINARY MULTIPLY @* --- --- 443 421 *L DOUBLE SIGNED BINARY MULTIPLY @*L --- --- 445 422 *U UNSIGNED BINARY MULTIPLY @*U --- --- 447 423 *UL DOUBLE UNSIGNED BINARY MULTIPLY @*UL --- --- 449 424 *B BCD MULTIPLY @*B --- --- 450 425 *BL DOUBLE BCD MULTIPLY @*BL --- --- 452 430 / SIGNED BINARY DIVIDE @/ --- --- 454 431 /L DOUBLE SIGNED BINARY DIVIDE @/L --- --- 456 432 /U UNSIGNED BINARY DIVIDE @/U --- --- 458 433 /UL DOUBLE UNSIGNED BINARY DIVIDE @/UL --- --- 460 434 /B BCD DIVIDE @/B --- --- 462 435 /BL DOUBLE BCD DIVIDE @/BL --- --- 464 448 FSTR FLOATING POINT TO ASCII @FSTR --- --- 604 449 FVAL ASCII TO FLOATING POINT @FVAL --- --- 609 450 FIX FLOATING TO 16-BIT @FIX --- --- 563 451 FIXL FLOATING TO 32-BIT @FIXL --- --- 565 452 FLT 16-BIT TO FLOATING @FLT --- --- 566 453 FLTL 32-BIT TO FLOATING @FLTL --- --- 568 454 +F FLOATING-POINT ADD @+F --- --- 570 455 –F FLOATING-POINT SUBTRACT @–F --- --- 572 456 *F FLOATING-POINT MULTIPLY @*F --- --- 574 457 /F FLOATING-POINT DIVIDE @/F --- --- 576 458 RAD DEGREES TO RADIANS @RAD --- --- 597 459 DEG RADIANS-TO DEGREES @DEG --- --- 579 460 SIN SINE @SIN --- --- 581 461 COS COSINE @COS --- --- 583 462 TAN TANGENT @TAN --- --- 585 463 ASIN ARC SINE @ASIN --- --- 587 464 ACOS ARC COSINE @ACOS --- --- 589 465 ATAN ARC TANGENT @ATAN --- --- 591 466 SQRT SQUARE ROOT @SQRT --- --- 593 467 EXP EXPONENT @EXP --- --- 595 468 LOG LOGARITHM @LOG --- --- 597 470 BINS SIGNED BCD-TOBINARY @BINS --- --- 499 471 BCDS SIGNED BINARY-TOBCD @BCDS --- --- 505 472 BISL DOUBLE SIGNED BCD-TO-BINARY @BISL --- --- 502 473 BDSL DOUBLE SIGNED BINARY-TO-BCD @BDSL --- --- 507 133 Chapitre 2-4 Liste des instructions par code fonction Code fonction Mnémonique Instruction Différentiation sur front montant Différentiation sur front descendant Spécification de rafraîchissement immédiat Page 474 GRY GRAY CODE CONVERSION @GRY --- --- 511 486 SCL2 SCALING 2 @SCL2 --- --- 762 487 SCL3 SCALING 3 @SCL3 --- --- 766 490 CMND DELIVER COMMAND @CMND --- --- 1003 498 MOVL DOUBLE MOVE @MOVL --- --- 318 499 MVNL DOUBLE MOVE NOT @MVNL --- --- 320 502 BCMP2 EXPANDED BLOCK COMPARE @BCMP2 --- --- 306 510 CJP CONDITIONAL JUMP --- --- --- 223 511 CJPN CONDITIONAL JUMP --- --- --- 223 512 FOR FOR-NEXT LOOPS --- --- --- 229 513 NEXT FOR-NEXT LOOPS --- --- --- 229 514 BREAK BREAK LOOP --- --- --- 232 515 JMP0 MULTIPLE JUMP --- --- --- 227 516 JME0 MULTIPLE JUMP END --- --- --- 227 517 MILH MULTI-INTERLOCK DIFFERENTIATION HOLD --- --- --- 205 518 MILR MULTI-INTERLOCK DIFFERENTIATION RELEASE --- --- --- 205 519 MILC MULTI-INTERLOCK CLEAR --- --- --- 205 520 NOT NOT --- --- --- 172 521 UP CONDITION ON --- --- --- 173 522 DOWN CONDITION OFF --- --- --- 173 530 SETA MULTIPLE BIT SET @SETA --- --- 189 531 RSTA MULTIPLE BIT RESET @RSTA --- --- 189 532 SETB SINGLE BIT SET @SETB --- !SETB 192 533 RSTB SINGLE BIT RESET @RSTB --- !RSTB 192 534 OUTB SINGLE BIT OUTPUT @OUTB --- !OUTB 195 540 TMHH ONE-MS TIMER --- --- --- 244 542 TIML LONG TIMER --- --- --- 251 543 MTIM MULTI-OUTPUT TIMER --- --- --- 254 545 CNR RESET TIMER/ COUNTER @CNR --- --- 267 546 CNTX COUNTER --- --- --- 260 547 CNRX RESET TIMER/ COUNTER --- --- --- 267 548 CNTRX REVERSIBLE COUNTER --- --- --- 263 550 TIMX TIMER --- --- --- 235 551 TIMHX HIGH-SPEED TIMER --- --- --- 240 552 TMHHX ONE-MS TIMER --- --- --- 244 553 TIMLX LONG TIMER --- --- --- 251 554 MTIMX MULTI-OUTPUT TIMER --- --- --- 254 555 TTIMX ACCUMULATIVE TIMER --- --- --- 247 560 MOVR MOVE TO REGISTER @MOVR --- --- 340 561 MOVRW MOVE TIMER/ COUNTER PV TO REGISTER @MOVRW --- --- 342 562 XCGL DOUBLE DATA EXCHANGE @XCGL --- --- 334 134 Chapitre 2-4 Liste des instructions par code fonction Code fonction Mnémonique Instruction Différentiation sur front montant Différentiation sur front descendant Spécification de rafraîchissement immédiat Page 565 XFERC BLOCK TRANSFER @XFERC --- --- 1201 566 DISTC SINGLE WORD DISTRIBUTE @DISTC --- --- 1203 567 COLLC DATA COLLECT @COLLC --- --- 1206 568 MOVBC MOVE BIT @MOVBC --- --- 1211 570 ASLL DOUBLE SHIFT LEFT @ASLL --- --- 355 571 ASRL DOUBLE SHIFT RIGHT @ASRL --- --- 358 572 ROLL DOUBLE ROTATE LEFT @ROLL --- --- 362 573 RORL DOUBLE ROTATE RIGHT @RORL --- --- 365 574 RLNC ROTATE LEFT WITHOUT CARRY @RLNC --- --- 367 575 RRNC ROTATE RIGHT WITHOUT CARRY @RRNC --- --- 371 576 RLNL DOUBLE ROTATE LEFT WITHOUT CARRY @RLNL --- --- 369 577 RRNL DOUBLE ROTATE RIGHT WITHOUT CARRY @RRNL --- --- 372 578 NSFL SHIFT N-BIT DATA LEFT @NSFL --- --- 377 579 NSFR SHIFT N-BIT DATA RIGHT @NSFR --- --- 379 580 NASL SHIFT N-BITS LEFT @NASL --- --- 381 581 NASR SHIFT N-BITS RIGHT @NASR --- --- 387 582 NSLL DOUBLE SHIFT N-BITS LEFT @NSLL --- --- 384 583 NSRL DOUBLE SHIFT N-BITS RIGHT @NSRL --- --- 389 590 ++ INCREMENT BINARY @++ --- --- 393 591 ++L DOUBLE INCREMENT BINARY @++L --- --- 395 592 –– DECREMENT BINARY @– – --- --- 397 593 – –L DOUBLE @– –L DECREMENT BINARY --- --- 399 594 ++B INCREMENT BCD @++B --- --- 401 595 ++BL DOUBLE INCREMENT BCD @++BL --- --- 403 596 – –B DECREMENT BCD @– –B --- --- 405 597 – –BL DOUBLE DECREMENT BCD @– –BL --- --- 407 600 SIGN 16-BIT TO 32-BIT SIGNED BINARY @SIGN --- --- 476 610 ANDL DOUBLE LOGICAL AND @ANDL --- --- 519 611 ORWL DOUBLE LOGICAL OR @ORWL --- --- 522 612 XORL DOUBLE EXCLUSIVE OR @XORL --- --- 526 613 XNRL DOUBLE EXCLUSIVE NOR @XNRL --- --- 529 614 COML DOUBLE COMPLEMENT @COML --- --- 533 620 ROTB BINARY ROOT @ROTB --- --- 534 621 BCNTC BIT COUNTER @BCNTC --- --- 1212 630 SSET SET STACK @SSET --- --- 666 631 DIM DIMENSION RECORD TABLE @DIM --- --- 678 135 Chapitre 2-4 Liste des instructions par code fonction Code fonction Mnémonique Instruction Différentiation sur front montant Différentiation sur front descendant Page Spécification de rafraîchissement immédiat 632 PUSH PUSH ONTO STACK @PUSH --- --- 669 633 FIFO FIRST IN FIRST OUT @FIFO --- --- 672 634 LIFO LAST IN FIRST OUT @LIFO --- --- 675 635 SETR SET RECORD LOCATION @SETR --- --- 681 636 GETR GET RECORD NUMBER @GETR --- --- 683 687 637 SWAP SWAP BYTES @SWAP --- --- 638 SNUM STACK SIZE READ @SNUM --- --- 704 639 SREAD STACK DATA READ @SREAD --- --- 707 640 SWRIT STACK DATA WRITE @SWRIT --- --- 710 641 SINS STACK DATA INSERT @SINS --- --- 713 642 SDEL STACK DATA DELETE @SDEL --- --- 716 650 LEN$ STRING LENGTH @LEN$ --- --- 1173 652 LEFT$ GET STRING LEFT @LEFT$ --- --- 1164 653 RGHT$ GET STRING RIGHT @RGHT$ --- --- 1166 654 MID$ GET STRING MIDDLE @MID$ --- --- 1168 656 +$ CONCATENATE STRING @+$ --- --- 1161 657 INS$ INS$ @INS$ --- --- 1184 658 DEL$ DELETE STRING @DEL$ --- --- 1178 660 FIND$ FIND IN STRING @FIND$ --- --- 1171 661 RPLC$ REPLACE IN STRING @RPLC$ --- --- 1175 664 MOV$ MOV STRING @MOV$ --- --- 1159 665 XCHG$ EXCHANGE STRING @XCHG$ --- --- 1180 666 CLR$ CLEAR STRING @CLR$ --- --- 1182 670 AND =$ AND STRING EQUALS --- --- --- 1187 670 LD =$ LOAD STRING EQUALS --- --- 1187 670 OR =$ OR STRING EQUALS --- --- --- 1187 671 AND <>$ AND STRING NOT EQUAL --- --- --- 1187 671 LD <>$ LOAD STRING NOT EQUAL --- --- --- 1187 671 OR <>$ OR STRING NOT EQUAL --- --- --- 1187 672 AND <$ AND STRING LESS THAN --- --- --- 1187 672 LD <$ LOAD STRING LESS THAN --- --- --- 1187 672 OR <$ OR STRING LESS THAN --- --- --- 1187 673 AND <=$ AND STRING LESS THAN OR EQUALS --- --- --- 1187 673 LD <=$ LOAD STRING LESS THAN OR EQUAL --- --- --- 1187 673 OR <=$ OR STRING LESS THAN OR EQUALS --- --- --- 1187 674 AND >$ AND STRING GREATER THAN --- --- --- 1187 674 LD >$ LOAD STRING GREATER THAN --- --- --- 1187 674 OR >$ OR STRING GREATER --THAN --- --- 1187 675 AND >=$ AND STRING GREATER THAN OR EQUALS --- --- 1187 136 --- --- Chapitre 2-4 Liste des instructions par code fonction Code fonction Mnémonique Instruction Différentiation sur front montant Différentiation sur front descendant Spécification de rafraîchissement immédiat Page 675 LD >=$ LOAD STRING GREATER THAN OR EQUALS --- --- --- 1187 675 OR >=$ OR STRING GREATER --THAN OR EQUALS --- --- 1187 680 LMT LIMIT CONTROL @LMT --- --- 741 681 BAND DEAD BAND CONTROL @BAND --- --- 743 682 ZONE DEAD ZONE CONTROL @ZONE --- --- 746 685 TPO TIMEPROPORTIONAL OUTPUT --- --- --- 749 690 MSKS SET INTERRUPT MASK @MSKS --- --- 798 691 CLI CLEAR INTERRUPT @CLI --- --- 809 692 MSKR READ INTERRUPT MASK @MSKR --- --- 804 693 DI DISABLE INTERRUPTS @DI --- --- 814 694 EI ENABLE INTERRUPTS --- --- --- 816 700 FREAD READ DATA FILE @FREAD --- --- 1045 701 FWRIT WRITE DATA FILE @FWRIT --- --- 1052 720 EXPLT EXPLICIT MESSAGE SEND @EXPLT --- --- 1013 721 EGATR EXPLICIT GET ATTRIBUTE @EGATR --- --- 1021 722 ESATR EXPLICIT SET ATTRIBUTE @ESATR --- --- 1028 723 ECHRD EXPLICIT WORD READ @ECHRD --- --- 1034 724 ECHWR EXPLICIT WORD CLEAR @ECHWR --- --- 1038 730 CADD CALENDAR ADD @CADD --- --- 1061 731 CSUB CALENDAR SUBTRACT @CSUB --- --- 1065 735 DATE CLOCK ADJUSTMENT @DATE --- --- 1073 750 GSBS GLOBAL SUBROUTINE CALL @GSBS --- --- 786 751 GSBN GLOBAL SUBROUTINE ENTRY --- --- --- 794 752 GRET GLOBAL SUBROUTINE RETURN --- --- --- 797 801 BEND BLOCK PROGRAM END --- --- --- 1128 802 IF CONDITIONAL BRANCHING BLOCK --- --- --- 1133 802 IF CONDITIONAL BRANCHING BLOCK --- --- --- 1133 802 IF NOT CONDITIONAL BRANCHING BLOCK NOT --- --- --- 1133 803 ELSE ELSE --- --- --- 1133 804 IEND IF END --- --- --- 1133 805 WAIT ONE CYCLE AND WAIT --- --- --- 1140 805 WAIT ONE CYCLE AND WAIT --- --- --- 1140 805 WAIT NOT ONE CYCLE AND WAIT NOT --- --- --- 1140 137 Chapitre 2-4 Liste des instructions par code fonction Code fonction Mnémonique Instruction Différentiation sur front montant Différentiation sur front descendant Page Spécification de rafraîchissement immédiat 806 EXIT CONDITIONAL BLOCK --EXIT --- --- 1137 806 EXIT CONDITIONAL BLOCK --EXIT --- --- 1137 806 EXIT NOT CONDITIONAL BLOCK --EXIT NOT --- --- 1137 809 LOOP LOOP --- --- --- 1153 810 LEND LOOP END --- --- --- 1153 810 LEND LOOP END --- --- --- 1153 810 LEND NOT LOOP END NOT --- --- --- 1153 811 BPPS BLOCK PROGRAM PAUSE --- --- --- 1131 812 BPRS BLOCK PROGRAM RESTART --- --- --- 1131 813 TIMW TIMER WAIT --- --- --- 1144 814 CNTW COUNTER WAIT --- --- --- 1147 815 TMHW HIGH-SPEED TIMER WAIT --- --- --- 1150 816 TIMWX TIMER WAIT --- --- --- 1144 817 TMHWX HIGH-SPEED TIMER WAIT --- --- --- 1150 818 CNTWX COUNTER WAIT --- --- --- 1147 820 TKON TASK ON @TKON --- --- 1192 821 TKOF TASK OFF @TKOF --- --- 1196 840 PWR EXPONENTIAL POWER @PWR --- --- 599 841 FIXD DOUBLE FLOATING TO 16-BIT BINARY @FIXD --- --- 620 842 FIXLD DOUBLE FLOATING TO 32-BIT BINARY @FIXLD --- --- 621 843 DBL 16-BIT BINARY TO DOUBLE FLOATING @DBL --- --- 623 844 DBLL 32-BIT BINARY TO DOUBLE FLOATING @DBLL --- --- 624 845 +D DOUBLE FLOATINGPOINT ADD @+D --- --- 626 846 −D DOUBLE FLOATINGPOINT SUBTRACT @−D --- --- 628 847 *D DOUBLE FLOATINGPOINT MULTIPLY @*D --- --- 630 848 /D DOUBLE FLOATINGPOINT DIVIDE @/D --- --- 632 849 RADD DOUBLE DEGREES TO RADIANS @RADD --- --- 634 850 DEGD DOUBLE RADIANS TO @RADD DEGREES --- --- 636 851 SIND DOUBLE SINE @SIND --- --- 637 852 COSD DOUBLE COSINE @COSD --- --- 639 853 TAND DOUBLE TANGENT @TAND --- --- 641 854 ASIND DOUBLE ARC SINE @ASIND --- --- 643 855 ACOSD DOUBLE ARC COSINE @ACOSD --- --- 645 856 ATAND DOUBLE ARC TANGENT @ATAND --- --- 647 857 SQRTD DOUBLE SQUARE ROOT @SQRTD --- --- 649 858 EXPD DOUBLE EXPONENT @EXPD --- --- 651 859 LOGD DOUBLE LOGARITHM @LOGD --- --- 653 138 Chapitre 2-4 Liste des instructions par code fonction Code fonction Mnémonique Instruction Différentiation sur front montant @PWRD Différentiation sur front descendant --- Spécification de rafraîchissement immédiat --- Page 860 PWRD DOUBLE EXPONENTIAL POWER 655 880 INI MODE CONTROL @INI --- --- 823 881 PRV HIGH-SPEED COUNTER PV READ @PRV --- --- 827 882 CTBL COMPARISON TABLE LOAD @CTBL --- --- 837 883 PRV2 COUNTER FREQUENCY CONVERT @PRV2 --- --- 833 885 SPED SPEED OUTPUT @SPED --- --- 841 886 PULS SET PULSES @PULS --- --- 846 887 PLS2 PULSE OUTPUT @PLS2 --- --- 849 888 ACC ACCELERATION CONTROL @ACC --- --- 855 889 ORG ORIGIN SEARCH @ORG --- --- 862 891 PWN PULSE WITH VARIABLE DUTY FACTOR @PWN --- --- 865 139 Liste des instructions par code fonction 140 Chapitre 2-4 CHAPITRE 3 Instructions Ce chapitre décrit chacune des instructions pouvant être utilisées pour la programmation des API série CS/CJ. Les instructions sont reprises par ordre de fonction, suivant le classement du Chapitre 2 Résumé des instructions. 3-1 3-2 3-3 3-4 3-5 3-6 Notation et présentation des descriptions d'instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Mises à niveau des instructions et nouvelles instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-2-1 Mises à niveau pour les UC série CS version-1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-2-2 Mises à niveau pour les UC CS1-H/CJ1-H . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Instructions d'entrée de séquences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-3-1 LOAD : LD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-3-2 LOAD NOT : LD NOT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-3-3 AND : AND . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-3-4 AND NOT : AND NOT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-3-5 OR : OR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-3-6 OR NOT: OR NOT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-3-7 AND LOAD : AND LD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-3-8 OR LOAD : OR LD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-3-9 Instructions différenciées et de rafraîchissement immédiat . . . . . . . . . . . . . . . . . . . . . . . 3-3-10 Séquence de fonctionnement des instructions E/S . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-3-11 Bits TR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-3-12 NOT : NOT(520) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-3-13 CONDITION ON/OFF : UP(521) et DOWN(522) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-3-14 BIT TEST : TST(350) et TSTN(351). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Instructions de sortie de séquences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4-1 OUTPUT : OUT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4-2 OUTPUT NOT : OUT NOT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4-3 KEEP : KEEP(011). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4-4 DIFFERENTIATE UP/DOWN : DIFU(013) et DIFD(014). . . . . . . . . . . . . . . . . . . . . . . 3-4-5 SET et RESET : SET et RSET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4-6 MULTIPLE BIT SET/RESET: SETA(530)/RSTA(531) . . . . . . . . . . . . . . . . . . . . . . . . . 3-4-7 SINGLE BIT SET/RESET : SETB(532)/RSTB(533) . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4-8 SINGLE BIT OUTPUT : OUTB(534) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Instructions de contrôle de séquences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-5-1 END : END(001) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-5-2 NO OPERATION : NOP(000) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-5-3 Aperçu des instructions de verrouillage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-5-4 INTERLOCK et INTERLOCK CLEAR : IL(002) et ILC(003) . . . . . . . . . . . . . . . . . . . 3-5-5 MULTI-INTERLOCK DIFFERENTIATION HOLD, MULTI-INTERLOCK DIFFERENTIATION RELEASE et MULTI-INTERLOCK CLEAR : MILH(517), MILR(518) et MILC(519) . . . . . . . . . . . 3-5-6 JUMP et JUMP END : JMP(004) et JME(005) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-5-7 CONDITIONAL JUMP : CJP(510)/CJPN(511) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-5-8 MULTIPLE JUMP et JUMP END : JMP0(515) et JME0(516) . . . . . . . . . . . . . . . . . . . . 3-5-9 FOR-NEXT LOOPS : FOR(512)/NEXT(513). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-5-10 BREAK LOOP : BREAK(514) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Instructions de temporisateur et compteur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-6-1 TIMER : TIM/TIMX(550) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-6-2 HIGH-SPEED TIMER : TIMH(015)/TIMHX(551) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-6-3 ONE-MS TIMER : TMHH(540)/TMHHX(552) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-6-4 ACCUMULATIVE TIMER : TTIM(087)/TTIMX(555) . . . . . . . . . . . . . . . . . . . . . . . . . 3-6-5 LONG TIMER : TIML(542)/TIMLX(553) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-6-6 MULTI-OUTPUT TIMER : MTIM(543)/MTIMX(554) . . . . . . . . . . . . . . . . . . . . . . . . . 148 151 151 151 153 153 155 157 159 161 163 164 166 169 170 170 172 173 174 177 177 178 179 184 186 189 192 195 197 197 198 199 201 205 219 223 227 229 232 233 235 240 244 247 251 254 141 3-7 3-8 3-9 142 3-6-7 COUNTER : CNT/CNTX(546) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-6-8 REVERSIBLE COUNTER : CNTR(012)/CNTRX(548) . . . . . . . . . . . . . . . . . . . . . . . . 3-6-9 RESET TIMER/COUNTER : CNR(545)/CNRX(547) . . . . . . . . . . . . . . . . . . . . . . . . . . 3-6-10 Exemples d'applications de temporisateur et compteur . . . . . . . . . . . . . . . . . . . . . . . . . . 3-6-11 Adressage indirect des numéros de temporisateur/compteur . . . . . . . . . . . . . . . . . . . . . . Instructions de comparaison . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-7-1 Instructions de comparaison d'entrées (300 à 328). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-7-2 Instructions de comparaison de temps (341 à 346) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-7-3 COMPARE : CMP(020) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-7-4 DOUBLE COMPARE : CMPL(060) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-7-5 SIGNED BINARY COMPARE : CPS(114). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-7-6 DOUBLE SIGNED BINARY COMPARE : CPSL(115) . . . . . . . . . . . . . . . . . . . . . . . . . 3-7-7 MULTIPLE COMPARE : MCMP(019) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-7-8 TABLE COMPARE : TCMP(085) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-7-9 BLOCK COMPARE : BCMP(068) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-7-10 EXPANDED BLOCK COMPARE : BCMP2(502) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-7-11 AREA RANGE COMPARE : ZCP(088) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-7-12 DOUBLE AREA RANGE COMPARE : ZCPL(116) . . . . . . . . . . . . . . . . . . . . . . . . . . . Instructions de déplacement de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8-1 MOVE : MOV(021) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8-2 MOVE NOT : MVN(022). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8-3 DOUBLE MOVE : MOVL(498) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8-4 DOUBLE MOVE NOT : MVNL(499) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8-5 MOVE BIT : MOVB(082) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8-6 MOVE DIGIT : MOVD(083) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8-7 MULTIPLE BIT TRANSFER : XFRB(062) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8-8 BLOCK TRANSFER : XFER(070) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8-9 BLOCK SET : BSET(071) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8-10 DATA EXCHANGE : XCHG(073) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8-11 DOUBLE DATA EXCHANGE : XCGL(562) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8-12 SINGLE WORD DISTRIBUTE : DIST(080) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8-13 DATA COLLECT : COLL(081) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8-14 MOVE TO REGISTER : MOVR(560). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8-15 MOVE TIMER/COUNTER PV TO REGISTER : MOVRW(561) . . . . . . . . . . . . . . . . . Instructions de décalage de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9-1 SHIFT REGISTER : SFT(010) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9-2 REVERSIBLE SHIFT REGISTER : SFTR(084). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9-3 ASYNCHRONOUS SHIFT REGISTER : ASFT(017) . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9-4 WORD SHIFT : WSFT(016) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9-5 ARITHMETIC SHIFT LEFT : ASL(025) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9-6 DOUBLE SHIFT LEFT : ASLL(570) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9-7 ARITHMETIC SHIFT RIGHT : ASR(026). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9-8 DOUBLE SHIFT RIGHT : ASRL(571). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9-9 ROTATE LEFT : ROL(027) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9-10 DOUBLE ROTATE LEFT : ROLL(572) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9-11 ROTATE RIGHT : ROR(028). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9-12 DOUBLE ROTATE RIGHT : RORL(573) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9-13 ROTATE LEFT WITHOUT CARRY : RLNC(574) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9-14 DOUBLE ROTATE LEFT WITHOUT CARRY : RLNL(576) . . . . . . . . . . . . . . . . . . . . 3-9-15 ROTATE RIGHT WITHOUT CARRY : RRNC(575) . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9-16 DOUBLE ROTATE RIGHT WITHOUT CARRY : RRNL(577). . . . . . . . . . . . . . . . . . . 3-9-17 ONE DIGIT SHIFT LEFT : SLD(074) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9-18 ONE DIGIT SHIFT RIGHT : SRD(075) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9-19 SHIFT N-BIT DATA LEFT : NSFL(578) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9-20 SHIFT N-BIT DATA RIGHT : NSFR(579) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9-21 SHIFT N-BITS LEFT : NASL(580). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9-22 DOUBLE SHIFT N-BITS LEFT : NSLL(582) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260 263 267 269 272 275 275 281 287 290 293 296 299 301 304 306 310 313 315 315 317 318 320 321 323 326 328 331 333 334 336 338 340 342 344 345 346 349 352 354 355 357 358 360 362 364 365 367 369 371 372 374 376 377 379 381 384 3-9-23 SHIFT N-BITS RIGHT : NASR(581) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9-24 DOUBLE SHIFT N-BITS RIGHT : NSRL(583). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-10 Instructions d'incrémentation/décrémentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-10-1 INCREMENT BINARY : ++(590). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-10-2 DOUBLE INCREMENT BINARY : ++L(591) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-10-3 DECREMENT BINARY : – –(592) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-10-4 DOUBLE DECREMENT BINARY : – –L(593) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-10-5 INCREMENT BCD : ++B(594). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-10-6 DOUBLE INCREMENT BCD : ++BL(595) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-10-7 DECREMENT BCD : – –B(596) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-10-8 DOUBLE DECREMENT BCD : – –BL(597) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-11 Instructions mathématiques à symboles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-11-1 SIGNED BINARY ADD WITHOUT CARRY : +(400) . . . . . . . . . . . . . . . . . . . . . . . . . 3-11-2 DOUBLE SIGNED BINARY ADD WITHOUT CARRY : +L(401) . . . . . . . . . . . . . . . 3-11-3 SIGNED BINARY ADD WITH CARRY : +C(402) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-11-4 DOUBLE SIGNED BINARY ADD WITH CARRY : +CL(403) . . . . . . . . . . . . . . . . . . 3-11-5 BCD ADD WITHOUT CARRY : +B(404) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-11-6 DOUBLE BCD ADD WITHOUT CARRY : +BL(405) . . . . . . . . . . . . . . . . . . . . . . . . . 3-11-7 BCD ADD WITH CARRY : +BC(406) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-11-8 DOUBLE BCD ADD WITH CARRY : +BCL(407) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-11-9 SIGNED BINARY SUBTRACT WITHOUT CARRY : –(410) . . . . . . . . . . . . . . . . . . . 3-11-10 DOUBLE SIGNED BINARY SUBTRACT WITHOUT CARRY : –L(411) . . . . . . . . . 3-11-11 SIGNED BINARY SUBTRACT WITH CARRY : –C(412) . . . . . . . . . . . . . . . . . . . . . . 3-11-12 DOUBLE SIGNED BINARY SUBTRACT WITH CARRY : –CL(413) . . . . . . . . . . . . 3-11-13 BCD SUBTRACT WITHOUT CARRY : –B(414) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-11-14 DOUBLE BCD SUBTRACT WITHOUT CARRY : –BL(415) . . . . . . . . . . . . . . . . . . . 3-11-15 BCD SUBTRACT WITH CARRY : –BC(416) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-11-16 DOUBLE BCD SUBTRACT WITH CARRY : –BCL(417) . . . . . . . . . . . . . . . . . . . . . . 3-11-17 SIGNED BINARY MULTIPLY : *(420) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-11-18 DOUBLE SIGNED BINARY MULTIPLY : *L(421) . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-11-19 UNSIGNED BINARY MULTIPLY : *U(422). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-11-20 DOUBLE UNSIGNED BINARY MULTIPLY : *UL(423) . . . . . . . . . . . . . . . . . . . . . . . 3-11-21 BCD MULTIPLY : *B(424) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-11-22 DOUBLE BCD MULTIPLY : *BL(425) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-11-23 SIGNED BINARY DIVIDE : /(430) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-11-24 DOUBLE SIGNED BINARY DIVIDE : /L(431) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-11-25 UNSIGNED BINARY DIVIDE : /U(432) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-11-26 DOUBLE UNSIGNED BINARY DIVIDE : /UL(433) . . . . . . . . . . . . . . . . . . . . . . . . . . 3-11-27 BCD DIVIDE : /B(434) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-11-28 DOUBLE BCD DIVIDE : /BL(435) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-12 Instructions de conversion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-12-1 BCD-TO-BINARY : BIN(023). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-12-2 DOUBLE BCD-TO-DOUBLE BINARY : BINL(058) . . . . . . . . . . . . . . . . . . . . . . . . . . 3-12-3 BINARY-TO-BCD : BCD(024) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-12-4 DOUBLE BINARY-TO-DOUBLE BCD : BCDL(059). . . . . . . . . . . . . . . . . . . . . . . . . . 3-12-5 2’S COMPLEMENT : NEG(160) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-12-6 DOUBLE 2’S COMPLEMENT : NEGL(161). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-12-7 16-BIT TO 32-BIT SIGNED BINARY : SIGN(600). . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-12-8 DATA DECODER : MLPX(076) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-12-9 DATA ENCODER : DMPX(077) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-12-10 ASCII CONVERT : ASC(086). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-12-11 ASCII TO HEX : HEX(162) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-12-12 COLUMN TO LINE : LINE(063) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-12-13 LINE TO COLUMN : COLM(064) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-12-14 SIGNED BCD-TO-BINARY : BINS(470). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-12-15 DOUBLE SIGNED BCD-TO-BINARY : BISL(472) . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-12-16 SIGNED BINARY-TO-BCD : BCDS(471) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387 389 393 393 395 397 399 401 403 405 407 409 410 412 414 416 418 419 421 423 424 426 430 432 435 436 440 441 443 445 447 449 450 452 454 456 458 460 462 464 465 466 467 469 470 472 474 476 477 482 486 490 494 496 499 502 505 143 3-13 3-14 3-15 3-16 144 3-12-17 DOUBLE SIGNED BINARY-TO-BCD : BDSL(473). . . . . . . . . . . . . . . . . . . . . . . . . . . 3-12-18 GRAY CODE CONVERT : GRY(474) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Instructions logiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-13-1 LOGICAL AND : ANDW(034) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-13-2 DOUBLE LOGICAL AND : ANDL(610) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-13-3 LOGICAL OR : ORW(035) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-13-4 DOUBLE LOGICAL OR : ORWL(611) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-13-5 EXCLUSIVE OR : XORW(036) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-13-6 DOUBLE EXCLUSIVE OR : XORL(612) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-13-7 EXCLUSIVE NOR : XNRW(037). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-13-8 DOUBLE EXCLUSIVE NOR : XNRL(613). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-13-9 COMPLEMENT : COM(029) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-13-10 DOUBLE COMPLEMENT : COML(614) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Instructions mathématiques spéciales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-14-1 BINARY ROOT : ROTB(620) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-14-2 BCD SQUARE ROOT : ROOT(072) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-14-3 ARITHMETIC PROCESS : APR(069) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-14-4 FLOATING POINT DIVIDE : FDIV(079) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-14-5 BIT COUNTER : BCNT(067) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Instructions mathématiques à virgule flottante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-15-1 FLOATING TO 16-BIT : FIX(450) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-15-2 FLOATING TO 32-BIT : FIXL(451) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-15-3 16-BIT TO FLOATING : FLT(452) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-15-4 32-BIT TO FLOATING : FLTL(453). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-15-5 FLOATING-POINT ADD : +F(454) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-15-6 FLOATING-POINT SUBTRACT : –F(455) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-15-7 FLOATING-POINT MULTIPLY : *F(456) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-15-8 FLOATING-POINT DIVIDE : /F(457) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-15-9 DEGREES TO RADIANS : RAD(458) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-15-10 RADIANS TO DEGREES : DEG(459) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-15-11 SINE : SIN(460) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-15-12 COSINE : COS(461) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-15-13 TANGENT : TAN(462) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-15-14 ARC SINE : ASIN(463) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-15-15 ARC COSINE : ACOS(464) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-15-16 ARC TANGENT : ATAN(465) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-15-17 SQUARE ROOT : SQRT(466) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-15-18 EXPONENT : EXP(467) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-15-19 LOGARITHM : LOG(468) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-15-20 EXPONENTIAL POWER : PWR(840) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-15-21 Instructions de comparaison à virgule flottante simple précision . . . . . . . . . . . . . . . . . . 3-15-22 FLOATING-POINT TO ASCII : FSTR(448). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-15-23 ASCII TO FLOATING-POINT : FVAL(449) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Instructions à virgule flottante double précision (CS1-H, CJ1-H, CJ1M ou CS1D uniquement) . 3-16-1 DOUBLE FLOATING TO 16-BIT : FIXD(841) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-16-2 DOUBLE FLOATING TO 32-BIT : FIXLD(842) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-16-3 16-BIT TO DOUBLE FLOATING : DBL(843). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-16-4 32-BIT TO DOUBLE FLOATING : DBLL(844) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-16-5 DOUBLE FLOATING-POINT ADD : +D(845) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-16-6 DOUBLE FLOATING-POINT SUBTRACT : –D(846) . . . . . . . . . . . . . . . . . . . . . . . . . 3-16-7 DOUBLE FLOATING-POINT MULTIPLY : *D(847) . . . . . . . . . . . . . . . . . . . . . . . . . . 3-16-8 DOUBLE FLOATING-POINT DIVIDE : /D(848) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-16-9 DOUBLE DEGREES TO RADIANS : RADD(849) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-16-10 DOUBLE RADIANS TO DEGREES : DEGD(850) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-16-11 DOUBLE SINE : SIND(851) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-16-12 DOUBLE COSINE : COSD(852) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-16-13 DOUBLE TANGENT : TAND(853) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 507 511 517 517 519 520 522 524 526 528 529 531 533 534 534 536 540 552 556 558 563 565 566 568 570 572 574 576 578 579 581 583 585 587 589 591 593 595 597 599 600 604 609 613 620 621 623 624 626 628 630 632 634 636 637 639 641 3-17 3-18 3-19 3-20 3-21 3-16-14 DOUBLE ARC SINE : ASIND(854) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-16-15 DOUBLE ARC COSINE : ACOSD(855) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-16-16 DOUBLE ARC TANGENT : ATAND(856) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-16-17 DOUBLE SQUARE ROOT : SQRTD(857) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-16-18 DOUBLE EXPONENT : EXPD(858) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-16-19 DOUBLE LOGARITHM : LOGD(859) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-16-20 DOUBLE EXPONENTIAL POWER : PWRD(860) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-16-21 Instructions d'entrée à virgule flottante double précision . . . . . . . . . . . . . . . . . . . . . . . . . Instructions de traitement des données de tableaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-17-1 SET STACK : SSET(630) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-17-2 PUSH ONTO STACK : PUSH(632) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-17-3 FIRST IN FIRST OUT : FIFO(633). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-17-4 LAST IN FIRST OUT : LIFO(634) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-17-5 DIMENSION RECORD TABLE : DIM(631) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-17-6 SET RECORD LOCATION : SETR(635) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-17-7 GET RECORD NUMBER : GETR(636) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-17-8 DATA SEARCH : SRCH(181) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-17-9 SWAP BYTES : SWAP(637) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-17-10 FIND MAXIMUM : MAX(182) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-17-11 FIND MINIMUM : MIN(183) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-17-12 SUM : SUM(184) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-17-13 FRAME CHECKSUM : FCS(180) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-17-14 STACK SIZE READ : SNUM(638) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-17-15 STACK DATA READ : SREAD(639) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-17-16 STACK DATA OVERWRITE : SWRIT(640) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-17-17 STACK DATA INSERT : SINS(641) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-17-18 STACK DATA DELETE : SDEL(642). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Instructions de contrôle des données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-18-1 PID CONTROL : PID(190) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-18-2 PID CONTROL WITH AUTOTUNING : PIDAT(191). . . . . . . . . . . . . . . . . . . . . . . . . . 3-18-3 LIMIT CONTROL : LMT(680) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-18-4 DEAD BAND CONTROL : BAND(681) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-18-5 DEAD ZONE CONTROL : ZONE(682) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-18-6 TIME-PROPORTIONAL OUTPUT : TPO(685) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-18-7 SCALING : SCL(194) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-18-8 SCALING 2 : SCL2(486). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-18-9 SCALING 3 : SCL3(487). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-18-10 AVERAGE : AVG(195) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sous-programmes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-19-1 SUBROUTINE CALL : SBS(091). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-19-2 MACRO : MCRO(099). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-19-3 SUBROUTINE ENTRY : SBN(092) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-19-4 SUBROUTINE RETURN : RET(093). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-19-5 GLOBAL SUBROUTINE CALL : GSBS(750). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-19-6 GLOBAL SUBROUTINE ENTRY : GSBN(751) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-19-7 GLOBAL SUBROUTINE RETURN : GRET(752). . . . . . . . . . . . . . . . . . . . . . . . . . . . . Instructions de contrôle des interruptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-20-1 SET INTERRUPT MASK : MSKS(690) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-20-2 READ INTERRUPT MASK: MSKR(692) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-20-3 CLEAR INTERRUPT : CLI(691) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-20-4 DISABLE INTERRUPTS : DI(693) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-20-5 ENABLE INTERRUPTS : EI(694) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-20-6 Résumé des instructions de contrôle des interruptions. . . . . . . . . . . . . . . . . . . . . . . . . . . Instructions de compteur à grande vitesse et de sortie d'impulsions. . . . . . . . . . . . . . . . . . . . . . . . 3-21-1 MODE CONTROL: INI(880) (CJ1M-CPU21/22/23 uniquement) . . . . . . . . . . . . . . . . . 3-21-2 HIGH-SPEED COUNTER PV READ : PRV(881) (CJ1M-CPU21/22/23 uniquement) . 3-21-3 COUNTER FREQUENCY CONVERT : PRV2(883) . . . . . . . . . . . . . . . . . . . . . . . . . . . 643 645 647 649 651 653 655 657 660 666 669 672 675 678 681 683 685 687 689 693 697 700 704 707 710 713 716 720 720 731 741 743 746 749 757 762 766 769 773 773 779 783 786 786 794 797 798 798 804 809 814 816 818 823 823 827 833 145 3-22 3-23 3-24 3-25 3-26 3-27 3-28 3-29 3-30 146 3-21-4 REGISTER COMPARISON TABLE : CTBL(882) (CJ1M-CPU21/22/23 uniquement) 3-21-5 SPEED OUTPUT : SPED(885) (CJ1M-CPU21/22/23 uniquement) . . . . . . . . . . . . . . . . 3-21-6 SET PULSES : PULS(886) (CJ1M-CPU21/22/23 uniquement) . . . . . . . . . . . . . . . . . . . 3-21-7 PULSE OUTPUT : PLS2(887) (CJ1M-CPU21/22/23 uniquement) . . . . . . . . . . . . . . . . 3-21-8 ACCELERATION CONTROL : ACC(888) (CJ1M-CPU21/22/23 uniquement) . . . . . . 3-21-9 ORIGIN SEARCH : ORG(889) (CJ1M-CPU21/22/23 uniquement). . . . . . . . . . . . . . . . 3-21-10 PULSE WITH VARIABLE DUTY FACTOR : PWM(891) (CJ1M-CPU21/22/23 uniquement) Instructions de pas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-22-1 STEP DEFINE et STEP START : STEP(008)/SNXT(009) . . . . . . . . . . . . . . . . . . . . . . . Instructions des cartes E/S standard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-23-1 I/O REFRESH : IORF(097) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-23-2 7-SEGMENT DECODER : SDEC(078) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-23-3 DIGITAL SWITCH INPUT – DSW(210) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-23-4 TEN KEY INPUT – TKY(211) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-23-5 HEXADECIMAL KEY INPUT – HKY(212) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-23-6 MATRIX INPUT : MTR(213) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-23-7 7-SEGMENT DISPLAY OUTPUT – 7SEG(214) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-23-8 INTELLIGENT I/O READ : IORD(222). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-23-9 INTELLIGENT I/O WRITE : IOWR(223) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-23-10 CPU BUS UNIT I/O REFRESH : DLNK(226) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Instructions de communication série. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-24-1 Communication série . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-24-2 PROTOCOL MACRO : PMCR(260) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-24-3 TRANSMIT : TXD(236) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-24-4 RECEIVE : RXD(235) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-24-5 TRANSMIT VIA SERIAL COMMUNICATIONS UNIT : TXDU(256) . . . . . . . . . . . . 3-24-6 RECEIVE VIA SERIAL COMMUNICATIONS UNIT : RXDU(255) . . . . . . . . . . . . . . 3-24-7 CHANGE SERIAL PORT SETUP : STUP(237). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Instructions réseau. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-25-1 A propos du fonctionnement de SYSMAC NET Link/SYSMAC LINK . . . . . . . . . . . . . 3-25-2 A propos des instructions de message explicite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-25-3 NETWORK SEND : SEND(090). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-25-4 NETWORK RECEIVE : RECV(098) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-25-5 DELIVER COMMAND : CMND(490) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-25-6 EXPLICIT MESSAGE SEND : EXPLT (720). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-25-7 EXPLICIT GET ATTRIBUTE : EGATR(721) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-25-8 EXPLICIT SET ATTRIBUTE : ESATR(722) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-25-9 EXPLICIT WORD READ : ECHRD (723) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-25-10 EXPLICIT WORD WRITE : ECHWR(724) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Instructions de mémoire de fichiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-26-1 Précautions lors de l'utilisation des cartes mémoire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-26-2 READ DATA FILE : FREAD(700) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-26-3 WRITE DATA FILE : FWRIT(701). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Instructions d'affichage : DISPLAY MESSAGE : MSG(046) . . . . . . . . . . . . . . . . . . . . . . . . . . . . Instructions d'horloge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-28-1 CALENDAR ADD : CADD(730) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-28-2 CALENDAR SUBTRACT : CSUB(731). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-28-3 HOURS TO SECONDS : SEC(065) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-28-4 SECONDS TO HOURS : HMS(066). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-28-5 CLOCK ADJUSTMENT : DATE(735) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Instructions de débogage. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-29-1 Echantillonnage mémoire de tracé : TRSM(045). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Instructions de diagnostic d'erreur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-30-1 FAILURE ALARM : FAL(006) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-30-2 SEVERE FAILURE ALARM : FALS(007) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-30-3 FAILURE POINT DETECTION : FPD(269) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 837 841 846 849 855 862 865 867 868 885 885 888 890 896 899 904 908 913 917 921 926 926 928 937 944 952 960 968 973 973 986 991 997 1003 1013 1021 1028 1034 1038 1042 1042 1045 1052 1058 1061 1061 1065 1068 1070 1073 1075 1075 1079 1079 1087 1095 3-31 Autres instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-31-1 SET CARRY : STC(040) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-31-2 CLEAR CARRY : CLC(041) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-31-3 SELECT EM BANK : EMBC(281) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-31-4 EXTEND MAXIMUM CYCLE TIME : WDT(094). . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-31-5 SAVE CONDITION FLAGS : CCS(282) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-31-6 LOAD CONDITION FLAGS : CCL(283) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-31-7 CONVERT ADDRESS FROM CV : FRMCV(284) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-31-8 CONVERT ADDRESS TO CV : TOCV(285) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-31-9 DISABLE PERIPHERAL SERVICING : IOSP(287) (CS1-H/CJ1-H/CJ1M uniquement) 3-31-10 ENABLE PERIPHERAL SERVICING : IOSP(288) (CS1-H/CJ1-H/CJ1M uniquement) 3-32 Instructions de programmation de bloc. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-32-1 Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-32-2 BLOCK PROGRAM BEGIN/END : BPRG(096)/BEND(801). . . . . . . . . . . . . . . . . . . . 3-32-3 BLOCK PROGRAM PAUSE/RESTART : BPPS(811)/BPRS(812) . . . . . . . . . . . . . . . . 3-32-4 Instruction conditionnelle : IF(802), ELSE(803)et IEND(804) . . . . . . . . . . . . . . . . . . . . 3-32-5 CONDITIONAL BLOCK EXIT (NOT) : EXIT (NOT)(806) . . . . . . . . . . . . . . . . . . . . . 3-32-6 ONE CYCLE AND WAIT (NOT) : WAIT(805)/WAIT(805) NOT . . . . . . . . . . . . . . . . . 3-32-7 TIMER WAIT : TIMW(813) et TIMWX(816) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-32-8 COUNTER WAIT : CNTW(814) et CNTWX(818). . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-32-9 HIGH-SPEED TIMER WAIT : TMHW(815) et TMHWX(817). . . . . . . . . . . . . . . . . . . 3-32-10 Loop Control: LOOP(809)/LEND(810)/LEND(810) NOT . . . . . . . . . . . . . . . . . . . . . . . 3-33 Instructions de traitement de chaînes de texte. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-33-1 Aperçu du traitement de chaînes de texte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-33-2 MOV STRING : MOV$(664). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-33-3 CONCATENATE STRING : +$(656) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-33-4 GET STRING LEFT : LEFT$(652) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-33-5 GET STRING RIGHT : RGHT$(653) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-33-6 GET STRING MIDDLE : MID$(654) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-33-7 FIND IN STRING : FIND$(660) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-33-8 STRING LENGTH : LEN$(650) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-33-9 REPLACE IN STRING : RPLC$(661) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-33-10 DELETE STRING : DEL$(658) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-33-11 EXCHANGE STRING : XCHG$(665) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-33-12 CLEAR STRING : CLR$(666) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-33-13 INSERT INTO STRING : INS$(657) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-33-14 Instructions de comparaison de chaînes (670 à 675) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-34 Instructions de contrôle des tâches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-34-1 TASK ON : TKON(820). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-34-2 TASK OFF : TKOF(821) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-35 Instructions de conversion des modèles (UC version 3.0 ou supérieure) . . . . . . . . . . . . . . . . . . . . 3-35-1 BLOCK TRANSFER : XFERC(565). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-35-2 SINGLE WORD DISTRIBUTE : DISTC(566) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-35-3 DATA COLLECT : COLLC(567) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-35-4 MOVE BIT : MOVBC(568) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-35-5 BIT COUNTER : BCNTC(621). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-35-6 GET VARIABLE ID : GETID(286). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1104 1104 1105 1106 1108 1110 1112 1113 1117 1121 1123 1124 1124 1128 1131 1133 1137 1140 1144 1147 1150 1153 1158 1158 1159 1161 1164 1166 1168 1171 1173 1175 1178 1180 1182 1184 1187 1192 1192 1196 1199 1201 1203 1206 1211 1212 1214 147 Chapitre 3-1 Notation et présentation des descriptions d'instructions 3-1 Notation et présentation des descriptions d'instructions Les instructions sont décrites par groupes de fonction. Reportez-vous à 2-3 Liste alphabétique des instructions par mnémonique pour une liste des instructions par mnémonique qui indique le numéro de page dans ce chapitre pour chaque instruction. La description de chaque instruction se présente comme décrit dans le tableau ci-dessous. Nom et mnémonique Objet Symbole du schéma contact et noms d'opérande Contenu L'intitulé de chaque section comprend le nom de l'instruction suivi de l'abréviation mnémonique et du code fonction entre parenthèses. Exemple : MOVE BIT : MOVB(082) L'objet de l'instruction est décrit après l'intitulé de section. Le symbole de schéma contact utilisé pour représenter l'instruction dans CX-Programmer est indiqué, comme dans l'exemple pour l'instruction MOVE BIT repris ci-dessous. Le nom de chaque opérande est également accompagné du symbole de schéma contact. MOVB(082) Variations Variations Variations Variations S S: Mot ou donnée source C C: Mot de contrôle D D: Mot de destination Les variations pouvant être utilisées pour contrôler l'exécution de l'instruction dans des conditions particulières sont indiquées sous forme mnémonique. Toute variation qui n'est pas supportée par une instruction est accompagnée de la mention “Non prise en charge.” • Exécutée à chaque cycle pour la condition ON : L'instruction est exécutée pour autant que la condition d'exécution est ON. • Exécutée une fois pour la différentiation sur front montant : L'instruction est exécutée au cycle suivant uniquement après que la condition d'exécution passe de OFF à ON. • Exécutée une fois pour la différentiation sur front descendant : L'instruction est exécutée au cycle suivant uniquement après que la condition d'exécution passe de ON à OFF. • Toujours exécutée : L'instruction ne nécessite pas de condition d'exécution et est exécutée à chaque cycle. • Crée la condition ON.... : L'instruction est exécutée à chaque cycle pour créer une condition d'exécution pour l'instruction suivante. Variations Exécutée à chaque cycle pour la condition ON MOVB(082) Exécutée une fois pour la différentiation sur front montant @MOVB(082) Exécutée une fois pour la différentiation sur front descendant Non prise en charge Spécification de Le rafraîchissement immédiat peut être spécifié pour certaines instructions afin de rafraîchissemettre à jour l'E/S à l'exécution de l'instruction. Si le rafraîchissement immédiat est ment immédiat pris en charge, la spécification est indiquée sous forme mnémonique. Si le rafraîchissement immédiat n’est pas pris en charge par une instruction, la mention “Non prise en charge” est indiquée. Spécification de rafraîchissement immédiat 148 Non prise en charge. Chapitre 3-1 Notation et présentation des descriptions d'instructions Contenu Zones de programmes applicables Les zones de programmes dans lesquelles l'instruction peut être utilisée, sont ici spécifiées. “OK” indique les zones dans lesquelles l'instruction peut être utilisée. Opérandes Zones de Zones de programmes programmes pas bloc Sous-programmes Tâches d'interruption OK OK OK OK Le cas échéant, la signification des mots et bits utilisés dans des opérandes spécifiques, tels que des mots de contrôle, est indiquée. 15 C 8 7 m 0 n Bit source : 00 à 0F (0 à 15 décimal) Bit de destination 00 à 0F (0 à 15 décimal) Spécifications de l’opérande Les adresses de zones mémoire pouvant être utilisées pour chaque opérande sont reprises dans un tableau comme celui-ci. Les lettres utilisées dans les intitulés de colonne à gauche sont identiques à celles utilisées dans le symbole du schéma contact. “---” est indiqué pour signaler qu'une zone ne peut être spécifique pour un opérande. Zone Zone CIO S C D CIO 0000 à CIO 6143 Zone Travail W000 à W511 Zone Bit de maintien H000 à H511 Zone Bit auxiliaire A000 à A959 A448 à A959 Zone Tempo- T0000 à T4095 risateur Zone Compteur Description Drapeaux C0000 à C4095 Zone DM D00000 à D32767 Zone EM sans banque E00000 à E32767 Cette rubrique décrit la fonction de l'instruction et les opérandes utilisés dans l'instruction. Le tableau de drapeaux indique l'état des drapeaux de condition immédiatement après l'exécution de l'instruction. Tout drapeau non listé n'est pas concerné par l'instruction. “OFF” indique qu'un drapeau est mis sur OFF immédiatement après l'exécution de l'instruction quels que soient les résultats de cette exécution. Nom Précautions Exemple Constantes Etiquette Fonctionnement Drapeau d'erreur ER ON si les données de contrôle sont dans les plages. OFF dans tous les autres cas. Drapeau d'égalité = OFF Drapeau négatif N OFF Cette rubrique indique les précautions particulières à prendre pour une instruction donnée. N'oubliez pas de lire et de respecter ces précautions. Un exemple d'utilisation de l'instruction avec des opérandes spécifiques est donné afin d'expliquer davantage la fonction de l'instruction. Des entrées de constantes pour les opérandes sont indiquées comme repris ci-dessous. 149 Chapitre 3-1 Notation et présentation des descriptions d'instructions Description et spécifications des opérandes • Opérandes spécifiant des chaînes de bits (en général entrée hexadécimale) : Seule la forme hexadécimale est donnée pour les opérandes spécifiant des chaînes de bits, ex. seulement “#0000 à #FFFF” est spécifié comme opérande S pour l'instruction MOV(021). Dans CX-Programmer, les chaînes de bits peuvent être cependant saisies sous forme décimale à l'aide du préfixe &. • Opérandes spécifiant des valeurs numériques (en général entrée décimale, numéros de saut inclus) : Les formes décimales et hexadécimales sont indiquées pour les opérandes spécifiant des valeurs numériques, ex. “#0000 à #FFFF” et “&0 à &65535” sont indiqués comme opérande N pour l'instruction XFER(070). • Opérandes d'indication de numéros de contrôle (excepté pour les numéros de saut) : La forme décimale est indiquée pour les numéros de contrôle, ex. “0 à 1023” est indiqué comme opérande N pour l'instruction SBS(091). Exemples Dans les exemples, les constantes sont indiquées en suivant la notation de CX-Programmer, ex. des opérandes spécifiant des valeurs numériques sont indiqués sous forme décimale et accompagnés du préfixe &, comme dans l'exemple ci-dessous. XFER &10 D00100 D00200 Les méthodes d'entrée des constantes pour les périphériques de programmation sont reprises au tableau ci-dessous. Opérande CXProgrammer Opérandes spéciEntrée sous fiant des chaînes de forme décibits (en général male avec le entrée hexadécimale) préfixe & ou entrée sous Opérandes spéciforme hexadéfiant des valeurs cimale avec le numériques (en général entrée déci- préfixe #. (voir remarque) male) Opérandes Entrée sous d'indication de forme décimale numéros de contrôle avec le préfixe (excepté pour les #. (voir numéros de saut) remarque) Console de programmation La touche Cont/# peut être enfoncée pour saisir des valeurs hexadécimales par défaut avec le préfixe #. La touche CHG peut être ensuite enfoncée pour passer d'hexadécimal (avec préfixe #) à décimal signé (avec +/–) et décimal non signé (avec préfixe &), Entrée directement sous forme décimale. Si le préfixe & est automatiquement ajouté, la touche CHG peut être enfoncée pour passer de décimal non signé (avec le préfixe &), à hexadécimal (avec le préfixe #) et décimal signé (avec +/–) Si aucun préfixe n'est affiché, la valeur doit être saisie sous forme décimale. Remarque Lorsque les opérandes sont saisis dans CX-Programmer, les plages d'entrée s'affichent ainsi que les préfixes appropriés. Drapeaux de condition 150 Des étiquettes de console de programmation sont utilisées comme drapeaux de condition dans cette section. Dans le cas de CX-Programmer, les dra- Chapitre 3-2 Mises à niveau des instructions et nouvelles instructions peaux de condition sont enregistrés à l'avance comme symboles globaux, “P_” précédant le nom du symbole. Drapeau Etiquette de console de programmation Drapeau d'erreur ER Drapeau Erreur d’accès AER Drapeau de report CY Drapeau supérieur à > Drapeau d'égalité = Drapeau inférieur à < Drapeau négatif N Drapeau de dépassement OF Drapeau de dépassement négatif UF Drapeau supérieur ou égal à >= Drapeau de non égalité <> Drapeau inférieur ou égal à <= Drapeau Toujours ON ON Drapeau Toujours OFF OFF 3-2 Etiquette CX-Programmer P_ER P_AER P_CY P_GT P_EQ P_LT P_N P_OF P_UF P_GE P_NE P_LE P_On P_Off Mises à niveau des instructions et nouvelles instructions Cette section reprend les mises à niveau des instructions pour les UC CS1 avec le suffixe -EV1 et les UC CS1-H/CJ1-H. 3-2-1 Mises à niveau pour les UC série CS version-1 Les instructions suivantes ont été mises à niveau pour les UC version-1. Reportez-vous au numéro de page mentionné pour plus de détails. Les fonctions prises en charge uniquement par les UC version-1 sont suivies de la mention “(-EV1 uniquement)” Nom READ DATA FILE WRITE DATA FILE DELIVER COMMAND 3-2-2 Mnémoniq Code Fonction ue fonction FREAD 700 Les formats de données CSV et texte (.txt) sont FWRIT 701 désormais pris en charge. (précédemment seules les données binaires étaient prises en charge.) CMND 490 L'UC peut désormais envoyer une commande FINS à elle-même. (précédemment impossible.) Mise à niveau Page 1045 Le contenu des données de contrôle a été modifié en ajou- 1052 tant le format de données, la présence de retours chariot et les spécifications de la position du retour chariot. La possibilité d'envoyer une commande FINS à l'UC exécutant l'instruction CMND(490) a été ajoutée. 1003 Mises à niveau pour les UC CS1-H/CJ1-H Nouvelles instructions Les instructions suivantes ont été ajoutées aux UC CS1-H et CJ1-H. Instructions de sortie de séquences SINGLE BIT SET, SETB(532) SINGLE BIT RESET, RSTB(533) SINGLE BIT OUTPUT, OUTB(534) Instructions de comparaison de données AREA RANGE COMPARE, ZCP(088) DOUBLE AREA RANGE COMPARE, ZCPL(116) 151 Mises à niveau des instructions et nouvelles instructions Chapitre 3-2 Instructions de calcul et de conversion à virgule flottante Instructions de comparaison de données à virgule flottante : =F, <>F, <F, <=F, >F et >=F (329 à 334) FLOATING POINT TO ASCII, FSTR(448) ASCII TO FLOATING POINT, VAL(449) Instructions de calcul et de conversion à virgule flottante double précision Instructions de comparaison double précision : =D, <>D, <D, <=D, >D et >=D (335 à 340) DOUBLE FLOATING TO 16-BIT BINARY, FIXD(841) DOUBLE FLOATING TO 32-BIT BINARY, FIXLD(8420) 16-BIT BINARY TO DOUBLE FLOATING, DBL(843) 32-BIT BINARY TO DOUBLE FLOATING, DBLL(844) DOUBLE FLOATING-POINT ADD, +D(845) DOUBLE FLOATING-POINT SUBTRACT, −D(846) DOUBLE FLOATING-POINT MULTIPLY, *D(847) DOUBLE FLOATING-POINT DIVIDE, /D(848) DOUBLE DEGREES TO RADIANS, RADD(849) DOUBLE RADIANS TO DEGREES, DEGD(850) DOUBLE SINE, SIND(851) DOUBLE COSINE, COSD(852) DOUBLE TANGENT, TAND(853) DOUBLE ARC SINE, ASIND(854) DOUBLE ARC COSINE, ACOSD(855) DOUBLE ARC TANGENT, ATAND(856) DOUBLE SQUARE ROOT, SQRTD(857) DOUBLE EXPONENT, EXPD(858) DOUBLE LOGARITHM, LOGD(859) DOUBLE EXPONENTIAL POWER, PWRD(860) Instructions de traitement des données de tableaux STACK SIZE READ, SNUM(638) STACK DATA READ, SREAD(639) STACK DATA WRITE, SWRIT(640) STACK DATA INSERT, SINS(641) STACK DATA DELETE, SDEL(642) Instructions de contrôle des données PID CONTROL WITH AUTOTUNING, PIDAT(191) Instructions de sous-programme GLOBAL SUBROUTINE CALL, GSBS(750) GLOBAL SUBROUTINE ENTRY, GSBN(751) GLOBAL SUBROUTINE RETURN, GRET(752) Instructions des cartes E/S CPU BUS UNIT I/O REFRESH, DLNK(226) Autres instructions SAVE CONDITION FLAGS, CCS(282) LOAD CONDITION FLAGS, CCL(283) CONVERT ADDRESS FROM CV, FRMCV(284) CONVERT ADDRESS TO CV, TOCV(285) DISABLE PERIPHERAL SERVICING, IOSP(287) ENABLE PERIPHERAL SERVICING, IORS(288) Nouvelles instructions Les instructions suivantes ont été mises à niveau pour les UC CS1-H et CJ1-H. Instructions mathématiques spéciales ARITHMETIC PROCESS, APR(069) Instructions de diagnostic d'erreur FAILURE ALARM, FAL(006) SEVERE FAILURE ALARM, FALS(007) 152 Chapitre 3-3 Instructions d'entrée de séquences 3-3 Instructions d'entrée de séquences 3-3-1 LOAD : LD Objet Indique un départ logique et crée une condition d'exécution ON/OFF basée sur l'état ON/OFF du bit d'opérande spécifié. Symbole du schéma contact Barre de bus Point de départ du bloc Variations Variations Relance la logique et crée ON à chaque cycle où le bit d'opérande est ON Relance la logique et crée ON une fois pour la différentiation sur front montant Relance la logique et crée ON une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat (voir remarque.) Variations Rafraîchit le bit d'entrée, relance la logique et combinées crée ON une fois pour la différentiation sur front montant (voir remarque.) Rafraîchit le bit d'entrée, relance la logique et crée ON une fois pour la différentiation sur front descendant (voir remarque.) LD @LD %LD !LD !@LD !%LD Remarque Le rafraîchissement immédiat n'est pas pris en charge par les UC CS1D pour les systèmes d'UC en duplex. Zones de programmes applicables Spécifications de l’opérande Zones de programmes bloc OK Zones de programmes pas OK Sousprogrammes OK Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone de drapeaux de tâches Drapeaux de condition Impulsions d'horloge Zone TR Zone DM Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Bit d'opérande LD CIO 000000 à CIO 614315 W00000 à W51115 H00000 à H51115 A00000 à A95915 T0000 à T4095 C0000 à C4095 TK0000 à TK0031 Tâches d'interruption OK ER, CY, N, OF, UF, >, =, <, >=, <>, <=, A1, A0 0,02 s, 0,1 s, 0,2 s, 1 s, 1 min TR0 à TR15 ------------- 153 Chapitre 3-3 Instructions d'entrée de séquences Zone Registres de données Registres d'index Adressage indirect à l’aide de registres d’index Description Bit d'opérande LD ----,IR0 à ,IR15 -2048 à +2047 ,IR0 à -2048 à +2047 ,IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 L'instruction LD est utilisée pour le premier bit normalement ouvert de la barre de bus ou pour le premier bit normalement ouvert d'un bloc logique. S'il n'existe pas de spécification de rafraîchissement immédiat, le bit spécifié dans la mémoire E/S est lu. S'il existe une spécification de rafraîchissement immédiat, l'état de la borne d'entrée de la carte d'entrée standard est lu et utilisé. LD est utilisée dans les cas suivants pour indiquer un départ logique. • Lors de la connexion directe à la barre de bus. • Lorsque des blocs logiques sont connectés par AND LD ou OR LD, c'està-dire au début d'un bloc logique. Les instructions AND LOAD et OR LOAD sont utilisées pour connecter en série ou en parallèle des blocs logiques commençant par LD ou LD NOT. Au moins une instruction LOAD ou LOAD NOT est requise pour la condition d'exécution lorsque les instructions liées à la sortie ne peuvent être directement connectées à la barre de bus. S'il n'existe pas d'instruction LOAD ou LOAD NOT, une erreur de programmation se produit lors de la vérification du programme par le périphérique. Lorsque des blocs logiques sont connectés par des instructions AND LOAD ou OR LOAD, le nombre total d'instructions AND LOAD/OR LOAD doit correspondre au nombre total d'instructions LOAD/LOAD NOT moins 1. Si ce nombre ne correspond pas, une erreur de programmation se produit. Pour plus d'informations, reportez-vous à 3-3-7 AND LOAD : AND LD et 3-3-8 OR LOAD : OR LD. Drapeaux Aucun drapeau n'est concerné par cette instruction. Précautions La différentiation sur front montant (@) ou la différentiation sur front descendant (%) peut être spécifiée pour l'instruction LD. Si la différentiation sur front montant (@) est spécifiée, la condition d'exécution passe ON pendant un cycle uniquement après que l'état du bit d'opérande passe de OFF à ON. Si la différentiation sur front descendant (%) est spécifiée, la condition d'exécution passe ON pendant un cycle uniquement après que l'état du bit d'opérande passe de ON à OFF. La rafraîchissement immédiat (!) peut être spécifié pour l'instruction LD. Une instruction de rafraîchissement immédiat met à jour l'état du bit d'entrée juste avant que l'instruction ne soit exécutée pour les cartes d'entrée standard (mais pas pour les cartes d'entrée standard sur racks esclaves ni pour les cartes d'entrée multipoint C200H Groupe 2). Dans le cas de LD, il est possible de combiner la rafraîchissement immédiat et la différentiation sur front montant ou sur front descendant (!@ ou !%). Si l'une de ces spécifications existe, l'entrée est mise à jour à partir de la carte d'entrée standard juste avant l'exécution de l'instruction et la condition d'exécution passe ON pendant un cycle uniquement après que l'état passe de OFF à ON ou de ON à OFF. 154 Chapitre 3-3 Instructions d'entrée de séquences Exemple Instruction LD LD LD AND OR LD AND LD LD NOT AND OR LD OUT 3-3-2 Opérande 000000 000001 000002 000003 ----000004 000005 --000100 OR LD AND LD OR LD LOAD NOT : LD NOT Objet Indique un départ logique et crée une condition d'exécution ON/OFF basée sur l'état ON/OFF inverse du bit d'opérande spécifié. Symbole du schéma contact Barre de bus Point de départ du bloc Variations Variations Relance la logique et crée ON à chaque cycle où le bit d'opérande est OFF Relance la logique et crée ON une fois pour la différentiation sur front montant (voir remarque 1.) Relance la logique et crée ON une fois pour la différentiation sur front descendant (voir remarque 1.) Spécification de rafraîchissement immédiat (voir remarque 2.) Variations Rafraîchit le bit d'entrée, relance la logique et crée ON combinées une fois pour la différentiation sur front montant (voir remarque 3.) Rafraîchit le bit d'entrée, relance la logique et crée ON une fois pour la différentiation sur front descendant (voir remarque 3.) Remarque LD NOT @LD NOT %LD NOT !LD NOT !@LD NOT !%LD NOT 1. Les variations suivantes sont prises en charge par les UC CS1-H, CJ1-H, CJ1M et CS1D uniquement : @LD NOT, %LD NOT, !@LD NOT et !%LD NOT. 2. Le rafraîchissement immédiat n'est pas pris en charge par les UC CS1D pour les systèmes d'UC en duplex. 3. Les variations combinées sont prises en charge par les UC CS1D pour systèmes d'UC unique et les UC CS1-H, CJ1-H et CJ1M uniquement. 155 Chapitre 3-3 Instructions d'entrée de séquences Zones de programmes applicables Spécifications de l’opérande Description Zones de programmes bloc OK Zones de programmes pas OK Sousprogrammes OK Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone de drapeaux de tâches Drapeaux de condition Impulsions d'horloge Zone TR Zone DM Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index Bit d'opérande LD NOT CIO 000000 à CIO 614315 W00000 à W51115 H00000 à H51115 A00000 à A95915 T0000 à T4095 C0000 à C4095 TK0000 à TK0031 Tâches d'interruption OK ER, CY, N, OF, UF, >, =, <, >=, <>, <=, ON, OFF, AER 0,02 s, 0,1 s, 0,2 s, 1 s, 1 min ------------------,IR0 à ,IR15 –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 L'instruction LD NOT est utilisée pour le premier bit normalement fermé de la barre de bus ou pour le premier bus normalement fermé d'un bloc logique. S'il n'existe pas de spécification de rafraîchissement immédiat, le bit spécifié dans la mémoire E/S est lu et inversé. S'il existe une spécification de rafraîchissement immédiat, l'état de la borne d'entrée de la carte d'entrée standard est lu, inversé et utilisé. L'instruction LD NOT est utilisée dans les cas suivants pour indiquer un départ logique. • Lors de la connexion directe à la barre de bus. • Lorsque des blocs logiques sont connectés par AND LD ou OR LD. (au début d'un bloc logique.) Les instructions AND LOAD et OR LOAD sont utilisées pour connecter en série ou en parallèle des blocs logiques commençant par LD ou LD NOT. Au moins une instruction LOAD ou LOAD NOT est requise pour la condition d'exécution lorsque les instructions liées à la sortie ne peuvent être directement connectées à la barre de bus. S'il n'existe pas d'instruction LOAD ou LOAD NOT, une erreur de programmation se produira lors de la vérification du programme par le périphérique. Lorsque des blocs logiques sont connectés par des instructions AND LOAD ou OR LOAD, le nombre total d'instructions AND LOAD/OR LOAD doit corres- 156 Chapitre 3-3 Instructions d'entrée de séquences pondre au nombre total d'instructions LOAD/LOAD NOT moins 1. Si ce nombre ne correspond pas, une erreur de programmation se produit. Drapeaux Aucun drapeau n'est concerné par cette instruction. Précautions Le rafraîchissement immédiat (!) peut être spécifiée pour LD NOT. Une instruction de rafraîchissement immédiat met à jour l'état du bit d'entrée juste avant que l'instruction ne soit exécutée pour les cartes d'entrée standard (mais non pour les cartes d'entrée standard sur racks esclaves ni pour les cartes d'entrée multipoint C200H Groupe 2). Exemple Instruction LD LD LD AND OR LD AND LD LD NOT AND OR LD OUT 3-3-3 Opérande 000000 000001 000002 000003 ----000004 000005 --000100 OR LD AND LD OR LD AND : AND Objet Effectue un AND logique de l'état du bit d'opérande spécifié et de la condition d'exécution en cours. Symbole du schéma contact Variations Variations Crée ON à chaque cycle où le résultat AND est ON Crée ON une fois pour la différentiation sur front montant Crée ON une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat (voir remarque.) Variations Rafraîchit le bit d'entrée et crée ON une fois pour la combinées différentiation sur front montant (voir remarque.) Rafraîchit le bit d'entrée et crée ON une fois pour la différentiation sur front descendant (voir remarque.) AND @AND %AND !AND !@AND !%AND Remarque Le rafraîchissement immédiat n'est pas pris en charge par les UC CS1D pour les systèmes d'UC en duplex. Zones de programmes applicables Zones de programmes bloc OK Zones de programmes pas OK Sousprogrammes OK Tâches d'interruption OK 157 Chapitre 3-3 Instructions d'entrée de séquences Spécifications de l’opérande Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone de drapeaux de tâches Drapeaux de condition Impulsions d'horloge Zone TR Zone DM Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index Bit d'opérande AND CIO 000000 à CIO 614315 W00000 à W51115 H00000 à H51115 A00000 à A95915 T0000 à T4095 C0000 à C4095 TK0000 à TK0031 ER, CY, N, OF, UF, >, =, <, >=, <>, <=, ON, OFF, AER 0,02 s, 0,1 s, 0,2 s, 1 s, 1 min ------------------,IR0 à ,IR15 –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 Description L'instruction AND est utilisée pour un bit normalement ouvert connecté en série. AND ne peut pas être directement connectée à la barre de bus et ne peut pas être utilisée au début d'un bloc logique. S'il n'existe pas de spécification de rafraîchissement immédiat, le bit spécifié dans la mémoire E/S est lu. S'il existe une spécification de rafraîchissement immédiat, l'état de la borne d'entrée de la carte d'entrée standard est lu. Drapeaux Aucun drapeau n'est concerné par cette instruction. Précautions La différentiation sur front montant (@) ou la différentiation sur front descendant (%) peut être spécifiée pour AND. Si la différentiation sur front montant (@) est spécifiée, la condition d'exécution est mise sur ON pendant un cycle uniquement après que l'état du bit d'opérande passe de OFF à ON. Si la différentiation sur front descendant (%) est spécifiée, la condition d'exécution est mise sur ON pendant un cycle uniquement après que l'état du bit d'opérande passe de ON à OFF. Le rafraîchissement immédiat (!) peut être spécifié pour AND. Une instruction de rafraîchissement immédiat met à jour l'état du bit d'entrée juste avant que l'instruction ne soit exécutée pour les cartes d'entrée standard (mais non pour les cartes d'entrée standard sur racks esclaves ni pour les cartes d'entrée multipoint C200H Groupe 2). Dans le cas de AND, il est possible de combiner le rafraîchissement immédiat et la différentiation sur front montant ou sur front descendant (!@ ou !%). Si l'une de ces spécifications existe, l'entrée est mise à jour à partir de la carte d'entrée standard juste avant l'exécution de l'instruction et la condition d'exécution est mise sur ON pendant un cycle uniquement après que l'état passe de OFF à ON ou de ON à OFF. 158 Chapitre 3-3 Instructions d'entrée de séquences Exemple Instruction LD AND LD AND LD AND NOT OR LD AND LD OUT 3-3-4 Opérande 000000 000001 000002 000003 000004 000005 ----000006 AND NOT : AND NOT Objet Inverse l'état du bit d'opérande spécifié et effectue un AND logique avec la condition d'exécution en cours. Symbole du schéma contact Variations Variations Crée ON à chaque cycle où le résultat AND NOT est ON Crée ON une fois pour la différentiation sur front montant (voir remarque 1.) Crée ON une fois pour la différentiation sur front descendant (voir remarque 1.) Spécification de rafraîchissement immédiat (voir remarque 2.) Variations Rafraîchit le bit d'entrée et crée ON une fois pour la combinées différentiation sur front montant (voir remarque 3.) Rafraîchit le bit d'entrée et crée ON une fois pour la différentiation sur front descendant (voir remarque 3.) Remarque AND NOT @AND NOT %AND NOT !AND NOT !@AND NOT !%AND NOT 1. Les variations suivantes sont prises en charge par les UC CS1-H, CJ1-H, CJ1M et CS1D uniquement : @AND NOT, %AND NOT, !@AND NOT et !%AND NOT. 2. La rafraîchissement immédiat n'est pas pris en charge par les UC CS1D pour les systèmes d'UC en duplex. 3. Les variations combinées sont prises en charge par les UC CS1D pour systèmes d'UC unique et les UC CS1-H, CJ1-H et CJ1M uniquement. Zones de programmes applicables Spécifications de l’opérande Zones de programmes bloc OK Zones de programmes pas OK Sousprogrammes OK Zone Zone CIO Zone Travail Zone Bit de maintien Bit d'opérande AND NOT CIO 000000 à CIO 614315 W00000 à W51115 H00000 à H51115 Tâches d'interruption OK 159 Chapitre 3-3 Instructions d'entrée de séquences Zone Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone de drapeaux de tâches Drapeaux de condition Impulsions d'horloge Zone TR Zone DM Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index Bit d'opérande AND NOT A00000 à A95915 T0000 à T4095 C0000 à C4095 TK0000 à TK0031 ER, CY, N, OF, UF, >, =, <, >=, <>, <=, ON, OFF, AER 0,02 s, 0,1 s, 0,2 s, 1 s, 1 min ------------------,IR0 à ,IR15 –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 Description L'instruction AND NOT est utilisée pour un bit normalement fermé connecté en série. AND NOT ne peut être directement connectée à la barre de bus et ne peut être utilisée au début d'un bloc logique. S'il n'existe pas de spécification de rafraîchissement immédiat, le bit spécifié dans la mémoire E/S est lu. S'il existe une spécification de rafraîchissement immédiat, l'état de la borne d'entrée de la carte d'entrée standard est lu. Drapeaux Aucun drapeau n'est concerné par cette instruction. Précautions Le rafraîchissement immédiat (!) peut être spécifié pour AND NOT. Une instruction de rafraîchissement immédiat met à jour l'état du bit d'entrée juste avant que l'instruction ne soit exécutée pour les cartes d'entrée standard (mais non pour les cartes d'entrée standard sur racks esclaves ni pour les cartes d'entrée multipoint C200H Groupe 2). Exemple Instruction LD AND LD AND LD AND NOT 160 Opérande 000000 000001 000002 000003 000004 000005 Chapitre 3-3 Instructions d'entrée de séquences Instruction OR LD AND LD OUT 3-3-5 Opérande ----000006 OR : OR Objet Effectue un OR logique de l'état ON/OFF du bit d'opérande spécifié et de la condition d'exécution en cours. Symbole du schéma contact Barre de bus Variations Variations Crée ON à chaque cycle où le résultat OR est ON Crée ON une fois pour la différentiation sur front montant Crée ON une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat (voir remarque.) Variations Rafraîchit le bit d'entrée et crée ON une fois pour combinées la différentiation sur front montant (voir remarque.) Rafraîchit le bit d'entrée et crée ON une fois pour la différentiation sur front descendant (voir remarque.) OR @OR %OR !OR !@OR !%OR Remarque La rafraîchissement immédiat n'est pas pris en charge par les UC CS1D pour les systèmes d'UC en duplex. Zones de programmes applicables Spécifications de l’opérande Zones de programmes de bloc OK Zones de programmes de pas OK Sousprogrammes OK Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone de drapeaux de tâches Drapeaux de condition Impulsions d'horloge Zone DM Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Bit d'opérande OR CIO 000000 à CIO 614315 W00000 à W51115 H00000 à H51115 A00000 à A95915 T0000 à T4095 C0000 à C4095 TK0000 à TK0031 Tâches d'interruption OK ER, CY, N, OF, UF, >, =, <, >=, <>, <=, ON, OFF, AER 0,02 s, 0,1 s, 0,2 s, 1 s, 1 min ------------- 161 Chapitre 3-3 Instructions d'entrée de séquences Zone Registres de données Registres d'index Adressage indirect à l’aide de registres d’index Bit d'opérande OR ----,IR0 à ,IR15 –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 Description L'instruction OR est utilisée pour un bit normalement ouvert connecté en parallèle. Un bit normalement ouvert est configuré pour former un OR logique avec un bloc logique commençant par une instruction LOAD ou LOAD NOT (connectée à la barre de bus au début du bloc logique). S'il n'existe pas de spécification de rafraîchissement immédiat, le bit spécifié dans la mémoire E/S est lu. S'il existe une spécification de rafraîchissement immédiat, l'état de la borne d'entrée de la carte d'entrée standard est lu. Drapeaux Aucun drapeau n'est concerné par cette instruction. Précautions La différentiation sur front montant (@) ou la différentiation sur front descendant (%) peut être spécifiée pour OR. Si la différentiation sur front montant (@) est spécifiée, la condition d'exécution passe ON pendant un cycle uniquement après que l'état du bit d'opérande passe de OFF à ON. Si la différentiation sur front descendant (%) est spécifiée, la condition d'exécution passe ON pendant un cycle uniquement après que l'état du bit d'opérande passe de ON à OFF. Le rafraîchissement immédiat (!) peut être spécifié pour OR. Une instruction de rafraîchissement immédiat met à jour l'état du bit d'entrée juste avant que l'instruction ne soit exécutée pour les cartes d'entrée standard (mais non pour les cartes d'entrée standard sur racks esclaves ni pour les cartes d'entrée multipoint C200H Groupe 2). Dans le cas de OR, il est possible de combiner le rafraîchissement immédiat et la différentiation sur front montant ou sur front descendant (!@ ou !%). Si l'une de ces spécifications existe, l'entrée est mise à jour à partir de la carte d'entrée standard juste avant l'exécution de l'instruction et la condition d'exécution passe ON pendant un cycle uniquement après que l'état du bit d'opérande passe de OFF à ON ou de ON à OFF. Exemple Instruction LD AND AND OR AND LD AND OR NOT AND LD OUT 162 Opérande 000000 000001 000002 000003 000004 000005 000006 000007 --000008 Chapitre 3-3 Instructions d'entrée de séquences 3-3-6 OR NOT: OR NOT Objet Inverse l'état du bit spécifié et effectue un OR logique avec la condition d'exécution en cours. Symbole du schéma contact Barre de bus Variations Variations Crée ON à chaque cycle où le résultat OR NOT est ON Crée ON une fois pour la différentiation sur front montant (voir remarque 1.) Crée ON une fois pour la différentiation sur front descendant (voir remarque 1.) Spécification de rafraîchissement immédiat (voir remarque 2.) Variations Rafraîchit le bit d'entrée et crée ON une fois pour la combinées différentiation sur front montant (voir remarque 3.) Rafraîchit le bit d'entrée et crée ON une fois pour la différentiation sur front descendant (voir remarque 3.) Remarque OR NOT @OR NOT %OR NOT !OR NOT !@OR NOT !%OR NOT 1. Les variations suivantes sont prises en charge par les UC CS1-H, CJ1-H, CJ1M et CS1D uniquement : @OR NOT, %OR NOT, !@OR NOT et !%OR NOT. 2. Le rafraîchissement immédiat n'est pas pris en charge par les UC CS1D pour les systèmes d'UC en duplex. 3. Les variations combinées sont prises en charge par les UC CS1D pour systèmes d'UC unique et les UC CS1-H, CJ1-H et CJ1M uniquement. Zones de programmes applicables Spécifications de l’opérande Zones de programmes bloc OK Zones de programmes pas OK SousTâches programmes d'interruption OK OK Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone de drapeaux de tâches Drapeaux de condition Impulsions d'horloge Zone TR Zone DM Zone EM avec banque Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données Bit d'opérande OR NOT CIO 000000 à CIO 614315 W00000 à W51115 H00000 à H51115 A00000 à A95915 T0000 à T4095 C0000 à C4095 TK0000 à TK0031 ER, CY, N, OF, UF, >, =, <, >=, <>, <=, A1, A0 0,02 s, 0,1 s, 0,2 s, 1 s, 1 min --------------- 163 Chapitre 3-3 Instructions d'entrée de séquences Zone Registres d'index Adressage indirect à l’aide de registres d’index Bit d'opérande OR NOT --,IR0 à ,IR15 –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 Description L'instruction OR NOT est utilisée pour un bit normalement fermé connecté en parallèle. Un bit normalement fermé est configuré pour former un OR logique avec un bloc logique commençant par une instruction LOAD ou LOAD NOT (connectée à la barre de bus au début du bloc logique). S'il n'existe pas de spécification de rafraîchissement immédiat, le bit spécifié dans la mémoire E/S est lu. S'il existe une spécification de rafraîchissement immédiat, l'état de la borne d'entrée de la carte d'entrée standard est lu. Drapeaux Aucun drapeau n'est concerné par cette instruction. Précautions Le rafraîchissement immédiat (!) peut être spécifié pour OR NOT. Une instruction de rafraîchissement immédiat met à jour l'état du bit d'entrée juste avant que l'instruction ne soit exécutée pour les cartes d'entrée standard (mais non pour les cartes d'entrée standard sur racks esclaves ni pour les cartes d'entrée multipoint C200H Groupe 2). Exemple Instruction LD AND AND OR AND LD AND OR NOT AND LD OUT 3-3-7 Opérande 000000 000001 000002 000003 000004 000005 000006 000007 --000008 AND LOAD : AND LD Objet Symbole du schéma contact Effectue un AND logique entre les blocs logiques. Bloc logique Bloc logique Variations Variations Crée ON à chaque cycle où le résultat AND est ON Spécification de rafraîchissement immédiat 164 AND LD Non prise en charge. Chapitre 3-3 Instructions d'entrée de séquences Zones de programmes applicables Description Zones de programmes de bloc OK Zones de programmes de pas OK SousTâches programmes d'interruption OK OK L'instruction AND LD connecte en série le bloc logique juste avant cette instruction avec un autre bloc logique. LD à Bloc logique A LD à AND LD Bloc logique B Connexion série entre le bloc logique A et le bloc logique B. Le bloc logique comprend toutes les instructions d'une instruction LOAD ou LOAD NOT jusque la prochaine instruction LOAD ou LOAD NOT du même segment. Dans le schéma ci-dessous, les deux blocs logiques sont indiqués par des lignes en pointillé. Si l'on examine cet exemple on constate que la condition d'exécution ON sera réalisée si l'une des conditions d'exécution dans le bloc logique de gauche est ON (c.-à-d. si CIO 000000 ou CIO 000001 est ON) et si l'une des conditions d'exécution dans le bloc logique de droite est ON (c.-à-d. si CIO 000002 est sur ON ou CIO 000003 est OFF). Drapeaux Aucun drapeau n'est concerné par cette instruction. Précautions Trois blocs logiques ou plus peuvent être connectés en série au moyen de cette instruction pour d'abord connecter deux blocs logiques et ensuite connecter dans l'ordre les blocs suivant et subséquents. Il est également possible de continuer à placer cette instruction après trois blocs logiques ou plus et de les connecter en série. Lorsqu'un bloc logique est connecté par des instructions AND LOAD ou OR LOAD, le nombre total d'instructions AND LOAD/OR LOAD doit correspondre au nombre total d'instructions LOAD/LOAD NOT moins 1. Si ce nombre ne correspond pas, une erreur de programmation se produit. Exemple Exemple de codage (1) Instruction LD OR NOT LD NOT OR Opérande 000000 000001 000002 000003 165 Chapitre 3-3 Instructions d'entrée de séquences Instruction AND LD LD OR AND LD . . OUT Opérande --000004 000005 --. . 000500 Exemple de codage (2) Instruction LD OR NOT LD NOT OR LD OR . . AND LD AND LD . . OUT Opérande 000000 000001 000002 000003 000004 000005 . . ----. . 000500 L'instruction AND LOAD peut être utilisée de manière répétitive. Dans la méthode de programmation ci-dessus (2), le nombre d'instructions AND LOAD devient cependant inférieur d'une unité au nombre d'instructions LOAD et LOAD NOT qui les précèdent. Dans la méthode (2), assurez-vous que le nombre total d'instructions LOAD et LOAD NOT avant AND LOAD n'est pas supérieur à huit. Si le nombre est supérieur ou égal à neuf, utilisez la méthode de programmation (1). Si le nombre d'instructions dans le cas de la méthode (2) est supérieur ou égal à neuf, une erreur de programmation se produira lors de la vérification du programme par le périphérique. Codage Adresse 000000 000001 000002 000003 000004 000005 Instruction LD OR LD OR NOT AND LD OUT Opérande 000000 000001 000002 000003 --000500 Deuxième LD : Utilisée pour le premier bit du bloc suivant connecté en série au bloc précédent. 3-3-8 OR LOAD : OR LD Objet Symbole du schéma contact Effectue un OR logique entre les blocs logiques. Bloc logique Bloc logique 166 Chapitre 3-3 Instructions d'entrée de séquences Variations Variations Crée ON à chaque cycle où le résultat AND est ON OR LD Spécification de rafraîchissement immédiat Non prise en charge. Zones de programmes applicables Description Zones de programmes bloc OK Zones de programmes pas OK SousTâches programmes d'interruption OK OK L'instruction AND LD connecte en parallèle le bloc logique juste avant cette instruction avec un autre bloc logique. LD à Bloc logique A LD à OR LD Bloc logique B Connexion parallèle entre le bloc logique A et le bloc logique B. Le bloc logique comprend toutes les instructions d'une instruction LOAD ou LOAD NOT jusque la prochaine instruction LOAD ou LOAD NOT du même segment. Le schéma ci-dessous nécessite une instruction OR LOAD entre le bloc logique supérieur et le bloc logique inférieur. Une condition d'exécution ON est produite si CIO 000000 est ON et CIO 000001 est OFF ou si CIO 000002 et CIO 000003 sont tous les deux ON. Le fonctionnement et le code mnémonique de l'instruction OR LOAD sont exactement identiques à ceux de l'instruction AND LOAD hormis qu’il est effectué un OR entre la condition d'exécution en cours et la dernière condition d'exécution non utilisée. Drapeaux Aucun drapeau n'est concerné par cette instruction. Précautions Trois blocs logiques ou plus peuvent être connectés en parallèle au moyen de cette instruction pour d'abord connecter deux blocs logiques et ensuite connecter dans l'ordre les blocs suivant et subséquents. Il est également possible de continuer à placer cette instruction après trois blocs logiques ou plus et de les connecter en parallèle. Lorsqu'un bloc logique est connecté par des instructions AND LOAD ou OR LOAD, le nombre total d'instructions AND LOAD/OR LOAD doit correspondre au nombre total d'instructions LOAD/LOAD NOT moins 1. Si ce nombre ne correspond pas, une erreur de programmation se produit. Exemple 167 Chapitre 3-3 Instructions d'entrée de séquences Exemple de codage (1) Instruction LD AND NOT LD NOT AND NOT OR LD LD AND OR LD . . OUT Opérande 000000 000001 000002 000003 --000004 000005 --. . 000501 Exemple de codage (2) Instruction LD AND NOT LD NOT AND NOT LD AND . . OR LD OR LD . . OUT Opérande 000000 000001 000002 000003 000004 000005 . . ----. . 000501 L'instruction OR LOAD peut être utilisée de manière répétitive. Dans la méthode de programmation ci-dessus (2), le nombre d'instructions OR LOAD devient cependant inférieur d'une unité au nombre d'instructions LOAD et LOAD NOT qui les précèdent. Dans la méthode (2), assurez-vous que le nombre total d'instructions LOAD et LOAD NOT avant OR LOAD n'est pas supérieur à huit. Si le nombre est supérieur ou égal à neuf, utilisez la méthode de programmation (1). Si le nombre d'instructions dans le cas de la méthode (2) est supérieur ou égal à neuf, une erreur de programmation se produira lors de la vérification du programme par le périphérique. Codage Adresse 000100 000101 000102 000103 000104 000105 Instruction LD AND NOT LD AND OR LD OUT Opérande 000000 000001 000002 000003 --000501 Deuxième LD : Utilisée pour le premier bit du bloc suivant connecté en série au bloc précédent. 168 Chapitre 3-3 Instructions d'entrée de séquences 3-3-9 Instructions différenciées et de rafraîchissement immédiat Les instructions LOAD, AND et OR présentent, outre leurs formes ordinaires, des variations différenciées et de rafraîchissement immédiat ; deux combinaisons sont également disponibles. Les instructions LOAD NOT, AND NOT, OR NOT, OUT et OUT NOT présentent, outre leurs formes ordinaires, des variations de rafraîchissement immédiat. La temporisation E/S des données traitées par les instructions diffère pour les instructions ordinaires ou différenciées, pour les instructions à rafraîchissement immédiat et pour les instructions différenciées à rafraîchissement immédiat. Les instructions ordinaires et différenciées sont exécutées en utilisant l'entrée de données par le rafraîchissement E/S précédent, et les résultats sont sortis lors du prochain traitement E/S. Ici, le “rafraîchissement E/S” désigne les données échangées entre la mémoire interne de l'UC et la carte E/S. Outre le rafraîchissement E/S susmentionné, une instruction de rafraîchissement immédiat échange des données avec la carte E/S pour les mots auxquels l'instruction accède. Une instruction de rafraîchissement immédiat met à jour huit bits simultanément (huit bits les plus à gauche ou les plus à droites) en plus du bit spécifié. Les instructions de rafraîchissement immédiat ne peuvent être utilisées pour les cartes sur racks esclaves. Variation de l'instruction Ordinaire Mnémonique LD, AND, OR, LD NOT, AND NOT, OR NOT OUT, OUT NOT Différentiation sur front montant @LD, @AND, @OR Différentiation sur front descendant %LD, %AND, %OR Rafraîchissement immédiat !LD, !AND, !OR, !LD NOT, !AND NOT, !OR NOT !OUT, !OUT NOT Différentiation sur front montant / rafraîchissement immédiat !@LD, !@AND, !@OR Différentiation sur front descendant / rafraîchissement immédiat !%LD, !%AND, !%OR Fonction Rafraîchissement E/S L'état ON/OFF du bit spécifié est enregistré par l'UC lors du rafraîchissement cyclique et se reflète à l'exécution d'instruction suivante. Après l'exécution de l'instruction, l'état ON/OFF du bit spécifié est sorti lors du rafraîchissement cyclique suivant. L'instruction est exécutée une fois lorsque le bit spécifié passe de OFF à ON et l'état ON est maintenu pendant un cycle. L'instruction est exécutée une fois lorsque le bit spécifié passe de ON à OFF et l'état ON est maintenu pendant un cycle. Les données d'entrée pour le bit spécifié sont enregistrées par l'UC et l'instruction est exécutée. Une fois l'instruction exécutée, les données pour le bit spécifié sont sorties. Les données d'entrée pour le bit spécifié sont rafraîchies par l'UC et l'instruction est exécutée une fois lorsque le bit passe de OFF à ON et l'état ON est maintenu pendant un cycle. Les données d'entrée pour le bit spécifié sont rafraîchies par l'UC et l'instruction est exécutée une fois lorsque le bit passe de ON à OFF et l'état ON est maintenu pendant un cycle. Rafraîchissement cyclique Avant l'exécution de l'instruction Après l'exécution de l'instruction Avant l'exécution de l'instruction 169 Chapitre 3-3 Instructions d'entrée de séquences 3-3-10 Séquence de fonctionnement des instructions E/S Le schéma ci-dessous indique les différences de séquence de fonctionnement des instructions pour un programme configuré à partir de LD et OUT. Entrée reçue Entrée reçue Entrée reçue ↑ ↓ ! Entrée reçue !↑ Entrée reçue Entrée reçue Entrée reçue Entrée reçue !↓ ! ! Entrée reçue ↑ ! Entrée reçue ↓ ! ! ! !↑ ! !↓ ! Entrée reçue Entrée reçue Traitement UC Exécution de l'instruction Rafraîchissement E/S 3-3-11 Bits TR Les bits TR sont utilisés pour retenir temporairement l'état ON/OFF des conditions d'exécution d'un programme lors de la programmation en code mnémonique. Ils ne sont pas utilisés en cas de programmation directe en schéma contact car le traitement est automatiquement exécuté par le périphérique. Le schéma ci-dessous illustre une simple application recourant à deux bits TR. 170 Chapitre 3-3 Instructions d'entrée de séquences Adresse Instruction Opérandes 000000 000001 000002 000003 000004 000005 000006 000007 000008 000009 000010 000011 000012 000013 000014 Utilisation de TR0 à TR15 LD OUT AND OUT AND OUT LD AND OUT LD AND OUT LD AND NOT OUT 000000 TR0 000001 TR1 000002 000500 TR1 000003 000501 TR0 000004 000502 TR0 000005 000503 TR0 à TR15 sont uniquement utilisés avec les instructions LOAD et OUTPUT. Il n'existe aucune restriction quant à l'ordre dans lequel les adresses de bit sont utilisées. Il est parfois possible de simplifier un programme en le réécrivant de sorte que les bits TR ne soient pas nécessaires. Le schéma ci-dessous illustre un cas dans lequel un bit TR est inutile et un cas dans lequel il est nécessaire. (1) (2) Dans le bloc d'instruction (1), l'état ON/OFF au point A est le même que pour la sortie CIO 00200, de sorte que AND 000001 et OUT 000201 peuvent être codés sans nécessiter de bit TR. Dans le bloc d'instruction (2), l'état du point de branchement et celui de la sortie CIO 000202 ne sont pas nécessairement identiques de sorte qu'un bit TR doit être utilisé. Dans ce cas, le nombre de pas dans le programme peut être réduit au moyen du bloc d'instruction (1) au lieu du bloc d'instruction (2). Considérations relatives à TR0 à TR15 Les bits TR ne sont utilisés que pour maintenir (OUT TR0 à TR15) et restaurer (LD TR0 à TR15) l'état ON/OFF des points de branchement dans les programmes comprenant de nombreuses branches de sortie. Ils diffèrent donc des bits généraux et ne peuvent être utilisés avec les instructions AND ou OR ni avec les instructions contenant NOT. 171 Chapitre 3-3 Instructions d'entrée de séquences Duplication de sortie TR0 à TR15 Une adresse de bit TR ne peut pas être répétée dans le même bloc d'un programme comportant de nombreuses branches de sortie, comme indiqué dans le schéma ci-dessous. Elle peut toutefois être réutilisée dans un bloc différent. à 3-3-12 NOT : NOT(520) Objet Symbole du schéma contact Variations Inverse la condition d'exécution. NOT(520) Variations Inverse la condition d'exécution à chaque cycle Spécification de rafraîchissement immédiat Zones de programmes applicables Zones de programmes bloc OK Zones de programmes pas OK NOT(520) Non prise en charge SousTâches programmes d'interruption OK OK Description L'instruction NOT(520) est placée entre une condition d'exécution et une autre instruction pour inverser la condition d'exécution. Drapeaux Aucun drapeau n'est concerné par l'instruction NOT(520). Précautions NOT(520) doit être suivie d'une instruction intermédiaire ; en d'autres termes, elle ne peut pas être utilisée comme instruction finale. Ne pas oublier de programmer une instruction après NOT(520). Exemple NOT(520) inverse la condition d'exécution dans l'exemple suivant. Le tableau ci-dessous indique le fonctionnement de cette section de programme. 172 Chapitre 3-3 Instructions d'entrée de séquences Etat du bit d'entrée CIO 000000 1 1 1 0 1 0 0 0 CIO 000001 1 1 0 1 0 1 0 0 Etat du bit de sortie CIO 000003 CIO 000002 1 0 1 1 0 0 1 0 0 0 1 0 1 1 1 1 3-3-13 CONDITION ON/OFF : UP(521) et DOWN(522) Objet Symboles du schéma contact UP(521) met sur ON la condition d'exécution pour l'instruction suivante pendant un cycle lorsque la condition d'exécution passe de OFF à ON. DOWN(522) met sur ON la condition d'exécution pour l'instruction suivante pendant un cycle lorsque la condition d'exécution passe de ON à OFF. UP(521) DOWN(522) Variations Zones de programmes applicables Description Variations Crée ON une fois pour la différentiation sur front montant Spécification de rafraîchissement immédiat UP(521) Variations Crée ON une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat UP(522) Zones de programmes bloc OK Zones de programmes pas OK Non prise en charge Non prise en charge SousTâches programmes d'interruption OK OK L'instruction UP(521) est placée entre une condition d'exécution et une autre instruction pour changer la condition d'exécution en une condition différenciée sur front montant. UP(521) entraîne l'exécution de l'instruction connectée une seule fois lorsque la condition d'exécution passe de OFF à ON. L'instruction DOWN(522) est placée entre une condition d'exécution et une autre instruction pour changer la condition d'exécution en une condition différenciée sur front descendant. DOWN(522) entraîne l'exécution de l'instruction connectée une seule fois lorsque la condition d'exécution passe de ON à OFF. Les instructions DIFU(013) et DIFD(014) peuvent également être utilisées dans le même but, mais elles nécessitent des bits de travail. UP(521) et DOWN(522) simplifient la programmation en réduisant le nombre de bits de travail et d'adresses de programme nécessaire. Drapeaux Aucun drapeau n'est concerné par UP(521) et DOWN(522). Précautions UP(521) et DOWN(522) sont des instructions intermédiaires ; en d'autres termes, elles ne peuvent être utilisées comme instructions finales. Ne pas oublier de programmer une instruction après UP(521) ou DOWN(522). 173 Chapitre 3-3 Instructions d'entrée de séquences Le fonctionnement de UP(521) et DOWN(522) dépend de la condition d'exécution de l'instruction ainsi que de la condition d'exécution de la section de programme lorsqu'elle est programmée dans une section de programme verrouillée, une section de programme sautée ou un sous-programme. Consultez la section 3-5-4 INTERLOCK et INTERLOCK CLEAR : IL(002) et ILC(003), 3-5-6 JUMP et JUMP END : JMP(004) et JME(005) et 3-20 Instructions de contrôle des interruptions pour plus d'informations. Exemples Lorsque CIO 000000 passe de OFF à ON dans l'exemple suivant, CIO 000001 passe ON pendant un cycle seulement. Temps de cycle Temps de cycle 3-3-14 BIT TEST : TST(350) et TSTN(351) Objet LD TST(350), AND TST(350) et OR TST(350) sont utilisées dans le programme comme LD, AND et OR ; la condition d'exécution est ON lorsque le bit spécifié dans le mot spécifié est ON, et OFF lorsque le bit est OFF. LD TSTN(351), AND TSTN(351) et OR TSTN(351) sont utilisées dans le programme comme LD NOT, AND NOT et OR NOT ; la condition d'exécution est OFF lorsque le bit spécifié dans le mot spécifié est ON, et ON lorsque le bit est OFF. Symboles du schéma contact TST(350) S S: Mot source N N: Numéro de bit TSTN(351) S S: Mot source N N: Numéro de bit Variations Variations Exécution à chaque cycle Spécification de rafraîchissement immédiat 174 TST(350) Non prise en charge Chapitre 3-3 Instructions d'entrée de séquences Variations Exécution à chaque cycle Spécification de rafraîchissement immédiat Zones de programmes applicables Opérandes Zones de programmes bloc OK Zones de programmes pas OK TSTN(351) Non prise en charge SousTâches programmes d'interruption OK OK N: Numéro de bit Le numéro de bit doit être compris entre 0000 et 000F hexadécimal ou entre &0000 et &0015 décimal. Seul le bit à l'extrême droite (0 à F hexadécimal) du contenu du mot est valide lorsqu'une adresse de mot est spécifiée. Spécifications de l’opérande Description Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque S N CIO 0000 à CIO 6143 W000 à W511 H000 à H511 A000 à A959 T0000 à T4095 C0000 à C4095 D00000 à D32767 E00000 à E32767 En_00000 à En_32767 (n = 0 à C) Adresses DM/EM indirec- @ D00000 à @ D32767 tes en binaire @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) Adresses DM/EM indirec- *D00000 à *D32767 tes en BCD *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) Constantes --#0000 à #000F (binaire) ou &0 à &15 Registres de données DR0 à DR15 Registres d'index --Adressage indirect à l’aide ,IR0 à ,IR15 de registres d’index –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 Les instructions LD TST(350), AND TST(350) et OR TST(350) sont utilisées dans le programme comme LD, AND et OR ; la condition d'exécution est ON lorsque le bit spécifié dans le mot spécifié est ON et OFF lorsque le bit est OFF. A la différence de LD, AND et OR, les bits dans les zones DM et EM peuvent être utilisés comme opérandes dans TST(350). LD TSTN(351), AND TSTN(351) et OR TSTN(351) sont utilisées dans le programme comme LD NOT, AND NOT et OR NOT ; la condition d'exécution est OFF lorsque le bit spécifié dans le mot spécifié est ON et ON lorsque le bit est OFF. A la différence de LD NOT, AND NOT et OR NOT, les bits dans les zones DM et EM peuvent être utilisés comme opérandes dans TSTN(351). 175 Chapitre 3-3 Instructions d'entrée de séquences Drapeaux Nom Drapeau d'erreur Drapeau d'égalité Drapeau négatif Etiquette Fonctionnement ER OFF ou inchangé (voir remarque.) = OFF ou inchangé (voir remarque.) N OFF ou inchangé (voir remarque.) Remarque Dans les UC CS1 et CJ1, ils sont sur OFF. Dans les UC CS1-H, CJ1-H, CJ1M et CS1D, ces drapeaux restent inchangés. Précautions TST(350) et TSTN(351) sont des instructions intermédiaires ; en d'autres termes, elles ne peuvent être utilisées comme instructions finales. Ne pas oublier de programmer une instruction après TST(350) ou TSTN(351). Exemples LD TST(350) et LD TSTN(351) Dans l'exemple suivant, CIO 000001 passe ON si le bit 3 de D00010 est ON. &3 Dans l'exemple suivant, CIO 000001 passe ON si le bit 3 de D00010 est OFF. &3 AND TST(350) et AND TSTN(351) Dans l'exemple suivant, CIO 000001 passe ON si CIO 000000 et le bit 3 de D00010 sont ON. &3 Dans l'exemple suivant, CIO 000001 passe ON si CIO 000000 et le bit 5 de D00010 sont OFF. &5 OR TST(350) et OR TSTN(351) Dans l'exemple suivant, CIO 000001 passe ON si CIO 000000 ou le bit 3 de D00010 sont ON. &3 176 Chapitre 3-4 Instructions de sortie de séquences Dans l'exemple suivant, CIO 000001 passe ON si CIO 000000 est ON ou si le bit 3 de D00010 est OFF. &3 3-4 Instructions de sortie de séquences 3-4-1 OUTPUT : OUT Objet Sort le résultat (condition d'exécution) du traitement logique vers le bit spécifié. Symbole du schéma contact Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat (voir remarque.) OUT Non prise en charge. Non prise en charge. !OUT Remarque Le rafraîchissement immédiat n'est pas pris en charge par les UC CS1D. Zones de programmes applicables Spécifications de l’opérande Zones de programmes de bloc Non autorisé Zones de programmes de pas OK SousTâches programmes d'interruption OK OK Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone TR Zone DM Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données Bit d'opérande OUT CIO 000000 à CIO 614315 W00000 à W51115 H00000 à H51115 A44800 à A95915 ----TR0 à TR15 --------------- 177 Chapitre 3-4 Instructions de sortie de séquences Zone Registres d'index Adressage indirect à l’aide de registres d’index Bit d'opérande OUT --,IR0 à ,IR15 –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à ,IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 Description S'il n'existe pas de spécification de rafraîchissement immédiat, l'état de la condition d'exécution est écrit dans le bit spécifié dans la mémoire E/S. S'il existe une spécification de rafraîchissement immédiat, l'état de la condition d'exécution est écrit, outre dans le bit de sortie dans la mémoire E/S, également sur la borne de sortie de la carte de sortie standard. Drapeaux Aucun drapeau n'est concerné par cette instruction. Précautions Le rafraîchissement immédiat (!) peut être spécifiée pou OUT et OUT NOT. Une instruction de rafraîchissement immédiat met à jour l'état de la borne de sortie juste après que l'instruction soit exécutée pour les cartes de sortie standard (mais non pour les cartes de sortie standard sur racks esclaves ni pour les cartes d'entrée multipoint C200H Groupe 2), et écrit dans le même temps l'état de la condition d'exécution dans le bit de sortie spécifié dans la mémoire E/S. Exemple Instruction LD OUT OUT NOT 3-4-2 Opérande 000000 000001 000002 OUTPUT NOT : OUT NOT Objet Inverse le résultat (condition d'exécution) du traitement logique et le sort vers le bit spécifié. Symbole du schéma contact Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat (voir remarque.) OUT NOT Non prise en charge. Non prise en charge. !OUT NOT Remarque Le rafraîchissement immédiat n'est pas pris en charge par les UC CS1D. Zones de programmes applicables 178 Zones de programmes bloc Non autorisé Zones de programmes pas OK SousTâches programmes d'interruption OK OK Chapitre 3-4 Instructions de sortie de séquences Spécifications de l’opérande Zone Bit d'opérande OUT Zone CIO CIO 000000 à CIO 614315 Zone Travail W00000 à W51115 Zone Bit de maintien H00000 à H51115 Zone Bit auxiliaire A44800 à A95915 Zone Temporisateur --Zone Compteur --Zone TR TR0 à TR15 Zone DM --Zone EM sans banque --Zone EM avec banque --Adresses DM/EM indirec- --tes en binaire Adresses DM/EM indirec- --tes en BCD Constantes --Registres de données --Registres d'index --Adressage indirect à ,IR0 à ,IR15 l’aide de registres d’index –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à ,IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 Description S'il n'existe pas de spécification de rafraîchissement immédiat, l'état de la condition d'exécution est inversé et écrit dans le bit spécifié dans la mémoire E/S. S'il existe une spécification de rafraîchissement immédiat, l'état de la condition d'exécution est inversé et écrit, outre sur le bit de sortie dans la mémoire E/S, également sur la borne de sortie de la carte de sortie standard. Drapeaux Aucun drapeau n'est concerné par cette instruction. Exemple Instruction LD OUT OUT NOT 3-4-3 Opérande 000000 000001 000002 KEEP : KEEP(011) Objet Fonctionne comme un relais à verrouillage. Symbole du schéma contact S (Set) KEEP(011) B B: Bit R (Reset) 179 Chapitre 3-4 Instructions de sortie de séquences Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat (voir remarque.) KEEP(011) Non prise en charge Non prise en charge !KEEP(011) Remarque Le rafraîchissement immédiat n'est pas pris en charge par les UC CS1D. Zones de programmes applicables Spécifications de l’opérande Description Zones de programmes de bloc Non autorisé Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index SousTâches programmes d'interruption OK OK B CIO 000000 à CIO 614315 W00000 à W51115 H00000 à H51115 A44800 à A95915 --------------------,IR0 à ,IR15 –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 Lorsque S passe ON, le bit désigné passe ON et reste ON jusqu'à la réinitialisation, que S reste ON ou passe OFF. Lorsque R passe ON, le bit désigné passe OFF. Le rapport entre les conditions d'exécution et l'état de bit KEEP(011) est illustré ci-dessous. Set Reset 180 Zones de programmes de pas OK Chapitre 3-4 Instructions de sortie de séquences ON Condition d'exécution S OFF ON Condition d'exécution R OFF ON Etat de C OFF Si S et R passent ON simultanément, l'entrée de réinitialisation a la priorité. Set Reset Etat de C L'entrée S ne peut être reçue lorsque R est ON. Set Reset Etat de C KEEP(011) présente une variation de rafraîchissement immédiat (!KEEP(011)). Lorsqu'un bit de sortie externe a été spécifié pour B dans une instruction !KEEP(011), toute modification de B sera mise à jour lorsque !KEEP(011) est exécutée et se reflètera immédiatement dans le bit de sortie. (Les modifications ne se reflètent pas immédiatement si le bit est affecté à une carte E/S haute densité Groupe 2, à une carte E/S spéciale haute densité ou à une carte montée sur rack esclave E/S à distance SYSMAC BUS.) KEEP(011) fonctionne comme un bit d'auto-maintien mais un bit d'auto-maintien programmé avec KEEP(011) nécessite une instruction de moins. Les bits d'auto-maintien programmés avec KEEP(011) maintiennent leur état même dans une section de programme verrouillée, à la différence du bit d'auto-maintien programmé sans KEEP(011). 181 Chapitre 3-4 Instructions de sortie de séquences Le bit de sortie C conserve son état précédent dans un verrouillage. Le bit de sortie C sera passé OFF dans un verrouillage. KEEP(011) peut être utilisée pour créer des bascules bistables comme illustré ci-dessous. Si un bit de maintien est utilisé pour B, l'état du bit sera maintenu même en cas d'interruption de l'alimentation. KEEP(011) peut donc être utilisée pour programmer des bits qui maintiennent leur état après redémarrage de l'API suite à une interruption de l'alimentation. Un exemple pouvant être utilisé pour produire un message de mise en garde suite à l'arrêt du système en cas d'urgence, est illustré ci-dessous. Indique une situation d'urgence Entrée Reset Active l'affichage de l'avertissement L'état des bits de zone E/S peut être maintenu en cas d'interruption de l'alimentation en passant le bit de maintien IOM sur ON et en configurant le maintien du bit de maintien IOM dans les paramètres de l'API. Dans ce cas, les bits de la zone E/S utilisés dans KEEP(011) maintiennent leur état après le redémarrage de l'API suite à une interruption de l'alimentation, à l'instar des bits de maintien. Ne pas oublier de redémarrer l'API après avoir modifié sa configuration sinon les nouveaux paramètres ne seront pas utilisés. 182 Chapitre 3-4 Instructions de sortie de séquences Drapeaux Aucun drapeau n'est concerné par l'instruction KEEP(011). Précautions Ne jamais utiliser un bit d'entrée dans une condition normalement fermée pour la réinitialisation (R) avec KEEP(011) si le périphérique d'entrée utilise une alimentation c.a. Le délai lors de l'arrêt de l'alimentation c.c. de l'API (par rapport à l'alimentation c.a. du périphérique d'entrée) peut entraîner la réinitialisation du bit d'opérande de KEEP(011). Cette situation est illustrée ci-dessous. Carte d'entrée A S KEEP 120000 A JAMAIS R Les opérandes de KEEP(011) sont entrés selon un ordre différent dans les schémas contacts et le code mnémonique. Ordre dans le schéma contact : Entrée Set → KEEP(011) → Entrée Reset Odre dans le code mnémonique : Entrée Set→Entrée Reset→ KEEP(011) Exemple Si CIO 000000 passe à ON dans l'exemple suivant, CIO 00500 passera ON. CIO 00500 reste ON jusqu'à ce que CIO 000001 passe ON. Si CIO 000002 passe ON et CIO 000003 passe OFF dans l'exemple suivant, CIO 00100 passera ON. CIO 00100 reste ON jusqu'à ce que CIO 000004 ou CIO 000005 passent ON. Codage Adresse 000100 000101 000102 000103 000104 000105 000106 000107 Instruction LD LD KEEP(011) LD AND NOT LD OR KEEP(011) Opérande 000000 000001 000500 000002 000003 000004 000005 000100 Remarque KEEP(011) est saisie dans un ordre différent selon qu'il s'agit du schéma contact ou de la forme mnémonique. Sous la forme du schéma contact, saisissez 183 Chapitre 3-4 Instructions de sortie de séquences l'entrée Set, KEEP(011), et ensuite l'entrée Reset. Sous la forme mnémonique, saisissez l'entrée Set, l'entrée Reset et ensuite KEEP(011). 3-4-4 DIFFERENTIATE UP/DOWN : DIFU(013) et DIFD(014) Objet DIFU(013) passe le bit désigné sur ON pour un cycle lorsque la condition d'exécution passe de OFF à ON (front montant). DIFD(014) passe le bit désigné sur ON pour un cycle lorsque la condition d'exécution passe de ON à OFF (front descendant). Symboles du schéma contact DIFU(013) B B: Bit DIFD(014) B B: Bit Variations Variations Exécutée à chaque cycle pour la condition ON Non prise en charge Exécutée une fois pour la différentiation sur DIFU(013) front montant Exécutée une fois pour la différentiation sur Non prise en front descendant charge Spécification de rafraîchissement immédiat (voir remarque.) !DIFU(013) Remarque Le rafraîchissement immédiat n'est pas pris en charge par les UC CS1D. Variations Exécutée à chaque cycle pour la condition ON Non prise en charge Exécutée une fois pour la différentiation sur DIFD(014) front montant Exécutée une fois pour la différentiation sur Non prise en front descendant charge Spécification de rafraîchissement immédiat (voir remarque.) !DIFD(014) Remarque Le rafraîchissement immédiat n'est pas pris en charge par les UC CS1D. Zones de programmes applicables Spécifications de l’opérande 184 Zones de programmes de bloc Non autorisé Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque Zones de programmes de pas OK SousTâches programmes d'interruption OK OK B CIO 000000 à CIO 614315 W00000 à W51115 H00000 à H51115 A44800 à A95915 ----------- Chapitre 3-4 Instructions de sortie de séquences Zone Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index Description B ----------,IR0 à ,IR15 –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –) IR0 à ,15–(– –) IR Lorsque la condition d'exécution passe de OFF à ON, DIFU(013) passe B sur ON. Lorsque DIFU(013) est atteinte dans le cycle suivant, B est passé sur OFF. Condition d'exécution Etat de B 1 cycle Lorsque la condition d'exécution passe de ON à OFF, DIFD(014) passe B sur ON. Lorsque DIFD(014) est atteinte dans le cycle suivant, B est passé sur OFF. Condition d'exécution Etat de B 1 cycle DIFU(013) et DIFD(014) présentent des variations de rafraîchissement immédiat (!DIFU(013) et !DIFD(014)). Lorsqu'un bit de sortie externe a été spécifié pour B dans l'une de ces instructions, toute modification de B sera mise à jour lorsque l'instruction est exécutée et se reflètera immédiatement dans le bit de sortie. (Les modifications ne se reflètent pas immédiatement si le bit est affecté à une carte E/S haute densité Groupe 2, à une carte E/S spéciale haute densité ou à une carte montée sur rack esclave E/S à distance SYSMAC BUS.) UP(521) et DOWN(522) peuvent être utilisées pour exécuter une instruction pendant un seul cycle si la condition d'exécution passe de OFF → ON ou de ON → OFF. Consultez la section3-3-13 CONDITION ON/OFF : UP(521) et DOWN(522) pour plus de détails. Drapeaux Aucun drapeau n'est concerné par les instructions DIFU(013) et DIFD(014). Précautions Le fonctionnement de DIFU(013) ou DIFD(014) dépend de la condition d'exécution de l'instruction proprement dite ainsi que de la condition d'exécution de la section de programme lorsqu'elle est programmée dans une section de programme verrouillée, une section de programme sautée ou un sous-programme. Consultez les sections 3-5-4 INTERLOCK et INTERLOCK CLEAR : IL(002) et ILC(003), 3-5-6 JUMP et JUMP END : JMP(004) et JME(005) et 3-20 Instructions de contrôle des interruptions pour plus d'informations. 185 Chapitre 3-4 Instructions de sortie de séquences Si DIFU(013) est utilisée dans une boucle FOR-NEXT et que la boucle se répète dans un cycle, le bit contrôlé sera toujours sur ON ou toujours sur OFF dans cette boucle. Exemples Fonctionnement de DIFU(013) Lorsque CIO 000000 passe de OFF à ON dans l'exemple suivant, CIO 001000 se met sur ON pendant un cycle. 001000 1 cycle 1 cycle Fonctionnement de DIFD(014) Lorsque CIO 000000 passe de ON à OFF dans l'exemple suivant, CIO 001000 se met sur ON pendant un cycle. 001000 001000 1 cycle 3-4-5 1 cycle SET et RESET : SET et RSET Objet SET passe le bit d'opérande sur ON lorsque la condition d'exécution est ON. RSET passe le bit d'opérande sur OFF lorsque la condition d'exécution est ON. Symboles du schéma contact SET B B: Bit RSET B B: Bit Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat (voir remarque.) Variations Exécution une fois et rafraîchissement de bit combinées immédiat pour la différentiation sur front montant (voir remarque.) Exécution une fois et rafraîchissement de bit immédiat pour la différentiation sur front descendant (voir remarque.) 186 SET @SET %SET !SET !@SET !%SET Chapitre 3-4 Instructions de sortie de séquences Remarque Le rafraîchissement immédiat n’est pas pris en charge par les UC CS1D. Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat (voir remarque.) Variations Rafraîchissement immédiat une fois pour la combinées différentiation sur front montant (voir remarque.) Rafraîchissement immédiat une fois pour la différentiation sur front descendant (voir remarque.) RSET @RSET %RSET !RSET !@RSET !%RSET Remarque Le rafraîchissement immédiat n’est pas pris en charge par les UC CS1D. Zones de programmes applicables Spécifications de l’opérande Description Zones de Zones de programmes de bloc programmes de pas OK OK Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index SousTâches programmes d'interruption OK OK B CIO 000000 à CIO 614315 W00000 à W51115 H00000 à H51115 A44800 à A95915 --------------------,IR0 à ,IR15 –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 SET passe le bit d'opérande sur ON lorsque la condition d'exécution est ON, et n'affecte aucunement l'état du bit d'opérande lorsque la condition d'exécution est OFF. Utilisez RSET pour mettre sur OFF un bit mis sur ON au moyen de SET. Condition d'exécution de SET Etat de B 187 Chapitre 3-4 Instructions de sortie de séquences RSET passe le bit d'opérande sur OFF lorsque la condition d'exécution est ON, et n'affecte aucunement l'état du bit d'opérande lorsque la condition d'exécution est OFF. Utilisez SET pour mettre sur ON un bit mis sur OFF au moyen de RSET. Condition d'exécution de RSET Etat de B SET et RSET présentent des variations de rafraîchissement immédiat (!SET et !RSET). Lorsqu'un bit de sortie externe a été spécifié pour B dans l'une de ces instructions, toute modification de B sera mise à jour lorsque l'instruction est exécutée et se reflètera immédiatement dans le bit de sortie. (Les modifications ne se reflètent pas immédiatement si le bit est affecté à une carte E/S haute densité Groupe 2, à une carte E/S spéciale haute densité ou à une carte montée sur rack esclave E/S à distance SYSMAC BUS.) Les entrées set et reset pour une instruction KEEP(011) doivent être programmées avec l'instruction, mais les instructions SET et RSET peuvent être programmées de façon totalement indépendante. En outre, le même bit peut être utilisé comme opérande dans n'importe quel nombre d'instructions SET ou RSET. Drapeaux Aucun drapeau n'est concerné par les instructions SET et RSET. Précautions SET et RSET ne peuvent pas être utilisées pour initialiser et réinitialiser des temporisateurs et compteurs. Si l'instruction SET ou RSET est programmée entre IL(002) et ILC(003) ou entre JMP(004) et JME(005), l'état du bit spécifié ne sera pas modifié si la section de programme est verrouillée ou sautée. Exemple Différences entre OUT/OUT NOT et SET/RSET Le fonctionnement de SET diffère de celui de OUT car l'instruction OUT passe le bit d'opérande sur OFF lorsque la condition d'exécution est OFF. De même, RSET diffère de OUT NOT car l'instruction OUT NOT passe le bit d'opérande sur ON lorsque la condition d'exécution est OFF. 000000 010000 CIO 010000 passe ON/OFF lorsque CIO 000000 passe sur ON/OFF. 000001 CIO 010000 passe ON lorsque CIO 000001 passe ON ; il reste sur ON jusqu'à ce que CIO 000002 passe ON. 000002 188 Chapitre 3-4 Instructions de sortie de séquences 3-4-6 MULTIPLE BIT SET/RESET: SETA(530)/RSTA(531) Objet SETA(530) met sur ON le nombre spécifié de bits consécutifs. RSTA(531) met sur OFF le nombre spécifié de bits consécutifs. Symboles du schéma contact SETA(530) D D: Mot de départ N1 N1: Bit de départ N2 N2: Nombre de bits RSTA(531) D D: Mot de départ N1 N1: Bit de départ N2 N2: Nombre de bits Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat SETA(530) @SETA(530) Variations RSTA(531) @RSTA(531) Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Opérandes Zones de Zones de programmes de bloc programmes de pas OK OK Non prise en charge Non prise en charge Non prise en charge Non prise en charge SousTâches programmes d'interruption OK OK D : Mot de départ Spécifie le premier mot dans lequel les bits vont être mis sur ON ou OFF. N1 : Bit de départ Spécifie le premier bit qui sera mis sur ON ou OFF. N1 doit être compris entre #0000 et #000F (&0 à &15). N2 : Nombre de bits Spécifie le nombre de bits qui seront mis sur ON ou OFF. N2 doit être compris entre #0000 et #FFFF (&0 à &65535). Remarque Les bits mis sur ON ou OFF doivent être dans la même zone de données. (La plage de mots est en gros de D à D+N2÷16.) D à D : 256 mots max. 189 Instructions de sortie de séquences Spécifications de l’opérande Description Chapitre 3-4 Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque D N1 N2 CIO 0000 à CIO 6143 W000 à W511 H000 à H511 A448 à A959 A000 à A959 T0000 à T4095 C0000 à C4095 D00000 à D32767 E00000 à E32767 En_00000 à En_32767 (n = 0 à C) Adresses DM/EM indirectes @ D00000 à @ D32767 en binaire @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) Adresses DM/EM indirectes *D00000 à *D32767 en BCD *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) Constantes --#0000 à #000F #0000 à #FFFF (binaire) ou &0 à (binaire) ou &0 à &65535 &15 Registres de données --DR0 à DR15 Registres d'index --Adressage indirect à l’aide de ,IR0 à ,IR15 registres d’index –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 Le fonctionnement de SETA(530) et RSTA(531) est décrite séparément cidessous. Fonctionnement de SETA(530) SETA(530) met sur ON N2 bits, en partant du bit N1 de D et en continuant vers la gauche (bits les plus significatifs). Tous les autres bits restent inchangés. (Aucune modification ne sera apportée si N2 est mis à 0.) Les bits mis sur ON par SETA(530) peuvent être mis sur OFF par toute autre instruction, pas uniquement par RSTA(531). N2 bits sont mis à 1 (ON). SETA(530) peut être utilisée pour mettre sur ON les bits dans les zones de données auxquelles seuls les mots ont généralement accès, telles les zones DM et EM. 190 Chapitre 3-4 Instructions de sortie de séquences Fonctionnement de RSTA(531) RSTA(531) met sur OFF N2 bits, en partant du bit N1 de D et en continuant vers la gauche (bits les plus significatifs). Tous les autres bits restent inchangés. (Aucune modification ne sera apportée si N2 est mis à 0.) Les bits mis sur OFF par RSTA(531) peuvent être mis sur ON par toute autre instruction, pas uniquement par SETA(530). N2 bits sont remis à 0 (OFF). RSTA(531) peut être utilisée pour mettre sur ON les bits dans les zones de données auxquelles seuls des mots ont généralement accès, telles les zones DM et EM. Drapeaux Nom Drapeau d'erreur Exemples Etiquette Fonctionnement ER ON si N1 n'est pas dans la plage spécifiée de 0000 à 000F. OFF dans tous les autres cas. Exemple SETA(530) Si CIO 000000 est mis sur ON dans l'exemple suivant, les 20 bits (0014 hexadécimal) commençant par le bit 5 de CIO 0100 sont mis sur ON. N1 : Bit 5 N2 : 20 bits &5 &20 Exemple RSTA(531) Si CIO 000000 est mis sur ON dans l'exemple suivant, les 20 bits (0014 hexadécimal) commençant par le bit 3 de CIO 0100 sont mis sur OFF. N1 : Bit 3 &3 N2 : 20 bits &20 191 Chapitre 3-4 Instructions de sortie de séquences 3-4-7 SINGLE BIT SET/RESET : SETB(532)/RSTB(533) Objet L'instruction SETB(532) met sur ON le bit spécifié. L'instruction RSTB(533) met sur OFF le bit spécifié. Ces instructions sont prises en charge par les UC CS1-H, CJ1-H , CJ1M et CS1D uniquement. Symboles du schéma contact SETB(532) D D: Adresse de mot N: Numéro de bit N RSTB(533) D D: Adresse de mot N: Numéro de bit N Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat (voir remarque.) Variations Exécution une fois et rafraîchissement du bit combinées immédiat pour la différentiation sur front montant (voir remarque.) Exécution une fois et rafraîchissement du bit immédiat pour la différentiation sur front descendant (voir remarque.) SETB(532) @SETB(532) Non prise en charge !SETB(532) !@SETB(532) Non prise en charge Remarque Le rafraîchissement immédiat n'est pas prise en charge par les UC CS1D. Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat (voir remarque.) Variations Exécution une fois et rafraîchissement du bit combinées immédiat pour la différentiation sur front montant (voir remarque.) Exécution une fois et rafraîchissement du bit immédiat pour la différentiation sur front descendant RSTB(533) @RSTB(533) Non prise en charge !RSTB(533) !@RSTB(533) Non prise en charge Remarque Le rafraîchissement immédiat n'est pas pris en charge par les UC CS1D. Zones de programmes applicables Opérandes Zones de Zones de programmes de bloc programmes de pas OK OK SousTâches programmes d'interruption OK OK D : Adresse de mot Spécifie le mot dans lequel le bit va être mis sur ON ou OFF. N : Bit de départ Spécifie le bit qui sera mis sur ON ou OFF. N doit être compris entre #0000 et #000F (&0 à &15). 192 Chapitre 3-4 Instructions de sortie de séquences Spécifications de l’opérande Description Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque D N CIO 0000 à CIO 6143 W000 à W511 H000 à H511 A448 à A959 A000 à A959 T0000 à T4095 C0000 à C4095 D00000 à D32767 E00000 à E32767 En_00000 à En_32767 (n = 0 à C) Adresses DM/EM indirectes @ D00000 à @ D32767 en binaire @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) Adresses DM/EM indirectes *D00000 à *D32767 en BCD *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) Constantes --#0000 à #000F (binaire) ou &0 à &15 Registres de données DR0 à DR15 Registres d'index --Adressage indirect à l’aide de ,IR0 à ,IR15 registres d’index –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 Les fonctions de SETB(532) et RSTB(533) sont décrites séparément ci-dessous. Fonctionnement de SETB(532) SETB(532) met sur ON le bit N du mot D si la condition d'exécution est ON. L'état du bit n'est pas affecté si la condition d'exécution est OFF. A la différence de SET, SETB(532) peut mettre sur ON un bit dans la zone DM ou la zone EM. 15 Ce bit est mis sur ON. Condition d’exécution ON OFF Bit N du mot D ON OFF Les bits mis sur ON par SETB(532) peuvent être mis sur OFF par toute autre instruction, pas uniquement par RSTB(533). SETB(532) est prise en charge par les UC CS1-H, CJ1-H, CJ1M uniquement. 193 Chapitre 3-4 Instructions de sortie de séquences Fonctionnement de RSTB(533) RSTB(533) met sur OFF le bit N du mot D si la condition d'exécution est ON. L'état du bit n'est pas affecté si la condition d'exécution est OFF. (Utilisez SETB(532) pour mettre le bit sur ON.) A la différence de RST, RSTB(533) peut mettre sur OFF un bit dans la zone DM ou la zone EM. 15 Ce bit est mis sur OFF. Condition d’exécution ON OFF Bit N du mot D ON OFF Les bits mis sur OFF par RSTB(533) peuvent être mis sur ON par toute autre instruction, pas uniquement par SETB(532). RSTB(533) est prise en charge par les UC CS1-H, CJ1-H, CJ1M uniquement. Drapeaux Nom Drapeau d'erreur Précautions Etiquette Fonctionnement ER ON si N n'est pas dans la plage spécifiée de 0000 à 000F (&0 à &15). OFF dans tous les autres cas. SETB(532) et RSTB(533) ne peuvent initialiser/réinitialiser les temporisateurs et compteurs. Si l'instruction SETB(532) ou RSTB(533) est programmée entre IL(002) et ILC(003) ou entre JMP(004) et JME(005), l'état du bit spécifié ne sera pas modifié si la section de programme est verrouillée ou sautée, à savoir si la condition de verrouillage ou la condition de saut est OFF. SETB(532) et RSTB(533) présentent des variations de rafraîchissement immédiat (!SETB(532) et !RSTB(533)). Lorsqu'un bit de sortie externe a été spécifié dans l'une de ces instructions, toute modification du bit spécifié sera mise à jour lorsque l'instruction est exécutée et se reflètera immédiatement dans le bit de sortie. (Les modifications ne se reflètent pas immédiatement si le bit est affecté à une carte E/S haute densité Groupe 2, à une carte E/S spéciale haute densité ou à une carte montée sur rack esclave E/S à distance SYSMAC BUS.) Différences entre SET/RSET et SETB(532)/RSTB(533) Les instructions SET et RSET fonctionnent quelque peu différemment des instructions SETB(532) et RSTB(533). 1. Les instructions opèrent de la même façon lorsque le bit spécifié est dans la zone CIO, W, H ou A. 2. Les instructions SETB(532) et RSTB(533) peuvent contrôler les bits dans les zones DM et EM, à la différence des instructions SET et RSET. Différences entre OUTB(534) et SETB(532)/RSTB(533) L'instruction OUTB(534) fonctionne quelque peu différemment des instructions SETB(532) et RSTB(533). 1. Les instructions SETB(532) et RSTB(533) modifient l'état du bit spécifié uniquement lorsque leur condition d'exécution est ON. Ces instructions n'exercent aucun effet sur l'état du bit spécifié lorsque leur condition d'exécution est OFF. 194 Chapitre 3-4 Instructions de sortie de séquences 2. L'instruction OUTB(534) met le bit spécifié sur ON lorsque la condition d'exécution est ON et met le bit spécifié sur OFF lorsque la condition d'exécution est OFF. 3. Les entrées set et reset pour une instruction KEEP(011) doivent être programmées avec l'instruction, mais les instructions SETB(532) et RSTB(533) peuvent être programmées de façon totalement indépendante. En outre, le même bit peut être utilisé comme opérande dans n'importe quel nombre d'instructions SETB(532) ou RSTB(533). 000000 SETB D00000 &2 Le bit 02 de D00000 est mis sur ON si CIO 000000 est ON. RSTB D00000 &2 Le bit 02 de D00000 est mis sur OFF si CIO 000001 est ON. 000001 3-4-8 SINGLE BIT OUTPUT : OUTB(534) Objet OUTB(534) sort l'état de la condition d'exécution de l'instruction vers le bit spécifié. A la différence de OUT, OUTB(534) peut contrôler un bit dans la zone DM ou EM. Cette instruction est prises en charge par les UC CS1-H, CJ1-H , CJ1M et CS1D uniquement. Symboles du schéma contact OUTB(534) D D: Adresse de mot N: Numéro de bit N Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat (voir remarque.) OUTB(534) @OUTB(534) Non prise en charge !OUTB(534) Remarque Le rafraîchissement immédiat n'est pas pris en charge par les UC CS1D. Zones de programmes applicables Opérandes Zones de Zones de programmes de bloc programmes de pas Non autorisé OK SousTâches programmes d'interruption OK OK D : Adresse de mot Spécifie le mot contenant le bit à contrôler. N : Bit de départ Spécifie le bit à contrôler. N doit être compris entre #0000 et #000F (&0 à &15). Spécifications de l’opérande Zone Zone CIO Zone Travail D CIO 0000 à CIO 6143 W000 à W511 N 195 Chapitre 3-4 Instructions de sortie de séquences Zone Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque D N H000 à H511 A448 à A959 A000 à A959 T0000 à T4095 C0000 à C4095 D00000 à D32767 E00000 à E32767 En_00000 à En_32767 (n = 0 à C) Adresses DM/EM indirectes @ D00000 à @ D32767 en binaire @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) Adresses DM/EM indirectes *D00000 à *D32767 en BCD *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) Constantes --#0000 à #000F (binaire) ou &0 à &15 Registres de données DR0 à DR15 Registres d'index --Adressage indirect à l’aide de ,IR0 à ,IR15 registres d’index –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 Description Lorsque la condition d'exécution est ON, OUTB(534) met sur ON le bit N du mot D. Lorsque la condition d'exécution est OFF, OUTB(534) met sur OFF le bit N du mot D. N 15 0 D Ce bit est mis sur OFF. Condition d’exécution Bit N du mot D ON OFF ON OFF Si la spécification de rafraîchissement immédiat n'est pas utilisée, l'état de la condition d'exécution est écrit sur le bit spécifié dans la mémoire E/S. Si la spécification de rafraîchissement immédiat est utilisée, l'état de la condition d'exécution est écrit, outre sur le bit de sortie dans la mémoire E/S, également sur la borne de sortie de la carte de sortie standard. OUTB(534) est prise en charge par les UC CS1-H, CJ1-H, CJ1M uniquement. Drapeaux 196 Aucun drapeau n'est concerné par cette instruction. Chapitre 3-5 Instructions de contrôle de séquences Précautions Le rafraîchissement immédiat (!OUTB(534)) peut être spécifié. Une instruction de rafraîchissement immédiat met à jour l'état de la borne de sortie juste après que l'instruction soit exécutée sur un bit de sortie affecté à une carte de sortie standard (mais non pour les cartes de sortie standard sur racks esclaves ni pour les cartes de sortie multipoint C200H Groupe 2), et écrit dans le même temps l'état de la condition d'exécution sur le bit de sortie spécifié dans la mémoire E/S. Lorsque l'instruction OUTB(534) est programmée entre IL(002) et ILC(003), le bit spécifié sera mis sur OFF si la section de programme est verrouillée. (Même effet que dans le cas d'une instruction OUT dans une section de programme verrouillée.) Lorsqu'un mot est spécifié pour le numéro de bit (N), seuls les bits 00 à 03 de N sont utilisés. Par exemple, si N contient FFFA hex, OUTB(534) contrôle le bit 10 du mot D. Exemple 000000 OUTB D00000 &10 3-5 Le bit 10 de D00000 est mis sur OFF si CIO 000000 est OFF. Instructions de contrôle de séquences 3-5-1 END : END(001) Objet Symbole du schéma contact Indique la fin d'un programme. END(001) Variations Variations Exécutée à chaque cycle pour la condition ON END(001) Spécification de rafraîchissement immédiat Non prise en charge Zones de programmes applicables Description Zones de programmes de bloc Non autorisé Zones de programmes de pas Non autorisé SousTâches programmes d'interruption Non autorisé OK END(001) termine l'exécution d'un programme pour ce cycle. Aucune instruction n'est écrite après l'exécution de END(001). L'exécution passe au programme avec le numéro de tâche suivant. Lorsque le programme en cours d'exécution a le numéro de tâche le plus élevé dans le programme, END(001) marque la fin de l'ensemble du programme principal. 197 Chapitre 3-5 Instructions de contrôle de séquences Tâche 1 Programme A Vers le numéro de tâche suivant Tâche 2 Programme B Vers le numéro de tâche suivant Tâche n Programme Z Fin du programme principal Rafraîchissement E/S Précautions 3-5-2 Toujours placer l'instruction END(001) en fin de chaque programme. Une erreur de programmation se produit si le programme ne se termine pas par une instruction END(001). NO OPERATION : NOP(000) Objet Cette instruction n'a aucune fonction. (aucun traitement n'est effectué pour NOP(000).) Symbole du schéma contact Aucun schéma contact n’est associé à l'instruction NOP(000). Variations Variations Exécutée à chaque cycle pour la condition ON Spécification de rafraîchissement immédiat Zones de programmes applicables Zones de Zones de programmes de bloc programmes de pas OK OK Sousprogrammes OK NOP(000) Non prise en charge Tâches d'interruption OK Description Aucun traitement n'est effectué pour NOP(000), mais cette instruction peut être utilisée pour prévoir des lignes dans le programme afin de permettre l'insertion ultérieure d'instructions. Si des instructions sont insérées ultérieurement, les adresses du programme ne subissent aucune modification. Drapeaux Aucun drapeau n'est concerné par l'instruction NOP(000). Précautions NOP(000) peut uniquement être utilisée avec des affichages mnémoniques, pas avec des schémas contacts. 198 Chapitre 3-5 Instructions de contrôle de séquences 3-5-3 Aperçu des instructions de verrouillage Instructions de verrouillage Les combinaisons d'instructions suivantes peuvent être utilisées pour verrouiller des sorties dans une section de programme. • INTERLOCK et INTERLOCK CLEAR (IL(002) et IL(003)) • MULTI-INTERLOCK DIFFERENTIATION HOLD et MULTI-INTERLOCK CLEAR (MILH(517) et MILC(519))* Remarque MILH(517) maintient l'état du drapeau de différentiation, de sorte que les instructions différenciées verrouillées sont exécutées après la suppression du verrouillage. • MULTI-INTERLOCK DIFFERENTIATION RELEASE et MULTI-INTERLOCK CLEAR (MILR(518) et MILC(519))* Remarque MILR(518) ne maintient pas l'état du drapeau de différentiation, de sorte que les instructions différenciées verrouillées ne sont pas exécutées après la suppression du verrouillage. * Ces instructions sont prises en charge uniquement par les UC série CS/ CJ ver. 2.0 ou supérieure. Différences entre les verrouillages et les verrouillages multiples Les verrouillages ordinaires (IL(002) et IL(003)) ne peuvent être imbriqués tandis que les verrouillages multiples (MILH(517), MILR(518) et MILC(519)) peuvent être imbriqués. La programmation contact peut être simplifiée en imbriquant des verrouillages multiples, comme indiqué dans le schéma cidessous. Verrouillages par MILH et MILC a MILH Verrouillages par IL et ILC a IL 0 A1 A1 ILC b a MILH b IL 1 A2 A2 ILC c MILH a b c IL 2 A3 A3 ILC MILC 2 MILC 1 MILC 0 Différences entre MILH(517) et MILR(518) Les instructions différenciées (DIFU, DIFD, ou instructions précédées du préfixe @ ou %) opèrent différemment dans les verrouillages créés par MILH(517) et MILR(518). 199 Chapitre 3-5 Instructions de contrôle de séquences Le fonctionnement des instructions différenciées dans un verrouillage créé par MILH(517) est identique à celle dans un verrouillage créé par IL(002). Pour plus d'informations, reportez-vous à 3-5-5 MULTI-INTERLOCK DIFFERENTIATION HOLD, MULTI-INTERLOCK DIFFERENTIATION RELEASE et MULTI-INTERLOCK CLEAR : MILH(517), MILR(518) et MILC(519). Précautions Ne pas combiner de verrouillages créés par différentes instructions de verrouillage (IL-ILC, MILH-MILC et MILR-MILC). Les verrouillages risquent de ne pas fonctionner correctement si différentes méthodes de verrouillage sont utilisées simultanément. Pour plus d'informations sur la combinaison des instructions, reportez-vous à 3-5-5 MULTI-INTERLOCK DIFFERENTIATION HOLD, MULTI-INTERLOCK DIFFERENTIATION RELEASE et MULTI-INTERLOCK CLEAR : MILH(517), MILR(518) et MILC(519). Par exemple, une instruction MILH(517) ne peut être insérée entre IL(002) et IL(003). IL MILH MILH(517) est dans une zone verrouillée entre IL(002) et ILC.(003). ILC Remarque Les différents verrouillages (IL-ILC, MILH-MILC et MILR-MILC) peuvent être utilisés ensemble pour autant que les sections du programme verrouillées ne se chevauchent pas. Par exemple, les trois méthodes de verrouillage peuvent être utilisées sans chevauchement, comme indiqué dans le schéma ci-dessous. IL ILC MILH MILC MILR MILC 200 Différentes méthodes de verrouillage peuvent être utilisées pour autant que les zones de verrouillage ne se chevauchent pas. Chapitre 3-5 Instructions de contrôle de séquences Différences entre verrouillages et sauts Exécution de l'instruction Etat des sorties des instructions Bits dans OUT, OUT NOT, OUTB(534) Etat des instructions de temporisateur (excepté (TTIM(087), TTIMX(555), MTIM(543) et MTIMX(554)) 3-5-4 Le tableau ci-dessous reprend les différences entre les verrouillages (créés par IL(002)/ILC(003), MILH(517)/MILC(519) ou MILR(518)/MILC(519)) et les sauts créés par JMP(004)/JME(005). Traitement dans IL(002)/ILC(003), MILH(517)/MILC(519) ou MILR(518)/ MILC(519)) Les instructions autres que OUT, OUT NOT, OUTB(534), et les instructions de temporisateur ne sont pas exécutées. Hormis les sorties dans OUT, OUT NOT, OUTB(534) ainsi que dans les instructions de temporisateur, toutes les sorties maintiennent leur état précédent. OFF Réinitialisation Traitement dans JMP(004)/JME(005) Aucune instruction n'est exécutée. Toutes les sorties maintiennent leur état précédent. Toutes les sorties maintiennent leur état précédent. Les temporisateurs opérationnels (TIM, TIMX(550), TIMH(015), TIMHX(551), TMHH(540), TMHHX(552) uniquement) poursuivent la temporisation car les valeurs actuelles (PV) sont mises à jour même si l'instruction de temporisateur n'est pas exécutée. INTERLOCK et INTERLOCK CLEAR : IL(002) et ILC(003) Objet Symboles du schéma contact Verrouille toutes les sorties entre IL(002) et ILC(003) lorsque la condition d'exécution de IL(002) est OFF. IL(002) et ILC(003) sont normalement utilisées par paires. IL(002) ILC(003) Variations Zones de programmes applicables Description Variations Verrouille si OFF/Ne verrouille pas si ON Spécification de rafraîchissement immédiat IL(002) Non prise en charge Variations Exécutée à chaque cycle pour la condition ON Spécification de rafraîchissement immédiat ILC(003) Non prise en charge Zones de programmes de bloc Non autorisé Zones de programmes de pas Non autorisé SousTâches programmes d'interruption OK OK Lorsque la condition d'exécution de IL(002) est OFF, les sorties de toutes les instructions entre IL(002) et ILC(003) sont verrouillées. Lorsque la condition d'exécution de IL(002) est ON, les instructions entre IL(002) et ILC(003) sont normalement exécutées. Condition d'exécution Condition Condition d'exécution ON d'exécution OFF Section verrouillée du programme Exécution Sorties normale verrouillées. 201 Chapitre 3-5 Instructions de contrôle de séquences Le tableau ci-dessous indique le traitement de différentes sorties dans une section verrouillée entre IL(002) et ILC(003). Instruction Bits spécifiés dans OUT, OUT NOT ou OUTB(534) TIM, TIMX(550), TIMH(015), Drapeau de fin TIMHX(551), TMHH(540), PV TMHHX(552), TIML(542) et TIMXL(553) Bits/mots spécifiés dans toutes les autres instructions (voir remarque.) Traitement OFF OFF (réinitialisation) Valeur de consigne de temps (réinitialisation) Maintiennent l'état précédent. Remarque Les bits et mots dans toutes les autres instructions y compris TTIM(087), TTIMX(555), MTIM(543), MTIMX(554), SET, RSET, CNT, CNTX(546), CNTR(012), CNTRX(548), SFT et KEEP(011) maintiennent leur état précédent. Si vous souhaitez que certains bits restent sur ON dans une section de programme verrouillée, mettez ces bits sur ON au moyen de SET juste avant IL(002). Il est souvent plus efficace de commuter une section de programme au moyen de IL(002) et ILC(003). Lorque plusieurs processus sont contrôlés avec la même condition d'exécution, l'insertion de ces processus entre IL(002) et ILC(003) nécessite moins de pas de programme. Le tableau ci-dessous indique les différences entre IL(002)/ILC(003) et JMP(004)/JME(005). Exécution de l'instruction Etat de sortie des instructions Bits dans OUT, OUT NOT, OUTB(534) Etat des instructions de temporisateur (excepté (TTIM(087), TTIMX(555), MTIM(543) et MTIMX(554)) Traitement dans IL(002)/ILC(003) Les instructions autres que OUT, OUT NOT, OUTB(534), et les instructions de temporisateur ne sont pas exécutées. Hormis les sorties dans OUT, OUT NOT, OUTB(534) ainsi que dans les instructions de temporisateur, toutes les sorties maintiennent leur état précédent. OFF Réinitialisation Traitement dans JMP(004)/JME(005) Aucune instruction n'est exécutée. Toutes les sorties maintiennent leur état précédent. Toutes les sorties maintiennent leur état précédent. Les temporisateurs opérationnels (TIM, TIMX(550), TIMH(015), TIMHX(551), TMHH(540), TMHHX(552) uniquement) poursuivent la temporisation car les valeurs actuelles sont mises à jour même si l'instruction de temporisateur n'est pas exécutée. Drapeaux Nom Drapeau d'erreur Drapeau d'égalité Drapeau négatif 202 Etiquette ER = N Fonctionnement OFF OFF ou inchangé (voir remarque.) OFF ou inchangé (voir remarque.) Chapitre 3-5 Instructions de contrôle de séquences Remarque Dans les UC CS1 et CJ1, les drapeaux d'égalité et les drapeaux négatifs passent OFF. Dans les UC CS1-H, CJ1-H, CJ1M et CS1D, les drapeaux d'égalité et les drapeaux négatifs restent inchangés. Précautions Le temps de cycle n'est pas raccourci lorsqu'une section de programme est verrouillée car les instructions verrouillées sont exécutées en interne. Le fonctionnement des instructions DIFU(013), DIFD(014) et des instructions différenciées ne dépend pas uniquement de l'état de la condition d'exécution lorsqu'elles sont programmées entre IL(002) et ILC(003). Les modifications de la condition d'exécution pour les instructions DIFU(013), DIFD(014) ou différenciées ne sont pas enregistrées si l'instruction DIFU(013) ou DIFD(014) se situe dans une section verrouillée et que la condition d'exécution pour IL(002) est OFF. En général, les instructions IL(002) et ILC(003) sont utilisées par paires bien qu'il soit possible d'utiliser plus d'une instruction IL(002) avec une seule ILC(003) comme indiqué dans le schéma ci-dessous. Si IL(002) et ILC(003) ne sont pas utilisées par paires, un message d'erreur s'affiche à la vérification du programme mais le programme est correctement exécuté. Condition d’exécution a b OFF ON OFF OFF ON OFF ON ON Section de programme A Verrouillé Verrouillé Non verrouillé Non verrouillé B Verrouillé Verrouillé Verrouillé Non verrouillé Les instructions IL(002) et ILC(003) ne peuvent pas être imbriquées, comme le schéma suivant le montre. (Utilisez MILH(517)/MILR(518) et MILC(519) lorsqu'il est nécessaire d'imbriquer des verrouillages.) 203 Chapitre 3-5 Instructions de contrôle de séquences Exemples Si CIO 000000 est OFF dans l'exemple suivant, toutes les sorties entre IL(002) et ILC(003) sont verrouillées. Si CIO 000000 est ON dans l'exemple suivant, les instructions entre IL(002) et ILC(003) sont normalement exécutées. CIO 000000 CIO 000000 ON OFF OFF OFF Exécution normale Sorties verrouillées. Réinitialisation Maintenues Maintenues 204 Chapitre 3-5 Instructions de contrôle de séquences 3-5-5 MULTI-INTERLOCK DIFFERENTIATION HOLD, MULTI-INTERLOCK DIFFERENTIATION RELEASE et MULTI-INTERLOCK CLEAR : MILH(517), MILR(518) et MILC(519) Objet Verrouille toutes les sorties entre MILH(517) (ou MILR(518)) et MILC(519) lorsque la condition d'exécution pour MILH(517) (ou MILR(518)) est OFF. MILH(517) (ou MILR(518)) et MILC(519) sont normalement utilisées par paires. A la différence des verrouillages IL(002)/ILC(003), les verrouillages MILH(517)/MILC(519) et MILR(518)/MILC(519) peuvent être imbriqués. Le fonctionnement des instructions différenciées diffère pour les verrouillages créés avec MILH(517) et MILR(518). Ces instructions sont prises en charge uniquement par les UC série CS/CJ ver. 2.0 ou supérieure. Symboles du schéma contact MILH (517) N N: Numéro de verrouillage D D: Bit d'état du verrouillage MILR (518) N N: Numéro de verrouillage D D: Bit d'état du verrouillage MILC (519) N Opérandes N: Numéro de verrouillage N: Numéro de verrouillage Le numéro de verrouillage doit être compris entre 0 et 15. Faites correspondre le numéro de verrouillage de l'instruction MILH(517) (ou MILR(518)) avec le même numéro dans l'instruction MILC(519) correspondante. Les numéros de verrouillage peuvent être utilisés dans n'importe quel ordre. D : Bit d'état du verrouillage • ON lorsque la section de programme n'est pas verrouillée. • OFF lorsque la section de programme est verrouillée. Lorsque le verrouillage est activé, le bit d'état du verrouillage peut être forcé à 1 pour supprimer le verrouillage. Inversement, lorsque le verrouillage n'est pas activé, le bit d'état du verrouillage peut être forcé à 0 pour activer le verrouillage. Spécifications de l’opérande Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en binaire N --------------------- D CIO 000000 à CIO 614315 W00000 à W51115 H00000 à H51115 A00000 à A95915 ------------- 205 Chapitre 3-5 Instructions de contrôle de séquences Zone Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index N D --- --- 0 à 15 ------- ------,IR0 à ,IR15 –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à IR15 Variations Variations Verrouille si OFF/Ne verrouille pas si ON MILH(517) et MILR(518) Non prise en charge Spécification de rafraîchissement immédiat Variations Exécutée à chaque cycle pour la condition ON Spécification de rafraîchissement immédiat Zones de programmes applicables Le tableau ci-dessous indique les zones de programmes applicables pour MILH(517), MILR(518) et MILC(519). Zones de programmes de bloc Non autorisé Description MILC (519) Non prise en charge Zones de programmes de pas Non autorisé SousTâches programmes d'interruption OK OK Lorsque la condition d'exécution de MILH(517) (ou MILR(518)) avec numéro de verrouillage N est OFF, les sorties de toutes les instructions comprises entre cette instruction MILH(517)/MILR(518) et la prochaine instruction MILC(519) avec numéro de verrouillage N sont verrouillées. Lorsque la condition d'exécution de MILH(517) (ou MILR(518)) avec numéro de verrouillage N est ON, les instructions comprises entre cette instruction MILH(517)/MILR(518) et la prochaine instruction MILC(519) avec numéro de verrouillage N sont normalement exécutées. Etat de verrouillage Le tableau ci-dessous indique le traitement de différentes sorties dans une section verrouillée entre l'instruction MILH(517)/MILR(518) et la prochaine instruction MILC(519). Instruction Bits spécifiés dans OUT, OUT NOT ou OUTB(534) TIM, TIMX(550), TIMH(015), Drapeau de fin TIMHX(551), TMHH(540), PV TMHHX(552), TIML(542) et TIMXL(553) Bits/mots spécifiés dans toutes les autres instructions (voir remarque.) Traitement OFF OFF (réinitialisation) Valeur de consigne de temps (réinitialisation) Maintiennent l'état précédent. Remarque Les bits et mots dans toutes les autres instructions y compris TTIM(087), TTIMX(555), MTIM(543), MTIMX(554), SET, RSET, CNT, CNTX(546), CNTR(012), CNTRX(548), SFT et KEEP(011) maintiennent leur état précédent. 206 Chapitre 3-5 Instructions de contrôle de séquences L'instruction MILH(517)/MILR(518) met sur OFF le bit d'état du verrouillage (opérande D) lorsque le verrouillage est activé et met le bit sur ON lorsque le verrouillage n'est pas activé. Le bit d'état du verrouillage peut dès lors être surveillé pour vérifier si le verrouillage est activé ou non pour un numéro de verrouillage donné. Condition d'entrée sur ON (fonctionnement normal) Condition d'entrée sur OFF MILH Condition d'entrée n d Section de programme verrouillée Fonctionnement normal Bit d'état du verrouillage (d) ON Sorties verrouillées. (sorties OFF, réinitialisation des temporisateurs, etc.) Bit d'état du verrouillage (d) OFF MILC n Imbrication Les verrouillages sont imbriqués lorsqu'une section de programme verrouillée (combinaison MILH(517)/MILR(518) et MILC(519)) est placée dans une autre section de programme verrouillée (combinaison MILH(517)/MILR(518) et MILC(519)). Les verrouillages peuvent être imbriqués jusqu'à 16 niveaux. L'imbrication peut être utilisée pour les types d'applications suivants. • Exemple 1 Verrouillage du programme entier avec une condition et verrouillage d'une partie du programme avec une autre condition (1 niveau d'imbrication) Verrouillage global (arrêt d'urgence) A1 (traitement périphérique) Verrouillage partiel (Conveyor RUN) A2 (fonctionnement du convoyeur) • A1 et A2 sont verrouillées lorsque le bouton d'arrêt d'urgence est sur ON. • A2 est verrouillée lorsque Conveyor RUN est sur OFF. 207 Chapitre 3-5 Instructions de contrôle de séquences Verrouillage global (arrêt d'urgence) MILH 0 A1 (traitement périphérique) Lorsque l'arrêt d'urgence est sur ON (condition d'entrée OFF), A1 et A2 sont toutes deux verrouillées. Lorsque l'arrêt d'urgence est sur OFF (condition d'entrée ON), A1 est normalement exécutée et A2 est contrôlée par le commutateur Conveyor RUN comme décrit ci-dessous. Verrouillage partiel (Conveyor RUN) MILH 1 A2 (fonctionnement du convoyeur) Lorsque le commutateur Conveyor RUN est sur OFF (condition d'entrée OFF), A2 est verrouillée. Lorsque le commutateur Conveyor RUN est sur ON (condition d'entrée ON), A2 est normalement exécutée. MILC 1 MILC 0 • Exemple 2 Verrouillage du programme entier avec une condition et verrouillage de deux parties en chevauchement du programme avec une d'autres conditions (2 niveaux d'imbrication) Verrouillage global (arrêt d'urgence) A1 (traitement périphérique) Verrouillage partiel (Conveyor RUN) A2 (fonctionnement du convoyeur) Verrouillage partiel (Arm RUN) A3 (fonctionnement du bras) • A1, A2 et A3 sont verrouillées lorsque le bouton d'arrêt d'urgence est sur ON. • A2 et A3 sont verrouillées lorsque Conveyor RUN est sur OFF. • A3 est verrouillée lorsque Arm RUN est sur OFF. 208 Chapitre 3-5 Instructions de contrôle de séquences Verrouillage global (arrêt d'urgence) MILH 0 A1 (traitement périphérique) Lorsque l'arrêt d'urgence est sur ON (condition d'entrée OFF), A1, A2 et A3 sont verrouillées. Lorsque l'arrêt d'urgence est sur OFF (condition d'entrée ON), A1 est normalement exécutée et A2 et A3 sont contrôlées par les commutateurs Conveyor RUN et Arm RUN comme décrit ci-dessous. Verrouillage partiel (Conveyor RUN) MILH 1 A2 (fonctionnement du convoyeur) Lorsque le commutateur Conveyor RUN est sur OFF (condition d'entrée OFF), A2 et A3 sont verrouillées. Lorsque le commutateur Conveyor RUN est sur ON (condition d'entrée ON), A2 est exécutée normalement et A3 est contrôlée par le commutateur Arm RUN comme décrit ci-dessous. Verrouillage partiel (Arm RUN) MILH 2 A3 (fonctionnement du bras) Lorsque le commutateur Arm RUN est sur OFF (condition d'entrée OFF), A3 est verrouillée. Lorsque le commutateur Arm RUN est sur ON (condition d'entrée ON), A3 est normalement exécutée. MILC 2 MILC 1 MILC 0 Différences entre MILH(517) et MILR(518) Les instructions différenciées (DIFU, DIFD, ou instructions précédées du préfixe @ ou %) fonctionnent différemment dans les verrouillages créés par MILH(517) et MILR(518). Lorqu'une section de programme est verrouillée par MILR(518), une instruction différenciée ne sera pas exécutée une fois le verrouillage supprimé même si la condition de différentiation a été activée pendant le verrouillage (comparaison de l'état de la condition d'exécution à l'enclenchement du verrouillage avec son état à la suppression du verrouillage). Lorqu'une section de programme est verrouillée par MILH(517), une instruction différenciée sera exécutée une fois le verrouillage supprimé si la condition de différentiation a été activée pendant le verrouillage (comparaison de l'état de la condition d'exécution à l'enclenchement du verrouillage avec son état à la suppression du verrouillage). 209 Chapitre 3-5 Instructions de contrôle de séquences Instruction MILH (517) MULTI-INTERLOCK DIFFERENTIATION HOLD MILR (518) MULTI-INTERLOCK DIFFERENTIATION RELEASE Fonctionnement des instructions différenciées Une instruction différenciée (DIFU, DIFD ou instruction précédée du préfixe @ ou %) sera exécutée après la suppression du verrouillage si la condition de différentiation de l'instruction a été établie alors que l'instruction était verrouillée. (L'état de la condition d'exécution à l'activation du verrouillage est comparé à son état à la suppression du verrouillage.) Une instruction différenciée (DIFU, DIFD ou instruction précédée du préfixe @ ou %) ne sera pas exécutée après la suppression du verrouillage si la condition de différentiation de l'instruction a été établie alors que l'instruction était verrouillée. • Fonctionnement des instructions différenciées dans un verrouillage MILH(517) S'il existe une instruction différenciée (DIFU, DIFD ou instruction précédée du préfixe @ ou %) entre MILH(517) et l'instruction MILC(519) correspondante, cette instruction sera exécutée après la suppression du verrouillage si la condition de différentiation de l'instruction a été établie. (Le système compare l'état de la condition d'exécution à l'activation du verrouillage à son état à la suppression du verrouillage.) De la même manière, une instruction différenciée sera exécutée si sa condition d'exécution est établie au moment même où le verrouillage est activé ou supprimé. Bon nombre d'autres conditions dans le programme peuvent entraîner la réinitilisation de la condition de différentiation même si elle a été établie pendant le verrouillage. Dans ce cas, l'instruction de différentiation ne sera pas exécutée à la suppression du verrouillage. • Exemple Si l'instruction DIFFERENTIATE UP (DIFU(013)) est utilisée et que la condition d'entrée est OFF à l'activation du verrouillage et ON à la suppression du verrouillage, l'instruction DIFU(013) sera exécutée à la suppression du verrouillage. (Les instructions différenciées fonctionnent de la même manière dans le verrouillage par MILH(517) que dans le verrouillage par IL(002).) 000000 MILH 0 1. Lorsque CIO 000000 est OFF (activation du verrouillage), la condition d'entrée CIO 000001 de DIFU est OFF. 2. La condition d'entrée CIO 000001 de DIFU passe de OFF à ON lorsque CIO 000000 est OFF (DIFU verrouillée), 3. Si CIO 000000 passe de OFF à ON (verrouillage supprimé), DIFU est exécutée si CIO 000001 est toujours ON. 000001 DIFU 001000 MILC 0 210 Chapitre 3-5 Instructions de contrôle de séquences Schéma séquentiel Non verrouillé Verrouillé Non verrouillé ON 000000 OFF ON Etat (OFF) à l'activation du verrouillage ON Condition de différentiation établie 000001 OFF OFF Verrouillage MILH(517) Etat (ON) à la suppression du verrouillage DIFU(013) exécutée. ON 001000 OFF 1 cycle • Fonctionnement des instructions différenciées dans un verrouillage MILR(518) S'il existe une instruction différenciée (DIFU, DIFD ou instruction précédée du préfixe @ ou %) entre MILR(518) et l'instruction MILC(519) correspondante, cette instruction ne sera pas exécutée après la suppression du verrouillage si la condition de différentiation de l'instruction a été établie. (Le système compare l'état de la condition d'exécution dans le cycle à l'activation du verrouillage à son état dans le cycle à la suppression du verrouillage.) De la même manière, une instruction différenciée ne sera pas exécutée si sa condition d'exécution est établie au moment même où le verrouillage est activé ou supprimé. • Exemple Si l'instruction DIFFERENTIATE UP (DIFU(013)) est utilisée et que la condition d'entrée est OFF à l'activation du verrouillage et ON à la suppression du verrouillage, l'instruction DIFU(013) ne sera pas exécutée à la suppression du verrouillage. 000000 MILR 0 1. Lorsque CIO 000000 est OFF (activation du verrouillage), la condition d'entrée CIO 000001 de DIFU est OFF. 2. La condition d'entrée CIO 000001 de DIFU passe de OFF à ON lorsque CIO 000000 est OFF (DIFU verrouillée), 3. Si CIO 000000 passe de OFF à ON (verrouillage supprimé), DIFU n'est pas exécutée même si CIO 000001 est toujours ON. 000001 DIFU 001000 MILC 0 211 Chapitre 3-5 Instructions de contrôle de séquences Schéma séquentiel Non verrouillé Verrouillé Non verrouillé ON 000000 OFF ON ON 000001 OFF OFF Verrouillage MILR(518) DIFU(013) non exécutée. ON 001000 OFF Contrôle de l'état du verrouillage à partir d'un périphérique de programmation Un verrouillage peut être activé ou supprimé manuellement par la mise à 0 ou à 1 forcée du bit d'état du verrouillage (spécifié par l'opérande D de MILH(517) et MILR(518)) à partir d'un périphérique de programmation. L'état forcé du bit d'état du verrouillage a la priorité et annule l'état de verrouillage calculé par l'exécution du programme. Mise à 1 forcée : supprime le verrouillage. OFF MILH n 010000 Section de programme contrôlée par verrouillage CIO 010000 est OFF à l'activation du verrouillage. Si CIO 010000 est forcé à 1 (ON), le verrouillage est supprimé. MILC n Mise à 0 forcée : active le verrouillage. ON MILH n 010000 Section de programme contrôlée par verrouillage CIO 010000 est ON lorsque le verrouillage n'est pas activé. Si CIO 010000 est forcé à 0 (OFF), le verrouillage est activé. MILC n Remarque Le fonctionnement du programme peut être commuté de manière plus efficace en recourant aux verrouillages par MILH(517) ou MILR(518). Plutôt que de recourir à la commutation avec des conditions mixtes, insérez une instruction MILH(517) ou MILR(518) avant chaque processus et une instruction MILC(519) après chaque processus. 212 Chapitre 3-5 Instructions de contrôle de séquences a a A1 MILH 0 b A2 A1 b MILH 1 A2 MILC 1 MILC 0 A la différence des verrouillages IL(002), les verrouillages MILH(517) et MILR(518) peuvent être imbriqués, de sorte que le fonctionnement de programmes similaires diffère selon que MILH(517) ou MILR(518) est utilisée plutôt que ILC(002). Programme avec verrouillages MILH(517)/MILC(519) a MILH 0 010000 A1 b MILH 1 010001 A2 MILC 1 A3 MILC 0 Condition d’exécution a b OFF ON OFF ON OFF ON ON Section de programme A1 Verrouillé A2 Verrouillé A3 Non verrouillé Non verrouillé Non verrouillé Verrouillé Non verrouillé Non verrouillé Non verrouillé 213 Chapitre 3-5 Instructions de contrôle de séquences Programme avec verrouillages IL(002)/ILC(003) a IL A1 b IL A2 ILC Cette section de programme n'est pas contrôlée par le verrouillage. A3 ILC Condition d’exécution a b OFF ON OFF ON OFF ON ON Cette instruction ILC(003) est ignorée, donc ... Section de programme A1 Verrouillé A2 Verrouillé Non verrouillé Non verrouillé Verrouillé Non verrouillé A3 Non verrouillé (Non contrôlé par le verrouillage IL(002)/ILC(003).) Si vous souhaitez que certains bits restent sur ON dans une section de programme verrouillée par MILH(517) ou MILR(518), réglez ces bits sur ON au moyen de SET juste avant l'instruction MILH(517) ou MILR(518). Drapeaux Nom Drapeau d'erreur Précautions 214 Etiquette ER OFF Fonctionnement Le temps de cycle n'est pas raccourci lorsqu'une section de programme est verrouillée par MILH(517) ou MILR(518) car les instructions verrouillées sont exécutées en interne. Chapitre 3-5 Instructions de contrôle de séquences Lors de l'imbrication des verrouillages, attibuez des numéros de verrouillage pour éviter que la section de programme imbriquée n'excède la section de programme extérieure. a MILH 0 A1 b MILH 1 A2 MILC 0 A3 MILC 1 Condition d’exécution a b OFF ON OFF ON OFF ON La section de programme imbriquée ne peut aller au delà de la section de programme extérieure. Section de programme A1 Verrouillé A2 Verrouillé A3 Non verrouillé Non verrouillé Non verrouillé Verrouillé Non verrouillé Verrouillé Non verrouillé 215 Chapitre 3-5 Instructions de contrôle de séquences D'autres instructions peuvent être saisies entre les instructions MILC(519), comme le montre le schéma ci-dessous. a MILH 0 010000 A1 b MILH 1 010001 A2 MILC 1 D'autres instructions peuvent être insérées entre deux instructions MILC(519). Dans ce cas, les sections A1 et A3 fonctionnent ensemble. (Elles sont verrouillées lorsque "a" est sur OFF, indépendamment de l'état ON/OFF de "b".) A3 MILC 0 S'il existe une instruction ILC(003) entre une paire d'instructions MILH(517) et MILC(519), la section de programme entre MILH(517) et ILC(003) sera verrouillée. a MILH 0 Si la condition d'entrée "a" est OFF, seule la section de programme A1 est verrouillée. A1 S'il existe une instruction ILC(003), le verrouillage est supprimé à ce stade. ILC A2 L'instruction MILC(519) est ignorée. MILC 0 216 Chapitre 3-5 Instructions de contrôle de séquences S'il existe une instruction ILC(003) entre une paire d'instructions MILR(518) et MILC(519), l'instruction ILC(003) sera ignorée et toute la section de programme entre MILR(518) et MILC(519) sera verrouillée. a MILR 0 Si la condition d'entrée "a" est OFF, les sections de programme A1 et A2 sont verrouillées. A1 L'instruction ILC(003) est ignorée. ILC A2 MILC 0 S'il existe une autre instruction MILH(517) ou MILR(518) avec le même numéro de verrouillage entre une paire d'instructions MILH(517) et MILC(519) et que le verrouillage de la première instruction MILH(517) est activé, la deuxième MILH(517)/MILR(518) n'aura aucun effet. S'il existe une autre instruction MILH(517) ou MILR(518) avec le même numéro de verrouillage entre une paire d'instructions MILH(517) et MILC(519) et que le verrouillage de la première instruction MILH(517) n'est pas activé, la deuxième MILH(517)/MILR(518) opèrera normalement. a MILH 0 Si la condition d'entrée "a" est OFF, les sections de programme A1 et A2 sont toutes deux verrouillées même si la condition d'entrée "b" est ON. A1 b MILH 0 Si la condition d'entrée "a" est ON et "b" est OFF, seule la section de programme A2 est verrouillée. A2 MILC 0 Remarque Les verrouillages MILR(518) opèrent de la même manière si il existe une autre instruction MILH(517) ou MILR(518) avec le même numéro de verrouillage entre une paire d'instructions MILR(518) et MILC(519). S'il existe une instruction MILC(519) avec un autre numéro de verrouillage entre une paire d'instructions MILH(517)/MILR(518) et MILC(519), cette instruction MILC(519) sera ignorée. 217 Chapitre 3-5 Instructions de contrôle de séquences a MILH 0 Si la condition d'entrée "a" est OFF, les sections de programme A1 et A2 sont toutes deux verrouillées. A1 Cette instruction MILC(519) est ignorée. MILC 1 A2 MILC 0 S'il existe une instruction MILH(517) entre une paire d'instructions IL(002) et ILC(003) et que le verrouillage IL(002) est activé, l'instruction MILH(517) n'a aucun effet. Dans ce cas, la section de programme entre IL(002) et ILC(003) sera verrouillée. Si le verrouillage IL(002) n'est pas activé et que la condition d'exécution de l'instruction MILH(517) (b dans ce cas) est OFF, la section de programme entre MILH(517) et ILC(003) sera verrouillée. a IL Si la condition d'entrée "a" est OFF, les sections de programme A1 et A2 sont toutes deux verrouillées. A1 b MILH 0 Si la section de programme n'est pas verrouillée par IL(002) et que "b" est OFF, la section de programme A2 est verrouillée. A2 ILC S'il existe une instruction MILC(519) entre une paire d'instructions IL(002) et ILC(003), l'instruction MILC(519) sera ignorée et toute la section de programme entre MILR(518) et MILC(519) sera verrouillée. a IL Si la condition d'entrée "a" est OFF, les sections de programme A1 et A2 sont toutes deux verrouillées. A1 L'instruction MILC(519) est ignorée. MILC 0 A2 ILC Exemples 218 Si W00000 et W00001 sont tous deux sur ON, les instructions entre MILH(517) avec un numéro de verrouillage 0 et MILC(519) avec un numéro de verrouillage 0 sont normalement exécutées. Chapitre 3-5 Instructions de contrôle de séquences Si W00000 est OFF, les instructions entre MILH(517) avec un numéro de verrouillage 0 et MILC(519) avec un numéro de verrouillage 0 sont verrouillées. Si W00000 est ON et W00001 est OFF, les instructions entre MILH(517) avec un numéro de verrouillage 1 et MILC(519) avec un numéro de verrouillage 1 sont verrouillées. Les autres instructions sont exécutées normalement. W00000 et W00001 ON W00000 W0000 OFF W00000 ON et W00001 OFF MILH 0 010000 Exécution normale. 000200 000001 OFF W00001 MILH 1 OFF 010001 H0000 000002 Exécution normale. Sorties verrouillées. SET 000003 Sorties verrouillées. MILC 1 CNT 1 Maintenues #0010 Exécution normale. MILC 0 3-5-6 JUMP et JUMP END : JMP(004) et JME(005) Objet Symboles du schéma contact Lorsque la condition d'exécution de JMP(004) est OFF, l'exécution du programme passe directement au premier JME(005) du programme avec le même numéro de saut. JMP(004) et JME(005) sont utilisées par paires. JMP(004) N N: Numéro de saut JME(005) N N: Numéro de saut Variations Variations Saut si OFF/Pas de saut si ON Spécification de rafraîchissement immédiat JMP(004) Non prise en charge 219 Chapitre 3-5 Instructions de contrôle de séquences Variations Exécutée à chaque cycle pour la condition ON Spécification de rafraîchissement immédiat Zones de programmes applicables Opérandes Zones de programmes de bloc OK Zones de programmes de pas Non autorisé JME(005) Non prise en charge SousTâches programmes d'interruption OK OK N: Numéro de saut Le numéro de saut doit être compris entre 0000 et 03FF (&0 à &1,023 décimal). Remarque Pour les UC CJ1M-CPU11 et CJ1M-CPU21, le numéro de saut doit être compris entre 0000 et 00FF hex ou &0 et &255 décimal. Spécifications de l’opérande Zone JMP(004) CIO 0000 à CIO 6143 W000 à W511 H000 à H511 A000 à A959 T0000 à T4095 C0000 à C4095 D00000 à D32767 E00000 à E32767 En_00000 à En_32767 (n = 0 à C) Adresses DM/EM indirec- @ D00000 à @ D32767 tes en binaire @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) Adresses DM/EM indirec- *D00000 à *D32767 tes en BCD *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) Constantes #0000 à #03FF (binaire) ou &0 à &1023 (voir remarque.) Registres de données DR0 à DR15 Registres d'index --Adressage indirect à l’aide ,IR0 à ,IR15 de registres d’index –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à IR15 Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque N JME(005) --------------------- --- #0000 à #03FF (binaire) ou &0 à &1023 (voir remarque.) ------- Remarque Pour les UC CJ1M-CPU11 et CJ1M-CPU21, la plage est comprise entre #0000 et #00FF (binaire) ou &0 et &1023 (décimal). Description Si la condition d'exécution pour JMP(004) est ON, aucun saut n'est effectué et le programme est exécuté comme il est écrit. Lorsque la condition d'exécution de JMP(004) est OFF, l'exécution du programme passe directement au premier JME(005) du programme avec le même numéro de saut. Les instructions comprises entre JMP(004) et JME(005) ne sont pas exécutées, de sorte que l'état des sorties entre JMP(004) et JME(005) est maintenu. Dans les programmes de bloc, les ins- 220 Chapitre 3-5 Instructions de contrôle de séquences tructions comprises entre JMP(004) et JME(005) sont sautées indépendamment de l'état de la condition d'exécution. Condition d'exécution Instructions sautées Les instructions de cette section ne sont pas exécutées et l'état de la sortie est conservé. Le temps d'exécution de ces instructions est éliminé. Instructions exécutées Etant donné que toutes les instructions entre JMP(004) et JME(005) sont sautées lorsque la condition d'exécution pour JMP(004) est OFF, le temps de cycle est réduit du temps total d'exécution des instructions sautées. En revanche, le traitement NOP(000) s'effectue pour les instructions comprises entre JMP0(515) et JME0(516), de sorte que le temps de cycle n'est pas réduit d'autant avec ces instructions de saut. Le tableau ci-dessous compare les différentes instructions de saut. Condition d'exécution pour le saut Nombre autorisé Traitement de l'instruction en cas de saut Temps d'exécution de l'instruction en cas de saut Etat des sorties (bits et mots) en cas de saut Etat des temporisateurs opérationnels en cas de saut Traitement dans les programmes de bloc JMP(004) JME(005) OFF 1 024 au total Non exécuté. CJP(510) JME(005) ON CJPN(511) JME(005) OFF Aucun JMP0(515) JME0(516) OFF Aucune limite Traitement NOP(000) Comme instructions NOP(000) Les bits et les mots maintiennent leur état précédent. Les temporisateurs opérationnels poursuivent la temporisation. Saut dans tous les cas. Saut si sur ON. Saut si sur OFF. Non autorisé. Drapeaux (JMP) Nom Drapeau d'erreur Etiquette Fonctionnement ER ON si N n'est pas dans la plage spécifiée de 0000 à 03FF. (voir remarque) ON s'il existe une instruction JMP(004) dans le programme sans une instruction JME(005) avec le même numéro de saut. ON s'il existe une instruction JMP(004) dans la tâche sans une instruction JME(005) avec le même numéro de saut dans la tâche. OFF dans tous les autres cas. Remarque Pour les UC CJ1M-CPU11 et CJ1M-CPU21, la plage est comprise entre 0 et 255 (0000 à 00FF hex). Précautions Toutes les sorties (bits et mots) dans les instructions sautées maintiennent leur état précédent. Les temporisateurs opérationnels (TIM, TIMX(550), TIMH(015), TIMHX(551), TMHH(540) et TMHHX(552)) poursuivent la temporisation car les valeurs actuelles (PV) sont mises à jour même si l'instruction de temporisateur n'est pas exécutée. S'il existe deux ou plusieurs instructions JME(005) avec le même numéro de saut, seule l'instruction comportant l'adresse inférieure est valide. L'instruction JME(005) comportant l'adresse programme supérieure est ignorée. 221 Chapitre 3-5 Instructions de contrôle de séquences Si JME(005) précède JMP(004) dans le programme, les instructions entre JME(005) et JMP(004) seront exécutées de manière répétitive aussi longtemps que la condition d'exécution de JMP(004) est OFF. Une erreur Temps de cycle trop long se produit si la condition d'exécution n'est pas mise sur ON ou si END(001) n'est pas exécutée dans le temps de cycle maximum. La section de programme A est exécutée de manière répétitive aussi longtemps que la condition d'exécution est OFF. Dans les programmes de bloc, les instructions comprises entre JMP(004) et JME(005) sont toujours sautées indépendamment de l'état de la condition d'exécution de JMP(004). Section de programmes de bloc JMP &1 à JME &1 Les paires JMP(004) et JME(005) doivent être dans la même tâche car les sauts entre tâches ne sont pas autorisés. Une erreur se produit si une instruction JME(005) n'est pas programmée dans la même tâche que l'instruction JMP(004) correspondante. Le fonctionnement des instructions DIFU(013), DIFD(014) et des instructions différenciées ne dépend pas uniquement de l'état de la condition d'exécution lorsqu'elles sont programmées entre JMP(004) et JME(005). Lorsque DIFU(013), DIFD(014) ou une instruction différenciée est exécutée dans une section sautée immédiatement après que la condition d'exécution JMP(004) soit passée ON, la condition d'exécution pour l'instruction DIFU(013), DIFD(014) ou l'instruction différenciée est comparée à la conditon d'exécution qui existait avant que le saut ne devienne effectif (c.-à-d. avant que la condition d'exécution de JMP(004) se mette sur OFF). Exemples Fonctionnement de base Lorsque CIO 000000 est OFF dans l'exemple suivant, les instructions entre JMP(004) et JME(005) ne sont pas exécutées et les sorties maintiennent leur état précédent. Si CIO 000000 est ON dans l'exemple suivant, les instructions entre JMP(004) et JME(005) sont normalement exécutées. 222 Chapitre 3-5 Instructions de contrôle de séquences &1 CIO 000000 CIO 000000 OFF ON Exécution normale Instructions non exécutées. (les sorties restent inchangées.) &1 3-5-7 CONDITIONAL JUMP : CJP(510)/CJPN(511) Objet Le fonctionnement de CJP(510) est fondamentalement à l'opposé de celui de JMP(004). Lorsque la condition d'exécution de CJP(510) est ON, l'exécution du programme passe directement au premier JME(005) du programme avec le même numéro de saut. CJP(510) et JME(005) sont utilisées par paires. Le fonctionnement de CJPN(511) est presque identique à celui de JMP(004). Lorsque la condition d'exécution de CJP(004) est OFF, l'exécution du programme passe directement au premier JME(005) du programme avec le même numéro de saut. CJPN(511) et JME(005) sont utilisées par paires. Symboles du schéma contact CJP(510) N N: Numéro de saut CJPN(511) N N: Numéro de saut Variations Variations Saut si ON/Pas de saut si OFF Spécification de rafraîchissement immédiat CJP(510) Non prise en charge 223 Chapitre 3-5 Instructions de contrôle de séquences Variations Saut si OFF/Pas de saut si ON Spécification de rafraîchissement immédiat CJPN(511) Non prise en charge Variations Exécutée à chaque cycle pour la condition ON JME(005) Spécification de rafraîchissement immédiat Non prise en charge Zones de programmes applicables Opérandes Zones de programmes de bloc OK Zones de programmes de pas Non autorisé SousTâches programmes d'interruption OK OK N : Numéro de saut Le numéro de saut doit être compris entre 0000 et 03FF (0 à 1 023 décimal). Remarque Pour les UC CJ1M-CPU11 et CJ1M-CPU21, le numéro de saut doit être compris entre 0000 et 00FF hex ou &0 et &255 décimal. Spécifications de l’opérande Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index CJP(510) CIO 0000 à CIO 6143 W000 à W511 H000 à H511 N CJPN(511) JME(005) ------- A000 à A959 T0000 à T4095 ----- C0000 à C4095 D00000 à D32767 E00000 à E32767 ------- En_00000 à En_32767 (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) #0000 à #03FF (binaire) ou &0 à &1023 (voir remarque.) --- DR0 à DR15 --,IR0 à ,IR15 –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à IR15 --- --- #0000 à #03FF (binaire) ou &0 à &1023 (voir remarque.) ------- Remarque Pour les UC CJ1M-CPU11 et CJ1M-CPU21, la plage est comprise entre #0000 et #00FF (binaire) ou &0 et &1023 (décimal). 224 Chapitre 3-5 Instructions de contrôle de séquences Description Le fonctionnement de CJP(510) et CJPN(511) diffère uniquement au niveau de la condition d'exécution. CJP(510) passe au premier JME(005) si la condition d'exécution est ON tandis que CJPN(511) passe au premier JME(005) si la condition d'exécution est OFF. Etant donné que les instructions sautées ne sont pas exécutées, le temps de cycle est réduit du temps total d'exécution des instructions sautées. Fonctionnement de CJP(510) Si la condition d'exécution pour CPJ(510) est OFF, aucun saut n'est effectué et le programme est exécuté comme il est écrit. Lorsque la condition d'exécution de CJP(510) est ON, l'exécution du programme passe directement au premier JME(005) du programme avec le même numéro de saut. Condition Condition d'exécution OFF d'exécution ON Instructions sautées Instructions exécutées Les instructions de cette section ne sont pas exécutées et l'état de la sortie est conservé. Le temps d'exécution de ces instructions est éliminé. Fonctionnement de CPJN(511) Si la condition d'exécution pour CPJN(511) est ON, aucun saut n'est effectué et le programme est exécuté comme il est écrit. Lorsque la condition d'exécution de CJPN(511) est sur OFF, l'exécution du programme passe directement au premier JME(005) du programme avec le même numéro de saut. Condition Condition d'exécution ON d'exécution OFF Instructions sautées Instructions exécutées Drapeaux Les instructions de cette section ne sont pas exécutées et l'état de la sortie est conservé. Le temps d'exécution de ces instructions est éliminé. Le tableau ci-dessous indique les drapeaux concernés par les instructions CJP(510) et CJPN(511). Nom Drapeau d'erreur Etiquette Fonctionnement ER ON s'il n'existe pas de JME(005) avec le même numéro de saut que CJP(510) ou CJPN(511). (voir remarque) ON si N n'est pas dans la plage spécifiée de 0000 à 03FF. ON s'il existe une instruction CJP(510) ou CJPN(511) dans la tâche sans une instruction JME(005) avec le même numéro de saut. OFF dans tous les autres cas. Remarque Pour les UC CJ1M-CPU11 et CJ1M-CPU21, le numéro de saut doit être compris entre 0 et 255 (0000 à 00FF hex). 225 Instructions de contrôle de séquences Précautions Chapitre 3-5 Toutes les sorties (bits et mots) dans les instructions sautées maintiennent leur état précédent. Les temporisateurs opérationnels (TIM, TIMX(550), TIMH(015), TIMHX(551), TMHH(540) et TMHHX(552)) poursuivent la temporisation car les valeurs actuelles (PV) sont mises à jour même si l'instruction de temporisateur n'est pas exécutée. S'il existe deux ou plusieurs instructions JME(005) avec le même numéro de saut, seule l'instruction comportant l'adresse inférieure est valide. L'instruction JME(005) comportant l'adresse programme supérieure est ignorée. Si JME(005) précède l'instruction CJP(510) ou CJPN(511) dans le programme, les instructions comprises entre ces instructions seront exécutées de manière répétitive aussi longtemps que la condition d'exécution reste sur OFF (CJP(510)) ou sur ON (CJPN(511)). Une erreur Temps de cycle trop long se produira si le saut n'est pas terminé en changeant la condition d'exécution de END(001) dans le temps de cycle maximum. Les instructions CJP(510) ou CJPN(511) opèrent normalement dans des programmes de bloc. Lorsque la condition d'exécution de CJP(510) est ON ou la condition d'exécution de CJPN(511) est OFF, l'exécution du programme passera directement à l'instruction JME sans exécuter les instructions entre CJP(510)/CJPN(511) et JME. Aucun temps d'exécution ne sera requis pour ces instructions et le temps de cycle sera donc réduit. Lorsque la condition d'exécution de JMP0 est OFF, le traitement NOP est exécuté entreJMP0 et JME0, nécessitant ainsi un temps d'exécution. Le temps de cycle ne sera, dès lors, pas réduit. Lorsqu’une instruction CJP(510) ou CJPN(511) est programmée dans une tâche, il doit exister une instruction JME(005) avec le même numéro de saut car les sauts entre tâches ne sont pas autorisés. Une erreur se produit si une instruction JME(005) correspondante n'est pas programmée dans la même tâche. Le fonctionnement des instructions DIFU(013), DIFD(014) et des instructions différenciées ne dépend pas uniquement de l'état de la condition d'exécution lorsqu'elles sont programmées dans une section de programme sautée. Lorsque DIFU(013), DIFD(014) ou une instruction différenciée est exécutée dans une section sautée immédiatement après que la condition d'exécution de CJP(510) soit passée sur OFF (sur ON pour CJPN(511)), la condition d'exécution pour l'instruction DIFU(013), DIFD(014) ou l'instruction différenciée est comparée à la conditon d'exécution qui existait avant que le saut ne devienne effectif. Exemple 226 Lorsque CIO 000000 est sur ON dans l'exemple suivant, les instructions entre CJP(510) et JME(005) ne sont pas exécutées et les sorties maintiennent leur état précédent. Si CIO 000000 est sur OFF dans l'exemple suivant, les instructions entre CJP(510) et JME(005) sont normalement exécutées. Chapitre 3-5 Instructions de contrôle de séquences &1 CIO 000000 CIO 000000 ON OFF Instructions non exécutées. (les sorties restent inchangées.) Exécution normale &1 Remarque Pour CJPN(511), l'état ON/OFF de CIO 000000 serait inversé. 3-5-8 MULTIPLE JUMP et JUMP END : JMP0(515) et JME0(516) Objet Symboles du schéma contact Lorsque la condition d'exécution de JMP0(515) est OFF, toutes les instructions situées entre JMP0(515) et la prochaine JME0(516) dans le programme sont traitées comme NOP(000). Utilisez JMP0(515) et JME0(516) par paires. Le nombre de paires pouvant être utilisées dans le programme est illimité. JMP0(515) JME0(516) Variations Variations Saut si OFF/Pas de saut si ON Spécification de rafraîchissement immédiat JMP0(515) Non prise en charge Variations Exécutée à chaque cycle pour la condition ON JME0(516) Spécification de rafraîchissement immédiat Non prise en charge Zones de programmes applicables Zones de programmes de bloc Non autorisé Zones de programmes de pas Non autorisé SousTâches programmes d'interruption OK OK 227 Chapitre 3-5 Instructions de contrôle de séquences Description Si la condition d'exécution pour JMP0(515) est ON, aucun saut n'est effectué et le programme est exécuté comme il est écrit. Lorsque la condition d'exécution de JMP0(515) est OFF, toutes les instructions situées entre JMP0(515) et la prochaine JME0(516) dans le programme sont traitées comme NOP(000). A la différence de JMP(004), CJP(510) et CJPN(511), JMP0(515) n'utilise pas de numéros de saut de sorte que ces instructions peuvent être placées n'importe où dans le programme. Condition d'exécution ON Condition d'exécution OFF Instructions sautées Instructions exécutées Les instructions sautées sont traitées comme NOP(000). Les temps d'exécution Condition des instructions sont les mêmes que pour Condition d'exécution b sur ON d'exécution b NOP(000). sur OFF Instructions exécutées Instructions sautées A la différence de JMP(004), CJP(510) et CJPN(511) qui passent directement à la prochaine instruction JME(005) du programme, toutes les instructions entre JMP0(515) et JME0(516) sont exécutées comme NOP(000). Le temps d'exécution des instructions sautées est réduit, mais non supprimé. Les instructions sautées proprement dites ne sont pas exécutées et leurs sorties (bits et mots) maintiennent leur état précédent. Précautions Des paires multiples d'instructions JMP0(515) et JME0(516) peuvent être utilisées dans le programme mais les paires ne peuvent être imbriquées. JMP0(515) et JME0(516) ne peuvent être utilisées dans les programmes de bloc. Les paires JMP0(515) et JME0(516) doivent être dans les mêmes tâches car les sauts entre tâches ne sont pas autorisés. Le fonctionnement des instructions DIFU(013), DIFD(014) et des instructions différenciées ne dépend pas uniquement de l'état de la condition d'exécution lorsqu'elles sont programmées entre JMP0(515) et JME0(516). Lorsque DIFU(013), DIFD(014) ou une instruction différenciée est exécutée dans une section sautée immédiatement après que la condition d'exécution de JMP0(515) passe ON, la condition d'exécution pour l'instruction DIFU(013), DIFD(014) ou l'instruction différenciée est comparée à la conditon d'exécution qui existait avant que le saut ne devienne effectif (c.-à-d. avant que la condition d'exécution de JMP0(515) se mette sur OFF). Exemple 228 Lorsque CIO 000000 est sur OFF dans l'exemple suivant, les instructions entre JMP0(515) et JME0(516) sont traitées comme NOP(000) et les sorties maintiennent leur état précédent. Si CIO 000000 est sur ON dans l'exemple suivant, les instructions entre JMP0(515) et JME0(516) sont normalement exécutées. Chapitre 3-5 Instructions de contrôle de séquences CIO 000000 CIO 000000 ON OFF Exécution Instructions traitées normale comme NOP(000). (les sorties restent inchangées.) 3-5-9 FOR-NEXT LOOPS : FOR(512)/NEXT(513) Objet Symboles du schéma contact Les instructions situées entre FOR(512) et NEXT(513) sont répétées un nombre spécifié de fois. FOR(512) et NEXT(513) sont utilisées par paires. FOR(512) N N: Nombre de boucles NEXT(513) Variations Variations Exécutée à chaque cycle pour la condition ON FOR(512) Exécutée à chaque cycle pour la condition ON NEXT(513) Spécification de rafraîchissement immédiat Non prise en charge Zones de programmes applicables Opérandes Zones de programmes de bloc Non autorisé Zones de programmes de pas OK SousTâches programmes d'interruption OK OK N: Nombre de boucles Le nombre de boucles doit être compris entre 0000 et FFFF (0 à 65 535 décimal). 229 Chapitre 3-5 Instructions de contrôle de séquences Spécifications de l’opérande Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index Description N CIO 0000 à CIO 6143 W000 à W511 H000 à H511 A000 à A959 T0000 à T4095 C0000 à C4095 D00000 à D32767 E00000 à E32767 En_00000 à En_32767 (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) #0000 à #FFFF (binaire) ou &0 à &65 535 DR0 à DR15 --,IR0 à ,IR15 –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 Les instructions comprises entre FOR(512) et NEXT(513) sont exécutées N fois ; l'exécution du programme se poursuit ensuite avec l'instruction suivant NEXT(513). L'instruction BREAK(514) peut servir à annuler la boucle. Si N est réglé sur 0, les instructions entre FOR(512) et NEXT(513) sont traitées comme des instructions NOP(000). Les boucles peuvent être utilisées pour traiter des tables de données avec un minimum de programmation. Répété N fois Section de programme répétée Les boucles FOR-NEXT peuvent être imbriquées jusqu'à 15 niveaux. Dans l'exemple ci-dessous, les sections de programme A, B et C sont exécutées comme suit : A → B → B → C, A → B → B → C et A → B → B → C 230 Chapitre 3-5 Instructions de contrôle de séquences &3 &2 Utilisez BREAK(514) pour sortir d'une boucle FOR-NEXT. Plusieurs instructions BREAK(514) (nombre de niveaux imbriqués) sont nécessaires pour sortir de boucles imbriquées. Les instructions restantes de la boucle après BREAK(514) sont traitées comme des instructions NOP(000). &3 Sort d'une boucle si la condition a est ON. Les instructions restantes sont traitées comme 1 2 NOP(000). &3 &2 Interrompt la boucle FOR-NEXT 2. Interrompt la boucle FOR-NEXT 1. Autres méthodes de boucle Il existe deux méthodes de répéter une section de programme jusqu'à la saisie d'une condition d'exécution donnée. 1,2,3... 1. Boucle FOR-NEXT avec BREAK Lancez une boucle FOR-NEXT avec un maximum de N répétitions. Programmez BREAK(514) dans la boucle avec la condition d'exécution souhaitée. La boucle se termine avant les N répétitions si la condition d'exécution est saisie. 2. Boucle JME(005)-JMP(004) Programmez une boucle au moyen de JME(005) avant JMP(004). Les instructions comprises entre JME(005) et JMP(004) sont exécutées de manière répétitive aussi longtemps que la condition d'exécution de JMP(004) est OFF. (Une erreur Temps de cycle trop long se produit si la condition d'exécution n'est pas mise sur ON ou si END(001) n'est pas exécutée dans le temps de cycle maximum.) 231 Chapitre 3-5 Instructions de contrôle de séquences Drapeaux Nom Etiquette Fonctionnement Drapeau d'erreur ER ON si plus de 15 boucles sont imbriquées. OFF dans tous les autres cas. Drapeau d'égalité = OFF Drapeau négatif N OFF Précautions Programmez les instructions FOR(512) et NEXT(513) dans la même tâche. L'exécution n'est pas répétée si ces instructions ne sont pas dans la même tâche. Une instruction de saut telle que JMP(004) peut être exécutée dans une boucle FOR-NEXT, mais ne sautez pas au delà de la boucle FOR-NEXT. Les instructions suivantes ne peuvent pas être utilisées dans les boucles FOR-NEXT : • Instructions de programmation de bloc • MULTIPLE JUMP et JUMP END : JMP(515) et JME(516) • STEP DEFINE et STEP START : STEP(008)/SNXT(009) Remarque Si une boucle se répète dans un cycle et qu'un bit différencié est utilisé dans la boucle FOR-NEXT, ce bit sera toujours ON ou toujours OFF dans cette boucle. Exemple Dans l'exemple suivant, la section de programme en boucle transfère le contenu de D00100 à l'adresse indiquée dans D00200 et incrémente ensuite le contenu de D00200 de 1. &3 Répété 3 fois. D00100 @D00200 D00200 #0000 3-5-10 BREAK LOOP : BREAK(514) Objet Symbole du schéma contact Programmé dans une boucle FOR-NEXT de façon à annuler l'exécution de la boucle pour une condition d'exécution donnée. Les instructions restantes de la boucle sont traitées comme des instructions NOP(000). BREAK(514) Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat 232 BREAK(514) Non prise en charge Non prise en charge Non prise en charge Chapitre 3-6 Instructions de temporisateur et compteur Zones de programmes applicables Zones de programmes de bloc Non autorisé Description Zones de programmes de pas OK SousTâches programmes d'interruption OK OK Programmez l'instruction BREAK(514) entre FOR(512) et NEXT(513) pour annuler la boucle FOR-NEXT lorsque BREAK(514) est exécutée. Lorsque l'instruction BREAK(514) est exécutée, les instructions restantes jusque NEXT(513) sont traitées comme NOP(000). N répétitions Condition a ON Fin des répétitions forcée. Traité comme NOP(000). Drapeaux Nom Drapeau d'erreur Drapeau d'égalité Drapeau négatif Précautions Etiquette ER OFF = OFF N OFF Fonctionnement Une instruction BREAK(514) n'annule qu'une seule boucle, de sorte que plusieurs instructions BREAK(514) (nombre de niveaux imbriqués) sont nécessaires pour sortir de boucles imbriquées. BREAK(514) ne peut être utilisée que dans une boucle FOR-NEXT. 3-6 Instructions de temporisateur et compteur Cette section décrit les instructions utilisées pour définir et traiter les temporisateurs et les compteurs. Instruction TIMER HIGH-SPEED TIMER ONE-MS TIMER ACCUMULATIVE TIMER LONG TIMER MULTI-OUTPUT TIMER COUNTER REVERSIBLE COUNTER RESET TIMER/COUNTER Mnémonique TIM/TIMX TIMH/TIMHX TMHH/TIMHHX TTIM/TTIMX TIML/TIMLX MTIM/MTIMX CNT/CNTX CNTR/CNTRX CNR/CNRX Code fonction ---/551 015/551 540/552 087/555 542/553 543/554 ---/546 012/548 545/547 Page 235 240 244 247 251 254 260 263 267 Méthodes de rafraîchissement de la valeur actuelle de temporisateur/compteur ■ Aperçu Les instructions de temporisateur et compteur prises en charge par les UC CS1 et CJ1 recourent toutes aux données BCD et l'ensemble des valeurs de consigne correspondantes sont saisies au moyen de BCD. La méthode de rafraîchissement peut être configurée en BCD ou binaire pour d'autres UC des séries CS et CJ (c.-à-d. les UC CS1-H, CJ1-H, CJ1M et CS1D ; voir remarques 1 et 2). 233 Chapitre 3-6 Instructions de temporisateur et compteur L'utilisation des données binaires plutôt que des données BCD permet d'augmenter la plage des valeurs de consigne (SV) pour les temporisateurs et compteurs de 0 - 9999 à 0 - 65535. Cette méthode permet également d'utiliser les données binaires calculées par d'autres instructions directement comme SV de temporisateur/compteur. La méthode de rafraîchissement est valide même lors de la configuration indirecte d'une SV (c.-à-d. au moyen du contenu d'un mot mémoire). (En d'autres termes, le contenu du mot adressé est pris comme données BCD ou binaires en fonction de la méthode de rafraîchissement définie.) Consultez le Manuel de programmation de la série CS/CJ pour plus de détails sur les méthodes de rafraîchissement. Remarque 1. Dans le cas des UC CS1-H et CJ1-H fabriquées avant le 31 mai 2002, les instructions binaires sont affichées sur la console de programmation avec le code mnémonique de l'instruction équivalente pour l'opération BCD. (Par exemple, TIMX0 &16 s'affiche sous la forme de TIM0 &16.) L'instruction opère toutefois en utilisant le mode binaire. 2. La méthode de rafraîchissement ne peut être sélectionnée qu'à partir du CX-Programmer version 3.0 ou supérieure. Elle ne peut être sélectionnée à partir de la version 2.1 ou antérieure, ni à partir d'une console de programmation. 3. Les programmes utilisateur qui utilisent le mode de rafraîchissement binaire ne peuvent être lus par CX-Programmer version 2.1 ou antérieure. Ils ne peuvent être lus qu'en passant au mode BCD. ■ Instructions utilisables Catégorie Instructions de temporisateur et compteur Instructions de programmation de bloc Instruction TIMER HIGH-SPEED TIMER ONE-MS TIMER ACCUMULATIVE TIMER LONG TIMER MULTI-OUTPUT TIMER COUNTER REVERSIBLE COUNTER RESET TIMER/COUNTER TIMER WAIT HIGH-SPEED TIMER WAIT COUNTER WAIT Mnémonique BCD Binaire TIM TIMX(550) TIMH(015) TIMHX(551) TMHH(540) TMHHX(552) TTIM(087) TTIMX(555) TIML(542) TIMLX(553) MTIM(543) MTIMX(554) CNT CNTX(546) CNTR(012) CNTRX(548) CNR(545) CNRX(547) TIMW(813) TIMWX(816) TMHW(815) TMHWX(817) CNTW(814) CNTWX(818) Spécifications standard de temporisateur Le tableau ci-dessous indique les spécifications standard des temporisateurs. TIM/TIMX(550) Méthode de temporisation Unités de temporisation SV max. Sorties/ instruction 234 TIMH(015)/ TMHH(540)/ TTIM(087)/ TIMHX(551) TMHHX(552) TTIMX(555) Décrémentation Décrémentation Décrémentation Incrémentation TIML(542)/ TIMLX(553) Décrémentation MTIM(543)/ MTIMX(554) Incrémentation 0,1 s 0,01 s TIM : 999,9 s TIMH : 99,99 s TIMX: 6 553,5 s TIMHX : 655.35 s 1 1 0,001 s 0,1 s 0,1 s 0,1 s TMHH : 9.999 s TMHHX : 65.535 s 1 TTIM : 999,9 s TTIMX : 6,553.5 s 1 TIML : 115 jours TIMLX : 49,710 jours 1 MTIM : 999,9 s MTIMX : 6,553.5 s 8 Chapitre 3-6 Instructions de temporisateur et compteur TIM/TIMX(550) Numéros de temporisateur Mise à jour drapeau de fin Mise à jour PV de temporisateur VaDraleur peaux après de fin réini- PV tialisation Utilisé TIMH(015)/ TIMHX(551) Utilisé TMHH(540)/ TMHHX(552) Utilisé A l'exécution A l'exécution Voir remarque 1. Voir remarque 2. OFF SV Remarque TTIM(087)/ TTIMX(555) Utilisé TIML(542)/ TIMLX(553) Non utilisé MTIM(543)/ MTIMX(554) Non utilisé A l'interruption A l'exécution toutes les 1 ms Toutes les 1 ms A l'exécution A l'exécution A l'exécution A l'exécution A l'exécution OFF OFF OFF OFF OFF SV SV 0 SV 0 1. Les valeurs actuelles (PV) de TIM sont mises à jour à l'exécution, à la fin de l'exécution du programme à chaque cycle ou toutes les 80 ms par interruption si la durée du cycle excède 80 ms. 2. Les valeurs actuelles de TIMH(015)/TIMHX(551) sont mises à jour à l'exécution, à la fin de l'exécution du programme à chaque cycle et toutes les 10 ms par interruption. Fonctionnement du temporisateur Le tableau ci-dessous indique les effets des conditions d'utilisation et de programmation sur le fonctionnement des temporisateurs. TIM/ TIMH(015)/ TMHH(540)/ TTIM(087)/ TIML(542)/ MTIM(543)/ TIMX(550) TIMHX(551) TMHHX(552) TTIMX(555) TIMLX(553) MTIMX(554) Changement de mode de PV = 0 ----fonctionnement Drapeau de fin = OFF Interruption d'alimentaPV = 0 ----tion/réinitialisation Drapeau de fin = OFF Exécution de CNR(545)/ Binaire : PV = FFFF, drapeau de fin = OFF Non utilisable Non utilisable CNRX(547) BCD : PV = FFFF ou 9999, drapeau de fin = OFF Fonctionnement dans Les temporisateurs opérationnels L'état du temporisateur est maintenu. une section de poursuivent la temporisation. programme sautée (JMP(004)-JME(005)) L'état du Fonctionnement dans PV = SV L'état du tem- PV = SV une section de Drapeau de fin = OFF porisateur est Drapeau de fin temporisateur est maintenu. = OFF programme verrouillée maintenu. (IL(002)-ILC(003)) Set forcé Drapeaux de ON ----fin PV Mis à 0. ----Reset Drapeaux de OFF ----forcé fin PV Réinitialisé à SV. Mis à 0. ----- 3-6-1 Objet TIMER : TIM/TIMX(550) TIM ou TIMX(550) effectue une temporisation décroissante par pas de 0,1 s. La plage de configuration pour la valeur de consigne (SV) va de 0 à 999,9 s pour TIM et de 0 à 6 553,5 s pour TIMX(550). La précision du temporisateur est comprise entre 0 et 0,01 s. Remarque La précision du temporisateur pour les UC CS1D est de 10 ms + temps de cycle. 235 Chapitre 3-6 Instructions de temporisateur et compteur Symbole du schéma contact Symbole Méthode de mise à jour PV BCD N: 0000 à 4095 (décimal) S: #0000 à #9999 (BCD) TIM N S N: Numéro de temporisateur S: Valeur de consigne Binaire TIMX(550) N S Opérandes N: Numéro de temporisateur S: Valeur de consigne N: 00000 à 4095 (décimal) S: &0 à &65535 (décimal) #0000 à #FFFF (hex) Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Opérandes Zones de programmes de bloc Non autorisé Zones de programmes de pas OK TIM/TIMX(550) Non prise en charge. Non prise en charge. Non prise en charge. SousTâches programmes d'interruption OK Non autorisé N: Numéro de temporisateur Le numéro de temporisateur doit être compris entre 0000 et 4095 (décimal). S: valeur de consigne La valeur de consigne doit être comprise entre #0000 et 9999 (BCD). (Si la valeur de consigne est réglée sur #0000, le drapeau de fin se met sur ON lorsque TIM/TIMX(550) est exécutée.) Spécifications de l’opérande 236 Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque N --------0000 à 4095 (décimal) --------- Adresses DM/EM indirectes en binaire --- S CIO 0000 à CIO 6143 W000 à W511 H000 à H511 A000 à A959 T0000 à T4095 C0000 à C4095 D00000 à D32767 E00000 à E32767 En_00000 à En_32767 (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) Chapitre 3-6 Instructions de temporisateur et compteur Description Zone Adresses DM/EM indirectes en BCD --- N S *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_032767 (n = 0 à C) BCD : #0000 à 9999 (BCD) “&” ne peut pas être utilisé. Binaire : &0 à &65535 (décimal) #0000 à #FFFF (hex) DR0 à DR15 --- Constantes --- Registres de données Registres d'index Adressage indirect à l’aide de registres d’index ----,IR0 à ,IR15 –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à IR15 Si l'entrée de temporisateur est OFF, le temporisateur spécifié par N est réinitialisé, c.-à-d. que la PV de temporisateur est réinitialisée à la SV et son drapeau de fin est mis sur OFF. Si l'entrée de temporisateur passe de OFF à ON, TIM/TIMX(550) commence à décrémenter la PV. La PV poursuit la temporisation décroissante aussi longtemps que l'entrée de temporisateur reste sur ON et le drapeau de fin de temporisation se met sur ON lorsque la PV atteint 0000. L'état de la PV de temporisateur et du drapeau de fin est maintenu à l'expiration de la temporisation. Pour relancer le temporisateur, l'entrée de temporisateur doit être mise sur OFF et à nouveau sur ON, ou la PV de temporisateur doit être changée en une valeur non nulle (par MOV(021), par exemple). Entrée de temporisateur PV de temporisateur SV Drapeau de fin Le schéma séquentiel ci-dessous indique le comportement de la PV de temporisateur et du drapeau de fin lorsque l'entrée de temporisateur est mise sur OFF avant l'expiration de la temporisation. Entrée de temporisateur PV de temporisateur SV Drapeau de fin Drapeaux Nom Drapeau d'erreur Drapeau d'égalité Drapeau négatif Etiquette Fonctionnement ER ON si N est adressé indirectement via un registre d'index mais l'adresse dans le registre d'index ne correspond pas à l'adresse PV d'un temporisateur. ON si en mode BCD et si S ne contient pas de données BCD. OFF dans tous les autres cas. = OFF ou inchangé (voir remarque.) N OFF ou inchangé (voir remarque.) 237 Chapitre 3-6 Instructions de temporisateur et compteur Remarque Dans les UC CS1 et CJ1, ils passent OFF. Dans les UC CS1-H, CJ1-H, CJ1M et CS1D, ces drapeaux restent inchangés. Précautions Les numéros de temporisateur sont partagés par les instructions TIM, TIMX(550), TIMH(015), TIMHX(551), TMHH(540), TIMHHX(552), TTIM(087), TTIMX(555), TIMW(813), TIMWX(816), TMHW(815) et TIMHWX(817). Si deux temporisateurs partagent le même numéro de temporisateur mais ne sont pas utilisés simultanément, une erreur de duplication est générée à la vérification du programme mais les temporisateurs fonctionnent normalement. Les temporisateurs qui partagent le même numéro de temporisateur ne fonctionnent pas correctement s'ils sont utilisés simultanément. Les temporisateurs créés avec des numéros de temporisateur de 2048 à 4095 ne fonctionnent pas correctement si le temps de cycle de l'UC excède 80 ms. Utilisez des numéros de temporisateur de 0000 à 2047 lorsque le temps de cycle est supérieur à 80 ms. La valeur actuelle (PV) des temporisateurs programmés avec des numéros de temporisateur de 0000 à 2047 est mise à jour même si le temporisateur est en attente. La valeur actuelle des temporisateurs programmés avec des numéros de temporisateur de 2048 à 4095 est maintenue si le temporisateur est en attente. Les temporisateurs sont réinitialisés ou mis en pause dans les cas suivants. (Lorsqu'un temporisateur est réinitialisé, sa PV est réinitialisée à la SV et son drapeau de fin est mis sur OFF.) Condition Le mode de fonctionnement passe de RUN ou MONITOR à PROGRAM, ou vice versa.1 Interruption de l'alimentation et réinitialisation2 Exécution de CNR(545)/CNRX(547), instructions RESET TIMER/COUNTER 3 Fonctionnement dans une section de programme verrouillée (IL(002)-ILC(003)) Fonctionnement dans une section de programme sautée (JMP(004)-JME(005)) Remarque PV 0000 Drapeau de fin OFF 0000 OFF BCD : 9999 Binaire : FFFF OFF Réinitialisé à SV. OFF La PV continue à décrémenter. Maintient l'état précédent. 1. Si le bit de maintien IOM (A50012) est mis sur ON, l'état des drapeaux de fin et des PV de temporisateur est maintenu lorsque le mode de fonctionnement est modifié. 2. Si le bit de maintien IOM (A50012) est mis sur ON et que l'état du bit de maintien IOM proprement dit est protégé dans la configuration de l'API, l'état des drapeaux de fin et des PV de temporisateur est maintenu même en cas d'interruption de l'alimentation. 3. La PV est réglée à la SV lorsque TIM/TIMX(550) est exécutée. Si TIM/TIMX(550) est dans une section de programme comprise entre IL(002) et ILC(003) et que la section de programme est verrouillée, la PV est réinitialisée à la SV et le drapeau de fin est mis sur OFF. Si un temporisateur opérationnel TIM/TIMX(550) créé avec un numéro de temporisateur compris entre 0000 et 2047 est dans une section de programme sautée (JMP(004), CJMP(510), CJPN(511), JME(005)), la PV de temporisateur poursuit la temporisation. (voir remarque.) L'instruction TIM/ TIMX(550) sautée n'est pas exécutée mais la PV est mise à jour à chaque cycle après exécution de toutes les tâches. 238 Chapitre 3-6 Instructions de temporisateur et compteur Remarque Dans le cas des UC CS1D, la PV ne sera pas mise à jour dans l'exemple cidessus. Si un temporisateur TIM/TIMX(550) est forcé à 1, son drapeau de fin est mis sur ON et sa PV sera réglée à 0000. Si un temporisateur TIM/TIMX(550) est réinitialisé de force, son drapeau de fin est mis sur OFF et sa PV est réinitialisée à la SV. Le fonctionnement du drapeau d'égalité et du drapeau négatif dépend du modèle d'UC. Consultez la sectionDrapeaux ci-dessus pour plus de détails. Le drapeau de fin de temporisation n'est rafraîchi que lorsque TIM/TIMX(550) est exécutée, de sorte qu'un délai d'un cycle maximum peut être requis pour que le drapeau de fin se mette sur ON à l'expiration de la temporisation. Si l'édition en ligne est utilisée pour convertir un temporisateur en un autre type de temporisateur avec le même numéro de temporisateur (tel que TIM/ TIMX(550) ↔ TIMH(015)/TIMHX(551) ou TIM/TIMX(550) ↔ TMHH(540)/ TMHHX(552)), n'oubliez pas de réinitiliser le drapeau de fin. Le temporisateur ne fonctionnera pas correctement aussi longtemps que le drapeau de fin n'est pas réinitialisé. La PV et le drapeau de fin d'une instruction TIM/TIMX(550) peuvent être mis à jour des différentes façons suivantes en fonction du numéro de temporisateur utilisé. Temporisateurs créés avec des numéros de temporisateur de 0000 à 2047 Exécution de TIM/ TIMX(550) La PV est mise à jour chaque fois que TIM/TIMX(550) est exécutée. Le drapeau de fin est mis sur ON si la PV est 0000. Le drapeau de fin est mis sur OFF si la PV n’est pas 0000. Après exécution de toutes La PV est également mise à jour à chaque cycle à la fin les tâches de l'exécution du programme. Mise à jour par intervalle Si le temps de cycle excède 80 ms, la PV de de 80 ms temporisateur est mise à jour toutes les 80 ms. Temporisateurs créés avec des numéros de temporisateur de 2048 à 4095 Exécution de TIM La PV est mise à jour chaque fois que TIM est exécutée. Le drapeau de fin est mis sur ON si la PV est 0000. Le drapeau de fin est mis sur OFF si la PV n’est pas 0000. Les temporisateurs sont réinitialisés (PV = SV, drapeau de fin OFF) suite à des interruptions d'alimentation sauf si le bit de maintien IOM (A50012) est ON et que le bit est protégé dans la configuration de l'API. Il est également possible d'utiliser un bit d'impulsion horloge et une instruction de compteur pour programmer un temporisateur qui maintient sa PV en cas d'interruption d'alimentation, comme l'indique le schéma ci-dessous. Condition d'exécution Bit impulsion horloge 1 s Entrée de comptage Entrée Reset Exemple Si l'entrée de temporisateur CIO 000000 passe de OFF à ON dans l'exemple suivant, la PV de temporisateur commence à décrémenter à partir de la SV. Le drapeau de fin de temporisation T0000 se met sur ON lorsque la PV atteint 0000. 239 Chapitre 3-6 Instructions de temporisateur et compteur Si CIO 000000 se met sur OFF, la PV de temporisateur est réinitialisée à la SV et le drapeau de fin se met sur OFF. Entrée de temporisateur CIO 000000 PV de temporisateur T0000 Temporisateur Drapeau de fin T0000 3-6-2 HIGH-SPEED TIMER : TIMH(015)/TIMHX(551) Objet TIMH(015)/TIMHX(551) effectue une temporisation décroissante par pas de 10 ms. La plage de configuration pour la valeur de consigne (SV) va de 0 à 99,99 s pour TIMH(015) et de 0 à 655,35 s pour TIMHX(551). La précision du temporisateur est comprise entre 0 et 0,01 s. Remarque La précision du temporisateur pour les UC CS1D est de 10 ms + temps de cycle. Symbole du schéma contact Méthode de mise à jour PV BCD Symbole Opérandes N: 0000 à 4095 (décimal) S: #0000 à #9999 (BCD) TIMH(015) N N: Numéro de temporisateur S S: Valeur de consigne Binaire N: 00000 à 4095 (décimal) S: &0 à &65535 (décimal) #0000 à #FFFF (hex) TIMHX(551) N N: Numéro de temporisateur S S: Valeur de consigne Variations Variations Exécutée à chaque cycle pour la condition ON TIMH(015)/ TIMHX(551) Exécutée une fois pour la différentiation sur Non prise en front montant charge. Exécutée une fois pour la différentiation sur Non prise en front descendant charge. Spécification de rafraîchissement immédiat Non prise en charge. Zones de programmes applicables 240 Zones de programmes de bloc Non autorisé Zones de programmes de pas OK SousTâches programmes d'interruption OK Non autorisé Chapitre 3-6 Instructions de temporisateur et compteur Opérandes N: Numéro de temporisateur Le numéro de temporisateur doit être compris entre 0000 et 4095 (décimal). S: valeur de consigne La valeur de consigne doit être comprise entre #0000 et 9999 en mode BCD. Spécifications de l’opérande Description Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque N --------0000 à 4095 (décimal) --------- S CIO 0000 à CIO 6143 W000 à W511 H000 à H511 A000 à A959 T0000 à T4095 C0000 à C4095 D00000 à D32767 E00000 à E32767 En_00000 à En_32767 (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) BCD : #0000 à 9999 (BCD) “&” ne peut être utilisé. Binaire : &0 à &65535 (décimal) #0000 à #FFFF (hex) DR0 à DR15 --- Adresses DM/EM indirectes en binaire --- Adresses DM/EM indirectes en BCD --- Constantes --- Registres de données Registres d'index Adressage indirect à l’aide de registres d’index ----,IR0 à ,IR15 –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à IR15 Si l'entrée de temporisateur est OFF, le temporisateur spécifié par N est réinitialisé, c.-à-d. que la PV de temporisateur est réinitialisée à la SV et son drapeau de fin est mis sur OFF. Si l'entrée de temporisateur passe de OFF à ON, TIMH(015)/TIMHX(551) commence à décrémenter la PV. La PV poursuit la temporisation décroissante aussi longtemps que l'entrée de temporisateur reste sur ON et le drapeau de fin de temporisation se met sur ON lorsque la PV atteint 0000. L'état de la PV de temporisateur et du drapeau de fin est maintenu à l'expiration de la temporisation. Pour relancer le temporisateur, l'entrée de temporisateur doit être mise sur OFF et à nouveau sur ON, ou la PV de temporisateur doit être changée en une valeur non nulle (par MOV(021), par exemple). Entrée de temporisateur PV de temporisateur SV Drapeau de fin 241 Chapitre 3-6 Instructions de temporisateur et compteur Le schéma séquentiel ci-dessous indique le comportement de la PV de temporisateur et du drapeau de fin lorsque l'entrée de temporisateur est mise sur OFF avant l'expiration de la temporisation. Entrée de temporisateur PV de temporisateur SV Drapeau de fin Drapeaux Nom Etiquette Fonctionnement Drapeau d'erreur ER ON si N est adressé indirectement via un registre d'index mais l'adresse dans le registre d'index ne correspond pas à l'adresse PV d'un temporisateur. ON si en mode BCD et S ne contient pas de données BCD. OFF dans tous les autres cas. Drapeau d'égalité = OFF ou inchangé (voir remarque.) Drapeau négatif N OFF ou inchangé (voir remarque.) Remarque Dans les UC CS1 et CJ1, ils sont sur OFF. Dans les UC CS1-H, CJ1-H, CJ1M et CS1D, ces drapeaux restent inchangés. Précautions Les numéros de temporisateur sont partagés par les instructions TIM, TIMX(550), TIMH(015), TIMHX(551), TMHH(540), TIMHHX(552), TTIM(087), TTIMX(555), TIMW(813), TIMWX(816), TMHW(815) et TIMHWX(817). Si deux temporisateurs partagent le même numéro de temporisateur mais ne sont pas utilisés simultanément, une erreur de duplication est générée à la vérification du programme mais les temporisateurs fonctionnent normalement. Les temporisateurs qui partagent le même numéro de temporisateur n'opèrent pas correctement s'ils sont utilisés simultanément. Les temporisateurs créés avec des numéros de temporisateur de 2048 à 4095 n'opèrent pas correctement si le temps de cycle de l'UC excède 80 ms. Utilisez des numéros de temporisateur de 0000 à 2047 lorsque le temps de cycle est supérieur à 80 ms. Les temporisateurs TIMH(015)/TIMHX(551) créés avec des numéros de temporisateur de 0000 à 0255 sont mis à jour toutes les 10 ms. Utilisez ces numéros de temporisateur lorsque la PV sert de référence dans le programme utilisateur. La PV des temporisateurs programmés avec des numéros de temporisateur de 0000 à 2047 est mise à jour même si le temporisateur est en attente. La PV des temporisateurs programmés avec des numéros de temporisateur de 2048 à 4095 est maintenue si le temporisateur est en attente. Le fonctionnement du drapeau d'égalité et du drapeau négatif dépend du modèle d'UC. Consultez la sectionDrapeaux ci-dessus pour plus de détails. Les drapeaux de fin pour TIMH(015)/TIMHX(551) sont mis à jour à l'exécution de l'instruction. (Ce fonctionnement diffère de celui pour les API série CV et CVM1.) Les temporisateurs sont réinitialisés ou mis en pause dans les cas suivants. (Lorsqu'un temporisateur est réinitialisé, sa PV est réinitialisée à la SV et son drapeau de fin est mis sur OFF.) Condition PV Le mode de fonctionnement passe de RUN 0000 ou MONITOR à PROGRAM, ou vice versa.1 Interruption de l'alimentation et 0000 réinitialisation2 242 Drapeau de fin OFF OFF Instructions de temporisateur et compteur Condition Exécution de CNR(545)/CNRX(547), instructions RESET TIMER/COUNTER 3 Fonctionnement dans une section de programme verrouillée (IL(002)-ILC(003)) Fonctionnement dans une section de programme sautée (JMP(004)-JME(005)) Remarque Chapitre 3-6 PV Drapeau de fin BCD : 9999 OFF Binaire : FFFF Réinitialisé à OFF SV. La PV Maintient l'état continue à précédent. décrémenter. 1. Si le bit de maintien IOM (A50012) est mis sur ON, l'état des drapeaux de fin et des PV de temporisateur est maintenu lorsque le mode de fonctionnement est modifié. 2. Si le bit de maintien IOM (A50012) est mis sur ON et que l'état du bit de maintien IOM proprement dit est protégé dans la configuration de l'API, l'état des drapeaux de fin et des PV de temporisateur est maintenu même en cas d'interruption de l'alimentation. 3. La PV est réglée à SV lorsque TIMH(015)/TIMHX(551) est exécutée. Si un temporisateur opérationnel TIMH(015)/TIMHX(551) créé avec un numéro de temporisateur compris entre 0000 et 2047 est dans une section de programme sautée (JMP(004), CJMP(510), CJPN(511), JME(005)), la PV de temporisateur poursuit la temporisation. (voir remarque.) (L'instruction TIMH(015)/TIMHX(551) sautée n'est pas exécutée mais la PV est mise à jour toutes les 10 ms et à chaque cycle après exécution de toutes les tâches.) Remarque Dans le cas des UC CS1D, la PV ne sera pas mise à jour dans l'exemple cidessus. Si TIMH(015)/TIMHX(551) est dans une section de programme comprise entre IL(002) et ILC(003) et que la section de programme est verrouillée, la PV est réinitialisée à la SV et le drapeau de fin est mis sur OFF. Si un temporisateur TIMH(015)/TIMHX(551) est initialisé de force, son drapeau de fin est mis sur ON et sa PV sera réglée à 0000. Si un temporisateur TIMH(015)/TIMHX(551) est réinitialisé de force, son drapeau de fin est mis sur OFF et sa PV est réinitialisée à la SV. Le fonctionnement du drapeau d'égalité et du drapeau négatif dépend du modèle d'UC. Consultez la sectionDrapeaux pour plus de détails. Le drapeau de fin de temporisation n'est mis à jour que lorsque TIMH(015)/ TIMHX(551) est exécutée, de sorte qu'un délai d'un cycle maximum peut être requis pour que le drapeau de fin se mette sur ON à l'expiration de la temporisation. Si l'édition en ligne est utilisée pour convertir un temporisateur en un autre type de temporisateur avec le même numéro de temporisateur (tel que TIMH(015)/TIMHX(551) ↔ TIM/TIMX(550) ou TIMH(015)/TIMHX(551) ↔ TMHH(540)/TMHHX(552)), n'oubliez pas de réinitiliser le drapeau de fin. Le temporisateur ne fonctionnera pas correctement sauf si le drapeau de fin est réinitialisé. La PV et le drapeau de fin d'une instruction TIMH(015)/TIMHX(551) peuvent être mis à jour des différentes façons suivantes en fonction du numéro de temporisateur utilisé. Temporisateurs créés avec des numéros de temporisateur de 0000 à 0255 Exécution de Le drapeau de fin est mis sur ON si la PV est 0000. TIMH(015)/ Le drapeau de fin est mis sur OFF si la PV n’est pas 0000. TIMHX(551) Mise à jour par La PV de temporisateur est mise à jour toutes les 10 ms. intervalle de 10 ms 243 Chapitre 3-6 Instructions de temporisateur et compteur Temporisateurs créés avec des numéros de temporisateur de 0256 à 2047 Exécution de TIMH(015)/ TIMHX(551) La PV est mise à jour chaque fois que TIMH(015)/TIMHX(551) est exécutée. Le drapeau de fin est mis sur ON si la PV est 0000. Le drapeau de fin est mis sur OFF si la PV n’est pas 0000. La PV est également mise à jour à chaque cycle à la fin de l'exécution du programme. Après exécution de toutes les tâches Mise à jour par Si le temps de cycle excède 80 ms, la PV de temporisateur est intervalle de 80 ms mise à jour toutes les 80 ms. Temporisateurs créés avec des numéros de temporisateur de 2048 à 4095 Exécution de TIMH(015)/ TIMHX(551) Exemple La PV est mise à jour chaque fois que TIMH(015) est exécutée. Le drapeau de fin est mis sur ON si la PV est 0000. Le drapeau de fin est mis sur OFF si la PV n’est pas 0000. Si l'entrée de temporisateur CIO 000000 passe de OFF à ON dans l'exemple suivant, la PV de temporisateur commence à décrémenter à partir de la SV (#0064 = 100 = 1.00 s). Le drapeau de fin de temporisation T0000 se met sur ON lorsque la PV atteint 0000. Si CIO 000000 se met sur OFF, la PV de temporisateur est réinitialisée à la SV et le drapeau de fin se met sur OFF. Entrée de temporisateur CIO 000000 PV de temporisateur #0100 (1,00 s) T0000 Drapeau de fin de temporisation T0000 3-6-3 ONE-MS TIMER : TMHH(540)/TMHHX(552) Objet TMHH(540)/TMHHX(552) effectue une temporisation décroissante par pas de 1 ms. La plage de configuration pour la valeur de consigne (SV) va de 0 à 9,999 s pour TMHH(540) et de 0 à 65,535 s pour TMHHX(552). La précision du temporisateur est comprise entre -0,001 et 0 s. Remarque La précision du temporisateur pour les UC CS1D est de 10 ms + temps de cycle. Symbole du schéma contact Méthode de rafraîchissement PV BCD Symbole N: 0000 à 15 (décimal) S: #0000 à #9999 (BCD) TMHH(540) N S N: Numéro de temporisateur S: Valeur de consigne Binaire TMHHX(552) N S 244 Opérandes N: Numéro de temporisateur S: Valeur de consigne N: 00000 à 15 (décimal) S: &0 à &65535 (décimal) #0000 à #FFFF (hex) Chapitre 3-6 Instructions de temporisateur et compteur Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Opérandes Zones de programmes de bloc Non autorisé Zones de programmes de pas OK TMHH(540)/ TMHHX(552) Non prise en charge. Non prise en charge. Non prise en charge. SousTâches programmes d'interruption OK Non autorisé N: Numéro de temporisateur Le numéro de temporisateur doit être compris entre 0000 et 0015 (décimal). S: Valeur de consigne La valeur de consigne doit être comprise entre #0000 et 9999 (BCD). Spécifications de l’opérande Description Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque N --------0000 à 0015 (décimal) --------- S CIO 0000 à CIO 6143 W000 à W511 H000 à H511 A000 à A959 T0000 à T4095 C0000 à C4095 D00000 à D32767 E00000 à E32767 En_00000 à En_32767 (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) BCD : #0000 à 9999 (BCD) “&” ne peut être utilisé. Binaire : &0 à &65535 (décimal) #0000 à #FFFF (hex) DR0 à DR15 --- Adresses DM/EM indirectes en binaire --- Adresses DM/EM indirectes en BCD --- Constantes --- Registres de données Registres d'index Adressage indirect à l’aide de registres d’index ----,IR0 à ,IR15 –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à IR15 Si l'entrée de temporisateur est OFF, le temporisateur spécifié par N est réinitialisé, c.-à-d. que la PV de temporisateur est réinitialisée à la SV et son drapeau de fin est mis sur OFF. Si l'entrée de temporisateur passe de OFF à ON, TMHH(540)/TMHHX(552) commence à décrémenter la PV. La PV poursuit la temporisation décrois- 245 Chapitre 3-6 Instructions de temporisateur et compteur sante aussi longtemps que l'entrée de temporisateur reste sur ON et le drapeau de fin de temporisation se met sur ON lorsque la PV atteint 0000. L'état de la PV de temporisateur et du drapeau de fin est maintenu à l'expiration de la temporisation. Pour redémarrer le temporisateur, l'entrée de temporisateur doit être mise sur OFF et à nouveau sur ON, ou la PV de temporisateur doit être changée en une valeur non nulle (par MOV(021), par exemple). Drapeaux Nom Drapeau d'erreur Etiquette Fonctionnement ER ON si N est adressé indirectement via un registre d'index mais l'adresse dans le registre d'index ne correspond pas à l'adresse PV d'un temporisateur. ON si en mode BCD et S ne contient pas de données BCD. OFF dans tous les autres cas. Drapeau d'égalité = OFF ou inchangé (voir remarque.) Drapeau négatif N OFF ou inchangé (voir remarque.) Remarque Dans les UC CS1 et CJ1, ils sont sur OFF. Dans les UC CS1-H, CJ1-H, CJ1M et CS1D, ces drapeaux restent inchangés. Précautions Les numéros de temporisateur sont partagés par les instructions TIM, TIMX(550), TIMH(015), TIMHX(551), TMHH(540), TIMHHX(552), TTIM(087), TTIMX(555), TIMW(813), TIMWX(816), TMHW(815) et TIMHWX(817). Si deux temporisateurs partagent le même numéro de temporisateur mais ne sont pas utilisés simultanément, une erreur de duplication est générée à la vérification du programme mais les temporisateurs fonctionnent normalement. Les temporisateurs qui partagent le même numéro de temporisateur ne fonctionnent pas correctement s'ils sont utilisés simultanément. Le drapeau de fin n'est mis à jour que si TMHH(540)/TMHHX(552) est exécutée. Le drapeau de fin peut donc être différé de la durée d'un cycle maximum à partir de la valeur de consigne actuelle. La PV des temporisateurs programmés avec des numéros de temporisateur de 0000 à 2047 est mise à jour même si le temporisateur est en attente. La PV des temporisateurs programmés avec des numéros de temporisateur de 2048 à 4095 est maintenue si le temporisateur est en attente. Les temporisateurs sont réinitialisés ou mis en pause dans les cas suivants. (Lorsqu'un temporisateur est réinitialisé, sa PV est réinitialisée à la SV et son drapeau de fin est mis sur OFF.) Condition Le mode de fonctionnement passe de RUN ou MONITOR à PROGRAM, ou vice versa.1 Interruption de l'alimentation et réinitialisation2 Exécution de CNR(545)/CNRX(547), instructions RESET TIMER/COUNTER 3 Fonctionnement dans une section de programme verrouillée (IL(002)-ILC(003)) Fonctionnement dans une section de programme sautée (JMP(004)-JME(005)) Remarque 246 PV 0000 Drapeau de fin OFF 0000 OFF BCD : 9999 OFF Binaire : FFFF Réinitialisé à OFF SV. La PV conti- Maintient l'état nue à décré- précédent. menter. 1. Si le bit de maintien IOM (A50012) est mis sur ON, l'état des drapeaux de fin et des PV de temporisateur est maintenu lorsque le mode de fonctionnement est modifié. 2. Si le bit de maintien IOM (A50012) est mis sur ON et que l'état du bit de maintien IOM proprement dit est protégé dans la configuration de l'API, l'état des drapeaux de fin et des PV de temporisateur est maintenu même en cas d'interruption de l'alimentation. Chapitre 3-6 Instructions de temporisateur et compteur 3. La PV est réglée à la SV lorsque TMHH(540)/TMHHX(552) est exécutée. Si un temporisateur opérationnel TMHH(540)/TMHHX(552) est dans une section de programme sautée (JMP(004), CJMP(510), CJPN(511), JME(005)), la PV de temporisateur poursuit la temporisation. (voir remarque.) (L'instruction TMHH(540)/TMHHX(552) sautée n'est pas exécutée mais la PV est mise à jour toutes les 1 ms.) Remarque Dans le cas des UC CS1D, la PV ne sera pas mise à jour dans l'exemple cidessus. Si TMHH(540)/TMHHX(552) est dans une section de programme comprise entre IL(002) et ILC(003) et que la section de programme est verrouillée, la PV est réinitialisée à la SV et le drapeau de fin est mis sur OFF. Si un temporisateur TMHH(540)/TMHHX(552) est initialisé de force, son drapeau de fin est mis sur ON et sa PV sera réglée à 0000. Si un temporisateur TMHH(540)/TMHHX(552) est réinitialisé de force, son drapeau de fin est mis sur OFF et sa PV est réinitialisée à la SV. Le fonctionnement du drapeau d'égalité et du drapeau négatif dépend du modèle d'UC. Consultez la sectionDrapeaux ci-dessus pour plus de détails. Si l'édition en ligne est utilisée pour convertir un temporisateur en un autre type de temporisateur avec le même numéro de temporisateur (tel que TMHH(540)/TMHHX(552) ↔ TIM/TIMX(550) ou TMHH(540)/TMHHX(552) ↔ TIMH(015)/TIMHX(551)), n'oubliez pas de réinitiliser le drapeau de fin. Le temporisateur ne fonctionnera pas correctement aussi longtemps que le drapeau de fin n'est pas réinitialisé. L'état de la PV de temporisateur et le drapeau de fin d'une instruction TMHH(540)/TMHHX(552) sont mis à jour comme l'indique le tableau ci-dessous. Le drapeau de fin est mis sur ON si la PV est 0000. Exécution de Le drapeau de fin est mis sur OFF si la PV n’est pas 0000. TMHH(540)/ TMHHX(552) Mise à jour par intervalle La PV de temporisateur est mise à jour toutes les 1 ms. de 1 ms 3-6-4 ACCUMULATIVE TIMER : TTIM(087)/TTIMX(555) Objet TTIM(087)/TTIMX(555) effectue une temporisation croissante par pas de 0,1 s. La plage de configuration pour la valeur de consigne (SV) va de 0 à 999,9 s pour TTIM(087) et de 0 à 6 553,5 s pour TTIMX(555). La précision du temporisateur est comprise entre -0,01 et 0 s. Remarque La précision du temporisateur pour les UC CS1D est de 10 ms + temps de cycle. Symbole du schéma contact Méthode de mise à jour PV BCD Symbole Entrée de temporisateur TTIM(087) N Entrée de réinitialisation Binaire Entrée de temporisateur S TTIMX(555) N S Entrée de réinitialisation Opérandes N: Numéro de temporisateur S: Valeur de consigne N: 0000 à 15 (décimal) S: #0000 à #9999 (BCD) N: 00000 à 15 (décimal) S: &0 à &65535 N: Numéro de (décimal) temporisateur #0000 à #FFFF S: Valeur de consigne (hex) 247 Chapitre 3-6 Instructions de temporisateur et compteur Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Opérandes Zones de programmes de bloc Non autorisé Zones de programmes de pas OK TTIM(087)/ TTIMX(555) Non prise en charge. Non prise en charge. Non prise en charge. SousTâches programmes d'interruption OK Non autorisé N: Numéro de temporisateur Le numéro de temporisateur doit être compris entre 0000 et 4095 (décimal). S: Valeur de consigne La valeur de consigne doit être comprise entre #0000 et 9999 (BCD). Spécifications de l’opérande Description 248 Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque N --------0000 à 4095 (décimal) --------- S CIO 0000 à CIO 6143 W000 à W511 H000 à H511 A000 à A959 T0000 à T4095 C0000 à C4095 D00000 à D32767 E00000 à E32767 En_00000 à En_32767 (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) BCD : #0000 à 9999 (BCD) “&” ne peut être utilisé. Binaire : &0 à &65535 (décimal) #0000 à #FFFF (hex) DR0 à DR15 --- Adresses DM/EM indirectes en binaire --- Adresses DM/EM indirectes en BCD --- Constantes --- Registres de données Registres d'index Adressage indirect à l’aide de registres d’index ----,IR0 à ,IR15 –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à IR15 Si l'entrée de temporisateur est ON, TTIM(087)/TTIMX(555) incrémente la PV. Lorsque l'entrée de temporisateur passe à OFF, le temporisateur arrête d'incrémenter la PV, mais celle-ci maintient sa valeur. La PV reprend la temporisation lorsque l'entrée de temporisateur passe à nouveau à ON. Le drapeau de fin de temporisation se met sur ON lorsque la PV atteint la SV. Chapitre 3-6 Instructions de temporisateur et compteur L'état de la PV de temporisateur et du drapeau de fin est maintenu à l'expiration de la temporisation. Il existe trois méthodes pour relancer le temporisateur : la PV de temporisateur peut être changée en une valeur non nulle (par MOV(021), par exemple), l'entrée de réinitialisation peut être mise sur ON, ou CNR(545)/CNRX(547) peut être exécutée. Entrée de temporisateur PV de temporisateur SV Reprise de la temporisation PV conservée. Drapeau de fin Entrée de réinitialisation Drapeaux Nom Drapeau d'erreur Précautions Etiquette Fonctionnement ER ON si N est adressé indirectement via un registre d'index mais l'adresse dans le registre d'index ne correspond pas à l'adresse PV d'un temporisateur. ON si en mode BCD et S ne contient pas de données BCD. OFF dans tous les autres cas. Les numéros de temporisateur sont partagés par les instructions TIM, TIMX(550), TIMH(015), TIMHX(551), TMHH(540), TIMHHX(552), TTIM(087), TTIMX(555), TIMW(813), TIMWX(816), TMHW(815) et TIMHWX(817). Si deux temporisateurs partagent le même numéro de temporisateur mais ne sont pas utilisés simultanément, une erreur de duplication est générée à la vérification du programme mais les temporisateurs fonctionnent normalement. Les temporisateurs qui partagent le même numéro de temporisateur ne fonctionnent pas correctement s'ils sont utilisés simultanément. Les temporisateurs sont réinitialisés ou mis en pause dans les cas suivants. (Lorsqu'un temporisateur TTIM(087)/TTIMX(555) est réinitialisé, sa PV est réinitialisée à 0000 et son drapeau de fin est mis sur OFF.) Condition Le mode de fonctionnement passe de RUN ou MONITOR à PROGRAM, ou vice versa.1 Interruption de l'alimentation et réinitialisation2 Exécution de CNR(545)/CNRX(547), instructions RESET TIMER/COUNTER 3 Fonctionnement dans une section de programme verrouillée (IL(002)-ILC(003)) Fonctionnement dans une section de programme sautée (JMP(004)-JME(005)) Remarque PV Drapeau de fin 0000 OFF 0000 OFF BCD : 9999 Binaire : FFFF Maintient l'état précédent. Maintient l'état précédent. OFF Maintient l'état précédent. Maintient l'état précédent. 1. Si le bit de maintien IOM (A50012) est mis sur ON, l'état des drapeaux de fin et des PV de temporisateur est maintenu lorsque le mode de fonctionnement est modifié. 2. Si le bit de maintien IOM (A50012) est mis sur ON et que l'état du bit de maintien IOM proprement dit est protégé dans la configuration de l'API, l'état des drapeaux de fin et des PV de temporisateur est maintenu même en cas d'interruption de l'alimentation. 3. La PV est réglée à la SV lorsque TTIM(087)/TTIMX(555) est exécutée. 249 Chapitre 3-6 Instructions de temporisateur et compteur Si TTIM(087)/TTIMX(555) est dans une section de programme comprise entre IL(002) et ILC(003) et que la section de programme est verrouillée, la PV conserve sa valeur précédente (n'est pas réinitialisée). N'oubliez pas d'en tenir compte lorsque TTIM(087)/TTIMX(555) est programmée entre IL(002) et ILC(003). Si un temporisateur opérationnel TTIM(087)/TTIMX(555) est dans une section de programme entre JMP(004) et JME(005) et que la section de programme est sautée, la PV conserve sa valeur précédente. N'oubliez pas d'en tenir compte lorsque TTIM(087)/TTIMX(555) est programmée entre JMP(004) et JME(005). Si un temporisateur TTIM(087)/TTIMX(555) est initialisé de force, son drapeau de fin est mis sur ON et sa PV sera réglée à 0000. Si un temporisateur TTIM(087)/TTIMX(555) est réinitialisé de force, son drapeau de fin est mis sur OFF et sa PV est réinitialisée à 0000. Les opérations d’initialisation forcée et de réinitialisation forcée ont la priorité sur l'état des entrées de temporisation et de réinitialisation. La PV de temporisateur n'est mise à jour que lorsque TTIM(087)/TTIMX(555) est exécutée, de sorte que le temporisateur ne fonctionne pas correctement si le temps de cycle excède 100 ms car le temporisateur incrémente par pas de 100 ms. Le drapeau de fin de temporisation n'est mis à jour que lorsque TTIM(087)/ TTIMX(555) est exécutée, de sorte qu'un délai d'un cycle maximum peut être requis pour que le drapeau de fin se mette sur ON à l'expiration de la temporisation. Les temporisateurs types tels que TIM/TIMX(550) décrémentent les compteurs et la PV indique le temps restant jusqu'à l'expiration de la temporisation. La PV de TTIM(087)/TTIMX(555) indique le temps qui s'est écoulé, de sorte que la PV peut être utilisée telle quelle dans de nombreux calculs et résultats d'affichage. Si l'entrée de temporisateur CIO 000000 est ON dans l'exemple suivant, la PV de temporisateur commence à incrémenter à partir de 0. Le drapeau de fin de temporisation T0001 est mis sur ON lorsque la PV atteint la SV. Si l'entrée de réinitialisation est mise sur ON, la PV de temporisateur est réinitialisée à 0000 et le drapeau de fin (T0001) se met sur OFF. (En général, l'entrée de réinitialisation est mise sur ON pour réinitialiser le temporisateur et l'entrée de temporisateur est ensuite mise sur ON pour lancer la temporisation.) Si l'entrée de temporisateur est mise sur OFF avant que la SV ne soit atteinte, la temporisation s'arrête mais la PV est maintenue. La temporisation reprend à partir de la PV précédente lorsque l'entrée de temporisateur passe à nouveau à ON. Exemple Entrée de temporisateur CIO 000000 PV de temporisateur T0001 Fin de temporisation Drapeau T0001 Entrée de réinitialisation CIO 000001 250 # # Reprise de la . temporisation PV conservée. Chapitre 3-6 Instructions de temporisateur et compteur 3-6-5 LONG TIMER : TIML(542)/TIMLX(553) Objet TIML(542)/TIMLX(553) effectue une temporisation décroissante par pas de 1 s qui peut aller jusqu'à 115 jours pour TIML(542) et 49 710 jours pour TIMLX(543). La précision du temporisateur est comprise entre 0 et 0,01 s. Remarque La précision du temporisateur pour les UC CS1D est de 10 ms + temps de cycle. Symbole du schéma contact BCD TIML(542) D1 D1: Drapeau de fin D2 D2: Mot PV S: Mot SV S Binaire TIMLX(543) D1 D1: Drapeau de fin D2 D2: Mot PV S: Mot SV S Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Opérandes Zones de programmes de bloc Non autorisé Zones de programmes de pas OK TIML(542)/ TIMLX(553) Non prise en charge. Non prise en charge. Non prise en charge. SousTâches programmes d'interruption OK Non autorisé D1 : Drapeau de fin Le bit 0 de D1 agit comme le drapeau de fin pour TIML(542)/TIMLX(553). 15 0 D1 Ne pas utiliser. Drapeau de fin D2 : Mot PV D2+1 et D2 contiennent la PV BCD ou binaire à 8 chiffres. (D2 et D2+1 doivent être dans la même zone de données.) La PV peut aller de #00000000 à #99999999 pour TIML(542) et de &00000000 à &4294967294 (décimal) ou de #00000000 à #FFFFFFFF (hexadécimal) pour TIMLX(553). D2 D2+1 D2 S : Mot SV S+1 et S contiennent la PV BCD ou binaire à 8 chiffres. (S et S+1 doivent être dans la même zone de données.) La SV peut aller de #00000000 à #99999999 pour TIML(542) et de &00000000 à &4294967294 (décimal) ou de #00000000 à #FFFFFFFF (hexadécimal) pour TIMLX(553). 251 Chapitre 3-6 Instructions de temporisateur et compteur S Spécifications de l’opérande Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index Description S+1 S D1 D2 S CIO 0000 à CIO 0000 à CIO 6142 CIO 6143 W000 à W511 W000 à W510 H000 à H511 H000 à H510 A448 à A959 A448 à A958 A000 à A958 ----T0000 à T4094 ----C0000 à C4094 D00000 à D32767 D00000 à D32766 E00000 à E32767 E00000 à E32766 En_00000 à En_00000 à En_32766 En_32767 (n = 0 à C) (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) --BCD : #00000000 à 99999999 (BCD) “&” ne peut pas être utilisé. Binaire : &00000000 à &4294967294 (décimal) ou #00000000 à #FFFFFFFF (hex) ----,IR0 à ,IR15 –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à IR15 TIML(542)/TIMLX(553) effectue une temporisation décroissante retard ON par pas de 0,1 s au moyen d'une SV à 8 chiffres et d'une PV à 8 chiffres. Si l'entrée de temporisateur est OFF, le temporisateur est réinitialisé, c.-à-d. que la PV de temporisateur est réinitialisée à la SV et son drapeau de fin est mis sur OFF. Si l'entrée de temporisateur passe de OFF à ON, TIML(542)/TIMLX(553) commence à décrémenter la PV dans D2+1 et D2. La PV poursuit la temporisation décroissante aussi longtemps que l'entrée de temporisateur reste sur ON et le drapeau de fin de temporisation se met sur ON lorsque la PV atteint 0000 0000. L'état de la PV de temporisateur et du drapeau de fin est maintenu à l'expiration de la temporisation. Pour relancer le temporisateur, l'entrée de temporisateur doit être mise sur OFF et à nouveau sur ON, ou la PV de temporisateur doit être changée en une valeur non nulle (par MOV(021), par exemple). 252 Chapitre 3-6 Instructions de temporisateur et compteur Entrée de temporisateur PV de temporisateur SV Drapeau de fin (Bit 00 de D1) Drapeaux Nom Drapeau d'erreur Précautions Etiquette Fonctionnement ER ON si la PV contenue dans D2+1 et D2 n'est pas de type BCD. ON si la SV contenue dans S+1 et S n'est pas de type BCD. OFF dans tous les autres cas. A la différence de la plupart des temporisateurs, TIML(542)/TIMLX(553) n'utilise pas de numéro de temporisateur. (La mise à jour de la PV dans la zone de temporisation n'est pas réalisée pour TIML(542)/TIMLX(553).) Etant donné que le drapeau de fin pour TIML(542)/TIMLX(553) est dans une zone de données, il peut être forcé à 1 ou à 0 comme d'autres bits, mais la PV reste inchangée. La PV de temporisateur n'est mise à jour que lorsque TIML(542)/TIMLX(553) est exécutée, de sorte que le temporisateur ne fonctionne pas correctement si le temps de cycle excède 100 ms car le temporisateur incrémente par pas de 100 ms. Le drapeau de fin de temporisation n'est mis à jour que lorsque TIML(542)/ TIMLX(553) est exécutée, de sorte qu'un délai d'un cycle maximum peut être requis pour que le drapeau de fin se mette sur ON à l'expiration de la temporisation. Si TIML(542)/TIMLX(553) est dans une section de programme comprise entre IL(002) et ILC(003) et que la section de programme est verrouillée, la PV est réinitialisée à la SV et le drapeau de fin est mis sur OFF. Si un temporisateur opérationnel TIML(542)/TIMLX(553) est dans une section de programme entre JMP(004) et JME(005) et que la section de programme est sautée, la PV conserve sa valeur précédente. N'oubliez pas d'en tenir compte lorsque TIML(542)/TIMLX(553) est programmée entre JMP(004) et JME(005). Veillez à ce que les mots spécifiés pour le drapeau de fin et la PV (D1, D2 et D2+1) ne soient pas utilisés dans d'autres instructions. Si ces mots sont affectés par d'autres instructions, le temporisateur risque de ne pas fonctionner correctement. Exemple Si l'entrée de temporisateur CIO 000000 est ON dans l'exemple suivant, la PV de temporisateur (dans D00101 et D00100) est réglée à la SV (dans D00101 et D00100) et la PV commence la décrémentation. Le drapeau de fin de temporisation (CIO 020000) se met sur ON lorsque la PV atteint 0000 0000. Si CIO 000000 se met sur OFF, la PV de temporisateur est réinitialisée à la SV et le drapeau de fin se met sur OFF. 253 Chapitre 3-6 Instructions de temporisateur et compteur Entrée de temporisateur CIO 000000 PV de temporisateur (D00101 et D00100) SV de temporisateur (D00201 et D00200) Drapeau de fin de temporisation (CIO 020000) D1: 00200 Drapeau de fin de temporisation (CIO 020000) PV de temporisateur (LSB) PV de temporisateur (MSB) D2: D00100 D00101 C S: D00200 3-6-6 0 0 1 D00201 0 SV de temporisateur : (100 000 décimal= 10 000 s) MULTI-OUTPUT TIMER : MTIM(543)/MTIMX(554) Objet MTIM(543)/MTIMX(554) prend en charge une temporisation basée sur des incréments de 0,1 s avec huit valeurs de consigne (SV) et drapeaux de fin indépendants. La valeur de consigne est comprise entre 0 et 999,9 s pour MTIM(543) et entre 0 et 6 553,5 s pour MTIMX(554), et la précision du temporisateur est de 0 à 0,01 s. Remarque La précision du temporisateur pour les UC CS1D est de 10 ms + temps de cycle. Symbole du schéma BCD contact MTIM(543) D1 D1: Drapeaux de fin D2 D2: Mot PV S S: Premier mot SV Binaire MTIMX(554) D1 D1: Drapeaux de fin D2 D2: Mot PV S S: Premier mot SV Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat 254 MTIM(543)/ MTIMX(554) Non prise en charge. Non prise en charge. Non prise en charge. Chapitre 3-6 Instructions de temporisateur et compteur Zones de programmes applicables Opérandes Zones de programmes de bloc Non autorisé Zones de programmes de pas OK SousTâches programmes d'interruption OK Non autorisé D1: Drapeaux de fin D1 contient les huit drapeauxb de fin ainsi que les bits de pause et de réinitialisation. 15 9 8 7 6 5 4 3 2 1 0 D1 Ne pas utiliser. Drapeaux de fin Bit de réinitialisation Bit de pause D2: Mot PV D2 contient la PV BCD ou binaire à 4 chiffres. Données BCD Binaire Plage #0000 à #9999 &0 à &65535 (décimal) #0000 à #FFFF (hex) S: Premier mot SV S à S+7 contiennent les huit SV indépendantes. Chaque SV doit être comme suit : Données BCD Binaire Plage #0000 à #9999 &0 à &65535 (décimal) #0000 à #FFFF (hex) Bit correspondant (drapeau de fin) dans D1 Données BCD Binaire Plage Un mot pour chacun des 8 SV de temporisateur : #0000 à #9999 Un mot pour chacun des 8 SV de temporisateur : &0 à &65535 (décimal) #0000 à #FFFF (hex) Remarque S à S+7 doivent être dans la même zone de données. Spécifications de l’opérande Zone Zone CIO D1 CIO 0000 à CIO 6143 Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur W000 à W511 H000 à H511 A448 à A959 T0000 à T4095 C0000 à C4095 D2 S CIO 0000 à CIO 6136 W000 à W504 H000 à H504 A000 à A952 T0000 à T4088 C0000 à C4088 255 Chapitre 3-6 Instructions de temporisateur et compteur Zone DM Zone D1 D00000 à D32767 Zone EM sans banque E00000 à E32767 Zone EM avec banque En_00000 à En_32767 (n = 0 à C) D2 S D00000 à D32760 E00000 à E32760 En_00000 à En_32760 (n = 0 à C) Adresses DM/EM indirectes en binaire @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) Adresses DM/EM indirectes *D00000 à *D32767 en BCD *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) Constantes --Registres de données --DR0 à DR15 --Registres d'index --Adressage indirect à l’aide de ,IR0 à ,IR15 registres d’index –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 Description Lorsque la condition d'exécution pour MTIM(543)/MTIMX(554) est ON et que les bits de réinitialisation et de temporisation sont tous deux sur OFF, MTIM(543)/MTIMX(554) incrémente la PV dans D2. Lorsque le bit de pause est mis sur ON, le temporisateur arrête d'incrémenter la PV, mais celle-ci maintient sa valeur. MTIM(543)/MTIMX(554) reprend la temporisation lorsque le bit de pause passe à nouveau sur OFF. La PV (contenu de D2) est comparée aux huit SV dans S à S+7 chaque fois que MTIM(543)/MTIMX(554) est exécutée, et si l'une des SV est inférieure ou égale à la PV, le drapeau de fin correspondant (bits 00 à 07 de D1) est mis sur ON. Lorsque la PV atteint 9999, la PV est réinitialisée à 0000 et tous les drapeaux de fin sont mis sur OFF. Si le bit de réinitialisation est sur ON alors que la temporisation est en cours ou sur pause, la PV est réinitialisée à 0000 et tous les drapeaux de fin sont mis sur OFF. 256 Chapitre 3-6 Instructions de temporisateur et compteur PV de temporisateur SV de temporisateur 0 à à Entrée de temporisateur SV 7 SV 2 PV de temporisateur (D2) SV 1 SV 0 0 Bit 7 Drapeaux de fin (D1) Bit 2 Bit 1 Bit 0 Le tableau ci-dessous indique le fonctionnement de MTIM(543)/MTIMX(554) pour les quatre combinaisons possibles des bits de réinitialisation et de pause. Bit de Bit de réinitialisation pause (Bit 08) (Bit 09) OFF OFF ON ON OFF ON Fonctionnement La PV est mise à jour et le drapeau de fin correspondant est mis sur ON si SV ≤ PV. La PV n'est pas mise à jour et MTIM(543)/MTIMX(554) est traitée comme NOP(000). La PV est réinitialisée à 0000 et les drapeaux de fin sont mis sur OFF. La PV n'est pas mise à jour. Les bits de réinitialisation et de pause ne sont effectifs que si la condition d'exécution de MTIM(543)/MTIMX(554) est ON. Drapeaux Nom Drapeau d'erreur Précautions Etiquette Fonctionnement ER ON si la PV contenue dans D2 n'est pas de type BCD. OFF dans tous les autres cas. A la différence de la plupart des temporisateurs, MTIM(543)/MTIMX(554) n'utilise pas de numéro de temporisateur. (La mise à jour de la PV dans la zone de temporisation n'est pas réalisée pour MTIM(543)/MTIMX(554).) Lorsque la PV atteint 9999, la PV est réinitialisée à 0000 et tous les drapeaux de fin sont mis sur OFF. Si, en mode BCD, une SV dans S à S+7 ne contient pas de données BCD, cette SV est ignorée. Aucune erreur ne se produit et le drapeau d'erreur ne se met pas sur ON. Etant donné que le drapeau de fin pour MTIM(543)/MTIMX(554) est dans une zone de données, il peut être forcé à 1ou à 0 comme d'autres bits, mais la PV reste inchangée. 257 Chapitre 3-6 Instructions de temporisateur et compteur Lorsque huit SV ou moins sont requises, réglez le mot après la dernière SV sur 0000. MTIM(543)/MTIMX(554) ignorent alors la SV réglée sur 0000 et toutes les SV restantes. à à Ces SV sont ignorées. La PV de temporisateur n'est mise à jour que lorsque MTIM(543)/ MTIMX(554) est exécutée, de sorte que le temporisateur ne fonctionne pas correctement si le temps de cycle excède 100 ms car le temporisateur incrémente par pas de 100 ms. Pour garantir une temporisation précise et éviter tout problème résultant de longs temps de cycle, saisissez la même instruction MTIM(543)/MTIMX(554) en plusieurs points du programme. Le drapeau de fin de temporisation n'est mis à jour que lorsque MTIM(543)/ MTIMX(554) est exécutée, de sorte qu'un délai d'un cycle maximum peut être requis pour que le drapeau de fin se mette sur ON à l'expiration de la temporisation. Si MTIM(543)/MTIMX(554) est dans une section de programme comprise entre IL(002) et ILC(003) et que la section de programme est verrouillée, la PV conserve sa valeur précédente (n'est pas réinitialisée). N'oubliez pas d'en tenir compte lorsque MTIM(543)/MTIMX(554) est programmée entre IL(002) et ILC(003). Si un temporisateur opérationnel MTIM(543)/MTIMX(554) est dans une section de programme entre JMP(004) et JME(005) et que la section de programme est sautée, la PV conserve sa valeur précédente. N'oubliez pas d'en tenir compte lorsque MTIM(543)/MTIMX(554) est programmée entre JMP(004) et JME(005). Veillez à ce que les mots spécifiés pour le drapeau de fin et la PV (D1 et D2) ne soient pas utilisés dans d'autres instructions. Si ces mots sont affectés par d'autres instructions, le temporisateur risque de ne pas fonctionner correctement. Si un mot dans la zone CIO est spécifié pour D1, les instructions SET et RSET peuvent être utilisées pour contrôler les bits de pause et de réinitialisation. Exemple Si CIO 000000 est ON et que le bit de pause (CIO 010009) est OFF dans l'exemple suivant, la temporisation débutera lorsque le bit de réinitialisation (CIO 010009) passe de ON à OFF. La PV de temporisateur commence la temporisation à partir de 0000. Les huit SV dans D00200 à D00207 sont comparées à la PV et les drapeaux de fin correspondants (CIO 010000 à CIO 010007) sont mis sur ON si SV ≤ PV. 258 Chapitre 3-6 Instructions de temporisateur et compteur D1: 0100CH Drapeaux de fin Bit de réinitialisation Bit de pause PV de temporisateur (incrémentation) D2: D00100 Drapeau de fin correspondant sur ON si SV _ PV. SV de temporisateur S: D00200 S+1: D00201 S+2: D00202 S+3: D00203 S+4: D00204 S+5: D00205 S+6: D00206 S+7: D00207 Entrée de temporisateur CIO 000000 L'entrée de temporisateur doit rester sur ON en cours de temporisation. Bit de réinitialisation CIO 010008 Bit de pause CIO 010009 Reprise de la temporisation PV max. = 9999 SV de temporisateur SV 7 SV 1 SV 0 PV conservée. Drapeaux de fin 259 Chapitre 3-6 Instructions de temporisateur et compteur 3-6-7 COUNTER : CNT/CNTX(546) Objet CNT/CNTX(546) prend en charge un compteur décrémentiel. La configuration va de 0 à 9 999 pour CNT et de 0 à 65 535 pour CNTX(546). Symbole du schéma contact BCD Entrée de comptage CNT Entrée de réinitialisation N N: Numéro de compteur S S: Valeur de consigne Binaire Entrée de comptage CNTX(546) Entrée de réinitialisation N N: Numéro de compteur S S: Valeur de consigne Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Opérandes Zones de Zones de programmes de bloc programmes de pas Non autorisé OK CNT/CNTX(546) Non prise en charge. Non prise en charge. Non prise en charge. Sousprogrammes OK Tâches d'interruption OK N : Numéro de compteur Le numéro de compteur doit être compris entre 0000 et 4095 (décimal). S : Valeur de consigne Données BCD Binaire Spécifications de l’opérande 260 Plage #0000 à #9999 &0 à &65535 (décimal) #0000 à #FFFF (hex) Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque N ----------0000 à 4095 (décimal) ------- S CIO 0000 à CIO 6143 W000 à W511 H000 à H511 A000 à A959 T0000 à T4095 C0000 à C4095 D00000 à D32767 E00000 à E32767 En_00000 à En_32767 (n = 0 à C) Chapitre 3-6 Instructions de temporisateur et compteur Zone Adresses DM/EM indirectes en binaire Description N --- S @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) BCD : #0000 à 9999 (BCD) “&” ne peut être utilisé. Binaire : &0 à &65535 (décimal) #0000 à #FFFF (hex) DR0 à DR15 --- Adresses DM/EM indirectes en BCD --- Constantes --- Registres de données Registres d'index Adressage indirect à l’aide de registres d’index ----,IR0 à ,IR15 –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à IR15 La PV de compteur est décrémentée de 1 chaque fois que l'entrée de comptage passe de OFF à ON. Le drapeau de fin est mis sur ON si la PV atteint 0. Lorsque le drapeau de fin est mis sur ON, réinitialisez le compteur en mettant l'entrée de réinitialisation sur ON ou en utilisant l'instruction CNR(545)/ CNRX(547). Sinon le compteur ne peut pas redémarrer. Le compteur est réinitialisé et l'entrée de comptage est ignorée si l'entrée de réinitialisation est ON. (Lorsqu'un compteur est réinitialisé, sa PV est réinitialisée à la SV et le drapeau de fin est mis sur OFF.) Entrée de comptage Entrée de réinitialisation PV de compteur SV Drapeau de fin Drapeaux Nom Drapeau d'erreur Etiquette Fonctionnement ER ON si N est adressé indirectement via un registre d'index mais l'adresse dans le registre d'index ne correspond pas à l'adresse PV d'un compteur. ON si en mode BCD et S ne contient pas de données BCD. OFF dans tous les autres cas. = OFF ou inchangé (voir remarque.) Drapeau d'égalité Drapeau négatif N OFF ou inchangé (voir remarque.) Remarque Dans les UC CS1 et CJ1, ils sont sur OFF. Dans les UC CS1-H, CJ1-H, CJ1M et CS1D, ces drapeaux restent inchangés. 261 Chapitre 3-6 Instructions de temporisateur et compteur Précautions Les numéros de compteur sont partagés par les instructions CNT, CNTX(546), CNTR(012), CNTRX(548), CNTW(814) et CNTWX(818). Si deux compteurs partagent le même numéro de compteur mais ne sont pas utilisés simultanément, une erreur de duplication est générée à la vérification du programme mais les compteurs fonctionnent normalement. Les compteurs qui partagent le même numéro ne fonctionnent pas correctement s'ils sont utilisés simultanément. Une PV de compteur est mise à jour lorsque l'entrée de comptage passe de OFF à ON et le drapeau de fin est mis à jour chaque fois que CNT/ CNTX(546) est exécutée. Le drapeau de fin est mis sur ON si la PV est à 0 et est mis sur OFF si la PV a une valeur non nulle. Si un compteur CNT/CNTX(546) est initialisé de force, son drapeau de fin est mis sur ON et sa PV sera réglée à 0000. Si un compteur CNT/CNTX(546) est réinitialisé de force, son drapeau de fin est mis sur OFF et sa PV est réinitialisée à la SV. N'oubliez pas de réinitialiser le compteur en faisant passer l'entrée de réinitialisation de OFF → ON → OFF avant d'entamer le comptage avec l'entrée de comptage, comme indiqué dans le schéma ci-dessous. L'entrée de comptage ne sera pas reçue si l'entrée de réinitialisation est ON. Entrée de réinitialisation Entrée de comptage SV PV de compteur Drapeau de fin Prêt à lancer le comptage L'entrée de réinitialisation a la priorité et le compteur est réinitialisé si l'entrée de réinitialisation et l'entrée de comptage sont toutes deux sur ON au même moment. (La PV est réinitialisée à la SV et le drapeau de fin est mis sur OFF.) Entrée de réinitialisation Entrée de comptage SV PV de compteur Drapeau de fin L'entrée de L'entrée de L'entrée de comptage peut réinitialisa- comptage peut être reçue. tion a la être reçue. priorité. Le fonctionnement du drapeau d'égalité et du drapeau négatif dépend du modèle d'UC. Consultez la sectionDrapeaux ci-dessus pour plus de détails. Remarque Si l'édition en ligne est utilisée pour ajouter un compteur, le compteur doit être réinitialisé avant de fonctionner correctement. Si le compteur n'est pas réinitialisé, la valeur précédente est utilisée comme valeur actuelle (PV) de comptage et le compteur risque de ne pas fonctionner correctement après avoir été écrit. 262 Chapitre 3-6 Instructions de temporisateur et compteur Les PV de compteur sont conservées même en cas d'interruption de l'alimentation. Si vous souhaitez reprendre le comptage à partir de la SV plutôt qu'à partir de la PV conservée, ajoutez le drapeau de premier cycle (A20011) comme entrée de réinitialisation au compteur. Drapeau Premier cycle (A20011) 3-6-8 REVERSIBLE COUNTER : CNTR(012)/CNTRX(548) Objet CNTR(012)/CNTRX(548) contrôle un compteur réversible. Symbole du schéma contact BCD Entrée d'incrémentation CNTR(012) Entrée de décrémentation Entrée de réinitialisation N N: Numéro de compteur S S: Valeur de consigne Binaire Entrée d'incrémentation CNTRX(548) Entrée de décrémentation Entrée de réinitialisation N N: Numéro de compteur S S: Valeur de consigne Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Opérandes Zones de Zones de programmes de bloc programmes de pas Non autorisé OK CNTR(012)/ CNTRX(548) Non prise en charge. Non prise en charge. Non prise en charge. Sousprogrammes OK Tâches d'interruption OK N : Numéro de compteur Le numéro de compteur doit être compris entre 0000 et 4095 (décimal). S : Valeur de consigne Données BCD Binaire Plage #0000 à #9999 &0 à &65535 (décimal) #0000 à #FFFF (hex) 263 Chapitre 3-6 Instructions de temporisateur et compteur Spécifications de l’opérande Description Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque N ----------0000 à 4095 (décimal) ------- S CIO 0000 à CIO 6143 W000 à W511 H000 à H511 A000 à A959 T0000 à T4095 C0000 à C4095 D00000 à D32767 E00000 à E32767 En_00000 à En_32767 (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) BCD : #0000 à 9999 (BCD) “&” ne peut être utilisé. Binaire : &0 à &65535 (décimal) #0000 à #FFFF (hex) DR0 à DR15 --- Adresses DM/EM indirectes en binaire --- Adresses DM/EM indirectes en BCD --- Constantes --- Registres de données Registres d'index Adressage indirect à l’aide de registres d’index ----,IR0 à ,IR15 –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à IR15 La PV de compteur est incrémentée de 1 chaque fois que l'entrée d'incrémentation passe de OFF à ON, et est décrémentée de 1 chaque fois que l'entrée de décrémentation passe de OFF à ON. La PV peut fluctuer entre 0 et la SV. Entrée d'incrémentation Entrée de décrémentation PV de compteur Lors de l'incrémentation, le drapeau de fin est mis sur ON si la PV est incrémentée de la SV jusque 0 et est remis sur OFF lorsque la PV est incrémentée de 0 à 1. 264 Chapitre 3-6 Instructions de temporisateur et compteur PV de compteur SV +1 Drapeau de fin Lors de la décrémentation, le drapeau de fin est mis sur ON si la PV est décrémentée de 0 jusqu'à la SV et est remis sur OFF lorsque la PV est décrémentée de SV à SV–1. SV PV de compteur −1 Drapeau de fin Drapeaux Nom Drapeau d'erreur Précautions Etiquette Fonctionnement ER ON si N est adressé indirectement via un registre d'index mais l'adresse dans le registre d'index ne correspond pas à l'adresse PV d'un compteur. ON si en mode BCD et S ne contient pas de données BCD. OFF dans tous les autres cas. Les numéros de compteur sont partagés par les instructions CNT, CNTX(546), CNTR(012), CNTRX(548), CNTW(814) et CNTWX(818). Si deux compteurs partagent le même numéro mais ne sont pas utilisés simultanément, une erreur de duplication est générée à la vérification du programme mais les compteurs fonctionnent normalement. Les compteurs qui partagent le même numéro ne fonctionnent pas correctement s'ils sont utilisés simultanément. La PV n'est pas modifiée si les entrées d'incrémentation et de décrémentation passent toutes deux de OFF à ON au même moment. Si l'entrée de réinitialisation est sur ON, la PV est réinitialisée à 0 et les deux entrées de comptage sont ignorées. Le drapeau de fin est sur ON uniquement si la PV a été incrémentée de la SV à 0 ou décrémentée de 0 à la SV ; il est sur OFF dans tous les autres cas. Lors de la saisie de l'instruction CNTR(012)/CNTRX(548) sous forme mnémonique, saisissez d'abord l'entrée d'incrémentation (II), puis l'entrée de décrémentation (DI), l'entrée de réinitialisation (R) et enfin l'instruction CNTR(012)/CNTRX(548). Lors de la saisie sous forme de schéma contact, saisissez d'abord l'entrée d'incrémentation (II), ensuite l'instruction CNTR(012)/CNTRX(548), l'entrée de décrémentation (DI) et enfin l'entrée de réinitialisation (R). Exemples Fonctionnement de base de CNTR(012)/CNTRX(548) La PV de compteur est réinitialisée à 0 en mettant l'entrée de réinitialisation (CIO 000002) sur ON et OFF. La PV est incrémentée de 1 chaque fois que l'entrée d'incrémentation (CIO 000000) passe de OFF à ON. Si la PV est incrémentée à partir de la SV (3), elle est automatiquement réinitialisée à 0 et le drapeau de fin est mis sur ON. De même, la PV est incrémentée de 1 chaque fois que l'entrée de décrémentation (CIO 000001) passe de OFF à ON. Si la PV est décrémentée à partir de 0, elle est automatiquement réinitialisée à la SV (3) et le drapeau de fin est mis sur ON. 265 Chapitre 3-6 Instructions de temporisateur et compteur Entrée d'incrémentation Entrée de décrémentation Entrée de réinitialisation Entrée d'incrémentation CIO 000000 Entrée de décrémentation CIO 000001 Entrée de réinitialisation CIO 000002 PV de compteur C0001 SV Drapeau de fin C0001 Spécification de la SV dans un mot Dans l'exemple suivant, la SV pour l'instruction CNTR(012) 0007 est déterminée par le contenu de CIO 0001. Si le contenu de CIO 0001 est contrôlé par un commutateur externe, la valeur de consigne peut être modifiée manuellement à partir du commutateur. SV fixe : 5000 SV: CIO 0001 Entrée d'incrémentation Entrée de décrémentation Drapeau de fin Glissement 266 Glissement Chapitre 3-6 Instructions de temporisateur et compteur 3-6-9 RESET TIMER/COUNTER : CNR(545)/CNRX(547) Objet Réinitialise les temporisateurs ou les compteurs dans l'intervalle des numéros de temporisateur et de compteur spécifié. Symbole du schéma contact BCD CNR(545) N1 N2 N1: Premier numéro de la plage N2: Dernier numéro de la plage Binaire CNRX(547) N1 N2 N1: Premier numéro de la plage N2: Dernier numéro de la plage Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Opérandes Zones de Zones de programmes de bloc programmes de pas OK OK CNR(545)/ CNRX(547) @CNR(545)/ CNRX(547) Non prise en charge. Non prise en charge. Sousprogrammes OK Tâches d'interruption OK N1: Premier numéro de la plage N1 doit être un numéro de temporisateur compris entre T0000 et T4095 ou un numéro de compteur compris entre C0000 et C4095. N2: Dernier numéro de la plage N2 doit être un numéro de temporisateur compris entre T0000 et T4095 ou un numéro de compteur compris entre C0000 et C4095. Remarque N1 et N2 doivent être dans la même zone de données, en d'autres termes, N1 et N2 doivent être des numéros de temporisateur ou des numéros de compteur. Spécifications de l’opérande Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD N1 N2 --------C0000 à C4095 T0000 à T4095 --------- --------C0000 à C4095 T0000 à T4095 --------- --- --- 267 Chapitre 3-6 Instructions de temporisateur et compteur Zone Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index Description N1 N2 ------------,IR0 à ,IR15 –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 CNR(545)/CNRX(547) réinitialise les drapeaux de fin de tous les temporisateurs ou compteurs de N1 à N2. Dans le même temps, les PV sont toutes réglées à la valeur maximum (9999 pour BCD et FFFF pour le format binaire). (La PV est réglée à la SV à la prochaine exécution de l'instruction de temporisateur ou de compteur.) Réinitialisation des temporisateurs par CNR(545)/CNRX(547) Les temporisateurs suivants sont réinitialisés si leurs numéros de temporisateur sont compris dans la plage spécifiée : TIM, TIMX(550), TIMH(015), TIMHX(551), TMHH(540), TMHHX(552), TTIM(087), TTIMX(555), TIMW(813), TIMWX(816), TMHW(815) et TMHWX(817). Lorsqu'un temporisateur est réinitialisé, son drapeau de fin est mis sur OFF et sa PV est réglée à la valeur maximum de 9999. Remarque Les temporisateurs TIML(542), TIMLX(553), MTIM(543) et MTIMX(554) ne sont pas réinitialisés par CNR(545)/CNRX(547) car ils n'utilisent pas les numéros de temporisateur. Réinitialisation des compteurs par CNR(545)/CNRX(547) Les compteurs suivants sont réinitialisés si leurs numéros de compteur sont compris dans la plage spécifiée : CNT, CNTX(546), CNTR(012), CNTRX(548), CNTW(814) et CNTWX(818). Lorsqu'un compteur est réinitialisé, son drapeau de fin est mis sur OFF et sa PV est réglée à la valeur maximum de 9999. Drapeaux Nom EtiFonctionnement quette Drapeau ER ON si N1 est adressé indirectement via un registre d'index mais d'erreur l'adresse dans le registre d'index ne correspond pas à l'adresse PV d'un temporisateur ou d'un compteur. ON si N2 est adressé indirectement via un registre d'index mais l'adresse dans le registre d'index ne correspond pas à l'adresse PV d'un temporisateur ou d'un compteur. ON si N1 et N2 ne sont pas dans la même zone de données. OFF dans tous les autres cas. Précautions CNR(545)/CNRX(547) ne réinitialise pas les instructions de temporisateur/ compteur proprement dites, elle réinitialise les PV et les drapeaux de fin affectés à ces instructions. Dans la plupart des cas, l'effet de CNR(545)/ CNRX(547) diffère de la réinitialisation directe des instructions. Par exemple, si une instruction TIM/TIMX(550) est directement réinitialisée, sa PV est réglée à la SV mais si ce temporisateur est réinitialisé par CNR(545)/ CNRX(547), sa PV est réglée à la valeur maximum de 9999. Si N1 et N2 sont spécifiés avec N1>N2, seul le drapeau de fin pour le numéro de temporisateur/compteur est réinitialisé. Exemple Si CIO 000000 est sur ON dans l'exemple suivant, les drapeaux de fin pour les temporisateurs T0002 à T0005 sont mis sur OFF et les PV de temporisateur sont réglées à la valeur maximum de 9999. 268 Chapitre 3-6 Instructions de temporisateur et compteur Si CIO 000001 est sur ON, les drapeaux de fin pour les compteurs C0003 à C0007 sont mis sur OFF et les PV de compteur sont réglées à la valeur maximum de 9999. 3-6-10 Exemples d'applications de temporisateur et compteur Les exemples suivants montrent différentes applications des instructions de temporisateur et compteur dont la temporisation à long terme, le compteur à deux phases, le retard ON/OFF, le bit ponctuel et le bit de clignotement. Exemple 1 : Temporisation à long terme Les exemples de programme suivants indiquent trois méthodes pour créer une temporisation à long terme au moyen d'instructions TIM et CNT standard. Deux instructions TIM Dans cet exemple, deux instructions TIM sont associées pour effectuer une temporisation de 30 minutes. 000000 Adresse Instruction Opérandes 000000 000001 LD TIM 000002 000003 LD TIM 000004 000005 LD OUT T0001 T0002 000000 0001 #9000 T0001 0002 #9000 T0002 000200 Instructions TIM et CNT Dans cet exemple, une instruction TIM est associée à une instruction CNT pour effectuer une temporisation de 500 secondes. TIM 0001 génère une impulsion toutes les 5 s et CNT 0002 compte ces impulsions. La valeur de consigne pour cette combinaison correspond à l'intervalle de temporisation × SV de compteur. Dans ce cas, la SV de temporisateur serait 5 s × 100 = 500 s. Avec cette combinaison, la PV de temporisateur à long terme correspond à la PV d'un compteur maintenue pendant les interruptions d'alimentation. 269 Chapitre 3-6 Instructions de temporisateur et compteur Adresse Instruction Opérandes Démarrer Comptage progressif 000000 000001 000002 LD LD CNT 000003 000004 000005 000006 LD AND NOT AND NOT TIM 000007 000008 000009 000010 LD OUT LD OUT 010000 000001 0002 #0100 000000 010000 C0002 0001 #0050 T0001 010000 C0002 000201 Impulsion d'horloge et instruction CNT Dans cet exemple, une instruction CNT compte les impulsions à partir de l'impulsion d'horloge 1 s pour effectuer une temporisation de 700 secondes. En cas de OR entre le drapeau Premier cycle (A20011) et l'entrée de réinitialisation de compteur (CIO 000001), la PV de compteur est réinitialisée à la SV (0700) au début de l'exécution du programme plutôt que de reprendre le comptage à partir de la PV précédente. 000000 1 s (horloge 1 s) 000001 Exemple 2 : Compteur à deux phases Adresse 000000 000001 000002 LD AND LD 000000 1s 000001 000003 OR A20011 A20011 000004 CNT C0001 000005 000006 LD OUT 0001 #0700 C0001 000202 Si une SV supérieure à 9999 est requise, deux compteurs peuvent être associés comme le montre l'exemple suivant. Dans ce cas, deux instructions CNT sont associées pour effectuer un comptage BCD avec une SV de 20 000. Adresse 270 Instruction Opérandes Instruction Opérandes 000000 000001 000002 000003 000004 000005 LD AND LD NOT OR OR CNT 000006 000007 000008 LD LD NO CNT 000009 000010 LD OUT 000000 000001 000002 C0001 C0002 0001 #0100 C0001 000002 0002 #0200 C0002 000203 Chapitre 3-6 Instructions de temporisateur et compteur Exemple 3 : Retard ON/OFF Dans cet exemple, deux temporisateurs TIM sont associés à KEEP(011) pour effectuer un retard ON et un retard OFF. CIO 000500 est mis sur ON 5,0 secondes après le passage de CIO 000000 sur ON et passe à OFF 3,0 secondes après le passage de CIO 000000 sur OFF. Adresse Instruction Opérandes 000000 000001 LD TIM 000002 000003 000004 LD AND NOT TIM 000005 000006 000007 LD LD KEEP(011) 000000 0001 #0050 000500 000000 0002 #0030 T0001 T0002 000500 CIO 000000 CIO 000500 5,0 s Exemple 4 : Bit d’impulsion 3,0 s Une temporisation TIM peut être associée à OUT ou OUT NOT pour définir la durée pendant laquelle un bit donné est sur ON ou OFF. Dans cet exemple, CIO 000204 est sur ON pendant 1,5 seconde (SV de T0001) après que CIO 000000 passe à ON. Adresse Instruction Opérandes 000000 000001 000002 000003 000004 000005 000006 LD LD AND NOT OR OUT LD TIM 000007 000008 000009 000010 000011 LD OUT LD AND NOT OUT 000000 001000 010000 000000 001000 001000 0001 #0015 T0001 010000 001000 010000 000204 CIO 000000 CIO 000204 1,5 s 1,5 s 271 Chapitre 3-6 Instructions de temporisateur et compteur Exemple 4 : Bit de clignotement Les exemples de programme suivants indiquent deux méthodes pour créer des bits de clignotement. Le deuxième exemple simule une impulsion d'horloge. Deux instructions TIM Deux temporisateurs TIM peuvent être combinés pour qu'un bit se mette sur ON et OFF à intervalles réguliers tandis que la condition d'exécution est ON. Dans cet exemple, CIO 000205 est sur OFF pendant 1,0 seconde et ensuite sur ON pendant 1,5 seconde aussi longtemps que CIO 000000 est sur ON. Adresse Instruction Opérandes 000000 000001 000002 LD AND TIM 000003 000004 LD TIM 000005 000006 LD OUT 000000 T0002 0001 #0010 000205 0002 #0015 T0001 000205 CIO 000000 CIO 000205 1,0 s 1,5 s 1,0 s 1,5 s Impulsion d'horloge La condition d'exécution souhaitée peut être associée à une impulsion d'horloge pour simuler cette dernière (0,1 s, 0,2 s ou 1,0 s). Impulsion d'horloge de 1 s Adresse 000000 000001 000002 Instruction Opérandes LD AND OUT 000000 1s 000206 Impulsion d'horloge de 1 s , 3-6-11 Adressage indirect des numéros de temporisateur/compteur Les numéros de temporisateur et de compteur peuvent être adressés indirectement à l'aide de registres d'index. Si des registres d'index sont utilisés pour l'adressage indirect, utilisez MOVRW(561) (MOVE TIMER/COUNTER PV TO REGISTER) pour régler l'adresse mémoire de l'API de la PV de temporisateur ou de compteur souhaitée au registre d'index voulu. Les temporisateurs et compteurs suivants peuvent être adressés indirectement à l'aide de registres d'index. TIM, TIMX(550), TIMH(015), TIMHX(551), TTIM(087), TTIMX(555), TMHH(540), TMHHX(552), TIMW(813), TIMWX(816), TMHW(815), TMHWX(817), CNT, CNTX(546), CNTR(012), CNTRX(548), CNTW(814) et CNTWX(818). (Il s'agit de temporisateurs et compteurs qui utilisent des numéros de temporisateur et de compteur.) 272 Chapitre 3-6 Instructions de temporisateur et compteur L'instruction de temporisateur/compteur n'est pas exécutée si l'adresse mémoire de l'API dans le registre d'index spécifié ne correspond pas à l'adresse d'une PV de temporisateur ou de compteur. L'utilisation de registres d'index pour adresser indirectement des temporisateurs et des compteurs peut réduire la taille du programme et augmenter la flexibilité. Des sous-programmes communs peuvent, par exemple, être créés. Exemple L'exemple suivant indique une section de programme qui utilise l'adressage indirect pour définir et lancer 100 temporisateurs avec les SV contenues dans D00100 à D00199. IR0 contient l'adresse mémoire de l'API de la PV de temporisateur et IR1 contient l'adresse mémoire de l'API du drapeau de fin de temporisation. Adresse DM D00100 D00101 D00102 . . . D00199 Contenu 0010 0100 0050 . . . 0999 Fonction SV pour T0000 SV pour T0001 SV pour T0002 . . . SV pour T0099 P On 1 (Drapeau Toujours ON) 2 3 4 &100 FOR &100 5 @D00000 P On ++ (Drapeau Toujours ON) NEXT 1,2,3... 1. MOVRW(561) déplace l'adresse mémoire de l'API de la PV de temporisateur T0000 vers IR0. IR0 peut être ensuite utilisé à la place du numéro de temporisateur. 273 Chapitre 3-6 Instructions de temporisateur et compteur 2. MOVR(560) déplace l'adresse mémoire de l'API du drapeau de fin de temporisation T0000 vers IR1. 3. MOVR(560) déplace la mémoire adresse de l'API de CIO 200000 dans IR2. 4. MOV(021) déplace &100 dans D00000 pour l'adressage indirect des SV de temporisateur. 5. Les contenus de IR0, IR1, IR2 et D00000 sont incrémentés de 1 chaque fois que cette boucle est exécutée 100 fois, en lançant les temporisateurs T0000 à T0099. La boucle dans le programme ci-dessus comporte 4 paramètres d'entrée utilisés pour lancer les 100 temporisateurs avec ce sous-programme commun. IR0 IR1 IR2 L'adresse mémoire de l'API de la PV de temporisateur L'adresse mémoire de l'API du drapeau de fin de temporisation L'adresse mémoire de l'API de la condition d'exécution de temporisation D00000 L'adresse DM du mot contenant la SV de temporisateur Le sous-programme ci-dessous équivaut aux 400 instructions ci-dessous. Adresse Instruction Opérandes 200000 000000 000001 LD NOT TIM 000002 000003 000004 000005 LD OUT LD NOT TIM 000006 000007 LD OUT T0001 000008 000009 LD NOT TIM 200602 000010 000011 LD OUT 200002 0002 D00102 T0002 200002 000396 000397 LD NOT TIM 200602 0099 000398 000399 LD OUT D00199 T0000 200602 T0000 200001 T0099 274 200000 0000 D00100 T0000 200000 200001 0001 D00101 T0001 200001 Chapitre 3-7 Instructions de comparaison 3-7 Instructions de comparaison Ce chapitre décrit les instructions utilisées pour comparer des données de longueurs différentes et de différentes manières. Instruction Mnémonique Instructions de comparaison d'entrées Instructions de comparaison de temps COMPARE DOUBLE COMPARE SIGNED BINARY COMPARE DOUBLE SIGNED BINARY COMPARE MULTIPLE COMPARE TABLE COMPARE BLOCK COMPARE EXPANDED BLOCK COMPARE 3-7-1 Code fonction 300 à 328 Page 275 =, <>, <, <=, >, >= (S, L) (LD, AND, OR) =DT, <>DT, <DT, <=DT, >DT, >=DT (LD, AND, OR) CMP CMPL CPS CPSL 341 à 346 281 020 060 114 115 287 290 293 296 MCMP TCMP BCMP BCMP2 019 085 068 502 299 301 304 306 Instructions de comparaison d'entrées (300 à 328) Objet Les instructions de comparaison d'entrées comparent deux valeurs (constantes et/ou le contenu des mots spécifiés) et créent une condition d'exécution ON lorsque la condition de comparaison est vraie. Il existe des instructions de comparaison d'entrées pour comparer des données signées ou non signées, d’un mot ou de longueur double. Remarque Consultez 3-15-21 Instructions de comparaison à virgule flottante simple précision pour plus de détails sur les instructions de comparaison à virgule flottante simple précision et 3-16-21 Instructions d'entrée à virgule flottante double précision sur les instructions de comparaison d'entrées à virgule flottante double précision. Symbole du schéma contact Symbole et options S1 S1: Donnée de comparaison 1 S2 S2: Donnée de comparaison 2 Variations Variations Crée une condition d’exécution ON à chaque Instruction de comcycle où la comparaison est vraie paraison d'entrées Spécification de rafraîchissement immédiat Non prise en charge Zones de programmes applicables Spécifications de l'opérande pour les instructions pour données à un mot Zones de programmes de bloc OK Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zones de programmes de pas OK S1 SousTâches programmes d'interruption OK OK S2 CIO 0000 à CIO 6143 W000 à W511 H000 à H511 A000 à A959 275 Chapitre 3-7 Instructions de comparaison Zone Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index Spécifications de l'opérande pour les instructions pour données double longueur Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données 276 S1 S2 T0000 à T4095 C0000 à C4095 D00000 à D32767 E00000 à E32767 En_00000 à En_32767 (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_ 32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) #0000 à #FFFF (binaire) DR0 à DR15 --,IR0 à ,IR15 –2048 à +2047, IR0 à –2048 à +2047, IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 S1 CIO 0000 à CIO 6142 W000 à W510 H000 à H510 A000 à A958 T0000 à T4094 C0000 à C4094 D00000 à D32766 E00000 à E32766 En_00000 à En_32766 (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) #00000000 à #FFFFFFFF (binaire) --- S2 Chapitre 3-7 Instructions de comparaison Zone Registres d'index Adressage indirect à l’aide de registres d’index Description S2 S1 IR0 à IR15 (pour données non signées uniquement) ,IR0 à ,IR15 –2048 à +2047, IR0 à –2048 à +2047, IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 Les instructions de comparaison d'entrées comparent S1 et S2 comme valeurs signées ou non signées et créent une condition d'exécution ON si la condition de comparaison est vraie. Contrairement aux instructions telles que CMP(020) et CMPL(060), le résultat de l'instruction de comparaison d'entrées se reflète directement sous forme de condition d'exécution ; il n'est donc pas nécessaire d'accéder au résultat de la comparaison via un drapeau arithmétique et le programme est plus simple et plus rapide. Entrée des instructions Les instructions de comparaison d'entrées sont traitées tout comme les instructions LD, AND et OR pour contrôler l'exécution des instructions subséquentes. Type d'entrée LD AND OR Fonctionnement L'instruction peut être directement connectée à la barre de bus gauche. L'instruction ne peut pas être directement connectée à la barre de bus gauche. L'instruction peut être directement connectée à la barre de bus gauche. Connexion LD Condition d'exécution ON lorsque le résultat de la comparaison est vrai. < Condition d'exécution ON lorsque le résultat de la comparaison est vrai. Connexion AND < Connexion OR < Condition d'exécution ON lorsque le résultat de la comparaison est vrai. Options Les instructions de comparaison d'entrées peuvent comparer des donnés signées ou non signées, de même que des valeurs à un mot ou double lon- 277 Chapitre 3-7 Instructions de comparaison gueur. Si aucune option n'est spécifiée, la comparaison porte sur des données non signées à un mot. Etant donné les trois types d'entrée et les deux options, on compte 72 instructions de comparaison d'entrées différentes. Symbole = <> < <= > >= (Egal à) (Différent de) (Inférieur à) (Inférieur ou égal à) (Supérieur à) (Supérieur ou égal à) Option (format des données) Option (longueur des données) Aucun : Données non signées S : Données signées Aucun : Données à un mot L : Données double longueur Les instructions de comparaison d'entrées non signées (c.-à-d. instructions sans l'option S) peuvent traiter des données binaires ou BCD non signées. Les instructions de comparaison d'entrées signées (c.-à-d. instructions avec l'option S) traitent des données binaires signées. Résumé des instructions de comparaion d'entrées Le tableau ci-dessous indique les codes fonction, les mnémoniques, les noms et les fonctions des 72 instructions de comparaison d'entrées. (Pour les comparaisons à un mot C1=S1 et C2=S2; pour les comparaisons doubles C1=S1+1, S1 et C2=S2+1, S2.) Code Mnémonique Nom 300 LD = LOAD EQUAL AND = AND EQUAL OR = OR EQUAL 301 LD=L LOAD DOUBLE EQUAL AND=L AND DOUBLE EQUAL OR=L OR DOUBLE EQUAL 302 LD=S LOAD SIGNED EQUAL AND=S AND SIGNED EQUAL OR=S OR SIGNED EQUAL 303 LD=SL LOAD DOUBLE SIGNED EQUAL AND=SL AND DOUBLE SIGNED EQUAL OR=SL OR DOUBLE SIGNED EQUAL 305 LD<> LOAD NOT EQUAL AND<> AND NOT EQUAL OR<> OR NOT EQUAL 306 LD<>L LOAD DOUBLE NOT EQUAL AND<>L AND DOUBLE NOT EQUAL OR<>L OR DOUBLE NOT EQUAL 307 LD<>S LOAD SIGNED NOT EQUAL AND<>S AND SIGNED NOT EQUAL OR<>S OR SIGNED NOT EQUAL 308 LD<>SL LOAD DOUBLE SIGNED NOT EQUAL AND<>SL AND DOUBLE SIGNED NOT EQUAL OR<>SL OR DOUBLE SIGNED NOT EQUAL 278 Fonction Vrai si C1 = C2 Vrai si C1 ≠ C2 Instructions de comparaison Chapitre 3-7 Code Mnémonique Nom 310 LD< LOAD LESS THAN AND< AND LESS THAN OR< OR LESS THAN 311 LD<L LOAD DOUBLE LESS THAN AND<L AND DOUBLE LESS THAN OR<L OR DOUBLE LESS THAN 312 LD<S LOAD SIGNED LESS THAN AND<S AND SIGNED LESS THAN OR<S OR SIGNED LESS THAN 313 LD<SL LOAD DOUBLE SIGNED LESS THAN AND<SL AND DOUBLE SIGNED LESS THAN OR<SL OR DOUBLE SIGNED LESS THAN 315 LD <= LOAD LESS THAN OR EQUAL AND<= AND LESS THAN OR EQUAL OR<= OR LESS THAN OR EQUAL 316 LD<=L LOAD DOUBLE LESS THAN OR EQUAL AND<=L AND DOUBLE LESS THAN OR EQUAL OR<=L OR DOUBLE LESS THAN OR EQUAL 317 LD <=S LOAD SIGNED LESS THAN OR EQUAL AND<=S AND SIGNED LESS THAN OR EQUAL OR<=S OR SIGNED LESS THAN OR EQUAL 318 LD<=SL LOAD DOUBLE SIGNED LESS THAN OR EQUAL AND<=SL AND DOUBLE SIGNED LESS THAN OR EQUAL OR<=SL OR DOUBLE SIGNED LESS THAN OR EQUAL 320 LD> LOAD GREATER THAN AND> AND GREATER THAN OR> OR GREATER THAN 321 LD>L LOAD DOUBLE GREATER THAN AND>L AND DOUBLE GREATER THAN OR>L OR DOUBLE GREATER THAN 322 LD>S LOAD SIGNED GREATER THAN AND>S AND SIGNED GREATER THAN OR>S OR SIGNED GREATER THAN 323 LD>SL LOAD DOUBLE SIGNED GREATER THAN AND>SL AND DOUBLE SIGNED GREATER THAN OR>SL OR DOUBLE SIGNED GREATER THAN 325 LD>= LOAD GREATER THAN OR EQUAL AND>= AND GREATER THAN OR EQUAL OR>= OR GREATER THAN OR EQUAL 326 LD>=L LOAD DOUBLE GREATER THAN OR EQUAL AND>=L AND DOUBLE GREATER THAN OR EQUAL OR>=L OR DOUBLE GREATER THAN OR EQUAL 327 LD>=S LOAD SIGNED GREATER THAN OR EQUAL AND>=S AND SIGNED GREATER THAN OR EQUAL OR>=S OR SIGNED GREATER THAN OR EQUAL 328 LD>=SL LOAD DBL SIGNED GREATER THAN OR EQUAL AND>=SL AND DBL SIGNED GREATER THAN OR EQUAL OR >=SL OR DBL SIGNED GREATER THAN OR EQUAL Fonction Vrai si C1 < C2 Vrai si C1 ≤ C2 Vrai si C1 ≤ C2 Vrai si C1 > C2 Vrai si C1 ≥ C2 279 Chapitre 3-7 Instructions de comparaison Drapeaux Nom Drapeau d'erreur Drapeau supérieur à Etiquette Fonctionnement ER OFF ou inchangé (voir remarque.) > ON si S1 > S2 avec données à un mot. Drapeau supérieur ou égal à >= ON si S1+1, S1 > S2+1, S2 avec données double longueur. OFF dans tous les autres cas. ON si S1 ≥ S2 avec données à un mot. Drapeau d'égalité = ON si S1+1, S1 ≥ S2+1, S2 avec données double longueur. OFF dans tous les autres cas. ON si S1 = S2 avec données à un mot. Drapeau de non = égalité ON si S1+1, S1 = S2+1, S2 avec données double longueur. OFF dans tous les autres cas. ON si S1 ≠ S2 avec données à un mot. Drapeau inférieur à < ON si S1+1, S1 ≠ S2+1, S2 avec données double longueur. OFF dans tous les autres cas. ON si S1 < S2 avec données à un mot. Drapeau inférieur ou égal à <= ON si S1+1, S1 < S2+1, S2 avec données double longueur. OFF dans tous les autres cas. ON si S1 ≤ S2 avec données à un mot. Drapeau négatif N ON si S1+1, S1 ≤ S2+1, S2 avec données double longueur. OFF dans tous les autres cas. OFF ou inchangé (voir remarque.) Remarque Dans les UC CS1 et CJ1, ces drapeaux passent OFF. Dans les UC CS1-H, CJ1-H, CJ1M et CS1D, ces drapeaux restent inchangés. Précautions Les instructions de comparaison d'entrées ne peuvent pas être utilisées comme instructions finales ; en d'autres termes, une autre instruction doit être utilisée entre ces instructions et la barre de bus droite. Exemples AND LESS THAN : AND<(310) Lorsque CIO 000000 est sur ON dans l'exemple suivant, les contenus de D00100 et D00200 sont comparés comme des données binaires non signées. Si le contenu de D00100 est inférieur à celui de D00200, CIO 005000 se met sur ON et l'exécution passe à la ligne suivante. Si le contenu de D00100 n'est pas inférieur à celui de D00200, le reste de la ligne d'instruction est sauté et l'exécution passe à la ligne d'instruction suivante. 005000 000000 < 005001 000001 <S Comparaison LESS THAN non signée S1: D00100 S2: D00200 8714 3A1C Décimal : 34,580 Décimal : 14,876 34,580 > 14,876 (Ne passe pas à la ligne suivante.) AND SIGNED LESS THAN : AND<S(312) Lorsque CIO 000001 est sur ON dans l'exemple suivant, les contenus de D00110 et D00210 sont comparés comme des données binaires signées. Si 280 Chapitre 3-7 Instructions de comparaison le contenu de D00110 est inférieur à celui de D00210, CIO 005001 se met sur ON et l'exécution passe à la ligne suivante. Si le contenu de D00110 n'est pas inférieur à celui de D00210, le reste de la ligne d'instruction est sauté et l'exécution passe à la ligne d'instruction suivante. Comparaison LESS THAN signée S1: D00110 S2: D00210 8714 3A1C Décimal : −30,956 Décimal : 14,876 −30,956 < 14,876 (Passe à la ligne suivante.) 3-7-2 Instructions de comparaison de temps (341 à 346) Objet Les instructions de comparaison de temps comparent deux valeurs de temps BCD et créent une condition d'exécution ON lorsque la condition de comparaison est vraie. Les instructions de comparaison de temps sont traitées tout comme les instructions LD, AND et OR pour contrôler l'exécution des instructions subséquentes. Ces instructions sont prises en charge uniquement par les UC série CS/CJ ver. 2.0 ou supérieure. Symbole du schéma contact LD Symbole C C : Mot de contrôle S1 S1: Premier mot temps présent S2 S2: Premier mot temps de comparaison AND Symbole C C : Mot de contrôle S1 S1: Premier mot temps présent S2 S2: Premier mot temps de comparaison OR Symbole C C : Mot de contrôle S1 S1: Premier mot temps présent S2 S2: Premier mot temps de comparaison Variations Variations Crée une condition d’exécution ON à chaque Instruction de comcycle où la comparaison est vraie paraison de temps Spécification de rafraîchissement immédiat Non prise en charge Zones de programmes applicables Zones de programmes de bloc OK Zones de programmes de pas OK SousTâches programmes d'interruption OK OK 281 Chapitre 3-7 Instructions de comparaison Opérandes C : Mot de contrôle Les bits 00 à 05 de C spécifient si les données de temps sont ou non masquées pour la comparaison. Les bits 00 à 05 masquent respectivement les secondes, minutes, heures, jour, mois et année. Si toutes les 6 valeurs sont masquées, l'instruction n'est pas exécutée, la condition d'exécution se met sur OFF et le drapeau d'erreur passe à ON. 15 8 7 6 5 4 3 2 1 0 C 0 0 0 0 0 0 0 0 0 0 Masque les données secondes si sur ON. Masque les données minutes si sur ON. Masque les données heures si sur ON. Masque les données jour si sur ON. Masque les données mois si sur ON. Masque les données année si sur ON. S1 à S1+2 : Données de temps présent S1 à S1+2 contiennent les données de temps présent. S1 à S1+2 doivent être dans la même zone de données. 15 8 7 0 S1 Secondes : 00 à 59 (BCD) Minutes : 00 à 59 (BCD) 15 8 7 0 S1+1 Heure : 00 à 23 (BCD) Jour : 01 à 31 (BCD) 15 8 7 0 S1+2 Mois : 01 à 12 (BCD) Année : 00 à 99 (BCD) Remarque En cas d'utilisation des données de l'horloge interne de l'UC à des fins de comparaison, réglez S1 sur A351 pour spécifier les données d'horloge interne de l'UC (A351 à A353). 282 Chapitre 3-7 Instructions de comparaison S2 à S2+2 : Comparaison des données de temps S2 à S2+2 contiennent les données de temps de comparaison. S2 à S2+2 doivent être dans la même zone de données. 15 8 7 0 S2 Secondes : 00 à 59 (BCD) Minutes : 00 à 59 (BCD) 15 8 7 0 S2+1 Heure : 00 à 23 (BCD) Jour : 01 à 31 (BCD) 15 8 7 0 S2+2 Mois : 01 à 12 (BCD) Année : 00 à 99 (BCD) Remarque La valeur année indique les deux derniers chiffres de l'année. Les valeurs 00 à 97 sont interprétées comme 2000 à 2097. Les valeurs 98 et 99 sont interprétées comme 1998 et 1999. Spécifications de l’opérande Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque C S1 S2 CIO 0000 à CIO 6143 W000 à W511 H000 à H511 A448 à A959 T0000 à T4095 C0000 à C4095 D00000 à D32767 E00000 à E32767 CIO 0000 à CIO 6141 W000 à W509 H000 à H509 A000 à A957 T0000 à T4093 C0000 à C4093 D00000 à D32765 E00000 à E32765 CIO 0000 à CIO 6142 W000 à W510 H000 à H510 A000 à A958 T0000 à T4094 C0000 à C4094 D00000 à D32766 E00000 à E32766 En_00000 à En_32767 (n = 0 à C) En_00000 à En_32765 (n = 0 à C) Adresses DM/EM indirectes en binaire --- Adresses DM/EM indirectes en BCD --- En_00000 à En_32766 (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) 283 Chapitre 3-7 Instructions de comparaison Zone Description C S2 S1 Constantes Voir page précédente. Voir page précédente. --- Registres de données Registres d'index Adressage indirect à l’aide de registres d’index ----,IR0 à ,IR15 –2048 à +2047, IR0 à –2048 à +2047, IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 Les instructions de comparaison de temps comparent les valeurs non masquées (bit correspondant de C réglé sur 0) des données de temps présent dans S1 à S1+2 avec les données de temps de comparaison dans S2 à S2+2 et créent une condition d'exécution ON si la condition de comparaison est vraie. Le résultat d'une instruction de comparaison de temps se réflète simultanément dans les drapeaux arithmétiques (=, <>, <, <=, >, >=). Il existe 18 combinaisons possibles d'instructions de comparaison de temps. Toute valeur de temps masquée dans le mot de contrôle (C) n'est pas incluse dans la comparaison. Le tableau ci-dessous indique l'état ON/OFF de chaque drapeau pour chaque résultat de comparaison. Résultat = Etat du drapeau < <= OFF ON S1 = S2 ON <> OFF S1 > S2 OFF ON OFF OFF ON ON S1 < S2 OFF ON ON ON OFF OFF S1 Comparaison Résultat > OFF >= ON S2 Drapeaux de condition (=, <>, <, <=, >, >=) Masquage des valeurs de temps Les valeurs de temps peuvent être masquées individuellement et exclues de l'opération de comparaison. Pour masquer une valeur de temps, réglez le bit correspondant dans le mot de contrôle (C) sur 1. Les bits 00 à 05 de C masquent respectivement les secondes, minutes, heures, jour, mois et année. Exemple : Lorsque C = 39 hex, les 6 bits les plus à droite sont 111001 (année=1, mois=1, jour=1, heures=0, minutes=0 et secondes=1), de sorte que seules les heures et minutes sont comparées. Cette configuration de masque peut être utilisée pour effectuer une opération particulière à un moment donné (heure et minute) chaque jour. 284 Chapitre 3-7 Instructions de comparaison Données de temps présent 15 08 07 S1+1 00 Seconde (00 à 59, BCD) S1 Minute (00 à 59, BCD) Jour du mois (01 à 31, BCD) Année (00 à S1+2 99, BCD) Comparaison des données de temps 15 S2 08 07 Minute (00 à 59, BCD) Heure (00 à 23, BCD) S2+1 Jour du mois Heure (00 à 23, BCD) Mois (01 à 12, BCD) Année (00 à S2+2 99, BCD) Mois (01 à 12, BCD) Compare uniquement les données heures et minutes. (01 à 31, BCD) 00 Seconde (00 à 59, BCD) Les données année, mois, jour et secondes sont masquées. Les instructions de comparaison de données précédentes ont comparé des données en unités de 16 bits. Les instructions de comparaison de temps se limitent à la comparaison de valeurs de temps à 8 bits. Le tableau ci-dessous illustre la structure de la zone Calendrier/Horloge interne de l'UC. Adresses A35100 à A35107 A35108 à A35115 A35200 à A35207 A35208 à A35215 A35300 à A35307 A35308 à A35315 Contenu Seconde (00 à 59, BCD) Minute (00 à 59, BCD) Heure (00 à 23, BCD) Jour du mois (01 à 31, BCD) Mois (01 à 12, BCD) Année (00 à 99, BCD) La zone Calendrier/Horloge peut être réglée au moyen d'un périphérique de programmation (console de programmation incluse), de l'instruction DATE(735) ou de la commande FINS “CLOCK WRITE” (0702 hex). Résumé des instructions de comparaion de temps Le tableau ci-dessous indique les codes fonction, les mnémoniques, les noms et les fonctions des 18 instructions de comparaison de temps. Code Mnémonique 341 LD =DT AND=DT OR=DT 342 LD<>DT AND<>DT OR<>DT 343 LD<DT AND<DT OR<DT 344 LD<=DT AND <= DT OR<=DT 345 LD > DT AND>DT OR>DT 346 LD>=DT AND>=DT OR>=DT Nom LOAD EQUAL AND EQUAL OR EQUAL LOAD NOT EQUAL AND NOT EQUAL OR NOT EQUAL LOAD LESS THAN AND LESS THAN OR LESS THAN LOAD LESS THAN OR EQUAL AND LESS THAN OR EQUAL OR LESS THAN OR EQUAL LOAD GREATER THAN AND GREATER THAN OR GREATER THAN LOAD GREATER THAN OR EQUAL AND GREATER THAN OR EQUAL OR GREATER THAN OR EQUAL Fonction Vrai si S1 = S2 Vrai si S1 ≠ S2 Vrai si S1 < S2 Vrai si S1 ≤ S2 Vrai si S1 > S2 Vrai si S1 ≥ S2 285 Chapitre 3-7 Instructions de comparaison Drapeaux Nom Drapeau d'erreur Etiquette Fonctionnement ER ON si tous les 6 bits de masque (bits 00 à 05 de C) sont sur ON. OFF dans tous les autres cas. > ON si S1 > S2. Drapeau supérieur à Drapeau supérieur ou égal à >= OFF dans tous les autres cas. ON si S1 ≥ S2. Drapeau d'égalité = OFF dans tous les autres cas. ON si S1 = S2. OFF dans tous les autres cas. ON si S1 ≠ S2. Drapeau de non = égalité Drapeau inférieur à < OFF dans tous les autres cas. ON si S1 < S2. Drapeau inférieur ou égal à <= OFF dans tous les autres cas. ON si S1 ≤ S2. OFF dans tous les autres cas. OFF ou inchangé (voir remarque.) Drapeau négatif N Remarque Dans les UC CS1 et CJ1, ces drapeaux passent OFF. Dans les UC CS1-H, CJ1-H, CJ1M et CS1D, ces drapeaux restent inchangés. Précautions Les instructions de comparaison de temps ne peuvent pas être utilisées comme instructions finales ; en d'autres termes, une autre instruction doit être utilisée entre ces instructions et la barre de bus droite. Exemple Si CIO 000000 est sur ON et que l'heure est 13:00:00, CIO 005000 est mis sur ON. Les contenus de A351 à A353 (données calendrier/horloge interne de l'UC) sont utilisés comme données de temps présent et les contenus de D00100 à D00102 comme données de temps de comparaison. Les valeurs d'année, mois et jour sont masquées ; seules les données heures, minutes et secondes sont donc comparées. 005000 000000 =DT D00000 C D00000 S1 A352 S2 D00100 7 6 5 4 3 2 1 0 - - 1 1 1 0 0 0 D00000 réglé sur 0038 hex Secondes comparées. Minutes comparées. Heures comparées. Jour masqué. Mois masqué. Année masquée. Les données grisées sont comparées. 15 A351 8 7 Minute A352 Jour du mois A353 Année 15 0 Seconde S2: D00100 8 7 0 00 00 Heure S2+1 : D00101 - 13 Mois S2+2 : D00102 - - Drapeaux de condition réglés dès que la condition d'exécution passe à ON. 286 Chapitre 3-7 Instructions de comparaison 3-7-3 COMPARE : CMP(020) Objet Compare deux valeurs binaires non signées (constantes et/ou le contenu des mots spécifiés) et place le résultat dans les drapeaux arithmétiques dans la zone auxiliaire. Symbole du schéma contact CMP(020) S1 S2 S1: Donnée de comparaison 1 S2: Donnée de comparaison 2 Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat (voir remarque.) CMP(020) Non prise en charge Non prise en charge !CMP(020) Remarque Le rafraîchissement immédiat n'est pas pris en charge par les UC CS1D pour les systèmes d'UC en duplex. Zones de programmes applicables Spécifications de l’opérande Zones de programmes de bloc OK Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données Zones de programmes de pas OK SousTâches programmes d'interruption OK OK S1 S2 CIO 0000 à CIO 6143 W000 à W511 H000 à H511 A000 à A959 T0000 à T4095 C0000 à C4095 D00000 à D32767 E00000 à E32767 En_00000 à En_32767 (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) #0000 à #FFFF (binaire) DR0 à DR15 287 Chapitre 3-7 Instructions de comparaison Zone S2 S1 Registres d'index --Adressage indirect à ,IR0 à ,IR15 l’aide de registres d’index –2048 à +2047, IR0 à –2048 à +2047, IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 Description CMP(020) compare les données binaires non signées dans S1 et S2 et place le résultat dans les drapeaux arithmétiques (drapeaux supérieur à, supérieur ou égal à, égal à, inférieur ou égal à, inférieur à, et drapeau de non égalité) de la zone auxiliaire. Comparaison de valeurs binaires non signées Drapeaux arithmétiques (>, >=, =, <=, <, <>) Etat du drapeau de condition Le tableau ci-dessous indique l'état des drapeaux arithmétiques après exécution de CMP(020). (L'état “---” indique que le drapeau peut être sur ON ou OFF.) Résultat CMP(020) S1 > S2 > ON >= ON Etat du drapeau = <= OFF OFF < OFF <> ON S1 = S2 OFF ON ON ON OFF OFF S1 < S2 OFF OFF OFF ON ON ON Utilisation des résultats de CMP(020) dans le programme Lorsque CMP(020) est exécutée, le résultat se reflète dans les drapeaux arithmétiques. Contrôlez la sortie voulue ou l'instruction finale avec une branche de la même condition d'entrée qui contrôle CMP(020), comme indiqué dans le schéma ci-dessous. Dans ce cas, le drapeau d'égalité et la sortie A passent à ON lorsque S1 = S2. Utilisation correcte de CMP(020) CMP S1 S2 Drapeau arithmétique (Exemple : Drapeau d'égalité) A Utilisation des résultats de CMP(020) dans le programme Ne pas programmer d'autre instruction entre CMP(020) et l'instruction contrôlée par le drapeau arithmétique car l'autre instruction risque de modifier l'état du drapeau arithmétique. Dans ce cas, les résultats de l'instruction B risquent de modifier les résultats de CMP(020). 288 Chapitre 3-7 Instructions de comparaison Utilisation incorrecte de CMP(020) CMP S1 S2 Instruction B Drapeau arithmétique (Exemple : Drapeau d'égalité) A La variation de rafraîchissement immédiat (!CMP(020)) peut être utilisée avec des mots affectés aux entrées externes spécifiées dans S1 et/ou S2. Lorsque !CMP(020) est exécutée, le rafraîchissement de l'entrée est effectué pour le mot d'entrée externe spécifié dans S1 et/ou S2 et cette valeur rafraîchie est comparée. (Le rafraîchissement immédiat ne peut pas être réalisé sur les entrées affectées aux cartes E/S haute densité Groupe 2 ni aux cartes montées sur racks esclaves.) Drapeaux Nom Etiquette CX-Programmer P_ER P_GT Drapeau d'erreur Drapeau supérieur à Drapeau supérieur ou égal à Drapeau d'égalité P_EQ Drapeau de non égalité Drapeau inférieur à P_NE P_LT Drapeau inférieur ou égal à Drapeau négatif P_GE P_LE P_N Etiquette de console Fonctionnement de programmation ER OFF ou inchangé (voir remarque.) > ON si S1 > S2. >= OFF dans tous les autres cas. ON si S1 ≥ S2. = OFF dans tous les autres cas. ON si S1 = S2. = OFF dans tous les autres cas. ON si S1 ≠ S2. < OFF dans tous les autres cas. ON si S1 < S2. <= OFF dans tous les autres cas. ON si S1 ≤ S2. N OFF dans tous les autres cas. OFF ou inchangé (voir remarque.) Remarque Dans les UC CS1 et CJ1, ces drapeaux sont sur OFF. Dans les UC CS1-H, CJ1-H, CJ1M et CS1D, ces drapeaux restent inchangés. Précautions Ne pas programmer d'autre instruction entre CMP(020) et une condition d'entrée qui accède au résultat de CMP(020) car l'autre instruction risque de modifier l'état des drapeaux arithmétiques. 289 Chapitre 3-7 Instructions de comparaison 3-7-4 DOUBLE COMPARE : CMPL(060) Objet Symbole du schéma contact Compare deux valeurs binaires doubles non signées (constantes et/ou le contenu des mots spécifiés) et place le résultat dans les drapeaux arithmétiques de la zone auxiliaire. CMPL(060) S1 S2 S1: Donnée de comparaison 1 S2: Donnée de comparaison 2 Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Spécifications de l’opérande Zones de programmes de bloc OK Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque Zones de programmes de pas OK S1 CMPL(060) Non prise en charge Non prise en charge Non prise en charge SousTâches programmes d'interruption OK OK S2 CIO 0000 à CIO 6142 W000 à W510 H000 à H510 A000 à A958 T0000 à T4094 C0000 à C4094 D00000 à D32766 E00000 à E32766 En_00000 à En_32766 (n = 0 à C) Adresses DM/EM @ D00000 à @ D32767 indirectes en binaire @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) Adresses DM/EM *D00000 à *D32767 indirectes en BCD *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) Constantes #00000000 à #FFFFFFFF (binaire) Registres de données --Registres d'index IR0 à IR15 Adressage indirect à ,IR0 à ,IR15 l’aide de registres d’index –2048 à +2047, IR0 à –2048 à +2047, IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 290 Chapitre 3-7 Instructions de comparaison Description CMPL(060) compare les données binaires non signées dans S1 +1, S1 et S2+1, S2 et place le résultat dans les drapeaux arithmétiques (drapeaux supérieur à, supérieur ou égal à, égal à, inférieur ou égal à, inférieur à, et drapeau de non égalité) à l'intérieur de la zone auxiliaire. Comparaison de valeurs binaires non signées S2+1 Drapeaux arithmétiques (>, >=, =, <=, <, <>) Etat du drapeau arithmétique Le tableau ci-dessous indique l'état des drapeaux arithmétiques après exécution de CMPL(060). (L'état “---” indique que le drapeau peut être sur ON ou OFF.) Résultat CMPL(060) S1 +1, S1 > S2+1, S2 ON >= ON Etat du drapeau = <= OFF OFF < OFF <> ON S1+1, S1 = S2+1, S2 ON ON ON OFF OFF OFF OFF ON ON ON > OFF S1 +1, S1 < S2+1, S2 OFF Utilisation des résultats de CMPL(060) dans le programme Lorsque CMPL(060) est exécutée, le résultat se reflète dans les drapeaux arithmétiques. Contrôlez la sortie voulue ou l'instruction finale avec une branche de la même condition d'entrée qui contrôle CMPL(060), comme indiqué dans le schéma ci-dessous. Dans ce cas, le drapeau d'égalité et la sortie A passent à ON lorsque S1 +1, S1 = S2+1, S2. Utilisation correcte de CMPL(060) CMPL S1 S2 Drapeau arithmétique (Exemple : Drapeau d'égalité) A Utilisation des résultats de CMPL(060) dans le programme Ne pas programmer d'autre instruction entre CMPL(060) et l'instruction contrôlée par le drapeau arithmétique car l'autre instruction risque de modifier l'état du drapeau arithmétique. Dans ce cas, les résultats de l'instruction B risquent de modifier les résultats de CMPL(060). 291 Chapitre 3-7 Instructions de comparaison Utilisation incorrecte de CMPL(060) CMPL S1 S2 Instruction B Drapeau arithmétique (Exemple : Drapeau d'égalité) A Drapeaux Nom Etiquette CX-Programmer P_ER P_GT Drapeau d'erreur Drapeau supérieur à Etiquette de console Fonctionnement de programmation ER OFF ou inchangé (voir remarque.) > ON si S1+1, S1 > S2+1, S2. Drapeau supérieur ou égal à P_GE >= OFF dans tous les autres cas. ON si S1+1, S1 ≥ S2+1, S2. Drapeau d'égalité P_EQ = OFF dans tous les autres cas. ON si S1+1, S1 = S2+1, S2. Drapeau de non égalité P_NE <> OFF dans tous les autres cas. ON si S1+1, S1 ≠ S2+1, S2. Drapeau inférieur à P_LT < OFF dans tous les autres cas. ON si S1+1, S1 < S2+1, S2. <= OFF dans tous les autres cas. ON si S1+1, S1 ≤ S2+1, S2. N OFF dans tous les autres cas. OFF ou inchangé (voir remarque.) Drapeau inférieur ou égal à Drapeau négatif P_LE P_N Remarque Dans les UC CS1 et CJ1, ces drapeaux passent OFF. Dans les UC CS1-H, CJ1-H, CJ1M et CS1D, ces drapeaux restent inchangés. Précautions Ne pas programmer d'autre instruction entre CMPL(060) et une condition d'entrée qui accède au résultat de CMPL(060) car l'autre instruction risque de modifier l'état des drapeaux arithmétiques. Exemple Lorsque CIO 000000 est sur ON dans l'exemple suivant, les données binaires non signées à 8 chiffres dans CIO 0011 et CIO 0010 sont comparées aux données binaires non signées à 8 chiffres dans CIO 0009 et CIO 0008, et le résultat est placé dans les drapeaux arithmétiques. Les résultats enregistrés dans les drapeaux supérieur à, égal à et inférieur à sont immédiatement sauvegardés dans CIO 000200 (supérieur à), CIO 000201 (égal à) et CIO 000202 (inférieur à). 292 Chapitre 3-7 Instructions de comparaison Etat du drapeau Résultat Comparaison 3-7-5 > (0) = (0) < (1) SIGNED BINARY COMPARE : CPS(114) Objet Compare deux valeurs binaires signées (constantes et/ou le contenu des mots spécifiés) et place le résultat dans les drapeaux arithmétiques de la zone auxiliaire. Symbole du schéma contact CPS(114) S1 S2 S1: Donnée de comparaison 1 S2: Donnée de comparaison 2 Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat (voir remarque.) CPS(114) Non prise en charge Non prise en charge !CPS(114) Remarque Le rafraîchissement immédiat n'est pas pris en charge par les UC CS1D. Zones de programmes applicables Spécifications de l’opérande Zones de programmes de bloc OK Zone Zones de programmes de pas OK SousTâches programmes d'interruption OK OK S1 Zone CIO Zone Travail Zone Bit de maintien CIO 0000 à CIO 6143 W000 à W511 H000 à H511 Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque A000 à A959 T0000 à T4095 C0000 à C4095 D00000 à D32767 E00000 à E32767 En_00000 à En_32767 (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) Adresses DM/EM indirectes en binaire S2 293 Chapitre 3-7 Instructions de comparaison Zone S2 S1 Adresses DM/EM indirectes en BCD *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) Constantes #0000 à #FFFF (binaire) Registres de données DR0 à DR15 Registres d'index --Adressage indirect à ,IR0 à ,IR15 l’aide de registres d’index –2048 à +2047, IR0 à –2048 à +2047, IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 Description CPS(114) compare les données binaires signées dans S1 et S2 et place le résultat dans les drapeaux arithmétiques (drapeaux supérieur à, supérieur ou égal à, égal à, inférieur ou égal à, inférieur à, et drapeau de non égalité) de la zone auxiliaire. Comparaison de valeurs binaires signées Drapeaux arithmétiques (>, >=, =, <=, <, <>) Remarque CPS(114) traite les données dans S1 et S2 comme données binaires signées comprises entre 8000 et 7FFF (–32 768 à 32 767 décimal). Etat du drapeau arithmétique Le tableau ci-dessous indique l'état des drapeaux arithmétiques après exécution de CPS(114). (L'état “---” indique que le drapeau peut être sur ON ou OFF.) Résultat de CPS(114) S1 > S2 ON ON Etat du drapeau = <= OFF OFF S1 = S2 OFF ON ON ON OFF OFF S1 < S2 OFF OFF OFF ON ON ON > >= < <> OFF ON Utilisation des résultats de CPS(114) dans le programme Lorsque CPS(114) est exécutée, le résultat se reflète dans les drapeaux arithmétiques. Contrôlez la sortie voulue ou l'instruction finale avec une branche de la même condition d'entrée qui contrôle CPS(114), comme indiqué dans le schéma ci-dessous. Dans ce cas, le drapeau d'égalité et la sortie A passent à ON lorsque S1 = S2. Utilisation correcte de CPS(114) CPS S1 S2 Drapeau arithmétique (Exemple : Drapeau d'égalité) 294 A Chapitre 3-7 Instructions de comparaison Utilisation des résultats de CPS(114) dans le programme Ne pas programmer d'autre instruction entre CPS(114) et l'instruction contrôlée par le drapeau arithmétique car l'autre instruction risque de modifier l'état du drapeau arithmétique. Dans ce cas, les résultats de l'instruction B risquent de modifier les résultats de CPS(114). Utilisation incorrecte de CPS(114) CPS S1 S2 Instruction B Drapeau arithmétique (Exemple : Drapeau d'égalité) A La variation de rafraîchissement immédiat (!CPS(114)) peut être utilisée avec des mots affectés aux entrées externes spécifiées dans S1 et/ou S2. Lorsque !CPS(114) est exécutée, le rafraîchissement de l'entrée est effectué pour le mot d'entrée externe spécifié dans S1 et/ou S2 et cette valeur rafraîchie est comparée. (Le rafraîchissement immédiat ne peut pas être réalisé sur les entrées affectées aux cartes E/S haute densité Groupe 2 ni aux cartes montées sur racks esclaves.) Drapeaux Nom Drapeau d'erreur Drapeau supérieur à Etiquette Fonctionnement ER OFF ou inchangé (voir remarque.) > ON si S1 > S2. OFF dans tous les autres cas. Drapeau supérieur ou égal à > = ON si S1 ≥ S2. OFF dans tous les autres cas. Drapeau d'égalité = ON si S1 = S2. OFF dans tous les autres cas. Drapeau de non égalité <> ON si S1 ≠ S2. OFF dans tous les autres cas. Drapeau inférieur à < ON si S1 < S2. OFF dans tous les autres cas. Drapeau inférieur ou égal à <= ON si S1 ≤ S2. OFF dans tous les autres cas. Drapeau négatif N OFF ou inchangé (voir remarque.) Remarque Dans les UC CS1 et CJ1, ces drapeaux passent OFF. Dans les UC CS1-H, CJ1-H, CJ1M et CS1D, ces drapeaux restent inchangés. Précautions Ne pas programmer d'autre instruction entre CPS(114) et une condition d'entrée qui accède au résultat de CPS(114) car l'autre instruction risque de modifier l'état des drapeaux arithmétiques. 295 Chapitre 3-7 Instructions de comparaison 3-7-6 DOUBLE SIGNED BINARY COMPARE : CPSL(115) Objet Symbole du schéma contact Compare deux valeurs binaires signées doubles (constantes et/ou le contenu des mots spécifiés) et place le résultat dans les drapeaux arithmétiques de la zone auxiliaire. CPSL(115) S1 S2 S1: Donnée de comparaison 1 S2: Donnée de comparaison 2 Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Spécifications de l’opérande Zones de programmes de bloc OK Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque Zones de programmes de pas OK S1 CPSL(115) Non prise en charge Non prise en charge Non prise en charge SousTâches programmes d'interruption OK OK S2 CIO 0000 à CIO 6142 W000 à W510 H000 à H510 A000 à A958 T0000 à T4094 C0000 à C4094 D00000 à D32766 E00000 à E32766 En_00000 à En_32766 (n = 0 à C) Adresses DM/EM @ D00000 à @ D32767 indirectes en binaire @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) Adresses DM/EM *D00000 à *D32767 indirectes en BCD *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) Constantes #00000000 à #FFFFFFFF (binaire) Registres de données --Registres d'index --Adressage indirect à ,IR0 à ,IR15 l’aide de registres d’index –2048 à +2047, IR0 à –2048 à +2047, IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 296 Chapitre 3-7 Instructions de comparaison Description CPSL(115) compare les données binaires signées doubles dans S1 +1, S1 et S2+1, S2 et place le résultat dans les drapeaux arithmétiques (drapeaux supérieur à, supérieur ou égal à, égal à, inférieur ou égal à, inférieur à, et drapeau de non égalité) de la zone auxiliaire. Comparaison de valeurs binaires signées S2+1 Drapeaux arithmétiques (>, >=, =, <=, <, <>) Remarque CPSL(115) traite les données dans S1 et S2 comme données binaires signées doubles comprises entre 8000 0000 et 7FFF FFFF (–2 147 483 648 à 2 147 483 647 décimal). Etat du drapeau arithmétique Le tableau ci-dessous indique l'état des drapeaux arithmétiques après exécution de CPSL(115). (L'état “---” indique que le drapeau peut être sur ON ou OFF.) Résultat de CPSL(115) > >= Etat du drapeau = <= < <> S1 +1, S1 > S2+1, S2 ON ON OFF OFF OFF ON S1+1, S1 = S2+1, S2 OFF ON ON ON OFF OFF S1 +1, S1 < S2+1, S2 OFF OFF OFF ON ON ON Utilisation des résultats de CPSL(115) dans le programme Lorsque CPSL(115) est exécutée, le résultat se reflète dans les drapeaux arithmétiques. Contrôlez la sortie voulue ou l'instruction finale avec une branche de la même condition d'entrée qui contrôle CPSL(115), comme indiqué dans le schéma ci-dessous. Dans ce cas, le drapeau d'égalité et la sortie A passent à ON lorsque S1 +1, S1 = S2+1, S2. Utilisation correcte de CPSL(115) CPSL S1 S2 Drapeau arithmétique (Exemple : Drapeau d'égalité) A Utilisation des résultats de CPSL(115) dans le programme Ne pas programmer d'autre instruction entre CPSL(115) et l'instruction contrôlée par le drapeau arithmétique car l'autre instruction risque de modifier l'état du drapeau arithmétique. Dans ce cas, les résultats de l'instruction B risquent de modifier les résultats de CPSL(115). 297 Chapitre 3-7 Instructions de comparaison Utilisation incorrecte de CPSL(115) CPSL S1 S2 Instruction B Drapeau arithmétique (Exemple : Drapeau d'égalité) A Drapeaux Nom Drapeau d'erreur Drapeau supérieur à Etiquette Fonctionnement ER OFF ou inchangé (voir remarque.) > ON si S1+1, S1 > S2+1, S2. Drapeau supérieur ou égal à > = OFF dans tous les autres cas. ON si S1+1, S1 ≥ S2+1, S2. Drapeau d'égalité = OFF dans tous les autres cas. ON si S1+1, S1 = S2+1, S2. Drapeau de non égalité = OFF dans tous les autres cas. ON si S1+1, S1 ≠ S2+1, S2. Drapeau inférieur à < OFF dans tous les autres cas. ON si S1+1, S1 < S2+1, S2. Drapeau inférieur ou égal à <= OFF dans tous les autres cas. ON si S1+1, S1 ≤ S2+1, S2. Drapeau négatif N OFF dans tous les autres cas. OFF ou inchangé (voir remarque.) Remarque Dans les UC CS1 et CJ1, ces drapeaux passent OFF. Dans les UC CS1-H, CJ1-H, CJ1M et CS1D, ces drapeaux restent inchangés. Précautions Ne pas programmer d'autre instruction entre CPSL(115) et une condition d'entrée qui accède au résultat de CPSL(115) car l'autre instruction risque de modifier l'état des drapeaux arithmétiques. Exemple Lorsque CIO 000000 est sur ON dans l'exemple suivant, les données binaires signées à 8 chiffres dans D00002 et D00001 sont comparées aux données binaires signées à 8 chiffres dans D00006 et D00005, et le résultat est placé dans les drapeaux arithmétiques. • Si le contenu de D00002 et D00001 est supérieur à celui de D00006 et D00005, le drapeau supérieur à passe à ON, ce qui entraîne la mise sur ON de CIO 002000. • Si le contenu de D00002 et D00001 est égal à celui de D00006 et D00005, le drapeau d'égalité passe à ON, ce qui entraîne la mise sur ON de CIO 002001. • Si le contenu de D00002 et D00001 est inférieur à celui de D00006 et D00005, le drapeau inférieur à passe à ON, ce qui entraîne la mise sur ON de CIO 002002. 298 Chapitre 3-7 Instructions de comparaison 1234 5678 D0001 Comparaison D0005 ABCD 3-7-7 Etat du > = (1) (0) < (0) EF12 MULTIPLE COMPARE : MCMP(019) Objet Symbole du schéma contact Compare 16 mots consécutifs avec 16 autres mots consécutifs et met sur ON le bit correspondant dans le mot de résultat lorsque les contenus des mots ne sont pas égaux. MCMP(019) S1 S1: Premier mot du jeu 1 S2 S2: Premier mot du jeu 2 R R: Mot de résultat Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Opérandes Zones de programmes de bloc OK Zones de programmes de pas OK MCMP(019) @MCMP(019) Non prise en charge Non prise en charge SousTâches programmes d'interruption OK OK S1: Premier mot du jeu 1 Spécifie le début de la première plage de 16 mots. S1 et S1+15 doivent être dans la même zone de données. S2: Premier mot du jeu 2 Spécifie le début de la deuxième plage de 16 mots. S2 et S2+15 doivent être dans la même zone de données. R : Mot de résultat Chaque bit de R contient le résultat d'une comparaison entre deux mots dans les jeux de 16 mots. Le bit n de R (n = 00 à 15) contient le résultat de la comparaison entre les mots S1+n et S2+n. 15 R 14 1 0 Résultat de la comparaison pour S1et S2 Résultat de la comparaison pour S1+1 et S2+1 Résultat de la comparaison pour S1+14 et S2+14 Résultat de la comparaison pour S1+15 et S2+15 299 Chapitre 3-7 Instructions de comparaison Spécifications de l’opérande Zone S1 R Zone CIO CIO 0000 à CIO 6128 Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque W000 à W496 H000 à H496 A000 à A944 T0000 à T4080 C0000 à C4080 D00000 à D32752 E00000 à E32752 En_00000 à 32752 (n = 0 à C) Adresses DM/EM indirectes en binaire @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) ----DR0 à DR15 --,IR0 à ,IR15 –2048 à +2047, IR0 à –2048 à +2047, IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index Description S2 CIO 0000 à CIO 6143 W000 à W511 H000 à H511 A448 à A959 T0000 à T4095 C0000 à C4095 D00000 à D32767 E00000 à E32767 En_00000 à En_32767 (n = 0 à C) MCMP(019) compare les contenus des 16 mots S1 à S1+15 aux contenus des 16 mots S2 à S2+15, et met sur ON le bit correspondant dans le mot R lorsque les contenus ne sont pas égaux. Le contenu de S1 est comparé au contenu de S2, le contenu de S1+1 au contenu de S2+1, ..., et le contenu de S1+15 au contenu de S2+15. Le bit n de R passe à OFF si le contenu de S1+n est égal au contenu de S2+n ; le bit n de R passe à ON si les contenus ne sont pas égaux. Si les contenus des 16 paires de mots sont identiques, le drapeau d'égalité passe à ON après l'exécution de l'instruction. Comparaison R 0: Les mots sont égaux. 1: Les mots ne sont pas égaux. 300 Chapitre 3-7 Instructions de comparaison Drapeaux Nom Drapeau d'erreur Drapeau d'égalité Exemple Etiquette ER OFF = Fonctionnement ON si le mot de résultat est 0000. (Les deux jeux de 16 mots contiennent les mêmes données.) OFF dans tous les autres cas. Lorsque CIO 000000 est sur ON dans l'exemple suivant, MCMP(019) compare les mots D00100 à D00115 selon l'ordre des mots D00200 à D00215 et met sur ON les bits correspondants dans D00300 lorsque les mots ne sont pas égaux. R : D00300 S1 : 3-7-8 S2 : TABLE COMPARE : TCMP(085) Objet Symbole du schéma contact Compare les données sources avec le contenu de 16 mots consécutifs et met sur ON le bit correspondant dans le mot de résultat lorsque les contenus des mots sont égaux. TCMP(085) S S: Données sources T T: Premier mot de la table R: Mot de résultat R Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Zones de programmes de bloc OK Zones de programmes de pas OK TCMP(085) @TCMP(085) Non prise en charge Non prise en charge SousTâches programmes d'interruption OK OK 301 Chapitre 3-7 Instructions de comparaison Opérandes T : Premier mot de la table Spécifie le début de la table de 16 mots. T et T+15 doivent être dans la même zone de données. R : Mot de résultat Chaque bit de R contient le résultat d'une comparaison entre S et un mot dans la table de 16 mots. Le bit n de R (n = 00 à 15) contient le résultat de la comparaison entre S et T+n. Donnée de comparaison 0 Donnée de comparaison 1 à à Donnée de comparaison 15 15 14 R 1 0 Résultat de la comparaison pour S et T Résultat de la comparaison pour S et T+1 Résultat de la comparaison pour S et T+14 Résultat de la comparaison pour S et T+15 Spécifications de l’opérande Zone Zone CIO S CIO 0000 à CIO 6143 T CIO 0000 à CIO 6128 R CIO 0000 à CIO 6143 Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque W000 à W511 H000 à H511 A000 à A959 T0000 à T4095 C0000 à C4095 D00000 à D32767 E00000 à E32767 En_00000 à En_32767 (n = 0 à C) W000 à W496 H000 à H496 A000 à A944 T0000 à T4080 C0000 à C4080 D00000 à D32752 E00000 à E32752 W000 à W511 H000 à H511 A448 à A959 T0000 à T4095 C0000 à C4095 D00000 à D32767 E00000 à E32767 En_00000 à En_32752 (n = 0 à C) En_00000 à En_32767 (n = 0 à C) Adresses DM/EM indirectes en binaire @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) #0000 à #FFFF --(binaire) DR0 à DR15 ----- Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index 302 DR0 à DR15 ,IR0 à ,IR15 –2048 à +2047, IR0 à –2048 à +2047, IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 Chapitre 3-7 Instructions de comparaison Description TCMP(085) compare les données sources (S) à chacun des 16 mots T à T+15 et met sur ON le bit correspondant dans le mot R lorsque les données sont égales. Le bit n de R passe à ON si le contenu de T+n est égal à S, et passe à OFF sil est différent. S est comparé au contenu de T et le bit 00 de R est mis sur ON s'ils sont égaux ou sur OFF s'ils sont différents, S est comparé au contenu de T+1 et le bit 01 de R est mis sur ON s'ils sont égaux ou sur OFF s'ils sont différents, ..., et S est comparé au contenu de T+15 et le bit 15 de R est mis sur ON s'ils sont égaux ou sur OFF s'ils sont différents. R Comparaison 1: Les données sont égales. 0: Les données ne sont pas égales. Drapeaux Nom Drapeau d'erreur Drapeau d'égalité Exemple Etiquette ER OFF = Fonctionnement ON si le mot de résultat est 0000. (Aucun des 16 mots de la table n’est égal à S.) OFF dans tous les autres cas. Lorsque CIO 000000 passe à ON dans l'exemple suivant, TCMP(085) compare le contenu de D00100 avec le contenu des mots D00200 à D00215 et met sur ON les bits correspondants dans D00300 lorsque les contenus sont égaux ou sur OFF lorsque les contenus sont différents. R : D00300 S : D00100 T: 303 Chapitre 3-7 Instructions de comparaison 3-7-9 BLOCK COMPARE : BCMP(068) Objet Symbole du schéma contact Compare les données sources à 16 plages (définies par 16 limites inférieures et 16 limites supérieures) et met sur ON le bit correspondant dans le mot de résultat lorsque les données sources sont comprises dans la plage. BCMP(068) S S: Données sources B B: Premier mot du bloc R R: Mot de résultat Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Opérandes Zones de programmes de bloc OK Zones de programmes de pas OK BCMP(068) @BCMP(068) Non prise en charge Non prise en charge SousTâches programmes d'interruption OK OK B : Premier mot du bloc Spécifie le début d'un bloc de 32 mots (16 paires de limite inférieure/supérieure). B et B+31 doivent être dans la même zone de données. R : Mot de résultat Chaque bit de R contient le résultat d'une comparaison entre S et l'une des 16 plages définies dans le bloc de 32 mots. Le bit n de R (n = 00 à 15) contient le résultat de la comparaison entre S et la nème paire de mots. 15 14 1 0 R Résultat de la comparaison pour S et la plage B+28 ↔ B+29 Résultat de la comparaison pour S et la plage B+30 ↔ B+31 Spécifications de l’opérande Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque 304 S CIO 0000 à CIO 6143 W000 à W511 H000 à H511 A000 à A959 T0000 à T4095 C0000 à C4095 D00000 à D32767 E00000 à E32767 Résultat de la comparaison pour S et la plage B ↔ B+1 Résultat de la comparaison pour S et la plage B+2 ↔ B+3 B CIO 0000 à CIO 6112 W0000 à W480 H000 à H480 A000 à A928 T0000 à T4064 C0000 à C4064 D00000 à D32736 E00000 à E32736 R CIO 0000 à CIO 6143 W000 à W511 H000 à H511 A448 à A959 T0000 à T4095 C0000 à C4095 D00000 à D32767 E00000 à E32767 Chapitre 3-7 Instructions de comparaison Zone Zone EM avec banque Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index Description S B R En_00000 à En_00000 à En_00000 à En_32767 En_32736 En_32767 (n = 0 à C) (n = 0 à C) (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) #0000 à #FFFF --(binaire) DR0 à DR15 --DR0 à DR15 --,IR0 à ,IR15 –2048 à +2047, IR0 à –2048 à +2047, IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 BCMP(068) compare les données sources (S) aux 16 plages définies par des paires de valeurs de limite inférieure et supérieure dans B à B+31. Le premier mot dans chaque paire (B+2n) fournit la limite inférieure et le deuxième mot (B+2n+1) fournit la limite supérieure de la plage n (n = 0 à 15). Si S est dans l'une de ces plages (limites inférieure et supérieure comprises), le bit correspondant dans R passe à ON. Le reste des bits dans R passe à OFF. B B+2 B+4 B+6 B+8 B+10 B+12 B+14 B+16 B+18 B+20 B+22 B+24 B+26 B+28 B+30 ≤S≤ ≤S≤ ≤S≤ ≤S≤ ≤S≤ ≤S≤ ≤S≤ ≤S≤ ≤S≤ ≤S≤ ≤S≤ ≤S≤ ≤S≤ ≤S≤ ≤S≤ ≤S≤ B+1 B+3 B+5 B+7 B+9 B+11 B+13 B+15 B+17 B+19 B+21 B+23 B+25 B+27 B+29 B+31 Bit 00 de R Bit 01 de R Bit 02 de R Bit 03 de R Bit 04 de R Bit 05 de R Bit 06 de R Bit 07 de R Bit 08 de R Bit 09 de R Bit 10 de R Bit 11 de R Bit 12 de R Bit 13 de R Bit 14 de R Bit 15 de R Par exemple, le bit 00 de R passe à ON si S est dans la première plage (B ≤ S ≤ B+1), le bit 01 de R passe à ON si S est dans la deuxième plage (B+2 ≤ S ≤ B+3), ..., et le bit 15 de R passe à ON si S est dans la quinzième plage (B+30 ≤ S ≤ B+31). Tous les autres bits dans R sont sur OFF. 305 Chapitre 3-7 Instructions de comparaison Drapeaux Nom Drapeau d'erreur Drapeau d'égalité Etiquette ER OFF = Fonctionnement ON si le mot de résultat est 0000. (S n'est dans aucune des 16 plages.) OFF dans tous les autres cas. Précautions Une erreur se produit si la limite inférieure est supérieure à la limite supérieure, mais 0 (hors plage) est placé dans le bit correspondant de R. Exemple Lorsque CIO 000000 passe à ON dans l'exemple suivant, BCMP(068) compare le contenu de D00100 avec les 16 plages définies dans D00200 à D00231 et met sur ON les bits correspondants dans D00300 lorsque S est dans la plage ou sur OFF lorsque S est hors plage. R : D00300 à S : D00100 à à à à à à à à à à à à à à à 3-7-10 EXPANDED BLOCK COMPARE : BCMP2(502) Objet Symbole du schéma contact 306 Compare les données sources avec 256 plages (définies par 256 limites inférieures et 256 limites supérieures) maximum et met sur ON le bit correspondant dans le mot de résultat lorsque les données sources sont comprises dans la plage. BCMP2(502) n'est prise en charge que par les UC CS1-H, CJ1-H et CS1D ver. 2.0 ou supérieure uniquement, et les UC CJ1M (pré-ver. 2.0 ou ver. 2.0 ou supérieure). BCMP2(502) S S: Données sources B B: Premier mot du bloc R R: Premier mot de résultat Chapitre 3-7 Instructions de comparaison Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Opérandes Zones de programmes de bloc OK Zones de programmes de pas OK BCMP2(502) @BCMP2(502) Non prise en charge Non prise en charge SousTâches programmes d'interruption OK OK B : Premier mot du bloc Spécifie le début d'un bloc de comparaison contenant jusqu'à 513 mots incluant un maximum de 256 paires de limite inférieure/supérieure). Tous les mots doivent être dans la même zone de données. Bloc de comparaison 8 7 Mot 15 B Dernière plage "N" B+1 Plage 0 valeur A B+2 Plage 0 valeur B B+3 Plage 1 valeur A B+4 Plage 1 valeur B B+5 Plage 2 valeur A B+6 Plage 2 valeur B B+31 Plage 15 valeur A B+32 Plage 15 valeur B B+33 Plage 16 valeur A B+34 Plage 16 valeur B B+35 Plage 17 valeur A B+36 Plage 17 valeur B B+37 Plage 18 valeur A B+38 Plage 18 valeur B Plage N B+2N+1 Plage N valeur A B+2(N+1) Plage N valeur B Plage 0 Plage 1 Plage 2 Données de plage 00 hex Plage 15 Plage 16 Plage 17 Plage 18 0 N : 00 à FF hex (0 à 255) R : Premier mot de résultat Chaque bit de chaque mot de R contient le résultat d'une comparaison entre S et l'une des plages définies dans le bloc de comparaison. Le nombre maximum de mots de résultat est de 16 ; en d'autres termes, m est 0 à 15. 15 14 n R+m 0 Résultat de la comparaison pour S et plage 15m Résultat de la comparaison pour S et plage 15m +14 Résultat de la comparaison pour S et plage 15m + 15 Résultat de la comparaison pour S et plage 15m + n 307 Chapitre 3-7 Instructions de comparaison Spécifications de l’opérande Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index Description S CIO 0000 à CIO 6143 W000 à W511 H000 à H511 A000 à A959 T0000 à T4095 C0000 à C4095 D00000 à D32767 ----@ D00000 à @ D32767 B R A448 à A959 *D00000 à *D32767 #0000 à #FFFF (binaire) DR0 à DR15 --- ----- ,IR0 à ,IR15 –2048 à +2047, IR0 à –2048 à +2047, IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 BCMP2(502) compare les données sources (S) aux plages définies par des paires de valeurs de limite inférieure et supérieure dans le bloc de comparaison. Si S est dans l'une de ces plages (limites inférieure et supérieure comprises), les bits correspondants dans les mots de résultat (R à R+15 max.) passent à ON. Le reste des bits dans R passe à OFF. Le nombre de plages est déterminé par la valeur N définie dans l'octet inférieur de B. N peut être compris entre 0 et 255. L'octet supérieur de B doit être 00 hex. Bloc de comparaison 15 87 0 Dernière N : 00 à FF hex (0 à 255) plage "N" B 00 hex B+1 Plage 0 valeur A Plage 0 valeur B Mots de résultat R Bit B+2 0 B+3 Plage 1 valeur A Plage 1 valeur B B+4 B+5 Plage 2 valeur A Plage 2 valeur B B+6 Plages de comparaison Données sources S : B+31 Plage 15 valeur A Plage 15 valeur B B+32 Plage 16 valeur A Plage 16 valeur B B+34 B+35 Plage 17 valeur A Plage 17 valeur B B+36 B+37 Plage 18 valeur A Plage 18 valeur B B+38 : Plage N valeur A Plage N valeur B Plages 2 : B+33 B+2N+1 1 15 R+1 Bit 0 1 2 : B+2N+2 Dans la plage : ON Hors plage : OFF Nombre de plages Le nombre de plages dans le bloc de comparaison est défini dans le premier mot du bloc. Il est possible de définir jusqu'à 256 plages. 308 Chapitre 3-7 Instructions de comparaison Définition des plages Les valeurs A et B pour chaque plage déterminent le mode de fonctionnement de la comparaison en fonction de la valeur la plus élevée, comme indiqué cidessous. · Si valeur A ≤ valeur B alors, valeur A ≤ plage de comparaison ≤ valeur B Plage de comparaison Valeur A Valeur B · Si valeur A > valeur B alors, alors, plage de comparaison ≤ valeur B et valeur A ≤ plage de comparaison Plage de comparaison Plage de comparaison Valeur A Valeur B Exemple Lorsque B+1 ≤ B+2 Si B+1 ≤ S ≤ B+2, le bit 0 de R passe alors à ON, Si B+3 ≤ S ≤ B+4, le bit 1 de R passe alors à ON, Si S < B+5 et B+6 < S, le bit 2 de R passe alors à OFF, et Si S < B+7 et B+8 < S, le bit 3 de R passe alors à OFF. Lorsque B+1 > B+2 Si S ≤ B+2 et B+1 ≤ S, le bit 0 de R passe alors à ON, Si S ≤ B+4 et B+3 ≤ S, le bit 1 de R passe alors à ON, Si B+6 < S < B+5, le bit 2 de R passe alors à OFF, et Si B+8 < S < B+7, le bit 3 de R passe alors à OFF. Emplacement de stockage des résultats Les résultats sont placés dans les bits correspondants dans le mot R. S'il existe plus de 16 plages de comparaison, les mots consécutifs suivant R sont utilisés. Le nombre maximum de mots de résultat est 16 ; en d'autres termes, m vaut 0 à 15. 15 14 0 n R+m Résultat de la comparaison pour S et plage 15m Résultat de la comparaison pour S et plage 15m +14 Résultat de la comparaison pour S et plage 15m + 15 Résultat de la comparaison pour S et plage 15m + n Drapeaux Nom Drapeau d'erreur Exemple Etiquette ER OFF Fonctionnement Lorsque CIO 000000 est sur ON dans l'exemple suivant, BCMP2(502) compare le contenu de CIO 0010 avec les 24 plages définies dans D00200 à D00247 (N = 17 hex = 23 décimal, c.-à-d. 24 plages) et met sur ON les bits correspondants dans CIO 0100 et CIO 0101 si S est dans la plage et sur OFF si S est hors plage. Par exemple, si les données sources dans CIO 0010 sont dans la plage définie par D00201 et D00202, le bit 00 de CIO 0100 passe alors à ON et si elles sont hors plage, le bit 00 de CIO 0100 passe alors à 309 Chapitre 3-7 Instructions de comparaison OFF. De même, les données sources dans CIO 0010 sont comparées aux plages définies par D00203 et D00204, D00247 et D00248, et les autres mots du bloc de comparaison, et le bit 1 dans CIO 0100, le bit 7 dans CIO 1010 et les autres bits dans les mots de résultat sont manipulés en fonction des résultats de la comparaison. 000000 0 0 1 7 R: CIO 0100 Bit BCMP2 0010 S : CIO 0010 D00201 0 0 0 0 0 1 0 0 D00202 D00200 0 1 7 5 D00203 0 0 8 0 0 1 8 0 D00204 0100 D00205 0 1 6 0 0 2 6 0 D00206 D00231 1 2 0 0 1 8 0 0 D00232 D00233 1 5 0 0 0 5 0 0 D00234 D00235 1 9 0 0 0 1 0 0 D00236 D00237 1 8 0 0 0 2 0 0 D00238 D00247 0 1 0 0 2 0 0 0 D00248 R: CIO 0101 3-7-11 AREA RANGE COMPARE : ZCP(088) Objet Compare une valeur binaire 16 bits non signée (CD) avec la plage définie par la limite inférieure LL et la limite supérieure UL. Les résultats sont placés dans les drapeaux arithmétiques. Cette instruction est prise en charge par les UC CS1-H, CJ1-H , CJ1M et CS1D uniquement. Symbole du schéma contact ZCP(088) CD CD: Données de comparaison LL LL: Limite inférieure de la plage UL UL: Limite supérieure de la plage Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Spécifications de l’opérande Zones de programmes de bloc OK Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur 310 Zones de programmes de pas OK CD CIO 0000 à CIO 6143 W000 à W511 H000 à H511 A000 à A959 T0000 à T4095 C0000 à C4095 ZCP(088) Non prise en charge Non prise en charge Non prise en charge SousTâches programmes d'interruption OK OK LL UL Chapitre 3-7 Instructions de comparaison Zone Zone DM Zone EM sans banque Zone EM avec banque CD LL D00000 à D32767 E00000 à E32767 En_00000 à En_32767 (n = 0 à C) Adresses DM/EM @ D00000 à @ D32767 indirectes en binaire @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) Adresses DM/EM *D00000 à *D32767 indirectes en BCD *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) Constantes #0000 à #FFFF (binaire) Registres de données DR0 à DR15 Registres d'index --Adressage indirect à ,IR0 à ,IR15 l’aide de registres d’index –2048 à +2047, IR0 à –2048 à +2047, IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 Description UL ZCP(088) compare les données binaires 16 bits signées dans CD avec la plage définie par LL et UL, et place le résultat dans les drapeaux supérieur à, d'égalité et inférieur à, de la zone auxiliaire. (Les drapeaux inférieur ou égal à, supérieur ou égal à et de non égalité restent inchangés.) Etat des drapeaux arithmétiques Le tableau ci-dessous indique l'état des drapeaux arithmétiques après exécution de ZCP(088). Résultat de ZCP(088) CD > UL CD = UL LL < CD < UL CD = LL CD < LL > ON OFF Etat du drapeau = < OFF OFF ON OFF ON Utilisation des résultats de ZCP(088) dans le programme Lorsque ZCP(088) est exécutée, le résultat se reflète dans les drapeaux arithmétiques. Contrôlez la sortie voulue ou l'instruction finale avec une branche de la même condition d'entrée qui contrôle ZCP(088), comme indiqué dans le schéma ci-dessous. Dans ce cas, le drapeau d'égalité et la sortie A passent à ON lorsque LL ≤ CD ≤ UL. 311 Chapitre 3-7 Instructions de comparaison Utilisation correcte de ZCP(088) ZCP CD LL UL A Drapeau arithmétique (Exemple : Drapeau d'égalité) Ne pas programmer d'autre instruction entre ZCP(088) et l'instruction contrôlée par le drapeau arithmétique car l'autre instruction risque de modifier l'état du drapeau arithmétique. Dans ce cas, les résultats de l'instruction B risquent de modifier les résultats de ZCP(088). Utilisation incorrecte de ZCP(088) ZCPL CD LL UL Instruction B A Drapeau arithmétique (Exemple : Drapeau d'égalité) Drapeaux Nom Drapeau d'erreur Drapeau supérieur à Etiquette Fonctionnement ER ON if LL > UL. > ON si CD > UL. OFF dans tous les autres cas. Drapeau supérieur ou égal à > = Reste inchangé. Drapeau d'égalité = ON si LL ≤ CD ≤ UL. OFF dans tous les autres cas. Drapeau de non égalité <> Reste inchangé. Drapeau inférieur à < ON si CD < LL. OFF dans tous les autres cas. Drapeau inférieur ou égal à <= Reste inchangé. Drapeau négatif N Reste inchangé. Précautions Ne pas programmer d'autre instruction entre ZCP(088) et une condition d'entrée qui accède au résultat de ZCP(088) car l'autre instruction risque de modifier l'état des drapeaux arithmétiques. Exemple Lorsque CIO 000000 est sur ON dans l'exemple suivant, les données binaires 16 bits non signées dans D00000 sont comparées à la plage 0005 à 001F hex (5 à 31 décimal) et le résultat est placé dans les drapeaux arithmétiques. CIO 000200 passe à ON si 0005 hex ≤ contenu de D00000 ≤ 001F hex. CIO 000201 passe à ON si le contenu de D00000 > 001F hex. CIO 000202 passe à ON si le contenu de D00000 < 0005 hex. 312 Chapitre 3-7 Instructions de comparaison LL 000000 CD ZCP UL Drapeaux arithmétiques D00000 CD D00000 LL #0005 UL #001F 002000 0005Hex ≤ ≤ 001FHex = ON(1) > 001FHex > ON(1) < ON(1) D00000 D00000 0005Hex > = 002001 > 002002 < 3-7-12 DOUBLE AREA RANGE COMPARE : ZCPL(116) Objet Compare une valeur binaire 32 bits non signée (CD+1, CD) avec la plage définie par la limite inférieure (LL+1, LL) et la limite supérieure (UL+1, UL). Les résultats sont placés dans les drapeaux arithmétiques. Cette instruction est prise en charge par les UC CS1-H, CJ1-H , CJ1M et CS1D uniquement. Symbole du schéma contact ZCPL(116) CD CD: Premier mot des données de comparaison LL LL: Premier mot de la limite inférieure UL UL: Premier mot de la limite supérieure Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Spécifications de l’opérande Zones de programmes de bloc OK Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque Zones de programmes de pas OK CD CIO 0000 à CIO 6142 W000 à W510 H000 à H510 A000 à A958 T0000 à T4094 C0000 à C4094 D00000 à D32766 E00000 à E32766 En_00000 à En_32766 (n = 0 à C) ZCP(088) Non prise en charge Non prise en charge Non prise en charge SousTâches programmes d'interruption OK OK LL UL 313 Chapitre 3-7 Instructions de comparaison Zone Adresses DM/EM indirectes en binaire CD LL @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) Adresses DM/EM *D00000 à *D32767 indirectes en BCD *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) Constantes #0000 0000 à #FFFF FFFF (binaire) Registres de données --Registres d'index IR0 à IR15 Adressage indirect à ,IR0 à ,IR15 l’aide de registres d’index –2048 à +2047, IR0 à –2048 à +2047, IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 Description UL ZCPL(116) compare les données binaires 32 bits signées dans CD+1, CD avec la plage définie par LL+1, LL et UL+1, UL, et place le résultat dans les drapeaux supérieur à, d'égalité et inférieur à, de la zone auxiliaire. (Les drapeaux inférieur ou égal à, supérieur ou égal à et de non égalité restent inchangés.) Etat des drapeaux arithmétiques Le tableau ci-dessous indique l'état des drapeaux arithmétiques après exécution de ZCPL(116). Résultat de ZCPL(116) > CD+1, CD > UL+1, UL ON CD+1, CD = UL+1, UL OFF LL+1, LL < CD+1, CD < UL+1, UL CD+1, CD = LL+1, LL CD+1, CD < LL+1, LL Etat du drapeau = < OFF OFF ON OFF ON Utilisation des résultats de ZCPL(116) dans le programme Lorsque ZCPL(116) est exécutée, le résultat se reflète dans les drapeaux arithmétiques. Contrôlez la sortie voulue ou l'instruction finale avec une branche de la même condition d'entrée qui contrôle ZCPL(116). Ne pas programmer d'autre instruction entre ZCPL(116) et l'instruction contrôlée par le drapeau arithmétique car l'autre instruction risque de modifier l'état du drapeau arithmétique. Le fonctionnement de ZCPL(116) est pratiquement identique à celui de ZCP(088) sauf que ZCPL(116) compare des valeurs 32 bits et non des valeurs 16 bits. Consultez 3-7-11 AREA RANGE COMPARE : ZCP(088) pour les schémas indiquant comment utiliser les résultats dans le programme et obtenir un exemple de section de programme. Drapeaux Nom Drapeau d'erreur Drapeau supérieur à 314 Etiquette Fonctionnement ER ON si LL+1, LL > UL+1, UL. > ON si CD > UL+1, UL. OFF dans tous les autres cas. Chapitre 3-8 Instructions de déplacement de données Nom Etiquette Fonctionnement Drapeau supérieur ou égal à > = Reste inchangé. Drapeau d'égalité = ON si LL+1, LL ≤ CD+1, CD ≤ UL+1, UL. OFF dans tous les autres cas. Drapeau de non égalité <> Reste inchangé. Drapeau inférieur à < ON si CD+1, CD < LL+1, LL. OFF dans tous les autres cas. Drapeau inférieur ou égal à < = Reste inchangé. Drapeau négatif N Reste inchangé. Précautions 3-8 Ne pas programmer d'autre instruction entre ZCPL(116) et une condition d'entrée qui accède au résultat de ZCPL(116) car l'autre instruction risque de modifier l'état des drapeaux arithmétiques. Instructions de déplacement de données 3-8-1 MOVE : MOV(021) Objet Transfère un mot de données vers le mot spécifié. Symbole du schéma contact MOV(021) S S: Source D D: Destination Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat (voir remarque.) Variations Exécution une fois et rafraîchissement de la combinées destination immédiate pour la différentiation sur front montant (voir remarque.) MOV(021) @MOV(021) Non prise en charge MOV(021) !@MOV(021) Remarque Le rafraîchissement immédiat n'est pas pris en charge par les UC CS1D. Zones de programmes applicables Spécifications de l’opérande Zones de programmes de bloc OK Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque Zones de programmes de pas OK S CIO 0000 à CIO 6143 W000 à W511 H000 à H511 A000 à A959 T0000 à T4095 C0000 à C4095 D00000 à D32767 E00000 à E32767 En_00000 à En_32767 (n = 0 à C) SousTâches programmes d'interruption OK OK D A448 à A959 315 Chapitre 3-8 Instructions de déplacement de données Zone Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index Description S D @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) #0000 à #FFFF (binaire) --DR0 à DR15 --,IR0 à ,IR15 –2048 à +2047, IR0 à –2048 à +2047, IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 Transfère S dans D. Si S est une constante, la valeur peut être utilisée pour configurer une donnée. Mot source Etat des bits inchangé. Mot de destination MOV(021) présente une variation de rafraîchissement immédiat (!MOV(021)). Des bits d'entrée externe peuvent être spécifiés pour S et des bits de sortie externe peuvent être spécifiés pour D. Les bits d'entrée utilisés pour S sont rafraîchis juste avant, et les bits de sortie utilisés pour D sont rafraîchis juste après l'exécution sauf si les bits sont affectés à une carte E/S haute densité Groupe 2, une carte E/S spéciale haute densité ou une carte montée sur rack esclave E/S distant SYSMAC BUS. Drapeaux Nom Drapeau d'erreur Drapeau d'égalité Etiquette ER OFF = Drapeau négatif N Exemple 316 Fonctionnement ON si les données transférées sont 0000. OFF dans tous les autres cas. ON si le bit le plus à gauche des données transférées est 1. OFF dans tous les autres cas. Lorsque CIO 000000 est sur ON dans l'exemple suivant, le contenu de CIO 0100 est copié dans D00100. Chapitre 3-8 Instructions de déplacement de données 3-8-2 MOVE NOT : MVN(022) Objet Symbole du schéma contact Transfère le complément d'un mot de données vers le mot spécifié. MVN(022) S S: Source D D: Destination Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Spécifications de l’opérande Zones de programmes de bloc OK Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index Zones de programmes de pas OK MVN(022) @MVN(022) Non prise en charge Non prise en charge SousTâches programmes d'interruption OK OK S D CIO 0000 à CIO 6143 W000 à W511 H000 à H511 A000 à A959 A448 à A959 T0000 à T4095 C0000 à C4095 D00000 à D32767 E00000 à E32767 En_00000 à En_32767 (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) #0000 à #FFFF (binaire) --DR0 à DR15 --,IR0 à ,IR15 –2048 à +2047, IR0 à –2048 à +2047, IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 317 Chapitre 3-8 Instructions de déplacement de données Description MVN(022) inverse les bits dans S et transfère le résultat vers D. Le contenu de S reste inchangé. Mot source Mot de destination Etat des bits inversé. Drapeaux Exemple 3-8-3 Nom Drapeau d'erreur Drapeau d'égalité Etiquette ER OFF Drapeau négatif N = Fonctionnement ON si le contenu de D est 0000 après exécution. OFF dans tous les autres cas. ON si le bit le plus à gauche de D est 1 après exécution. OFF dans tous les autres cas. Lorsque CIO 000000 est sur ON dans l'exemple suivant, l'état des bits dans CIO 0100 est inversé et le résultat est copié dans D00100. DOUBLE MOVE : MOVL(498) Objet Symbole du schéma contact Transfère deux mots de données vers les mots spécifiés. MOVL(498) S S: Premier mot source D D: Premier mot de destination Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables 318 Zones de programmes de bloc OK Zones de programmes de pas OK MOVL(498) @MOVL(498) Non prise en charge Non prise en charge SousTâches programmes d'interruption OK OK Chapitre 3-8 Instructions de déplacement de données Spécifications de l’opérande Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index Description S D CIO 0000 à CIO 6142 W000 à W510 H000 à H510 A000 à A958 A448 à A958 T0000 à T4094 C0000 à C4094 D00000 à D32766 E00000 à E32766 En_00000 à En_32766 (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) #00000000 à #FFFFFFFF --(binaire) --IR0 à IR15 ,IR0 à ,IR15 –2048 à +2047, IR0 à –2048 à +2047, IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –) IR0 à, 1–(– –) IR5 MOVL(498) transfère S+1 et S vers D+1 et D. Si S+1 et S sont des constantes, la valeur peut être utilisée pour configurer des données. S S+1 D D+1 Etat des bits inchangé. Drapeaux Nom Drapeau d'erreur Drapeau d'égalité Etiquette ER OFF = Drapeau négatif N Fonctionnement ON si les contenus de D+1 et D sont 0000 0000 après exécution. OFF dans tous les autres cas. ON si le bit le plus à gauche de D+1 est 1 après exécution. OFF dans tous les autres cas. 319 Chapitre 3-8 Instructions de déplacement de données Exemple 3-8-4 Lorsque CIO 000000 est sur ON dans l'exemple suivant, les contenus de D00101 et D00100 sont copiés dans D00201 et D00200. DOUBLE MOVE NOT : MVNL(499) Objet Symbole du schéma contact Transfère le complément de deux mots de données vers les mots spécifiés. MVNL(499) S S: Premier mot source D D: Premier mot de destination Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Spécifications de l’opérande Zones de programmes de bloc OK Non prise en charge Non prise en charge SousTâches programmes d'interruption OK OK Zone Zone CIO Zone Travail Zone Bit de maintien S CIO 0000 à CIO 6142 W000 à W510 H000 à H510 Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque A000 à A958 A448 à A958 T0000 à T4094 C0000 à C4094 D00000 à D32766 E00000 à E32766 En_00000 à En_32766 (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD 320 Zones de programmes de pas OK MVNL(499) @MVNL(499) D Chapitre 3-8 Instructions de déplacement de données Zone Constantes S D #00000000 à #FFFFFFFF --(binaire) ----,IR0 à ,IR15 –2048 à +2047, IR0 à –2048 à +2047, IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 Registres de données Registres d'index Adressage indirect à l’aide de registres d’index Description MVNL(499) inverse les bits dans S+1 et S, et transfère le résultat vers D+1 et D. Les contenus de S+1 et S restent inchangés. S S+1 D D+1 Etat des bits inversé. Drapeaux Exemples 3-8-5 Nom Drapeau d'erreur Drapeau d'égalité Etiquette ER OFF Drapeau négatif N = Fonctionnement ON si le contenu de D+1 et D est 0000 0000 après exécution. OFF dans tous les autres cas. ON si le bit le plus à gauche de D+1 est 1 après exécution. OFF dans tous les autres cas. Lorsque CIO 000000 est sur ON dans l'exemple suivant, l'état des bits dans D00101 et D00100 est inversé et le résultat est copié dans D00201 et D00200. (Les contenus initiaux de D00101 et D00100 restent inchangés.) MOVE BIT : MOVB(082) Objet Symbole du schéma contact Transfère le bit spécifié. MOVB(082) S S: Mot ou donnée source C C: Mot de contrôle D D: Mot de destination 321 Chapitre 3-8 Instructions de déplacement de données Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Opérandes Zones de programmes de bloc OK Zones de programmes de pas OK MOVB(082) @MOVB(082) Non prise en charge Non prise en charge SousTâches programmes d'interruption OK OK C : Mot de contrôle Les deux chiffres les plus à droite de C indiquent quel bit de S est le bit source, et les deux chiffres les plus à gauche de C indiquent quel bit de D est le bit de destination. 15 C 8 7 m 0 n Bit source : 00 à 0F (0 à 15 décimal) Bit de destination : 00 à 0F (0 à 15 décimal) Spécifications de l’opérande Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index 322 S C D CIO 0000 à CIO 6143 W000 à W511 H000 à H511 A000 à A959 A448 à A959 T0000 à T4095 C0000 à C4095 D00000 à D32767 E00000 à E32767 En_00000 à En_32767 (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) #0000 à #FFFF Valeurs spéci--(binaire) fiées uniquement DR0 à DR15 --,IR0 à ,IR15 –2048 à +2047, IR0 à –2048 à +2047, IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 Chapitre 3-8 Instructions de déplacement de données Description MOVB(082) copie le bit spécifié (n) de S dans le bit spécifié (m) de D. Les autres bits du mot de destination restent inchangés. Remarque Le même mot peut être spécifié pour S et D pour copier un bit au sein d'un mot. Drapeaux Nom Drapeau d'erreur Etiquette Fonctionnement ER ON si les deux chiffres les plus à droite et les plus à gauche de C ne sont pas dans la plage spécifiée de 00 à 0F. OFF dans tous les autres cas. Lorsque CIO 000000 est sur ON dans l'exemple suivant, le 5ème bit du mot source (CIO 0200) est copié dans le 12ème bit du mot de destination (CIO 0300) en fonction de la valeur du mot de contrôle de 0C05. Exemples 1 2 3-8-6 0 5 MOVE DIGIT : MOVD(083) Objet Symbole du schéma contact Transfère le ou les chiffres spécifiés. (Chaque chiffre est constitué de 4 bits.) MOVD(083) S S: Mot ou donnée source C C: Mot de contrôle D D: Mot de destination Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat MOVD(083) @MOVD(083) Non prise en charge Non prise en charge 323 Chapitre 3-8 Instructions de déplacement de données Zones de programmes applicables Opérandes Zones de programmes de bloc OK Zones de programmes de pas OK SousTâches programmes d'interruption OK OK S : Mot source Les chiffres sources sont lus de droite à gauche, englobant le chiffre le plus à droite (chiffre 0) si nécessaire. 15 12 11 8 7 4 3 0 S Chiffre 3 Chiffre 2 Chiffre 1 Chiffre 0 C : Mot de contrôle Les trois premiers chiffres de C indiquent le premier chiffre source (m), le nombre de chiffres à transférer (n), et le premier chiffre de destination (l), comme indiqué dans le schéma ci-dessous. 15 C 12 11 8 7 l 0 4 3 n 0 m Premier chiffre dans S (m) : 0 à 3 Nombre de chiffres (n) : 0 à 3 Premier chiffre dans D (l): 0 à 3 0: 1 chiffre 1: 2 chiffres 2: 3 chiffres 3: 4 chiffres Toujours 0. D : Mot de destination Les chiffres de destination sont écrits de droite à gauche, englobant le chiffre le plus à droite (chiffre 0) si nécessaire. 15 12 11 8 7 4 3 0 D Chiffre 3 Chiffre 2 Chiffre 1 Chiffre 0 Spécifications de l’opérande Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données 324 S C CIO 0000 à CIO 6143 W000 à W511 H000 à H511 A000 à A959 T0000 à T4095 C0000 à C4095 D00000 à D32767 E00000 à E32767 En_00000 à En_32767 (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) #0000 à #FFFF Valeurs spéci(binaire) fiées uniquement DR0 à DR15 D A448 à A959 --- Chapitre 3-8 Instructions de déplacement de données Zone Registres d'index Adressage indirect à l’aide de registres d’index Description S C --,IR0 à ,IR15 –2048 à +2047, IR0 à –2048 à +2047, IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 D MOVD(083) copie le contenu de n chiffres de S (en commençant au chiffre m) dans D (en commençant au chiffre l). Seuls les chiffres spécifiés sont modifiés ; les autres restent inchangés. Si le nombre de chiffres lus ou écrits dépasse le chiffre le plus à gauche de S ou D, MOVD(083) englobe jusqu'au chiffre le plus à droite du même mot. l Remarque Le même mot peut être spécifié pour S et D pour copier un bit au sein d'un mot. Drapeaux Nom Drapeau d'erreur Exemples Etiquette Fonctionnement ER ON si l'un des trois premiers chiffres de C n'est pas dans la plage spécifiée de 0 à 3. OFF dans tous les autres cas. Transfert de quatre chiffres Lorsque CIO 000000 est sur ON dans l'exemple suivant, quatre chiffres de données sont copiés de CIO 0200 vers CIO 0300. Le transfert commence par le chiffre 1 de CIO 0200 et le chiffre 0 de CIO 0300, en fonction de la valeur du mot de contrôle de 0031. Chiffre n.̊ Chiffre n˚. Premier chiffre dans S : Chiffre 1 Nombre de chiffres : 3 (4 chiffres) Premier chiffre dans D : Chiffre 0 Remarque Après lecture du chiffre le plus à gauche de S (chiffre 3), MOVD(083) englobe jusqu'au chiffre le plus à droite (chiffre 0). 325 Chapitre 3-8 Instructions de déplacement de données Exemples de C Le schéma ci-dessous donne des exemples de transfert de données pour plusieurs valeurs de C. Chiffre 0 Chiffre 0 Chiffre 0 Chiffre 0 Chiffre 0 Chiffre 0 Chiffre 0 Chiffre 0 Chiffre 1 Chiffre 1 Chiffre 1 Chiffre 1 Chiffre 1 Chiffre 1 Chiffre 1 Chiffre 2 Chiffre 2 Chiffre 2 Chiffre 1 Chiffre 2 Chiffre 2 Chiffre 2 Chiffre 2 Chiffre 2 Chiffre 3 Chiffre 3 Chiffre 3 Chiffre 3 Chiffre 3 Chiffre 3 Chiffre 3 Chiffre 3 3-8-7 MULTIPLE BIT TRANSFER : XFRB(062) Objet Transfère le nombre de bits consécutifs spécifié. Symbole du schéma contact XFRB(062) C C: Mot de contrôle S S: Premier mot source D D: Premier mot de destination Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Opérandes Zones de programmes de bloc OK Zones de programmes de pas OK XFRB(062) @XFRB(062) Non prise en charge Non prise en charge SousTâches programmes d'interruption OK OK C : Mot de contrôle Les trois premiers chiffres de C indiquent le premier chiffre source (m), le nombre de chiffres à transférer (n), et le premier chiffre de destination (l), comme indiqué dans le schéma ci-dessous. 15 C 8 7 n 4 3 m 0 l Premier bit dans S (l): Premier bit dans D (m) : 0à3 Nombre de chiffres (n) : 00 à FF (0 à 255) S : Premier mot source Spécifie le premier mot source. Les bits sont lus de droite à gauche, en continuant par les mots consécutifs (jusque S+16) si nécessaire. 15 0 S à à S+16 max. Remarque Les mots sources doivent être dans la même zone de données. 326 Chapitre 3-8 Instructions de déplacement de données D : Premier mot de destination Spécifie le premier mot de destination. Les bits sont écrits de droite à gauche, en continuant par les mots consécutifs (jusque D+16) si nécessaire. 15 0 D à à D+16 max. Remarque Les mots de destination doivent être dans la même zone de données. Spécifications de l’opérande Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index Description C S CIO 0000 à CIO 6143 W000 à W511 H000 à H511 A000 à A959 T0000 à T4095 C0000 à C4095 D00000 à D32767 E00000 à E32767 En_00000 à En_32767 (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) Valeurs spéci--fiées uniquement DR0 à DR15 ----- D A448 à A959 --- ,IR0 à ,IR15 –2048 à +2047, IR0 à –2048 à +2047, IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à 5+(++) ,–(– –)IR0 à, –(– –)IR15 XFRB(062) transfère jusqu'à 255 bits consécutifs des mots sources (en commençant au bit l de S) vers les mots de destination (en commençant au bit m de D). Les bits dans les mots destination qui ne sont pas écrasés par les bits sources restent inchangés. Les bits de départ et le nombre de bits sont spécifiés dans C, comme indiqué dans le schéma ci-dessous. 327 Chapitre 3-8 Instructions de déplacement de données Il est possible que les mots sources et destination se chevauchent. En englobant plusieurs mots lors du transfert de données, les données peuvent être condensées de manière plus efficace dans la zone de données. (C'est particulièrement utile lors de la manipulation des données de position pour le contrôle de position.) Etant donné que les mots sources et les mots de destination peuvent se chevaucher, XFRB(062) peut être combinée à ANDW(034) pour décaler m bits de n espaces. Drapeaux Nom Drapeau d'erreur Précautions Etiquette ER OFF Fonctionnement Il est possible de transférer jusque 255 bits de données à l'exécution de XFRB(062). Veillez à ce que les mots sources et les mots de destination ne dépassent pas la fin de la zone de données. Exemples Lorsque CIO 000000 est sur ON dans l'exemple suivant, les 20 bits commençant à CIO 020006 sont copiés dans les 20 bits commençant à CIO 030000. 20 bits 3-8-8 BLOCK TRANSFER : XFER(070) Objet Symbole du schéma contact 328 Transfère le nombre de mots consécutifs spécifié. XFER(070) N N: Nombre de mots S S: Premier mot source D D: Premier mot de destination Chapitre 3-8 Instructions de déplacement de données Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Opérandes Zones de programmes de bloc OK Zones de programmes de pas OK XFER(070) @XFER(070) Non prise en charge Non prise en charge SousTâches programmes d'interruption OK OK N : Nombre de mots Spécifie le nombre de mots à transférer. La plage autorisée pour N est comprise entre 0000 et FFFF (0 à 65 535 décimal). S : Premier mot source Spécifie le premier mot source. 15 0 S à à S+(N−1) D : Premier mot de destination Spécifie le premier mot de destination. 15 0 D à à D+(N−1) Spécifications de l’opérande Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données N S CIO 0000 à CIO 6143 W000 à W511 H000 à H511 A000 à A959 T0000 à T4095 C0000 à C4095 D00000 à D32767 E00000 à E32767 En_00000 à En_32767 (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) --#0000 à #FFFF (binaire) ou &0 à &65535 DR0 à DR15 --- D A448 à A959 --- 329 Chapitre 3-8 Instructions de déplacement de données Zone Registres d'index Adressage indirect à l’aide de registres d’index Description N S --,IR0 à ,IR15 –2048 à +2047, IR0 à –2048 à +2047, IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 D XFER(070) copie N mots commençant à S (S à S+(N–1)) dans les N mots commençant à D (D à D+(N–1)). à N mots à D+ (N−1) S+(N−1) Les mots sources et les mots de destination peuvent se chevaucher ; XFER(070) peut donc effectuer des opérations de décalage de mot. &10 Drapeaux Nom Drapeau d'erreur Précautions Etiquette ER OFF Fonctionnement Veillez à ce que les mots sources (S à S+N–1) et les mots de destination (D à D+N–1) ne dépassent pas la fin de la zone de données. Un certain temps peut être nécessaire pour exécuter XFER(070) lorsqu'un nombre important de mots est transféré. Dans ce cas, le transfert XFER(070) risque de ne pas se terminer en cas de coupure d'alimentation en cours d'exécution de l'instruction. Exemple Lorsque CIO 000000 est sur ON dans l'exemple suivant, les 10 mots D00100 à D00109 sont copiés dans D00200 à D00209. &10 10 mots 330 Chapitre 3-8 Instructions de déplacement de données 3-8-9 BLOCK SET : BSET(071) Objet Copie le même mot dans une plage de mots consécutifs. Symbole du schéma contact BSET(071) S S: Mot source St St: Mot de départ E E: Mot de fin Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Opérandes Zones de programmes de bloc OK Zones de programmes de pas OK BSET(071) @BSET(071) Non prise en charge Non prise en charge SousTâches programmes d'interruption OK OK S : Mot source Spécifie les données sources ou le mot contenant les données sources. St : Mot de départ Spécifie le premier mot dans la plage de destination. E : Mot de fin Spécifie le dernier mot dans la plage de destination. St à E Données sources Plage de destination St E Remarque St et E doivent être dans la même zone de données. Spécifications de l’opérande Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur S St CIO 0000 à CIO 6143 W000 à W511 H000 à H511 A000 à A959 A448 à A959 T0000 à T4095 C0000 à C4095 E 331 Chapitre 3-8 Instructions de déplacement de données Zone Zone DM Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index Description S St D00000 à D32767 E00000 à E32767 En_00000 à En_32767 (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) #0000 à #FFFF --(binaire) DR0 à DR15 ----,IR0 à ,IR15 –2048 à +2047, IR0 à –2048 à +2047, IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –) IR0 à, 15–(– –) IR E BSET(071) copie le même mot source (S) vers tous les mots de destination dans la plage St à E. Mot source Mots de destination St E Drapeaux Nom Etiquette Fonctionnement Drapeau d'erreur ER ON si St est supérieur à E. OFF dans tous les autres cas. Précautions Veillez à ce que le mot de départ (St) et le mot de fin (E) soient dans la même zone de données et que St ≤ E. Un certain temps peut être nécessaire pour exécuter BSET(071) lorsque les données sources sont transférées vers un nombre important de mots. Dans ce cas, le transfert BSET(071) risque de ne pas se terminer en cas de coupure d'alimentation en cours d'exécution de l'instruction. Exemple 332 Lorsque CIO 000000 est sur ON dans l'exemple suivant, les données sources dans D00100 sont copiées dans D00200 à D00209. Chapitre 3-8 Instructions de déplacement de données S St St : E E: 3-8-10 DATA EXCHANGE : XCHG(073) Objet Symbole du schéma contact Echange le contenu des deux mots spécifiés. XCHG(073) E1 E1: Premier mot échange E2 E2: Deuxième mot échange Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Spécifications de l’opérande Zones de programmes de bloc OK Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en binaire Zones de programmes de pas OK XCHG(073) @XCHG(073) Non prise en charge Non prise en charge SousTâches programmes d'interruption OK OK E1 CIO 0000 à CIO 6143 W000 à W511 H000 à H511 A448 à A959 T0000 à T4095 C0000 à C4095 D00000 à D32767 E00000 à E32767 En_00000 à En_32767 (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) E2 333 Chapitre 3-8 Instructions de déplacement de données Zone Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index Description E1 E2 *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) --DR0 à DR15 --,IR0 à ,IR15 –2048 à +2047, IR0 à –2048 à +2047, IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 XCHG(073) échange les contenus de E1 et E2. E1 E2 Drapeaux Nom Drapeau d'erreur Drapeau d'égalité Drapeau négatif Etiquette Fonctionnement ER OFF ou inchangé (voir remarque.) = OFF ou inchangé (voir remarque.) N OFF ou inchangé (voir remarque.) Remarque Dans les UC CS1 et CJ1, ces drapeaux passent OFF. Dans les UC CS1-H, CJ1-H, CJ1M et CS1D, ces drapeaux restent inchangés. Exemple Lorsque CIO 000000 est sur ON dans l'exemple suivant, le contenu de D00100 est échangé avec le contenu de D00200. 3-8-11 DOUBLE DATA EXCHANGE : XCGL(562) Objet Symbole du schéma contact 334 Echange le contenu d'une paire de mots consécutifs avec une autre paire de mots consécutifs. XCGL(562) E1 E1: Premier mot échange E2 E2: Deuxième mot échange Chapitre 3-8 Instructions de déplacement de données Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Spécifications de l’opérande Zones de programmes de bloc OK Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index Description Zones de programmes de pas OK XCGL(562) @XCGL(562) Non prise en charge Non prise en charge SousTâches programmes d'interruption OK OK E1 E2 CIO 0000 à CIO 6142 W000 à W510 H000 à H510 A448 à A958 T0000 à T4094 C0000 à C4094 D00000 à D32766 E00000 à E32766 En_00000 à En_32766 (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) ------IR0 à IR15 ,IR0 à ,IR15 –2048 à +2047, IR0 à –2048 à +2047, IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 XCHG(073) échange les contenus de E1+1 et E1 avec les contenus de E2+1 et E2. E1 E1+1 E2 E2+1 Pour échanger 3 mots ou plus, utilisez XFER(070) pour transférer les mots vers un troisième jeu de mots (tampon) comme indiqué dans le schéma cidessous. 335 Chapitre 3-8 Instructions de déplacement de données E1 1ère opération XFER(070) Tampon 2ème opération XFER(070) E2 3ème opération XFER(070) Drapeaux Nom Drapeau d'erreur Drapeau d'égalité Drapeau négatif Etiquette Fonctionnement ER OFF ou inchangé (voir remarque.) = OFF ou inchangé (voir remarque.) N OFF ou inchangé (voir remarque.) Remarque Dans les UC CS1 et CJ1, ces drapeaux passent OFF. Dans les UC CS1-H, CJ1-H, CJ1M et CS1D, ces drapeaux restent inchangés. Exemple Lorsque CIO 000000 est sur ON dans l'exemple suivant, les contenus de D00100 et D00101 sont échangés avec les contenus de D00200 et D00201. 3-8-12 SINGLE WORD DISTRIBUTE : DIST(080) Objet Symbole du schéma contact Transfère le mot source vers un mot de destination calculé en ajoutant une valeur de décalage à l'adresse de base. DIST(080) S S: Mot source Bs Bs: Adresse destination de base Of Of: Décalage Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat 336 DIST(080) @DIST(080) Non prise en charge Non prise en charge Chapitre 3-8 Instructions de déplacement de données Zones de programmes applicables Opérandes Zones de programmes de bloc OK Zones de programmes de pas OK SousTâches programmes d'interruption OK OK Bs : Adresse de destination de base Spécifie l'adresse de destination de base. Le décalage est ajouté à cette adresse pour calculer le mot de destination. Of : Décalage Cette valeur est ajoutée à l'adresse de base pour calculer le mot de destination. Le décalage peut être toute valeur comprise entre 0000 et FFFF (0 à 65 535 décimal), mais Bs et Bs+Of doivent être dans la même zone de données. 15 0 Bs à à Bs+Of Spécifications de l’opérande Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index S Bs CIO 0000 à CIO 6143 W000 à W511 H000 à H511 A000 à A959 A448 à A959 T0000 à T4095 C0000 à C4095 D00000 à D32767 E00000 à E32767 En_00000 à En_32767 (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) #0000 à #FFFF --(binaire) Of A000 à A959 #0000 à #FFFF (binaire) ou &0 à &65535 DR0 à DR15 DR0 à DR15 ----,IR0 à ,IR15 –2048 à +2047, IR0 à –2048 à +2047, IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 337 Chapitre 3-8 Instructions de déplacement de données Description DIST(080) copie S dans le mot destination calculé en ajoutant Of à Bs. La même instruction DIST(080) peut être utilisée pour distribuer le mot source à différents mots dans la zone de données en changeant la valeur de Of. S Bs Of Bs+n Drapeaux Nom Etiquette Fonctionnement Drapeau d'erreur ER OFF Drapeau d'égalité = ON si les données sources sont 0000. OFF dans tous les autres cas. Drapeau négatif N ON si le bit le plus à gauche des données sources est 1. OFF dans tous les autres cas. Précautions Veillez à ce que le décalage ne dépasse pas la fin de la zone de données, en d'autres termes, que Bs et Bs+Of soient dans la même zone de données. Exemple Lorsque CIO 000000 est sur ON dans l'exemple suivant, le contenu de D00100 est copié dans D00210 (D00200 + 10) si le contenu de D00300 est 10 (0A hexadécimal). Le contenu de D00100 peut être copié dans d'autres mots en modifiant le décalage dans D00300. S : D00100 Copié par DIST(080). S Bs Of Of : Bs : 0 0 0 A 4 chiffres hexadécimaux Décalage +10 mots D00210 3-8-13 DATA COLLECT : COLL(081) Objet Symbole du schéma contact Transfère le mot source (calculé en ajoutant une valeur de décalage à l'adresse de base) vers le mot de destination. COLL(081) Bs Bs: Adresse source de base Of Of: Décalage D D: Mot de destination Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat 338 COLL(081) @COLL(081) Non prise en charge Non prise en charge Chapitre 3-8 Instructions de déplacement de données Zones de programmes applicables Opérandes Zones de programmes de bloc OK Zones de programmes de pas OK SousTâches programmes d'interruption OK OK Bs : Adresse source de base Spécifie l'adresse de source de base. Le décalage est ajouté à cette adresse pour calculer le mot source. Of : Décalage Cette valeur est ajoutée à l'adresse de base pour calculer le mot source. Le décalage peut être toute valeur comprise entre 0000 et FFFF (0 à 65 535 décimal), mais Bs et Bs+Of doivent être dans la même zone de données. 15 0 Bs à Of Spécifications de l’opérande Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index à Bs Of D CIO 0000 à CIO 6143 W000 à W511 H000 à H511 A000 à A959 A448 à A959 T0000 à T4095 C0000 à C4095 D00000 à D32767 E00000 à E32767 En_00000 à En_32767 (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) --#0000 à #FFFF --(binaire) ou &0 à &65535 --DR0 à DR15 --,IR0 à ,IR15 –2048 à +2047, IR0 à –2048 à +2047, IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 339 Chapitre 3-8 Instructions de déplacement de données Description COLL(081) copie le mot source (calculé en additionnant Of à Bs) dans le mot destination. La même instruction COLL(081) peut être utilisée pour récupérer des données de différents mots source dans la zone de donnée en changeant la valeur de Of. Bs Of Bs+n Drapeaux Nom Drapeau d'erreur Etiquette ER OFF Drapeau d'égalité = Drapeau négatif N Fonctionnement ON si les données sources sont 0000. OFF dans tous les autres cas. ON si le bit le plus à gauche des données sources égale 1. OFF dans tous les autres cas. Précautions Veillez à ce que le décalage ne dépasse pas la fin de la zone de données, en d'autres termes, que Bs et Bs+Of soient dans la même zone de données. Exemple Lorsque CIO 000000 est sur ON dans l'exemple suivant, le contenu de D00110 (D00100 + 10) est copié dans D00300 si le contenu de D00200 est 10 (0A hexadécimal). Le contenu des autres mots peut être copié dans D00300 en modifiant le décalage dans D00200. D00200 Bs Of D Bs : D00100 0 0 0 A 4 chiffres hexadécimaux D00101 Décalage +10 mots D00110 Copié par COLL(081). 3-8-14 MOVE TO REGISTER : MOVR(560) Objet Symbole du schéma contact Définit l'adresse mémoire API du mot, du bit ou du drapeau de fin de temporisateur/compteur spécifié dans le registre d'index spécifié. (Utilisez MOVRW(561) pour définir l'adresse mémoire API d'une PV de temporisation/ compteur dans un registre d'index.) MOVR(560) S S: Source (mot ou bit souhaité) D D: Destination (registre d'index) Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat 340 MOVR(560) @MOVR(560) Non prise en charge Non prise en charge Chapitre 3-8 Instructions de déplacement de données Zones de programmes applicables Opérandes Zones de programmes de bloc OK Zones de programmes de pas OK SousTâches programmes d'interruption OK OK D : Destination La destination doit être un registre d'index (IR0 à IR15). Spécifications de l’opérande Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Drapeau de tâche Zone DM Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index Description S CIO 0000 à CIO 6143 CIO 000000 à CIO 614315 W000 à W511 W00000 à W51115 H000 à H511 H00000 à H51115 A000 à A447 A448 à A959 A00000 à A44715 A44800 à A95915 T0000 à T4095 (Drapeau de fin d’exécution) C0000 à C4095 (Drapeau de fin d’exécution) TK0000 à TK0031 D00000 à D32767 E00000 à E32767 En_00000 à En_32767 (n = 0 à C) --- D --------- --- --- --------- ----------- IR0 à IR15 MOVR(560) recherche l'adresse mémoire API (adresse absolue) de S et écrit cette adresse dans D (un registre d'index). Adresse mémoire E/S interne de S Registre d'index Si un temporisateur ou un compteur est spécifié dans S, MOVR(560) écrit l'adresse mémoire API du drapeau de fin de temporisateur/compteur dans D. Utilisez MOVRW(561) pour écrire l'adresse mémoire API de la PV du temporisateur/compteur dans D. 341 Chapitre 3-8 Instructions de déplacement de données Drapeaux Nom Drapeau d'erreur Drapeau d'égalité Drapeau négatif Etiquette Fonctionnement ER OFF ou inchangé (voir remarque.) = OFF ou inchangé (voir remarque.) N OFF ou inchangé (voir remarque.) Remarque Dans les UC CS1 et CJ1, ces drapeaux passent OFF. Dans les UC CS1-H, CJ1-H, CJ1M et CS1D, ces drapeaux restent inchangés. Précautions MOVR(560) ne peut pas configurer les adresses mémoire API des PV de temporisateur/compteur. Utilisez MOVRW(561) pour configurer les adresses mémoire API des PV de temporisateur/compteur. Le contenu d'un registre d'index dans une tâche d'interruption n'est pas prévisible avant qu'il ne soit défini. Veillez à définir un registre au moyen de MOVR(560) dans une tâche d'interruption avant d'utiliser le registre. Toute modification apportée au contenu d'un IR ou DR au cours d'une tâche d'interruption n'exerce aucun impact sur le contenu d'un registre dans une tâche cyclique. Exemple Lorsque CIO 000000 est sur ON dans l'exemple suivant, MOVR(560) écrit l'adresse mémoire API de CIO 0020 dans IR0. Adresse mémoire E/S interne 14 S : 0020 Adresse mémoire E/S interne de CIO 0020 D : IR0 14 3-8-15 MOVE TIMER/COUNTER PV TO REGISTER : MOVRW(561) Objet Symbole du schéma contact Configure l'adresse mémoire API de la PV de temporisateur/compteur spécifiée dans le registre d'index spécifié. (Utilisez MOVR(560) pour configurer l'adresse mémoire API d'un mot, d'un bit ou d'un drapeau de fin de temporisateur/compteur dans un registre d'index.) MOVRW(561) S D S: Source (numéro de TC souhaité) D: Destination (registre d'index) Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Opérandes Zones de programmes de bloc OK Zones de programmes de pas OK Non prise en charge Non prise en charge SousTâches programmes d'interruption OK OK D : Destination La destination doit être un registre d'index (IR0 à IR15). 342 MOVR(561) @MOVR(561) Chapitre 3-8 Instructions de déplacement de données Spécifications de l’opérande Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index Description S --------T0000 à T4095 (valeur actuelle) C0000 à C4095 (valeur actuelle) --------- D ----- ----------- IR0 à IR15 MOVRW(561) recherche l'adresse mémoire API pour la PV du temporisateur ou du compteur spécifié dans S et écrit cette adresse dans D (registre d'index). Adresse mémoire E/S interne de S PV de temporisateur/ compteur uniquement Registre d'index MOVRW(561) configure l'adresse mémoire API de la PV du temporisateur ou du compteur dans D. Utilisez MOVR(560) pour configurer l'adresse mémoire API du drapeau de fin de temporisateur ou de compteur. Drapeaux Nom Etiquette Fonctionnement Drapeau ER OFF ou inchangé (voir remarque.) d'erreur Drapeau = OFF ou inchangé (voir remarque.) d'égalité Drapeau négatif N OFF ou inchangé (voir remarque.) Remarque Dans les UC CS1 et CJ1, ces drapeaux passent OFF. Dans les UC CS1-H, CJ1-H, CJ1M et CS1D, ces drapeaux restent inchangés. Précautions MOVRW(561) ne peut pas configurer les adresses mémoire API des mots, bits ou drapeaux de fins de temporisateur/compteur de la zone de données. Utilisez MOVR(560) pour configurer ces adresses mémoire API. 343 Chapitre 3-9 Instructions de décalage de données Exemple Lorsque CIO 000000 est sur ON dans l'exemple suivant, MOVRW(561) écrit l'adresse mémoire API pour la PV du temporisateur T0000 dans IR1. Adresse mémoire E/S interne S: 3-9 Instructions de décalage de données Ce chapitre décrit les instructions utilisées pour décaler des données à l'intérieur ou entre des mots mais dans des quantités et directions différentes. 344 Instruction SHIFT REGISTER REVERSIBLE SHIFT REGISTER Mnémonique SFT SFTR Code fonction 010 084 Page 345 346 ASYNCHRONOUS SHIFT REGISTER WORD SHIFT ARITHMETIC SHIFT LEFT DOUBLE SHIFT LEFT ARITHMETIC SHIFT RIGHT DOUBLE SHIFT RIGHT ROTATE LEFT DOUBLE ROTATE LEFT ROTATE LEFT WITHOUT CARRY DOUBLE ROTATE LEFT WITHOUT CARRY ROTATE RIGHT DOUBLE ROTATE RIGHT ROTATE RIGHT WITHOUT CARRY DOUBLE ROTATE RIGHT WITHOUT CARRY ONE DIGIT SHIFT LEFT ONE DIGIT SHIFT RIGHT SHIFT N-BIT DATA LEFT SHIFT N-BIT DATA RIGHT SHIFT N-BITS LEFT DOUBLE SHIFT N-BITS LEFT SHIFT N-BITS RIGHT DOUBLE SHIFT N-BITS RIGHT ASFT 017 349 WSFT ASL ASLL ASR ASRL ROL ROLL RLNC 016 025 570 026 571 027 572 574 352 354 355 357 358 360 362 367 RLNL 576 369 ROR RORL RRNC 028 573 575 364 365 371 RRNL 577 372 SLD SRD NSFL NSFR NASL NSLL NASR NSRL 074 075 578 579 580 582 581 583 374 376 377 379 381 384 387 389 Chapitre 3-9 Instructions de décalage de données 3-9-1 SHIFT REGISTER : SFT(010) Objet Opère un registre de décalage Symbole du schéma contact Entrée de données SFT(010) Entrée de décalage St St: Mot de départ Entrée de réinitialisation E E: Mot de fin Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Zones de programmes de bloc Non autorisé Zones de programmes de pas OK SFT(010) Non prise en charge Non prise en charge Non prise en charge Sousprogrammes OK Tâches d'interruption OK Remarque St et E doivent être dans la même zone de données. Spécifications de l’opérande Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index St CIO 0000 à CIO 6143 W000 à W511 H000 à H511 A448 à A959 ------------- E --------,IR0 à ,IR15 –2048 à +2047, IR0 à –2048 à +2047, IR15 DR0 à DR15, IR0 à IR15 345 Chapitre 3-9 Instructions de décalage de données Description Lorsque la condition d'exécution de l'entrée de décalage passe de OFF à ON, toutes les données de St à E sont décalées vers la gauche d'un bit (du bit le plus à droite vers le bit le plus à gauche), et l'état ON/OFF de l'entrée de données est placé dans le bit le plus à droite. E St+1, St+2, ... Perdu St Etat de l'entrée de données pour chaque entrée de décalage Drapeaux Nom Drapeau d'erreur Etiquette Fonctionnement ER ON si l'adresse IR indirecte pour St et E n'est pas dans les zones de données CIO, AR, HR ou WR. OFF dans tous les autres cas. Précautions Les données de bit décalées en dehors du registre de décalage sont supprimées. Lorsque l'entrée de réinitialisation passe à ON, tous les bits du registre de décalage depuis le mot désigné le plus à droite (St) au mot désignée le plus à gauche (E) sont réinitialisés (c.-à-d. mis à 0). L'entrée de réinitialisation a la priorité sur toute autre entrée. St doit être inférieur ou égal à E, mais même lorsque St est plus grand que E, aucune erreur ne se produit et un mot de données dans St est décalé. Lorsque St et E sont indirectement désignés au moyen de registres d'index et que les adresses actuelles dans la mémoire E/S ne sont pas dans les zones de mémoire pour les données, une erreur se produit et le drapeau d'erreur passe à ON. Exemples Registre de décalage dépassant 16 bits L'exemple suivant montre un registre de décalage de 48 bits utilisant les mots CIO 0128 à CIO 0130. Une impulsion d'horloge de 1 s est utilisée pour que la condition d'exécution produite par CIO 000005 soit décalée dans un registre de 3 mots entre CIO 012800 et CIO 013015 à chaque seconde. Entrée de données E : CIO 0130 St+1 : CIO 0129 St : CIO 0128 Entrée de décalage Perdu Contenu de CIO 000005 (horloge 1 s) Réinitialisation 3-9-2 REVERSIBLE SHIFT REGISTER : SFTR(084) Objet Symbole du schéma contact 346 Crée un registre de décalage qui décale les données soit vers la droite soit vers la gauche. SFTR(084) C C: Mot de contrôle St St: Mot de départ E E: Mot de fin Chapitre 3-9 Instructions de décalage de données Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Opérandes Zones de programmes de bloc OK Zones de programmes de pas OK SFTR(084) @SFTR(084) Non prise en charge Non prise en charge Sousprogrammes OK Tâches d'interruption OK C : Mot de contrôle 15 14 13 12 Sens de décalage 1 (ON) : Gauche 0 (OFF) : Droite Entrée de données Entrée de décalage Réinitialisation Remarque St et E doivent être dans la même zone de données. Spécifications de l’opérande Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index C St CIO 0000 à CIO 6143 W000 à W511 H000 à H511 A000 à A959 A448 à A959 T0000 à T4095 C0000 à C4095 D00000 à D32767 E00000 à E32767 En_00000 à En_32767 (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) --DR0 à DR15 ----,IR0 à ,IR15 –2048 à +2047, IR0 à –2048 à +2047, IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 E 347 Chapitre 3-9 Instructions de décalage de données Description Lorsque la condition d'exécution du bit d'entrée de décalage (bit 14 de C) passe à ON, toutes les données de St à E sont déplacées dans le sens de décalage désigné (défini par le bit 12 de C) de 1 bit, et l'état ON/OFF de l'entrée de données est placé dans le bit le plus à droite ou le plus à gauche. Les données de bit décalées en dehors du registre de décalage sont placées dans le drapeau de report (CY). Entrée de données E St E St Entrée de données Sens de décalage Drapeaux Nom Drapeau d'erreur Drapeau de report Précautions Etiquette Fonctionnement ER ON si St est supérieur à E. OFF dans tous les autres cas. CY ON si 1 est décalé dans celui-ci. OFF si 0 est décalé dans celui-ci. OFF lorsque la réinitialisation est réglée sur 1. Les opérations de décalage ci-dessus s'appliquent lorsque le bit de réinitialisation (bit 15 de C) est sur OFF. Lorsque la réinitialisation (bit 15 de C) passe à ON, tous les bits du registre de décalage, de St à E, sont réinitialisés (c.-à-d. mis à 0). Si St est supérieur à E, une erreur est générée et le drapeau d'erreur se met sur ON. Exemples Décalage de données Si l'entrée de décalage CIO 030014 passe à ON lorsque CIO 000000 est sur ON, et que le bit de réinitialisation CIO 030015 est sur OFF, les mots CIO 0100 à CIO 0102 se décalent d'un bit dans la direction désignée par CIO 030012 (ex. 1 : droite) et le contenu du bit d'entrée CIO 030013 est décalé dans le bit le plus à droite, CIO 010000. Le contenu de CIO 010215 est décalé dans le drapeau de report (CY). C St E C : 0300 Sens de décalage Bit d'entrée de décalage : 1 Bit d'entrée de réinitialisation : 0 Entrée des données : CIO 030013 Réinitialisation des données Si CIO 030014 est sur ON lorsque CIO 000000 est sur ON, et que le bit de réinitialisation, CIO 030015, est sur ON, les mots CIO 0100 à CIO 0102 et le drapeau de report sont réinitialisés à OFF. 348 Chapitre 3-9 Instructions de décalage de données Contrôle des données Réinitialisation des données Tous les bits de St à E et le drapeau de report sont mis à 0 et aucune autre donnée ne peut être reçue lorsque le bit d'entrée de réinitialisation (bit 15 de C) est sur ON. Décalage des données vers la gauche (du bit le plus à droite vers le bit le plus à gauche) Lorsque le bit d'entrée de décalage (bit 14 de C) est sur ON, le contenu du bit d'entrée (bit 13 de C) est décalé dans le bit 00 du mot de départ, et chaque bit suivant est décalé d'un bit vers la gauche. L'état du bit 15 du mot de fin est décalé dans le drapeau de report. Entrée de données Décalage des données vers la droite (du bit le plus à gauche vers le bit le plus à droite) Lorsque le bit d'entrée de décalage (bit 14 de C) est sur ON, le contenu du bit d'entrée (bit 13 de C) (E/S) est décalé dans le bit 15 du mot de fin, et chaque bit suivant est décalé d'un bit vers la droite. L'état du bit 00 du mot de départ est décalé dans le drapeau de report. Entrée de données 3-9-3 ASYNCHRONOUS SHIFT REGISTER : ASFT(017) Objet Symbole du schéma contact Décale toutes les données de mot non nulles dans la plage de mots spécifiée vers St ou vers E, en remplaçant les données de mot 0000Hex. ASFT(017) C C: Mot de contrôle St St: Mot de départ E E: Mot de fin Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Zones de programmes de bloc OK Zones de programmes de pas OK ASFT(017) @ASFT(017) Non prise en charge Non prise en charge Sousprogrammes OK Tâches d'interruption OK 349 Chapitre 3-9 Instructions de décalage de données Opérandes C : Mot de contrôle 15 14 13 12 Sens de décalage 0: Données non nulles décalées vers E 1: Données non nulles décalées vers St Bit d'activation de décalage 0: Décalage désactivé 1: Décalage activé Bit d'effacement 0: Données non réinitialisées 1: Toutes les données de St à E sont réinitialisées Remarque St et E doivent être dans la même zone de données. Spécifications de l’opérande Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index Description 350 C St CIO 0000 à CIO 6143 W000 à W511 H000 à H511 A000 à A959 A448 à A959 T0000 à T4095 C0000 à C4095 D00000 à D32767 E00000 à E32767 En_00000 à En_32767 (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) --DR0 à DR15 ----,IR0 à ,IR15 –2048 à +2047, IR0 à –2048 à +2047, IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 E Lorsque le bit d'activation de décalage (bit 14 de C) est sur ON, tous les mots ayant un contenu non nul et situés dans la plage de mots entre St et E sont décalés d'un mot dans le sens déterminé par le bit de sens de décalage (bit 13 de C) chaque fois que le mot dans le sens de décalage ne contient que des zéros. Si ASFT(017) est répétée suffisamment de fois, tous les mots ne contenant que des zéros sont remplacés par des mots non nuls. Toutes les données comprises entre St et E se répartissent donc en données nulles et données non nulles. Chapitre 3-9 Instructions de décalage de données St ... Conversion Sens de décalage Décalage activé Effacer Conversion E St Données non nulles ... Données nulles E Drapeaux Nom Drapeau d'erreur Précautions Etiquette Fonctionnement ER ON si St est supérieur à E. ON si le drapeau de port de communication activé pour le numéro du port de communication spécifié comme le numéro Port Com en vue de l'exécution en arrière-plan est sur OFF lorsque le traitement en arrière-plan est spécifié. OFF dans tous les autres cas. Lorsque le drapeau d'effacement (bit 15 de C) passe à ON, tous les bits du registre de décalage, de St à E, sont réinitialisés (c.-à-d. mis à 0). Le drapeau d'effacement a la priorité sur le bit d'activation de décalage (bit 14 de C). Si St est supérieur à E, une erreur est générée et le drapeau d'erreur se met sur ON. Exemples Décalage de données : Si le bit d'activation de décalage, CIO 030014, passe à ON lorsque CIO 000000 est sur ON, tous les mots contenant des données non nulles de CIO 0100 à CIO 0109 sont décalés dans le sens déterminé par le bit de sens de décalage, CIO 030013 (ex. 1 : vers St) si le mot à gauche des données non nulles ne contient que des zéros. 351 Chapitre 3-9 Instructions de décalage de données C St C : 0300 E Sens de décalage 1: Données non nulles décalées vers E Bit d'activation de décalage : 1 Effacer Avant exécution de ASFT(017) Après une exécution Après deux exécutions St : Données non nulles décalées vers St E: 3-9-4 WORD SHIFT : WSFT(016) Objet Décale les données entre St et E en unités de mots. Symbole du schéma contact WSFT(016) S S: Mot source St St: Mot de départ E E: Mot de fin Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Zones de programmes de bloc OK Zones de programmes de pas OK WSFT(016) @WSFT(016) Non prise en charge Non prise en charge Sousprogrammes OK Tâches d'interruption OK Remarque St et E doivent être dans la même zone de données. Spécifications de l’opérande 352 Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM S St CIO 0000 à CIO 6143 W000 à W511 H000 à H511 A000 à A959 A448 à A959 T0000 à T4095 C0000 à C4095 D00000 à D32767 E Chapitre 3-9 Instructions de décalage de données Zone Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index Description S St E00000 à E32767 En_00000 à En_32767 (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) #0000 à #FFFF --(binaire) DR0 à DR15 ----,IR0 à ,IR15 –2048 à +2047, IR0 à –2048 à +2047, IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 E WSFT(016) décale les données de St à E par unités de mot, et les données du mot source S sont placées dans St. Le contenu de E est perdu. E St Perdu Drapeaux Nom Drapeau d'erreur Précautions Etiquette Fonctionnement ER ON si St est supérieur à E. OFF dans tous les autres cas. Si St est supérieur à E, une erreur est générée et le drapeau d'erreur se met sur ON. Remarque Lorsque de grandes quantités de données sont décalées, le temps d'exécution de l'instruction est relativement long. Veillez à ce qu'il n'y ait pas de coupure de courant en cours d'exécution de WSFT(016), car l'opération de décalage risque d'être interrompue. Exemples Lorsque CIO 000000 est sur ON, les données de CIO 0100 à CIO 0102 sont décalées d'un mot vers E. Le contenu de CIO 0300 est enregistré dans CIO 0100 et le contenu de CIO 0102 est perdu. St E S : CIO 0300 E : CIO 0100 St : CIO 0101 St : CIO 0102 Perdu 353 Chapitre 3-9 Instructions de décalage de données 3-9-5 ARITHMETIC SHIFT LEFT : ASL(025) Objet Symbole du schéma contact Décale le contenu de Wd d'un bit vers la gauche. ASL(025) Wd Wd : Mot Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Spécifications de l’opérande Zones de programmes de bloc OK Zones de programmes de pas OK Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index Non prise en charge Sousprogrammes OK Tâches d'interruption OK ASL(025) décale le contenu de Wd d'un bit vers la gauche (du bit le plus à droite vers le bit le plus à gauche). “0” est placé dans le bit le plus à droite et les données du bit le plus à gauche sont décalées dans le drapeau de report (CY). 15 354 Non prise en charge Wd CIO 0000 à CIO 6143 W000 à W511 H000 à H511 A448 à A959 T0000 à T4095 C0000 à C4095 D00000 à D32767 E00000 à E32767 En_00000 à En_32767 (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 --DR0 à DR15 --,IR0 à ,IR15 –2048 à +2047, IR0 à –2048 à +2047, IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 Adresses DM/EM indirectes en binaire Description ASL(025) @ASL(025) 0 Chapitre 3-9 Instructions de décalage de données Drapeaux Précautions Nom Drapeau d'erreur Drapeau d'égalité Etiquette ER OFF Drapeau de report CY Drapeau négatif N = Fonctionnement ON lorsque le résultat du décalage est 0. OFF dans tous les autres cas. ON lorsque 1 est décalé dans le drapeau de report (CY). OFF dans tous les autres cas. ON lorsque le bit le plus à gauche est 1 à la suite du décalage. OFF dans tous les autres cas. Lorsque ASL(025) est exécutée, le drapeau d'erreur se met sur OFF. Si, à la suite du décalage, le contenu de Wd est zéro, le drapeau d'égalité se met sur ON. Si, à la suite du décalage, le contenu du bit le plus à gauche de Wd est 1, le drapeau négatif se met sur ON. Exemples Lorsque CIO 000000 est sur ON, CIO 0100 est décalé d'un bit vers la gauche. “0” est placé dans CIO 010000 et le contenu de CIO 010115 est décalé dans le drapeau de report (CY). Wd 3-9-6 DOUBLE SHIFT LEFT : ASLL(570) Objet Symbole du schéma contact Décale le contenu de Wd et Wd +1 d'un bit vers la gauche. ASLL(570) Wd Wd : Mot Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Spécifications de l’opérande Zones de programmes de bloc OK Zone Zone CIO Zone Travail Zones de programmes de pas OK ASLL(570) @ASLL(570) Non prise en charge Non prise en charge Sousprogrammes OK Tâches d'interruption OK Wd CIO 0000 à CIO 6142 W000 à W510 355 Chapitre 3-9 Instructions de décalage de données Zone Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index Description Wd H000 à H510 A448 à A958 T0000 à T4094 C0000 à C4094 D00000 à D32766 E00000 à E32766 En_00000 à En_32766 (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) ------,IR0 à ,IR15 –2048 à +2047, IR0 à –2048 à +2047, IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 ASLL(570) décale le contenu de Wd et Wd+1 d'un bit vers la gauche (du bit le plus à droite vers le bit le plus à gauche). “0” est placé dans le bit le plus à droite de Wd et les contenus du bit le plus à gauche de Wd et Wd +1 sont décalés dans le drapeau de report (CY). Wd+1 Wd Drapeaux Précautions Nom Drapeau d'erreur Drapeau d'égalité Etiquette ER OFF Drapeau de report CY Drapeau négatif N = Fonctionnement ON lorsque le résultat du décalage est 0. OFF dans tous les autres cas. ON lorsque 1 est décalé dans le drapeau de report (CY). OFF dans tous les autres cas. ON lorsque le bit le plus à gauche est 1 à la suite du décalage. OFF dans tous les autres cas. Lorsque ASLL(570) est exécutée, le drapeau d'erreur se met sur OFF. Si, à la suite du décalage, les contenus de Wd et de Wd+1 sont zéro, le drapeau d'égalité se met sur ON. Si, à la suite du décalage, le contenu du bit le plus à gauche de Wd+1 est 1, le drapeau négatif se met sur ON. Exemples 356 Lorsque CIO 000000 est sur ON, les mots CIO 0100 et CIO 0101 sont décalés d'un bit vers la gauche. “0” est placé dans CIO 010000 et le contenu de CIO 010015 est décalé dans le drapeau de report (CY). Chapitre 3-9 Instructions de décalage de données Wd 3-9-7 ARITHMETIC SHIFT RIGHT : ASR(026) Objet Symbole du schéma contact Décale le contenu de Wd d'un bit vers la droite. ASR(026) Wd Wd : Mot Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Spécifications de l’opérande Zones de programmes de bloc OK Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données Zones de programmes de pas OK ASR(026) @ASR(026) Non prise en charge Non prise en charge Sousprogrammes OK Tâches d'interruption OK Wd CIO 0000 à CIO 6143 W000 à W511 H000 à H511 A448 à A959 T0000 à T4095 C0000 à C4095 D00000 à D32767 E00000 à E32767 En_00000 à En_32767 (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) --DR0 à DR15 357 Chapitre 3-9 Instructions de décalage de données Zone Registres d'index Adressage indirect à l’aide de registres d’index Description Wd --,IR0 à ,IR15 –2048 à +2047, IR0 à –2048 à +2047, IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 ASR(026) décale le contenu de Wd d'un bit vers la droite (du bit le plus à gauche vers le bit le plus à droite). “0” est placé dans le bit le plus à gauche et le contenu du bit le plus à droite est décalé dans le drapeau de report (CY). Drapeaux Précautions Nom Drapeau d'erreur Etiquette ER OFF Drapeau d'égalité = Drapeau de report CY Drapeau négatif N Fonctionnement ON lorsque le résultat du décalage est 0. OFF dans tous les autres cas. ON lorsque 1 est décalé vers le drapeau de report (CY). OFF dans tous les autres cas. OFF Lorsque ASR(026) est exécutée, le drapeau d'erreur et le drapeau négatif passent à OFF. Si, à la suite du décalage, le contenu de Wd est zéro, le drapeau d'égalité se met sur ON. Exemples Lorsque CIO 000000 est sur ON, CIO 0100 est décalé d'un bit vers la droite. “0” est placé dans CIO 010015 et le contenu de CIO 010000 est décalé vers le drapeau de report (CY). Wd 3-9-8 DOUBLE SHIFT RIGHT : ASRL(571) Objet Symbole du schéma contact Décale le contenu de Wd et Wd +1 d'un bit vers la droite. ASRL(571) Wd 358 Wd : Mot Chapitre 3-9 Instructions de décalage de données Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Spécifications de l’opérande Zones de programmes de bloc OK Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index Description Zones de programmes de pas OK ASRL(571) @ASRL(571) Non prise en charge Non prise en charge Sousprogrammes OK Tâches d'interruption OK Wd CIO 0000 à CIO 6142 W000 à W510 H000 à H510 A448 à A958 T0000 à T4094 C0000 à C4094 D00000 à D32766 E00000 à E32766 En_00000 à En_32766 (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) ------,IR0 à ,IR15 –2048 à +2047, IR0 à –2048 à +2047, IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 ASRL(571) décale le contenu de Wd et Wd+1 d'un bit vers la droite (du bit le plus à gauche vers le bit le plus à droite). “0” est placé dans le bit le plus à gauche de Wd+1 et le contenu du bit le plus à droite de Wd est décalé dans le drapeau de report (CY). Wd+1 Wd Drapeaux Nom Drapeau d'erreur Drapeau d'égalité Etiquette ER OFF = Fonctionnement ON lorsque le résultat du décalage est 0. OFF dans tous les autres cas. 359 Chapitre 3-9 Instructions de décalage de données Nom Drapeau de report Etiquette Fonctionnement CY ON lorsque 1 est décalé dans le drapeau de report (CY). OFF dans tous les autres cas. N OFF Drapeau négatif Précautions Lorsque ASRL(571) est exécutée, le drapeau d'erreur et le drapeau négatif passent à OFF. Si, à la suite du décalage, les contenus de Wd et de Wd+1 sont zéro, le drapeau d'égalité se met sur ON. Exemples Lorsque CIO 000000 est sur ON, le mot CIO 0100 et CIO 0101 est décalé d'un bit vers la droite. “0” est placé dans CIO 010115 et le contenu de CIO 010000 est décalé dans le drapeau de report (CY). Wd 3-9-9 ROTATE LEFT : ROL(027) Objet Symbole du schéma contact Décale tous les bits Wd d'un bit vers la gauche, y compris le drapeau de report (CY). ROL(027) Wd Wd : Mot Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Spécifications de l’opérande 360 Zones de programmes de bloc OK Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zones de programmes de pas OK Non prise en charge Non prise en charge Sousprogrammes OK Wd CIO 0000 à CIO 6143 W000 à W511 H000 à H511 A448 à A959 T0000 à T4095 C0000 à C4095 D00000 à D32767 ROL(027) @ROL(027) Tâches d'interruption OK Chapitre 3-9 Instructions de décalage de données Zone Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index Description Wd E00000 à E32767 En_00000 à En_32767 (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) --DR0 à DR15 --,IR0 à ,IR15 –2048 à +2047, IR0 à –2048 à +2047, IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 ROL(027) décale tous les bits de Wd, drapeau de report (CY) inclus, vers la gauche (du bit le plus à droite vers le bit le plus à gauche). Drapeaux Précautions Nom Drapeau d'erreur Drapeau d'égalité Etiquette ER OFF Fonctionnement = ON lorsque le résultat du décalage est 0. OFF dans tous les autres cas. Drapeau de report CY Drapeau négatif N ON lorsque 1 est décalé dans le drapeau de report (CY). OFF dans tous les autres cas. ON lorsque le bit le plus à gauche est 1 à la suite du décalage. OFF dans tous les autres cas. Lorsque ROL(027) est exécutée, le drapeau d'erreur se met sur OFF. Si, à la suite du décalage, le contenu de Wd est zéro, le drapeau d'égalité se met sur ON. Si, à la suite du décalage, le contenu du bit le plus à gauche de Wd est 1, le drapeau négatif se met sur ON. Remarque Il est possible de régler le contenu du drapeau de report sur 1 ou 0 juste avant d'exécuter cette instruction, au moyen des instructions Set Carry (STC(040)) ou Clear Carry (CLC(041)). Exemples Lorsque CIO 000000 est sur ON, le mot CIO 0100 et le drapeau de report (CY) sont décalés d'un bit vers la gauche. Le contenu de CIO 010015 est décalé vers le drapeau de report (CY) et le contenu du drapeau de report est décalé vers CIO 010000. 361 Chapitre 3-9 Instructions de décalage de données Wd Wd : CIO 0100 Instruction exécutée une fois 3-9-10 DOUBLE ROTATE LEFT : ROLL(572) Objet Symbole du schéma contact Décale tous les bits de Wd et Wd +1 d'un bit vers la gauche, y compris le drapeau de passage (CY). ROLL(572) Wd Wd : Mot Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Spécifications de l’opérande Zones de programmes de bloc OK Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes 362 Zones de programmes de pas OK ROLL(572) @ROLL(572) Non prise en charge Non prise en charge Sousprogrammes OK Wd CIO 0000 à CIO 6142 W000 à W510 H000 à H510 A448 à A958 T0000 à T4094 C0000 à C4094 D00000 à D32766 E00000 à E32766 En_00000 à En_32766 (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) --- Tâches d'interruption OK Chapitre 3-9 Instructions de décalage de données Zone Registres de données Registres d'index Adressage indirect à l’aide de registres d’index Description Wd ----,IR0 à ,IR15 –2048 à +2047, IR0 à –2048 à +2047, IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 ROLL(572) décale tous les bits de Wd et Wd+1, drapeau de report (CY) inclus, vers la gauche (du bit le plus à droite vers le bit le plus à gauche). Wd+1 Wd Drapeaux Précautions Nom Drapeau d'erreur Etiquette ER OFF Drapeau d'égalité = Drapeau de report CY Drapeau négatif N Fonctionnement ON lorsque le résultat du décalage est 0. OFF dans tous les autres cas. ON lorsque 1 est décalé dans le drapeau de report (CY). OFF dans tous les autres cas. ON lorsque le bit le plus à gauche est 1 à la suite du décalage. OFF dans tous les autres cas. Lorsque ROLL(572) est exécutée, le drapeau d'erreur se met sur OFF. Si, à la suite du décalage, les contenus de Wd et de Wd+1 sont zéro, le drapeau d'égalité se met sur ON. Si, à la suite du décalage, le contenu du bit le plus à gauche de Wd+1 est 1, le drapeau négatif se met sur ON. Remarque Il est possible de régler le contenu du drapeau de report sur 1 ou 0 juste avant d'exécuter cette instruction, au moyen des instructions Set Carry (STC(040)) ou Clear Carry (CLC(041)). Exemples Lorsque CIO 000000 est sur ON, le mot CIO 0100, CIO 0101 et le drapeau de report (CY) sont décalés d'un bit vers la gauche. Le contenu de CIO 010015 est décalé vers le drapeau de report (CY) et le contenu du drapeau de report est décalé vers CIO 010000. Wd Wd+1 : CIO 0101 Wd : CIO 0100 Instruction exécutée une fois 363 Chapitre 3-9 Instructions de décalage de données 3-9-11 ROTATE RIGHT : ROR(028) Objet Décale tous les bits Wd d'un bit vers la droite, y compris le drapeau de report (CY). Symbole du schéma contact ROR(028) Wd Wd : Mot Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Zones de programmes de bloc OK Spécifications de l’opérande Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index Description 364 Zones de programmes de pas OK ROR(028) @ROR(028) Non prise en charge Non prise en charge Sousprogrammes OK Tâches d'interruption OK Wd CIO 0000 à CIO 6143 W000 à W511 H000 à H511 A448 à A959 T0000 à T4095 C0000 à C4095 D00000 à D32767 E00000 à E32767 En_00000 à En_32767 (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) --DR0 à DR15 --,IR0 à ,IR15 –2048 à +2047, IR0 à –2048 à +2047, IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 ROR(028) décale tous les bits de Wd, drapeau de report (CY) inclus, vers la droite (du bit le plus à gauche vers le bit le plus à droite). Chapitre 3-9 Instructions de décalage de données Wd Drapeaux Précautions Nom Drapeau d'erreur Drapeau d'égalité Etiquette ER OFF Drapeau de report CY Drapeau négatif N = Fonctionnement ON lorsque le résultat du décalage est 0. OFF dans tous les autres cas. ON lorsque 1 est décalé dans le drapeau de report (CY). OFF dans tous les autres cas. ON lorsque le bit le plus à gauche est 1 à la suite du décalage. OFF dans tous les autres cas. Lorsque ROR(028) est exécutée, le drapeau d'erreur se met sur OFF. Si, à la suite du décalage, le contenu de Wd est zéro, le drapeau d'égalité se met sur ON. Si, à la suite du décalage, le contenu du bit le plus à gauche de Wd est 1, le drapeau négatif se met sur ON. Remarque Il est possible de régler le contenu du drapeau de report sur 1 ou 0 juste avant d'exécuter cette instruction, au moyen des instructions Set Carry (STC(040)) ou Clear Carry (CLC(041)). Exemples Lorsque CIO 000000 est sur ON, le mot CIO 0100 et le drapeau de report (CY) sont décalés d'un bit vers la droite. Le contenu de CIO 010000 est décalé vers le drapeau de report (CY) et le contenu du drapeau de report est décalé vers CIO 010015. Wd Wd : CIO 0100 Instruction exécutée une fois 3-9-12 DOUBLE ROTATE RIGHT : RORL(573) Objet Symbole du schéma contact Décale tous les bits Wd et Wd +1 d'un bit vers la droite, y compris le drapeau de report (CY). RORL(573) Wd Wd : Mot Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat RORL(573) @RORL(573) Non prise en charge Non prise en charge 365 Chapitre 3-9 Instructions de décalage de données Zones de programmes applicables Spécifications de l’opérande Zones de programmes de bloc OK Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index Description Zones de programmes de pas OK Sousprogrammes OK Tâches d'interruption OK Wd CIO 0000 à CIO 6142 W000 à W510 H000 à H510 A448 à A958 T0000 à T4094 C0000 à C4094 D00000 à D32766 E00000 à E32766 En_00000 à En_32766 (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) ------,IR0 à ,IR15 –2048 à +2047, IR0 à –2048 à +2047, IR15 DR0 à DR15, IR0 à IR15 ,IR0++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 RORL(573) décale tous les bits de Wd et Wd+1, drapeau de report (CY) inclus, vers la droite (du bit le plus à gauche vers le bit le plus à droite). Wd+1 Wd Drapeaux Précautions Nom Drapeau d'erreur Drapeau d'égalité Etiquette ER OFF Drapeau de report CY Drapeau négatif N = Fonctionnement ON lorsque le résultat du décalage est 0. OFF dans tous les autres cas. ON lorsque 1 est décalé vers le drapeau de report (CY). OFF dans tous les autres cas. ON lorsque le bit le plus à gauche est 1 à la suite du décalage. OFF dans tous les autres cas. Lorsque RORL(573) est exécutée, le drapeau d'erreur se met sur OFF. Si, à la suite du décalage, les contenus de Wd et de Wd+1 sont zéro, le drapeau d'égalité se met sur ON. 366 Chapitre 3-9 Instructions de décalage de données Si, à la suite du décalage, le contenu du bit le plus à gauche de Wd+1 est 1, le drapeau négatif se met sur ON. Remarque Il est possible de régler le contenu du drapeau de report sur 1 ou 0 juste avant d'exécuter cette instruction, au moyen des instructions Set Carry (STC(040)) ou Clear Carry (CLC(041)). Exemples Lorsque CIO 000000 est sur ON, le mot CIO 0100, CIO 0101 et le drapeau de report (CY) sont décalés d'un bit vers la droite. Le contenu de CIO 010000 est décalé vers le drapeau de report (CY) et le contenu du drapeau de report est décalé vers CIO 010115. Wd Wd+1 : CIO Wd : CIO 0100 Instruction exécutée une fois 3-9-13 ROTATE LEFT WITHOUT CARRY : RLNC(574) Objet Symbole du schéma contact Décale tous les bits Wd d'un bit vers la gauche, sans inclure le drapeau de report (CY). RLNC(574) Wd Wd : Mot Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Spécifications de l’opérande Zones de programmes de bloc OK Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque Zones de programmes de pas OK RLNC(574) @RLNC(574) Non prise en charge Non prise en charge Sousprogrammes OK Tâches d'interruption OK Wd CIO 0000 à CIO 6143 W000 à W511 H000 à H511 A448 à A959 T0000 à T4095 C0000 à C4095 D00000 à D32767 E00000 à E32767 En_00000 à En_32767 (n = 0 à C) 367 Chapitre 3-9 Instructions de décalage de données Zone Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index Description Wd @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) --DR0 à DR15 --,IR0 à ,IR15 –2048 à +2047, IR0 à –2048 à +2047, IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 RLNC(574) décale tous les bits de Wd vers la gauche (du bit le plus à droite vers le bit le plus à gauche). Le contenu du bit le plus à gauche de Wd se décale vers le bit le plus à droite et vers le drapeau de report (CY). Wd Drapeaux Précautions Nom Drapeau d'erreur Drapeau d'égalité Etiquette ER OFF Drapeau de report CY Drapeau négatif N = Fonctionnement ON lorsque le résultat du décalage est 0. OFF dans tous les autres cas. ON lorsque 1 est décalé vers le drapeau de report (CY). OFF dans tous les autres cas. ON lorsque le bit le plus à gauche est 1 à la suite du décalage. OFF dans tous les autres cas. Lorsque RLNC(574) est exécutée, le drapeau d'erreur se met sur OFF. Si, à la suite du décalage, le contenu de Wd est zéro, le drapeau d'égalité se met sur ON. Si, à la suite du décalage, le contenu du bit le plus à gauche de Wd est 1, le drapeau négatif se met sur ON. Exemples 368 Lorsque CIO 000000 est sur ON, le mot CIO 0100 est décalé d'un bit vers la gauche (drapeau de report (CY) exclu). Le contenu de CIO 010015 est décalé vers CIO 010000. Chapitre 3-9 Instructions de décalage de données Wd Wd : CIO 0100 Instruction exécutée une fois 1 3-9-14 DOUBLE ROTATE LEFT WITHOUT CARRY : RLNL(576) Objet Symbole du schéma contact Décale tous les bits Wd et Wd +1 d'un bit vers la gauche, sans inclure le drapeau de report (CY). RLNL(576) Wd Wd : Mot Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Spécifications de l’opérande Zones de programmes de bloc OK Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Zones de programmes de pas OK RLNL(576) @RLNL(576) Non prise en charge Non prise en charge Sousprogrammes OK Tâches d'interruption OK Wd CIO 0000 à CIO 6142 W000 à W510 H000 à H510 A448 à A958 T0000 à T4094 C0000 à C4094 D00000 à D32766 E00000 à E32766 En_00000 à En_32766 (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) --- 369 Chapitre 3-9 Instructions de décalage de données Zone Registres de données Registres d'index Adressage indirect à l’aide de registres d’index Description Wd ----,IR0 à ,IR15 –2048 à +2047, IR0 à –2048 à +2047, IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 RLNL(576) décale tous les bits de Wd et Wd+1 vers la gauche (du bit le plus à droite vers le bit le plus à gauche). Le contenu du bit le plus à gauche de Wd +1 est décalé vers le bit le plus à droite de Wd et vers le drapeau de report (CY). Wd+1 Wd Drapeaux Précautions Nom Drapeau d'erreur Drapeau d'égalité Etiquette ER OFF Drapeau de report CY Drapeau négatif N = Fonctionnement ON lorsque le résultat du décalage est 0. OFF dans tous les autres cas. ON lorsque 1 est décalé vers le drapeau de report (CY). OFF dans tous les autres cas. ON lorsque le bit le plus à gauche est 1 à la suite du décalage. OFF dans tous les autres cas. Lorsque RLNL(576) est exécutée, le drapeau d'erreur se met sur OFF. Si, à la suite du décalage, les contenus de Wd et de Wd+1 sont zéro, le drapeau d'égalité se met sur ON. Si, à la suite du décalage, le contenu du bit le plus à gauche de Wd+1 est 1, le drapeau négatif se met sur ON. Exemples Lorsque CIO 000000 est sur ON, le mot CIO 0100 et CIO 0101 sont décalés d'un bit vers la gauche (drapeau de report (CY) exclu). Le contenu de CIO 010115 est décalé vers CIO 010000. Wd Wd+1 : CIO 0101 Wd : CIO 0100 Instruction exécutée une fois 1 370 Chapitre 3-9 Instructions de décalage de données 3-9-15 ROTATE RIGHT WITHOUT CARRY : RRNC(575) Objet Symbole du schéma contact Décale tous les bits Wd d'un bit vers la droite, sans inclure le drapeau de report (CY). Le contenu du bit le plus à droite de Wd se décale vers le bit de gauche et vers le drapeau de report (CY). RRNC(575) Wd Wd : Mot Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Spécifications de l’opérande Zones de programmes de bloc OK Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index Description Zones de programmes de pas OK RRNC(575) @RRNC(575) Non prise en charge Non prise en charge Sousprogrammes OK Tâches d'interruption OK Wd CIO 0000 à CIO 6143 W000 à W511 H000 à H511 A448 à A959 T0000 à T4095 C0000 à C4095 D00000 à D32767 E00000 à E32767 En_00000 à En_32767 (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) --DR0 à DR15 --,IR0 à ,IR15 –2048 à +2047, IR0 à –2048 à +2047, IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 RRNC(575) décale tous les bits de Wd vers la droite (du bit le plus à gauche vers le bit le plus à droite), drapeau de report (CY) exclu. 371 Chapitre 3-9 Instructions de décalage de données Wd Drapeaux Précautions Nom Drapeau d'erreur Etiquette ER OFF Drapeau d'égalité = Drapeau de report CY Drapeau négatif N Fonctionnement ON lorsque le résultat du décalage est 0. OFF dans tous les autres cas. ON lorsque 1 est décalé vers le drapeau de report (CY). OFF dans tous les autres cas. ON lorsque le bit le plus à gauche est 1 à la suite du décalage. OFF dans tous les autres cas. Lorsque RRNC(575) est exécutée, le drapeau d'erreur se met sur OFF. Si, à la suite du décalage, le contenu de Wd est zéro, le drapeau d'égalité se met sur ON. Si, à la suite du décalage, le contenu du bit le plus à gauche de Wd est 1, le drapeau négatif se met sur ON. Exemples Lorsque CIO 000000 est sur ON, le mot CIO 0100 est décalé d'un bit vers la droite (drapeau de report (CY) exclu). Le contenu de CIO 010000 est décalé vers CIO 010015. Wd Wd : CIO 0100 Instruction exécutée une fois CY 3-9-16 DOUBLE ROTATE RIGHT WITHOUT CARRY : RRNL(577) Objet Symbole du schéma contact Décale tous les bits de Wd et Wd +1 d'un bit vers la droite, sans inclure le drapeau de report (CY). Le contenu du bit le plus à droite de Wd +1 est décalé vers le bit de gauche de Wd et vers le drapeau de report (CY). RRNL(577) Wd Wd : Mot Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat 372 RRNL(577) @RRNL(577) Non prise en charge Non prise en charge Chapitre 3-9 Instructions de décalage de données Zones de programmes applicables Spécifications de l’opérande Zones de programmes de bloc OK Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index Description Zones de programmes de pas OK Sousprogrammes OK Tâches d'interruption OK Wd CIO 0000 à CIO 6142 W000 à W510 H000 à H510 A448 à A958 T0000 à T4094 C0000 à C4094 D00000 à D32766 E00000 à E32766 En_00000 à En_32766 (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) ------,IR0 à ,IR15 –2048 à +2047, IR0 à –2048 à +2047, IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 RRNL(577) décale tous les bits de Wd et Wd+1 vers la droite (du bit le plus à gauche vers le bit le plus à droite), drapeau de report (CY) exclu. Wd+1 Wd Drapeaux Précautions Nom Drapeau d'erreur Drapeau d'égalité Etiquette ER OFF Drapeau de report CY Drapeau négatif N = Fonctionnement ON lorsque le résultat du décalage est 0. OFF dans tous les autres cas. ON lorsque 1 est décalé vers le drapeau de report (CY). OFF dans tous les autres cas. ON lorsque le bit le plus à gauche est 1 à la suite du décalage. OFF dans tous les autres cas. Lorsque RRNL(577) est exécutée, le drapeau d'erreur se met sur OFF. Si, à la suite du décalage, les contenus de Wd et de Wd+1 sont zéro, le drapeau d'égalité se met sur ON. 373 Chapitre 3-9 Instructions de décalage de données Si, à la suite du décalage, le contenu du bit le plus à gauche de Wd+1 est 1, le drapeau négatif se met sur ON. Remarque Il est possible de régler le contenu du drapeau de report sur 1 ou 0 juste avant d'exécuter cette instruction, au moyen des instructions Set Carry (STC(040)) ou Clear Carry (CLC(041)). Exemples Lorsque CIO 000000 est sur ON, les mots CIO 0100 et CIO 0101 sont décalés d'un bit vers la droite (drapeau de report (CY) exclu). Le contenu de CIO 010000 est décalé vers CIO 010115. Wd Wd+1 : CIO 0101 Wd : CIO 0100 Instruction exécutée une fois 3-9-17 ONE DIGIT SHIFT LEFT : SLD(074) Objet Décale les données d'un chiffre (4 bits) vers la gauche. Symbole du schéma contact SLD(074) St St: Mot de départ E E: Mot de fin Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Zones de programmes de bloc OK Zones de programmes de pas OK SLD(074) @SLD(074) Non prise en charge Non prise en charge Sousprogrammes OK Tâches d'interruption OK Remarque St et E doivent être dans la même zone de données. Spécifications de l’opérande 374 Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque St CIO 0000 à CIO 6143 W000 à W511 H000 à H511 A448 à A959 T0000 à T4095 C0000 à C4095 D00000 à D32767 E00000 à E32767 E Chapitre 3-9 Instructions de décalage de données Zone Zone EM avec banque Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index Description St E En_00000 à En_32767 (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) ------,IR0 à ,IR15 –2048 à +2047, IR0 à –2048 à +2047, IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 SLD(074) décale les données entre St et E d'un chiffre (4 bits) vers la gauche. “0” est placé dans le chiffre le plus à droite (bits 3 à 0 de St), et le contenu du chiffre le plus à gauche (bits 15 à 12 de E) est perdu. E S t Perdu Drapeaux Nom Drapeau d'erreur Précautions Etiquette Fonctionnement ER ON si St est supérieur à E. OFF dans tous les autres cas. Si St est supérieur à E, une erreur est générée et le drapeau d'erreur se met sur ON. Remarque Lorsque de grandes quantités de données sont décalées, le temps d'exécution de l'instruction est relativement long. Veillez à ce qu'il n'y ait pas de coupure de courant en cours d'exécution de SLD(074), car l'opération de décalage risque d'être interrompue. Exemples Lorsque CIO 000000 est sur ON, les mots CIO 0100 à CIO 0102 sont décalés d'un chiffre (4 bits) vers la gauche. Un zéro est placé dans les bits 0 à 3 du mot CIO 0100 et le contenu des bits 12 à 15 de CIO 0102 est perdu. St E E : CIO 0102 St+1 : CIO 0101 St : CIO 0100 Perdu 375 Chapitre 3-9 Instructions de décalage de données 3-9-18 ONE DIGIT SHIFT RIGHT : SRD(075) Objet Décale les données d'un chiffre (4 bits) vers la droite. Symbole du schéma contact SRD(075) St St: Mot de départ E E: Mot de fin Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Zones de programmes de bloc OK Zones de programmes de pas OK SRD(075) @SRD(075) Non prise en charge Non prise en charge Sousprogrammes OK Tâches d'interruption OK Remarque St et E doivent être dans la même zone de données. Spécifications de l’opérande Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index 376 St E CIO 0000 à CIO 6143 W000 à W511 H000 à H511 A448 à A959 T0000 à T4095 C0000 à C4095 D00000 à D32767 E00000 à E32767 En_00000 à En_32767 (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) ------,IR0 à ,IR15 –2048 à +2047, IR0 à –2048 à +2047, IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 Chapitre 3-9 Instructions de décalage de données Description SRD(075) décale les données entre St et E d'un chiffre (4 bits) vers la droite. “0” est placé dans le chiffre le plus à gauche (bits 15 à 12 de E), et le contenu du chiffre le plus à droite (bits 3 à 0 de St) est perdu. E S t Perdu Drapeaux Nom Drapeau d'erreur Précautions Etiquette Fonctionnement ER ON si St est supérieur à E. OFF dans tous les autres cas. Si St est supérieur à E, une erreur est générée et le drapeau d'erreur se met sur ON. Lorsque SRD(075) est exécutée, le drapeau d'égalité et le drapeau négatif passent à OFF. Remarque Lorsque de grandes quantités de données sont décalées, le temps d'exécution de l'instruction est relativement long. Veillez à ce qu'il n'y ait pas de coupure de courant en cours d'exécution de SRD(075), car l'opération de décalage risque d'être interrompue. Exemples Lorsque CIO 000000 est sur ON, les mots CIO 0100 à CIO 0102 sont décalés d'un chiffre (4 bits) vers la droite. Un zéro est placé dans les bits 12 à 15 du mot CIO 0102 et le contenu des bits 0 à 3 du mot CIO 0100 est perdu. St E E : CIO 0102 St+1 : CIO 0101 St : CIO 0100 Perdu 3-9-19 SHIFT N-BIT DATA LEFT : NSFL(578) Objet Symbole du schéma contact Décale le nombre de bits spécifié vers la gauche. NSFL(578) D D: Mot de départ pour le décalage C C: Bit de départ N N: Longueur du décalage Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Opérandes Zones de programmes de bloc OK Zones de programmes de pas OK NSFL(578) @NSFL(578) Non prise en charge Non prise en charge Sousprogrammes OK Tâches d'interruption OK C : 0000 à 000F hex (0 à 15) N : 0000 à FFFF hex (0 à 65535) 377 Chapitre 3-9 Instructions de décalage de données Remarque Tous les mots du registre de décalage doivent être dans la même zone. Spécifications de l’opérande Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index Description D C CIO 0000 à CIO 6143 W000 à W511 H000 à H511 A448 à A959 A000 à A959 T0000 à T4095 C0000 à C4095 D00000 à D32767 E00000 à E32767 En_00000 à En_32767 (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) --#0000 à #000F (binaire) ou &0 à &15 --DR0 à DR15 --- #0000 à #FFFF (binaire) ou &0 à &65535 ,IR0 à ,IR15 –2048 à +2047, IR0 à –2048 à +2047, IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 NSFL(578) décale le nombre spécifié de bits de la longueur de décalage (N) à partir du bit de départ (C) dans le mot le plus à droite, tel que désigné par D, d'un bit vers la gauche (vers le mot le plus à gauche et le bit le plus à gauche). “0” est placé dans le bit de départ et le contenu du bit le plus à gauche dans la zone de décalage est décalé vers le drapeau de report (CY). N−1 bit N−1 bit 378 N Décale un bit vers la gauche Chapitre 3-9 Instructions de décalage de données Drapeaux Nom Drapeau d'erreur Etiquette Fonctionnement ER ON lorsque les données C ne sont pas comprises entre 0000 et 000F hex. OFF dans tous les autres cas. CY ON lorsque 1 est décalé vers le drapeau de report (CY). OFF dans tous les autres cas. Drapeau de report Précautions Lorsque la longueur de décalage (N) est 0, le contenu du bit de départ est copié dans le drapeau de report (CY), et son contenu reste inchangé. Seuls les bits décalés dans le mot le plus à droite de la zone de décalage (c.à-d. données de mot les plus à gauche) sont modifiés. Exemples Lorsque CIO 000000 est sur ON, tous les bits en commençant au bit 3 jusqu'à la longueur de décalage (B hex) sont décalés d'un bit vers la gauche (du bit le plus à droite vers le bit le plus à gauche). “0” est placé dans le bit 3 de CIO 0100. Le contenu du bit le plus à gauche dans la zone de décalage (bit 13 de CIO 0100) est copié dans le drapeau de report (CY). D C &3 N &11 C : En commençant au bit 3 N : 11 bits D : CIO 0100 D : CIO 0100 0 3-9-20 SHIFT N-BIT DATA RIGHT : NSFR(579) Objet Symbole du schéma contact Décale le nombre de bits spécifié vers la droite. NSFR(579) D D: Mot de départ pour le décalage C C: Bit de départ N N: Longueur du décalage Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Zones de programmes de bloc OK Zones de programmes de pas OK NSFR(579) @NSFR(579) Non prise en charge Non prise en charge Sousprogrammes OK Tâches d'interruption OK 379 Chapitre 3-9 Instructions de décalage de données Opérandes C : 0000 à 000F hex (0 à 15) N : 0000 à FFFF hex (0 à 65535) Remarque Tous les mots du registre de décalage doivent être dans la même zone. Spécifications de l’opérande Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index Description D C N CIO 0000 à CIO 6143 W000 à W511 H000 à H511 A448 à A959 A000 à A959 T0000 à T4095 C0000 à C4095 D00000 à D32767 E00000 à E32767 En_00000 à En_32767 (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) --#0000 à #000F #0000 à #FFFF (binaire) ou &0 à (binaire) ou &0 à &15 &65535 --DR0 à DR15 --,IR0 à ,IR15 –2048 à +2047, IR0 à –2048 à +2047, IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 NSFR(579) décale le nombre spécifié de bits de la longueur de décalage (N) à partir du bit de départ (C) dans le mot le plus à droite, comme désigné par D, d'un bit vers la droite (vers le mot le plus à droite et le bit le plus à droite). “0” est placé dans le bit de départ et le contenu du bit le plus à droite de la zone de décalage est décalé vers le drapeau de report (CY). Décale un bit vers la droite N-1 bit N-1 bit 380 Chapitre 3-9 Instructions de décalage de données Drapeaux Nom Drapeau d'erreur Etiquette Fonctionnement ER ON lorsque les données C ne sont pas comprises entre 0000 et 000F hex. OFF dans tous les autres cas. CY ON lorsque 1 est décalé vers le drapeau de report (CY). OFF dans tous les autres cas. Drapeau de report Précautions Lorsque la longueur de décalage (N) est 0, le contenu du bit de départ est copié dans le drapeau de report (CY), et son contenu reste inchangé. Seuls les bits décalés dans le mot le plus à droite de la zone de décalage (c.-à-d. données de mot les plus à gauche) sont modifiés. Exemples Lorsque CIO 000000 est sur ON, tous les bits en commençant au bit 2 jusqu'à la fin de la longueur de décalage de 11 bits (B hex) sont décalés d'un bit vers la droite (du bit le plus à gauche vers le bit le plus à droite). “0” est placé dans le bit 12 de CIO 0100. Le contenu du bit le plus à droite dans la zone de décalage (bit 2 de CIO 0100) est copié dans le drapeau de report (CY). &2 &11 N : 11 bits C : En commençant au bit 2 0 3-9-21 SHIFT N-BITS LEFT : NASL(580) Objet Symbole du schéma contact Décale les 16 bits de données de mot spécifiés vers la gauche, du nombre de bits spécifié. NASL(580) D D: Mot à décaler C C: Mot de contrôle Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Zones de programmes de bloc OK Zones de programmes de pas OK NASL(580) @NASL(580) Non prise en charge Non prise en charge Sousprogrammes OK Tâches d'interruption OK 381 Chapitre 3-9 Instructions de décalage de données Opérandes C : Mot de contrôle 15 12 11 C 8 7 0 0 Nbre de bits à décaler : 00 à 10 Hex Toujours 0. Données décalées dans un registre 0 Hex : 0 introduit par décalage 8 Hex : Contenu du bit le plus à droite introduit par décalage Spécifications de l’opérande Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur D CIO 0000 à CIO 6143 W000 à W511 H000 à H511 A448 à A959 T0000 à T4095 Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque C0000 à C4095 D00000 à D32767 E00000 à E32767 En_00000 à En_32767 (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) --Valeurs spécifiées uniquement DR0 à DR15 --,IR0 à ,IR15 –2048 à +2047, IR0 à –2048 à +2047, IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index Description 382 C A000 à A959 NASL(580) décale D (mot à décaler) du nombre spécifié de bits binaires (spécifié dans C) vers la gauche (du bit le plus à droite vers le bit le plus à gauche). Des zéros ou la valeur du bit le plus à droite sont placés dans le nombre spécifié de bits du mot à décaler en commençant par le bit le plus à droite. Chapitre 3-9 Instructions de décalage de données Décalage de n bits Contenu de "a" ou "0" introduit par décalage Perdu N bits Drapeaux Nom Drapeau d'erreur Drapeau d'égalité Drapeau de report Drapeau négatif Précautions Etiquette Fonctionnement ER ON lorsque le mot de contrôle C (nombre de bits à décaler) est hors plage. OFF dans tous les autres cas. = ON lorsque le résultat du décalage est 0. OFF dans tous les autres cas. CY ON lorsque 1 est décalé vers le drapeau de report (CY). OFF dans tous les autres cas. N ON lorsque le bit le plus à gauche est 1 à la suite du décalage. OFF dans tous les autres cas. Pour tout bit décalé en dehors du mot spécifié, le contenu du dernier bit est décalé vers le drapeau de report (CY), et toute autre donnée est perdue. Lorsque le nombre de bits à décaler (spécifié dans C) est “0,” les données ne sont pas décalées. Les drapeaux appropriés passent toutefois à ON ou OFF, en fonction des données dans le mot spécifié. Si le contenu du mot de contrôle C est hors plage, une erreur est générée et le drapeau d'erreur se met sur ON. Si, à la suite du décalage, le contenu de D est 0000 hex, le drapeau d'égalité se met sur ON. Si, à la suite du décalage, le contenu du bit le plus à gauche de D est 1, le drapeau négatif se met sur ON. Exemples Lorsque CIO 000000 est sur ON, le contenu de CIO 0100 est décalé de 10 bits vers la gauche (du bit le plus à droite vers le bit le plus à gauche). Le nombre de bits à décaler est spécifié dans les bits 0 à 7 du mot CIO 0300 (données de contrôle). Le contenu du bit 0 de CIO 0100 est copié dans les bits à partir desquels les données ont été décalées, et le contenu du bit le plus à droite décalé en dehors de la plage est décalé vers le drapeau de report (CY). Toutes les autres données sont perdues. 383 Chapitre 3-9 Instructions de décalage de données 15 C 12 11 8 8 7 0 4 3 0 0 A Nbre de bits à décaler : 10 bits (0A Hex) Toujours 0. Données décalées dans un registre 8 Hex : Contenu du bit le plus à droite introduit par décalage Perdu Bit le plus à droite Nbre de bits à décaler : 10 bits (le contenu du bit le plus à droite est inséré.) 3-9-22 DOUBLE SHIFT N-BITS LEFT : NSLL(582) Objet Symbole du schéma contact Décale les 32 bits de données de mot spécifiés vers la gauche, du nombre de bits spécifié. NSLL(582) D D: Mot à décaler C C: Mot de contrôle Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Opérandes 384 Zones de programmes de bloc OK C : Mot de contrôle Zones de programmes de pas OK NSLL(582) @NSLL(582) Non prise en charge Non prise en charge Sousprogrammes OK Tâches d'interruption OK Chapitre 3-9 Instructions de décalage de données C 15 12 11 8 7 0 0 Nbre de bits à décaler : 00 à 20 Hex Toujours 0. Données décalées dans un registre 0 Hex : 0 introduit par décalage 8 Hex : Contenu du bit le plus à droite introduit par décalage Spécifications de l’opérande Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM D CIO 0000 à CIO 6142 W000 à W510 H000 à H510 A448 à A958 T0000 à T4094 C0000 à C4094 D00000 à D32766 C CIO 0000 à CIO 6143 W000 à W511 H000 à H511 A000 à A959 T0000 à T4095 C0000 à C4095 D00000 à D32767 Zone EM sans banque Zone EM avec banque E00000 à E32766 En_00000 à En_32766 (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) --- E00000 à E32767 En_00000 à En_32767 (n = 0 à C) Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index Description Valeurs spécifiées uniquement DR0 à DR15 ----,IR0 à ,IR15 –2048 à +2047, IR0 à –2048 à +2047, IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 NSLL(582) décale D et D+1 (mots à décaler) du nombre spécifié de bits binaires (spécifié dans C) vers la gauche (du bit le plus à droite vers le bit le plus à gauche). Des zéros ou la valeur du bit le plus à droite sont placés dans le nombre spécifié de bits du mot à décaler en commençant par le bit le plus à droite. Décalage de n bits Contenu de "a" ou "0" introduit par décalage Perdu N bits 385 Chapitre 3-9 Instructions de décalage de données Drapeaux Nom Drapeau d'erreur Drapeau d'égalité Drapeau de report Drapeau négatif Précautions Etiquette Fonctionnement ER ON lorsque le mot de contrôle C (nombre de bits à décaler) est hors plage. OFF dans tous les autres cas. = ON lorsque le résultat du décalage est 0. OFF dans tous les autres cas. CY ON lorsque 1 est décalé vers le drapeau de report (CY). OFF dans tous les autres cas. N ON lorsque le bit le plus à gauche est 1 à la suite du décalage. OFF dans tous les autres cas. Pour tout bit décalé en dehors du mot spécifié, le contenu du dernier bit est décalé vers le drapeau de report (CY), et toute autre donnée est perdue. Lorsque le nombre de bits à décaler (spécifié dans C) est “0,” les données ne sont pas décalées. Les drapeaux appropriés passent toutefois à ON et OFF, en fonction des données dans le mot spécifié. Si le contenu du mot de contrôle C est hors plage, une erreur est générée et le drapeau d'erreur se met sur ON. Si, à la suite du décalage, le contenu de D est 0000, le drapeau d'égalité se met sur ON. Si, à la suite du décalage, le contenu du bit le plus à gauche de D, D+1 est 1, le drapeau négatif se met sur ON. Exemples Lorsque CIO 000000 est sur ON, CIO 0100 et CIO 0101 sont décalés vers la gauche (du bit le plus à droite vers le bit le plus à gauche) de 10 bits. Le nombre de bits à décaler est spécifié dans les bits 0 à 7 du mot CIO 0300 (données de contrôle). Le contenu du bit 0 de CIO 0100 est copié dans les bits à partir desquels les données ont été décalées, et le contenu du bit le plus à droite décalé en dehors de la plage est décalé vers le drapeau de report (CY). Toutes les autres données sont perdues. C 15 12 11 8 8 7 0 4 3 0 0 A Nbre de bits à décaler : 10 bits (0A Hex) Toujours 0. Données décalées dans un registre 8 Hex : Contenu du bit le plus à droite introduit par décalage 386 Chapitre 3-9 Instructions de décalage de données Perdu Bit le plus à droite a 0100 0100 Nbre de bits à décaler : 10 bits (le contenu du bit le plus à droite est inséré.) 3-9-23 SHIFT N-BITS RIGHT : NASR(581) Objet Décale les 16 bits de données de mot spécifiés vers la droite, du nombre de bits spécifié. Symbole du schéma contact NASR(581) D D: Mot à décaler C C: Mot de contrôle Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Opérandes Zones de programmes de bloc OK Zones de programmes de pas OK NASR(581) @NASR(581) Non prise en charge Non prise en charge Sousprogrammes OK Tâches d'interruption OK C : Mot de contrôle 15 C 12 11 8 7 0 0 Nbre de bits à décaler : 00 à 10 Hex Toujours 0. Données décalées dans un registre 0 Hex : 0 introduit par décalage 8 Hex : Contenu du bit le plus à droite introduit par décalage Spécifications de l’opérande Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire D CIO 0000 à CIO 6143 W000 à W511 H000 à H511 A448 à A959 C A000 à A447 A448 à A959 387 Chapitre 3-9 Instructions de décalage de données Zone Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index Description D C T0000 à T4095 C0000 à C4095 D00000 à D32767 E00000 à E32767 En_00000 à En_32767 (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) --Valeurs spécifiées uniquement DR0 à DR15 --,IR0 à ,IR15 –2048 à +2047, IR0 à –2048 à +2047, IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 NASR(581) décale D (mot à décaler) du nombre spécifié de bits binaires (spécifié dans C) vers la droite (du bit le plus à droite vers le bit le plus à gauche). Des zéros ou la valeur du bit le plus à droite sont placés dans le nombre spécifié de bits du mot à décaler en commençant par le bit le plus à droite. Contenu de "a" ou "0" introduit par décalage Perdu N bits Drapeaux Nom Drapeau d'erreur Drapeau d'égalité Drapeau de report Drapeau négatif Précautions Etiquette Fonctionnement ER ON lorsque le mot de contrôle C (nombre de bits à décaler) est hors plage. OFF dans tous les autres cas. = ON lorsque le résultat du décalage est 0. OFF dans tous les autres cas. CY ON lorsque 1 est décalé vers le drapeau de report (CY). OFF dans tous les autres cas. N ON lorsque le bit le plus à gauche est 1 à la suite du décalage. OFF dans tous les autres cas. Pour tout bit décalé en dehors du mot spécifié, le contenu du dernier bit est décalé vers le drapeau de report (CY), et toute autre donnée est éliminée. Lorsque le nombre de bits à décaler (spécifié dans C) est “0,” les données ne sont pas décalées. Les drapeaux appropriés passent toutefois à ON et OFF, en fonction des données dans le mot spécifié. 388 Chapitre 3-9 Instructions de décalage de données Si le contenu du mot de contrôle C est hors plage, une erreur est générée et le drapeau d'erreur se met sur ON. Si, à la suite du décalage, le contenu de D est 0000 hex, le drapeau d'égalité se met sur ON. Si, à la suite du décalage, le contenu du bit le plus à gauche de D est 1, le drapeau négatif se met sur ON. Exemples Lorsque CIO 000000 est sur ON, CIO 0100 est décalé de 10 bits vers la droite (du bit le plus à gauche vers le bit le plus à droite). Le nombre de bits à décaler est spécifié dans les bits 0 à 7 du mot CIO 0300. Le contenu du bit 15 de CIO 0100 est copié dans les bits à partir desquels les données ont été décalées, et le contenu du bit le plus à gauche des données décalées en dehors de la plage est décalé vers le drapeau de report (CY). Toutes les autres données sont perdues. C 15 12 11 8 8 7 0 4 3 0 0 A Nbre de bits à décaler : 10 bits (0A Hex) Toujours 0. Données décalées dans un registre 8 Hex : Contenu du bit le plus à gauche introduit par décalage Bit le plus à gauche Perd Nbre de bits à décaler : 10 bits (le contenu du bit le plus à gauche est inséré.) 3-9-24 DOUBLE SHIFT N-BITS RIGHT : NSRL(583) Objet Symbole du schéma contact Décale les 32 bits de données de mot spécifiés vers la droite, du nombre de bits spécifié. NSRL(583) D D: Mot à décaler C C: Mot de contrôle Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat NSRL(583) @NSRL(583) Non prise en charge Non prise en charge 389 Chapitre 3-9 Instructions de décalage de données Zones de programmes applicables Opérandes Zones de programmes de bloc OK Zones de programmes de pas OK Sousprogrammes OK Tâches d'interruption OK C : Mot de contrôle 15 12 11 C 8 7 0 0 Nbre de bits à décaler : 00 à 20 Hex Toujours 0. Données décalées dans un registre 0 Hex : 0 introduit par décalage 8 Hex : Contenu du bit le plus à droite introduit par décalage Spécifications de l’opérande Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index Description 390 D CIO 0000 à CIO 6142 W000 à W510 H000 à H510 A448 à A958 T0000 à T4094 C0000 à C4094 D00000 à D32766 E00000 à E32766 En_00000 à En_32766 (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) ------- C CIO 0000 à CIO 6143 W000 à W511 H000 à H511 A000 à A959 T0000 à T4095 C0000 à C4095 D00000 à D32767 E00000 à E32767 En_00000 à En_32767 (n = 0 à C) Valeurs spécifiées uniquement DR0 à DR15 ,IR0 à ,IR15 -2048 à +2047, IR0 à -2048 à +2047, IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 NSRL(583) décale D et D+1 (mots à décaler) du nombre spécifié de bits binaires (spécifié dans C) vers la droite (du bit le plus à gauche vers le bit le plus à droite). Des zéros ou la valeur du bit le plus à droite sont placés dans le nombre spécifié de bits du mot à décaler en commençant par le bit le plus à droite. Chapitre 3-9 Instructions de décalage de données Décalage de n bits Contenu de "a" ou "0" introduit par décalage Perdu Drapeaux Nom Drapeau d'erreur Etiquette Fonctionnement ER ON lorsque le mot de contrôle C (nombre de bits à décaler) est hors plage. OFF dans tous les autres cas. = ON lorsque le résultat du décalage est 0. OFF dans tous les autres cas. CY ON lorsque 1 est décalé vers le drapeau de report (CY). OFF dans tous les autres cas. N ON lorsque le bit le plus à gauche est 1 à la suite du décalage. OFF dans tous les autres cas. Drapeau d'égalité Drapeau de report Drapeau négatif Précautions Pour tout bit décalé en dehors du mot spécifié, le contenu du dernier bit est décalé vers le drapeau de report (CY), et toute autre donnée est perdue. Lorsque le nombre de bits à décaler (spécifié dans C) est “0,” les données ne sont pas décalées. Les drapeaux appropriés passent toutefois à ON ou OFF, en fonction des données dans le mot spécifié. Si le contenu du mot de contrôle C est hors plage, une erreur est générée et le drapeau d'erreur se met sur ON. Si, à la suite du décalage, le contenu de D +1 est 00000000 hex, le drapeau d'égalité se met sur ON. Si, à la suite du décalage, le contenu du bit le plus à gauche de D +1 est 1, le drapeau négatif se met sur ON. Exemples Lorsque CIO 000000 est sur ON, CIO 0100 et CIO 0101 sont décalés de 10 bits vers la droite (du bit le plus à gauche vers le bit le plus à droite). Le nombre de bits à décaler est spécifié dans les bits 0 à 7 du mot CIO 0300 (données de contrôle). Le contenu du bit 15 de CIO est copié dans les bits à partir desquels les données ont été décalées, et le contenu du bit le plus à gauche décalé en dehors de la plage est décalé vers le drapeau de report (CY). Toutes les autres données sont perdues. 15 C 12 11 8 8 7 0 4 3 0 0 A Nbre de bits à décaler : 10 bits (0A Hex) Toujours 0. Données décalées dans un registre 8 Hex : Contenu du bit le plus à gauche introduit par décalage 391 Chapitre 3-9 Instructions de décalage de données Bit le plus à gauche Perdu CY Nbre de bits à décaler : 10 bits (le contenu du bit le plus à gauche est inséré.) 392 1 Chapitre 3-10 Instructions d'incrémentation/décrémentation 3-10 Instructions d'incrémentation/décrémentation 3-10-1 INCREMENT BINARY : ++(590) Objet Symbole du schéma contact Incrémente de 1 le contenu (4 chiffres hexadécimaux) du mot spécifié. ++(590) Wd Wd: Mot Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Spécifications de l’opérande Zones de programmes de bloc OK Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index Description Zones de programmes de pas OK ++(590) @++(590) Non prise en charge Non prise en charge SousTâches programmes d'interruption OK OK Wd CIO 0000 à CIO 6143 W000 à W511 H000 à H511 A448 à A959 T0000 à T4095 C0000 à C4095 D00000 à D32767 E00000 à E32767 En_00000 à En_32767 (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) --DR0 à DR15 --,IR0 à ,IR15 –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 L'instruction ++(590) ajoute 1 au contenu binaire de Wd. Le mot spécifié peut être incrémenté de 1 à chaque cycle aussi longtemps que la condition d'exécution de ++(590) est ON. Si la variation de différentiation sur front montant de cette instruction (@++(590)) est utilisée, le mot spécifié n'est incrémenté que lorsque la condition d'exécution passe de OFF à ON. 393 Chapitre 3-10 Instructions d'incrémentation/décrémentation Wd Wd Le drapeau d'égalité est mis sur ON si le résultat est 0000, le drapeau de report est mis sur ON lorsqu'un chiffre passe de F à 0, et le drapeau négatif est mis sur ON lorsque le bit 15 de Wd est ON dans le résultat. Le drapeau d'égalité et le drapeau de report sont mis sur ON lorsque le contenu de Wd passe de FFFF à 0000. Drapeaux Nom Drapeau d'erreur Drapeau d'égalité Exemples Etiquette ER = Drapeau de report CY Drapeau négatif N Fonctionnement OFF ON si le contenu de Wd est 0000 après l'exécution. OFF dans tous les autres cas. ON si un chiffre dans Wd est passé de F à 0 pendant l'exécution. OFF dans tous les autres cas. ON si le bit 15 de Wd est ON après l'exécution. OFF dans tous les autres cas. Fonctionnement de ++(590) Dans l'exemple suivant, le contenu de D00100 est incrémenté de 1 à chaque cycle aussi longtemps que CIO 000000 est sur ON. Incrémenté à chaque cycle si CIO 000000 est ON. Wd : D00100 Wd : D00100 0 0 1 9 0 0 1 A : Exécution de ++(590) Incrémentation Incrémentation Incrémentation Incrémentation Fonctionnement de @++(590) La variation de différentiation sur front montant est utilisée dans l'exemple suivant, de sorte que le contenu de D00100 est incrémenté de 1 uniquement lorsque CIO 000000 passe de OFF à ON. Incrémentation uniquement pour la différentiation sur front montant. @++ Wd : D00100 0 0 1 9 Wd : D00100 0 0 1 A : Exécution de @++(590) Incrémentation 394 Incrémentation Chapitre 3-10 Instructions d'incrémentation/décrémentation 3-10-2 DOUBLE INCREMENT BINARY : ++L(591) Objet Symbole du schéma contact Incrémente de 1 le contenu (8 chiffres hexadécimaux) des mots spécifiés. ++L(591) Wd Wd: Premier mot Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Spécifications de l’opérande Zones de programmes de bloc OK Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index Description Zones de programmes de pas OK ++L(591) @++L(591) Non prise en charge Non prise en charge SousTâches programmes d'interruption OK OK Wd CIO 0000 à CIO 6142 W000 à W510 H000 à H510 A448 à A958 T0000 à T4094 C0000 à C4094 D00000 à D32766 E00000 à E32766 En_00000 à En_32766 (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) ----IR0 à IR15 ,IR0 à ,IR15 –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 L'instruction ++L(591) ajoute 1 au contenu hexadécimal à 8 chiffres de Wd+1 et Wd. Le contenu des mots spécifiés est incrémenté de 1 à chaque cycle aussi longtemps que la condition d'exécution de ++L(591) est sur ON. Si la variation de différentiation sur front montant de cette instruction (@++L(591)) est utilisée, le contenu des mots spécifiés n'est incrémenté que lorsque la condition d'exécution passe de OFF à ON. 395 Chapitre 3-10 Instructions d'incrémentation/décrémentation Wd+1 Wd Wd+1 Wd Le drapeau d'égalité est mis sur ON si le résultat est 0000 0000, le drapeau de report est mis sur ON lorsqu'un chiffre passe de F à 0, et le drapeau négatif est mis sur ON lorsque le bit 15 de Wd+1 est ON dans le résultat. Le drapeau d'égalité et le drapeau de report sont mis sur ON lorsque le contenu passe de FFFF à 0000 0000. Drapeaux Nom Drapeau d'erreur Drapeau d'égalité Etiquette ER OFF Drapeau de report CY = Drapeau négatif N Exemples Fonctionnement ON si le résultat est 0000 0000 après l'exécution. OFF dans tous les autres cas. ON si un chiffre dans Wd+1 est passé de F à 0 pendant l'exécution. OFF dans tous les autres cas. ON si le bit 15 de Wd+1 est ON après l'exécution. OFF dans tous les autres cas. Fonctionnement de ++L(591) Dans l'exemple suivant, le contenu hexadécimal à 8 chiffres de D00101 et D00100 est incrémenté de 1 à chaque cycle aussi longtemps que CIO 000000 est ON. Incrémenté à chaque cycle si CIO 000000 est ON. Wd+1 : D00101 Wd : D00100 Wd+1 : D00101 Wd : D00100 : Exécution de ++L(591) Incrémentation Incrémentation Incrémentation Incrémentation Fonctionnement de @++L(591) La variation de différentiation sur front montant est utilisée dans l'exemple suivant, de sorte que le contenu de D00101 et D00100 est incrémenté de 1 uniquement lorsque CIO 000000 passe de OFF à ON. @++L Incrémentation uniquement pour la différentiation sur front montant. Wd+1 : D00101 Wd : D00100 Wd+1 : D00101 Wd : D00100 : Exécution de @++L(591) Incrémentation 396 Incrémentation Chapitre 3-10 Instructions d'incrémentation/décrémentation 3-10-3 DECREMENT BINARY : – –(592) Objet Décrémente de 1 le contenu (4 chiffres hexadécimaux) du mot spécifié. Symbole du schéma contact − −(592) Wd Wd: Mot Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Spécifications de l’opérande Zones de programmes de bloc OK Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index Description Zones de programmes de pas OK – – (592) @– – (592) Non prise en charge Non prise en charge SousTâches programmes d'interruption OK OK Wd CIO 0000 à CIO 6143 W000 à W511 H000 à H511 A448 à A959 T0000 à T4095 C0000 à C4095 D00000 à D32767 E00000 à E32767 En_00000 à En_32767 (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 --DR0 à DR15 --,IR0 à ,IR15 –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 L'instruction – –(592) soustrait 1 au contenu binaire de Wd. Le mot spécifié peut être décrémenté de 1 à chaque cycle aussi longtemps que la condition d'exécution de – –(592) est ON. Si la variation de différentiation sur front montant de cette instruction (@– –(592)) est utilisée, le mot spécifié n'est décrémenté que lorsque la condition d'exécution passe de OFF à ON. Wd Wd 397 Chapitre 3-10 Instructions d'incrémentation/décrémentation Le drapeau d'égalité est mis sur ON si le résultat est 0000, le drapeau de report est mis sur ON lorsqu'un chiffre passe de 0 à F, et le drapeau négatif est mis sur ON lorsque le bit 15 de Wd est ON dans le résultat. Le drapeau de report et le drapeau négatif sont mis sur ON lorsque le contenu de Wd passe de 0000 à FFFF. Drapeaux Nom Drapeau d'erreur Etiquette ER OFF Drapeau d'égalité = Drapeau de report CY Drapeau négatif N Exemples Fonctionnement ON si le contenu de Wd est 0000 après l'exécution. OFF dans tous les autres cas. ON si un chiffre dans Wd est passé de 0 à F pendant l'exécution. OFF dans tous les autres cas. ON si le bit 15 de Wd est sur ON après l'exécution. OFF dans tous les autres cas. Fonctionnement de – –(592) Dans l'exemple suivant, le contenu de D00100 est décrémenté de 1 à chaque cycle aussi longtemps que CIO 000000 est sur ON. Décrémenté à chaque cycle si CIO 000000 est ON. Wd : D00100 Wd : D00100 −1 : Exécution de − −(592) Décrémentation Décrémentation Décrémentation Décrémentation Fonctionnement de @– –(592) La variation de différentiation sur front montant est utilisée dans l'exemple suivant, de sorte que le contenu de D00100 est décrémenté de 1 uniquement lorsque CIO 000000 passe de OFF à ON. @− − Décrémentation uniquement pour la différentiation sur front montant. Wd : D00100 −1 Wd : D00100 : Exécution de @− −(592) Décrémentation 398 Décrémentation Chapitre 3-10 Instructions d'incrémentation/décrémentation 3-10-4 DOUBLE DECREMENT BINARY : – –L(593) Objet Décrémente de 1 le contenu (8 chiffres hexadécimaux) des mots spécifiés. Symbole du schéma contact − −L(593) Wd Wd: Premier mot Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Spécifications de l’opérande Zones de programmes de bloc OK Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index Description Zones de programmes de pas OK – –L(593) @– –L(593) Non prise en charge Non prise en charge SousTâches programmes d'interruption OK OK Wd CIO 0000 à CIO 6142 W000 à W510 H000 à H510 A448 à A958 T0000 à T4094 C0000 à C4094 D00000 à D32766 E00000 à E32766 En_00000 à En_32766 (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) ----IR0 à IR15 ,IR0 à ,IR15 –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 L'instruction – –L(593) soustrait 1 au contenu hexadécimal à 8 chiffres de Wd+1 et Wd. Le contenu des mots spécifiés est decrémenté de 1 à chaque cycle aussi longtemps que la condition d'exécution de – –L(593) est ON. Si la variation de différentiation sur front montant de cette instruction (@– –L(593)) est utilisée, le contenu des mots spécifiés n'est décrémenté que lorsque la condition d'exécution passe de OFF à ON. 399 Chapitre 3-10 Instructions d'incrémentation/décrémentation Wd+1 Wd Wd+1 Wd Le drapeau d'égalité est mis sur ON si le résultat est 0000 0000, le drapeau de report est mis sur ON lorsqu'un chiffre passe de 0 à F, et le drapeau négatif est mis sur ON lorsque le bit 15 de Wd+1 est ON dans le résultat. Le drapeau de report et le drapeau négatif sont mis sur ON lorsque le contenu passe de 0000 0000 à FFFF FFFF. Drapeaux Nom Drapeau d'erreur Drapeau d'égalité Etiquette ER OFF Drapeau de report CY = Drapeau négatif N Exemples Fonctionnement ON si le résultat est 0000 0000 après l'exécution. OFF dans tous les autres cas. ON si un chiffre dans Wd+1 ou Wd est passé de 0 à F pendant l'exécution. OFF dans tous les autres cas. ON si le bit 15 de Wd+1 est sur ON après l'exécution. OFF dans tous les autres cas. Fonctionnement de – –L(593) Dans l'exemple suivant, le contenu hexadécimal à 8 chiffres de D00101 et D00100 est décrémenté de 1 à chaque cycle aussi longtemps que CIO 000000 est sur ON. Décrémenté à chaque cycle si CIO 000000 est ON. Wd+1 : D00101 Wd : D00100 Wd+1 : D00101 Wd : D00100 −1 : Exécution de − −L(593) Décrémentation Décrémentation Décrémentation Décrémentation Fonctionnement de @– –L(593) La variation de différentiation sur front montant est utilisée dans l'exemple suivant, de sorte que le contenu de D00101 et D00100 est décrémenté de 1 uniquement lorsque CIO 000000 passe de OFF à ON. Décrémentation uniquement pour la différentiation sur front montant. @ − −L Wd+1 : D00101 Wd : D00100 Wd+1 : D00101 Wd : D00100 −1 : Exécution de @− −L(593) Décrémentation 400 Décrémentation Chapitre 3-10 Instructions d'incrémentation/décrémentation 3-10-5 INCREMENT BCD : ++B(594) Objet Symbole du schéma contact Incrémente de 1 le contenu BCD à 4 chiffres du mot spécifié. ++B(594) Wd Wd: Mot Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Spécifications de l’opérande Zones de programmes de bloc OK Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en BCD Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index Description Zones de programmes de pas OK ++B(594) @++B(594) Non prise en charge Non prise en charge SousTâches programmes d'interruption OK OK Wd CIO 0000 à CIO 6143 W000 à W511 H000 à H511 A448 à A959 T0000 à T4095 C0000 à C4095 D00000 à D32767 E00000 à E32767 En_00000 à En_32767 (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) --DR0 à DR15 --,IR0 à ,IR15 –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 L'instruction ++B(594) ajoute 1 au contenu BCD de Wd. Le mot spécifié est incrémenté de 1 à chaque cycle aussi longtemps que la condition d'exécution de ++B(594) est sur ON. Si la variation de différentiation sur front montant de cette instruction (@++B(594)) est utilisée, le mot spécifié n'est incrémenté que lorsque la condition d'exécution passe de OFF à ON. 401 Chapitre 3-10 Instructions d'incrémentation/décrémentation Wd Wd Le drapeau d'égalité se met sur ON si le résultat est 0000 et le drapeau de report se met sur ON lorsqu'un chiffre passe de 9 à 0. Le drapeau d'égalité et le drapeau de report sont mis sur ON lorsque le contenu de Wd passe de 9999 à 0000. Drapeaux Nom Drapeau d'erreur Drapeau d'égalité Drapeau de report Etiquette Fonctionnement ER ON si le contenu de Wd n'est pas de type BCD. OFF dans tous les autres cas. = ON si le contenu de Wd est 0000 après l'exécution. OFF dans tous les autres cas. CY ON si un chiffre dans Wd est passé de 9 à 0 pendant l'exécution. OFF dans tous les autres cas. Précautions Le contenu de Wd doit être de type BCD. S'il n'est pas de type BCD, une erreur se produit et le drapeau d'erreur se met sur ON. Exemples Fonctionnement de ++B(594) Dans l'exemple suivant, le contenu BCD de D00100 est incrémenté de 1 à chaque cycle aussi longtemps que CIO 000000 est sur ON. Incrémenté à chaque cycle si CIO 000000 est ON. Wd : D00100 Wd : D00100 : Exécution de ++B(594) Incrémentation Incrémentation Incrémentation Incrémentation Fonctionnement de @++B(594) La variation de différentiation sur front montant est utilisée dans l'exemple suivant, de sorte que le contenu de D00100 est incrémenté de 1 uniquement lorsque CIO 000000 passe de OFF à ON. @++B Incrémentation uniquement pour la différentiation sur front montant. Wd : D00100 Wd : D00100 : Exécution de @++B(594) Incrémentation 402 Incrémentation Chapitre 3-10 Instructions d'incrémentation/décrémentation 3-10-6 DOUBLE INCREMENT BCD : ++BL(595) Objet Symbole du schéma contact Incrémente de 1 le contenu BCD à 8 chiffres des mots spécifiés. ++BL(595) Wd Wd: Premier mot Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Spécifications de l’opérande Zones de programmes de bloc OK Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en BCD Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index Description Zones de programmes de pas OK ++BL(595) @++BL(595) Non prise en charge Non prise en charge SousTâches programmes d'interruption OK OK Wd CIO 0000 à CIO 6142 W000 à W510 H000 à H510 A448 à A958 T0000 à T4094 C0000 à C4094 D00000 à D32766 E00000 à E32766 En_00000 à En_32766 (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) ------,IR0 à ,IR15 –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 L'instruction ++BL(595) ajoute 1 au contenu BCD à 8 chiffres de Wd+1 et Wd. Le contenu des mots spécifiés est incrémenté de 1 à chaque cycle aussi longtemps que la condition d'exécution de ++BL(595) est ON. Si la variation de différentiation sur front montant de cette instruction (@++BL(595)) est utilisée, le contenu des mots spécifiés n'est incrémenté que lorsque la condition d'exécution passe de OFF à ON. 403 Chapitre 3-10 Instructions d'incrémentation/décrémentation Wd+1 Wd Wd+1 Wd Le drapeau d'égalité se met sur ON si le résultat est 0000 0000 et le drapeau de report se met sur ON lorsqu'un chiffre passe de 9 à 0. Le drapeau d'égalité et le drapeau de report sont mis sur ON lorsque le contenu passe de 9999 9999 à 0000 0000. Drapeaux Nom Drapeau d'erreur Drapeau d'égalité Drapeau de report Etiquette Fonctionnement ER ON si le contenu de Wd+1 et Wd n'est pas de type BCD. OFF dans tous les autres cas. = ON si le résultat est 0000 0000 après l'exécution. OFF dans tous les autres cas. CY ON si un chiffre dans Wd+1 ou Wd est passé de 9 à 0 pendant l'exécution. OFF dans tous les autres cas. Précautions Le contenu de Wd+1 et Wd doit être de type BCD. S'il n'est pas de type BCD, une erreur se produit et le drapeau d'erreur se met sur ON. Exemples Fonctionnement de ++BL(595) Dans l'exemple suivant, le contenu BCD à 8 chiffres de D00101 et D00100 est incrémenté de 1 à chaque cycle aussi longtemps que CIO 000000 est ON. Incrémenté à chaque cycle si CIO 000000 est ON. Wd+1 : D00101 Wd :D00100 Wd+1 :D00101 Wd :D00100 : Exécution de ++BL(595) Incrémentation Incrémentation Incrémentation Incrémentation Fonctionnement de @++BL(595) La variation de différentiation sur front montant est utilisée dans l'exemple suivant, de sorte que le contenu BCD de D00101 et D00100 est incrémenté de 1 uniquement lorsque CIO 000000 passe de OFF à ON. @++BL Incrémentation uniquement pour la différentiation sur front montant. Wd+1 : D00101 Wd :D00100 Wd+1 :D00101 Wd :D00100 : Exécution de @++BL(595) Incrémentation 404 Incrémentation Chapitre 3-10 Instructions d'incrémentation/décrémentation 3-10-7 DECREMENT BCD : – –B(596) Objet Décrémente de 1 le contenu BCD à 4 chiffres du mot spécifié. Symbole du schéma contact − −B(596) Wd Wd: Mot Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Spécifications de l’opérande Zones de programmes de bloc OK Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en BCD Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index Description Zones de programmes de pas OK – –B(596) @– –B(596) Non prise en charge Non prise en charge SousTâches programmes d'interruption OK OK Wd CIO 0000 à CIO 6143 W000 à W511 H000 à H511 A448 à A959 T0000 à T4095 C0000 à C4095 D00000 à D32767 E00000 à E32767 En_00000 à En_32767 (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) --DR0 à DR15 --,IR0 à ,IR15 –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 L'instruction – –B(596) soustrait 1 au contenu BCD de Wd. Le mot spécifié est décrémenté de 1 à chaque cycle aussi longtemps que la condition d'exécution de – –B(596) est ON. Si la variation de différentiation sur front montant de cette instruction (@– –B(596)) est utilisée, le mot spécifié n'est décrémenté que lorsque la condition d'exécution passe de OFF à ON. 405 Chapitre 3-10 Instructions d'incrémentation/décrémentation −1 Wd Wd Le drapeau d'égalité se met sur ON si le résultat est 0000 et le drapeau de report se met sur ON lorsqu'un chiffre passe de 0 à 9. Drapeaux Nom Drapeau d'erreur Drapeau d'égalité Drapeau de report Précautions Exemples Etiquette Fonctionnement ER ON si le contenu de Wd n'est pas de type BCD. OFF dans tous les autres cas. = ON si le contenu de Wd est 0000 après l'exécution. OFF dans tous les autres cas. CY ON si un chiffre dans Wd est passé de 0 à 9 pendant l'exécution. OFF dans tous les autres cas. Le contenu de Wd doit être de type BCD. S'il n'est pas de type BCD, une erreur se produit et le drapeau d'erreur se met sur ON. Fonctionnement de – –B(596) Dans l'exemple suivant, le contenu BCD de D00100 est déncrémenté de 1 à chaque cycle aussi longtemps que CIO 000000 est ON. Décrémenté à chaque cycle si CIO 000000 est ON. Wd : D00100 Wd : D00100 −1 : Exécution de − − B(596) Décrémentation Décrémentation Décrémentation Décrémentation Fonctionnement de @– –B(596) La variation de différentiation sur front montant est utilisée dans l'exemple suivant, de sorte que le contenu BCD de D00100 est décrémenté de 1 uniquement lorsque CIO 000000 passe de OFF à ON. @− −B Décrémentation uniquement pour la différentiation sur front montant. Wd : D00100 Wd : D00100 −1 : Exécution de @− −B(596) Décrémentation 406 Décrémentation Chapitre 3-10 Instructions d'incrémentation/décrémentation 3-10-8 DOUBLE DECREMENT BCD : – –BL(597) Objet Symbole du schéma contact Décrémente de 1 le contenu BCD à 8 chiffres des mots spécifiés. − −BL(597) Wd Wd: Premier mot Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Spécifications de l’opérande Zones de programmes de bloc OK Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en BCD Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index Description Zones de programmes de pas OK – –BL(597) @– –BL(597) Non prise en charge Non prise en charge SousTâches programmes d'interruption OK OK Wd CIO 0000 à CIO 6142 W000 à W510 H000 à H510 A448 à A958 T0000 à T4094 C0000 à C4094 D00000 à D32766 E00000 à E32766 En_00000 à En_32766 (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) ------,IR0 à ,IR15 –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 L'instruction – –BL(597) soustrait 1 au contenu BCD à 8 chiffres de Wd+1 et Wd. Le contenu des mots spécifiés est decrémenté de 1 à chaque cycle aussi longtemps que la condition d'exécution de – –BL(597) est ON. Si la variation de différentiation sur front montant de cette instruction (@– –BL(597)) est utilisée, le contenu des mots spécifiés n'est décrémenté que lorsque la condition d'exécution passe de OFF à ON. 407 Chapitre 3-10 Instructions d'incrémentation/décrémentation Wd+1 Wd Wd+1 Wd Le drapeau d'égalité se met sur ON si le résultat est 0000 0000 et le drapeau de report se met sur ON lorsqu'un chiffre passe de 0 à 9. Drapeaux Nom Etiquette Drapeau d'erreur ER Drapeau d'égalité = Drapeau de report CY Fonctionnement ON si le contenu de Wd+1 et Wd n'est pas de type BCD. OFF dans tous les autres cas. ON si le résultat est 0000 0000 après l'exécution. OFF dans tous les autres cas. ON si un chiffre dans Wd+1 ou Wd est passé de 0 à 9 pendant l'exécution. OFF dans tous les autres cas. Précautions Le contenu de Wd+1 et Wd doit être de type BCD. S'il n'est pas de type BCD, une erreur se produit et le drapeau d'erreur se met sur ON. Exemples Fonctionnement de – –BL(597) Dans l'exemple suivant, le contenu BCD à 8 chiffres de D00101 et D00100 est décrémenté de 1 à chaque cycle aussi longtemps que CIO 000000 est ON. Décrémenté à chaque cycle si CIO 000000 est ON. Wd+1 : D00101 Wd : D00100 −1 Wd+1 : D00101 Wd : D00100 : Exécution de − −BL(597) Décrémentation Décrémentation Décrémentation Décrémentation Fonctionnement de @– –BL(597) La variation de différentiation sur front montant est utilisée dans l'exemple suivant, de sorte que le contenu BCD de D00101 et D00100 est décrémenté de 1 uniquement lorsque CIO 000000 passe de OFF à ON. Décrémentation uniquement pour la différentiation sur front montant. @− −BL Wd+1 : D00101 Wd : D00100 Wd+1 : D00101 Wd : D00100 −1 : Exécution de @− −BL(597) Décrémentation 408 Décrémentation Chapitre 3-11 Instructions mathématiques à symboles 3-11 Instructions mathématiques à symboles Cette section décrit les instructions mathématiques à symboles qui effectuent des opérations arithmétiques sur des données BCD ou binaires. Instruction SIGNED BINARY ADD WITHOUT CARRY DOUBLE SIGNED BINARY ADD WITHOUT CARRY SIGNED BINARY ADD WITH CARRY DOUBLE SIGNED BINARY ADD WITH CARRY BCD ADD WITHOUT CARRY DOUBLE BCD ADD WITHOUT CARRY BCD ADD WITH CARRY DOUBLE BCD ADD WITH CARRY SIGNED BINARY SUBTRACT WITHOUT CARRY DOUBLE SIGNED BINARY SUBTRACT WITHOUT CARRY SIGNED BINARY SUBTRACT WITH CARRY DOUBLE SIGNED BINARY SUBTRACT WITH CARRY BCD SUBTRACT WITHOUT CARRY DOUBLE BCD SUBTRACT WITHOUT CARRY BCD SUBTRACT WITH CARRY DOUBLE BCD SUBTRACT WITH CARRY SIGNED BINARY MULTIPLY DOUBLE SIGNED BINARY MULTIPLY UNSIGNED BINARY MULTIPLY DOUBLE UNSIGNED BINARY MULTIPLY BCD MULTIPLY DOUBLE BCD MULTIPLY SIGNED BINARY DIVIDE DOUBLE SIGNED BINARY DIVIDE UNSIGNED BINARY DIVIDE DOUBLE UNSIGNED BINARY DIVIDE BCD DIVIDE DOUBLE BCD DIVIDE + Mnémonique Code fonction 400 Page 410 +L 401 412 +C 402 414 +CL 403 416 +B +BL 404 405 418 419 +BC +BCL 406 407 421 423 – 410 424 –L 411 426 –C 412 430 –CL 413 432 –B 414 435 –BL 415 436 –BC 416 440 –BCL 417 441 * *L 420 421 443 445 *U 422 447 *UL 423 449 *B *BL / /L 424 425 430 431 450 452 454 456 /U /UL 432 433 458 460 /B /BL 434 435 462 464 409 Chapitre 3-11 Instructions mathématiques à symboles 3-11-1 SIGNED BINARY ADD WITHOUT CARRY : +(400) Objet Additionne des données hexadécimales à 4 chiffres (mot unique) et/ou des constantes. Symbole du schéma contact +(400) Au Au: Mot cumulande Ad Ad: Mot cumulateur R R: Mot de résultat Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Spécifications de l’opérande Zones de programmes de bloc OK Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index 410 Zones de programmes de pas OK +(400) @+(400) Non prise en charge. Non prise en charge. SousTâches programmes d'interruption OK OK Au Ad R CIO 0000 à CIO 6143 W000 à W511 H000 à H511 A000 à A959 A448 à A959 T0000 à T4095 C0000 à C4095 D00000 à D32767 E00000 à E32767 En_00000 à En_32767 (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) #0000 à #FFFF --(binaire) DR0 à DR15 --,IR0 à ,IR15 –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 Chapitre 3-11 Instructions mathématiques à symboles Description +(400) additionne les valeurs binaires de Au et Ad, et place le résultat dans R. CY passera à ON s'il existe un report. Au (binaire signé) + Ad (binaire signé) CY R (binaire signé) Drapeaux Nom Drapeau d'erreur Etiquette ER OFF Drapeau d'égalité = Drapeau de report CY Drapeau de OF dépassement Précautions Drapeau de dépassement négatif UF Drapeau négatif N Fonctionnement ON lorsque le résultat est 0. OFF dans tous les autres cas. ON lorsque le résultat de l'addition entraîne un report. OFF dans tous les autres cas. ON lorsque le résultat de l'addition de deux nombres positifs est compris entre 8000 et FFFF hex. OFF dans tous les autres cas. ON lorsque le résultat de l'addition de deux nombres positifs est compris entre 0000 et 7FFF hex. OFF dans tous les autres cas. ON lorsque le bit le plus à gauche du résultat est 1. OFF dans tous les autres cas. Lorsque +(400) est exécutée, le drapeau d'erreur se met sur OFF. Si, à la suite de l'addition, le contenu de R est 0000 hex, le drapeau d'égalité se met sur ON. Si l'addition entraîne un report, le drapeau de report se met sur ON. Si le résultat de l'addition de deux nombres positifs est négatif (compris entre 8000 et FFFF hex), le drapeau de dépassement se met sur ON. Si le résultat de l'addition de deux nombres négatifs est positif (compris entre 0000 et 7FFF hex), le drapeau de dépassement négatif se met sur ON. Si, à la suite de l'addition, le contenu du bit le plus à gauche de R est 1, le drapeau négatif se met sur ON. Exemples Si CIO 000000 est ON dans l'exemple suivant, D00100 et D00110 seront additionnés comme valeurs binaires signées à 4 chiffres et le résultat est placé dans D00120. 411 Chapitre 3-11 Instructions mathématiques à symboles 3-11-2 DOUBLE SIGNED BINARY ADD WITHOUT CARRY : +L(401) Objet Symbole du schéma contact Additionne 8 chiffres (mot double) de données hexadécimales et/ou des constantes. +L(401) Au Au: 1er mot cumulande Ad Ad: 1er mot cumulateur R R: 1er mot de résultat Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Spécifications de l’opérande Zones de programmes de bloc OK Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index 412 Zones de programmes de pas OK +L(401) @+L(401) Non prise en charge. Non prise en charge. Sousprogrammes OK Tâches d'interruption OK Au Ad R CIO 0000 à CIO 6142 W000 à W510 H000 à H510 A000 à A958 A448 à A958 T0000 à T4094 C0000 à C4094 D00000 à D32766 E00000 à E32766 En_00000 à En_32766 (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) #00000000 à #FFFFFFFF --(binaire) --IR0 à IR15 ,IR0 à ,IR15 –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 Chapitre 3-11 Instructions mathématiques à symboles Description +L(401) additionne les valeurs binaires dans Au et Au+1 et Ad et Ad+1, et place le résultat dans R. CY passera à ON s'il existe un report. Au+1 Au (binaire signé) + Ad+1 Ad (binaire signé) CY R+1 R (binaire signé) Drapeaux Nom Drapeau d'erreur Etiquette ER OFF Drapeau d'égalité = Drapeau de report CY Drapeau de OF dépassement Précautions Drapeau de dépassement négatif UF Drapeau négatif N Fonctionnement ON lorsque le résultat est 0. OFF dans tous les autres cas. ON lorsque le résultat de l'addition entraîne un report. OFF dans tous les autres cas. ON lorsque le résultat de l'addition de deux nombres positifs est compris entre 80000000 et FFFFFFFF hex. OFF dans tous les autres cas. ON lorsque le résultat de l'addition de deux nombres négatifs est compris entre 00000000 et 7FFFFFFF hex. OFF dans tous les autres cas. ON lorsque le bit le plus à gauche du résultat est 1. OFF dans tous les autres cas. Lorsque L+(401) est exécutée, le drapeau d'erreur se met sur OFF. Si, à la suite de l'addition, le contenu de R, R+1 est 00000000 hex, le drapeau d'égalité se met sur ON. Si l'addition entraîne un report, le drapeau de report se met sur ON. Si le résultat de l'addition de deux nombres positifs est négatif (compris entre 80000000 et FFFFFFFF hex), le drapeau de dépassement se met sur ON. Si le résultat de l'addition de deux nombres négatifs est positif (compris entre 00000000 et 7FFFFFFF hex), le drapeau de dépassement négatif se met sur ON. Si, à la suite de l'addition, le contenu du bit le plus à gauche de R+1 est 1, le drapeau négatif se met sur ON. Exemples Si CIO 000000 est ON, D00100 et D00110 et D00111 et D00110 seront additionnés comme valeurs binaires signées à 8 chiffres et le résultat est placé dans D00120 et D00120. 413 Chapitre 3-11 Instructions mathématiques à symboles 3-11-3 SIGNED BINARY ADD WITH CARRY : +C(402) Objet Symbole du schéma contact Additionne 4 chiffres (mot unique) de données hexadécimales et/ou des constantes avec le drapeau de report (CY). +C(402) Au Au: Mot cumulande Ad Ad: Mot cumulateur R R: Mot de résultat Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Spécifications de l’opérande Zones de proZones de programmes de bloc grammes de pas OK OK Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index 414 Sous-programmes OK +C(402) @+C(402) Non prise en charge. Non prise en charge. Tâches d'interruption OK Au Ad R CIO 0000 à CIO 6143 W000 à W511 H000 à H511 A000 à A959 A448 à A959 T0000 à T4095 C0000 à C4095 D00000 à D32767 E00000 à E32767 En_00000 à En_32767 (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) #0000 à #FFFF --(binaire) DR0 à DR15 --,IR0 à ,IR15 –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 Chapitre 3-11 Instructions mathématiques à symboles Description +C(402) additionne les valeurs binaires dans Au, Ad et CY, et place le résultat dans R. Au (binaire signé) Ad (binaire signé) CY + CY passera à ON s'il existe un report. CY R (binaire signé) Drapeaux Nom Drapeau d'erreur Drapeau d'égalité Etiquette ER OFF Drapeau de report CY = Drapeau de OF dépassement UF Drapeau de dépassement négatif Drapeau négatif Précautions N Fonctionnement ON lorsque le résultat de l'addition est 0. OFF dans tous les autres cas. ON lorsque le résultat de l'addition entraîne un report. OFF dans tous les autres cas. ON lorsque le résultat de l'addition de deux nombres positifs et CY est compris entre 8000 et FFFF hex. OFF dans tous les autres cas. ON lorsque le résultat de l'addition de deux nombres négatifs et CY est compris entre 0000 et 7FFF hex. OFF dans tous les autres cas. ON lorsque le bit le plus à gauche du résultat est 1. OFF dans tous les autres cas. Lorsque C+(402) est exécutée, le drapeau d'erreur se met sur OFF. Si, à la suite de l'addition, le contenu de R est 0000 hex, le drapeau d'égalité se met sur ON. Si l'addition entraîne un report, le drapeau de report se met sur ON. Si le résultat de l'addition de deux nombres positifs et CY est négatif (compris entre 8000 et FFFF hex), le drapeau de dépassement se met sur ON. Si le résultat de l'addition de deux nombres négatifs et CY est positif (compris entre 0000 et 7FFF hex), le drapeau de dépassement négatif se met sur ON. Si, à la suite de l'addition, le contenu du bit le plus à gauche de R est 1, le drapeau négatif se met sur ON. Remarque Exemples Pour effacer le drapeau de report (CY), exécutez l'instruction CLEAR CARRY (CLC(041)). Si CIO 000000 est ON, D00100, D00110 et CY seront additionnés comme valeurs binaires signées à 4 chiffres et le résultat est placé dans D00220. 415 Chapitre 3-11 Instructions mathématiques à symboles 3-11-4 DOUBLE SIGNED BINARY ADD WITH CARRY : +CL(403) Objet Symbole du schéma contact Additionne 8 chiffres (mot double) de données hexadécimales et/ou des constantes avec le drapeau de report (CY). +CL(403) Au Au: 1er mot cumulande Ad Ad: 1er mot cumulateur R R: 1er mot de résultat Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Spécifications de l’opérande Zones de proZones de programmes de bloc grammes de pas OK OK Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index 416 Sous-programmes OK +CL(403) @+CL(403) Non prise en charge. Non prise en charge. Tâches d'interruption OK Au Ad R CIO 0000 à CIO 6142 W000 à W510 H000 à H510 A000 à A958 A448 à A958 T0000 à T4094 C0000 à C4094 D00000 à D32766 E00000 à E32766 En_00000 à En_32766 (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) #00000000 à #FFFFFFFF --(binaire) ----,IR0 à ,IR15 –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 Chapitre 3-11 Instructions mathématiques à symboles Description +CL(403) additionne les valeurs binaires dans Au et Au+1, Ad et Ad+1 et CY, et place le résultat dans R. Au+1 Au (binaire signé) Ad+1 Ad (binaire signé) CY + CY passera à ON s'il existe un report. CY R+1 R (binaire signé) Drapeaux Nom Drapeau d'erreur Drapeau d'égalité Etiquette ER OFF Drapeau de report CY = Drapeau de OF dépassement UF Drapeau de dépassement négatif Drapeau négatif Précautions N Fonctionnement ON lorsque le résultat est 0. OFF dans tous les autres cas. ON lorsque le résultat entraîne un report. OFF dans tous les autres cas. ON lorsque le résultat de l'addition de deux nombres positifs et CY est compris entre 80000000 et FFFFFFFF hex. OFF dans tous les autres cas. ON lorsque le résultat de l'addition de deux nombres négatifs et CY est compris entre 00000000 et 7FFFFFFF hex. OFF dans tous les autres cas. ON lorsque le bit le plus à gauche du résultat est 1. OFF dans tous les autres cas. Lorsque CL+(403) est exécutée, le drapeau d'erreur se met sur OFF. Si, à la suite de l'addition, le contenu de R, R+1 est 00000000 hex, le drapeau d'égalité se met sur ON. Si l'addition entraîne un report, le drapeau de report se met sur ON. Si le résultat de l'addition de deux nombres positifs et CY est négatif (compris entre 80000000 et FFFFFFFF hex), le drapeau de dépassement se met sur ON. Si le résultat de l'addition de deux nombres négatifs et CY est positif (compris entre 00000000 et 7FFFFFFF hex), le drapeau de dépassement négatif se met sur ON. Si, à la suite de l'addition, le contenu du bit le plus à gauche de R+1 est 1, le drapeau négatif se met sur ON. Remarque Exemples Pour effacer le drapeau de report (CY), exécutez l'instruction CLEAR CARRY (CLC(041)). Si CIO 000000 est sur ON, D00201, D00200, D00211, D00210 et CY seront additionnés comme valeurs binaires signées à 8 chiffres et le résultat est placé dans D00221 et D00220. 417 Chapitre 3-11 Instructions mathématiques à symboles 3-11-5 BCD ADD WITHOUT CARRY : +B(404) Objet Symbole du schéma contact Additionne 4 chiffres (mot unique) de données BCD et/ou des constantes. +B(404) Au Au: Mot cumulande Ad Ad: Mot cumulateur R R: Mot de résultat Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Spécifications de l’opérande Zones de proZones de programmes de bloc grammes de pas OK OK Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index 418 Sous-programmes OK +B(404) @+B(404) Non prise en charge. Non prise en charge. Tâches d'interruption OK Au Ad R CIO 0000 à CIO 6143 W000 à W511 H000 à H511 A000 à A959 A448 à A959 T0000 à T4095 C0000 à C4095 D00000 à D32767 E00000 à E32767 En_00000 à En_32767 (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) 0000 à 9999 --(BCD) DR0 à DR15 --,IR0 à ,IR15 –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 Chapitre 3-11 Instructions mathématiques à symboles Description +B(404) additionne les valeurs BCD dans Au et Ad, et place le résultat dans R. CY passera à ON s'il existe un report. Au (BCD) + Ad (BCD) CY R (BCD) Drapeaux Nom Drapeau d'erreur Etiquette Fonctionnement ER ON si Au n'est pas de type BCD. ON si Ad n'est pas de type BCD. OFF dans tous les autres cas. = ON lorsque le résultat est 0. OFF dans tous les autres cas. CY ON lorsque le résultat de l'addition entraîne un report. OFF dans tous les autres cas. Drapeau d'égalité Drapeau de report Précautions Si Au ou Ad n'est pas de type BCD, une erreur est générée et le drapeau d'erreur se met sur ON. Si, à la suite de l'addition, le contenu de R est 0000 hex, le drapeau d'égalité se met sur ON. Si l'addition entraîne un report, le drapeau de report se met sur ON. Exemples Si CIO 000000 est ON dans l'exemple suivant, D00100 et D00110 seront additionnés comme valeurs BCD signées à 4 chiffres et le résultat est placé dans D00120. 3-11-6 DOUBLE BCD ADD WITHOUT CARRY : +BL(405) Objet Symbole du schéma contact Additionne 8 chiffres (mot double) de données BCD et/ou des constantes. +BL(405) Au Au: 1er mot cumulande Ad Ad: 1er mot cumulateur R R: 1er mot de résultat Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Zones de proZones de programmes de bloc grammes de pas OK OK Sous-programmes OK +BL(405) @+BL(405) Non prise en charge. Non prise en charge. Tâches d'interruption OK 419 Chapitre 3-11 Instructions mathématiques à symboles Spécifications de l’opérande Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index Description Au Ad R CIO 0000 à CIO 6142 W000 à W510 H000 à H510 A000 à A958 A448 à A958 T0000 à T4094 C0000 à C4094 D00000 à D32766 E00000 à E32766 En_00000 à En_32766 (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) #00000000 à #99999999 --(BCD) ----,IR0 à ,IR15 –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 +BL(405) additionne les valeurs BCD dans Au et Au+1 et Ad et Ad+1, et place le résultat dans R, R+1. CY passera à ON s'il existe un report. Au +1 Au (BCD) + Ad+1 Ad (BCD) CY R+1 R (BCD) Drapeaux Nom Drapeau d'erreur Drapeau d'égalité Drapeau de report 420 Etiquette Fonctionnement ER ON si Au, Au +1 n'est pas de type BCD. ON si Ad, Ad +1 n'est pas de type BCD. OFF dans tous les autres cas. = ON lorsque le résultat est 0. OFF dans tous les autres cas. CY ON lorsque le résultat de l'addition entraîne un report. OFF dans tous les autres cas. Chapitre 3-11 Instructions mathématiques à symboles Précautions Si Au, Au +1 ou Ad, Ad +1 ne sont pas de type BCD, une erreur est générée et le drapeau d'erreur se met sur ON. Si, à la suite de l'addition, le contenu de R, R +1 est 00000000 hex, le drapeau d'égalité se met sur ON. Si l'addition entraîne un report, le drapeau de report se met sur ON. Exemples Si CIO 000000 est ON dans l'exemple suivant, D00101 et D00100 et D00111 et D00110 seront additionnés comme valeurs BCD signées à 8 chiffres et le résultat placé dans D00121 et D00120. 3-11-7 BCD ADD WITH CARRY : +BC(406) Objet Symbole du schéma contact Additionne 4 chiffres (mot unique) de données BCD et/ou des constantes avec le drapeau de report (CY). +BC(406) Au Au: Mot cumulande Ad Ad: Mot cumulateur R R: Mot de résultat Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Spécifications de l’opérande Zones de proZones de programmes de bloc grammes de pas OK OK Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque Sous-programmes OK Au CIO 0000 à CIO 6143 W000 à W511 H000 à H511 A000 à A959 T0000 à T4095 C0000 à C4095 D00000 à D32767 E00000 à E32767 En_00000 à En_32767 (n = 0 à C) Ad +BC(406) @+BC(406) Non prise en charge. Non prise en charge. Tâches d'interruption OK R A448 à A959 421 Chapitre 3-11 Instructions mathématiques à symboles Zone Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index Description Au Ad @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) #0000 à 9999 --(BCD) DR0 à DR15 --,IR0 à ,IR15 –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 R +BC(406) additionne les valeurs BCD dans Au, Ad et CY, et place le résultat dans R. Au (BCD) Ad (BCD) CY + CY passera à ON s'il existe un report. CY R (BCD) Drapeaux Nom Drapeau d'erreur Drapeau d'égalité Drapeau de report Précautions Etiquette Fonctionnement ER ON si Au n'est pas de type BCD. ON si Ad n'est pas de type BCD. OFF dans tous les autres cas. = ON lorsque le résultat est 0. OFF dans tous les autres cas. CY ON lorsque le résultat de l'addition entraîne un report. OFF dans tous les autres cas. Si Au ou Ad n'est pas de type BCD, une erreur est générée et le drapeau d'erreur se met sur ON. Si, à la suite de l'addition, le contenu de R est 0000 hex, le drapeau d'égalité se met sur ON. Si l'addition entraîne un report, le drapeau de report se met sur ON. Remarque Exemples 422 Pour effacer le drapeau de report (CY), exécutez l'instruction CLEAR CARRY (CLC(041)). Si CIO 000000 est ON dans l'exemple suivant, D00100, D00110 et CY seront additionnés comme valeurs BCD signées à 4 chiffres et le résultat placé dans D00120. Chapitre 3-11 Instructions mathématiques à symboles 3-11-8 DOUBLE BCD ADD WITH CARRY : +BCL(407) Objet Symbole du schéma contact Additionne 8 chiffres (mot double) de données BCD et/ou des constantes avec le drapeau de report (CY). +BCL(407) Au Au: 1er mot cumulande Ad Ad: 1er mot cumulateur R R: 1er mot de résultat Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Spécifications de l’opérande Zones de proZones de programmes de bloc grammes de pas OK OK Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index Sous-programmes OK +BCL(407) @+BCL(407) Non prise en charge. Non prise en charge. Tâches d'interruption OK Au Ad R CIO 0000 à CIO 6142 W000 à W510 H000 à H510 A000 à A958 A448 à A958 T0000 à T4094 C0000 à C4094 D00000 à D32766 E00000 à E32766 En_00000 à En_32766 (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) #00000000 à #99999999 --(BCD) ----,IR0 à ,IR15 –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 423 Chapitre 3-11 Instructions mathématiques à symboles Description +BCL(407) additionne les valeurs BCD dans Au et Au+1, Ad et Ad+1 et CY, et place le résultat dans R, R+1. Au +1 Au (BCD) Ad+1 Ad (BCD) CY + CY passera à ON s'il existe un report. CY R+1 R (BCD) Drapeaux Nom Drapeau d'erreur Etiquette Fonctionnement ER ON si Au, Au +1 n'est pas de type BCD. ON si Ad, Ad +1 n'est pas de type BCD. OFF dans tous les autres cas. = ON lorsque le résultat est 0. OFF dans tous les autres cas. CY ON lorsque le résultat de l'addition entraîne un report. OFF dans tous les autres cas. Drapeau d'égalité Drapeau de report Précautions Si Au, Au +1 ou Ad, Ad +1 ne sont pas de type BCD, une erreur est générée et le drapeau d'erreur se met sur ON. Si, à la suite de l'addition, le contenu de R, R +1 est 00000000 hex, le drapeau d'égalité se met sur ON. Si l'addition entraîne un report, le drapeau de report se met sur ON. Remarque Exemples Pour effacer le drapeau de report (CY), exécutez l'instruction CLEAR CARRY (CLC(041)). Si CIO 000000 est ON dans l'exemple suivant, D00101, D00100, D00111, D00110 et CY seront additionnés comme valeurs BCD signées à 8 chiffres et le résultat placé dans D00121 et D00120. 3-11-9 SIGNED BINARY SUBTRACT WITHOUT CARRY : –(410) Objet Soustrait 4 chiffres (mot unique) de données hexadécimales et/ou des constantes. Symbole du schéma contact −(410) Mi Mi: Mot à soustraire Su Su: Mot soustracteur R R: Mot de résultat Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat 424 –(410) @–(410) Non prise en charge. Non prise en charge. Chapitre 3-11 Instructions mathématiques à symboles Zones de programmes applicables Spécifications de l’opérande Zones de proZones de programmes de bloc grammes de pas OK OK Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index Description Sous-programmes OK Tâches d'interruption OK Mi Su R CIO 0000 à CIO 6143 W000 à W511 H000 à H511 A000 à A959 A448 à A959 T0000 à T4095 C0000 à C4095 D0000 à D4095 E00000 à E32767 En_00000 à En_32767 (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) #0000 à #FFFF --(binaire) DR0 à DR15 --,IR0 à ,IR15 –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 –(400) soustrait les valeurs binaires dans Su à partir de Mi et place le résultat dans R. Lorsque le résultat est négatif, il est placé dans R comme complément à 2. (Consultez 3-11-10 DOUBLE SIGNED BINARY SUBTRACT WITHOUT CARRY : –L(411) pour un exemple de traitement des compléments à 2.) CY passera à ON s'il existe une retenue. Mi (binaire signé) − Su (binaire signé) CY R (binaire signé) Drapeaux Nom Drapeau d'erreur Drapeau d'égalité Etiquette ER OFF = Fonctionnement ON lorsque le résultat est 0. OFF dans tous les autres cas. 425 Chapitre 3-11 Instructions mathématiques à symboles Nom Drapeau de report Etiquette Fonctionnement CY ON lorsque le résultat de la soustraction entraîne une retenue. OFF dans tous les autres cas. OF ON lorsque le résultat de la soustraction d'un nombre négatif d'un nombre positif est compris entre 8000 et FFFF hex. OFF dans tous les autres cas. UF ON lorsque le résultat de la soustraction d'un nombre négatif d'un nombre positif est compris entre 0000 et 7FFF hex. OFF dans tous les autres cas. N ON lorsque le bit le plus à gauche du résultat est 1. OFF dans tous les autres cas. Drapeau de dépassement Drapeau de dépassement négatif Drapeau négatif Précautions Lorsque –(410) est exécutée, le drapeau d'erreur se met sur OFF. Si, à la suite de la soustraction, le contenu de R est 0000 hex, le drapeau d'égalité se met sur ON. Si la soustraction entraîne une retenue, le drapeau de report se met sur ON. Si le résultat de la soustraction d'un nombre négatif d'un nombre positif est négatif (compris entre 8000 et FFFF hex), le drapeau de dépassement se met sur ON. Si le résultat de la soustraction d'un nombre positif d'un nombre positif est positif (compris entre 0000 et 7FFF hex), le drapeau de dépassement négatif se met sur ON. Si, à la suite de la soustraction, le contenu du bit le plus à gauche de R est 1, le drapeau négatif se met sur ON. Exemples Si CIO 000000 est ON dans l'exemple suivant, D00110 est soustrait de D00100 comme valeurs binaires signées à 4 chiffres et le résultat est placé dans D00120. − 3-11-10 DOUBLE SIGNED BINARY SUBTRACT WITHOUT CARRY : –L(411) Objet Soustrait 8 chiffres (mot double) de données hexadécimales et/ou des constantes. Symbole du schéma contact −L(411) Mi Mi: Mot à soustraire Su Su: Mot soustracteur R R: Mot de résultat Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat 426 -L(411) @–L(411) Non prise en charge. Non prise en charge. Chapitre 3-11 Instructions mathématiques à symboles Zones de programmes applicables Spécifications de l’opérande Zones de programmes de bloc OK Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index Description Zones de programmes de pas OK Sousprogrammes OK Tâches d'interruption OK Mi Su R CIO 0000 à CIO 6142 W000 à W510 H000 à H510 A000 à A958 A448 à A958 T0000 à T4094 C0000 à C4094 D00000 à D32766 E00000 à E32766 En_00000 à En_32766 (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) #00000000 à #FFFFFFFF --(binaire) --IR0 à IR15 ,IR0 à ,IR15 –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 –L(411) soustrait les valeurs binaires dans Su et Su+1 de Mi et Mi+1, et place le résultat dans R, R+1. Lorsque le résultat est négatif, il est placé dans R et R+1 comme complément à 2. CY passera à ON s'il existe une retenue. Mi+1 Mi (binaire signé) − Su+1 Su (binaire signé) CY R+1 R (binaire signé) Drapeaux Nom Drapeau d'erreur Drapeau d'égalité Etiquette ER OFF Drapeau de report CY = Drapeau de OF dépassement Fonctionnement ON lorsque le résultat est 0. OFF dans tous les autres cas. ON lorsque le résultat de la soustraction entraîne une retenue. OFF dans tous les autres cas. ON lorsque le résultat de la soustraction d'un nombre négatif d'un nombre positif est compris entre 80000000 et FFFFFFFF hex. OFF dans tous les autres cas. 427 Chapitre 3-11 Instructions mathématiques à symboles Nom Drapeau de dépassement négatif Drapeau négatif Précautions Etiquette Fonctionnement UF ON lorsque le résultat de la soustraction d'un nombre positif d'un nombre négatif est compris entre 00000000 et 7FFFFFFF hex. OFF dans tous les autres cas. N ON lorsque le bit le plus à gauche du résultat est 1. OFF dans tous les autres cas. Lorsque –L(411) est exécutée, le drapeau d'erreur se met sur OFF. Si, à la suite de la soustraction, le contenu de R, R+1 est 00000000 hex, le drapeau d'égalité se met sur ON. Si la soustraction entraîne une retenue, le drapeau de report se met sur ON. Si le résultat de la soustraction d'un nombre négatif d'un nombre positif est négatif (compris entre 80000000 et FFFFFFFF hex), le drapeau de dépassement se met sur ON. Si le résultat de la soustraction d'un nombre positif d'un nombre positif est positif (compris entre 00000000 et 7FFFFFFF hex), le drapeau de dépassement négatif se met sur ON. Si, à la suite de la soustraction, le contenu du bit le plus à gauche de R+1 est 1, le drapeau négatif se met sur ON. Exemples Si CIO 000000 est ON dans l'exemple suivant, D00111 et D00110 sont soustraits de D00101 et D00100 comme valeurs binaires signées à 8 chiffres, et le résultat est placé dans D00121 et D00120. −L Exemples Si le résultat de la soustraction est un nombre négatif (Mi<Su ou Mi+1, Mi <Su+1, Su), le résultat est placé comme complément à 2 et le drapeau de report (CY) se met sur ON pour indiquer que le résultat de la soustraction est négatif. Pour convertir le complément à 2 en nombre réel, il est nécessaire de recourir à une instruction qui soustrait le résultat de 0 avec le drapeau de report (CY) comme condition d'exécution. Remarque 428 Complément à 2 Un complément à 2 est la valeur obtenue en soustrayant chaque chiffre binaire de 1 et en ajoutant un au résultat. Par exemple, le complément à 2 de 1101 est calculé comme suit : 1111 (F hexadécimal) – 1101 (D hexadécimal) + 1 (1 hexadécimal) = 0011 (3 hexadécimal). Le complément à 2 de 3039 (hexadécimal) est calculé comme suit : FFFF (hexadécimal) – 3039 (hexadécimal) + 0001 (hexadécimal) = CFC7 (hexadécimal). Aussi, dans le cas d'une valeur hexadécimale à 4 chiffres, le complément à 2 peut être calculé comme suit : FFFF (hexadécimal) – a (hexadécimal) + 0001 (hexadécimal) = b (hexadécimal). Pour obtenir le nombre réel du complément à 2 b (hexadécimal) : a (hexadécimal) = 10000 (hexadécimal) – b (hexadécimal). Par exemple, pour obtenir le nombre réel du complément à 2 CFC7 (hexadécimal) : 10000 (hexadécimal) – CFC7 = 3039. Chapitre 3-11 Instructions mathématiques à symboles Exemple 1 FFFF Hex −) 0001 Hex Données signées Données non signées −1 +1 Remarque 1. Etant donné que le drapeau négatif est sur ON, le résultat (FFFE hex) est une valeur négative (complément à 2) et est donc −2. FFFE Hex −2 Remarque 1 65534 Remarque 2 2. Etant donné que le drapeau de report est sur OFF, le résultat (FFFE hex) est une valeur positive non signée Drapeau négatif sur ON de 65534. Drapeau de report sur OFF Exemple 2 FFFD Hex −) FFFF Hex −) −) Données signées −) FFFE Hex 65535 1 Données non signées −3 −1 3. Etant donné que le drapeau négatif est sur ON, le résultat (FFFE hex) est une valeur négative (complément à 2) et est donc −2. 65533 −) 65535 −2 Remarque 3 65534 Remarque 4 Drapeau négatif sur ON 4. Etant donné que le drapeau de report est sur ON, le résultat (FFFE hex) est une valeur négative (complément à 2) et devient −2 lorsqu'il est converti en valeur réelle. Drapeau de report sur OFF Exemple de programme 20F55A10 – B8A360E3 = –97AE06D3. Dans cet exemple, la valeur binaire à huit chiffres dans CIO 0121 et CIO 0120 est soustraite de la valeur dans CIO 0201 et CIO 0200, et le résultat est placé en binaire à huit chiffres dans D00101 et D00100. Si le résultat est négatif, l'instruction à (2) est exécutée, et le résultat réel est ensuite placé dans D00101 et D00100. 000000 RSET 002100 −L (1) 0200 0120 D00100 CY −L (2) #00000000 D00100 D00100 CY SET "−"affichage 002100 Soustraction à 1 Mi+1 : CIO 0201 Mi : CIO 0200 2 0 F 5 5 A 1 0 Su+1 :CIO 0121 Su :CIO 0120 − CY 1 B 8 A 3 6 0 E 3 R+1 : D00101 R+1 : D00100 6 8 5 1 F 9 2 D Le drapeau de report (CY) est sur ON, de sorte que le résultat est soustrait de 0000 0000 pour obtenir le nombre réel. 429 Chapitre 3-11 Instructions mathématiques à symboles Soustraction à 2 0 0 0 0 Su+1 : D00101 − 0 0 0 0 Su : D00100 6 8 5 1 CY 1 F 9 2 D R+1 : D00101 R+1 : D00100 9 7 A E 0 6 D 3 Résultat final de la soustraction Mi+1 : CIO 0201 Mi : CIO 0200 2 0 F 5 Su+1 : D00101 − 6 8 5 1 5 A 1 0 Su : D00100 F 9 2 D CY R+1 : D00101 R+1 : D00100 9 7 A E 0 6 D 3 1 Le drapeau de report (CY) est mis sur ON, de sorte que le nombre réel est –97AE06D3. Etant donné que le contenu de D00101 et D00100 est négatif, CY est utilisé pour mettre CIO 002100 sur ON afin de le signaler. 3-11-11 SIGNED BINARY SUBTRACT WITH CARRY : –C(412) Objet Symbole du schéma contact Soustrait 4 chiffres (mot unique) de données hexadécimales et/ou des constantes avec le drapeau de report (CY). −C(412) Mi Mi: Mot à soustraire Su Su: Mot soustracteur R R: Mot de résultat Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Spécifications de l’opérande 430 Zones de proZones de programmes de bloc grammes de pas OK OK Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Sous-programmes OK Mi CIO 0000 à CIO 6143 W000 à W511 H000 à H511 A000 à A959 Su –C(412) @–C(412) Non prise en charge. Non prise en charge. Tâches d'interruption OK R A448 à A959 Chapitre 3-11 Instructions mathématiques à symboles Zone Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index Description Mi Su T0000 à T4095 C0000 à C4095 D00000 à D32767 E00000 à E32767 En_00000 à En_32767 (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) #0000 à #FFFF --(binaire) DR0 à DR15 --,IR0 à ,IR15 –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 R –C(412) soustrait les valeurs binaires dans Su et CY de Mi, et place le résultat dans R. Lorsque le résultat est négatif, il est placé dans R comme complément à 2. Mi (binaire signé) Su (binaire signé) CY – CY passera à ON s'il existe une retenue. CY R (binaire signé) Drapeaux Nom Drapeau d'erreur Drapeau d'égalité Etiquette ER OFF Drapeau de report CY = Drapeau de OF dépassement Drapeau de UF dépassement négatif Drapeau négatif N Fonctionnement ON lorsque le résultat de la soustraction est 0. OFF dans tous les autres cas. ON lorsque le résultat de la soustraction entraîne une retenue. OFF dans tous les autres cas. ON lorsque le résultat de la soustraction d'un nombre négatif et CY d'un nombre positif est compris entre 8000 et FFFF hex. OFF dans tous les autres cas. ON lorsque le résultat de la soustraction d'un nombre positif et CY d'un nombre négatif est compris entre 0000 et 7FFF hex. OFF dans tous les autres cas. ON lorsque le bit le plus à gauche du résultat est 1. OFF dans tous les autres cas. 431 Chapitre 3-11 Instructions mathématiques à symboles Précautions Lorsque –C(412) est exécutée, le drapeau d'erreur se met sur OFF. Si, à la suite de la soustraction, le contenu de R est 0000 hex, le drapeau d'égalité se met sur ON. Si la soustraction entraîne une retenue, le drapeau de report se met sur ON. Si le résultat de la soustraction d'un nombre négatif et de CY d'un nombre positif est négatif (compris entre 8000 et FFFF hex), le drapeau de dépassement se met sur ON. Si le résultat de la soustraction d'un nombre positif et de CY d'un nombre négatif est positif (compris entre 0000 et 7FFF hex), le drapeau de dépassement négatif se met sur ON. Si, à la suite de la soustraction, le contenu du bit le plus à gauche de R est 1, le drapeau négatif se met sur ON. Remarque Exemples Pour effacer le drapeau de report (CY), exécutez l'instruction CLEAR CARRY (CLC(041)). Si CIO 000000 est ON dans l'exemple suivant, D00110 et CY sont soustraits de D00100 comme valeurs binaires signées à 4 chiffres et le résultat est placé dans D00120. 3-11-12 DOUBLE SIGNED BINARY SUBTRACT WITH CARRY : –CL(413) Objet Symbole du schéma contact Soustrait 8 chiffres (mot double) de données hexadécimales et/ou des constantes avec le drapeau de retenue (CY). –CL(413) Mi Mi: Mot à soustraire Su Su: Mot soustracteur R R: Mot de résultat Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Spécifications de l’opérande 432 Zones de proZones de programmes de bloc grammes de pas OK OK Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Sous-programmes OK Mi CIO 0000 à CIO 6142 W000 à W510 H000 à H510 A000 à A958 Su –CL(413) @–CL(413) Non prise en charge. Non prise en charge. Tâches d'interruption OK R A448 à A958 Chapitre 3-11 Instructions mathématiques à symboles Zone Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque Mi Su T0000 à T4094 C0000 à C4094 D00000 à D32766 E00000 à E32766 En_00000 à En_32766 (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) #00000000 à #FFFFFFFF --(binaire) ----,IR0 à ,IR15 –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index Description R –CL(413) soustrait les valeurs binaires dans Su, Su+1 et CY de Mi et Mi+1, et place le résultat dans R, R+1. Lorsque le résultat est négatif, il est placé dans R et R+1 comme complément à 2. Mi+1 Mi (binaire signé) Su+1 Su (binaire signé) CY – CY passera à ON s'il existe une retenue. CY R+1 R (binaire signé) Drapeaux Nom Drapeau d'erreur Drapeau d'égalité Etiquette ER Drapeau de report CY Drapeau de dépassement OF Drapeau de dépassement négatif UF Drapeau négatif N = Fonctionnement OFF ON lorsque le résultat est 0. OFF dans tous les autres cas. ON lorsque le résultat entraîne une retenue. OFF dans tous les autres cas. ON lorsque le résultat de la soustraction d'un nombre négatif et CY d'un nombre positif est compris entre 80000000 et FFFFFFFF hex. OFF dans tous les autres cas. ON lorsque le résultat de la soustraction d'un nombre positif et CY d'un nombre négatif est compris entre 00000000 et 7FFFFFFF hex. OFF dans tous les autres cas. ON lorsque le bit le plus à gauche du résultat est 1. OFF dans tous les autres cas. 433 Instructions mathématiques à symboles Précautions Chapitre 3-11 Lorsque –CL(413) est exécutée, le drapeau d'erreur se met sur OFF. Si, à la suite de la soustraction, le contenu de R, R+1 est 00000000 hex, le drapeau d'égalité se met sur ON. Si la soustraction entraîne une retenue, le drapeau de report se met sur ON. Si le résultat de la soustraction d'un nombre négatif et de CY d'un nombre positif est négatif (compris entre 80000000 et FFFFFFFF hex), le drapeau de dépassement se met sur ON. Si le résultat de la soustraction d'un nombre positif et CY d'un nombre positif est positif (compris entre 00000000 et 7FFFFFFF hex), le drapeau de dépassement négatif se met sur ON. Si, à la suite de la soustraction, le contenu du bit le plus à gauche de R+1 est 1, le drapeau négatif se met sur ON. Remarque Exemples Pour effacer le drapeau de report (CY), exécutez l'instruction CLEAR CARRY (CLC(041)). Si CIO 000000 est sur ON dans l'exemple suivant, D00111, D00110 et CY sont soustraits de D00101 et D00100 comme valeurs binaires signées à 8 chiffres, et le résultat est placé dans D00121 et D00120. Si le résultat de la soustraction est un nombre négatif (Mi<Su ou Mi+1, Mi <Su+1, Su), le résultat se présente sous forme de complément à 2. Le drapeau de report (CY) se met sur ON. Pour convertir le complément à 2 en nombre réel, il est nécessaire de recourir à un programme qui soustrait le résultat de 0 avec le drapeau de report (CY) comme condition d'entrée. Si le drapeau de report se met sur ON, cela signifie donc que le résultat de la soustraction est négatif. Remarque 434 Complément à 2 Un complément à 2 est la valeur obtenue en soustrayant chaque chiffre binaire de 1 et en ajoutant un au résultat. Exemple : Le complément à 2 du nombre binaire 1101 est calculé comme suit : 1111 (F hex) – 1101 (D hex) + 1 (1 hex) = 0011 (3 hex). Exemple : Le complément à 2 du nombre hexadécimal à 4 chiffres 3039 est calculé comme suit : FFFF hex – 3039 hex + 0001 hex = CFC7 hex. De même, le complément à 2 de la valeur hexadécimale à 4 chiffres "a" est calculé comme suit : FFFF hex – a hex + 0001 hex = b hex. Et pour obtenir le nombre réel "a" hex du complément à 2 "b" hex : a hex + 10000 hex – b hex. Exemple : Pour obtenir le nombre réel du complément à 2 CFC& hex : 10000 hex – CFC7 hex = 3039 hex. Chapitre 3-11 Instructions mathématiques à symboles 3-11-13 BCD SUBTRACT WITHOUT CARRY : –B(414) Objet Symbole du schéma contact Soustrait 4 chiffres (mot unique) de données BCD et/ou des constantes. –B(414) Mi Mi: Mot à soustraire Su Su: Mot soustracteur R R: Mot de résultat Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Spécifications de l’opérande Zones de proZones de programmes de bloc grammes de pas OK OK Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index Sous-programmes OK –B(414) @–B(414) Non prise en charge. Non prise en charge. Tâches d'interruption OK Mi Su R CIO 0000 à CIO 6143 W000 à W511 H000 à H511 A000 à A959 A448 à A959 T0000 à T4095 C0000 à C4095 D00000 à D32767 E00000 à E32767 En_00000 à En_32767 (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) 0000 à 9999 --(BCD) DR0 à DR15 --,IR0 à ,IR15 –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 435 Chapitre 3-11 Instructions mathématiques à symboles Description –B(414) soustrait les valeurs BCD dans Su de Mi, et place le résultat dans R. Si le résultat de la soustraction est négatif, le résultat se présente sous forme de complément à 10. CY passera à ON s'il existe une retenue. Mi (BCD) – Su (BCD) CY R (BCD) Drapeaux Nom Drapeau d'erreur Drapeau d'égalité Drapeau de report Précautions Etiquette Fonctionnement ER ON si Mi n'est pas de type BCD. ON si Su n'est pas de type BCD. OFF dans tous les autres cas. = ON lorsque le résultat est 0. OFF dans tous les autres cas. CY ON lorsque le résultat de la soustraction entraîne une retenue. OFF dans tous les autres cas. Si Mi et/ou Su n'est pas de type BCD, une erreur est générée et le drapeau d'erreur se met sur ON. Si, à la suite de la soustraction, le contenu de R est 0000 hex, le drapeau d'égalité se met sur ON. Si la soustraction entraîne une retenue, le drapeau de report se met sur ON. Exemples Si CIO 000000 est sur ON dans l'exemple suivant, D00110 est soustrait de D00100 comme valeurs BCD à 4 chiffres et le résultat est placé dans D00120. 3-11-14 DOUBLE BCD SUBTRACT WITHOUT CARRY : –BL(415) Objet Symbole du schéma contact Soustrait 8 chiffres (mot double) de données BCD et/ou des constantes. –BL(415) Mi Mi: 1er mot à soustraire Su Su: 1er mot soustracteur R R: 1er mot de résultat Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat 436 –BL(415) @–BL(415) Non prise en charge. Non prise en charge. Chapitre 3-11 Instructions mathématiques à symboles Zones de programmes applicables Spécifications de l’opérande Zones de proZones de programmes de bloc grammes de pas OK OK Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque OK Tâches d'interruption OK Mi Su R CIO 0000 à CIO 6142 W000 à W510 H000 à H510 A000 à A958 A448 à A958 T0000 à T4094 C0000 à C4094 D00000 à D32766 E00000 à E32766 En_00000 à En_32766 (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) #00000000 à #99999999 --(BCD) ----,IR0 à ,IR15 –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index Description Sous-programmes –BL(415) soustrait les valeurs BCD dans Su et Su+1 de Mi et Mi+1, et place le résultat dans R, R+1. Lorsque le résultat est négatif, il est placé dans R, R+1 comme complément à 10. CY passera à ON s'il existe une retenue. Mi +1 Mi (BCD) – Su+1 Su (BCD) CY R+1 R (BCD) Drapeaux Nom Drapeau d'erreur Etiquette ER Fonctionnement ON si Mi et/ou Mi +1 n'est pas de type BCD. ON si Su et/ou Su +1 n'est pas de type BCD. OFF dans tous les autres cas. 437 Chapitre 3-11 Instructions mathématiques à symboles Nom Drapeau d'égalité Etiquette = Drapeau de CY report Précautions Fonctionnement ON lorsque le résultat est 0. OFF dans tous les autres cas. ON lorsque le résultat de la soustraction entraîne une retenue. OFF dans tous les autres cas. Si Mi, Mi +1 et/ou Su, Su +1 n'est pas de type BCD, une erreur est générée et le drapeau d'erreur se met sur ON. Si, à la suite de la soustraction, le contenu de R, R +1 est 00000000 hex, le drapeau d'égalité se met sur ON. Si la soustraction entraîne une retenue, le drapeau de report se met sur ON. Exemples Si CIO 000000 est ON dans l'exemple suivant, D00111 et D00110 sont soustraits de D00101 et D00100 comme valeurs BCD à 8 chiffres, et le résultat est placé dans D00121 et D00120. Si le résultat de la soustraction est un nombre négatif (Mi<Su ou Mi+1, Mi <Su+1, Su), le résultat se présente sous forme de complément à 10. Le drapeau de report (CY) se met sur ON. Pour convertir le complément à 10 en nombre réel, il est nécessaire de recourir à un programme qui soustrait le résultat de 0 avec le drapeau de report (CY) comme condition d'entrée. Si le drapeau de report se met sur ON, cela signifie donc que le résultat de la soustraction est négatif. Remarque Exemple de programme 438 Complément à 10 Un complément à 10 est la valeur obtenue en soustrayant chaque chiffre de 9 et en ajoutant 1 au résultat. Par exemple, le complément à 10 de 7556 est calculé comme suit : 9999 – 7556 + 1 = 2444. Pour un nombre à quatre chiffres, le complément à 10 de A est 9999 – A + 1 = B. Pour obtenir le nombre réel à partir du complément à 10 B : A = 10000 – B. Par exemple, pour obtenir le nombre réel du complément à 10 2444 : 10000 – 2444 = 7556. 9,583,960 – 17,072,641 = –7,488,681. Dans cet exemple, la valeur BCD à huit chiffres dans CIO 0121 et CIO 0120 est soustraite du contenu de CIO 0201 et CIO 0200, et le résultat est placé en BCD à huit chiffres dans D00101 et D00100. Si le résultat est négatif, l'instruction à (2) est exécutée, et le résultat réel est ensuite placé dans D00101 et D00100. Chapitre 3-11 Instructions mathématiques à symboles 000000 RSET 002100 −BL (1) 0200 0120 D00100 CY −BL (2) #00000000 D00100 D00100 CY SET "−"affichage 002100 Soustraction à 1 Mi+1 :CIO 0201 Mi :CIO 0200 0 9 5 8 3 9 6 0 Su+1 :CIO 0121 Su :CIO 0120 – 1 7 0 7 2 6 4 1 09583960 + (100000000 – 17072641) CY R+1 :D00101 1 9 2 5 1 R+1 :D00100 1 3 1 9 Le drapeau de report (CY) est sur ON, de sorte que le résultat est soustrait de 0000 0000. Soustraction à 2 0 0 0 0 Su+1 :D00101 – 0 0 0 0 Su :D00100 9 2 5 1 1 3 1 9 00000000 + (100000000 – 92511319) CY R+1 :D00101 1 0 7 4 8 R+1 :D00100 8 6 8 1 Résultat final de la soustraction Mi+1 :CIO 0201 Mi :CIO 0200 2 0 F 5 Su+1 :D00101 – 5 A 1 0 Su :D00100 6 8 5 1 F 9 2 D CY R+1 :D00101 R+1 :D00100 1 0 7 4 8 8 6 8 1 Le drapeau de report (CY) se met sur ON ; le nombre réel est donc –7488681. Etant donné que le contenu de D00101 et D00100 est négatif, CY est utilisé pour mettre CIO 002100 sur ON afin de l'indiquer. 439 Chapitre 3-11 Instructions mathématiques à symboles 3-11-15 BCD SUBTRACT WITH CARRY : –BC(416) Objet Symbole du schéma contact Soustrait 4 chiffres (mot unique) de données BCD et/ou des constantes avec le drapeau de report (CY). –BC(416) Mi Mi: Mot à soustraire Su Su: Mot soustracteur R R: Mot de résultat Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Spécifications de l’opérande Zones de proZones de programmes de bloc grammes de pas OK OK Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index 440 Sous-programmes OK –BC(416) @–BC(416) Non prise en charge. Non prise en charge. Tâches d'interruption OK Mi Su R CIO 0000 à CIO 6143 W000 à W511 H000 à H511 A000 à A959 A448 à A959 T0000 à T4095 C0000 à C4095 D00000 à D32767 E00000 à D32767 En_00000 à En_32767 (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) #0000 à #9999 --(BCD) DR0 à DR15 --,IR0 à ,IR15 –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 Chapitre 3-11 Instructions mathématiques à symboles Description –BC(416) soustrait les valeurs BCD dans Su et CY de Mi, et place le résultat dans R. Lorsque le résultat est négatif, il est placé dans R comme complément à 2. Mi (BCD) Su (BCD) – CY passera à ON s'il existe une retenue. CY CY R (BCD) Drapeaux Nom Drapeau d'erreur Etiquette Fonctionnement ER ON si Mi n'est pas de type BCD. ON si Su n'est pas de type BCD. OFF dans tous les autres cas. = ON lorsque le résultat est 0. OFF dans tous les autres cas. CY ON lorsque le résultat de la soustraction entraîne une retenue. OFF dans tous les autres cas. Drapeau d'égalité Drapeau de report Précautions Si Mi et/ou Su n'est pas de type BCD, une erreur est générée et le drapeau d'erreur se met sur ON. Si, à la suite de la soustraction, le contenu de R est 0000 hex, le drapeau d'égalité se met sur ON. Si la soustraction entraîne une retenue, le drapeau de report se met sur ON. Remarque Exemples Pour effacer le drapeau de report (CY), exécutez l'instruction CLEAR CARRY (CLC(041)). Si CIO 000000 est ON dans l'exemple suivant, D00110 et CY sont soustraits de D00100 comme valeurs BCD à 4 chiffres et le résultat est placé dans D00120. 3-11-16 DOUBLE BCD SUBTRACT WITH CARRY : –BCL(417) Objet Symbole du schéma contact Soustrait 8 chiffres (mot double) de données BCD et/ou des constantes avec le drapeau de report (CY). –BCL(417) Mi Mi: 1er mot à soustraire Su Su: 1er mot soustracteur R R: 1er mot de résultat 441 Chapitre 3-11 Instructions mathématiques à symboles Variations Variations Zones de programmes applicables Spécifications de l’opérande Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Non prise en charge. Non prise en charge. Zones de proZones de programmes de bloc grammes de pas OK OK Tâches d'interruption OK Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index Sous-programmes OK Mi Su R CIO 0000 à CIO 6142 W000 à W510 H000 à H510 A000 à A958 A448 à A958 T0000 à T4094 C0000 à C4094 D00000 à D32766 E00000 à E32766 En_00000 à En_32766 (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) #00000000 à #99999999 --(BCD) ----,IR0 à ,IR15 –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 –BCL(417) soustrait les valeurs BCD dans Su, Su+1 et CY de Mi et Mi+1, et place le résultat dans R, R+1. Lorsque le résultat est négatif, il est placé dans R, R+1 comme complément à 10. Mi +1 Mi (BCD) Su+1 Su (BCD) – CY passera à ON s'il existe une retenue. 442 @–BCL(417) Spécification de rafraîchissement immédiat Adresses DM/EM indirectes en binaire Description –BCL(417) CY CY R+1 R (BCD) Chapitre 3-11 Instructions mathématiques à symboles Drapeaux Nom Drapeau d'erreur Etiquette Fonctionnement ER ON si Mi et/ou Mi +1 n'est pas de type BCD. ON si Su et/ou Su +1 n'est pas de type BCD. OFF dans tous les autres cas. = ON lorsque le résultat est 0. OFF dans tous les autres cas. CY ON lorsque le résultat de la soustraction entraîne une retenue. OFF dans tous les autres cas. Drapeau d'égalité Drapeau de report Précautions Si Mi, Mi +1 et/ou Su, Su +1 n'est pas de type BCD, une erreur est générée et le drapeau d'erreur se met sur ON. Si, à la suite de la soustraction, le contenu de R, R +1 est 00000000 hex, le drapeau d'égalité se met sur ON. Si la soustraction entraîne une retenue, le drapeau de report se met sur ON. Remarque Exemples Pour effacer le drapeau de report (CY), exécutez l'instruction CLEAR CARRY (CLC(041)). Si CIO 000000 est ON dans l'exemple suivant, D00111, D00110 et CY sont soustraits de D00101 et D00100 comme valeurs BCD à 8 chiffres, et le résultat est placé dans D00121 et D00120. Si le résultat de la soustraction est un nombre négatif (Mi<Su ou Mi+1, Mi <Su+1, Su), le résultat se présente sous forme de complément à 10. Le drapeau de report (CY) se met sur ON. Pour convertir le complément à 10 en nombre réel, il est nécessaire de recourir à un programme qui soustrait le résultat de 0 avec le de report (CY) comme condition d'entrée. Si le drapeau de report se met sur ON, cela signifie donc que le résultat de la soustraction est négatif. Remarque Complément à 10 Un complément à 10 est la valeur obtenue en soustrayant chaque chiffre de 9 et en ajoutant un au résultat. Par exemple, le complément à 10 de 7556 est calculé comme suit : 9999 – 7556 + 1 = 2444. Pour un nombre à quatre chiffres, le complément à 10 de A est 9999 – A + 1 = B. Pour obtenir le nombre réel à partir du complément à 10 B : A = 10000 – B. Par exemple, pour obtenir le nombre réel du complément à 10 2444 : 10000 – 2444 = 7556. 3-11-17 SIGNED BINARY MULTIPLY : *(420) Objet Symbole du schéma contact Multiplie 4 chiffres de données hexadécimales signées et/ou des constantes. *(420) Md Md: Mot multiplicande Mr Mr: Mot multiplicateur R R: Mot de résultat 443 Chapitre 3-11 Instructions mathématiques à symboles Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Spécifications de l’opérande Zones de programmes de bloc OK Zones de programmes de pas OK Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque W000 à W511 H000 à H511 A000 à A959 T0000 à T4095 C0000 à C4095 D00000 à D32767 E00000 à E32767 En_00000 à En_32767 (n = 0 à C) Adresses DM/EM indirectes en binaire @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) #0000 à #FFFF (binaire) DR0 à DR15 --- Registres de données Registres d'index Adressage indirect à l’aide de registres d’index Description 444 Sousprogrammes OK Md CIO 0000 à CIO 6143 Constantes @*(420) Non prise en charge. Non prise en charge. Zone Zone CIO Adresses DM/EM indirectes en BCD *(420) Mr Tâches d'interruption OK R CIO 0000 à CIO 6142 W000 à W510 H000 à H510 A448 à A958 T0000 à T4094 C0000 à C4094 D00000 à D32766 E00000 à E32766 En_00000 à En_32766 (n = 0 à C) ----- ,IR0 à ,IR15 –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 *(420) multiplie les valeurs binaires signées dans Md et Mr, et place le résultat dans R, R+1. Md (binaire signé) × Mr (binaire signé) R +1 R (binaire signé) Chapitre 3-11 Instructions mathématiques à symboles Drapeaux Précautions Nom Drapeau d'erreur Etiquette ER OFF Drapeau d'égalité = Drapeau négatif N Fonctionnement ON lorsque le résultat est 0. OFF dans tous les autres cas. ON lorsque le bit le plus à gauche du résultat est 1. OFF dans tous les autres cas. Lorsque *(420) est exécutée, le drapeau d'erreur se met sur OFF. Si, à la suite de la multiplication, le contenu de R est 0000 hex, le drapeau d'égalité se met sur ON. Si, à la suite de la multiplication, le contenu du bit le plus à gauche de R+1 et R est 1, le drapeau négatif se met sur ON. Exemples Si CIO 000000 est ON dans l'exemple suivant, D00100 et D00110 sont multipliés comme valeurs hexadécimales signées à 4 chiffres et le résultat est placé dans D00120. 3-11-18 DOUBLE SIGNED BINARY MULTIPLY : *L(421) Objet Symbole du schéma contact Multiplie 8 chiffres de données hexadécimales signées et/ou des constantes. *L(421) Md Md: 1er mot multiplicande Mr Mr: 1er mot multiplicateur R R: 1er mot de résultat Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Spécifications de l’opérande Zones de proZones de programmes de bloc grammes de pas OK OK Sous-programmes OK Zone Zone CIO Md CIO 0000 à CIO 6142 Zone Travail Zone Bit de maintien Zone Bit auxiliaire W000 à W510 H000 à H510 A000 à A958 Mr *L(421) @*L(421) Non prise en charge. Non prise en charge. Tâches d'interruption OK R CIO 0000 à CIO 6140 W000 à W508 H000 à H508 A448 à A956 445 Chapitre 3-11 Instructions mathématiques à symboles Zone Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque Md T0000 à T4094 C0000 à C4094 D00000 à D32766 E00000 à E32766 En_00000 à En_32766 (n = 0 à C) Adresses DM/EM indirectes en binaire @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) #00000000 à #FFFFFFFF (binaire) Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index Description Mr R T0000 à T4092 C0000 à C4092 D00000 à D32764 E00000 à E32764 En_00000 à En_32764 (n = 0 à C) --- ----,IR0 à ,IR15 –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 *L(421) multiplie les valeurs binaires signées dans Md et Md+1 et Mr et Mr+1, et place le résultat dans R, R+1, R+2 et R+3. × R +3 R +2 Md + 1 Md (binaire signé) Mr + 1 Mr (binaire signé) R+1 R (binaire signé) Drapeaux Précautions Nom Drapeau d'erreur Drapeau d'égalité Etiquette ER OFF Drapeau négatif N = Fonctionnement ON lorsque le résultat est 0. OFF dans tous les autres cas. ON lorsque le bit le plus à gauche du résultat est 1. OFF dans tous les autres cas. Lorsque *L(421) est exécutée, le drapeau d'erreur se met sur OFF. Si, à la suite de la multiplication, le contenu de R, R+1, R+2, R+3 est 0000 hex, le drapeau d'égalité se met sur ON. Si, à la suite de la multiplication, le contenu du bit le plus à gauche de R+1 est 1, le drapeau négatif se met sur ON. 446 Chapitre 3-11 Instructions mathématiques à symboles Exemples Si CIO 000000 est ON dans l'exemple suivant, D00100, D00110, D00111 et D00110 sont multipliés comme valeurs hexadécimales signées à 8 chiffres et le résultat est placé dans D00121 et D00120. 3-11-19 UNSIGNED BINARY MULTIPLY : *U(422) Objet Symbole du schéma contact Multiplie 4 chiffres de données hexadécimales non signées et/ou des constantes. *U(422) Md Md: Mot multiplicande Mr Mr: Mot multiplicateur R R: Mot de résultat Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Spécifications de l’opérande Zones de proZones de programmes de bloc grammes de pas OK OK Sous-programmes OK Zone Zone CIO Md CIO 0000 à CIO 6143 Mr Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque W000 à W511 H000 à H511 A000 à A959 T0000 à T4095 C0000 à C4095 D00000 à D32767 E00000 à E32767 En_00000 à En_32767 (n = 0 à C) Adresses DM/EM indirectes en binaire @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *U(422) @*U(422) Non prise en charge. Non prise en charge. Tâches d'interruption OK R CIO 0000 à CIO 6142 W000 à W510 H000 à H510 A448 à A958 T0000 à T4094 C0000 à C4094 D00000 à D32766 E00000 à E32766 En_00000 à En_32766 (n = 0 à C) 447 Chapitre 3-11 Instructions mathématiques à symboles Zone Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index Description Md Mr *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_ 32767 (n = 0 à C) #0000 à #FFFF --(binaire) DR0 à DR15 ----,IR0 à ,IR15 –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 R *U(420) multiplie les valeurs binaires dans Md et Mr, et place le résultat dans R, R+1. Md (binaire non signé) × Mr (binaire non signé) R +1 R (binaire non signé) Drapeaux Précautions Nom Drapeau d'erreur Drapeau d'égalité Etiquette ER OFF Drapeau négatif N = Fonctionnement ON lorsque le résultat est 0. OFF dans tous les autres cas. ON lorsque le bit le plus à gauche du résultat est 1. OFF dans tous les autres cas. Lorsque *U(422) est exécutée, le drapeau d'erreur se met sur OFF. Si, à la suite de la multiplication, le contenu de R, R+1 est 0000 hex, le drapeau d'égalité se met sur ON. Si, à la suite de la multiplication, le contenu du bit le plus à gauche de R+1 est 1, le drapeau négatif se met sur ON. Exemples 448 Si CIO 000000 est ON dans l'exemple suivant, D00100 et D00110 sont multipliés comme valeurs binaires non signées à 4 chiffres et le résultat est placé dans D00121 et D00120. Chapitre 3-11 Instructions mathématiques à symboles 3-11-20 DOUBLE UNSIGNED BINARY MULTIPLY : *UL(423) Objet Symbole du schéma contact Multiplie 8 chiffres de données hexadécimales non signées et/ou des constantes. *UL(423) Md Md: 1er mot multiplicande Mr Mr: 1er mot multiplicateur R R: 1er mot de résultat Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Spécifications de l’opérande Zones de proZones de programmes de bloc grammes de pas OK OK Sous-programmes OK Md CIO 0000 à CIO 6142 Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque W000 à W510 H000 à H510 A000 à A958 T0000 à T4094 C0000 à C4094 D00000 à D32766 E00000 à E32766 En_00000 à En_32766 (n = 0 à C) Adresses DM/EM indirectes en binaire @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) #00000000 à #FFFFFFFF (binaire) --- Constantes Registres de données @*UL(423) Non prise en charge. Non prise en charge. Zone Zone CIO Adresses DM/EM indirectes en BCD *UL(423) Mr Tâches d'interruption OK R CIO 0000 à CIO 6140 W000 à W508 H000 à H508 A448 à A956 T0000 à T4092 C0000 à C4092 D00000 à D32764 E00000 à E32764 En_00000 à En_32764 (n = 0 à C) --- 449 Chapitre 3-11 Instructions mathématiques à symboles Zone Registres d'index Adressage indirect à l’aide de registres d’index Description Md Mr --,IR0 à ,IR15 –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 R *UL(423) multiplie les valeurs binaires non signées dans Md et Md+1 et Mr et Mr+1, et place le résultat dans R, R+1, R+2 et R+3. × R +3 R +2 Md + 1 Md (binaire non signé) Mr + 1 Mr (binaire non signé) R+1 R (binaire non signé) Drapeaux Précautions Nom Drapeau d'erreur Drapeau d'égalité Etiquette ER OFF Fonctionnement = ON lorsque le résultat est 0. OFF dans tous les autres cas. Drapeau négatif N ON lorsque le bit le plus à gauche du résultat est 1. OFF dans tous les autres cas. Lorsque *UL(423) est exécutée, le drapeau d'erreur se met sur OFF. Si, à la suite de la multiplication, le contenu de R, R+1, R+2, R+3 est 0000 hex, le drapeau d'égalité se met sur ON. Si, à la suite de la multiplication, le contenu du bit le plus à gauche de R+3 est 1, le drapeau négatif se met sur ON. Exemples Si CIO 000000 est ON dans l'exemple suivant, D00100, D00110, D00111 et D00110 sont multipliés comme valeurs binaires non signées à 8 chiffres et le résultat est placé dans D00123, D00122, D00121 et D00120. 3-11-21 BCD MULTIPLY : *B(424) Objet Symbole du schéma contact 450 Multiplie 4 chiffres (mot unique) de données BCD et/ou des constantes. *B(424) Md Md: Mot multiplicande Mr Mr: Mot multiplicateur R R: Mot de résultat Chapitre 3-11 Instructions mathématiques à symboles Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Spécifications de l’opérande Zones de proZones de programmes de bloc grammes de pas OK OK OK Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque W000 à W511 H000 à H511 A000 à A959 T0000 à T4095 C0000 à C4095 D00000 à D32767 E00000 à E32767 En_00000 à En_32767 (n = 0 à C) Adresses DM/EM indirectes en binaire @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) #0000 à #9999 (BCD) DR0 à DR15 --- Registres de données Registres d'index Adressage indirect à l’aide de registres d’index Description Sous-programmes Md CIO 0000 à CIO 6143 Constantes @*B(424) Non prise en charge. Non prise en charge. Zone Zone CIO Adresses DM/EM indirectes en BCD *B(424) Mr Tâches d'interruption OK R CIO 0000 à CIO 6142 W000 à W510 H000 à H510 A448 à A958 T0000 à T4094 C0000 à C4094 D00000 à D32766 E00000 à E32766 En_00000 à En_32766 (n = 0 à C) ----- ,IR0 à ,IR15 –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 *B(424) multiplie le contenu BCD de Md et Mr, et place le résultat dans R, R+1. Md (BCD) × Mr (BCD) R +1 R (BCD) 451 Chapitre 3-11 Instructions mathématiques à symboles Drapeaux Nom Drapeau d'erreur Etiquette Fonctionnement ER ON si Md n'est pas de type BCD. ON si Mr n'est pas de type BCD. OFF dans tous les autres cas. = ON lorsque le résultat est 0. OFF dans tous les autres cas. Drapeau d'égalité Précautions Si Md et/ou Mr n'est pas de type BCD, une erreur est générée et le drapeau d'erreur se met sur ON. Si, à la suite de la multiplication, le contenu de R, R+1 est 0000 hex, le drapeau d'égalité se met sur ON. Exemples Si CIO 000000 est ON dans l'exemple suivant, D00100 et D00110 sont multipliés comme valeurs BCD à 4 chiffres et le résultat est placé dans D00121 et D00120. 3-11-22 DOUBLE BCD MULTIPLY : *BL(425) Objet Symbole du schéma contact Multiplie 8 chiffres (mot double) de données BCD et/ou des constantes. *BL(425) Md Md: 1er mot multiplicande Mr Mr: 1er mot multiplicateur R R: 1er mot de résultat Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Spécifications de l’opérande 452 Zones de proZones de programmes de bloc grammes de pas OK OK Zone Zone CIO Sous-programmes OK Md CIO 0000 à CIO 6142 Mr *BL(425) @*BL(425) Non prise en charge. Non prise en charge. Tâches d'interruption OK Zone Travail W000 à W510 R CIO 0000 à CIO 6140 W000 à W508 Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur H000 à H510 A000 à A958 T0000 à T4094 H000 à H508 A448 à A956 T0000 à T4092 Chapitre 3-11 Instructions mathématiques à symboles Zone Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque Md C0000 à C4094 D00000 à D32766 E00000 à E32766 En_00000 à En_32766 (n = 0 à C) Adresses DM/EM indirectes en binaire @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) #00000000 à #99999999 (BCD) --- Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index Description Mr R C0000 à C4092 D00000 à D32764 E00000 à E32764 En_00000 à En_32764 (n = 0 à C) --- --,IR0 à ,IR15 –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 *BL(425) multiplie les valeurs BCD dans Md et Md+1 et Mr et Mr+1, et place le résultat dans R, R+1, R+2 et R+3. × R+3 R+2 Md + 1 Md (BCD) Mr + 1 Mr (BCD) R+1 R (BCD) Drapeaux Nom Drapeau d'erreur Drapeau d'égalité Précautions Etiquette Fonctionnement ER ON si Md et/ou Md+1 n'est pas de type BCD. ON si Mr et/ou Mr+1 n'est pas de type BCD. OFF dans tous les autres cas. = ON lorsque le résultat est 0. OFF dans tous les autres cas. Si Md, Md+1 et/ou Mr, Mr+1 n'est pas de type BCD, une erreur est générée et le drapeau d'erreur se met sur ON. Si, à la suite de la multiplication, le contenu de R, R+1, R+2, R+3 est 00000000 hex, le drapeau d'égalité se met sur ON. 453 Chapitre 3-11 Instructions mathématiques à symboles Exemples Si CIO 000000 est ON dans l'exemple suivant, D00101, D00100, D00111 et D00110 sont multipliés comme valeurs BCD non signées à 8 chiffres et le résultat est placé dans D00123, D00122, D00121 et D00120. 3-11-23 SIGNED BINARY DIVIDE : /(430) Objet Divise 4 chiffres (mot unique) de données hexadécimales signées et/ou des constantes. Symbole du schéma contact /(430) Dd Dd: Mot dividende Dr Dr: Mot diviseur R R: Mot de résultat Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Spécifications de l’opérande 454 Zones de proZones de programmes de bloc grammes de pas OK OK Sous-programmes OK Zone Zone CIO Dd CIO 0000 à CIO 6143 Dr Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque W000 à W511 H000 à H511 A000 à A959 T0000 à T4095 C0000 à C4095 D00000 à D32767 E00000 à E32767 En_00000 à En_32767 (n = 0 à C) Adresses DM/EM indirectes en binaire @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) /(430) @/(430) Non prise en charge. Non prise en charge. Tâches d'interruption OK R CIO 0000 à CIO 6142 W000 à W510 H000 à H510 A448 à A958 T0000 à T4094 C0000 à C4094 D00000 à D32766 E00000 à E32766 En_00000 à En_32766 (n = 0 à C) Chapitre 3-11 Instructions mathématiques à symboles Zone Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index Description Dd Dr *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) #0000 à #FFFF #0001 à #FFFF --(binaire) (binaire) DR0 à DR15 ----,IR0 à ,IR15 –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 R /(430) divise les valeurs binaires signées (16 bits) dans Dd par celles dans Dr, et place le résultat dans R, R+1. Le quotient est placé dans R et le reste dans R+1. Dd (binaire signé) ÷ Dr (binaire signé) R +1 R (binaire signé) Reste Quotient Drapeaux Nom Drapeau d'erreur Drapeau d'égalité Drapeau négatif Précautions Etiquette Fonctionnement ER ON lorsque le résultat est 0. OFF dans tous les autres cas. = ON lorsque le résultat de la divisuion, R, est 0. OFF dans tous les autres cas. N ON lorsque le bit le plus à gauche de R est 1. OFF dans tous les autres cas. Si le contenu de Dr est 0, une erreur est générée et le drapeau d'erreur se met sur ON. Si, à la suite de la division, le contenu de R est 0000 hex, le drapeau d'égalité se met sur ON. Si, à la suite de la division, le contenu du bit le plus à gauche de R est 1, le drapeau négatif se met sur ON. Exemples Si CIO 000000 est ON dans l'exemple suivant, D00100 est divisé par D00110 comme valeurs binaires signées à 4 chiffres, et le quotient est placé dans D00120 et le reste dans D00121. 455 Chapitre 3-11 Instructions mathématiques à symboles 3-11-24 DOUBLE SIGNED BINARY DIVIDE : /L(431) Objet Symbole du schéma contact Divise 8 chiffres (mot double) de données hexadécimales signées et/ou des constantes. /L(431) Dd Dd: 1er mot dividende Dr Dr: 1er mot diviseur R R: 1er mot de résultat Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Spécifications de l’opérande Zones de proZones de programmes de bloc grammes de pas OK OK OK Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque W000 à W510 H000 à H510 A000 à A958 T0000 à T4094 C0000 à C4094 D00000 à D32766 E00000 à E32766 En_00000 à En_32766 (n = 0 à C) Adresses DM/EM indirectes en binaire @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) #00000000 à #00000001 à #FFFFFFFF #FFFFFFFF (binaire) (binaire) --- Registres de données 456 Sous-programmes Dd CIO 0000 à CIO 6142 Constantes @/L(431) Non prise en charge. Non prise en charge. Zone Zone CIO Adresses DM/EM indirectes en BCD /L(431) Dr Tâches d'interruption OK R CIO 0000 à CIO 6140 W000 à W508 H000 à H508 A448 à A956 T0000 à T4092 C0000 à C4092 D00000 à D32764 E00000 à E32764 En_00000 à En_32764 (n = 0 à C) --- Chapitre 3-11 Instructions mathématiques à symboles Zone Registres d'index Adressage indirect à l’aide de registres d’index Description Dd Dr --,IR0 à ,IR15 –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 R /L(431) divise les valeurs binaires signées dans Dd et Dd+1 par celles dans Dr et Dr+1, et place le résultat dans R, R+1, R+2 et R+3. Le quotient est placé dans R et R+1, et le reste est placé dans R+2 et R+3. ÷ R+3 Reste R+2 Dd + 1 Dd (binaire signé) Dr + 1 Dr (binaire signé) R+1 R (binaire signé) Quotient Drapeaux Nom Drapeau d'erreur Drapeau d'égalité Drapeau négatif Précautions Etiquette Fonctionnement ER ON lorsque le résultat est 0. OFF dans tous les autres cas. = ON lorsque le résultat de la division, R+1, R est 0. OFF dans tous les autres cas. N ON lorsque le bit le plus à gauche de R+1, R est 1. OFF dans tous les autres cas. Lorsque le reste du résultat, R+3, R+2 est 0, le drapeau d'erreur se met sur ON. Si, à la suite de la division, le contenu de R+1, R est 00000000 hex, le drapeau d'égalité se met sur ON. Si, à la suite de la division, le contenu du bit le plus à gauche de R+1, R est 1, le drapeau négatif se met sur ON. Exemples Si CIO 000000 est ON dans l'exemple suivant, D00101 et D00100 sont divisés par D00111 et D00110 comme valeurs hexadécimales signées à 8 chiffres, et le quotient est placé dans D00121 et D00120 et le reste dans D00123 et D00122. 457 Chapitre 3-11 Instructions mathématiques à symboles 3-11-25 UNSIGNED BINARY DIVIDE : /U(432) Objet Symbole du schéma contact Divise 4 chiffres (mot unique) de données hexadécimales non signées et/ou des constantes. /U(432) Dd Dd: Mot dividende Dr Dr: Mot diviseur R R: Mot de résultat Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Spécifications de l’opérande Zones de proZones de programmes de bloc grammes de pas OK OK OK Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque W000 à W511 H000 à H511 A000 à A959 T0000 à T4095 C0000 à C4095 D00000 à D32767 E00000 à E32767 En_00000 à En_32767 (n = 0 à C) Adresses DM/EM indirectes en binaire @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) #0000 à #FFFF #0001 à #FFFF (binaire) (binaire) DR0 à 15 Registres de données 458 Sous-programmes Dd CIO 0000 à CIO 6143 Constantes @/U(432) Non prise en charge. Non prise en charge. Zone Zone CIO Adresses DM/EM indirectes en BCD /U(432) Dr Tâches d'interruption OK R CIO 0000 à CIO 6142 W000 à W510 H000 à H510 A448 à A958 T0000 à T4094 C0000 à C4094 D00000 à D32766 E00000 à E32766 En_00000 à En_32766 (n = 0 à C) ----- Chapitre 3-11 Instructions mathématiques à symboles Zone Registres d'index Adressage indirect à l’aide de registres d’index Description Dd Dr --,IR0 à ,IR15 –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 R /U(432) divise les valeurs binaires non signées dans Dd par celles dans Dr, et place le quotient dans R et le reste dans R+1. ÷ R +1 Reste Dd (binaire non signé) Dr (binaire non signé) R (binaire non signé) Quotient Drapeaux Nom Drapeau d'erreur Drapeau d'égalité Drapeau négatif Précautions Etiquette Fonctionnement ER ON lorsque le résultat est 0. OFF dans tous les autres cas. = ON lorsque le résultat de la division, R est 0. OFF dans tous les autres cas. N ON lorsque le bit le plus à gauche de R est 1. OFF dans tous les autres cas. Si, à la suite de la division, le contenu de R+1 est 0, le drapeau d'erreur se met sur ON. Si, à la suite de la division, le contenu de R est 0000 hex, le drapeau d'égalité se met sur ON. Si, à la suite de la division, le contenu du bit le plus à gauche de R est 1, le drapeau négatif se met sur ON. Exemples Si CIO 000000 est ON dans l'exemple suivant, D00100 est divisé par D00110 comme valeurs binaires non signées à 4 chiffres, et le quotient est placé dans D00120 et le reste dans D00121. 459 Chapitre 3-11 Instructions mathématiques à symboles 3-11-26 DOUBLE UNSIGNED BINARY DIVIDE : /UL(433) Objet Symbole du schéma contact Divise 8 chiffres (mot double) de données hexadécimales non signées et/ou des constantes. /UL(433) Dd Dd: 1er mot dividende Dr Dr: 1er mot diviseur R R: 1er mot de résultat Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Spécifications de l’opérande Zones de proZones de programmes de bloc grammes de pas OK OK OK Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque W000 à W510 H000 à H510 A000 à A958 T0000 à T4094 C0000 à C4094 D00000 à D32766 E00000 à E32766 En_00000 à En_32766 (n = 0 à C) Adresses DM/EM indirectes en binaire @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) #00000000 à #00000001 à #FFFFFFFF #FFFFFFFF (binaire) (binaire) --- Registres de données 460 Sous-programmes Dd CIO 0000 à CIO 6142 Constantes @/UL(433) Non prise en charge. Non prise en charge. Zone Zone CIO Adresses DM/EM indirectes en BCD /UL(433) Dr Tâches d'interruption OK R CIO 0000 à CIO 6140 W000 à W508 H000 à H508 A448 à A956 T0000 à T4092 C0000 à C4092 D00000 à D32764 E00000 à E32764 En_00000 à En_32764 (n = 0 à C) --- Chapitre 3-11 Instructions mathématiques à symboles Zone Registres d'index Adressage indirect à l’aide de registres d’index Description Dd Dr --,IR0 à ,IR15 –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 R /U(433) divise les valeurs binaires non signées dans Dd et Dd+1 par celles dans Dr et Dr+1, et place le quotient dans R, R+1 et le reste dans R+2 et R+3. ÷ R+3 Reste R+2 Dd + 1 Dd (binaire non signé) Dr + 1 Dr (binaire non signé) R+1 R (binaire non signé) Quotient Drapeaux Nom Drapeau d'erreur Drapeau d'égalité Drapeau négatif Précautions Etiquette Fonctionnement ER ON lorsque le résultat est 0. OFF dans tous les autres cas. = ON lorsque le résultat de la division, R+1, R est 0. OFF dans tous les autres cas. N ON lorsque le bit le plus à gauche de R+1, R est 1. OFF dans tous les autres cas. Si le contenu de Dr, Dr+1 est 0, le drapeau d'erreur se met sur ON. Si, à la suite de la division, le contenu de R, R+1 est 0000 hex, le drapeau d'égalité se met sur ON. Si, à la suite de la division, le contenu du bit le plus à gauche de R+1 est 1, le drapeau négatif se met sur ON. Exemples Si CIO 000000 est ON dans l'exemple suivant, D00100 et D00101 sont divisés par D00111 et D00110 comme valeurs hexadécimales non signées à 8 chiffres, et le quotient est placé dans D00121 et D00120 et le reste dans D00123 et D00122. 461 Chapitre 3-11 Instructions mathématiques à symboles 3-11-27 BCD DIVIDE : /B(434) Objet Symbole du schéma contact Divise 4 chiffres (mot unique) de données BCD et/ou des constantes. /B(434) Dd Dd: Mot dividende Dr Dr: Mot diviseur R R: Mot de résultat Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Spécifications de l’opérande Zones de proZones de programmes de bloc grammes de pas OK OK OK Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque W000 à W511 H000 à H511 A000 à A959 T0000 à T4095 C0000 à C4095 D00000 à D32767 E00000 à E32767 En_00000 à En_32767 (n = 0 à C) Adresses DM/EM indirectes en binaire @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) #0000 à #9999 #0001 à #9999 (BCD) (BCD) DR0 à DR15 Registres de données 462 Sous-programmes Dd CIO 0000 à CIO 6143 Constantes @/B(434) Non prise en charge. Non prise en charge. Zone Zone CIO Adresses DM/EM indirectes en BCD /B(434) Dr Tâches d'interruption OK R CIO 0000 à CIO 6142 W000 à W510 H000 à H510 A448 à A958 T0000 à T4094 C0000 à C4094 D00000 à D32766 E00000 à E32766 En_00000 à En_32766 (n = 0 à C) ----- Chapitre 3-11 Instructions mathématiques à symboles Zone Registres d'index Adressage indirect à l’aide de registres d’index Description Dd Dr --,IR0 à ,IR15 –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 R /B(434) divise le contenu BCD de Dd par celui de Dr, et place le quotient dans R et le reste dans R+1. Dd (BCD) ÷ Dr (BCD) R +1 R (BCD) Reste Quotient Drapeaux Nom Drapeau d'erreur Drapeau d'égalité Précautions Etiquette Fonctionnement ER ON si Dd n'est pas de type BCD. ON si Dr n'est pas de type BCD. ON lorsque le reste est 0. OFF dans tous les autres cas. = ON lorsque R égale 0. OFF dans tous les autres cas. Si Dd ou Dr ne sont pas de type BCD ou si le reste (R+1) égale 0, une erreur est générée et le drapeau d'erreur se met sur ON. Si, à la suite de la division, le contenu de R est 0000 hex, le drapeau d'égalité se met sur ON. Si, à la suite de la division, le bit le plus à gauche de R est 1, le drapeau négatif se met sur ON. Exemples Si CIO 000000 est ON dans l'exemple suivant, D00100 est divisé par D00110 comme valeurs BCD à 4 chiffres, et le quotient est placé dans D00120 et le reste dans D00121. 463 Chapitre 3-11 Instructions mathématiques à symboles 3-11-28 DOUBLE BCD DIVIDE : /BL(435) Objet Symbole du schéma contact Divise 8 chiffres (mot double) de données BCD et/ou des constantes. /BL(435) Dd Dd: 1er mot dividende Dr Dr: 1er mot diviseur R R: 1er mot de résultat Variations Zones de programmes applicables Spécifications de l’opérande Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant /BL(435) Spécification de rafraîchissement immédiat Non prise en charge. Zones de proZones de programmes de bloc grammes de pas OK OK Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque W000 à W510 H000 à H510 A000 à A958 T0000 à T4094 C0000 à C4094 D00000 à D32766 E00000 à E32766 En_00000 à En_32766 (n = 0 à C) Adresses DM/EM indirectes en binaire @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) #00000000 à #00000001 à #99999999 #99999999 (BCD) (BCD) --- Registres de données 464 OK Dd CIO 0000 à CIO 6142 Constantes Non prise en charge. Sous-programmes Zone Zone CIO Adresses DM/EM indirectes en BCD @/BL(435) Dr Tâches d'interruption OK R CIO 0000 à CIO 6140 W000 à W508 H000 à H508 A448 à A956 T0000 à T4092 C0000 à C4092 D00000 à D32764 E00000 à E32764 En_00000 à En_32764 (n = 0 à C) --- Chapitre 3-12 Instructions de conversion Zone Registres d'index Adressage indirect à l’aide de registres d’index Description Dd Dr --,IR0 à ,IR15 –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 R /BL(435) divise les valeurs BCD dans Dd et Dd+1 par celles dans Dr et Dr+1, et place le quotient dans R, R+1 et le reste dans R+2, R+3. ÷ R+3 R+2 Dd + 1 Dd (BCD) Dr + 1 Dr (BCD) R+1 R (BCD) Quotient Reste Drapeaux Nom Drapeau d'erreur Drapeau d'égalité Précautions Etiquette Fonctionnement ER ON si Dd, Dd+1 n'est pas de type BCD. ON si Dr, Dr +1 n'est pas de type BCD. OFF dans tous les autres cas. = ON lorsque le résultat est 0. OFF dans tous les autres cas. Si Dd, Dd+1 et/ou Dr, Dr+1 ne sont pas de type BCD ou si le contenu de Dr, Dr+1 égale 0, une erreur est générée et le drapeau d'erreur se met sur ON. Si, à la suite de la division, le contenu de R, R+1 est 00000000 hex, le drapeau d'égalité se met sur ON. Exemples Si CIO 000000 est ON dans l'exemple suivant, D00101 et D00100 sont divisés par D00111 et D00110 comme valeurs BCD à 8 chiffres, et le quotient est placé dans D00121 et D00120 et le reste dans D00123 et D00122. 3-12 Instructions de conversion Cette section décrit les instructions utilisées pour la conversion des données. Instruction BCD-TO-BINARY DOUBLE BCD-TO-DOUBLE BINARY BINARY-TO-BCD Mnémonique BIN BINL Code fonction 023 058 Page 466 467 BCD 024 469 DOUBLE BINARY-TO-DOUBLE BCD 2'S COMPLEMENT DOUBLE 2'S COMPLEMENT BCDL 059 470 NEG NEGL 160 161 472 474 465 Chapitre 3-12 Instructions de conversion Instruction 16-BIT TO 32-BIT SIGNED BINARY DATA DECODER DATA ENCODER ASCII CONVERT ASCII TO HEX COLUMN TO LINE LINE TO COLUMN SIGNED BCD-TO-BINARY DOUBLE SIGNED BCD-TOBINARY SIGNED BINARY-TO-BCD DOUBLE SIGNED BINARY-TOBCD GRAY CODE CONVERSION Mnémonique SIGN Code fonction 600 Page 476 MLPX DMPX ASC HEX LINE COLM BINS BISL 076 077 086 162 063 064 470 472 477 482 486 490 494 496 499 502 BCDS BDSL 471 473 505 507 GRY 474 511 3-12-1 BCD-TO-BINARY : BIN(023) Objet Symbole du schéma contact Convertit des données BCD en données binaires. BIN(023) S S: Mot source R R: Mot de résultat Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Spécifications de l’opérande Zones de programmes de bloc OK Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en binaire 466 Zones de programmes de pas OK BIN(023) @BIN(023) Non prise en charge Non prise en charge SousTâches programmes d'interruption OK OK S R CIO 0000 à CIO 6143 W000 à W511 H000 à H511 A000 à A959 A448 à A959 T0000 à T4095 C0000 à C4095 D00000 à D32767 E00000 à E32767 En_00000 à En_32767 (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) Chapitre 3-12 Instructions de conversion Zone Adresses DM/EM indirectes en BCD S R *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) --DR0 à DR15 --,IR0 à ,IR15 –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index Description BIN(023) convertit les données BCD dans S en données binaires et écrit le résultat dans R. R (BCD) (BIN) Drapeaux Nom Drapeau d'erreur Etiquette Fonctionnement ER ON si le contenu de S n'est pas de type BCD. OFF dans tous les autres cas. = ON lorsque le résultat est 0000. OFF dans tous les autres cas. N OFF Drapeau d'égalité Drapeau négatif Exemple Le schéma suivant montre un exemple de conversion BCD en binaire. R ×10 ×10 ×10 ×10 3 2 1 0 ×163 ×162 ×161 ×160 3-12-2 DOUBLE BCD-TO-DOUBLE BINARY : BINL(058) Objet Symbole du schéma contact Convertit des données BCD à 8 chiffres en données hexadécimales à 8 chiffres (données binaires 32 bits). BINL(058) S S: Premier mot source R R: Premier mot de résultat Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Zones de programmes de bloc OK Zones de programmes de pas OK BINL(058) @BINL(058) Non prise en charge Non prise en charge SousTâches programmes d'interruption OK OK 467 Chapitre 3-12 Instructions de conversion Spécifications de l’opérande Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index Description S R CIO 0000 à CIO 6142 W000 à W510 H000 à H510 A000 à A958 A448 à A958 T0000 à T4094 C0000 à C4094 D00000 à D32766 E00000 à E32766 En_00000 à En_32766 (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) ------,IR0 à ,IR15 –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 BINL(058) convertit les données BCD à 8 chiffres dans S et S+1 en données hexadécimales à 8 chiffres (données binaires 32 bits) et écrit le résultat dans R et R+1. S+1 (BCD) S (BCD) R+1 R (BIN) (BIN) Drapeaux Nom Drapeau d'erreur Etiquette Fonctionnement ER ON si le contenu de S+1, S n'est pas de type BCD. OFF dans tous les autres cas. Drapeau = ON lorsque le résultat est 0. d'égalité OFF dans tous les autres cas. Drapeau négatif N OFF Exemples Le schéma suivant montre un exemple de conversion BCD en binaire à 8 chiffres. R+1 ×107×106×105×104×103×102×101×100 R ×167×166×165×164×163 ×162×161×160 Si CIO 000000 est ON dans l'exemple suivant, la valeur BCD à 8 chiffres dans CIO 0010 et CIO 0011 est convertie en valeur hexadécimale et enregistrée dans D00200 et D00201. 468 Chapitre 3-12 Instructions de conversion S+1 : CIO 0011 0 0 2 S : CIO 0010 0 x107 x106 x105 x104 0 x167 0 x166 0 0 5 200050=3X164+13X162+7X161+2X160 0 x103 x102 x101 x100 0 3 0 D 7 2 x165 x164 x163 x162 x161 x160 R+1 : D00201 R : D00200 3-12-3 BINARY-TO-BCD : BCD(024) Objet Symbole du schéma contact Convertit un mot de données binaires en un mot de données BCD. BCD(024) S S: Mot source R R: Mot de résultat Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Opérandes Zones de programmes de bloc OK Zones de programmes de pas OK BCD(024) @BCD(024) Non prise en charge Non prise en charge SousTâches programmes d'interruption OK OK S : Mot source S doit être compris entre 0000 et 270F hexadécimal (0000 et 9999 décimal). Spécifications de l’opérande Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque S CIO 0000 à CIO 6143 W000 à W511 H000 à H511 A000 à A959 T0000 à T4095 C0000 à C4095 D00000 à D32767 E00000 à E32767 En_00000 à En_32767 (n = 0 à C) R A448 à A959 469 Chapitre 3-12 Instructions de conversion Zone Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index Description S R @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) --DR0 à DR15 --,IR0 à ,IR15 –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 BCD(024) convertit les données binaires dans S en données BCD et écrit le résultat dans R. (BIN) R (BCD) Drapeaux Nom Drapeau d'erreur Etiquette Fonctionnement ER ON si le contenu de S dépasse 270F (9999 décimal). OFF dans tous les autres cas. = ON lorsque le résultat est 0000. OFF dans tous les autres cas. Drapeau d'égalité Précautions Le contenu de S ne doit pas dépasser 270F (9999 décimal). Exemple Le schéma suivant montre un exemple de conversion BCD en binaire. R ×163 ×162 ×161 ×160 ×103 ×102 ×101 ×100 3-12-4 DOUBLE BINARY-TO-DOUBLE BCD : BCDL(059) Objet Symbole du schéma contact Convertit des données hexadécimales à 8 chiffres (données binaires 32 bits) en données BCD à 8 chiffres. BCDL(059) S S: Premier mot source R R: Premier mot de résultat Variations Variations Exécutée à chaque cycle pour la condition ON BCDL(059) Exécutée une fois pour la différentiation sur @BCDL(059) front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat 470 Non prise en charge Non prise en charge Chapitre 3-12 Instructions de conversion Zones de programmes applicables Opérandes Zones de programmes de bloc OK Zones de programmes de pas OK SousTâches programmes d'interruption OK OK S : Premier mot source Le contenu de S+1 et S doit être compris entre 0000 0000 et 05F5 E0FF hexadécimal (0000 0000 et 9999 9999 décimal). Spécifications de l’opérande Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index Description S R CIO 0000 à CIO 6142 W000 à W510 H000 à H510 A000 à A958 A448 à A958 T0000 à T4094 C0000 à C4094 D00000 à D32766 E00000 à E32766 En_00000 à En_32766 (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) ------,IR0 à ,IR15 –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 BCDL(059) convertit les données hexadécimales à 8 chiffres (données binaires 32 bits) dans S et S+1 en données BCD à 8 chiffres (données binaires 32 bits) et écrit le résultat dans R et R+1. S+1 (BCD) S (BCD) R+1 (BIN) R (BIN) Drapeaux Nom Drapeau d'erreur Drapeau d'égalité Précautions Etiquette Fonctionnement ER ON si le contenu de S et S+1 dépasse 05F5 E0FF (9999 9999 décimal). OFF dans tous les autres cas. = ON lorsque le résultat est 0. OFF dans tous les autres cas. Le contenu de S+1 et S ne doit pas dépasser 05F5 E0FF (9999 9999 décimal). 471 Chapitre 3-12 Instructions de conversion Exemples Le schéma suivant montre un exemple de conversion BCD en binaire à 8 chiffres. R+1 ×167×166×165×164 ×163×162×161×160 R ×107×106×105×104×103 ×102×101×100 Si CIO 000000 est ON dans l'exemple suivant, la valeur hexadécimale dans CIO 0011 et CIO 0010 est convertie en valeur BCD et enregistrée dans D00200 et D00201. S+1 :CIO 0011 MBS 0 0 x167 x166 2 x165 S :CIO 0010 D 3 2 0 A x164 x163 x162 x161 x160 LSB 2X165 +13X164+3X163+2X162+10=2961930 R+1 :D00101 MBS R :D00100 0 2 9 6 1 9 3 0 x107 x106 x105 x104 x103 x102 x101 x100 LSB 3-12-5 2’S COMPLEMENT : NEG(160) Objet Symbole du schéma contact Calcule le complément à 2 d'un mot de données hexadécimales. NEG(160) S S: Mot source R R: Mot de résultat Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Spécifications de l’opérande 472 Zones de programmes de bloc OK Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zones de programmes de pas OK S CIO 0000 à CIO 6143 W000 à W511 H000 à H511 A000 à A959 T0000 à T4095 C0000 à C4095 NEG(160) @NEG(160) Non prise en charge Non prise en charge SousTâches programmes d'interruption OK OK R A448 à A959 Chapitre 3-12 Instructions de conversion Zone Zone DM Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index Description S R D00000 à D32767 E00000 à E32767 En_00000 à En_32767 (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) #0000 à #FFFF --(binaire) DR0 à DR15 --,IR0 à ,IR15 –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 NEG(160) calcule le complément à 2 de S et écrit le résultat dans R. Le calcul du complément à 2 inverse l'état des bits dans S et ajoute 1. Complément à 2 (Complément + 1) (S) Remarque (R) Cette opération (inversion de l'état des bits et ajout de 1) équivaut à la soustraction du contenu de S de 0000. Drapeaux Remarque Nom Drapeau d'erreur Drapeau d'égalité Etiquette ER OFF Drapeau négatif N = Fonctionnement ON lorsque le résultat est 0000. OFF dans tous les autres cas. ON si le bit 15 du résultat est ON. OFF dans tous les autres cas. Le résultat pour 8000 hex est 8000 hex. 473 Chapitre 3-12 Instructions de conversion Exemple Si CIO 000000 est ON dans l'exemple suivant, NEG(160) calcule le complément à 2 du contenu de D00100 et écrit le résultat dans D00200. Calcul effectif Soustraction équivalente Inversion de l'état du bit −) Ajout de 1 3-12-6 DOUBLE 2’S COMPLEMENT : NEGL(161) Objet Symbole du schéma contact Calcule le complément à 2 de deux mots de données hexadécimales. NEGL(161) S S: Premier mot source R R: Premier mot de résultat Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Spécifications de l’opérande Zones de programmes de bloc OK Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en binaire 474 Zones de programmes de pas OK NEGL(161) @NEGL(161) Non prise en charge Non prise en charge SousTâches programmes d'interruption OK OK S R CIO 0000 à CIO 6142 W000 à W510 H000 à H510 A000 à A958 A448 à A958 T0000 à T4094 C0000 à C4094 D00000 à D32766 E00000 à E32766 En_00000 à En_32766 (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) Chapitre 3-12 Instructions de conversion Zone Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index Remarque Description S R *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) #00000000 à #FFFFFFFF --(binaire) ----,IR0 à ,IR15 –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 R et R+1 doivent être dans la même zone de données. NEGL(161) calcule le complément à 2 de S+1 et S et écrit le résultat dans R+1 et R. Le calcul du complément à 2 inverse l'état des bits dans S+1 et S et ajoute 1. Complément à 2 (Complément + 1) (S+1, S) Remarque (R+1, R) Cette opération (inversion de l'état des bits et ajout de 1) équivaut à la soustraction du contenu de S+1 et S de 0000 0000. Drapeaux Remarque Exemple Nom Drapeau d'erreur Drapeau d'égalité Etiquette ER OFF Drapeau négatif N = Fonctionnement ON lorsque le résultat est 0000 0000. OFF dans tous les autres cas. ON si le bit 15 de R+1 est ON. OFF dans tous les autres cas. Le résultat pour 8000 hex est 8000 hex. Si CIO 000000 est ON dans l'exemple suivant, NEGL(161) calcule le complément à 2 du contenu de D00101 et D00100 et écrit le résultat dans D00201 et D00200. Calcul effectif Soustraction équivalente Inversion de l'état des bits −) Ajout de 1 475 Chapitre 3-12 Instructions de conversion 3-12-7 16-BIT TO 32-BIT SIGNED BINARY : SIGN(600) Objet Développe une valeur binaire de 16 bits signée de façon à obtenir son équivalent 32 bits. Symbole du schéma contact SIGN(600) S S: Mot source R R: Premier mot de résultat Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Spécifications de l’opérande Zones de programmes de bloc OK Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index Remarque 476 Zones de programmes de pas OK SIGN(600) @SIGN(600) Non prise en charge Non prise en charge SousTâches programmes d'interruption OK OK S R CIO 0000 à CIO 6143 CIO 0000 à CIO 6142 W000 à W511 W000 à W510 H000 à H511 H000 à H510 A000 à A959 A448 à A958 T0000 à T4095 T0000 à T4094 C0000 à C4095 C0000 à C4094 D00000 à D32767 D00000 à D32766 E00000 à E32767 E00000 à E32766 En_00000 à En_32767 En_00000 à En_32766 (n = 0 à C) (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) #0000 à #FFFF --(binaire) DR0 à DR15 ----,IR0 à ,IR15 –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 R et R+1 doivent être dans la même zone de données. Chapitre 3-12 Instructions de conversion Description SIGN(600) convertit le nombre binaire 16 bits signé dans S en son équivalent binaire 32 bits signé et écrit le résultat dans R+1 et R. La conversion s'effectue en copiant le contenu de S dans R et en écrivant FFFF dans R+1 si le bit 15 de S est 1 ou en écrivant 0000 dans R+1 si le bit 15 de S est 0. Mot source (S) 1 Si le bit 15 de S est 1, FFFF est transféré dans R+1. Si le bit 15 de S est 0, 0000 est transféré dans R+1. 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 Le contenu de S est transféré "tel quel" dans R. 2nd mot de résultat (R+1) 1 0 1st mot de résultat (R) 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 Drapeaux Exemple Nom Drapeau d'erreur Drapeau d'égalité Etiquette ER OFF Drapeau négatif N = Fonctionnement ON lorsque le résultat est 0000 0000. OFF dans tous les autres cas. ON si le bit 15 de R+1 est ON. OFF dans tous les autres cas. Si CIO 000000 est ON dans l'exemple suivant, SIGN(600) convertit le contenu binaire 16 bits signé de D00100 (#8000 = –32 768 décimal) en son équivalent 32 bits (#FFFF 8000 = –32 768 décimal) et écrit le résultat dans D00201 et D00200. Exemple : 8000 hex. 3-12-8 DATA DECODER : MLPX(076) Objet Symbole du schéma contact Lit la valeur numérique dans le chiffre (ou l'octet) spécifié du mot source, met sur ON le bit correspondant dans le mot de résultat (ou la plage de 16 mots) et met sur OFF tous les autres bits dans le mot de résultat (ou la plage de 16 mots). MLPX(076) S S: Mot source C C: Mot de contrôle R R: Premier mot de résultat Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat MLPX(076) @MLPX(076) Non prise en charge Non prise en charge 477 Chapitre 3-12 Instructions de conversion Zones de programmes applicables Opérandes Zones de programmes de bloc OK Zones de programmes de pas OK SousTâches programmes d'interruption OK OK S : Mot source Les données du mot source indiquent l'emplacement du ou des bit(s) qui sera/seront mis sur ON. C : Mot de contrôle Le mot de contrôle détermine si MLPX(076) effectue une conversion 4 à 16 bits ou une conversion 8 à 256 bits, le nombre de chiffres ou d'octets à convertir et le chiffre ou octet de départ. Nombre de chiffres : 3 2 1 0 0 Détermine le premier chiffre/octet à convertir de 4 à 16 : 0 à 3 (chiffre 0 à 3) 8 à 256 : 0 ou 1 (octet 0 ou 1) Nombre de chiffres/octets à convertir 4 à 16 : 0 à 3 (1 à 4 chiffres) 8 à 256 : 0 ou 1 (1 ou 2 octets) Processus de conversion 0: 4 à 16 bits (chiffre à mot) 1: 8 à 256 bits (octet à plage de 16 mots) R : Premier mot de résultat Il peut y avoir entre 1 et 32 mots de résultat en fonction du type de conversion effectuée et du nombre de chiffres/octets convertis. Les mots de résultat doivent être dans la même zone de données. Spécifications de l’opérande Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données 478 S C CIO 0000 à CIO 6143 W000 à W511 H000 à H511 A000 à A959 T0000 à T4095 C0000 à C4095 D00000 à D32767 E00000 à E32767 En_00000 à En_32767 (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) --Valeurs spécifiées uniquement DR0 à DR15 R A448 à A959 ----- Chapitre 3-12 Instructions de conversion Zone Registres d'index Adressage indirect à l’aide de registres d’index Description S C --,IR0 à ,IR15 –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 R MLPX(076) peut effectuer des conversions 4 à 16 bits ou 8 à 256 bits. Mettez le chiffre le plus à gauche de C sur 0 pour spécifier la conversion 4 à 16 bits et sur 1 pour spécifier la conversion 8 à 256 bits. Conversion 4 à 16 bits Si le chiffre le plus à gauche de C est 0, MLPX(076) prend la valeur du chiffre spécifié dans S (0 à F) et met sur ON le bit correspondant dans le mot de résultat. Tous les autres bits du mot de résultat sont mis sur OFF. Il est possible de convertir jusque 4 chiffres. C l =1 (Conversion de 2 chiffres.) n=2 (commence au troisième chiffre.) Décodage de 4 à 16 bits (Le bit m de R est mis sur ON.) R R+1 Lorsque deux chiffres ou plus sont convertis, MLPX(076) lit les chiffres dans S de droite à gauche et englobe le chiffre le plus à droite après le chiffre le plus à gauche, si nécessaire. Le schéma ci-dessous indique quelques exemples de valeurs pour C et les conversions 4 à 16 bits qu'elles produisent. C :#0010 C :#0030 C :#0031 R R R R+1 R+1 R+2 R+1 R+2 R+3 R+3 Conversion 8 à 256 bits Si le chiffre le plus à gauche de C est 1, MLPX(076) prend la valeur du chiffre spécifié dans S (00 à FF) et met sur ON le bit correspondant dans la plage de 16 mots de résultat. Tous les autres bits des mots de résultat sont mis sur OFF. Il est possible de convertir jusque 2 octets. 479 Chapitre 3-12 Instructions de conversion C l =1 (Conversion de 2 octets.) n=1 (commence avec le deuxième octet.) Décodage de 8 à 256 bits (Le bit m de R à R+15 est mis sur ON.) R+1 16 R+14 R+15 R+16 R+17 R+30 R+31 Lorsque deux octets sont convertis, MLPX(076) lit les octets dans S de droite à gauche et englobe l'octet le plus à droite si l'octet le plus à gauche (octet 1) a été spécifié comme octet de départ. Le schéma ci-dessous indique quelques exemples de valeurs pour C et les conversions 8 à 256 bits qu'elles produisent. C : #1010 Chiffre 1 Chiffre 0 C : #1011 Chiffre 1 Chiffre 0 Drapeaux Nom Drapeau d'erreur Exemples Etiquette Fonctionnement ER ON si C n'est pas dans les plages spécifiées. OFF dans tous les autres cas. Conversion 4 à 16 bits Si CIO 000000 est ON dans l'exemple suivant, MLPX(076) convertit 3 chiffres dans S en commençant par le chiffre 1 (le deuxième chiffre), comme indiqué par C (#0021). Les bits correspondants dans D00100, D00101 et D00102 sont mis sur ON. 480 Chapitre 3-12 Instructions de conversion S C Bits 0 à 3 : chiffre de départ (chiffre 1) R C :# Bits 4 à 7 : Nombre de chiffres (3 chiffres) Chiffres S : 0100 Le chiffre 1 contient 6 ; le bit 6 est donc mis sur ON. R: Le chiffre 2 contient A ; le bit 10 est donc mis sur ON. Le chiffre 3 contient F ; le bit 15 est donc mis sur ON. Conversion 8 à 256 bits Si CIO 000000 est ON dans l'exemple suivant, MLPX(076) convertit 2 octets dans S en commençant par l'octet 1 (octet le plus à gauche), comme indiqué par C (#1011). Les bits correspondants dans D00100 à D00115 et D00116 à D00131 sont mis sur ON. S C Bits 0 à 3 : Octet de départ (octet 1) R C :# Bits 4 à 7 : Nombre d'octets (2 octets) Octet 1 Octet 0 S : 0100 R: L'octet 1 contient 2D ; le bit 13 (D) de R+2 est donc mis sur ON. L'octet 0 contient 1A ; le bit 10 (A) de R+1 est donc mis sur ON. 481 Chapitre 3-12 Instructions de conversion 3-12-9 DATA ENCODER : DMPX(077) Objet Symbole du schéma contact Recherche l'emplacement du premier ou du dernier bit ON du mot source (ou la plage de 16 mots) et écrit cette valeur dans le chiffre (ou l'octet) spécifié du mot de résultat. DMPX(077) S S: Premier mot source R R: Mot de résultat C C: Mot de contrôle Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Opérandes Zones de programmes de bloc OK Zones de programmes de pas OK DMPX(077) @DMPX(077) Non prise en charge Non prise en charge SousTâches programmes d'interruption OK OK S : Premier mot source Il peut y avoir entre 1 et 32 mots sources en fonction du type de conversion effectuée et du nombre de chiffres/octets convertis. Les mots sources doivent être dans la même zone de données. R : Mot de résultat Les emplacements des bits qui étaient sur ON dans le(s) mot(s) source(s) sont écrits dans les chiffres/octets de R en commençant par le premier chiffre/ octet spécifié. C : Mot de contrôle Le mot de contrôle détermine si DMPX(077) effectue une conversion 16 à 4 bits ou une conversion 256 à 8 bits, si le bit ON le plus à gauche ou le plus à droite sera encodé, le nombre de chiffres ou d'octets à convertir, et le chiffre ou octet de départ où le résultat sera écrit. Nombre de chiffres : 3 2 1 0 Spécifie le premier chiffre/octet qui recevra les données converties. 16 à 4 : 0 à 3 (chiffre 0 à 3) 256 à 8 : 0 ou 1 (octet 0 ou 1) Nombre de chiffres/octets à convertir 16 à 4 : 0 à 3 (1 à 4 chiffres) 256 à 8 : 0 ou 1 (1 ou 2 octets) Bit à encoder 0: Bit le plus à gauche (adresse de bit supérieure) 1: Bit le plus à droite (adresse de bit inférieure) Processus de conversion 0: 16 à 4 bits (mot à chiffre) 1: 256 à 8 bits (plage de 16 mots à octet) Spécifications de l’opérande 482 Zone Zone CIO Zone Travail S CIO 0000 à CIO 6143 W000 à W511 R C Chapitre 3-12 Instructions de conversion Zone Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque S R H000 à H511 A000 à A959 A448 à A959 T0000 à T4095 C0000 à C4095 D00000 à D32767 E00000 à E32767 En_00000 à En_32767 (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) ----- Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index Description C A000 à A959 Valeurs spécifiées uniquement --DR0 à DR15 --,IR0 à ,IR15 –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 DMPX(077) peut effectuer des conversions 16 à 4 bits ou 256 à 8 bits. Mettez le chiffre le plus à gauche de C sur 0 pour spécifier la conversion 16 à 4 bits et sur 1 pour spécifier la conversion 256 à 8 bits. Conversion 16 à 4 bits Lorsque le quatrième chiffre (le plus à gauche) de C est 0, DMPX(077) recherche l'emplacement des bits ON les plus à gauche et les plus à droite dans 4 mots sources maximum et écrit ces emplacements dans R en commençant par le chiffre spécifié. (Mettez le troisième chiffre de C sur 0 pour rechercher les bits ON les plus à gauche ou sur 1 pour rechercher les bits ON les plus à droite.) C Recherche le bit le plus à gauche (Adresse de bit supérieure) m Décodage de 16 à 4 bits (L'emplacement du bit le plus à gauche (m) est écrit dans R.) l=1 (Conversion de 2 mots.) Bit le plus à gauche n=2 (commence avec le chiffre 2.) R Lorsque deux chiffres ou plus sont convertis, DMPX(077) écrit les valeurs dans les chiffres de R de droite à gauche et englobe le chiffre le plus à droite après le chiffre le plus à gauche, si nécessaire. 483 Chapitre 3-12 Instructions de conversion Le schéma ci-dessous indique quelques exemples de valeurs pour C et les conversions 16 à 4 bits qu'elles produisent. C : #0011 C : #0030 C : #0013 R Chiffre 3 Chiffre 2 Chiffre 1 Chiffre 0 R Chiffre 3 Chiffre 2 Chiffre 1 Chiffre 0 R Chiffre 3 Chiffre 2 Chiffre 1 Chiffre 0 C : #0032 R Chiffre 3 Chiffre 2 Chiffre 1 Chiffre 0 Conversion 256 à 8 bits Lorsque le quatrième chiffre (le plus à gauche) de C est 1, DMPX(077) recherche les emplacements des bits ON les plus à gauche (adresse de bit supérieure) ou les plus à droite (adresse de bit inférieure) dans une ou deux plages de 16 mots sources. L'emplacement de ces bits est écrit dans R en commençant par l'octet spécifié. (Mettez le troisième chiffre de C sur 0 pour rechercher les bits ON les plus à gauche ou sur 1 pour rechercher les bits ON les plus à droite.) C l=0 (Conversion d'une plage de 16 mots.) Bit le plus à gauche Bit le plus à droite Recherche le bit le plus à gauche (Adresse de bit supérieure) Décodage de 256 à 8 bits (L'emplacement du bit le plus à gauche dans la plage de 16 mots (m) est écrit dans R.) n=1 (comence à l'octet 1.) R 484 Chapitre 3-12 Instructions de conversion Lorsque deux octets sont convertis, DMPX(077) écrit les valeurs dans les octets de R de droite à gauche et englobe l'octet le plus à droite si l'octet le plus à gauche (octet 1) a été spécifié comme octet de départ. Le schéma ci-dessous indique quelques exemples de valeurs pour C et les conversions 256 à 8 bits qu'elles produisent. C : #1010 Chiffre 1 C : #1011 Chiffre 0 Chiffre 1 Chiffre 0 Drapeaux Nom Drapeau d'erreur Précautions Etiquette Fonctionnement ER ON si l'un des mots sources contient 0000 hex (c.-à-d. aucun bit à encoder). ON si C n'est pas dans les plages spécifiées. OFF dans tous les autres cas. Si les données de conversion contiennent 0000 hex, mais que d'autres données doivent être encodées, séparez la conversion en utilisant plus d'une instruction DMPX(077). DMPX(077) D0000 D0100 #0300 DMPX(077) DMPX(077) DMPX(077) DMPX(077) Exemples D0000 D0001 D0002 D0003 D0100 D0100 D0100 D0100 #0000 #0001 #0002 #0003 Si CIO 000000 est ON dans l'exemple suivant, DMPX(077) recherche les bits ON les plus à gauche dans CIO 0100, CIO 0101 et CIO 0102 et écrit ces emplacements dans 3 chiffres de R en commençant par le chiffre 1 (le deuxième chiffre), comme indiqué par C (#0021). 485 Chapitre 3-12 Instructions de conversion S R C C:# DMPX(077) recherche les bits ON les plus à gauche. S: Chiffre de départ (chiffre 1) Chiffres R : D00100 3-12-10 ASCII CONVERT : ASC(086) Objet Symbole du schéma contact Convertit les chiffres hexadécimaux 4 bits du mot source dans leurs équivalents ASCII 8 bits. ASC(086) S S: Mot source Di Di: Désignateur de chiffre D D: Premier mot de destination Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Opérandes Zones de programmes de bloc OK Zones de programmes de pas OK ASC(086) @ASC(086) Non prise en charge Non prise en charge SousTâches programmes d'interruption OK OK S : Mot source Il est possible de convertir jusque quatre chiffres dans le mot source. Les chiffres sont numérotés de 0 à 3, de droite à gauche. Di : Désignateur de chiffre Le désignateur de chiffre spécifie plusieurs paramètres pour la conversion, comme indiqué dans le schéma ci-dessous. 486 Chapitre 3-12 Instructions de conversion Nombre de chiffres : 3 21 0 Détermine le premier chiffre dans S à convertir (0 à 3) Nombre de chiffres à convertir (0 à 3) 0: 1 chiffre 1: 2 chiffres 2: 3 chiffres 3: 4 chiffres Premier octet de D à utiliser. 0: Octet le plus à droite 1: Octet le plus à gauche Parité 0: Aucun 1: Pair 2: Impair D : Premier mot de destination Les données ASCII converties sont écrites dans le(s) mot(s) de destination en commençant par l'octet spécifié dans D. Trois mots de destination (D à D+3) sont nécessaires si 4 chiffres sont convertis et que l'octet le plus à gauche est sélectionné comme le premier octet dans D. Les mots de destination doivent être dans la même zone de données. Tout octet dans le(s) mot(s) de destination qui n'est pas remplacé par des données ASCII reste inchangé. Spécifications de l’opérande Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index S Di D CIO 0000 à CIO 6143 W000 à W511 H000 à H511 A000 à A959 A448 à A959 T0000 à T4095 C0000 à C4095 D00000 à D32767 E00000 à E32767 En_00000 à En_32767 (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) --Valeurs spéci--fiées uniquement DR0 à DR15 ----,IR0 à ,IR15 –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 487 Chapitre 3-12 Instructions de conversion Description ASC(086) traite le contenu de S comme 4 chiffres hexadécimaux, convertit le(s) chiffre(s) désigné(s) de S en leurs équivalents ASCII 8 bits, et écrit ces données dans le(s) mot(s) de destination en commençant par l'octet spécifié dans D. Di Premier chiffre à convertir Nombre de chiffres (n+1) Gauche (1) Remarque Droite (0) Consultez l' Annexe A du Manuel d'utilisation des consoles de programmation série CS/CJ (W341) pour une table des caractères ASCII étendus. Parité Il est possible de spécifier la parité des données ASCII pour l'utilisation lors du contrôle des erreurs pendant la transmission des données. Le bit le plus à gauche de chaque caractère ASCII est automatiquement réglé sur pair, impair ou aucune parité. Lorsque aucune parité (0) est défini, le bit le plus à gauche est toujours 0. Lorsque pair (1) est défini, le bit le plus à gauche est réglé de façon à ce que le nombre total de bits sur ON soit pair. Lorsque impair (2) est défini, le bit le plus à gauche de chaque caractère ASCII est réglé de façon à ce que le nombre de bits sur ON soit impair. L'état du bit de parité ne modifie pas la signification du code ASCII. Exemples de parité paire : S'il est réglé sur pair, ASCII “31” (00110001) devient “B1” (10110001 : bit de parité sur ON pour créer un nombre pair de bits sur ON) ; ASCII “36” (00110110) devient “36” (00110110 : le bit de parité reste sur OFF car le nombre de bits sur ON est déjà pair). Exemples de parité impaire : S'il est réglé sur impair, ASCII “36” (00110110) devient “B6” (10110110 : bit de parité sur ON pour créer un nombre impair de bits sur ON) ; ASCII “46” (01000110) devient “46” (01000110 : le bit de parité reste sur OFF car le nombre de bits sur ON est déjà impair). Exemples de Di Lorsque deux chiffres ou plus sont convertis, ASC(086) lit les octets dans S de droite à gauche et englobe l'octet le plus à droite, si nécessaire. Le schéma ci-dessous indique quelques exemples de valeurs pour Di et les conversions qu'elles génèrent. 488 Chapitre 3-12 Instructions de conversion Di : #0011 Di : #0112 Chiffre 3 Chiffre 2 Chiffre 1 Chiffre 0 Le plus à gauche Di : #0030 Chiffre 3 Chiffre 2 Chiffre 1 Chiffre 0 Chiffre 3 Chiffre 2 Chiffre 1 Chiffre 0 Le plus à gauche Le plus à gauche Le plus à droite Le plus à droite Le plus à gauche Le plus à droite Le plus à droite Di : #0130 Chiffre 3 Chiffre 2 Chiffre 1 Chiffre 0 Le plus à gauche Le plus à gauche Le plus à droite Le plus à droite Drapeaux Nom Drapeau d'erreur Exemple Etiquette Fonctionnement ER ON si le contenu de Di n'est pas dans les plages spécifiées. OFF dans tous les autres cas. Si CIO 000000 est ON dans l'exemple suivant, ASC(086) convertit trois chiffres hexadécimaux dans D00100 (en commençant par le chiffre 1) en leurs équivalents ASCII et écrit ces données dans D00200 et D00201 en commençant par l'octet le plus à gauche dans D00200. Dans ce cas, un désignateur de chiffre de #0121 spécifie aucune parité, l'octet de départ (lors de l'écriture) = octet le plus à gauche, le nombre de chiffres à lire = 3, et le chiffre de départ (lors de la lecture) = chiffre 1. S Di D Di : # Nombre de chiffres Chiffre de départ Chiffres S : D00100 Octet de départ (octet le plus à gauche) D: 489 Chapitre 3-12 Instructions de conversion 3-12-11 ASCII TO HEX : HEX(162) Objet Symbole du schéma contact Convertit jusqu'à 4 octets de données ASCII du mot source dans leurs équivalents hexadécimaux et écrit ces chiffres dans le mot de destination spécifié. HEX(162) S S: Premier mot source Di Di: Désignateur de chiffre D D: Mot de destination Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Opérandes Zones de programmes de bloc OK Zones de programmes de pas OK HEX(162) @HEX(162) Non prise en charge Non prise en charge SousTâches programmes d'interruption OK OK S : Premier mot source Le contenu des mots sources est traité comme données ASCII. Il est possible d'utiliser jusqu'à trois mots sources. (Trois mots sources sont nécessaires si 4 octets sont convertis et que l'octet le plus à gauche est sélectionné comme le premier octet dans S.) Les mots sources doivent être dans la même zone de données. Di : Désignateur de chiffre Le désignateur de chiffre spécifie plusieurs paramètres pour la conversion, comme indiqué dans le schéma ci-dessous. Nombre de : 3 2 1 0 chiffres Détermine le premier chiffre dans D à recevoir les données converties (0 à 3) Nombre d'octets à convertir (0 à 3) 0: 1 chiffre 1: 2 chiffres 2: 3 chiffres 3: 4 chiffres Premier octet de S à convertir. 0: Octet le plus à droite 1: Octet le plus à gauche Parité 0: Aucune 1: Paire 2: Impaire D : Mot de destination Les chiffres hexadécimaux convertis sont écrits dans D de droite à gauche en commençant par le premier chiffre spécifié. Tout chiffre dans le mot de destination qui n'est pas remplacé par des données converties reste inchangé. 490 Chapitre 3-12 Instructions de conversion Spécifications de l’opérande Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index Description S Di D CIO 0000 à CIO 6143 W000 à W511 H000 à H511 A000 à A959 A448 à A959 T0000 à T4095 C0000 à C4095 D00000 à D32767 E00000 à E32767 En_00000 à En_32767 (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) --Valeurs spéci--fiées uniquement --DR0 à DR15 ----,IR0 à ,IR15 –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 HEX(162) traite le contenu du ou des mots sources comme des données ASCII représentant des chiffres hexadécimaux (0 à 9 et A à F), convertit le nombre spécifié d'octets en données hexadécimales, et écrit les données hexadécimales dans le mot de destination en commençant par le chiffre spécifié. Une erreur se produit si les mots sources contiennent des données qui ne sont pas un équivalent ASCII de chiffres hexadécimaux. Le tableau suivant indique des chiffres hexadécimaux et leurs équivalents ASCII (sauf les bits de parité). Drapeaux Chiffres hexadécimaux (4 bits) 0à9 AàF Remarque Equivalent ASCII (2 chiffres hexadécimaux) 30 à 39 41 à 46 Consultez l' Annexe A du Manuel d'utilisation des consoles de programmation série CS/CJ (W341) pour une table des caractères ASCII étendus. 491 Chapitre 3-12 Instructions de conversion Le schéma ci-dessous illustre le fonctionnement de base de HEX(162) avec Di=0021. C : 0021 Di Premier octet à convertir Gauche (1) Droite (0) Nombre de chiffres (n+1) Premier chiffre à écrire Parité Il est possible de spécifier la parité des données ASCII pour l'utilisation lors du contrôle des erreurs pendant la transmission des données. Le bit le plus à gauche dans chaque octet est le bit de parité. En l'absence de parité, le bit de parité doit toujours être 0, dans le cas de la parité paire, l'état du bit de parité doit résulter en un nombre total de bits ON pair et dans le cas de la parité impaire, l'état du bit de parité doit résulter en un nombre impair de bits ON. Le tableau ci-dessous illustre le fonctionnement de HEX(162) pour chaque configuration de parité. Configuration de parité (chiffre le plus à gauche de Di) Aucune parité (0) Fonctionnement de HEX(162) HEX(162) n'est exécutée que si le bit de parité dans chaque octet est 0. Une erreur se produit si un bit de parité est non nul. Parité paire (1) HEX(162) n'est exécutée que s'il y a un nombre pair de bits sur ON dans chaque octet. Une erreur se produit si un octet comporte un nombre impair de bits sur ON. HEX(162) n'est exécutée que s'il y a un nombre impair de bits sur ON dans chaque octet. Une erreur se produit si un octet comporte un nombre pair de bits sur ON. Parité impaire (2) Exemples de Di Lorsque deux octets ou plus sont convertis, HEX(162) écrit les chiffres convertis dans le mot de destination de droite à gauche et englobe le chiffre le plus à droite, si nécessaire. Le schéma ci-dessous indique quelques exemples de valeurs pour Di et les conversions qu'elles génèrent. Di : #0112 Di : #0030 Le plus à gauche Le plus à gauche Le plus à droite Le plus à gauche Le plus à droite Le plus à droite Di : #0131 Le plus à gauche Le plus à gauche Le plus à droite Le plus à droite Chiffre 3 Chiffre 2 Chiffre 1 Chiffre 0 Chiffre 3 Chiffre 2 Chiffre 1 Chiffre 0 Chiffre 3 Chiffre 2 Chiffre 1 Chiffre 0 492 Chapitre 3-12 Instructions de conversion Drapeaux Nom Drapeau d'erreur Etiquette Fonctionnement ER ON s'il y a une erreur de parité dans les données ASCII. ON si les données ASCII dans les mots sources ne sont pas l’équivalent de chiffres hexadécimaux ON si le contenu de Di n'est pas dans les plages spécifiées. OFF dans tous les autres cas. Précautions Une erreur se produit et le drapeau d'erreur se met sur ON s'il y a une erreur de parité dans les données ASCII, si les données ASCII dans les mots sources ne sont pas équivalentes à des chiffres hexadécimaux, ou si le contenu de Di n'est pas dans les plages spécifiées. Exemples Si CIO 000000 est ON dans l'exemple suivant, HEX(162) convertit les données ASCII dans D00100 et D00101 conformément à la configuration du désignateur de chiffre. (Di=#0121 spécifie aucune parité, l'octet de départ (lors de la lecture) = octet le plus à gauche, le nombre d'octets à lire = 3, et le chiffre de départ (lors de l'écriture) = chiffre 1.) HEX(162) convertit trois octets de données ASCII (3 caractères) en commençant par l'octet le plus à gauche de D00100 en leurs équivalents hexadécimaux et écrit ces données dans D00200 en commençant par le chiffre 1. S Di D Di : # Octet de départ (octet le plus à gauche) S: Nombre de chiffres Chiffre de départ (chiffre 1) 3 chiffres D : D00200 Si CIO 000000 est ON dans l'exemple suivant, HEX(162) convertit les données ASCII dans D00010 en commençant par l'octet le plus à droite et écrit les équivalents hexadécimaux dans D00300 en commençant par le chiffre 1. La configuration du désignateur de chiffre de #1011 spécifie la parité paire, l'octet de départ (lors de la lecture) = octet le plus à droite, le nombre d'octets à lire = 2, et le chiffre de départ (lors de l'écriture) = chiffre 1. 493 Chapitre 3-12 Instructions de conversion Chiffre de départ dans D : Chiffre 1 Nombre d'octets : 2 Octet de départ dans S : Le plus à droite Parité : Paire Bits de parité : Résulte en parité paire S : D00100 Octet de départ : le plus à droite Conversion Chiffre de départ (chiffre 1) Inchangé D : D00300 Nombre d'octets (2 octets) Inchangé 3-12-12 COLUMN TO LINE : LINE(063) Objet Symbole du schéma contact Convertit une colonne de bits d'une plage de 16 mots (le même numéro de bit dans 16 mots consécutifs) dans les 16 bits du mot de destination. LINE(063) S S: Premier mot source N N: Numéro de bit D D: Mot de destination Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Opérandes Zones de programmes de bloc OK Zones de programmes de pas OK LINE(063) @LINE(063) Non prise en charge Non prise en charge SousTâches programmes d'interruption OK OK S : Premier mot source Spécifie le premier mot source. S et S+15 doivent être dans la même zone de données. N : Numéro de bit Spécifie le numéro de bit (0000 à 000F ou &0 à &15) à copier à partir des mots sources. 494 Chapitre 3-12 Instructions de conversion Spécifications de l’opérande Zone Zone CIO S CIO 0000 à CIO 6128 W000 à W496 H000 à H496 A000 à A944 Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque W000 à W511 H000 à H511 A000 à A959 D A448 à A959 T0000 à T4080 T0000 à T4095 C0000 à C4080 C0000 à C4095 D00000 à D32752 D00000 à D32767 E00000 à E32752 E00000 à E32767 En_00000 à En_00000 à En_32767 (n = 0 à C) En_32752 (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) --#0000 à 000F --(binaire) ou &0 à &15 --DR0 à DR15 --,IR0 à ,IR15 –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index Description N CIO 0000 à CIO 6143 LINE(063) copie les 16 bits avec le numéro de bit N de la plage de 16 mots S à S+15 vers le mot de destination D. Le bit N de S+m est copié vers le bit m de D, en d'autres termes, le bit N de S est copié dans le bit 00 de D et le bit N de S+15 est copié dans le bit 15 de D. N Bit 15 S S+1 S+2 S+3 . . . S+15 Bit 00 0 0 0 1 1 1 1 0 0 0 1 0 0 0 0 1 1 1 0 1 0 0 1 0 0 1 1 1 0 0 0 1 0 0 0 1 1 0 1 1 0 0 1 0 0 1 1 1 1 0 0 0 0 0 1 1 0 0 0 0 0 1 1 1 . . . . . . . . . 0 1 1 0 0 0 0 1 1 0 0 0 1 0 1 0 Bit 15 D 0 Bit 00 . . . 0 1 1 1 495 Chapitre 3-12 Instructions de conversion Drapeaux Nom Drapeau d'erreur Etiquette Fonctionnement ER ON si N n'est pas dans la plage spécifiée de 0000 à 000F. OFF dans tous les autres cas. = ON si D est 0000 après l'exécution. OFF dans tous les autres cas. Drapeau d'égalité Exemple Si CIO 000000 est ON dans l'exemple suivant, LINE(063) copie le bit 5 de D00100 à D00115 vers les 16 bits dans D00200. N :#0005 &5 S: à à D :D00200 3-12-13 LINE TO COLUMN : COLM(064) Objet Symbole du schéma contact Convertit les 16 bits du mot source en une colonne de bits dans une plage de 16 mots de destination (le même numéro de bit dans 16 mots consécutifs). COLM(064) S S: Mot source D D: Premier mot de destination N N: Numéro de bit Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Opérandes Zones de programmes de bloc OK Zones de programmes de pas OK COLM(064) @COLM(064) Non prise en charge Non prise en charge SousTâches programmes d'interruption OK OK D : premier mot de destination. Spécifie le premier mot de destination. D et D+15 doivent être dans la même zone de données. 496 Chapitre 3-12 Instructions de conversion N : Numéro de bit Spécifie le numéro de bit (0000 à 000F ou &0 à &15) à écraser par le mot source. Spécifications de l’opérande Zone Zone CIO S CIO 0000 à CIO 6143 D CIO 0000 à CIO 6128 N CIO 0000 à CIO 6143 Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque W000 à W511 H000 à H511 A000 à A959 T0000 à T4095 C0000 à C4095 D00000 à D32767 E00000 à E32767 W000 à W496 H000 à H496 A448 à A944 T0000 à T4080 C0000 à C4080 D00000 à D32752 E00000 à E32752 W000 à W511 H000 à H511 A000 à A959 T0000 à T4095 C0000 à C4095 D00000 à D32767 E00000 à E32767 Zone EM avec banque En_00000 à En_00000 à En_32767 En_32752 (n = 0 à C) (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) #0000 à #FFFF --(binaire) Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index DR0 à DR15 --- --- En_00000 à En_32767 (n = 0 à C) #0000 à #000F (binaire) ou &0 à &15 DR0 à DR15 ,IR0 à ,IR15 –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 497 Chapitre 3-12 Instructions de conversion Description COLM(064) copie les 16 bits de S dans les 16 bits ayant le numéro de bit N dans la plage de 16 mots D à D+15. Le bit m de S est copié dans le bit N de D+m, c'est-à-dire que le bit 00 de S est copié dans le bit N de D et le bit 15 de S est copié dans le bit N de D+15. Bit 15 S 0 Bit 00 . . . . . . 0 1 1 1 Bi Bit 15 D D+1 D+2 D+3 . . . D+15 . Bit 00 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 1 1 1 0 1 0 0 1 0 0 1 1 1 0 0 0 1 0 0 0 1 1 0 1 1 0 0 1 0 0 1 1 1 1 0 0 0 0 0 1 1 0 0 0 0 0 1 1 1 . . . . . . . . . 0 1 1 1 0 0 0 1 1 0 0 0 1 0 1 0 Drapeaux Nom Drapeau d'erreur Drapeau d'égalité Exemple Etiquette Fonctionnement ER ON si N n'est pas dans la plage spécifiée de 0000 à 000F. OFF dans tous les autres cas. = ON si le bit N est 0 dans les 16 mots D à D+15 après l'exécution. OFF dans tous les autres cas. Si CIO 000000 est ON dans l'exemple suivant, COLM(064) copie les 16 bits dans D00200 (bits 00 à 15) vers le bit 5 dans D00100 à D00115. S :D00200 D: à 498 à Chapitre 3-12 Instructions de conversion 3-12-14 SIGNED BCD-TO-BINARY : BINS(470) Objet Symbole du schéma contact Convertit un mot de données BCD signées en un mot de données binaires signées. BINS(470) C C: Mot de contrôle S S: Mot source D D: Mot de destination Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Opérandes Zones de programmes de bloc OK Zones de programmes de pas OK BINS(470) @BINS(470) Non prise en charge Non prise en charge SousTâches programmes d'interruption OK OK C : Mot de contrôle Spécifie le format BCD signé. C doit être compris entre 0000 et 0003. Spécifications de l’opérande Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données C S CIO 0000 à CIO 6143 W000 à W511 H000 à H511 A000 à A959 T0000 à T4095 C0000 à C4095 D00000 à D32767 E00000 à E32767 En_00000 à En_32767 (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) #0000 à #0003 --(binaire) DR0 à DR15 D A448 à A959 499 Chapitre 3-12 Instructions de conversion Zone Registres d'index Adressage indirect à l’aide de registres d’index Description C S --,IR0 à ,IR15 –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 D BINS(470) convertit des données BCD signées en données binaires signées. Le format de données BCD signées et la plage dans le mot S sont d'abord contrôlés par rapport à la configuration du mot de contrôle (C). Si les données sources sont correctes, les données BCD signées dans S sont converties en données binaires signées et placées dans D. Si les données sources sont incorrectes, le drapeau d'erreur est mis sur ON et l'instruction n'est pas exécutée. Format BCD signé spécifié dans C BCD signé Binaire signé Si les données converties sont négatives, le résultat se présente sous forme de complément à 2 et le drapeau négatif est mis sur ON. NEG(160) peut être utilisée pour déterminer la valeur absolue d'un nombre binaire signé négatif. Consultez la section 3-12-52’S COMPLEMENT : NEG(160) pour plus d'informations. Une valeur de –0 dans les données sources est traitée comme 0 et n'entraîne aucune erreur. De même, l'état des bits 13 à 15 de S n'est pas contrôlé si C=0000. Remarque Certaines cartes E/S spéciales sortent des données BCD signées. Les calculs utilisant ces données sont en général plus faciles si celles-ci sont d'abord converties en données binaires signées au moyen de BINS(470). Le mot de contrôle spécifie le format BCD signé comme illustré ci-dessous. C = 0000 (plage de données d'entrée : –999 à 999 BCD) 3 chiffres BCD, 12 bits Bit de signe (0 : positif ; 1 : négatif) Etat de 3 bits : 0 C = 0001 (plage de données d'entrée : -7999 à 7999 BCD) 3 chiffres BCD, 12 bits 3 bits de chiffre 4 (0 à 7) Bit de signe (0 : positif ; 1 : négatif) C = 0002 (plage de données d'entrée : -999 à 9999 BCD) 3 chiffres BCD, 12 bits 0 à 9 : Quatrième chiffre BCD F : Négatif (−) A à E : Erreur 500 Chapitre 3-12 Instructions de conversion C = 0003 (plage de données d'entrée : -1999 à 9999 BCD) 3 chiffres BCD, 12 bits 0 à 9 : Quatrième chiffre BCD A : Négatif (−1) F : Négatif (−) B à E : Erreur Le tableau ci-dessous indique les valeurs BCD possibles pour chaque format BCD signé et les valeurs binaires signées correspondantes. Paramètre C=0000 C=0001 C=0002 C=0003 Valeurs BCD signées –999 à –1 et 0 à 999 –7999 à –1 et 0 à 7999 –999 à –1 et 0 à 9999 –1999 à –1 et 0 à 9999 Valeurs binaires signées FC19 à FFFF et 0000 à 03E7 E0C1 à FFFF et 0000 à 1F3F FC19 à FFFF et 0000 à 270F F831 à FFFF et 0000 à 270F Drapeaux Nom Drapeau d'erreur Drapeau d'égalité Drapeau négatif Exemples Etiquette Fonctionnement ER ON si C n'est pas dans la plage spécifiée de 0000 à 0003. ON si C=0002 et le chiffre le plus à gauche de S est A à E. ON si C=0003 et le chiffre le plus à gauche de S est B à E. ON si le contenu de S n'est pas de type BCD. OFF dans tous les autres cas. = ON si D est 0000 après l'exécution. OFF dans tous les autres cas. N ON si le bit 15 de D est sur ON après l'exécution. OFF dans tous les autres cas. Format BCD 0 (C=#0000) Si CIO 000000 est ON dans l'exemple suivant, le format de données BCD signées et la plage dans D00100 sont contrôlés par rapport au format spécifié dans le mot de contrôle (0000). Si les données sources sont correctes, les données BCD signées dans D00100 sont converties en données binaires signées et le résultat est placé dans D00200. S: D00100 1123 Données BCD signées (–123) D :D00200 FF85 Données binaires signées Format BCD 0 (C=#0003) Si CIO 000001 est ON dans l'exemple suivant, le format de données BCD signées et la plage dans D00100 sont contrôlés par rapport au format spécifié dans le mot de contrôle (0003). Si les données sources sont correctes, les données BCD signées dans D00300 sont converties en données binaires signées et le résultat est placé dans D00400. S: D00300 A369 Données BCD signées (–1 369) D :D00400 FAA7 Données binaires signées 501 Chapitre 3-12 Instructions de conversion 3-12-15 DOUBLE SIGNED BCD-TO-BINARY : BISL(472) Objet Symbole du schéma contact Convertit des données BCD doubles signées en données binaires doubles signées. BISL(472) C C: Mot de contrôle S S: Premier mot source D D: Premier mot de destination Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Opérandes Zones de programmes de bloc OK Zones de programmes de pas OK BISL(472) @BISL(472) Non prise en charge Non prise en charge SousTâches programmes d'interruption OK OK C : Mot de contrôle Spécifie le format BCD signé. C doit être compris entre 0000 et 0003. Spécifications de l’opérande Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données 502 C CIO 0000 à CIO 6143 W000 à W511 H000 à H511 A000 à A959 T0000 à T4095 C0000 à C4095 D00000 à D32767 E00000 à E32767 En_00000 à En_32767 (n = 0 à C) S CIO 0000 à CIO 6142 D W000 à W510 H000 à H510 A000 à A958 A448 à A958 T0000 à T4094 C0000 à C4094 D00000 à D32766 E00000 à E32766 En_00000 à En_32766 (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) #0000 à #0003 --(binaire) DR0 à DR15 --- Chapitre 3-12 Instructions de conversion Zone Registres d'index Adressage indirect à l’aide de registres d’index Description C S --,IR0 à ,IR15 –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 D BISL(472) convertit les données BCD doubles signées dans S+1 et S en données binaires doubles signées et écrit le résultat dans D+1 et D. Le format de données BCD signées et la plage dans les mots S+1 et S sont d'abord contrôlés par rapport à la configuration du mot de contrôle (C). Si les données sources sont correctes, les données BCD signées S+1 et S sont converties en données binaires signées et placées dans D+1 et D. Si les données sources sont incorrectes, le drapeau d'erreur est mis sur ON et l'instruction n'est pas exécutée. Format BCD signé spécifié dans C BCD signé BCD signé Binaire signé Binaire signé Si les données converties sont négatives, le résultat se présente sous forme de complément à 2 et le drapeau négatif est mis sur ON. NEGL(161) peut être utilisée pour déterminer la valeur absolue d'un nombre binaire double signé négatif. Consultez la section 3-12-6 DOUBLE 2’S COMPLEMENT : NEGL(161) pour plus d'informations. Les valeurs de –0 dans les données sources sont traitées comme 0 et n'entraînent aucune erreur. De même, l'état des bits 13 à 15 de S+1 n'est pas contrôlé si C=0000. Remarque Certaines cartes E/S spéciales sortent des données BCD signées. Les calculs utilisant ces données sont en général plus faciles si celles-ci sont d'abord converties en données binaires signées au moyen de BISL(472). Le mot de contrôle spécifie le format BCD signé comme illustré ci-dessous. C = 0000 (plage de données d'entrée : –999 9999 à 999 9999 BCD) S+1 S 7 chiffres BCD, 28 bits Bit de signe (0 : positif ; 1 : négatif) Etat de 3 bits : 0 C = 0001 (plage de données d'entrée : -7999 9999 à 7999 9999 BCD) S+1 S 7 chiffres BCD, 28 bits 3 bits de chiffre 8 (0 à 7) Bit de signe (0 : positif ; 1 : négatif) 503 Chapitre 3-12 Instructions de conversion C = 0002 (plage de données d'entrée : –999 9999 à 9999 9999 BCD) S+1 S 7 chiffres BCD, 28 bits 0 à 9 : Huitième chiffre BCD F : Négatif (–) A à E : Erreur C = 0003 (plage de données d'entrée : –1999 9999 à 9999 9999 BCD) S+1 S 7 chiffres BCD, 28 bits 0 à 9 : Huitième chiffre BCD A : Négatif (–1) F : Négatif (–) B à E : Erreur Le tableau ci-dessous indique les valeurs BCD possibles pour chaque format BCD signé et les valeurs binaires signées correspondantes. Paramètre Valeurs BCD signées C=0000 –999 9999 à –1 0 à 999 9999 C=0001 -7999 9999 à –1 0 à 7999 9999 C=0002 -999 9999 à –1 0 à 9999 9999 C=0003 -1999 9999 à –1 0 à 9999 9999 Valeurs binaires signées FF67 6981 à FFFF FFFF 0000 0000 à 0098 967F FB3B 4C01 à FFFF FFFF 0000 0000 à 04C4 B3FF FF67 6981 à FFFF FFFF 0000 0000 à 05F5 E0FF FECE D301 à FFFF FFFF 0000 0000 à 05F5 E0FF Drapeaux Nom Drapeau d'erreur Drapeau d'égalité Drapeau négatif Exemple Etiquette Fonctionnement ER ON si C n'est pas dans la plage spécifiée de 0000 à 0003. ON si C=0002 et le chiffre le plus à gauche de S+1 est A à E. ON si C=0003 et le chiffre le plus à gauche de S+1 est B à E. ON si le contenu de S+1 et S n'est pas de type BCD. OFF dans tous les autres cas. = ON si D+1 est 0000 0000 après l'exécution. OFF dans tous les autres cas. N ON si le bit 15 de D+1 est ON après l'exécution. OFF dans tous les autres cas. Si CIO 000000 est ON dans l'exemple suivant, le format de données BCD doubles signées et la plage dans D00101 et D00100 sont contrôlés par rapport au format spécifié dans le mot de contrôle (0002). Si les données sources sont correctes, les données BCD doubles signées dans D00101 et D00100 sont converties en données binaires doubles signées et le résultat est placé dans D00201 et D00200. S+1 :D00101 F345 D+1 :D00201 FFCB 504 S :D00100 6789 Données BCD doubles signées (–3 456 789) D :D00200 40EB Données binaires doubles signées Chapitre 3-12 Instructions de conversion 3-12-16 SIGNED BINARY-TO-BCD : BCDS(471) Objet Symbole du schéma contact Convertit un mot de données binaires signées en un mot de données BCD signées. BCDS(471) C C: Mot de contrôle S S: Mot source D D: Mot de destination Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Opérande Zones de programmes de bloc OK Zones de programmes de pas OK BCDS(471) @BCDS(471) Non prise en charge Non prise en charge SousTâches programmes d'interruption OK OK C : Mot de contrôle Spécifie le format BCD signé. C doit être compris entre 0000 et 0003. S : Mot source Contient les données binaires signées à convertir. Le contenu de S doit être compris dans la plage valide du format BCD spécifié dans C. Paramètre C=0000 C=0001 C=0002 C=0003 Valeurs autorisées pour S FC19 à FFFF et 0000 à 03E7 E0C1 à FFFF et 0000 à 1F3F FC19 à FFFF ou 0000 à 270F F831 à FFFF ou 0000 à 270F D : Mot de destination Contient des données BCD signées converties. Consultez la section Description ci-dessous pour une explication des formats BCD. Spécifications de l’opérande Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque C CIO 0000 à CIO 6143 W000 à W511 H000 à H511 A000 à A959 T0000 à T4095 C0000 à C4095 D00000 à D32767 E00000 à E32767 En_00000 à En_32767 (n = 0 à C) S D A448 à A959 505 Chapitre 3-12 Instructions de conversion Zone Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index Description C S @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) #0000 à #0003 --(binaire) DR0 à DR15 --,IR0 à ,IR15 –2048 à +2047 ,IR0 à 1–2048 à +2047 ,IR5 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 D BCDS(471) convertit des données binaires signées en données BCD signées. Les données binaires signées du mot S sont d'abord vérifiées pour s'assurer qu'elles sont dans la plage valide pour le format BCD signé spécifié dans le mot de contrôle (C). Si les données sources sont correctes, les données binaires signées dans S sont converties en données BCD signées et placées dans D. Si les données sources sont incorrectes, le drapeau d'erreur est mis sur ON et l'instruction n'est pas exécutée. Format BCD signé spécifié dans C Binaire signé Remarque BCD signé 1. Les valeurs de –0 dans les données sources sont traitées comme 0 et n'entraînent aucune erreur. 2. Certaines cartes E/S spéciales nécessitent des entrées de données BCD signées. BCDS(471) peut être utilisée pour convertir des données binaires signées à envoyer vers ces cartes. Le mot de contrôle spécifie le format BCD signé à utiliser pour le résultat, comme indiqué ci-dessous. C = 0000 (plage de données de sortie : -999 à 999 BCD) 3 chiffres BCD, 12 bits Bit de signe (0 : positif ; 1 : négatif) Etat de 3 bits : 0 C = 0001 (plage de données de sortie : -7999 à 7999 BCD) 3 chiffres BCD, 12 bits 3 bits de chiffre 4 (0 à 7) Bit de signe (0 : positif ; 1 : négatif) 506 Chapitre 3-12 Instructions de conversion C = 0002 (plage de données de sortie : -999 à 9999 BCD) 3 chiffres BCD, 12 bits 0 à 9 : Quatrième chiffre BCD F : Négatif (–) C = 0003 (plage de données de sortie : -1999 à 9999 BCD) 3 chiffres BCD, 12 bits 0 à 9 : Quatrième chiffre BCD A : Négatif (–1) F : Négatif (–) Le tableau ci-dessous indique les valeurs binaires signées possibles pour chaque format BCD signé. Une erreur se produit si les données sources ne sont pas dans la plage autorisée pour le format BCD signé spécifié. Paramètre C=0000 C=0001 C=0002 C=0003 Valeurs binaires signées FC19 à FFFF et 0000 à 03E7 E0C1 à FFFF et 0000 à 1F3F FC19 à FFFF et 0000 à 270F F831 à FFFF et 0000 à 270F Valeurs BCD signées –999 à –1 et 0 à 999 –7999 à –1 et 0 à 7999 –999 à –1 et 0 à 9999 –1999 à –1 et 0 à 9999 Drapeaux Nom Drapeau d'erreur Drapeau d'égalité Drapeau négatif Etiquette Fonctionnement ER ON si C n'est pas dans la plage spécifiée de 0000 à 0003. ON si C=0000 et les données sources ne sont pas dans les plages autorisées (FC19 à FFFF ou 0000 à 03E7). ON si C=0001 et les données sources ne sont pas dans les plages autorisées (E0C1 à FFFF ou 0000 à 1F3F). ON si C=0002 et les données sources ne sont pas dans les plages autorisées (FC19 à FFFF ou 0000 à 270F). ON si C=0003 et les données sources ne sont pas dans les plages autorisées (F831 à FFFF ou 0000 à 270F). OFF dans tous les autres cas. = ON si D est 0000 après l'exécution. OFF dans tous les autres cas. N ON si C=0000 ou 0001 et le bit de signe du résultat est sur ON après l'exécution. ON si C=0002 et le chiffre le plus à gauche du résultat est F. ON si C=0003 et le chiffre le plus à gauche du résultat est A ou F. OFF dans tous les autres cas. 3-12-17 DOUBLE SIGNED BINARY-TO-BCD : BDSL(473) Objet Symbole du schéma contact Convertit des données binaires doubles signées en données BCD doubles signées. BDSL(473) C C: Mot de contrôle S S: Premier mot source D D: Premier mot de destination 507 Chapitre 3-12 Instructions de conversion Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Opérandes BDSL(473) @BDSL(473) Non prise en charge Non prise en charge C : Mot de contrôle Spécifie le format BCD signé. C doit être compris entre 0000 et 0003. S : Premier mot source Les mots sources S+1 et S contiennent les données binaires doubles signées à convertir. Leur contenu doit être compris dans la plage valide du format BCD spécifié dans C. Paramètre C=0000 C=0001 C=0002 C=0003 Valeurs autorisées pour S+1 et S FF67 6981 à FFFF FFFF ou 0000 0000 à 0098 967F FB3B 4C01 à FFFF FFFF ou 0000 0000 à 04C4 B3FF FF67 6981 à FFFF FFFF ou 0000 0000 à 05F5 E0FF FECE D301 à FFFF FFFF ou 0000 0000 à 05F5 E0FF D : Premier mot de destination Les mots de destination D+1 et D contiennent les données BCD doubles signées converties. Consultez la section Description ci-dessous pour une explication des formats BCD. Spécifications de l’opérande Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données 508 C S D CIO 0000 à CIO 0000 à CIO 6142 CIO 6143 W000 à W511 W000 à W510 H000 à H511 H000 à H510 A000 à A959 A000 à A958 A448 à A958 T0000 à T4095 T0000 à T4094 C0000 à C4095 C0000 à C4094 D00000 à D32767 D00000 à D32766 E00000 à E32767 E00000 à E32766 En_00000 à En_00000 à En_32766 En_32767 (n = 0 à C) (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) #0000 à #0003 --(binaire) DR0 à DR15 --- Chapitre 3-12 Instructions de conversion Zone Registres d'index Adressage indirect à l’aide de registres d’index Description C S --,IR0 à ,IR15 –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 D BDSL(473) convertit des données binaires doubles signées en données BCD doubles signées. Les données binaires doubles signées dans S+1 et S sont vérifiées pour s'assurer qu'elles sont dans la plage valide pour le format BCD signé spécifié dans le mot de contrôle (C). Si les données sources sont correctes, les données binaires doubles signées S+1 et S sont converties en données BCD doubles signées et placées dans D+1 et D. Si les données sources sont incorrectes, le drapeau d'erreur est mis sur ON et l'instruction n'est pas exécutée. Format BCD signé spécifié dans C Binaire signé BCD signé BCD signé Binaire signé Remarque 1. Les valeurs de –0 dans les données sources sont traitées comme 0 et n'entraînent aucune erreur. 2. Certaines cartes E/S spéciales nécessitent des entrées de données BCD signées. BDSL(473) peut être utilisée pour convertir des données binaires doubles signées à envoyer vers ces cartes. Le mot de contrôle spécifie le format BCD signé à utiliser pour le résultat, comme indiqué ci-dessous. C = 0000 (plage de données de sortie : -999 9999 à 999 9999 BCD) S+1 S 7 chiffres BCD, 28 bits Bit de signe (0 : positif ; 1 : négatif) Etat de 3 bits : 0 C = 0001 (plage de données de sortie : –7999 9999 à 7999 9999 BCD) S+1 S 7 chiffres BCD, 28 bits 3 bits de chiffre 8 (0 à 7) Bit de signe (0 : positif ; 1 : négatif) C = 0002 (plage de données de sortie : –9999 9999 à 9999 9999 BCD) S+1 S 7 chiffres BCD, 28 bits 0 à 9 : Huitième chiffre BCD F : Négatif (–) 509 Chapitre 3-12 Instructions de conversion C = 0003 (plage de données de sortie : –1999 9999 à 9999 9999 BCD) S+1 S 7 chiffres BCD, 28 bits 0 à 9 : Huitième chiffre BCD A : Négatif (–1) F : Négatif (–) Le tableau ci-dessous indique les valeurs binaires doubles signées possibles pour chaque format BCD signé. Une erreur se produit si les données sources ne sont pas dans la plage autorisée pour le format BCD signé spécifié. Paramètre Valeurs binaires signées C=0000 FF67 6981 à FFFF FFFF 0000 0000 à 0098 967F C=0001 FB3B 4C01 à FFFF FFFF 0000 0000 à 04C4 B3FF C=0002 FF67 6981 à FFFF FFFF 0000 0000 à 05F5 E0FF C=0003 FECE D301 à FFFF FFFF 0000 0000 à 05F5 E0FF Valeurs BCD signées –999 9999 à –1 0 à 999 9999 –7999 9999 à –1 0 à 7999 9999 –999 9999 à –1 0 à 9999 9999 –1999 9999 à –1 0 à 9999 9999 Drapeaux Nom Drapeau d'erreur Drapeau d'égalité Drapeau négatif Exemple Etiquette Fonctionnement ER ON si C n'est pas dans la plage spécifiée de 0000 à 0003. ON si C=0000 et les données sources ne sont pas dans la plage : FF67 6981 à FFFF FFFF ou 0000 0000 à 0098 967F. ON si C=0001 et les données sources ne sont pas dans la plage : FB3B 4C01 à FFFF FFFF ou 0000 0000 à 04C4 B3FF. ON si C=0002 et les données sources ne sont pas dans la plage : FF67 6981 à FFFF FFFF ou 0000 0000 à 05F5 E0FF. ON si C=0003 et les données sources ne sont pas dans la plage : FECE D301 à FFFF FFFF ou 0000 0000 à 05F5 E0FF. OFF dans tous les autres cas. = ON si D est 0000 après l'exécution. OFF dans tous les autres cas. N ON si C=0000 ou 0001 et le bit de signe du résultat est sur ON après l'exécution. ON si C=0002 et le chiffre le plus à gauche du résultat est F. ON si C=0003 et le chiffre le plus à gauche du résultat est A ou F. OFF dans tous les autres cas. Si CIO 000000 est ON dans l'exemple suivant, les données binaires doubles signées dans D00101 et D00100 sont contrôlées par rapport au format spécifié dans le mot de contrôle (0003). Si les données sources sont correctes, les données binaires doubles signées dans D00101 et D00100 sont converties en données BCD doubles signées et le résultat est placé dans D00201 et D00200. S+1 :D00101 FF8B D+1 :D00201 F765 510 S :D00100 344F Données binaires doubles signées D :D00200 4321 Données BCD doubles signées (–7 654 321) Chapitre 3-12 Instructions de conversion 3-12-18 GRAY CODE CONVERT : GRY(474) Objet Convertit le code binaire Gray d'un mot spécifié en données binaires standard, données BCD ou un angle à la résolution spécifiée. Cette instruction est uniquement prise en charge par les UC série CS/CJ ver. 2.0 ou supérieure (y compris les UC CS1-H, CJ1-H et CJ1M à partir du numéro de lot 030201 ou ultérieur). Symbole du schéma contact GRY(474) C C: Premier mot de contrôle S S: Mot source D D: Premier mot de destination Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Opérandes Zones de programmes de bloc OK Zones de programmes de pas OK GRY(474) @GRY(474) Non prise en charge Non prise en charge SousTâches programmes d'interruption OK OK C : Mot de contrôle Spécifie les paramètres de conversion comme indiqué ci-dessous. 15 C 12 11 87 Ne pas utiliser (0). 43 0 Résolution 0 ou 1 à F hex (1 à 15 décimal) bits 0 hex = Défini par l'utilisateur en bits 12 à 15 de C+2. Mode de conversion 0 hex = mode binaire, 1 hex = mode BCD, 2 hex = mode 360° Mode de fonctionnement 0 hex = conversion code binaire Gray C+1 Compensation point zéro (0000 à 7FFF Hex (données binaires)) Remarque : La compensation du point zéro qui dépasse la résolution définie dans le mot C de contrôle ne peut être spécifiée. 15 12 11 0 C+2 Compensation reste codeur (données binaires) Remarque : La plage pouvant être réglée dépend de la résolution définie par l'utilisateur. Résolution définie par l'utilisateur 0 hex = 256, 1 hex = 360, 2 hex = 720, 3 hex = 1,024, 4 to F hex = Ne pas utiliser. Remarque : La configuration ci-dessus est valide si la résolution est réglée sur 0 hex dans les bits 00 à 03 de C. 511 Chapitre 3-12 Instructions de conversion S : Mot source Contient le code binaire Gray à convertir. La plage doit être comprise entre le nombre de bits déterminé par la résolution spécifiée dans les bits 00 à 03 de C. Tous les bits en dehors du nombre de bits pour la résolution spécifiée sont ignorés. Par exemple, si la résolution spécifiée est 08 hex et que S contient FFFF hex, le code binaire Gray sera considéré comme 00FF hex. S D : Premier mot de destination Les mots de destination D+1 et D contiennent les résultats de la conversion du code binaire Gray à la résolution spécifiée dans les bits 00 à 03 du mot de contrôle C et au mode de conversion spécifié dans les bits 04 à 07 du mot de contrôle C. Le mot le plus à gauche est placé dans D+1 et le mot le plus à droite dans D. Les plages des données de sortie sont les suivantes : Mode binaire : 0000 0000 à 0000 7FFF hex Mode BCD : 0000 0000 à 0003 2767 360° Mode : 0000 0000 à 0000 3599 (0.0° à 359,9° par pas de 0,1°, BCD) D D+1 Spécifications de l’opérande Mot le plus à droite Mot le plus à gauche Zone Zone CIO C CIO 0000 à CIO 6142 W000 à W510 H000 à H510 A000 à A958 T0000 à T4094 C0000 à C4094 D00000 à D32766 S CIO 0000 à CIO 6143 W000 à W511 H000 à H511 A000 à A959 T0000 à T4095 C0000 à C4095 D00000 à D32767 Zone EM sans banque Zone EM avec banque E00000 à E32766 En_00000 à En_32766 (n = 0 à C) E00000 à E32767 E00000 à E32766 Adresses DM/EM indirectes en binaire @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) --#0000 à #FFFF (binaire) --DR0 à DR15 Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Adresses DM/EM indirectes en BCD Constantes Registres de données 512 En_00000 à En_32767 (n = 0 à C) D CIO 0000 à CIO 6142 W000 à W510 H000 à H510 A448 à A958 T0000 à T4094 C0000 à C4094 D00000 à D32766 En_00000 à En_32766 (n = 0 à C) ----- Chapitre 3-12 Instructions de conversion Zone Registres d'index Adressage indirect à l’aide de registres d’index Description D GRY(474) convertit le code binaire Gray du mot spécifié dans S à la résolution définie dans C en utilisant un des modes de conversion suivants (binaire, BCD ou 360°), également spécifié dans C, et place le résultat dans D et D+1. Mode de conversion Mode binaire Mode BCD Mode 360 Remarque Restrictions C S --,IR0 à ,IR15 –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 Fonction Le code binaire Gray est converti en données binaires entre 0000 0000 et 0000 7FFF hex. Le décalage du point zéro et la compensation du reste s'appliquent, et le résultat est placé dans D et D+1. Le code binaire Gray est converti en données BCD. Le décalage du point zéro et la compensation du reste s'appliquent, les données sont converties en données BCD entre 0000 0000 et 0003 2767, et le résultat est ensuite placé dans D et D+1. Le code binaire Gray est converti en données BCD. Le décalage du point zéro et la compensation du reste s'appliquent, les données sont converties en un angle entre 0000 0000 et 0000 3599 (0,0° à 359,9° par pas de 0,1°), et le résultat est ensuite placé dans D et D+1. 1. GRY(474) est en général utilisée pour l'entrée, via une carte d'entrée c.c., d'un signal parallèle (2n) à partir d'un codeur absolu qui sort un code binaire Gray. 2. Si le mot spécifié pour S est affecté à une carte d'entrée, les données d'entrée converties par GRY(474) s'appliqueront au code binaire Gray du cycle de l'UC précédent, c'est-à-dire qu'elles seront décalées d'une durée d’un cycle. Les restrictions suivantes s'appliquent à l'instruction GRY(474). ■ Restrictions au niveau de l'UC Remarque GRY(474) ne peut être utilisée que pour les modèles suivants d'UC et uniquement pour les UC fabriquées après le 1er février 2003 (numéro de lot 030201 ou ultérieur, y compris les UC ver. 2.0 ou supérieure). • CJ1M-CPU@@ • CJ1G-CPU@@H • CJ1H-CPU@@H • CS1G-CPU@@H • CS1H-CPU@@H • CS1D-CPU@@S La date de fabrication peut être confirmée en se référant au numéro de lot indiqué sur le côté ou la partie inférieure de l'UC. Les numéros de lot mentionnent la date de fabrication comme suit : AAMMJJ nnnn AA = les deux chiffres les plus à droite de l'année, MM = le mois comme valeur numérique, JJ = le jour du mois, nnnn = numéro de série Si GRY(474) est transférée à une UC qui ne prend pas en charge cette instruction et que le programme est lu à partir d'une console de programmation, “?” s'affiche pour GRY(474) pour indiquer que l'instruction est illégale. Si GRY(474) est exécutée avec une condition d'exécution ON dans une UC qui ne la prend pas en charge, une erreur se produit et l'exécution du programme s'arrête. 513 Chapitre 3-12 Instructions de conversion ■ Restrictions au niveau du CX-Programmer GRY(474) ne peut être utilisée qu'avec CX-Programmer version 3.2 ou supérieure. Drapeaux Nom Drapeau d'erreur Drapeau d'égalité Drapeau négatif Exemples Etiquette Fonctionnement ER ON si les bits 12 à 15 de C ne sont pas 0 hex (mode de fonctionnement = conversion code binaire Gray). ON si le décalage du point zéro dans C+1 n'est pas dans la résolution spécifiée (y compris les résolutions définies par l'utilisateur). ON si les bits 04 à 07 de C ne sont pas 0 hex (= mode binaire), 1 hex (= mode BCD) ou 2 hex (= mode 360°). ON si la compensation du reste codeur spécifiée dépasse la résolution définie par l'utilisateur lorsque les bits 00 à 03 de C sont 0 hex (= résoloution définie par l'utilisateur). ON si la valeur binaire convertie est inférieure à la compensation du reste codeur lorsque les bits 00 à 03 de C sont 0 hex (= résolution définie par l'utilisateur). ON si la valeur binaire convertie est inférieure à la résolution lorsque les bits 00 à 03 de C sont 0 hex (= résolution définie par l'utilisateur). OFF dans tous les autres cas. = OFF dans tous les cas. N OFF dans tous les cas. Si CIO 000000 est ON dans l'exemple suivant, le code binaire Gray dans CIO 0010 est converti conformément aux paramètres des données de contrôle dans D00000 à D00002, et le résultat est placé dans D00200 et D00201. 000000 GRY 514 C D00000 S 0010 D D00200 Chapitre 3-12 Instructions de conversion ■ 15 C : D00000 Exemple 1 : Conversion de données binaires avec une résolution 8 bits et un décalage du point zéro de 001A Hex 12 11 0 87 0 43 0 0 8 Résolution : 8 bits Mode de conversion : Mode binaire Mode de fonctionnement : Conversion code binaire Gray C+1 : D00001 001A Décalage du point zéro : 001A hex C+2 : D00002 0 000 Résolution définie par l'utilisateur : Non utilisé. S : 0010 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 Code binaire Gray Conversion et décalage. D : D00200 0017 D+1 : D00201 0000 ■ Résultat de la conversion binaire et décalage enregistrés. Exemple 2 : Conversion de données d'angle avec une résolution 10 bits et un décalage du point zéro de 0151 Hex 15 C : D00000 12 11 0 87 0 43 0 2 A Résolution : 10 bits Mode de conversion : 360° Mode 360 Mode de fonctionnement : Conversion code binaire Gray C+1 : D00001 0151 Décalage du point zéro : 0151 hex C+2 : D00002 0 000 Résolution définie par l'utilisateur : Non utilisé. S : 0010 0 0 0 0 0 0 0 1 1 0 1 0 1 0 0 1 Code binaire Gray Conversion et décalage. D : D00200 3488 D+1 : D00201 0000 Données d'angle enregistrées. 515 Chapitre 3-12 Instructions de conversion ■ 15 C : D00000 Exemple 3 : Conversion de données BCD avec un codeur absolu OMRON E6C2-AG5C (Résolution : 360/tour, compensation du reste : 76) et décalage du point zéro de 0000 Hex 12 11 0 87 43 0 1 0 0 Résolution : Spécifiée par l'utilisateur Mode de conversion : Mode BCD Mode de fonctionnement : Conversion code binaire Gray C+1 : D00001 0000 Décalage du point zéro : 0000 hex C+2 : D00002 1 04C Résolution définie par l'utilisateur : 360, compensation reste codeur : 04C hex (76 décimal) S : 0010 0 0 0 0 0 0 0 0 1 1 1 0 1 0 0 0 Code binaire Gray Conversion et décalage. D : D00200 0100 D+1 : D00201 0000 ■ 15 C : D00000 Exemple 4 : Conversion de données BCD avec un codeur absolu OMRON E6C2-AG5C (Résolution : 360/tour, compensation du reste : 76) et décalage du point zéro de 000A Hex 12 11 0 Résultat de la conversion BCD et décalage enregistrés. 87 43 0 1 0 0 Résolution : Spécifiée par l'utilisateur Mode de conversion : Mode BCD Mode de fonctionnement : Conversion code binaire Gray C+1 : D00001 000A Décalage du point zéro : 000A hex C+2 : D00002 1 04C Résolution définie par l'utilisateur : 360, compensation reste codeur : 04C hex (76 décimal) S : 0010 0 0 0 0 0 0 0 0 1 1 1 0 0 1 1 1 Code binaire Gray Conversion et décalage. 516 D : D00200 0100 D+1 : D00201 0000 Résultat de la conversion BCD et décalage enregistrés. Chapitre 3-13 Instructions logiques 3-13 Instructions logiques Cette section décrit les instructions qui effectuent des opérations logiques sur des données de mots. Instruction LOGICAL AND DOUBLE LOGICAL AND LOGICAL OR DOUBLE LOGICAL OR EXCLUSIVE OR DOUBLE EXCLUSIVE OR EXCLUSIVE NOR DOUBLE EXCLUSIVE NOR COMPLEMENT DOUBLE COMPLEMENT Mnémonique ANDW ANDL ORW ORWL XORW XORL XNRW XNRL COM COML Code fonction 034 610 035 611 036 612 037 613 029 614 Page 517 519 520 522 524 526 528 529 531 533 3-13-1 LOGICAL AND : ANDW(034) Objet Symbole du schéma contact Effectue le AND logique des bits correspondants dans des mots uniques de données de mots et/ou des constantes. ANDW(034) I1 I1: Entrée 1 I2 I2: Entrée 2 R R: Mot de résultat Variations Variations Zones de programmes applicables Spécifications de l’opérande Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat ANDW(034) @ANDW(034) Zones de Zones de programmes de bloc programmes de pas OK OK Tâches d'interruption OK Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque I1 CIO 0000 à CIO 6143 W000 à W511 H000 à H511 A000 à A959 T0000 à T4095 C0000 à C4095 D00000 à D32767 E00000 à E32767 En_00000 à En_32767 (n = 0 à C) Sousprogrammes OK I2 Non prise en charge. Non prise en charge. R A448 à A959 517 Chapitre 3-13 Instructions logiques Zone Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index Description I2 I1 R @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) #0000 à #FFFF --(binaire) DR0 à DR15 --,IR0 à ,IR15 –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 ANDW(034) effectue le AND logique des données spécifiées dans I1 et I2 et place le résultat dans R. • Le AND logique porte sur les bits correspondants dans I1 et I2 successivement. • Si le contenu des bits correspondants dans I1 et I2 est 1 ou si l'un des deux est 0, un 0 est placé comme résultat pour le bit correspondant dans R. I1, I2 → R I1 I2 R 1 1 0 0 1 0 1 0 1 0 0 0 Nom Drapeau d'erreur Drapeau d'égalité Etiquette ER OFF Drapeaux = Drapeau négatif N Précautions Fonctionnement ON lorsque le résultat est 0. OFF dans tous les autres cas. ON lorsque le bit le plus à gauche de R est 1. OFF dans tous les autres cas. Lorsque ANDW(034) est exécutée, le drapeau d'erreur se met sur OFF. Si, à la suite de AND, le contenu de R est 0000 hex, le drapeau d'égalité se met sur ON. Si, à la suite de AND, le bit le plus à gauche de R est 1, le drapeau négatif se met sur ON. 518 Chapitre 3-13 Instructions logiques 3-13-2 DOUBLE LOGICAL AND : ANDL(610) Objet Symbole du schéma contact Effectue le AND logique des bits correspondants dans des mots doubles de données de mots et/ou des constantes. ANDL(610) I1 I1: Entrée 1 I2 I2: Entrée 2 R R: Mot de résultat Variations Variations Zones de programmes applicables Spécifications de l’opérande Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat ANDL(610) @ANDL(610) Zones de programmes de bloc OK Tâches d'interruption OK Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index Zones de programmes de pas OK I1 Sousprogrammes OK I2 Non prise en charge. Non prise en charge. R CIO 0000 à CIO 6142 W000 à W510 H000 à H510 A000 à A958 A448 à A958 T0000 à T4094 C0000 à C4094 D00000 à D32766 E00000 à E32766 En_00000 à En_32766 (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) #00000000 à #FFFFFFFF --(binaire) ----,IR0 à ,IR15 –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 519 Chapitre 3-13 Instructions logiques Description ANDL(610) effectue le AND logique des données spécifiées dans I1, I1+1 et I2, I2+1 et place le résultat dans R, R+1. (I1, I1+1), (I2, I2+1) → (R, R+1) I1, I1+1 I2, I2+1 1 1 0 0 1 0 1 0 Nom Drapeau d'erreur Drapeau d'égalité Etiquette ER OFF R, R+1 1 0 0 0 Drapeaux = Drapeau négatif N Précautions Fonctionnement ON lorsque le résultat est 0. OFF dans tous les autres cas. ON lorsque le bit le plus à gauche de R est 1. OFF dans tous les autres cas. Lorsque ANDL(610) est exécutée, le drapeau d'erreur se met sur OFF. Si, à la suite de AND, le contenu de R, R+1 est 00000000 hex, le drapeau d'égalité se met sur ON. Si, à la suite de AND, le bit le plus à gauche de R+1 est 1, le drapeau négatif se met sur ON. Exemples Lorsque la condition d'exécution CIO 00000000 est ON, le AND logique est effectué sur les bits correspondants dans CIO 0011, CIO 0010 et CIO 0021, CIO 0020 et les résultats sont placés dans les bits correspondants de D00201 et D00200. S1: 0010 CH S1+1: 0011 CH 0020 CH S 2: S2+1: 0021 CH D: D00200 D+1 : D00201 Remarque : La flèche verticale indique le AND logique. 3-13-3 LOGICAL OR : ORW(035) Objet Symbole du schéma contact 520 Effectue le OR logique des bits correspondants dans des mots uniques de données de mots et/ou des constantes. ORW(035) I1 I1: Entrée 1 I2 I2: Entrée 2 R R: Mot de résultat Chapitre 3-13 Instructions logiques Variations Variations Zones de programmes applicables Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat ORW(035) @ORW(035) Zones de programmes de bloc OK Tâches d'interruption OK Spécifications de l’opérande Zone I1 Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index Description Zones de programmes de pas OK Sousprogrammes OK I2 Non prise en charge. Non prise en charge. R CIO 0000 à CIO 6143 W000 à W511 H000 à H511 A000 à A959 A448 à A959 T0000 à T4095 C0000 à C4095 D00000 à D32767 E00000 à E32767 En_00000 à En_32767 (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) #0000 à #FFFF --(binaire) DR0 à DR15 --,IR0 à ,IR15 –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 ORW(035) effectue le OR logique des données spécifiées dans I1 et I2 et place le résultat dans R. • Le OR logique porte sur les bits correspondants dans I1 et I2 successivement. • Si le contenu d'un des bits correspondants dans I1 et I2 est 1 ou si les deux sont 0, un 0 est placé comme résultat pour le bit correspondant dans R. I1 + I2 → R I1 1 1 I2 1 0 R 1 1 521 Chapitre 3-13 Instructions logiques I2 I1 0 0 R 1 0 1 0 Drapeaux Nom Etiquette Fonctionnement Drapeau d'erreur ER OFF Drapeau = ON lorsque le résultat est 0. d'égalité OFF dans tous les autres cas. Drapeau négatif N ON lorsque le bit le plus à gauche de R est 1. OFF dans tous les autres cas. Précautions Lorsque ORW(035) est exécutée, le drapeau d'erreur se met sur OFF. Si, à la suite de OR, le contenu de R est 0000 hex, le drapeau d'égalité se met sur ON. Si, à la suite de OR, le bit le plus à gauche de R est 1, le drapeau négatif se met sur ON. 3-13-4 DOUBLE LOGICAL OR : ORWL(611) Objet Symbole du schéma contact Effectue le OR logique des bits correspondants dans des mots doubles de données de mots et/ou des constantes. ORWL(611) I1 I1: Entrée 1 I2 I2: Entrée 2 R R: Mot de résultat Variations Variations Zones de programmes applicables Spécifications de l’opérande Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat ORWL(611) @ORWL(611) Zones de programmes de bloc OK Tâches d'interruption OK Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM 522 Zones de programmes de pas OK I1 CIO 0000 à CIO 6142 W000 à W510 H000 à H510 A000 à A958 T0000 à T4094 C0000 à C4094 D00000 à D32766 Sousprogrammes OK I2 Non prise en charge. Non prise en charge. R A448 à A958 Chapitre 3-13 Instructions logiques Zone Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index Description I2 I1 R E00000 à E32766 En_00000 à En_32766 (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) #00000000 à #FFFFFFFF --(binaire) ----,IR0 à ,IR15 –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 ORWL(611) effectue le OR logique des données spécifiées dans I1 et I2 comme données de mots doubles et place le résultat dans R, R+1. • Lorsque l'un des bits correspondants dans I1, I1+1, I2, et I2 +1 est 1, un 1 est placé pour le bit correspondant dans R+1. Lorsque l'un d'eux est 0, un 0 est placé pour le bit correspondant dans R+1. (I1, I1+1) + (I2, I2+1) → (R, R+1) I1, I1+1 1 1 0 0 I2, I2+1 1 0 1 0 R, R+1 1 1 1 0 Drapeaux Nom Etiquette Fonctionnement Drapeau d'erreur ER OFF Drapeau = ON lorsque le résultat est 0. d'égalité OFF dans tous les autres cas. Drapeau négatif N ON lorsque le bit le plus à gauche de R est 1. OFF dans tous les autres cas. Précautions Lorsque ORWL(611) est exécutée, le drapeau d'erreur se met sur OFF. Si, à la suite de OR, le contenu de R, R+1 est 00000000 hex, le drapeau d'égalité se met sur ON. Si, à la suite de OR, le bit le plus à gauche de R+1 est 1, le drapeau négatif se met sur ON. 523 Chapitre 3-13 Instructions logiques Exemples Lorsque la condition d'exécution CIO 00000000 est ON, le OR logique est effectué sur les bits correspondants dans CIO 0021, CIO 0020 et CIO 0301, CIO 0300 et les résultats sont placés dans les bits correspondants de D00501 et D00500. S1: 0020 CH S1+1: 0021 CH S2: 0300 CH S2+1: 0301 CH D: D00500 D+1 : D00501 Remarque : La flèche verticale indique le OR logique. 3-13-5 EXCLUSIVE OR : XORW(036) Objet Symbole du schéma contact Effectue le OR exclusif logique des bits correspondants dans des mots uniques de données de mots et/ou des constantes. XORW(036) I1 I1: Entrée 1 I2 I2: Entrée 2 R R: Mot de résultat Variations Variations Zones de programmes applicables Spécifications de l’opérande Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat XORW(036) @XORW(036) Zones de programmes de bloc OK Tâches d'interruption OK Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque 524 Zones de programmes de pas OK I1 CIO 0000 à CIO 6143 W000 à W511 H000 à H511 A000 à A959 T0000 à T4095 C0000 à C4095 D00000 à D32767 E00000 à E32767 Sousprogrammes OK I2 Non prise en charge. Non prise en charge. R A448 à A959 Chapitre 3-13 Instructions logiques Zone Zone EM avec banque Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index Description I2 I1 R En_00000 à En_32767 (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) #0000 à #FFFF --(binaire) DR0 à DR15 --,IR0 à ,IR15 –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 XORW(036) effectue le OR exclusif logique des données spécifiées dans I1 et I2 et place le résultat dans R. • Le OR exclusif logique porte sur les bits correspondants dans I1 et I2 successivement. • Si le contenu des bits correspondants de I1 et I2 diffère, un 1 est placé comme résultat dans le bit correspondant de R. Si le contenu des bits est identique, un 0 est placé dans le bit correspondant de R. I1, I2 + I1, I2 → R I1 I2 1 1 0 0 1 0 1 0 Nom Drapeau d'erreur Drapeau d'égalité Etiquette ER R 0 1 1 0 Drapeaux = Drapeau négatif N Précautions Fonctionnement OFF ON lorsque le résultat est 0. OFF dans tous les autres cas. ON lorsque le bit le plus à gauche de R est 1. OFF dans tous les autres cas. Lorsque XORW(036) est exécutée, le drapeau d'erreur se met sur OFF. Si, à la suite de OR, le contenu de R est 0000 hex, le drapeau d'égalité se met sur ON. Si, à la suite de OR, le bit le plus à gauche de R est 1, le drapeau négatif se met sur ON. 525 Chapitre 3-13 Instructions logiques 3-13-6 DOUBLE EXCLUSIVE OR : XORL(612) Objet Symbole du schéma contact Effectue le OR exclusif logique des bits correspondants dans des mots doubles de données de mots et/ou des constantes. XORL(612) I1 I1: Entrée 1 I2 I2: Entrée 2 R R: Mot de résultat Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Spécifications de l’opérande Zones de programmes de bloc OK Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index 526 Zones de programmes de pas OK I1 XORL(612) @XORL(612) Non prise en charge. Non prise en charge. Sousprogrammes OK I2 Tâches d'interruption OK R CIO 0000 à CIO 6142 W000 à W510 H000 à H510 A000 à A958 A448 à A958 T0000 à T4094 C0000 à C4094 D00000 à D32766 E00000 à E32766 En_00000 à En_32766 (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) #00000000 à #FFFFFFFF --(binaire) ----,IR0 à ,IR15 –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 Chapitre 3-13 Instructions logiques Description XORL(612) effectue le OR exclusif logique des données spécifiées dans I1 et I2 comme données de mots doubles et place le résultat dans R, R+1. • Lorsque le contenu d'un des bits correspondants dans I1, I1+1, I2, et I2 +1 diffère, un 1 est placé dans le bit correspondant de R, R+1. Si le contenu des bits est identique, un 0 est placé dans le bit correspondant de R, R+1. (I1, I1+1), (I2, I2+1) + (I1, I1+1), (I2, I2+1)→ (R, R+1) I1, I1+1 1 1 0 0 I2, I2+1 1 0 1 0 R, R+1 0 1 1 0 Drapeaux Nom Etiquette Fonctionnement Drapeau d'erreur ER OFF Drapeau d'égalité = ON lorsque le résultat est 0. OFF dans tous les autres cas. Drapeau négatif N ON lorsque le bit le plus à gauche de R est 1. OFF dans tous les autres cas. Précautions Lorsque XORL(612) est exécutée, le drapeau d'erreur se met sur OFF. Si, à la suite du OR exclusif, le contenu de R, R+1 est 00000000 hex, le drapeau d'égalité se met sur ON. Si, à la suite du OR exclusif, le bit le plus à gauche de R+1 est 1, le drapeau négatif se met sur ON. Exemples Lorsque la condition d'exécution CIO 00000000 est ON, le OR exclusif logique est effectué sur les bits correspondants dans CIO 0901, CIO 0900 et D01001, D01000 et les résultats sont placés dans les bits correspondants de D01201 et D01200. S: 0900 CH S1+1: 0901 CH S: D01000 S2+1: D01001 D: D01200 D+1 : D01201 Remarque : Ce symbole indique un OR exclusif logique. 527 Chapitre 3-13 Instructions logiques 3-13-7 EXCLUSIVE NOR : XNRW(037) Objet Symbole du schéma contact Effectue le NOR exclusif logique des mots uniques de données de mots et/ou des constantes correspondants. XNRW(037) I1 I1: Entrée 1 I2 I2: Entrée 2 R R: Mot de résultat Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Spécifications de l’opérande Zones de programmes de bloc OK Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index 528 Zones de programmes de pas OK I1 XNRW(037) @XNRW(037) Non prise en charge. Non prise en charge. Sousprogrammes OK I2 Tâches d'interruption OK R CIO 0000 à CIO 6143 W000 à W511 H000 à H511 A000 à A959 A448 à A959 T0000 à T4095 C0000 à C4095 D00000 à D32767 E00000 à E32767 En_00000 à En_32767 (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) #0000 à #FFFF --(binaire) DR0 à DR15 --,IR0 à ,IR15 –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 Chapitre 3-13 Instructions logiques Description XNRW(037) effectue le NOR exclusif logique des données spécifiées dans I1 et I2 et place le résultat dans R. • Le NOR exclusif logique porte sur les bits correspondants dans I1 et I2 successivement. • Si le contenu des bits correspondants de I1 et I2 diffère, un 0 est placé comme résultat dans le bit correspondant de R. Si les bits sont identiques, un 1 est placé dans le bit correspondant de R. I1, I2 + I1, I2 → R I1 I2 1 1 0 0 1 0 1 0 R 1 0 0 1 Drapeaux Nom Etiquette Fonctionnement Drapeau d'erreur ER OFF Drapeau = ON lorsque le résultat est 0. d'égalité OFF dans tous les autres cas. Drapeau négatif N ON lorsque le bit le plus à gauche de R est 1. OFF dans tous les autres cas. Précautions Lorsque XNRW(037) est exécutée, le drapeau d'erreur se met sur OFF. Si, à la suite de NOR, le contenu de R est 0000 hex, le drapeau d'égalité se met sur ON. Si, à la suite de NOR, le bit le plus à gauche de R est 1, le drapeau négatif se met sur ON. 3-13-8 DOUBLE EXCLUSIVE NOR : XNRL(613) Objet Symbole du schéma contact Effectue le NOR exclusif logique des bits correspondants dans des mots doubles de données de mots et/ou des constantes. XNRL(613) I1 I1: Entrée 1 I2 I2: Entrée 2 R R: Mot de résultat Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Zones de programmes de bloc OK Zones de programmes de pas OK XNRL(613) @XNRL(613) Non prise en charge. Non prise en charge. Sousprogrammes OK Tâches d'interruption OK 529 Chapitre 3-13 Instructions logiques Spécifications de l’opérande Zone I1 Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index Description I2 R CIO 0000 à CIO 6142 W000 à W510 H000 à H510 A000 à A958 A448 à A958 T0000 à T4094 C0000 à C4094 D00000 à D32766 E00000 à E32766 En_00000 à En_32766 (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) #00000000 à #FFFFFFFF --(binaire) ----,IR0 à ,IR15 –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 XNRL(613) effectue le NOR exclusif logique des données spécifiées dans I1 et I2 et place le résultat dans R, R+1. • Lorsque le contenu de l'un des bits correspondants dans I1, I1+1, I2, et I2 +1 diffère, un 0 est placé dans le bit correspondant de R, R+1. Si les bits sont identiques, un 1 est placé dans le bit correspondant de R, R+1. (I1, I1+1), (I2, I2+1) + (I1, I1+1), (I2, I2+1) → (R, R+1) I1, I1+1 1 1 0 0 I2, I2+1 1 0 1 0 R, R+1 1 0 0 1 Drapeaux Nom Etiquette Drapeau d'erreur ER Drapeau = d'égalité Drapeau négatif 530 N Fonctionnement OFF ON lorsque le résultat est 0. OFF dans tous les autres cas. ON lorsque le bit le plus à gauche de R est 1. OFF dans tous les autres cas. Chapitre 3-13 Instructions logiques Précautions Lorsque XNRL(613) est exécutée, le drapeau d'erreur se met sur OFF. Si, à la suite du NOR exclusif, le contenu de R, R+1 est 00000000 hex, le drapeau d'égalité se met sur ON. Si, à la suite du NOR exclusif, le bit le plus à gauche de R+1 est 1, le drapeau négatif se met sur ON. Exemples Lorsque la condition d'exécution CIO 00000000 est ON, le NOR exclusif logique est effectué sur les bits correspondants dans CIO 0801, CIO 0800 et CIO 0101, CIO 0100 et les résultats sont placés dans les bits correspondants de D00501 et D00500. S1: 0800 CH S1+1: 0801 CH 0100 CH S2: S2+1: 0101 CH D: D00500 D+1 : D00501 Remarque : Ce symbole indique un NOR exclusif logique. 3-13-9 COMPLEMENT : COM(029) Objet Symbole du schéma contact Met sur OFF tous les bits sur ON et met sur ON tous les bits sur OFF dans Wd. COM(029) Wd Wd: Mot Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Spécifications de l’opérande Zones de programmes de bloc OK Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zones de programmes de pas OK COM(029) @COM(029) Non prise en charge. Non prise en charge. Sousprogrammes OK Tâches d'interruption OK Wd CIO 0000 à CIO 6143 W000 à W511 H000 à H511 A448 à A959 T0000 à T4095 531 Chapitre 3-13 Instructions logiques Zone Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index Description Wd C0000 à C4095 D00000 à D32767 E00000 à E32767 En_00000 à En_32767 (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) --DR0 à DR15 --,IR0 à ,IR15 –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 COM(029) inverse l'état de chaque bit spécifié dans Wd. Wd→Wd : 1 → 0 et 0 → 1 Remarque Lorsque vous utilisez l'instruction COM, n'oubliez pas que l'état de chaque bit changera à chaque cycle pour lequel la condition d'exécution est ON. Drapeaux Nom Etiquette Fonctionnement Drapeau d'erreur ER OFF Drapeau = ON lorsque le résultat est 0. d'égalité OFF dans tous les autres cas. Drapeau négatif N ON lorsque le bit le plus à gauche de R est 1. OFF dans tous les autres cas. Précautions Lorsque COM(029) est exécutée, le drapeau d'erreur se met sur OFF. Si, à la suite de COM, le contenu de R est 0000 hex, le drapeau d'égalité se met sur ON. Si, à la suite de COM, le bit le plus à gauche de R est 1, le drapeau négatif se met sur ON. Exemples 532 Si CIO 000000 est ON dans l'exemple suivant, l'état de chaque bit dans D00100 est inversé. Chapitre 3-13 Instructions logiques 3-13-10 DOUBLE COMPLEMENT : COML(614) Objet Met sur OFF tous les bits sur ON et met sur ON tous les bits sur OFF dans Wd et Wd+1. Symbole du schéma contact COML(614) Wd Wd : Mot Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables Spécifications de l’opérande Zones de programmes de bloc OK Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index Description Zones de programmes de pas OK COML(614) @COML(614) Non prise en charge. Non prise en charge. Sousprogrammes OK Tâches d'interruption OK Wd CIO 0000 à CIO 6142 W000 à W510 H000 à H510 A448 à A958 T0000 à T4094 C0000 à C4094 D00000 à D32766 E00000 à E32766 En_00000 à En_32766 (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) ------,IR0 à ,IR15 –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 COML(614) inverse l'état de chaque bit spécifié dans Wd et Wd+1. (Wd+1, Wd)→(Wd+1, Wd) Remarque Lorsque vous utilisez l'instruction COM, n'oubliez pas que l'état de chaque bit changera à chaque cycle pour lequel la condition d'exécution est ON. 533 Chapitre 3-14 Instructions mathématiques spéciales Drapeaux Nom Etiquette Fonctionnement Drapeau d'erreur ER OFF Drapeau = ON lorsque le résultat est 0. d'égalité OFF dans tous les autres cas. Drapeau négatif N ON lorsque le bit le plus à gauche de R est 1. OFF dans tous les autres cas. Précautions Lorsque COML(614) est exécutée, le drapeau d'erreur se met sur OFF. Si, à la suite de COML, le contenu de R, R+1 est 00000000 hex, le drapeau d'égalité se met sur ON. Si, à la suite de COML, le bit le plus à gauche de R+1 est 1, le drapeau négatif se met sur ON. Exemples Si CIO 000000 est ON dans l'exemple suivant, l'état de chaque bit dans D00100 et D00101 est inversé. 3-14 Instructions mathématiques spéciales Cette section décrit les instructions utilisées pour les calculs mathématiques spéciaux. Instruction BINARY ROOT BCD SQUARE ROOT ARITHMETIC PROCESS FLOATING POINT DIVIDE BIT COUNTER Mnémonique ROTB ROOT APR FDIV BCNT Code fonction 620 072 069 079 067 Page 534 536 540 552 556 3-14-1 BINARY ROOT : ROTB(620) Objet Symbole du schéma contact Calcule la racine carrée du contenu binaire signé 32 bits (valeur positive) des mots spécifiés et place la partie entière du résultat dans le mot de résultat spécifié. ROTB(620) S S: Premier mot source R R: Mot de résultat Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat 534 ROTB(620) @ROTB(620) Non prise en charge. Non prise en charge. Chapitre 3-14 Instructions mathématiques spéciales Zones de programmes applicables Spécifications de l’opérande Zones de programmes de bloc OK Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index Description Zones de programmes de pas OK Sousprogrammes OK Tâches d'interruption OK S R CIO 0000 à CIO 6142 CIO 0000 à CIO 6143 W000 à W510 W000 à W511 H000 à H510 H000 à H511 A000 à A958 A448 à A959 T0000 à T4094 T0000 à T4095 C0000 à C4094 C0000 à C4095 D00000 à D32766 D00000 à D32767 E00000 à E32766 E00000 à E32767 En_00000 à En_32766 En_00000 à En_32767 (n = 0 à C) (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) #00000000 à #FFFFFFFF --(binaire) DR0 à DR15 --,IR0 à ,IR15 –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 ROTB(620) calcule la racine carrée du nombre binaire 32 bits dans S+1 et S, et place la partie entière du résultat dans R. Le reste non entier est supprimé. S+1 S Données binaires (32 bits) R Données binaires (16 bits) La plage de données pouvant être spécifiée pour les mots S+1 et S est comprise entre 0000 0000 et 3FFF FFFF. Si un nombre compris entre 4000 0000 et 7FFF FFFF est spécifié, il sera traité comme 3FFF FFFF pour le calcul de la racine carrée. Une erreur se produit si le contenu des mots sources est supérieur à 7FFF FFFF, à savoir si le bit 15 de S+1 égale 1. 535 Chapitre 3-14 Instructions mathématiques spéciales Drapeaux Nom Drapeau d'erreur Etiquette Fonctionnement ER ON si le bit 15 de S+1 est 1 (ON). OFF dans tous les autres cas. = ON lorsque le résultat est 0000. OFF dans tous les autres cas. OF ON si le contenu de S+1 et S est compris entre 4000 0000 et 7FFF FFFF. OFF dans tous les autres cas. UF OFF Drapeau d'égalité Drapeau de dépassement Drapeau de dépassement négatif Drapeau négatif N OFF Précautions Le contenu de S+1 et S doit être inférieur à 8000 0000. Les opérandes de cette instruction (S+1, S et R) sont tous traités comme valeurs binaires. Si les données d'entrée sont de type BCD, utilisez l'instruction ROOT(072). Exemple Si CIO 000000 est ON dans l'exemple suivant, ROTB(620) calcule la racine carrée des données dans CIO 0002 et CIO 0001, et écrit la partie entière du résultat dans D00100. CIO 0002 CIO 0001 014B 5A91 D00100 Calcul de la racine carrée (reste supprimé) 1234 3-14-2 BCD SQUARE ROOT : ROOT(072) Objet Symbole du schéma contact Calcule la racine carrée d'un nombre BCD à 8 chiffres et place la partie entière du résultat dans le mot de résultat spécifié. ROOT(072) S S: Premier mot source R R: Mot de résultat Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables 536 Zones de programmes de bloc OK Zones de programmes de pas OK ROOT(072) @ROOT(072) Non prise en charge. Non prise en charge. Sousprogrammes OK Tâches d'interruption OK Chapitre 3-14 Instructions mathématiques spéciales Spécifications de l’opérande Zone Zone CIO Zone Travail Zone Bit de maintien Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index Description S R CIO 0000 à CIO 6142 CIO 0000 à CIO 6143 W000 à W510 W000 à W511 H000 à H510 H000 à H511 A000 à A958 A448 à A959 T0000 à T4094 T0000 à T4095 C0000 à C4094 C0000 à C4095 D00000 à D32766 D00000 à D32767 E00000 à E32766 E00000 à E32767 En_00000 à En_32766 En_00000 à En_32767 (n = 0 à C) (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) #00000000 à #99999999 --(BCD) --DR0 à DR15 --,IR0 à ,IR15 –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 ROOT(072) calcule la racine carrée du nombre BCD à 8 chiffres dans S+1 et S, et place la partie entière du résultat dans R. Le reste non entier est supprimé. S+1 S Données BCD (8 chiffres) R Données BCD (4 chiffres) Drapeaux Nom Drapeau d'erreur Drapeau d'égalité Etiquette Fonctionnement ER ON si les données dans S+1 et S ne sont pas de type BCD. OFF dans tous les autres cas. = ON lorsque le résultat est 0000. OFF dans tous les autres cas. Précautions Les opérandes de cette instruction (S+1, S et R) sont tous traités comme valeurs BCD. Si les données d'entrée sont binaires, utilisez l'instruction ROTB(620). Exemples Racine carrée d'un nombre à 8 chiffres Si CIO 000000 est ON dans l'exemple suivant, ROOT(072) calcule la racine carrée des données dans D00001 et D00000, et écrit la partie entière du résultat dans D00100. Remarque Les chiffres après la décimale sont tronqués pour les nombres à 8 chiffres. 537 Chapitre 3-14 Instructions mathématiques spéciales Arrondi Racine carrée d'un nombre à 4 chiffres L'exemple suivant indique la façon d'effectuer la racine carrée d'un nombre à 4 chiffres et d'arrondir le résultat. Cet exemple de programme calcule la racine carrée du nombre à 4 chiffres dans CIO 0010, arrondit le résultat et l'écrit dans CIO 0011. (En gros, le nombre à 4 chiffres est multiplié par 10 000 (1002) et le résultat est divisé par 100, augmentant la précision du calcul par un facteur 100.) Remarque Les chiffres après la décimale sont arrondis pour les nombres à 4 chiffres. 538 Chapitre 3-14 Instructions mathématiques spéciales Les valeurs après la décimale doivent être arrondies. @BSET 1 @MOV 2 @ROOT 3 @MOV 4 @MOV @MOVD 5 @MOVD @INC 1,2,3... 1. Les mots sources (D00101 et D00100) doivent être effacés dans 0000 0000. 0 D00101 0 0 0 0 0000 D00100 0 0 0 0000 2. Le nombre à 4 chiffres est déplacé dans D00101. 6 6 010 0 1 7 D00101 0 1 7 0 D00100 0 0 0 3. ROOT(072) calcule la racine carrée de D00101 et D00100, et écrit le résultat dans D00102. 539 Chapitre 3-14 Instructions mathématiques spéciales D00101 D00100 6017 0000 60, 170, 000 = 7, 756,932… Calcul de la racine carrée (Reste supprimé) D00100 7756 4. D00103 et le mot de résultat, CIO 0011, sont effacés à 0000 0000. 0 D00103 0 0 0 0 CIO 0011 0 0 0 0000 0000 5. Le résultat du calcul de la racine carrée est divisé par 100, la partie entière étant écrite dans CIO 0011 et le reste passant dans D00103. 7 0 D00102 7 5 6 CIO 0011 0 7 7 5 D00103 6 0 0 6. Si le contenu de D00103 est supérieur à 4900, CIO 0011 est incrémenté de 1. Dans ce cas, le résultat est 78. 5600 > 4900? CIO 0011 0 0 7 8 3-14-3 ARITHMETIC PROCESS : APR(069) Objet Symbole du schéma contact Calcule le sinus, le cosinus ou une extrapolation linéaire des données sources. La fonction d'extrapolation linéaire permet d'établir une approximation d'une relation entre X et Y avec des segments de ligne. APR(069) C C: Mot de contrôle S S: Données sources R R: Mot de résultat Variations Variations Exécutée à chaque cycle pour la condition ON Exécutée une fois pour la différentiation sur front montant Exécutée une fois pour la différentiation sur front descendant Spécification de rafraîchissement immédiat Zones de programmes applicables 540 Zones de programmes de bloc OK Zones de programmes de pas OK APR(069) @APR(069) Non prise en charge. Non prise en charge. Sousprogrammes OK Tâches d'interruption OK Chapitre 3-14 Instructions mathématiques spéciales Opérandes Fonction sinus (C = 0000 hex.) Opérande Valeur C 0000 hex S 0000 à 0900 (BCD) D 0000 à 9999 (BCD) 9999 (BCD) Plage de données --0° à 90° 0,0000 à 0,9999 1.0000 Fonction cosinus (C = 0001 hex.) Opérande Valeur C 0001 hex S 0000 à 0900 (BCD) D 0000 à 9999 (BCD) 9999 (BCD) Plage de données --0° à 90° 0,0000 à 0,9999 1.0000 Fonction extrapolation linéaire (C = adresse zone de données) Opérande Valeur C Adresse de la zone de données S Données BCD 16 bits non signées Données binaires 16 bits non signées Données binaires 16 bits signées1 Données binaires 32 bits signées1 Données à virgule flottante1 D Données BCD 16 bits non signées Données binaires 16 bits non signées Données binaires 16 bits signées1 Données binaires 32 bits signées1 Données à virgule flottante1 Remarque Plage de données --0000 à 9999 0 à 65 535 −32 768 à 32 767 −2 147 483 648 à 2 147 483 647 −∞, −3.402823 × 1038 to −1,175494 × 10−38, 1.175494 × 10−38 à 3,402823 × 1038, +∞ 0000 à 9999 0 à 65 535 −32 768 à 32 767 −2 147 483 648 à 2 147 483 647 −∞, −3.402823 × 1038 to −1,175494 × 10−38, 1.175494 × 10−38 à 3,402823 × 1038, +∞ 1. Les données binaires signées et les données à virgule flottante sont prises en charge uniquement par les UC CS1-H, CJ1-H, CJ1M et CS1D. 2. Si C est une adresse de mot, APR(069) extrapole la valeur Y pour la valeur X dans S sur la base des coordonnées (formant des segments de ligne) saisies au préalable dans la table commençant à C. Consultez la section Description ci-dessous pour plus de détails. Spécifications de l’opérande Zone Zone CIO Zone Travail Zone Bit de maintien C CIO 0000 à CIO 6143 W000 à W511 H000 à H511 S R 541 Chapitre 3-14 Instructions mathématiques spéciales Zone Zone Bit auxiliaire Zone Temporisateur Zone Compteur Zone DM Zone EM sans banque Zone EM avec banque Adresses DM/EM indirectes en binaire Adresses DM/EM indirectes en BCD Constantes Registres de données Registres d'index Adressage indirect à l’aide de registres d’index Description C S R A000 à A959 A448 à A959 T0000 à T4095 C0000 à C4095 D00000 à D32767 E00000 à E32767 En_00000 à En_32767 (n = 0 à C) @ D00000 à @ D32767 @ E00000 à @ E32767 @ En_00000 à @ En_32767 (n = 0 à C) *D00000 à *D32767 *E00000 à *E32767 *En_00000 à *En_32767 (n = 0 à C) Valeurs spécifiées uniquement ----DR0 à DR15 --,IR0 à ,IR15 –2048 à +2047 ,IR0 à –2048 à +2047 ,IR15 DR0 à DR15, IR0 à IR15 ,IR0+(++) à ,IR15+(++) ,–(– –)IR0 à, –(– –)IR15 Le fonctionnement de APR(069) dépend du mot de contrôle C. Si C est 0000 ou 0001, APR(069) calcule le sinus ou le cosinus de S avec S en unités de dixièmes de degrés. Si C est une adresse de mot, APR(069) extrapole la valeur Y pour la valeur X dans S sur la base des coordonnées (formant des segments de ligne) saisies au préalable dans la table commençant à C. Fonction sinus (C=0000) Si C est 0000, APR(069) calcule le SIN(S) et écrit le résultat dans R. La plage pour S est comprise entre 0000 et 0900 BCD (0,0° à 90,0°) et la plage pour R est comprise entre 0000 et 9999 BCD (0,0000 à 0,9999). Le reste du résultat au delà de la quatrième décimale est supprimé. Fonction cosinus (C=0001) Si C est 0001, APR(069) calcule le COS(S) et écrit le résultat dans R. La plage pour S est comprise entre 0000 et 0900 BCD (0,0° à 90,0°) et la plage pour R est comprise entre 0000 et 9999 BCD (0,0000 à 0,9999). Le reste du résultat au delà de la quatrième décimale est supprimé. Extrapolation linéaire L'extrapolation linéaire APR(069) est spécifiée lorsque C est une adresse de mot. Le contenu du mot C spécifie le nombre de coordonnées dans la table de données commençant à C+2, la forme des données sources et si les données sont de type BCD ou binaire. Dans les UC CS1-H, CJ1-H, CJ1M et CS1D, les données sources peuvent également être des données binaires signées ou des données à virgule flottante. 542 Chapitre 3-14 Instructions mathématiques spéciales Données entières non signées (binaires ou BCD) 15 14 13 12 11 10 9 8 0 0 C 0 0 0 7 6 5 4 3 2 1 0 Nombre de coordonnées moins un (m-1), 00 à FF hex (1 ≤ m ≤ 256) Spécification de la virgule flottante pour S et D 0: Données entières Spécification des données signées pour S et D 0: Données binaires non signées Forme des données sources 0: f(x) = f(S) 1: f(x) = f(Xm − S) Format des données de sortie (D) 0: Binaire 1: BCD Format des données d'entrée (S) 0: Binaire 1: BCD Données entières signées (binaires) 15 14 13 12 11 10 9 C 0 0 0 0 1 0 8 7 6 5 4 3 2 1 0 0 Nombre de coordonnées moins un (m-1), 00 à FF hex (1 ≤ m ≤ 256) Spécification de virgule flottante pour S et D 0: Données entières Spécification de longueur des données pour S et D (remarque 1) 0: Données binaires 16 bits signées 1: Données binaires 32 bits signées Spécification des données signées pour S et D 1: Données binaires signées Données à virgule flottante simple précision 15 14 13 12 11 10 9 C 0 0 0 0 0 0 1 8 7 6 5 4 3 2 1 0 0 Nombre de coordonnées moins un (m-1), 00 à FF hex (1 ≤ m ≤ 256) Spécification de virgule flottante pour S et D 1: Données à virgule flottante simple précision Si des données BCD ou binaires 16 bits sont utilisées, les données du segment de ligne sont contenues dans les mots C+ 1 à C+2m+2. Si des données binaires 32 bits ou virgule flottante sont utilisées (UC CS1-H, CJ1-H et CJ1M uniquement), les données du segment de ligne sont contenues dans les mots C+ 1 à C+4m+4. Les bits 00 à 07 contiennent le nombre (binaire) des coordonnées de ligne moins 1, m–1. Les bits 08 à 12 ne sont pas utilisés. Le bit 13 spécifie f(x)=f(S) ou f(x)=f(Xm–S) : OFF spécifie f(x)=f(S) et ON spécifie f(x)=f(Xm–S). Le bit 14 détermine si la sortie est BCD ou binaire : OFF spécifie binaire et ON spécifie 543 Chapitre 3-14 Instructions mathématiques spéciales BCD. Le bit 15 détermine si l'entrée est BCD ou binaire : OFF spécifie binaire et ON spécifie BCD. Données BCD 16 bits, binaires 16 bits (signées ou non signées) ou données BCD 16 bits C+1 X0 (*1) C+2 Y0 C+3 X1 C+4 Y1 C+5 X2 C+6 Y2 Données binaires 32 bits signées Données à virgule flottante C+1 X0 (16 bits les plus à droite) C+1 X0 (16 bits les plus à droite) C+2 X0 (16 bits les plus à gauche) C+2 X0 (16 bits les plus à gauche) C+3 Y0 (16 bits les plus à droite) C+3 Y0 (16 bits les plus à droite) C+4 Y0 (16 bits les plus à gauche) C+4 Y0 (16 bits les plus à gauche) C+5 X1 (16 bits les plus à droite) C+5 X1 (16 bits les plus à droite) C+6 X1 (16 bits les plus à gauche) C+6 X1 (16 bits les plus à gauche) C+7 Y1 (16 bits les plus à droite) C+7 Y1 (16 bits les plus à droite) C+8 Y1 (16 bits les plus à gauche) Xn à Yn C+ (2m+1) Xm C+ (2m+2) Ym Remarque : Ecrivez Xm (valeur X max. dans la table) dans le mot C+1 lorsque les données E/S dans S et D contiennent des données signées (bit 11 de C = 0). C+8 Y1 (16 bits les plus à gauche) à à à C+ (4n+1) Xn (16 bits les plus à droite) C+ (4n+1) Xn (16 bits les plus à droite) C+ (4n+2) Xn (16 bits les plus à gauche) C+ (4n+2) Xn (16 bits les plus à gauche) C+ (4n+3) Yn (16 bits les plus à droite) C+ (4n+3) Yn (16 bits les plus à droite) C+ (4n+4) Yn (16 bits les plus à gauche) C+ (4n+4) Yn (16 bits les plus à gauche) à à à à C+ (4m+1) Xm (16 bits les plus à droite) C+ (4m+1) Xm (16 bits les plus à droite) C+ (4m+2) Xm (16 bits les plus à gauche) C+ (4m+2) Xm (16 bits les plus à gauche) C+ (4m+3) Ym (16 bits les plus à droite) C+ (4m+3) Ym (16 bits les plus à droite) C+ (4m+4) Ym (16 bits les plus à gauche) C+ (4m+4) Ym (16 bits les plus à gauche) Remarque Les coordonnées X doivent être par ordre ascendant : X1 < X2 < ... < Xm. Entrez toutes les valeurs de (Xn, Yn) comme données binaires, indépendamment du format de données spécifié dans le mot de contrôle C. Fonctionnement de la fonction d'extrapolation linéaire APR(069) traite les données d'entrée spécifiées dans S au moyen de l'équation suivante et des données du segment de ligne (Xn, Yn) spécifiées dans la table commençant à C+1. Le résultat est placé dans le(s) mot(s) de destination spécifié(s) par D. Y (données binaires) Ymax Y0 X0 A Xmax B C X (données binaires) 1. Pour S < X0 Valeur convertie = Y0 2. 544 Pour X0 ≤ S ≤ Xmax, si Xn < S < Xn+1 Valeur convertie = Yn +[{Yn + 1 − Yn}/{Xn + 1 − Xn}] × [données d'entrée S − Xn} Chapitre 3-14 Instructions mathématiques spéciales Y (données binaires) Equation : f(Y)= Y n+ Yn+1−Yn Xn+1−Xn (S−Xn) Yn+1 D Résultat du calcul Yn+1−Yn Yn Xn+1−Xn S−Xn Xn S Xn+1 X (données binaires) Données d'entrée 3. Xmax < S Valeur convertie = Ymax Jusque 256 points limites peuvent être stockés dans la table des données de segment de ligne commençant à C+1. Les 5 types de données d’E/S suivants peuvent être utilisés : • Données BCD 16 bits non signées • Données binaires 16 bits non signées • Données binaires 16 bits signées (CS1-H/CJ1-H/CJ1M uniquement) • Données binaires 32 bits signées (CS1-H/CJ1-H/CJ1M uniquement) • Données à virgule flottante simple précision (CS1-H/CJ1-H/CJ1M uniquement) Réglage du format de données dans le mot de contrôle C • Données BCD 16 bits non signées Les données d'entrée et/ou les données de sortie peuvent être des données BCD 16 bits non signées. La fonction d'extrapolation linéaire peut donc être réglée pour opérer sur la valeur spécifiée dans S directement ou sur Xm–S. (Xm est la valeur maximum de X dans les données du segment de ligne.) Nom du paramètre Format des données d'entrée (S) Format des données de sortie (D) Forme des données sources Spécification des données signées pour S et D Spécification de la longueur des données pour S et D Spécification de virgule flottante Bit dans C Paramètre 15 0: Binaire 1: BCD 14 0: Binaire 1: BCD 13 0: Opération sur S 1: Opération sur Xm–S 11 0: Données non signées 10 Invalide (fixé à 16 bits) 09 0: Données entières 545 Chapitre 3-14 Instructions mathématiques spéciales • Données binaires 16 bits non signées Les données d'entrée et/ou les données de sortie peuvent être des données binaires 16 bits non signées. La fonction d'extrapolation linéaire peut donc être réglée pour opérer sur la valeur spécifiée dans S directement ou sur Xm–S. (Xm est la valeur maximum de X dans les données du segment de ligne.) Nom du paramètre Format des données d'entrée (S) Format des données de sortie (D) Forme des données sources Spécification des données signées pour S et D Spécification de la longueur des données pour S et D Spécification de virgule flottante Bit dans C Paramètre 15 0: Binaire 1: BCD 14 0: Binaire 1: BCD 13 0: Opération sur S 1: Opération sur Xm–S 11 0: Données non signées 10 Invalide (fixé à 16 bits) 09 0: Données entières • Données binaires 16 bits signées (CS1-H, CJ1-H, CJ1M et CS1D uniquement) Nom du paramètre Format des données d'entrée (S) Format des données de sortie (D) Forme des données source Spécification des données signées pour S et D Spécification de la longueur des données pour S et D Spécification de virgule flottante Bit dans C 15 14 13 11 Paramètre 0: Binaire 0: Binaire 0 1: Données signées 10 0: Données binaires 16 bits signées 0: Données entières 09 • Données binaires 32 bits signées (CS1-H, CJ1-H, CJ1M et CS1D uniquement) Nom du paramètre Format des données d'entrée (S) Format des données de sortie (D) Forme des données source Spécification des données signées pour S et D Spécification de la longueur des données pour S et D Spécification de virgule flottante Bit dans C 15 14 13 11 Paramètre 0: Binaire 0: Binaire 0 1: Données signées 10 1: Données binaires 32 bits signées 0: Données entières 09 Remarque Si la “Spécification de la longueur des données pour S et D” dans le bit 10 de C est réglée sur 1 et qu'une constante de 16 bits est entrée pour S, les données d'entrée sont converties en données binaires 32 bits signées avant le calcul de l'extrapolation linéaire. • Données à virgule flottante (CS1-H, CJ1-H, CJ1M et CS1D uniquement) Nom du paramètre Format des données d'entrée (S) Format des données de sortie (D) Forme des données source Spécification des données signées pour S et D Spécification de la longueur des données pour S et D Spécification de virgule flottante Bit dans C 15 14 13 11 0: Binaire 0: Binaire 0 0 Paramètre 10 0 09 1: Données à virgule flottante Remarque Si la “Spécification de la virgule flottante” dans le bit 09 de C est réglée sur 1, une constante ne peut pas être entrée pour S. 546 Chapitre 3-14 Instructions mathématiques spéciales Drapeaux Nom Drapeau d'erreur Précautions Etiquette Fonctionnement ER ON si C est une constante supérieure à 0001. ON si C est une adresse de mot mais que les coordonnées de X ne sont pas par ordre ascendant (X1 ≤ X2 ≤ ... ≤ Xm). Drapeau d'égalité = Drapeau négatif N ON si C est une adresse de mot et que les bits 9, 11 et 15 de C indiquent une entrée BCD, mais S n'est pas de type BCD. ON si C est une adresse de mot et que le bit 9 de C indique des données à virgule flottante, mais S est une constante à mot unique. ON si C est 0000 ou 0001 mais S n'est pas de type BCD compris entre 0000 et 0900. OFF dans tous les autres cas. ON lorsque le résultat est 0000. OFF dans tous les autres cas. ON si le bit 15 de R est ON. OFF dans tous les autres cas. Le résultat effectif de SIN(90°) et COS(0°) est 1, mais 9999 (0,9999) est écrit dans R. Une erreur se produit si C est une constante supérieure à 0001. Une erreur se produit si l'extrapolation linéaire est spécifiée mais que les coordonnées de X ne sont pas par ordre ascendant (X1 < X2 < ... < Xm). Une erreur se produit si l'extrapolation linéaire est spécifiée et que l'entrée BCD est spécifiée (bit 15 de C sur ON) mais si S n'est pas de type BCD. Une erreur se produit si une fonction trigonométrique est spécifiée (C=0000 ou 0001) mais si S n'est pas de type BCD compris entre 0000 et 0900. Exemples Fonction sinus (C : #0000) L'exemple suivant illustre l'utilisation de APR(069) pour calculer le sinus de 30°. Données sources Résultat S :D00000 0 101 100 R :D00100 10-1 10-1 10-2 10-3 10-4 0 3 0 0 5 0 0 0 Définissez les données sources dans Les données de résultat comportent quatre chiffres significatifs ; le cinquième et les chiffres 10-1 degrés. (0000 à 0900, BCD) ultérieurs sont ignorés. (0000 à 9999, BCD) Fonction cosinus (C : #0001) L'exemple suivant illustre l'utilisation de APR(069) pour calculer le cosinus de 30°. (SIN(30) = 0,8660) Données sources Résultat S :D00010 0 101 100 R :D00200 10-1 0 3 0 0 Définissez les données sources dans 10-1 degrés. (0000 à 0900, BCD) 10-1 10-2 10-3 10-4 8 6 6 0 Les données de résultat comportent quatre chiffres significatifs ; le cinquième et les chiffres supérieurs sont ignorés. (0000 à 9999, BCD) 547 Chapitre 3-14 Instructions mathématiques spéciales Extrapolation linéaire (C : adresse de mot) Utilisation de données binaires ou BCD 16 bits non signées APR(069) traite les données d'entrée spécifiées dans S sur la base des données de contrôle dans C et des données de segment de ligne spécifiées dans la table commençant à C+1. Le résultat est placé dans D. Y Coordonnée Mot C+1 C+2 Xm (valeur X max.) Y0 C+3 X1 C+4 Y1 C+5 X2 C+6 Y2 Ym Y4 Y3 Y1 Y2 Y0 ↓ C+(2m+1) C+(2m+2) X0 X1 X2 ↓ Xm (valeur X max.) Y X3 m X 4 X Xm • Yn = f(Xn), Y0 = f(X0) • Assurez-vous que Xn–1 < Xn dans tous les cas. • Saisissez toutes les données de (Xn, Yn) comme données binaires. Cet exemple indique comment réaliser une extrapolation linéaire avec 12 coordonnées. Le bloc de données est continu, comme il se doit, de D00000 à D00026 (C à C + (2 × 12 + 2)). Les données d'entrée sont extraites de CIO 0010, et le résultat est placé dans CIO 0011. Contenu Coordonnée D00000 D00001 D00002 D00003 D00004 D00005 D00006 ↓ Bit 15 Bit 00 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 000B Hex 05F0 Hex 0000 Hex 0005 Hex 0F00 Hex 001A Hex 0402 Hex X12 Y0 X1 Y1 X2 Y2 ↓ ↓ x=S (m-1 = 11 : 12 segments de ligne) Sortie et entrée binaires D00025 05F0 Hex X12 D00026 1F20 Hex Y12 Dans ce cas, le mot source, CIO 0010, contient 0014, et f(0014) = 0726 est placé dans R, CIO 0011. 548 Chapitre 3-14 Instructions mathématiques spéciales Y $1F20 $0F00 (x,y) $0726 $0402 X (0,0) $0005 $0014 $001A $05F0 Le calcul de l'extrapolation linéaire est repris ci-dessous. 0402 – 0F00 Y = 0F00 + --------------------------------- × ( 0014 – 0015 ) 001A – 0005 = 0F00 – ( 0086 × 000F ) = 0726 Les valeurs sont toutes hexadécimales (Hex). 549 Chapitre 3-14 Instructions mathématiques spéciales Extrapolation linéaire (C : adresse de mot) Utilisation de données binaires 32 bits signées (CS1-H, CJ1-H, CJ1M et CS1D uniquement) Dans cet exemple, l'instruction APR(069) est utilisée pour convertir la hauteur de liquide dans un réservoir en volume de liquide sur la base de la forme du réservoir de stockage. Table de conversion de la hauteur de liquide en volume de liquide (données binaires 32 bits signées) C+1 X0 (16 bits les plus à droite) C+2 X0 (16 bits les plus à gauche) C+3 Y0 (16 bits les plus à droite) C+4 Y0 (16 bits les plus à gauche) C+5 X1 (16 bits les plus à droite) Variation par rapport à la norme = X C+6 X1 (16 bits les plus à gauche) C+7 Y1 (16 bits les plus à droite) Volume de liquide = Y C+8 Y1 (16 bits les plus à gauche) à à C+ (4n+1) Xn (16 bits les plus à droite) C+ (4n+2) Xn (16 bits les plus à gauche) C+ (4n+3) Yn (16 bits les plus à droite) C+ (4n+4) Yn (16 bits les plus à gauche) à à C+ (4m+1) Xm (16 bits les plus à droite) C+ (4m+2) Xm (16 bits les plus à gauche) C+ (4m+3) Ym (16 bits les plus à droite) C+ (4m+4) Ym (16 bits les plus à gauche) 000000 APR C Extrapolation linéaire de la table S R Y : Volume de liquide Ym R R+1 X : Variati