Multiplicateur d'impulsion (Pulse Multiplier, PMUL)

Ces informations s’appliquent aux automates
CompactLogix
 5370,
ControlLogix
 5570,
Compact GuardLogix
 5370,
GuardLogix
 5570,
CompactLogix
 5380,
ControlLogix
 5580 et ControlLogix 5590.
L'instruction PMUL fournit une interface entre un module d'entrée de position (par exemple un module résolveur ou de retour codeur) et le système numérique, en calculant la modification en entrée d'une séquence de scrutation à une autre. La sélection d'une taille de mot spécifique permet de configurer l'instruction PMUL pour une mise en exergue au niveau du seuil de réinitialisation dans un processus continu et linéaire.
Langues disponibles
Diagramme à relais
Cette instruction n’est pas disponible dans un diagramme à relais.
Bloc fonctionnel
RSL5K_PMUL Function Block_v31
Texte structuré
PMUL(PMUL_tag);
Opérandes
Bloc fonctionnel
Opérande
Type
Format
Description
PMUL tag
PULSE_MULTIPLIER
Structure
Structure PMUL
Texte structuré
Opérande
Type
Format
Description
PMUL tag
PULSE_MULTIPLIER
Structure
Structure PMUL
Reportez-vous à Syntaxe du texte structuré pour plus d'informations concernant la syntaxe des expressions dans le texte structuré.
Structure PULSE_MULTIPLIER
Paramètre d’entrée
Type de données
Description
EnableIn
BOOL
Activez l'entrée. Si mis à zéro, l'instruction n'est pas exécutée et les sorties ne sont pas mises à jour.
La valeur par défaut est définie.
In
DINT
Le signal d'entrée analogique de l'instruction.
Valide = tout DINT
Par défaut = 0
Initialize
BOOL
L'entrée d'initialisation. Lorsqu'elle est définie, Out est maintenu à 0,0 et tous les registres internes sont réglés sur 0. Quand Initialize passe de défini à mis à zéro, In
n-1
= InitialValue (pas valide pour le mode Absolu). Lorsqu'elle est effacée, l'instruction est exécutée normalement.
InitialValue
DINT
Entrée de la valeur initiale. Quand Initialize passe de défini à mis à zéro, In
n-1
= InitialValue
Valide = tout DINT
Valeur par défaut = 0.
Mode
BOOL
L'entrée mode. Définir pour activer le mode Relatif. Effacer pour activer le mode Absolu.
La valeur par défaut est définie.
WordSize
DINT
La taille du mot en bits. Préciser le nombre de bits à utiliser lors du calcule (In
n
-In
n-1
) en mode Relatif.
En mode Absolu, WordSize n’est pas utilisé.
Lorsque la modification en In est supérieure à 1/2 * 2
(Wordsize-1)
, Out change de signe.
Si WordSize n'est pas valide, Out est maintenu et l’instruction définit le bit approprié dans Status.
Valide = de 2 à 32
Par défaut = 14
Multiplier
DINT
Le multiplicateur Diviser cette valeur par 100 000 pour contrôler le rapport de In à Out. Si la valeur n'est pas valide, l'instruction limite la valeur et définit le bit approprié dans Status.
Valide = de -1 000 000 à 1 000 000
Valeur par défaut = 100 000
Paramètre de sortie
Type de données
Description
EnableOut
BOOL
Activer la sortie.
Out
REAL
La sortie (Out) de l'instruction. Si le calcul Out déborde, Out est forcé sur
+
/– Infinity sign et le bit approprié est défini dans Status. Les indicateurs d'état mathématique sont définis pour cette sortie.
Status
DINT
État du bloc fonctionnel.
InstructFault (Status.0)
BOOL
L'instruction a détecté l'une des erreurs d'exécution suivantes. Il ne s'agit pas d'une erreur d'automate mineure ou majeure. Contrôlez les bits d'état restants pour déterminer la cause du problème.
WordSizeInv (Status.1)
BOOL
Valeur WordSize incorrecte
OutOverflow (Status.2)
BOOL
Le calcul de la sortie interne a débordé.
LostPrecision (Status.3)
BOOL
Out < -2
24
ou Out > 2
24
. Quand l'instruction convertit Out d’un nombre entier en valeur réelle, les données sont perdues si le résultat est supérieur à |2
24
| car les types de données REAL sont limités à 2
24
.
MultiplierInv (Status.4)
BOOL
Valeur du multiplicateur incorrecte
Description
L’instruction PMUL fonctionne en mode Relatif ou Absolu.
En mode Relatif, la sortie de l'instruction est la différenciation de l'entrée d'une scrutation à une autre multipliée par le (Multiplicateur/100 000). En mode Relatif, l’instruction enregistre le reste éventuel après l’opération de division dans une scrutation et le rajoute lors de la prochaine scrutation. De cette manière, l’information sur la position n’est pas perdue au cours de l’opération.
PMUL Description relative mode
En mode Absolu, l’instruction peut mettre à l’échelle une entrée, comme la position, sans perdre d’information d’une scrutation à une autre.
PMUL Description
Calcul de la Sortie et du Reste
L'instruction PMUL utilise ces équations pour calculer Out en mode absolu ou en mode relatif :
Ans = ((DiffInput x Multiplier) + INT_Remainder)
INT_Out = Ans/100,000
INT_Remainder = Ans - (INT_Out * 100,000)
Out = INT_Out
Affecte les indicateurs d'état mathématique
Non
Conditions de défaut
Un défaut mineur se produit lorsque :
Type de défaut
Code de défaut
Cette fonctionnalité est activée et un débordement est détecté.
4
4
Reportez-vous à la section Attributs communs pour plus d’informations sur les défauts liés aux opérandes.
Exécution
Bloc fonctionnel
Condition
Action du bloc fonctionnel
Préscrutation
Les bits EnableIn et EnableOut sont définis sur faux.
Tag.EnableIn est faux
Les bits EnableIn et EnableOut sont définis sur faux.
Tag.EnableIn est vrai
Les bits EnableIn et EnableOut sont définis sur vrai.
L'instruction s'exécute.
Première exécution de l'instruction
N/A
Première scrutation de l'instruction
In
n-1
= In. Out
n-1
=0. Reste = 0.
Post-scrutation
Les bits EnableIn et EnableOut sont définis sur faux.
Texte structuré
Condition/état
Action entreprise
Préscrutation
Reportez-vous à Pré-scrutation dans le tableau Bloc fonctionnel.
Exécution normale
Reportez-vous à Tag.EnableIn est vrai dans le tableau Bloc fonctionnel.
Post-scrutation
Reportez-vous à Post-scrutation dans le tableau Bloc fonctionnel.
Exemples
Exemple 1
L’utilisation la plus courante de l’instruction PMUL est dans le mode de fonctionnement relatif. Dans ce mode, l'instruction PMUL sert à plusieurs fins. Tout d'abord, dans le mode relatif, l'instruction PMUL différencie les informations qu'elle reçoit à son entrée d'une scrutation à une autre. Lorsque les données sont reçues, l’instruction produit la différence de l’entrée d’une scrutation à une autre. Cela signifie que si In = 500 à la scrutation « n » et ensuite In = 600 à la scrutation « n + 1 », Out = 100 à la scrutation « n + 1 ».
En deuxième lieu, dans ce mode de fonctionnement, l'instruction PMUL compense également les valeurs de « réinitialisation » des données binaires provenant d'un module de retour. Par exemple, un module de retour du résolveur peut avoir 12 bits de résolution, représentée comme une valeur binaire, avec signe, allant de -2048 à 2047. En termes de données brutes provenant du module de retour, la rotation du dispositif de retour peut être représentée comme indiqué ci-dessous :
PMUL Example 1
Dans cet exemple, comme la valeur des données de retour varie de 2047 à -2048, le changement effectif de position équivaut à un saut de 4095 comptages de position. Toutefois, dans la réalité ce changement de position est seulement de 1 partie de 4096 en termes de rotation du dispositif de retour du résolveur. En comprenant la taille de mot réelle des données entrées par le module de retour, l'instruction PMUL affiche les données de manière rotative, comme le montre le diagramme suivant :
PMUL Example 2
En connaissant la taille de mot des données entrées dans ce bloc, l'instruction PMUL différencie une sortie de 1 comptage car l'entrée dans le bloc varie de 2047 à -2048, au lieu de la valeur 4095 calculée mathématiquement.
CONSEIL: Lors de l’application de ce bloc, si la direction de rotation doit être correctement différenciée, il est important de vérifier que les données de retour n’augmentent pas plus de la moitié de la taille du mot d’une scrutation à l’autre.
Dans l'exemple ci-dessus, si le dispositif de retour se déplace dans le sens horaire, c'est-à-dire que pour la scrutation « A » il lit 0 et pour la scrutation « B » il lit -2000, le changement effectif de position équivaut à +2096 comptages dans le sens horaire. Cependant, puisque ces deux valeurs sont supérieures à la moitié de la taille des mots (ou supérieures à la moitié de la rotation du dispositif physique,) l'instruction PMUL calcule que le dispositif de retour a tourné dans la direction opposée et est revenue à une valeur de -2000 au lieu de +2096.
Le troisième attribut du bloc multiplicateur d’impulsions est qu’il conserve les composants fractionnaires d’une scrutation à une autre de n’importe quel reste existant issu du facteur de mise à l’échelle Multiplicateur/100 000. Une fois que chaque exécution du bloc est terminée, le reste de la scrutation précédente est ajouté au total de la valeur actuelle afin que tous les comptages ou « impulsions » soient pris en compte et qu’aucune donnée ne soit perdue dans le système. La sortie du bloc Out produit toujours un nombre entier dans un type de donnée à virgule flottante.
Bloc fonctionnel
RSL5K_PMUL Function Block Example 1_v31
En supposant Initial_Position = 0 et Multiplicateur = 2500 => (25 000/100 000)
Scanner
Position_Feedback
PMUL_02.Out
Total_Position
n
0
0
0
n + 1
1
0
0
n + 2
2
0
0
n + 3
3
0
0
n + 4
4
1
1
n + 5
5
0
1
Texte structuré
MUL_02.In := Position_feedback;
PMUL_02.Initalize := Initialize_Position ;
PMUL_02.WordSize := 12 ;
PMUL_02.Multiplier := 25000 ;
PMUL(PMUL_02);
UPDN_02.Initialize := Initialize_Position ;
UPDN_02.InPlus := PMUL_02.Out ;
UPDN(UPDN_02);
Total_Position := UPDN_02.Out;
Exemple 2
Dans cette application d’arbre électrique, le retour du moteur A agit comme une référence maître que le moteur B doit suivre. Le retour du moteur A est aliasé à « Position_feedback ». Le retour du moteur B est aliasé à « Follower_Position ». Les multiplicateurs des deux instructions présentant un rapport de 1/4, le moteur B doit accomplir un tour toutes les quatre révolutions du moteur A afin de maintenir une valeur cumulée de zéro dans le totalisateur UPDN. N'importe quelle valeur différente de zéro sur la sortie de l'instruction UPDN est considérée comme Position_error et peut être régulée et retournée vers le moteur B afin de maintenir un verrouillage de phase entre les deux moteurs.
Bloc fonctionnel
RSL5K_PMUL Function Block Example 2_v31
Texte structuré
PMUL_02.In := Position_feedback;
PMUL_02.Initalize := Initialize_Position ;
PMUL_02.WordSize := 12 ;
PMUL_02.Multiplier := 25000 ;
PMUL(PMUL_02);
PMUL_03.In := Follower_Position;
PMUL_03.Initalize := Initialize_Position;
PMUL_03.WordSize := 12;
PMUL_03.Multiplier := 100000;
PMUL(PMUL_03);
UPDN_02.Initialize := Initialize_Position ;
UPDN_02.InPlus := PMUL_02.Out ;
UPDN_02.InMinus := PMUL_03.Out;
UPDN(UPDN_02);
Position_error := UPDN_02.Out;
Fournir une réponse
Vous avez des questions ou des commentaires sur cette documentation ? Veuillez envoyer vos commentaires ici.
Normal