Instruction de sortie impulsionnelle avec indication des voies (sortie MLI)
Cette instruction renvoie un signal de sortie avec modulation de largeur d’impulsions en fonction du DUT spécifié. Les impulsions sont renvoyées en sortie de la voie indiquée lorsque le drapeau de contrôle de cette voie est FALSE et la condition d’exécution est TRUE.
Entrée
Adresse de départ de la zone contenant le tableau de données
Voie de la sortie impulsionnelle :
FP-XH C30 T/P: 0–3
FP-XH C60 T/P: 0–5
FPS: 0,2
FP-X, FP-XH Relay: 0,1
FP-X, FP-XH 16k Transistor: 0–2
FP0R, FP0H, FP-X, FP-XH 32 Transistor: 0–3
FP-XH 32k Transistor: 0–5
Utilisez le DUT prédéfini suivant : F173_PulseOutput_PWM_Hz_DUT
Les paramètres suivants peuvent être indiqués dans le DUT :
Fréquence approximative
Rapport impulsion/pause
Le rapport entre la largeur d’impulsions et la durée d’impulsions d’une forme d’onde rectangulaire. Pour un train d’impulsions dans lequel la largeur d’impulsions est de 1ms et la durée d’impulsions de 4ms, le rapport impulsion/pause est de 0,25 ou 25%.
Le rapport impulsion/pause, en particulier lorsqu’il est proche de la valeur minimale ou maximale, peut différer du rapport impulsion/pause indiqué en fonction de la tension ou du courant de charge.
Le rapport impulsion/pause peut être modifié à chaque scrutation.
La constante de fréquence K ne peut pas être modifiée pendant l’exécution de l’instruction. Si elle est modifiée, cela n’aura aucun effet sur la fréquence mais sur la résolution du rapport impulsion/pause.
Si le rapport impulsion/pause est modifié et sa valeur est en dehors de l’intervalle autorisé pendant l’exécution de l’instruction, le rapport impulsion/pause est modifié et ramené à la valeur maximale. En début d’exécution de l’instruction, un message d’erreur s’affiche.
Si la fréquence est modifiée en une valeur en dehors de l’intervalle autorisé pendant l’exécution de l’instruction, la résolution est ajustée à 100. En début d’exécution de l’instruction, aucun message d’erreur ne s’affiche.
Si le rapport impulsion/pause est modifié pour être égal ou supérieur à 100% pendant l’exécution de l’instruction, la fréquence est ajustée à la valeur maximale possible pour la résolution spécifiée. En début d’exécution de l’instruction, aucun message d’erreur ne s’affiche.
Si le programme principal et le programme d’interruption contiennent le code de la même voie, veillez à ce qu’ils ne soient pas exécutés simultanément.
FP0H, FP0R, FP-XH, FP-X : Lorsqu’une instruction de sortie impulsionnelle est exécutée et lorsque des impulsions sont sorties, le drapeau de contrôle de la sortie impulsionnelle (par ex. sys_bIsPulseChannel0Active) de la voie correspondante est TRUE. Aucune autre instruction de sortie impulsionnelle ne peut être exécutée tant que ce drapeau est TRUE.
FP0H, FP0R, FP-XH, FP-X : Définissez Sortie MLI pour la voie souhaitée dans les registres système.
Toutes les variables d’entrée et de sortie utilisées pour programmer cette fonction ont été déclarées dans l’en-tête du POU. Le même en-tête de POU est utilisé pour tous les langages de programmation.
VAR
dutPWM1: F173_PulseOutput_PWM_Hz_DUT:=diFrequency_Hz:=1000,iDuty:=50;
bRunPWM: BOOL:=FALSE;
END_VAR
BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 5 ;
NETWORK_BODY
B(B_CONTACT,,bRunPWM,6,1,8,3,);
B(B_F,F173_PulseOutput_PWM_Hz!,,15,0,28,5,,?DEN?Ds_dutDataTable?Hn_iPulseOutputChannel?AENO);
B(B_VARIN,,dutPWM1,13,2,15,4,);
B(B_VARIN,,2,13,3,15,5,);
L(1,0,1,5);
L(1,2,6,2);
L(8,2,15,2);
END_NETWORK_BODY
END_NET_WORK
END_BODY
If (bRunPWM) Then
F173_PulseOutput_PWM_Hz(s_dutDataTable := dutPWM1, n_iPulseOutputChannel := 2);
END_IF;