AP S5-155U, CPU 948 - Siemens...ment au manuel. Seules des personnes qualifiées sont autorisées à...
Transcript of AP S5-155U, CPU 948 - Siemens...ment au manuel. Seules des personnes qualifiées sont autorisées à...
Sommaire
Introduction1
Programme utilisateur2
Traitement du programme3
Etats de fonctionnement et niveaux de traitement de programme
4
Traitement des interruptions etdes erreurs
5
Fonctions spéciales intégrées6
Bloc de données étendu DX 07
Contenu et organisation de lamémoire
8
Accès à la mémoire par lesadresses absolues
9
Fonctionnement multiproces-seur et communication dansl’AP S5-155U
10
Interfaces et fonctions en lignede la PG
11
Annexes12
Listes13
La liste des opérations,référence 6ES5 997-3UA32, est jointe au manuel.
10/98C79000-G8577-C8484ème édition
AP S5-155UCPU 948
Guide de programmation
Ce manuel a le numéro de référence :
6ES5 998-3PR31
SIMATIC S5
Ce manuel donne des consignes que vous devez respecter pour votre propre sécurité ainsique pour éviter des dommages matériels. Elles sont mises en évidence par un triangle d’aver-tissement et sont présentées, selon le risque encouru, de la façon suivante :
!Attention
signifie que la non-application des mesures de sécurité appropriées peut conduire à la mort, àdes lésions corporelles graves ou à un dommage matériel important.
Nota
doit vous rendre tout particulièrement attentif à des informations importantes sur le produit,aux manipulations à effectuer avec le produit ou à la partie concernée de la documentation.
La mise en service et l’utilisation de l’équipement ne doivent être effectuées que conformé-ment au manuel. Seules des personnes qualifiées sont autorisées à effectuer des interventionssur l’équipement. Il s’agit de personnes qui ont l’autorisation de mettre en service, de mettre àla terre et de repérer des appareils, systèmes et circuits électriques conformément aux règlesde sécurité en vigueur.
Tenez compte des points suivants :
!Attention
L’équipement ne doit être utilisé que pour les applications spécifiées dans le catalogue oudans la description technique, et exclusivement avec des périphériques et composants recom-mandés par Siemens.
Le transport, le stockage, le montage, la mise en service ainsi que l’utilisation et la mainte-nance adéquats de l’équipement sont les conditions indispensables pour garantir un fonc-tionnement correct et sûr du produit.
!Attention
UL + CSA : Lithium Battery ReplacementDanger of explosion if battery is incorrectly replaced. Replace only with same or equivalenttype recommended by the manufacturer. Dispose of used batteries according to the manufac-turer’s instructions.
!Attention
FM-WARNING – DO NOT DISCONNECT WHILE CIRCUIT IS LIVEUNLESS LOCATION IS KNOWN TO BE NONHAZARDOUS
SIMATIC� , SIMATIC NET� et SIMATIC HMI� sont des marques déposées parSiemens AG.
Les autres désignations dans ce document peuvent être des marques dont l’utilisation par destiers à leurs propres fins peut léser les droits des propriétaires desdites marques.
Nous avons vérifié la conformité du contenu du présent manuel avecle matériel et le logiciel qui y sont décrits. Or des divergences n’étantpas exclues, nous ne pouvons pas nous porter garants pour laconformité intégrale. Si l’usage de ce manuel devait révéler deserreurs, nous en tiendrons compte et apporterons les correctionsnécessaires dès la prochaine édition. Veuillez nous faire part de vossuggestions.
Exclusion de responsabilitéCopyright �� Siemens AG 1998 Tous droits réservés
Toute communication ou reproduction de ce support d’information,toute exploitation ou communication de son contenu sont interdites,sauf autorisation expresse. Tout manquement à cette règle est illiciteet expose son auteur au versement de dommages et intérêts. Tousnos droits sont réservés, notamment pour le cas de la délivranced’un brevet ou celui de l’enregistrement d’un modèle d’utilité.
Siemens AGBereich Automatisierungs- und AntriebstechnikGeschaeftsgebiet Industrie-AutomatisierungssystemePostfach 4848, D-90327 Nuernberg
� Siemens AG 1998Sous réserve de modifications techniques
Siemens Aktiengesellschaft 6ES5 998-3PR31
Informations relati-ves à la sécurité
Personnel qualifié
Utilisation conformeaux dispositions
Marques
1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 - 3
1.1 Domaine d’application de l’AP S5-155U avec la CPU 948 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 - 4
1.2 Mode de fonctionnement caractéristique d’une CPU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 - 5
1.3 Programmes dans la CPU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 - 7
1.4 Opérandes disponibles pour le programme utilisateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 - 11
1.5 Capacité mémoire disponible pour le programme utilisateur. . . . . . . . . . . . . . . . . . . . . . . . . . . 1 - 14
1.6 Procédure de programmation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 - 15
1.7 Outils de programmation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 - 18
1.8 Conversion de programmes utilisateur de la CPU 928B pour la CPU 948. . . . . . . . . . . . . . . . 1 - 19
2 Programme utilisateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 3
2.1 Langage de programmation STEP 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 4
2.1.1 Modes de représentation CONT, LOG et LIST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 42.1.2 Programmation structurée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 52.1.3 Opérations STEP 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 62.1.4 Représentation des valeurs numériques. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 82.1.5 Blocs STEP 5 et sauvegarde de ces blocs en mémoire . . . . . . . . . . . . . . . . . . . . . . . . 2 - 12
2.2 Blocs d’organisation, de programme et séquentiels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 16
2.2.1 Blocs d’organisation d’interface utilisateur. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 182.2.2 Blocs d’organisation de fonctions spéciales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 22
2.3 Blocs fonctionnels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 23
2.3.1 Structure des blocs fonctionnels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 242.3.2 Programmation de blocs fonctionnels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 262.3.3 Appel et paramétrage de blocs fonctionnels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 282.3.4 Blocs fonctionnels spéciaux. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 33
2.4 Blocs de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 35
2.4.1 Programmation de blocs de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 372.4.2 Appel de blocs de données. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 382.4.3 Blocs de données spéciaux. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 41
Sommaire
Programmation de la CPU 948
C79000-G8577-C848-04 iii
3 Traitement du programme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 - 3
3.1 Principe du traitement du programme. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 - 4
3.2 Organisation du programme. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 - 5
3.3 Mémorisation de programmes et de blocs de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 - 10
3.4 Traitement du programme utilisateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 - 11
3.4.1 Définition des termes pour le traitement du programme . . . . . . . . . . . . . . . . . . . . . . . 3 - 12
3.5 Liste des opérations STEP 5 avec exemples de programmation . . . . . . . . . . . . . . . . . . . . . . . . 3 - 15
3.5.1 Opérations de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 - 193.5.2 Exemples de programmation pour les modes de représentation LIST, CONT, LOG . 3 - 343.5.3 Opérations complémentaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 - 493.5.4 Opérations d’organisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 - 593.5.5 Opérations sur sémaphores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 - 75
4 Etats de fonctionnement et niveaux de traitement de programme . . . . . . . . . . . . . . . . . . . . 4 - 3
4.1 Niveaux de traitement de programme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 - 4
4.2 Etat de fonctionnement ARRET (STOP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 - 9
4.2.1 Arrêt partiel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 - 94.2.2 Arrêt total . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 - 134.2.3 Effacement général . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 - 14
4.3 Etat de fonctionnement MISE EN ROUTE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 - 16
4.3.1 Démarrages manuel et automatique. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 - 174.3.2 Redémarrages manuel et automatique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 - 184.3.3 Comparaison entre démarrage et redémarrage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 - 214.3.4 Démarrage avec rémanence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 - 224.3.5 Comparaison entre démarrage et démarrage avec rémanence . . . . . . . . . . . . . . . . . . . 4 - 234.3.6 Interfaces utilisateur pour la mise en route . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 - 244.3.7 Redémarrage automatique étendu avec la CPU 948. . . . . . . . . . . . . . . . . . . . . . . . . . . 4 - 274.3.8 Interruptions pendant la mise en route . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 - 28
4.4 Etat de fonctionnement RUN (MARCHE) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 - 29
4.4.1 Traitement cyclique du programme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 - 304.4.2 Traitement déclenché par alarme et par horloge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 - 324.4.3 Traitement déclenché par horloge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 - 334.4.4 Traitement déclenché par alarme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 - 41
5 Traitement des interruptions et des erreurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 3
5.1 Erreurs fréquentes dans le programme utilisateur. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 4
5.2 Informations d’erreur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 5
5.3 Marche à suivre pour la recherche d’erreur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 8
5.4 Bits de commande et pile des interruptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 9
5.4.1 Bits de commande . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 105.4.2 Pile des interruptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 145.4.3 Exemple de diagnostic d’erreur au moyen de l’ITPILE . . . . . . . . . . . . . . . . . . . . . . . . 5 - 19
Sommaire
Programmation de la CPU 948
iv C79000-G8577-C848-04
5.5 Traitement des erreurs à l’aide de blocs d’organisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 20
5.6 Origine des erreurs et réactions aux erreurs de la CPU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 23
5.6.1 OB 19 : appel d’un bloc de code non chargé (BL INEX) . . . . . . . . . . . . . . . . . . . . . . 5 - 245.6.2 OB 19 : appel d’un bloc de données non chargé (DB INEX) . . . . . . . . . . . . . . . . . . . 5 - 245.6.3 OB 23/24, OB 28/29 : retard d’acquittement (ACQ) . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 255.6.4 OB 25 : erreur d’adressage (DAD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 265.6.5 OB 26 : erreur de temps de cycle (CYC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 275.6.6 OB 27 : erreur de substitution (SUB) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 285.6.7 OB 30 : erreur de parité et ACQ pour la mémoire utilisateur (PARI) . . . . . . . . . . . . . 5 - 285.6.8 OB 32 : erreur de transfert et de chargement (DTC) . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 295.6.9 OB 33 : erreur de traitement d’alarmes d’horloge (COLAH/AHMAS) . . . . . . . . . . . 5 - 305.6.10 OB 34 : erreur pour E DB/EX DX (ER.EDBX). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 325.6.11 OB 35 : erreur de communication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 325.6.12 OB 36 : erreur lors de l’autotest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 33
5.7 Autotest. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 34
5.7.1 Généralités . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 345.7.2 Description des fonctions de test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 355.7.3 Sélections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 375.7.4 Traitement des erreurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 38
6 Fonctions spéciales intégrées. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 - 3
6.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 - 4
6.2 OB 121 : Génération et lecture de l’horodateur interne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 - 8
6.3 OB 122 : Activation / désactivation de l’inhibition des alarmes . . . . . . . . . . . . . . . . . . . . . . . . 6 - 12
6.4 OB 124 : Suppression de blocs STEP 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 - 14
6.5 OB 125 : Génération de blocs STEP 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 - 17
6.6 OB 126 : Définition et transfert de mémoires image du processus . . . . . . . . . . . . . . . . . . . . . . 6 - 20
6.7 OB 129 : Etat de la pile de sauvegarde. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 - 25
6.8 OB 131 : Effacement des accumulateurs 1, 2, 3 et 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 - 26
6.9 OB 132 et OB 133 : Décalage du contenu des accumulateurs vers le haut ou vers le bas . . . 6 - 27
6.10 OB 141 : Activation/désactivation de l’inhibition sélective d’alarmes d’horloge cycliques . . 6 - 29
6.11 OB 142 : Activation/désactivation du retardement général d’alarmes. . . . . . . . . . . . . . . . . . . . 6 - 32
6.12 OB 143 : Activation/désactivation du retardement sélectif d’alarmes d’horloge cycliques . . . 6 - 35
6.13 OB 150 : Génération et lecture de l’horodateur interne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 - 38
6.14 OB 151 : Génération et lecture de l’heure de déclenchement d’une alarme d’horloge à heure fixe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 - 43
6.15 OB 153 : Génération et lecture de l’heure de déclenchement d’une alarme de retardement . . 6 - 50
6.16 OB 180 : Accès variable à un bloc de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 - 53
6.17 OB 181 : Test de blocs de données DB/DX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 - 57
Sommaire
Programmation de la CPU 948
C79000-G8577-C848-04 v
6.18 OB 182 : Duplication d’une zone de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 - 59
6.19 OB 200 et OB 202 à OB 205 : Communication multiprocesseur . . . . . . . . . . . . . . . . . . . . . . . 6 - 62
6.20 OB 222 : Redémarrage de la surveillance du temps de cycle . . . . . . . . . . . . . . . . . . . . . . . . . . 6 - 63
6.21 OB 223 : Comparaison des types de mise en route . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 - 64
6.22 OB 254 et OB 255 : Copie et duplication de blocs de données . . . . . . . . . . . . . . . . . . . . . . . . 6 - 65
7 Bloc de données étendu DX 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 - 3
7.1 Utilisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 - 4
7.2 Structure du bloc DX 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 - 5
7.3 Paramètres pour le DX 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 - 8
7.4 Exemples de paramétrage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 - 12
8 Contenu et organisation de la mémoire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 - 3
8.1 Structure de l’espace mémoire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 - 4
8.2 Espace d’adressage de la CPU 948 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 - 5
8.2.1 Espace d’adressage de la RAM système . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 - 68.2.2 Espace d’adressage de la périphérie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 - 8
8.3 Organisation de la mémoire utilisateur dans la CPU 948. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 - 10
8.3.1 En-têtes de blocs dans la mémoire utilisateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 - 128.3.2 Listes d’adresses de blocs dans le bloc de données DB 0 . . . . . . . . . . . . . . . . . . . . . . 8 - 138.3.3 Zones BA et BB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 - 148.3.4 Zones BS et BT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 - 158.3.5 Affectation des bits des mots de données système . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 - 188.3.6 Zone de données système librement adressable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 - 42
9 Accès à la mémoire par les adresses absolues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 - 3
9.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 - 4
9.2 Accès à la mémoire par adressage dans l’ACCU 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 - 8
9.2.1 LIR et TIR : Chargement et transfert indirects de registres de 16 bits . . . . . . . . . . . . . 9 - 99.2.2 Exemples d’accès à des DW supérieurs à 255 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 - 159.2.3 LDI et TDI : Chargement et transfert indirects de registres de 32 bits . . . . . . . . . . . . 9 - 17
9.3 Transfert de blocs de mémoire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 - 19
9.4 Opérations avec le registre d’adresse de base BR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 - 22
9.4.1 Opérations de transfert entre registres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 - 239.4.2 Accès à la mémoire locale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 - 249.4.3 Accès à la mémoire commune. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 - 259.4.4 Accès aux pages de mémoire. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 - 29
10 Fonctionnement et communication multiprocesseur dans l’AP S5-155U . . . . . . . . . . . . . 10 - 3
10.1 Fonctionnement multiprocesseur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 4
10.1.1 Utilisation du fonctionnement multiprocesseur. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 410.1.2 Mécanismes de communication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 4
Sommaire
Programmation de la CPU 948
vi C79000-G8577-C848-04
10.1.3 Echange de données via des mémentos de couplage . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 510.1.4 Echange de données via des blocs de dialogue. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 810.1.5 Programmation nécessaire pour le fonctionnement multiprocesseur . . . . . . . . . . . . . . 10 - 910.1.6 Programmation du DB 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 910.1.7 Particularités de la mise en route en fonctionnement multiprocesseur . . . . . . . . . . . 10 - 1310.1.8 Mode de test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 14
10.2 Communication multiprocesseur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 15
10.2.1 Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 1510.2.2 Identification de l’émetteur et du récepteur. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 1610.2.3 Stockage intermédiaire des données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 1710.2.4 Fonctionnement et gestion de la mémoire intermédiaire . . . . . . . . . . . . . . . . . . . . . . 10 - 1810.2.5 Mesures à prendre pour le démarrage du système . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 2110.2.6 Ce dont il faut tenir compte lors de l’appel des OB de communication . . . . . . . . . . 10 - 2210.2.7 Paramétrage des OB de communication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 2310.2.8 Exploitation des paramètres de sortie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 24
10.3 Temps d’exécution des OB de communication. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 31
10.4 Fonction "Initialisation" (OB 200) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 33
10.4.1 Fonction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 3310.4.2 Paramètres d’appel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 3510.4.3 Paramètres d’entrée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 3510.4.4 Paramètres de sortie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 38
10.5 Fonction "Emission" (OB 202) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 40
10.5.1 Fonction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 4010.5.2 Paramètres d’appel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 4010.5.3 Paramètres d’entrée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 4010.5.4 Paramètres de sortie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 42
10.6 Fonction "Test d’émission" (OB 203) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 45
10.6.1 Fonction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 4510.6.2 Paramètres d’appel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 4510.6.3 Paramètres d’entrée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 4510.6.4 Paramètres de sortie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 45
10.7 Fonction "Réception" (OB 204) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 47
10.7.1 Fonction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 4710.7.2 Paramètres d’appel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 4710.7.3 Paramètres d’entrée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 4710.7.4 Paramètres de sortie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 48
10.8 Fonction "Test de réception" (OB 205). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 51
10.8.1 Fonction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 5110.8.2 Paramètres d’appel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 5110.8.3 Paramètres d’entrée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 5110.8.4 Paramètres de sortie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 51
10.9 Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 53
10.9.1 Appel des OB de fonctions spéciales par des blocs fonctionnels . . . . . . . . . . . . . . . 10 - 5310.9.2 Transfert de blocs de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 6010.9.3 Extension de la zone des mémentos de couplage . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 66
Sommaire
Programmation de la CPU 948
C79000-G8577-C848-04 vii
11 Interfaces et fonctions en ligne de la PG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 - 3
11.1 Présentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 - 4
11.2 Fonctions en ligne de la PG. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 - 5
11.2.1 Informations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 - 611.2.2 Fonctions de mémorisation et de transfert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 - 711.2.3 Test du programme. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 - 8
11.3 Couplage PG-AP via la première ou la seconde interface série. . . . . . . . . . . . . . . . . . . . . . . . 11 - 16
11.4 Utilisation en parallèle de deux interfaces série vers la PG . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 - 17
11.4.1 Mise en service. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 - 1911.4.2 Fonctionnement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 - 1911.4.3 Déroulement pour des cas précis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 - 21
11.5 Fonctions PG via le bus S5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 - 27
11.5.1 Utilisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 - 2711.5.2 Principe de fonctionnement des fonctions PG via le bus S5 . . . . . . . . . . . . . . . . . . . 11 - 2911.5.3 Mise en service. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 - 3111.5.4 Indication d’erreurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 - 35
12 Annexes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 - 3
13 Listes
Sommaire
Programmation de la CPU 948
viii C79000-G8577-C848-04
Sommaire du chapitre 1
1.1 Domaine d’application de l’AP S5-155U avec la CPU 948. . . . . . . . . . . . . . . . . . . . . . . 1 - 4
1.2 Mode de fonctionnement caractéristique d’une CPU . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 - 5
1.3 Programmes dans la CPU. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 - 7
1.4 Opérandes disponibles pour le programme utilisateur . . . . . . . . . . . . . . . . . . . . . . . . . . 1 - 11
1.5 Capacité mémoire disponible pour le programme utilisateur . . . . . . . . . . . . . . . . . . . . . 1 - 14
1.6 Procédure de programmation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 - 15
1.7 Outils de programmation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 - 18
1.8 Conversion de programmes utilisateur de la CPU 928B pour la CPU 948 . . . . . . . . . . 1 - 19
1Introduction
Programmation de la CPU 948C79000-G8577-C848-04 1 - 1
Sommaire
Programmation de la CPU 9481 - 2 C79000-G8577-C848-04
1Introduction
Objectif du manuel Le présent manuel est destiné aux utilisateurs possédant des connais-sances de base dans la programmation d’automates et qui désirentmettre en oeuvre la CPU 948 dans l’automate programmable S5-155U.Il vous apporte les connaissances supplémentaires requises pour la pro-grammation de la CPU 948. Aux utilisateurs débutants, nous recommandons la lecture d’un ouvra-ge d’initiation au langage de programmation STEP 5 (cf. biblio-graphie /3/) ou la participation à un stage dans l’un de nos centres deformation. SIEMENS propose un vaste programme de stagesSIMATIC S5. Pour de plus amples informations, veuillez vous adres-ser à votre agence SIEMENS.
Contenu du chapitre 1 Le chapitre 1 contient des informations sur le domaine d’applicationde l’automate S5-155U avec la CPU 948 ainsi que sur sa structure in-terne.Il explique le mode de fonctionnement caractéristique d’une CPU et lastructure d’un programme de CPU.Vous y trouverez également des conseils de programmation ainsi queles données importantes pour la programmation de la CPU 948.Si vous avez déjà utilisé la CPU 946/947 et désirez connaître lesdifférences par rapport à la CPU 948, reportez-vous au paragraphe 1.8.
Ce chapitre vous informe en outre sur les différences entre la versionA01 et la version A02 de la CPU 948 et vous indique ce dont il fauttenir compte lors de la conversion de programmes de la CPU 928Bpour la CPU 948.
Programmation de la CPU 948C79000-G8577-C848-04 1 - 3
1.1 Domaine d’application de l’AP S5-155U avec la CPU 948
Situation dans la gamme SIMATIC S5
L’automate programmable (AP) S5-155U fait partie de la gamme desautomates programmables SIMATIC S5. Il représente, avec laCPU 948, l’automate multiprocesseur le plus performant destiné àl’automatisation de processus (commande, signalisation, surveillance,régulation, consignation).En raison de sa modularité et de son degré de performance très élevé,il peut être utilisé tant pour des automatismes de commande de moyen-ne à très grande envergure que pour la résolution de tâches d’auto-matisation complexes au niveau de la conduite de processus et de ladisposition.
Fonction L’AP S5-155U avec CPU 948 est particulièrement approprié pourrésoudre les tâches suivantes :
•• Tâches exigeant un traitement très rapide sur bits et sur mots ainsique des temps de réaction brefs, comme dans le cas de tâches decommande et de régulation très rapidesLes processus très rapides dans le domaine de la construction demachines (installations de mise en bouteille, machines d’emballa-ge ou autres) et dans celui de l’industrie automobile en sont quel-ques exemples.
•• Tâches requérant un très grand volume de mémoire de même quedes temps d’accès très rapides, par exemple dans l’industrieautomobile, la technologie des procédés industriels et la constructi-on d’installations technologiques
•• Tâches nécessitant une communication rapide avec d’autres CPUenfichées dans l’automate en configuration multiprocesseur demême qu’avec des processeurs de communication CP (par ex-emple, pour le raccordement à des réseaux locaux, à des ordina-teurs pilotes, pour la visualisation, la commande et la surveillance)
•• Tâches complexes qui peuvent être résolues de façon efficace etclaire à l’aide des langages de programmation évolués C et SCL
Domaine d’application de l’AP S5-155U avec la CPU 948
Programmation de la CPU 9481 - 4 C79000-G8577-C848-04
1.2 Mode de fonctionnement caractéristique d’une CPU
Mode de fonctionnementd’une CPU
Une CPU présente les modes de fonctionnement suivants :
Traitement cyclique Il représente la partie principale des processus de la CPU. Comme sonnom l’indique, la même séquence de traitement se répète cyclique-ment à l’infini.
Le traitement cyclique se divise en trois phases principales :
Phase Déroulement
1Le programme système interroge toutes les cartes d’entrées affectées à la CPU et les valeurs lues font l’objet d’une mémorisation temporaire dans la mémoire image des entrées (MIE).
2Les valeurs contenues dans la MIE sont traitées par le programme utili-sateur et les valeurs à transmettre sont inscrites dans la mémoire image des sorties (MIS).
3Les valeurs contenues dans la mémoire image des sorties sont émises par le programme système vers les cartes de sorties affectées à la CPU.
Traitement cyclique Traitement déclenchépar alarme
Traitement déclenchépar horloge
1. 2. 3.
Lecture de la mémoireimage des entrées (MIE)
Emission de la mémoireimage des sorties (MIS)
&
&
= 1
E 1.5
E 1.6
E 1.4
E 1.3 A 3.1
Exploitation des signaux d´entréeDéfinition des signaux de sortie
Entrée E 1.3
Entrée E 1.4
Entrée E 1.5
Sortie A 3.1
Sortie A 2.0
Sortie A 4.7
CPU Processus
Mode de fonctionnement caractéristique d’une CPU
Programmation de la CPU 948C79000-G8577-C848-04 1 - 5
Traitement déclenché parhorloge
Dans le cas de processus requérant des signaux de commande à desintervalles de temps constants, vous pouvez en plus du traitement cy-clique accomplir certaines tâches déclenchées par horloge, commepar exemple des fonctions de surveillance non critiques avec une péri-odicité de l’ordre de la seconde.
Traitement déclenché paralarme
A un signal de processus qui requiert une réaction extrêmement rapidevous affectez une séquence de traitement déclenchée par alarme.Une interruption du système déclenchée par l’intermédiaire d’une car-te émettrice d’alarme vous permet, par exemple, d’activer une séquen-ce de traitement spéciale dans votre programme.
Traitement prioritaire La CPU sélectionne les modes de traitement décrits ci-avant selon leurdegré d’importance ou priorité .
La CPU devant réagir rapidement à un événement déclenché par horlo-ge ou par alarme, elle interrompt le traitement cyclique pour traiter enpremier lieu un tel événement. Le traitement cyclique a en conséquen-ce le degré de priorité moindre.
Selon le problème posé, le traitement déclenché par horloge peut êtreprioritaire par rapport au traitement déclenché par alarme, ou inverse-ment. Vous pouvez donc définir quel est le traitement prioritaire sur laCPU 948.
Mode de fonctionnement caractéristique d’une CPU
Programmation de la CPU 9481 - 6 C79000-G8577-C848-04
1.3 Programmes dans la CPU
Le programme de chaque CPU comprend :
•• le programme système
et
•• le programme utilisateur.
Programme système Le programme système gère toutes les fonctions et opérations de laCPU qui ne sont pas liées directement à une tâche spécifique d’auto-matisation (cf. figure 1-2).
Actualisation de la mémoireimage des entrées
Emission de la mémoireimage des sorties
Programme
système
Appel du
traitement
utilisateur
(interfaces)
Mise en route
Traitement des erreursCommunicationavec la PG
Gestion dela mémoire
Figure 1-1 Tâches du programme système
Programmes dans la CPU
Programmation de la CPU 948C79000-G8577-C848-04 1 - 7
Tâches Les tâches à accomplir par le programme système sont les suivantes1 :
•• démarrage et redémarrage,
•• actualisation de la mémoire image des entrées, émission de lamémoire image des sorties,
•• appel des programmes cycliques et des programmes déclenchéspar horloge ou par alarme,
•• détection et traitement d’erreurs,
•• gestion de la mémoire,
•• communication avec la console de programmation.
Interfaces utilisateur En tant qu’utilisateur, vous avez la possibilité d’intervenir – par l’inter-médiaire d’interfaces spéciales – sur le comportement de la CPU danscertains cas de fonctionnement et d’erreur.
Mémorisation du programmesystème
A la mise sous tension de l’automate, le programme système est char-gé de la mémoire EPROM dans la RAM interne du système d’exploi-tation.
Présélection ducomportement du système
Les chapitres suivants − à l’exception du chapitre 7 − décrivent lecomportement présélectionné du système dans le cas de réactionsaux événements de processus ou aux erreurs. C’est ainsi par exempleque, conformément à la présélection, la CPU se met en STOP si, dansle cas d’une erreur de code d’instruction, le bloc d’organisation corres-pondant de réaction aux erreurs n’est pas chargé.
Modification de la présélection Vous pouvez modifier ce comportement du système en paramétrant lebloc de données DX 0.Le comportement du système après une telle modification est décritau chapitre 7.
1 En cas de fonctionnement avec plusieurs CPU (fonctionnement multiprocesseur)des tâches supplémentaires s’y ajoutent.
Programmes dans la CPU
Programmation de la CPU 9481 - 8 C79000-G8577-C848-04
Programme utilisateur
Tâches Le programme utilisateur comporte toutes les fonctions nécessaires autraitement d’une tâche d’automatisation spécifique. Lors d’une attri-bution approximative des tâches, ces fonctions peuvent être affectéesdirectement aux interfaces mises à disposition par le programme sy-stème pour les divers modes de fonctionnement.
Mode de fonctionnement Tâche
Démarrage et redémarrage Réunion des conditions pour que, lors d’un démarrage ou après un redémar-rage du processus de commande, la tâche à exécuter puisse se baser sur un état défini (par ex. affecter une valeur précise à des signaux)
Traitement cyclique Traitement répétitif de signaux (par exemple, combinaison de signaux binaires, lecture et exploitation de valeurs analogiques, définition de signaux de sortie binaires, émission de valeurs analogiques)
Traitement déclenché par horloge
Traitements spéciaux, dépendant du temps, satisfaisant aux conditions de temporisation suivantes :
- rapidité supérieure au cycle moyen- périodicité supérieure au temps de cycle moyen- possibilité de définir l’instant d’exécution de la tâche
Traitement déclenché par alarme
Réactions spéciales, rapides à des signaux du processus
Réaction en cas d’erreur Traitement des erreurs survenant lors du déroulement normal du programme
Programmes dans la CPU
Programmation de la CPU 948C79000-G8577-C848-04 1 - 9
Structure
Mémorisation du programme utilisateur
Une fois la programmation terminée, vous devez charger le program-me utilisateur dans la mémoire utilisateur de la CPU 948. Vous pou-vez procéder directement à partir de la console de programmation oubien par l’intermédiaire d’une carte à mémoire, dont le contenu seracopié automatiquement dans la mémoire utilisateur lors d’un efface-ment général de la CPU.
Interfaces vers le programmesystème
Des blocs d’organisation servant d’interface avec le programme sy-stème sont disponibles pour les différents modes de fonctionnement.
Mémoire utilisateur
Blocs de code
Blocs de données
Blocsd´organisationOB
DB
DX
PB FB/FX SB
FB 8
SEGMENT 1NOM :TRANS
0005 :L EB 30006 :T MW 2000007 :A DB 50008 :B MW 2000009 :L DW 0000A :T AW 6000B :BE
1: KH = 0101;2: KF = +120;3: KC = xy;4: KY = 4.5;5: KG =6: KM =7:
1: KH = FFFF;2: KH = FFFF;3: KH = FFFF;4: KH = FFFF;5: KH = FFFF;6: KH = FFFF;7:
OpérationsSTEP 5
données statiques ou dynamiques(bits, octets, mots, doubles mots)
données statiques ou dynamiques(bits, octets, mots, doubles mots)
OpérationsSTEP 5
OpérationsSTEP 5
OpérationsSTEP 5
Blocs deprogramme
Blocsfonctionnels
Blocsséquentiels
&
&
= 1
E 1.5
E 1.6
E 1.4
E 1.3 A 3.1
= 1M 50.1
M 50.2
M 50.3 A 5.3
M 1.7
E 2.6 S
R QE 1.3
Programme utilisateur
Figure 1-2 Structure d’un programme utilisateur STEP 5
Programmes dans la CPU
Programmation de la CPU 9481 - 10 C79000-G8577-C848-04
1.4 Opérandes disponibles pour le programme utilisateur
Pour la programmation, la CPU 948 met à votre disposition les zonesd’opérandes suivantes :
•• mémoire image et périphérie,
•• mémentos (mémentos M et mémentos S),
•• temporisations et compteurs,
•• blocs de données.
Mémoire image des entréeset des sorties (MIE et MIS)
Caractéristiques Capacité
Le programme utilisateur peut accéder très rapidement à la mémoire image, à savoir aux types de données suivants :
- bits individuels,- octets, - mots, - doubles mots.
respective-ment 128 octets pour les entrées et les sorties
Zone de périphérie(zone P)
Caractéristiques Capacité
Le programme utilisateur peut accéder directementaux cartes de périphérie via le bus S5.
Les types de données suivants sont possibles :- octets,- mots.
respective-ment 256 octets pour les entrées et les sorties
Zone de périphérie étendue (zone Q)
Caractéristiques Capacité
Le programme utilisateur peut accéder directement aux cartes de périphérie via le bus S5.
Les types de données suivants sont possibles :- octets,- mots.
respective-ment 256 octets pour les entrées et les sorties
Opérandes disponibles pour le programme utilisateur
Programmation de la CPU 948C79000-G8577-C848-04 1 - 11
Zone de mémentos M
Caractéristiques Capacité
La zone de mémentos est une zone de mémoire à laquelle le programme utilisateur peut accéder très rapidement avec des opérations correspondantes. Il est recommandé d’utiliser la zone de mémentos pour des données souvent requises.
On peut accéder aux types de données suivants :- bits individuels,- octets,- mots,- doubles mots.
Certains octets de mémentos peuvent être utilisés en tant que mémentos de couplage pour l’échange de données entre les CPU en fonctionnement multiproces-seur (voir chapitre 10).A la fin du cycle, le programme système actualise les mémentos de couplage à l’aide d’une mémoire intermédiaire dans le coordinateur ou d’une carte CPou IP.
2048 bits
Zone de mémentos S(zone de mémentos étendue)
Caractéristiques Capacité
La CPU 948 comporte une zone de mémentos supplé-mentaire, la zone de mémentos S. Comme dans le cas de la zone de mémentos M, le programme utilisateur peut y accéder très rapidement.
Cependant les mémentos S ne peuvent être utilisés ni comme opérandes effectifs lors de l’appel de blocs fonctionnels, ni comme mémentos de couplage pour l’échange de données entre les CPU. Les opérationsde test sur bit de la CPU 948 ne peuvent pas non plusêtre appliquées aux mémentos S.
Pour utiliser les mémentos S, vous devez disposer du logiciel système S5-DOS à partir de la version 3.0 ou S5-DOS/MT à partir de la version 1.0.
32 768 bits
Opérandes disponibles pour le programme utilisateur
Programmation de la CPU 9481 - 12 C79000-G8577-C848-04
Temporisations T
Caractéristiques Capacité
Les cellules de temporisation sont chargées par le programme utilisateur avec une valeur de temps comprise entre 10 ms et 9990 s. Par une instruction de démarrage, elles sont ensuite décrémentées à partir de cette valeur définie selon la période sélectionnée jusqu’à atteindre la valeur zéro.
256 cellules de
temporisation
Compteurs Z
Caractéristiques Capacité
Le programme utilisateur charge une valeur de départ (999 max.) dans les cellules de comptage, puis lesincrémente ou les décrémente.
256compteurs
Mots de données dans le blocde données actuel
Caractéristiques Capacité
Un bloc de données contient des constantes ou des variables de type octet, mot ou double mot. Les opérations STEP 5 permettent toujours l’accès au bloc de données "actuel" (cf. paragraphe 2.4.2).
On peut accéder aux types de données suivants :- bits individuels,- octets,- mots,- doubles mots.
256 mots 1
1 Dans le cas de blocs de données dont la longueur dépasse 256 mots, vous ne pouvez accéder aux mots de données de numéro supérieur à 255 qu’en recourant à des opérations destinées aux accès mémoire absolus (cf. chapitre 9).
Opérandes disponibles pour le programme utilisateur
Programmation de la CPU 948C79000-G8577-C848-04 1 - 13
1.5 Capacité mémoire disponible pour le programme utilisateur
Pour mémoriser les blocs de code et les blocs de données, la CPU 948dispose uniquement de la mémoire utilisateur dans la RAM interne.
La CPU 948 existe en deux versions de mémoire utilisateur :
•• Version 1 : avec 640 kilo-octets,
•• Version 2 : avec 1 664 kilo-octets.
Capacité mémoire disponible pour le programme utilisateur
Programmation de la CPU 9481 - 14 C79000-G8577-C848-04
1.6 Procédure de prog rammation
Si vous êtes un programmeur expérimenté et disposez de votre propreméthode de programmation, vous pouvez passer directement au para-graphe suivant.
Les utilisateurs moins expérimentés trouveront dans ce paragraphequelques conseils sur la conception, la programmation, le test et lamise en service de leur programme STEP 5.
Séquences de réalisation La réalisation d’un programme de commande STEP 5 se divise entrois séquences :
Séquence Action
1 définition de la tâche technologique à réaliser
2 conception du programme
3 écriture, test et mise en service du programme
Procédure récurrente Dans la pratique, il s’avère généralement nécessaire de répéter certai-nes étapes de la procédure ("procédure récurrente"). C’est par ex-emple le cas lorsque vous décidez d’augmenter le nombre de signauxlors de l’étude plus approfondie du problème posé.
1ère séquence Définition de la tâche technologique à réaliser
Etape Action
1 Etablissez un schéma fonctionnel des tâches de commande du processus à réaliser.
2 Etablissez la liste des signaux d’entrée et de sortienécessaires à la résolution de la tâche.
3 Complétez le schéma fonctionnel en affectant auxdifférents blocs les signaux et, le cas échéant, lesconditions de temps et les états des compteurs.
Procédure de programmation
Programmation de la CPU 948C79000-G8577-C848-04 1 - 15
2ème séquence Conception du programme
Etape Action
1 Développez à l’aide du schéma fonctionnel détaillé les modes de traitement nécessaires de votre programme (traitement cyclique, traitement déclenché par horloge etc.) et dénommez les blocs d’organisation utilisés.
2 Divisez les modes de traitement en plusieurs unitéstechnologiques ou fonctionnelles.
3 Vérifiez si vous pouvez affecter ces unités à un blocde programme ou fonctionnel et dénommez les blocs à utiliser (PB x, FB y, etc.).
4 Définissez les temporisations, compteurs, données et mémoires de résultat nécessaires.
5 Définissez les tâches pour chaque bloc de code prévu et, si nécessaire, les données pour les mémentos et blocs de données. Dessinez des schémas séquentiels pour les blocs de code.
Volume du traitementcyclique
Lors de la définition des modes de traitement, tenez compte des indica-tions suivantes :
•• Le traitement du cycle doit s’effectuer à une vitesse suffisante.Pour éviter une perte de contrôle sur le processus, les états duprocessus ne doivent pas changer plus rapidement que la CPU nepeut y réagir.
•• Comme temps de réaction maximal, il faut compter deux fois letemps de cycle.Le temps de cycle est déterminé par le traitement cyclique du pro-gramme système de même que par le type et le volume du pro-gramme utilisateur. Comme le programme utilisateur cycliquepeut être interrompu à une ou plusieurs reprises par l’appel de pro-grammes déclenchés par horloge ou par alarme, le temps de cyclen’est pas toujours constant.
Procédure de programmation
Programmation de la CPU 9481 - 16 C79000-G8577-C848-04
3ème séquence Ecriture, test et mise en service du programme
Etape Action
1 Déterminez le mode de représentation des blocs de code (CONT, LOG ou LIST, cf. chapitre 2).Notez que les blocs fonctionnels ne peuvent êtrecréés qu’en mode de représentation LIST.
2 Procédez à la programmation de l’ensemble des blocsde code et de données (reportez-vous à cet effet aumanuel de STEP 5).
3 Mettez en service les blocs l’un après l’autre.Pour ce faire, il peut s’avérer nécessaire de program-mer à chaque fois un autre OB 1 appelant les blocs decode correspondants :1a : Chargement des blocs1b : Test des blocs
Reportez-vous à cet effet au manuel STEP 5 ainsiqu’au chapitre 11.
4 Après vous être assuré du bon déroulement de chaque bloc de code de même que du calcul et de la mémo-risation corrects des données, vous pouvez mettre en service votre programme complet.
Réalisation du test Le moment de la première mise en service de votre programme dansdes conditions réelles, c’est-à-dire avec des signaux d’entrée et surtoutde sortie réels, vous incombe à vous ou à une équipe de spécialistescompétents.Les mesures de précaution à prendre lors de la mise en service doiventêtre d’autant plus importantes que le processus est complexe et doncque les risques liés à la sécurité sont grands.
Procédure de programmation
Programmation de la CPU 948C79000-G8577-C848-04 1 - 17
1.7 Outils de programmation
Consoles de programmation
Pour créer votre programme utilisateur, vous disposez des consoles deprogrammation PG 685, PG 710, PG 730, PG 750 et PG 770. La ca-pacité et les caractéristiques de ces consoles de programmation sontdécrites dans le catalogue ST 59 (cf. bibliographie /9/).
NotaPour pouvoir exploiter l’ensemble des fonctions de la CPU 948– en particulier, masque DX 0, masque de lecture de la pile desinterruptions, affichage pour la fonction PG d’étendue de lamémoire, ainsi que fonctions PG via le bus de fond de panier S5 –,vous devez disposer du logiciel système pour PG STEP 5/ST àpartir de la version 6.3 ou STEP 5/MT à partir de la version 6.0ainsi que de la "disquette delta CPU 948" et d’une console deprogrammation PG 7xx.
Logiciels utilisables Vous pouvez créer les programmes utilisateur pour les automatesprogrammables SIMATIC S5
•• en langage de programmation STEP 5
Vous utilisez alors le logiciel de programmation STEP 5 avec le lo-giciel système STEP 5/ST ou STEP 5/MT (pour la description, cf.bibliographie /3/).
ou
•• dans un langage de programmation évolué
Si vous avez l’habitude d’écrire vos programmes dans un langage deprogrammation évolué, vous pouvez également écrire votre program-me STEP 5 pour la CPU 948 à l’aide :
- de SCL (cf. bibliographie /12/ ; le compilateur SCL fait partiedu logiciel PG S5-DOS/MT à partir de la version 6)
ou
- de C avec compilateur C S5.
Quant aux programmes pour commandes séquentielles, vous pou-vez les créer graphiquement à l’aide du logiciel de programmationGRAPH 5 (cf. bibliographie /4/).
Selon la tâche à réaliser, vous pouvez également intégrer dans votreprogramme utilisateur des blocs fonctionnels standard dont les foncti-ons et les caractéristiques sont décrites dans le catalogue ST 57 (cf.bibliographie /11/).
Outils de programmation
Programmation de la CPU 9481 - 18 C79000-G8577-C848-04
1.8 Conversion de programmes utilisateur de la CPU 928B pour laCPU 948
Ce paragraphe contient quelques remarques dont vous devez tenircompte lorsque vous voulez exécuter dans la CPU 948 des program-mes utilisateur conçus pour la CPU 928B.
Opérations Pour les opérations suivantes, vous devez tenir compte des différencesd’exécution et de mise en œuvre dues, entre autres, à une organisationdifférente de la mémoire.
Opérations CPU 928B CPU 948
AS/AF(inhibition/validationdes alarmes)
Inhibition ou validation de toutes lesalarmes de processus
Seules les alarmes de processus vial’octet d’entrée EB 0 sont inhibées ouvalidées. Utilisez les OB 122 et 142 aulieu de ces opérations.
LIR/TIR Utilisation d’adresses de 16 bits Utilisation d’adresses de 20 bitsUne adaptation est nécessaire.
Opération de transfertpar paquets TNB
Utilisation d’adresses de 16 bits Opération inexistanteUtilisez TNW pour le transfert parpaquets de la zone 8 bits dans la zone8 bits.
Opération de transfertpar paquets TNW
- Utilisation d’adresses de 16 bits
- Les transferts par paquets de la zone 8 bits dans la zone 16 bits, etinversement, sont possibles.
- Utilisation d’adresses de 20 bitsUne adaptation est nécessaire.
- TNW ne permet que des transferts par paquets de la zone 8 bits dans la zone 8 bits et de la zone 16 bits dans la zone 16 bits. Utilisez :- l’opération TXB pour le transfert
par paquets de la zone 8 bits dans la zone 16 bits et
- l’opération TXW pour le transfert par paquets de la zone 16 bits dans la zone 8 bits.
TXB et TXW n’existent pas dans la CPU 928B.
Toutes opérations avecle registre BR
Le registre BR a une longueur de20 bits.
Le registre BR a une longueur de32 bits.Une adaptation est nécessaire.
Conversion de programmes utilisateur de la CPU 928B pour la CPU 948
Programmation de la CPU 948C79000-G8577-C848-04 1 - 19
Traitement des cellules detemporisation
CPU 928B CPU 948
Les cellules de temporisationsont actualisées dès la mise enroute.
Les cellules de temporisation nesont actualisées qu’à l’état demarche RUN, et ce afin d’assurerla compatibilité avec laCPU 946/947.
FB 0 comme bloc de cycle
CPU 928B CPU 948
S’il n’existe pas de blocd’organisation cyclique OB 1, leprogramme système appellecycliquement le bloc FB 0 s’il estchargé.
Seul le bloc OB 1 peut être utilisépour le traitement cyclique. Sivous avez programmé le FB 0,créez un bloc OB 1 qui appelle lebloc FB 0.
Valeurs par défaut pour lespriorités
CPU 928B CPU 948
Les alarmes de processus sontprioritaires par rapport auxalarmes d’horloge.
Les alarmes d’horloge ontpriorité sur les alarmes deprocessus via l’octet d’entréeEB 0 et sur les interruptionssystème. Vous pouvez changer cela enparamétrant le DX 0 enconséquence.
Bloc de données DB 0 (listedes adresses de blocs)
CPU 928B CPU 948
La liste des adresses de blocscontient les adresses de débutdirectes des blocs.
La liste des adresses de blocscontient les adresses de segmentdes blocs. Pour obtenir l’adressede début d’un bloc, il faut décalerson adresse de segment de 4 bitsvers la gauche.
Conversion de programmes utilisateur de la CPU 928B pour la CPU 948
Programmation de la CPU 9481 - 20 C79000-G8577-C848-04
Bloc de données DX 0 Vous devez créer un nouveau bloc de données DX 0 (voir chapitre 7),car celui de la CPU 928B a une structure différente et d’autres possibi-lités de sélection.
Utilisation de la zone BT Dans la CPU 928B, le programme système n’utilise pas la zone BT ;dans la CPU 948, les blocs de dialogue l’utilisent en partie.Vous ne pouvez faire appel à la zone BT dans votre programme utili-sateur que si vous ne vous servez pas des FB standard et des fonctionsPG via SINEC H1 et le bus S5.
Blocs d’organisation Le nombre et la fonction des OB de fonctions spéciales et d’erreurdiffèrent dans la CPU 928B et dans la CPU 948.
OB d’erreur Les OB d’erreur suivants de la CPU 948 se comportent différemmentdes OB de même nom de la CPU 928B.
OB Fonction ID d’erreur
OB 19OB 26OB 27
identique à laCPU 928B
différente de laCPU 928B
OB 28OB 29OB 30OB 31
différente de laCPU 928B −
OB de fonctions spéciales
OB Remarque
OB 110OB 152
OB 160 à 163OB 170
OB 190 à 193OB 216 à 218OB 220 et 221
OB 224OB 226 à 228OB 240 à 242OB 250 et 251
Ces OB n’existent pas dans la CPU 948.
OB 111OB 112OB 113OB 120OB 121OB 122OB 123
Dans la CPU 948, ces OB sont remplacés par : OB 131 OB 132 OB 133 OB 122 OB 141 OB 142 OB 143
Conversion de programmes utilisateur de la CPU 928B pour la CPU 948
Programmation de la CPU 948C79000-G8577-C848-04 1 - 21
OB Remarque
OB 122 Son paramétrage diffère de celui de l’OB 122pour la CPU 928B, et ce afin d’assurer lacompatibilité avec la CPU 946/947.
OB 180 Contrairement à ce qui se passe dans laCPU 928B, la fenêtre d’accès ne peut êtredécalée que par un multiple de 16 pour laCPU 948.
OB 200OB 202 à 205
(communicationmultiprocesseur)
Contrairement à ce qui se passe dans laCPU 928B, ces OB modifient l’accumu-lateur 4 dans la CPU 948.
Logiciel de régulation R64 Le logiciel de régulation R64 ne peut pas fonctionner sur la CPU 948.
FB standard Vous devez, en principe, remplacer les blocs fonctionnels standard(pour IP, par exemple) utilisés dans la CPU 928B par ceux de laCPU 948. Font exception les blocs de dialogue que vous pouvez re-prendre de la CPU 928B (voir paragraphe 1.8.1).
Conversion de programmes utilisateur de la CPU 928B pour la CPU 948
Programmation de la CPU 9481 - 22 C79000-G8577-C848-04
Sommaire du chapitre 2
2.1 Langage de programmation STEP 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 4
2.1.1 Modes de représentation CONT, LOG et LIST. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 42.1.2 Programmation structurée. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 52.1.3 Opérations STEP 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 62.1.4 Représentation des valeurs numériques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 82.1.5 Blocs STEP 5 et sauvegarde de ces blocs en mémoire. . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 12
2.2 Blocs d’organisation, de programme et séquentiels . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 16
2.2.1 Blocs d’organisation d’interface utilisateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 182.2.2 Blocs d’organisation de fonctions spéciales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 22
2.3 Blocs fonctionnels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 23
2.3.1 Structure des blocs fonctionnels. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 242.3.2 Programmation de blocs fonctionnels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 262.3.3 Appel et paramétrage de blocs fonctionnels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 282.3.4 Blocs fonctionnels spéciaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 33
2.4 Blocs de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 35
2.4.1 Programmation de blocs de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 372.4.2 Appel de blocs de données. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 382.4.3 Blocs de données spéciaux. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 - 41
2Programme utilisateur
Programmation de la CPU 948C79000-G8577-C848-04 2 - 1
Sommaire
Programmation de la CPU 9482 - 2 C79000-G8577-C848-04
2Programme utilisateur
Le présent chapitre décrit l’ensemble des composantes d’un program-me utilisateur STEP 5 pour la CPU 948 ainsi que la manière destructurer ce programme.
Programmation de la CPU 948C79000-G8577-C848-04 2 - 3
2.1 Langage de programmation STEP 5
Le langage de programmation STEP 5 vous permet de transcrire votretâche d’automatisation en un programme exécutable sur les automatesprogrammables SIMATIC S5. STEP 5 convient à la programmationde fonctions binaires simples ainsi que de fonctions numériques com-plexes et d’opérations arithmétiques, y compris les opérations surnombres à virgule flottante.
Types d’opérations Le jeu d’instructions du langage de programmation STEP 5 se com-pose :
d’opérations de base
•• utilisables dans tous les blocs de code,
•• dans les modes de représentation : schéma à contacts (CONT), lo-gigramme (LOG) et liste d’instructions (LIST),
d’opérations complémentaires et d’opérations système
•• uniquement utilisables dans des blocs fonctionnels,
•• seulement en mode de représentation : liste d’instructions (LIST),
•• les opérations système étant réservées aux utilisateurs expéri-mentés du système.
2.1.1Modes de représentationCONT, LOG et LIST
Lors de la programmation en langage STEP 5, vous avez la possibilité dechoisir pour chaque bloc de code entre trois modes de représentation :schéma à contacts (CONT), logigramme (LOG) et liste d’instructions(LIST). Cela vous permet d’adopter la méthode de programmation lamieux adaptée à chaque application.
Le code machine MC 5 créé par les consoles de programmation (PG)est identique pour les trois modes de représentation.
Si vous respectez certaines règles lors de la programmation avecSTEP 5 (cf. bibliographie /3/), la console peut assurer la conversiondu programme utilisateur d’un mode de représentation à un autre.
Représentation graphique ou liste d’instructions
Les modes CONT et LOG permettent de représenter graphiquementvotre programme STEP 5 alors que la liste d’instructions propose desabréviations mnémotechniques (allemandes) des différentes instructi-ons STEP 5.
Langage de programmation STEP 5
Programmation de la CPU 9482 - 4 C79000-G8577-C848-04
Représentation graphique decommandes séquentielles
GRAPH 5 (cf. bibliographie /4/) est un langage de programmationpour la représentation graphique de commandes séquentielles. Il se si-tue à un niveau supérieur à celui des modes de représentation CONT,LOG, LIST. Le programme saisi sous forme graphique avecGRAPH 5 est converti automatiquement par la console de programma-tion (PG) en un programme STEP 5.
2.1.2Programmation structurée STEP 5 permet de structurer le programme utilisateur qui peut être di-
visé en sections définies de programme (blocs). La division du pro-gramme utilisateur permet de se faire une idée rapide de la structuregénérale du programme et met en évidence au niveau de programmeles sous-ensembles de l’installation liés entre eux.
Schéma à contacts Liste d’instructions Logigramme
Programmation avecdes abréviations mnémotechniques desdésignations des fonctions
Programmation avecdes symbolesgraphiques comme un
Programmation avecdes symboles graphiques
conforme àCEI 117-15DIN 40700DIN 40719DIN 19239
conforme àDIN 19239
conforme àDIN 19239
LIST LOGCONTUUNUONO =
&
> = 1
EEEEEA
schéma des circuits
Figure 2-1 Modes de représentation du langage de programmation STEP 5
Langage de programmation STEP 5
Programmation de la CPU 948C79000-G8577-C848-04 2 - 5
Ce procédé de "programmation structurée" offre les avantages sui-vants :
•• élaboration simple et claire de programmes même importants,
•• possibilité de standardiser des parties du programme,
•• organisation simple du programme,
•• facilité de modification,
•• simplicité de test du programme par parties,
•• facilité de mise en service.
Qu’est-ce qu’un bloc ? Un bloc est une partie du programme utilisateur ayant une fonction,une structure et un emploi bien définis. Il faut distinguer les blocs quicontiennent des instructions (code) de traitement des informations(blocs d’organisation, blocs de programme, blocs fonctionnels, blocsséquentiels) et les blocs qui contiennent des données (bloc dedonnées).
2.1.3Opérations STEP 5 Une opération STEP 5 est le plus petit élément du programme utilisateur.
Elle impose le traitement à effectuer par la CPU. Une opération STEP 5se compose d’un code opération et d’un opérande.
Exemple type d´opérande
code opération opérande
paramètre
:O M 54.1
(que faire ?) (avec quoi ?)
Langage de programmation STEP 5
Programmation de la CPU 9482 - 6 C79000-G8577-C848-04
Opérandes absolus etsymboliques
L’opérande peut être défini sous forme absolue ou symbolique (sui-vant une liste d’assignation).
Exemple de représentation absolue :U E 1.4
Exemple de représentation symbolique :U -Moteur1
Pour la programmation absolue ou symbolique, veuillez vous référerau manuel STEP 5.
Application des opérations STEP 5
L’ensemble des opérations du langage STEP 5 permet de réaliser lesfonctions suivantes :
•• combinaison, mise à "1" ou remise à "0" de valeurs binaires,
•• chargement et transfert de valeurs,
•• comparaison et traitement arithmétique de valeurs,
•• définition de valeurs de présélection pour temporisations et comp-teurs,
•• conversion de représentations de valeurs numériques,
•• appel de blocs et exécution de sauts au sein d’un bloc
et
•• influence du traitement du programme.
Résultat logique RLG Le bit central de gestion du programme est le résultat logique RLG. Ilest formé par des combinaisons binaires et influencé par quelquesopérations.
Toutes les opérations STEP 5 ainsi que les précisions concernant leRLG sont décrites en détail au paragraphe 3.5, qui contient égalementdes exemples de programmation pour chaque instruction STEP 5.
Langage de programmation STEP 5
Programmation de la CPU 948C79000-G8577-C848-04 2 - 7
2.1.4Représentation desvaleurs numériques
Afin que le processeur puisse combiner, modifier ou comparer des va-leurs numériques, celles-ci doivent être chargées dans les accumula-teurs (registres de travail de la CPU) en code binaire.
En STEP 5, la représentation des nombres dépend des opérations à ef-fectuer.
Nombres binaires nombres à virgule fixe de 16 bits
nombres à virgule fixe de 32 bits
nombres à virgule flottante de 32 bits (avec mantisse de 24 bits)
Nombres décimaux nombres décimaux codés binaires (DCB)(signe et 3 chiffres)
Saisie de valeurs numériquessur la console
Lors de la saisie et de la lecture de valeurs numériques, vous sélection-nez sur la console de programmation le format de données (par ex-emple, KF pour virgule fixe) souhaité pour la saisie ou l’affichage dela valeur numérique. Ainsi, la PG se charge de la conversion de la re-présentation numérique interne en un mode de représentation permet-tant la lecture directe.
Opérations autorisées Les nombres à virgule fixe de 16 bits et les nombres à virgule flottantese prêtent à l’exécution de toutes les opérations arithmétiques, tellesque la comparaison, l’addition, la soustraction, la multiplication et ladivision.
NotaIl n’est pas possible d’effectuer des opérations arithmétiques sur lesnombres DCB, car cela conduirait à des résultats erronés.
Les nombres à virgule fixe de 32 bits servent à effectuer des opérati-ons de comparaison. Ils sont en outre nécessaires en tant qu’étape in-termédiaire lors du transcodage de nombres DCB en nombres àvirgule flottante. Les instructions +D et -D les rendent également uti-lisables pour les additions et les soustractions.
Le langage STEP 5 contient des opérations de conversion permettant deconvertir directement des nombres dans les représentations numériquesles plus importantes.
Langage de programmation STEP 5
Programmation de la CPU 9482 - 8 C79000-G8577-C848-04
Nombres à virgule fixe de16 bits et 32 bits
Il s’agit de nombres binaires entiers pourvus d’un signe.
Codage des nombres àvirgule fixe
Ils ont une longueur de 16 bits (= 1 mot) ou de 32 bits (= 2 mots),le bit 15 ou 31 contenant le signe :
•• "0" = nombre positif,
•• "1" = nombre négatif.
Les nombres négatifs sont représentés par leur complément à deux.
Saisie sur la PG Entrée du format de données pour les nombres à virgule fixe de16 bits sur la PG : KF
Entrée du format de données pour les nombres à virgule fixe de32 bits sur la PG : DH
Plage numérique admissible Nombres à virgule fixe de 16 bits-32768 à +32767
Nombres à virgule fixe de 32 bits-2147483648 à +2147483647 (8000 0000H à 7FFF FFFFH)
Utilisation des nombres àvirgule fixe
Les nombres à virgule fixe sont utilisés pour les opérations de calculsimple et pour la comparaison de valeurs numériques. Etant donnéque les nombres à virgule fixe sont toujours des entiers, il faut tenircompte du fait que le quotient de deux nombres à virgule fixe sera tou-jours un entier sans décimales.
Nombres à virgule flottante Les nombres à virgule flottante sont des nombres décimaux positifs ounégatifs. Ils occupent toujours un double mot (32 bits). Un nombre àvirgule flottante est représenté sous forme de nombre exponentiel. Lamantisse est codée sur 24 bits et l’exposant sur 8 bits.
La CPU 948 effectue les additions, soustractions, multiplications et di-visions avec une mantisse de 24 bits (bits 0 à 23).
L’exposant indique l’ordre de grandeur du nombre à virgule flottante. Lesigne de l’exposant indique si le nombre à virgule flottante est supérieurou inférieur à 0,1.
Langage de programmation STEP 5
Programmation de la CPU 948C79000-G8577-C848-04 2 - 9
Utilisation des nombres àvirgule flottante
Il est recommandé d’utiliser des nombres à virgule flottante pourrésoudre des problèmes de calcul plus complexes, plus particulière-ment pour des multiplications et divisions, ainsi que pour les calculsportant sur des nombres très grands ou très petits.
Précision La mantisse indique la précision du nombre à virgule flottante :
•• précision pour une mantisse de 24 bits
2-24 = 0,000000059604 (correspond à 7 chiffres après la virgule)
Lorsque le signe de la mantisse est "0", le nombre est positif. Si cenombre est "1", il s’agit d’un nombre négatif en représentation en com-plément à deux.
La valeur de virgule flottante "0" est représentée par la valeur binai-re naturelle 80000000H (32 bits, voir ci-dessous).
Codage des nombresà virgule flottante
Codage d’un nombre à virgule flottante
31 30 24 23 22 0
S 26 ... . ... 20 S 2-1 .... . . . . . ... 2-23
Exposant Mantisse
Indication du format de données pour nombres à virgule flottante surla PG : KG
Plage numérique admissible ± 0,1469368 x 10-38 à ± 0,1701412 x 1039
Saisie et affichagesur la console
a) Dans un bloc de code
On désire charger le nombre N = 12,34567 en tant que constante àvirgule flottante.
Saisie :
:LKG1234567+2
Langage de programmation STEP 5
Programmation de la CPU 9482 - 10 C79000-G8577-C848-04
b) Dans un bloc de données
On désire charger le nombre N = - 0,005 en tant que constante à virgule flottante.
Saisie :
6: KG = - 5 - 2
Nombre décimal codébinaire (DCB)
Les nombres décimaux sont représentés en code binaire. Avec 3 chif-fres et le signe, ils occupent 16 bits (1 mot) dans l’accumulateur.
15 12 11 8 7 4 3 0
S S S S centaines dizaines unités
Les différents chiffres du nombre décimal sont représentés pardes nombres binaires à 4 bits entre 0000 et 1001 (0 et 9).
Les bits de gauche sont réservés au signe :
signe pour un nombre positif : 0000signe pour un nombre négatif : 1111
Plage numérique admissible -999 à +999
Affichage sur la PG après la validation :
:L KG + 1234567 + 02
Mantisse avec signe Exposant (base 10) avec signe
Valeur du nombre saisi : +0,1234567 x 10+2 = 12,34567
Affichage sur la PG après la validation :
6: KG =- 5000000 - 02
Mantisse avec signe Exposant (base 10) avec signe
Valeur du nombre saisi : - 0,5 x 10-2 = 0,005
Langage de programmation STEP 5
Programmation de la CPU 948C79000-G8577-C848-04 2 - 11
2.1.5Blocs STEP 5 et sauve-garde de ces blocs enmémoire
Identification Un bloc est identifié par :
•• son type (OB, PB, SB, FB, FX, DB, DX)
et
•• son numéro (nombre entre 0 et 255).
Types de blocs Le langage de programmation STEP 5 distingue les types de blocs sui-vants.
Blocs d’organisation (OB) Les blocs d’organisation constituent l’interface entre le programme sy-stème et le programme utilisateur. Ils peuvent être divisés en troisgroupes :
Vous programmez les OB 1 à 39, en fonction des tâches d’automat-isation à réaliser, pour commander l’exécution du programme et défi-nir le comportement de la CPU au démarrage et en cas d’erreur. CesOB sont appelés par le programme système.
Les OB 40 à 100 sont des blocs du système d’exploitation qui nedoivent pas être appelés.
Les OB 121 à 255 contiennent des fonctions spéciales du programmesystème. Vous pouvez les appeler dans le programme utilisateur encas de besoin.
Blocs de programme (PB) Les blocs de programme sont utilisés pour structurer le programme uti-lisateur et ils contiennent les sous-programmes scindés suivant des as-pects technologiques ou fonctionnels. En règle générale, les blocs deprogramme constituent la partie principale du programme utilisateur.
Blocs séquentiels (SB) Il s’agissait au départ de blocs de programme spéciaux utilisés pour letraitement étape par étape de graphes séquentiels. Entre temps,GRAPH 5 (cf. bibliographie /4/) s’est imposé pour la programmationde commandes séquentielles. De ce fait, les blocs SB n’ont plus leur signification initiale : ils consti-tuent aujourd’hui une extension quantitative des blocs de programmeet peuvent être utilisés comme ceux-ci.
Langage de programmation STEP 5
Programmation de la CPU 9482 - 12 C79000-G8577-C848-04
Blocs fonctionnels (FB/FX) Ils servent à programmer des fonctions complexes ou répétitives, parexemple fonctions numériques, commandes séquentielles, régulations,fonctions de signalisation.
Un même bloc fonctionnel peut être appelé plusieurs fois par les blocsde rang supérieur avec, à chaque fois, d’autres opérandes (paramétra-ge de l’appel).Les blocs FX ont été introduits pour doubler le nombre maximal deblocs fonctionnels disponibles.
Blocs de données (DB/DX) Les blocs de données contiennent les données (constantes ou varia-bles) qu’utilise le programme utilisateur. Ce type de bloc ne contientpas d’instructions STEP 5 et sa fonction est fondamentalementdifférente de celle des autres blocs. Les blocs DX ont été introduitspour doubler le nombre maximal de blocs de données disponibles.
Structure d’un bloc Tous les types de blocs comprennent
•• un en-tête de bloc
et
•• un corps de bloc.
En-tête de bloc L’ en-tête de bloc a toujours une longueur de 5 mots et contient des in-formations pour la gestion du bloc dans la console PG et des donnéespour le programme système.
Corps de bloc Suivant le type de bloc, le corps de bloc contient :
•• des instructions STEP 5 (pour OB, PB, SB, FB, FX),
•• des données constantes ou variables (pour DB, DX)
et
•• la liste des opérandes formels (pour FB, FX).
Langage de programmation STEP 5
Programmation de la CPU 948C79000-G8577-C848-04 2 - 13
Bloc étiquette Pour les types de blocs DB, DX, FB et FX, la PG crée en plus un blocétiquette (DV, DVX, FV, FVX). Ces blocs étiquette contiennent desinformations relatives au format de données (pour DB et DX) ou auxrepères de saut (pour FB et FX) qui ne peuvent être exploitées que parla console de programmation. C’est pourquoi les blocs étiquette nesont pas transférés dans la mémoire de l’automate programmable. Entant qu’utilisateur, vous n’avez pas d’influence directe sur le contenudes blocs étiquette.
Longueur maximale Un bloc STEP 5 peut occuper au maximum 32 767 mots (1 mot corres-pond à 16 bits) dans la mémoire de programme de la CPU.
Blocs disponibles Pour la programmation, vous disposez des types de blocs suivants :
Les blocs de données DB 0, DB 1, DX 0 et DX 1 contiennent des pa-ramètres. Ils sont réservés à certaines fonctions ; vous ne pouvez doncpas les utiliser à votre gré. Cela vaut également pour le bloc de données DX 2 qui est réservé à ladeuxième interface série et ne doit donc pas non plus être utilisé.
OB 1 à 39
FB 0 à 255 total 512
FX 0 à 255
PB 0 à 255
SB 0 à 255
DB 2 à 255 total 507
DX 3 à 255
Langage de programmation STEP 5
Programmation de la CPU 9482 - 14 C79000-G8577-C848-04
Stockage des blocs Tous les blocs programmables sont rangés par la PG dans la mémoireutilisateur dans l’ordre de leur transfert (cf. figure 2-2). Si voussélectionnez la fonction PG de transfert de tous les blocs, les blocs decode puis les blocs de données sont transférés.
Les adresses de début des blocs mémorisés sont consignées dans lebloc de données DB 0.
Correction et effacement de blocs
Lors de la correction de blocs, l’ancien bloc est déclaré non valable etun nouveau bloc est inscrit dans la mémoire. Il en est de même lors de l’effacement de blocs : les blocs ne sont pasvraiment effacés, mais ils sont simplement déclarés non valables.L’espace mémoire qu’ils occupent est cependant libéré et peut être uti-lisé par des blocs chargés ultérieurement.
NotaLa fonction en ligne de compression de la mémoire permet derécupérer de la place mémoire pour de nouveaux blocs. Elleoptimise l’occupation de la mémoire en effaçant les blocsdéclarés non valables et en rassemblant les blocs valables.
Situat ion des blocs dansla mémoire ut i l isateur
Adresse 0
FB1
OB1
SB10
DB1
PB1
PB2
Figure 2-2 Exemple de stockage de blocs dans la mémoire utilisateur
Langage de programmation STEP 5
Programmation de la CPU 948C79000-G8577-C848-04 2 - 15
2.2 Blocs d’organisation, de prog ramme et séquent iels
Ces trois types de blocs (OB, PB et SB) ne présentent aucune différen-ce quant à la programmation et à l’appel. Tous trois peuvent être pro-grammés au choix dans les modes de représentation CONT, LOG etLIST.
Programmation Voici comment procéder lors de la programmation de blocs d’organi-sation, de programme et séquentiels :
Etape Action
1 Indiquez d’abord le type de bloc et ensuite le numéro dubloc que vous désirez programmer.
Les numéros suivants sont disponibles : - blocs de programme 0 à 255,- blocs séquentiels 0 à 255,- blocs d’organisation 1 à 39.
2 Saisissez le programme utilisateur en langage STEP 5.
Lors de la programmation de PB, de SB et d’OB, vous ne pouvez utiliser que les opérations de base STEP 5.
Un bloc STEP 5 doit toujours contenir un programme complet. Une suite de combinaisons logiques doit être terminée au sein d’un bloc.
3 Terminez la saisie du programme avec l’instruction BE(fin de bloc).
Appel Un bloc (sauf les OB 1 à 39) doit être appelé avant de pouvoir êtretraité. Cela est réalisé par des instructions STEP 5 spéciales d’appel deblocs.Ces appels de blocs peuvent être programmés au sein d’un bloc d’or-ganisation, de programme, fonctionnel ou séquentiel. Ils sont compa-rables à des branchements ou sauts vers un sous-programme. Chaquesaut donne lieu à un changement de bloc. L’adresse de retour au blocappelant est conservée en mémoire.
Blocs d’organisation, de programme et séquentiels
Programmation de la CPU 9482 - 16 C79000-G8577-C848-04
Les sauts peuvent être exécutés de manière conditionnelle ou incondi-tionnelle.
Appel inconditionnel L’instruction de saut SPA fait partie des opérations inconditionnelleset n’exerce pas d’influence directe sur le RLG. Lors du saut, ce RLGest repris dans le nouveau bloc où il peut être exploité sans toutefoispouvoir être combiné avec d’autres instructions.
Le bloc appelé est traité indépendamment du résultat logique (RLG)précédent (cf. paragraphe 3.4).
Exemple : SPA PB 100
Appel conditionnel L’instruction de saut SPB fait partie des opérations conditionnelles : lebloc appelé n’est traité que si le résultat logique (RLG) précédent estégal à 1. Lorsque le RLG est égal à 0, l’instruction de saut n’est pasexécutée.
Exemple : SPB PB 100
NotaAprès l’exécution de l’opération de saut conditionnelle, le RLGest toujours mis à "1" , que le saut au bloc appelé ait été effectuéou non.
PB 1 PB 5 PB 10
PB 6
BE
BE
BE
BE
U U
O
E 1.0 E 2.0
E 3.0
SPA PB 5O E 5.3
U E 1.5SPB PB 6U E 3.2
SPB PB 10O M 1.5
Figure 2-3 Appels de blocs de programme à exécuter
Blocs d’organisation, de programme et séquentiels
Programmation de la CPU 948C79000-G8577-C848-04 2 - 17
Instruction BE Après l’instruction BE (fin de bloc), la CPU poursuit le programmeutilisateur dans le bloc dans lequel l’appel de bloc a été programmé.L’exécution du programme est poursuivie par l’instruction STEP 5qui suit l’appel de bloc.
L’instruction de fin de bloc BE est exécutée indépendamment du résul-tat logique RLG. Après l’instruction BE, le résultat logique ne peutplus être combiné. Le résultat logique ou de calcul existant immédiate-ment avant l’exécution de l’instruction BE est cependant transmis aubloc appelant où il peut être exploité. Lors du retour à partir du blocappelé, les contenus des accumulateurs ACCU 1, ACCU 2, ACCU 3et ACCU 4, les indicateurs FL 0 et FL 1 ainsi que le résultat logiqueRLG ne sont pas modifiés. Pour de plus amples renseignements con-cernant les accumulateurs, les indicateurs FL 0 et FL 1 et le RLG, re-portez-vous au paragraphe 3.5.
2.2.1Blocs d’organisationd’interface utilisateur
Les blocs d’organisation sont les interfaces entre le programme sy-stème et le programme utilisateur. Les blocs d’organisation OB 1 à 39font partie du programme utilisateur et se programment de la mêmemanière que les blocs de programme. La programmation de ces OBvous permet d’influencer le comportement de la CPU lors du démarra-ge, au cours de l’exécution du programme et en cas d’erreur. Lesblocs d’organisation sont actifs dès qu’ils sont chargés dans la mémoi-re de l’automate programmable, ce qui est également possible encours de fonctionnement.
Le programme utilisateur est traité après appel par le programme sy-stème du bloc d’organisation concerné.
NotaLes blocs d’organisation d’interface OB 1 à OB 39 sontprogrammés par l’utilisateur et sont appelés automatiquement parle programme système en réaction à certains événements.
A des fins de test, ces blocs d’organisation peuvent égalementêtre appelés par le programme utilisateur (SPA/SPB OB xxx). Iln’est cependant pas possible de déclencher un démarrage, parexemple, en appelant l’OB 20.
Les tableaux suivants donnent une vue d’ensemble des interfacesutilisateur (OB).
Blocs d’organisation, de programme et séquentiels
Programmation de la CPU 9482 - 18 C79000-G8577-C848-04
Blocs d’organisation gérant l’exécution du programme
Bloc Fonction et critère d’appel
OB 1 Organisation du traitement de programme cyclique : premier appel à la fin d’undémarrage, puis appel cyclique.
OB 2OB 3OB 4OB 5OB 6OB 7OB 8OB 9
Si "Alarmes de processus octet d’entrée 0 = oui" dans le DX 0(possibilité d’interruption en fin de bloc sélectionnable dans le DX 0)
Appel par modification de l’état des signaux dans l’octet d’entrée EB 0 par le bit :E 0.0E 0.1E 0.2E 0.3E 0.4E 0.5E 0.6E 0.7
OB 2OB 3OB 4OB 5
OB 6OB 9
Si "Alarmes de processus octet d’entrée 0 = non" dans le DX 0(possibilité d’interruption en fin d’instruction ou de bloc sélectionnable dans leDX 0)
Appel par les lignes d’interruption du bus S5 :Interruption système INT X (INT A, B, C ou D selon l’emplacement d’enfichage)Interruption système INT EInterruption système INT FInterruption système INT G
Alarme de retardementAlarme d’horloge
OB 10OB 11OB 12OB 13OB 14OB 15OB 16OB 17OB 18
Organisation du traitement de programme déclenché par horloge (alarme d’horloge) avec possibilité de définition de la fréquence d’horloge de base (définition par défaut T = 100 ms) et de l’échantillonneur (définition par défaut correspond à 150U) dans le bloc de données DX 0Appel par :
Définition par défaut Périodicité 150U Périodicité 2n
0,1 s0,2 s0,5 s1,0 s2,0 s5,0 s
10,0 s20,0 s50,0 s
T * 1T * 2T * 5T * 10T * 20T * 50T * 100T * 200T * 500
T * 1T * 2T * 4T * 8T * 16T * 32T * 64T * 128T * 256
Tableau 2-1 Vue d’ensemble des blocs d’organisation de la CPU 948 pour le traitement du programme
Blocs d’organisation, de programme et séquentiels
Programmation de la CPU 948C79000-G8577-C848-04 2 - 19
Blocs d’organisation gérant le comportement à la mise en route
Bloc Fonction et critère d’appel
OB 20 Appel au démarrage (manuel et automatique)
OB 21 Appel au redémarrage manuel/démarrage avec rémanence
OB 22 Appel au redémarrage automatique/démarrage avec rémanence
Blocs d’organisation gérant le comportement à la mise en route
Bloc Fonction et critère d’appel
OB 38 Organisation du comportement au démarrage pour la communication en arrêtpartiel
OB 39 Organisation du programme cyclique pour la communication en arrêt partiel
Blocs d’organisation pour la réaction aux erreurs matérielles ou de programmation 1
Bloc Fonction et critère d’appel
OB 19 Erreur de temps d’exécution (DPT) : appel d’un bloc non chargé (PB, SB, FB,FX) ou ouverture d’un bloc de données non chargé (DB, DX)
OB 23 Retard d’acquittement (ACQ) dans le programme utilisateur (lors d’un accès direct aux cartes périphériques)
OB 24 Retard d’acquittement (ACQ) lors de l’actualisation de la mémoire image et dutransfert de mémentos de couplage
OB 25 Erreur d’adressage (DAD)
OB 26 Dépassement du temps de cycle (CYC)
Tableau 2-2 Vue d’ensemble des blocs d’organisation de la CPU 948 pour la mise en route
Tableau 2-3 Vue d’ensemble des blocs d’organisation de la CPU 948 pour la mise en route en arrêt partiel
Tableau 2-4 Vue d’ensemble des blocs d’organisation de la CPU 948 pour le traitement des erreurs
Blocs d’organisation, de programme et séquentiels
Programmation de la CPU 9482 - 20 C79000-G8577-C848-04
Blocs d’organisation pour la réaction aux erreurs matérielles ou de programmation 1
Bloc Fonction et critère d’appel
Suite du tableau 2-4
OB 27 Erreur de substitution (SUB)
OB 28 Retard d’acquittement de l’octet d’entrée EB 0(alarmes de processus)
OB 29 Retard d’acquittement de la périphérie décentralisée, volume d’adresses étendu
OB 30 Retard d’acquittement et erreur de parité (PARI) lors de l’accès à la mémoire utilisateur
(OB 31) Définition du temps de cycle 2
OB 32 Erreur de chargement et de transfert lors de l’accès à des blocs de données (DTC)
OB 33 Erreur de traitement d’alarme d’horloge (COLAH/AHMAS)
OB 34 Erreur lors de la création d’un bloc de données (E DB/EX DX)
OB 36 Erreur lors de l’exécution d’une fonction d’autotest
1 Lorsque, en cas d’erreur, le bloc d’organisation n’est pas programmé, la CPU se met à l’arrêt (STOP). EXCEPTION : lorsque les OB 19 (bloc de code non chargé), OB 23, OB 24, OB 29 (retard d’acquittement) ou OB 33(erreur de traitement d’alarmes d’horloge) n’existent pas, aucune réaction n’a lieu.
2 Dans la CPU 948, l’OB 31 n’existe que pour des raisons de compatibilité. Pour définir le temps de cycle, utilisez le bloc de données DX 0 (cf. chapitre 7).S’il est chargé, l’OB 31 est appelé une fois à la mise en route. Vous pouvez aussi y définir le temps de cycle en y programmant les opérations STEP 5 suivantes :
:L KF +nnn:BE
nnn est un nombre décimal. Le temps de cycle résulte de l’opération "nnn * 10 ms".
Blocs d’organisation du système d’exploitation de la CPU 948
Bloc Fonction
OB 0 Bloc interne au système d’exploitation
Blocs d’organisation, de programme et séquentiels
Programmation de la CPU 948C79000-G8577-C848-04 2 - 21
2.2.2Blocs d’organisation de fon-ctions spéciales
Les OB suivants contiennent des fonctions spéciales du programme sy-stème. Vous ne pouvez pas les programmer, mais uniquement les ap-peler, et ce au sein de tous les blocs de code (cela s’applique à tous lesOB ayant des numéros entre 121 et 255). Ces OB ne contiennent pasde programme STEP 5.
Blocs d’organisation intégrés avec fonctions spéciales
Bloc Fonction
OB 121 Génération et lecture de l’horodateur (compatible avec la CPU 946/947)
OB 122 Activation/désactivation de l’inhibition des alarmes
OB 124 Effacement de blocs STEP 5
OB 125 Création de blocs STEP 5
OB 126 Définition et transfert de mémoires image
OB 129 Etat de la pile de sauvegarde
OB 131 Effacement des accumulateurs 1 à 4
OB 132 Décalage vers le haut dans l’accumulateur
OB 133 Décalage vers le bas dans l’accumulateur
OB 141 Activation/désactivation de l’inhibition sélective d’alarmes d’horloge
OB 142 Activation/désactivation du retardement général des alarmes
OB 143 Activation/désactivation du retardement sélectif d’alarmes d’horloge
OB 150 Génération et lecture de l’horodateur interne (compatible avec la CPU 928B)
OB 151 Génération et lecture de l’heure de déclenchement d’une alarme d’horloge àheure fixe
OB 153 Génération et lecture de l’heure de déclenchement d’une alarme de retardement
OB 180 Accès variable à un bloc de données
OB 181 Test de blocs de données DB/DX
OB 182 Duplication d’une zone de données
OB 200, 202 à 205 Fonctions pour la communication multiprocesseur
OB 222 Redémarrage de la surveillance du temps de cycle
OB 223 Comparaison du mode de démarrage des CPU en fonctionnement multiprocesseur
OB 254, 255 Déplacement ou duplication de blocs de données DB et DX de la carte àmémoire dans la mémoire utilisateur
La description exhaustive de ces fonctions spéciales figure au chapitre 6.
Tableau 2-5 Vue d’ensemble des blocs d’organisation de fonctions spéciales de la CPU 948
Blocs d’organisation, de programme et séquentiels
Programmation de la CPU 9482 - 22 C79000-G8577-C848-04
2.3 Blocs fonctionnels
Les blocs fonctionnels (FB/FX) sont des parties du programme utilisa-teur tout comme les blocs de programme. Les blocs fonctionnels FXont la même structure que les blocs fonctionnels FB et sont program-més de la même manière. Les blocs fonctionnels servent à réaliser des fonctions très complexesou répétitives. Chaque bloc fonctionnel représente une fonction complèteau sein du programme utilisateur. Vous pouvez :
•• commander des blocs fonctionnels auprès de SIEMENS en tantque produit logiciel (blocs fonctionnels standard – cf. biblio-graphie /11/) ; ces blocs fonctionnels standard permettent d’éla-borer rapidement des programmes utilisateur destinés à la comman-de, à la signalisation, à la régulation et à la consignation ;
ou
•• les programmer vous-même.
Par rapport aux blocs d’organisation, de programme et séquentiels, lesblocs fonctionnels présentent quatre différences essentielles :
OB, PB, SB FB/FX
1. Opérations
seulement opérations de base - opérations de base - opérations complémentaires- opérations système
2. Mode de représentation
Programmation et appel dansles modes de représentationCONT, LOG et LIST
Programmation seulement en mode de représentation LIST(liste d’instructions)
3. Noms
Attribution d’un nom impossible(uniquement numéro)
En plus du numéro peuventêtre pourvus d’un nom de 8caractères au maximum.
4. Opérandes
aucun Opérandes formels(paramètres du bloc)Lors de l’appel du bloc, lesopérandes formels sontremplacés par des opérandeseffectifs.
Blocs fonctionnels
Programmation de la CPU 948C79000-G8577-C848-04 2 - 23
2.3.1Structure des blocsfonctionnels
L’ en-tête (5 mots) d’un bloc fonctionnel présente la même structureque celui des autres blocs STEP 5.
La structure d’un corps de bloc est différente de celle des autres typesde blocs. En effet, le corps de bloc ne contient pas uniquement le pro-gramme utilisateur sous forme de liste d’instructions STEP 5, maiscommence par le nom du bloc et par la liste des opérandes formels.Cette liste ne contenant aucune instruction exécutable par la CPU, elleest franchie par un saut inconditionnel généré automatiquement par laconsole. Cette instruction de saut n’est pas visualisée à l’écran de laconsole lors de la lecture du bloc.
Lors de l’appel d’un bloc fonctionnel, seul le corps de bloc est traité.
Opérandes absolus ousymboliques
Les opérandes peuvent être indiqués de façon absolue (par exemple,M 2.5) ou symbolique (par exemple, -MOTEUR1). L’affectation desopérandes symboliques aux opérandes absolus doit être définie dansune liste d’assignation qui doit être créée au préalable (cf. biblio-graphie /3/).
Un bloc fonctionnel se trouvant dans la mémoire de l’automate seprésente de la manière suivante :
SPA
Nom du FB/FX
Opérande formel 1
Opérande formel 2
Opérande formel n
5 mots
1 mot
4 mots
3 mots
En-tête
Corpsde bloc
BE
3 mots
Saut par dessusla l is te desopérandes formels
1 è r e instruct ion STEP 5
3 mots
Liste desopérandesformels
Programmeut i l isateurSTEP 5
Figure 2-4 Structure d’un bloc fonctionnel (FB/FX)
Blocs fonctionnels
Programmation de la CPU 9482 - 24 C79000-G8577-C848-04
La mémoire contient ainsi toutes les indications requises par la conso-le de programmation pour la représentation graphique du bloc fon-ctionnel lors de son appel et pour le contrôle des opérandes lors duparamétrage et de la programmation du bloc fonctionnel. Toute saisieerronée est refusée par la console de programmation.
Pour les blocs fonctionnels, il faut distinguer entre :
•• la programmation du FB/FX
et
•• l’ appel et le paramétrage du FB/FX.
Distinction entre"programmation" et "appel et paramétrage"
Vous déterminez la fonction du bloc lors de la programmation, aucours de laquelle vous sélectionnez les opérandes d’entrée requis parla fonction ainsi que les résultats transmis par la fonction au program-me appelant. Vous définissez alors tous les opérandes d’entrée et résul-tats en tant qu’opérandes formels exerçant une fonction de réservation.
Lors de l’appel d’un bloc par un bloc de rang supérieur (OB, PB, SB, FB,FX), les opérandes formels (paramètres du bloc) sont remplacés par desopérandes effectifs ; cela correspond au paramétrage du bloc fonction-nel.
Programmation
Pour alors
programmer "directement" unbloc fonctionnel, c’est-à-dire sansutiliser d’opérande formel,
procédez comme pour des blocs de programme ou séquentiels
utiliser des opérandes formels dans un bloc fonctionnel,
procédez comme décrit dans lespages suivantes tout en respectantl’ordre requis :1) Programmez le FB/FX avec
les opérandes formels et laissez-le dans la PG (hors ligne) ou dans la mémoire de la CPU (en ligne).
2) Programmez les blocs appelants avec les opérandes effectifs.
Blocs fonctionnels
Programmation de la CPU 948C79000-G8577-C848-04 2 - 25
2.3.2Programmation de blocsfonctionnels
Un bloc fonctionnel ne peut être programmé qu’en mode liste d’ins-tructions (LIST). Procédez comme suit pour saisir un bloc fonction-nel sur la PG.
Etape Action
1 Indiquez le type (FB/FX) et le numéro du blocfonctionnel.
Numérotez vos blocs fonctionnels de façon décrois-sante à partir du FB 255 afin qu’ils ne se recoupent pas avec les blocs fonctionnels standard FB 1 à FB 199.
2 Indiquez le nom du bloc fonctionnel.
Le nom peut contenir 8 caractères au maximum, le premier devant être une lettre.
3 Si le bloc fonctionnel doit comporter des opérandes formels :saisissez comme paramètres du bloc les opérandes formels utilisés dans le bloc.
Précisez pour chaque paramètre du bloc :
- son nom (maximum 4 caractères),- son type et, éventuellement, son format.
Il est possible de définir au maximum 40 opérandes formels.
4 Saisissez ensuite le programme STEP 5 en mode liste d’instructions . Les opérandes formels sont caractérisés par le signe d’égalité qui les précède (par exemple, U=X1). Ils peuvent intervenir plusieurs fois à différents endroits du bloc fonctionnel.
5 Terminez la saisie du programme par l’instruction BE (finde bloc).
Blocs fonctionnels
Programmation de la CPU 9482 - 26 C79000-G8577-C848-04
NotaEn cas de modification de l’ordre ou du nombre des opérandesformels dans la liste des paramètres du bloc, il est nécessaire demodifier également les instructions STEP 5 du bloc fonctionnelqui appellent un opérande formel ainsi que la liste deparamétrage dans le bloc appelant.
Il est recommandé de toujours programmer et modifier les blocsfonctionnels sur la disquette ou sur le disque dur et de lestransférer ensuite dans la CPU.
Opérandes formels Vous pouvez utiliser les opérandes formels (également appelés pa-ramètres de bloc) de type et de format suivants dans un bloc fonction-nel.
Type du paramètre Format du paramètre
E = entréeA = sortie
BI/BY/W/D
D = donnée KM/KH/KY/KC/KF/KT/KZ/KG
B = instructionT = temporisationZ = compteur
aucun(indication du format impossible)
E, D, B, T ou Z sont des paramètres qui, lors de la représentation gra-phique de l’appel d’un bloc fonctionnel, apparaissent du côté gauchedu symbole de fonction, tandis que le paramètre A apparaît du côtédroit du symbole.
Pour les paramètres E et A, le format indique s’il s’agit de bits,d’octets, de mots ou de doubles mots et précise, pour les pa-ramètres D, le format de données (par exemple, configuration binaireou hexadécimale).
Tableau 2-6 Opérandes formels utilisables dans des blocs fonctionnels
Blocs fonctionnels
Programmation de la CPU 948C79000-G8577-C848-04 2 - 27
2.3.3Appel et paramétrage deblocs fonctionnels
Vous pouvez appeler chaque bloc fonctionnel autant de fois que vousle désirez et à des endroits quelconques au sein du programme utilisa-teur STEP 5. Les appels de FB peuvent se faire aussi bien en CONT etLOG qu’en LIST.
Pour appeler et paramétrer un bloc fonctionnel, procédez comme suit.
Etape Action Réaction à la PG
1 Assurez-vous que le bloc fonctionnel appelé setrouve soit dans la mémoire de la PG (hors ligne),soit dans celle de la CPU (en ligne).
aucune
2 Saisissez dans le bloc appelant l’instruction d’appeldu bloc fonctionnel.
L’appel d’un bloc fonctionnel peut être pro-grammé au sein d’un bloc d’organisation, de programme ou séquentiel ou au sein d’un autre bloc fonctionnel.
Une fois l’instruction d’appel saisie(par exemple, SPA FB 200), le nom etla liste des opérandes formels du blocfonctionnel en question s’affichentautomatiquement.
3 Affectez à chaque opérande formel l’opérande effectif valable pour cet appel (vous effectuez ainsi le paramétrage du bloc fonctionnel).
Les opérandes effectifs peuvent être différents pour chaque appel : par exemple, entrées et sorties lors du premier appel du FB 200 et mémentos lors du deuxième appel.La définition des opérandes effectifs doit s’effectuer conformément à la liste des opérandes formels,à chaque appel du bloc fonctionnel.
aucune
Appel inconditionnel ouconditionnel
Appel inconditionnel Appel conditionnel
SPA FBn pour blocs fonctionnels FB ou BA FXn pour blocs fonctionnels étendus FX
Le bloc fonctionnel appelé est traité indépendamment du résultat logique (RLG) précédent.
SPB FBn pour blocs fonctionnels FB ou BAB FXn pour blocs fonctionnels étendus FX
Le bloc fonctionnel appelé n’est traité que lorsque le résultat logique précédent égale 1. Lorsque leRLG égale 0, l’appel de bloc n’est pas exécuté. Le RLG est ensuite toujours mis à "1", que l’appel de bloc ait été effectué ou non.
Après l’appel inconditionnel ou conditionnel, le résultat logique ne peut plus être combiné. Lors du saut,il est cependant repris dans le bloc fonctionnel appelé où il peut être exploité.
Blocs fonctionnels
Programmation de la CPU 9482 - 28 C79000-G8577-C848-04
Opérandes effectifs admis Le tableau suivant indique quels opérandes effectifs vous pouvez af-fecter à un bloc fonctionnel.
Type deparamètre
Format de paramètre Opérandes effectifs admis
E, A BI si l’opérande est un bit
BY si l’opérande est un octet
W si l’opérande est un mot
D si l’opérande est un double mot
E n.m entréeA n.m sortieM n.m mémento
EB n octet d’entréeAB n octet de sortieMB n octet de mémentos DL n octet de gaucheDR n octet de droitePY n octet de périphérieQY n octet de la périphérie étendue
EW n mot d’entréeAW n mot de sortieMW n mot de mémentosDW n mot de donnéesPW n mot de périphérieQW n mot de la périphérie étendue
ED n double mot d’entréeAD n double mot de sortieMD n double mot de mémentosDD n double mot de données
D KM pour une configurationbinaire (16 bits)
KY pour deux nombres (2 octets) compris chacun entre 0 et 255
KH pour un nombre hexa-décimal jusqu’à 4 chiffres
KC pour 2 caractèresalphanumériques
KT pour une valeur de tempo-risation (décimal codé binaire) avec base de temps de .0 à .3 et facteur de temps de 0 à 999
KZ pour une valeur de compteur de 0 à 999
constante
Tableau 2-7 Opérandes effectifs admis dans les blocs fonctionnels
Blocs fonctionnels
Programmation de la CPU 948C79000-G8577-C848-04 2 - 29
Type deparamètre
Format de paramètre Opérandes effectifs admis
Suite du tableau 2-7
D(suite)
KF pour un nombre à virgule fixe de -32768 à +32767
KG pour un nombre à virguleflottante 1
constante
B pas d’indication de format DB n bloc de données ; l’instructionA DB n est exécutée.
FB n Les blocs fonctionnels (nécessairement sans paramètres) sont appelés de manière inconditionnelle (SPA ..n).
OB n Les blocs d’organisation sont appelés de manière inconditionnelle (SPA ..n).
PB n Les blocs de programme sont appelés de manière inconditionnelle (SPA ..n).
SB n Les blocs séquentiels sont appelés demanière inconditionnelle (SPA ..n).
T pas d’indication de format T 0 à 255 temporisation
Z pas d’indication de format Z 0 à 255 compteur
1 ±0,1469368 x 10-38 à ±0,1701412 x 1039
NotaLes mémentos S ne peuvent pas être utilisés comme opérandeseffectifs pour les blocs fonctionnels.
Après le saut dans le bloc fonctionnel, le traitement du programme dece bloc porte sur les opérandes effectifs précisés dans le bloc appelant.Du fait que les blocs fonctionnels peuvent être paramétrés, leur utilisationdans le programme utilisateur est variée.
Au sortir du bloc fonctionnel appelé, la liste des paramètres effectifsdans le bloc appelant est sautée via une opération de saut déposée im-plicitement par STEP 5 dans le code MC5.
Blocs fonctionnels
Programmation de la CPU 9482 - 30 C79000-G8577-C848-04
Exemples
Exemple 1 : L’exemple suivant illustre aussi bien la programmation que l’appel et le paramétrage d’un bloc fonctionnel. Il s’agit d’un exemple simple à comprendre.
Programmation du bloc fonctionnel FB 202
FB 202
SEGMENT 1NOM : EXEMPLEDES : ANNE E/A/D/B/T/Z: E BI/BY/W/D: BIDES : MARC E/A/D/B/T/Z: E BI/BY/W/D: BIDES : JEAN E/A/D/B/T/Z: A BI/BY/W/D: BI
:U = ANNE:U = MARC:= = JEAN
:: BE
Appel et paramétrage du bloc fonctionnel FB 202 dans le bloc de programmePB 25
Mode de représentation LIST Mode de représentation CONT/LOG
PB 25SEGMENT 1
: SPA FB 202 FB 202NOM : EXEMPLE EXEMPLEANNE : E 13.5 E 13.5 ANNE JEAN A 23.0MARC : M 17.7 M 17.7 MARC :BEJEAN : A 23.0
: BE
Le programme suivant est exécuté à la suite du saut dans le FB 202 :
: U E 13.5: U M 17.7: = A 23.0:BE
Liste des para-mètres
Instruc-
tions
STEP 5
Opérandesformels
Type de paramètre
Format deparamètre
Opérandesformels
Opérandeseffectifs
Blocs fonctionnels
Programmation de la CPU 948C79000-G8577-C848-04 2 - 31
Exemple 2 : Appel et paramétrage d’un bloc fonctionnel en mode de représentation LIST et CONT/LOG dans un bloc de programme
Mode de représentation LIST
PB 25SEGMENT 1
:: A DB 5:: SPA FB 201
NOM : E-ANTRZU-E : DW 1RME : E 3.5ESB : M 2.5UEZ : T 2ZEIT : KT 010.1ZU-A : DW 2
BEA : A 2.3LSL : A 6.0
: BE
Modes de représentation CONT/LOG
PB 25SEGMENT 1
FB 201
E-ANTRDW 1 ZU-E ZU-A DW 2E 3.5 RME BEA A 2.3M 2.5 ESB LSL A 6.0T 2 UEZ :BEKT 010.1 ZEIT
Opérandesformels
Opérandeseffectifs
Blocs fonctionnels
Programmation de la CPU 9482 - 32 C79000-G8577-C848-04
2.3.4Blocs fonctionnels spéciaux
Outre les blocs fonctionnels programmés par l’utilisateur, il existe desblocs fonctionnels standard pouvant être commandés en tant que pro-duit logiciel fini. Ils contiennent des fonctions standard d’emploigénéral (par exemple, fonctions de signalisation, commandes séquenti-elles, etc.).Les blocs fonctionnels standard occupent les numéros FB 1 à FB 199.
Lorsque vous achetez des blocs fonctionnels standard, veuillez tenircompte des remarques particulières contenues dans la description join-te (zones occupées, conventions, etc.).
Les blocs fonctionnels standard destinés à l’AP S5-155U sont décritsdans le catalogue ST 57 (bibliographie /11/).
Exemple
Extracteur de la racine carrée d’un nombre à virgule flottante RAD:GP FB 6
Le bloc fonctionnel RAD:GP sert à l’extraction de la racine carrée d’unnombre à virgule flottante (exposant 8 bits et mantisse 24 bits). Lerésultat de cette opération est également un nombre à virgule flottante(exposant 8 bis et mantisse 24 bits), le bit de poids faible de lamantisse n’étant pas arrondi.
En cas d’impossibilité de calcul, le bloc fonctionnel met à "1" l’indicatif"radical négatif", permettant ainsi la poursuite du traitement.
Nombres limites
Radical - 0,1469368 exp. -38 à +0,1701412 exp. +39
Racine carrée +0,3833434 exp. -19 à +0,1304384 exp. +20
Fonction: Y = √AY = SQRT ; A = RADI
Appel du bloc fonctionnel FB 6
Dans l’exemple suivant, on extrait la racine carrée d’un nombre à virguleflottante pris dans le DD 5 du DB 17 (exposant de 8 bits et mantisse de 24bits). Le résultat - également un nombre à virgule flottante de 32 bits - esttransféré dans le DD 10 après que le bloc de données correspondant ait étéouvert. Le paramètre VZ (type de paramètre : A, format de paramètre : BI)indique le signe du radical : VZ = 1 pour un radical négatif.
Mots de mémentos occupés : MW 238 à 254
Suite à la page suivante
Blocs fonctionnels
Programmation de la CPU 948C79000-G8577-C848-04 2 - 33
Suite "Extracteur de la racine carrée d’un nombre à virgule flottante"
Mode de représentation LIST Mode de représentation CONT
Seg- : A DB 17ment : SEGMENT 21 :***
: SPA FB 6 FB 6Seg- NOM : RAD : GP RADment RADI : DD 5 DD 5 RADI VZ M 15.02* VZ : M 15.0 SQRT DD 10 SQRT : DD 10 :BE
DD= double mot de données
* Il faut prévoir des segments distincts, car l’instruction "A DB 17" du segment 1 n’est pas convertible en CONT/LOG.
Blocs fonctionnels
Programmation de la CPU 9482 - 34 C79000-G8577-C848-04
2.4 Blocs de données
Les blocs de données (DB) ou blocs de données étendus (DX) contien-nent les données constantes ou variables utilisées par le programmeutilisateur. Aucune instruction STEP 5 n’est traitée dans les blocs dedonnées.
Les données d’un bloc de données peuvent être :
•• des configurations binaires quelconques, par exemple les étatsd’une installation,
•• des nombres (hexadécimaux, binaires, décimaux) pour des valeursde temps, des résultats de calculs,
•• des caractères alphanumériques, par exemple pour des textes demessages.
Structure d’un bloc dedonnées
Un bloc de données (DB/DX) est constitué par les parties suivantes :
•• un bloc étiquette (DV, DVX),
•• un en-tête de bloc,
•• un corps de bloc.
Bloc étiquette Le bloc étiquette est créé automatiquement sur le disque dur ou la dis-quette de la PG et n’est pas transféré à la CPU. Il contient les formatsdes mots de données indiqués dans le corps de bloc. Vous ne pouvezpas influer sur la création du bloc étiquette.
NotaLorsque vous transférez un bloc de données sur la disquette ou ledisque dur à partir de l’automate programmable, le bloc étiquettecorrespondant peut être effacé. C’est pourquoi il ne faut jamaismodifier dans l’automate un bloc de données contenant différentsformats de données et le retransférer ensuite sur la disquette,sinon tous les mots de données de ce DB sont automatiquementpourvus du format de données que vous avez choisi dans lesprésélections.
Blocs de données
Programmation de la CPU 948C79000-G8577-C848-04 2 - 35
En-tête de bloc L’ en-tête de bloc occupe 5 mots dans la mémoire et contient
•• l’indicatif de début du bloc,
•• l’identification de la console de programmation,
•• le type et le numéro du bloc,
•• le numéro de bibliothèque et
•• la longueur du bloc (y compris la longueur de l’en-tête).
Corps de bloc Le corps de bloc contient, en ordre croissant à partir du DW 0, lesmots de données qu’utilise le programme utilisateur. Chaque mot dedonnées occupe 1 mot (16 bits) en mémoire.
Longueur maximale Un bloc de données peut occuper jusqu’à 32 767 mots (y comprisl’en-tête) dans la mémoire de la CPU. Veuillez donc tenir compte dela capacité mémoire de votre CPU lorsque vous procédez à la saisie etau transfert de blocs de données au moyen de la PG.
Blocs de données
Programmation de la CPU 9482 - 36 C79000-G8577-C848-04
2.4.1Programmation de blocs de données
Pour élaborer un bloc de données, procédez comme suit :
Etape Action
1 Indiquez un type (DB/DX) et un numéro de bloc dedonnées entre 2 (ou 3) et 255.
2 Saisissez les différents mots de données dans le format dedonnées souhaité.
La saisie des mots de données ne se termine pas par une instruction de fin de bloc BE.
NotaLes blocs de données DB 0, DB 1, DX 0, DX 1 et DX 2 sontréservés à des fonctions déterminées et ne peuvent donc pas êtreutilisés librement (cf. paragraphe 2.4.3).
Désigna-tion
Format de données Exemple
KM configuration binaire 00100110 00111111
KH nombre hexadécimal 263F
KY deux octets 038,063
KF nombre à virgule fixe 09791
KG nombre à virgule flottante +1356123+12
KC caractère ?!ABCD123-+.,%
KT valeur de temporisation 055.2
KZ valeur de comptage 234
Tableau 2-8 Formats de données admissibles dans un bloc de données
Blocs de données
Programmation de la CPU 948C79000-G8577-C848-04 2 - 37
2.4.2Appel de blocs de données Un bloc de données (DB/DX) ne peut être appelé que de manière in-
conditionnelle. Cela peut être réalisé au sein d’un bloc d’organisati-on, de programme, séquentiel ou fonctionnel. Un même bloc dedonnées peut être appelé plusieurs fois dans un même programme.
L’appel d’un bloc de données s’effectue par les instructions suivantes :
Pour alors
appeler un bloc de données DB, utilisez l’instruction A DB.. deSTEP 5.
appeler un bloc de données DX, utilisez l’instruction AX DX.. deSTEP 5.
Zone de validité Lorsqu’un bloc de données a été appelé, toutes les instructions suivan-tes relatives à la zone d’opérande D se rapportent au bloc ouvert.
Le bloc de données ouvert conserve sa validité même si l’exécutiondu programme est poursuivie dans un autre bloc de code en raisond’un appel de bloc.
Lorsqu’un autre bloc de données est ouvert dans ce nouveau bloc,celui-ci est uniquement valable dans le bloc appelé à partir de la posi-tion d’appel. Au retour dans le bloc appelant, c’est de nouveau l’an-cien bloc de données qui est valable.
Accès L’ accès aux données enregistrées dans le bloc de données ouvert estréalisé lors de l’exécution du programme au moyen d’opérations com-binatoires sur bits, d’opérations de mémorisation et d’opérationsde chargement et de transfert (pour de plus amples informations,reportez-vous au chapitre 3).
Une opération combinatoire sur bits permet d’utiliser le bit du motde données adressé pour la création du RLG. Le contenu du mot dedonnées n’est pas modifié.
Une opération de mémorisation permet d’affecter la valeur du RLGau bit du mot de données adressé. Le contenu du mot de données peutêtre modifié.
Une opération de chargement permet de transférer dans l’accumula-teur 1 le contenu du mot de données adressé. Le contenu du mot dedonnées n’est pas modifié.
Une opération de transfert permet de transférer les données de l’ac-cumulateur 1 dans le mot de données adressé. L’ancien contenu dumot de données est remplacé.
Blocs de données
Programmation de la CPU 9482 - 38 C79000-G8577-C848-04
NotaAvant d’accéder à un mot de données, il faut appeler le bloc dedonnées concerné dans le programme utilisateur pour que la CPUpuisse retrouver le mot de données correct. Le mot de donnéesauquel vous voulez accéder doit être contenu dans le bloc ouvert,sinon le programme système décèle une erreur de transfert ou dechargement.
Les opérations de chargement et de transfert permettent unique-ment d’accéder aux mots de données jusqu’au numéro 255.
Un bloc de données ouvert reste valable jusqu’à ce
a) qu’un autre bloc de données soit appelé
ou
b) que le bloc dans lequel il a été appelé soit terminé avec BE, BEB ou BEA.
Exemples
Exemple 1 : Transfert de mots de données
Il s’agit de transférer le contenu du mot dedonnées DW 1 du bloc de données DB 10 dans le motde données DW 1 du bloc de données DB 20.
Entrez à cet effet les instructions suivantes :
:A DB 10 (appel du DB 10):L DW 1 (transfert du DW 1 dans: l’accumulateur 1):A DB 20 (appel du DB 20):T DW 1 (transfert du contenu de : l’accumulateur 1 dans le DW 1) :
Blocs de données
Programmation de la CPU 948C79000-G8577-C848-04 2 - 39
Exemple 2 : Validité des blocs de données (figure 2-5)
Le bloc de données DB 10 est appelé dans le bloc de programme PB 7 (A DB 10). La suite du traitement porte sur les données de ce bloc dedonnées.
A l’appel du bloc de programme PB 20 (SPA PB 20), le bloc de données DB 10conserve sa validité. Ce n’est qu’après l’appel du bloc de données DB 11 (ADB 11) qu’il y a changement de la zone de données. Le bloc de données DB 11reste valable jusqu’à la fin du bloc de programme PB 20 (BE).
Après le retour dans le bloc de programme PB 7, c’est de nouveau le blocde données DB 10 qui est valable.
PB 7
A DB 11
BE
PB 20
A DB 10
SPA PB 20
BE
Zone de val idi té du DB 10
Zone de val idi té du DB 11
Figure 2-5 Zone de validité d’un bloc de données ouvert
Blocs de données
Programmation de la CPU 9482 - 40 C79000-G8577-C848-04
2.4.3Blocs de données spéciaux Dans la CPU 948, les blocs de données DB 0, DB 1, DX 0, DX 1 et
DX 2 sont réservés à des fonctions particulières. Ils sont gérés par leprogramme système et vous ne pouvez pas les utiliser librement.
DB 0 •• Bloc de données DB 0 (cf. paragraphe 8.3.2)
Le bloc de données DB 0 contient la liste des adresses de début detous les blocs qui se trouvent dans la mémoire utilisateur de laCPU. Cette liste d’adresses est générée par le programme systèmelors de l’initialisation (à chaque mise sous tension et effacementgénéral) et elle est actualisée automatiquement lors de la saisie oude la modification de blocs au moyen de la PG.
DB 1 •• Bloc de données DB 1 (cf. paragraphe 10.1.6)
Le bloc de données DB 1 contient la liste des entrées et sortiesTOR (périphérie P avec adresses d’octets relatives de 0 à 127) ain-si que des mémentos de couplage d’entrée et de sortie ayant été at-tribués à la CPU et, le cas échéant, la longueur du bloc detemporisations.
Le DB 1 peut être paramétré et chargé :en fonctionnement monoprocesseur, afin de réduire le temps de cycle, car seules les entrées et sorties et les temporisations indiquées dans le DB 1 sont actualisées.
Le DB 1 doit être paramétré et chargé :a) en fonctionnement multiprocesseur,b) en présence de mémentos de couplage avec CP.
DX 0 •• Bloc de données DX 0 (cf. chapitre 7)
Le bloc de données DX 0 contient les présélections de certainesfonctions du programme système (par exemple, lors du traitementdu démarrage). Vous pouvez modifier les valeurs par défaut dansle DX 0 et ainsi adapter le programme système à vos besoins.
DX 1 •• Bloc de données DX 1
Réservé
DX 2 •• Bloc de données DX 2
Réservé à la deuxième interface série
Blocs de données
Programmation de la CPU 948C79000-G8577-C848-04 2 - 41
Blocs de données
Programmation de la CPU 9482 - 42 C79000-G8577-C848-04
Sommaire du chapitre 3
3.1 Principe du traitement du programme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 - 4
3.2 Organisation du programme. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 - 5
3.3 Mémorisation de programmes et de blocs de données . . . . . . . . . . . . . . . . . . . . . . . . . . 3 - 10
3.4 Traitement du programme utilisateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 - 11
3.4.1 Définition des termes pour le traitement du programme . . . . . . . . . . . . . . . . . . . . . . . . 3 - 12
3.5 Liste des opérations STEP 5 avec exemples de programmation . . . . . . . . . . . . . . . . . . 3 - 15
3.5.1 Opérations de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 - 193.5.2 Exemples de programmation pour les modes de représentation LIST, CONT, LOG . . 3 - 343.5.3 Opérations complémentaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 - 493.5.4 Opérations d’organisation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 - 593.5.5 Opérations sur sémaphores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 - 75
3Traitement du programme
Programmation de la CPU 948C79000-G8577-C848-04 3 - 1
Sommaire
Programmation de la CPU 9483 - 2 C79000-G8577-C848-04
3Traitement du programme
Le présent chapitre s’adresse aux lecteurs n’ayant pas encore de con-naissances approfondies dans l’utilisation du langage de programmati-on. Il introduit les principes de base de la programmation dansSTEP 5, explicitant en détail – à l’appui d’exemples – les opérationsSTEP 5 de la CPU 948.
Les lecteurs expérimentés, pour qui l’information relative à une opéra-tion STEP 5 décrite dans la liste des opérations est insuffisante, peu-vent utiliser le paragraphe 3.5 comme partie de référence.
Programmation de la CPU 948C79000-G8577-C848-04 3 - 3
3.1 Principe du traitement du programme
Le programme utilisateur STEP 5 peut être traité de différentes ma-nières.
Le mode le plus fréquent dans les systèmes d’automatisation program-mables est le traitement cyclique : le programme système est exécutésuivant une boucle (le cycle ; cf. paragraphe 3.4) et appelle une foispar boucle le bloc d’organisation OB 1 (cf. figure 3-1).
Appel de l´OB 1 BE
Appel du PB 20
BE
PB 20
OB 1
Actual isat ion desmémentos decouplage de sort ie
Emission de lamémoire imagedes sort ies (MIS)
Démarrage de lasurvei l lance du tempsde cycle (armementdu chien de garde)
Actual isat ion desmémentos decouplage d´entrée
Acquis i t ion de lamémoire imagedes entrées (MIE)
Démarrage
Programme système Programme uti l isateur
Figure 3-1 Principe de l’exécution cyclique du programme
Principe du traitement du programme
Programmation de la CPU 9483 - 4 C79000-G8577-C848-04
3.2 Organisation du programme
L’organisation du programme sert à définir l’ordre et le niveau de trai-tement des blocs élaborés. Vous programmez, dans les blocs d’organi-sation, des appels conditionnels ou inconditionnels des blocs souhaités.
Dans le programme de chaque bloc d’organisation, de programme,fonctionnel et séquentiel, il est possible d’appeler d’autres blocs deprogramme, fonctionnels et séquentiels dans un ordre quelconque(successivement ou de façon imbriquée).
Le programme utilisateur doit être organisé de manière à faire ressor-tir les structures principales du programme ou les interdépendancesentre les différentes parties de l’installation.
Les figures 3-2 et 3-3 montrent deux exemples de structure d’un pro-gramme.
Organisation du programme
Programmation de la CPU 948C79000-G8577-C848-04 3 - 5
PB "B"
OB 1 PB "A" FB
FB
Ini t ia l isat ion
Arrêt del´ insta l la t ionArrêt d´urgence
PB "D"
Sort ie dessignal isat ions
FB
Sort ie designal isat ionssur pér iphér iestandard
FB
Sort ie designal isat ionssur pér iphér iestandard
DXTextes desmessages
PB "C"
Niveau descommandesindiv iduel les
FB
Al imentat iongroupée
DB
Mémentosd´ inter face desorganes decommandeindiv iduel leFX
Al imentat ionindiv iduel le
FX
Al imentat ionindiv iduel le
Commandeséquent ie l le
Commande dugraphe séquent ie l
FB SB
Etape
SB
Etape
SPA PB "A"
SPA PB "B"
SPA PB "C"
SPA PB "D"
BE
Programme desmodes defonct ionnement
Figure 3-2 Exemple d’organisation du programme utilisateur suivant la structure du programme
Organisation du programme
Programmation de la CPU 9483 - 6 C79000-G8577-C848-04
OB 1
SPA PB "X"
SPA PB "Y"
BE
Part ied´ instal lat ion "Z"
PB "X"
Part ied´ insta l la t ion "X"
FB
Commandeindiv iduel le
FB
Régulat ion
FX
Signal isat ion
Par t ied´ instal lat ion "Y"
PB "Y" FB
Commandeséquent iel le
FX
Signal isat ion
FB
Régulat ion
FB
Ari thmét iqueSPA PB "Z"
FB
Edit ion dejournauxde marche
FB "Z"
Figure 3-3 Exemple d’organisation du programme utilisateur suivant la structure de l’installation
Organisation du programme
Programmation de la CPU 948C79000-G8577-C848-04 3 - 7
Imbrication des blocs La figure 3-4 montre le principe d’imbrication des blocs
Adresses de blocs La localisation d’un bloc dans la mémoire utilisateur est déterminéepar l’adresse de début du bloc. Pour les blocs de code, c’est l’adressede la cellule de mémoire qui renferme la première instruction STEP 5du bloc (pour les FB/FX, l’instruction SPA précédant la liste desopérandes formels). Pour les blocs de données, il s’agit de l’adresse dupremier mot de données.
Pour permettre à la CPU de retrouver dans la mémoire le bloc re-cherché lors d’un appel, toutes les adresses de début des blocs valab-les se trouvent dans une liste d’adresses située dans le bloc de donnéesDB 0. Le bloc DB 0 est géré par le programme système, vous n’y avezpas accès.
Pour retrouver le bloc appelant après avoir effectué le traitement dansle bloc appelé, la CPU mémorise, lors de chaque appel d’un nouveaubloc, l’adresse de retour ; cette adresse de retour est l’adresse de lacellule de mémoire contenant l’instruction STEP 5 qui suit l’appel debloc réalisé précédemment. En plus de cela, la CPU mémorise aussil’adresse de début et la longueur du bloc de données valable à cetendroit.
OB 1
BE
PB 20
BE
PB 5
AA
DB 20DB 30
BE
SPA PB 5M 200.5
*
SPASPA
PB 20FB 30O M 1.5 *
NOM : KURVU E 55.0 *
* Opérat ion correspondant à l´adresse de retour
U
1ère instructionSTEP 5
1ère instructionSTEP 5
Figure 3-4 Imbrication des appels de blocs de code
Organisation du programme
Programmation de la CPU 9483 - 8 C79000-G8577-C848-04
Profondeur d’imbrication Il est possible d’imbriquer au maximum 40 blocs. S’il y a plus de40 niveaux d’imbrication, la CPU signale une erreur et passe à l’étatd’arrêt (STOP).
Exemple du calcul de laprofondeur d’imbrication
Procédure de calcul de la profondeur d’imbrication du programme :
- Additionnez tous les blocs d’organisation que vous avez programmés (4 pour l’exemple considéré).
- Additionnez la profondeur d’imbrication de chaque bloc d’organisation de votre programme STEP 5 (dans l’exemple : 2 + 2 + 1 + 0 = 5).
- L’addition des deux résultats précédents donne la profondeur d’imbrication du programme (dans l’exemple : 4 + 5 = profondeur d’imbrication 9). Cette valeur ne doit pas dépasser 40.
OB 25
Profondeur d´imbricat ion
Niveau detraitement duprogramme
1 2 3 4 5 6 7 8 9
OB 1 PB 1 FB 1
OB 13 PB 131 FB 131
OB 2 FB 21
Figure 3-5 Exemple du calcul de la profondeur d’imbrication
Organisation du programme
Programmation de la CPU 948C79000-G8577-C848-04 3 - 9
3.3 Mémorisation de programmes et de blocs de données
La CPU 948 ne peut exécuter le programme utilisateur que dans laRAM interne. Le programme utilisateur doit donc être chargé – y com-pris les blocs de données existants – dans la mémoire utilisateur de laCPU 948.
Chargement de programmeset de blocs de données dans la RAM interne
Pour ce faire, utilisez l’une des méthodes suivantes.
•• Chargez les différents blocs de code et de données dans la RAMdepuis la PG.
•• Enfichez dans le logement de la CPU prévu à cet effet une carte àmémoire (EPROM flash) où vous avez préalablement chargé votreprogramme utilisateur complet, y compris les blocs de données. Lors de l’effacement général de la CPU (cf. chapitre 4), tout le con-tenu de la carte à mémoire est chargé "un à un" dans la RAM inter-ne.
•• Vous avez chargé votre programme dans la RAM interne à partirde la PG ou de la carte à mémoire par effacement général. Vouspouvez à présent charger des blocs supplémentaires dans la RAMinterne ou y modifier des blocs existants.
NotaVous ne pouvez programmer la carte à mémoire qu’à la PG.Utilisez, à cet effet, le logiciel STEP 5 à partir de la version 6.Lors de la programmation, vous devez sélectionner le mode"MOT/BLOC" sur la PG (cf. manuel STEP 5, bibliographie 3).
AvertissementSi vous avez modifié ou ajouté des blocs avec votre PG aprèsavoir chargé votre programme de la carte à mémoire, cesmodifications seront perdues lors du prochain effacementgénéral, le contenu de la carte à mémoire écrasant à nouveau lamémoire utilisateur.
Mémorisation de programmes et de blocs de données
Programmation de la CPU 9483 - 10 C79000-G8577-C848-04
3.4 Traitement du programme utilisateur
Le logiciel (programme système et programme utilisateur STEP 5) dela CPU doit exécuter les tâches suivantes :
•• mise en route de la CPU,
•• commande d’un processus d’automatisation par la répétitionpermanente de séquences d’opérations (cycle),
•• commande d’un processus d’automatisation par réaction à desévénements de caractère sporadique ou périodique (alarmes),ainsi que par réaction à des erreurs.
Pour chaque type de tâches, vous avez la possibilité d’exécuter sur laCPU, par l’intermédiaire des blocs d’organisation OB 1 à OB 35 (cf.paragraphe 2.2.1), des parties spéciales de votre programme utilisateur.
Mise en route Avant de pouvoir passer au fonctionnement cyclique, il est nécessairede procéder à une initialisation afin d’établir un état de départ définipour le traitement cyclique et, par exemple, pour définir la base detemps pour l’exécution de certaines fonctions. Le type d’initialisationdépend de l’événement qui a conduit au démarrage ainsi que dessélections opérées sur la CPU. Vous trouverez de plus amples explica-tions au chapitre 4.
Le comportement de la CPU à la mise en route peut être influencé enprogrammant les blocs d’organisation OB 20, OB 21 et OB 22 ou enparamétrant le bloc de données DX 0 (cf. chapitre 7).
Cycle Après avoir exécuté le démarrage, le programme système passe au trai-tement cyclique. Dans ce contexte, il assume des fonctionsd’arrière-plan qui sont nécessaires pour la tâche d’automatisation (cf. figure 3-1 au début du présent chapitre).Après l’exécution des fonctions système au début d’un cycle, leprogramme système appelle le bloc d’organisation OB 1 à titre deprogramme utilisateur cyclique. C’est dans ce bloc que vous pro-grammez les opérations STEP 5 pour le traitement cyclique.
Traitement du programme utilisateur
Programmation de la CPU 948C79000-G8577-C848-04 3 - 11
Réaction aux alarmes et aux erreurs
Afin de pouvoir réagir de façon ciblée aux différentes alarmes et er-reurs, vous disposez sur la CPU 948 de blocs d’organisation spéciaux(OB 2 à OB 18 pour le traitement d’alarmes, OB 19 et OB 23 àOB 34 pour la réaction aux erreurs) dans lesquels vous pouvezmémoriser votre propre programme STEP 5.
A l’apparition de l’alarme ou de l’erreur, le programme systèmeinsère le bloc d’organisation correspondant dans le traitement cycli-que : le traitement cyclique est donc interrompu pour la durée du trai-tement de l’alarme ou de l’erreur. Cette imbrication des blocsd’organisation s’effectue suivant un schéma de priorité bien défini(pour de plus amples informations, reportez-vous aux chapitres 4 et 5).
En plus des blocs d’organisation susmentionnés, vous pouvez recourirau paramétrage du bloc de données DX 0 pour déterminer le compor-tement de la CPU face à une alarme.
Les blocs d’organisation OB 1 à OB 39 peuvent être appelés par leprogramme système dès qu’ils ont été chargés dans la mémoire de pro-gramme (même pendant le déroulement du programme). Si ces blocs ne sont pas chargés, cela se traduit soit par l’absence deréaction de la CPU, soit – ce qui est le cas le plus fréquent – par lamise en STOP de la CPU (cf. paragraphe 5.4).
De même que les blocs d’organisation, le DX 0 peut être chargé enmémoire de programme durant le fonctionnement cyclique. Mais il nesera activé que lors du démarrage suivant. Si le DX 0 n’est paschargé, les présélections sont valables (cf. chapitre 7).
3.4.1Définition des termes pourle traitement du programme
Temps de cycle Le cycle débute au moment où le programme système déclenche lasurveillance du temps de cycle (armement du chien de garde) et se ter-mine lors de l’armement suivant du chien de garde. Le temps que metla CPU pour traiter le programme entre ces deux instants est appelétemps de cycle. Il se compose du temps d’exécution du programme sy-stème et du temps d’exécution du programme utilisateur.
Le temps de cycle inclut par conséquent :
•• le temps de traitement du programme cyclique (programme sy-stème et programme utilisateur),
•• le temps de traitement des alarmes (par exemple, alarme d’horlogeà heure fixe),
•• le temps de traitement des interruptions (erreurs).
Traitement du programme utilisateur
Programmation de la CPU 9483 - 12 C79000-G8577-C848-04
Surveillance du temps decycle
La CPU surveille la durée maximale du cycle qui, par défaut, a une va-leur de 200 ms. Vous pouvez définir cette valeur vous-même ou bienredémarrer la surveillance du temps de cycle (réarmement du chien degarde) pendant le traitement du programme utilisateur (cf. DX 0 auchapitre 7 et bloc d’organisation de fonction spéciale OB 222 au para-graphe 6.20).
Mémoire image des entréeset sorties (MIE et MIS)
La mémoire image des entrées et des sorties est une zone de mémoirede la RAM interne.Avant d’exécuter le programme utilisateur cyclique, le programme sy-stème lit les états des signaux des cartes de périphérie d’entrée dans lamémoire image des entrées MIE (acquisition des entrées). Le program-me utilisateur exploite cette MIE et inscrit alors les états des signauxpour les sorties dans la MIS. Après traitement du programme utilisa-teur, le programme système transfère le contenu de la MIS aux cartesde périphérie de sortie (émission des sorties).
La sauvegarde intermédiaire des signaux de périphérie dans la mémoi-re image des entrées et des sorties permet d’éviter le "battement" de lasortie de la périphérie correspondante qui résulterait du changementde l’état logique d’un bit pendant un cycle du programme.
La mémoire image est donc une zone de mémoire dont le contenu n’estacquis et émis qu’une fois par cycle.
NotaLa mémoire image n’existe que pour les octets d’entrées et desorties de la périphérie P ayant une adresse de 0 à 127.Outre la mémoire image intégrée au système, vous pouvez définiret transmettre d’autres mémoires image à l’aide de l’OB 126 (cf.paragraphe 6.6).
Mémentos de couplage Les mémentos de couplage servent à l’échange de données entre lesdifférentes CPU en fonctionnement multiprocesseur ou entre la CPUet certains processeurs de communication.
Avant le démarrage du traitement cyclique du programme utilisateur,le programme système lit les mémentos de couplage d’entrée de laCPU. Après le traitement du programme utilisateur, il transfère lesmémentos de couplage de sortie au coordinateur ou aux processeursde communication.
Les mémentos de couplage d’entrée et de sortie sont définis par pa-ramétrage du bloc de données DB 1 (cf. paragraphe 10.1.6).
Traitement du programme utilisateur
Programmation de la CPU 948C79000-G8577-C848-04 3 - 13
Points d’interruption Le traitement cyclique du programme peut être suspendu par :
•• le traitement d’un programme déclenché par horloge (alarme deretardement, alarme d’horloge cyclique, alarme d’horloge à heurefixe),
•• le traitement d’un programme déclenché par alarme (alarme deprocessus, interruption du système).
Le traitement peut être interrompu ou être totalement arrêté par :
•• l’apparition d’une erreur dans l’équipement ou dans le programme,
•• une intervention externe (fonction console, commutateur RUN-STOP, STOP multiprocesseur MPSTP),
•• une instruction d’arrêt.
Traitement du programme utilisateur
Programmation de la CPU 9483 - 14 C79000-G8577-C848-04
3.5 Liste des opérations STEP 5 avec exemples de programmation
Une opération STEP 5 se compose d’un code opération et d’un opéran-de. Le code opération détermine ce que la CPU doit faire et l’opéran-de indique à quel élément s’applique l’opération.
Les opérations STEP 5 peuvent être classées en différents groupes :
•• les opérations de base (utilisables dans tous les blocs de code),
•• les opérations complémentaires,
•• les opérations d’organisation (utilisables uniquement dans lesblocs fonctionnels FB/FX),
•• les opérations sur sémaphores (utilisables uniquement dans lesblocs fonctionnels FB/FX).
Utilisation des accumulateurscomme registres auxiliaires
La CPU 948 comporte quatre accumulateurs : ACCU 1 à ACCU 4.La majorité des opérations STEP 5 utilisent, comme source pourles opérandes et comme destination pour les résultats, deux regi-stres (32 bits) : l’accumulateur 1 (ACCU 1) et l’accumulateur 2(ACCU 2).
L’utilisation des accumulateurs dépend de l’instruction STEP 5 àexécuter, par exemple :
•• Lors des opérations de chargement, l’ACCU 1 est toujours utilisécomme destination. L’ancien contenu de l’ACCU 1 est transférédans l’ACCU 2 (empilage). Pour toutes les opérations de charge-ment, les accumulateurs 3 et 4 ne sont pas modifiés.
1 identique pour les ACCU 2 à ACCU 4
ACCU 1-H
Octet de poids fort
Octet de poids faible
Octet de poids fort
Octet de poids faibleACCU 1 1
Mot de poids fort
Mot de poids faible
31 24 23 16 15 8 7 0ACCU 1-HL ACCU 1-LH ACCU 1-LL
ACCU 1-L
ACCU 1-HH
Liste des opérations STEP 5 avec exemples de programmation
Programmation de la CPU 948C79000-G8577-C848-04 3 - 15
•• Les opérations arithmétiques opèrent avec les contenus del’ACCU 1 et de l’ACCU 2, écrivent le résultat dans l’ACCU 1 ettransfèrent le contenu de l’ACCU 3 dans l’ACCU 2 et celui del’ACCU 4 dans l’ACCU 3 (dépilage). Dans le cas des opérationsarithmétiques sur nombres de 16 bits à virgule fixe, seul le mot depoids faible de l’ACCU 3 est transféré dans le mot de poids faiblede l’ACCU 2, et le mot de poids faible de l’ACCU 4 dans le motde poids faible de l’ACCU 3.
•• Lors de l’addition d’une constante (ADD BF/KF/DH) au contenude l’ACCU 1, les accumulateurs 2, 3 et 4 ne sont pas modifiés.
Indicateurs de résultat Parmi les opérations STEP 5, on distingue les opérations de position-nement des indicateurs et les opérations de traitement des indicateurs.Les indicateurs sont consignés dans un "octet indicateur". Les indica-teurs sont de deux types : les indicateurs d’opérations TOR (indicateursur mots − bits 4 à 7 dans l’octet indicateur) et les indicateurs d’opérati-ons sur bits (indicateur sur bits − bits 0 à 3 dans l’octet indicateur). L’in-fluence des opérations STEP 5 sur ces indicateurs et l’exploitation de cesindicateurs sont décrites dans la liste d’opérations (cf. bibliographie /1/).
La fonction PG en ligne d’état de bloc (visualisation dynamique ; cf.paragraphe 11.2.3) permet d’afficher l’octet indicateur qui se présentede la manière suivante :
Indicateurs d’opérations sur mots Indicateurs d’opérations sur bits
FL 1 FL 0 OVFL OVFLMEM OU ETAT RLG 1e ?
Bit 7 6 5 4 3 2 1 0
Indicateurs d’opérations sur bits
•• 1e ? Première interrogation
Une séquence de combinaisons binaires commence toujours parune première interrogation qui a pour effet de reconstituer leRLG. Cette première interrogation met le bit indicateur 1e ? à 1.Au cours des combinaisons logiques successives, 1e ? reste à 1 tan-dis que le RLG peut changer.
La séquence d’opérations combinatoires est terminée par uneopération de mémorisation (par exemple, S A 5.0), qui met 1e ? à0. Le RLG peut alors être exploité (par exemple, par des instructi-ons dépendant du RLG), mais il ne peut pas être repris pour lacombinaison suivante. La combinaison binaire suivant une opérati-on de mémorisation binaire est à nouveau une première interrogati-on.
Liste des opérations STEP 5 avec exemples de programmation
Programmation de la CPU 9483 - 16 C79000-G8577-C848-04
Exemple de 1e ?
Autres indicateursd’opérations sur bits
•• RLG Résultat d’une combinaison logique
Résultat de combinaisons de bits. Bit de vérité lors de comparai-sons (voir liste des opérations , opérations combinatoires sur bitsou opérations de comparaison).
•• ETAT
Indique, dans le cas des instructions sur bits, l’état logique du der-nier bit testé ou commandé. L’état est actualisé lors d’opérationscombinatoires sur bits − sauf U(, O(, ), O – et d’opérations demémorisation.
•• OU
Indication interne de la CPU pour le traitement de combinaisonsET avant OU.
Indicateurs d’opérations sur mots
•• OVFL Dépassement (overflow)
Signale le dépassement du domaine autorisé pour l’opérationarithmétique qui vient d’être exécutée.
•• OVFLMEM Dépassement mémorisé
Le bit de dépassement est mémorisé. OVFLMEM signale le dépas-sement de capacité dans une suite d’opérations arithmétiques.
:U E 1.0 1e ? est mis à 1, : le RLG est reconstitué par: la combinaison ET (U):O E 6.3 Le RLG est influencé par la : combinaison OU.:UN E 2.1 Le RLG est influencé par la : combinaison ET-NON (UN).:S A 2.4 1e ? est remis à 0, : la séquence de combinaisons: est terminée.:SPB FB 150 Appel du bloc fonctionnel: en fonction du RLG::
Liste des opérations STEP 5 avec exemples de programmation
Programmation de la CPU 948C79000-G8577-C848-04 3 - 17
•• FL 1 et FL 0
Indicateurs codés de résultat. Pour leur interprétation, voir le table-au ci-dessous.
NotaDes opérations de comparaison et de saut sont disponibles pourune exploitation immédiate des indicateurs (voir paragraphes3.5.1 à 3.5.4).
Indicateurssur mots
Opérationsarithmé-
tiques
Opérationscombina-toires sur
bits
Opérationsde
compa-raison
Opérationsde
décalage
PourSES,SEF
Opérationsde saut
exécutées
FL 1 FL 0
0 0 Résultat= 0
Résultat= 0
ACCU 2=
ACCU 1
Bitdécalé
= 0
Sémaphoreest
à "1"SPZ
0 1 Résultat< 0 –
ACCU 2<
ACCU 1– –
SPMSPN
1 0 Résultat> 0
Résultat≠ 0
ACCU 2>
ACCU 1
Bit décalé
= 1
Sémaphoreest
mis à "1"ou à "0"
SPPSPN
1 1 Divisionpar zéro – – – – –
NotaDans le cas d’un changement de niveau, par exemple lors du trai-tement d’une alarme d’horloge, tous les accumulateurs, de mêmeque les indicateurs sur bits et sur mots (RLG, etc.) sont sauve-gardés, puis à nouveau rechargés lors de la reprise du niveauinterrompu.
Tableau 3-1 Indicateurs de résultat des opérations STEP 5
Liste des opérations STEP 5 avec exemples de programmation
Programmation de la CPU 9483 - 18 C79000-G8577-C848-04
3.5.1Opérations de base Vous pouvez exécuter les opérations de base dans tous les blocs de
code et dans tous les modes de représentation (CONT, LOG et LIST).
Opérations combinatoiressur bits
Opération Opérande Fonction
U
O
E 0.0 à 127.7A 0.0 à 127.7M 0.0 à 255.7S 0.0 à 4095.7D 0.0 à 255.15T 0 à 255Z 0 à 255
Combinaison ET avec test à 1
Combinaison OU avec test à 1
d’une entrée dans la MIEd’une sortie dans la MISd’un mémentod’un mémento Sd’un bit d’un mot de donnéesd’une temporisationd’un compteur
UN
ON
E 0.0 à 127.7A 0.0 à 127.7M 0.0 à 255.7S 0.0 à 4095.7D 0.0 à 255.15T 0 à 255Z 0 à 255
Combinaison ET avec test à 0
Combinaison OU avec test à 0
d’une entrée dans la MIEd’une sortie dans la MISd’un mémentod’un mémento Sd’un bit d’un mot de donnéesd’une temporisationd’un compteur
O – Combinaison OU de fonctions ET
U(O()
– Combinaison ET d’expressions entre parenthèsesCombinaison OU d’expressions entre parenthèsesFermer la parenthèse (à la fin d’une expression)
8 niveaux au maximum sont autorisés, c’est-à-direl’ouverture de 7 parenthèses.
Génération du RLG Les opérations combinatoires sur bits fournissent le résultat logique(RLG).Au début d’une séquence de combinaisons (première interrogation), leRLG ne dépend que de l’état du signal testé et non de la fonction com-binatoire (O – ou –, U – et –).
Tableau 3-2 Opérations combinatoires sur bits
Opérations de base
Programmation de la CPU 948C79000-G8577-C848-04 3 - 19
Dans la séquence de combinaisons, l’état du RLG dépend du type decombinaison, de l’état antérieur du RLG et de l’état du signal testé. Laséquence se termine par une instruction assurant l’inhibition du RLG(1e ? = 0), par exemple une opération de mémorisation. Le RLG peutêtre exploité mais ne peut être repris dans la combinaison suivante.
Exemple
Opérations demémorisation
Opération Opérande Fonction
SR
E 0.0 à 127.7A 0.0 à 127.7M 0.0 à 255.7S 0.0 à 4095.7D 0.0 à 255.15
Pour état 1 du RLG : mise à 1 (SET)Pour état 1 du RLG : mise à 0 (RESET)
d’une entrée dans la MIEd’une sortie dans la MISd’un mémentod’un mémento Sd’un bit du mot de données
=
E 0.0 à 127.7A 0.0 à 127.7M 0.0 à 255.7S 0.0 à 4095.7D 0.0 à 255.15
Assignation de la valeur du RLG à
une entrée dans la MIEune sortie dans la MISun mémentoun mémento Sun bit du mot de données
Programme ETAT RLG 1e ?
:= A 0.0U E 1.0U E 1.1U E 1.2= A 0.1
01100
01100
0 RLG inhibé1 Première interrogation110 RLG inhibé, fin de la
séquence de combinaisons
Tableau 3-3 Opérations de mémorisation
Opérations de base
Programmation de la CPU 9483 - 20 C79000-G8577-C848-04
Opérations de chargementet de transfert
Opération Opérande Fonction
LT
EB 0 à 127EW 0 à 126ED 0 à 124
AB 0 à 127AW 0 à 126AD 0 à 124
MB 0 à 255MW 0 à 254MD 0 à 252
SY 0 à 4095SW 0 à 4094SD 0 à 4092
DR 0 à 255DL 0 à 255DW 0 à 255DD 0 à 254
PY 0 à 127 PY 128 à 255
PW 0 à 126PW 128 à 254
QB 0 à 255QW 0 à 254
ChargerTransférer
un octet d’entrée de/vers la MIEun mot d’entrée de/vers la MIEun double mot d’entrée de/vers la MIE
un octet de sortie de/vers la MISun mot de sortie de/vers la MISun double mot de sortie de/vers la MIS
un octet de mémentosun mot de mémentosun double mot de mémentos
un octet de mémentos Sun mot de mémentos Sun double mot de mémentos S
l’octet de droite d’un mot de données depuis/dans un DB, DXl’octet de gauche d’un mot de données depuis/dans un DB, DXun mot de données depuis/dans un DB, DXun double mot de données depuis/dans un DB, DX
un octet d’entrée/sortie TOR de la périphérie Pun octet d’entrée/sortie analogique ou TOR de la périphérie P
un mot d’entrée/sortie TOR de la périphérie Pun mot d’entrée/sortie analogique ou TOR de la périphérie P
un octet de la périphérie étendue Qun mot de la périphérie étendue Q
Tableau 3-4 Opérations de chargement et de transfert, 1ère partie
Opérations de base
Programmation de la CPU 948C79000-G8577-C848-04 3 - 21
Opération Opérande Fonction
L
KB 0 à 255KC 2 caractères
ASCII
KF -32768 à+32767
KG 1
KH 0 à FFFFDH 0 à FFFF FFFFKM structure 16 bitsKY 0 à 255 pour
chaque octet
KT 0.0 à 999.3KZ 0 à 999
T 0 à 255Z 0 à 255
Charger
une constante à 1 octetune constante à 2 caractères ASCII
une constante à virgule fixe
une constante à virgule flottanteune constante hexadécimaleune constante hexadécimale codée sur 2 motsune constante binaireune constante à 2 octets
une valeur de temporisation (constante décimale codée binaire)une valeur de comptage (constante)
une valeur de temporisation codée binaireune valeur de comptage codée binaire
LC
T 0 à 255Z 0 à 255
Charger
une valeur de temporisation décimale codée binaire (DCB)une valeur de comptage décimale codée binaire (DCB)
1 ±0,1469368 x 10-38 à ±0,1701412 x 1039
Opérations de chargement Les opérations de chargement inscrivent la valeur adressée dansl’ACCU 1 dont le contenu précédent est transféré dans l’ACCU 2(empilage).
Opérations de transfert Les opérations de transfert inscrivent le contenu de l’ACCU 1 dans lacellule de mémoire adressée.
Tableau 3-5 Opérations de chargement et de transfert, 2ème partie
Opérations de base
Programmation de la CPU 9483 - 22 C79000-G8577-C848-04
Exemples d’opérations dechargement et de transfert
Exemple 1
La figure 3-6 montre le chargement/transfert d’un octet, mot ou double mot depuis/vers une zone de mémoire organisée par octets (MIE, MIS, mémentos, périphérie).
:L EB i Chargement de l’octet i de la MIE dans l’ACCU 1-LL:L EW j Chargement des octets j et j+1 de la MIE dans l’ACCU 1-L:L MD k Chargement des octets de mémentos k à k+3 dans l’ACCU 1
ACCU 1
ACCU 1
ACCU 1
jj + 1
i
kk + 1k + 2k + 3
31 23 15 7 0
31 23 15 7 0
31 23 15 7 0k+1 k+2 k+3
0 0 j j+1
0 0 0 i
7 0
Adressescroissantes
k
1 1
1 1 1
L EB iT EB i
T EW jL EW j
T MD kL MD k
1 seulement pour opérat ions de chargement
Figure 3-6 Opérations de chargement et de transfert depuis/vers une zone de mémoire organisée par octets
Opérations de base
Programmation de la CPU 948C79000-G8577-C848-04 3 - 23
NotaLes opérations de chargement n’ont aucune influence sur lesindicateurs. Les opérations de transfert effectuent une remise à zéro dubit OVFLMEM.
Lors du chargement d’un octet ou d’un mot, les octets de poids fortde l’ACCU 1 sont mis à zéro.
Exemple 2
La figure 3-7 montre le chargement/transfert d’un octet, d’un mot ou d’undouble mot depuis/vers une zone de mémoire organisée par mots .
:L DR i Chargement de l’octet de droite du mot de données i dans l’ACCU 1-LL :L DL j Chargement de l’octet de gauche du mot de données j dans l’ACCU 1-LL :L DW k Chargement du mot de données k dans l’ACCU 1-L :L DD l Chargement des mots de données l et l+1 dans l’ACCU 1
ll + 1
k
31 23 15 7 0
31 23 15 7 0
31 15 0
31 15 0
ACCU 1
ACCU 1
ACCU 1
ACCU 1
15 0
l l+1
k
j
0 0 0 i
0 0 0
1 1 1
0
1 1 1
1
Octet gauche
Mot de données j
L DR iT DR i
L DL jT DL j
L DW kT DW k
L DD lT DD l
Octet droi t
Mot de données iAdressescroissantes
1 seulement pour opérat ions de chargement
Figure 3-7 Opérations de chargement et de transfert depuis/vers une zone de mémoire organisée par mots
Opérations de base
Programmation de la CPU 9483 - 24 C79000-G8577-C848-04
Accès à la périphérie Il est possible d’accéder à la périphérie par les opérations de charge-ment et de transfert
•• directement :
avec L../T.. ..PY, ..PW, ..QB, ..QW
ou
•• par la mémoire image :
avec L../T.. ..EB, ..EW, ..ED, .AB, ..AW, ..AD
et par les opérations combinatoires et de mémorisation.
NotaLes opérations de transfert T PY 0 à 127 et T PW 0 à 126s’accompagnent d’une actualisation de la mémoire image dessorties. Exception : les sorties ont été verrouillées par l’opérationBAS de STEP 5 (voir paragraphe 3.5.4).
En ce qui concerne la périphérie, tenez compte des points suivants :
•• Il existe une mémoire image des entrées et des sorties pour les128 octets d’entrée et les 128 octets de sortie de la périphérie P(adresses de 0 à 127).
•• Pour l’ensemble de la zone de périphérie étendue Q et pour la péri-phérie P avec les adresses relatives d’octets de 128 à 255, il n’exi-ste pas de mémoire image (pour le partage de l’espace d’adressagede la périphérie, reportez-vous au paragraphe 8.2.2).
•• Les cartes ayant des adresses en périphérie Q peuvent exclusive-ment être embrochées dans des châssis d’extension (et non dansl’appareil de base).
•• Un même châssis d’extension ne peut renfermer que des cartes dela périphérie P ou bien que des cartes de la périphérie Q.
AvertissementSi un châssis d’extension renferme des adresses relatives de lapériphérie Q, ces adresses ne sont plus disponibles pour des cartesde périphérie utilisées dans l’appareil de base (double adressage).
Opérations de base
Programmation de la CPU 948C79000-G8577-C848-04 3 - 25
Opérations detemporisation et decomptage
Pour pouvoir charger une temporisation par une instruction de lance-ment ou un compteur par une instruction de positionnement, il fautque la valeur de temporisation ou de comptage soit chargée dansl’ACCU 1.
De préférence, utilisez les opérations de chargement suivantes :
Pour les temporisations L KT, L EW, L AW, L MW, L DW, L SW.Pour les compteurs L KZ, L EW, L AW, L MW, L DW, L SW.
Pour pouvoir démarrer une temporisation avec la valeur prédéfinie,une inversion de front du RLG est requise.
Le compteur est mis à 1 avec la valeur prédéfinie ou incrémenté pour unfront positif du RLG.
Les inversions de front sont représentées par des flèches dans la colon-ne RLG du tableau suivant.
Opération Opérande RLG 1 Fonction
SISVSESS
SAR
T 0 à 255T 0 à 255T 0 à 255T 0 à 255
T 0 à 255T 0 à 255
↑↑↑↑
↓1
Début de temporisation sous forme d’impulsionDébut de temporisation sous forme d’impulsion prolongéeDébut de temporisation sous forme de retard à la montéeDébut de temporisation sous forme de retard à la montée mémoriséDébut de temporisation sous forme de retard à la retombéeRemise à zéro d’une temporisation
SRZVZR
Z 0 à 255Z 0 à 255Z 0 à 255Z 0 à 255
↑1↑↑
Positionnement d’un compteur (valeur DCB entre 0 et 999)Remise à zéro d’un compteurIncrémentation d’un compteurDécrémentation d’un compteur
1 Front montant ( ↑ ) : Modification de l’état du signal de 0 à 1Front descendant ( ↓ ) : Modification de l’état du signal de 1 à 0
Lors de l’exécution des opérations de temporisation ou de comptageSI T, SE T, SV T, SS T, SA T et S Z, la valeur figurant dansl’ACCU 1 est inscrite dans la cellule de temporisation ou de comptage(par l’intermédiaire de l’instruction de transfert correspondante) etl’opération correspondante est exécutée.
Tableau 3-6 Opérations de temporisation et de comptage
Opérations de base
Programmation de la CPU 9483 - 26 C79000-G8577-C848-04
Valeur de temporisation L’opération L KT permet de charger une valeur de temporisationdans l’ACCU 1 soit directement, soit indirectement depuis un mot dedonnées ou de mémentos. La valeur de temporisation doit présenter lastructure suivante (le code de base de temps figure derrière le pointdans l’opérande de L KT) :
Exemple
NotaChaque démarrage de temporisation est effectué avec l’impréci-sion d’une unité de base de temps. Il faut donc choisir, de préfé-rence, des temporisations avec la base de temps la plus faiblepossible (base de temps < durée).
Exemple :durée 4 s ne pas prendre : 1 s x 4 Imprécision : 1 s
mais : 0,01 s x 400 Imprécision : 0,01 s
On désire une durée de 127 s pour la temporisation.
Affectation des bits :
valeur de temporisation 127
0 11 10 0 0 0 0 0 0x x 1 1 1
1 722
non utilisés
base de temps 1s
Bit
valeur de temporisationdécimale codée binaire 0 à 999
012345678910111215 14 13
210 100101
bits non significatifs(non utilisés)
base de temps décimale codée binaire0: 0,01 s1: 0,1 s2: 1 s3: 10 s
Opérations de base
Programmation de la CPU 948C79000-G8577-C848-04 3 - 27
Valeur de comptage L’opération L KZ permet de charger une valeur de comptage dansl’ACCU 1 soit directement, soit indirectement depuis un mot dedonnées ou de mémentos. La valeur de comptage doit présenter lastructure suivante :
Exemple
Les valeurs de temporisation ou de comptage contenues dans les cellu-les de temporisation ou de comptage sont codées en binaire naturel.Pour tester une temporisation ou un compteur, leur contenu respectifpeut être chargé dans l’ACCU 1, soit directement, soit en valeurDCB.
La valeur de comptage à présélectionner est 127.
Affectation des bits :
valeur de comptage 127
0 11 10 0 0 0 0 0x x x x 1 1
1 72
non utilisés
Bit
valeur de comptage DCB 0 à 999
012345678910111215 14 13
10 2 100101
bits non significatifs(non utilisés)
Opérations de base
Programmation de la CPU 9483 - 28 C79000-G8577-C848-04
Autres exemples de valeurs detemporisation et de comptage
Chargement direct du facteur d’une valeur de temporisation
"L T 10" : Chargement direct dans l’ACCU 1 de la valeur de temporisation en code binaire naturel de la temporisation T 10
La base du temps n’est pas chargée.
Chargement direct d’une valeur de comptage
"L Z 10" : Chargement direct dans l’ACCU 1 de la valeur de comptage en code binaire naturel du compteur Z 10
9 0
9 0
valeur de temporisat ion
cel lu le de temporisat ion T 10
ACCU 1"0"
valeur de comptage
cel lu le de comptage Z 10
ACCU 19 0"0"
9 0
Opérations de base
Programmation de la CPU 948C79000-G8577-C848-04 3 - 29
Lors du chargement en code DCB, les états des bits 14 et 15 pour lestemporisations ou des bits 12 à 15 pour les compteurs ne sont pas char-gés. Les bits correspondants de l’ACCU 1 sont à zéro. Ainsi la valeursituée dans l’accumulateur peut être traitée par ailleurs.
Chargement en code DCB d’une valeur de temporisation
"LC T 10" : Chargement dans l’ACCU 1 de la valeur de temporisation codée DCB et de la base de temps de la temporisation T 10
La base de temps est également chargée.
Chargement en code DCB d’une valeur de comptage
"LC Z 10" : Chargement dans l’ACCU 1 de la valeur de comptage codée DCB du compteur Z 10
valeur de temporisat ion
cel lu le de temporisat ion T 10
ACCU 1
10 2 100101
9 01213
1213 0347811"0"
base de temps valeur de temporisat ion
base de temps
binaire DCB
valeur de comptage
cel lu le de comptage Z 10
ACCU 1
10 2 100101
valeur de comptage codée DCB
binaire DCB
9 0
0347811"0"
Opérations de base
Programmation de la CPU 9483 - 30 C79000-G8577-C848-04
Opérations arithmétiques
Opération Opérande Fonction
+ F- Fx F: F
+ G- Gx G: G
– Addition de deux nombres à virgule fixe (16 bits)Soustraction de deux nombres à virgule fixe (16 bits)Multiplication de deux nombres à virgule fixe (16 bits)Division de deux nombres à virgule fixe (16 bits) :
quotient dans l’ACCU 1-L, reste dans l’ACCU 1-H
Addition de deux nombres à virgule flottante (32 bits)Soustraction de deux nombres à virgule flottante (32 bits)Multiplication de deux nombres à virgule flottante (32 bits)Division de deux nombres à virgule flottante (32 bits)
Les opérations arithmétiques réalisent la combinaison entre les conte-nus des accumulateurs 1 et 2 (par exemple, "ACCU 2 - ACCU 1"). Lerésultat est ensuite stocké dans l’ACCU 1. Une opération arithmétiquemodifie les registres de calcul comme suit (exclusivement le mot depoids faible dans le cas d’opérations sur nombres à virgule fixe).
NotaLes opérations complémentaires renferment des instructionsd’addition et de soustraction de nombres à virgule fixe codéssur deux mots.
Tableau 3-7 Opérations arithmétiques
ACCU 1 ACCU 2 ACCU 3 ACCU 4
avant : <ACCU 1> <ACCU 2> <ACCU 3> <ACCU 4>
après : <Résultat> <ACCU 3> <ACCU 4> <ACCU 4>
Opérations de base
Programmation de la CPU 948C79000-G8577-C848-04 3 - 31
Opérations de comparaison
Opération Opérande Fonction
! =>< F> D> = G<<=
– Comparaison d’égalitéComparaison d’inégalitéComparaison supérieur àComparaison supérieur ou égal àComparaison inférieur àComparaison inférieur ou égal à
...F de deux nombres à virgule fixe (16 bits)
...D de deux nombres à virgule fixe (32 bits)
...G de deux nombres à virgule flottante (32 bits)
Appel de blocs
Opération Opérande Fonction
SPASPB
OB 1 à 39 1
OB 121 à 255PB 0 à 255FB 0 à 255SB 0 à 255
Saut inconditionnelSaut conditionnel (uniquement lorsque RLG = 1)
vers un bloc d’organisationvers une fonction spéciale du programme systèmevers un bloc de programmevers un bloc fonctionnel FBvers un bloc séquentiel
BABAB
FX 0 à 255
Saut inconditionnelSaut conditionnel (uniquement lorsque RLG = 1)
vers un bloc fonctionnel FX
BEBEBBEA
– Fin de blocFin de bloc conditionnelle (uniquement lorsque RLG = 1)Fin de bloc absolue
AAX
DB 2 à 255DX 3 à 255
Appel d’un bloc de données DB Appel d’un bloc de données DX
EEX
DB 2 à 255 DX 3 à 255
Génération d’un bloc de données DB Génération d’un bloc de données DX
(l’ACCU 1 doit contenir le nombre de mots de données − max. 4091 − que doit avoir le nouveau bloc)
1 uniquement à des fins de test
Tableau 3-8 Opérations de comparaison
Tableau 3-9 Appel de blocs
Opérations de base
Programmation de la CPU 9483 - 32 C79000-G8577-C848-04
E DB/EX DX Création de blocs de données
L’opération E DBx crée un bloc de données DB avec le numéro x (2 ≤ x ≤ 255) dans la mémoire utilisateur de la CPU. La valeur nullen’est pas attribuée au bloc de données ; le contenu des mots dedonnées est donc quelconque.Avant de programmer cette opération, il faut indiquer dansl’ACCU 1-L le nombre de mots de données que le nouveau bloc DBdoit contenir. L’en-tête de bloc correspondant est alors élaboré parl’opération "E DB" ou "EX DX". La longueur d’un tel bloc dedonnées doit être au maximum de 4091 mots (sans l’en-tête). Pourcréer des blocs de données plus longs, utilisez l’OB 125 (cf. para-graphe 6.5).
S’il existe déjà un bloc de données portant le même numéro, si la lon-gueur du bloc est incorrecte ou si l’espace dans la mémoire utilisateurn’est pas suffisant, le programme système appelle l’OB 34. Si celui-cin’est pas chargé, la CPU se met en STOP.
L’opération EX DX crée dans la mémoire utilisateur un bloc dedonnées DX et fonctionne comme E DB.
Opérations nulles, decomposition d’image, d’arrêt
Opération Opérande Fonction
NOP 0NOP 1
– Opération nulle Opération nulle
BLD 0 à 255
130131/131/133255
Opération de composition d’image pour la PG (est traitée par la CPU comme une opération nulle)
Création d’une ligne vide par retour chariotCommutation en mode LIST/LOG/CONTFin du segment
STP – A la fin du cycle ou de l’OB 1, la CPU se met en arrêt partiel.
NotaL’opération STP n’opérant qu’à la fin du cycle, il n’y a pasd’indication dans l’ITPILE. De ce fait, les outils de diagnosticpermettent difficilement de déterminer la cause du passage àl’arrêt.Afin de faciliter le diagnostic, nous vous recommandons dedéfinir un indicateur avant d’appeler l’opération STP – il peuts’agir d’un profil binaire spécial dans un DB de diagnostic – oud’utiliser l’opération STS de STEP 5 (cf. paragraphe 3.5.4).
Tableau 3-10 Opérations nulles, de composition d’image, d’arrêt
Opérations de base
Programmation de la CPU 948C79000-G8577-C848-04 3 - 33
3.5.2Exemples de program-mation pour les modes dereprésentation LIST, CONT,LOG
Opérations combinatoires
E 1.7
E 1.3
E 1.1
A 3.5
Problème poséReprésentation STEP 5
CONT LOG
U E 1.1
U
U
E 1.3
E 1.7
= A3.5
E 1.1 E 1.3 E 1.7 A 3.5E 1.1 1.3 1.7
A 3.5
&
Le nombre des entrées et l’ordre de leur programmation est quelconque.
La sortie A 3.5 est à l’état "1" quand toutes les entrées sont simultanément à l’état "1".
La sortie A 3.5 est à l’état "0" quand une des entrées au moins est à l’état "0".
E 1.1
E 1.3
E 1.7 A 3.5
&
LIST
Combinaison ET
Exemples de programmation pour les modes de représentation LIST, CONT, LOG
Programmation de la CPU 9483 - 34 C79000-G8577-C848-04
Opérations combinatoires(suite)
O E 1.2
O
O
E 1.7
E 1.5
= A3.2
E 1.2
E 1.7
E 1.5
A 3.2
La sortie A 3.2 est à "1" quand une entrée au moins est à l’état "1".
La sortie A 3.2 est à l’état "0" quand toutes les entrées sont simultanément à l’état "0".
E 1.5E 1.7E 1.2
A 3.2
E 1.2 1.7 1.5
A 3.2
E 1.2
E 1.7
E 1.5 A 3.2
1
1
Problème poséReprésentation STEP 5
CONT LOG
Combinaison OU
LIST
Le nombre des entrées et l’ordre de leur programmation est quelconque.
E 1.5 E 1.6
E 1.4
A 3.1
La sortie A 3.1 est à l’état "1" quand la sortie d’une combinaison ET au moins est à l’état "1".
La sortie A 3.1 est à l’état "0" quand aucune des combinaisons ET n’est à l’état "1".
E 1.5
E 1.6
A 3.1
&
E 1.6
E 1.5
A 3.1
E 1.3
E 1.4
E 1.5 E 1.6
A 3.1
&
E 1.4 E 1.3
&
U E 1.5
U
U
E 1.6
E 1.3
= A3.1
O
U E 1.4
E 1.3E 1.4
E 1.3
&
1
1
Problème poséReprésentation STEP 5
CONT LOGLIST
Combinaison ET avant OU
Exemples de programmation pour les modes de représentation LIST, CONT, LOG
Programmation de la CPU 948C79000-G8577-C848-04 3 - 35
Opérations combinatoires(suite)
E 6.0
E 6.3
E 6.2
A 2.1
La sortie A 2.1 est à l’état "1" quand l’entrée E 6.0 ou l’entrée E 6.1 et l’une des entrées E 6.2 ou E 6.3sont à "1".
La sortie A 2.1 est à l’état "0" quand l’entrée E 6.0 est à "0" et que la sortie de la combinaison ET est à l’état "0".
E 6.1
&
E 6.0 E 6.1 E 6.2 E 6.3
A 2.1
E 6.0 E 6.2 E 6.3
E 6.1
A 2.1
U E 6.0
O
O E 6.2
= A2.1
U E 6.1
O E 6.3
)
E 6.0
E 6.1
E 6.2
E 6.3
A 2.1
&1
1
1
1
U (
Problème poséReprésentation STEP 5
CONT LOG
Combinaison OU avant ET Exemple 1
LIST
Combinaison OU avant ET
E 1.4 E 2.0
E 1.5
A 3.0
La sortie A 3.0 est à l’état "1" quand les sorties des deux combinaisons OU sont à l’état "1".
La sortie A 3.0 est à l’état "0" quand aucune des sorties des combinaisons OU n’est à l’état "1".
E 1.4
E 1.5
A 3.0
E 2.1E 2.0
E 2.1
E 1.4 E 1.5
A 3.0
E 2.0 E 2.1
&
E 2.0
E 1.4
A 3.0
E 2.1
E 1.5
O E 1.4
O
O
E 1.5
E 2.1
= A3.0
)
O E 2.0
)
&
1
1 1
U (
1
U (
Problème poséReprésentation STEP 5
CONT LOG
Exemple 2
LIST
Exemples de programmation pour les modes de représentation LIST, CONT, LOG
Programmation de la CPU 9483 - 36 C79000-G8577-C848-04
Opérations combinatoires(suite)
Opérations de mémorisation
E 1.5 A 3.0E 1.5 E 1.6
A 3.0
&E 1.6
E 1.5
A 3.0
U E 1.5
UN E 1.6
= A3.0
E 1.6 E 1.5
E 1.6 A 3.0
&
La sortie A 3.0 est à l’état "1" si et seulement si l’entrée E 1.5 est à "1" (contact à fermeture actionné)et l’entrée E 1.6 est à "0" (contact à ouverture non actionné).
Problème poséReprésentation STEP 5
CONT LOG
Test d’un signal logique à "0"
LIST
E 1.4 E 2.7
E 2.7
A3.5
E 1.4
A 3.5
E 2.7 A3.5
E 1.4
S
R Q
U E 2.7
E 1.4
A 3.5
S
R
A 3.5
U
E 2.7
E 1.4
A3.5
R
S
Q R S
1 1
1 0
L’état "1" sur l’entrée E 2.7 provoque la mise à "1" de la mémoire (état "1" sur la sortie A 3.5).
Si l’entrée E 2.7 passe à l’état "0", l’état de la sortie reste inchangé, c’est-à-dire reste mémorisé.
Si l’entrée E 1.4 passe à l’état "0", la sortie reste inchangée.
L’état "1" sur l’entrée E 1.4 provoque la remise à zéro de la mémoire (état "0" sur la sortie A 3.5).
Problème poséReprésentation STEP 5
CONT LOG
Mémoire RS pour la mémorisation d’une sortie
LIST
Lorsque les deux entrées sont à "1" simultanément (E 2.7 et E 1.4), alors le dernier test programméest prioritaire (ici U E 1.4), et ce pendant le traitement du reste du programme.
Exemples de programmation pour les modes de représentation LIST, CONT, LOG
Programmation de la CPU 948C79000-G8577-C848-04 3 - 37
Opérations de mémorisation(suite)
E 1.3 E 2.6
E 2.6
M1.7
E 1.3
M 1.7
E 2.6 M 1.7
E 1.3
S
R Q
U E 2.6
E 1.3
M 1.7
S
R
M 1.7
U
E 2.6
E 1.3
M 1.7
S
R S
1 1
1 0
L’état "1" sur l’entrée E 2.6 provoque la mise à "1" de la mémoire.
Lorsque les deux entrées sont à "1" simultanément (E 2.6 et E 1.3), alors le dernier test programmé
L’état "1" sur l’entrée E 1.3 provoque la remise à zéro de la mémoire.
R Q
Problème poséReprésentation STEP 5
CONT LOGLIST
Si l’entrée E 2.6 passe à l’état "0", l’état de la sortie reste inchangé, c’est-à-dire reste mémorisé.
Si l’entrée E 1.3 passe à l’état "0", la sortie reste inchangée.
est prioritaire (ici U E 1.3), et ce pendant le traitement du reste du programme.
Mémoire RS mettant en o uvre un mémentoe
Exemples de programmation pour les modes de représentation LIST, CONT, LOG
Programmation de la CPU 9483 - 38 C79000-G8577-C848-04
Opérations de mémorisation(suite)
A chaque front montant sur l’entrée E 1.7, le résultat de la combinaison ET (U E 1.7 et UN M 4.0)est "1" et, comme RLG = "1", les mémentos M 4.0 ("mémento de front") et M 2.0 ("mémento d’im- pulsion") sont mis à "1".
E 1.7
M 4.0
M 2.0
E 1.7
M2.0
M4.0
E 1.7 M 4.0 M 2.0E 1.7
/ M2.0
U
UN
=
U
S
UN
R
E 1.7
M 4.0
M 2.0
M 2.0
M 4.0
E 1.7
M 4.0
E 1.7
M 2.0
E 1.7
M 4.0
Problème poséCONT LOG
Fonction impulsionnelle (contact de passage)
LIST
Représentation STEP 5
Au cycle suivant, la combinaison ET n’est pas réalisée étant donné que le mémento M 4.0 est à "1".
Le mémento M 2.0 est remis à zéro.
Le mémento M 2.0 est donc à l’état "1" pendant un seul cycle de programme.
E 1.7
M 2.0 M 4.0
S
R Q
M 4.0
S
R Q
&
M 2.0
E 1.0
E 1.0
U E 1.0
A3.0
E 1.0
M1.0M1.1
M 2.0A 3.0
UN M 1.0= M 1.1
M 1.1UM 1.0SE 1.0UNM 1.0R
U M 1.1U A 3.0= M 2.0U M 1.1UN A 3.0
A 3.0SUN M 2.0
U M 2.0R A 3.0
Le diviseur binaire (sortie A 3.0) change d’état à chaque transition de "0" à "1" de l’état de l’entrée
signal d’entrée.E 1.0 (front montant). La fréquence du signal de sortie de la mémoire est donc la moitié de celle du
M1.1 A3.0 M 2.0
S
R Q
M1.1
E1.0
M1.0
E1.0 M1.0 M1.1
S
R Q
M1.1 A3.0 M2.0 A3.0
M2.0
&
E1.0
M1.0
&
M1.1
M1.1
E1.0
SM1.0
R Q
M1.1
A3.0M2.0
M2.0
A3.0
S
R Q
M1.1
A3.0
&
M2.0
A 3.0
Problème poséReprésentation STEP 5
CONT LOG
Diviseur binaire (bascule T)
LIST
Exemples de programmation pour les modes de représentation LIST, CONT, LOG
Programmation de la CPU 948C79000-G8577-C848-04 3 - 39
Opérations de temporisation
"1" du RLG de E 3.0. Elle s’écoule jusqu’à sa fin tant que le RLG de E 3.0 reste à "1".
Lorsque le RLG de E 3.0 retombe à "0", la temporisation est remise à zéro.
KT 10.2 :
La temporisation est chargée avec la valeur 10.2 (10 = facteur), le chiffre se trou-vant à droite du point indique la base de temps.
DU et DE sont des sorties numériques de la cellule de temporisation. Sur la sortie DU, on récupère lavaleur de temporisation codée en binaire et, sur la sortie DE, la valeur de temporisation avec la basede temps codée DCB.
E 3.0
Le RLG des instructions U T ou O T est "1" durant l’écoulement de la temporisation.
A4.0
La temporisation est lancée lorsque l’instruction se présente pour la première fois après le passage à
E 3.0
T 1
R S10s
1
E 3.0
T 1
A4.0
E 3.0
Q
10.2
T1
DU
A4.0
AW0
DE AW2
E 3.0
Q
10.2
T1
1
TW DU
A4.0
AW0
DE AW2
R
Problème poséReprésentation STEP 5
CONT LOG
Impulsion
=
SI T 1L KT 10.2U E 3.0
UN E 3.0R T 1L T 1T AW 0LC T 1T AW 2U T 1= A 4.0
1
LIST
0 = 0.01s 2 = 1s1 = 0.1s 3 = 10s
A4.0
T
KT KT
E 3.0
R
TW
E 3.0
Exemples de programmation pour les modes de représentation LIST, CONT, LOG
Programmation de la CPU 9483 - 40 C79000-G8577-C848-04
Opérations de temporisation(suite)
La temporisation est lancée lorsque l’instruction se présente pour la première fois après le passageà "1" du RLG de E 3.1.
U E 3.1L EW 15SV T 2
T 2UA 4.1=
E 3.1
Q
EW15
T2
1
TW DU
A4.1
DE
E 3.1
Q
EW15
T2
1
TW DU
A4.1
DE
R
A4.1
V
R
V
A4.1
E 3.1
T 2
R S
1
T2
E 3.1
T 2
La retombée à "0" du RLG de E 3.1 n’a aucune influence sur la tempori-sation.
Le RLG des instructions U T (ou O T) est "1" durant l’écoulement de la temporisation.
EW 15 :Mot contenant la valeur de temporisation codée DCB. L’opérande peutêtre E, A, M ou D (dans l’exemple, mot d’entrée 15)
Problème poséReprésentation STEP 5
CONT LOG
Impulsion prolongée (calibrage)
Valeur deBasede temps
(EB 15) (EB 16)
5 43 0 7 4 3 0
01010 110 2
E3.1
A4.1T T
LIST
temporisation
Exemples de programmation pour les modes de représentation LIST, CONT, LOG
Programmation de la CPU 948C79000-G8577-C848-04 3 - 41
Opérations de temporisation(suite)
La temporisation est lancée lorsque l’instruction se présente pour la première fois après le passage à"1" du RLG de E 3.5. Elle s’écoule jusqu’à sa fin tant que le RLG de E 3.5 reste à "1".
Q
KT9.2
T3
TW DU
A4.2
DE
E 3.5
Q
KT9.2
T3
TW
A4.2
DE
RA4.2
R
E 3.5
T 3
R S
E 3.5
T 3
9s 0
A4.2
DU
T O T O
Lorsque le RLG de E 3.5 retombe à "0", la temporisation est remise à zéro.
KT 9.2 :La temporisation est chargée avec la valeur 9.2 (9 = facteur), le chiffre setrouvant à droite du point indique la base de temps.
0 = 0.01s1 = 0.1s
2 = 1s3 = 10s
E 3.5A4.2
T
Le RLG des instructions U T (ou O T) est "1" quand la temporisation est écoulée et que l’entrée E 3.5 est encore à "1".
Problème poséReprésentation STEP 5
CONT LOG
Retard à la montée
EKTTETTA
3.59.233.5334.2
ULSEUNRU=
E 3.5
E 3.5
=
LIST
Exemples de programmation pour les modes de représentation LIST, CONT, LOG
Programmation de la CPU 9483 - 42 C79000-G8577-C848-04
Opérations de temporisation(suite)
T S
TW DU
DE
R Q
E 3.3
A 4.3
E 3.2 E 3.3
A 4.3 T4
A 4.3
R S
20s 0
E 3.3
T4
E 3.2 E 3.2
T S
DU
DE
R Q
E 3.3
E 3.2
T4 T4
E 3.3
A 4.3
T Ttemporisation.
Le RLG des instructions U T (ou O T) est à "1" quand le temps estécoulé. Il ne repasse à "0" que lorsque la temporisation a été
La temporisation est lancée lorsque l’instruction se présente pour la première fois après le passage à "1" du RLG de E 3.3.
T4
= A 4.3
U E 3.3
L KT 20.2
SS T 4
U E 3.2
R T 4
U T 4
E
La retombée à "0" du RLG de E 3.3 n’a aucune influence sur la
Problème poséReprésentation STEP 5
CONT LOG
Retard à la montée mémorisé
20.2 TW
A 4.3=
20.2
LIST
remise à zéro par la fonction RT (entrée E 3.2 à "1").
KT KT
E 3.4
A 4.4
E 3.4
A 4.4 T5
A 4.4
R S
0 1 E 3.4T5
O T
TWDU
DE
R Q
O T
DU
DE
R Q
E 3.4
T5 T5
T5
U E
= A
3.4
L KT 10.1
SA T 5
U T 5
4.3
E 3.4
A 4.4
T TT
La temporisation est lancée lorsque le RLG de E 3.4 passe de"1" à "0". Elle s’écoule pendant le temps programmé.
Problème poséReprésentation STEP 5
CONT LOG
Retard à la retombée (transition 1 ----> 0)
10.1 TW 10.1
A 4.4=
LIST
Lorsque l’entrée E 3.4 repasse à "1", la temporisation est remise
Le RLG des instructions U T (ou O T) est "1" durant l’écoulement
à zéro.
de la temporisation ou quand l’entrée E 3.4 est à "1".
KT KT
Exemples de programmation pour les modes de représentation LIST, CONT, LOG
Programmation de la CPU 948C79000-G8577-C848-04 3 - 43
Opérations de comptage
Lorsque le RLG de l’entrée E 4.1 passe de "0" à "1", la valeur indiquée (150) est chargée dansle compteur.
E 4.1
R S
ZA
ZE
+
binaire
KZ 150
KZ 150
ZR
DU
DE
R Q
Z1
ZV
S
ZW
E 4.1
KZ 150
ZR
DU
DE
R Q
Z1
ZV
S
ZW
Problème poséReprésentation STEP 5
CONT LOG
Positionnement d’un compteur
E 4.1
E 4.0
E 4.0
UZVULS
E ZEKZZ
4.014.11501
LIST
16 bits
Le mémento nécessaire à l’exploitation du front sur l’entrée de positionnement (entrée E 4.1) estcompris dans le mot de comptage. DU et DE sont des sorties numériques du compteur. La sortieDU indique la valeur de comptage codée en binaire naturel, la sortie DE indique cette valeurcodée en DCB.
E 4.2
R S ZE
binaire16 bits
ZV
DU
DE
R Q
Z2
ZR
S
ZW
Si le RLG de E 4.2 est à "1", le compteur est remis à zéro.
A 2.4
A 2.4ZAE 4.2
ZV
DU
DE
R Q
Z2
ZR
S
ZWA 2.4=0 /
Problème poséReprésentation STEP 5
CONT LOG
Remise à zéro d’un compteur
UZRURU=
E ZEZZA
4.024.2222.4
E 4.2
E 4.0
E 4.0
=
LIST
Si le RLG de E 4.2 est à "0", le compteur n’est pas influencé.
Exemples de programmation pour les modes de représentation LIST, CONT, LOG
Programmation de la CPU 9483 - 44 C79000-G8577-C848-04
Opérations de comptage(suite)
E 4.1
R S
ZA
ZE
+
binaire16 bits
ZR
DU
DE
R Q
Z1
ZV
S
ZW
La valeur du compteur adressé est incrémentée de 1, jusqu’à une valeur maximale de 999. La fonc-tion n’est exécutée que pour le front montant ("0" vers "1") du RLG de l’instruction précédant l’instruc-tion ZV (ici RLG de E 4.1). Les mémentos nécessaires à l’exploitation des fronts sur les entrées decomptage sont compris dans le mot de comptage.
E 4.1
U E 4.1
ZV Z 1ZR
DU
DE
R Q
Z1
ZV
S
ZW
E 4.1
Problème poséReprésentation STEP 5
CONT LOG
Comptage
LIST
deux entrées différentes pour effectuer un comptage-décomptage.L’existence de deux mémentos de front distincts, pour ZV et ZR, permet d’utiliser le compteur avec
Exemples de programmation pour les modes de représentation LIST, CONT, LOG
Programmation de la CPU 948C79000-G8577-C848-04 3 - 45
Opérations de comptage(suite)
E 4.0
R S ZE
-
binaire16 bits
ZV
DU
DE
R Q
Z1
ZR
S
ZW
deux entrées différentes pour effectuer un comptage-décomptage.
La valeur du compteur adressé est décrémentée de 1, jusqu’à une valeur minimale de 0. La fonctionn’est exécutée que pour le front montant ("0" vers "1") du RLG de l’instruction précédant l’instructionZR. Les mémentos nécessaires à l’exploitation des fronts sur les entrées de comptage sont comprisdans le mot de comptage.
E 4.0
U E 4.0
ZR Z 1ZV
DU
DE
R Q
Z1
ZR
S
ZW
E 4.0
ZA
Problème poséReprésentation STEP 5
CONT LOG
Décomptage
LIST
L’existence de deux mémentos de front distincts, pour ZV et ZR, permet d’utiliser le compteur avec
Exemples de programmation pour les modes de représentation LIST, CONT, LOG
Programmation de la CPU 9483 - 46 C79000-G8577-C848-04
Opérations de comparaison
Z1
Z2
! =F
Q
A 3.0
L EB 19
L EB 20
! = F
= A 3.0
EB 19
EB 20 A 3.0
EB 19
EB 20
Z1
Z2
! =F
Q
Lors d’opérations de comparaison de nombres de 16 bits à virgule fixe, l’ACCU 1-H et l’ACCU 2-H nesont pas concernés.
La totalité des contenus des accumulateurs 1 et 2 (32 bits) sont comparés entre eux lors d’opérationsde comparaison de nombres à virgule fixe (! = D) ou à virgule flottante (! = G).
Le premier opérande indiqué est comparé à l’opérande suivant.
Le résultat de la comparaison est une valeur binaire.
A 3.0
=
Z1 Z2
=
EB 19 EB 20
Les indicateurs FL 1 et FL 0 sont positionnés comme indiqué dans la liste des opérations.
Problème poséReprésentation STEP 5
CONT LOGLIST
Comparaison d’égalité
RLG = "1" : la comparaison est vérifiée si ACCU 1-L = ACCU 2-L
Lors de la comparaison, il est tenu compte de la représentation numérique des opérandes. Ici par exemple (! = F), les contenus de l’ACCU 1-L et de l’ACCU 2-L sont interprétés comme étant desnombres à virgule fixe.
RLG = "0" : la comparaison n’est pas vérifiée si ACCU 1-L = ACCU 2-L.
Exemples de programmation pour les modes de représentation LIST, CONT, LOG
Programmation de la CPU 948C79000-G8577-C848-04 3 - 47
Opérations de comparaison(suite)
A 3.1
L EB 21
L DW 3
> < F
= A 3.1
EB 21
DW 3
Z1
Z2
> <F
Q A 3.1
EB 21
DW 3
Z1
Z2
> <F
Q
Les indicateurs FL 1 et FL 0 sont positionnés comme indiqué au début du paragraphe 3.5.
Lors de la comparaison, il est tenu compte de la représentation numérique des opérandes. Ici par
Le premier opérande indiqué est comparé à l’opérande suivant.Le résultat de la comparaison est une valeur binaire.
A 3.1
Z1 Z2
EB 21 DW 3
RLG = "0" : la comparaison n’est pas vérifiée si ACCU 1-L = ACCU 2-L
Problème poséReprésentation STEP 5
CONT LOGLIST
Comparaison d’inégalité
exemple, les contenus de l’ACCU 1-L et de l’ACCU 2-L sont interprétés comme étant des
nombres à virgule fixe.
L’ACCU 1-H et l’ACCU 2-H ne sont pas concernés lors d’opérations de comparaison de nombres de16 bits à virgule fixe.
RLG = "1" : la comparaison est vérifiée si ACCU 1-L = ACCU 2-L
d’infériorité, d’infériorité et d’égalité (voir la liste des opérations).Les mêmes indications sont valables pour les comparaisons de supériorité, de supériorité et d’égalité,
flottante, les ACCU 1-H et ACCU 2-H sont également concernés.Lors d’opérations de comparaison de nombres de 32 bits à virgule fixe et de nombres à virgule
Exemples de programmation pour les modes de représentation LIST, CONT, LOG
Programmation de la CPU 9483 - 48 C79000-G8577-C848-04
3.5.3Opérationscomplémentaires
Les opérations complémentaires (ou instructions étendues) ne peuventêtre utilisées sur la PG que dans les blocs fonctionnels (FB et FX).L’ensemble des opérations pour les blocs fonctionnels comprend lesopérations de base et les opérations complémentaires.
Les opérations système appartiennent aux opérations complémentai-res : avec elles, il est possible, par exemple, de remplacer le contenud’une certaine zone de mémoire ou de modifier le contenu d’un regi-stre de travail de la CPU. Les opérations système ne peuvent être pro-grammées que si elles ont été validées dans les présélections (celan’est plus nécessaire depuis la version 2.0 de S5-DOS).
Consultez à ce sujet le chapitre 9, "Accès à la mémoire par lesadresses absolues".
AttentionLes opérations système ne doivent être employées que par desprogrammeurs avertis, et ce avec la plus grande prudence.
Dans les blocs fonctionnels, les opérations ne peuvent être re-présentées que sous forme de liste d’instructions. Les programmes desblocs fonctionnels ne peuvent donc pas être saisis de façon graphique(CONT ou LOG).Dans ce qui suit sont décrites les opérations complémentaires. Deplus, les possibilités de combinaison des opérations de substitutionavec les opérandes effectifs sont indiquées.
Opérations système Les opérations système sont repérées par dans la première colon-ne des tableaux.
S
Opérations complémentaires
Programmation de la CPU 948C79000-G8577-C848-04 3 - 49
Opérations combinatoiressur bits
Opération Opérande Fonction
U =
UN =
O =
ON =
Fonction ET, test à "1" de l’état d’un opérande formel
Fonction ET, test à "0" de l’état d’un opérande formel
Fonction OU, test à "1" de l’état d’un opérande formel
Fonction OU, test à "0" de l’état d’un opérande formel
Inscrire l’opérande formel
Les opérandes effectifs possibles sont des entrées, des sorties,des données et des mémentos binaires (type de paramètre : E, A ; format de paramètre BI), ainsi que des temporisations et des compteurs (type de paramètre : T, Z).
Opérations combinatoiressur mots
Opération Opérande Fonction
UW
OW
XOW
Combinaison ET de l’ACCU 1-L et de l’ACCU 2-L
Combinaison OU de l’ACCU 1-L et de l’ACCU 2-L
Combinaison OU exclusive de l’ACCU 1-L et de l’ACCU 2-L
Ces opérations influencent les indicateurs FL 1 et FL 0, mais pas lecontenu des accumulateurs 2, 3 et 4 (voir indicateurs d’opérations surmots).
Tableau 3-11 Opérations combinatoires sur bits avec des opérandes formels
Tableau 3-12 Opérations combinatoires sur mots
Opérations complémentaires
Programmation de la CPU 9483 - 50 C79000-G8577-C848-04
Opérations de test de bits
Opération Opérande Fonction
P
E 0.0 à 127.7A 0.0 à 127.7M 0.0 à 255.7D 0.0 à 255.15T 0.0 à 255.15Z 0.0 à 255.15BA 0.0 à 255.15BB 0.0 à 255.15BS 0.0 à 255.15BT 0.0 à 255.15
Test de l’état d’un signal à "1"
d’une entrée (MIE)d’une sortie (MIS)d’un mémentod’un bit de mot de donnéesd’un bit de mot de temporisationd’un bit de mot de compteurd’un bit dans la zone BAd’un bit dans la zone BBd’un bit dans la zone BSd’un bit dans la zone BT
PN
E 0.0 à 127.7A 0.0 à 127.7M 0.0 à 255.7D 0.0 à 255.15T 0.0 à 255.15Z 0.0 à 255.15BA 0.0 à 255.15BB 0.0 à 255.15BS 0.0 à 255.15BT 0.0 à 255.15
Test de l’état d’un signal à "0"
d’une entrée (MIE)d’une sortie (MIS)d’un mémentod’un bit de mot de donnéesd’un bit de mot de temporisationd’un bit de mot de compteurd’un bit dans la zone BAd’un bit dans la zone BBd’un bit dans la zone BSd’un bit dans la zone BT
Les opérations de test de bits interrogent l’état du bit et l’indiquentdans le RLG.
Tableau 3-13 Opérations de test de bits
Opérations complémentaires
Programmation de la CPU 948C79000-G8577-C848-04 3 - 51
Opérations demémorisation
Opération Opérande Fonction
S =
RB =
RD =
= =
Mise à "1" d’un opérande formel (binaire)
Remise à "0" d’un opérande formel (binaire)
Remise à "0" d’un opérande formel (numérique) pour temporisations et compteurs
Assignation de la valeur du RLG à un opérande formel
Inscrire l’opérande formel
Les opérandes effectifs possibles sont des entrées, des sorties etdes mémentos binaires (type de paramètre : E, A ; format deparamètre BI).
Opération Opérande Fonction
SUE 0.0 à 127.7A 0.0 à 127.7M 0.0 à 255.7D 0.0 à 255.15T 0.0 à 255.15Z 0.0 à 255.15BA 0.0 à 255.15BB 0.0 à 255.15BS 60.0 à 63.15BT 0.0 à 255.15
Mise à "1" inconditionnelled’une entrée (MIE)d’une sortie (MIS)d’un mémentod’un bit de mot de donnéesd’un bit de mot de temporisationd’un bit de mot de compteurd’un bit dans la zone BAd’un bit dans la zone BBd’un bit dans la zone BSd’un bit dans la zone BT
RUE 0.0 à 127.7A 0.0 à 127.7M 0.0 à 255.7D 0.0 à 255.15T 0.0 à 255.15Z 0.0 à 255.15BA 0.0 à 255.15BB 0.0 à 255.15BS 60.0 à 63.15BT 0.0 à 255.15
Remise à zéro inconditionnelled’une entrée (MIE)d’une sortie (MIS)d’un mémentod’un bit de mot de donnéesd’un bit de mot de temporisationd’un bit de mot de compteurd’un bit dans la zone BAd’un bit dans la zone BBd’un bit dans la zone BSd’un bit dans la zone BT
Tableau 3-14 Opérations de mémorisation avec des opérandes formels
Tableau 3-15 Opérations de mise à "1" et de remise à "0"
Opérations complémentaires
Programmation de la CPU 9483 - 52 C79000-G8577-C848-04
Opérations de temporisationet de comptage
Opération Opérande Fonction
SI =
SE =
SVZ =
SSV =
SAR =
FR =
Lancement d’une temporisation (impulsion) définie par un opérande formel ; la valeur de temporisation est contenue dans l’ACCU 1-L (type de paramètre : T)
Lancement d’une temporisation (retard à la montée) définie par un opérande formel ; la valeur de temporisation est contenue dans l’ACCU 1-L (type de paramètre : T)
Lancement d’une temporisation (impulsion prolongée) définie par un opérande formel (valeur de temporisation contenue dansl’ACCU 1-L) ou positionnement d’un compteur défini par unopérande formel (valeur de comptage contenue dans l’ACCU 1-L)(type de paramètre : T, Z)
Lancement d’une temporisation (retard à la montée mémorisé) définie par un opérande formel (valeur contenue dans l’ACCU 1-L) ou incrémentation d’un compteur défini par un opérande formel (type de paramètre T, Z) Lancement d’une temporisation (retard à la retombée) définie par un opérande formel (valeur contenue dans l’ACCU 1-L) ou décrémenta-tion d’un compteur définie par un opérande formel (type de para-mètre T, Z)
Opérande formel (temporisation/comptage) pour démarrage (cf. "FR T", "FR Z") (type de paramètre T, Z)
Inscrire l’opérande formel
FR T 0 à 255
Z 0 à 255
Validation du réarmement d’une temporisationL’opération n’est exécutée que pour le front montant du RLG(passage de "0" à "1" ). Elle déclenche un réarmement de la tempori-sation lorsque le RLG de l’instruction précédant l’instruction delancement est "1" (voir croquis).
Validation du positionnement ou de l’incrémentation d’un compteurL’opération n’est exécutée que pour le front montant du résultat logique (passage de "0" à "1"). Elle déclenche un positionnement du compteur lorsque le RLG de l’instruction précédant l’instruction de lancement est 1.
Tableau 3-16 Opérations de temporisation et de comptage
tt
RLGpour SI T
RLGpour FR T
Testpar U T
Opérations complémentaires
Programmation de la CPU 948C79000-G8577-C848-04 3 - 53
Exemples
Appel du bloc fonctionnel Programme dans le bloc fonctionnel
Programme exécuté
a)
:SPA FB 203NOM :EXEMPLE1ANNE : E 10.3PAUL : T 17JEAN : A 18.4
:U =ANNE:L KT 010.2:SSV =PAUL:U =PAUL:= =JEAN
:U E 10.3:L KT 010.2:SS T 17:U T 17:= A 18.4
b)
:SPA FB 204NOM :EXEMPLE2MAXI : E 10.5IRMA : E 10.6EVE : E 10.7MARC : Z 15EMMA : M 58.3
:U =MAXI:SSV =MARC:U =IRMA:SAR =MARC:U =EVE:L KZ 100:SVZ =MARC:UN =MARC:= =EMMA
:U E 10.5:ZV Z 15:U E 10.6:ZR Z 15:U E 10.7:L KZ 100:S Z 15:UN Z 15:= M 58.3
c)
:SPA FB 205NOM :EXEMPLE3LUC : E 10.4NOEL : T 18MAUD : EW 20LAURE : M 100.7
:U =LUC:L =MAUD:SVZ =NOEL:U =NOEL:= =LAURE
:U E 10.4:L EW 20:SV T 18:U T 18:= M 100.7
Opérations complémentaires
Programmation de la CPU 9483 - 54 C79000-G8577-C848-04
Opérations de chargementet de transfert
Opération Opérande Description
L =
LC =
LW =
LD =
T =
Chargement d’un opérande formelLa valeur de l’opérande défini comme opérande formel est chargée dans l’ACCU (type de paramètre : E, T, Z, A ; format de paramètre : BY, W, D)
Chargement codé d’un opérande formelLa valeur d’une temporisation ou d’un compteur définis comme opérandes formels est chargée en code DCB dans l’ACCU (format de paramètre : T, Z).
Chargement de la configuration binaire d’un opérande formelLa configuration binaire de l’opérande formel est chargée dans l’ACCU (type de paramètre : D ; format de paramètre : KF, KH,KM, KY, KC, KT, KZ).
Chargement de la configuration binaire d’un opérande formelLa configuration binaire de l’opérande formel est chargée dans l’ACCU (type de paramètre : D ; format de paramètre : KG).
Transfert vers un opérande formelLe contenu de l’accumulateur est transféré vers un opérande définicomme opérande formel (type de paramètre : E, A ; format deparamètre : BY, W, D).
Inscrire l’opérande formel
Excepté les mémentos S, les opérandes correspondant aux opérationsde base peuvent être utilisés comme opérandes effectifs. Pour l’ins-truction "LW=", on peut utiliser une donnée sous forme de configurati-on binaire (KM), de configuration hexadécimale (KH), de nombre àdeux octets (KY), de caractère (KC), de nombre à virgule fixe (KF),de valeur de temporisation (KT) ou de comptage (KZ). Pour l’in-struction "LD=", une donnée sous forme de nombre à virgule flottanteest autorisée.
Tableau 3-17 Opérations de chargement et de transfert avec des opérandes formels
Opérations complémentaires
Programmation de la CPU 948C79000-G8577-C848-04 3 - 55
Opération Opérande Fonction
L BA 0 à 255
BB 0 à 255
Chargement d’un mot de la zone "données de couplage"(zone BA) dans l’ACCU 1
Chargement d’un mot de la zone étendue "données decouplage" (zone BB) dans l’ACCU 1
L BS 0 à 255
BT 0 à 255
Chargement d’un mot de la zone "données système" (zone BS)dans l’ACCU 1
Chargement d’un mot de la zone étendue "données système" (zone BT) dans l’ACCU 1
T BA 0 à 255
BB 0 à 255
Transfert du contenu de l’ACCU 1 vers un mot de la zone"données de couplage" (zone BA)
Transfert du contenu de l’ACCU 1 vers un mot de la zoneétendue "données de couplage" (zone BB)
T BS 60 à 63
BT 0 à 255
Transfert du contenu de l’ACCU 1 vers un mot de la zone"données système" (zone BS)
Transfert du contenu de l’ACCU 1 vers un mot de la zoneétendue "données système" (zone BT)
Contrairement aux zones BA, BB et BT, vous ne pouvez utiliser libre-ment que les mots BS 60 à BS 63 de la zone BS. A ce sujet, reportez-vous au paragraphe 8.3.4, "Zone BS/BT".
A condition de ne pas utiliser de blocs fonctionnels standard, vouspouvez utiliser l’ensemble de la zone BT (BT 0 à BT 255).
Tableau 3-18 Opérations de chargement et de transfert avec des opérandes spéciaux
Opérations complémentaires
Programmation de la CPU 9483 - 56 C79000-G8577-C848-04
Opérations de calcul
Opération Opérande Fonction
ENT – Il y a "empilage" dans les accumulateurs 3 et 4 :
<ACCU 4> := <ACCU 3>
<ACCU 3> := <ACCU 2>
<ACCU 2> := <ACCU 2>
<ACCU 1> := <ACCU 1>
Les contenus des accumulateurs 1 et 2 ne sont pas modifiés. L’ancien contenu de l’ACCU 4 est perdu.
Exemple
ACCU 1 ACCU 2 ACCU 3 ACCU 4
L KF +30 d30 ca
L KF +3 d3 c30
aContenu des ACCUS avantl´enchaînement des opéra-t ions ari thmétiques
b c d
x F c12 c30
+ F c42 cc
L KF +4 c4 303
ENT 3 30 30 c
c7 cc
L KF +6 c6 c42
: F
Tableau 3-19 Opération de calcul ENT
Calcul du quotient : (30 + 3 * 4) / 6 = 7
Opérations complémentaires
Programmation de la CPU 948C79000-G8577-C848-04 3 - 57
Opération Opérande Fonction
S ADD BF -128 à+127
Addition d’une constante à 1 octet (virgule fixe) au contenu de l’ACCU 1-L (extension du signe). Les indicateurs FL 0, FL 1,OVFL et OVFLMEM ne sont pas affectés. Les accumulateursACCU 1-H et ACCU 2 à ACCU 4 restent inchangés.
S ADD KF -32 768 à+32 767
Addition d’une constante à virgule fixe (mot) au contenu de l’ACCU 1-L. Les indicateurs FL 0, FL 1, OVFL etOVFLMEM ne sont pas affectés. Les accumulateurs ACCU1-H et ACCU 2 à ACCU 4 restent inchangés.
S ADD 1 DH 0000 0000àFFFF FFFF
Addition d’une constante à virgule fixe (double mot) au contenu de l’ACCU 1. Les indicateurs FL 0, FL 1, OVFL et OVFLMEMne sont pas affectés. Les ACCU 2 à ACCU 4 restent inchangés.
S +D 1 Addition de deux constantes à virgule fixe (double mot) : ACCU 2 + ACCU 1. Le résultat peut être évalué via FL 0/FL 1. 2
S -D 1 Soustraction de deux constantes à virgule fixe (double mot) : ACCU 2 - ACCU 1. Le résultat peut être évalué via FL 0/FL 1. 2
S TAK Permutation des contenus des accumulateurs 1 et 2
1 La programmation dépend du type de console et de la version du logiciel système.
2 Modification du contenu de ACCU 2 et ACCU 3 : cf. paragraphe 3.5.1 "Opérations de base, opérations arithmétiques".
Tableau 3-20 Opérations arithmétiques complémentaires
Opérations complémentaires
Programmation de la CPU 9483 - 58 C79000-G8577-C848-04
3.5.4Opérations d’organisation Les opérations d’organisation comprennent aussi des opérations sy-
stème.
AttentionLes opérations système ne doivent être employées que par desprogrammeurs avertis, et ce avec la plus grande prudence.
Les opérations système sont repérées par dans la première colon-ne des tableaux.
Opérations de saut La destination pour les sauts conditionnels et inconditionnels est indi-quée de manière symbolique (maximum 4 caractères, débutant par unelettre). Ainsi le paramètre symbolique de l’instruction de saut est iden-tique à l’adresse symbolique de l’instruction de destination. Il fauttenir compte, lors de la programmation, du fait que la distance absoluede saut ne doit pas être supérieure à 127 mots et qu’une instructionSTEP 5 peut être codée sur plus d’un mot. Les sauts ne doivent être ef-fectués qu’à l’intérieur d’un bloc ; les sauts au-delà des limites de seg-ments sont interdits (un segment est une subdivision d’un bloc PB,SB, FB, FX et OB ; voir manuel STEP 5).
NotaLes instructions de saut et la destination du saut (adresse sym-bolique) doivent se situer dans un même segment. Une mêmeadresse symbolique de destination ne peut être attribuée qu’uneseule fois par segment.Exception : ceci n’est pas valable pour l’instruction SPR dont leparamètre correspond à la distance absolue de saut.
Opération Opérande Fonction
SPA =
SPB =
SPZ =
adr
( adr = adressesymbolique avecau maximum4 caractères)
Saut inconditionnel Le saut inconditionnel est effectué indépendamment d’une condition.
Saut conditionnel Le saut conditionnel est effectué quand RLG = 1. Lorsque RLG = 0, cette instruction n’est pas exécutée et le résultat logique RLG est mis à 1.
Condition de saut : résultat "0" Le saut n’est effectué que si FL 1 = 0 et FL 0 = 0. Le résultat logique RLG n’est pas modifié.
S
Tableau 3-21 Opérations de saut
Opérations d’organisation
Programmation de la CPU 948C79000-G8577-C848-04 3 - 59
Opération Opérande Fonction
Suite du tableau 3-21
SPN =
SPP =
SPM =
SPO =
SPS =
adr
(adr = adressesymbolique avecau maximum4 caractères)
Condition de saut : résultat ≠ 0 Le saut n’est effectué que si FL 1 ≠ FL 0. Le résultat logique RLG n’est pas modifié.
Condition de saut : résultat > 0Le saut n’est effectué que si FL 1 = 1 et FL 0 = 0. Le RLG n’est pas modifié.
Condition de saut : résultat < 0Le saut n’est effectué que si FL 1 = 0 et FL 0 = 1. Le RLG n’est pas modifié.
Saut conditionné au dépassement (overflow) :Le saut est effectué si l’indicateur OVFL = 1.S’il n’y a pas de dépassement (OVFL = 0), le saut n’est paseffectué. Le RLG n’est pas modifié.Il y a dépassement lorsque pour une représentation donnée, ledomaine permis est dépassé par l’opération arithmétique.
Saut si l’indicateur OVFLMEM = 1 (dépassement mémorisé)Le saut est effectué si l’indicateur OVFLMEM = 1.S’il n’y a pas de dépassement (OVFLMEM = 0), le saut n’estpas effectué. Le résultat logique RLG n’est pas modifié.Il y a dépassement lorsque, pour une représentation donnée, ledomaine permis est dépassé par l’exécution de plusieursopérations arithmétiques.
S SPR -32 768 à +32 767 Saut relatif à l’intérieur de la mémoire utilisateur ou d’un bloc fonctionnel (par exemple, pour parvenir à un autre segment). L’opération est toujours réalisée indépendamment de conditions.L’opérande est la différence d’adresse "destination du saut -instruction actuelle" (nombre de mots). Le saut peut aller versl’avant (opérande positif) ou vers l’arrière (opérande négatif).
AttentionL’utilisation non conforme de l’opération SPR peut conduire àdes états indéfinis dans le processus. Cette opération ne doit doncêtre utilisée que par des programmeurs très expérimentés et desutilisateurs connaissant très bien le système.
Opérations d’organisation
Programmation de la CPU 9483 - 60 C79000-G8577-C848-04
Opérations de décalage
Opération Opérande Fonction (opération avec ACCU 1)
SLW
SRW
SLD
SVW
SVD
RLD
RRD
0 à 15
0 à 15
0 à 32
0 à 15
0 à 32
0 à 32
0 à 32
Décalage vers la gauche (à droite sont insérés des zéros)
Décalage vers la droite (à gauche sont insérés des zéros)
Décalage d’un double mot vers la gauche (à droite sont insérés des zéros)
Décalage d’un mot avec bit de signe vers la droite (à gauche est inséré le bit 15)
Décalage d’un double mot avec bit de signe vers la droite (à gauche est inséré le bit 31)
Rotation vers la gauche
Rotation vers la droite
Seul l’ACCU 1 intervient dans les opérations de décalage. Le paramètrede ces opérations indique de combien de positions le contenu de l’ACCUest décalé. Pour SLW, SRW et SVW, seul le mot de poids faible(ACCU 1-L) est affecté par le décalage et, pour SLD, SVD, RLD etRRD, la totalité du contenu de l’ACCU 1 (32 bits) est concernée.
Les opérations de décalage sont effectuées indépendamment d’unequelconque condition.
La valeur du dernier bit décalé hors de l’ACCU peut être testée dansles indicateurs FL 0 et FL 1 à l’aide de fonctions de saut.
Décalage : dernier bit décalé
FL 1 FL 0 Opération desaut
0 0 0 SPZ=
1 1 0 SPN=SPP=
Tableau 3-22 Opérations de décalage
Opérations d’organisation
Programmation de la CPU 948C79000-G8577-C848-04 3 - 61
Exemples
1. Lecture du mot de données DW 52, décalage de 4 bits vers la gauche, puis réécriture dans le mot DW 53
Programme STEP 5 Contenu des mots de données
:L DW 52 KH = 14AF:SLW 4:T DW 53 KH = 4AF0
2. Lecture du double mot d’entrée ED 0, puis décalage du contenu de l’ACCU 1 de manière que les positions de bits imprimées en gras (en partie décalées) restent conservées et que les autres positions de bits admettent des valeurs définies (0 H ou 0F H).
Programme STEP 5 Contenu de l’ACCU 1 (hexadécimal)
ACCU 1-H : ACCU 1-L :
:L ED 0 2 348 ABCD:SLW 4 2348 BCD0:SRW 4 2348 0BCD:SLD 4 3480 BCD0:SVW 4 3480 FBCD:SVD 4 0348 0FBC:RLD 4 3480 FBC0:RRD 4 0 348 0FBC
3. Application : Multiplication par des puissances de 2 Exemple : nouvelle valeur = ancienne valeur x 8
:L MW 10:SLW 3:T MW 10 Attention : Ne pas dépasser la limite
du domaine positif
4. Application : Division par des puissances de 2 Exemple : nouvelle valeur = ancienne valeur : 4
:A DB 5:L DW 0:SRW 2:T DW 0
Opérations d’organisation
Programmation de la CPU 9483 - 62 C79000-G8577-C848-04
Opérations de conversion
Opération Fonction
KEW
KZW
KZD
DEF
DUF
DED
DUD
FDG
GFD
Formation du complément à 1 de l’ACCU 1-L (16 bits)
Formation du complément à 2 de l’ACCU 1-L (16 bits)
Formation du complément à 2 de l’ACCU 1 (32 bits)
Conversion DCB - binaire d’un nombre à virgule fixe (16 bits)
Conversion binaire - DCB d’un nombre à virgule fixe (16 bits)
Conversion DCB - binaire d’un double mot (32 bits)
Conversion binaire - DCB d’un double mot (32 bits)
Conversion d’un nombre à virgule fixe (32 bits) en un nombre à virgule flottante (32 bits)
Conversion d’un nombre à virgule flottante (32 bits) en un nombre à virgule fixe (32 bits)
DEF La valeur contenue dans l’ACCU 1-L (bits 0 à 15) est interprétée com-me étant un nombre codé DCB. Après la conversion, le contenu del’ACCU 1-L est un nombre de 16 bits à virgule fixe.
DUF La valeur contenue dans l’ACCU 1-L (bits 0 à 15) est interprétée com-me étant un nombre de 16 bits à virgule fixe. Après la conversion, lecontenu de l’ACCU 1-L est un nombre codé DCB.
15 14 0
S 2 14 . . . . . . . . . . . . . . . 2 0
DUF ↓ DEF ↑15 0
S S S S 10 2 10 1 10 0
S (signe) : 0 = positif1 = négatif
Tableau 3-23 Opérations de conversion
Opérations d’organisation
Programmation de la CPU 948C79000-G8577-C848-04 3 - 63
DED La valeur contenue dans l’ACCU 1 (bits 0 à 31) est interprétée commeétant un nombre codé DCB. Après la conversion, le contenu del’ACCU 1 est un nombre de 32 bits à virgule fixe.
DUD La valeur contenue dans l’ACCU 1 (bits 0 à 31) est interprétée commeétant un nombre de 32 bits à virgule fixe. Après la conversion, le con-tenu de l’ACCU 1 est un nombre codé DCB.
31 30 0
S 2 30 . . . . . . . . . 2 0
DUD ↓ DED ↑31 0
S S S S 10 6 10 5 10 4 10 3 10 2 10 1 10 0
S (signe) : 0 = positif1 = négatif
FDG La valeur contenue dans l’ACCU 1 (bits 0 à 31) est interprétée commeétant un nombre de 32 bits à virgule fixe. Après la conversion, le con-tenu de l’ACCU 1 est un nombre à virgule flottante (exposant et man-tisse).
GFD La valeur contenue dans l’ACCU 1 (bits 0 à 31) est interprétée commeétant un nombre à virgule flottante. Après la conversion, le contenu del’ACCU 1 est un nombre de 32 bits à virgule fixe.
31 30 0
S 2 30 . . . . . . . . . 2 0
FDG ↓ GFD ↑
31 30 ... ... 24 23 0
S 2 6 . . . . . . . . . . . . . . 2 0 S 2 -1 . . . . . . . . . . 2 -23
Exposant Mantisse
La conversion consiste en la multiplication de la mantisse (binaire)avec la valeur de l’exposant (binaire). Pour ce faire, la valeur de lamantisse est décalée de la valeur de l’exposant (base 2) à des positionsbinaires de poids plus fort, et ce par rapport à une virgule décimaleimaginaire. Après la multiplication, les restes de la mantisse d’originese trouvent à droite de la virgule décimale imaginaire. Ces bits sontôtés du résultat entier.
Opérations d’organisation
Programmation de la CPU 9483 - 64 C79000-G8577-C848-04
Avec cet algorithme de conversion, on obtient les classes de résultatsuivantes :
•• Les nombres à virgule flottante ≥ 0 ou ≤ -1 donnent la valeur en-tière inférieure la plus proche.
•• Les nombres à virgule flottante < 0 et > -1 donnent 0.
Exemples de conversion
Exemple pour KEW, KZW
Nombre Nombre à virgule fixeà virgule flottante 32 bits
GFD
+5,7 → 5-2,3 → -3-0,6 → 0+0,9 → 0
1. Le contenu du mot de données DW 64 doit être complémenté bit à bit ("inversé") et transféré dans le mot de données DW 78.
Programme STEP 5 Contenu des mots de données
:L DW 64 KM = 0011111001011011:KEW:T DW 78 KM = 1100000110100100
2. Le contenu du mot de données DW 207 doit être interprété comme étant un nombre à virgule fixe et transféré, en changeant le signe, dans le mot de données DW 51.
Programme STEP 5 Contenu des mots de données
:L DW 207 KF = +51:KZW:T DW 51 KF = -51
Opérations d’organisation
Programmation de la CPU 948C79000-G8577-C848-04 3 - 65
Décrémentation/incrémen tation
Opération Opérande Fonction
D
I
1 à 255
1 à 255
Décrémentation de l’octet de poids faible (bits 0 à 7)de l’ACCU 1-L de la valeur de l’opérande 1
Incrémentation de l’octet de poids faible (bits 0 à 7)de l’ACCU 1-L de la valeur de l’opérande 1
1 Le contenu de l’ACCU 1-L est diminué ou augmenté du nombre indiqué en opérande. L’exécution de l’opération est indépendante d’une quelconque condition.
Exemple
Opérations de substitution
Opération Opérande Fonction
B
B =
DW 0 à 255
MW 0 à 254
Substitution par un mot de donnéesLe paramètre de l’instruction suivante est remplacé par la valeur contenue dans le mot de données défini par le paramètre de BDW.
Substitution par un mot de mémentosLe paramètre de l’instruction suivante est remplacé par la valeur contenue dans le mot de mémentos défini par le paramètre de BMW.
Appel d’un bloc défini par un opérande formel (type de paramètre B) : seuls A DB, SPA PB, SPA OB, SPA FB, SPA SB peuvent être substitués.
Inscrire l’opérande formel
Programme STEP 5 Contenu des mots de données
:L DW 7 KH = 1010:I 16:T DW 8 KH = 1020:D 33:T DW 9 KH = 10FF
Tableau 3-24 Décrémentation/incrémentation
Tableau 3-25 Opérations de substitution
Opérations d’organisation
Programmation de la CPU 9483 - 66 C79000-G8577-C848-04
Opération Opérande Fonction
Suite du tableau 3-25
S BI 1 Traitement indirect d’un opérande formelExécution d’une opération dont le code est contenu dans un opérande formel. Le numéro de l’opérande à exécuter est contenu dans l’ACCU 1.
B BS 60 à 63 1 Exécution d’une opération définie dans la zone des données système BS (données système libres : BS 60 à 63)Dans le cas d’instructions à double mot, le 2ème mot doit êtrechargé après BS n+1.
1 La valeur qui se trouve dans la donnée système ou dans l’opérande formel est interprétée en tant que code opération d’une opération STEP 5 qui est ensuite exécutée.
NotaSeules les opérations suivantes peuvent être combinées avec B DW, B MW , BI ou B BS :
- U.. , UN.. , O.. , ON.. , S.. , R.. , =.. avec les zones E, A, M, S,
- FR T, R T, SA T, SE T, SI T, SS T, SV T,
- FR Z, R Z, S Z, ZR Z, ZV Z,
- L.., T.. avec les zones P, Q, E, A, M, S, D, BA, BB, BS, BT,
- L T, L Z,
- LC T, LC Z,
- SPA=, SPB=, SPZ=, SPN=, SPP=, SPM=, SPO=,
- SLW, SRW,
- D, I, SES, SEF,
- A DB, SPA.. , SPB.., E DB, EX DX, AX DX, BAB FX, BA FX.
La console de programmation ne vérifie pas si les combinaisonssont admissibles ou pas.
Opérations d’organisation
Programmation de la CPU 948C79000-G8577-C848-04 3 - 67
Exemples relatifs auxopérations de substitution
B DW/B MW Substitution d’opérandes
Les instructions B DW et B MW permettent, dans une boucle de pro-gramme par exemple, d’accéder à des données de substitution :l’opérande de l’opération n’est pas déterminé à la programmation,mais fixé seulement au cours du déroulement du programme STEP 5.Cet accès avec substitution se compose de l’instruction B DW ou BMW et de l’opération STEP 5 suivant immédiatement. Les opérationsSTEP 5 autorisées sont présentées dans le tableau ci-avant.
Vous devez choisir lors de la programmation le type d’opérande parmiceux autorisés pour l’opération, par exemple PB pour "SPA PB nn".
C’est avant l’accès avec substitution via B DW ou B MW que vousdevez charger dans un mot de données ou de mémentos la valeur del’opérande (nn dans l’exemple "SPA PB nn").
1. Principe de la substitution
:L KF +120:T MW 14 Le mot de données MW 14 contient la valeur "KF +120":B MW 14:L EB 0
Avant l’exécution de l’instruction L EB, l’opérande0 est remplacé par la valeur 120 ; l’instruction
L EB 120 est exécutée.
2. Mot de données comme registre d’index
Les contenus des mots de données DW 20 à DW 100 doivent être mis à "0". Leregistre d’index pour le paramètre des mots de données est DW 1.
:L KF +20 Initialisation du registre d’index:T DW 1
M001 :L KF +0 Mise à 0:B DW 1:T DW 0:L DW 1 Incrémentation du registre d’index:L KF +1:+F:T DW 1:L KF +100:<=F:SPB =M001 Saut quand l’index se trouve dans la zone ... Suite du programme STEP 5
Suite à la page suivante
Opérations d’organisation
Programmation de la CPU 9483 - 68 C79000-G8577-C848-04
Substitution d’opérandes pour des opérations binaires
Pour la substitution d’opérandes avec des opérations binaires, vouspouvez utiliser les types d’opérandes suivants : entrées, sorties,mémentos, mémentos S, temporisations et compteurs. La structure du mot de données ou de mémentos (mot de paramètre)dépend pour cette substitution du type d’opérande que vous utilisez.
Mot de paramètre pour entrées et sorties
Bit 15 11 10 8 7 6 0
sans signification adresse debit de 0 à 7
0 adresse d’octet de 0 à 127
Suite des exemples relatifs à la substitution d’opérandes
3. Répartiteur de sauts pour l’emploi de sous-programmes
:B MW 5:SPA =M001 Contenu du mot de mémentos MW 5
+ :SPA =M002distance :SPA =M003 Distance de sautde saut :SPA =M004 (max. ± 127)
:SPA =M005 : .: .
M001 : .: .:BEA
M002 : . Avantage : : . Tous les sous-programmes se:BEA trouvent dans le même bloc.
M003 : .: .:BEA
4. Répartiteur de sauts pour des appels de blocs
:B MW 10 Contenu du mot de mémentos MW 10:SPA PB 0 PB 0
PB 1 Bloc n° x PB 2 PB 3 . . PB x
Opérations d’organisation
Programmation de la CPU 948C79000-G8577-C848-04 3 - 69
Mot de paramètre pour mémentos
Bit 15 11 10 8 7 0
sans signification adresse debit de 0 à 7
adresse d’octet de 0 à 255
Mot de paramètre pour mémentos S
Bit 15 14 12 11 0
0 adresse debit de 0 à 7
adresse d’octet de 0 à 4095
Mot de paramètre pour compteurs et temporisations
Bit 15 8 7 0
sans signification Numéro de la cellule de temporisation ou de comptage
de 0 à 255
Principe de la substitutionpour une opération binaire
15 8 7 011 10
0 DW 27
B DW
U E 0.0
27
304
U E 4.30
Instruct ion exécutée
Opérations d’organisation
Programmation de la CPU 9483 - 70 C79000-G8577-C848-04
Exemple relatif à l’opération BI
Le FB 1 exécute des instructions STEP 5 dont les codes d’opération sonttransmis par un bloc appelant sous forme d’opérandes formels MW 10, MW 12et MW 14.Le code d’opération qui doit être exécuté est défini comme numéro courantdans le mot de mémentos MW 16 par le bloc appelant.Le résultat de l’opération se trouve ensuite dans l’ACCU 1, puis esttransféré dans le mot de mémentos MW 18.
FB 1
NOM :TEST
DESIG:MW10 E/A/D/B/T/Z: D KM/KH/KY/KC/KF/KT/KZ/KG: KHDESIG:MW12 E/A/D/B/T/Z: D KM/KH/KY/KC/KF/KT/KZ/KG: KHDESIG:MW14 E/A/D/B/T/Z: D KM/KH/KY/KC/KF/KT/KZ/KG: KH
:L MW 16 Numéro courant de l’opérande formel avec le: code d’opération à utiliser:BI Le code d’opération transmis est exécuté.:T MW 16 Résultat de l’ACCU 1:BE
FB 2
::L KF +1:T MW 16 Numéro courant de l’opérande formel avec : code d’opération:SPA =APPEL::
APPEL::SPA FB 1 Appel du FB TEST
NOM :TESTMW10 : KH 4A5A Code d’opération "L EB 90", opérande formel 1MW12 : KH xxxx autre code d’opération, opérande formel 2MW14 : KH yyyy autre code d’opération, opérande formel 3
:T MW 18 ACCU 1 → MW 18 :BE
MW 10 4A5AH
:L EB 90
0001H
0001H
Liste des opérandes effectifs dans le FB 2 Principe de traitement dans le FB 1
xxxxHyyyyH
Opération exécutée par "BI"
(N˚ courant de l´opérande effectif)
MW 12
MW 14
MW 16
ACCU 1
:L MW 16
:BI
Opérations d’organisation
Programmation de la CPU 948C79000-G8577-C848-04 3 - 71
Opérations sur périphérie
Opération Opérande Fonction
AS
AF
AFS
AFF
BAS
BAF
Inhibition du traitement des alarmes de processus (avec EB 0) (pas pour les interruptions du système)
Libération du traitement des alarmes de processus (avec EB 0) (pas pour les interruptions du système)
Inhibition des erreurs d’adressage
Libération des erreurs d’adressage
Verrouillage des sorties : la MIS n’est plus influencée par les opérations S A, R A, = A, T PY et T PW.
Libération des sorties
L’inhibition et la libération des alarmes de processus peuvent, par ex-emple, être utilisées pour inhiber le traitement d’alarmes pendant letraitement d’un programme déclenché par horloge. Le traitement desalarmes du processus n’est alors plus possible dans la partie du pro-gramme se trouvant entre les instructions AS et AF.Veuillez aussi vous référer à la fonction spéciale OB 122, "Activation/désactivation de l’inhibition des alarmes", au paragraphe 6.3.
Autres opérations
Opération Opérande Fonction
S STS
STW
SIM
LIM
Instruction de mise en arrêt partiel
Instruction de mise en arrêt général(quitter uniquement avec le commutateur OFF/ON)
Positionnement du masque des interruptions (UAMW) (32 bits) :avant d’appeler l’opération, le profil binaire du masque doit êtrechargé dans l’ACCU 1 (32 bits).
Lecture du masque des interruptions (UAMW) : le profil binairedu masque des interruptions (32 bits) est chargé dans l’ACCU 1.
Tableau 3-26 Opérations sur périphérie
Tableau 3-27 Autres opérations
Opérations d’organisation
Programmation de la CPU 9483 - 72 C79000-G8577-C848-04
SIM/LIM : positionnement etlecture du masqued’indication des interruptions(UAMW)
Comme son nom l’indique, le masque des interruptions "masque" lesinterruptions et alarmes dans le mot des indicateurs d’interruptionsjusqu’à la fin du cycle. Ainsi, bien que les interruptions et alarmessoient toujours présentes, elles n’interrompent pas le déroulement duprogramme.
Bit = 0 dans le masque d’indication des interruptions : inhibition desinterruptionsBit = 1 dans le masque d’indication des interruptions : validation desinterruptions
Signification des bits dans l’UAMW-H ou l’ACCU 1-H :
15 8 7 0
INTX INTE INTF INTG COLAM AH AP BULE DPE HALT P/P CA INTAS OFH DARY PPA
Signification des bits dans l’UAMW-L ou l’ACCU 1-L :
15 8 7 0
–BL
INEXDB
INEXSTS DTC SUB P.BL> P.IT> MDT ZA ACQ DAD PARI CYC STOPHOLD
Abréviation Signification
Mot de poids fort
INTX
INTEINTFINTGCOLAMAHAPBULEDPEHALT
P/PCAINTASOFH
DARYPPA
Interruption système/bus S5 A, B, C ou D(suivant l’emplacement d’enfichage)Interruption système/bus S5 EInterruption système/bus S5 FInterruption système/bus S5 GCollision d’alarmesAlarme d’horlogeAlarme de processusErreur de verrouillage de busPériphérie défaillanteInstruction de mise en STOP provenant du coordinateurFonctionnement pas à pasComparateur d’adresses actifInterruption du processeur SPUDéfaillance de la fréquence d’horloge du processeur SPUPrêt continu (accès à une mémoire erronée)Débordement du compteur des parenthèses
Tableau 3-28 Signification des abréviations dans l’UAMW
Opérations d’organisation
Programmation de la CPU 948C79000-G8577-C848-04 3 - 73
Abréviation Signification
Suite du tableau 3-28
Mot de poids faible
BL INEXDB INEXSTSDTCSUBP.BL>P.IT>MDTZA
ACQDADPARICYCSTOPHOLD
Un bloc appelé manque.Un bloc de données appelé manque.Arrêt précis sur instructionErreur de transfert ou de chargementErreur de substitutionDébordement de la pile des blocsDébordement de la pile des interruptionsCoupure secteurAlarme d’horloge (alarme de retardement, alarme d’horloge à heure fixe)Retard d’acquittementErreur d’adressageErreur de paritéDépassement du temps de cycleCommutateur de mode sur STOPDemande DMA du processeur SPU
Opérations d’organisation
Programmation de la CPU 9483 - 74 C79000-G8577-C848-04
3.5.5Opérations sur sémaphores Si, en fonctionnement multiprocesseur (voir chapitre 10), plusieurs
CPU d’un automate programmable accèdent à une zone de mémoirecommune (périphérie, processeurs de communication, périphérie in-telligente), le risque existe que les CPU écrasent mutuellement leursdonnées et lisent des données intermédiaires erronées. Il est doncnécessaire de coordonner l’accès des CPU à la zone de mémoire com-mune.
La coordination des accès est possible à l’aide de sémaphores et desinstructions SES et SEF. On peut, par exemple, programmer la coordi-nation suivante. Dans une configuration multiprocesseur, une CPU nepourra accéder à la zone de mémoire commune qu’après avoir posi-tionné le sémaphore concerné (SES), un sémaphore xx ne pouvantêtre positionné que par une seule CPU. Si une CPU n’arrive pas à posi-tionner le sémaphore, elle doit renoncer à accéder à la mémoire.De la même manière, une CPU doit renoncer à un nouvel accès à lamémoire après avoir libéré le sémaphore (SEF).
SES/SEF : positionnementet libération de sémaphores
Il ne s’agit pas d’opérations système.
Opération Opérande Fonction
SES
SEF
0 à 31
0 à 31
Positionnement d’un sémaphore
Libération d’un sémaphore
Evaluation des résultats de l’opération par FL 0/FL 1
NotaLes instructions SES xx et SEF xx doivent être programmées dans toutes les CPU qui doivent accéder de façon concertée à une zone de mémoire commune.
Les FB standard, les blocs de dialogue et les blocs pour communication multiprocesseur gèrent la coordination d’accès de façon interne. Vous n’avez pas besoin de programmer les opérations SES xx et SEF xx pour ces blocs.
Tableau 3-29 Positionnement et libération de sémaphores
Opérations sur sémaphores
Programmation de la CPU 948C79000-G8577-C848-04 3 - 75
Effet de SES/SEF L’opération SES xx (positionner le sémaphore) occupe, pour la CPUcorrespondante, un octet donné dans le coordinateur (sous réserve quecelui-ci n’est pas déjà occupé par une autre CPU). Tant que la CPU yreste déclarée, les autres CPU ne peuvent pas accéder à la zonemémoire protégée par le sémaphore (numéro 0 à 31). Cette zone estdonc verrouillée pour les autres CPU.Pour que la coordination fonctionne correctement, il faut que toutesles CPU accédant à la même zone de la mémoire commune utilisent lemême sémaphore.
L’instruction SEF xx (libération du sémaphore) libère l’octet dans lecoordinateur. Ainsi la zone de mémoire précédemment protégée peutà nouveau être lue ou écrite par les autres CPU. Un sémaphore ne peutêtre libéré que par la CPU qui l’a positionné.
Utilisation de SES/SEF La figure 3-8 représente le principe de déroulement d’une coordinati-on d’accès au moyen d’un sémaphore.
DEBUT
Opérat ionréussie ?
Posi t ionner sémaphore :
Accès à la mémoirecommune protégéepar le sémaphore
Libérer le sémaphore :
Non
Oui
Fin
SES
SEF
Figure 3-8 Coordination de l’accès à la mémoire commune
Opérations sur sémaphores
Programmation de la CPU 9483 - 76 C79000-G8577-C848-04
Avant chaque positionnement ou libération d’un sémaphore donné, lesinstructions SES et SEF contrôlent l’état de ce sémaphore. Les indica-teurs FL 0 et FL 1 sont alors influencés comme indiqué ci-après.
FL 1 FL 0 Exploitation Signification
0 0 SPZ Le sémaphore a été positionné par une autre CPU et ne peut pas être positionné, ni libéré.
1 0 SPN, SPP Le sémaphore a été positionné ou libéré.
NotaLe processus de test d’un sémaphore (lecture) et le processus depositionnement ou de libération du sémaphore (écriture) formentun tout. Durant ces opérations, aucune autre CPU ne peut accéderà ce sémaphore.
Lors de l’utilisation des sémaphores, il est nécessaire de respecter lespoints suivants :
•• Un sémaphore est une variable globale, c’est-à-dire que le séma-phore ayant par exemple le numéro 16 n’est disponible qu’une seu-le fois, même lors de l’utilisation de trois CPU.
•• Les instructions SES et SEF doivent être utilisées par toutes lesCPU dont l’accès à une zone de mémoire commune doit être coor-donné.
•• Toutes les CPU concernées doivent avoir le même mode de démar-rage. Lors d’un nouveau démarrage, tous les sémaphores sont ef-facés par le programme système ; lors d’un redémarrage manuelou automatique, l’état des sémaphores est conservé.
•• En fonctionnement multiprocesseur, le démarrage doit être syn-chronisé. De ce fait, le mode de test n’est pas autorisé.
Opérations sur sémaphores
Programmation de la CPU 948C79000-G8577-C848-04 3 - 77
Exemple d’application pourles sémaphores
Problème posé
Un automate S5-155U comporte quatre CPU qui accèdent à une zone de mémoirecommune de la périphérie Q (QW 6) pour y déposer des signalisations d’étatqui sont transmises à un appareil de signalisation. Chaque signalisationdoit persister pendant 10 secondes avant de pouvoir être remplacée par unenouvelle signalisation en provenance de la même ou d’une autre CPU.L’accès au mot périphérique QW 6 (périphérie étendue, pas de mémoire image)est géré par un sémaphore. Seule la CPU ayant positionné avec succès lesémaphore correspondant à cette zone peut écrire sa signalisation sur QW 6.Ce sémaphore reste positionné pendant une durée de 10 secondes (temporisati-on T 10). Ce n’est qu’après l’écoulement de cette temporisation que la CPUlibère le sémaphore et la zone de mémoire, permettant ainsi aux autres CPUd’y accéder. QW 6 peut alors recevoir une autre signalisation. Si le sémaphore a déjà été positionné par une autre CPU au moment où la CPUtente de le positionner, la CPU ajourne sa tentative de positionnementjusqu’au cycle suivant.
Réalisation
Le programme suivant peut être traité dans les quatre CPU, avec à chaquefois une signalisation différente.
5 mémentos sont utilisés :
M 10.0 = 1 Une signalisation est demandée ou en cours de traitement.
M 10.1 = 1 Le sémaphore a été positionné avec succès.
M 10.2 = 1 La temporisation est lancée.
M 10.3 = 1 La signalisation est transférée.
M 10.4 = 1 Le sémaphore est libéré.
Suite à la page suivante
FB 1 :PROGRAMME PRINCIPAL
FB 10 :SIGNAL
FB 100 :POSITIONNER LE SEMAPHORE
FB 110 :SORTIR LA SIGNALISATION
FB 101 :LIBERER LE SEMAPHORE
Opérations sur sémaphores
Programmation de la CPU 9483 - 78 C79000-G8577-C848-04
Suite de l’exemple d’application pour les sémaphores
FB 1
:U M 10.0:SPB =M001 Si aucune signalisation n’est active::UN E 0.0:BEB::L KH 2222 Générer la signalisation et:T MW 12:UN M 10.0:S M 10.0 mettre à "1" le mémento SIGNALISATION.:
M001 :SPA FB10 Appel du bloc FB SIGNAL NOM :SIGNAL
::BE
FB 10
NOM :SIGNAL
:UN M 10.1 Si le sémaphore n’est pas positionné, :SPB FB 100 appeler le bloc FB "positionner sémaphore".
NOM :SEMASET::U M 10.1 Si le sémaphore est positionné et :UN M 10.2 si la temporisation n’est pas lancée,:S M 10.2:L KT010.2 lancer la temporisation.:SV T 10::U M 10.2 Si la temporisation est lancée et:UN M 10.3 si aucune signalisation n’est transférée,:SPB FB 110 appeler le bloc FB "sortir signalisation".
NOM :SORTSIGN::U M 10.2 Si la temporisation est lancée,:UN M 10.4 que le sémaphore n’est pas libéré:UN T 10 et que la temporisation est écoulée, :SPB FB 101 appeler le FB "libérer sémaphore".
NOM :SEMARESE::UN M 10.4 Si le sémaphore est libéré, :BEB::L KH0000:T MB10 mettre à "0" tous les mémentos.:BE
Suite à la page suivante
Opérations sur sémaphores
Programmation de la CPU 948C79000-G8577-C848-04 3 - 79
Suite de l’exemple d’application pour les sémaphores
FB 100
NOM :SEMASET
:SES 10 Positionner le sémaphore nº 10. :SPZ =M001:UN M 10.1 Si le sémaphore est positionné avec succès,:S M 10.1 mettre à "1" le mémento SEMA-POSITIONNE.
M001 :BE
FB 110
NOM: SORTSIGN
:L MW12 Transférer la signalisation :T QW 6 dans le mot de périphérie.:UN M 10.3:S M 10.3 Mettre à "1" le mémento: TRANS-SIGNAL. :BE
FB 101
NOM :SEMARESE
:SEF 10 Libérer le sémaphore nº 10.:SPZ =M001:UN M 10.4:S M 10.4 Positionner le mémento: SEMAPHORE LIBERE.
M001 :BE
Opérations sur sémaphores
Programmation de la CPU 9483 - 80 C79000-G8577-C848-04
Sommaire du chapitre 4
4.1 Niveaux de traitement de programme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 - 4
4.2 Etat de fonctionnement ARRET (STOP). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 - 9
4.2.1 Arrêt partiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 - 94.2.2 Arrêt total . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 - 134.2.3 Effacement général . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 - 14
4.3 Etat de fonctionnement MISE EN ROUTE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 - 16
4.3.1 Démarrages manuel et automatique. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 - 174.3.2 Redémarrages manuel et automatique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 - 184.3.3 Comparaison entre démarrage et redémarrage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 - 214.3.4 Démarrage avec rémanence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 - 224.3.5 Comparaison entre démarrage et démarrage avec rémanence . . . . . . . . . . . . . . . . . . . . 4 - 234.3.6 Interfaces utilisateur pour la mise en route . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 - 244.3.7 Redémarrage automatique étendu avec la CPU 948 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 - 274.3.8 Interruptions pendant la mise en route. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 - 28
4.4 Etat de fonctionnement RUN (MARCHE) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 - 29
4.4.1 Traitement cyclique du programme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 - 304.4.2 Traitement déclenché par alarme et par horloge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 - 324.4.3 Traitement déclenché par horloge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 - 334.4.4 Traitement déclenché par alarme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 - 41
4Etats de fonctionnement et niveauxde traitement de programme
Programmation de la CPU 948C79000-G8577-C848-04 4 - 1
Sommaire
Programmation de la CPU 9484 - 2 C79000-G8577-C848-04
4Etats de fonctionnement et niveauxde traitement de programme
Ce chapitre présente les états de fonctionnement et les niveaux de trai-tement de programme de la CPU 948. Il vous donne des informationsdétaillées sur les différents modes de mise en route et les blocs d’orga-nisation associés dans lesquels vous pouvez écrire votre propre pro-gramme pour les différents types de mise en route.
Vous y apprenez en outre en quoi les niveaux "traitement cyclique","traitement déclenché par horloge" et "traitement déclenché par alar-me" se distinguent et de quels blocs vous disposez pour votre program-me utilisateur.
Programmation de la CPU 948C79000-G8577-C848-04 4 - 3
4.1 Niveaux de traitement de prog ramme
La figure 4-2 présente les niveaux de traitement de programme existantdans les différents modes de fonctionnement. Vous trouverez des expli-cations sur les abréviations des niveaux d’erreur à la page suivante.
Niveaux d´erreurNiveaux de traitement de programmeEtat
Arrêtpartiel
Mise en route
RUN(marche)
DB INEXER.EDBX
BL INEXPARIACQDADDTCSUBCYC
COLAH/AHMAS
ER.EDBXDB INEXBL INEX
PARIACQDADDTCSUB
Communication
Traitement cycliquede la communication
Démarrage de la communication
Préparation à lacommunication
Mise en route
RedémarrageDémarrage
Alarmes de processus/interruptions
Traitement déclenchépar alarme
Cycle
Traitement cyclique
Alarmes d´horloge
Traitement déclenchépar horloge
ER.EDBXDB INEXBL INEX
PARIACQDADDTCSUB
CYC
Figure 4-1 Niveaux de traitement de programme
Niveaux de traitement de programme
Programmation de la CPU 9484 - 4 C79000-G8577-C848-04
Niveau Signification Priorité
Niveaux d’erreur
COLAH/AHMASCYCSUBDTCDADACQPARIBL INEXDB INEXER.EDBX
Erreur de traitement d’alarmes d’horlogeErreur de cycleErreur de substitutionErreur de transfert/chargementErreur d’adressageRetard d’acquittementErreur de paritéBloc de code appelé inexistantBloc de données appelé inexistantErreur lors de la génération d’un bloc dedonnées DB ou DX
Chaque traitement d’erreur a la priorité la plus élevée. A l’apparition d’une erreur, le niveau de traitement correspon-dant est immédiate-ment appelé.
Niveaux de traitement de programme en arrêt partiel
Démarrage de la communicationCommunication
Préparation de la communicationTraitement cyclique de la communication
–
Niveaux de traitement de programme à la mise en route
Démarrage
Redémarrage
Lancement défini du programme utilisateur
Poursuite du programme utilisateur au pointd’interruption
–
Niveaux de traitement de programme en mode de marche RUN
Alarmes d’horlogeAlarmes de processus/interruptionsCycle
Traitement déclenché par horlogeTraitement déclenché par alarmeTraitement cyclique
Priorité croissante (présé-lection 1)
1 Vous pouvez modifier cette présélection dans le DX 0 (voir le chapitre 7).
Traitement par le programmesystème
Chaque niveau possède son programme système spécifique.
Pile des interruptions (ITPILE) En cas d’interruption, le programme système inscrit pour chaque ni-veau un bloc d’information dans la pile des interruptions afin de pour-suivre le traitement au niveau interrompu une fois l’interruptiontraitée.
Tableau 4-1 Niveaux de traitement de programme
Niveaux de traitement de programme
Programmation de la CPU 948C79000-G8577-C848-04 4 - 5
Imbrication d’autres niveaux En présence d’un événement exigeant un traitement de priorité plusélevée, le niveau en cours du programme système est interrompu et leniveau à la priorité plus élevée est imbriqué.
L’imbrication se fait :
•• pour les niveaux d’erreur aux limites d’instructions,
•• pour tous les autres niveaux aux limites de blocs ou d’instruc-tions (selon le paramétrage du DX 0 ; voir le chapitre 7).
NotaIl n’est pas possible d’imbriquer plus de 5 OB d’erreur.L’activation simultanée de 5 niveaux d’erreur entraîne un débor-dement de la pile des interruptions et la CPU passe en arrêt total .
Un niveau de traitement de programme précis est affecté à un OBou à un groupe d’OB appelés par le programme système après unévénement. Si, par exemple, l’OB 9 est appelé pour le traitementd’une alarme d’horloge à heure fixe, le niveau de traitement de pro-gramme "Alarmes d’horloge" est activé.
Suite à un appel de bloc d’organisation, la CPU exécute le programmeSTEP 5 qui y est contenu. Ce faisant, elle sauvegarde le jeu de regi-stres en cours dans la pile des interruptions et crée un nouveau jeu deregistres (registres : accumulateurs 1 à 4, pointeur de la pile desblocs, registre d’adresse de bloc, adresse de début du bloc de données,longueur du bloc de données, compteur d’adresse STEP, registred’adresse de base et mots de masquage et d’effacement des indica-teurs d’interruption MMII et MEII).Si le traitement "normal" du programme est interrompu par un événe-ment, la CPU reprend, après exécution de l’OB et de tous les blocs quiy sont appelés, le traitement du programme à l’endroit où a eu lieul’interruption, dans la mesure où l’OB ne contient pas d’instruction demise à l’arrêt.
Niveaux de traitement de programme
Programmation de la CPU 9484 - 6 C79000-G8577-C848-04
Niveaux inférieurs Le niveau "Alarmes d’horloge" contient des niveaux inférieurs àchacun desquels un programme spécifique (OB) est affecté. Ces sous-niveaux obéissent, au sein du niveau d’alarmes d’horloge, à leur pro-pre ordre de priorité (voir le tableau suivant).
Niveau "Alarmes d’horloge"
Sous-niveau Priorité
Alarme de retardementAlarme d’horloge cyclique, période la plus courte......Alarme d’horloge cyclique, période la plus longueAlarme d’horloge à heure fixe
Priorité croissante (présélection)
Exemples
Exemple de traitement par le programme système
Au niveau "Cycle", le programme système actualise la mémoire image des en-trées et des sorties, redémarre la surveillance du temps de cycle et appel-le la gestion de l’interface vers la PG (point de contrôle système).
Niveaux de traitement de programme
Programmation de la CPU 948C79000-G8577-C848-04 4 - 7
Exemple pour la pile des interruptions
Exemple d’interruption d’un niveau de base par une interruption en fin de
bloc
Il se présente une alarme d’horloge pendant le traitement d’une alarmede processus. Comme l’alarme d’horloge est prioritaire, le traitementde l’alarme de processus est interrompu en fin de bloc pour permettrele traitement de l’alarme d’horloge. Si, lors du traitement de l’alar-me d’horloge, une erreur d’adressage apparaît par exemple, le traite-ment de l’alarme d’horloge est interrompu dès la prochaine limited’instruction et le niveau DAD est imbriqué.
Cycle Mise en route
Cycle
SUB SUB
DADDAD
DAD
STOP
SUB
Cycle
Prof. 3
Prof. 4
Prof. 2
Prof. 1
ITPILE = Image des niveauxinterrompus
Commutateur d´arrêt Redémarrage
Figure 4-2 Principe de changement de niveau et de l’ITPILE
Niveaux de traitement de programme
Programmation de la CPU 9484 - 8 C79000-G8577-C848-04
4.2 Etat de fonctionnement ARRET (STOP)
La CPU 948 a deux états d’arrêt différents, l’arrêt total et l’arrêt par-tiel dans lequel la communication reste possible.
4.2.1Arrêt partiel L’état de fonctionnement "Arrêt partiel" est caractérisé par les points
suivants.
La CPU peut encore communiquer : après la mise sous tension, le pro-gramme système appelle une seule fois le bloc d’organisation OB 38(niveau de démarrage de la communication en arrêt partiel) puis, demanière cyclique, l’OB 39 (niveau de communication en arrêt partiel).
Initialisation de lacommunication (OB 38)
Le programme système appelle l’OB 38 comme interface utilisateurpour initialiser la communication.
Le bloc OB 38 n’est appelé qu’après la mise sous tension, etce indépendamment du mode de mise en route paramétré dansle DX 0 (démarrage ou redémarrage automatique).
Surveillance de l’OB 38 Le programme système ne vérifie pas si un dépassement de temps seproduit pendant le déroulement de l’OB 38. Vous pouvez toutefois in-terrompre l’exécution de cet OB en basculant le commutateur demode sur STOP.
Si une erreur se produit dans l’OB 38, son traitement est interrompu etle bloc OB 39 est appelé s’il existe.
Communication cyclique(OB 39)
L’ OB 39 est appelé comme interface utilisateur en cas d’interruptiondu programme cyclique qui mène à l’état d’arrêt partiel.
Si, lors de l’interruption du programme cyclique, le traitement d’unbloc de dialogue (communication) n’est pas achevé, il est possible derappeler le même bloc ou le même type de bloc (par exemple, SEND)dans l’OB 39.
Etat de fonctionnement ARRET (STOP)
Programmation de la CPU 948C79000-G8577-C848-04 4 - 9
Surveillance de l’OB 39 Le programme système surveille si l’OB 39 dépasse le temps maximaladmis. Si le temps d’exécution de celui-ci dépasse 2,55 secondes (va-leur fixe), le programme système en déduit l’existence d’une erreur decycle, appelle l’OB 26 de traitement d’erreur, puis traite l’OB 39 ànouveau depuis le début. Si l’erreur de cycle survient à nouveau etque la profondeur de la pile des interruptions (ITPILE) deviennesupérieure à 5, il se produit un débordement de cette dernière (réacti-on, voir le paragraphe suivant).
Réaction aux erreursd’exécution de l’OB 39
Quand une erreur, par exemple ACQ, apparaît dans le bloc OB 39 oudans un bloc qu’il appelle, le programme système appelle le bloc d’or-ganisation de réaction correspondant. Après son traitement, il poursuitle traitement dans l’OB 39. S’il n’existe pas d’OB de réaction à l’er-reur, l’OB 39 est repris depuis le début. Les erreurs ACQ, BL INEX età l’autotest constituent une exception, car aucune réaction n’estdéclenchée.Si d’autres erreurs surgissent et que la profondeur de la pile des inter-ruptions devienne supérieure à 5, il se produit un débordement decette dernière. Le programme système interrompt le traitement(l’OB 39 n’est alors plus appelé), mais la CPU reste en arrêt partiel.
Conservation des données Si un traitement cyclique du programme a été effectué en mode demarche (RUN), les valeurs des compteurs, temporisations, mémentoset mémoires image du processus sont conservées lors du passage àl’arrêt.
Horloge temps réel L’horloge temps réel continue à fonctionner avec actualisation de lazone BS toutes les 10 ms.
Signal BASP Le signal BASP (verrouillage des sorties) est activé ce qui inhibe tou-tes les sorties TOR.Exception : en mode de test du fonctionnement multiprocesseur etpour la fonction PG en ligne de forçage des sorties, le signal BASPn’est pas activé (voir le paragraphe 10.1.8).
Pile des interruptions (ITPILE) Si un programme utilisateur était traité avant le passage à l’arrêt, uneentrée précisant la cause de l’interruption figure dans l’ITPILE à l’étatd’arrêt.
Traitement destemporisations et compteursdans les OB 38 et 39
Le traitement des temporisations et des compteurs est arrêté pendantle déroulement de l’OB 38 et de l’OB 39. En cas de besoin, il faut trai-ter les informations temporelles dans la zone de données système BS96 à BS 99 ou avec l’OB 121 ou l’OB 150.
Etat de fonctionnement ARRET (STOP)
Programmation de la CPU 9484 - 10 C79000-G8577-C848-04
Appel des OB 38 et 39 Les figures 4-4 et 4-5 illustrent le principe d’appel des OB 38 etOB 39.
OB 38OB 38
OB 39
OB 22
MARCHE
OB 39
Démarrage dela communication
Démarrage dela communication
Situation de départ : MARCHE Situation de départ : ARRET PARTIEL
Hors tension/sous tensionHors tension/sous tension
Traitement uniquede la communication
Redémarrageautomatique
Traitement cycliquede la communication
Figure 4-3 Exécution du programme après mise sous tension
OB 1
OB 39
Interruption, par exemplevia une instruction STS
Traitement cycliquede la communication
Figure 4-4 Exécution du programme après une interruption du cycle
Etat de fonctionnement ARRET (STOP)
Programmation de la CPU 948C79000-G8577-C848-04 4 - 11
DEL et arrêt partiel Vous pouvez reconnaître l’état d’arrêt partiel aux voyants figurant surla face avant de l’appareil de base.
Voyant Etat
RUN éteint
STOP allumé (feu fixe ou clignotant)
SYSFAULT éteint
BASP allumé (excepté en mode de test dufonctionnement multiprocesseur ou pour la
fonction PG de forçage des sorties)
Le voyant STOP signale l’erreur qui est à l’origine de l’arrêt actuel.
Feu fixe du voyant STOP L’arrêt partiel a été provoqué
en fonctionnement monoprocesseur :- en basculant le commutateur de mode de RUN sur STOP,- par la fonction PG d’arrêt de l’automate,- par une défaillance matérielle (DPE),- par un effacement général ;
en fonctionnement multiprocesseur :- en basculant le commutateur de mode du coordinateur sur STOP,- par une autre CPU mise à l’arrêt suite à une erreur (les CPU sans
erreur affichent un feu fixe) ou via le commutateur STOP,- par la fonction PG d’arrêt de l’automate,- par la fonction PG de fin de contrôle pas à pas sur une autre CPU.
Clignotement lent du voyantSTOP (env. 1 fois toutes lesdeux secondes)
L’arrêt partiel a été provoqué par :
- une instruction STP ou STS dans le programme utilisateur,- une erreur de manipulation (DB 1/DX 0 erroné, sélection d’un
mode de démarrage non autorisé, etc.),- le débordement de la pile des blocs (P.BL>) ou de la pile des
parenthèses (PPA),- une erreur de programmation ou une défaillance matérielle,
Les voyants suivants renseignent alors sur la cause de l’erreur :- Voyant ADF (DAD)- Voyant QVZ (ACQ)- Voyant ZYK (CYC)
- la fonction PG de fin de contrôle pas à pas sur cette CPU.
Etat de fonctionnement ARRET (STOP)
Programmation de la CPU 9484 - 12 C79000-G8577-C848-04
Pour quitter l’arrêt partiel, vous pouvez :
•• choisir un mode de démarrage (voir le paragraphe 4.4),
•• effectuer un effacement général suivi d’un démarrage.
4.2.2Arrêt total Lorsque le déroulement sans erreur du programme système n’est plus
assuré, la CPU se met en arrêt total de manière à garantir dans ce casun état de sécurité.
L’arrêt total est provoqué par les causes suivantes :
•• instruction d’arrêt (STW) pour le programme système,
•• débordement de la pile des interruptions (P.IT>),
•• retard d’acquittement (ACQ) ou erreur de parité (PARI) dans lamémoire RAM/EPROM du système,
•• erreur dans le programme système.
NotaComme la CPU est à l’arrêt, vous ne pouvez quitter l’état d’arrêttotal qu’en coupant puis en rétablissant l’alimentation del’automate.
DEL et arrêt total Vous pouvez reconnaître l’état d’arrêt total aux voyants figurant sur laface avant de l’appareil de base.
Voyant Etat
RUN éteint
STOP éteint
SYSFAULT allumé
BASP allumé
Etat de fonctionnement ARRET (STOP)
Programmation de la CPU 948C79000-G8577-C848-04 4 - 13
4.2.3Effacement général L’effacement général efface la totalité de la mémoire utilisateur et tou-
tes les zones d’opérandes (mémentos, images mémoire du processus,etc.).
Demande d’effacementgénéral
Un effacement général ne peut être exécuté que s’il est demandé cequi se traduit par le clignotement rapide du voyant STOP.
Demande de la part duprogramme système
Après chaque mise sous tension, la CPU effectue une routine d’initiali-sation. Si une erreur est détectée lors de cette initialisation (par ex-emple, coupure de la tension de sauvegarde pendant la mise horstension), le programme système demande un effacement général.
Il faut remédier à la cause de l’erreur (par exemple, en changeant lapile de sauvegarde), puis l’effacement général de la CPU est effectué.
Un effacement général est également demandé lors de l’apparitiond’une erreur de la CPU ou du système. Une telle erreur se reconnaît aufait que la demande d’effacement général se présente de nouveauaprès une première exécution. Adressez-vous dans ce cas à l’agenceSiemens la plus proche.
Demande de la part del’utilisateur
La demande d’effacement général s’effectue comme suit (voir la fi-gure 4-1 pour les éléments de commande de la CPU) :
Etape Action Résultat
1 Basculez le commutateur de mode de RUN sur STOP.
La CPU passe à l’arrêt (STOP). Le voyant STOP est en feu fixe.
2 Maintenez le commutateur à rappel automatique en position OVERALL RESET et basculez le commutateur de mode de STOP sur RUN et à nouveau sur STOP.
L’effacement général est demandé et le voyant STOP clignote rapidement.
NotaSi vous renoncez à l’exécution de l’effacement général demandé,effectuez maintenant un démarrage ou un redémarrage manuel.
Etat de fonctionnement ARRET (STOP)
Programmation de la CPU 9484 - 14 C79000-G8577-C848-04
Exécution de l’effacementgénéral
Indépendamment du fait que la demande d’effacement général pro-vienne du système ou de l’utilisateur, il faut effectuer l’opération de lamanière suivante (situation de départ : le voyant STOP clignote rapide-ment).
Effacement général par leséléments de commande de laCPU
Action Résultat
Maintenez le commutateur à rappel automatique en position OVERALL RESET et basculez le commutateur de mode de STOP sur RUN et à nouveau sur STOP (voir la figure 4-1).
L’effacement général est effectué.Le voyant STOP passe en feu fixe.
Effacement général à partir dela PG
Action Résultat
Exécutez la fonction PG d’effacement des blocs.
L’effacement général est effectué.Le voyant STOP passe en feu fixe.
NotaContrairement à la CPU 946/947, vous pouvez sur la CPU 948demander l’effacement général à partir de la PG également enmode de marche (RUN). Dans ce cas, la CPU est automatique-ment mise à l’arrêt et l’effacement général effectué.
Pendant l’effacement général, tous les voyants sont éteints hormisINIT et BASP.
Une fois l’effacement général effectué, la seule possibilité demise en marche est le démarrage.
Chargement de la carte àmémoire et appel de l’OB 39
Une fois l’effacement général effectué, la carte à mémoire (memorycard) est chargée − si elle est enfichée −, puis l’OB 39 est appelé.
Etat de fonctionnement ARRET (STOP)
Programmation de la CPU 948C79000-G8577-C848-04 4 - 15
4.3 Etat de fonctionnement MISE EN ROUTE
L’état de fonctionnement "mise en route" (anciennement, démarrage)est caractérisé par les points suivants.
Changement d’état La mise en route est le passage de l’état d’arrêt à l’état de marche(RUN).
Modes de mise en route Il existe les modes de mise en route suivants :
- démarrage (manuel ou automatique),- redémarrage (manuel ou automatique).Vous activez le mode de mise en route choisi via les éléments decommande sur la CPU ou par paramétrage du DX 0.
Démarrage Le traitement du programme utilisateur cyclique est repris au début.
Le programme système appelle le bloc OB 20 comme interface utilisa-teur.
Redémarrage Le traitement du programme utilisateur cyclique est repris au pointd’interruption.
Le programme système appelle :
- pour le redémarrage manuel l’OB 21,- pour le redémarrage automatique l’OB 22comme interface utilisateur.
Surveillance des OB de miseen route
Il n’y a pas de surveillance du temps de cycle pour le traitement desOB de mise en route à partir desquels vous pouvez appeler d’autresblocs. Vous devez toutefois absolument éviter les boucles sans fin.
Compteurs, temporisations,mémentos, mémoires imagedu processus
Les valeurs des compteurs, temporisations, mémentos et mémoiresimage du processus sont traitées différemment selon les modes demise en route (voir le paragraphe 4.4.3).
Signal BASP Le signal BASP (verrouillage des sorties) est activé ce qui inhibe tou-tes les sorties TOR.Exception : en mode de test du fonctionnement multiprocesseur, le si-gnal BASP est inactif (voir le paragraphe 10.1.8).
Alarmes Les alarmes (interruptions, alarmes de processus, alarmes d’horloge)sont inhibées.
Mise en route en modemultiprocesseur
Vous trouverez des informations sur le mode de mise en route en fon-ctionnement multiprocesseur au paragraphe 10.1.7.
Etat de fonctionnement MISE EN ROUTE
Programmation de la CPU 9484 - 16 C79000-G8577-C848-04
4.3.1Démarrages manuel etautomatique
Démarrage autorisé Un démarrage est toujours possible tant que le système ne demandepas un effacement général.
Démarrage nécessaire Un démarrage est nécessaire après :
- un effacement général,- le chargement du programme utilisateur dans la mémoire utilisateur
lorsque la CPU est à l’arrêt,- un débordement de la pile des interruptions ou de la pile des blocs,- un abandon du démarrage (par mise hors tension ou basculement du
commutateur de mode sur STOP),- un arrêt suite à la fonction PG de fin de contrôle pas à pas.
Démarrage manuel Vous déclenchez un démarrage manuel :
•• par les éléments de commande de la CPU
Maintenez le commutateur à rappel automatique en positionRESET et basculez simultanément le commutateur de mode deSTOP sur RUN (voir la figure 4-1).
•• par la PG
Activez la fonction PG de démarrage de l’AP.
Démarrage automatique Un démarrage automatique est déclenché lorsque, lors de la mise soustension :
- la présélection "Redémarrage automatique à la mise sous tension" dans le DX 0 a été changée en "Démarrage automatique à la mise sous tension" ;
- les commutateurs de mode sur toutes les CPU et sur le coordinateur restent en position RUNetque la CPU n’était pas à l’arrêt lors de la mise hors tension.
NotaSi la CPU était à l’état d’arrêt lors de sa mise hors tension (parexemple, suite à une erreur d’adressage), un démarrage automa-tique n’est pas possible. Dans ce cas, vous ne pouvez quitter l’étatd’arrêt qu’avec un démarrage manuel.
Etat de fonctionnement MISE EN ROUTE
Programmation de la CPU 948C79000-G8577-C848-04 4 - 17
Interruption d’un démarrage Vous pouvez interrompre un démarrage en cours en basculant le com-mutateur de mode sur STOP ou en coupant la tension d’alimentation.Vous devez alors effectuer un nouveau démarrage.
4.3.2Redémarrages manuel etautomatique
Redémarrage possible etautorisé
Un redémarrage manuel n’est possible que si la cause de l’arrêt estl’une des suivantes :
•• commutateur de mode basculé de RUN sur STOP,
•• arrêt en fonctionnement multiprocesseur dû au signal HALT ducoordinateur,
•• coupure de la tension avec paramétrage correspondant dans leDX 0,
•• fonction PG d’arrêt de l’automate.
NotaSi le passage à l’arrêt est provoqué par un autre motif, il n’est paspossible d’effectuer un redémarrage. Le programme systèmen’autorise qu’un démarrage.
Un redémarrage manuel ou automatique n’est autorisé que :
•• si le programme utilisateur n’a pas été modifié pendant l’arrêt
et
•• si un démarrage n’est pas nécessaire pour d’autres raisons (voir leparagraphe 4.4.1).
Etat de fonctionnement MISE EN ROUTE
Programmation de la CPU 9484 - 18 C79000-G8577-C848-04
Redémarrage manuel Vous déclenchez un redémarrage manuel :
•• par les éléments de commande de la CPU
Le commutateur à rappel automatique se trouvant en positionmédiane, basculez le commutateur de mode de STOP sur RUN(voir la figure 4-1).
•• par la PG
Activez la fonction PG de redémarrage de l’AP.
Redémarrage automatique Un redémarrage automatique est déclenché lorsque, lors de la misesous tension :
- la présélection "Redémarrage automatique à la mise sous tension"figure dans le DX 0 ou qu’il n’existe pas de DX 0 ;
- les commutateurs de mode sur toutes les CPU et sur le coordina-teur restent en position RUNetque la CPU n’était pas à l’arrêt lors de la mise hors tension ;
- aucune autre erreur n’est apparue lors de l’initialisation et avant lacoupure de la tension ;
- un démarrage n’est pas nécessaire pour les raisons énoncées ci-avant.
Au rétablissement de la tension ou à la remise sous tension suite à unecoupure secteur ou à une mise hors tension en état RUN, la CPUexécute une routine d’initialisation et tente d’effectuer un redémarrage.
En cas de coupure de tension dans un châssis d’extension (signalDPE), la CPU se met à l’arrêt. Elle y reste tant que le signal DPE n’estpas désactivé, puis effectue un redémarrage ou un démarrage automa-tique.
Etat de fonctionnement MISE EN ROUTE
Programmation de la CPU 948C79000-G8577-C848-04 4 - 19
NotaLors d’un redémarrage, tenez compte du cas particulier suivant.
Au cours de l’exécution d’un OB d’erreur (par exemple, suite àDAD), la CPU passe en mode d’arrêt suite à une coupure del’alimentation, à un signal HALT, au basculement du commuta-teur sur STOP ou à PGSTP. Un redémarrage automatique oumanuel est ensuite effectué.
Réaction de la CPU :
- La CPU poursuit l’exécution de l’OB d’erreur interrompu jusqu’à la fin avant d’appeler l’OB 21/22.
- Si l’OB d’erreur n’exécute pas d’instruction d’arrêt, un redémarrage se produit une fois le reste de l’OB d’erreur traité.
- Si l’OB d’erreur met la CPU à l’arrêt, seul un démarrage est possible.
Interruption du redémarrage Vous ne pouvez interrompre un redémarrage en cours qu’en basculantle commutateur de mode sur STOP ou en coupant la tension d’alimen-tation. Après une telle interruption, il est possible d’effectuer undémarrage ou un redémarrage.
Etat de fonctionnement MISE EN ROUTE
Programmation de la CPU 9484 - 20 C79000-G8577-C848-04
4.3.3Comparaison entre démarra-ge et redémarrage
Le tableau suivant présente un comparatif des modes de démarrage etde redémarrage.
Démarrage Redémarrage
Déclenche-ment manuel
Commutateur à rappel automatique sur RESET et commutateur de mode de STOP sur RUNouFonction PG de démarrage de l’AP
Commutateur à rappel automatique en position médiane et commutateur de mode de STOP sur RUNouFonction PG de redémarrage de l’AP
Déclen-chement automatique
Remise sous tension si le DX 0 contient "Démarrage automatique à la mise sous tension"
Remise sous tension si le DX 0 contient laprésélection ou s’il n’y a pas de DX 0
Opérations effectuées par le programme système
Créer la liste des adresses de blocs dans le DB 0
Effacer la mémoire image des entrées
Effacer la mémoire image des sorties
Conserver la liste des adresses de blocs dans le DB 0
Conserver la mémoire image des entrées
Conserver la mémoire image des sorties
Effacer les mémentos, compteurs et temporisations
Effacer la périphérie TOR/analogique (128 octets chacune)
Effacer les mémentos de couplage (256 octets)
Effacer les alarmes de retardement et les contrats à heure fixe
Effacer la pile des interruptions et la piledes blocs
Effacer les sémaphores
Conserver les mémentos, compteurs et temporisations
Conserver les mémentos de couplage (256 octets)
Effacer les alarmes de retardement, conserver les contrats à heure fixe
Conserver la pile des interruptions et la pile des blocs
Conserver les sémaphores
DB 1 disponible :reprise dans la liste des MI des E/S TOR et des mémentos de couplage s’y trouvant
DB 1 non disponible :reprise dans la liste des MI des cartes existant réellement (uniquement E/S TOR). Les mémentos de couplage ne sont pas pris en compte.
Pas de reprise des valeurs du DB 1
Tableau 4-2 Comparaison des modes de démarrage et de redémarrage
Etat de fonctionnement MISE EN ROUTE
Programmation de la CPU 948C79000-G8577-C848-04 4 - 21
Démarrage Redémarrage
Suite du tableau 4-3
Opérations effectuées par le programme système (suite)
Reprise des présélections système du DX 0 Pas d’exploitation du DX 0
Appel de l’interface utilisateur OB 20 (si elle existe)1
Appel de l’interface utilisateur OB 21/22 (si elle existe)1
Synchronisation du démarrage en mode multiprocesseur
Synchronisation du redémarrage en mode multiprocesseur
Passage en fonctionnement cyclique
- Inactiver le signal BASP- Appeler l’OB 1
Passage en fonctionnement cyclique- Le signal BASP reste actif.- Effacer la mémoire image des sorties- Traiter le reste du cycle- Inactiver le signal BASP- Appeler l’OB 1
1 Au démarrage après mise sous tension, les interfaces utilisateur sont appelées dans l’ordre suivant : OB 38, OB 39, OB 20/OB 22.
4.3.4Démarrage avec rémanence Si le mode "Démarrage avec rémanence" est paramétré dans le DX 0,
le programme système exécute un démarrage présentant, par rapportau démarrage "normal", les caractéristiques décrites dans le para-graphe suivant.
Etat de fonctionnement MISE EN ROUTE
Programmation de la CPU 9484 - 22 C79000-G8577-C848-04
4.3.5Comparaison entre démarra-ge et démarrage avec réma-nence
Le tableau suivant présente un comparatif des modes de démarrage etde démarrage avec rémanence.
Démarrage Démarrage avec rémanence
Déclenche-ment manuel
Commutateur à rappel automatique sur RESET et commutateur de mode de STOP sur RUNouFonction PG de démarrage de l’AP
Commutateur de mode de STOP sur RUN
ouFonction PG de redémarrage de l’AP
Déclen-chementautomatique
Remise sous tension si le DX 0 contient "Démarrage automatique à la mise sous tension"
Remise sous tension si le DX 0 contient "Redémarrage automatique à la mise sous tension" et "Démarrage avec rémanence"
Opérations effectuées par le programme système
Créer la liste des adresses de blocs dans le DB 0
Effacer la mémoire image des entrées
Effacer la mémoire image des sorties
Effacer les alarmes de retardement et les contrats à heure fixe
Effacer les mémentos, compteurs et temporisations
Effacer la périphérie TOR/analogique (128 octets chacune)
Conserver la liste des adresses de blocs dans le DB 0
Conserver la mémoire image des entrées
Conserver la mémoire image des sorties
Effacer les alarmes de retardement et les contrats à heure fixe
Conserver les mémentos, compteurs et temporisations
Effacer la périphérie TOR (128 octets), conserver la périphérie analogique (128 octets)
Effacer les mémentos de couplage (256 octets)
Effacer la pile des interruptions et la pile des blocs
Effacer les sémaphores
Conserver les mémentos de couplage (256 octets)
Effacer la pile des interruptions et la pile des blocs
Conserver les sémaphores
DB 1 disponible :reprise dans la liste des MI des E/S TOR et des mémentos de couplage s’y trouvant
DB 1 non disponible :reprise dans la liste des MI des cartes existant réellement (uniquement E/S TOR). Les mémentos de couplage ne sont pas pris en compte.
Pas de reprise des valeurs du DB 1
Tableau 4-3 Comparaison des modes de démarrage et de démarrage avec rémanence
Etat de fonctionnement MISE EN ROUTE
Programmation de la CPU 948C79000-G8577-C848-04 4 - 23
Démarrage Démarrage avec rémanence
Opérations effectuées par le programme système(suite)
Suite du tableau 4-4
Reprise des présélections système du DX 0 Pas d’exploitation du DX 0
Appel de l’interface utilisateur OB 20 (s’il existe)1
Appel de l’interface utilisateur OB 21/22 (s’il existe)1
Synchronisation du démarrage en mode multiprocesseur
Synchronisation du démarrage en mode multiprocesseur
Passage en fonctionnement cyclique
- Inactiver le signal BASP- Appeler l’OB 1
Passage en fonctionnement cyclique
- Inactiver le signal BASP- Appeler l’OB 1
1 Au démarrage après mise sous tension, les interfaces utilisateur sont appelées dans l’ordre suivant : OB 38, OB 39, OB 20/OB 22.
4.3.6Interfaces utilisateur pourla mise en route
Les blocs d’organisation OB 20, OB 21 et OB 22 servent d’interfacesutilisateur pour les différents modes de mise en route. Vous pouvez yécrire le programme STEP 5 correspondant au mode désiré.
OB 20 Le programme système appelle le bloc OB 20 une fois lorsque la CPUeffectue un démarrage manuel ou automatique. Vous pouvez y écrireun programme STEP 5 qui prépare un recommencement du traite-ment cyclique.
Vous pouvez par exemple :
•• positionner des mémentos,
•• déclencher des temporisations (le programme système ne les lan-cera qu’au passage en mode de marche RUN),
•• prédéfinir des données qui seront transmises aux cartes de péri-phérie,
•• effectuer la synchronisation de processeurs de communication CP.
Après le traitement du bloc OB 20, débute le traitement cyclique parl’appel de l’OB 1.Si le bloc OB 20 n’est pas chargé, la CPU entame le traitement cycli-que immédiatement à la fin de la procédure de démarrage (après lesopérations effectuées par le système).
Etat de fonctionnement MISE EN ROUTE
Programmation de la CPU 9484 - 24 C79000-G8577-C848-04
OB 21 Le programme système appelle le bloc OB 21 une fois lorsque la CPUeffectue un redémarrage manuel ou un démarrage manuel avec réma-nence. Vous pouvez y écrire un programme STEP 5 qui prépare la re-prise du traitement cyclique.
Redémarrage manuel Après le traitement du bloc OB 21 en mode de redémarrage manuel,le traitement cyclique reprend à l’endroit de l’interruption, par l’ins-truction suivante. Ce faisant :
•• Le signal BASP (verrouillage des sorties) reste actif jusqu’à la findu cycle restant et n’est désactivé qu’au début du cycle suivant.
•• La mémoire image des sorties est remise à zéro à la fin du cyclerestant.
•• Si le bloc OB 21 n’est pas chargé, la CPU reprend le traitement duprogramme au point d’interruption dès la fin de la procédure de re-démarrage.
Démarrage manuel avecrémanence
Si le mode "Démarrage avec rémanence" est paramétré dans le DX 0,le programme système exécute, après le traitement de l’OB 21, undémarrage (la CPU reprend l’exécution du programme à la premièreinstruction STEP 5 dans l’OB 1). L’état des mémentos, mémentosde couplage et sémaphores et la liste des adresses de blocs (DB 0)sont conservés.
Etat de fonctionnement MISE EN ROUTE
Programmation de la CPU 948C79000-G8577-C848-04 4 - 25
OB 22 Lorsque la CPU exécute un redémarrage automatique ou un démarra-ge automatique avec rémanence, le programme système appelle unefois le bloc OB 22. Vous pouvez y écrire un programme STEP 5 quiprépare la reprise du traitement cyclique (généralement après une cou-pure secteur).
Redémarrage automatique Au retour de la tension d’alimentation, la CPU exécute les opérationssystème énumérées au paragraphe 4.4.3 pour le redémarrage et tentede poursuivre le traitement du programme au point d’interruption.
Le bloc OB 22 est appelé à cet effet.
Une fois celui-ci traité, le traitement reprend au point d’interruption,par l’instruction suivante.
Au retour de la tension après une coupure secteur, le traitement a lieucomme suit :
•• Le signal BASP (verrouillage des sorties) reste actif jusqu’à la findu cycle restant et n’est désactivé qu’au début du cycle suivant.
•• La mémoire image des sorties est remise à zéro à la fin du cyclerestant.
•• Si le bloc OB 22 n’est pas chargé, la CPU reprend le traitement duprogramme au point d’interruption dès la fin de la procédure de re-démarrage automatique.
Démarrage automatique avecrémanence
Si le mode "Démarrage avec rémanence" est paramétré dans le DX 0,le programme système exécute, après le traitement de l’OB 22, undémarrage (la CPU reprend l’exécution du programme à la premièreinstruction STEP 5 dans l’OB 1). L’état des mémentos, mémentosde couplage et sémaphores et la liste des adresses de blocs (DB 0)sont conservés.
Etat de fonctionnement MISE EN ROUTE
Programmation de la CPU 9484 - 26 C79000-G8577-C848-04
4.3.7Redémarrage automatiqueétendu avec la CPU 948
Le mode de fonctionnement "redémarrage à chaud" (= redémarrageautomatique étendu) indiqué dans la norme CEI 1131, partie 1, est éga-lement possible avec la CPU 948. Il s’agit d’un redémarrage sous lecontrôle d’une horloge externe, aux termes de CEI 1131. Cette horlo-ge permet de surveiller le temps écoulé entre la mise hors tension et laremise sous tension de la CPU. Suivant la valeur de ce temps, un re-démarrage est autorisé ou non.
Le redémarrage automatique étendu de la CPU 948 n’est pas directe-ment intégré dans le programme système. Vous devez donc le pro-grammer vous-même.Les fonctions de base disponibles sont le redémarrage automatique(OB 22) et l’horloge temps réel interne mais sauvegardée par pile.
Programmez le redémarrage automatique étendu de la manièreci-après.
Etat de fonctionne-
ment
Opération / bloc
Marche RUN Sauvegarder régulièrement l’horodateur (date et heure) de l’horloge externe dans descellules de mémoire réservées à cet effet (par exemple, dans des mots de données) :
- à chaque fin de cycle dans l’OB 1
ou
- périodiquement par alarme d’horloge (par exemple, OB 10) si une plus grande précision est nécessaire.
Redémarrageautomatique
OB 22
Calculer la durée de l’interruption :Tinterr = première valeur d’horodatage après retour de tension - dernière valeur d’horo-datage sauvegardée avant coupure de la tension
SI ... ALORS ...
durée d’interruption > valeur maximaleautorisée
- interrompre le redémarrage (instruction STP)
ou
- exécuter un redémarrage modifié
durée d’interruption ≤ valeur maximaleautorisée
poursuivre le redémarrage
Etat de fonctionnement MISE EN ROUTE
Programmation de la CPU 948C79000-G8577-C848-04 4 - 27
4.3.8Interruptions pendant lamise en route
Un programme de mise en route peut être interrompu :
•• en raison d’une coupure secteur sur l’appareil de base (MDT) ousur le châssis d’extension (DPE),
•• par le basculement sur STOP du commutateur de mode, par uneinstruction STOP, par HALT ou PGSTP
•• ou en raison d’une erreur du programme ou d’une défaillance del’équipement (voir le paragraphe 5.5).
Comportement lors d’unemise en route interrompue
Le comportement au démarrage de la CPU 948 obéit aux règles sui-vantes.
En cas d’interruption, le démarrage ou le redémarrage est toujours repris au début.
Le dernier mode de mise en route choisi est toujours valable.Exemple : 1) Coupure secteur (MDT) lors du fonctionnement cyclique
2) Commutateur en position STOP3) Rétablissement de la tension4) Commutateur en position RUNRéaction : la CPU exécute un redémarrage manuel.
Un démarrage interrompu ne peut pas être repris par un redémarrage, mais uniquement par un nouveau démarrage.
Un redémarrage interrompu peut être repris par un démarrage ou un redémarrage.
Comportement de la CPUaprès coupure secteur ousignal DPE
Si un démarrage ou redémarrage est interrompu par une coupuresecteur ou un signal DPE, le comportement de la CPU au retour de latension dépend des modes paramétré et interrompu . Le tableau sui-vant vous donne plus d’informations.
Mode paramétré dans le DX 0
Mode lors de l’interruption
OB dedémarrageinterrompu
Réaction de la CPU
Démarrageautomatique
Démarrage manuel OB 20 La CPU exécute un démarrageautomatique indépendamment desantécédents ; elle appelle l’OB 20 et letraite depuis le début. Le démarrage ouredémarrage commencé, c’est-à-direl’OB 20 ou 21, n’est pas poursuivi.
Redémarrage manuel OB 21
Démarrageautomatique
OB 20
Redémarrage automatique
Démarrage manuel OB 20 Arrêt
Redémarrage manuel OB 21 La CPU exécute un redémarrageautomatique ; elle appelle l’OB 22 et letraite depuis le début. Le redémarragecommencé, c’est-à-dire l’OB 21 ou 22,n’est pas poursuivi.
Redémarrageautomatique
OB 22
Etat de fonctionnement MISE EN ROUTE
Programmation de la CPU 9484 - 28 C79000-G8577-C848-04
4.4 Etat de fonctionnement RUN (MARCHE)
Une fois la mise en route achevée, la CPU passe à l’état de fonctionne-ment RUN ou état de marche. Cet état est caractérisé par les pro-priétés ci-après.
Traitement du programmeutilisateur
Le programme utilisateur dans l’OB 1 est traité de façon cyclique, desparties de programme déclenchées par alarme pouvant toutefois êtreimbriquées.
Temporisations, compteurs,mémoires image du processus
Tous les compteurs et temporisations démarrés dans le programmesont validés. La mémoire image du processus est actualisée cycli-quement.
BASP Le signal BASP (verrouillage des sorties) est désactivé ce qui validetoutes les sorties TOR.
Mémentos de couplage Les mémentos de couplage éventuellement programmés dans le DB 1sont actualisés de manière cyclique.
En mode de marche, il existe les niveaux de traitement de programmesuivants.
Cycle Le programme utilisateur dans l’OB 1 est traité cycliquement.
Alarmes de processus/interruptions
Le traitement du programme utilisateur est déclenché par des alarmes(4 niveaux d’interruption ou 1 niveau d’alarme de processus avec8 sous-niveaux).
Alarmes d’horloge Le traitement du programme utilisateur est déclenché par horloge(9 alarmes d’horloge cycliques, 1 alarme de retardement et 1 alarmed’horloge à heure fixe).
Ces niveaux de traitement se différencient par les points suivants :
•• Ils sont déclenchés par des événements différents.
•• Pour chaque niveau de traitement de programme, il existe un ouplusieurs blocs d’organisation faisant office d’interface utilisateur.
Dans la CPU 948, il est possible de programmer tous les niveaux detraitement simultanément. Le programme système appelle lesdifférents niveaux selon les événements qui se produisent et la prioritédonnée (voir le paragraphe 4.2).
Etat de fonctionnement RUN (MARCHE)
Programmation de la CPU 948C79000-G8577-C848-04 4 - 29
4.4.1Traitement cyclique du pro-gramme
Le traitement cyclique est le mode de traitement normal dans les au-tomates programmables.
Déclenchement Lorsque la CPU a terminé sans erreur le programme de démarrage,elle entame le programme cyclique.
Principe Principe du traitement cyclique (opérations du programme système)
Démarrage
Démarrer la survei l lance du tempsde cycle (armer le chien de garde)
Actual iser les mémentosde couplage d´entrée
Actual iser la mémoire imagedes entrées (MIE)
Appeler le programme ut i l isateurcycl ique (OB 1)
Programme ut i l isateur
autres niveaux de trai tement
de programme
y compris imbr icat ion des
Emettre la mémoire imagedes sort ies (MIS)
Actual iser les mémentos de couplagede sort ie
Opérat ions système, tel les quecharger, suppr imer ou comprimerdes blocs
Figure 4-6 Traitement cyclique du programme
Etat de fonctionnement RUN (MARCHE)
Programmation de la CPU 9484 - 30 C79000-G8577-C848-04
Interface utilisateur OB 1 Lors du traitement cyclique, le bloc d’organisation OB 1 est appelérégulièrement en tant qu’interface utilisateur. Le programme utilisa-teur STEP 5 dans l’OB 1 est traité du début jusqu’à la fin en passantpar tous les appels de bloc programmés. Après exécution des opérati-ons du programme système, la CPU reprend le traitement au débutavec la première instruction STEP 5 dans le bloc OB 1.
Dans le bloc OB 1, vous programmez les appels des blocs de program-me, fonctionnels et séquentiels qui doivent être traités dans le pro-gramme cyclique.
Points d’interruption Le programme cyclique peut être interrompu par :
•• une alarme d’horloge en fin de bloc ou d’instruction,
•• une alarme de processus via l’octet d’entrée EB 0 en fin de bloc,
•• une demande d’interruption (INT A/B/C/D, E, F, G) en fin de blocou d’instruction.
Vous paramétrez le mode d’interruption − aux limites de blocs oud’instructions − dans le bloc de données DX 0 (voir le chapitre 7).
Le programme cyclique peut être interrompu ou complètement aban-donné indépendamment du paramétrage du DX 0 :
•• à l’apparition d’une erreur du programme ou d’une défaillanced’équipement (en fin d’instruction),
•• par action de l’opérateur :- commutateur sur STOP, HALT (en fin d’instruction),- fonction PG en ligne (aux points de contrôle, voir le chapitre 11),
•• par une instruction d’arrêt STS (en fin d’instruction),
•• par une coupure de l’alimentation de l’appareil de base ou duchâssis d’extension (en fin d’instruction).
Etat de fonctionnement RUN (MARCHE)
Programmation de la CPU 948C79000-G8577-C848-04 4 - 31
4.4.2Traitement déclenché paralarme et par horloge
Il existe différents types de traitement de programme déclenché paralarme et par horloge qu’il n’est parfois pas possible de combiner.Vous précisez les types de traitement que vous voulez utiliser lors duparamétrage du bloc de données DX 0 (voir le chapitre 7).
Alarmes de processus viaEB 0
Le mode "Alarmes de processus via l’octet d’entrée EB 0" se caractéri-se par les points suivants :
•• Seul le fonctionnement monoprocesseur est possible.
•• L’imbrication de niveaux de programme prioritaires ne se faitqu’aux limites de blocs.
•• Vous ne pouvez pas utiliser l’alarme de retardement (traitementpar l’OB 6).
•• Vous ne pouvez pas utiliser l’alarme d’horloge à heure fixe (trai-tement par l’OB 9).
Interruptions système Le mode "Interruptions système" se caractérise par les points suivants :
•• Les fonctionnements monoprocesseur et multiprocesseur sontpossibles.
•• L’imbrication de niveaux de programme prioritaires se fait aux li-mites de blocs ou d’instructions.
•• Les alarmes de retardement sont traitées par l’OB 6.
•• Les alarmes d’horloge à heure fixe sont traitées par l’OB 9.
Interruptions du traitementdéclenché par horloge et par alarme
Le traitement de programme déclenché par alarme et par horloge peutêtre interrompu ou complètement abandonné indépendamment duparamétrage du DX 0 :
•• à l’apparition d’une erreur du programme ou d’une défaillanced’équipement (en fin d’instruction),
•• par action de l’opérateur :- commutateur sur STOP, HALT (en fin d’instruction),- fonction PG en ligne (aux points de contrôle, voir le chapitre 11),
•• par une instruction d’arrêt STS (en fin d’instruction),
•• par une coupure de l’alimentation de l’appareil de base ou duchâssis d’extension (en fin d’instruction).
Etat de fonctionnement RUN (MARCHE)
Programmation de la CPU 9484 - 32 C79000-G8577-C848-04
4.4.3Traitement déclenché parhorloge
A ce type de traitement appartiennent l’alarme de retardement, l’alar-me d’horloge à heure fixe et les alarmes d’horloge cycliques.
Toutes ces alarmes ont ceci en commun qu’elles sont déclenchées parhorloge.
Ce traitement de programme s’exécute au niveau "Alarmes d’horloge".
Alarme de retardement Cette alarme est déclenchée une fois selon un temps de retard choisi li-brement de l’ordre des millisecondes. Elle appelle le bloc d’organisati-on OB 6.
Alarme d’horloge à heure fixe Le déclenchement de cette alarme est à caractère unique à une heurefixe ou bien périodique toujours à la même heure. Le bloc d’organisa-tion OB 9 est alors appelé.
Alarmes d’horloge cycliques Ces alarmes sont déclenchées à intervalles fixes (durée fixe entre deuxdémarrages du programme), avec 9 périodes différentes possibles. Achaque alarme d’horloge cyclique est associé un bloc d’organisation(OB 10 à OB 18).
Priorités Le niveau de traitement déclenché par horloge comporte les prioritéssuivantes.
Alarme de retardementAlarme d’horloge cyclique, période 1
Alarme d’horloge cyclique, période 2Alarme d’horloge cyclique, période 3Alarme d’horloge cyclique, période 4Alarme d’horloge cyclique, période 5Alarme d’horloge cyclique, période 6Alarme d’horloge cyclique, période 7Alarme d’horloge cyclique, période 8Alarme d’horloge cyclique, période 9
Alarme d’horloge à heure fixe
OB 6OB 10, période la
plus courteOB 11OB 12OB 13 PrioritéOB 14 croissanteOB 15OB 16OB 17OB 18, période la
plus longueOB 9
NotaLe traitement d’alarme déclenché par horloge dans les OB 6 et 9ne s’exécute que lorsque le paramètre "Alarmes de processus vial’octet d’entrée EB 0" est désactivé (NON) dans le DX 0.Lorsqu’il est activé (valeur par défaut), les alarmes de processuscorrespondantes de l’octet EB 0 sont traitées via l’OB 6 et l’OB 9(voir le paragraphe 4.5.4).
Etat de fonctionnement RUN (MARCHE)
Programmation de la CPU 948C79000-G8577-C848-04 4 - 33
Alarme de retardement L’alarme de retardement de la CPU 948 permet de définir de courts in-tervalles de temps avec une précision de 1 ms. Une fois le temps indi-qué écoulé, le programme système appelle l’OB 6 une fois.
Déclenchement Une alarme de retardement est générée par l’appel du bloc d’organisa-tion de fonction spéciale OB 153 (voir le paragraphe 6.14). Aprèsécoulement du temps de retard paramétré dans l’OB 153, le program-me système interrompt le niveau de traitement en cours et appellel’OB 6 (niveau de traitement de programme "Alarmes d’horloge"). En-suite, le traitement du programme reprend au point d’interruption.
L’alarme de retardement n’est toutefois traitée que si le paramètre"Alarmes de processus via l’octet d’entrée EB 0" est désactivé (NON)dans le bloc de données DX 0.
Interface utilisateur OB 6 L’OB 6 fait office d’interface utilisateur pour une alarme de retarde-ment. Vous y écrivez le programme STEP 5 qui doit être exécuté dansce cas. Si cet OB n’est pas chargé, le traitement du programme n’estpas interrompu.
Interruptions Le niveau "Alarmes d’horloge" a, par défaut, la priorité la plus élevéedes niveaux de base (modifiable dans le DX 0).
Au sein du traitement de programme déclenché par horloge, le traite-ment de l’alarme de retardement est prioritaire.
Ainsi, aucun autre programme utilisateur ne peut interrompre le traite-ment de l’alarme de retardement.
Particularités •• Une alarme de retardement n’est traitée qu’en état de marche(RUN). Les alarmes de retardement se présentant à l’arrêt (STOP),lors d’une coupure secteur ou au démarrage sont rejetées.
•• Une alarme de retardement générée une fois (appel de l’OB 153traité) n’est pas conservée lors du passage à l’arrêt ou de coupurede l’alimentation.
Etat de fonctionnement RUN (MARCHE)
Programmation de la CPU 9484 - 34 C79000-G8577-C848-04
•• La génération d’une nouvelle alarme de retardement − appel del’OB 153 avec de nouveaux paramètres − provoque l’annulationd’une alarme de retardement définie précédemment. En revanche,le traitement d’une alarme de retardement en cours se poursuit.Une seule alarme de retardement est donc valable à un momentdonné.
•• Si une alarme de retardement se présente alors que la précédenten’est pas complètement traitée, la nouvelle alarme est rejetée.L’alarme de retardement ne fait pas l’objet d’un contrôle dutype "erreur de traitement d’alarmes d’horloge".
•• Les blocs d’organisation de fonctions spéciales OB 122 et OB 142permettent d’inhiber ou de retarder le traitement d’alarmes de retar-dement.
Alarme d’horloge à heurefixe
La CPU 948 comporte un horodateur sauvegardé (sauvegarde par lapile du tiroir d’alimentation de l’appareil de base) que vous pouvezgénérer et lire par le biais d’un programme STEP 5. Cet horodateurpermet le traitement temporel d’une partie de programme.
Alors que l’alarme de retardement est adaptée aux phénomènes ra-pides, l’alarme d’horloge à heure fixe convient particulièrement autraitement d’événements uniques ou d’événements se présentantcycliquement à intervalles de temps importants, par exemple toutesles heures, tous les jours ou tous les mois. Lorsque le moment fixé estatteint, le programme système appelle l’OB 9.
Déclenchement Une alarme d’horloge à heure fixe (contrat à heure fixe) est généréepar l’appel du bloc d’organisation de fonction spéciale OB 151 (voirle paragraphe 6.13). Le contrat est traité lorsque le moment définidans l’OB 151 (heure, date) est atteint. Le programme système inter-rompt le traitement de programme en cours et appelle l’OB 9 (niveaude traitement de programme "Alarmes d’horloge"). Ensuite, le traite-ment du programme reprend au point d’interruption.
L’alarme d’horloge à heure fixe n’est toutefois traitée que si le pa-ramètre "Alarmes de processus via l’octet d’entrée EB 0" est désactivé(NON) dans le bloc de données DX 0.
Interface utilisateur OB 9 L’OB 9 fait office d’interface utilisateur pour une alarme d’horloge àheure fixe. Vous y écrivez le programme STEP 5 qui doit être exécutédans ce cas. Si cet OB n’est pas chargé, le traitement du programmen’est pas interrompu.
Etat de fonctionnement RUN (MARCHE)
Programmation de la CPU 948C79000-G8577-C848-04 4 - 35
Interruptions Le niveau "Alarmes d’horloge" a, par défaut, la priorité la plus élevéedes niveaux de base (modifiable dans le DX 0).
Au sein du traitement de programme déclenché par horloge, le traite-ment de l’alarme d’horloge à heure fixe a la priorité la plus basse. Ain-si, il peut être interrompu par le traitement d’une alarme deretardement ou d’une alarme d’horloge cyclique.
Particularités •• Une alarme d’horloge à heure fixe n’est traitée qu’en mode de mar-che (RUN). Les alarmes d’horloge à heure fixe se présentant à l’ar-rêt (STOP), lors d’une coupure secteur ou au démarrage sontrejetées.
•• Une alarme d’horloge à heure fixe générée une fois (appel del’OB 151 traité) est conservée lors d’un redémarrage ou lors d’unecoupure suivie d’un rétablissement de la tension. En revanche, elleest effacée lors d’un démarrage.
•• La génération d’une nouvelle alarme d’horloge à heure fixe − ap-pel de l’OB 151 avec de nouveaux paramètres − provoque l’annu-lation d’une alarme d’horloge à heure fixe définie précédemment.En revanche, le traitement d’une alarme d’horloge à heure fixe encours se poursuit. Une seule alarme d’horloge à heure fixe estdonc valable à un moment donné.
•• Si une alarme d’horloge à heure fixe se présente alors que laprécédente n’est pas complètement traitée, la nouvelle alarme estrejetée. L’alarme d’horloge à heure fixe ne fait pas l’objet d’uncontrôle du type "erreur de traitement d’alarmes d’horloge".
•• Les blocs d’organisation de fonctions spéciales OB 122 et OB 142permettent d’inhiber ou de retarder le traitement d’alarmes d’horlo-ge à heure fixe.
Etat de fonctionnement RUN (MARCHE)
Programmation de la CPU 9484 - 36 C79000-G8577-C848-04
Alarmes d’horlogecycliques
La CPU 948 permet de déclencher 9 programmes périodiquesdifférents, chacun étant appelé cycliquement avec une autre période.
Déclenchement La base de temps pour le traitement d’alarmes d’horloge est, pardéfaut, de 100 ms. Vous pouvez la modifier à l’aide d’un paramètrespécial dans le bloc DX 0 par paliers de 10 ms (base de temps = yy *10 ms, avec 01H ≤ yy ≤ FFH).
Pour la définition de la base de temps, orientez-vous à la durée la pluscourte nécessaire à votre application pour le traitement cyclique.
Grille de périodicité Les alarmes d’horloge cycliques sont traitées selon des grilles de péri-odicité données avec 9 périodes différentes. A chaque période est af-fecté un bloc d’organisation précis. Vous pouvez choisir l’une desdeux grilles de périodicité possibles à l’aide d’un paramètre spécialdans le bloc DX 0.Le tableau suivant présente les deux grilles de périodicité et les blocsde données correspondant aux différentes périodes.
Grille 1 (présélection) Grille 2 Appel de
1 x base de temps 2 x base de temps 5 x base de temps 10 x base de temps 20 x base de temps 50 x base de temps 100 x base de temps 200 x base de temps 500 x base de temps
1 x base de temps 2 x base de temps 4 x base de temps 8 x base de temps 16 x base de temps 32 x base de temps 64 x base de temps 128 x base de temps 256 x base de temps
OB 10OB 11OB 12OB 13OB 14OB 15OB 16OB 17OB 18
NotaLe premier appel d’un OB d’alarme d’horloge après la mise enroute intervient pendant le temps alloué à l’OB considéré.
Si, par exemple, vous avez choisi pour l’OB 18 une périoded’appel de 500 secondes (base de temps choisie dans le DX 0 = 1et grille de périodicité = 1), le premier appel de l’OB 18 après undémarrage intervient après environ 20 secondes. Les appelssuivants auront cependant lieu toutes les 500 secondesexactement.
Tableau 4-5 Grilles de périodicité et périodes des alarmes d’horloge
Etat de fonctionnement RUN (MARCHE)
Programmation de la CPU 948C79000-G8577-C848-04 4 - 37
Interfaces utilisateur OB 10 à OB 18
Lors de l’apparition d’une alarme d’horloge, le bloc d’organisation as-socié est appelé comme interface utilisateur à la limite de bloc oud’instruction suivante.
L’OB 10 contiendra, par exemple, la partie de programme devant êtreinsérée toutes les 100 ms (présélection) dans le traitement cyclique.
Seule l’alarme d’horloge dont le bloc d’organisation est chargé esttraitée. Si aucun des OB 10 à OB 18 n’est chargé, il n’y a pas de traite-ment de programme déclenché par horloge et le traitement cycliquedu programme n’est donc pas interrompu.
D’autre part, un paramètre dans le bloc DX 0 vous permet de désacti-ver le traitement des alarmes d’horloge, pour le test du programme parexemple.
Interruptions Le niveau "Alarmes d’horloge" a, par défaut, la priorité la plus élevéedes niveaux de base (modifiable dans le DX 0).
En raison des priorités au sein du traitement déclenché par horloge, lesinterruptions suivantes peuvent se produire lors du traitement d’unealarme d’horloge cyclique.
•• Le traitement d’une alarme d’horloge cyclique peut être interrom-pu par le traitement d’une alarme de retardement.
•• Les périodes courtes sont prioritaires et peuvent interrompre lespériodes plus longues. Par exemple, l’OB 12 interrompt le traite-ment de l’OB 17.
NotaUn traitement séquentiel sans interruption est possible pour lestrois périodes les plus courtes (OB 10 à OB 12). Si, parexemple, pendant le traitement d’un OB 10, une autre alarmed’horloge pour l’OB 10 apparaît, le traitement en cours del’OB 10 est d’abord mené à bien, puis l’OB 10 est à nouveauappelé. La présence simultanée de plus de trois alarmesd’horloge pour ces trois OB entraîne toutefois une erreur detraitement d’alarmes d’horloge.
Etat de fonctionnement RUN (MARCHE)
Programmation de la CPU 9484 - 38 C79000-G8577-C848-04
Erreur de traitementd’alarmes d’horloge
La CPU 948 distingue deux types d’erreurs de traitement d’alarmesd’horloge.
Type d’erreur/cause Code dans l’ITPILE Réaction de la CPU
Dépassement de la file d’attente lors du traitement d’alarmes d’horloge(collision d’alarmes d’horloge)
- Présence de plus de trois alarmes d’horloge pour les périodes les plus courtes (OB 10 à OB 12)
- Nouvel appel de l’un des autres OB (OB 13 à OB 18) alors que son traitement n’est pas entière-ment achevé
Lors de la lecture de la pile des interruptions, le bit COLAH est marqué d’une croix dans le masque des bits de commande.
Le programme système appelle l’OB 33. Si ce dernier n’est pas chargé, la CPU passe à l’état d’arrêt(STOP).
Dans le mode d’interruption en fin de bloc, le traitement est bloqué par la durée d’exécution d’un bloc dans le programme utilisateur cyclique ; l’exécution de ce bloc dure plus long-temps que la base de temps sélectionnée dans le DX 0.
Lors de la lecture de la pile des interruptions, le bit AHMAS est marqué d’une croix dans le masque des bits de commande.
Le programme système appelle l’OB 33. Si ce dernier n’est pas chargé, il poursuit le traitement.
OB 33 de réaction à l’erreur Vous pouvez programmer dans l’OB 33 la réaction désirée à l’erreurde traitement d’alarmes d’horloge. A l’appel de ce bloc, le programmesystème inscrit un code d’erreur dans l’accumulateur 1-L (bits 0 à 9).Vous trouverez dans le tableau suivant la signification de ces bits(bit = 1).
Bit Signification
0
1
2
Dépassement de la file d’attente pour la période 1 (plus de trois alarmes d’horloge attendent d’être traitées pour l’OB 10)Dépassement de la file d’attente pour la période 2 (plus de trois alarmes d’horloge attendent d’être traitées pour l’OB 11)Dépassement de la file d’attente pour la période 3 (plus de trois alarmes d’horloge attendent d’être traitées pour l’OB 12)
3
4
Dépassement de la file d’attente pour la période 4 (nouvel appel de l’OB 13 alors que le traitement de l’appel précédent n’est pas achevé)Dépassement de la file d’attente pour la période 5 (nouvel appel de l’OB 14 alors que le traitement de l’appel précédent n’est pas achevé)
Tableau 4-6 Code d’erreur de traitement d’alarmes d’horloge : bits dans l’ACCU 1-L
Etat de fonctionnement RUN (MARCHE)
Programmation de la CPU 948C79000-G8577-C848-04 4 - 39
Bit Signification
5
6
7
8
Dépassement de la file d’attente pour la période 6 (nouvel appel de l’OB 15 alors quele traitement de l’appel précédent n’est pas achevé)Dépassement de la file d’attente pour la période 7 (nouvel appel de l’OB 16 alors quele traitement de l’appel précédent n’est pas achevé)Dépassement de la file d’attente pour la période 8 (nouvel appel de l’OB 17 alors quele traitement de l’appel précédent n’est pas achevé)Dépassement de la file d’attente pour la période 9 (nouvel appel de l’OB 18 alors quele traitement de l’appel précédent n’est pas achevé)
9 Alarme d’horloge masquée trop longtemps
A la fin du traitement de l’OB 33, le programme reprend dans l’OBd’alarme d’horloge interrompu.
NotaEn cas d’erreur de traitement d’alarmes d’horloge dans le moded’interruption en fin de bloc, le compteur d’adresse STEP, CAD,ne pointe pas sur le bloc à la fin duquel (instruction BE) l’erreurs’est produite, mais sur le bloc qui a appelé le bloc à l’origine del’erreur (adresse de retour).
Les possibilités de paramétrage du bloc de données DX 0 sont lessuivantes pour le traitement déclenché par horloge (voir lechapitre 7) :- sélection de la base de temps,- sélection de la grille de périodicité,- sélection de la priorité par rapport au traitement de programme déclenché par alarme,- activation/désactivation du traitement d’alarmes d’horloge.
Etat de fonctionnement RUN (MARCHE)
Programmation de la CPU 9484 - 40 C79000-G8577-C848-04
4.4.4Traitement déclenché paralarme
Suivant le mode de fonctionnement choisi, la CPU 948 permet deuxtypes de traitement déclenché par alarme :
•• Alarmes de processuspar l’octet d’entrée EB 0 (8 alarmes au maximum)
•• Interruptionspar les lignes du bus S5 (4 interruptions au maximum)
Alarmes de processus parl’octet d’entrée EB 0
Le traitement des alarmes de processus n’a lieu que si vous n’avez pasmodifié la présélection "Alarmes de processus via l’octet d’entréeEB 0 = OUI" dans le bloc de données DX 0.
Il y a traitement déclenché par alarme de processus quand un change-ment d’état dans l’octet d’entrée EB 0 demande à la CPU d’interrom-pre le traitement de programme en cours et de traiter un programmespécifique.
NotaSi vous avez activé le traitement des alarmes de processus vial’octet EB 0, vous ne disposez pas de l’alarme de retardement, del’alarme d’horloge à heure fixe ni des interruptions système.
Déclenchement Le changement d’état d’un bit dans l’octet d’entrée EB 0 déclenchel’alarme de processus.
Interfaces utilisateur OB 2 à OB 9
A l’apparition d’une alarme de processus, les blocs d’organisation sui-vants sont appelés en tant qu’interfaces utilisateur.
Changement d’état du bit dans l’EB 0 Appel de
E 0.0E 0.1E 0.2E 0.3E 0.4E 0.5E 0.6E 0.7
OB 2OB 3OB 4OB 5OB 6OB 7OB 8OB 9
Tableau 4-7 Interfaces utilisateur pour les alarmes de processus
Etat de fonctionnement RUN (MARCHE)
Programmation de la CPU 948C79000-G8577-C848-04 4 - 41
Vous entrez dans les blocs d’organisation OB 2 à OB 9 la partie devotre programme STEP 5 qui doit être traitée lors de l’apparition del’alarme de processus correspondante via l’octet d’entrée EB 0.Si l’OB concerné n’est pas chargé, le traitement en cours n’est pas in-terrompu et il n’y a pas de traitement d’alarme.
NotaSi, lors de l’accès de la CPU à l’octet EB 0 en fonctionnementnormal, la carte de périphérie n’émet pas de signal d’acquitte-ment, le programme système constate un retard d’acquittement(ACQ) et appelle l’interface utilisateur OB 28. Si ce dernier n’estpas chargé, la CPU se met en état d’arrêt.
Priorité des alarmes deprocessus
Par défaut, le niveau "Alarmes de processus" a une priorité moins éle-vée que le niveau "Alarmes d’horloge". Vous pouvez toutefois chan-ger cet état de choses par un paramètre dans le bloc de données DX 0.
Au sein du niveau de traitement des alarmes de processus, les prioritéssont organisées comme suit :
E 0.0E 0.1E 0.2E 0.3E 0.4E 0.5E 0.6E 0.7
OB 2OB 3OB 4 PrioritéOB 5 croissanteOB 6OB 7OB 8OB 9
Aucun traitement imbriqué n’est possible pour les alarmes de proces-sus. Si, à la fin du traitement d’un OB d’alarme de processus, d’autresalarmes de processus sont en instance, le programme système appelleet traite l’OB correspondant à l’alarme prioritaire suivante parmi cel-les présentes.Le niveau de traitement des alarmes de processus n’est abandonné quelorsque l’ensemble des changements d’état dans l’octet EB 0 a été prisen compte et que les blocs d’organisation correspondants ont été en-tièrement traités.
NotaUn traitement d’alarme de processus ne peut pas être inter-rompu par un autre traitement d’alarme de processus.
Etat de fonctionnement RUN (MARCHE)
Programmation de la CPU 9484 - 42 C79000-G8577-C848-04
Interruptions par les lignesdu bus S5
Il y a traitement déclenché par interruption quand un signal du bus S5,issu d’une carte de périphérie interruptive (par exemple, entrées TOR,IP, CP), demande à la CPU d’interrompre le traitement de programmeen cours et de traiter un programme spécifique.
NotaSi vous désirez recourir au traitement des interruptions par leslignes du bus S5 dans votre CPU, vous devez sélectionner"Alarmes de processus via l’octet d’entrée EB 0 = NON" dans lebloc DX 0 et activer les différentes interruptions par unparamétrage du DX 0.Vous devez en outre valider les interruptions par les cavaliers surla carte (cf. annexe et bibliographie /2/).Sur la CPU 948, vous pouvez, contrairement à la CPU 946/947,activer au choix le mode d’interruption aux limites de blocs ouaux limites d’instructions dans le DX 0.
Réglage des cavaliers pourles interruptions système
Vous disposez de 4 interruptions système pour le traitement de pro-gramme commandé par interruption de la CPU 948 :
- INT A/B/C/D (selon l’emplacement d’enfichage de la CPU ; voir manuel système, bibliographie /2/),
- INT E,- INT F
et- INT G.
Vous devez valider les interruptions que vous désirez utiliser à l’aidedes cavaliers joints. Le socle des cavaliers se situe sur la carte mère,au-dessus de la fente pour la carte à mémoire (cf. annexe 1).
Etat de fonctionnement RUN (MARCHE)
Programmation de la CPU 948C79000-G8577-C848-04 4 - 43
Déclenchement L’état actif sur une ligne d’interruption du bus S5 déclenche l’interrup-tion. Le déclenchement est effectué sur le niveau bas du signal d’inter-ruption. Pour acquitter l’interruption, reportez-vous à la notice demise en oeuvre de la carte qui a déclenché l’interruption.
Interfaces utilisateur OB 2 àOB 5
A l’apparition d’une interruption, les blocs d’organisation suivantssont appelés en tant qu’interfaces utilisateur.
Interruption déclenchée par Appel de
signal d’interruption X (A, B, C ou D, suivant l’emplacement)signal d’interruption Esignal d’interruption Fsignal d’interruption G
OB 2
OB 3OB 4OB 5
Par exemple, pour le signal d’interruption F, le programme systèmeappelle l’OB 4.
Si l’OB concerné n’est pas chargé, le traitement en cours n’est pas in-terrompu et il n’y a pas de traitement d’interruption.
Priorité des interruptions Par défaut, le niveau "Alarmes de processus" a une priorité moins éle-vée que le niveau "Alarmes d’horloge". Vous pouvez toutefois chan-ger cet état de choses par un paramètre dans le bloc de données DX 0.
Au sein du niveau de traitement des interruptions, les priorités sont or-ganisées comme suit.
•• En présence de plusieurs interruptions, les blocs d’organisationcorrespondants sont appelés dans l’ordre de priorité que vous avezparamétré dans le bloc DX 0 (priorité élémentaire).
Les priorités des quatre interruptions peuvent s’échelonner entre 1 et 5.
Tableau 4-8 Interfaces utilisateur pour les interruptions
Etat de fonctionnement RUN (MARCHE)
Programmation de la CPU 9484 - 44 C79000-G8577-C848-04
Si, à la fin du traitement d’un OB d’interruption, d’autres interruptionssont en instance, le programme système appelle et traite l’OB corres-pondant à l’interruption prioritaire suivante parmi celles présentes.Le niveau de traitement des interruptions n’est abandonné que lorsquetous les états actifs (niveau bas) d’une ligne d’interruption sur le busS5 ont été pris en compte et que les blocs d’organisation correspon-dants ont été entièrement traités.
NotaUn traitement déclenché par interruption ne peut pas êtreinterrompu par une nouvelle apparition de la même interruption.
Inhibition du traitementd’alarmes
Un programme déclenché par alarme est inséré dans le programme cy-clique en fin de bloc ou en fin d’instruction STEP 5. Cette interruptionpeut avoir un effet négatif quand une partie du programme cycliquedoit être traitée dans un intervalle de temps donné (par exemple, pouratteindre un temps de réaction déterminé) ou quand une suited’instructions ne doit pas être interrompue (par exemple, lors de lalecture ou de l’écriture d’un ensemble de valeurs).
Lorsqu’une partie de programme ne doit pas être interrompue par untraitement d’alarme, vous disposez des possibilités de programmationsuivantes.
Interruption en fin de bloc •• Programmez la partie de programme concernée de manière à cequ’elle ne contienne pas de changement de bloc ; elle ne peut alorspas être interrompue.
•• Utilisez l’OB 122 qui permet d’inhiber le traitement des alarmesde processus qui se présentent sur une certaine partie du pro-gramme. Notez cependant que les alarmes d’horloge sont égale-ment inhibées (voir le paragraphe 6.3).
•• Utilisez l’instruction AS de STEP 5 (inhibition des alarmes deprocessus). L’instruction AF (validation des alarmes de processus)permet de réactiver le traitement d’alarme.
Entre ces deux instructions, aucun traitement d’alarme de proces-sus n’est effectué et la partie de programme ainsi délimitée nepeut pas être interrompue par d’éventuelles alarmes de processus.
Vous ne pouvez utiliser les instructions AS et AF que dans desblocs fonctionnels (jeu d’opérations étendu, voir le paragraphe3.5.4). En outre, elles ne valent que pour les alarmes de processusvia l’octet d’entrée EB 0.
NotaL’instruction AF reste sans effet lorsque les alarmes de processussont inhibées par le bloc OB 122 ou retardées par le bloc OB 142.
Etat de fonctionnement RUN (MARCHE)
Programmation de la CPU 948C79000-G8577-C848-04 4 - 45
Interruption en fin d’instruction •• Ecrivez la partie de programme qui ne doit pas être interrompuedans un OB d’interruption en lui affectant la priorité la plus élevée.
•• Utilisez l’OB 122 qui inhibe le traitement des interruptions et desalarmes d’horloge (voir le paragraphe 6.3).
•• Avec les instructions LIM et SIM (opérations système, voir le para-graphe 3.5.4), vous pouvez lire ou définir les 32 bits du mot demasquage des interruptions.
Dans le bloc DX 0, vous pouvez également inhiber globalement le trai-tement des alarmes ou désactiver chaque interruption de manièresélective. Cela n’est toutefois possible qu’après un démarrage, car leDX 0 n’est exploité que dans ce cas (voir le chapitre 7).
Temps de réaction Le temps de réaction à une alarme de processus ou à une interruptiondépend du temps de traitement d’un bloc (en cas d’interruption aux li-mites de blocs) ou du temps d’exécution d’une instruction STEP 5 (encas d’interruption aux limites d’instructions). Toutefois, si des alarmesd’horloge prioritaires sont présentes au moment de l’interruption duprogramme cyclique, le programme déclenché par alarme ne seratraité que lorsque le traitement de toutes les alarmes d’horloge en at-tente sera terminé.
Le temps maximal de réaction entre l’apparition et le traitement d’unealarme de processus ou d’une interruption s’accroît alors de la duréede traitement des alarmes d’horloge prioritaires.
Niveaux de traitement deprogramme et mémentos
Lorsque votre programme utilisateur comporte non seulement une par-tie cyclique, mais également un traitement déclenché par alarme oupar horloge, vos mémentos risquent d’être écrasés.C’est le cas si les différents niveaux de traitement de programme ac-cèdent aux mêmes zones de mémentos.
Pour cette raison, vous devez soit affecter explicitement les mémentosaux différents niveaux de traitement de programme, soit sauvegarder,au début d’un traitement déclenché par horloge ou par alarme, lesétats des mémentos dans un bloc de données et les restaurer à la fin dece traitement. Il en est de même pour le redémarrage.
Afin d’éviter que des mémentos ne soient écrasés, vous pouvez dansla plupart des cas faire appel aux mémentos S, disponibles en nombresuffisamment important. Il est alors inutile de sauvegarder les mémen-tos à condition de les affecter explicitement aux différents niveaux detraitement de programme.
Etat de fonctionnement RUN (MARCHE)
Programmation de la CPU 9484 - 46 C79000-G8577-C848-04
Sommaire du chapitre 5
5.1 Erreurs fréquentes dans le programme utilisateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 4
5.2 Informations d’erreur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 5
5.3 Marche à suivre pour la recherche d’erreur. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 8
5.4 Bits de commande et pile des interruptions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 9
5.4.1 Bits de commande . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 105.4.2 Pile des interruptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 145.4.3 Exemple de diagnostic d’erreur au moyen de l’ITPILE . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 19
5.5 Traitement des erreurs à l’aide de blocs d’organisation . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 20
5.6 Origine des erreurs et réactions aux erreurs de la CPU . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 23
5.6.1 OB 19 : appel d’un bloc de code non chargé (BL INEX) . . . . . . . . . . . . . . . . . . . . . . . 5 - 245.6.2 OB 19 : appel d’un bloc de données non chargé (DB INEX) . . . . . . . . . . . . . . . . . . . . 5 - 245.6.3 OB 23/24, OB 28/29 : retard d’acquittement (ACQ) . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 255.6.4 OB 25 : erreur d’adressage (DAD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 265.6.5 OB 26 : erreur de temps de cycle (CYC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 275.6.6 OB 27 : erreur de substitution (SUB) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 285.6.7 OB 30 : erreur de parité et ACQ pour la mémoire utilisateur (PARI) . . . . . . . . . . . . . . 5 - 285.6.8 OB 32 : erreur de transfert et de chargement (DTC) . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 295.6.9 OB 33 : erreur de traitement d’alarmes d’horloge (COLAH/AHMAS). . . . . . . . . . . . . 5 - 305.6.10 OB 34 : erreur pour E DB/EX DX (ER.EDBX) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 325.6.11 OB 35 : erreur de communication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 325.6.12 OB 36 : erreur lors de l’autotest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 33
5.7 Autotest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 34
5.7.1 Généralités. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 345.7.2 Description des fonctions de test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 355.7.3 Sélections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 375.7.4 Traitement des erreurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 38
5Traitement des interruptionset des erreurs
Programmation de la CPU 948C79000-G8577-C848-04 5 - 1
Sommaire
Programmation de la CPU 9485 - 2 C79000-G8577-C848-04
5Traitement des interruptions et des erreurs
Le présent chapitre indique comment procéder pour éviter des erreursde conception et de programmation dans STEP 5.Vous y trouverez des renseignements sur les moyens que le program-me système met à votre disposition pour le diagnostic et une éventuel-le réaction aux erreurs ainsi que sur les blocs dans lesquels vouspouvez programmer des réactions à des erreurs déterminées.Vous apprendrez également comment activer les fonctions systèmeintégrées pour effectuer un autotest de la CPU 948.
Programmation de la CPU 948C79000-G8577-C848-04 5 - 3
5.1 Erreurs fréquentes dans le programme utilisateur
Le programme système peut constater un fonctionnement erroné de laCPU, une erreur dans le traitement du programme système ou lesconséquences d’une programmation erronée.
La liste suivante contient les erreurs qui apparaissent le plus souventlors de la mise en service du programme utilisateur, celles-ci pouvantêtre facilement évitées lors de l’élaboration du programme.Pour cela, il faut tenir compte des points suivants lors de la concepti-on, de l’écriture et de la mise en service de votre programme STEP 5.
•• Lors de la déclaration des adresses d’octets d’entrées et de sorties,il faut que les cartes correspondant à ces adresses soient enfichéesdans l’appareil de base ou dans le châssis d’extension.
•• Assurez-vous que les opérandes sont munis des paramètres cor-rects.
•• Procédez avec précaution lors de la modification ultérieure deblocs fonctionnels. Assurez-vous que les blocs fonctionnelsFB/FX sont paramétrés avec les opérandes corrects et que tous lesopérandes effectifs sont déclarés.
•• Les sorties, les mémentos, les temporisations et les compteurs nedoivent pas être traités à plusieurs endroits du programme par desopérations contradictoires.
•• Les temporisations ne devraient être interrogées qu’une seule fois parcycle (par exemple, U T1).
•• Veillez à ce que tous les blocs de données appelés soient disponi-bles et de longueur suffisante.
•• Vérifiez que tous les blocs appelés sont effectivement dans lamémoire.
•• Les mémentos banalisés doivent être sauvegardés par les program-mes déclenchés par alarme ou horloge, puis à nouveau chargés à lafin du traitement lorsqu’ils sont utilisés dans d’autres blocs (par ex-emple, FB standard).
Erreurs fréquentes dans le programme utilisateur
Programmation de la CPU 9485 - 4 C79000-G8577-C848-04
5.2 Informations d’erreur
Si une erreur apparaît à la mise en route ou pendant le traitement cycli-que du programme utilisateur, différentes sources d’informations sont dis-ponibles pour identifier celle-ci, à savoir :
•• diodes électroluminescentes (DEL) en face avant de la CPU,
•• pile des interruptions ITPILE et bits de commande,
•• pile des blocs BLPILE.
Les paragraphes suivants indiquent les moyens disponibles pour ex-ploiter ces diverses sources d’information et comment utiliser l’infor-mation d’erreur en vue de l’analyse d’une erreur.
DEL en face avant de la CPU
En cas d’arrêt intempestif, les DEL en face avant donnent une pre-mière indication quant à l’origine de l’erreur :
Indication de la DEL Signification
La DEL STOP est en feu fixe. Les différents types d’indicationde la DEL STOP renseignent surles causes d’interruption oud’erreur.Reportez-vous à ce sujet aux explications du paragraphe 4.1.
La DEL STOP clignote lentement.
La DEL STOP clignote rapidement.
La DEL SYS FAULT est en feu fixe.
La DEL ADF est en feu fixe. Erreur d’adressage (DAD)
La DEL QVZ est en feu fixe. Retard d’acquittement (ACQ)
La DEL ZYK est en feu fixe. Dépassement du temps de cycle (CYC)
Informations d’erreur
Programmation de la CPU 948C79000-G8577-C848-04 5 - 5
Lecture de la pile desinterruptions
La fonction PG en ligne de lecture de l’ITPILE présente l’état des bitsde commande de la CPU et le contenu de la pile des interruptions(ITPILE).
Lors du passage en STOP, le programme système inscrit dans la piledes interruptions toutes les informations nécessaires pour effectuer unredémarrage, à savoir :
•• le contenu des registres,
•• le contenu des accumulateurs,
•• les compteurs d’adresse STEP (CAD)
et
•• les indicateurs de résultat.
Selon la localisation de l’interruption ayant provoqué le passage enSTOP, les informations affichées concernent des blocs utilisateur oudes blocs du programme système (OB 0).
Les informations contenues dans l’ITPILE constituent une aideprécieuse pour le diagnostic d’erreur.
Avant l’affichage du contenu de la pile des interruptions, les états desbits de commande sont visualisés. Ceux-ci indiquent l’état de fon-ctionnement actuel, certaines caractéristiques de la CPU et du pro-gramme utilisateur et donnent des indications supplémentaires sur lacause de l’erreur.
La fonction de lecture de l’ITPILE peut être utilisée à l’arrêt, à la miseen route et à l’état de marche (RUN). Dans les états de fonctionne-ment "mise en route" et RUN, vous n’obtenez cependant que des infor-mations sur les bits de commande ; le contenu de la pile des interrupti-ons n’est pas affiché.
Vous trouverez une description détaillée de la signification des bits decommande ainsi que de la structure de la pile des interruptions au para-graphe 5.4.
Lecture de la pile des blocs Par la fonction PG en ligne de lecture de la BLPILE, il est possibled’obtenir à l’état STOP le contenu de la pile des blocs (BLPILE ; voir"Imbrication des blocs" au paragraphe 3.2).
Dans la pile des blocs se trouvent tous les blocs (blocs du programmeutilisateur et bloc d’organisation OB 0 du programme système) quiont été appelés les uns après les autres jusqu’au passage à l’arrêt etdont l’exécution n’est pas terminée au moment du passage en STOP.Etant donné le mode de remplissage de la pile des blocs, la ligne laplus élevée contient le bloc qui a appelé le bloc erroné.
Informations d’erreur
Programmation de la CPU 9485 - 6 C79000-G8577-C848-04
Informations dans la piledes blocs
La ligne la plus élevée donne les informations suivantes :
Information Signification
No de bloc Type et numéro du bloc qui a appelé le bloc erroné
Adr. bloc Adresse absolue de début de ce bloc dans la mémoire utilisateur
Adresse retour Adresse absolue de la première opération STEP 5 de ce bloc dans la mémoire utilisateur
Adr. rel. Adresse relative (= différence "Adresse retour -Adr. bloc") de l’instruction suivante à exécuterdans ce bloc Les adresses relatives peuvent être visualisées àla console, en mode de fonctionnement"verrouillage de la saisie"/interrupteur à clé etavec S5-DOS à partir de la version IV par latouche de fonction "Adresses".
No DB Numéro du dernier bloc de données ouvert dans ce bloc
Adr. DB Adresse absolue de début de ce bloc de données (adresse du mot de données DW 0) dans la mémoire de programme
Exemple
Exploitation de la pile des blocs
No de bloc Adr. bloc Adresse retour Adr. rel. No DB Adr. DB
PB 3PB 2PB 1OB 1OB 66 1
OB 63OB 62OB 61
00090000500004000010E2B10E0FC0E0490E0010
98514111E2C40E12FAE0CBEE0273
00008000010000100001001300033A0082E00263
00000000
1 Les blocs appelés avant l’OB 1 sont des blocs internes au programme système (la pile des blocs est organisée de façon chronologique).
Dans cet exemple, le bloc PB 3 a appelé le bloc erroné à l’adresse relative"00008 - 1 = 00007".Lors du saut dans le bloc erroné, aucun bloc de données n’était ouvert.
Informations d’erreur
Programmation de la CPU 948C79000-G8577-C848-04 5 - 7
5.3 Marche à suivre pour la recherche d’erreur
En cas d’arrêt intempestif de la CPU, utilisez lors de la recherche de lacause de l’erreur toutes les informations mises à votre disposition.
Etape Action
1 Vérifiez l’état des DEL STOP et SYSFAULT ainsique des DEL d’erreur en face avant. Vous pourrezen déduire certaines causes d’erreur et d’inter-ruption.
2 A l’aide de la fonction PG en ligne de lecture de lapile des interruptions, analysez l’état des bits decommande et du contenu de l’ITPILE. Vousobtiendrez de nouvelles informations sur lalocalisation et la cause de l’erreur.
3 Sélectionnez la fonction PG en ligne de lecture dela pile des blocs : la première ligne de cette pilecontient des informations sur le bloc ayant appeléle bloc à l’origine de l’erreur.
4 Vous pouvez lire la donnée système BS 75(cf. paragraphe 8.3.4) pour en tirer des informa-tions détaillées concernant l’erreur.
Marche à suivre pour la recherche d’erreur
Programmation de la CPU 9485 - 8 C79000-G8577-C848-04
5.4 Bits de commande et pile des interruptions
Par les fonctions en ligne "Informations AP" et "ITPILE", il est possi-ble d’analyser, à l’aide de la PG, l’état de fonctionnement, les ca-ractéristiques de la CPU et du programme utilisateur de même que lescauses éventuelles des erreurs et des interruptions.
NotaL’affichage des bits de commande s’obtient dans tous les étatsde fonctionnement. L’affichage de la pile des interruptions n’estpossible qu’à l’arrêt.
•• Les bits de commande indiquent l’état de fonctionnement encours ou précédent ainsi que la cause d’erreur.Si plusieurs erreurs se sont produites, toutes les erreurs sontrepérées dans les bits de commande.
•• La pile des interruptions (ITPILE) précise les adresses d’interrupti-on, l’état des indicateurs et les contenus des accumulateurs à l’en-droit de l’interruption, ainsi que les causes d’erreur.Si plusieurs interruptions se sont produites, une pile des interrupti-ons à plusieurs niveaux (5 au maximum) est constituée :
Profondeur 01 = dernière cause d’interruption
Profondeur 02 = avant-dernière cause d’interruption, etc.
Un débordement de la pile des interruptions provoque le passageimmédiat en arrêt total. Un démarrage par coupure et rétablisse-ment de la tension secteur est alors nécessaire pour la remise enroute.
La signification des abréviations des bits de commande et de la piledes interruptions est indiquée plus loin.
NotaLe texte affiché à l’écran de votre console de programmationdépend du logiciel PG utilisé et peut, par conséquent, différer dela représentation donnée ci-après.Toutefois, la description des informations d’écran de ce guidereste valable.
Bits de commande et pile des interruptions
Programmation de la CPU 948C79000-G8577-C848-04 5 - 9
5.4.1Bits de commande Lors de l’affichage de la pile des interruptions sur l’écran de la conso-
le, l’état des bits de commande est visualisé en première page (voir fig-ure 5-1).
NotaLe masque de la pile des interruptions (figure 5-1) est celui quevous obtenez avec les logiciels STEP 5/ST, V6.3, ou STEP 5/MT,V6.0, avec respectivement la "Disquette delta CPU 948". Dansles versions antérieures du logiciel, la désignation de certains bitsde commande est différente. Leur signification correspondtoutefois à la description faite dans le tableau de la page suivante.
Vous pouvez afficher les bits de commande dans tous les états de fon-ctionnement. Ils renseignent sur l’état en cours ou précédent de la CPU,ainsi que sur certaines caractéristiques de la CPU et du programme utilisa-teur STEP 5.
Les bits de commande se trouvant dans la rubrique "ID d’erreurs" serapportent à des erreurs pouvant apparaître à la mise en route (par ex-emple, lors du premier démarrage) et en état de marche RUN (par ex-emple, lors du traitement de programme déclenché par horloge). Siplusieurs erreurs se sont produites, toutes les erreurs apparues sont si-gnalées dans les bits de commande.
Bits de commande
Descript. système :
Cause arrêt :
ID de démarrage :
ID d’erreurs :
OCT.ENT
TEST
PGSTP
INTPROG
X
DEM EFFX
XREDASEL
ACQ INI
ERR.I2
ERR.DX0
SECX
INT.BLC
HALT
INT.SYS
RED EFF
DEMASEL
PAR INI
ER.RAMS
ER.MODE
BATT
INT.INSX
STP
DEMINAD
RAZ EFF
DEMMSEL
IDBL ER
ERRMIND
ER.EDBX
MONO
CM ENF
STS
ERR.DEM
DEM ADM
IDFBLER
DB1INEX
ACQ INC
MULTI
ISTOP
ERR.SYS
RED ADM
ERR.CM
DX0INEX
COLAH
SYNCHR
FIN P/P
RAZNEC
CTR.MOD
ERR.DB1
DB0 MOD
Figure 5-1 Exemple de la 1ère page d’écran de l’affichage de l’ITPILE : bits de commande
Bits de commande et pile des interruptions
Programmation de la CPU 9485 - 10 C79000-G8577-C848-04
Les tableaux suivants donnent la signification de chaque bit.
Description du système
Bit de commande
Signification
OCT.ENT L’octet d’entrée EB 0 (alarmes de processus) est dispo-nible : la carte d’entrées TOR ayant l’adresse "0" étaitenfichée lors du dernier démarrage et avait émis sonacquittement.
SEC L’automate comporte une pile de sauvegarde centrale.
BATT Pile de sauvegarde non prête dans l’appareil de base(BAT)
MONO Fonctionnement monoprocesseur
MULTI Fonctionnement multiprocesseur
SYNCHR En fonctionnement multiprocesseur, le démarrage des CPU est synchronisé.
TEST Mode de test
INT.BLC Sélection "Interruptions possibles en fin de bloc" dans leDX 0
INT.INS Sélection "Interruptions possibles en fin d’instruction"dans le DX 0
CM ENF Carte à mémoire enfichée
Cause de l’arrêt (voir BS 7)
Bit de commande
Signification
PGSTP Arrêt dû à une opération à la PG
HALT Arrêt en multiprocesseura) commutateur du coordinateur sur STOP
oub) arrêt dû à l’instruction de mise à l’arrêt du pro-
gramme système si, lors d’une erreur, le bloc d’organisation de réaction à l’erreur correspon-dant n’est pas chargé.
STS Arrêt dû à l’instruction STS de STEP 5 (après exécution de l’instruction)
ISTOP Arrêt car commutateur de mode en position STOP
Tableau 5-1 Signification des bits de commande "description du système"
Tableau 5-2 Signification des bits de commande "cause de l’arrêt"
Bits de commande et pile des interruptions
Programmation de la CPU 948C79000-G8577-C848-04 5 - 11
Cause de l’arrêt (voir BS 7)
Bit de commande
Signification
Suite du tableau 5-2
FIN P/P Arrêt dû à la fonction console de fin de contrôle pas à pas
INTPROG Arrêt dû au programme utilisateur
INT.SYS Arrêt dû au programme système (redémarrage possible)
DEMINAD Arrêt dû à un mode de mise en route inadmissible
ERR. DEM Arrêt dû à une erreur dans le bloc de mise en route
ERR.SYS Arrêt dû à une erreur système (éventuellement due à uneerreur utilisateur, par exemple écrasement de la RAMsystème lors d’un transfert par blocs, etc.) Lorsqu’une erreur système est signalée, un code d’er-reur hexadécimal à 4 chiffres apparaît en plus au bas del’écran.Reportez-vous au chapitre 8, zone BS 75.
Identificateurs de mise en route (voir BS 8)
Bit de commande
Signification
DEM EFF Un démarrage a été effectué en dernier.
RED EFF Un redémarrage a été effectué en dernier.
RAZ EFF Un effacement général a été effectué ou est en cours(actif).
DEM ADM Un démarrage peut être effectué.
RED ADM Un redémarrage peut être effectué.
RAZ NEC Un effacement général est nécessaire.
REDASEL Un redémarrage automatique est sélectionné.
DEMASEL Un démarrage automatique est sélectionné.
DEMMSEL Le démarrage manuel est sélectionné.
Tableau 5-3 Signification des bits de commande "ID de mise en route"
Bits de commande et pile des interruptions
Programmation de la CPU 9485 - 12 C79000-G8577-C848-04
Identificateurs d’erreurs
Bits de commande
Signification
ACQ INI Retard d’acquittement à l’initialisation
PAR INI Erreur de parité à l’initialisation
IDBL ER Indicatif de bloc erroné
IDFBLER Indicatif de fin de bloc erroné
ERR.CM Carte à mémoire enfichée incorrecte
CTR.MOD La mémoire utilisateur interne est plus petite que le contenu de la carte à mémoire.
ERR.I2 Erreur sur la seconde interface
ER.RAMS Erreur dans la RAM système
ERRMIND Erreur dans le mot indicateur d’interruptions
DB1INEX Il manque le DB 1 en fonctionnement multiprocesseur.
DX0INEX Il manque le DB 0 en fonctionnement multiprocesseur.
ERR.DB1 Erreur dans le DB 1
ERR.DX0 Erreur dans le DX 0
ER.MODE Alarmes de processus EB 0 non autorisées en fonction-nement multiprocesseur
ER.EDBX Erreur dans les instructions E DB, EX DX de STEP 5
ACQ INC Test de retard d’acquittement incorrect
COLAH Erreur de traitement d’alarmes d’horloge : dépassementde la file d’attente (collision d’alarmes d’horloge)
DB0 MOD DB 0 modifié depuis le dernier démarrage d’oùredémarrage impossible.
Tableau 5-4 Signification des bits de commande "ID d’erreurs"
Bits de commande et pile des interruptions
Programmation de la CPU 948C79000-G8577-C848-04 5 - 13
5.4.2Pile des interruptions Lorsque la CPU se trouve en STOP, l’écran de la console affiche
d’abord les bits de commande puis, lorsque vous avez appuyé sur latouche de validation, la pile des interruptions. Lors du passage enSTOP, le programme système y reporte toutes les informations quisont nécessaires à un redémarrage.
Lors du diagnostic d’erreur, la pile des interruptions renseigne sur lanature de l’erreur et l’endroit du programme où elle s’est produite.
Si une seule erreur est à l’origine de l’arrêt, l’écran n’affiche qu’un ni-veau d’information ITPILE. Si plusieurs erreurs sont apparues, il y aautant de niveaux ITPILE que d’erreurs (Prof. : 01, Prof. : 02,etc.). Dans la rubrique "Origine interrup", une seule erreur est cochéepar niveau.
En présence de plusieurs erreurs, l’erreur apparue immédiatementavant le passage à l’état STOP est indiquée au niveau "Prof. : 01".
La figure 5-2 montre un exemple d’affichage de la pile des interruptions.
Pile des interruptions
Prof. : 01
Reg.ins :Ptr PBL :
de page :Numéro
Parenth. :ACCU1 : 0000 31BA
1205EDEFF
00FDNP1 000
ACCU2 :
CAD (nou) :PB no :Adr.rel :CAD (anc) :NP2 000 NP3 000
0000 0005
000B39
00013000B2
ACCU3 :
Adr.DB :DB no :Reg.DBL :
MMII :NP4 000 NP5 000 NP6 000
0004 0005
00000
09DF3FBF
0000
ACCU4 :
Adr.BA :OB no :Reg.BS :MEII :
0004 0005
00108
00000FFFFFFFF
1
Affich. résultat :
Origine interrup : BL INEX
MDT
STS
DB INEX
ACQ
AHMAS
DTC
OVFL
DAD
DPE
SUB
PARI
HALT
OVFLMEM
P.BL>
CYC
OU
P.IT>
STOP
RLG
FL 0
ETATX X
X
FL 1 1e ?
Figure 5-2 Exemple d’une page d’écran de l’affichage de la pile des interruptions
Bits de commande et pile des interruptions
Programmation de la CPU 9485 - 14 C79000-G8577-C848-04
Explication des affichagesde la pile des interruptions
Prof. Niveau d’information de la pile des interruptions en cas d’imbricationd’erreurs :
Prof. 01 = dernière cause d’erreur,Prof. 02 = avant-dernière cause d’erreur......Prof. 05 = ...... (profondeur maximale)
Informations sur lalocalisation des erreurs
Le tableau suivant explique les indications de l’ITPILE relatives à lalocalisation de l’erreur. Elles permettent de déterminer l’instruction duprogramme utilisateur ayant provoqué la mise à l’arrêt de la CPU.
Informations sur la localisation de l’erreur
Indication Signification
Reg.ins Registre d’instruction :Il contient le code machine (premier mot) de la dernière instruction traitée avant l’interruption du traitement de ce niveaude programme.
CAD (nou) Compteur d’adresse STEP (nouveau) :Il contient l’adresse absolue en mémoire de programme de la prochaine instruction à traiter. En cas de redémarrage, le traite-ment est poursuivi à cette instruction.
Adr.DB Adresse de début absolue (DW 0) du dernier bloc de données ouvert dans la mémoire du programme (0000 quand aucun bloc de données n’a été ouvert).
Adr.BA Adresse absolue en mémoire de programmede la prochaine instruction à traiter dans ledernier bloc appelé.
Ptr PBL Pointeur de la pile des blocs :Il contient l’adresse relative de 20 bits de la dernière entrée dans la pile des blocs (toujours Exxxx).
PB no(selon le typePB, OB ...)
Type et numéro du dernier bloc traité
Tableau 5-5 Signification des indications de l’ITPILE pour la localisationde l’erreur
Bits de commande et pile des interruptions
Programmation de la CPU 948C79000-G8577-C848-04 5 - 15
Informations sur la localisation de l’erreur
Indication Signification
Suite du tableau 5-5
DB no Numéro du dernier bloc de données ouvert
OB no(selon le typeOB, PB ...)
Type et numéro du dernier bloc appelant
Adr.rel Compteur d’adresse relative STEP :Il contient l’adresse relative (par référence à l’adresse de début du bloc) de la pro-chaine instruction à exécuter dans le dernier bloc traité.
Reg.DBL Longueur du dernier bloc de données ouvert
Reg.BS Contenu du registre d’adresse de base avant lepassage à l’arrêt
Numéro de page Numéro de la dernière page sélectionnée(les accès au pages se rapportent à celle-ci − pour plus d’informations sur l’accès aux pages, reportez-vous au chapitre 9)
CAD (anc) Compteur d’adresse STEP (ancien) :Il contient l’adresse absolue en mémoire de programme de la dernière instruction traitée avant l’interruption du traitement à ce niveau de programme ; en cas d’erreur, CAD (anc) indique exactement l’instruc-tion ayant occasionné celle-ci.
MMII Mot de masquage des indicateurs d’interruption :
Le MMII indique toutes les causes d’interruption survenues dont le traitement n’est pas encore terminé.
MEII Mot d’effacement des indicateursd’interruption
Parenth. Nombre de niveaux : "NPx abc" avec x = 1 à 7 niveauxa = OU (voir indicateurs d’opérations
sur bits)b = RLG (résultat logique ; voir indicateurs
d’opérations sur bits)c = 1 : U(c = 0 : O(
ACCU1 àACCU4
Contenu des registres de calcul au moment de l’interruption
Bits de commande et pile des interruptions
Programmation de la CPU 9485 - 16 C79000-G8577-C848-04
Affich. résultat Reportez-vous au paragraphe 3.5.
Origine interrup Les abréviations suivantes (codes de la pile des interruptions) correspon-dent aux principales origines d’interruption.
Origine de l’interruption
Code Signification (OB appelé en réaction à l’erreur)
BL INEX Un bloc appelé est inexistant (OB 19).
DB INEX Un bloc de données appelé est inexistant (OB 19).
DTC Erreur de chargement ou de transfert (OB 32)
SUB Erreur de substitution (OB 27) :Une instruction STEP 5 traitée ne peut pas être substituée.
P.BL> Débordement de la pile des blocs :Profondeur d’imbrication trop grande ; démarrage nécessaire
P.IT> Débordement de la pile des interruptions :Profondeur d’imbrication trop grande ; mise hors/sous tension puis démarrage nécessaires
MDT Manque de tension d’alimentation dans l’appareil de base
ACQ Retard d’acquittement (OB 23/OB 24/OB 28/OB 29)
DAD Erreur d’adressage des entrées/sorties TOR avec mémoire image (OB 25)
PARI Erreur de parité (OB 30)
CYC Dépassement du temps de cycle (OB 26)
STOP Mise à l’arrêt par basculement du commutateur demode de fonctionnement sur STOP
STS Mise à l’arrêt par l’opération STS de STEP 5 (aprèsexécution de l’instruction)
AHMAS Erreur de traitement d’alarmes d’horloge/matériel(OB 33) :
Alarme d’horloge masquée trop longtemps
Tableau 5-6 Codes de l’ITPILE (origine de l’interruption)
Bits de commande et pile des interruptions
Programmation de la CPU 948C79000-G8577-C848-04 5 - 17
Origine de l’interruption
Code Signification (OB appelé en réaction à l’erreur)
Suite du tableau 5-6
DPE Périphérie non disponible = coupure de tension dans le châssis d’extension
La suppression d’un signal DPE statique est toujours suivie de l’appel de l’OB 22 (redémarrage automatique).
HALT Arrêt en fonctionnement multiprocesseur :a) commutateur du coordinateur sur STOPb) Une autre CPU est en STOP.
Bits de commande et pile des interruptions
Programmation de la CPU 9485 - 18 C79000-G8577-C848-04
5.4.3Exemple de diagnostic d’er-reur au moyen de l’ITPILE
La figure 5-3 illustre la structure de l’ITPILE avec les interruptions quise sont produites.
- Le niveau de traitement de programme "Cycle" ( OB 1) est interrompu. - Le niveau de traitement de programme "Interruption" est ensuite activé et l’ OB 3 traité.- En réponse à une alarme d’horloge, le niveau "Interruption" est abandonné, le niveau "Alarme d’horloge" activé et l’ OB 13 traité. - Une erreur d’adressage conduit à l’activation du niveau DAD et au traite- ment de l’ OB 25 . Dans le programme de traitement des erreurs, l’utilisa- teur a programmé une instruction de mise en STOP (STS) : la CPU interrompt le traitement du programme.
Quatre niveaux de traitement de programme différents ont été interrompusavant la mise en STOP complète de la CPU. L’ITPILE éditée sur la PG présentedonc quatre niveaux de profondeur , dont le premier (niveau de profondeur 01)contient l’identification du dernier niveau de traitement de programme inter-rompu (DAD). Vous pouvez ensuite passer aux autres niveaux jusqu’au niveau04 de l’ITPILE. Ce dernier représente le niveau de traitement de programme"Cycle" qui a été interrompu en premier .
STS
DAD
STS
X
X
Profondeur 04
Niveaux de traitement de programme Pile des interruptions
Profondeur 03
Profondeur 02
Profondeur 01
Cycle
Alarmed’horloge
Interruption
DAD
OB 1
OB 3
OB 13
OB 25
Figure 5-3 Exemple d’exploitation de l’ITPILE
Bits de commande et pile des interruptions
Programmation de la CPU 948C79000-G8577-C848-04 5 - 19
5.5 Traitement des erreurs à l’aide de blocs d’organisation
Lorsque le programme système reconnaît une erreur donnée, il appellele bloc d’organisation associé à cette erreur. Il est possible de définirle comportement de la CPU en programmant ce bloc d’organisationde manière appropriée.Suivant la programmation de ce bloc d’organisation, vous pouvez :
•• poursuivre le traitement normal,
•• mettre la CPU en STOP
et
•• exécuter un programme d’erreur spécifique.
Il existe des blocs d’organisation pour les erreurs suivantes.
Cause de l’erreur Appel de Réaction en cas d’OBnon programmé
Appel d’un bloc non chargé (BL INEX) OB 19 aucune
Ouverture d’un bloc de données DB/DX non chargé (DB INEX) OB 19 Arrêt
Retard d’acquittement dans le programme utilisateur lors de l’accès à des cartes de périphérie (ACQ)
OB 23 aucune
Retard d’acquittement lors de l’actualisation de la mémoire imageet du transfert de mémentos de couplage (ACQ)
OB 24 aucune
Erreur d’adressage (DAD) OB 25 Arrêt 1
Dépassement de temps de cycle (CYC) OB 26 Arrêt
Erreur de substitution (SUB) OB 27 Arrêt
Retard d’acquittement pour l’octet d’entrée EB 0 (alarmes de processus ; ACQ)
OB 28 Arrêt
Retard d’acquittement pour la périphérie décentralisée (zoned’adressage étendue ; ACQ)
OB 29 aucune
Erreur de parité et retard d’acquittement pour la mémoireutilisateur (PARI)
OB 30 Arrêt
Erreur de chargement ou de transfert (DTC) OB 32 Arrêt
Erreur de traitement d’alarmes d’horloge :a) collision d’alarmes d’horloge (bit de commande COLAH)b) alarme d’horloge masquée trop longtemps (AHMAS)
OB 33Arrêt
aucune
1 Ceci n’est valable que si l’erreur d’adressage n’est pas inhibée par l’instruction AFS de STEP 5.
Tableau 5-7 Blocs d’organisation appelés lors de l’apparition d’erreurs
Traitement des erreurs à l’aide de blocs d’organisation
Programmation de la CPU 9485 - 20 C79000-G8577-C848-04
Cause de l’erreur Appel de Réaction en cas d’OBnon programmé
Suite du tableau 5-7
Erreur lors de l’instruction E DB/EX DX de STEP 5(bit de commande ER.EDBX)
OB 34 Arrêt
Erreur durant l’autotest (voir paragraphe 5.7) OB 36 aucune
Réaction lorsque le blocd’organisation n’est paschargé
a) Aucune réaction ; pas d’interruption du traitement cyclique
Si un retard d’acquittement survient et que ni l’OB 23 ni l’OB 24 ne sont chargés, le traitement cyclique n’est pas interrompu comme décrit dans le tableau précédent. Il n’y a pas de réaction de la CPU.Si la CPU doit se mettre à l’arrêt dans le cas d’un retard d’acquittement, le bloc d’organisation correspondant (par exemple, OB 23 pour ACQ) doit contenir une instruction d’arrêt (STP pour arrêt en fin de cycle) et se terminer par l’instruction BE.
Exemple pour l’OB 23: Un retard d’acquittement (ACQ) a eu lieu.::STP Le traitement cyclique est interrompu.:BE La CPU se met à l’arrêt.
b) Réaction : la CPU se met à l’arrêt .
A l’apparition d’une erreur correspondante – par exemple, une erreur de durée de cycle ou une erreurde chargement/transfert – la CPU se met immédiatement à l’arrêt si les blocs d’organisation correspon-dants ne sont pas chargés.
Si, exceptionnellement – par exemple, lors de la mise en service – l’une ou l’autre erreur ne doit pasinterrompre le traitement cyclique, il suffit d’une instruction de fin de bloc dans le bloc d’organisationcorrespondant.
Exemple pour l’OB 25: Une erreur d’adressage (DAD) a eu lieu.::BE Le traitement cyclique est poursuivi, la CPU ne se met pas à l’arrêt.
Traitement des erreurs à l’aide de blocs d’organisation
Programmation de la CPU 948C79000-G8577-C848-04 5 - 21
Interruptions lors du traite-ment des blocs d’organisationde réaction aux erreurs
Après l’appel d’un bloc d’organisation par le programme système, leprogramme utilisateur qui s’y trouve est exécuté.L’apparition d’une nouvelle erreur pendant le traitement de ce blocd’organisation provoque, comme lors du traitement cyclique, une in-terruption à la limite d’instruction suivante et l’appel du bloc d’organi-sation correspondant.
Les blocs d’organisation sont traités dans l’ordre de leur appel.
NotaOn peut imbriquer au maximum 5 blocs d’organisation deréaction aux erreurs. S’il y a plus de 5 erreurs, la pile desinterruptions déborde et la CPU se met en arrêt total.
Traitement des erreurs à l’aide de blocs d’organisation
Programmation de la CPU 9485 - 22 C79000-G8577-C848-04
5.6 Origine des erreurs et réactions aux erreurs de la CPU
En état de marche RUN, certaines erreurs peuvent provoquer l’inter-ruption aux limites d’instructions du programme cyclique ou d’un pro-gramme déclenché par horloge ou alarme.
Lors de l’initialisation et pendant la mise en route, l’apparition d’uneerreur provoque également l’interruption du programme de mise enroute et la mise à l’arrêt de la CPU ou l’appel du bloc d’organisationprévu dans ce cas. L’apparition d’une erreur pendant la mise en routeest traitée de la même manière que pendant le traitement cyclique.
La réaction diffère selon la cause de l’interruption :
•• Passage en STOP immédiat de la CPU, sans appel du bloc d’orga-nisation de réaction à l’erreur (par exemple, MDT → arrêt total,P.IT> → arrêt total, DPE → arrêt partiel)
•• Avant le passage en STOP, le programme système appelle un OBde réaction aux erreurs que vous pouvez programmer pourempêcher – selon le type d’erreur – la mise à l’arrêt de la CPU(par exemple, ACQ/EB 0 → OB 28, DAD → OB 25).
En cas d’erreur, tenez compte des identificateurs d’erreurs dans lesbits de commande de même que de l’origine de l’interruption dans lapile des interruptions.
Les causes d’erreur possibles sont traitées plus en détail dans les para-graphes suivants.
Origine des erreurs et réactions aux erreurs de la CPU
Programmation de la CPU 948C79000-G8577-C848-04 5 - 23
5.6.1OB 19 : appel d’un bloc decode non chargé (BL INEX)
Le programme système reconnaît une erreur lorsque le programme uti-lisateur fait appel à un bloc non disponible. Cela est valable pour tousles blocs de code quel que soit le mode d’appel, conditionnel ou incon-ditionnel.
Lors de l’appel d’un bloc de code non chargé dans le programme utili-sateur, le programme système appelle le bloc d’organisation OB 19 sicelui-ci est chargé. Dans ce bloc, il est possible de définir le comporte-ment qu’aura alors la CPU.
Si, lors de l’appel d’un bloc non chargé, le bloc OB 19 n’est pasprogrammé, le programme système poursuit le traitement du pro-gramme STEP 5 interrompu par l’opération suivante.
5.6.2OB 19 : appel d’un blocde données non chargé(DB INEX)
Si le programme utilisateur fait appel à un bloc de données DB ou DXnon disponible en mémoire ou non valable, le programme système re-connaît une erreur et appelle le bloc OB 19. Si ce dernier n’est paschargé, la CPU se met à l’arrêt. La valeur "0" est inscrite dans les regi-stres DBA et DBL.
NotaL’OB 19 est appelé aussi bien lorsqu’un bloc de code que lorsqu’un bloc de données n’est pas chargé.La lecture de la donnée système BS 75 par le programme STEP 5 permet d’identifier le type du bloc manquant :- contenu de BS 75 pour BL INEX : 0101H,- contenu de BS 75 pour DB INEX : 0904H.
Origine des erreurs et réactions aux erreurs de la CPU
Programmation de la CPU 9485 - 24 C79000-G8577-C848-04
5.6.3OB 23/24, OB 28/29 :retard d’acquittement (ACQ)
Il y a retard d’aquittement lorsque, après l’accès en lecture ou en écri-ture à une zone de mémoire adressable, cette dernière ne renvoie pasle signal d’acquittement (Ready) en l’espace d’un temps donné, sur-veillé par le matériel. Un retard d’acquittement peut être dû, par ex-emple, à une défaillance sur la carte ou au retrait de celle-ci durant lefonctionnement.
Les retards d’acquittement suivants provoquent l’interruption du pro-gramme utilisateur, le passage au traitement d’erreur par le program-me système et l’appel du bloc d’organisation correspondant (s’il estchargé).
OB 23 ACQ lors de l’accès direct à la périphérie
Cause de l’erreur Réaction à l’erreur
Retard d’acquittement dans le programme utilisateur lors de l’accès direct par le bus S5 à une IP, au COR ou à une carte de périphérie (par exemple avec instructions de chargement et de transfert "L/T P..." ou "L/T Q...")
Si l’OB 23 n’est pas chargé, le programme système poursuit le traitement du programme utilisa-teur.
OB 24
Cause de l’erreur Réaction à l’erreur
Retard d’acquittement lors de l’actualisation de la mémoire image des entrées/sorties ou lors du transfert des mémentos de couplage
Si l’OB 24 n’est pas chargé, le programme système poursuit le traitement du programme utilisa-teur.
Augmentation du tempsd’exécution
Lors de l’appel de l’OB 23 ou de l’OB 24, le retard d’acquittementaugmente, en cas de poursuite de traitement, le temps nécessaire àl’exécution de l’instruction STEP 5 qui est à l’origine de l’erreur :
augmentation du temps = temps de surveillance d’acquittement +temps de traitement d’erreur + éventuellement temps de traitement dubloc d’organisation correspondant.
Origine des erreurs et réactions aux erreurs de la CPU
Programmation de la CPU 948C79000-G8577-C848-04 5 - 25
OB 28
Cause de l’erreur Réaction à l’erreur
Retard d’acquittement pourl’octet d’entrée EB 0 (alarmes de processus)
Si l’OB 28 n’est pas chargé, la CPU se met à l’arrêt.
OB 29
Cause de l’erreur Réaction à l’erreur
Retard d’acquittement pour la périphérie décentralisée dans les zones d’adressage
- F 0000H à F EFFFH - F F200H à F FFFFH
Si l’OB 29 n’est pas chargé, le programme système poursuit le traitement du programme utilisa-teur.
Adresse de l’erreur Lorsqu’il y a retard d’acquittement, le programme système inscritl’adresse de l’erreur dans la zone des données système (voir chapit-re 8).
BS Contenu Adresse
68 Adresse d’erreur de poids fort E F044H
69 Adresse d’erreur de poids faible E F045H
5.6.4OB 25 : erreur d’adressage(DAD)
Il y a erreur d’adressage lorsqu’une opération STEP 5 sollicite une en-trée/sortie de la mémoire image alors que, au moment du dernierdémarrage, aucune carte de périphérie n’était affectée à cette entrée ousortie (carte non enfichée, défectueuse ou non déclarée dans le bloc dedonnées DB 1 de la CPU).
L’opération STEP 5 ayant occasionné l’erreur d’adressage est traitéeen totalité : pour une instruction d’opération sur bits, le bit de lamémoire image est appelé et combiné ou mis à "1" ou à "0". Demême, les opérations de chargement et de transfert sont exécutées.Une poursuite du traitement peut cependant conduire à des réactionserronées ou non désirées.
Origine des erreurs et réactions aux erreurs de la CPU
Programmation de la CPU 9485 - 26 C79000-G8577-C848-04
Lors de l’apparition d’une erreur d’adressage, le traitement du pro-gramme utilisateur est interrompu et le programme système appelle lebloc OB 25. Après le traitement du programme contenu dans l’OB 25,le programme interrompu est poursuivi à l’opération suivante.Si le bloc OB 25 n’est pas chargé, la CPU se met en STOP lors del’apparition d’une erreur d’adressage.
La surveillance de l’erreur d’adressage peut être inhibée pour certai-nes parties ou pour la totalité du programme au moyen de l’instructionAFS de STEP 5 et revalidée par AFF (voir paragraphe 3.5.4 ou la listedes opérations).
5.6.5OB 26 : erreur de temps decycle (CYC)
Le temps de cycle correspond à la durée de traitement entre deuxOB 1. Il comprend la durée totale de traitement du programme cy-clique, interruptions, traitement des alarmes et opérations du program-me système comprises. Un dépassement du temps de cycle réglé dansla CPU peut, par exemple, provenir d’une programmation erronée(boucle de programme).
NotaIl est extrêmement rare qu’une erreur matérielle soit la caused’une erreur de temps de cycle. Les erreurs se situent générale-ment dans le programme utilisateur ou surviennent lorsqu’il n’y apas concordance entre les programmes et la surveillance du tempsde cycle.
Quand le temps de cycle est dépassé, le programme système inter-rompt le traitement du programme utilisateur et appelle le bloc d’orga-nisation OB 26, si ce dernier est chargé. La surveillance du temps decycle repart de zéro (réarmement du chien de garde). Si le temps decycle expire à nouveau avant la fin du traitement de l’OB 26, la CPUse met à l’arrêt.
Si le bloc OB 26 n’est pas chargé, la CPU se met en STOP.
Le temps de cycle est variable (10 à 2550 ms) et peut être prolongépar redémarrage de sa surveillance (voir ci-dessus). Vous pouvez déterminer individuellement la surveillance du temps decycle par un paramétrage dans le bloc DX 0 (voir chapitre 7) ou par laprogrammation du bloc OB 31. Par défaut, cette valeur est de 200 ms.
Dans le programme cyclique, la surveillance du temps de cycle peutêtre prolongée à l’aide de la fonction spéciale OB 222.
Origine des erreurs et réactions aux erreurs de la CPU
Programmation de la CPU 948C79000-G8577-C848-04 5 - 27
5.6.6OB 27 : erreur desubstitution (SUB)
Lorsque, dans un bloc fonctionnel, une opération avec opérandes for-mels doit être exécutée, la CPU remplace, pendant le traitement duprogramme utilisateur, ces opérandes formels par les opérandes ef-fectifs figurant dans l’appel du bloc fonctionnel.
Si la CPU détecte une substitution non autorisée, le programme sy-stème interrompt le traitement du programme utilisateur et appelle lebloc d’organisation OB 27, si ce dernier est chargé. Si l’OB 27 n’estpas chargé, la CPU se met à l’arrêt.
Outre les substitutions non autorisées, une erreur de substitution(SUB) est signalée dans les cas suivants :
•• Code d’opération non autorisé
•• Particularité :L’utilisateur ne doit pas ouvrir les blocs de données DB 0 etDB 1. Une instruction A DB 0 ou A DB 1 est considérée par laCPU comme une erreur de substitution. La valeur "0" est inscritedans les registres DBA et DBL.
5.6.7OB 30 : erreur de parité etACQ pour la mémoire utili-sateur (PARI)
La mémoire utilisateur est pourvue d’un bit de parité dont l’état estvérifié par le programme système à chaque accès à cette mémoire.Une erreur d’état du bit de parité conduit à une erreur de parité.
Le programme système appelle le bloc d’organisation OB 30. Si cedernier n’est pas chargé, la CPU se met en STOP.
La réaction est identique lors d’un retard d’acquittement dans lamémoire utilisateur.
PARI lors de l’accès à la RAMdu système d’exploitation
Si une erreur de parité apparaît lors de l’accès à la RAM du systèmed’exploitation, le programme système n’appelle pas l’OB 30 et laCPU passe en arrêt total .
Origine des erreurs et réactions aux erreurs de la CPU
Programmation de la CPU 9485 - 28 C79000-G8577-C848-04
Adresse d’erreur En cas d’erreur de parité ou de retard d’acquittement, le programmesystème inscrit l’adresse de l’erreur dans la zone des données système(voir chapitre 8) :
BS Contenu Adresse
70 Adresse d’erreur de poids fort E F046H
71 Adresse d’erreur de poids faible E F047H
5.6.8OB 32 : erreur de transfertet de chargement (DTC)
Une erreur de chargement et de transfert est signalée dans les cas sui-vants.
•• Lors de l’accès à des données dans des blocs DB ou DX, la CPUcompare la longueur du bloc de données ouvert avec celle inscritedans le paramètre de l’instruction de chargement ou de transfert. Si ce paramètre provoque un dépassement de la longueur du blocde données, l’instruction de chargement ou de transfert n’est pasexécutée. De cette manière, on évite l’écrasement accidentel dedonnées dans la mémoire par des instructions de transfert. Enprésence d’erreurs de chargement, le contenu des accumulateurs re-ste conservé.
•• Il y a également erreur de transfert ou de chargement lors de l’ac-cès à un mot de données non disponible pour le test ou la modifica-tion d’un bit.
•• Une erreur de transfert est également détectée lorsque vous ac-cédez à un mot de données avant qu’un bloc de données ne soit ou-vert (avec A DBn ou AX DXn).
•• Par ailleurs, une erreur de chargement ou de transfert peut être oc-casionnée par un accès à la mémoire en adressage absolu via le re-gistre de base BR ou par un dépassement de limites dans le cas desinstructions TNW, TXW et TXB de STEP 5.
Lorsqu’il reconnaît une erreur de transfert ou de chargement, le pro-gramme système appelle le bloc d’organisation OB 32, si ce dernierest chargé. L’instruction ayant occasionné l’erreur n’est pas exécutée.Si le bloc OB 32 n’est pas chargé, la CPU passe à l’arrêt.
Origine des erreurs et réactions aux erreurs de la CPU
Programmation de la CPU 948C79000-G8577-C848-04 5 - 29
5.6.9OB 33 : erreur de traitementd’alarmes d’horloge(COLAH/AHMAS)
Un traitement déclenché par horloge (alarmes d’horloge) est réalisépar les blocs d’organisation OB 6, OB 9 et OB 10 à OB 18.
La CPU 948 distingue les types d’erreurs de traitement d’alarmesd’horloge suivants.
Collision d’alarmes d’horloge Cause :
Dépassement de la file d’attente des alarmes d’horloge :
•• Plus de 3 alarmes d’horloge doivent être traitées pour l’une destrois périodes les plus courtes (OB 10 à 12).
ou
•• L’un des OB 13 à 18 est de nouveau appelé alors que le traitementde l’appel précédent n’est pas encore terminé.
Réaction :
Le programme système appelle comme interface utilisateur l’OB 33,si celui-ci est chargé.Vous pouvez y programmer la réaction à une telle erreur.
Si l’OB 33 n’est pas chargé, la CPU se met en STOP.
Affichage de la fonction ITPILE sur la PG :
Dans le masque des bits de commande, le bit COLAH est marquéd’une croix.
Alarme d’horloge masquéetrop longtemps
Cause :
L’alarme d’horloge est masquée trop longtemps (si interruptions enfin de bloc/alarmes de processus).
Cette erreur se rapporte à la base de temps des alarmes d’horloge et àla durée d’exécution d’un bloc du programme cyclique : il y a erreurde traitement d’alarmes d’horloge dès que l’exécution d’un bloc deprogramme cyclique dure plus longtemps que la fréquence réglée.
Origine des erreurs et réactions aux erreurs de la CPU
Programmation de la CPU 9485 - 30 C79000-G8577-C848-04
Réaction :
Le programme système appelle comme interface utilisateur l’OB 33,si celui-ci est chargé.Vous pouvez y programmer la réaction à une telle erreur.
Si l’OB 33 n’est pas chargé, la CPU poursuit le traitement du program-me.
Affichage de la fonction "ITPILE" sur la PG :
Dans le masque des bits de commande, le bit "AHMAS" est marquéd’une croix.
Lors de l’appel du bloc OB 33, le programme système inscrit le codede l’erreur d’alarme d’horloge dans l’ACCU 1-L (voir paragra-phe 4.5.3).
NotaEn mode "Alarmes de processus octet d’entrée 0" et "Interrup-tions possibles en fin de bloc", le compteur d’adresse STEP(CAD) ne pointe pas sur le bloc à la fin duquel (instruction BE)s’est produite l’erreur d’horloge, mais sur le bloc qui a appeléle bloc à l’origine de l’erreur (adresse de retour).
Tant que la cause d’une erreur n’a pas été supprimée, c’est-à-diretant que l’erreur subsiste ou réapparaît en cas de nouveau traite-ment de l’instruction STEP 5 correspondante, par exemple àchaque cycle, l’appel du bloc d’organisation correspondant estréitéré.
La durée du traitement des erreurs par le programme système et letemps d’exécution des blocs d’organisation de réaction auxerreurs peuvent entraîner un allongement non négligeable dutemps de cycle.
Origine des erreurs et réactions aux erreurs de la CPU
Programmation de la CPU 948C79000-G8577-C848-04 5 - 31
5.6.10OB 34 : erreur pour E DB/EX DX(ER.EDBX) Causes :
•• Un numéro de bloc non autorisé a été indiqué dans l’instructionE DB/EX DX (numéro d’un bloc réservé, numéro supérieur à 255).
•• Une longueur de bloc incorrecte a été indiquée dans l’instructionE DB/EX DX (longueur > 4091).
•• Lors de l’appel de l’instruction E DB/EX DX, la place disponibledans la mémoire utilisateur est insuffisante.
Réaction :
Le programme système appelle l’OB 34, si celui-ci est chargé.Si l’OB 34 n’est pas chargé, la CPU se met à l’arrêt.
5.6.11OB 35 : erreur decommunication
Si des perturbations apparaissent sur la deuxième interface série pourle couplage calculateur RK 512 ou la transmission de données avecles procédures 3964/3964R, le driver ouvert ou SINEC L1, le pro-gramme système appelle le bloc d’organisation OB 35 et dépose desinformations plus détaillées sur les erreurs apparues dans l’accumula-teur 1.
Réaction si OB 35 non chargé Si vous n’avez pas programmé d’OB 35, le programme système neréagit pas et la CPU ne se met pas à l’arrêt.
Informations d’erreur dansl’ACCU 1
Le programme système vérifie toutes les 100 ms si des erreurs de com-munication sont survenues sur la deuxième interface série. Si c’est lecas, il dépose des informations d’erreur dans l’accumulateur 1.
On peut transmettre les codes d’erreur pour trois causes de perturbati-on au maximum lors de l’appel de l’OB 35. Un code de débordementspécial signale s’il y a plus de trois causes d’erreur.
Origine des erreurs et réactions aux erreurs de la CPU
Programmation de la CPU 9485 - 32 C79000-G8577-C848-04
Structure des informationsd’erreur dans l’ACCU 1
31 24 23 18 15 8 7 0
ACCU 1 0 0 0 0 E D B 0 code d’erreur1
code d’erreur2
code d’erreur3
E = 0 Aucune erreur n’est inscrite dans la zone d’erreurs.= 1 Des erreurs sont inscrites dans la zone d’erreurs.
D = 0 Il n’y a pas de débordement d’erreur (trois inscriptions au maximum).
= 1 Il y a débordement d’erreur (plus de trois inscriptions).
B = 0 Pas d’interruption BREAK sur l’interface= 1 Interruption BREAK sur l’interface
Interruption BREAK En cas d’interruption BREAK sur l’interface, l’OB 35 n’est appeléqu’au début de l’état BREAK.
Codes d’erreur 1 à 3 Trois codes d’erreur relatifs aux perturbations détectées sur l’interfacesont inscrits ici, dans l’ordre de leur reconnaissance par le système.
Signification des codesd’erreur
Vous trouverez la signification des codes d’erreur ainsi que des infor-mations plus détaillées sur le traitement des erreurs d’interface dans lemanuel "Communication" (bibliographie /13/).
5.6.12OB 36 : erreur lors del’autotest
L’OB 36 est appelé lorsque l’un des sous-programmes d’autotestdécèle une erreur. De plus amples renseignements sont donnés au para-graphe 5.7.
Origine des erreurs et réactions aux erreurs de la CPU
Programmation de la CPU 948C79000-G8577-C848-04 5 - 33
5.7 Autotest
5.7.1Généralités Le programme système de la CPU 948 contient des sous-programmes
d’autotest intégrés.
Activation et désactivation Le programme utilisateur permet l’activation et la désactivation indivi-duelles des fonctions de l’autotest via les bits de la donnée systèmeBS 137.
Tranche horaire Pour réduire la charge que représente l’autotest en état de marcheRUN, seule une partie de l’autotest est exécutée dans le cycle (tranchehoraire). La durée impartie à cet effet est définissable dans la donnéesystème BS 136 (cf. également le paragraphe 5.7.3).
Objet des tests Les sous-programmes d’autotest permettent l’exécution des tests sui-vants :
Tester Quand ?
la mémoire utilisateur lors de l’effacement général
le signal BASP(verrouillage des sorties)
à l’arrêt
l’horloge matérielle lors d’un démarrage
la surveillance du temps de cycle lors de la mise en route
les lignes d’adresses cycliquement en état de marcheRUN
le code du programme système(total de contrôle)
cycliquement en état de marcheRUN
le code des blocs de code STEP 5 dans la mémoire utilisateur(total de contrôle)
cycliquement en état de marcheRUN
Autotest
Programmation de la CPU 9485 - 34 C79000-G8577-C848-04
5.7.2Description des fonctionsde test
Test de la mémoire utilisateur Lors de l’effacement général, sans tranche horaire
Un test de la mémoire utilisateur est exécuté lors de l’effacementgénéral. Il vérifie la mémoire utilisateur de même que les zonesd’octets des mémentos et mémoires image.
Lors du test, l’ensemble de la zone (y compris la zone des octets) estd’abord initialisé avec un profil binaire de test, puis la concordance enest vérifiée. A la fin du test, des zéros sont inscrits dans cette zone.
NotaLa durée du test de la mémoire utilisateur est relativementimportante :
- 5 s environ pour la CPU 948-1 (640 Ko),- 22 s environ pour la CPU 948-2 (1 664 Ko).
Test du signal BASP A l’arrêt, sans tranche horaire
Ce test permet de vérifier si un signal BASP est émis par la CPU. Cet-te fonction de test se déroule durant la boucle d’arrêt. Le signal BASPest donc lu cycliquement.En cas d’erreur, une entrée est déposée dans la mémoire tampon deserreurs. Lors de la mise en route suivante, l’OB 36 (erreur lors de l’au-totest) est appelé. Si l’OB 36 est chargé et si une instruction STP demise à l’arrêt y a été programmée, la mise en route est interrompue.Dans le cas contraire, la CPU passe en mode de fonctionnement cycli-que.
Test de l’horloge matérielle A la mise en route, mais uniquement lors d’un démarrage de laCPU ; sans tranche horaire
Ce test d’une durée de 1 seconde est effectué avant appel de l’OB 20.
L’heure définie reste inchangée ; les contrats à heure fixe (alarmesd’horloge à heure fixe, OB 9) sont par contre effacés.
Autotest
Programmation de la CPU 948C79000-G8577-C848-04 5 - 35
Test de la surveillance dutemps de cycle
Lors de la mise en route, sans tranche horaire
Cette fonction de test permet de vérifier la surveillance du temps decycle durant la phase de mise en route. Pour ce faire, le temps de cycleest réglé à la valeur la plus petite (20 ms). Il faut ensuite attendre quel’erreur de cycle apparaisse dans une boucle de programme.
Test des lignes d’adresses Cycliquement en état de marche RUN, avec tranche horaire
Ce test permet de constater des interruptions de même que des courts-circuits dans les lignes d’adresses. Des profils binaires sont envoyéscycliquement sur les lignes d’adresses, puis à nouveau lus et comparés.
Test du code du programmesystème
Cycliquement en état de marche RUN, avec tranche horaire
Ce test vérifie le contenu du système d’exploitation de la CPU dans laRAM interne (zone de vérification D 0000H à E 7FFDH).
La vérification s’effectue par addition du contenu de la zone de vérifi-cation et comparaison avec le total de contrôle dans l’EPROM.
Test du code des blocs decode STEP 5
Cycliquement en état de marche RUN, avec tranche horaire
Le total de contrôle de chaque bloc de code STEP 5 valable est vérifié.Lorsqu’une carte à mémoire est enfichée, le total de contrôle des blocsde code de la CPU 948 est créé après l’effacement général et après lacopie du contenu de la carte à mémoire dans la mémoire utilisateur in-terne. Les blocs de code chargés ultérieurement sont également véri-fiés.
NotaLe test du code des blocs STEP 5 décèle toujours une erreurlorsqu’un ou plusieurs blocs de code ont été modifiés de façondynamique.La modification est possible sur la PG. Ce faisant, le total decontrôle du programme système de la CPU 948 est créé.
Autotest
Programmation de la CPU 9485 - 36 C79000-G8577-C848-04
5.7.3Sélections
Calcul et définition dunombre de trancheshoraires
La durée de traitement des fonctions d’autotest est répartie en trancheshoraires appelées une fois par cycle et dont le nombre peut être choisi.Vous pouvez ainsi accroître la durée requise par cycle pour le traite-ment des fonctions d’autotest.
Calcul Vous devez tout d’abord estimer le temps que vous pouvez réserver àl’autotest durant le cycle : la durée d’une tranche horaire étant d’envi-ron 500 µs, l’autotest nécessite 500 µs par cycle.
Après avoir estimé le temps disponible, vous pouvez en déduire lenombre de tranches horaires de 500 µs.
Définition Vous pouvez régler le nombre de tranches horaires dans le mot dedonnées système BS 136 (16 bits). La valeur présélectionnée est 1tranche horaire (valeur minimale). Vous pouvez choisir au maximum10 tranches horaires (ce qui correspond à une charge de 5 ms par cy-cle).
La valeur indiquée dans le mot de données système BS 136 corres-pond au nombre suivant de tranches horaires :
BS 136 = 0 ou 1 1 tranche horaireBS 136 = 2 2 tranches horairesBS 136 = 3 3 tranches horairesetc.
Activation et désactivationdes tests
Vous pouvez activer – ou désactiver – les différents tests, dans un blocde mise en route par exemple, en mettant les bits correspondants à "1"– ou à "0" – dans la donnée système BS 137.
NotaAprès l’effacement général d’une CPU nouvellement enfichée,toutes les fonctions de test sont désactivées.Lors de l’effacement général suivant, seules les fonctions de testdevant être effectuées lors de l’effacement général sont activées.Toutes les autres sont désactivées. Cela signifie que vous ne pouvez vérifier la mémoire utilisateurd’une CPU nouvellement enfichée qu’en activant la fonction detest dans la donnée système BS 137 après l’effacement général,puis en effectuant à nouveau un effacement général.
Autotest
Programmation de la CPU 948C79000-G8577-C848-04 5 - 37
Structure du mot de donnéessystème BS 137
Fonction de test Bit
Vérification du code du programme système 2
Vérification du code des blocs STEP 5 dans la mémoire utilisateur
5
Vérification des lignes d’adresses 7
Vérification de l’horloge 10
Vérification du signal BASP 11
Vérification de la surveillance du temps de cycle 13
Test de la mémoire utilisateur 15
Les bits qui ne sont pas mentionnés dans le tableau ne sont pas oc-cupés.
5.7.4Traitement des erreurs Si une fonction de test qui ne s’effectue pas durant l’effacement
général décèle une erreur, elle appelle l’OB 36 de réaction aux erreurs(cf. paragraphe 5.6.11) et transfère le contenu de BS 137 avec les bitsdes sous-programmes de test activés dans l’accumulateur 1.
De plus, tous les sous-programmes de test inscrivent des informationssur la nature du test et l’erreur décelée dans les mots de données sy-stème BS 75 à BS 78.
Pour les tests qui se déroulent uniquement durant l’effacementgénéral, la cause d’erreur est indiquée dans le mot BS 75. La DELSTOP clignote alors rapidement lorsque les tests durant l’efface-ment général se sont terminés avec erreurs.
Les erreurs détectées par l’autotest "Signal BASP" à l’arrêt sont égale-ment indiquées dans la donnée système BS 75. La mise en route sui-vante ne débouche au fonctionnement cyclique que lorqu’aucuneinstruction STP n’est programmée dans l’OB 36.
Autotest
Programmation de la CPU 9485 - 38 C79000-G8577-C848-04
Informations d’erreur
Test de la mémoire utilisateur
Mot de données système Information d’erreur
BS 75 Erreur n° 640CH lors de la vérification de la mémoire des mots
Erreur n° 650CH lors de la vérification de la mémoire des octets
BS 76 Profil de test pour lequel est apparue une erreur
BS 77 Adresse erronée de poids fort
BS 78 Adresse erronée de poids faible
Test du signal BASP
Mot de données système Information d’erreur
BS 75 Erreur n° 6700H
BS 76 FFFFH
BS 77 FFFFH
BS 78 FFFFH
Test de l’horloge matérielle
Mot de données système Information d’erreur
BS 75 Erreur n° 6800H
BS 76 FFFFH
BS 77 FFFFH
BS 78 FFFFH
Test de la surveillance dutemps de cycle
Mot de données système Information d’erreur
BS 75 Erreur n° 6600H
BS 76 FFFFH
BS 77 FFFFH
BS 78 FFFFH
Autotest
Programmation de la CPU 948C79000-G8577-C848-04 5 - 39
Test des lignes d’adresses
Mot de données système Information d’erreur
BS 75 Erreur n° 630BH
BS 76 FFFFH
BS 77 Adresse erronée de poids fort
BS 78 Adresse erronée de poids faible
Test du code du programmesystème
Mot de données système Information d’erreur
BS 75 Erreur n° 610BH
BS 76 FFFFH
BS 77 Total de contrôle effectif, poids fort
BS 78 Total de contrôle effectif, poids faible
Test du code des blocs decode STEP 5
Mot de données système Information d’erreur
BS 75 Erreur n° 620AH
BS 76 Type/numéro de bloc(indications de l’en-tête de bloc)
BS 77 Total de contrôle nominal
BS 78 Total de contrôle effectif
Autotest
Programmation de la CPU 9485 - 40 C79000-G8577-C848-04
Sommaire du chapitre 6
6.1 Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 - 4
6.2 OB 121 : Génération et lecture de l’horodateur interne . . . . . . . . . . . . . . . . . . . . . . . . . . 6 - 8
6.3 OB 122 : Activation / désactivation de l’inhibition des alarmes . . . . . . . . . . . . . . . . . . 6 - 12
6.4 OB 124 : Suppression de blocs STEP 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 - 14
6.5 OB 125 : Génération de blocs STEP 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 - 17
6.6 OB 126 : Définition et transfert de mémoires image du processus . . . . . . . . . . . . . . . . 6 - 20
6.7 OB 129 : Etat de la pile de sauvegarde . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 - 25
6.8 OB 131 : Effacement des accumulateurs 1, 2, 3 et 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 - 26
6.9 OB 132 et OB 133 : Décalage du contenu des accumulateurs vers le haut ou vers le bas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 - 27
6.10 OB 141 : Activation/désactivation de l’inhibition sélective d’alarmes d’horloge cycliques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 - 29
6.11 OB 142 : Activation/désactivation du retardement général d’alarmes . . . . . . . . . . . . . . 6 - 32
6.12 OB 143 : Activation/désactivation du retardement sélectif d’alarmes d’horloge cycliques. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 - 35
6.13 OB 150 : Génération et lecture de l’horodateur interne . . . . . . . . . . . . . . . . . . . . . . . . . 6 - 38
6.14 OB 151 : Génération et lecture de l’heure de déclenchement d’une alarme d’horloge à heure fixe. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 - 43
6Fonctions spéciales intégrées
Programmation de la CPU 948C79000-G8577-C848-04 6 - 1
6.15 OB 153 : Génération et lecture de l’heure de déclenchement d’une alarme de retardement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 - 50
6.16 OB 180 : Accès variable à un bloc de données. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 - 53
6.17 OB 181 : Test de blocs de données DB/DX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 - 57
6.18 OB 182 : Duplication d’une zone de données. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 - 59
6.19 OB 200 et OB 202 à OB 205 : Communication multiprocesseur . . . . . . . . . . . . . . . . . 6 - 62
6.20 OB 222 : Redémarrage de la surveillance du temps de cycle . . . . . . . . . . . . . . . . . . . . 6 - 63
6.21 OB 223 : Comparaison des types de mise en route . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 - 64
6.22 OB 254 et OB 255 : Copie et duplication de blocs de données. . . . . . . . . . . . . . . . . . . 6 - 65
Sommaire
Programmation de la CPU 9486 - 2 C79000-G8577-C848-04
6Fonctions spéciales intégrées
Ce chapitre décrit les fonctions spéciales intégrées contenues dans leprogramme système, où les utiliser et comment appeler et paramétrerles blocs d’organisation (OB) de fonctions spéciales.Vous y apprenez, en outre, à reconnaître les erreurs survenues lors dutraitement d’une fonction spéciale et, le cas échéant, à les traiter parprogramme.
Programmation de la CPU 948C79000-G8577-C848-04 6 - 3
6.1 Introduction
Le système d’exploitation de la CPU 948 vous offre des fonctionsspéciales que vous pouvez utiliser, si nécessaire, au moyen d’un appelde bloc conditionnel (SPB OB x) ou inconditionnel (SPA OB x). Cesont les blocs d’organisation OB 100 à OB 255 qui sont réservés à cesfonctions spéciales.
Ces fonctions sont désignées par fonctions spéciales intégrées, car el-les font partie du programme système. Vous pouvez les appeler, maispas les lire ni les modifier.
Le tableau suivant présente une vue d’ensemble des fonctions spécia-les disponibles.
Bloc Fonction cf. par./page
OB 121 Générer et lire l’horodateur interne (compatible avec la CPU 946/947)
6.2/6 - 8
OB 122 Activer/désactiver l’inhibition des alarmes 6.3/6 - 12
OB 124OB 125
Effacer des blocs STEP 5Générer des blocs STEP 5
6.4/6 - 146.5/6 - 17
OB 126 Définir et transférer des mémoires image du processus 6.6/6 - 20
OB 129 Constater l’état de la pile de sauvegarde 6.7/6 - 25
OB 131 Effacer les accumulateurs 1, 2, 3 et 4 6.8/6 - 26
OB 132OB 133
Décaler le contenu d’un accumulateur vers le hautDécaler le contenu d’un accumulateur vers le bas
6.9/6- 276.9/6- 27
OB 141
OB 142OB 143
Activer/désactiver l’inhibition sélective d’alarmes d’horloge cycliquesActiver/désactiver le retardement général d’alarmesActiver/désactiver le retardement sélectif d’alarmes d’horloge cycliques
6.10/6 - 29
6.11/6 - 326.12/6 - 35
OB 150OB 151
OB 153
Générer et lire l’horodateur interneGénérer et lire l’heure de déclenchement d’une alarme d’horloge à heure fixeGénérer et lire l’heure de déclenchement d’une alarme deretardement
6.13/6 - 386.14/6 - 43
6.15/6 - 50
OB 180 Accès variable à un bloc de données 6.16/6 - 53
OB 181 Tester des blocs de données DB/DX 6.17/6 - 57
OB 182 Dupliquer une zone de données 6.18/6 - 59
OB 200, 202203, 204, 205
Fonctions pour la communication multiprocesseur 6.19/6 - 62
OB 222 Redémarrer la surveillance du temps de cycle (réarmer lechien de garde)
6.20/6 - 63
OB 223 Comparer les types de démarrage en mode multipro-cesseur
6.21/6 - 64
OB 254, 255 Copier ou dupliquer des blocs de données DB et DX 6.22/6 - 65
Tableau 6-1 Vue d’ensemble des fonctions spéciales intégrées de la CPU 948
Introduction
Programmation de la CPU 9486 - 4 C79000-G8577-C848-04
Interfaces Lors de la programmation, vous disposez des interfaces ci-après pouraccéder aux fonctions spéciales.
Appel de bloc •• Appel par une instruction de saut conditionnel SPB... ou incondi-tionnel SPA...
Paramètres •• Paramètres de prédéfinition transmis par le biais de l’accumulateur1 et, éventuellement, de l’accumulateur 2 ou par le biais de cellu-les de mémoire
Dans la suite de la description des différentes fonctions spéciales,le terme paramètre désigne toutes les données nécessaires à laCPU pour l’exécution correcte de la fonction spéciale. L’appeld’une fonction spéciale dans le programme STEP 5 doit êtreprécédé du chargement de ces données dans les accumulateurs oudans les cellules de mémoire indiquées.
Ecriture dans l’accumulateur Pour le paramétrage des blocs d’organisation de fonctions spéciales,l’accumulateur 1 est organisé de la manière suivante :
ACCU 1 ACCU 1 32 bits
ACCU 1-L ACCU 1, mot de poids faible 16 bits
ACCU 1-LL ACCU 1, mot de poids faible 8 bits octet de poids faible
ACCU 1-LH ACCU 1, mot de poids faible 8 bits octet de poids fort
Mot de poids fort Mot de poids faible
Octet de poids fort
Octet de poids faible
Octet de poids fort
Octet de poids faible
31 24 23 16 15 8 7 0
Introduction
Programmation de la CPU 948C79000-G8577-C848-04 6 - 5
Traitement des erreurs S’il se produit une erreur lors du traitement d’une fonction spéciale, leprogramme système réagit de façon particulière.
Les fonctions spéciales peuvent être classées en deux groupes en cequi concerne cette réaction du programme système.
•• Groupe 1
Codes dans l’accumulateur Font partie du groupe 1 toutes les fonctions spéciales pourlesquelles l’accumulateur 1 reçoit en cas d’erreur des codes quidécrivent plus précisément l’erreur survenue.
•• Groupe 2
RLG, FL 0/FL 1 Pour le second groupe de fonctions spéciales, les erreurs quiaffectent certaines fonctions exercent une influence sur le RLG etles indicateurs FL 0/FL 1.Les erreurs qui se produisent lors de l’exécution de ces fonctionsspéciales provoquent, dans la plupart des cas, la mise à 1 du RLG.Dans votre programme STEP 5, vous pouvez par conséquentexploiter le RLG par une opération de saut conditionnel SPB afinde réagir à une erreur.
Certaines autres fonctions spéciales exercent une influence sur lesindicateurs FL 0 et FL 1. Vous pouvez tester ces indicateurs dansvotre programme STEP 5 à l’aide d’opérations de comparaison etdéclencher ainsi la réaction à une erreur.
La réaction exécutée en cas d’erreur pour les différents OB de foncti-ons spéciales est précisée dans les paragraphes ci-après décrivant cesOB.
Introduction
Programmation de la CPU 9486 - 6 C79000-G8577-C848-04
NotaL’appel d’un OB de fonction spéciale par l’opérationSPA OB 131/132/133 ou SPB OB 131/132/133 n’agit pas commeun véritable changement de bloc, mais comme une opérationSTEP 5 sans opérande de type bloc. Si vous avez sélectionné"interruptions possibles en fin de bloc", aucune alarme n’esttraitée.
Introduction
Programmation de la CPU 948C79000-G8577-C848-04 6 - 7
6.2 OB 121 : Génération et lecture de l’horodateur interne
Fonction L’OB 121 permet de générer et de lire l’horodateur interne (date etheure) de façon compatible avec la CPU 946/947.
Paramètres 1) Champ de données
4 mots dans la zone de mémoire organisée par motsPour la fonction de mise à l’heure, inscrivez avant l’appel del’OB 121 les valeurs pour l’horodateur. Le programme système vérifiesi ces valeurs sont correctes logiquement.Pour la fonction de lecture de l’heure, l’OB 121 inscrit les valeurs encours de l’horodateur dans cette zone.
Structure du champ de données
Bit 15 12 11 9 8 4 3 0
1er mot s (dizaines) s (unités) s (dizièmes) s (centièmes)
2e mot h (dizaines)
h (unités)
min(dizaines)
min (unités)
3e mot jour(dizaines)
jour (unités)
jour de la semaine
0
4e mot année (dizaines)
année (unités)
mois (dizaines)
mois (unités)
NotaLa structure de ce champ de données correspond à celui desdonnées système BS 96 à BS 99 (heure en cours).
Valeurs possibles
secondes (centièmes) : 0 à 9secondes (dizièmes) : 0 à 9
secondes (unités) : 0 à 9secondes (dizaines) : 0 à 5
minutes (unités) : 0 à 9minutes (dizaines) : 0 à 5
heures (unités) : 0 à 9heures (dizaines) :
bit 12/13 0 à 1 pour le format de 12 h0 à 2 pour le format de 24 h
bit 14 0 = AM pour le format de 12 h1 = PM pour le format de 12 h0 pour le format de 24 h
bit 15 0 = format de 12 heures1 = format de 24 heures
OB 121 : Génération et lecture de l’horodateur interne
Programmation de la CPU 9486 - 8 C79000-G8577-C848-04
jour de la semaine : 0 à 6 pour lundi à dimanche
jour (unités) : 0 à 9jour (dizaines) : 0 à 3
mois (unités) : 0 à 9mois (dizaines) : 0 à 1
année (unités) : 0 à 9année (dizaines) : 0 à 9
2) Registre BR (registre d’adresse de base)
Adresse initiale d’un champ de données dans une zone de mémoire or-ganisée en mots où les nouvelles valeurs doivent être lues ou bien oùles valeurs en cours doivent être mémorisées. L’appel de l’OB 121doit être précédé du chargement de l’adresse dans le registre de base.
3) ACCU 1-L
Numéro de fonctionValeurs admises 1 = Génération de l’horodateur
2 = Lecture de l’horodateur
Résultat Après traitement correct et sans erreur, le programme système trans-met la valeur 0 à l’ACCU 1. Pour la fonction de génération, l’horoda-teur prend les valeurs figurant dans le champ de données. Pour lalecture, le champ de données contient les valeurs en cours de l’horoda-teur.
Erreurs possibles Le tableau suivant présente les erreurs pouvant se produire. En casd’erreur, le programme système écrit le code correspondant dansl’ACCU 1-L.
Code Signification
F001HF00FHF101HF102HF103HF104HF105HF106HF107HF108H
F109H
Numéro de fonction incorrectAppel multiple du blocIndication incorrecte de l’année Indication incorrecte du mois Indication incorrecte du jour Indication incorrecte du jour de la semaine Indication incorrecte des heuresIndication incorrecte des minutes Indication incorrecte des secondesIndication incorrecte des centièmes et dixièmes de secondeEntrez à la mise à l’heure des zéros pour les centièmes etdixièmes de seconde.Format de l’heure différent de celui spécifié dans l’OB 151
Tableau 6-2 Codes d’erreur de l’OB 121 dans l’ACCU 1-L
OB 121 : Génération et lecture de l’horodateur interne
Programmation de la CPU 948C79000-G8577-C848-04 6 - 9
Exemples
Exemple de programmation pour la génération de l’horodateur
Le FB 13 est programmé pour la fonction de génération de l’horodateur. Lesnouvelles valeurs sont rangées dans le bloc de données DB 10 (mots dedonnées DW 0 à DW 3).
Programme STEP 5
FB13NOM :GENHOR
:A DB 10 Ouvrir le DB 10:L KH 1500 15 secondes (1/10 ... 1/100 s = 0) :T DW 0:L KH 9555 Format de 24 heures, 15 h 55 :T DW 1:L KH 1010 le 10, mardi:T DW 2:L KH 9308 1993, août:T DW 3:MBR EEC00 Charger dans le registre de base l’adresse : de début de la liste de DB:LRW +10 Charger dans l’ACCU 1 l’adresse de début du : DB 10 en mémoire (adresse de paragraphe):SLD 4 Adresse absolue du DB 10 (DW 0):MAB Charger le contenu de l’ACCU 1 dans le : registre BR:L KB 1 Charger le numéro de fonction 1 dans l’ACCU 1-L:SPA OB 121 Générer l’horodateur:L KB 0:><F Tester les codes d’erreur:SPB =ERR Sauter au traitement d’erreurs:BEA:
ERR : Traitement d’erreurs::BE
Le bloc DB 10 contient les informations suivantes lors de l’appel de l’OB 121.
0: KH = 1500;1: KH = 9555;2: KH = 1010;3: KH = 9308;4:
L’OB 121 transfère les valeurs désirées du DB 10 dans la zone de donnéessystème BS 96 à BS 99.
OB 121 : Génération et lecture de l’horodateur interne
Programmation de la CPU 9486 - 10 C79000-G8577-C848-04
Exemple de programmation pour la lecture de l’horodateur
Le FB 14 est programmé pour la fonction de lecture de l’horodateur. Lesvaleurs en cours sont rangées dans le bloc de données DB 11 (mots dedonnées DW 0 à DW 3).
Programme STEP 5
FB14NOM :LIRHOR
:MBR EEC00 Charger dans le registre de base l’adresse : de début de la liste de DB:LRW +11 Charger dans l’ACCU 1 l’adresse de début du : DB 11 en mémoire (adresse de paragraphe):L KB 0:!=F Vérifier si le DB 11 est chargé:SPB =NIVO Sauter au traitement d’erreurs si: adresse de début de DB égale à 0:TAK:SLD 4 Adresse absolue du DB 11 (DW 0):MAB Charger le contenu de l’ACCU 1 dans le registre BR:L KB 2 Charger le numéro de fonction 2 dans l’ACCU 1-L:SPA OB 121 Lire l’horodateur:BEA:
NIVO : Traitement d’erreurs::BE
Le bloc DB 11 contient, par exemple, les informations suivantes aprèsl’appel de l’OB 121 :
0: KH = 2994; 29 s, 940 millisecondes1: KH = 9555; format de 24 heures, 15 heures, 55 min2: KH = 1010; 10 jours, jour de semaine 1 (mardi), 03: KH = 9308; année : 93, mois : 84:
On est le mardi 10 août 1993 ; il est 15 heures, 55 minutes, 29 secondes et940 millisecondes (9 dixièmes de seconde et 4 centièmes de seconde).
OB 121 : Génération et lecture de l’horodateur interne
Programmation de la CPU 948C79000-G8577-C848-04 6 - 11
6.3 OB 122 : Activation / désactivation de l’inhibition des alarmes
Un programme STEP 5 peut être interrompu en fin de bloc ou en find’instruction pour l’exécution de programmes de plus haute priorité.Aux niveaux de traitement de priorité élevée, on trouve :
•• les alarmes d’horloge
et
•• les alarmes de processus ou les interruptions.
Le temps d’exécution du programme interrompu est alors augmentédu temps d’exécution des programmes imbriqués.
Fonction Le bloc d’organisation de fonction spéciale OB 122 permet d’éviterl’interruption du programme à la fin d’un ou de plusieurs blocs ouinstructions successifs par les alarmes de processus ou d’horloge.
L’OB 122 exerce une influence sur la réaction aux alarmes.
•• "Activation de l’inhibition des alarmes" signifie que, dorénavant,aucune alarme n’est plus enregistrée.
•• "Désactivation de l’inhibition des alarmes" signifie que, doréna-vant, toutes les alarmes qui se présentent sont enregistrées et queles blocs de traitement correspondants seront insérés et traités à lalimite de bloc ou d’instruction suivante (selon le mode précisédans le DX 0).
Les alarmes déjà enregistrées ne sont plus traitées lorsque le mode "In-terruptions possibles en fin de bloc" est activé dans le DX 0.
Paramètres ACCU 1-L
Numéro de fonctionValeurs admises 1 = Inhiber toutes les alarmes
2 = Valider toutes les alarmes
OB 122 : Activation / désactivation de l’inhibition des alarmes
Programmation de la CPU 9486 - 12 C79000-G8577-C848-04
Résultat Après traitement correct et sans erreur, le programme système inscritla valeur 0 dans l’ACCU 1-L.
NotaLe résultat logique RLG (indéfini) est influencé par l’appel del’OB 122. En revanche, le registre d’adresse de base BR n’est pasmodifié.L’inhibition et la validation des alarmes de processus peuventégalement s’effectuer par les opérations AS et AF de STEP 5 aulieu de l’OB 122. L’inhibition des alarmes est annulée au point decontrôle système suivant (voir le chapitre 11).
Erreurs possibles Le tableau suivant présente les erreurs pouvant se produire. En casd’erreur, le programme système écrit le code correspondant dansl’ACCU 1-L.
Code Signification
F001H Numéro de fonction incorrect
Exemple
Tableau 6-3 Codes d’erreur de l’OB 122 dans l’ACCU 1-L
Extrait d’un programme STEP 5 dans lequel toutesles alarmes sont inhibées puis validées à l’aidede l’OB 122 avant une partie de programme critique
:L KB 1 Charger le numéro de fonction : dans l’ACCU 1-L:SPA OB 122 Inhiber toutes les alarmes: ): ): ): } Partie de programme critique: ): ):L KB 2 Charger le numéro de fonction : dans l’ACCU 1-L:SPA OB 122 Valider toutes les alarmes::
OB 122 : Activation / désactivation de l’inhibition des alarmes
Programmation de la CPU 948C79000-G8577-C848-04 6 - 13
6.4 OB 124 : Suppression de blocs STEP 5
Fonction Le bloc OB 124 permet d’effacer des blocs STEP 5 (de code ou dedonnées) dans la mémoire utilisateur. Le bloc effacé ne figure plusdans la liste d’adresses contenue dans le DB 0. La place libérée enmémoire par l’effacement est utilisée lors du chargement de nouveauxblocs.
Paramètres 1) ACCU 1-LH
Type du bloc à effacer
2) ACCU 1-LL
Numéro du bloc à effacer
Les types et numéros de blocs suivants sont admis :
ACCU 1-LH (type de bloc) ACCU 1-LL (numéro de bloc)
1 = PB2 = SB3 = FB4 = FX5 = DB6 = DX7 = OB
0 à 2550 à 2550 à 2550 à 2553 à 2553 à 2551 à 39
Résultat Après traitement correct et sans erreur, le programme système met leRLG à 0 et efface les indicateurs FL 1 et FL 0.
NotaLes alarmes utilisateur sont inhibées pendant la procédured’effacement proprement dite : aucune alarme ni interruptionn’est prise en considération.
L’appel de l’OB 124 modifie le contenu des accumulateurs 1 à 4.Le registre BR reste inchangé.
OB 124 : Suppression de blocs STEP 5
Programmation de la CPU 9486 - 14 C79000-G8577-C848-04
Erreurs et avertissements En cas d’erreur ou d’avertissement, le programme système interromptle traitement de l’OB 124 et poursuit le traitement du programme avecl’opération STEP 5 suivante. En outre, il met le RLG à 1 et inscrit uncode d’erreur dans l’ACCU 1-LL (voir le tableau 6-5).
En cas d’interruption de la fonction avec avertissement, un nouvel ap-pel de la fonction spéciale (éventuellement un appel répété) permetnormalement d’aboutir à l’exécution correcte de l’OB 124.
Dans le cas suivant, l’exécution de l’OB 124 est interrompue avecgénération d’un avertissement :
Appel réitéré d’un OB 124, OB 125, OB 254 ou OB 255 alors que mo-ins de 10 ms se sont écoulées dpuis le dernier appelEn effet, en l’espace de 10 ms, un seul appel de ces fonctionsspéciales est autorisé. On évite ainsi que l’interface vers la console deprogrammation ne soit totalement bloquée par l’appel répété de cesOB de fonctions spéciales.
Indicateurs Après appel de l’OB 124, vous pouvez déterminer à l’aide du RLG etdes indicateurs FL 1 et FL 0 si la fonction spéciale a été traitée cor-rectement ou si elle a été interrompue avec erreur ou avertissement.Vous pouvez exploiter le résultat par des instructions de saut condi-tionnel.
Indicateurs de résultat
RLG FL 1 FL 0 Signification Test
0 0 0 La fonction spéciale a été traitée correctement.
SPBSPZ
1 1 0 La fonction spéciale a été interrompue avec avertisse-ment.
SPBSPPSPN
1 0 1 La fonction spéciale a été interrompue avec erreur.
SPBSPMSPN
Tableau 6-4 Indicateurs de résultat de l’OB 124
OB 124 : Suppression de blocs STEP 5
Programmation de la CPU 948C79000-G8577-C848-04 6 - 15
Codes d’erreur dansl’ACCU 1-LL
Le programme système inscrit dans l’ACCU 1-LL des codes sur lerésultat du traitement, qui précisent pourquoi il y a eu avertissementou erreur.
Bit 7 6 5 0
A E Cause de l’avertissement ou de l’erreur
Des indications collectives sont définies comme suit :
Bit 7 (A) = 1 AvertissementBit 6 (E) = 1 Erreur
Code Signification
01H La fonction a été exécutée correctement.
45H47H4DH
ErreurType de bloc incorrectBloc inexistantFonction en ligne de compression de la mémoire encours
8DH
8EH
AvertissementConflit avec une fonction en ligne (autre que cellede compression de la mémoire)Délai de 10 ms non encore écoulé
Exemple
Tableau 6-5 Codes d’erreur de l’OB 124 dans l’ACCU 1-LL
:L KY 6,100 Cette suite d’instructions:SPA OB 124 efface le bloc DX 100 dans la : mémoire de travail.
OB 124 : Suppression de blocs STEP 5
Programmation de la CPU 9486 - 16 C79000-G8577-C848-04
6.5 OB 125 : Génération de blocs STEP 5
Fonction Le bloc OB 125 permet de créer des blocs STEP 5 (de code ou dedonnées) dans la mémoire utilisateur. Toutefois, la génération deblocs de code devrait être réservée aux spécialistes.
Le bloc précisé est créé dans la mémoire vive (RAM) interne avec en-tête et corps de bloc ; il est repris dans le DB 0. Le corps de bloc conti-ent des données aléatoires. Pour cette raison, il faut d’abord écrire desdonnées dans un bloc nouvellement créé avant de pouvoir y lire desdonnées significatives.
Paramètres 1) ACCU 1-LH
Type du bloc à générer
2) ACCU 1-LL
Numéro du bloc à générer
Les types et numéros de blocs suivants sont admis :
ACCU 1-LH (type de bloc) ACCU 1-LL (numéro de bloc)
1 = PB2 = SB3 = FB4 = FX5 = DB6 = DX7 = OB
0 à 2550 à 2550 à 2550 à 2553 à 2553 à 2551 à 39
3) ACCU 2-L
Nombre de mots de données (longueur de bloc désirée sans en-tête)La longueur maximale admissible pour un bloc est de 32 762 mots dedonnées. Actuellement, il est possible d’éditer environ 2 kilo-motsavec une PG.
Résultat Après traitement correct et sans erreur, le programme système met leRLG à 0 et efface les indicateurs FL 1 et FL 0.
NotaLes alarmes utilisateur sont inhibées pendant la procédure degénération proprement dite : aucune alarme ni interruption n’estprise en considération.
L’appel de l’OB 125 modifie le contenu des accumulateurs 1 à 4.Le registre BR reste inchangé.
OB 125 : Génération de blocs STEP 5
Programmation de la CPU 948C79000-G8577-C848-04 6 - 17
Erreurs et avertissements En cas d’erreur, le programme système interrompt le traitement del’OB 125 et poursuit le traitement du programme avec l’opérationSTEP 5 suivante. En outre, il met le RLG à 1 et inscrit un code d’er-reur dans l’ACCU 1-LL (voir le tableau 6-7).
En cas d’interruption de la fonction avec avertissement, un nouvel ap-pel de la fonction spéciale (éventuellement un appel répété) permetnormalement d’aboutir à l’exécution correcte de l’OB 125.
Dans le cas suivant, l’exécution de l’OB 125 est interrompue avecgénération d’un avertissement :
Appel réitéré d’un OB 124, OB 125, OB 254 ou OB 255 alors que mo-ins de 10 ms se sont écoulées depuis le dernier appelEn effet, en l’espace de 10 ms, un seul appel de ces fonctionsspéciales est autorisé. On évite ainsi que l’interface vers la console deprogrammation ne soit totalement bloquée par l’appel répété de cesOB de fonctions spéciales.
Indicateurs Après appel de l’OB 125, vous pouvez déterminer à l’aide du RLG etdes indicateurs FL 1 et FL 0 si la fonction spéciale a été traitée cor-rectement ou si elle a été interrompue avec erreur ou avertissement.Vous pouvez exploiter le résultat par des instructions de saut condi-tionnel.
Indicateurs de résultat
RLG FL 1 FL 0 Signification Test
0 0 0 La fonction spéciale a été traitée correctement.
SPBSPZ
1 1 0 La fonction spéciale a été interrompue avec avertisse-ment.
SPBSPPSPN
1 0 1 La fonction spéciale a été interrompue avec erreur.
SPBSPMSPN
Tableau 6-6 Indicateurs de résultat de l’OB 125
OB 125 : Génération de blocs STEP 5
Programmation de la CPU 9486 - 18 C79000-G8577-C848-04
Codes d’erreur dansl’ACCU 1-LL
Le programme système inscrit dans l’ACCU 1-LL des codes sur lerésultat du traitement, qui précisent pourquoi il y a eu avertissementou erreur.
Bit 7 6 5 0
A E Cause de l’avertissement ou de l’erreur
Des indications collectives sont définies comme suit :
Bit 7 (A) = 1 AvertissementBit 6 (E) = 1 Erreur
Code Signification
01H La fonction a été exécutée correctement.
42H43H44H45H4DH
ErreurLe bloc existe déjà.Espace mémoire insuffisantLongueur de bloc incorrecteType de bloc incorrectFonction en ligne de compression de la mémoire encours
8DH
8EH
AvertissementConflit avec une fonction en ligne (autre que cellede compression de la mémoire)Délai de 10 ms non encore écoulé
Exemple
Tableau 6-7 Codes d’erreur de l’OB 125 dans l’ACCU 1-LL
:L KF +2000 Cette suite d’instructions crée :L KY 5,24 le bloc DB 24 avec une longueur:SPA OB 125 de 2000 mots de données: (longueur totale avec en-tête : : 2005 mots)
OB 125 : Génération de blocs STEP 5
Programmation de la CPU 948C79000-G8577-C848-04 6 - 19
6.6 OB 126 : Définition et transfert de mémoires image du processus
A chaque cycle, le programme système actualise la mémoire image duprocessus pour les entrées et les sorties TOR et les mémentos de cou-plage. C’est dans le bloc de données système DB 1 qu’est précisé les-quels de ces éléments figurent dans la mémoire image (voir lechapitre 10).L’OB 126 vous permet d’utiliser d’autres mémoires image.
Fonction En mode de démarrage, l’OB 126 permet de définir jusqu’à quatremémoires image, en plus de la mémoire image du processus définiedans le DB 1.Vous pouvez lire et écrire ces mémoires image supplémentaires àl’aide du programme STEP 5 à tous les niveaux de traitement deprogramme.
Paramètres 1) Champ de données
6 octets de mémentos présentant la structure suivante :
Bit 7 0
MB n Numéro de fonction
MB n+1 Numéro de la liste d’adresses
MB n+2 Type de bloc
MB n+3 Numéro de bloc
MB n+4 Numéro du premier mot d’identification
MB n+5 dans la liste d’adresses
Paramètres du champ de données
Numéro de fonction Ce numéro définit la fonction qui sera exécutée par l’OB 126 (voir letableau).
Valeurs admises : 1 à 5
Numéro Fonction
1234
Lire la mémoire image des entrées TOREcrire la mémoire image des sorties TORLire la mémoire image des mémentos de couplage d’entréeEcrire la mémoire image des mémentos de couplage de sortie
5 Générer la liste d’adresses interne (par analogie au DB 1)(autorisé uniquement avec OB 20 de démarrage)
OB 126 : Définition et transfert de mémoires image du processus
Programmation de la CPU 9486 - 20 C79000-G8577-C848-04
Numéro de la liste d’adresses Numéro de la liste d’adresses pour la mémoire image du processusdéfinie en plus
Valeurs admises : 1 à 4
Type de bloc Type du bloc de données contenant la liste d’adresses
Valeurs admises : 1 = DB2 = DX
Numéro de bloc Numéro du bloc de données contenant la liste d’adresses
Valeurs admises : 3 à 255
N° de DW du premier motd’identification
Indiquez ici le numéro du mot de données dans lequel figure le pre-mier mot d’identification de la liste d’adresses (cf. structure du DB 1,paragraphe 10.1.6).Les mots d’identification possibles sont :
KH = DE00 (entrées TOR)KH = DA00 (sorties TOR)KH = CE00 (mémentos de couplage d’entrée)KH = CA00 (mémentos de couplage de sortie)
Ce paramètre occupe deux octets de mémentos.
NotaVous ne devez définir le champ de données dans sa totalité que si l’OB 126 doit générer la liste d’adresses au démarrage(fonction 5). Pour l’exécution des fonctions 1 à 4, il suffit depréciser le numéro de fonction et le numéro de la liste d’adressesdans le champ de données. Les autres paramètres sont inutiles.
Vous devez organiser le bloc de données avec lequel vous voulezconstituer la liste d’adresses pour une mémoire imagesupplémentaire (fonction 5) de la même façon que le DB 1.Dans ce bloc, vous pouvez ranger pour chaque mémoire imagesupplémentaire les informations de liste d’adresses si vousaffectez à chaque bloc d’information la même identification de finque dans le DB 1.Toutefois, pour constituer la liste d’adresses, vous devez appelerl’OB 126 avec le numéro de fonction 5 pour chaque mémoireimage du processus supplémentaire (uniquement au démarrage).
2) ACCU 1-L
Numéro de l’octet de mémentos MB n par lequel commence lechamp de données
Valeurs admises : 0 à 250
OB 126 : Définition et transfert de mémoires image du processus
Programmation de la CPU 948C79000-G8577-C848-04 6 - 21
Résultat Après traitement correct et sans erreur, le programme système met leRLG à 0 et écrit la valeur 1 dans l’ACCU 1-LL.
NotaLes alarmes utilisateur sont inhibées pendant le traitement del’OB 126 : aucune alarme ni interruption n’est prise enconsidération.
L’appel de l’OB 126 modifie le contenu des accumulateurs 1 à 4.Le registre BR reste inchangé.
Au redémarrage, la partie restante du cycle est traitée avec lesignal BASP actif : toutes les sorties TOR sont verrouillées. A lafin du cycle, toutes les sorties (également celles indiquées dansles listes d’adresses 1 à 4) sont remises à 0.
Erreurs possibles Si la fonction spéciale ne peut pas être exécutée, le programme systèmeinterrompt le traitement de l’OB 126 et poursuit le traitement du pro-gramme avec l’opération STEP 5 suivante. En outre, il met le RLG à 1et inscrit un code d’erreur dans l’ACCU 1-LL (voir le tableau suivant).
Exception dans le traitement d’erreurs
Si l’OB 126 est appelé à exécuter la fonction 5 (constitution de la listed’adresses interne), le programme système vérifie si la structure de laliste est correcte. En outre, il s’assure que les entrées, les sorties et lesmémentos de couplage y figurant délivrent le signal d’acquittementsur les cartes correspondantes.Si la liste d’adresses est erronée, la CPU présente le même compor-tement que lors d’un DB 1 erroné : elle se met en arrêt partiel avecclignotement lent du voyant STOP. La cause de l’erreur signalée estune "erreur de DB 1".
Codes d’erreur dans l’ACCU 1-LL
Code Signification
01H02H03H
04H
05H
06H07H
La fonction a été exécutée correctement.Numéro de fonction incorrectPointeur dans l’ACCU 1-L (numéro de mémento) incorrectType ou numéro de bloc incorrect ou bloc DB/DXinexistantLe mot de données indiqué du bloc de données ne contient pas le premier mot d’identification (numéro de DW erroné) ou la liste d’adresses contient un mot d’identification erroné.Numéro de la liste d’adresses incorrectL’appel de la fonction à ce niveau de traitement de programme n’est pas autorisé.
Tableau 6-8 Codes d’erreur de l’OB 126 dans l’ACCU 1-LL
OB 126 : Définition et transfert de mémoires image du processus
Programmation de la CPU 9486 - 22 C79000-G8577-C848-04
Exemples
Constitution de la liste d’adresses dans le DB 5
A l’aide de la fonction d’édition de masques DB,vous programmez à la PG le bloc de données DB 5avec les paramètres suivants :
Entrées TOR 1, 2, Sorties TOR 3,Mémentos couplage entrées 5, 6, 7,Mémentos couplage sorties 20, 22,
Si vous créez le DB 5 manuellement, il doitprésenter la même structure que le DB 1 (avecindicatif de début, mots d’identification des zonesd’opérandes, indicatif de fin ; cf. paragraphe10.1.6).
Reprise de la liste d’adresses dans l’OB 20 de
démarrage
Vous devez d’abord définir le champ de donnéesdans la zone de mémentos. Il occupe les octets demémentos MB 20 à MB 25.
:L KB 5 Charger le numéro de fonction 5:T MB 20 et le transférer dans le MB 20:L KB 1 Charger le numéro de liste : d’adresses 1:T MB 21 et le transférer dans le MB 21:L KH 0105 Charger le type de bloc DB (1) : et le numéro de bloc (5) et les:T MW 22 transférer dans les MB 22 et 23:L KB 3 Charger le n° de DW "3" (DW 3 du:T MW 24 DB 5 contient 1 er mot d’ident.) et: les transférer dans les MB 24 et 25
Une fois le champ de données défini correctement,il faut charger dans l’ACCU 1-L le numéro dupremier octet de mémentos du champ de données.Appelez ensuite l’OB 126 qui générera la listed’adresses.
:L KB 20 Début du champ de données au MB 20:SPA OB 126 Appeler la génération de la liste : d’adresses. Exploiter éventuelle-: ment les indicateurs: ...
NotaLes listes d’adresses de numéro 1 à 4 ne sontreprises par la CPU que par un appel de l’OB 126dans l’OB 20 (démarrage). Il faut donc quel’OB 126 soit appelé avec le numéro de fonction 5dans l’OB 20.
OB 126 : Définition et transfert de mémoires image du processus
Programmation de la CPU 948C79000-G8577-C848-04 6 - 23
Ecriture de la mémoire image des sorties (MIS)
La suite d’instructions STEP 5 ci-après peut êtreprogrammée à tous les niveaux de traitement (dansl’OB 1, dans un OB d’alarme d’horloge ou dans unOB d’alarme de processus, etc.) et a pourrésultat l’écriture de la mémoire image deprocessus de toutes les sorties dans la listed’adresses 1.
:L KB 2 Charger le numéro de fonction 2:T MB 50 et le transférer dans le MB 50:L KB 1 Charger le numéro de liste : d’adresses 1:T MB 51 et le transférer dans le MB 51:L KB 50 Début du champ de données au MB 50:SPA OB 126 Appeler l’écriture de la MIS: Exploiter éventuellement les : indicateurs: ...
OB 126 : Définition et transfert de mémoires image du processus
Programmation de la CPU 9486 - 24 C79000-G8577-C848-04
6.7 OB 129 : Etat de la pile de sauvegarde
Fonction L’OB 129 vous permet de vérifier par programme STEP 5 si la pile desauvegarde est encore en bon état ou défaillante (l’OB 129 teste le si-gnal BAT). Selon le résultat de ce contrôle, vous pouvez positionnerune indication de perturbation (lampe) par exemple.
Formation du signal BAT L’unité d’alimentation comporte deux piles de sauvegarde, une pile aulithium (MB, pile principale) ainsi qu’un accumulateur (RB) commepile de réserve. Le signal BAT est généré par combinaison ET desdeux signaux de surveillance de pile.
Réglage des cavaliers dansl’unité d’alimentation
Dans l’unité d’alimentation de l’AP se trouvent deux cavaliers pou-vant influer sur la surveillance des piles. Le cavalier MB-NB détermi-ne l’instant de génération du signal BAT. S’il n’est pas enfiché, BATest formé une seule fois après la mise sous tension. S’il l’est, la surveil-lance se fait cycliquement pendant le fonctionnement. Le cavalierMA-NA permet de désactiver le signal de surveillance de l’accumula-teur.Les différents réglages des cavaliers donnent les possibilités de sur-veillance de pile par l’OB 129 présentées dans le tableau ci-dessous.
Cavalier MB-NB Cavalier MA-NA Instant de génération dusignal BAT
Signal BAT formé à partirdu signal de surveillance
ouvert ouvert après la mise sous tension de la pile au lithium
ouvert fermé après la mise sous tension de la pile au lithium et del’accumulateur
fermé ouvert cycliquement de la pile au lithium
fermé fermé cycliquement de la pile au lithium et del’accumulateur
Paramètres Néant
Résultat RLG = 0 La pile est en bon état.
RLG = 1 La pile est défaillante.
OB 129 : Etat de la pile de sauvegarde
Programmation de la CPU 948C79000-G8577-C848-04 6 - 25
Exemple
6.8 OB 131 : Effacement des accumulateurs 1, 2, 3 et 4
Fonction Un simple appel du bloc d’organisation de fonction spéciale OB 131suffit pour effacer le contenu des accumulateurs 1 à 4. L’OB 131 sub-stitue des 0 au contenu de ces quatre accumulateurs.
Paramètres Néant
Résultat Les accumulateurs 1 à 4, 32 bits chacun, sont effacés (par des 0).
Erreurs possibles Néant
La suite d’instructions suivante permet de testersi la pile de sauvegarde est encore en bon étatet d’activer un témoin lumineux si ce n’est pasle cas.
::SPA OB 129:SPB =LPIL RLG = 1 –> défaillance de: la pile:::BEA
LPIL :SU A 22.5 Activer le témoin lumineux,: bit 5 de l’octet de sortie 22:BE
OB 131 : Effacement des accumulateurs 1, 2, 3 et 4
Programmation de la CPU 9486 - 26 C79000-G8577-C848-04
6.9 OB 132 et OB 133 : Décalage du contenu des accumulateurs vers lehaut ou vers le bas
Fonction Les OB 132 et 133 provoquent, respectivement, un décalage du conte-nu des accumulateurs vers le haut et vers le bas.
•• L’OB 132 décale le contenu de l’ACCU 4 dans l’ACCU 1, celuide l’ACCU 1 dans l’ACCU 2, celui de l’ACCU 2 dans l’ACCU 3,etc.
•• L’OB 133 décale le contenu de l’ACCU 1 dans l’ACCU 4, celuide l’ACCU 4 dans l’ACCU 3, etc.
Paramètres Néant
Résultat Les figures 6-1 et 6-2 montrent le contenu des accumulateurs avant etaprès l’appel des OB 132 et 133.
NotaLes instructions ENT (jeu d’opérations étendu) et TAK (opérationsystème) de STEP 5 permettent également de décaler le contenudes accumulateurs (voir le paragraphe 3.4.3).
Erreurs possibles Néant
OB 132 et OB 133 : Décalage du contenu des accumulateurs vers le haut ou vers le bas
Programmation de la CPU 948C79000-G8577-C848-04 6 - 27
ACCU 4
ACCU 2
ACCU 3
ACCU 1
31 0 31 0
<ACCU 4>
<ACCU 2>
<ACCU 3>
<ACCU 1>
<ACCU 4>
<ACCU 2>
<ACCU 3>
<ACCU 1>
OB 132
avant après
Décalage du contenudes accumulateurs
Figure 6-1 Effet du décalage vers le haut
ACCU 4
ACCU 2
ACCU 3
ACCU 1
31 0 31 0
<ACCU 2>
<ACCU 4>
<ACCU 1>
<ACCU 3>
<ACCU 4>
<ACCU 2>
<ACCU 3>
<ACCU 1>
OB 133
après
Décalage du contenudes accumulateurs
avant
Figure 6-2 Effet du décalage vers le bas
OB 132 et OB 133 : Décalage du contenu des accumulateurs vers le haut ou vers le bas
Programmation de la CPU 9486 - 28 C79000-G8577-C848-04
6.10 OB 141 : Activation/désactivation de l’inhibition sélective d’alarmesd’horloge cycliques
Le bloc OB 141 permet d’éviter l’interruption du programme à la find’un ou de plusieurs blocs ou instructions successifs par certains OBd’alarmes d’horloge cycliques (alarmes d’horloge avec base de tempsfixe). Cette fonction vous permet, par exemple, d’empêcher l’interrup-tion d’une certaine partie du programme par un OB 10 (période 1) ouun OB 11 (période 2), les autres alarmes d’horloge programmées étanttraitées comme d’habitude.
Fonction L’OB 141 exerce une influence sur la réaction aux alarmes d’horloge.
"Activation de l’inhibition sélective d’alarmes d’horloge cycliques"signifie que, dorénavant, aucune alarme d’horloge cyclique indiquéene sera plus enregistrée et que les alarmes déjà enregistrées − par ex-emple, celles qui attendent que le programme soit parvenu à une limi-te de bloc − sont effacées. Seul un OB d’alarme d’horloge (pour letraitement d’une alarme d’horloge avec base de temps fixe) déjà encours d’exécution est traité dans sa totalité.
"Désactivation de l’inhibition sélective d’alarmes d’horloge cycliqu-es" signifie que, dorénavant, toutes les alarmes d’horloge cycliquesqui se présentent sont enregistrées et traitées à la limite de bloc oud’instruction suivante (selon le paramétrage du DX 0).
Paramètres 1) Mot de commande
L’OB 141 inscrit les alarmes d’horloge à inhiber dans un mot de com-mande interne.
Bit 15 0
Mot de commande
Les bits de ce mot de commande ont la signification suivante :
Bit Alarme
0 à 2 réservés, ces bits doivent rester à 0.
3 = "1"4 = "1"5 = "1"6 = "1"7 = "1"8 = "1"9 = "1"
Alarmes d’horloge cycliques avec base de temps fixePériode 1 (OB 10)Période 2 (OB 11)Période 3 (OB 12)Période 4 (OB 13)Période 5 (OB 14)Période 6 (OB 15)Période 7 (OB 16)
OB 141 : Activation/désactivation de l’inhibition sélective d’alarmes d’horloge cycliques
Programmation de la CPU 948C79000-G8577-C848-04 6 - 29
Bit Alarme
(suite)10 = "1"11 = "1"
Période 8 (OB 17)Période 9 (OB 18)
12 à 15 réservés, ces bits doivent rester à 0.
Tant qu’un bit est à 1, l’alarme correspondante est inhibée.
2) Accumulateurs
a) ACCU 2-L
Numéro de fonctionValeurs admises 1, 2 ou 3
1 : Le contenu de l’ACCU 1 est transféré dans le mot de commande.
2 : Tous les bits à 1 dans le masque se trou-vant dans l’ACCU 1 sont mis à 1 dans le mot de commande. Le nouveau mot de commande est chargé dans l’ACCU 1.
3 : Tous les bits à 1 dans le masque se trou-vant dans l’ACCU 1 sont mis à 0 dans le mot de commande. Le nouveau mot de commande est chargé dans l’ACCU 1.
b) ACCU 1
Nouveau mot de commande ou masque selon la fonction désirée
Résultat Après traitement correct et sans erreur, le programme système met leRLG à 0.L’appel de l’OB 141 donne les résultats suivants :
N° fonction dans
ACCU 2-L
Contenu de l’ACCU 1
Avant Après
1
2
3
Mot de commande
Masque
Masque
Mot de commande
Nouveau mot de commande
Nouveau mot de commande
OB 141 : Activation/désactivation de l’inhibition sélective d’alarmes d’horloge cycliques
Programmation de la CPU 9486 - 30 C79000-G8577-C848-04
Erreurs possibles Le tableau suivant présente les erreurs pouvant se produire. En casd’erreur, le programme système met le RLG à 1 et inscrit le code cor-respondant dans l’ACCU 1-L.
Code Signification
8D01H8D02H
Numéro de fonction incorrect dans l’ACCU 2-L 1
Un des bits réservés dans l’ACCU 1 est à 1 1.
1 La valeur erronée se trouve dans l’ACCU 2-L.
Test du mot de commande •• Vous pouvez lire l’état du mot de commande par la séquence deprogramme suivante :
1) Charger le numéro de fonction 2 ou 3 dans l’ACCU 2-L
2) Charger la valeur 0 dans l’ACCU 1
3) Appeler le bloc OB 141
4) Lire le contenu de l’ACCU 1
Tableau 6-9 Codes d’erreur de l’OB 141 dans l’ACCU 1-L
OB 141 : Activation/désactivation de l’inhibition sélective d’alarmes d’horloge cycliques
Programmation de la CPU 948C79000-G8577-C848-04 6 - 31
6.11 OB 142 : Activation/désactivation du retardement général d’alarmes
Un programme STEP 5 peut être interrompu en fin de bloc ou en find’instruction pour l’exécution de programmes de plus haute priorité.Aux niveaux de traitement de priorité élevée, on trouve les alarmes deprocessus et toutes les alarmes d’horloge. Le temps d’exécution duprogramme interrompu s’allonge alors du temps d’exécution des pro-grammes imbriqués. L’OB 142 permet d’éviter l’interruption du pro-gramme à la fin d’un ou de plusieurs blocs ou instructions successifs(selon le paramétrage du DX 0) par des niveaux de traitement de pro-gramme prioritaires.
Fonction L’OB 142 exerce une influence sur la réaction aux alarmes.
"Activation du retardement général d’alarmes" signifie que, doréna-vant, toutes les alarmes qui se présentent continuent d’être enregi-strées et que les alarmes déjà existantes restent enregistrées. Lesalarmes enregistrées ne sont toutefois pas traitées dans un premiertemps. En d’autres termes, les fins de bloc et d’instruction sont mas-quées pour le traitement des alarmes. Seuls les OB de traitementd’alarmes de processus ou d’horloge déjà en cours d’exécution sonttraités dans leur totalité.
"Désactivation du retardement général d’alarmes" signifie que toutesles alarmes enregistrées seront traitées à la limite de bloc ou d’in-struction suivante.
NotaLa durée de retardement des alarmes doit être inférieure à troisfois la période d’alarme d’horloge la plus courte. Sinon, il seproduit une erreur de traitement d’alarmes d’horloge.
Paramètres 1) Mot de commande
L’OB 142 inscrit les alarmes à retarder dans un mot de commande in-terne.
Bit 15 0
Mot de commande
OB 142 : Activation/désactivation du retardement général d’alarmes
Programmation de la CPU 9486 - 32 C79000-G8577-C848-04
Les bits de ce mot de commande ont la signification suivante :
Bit Alarme
0 = "1" Alarmes d’horloge cycliques avec base de temps fixe
1 = "1" Alarme d’horloge à heure fixe
2 = "1" Alarmes de processus
3 = "1" Alarme de retardement
4 à 15 réservés, ces bits doivent rester à 0.
Tant qu’un bit est à 1, l’alarme correspondante est inhibée.
2) Accumulateurs
a) ACCU 2-L
Numéro de fonctionValeurs admises 1, 2 ou 3
1 : Le contenu de l’ACCU 1 est transféré dans le mot de commande.
2 : Tous les bits à 1 dans le masque se trou-vant dans l’ACCU 1 sont mis à 1 dans le mot de commande. Le nouveau mot de commande est chargé dans l’ACCU 1.
3 : Tous les bits à 1 dans le masque se trou-vant dans l’ACCU 1 sont mis à 0 dans le mot de commande. Le nouveau mot de commande est chargé dans l’ACCU 1.
b) ACCU 1
Nouveau mot de commande ou masque selon la fonction désirée
OB 142 : Activation/désactivation du retardement général d’alarmes
Programmation de la CPU 948C79000-G8577-C848-04 6 - 33
Résultat Après traitement correct et sans erreur, le programme système met leRLG à 0.L’appel de l’OB 142 donne les résultats suivants :
N° fonction dans
ACCU 2-L
Contenu de l’ACCU 1
Avant Après
1
2
3
Mot de commande
Masque
Masque
Mot de commande
Nouveaumot de commande
Nouveaumot de commande
Erreurs possibles Le tableau suivant présente les erreurs pouvant se produire. En casd’erreur, le programme système met le RLG à 1 et inscrit le code cor-respondant dans l’ACCU 1-L.
Code Signification
8E01H8E02H
8EFFH
Numéro de fonction incorrect dans l’ACCU 2-L 1
Un des bits réservés (numéros 4 à 15) dans l’ACCU 1 est à 1 1.Mode erroné (par exemple, lorsque l’alarme de retardement doit être inhibée et que le DX 0 contient le paramètre "Alarmes de processus via l’octet d’entrée EB 0 = OUI")
1 La valeur erronée se trouve dans l’ACCU 2-L.
Test du mot de commande Vous pouvez lire l’état du mot de commande par la séquence de pro-gramme suivante :
1) Charger le numéro de fonction 2 ou 3 dans l’ACCU 2-L
2) Charger la valeur 0 dans l’ACCU 1
3) Appeler le bloc OB 142
4) Lire le contenu de l’ACCU 1
Tableau 6-10 Codes d’erreur de l’OB 142 dans l’ACCU 1-L
OB 142 : Activation/désactivation du retardement général d’alarmes
Programmation de la CPU 9486 - 34 C79000-G8577-C848-04
6.12 OB 143 : Activation/désactivation du retardement sélectif d’alarmesd’horloge cycliques
Le bloc OB 143 permet d’éviter l’interruption du programme à la find’un ou de plusieurs blocs ou instructions successifs par certains OBd’alarmes d’horloge cycliques (alarmes d’horloge avec base de tempsfixe). Cette fonction vous permet, par exemple, d’empêcher l’interrup-tion d’une certaine partie du programme par un OB 10 (période 1) ouun OB 11 (période 2), les autres alarmes d’horloge programmées étanttraitées comme d’habitude.
Fonction L’OB 143 exerce une influence sur la réaction aux alarmes d’horloge. "Activation du retardement sélectif d’alarmes d’horloge cycliques" si-gnifie que toutes les alarmes qui se présentent continuent d’être enregi-strées et que les alarmes d’horloge existant déjà restent enregistrées.Les alarmes d’horloge indiquées dans le mot de commande ne sonttoutefois pas traitées dans un premier temps. En d’autres termes, lesfins de bloc et d’instruction sont masquées pour le traitement de cesalarmes d’horloge. Seul un OB d’alarme d’horloge (pour le traitementd’une alarme d’horloge avec base de temps fixe) déjà en coursd’exécution est traité dans sa totalité.
"Désactivation du retardement sélectif d’alarmes d’horloge cycliqu-es" signifie que toutes les alarmes enregistrées sont traitées à la limitede bloc ou d’instruction suivante (selon le paramétrage du DX 0).
Paramètres 1) Mot de commande
L’OB 143 inscrit les alarmes d’horloge à retarder dans un mot de com-mande interne.
Bit 15 0
Mot de commande
Les bits de ce mot de commande ont la signification suivante :
Bit Alarme
0 à 2 réservés, ces bits doivent rester à 0.
3 = "1"4 = "1"5 = "1"6 = "1"7 = "1"8 = "1"
Alarmes d’horloge cycliques avec base de temps fixePériode 1 (OB 10)Période 2 (OB 11)Période 3 (OB 12)Période 4 (OB 13)Période 5 (OB 14)Période 6 (OB 15)
OB 143 : Activation/désactivation du retardement sélectif d’alarmes d’horloge cycliques
Programmation de la CPU 948C79000-G8577-C848-04 6 - 35
Bit Alarme
(suite) 9 = "1"10 = "1"11 = "1"
Période 7 (OB 16)Période 8 (OB 17)Période 9 (OB 18)
12 à 15 réservés, ces bits doivent rester à 0.
Tant qu’un bit est à 1, l’alarme correspondante est inhibée.
2) Accumulateurs
a) ACCU 2-L
Numéro de fonctionValeurs admises 1, 2 ou 3
1 : Le contenu de l’ACCU 1 est transféré dans le mot de commande.
2 : Tous les bits à 1 dans le masque se trou-vant dans l’ACCU 1 sont mis à 1 dans le mot de commande. Le nouveau mot de commande est chargé dans l’ACCU 1.
3 : Tous les bits à 1 dans le masque se trou-vant dans l’ACCU 1 sont mis à 0 dans le mot de commande. Le nouveau mot de commande est chargé dans l’ACCU 1.
b) ACCU 1
Nouveau mot de commande ou masque selon la fonction désirée
Résultat Après traitement correct et sans erreur, le programme système met leRLG à 0.L’appel de l’OB 143 donne les résultats suivants :
N° fonction dans
ACCU 2-L
Contenu de l’ACCU 1
Avant Après
1
2
3
Mot de commande
Masque
Masque
Mot de commande
Nouveaumot de commande
Nouveaumot de commande
OB 143 : Activation/désactivation du retardement sélectif d’alarmes d’horloge cycliques
Programmation de la CPU 9486 - 36 C79000-G8577-C848-04
Erreurs possibles Le tableau suivant présente les erreurs pouvant se produire. En casd’erreur, le programme système met le RLG à 1 et inscrit le code cor-respondant dans l’ACCU 1-L.
Code Signification
8F01H8F02H
Numéro de fonction incorrect dans l’ACCU 2-L 1
Un des bits réservés dans l’ACCU 1 est à 1 1.
1 La valeur erronée se trouve dans l’ACCU 2-L.
Test du mot de commande •• Vous pouvez lire l’état du mot de commande par la séquence deprogramme suivante :
1) Charger le numéro de fonction 2 ou 3 dans l’ACCU 2-L
2) Charger la valeur 0 dans l’ACCU 1
3) Appeler le bloc OB 143
4) Lire le contenu de l’ACCU 1
Tableau 6-11 Codes d’erreur de l’OB 143 dans l’ACCU 1-L
OB 143 : Activation/désactivation du retardement sélectif d’alarmes d’horloge cycliques
Programmation de la CPU 948C79000-G8577-C848-04 6 - 37
6.13 OB 150 : Génération et lecture de l’horodateur interne
Propriétés de l’horodateur •• L’horodateur est sauvegardé par la pile dans le châssis de l’automa-te. Une fois réglé, sa valeur en cours est conservée même en cas decoupure de la tension.
•• L’horodateur présente une précision de 10 ms à la lecture et de 1seconde au réglage.
•• Les années bissextiles sont prises en considération.
•• Pour la représentation de l’heure, vous pouvez choisir entre le for-mat de 24 heures et celui de 12 heures "am" (matin) et "pm" (après-midi).
•• Indication du jour de la semaine
•• Les entrées et sorties se font en code DCB.
Fonction L’OB 150 permet de lire ou de générer dans votre programme utilisa-teur la date et l’heure de la CPU 948, c’est-à-dire l’horodateur interne.
NotaL’horodateur est démarré − sur une valeur prédéfinie − aprèsenfichage de la CPU.
Paramètres 1) Champ de données pour les paramètres de l’horodateur
A la génération de l’horodateur, l’OB 150 reprend les valeurs inscri-tes dans le champ de données ; à la lecture de l’horodateur, il inscritles valeurs en cours dans le champ de données. Ce champ de donnéespeut figurer dans un bloc de données ou dans une zone de mémentos(mémentos M ou S).
Le champ de données se compose de 4 mots.
a) Format du champ de données pour la génération de l’horodateur
Bit 15 12 11 8 7 4 3 0
Mot 1 Secondes 0
Mot 2 Format Heures Minutes
Mot 3 Jour du mois Jour de la semaine 0
Mot 4 Année Mois
OB 150 : Génération et lecture de l’horodateur interne
Programmation de la CPU 9486 - 38 C79000-G8577-C848-04
b) Format du champ de données pour la lecture de l’horodateur
Bit 15 12 11 8 7 4 3 0
Mot 1 Secondes Centièmes de seconde
Mot 2 Format Heures Minutes
Mot 3 Jour du mois Jour de la semaine 0
Mot 4 Année Mois
Les paramètres peuvent prendre les formats et valeurs ci-après.
Paramètre Valeurs admises Représentation
SecondesCentièmes desecondeMinutesHeures
Jour de la semaineJour du mois1
MoisAnnée
0 à 590 à 99 (0 pour la génération
de l’horodateur)0 à 590 à 23 ou 1 à 12, selon le format de l’heure0 à 6 pour lundi à dimanche1 à 31 1 à 120 à 99
Format DCB
Format HeureBit 15 = 0 : Format de 12 h
(choix "am" ou "pm" dans bit 14)
Bit 15 = 1 : Format de 24 h (bit 14 = 0)
Bit 14 = 0 : "am"Bit 14 = 1 : "pm"
–
1 La valeur indiquée fait l’objet d’un contrôle de plausibilité compte tenu des années bissextiles.
Champ de données dans lazone des mémentos
Si le champ de données se trouve dans une zone de mémentos, vousdevez tenir compte de la correspondance présentée dans le tableau ci-après entre les mots du champ de données et les octets de mémentos."x" représente le paramètre "numéro du premier mot du champ dedonnées" que vous devez spécifier dans l’ACCU 1-L lors de l’appelde l’OB 150.
Bit 15 8 7 0
1er mot du champ Octet de mémentos x Octet de mémentos x+1
2e mot du champ Octet de mémentos x+2 Octet de mémentos x+3
3e mot du champ Octet de mémentos x+4 Octet de mémentos x+5
4e mot du champ Octet de mémentos x+6 Octet de mémentos x+7
OB 150 : Génération et lecture de l’horodateur interne
Programmation de la CPU 948C79000-G8577-C848-04 6 - 39
2) Accumulateurs
a) ACCU 2-L
L’ACCU 2-L contient des indications sur la fonction désirée et sur lechamp de données utilisé. Il doit être structuré comme suit.
Bit 15 12 11 8 7 4 3 0
N° de fonction Type zone d’adr. N° du bloc de données
Paramètres dans l’ACCU 2-L
Numéro de fonctionValeurs admises 1 = génération de l’horodateur
2 = lecture de l’horodateur
Type de zone d’adressageValeurs admises 1 = bloc de données DB
2 = bloc de données DX3 = zone de mémentos M4 = zone de mémentos S
Numéro du bloc de donnéesValeurs admises 3 à 255 (uniquement pour le type de zone d’adres-
sage 1 ou 2 ; sans objet pour les types 3 et 4)
b) ACCU 1-L
Numéro du premier mot du champ de donnéesValeurs admises (en fonction du type de zone d’adressage)
DB, DX 0 à 2039Mémentos M 0 à 248
(n° d’octet de mémentos x)Mémentos S 0 à 4088
(n° d’octet de mémentos x)
Résultat Après traitement correct de l’OB 150, le RLG et les indicateurs OU,1e ? et OVFLMEM sont égaux à zéro.
Erreurs possibles Le tableau suivant présente les erreurs pouvant se produire. En casd’erreur, le programme système met le RLG à 1 et inscrit le code cor-respondant dans l’ACCU 1.
OB 150 : Génération et lecture de l’horodateur interne
Programmation de la CPU 9486 - 40 C79000-G8577-C848-04
Code Signification
9601H960FH9611H9612H9613H9614H9615H9621H9622H9623H9624H
9625H9626H9627H9628H
9629H
Bloc de données non chargéAppel multiple du blocNuméro de fonction incorrectType de zone d’adressage incorrectNuméro de bloc de données incorrectNuméro du premier mot du champ de données incorrectLongueur du bloc de données inférieure à 4 motsIndication de l’année incorrecte dans le champ de donnéesIndication du mois incorrecte dans le champ de donnéesIndication du jour incorrecte dans le champ de donnéesIndication du jour de la semaine incorrecte dans le champde donnéesIndication des heures incorrecte dans le champ de donnéesIndication des minutes incorrecte dans le champ de donnéesIndication des secondes incorrecte dans le champ de donnéesCentièmes de seconde dans le champ de données différents de 0Format de l’heure différent de celui spécifié dans l’OB 151
NotaS’il se produit une erreur de paramétrage pour la fonction degénération de l’heure alors que l’horodateur a déjà été réglécorrectement au moins une fois auparavant, vous obtenez certesles codes d’erreur décrits ci-dessus, mais l’horodateur continue àfonctionner avec les valeurs du paramétrage précédent.
Exemples
Tableau 6-12 Codes d’erreur de l’OB 150 dans l’ACCU 1
Génération de l’horodateur
Il s’agit de régler l’horodateur comme suit :
Je, 21.10.1993, 11 heures 30 minutes 0 seconde, format de 24 heures
Les paramètres figurent dans le DB 10 à partir du mot de données DW 0.
DB 100: KH = 0 0 0 0 Octet de gauche = secondes (DCB), octet de droite = 0
1: KH = 9 1 3 0 91 = format (= 80H) + heure (= 11 DCB)30 = minutes (DCB)
2: KH = 2 1 3 0 21 = jour du mois (DCB)30 = jour de la semaine (3 = jeudi) + bits 0 à 3 = 0
3: KH = 9 3 1 0 93 = année (DCB)10 = mois (DCB)
Suite à la page suivante
OB 150 : Génération et lecture de l’horodateur interne
Programmation de la CPU 948C79000-G8577-C848-04 6 - 41
Génération de l’horodateur (suite)
Instructions STEP 5 dans l’OB 1 pour l’appel de l’OB 150
: ::L KH 1 1 0 A Valeurs pour l’ACCU 2-L :: Numéro du DB = 10: Type de zone d’adressage = 1 pour : "champ de données dans DB": Numéro de fonction = 1 pour "génération":L KF +0 ACCU 1-L : : Numéro du premier mot du champ de données = 0:SPA OB 150 Appel de l’OB 150:
Lecture de l’horodateur
Il s’agit d’écrire la valeur en cours de l’horodateur dans le bloc de donnéesDB 10 à partir du mot de données DW 4. A cet effet, vous devez appelerl’OB 150 avec les paramètres suivants :
::L KH 2 1 0 A Valeurs pour l’ACCU 2-L :: Numéro du DB = 10: Type de zone d’adressage = 1 pour : "champ de données dans DB": Numéro de fonction = 2 pour "lecture":L KF +4 ACCU 1-L :: Numéro du premier mot du champ de données = 4:SPA OB 150 Appel de l’OB 150:A DB 10 Ouverture du DB 10: Exploitation du DB 10
Après l’appel de l’OB 150, la valeur en cours de l’horodateur est inscritesous la forme ci-après dans le bloc de données DB 10 (Je, 21.10.93, 11heures 30 minutes 20 secondes, 13 centièmes de seconde, format de 24heures).
DW 4: KH = 2 0 1 3 Secondes = 20 (DCB)Centièmes de seconde = 13 (DCB)
DW 5: KH = 9 1 3 0 Format = 24 heures (bit 15 = 1, bit 14 = 0)Heures = 11 (DCB), minutes = 30 (DCB)
DW 6: KH = 2 1 3 0 Jour du mois = 21 (DCB)Jour de la semaine = 3 = jeudi
DW 7: KH = 9 3 1 0 Année = 93 (DCB)Mois = 10 (DCB)
OB 150 : Génération et lecture de l’horodateur interne
Programmation de la CPU 9486 - 42 C79000-G8577-C848-04
6.14 OB 151 : Génération et lecture de l’heure de déclenchement d’unealarme d’horloge à heure fixe
Fonction L’appel de l’OB 151 permet :
•• de commander à la CPU 948 d’activer à une heure prédéfiniel’alarme d’horloge à heure fixe (contrat à heure fixe, OB 9 ; voir leparagraphe 4.5.3) :
- toutes les minutes,- toutes les heures,- tous les jours,- toutes les semaines,- tous les mois,- tous les ans,- une seule fois ;
•• de lire l’état momentané d’un contrat à heure fixe ;
•• d’annuler un contrat à heure fixe déjà généré.
Vous pouvez appeler l’OB 151 à la mise en route ou en état de marche(RUN). Une alarme d’horloge à heure fixe générée est conservée lorsd’un redémarrage automatique ou manuel. En revanche, un démarrageefface un contrat à heure fixe existant.
La génération d’un nouveau contrat à heure fixe annule automatique-ment celui en cours. On ne peut donc activer qu’une seule alarmed’horloge à heure fixe à la fois.
Paramètres 1) Champ de données pour les paramètres du contrat
Lors de la génération ou de l’annulation d’un contrat à heure fixe,l’OB 151 prélève les paramètres nécessaires dans le champ dedonnées. Lors de la lecture de l’état en cours des contrats gérés, il in-scrit les paramètres de contrat en vigueur dans le champ de données.
Vous pouvez placer ce champ de données dans un bloc de données oudans l’une des deux zones de mémentos (mémentos M ou S).
Le champ de données se compose de quatre mots et présente le formatsuivant pour la génération et la lecture d’un contrat à heure fixe.
Bit 15 12 11 8 7 4 3 0
Mot 1 Secondes 0
Mot 2 Format Heures Minutes
Mot 3 Jour du mois Jour de la semaine Type de contrat
Mot 4 Année Mois
OB 151 : Génération et lecture de l’heure de déclenchement d’une alarme d’horloge à heure fixe
Programmation de la CPU 948C79000-G8577-C848-04 6 - 43
Les paramètres peuvent prendre les formats et valeurs ci-après.
Paramètre Valeurs admises Représentation
Type de contrat 0 à 70 : annuler le contrat ou
aucun contrat en cours1 : toutes les minutes2 : toutes les heures3 : tous les jours4 : toutes les semaines5 : tous les mois6 : tous les ans7 : une seule fois
Format DCB
SecondesCentièmes desecondeMinutesHeures
Jour de lasemaineJour du mois 1
MoisAnnée
0 à 590
0 à 590 à 23 ou 1 à 12, selon le format de l’heure0 à 6 pour lundi à dimanche
1 à 31 1 à 120 à 99
Format DCB
Format 2 HeureBit 15 = 0 : Format de 12 hBit 15 = 1 : Format de 24 h
(bit 14 = 0)Bit 14 = 0 : "am"Bit 14 = 1 : "pm"
–
1 La valeur indiquée fait l’objet d’un contrôle de plausibilité compte tenu des années bissextiles.
2 Pour la signification de "am" et "pm", voir la description de l’OB 150. Le format doit coïncider avec celui spécifié dans l’OB 150 lors de la génération de l’horodateur.
Champ de données dans lazone des mémentos
Si le champ de données se trouve dans une zone de mémentos, vousdevez tenir compte de la correspondance présentée dans le tableau ci-après entre les mots du champ de données et les octets de mémentos."x" représente le paramètre "numéro du premier mot du champ dedonnées" que vous devez spécifier dans l’ACCU 1-L lors de l’appelde l’OB 151.
Bit 15 8 7 0
1er mot du champ Octet de mémentos x Octet de mémentos x+1
2e mot du champ Octet de mémentos x+2 Octet de mémentos x+3
3e mot du champ Octet de mémentos x+4 Octet de mémentos x+5
4e mot du champ Octet de mémentos x+6 Octet de mémentos x+7
OB 151 : Génération et lecture de l’heure de déclenchement d’une alarme d’horloge à heure fixe
Programmation de la CPU 9486 - 44 C79000-G8577-C848-04
2) Accumulateurs
a) ACCU 2-L
L’ACCU 2-L contient des indications sur la fonction désirée et sur lechamp de données utilisé. Il doit être structuré comme suit.
Bit 15 12 11 8 7 4 3 0
Numéro de fonction Type de zone d’adr. Numéro du bloc de données
Paramètres dans l’ACCU 2-L
Numéro de fonctionValeurs admises 1 = générer le contrat
2 = lire l’état du contrat
Type de zone d’adressageValeurs admises 1 = bloc de données DB
2 = bloc de données DX3 = zone de mémentos M4 = zone de mémentos S
Numéro du bloc de donnéesValeurs admises 3 à 255 (uniquement pour le type de zone
d’adressage 1 ou 2 ; sans objet pour les types 3 et 4)
b) ACCU 1-L
Numéro du premier mot du champ de donnéesValeurs admises (en fonction du type de zone d’adressage)
DB, DX 0 à 2039Mémentos M 0 à 248
(n° d’octet de mémentos x)Mémentos S 0 à 4088
(n° d’octet de mémentos x)
NotaGénérer cycliquement un contrat à heure fixe − par exemple, parun appel absolu dans l’OB 1 de l’OB 151 avec numéro defonction 1 − n’a pas de sens.
Résultat Après traitement correct de l’OB 151, le RLG et les indicateurs OU,1e ? et OVFLMEM sont égaux à zéro.
OB 151 : Génération et lecture de l’heure de déclenchement d’une alarme d’horloge à heure fixe
Programmation de la CPU 948C79000-G8577-C848-04 6 - 45
NotaSi, à la lecture du contrat à heure fixe, le champ de donnéescontient le type de contrat 0 et les valeurs hexadécimales F ouFF pour tous les autres paramètres, vous pouvez en déduirequ’aucun contrat à heure fixe n’est actif. Cela peut se présenter :
a) si vous avez exécuté un démarrage sans générer de contrat à heure fixe,
b) si un contrat à heure fixe unique est arrivé à échéance
c) ou si vous avez annulé un contrat.
Erreurs possibles Le tableau suivant présente les erreurs pouvant se produire. En casd’erreur, le programme système met le RLG à 1 et inscrit le code cor-respondant dans l’ACCU 1.
Code Signification
9701H970FH9710H
9711H9712H9713H9714H9715H9721H9722H9723H9724H
9725H9726H9727H
9728H
9729H
972AH
Bloc de données non chargéAppel multiple du blocMode de fonctionnement incorrect (Alarmes de processus via octet d’entrée EB 0 = OUI)Numéro de fonction incorrectType de zone d’adressage incorrectNuméro de bloc de données incorrectNuméro du premier mot du champ de données incorrectLongueur du bloc de données inférieure à 4 motsIndication de l’année incorrecte dans le champ de donnéesIndication du mois incorrecte dans le champ de donnéesIndication du jour incorrecte dans le champ de donnéesIndication du jour de la semaine incorrecte dans le champ de donnéesIndication des heures incorrecte dans le champ de donnéesIndication des minutes incorrecte dans le champ de donnéesIndication des secondes incorrecte dans le champ dedonnéesCentièmes de seconde dans le champ de données différents de 0Format de l’heure différent de celui spécifié dans l’OB 121/OB 150Type de contrat incorrect
NotaS’il se produit une erreur de paramétrage alors qu’un contrat àheure fixe valable a déjà été généré auparavant, vous obtenezcertes les codes d’erreur décrits ci-dessus, mais le contrat àheure fixe généré précédemment reste actif.
Tableau 6-13 Codes d’erreur de l’OB 151 dans l’ACCU 1
OB 151 : Génération et lecture de l’heure de déclenchement d’une alarme d’horloge à heure fixe
Programmation de la CPU 9486 - 46 C79000-G8577-C848-04
Paramètres d’horodatage Selon la périodicité voulue pour le déclenchement d’une alarme d’hor-loge à heure fixe (contrat à heure fixe), vous devez spécifier lesdifférents paramètres d’horodatage dans des combinaisons bien défi-nies. L’indication de certains paramètres est impérative suivant la dateet l’heure choisies pour l’alarme alors que d’autres paramètres ne sontpas exploités par le programme système.
Le tableau ci-après précise quels sont les paramètres d’horodatage ob-ligatoires pour les différents types de contrat à heure fixe (XXX = indi-cation impérative, --- = non significatif).
Contrat à heure fixe
Secondes Minutes Heures Jour de la
semaine
Jour du mois
Mois Année
Toutes les minutesToutes les heuresTous les joursToutes les semainesTous les moisTous les ansUne seule fois
XXXXXXXXXXXXXXXXXXXXX
---XXXXXXXXXXXXXXXXXX
------
XXXXXXXXXXXXXXX
---------
XXX---------
------------
XXXXXXXXX
---------------
XXXXXX
------------------
XXX
Lors de la lecture des paramètres d’horodatage, les paramètres non si-gnificatifs reçoivent la valeur hexadécimale FF.
Particularités •• Si, pour le type de contrat annuel (6), vous choisissez le 29 février,l’OB 9 ne sera appelé que toutes les années bissextiles.
•• Si, pour le type de contrat mensuel (5), vous choisissez la valeur29, 30 ou 31 pour le jour du mois, l’OB 9 ne sera appelé que lesmois ayant ce nombre de jours.
Tableau 6-14 Combinaisons entre contrats à heure fixe et paramètres d’horodatage
OB 151 : Génération et lecture de l’heure de déclenchement d’une alarme d’horloge à heure fixe
Programmation de la CPU 948C79000-G8577-C848-04 6 - 47
Exemples
Exemples de contrat à heure fixe (en format de 24 heures)
1) Contrat à la 29 e seconde de chaque minute (12:44:29, 12:45:29 etc.)
Paramètres à indiquerType de contrat = 1 (n° de fonction dans l’ACCU 2-L = 1)Secondes = 29
2) Contrat toutes les heures à xx:14:15 h
Paramètres à indiquerType de contrat = 2 (n° de fonction dans l’ACCU 2-L = 1)Secondes = 15Minutes = 14
3) Contrat tous les jours à 5:32:47 h
Paramètres à indiquerType de contrat = 3 (n° de fonction dans l’ACCU 2-L = 1)Secondes = 47Minutes = 32Format/heures = 85
4) Contrat toutes les semaines, le mardi à 10:50:00 h
Paramètres à indiquerType de contrat = 4 (n° de fonction dans l’ACCU 2-L = 1)Secondes = 00Minutes = 50Format/heures = 90Jour de la semaine = 01
5) Contrat tous les mois, le 14 à 7:30:15 h
Paramètres à indiquerType de contrat = 5 (n° de fonction dans l’ACCU 2-L = 1)Secondes = 15Minutes = 30Format/heures = 87Jour du mois = 14
6) Contrat tous les ans, le 1 er mai à 00:01:45 h
Paramètres à indiquerType de contrat = 6 (n° de fonction dans l’ACCU 2-L = 1)Secondes = 45Minutes = 01Format/heures = 80Jour du mois = 01Mois = 05
Suite à la page suivante
OB 151 : Génération et lecture de l’heure de déclenchement d’une alarme d’horloge à heure fixe
Programmation de la CPU 9486 - 48 C79000-G8577-C848-04
Exemples de contrat à heure fixe (en format de 24 heures), suite
7) Contrat unique, le 31.12.1999 à 23:55:00 h
Paramètres à indiquerType de contrat = 7 (n° de fonction dans l’ACCU 2-L = 1)Secondes = 00Minutes = 55Format/heures = A3Jour du mois = 31Mois = 12Année = 99
8) Annulation du contrat
Paramètres à indiquerType de contrat = 0 (n° de fonction dans l’ACCU 2-L = 1)
9) Lecture du contrat
Paramètres à indiquerNuméro de fonction dans l’ACCU 2-L = 2
Si aucun contrat n’est actif, vous obtenez les valeurs suivantes dans le champ de données.
Mot 0 du champ de données : FFFF HMot 1 du champ de données : FFFF HMot 2 du champ de données : FFF0 HMot 3 du champ de données : FFFF H
OB 151 : Génération et lecture de l’heure de déclenchement d’une alarme d’horloge à heure fixe
Programmation de la CPU 948C79000-G8577-C848-04 6 - 49
6.15 OB 153 : Génération et lecture de l’heure de déclenchement d’unealarme de retardement
Avec l’OB 153, vous pouvez transmettre des "contrats de retarde-ment" au programme système afin que des "alarmes de retardement"soient traitées à l’écoulement d’un temps de retard donné (voir l’OB 6au paragraphe 4.5.3).
Fonction L’appel de l’OB 153 permet :
•• de définir et de lancer une alarme de retardement,
•• d’arrêter une alarme de retardement activée (annulation d’un con-trat de retardement),
•• de lire le temps restant avant échéance d’une alarme de retarde-ment.
Vous pouvez émettre un contrat de retardement via l’OB 153 dans lesétats de fonctionnement "mise en route" et "marche" (RUN).
Durée de vie d’un contrat deretardement
Toutefois, le programme système n’active l’alarme de retardementdéclenchée par un contrat de retardement qu’en état de marche RUN(appel de l’OB 6).Il refuse sans émettre de message les contrats arrivant à échéance endehors de l’état RUN.Il rejette également un contrat en cours mais non encore à échéancelors du passage à l’arrêt (STOP) ou en cas de coupure de l’alimentati-on.
Paramètres Accumulateurs
a) ACCU 2-L
L’ACCU 2-L ne doit contenir de valeur que si vous appelez l’OB 153avec le numéro de fonction 1 (définition d’une alarme de retardement).
Temps de retard en millisecondes (65 535 au maximum)
Valeurs admises : 0001H à FFFFH
b) ACCU 1-L
Numéro de fonctionValeurs admises 1 = Définir et lancer une alarme de retardement
2 = Arrêter une alarme de retardement (annuler le contrat)3 = Lire le temps restant avant échéance
OB 153 : Génération et lecture de l’heure de déclenchement d’une alarme de retardement
Programmation de la CPU 9486 - 50 C79000-G8577-C848-04
NotaSi, lors de la définition d’une alarme de retardement, une alarmede retardement définie auparavant n’est pas encore arrivée àéchéance, cette dernière est annulée et la nouvelle alarme estdémarrée.
Résultat Après traitement correct de l’OB 153, le RLG et les indicateurs OU,1e ? et OVFLMEM sont égaux à zéro.
Lors de l’appel de l’OB 153 avec le numéro de fonction 2 ou 3,l’ACCU 1-L contient le temps restant avant échéance en milli-secondes.
Si, à l’appel de l’OB 153 avec le numéro de fonction 2 ou 3, aucuncontrat de retardement n’est actif, l’ACCU 1-L contient la valeur 0.
Erreurs possibles Le tableau suivant présente les erreurs pouvant se produire. En casd’erreur, le programme système met le RLG à 1 et inscrit le code cor-respondant dans l’ACCU 1.
Code Signification
990FH9910H
9911H9921H
Appel multiple du blocMode de fonctionnement incorrect (Alarmes de processus via octet d’entrée EB 0 = OUI)Numéro de fonction incorrectTemps de retard incorrect
Exemples
Tableau 6-15 Codes d’erreur de l’OB 153
Définir et lancer une alarme de retardement
Il s’agit d’exécuter une fois une suite donnée d’instructions STEP 5 après5 secondes lors d’un redémarrage automatique. A cet effet, une alarme deretardement est définie et lancée dans le bloc d’organisation de démarrageOB 22.
Instructions STEP 5 dans l’OB 22 pour l’appel de l’OB 153
: ::L KF +5000 Valeur pour l’ACCU 2-L : 5000 ms:L KF +1 Valeur pour l’ACCU 1-L : numéro de fonction = 1 pour : "définir et lancer une alarme de retardement":SPA OB 153 Appel de l’OB 153:
OB 153 : Génération et lecture de l’heure de déclenchement d’une alarme de retardement
Programmation de la CPU 948C79000-G8577-C848-04 6 - 51
Lire le temps restant avant échéance d’une alarme de retardement
Instructions STEP 5 pour l’appel de l’OB 153
: ::L KF +3 Valeur pour l’ACCU 1-L : numéro de fonction = 3 pour : "lire le temps restant avant échéance":SPA OB 153 Appel de l’OB 153:: L’ACCU 1-L contient le temps restant avant que le : contrat de retardement ne soit déclenché.:
Arrêter une alarme de retardement (annuler le contrat)
Instructions STEP 5 pour l’appel de l’OB 153
: ::L KF +2 Valeur pour l’ACCU 1-L : numéro de fonction = 2 pour: "annuler une alarme de retardement":SPA OB 153 Appel de l’OB 153::
OB 153 : Génération et lecture de l’heure de déclenchement d’une alarme de retardement
Programmation de la CPU 9486 - 52 C79000-G8577-C848-04
6.16 OB 180 : Accès variable à un bloc de données
Utilisation de l’OB 180 L’OB 180 s’avère utile pour les blocs de données ayant une longueursupérieure à 261 mots (en-tête de 5 mots inclus). En effet, cet OBvous permet de décaler la fenêtre d’accès à un bloc de données de256 mots de données par pas de 16 mots (adresses de paragraphe).L’appel renouvelé de l’OB 180 permet de poursuivre le décalage de lafenêtre d’accès.
Contrairement à ce qui est possible dans la CPU 928B, vous ne pou-vez pas, dans la CPU 948, décaler la fenêtre d’accès de manière conti-nue, mais uniquement par des multiples de 16.
Fonction L’OB 180 décale de la valeur précisée l’adresse de début du bloc dedonnées en cours vers la fin du bloc. Ce faisant, le système tient comp-te du fait que la longueur du bloc de données diminue (chargementdes registres DBA et DBL correspondant au décalage ; voir para-graphes 8.3 et 9.2.1).
NotaUn bloc de données DB ou DX suffisamment long doit êtrechargé avant l’appel de l’OB 180.
Paramètres ACCU 1-L
Décalage D Nombre de mots de données duquel l’adresse de début du bloc de données doit être décalée
Valeurs admises 0 ≤ D < DBL, D = n * 16(16, 32, 48, etc.)
Résultat Si l’appel de l’OB 180 s’exécute sans erreur :
•• L’adresse relative du DW 0 est décalée de la valeur figurant dansl’ACCU 1-L (les registres DBA et DBL sont modifiés enconséquence) ;
•• Le résultat logique RLG est mis à 0 ;
•• tous les autres indicateurs sur bit et sur mot sont effacés ;
•• le contenu de l’ACCU 1-L est égal à 0.
OB 180 : Accès variable à un bloc de données
Programmation de la CPU 948C79000-G8577-C848-04 6 - 53
Erreurs possibles Il peut se produire les erreurs présentées dans le tableau suivant. En cas d’erreur, le programme système met le RLG à 1 et dépose dansl’ACCU 1 le code d’erreur correspondant (cf. tableau). Les autres indi-cateurs sur bit et sur mot sont effacés. Les valeurs de DBA et de DBL restent inchangées.
Code Signification
B401HB410HB411H
Aucun bloc de données n’est ouvert.La valeur de décalage D n’est pas un multiple de 16.a) La valeur de décalage D est trop grande : la nouvelle
position de la fenêtre va au-delà de la fin de bloc.b) La valeur de décalage D est négative.
Restauration de l’état initial Il suffit de rouvrir le bloc de données avec l’opération A DB ouAX DX pour restaurer l’état initial.
Comportement en casd’imbrication de blocs
Si la fenêtre d’accès est décalée par l’appel de l’OB 180 dans un blocde code et qu’un autre bloc de code soit ensuite appelé, la position dela fenêtre d’accès est conservée dans le bloc de code appelé – les va-leurs de DBA et DBL ne sont pas modifiées – jusqu’à nouvel appel del’OB 180.
En revanche, si la fenêtre d’accès est décalée par l’intermédiaire del’OB 180 dans un bloc de code appelé, la position de la fenêtre rede-vient, au retour dans le bloc appelant (opération de fin de bloc), cequ’elle était à l’appel du bloc de code imbriqué.
Tableau 6-16 Codes d’erreur de l’OB 180
OB 180 : Accès variable à un bloc de données
Programmation de la CPU 9486 - 54 C79000-G8577-C848-04
Exemple
Il s’agit de décaler l’adresse de début (DBA = 4152H) du bloc de donnéesDB 17 ayant une longueur de 256 mots de données de 32 mots vers la fin dubloc.
:A DB 17 Ouvrir DB 17:L KB 32 Valeur de décalage comme constante:SPA OB 180 Appeler OB 180 pour décaler la fenêtre d’accès
Après l’appel de l’OB 180, il est possible d’accéder, par exemple, au motde données figurant à l’adresse 4 1543H par l’intermédiaire de DW 3 au lieude DW 35 (voir figure 6-3).
Comme le registre DBL est modifié simultanément, la surveillance deserreurs est toujours garantie : l’opération T DW 223 est autorisée alorsque T DW 224/L DW 224 ne l’est pas.
D’autres appels de l’OB 180 entraînent l’augmentation de la valeur de DBAet la diminution simultanée de DBL. L’opération A DB 17 restaure l’étatinitial (DBA = 4152H, longueur = 256 DW).Si le DB 17 avait une longueur de 258 mots par exemple, vous ne pourriezpas accéder aux mots de données DW 256 et DW 257 à l’aide d’opérationsSTEP 5. Un décalage de 16 du registre DBA permet d’accéder à ces mots dedonnées en tant que DW 240 et DW 241.
Suite à la page suivante
OB 180 : Accès variable à un bloc de données
Programmation de la CPU 948C79000-G8577-C848-04 6 - 55
Suite de l’exemple
4 1520H
4 1530H
4 1540H
4 1541H
4 1542H
4 1543H
4 1544H
4 1545H
4 1545H
4 151FH
4 151BH
DW 0
DW 1
DW 2
DW 3
DW 4
DW 5
DW 6
Adresse DB 17
DBA nouveau
En-tête de bloc5 mots
DBL ancien
DBA ancien
DBL nouveau
15 0
"32"
"16"
"00"
"33"
"34"
"35"
"36"
"37"
"38"
(4152H)
(4154H)
Figure 6-3 Décalage de l’adresse de début du DB 17
OB 180 : Accès variable à un bloc de données
Programmation de la CPU 9486 - 56 C79000-G8577-C848-04
6.17 OB 181 : Test de blocs de données DB/DX
Le bloc d’organisation de fonction spéciale OB 181 permet de con-trôler :
•• si un certain bloc de données DB ou DX existe,
•• l’adresse du premier mot de données de ce bloc de données,
•• le nombre de mots de données contenus dans ce bloc de données.
Utilisation de l’OB 181 L’emploi de l’OB 181 s’avère utile avant l’exécution des instructionsTNB/TNW, E DB/EX DX et avant l’appel des blocs d’organisation defonctions spéciales OB 182, OB 254 et OB 255.
C’est ainsi que vous pouvez, par exemple, appeler l’OB 181 avant dedéclencher le transfert d’un ensemble de mots de données, afin devous assurer que le DB de destination est valable et a une longueursuffisante pour pouvoir recevoir tous les mots de données que vousdésirez transférer.
Fonction Après avoir vérifié que le bloc de données existe, l’OB 181 transmeten retour les paramètres caractéristiques de ce bloc.
Paramètres ACCU 1-L
a) ACCU 1-LL
Numéro du bloc de donnéesValeurs admises 1 à 255
b) ACCU 1-LH
Type du bloc de donnéesValeurs admises 1 = DB
2 = DX
OB 181 : Test de blocs de données DB/DX
Programmation de la CPU 948C79000-G8577-C848-04 6 - 57
Résultat Si la fonction s’exécute sans erreur et que le bloc concerné existe dansla CPU, le programme système transmet les résultats suivants :
– ACCU 1-L Adresse de 20 bits du premier mot de données (DW 0)
– ACCU 2-L Longueur du bloc de données exprimée en mots (en-tête non compris),Exemple : l’ACCU 2-L contient la valeur "7" : le bloc de données comprend les DW 0 à DW 6.
– RLG Mis à "0"
Erreurs possibles Le tableau suivant présente les erreurs pouvant se produire. En casd’erreur, le programme système met le RLG et certains des indica-teurs figurant dans le tableau à 1 et inscrit le code d’erreur correspon-dant dans l’ACCU 1.
RLG FL 1 FL 0 ACCU 1-L Signification Test
1 0 1 B501H Bloc inexistant SPBSPMSPN
1 1 0 B502H Numéro de bloc incorrect SPBSPPSPN
1 1 0 B503H Type de bloc incorrect SPBSPPSPN
Tableau 6-17 Codes d’erreur de l’OB 181 et test de ces codes
OB 181 : Test de blocs de données DB/DX
Programmation de la CPU 9486 - 58 C79000-G8577-C848-04
6.18 OB 182 : Duplication d’une zone de données
Fonction L’OB 182 réalise la duplication d’un ensemble (ou paquet) dedonnées de longueur variable d’un bloc de données vers un autre. Lesblocs de données source et destination peuvent être des DB et des DX.Vous pouvez choisir librement le début des données dans le blocsource et le bloc de destination. L’OB 182 peut dupliquer 4091 motsde données au maximum.
NotaLe bloc de destination peut être le même bloc que le bloc source.Les zones de données source et destination peuvent se recouper.Même en cas de chevauchement, les données de la zone sourcesont reproduites sans changement dans la zone de destination ; le domaine de chevauchement de la zone source ne contiendraplus les données d’origine après la duplication. Cette propriétépeut être mise à profit de façon ciblée, par exemple pour décalerun ensemble de mots de données à l’intérieur d’un bloc.
Paramètres 1) Champ de données avec paramètres de duplication
Avant d’appeler l’OB 182, vous devez compléter un champ dedonnées avec les paramètres requis pour la duplication envisagée. Cechamp de données peut se situer dans un bloc DB ou DX ou dans lazone des mémentos M ou S.
Dans le champ de données sont précisés le bloc de données source, lebloc de données de destination, l’adresse de début des données à co-pier dans chacun des deux blocs, ainsi que le nombre de mots dedonnées à transférer. Le champ de données a une longueur de 5 mots.
Bit 15 8 7 0
Mot 1 Type de DB source Numéro du DB source
Mot 2 Numéro du premier DW (dans DB source) à transférer
Mot 3 Type de DB de destination Numéro du DB de destination
Mot 4 Numéro du premier DW transféré dans le DB de destination
Mot 5 Nombre de mots de données
OB 182 : Duplication d’une zone de données
Programmation de la CPU 948C79000-G8577-C848-04 6 - 59
Les paramètres peuvent admettre les valeurs ci-après :
Paramètre Valeurs admises
Type de bloc de données (source et destination) 1 = DB2 = DX
Numéro de bloc de données (source et destination) 3 à 255
Numéro du premier mot de données (source etdestination)
0 à 4090
Nombre de mots de données 1 à 4091
Champ de données dans lazone des mémentos
Lorsque vous créez le champ de données dans une zone de mémentos,vous devez tenir compte de la correspondance suivante entre les motsdu champ de données et les octets de mémentos. Dans le tableauci-après, "x" représente le paramètre "numéro du premier mot duchamp de données" que vous spécifiez dans l’ACCU 1-L lors del’appel de l’OB 182.
Bit 15 8 7 0
1er mot du champ Octet de mémentos x Octet de mémentos x+1
2e mot du champ Octet de mémentos x+2 Octet de mémentos x+3
3e mot du champ Octet de mémentos x+4 Octet de mémentos x+5
4e mot du champ Octet de mémentos x+6 Octet de mémentos x+7
5e mot du champ Octet de mémentos x+8 Octet de mémentos x+9
2) Accumulateurs
a) ACCU 2-L
L’ACCU 2-L contient des indications sur le champ de données utilisé.Il doit présenter la structure suivante.
Bit 15 8 7 0
Type de zone d’adressage Numéro du bloc de données
Paramètres dans l’ACCU 2-L
Type de zone d’adressageValeurs admises 1 = bloc DB
2 = bloc DX3 = zone de mémentos M4 = zone de mémentos S
Numéro du bloc de donnéesValeurs admises 3 à 255 (pour types de zone d’adressage 1
et 2 ; non significatif pour types de zone d’adressage 3 et 4)
OB 182 : Duplication d’une zone de données
Programmation de la CPU 9486 - 60 C79000-G8577-C848-04
b) ACCU 1-L
Numéro du premier mot du champ de donnéesValeurs admises (en fonction du type de zone d’adressage)
DB, DX 0 à 2038mémentos M 0 à 246
(= no octet de mémentos "x")mémentos S 0 à 4086
(= no octet de mémentos "x")
Résultat Après le traitement correct de l’OB 182, le RLG et les bits indicateursOU, 1e ? et OVFLMEM égalent 0.
Erreurs possibles A l’apparition d’une erreur, l’ACCU 1-L contient des codes d’erreur(cf. le tableau ci-après).
ACCU 1-L Signification
B601HB60FHB611HB612HB613HB621HB622HB623HB624H
B625H
B626HB627HB628H
B629H
B62AH
B62BHB62CH
Bloc de données non chargéAppel multiple du blocDéfinition incorrecte du champ de donnéesType de zone d’adressage illiciteNuméro de bloc de données illiciteNuméro du premier mot du champ de données illiciteType du bloc de données source illiciteNuméro du bloc de données source illiciteNuméro du premier DW (du DB source) à transférer
illiciteLongueur du bloc de données source dans l’en-tête
inférieure à 5 motsType du bloc de données de destination illiciteNuméro du bloc de données de destination illiciteNuméro du premier DW à écrire dans le DB de
destination illiciteLongueur du bloc de données de destination dans
l’en-tête inférieure à 5 motsNombre de mots de données à transférer illicite
(= 0 ou > 4091)Bloc de données source trop courtBloc de données de destination trop court
Tableau 6-18 Codes d’erreur de l’OB 182 dans l’ACCU 1-L
OB 182 : Duplication d’une zone de données
Programmation de la CPU 948C79000-G8577-C848-04 6 - 61
6.19 OB 200 et OB 202 à OB 205 : Communication multiprocesseur
Une description détaillée de ces OB de fonctions spéciales figure dansle chapitre 10.
Les blocs d’organisation de fonctions spéciales OB 200 et OB 202 àOB 205 permettent, en fonctionnement multiprocesseur, de transférerdes données entre les différentes CPU à l’aide du coordinateur COR C.
•• OB 200 : Initialisation
Ce bloc d’organisation organise dans le coordinateur C la mémoiredans laquelle les ensembles (ou paquets) de données à transférerseront mémorisés temporairement.
•• OB 202 : Emission
Cette fonction transmet un ensemble de données dans la mémoiretampon du coordinateur C et indique le nombre d’ensembles dedonnées pouvant encore être émis.
•• OB 203 : Test d’émission
L’OB 203 calcule le nombre de blocs de mémoire libres dans lamémoire tampon du coordinateur C.
•• OB 204 : Réception
Cette fonction reçoit un ensemble de données de la mémoiretampon du coordinateur C et indique le nombre d’ensembles dedonnées pouvant encore être reçus.
•• OB 205 : Test de réception
L’OB 205 calcule le nombre de blocs de mémoire occupés dans lamémoire tampon du coordinateur C.
OB 200 et OB 202 à OB 205 : Communication multiprocesseur
Programmation de la CPU 9486 - 62 C79000-G8577-C848-04
6.20 OB 222 : Redémarrage de la surveillance du temps de cycle
Fonction La fonction spéciale OB 222 permet de redémarrer la surveillance dutemps de cycle (réarmement du chien de garde) : le contrôle du tempsde cycle reprend au début. Grâce à l’appel de cette fonction, la duréemaximale autorisée pour le cycle en cours s’allonge, à partir du mo-ment de l’appel, du temps de cycle défini.
Paramètres Néant
Erreurs possibles Néant
OB 222 : Redémarrage de la surveillance du temps de cycle
Programmation de la CPU 948C79000-G8577-C848-04 6 - 63
6.21 OB 223 : Comparaison des types de mise en route
Fonction L’appel de l’OB 223 permet de vérifier si, en mode multiprocesseur,les types de mise en route de toutes les CPU concernées sont identiqu-es et de réagir par programme en cas d’erreur.
Paramètres Néant
Résultat Après l’appel de l’OB 223, le programme système met le RLG à 0 etinscrit la valeur 01H dans l’ACCU 1-LL si les types de démarragesont identiques.
Erreurs possibles •• Les types de mise en route sont différents.
•• Pour les autres erreurs, voir les indicateurs.
Indicateurs En cas d’erreur, le programme système met le RLG à 1 et inscrit lecode correspondant dans l’ACCU 1-LL.
Code Signification
01H02H03H04H
Types de mise en route identiquesErreur système interneTypes de mise en route différentsMode monoprocesseur : comparaison des types de mise en route impossible
Tableau 6-19 Codes d’erreur de l’OB 223 dans l’ACCU 1-LL
OB 223 : Comparaison des types de mise en route
Programmation de la CPU 9486 - 64 C79000-G8577-C848-04
6.22 OB 254 et OB 255 : Copie et duplication de blocs de données
Les fonctions spéciales OB 254 et OB 255 permettent de copier desblocs de données d’une carte à mémoire (memory card) dans lamémoire utilisateur ou de dupliquer des blocs de données à l’intérieurde la mémoire utilisateur.Elles se déroulent de façon identique, l’OB 254 se chargeant exclusi-vement des blocs de données DX et l’OB 255 des blocs de donnéesDB.
NotaLes alarmes utilisateur sont inhibées pendant la copie ou laduplication : aucune alarme d’horloge ou de processus niinterruption n’est prise en considération.
Utilisation Vous pouvez copier des blocs de données de la carte à mémoire ou du-pliquer des blocs de données dans la mémoire utilisateur en leur af-fectant un nouveau numéro de bloc.
Copie
Conditions requises Lors de la copie à l’aide des blocs OB 254 ou OB 255, il faut tenircompte des remarques suivantes.
•• La carte à mémoire doit être enfichée avant l’effacementgénéral et ne doit pas être retirée ensuite.
•• Le bloc de données cible ne doit pas encore exister.
•• La fonction en ligne de compression de la mémoire ne doit pasêtre active.
Fonction Un bloc de données est transféré de la carte à mémoire dans la mémoi-re utilisateur tout en conservant son numéro. L’adresse de début debloc est inscrite dans la liste d’adresses figurant dans le DB 0.
OB 254 et OB 255 : Copie et duplication de blocs de données
Programmation de la CPU 948C79000-G8577-C848-04 6 - 65
Paramètres 1) ACCU 1-LL
Numéro du bloc à copier
Valeurs admises
Type de bloc Numéro de bloc
DB (OB 255)DX (OB 254)
3 à 2553 à 255
2) ACCU 1-LH
L’ACCU 1-LH doit contenir la valeur 0.
Duplication
Fonction Un bloc de données est dupliqué à l’intérieur de la mémoire utilisateuret reçoit un autre numéro. L’adresse de début du nouveau bloc est in-scrite dans la liste d’adresses figurant dans le DB 0. L’adresse dedébut de l’ancien bloc dans le DB 0 est conservée ; le bloc de donnéesinitial est donc toujours valable.
L’inscription de l’adresse de début dans le DB 0 n’a lieu que lorsquele transfert est entièrement achevé et que tous les indicatifs dans l’en-tête de bloc ont été inscrits correctement. Le programme système neconsidère donc le bloc dupliqué comme valable et existant qu’après letransfert complet.
Paramètres 1) ACCU 1-LL
Numéro du bloc de données à dupliquer (source)
2) ACCU 1-LH
Numéro du nouveau bloc de données (cible)
Valeurs admises
Type de bloc Numéro de bloc
DB (OB 255)DX (OB 254)
3 à 2553 à 255
OB 254 et OB 255 : Copie et duplication de blocs de données
Programmation de la CPU 9486 - 66 C79000-G8577-C848-04
Résultat de la copie et de laduplication
Après traitement correct et sans erreur, le programme système met leRLG à 0 et efface les indicateurs FL 1 et FL 0.
L’appel des blocs OB 254 et OB 255 modifie le contenu des accumu-lateurs 1 à 4. Le registre BR reste inchangé.
Erreurs et avertissementslors de la copie et de laduplication
En cas d’erreur ou d’avertissement, le programme système interromptle traitement de l’OB 254 ou 255 et poursuit le traitement du program-me avec l’opération STEP 5 suivante. En outre, il met le RLG à 1 etinscrit un code d’erreur dans l’ACCU 1-LL (voir le tableau 6-19).
En cas d’interruption de la fonction avec avertissement, un nouvel ap-pel de la fonction spéciale (éventuellement un appel répété) permetnormalement d’aboutir à l’exécution correcte de l’OB 254/255.
Dans le cas suivant, l’exécution de l’OB 254 ou de l’OB 255 est inter-rompue avec génération d’un avertissement :
Appel réitéré d’un OB 124, OB 125, OB 254 ou OB 255 alors que mo-ins de 10 ms se sont écoulées depuis le dernier appelEn effet, en l’espace de 10 ms, un seul appel de ces fonctionsspéciales est autorisé. On évite ainsi que l’interface vers la console deprogrammation ne soit totalement bloquée par l’appel répété de cesOB de fonctions spéciales.
Indicateurs après la copie etla duplication
Après appel de l’OB 254 ou 255, vous pouvez déterminer à l’aide duRLG et des indicateurs FL 1 et FL 0 si la fonction spéciale a été traitéecorrectement ou si elle a été interrompue avec erreur ou avertisse-ment. Vous pouvez exploiter le résultat par des instructions de sautconditionnel.
Indicateurs de résultat
RLG FL 1 FL 0 Signification Test
0 0 0 La fonction spéciale a été traitée correctement.
SPBSPZ
1 1 0 La fonction spéciale a été interrompue avec avertissement.
SPBSPPSPN
1 0 1 La fonction spéciale a été interrompue avec erreur.
SPBSPMSPN
Tableau 6-20 Indicateurs de résultat des OB 254 et 255
OB 254 et OB 255 : Copie et duplication de blocs de données
Programmation de la CPU 948C79000-G8577-C848-04 6 - 67
Codes d’erreur dansl’ACCU 1-LL
Le programme système inscrit dans l’ACCU 1-LL des codes sur lerésultat du traitement, qui précisent pourquoi il y a eu avertissementou erreur.
Bit 7 6 5 0
A E Cause de l’avertissement ou de l’erreur
Des indications collectives sont définies comme suit :
Bit 7 (A) = 1 AvertissementBit 6 (E) = 1 Erreur
Code Signification
01H La fonction a été exécutée correctement.
41H43H48H4AH4BH4CH4DH4EH
ErreurEn-tête de bloc sur la carte à mémoire incorrectEspace mémoire insuffisantBloc de données source inexistantType ou numéro du bloc de données source incorrectType ou numéro du bloc de données cible incorrectBloc de données cible déjà dans la mémoire utilisateurFonction en ligne de compression de la mémoire en coursAucune carte à mémoire enfichée
8DH
8EH
AvertissementConflit avec une fonction en ligne (autre que celle decompression de la mémoire)Délai de 10 ms non encore écoulé
Exemples
Tableau 6-21 Codes d’erreur des OB 254 et 255 dans l’ACCU 1-LL
1) Copie
:L KY 0,120 Cette suite d’instructions copie :SPA OB 254 le bloc de données DX 120 de la : carte à mémoire dans la mémoire : utilisateur.:
2) Duplication
:L KY 80,85 Cette suite d’instructions duplique:SPA OB 255 le bloc de données DB 85 et affecte : le numéro 80 au nouveau bloc de : données. Le contenu des DB 85 et : DB 80 est identique.:
OB 254 et OB 255 : Copie et duplication de blocs de données
Programmation de la CPU 9486 - 68 C79000-G8577-C848-04
Sommaire du chapitre 7
7.1 Utilisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 - 4
7.2 Structure du bloc DX 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 - 5
7.2.1 Exemple de saisie du DX 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 - 7
7.3 Paramètres pour le DX 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 - 8
7.4 Exemples de paramétrage. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 - 12
7.4.1 Programmation en STEP 5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 - 127.4.2 Paramétrage du DX 0 via le masque de la PG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 - 14
7Bloc de données étendu DX 0
Programmation de la CPU 948C79000-G8577-C848-04 7 - 1
Sommaire
Programmation de la CPU 9487 - 2 C79000-G8577-C848-04
7Bloc de données étendu DX 0
Ce chapitre vous informe sur l’utilisation et la structure du bloc dedonnées DX 0. Vous y apprenez ce que signifient les différents pa-ramètres du DX 0 et comment créer ou paramétrer via un masque unbloc DX 0.
Programmation de la CPU 948C79000-G8577-C848-04 7 - 3
7.1 Utilisation
En tant qu’utilisateur, vous pouvez adapter à vos besoins certaines fon-ctions du programme système en modifiant les présélections (repéréespar P dans le tableau des paramètres) du bloc de données étenduDX 0.
Les présélections du programme système (P) sont activées automati-quement à chaque démarrage. Puis, le bloc DX 0 est exploité. Si vousn’avez pas paramétré ni chargé le DX 0, les présélections standard re-stent donc valables. Dans le cas contraire, les définitions que vousavez indiquées dans le DX 0 sont validées.
Vous pouvez, pour paramétrer le DX 0, programmer les valeursdésirées comme pour les autres blocs de données (cf. paragraphes 7.2à 7.4.1) ou bien entrer, à partir de la version 3.0 du logiciel S5-DOS,ces valeurs dans un masque spécial à la PG (cf. paragraphe 7.4.2).
Vous pouvez utiliser toutes les fonctions du masque DX 0 si vousavez installé le logiciel STEP 5/ST, version 6.3, ou STEP 5/MT, versi-on 6.0, ainsi que la "disquette delta de la CPU 948", sur votre consolede programmation.
NotaLa saisie ou la modification du DX 0 ne prend effet qu’après unnouveau démarrage.Si le démarrage s’effectue avec un DX 0 modifié, les anciensparamètres non modifiés sont conservés.
Différences par rapport à laCPU 946/947
Le paramétrage du DX 0 pour la CPU 946/947 et celui pour laCPU 948 présentent les différences suivantes.
•• Modes de fonctionnementIl n’existe plus les modes 150U ou 155U, mais les modes "Inter-ruptions possibles en fin de bloc" ou "Interruptions possiblesen fin d’instruction" .
•• Traitement des interruptions systèmeSur la CPU 948, il est possible de combiner "Alarmes de processusvia l’octet d’entrée EB 0 = NON" (traitement des interruptions sy-stème) et "Interruptions possibles en fin de bloc".Les interruptions en fin de bloc sont donc maintenant égalementpossibles en fonctionnement multiprocesseur.
•• Alarmes d’horloge supplémentairesSi vous avez désactivé les alarmes de processus via l’octet d’en-trée EB 0, vous disposez maintenant de l’alarme de retardement(OB 6) et de l’alarme d’horloge à heure fixe (OB 9) comme alar-mes d’horloge supplémentaires.
Utilisation
Programmation de la CPU 9487 - 4 C79000-G8577-C848-04
7.2 Structure du bloc DX 0
Le bloc DX 0 se compose de trois parties :
•• l’indicatif de début du DX 0 (DW 0, 1 et 2),
•• plusieurs rubriques de longueur différente (selon le nombre deparamètres),
•• l’indicatif de fin.
Indicatif de début Signes ASCII MASKX0 dans les mots de données DW 0 à DW 2
Rubrique Une rubrique du DX 0 est composée de 1 à n mots de données quicontiennent :
•• l’identificateur (ID) de rubrique,
•• la longueur de la rubrique,
et
•• les paramètres de la rubrique.
Identificateur de rubrique L’ identificateur (ID) de la rubrique indique quelle est la significati-on des paramètres qui suivent. Chaque rubrique est affectée à une par-tie définie du programme système ou à une fonction système définie(par exemple, identificateur de rubrique 04 pour le traitement cycli-que).
Longueur de rubrique La longueur de rubrique indique le nombre de mots de données uti-lisés par les paramètres qui suivent.
Paramètres Les paramètres possibles sont indiqués au paragraphe 7.3. Les va-leurs numériques indiquées sont en format hexadécimal (KH).
Indicatif de fin Cet indicatif signale la fin du bloc DX 0 à l’aide des caractères EEEEdans le dernier mot de données.
Structure du bloc DX 0
Programmation de la CPU 948C79000-G8577-C848-04 7 - 5
Structure formelle
1B0
443
D38
455
ID rubr ique 1 Longueur rubr ique 1
ID rubr ique 2
ID rubr ique n Longueur rubr ique n
Longueur rubr ique 2
Paramètre
Paramètre
Paramètre
Paramètre
Paramètre
Paramètre
CaractèresASCII
Rubr ique 1
Rubr ique 2
Rubr ique n
Indicat i f de f in
15 8 7 0Bit
012
3
DW
DW m E E E E
Paramètre
M AS KX 0
Figure 7-1 Structure du DX 0
Structure du bloc DX 0
Programmation de la CPU 9487 - 6 C79000-G8577-C848-04
7.2.1Exemple de saisie du DX 0
Lors du paramétrage du DX 0, tenez compte des points suivants.
•• Il est inutile de préciser les rubriques non utilisées.
•• Respectez l’ordre des rubriques. Indiquez, par exemple, la rubri-que ayant 02 comme identificateur avant la rubrique 05.
•• Une rubrique donnée ne doit figurer qu’une fois dans le DX 0.
•• Le nombre de paramètres doit correspondre à la longueur de rubri-que indiquée en début de rubrique.
•• Respectez l’ordre des paramètres. Pour ce faire, vous devez indi-quer la valeur par défaut des paramètres non utilisés d’une rubri-que si vous utilisez les paramètres suivants.
•• Une fois la dernière rubrique saisie, vous devez absolument clorele bloc DX 0 avec l’indicatif de fin KH=EEEE.
Indicatif de début DW 0:KH = 4D41DW 1:KH = 534B DW 2:KH = 5830
ID/longueur de rubrique DW 3:KH = 0101Paramètre (occupe 1 DW) DW 4:KH = 1001
ID/longueur de rubrique DW 5:KH = 0402 Paramètre (occupe 2 DW) DW 6:KH = 1000
DW 7:KH = 0040
Indicatif de fin DW10:KH = EEEE
Rubrique 1
Rubrique 2
Structure du bloc DX 0
Programmation de la CPU 948C79000-G8577-C848-04 7 - 7
7.3 Paramètres pour le DX 0
ID/longueur derubrique
Paramètresmot 1 / mot 2
Signification1
Modes de fonctionnement
01xx 2 1000
1001
P Interruptions possibles en fin de bloc3
(CPU 946/947 : mode 150U)Interruptions possibles en fin d’instruction4
(CPU 946/947 : mode 155U)
Traitement du programme de mise en route
02xx 100010011002
P Redémarrage automatique à la mise sous tensionDémarrage automatique à la mise sous tensionDémarrage/redémarrage manuel à la mise sous tension
20002001
P Synchronisation du démarrage en fonctionnement multiprocesseurPas de synchronisation du démarrage en fonctionnement multiprocesseur
BB00 00yy 5 Nombre de temporisations à actualiser yy6
Valeurs admises : 00H à FFHP yy = FF (temporisations T 0 à T 255)
40004001
P Mode au retour de tension = redémarrageMode au retour de tension = démarrage avec rémanence
Traitement du programme cyclique
04xx 1000 00yy Sélection du temps de cycle7
temps de cycle = (yy * 10 ms) Valeurs admises : 01H à FFH
P yy = 14H (200 ms)
4000
4001
P Actualisation de la mémoire image du processus et des mémentos de couplage sans protection par sémaphoreActualisation de la mémoire image du processus et desmémentos de couplage avec protection par sémaphore (dans la rubrique ; voir le paragraphe 10.1.3)
Traitement d’alarmes : alarmes d’horloge
05xx 1000 000c1001 0000
P Traitement des alarmes d’horloge activéTraitement des alarmes d’horloge désactivéc = priorité de niveau ; valeurs admises : 1 à 5
P c = 1 (priorité la plus élevée)
Tableau 7-1 Paramètres du DX 0 et leur signification
Paramètres pour le DX 0
Programmation de la CPU 9487 - 8 C79000-G8577-C848-04
ID/longueur derubrique
Paramètresmot 1 / mot 2
Signification1
Suite du tableau 7-1
05xx Traitement d’alarmes : alarmes d’horloge (suite)
2000 00yy Base de temps pour le traitement des alarmes d’horlogebase de temps = (yy * 10 ms)Valeurs admises : 01H à FFH
P yy = 0A (100 ms)
30003001
P Grille de périodicité 1 (1, 2, 5, 10 ...)Grille de périodicité 2 (2n)(voir le paragraphe 4.5.2)
Traitement d’alarmes : alarmes de processus / interruptions système
4000 000c4001 0002
Interruption système X activéeP Interruption système X désactivée
c = priorité de niveauValeurs admises : 1 à 5X = A, B, C ou D
P c = 2 (priorité de niveau 2)
Dans la CPU 948, le traite-ment des interruptions système peut être combiné avec "Interruptions possibles en fin de bloc".
5000 000c5001 0002
Interruption système E activéeP Interruption système E désactivée
6000 000c6001 0002
Interruption système F activéeP Interruption système F désactivée
7000 000c7001 0002
Interruption système G activéeP Interruption système G désactivée
8000 000c8001 0000
P Alarmes de processus via l’octet d’entrée EB 0 = OUIAlarmes de processus via l’octet d’entrée EB 0 = NONc = priorité de niveauValeurs admises : 1 à 2
P c = 2 (priorité de niveau 2)"Alarmes de processus via l’octet d’entrée EB 0 = OUI" ne permet que :- fonctionnement monoprocesseur- interruptions en fin de bloc
EEEE Indicatif de fin
1 P = présélection si DX 0 non chargé ou rubrique manquante
2 xx = longueur de rubrique (nombre de mots de données occupés par les paramètres)
3 Peut être combiné avec les interruptions système dans la CPU 948.
4 Ne peut pas être combiné avec alarmes de processus via EB 0.
5 Les paramètres qui occupent deux mots de données doivent être comptés "2" dans la longueur de rubrique.
6 En ce qui concerne les temporisations, voyez les explications à la page suivante.
7 Surveillance du temps de cycle avec l’OB 31 ou le DX 0Si le temps de cycle est défini à la fois dans l’OB 31 et dans le DX 0, le programme système tient compte de la valeur figurant dans l’OB 31, car il a exploité le DX 0 auparavant. Aussi est-il préférable de ne pas utiliser ces deux possibilités simultanément. Nous vous conseillons de définir le temps de cycle uniquement dans le bloc DX 0.
Paramètres pour le DX 0
Programmation de la CPU 948C79000-G8577-C848-04 7 - 9
Actualisation destemporisations
•• Normalement, les temporisations T 0 à T 255 sont actualisées.
•• Si vous indiquez 0 dans le DX 0, aucune temporisation n’est actua-lisée même si le programme en contient. Il n’y a pas non plus demessage d’erreur.
•• L’actualisation s’effectue comme suit :
Nombre indiqué 0 1 2 3 4 ....
Actualisation aucune T0 à T1
T0 à T2
T0 à T3
T0 à T4
....
Priorités de niveau Les priorités peuvent être différentes pour les niveaux de traitement deprogramme. Elles sont soit prises par défaut, soit paramétrées dans lebloc DX 0.
Priorités pour "Alarmes de processus via l’octet d’entrée EB 0 =OUI" (niveau des alarmes de processus)
Ces priorités sont définies comme suit dans le DX 0.
•• Alarmes d’horloge priorité de niveau 1 (la plus élevée)
•• Alarmes de processus via l’octet d’entrée EB 0 priorité de niveau 2 (la plus faible)
Vous pouvez permuter ces priorités dans le DX 0.
Priorités pour "Alarmes de processus via l’octet d’entrée EB 0 =NON" (traitement des interruptions système, niveau des interrup-tions)
Les priorités sont définies comme suit dans ce mode.
•• Alarmes d’horloge priorité de niveau 1 (la plus élevée)
•• Interruptions système priorité de niveau 2 (la plus faible)
Paramètres pour le DX 0
Programmation de la CPU 9487 - 10 C79000-G8577-C848-04
Dans le DX 0, vous pouvez modifier sélectivement ces priorités pourles niveaux de traitement de programme suivants en indiquant une va-leur de 1 à 5 (1 = priorité la plus élevée) :
•• alarmes d’horloge,
•• interruption système INT X (X = A, B, C ou D),
•• interruption système INT E,
•• interruption système INT F,
•• interruption système INT G.
Exemple
Définition des priorités pour le traitement déclenché par alarme"Interruptions système"
Interruption système INT A/B/C/D Priorité de niveau 1
Alarmes d’horloge Priorité de niveau 2 Priorité
Interruption système INT E Priorité de niveau 3 décroissante
Interruption système INT F Priorité de niveau 4
Interruption système INT G Priorité de niveau 5
Paramètres pour le DX 0
Programmation de la CPU 948C79000-G8577-C848-04 7 - 11
7.4 Exemples de paramétrage
7.4.1Programmation en STEP 5
Exemple A
Vous désirez utiliser trois CPU (A, B et C) en fonctionnementmultiprocesseur. Les CPU A et B travaillent étroitement ensemble, échangentsouvent des données et traitent un important programme de mise en route.
La CPU C traite un programme court, à temps critique, indépendamment desdeux autres CPU.
Normalement, en fonctionnement multiprocesseur, toutes les CPU démarrentsimultanément leur traitement cyclique ; elles attendent la fin de leurmise en route respective avant de passer simultanément au traitementcyclique.
Comme la CPU C exécute son programme indépendamment des autres CPU etqu’elle traite un programme de mise en route très court , il n’est pasnécessaire de la synchroniser avec les deux autres. Par le paramétrage duDX 0, vous obtenez que la CPU C passe, dès la fin de sa mise en route, autraitement de programme cyclique sans attendre les CPU A et B.
Le paramètre de synchronisation des CPU en fonctionnement multiprocesseurest le second dans la première rubrique. Pour respecter l’ordre desparamètres, vous devez donc en outre indiquer la valeur par défaut pour lepremier paramètre de comportement à la mise en route (redémarrageautomatique à la mise sous tension).
Programmez le DX 0 pour la CPU C comme suit :
DX 0 Indicatif de début MASKX0 DW 0: KH = 4D41DW 1: KH = 534B DW 2: KH = 5830
ID/longueur de rubrique 1 DW 3: KH = 0202Paramètre 1 DW 4: KH = 1000Paramètre 2 DW 4: KH = 2001Indicatif de fin DW 5: KH = EEEE
Une fois le DX 0 chargé dans la mémoire de programme, il est validé audémarrage suivant. Comme la CPU C traite un très court programme de mise enroute et qu’elle n’attend pas les CPU A et B, son voyant RUN vert s’allumeimmédiatement après la mise en route. Le signal BASP (inhibition dessorties) n’est toutefois désactivé que lorsque les trois CPU ont terminéleur mise en route. Cela signifie que la CPU C ne doit pas accéder à lapériphérie TOR.
Exemples de paramétrage
Programmation de la CPU 9487 - 12 C79000-G8577-C848-04
Exemple B
Le paramétrage ci-après du DX 0 :
- sélectionne le mode "Interruptions possibles en fin d’instruction",
- désactive l’actualisation des temporisations,
- règle le temps de cycle à 2,5 s,
- affecte la priorité "2" au niveau des alarmes d’horloge
et
- active l’interruption système INT E avec la priorité "1".
DX 0 Indicatif de début MASKX0 DW 0: KH = 4D41 DW 1: KH = 534B DW 2: KH = 5830
ID/longueur de rubrique 1 DW 3: KH = 0101Paramètre DW 4: KH = 1001ID/longueur de rubrique 2 DW 5: KH = 0202Paramètre 1 DW 6: KH = BB00
DW 7: KH = 0000ID/longueur de rubrique 3 DW 8: KH = 0402Paramètre 1 DW 9: KH = 1000
DW10: KH = 00FA ID/longueur de rubrique 4 DW11: KH = 0504Paramètre 1 DW12: KH = 1000
DW13: KH = 0002Paramètre 1 DW14: KH = 5000
DW15: KH = 0001 Indicatif de fin DW16: KH = EEEE
Ce paramétrage du DX 0 exerce les effets suivants sur l’exécution duprogramme.
L’interruption du traitement du programme par des niveaux prioritaires sefait aux limites d’instructions et non aux limites de blocs.
La durée d’exécution du programme système diminue légèrement, car lestemporisations ne sont pas actualisées.
Un dépassement du temps de cycle n’est détecté que lorsque la duréed’exécution du programme utilisateur et du programme système dépasse 2,5 s.
Il n’a pas de traitement d’alarmes de processus par l’octet d’entrée EB 0,mais l’interruption système INT E est activée. En raison de sa prioritéplus élevée, cette dernière interrompt le traitement des alarmes d’horloge,de l’alarme de retardement et des contrats à heure fixe.
1 Comme longueur de rubrique, vous indiquez le nombre de mots de données occupés par un paramètre.
Exemples de paramétrage
Programmation de la CPU 948C79000-G8577-C848-04 7 - 13
7.4.2Paramétrage du DX 0 via lemasque de la PG
Avec le logiciel système de la PG, vous disposez de deux masquespour paramétrer le DX 0 pour la CPU 948. Le bloc de données DX 0est alors généré automatiquement à partir des valeurs par défaut (figu-rant en gras) et des valeurs que vous avez indiquées.Vous trouverez les renseignements nécessaires pour choisir et com-pléter les masques de la PG dans le manuel STEP 5.
Structure des masques Le paramétrage du DX 0 s’effectue dans deux masques de saisie.
Le premier masque (figure 7-2) contient les paramètres suivants
- type d’interruptions,- mode de mise en route à la mise sous tension,- comportement au retour de tension,- nombre de temporisations,- surveillance du temps de cycle,- synchronisation du démarrage en fonctionnement multipro-
cesseur,- transfert par blocs des mémentos de couplage.
P a r a m é t r a g e d u D X 0 (S5-155U CPU 948)
A la mise sous tension
Interruptions possibles en
(1 = redémarrage
(1 = redémarrage
2 = démarrage
2 = démarrage avec rémanence)
(0 - 256)
1
1
Interruptions possibles en fin d´instruction :Interruptions possibles en fin de bloc :
Mode 155UMode 150U
Dans les versions précédentes du logiciel figure pour
(1 - 255)
3 = démarrage manuel)
Au retour de tension
Nombre de temporisations
Temps de cycle maximal (X 10 ms)
Synchro. démarrage multiprocesseur
Transfert mémentos coupl. par bloc
F1 F2 F3 F4 F5 F6SuiteChoisir
F7 F8
1
fin de bloc
1
256
20
OUI
NON
DX 0
Figure 7-2 Premier masque de saisie pour le paramétrage du DX 0
Exemples de paramétrage
Programmation de la CPU 9487 - 14 C79000-G8577-C848-04
Les autres paramètres figurent dans le second masque de saisie(figure 7-3) :
- alarmes déclenchées par horloge,- alarmes de processus matérielles,- alarmes de processus via l’octet d’entrée EB 0.
Marche à suivre L’organigramme présenté en page suivante vous explique commentcompléter les champs dans ces masques, sauvegarder les paramètres etcharger le bloc de données DX 0 généré.
P a r a m é t r a g e d u D X 0 (S5-155U CPU 948)
F1 F2 F3Choisir
F4 F5 F6Suite
F7 F8
OUI
OUI 1
22
22
2
NON
NON
NONNON
Alarmes processus
Alarmes processus octet d´entrée 0 (seult si interruption en fin de bloc)
Alarmes de processus matérielles
Interrupt. système G
Interrupt. système F
Interrupt. système EInterrupt. système A/B
Alarmes d´horloge
Traitement
Priorité
Priorité
Priorité
PrioritéPriorité
Priorité
(1...255)
2
2 CPU 948 : Les interruptions système sont possibles aussi bien dans le mode "Interruptionspossibles en fin de bloc" que dans le mode "Interruptions possibles en fin d´instruction".
1
1 Pour pouvoir activer l´alarme de retardement et l´alarme d´horloge à heure fixe, il fauten outre désactiver les alarmes de processus (en activant le traitement des interruptions).
(1 = base X 1, 2, 5, 10 ...2 = base X 1, 2, 4, 8 ...)
Base de temps (X 10 ms)
Grille de périodicité 110
DX 0
Figure 7-3 Second masque de saisie pour le paramétrage du DX 0
Exemples de paramétrage
Programmation de la CPU 948C79000-G8577-C848-04 7 - 15
Organigramme pour com-pléter les masques du DX 0
Exemple
Faut- i l modi f ier des paramètres dans le masque 1 ?NON OUI
Répétez les opérat ions suivantes jusqu´à ce que toutes les modif icat ionsvoulues f igurent dans le masque.
Placez le curseur devant le champ du paramètre. Le l ibel lé de latouche F3 au bas de l´écran indique si vous pouvez chois i r entreplusieurs possib i l i tés (Chois i r ) ou si vous pouvez modi f ier la valeurdu paramètre (Sais ie) .
NON OUI
Appuyez sur F6 (Sui te) pour appeler le second masque.
- Sélect ion d’un champ de sais ie
Faut- i l modi f ier les paramètres dans le masque 2 ?
- Chois irAppuyez sur F3 jusqu’à ce que l ’opt ion désirée apparaisse.
- Sais ieAppuyez une fo is sur F3 ; le curseur saute au débutdu champ. Vous pouvez remplacer la valeur aff ichéepar une valeur autor isée.
Pour modif ier des paramètres, procédez comme dans le masque 1.
Appuyez maintenant sur la touche de val idat ion : le logic ie l prend en compte toutesles sélect ions effectuées dans les deux masques et en génère le bloc de données DX 0.
Le DX 0 est mémor isé dans la console de programmat ion. Vous pouvez le charger dansl´AP à l´a ide de la fonct ion de transfer t de la PG.
Vous désirez paramétrer le DX 0 pour obtenir le comportement suivant duprogramme système (différent de celui obtenu par les présélections) :
- interruptions en fin d’instruction,
- pas d’actualisation des temporisations,
- temps de surveillance du cycle = 2,5 s,
- priorité pour les alarmes d’horloge = 2,
- interruption système INT E avec la priorité 1.
Suite à la page suivante
Exemples de paramétrage
Programmation de la CPU 9487 - 16 C79000-G8577-C848-04
Exemple (suite)
Pour ce faire, complétez les masques ainsi.
Premier masque pour le DX 0
•• Activez le mode "Interruptions possibles en fin d’instruction" à l’aidede la touche F3.
•• Pour le paramètre "Nombre de temporisations", appuyez une fois sur F3,puis entrez le nombre 0 (pas d’actualisation des temporisations).
•• Pour le paramètre "Temps de cycle maximal", appuyez sur F3 et entrez 250(= 2,5 s).
•• Appuyez sur la touche F6 (Suite) pour accéder au second masque du DX 0.
Second masque pour le DX 0
•• Pour la priorité des alarmes d’horloge, appuyez sur F3 et entrez lavaleur 2.
•• Pour le paramètre "Interrupt. système E", sélectionnez l’option OUI àl’aide de la touche F3.
•• Pour la priorité de cette interruption, appuyez sur F3 et entrez lavaleur 1.
•• A l’aide de la touche F3, activez l’option NON pour le paramètre "Alarmesprocessus".
•• Confirmez vos entrées avec la touche de validation. Le logiciel systèmegénère alors le bloc DX 0.
Exemples de paramétrage
Programmation de la CPU 948C79000-G8577-C848-04 7 - 17
Exemples de paramétrage
Programmation de la CPU 9487 - 18 C79000-G8577-C848-04
Sommaire du chapitre 8
8.1 Structure de l’espace mémoire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 - 4
8.2 Espace d’adressage de la CPU 948 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 - 5
8.2.1 Espace d’adressage de la RAM système . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 - 68.2.2 Espace d’adressage de la périphérie. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 - 8
8.3 Organisation de la mémoire utilisateur dans la CPU 948. . . . . . . . . . . . . . . . . . . . . . . . 8 - 10
8.3.1 En-têtes de blocs dans la mémoire utilisateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 - 128.3.2 Listes d’adresses de blocs dans le bloc de données DB 0 . . . . . . . . . . . . . . . . . . . . . . . 8 - 138.3.3 Zones BA et BB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 - 148.3.4 Zones BS et BT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 - 158.3.5 Affectation des bits des mots de données système . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 - 188.3.6 Zone de données système librement adressable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 - 42
8Contenu et organisation de la mémoire
Programmation de la CPU 948C79000-G8577-C848-04 8 - 1
Sommaire
Programmation de la CPU 9488 - 2 C79000-G8577-C848-04
8Contenu et organisation de la mémoire
Le présent chapitre décrit l’organisation de la mémoire de laCPU 948. Vous y trouverez également des indications sur les informa-tions importantes auxquelles vous avez accès dans certains mots dedonnées système.
Programmation de la CPU 948C79000-G8577-C848-04 8 - 3
8.1 Structure de l’espace mémoire
L’ensemble de l’espace mémoire de la CPU 948 se divise, pour l’es-sentiel, suivant les zones ci-après.
Espace mémoire Longueurdes données
Situation
Mémoire utilisateur pour : OB, FB, FX, PB, SB, DB, DX 16 bits
internes à
l’unité
centrale
Zone de couplage : BA, BBZone système : BS, BTCompteurs : ZTemporisations : TMémentos : MMémentos : S Mémoire image (MI) desentrées/sorties : MIE, MIS
16 bits16 bits16 bits16 bits8 bits8 bits 1
8 bits
Zone de la périphérie divisée en :
Périphérie PPériphérie QMémentos de couplageCoordinateur COR (sémaphore ...)Pages (CP, IP, COR 923C)Périphérie décentraliséeRegistres matériels
8 bits8 bits8 bits8 bits8/16 bits8 bits8/16 bits
sur le
bus S5
1 Bien que la longueur de données des mémentos S soit de 8 bits, ceux-ci se trouvent dans la zone de longueur de données 16 bits. L’octet de poids fort n’est pas défini.
Les adresses exactes de ces zones sont indiquées dans le schéma d’oc-cupation de la mémoire donné au paragraphe suivant.
NotaL’accès par STEP 5 à une cellule de mémoire se trouvant àl’intérieur d’une zone d’opérande (par exemple, mémento) ne doitjamais être effectué directement par l’adresse absolue, maisuniquement par l’adresse relative par rapport à l’adresse de basede la zone d’opérande correspondante.
Lors d’accès directs aux zones d’entrées, de sorties et demémentos, l’octet de poids fort contient FFH et l’octet de poidsfaible la donnée. Lors d’accès directs à des mémentos S, l’octetde poids fort n’est pas défini.
Tableau 8-1 Structure de l’espace mémoire
Structure de l’espace mémoire
Programmation de la CPU 9488 - 4 C79000-G8577-C848-04
8.2 Espace d’adressage de la CPU 948
La CPU 948 propose deux versions de mémoire utilisateur (RAM) :
•• la CPU 948-1 avec une mémoire utilisateur de 640 Ko,
•• la CPU 948-2 avec une mémoire utilisateur de 1664 Ko.
La figure 8-1 représente l’espace d’adressage de la CPU 948 avec lasituation des deux versions de mémoire utilisateur.
Zone de la périphérie (bus S5)
1 Les 20 derniers mots de la mémoire utilisateur ne sont pasutilisables.
RAM système
Mémoire utilisateur 640 Ko1
(CPU 948-1)
Mémoire utilisateur 1664 Ko1
(CPU 948-2)
Bit
Adresse0 0000H
1 0000H
2 0000H
3 0000H
4 0000H
5 0000H
6 0000H
7 0000H
8 0000H
9 0000H
A 0000H
B 0000H
C 0000H
D 0000H
E 0000H
F 0000H
F FFFFH
15 0
Figure 8-1 Espace d’adressage de la CPU 948, vue d’ensemble
Espace d’adressage de la CPU 948
Programmation de la CPU 948C79000-G8577-C848-04 8 - 5
8.2.1Espace d’adressage de laRAM système
BitAdresse
D 0000HE 9FFFH
E A000H
E AFFFH
E B000H
E DEAFH
E DEB1H
E DF6FH
E DF7CH
E DFA1H
E E1F0H
E E1FBH
E E200H
E E400H
E E600H
E E800H
E EA00H
E EC00H
E EE00H
réservé
réservé
réservé
réservé
réservé
réservé
réservé
réservé
réservé
En-tête du DB 0
DB 0(contient les adresses deparagraphes de tous lesblocs, c´est-à-dire les bitsd´adresse 4 à 19)
Liste d´adresses OB 0 à OB 255
Liste d´adresses PB 0 à PB 255
Liste d´adresses SB 0 à SB 255
Liste d´adresses FB 0 à FB 255
Liste d´adresses FX 0 à FX 255
Liste d´adresses DB 0 à DB 255
Liste d´adresses DX 0 à DX 255
ITPILE - entrée 1
ITPILE (16 entrées)
BLPILE (60 entrées)
Mémentos S
Programme système et données système
Données du programme système
15 8 7 0
Figure 8-2 Espace d’adressage de la RAM système, 1ère partie
Espace d’adressage de la CPU 948
Programmation de la CPU 9488 - 6 C79000-G8577-C848-04
BitAdresseE F000H
E F200H
E F400H
E F600H
E F800H
E FA00H
E FC00H
E FD00H
E FE00H
E FE80H
E FF00H
E FFFFH
réservé
réservé
réservé
réservé
réservé
réservé
réservé
réservé
MIE
MIS
Mémentos M
Compteurs (256)
Temporisations (256)
Zone BT (données système étendues, 256 mots)
Zone BB (données de couplage étendues, 256 mots)
Zone BA (données de couplage, 256 mots)
Zone BS (données système, 256 mots)
15 8 7 0
Figure 8-3 Espace d’adressage de la RAM système, 2ème partie
Espace d’adressage de la CPU 948
Programmation de la CPU 948C79000-G8577-C848-04 8 - 7
8.2.2Espace d’adressage de lapériphérie
BitAdresseF 0000H
F D000H
F F000H
F F080H
F F100H
F F200H
F F300H
F F400H
F F800H
F FC00H
Registres matérielsF FE00H
F FFFFH
réservé
Zone de transfert de données pour CP
Zone supplémentaire de données pour CP
Périphérie décentraliséevolume d´adresses étenduavec IM 304, IM 307et IM 308
(pages) 1 Ko ou Kmot
1 Ko ou Kmot(extension de page)
(avec MI, 128 E/128 S)Périphérie TOR
Périphérie P
Périphérie Q
(sans MI, 128 E/128 S)Périphérie analogique
Périphérie étendue
Mémentos de couplage
Sémaphores (32)sur COR
sur COR et/ou CP
(uniquement danschâssis d´extension)
Zone libre d´adressage de la périphérie (52 kilo-mots)
15 8 7 0
Figure 8-4 Espace d’adressage de la périphérie (8 bits) sur le bus S5
Espace d’adressage de la CPU 948
Programmation de la CPU 9488 - 8 C79000-G8577-C848-04
Zones d’adressage pourla périphérie et program-mation de ces zones
A l’aide des instructions STEP 5, vous pouvez accéder à la périphériesoit directement, soit par l’intermédiaire de la mémoire image. Tenezcompte du fait que la mémoire image n’existe que pour les octets d’en-trée et de sortie de la périphérie P ayant des adresses de 0 à 127.
NotaAvec les coupleurs IM 304, IM 307 et IM 308, votre programmepeut accéder à des zones d’adresses décentralisées. Vous gagnezainsi deux nouvelles zones d’adresses équivalentes à la zone Q.Contrairement à la zone Q, vous ne pouvez toutefois y accéderque par adressage absolu ou par l’intermédiaire du FB 196 qui faitpartie du progiciel "Fonctions de base" (voir catalogue ST 57,bibliographie /11/).
Zone (adresse absolue) Accès par Paramètre
Périphérie P avec mémoire image
L EB / T EB 0 à 127L EW / T EW 0 à 126L ED / T ED 0 à 124U E / UN E / O E / ON E 0.0 à 127.7S E/ R E / = E
L AB / T AB 0 à 127L AW / T AW 0 à 126L AD / T AD 0 à 124U A / UN A / O A / ON A 0.0 à 127.7S A / R A / = A
Au moment du traitement de l’opération, seule lamémoire image est modifiée. Ce n’est qu’à la findu cycle que l’ensemble des états de la mémoireimage est transmis à la périphérie.
Périphérie P
L PY / T PY 0 à 127L PW / T PW 0 à 126
L PY / T PY 128 à 255L PW / T PW 128 à 254
L’accès aux entrées et sorties se fait directement par mots ou par octets.
Périphérie Q
L QB / T QB 0 à 255L QW / T QW 0 à 254
L’accès aux entrées et sorties se fait directement par mots ou par octets.
MIE(mémoire image desentrées)
MIS(mémoire image dessorties)
Périphérie TOR entrées/sorties
Périphérie TOR ou analogiqueentrées/sorties
Périphérie étendueentrées/sorties
E FE00
E FEFF
E FE80
E FE7F
F F000
F F07F
F F080
F F0FF
F F100
F F1FF
Espace d’adressage de la CPU 948
Programmation de la CPU 948C79000-G8577-C848-04 8 - 9
8.3 Organisation de la mémoire utilisateur dans la CPU 948
La mémoire utilisateur couvre – selon la version de la CPU 948 miseen oeuvre – l’espace d’adressage de 0 0000H à C FFFFH. Lors de leurchargement, les blocs du programme utilisateur sont mémorisés dansun ordre quelconque, par adresses croissantes.
Gestion des blocs Lors de la modification de blocs, l’ancien bloc est déclaré non valableet le nouveau bloc est inscrit en mémoire et dans la liste d’adresses.De même, lors de l’effacement de blocs, ceux-ci ne sont pas réelle-ment effacés, mais déclarés non valables. L’effacement de blocs don-ne naissance à des lacunes qui sont gérées comme des emplacementsde mémoire libres et qui seront à nouveau utilisées lors du chargementde nouveaux blocs.
Compression de la mémoire La fonction PG en ligne de compression de la mémoire regroupe tous lesblocs valables se trouvant en mémoire. A l’arrêt , elle provoque le décala-ge de tous les blocs qui ne sont pas accolés. Par contre, en état de marcheRUN, les blocs de données DB/DX importants (supérieurs à 512 motsde données) ne sont pas décalés pour des raisons de cohérence desdonnées. La compression de la mémoire permet d’obtenir de grandes zo-nes de mémoire libres qui peuvent être utilisées lors du chargement d’au-tres blocs.
Si la fonction en ligne de compression de la mémoire est interrompue(par exemple, par une mise hors tension), la compression est arrêtée etn’est pas reprise lors de la remise sous tension.
Situation des blocs dans la mémoire utilisateur
Dans la CPU 948, les blocs sont stockés en mémoire de manière telleque le mot de données DW 0 ou la première instruction STEP 5 dechaque bloc se trouve sur une adresse de paragraphe. Les adressesde paragraphe sont des limites de groupes de 16 mots. Tous lesen-têtes de bloc débutent ainsi dans la mémoire à l’adresse xxxxBH(bits 0 à 3 = BH) et tous les corps de bloc à l’adresse yyyy0H (bits 0 à3 = 0H). Chaque espace libre entre la fin d’un bloc et le début du blocsuivant est occupé par un bloc de données non valable de manière à ceque tous les blocs soient consécutifs dans la mémoire.
Blocs de remplissage Ces blocs de données non valables sont appelés "blocs de remplissa-ge". Ils sont régis par la gestion de mémoire de la même façon que lesblocs valables et ont la structure suivante :
Indicatif de début : 7070H ;Type/numéro de bloc : 01FBH ;DB 251 non valableIndicatif de la console : 00FFH ;sans objetNuméro de bibliotèque : FFFFH ;sans objetLongueur du bloc : 00XXH ;longueur 5 à 20 motsDonnées : FFFFH ;suivant la
: ;longueur: ;libreFFFFH ;facultatif
Organisation de la mémoire utilisateur dans la CPU 948
Programmation de la CPU 9488 - 10 C79000-G8577-C848-04
Exemple
La longueur de chaque bloc de remplissage est égale à la différenceentre l’adresse de fin du dernier bloc mémorisé et la prochaine adressede paragraphe.
Différence Longueur du bloc de remplissage (en-tête inclus)
0 à 5 Différence + 10
6 Pas de bloc de remplissage
7 à 10 Différence + 10
11 à 15 Différence - 6
Bit BitListe de blocs DB 0 Mémoire
En-tête 1
En-tête 2
En-tête n
Corps 1
Bloc de remplissage
xxxx0H
xxxx0H
Adressescroissantes
xxxx0H
Corps 2
Corps n
= adresses de paragraphes (limites de groupes de 16 mots)
Adresse de début du bloc 1
Adresse de début du bloc n
15 150 0
P
P
P
P
x
x
x
x
x
x
x
x
x
x
x
Figure 8-5 Exemple de sauvegarde des blocs en mémoire
Organisation de la mémoire utilisateur dans la CPU 948
Programmation de la CPU 948C79000-G8577-C848-04 8 - 11
8.3.1En-têtes de blocs dans lamémoire utilisateur
Chaque bloc en mémoire débute par un en-tête ayant une longueur de5 mots.
1er mot : Indicatif de début de bloc : 7070H
2ème mot : Octet de poids fort : type de bloc
Octet de poids faible : numéro de blocLe numéro de bloc (0 à 255) est situé dans l’octet de poids faible du 2ème mot de l’en-tête et est codé binaire : 00 à FFH.
3ème mot : L’octet de poids fort du troisième mot contient l’indicatifde la console ; l’octet de poids faible contient une partie du numéro de bibliothèque.
4ème mot : Le quatrième mot contient le reste du numéro de bibliothèque.
5ème mot : Le cinquième mot (octets de poids faible et fort) contient la longueur du bloc, en-tête de bloc compris. Cette lon- gueur est donnée en mots.
01H Bloc de données DB02H Bloc séquent ie l SB
Bloc de programme PBBloc fonct ionnel FXBloc fonct ionnel FBBloc de données DXBloc d´organisat ion OB
04H05H08H0CH10H
0 0la l is te d’adresses DB 0.
enregistré dans la l is te d’adresses DB 0.0 1
Bloc non valable, n´est pas enregistré dans
Le bloc dans la mémoire est valable, i l est
Bi t 15 14 13 12 11 10 9 8
Organisation de la mémoire utilisateur dans la CPU 948
Programmation de la CPU 9488 - 12 C79000-G8577-C848-04
8.3.2Listes d’adresses deblocs dans le bloc dedonnées DB 0
Le bloc de données DB 0 se situe dans la RAM système de la CPU (àpartir de l’adresse E E200H) et contient la liste des adresses de débutde tous les blocs qui se trouvent dans la mémoire utilisateur de laCPU. Cette liste d’adresses est élaborée par le programme systèmeaprès la mise sous tension lors d’un démarrage, vérifiée lors d’un re-démarrage et actualisée automatiquement lors de la saisie ou de la mo-dification de blocs à l’aide de la console de programmation.
Adresses de début deslistes d’adresses
Le bloc DB 0 contient, pour chaque type de bloc, une liste d’adressescomprenant 256 mots. Les blocs non chargés ou effacés ont "0" pouradresse de début.Les adresses de début de chaque liste d’adresses de blocs sont définies(voir paragraphe 8.2.1).
Adresses de début de bloc Les adresses de début de bloc dans les listes d’adresses pointent tou-jours sur le premier mot suivant l’en-tête de bloc :
•• pour les blocs de données : sur le mot de données DW 0,
•• pour les blocs de code : sur la première instruction STEP 5 (dansle cas de FB, sur l’instruction SPA avant le nom et la liste de para-mètres).
Comme chaque bloc se situe sur une adresse de paragraphe (tous les16 mots), l’adresse inscrite dans le DB 0 se limite à un mot avec lesbits 4 à 20 de l’adresse.
Situation des adresses deblocs dans le DB 0
n = E E400H (adresse de début de la liste d’adresses des blocs de pro-gramme)
Adresse PB 0
Adresse PB 1
Adresse PB 2
Adresse PB 178
Adresse PB 179
Si l ´adresse indiquéeest la valeur "0", lebloc n´est pas chargé.
DB 0
n
n+1
n+2
n+178
n+179
15 0
Figure 8-6 Adresses de blocs dans le DB 0
Organisation de la mémoire utilisateur dans la CPU 948
Programmation de la CPU 948C79000-G8577-C848-04 8 - 13
Exemple de calcul del’adresse d’un bloc
8.3.3Zones BA et BB La zone BA d’une longueur de 256 mots est située dans la RAM sy-
stème interne de la CPU. Elle couvre les adresses E F400H à EF4FFH.
La zone BB d’une longueur de 256 mots est située dans la RAM sy-stème interne de la CPU. Elle couvre les adresses E F600H à EF6FFH.
Vous pouvez utiliser l’ensemble des zones BA (BA 0 à BA 255) etBB (BB 0 à BB 255) pour vos besoins propres.
Les zones BA et BB ne sont réinitialisées – par des zéros – que lorsd’un effacement général.
Les adresses de début des blocs de programmationse trouvent dans le DB 0 à partir de l’adresseE E400H.L’accès à l’adresse E E416H (adresse de début desPB + 16 H) en mémoire permet ainsi de lirel’adresse de début du PB 22.
Organisation de la mémoire utilisateur dans la CPU 948
Programmation de la CPU 9488 - 14 C79000-G8577-C848-04
8.3.4Zones BS et BT Les zones BS et BT contiennent, d’une part, des informations pour le
programmeur du système et, d’autre part, des données système inter-nes.
La zone BS d’une longueur de 256 mots est située dans la RAM sy-stème interne de la CPU. Elle couvre les adresses E F000H à EF0FFH.
AttentionL’accès en écriture n’est permis que pour les mots de donnéessystème BS 60 à BS 63.
Toutes les autres données système ne sont accessibles qu’enlectur e.
Un accès en écriture à ces données système peut avoir desconséquences sur le fonctionnement de l’automate programmableet de la console de programmation raccordée.Il peut en résulter de graves dommages mettant en danger à la foisl’homme et la machine.
La zone BT d’une longueur de 256 mots est située dans la RAM sy-stème interne de la CPU. Elle couvre les adresses E F200H àE F2FFH.
Vous pouvez utiliser l’ensemble de la zone BT (BT 0 à BT 255) pourvos besoins propres à condition :
1) de ne pas vous servir de blocs fonctionnels standard
et
2) de ne pas utiliser de fonctions PG via SINEC H1 et le bus S5 parallèle.
Les zones BS et BT ne sont effacées que par un effacement général.
Zones BS et BT
Programmation de la CPU 948C79000-G8577-C848-04 8 - 15
La fonction en ligne "Paramètres système" vous transmet les informa-tions de quelques données système, comme la structure interne de laCPU, la version du logiciel, l’ identification de la CPU, etc.
Occupation de la zone BS
BS Descr iption Adresse
0 Image de l’octet d’entrée EB 0(alarmes de processus)
E F000H
1 Alarmes de processus en attente (EB 0) E F001H
2 à 4 Programme système
5 Temps de cycle nécessaire en vigueur E F005H
6 Programme système
7 Indicatifs de mise à l’arrêt (ITPILE) E F007H
8 Indicatifs de mise en route et de démarrage(ITPILE)
E F008H
9 à 15 Programme système
16 Zone d’erreurs : sorties 0 à 15 E F010H
17 à 23 Zone d’erreurs : sorties 16 à 127E F011H
àE F017H
24 à 31 Zone d’erreurs : entrées 0 à 127E F018H
àE F01FH
32 à 47 Zone d’erreurs : mémentos de couplage 0 à 255
E F020Hà
E F02FH
48 à 49 Programme système
50 Octet PAFE pour les fonctions de bus de fond de panier
E F032H
51 à 59 Programme système
60 à 63 A votre dispositionE F03CH
àE F03FH
64 à 67 Programme système
68 à 71 Adresse pour les erreurs ACQ et PARIE F044H
àE F047H
72 à 74 Programme système
75 Message système, numéro de fonction E F04BH
Tableau 8-2 Occupation de la zone BS
Zones BS et BT
Programmation de la CPU 9488 - 16 C79000-G8577-C848-04
BS Descr iption Adresse
Suite du tableau 8-2
76 Message système, paramètre 1 E F04CH
77 Message système, paramètre 2 E F04DH
78 Message système, paramètre 3 E F04EH
79 à 95 Programme système
96 Heure actuelle (secondes) E F060H
97 Heure actuelle (heures) E F061H
98 Heure actuelle (jours) E F062H
99 Heure actuelle (année/mois) E F063H
100 à 119 Programme système
120 Protection du logiciel, mot de passe E F078H
121 à 135 Programme système
136 à 137 Cellules réservées à la fonction d’autotestE F088H
àE F089H
138 Programme système
139 Temps de cycle écoulé lors duredémarrage de la surveillance
E F08BH
140 à 252 Programme système
253 Libre pour la périphérie décentralisée E F0FDH
254 à 255 Programme système
En complément au tableau ci-avant, les pages suivantes donnent l’af-fectation des bits de certaines données système que vous pouvez ex-ploiter soit par des opérations STEP 5, soit à l’aide de la console deprogrammation (les abréviations utilisées sont explicitées au para-graphe 5.4).
Zones BS et BT
Programmation de la CPU 948C79000-G8577-C848-04 8 - 17
8.3.5Affecta tion des bits desmots de donnée s système
Donnée système BS 0 Image de l’octet d’entrée EB 0 (alarmes de processus)
Adresse : E F000H
Octet de poids fort
Bit Contenu
15
Occupé par le programme système
14
13
12
11
10
9
8
Octet de poids faible
7 Image de E 0.7
6 Image de E 0.6
5 Image de E 0.5
4 Image de E 0.4
3 Image de E 0.3
2 Image de E 0.2
1 Image de E 0.1
0 Image de E 0.0
Tableau 8-3 Occupation de BS 0 (image de l’octet EB 0)
Affectation des bits des mots de données système
Programmation de la CPU 9488 - 18 C79000-G8577-C848-04
Donnée système BS 1 Alarmes de processus en attente
Adresse : E F001H
Octet de poids fort
Bit Contenu
15
Tous les bits ont la valeur "0".
14
13
12
11
10
9
8
Octet de poids faible
7 Bit = "1" : front E 0.7
6 Bit = "1" : front E 0.6
5 Bit = "1" : front E 0.5
4 Bit = "1" : front E 0.4
3 Bit = "1" : front E 0.3
2 Bit = "1" : front E 0.2
1 Bit = "1" : front E 0.1
0 Bit = "1" : front E 0.0
Tableau 8-4 Occupation de BS 1 (alarmes de processus en attente)
Affectation des bits des mots de données système
Programmation de la CPU 948C79000-G8577-C848-04 8 - 19
Donnée système BS 5 Temps de cycle nécessaire en vigueur
Adresse : E F005H
Octet de poids fort et octet de poids faible
Bit Contenu
15
Valeur binaire inscrite * 10 ms = durée du dernier cycle traité
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
Exemple
Tableau 8-5 Occupation de BS 5 (temps de cycle nécessaire en vigueur)
Bit 15 14 13 12 11 10 9 8 7 5 4 3 2 1 0
Valeur 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0
La dur ée du der ni er cycl e est de :
(2 4 + 2 3) * 10 ms = ( 16 + 8) * 10 ms = 240 ms.
Affectation des bits des mots de données système
Programmation de la CPU 9488 - 20 C79000-G8577-C848-04
Donnée système BS 7 Indicatifs de mise à l’arrêt de l’automate (voir ITPILE)
Adresse : E F007H
Octet de poids fort
Bit Contenu
15réservé
14
13
12 Niveau d’erreur de l’I TPILE
11 Mode de mise en route incorrect (DEMINAD)
10 Interruption dans la boucle d’arrêt
9 Appel incorrect du bloc système (ERR.SYS)
8 Erreur dans le bloc de mise en route (ERR.DEM)
Octet de poids faible
7 Interruption due au système (INT.SYS ; redémarrage possible)
6 Interruption due à une erreur de programmation(INTPROG ; démarrage nécessaire)
5 Fin du contrôle pas à pas (FIN P/P)
4 Commutateur de mode sur STOP (ISTOP)
3 Arrêt après fin d’instruction (STS)
2 Arrêt en fin de cycle (STP)
1 Arrêt en fonctionnement multiprocesseur (HALT)
0 Arrêt par la console (PGSTP)
Tableau 8-6 Occupation de BS 7 (indicatifs de mise à l’ arrêt de l’ automate)
Affectation des bits des mots de données système
Programmation de la CPU 948C79000-G8577-C848-04 8 - 21
Donnée système BS 8 Indicatifs de mise en route et de démarrage (voir ITPILE)
Adresse : E F008H
Octet de poids fort
Bit Contenu
15 Présélection : démarrage/redémarrage manuel(DEMMSEL)
14 Présélection : démarrage automatique(DEMASEL)
13 Présélection : redémarrage automatique(REDASEL)
12 Effacement général nécessaire (RAZ NEC)
11 Redémarrage autorisé (RED ADM)
10 Démarrage autorisé (DEM ADM)
9 Effacement général effectué (RAZ EFF)
8 Redémarrage effectué (RED EFF)
Octet de poids faible
7 Démarrage effectué (DEM EFF)
6 Démarrage automatique après coupure secteur(MDT)
5 Démarrage manuel
4 Démarrage avec rémanence
3 Effacement général par la console
2 Démarrage système par la console
1 Redémarrage par la console
0 Démarrage par la console
Tableau 8-7 Occupation de BS 8 (indicatifs de mise en route et dedémarrage)
Affectation des bits des mots de données système
Programmation de la CPU 9488 - 22 C79000-G8577-C848-04
Données systèmeBS 16 à BS 47
Zones d’er reurs
BS xx Adresses Zone d’erreurs
BS 16 E F010 Octets de sortie 0 à 15
BS 17 àBS 23
E F011 àE F017
Octets de sortie 16 à 127
BS 24 àBS 31
E F018 àE F01F
Octets d’entrée 0 à 127
BS 32 àBS 47
E F020 àE F02F
Octets de mémentos de couplage0 à 255
BS 16 Adresse : E F010H
Octet de poids fort
Bit Contenu
15 Octet de sortie 0
14 Octet de sortie 1
13 Octet de sortie 2
12 Octet de sortie 3
11 Octet de sortie 4
10 Octet de sortie 5
9 Octet de sortie 6
8 Octet de sortie 7
Octet de poids faible
7 Octet de sortie 8
6 Octet de sortie 9
5 Octet de sortie 10
4 Octet de sortie 11
3 Octet de sortie 12
2 Octet de sortie 13
1 Octet de sortie 14
0 Octet de sortie 15
S’il se produit des erreurs au moment de l’actualisation de la mémoireimage des sorties (il en est de même pour les entrées et les mémentosde couplage), les bits correspondants sont mis à "1". La structure desmots de données système BS 17 à BS 47 correspond à celle de BS 16.
Tableau 8-8 Occupation de BS 16 (zone d’erreurs, octets de sortie 0 à 15)
Affectation des bits des mots de données système
Programmation de la CPU 948C79000-G8577-C848-04 8 - 23
Exemple pour BS 16
Donnée système BS 50 Octet PAFE pour les fonctions de bus de fond de panier
L’octet d’erreur de paramétrage pour les fonctions de bus de fond depanier d’une CPU est inscrit dans le mot de données système BS 50.
15 8 7 0
BS 50 PAFE – E F032H
Données systèmeBS 68 à BS 71
Adresses pour les erreurs ACQ et PARI
L’adresse d’une erreur ACQ ou PARI y est indiquée.
15 0
BS 68 Adresse d’erreur ACQ de poids fort E F044H
BS 69 Adresse d’erreur ACQ de poids faible E F045H
BS 70 Adresse d’erreur PARI de poids fort E F046H
BS 71 Adresse d’erreur PARI de poids faible E F047H
Le cont enu de l a donnée syst ème BS 16 est :
" 8020" ( hexadéci mal ) soi t " 1000 0000 0010 0000" ( bi nai r e).
Cela s i gni f i e qu’ une er r eur s’ est pr odui te l or sde l ’ act ual i sat i on de l a mémoi r e i mage pour l esoct ets de sor t ie 0 et 10.
Affectation des bits des mots de données système
Programmation de la CPU 9488 - 24 C79000-G8577-C848-04
Données systèmeBS 75 à BS 78
Message système
Les informations dans les données système BS 75 à BS 78 se rap-portent à la dernière erreur apparue. Le message se compose des 4mots de données système et présente la structure suivante :
15 0
BS 75 Numéro d’erreur Type de paramètre E F04BH
BS 76 Paramètre 1 E F04CH
BS 77 Paramètre 2 E F04DH
BS 78 Paramètre 3 E F04EH
BS 75 L’ octet de poids fort contient le numéro d’erreur qui permet de clas-ser l’ erreur dans une des trois catégories suivantes :
Catégories d’erreurs •• 01H à 2FH erreur générale,
•• 30H à 3FH erreur dans DX 0 ou DB 1,
•• 40H erreur système.
Type de paramètre L’ octet de poids faible contient le type de paramètre qui décrit lastructure de la rubrique de paramètres qui suit dans les BS 76 à BS 78.Il existe les types de paramètres 00H à 10H. La structure de la rubri-que de paramètres est décrite plus loin.
Les deux tableaux ci-après présentent les erreurs de la catégorie"erreur générale", de même que celles de la catégorie "erreur dansDX 0 ou DB 1".
Affectation des bits des mots de données système
Programmation de la CPU 948C79000-G8577-C848-04 8 - 25
Erreurs générales
N° d’erreur
Type deparamètre
Signifi cation
01H 01H Le bloc appelé n’est pas chargé.
02H 01H Erreur d’adressage
03H 01H Erreur de temps de cycle
04H 01H Erreur de substitution
05H 02H Retard d’acquittement de la périphérie décentralisée
06H 03H Retard d’acquittement de la mémoire utilisateur
07H 01H Erreur de chargement/transfert pour blocs dedonnées DB/DX
08H 01H Débordement du compteur de parenthèses
09H 04H Bloc de données à ouvrir non disponible
0AH 05H Erreur lors d’alarmes d’horloge ou d’interruptions
0BH 03H Retard d’acquittement d’une page
0CH 03H Retard d’acquittement de la zone decommunication commune
0DH 07H Retard d’acquittement lors de l’actualisation de la mémoire image du processus
0EH 03H Retard d’acquittement de la zone de synchronisation des mémentos de couplage
0FH 03H Retard d’acquittement de la périphérie P/Q
10H 03H Retard d’acquittement : coupleur décentralisé non disponible (IM 3/IM 4)
11H 03H Erreur de parité dans la mémoire utilisateur
12H 01H Retard d’acquittement lors du transfert de la mémoire image du processus
13H 01H Retard d’acquittement de l’octet d’entrée EB 0
14H 01H Débordement de la pile des blocs (BLPILE)
15H 01H Instruction STS
16H 01H Commutateur de mode sur STOP
17H 01H Signal HALT du coordinateur
18H 01H libre
19H 01H Erreur de chargement/transfert lors del’actualisation de la mémoire image
1AH 01H Erreur de chargement/transfert lors del’adressage indirect par le registre BR
Tableau 8-9 BS 75 : Erreurs générales
Affectation des bits des mots de données système
Programmation de la CPU 9488 - 26 C79000-G8577-C848-04
N° d’erreur
Type deparamètre
Signifi cation
Suite du tableau 8-9
1BH 01H Périphérie non disponible
1CH 08H Retard d’acquittement/erreur de paritéà l’i nitialisation
1DH 08H Redémarrage automatique impossible :démarrage nécessaire
1EH 00H Mode de mise en route incorrect
1FH 01H Erreur de chargement/transfert lors d’une instruction de transfert par blocs (limites dezone erronées pour TNW, TXB, TXW)
20H 09H Longueur incorrecte lors de E DB/EX DX
21H 09H DB/DX existe déjà lors de E DB/EX DX.
22H 09H Espace mémoire insuffisant lors de E DB/EX DX
23H 05H L’i nterruption système masquée passe.
24H 00H Fonction de bloc (compression, transfert,saisie) à l’arrêt ; démarrage nécessaire
25H 00H Défaillance de la pile de sauvegarde ; miseen route impossible
26H 00H Le passage du fonctionnement monopro-cesseur en fonctionnement multiprocesseurinterdit le redémarrage.
27H 01H Arrêt suite à l’ instruction STP
28H 01H Signal prêt permanent (carte de périphérie défectueuse)
29H 08H Erreur dans la structure du DB 0 après uneffacement général
Erreur dans DX 0 ou DB 1
N° d’erreur
Type deparamètre
Signifi cation
Erreur dans DX 0
30H 00H DX 0 manque en mode multiprocesseur.
32H 00H Alarme de processus et interruption système sélectionnées simultanément
33H 00H Alarmes et mode de fonctionnement de l’automate incompatibles
Tableau 8-10 BS 75 : Erreur dans DX 0 ou DB 1
Affectation des bits des mots de données système
Programmation de la CPU 948C79000-G8577-C848-04 8 - 27
N° d’erreur
Type deparamètre
Signifi cation
Suite du tableau 8-10
34H 06H En-tête de bloc DX 0 non valable
35H 07H Erreur dans l’indicatif de rubrique du DX 0
36H 07H Paramètre erroné du bloc DX 0
Erreur dans DB 1
38H 06H DB 1 manque en mode multiprocesseur.
39H 06H En-tête du bloc DB 1 non valable
3AH 07H Déclaration multiple de l’ indicatif du DB 1
3BH 07H Décalage (offset) octet DB 1 sans indicatif
3CH 07H La périphérie indiquée dans le DB 1 n’est pas enfichée.
3DH 07H Décalage trop grand (erreur de paramétrage)
3EH 07H Décalages trop nombreux
Indicatifs d’erreur desfonctions d’autotest
N°d’erreur
Type deparamètre
Signifi cation
61H 0BH Erreur de total de contrôle dans le code du programme système
62H 0AH Erreur de total de contrôle dans le code des blocs de code STEP 5
63H 0BH Erreur du décodeur d’adresses
64H 0CH Erreur lors du test de la mémoire utilisateur organisée par mots
65H 0CH Erreur lors du test de la mémoire utilisateur organisée par octets
66H 00H Erreur lors du test de la surveillance du temps de cycle
67H 00H Erreur lors du test du signal BASP
68H 00H Erreur lors du test de l’ horloge matérielle
Tableau 8-11 BS 75 : Indicatifs d’erreur des fonctions d’autotest
Affectation des bits des mots de données système
Programmation de la CPU 9488 - 28 C79000-G8577-C848-04
Structure de la rubrique deparamètres (BS 76 à BS 78)
Type de paramètre
Structure de la rubrique de paramètres
00H Pas de paramètres ; paramètres 1, 2, 3 = 0
01H Paramètre 1 Type de bloc/numéro de bloc (indicatifs repris de l’en-tête)
Paramètre 2 Instruction qui a engendré l’ interruption
02H Paramètre 1 Numéro du coupleur (périphérie décentralisée)
Paramètre 2 Numéro de l’ interface défectueuse
Paramètre 3 Décalage (offset) d’octet erroné
03H Paramètre 1 libre
Paramètre 2 Adresse d’erreur, poids fort
Paramètre 3 Adresse d’erreur, poids faible
04H Paramètre 1 Type de bloc/numéro de bloc (indicatifs repris de l’en-tête)
Paramètre 2 Instruction qui a engendré l’ interruption
Paramètre 3 Type/numéro du bloc DB/DX à ouvrir
05H Paramètre 1 Les bits ci-après sont mis à "1" suivant l’erreur.
Bit 0 = 1 : Alarme d’horloge, période 1
Bit 1 = 1 : Alarme d’horloge, période 2
: : : :
Bit 7 = 1 : Alarme d’horloge, période 8
Bit 8 = 1 : Alarme d’horloge, période 9
Bit 9 = 1 : Alarme d’horloge masquée trop longtemps= 0 : Dépassement de la file d’attente
Bit 10 réservé
Bit 11 réservé
Bit 12 = 1 : Interruption G
Bit 13 = 1 : Interruption F
Bit 14 = 1 : Interruption E
Bit 15 = 1 : Interruption X
06H Paramètre 1 Valeur de consigne du mot de données dans l’en-tête du DX 0 ou DB 1
Paramètre 2 Valeur effective du mot de données dans l’en-tête du DX 0 ou DB 1
07H Paramètre 1 Indicatif de rubrique ou mot indicateur dans DX 0 ou DB 1
Paramètre 2 Paramètre 1 erroné dans DX 0 ou DB 1(FFFFH : paramètre non signifi catif)
Paramètre 3 Paramètre 2 erroné dans DX 0 ou DB 1(FFFFH : paramètre non signifi catif)
Tableau 8-12 BS 76 à BS 78 : types de paramètres
Affectation des bits des mots de données système
Programmation de la CPU 948C79000-G8577-C848-04 8 - 29
Type de paramètre
Structure de la rubr ique de paramètres
Suite du tableau 8-12
08H Paramètre 1 Les bits ci-après sont mis à "1" suivant l’erreur.
Bit 0 = 1 : Retard d’acquittement à l’ initialisation (ACQ)
Bit 1 = 1 : Erreur de parité à l’ initialisation (PARI)
Bit 2 = 1 : Le contenu de la carte à mémoire est trop important.
Bit 3 = 1 : Erreur du système d’exploitation
Bit 4 = 1 : Indicatif du bloc erroné
Bit 5 = 1 : Indicatif de fin de bloc erroné
Bit 6 réservé
Bit 7 réservé
Bit 8 = 1 : DB 0 modifié depuis le dernier démarrage
Bits 9à 15
réservés
Paramètre 2 Adresse d’erreur, poids fort (si bit 2, 4 ou 5 du paramètre 1 = "1")
Paramètre 3 Adresse d’erreur, poids faible (si bit 2, 4 ou 5 du paramètre 1 = "1")
09H Paramètre 1 Code opération EX DX ou E DB (d’où résulte le type de bloc)
Paramètre 2 Numéro de bloc
Paramètre 3 Longueur du bloc de données
10H Numéro d’erreur interne au système
0AH Paramètre 1 Type de bloc/numéro de bloc (indicatifs repris de l’en-tête)
Paramètre 2 Total de contrôle de consigne
Paramètre 3 Total de contrôle effectif
0BH Paramètre 1 FFFFH
Paramètre 2 Adresse d’erreur de poids fort lors d’une erreur de code d’adressageTotal de contrôle effectif de poids fort lors du test du code du programme système
Paramètre 3 Adresse d’erreur de poids faible lors d’une erreur de code d’adressageTotal de contrôle effectif de poids faible lors du test du code du programme système
0CH Paramètre 1 Profil de contrôle pour le test de la mémoire utilisateur
Paramètre 2 Adresse d’erreur, poids fort
Paramètre 3 Adresse d’erreur, poids faible
Affectation des bits des mots de données système
Programmation de la CPU 9488 - 30 C79000-G8577-C848-04
Exemple d’un message système
BS 75 21H 09H E F04BH
BS 76 7804H E F04CH
BS 77 0064H E F04DH
BS 78 0078H E F04EH
BS 75, numér o d’ er r eur = 21H L’ er r eur est appar ue dans l e pr ogr amme ut i l i-sat eur STEP 5 l or s de l a cr éat i on d’ un DB/ DX
BS 75, t ype de par amèt r e = 09H La r ubr i que de par amèt r es dans BS 76 à BS 78cont i ent 3 p ar amèt r es.
BS 76, par amèt r e 1 = 7804H Code opér at i on = EX DX, d’ où r ésul t e l e t ype de bl oc DX.
BS 77, par amèt r e 2 = 0064H Numér o de bl oc = 100 ( déci mal )BS 78, par amèt r e 3 = 0078H Longueur du bl oc de données = 120 mot s de
données
Si gni f i cat i on du message : Le bl oc de données DX 100 d’ une l ongueur de 120 mots de données devait êt r ecr éé dans l e pr ogr amme ut i l i sat eur STEP 5, mai s i l exi st e déj à.
Affectation des bits des mots de données système
Programmation de la CPU 948C79000-G8577-C848-04 8 - 31
Données systèmeBS 96 à BS 99
Horloge temps réel
La zone des données système BS 96 à BS 99 contient la date etl’heure en cours. Vous pouvez les y lire si nécessaire.
15 0
BS 96 Secondes 1/10, 1/100 seconde E F060H
BS 97 Heures Minutes E F061H
BS 98 Jour Jour de la semaine E F062H
BS 99 Année Mois E F063H
L’horloge est actualisée toutes les 10 ms.
BS 96 Secondes et centièmes de seconde (adresse : E F060H)
Octet de poids fort
Bit Contenu
15Secondes, dizainesvaleurs admises : 00H à 05H
14
13
12
11Secondes, unitésvaleurs admises : 00H à 09H
10
9
8
Octet de poids faible
7Dizièmes de secondevaleurs admises : 00H à 09H
6
5
4
3Centièmes de secondevaleurs admises : 00H à 09H
2
1
0
Tableau 8-13 Occupation de BS 96 (horloge temps réel : secondes, centièmes de seconde)
Affectation des bits des mots de données système
Programmation de la CPU 9488 - 32 C79000-G8577-C848-04
BS 97 Heures et minutes (adresse : E F061H)
Octet de poids fort
Bit Contenu15 0 = format 12h, 1 = format 24h14 0 = AM, 1= PM13 Heures, dizaines, valeurs admises : 00/01H pour
format 12h, 00/02H pour format 24h1211
Heures, unitésvaleurs admises : 00H à 09H
1098
Octet de poids faible
7Minutes, dizainesvaleurs admises : 00H à 05H
6543
Minutes, unitésValeurs admises : 00H à 09H
210
BS 98 Jour et jour de la semaine (adresse : E F062H)
Octet de poids fort
Bit Contenu15
Jour, dizainesvaleurs admises : 00H à 03H
14131211
Jour, unitésvaleurs admises : 00H à 09H
1098
Octet de poids faible
7Jour de la semainevaleurs admises : 00H à 06H pour Lu à Di
6543
0210
Tableau 8-14 Occupation de BS 97 (horloge temps réel : heures, minutes)
Tableau 8-15 Occupation de BS 98 (horloge temps réel : jour, jour de la semaine)
Affectation des bits des mots de données système
Programmation de la CPU 948C79000-G8577-C848-04 8 - 33
BS 99 Année et mois (adresse : E F063H)
Octet de poids fort
Bit Contenu
15Année, dizainesvaleurs admises : 00H à 09H
14
13
12
11Année, unitésvaleurs admises : 00H à 09H
10
9
8
Octet de poids faible
7Mois, dizainesvaleurs admises : 00/01H
6
5
4
3Mois, unitésvaleurs admises : 00 à 09H
2
1
0
Tableau 8-16 Occupation de BS 99 (horloge temps réel : année, mois)
Affectation des bits des mots de données système
Programmation de la CPU 9488 - 34 C79000-G8577-C848-04
Donnée système BS 120 Protection du logiciel
La donnée système BS 120 commande la fonction système de protecti-on du logiciel qui empêche, au moyen d’un mot de passe, qu’un utili-sateur non autorisé, par exemple, lise, modifie ou efface des blocs àl’aide de la console de programmation.
Mot de passe La protection du logiciel est liée à un mot de passe transmis au pro-gramme système via le mot BS 120.
Activation de la protection dulogiciel
La définition d’un mot de passe dans le mot BS 120 active automati-quement la protection du logiciel. Vous ne pouvez définir un nouveau mot de passe qu’après effacementdu précédent.
Désactivation de la protectiondu logiciel
L’effacement du mot de passe désactive automatiquement la protecti-on du logiciel.Pour effacer un mot de passe, vous devez communiquer ce dernier auprogramme système via BS 120.
5 tentatives d’effacement aumaximum
Le programme système refuse et comptabilise les tentatives d’efface-ment du mot de passe si vous indiquez un mot de passe erroné. Aprèscinq tentatives au maximum, il suspend le traitement du mot de passe.L’effacement du mot de passe n’est alors à nouveau possible qu’aprèsun démarrage.Le compteur de tentatives infructueuses est remis à zéro lors de l’ef-facement réussi du mot de passe ou lors d’un démarrage.
Procédures de définition etd’effacement du mot de passe
Vous définissez ou effacez le mot de passe – et activez ou désactivezainsi la protection du logiciel – en écrivant un profil binaire déterminé(voir plus loin "Ecriture de BS 120") dans le mot de données systèmeBS 120 :
•• à l’aide du programme STEP 5
•• ou à l’ aide d’un contrat de lecture d’adresse de la PG.
NotaA la livraison de la CPU et après un effacement général, le mot depasse est effacé et la protection du logiciel désactivée.
Affectation des bits des mots de données système
Programmation de la CPU 948C79000-G8577-C848-04 8 - 35
Moments d’activation ou dedésactivation de la protectiondu logiciel
Vous pouvez définir un mot de passe à tout moment. Toutefois, laprotection du logiciel n’est alors activée qu’à des moments précis :
•• en arrêt partiel :une fois après l’ appel de l’OB 38 1,cycliquement avant l’appel de l’OB 39 1 ;
•• pendant la mise en route :une fois après l’appel des OB 20, 21 et 22 de mise en route ;
•• en état de marche RUN :cycliquement avant l’appel de l’OB 1.
Ecriture de BS 120 Pour activer la protection du logiciel, vous écrivez le profil binaire cor-respondant à la fonction à exécuter dans le mot de données systèmeBS 120. Le tableau suivant décrit comment constituer ce profil binaire.
Adresse : E F078H
Octet de poids fort
Bit Contenu
15 Bit d’action : 1 = exécution de la fonction
14 Bit de fonction : 1 = définition d’un mot de passe0 = effacement du mot de passe
13
Bits 8 à 13 du mot de passe de 14 bits
12
11
10
9
8
Octet de poids faible
7
Bits 0 à 7 du mot de passe de 14 bits
6
5
4
3
2
1
0
1 La demande est traitée, que l’OB 38 ou 39 soit chargé ou non. Il est ainsi possible d’activer la protection du logiciel à l’arrêt.
Tableau 8-17 Occupation de BS 120 (protection du logiciel) pour l’ écriture
Affectation des bits des mots de données système
Programmation de la CPU 9488 - 36 C79000-G8577-C848-04
Lecture de BS 120 Le programme système renvoie un code dans le mot de données sy-stème BS 120 lorsqu’il a exécuté un contrat de protection du logiciel.
L’exploitation de ce code vous permet d’obtenir des informations surla réussite de ce contrat.
Adresse : E F078H
Octet de poids fort
Bit Contenu
15 0
14 Bit d’erreur : 0 = pas d’erreur, 1 = erreur
13 0
12 0
11 0
10 Compteur binairedestentatives d’effacement
9
8
Octet de poids faible
7 0
6 0
5 0
4 1 = Aucun mot de passe actif
3 1 = Effacement interdit car mot de passe erroné
2 1 = Protection du logiciel par mot de passe déjà activée
1 1 = Mot de passe interdit
0 1 = Débordement du compteur de tentatives
Tableau 8-18 Occupation de BS 120 (protection du logiciel) pour la lecture
Affectation des bits des mots de données système
Programmation de la CPU 948C79000-G8577-C848-04 8 - 37
Codes renvoyés par leprogramme système
Ind ication Signif ication
0000H Pas d’erreur
4x01H Le compteur des tentatives d’effacement a débordé. Un démarrage est nécessaire pour leremettre à 0.
4x02H Mot de passe interdit (0000H ou 3FFFH)
4x04H Vous avez tenté d’activer un nouveau mot de passe alors que la protection du logiciel étaitdéjà activée (x = nombre de tentatives d’effacement).
4x08H Vous avez essayé d’effacer le mot de passe défini – et donc de désactiver la protection dulogiciel – à l’ aide d’un mot de passe erroné. Le compteur des tentatives d’effacement a étéincrémenté. La valeur "x" du compteur est renvoyée avec le code (nombre binaire dans lesbits 8 à 10).
4010H Vous avez essayé d’effacer un mot de passe inexistant.
Meilleur moment d’activationde la protection du logiciel
La protection est la plus effi cace lorsque vous activez la protection dulogiciel dans l’OB 38 ou 39 (arrêt partiel). Ainsi, la protection est im-médiatement active après l’effacement général même avec une carte àmémoire enfichée.
Réactions en cas d’atteinte àla protection du logiciel
Une fois la protection du logiciel activée, le programme système réa-git comme décrit dans le tableau suivant si des contrats de la PG por-tent atteinte à cette protection.
Fonction PG Réaction à la PG
Effacement de blocs Message : "Type/numéro de bloc ill icite"
Lecture de blocs Lecture d’un bloc fictifFB/FX :
Numéro de FBNOM :DUMMY
:BE
DB/DX : DW0 6500
OB/PB/SB ::BE
Ecriture de blocs (bloc inexistant)
Le bloc est écrit.
Substitution de blocs (bloc existant)
Message : "Bloc existe déjà"Si vous acquittez avec la touche de validation, le message "Type/numéro debloc illicite" est émis.
Affectation des bits des mots de données système
Programmation de la CPU 9488 - 38 C79000-G8577-C848-04
Exemples d’écriture et delecture de BS 120
Act i vat i on de l a pr ot ect i on du l ogi c i el dans l es OB de mi se en r out e
I l est r ecommandé d’ act i ver l a pr ot ect i on du l ogi c i el par pr ogr amme dans undes OB de mi se en r out e ( OB 20, OB 21, OB 22, OB 38) .
:: L KH C0AF KH = pr of i l bi nai r e " déf i ni t i on de mot de passe": ( mot de passe = 00AFH):T BS 120:
Expl oi t at i on du code r envoyé dans BS 120
La séquence d’ i nst r uct i ons STEP 5 ci - apr ès dans l ’ OB 1 ou l ’ OB 39 v ousper met de r éagir à une er r eur sur venue l or s de l a déf i ni t i on du mot de passeen expl oi t ant l e code r envoyé par l e pr ogr amme syst ème.N’ oubl i ez p as q ue ce code ne peut ê t re expl oi t é q u’ apr ès cer t ai nes act i onsdu pr ogr amme syst ème ( voi r pl us haut ) .
::L BS 120:L KB 0: ><F: SPB FB yyy Appel er l e bl oc f onct i onnel de t r ai t ement d’ er r eur
NOM : ERREUR MP:
Ef f acement et modi f i cat i on du mot de passe à l a PG par l a f onct i on del ect ur e d ’ adr esse
Si t uat i on de dépar t : la CPU se t r ouve en ét at de mar che RUN ou à l ’ ar r êt.
Exécut ez l es opér at i ons sui vant es à la PG :
1) Demandez l a l ect ur e du cont enu de l ’ adr esse E F078H.
2) Ef f acez l ’ anc i en mot de passe en subst i t uant à ce cont enu l e nombr e hexadéci mal 80AFH ( 00AFH = anci en mot de passe).
3) At t endez au moi ns aussi l ongt emps que l e t emps de cyc l e de l ’ OB 39 ou de l ’ OB 1.
4) Demandez à nouveau l a l ect ur e du cont enu de l ’ adr esse E F078H.
5) Ent r ez l e nouveau mot de passe 1234H en y i nscr i vant l e nombr e hexadéci mal D 234H.
Affectation des bits des mots de données système
Programmation de la CPU 948C79000-G8577-C848-04 8 - 39
Données systèmeBS 136 à BS 137
Pour la fonction d’autotest
Les mots de données système BS 136 et BS 137 sont utilisés pour lafonction d’autotest.
BS 136 Nombre de tranches horaires (adresse : E F088H)
BS 137 Bits de commande (adresse : E F089H)
Les bits de commande permettent d’activer ou de désactiver les foncti-ons d’autotest (cf. paragraphe 5.7).Bit = "1" : fonction d’autotest activéeBit = "0" : fonction d’autotest désactivée
Octet de poids fort
Bit Contenu
15 Test de la mémoire
14 libre
13 Test de la surveillance du temps de cycle
12 libre
11 Test du signal BASP
10 Test d’horloge
9 libre
8 libre
Octet de poids faible
7 Test des lignes d’adresses
6 libre
5 Test du code des blocs de code STEP 5 dans la mémoire utilisateur
4 libre
3 libre
2 Test du code du programme système
1 libre
0 libre
Tableau 8-19 Occupation de BS 137 (bits de commande pour fonctionsd’autotest)
Affectation des bits des mots de données système
Programmation de la CPU 9488 - 40 C79000-G8577-C848-04
Donnée système BS 139 Temps de cycle écoulé lors du redémarrage de la surveillance
Adresse : E F08BH
Ce mot de données système contient le temps de cycle écoulé depuisle dernier point de contrôle système (début de l’OB 1) jusqu’au re-démarrage de la surveillance du temps de cycle via l’OB 222 (sil’OB 222 est appelé plusieurs fois dans le cycle, jusqu’au dernier re-démarrage de la surveillance du temps de cycle).
La valeur de temps est de : contenu de BS 139 * 10 ms.
Donnée système BS 253 Liste des coupleurs enfichés
Adr esse : E F0FDH
Octet de poids fort
Bit Contenu
15
réservé14
13
12
11 Coupleur numéro 11
10 Coupleur numéro 10
9 Coupleur numéro 9
8 Coupleur numéro 8
Octet de poids faible
7 réservé (coupleur numéro 8)
6 réservé (coupleur numéro 7)
5 réservé (coupleur numéro 6)
4 réservé (coupleur numéro 5)
3 réservé (coupleur numéro 4)
2 réservé (coupleur numéro 3)
1 réservé (coupleur numéro 2)
0 réservé (coupleur numéro 1)
Tableau 8-20 Occupation de BS 253 (liste des coupleurs enfichés)
Affectation des bits des mots de données système
Programmation de la CPU 948C79000-G8577-C848-04 8 - 41
8.3.6Zone de données systèmelibreme nt adressab le
L’espace mémoire E 8200H à E DEF0H est utilisé par le programmesystème comme zone de données système librement adressable.
Rubrique d’identification del’automate
Au début de cette zone se trouve une rubrique d’information de12 mots dans laquelle figure l’ identification de l’automate :
Mot
0 "A" "G" E 8200H
1 "1" "5" E 8201H
2 "5" "U" E 8202H
3 "C" "P" E 8203H
4 "U" "9" E 8204H
5 "4" "8" E 8205H
6 "V" "x" E 8206H
7 "." "y" E 8207H
8 0
9 0
10 0
11 0 E 820BH
"x" et "y" correspondent à la version en cours.
Zone de données système librement adressable
Programmation de la CPU 9488 - 42 C79000-G8577-C848-04
Paramètres système A partir de l’adresse E 8210H figurent les paramètres système suivants :
Mot
0 Adresse de début conformateur de signaux d’entrée E 8210H
1 Adresse de début conformateur de signaux de sortie E 8211H
2 Adresse de début de la mémoire image des entrées E 8212H
3 Adresse de début de la mémoire image des sorties E 8213H
4 Adresse de début des mémentos E 8214H
5 Adresse de début des temporisateurs E 8215H
6 Adresse de début des compteurs E 8216H
7 Adresse de début des données système E 8217H
8 Indicatif d’état Version du logicielde l’ automate
E 8218H
9 Adresse de fin de la mémoire utilisateur E 8219H
10 Mémoire du programme système E 821AH
11 Longueur de la liste des blocs DB E 821BH
12 Longueur de la liste des blocs SB E 821CH
13 Longueur de la liste des blocs PB E 821DH
14 Longueur de la liste des blocs FB E 821EH
15 Longueur de la liste des blocs OB E 821FH
16 Longueur de la liste des blocs FX E 8220H
17 Longueur de la liste des blocs DX E 8221H
18 Longueur de la liste d’adresses (DB 0) E 8222H
19 ID d’emplacement (voir ci-après)
Identificateur de CPU 2(voir ci-après)
E 8223H
20 Longueur de l’en-tête de bloc E 8224H
21 Identif icateur de CPU 1(voir ci-après)
Version du logicielde couplage PG
E 8225H
Vous pouvez également obtenir les informations concernant certainesdonnées système (structure interne de la CPU, version du logiciel,identifi cateur de la CPU, etc.) à l’aide de la fonction PG en ligne"Paramètres système".
Zone de données système librement adressable
Programmation de la CPU 948C79000-G8577-C848-04 8 - 43
Mot 19 et mot 21 Structure des mots 19 et 21
Mot 19
Bit Occupation de l’ octet de poids fort
15 0
14 0
13 0
12 0
11 Identificateur d’emplacement de la CPU 4
10 Identificateur d’emplacement de la CPU 3
9 Identificateur d’emplacement de la CPU 2
8 Identificateur d’emplacement de la CPU 1
Occupation de l’ octet de poids faible
7 Type de CPU :0010 = CPU 948(valable exclusivement en liaison avec l’ identifi-cateur de CPU)
6
5
4
3 Identificateur de CPU 2 :1000 = S5-155U
2
1
0
Zone de données système librement adressable
Programmation de la CPU 9488 - 44 C79000-G8577-C848-04
Mot 21
Bit Occupation de l’ octet de poids fort
15 réservé
14
13
12
11
10
9
8
Bit Occupation de l’ octet de poids faible
7
Version du logiciel de couplage de la PGsous la forme "xyH"
Exemple :13H correspond à la version "V1.3".
6
5
4
3
2
1
0
Zone de données système librement adressable
Programmation de la CPU 948C79000-G8577-C848-04 8 - 45
Zone de données système librement adressable
Programmation de la CPU 9488 - 46 C79000-G8577-C848-04
Sommaire du chapitre 9
9.1 Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 - 4
9.2 Accès à la mémoire par adressage dans l’ACCU 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 - 8
9.2.1 LIR et TIR : Chargement et transfert indirects de registres de 16 bits . . . . . . . . . . . . . . 9 - 99.2.2 Exemples d’accès à des DW supérieurs à 255 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 - 159.2.3 LDI et TDI : Chargement et transfert indirects de registres de 32 bits . . . . . . . . . . . . . 9 - 17
9.3 Transfert de blocs de mémoire. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 - 19
9.4 Opérations avec le registre d’adresse de base BR. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 - 22
9.4.1 Opérations de transfert entre registres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 - 239.4.2 Accès à la mémoire locale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 - 249.4.3 Accès à la mémoire commune . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 - 259.4.4 Accès aux pages de mémoire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 - 29
9Accès à la mémoire par les adresses absolues
Programmation de la CPU 948C79000-G8577-C848-04 9 - 1
Sommaire
Programmation de la CPU 9489 - 2 C79000-G8577-C848-04
9Accès à la mémoire par les adresses absolues
Le présent chapitre décrit comment vous pouvez accéder par desadresses absolues à des données se trouvant dans certaines zones demémoire, en utilisant des instructions STEP 5 ainsi que des registresspéciaux de STEP 5.
Programmation de la CPU 948C79000-G8577-C848-04 9 - 3
9.1 Introduction
Le langage de programmation STEP 5 comprend des opérations sy-stème à l’aide desquelles il est possible d’accéder à l’ensemble del’espace d’adressage.
Les opérations décrites ci-après utilisent des adresses absolues sur 20bits et dépendent donc de la taille de la mémoire, du type de mémoire,de la périphérie, ainsi que des processeurs de communication, des car-tes périphériques intelligentes, etc., utilisés dans l’automate program-mable.
AttentionUne utilisation non conforme de ces opérations peut entraînerl’altération de blocs STEP 5 ainsi que de données système. Celapeut avoir pour conséquence des états de fonctionnementintempestifs. C’est pourquoi les opérations système utilisant des adressesabsolues ne doivent être employées que par des utilisateurs ayantde très bonnes connaissances du système.
Mémoire locale On désigne par mémoire locale la zone de mémoire présente surchaque CPU (mémoire utilisateur, zones BA, BB, BS, BT, compteurs,temporisations, mémentos, mémoire image).
Mémoire commune Cette mémoire – également désignée par mémoire globale – est com-mune à toutes les CPU ; on y accède par le bus S5.
Organisation de la mémoire Les zones de mémoire sont organisées par octets ou par mots.
•• Organisation par octets : chaque adresse porte sur un octet.
•• Organisation par mots : chaque adresse porte sur un mot de 16 bits(2 octets).
L’organisation de la mémoire locale est prédéfinie (voir chapitre 8).
L’organisation de la mémoire commune dépend du type des cartes en-fichées.
Introduction
Programmation de la CPU 9489 - 4 C79000-G8577-C848-04
015
pages
7
1024 octets/mots2048 octets/mots
F 0000H
F F000H
F F400H
F FC00H
F FE00H
F FFFFHF FEFFH
F EFFFH
Registre d´adresse de page(registre de sélect ion)
externe, commune, unique,adressable par le bus S5(une par automate)
interne, locale,mul t ip le(suivant le nombrede CPU enf ichées)
715 00 0000H
E FBFFHE FC00H
E FFFFHFFH
0715 0
255
2
10
Figure 9-1 Mémoires locale et commune
Introduction
Programmation de la CPU 948C79000-G8577-C848-04 9 - 5
Accès à la mémoire Les instructions ci-après permettent d’accéder aux zones de mémoirelocale et commune par des adresses absolues (voir aussi figure 9-2).
Accès aux zones locale et commune
Vous pouvez accéder aussi bien à la zone locale qu’à la zone commu-ne :
•• à la zone locale (adresses 0 0000H à E FFFFH) et à la zone com-mune (adresses F 0000H à F FFFFH) par :
LIR, TIR, LDI, TDI, TNW, TXB, TXW,
•• à la partie organisée par mots (adresses 0 0000H à E FBFFH) ou àcelle organisée par octets (adresses E FC000 à E FFFF) de la zonelocale par :
LRW, TRW, LRD, TRD.
Accès uniquement à la zone commune
Vous pouvez accéder aux parties suivantes de la zone commune :
•• à la partie de la zone commune organisée par octets (adressesF 0000H à F FFFFH) par :
LB GB, LB GW, LB GD, TB GB, TB GW, TB GD, TSG,
•• à la partie de la zone commune organisée par mots (adressesF 0000H à F FFFFH) par :
LW GW, LW GD, TW GW, TW GD, TSG .
Accès à la zone des pages Vous pouvez accéder aux parties suivantes de la zone des pages :
•• à la partie de la zone commune organisée par octets (adressesF F400H à F FBFFH = zone des pages) :
LB CB, LB CW, LB CD, TB CB, TB CW, TB CD, TSC,
•• à la partie de la zone commune organisée par mots (adressesF F400H à F FBFFH = zone des pages) :
LW CW, LW CD, TW CW, TW CD, TSC.
Introduction
Programmation de la CPU 9489 - 6 C79000-G8577-C848-04
Accès impossible Accès possible
c) LB GB, LB GW, LB GD,
e) LB CB, LB CW, LB CD,TB CB, TB CW, TB CD, (TSC)
f) LW CW, LW CD,TW CW, TW CD, (TSC)
TB GB, TB GW, TB GD, (TSG)d) LW GW, LW GD,
TW GW, TW GD, (TSG)
b) LRW, TRW, LRD, TRDa) LIR, TIR, LDI, TDI, TNW, TXB, TXW
L´accès en fonctionnementmultiprocesseur peutentraîner des erreurs.
Figure 9-2 Accès aux zones de mémoire locale ou commune par des adresses absolues
Introduction
Programmation de la CPU 948C79000-G8577-C848-04 9 - 7
9.2 Accès à la mémoire par adressage dans l’ACCU 1
Application Les opérations décrites dans ce paragraphe conviennent tout particu-lièrement à l’accès aux blocs de données et autres zones d’opérandes.Il est cependant recommandé de ne pas utiliser ces opérations pour ac-céder à des blocs contenant des programmes STEP 5 (OB, FB, PB etSB).
Pour l’accès à la mémoire, vous pouvez utiliser divers registres de 16ou 32 bits. Parmi ces registres, on a les accumulateurs 1 à 4 ainsi qued’autres registres spéciaux utilisés par la CPU comme ressources.
Opérations
Opération Opérande Fonction
LIR Registre
0 à 15
Chargement du contenu d’un mot demémoire adressé (20 bits) par l’ACCU 1dans le registre de 16 bits
TIR Registre
0 à 15
Chargement du contenu du registre de16 bits dans un mot de mémoire adressé(20 bits) par l’ACCU 1
LDI Nom du
registre
Chargement du contenu des mots de mémoire "n" et "n+1" adressés (20 bits)par l’ACCU 1 dans le registre de 32 bits
TDI Nom du
registre
Chargement du contenu du registre de32 bits dans les mots de mémoire "n" et"n+1" adressés (20 bits) par l’ACCU 1
L’adresse absolue du mot de mémoire ou du premier des deux mots demémoire est toujours indiquée de la façon suivante dans l’ACCU 1 :
Les pages suivantes contiennent des explications sur les registres quevous pouvez utiliser pour ces opérations.
Vous trouverez ensuite quelques exemples vous expliquant commentappliquer ces opérations.
Tableau 9-1 Opérations pour l’accès indirect à la mémoire par registres
BitACCU 1-H ACCU 1-L
31 20 19 16 15 0
0 Bits d´adresse Bits d´adresse 0 à 1516 à 19
Accès à la mémoire par adressage dans l’ACCU 1
Programmation de la CPU 9489 - 8 C79000-G8577-C848-04
9.2.1LIR et TIR : Chargement ettransfert indirects deregistres de 16 bits
Le tableau suivant indique quels registres de la CPU 948 vous pouvezutiliser pour les opérations LIR et TIR, ainsi que leur contenu.
Registre Contenu du registre (16 bits)
0 ACCU 1-H (mot de gauche de l’ACCU 1, bits 16 à 31)1
1 ACCU 1-L (mot de droite de l’ACCU 1, bits 0 à 15)1
2 ACCU 2-H
3 ACCU 2-L
5 Pointeur de la pile des blocs (offset)
6 DBA (adresse de début du bloc de données)
8 DBL (longueur du bloc de données)
9 ACCU 3-H
10 ACCU 3-L
11 ACCU 4-H
12 ACCU 4-L
1 Si le contenu de la cellule de mémoire adressée doit être chargé dans le registre 0 ou 1, l’adresse figurant dans l’ACCU 1 est écrasée.
Les registres 4, 7, 13, 14 et 15 n’existent pas pour la CPU 948. Il nefaut donc pas utiliser d’opérations LIR et TIR avec ces numéros de re-gistre.
LIR et TIR sur des zones demémoire de 8 bits
Lorsque vous accédez à l’aide de LIR ou TIR à des zones de mémoireorganisées par octets, sachez :
•• que, pour LIR, l’octet de poids fort du registre prend des valeursnon définies (excepté les mémentos, MIE et MIS où les octets depoids fort reçoivent la valeur FFH)
et
•• que, pour TIR, seul l’octet de poids faible du registre est transféré(l’octet de poids fort est perdu).
Les figures 9-3 et 9-4 mettent en évidence les différences lors des ac-cès par LIR et TIR à des zones de mémoire organisées par mots et paroctets.
Tableau 9-2 Registres de 16 bits pour LIR et TIR
Accès à la mémoire par adressage dans l’ACCU 1
Programmation de la CPU 948C79000-G8577-C848-04 9 - 9
15 0
Registre n
Registre n
19 0
19 0
ACCU 1
ACCU 1
Cel lu le mémoireadressée
Cel lu le mémoireadressée
15 0
LIR n
TIR n
15 0
Figure 9-3 LIR et TIR sur des zones de mémoire de 16 bits (organisées par mots)
15 0
Registre n
Registre n19 0
19 0
ACCU 1
ACCU 1
Cel lu le mémoireadressée
Cel lu le mémoireadressée
15 0
LIR n
x x
x x
TIR n
7 0
Figure 9-4 LIR et TIR sur des zones de mémoire de 8 bits (organisées par octets)
Accès à la mémoire par adressage dans l’ACCU 1
Programmation de la CPU 9489 - 10 C79000-G8577-C848-04
Registres 0 à 3 et 9 à 12 :ACCUS 1, 2, 3 et 4
Lors du traitement du programme, la CPU utilise les accumulateurscomme mémoire intermédiaire. A l’aide des instructions TIR et LIR,vous pouvez transférer le contenu des accumulateurs dans des cellulesde mémoire à adressage absolu ou charger dans les accumulateurs lecontenu de telles cellules. L’adresse absolue de la cellule de mémoirefigure dans les bits 0 à 19 de l’ACCU 1.
Exemples
Registre 6 : DBA (adresse dedébut du bloc de données)
Lors de l’appel d’un bloc de données par les instructions A DB etAX DX, l’adresse du DW 0 du bloc de données ouvert est chargéedans le registre 6. Cette adresse se trouve dans la liste des adresses deblocs dans le DB 0. Le registre DBA est mis à "0" avant chaque appel de l’OB 1.
Le contenu du registre DBA est conservé :
•• si, par une instruction de saut (SPA ou SPB), le traitement du pro-gramme est poursuivi dans un autre bloc
ou
•• si un autre niveau de traitement de programme est appelé.
Le contenu de la cellule de mémoire d’adresse E F800 est chargé dans le motde mémentos MW 100.
:L DH 000E F800 Charger l’adresse E F800 de la cellule de mémoire dans : l’ACCU 1:LIR 1 Charger le contenu de la cellule de mémoire adressée : par l’ACCU 1 dans le registre 1 = ACCU 1-L:T MW 100 Inscrire le contenu de l’adresse E F800 dans le mot de : mémentos MW 100:BE
Le contenu du mot de mémentos MW 200 est transféré dans la cellule demémoire d’adresse E F800.
:L MW 200 Charger le mot de mémentos MW 200 dans l’ACCU 1:L DH 000E F800 Charger dans l’ACCU 1 l’adresse E F800 vers laquelle: doit s’effectuer le transfert (mot de mémentos MW 200 : vers ACCU 2):TIR 3 Transférer le contenu du registre 3 = ACCU 2-L dans : la cellule de mémoire adressée par l’ACCU 1.:BE
Accès à la mémoire par adressage dans l’ACCU 1
Programmation de la CPU 948C79000-G8577-C848-04 9 - 11
Son contenu est modifié :
•• quand un autre bloc de données est ouvert
ou
•• lorsqu’il y a retour à un bloc de niveau supérieur alors qu’un nou-veau bloc de données avait été ouvert dans le bloc appelé (voir aus-si paragraphe 2.4.2).
Exemple
Effet de l’opération "AX DX 17" sur le registre DBA
Lors de l’appel du DX 17, l’adresse du mot de mémoire dans lequel se trouveDW 0 est inscrite dans le registre DBA. Dans l’exemple, DBA = 4152H.
Nota : L’adresse inscrite dans le registre DBA est indiquée sous "Adr.DB" dans la pile des interruptions.
En-tête de bloc
de 5 mots
KH = 0000
KH = 0001
4 151BH
4 151CH
4 151DH
4 151EH
4 151FH
4 1520H
4 1521H
4 1522H
DW 0 (sur adresse de paragraphe)
DW 1
DW 2
DBA
AdressesDX 17
.
.
.
Figure 9-5 Utilisation du registre DBA
Accès à la mémoire par adressage dans l’ACCU 1
Programmation de la CPU 9489 - 12 C79000-G8577-C848-04
Registre 8 : DBL (longueur dubloc de données)
A chaque appel d’un bloc de données, le registre DBL est chargé enplus du registre DBA. Ce registre contient la longueur (en mots) dubloc de données appelé, en-tête de bloc non compris. Le registre DBL est mis à "0" avant chaque appel de l’OB 1.
Le contenu du registre DBL est conservé :
•• si, par une instruction de saut (SPA ou SPB), le traitement du pro-gramme est poursuivi dans un autre bloc
ou
•• si un autre niveau de traitement de programme est appelé.
Il est modifié :
•• quand un autre bloc de données est ouvert
ou
•• lorsqu’il y a retour à un bloc de niveau supérieur alors qu’un nou-veau bloc de données avait été ouvert dans le bloc appelé (voir aus-si paragraphe 2.4.2).
NotaPour accéder à des adresses de blocs de données supérieures à255, vous pouvez modifier les registres DBA et DBL avec desopérations LIR. Le registre DBA contient des adresses deparagraphe. Une modification du registre DBA n’entraînecependant pas la modification automatique du registre DBL etréciproquement. La détection des erreurs de transfert n’est dece fait plus garantie.
Dans la CPU 948, les modifications effectuées sur le registreDBA ou DBL sont annulées dès que le traitement du bloc encours est terminé (entrées dans la pile des blocs). Ainsi, lesmodifications des registres DBA et DBL n’ont d’effet que dans lebloc dans lequel elles ont été exécutées.
Accès à la mémoire par adressage dans l’ACCU 1
Programmation de la CPU 948C79000-G8577-C848-04 9 - 13
Exemple
Effet de l’opération "AX DX 17" sur le registre DBL
A l’appel du DX 17, le nombre des mots de données disponibles est inscritdans le registre DBL. Dans cet exemple, DBL = 8 (DW 0 à DW 7).
Nota : Le nombre inscrit dans le registre DBL est indiqué sous "Reg.DBL"dans la pile des interruptions.
de 5 mots
En-tête de bloc
eeee
ffff
gggg
aaaa
bbbb
cccc
dddd
hhhh
4 151BH
4 151CH
4 151DH
4 151EH
4 151FH
4 1520H
4 1521H
4 1522H
4 1523H
4 1524H
4 1525H
4 1526H
4 1527H
DW 0
DW 1
DW 2
DW 3
DW 4
DW 5
DW 6
DW 7
DBA
DBL
AdressesDX 17
Figure 9-6 Utilisation du registre DBL
Accès à la mémoire par adressage dans l’ACCU 1
Programmation de la CPU 9489 - 14 C79000-G8577-C848-04
9.2.2Exemples d’accès à desDW supérieurs à 255
Exemple 1
Le contenu du mot de données DW 300 dans le DB 100 doit être lu, puistransféré dans le mot de mémentos MW 100. En modifiant les instructions STEP 5imprimées en caractères gras, vous pouvez également utiliser ce segment pourla lecture d’autres blocs de données (DB ou DX).
FB 5
SEGMENT 1 0000 Lecture du DW 300 du DB 100NOM :LIR DW
0005 :L DH 000E EC00 Adresse de début de la liste des DB0008 :L KF +100 ainsi que du numéro de DB000A :+D = entrée du DB 100 dans la liste000B : d’adresses (bits 4 à 19)000C :LIR 1 Adresse de début du DB 100 vers l’ACCU 1000D :SLD 4 Conversion de l’adresse en adresse physique000E :L KF +300 Le DW 300 doit être lu.0010 :+D Adr. = adresse de début du DB + adr. du DW0011 :LIR 1 Contenu du DW 300 vers l’ACCU 10012 :T MW 100 Sauvegarde dans MW 1000013 :BE
Exemple 2
Une constante doit être affectée à chaque mot de données d’un bloc de données.
Le programme ci-dessous affecte la constante KH = A5A5 à chaque mot dedonnées du DB 100. En modifiant les instructions STEP 5 imprimées encaractères gras, vous pouvez également utiliser ce programme pour affecterdes valeurs quelconques à d’autres blocs de données (DB ou DX). Les blocsde données manquants sont décelés et provoquent un saut à la marque NIVO.
Le programme utilise trois accumulateurs dont le contenu ne change pasdurant la boucle. L’ACCU 1 contient d’abord l’adresse du premier mot de données, puis estincrémenté de "1" à chaque nouveau passage de la boucle.L’ACCU 2 contient l’adresse du dernier mot de données + 1. La boucle estinterrompue dès que le contenu de l’ACCU 1 est égal à celui de l’ACCU 2.
Pour l’opération d’écriture dans les mots de données, on utilisel’instruction TIR 10 qui sauvegarde le contenu de l’ACCU 3-L (la constante)sous l’adresse se trouvant dans l’ACCU 1.
Contenu des ACCUS durant la boucle
ACCU 1 : adresse du mot de données actuel où écrire ACCU 2 : adresse du dernier mot de données où écrire + 1ACCU 3 : constante
Suite à la page suivante
Accès à la mémoire par adressage dans l’ACCU 1
Programmation de la CPU 948C79000-G8577-C848-04 9 - 15
Suite de l’exemple 2
Contenu des mémentos
MW 10 : bits 4 à 19 de l’adresse de début du DB/DX (pointe sur le DW 0)MW 12 : longueur du DB/DX (nombre de mots de données)MD 14 : adresse du dernier mot de données présent dans le DB/DX + 1
(adresse physique)
FB 6
SEGMENT 1 0000 Inscription d’une constante dans un DBNOM :INSCR DB0005 : ! mémentos requis : MB 10 à MB 17 !0006 :L DH 000E EC00 Adresse de début de la liste des DB0009 :L KF +100 ainsi que du numéro de DB000B :+D = entrée du DB 100 dans la liste d’adresses000C : (bits 4 à 19)000D :LIR 1 Adresse de début du DB 100 vers l’ACCU 1000E :T MW 10 Mémorisation intermédiaire de l’adresse de début000F :L KB 0 (adresse de paragraphe)0010 :!=F Lorsque l’adresse de début = 0, le DB est0011 :SPB =NIVO inexistant0012 :0013 :L MW 10 Adresse de début du DB (1 er DW)0014 :SLD 4 Convertir l’adresse en adresse physique0015 :L KB 1 Indication de la longueur de DB par0016 :-D le 5 ème mot de l’en-tête de bloc0017 :LIR 1 Nombre, en-tête compris, vers l’ACCU 10018 :ADD BF -5 Longueur DW = longueur totale - 5 mots0019 : (en-tête de bloc)001A :T MW 12 Sauvegarde intermédiaire de la longueur001B :001C :L MW 12 Nombre de mots de données +001D :L MW 10 adresse de début (DW 0 – convertie en001E :SLD 4 adresse physique –) 001F :+D donne0020 :T MD 14 adresse du dernier DW + 10021 :
0022 :L KH A5A5 Constante à attribuer à chaque mot de données0024 : 0025 :L MD 14 Adresse du dernier DW + 10026 :ENT Décaler la constante dans l’ACCU 3-L0027 : (= registre 10)0028 :L MW 10 Adresse du 1 er mot de données (DW 0)0029 :SLD 4 La convertir en adresse physique002A :002B BOUCL : Boucle :002C : ACCU 1 : adresse du DW où écrire002D : ACCU 2 : adresse du dernier DW + 1002E : ACCU 3 : constante002F :TIR 10 Sauvegarder la valeur de l’ACCU 3-L dans le DW0030 : avec l’adresse se trouvant dans l’ACCU 10031 :0032 :ADD DH 0000 0001 Incrémenter l’adresse de "1"0035 :0036 :><D Interrogation si le dernier DW est atteint0037 :SPB =SCHL (si ce n’est pas le cas, retour dans la boucle)0038 :0039 SUITE : Suite du programme ...003A : après écriture dans tous les DW ...003B :003C :BEA003D :003E NIVO : Si le DB 100 n’existe pas003F :BE
Accès à la mémoire par adressage dans l’ACCU 1
Programmation de la CPU 9489 - 16 C79000-G8577-C848-04
9.2.3LDI et TDI : Chargement ettransfert indirects deregistres de 32 bits
Le tableau suivant indique quels noms de registre vous pouvez utiliseravec la CPU 948 pour les opérations LDI et TDI, ainsi que leurcontenu.
Nom du registre
Contenu du registre (32 bits)
A1 ACCU 1 (ACCU1, bits 0 à 31) 1
A2 ACCU 2 (ACCU1, bits 0 à 31)
SA Compteur d’adresse STEP (bits 0 à 19)
BA Registre BA (adresse de début de bloc, bits 0 à 19)
BR Registre BR (registre d’adresses de base, bits 0 à 19)
1 Si le contenu de la cellule de mémoire adressée doit être chargé dans le registre A1, l’adresse figurant dans l’accumulateur 1 est écrasée.
Adresses d’octets Si les opérations LDI et TDI accèdent à des zones de mémoireorganisées par octets, sachez :
•• que, pour LDI, les octets de poids fort du registre adressé prennentdes valeurs non définies (excepté les mémentos, MIE et MIS oùles octets de poids fort reçoivent la valeur FFH)
et
•• que, pour TDI, seuls les octets de poids faible du registre adressésont transférés (les octets de poids fort sont perdus ; voir l’exempleà la page suivante).
Stockage des données pourLDI et TDI
Tableau 9-3 Registres de 32 bits pour LDI et TDI
Registre depoids fort
Registre depoids faible
31 16 15
15
DW n
Adresse
DW n+1
0
0
aaaa
aaaa
bbbb
bbbb
Accès à la mémoire par adressage dans l’ACCU 1
Programmation de la CPU 948C79000-G8577-C848-04 9 - 17
Registre SA : CAD (compteurd’adresse STEP)
A la fin du traitement d’une opération, le registre SA contient les 20bits de l’adresse absolue de la prochaine instruction à traiter.
Registre BA :adresse de début de bloc
Pendant le traitement du programme utilisateur STEP 5, le registreBA contient les 20 bits de l’adresse absolue de la prochaineinstruction à traiter dans le bloc immédiatement supérieur dans lahiérarchie d’appel (correspond à l’adresse de retour au bloc appelant).
Registre BR :registre d’adresse de base
Le registre d’adresse de base (20 bits) permet le calcul d’adresses etles opérations indirectes de chargement et de transfert de registressans utilisation des accumulateurs. Vous pouvez l’utiliser librementpendant le traitement du programme STEP 5.
Exemple pour l’opération TDIdans la zone d’octets
:L DH 1234 5678 Charger la donnée:L DH 000E FC00 Charger l’adresse de: l’octet de mémentos MB 0:TDI A2 Sauvegarder le contenu de: l’ACCU 2
E FC00 = 34 Les valeurs "12H" et "56H" deE FC01 = 78 l’ACCU 2 sont perdues.
Accès à la mémoire par adressage dans l’ACCU 1
Programmation de la CPU 9489 - 18 C79000-G8577-C848-04
9.3 Transfert de blocs de mémoire
Application Les opérations décrites dans ce paragraphe permettent de transférerdes zones de données d’une longueur allant jusqu’à 255 mots se trou-vant dans certaines zones d’adressage.
Opérations
Opération Opérande Fonction
TNW 0 à 255 Transfert d’un bloc de mémoire de 0 à255 mots 1 (dans la zone de mémoire de16 bits)
TXB -- Transfert d’un bloc de mémoire de la zonede mémoire de 8 bits dans la zone demémoire de 16 bits
TXW -- Transfert d’un bloc de mémoire de la zone de mémoire de 16 bits dans la zone demémoire de 8 bits
1 Peut également être utilisée pour des transferts de zone d’octets dans zone d’octets.
Paramètres Longueur de bloc de mémoire
Pour TNW Opérande = nombre de mots (0 à 255)
Pour TXB/TXW ACCU 3 = nombre de mots (0 à 127)
Adresse de fin de la zone source
ACCU 2 = Adresse de fin de la zone source (20 bits)
Adresse de fin de la zone de destination
ACCU 1 = Adresse de fin de la zone de destination (20 bits)
La zone source et la zone de destination ne doivent pas dépasser leslimites des zones de mémoire indiquées dans le tableau 9-5 et nedoivent pas se recouper.
Zones de mémoire autorisées
Adresses Zone de mémoire
0 0000H à C FFFFHMémoire utilisateur :Zone de 16 bits (dépend de l’extension mémoire)
Tableau 9-4 Opérations pour le transfert de blocs de mémoire
Tableau 9-5 Zones de mémoire autorisées pour TNW, TXB et TXW
Transfert de blocs de mémoire
Programmation de la CPU 948C79000-G8577-C848-04 9 - 19
Adresses Zone de mémoire
Suite du tableau 9-5
E 8000H à E 9FFFH
E B000H à E FBFFH
E A000H à E AFFFH
E FC00H à E FFFFH
F 0000H à F FFFFH
RAM système :Données système, 16 bits
Données système (BA/BS, temporisations, compteurs, etc.), 16 bits
Mémentos S, 8 bits, octet de poids faible dans le mot de 16 bits (octet de poids fort non défini)
Mémentos, mémoire image, 8 bits(octet de poids fort = FFH)
Périphérie, 8/16 bits
Reportez-vous également au chapitre 8.
Déroulement Le transfert de blocs de mémoire est effectué de manière décroissan-te : il débute par l’adresse la plus élevée de la zone source (adresse defin) et se termine par l’adresse la plus basse.
TNW, TXB et TXW Les opération TNW, TXB et TXW sont des opérations STEP 5 delongue durée qui ne peuvent être interrompues que par une coupuresecteur (MDT) ou un retard d’acquittement (ACQ).
Particularités
Interruption par coupure secteur
Si l’exécution d’une instruction est interrompue par une coupuresecteur (MDT) et si le système procède ensuite à un redémarrage,l’exécution de l’instruction n’est pas poursuivie au point d’interrupti-on mais est reprise à son début.
Interruption par retardd’acquittement
Si un retard d’acquittement (ACQ) se produit pendant le transfert,l’opération est interrompue et l’OB de réaction aux erreurs correspon-dant est appelé.L’adresse d’erreur indiquée est toujours celle à laquelle a eu lieul’erreur (voir paragraphe 5.6.3).
Transfert de blocs de mémoire
Programmation de la CPU 9489 - 20 C79000-G8577-C848-04
DAD pendant l’exécution Si une erreur d’adressage (DAD) apparaît une ou plusieurs fois durantle transfert, tous les blocs partiels sont d’abord transférés, puisl’OB 25 est appelé une seule fois avant exécution de l’opération sui-vante.
Exemple
7 0
Adressescroissantes
Octet 5
Octet 6 TXB
TXW
Octet 4Octet 3Octet 2Octet 1
Adresse source/dest inat ion
15 7 0
Adressescroissantes
Adresse source/dest inat ion
Octet 4
Octet 2
Octet 5Octet 6Octet 3Octet 1
8
Figure 9-7 Transfert de blocs de mémoire
TXB et TXW entre zones de mémoire de 8 et 16 bits
Transfert des octets 1 à 6 de la zone de 8 bits dans la zone de 16 bits
:L <longueur du bloc en mots> Ex. :L KH 0003:L <adresse source> :L DH EFC10:ENT :ENT:L <adresse destination> :L DH EF208:TXB :TXB
Transfert des octets 1 à 6 de la zone de 16 bits dans la zone de 8 bits
:L <longueur du bloc en mots> Ex. :L KH 0003:L <adresse source> :L DH EF008:ENT :ENT:L <adresse destination> :L DH EFC10:TXW :TXW
Transfert de blocs de mémoire
Programmation de la CPU 948C79000-G8577-C848-04 9 - 21
9.4 Opérations avec le registre d’adresse de base BR
Application Le registre d’adresse de base (20 bits) permet le calcul d’adresses etles opérations indirectes de chargement et de transfert de registressans utilisation des accumulateurs.L’accès se fait à la cellule de mémoire dont l’adresse absolue résultede la somme du contenu du registre BR et d’une constante :
adresse absolue = contenu du registre BR + constante
Opérations
Opération Opérande Fonction
MBR
ABR
Constante(0H à F FFFFH)
Constante(-32 768 à+32 767)
Chargement dans le registre BR d’uneconstante de 20 bits
Addition d’une constante de 16 bits aucontenu du registre BR
Modification du registre BR •• Le contenu du registre BR est conservé si, par une instruction desaut (SPA FB ou SPB FB), le traitement du programme est pour-suivi dans un autre bloc du même niveau de traitement de pro-gramme.
•• Le registre BR est conservé si un autre niveau de traitement duprogramme est imbriqué.
•• Le registre BR est mis à "0" à l’appel d’un autre niveau de traite-ment de programme par le programme système.
Tableau 9-6 Opérations de chargement et de calcul avec le registre BR
Opérations avec le registre d’adresse de base BR
Programmation de la CPU 9489 - 22 C79000-G8577-C848-04
9.4.1Opérations de transfertentre registres
Application Les opérations décrites dans ce paragraphe permettent l’échange rapi-de de valeurs entre les registres ACCU 1 (32 bits), compteur d’adresseSTEP (CAD, 20 bits) et registre d’adresse de base BR (20 bits).
Opérations
Opération Opérande Fonction
MAS
MAB
MSA
MSB
MBA
MBS
--
--
--
--
--
--
Transfert du contenu de l’ACCU 1 dans le compteur d’adresse STEP (20 bits)
Transfert du contenu de l’ACCU 1 dans le registre d’adresse de base (20 bits)
Transfert du contenu du compteurd’adresse STEP (20 bits) dans l’ACCU 1 1
Transfert du contenu du compteur d’adresse STEP (20 bits) dans le registre d’adresse de base (20 bits)
Transfert du contenu du registre d’adressede base (20 bits) dans l’ACCU 1 1
Transfert du contenu du registre d’adresse de base (20 bits) dans le compteur d’adresse STEP (20 bits)
1 Les bits 220 à 231 sont mis à "0".
La figure de la page suivante illustre comment sont modifiés les regi-stres durant l’exécution de ces opérations.
Tableau 9-7 Opérations de registre à registre
Opérations avec le registre d’adresse de base BR
Programmation de la CPU 948C79000-G8577-C848-04 9 - 23
9.4.2Accès à la mémoire locale
Application Les opérations suivantes permettent d’accéder à la mémoire locale or-ganisée par mots par l’intermédiaire d’une adresse de mémoire abso-lue. L’adresse absolue correspond à la somme du contenu du registred’adresse de base BR et de la constante de 16 bits paramétrée dansl’instruction (-32768 à +32767).
Opérations
Opération Opérande Fonction
LRW
LRD
Constante(-32768 à+32767)
Constante(-32768 à+32767)
Addition de la constante paramétrée au contenu du registre BR et chargement du mot ainsi adressé dans l’ACCU 1-L 1
Addition de la constante paramétrée au contenu du registre BR et chargement du double mot ainsi adressé dans l’ACCU 1 1
TRW Constante(-32768 à+32767)
Addition de la constante paramétrée au contenu du registre BR et transfert ducontenu de l’ACCU 1-L dans le mot ainsi adressé
1 ACCU 2 nouveau = ACCU 1ancien
31
xx 00 00. . . . . . . . . . . .xx
20 19 0
ACCU 1
MAS, MAB MSA, MBA
BR,CAD
BR,CAD
ACCU 1
31 20 19 0
19 0 19 0
MSB MBS
CAD
BR BR
CAD
19 0
19 0 19 0
19 0
Figure 9-8 Opérations de transfert de registre à registre
Tableau 9-8 Opérations pour l’accès à la mémoire locale
Opérations avec le registre d’adresse de base BR
Programmation de la CPU 9489 - 24 C79000-G8577-C848-04
Opération Opérande Fonction
Suite du tableau 9-8
TRD Constante(-32768 à+32767)
Addition de la constante paramétrée au contenu du registre BR et transfert ducontenu de l’ACCU 1 dans le double mot ainsi adressé
Réaction aux erreurs Si l’adresse calculée de la cellule de mémoire n’est pas comprise entre0 0000H et E FFFFH, la CPU décèle une erreur de transfert/charge-ment (DTC) et appelle l’OB 32. Si l’OB 32 n’est pas chargé, la CPUse met à l’arrêt en indiquant l’erreur DTC dans la pile des interrupti-ons.
9.4.3Accès à la mémoire commune
Application Les opérations suivantes permettent d’accéder à la mémoire communeorganisée par octets ou par mots par l’intermédiaire d’une adresse demémoire absolue. L’adresse absolue correspond à la somme du conte-nu du registre d’adresse de base BR et de la constante paramétrée dansl’instruction (-32768 à 32767).
Test et positionnementd’une cellule de réser-vation d’accès dans la zone commune
L’accès de plusieurs CPU à une même zone de mémoire peut être gérépar le biais d’une cellule de réservation d’accès. Une telle cellule est as-sociée à chacune des zones de mémoire utilisées ensemble et doit êtretestée par chacune des CPU avant l’accès à une telle zone. La cellule deréservation d’accès contient soit la valeur "0", soit le numéro d’emplace-ment de la CPU qui accède en ce moment à la zone de mémoire et qui,après l’accès, devra écrire la valeur "0" dans la cellule pour libérerl’accès à cette zone de mémoire. A ce sujet, consultez également lesopérations SES/SEF (positionnement et libération de sémaphores) auparagraphe 3.5.5.
L’opération TSG permet de tester et de positionner une cellule de réserva-tion d’accès.
Opération Opérande Fonction
TSG -32768 à+32767
Addition de la constante paramétrée aucontenu du registre BR, puis test et posi-tionnement de la cellule de réservation d’accès ainsi adressée
Opérations avec le registre d’adresse de base BR
Programmation de la CPU 948C79000-G8577-C848-04 9 - 25
Déroulement La cellule de réservation d’accès est constituée par l’octet de poidsfaible du mot adressé par le contenu du registre BR + constante. Si le contenu de cet octet est "0", l’instruction TSG y inscrit le numérod’emplacement de la CPU.
Le test (lecture) et l’éventuelle réservation (écriture) constituent uneunité de programme qui ne peut pas être interrompue.
Résultat Le résultat du test est exploitable par l’intermédiaire des indicateursFL 0 et FL 1.
FL 1 FL 0 Signification
0
1
0
0
0
1
Le contenu de la cellule de réservation d’accès est "0" ; la CPU y inscrit son numéro d’emplacement.
La cellule de réservation d’accès contient le numéro d’emplacement de cette CPU.
La cellule de réservation d’accès contient le numéro d’emplacement d’une autre CPU.
NotaL’opération TSG doit être utilisée par toutes les CPU dont l’accèsà une même zone de mémoire commune doit être coordonné.
Réaction aux erreurs Si l’adresse absolue n’est pas comprise entre F 0000H et F FFFFH, laCPU décèle une erreur de transfert/chargement (DTC) et appellel’ OB 32. Si l’OB 32 n’est pas chargé, la CPU se met à l’arrêt en indi-quant l’erreur DTC dans la pile des interruptions.
Opérations avec le registre d’adresse de base BR
Programmation de la CPU 9489 - 26 C79000-G8577-C848-04
Opérations de chargementet de transfert pour lamémoire communeorganisée par octets
Opération Opérande Fonction
LB GB
LB GW
LB GD
TB GB
TB GW
TB GD
-32768 à+32767
-32768 à+32767
-32768 à+32767
-32768 à+32767
-32768 à+32767
-32768 à+32767
Addition de la constante paramétrée au con-tenu du registre BR et chargement de l’octet ainsi adressé dans l’ACCU 1-LL 1 3
Addition de la constante paramétrée au contenu du registre BR et chargement du mot ainsi adressé dans l’ACCU 1-L 2 3
Addition de la constante paramétrée au contenu du registre BR et chargement du double mot ainsi adressé dans l’ACCU 1 3
Addition de la constante paramétrée au contenu du registre BR et transfert du contenu de l’ACCU 1-LL dans l’octet ainsi adressé
Addition de la constante paramétrée au contenu du registre BR et transfert du contenu de l’ACCU 1-L dans le mot ainsi adressé
Addition de la constante paramétrée au contenu du registre BR et transfert du contenu de l’ACCU 1 dans le double mot ainsi adressé
1 L’ACCU 1-LH et l’ACCU 1-H sont mis à "0".
2 L’ACCU 1-H est mis à "0".
3 ACCU 2 nouveau : = ACCU 1ancien
Adresses autorisées L’adresse absolue doit être comprise :
•• entre F 0000H et F FFFFH pour LB GB et TB GB,
•• entre F 0000H et F FFFEH pour LB GW et TB GW
et
•• entre F 0000H et F FFFCH pour LB GD et TB GD.
Tableau 9-9 Opérations pour l’accès à la mémoire commune organisée paroctets
Opérations avec le registre d’adresse de base BR
Programmation de la CPU 948C79000-G8577-C848-04 9 - 27
Réaction aux erreurs Si ce n’est pas le cas, la CPU décèle une erreur de transfert/charge-ment (DTC) et appelle l’OB 32. Si l’OB 32 n’est pas chargé, la CPUse met à l’arrêt en indiquant l’erreur DTC dans la pile des interrupti-ons.
Opérations de chargementet de transfert pour lamémoire communeorganisée par mots
Opération Opérande Fonction
LW GW
LW GD
TW GW
TW GD
-32768 à+32767
-32768 à+32767
-32768 à+32767
-32768 à+32767
Addition de la constante paramétrée au contenu du registre BR et chargement du mot ainsi adressé dans l’ACCU 1-L 1 2
Addition de la constante paramétrée au contenu du registre BR et chargement du double mot ainsi adressé dans l’ACCU 1 2
Addition de la constante paramétrée au contenu du registre BR et transfert du contenu de l’ACCU 1-L dans le mot ainsi adressé
Addition de la constante paramétrée au contenu du registre BR et transfert du contenu de l’ACCU 1 dans le double mot ainsi adressé
1 L’ACCU 1-H est mis à "0".
2 ACCU 2 nouveau : = ACCU 1ancien
Adresses autorisées L’adresse absolue doit être comprise :
•• entre F 0000H et F FFFFH pour LW GW et TW GW
et
•• entre F 0000H et F FFFEH pour LW GD et TW GD.
Réaction aux erreurs Si ce n’est pas le cas, la CPU décèle une erreur de transfert/charge-ment (DTC) et appelle l’OB 32. L’accumulateur 1 contient le coded’erreur 1A01H. Si l’OB 32 n’est pas chargé, la CPU se met à l’arrêten indiquant l’erreur DTC dans la pile des interruptions.
Tableau 9-10 Opérations pour l’accès à la mémoire commune organiséepar mots
Opérations avec le registre d’adresse de base BR
Programmation de la CPU 9489 - 28 C79000-G8577-C848-04
9.4.4Accès aux pages de mémoire
Application Les opérations suivantes permettent d’accéder aux pages organiséespar octets ou par mots au moyen d’adresses absolues. L’adresse ab-solue est donnée par la somme du contenu du registre d’adresse debase (BR) et de la constante paramétrée dans l’instruction (-32768 à32767).
Principe du déroulement del’accès aux pages de mémoire
Dans la zone des adresses F F400H à F FBFFH, la mémoire communecomporte une "fenêtre" pour l’insertion de l’une des 256 zones demémoire (pages). Une page occupe une plage d’adresses de 2 Ko aumaximum et peut être organisée par octets ou par mots. Avant chaqueaccès à une page, son numéro est inscrit dans le registre de sélection.L’écriture d’un numéro dans le registre de sélection et l’accès à lapage correspondante constituent un tout qui ne peut pas être interrom-pu.
Tout accès (chargement ou transfert) à une des 256 pages doit êtreprécédé par l’appel de cette page. A cet effet, chargez dans l’accumu-lateur 1-L le numéro de la page à appeler ; ce numéro est transféré parl’instruction ACR dans le registre de page interne de la CPU. Avantl’accès à une page, toutes les opérations suivantes portant sur la pageécrivent le contenu du registre de page dans le registre de sélection dela carte correspondante sur le bus S5.
Modification du registre de page
•• Le contenu du registre de page est conservé lorsqu’un autre blocest appelé.
•• Lorsqu’un registre de page est modifié dans un bloc, sa valeurreste conservée si, à la fin du bloc, il y a retour au bloc appelant.
•• Le registre de page est conservé après l’appel d’un autre niveaude traitement de programme.
Opérations avec le registre d’adresse de base BR
Programmation de la CPU 948C79000-G8577-C848-04 9 - 29
Appel d’une page
Opération Paramètre Fonction
ACR Ouverture de la page dont le numéro est contenu dans l’ACCU 1-L Valeurs admises : 0 à 255
Le numéro de page doit être compris entre 0 et 255. Si ce n’est pas lecas, la CPU décèle une erreur de substitution (SUB) et appellel’ OB 27. Si l’OB 27 n’est pas chargé, la CPU se met à l’arrêt.
Test et positionnementd’une cellule de réservationd’accès dans la zone depages
L’accès de plusieurs CPU à une même zone de mémoire peut être gérépar le biais d’une cellule de réservation d’accès. Une telle cellule estassociée à chacune des zones de mémoire utilisées ensemble et doit êtretestée par chacunes des CPU avant l’accès à une telle zone. La cellule deréservation d’accès contient soit la valeur "0", soit le numéro d’emplace-ment de la CPU qui accède en ce moment à la zone de mémoire et qui,après l’accès, devra écrire la valeur "0" dans la cellule pour libérerl’accès à cette zone de mémoire. A ce sujet, consultez également lesopérations SES/SEF (positionnement et libération de sémaphores) auparagraphe 3.5.5.
L’instruction TSC permet de tester et de positionner une cellule deréservation d’accès dans la page appelée.
Opération Opérande Fonction
TSC -32 768 à+32 767
Addition de la constante paramétrée aucontenu du registre BR, puis test et positionnement dans la page appelée dela cellule de réservation d’accès ainsiadressée
Déroulement La cellule de réservation d’accès est constituée par l’octet de poids fai-ble du mot adressé par le contenu du registre BR + constante. Si lecontenu de cet octet est "0", l’instruction TSC y inscrit le numérod’emplacement de la CPU.
Le test (lecture) et l’éventuelle réservation (écriture) constituent uneunité de programme qui ne peut pas être interrompue.
Opérations avec le registre d’adresse de base BR
Programmation de la CPU 9489 - 30 C79000-G8577-C848-04
Résultat Le résultat de l’opération TSC est exploitable par l’intermédiaire desindicateurs FL 0 et FL 1.
FL 1 FL 0 Signification
0
1
0
0
0
1
Le contenu de la cellule de réservation d’accès est "0" ; la CPU y inscrit son numéro d’emplacement.
La cellule de réservation d’accès contient le numéro d’emplacement de cette CPU.
La cellule de réservation d’accès contient le numéro d’emplacement d’une autre CPU.
NotaL’opération TSC doit être utilisée par toutes les CPU dont l’accèsà une même zone de mémoire commune (zone des pages) doitêtre coordonné.
Réaction aux erreurs La cellule de réservation d’accès doit se trouver sur la carte correspon-dante et dans la page d’utilisation commune entre F F400H etF FBFFH. Si ce n’est pas le cas, la CPU décèle une erreur de transfert/chargement (DTC) et appelle l’OB 32. Si l’OB 32 n’est pas chargé, laCPU se met à l’arrêt en indiquant l’erreur DTC dans la pile des inter-ruptions.
Opérations de chargementet de transfert pour lespages organisées par octets
Opération Opérande Fonction
LB CB
LB CW
LB CD
-32768 à+32767
-32768 à+32767
-32768 à+32767
Addition de la constante paramétrée aucontenu du registre BR et chargement de l’octet ainsi adressé dans la page appelée dans l’ACCU 1-LL 1 3
Addition de la constante paramétrée aucontenu du registre BR et chargement du mot ainsi adressé dans la page appelée dans l’ACCU 1-L 2 3
Addition de la constante paramétrée aucontenu du registre BR et chargement du double mot ainsi adressé dans la page appelée dans l’ACCU 1 3
1 L’ACCU 1-LH et l’ ACCU 1-H sont mis à "0".
2 L’ACCU 1-H est mis à "0".
3 ACCU 2 nouveau : = ACCU 1ancien
Tableau 9-11 Opérations pour l’accès aux pages organisées par octets
Opérations avec le registre d’adresse de base BR
Programmation de la CPU 948C79000-G8577-C848-04 9 - 31
Opération Opérande Fonction
Suite du tableau 9-11
TB CB
TB CW
TB CD
-32768 à+32767
-32768 à+32767
-32768 à+32767
Addition de la constante paramétrée au contenu du registre BR et transfert du contenu de l’ACCU 1-LL dans l’octet ainsi adressé dans la page appelée
Addition de la constante paramétrée au contenu du registre BR et transfert du contenu de l’ACCU 1-L dans le mot ainsi adressé dans la page appelée
Addition de la constante paramétrée au contenu du registre BR et transfert du contenu de l’ACCU 1 dans le double mot ainsi adressé dans la page appelée
Adresses autorisées L’adresse absolue doit être comprise :
•• entre F F400H et F FBFFH pour LB CB et TB CB,
•• entre F F400H et F FBFEH pour LB CW et TB CW
et
•• entre F F400H et F FBFCH pour LB CD et TB CD.
Réaction aux erreurs Si ce n’est pas le cas, la CPU décèle une erreur de transfert/charge-ment (DTC) et appelle l’OB 32. Si l’OB 32 n’est pas chargé, la CPUse met à l’arrêt en indiquant l’erreur DTC dans la pile des interrupti-ons.
Opérations avec le registre d’adresse de base BR
Programmation de la CPU 9489 - 32 C79000-G8577-C848-04
Opérations de chargementet de transfert pour lespages organisées par mots
Opération Opérande Fonction
LW CW
LW CD
TW CW
TW CD
-32768 à+32767
-32768 à+32767
-32768 à+32767
-32768 à+32767
Addition de la constante paramétrée au contenu du registre BR et chargement du mot ainsi adressé dans la page appelée dans l’ACCU 1-L 1
Addition de la constante paramétrée au contenu du registre BR et chargement du double mot ainsi adressé dans la page appelée dans l’ACCU 1 2
Addition de la constante paramétrée au contenu du registre BR et transfert du contenu de l’ACCU 1-L dans le mot ainsi adressé dans la page appelée
Addition de la constante paramétrée au contenu du registre BR et transfert du contenu de l’ACCU 1 dans le double mot ainsi adressé dans la page appelée
1 L’ACCU 1-H est mis à "0".
2 ACCU 2 nouveau : = ACCU 1ancien
Adresses autorisées L’adresse absolue doit être comprise :
•• entre F F400H et F FBFFH pour LW CW et TW CW
et
•• entre F F400H et F FBFEH pour LW CD et TW CD.
Réaction aux erreurs Si ce n’est pas le cas, la CPU décèle une erreur de transfert/charge-ment (DTC) et appelle l’OB 32. Si l’OB 32 n’est pas chargé, la CPUse met à l’arrêt en indiquant l’erreur DTC dans la pile des interrupti-ons.
Tableau 9-12 Opérations pour l’accès aux pages organisées par mots
Opérations avec le registre d’adresse de base BR
Programmation de la CPU 948C79000-G8577-C848-04 9 - 33
Opérations avec le registre d’adresse de base BR
Programmation de la CPU 9489 - 34 C79000-G8577-C848-04
Sommaire du chapitre 10
10.1 Fonctionnement multiprocesseur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 4
10.1.1 Utilisation du fonctionnement multiprocesseur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 410.1.2 Mécanismes de communication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 410.1.3 Echange de données via des mémentos de couplage . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 510.1.4 Echange de données via des blocs de dialogue. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 810.1.5 Programmation nécessaire pour le fonctionnement multiprocesseur . . . . . . . . . . . . . . . 10 - 910.1.6 Programmation du DB 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 910.1.7 Particularités de la mise en route en fonctionnement multiprocesseur. . . . . . . . . . . . . 10 - 1310.1.8 Mode de test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 14
10.2 Communication multiprocesseur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 15
10.2.1 Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 1510.2.2 Identification de l’émetteur et du récepteur. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 1610.2.3 Stockage intermédiaire des données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 1710.2.4 Fonctionnement et gestion de la mémoire intermédiaire . . . . . . . . . . . . . . . . . . . . . . . 10 - 1810.2.5 Mesures à prendre pour le démarrage du système . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 2110.2.6 Ce dont il faut tenir compte lors de l’appel des OB de communication . . . . . . . . . . . 10 - 2210.2.7 Paramétrage des OB de communication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 2310.2.8 Exploitation des paramètres de sortie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 24
10.3 Temps d’exécution des OB de communication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 31
10.4 Fonction "Initialisation" (OB 200). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 33
10.4.1 Fonction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 3310.4.2 Paramètres d’appel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 3510.4.3 Paramètres d’entrée. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 3510.4.4 Paramètres de sortie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 38
10Fonctionnement et communicationmultiprocesseur dans l’AP S5-155U
Programmation de la CPU 948C79000-G8577-C848-04 10 - 1
10.5 Fonction "Emission" (OB 202) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 40
10.5.1 Fonction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 4010.5.2 Paramètres d’appel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 4010.5.3 Paramètres d’entrée. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 4010.5.4 Paramètres de sortie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 42
10.6 Fonction "Test d’émission" (OB 203) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 45
10.6.1 Fonction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 4510.6.2 Paramètres d’appel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 4510.6.3 Paramètres d’entrée. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 4510.6.4 Paramètres de sortie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 45
10.7 Fonction "Réception" (OB 204). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 47
10.7.1 Fonction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 4710.7.2 Paramètres d’appel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 4710.7.3 Paramètres d’entrée. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 4710.7.4 Paramètres de sortie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 48
10.8 Fonction "Test de réception" (OB 205) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 51
10.8.1 Fonction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 5110.8.2 Paramètres d’appel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 5110.8.3 Paramètres d’entrée. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 5110.8.4 Paramètres de sortie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 51
10.9 Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 53
10.9.1 Appel des OB de fonctions spéciales par des blocs fonctionnels. . . . . . . . . . . . . . . . . 10 - 5310.9.2 Transfert de blocs de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 6010.9.3 Extension de la zone des mémentos de couplage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 66
Sommaire
Programmation de la CPU 94810 - 2 C79000-G8577-C848-04
10Fonctionnement et communicationmultiprocesseur dans l’AP S5-155U
Le présent chapitre indique quand vous pouvez utiliser le fonctionne-ment multiprocesseur et quel échange de données il permet. Il préciseau programmeur ce dont il doit tenir compte et ce qu’il doit effectuerpour le fonctionnement multiprocesseur (cf. paragraphe 10.1).Enfin, ce chapitre contient des instructions détaillées et des exemplesd’application relatifs à l’échange de grandes quantités de données enmode multiprocesseur (cf. paragraphes 10.2 à 10.9).
Programmation de la CPU 948C79000-G8577-C848-04 10 - 3
10.1 Fonctionnement multiprocesseur
Définition Vous vous trouvez en fonctionnement multiprocesseur dès qu’un coor-dinateur (COR) est enfiché dans l’appareil de base, indépendammentdu nombre de CPU ou de CP ou IP enfichés. Il ne doit pas y avoird’emplacement vide entre les CPU.
10.1.1Utilisation du fonctionne-ment multiprocesseur
•• Lorsque votre programme utilisateur est trop important pour êtretraité par une CPU et lorsque l’espace mémoire devient insuf-fisant, vous répartissez votre programme entre plusieurs CPU.
•• Quand une partie précise de votre installation doit être traitée trèsrapidement, vous pouvez l’isoler du reste du programme et confierson traitement à une CPU "rapide".
•• Si votre installation est constituée de plusieurs parties pouvant êtrefacilement délimitées et commandées ou régulées de façon relati-vement indépendante, il est possible d’affecter la partie 1 à laCPU 1, la partie 2 à la CPU 2 et ainsi de suite.
Pour le fonctionnement multiprocesseur, il est essentiel que vousteniez compte des informations correspondantes dans le manuel sy-stème. Elles constitueront une aide précieuse lors du choix des CPU àmettre en oeuvre pour la résolution de votre tâche d’automatisation.
10.1.2Mécanismes decommunication
•• Pour l’échange cyclique de données binaires entre les CPU(CPU 948, CPU 946/947, CPU 928B, CPU 928 et CPU 922) ou en-tre CPU et processeurs de communication, vous disposez de"mémentos de couplage".
•• Pour l’échange de gros volumes de données (par exemple, desblocs de données complets) entre les CPU 948, CPU 946/947,CPU 928B, CPU 928 et CPU 922, vous pouvez recourir aux "fon-ctions spéciales pour la communication multiprocesseur",OB 200 et OB 202 à OB 205 (pour plus d’information, reportez-vous au paragraphe 10.2).
•• Pour communiquer avec les cartes périphériques intelligentes (IP)et avec les processeurs de communication (CP), vous disposez de"blocs de dialogue" qu’il faut commander séparément.
Fonctionnement multiprocesseur
Programmation de la CPU 94810 - 4 C79000-G8577-C848-04
10.1.3Echange de données viades mémentos de couplage
Pour l’échange cyclique de données binaires, vous disposez de mémentosde couplage qui servent en premier lieu au transfert d’informations paroctets.
Ce transfert de données peut être effectué entre :
CPU et CPU
CPU et processeurs de communication
Le programme système transfère les mémentos de couplage une seulefois par cycle. Lors du transfert de données entre plusieurs CPU, lesmémentos de couplage sont mémorisés de façon intermédiaire sur lecoordinateur.
Les mémentos de couplage sont des octets de mémentos qui sont trans-férés. Ils sont définis, pour chaque CPU, dans le bloc DB 1 en tant quemémentos de couplage d’entrée ou de sortie. Si, par exemple, vousavez défini l’octet de mémentos 50 comme mémento de couplage desortie sur l’unité centrale 1, l’état de cet octet est transféré de manièrecyclique, par l’intermédiaire du coordinateur, vers la CPU pour laquel-le l’octet de mémentos 50 est défini comme mémento de couplaged’entrée.
NotaAucun message d’erreur n’est émis si un octet de mémentos decouplage présent physiquement fait uniquement l’objet d’écriturepar une CPU et n’est jamais lu, ou inversement.
Zone de mémoire Pour la CPU 948, la zone de mémoire réservée aux mémentos de cou-plage sur le coordinateur et sur les processeurs de communication(CP) se trouve entre les adresses F F200H et F F2FFH. Sur une CPUou sur un processeur de communication, vous disposez de 256 octetsde mémentos de couplage.
Positionnement des cavaliers Afin d’éviter une double occupation, vous devez sélectionner lesoctets de mémentos de couplage – parmi les 256 disponibles – sur lescartes COR ou CP. Vous avez la possibilité d’activer ou de désactiverdes blocs de 32 octets chacun. Le positionnement des cavaliers estdécrit dans le manuel système.
Fonctionnement multiprocesseur
Programmation de la CPU 948C79000-G8577-C848-04 10 - 5
Exemple
NotaN’utilisez que les mémentos de couplage validés sur lecoordinateur ou les processeurs de communicationcorrespondants. Vous ne pouvez pas utiliser les mémentos Scomme mémentos de couplage.
Si vous avez défini un octet de mémentos comme mémento decouplage d’entrée sur une ou plusieurs CPU, il faut le définir commemémento de couplage de sortie sur une autre CPU ou un autreprocesseur de communication. De plus, un octet de mémentos nedoit être défini comme mémento de couplage de sortie que sur uneseule CPU ; par contre, vous pouvez le définir comme mémento decouplage d’entrée sur trois autres CPU, par exemple.
Les octets de mémentos qui ne sont pas définis comme mémentos decouplage sur une CPU peuvent être utilisés comme des mémentos"normaux".
N’indiquez dans le bloc DB 1 que le nombre réellement nécessaired’octets de mémentos de couplage : plus ce nombre est petit, plus letemps de transfert est faible.
CPU 1
Mémentos de couplagede sort ie :MB 96 à MB 119
Mémentos de couplaged´entrée :MB 120 à MB 125
CPU 2
Coordinateur
Mémentos de couplagede sort ie :MB 120 à MB 125
Mémentos de couplaged´entrée :MB 96 à MB 119
Ecr i ture
Lecture
Ecr i ture
Lecture
Secteur val idéau moyen descaval iers :
octets de mémentosde couplageMB 96 à MB 127
Figure 10-1 Transfert de mémentos de couplage en fonctionnement multiprocesseur
Fonctionnement multiprocesseur
Programmation de la CPU 94810 - 6 C79000-G8577-C848-04
Echange de données entreCPU et processeurs decommunication
Lorsque des données doivent être échangées entre une CPU et unprocesseur de communication, il faut valider le nombre nécessaire demémentos de couplage sur le processeur de communication (CP). Làaussi, vous disposez de 256 octets de mémentos de couplage, divisi-bles en secteurs de 32 octets.
Lorsque le transfert doit être effectué d’une CPU vers plusieursprocesseurs de communication, il ne doit pas y avoir de recouvre-ment entre les secteurs validés sur les différents processeurs de com-munication et le coordinateur afin que les adresses ne soient pas utili-sées deux fois.
Si vous voulez utiliser des mémentos de couplage simultanément surle coordinateur et sur un ou plusieurs processeurs de communication,vous devez également éviter un double adressage. Divisez les mémentos de couplage en secteurs de 32 octets sur le coor-dinateur et sur les processeurs de communication, puis masquez sur lecoordinateur les octets de mémentos utilisés sur le processeur de com-munication en retirant les cavaliers correspondants (voir le manuel sy-stème).
Dans ce cas également, un octet de mémentos ne peut être défini com-me mémento de couplage de sortie que sur une seule CPU. Par contre,un même octet de mémentos peut être défini comme mémento de cou-plage d’entrée sur plusieurs CPU.
Exemple
CPU 1
Secteur val idé :
octets de mémentosde couplageMB 96 à MB 127
Secteur val idé :
octets de mémentosde couplageMB 192 à MB 223
CP 1
CP 2
CP 1
CP 2
CP 1
CP 2
Mémentos de couplagede sort ie :CP 1 : MB 96 à MB 119CP 2 : MB 201 à MB 205
Mémentos de couplaged´entrée :CP 1 : MB 120 à MB 125CP 2 : MB 195 à MB 200
Figure 10-2 Exemple de zones de mémentos de couplage sur des processeurs de communication
Fonctionnement multiprocesseur
Programmation de la CPU 948C79000-G8577-C848-04 10 - 7
Transfert de mémentos decouplage en fonctionnementmultiprocesseur
Les octets de mémentos de couplage indiqués dans le DB 1 sont trans-férés avec l’actualisation de la mémoire image à la fin de chaque cy-cle du programme, lorsque la CPU a obtenu le signal d’accès au bus.
Le coordinateur accorde successivement à chaque CPU le signal d’ac-cès au bus. A cette occasion, chaque CPU n’a le droit de transférerqu’un seul octet. Cette transmission fractionnée peut entraîner uneperte de cohérence des informations transmises par un groupe demémentos de couplage et, donc, l’utilisation de données incohérentes.
Si les informations à transférer portent sur plusieurs octets, le pa-ramétrage du bloc DX 0 permet de réaliser un transfert par blocs detous les mémentos de couplage définis dans le DB 1 (cf. chapitre 7).Tant qu’une CPU est en train de transférer des mémentos de couplage,elle ne peut pas être interrompue par une autre CPU. Cette dernièredoit donc ajourner son opération de transfert, ce qui se traduit par unesuspension du traitement cyclique pendant ce temps d’attente. Un tel paramétrage du DX 0 peut donc entraîner un allongementsensible du temps de cycle.
Communicationmultiprocesseur
Les fonctions spéciales suivantes − intégrées à la CPU − permettent letransfert de blocs de données ou, plus précisément, de paquets ou en-sembles de données de 64 octets au maximum (= 32 mots dedonnées) :
•• OB 200 : initialisation Préparation
•• OB 202 : émission Emission d’un paquet de données
•• OB 203 : test d’émission Test de la possibilité d’émission
•• OB 204 : réception Réception d’un paquet de données
•• OB 205 : test de réception Test de la possibilité de réception
10.1.4Echange de données viades blocs de dialogue
Vous pouvez utiliser les blocs de dialogue en fonctionnement multi-processeur sans qu’un paramétrage spécial soit nécessaire. De plus am-ples renseignements sur les blocs de dialogue figurent dans le manuelcorrespondant.
Fonctionnement multiprocesseur
Programmation de la CPU 94810 - 8 C79000-G8577-C848-04
10.1.5Programmation nécessairepour le fonctionnementmultiprocesseur
•• Afin que le coordinateur puisse coordonner l’accès de chaqueCPU à la zone de périphérie, vous devez programmer le bloc dedonnées DB 1. Même si la CPU n’utilise pas de périphérie ou demémentos de couplage, un DB 1, même vide, doit exister (voir leparagraphe 10.1.6).
•• Le DX 0 doit également être programmé. Effectuez le paramétragede sorte que les alarmes de processus via l’octet d’entrée EB 0soient désactivées et que les interruptions système soient acti-vées.
10.1.6Programmation du DB 1 En fonctionnement multiprocesseur, vous devez programmer le bloc
de données DB 1 pour chaque CPU. Vous définissez ainsi les entrées/sorties (adresses d’octet de 0 à 127) et les mémentos de couplaged’entrée et de sortie que la CPU en question va utiliser.
NotaSeuls les octets d’entrée et de sortie définis dans le bloc DB 1sont pris en compte lors de l’actualisation de la mémoire imagedu processus.
Saisie et modification du DB 1 •• Programmation ou modification du masque DB 1 à la PG
ou
•• Edition à la PG du DB 1 comme bloc de données, puis transfertdans la CPU
NotaLa saisie ou la modification du bloc DB 1 n’est prise en comptepar la CPU qu’à l’exécution d’un nouveau démarrage.
Saisie du masque DB 1 1. Sur la PG, sélectionnez l’éditeur pour le masque DB 1 (cf. figure 10-3).
2. Indiquez les valeurs requises pour les "entrées TOR", etc., sous forme de valeurs décimales.
Fonctionnement multiprocesseur
Programmation de la CPU 948C79000-G8577-C848-04 10 - 9
3. Validez les entrées effectuées en appuyant sur la touche de validation de la PG. La PG génère alors le DB 1.
4. Transférez le DB 1 dans la CPU.
NotaL’indication de la longueur du bloc de temporisations n’est pasprise en compte. Vous devez définir ce paramètre dans le DX 0(voir chapitre 7).
Exemple de masque DB 1
Edition du DB 1 comme bloc de données
1. Les mots de données 0, 1, et 2 doivent contenir l’indicatif de début du DB 1 :
DW 0 : KH = 4D41 (’M’ ’A’)DW 1 : KH = 534B (’S’ ’K’)DW 2 : KH = 3031 (’0’ ’1’)
DB 1
0, 1, 2, 3, 7, 10,
2, 4, 12,0,
50, 51, 60,
70, 72,100,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
Entrées TOR
Sorties TOR
Mémentos couplage entrées
Mémentos couplage sorties
Longueur bloc des tempos
:
:
:
:
:
Affectation périph.
Figure 10-3 Masque PG pour la génération du DB 1
Fonctionnement multiprocesseur
Programmation de la CPU 94810 - 10 C79000-G8577-C848-04
2. A partir du mot de données DW 3, indiquez les différentes zones d’opérandes en précisant, avant chacune d’entre elles, l’un des mots d’identification suivants :
Mot d’identification des entrées TOR KH = DE00Mot d’identification des sorties TOR KH = DA00Mot d’identification des mémentos de couplage d’entrée KH = CE00Mot d’identification des mémentos de couplage de sortie KH = CA00
Saisissez, suite au mot d’identification, la liste des numéros (en virgule fixe) des entrées/sorties utilisées.
3. Terminez la saisie avec l’indicatif de fin DB 1 "KH = EEEE" et transférez le DB 1 dans la CPU.
NotaL’ordre de saisie est indifférent. La mémoire image des entrées etcelle des sorties sont actualisées dans l’ordre inverse de leuradressage dans le DB 1 (la dernière entrée est donc actualisée enpremier).L’indication répétée du même octet, par exemple pour des tests,est possible. Notez que la mémoire image de cet octet est alorsactualisée autant de fois que celui-ci est défini dans le DB 1.
Exemple d’édition du DB 1
DB1 FD: CPU948ST.S5D
0: KH = 4D41; DW 0 à 2 : 1: KH = 534B; indicatif de début 2: KH = 3031; du DB 1 3: KH = DE00; Mot identificateur des entrées TOR 4: KF = +00000; Octet d’entrée 0 5: KF = +00001; Octet d’entrée 1 6: KF = +00002; Octet d’entrée 2 7: KF = +00003; Octet d’entrée 3 8: KF = +00007; . 9: KF = +00010; Octet d’entrée 1010: KH = DA00; Mot identificateur des sorties TOR11: KF = +00000; Octet de sortie 012: KF = +00002; Octet de sortie 213: KF = +00004; .14: KF = +00012; Octet de sortie 1215: KH = CE00; Mot identificateur des mémentos de couplage d’entrée16: KF = +00050; Octet de mémentos 5017: KF = +00051; .18: KF = +00060; Octet de mémentos 6019: KH = CA00; Mot identificateur des mémentos de couplage de sortie20: KF = +00070; Octet de mémentos 7021: KF = +00072; .22: KF = +00100; Octet de mémentos 10023: KH = EEEE; Indicatif de fin24:
Fonctionnement multiprocesseur
Programmation de la CPU 948C79000-G8577-C848-04 10 - 11
Validation du DB 1 Le programme système prend en compte le DB 1 lors d’un démarrage etvérifie alors que les entrées et sorties et les mémentos de couplage indi-qués dans le DB 1 fournissent un signal d’acquittement. En cas de non-acquittement, la CPU se met en STOP avec une erreur DB 1 et un cligno-tement lent de la DEL STOP. Dans ce cas, le programme utilisateur n’estpas traité.
Dès que le DB 1 a été programmé et pris en compte par la CPU via undémarrage, les règles sont les suivantes :
•• L’accès aux cartes de périphérie par l’intermédiaire de la mémoireimage n’est possible que pour les entrées et sorties définies dans lebloc DB 1 (opérations L.../T... ...EB, ...EW, ...ED, ...AB, ...AW,...AD et opérations combinatoires avec entrées et sorties). L’accèsà des adresses de mémoire image qui ne sont pas indiquées dans leDB 1 conduit à une erreur d’adressage.
•• Le chargement direct d’octets périphériques par les opérationsL PB/L PY, L PW, L QB, L QW sans passer par la mémoireimage, est possible pour toutes les entrées fournissant un signald’acquittement, qu’elles figurent ou non dans le DB 1.
•• Le transfert direct (T PB/T PY, T PW) aux octets 0 à 127 n’estpossible que pour les sorties définies dans le DB 1, étant donnéque le transfert direct s’accompagne de l’actualisation de lamémoire image. L’accès en écriture à des adresses de périphériene figurant pas dans le DB 1 entraîne une erreur d’adressage.
•• Transfert sans mémoire image Le transfert direct à des octets d’adresses supérieures à 127 estpossible indépendamment des valeurs entrées dans le blocDB 1. Le transfert direct à des adresses d’octets dans la zone de péri-phérie étendue (T QB, T QW) est également indépendant des indi-cations dans le DB 1.
Fonctionnement multiprocesseur
Programmation de la CPU 94810 - 12 C79000-G8577-C848-04
10.1.7Particularités de la mise enroute en fonctionnementmultiprocesseur
En fonctionnement multiprocesseur, vous démarrez le coordinateur dela manière suivante.
Situation initiale Les commutateurs de mode de toutes les CPU enfi-chées sont en position RUN. Le commutateur de mode du coordinateur est en position STOP.
Mise en route Basculez le commutateur de mode du coordina-teur de STOP sur RUN : en fonctionnement multiprocesseur, il n’est possible de mettre en route l’automate en démarrant uniquement lecoordinateur que si ce dernier est à l’origine de l’arrêt.
ou
Situation initiale Les commutateurs de mode de toutes les CPU en-fichées et du coordinateur sont en position RUN.
Mise en route Par la fonction PG de démarrage de l’AP, démar- rez la CPU qui est à l’origine de l’arrêt dans le mode de mise en route choisi.
Mise en route de chaque CPU Le mode de mise en route de chaque CPU dépend des éventuelles mo-difications apportées lors de l’arrêt. Il est ainsi possible que certainesCPU effectuent un redémarrage manuel et d’autres un démarrage.
Si les CPU n’ont pas été modifiées entre-temps, elles effectuent unredémarrage manuel.
NotaSi l’automate était en traitement cyclique avant l’arrêt, des modes demise en route différents peuvent donner lieu à la transmission par lesmémentos de couplage d’états de signaux incorrects d’une CPU àl’autre. Vous pouvez éviter cela en programmant les blocs d’organi-sation de mise en route OB 20, 21 et 22 de manière adéquate.
L’appel de la fonction spéciale OB 223 permet de vérifier si le modede mise en route est le même pour toutes les CPU participant au fon-ctionnement multiprocesseur (voir chapitre 6).
Fonctionnement multiprocesseur
Programmation de la CPU 948C79000-G8577-C848-04 10 - 13
Coupure et rétablissementde la tension
Lors du rétablissement de la tension suite à une coupure, le coordina-teur est démarré automatiquement. Dans ce cas, toutes les CPU ef-fectuent un redémarrage ou un démarrage automatique, suivant laprésélection dans le DX 0 (voir chapitre 7).
La mise en route de chaque CPU est synchronisée en fonctionnementmultiprocesseur : chaque CPU attend que toutes les autres aient ter-miné leur mise en route afin de débuter simultanément leur traitementcyclique. Vous pouvez toutefois supprimer cette synchronisation dedémarrage en paramétrant le bloc DX 0 en conséquence.
10.1.8Mode de test Pour activer le mode de test, procédez de la manière suivante.
1. Assurez-vous que la fonction de test est autorisée sur le coordina-teur.
2. Basculez le commutateur de mode du coordinateur de STOP sur TEST. Le voyant BASP s’éteint.
3. Sur les CPU qui doivent passer en état de marche RUN, choisissez le mode de mise en route (démarrage ou redémarrage).
Particularités du mode de test En mode de test, vous pouvez mettre en service chaque CPUisolément ou les combiner de manière quelconque. Les CPU à l’arrêtne peuvent donc plus bloquer l’ensemble de l’automate.
Le démarrage des CPU n’est pas synchronisé en mode de test. Sui-vant la longueur des blocs d’organisation de mise en route OB 20, 21et 22, les CPU démarrent leur traitement cyclique à des momentsdifférents.
Si une erreur apparaît sur une CPU pendant le mode de test, seule cet-te CPU se met à l’arrêt. Les autres CPU ne sont pas perturbées par cet-te erreur.
AttentionComme le signal BASP est inhibé pour toutes les CPU enmode de test, ce dernier doit impérativement être inactivélorsque la mise en service est terminée pour éviter unesituation critique ou dangereuse pour l’installation.
Fonctionnement multiprocesseur
Programmation de la CPU 94810 - 14 C79000-G8577-C848-04
10.2 Communication multiprocesseur
Définition La communication multiprocesseur consiste en l’échange d’importan-tes quantités de données (blocs de données) entre des CPU fon-ctionnant en mode multiprocesseur. Il faut pour cela le coordinateurCOR 923C.
10.2.1Introduction Les blocs de données, plus précisément les ensembles ou paquets de
données d’une taille maximale de 32 mots de données (64 octets), peuvent être transférés à l’aide des fonctions spéciales – intégrées à laCPU – suivantes :
•• initialisation (OB 200) : préparation
•• émission (OB 202) : émission d’un paquet de données
•• test d’émission (OB 203) : test de la possibilité d’émission
•• réception (OB 204) : réception d’un paquet de données
•• test de réception (OB 205) : test de la possibilité de réception
Par mesure de simplification, les blocs d’organisation pour fonctionsspéciales OB 200 et OB 202 à OB 205 seront appelés OB de commu-nication dans les paragraphes suivants.
Connaissances requises L’utilisation de ces fonctions ne requiert que des connaissances debase sur le langage de programmation STEP 5 et sur le fonctionne-ment des automates SIMATIC S5. Ces connaissances sont dispenséesdans les ouvrages cités dans la bibliographie.
Principe Pour transmettre des données, il faut tout d’abord activer la fonction"Emission" dans la CPU émettrice et, ensuite, la fonction "Réception"dans la CPU réceptrice. Les mots de données consécutifs d’un bloc de données DB ou DX setrouvant dans la CPU émettrice sont transférés vers la CPU réceptrice,via le coordinateur 923C, dans un bloc de données DB ou DX ayant lemême numéro et sous les mêmes adresses de mots de données. Ils’agit donc d’une copie "un à un".
Unité de transfert La quantité de données pouvant être traitée d’un seul tenant par lesfonctions "Emission" et "Réception" est normalement de 32 mots.Lorsque la longueur du bloc de données (hors en-tête) n’est pas unmultiple de 32, le dernier paquet de données compte moins de 32 mots.
Communication multiprocesseur
Programmation de la CPU 948C79000-G8577-C848-04 10 - 15
Le bloc de données dans la CPU réceptrice peut être plus long ou pluscourt que le bloc de données d’émission. L’important est que les motstransférés par la fonction d’émission existent dans le bloc de donnéesde réception. Dans le cas contraire, la fonction de réception détecteune erreur.
Exemple
10.2.2Identification de l’émetteuret du récepteur
Chaque paquet de données échangé entre les CPU est caractérisé parle numéro de la CPU émettrice et le numéro de la CPU réceptrice.Les CPU sont numérotées de manière à ce que la CPU enfichée laplus à gauche reçoive le numéro 1 ; les CPU sont ensuite numérotéesdans l’ordre, de la gauche vers la droite.
Exemple
Donnéesd’émissiondans la CPUémettrice :
Données deréception dansla CPUréceptrice :
Bloc de données : DB 17 DB 17
Adresse de mot dedonnées: DW 32 à DW 63 DW 32 à DW 63
AP S5-135U/155U
COR
C
CPU
1
CPU
2
CPU
3
CP
CP
IM
. .
. .
E SE E S
Figure 10-4 Identification des émetteurs et récepteurs
Communication multiprocesseur
Programmation de la CPU 94810 - 16 C79000-G8577-C848-04
10.2.3Stockage intermédiairedes données
De manière générale, le fonctionnement multiprocesseur permet derépartir les tâches à exécuter entre plusieurs CPU. Ces tâches étantdifférentes et les performances des diverses CPU étant variées, le trai-tement du programme dans chaque CPU est asynchrone. Cela signifieque les données émises par une CPU émettrice ne peuvent pas im-médiatement être reçues par une CPU réceptrice.
Il est donc nécessaire d’effectuer un stockage intermédiaire desdonnées à transférer dans le coordinateur 923 C. Le numéro de laCPU "traitant" la fonction de même que le numéro de la CPU récep-trice lors de l’émission ou le numéro de la CPU émettrice lors de laréception définissent la source ou la destination d’un paquet dedonnées.
Exemple
Transfert de données de la CPU 3 vers la CPU 2
Etape 1
La CPU 3 stocke ses données dans la mémoire intermédiaire du coordinateur.
Etape 2
Lorsque la CPU 2 est prête à recevoir, elle copie les données de la mémoireintermédiaire du coordinateur dans le bloc de données cible.
COR
C
CPU
1
CPU
2
CPU
3
CP
CP I
M
. .
. .
E
Emission, paramètre "CPU réceptr ice" = 2
SE E S
COR
C
CPU
1
CPU
2
CPU
3
CP
CP I
M
. .
. .
E
Récept ion, paramètre "CPU émettr ice" = 3
SE E S
Communication multiprocesseur
Programmation de la CPU 948C79000-G8577-C848-04 10 - 17
10.2.4Fonctionnement et gestionde la mémoire intermédiaire
Fonctionnement La mémoire intermédiaire travaille selon le principe FIFO (file d’atten-te, premier entré premier sorti). L’ordre des réceptions est ainsi iden-tique à l’ordre des émissions. Cela est valable pour chaque liaison− définie par la CPU émettrice et la CPU réceptrice − indépendam-ment des autres liaisons.
Sauvegarde des données La mémoire intermédiaire est sauvegardée par pile. Cela permet "le re-démarrage automatique après coupure secteur" sans restriction. Ainsi,une coupure secteur pendant une transmission de données n’entraînepas de perte de données dans l’automate programmable.
Gestion La capacité de mémoire maximale du coordinateur 923C est de 48blocs de mémoire de 32 mots chacun. La fonction d’initialisation attri-bue ces blocs de mémoire aux différentes liaisons.Chaque bloc de mémoire peut recevoir exactement un paquet dedonnées de 1 à 32 mots de données. Un paquet de données est inscritdans un bloc de mémoire par une fonction d’émission et est lu à partirde ce bloc de mémoire par une fonction de réception.Le nombre de blocs de mémoire attribués à une liaison est en rapportdirect avec les paramètres de capacité d’émission (fonctions "Emissi-on", "Test d’émission") et de capacité de réception (fonctions "Récep-tion", "Test de réception").
La capacité d’émission indique combien de blocs de mémoire réser-vés à une liaison sont disponibles à un instant déterminé.
La capacité de réception indique combien de blocs de mémoire réser-vés à une liaison sont occupés à un instant déterminé.
La somme des capacités d’émission et de réception est à tout momentégale au nombre de blocs de mémoire attribués à une liaison.
Communication multiprocesseur
Programmation de la CPU 94810 - 18 C79000-G8577-C848-04
Exemple
Occupation de la mémoire intermédiaire par une liaison
La liaison "CPU 3 vers CPU 2" est initialisée. 7 blocs de mémoire lui sontaffectés dans la mémoire intermédiaire du coordinateur. Le transfertsuivant pourrait ensuite être effectué.
Emission ou réception de n paquets de données signifie que la fonctioncorrespondante est appelée n fois de suite.
Pour simplifier la représentation, cet exemple se limite, au début, soit àdes émissions, soit à des réceptions.L’émission (CPU 3) et la réception (CPU 2) simultanées sont toutefoispossibles et recommandées ("traitement parallèle dans l’automate program-mable multiprocesseur"). Dans l’exemple ci-dessus, la réception des paquetsde données H et I a lieu pendant l’émission des paquets de données K et L.
Cet exemple illustre également l’organisation en file d’attente de lamémoire intermédiaire : les paquets de données émis les premiers (A, B, C ...) sont également reçus les premiers (A, B, C ...).
7
7
6
6
5
5
4
4
3
3
2
2
1
1
0
Initiali-sation
0
0
Emissiondupaquet A
Emission de4 paquetsB, C, D, E
Emission de4 paquetsF, G, H, I
Emission de2 paquetsK, L
temps
Réceptiondes paquetsA, B
Réceptiondes paquetsC, D, E,F, G
Réceptiondes paquetsH, I
Réceptiondes paquetsK, L
Capacité d´émission(nombre de blocs demémoire réservés)
Capacité de réception(nombre de blocs demémoire occupés)
6 2
5
7 7
1
4
3 7 2 2
5 5
Emetteur : CPU 3
Récepteur : CPU 2
Figure 10-5 Exemple d’occupation de la mémoire intermédiaire du coordinateur COR
Communication multiprocesseur
Programmation de la CPU 948C79000-G8577-C848-04 10 - 19
Résumé Le stockage intermédiaire dans le coordinateur 923C compense l’asyn-chronisme des CPU émettrice et réceptrice ainsi que leur vitesse detraitement différente.
La capacité de la mémoire intermédiaire étant limitée, le récepteurdoit contrôler fréquemment et régulièrement si des données ont été mi-ses en mémoire (fonction "Test de réception", capacité de réception> 0) ou essayer de lire des données mémorisées (fonction "Récepti-on"). Il est judicieux d’appeler la fonction de réception autant de foisqu’il est nécessaire pour que la capacité de réception redevienne nulle.Ainsi, les données émises ne restent pas longtemps en mémoire inter-médiaire, mais sont rapidement mises à la disposition du récepteur. Deplus, cela libère des blocs de mémoire − la capacité d’émission croît −et évite un blocage de l’émetteur − capacité d’émission "épuisée", nul-le.
NotaAlors que la capacité de réception nulle représente l’état idéal(toutes les données émises ont été lues par le récepteur), lacapacité d’émission nulle signale une erreur de configuration :
- la fonction "Emission" est appelée trop fréquemment,
- la fonction "Réception" n’est pas appelée assez souvent
ou
- un nombre insuffisant de blocs de mémoire est attribué à la liaison. La capacité de la mémoire intermédiaire ne suffit pas pour compenser un déséquilibre momentané entre fréquence d’émission et fréquence de réception.
Communication multiprocesseur
Programmation de la CPU 94810 - 20 C79000-G8577-C848-04
10.2.5Mesures à prendre pour ledémarrage du système
La communication multiprocesseur exige que toutes les CPU partici-pantes exécutent de la même manière le passage de l’état d’arrêt àl’état de marche RUN (mise en route), c’est-à-dire effectuent toutesun démarrage ou toutes un redémarrage.
Vous obtenez un mode de mise en route identique, au moins pour lesCPU participant à la communication, en prenant les mesures suivantes(voir paragraphe 10.1.7) :
•• manipulations (par le commutateur en face avant ou la console deprogrammation),
•• paramétrage (DX 0)
et
•• programmation (à l’aide du bloc d’organisation de fonction spécia-le OB 223, arrêt en cas de modes de mise en route différents enfonctionnement multiprocesseur).
Démarrage Dans le bloc d’organisation OB 20 spécifique au démarrage, une seu-le des CPU doit organiser la mémoire intermédiaire du coordinateur923C à l’aide de la fonction d’initialisation. Des données éventuelle-ment existantes sont alors détruites.Puis, encore pendant la mise en route, vous pouvez appeler lesfonctions "Emission", "Test d’émission", "Réception" et "Test deréception". Une programmation adaptée doit garantir que cela ne sefasse qu’après l’initialisation correcte de la mémoire intermédiaire duCOR. Lorsque le démarrage est terminé, donc en état de marche RUN,le programme utilisateur s’exécute à partir du début, c’est-à-dire à lapremière instruction de l’OB 1.
Redémarrage La fonction d’initialisation ne doit pas être utilisée dans les blocs d’or-ganisation OB 21 (redémarrage manuel) et OB 22 (redémarrage auto-matique). L’appel des fonctions "Emission", "Test d’émission","Réception" et "Test de réception" peut entraîner des difficultés ; re-spectez à ce sujet les recommandations des paragraphes suivants.
Lorsque le redémarrage est terminé, donc en état de marche RUN,l’exécution du programme utilisateur ne recommence pas au début,mais à l’endroit de l’interruption . Cette interruption peut se trouver,par exemple, dans la fonction d’émission.
Communication multiprocesseur
Programmation de la CPU 948C79000-G8577-C848-04 10 - 21
10.2.6Ce dont il faut tenir comptelors de l’appel des OB decommunication Procédez de la manière suivante :
1. Appelez la fonction d’initialisation sur une CPU uniquement dans le bloc d’organisation de démarrage OB 20.
2. Appelez les fonctions "Emission", "Test d’émission", "Réception" et "Test de réception" soit uniquement dans le programme cyclique, soit uniquement dans le programme d’horloge.
Double appel Selon le paramétrage du DX 0 (interruption aux limites d’instructions)et le mode de traitement du programme (redémarrage, gestion des in-terruptions, par exemple OB 26 en cas de dépassement du temps decycle), il est possible qu’une des fonctions "Initialisation", "Emissi-on", "Test d’émission", "Réception" et "Test de réception" soit inter-rompue. Si une interface utilisateur appelée au moment de l’interruption conti-ent elle aussi une des fonctions "Emission", "Test d’émission","Réception" et "Test de réception", la fonction appelée détecte ledouble appel et le signale dans l’octet d’erreur (code d’erreur 67, cf.paragraphe 10.2.8).
Traitement parallèle Après organisation de la mémoire intermédiaire (fonction "Initialisati-on"), vous pouvez exécuter les fonctions "Emission", "Test d’émissi-on", "Réception" et "Test de réception" parallèlement et simul-tanément dans toutes les CPU, quels que soient la combinaison et leparamétrage.
Si l’on ne considère qu’une seule liaison (de la CPU 2 vers la CPU 3par exemple), l’exécution simultanée des fonctions "Emission"(CPU 2) et "Réception" (CPU 3) est possible : pendant que la CPU 2envoie de nouveaux paquets de données au coordinateur, la CPU 3réceptionne des paquets de données déjà stockés en mémoire inter-médiaire.
Zones occupées Les OB de communication ne nécessitent pas de zone de travail (parexemple, pour mémoriser des variables) et n’appellent pas de blocs dedonnées. Ils accèdent bien sûr aux zones contenant des paramètres,mais seuls les paramètres de sortie peuvent être modifiés.
Communication multiprocesseur
Programmation de la CPU 94810 - 22 C79000-G8577-C848-04
Indicateurs de résultat Les indicateurs de résultat (FL 1/FL 0, RLG, etc.) sont influencés parles OB de communication. Pour des informations plus détaillées, re-portez-vous au paragraphe 10.2.8.
Modification desaccumulateurs
•• CPU 922, CPU 928, Le contenu des accumulateurs 1 à 4 ainsi CPU 928B que des registres n’est pas modifié par les
OB de communication.
•• CPU 946/947, Seul est modifié le contenu de l’accumula-CPU 948 teur 4 ; les accumulateurs 1, 2, et 3 ainsi
que les registres restent inchangés.
10.2.7Paramétrage des OB decommunication Les OB de communication possèdent les types de paramètres suivants :
•• paramètres d’entrée,
•• paramètres de sortie
et
•• paramètres d’appel.
Les paramètres d’entrée et de sortie se trouvent dans un champ dedonnées de 10 octets au maximum dans la zone des mémentos M. Cechamp se compose d’une partie réservée aux paramètres d’entrée etd’une partie réservée aux paramètres de sortie.
Paramètres d’entrée Les paramètres d’entrée définissent comment une fonction doit êtreexécutée. Ils sont lus et traités en totalité ou partiellement par les OBde communication ; il n’y a pas d’accès en écriture.
Paramètres de sortie Les paramètres de sortie contiennent toutes les informations que leprogramme appelant doit connaître sur le résultat d’un contrat, par ex-emple les indications d’erreur.Ils sont écrits en totalité ou partiellement par les OB decommunication ; il n’y a pas d’accès en lecture.
NotaVous pouvez prévoir pour toutes les fonctions de communicationune zone de 10 octets de mémentos. Les différentes fonctionsexigent cependant un nombre différent d’octets (voir la descrip-tion des fonctions à partir du paragraphe 10.4).
Communication multiprocesseur
Programmation de la CPU 948C79000-G8577-C848-04 10 - 23
Paramètres d’appel Le paramètre d’appel de chaque OB de communication est le numérodu premier octet de mémentos (0 à 246) dans le champ de données(pointeur sur le champ de données) de l’ACCU 1-L.
Exemple
10.2.8Exploitation des paramètres de sortie
Les paramètres de sortie indiquent, entre autres, si une fonction a puêtre traitée ; dans la négative, ils donnent la raison de l’interruption dela fonction.
Indicateurs de résultat Les fonctions "Initialisation", "Emission", "Test d’émission", "Récepti-on" et "Test de réception" influent sur les indicateurs de résultat (voirles remarques générales sur les opérations STEP 5).
•• Les bits OVFL et OVFLMEM (relatifs au traitement de mots) sonttoujours mis à "0".
•• Les bits OU, ETAT, 1e ? (relatifs au traitement de bits) sont tou-jours mis à "0".
•• RLG, FL 1 et FL 0 signalent si une fonction a été traitée entière-ment et de manière correcte.
Champ de données avec paramètres de la fonction "Réception" (OB 204)
MB x + 0: CPU d’émission Paramètre d’entréeMB x + 1: — non utilisé
MB x + 2: Octet indicateur Paramètre de sortieMB x + 3: Capacité de réception Paramètre de sortie
MB x + 4: Type de bloc Paramètre de sortieMB x + 5: Numéro de bloc Paramètre de sortie
MB x + 6: Adresse du premier Paramètre de sortieMB x + 7: mot de données reçu
MB x + 8: Adresse du dernier Paramètre de sortieMB x + 9: mot de données reçu
Cet exemple montre que le numéro du premier octet de mémentos M dans lechamp de données ne doit pas être supérieur à MB 246. S’il l’était, le champde données pouvant atteindre une longueur de 10 octets dépasserait leslimites de la zone des mémentos (MB 255).
Communication multiprocesseur
Programmation de la CPU 94810 - 24 C79000-G8577-C848-04
IndicateursExploitation Signification
RLG FL 1 FL 0
0 0 0 SPB= Fonction traitée entièrement et correctement
1 0 0 SPB= Fonction interrompue, pointeur sur champ de données non autorisé (>246)
Fonction interrompue suite à un conflit d’initialisation
1 0 1 SPB= etSPM=
Fonction interrompue suiteà une erreur(N° d’erreur 1 à 9)
1 1 0 SPB= etSPP=
Fonction interrompue suiteà un avertissement(N° d’avertissement 1 ou 2)
Dans les paragraphes suivants, on suppose que le pointeur sur lechamp de données contient une valeur correcte. Le premier octetdes paramètres de sortie indique alors de manière détaillée la cause del’interruption.
Octet indicateur Bit 7 6 5 4 3 2 1 0
A E I 0 Numéro
A = 1 : Avertissement
E = 1 : Erreur
I = 1 : Conflit d’initialisation
Numéro : - d’un avertissement- d’une erreur- d’un conflit d’initialisation
Tableau 10-1 Indicateurs des OB de communication
Communication multiprocesseur
Programmation de la CPU 948C79000-G8577-C848-04 10 - 25
Le premier octet dans la zone des paramètres de sortie (octet indica-teur) indique également si une fonction a été réalisée entièrement etcorrectement. La cause d’une interruption de la fonction est indiquéede manière plus détaillée que dans les indicateurs de résultats.Cet octet est toujours significatif quand le pointeur du champ dedonnées est correct.
Si la fonction a été traitée entièrement et de manière correcte, tous lesbits sont à 0 et tous les autres paramètres de sortie sont significatifs.
Lorsque la fonction est interrompue par un avertissement (bit 7 = 1),seule l’indication de la capacité d’émission et de réception reste signi-ficative ; les paramètres de sortie restants, le cas échéant, ne sont pasmodifiés.
Lorsque la fonction s’est terminée sur une erreur (bit 6 = 1) ou un con-flit d’initialisation (bit 5 = 1), aucun des autres paramètres de sortien’est modifié.
Exploitation de l’octetindicateur
Les indicatifs "A", "E" et "I" donnent, entre autres, la signification dunuméro.En plus de cette exploitation bit par bit, il est possible d’interpréterl’octet complet comme nombre non signé à virgule fixe. Dans le casd’une telle interprétation globale de l’octet indicateur, on obtient desgroupes de numéros qui ont les significations suivantes.
Groupes de numéros Signification
0
33 à 42
65 à 73
129 à 130
Fonction exécutée correctement et complètement
Fonction interrompue suite à un conflit d’initialisation
Fonction interrompue suite à une erreur
Fonction interrompue suite à un avertissement
Les erreurs sont détectées et affichées dans l’ordre des numéros d’er-reur. Cela signifie que plusieurs erreurs peuvent avoir eu lieu bienqu’une seule erreur soit signalée à un moment donné. Les autres er-reurs seront alors indiquées lors d’appels ultérieurs.
Tableau 10-2 Octet indicateur des OB de communication : groupes de numéros
Communication multiprocesseur
Programmation de la CPU 94810 - 26 C79000-G8577-C848-04
Exemple
Conflit d’initialisation Un conflit d’initialisation ne peut se produire que pour la fonction"Initialisation". Il nécessite une modification du programme ou du pa-ramétrage.
Numéros des conflits d’initialisation (exploitation globale de l’octetindicateur) :
Octet indicateur
Signification
33 Les pages nécessaires à la communication multi-processeur (n° 252 à n° 255) n’existent pas ou sont incomplètes.
34 Les pages nécessaires à la communication multi-processeur (n° 252 à n° 255) présentent une erreur.
35 Le paramètre "Automatique/Manuel" est incorrect. On distingue les cas suivants :
- indicatif "Automatique/Manuel" inférieur à 1,- indicatif "Automatique/Manuel" supérieur à 2.
36 Le paramètre "nombre de CPU" est incorrect. On distingue les cas suivants :
- nombre de CPU inférieur à 2,- nombre de CPU supérieur à 4.
37 Le paramètre "type de bloc" est incorrect. On distingue les cas suivants :
- type de bloc inférieur à 1,- type de bloc supérieur à 2.
38 Le paramètre "numéro de bloc" est incorrect ; il s’agit d’un bloc de données de signification particulière. On distingue les cas suivants :
- si le type de bloc = 1 : DB 0, DB 1,- si le type de bloc = 2 : DX 0
39 Le paramètre "numéro de bloc" est erroné : le bloc de données paramétré n’existe pas.
40 Le paramètre "adresse de début de la liste d’assignation" est trop grand ou le bloc de données trop court.
Supposons que la fonction "Emission" affiche uneerreur et ne démarre pas. Si vous modifiez alorsle programme ou les paramètres et que la fonction"Emission" signale à nouveau une erreur de numérosupérieur au précédent, cela veut dire que vousavez supprimé une erreur parmi plusieurs.
Tableau 10-3 Octet indicateur : numéros des conflits d’initialisation
Communication multiprocesseur
Programmation de la CPU 948C79000-G8577-C848-04 10 - 27
Octet indicateur
Signification
Suite du tableau 10-3
41 La liste d’assignation dans le bloc de données n’est pas organisée correctement.
42 La somme des blocs de mémoire attribués est supérieure à 48.
Erreurs L’apparition d’une erreur nécessite une modification du programmeou du paramétrage.
Numéros d’erreur (exploitation globale de l’octet indicateur) :
Octet indicateur
Signification
65 Le paramètre "CPU réceptrice" ("Emission", "Test d’émission") est incorrect. On distingue les cas suivants :
- Le numéro de la CPU réceptrice est supérieur à 4.- Le numéro de la CPU réceptrice est inférieur à 1.- Le numéro de la CPU réceptrice est celui de la CPU
émettrice.
66 Le paramètre "CPU émettrice" ("Réception", "Test de réception") est incorrect. On distingue les cas suivants :
- Le numéro de la CPU émettrice est supérieur à 4.- Le numéro de la CPU émettrice est inférieur à 1.- Le numéro de la CPU émettrice est celui de la CPU
réceptrice.
67 L’appel du bloc d’organisation de fonction spéciale est erroné ("Emission", "Réception", "Test d’émission","Test de réception"). On distingue les cas suivants :
- Erreur redondante : la fonction "Initialisation" n’a pas été appelée ou a été terminée avec conflit d’initialisation.
- Double appel : l’appel de cette fonction "Emission", "Test d’émission", "Réception" ou "Test de récep-tion" est incorrect, car une des fonctions "Initialisa-tion", "Emission", "Test d’émission", "Réception" ou "Test de réception" a déjà été appelée dans cette CPU à un niveau de traitement subordonné (par exemple, traitement cyclique du programme).
- Le numéro de la CPU traitant la fonction est erroné (données système détruites). Le numéro de CPU est généré à nouveau par le programme système après coupure et rétablissement de la tension secteur.
Tableau 10-4 Octet indicateur : numéros d’erreur
Communication multiprocesseur
Programmation de la CPU 94810 - 28 C79000-G8577-C848-04
Octet indicateur
Signification
Suite du tableau 10-4
68 Les données de gestion (gestion de la file d’attente) desliaisons choisies sont erronées. La mémoire intermé-diaire du coordinateur 923C doit être organisée ànouveau à l’aide de la fonction "Initialisation" (ce caspeut se produire lors des fonctions "Emission","Réception", "Test d’émission" ou "Test de réception").
69 Le paramètre "type de bloc" ("Emission") ou le type debloc transmis par l’émetteur ("Réception") est incorrect. On distingue les cas suivants :
- Le type de bloc est inférieur à 1.- Le type de bloc est supérieur à 2.
70 Le paramètre "numéro de bloc" ("Emission") ou lenuméro de bloc transmis par l’émetteur ("Réception") est incorrect, car il s’agit d’un bloc de données de signi-fication particulière. On distingue les cas suivants :
- Si le type de bloc = 1 : DB 0, DB 1- Si le type de bloc = 2 : DX 0
71 Le paramètre "numéro de bloc" ("Emission") ou lenuméro de bloc transmis par l’émetteur ("Réception") esterroné. Le bloc de données paramétré n’existe pas.
72 Le paramètre "numéro de paquet" ("Emission") esterroné. Le bloc de données est trop court ou le numérode paquet trop grand.
73 Le bloc de données est trop court et ne peut pas accepterle paquet de données transmis par l’émetteur ("Récep-tion").
Communication multiprocesseur
Programmation de la CPU 948C79000-G8577-C848-04 10 - 29
Avertissement La fonction n’a pas pu être exécutée. Il faut l’appeler à nouveau, parexemple au cycle suivant.
Numéros d’avertissement (exploitation globale de l’octet indicateur) :
Octet indicateur
Signification
129 La fonction "Emission" ne peut pas transmettre de données, la capacité d’émission étant déjà nulle lors de l’appel de la fonction.
130 La fonction "Réception" ne peut pas recevoir dedonnées, la capacité de réception étant déjà nulle lors del’appel de la fonction.
Tableau 10-5 Octet indicateur : numéros d’avertissement
Communication multiprocesseur
Programmation de la CPU 94810 - 30 C79000-G8577-C848-04
10.3 Temps d’exécution des OB de communication
Le temps d’exécution correspond à la durée de traitement des blocsd’organisation de fonctions spéciales. Le laps de temps entre l’appeld’un bloc et sa fin peut être bien supérieur si le bloc est interrompupar des activités prioritaires (par exemple, traitement de cellules detemporisation, etc.).
OB de fonctions spéciales
Nom du bloc CPU 922 CPU 928 CPU 928B CPU 946/947
CPU 948
OB 200/Initialisation
230 ms 130 ms 130 ms 128 ms 90 ms
OB 202/Emission
806 µs (294 µsde base
+ 16 µs/mot) ;118 µs sialarme
666 µs (250 µs de base
+ 13 µs/mot) ;115 µs sialarme
696 µs (280 µs de base
+ 13 µs/mot) ;145 µs sialarme
762 µs (426 µs de base
+ 21 µs/doublemot) ;
243 µs sialarme
542 µs (220 µs de base
+ 19 µs/doublemot) ;
110 µs sialarme
OB 203/ Test d’émission
72 µs 50 µs 80 µs 207µs 115 µs
OB 204/ Réception
825 µs (281 µsde base
+ 17 µs/mot) ;115 µs sialarme
660 µs (244 µsde base
+ 13 µs/mot) ;98 µs sialarme
690 µs (274 µsde base
+ 13 µs/mot) ;128 µs sialarme
772 µs (421 µsde base
+ 22 µs/doublemot) ;
243 µs sialarme
506 µs (218 µs de base
+ 18 µs/doublemot) ;
132 µs sialarme
OB 205/Test de réception
70 µs 48 µs 78 µs 223 µs 120 µs
Les temps d’exécution mentionnés dans le tableau 10-6 ne sont valab-les que si, parmi les quatre CPU enfichées, seule la CPU dont onmesure les temps d’exécution accède au bus S5. Si d’autres CPU utili-sent le bus de façon intensive, le temps d’exécution augmente ; c’estle cas particulièrement pour l’émission et la réception.
Tableau 10-6 Temps d’exécution des OB de communication
Temps d’exécution des OB de communication
Programmation de la CPU 948C79000-G8577-C848-04 10 - 31
Temps de transfert Une caractéristique importante d’une liaison (par exemple, de laCPU 1 vers la CPU 2) est le temps de transfert total. Il se compose destrois temps partiels suivants :
•• durée d’émission (voir temps d’exécution),
•• durée du stockage intermédiaire (dans le coordinateur COR 923C)
et
•• durée de réception (voir temps d’exécution).
Le laps de temps pendant lequel les données à transférer sont "en route" dépend essentiellement de la durée du stockage inter-médiaire et donc de la structure du programme utilisateur (cf. paragraphe 10.2.3, "Stockage intermédiaire des données").
Temps d’exécution des OB de communication
Programmation de la CPU 94810 - 32 C79000-G8577-C848-04
10.4 Fonction "Initialisation" (OB 200)
10.4.1Fonction Pour pouvoir transférer des données d’une CPU émettrice à une CPU
réceptrice, il faut tout d’abord les stocker provisoirement. La fonction"Initialisation" organise à cet effet la mémoire intermédiaire du coordi-nateur COR 923C.La capacité de mémoire est installée (initialisée) en blocs de mémoired’une taille fixe de 32 mots.
Chaque bloc de mémoire peut recevoir un paquet de données de longu-eur comprise entre 1 et 32 mots de données. Un paquet de données estinscrit par la fonction "Emission" dans un bloc de mémoire et en estextrait par la fonction "Réception".
Deux CPU enfichées définissent deux liaisons (sens de transfert,"voies") :
Trois CPU enfichées définissent six liaisons :
CPU 1 CPU 2
CPU 2
CPU 3
CPU 1
Fonction "Initialisation" (OB 200)
Programmation de la CPU 948C79000-G8577-C848-04 10 - 33
Quatre CPU enfichées définissent douze liaisons :
La fonction "Initialisation" répartit les 48 blocs de mémoire entre les liai-sons (12 liaisons au maximum).En d’autres termes, une certaine capacité de mémoire est attribuée àchaque liaison possible, cette dernière étant caractérisée par les pa-ramètres "CPU émettrice" et "CPU réceptrice".
NotaAvant que les fonctions "Emission", "Réception", "Test d’émission"et "Test de réception" puissent être appelées sur les CPU, la fonction"Initialisation" doit avoir été appelée et exécutée totalement et sanserreur sur une des CPU.
Si la fonction "Initialisation" est appelée plusieurs fois de suite, l’orga-nisation (liste d’assignation) paramétrée en dernier est valable.Lorsque la fonction "Initialisation" est en cours de traitement sur l’unedes CPU, les autres fonctions de la communication multiprocesseur etla fonction "Initialisation" elle-même ne doivent pas être appelées surles autres CPU.
CPU 3 CPU 4
CPU 1 CPU 2
Fonction "Initialisation" (OB 200)
Programmation de la CPU 94810 - 34 C79000-G8577-C848-04
10.4.2Paramètres d’appel
Structure du champ dedonnées des paramètres
Avant l’appel de l’OB 200, il faut mettre à disposition les paramètresd’entrée en les écrivant dans le champ de données. L’OB 200 nécessi-te 8 octets de mémentos M dans le champ de données pour les pa-ramètres d’entrée et de sortie.
MB x + 0 : Mode automatique/manuel Paramètre d’entréeMB x + 1 : Nombre de CPU Paramètre d’entréeMB x + 2 : Type de bloc Paramètre d’entréeMB x + 3 : Numéro de bloc Paramètre d’entréeMB x + 4 : Adresse de début Paramètre d’entréeMB x + 5 : de la liste d’assignation
MB x + 6 : Octet indicateur Paramètre de sortieMB x + 7 : Capacité totale Paramètre de sortie
ACCU 1-L Lors de l’appel de l’OB 200, vous indiquez dans l’ACCU 1-L lenuméro de l’octet de mémentos où commence le champ de données deparamétrage : ACCU 1-LH : 0ACCU 1-LL : 0 à 246
10.4.3Paramètres d’entrée
Mode automatique oumanuel
Mode = 1 : Automatique Mode = 2 : ManuelMode = 0 ou 3 à 255 : Non autorisé, provoque un
conflit d’initialisation.
Nombre de CPU Ce paramètre n’est significatif qu’en mode automatique pour lequelles blocs de mémoire disponibles sont répartis de manière égale enfonction du nombre de CPU.
Nombre de CPU
Nombre de liaisons Nombre de blocs demémoire par liaison
2
3
4
2
6
12
24
8
4
0 ; 1 ; 5 à 255 non autorisé, provoque un conflit d’initialisation
Fonction "Initialisation" (OB 200)
Programmation de la CPU 948C79000-G8577-C848-04 10 - 35
Type de bloc, numéro de bloc,adresse de la listed’assignation
Ces paramètres ne sont significatifs qu’en mode manuel. Vous devezalors mettre à disposition, dans un bloc de données, une liste d’assi-gnation dans laquelle les 48 (ou moins) blocs de mémoire disponiblessont répartis entre les liaisons existantes (12 au maximum) suivant unschéma défini. Cette fonction est particulièrement utile lorsque lesCPU n’échangent pas entre elles des volumes de données identiques.L’attribution de blocs de mémoire aux CPU qui ne participent pas à lacommunication multiprocesseur n’a pas de sens. Les paramètres :
•• type de bloc,
•• numéro de bloc
et
•• adresse de début de la liste d’assignation
définissent l’emplacement de la liste d’assignation.
Type de bloc Type = 1 : bloc de données DBType = 2 : bloc de données DXType = 0 ou 3 à 255 : non autorisé, provoque
un conflit d’initialisation
Numéro de bloc Comme numéro de bloc, indiquez le numéro du bloc de données DBou DX qui contient la liste d’assignation.
Adresse de début dela liste d’assignation
Elle donne, en liaison avec le type et le numéro de bloc, la zone − plusprécisément l’adresse de début de la zone − dans le bloc de donnéesoù se trouve la liste d’assignation.Comme adresse de la liste d’assignation, indiquez dans les octets demémentos MB x+4 (octet de poids fort) et MB x+5 (octet de poids fai-ble), les numéros de mots de données à partir desquels débute la listed’assignation.
Fonction "Initialisation" (OB 200)
Programmation de la CPU 94810 - 36 C79000-G8577-C848-04
Liste d’assignation La liste d’assignation détermine le nombre de blocs de mémoire (surles 48) à affecter aux différentes liaisons.
La liste n’est pas modifiée par le programme système. Elle présentela structure suivante :
Mot dedonnées
Format Valeur Signification
DW n + 0DW n + 1DW n + 2DW n + 3
KCKYKYKY
S12 , a3 , b4 , c
Emetteur = CPU 1Récepteur = CPU 2Récepteur = CPU 3Récepteur = CPU 4
DW n + 4DW n + 5DW n + 6DW n + 7
KCKYKYKY
S21 , d3 , e4 , f
Emetteur = CPU 2Récepteur = CPU 1Récepteur = CPU 3Récepteur = CPU 4
DW n + 8DW n + 9DW n + 10DW n + 11
KCKYKYKY
S31 , g2 , h4 , i
Emetteur = CPU 3Récepteur = CPU 1Récepteur = CPU 2Récepteur = CPU 4
DW n + 12DW n + 13DW n + 14DW n + 15
KCKYKYKY
S41 , k2 , l3 , m
Emetteur = CPU 4Récepteur = CPU 1Récepteur = CPU 2Récepteur = CPU 3
Les lettres minuscules a à m (imprimées ici en gras) doivent être rem-placées par des chiffres compris entre 0 et 48, selon l’affectation desblocs de mémoire ; leur somme ne doit pas dépasser 48.
NotaLa structure indiquée dans le tableau 10-7 doit être respectée mêmelorsque moins de quatre CPU sont enfichées.
Tableau 10-7 Liste d’assignation pour l’OB 200 (initialisation)
Fonction "Initialisation" (OB 200)
Programmation de la CPU 948C79000-G8577-C848-04 10 - 37
Exemple
10.4.4Paramètres de sortie
Octet indicateur Cet octet indique si la fonction "Initialisation" a été exécutée entière-ment et de façon correcte.
Conflit d’initialisation Les conflits d’initialisation apparus sont détectés et affichés par la fon-ction dans l’ordre croissant de leurs numéros.
L’apparition d’un conflit d’initialisation nécessite une modification duprogramme ou du paramétrage.
Tous les numéros qui figurent dans le tableau 10-3 peuvent apparaîtredans l’octet indicateur.
Trois CPU sont enfichées. La CPU 2 doit envoyer beaucoup de données auxdeux autres qui, par contre, ne renvoient à la CPU 2 que peu de données, àsavoir les signalisations en retour dans le cadre d’un échange d’acquitte-ments. Les CPU 1 et 3 n’échangent pas de données entre elles.
La liste d’assignation figure dans le bloc de données DB 40 à partir duDW 0 avec les paramètres suivants :
DB40 FD: CPU948ST.S5D
0: KC = S1; Emetteur : CPU 1 1: KY = 2, 2; Récepteur : CPU 2, 2 blocs 2: KY = 3, 0; Récepteur : CPU 3, pas de bloc
3: KY = 4, 0; Récepteur : CPU 4 (n’existe pas), pas de bloc 4: KC = S2; Emetteur : CPU 2 5: KY = 1, 22 ; Récepteur : CPU 1, 22 blocs 6: KY = 3, 22; Récepteur : CPU 3, 22 blocs 7: KY = 4, 0; Récepteur : CPU 4 (n’existe pas), pas de bloc 8: KC = S3; Emetteur : CPU 3 9: KY = 1, 0; Récepteur : CPU 1, pas de bloc10: KY = 2, 2; Récepteur : CPU 2, 2 blocs
11: KY = 4, 0; Récepteur : CPU 4 (n’existe pas), pas de bloc12: KC = S4; Emetteur : CPU 4 (n’existe pas)13: KY = 1, 0; Récepteur : CPU 1, pas de bloc14: KY = 2, 0; Récepteur : CPU 2, pas de bloc15: KY = 3,0; Récepteur : CPU 3, pas de bloc16:
Fonction "Initialisation" (OB 200)
Programmation de la CPU 94810 - 38 C79000-G8577-C848-04
Erreurs Un code d’erreur du groupe de numéros "Erreur" ne peut pas seprésenter dans le cadre de la fonction "Initialisation".
Avertissements Un code d’erreur du groupe de numéros "Avertissement" ne peut passe présenter dans le cadre de la fonction "Initialisation".
Capacité totale Ce paramètre donne le nombre de blocs de mémoire qui, parmi les 48disponibles, sont attribués aux liaisons. En mode automatique, ce pa-ramètre contient toujours la valeur 48. En mode manuel, cette valeurpeut être inférieure à 48 ; dans ce cas, la capacité de mémoire disponi-ble n’est pas totalement utilisée.
Fonction "Initialisation" (OB 200)
Programmation de la CPU 948C79000-G8577-C848-04 10 - 39
10.5 Fonction "Emission" (OB 202)
10.5.1Fonction La fonction "Emission" transfère un paquet de données dans la mémoi-
re intermédiaire du coordinateur COR 923C. Elle indique de plus com-bien de paquets de données peuvent encore être émis et stockés enmémoire intermédiaire.
10.5.2Paramètres d’appel
Structure du champ dedonnées des paramètres
Avant l’appel de l’OB 202, il faut mettre à disposition les paramètresd’entrée en les écrivant dans le champ de données. L’OB 202 occupe6 octets de mémentos M dans le champ de données pour les paramètresd’entrée et de sortie.
MB x + 0 : CPU réceptrice Paramètre d’entréeMB x + 1 : Type de bloc Paramètre d’entréeMB x + 2 : Numéro de bloc Paramètre d’entréeMB x + 3 : Numéro de paquet Paramètre d’entrée
MB x + 4 : Octet indicateur Paramètre de sortieMB x + 5 : Capacité d’émission Paramètre de sortie
ACCU 1-L Lors de l’appel de l’OB 202, vous indiquez dans l’ACCU 1-L lenuméro de l’octet de mémentos où commence le champ de données deparamétrage :
ACCU 1-LH : 0ACCU 1-LL : 0 à 246
10.5.3Paramètres d’entrée
CPU réceptrice Numéro de CPU du récepteur (destination)La valeur admise est comprise entre 1 et 4, mais doit être différente dunuméro de l’émetteur.
Fonction "Emission" (OB 202)
Programmation de la CPU 94810 - 40 C79000-G8577-C848-04
Type de bloc Type = 1 : Bloc de données DBType = 2 : Bloc de données DXType = 0 ou 3 à 255 : Non autorisé, génère un
message d’erreur
Numéro de bloc Le numéro de bloc détermine, en liaison avec le type de bloc et lenuméro de paquet, la zone dans laquelle les données à émettre doiventêtre lues (et dans laquelle elles seront déposées dans la CPU réceptrice).
Notez que certains blocs de données ont une signification particulière,par exemple DB 0, DB 1 ou DX 0 (voir les chapitres correspondants).Ils ne peuvent donc pas être utilisés pour le transfert de données décritici.En cas d’utilisation de ces blocs de données, la fonction est interrom-pue et un message d’erreur est émis.
Numéro de paquet Le numéro de paquet définit la zone de données à émettre.
Numéro de paquet
Zone de données
premier mot de données dernier mot de données
01
23
45
67
89::
DW 0DW 32
DW 64DW 96
DW 128DW 160
DW 192DW 224
DW 256DW 288
::
DW 31DW 63
DW 95DW 127
DW 159DW 191
DW 223DW 255
DW 287DW 319
::
Fonction "Emission" (OB 202)
Programmation de la CPU 948C79000-G8577-C848-04 10 - 41
On distingue les cas suivants :
•• Le DB est plus long que la zone source :Si le bloc de données est suffisamment long, on obtient une zonede 32 mots par paquet selon le tableau ci-avant.
•• Le DB est trop court : Lorsque la fin du bloc de données se trouve dans le paquet pa-ramétré, une zone dont la longueur est comprise entre 1 et 31 motsest transférée dans le dernier paquet.
•• Le paquet se trouve en dehors du DB :Si la première adresse de mot de données déterminée pour unpaquet se trouve au-delà de la longueur du bloc de données, la fon-ction "Emission" détecte et signale une erreur.
Exemple
10.5.4Paramètres de sortie
Octet indicateur Cet octet indique si la fonction "Emission" a été exécutée entièrementet de manière correcte.
Conflit d’initialisation Il ne peut pas se produire de conflit d’initialisation pendant l’exécuti-on de la fonction "Emission".
Bloc de données d’une longueur de 80 mots : DW 0à DW 74, 5 mots constituant l’en-tête du bloc.
Numéro de Premier mot Dernier motpaquet de données de données Longueur
0 DW 0 DW 31 32 mots1 DW 32 DW 63 32 mots
2 DW 64 DW 74 11 mots
≥ 3 Paramétrage erroné
Fonction "Emission" (OB 202)
Programmation de la CPU 94810 - 42 C79000-G8577-C848-04
Erreurs A l’appel de la fonction "Emission" les numéros d’erreur suivants peu-vent apparaître (exploitation globale de l’octet indicateur) :
Octet indicateur
Signification
65 Le paramètre "CPU réceptrice" est incorrect.On distingue les cas suivants :
- Le numéro de la CPU réceptrice est supérieur à 4.- Le numéro de la CPU réceptrice est inférieur à 1.- Le numéro de la CPU réceptrice est celui de la
CPU traitant la fonction.
67 L’appel du bloc d’organisation de fonction spéciale estincorrect. On distingue les cas suivants :
- Erreur redondante ; la fonction "Initialisation" n’a pas été appelée ou s’est terminée par un conflit d’initialisation.
- Double appel : l’appel de cette fonction "Emis-sion", "Test d’émission", "Réception" ou "Test de réception" est incorrect, car une des fonctions "Initialisation", "Emission", "Réception", "Test d’émission" ou "Test de réception" a déjà été appelée dans cette CPU à un niveau de traitement subordonné (par exemple, traitement cyclique du programme).
- Le numéro de la CPU traitant la fonction est erroné (données système détruites). Le numéro de la CPU est généré à nouveau par le programme système après coupure et rétablissement de la tension secteur.
68 Les données de gestion (gestion de la file d’attente) des liaisons choisies sont erronées. La mémoire inter-médiaire du coordinateur 923C doit être organisée à nouveau à l’aide de la fonction "Initialisation".
69 Le paramètre "type de bloc" est incorrect. On distingue les cas suivants :
- Le type de bloc est inférieur à 1.- Le type de bloc est supérieur à 2.
70 Le paramètre "numéro de bloc" est incorrect car ils’agit d’un bloc de données de signification particu-lière. On distingue les cas suivants :
- Si le type de bloc = 1 : DB 0, DB 1- Si le type de bloc = 2 : DX 0
71 Le paramètre "numéro de bloc" est erroné. Le bloc de données paramétré n’existe pas.
72 Le paramètre "numéro de paquet" est erroné. Le blocde données est trop court ou le numéro de paquet tropélevé.
Fonction "Emission" (OB 202)
Programmation de la CPU 948C79000-G8577-C848-04 10 - 43
Avertissements La fonction n’a pas pu être exécutée. Il faut l’appeler à nouveau, parexemple au cycle suivant.
Le numéro d’avertissement suivant peut apparaître (exploitation globa-le de l’octet indicateur) :
Octet indicateur
Signification
129 La fonction "Emission" ne peut pas transmettre de données, la capacité d’émission (voir plus bas) étant déjà nulle lors de l’appel de la fonction.
Capacité d’émission Le paramètre "capacité d’émission" indique le nombre de paquets dedonnées pouvant être émis et stockés en mémoire intermédiaire.
Fonction "Emission" (OB 202)
Programmation de la CPU 94810 - 44 C79000-G8577-C848-04
10.6 Fonction "Test d’émission" (OB 203)
10.6.1Fonction La fonction "Test d’émission" détermine le nombre "m" de blocs de
mémoire libres dans la mémoire intermédiaire du coordinateur COR923C. Selon ce nombre "m", la fonction "Emission" peut être appelée"m" fois pour transmettre "m" paquets de données.
10.6.2Paramètres d’appel
Structure du champ dedonnées des paramètres
Avant l’appel de l’OB 203, il faut mettre à disposition les paramètresd’entrée en les écrivant dans le champ de données. L’OB 203 occupe4 octets de mémentos M dans le champ de données pour les pa-ramètres d’entrée et de sortie.
MB x + 0 : CPU réceptrice Paramètre d’entréeMB x + 1 : — non affecté
MB x + 2 : Octet indicateur Paramètre de sortieMB x + 3 : Capacité d’émission Paramètre de sortie
ACCU 1-L Lors de l’appel de l’OB 203, vous indiquez dans l’ACCU 1-L lenuméro de l’octet de mémentos où commence le champ de données deparamétrage :
ACCU 1-LH : 0ACCU 1-LL : 0 à 246
10.6.3Paramètres d’entrée
CPU réceptrice Le numéro de la CPU traitant la fonction ainsi que le numéro de laCPU réceptrice définissent la liaison pour laquelle la capacité d’émis-sion est déterminée.
10.6.4Paramètres de sortie
Octet indicateur Cet octet indique si la fonction "Test d’émission" a été traitée entièrementet de manière correcte.
Fonction "Test d’émission" (OB 203)
Programmation de la CPU 948C79000-G8577-C848-04 10 - 45
Confit d’initialisation Il ne peut pas se produire de conflit d’initialisation pendant l’exécuti-on de la fonction "Test d’émission".
Erreurs A l’appel de la fonction "Test d’émission", les numéros d’erreur sui-vants peuvent apparaître (exploitation globale de l’octet indicateur) :
Octet indicateur
Signification
65 Le paramètre "CPU réceptrice" est incorrect.On distingue les cas suivants :
- Le numéro de la CPU réceptrice est supérieur à 4.- Le numéro de la CPU réceptrice est inférieur à 1.- Le numéro de la CPU réceptrice est celui de la
CPU traitant la fonction.
67 L’appel du bloc d’organisation de fonction spéciale est incorrect. On distingue les cas suivants :
- Erreur redondante ; la fonction "Initialisation" n’a pas été appelée ou s’est terminée par un conflit d’initialisation.
- Double appel : l’appel de cette fonction "Emis-sion", "Test d’émission", "Réception" ou "Test de réception" est incorrect, car une des fonctions "Initialisation", "Emission", "Réception", "Test d’émission" ou "Test de réception" a déjà été appelée dans cette CPU à un niveau de traitement subordonné (par exemple, traitement cyclique du programme).
- Le numéro de la CPU traitant la fonction est erroné (données système détruites). Le numéro de la CPU est généré à nouveau par le programme système après coupure et rétablissement de la tension secteur.
68 Les données de gestion (gestion de la file d’attente) des liaisons choisies sont erronées. La mémoire inter-médiaire du coordinateur 923C doit être organisée à nouveau à l’aide de la fonction "Initialisation".
Avertissements La fonction "Test d’émission" n’entraîne pas l’émission d’avertissements.
Capacité d’émission Le paramètre "capacité d’émission" indique le nombre de paquets dedonnées pouvant être émis et stockés en mémoire intermédiaire.
Fonction "Test d’émission" (OB 203)
Programmation de la CPU 94810 - 46 C79000-G8577-C848-04
10.7 Fonction "Réception" (OB 204)
10.7.1Fonction La fonction "Réception" lit un paquet de données dans la mémoire in-
termédiaire du coordinateur COR 923C. Elle indique de plus combiende paquets de données sont encore stockés et peuvent encore êtrereçus. La fonction "Réception" doit être appelée dans une boucle de program-me autant de fois qu’il est nécessaire pour que tous les paquets dedonnées mémorisés soient lus.
10.7.2Paramètres d’appel
Structure du champ dedonnées des paramètres
Avant l’appel de l’OB 204, il faut mettre à disposition les paramètresd’entrée en les écrivant dans le champ de données. L’OB 204 occupe10 octets de mémentos M dans le champ de données pour les pa-ramètres d’entrée et de sortie.
MB x + 0 : CPU émettrice Paramètre d’entréeMB x + 1 : — non utilisé
MB x + 2 : Octet indicateur Paramètre de sortieMB x + 3 : Capacité de réception Paramètre de sortieMB x + 4 : Type de bloc Paramètre de sortieMB x + 5 : Numéro de bloc Paramètre de sortieMB x + 6 : Adresse du premier Paramètre de sortieMB x + 7 : mot de données reçuMB x + 8 : Adresse du dernier Paramètre de sortieMB x + 9 : mot de données reçu
ACCU 1-L Lors de l’appel de l’OB 204, vous indiquez dans l’ACCU 1-L lenuméro de l’octet de mémentos où commence le champ de données deparamétrage :
ACCU 1-LH : 0ACCU 1-LL : 0 à 246
10.7.3Paramètres d’entrée
CPU réceptrice Le bloc de réception reçoit les données fournies par la CPU émettrice. Lenuméro de cette CPU peut être compris entre 1 et 4, mais doit êtredifférent du numéro de la CPU réceptrice.
Fonction "Réception" (OB 204)
Programmation de la CPU 948C79000-G8577-C848-04 10 - 47
10.7.4Paramètres de sortie
Octet indicateur Cet octet indique si la fonction "Réception" a été exécutée entière-ment et de manière correcte.
Conflit d’initialisation Il ne peut pas se produire de conflit d’initialisation pendant l’exécuti-on de la fonction "Réception".
Erreurs A l’appel de la fonction "Réception", les numéros d’erreur suivantspeuvent apparaître (exploitation globale de l’octet indicateur) :
Octet indicateur
Signification
66 Le paramètre "CPU émettrice" est incorrect.On distingue les cas suivants :
- Le numéro de la CPU émettrice est supérieur à 4.- Le numéro de la CPU émettrice est inférieur à 1.- Le numéro de la CPU émettrice est celui de la
CPU traitant la fonction.
67 L’appel du bloc d’organisation de fonction spéciale est incorrect. On distingue les cas suivants :
- Erreur redondante ; la fonction "Initialisation" n’a pas été appelée ou s’est terminée par un conflit d’initialisation.
- Double appel : l’appel de cette fonction "Emis-sion", "Test d’émission", "Réception" ou "Test de réception" est incorrect, car une des fonctions "Initialisation", "Emission", "Réception", "Test d’émission" ou "Test de réception" a déjà été appelée dans cette CPU à un niveau de traitement subordonné (par exemple, traitement cyclique du programme).
- Le numéro de la CPU traitant la fonction est erroné (données système détruites). Le numéro de la CPU est généré à nouveau par le programme système après coupure et rétablissement de la tension secteur.
68 Les données de gestion (gestion de la file d’attente) des liaisons choisies sont erronées. La mémoire inter-médiaire du coordinateur 923C doit être organisée à nouveau à l’aide de la fonction "Initialisation".
69 Le type de bloc envoyé par l’émetteur est incorrect. On distingue les cas suivants :
- Le type de bloc est inférieur à 1.- Le type de bloc est supérieur à 2.
Fonction "Réception" (OB 204)
Programmation de la CPU 94810 - 48 C79000-G8577-C848-04
Octet indicateur
Signification
Suite des numéros d’erreur
70 Le numéro de bloc envoyé par l’émetteur est incorrect, car il s’agit d’un bloc de données de signification particulière. On distingue les cas suivants :
- Si le type de bloc = 1 : DB 0, DB 1- Si le type de bloc = 2 : DX 0
71 Le numéro de bloc envoyé par l’émetteur est erroné. Le bloc de données paramétré n’existe pas.
73 Le bloc de données est trop court pour accepter lepaquet de données envoyé par l’émetteur.
Avertissements La fonction n’a pas pu être exécutée. Il faut l’appeler à nouveau, parexemple au cycle suivant.
Le numéro d’avertissement suivant peut apparaître (exploitation globa-le de l’octet indicateur) :
Octetindicateur
Signification
130 La fonction "Réception" ne peut pas prendre en compte de données, la capacité de réception étant déjà nulle lors de l’appel de la fonction.
Capacité de réception Le paramètre "capacité de réception" indique le nombre de paquets dedonnées encore stockés en mémoire intermédiaire et pouvant être luspar la fonction "Réception".
Fonction "Réception" (OB 204)
Programmation de la CPU 948C79000-G8577-C848-04 10 - 49
Type de bloc Type = 1 : Bloc de données DBType = 2 : Bloc de données DXType = 0 ou 3 à 255 : non autorisé, génère un
message d’erreur
Numéro de bloc Numéro du bloc DB/DX dans lequel ont été reçues et stockées lesdonnées (et d’où elles ont été prises dans la CPU émettrice par la fon-ction "Emission").
Notez que les blocs de données de réception doivent se trouver dansune mémoire vive (RAM). L’utilisation de mémoires mortes(EPROM) ne se justifie que pour les blocs de données d’émission.
Adresse du premier mot de données reçu
Numéro de mot de données dans le DB/DX dans lequel a été stocké lepremier mot de données émis ou reçu.
Adresse du dernier motde données reçu
Numéro de mot de données dans le DB/DX dans lequel a été stocké ledernier mot de données émis ou reçu.
NotaLa différence entre les adresses du premier et du dernier mot dedonnées transmis est 31 au maximum. En effet, 32 mots au pluspeuvent être transférés à chaque appel de la fonction.
Fonction "Réception" (OB 204)
Programmation de la CPU 94810 - 50 C79000-G8577-C848-04
10.8 Fonction "Test de réception" (OB 205)
10.8.1Fonction La fonction "Test de réception" détermine le nombre "m" de blocs de
mémoire occupés dans la mémoire intermédiaire du coordinateurCOR 923C. Selon ce nombre "m", la fonction "Réception" peut êtreappelée "m" fois pour lire "m" paquets de données.
10.8.2Paramètres d’appel
Structure du champ dedonnées des paramètres
Avant l’appel de l’OB 205, il faut mettre à disposition les paramètresd’entrée en les écrivant dans le champ de données. L’OB 205 occupe4 octets de mémentos M dans le champ de données pour les pa-ramètres d’entrée et de sortie.
MB x + 0 : CPU émettrice Paramètre d’entréeMB x + 1 : — non utilisé
MB x + 2 : Octet indicateur Paramètre de sortieMB x + 3 : Capacité de réception Paramètre de sortie
ACCU 1-L Lors de l’appel de l’OB 205, vous indiquez dans l’ACCU 1-L lenuméro de l’octet de mémentos où commence le champ de données deparamétrage :
ACCU 1-LH : 0ACCU 1-LL : 0 à 246
10.8.3Paramètres d’entrée
CPU émettrice Le numéro de la CPU traitant la fonction et le numéro de la CPUémettrice définissent la liaison pour laquelle la capacité de réceptionest calculée.
10.8.4Paramètres de sortie
Octet indicateur Cet octet indique si la fonction "Test de réception" a été traitée entière-ment et de manière correcte.
Conflit d’initialisation Il ne peut pas se produire de conflit d’initialisation pendant l’exécuti-on de la fonction "Test de réception".
Fonction "Test de réception" (OB 205)
Programmation de la CPU 948C79000-G8577-C848-04 10 - 51
Erreurs A l’appel de la fonction "Test de réception", les numéros d’erreur sui-vants peuvent apparaître (exploitation globale de l’octet indicateur) :
Octet indicateur
Signification
66 Le paramètre "CPU émettrice" est incorrect.On distingue les cas suivants :
- Le numéro de la CPU émettrice est supérieur à 4.- Le numéro de la CPU émettrice est inférieur à 1.- Le numéro de la CPU émettrice est celui de la
CPU traitant la fonction.
67 L’appel du bloc d’organisation de fonction spéciale est incorrect. On distingue les cas suivants :
- Erreur redondante ; la fonction "Initialisation" n’a pas été appelée ou s’est terminée par un conflit d’initialisation.
- Double appel : l’appel de cette fonction "Emis-sion", "Test d’émission", "Réception" ou "Test de réception" est incorrect, car une des fonctions "Initialisation", "Emission", "Réception", "Test d’émission" ou "Test de réception" a déjà été appelée dans cette CPU à un niveau de traitement subordonné (par exemple, traitement cyclique du programme).
- Le numéro de la CPU traitant la fonction est erroné (données système détruites). Le numéro de la CPU est généré à nouveau par le programme système après coupure et rétablissement de la tension secteur.
68 Les données de gestion (gestion de la file d’attente) des liaisons choisies sont erronées. La mémoire inter-médiaire du coordinateur 923C doit être organisée à nouveau à l’aide de la fonction "Initialisation".
Avertissements La fonction "Test de réception" n’entraîne pas l’émission d’avertisse-ments.
Capacité de réception Le paramètre "capacité de réception" indique le nombre de paquets dedonnées stockés en mémoire intermédiaire et pouvant être lus par lafonction "Réception".
Fonction "Test de réception" (OB 205)
Programmation de la CPU 94810 - 52 C79000-G8577-C848-04
10.9 Applications
Ce paragraphe explique, à l’appui d’exemples, comment programmerla communication multiprocesseur.
NotaLorsque vous utilisez les blocs fonctionnels suivants et des OB detraitement d’alarmes (par exemple, OB 2), veillez à sauvegarder lesmémentos banalisés au début du traitement de l’interruption et à lesrestaurer à la fin.Cela s’applique aussi lorsque l’interruption aux limites de blocsest activée, étant donné que l’appel d’un bloc d’organisation defonction spéciale constitue une limite de bloc.
10.9.1Appel des OB de fonctionsspéciales par des blocs fon-ctionnels
Les cinq blocs fonctionnels décrits ci-après (FB 200 et FB 202 àFB 205) contiennent l’appel de l’OB de fonction spéciale correspon-dant pour la communication multiprocesseur (OB 200 et OB 202 àOB 205). Les numéros des blocs fonctionnels ont été choisis librement et peu-vent être modifiés. Les paramètres des OB de fonctions spéciales sonttransmis comme paramètres effectifs lors de l’appel des blocs fon-ctionnels. Bien que l’appel direct des OB de fonctions spéciales rédui-se le temps d’exécution, il est plus difficilement lisible du fait del’absence de paramètres formels.
Numéro de FB Nom de FB Fonction
FB 200
FB 202
FB 203
FB 204
FB 205
INITIAL
SENDEN
SEND-TST
EMPFANG
EMPF-TST
Initialisation
Emission d’un paquet de données
Test de capacité d’émission
Réception d’un paquet de données
Test de capacité de réception
Les blocs fonctionnels utilisent la zone de mémentos comprise entreMB 246 et MB 255 au maximum comme champ de paramètres pourles OB de fonctions spéciales.
La signification exacte des paramètres d’entrée et de sortie est donnéedans la description des OB de fonctions spéciales utilisés.
Applications
Programmation de la CPU 948C79000-G8577-C848-04 10 - 53
NotaLes exemples donnés ci-après sont des applications exécutablesque vous pouvez reprendre dans votre programme.
Programmation des blocsfonctionnels
FB 200 : Initialisation des liaisons
FB 200
INITIAL
(1) AUMA INIK (5)
(2) ANZC GKAP (6)
(3) TNZU
(4) ANFZ
Nom duparamètre
Signification Type Format Champ deparamètres
AUMA
ANZC
TNZU
ANFZ
INIK
GKAP
Automatique/manuel
Nombre de CPU
Type (octet de poids fort) et numéro (octet de poids faible) du bloc de données contenant la liste d’assignation
Adresse de début de la liste d’assignation
Conflit d’initialisation
Capacité totale
E
E
E
E
A
A
BY
BY
W
W
BY
BY
MB 246
MB 247
MW 248
MW 250
MB 252
MB 253
Suite à la page suivante
Applications
Programmation de la CPU 94810 - 54 C79000-G8577-C848-04
Suite du FB 200
FB 200 LON=45SEGMENT 1 0000NOM :INITIALDESIG :AUMA E/A/D/B/T/Z: E BI/BY/W/D: BYDESIG :ANZC E/A/D/B/T/Z: E BI/BY/W/D: BYDESIG :TNZU E/A/D/B/T/Z: E BI/BY/W/D: WDESIG :ANFZ E/A/D/B/T/Z: E BI/BY/W/D: WDESIG :INIK E/A/D/B/T/Z: A BI/BY/W/D: BYDESIG :GKAP E/A/D/B/T/Z: A BI/BY/W/D: BY
0017 :L =AUMA Automatique/manuel0018 :T MB 2460019 :L =ANZC Nombre de CPU001A :T MB 247001B :L =TNZU Type de DB, numéro de DB001C :T MW 248001D :L =ANFZ Adresse de début de la liste d’assignation001E :T MW 250001F :0020 :L KB 246 OB de fonction spéciale :
0021 : SPA OB 200 "Initialisation"0022 :0023 :L MB 252 Conflit d’initialisation0024 :T =INIK0025 :L MB 253 Capacité totale0026 :T =GKAP0027 :BE
Applications
Programmation de la CPU 948C79000-G8577-C848-04 10 - 55
FB 202 : Emission d’un paquet de données
FB 202
SENDEN
(1) ECPU FEWA (4)
(2) TNDB SKAP (5)
(3) BLNR
Nom du paramètre
Signification Type Format Champ de paramètres
ECPU
TNDB
BLNR
FEWA
SKAP
CPU réceptrice
Type (octet de poids fort) et numéro(octet de poids faible) du bloc dedonnées source
Numéro de paquet
Erreur/avertissement
Capacité d’émission
E
E
E
A
A
BY
W
BY
BY
BY
MB 246
MB 247
MW 249
MW 250
MB 251
FB 202 LON=40
SEGMENT 1 0000NOM :SENDEN DESIG:ECPU E/A/D/B/T/Z: E BI/BY/W/D: BYDESIG:TNDB E/A/D/B/T/Z: E BI/BY/W/D: WDESIG:BLNR E/A/D/B/T/Z: E BI/BY/W/D: BYDESIG:FEWA E/A/D/B/T/Z: A BI/BY/W/D: BYDESIG:SKAP E/A/D/B/T/Z: A BI/BY/W/D: BY
0014 :L =ECPU CPU réceptrice0015 :T MB 2460016 :L =TNDB Type de DB, numéro de DB0017 :T MW 2470018 :L =BLNR Numéro de paquet0019 :T MB 249001A :001B :L KB 246 OB de fonction spéciale :
001C : SPA OB 202 "Emission d’un paquet de données"001D :001E :L MB 250 Erreur ou avertissement001F :T =FEWA0020 :L MB 251 Capacité d’émission
Applications
Programmation de la CPU 94810 - 56 C79000-G8577-C848-04
FB 203 : Test de capacité d’émission
FB 203
SEND-TST
(1) ECPU FEHL (2)
SKAP (3)
Nom duparamètre
Signification Type Format Champ deparamètres
ECPU
FEHL
SKAP
CPU réceptrice
Erreur
Capacité d’émission
E
A
A
BY
BY
BY
MB 246
MB 248
MB 249
FB 203 LON=30
SEGMENT 1 0000NOM :SEND-TSTDESIG:ECPU E/A/D/B/T/Z: E BI/BY/W/D: BYDESIG:FEHL E/A/D/B/T/Z: A BI/BY/W/D: BYDESIG:SKAP E/A/D/B/T/Z: A BI/BY/W/D: BY
000E :L =ECPU CPU réceptrice000F :T MB 2460010 :0011 :L KB 246 OB de fonction spéciale :0012 :SPA OB 203 "Test de capacité d’émission"0013 :0014 :L MB 248 Erreur0015 :T =FEHL0016 :L MB 249 Capacité d’émission0017 :T =SKAP0018 :BE
Applications
Programmation de la CPU 948C79000-G8577-C848-04 10 - 57
FB 204 : Réception d’un paquet de données
FB 204
EMPFANG
(1) SCPU FEWA (2)
EKAP (3)
TNDB (4)
ANFA (5)
ENDA (6)
Nom du paramètre
Signification Type Format Champ deparamètres
SCPU
FEWA
EKAP
TNDB
ANFA
ENDA
CPU émettrice
Erreur/avertissement
Capacité de réception
Type (octet de poids fort) et numéro (octet de poids faible) du bloc de données destination
Adresse du premier mot de données reçu (adresse de début)
Adresse du dernier mot de données reçu (adresse de fin)
E
A
A
A
A
A
BY
BY
BY
W
W
W
MB 246
MB 248
MB 249
MW 250
MW 252
MW 254
Suite à la page suivante
Applications
Programmation de la CPU 94810 - 58 C79000-G8577-C848-04
Suite du FB 204
FB 204 LON=45
SEGMENT 1 0000NOM : EMPFANGDESIG:SCPU E/A/D/B/T/Z: E BI/BY/W/D: BYDESIG:FEWA E/A/D/B/T/Z: A BI/BY/W/D: BYDESIG:EKAP E/A/D/B/T/Z: A BI/BY/W/D: BYDESIG:TNDB E/A/D/B/T/Z: A BI/BY/W/D: WDESIG:ANFA E/A/D/B/T/Z: A BI/BY/W/D: WDESIG:ENDA E/A/D/B/T/Z: A BI/BY/W/D: W
0017 :L =SCPU CPU émettrice0018 :T MB 2460019 :001A :L KB 246 OB de fonction spéciale :001B :SPA OB 204 "Réception d’un paquet de données"001C :001D :L MB 248 Erreur ou avertissement001E :T =FEWA001F :L MB 249 Capacité de réception0020 :T =EKAP0021 :L MW 250 Type de DB, numéro de DB0022 :T =TNDB0023 :L MW 252 Adresse de début0024 :T =ANFA0025 :L MW 254 Adresse de fin0026 :T =ENDA0027 :BE
FB 205 : Test de capacité de réception
FB 205
EMPF-TST
(1) SCPU FEHL (2)
EKAP (3)
Nom duparamètre
Signification Type Format Champ deparamètres
SCPU
FEHL
EKAP
CPU émettrice
Erreur
Capacité de réception
E
A
A
BY
BY
BY
MB 246
MB 248
MB 249
Suite à la page suivante
Applications
Programmation de la CPU 948C79000-G8577-C848-04 10 - 59
10.9.2Transfert de blocsde données
Dans l’exemple, le bloc fonctionnel UEBT-DAT (FB 110) transfèreun nombre paramétrable d’ensembles ou paquets de données apparten-ant à un bloc de données d’une CPU vers le bloc de données de mêmetype et de même numéro d’une autre CPU.Le numéro de FB (FB 110) a été choisi arbitrairement et peut être mo-difié.
Le présent paragraphe décrit d’abord la programmation du FB 110,puis son application.
Programmation du FB 110
Suite du FB 205
FB 205 LON=30
SEGMENT 1 0000NOM : EMPF-TSTDESIG:SCPU E/A/D/B/T/Z: E BI/BY/W/D: BYDESIG:FEHL E/A/D/B/T/Z: A BI/BY/W/D: BYDESIG:EKAP E/A/D/B/T/Z: A BI/BY/W/D: BY
000E :L =SCPU CPU émettrice000F :T MB 2460010 :0011 :L KB 246 OB de fonction spéciale :0012 :SPA OB 205 "Test de capacité de réception"0013 :0014 :L MB 248 Erreur0015 :T =FEHL0016 :L MB 249 Capacité de réception0017 :T =EKAP0018 :BE
FB 110 : Transfert d’un bloc de données
Enoncé du problème
La zone de données à transférer est déterminée par les paramètres d’entréeERSB (numéro du premier paquet de données à transférer) et ANZB (nombre depaquets de données à transférer). Un paquet de données comprend normalement32 mots de données. Suivant la longueur du bloc de données, le dernier paquetde données transféré contient éventuellement moins de 32 mots de données.
Le transfert est lancé par un front positif sur l’entrée de démarrage STAR.Si, après transfert, le paramètre de sortie REST est égal à zéro, celasignifie que le bloc fonctionnel UEBT-DAT a pu transférer tous les paquets dedonnées (suivant le paramètre ANZB).
Suite à la page suivante
Applications
Programmation de la CPU 94810 - 60 C79000-G8577-C848-04
Suite 1 du FB 110
Si le paramètre de sortie REST contient une valeur supérieure à 0, il fautencore appeler le bloc UEBT-DAT, par exemple au cycle suivant. Dans ce cas,le programme utilisateur ne peut modifier l’ensemble des paramètres que si,à l’appel suivant, le paramètre REST est nul, ce qui signifie que la zonede données a pu être transférée complètement.
Le bloc fonctionnel UEBT-DAT peut être appelé plusieurs fois avec desparamètres différents. Des zones de données différentes sont ainsitransférées simultanément (imbrication). De plus, il est possibled’utiliser "directement" les blocs d’organisation de fonctions spécialesOB 202 à OB 205 pour la communication multiprocesseur, ce qui est fait dansl’exemple d’application.
Si la fonction d’émission (OB 202) n’a pas pu être exécutée correctement àl’intérieur du bloc fonctionnel UEBT-DAT, le numéro d’erreur correspondant esttransmis dans le paramètre de sortie FEHL, le résultat logique RLG est mis à"1" et le paramètre de sortie REST à "0".
Le bloc fonctionnel UEBT-DAT utilise la zone des mémentos MB 246 à MB 251comme zone de mémentos banalisés. Par le mécanisme des paramètres formelset effectifs, des emplacements de mémoire sont attribués à toutes lesautres variables dont la valeur reste significative jusqu’à ce que leparamètre de sortie REST soit nul, après plusieurs appels du blocfonctionnel UEBT-DAT. Cette procédure est nécessaire pour transférersimultanément plusieurs blocs de données.
Réalisation
FB 110
UEBT-DAT
(1) STAR FEHL (6)
(2) ECPU REST (7)
(3) TNDB AKBN (8)
(4) ANZB FLAM (9)
(5) ERSB
Suite à la page suivante
Applications
Programmation de la CPU 948C79000-G8577-C848-04 10 - 61
Suite 2 du FB 110
Nom du paramètre
Signification Type Format
STAR
ECPU
TNDB
ANZB
ERSB
FEHL
REST
AKBN 1
FLAM 1
Démarrer le transfert du bloc de données sur front positif
CPU réceptrice
Type (octet de poids fort) et numéro (octet de poids faible) du bloc de données à transférer
Nombre de paquets de données à transférer
Numéro du premier paquet à émettre
Erreur
Nombre de paquets restant à transférer
Numéro du paquet de données en cours
Mémentos de front
E
E
E
E
E
A
A
A
A
BI
BY
W
BY
BY
BY
BY
BY
BI
1 Mémentos intermédiaires internes qui ne sont pas évalués.
FB 110 LON=89
SEGMENT 1 0000NOM :UEBT-DATDESIG:STAR E/A/D/B/T/Z: E BI/BY/W/D: BIDESIG:ECPU E/A/D/B/T/Z: E BI/BY/W/D: BYDESIG:TNDB E/A/D/B/T/Z: E BI/BY/W/D: WDESIG:ANZB E/A/D/B/T/Z: E BI/BY/W/D: BYDESIG:ERSB E/A/D/B/T/Z: E BI/BY/W/D: BYDESIG:FEHL E/A/D/B/T/Z: A BI/BY/W/D: BYDESIG:REST E/A/D/B/T/Z: A BI/BY/W/D: BYDESIG:AKBN E/A/D/B/T/Z: A BI/BY/W/D: BYDESIG:FLAM E/A/D/B/T/Z: A BI/BY/W/D: BI
0020 :L =ECPU Paramétrage du champ de para-0021 :T MB 246 mètres pour OB 2020022 :L =TNDB0023 :T MW 2470024 :
Suite à la page suivante
Applications
Programmation de la CPU 94810 - 62 C79000-G8577-C848-04
Suite 3 du FB 110
0025 :L =REST Emission préalable éventuelle0026 :L KB 0 de paquets encore présents0027 :><F0028 :SPB =UEBT0029 :002A :UN =STAR Front positif sur l’entrée START002B :RB =FLAM002C :ON =STAR002D :O =FLAM002E :SPB =GUT002F :S =FLAM0030 :0031 :L =ANZB Initialisation des mémentos0032 :T =REST globaux après un front positif0033 :L =ERSB sur l’entrée START0034 :T =AKBN0035 :0036 :L =REST Tant que REST ><0, 0038 SCHL:L KF+0 poursuivre l’émission de paquets0039 :!=F de données003A :SPB =GUT003B UEBT:L =AKBN003C :T MB 249003D :L KB 246 OB de fonction spéciale :003E :SPA OB 202 "Emission d’un paquet de données"003F :L MB 2500040 :SPM =FEHL Arrêt sur erreur0041 :SPP =GUT Arrêt si capacité d’émission nulle0042 :L =AKBN Incrémenter le numéro de paquet0043 :I 10044 :T =AKBN0045 :L =REST Décrémenter le nombre de0046 :D 1 paquets restants0047 :T =REST0048 :SPA =SCHL 0049 : 004A GUT :U M 0.0 Fin de programme sans erreur004B :UN M 0.0004C :L KB 0 RLG = 0, FEHL = 0004D :T =FEHL004E :BEA004F :0050 FEHL:T =FEHL Fin de programme avec erreur0051 :L KB 00052 :T =REST RLG = 1, FEHL contient le numéro
: d’erreur0053 :BE
Applications
Programmation de la CPU 948C79000-G8577-C848-04 10 - 63
Application du FB 110
Application du FB 110 pour S5-155U
Enoncé du problème
Dans le programme cyclique, la CPU 1 doit émettre les blocs de données DB 3(paquets de données 2 à 5) et DB 4 (paquets de données 1 à 3) vers la CPU 2.La fonction de réception (OB 204) doit également être appelée dans leprogramme cyclique de la CPU 2.
Réalisation
Fonction CPU 1 CPU 2
appelée dans : appelée dans :
Initialisation (OB 200)
Organisation de l’émission (FB 1)
Organisation de la réception (FB 2)
OB 20
OB 1
–
–
–
OB 1
existe : existe :
DB d’émission
DB de réception
DB 3, DB 4
–
–
DB 3, DB 4
Le programme utilisateur dans le bloc fonctionnel FB 1 de la CPU 1 contientdeux appels du bloc fonctionnel UEBT-DAT. Les jeux de paramètres associés àchacun de ces appels sont différents.La transmission du premier bloc de données DB 3 commence après un frontpositif sur l’entrée 2.0. Un front positif sur l’entrée 2.1 débute latransmission du deuxième bloc de données DB 4.
FB 1 LON=yy
SEGMENT 1 0000NOM :S-ORG0000 :L KB 2 Emettre vers la CPU 2 ..0001 :T MB 00002 :L KY 1,3 .. du bloc de données DB 30003 :T MW 10004 :L KB 4 .. 4 paquets de données0005 :T MB 30006 :L KB 2 .. à partir du paquet de données 20007 :T MB 40008 :
Suite à la page suivante
Applications
Programmation de la CPU 94810 - 64 C79000-G8577-C848-04
Suite 1 de l’exemple d’application
0009 :SPA FB 110000A NOM :UEBT-DAT000B STAR : E 2.0000C ECPU : MB 0000D TNDB : MW 1000E ANZB : MB 3000F ERSB : MB 40010 FEHL : MB 50011 REST : MB 60012 AKBN : MB 70013 FLAM : M 8.00014 :0015 :0016 :SPB =HALT Arrêt après erreur0017 :0018 :L KB 2 Emettre vers la CPU 2 ..0019 :T MB 10001A :L KY 1,4 .. du bloc de données DB 4001B :T MW 11001C :L KB 3 .. 3 paquets de données001D :T MB 13001E :L KB 1 .. à partir du paquet de données 1001F :T MB 140020 :0021 :SPA FB 1100023 NOM :UEBT-DAT0024 STAR : E 2.10025 ECPU : MB 100026 TNDB : MW 110027 ANZB : MB 130028 ERSB : MB 140029 FEHL : MB 5002A REST : MB16002B AKBN : MB17002C FLAM : M 8.1002D :002E :002F :SPB =HALT Arrêt après erreur0030 :BEA0031 :0032 HALT :0033 : Ici se produit le traitement de0034 : l’erreur (par exemple, arrêt, 0035 : impression du message, ...).0036 :
00xx :BE
Suite à la page suivante
Applications
Programmation de la CPU 948C79000-G8577-C848-04 10 - 65
10.9.3Extension de la zone desmémentos de couplage
Description du problème Dans l’automate programmable S5-135U/155U, il est possibled’inscrire dans le bloc de données DB 1 chacun des 256 octets demémentos d’une CPU et d’obtenir ainsi des mémentos de couplaged’entrée ou de sortie. Cela réduit cependant le nombre d’octets demémentos utilisables "normalement". De plus, le transfert d’un enregi-strement de données de plusieurs octets nécessite des mesuressupplémentaires (sémaphores ou paramétrage du DX 0 pour le trans-fert par blocs des mémentos de couplage) afin d’éviter que la CPUréceptrice n’exploite un enregistrement de données qui n’a été trans-féré que partiellement.
Suite 2 de l’exemple d’application
La fonction de réception (OB 204) appelée par le FB 2 dans la CPU 2 transfèrechaque paquet de données émis dans le bloc de données correspondant. Letransfert complet d’un bloc de données peut se répartir sur plusieurs cycles.
FB 2 LON=yy
SEGMENT 1 0000NOM :E-ORG0000 :L KB 1 Recevoir des données de la CPU 10001 :T MB 2460002 :0003 SCHL :L KB 246 OB de fonction spéciale :0004 :SPA OB 204 "Réception"0005 :SPM =FEHL Arrêt sur erreur0006 :L MB 249 La fonction "Réception" est appelée 0007 :L KB 0 jusqu’à ce que la mémoire inter- 0008 :><F médiaire ne contienne plus de pa- 0009 :SPB =SCHL quets de données ; la capacité de000A : réception est alors nulle.000B :BEA000C FEHL :000D : Ici se produit le traitement de000E : l’erreur (par exemple, arrêt, 000F : impression du message, ...).
00xx :BE
Applications
Programmation de la CPU 94810 - 66 C79000-G8577-C848-04
Solution Dans un bloc de données DB ou DX, des mots de données consécu-tifs, à partir du DW 0, sont définis comme des "mots de données decouplage". Un bloc de données est attribué à chaque liaison de sortequ’une liaison est totalement indépendante des autres.
Le programme cyclique débute par la réception des mots de donnéesde couplage au moyen des blocs d’organisation pour la communicati-on multiprocesseur. Le programme cyclique "proprement dit" est en-suite exécuté : il exploite les données reçues et génère les données àémettre. Ces dernières sont émises à la fin du cycle à l’aide des blocsd’organisation de fonctions spéciales pour la communication multi-processeur. Elles peuvent ainsi être reçues par les autres CPU au débutde l’exécution de leur programme cyclique.
Les règles suivantes sont applicables pour les 12 liaisons possibles, in-dépendamment des autres liaisons :
•• La CPU émettrice n’est activée que si la CPU réceptrice a retirétoutes les "anciennes données" dans la mémoire intermédiaire ducoordinateur 923C.
•• La CPU réceptrice n’est activée que si la CPU émettrice a terminéd’inscrire toutes les "nouvelles données" dans la mémoire inter-médiaire du coordinateur 923C.
La CPU réceptrice dispose donc soit d’un nouvel enregistrement dedonnées complet, soit de l’ancien enregistrement de données in-changé. Les "anciennes" et les "nouvelles" données ne sont pasmélangées.
Structure des données L’ensemble des mots de données (appelé par la suite "zone de mots dedonnées") qui doit être transféré d’une CPU à l’autre est décrit dans laliste des liaisons (voir tableau ci-après). Cette liste de liaisons est défi-nie dans un bloc de données supplémentaire qui doit être présent danschaque CPU concernée.
Les zones de mots de données commencent toujours par le mot dedonnées DW 0 ; leur longueur est indiquée en paquets. Notez que :
•• Un paquet complet comprend 32 mots de données.
•• Si le dernier paquet d’un bloc de données d’émission est tronqué,c’est-à-dire s’il comprend moins de 32 mots de données, le nom-bre de mots de données transmis sera moindre.
•• Si un bloc de données d’émission est plus long que le nombre depaquets indiqué dans la liste de liaisons, les mots de données ensurnombre peuvent être utilisés par la CPU émettrice elle-même.
•• Si le bloc de données de réception est plus long que la zone demots de données reçue, les mots de données en surnombre peuventêtre utilisés par la CPU réceptrice elle-même.
Applications
Programmation de la CPU 948C79000-G8577-C848-04 10 - 67
Structure de la liste desliaisons
Liste partielle 1 Liste partielle 2
Liaison Type de DB
Numéro de DB
Nombrede paquets
de la CPU 1 vers la ...
DW 0 S 1 DW 16 S 1
... CPU 2 DW 1 ... ... DW 17 2 ...
... CPU 3 DW 2 ... ... DW 18 3 ...
...CPU 4 DW 3 ... ... DW 19 4 ...
de la CPU 2vers la ...
DW 4 S 2 DW 20 S 2
... CPU 1 DW 5 ... ... DW 21 1 ...
... CPU 3 DW 6 1 1 10 1 DW 22 3 2 1
... CPU 4 DW 7 ... ... DW 23 4 ...
de la CPU 3vers la ...
DW 8 S 3 DW 24 S 3
... CPU 1 DW 9 ... ... DW 25 1 ...
... CPU 2 DW 10 ... ... DW 26 2 ...
... CPU 4 DW 11 ... ... DW 27 4 ...
de la CPU 4vers la ...
DW 12 S 4 DW 28 S 4
... CPU 1 DW 13 ... ... DW 29 1 ...
... CPU 2 DW 14 ... ... DW 30 2 ...
... CPU 3 DW 15 ... ... DW 31 3 ...
2 15 2 0 2 15 2 0
1 Voir l’exemple à la page suivante
Tableau 10-8 Liste des liaisons pour l’extension de la zone des mémentos de couplage
Applications
Programmation de la CPU 94810 - 68 C79000-G8577-C848-04
La liste de liaisons est constituée de deux listes partielles structuréesde manière semblable et comprenant chacune 16 mots de données.Pour chacune des quatre CPU émettrices (S1, S2, S3, S4), les liaisonssont déterminées par les trois rubriques suivantes :
•• Nombre de paquets
Le nombre de paquets détermine la longueur (nombre de mots dedonnées) de la zone de mots de données à transférer. Des liaisonsinexistantes ou non utilisées sont caractérisées par un nombre depaquets égal à 0 ; il en est alors de même pour "type de DB" et"numéro de DB".
•• Type de DB
Type du bloc de données qui contient la zone de mots de donnéesà émettre
•• Numéro de DB
Numéro du bloc de données qui contient la zone de mots dedonnées à émettre
Ces rubriques peuvent être lues et complétées ligne par ligne dans lareprésentation ci-dessus. Pour transférer, par exemple, les deux pre-miers paquets de données du bloc de données DB 10 de la CPU 2(S 2) vers la CPU 3, les rubriques suivantes sont nécessaires :
la CPU 2 (S 2) émet ..
La liste partielle 2 est identique à la liste d’assignation utilisée pour lafonction d’initialisation (OB 200) en mode manuel. A l’intérieur dubloc de données, la liste partielle 1 doit occuper les mots de données 0à 15 et la liste partielle 2 les mots de données 16 à 31. Les rubriquesen caractères gras ne peuvent pas être modifiées.
DW 22 3 2 DW 6 1 10
..vers la CPU 3 2 paquets de données du DB 10
Applications
Programmation de la CPU 948C79000-G8577-C848-04 10 - 69
Structure du prog ramme En appelant la fonction d’initialisation (OB 200), une CPU réserve audémarrage sur le coordinateur autant de blocs de mémoire par liaisonqu’il y a de paquets de données à transférer sur cette liaison.
Les deux blocs fonctionnels suivants sont utilisés sur chaque CPUpour l’émission et la réception des zones de mots de données :
Numéro de FB
Nom Fonction
FB 100
FB 101
SEND-DAT
EMPF-DAT
Emission de zones de mots de données vers les autres CPU
Réception de zones de mots de données venant des autres CPU
Les numéros des blocs fonctionnels sont choisis arbitrairement et peuvent être modifiés.
Les blocs fonctionnels SEND-DAT et EMPF-DAT lisent dans la listede liaisons quelles zones de mots de données issues de quels blocs dedonnées doivent être émises ou reçues. L’émission ou la réception por-tent toujours sur la totalité de la zone de mots de données. Si celan’est pas possible en raison d’une capacité d’émission ou de réceptioninsuffisante, l’émission ou la réception sont abandonnées.
NotaCet exemple – extension des mémentos de couplage à l’aide desblocs fonctionnels SEND-DAT et EMPF-DAT – ne peut fonc-tionner correctement que si les OB de fonctions spéciales pourcommunication multiprocesseur OB 202 à OB 205 ne sontappelés dans aucune des CPU.
Les blocs fonctionnels SEND-DAT et EMPF-DAT contiennentles blocs d’organisation de fonctions spéciales OB 202 à OB 205pour communication multiprocesseur. L’appel de ces blocsd’organisation à l’extérieur de SEND-DAT et EMPF-DAT n’estpas autorisé.
Applications
Programmation de la CPU 94810 - 70 C79000-G8577-C848-04
OB 20
SPA OB 200
BE
Programme ut i l isateurcycl ique augmenté des appelsdes blocs fonct ionnelsEMPF-DAT et SEND-DAT
OB 1
ASPA
DB xxxFB 101
ASPA
DB xxxFB 100
BE
FB 100
FB 101
Bloc fonct ionnel : SEND-DATEmission de blocs de données
Bloc fonct ionnel : EMF-DATRécept ion de blocs de données
Bloc de données contenantla l is te des l ia isons
Trois blocs d´entrée et tro isblocs de sort ie au maximum
DB xxx
BE
BE
KC = S1KY = 1,. . . exploi té
par . . .
DB yyyou/etDX zzz
.
.
.
.
.
.
.
.
.
.
.
.
L´OB 200 ne peutêtre appelé quedans une CPU.
1
1
OB de démarrage pourl ´organisat ion de la mémoireintermédiai re dans lecoordinateur 923C
Figure 10-6 Vue d’ensemble des blocs nécessaires dans chaque CPU
Applications
Programmation de la CPU 948C79000-G8577-C848-04 10 - 71
Programmation des blocs fonctionnels
FB 100 : Emission de zones de mots de données
L’appel du FB 100 doit être précédé de l’ouverture du bloc de donnéescontenant la liste de liaisons. Pour traiter les informations contenuesdans la liste de liaisons, le bloc fonctionnel SEND-DAT a besoin du numérode la CPU sur laquelle il est appelé.Lorsque la fonction d’émission (OB 202) n’est pas traitée correctement dansle bloc fonctionnel, le numéro d’erreur ou d’avertissement est porté dansle paramètre de sortie FEWA et le résultat logique (RLG) est mis à 1.FEWA contient par ailleurs la valeur 16 (bit 4 = 1) lorsque la valeur duparamètre d’entrée CPUN (numéro de CPU) est incorrecte.Le bloc fonctionnel SEND-DAT utilise les octets de mémentos MB 239 à MB 251comme zone de mémentos banalisés.
FB 100
SEND-DAT
(1) CPUN FEWA (2)
Nom du paramètre
Signification Type Format
CPUN
FEWA
Numéro de la CPU traitant l’appel de FB 100Les valeurs 1 à 4 sont autorisées.
Erreur ou avertissement (voir fonction d’émission OB 202)
D
A
KF
BY
FB 100 LON=90
SEGMENT 1 0000NOM :SEND-DATDESIG:CPUN E/A/D/B/T/Z: D KM/KH/KY/KC/KF/KT/KZ/KG:KFDESIG:FEWA E/A/D/B/T/Z: A BI/BY/W/D: BY
000B :LW =CPUN CPUN = CPUN - 1000C :L KB 1 Erreur si :000D :-F000E :SPM =FEWA Numéro de CPU < 1000F :L KB 30010 :>F0011 :SPB =FEWA Numéro de CPU > 40012 :TAK
Suite à la page suivante
Applications
Programmation de la CPU 94810 - 72 C79000-G8577-C848-04
Suite 1 du FB 100
0013 :0014 :SLW 2 CPUN = CPUN * 40015 :T MB 245 Adresse de base0016 :0017 :L KB 10018 :T MB 244 Compteur de liaisons0019 :001A SCHL:L MB 245 Adresse de base001B :L MB 244 + compteur001C :+F001D :T MW 240001E :ADD BF+16 + décalage001F :T MW 2420020 :0021 :B MW 2420022 :L DR 0 Nombre de blocs de mémoire0023 :T MB 239 réservés nul ?0024 :L KB 00025 :!=F0026 :SPB =LEER0027 :0028 :B MW 2420029 :L DL 0 Numéro de la CPU réceptrice002A :T MB 246002B :L KB 246 OB de fonction spéciale :002C :SPA OB 203 "Test de capacité d’émission"002D :L MB 248 Abandon si erreur002E :SPB =OBFE002F :0030 :L MB 249 Capacité d’émission >< nombre de0031 :L MB 239 blocs de mémoire réservés ?0032 :><F0033 :SPB =LEER0034 :0035 :L KB 0 Compteur de paquets0036 :T MB 2490037 :0038 :B MW 2400039 :L DW 0 Type et numéro du DB source003A :T MW 247003B :003C UEBT:L KB 246 OB de fonction spéciale :003D :SPA OB 202 " Emission d’un paquet de données"003E :L MB 250 Arrêt sur erreur ou avertissement003F :SPB =OBFE0040 :0041 :L MB 249 N° de paquet = n° de paquet + 10042 :I 10043 :T MB 249 Tous les paquets transférés ?0044 :L MB 2390045 :<F0046 :SPB =UEBT0047 :
Suite à la page suivante
Applications
Programmation de la CPU 948C79000-G8577-C848-04 10 - 73
Suite 2 du FB 100
0048 LEER:L MB 244 Incrémenter le compteur de0049 :I 1 liaisons004A :T MB 244004B :L KB 4 Les 3 liaisons ont-elles été004C :<F traitées ?004D :SPM =SCHL004E :L KB 0 Fin de programme sans erreur :004F :T =FEWA RLG = 0, FEWA = 00050 :BEA0051 :0052 FEWA:L KB 16 Fin de programme sur erreur :0053 OBFE:T =FEWA RLG = 1, FEWA contient le numéro0054 :BE d’erreur ou d’avertissement
FB 101 : Réception de zones de mots de données
L’appel du FB 101 doit être précédé de l’ouverture du bloc de donnéescontenant la liste de liaisons. Pour traiter les informations contenuesdans la liste de liaisons, le bloc fonctionnel EMPF-DAT a besoin du numérode la CPU sur laquelle il est appelé.
Lorsque la fonction de réception (OB 204) n’est pas traitée correctement dansle bloc fonctionnel, le numéro d’erreur ou d’avertissement est transmis auparamètre de sortie FEWA et le résultat logique (RLG) est mis à 1. FEWAcontient par ailleurs la valeur 16 (bit 4 = 1) lorsque la valeur du paramètred’entrée CPUN (numéro de CPU) est incorrecte.
Le bloc fonctionnel EMPF-DAT utilise les octets de mémentos MB 242 à MB 255comme zone de mémentos banalisés.
FB 101
EMPF-DAT
(1) CPUN FEWA (2)
Nom du paramètre
Signification Type Format
CPUN
FEWA
Numéro de la CPU sur laquelle FB 101 est appeléLes valeurs 1 à 4 sont autorisées.
Erreur ou avertissement (voir fonction de réception OB 204)
D
A
KF
BY
Suite à la page suivante
Applications
Programmation de la CPU 94810 - 74 C79000-G8577-C848-04
Suite 1 du FB 101
FB 101 LON=88
SEGMENT 1 0000NOM :EMPF-DATDESIG :CPUN E/A/D/B/T/Z: D KM/KH/KY/KC/KF/KT/KZ/KG: KFDESIG :FEWA E/A/D/B/T/Z: A BI/BY/W/D: BY
000B :LW =CPUN Erreur si :000C :L KB 1000D :<F000E :SPB =FEWA Numéro de CPU < 1000F :LW =CPUN0010 :L KB 40011 :>F0012 :SPB =FEWA Numéro de CPU > 40013 :0014 :L KB 1 Compteur de liaisons0015 :T MB 2420016 :0017 :L KB 160018 :T MW 244 Pointeur sur liste partielle 20019 :001A SUCH:L MW 244 Parcourir la liste partielle 2001B :I 1 jusqu’à trouver la rubrique001C :T MW 244 correspondant à la CPU récep-001D :B MW 244 trice de numéro CPUN001E :L DL 0001F :LW =CPUN0020 :><F0021 :SPB =SUCH0022 :0023 :B MW 2440024 :L DR 0 Nombre de blocs de mémoire0025 :T MB 243 réservés nul ?0026 :L KB 00027 :!=F0028 :SPB =LEER0029 :002A :L MW 244 Déterminer la CPU émettrice002B :L KM 00000000 00001100 à l’aide du pointeur de liste002D :UW partielle 2002E :SRW2002F :I 10030 :T MB 2460031 :0032 :L KB 246 OB de fonction spéciale :0033 :SPA OB 205 "Test de capacité de réception" 0034 :L MB 2480035 :SPB = OBFE Abandon si erreur0036 :
Suite à la page suivante
Applications
Programmation de la CPU 948C79000-G8577-C848-04 10 - 75
Suite 2 du FB 101
0037 :L MB 249 Capacité de réception = nombre de 0038 :L MB 243 blocs de mémoire réservés ?0039 :><F003A :SPB =LEER003B :003C EMPF:L KB 246 OB de fonction spéciale :003D :SPA OB 204 "Réception d’un paquet de données"003E :L MB 248003F :SPM =OBFE Arrêt sur erreur ou avertissement0040 :L MB 249 Si capacité de réception = 0,0041 :L KB 0 traiter la liaison suivante0042 :><F0043 :SPB =EMPF0044 :0045 LEER :L MB 242 Incrémenter le compteur de0046 :I 1 liaisons0047 :T MB 2420048 :L KB 4 Toutes les liaisons ont-elles été0049 :<F traitées ?004A :SPM= SUCH004B :L KB 0 Fin de programme sans erreur :004C :T =FEWA RLG = 0, FEWA = 0004D :BEA004E :004F FEWA :L KB 16 Fin de programme sur erreur :0050 OBFE :T =FEWA RLG = 1, FEWA contient le0051 :BE numéro d’erreur ou d’avertissement
Applications
Programmation de la CPU 94810 - 76 C79000-G8577-C848-04
Exemple d’application
Application du FB 100/101 pour l’AP S5-155U
Enoncé du problème
Des données doivent être échangées entre trois CPU :
- de la CPU 1 vers la CPU 2 : bloc de données DB 3, DW 0 à DW 127 (= 4 paquets)
- de la CPU 1 vers la CPU 3 : bloc de données DX 4, DW 0 à DW 63 (= 2 paquets)
- de la CPU 2 vers les CPU 1 et CPU 3 : bloc de données DB 5, DW 0 à DW 95 (= 3 paquets)
Le bloc fonctionnel FB 1 constitue, dans les trois CPU, l’interface avec leprogramme utilisateur cyclique. La CPU 1 appelle la fonction d’initiali-sation (OB 200) lors du démarrage. La liste des liaisons se trouve dans lebloc de données DB 100.
Suite à la page suivante
DB 5, 3 paquets
DB 3,4 paquets
DB 5,3 paquets
DX 4, 2 paquets
CPU 2 CPU 3
CPU 1
Figure 10-7 Echange de données entre trois CPU
Applications
Programmation de la CPU 948C79000-G8577-C848-04 10 - 77
Suite 1 de l’exemple d’application
Réalisation
1. Chargement des blocs
Outre l’OB 1, les blocs suivants doivent être chargés dans les différentesCPU :
Fonction CPU 1 CPU 2 CPU 3
OB de démarrage
Programme utilisateurFB : SEND-DATFB : EMPF-DATListe des liaisons
DB d’entréeDB de sortie
OB 20
FB 1FB 100FB 101DB 100
DB 5DB 3 ; DX 4
—
FB 1FB 100FB 101DB 100
DB 3DB 5
—
FB 1FB 100FB 101DB 100
DB 5 ; DX 4—
2. Création de la liste des liaisons
La liste des liaisons est créée et transcrite dans le DB 100 :
DB100 LON=37FOLIO 1
– – Liste partielle 1 – –
0: KC = ’S1’; Emettre de la CPU 1 .. 1: KY = 001,003; .. le DB 3 vers la CPU 2 2: KY = 002,004; .. le DX 4 vers la CPU 3 3: KY = 000,000; 4: KC = ’S2’ ; Emettre de la CPU 2 .. 5: KY = 001,005; .. le DB 5 vers la CPU 1 6: KY = 001,005; .. le DB 5 vers la CPU 3 7: KY = 000,000; 8: KC = ’S3’; 9: KY = 000,000;10: KY = 000,000;11: KY = 000,000;12: KC = ’S4’;13: KY = 000,000;14: KY = 000,000;15: KY = 000,000;
Suite à la page suivante
Applications
Programmation de la CPU 94810 - 78 C79000-G8577-C848-04
Suite 2 de l’exemple d’application
– – Liste partielle 2 – –
16: KC = ’S1’; Emettre de la CPU 1 ..17: KY = 002,004; .. 4 paquets de données vers la CPU 218: KY = 003,002; .. 2 paquets de données vers la CPU 319: KY = 004,000;20: KC = ’S2’; Emettre de la CPU 2 ..21: KY = 001,003; .. 3 paquets de données vers la CPU 122: KY = 003,003; .. 3 paquets de données vers la CPU 323: KY = 004,000;24: KC = ’S3’;25: KY = 001,000;26: KY = 002,000;27: KY = 004,000;28: KC = ’S4’;29: KY = 001,000;30: KY = 002,000;31: KY = 003,000;
Les mots de données DW 16 à DW 31 contiennent la liste d’assignationnécessaire à la fonction d’initialisation manuelle (OB 200).
3. Programmation de l’appel de l’OB 200 dans le bloc de démarrage de l’OB 20 pour la CPU 1
L’OB 200 est appelé lors du démarrage de la CPU 1 par l’OB 20 présentéci-dessous.
OB 20 LON=yyABS
SEGMENT 10000 :L KB 2 Initialisation manuelle des pages0001 :T MB 246 de mémoire0002 :0003 :L KY 1,100 La liste d’assignation se trouve0005 :T MW 248 dans DB 100 à partir du mot de données0006 :L KF+16 DW 16.0008 :T MW 2500009 :000A :L KB 246 OB de fonction spéciale :000B :SPA OB 200 "Initialisation"000C :000D :UN M 252.5 Fin de bloc si pas de000E :BEB conflit d’initialisation000F :0010 : Ici est inséré le traitement 0011 : d’erreur en cas de conflit0012 : d’initialisation (par exemple, arrêt, 0013 : impression d’un message ...).0014 :
00xx :BE
Suite à la page suivante
Applications
Programmation de la CPU 948C79000-G8577-C848-04 10 - 79
Suite 3 de l’exemple d’application
4. Programmation des appels de blocs fonctionnels dans le FB 1
Le programme utilisateur de chaque CPU est augmenté de l’appel des blocsfonctionnels EMPF-DAT et SEND-DAT. Le bloc fonctionnel FB 1 imprimé estdestiné à la CPU 1. Pour l’exécuter sur les autres CPU, il suffit demodifier le paramètre d’entrée CPUN.
FB 1 LON=yy
SEGMENT 1 0000NOM :EM-SE00000000 :A DB100 Liste de liaisons DB 1000001 :SPA FB101 Réception des blocs de 0002 : données d’entrée0003 NOM :EMPF-DAT0004 CPUN : KF+10005 FEWA : MB00006 :SPB =FEWA Arrêt sur erreur ou avertissement0007 :0008 :0009 : Ici est inséré le traitement du pro-000A : gramme utilisateur cyclique qui lit000B : les données des blocs de données 000C : d’entrée et qui écrit les données 000D : dans les blocs de données de sortie.000E :000F :0010 :A DB 100 Liste de liaisons DB 1000011 :SPA FB100 Emission des blocs de0012 : données de sortie0012 NOM :SEND-DAT0013 CPUN : KF+10014 FEWA : MB00015 :SPB =FEWA Arrêt sur erreur ou avertissement0016 :BEA0017 :0018 FEWA : Traitement de l’erreur après arrêt 0019 : sur erreur ou avertissement (par001A : exemple, arrêt, édition d’un message001B : d’erreur sur imprimante ou écran ...)001C :
00xx :BE
Applications
Programmation de la CPU 94810 - 80 C79000-G8577-C848-04
Sommaire du chapitre 11
11.1 Présentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 - 4
11.2 Fonctions en ligne de la PG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 - 5
11.2.1 Informations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 - 611.2.2 Fonctions de mémorisation et de transfert. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 - 711.2.3 Test du programme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 - 8
11.3 Couplage PG-AP via la première ou la seconde interface série . . . . . . . . . . . . . . . . . . 11 - 16
11.4 Utilisation en parallèle de deux interfaces série vers la PG . . . . . . . . . . . . . . . . . . . . . 11 - 17
11.4.1 Mise en service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 - 1911.4.2 Fonctionnement. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 - 1911.4.3 Déroulement pour des cas précis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 - 21
11.5 Fonctions PG via le bus S5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 - 27
11.5.1 Utilisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 - 2711.5.2 Principe de fonctionnement des fonctions PG via le bus S5 . . . . . . . . . . . . . . . . . . . . 11 - 2911.5.3 Mise en service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 - 3111.5.4 Indication d’erreurs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 - 35
11Interfaces et fonctions en ligne de la PG
Programmation de la CPU 948C79000-G8577-C848-04 11 - 1
Sommaire
Programmation de la CPU 94811 - 2 C79000-G8577-C848-04
11Interfaces et fonctions en ligne de la PG
Ce chapitre vous apprend comment coupler votre console de program-mation à une CPU 948 et vous informe sur les outils disponibles dansle logiciel de la PG pour le test de votre programme STEP 5.Si vous n’utilisez que l’interface PG standard (première interface sériesur la PG), il est inutile de lire le paragraphe 11.4. Ce dernier contientdes renseignements sur les autres interfaces permettant de coupler laPG et la CPU et précise les points à respecter lors de l’utilisation desfonctions en ligne de la PG sur les deux interfaces.
Programmation de la CPU 948C79000-G8577-C848-04 11 - 3
11.1 Présentation
Les fonctions en ligne du logiciel STEP 5 vous permettent de chargeret de tester votre programme utilisateur.
A cet effet, vous devez coupler votre CPU à la console de programma-tion à l’aide d’une des interfaces suivantes :
•• couplage par l’interface série standard PG-AP,
•• couplage par la seconde interface série de la CPU 948,
•• couplage par le bus S5 avec SINEC H1.
Les fonctions en ligne de la PG s’exécutent en parallèle sur les deuxinterfaces série. En revanche, elles ne peuvent s’exécuter simul-tanément pour le couplage via SINEC H1 et pour les interfaces série.Elles vous fournissent une aide pour la mise en service et le test de vot-re programme STEP 5.
Fonction Paragraphe
Informations
Taille de la mémoire vive (RAM) interne et de la mémoire utilisa-teur libre
Etendue de la mémoire
Liste des blocs chargés Répertoire
Afficher le contenu de mots ou octets de mémoire et d’octets de périphérie
Contenu de la mémoire
Gestion de la mémoire
Effacer toute la mémoire Effacement général
Comprimer la mémoire libre Comprimer la mémoire
Gérer des blocs Transfert/suppression de blocs
Test du programme
Démarrer ou arrêter la CPU Démarrage et arrêt de l’AP
Tester une suite d’instructions dans un bloc
Etat d’un bloc (visualisationdynamique)
Tester différentes étapes du pro-gramme
Contrôle pas à pas
Visualiser l’état de variables du processus
Etat de variables (visualisationdynamique)
Affecter un signal aux sorties (à l’arrêt)
Forçage de sorties
Visualiser ou modifier des varia-bles du processus
Forçage de variables
Tableau 11-1 Fonctions pour la mise en service et le test
Présentation
Programmation de la CPU 94811 - 4 C79000-G8577-C848-04
11.2 Fonctions en ligne de la PG
NotaLa terminologie utilisée dans ce chapitre pour décrire lesfonctions en ligne peut légèrement différer de celle de votrelogiciel.En cas de doute, reportez-vous à votre manuel STEP 5.
Appel et utilisation Consultez le manuel STEP 5 pour savoir comment appeler et utiliserles différentes fonctions en ligne.
Points de contrôle Dans la CPU, les fonctions en ligne sont exécutées à des points de con-trôle définis. Il existe quatre points de contrôle différents dans laCPU 948. A chacun de ces points sont associées des fonctions en lig-ne bien précises.
Point de contrôle "Arrêt"
A ce point de contrôle ne peuvent être appelées que les fonctions enligne autorisées à l’arrêt (STOP), par exemple démarrage de l’AP, ef-facement général, compression de la mémoire à l’arrêt. Ce point decontrôle se trouve avant l’appel de l’OB 39 (bloc pour le traitementcyclique en arrêt partiel).
Point de contrôle "Cycle"
A ce point de contrôle sont appelées les fonctions en ligne exécutablesau cours du traitement cyclique du programme (par exemple, compres-sion de la mémoire en état de marche RUN, arrêt de l’AP, état − visua-lisation dynamique −). Ce point de contrôle se situe avant l’actualisati-on de la mémoire image des entrées (MIE).
Point de contrôle "Test"
Ce point marque l’appel des fonctions qui doivent être exécutées dèsque le point d’arrêt suivant, défini par l’utilisateur, est atteint (contrôlepas à pas, voir paragraphe 11.2.3).
Point de contrôle "Fonctions générales"
Ce point de contrôle existe aussi bien à l’arrêt (STOP) qu’en marche(RUN). Il est possible d’y appeler les fonctions en ligne exécutablesdans tous les états de l’automate (par exemple, transfert de blocs, ef-facement de blocs, état de variables). En STOP, ce point de contrôlese situe avant l’OB 39 (bloc pour le traitement cyclique en arrêt par-tiel) et, en fonctionnement cyclique, entre la mémoire image des en-trées (MIE déjà actualisée) et l’OB 1 (bloc gérant l’exécution cycliquedu programme en RUN).
Fonctions en ligne de la PG
Programmation de la CPU 948C79000-G8577-C848-04 11 - 5
11.2.1Informations
Etendue de la mémoire Il existe deux versions de mémoire pour la CPU 948. La fonction detest "Etendue de la mémoire" vous permet de connaître leur taille. LaPG reçoit alors les informations suivantes sur la mémoire utilisateurde la CPU (à partir de la version V6.0 du logiciel de la PG avec "dis-quette delta" pour la CPU 948) :
•• taille de la mémoire (640 Ko/1664 Ko),
•• plus grand bloc de mémoire utilisateur libre,
•• somme de tous les blocs de mémoire utilisateur libres.
A partir de la version V6.3 du logiciel PG avec la "disquette delta"pour la CPU 948, l’organisation de la mémoire est visualisée exacte-ment.Pour les versions antérieures du logiciel (par exemple, V3.0 ouMT1.0), l’organisation de la mémoire est représentée comme pour laCPU 946/947 (figure 11-1). Aussi devez-vous calculer la mémoire to-tale de la CPU 948 en faisant la somme des valeurs des différentes car-touches.
I N F O R M A T I O N A G SIMATIC S5 / OFS0C
O R G A N I S A T I O N D E L A M E M O I R E S 5 - 1 5 5 U
CARTE CTCHE TYPE ADR. DEBUT ADR. FIN LONG.
0 1
1
2
2
2
2
2
3
3
PLUS GRAND BLOC MEMOIRE RAM LIBRE
TOTAL DE TOUS BLOCS MEMOIRE RAM LIBRES
1
1
1
1
RAM
RAM
RAM
00000
10000
30000
CARTCHE NON ENFICHEE
CARTCHE NON ENFICHEE
CARTCHE NON ENFICHEE
CARTCHE NON ENFICHEE
0FFFF
2FFFF
4FFFF
64 KM
1
1 correspond à la taille de mémoire de la CPU 948-1 : 320 kilo-mots = 640 Ko
128 KM
128 KM
: 314800 MOTS
: 315664 MOTS
F1 F2 F3 F4 F5 F6LECT.ADR ORG.MEM PAR.SYS BLPILE ITPILE RETOUR
F7 F8
Figure 11-1 Visualisation de l’organisation de la mémoire à la PG
Fonctions en ligne de la PG
Programmation de la CPU 94811 - 6 C79000-G8577-C848-04
Répertoire Lorsque vous demandez l’affichage de la liste de tous les blocs pro-grammés à la PG, l’OB 0 et non les blocs de programme système sontvisualisés pour la CPU 948.
Cette fonction est autorisée en état de marche RUN, en arrêt partiel eten arrêt total. Vous pouvez également l’appeler pendant le contrôlepas à pas.
Contenu de la mémoire La fonction "Contenu de la mémoire" permet d’afficher à la PG le con-tenu des adresses de mémoire et de périphérie en hexadécimal. Toutesles adresses sont accessibles (RAM, bus S5, zones non implantées).Aucune erreur d’adressage (DAD) n’est déclenchée dans la zone de lamémoire image du processus et aucun retard d’acquittement (ACQ)n’apparaît dans la zone de périphérie.
Dans la zone organisée en octets (mémentos, mémoire image duprocessus), l’octet de poids fort est représenté par FF.
11.2.2Fonctions de mémorisationet de transfert
Effacement général Vous pouvez procéder à un effacement général de la CPU à partir dela console à l’aide de la fonction "Blocs, Effacer, Tous les blocs".L’effacement général est alors exécuté dans tous les cas (voir para-graphe 4.3.3).
Comprimer la mémoire Cette fonction décale tous les blocs valables en mémoire utilisateurvers le début de la mémoire utilisateur. Les lacunes dues à l’efface-ment ou à la correction de blocs disparaissent. Le décalage porte tou-jours sur des blocs complets. Dans le cas idéal, les nombreuses petiteslacunes sont concaténées pour former une grande lacune dans laquellepourront être chargés de nouveaux blocs.
Vous pouvez appeler cette fonction en état de marche RUN et en arrêtpartiel. En mode de marche, les blocs DB et DX de longueur supérieu-re à 512 mots de données ne sont pas décalés. A l’arrêt, tous les blocssont décalés.
Afin d’éviter la perte de données lors d’une coupure secteur pendantla compression, le décalage des blocs s’effectue par l’intermédiaired’une mémoire tampon. Si la capacité de cette mémoire tampon nesuffit pas pour un certain décalage, la compression de la mémoire estpoursuivie à la lacune suivante. De ce fait, il peut subsister des lacu-nes après une compression.
Reportez-vous également au paragraphe 8.3.
Fonctions en ligne de la PG
Programmation de la CPU 948C79000-G8577-C848-04 11 - 7
Transfert de blocs La fonction "Blocs, Transférer" permet de transférer des blocs de codeou de données nouveaux ou existant déjà dans la mémoire utilisateurde la CPU.
Si un bloc s’y trouve déjà, il est déclaré non valable au profit du nou-veau bloc transféré.
Suppression de blocs La fonction "Blocs, Effacer" déclare non valables les blocs de code etde données indiqués dans la mémoire utilisateur de la CPU.
L’emplacement auquel se trouvaient ces blocs est donc libéré et peutêtre réutilisé.
11.2.3Test du programme
Démarrage et arrêt de l’AP Ces fonctions ont le même effet que le démarrage et l’arrêt manuels.
L’appel de la fonction "Arrêter AP" en mode de marche (RUN) per-met d’amener l’automate en état STOP.
Dans les bits de commande, une croix figure sous PGSTP. En fon-ctionnement multiprocesseur, le bit de commande HALT est mis à 1dans les autres CPU.
Vous pouvez quitter l’arrêt partiel par démarrage ou redémarrage. Enconfiguration monoprocesseur, la CPU quitte l’état STOP. En configu-ration multiprocesseur, le mode de remise en route est consigné (bit decommande DEM EFF ou RED EFF à 1), mais la CPU reste encore àl’arrêt. Pour remettre l’automate en route, vous devez encore appelerla fonction "Démarrer AP". Cela correspond à la manipulation sur lecoordinateur (commutateur sur RUN).
En configuration multiprocesseur, la fonction "Démarrer AP" vouspermet d’exécuter successivement sur toutes les CPU le mode de miseen route voulu (démarrage ou redémarrage) et de ne déclencher la re-mise en route de l’automate qu’après le réglage de la dernière CPU.
Fonctions en ligne de la PG
Programmation de la CPU 94811 - 8 C79000-G8577-C848-04
Etat d’un bloc La fonction "Etat d’un bloc" (visualisation dynamique) vous permetde tester une suite d’instructions (opérations STEP 5) quelconque dansun bloc du programme utilisateur.Pour chaque instruction exécutée, la valeur en cours des opérandes, lecontenu des accumulateurs , le RLG, etc., sont affichés sur la consolede programmation. Cette fonction permet aussi de tester le paramétra-ge de blocs fonctionnels : la valeur en cours des opérandes effectifsest affichée.
Appel de la fonction etdéfinition du point d’arrêt
Après avoir appelé la fonction "Etat d’un bloc" sur votre PG, vousdéterminez le "point d’arrêt" en indiquant le type et le numéro du blocà tester (en précisant éventuellement l’imbrication et le terme re-cherché).
Si la fonction est appelée en état de marche RUN, le traitement du pro-gramme est poursuivi jusqu’à ce que l’instruction correspondant au po-int d’arrêt ait été atteinte, l’imbrication étant respectée. Lesinstructions surveillées sont ensuite exécutées jusqu’aux limites d’in-structions et les résultats sont affichés sur la console.
NotaLes résultats du traitement des instructions ne sont pas affichéspour chaque cycle.
Imbrications et interruptions Une suite d’instructions définie par un point d’arrêt est exécutée com-plètement même si, entre-temps, un autre niveau de traitement du pro-gramme (par exemple, OB d’erreur ou d’alarme) est imbriqué à unelimite d’instruction puis traité. Vous pouvez ainsi savoir si desdonnées ont été modifiées par un traitement imbriqué.
Si, dans un niveau de traitement de programme imbriqué, la CPU semet à l’arrêt à la suite d’une interruption, les données sont affichées àl’arrêt jusqu’à la dernière instruction exécutée avant l’imbrication. Lesdonnées des instructions restantes sont remplacées par des zéros(CAD est également égal à 0).
La visualisation dynamique est possible en état de marche RUN, à lamise en route (OB 20, 21 et 22) et en arrêt partiel (seulement OB 39).
Instructions B MW et B DW Si, alors que la fonction "Etat d’un bloc" est en cours, vous position-nez le curseur sur l’instruction située immédiatement après l’instructi-on B MW ou B DW, la PG affiche le message "Instruction nontraitée".
Solution :Evitez de positionner le curseur sur l’instruction consécutive à B MWou B DW pendant la visualisation dynamique d’un bloc.
Fonctions en ligne de la PG
Programmation de la CPU 948C79000-G8577-C848-04 11 - 9
"Etat d’un bloc" avec lesversions précédentes dulogiciel PG
Dans les versions précédentes du logiciel PG, un déplacement rapidedu curseur pendant la visualisation dynamique d’un bloc entraîne destemps d’attente d’environ 3 à 5 secondes par ligne.
Solution :Interrompez la visualisation dynamique à l’aide de la touche d’aban-don, repositionnez le curseur, puis reprenez la visualisation dynami-que. Vous éviterez ainsi les temps d’attente.
Contrôle pas à pas La fonction de contrôle pas à pas permet de tester des étapes quelcon-ques dans le programme utilisateur. Pour ce faire, vous arrêtez le trai-tement du programme et vous faites exécuter les instructions, les unesaprès les autres, par la CPU. Pour chaque instruction exécutée, l’étaten cours des opérandes, le contenu des accumulateurs, le RLG, etc.,sont affichés sur la console de programmation.
Appel de la fonction etdéfinition du premier pointd’arrêt
Vous pouvez appeler le contrôle pas à pas en état de marche RUN eten arrêt partiel. Pour ce faire, indiquez le type et le numéro du bloc àtester (en précisant éventuellement l’imbrication), puis marquez sur laPG la première instruction dont les données doivent être affichées.Vous définissez ainsi le premier point d’arrêt.
Si vous définissez le premier point d’arrêt pendant le traitement duprogramme, la CPU poursuit le traitement jusqu’à ce que l’instructi-on marquée par le point d’arrêt soit atteinte. Cette instruction est alorsexécutée jusqu’à sa limite (pour BMW et BDW, l’instruction substi-tuée est également traitée). La CPU peut maintenant vérifier si l’ordred’imbrication actuel des blocs correspond à celui que vous avez indi-qué. S’il y a divergence, elle poursuit l’exécution du programme.
Si le point d’arrêt défini n’est pas atteint (par exemple, en raison del’arrêt de la CPU ou d’une boucle sans fin dans le programme utilisa-teur), la PG affiche le message "Instruction non traitée". Le contrôlepas à pas et le point d’arrêt défini restent cependant activés.
Par contre, si le niveau d’imbrication est correct, les sorties sont ver-rouillées (voyant BASP allumé) et les données de l’instruction traitéesont affichées à la console. La CPU attend alors votre prochain ordre.
Instructions B MW et B DW Lorsque le contrôle pas à pas est activé, vous ne pouvez pas placer lecurseur sur l’instruction suivant immédiatement B MW ou B DW.
Solution :Interrompez le contrôle pas à pas et positionnez le nouveau point d’ar-rêt après l’instruction consécutive à B MW ou B DW.
Fonctions en ligne de la PG
Programmation de la CPU 94811 - 10 C79000-G8577-C848-04
Appel de la fonction en arrêt partiel
Vous pouvez aussi appeler le contrôle pas à pas et définir un premierpoint d’arrêt en STOP partiel. La CPU reste à l’arrêt. Vous pouvezalors aussi bien demander un démarrage qu’un redémarrage manuel.La CPU exécute le programme jusqu’à l’instruction marquée et secomporte ensuite comme indiqué ci-dessus.
Poursuite de la fonction etdéfinition d’un autre pointd’arrêt
Conditions préalables : La CPU a traité le premier point d’arrêt.
Deux possibilités vous sont offertes pour poursuivre la fonction.
1) Vous déterminez un point d’arrêt suivant.
Le point d’arrêt défini est déplacé d’une instruction. La CPU pour- suit le traitement du programme par cette instruction. Une fois celle-ci traitée jusqu’à sa limite, la CPU affiche les données et se remet en attente. Toutefois, si l’instruction suivante est atteinte dans un niveau de traitement de programme imbriqué, la CPU pour-suit l’exécution. Le point d’arrêt suivant reste défini.
NotaEn STOP, vous pouvez définir un premier point d’arrêt, mais pasde point d’arrêt suivant.
2) Vous définissez un nouveau point d’arrêt.
Vous indiquez à la PG une autre instruction dans le même bloc ou dans un autre bloc. La CPU poursuit le traitement du pro-gramme jusqu’à ce qu’elle atteigne le nouveau point d’arrêt. L’instruction est exécutée jusqu’à sa limite et la CPU affiche les données correspondantes.
Suppression d’un point d’arrêt Lorsqu’un point d’arrêt n’a pas encore été atteint, vous pouvez lesupprimer en appuyant sur la touche d’abandon de la console de pro-grammation. Vous pouvez ensuite définir un nouveau point d’arrêt ouappeler la fonction "Arrêter le contrôle pas à pas".
Abandon de la fonction Vous pouvez interrompre la fonction en sélectionnant "Arrêter lecontrôle pas à pas" pendant le traitement du programme ou à l’arrêt.La CPU se met en arrêt partiel (ou bien reste à l’arrêt). La DEL STOPclignote lentement. Le bit de commande FIN P/P est marqué d’unecroix. Un démarrage est ensuite nécessaire. Le contrôle pas à pas estinterrompu comme indiqué ci-dessus lorsqu’une erreur d’interface(interruption sur le câble PG) apparaît pendant son exécution.
Fonctions en ligne de la PG
Programmation de la CPU 948C79000-G8577-C848-04 11 - 11
Imbrications en mode"Interruptions possibles en fin d’instruction"
Lorsque le contrôle pas à pas est appelé, d’autres niveaux de traite-ment de programme peuvent être imbriqués lorsque vous avez choisile mode "Interruptions possibles en fin d’instruction".
Si l’instruction située au point d’arrêt est traitée et si un autre niveaude traitement de programme est appelé à cet endroit (par exemple, unOB d’erreur ou d’alarme), ce niveau est d’abord imbriqué et traitécomplètement. Le traitement au point d’arrêt suivant n’est poursuiviqu’ensuite.
NotaLes données sont lues et affichées à la limite d’instruction. Lesimbrications éventuelles suivantes ne sont pas encore traitées.
La figure 11-2 illustre le principe de la fonction de contrôle pas à pas.
NotaSi une imbrication est demandée lors du traitement del’instruction au point d’arrêt, vous pouvez définir un point d’arrêtsur une instruction du programme imbriqué. Si, par exemple, uneinstruction a déclenché un retard d’acquittement ACQ, vouspouvez observer aussitôt après l’OB d’erreur correspondant.
Exécut ion del´ instruct ion etlecture desdonnées
Exécut ion del´ instruct ionet lecture desdonnées
< <<<<<
< <<<<<
1e r pointd´arrêt
Etat d´at tente (aff ichage des données)
Etat d´at tente (aff ichage des données)
Alarme de processus,alarme d´hor loge,OB d´erreur
Alarme de processus,alarme d´hor loge,OB d´erreur
Point d´arrêtsuivant
Figure 11-2 Déroulement du contrôle pas à pas
Fonctions en ligne de la PG
Programmation de la CPU 94811 - 12 C79000-G8577-C848-04
Interruptions •• Traitement du programme → arrêt
Si une interruption se produit pendant le traitement du programme(par exemple, arrêt en fonctionnement multiprocesseur, périphérienon prête, commutateur sur STOP, OB d’erreur non programmé,etc.) et si le point d’arrêt n’est pas encore atteint, la CPU passe im-médiatement en STOP. Si un démarrage ou un redémarrage manu-el est alors exécuté, la fonction de contrôle pas à pas reste activéeet le point d’arrêt défini est conservé.
•• Traitement de l’instruction au point d’arrêt → arrêt
Si des conditions d’arrêt (commutateur sur STOP, instruction STSde STEP 5, OB d’erreur non programmé) surviennent lors du trai-tement de l’instruction au point d’arrêt ou au point d’arrêt suivant,la CPU passe directement en arrêt partiel et fournit les données. Siaucun autre point d’arrêt n’est défini en STOP, le contrôle pas àpas reste activé après une mise en route.
Durant l’exécution de la fonction de contrôle pas à pas, il est possibled’appeler d’autres fonctions à la PG, à savoir :
- lecture de la pile des interruptions,
- lecture de la pile des blocs,
- chargement d’un bloc,
- lecture d’un bloc,
- effacement d’un bloc,
- affichage de la liste des blocs,
- forçage de variables,
- forçage de sorties.
Dans de rares cas, il peut alors arriver que le contrôle pas à pass’achève et que la CPU se retrouve à l’arrêt.
Fonctions en ligne de la PG
Programmation de la CPU 948C79000-G8577-C848-04 11 - 13
Etat de variables La fonction de test en ligne "Etat de variables" permet de visualiserl’état en cours de certains opérandes (variables de processus).
Lorsqu’un point de contrôle est atteint, l’état en vigueur des variablesde processus désirées est affiché. Vous pouvez indiquer toutes les va-riables de processus : entrées, sorties, mémentos, temporisations,compteurs et mots de données. Aucune erreur d’adressage DAD n’estdéclenchée lorsque la variable appartient à la mémoire image duprocessus.
Déroulement de la fonction enétat de marche RUN
Si la fonction est exécutée alors que l’automate est en état de marcheRUN, l’état des opérandes est examiné et affiché lorsque le point decontrôle est atteint. L’état des entrées est lu dans la mémoire imagedu processus. Tant que la fonction n’est pas interrompue, les états designaux sont actualisés cycliquement.
NotaSi le point de contrôle système n’est pas atteint (par exemple, s’ilexiste une boucle trop longue dans le programme d’application),les états de signaux ne sont pas affichés.
Déroulement de la fonction en arrêt partiel
Lorsque la fonction s’exécute en arrêt partiel, l’état des opérandes estvisualisé tel qu’il se présente au point de contrôle système. Ce faisant,il est important que les entrées soient examinées et lues directement àpartir de la carte de périphérie.
Forçage de sorties La fonction "Forcer des sorties" permet de donner un état défini auxoctets de sortie de l’automate programmable.
NotaCette fonction n’est admise qu’en arrêt partiel ou au cours de lafonction de contrôle pas à pas.
Déroulement de la fonction L’inhibition des sorties est levée à l’appel de la fonction à l’arrêt(voyant BASP éteint). L’ensemble de la périphérie TOR est effacé ;la valeur "0" est inscrite à chaque adresse. La fonction ne peut pas êtreinterrompue pendant l’effacement de la périphérie. Les éventuels re-tards d’acquittement (ACQ) ne sont pas pris en compte.
Fonctions en ligne de la PG
Programmation de la CPU 94811 - 14 C79000-G8577-C848-04
Les sorties vers la périphérie sont forcées octet par octet.
En fonctionnement multiprocesseur, il est possible de forcer toutes lessorties périphériques (indépendamment de l’affectation définie dans leDB 1).
Les retards d’acquittement se produisant lors du forçage de sortiessont pris en compte (message de la PG "Module sortie manque").
Fin de la fonction Pour quitter la fonction, il suffit d’appuyer sur la touche d’abandon dela PG. Les sorties sont de nouveau inhibées (voyant BASP allumé).Par ailleurs, la fonction se termine également si la CPU passe en étatde marche RUN entre le moment de l’appel de la fonction et celui duforçage proprement dit.
Forçage de variables La fonction de test en ligne "Forcer des variables" permet de visuali-ser et de modifier les valeurs d’opérandes (variables du processus)dans la mémoire image du processus. Cela est possible en état de mar-che RUN, en arrêt partiel et au cours de la fonction de contrôle pas àpas. Vous pouvez forcer toutes les variables du processus : entrées,sorties, mémentos, temporisations, compteurs et mots de données.
Particularités La modification entre en vigueur au point de contrôle suivant,indépendamment du point de contrôle système (début ou fin de cycle).
Notez que les valeurs forcées peuvent, par la suite, être écrasées (parexemple, par le programme utilisateur ou lors de l’actualisation de lamémoire image du processus).
NotaLes variables du processus sont forcées octet par octet.
Si vous forcez plusieurs opérandes, la prise en compte enmémoire des octets forcés est répartie sur plusieurs cyclessuccessifs.
Fonctions en ligne de la PG
Programmation de la CPU 948C79000-G8577-C848-04 11 - 15
11.3 Couplage PG-AP via la première ou la seconde interface série
Il existe les possibilités suivantes pour le couplage série entre la PG etl’automate programmable :
•• liaison directe entre PG et CPU à l’aide du câble standard
•• liaison à la PG via le coordinateur COR CLa PG est reliée par câble au coordinateur. La première interfacesérie n’est donc plus disponible.
•• liaison à la PG via un multiplexeur de PG 757Vous trouverez des informations sur les câbles de liaison autorisésdans le manuel système S5-135U/155U (cf. bibliographie /2/).
•• liaison à la PG via SINEC H1/L2/L1 et "pont"Le coordinateur COR C ou le multiplexeur PG peuvent alors êtreintercalés.
Couplage PG-AP via la première ou la seconde interface série
Programmation de la CPU 94811 - 16 C79000-G8577-C848-04
11.4 Utilisation en parallèle de deux interfaces série vers la PG
Il est possible d’utiliser la deuxième interface de la CPU 948 (SI 2),tout comme la première interface, comme interface vers la consolePG.
Pour pouvoir coupler votre PG par l’intermédiaire de cette interface,vous devez commander en plus de la CPU 948 la cartouche d’inter-face PG (référence dans le manuel système S5-135U/155U, biblio-graphie /2/).
Toutes les fonctions PG disponibles grâce à la première interface lesont également par la deuxième. Les paragraphes suivants donnentuniquement les informations requises pour l’utilisation simultanée dela première et de la deuxième interface avec des consoles deprogrammation ou des terminaux de dialogue (OP).
PG
SI1
SI2PG
Cartouched´ inter face
Figure 11-3 Utilisation de la deuxième interface comme interface vers la PG
Utilisation en parallèle de deux interfaces série vers la PG
Programmation de la CPU 948C79000-G8577-C848-04 11 - 17
Exemples de configuration
CPU 948 CP 143
SINEC H1
SI1 Console PG rel iée via SINEC H1 et COR C
SI2
"pont"
Console PG rel iée directement
Figure 11-4 Premier exemple de configuration
CPU 948
OP PG
SI2 Console PG rel iée directement(pour programmation)
SI1 OP raccordé directement(pour contrôle-commande)
Figure 11-5 Deuxième exemple de configuration
Utilisation en parallèle de deux interfaces série vers la PG
Programmation de la CPU 94811 - 18 C79000-G8577-C848-04
11.4.1Mise en service Pour mettre en service la seconde interface de la CPU 948 comme in-
terface PG, procédez comme suit.
Etape Action
1 Mettez en place la cartouche PG dans la CPU 948.
(reportez-vous aux instructions correspondantes dans l’annexe)
2 Reliez la console de programmation à l’interface série SI2.
11.4.2Fonctionnement Si vous utilisez la seconde interface série comme interface vers la PG,
vous disposez sur chaque interface de la totalité des fonctions de l’in-terface standard vers la PG. Cela reste valable tant que les différentesfonctions n’exercent pas d’influences réciproques, c’est-à-dire tantqu’elles peuvent faire l’objet d’un appel séquentiel consécutif.
Pour une meilleure compréhension des exceptions, il est judicieux desubdiviser les fonctions PG en trois groupes.
Groupe Caractéristiques
Fonctions à temps d’exécution court
Fonctions qui exécutent un contrat et sont ensuite terminées (par exemple les fonctions de transfert, d’effacement, etc.)
Fonctions à tempsd’exécution long
Fonctions qui ont un nombre fixe de contrats à traiter :
- forçage de sorties,- contrôle pas à pas.
Fonctions cycliques Fonctions qui répètent l’exécution d’un contrat jusqu’à ce que vous y mettiez un terme :
- état d’un bloc, - état de variables,- forçage de variables.
AvertissementDans le cas des fonctions à temps d’exécution long ou cycliques,l’appel de ces fonctions doit être coordonné sur les deux consolesde programmation.
Utilisation en parallèle de deux interfaces série vers la PG
Programmation de la CPU 948C79000-G8577-C848-04 11 - 19
Le tableau ci-dessous indique les couples de fonctions que vous nepouvez pas utiliser simultanément.
Fonction en cours sur la première PG
Fonction qui ne doit pas être appelée sur la seconde PG
Forçage Toutes les fonctions
Contrôle pas à pas Toutes les fonctions
Fonction d’état (visualisation dynamique)
Forçage
Fonction d’état (visualisation dynamique)
Contrôle pas à pas
Fonction d’état (visualisation dynamique)
Effacement général
Etat de blocs non traités ou à temps d’exécution long
Toutes les fonctions
En cas de non-respect, la seconde PG émet un message d’erreur, parexemple "Fonction coupleur inhibée : fonction en cours".
Le même message d’erreur ou le message "Dépassement lorsd’échange de données avec PG" apparaît lorsque la CPU 948 est entrain de traiter des fonctions de l’autre PG qui empêchent l’accès devotre PG durant l’intervalle de temps correspondant à la surveillancedu temps de cycle. Votre entrée est alors refusée. Répétez l’entrée unefois les fonctions de l’autre PG effectuées.
NotaLes temps de surveillance et messages d’erreur ne sont pasidentiques pour tous les PG et OP, leurs fonctions et capacitén’étant pas les mêmes.
L’activation simultanée de la fonction "Etendue de la mémoire"sur les deux PG peut entraîner des indications erronées.
AvertissementLorsque vous travaillez simultanément en ligne sur les deuxconsoles de programmation pour saisir, corriger ou effacer desblocs, n’oubliez pas que ces blocs ne sont pas protégés des accèsdemandés par l’une ou l’autre PG.La visualisation dynamique d’un bloc non utilisé ou à l’arrêtbloque l’autre interface pour toutes les fonctions.
Tableau 11-2 Fonctions non exécutables simultanément sur deux PG
Utilisation en parallèle de deux interfaces série vers la PG
Programmation de la CPU 94811 - 20 C79000-G8577-C848-04
11.4.3Déroulement pour des casprécis
Utilisation parallèle de fon-ctions à temps d’exécutioncourt
Lorsque vous utilisez des consoles de programmation simultanémentsur les deux interfaces, ces deux PG tentent d’exécuter leurs fonctionsrespectives indépendamment l’une de l’autre. Tant que vous transmet-tez vos contrats à la CPU avec décalage dans le temps, ces dernierssont traités les uns après les autres, dans leur ordre d’arrivée.
Toutefois, il peut arriver que la CPU 948 reçoive soit simultanémentdeux contrats, soit un contrat de la deuxième console tandis qu’un con-trat de la première console est encore en cours d’exécution. Etantdonné que le traitement simultané n’est pas possible, ces deux contratssont traités l’un après l’autre ; les temps d’attente pour le deuxièmecontrat sont toutefois si courts que vous ne les remarquez pratique-ment pas.
Les contrats simultanés se déroulent donc de la manière suivante :
Sur ce schéma d’exécution, vous voyez que vous pouvez certes travail-ler sur les deux consoles de programmation indépendamment l’une del’autre, mais qu’il existe une influence réciproque. Il peut donc arriver que les deux consoles traitent simultanément lemême bloc ou qu’un bloc en cours de traitement par une console soiteffacé par l’autre.A chaque traitement, il faut donc considérer dans quelle mesure vousinfluencez le comportement de l’autre console.
Entrée au clavier de la PG 1Préparat ion entrée 1 dans PG 1
Transfert contrat 1 à la CPU
Trai tement contrat 1 dans la CPU
Transfert du résul tat 1 à PG 1
Préparat ion du résul tat 1 dans PG 1
Aff ichage résul tat 1 sur PG 1
CPU 948Uti l isateur de la PG 1
Transfert contrat 2 à la CPU
Trai tement contrat 2 dans la CPU
Transfert du résul tat 2 à PG 2
Préparat ion du résul tat 2 dans PG 2
Aff ichage résul tat 2 sur PG 2
Entrée au clavier de la PG 2
Préparat ion entrée 2 dans PG 2
****
Util isateur de la PG 2
Ici , la PG 2 doit attendre que laCPU ait terminé le traitementdu contrat 1.
Figure 11-6 Procédure en cas de contrats simultanés
Utilisation en parallèle de deux interfaces série vers la PG
Programmation de la CPU 948C79000-G8577-C848-04 11 - 21
Utilisation parallèle de fon-ctions à temps d’exécutionlong
Les fonctions à temps d’exécution long de forçage et de contrôle pas àpas ne peuvent ni interrompre d’autres fonctions, ni être interrompuespar d’autres fonctions. Elles ne doivent par conséquent pas êtreexécutées en parallèle ; elles sont traitées en un bloc comme un con-trat standard.
Utilisation parallèle de fon-ctions cycliques
Les fonctions cycliques peuvent être exécutées parallèlement à desfonctions cycliques et à des fonctions à temps d’exécution court.L’exemple présenté ici est celui de la fonction "Etat de variables".
La PG 1 indique à laCPU quel les var iablesdoivent être lues.
La PG 1 demande lesdonnées actuel les.
La PG 1 demande lesdonnées actuel les.
La PG 1 demande lesdonnées actuel les
La PG 1 demande lesdonnées actuel les.
La PG 1 doit at tendreque la CPU soi t l ibre.
Le contrat de la PG 2 est tra i té.
La PG 2 doit at tendreque la CPU soi t l ibre.
La PG 2 émet le contrat .
Le contrat de la PG 2 est terminé.
CPU 948Uti l isateur de la PG 1 Uti l isateur de la PG 2
Figure 11-7 Exécution type d’une fonction cyclique, parallèlement à celle d’une fonction à temps d’exécution court
Utilisation en parallèle de deux interfaces série vers la PG
Programmation de la CPU 94811 - 22 C79000-G8577-C848-04
Pour donner à une deuxième PG la possibilité d’envoyer également uncontrat à la CPU, la fonction d’état (visualisation dynamique) est inter-rompue entre deux demandes et reprise après le contrat intercalé. Com-me la fonction causant l’interruption sollicite la CPU pour sontraitement, la puissance totale de la CPU doit être répartie sur les deuxfonctions. Ainsi, par exemple, pour la fonction "Etat de variables", lesdonnées affichées sont actualisées un peu plus lentement.
Le déroulement dans le cas de l’utilisation simultanée des deux PG estreprésenté dans la figure 11.8.
Cela vaut également pour le cas où des fonctions cycliques sontexécutées sur les deux PG, qui accèdent alors alternativement à laCPU.
Utilisation en parallèle de deux interfaces série vers la PG
Programmation de la CPU 948C79000-G8577-C848-04 11 - 23
La PG 1 indique à laCPU quel les var iablesdoivent être lues.
La PG 1 demande lesdonnées actuel les.
La PG 1 demande lesdonnées actuel les.
La PG 1 demande lesdonnées actuel les.
La PG 1 demande lesdonnées actuel les.
Le 1e r contrat de la PG 2 est tra i té.
Le 2è m e contrat de la PG 2 est tra i té.
La PG 2 émet le 1e r contrat .
La PG 2 émet le 2 è m e contrat .
Le 1e r contrat de la PG 2 est terminé.
Le 2è m e contrat de la PG 2 est terminé.
La PG 1 doit at tendreque la CPU soi t l ibre.
La PG 2 doit at tendreque la CPU soi t l ibre.
La PG 1 doit at tendreque la CPU soi t l ibre.
CPU 948Uti l isateur de la PG 1 Uti l isateur de la PG 2
Figure 11-8 Exécution de deux fonctions cycliques en parallèle
Utilisation en parallèle de deux interfaces série vers la PG
Programmation de la CPU 94811 - 24 C79000-G8577-C848-04
Cas particulier pour lesfonctions cycliques sur lesdeux consoles
Si la fonction causant l’interruption bloque la CPU 948 (visualisationdynamique d’un bloc qui n’est pas exécuté), la fonction interrompuene peut pas être poursuivie. Elle ne sera reprise que lorsque la fonctioncausant l’interruption est terminée.
Lorsque l’on travaille simultanément sur les deux consoles, le déroule-ment est le suivant.
La PG 1 indique à laCPU quel les var iablesdoivent être lues.
La PG 1 demande lesdonnées actuel les(el le signale que lavisual isat ion dynamiqueest en cours).
La PG 1 demande lesdonnées actuel les.
La PG 1 demande lesdonnées actuel les.
La PG 1 doit at tendreque la CPU soi t l ibre.
La PG 2 doit at tendreque la CPU soi t l ibre.
Le contrat de la PG 2 est tra i té.
(La PG signale que la visual isat iondynamique est en cours.)
(La PG signale que l´ instruct ionn´est pas trai tée.)
La PG 2 émet le contrat(p. ex. "Etat d´un bloc, PB 9") .
Le contrat de la PG 2 est terminé.
La PG 1 reçoi t denouvel les données.
La PG 2 interrompt lavisual isat ion dynamique ;la CPU trai te la demande d´abandon.
CPU 948Uti l isateur de la PG 1 Uti l isateur de la PG 2
Figure 11-9 Déroulement lorsqu’une fonction bloque la CPU 948
Utilisation en parallèle de deux interfaces série vers la PG
Programmation de la CPU 948C79000-G8577-C848-04 11 - 25
Remarques générales Si, sur l’une des interfaces, les fonctions d’état de variables, de força-ge de variables ou d’état (visualisation dynamique) sont en cours etque vous vouliez, sur la seconde interface, effectuer une compressionde la mémoire ou bien effacer ou transférer un bloc, les résultats af-fichés pour la visualisation d’état peuvent s’avérer erronés.
Utilisation en parallèle de deux interfaces série vers la PG
Programmation de la CPU 94811 - 26 C79000-G8577-C848-04
11.5 Fonctions PG via le bus S5
11.5.1Utilisation Les fonctions PG via le bus S5 permettent de charger et de piloter, à
partir de PG 7xx, des automates programmables S5-155U avecCPU 948 mis en réseau via SINEC H1. Ces fonctions permettent decharger la CPU 948 jusqu’à huit fois plus vite que par l’interface PG(la vitesse dépend de la longueur des blocs à transférer).
Vous pouvez utiliser les fonctions PG via le bus S5 également enmode multiprocesseur.
Ces fonctions font partie du programme système de la CPU 948.
AvertissementVous ne pouvez vous servir des fonctions PG via le bus S5 qu’àl’exclusion des fonctions PG via la première ou la deuxièmeinterface série. Un déroulement simultané ou imbriqué decertaines fonctions peut entraîner l’altération de blocs ou dedonnées.
Dans la CPU 948, les numéros d’interface supérieurs ou égaux à232 sont réservés aux fonctions PG via le bus S5. Vous ne pouvezdonc pas les utiliser à votre gré pour les blocs de dialogue.
Fonctions PG via le bus S5
Programmation de la CPU 948C79000-G8577-C848-04 11 - 27
La figure 11-10 montre un exemple de configuration en mode multi-processeur.
Pas de paramétrage dela CPU
Aucun paramétage dans la CPU 948 n’est nécessaire pour les foncti-ons PG via le bus S5.
Configuration requise Les fonctions PG via le bus S5 avec la CPU 948 nécessitent une in-terconnexion de la PG et de l’AP via le réseau SINEC H1.
A cet effet, vous avez besoin :
•• d’une PG 7xx avec connexion SINEC H1 et version 6.3 (ST) ou6.0 (MT) installée de STEP 5 + disquette delta CPU 948,
•• d’un processeur de communication CP 143 à partir de la version06 (version 3.0 du microprogramme) dans l’automate programma-ble avec numéro d’interface de base 232 (vous réglez ce numérovia des cavaliers dans le matériel et à l’aide du logiciel COM 143dans SYSID).
Coupleur de busCoupleur de busSINEC H1
CP143
COR923C PG 7xxAP S5-155U
Figure 11-10 Fonctionnement multiprocesseur avec un CP 143(deux CPU 948, un CP 143)
Fonctions PG via le bus S5
Programmation de la CPU 94811 - 28 C79000-G8577-C848-04
11.5.2Principe de fonctionnementdes fonctions PG via le busS5
Utilisation de pages Le CP 143 comporte quatre pages (interfaces) pour la communicationavec les CPU. Si vous n’utilisez pas les fonctions PG via le bus S5,toutes ces pages sont disponibles pour la communication par le biaisde blocs de dialogue.
Les pages de mémoire du CP sont réparties lors de l’utilisation desfonctions du bus S5 : deux pages pour les blocs de dialogue utilisateuret deux pages pour les fonctions PG.Vous pouvez utiliser ces deux premières pages comme jusqu’à main-tenant pour des applications SINEC H1. Consultez toutefois à ce pro-pos les restrictions présentées au paragraphe 11.5.3.Quant aux pages pour les fonctions PG, le CP 143 et la CPU 948 lesutilisent pour les fonctions PG via le bus S5. Elles ne sont donc plusdisponibles pour la communication aves les blocs de dialogue.
Numéros d’interface SSNR Les fonctions PG via le bus S5 sont automatiquement activées dans leprocesseur de communication CP 143 si vous indiquez 232 ou 236comme numéro d’interface de base (cavaliers et SYSID) lors du pa-ramétrage du CP. Vous occupez ainsi les numéros d’interface 232 à239. Les numéros d’interface 240 à 247 sont réservés à des extensionsultérieures (par exemple, CP avec 8 pages ou interfaces).
SINEC H1
CP 1
CP 2
SINEC H1
SINEC H1
SINEC H1
232
233
234
235
236
237
238
239
.
.
Fonctions PG
Fonctions PG
Fonctions PG
Fonctions PG
réservé (8 pages)
Figure 11-11 Numéros d’interface pour les fonctions PG via le bus S5
Fonctions PG via le bus S5
Programmation de la CPU 948C79000-G8577-C848-04 11 - 29
Paramétrage du CP 143 Consultez le manuel du CP 143 (bibliographie /6/) pour savoir com-ment paramétrer ce dernier.
AvertissementVous ne pouvez pas paramétrer les numéros d’interface 232 (etsuivants) et 236 (et suivants) si vous utilisez le CP 143 avecd’autres CPU SIMATIC. Si la CPU 948 fonctionne avec d’autresCP, les numéros d’interface 232 à 247 ne peuvent pas être utilisésà volonté.
Mode multiprocesseur Vous pouvez utiliser les fonctions PG via le bus S5 avec la CPU 948également en mode multiprocesseur.
Avec un CP 143, deux CPU (948) peuvent faire appel aux fonctionsen ligne dans l’automate S5-155U.Vous pouvez également utiliser le processeur de communicationCP 143 dans le châssis d’extension (EG 185). En mode multiprocesseur, la CPU 1 accède à la page de mémoire denuméro d’interface SSNR 234 et la CPU 2 à la page de numéroSSNR 235.
Si vous enfichez un second CP 143 et le paramétrez en conséquence,il est réservé aux fonctions en ligne via le bus S5 avec les CPU 3 et 4(numéros d’interface 238 et 239).
Fonctions PG via le bus S5
Programmation de la CPU 94811 - 30 C79000-G8577-C848-04
11.5.3Mise en service Vous devez considérer les cas suivants lors de la mise en service.
CP 143 uniquement utilisépour les fonctions PG
Si vous désirez utiliser le processeur de communication CP 143 exclu-sivement pour les fonctions PG via le bus S5, aucun paramétrage autreque celui de SINEC H1 n’est nécessaire.
Après la mise sous tension, les fonctions PG via le bus S5 sont tou-jours disponibles sur la CPU 948 sans qu’il soit nécessaire de d’abordsynchroniser le CP 143 avec le bloc de dialogue SYNCHRON(FB 125). Le commutateur de mode de la CPU doit toutefois se trou-ver en position RUN.Il est possible de mettre en service une CPU 948 "vide" via le busS5 sans effacement général.
Après la mise sous tension, la CPU 948 synchronise automatiquementles pages qui lui sont affectées sur le CP 143 pour les fonctions PG viale bus S5.
La mise en service nécessite les étapes suivantes.
Etape Action
1 Réglez le numéro d’interface (SSNR) sur le CP 143 (cavaliers).Choisissez à cet effet le numéro d’interface correspondant à la configuration matérielle existante (voir ci-après). Tenez également compte des indications dans bibliographie /6/.
configuration matérielle possible n° d’interface correspondant des CP 143
1 x CPU 948, 1 x CP 143
1 x CPU 948, 2 x CP 143
2 x CPU 948, 1 x CP 143
3 x CPU 948, 2 x CP 143
4 x CPU 948, 2 x CP 143
232
232 sur le 1er CP, 236 sur le 2nd CP
232
232 sur le 1er CP, 236 sur le 2nd CP
232 sur le 1er CP, 236 sur le 2nd CP
2 Enfichez le CP 143 dans l’automate S5-155U (l’AP doit être hors tension).
3 Reliez la PG à l’interface PG du CP 143 et chargez le logiciel COM.
4 A l’aide du logiciel COM 143, indiquez dans le SYSID du CP 143 le numéro d’interfacechoisi à l’étape 1 et l’adresse Ethernet.
Fonctions PG via le bus S5
Programmation de la CPU 948C79000-G8577-C848-04 11 - 31
Etape Action
5 Chargez les paramètres dans le CP 143.Vous pouvez stocker les paramètres du CP 143 :- dans une cartouche EPROM
ou- dans la mémoire vive du CP 143.
Vous pouvez transférer les paramètres par le biais de l’interface série de la PG 7xx. Le chargement des paramètres du CP 143 est décrit en détails dans bibliographie /6/.
6 Effectuez un effacement général de la CPU, mettez l’AP hors tension puis à nouveausous tension.
7 Editez la liaison vers la CPU 948 dans le masque correspondant de STEP 5.
8 Sélectionnez dans les présélections de STEP 5 la liaison à la CPU 948 via SINEC H1/CP 143.
Vous pouvez maintenant vous servir des fonctions PG via le bus S5.Vous pouvez charger votre programme utilisateur et l’exécuter ou letester.
Interface PG série La CPU 948 ne traite qu’une fonction PG à un moment donné. Si voustentez, alors qu’une fonction PG est en cours de traitement, d’activerune autre fonction PG à partir d’une deuxième PG via l’interface PGsérie, cette PG émet un message, par exemple "Fonction coupleur inhi-bée : fonction en cours".
Remarques L’interruption d’une fonction PG par commutation du commutateurde mode de la CPU de RUN sur STOP ou suite à une erreur entraînedes temps d’attente (dus au système) supérieurs à 15 s pour la commu-nication avec SINEC H1.
En cas de manipulation erronée à la PG (par exemple, mise hors tensi-on de la PG alors qu’une fonction est en cours), il peut s’avérer néces-saire de resélectionner la liaison avant de pouvoir l’établir.
Fonctions PG via le bus S5
Programmation de la CPU 94811 - 32 C79000-G8577-C848-04
CP 143 utilisé pour lesfonctions PG et la commu-nication via SINEC H1
Si vous désirez utiliser le CP 143 non seulement pour les fonctions PGvia le bus S5 mais également pour la communication via SINEC H1,vous devez tenir compte des indications suivantes en plus du pa-ramétrage décrit sous "CP 143 uniquement utilisé pour les fonctionsPG".
Procédez comme suit pour la mise en service.
Etape Action
1 à 8 Identique au tableau présenté sous "CP 143 uniquement utilisé pour les fonctions PG"
9 Programmez l’appel du bloc de dialogue SYNCHRON (FB 125) dans les blocsd’organisation de mise en route OB 20 et OB 22 afin que le CP 143 soit synchronisé pourla communication SINEC H1 en cas de démarrage manuel ou automatique ou deredémarrage automatique.Le bloc de dialogue SYNCHRON ne doit être appelé que lorsque l’interface est effectivementutilisée, car cet appel provoque la désactivation de la liaison vers la PG, qu’il faut doncensuite rétablir "à la main" à partir de la PG.
Utilisation des pages pour lacommunication via des blocsde dialogue
Le schéma de la page suivante montre comment les fonctions PG viale bus S5 occupent les pages du CP 143. La CPU 1 à 4 peut utiliser lespages libres prévues pour les blocs de dialogue utilisateur pour com-muniquer via SINEC H1.
Fonctions PG via le bus S5
Programmation de la CPU 948C79000-G8577-C848-04 11 - 33
Particularités en cas decommunication via les pagespour blocs de dialogueutilisateur
Le CP 143 désactive les liaisons existantes lorsqu’il est synchronisé àdes fins de communication (appel du FB 125 avec numéros d’inter-face 232 et 233 ou 236 et 237). Il faut donc réactiver ces liaisons − cequi entraîne des temps d’attente dans la PG (également pour la touched’abandon) −, puis les sélectionner à nouveau à la PG.
De ce fait, vous ne pouvez pas appeler la fonction d’état de blocsvia le bus S5 pour les OB de démarrage lorsque vous utilisez pour lacommunication les pages prévues pour les blocs de dialogue utilisa-teur. Il est donc conseillé de n’appeler le FB 125 (bloc de dialogueSYNCHRON) qu’en cas de démarrage ou de mise en route après misesous tension (démarrage ou redémarrage).
Point extrêmede liaison
Il n´est pas possible de communiqueravec les CPU 3 et 4 via les blocsde dialogue utilisateur.
1
SSNR
SSNR
SSNR
SSNR
CPU 948
233
237
235
239
234
238
SSNR232
SSNR236
Page pourblocs dedialogueutilisateur
Page pourblocs dedialogueutilisateur1
Page pourblocs dedialogueutilisateur
Page pourblocs dedialogueutilisateur1
Page pourfonctionsPG
Page pourfonctionsPG
Page pourfonctionsPG
Page pourfonctionsPG
PG
1er CP 143
2e CP 143
CPU 1
CPU 948
CPU 2
CPU 948
CPU 3
CPU 948
CPU 4
SSNR
SSNR
Figure 11-12 Liaisons entre PG et CPU 948 et affectation des pages du CP 143
Fonctions PG via le bus S5
Programmation de la CPU 94811 - 34 C79000-G8577-C848-04
11.5.4Indication d’erreurs Chacune des quatre CPU 948 (au maximum) pour lesquelles les foncti-
ons PG via le bus S5 sont activées mémorise, dans ses zones BS etBT, des indicateurs quand des erreurs se produisent lors de l’utilisati-on de ces fonctions.
Ces indicateurs comportent un octet d’erreur de paramétrage (PAFE)pour chaque liaison possible et un mot indicateur (ANZW) précisantle déroulement en cours des blocs d’émission et de réception. Ces indi-cateurs correspondent dans une large mesure à ceux des blocs de dia-logue.
BS 50 Le mot de données système BS 50 (adresse E F032H) contient les indi-cateurs d’erreur de paramétrage (PAFE) qui sont apparus lors de lasynchronisation des fonctions PG.
Exploitation de PAFE dansBS 50
L’octet PAFE se trouve toujours dans l’octet de poids fort de BS 50.
N° CPU BS 50octet de poids fort
BS 50octet de poids faible
1 PAFESSNR 234
-
2 PAFESSNR 235
-
3 PAFESSNR 238
-
4 PAFESSNR 239
-
Signification des indicateursPAFE
Sont indiquées toutes les erreurs qui surviennent en relation avec leCP 143. Les indicateurs PAFE possibles sont les suivants :
Valeur PAFE Signification
00H Pas d’erreur
71H Interface (page) inexistante
81H Interface non prête
91H Interface surchargée
A1H Interface occupée par une autre CPU
B1H Numéro de contrat ou longueur de rubriqueincorrecte (FB SYNCHRON)
C1H L’interface ne réagit pas ou pas à temps.
D1H Autre erreur d’interface, également indicationd’erreur pour le CP
Fonctions PG via le bus S5
Programmation de la CPU 948C79000-G8577-C848-04 11 - 35
Signification de l’indicateur 71H
L’indicateur 71H signifie que la page n’existe pas. Il n’est pas possi-ble de mettre en oeuvre les fonctions PG via le bus S5 lorsque cet indi-cateur est apparu. Vérifiez, dans ce cas, l’affectation des interfaces duCP 143 : les numéros d’interface 232 (et suivants) ou 236 (et suivants)doivent être indiqués (cavalier et SYSID).
Zone BT Lorsque les pages pour les fonctions PG existent et que la liaison auCP 143 est établie, un bloc d’information de 16 mots est généré dansla zone BT de la CPU 948. Sa structure est décrite ci-après.
NotaTant qu’aucune liaison au CP 143 n’est établie (PAFE = 71), parexemple parce qu’aucune page de numéro d’interface 232 (etsuivants) ou 236 (et suivants) n’existe, aucune informationsupplémentaire n’est mémorisée dans la zone BT.
Adresse
E F2E8H Sens de données de CPU vers PG pour n° d’interface 234 ou 238
BT 232
E F2E9H Sens de données de CPU vers PG pour n° d’interface 235 ou 239
BT 233
E F2EAH réservé BT 234
E F2EBH réservé BT 235
E F2ECH Sens de données de PG vers CPU pour n° d’interface 234 ou 238
BT 236
E F2EDH Sens de données de PG vers CPU pour n° d’interface 235 ou 239
BT 237
E F2EEH réservé BT 238
E F2EFH réservé BT 239
E F2F0H réservé PAFE 234 BT 240
E F2F1H réservé réservé BT 241
E F2F2H réservé PAFE 235 BT 242
E F2F3H réservé réservé BT 243
E F2F4H réservé PAFE 238 BT 244
E F2F5H réservé réservé BT 245
E F2F6H réservé PAFE 239 BT 246
E F2F7H réservé réservé BT 247
Fonctions PG via le bus S5
Programmation de la CPU 94811 - 36 C79000-G8577-C848-04
NotaLa zone BT est remise à zéro lors d’un effacement général.
Lorsque vous utilisez les fonctions PG via le bus S5, la zone BTest occupée comme indiqué ci-avant et n’est donc plus disponiblepour d’autres programmes (FB standard par exemple). Tenezcompte de ce fait lors de la configuration de votre installation.
ANZW Le mot indicateur ANZW contient l’état en cours des blocs d’émissi-on et de réception. Ses différents bits ont la signification suivante.
Octet de poids fort
Bit Affectation
15
libre
14
13
12
11
10
9
8
Octet de poids faible
7 libre
6 Réception de données achevée
5 Emission de données achevée
4 1 : Erreur
3 Contrat achevé avec erreur
2 Contrat achevé sans erreur
1 0 : SEND validé 1
1 : SEND inhibé
0 0 : RECEIVE inhibé 1
1 : RECEIVE validé
1 propre aux fonctions PG via le bus S5
Fonctions PG via le bus S5
Programmation de la CPU 948C79000-G8577-C848-04 11 - 37
Fonctions PG via le bus S5
Programmation de la CPU 94811 - 38 C79000-G8577-C848-04
Sommaire du chapitre 12
Annexe 1 : positionnement des cavaliers pour les interruptions système . . . . . . . . . . . . . . . . . . . . . 12 - 4
Annexe 2 : montage et démontage de la cartouche PG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 - 5
Annexe 3 : caractéristiques techniques des CPU 948 et CPU 928B . . . . . . . . . . . . . . . . . . . . . . . . . 12 - 7
Annexe 4 : codes d’erreur de certains OB de fonctions spéciales dans l’ACCU 1 . . . . . . . . . . . . 12 - 10
12Annexes
Programmation de la CPU 948C79000-G8577-C848-04 12 - 1
Sommaire
Programmation de la CPU 94812 - 2 C79000-G8577-C848-04
12Annexes
Ce chapitre fournit des informations supplémentaires sur la CPU 948 :positionnement des cavaliers pour les interruptions système, recomman-dations pour le montage et le démontage de la cartouche PG, comparaisondes temps d’exécution des CPU 948, CPU 946/947 et CPU 928B, ainsique codes d’erreur de certains OB de fonctions spéciales.
Programmation de la CPU 948C79000-G8577-C848-04 12 - 3
Annexe 1 : positionnement des cavaliers pour les interruptions système
La CPU 948 dispose de 4 interruptions système destinées au traite-ment du programme par interruptions :
- INT A/B/C/D (selon l’emplacement où est enfichée la CPU, cf. manuel système, bibliographie /2/),
- INT E,- INT F
et- INT G.
Vous devez valider les interruptions que vous voulez utiliser en en-fichant les cavaliers livrés sur le support correspondant. Celui-ci est si-tué sur la carte mère, au-dessus du logement de la carte à mémoire. Lepositionnement précis des cavaliers est illustré sur la figure suivante :
INTFINTG
INTEINTA/B/C/D
Figure 12-1 Positionnement des cavaliers
Annexe 1 : positionnement des cavaliers pour les interruptions système
Programmation de la CPU 94812 - 4 C79000-G8577-C848-04
Annexe 2 : montage et démontage de la cartouche PG
Pour utiliser une cartouche PG, vous devez au préalable la monter(hors du châssis de base) dans la CPU.
AvertissementAvant de retirer la CPU, mettez l’automate programmable horstension.
MontageNotaA la livraison, les cavaliers sont déjà correctement positionnés. Encas d’erreur de fonctionnement après montage de la cartouche,comparez le positionnement des cavaliers avec la représentationdu manuel système (bibliographie /2/).
Effectuez le montage de la cartouche PG de la manière suivante :
Etape Manipulation
1 Mettez l’AP hors tension.
2 Retirez la CPU hors du châssis de base.
3 Desserrez les deux vis de fixation du volet de protectiondu logement de la cartouche sur la CPU, puis retirez cevolet de protection.
4 Enfichez la cartouche PG dans le connecteur en face avant(composants dans le même sens que pour la CPU).
5 Fixez la cartouche avec les deux vis de fixation du voletde protection.
6 Enfichez la CPU dans le châssis de base.
7 Mettez à nouveau l’AP sous tension.
Annexe 2 : montage et démontage de la cartouche PG
Programmation de la CPU 948C79000-G8577-C848-04 12 - 5
Démontage Le démontage de la cartouche PG s’effectue de la manière suivante :
Etape Manipulation
1 Mettez l’AP hors tension.
2 Retirez la CPU hors du châssis de base.
3 Desserrez les deux vis de fixation de la cartouche, puisretirez la cartouche hors de son logement.
4 Introduisez une autre cartouche dans le logement (commedécrit précédemment) ou mettez en place le couvercle quevous fixez avec les vis utilisées pour la cartouche.
5 Enfichez la CPU dans le châssis de base.
6 Mettez à nouveau l’AP sous tension.
NotaDu fait que le module d’interface est vissé à la CPU, lesimpulsions perturbatrices sont dérivées par la masse de la CPU.La CPU ne doit fonctionner qu’avec le logement fermé (volet deprotection ou cartouche).
Annexe 2 : montage et démontage de la cartouche PG
Programmation de la CPU 94812 - 6 C79000-G8577-C848-04
Annexe 3 : caractéristiques techniques des CPU 948 et CPU 928B
Opération /traitement CPU 948 CPU 928B
Temps d’exécution typique des instructions sur bits
avec opérandesM, E, A
Dformels
0,18 µs 0,7 µs 0,91 µs
0,57 µs 3,4 µs 2,4 µs
Temps d’exécution typique des instructions sur mots
- Opérations de chargement L MB (octet) L MW (mot) L MD (double mot)
0,18 µs0,5 µs0,71 µs
0,81 µs0,9 µs1,6 µs
- Arithmétique en virgule fixe- Arithmétique en virgule flottante
0,55 à 3,8 µs 3,3 à 6,3 µs
0,9 à 10,4 µs 9,1 à 15,6 µs
Exécution du programme cyclique (fonctionnement monoprocesseur)
Temps de base pour l’appel de l’OB 1/du FB 0 65 µs/– 104/106 µs
Supplément pour l’actualisation de la mémoireimage du processus en fonction du nombre (n)d’octets d’E/S
avec 0 < n ≤128
n ≤ 64 :64 µs + n * 2,3 µs
n > 64 :92 µs + n * 2,3 µs
E : 14 µs + n * 1,1 µs
A : 5 µs + n * 4,1 µs
Supplément pour le transfert des mémentos decouplage en fonction de leur nombre (n)
avec 0 < n ≤ 256
n ≤ 64 :64 µs + n * 2,1 µs
n > 64 :92 µs + n * 2,1 µs
E : 14 µs + n * 1,4 µs
A : 5 µs + n * 4,3 µs
Supplément pour le traitement destemporisations en fonction de la longueur dubloc des temporisations (ZBL)
ZBL = 0toutes les 10 ms
11,6 µstoutes les 10 ms
10 µs
ZBL ≠ 0n = nombre de temporisations en cours(temps de base : 10 ms)
11,6 µs + ZBL * 0,32 µs 16 µs + ZBL * 0,2 µs(aucune différence entre
les temporisations encours ou non)
Traitement déclenché par alarme
Prolongation du temps de cycle par imbricationd’un OB 2 vide (sans instructions STEP 5) àune limite de bloc
262 µs 300 µs
Temps de réaction 175 µs 270 µs
Annexe 3 : caractéristiques techniques des CPU 948 et CPU 928B
Programmation de la CPU 948C79000-G8577-C848-04 12 - 7
Opération /traitement CPU 948 CPU 928B
Traitement déclenché par horloge
Prolongation du temps de cycle par imbricationd’un OB 13 vide (sans instructions STEP 5) àune limite d’instruction
287 µs 310 µs pour le premier OB
d’alarme d’horloge170 µs pour chaque autreOB d’alarme d’horlogearrivant à échéance au
même instant
Période d’appel du programme déclenché parhorloge (alarmes d’horloge OB 10 à OB 18)
Base de temps variable de1 à 255 ms ;
indication pour 10 ms :10, 20, 50, 100, 200, 500 ms,
1, 2, 5 sou
10, 20, 40, 80, 160,320, 640 ms,1,28, 2,56 s
10, 20, 50, 100, 200, 500 ms,
1, 2, 5 s
Temps de résolution pour alarme d’horloge àheure fixe (OB 9)
toutes les minutestoutes les heures
tous les jourstoutes les semaines
tous les moistous les ans
une fois seulement
–
Temps de résolution pour alarme deretardement (OB 6) 1 ms –
Surveillance du temps de cycle
PrésélectionValeurs possibles Redémarrage
200 ms1 à 2550 ms
oui
200 ms1 à 2550 ms
non
Capacité mémoire
Capacité de la cartouche mémoire utilisateur enkilo-octets
640 ou 1664 64
Capacité de la mémoire pour blocs de données(RAM DB, en kilo-octets)
– environ 46,6
Temporisations, compteurs, mémentos
Nombre de temporisationscompteurs
256256
256256
Nombre de mémentos 2048 mémentos+ 32768 mémentos S
2048 mémentos+ 8192 mémentos S
Annexe 3 : caractéristiques techniques des CPU 948 et CPU 928B
Programmation de la CPU 94812 - 8 C79000-G8577-C848-04
Annexe 4 : codes d’erreur de certains OB de fonctions spéciales dansl’ACCU 1
Codes d’erreur (octets)dans l’ACCU 1-LL
Ces codes d’erreur en octets sont en partie utilisés par plusieurs OB defonctions spéciales. Leur signification dépend donc de l’OB appelé.
OB defonctionspéciale
ACCU 1-LL Signification
OB 124 01H La fonction a été exécutée correctement.
45H47H4DH
ErreurType de bloc incorrectBloc inexistantFonction en ligne de compression de lamémoire en cours
8DH
8EH
AvertissementConflit avec une fonction en ligne (autreque celle de compression de la mémoire)Délai de 10 ms non encore écoulé
OB 125 01H La fonction a été exécutée correctement.
42H43H44H45H4DH
ErreurLe bloc existe déjà.Espace mémoire insuffisantLongueur de bloc incorrecteType de bloc incorrectFonction en ligne de compression de lamémoire en cours.
8DH
8EH
AvertissementConflit avec une fonction en ligne (autreque celle de compression de la mémoire)Délai de 10 ms non encore écoulé
OB 126 01H La fonction a été exécutée correctement.
02H03H
04H
05H
06H07H
ErreurNuméro de fonction incorrectPointeur dans l’ACCU 1-L (numéro demémento) inexistantType ou numéro de bloc incorrect ou blocDB/DX inexistantLe mot de données indiqué du bloc dedonnées ne contient pas le premier motd’identification (numéro de DW erroné)ou la liste d’adresses contient un motd’identification erroné.Numéro de la liste d’adresses incorrectL’appel de la fonction à ce niveau detraitement de programme n’est pasautorisé.
Annexe 4 : codes d’erreur de certains OB de fonctions spéciales dans l’ACCU 1
Programmation de la CPU 948C79000-G8577-C848-04 12 - 9
OB defonctionspéciale
ACCU 1-LL Signification
OB 223 01H02H03H04H
Types de mise en route identiquesErreur système interneTypes de mise en route différentsMode monoprocesseur : comparaison destypes de mise en route impossible
OB 254/255
01H La fonction a été exécutée correctement.
41H
43H48H4AH
4BH
4CH
4DH
4EH
ErreurEn-tête de bloc sur la carte à mémoireincorrectEspace mémoire insuffisantBloc de données source inexistantType ou numéro du bloc de donnéessource incorrectType ou numéro du bloc de données cibleincorrectBloc de données cible déjà dans lamémoire utilisateurFonction en ligne de compression de lamémoire en coursAucune carte à mémoire enfichée
8DH
8EH
AvertissementConflit avec une fonction en ligne (autreque celle de compression de la mémoire)Délai de 10 ms non encore écoulé
Annexe 4 : codes d’erreur de certains OB de fonctions spéciales dans l’ACCU 1
Programmation de la CPU 94812 - 10 C79000-G8577-C848-04
Codes d’erreur (mots)dans l’ACCU 1-L
A une exception près, ces codes d’erreur en mots ne sont utilisésqu’une fois. Le tableau suivant est donc classé par codes d’erreur croissants.
ACCU 1-L OB defonctionspéciale
Signification
8D01H
8D02H
OB 141 Numéro de fonction incorrect dansl’ACCU 2-L 1
Un des bits réservés dans l’ACCU 1 est à 1 1.
8E01H
8E02H
8EFFH
OB 142 Numéro de fonction incorrect dansl’ACCU 2-L 1
Un des bits réservés (numéros 4 à 15) dansl’ACCU 1 est à 1 1.Mode erroné (par exemple, lorsque l’alarmede retardement doit être inhibée et que leDX 0 contient le paramètre "Alarmes deprocessus via l’octet d’entrée EB 0 = OUI")
8F01H
8F02H
OB 143 Numéro de fonction incorrect dansl’ACCU 2-L 1
Un des bits réservés dans l’ACCU 1 est à 1 1.
9601H960FH9611H9612H9613H9614H
9615H
9621H
9622H
9623H
9624H
9625H
9626H
9627H
9628H
9629H
OB 150 Bloc de données non chargéAppel multiple du blocNuméro de fonction incorrectType de zone d’adressage incorrectNuméro de bloc de données incorrectNuméro du premier mot du champ dedonnées incorrectLongueur du bloc de données inférieure à4 motsIndication de l’année incorrecte dans lechamp de donnéesIndication du mois incorrecte dans le champde donnéesIndication du jour incorrecte dans le champde donnéesIndication du jour de la semaine incorrectedans le champ de donnéesIndication des heures incorrecte dans lechamp de donnéesIndication des minutes incorrecte dans lechamp de donnéesIndication des secondes incorrecte dans lechamp de donnéesCentièmes de secondes dans le champ dedonnées différents de 0Format de l’heure différent de celui spécifiédans l’OB 151
1 La valeur erronée se trouve dans l’ACCU 2-L.
Annexe 4 : codes d’erreur de certains OB de fonctions spéciales dans l’ACCU 1
Programmation de la CPU 948C79000-G8577-C848-04 12 - 11
ACCU 1-L OB defonctionspéciale
Signification
9701H970FH9710H
9711H9712H9713H9714H
9715H
9721H
9722H
9723H
9724H
9725H
9726H
9727H
9728H
9729H
972AH
OB 151 Bloc de données non chargéAppel multiple du blocMode de fonctionnement incorrect (Alarmesde processus via octet d’entrée EB 0 = OUI)Numéro de fonction incorrectType de zone d’adressage incorrectNuméro de bloc de données incorrectNuméro du premier mot du champ dedonnées incorrectLongueur du bloc de données inférieure à4 motsIndication de l’année incorrecte dans lechamp de donnéesIndication du mois incorrecte dans le champde donnéesIndication du jour incorrecte dans le champde donnéesIndication du jour de la semaine incorrectedans le champ de donnéesIndication des heures incorrecte dans lechamp de donnéesIndication des minutes incorrecte dans le champde donnéesIndication des secondes incorrecte dans lechamp de donnéesCentièmes de seconde dans le champ dedonnées différents de 0Format de l’heure différent de celui spécifiédans l’OB 121/OB 150Type de contrat incorrect
990FH9910H
9911H9921H
OB 153 Appel multiple du blocMode de fonctionnement incorrect (Alarmesde processus via octet d’entrée EB 0 = OUI)Numéro de fonction incorrectTemps de retard incorrect
B401HB410HB411H
OB 180 Aucun bloc de données n’est ouvert.La valeur de décalage D n’est pas un multiplede 16.a) La valeur de décalage D est trop grande :
la nouvelle position de la fenêtre va au-delà de la fin de bloc.
b) La valeur de décalage D est négative.
B501HB502HB503H
OB 181 Bloc inexistantNuméro de bloc incorrectType de bloc incorrect
Annexe 4 : codes d’erreur de certains OB de fonctions spéciales dans l’ACCU 1
Programmation de la CPU 94812 - 12 C79000-G8577-C848-04
ACCU 1-L OB defonctionspéciale
Signification
B601HB60FHB611HB612HB613HB621H
B622HB623HB624H
B625H
B626HB627H
B628H
B629H
B62AH
B62BHB62CH
OB 182 Bloc de données non chargéAppel multiple du blocDéfinition incorrecte du champ de donnéesType de zone d’adressage illiciteNuméro de bloc de données illiciteNuméro du premier mot du champ dedonnées illiciteType du bloc de données source illiciteNuméro du bloc de données source illiciteNuméro du premier DW (du DB source) àtransférer illiciteLongueur du bloc de données source dans l’en-tête inférieure à 5 motsType du bloc de données de destination illiciteNuméro du bloc de données de destinationilliciteNuméro du premier DW à écrire dans le DBde destination illiciteLongueur du bloc de données de destinationdans l’en-tête inférieure à 5 motsNombre de mots de données à transférerillicite (= 0 ou > 4091)Bloc de données source trop courtBloc de données de destination trop court
F001HF00FHF101HF102HF103HF104HF105HF106HF107HF108H
F109H
OB 121 Numéro de fonction incorrectAppel multiple du blocIndication incorrecte de l’année Indication incorrecte du mois Indication incorrecte du jour Indication incorrecte du jour de la semaine Indication incorrecte des heuresIndication incorrecte des minutes Indication incorrecte des secondesIndication incorrecte des centièmes etdizièmes de secondeFormat de l’heure différent de celui spécifiédans l’OB 151
F001H OB 122 Numéro de fonction incorrect
Annexe 4 : codes d’erreur de certains OB de fonctions spéciales dans l’ACCU 1
Programmation de la CPU 948C79000-G8577-C848-04 12 - 13
Annexe 4 : codes d’erreur de certains OB de fonctions spéciales dans l’ACCU 1
Programmation de la CPU 94812 - 14 C79000-G8577-C848-04
Sommaire du chapitre 13
Liste des abréviations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A - 1
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Index - 1
13Listes
Programmation de la CPU 948C79000-G8577-C848-04 13 - 1
Sommaire
Programmation de la CPU 94813 - 2 C79000-G8577-C848-04
L’explication des abréviations spéciales utilisées dans l’ITPILE est donnée au paragraphe 5.4.
1e ? Première interrogation (indicateur d’opérations sur bits)
ACCU 1 (2, 3, 4)-L Mot de poids faible dans l’accumulateur 1 (2, 3, 4), 16 bitsACCU 1 (2, 3, 4)-H Mot de poids fort dans l’accumulateur 1 (2, 3, 4), 16 bitsACCU 1 (2 ,3, 4)-LL Octet de poids faible du mot de poids faible dans l’accumulateur 1 (2, 3, 4), 8 bitsACCU 1 (2, 3, 4)-LH Octet de poids fort du mot de poids faible dans l’accumulateur 1 (2, 3, 4), 8 bitsACQ Retard d’acquittementANZW Mot indicateurAP Automate programmable
BASP Verrouillage des sortiesBCD voir DCBBL INEX Appel d’un bloc de code non chargéBLPILE Pile des blocsBR Registre d’adresse de base
CAD Compteur d’adresse STEPCONT Schéma à contactsCOR CoordinateurCP Processeur de communicationCPU Unité centrale (central processing unit)CYC Dépassement du temps de cycle
DAD Erreur d’adressageDB Bloc de donnéesDB INEX Appel d’un bloc de données DB/DX non chargéDBA Adresse de début du bloc de données (dans le registre 6)DBL Longueur du bloc de données (dans le registre 8)DCB Décimal codé binaireDEL Diode électroluminescenteDPE Coupure de tension sur le châssis d’extensionDTC Erreur de transfert/chargementDX Bloc de données étendu
EG Châssis d’extensionEPROM Mémoire morte programmable effaçable par UV
(Erasable Programmable Read Only Memory)ETAT Indicateur d’opérations sur bits
Liste des abréviations
Liste des abréviations
Programmation de la CPU 948C79000-G8577-C848-04 A - 1
FB Bloc fonctionnelFL 0, FL 1 Indicateurs d’opérations sur mots ("flags")FX Bloc fonctionnel étendu
IM Module d’interface (Interface Modul)INT Interruption systèmeIP Carte périphérique intelligenteITPILE Pile des interruptions
LED voir DELLIST Liste d’instructionsLOG Logigramme
MDT Coupure secteur (Manque De Tension)MI Mémoire imageMIE Mémoire image des entréesMIS Mémoire image des sorties
OB Bloc d’organisationOU Indicateur d’opération sur bitsOVFL Dépassement (overflow ; indicateur d’opérations sur mots)OVFLMEM Dépassement mémorisé (indicateur d’opérations sur mots)
P.BL> Débordement de la pile des blocsP.IT> Débordement de la pile des interruptionsPAFE Octet d’erreur de paramétragePARI Erreur de paritéPB Bloc de programmePG Console de programmationPPA Débordement de la pile des parenthèsesProc. Processeur
RAM Mémoire vive (Random Access Memory)RLG Résultat logique
SB Bloc séquentielSTS Arrêt précis sur instructionSUB Erreur de substitution
ZG Châssis de base
Liste des abréviations
Programmation de la CPU 948A - 2 C79000-G8577-C848-04
Index
1e ? (première interrogation)Voir Indicateurs de résultat
A
Accès à la mémoiregénéralités 9-4par adressage dans l’ACCU 1 9-8par le registre BR 9-22
Accès au DW 255 9-15Accumulateurs 3-15, 6-26
organisation 6-5ACQ (retard d’acquittement) 5-25Alarme de retardement 4-29, 4-33 - 4-34, 6-50Alarmes
inhibition 6-12inhibition sélective 6-29retardement général 6-32retardement sélectif 6-35
Alarmes d’horloge 4-29, 7-8à heure fixe 4-29, 4-33, 4-35, 6-43cycliques 4-29, 4-33, 4-37
Alarmes de processusinhibition 3-72libération 3-72, 4-45
Alarmes de processus via EB 0 4-31Alarmes de processus via EB 0
généralités 4-41interfaces utilisateur 4-41
Analyse d’erreurs 5-8Arrêt
état de fonctionnement 4-9Autotest 5-34
activation/désactivation de parties de test 5-37bits de commande 8-40information d’erreur 5-39traitement d’erreurs 5-38
B
BASPsignal 4-26, 4-29
Bits de commande 5-5, 5-9 - 5-10BL INEX (appel d’un bloc de code
non chargé) 5-24Bloc
appel de blocs 2-16, 3-8, 3-32
bloc étiquette 2-14, 2-35corps de bloc 2-13, 2-24, 2-36correction 2-15d’identification de l’automate 8-42effacement 6-14en-tête de bloc 2-13, 2-24, 2-36, 8-12généralités 2-6génération 6-17imbrication de blocs 3-5, 3-8liste d’adresses 3-8, 8-13numéro de bloc 2-12, 2-26, 3-33opérandes formels (paramètres du bloc) 2-27opérations de traitement 3-67profondeur d’imbrication 3-9types de blocs 2-12, 2-26
Bloc de données (DB/DX)DX 0 7-8
Blocs d’organisation (OB)de fonctions spéciales 2-22, 6-4généralités 2-12, 2-16gérant l’exécution du programme 2-19gérant le comportement à la mise en route 2-20pour interfaces utilisateur 2-18pour la communication en arrêt partiel 2-20pour la réaction aux erreurs 2-20pour le traitement d’erreurs 2-20
Blocs d’organisation de communication 10-22octet indicateur 10-25paramètres 10-23temps de cycle 10-31
Blocs de données (DB/DX)accès variable 6-53appel 2-38copie à partir d’une carte à mémoire 6-65copie ou duplication 6-65création 3-33DB 0 2-41, 3-8DB 1 2-41DB 1, création 10-9duplication d’une zone de données 6-59DX 0 2-41, 7-4 - 7-5DX 1 2-41DX 2 2-41généralités 1-13, 2-13, 2-35programmation 2-37structure 2-35test 6-57zone de validité 2-38
Blocs de programme (PB) 2-12, 2-16
Index
Programmation de la CPU 948C79000-G8577-C848-04 Index - 1
Blocs fonctionnels (FB/FX)appel et paramétrage 2-25, 2-28généralités 2-13, 2-23Voir Opérandes effectifs et formelsprogrammation 2-25standard 2-23, 2-33structure 2-24
Blocs séquentiels (SB) 2-12, 2-16BLPILE (pile des blocs) 5-5
affichage 5-6exploitation 5-7
C
Carte à mémoire 3-10Cartouche PG 11-17
démontage 12-6montage 12-5
Chien de gardeVoir Surveillance du temps de cycle
Code opération 2-6COLAH/AHMAS (erreur de traitement d’alarmes) 5-30Combinaisons sur bits 3-19, 3-50Communication cyclique 4-9Communication multiprocesseur 6-62
déroulement 10-15émission de données 10-40exemples d’application 10-53identification émetteur/récepteur 10-16initialisation 10-33liste d’assignation 10-37modes de fonctionnement 10-35réception de données 10-47stockage intermédiaire de données 10-17traitement parallèle 10-22unité de transfert 10-15
Compression de la mémoire 2-15Compteur 1-13, 3-28CONT (schéma à contacts) 2-4Contrat à heure fixe 4-35, 6-43
Voir Alarmes d’horloge à heure fixeCorrection de blocs 2-15Couplage série PG-AP 11-16CP 143 11-28
paramétrage 11-30CPU
type et identification 8-44CYC (dépassement du temps de cycle) 5-27Cycle 3-11, 4-30
interface utilisateur OB 1 4-31
niveau de traitement de programme 4-29points d’interruption 4-31
D
DAD (erreur d’adressage) 5-26DB 0 2-41, 3-8DB 1 2-41
création 10-9DB INEX (appel d’un DB/DX non chargé) 5-24DBA (adresse de début du bloc
de données) 9-11DBL (longueur du bloc de données) 9-13DCB (Décimal Codé Binaire) 2-11Décrémentation 3-66DEL (diode électroluminescente) 5-5
indications 4-12 - 4-13, 5-5Démarrage
déclenchement 4-17, 4-19Voir Mise en route
Démarrage à chaudredémarrage automatique étendu 4-27
Diagnostic d’erreur 5-8Données système 8-15DPE (périphérie défaillante) 4-19, 4-28DTC (erreur de transfert et de chargement) 5-29DX 0 2-41, 7-4
Voir Bloc de données DX 0paramètres 7-8structure 7-5
DX 1 2-41DX 2 2-41
E
Effacementde blocs 6-14général 4-14
ER.EDBX (erreur pour E DB/EX DX) 5-32Erreur d’adressage (DAD) 5-26Erreur de traitement d’alarmes d’horloge 4-39Erreurs
analyse 5-8empêcher 5-4information 5-5lors de l’autotest 5-33origine 5-23traitement avec blocs d’organisation 5-20
ETATVoir Indicateurs de résultat
Index
Programmation de la CPU 948Index - 2 C79000-G8577-C848-04
Etats de fonctionnementarrêt 4-9marche 4-29mise en route 4-16
Exemples de programmation 3-34 - 3-48Exposant
Voir Nombres à virgule flottante
F
FL 1 et FL 0Voir Indicateurs de résultat
Fonction cyclique 11-25Fonctionnement multiprocesseur
démarrage 10-13échange de données 10-4échange de données entre CPU et CP 10-7échange de données via blocs de dialogue 10-8lors du test 10-14mécanismes de communication 10-4programmation 10-9
Fonctions en ligne de la PG 11-4Fonctions spéciales
appel 6-5erreur pendant leur traitement 6-6généralités 6-4interfaces 6-5
G
Génération de blocs 6-17GRAPH 5 2-5
H
Horloge temps réel 8-32Horodateur interne 6-8, 6-38
I
Imbrication de blocs 3-5, 3-8profondeur d’imbrication 3-9
Imbrication de niveaux de traitement de programme 4-6Incrémentation 3-66Indicateurs de résultat
1e ? (première interrogation) 3-16, 3-20
ETAT 3-17, 3-20FL 1 et FL 0 3-18, 3-61généralités 3-16OU 3-17OVFL 3-17OVFLMEM 3-17RLG 2-7, 3-17, 3-20
Indications par DEL 4-12 - 4-13, 5-5Information d’erreur 5-5Inhibition d’alarmes 6-12, 6-29Interface
blocs séquentiels (SB) 2-12, 2-16du programme système 1-8, 1-10, 2-18
Interfaces série PG (utilisation parallèle) 11-17
fonctions à temps d’exécution court 11-19, 11-21fonctions à temps d’exécution long 11-19, 11-22fonctions cycliques 11-19, 11-22
Interfaces utilisateurpour l’alarme d’horloge à heure fixe 4-35pour l’alarme de retardement 4-34pour le démarrage 4-24pour le traitement de programme cyclique 4-31pour les alarmes d’horloge cycliques 4-38pour les alarmes de processus 4-41pour les interruptions 4-44
Interruptions 4-29généralités 4-43positionnement des cavaliers 12-4possibles en fin d’instruction 7-4possibles en fin de bloc 7-4système 4-32, 7-4, 7-9, 12-4
ITPILE (pile des interruptions) 4-5affichage 5-6, 5-9contenu 5-14indication 5-15information d’erreur 5-5informations 5-15
J
Jeu d’instructions 2-4
L
Langage de programmationC avec compilateur C S5 1-18GRAPH 5 1-18
Index
Programmation de la CPU 948C79000-G8577-C848-04 Index - 3
Langage de programmationSCL 1-18STEP 5 1-18, 2-4
LIST (liste d’instructions) 2-4Liste d’assignation 2-7, 2-24LOG (logigramme) 2-4Logiciel PG 1-18
M
MantisseVoir Nombres à virgule flottante
Masque PGpour génération du DB 1 10-10pour génération du DX 0 7-14
MDT (coupure secteur) 4-28Mémento
banalisé 10-53M 1-12, 10-23S 1-12utilisation multiple 4-46
Mémentos de couplageéchange de données 10-5généralités 3-13, 10-5positionnement des cavaliers 10-5transfert 10-8
Mémoire communeaccès 9-25généralités 9-4
Mémoire imageactualisation 4-29définition/transfert 6-20des entrées (MIE) 1-5, 1-11des sorties (MIS) 1-5, 1-11généralités 1-11, 3-13
Mémoire localeaccès 9-24généralités 9-4
Mémoire utilisateur 1-14, 3-10organisation 8-10
Mise en route, état de fonctionnement 4-21comparaison 6-64généralités 3-11, 4-16interruptions 4-28
Mode de fonctionnement de la CPU 1-5Mot de données 1-13, 2-35, 2-39Mots de données système
affectation des bits 8-18
N
Niveaux de traitement de programme 4-4, 4-6, 6-32
Nombresà virgule fixe 2-9à virgule flottante 2-9binaires 2-8décimaux 2-8décimaux codés binaire (DCB) 2-8, 2-11
Numéro de bibliothèque 2-36
O
Opérande 2-6Opérandes effectifs
de blocs fonctionnels 2-25, 2-29 - 2-30, 3-52, 3-55
Opérandes formelsde blocs fonctionnels 2-25, 3-52
Opérations 2-6arithmétiques 3-31complémentaires 2-4, 3-49d’arrêt 3-33d’organisation 3-59de base 2-4, 3-19de calcul 3-57de chargement 3-21, 3-55de comparaison 3-32, 3-47 - 3-48de composition d’image 3-33de comptage 3-44 - 3-46de conversion 3-63de décalage 3-61de mémorisation 3-20, 3-37 - 3-39, 3-52de saut 3-59de substitution 3-66de temporisation 3-40de temporisation et de comptage 3-26, 3-53de transfert 3-21, 3-55nulles 3-33STEP 5 3-15sur sémaphores 3-75 - 3-80système 2-4, 3-59, 9-4
Opérations combinatoires 3-34 - 3-37, 3-50sur bits 3-50sur mots 3-50
Organisation de la mémoire 9-4
Index
Programmation de la CPU 948Index - 4 C79000-G8577-C848-04
OUVoir Indicateurs de résultat
Outils de programmation 1-18OVFL (overflow : dépassement)
Voir Indicateurs de résultatOVFLMEM (dépassement mémorisé)
Voir Indicateurs de résultat
P
Pages de mémoire 9-29accès aux pages 9-29cellule de réservation d’accès 9-30
Paramétrage du DX 0 1-8Paramètres 2-6PARI (erreur de parité) 5-28Périphérie
cartes 1-11champ d’adressage 8-8zone P 1-11zone Q 1-11
Pile des interruptionsVoir ITPILE
Pointsd’interruption 3-14de contrôle 11-5
Présélectionsdu programme système 1-8modification 1-8, 7-4
Priorité 1-6, 4-5, 4-7, 4-33, 4-42, 4-44, 7-10Processeurs de communication (CP) 10-7Profondeur d’imbrication 3-9Programmation 1-15
structurée 2-5Programme
mémorisation 3-10organisation 3-5
Programme système 1-7Programme utilisateur 1-7, 1-9
sauvegarde 1-10tâches 1-9traitement 3-4, 3-11
R
RAM système 8-6Réaction
à l’appel d’un OB non chargé 5-21aux alarmes 3-12aux erreurs 2-20, 3-12, 5-23de la CPU aux erreurs 5-23 - 5-33
temps de réaction 4-46Redémarrage 4-21
Voir Mise en routeRegistre BR 9-22Représentation des valeurs numériques 2-8Résultat logique (RLG)
Voir Indicateurs de résultatRetardement d’alarmes 6-32, 6-35RLG (résultat logique)
Voir Indicateurs de résultatRUN
Voir Marche, état de fonctionnement
S
Schéma à contacts (CONT) 2-4Sémaphores 3-75 - 3-80Sous-niveau 4-7STOP
Voir ArrêtStructure de l’espace mémoire 8-4, 8-7SUB (erreur de substitution) 5-28Substitution d’opérandes 3-68Surveillance du temps de cycle 3-13, 5-27, 6-63
T
Temporisation T 1-13Temps de cycle 3-12, 5-27, 7-8
nécessaire en vigueur 8-20Temps de réaction 4-46Test
de l’horloge matérielle 5-35de la mémoire utilisateur 5-35de la surveillance du temps de cycle 5-36des lignes d’adresses 5-36du code des blocs de code 5-36du code du programme système 5-36du signal BASP 5-35
Traitement de programmecyclique 1-5, 1-16, 3-4, 3-11, 4-30déclenché par alarme 1-6, 4-32, 4-41déclenché par horloge 1-6
Traitement des erreursà l’aide des blocs d’organisation 5-20
Tranche horaire 5-34calcul 5-37définition 5-37
Transfert de blocs de mémoire 9-19Type et identification de CPU 8-44
Index
Programmation de la CPU 948C79000-G8577-C848-04 Index - 5
V
Valeurde comptage 3-28de temporisation 3-27
Valeurs numériquesreprésentation 2-8
Validité d’un bloc de données ouvert 2-40
Z
Zone des pages 9-29 - 9-30Zones BA/BB 8-14Zones BS/BT 8-15 - 8-17
occupation de la zone BS 8-16Zones d’opérandes 1-11
Index
Programmation de la CPU 948Index - 6 C79000-G8577-C848-04
1S5-155U CPU 948C79000-G8577-C848-04
�
Expéditeur :
Vos Nom : _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _.
Fonction : _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Entreprise : _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Rue : _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Code postal :_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Ville : _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Pays : _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Téléphone : _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Indiquez votre secteur industriel :
� Industrie automobile
� Industrie chimique
� Industrie électrique
� Industrie alimentaire
� Contrôle/commande
� Construction mécanique
� Pétrochimie
� Industrie pharmaceutique
� Traitement des matières plastiques
� Industrie du papier
� Industrie textile
� Transports
� Autres _ _ _ _ _ _ _ _ _ _ _
Siemens AG
A&D AS E 81
Oestliche Rheinbrueckenstr. 50
D-76181 Karlsruhe
République Fédérale d’Allemagne
2S5-155U CPU 948
C79000-G8577-C848-04
Vos remarques et suggestions:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Remarques / suggestions
Vos remarques et suggestions nous permettent d’améliorer la qualité générale de notredocumentation. C’est pourquoi nous vous serions reconnaissants de compléter et de ren-voyer ces formulaires à Siemens.
Répondez aux questions suivantes en attribuant une note comprise entre 1 pour très bienet 5 pour très mauvais.
1. Le contenu du manuel répond-il à votre attente ?
2. Les informations requises peuvent-elles facilement être trouvées ?
3. Le texte est-il compréhensible ?
4. Le niveau des détails techniques répond-il à votre attente ?
5. Quelle évaluation attribuez-vous aux figures et tableaux ?