Minuterie Siemens S7-1200

1. Introduction de la minuterie Siemens S7-1200

Le temporisateur du S7-1200 est un temporisateur CEI et le nombre de temporisateurs pouvant être utilisés dans le programme utilisateur n'est limité que par la capacité mémoire de la CPU.

Pour utiliser le temporisateur, vous devez utiliser le bloc de données d'instance relatif au temporisateur ou la variable de bloc DB dont le type de données est IEC_TIMER (ou TP_TIME, TON_TIME, TOF_TIME, TONR_TIME). Les différentes variables ci-dessus représentent différents temporisateurs.

Le S7-1200 contient quatre temporisateurs :

  • Temporisateur d'impulsions TP
  • Temporisateur à l'enclenchement TON
  • Temporisateur de retard TOF
  • Accumulateur de temps TONR

 Sont également incluses les instructions Reset Timer (RT) et Load Duration (PT).

Reportez-vous à la figure 1 pour l'emplacement de la commande, à la figure 2 pour les broches de la minuterie et à la figure 3 pour l'utilisation de la minuterie et le diagramme de synchronisation. Ces quatre types de temporisateurs ont également deux types : boîtier de fonction et type de bobine, voir la figure 4 pour la différence.

Figure 1 poste de commande 

 Figure 2 Récapitulatif des broches du minuteur

 Figure 3 Utilisation de la minuterie et diagramme de synchronisation 

Figure 4 La différence entre la minuterie de réinitialisation et la durée de charge

Deux, création de minuterie Siemens S7-1200

Il existe plusieurs manières de créer une temporisation S7-1200 :

1. Faites glisser l'instruction de la boîte de fonction directement dans le bloc

Générez automatiquement le bloc de données d'arrière-plan de la minuterie, qui se trouve dans "System Block > Program Resource", voir Figure 5.

Figure 5 Générer automatiquement le bloc de données d'arrière-plan de la minuterie 

2. Faites glisser l'instruction de la boîte de fonction directement dans le bloc FB

Pour générer plusieurs instances, ce bloc fonction enregistre les données dans le bloc de données d'instance du bloc fonction appelant, voir Figure 6.

Figure 6 Arrière-plans multiples

3. Faites glisser les instructions de la boîte de fonction directement dans les blocs FB et FC

Générez une instance de paramètre à partir de TIA Portal V14, voir Figure 7.

Figure 7 exemple de paramètre 

4. Créer une nouvelle variable de type IEC_TIMER dans le bloc DB, variable statique du FB, variable INOUT du FC et du FB

Lorsque vous faites glisser l'instruction de minuterie de la boîte de fonction dans le bloc du programme, cliquez sur le bouton "Annuler" sur la page contextuelle "Options d'appel", puis remplissez la variable construite dans la position spécifiée. Pour les instructions de type bobine, il s'agit de la méthode préférée.

(1) Créez à nouveau IEC_TIMER et d'autres variables de type (CONT/LOG) dans le bloc DB. S'il s'agit d'un tableau d'IEC_TIMER et d'autres variables de type, le S7-1200 le prend en charge à partir de la version V2.0, voir Figure 8 à Figure 10.

Figure 8 Définition dans le bloc DB 

Figure 9 Utilisation de la minuterie de la boîte de fonction 

Figure 10 Utilisation de la minuterie de type bobine 

(2) Créez à nouveau IEC_TIMER et d'autres variables de type (CONT/LOG) dans les variables statiques du FB. S'il s'agit d'un tableau d'IEC_TIMER et d'autres variables de type, le S7-1200 le prend en charge à partir de la version V2.0, voir Figure 11.

Figure 11 Définition en variables statiques

(3) Nouvelle création de IEC_TIMER et d'autres variables de type (CONT/LOG) dans les variables INOUT de FC et FB. S'il s'agit d'un tableau de IEC_TIMER et d'autres variables de type, le S7-1200 le prend en charge à partir de la version V2.0 et prend en charge IEC_TIMER de TIA Portal V14, etc. Tableau de longueur variable (ARRAY[#]) de variables de type, voir Figure 12.

Défini dans la Figure 12 ENTRÉE/SORTIE 

(4) Les versions SCL des trois méthodes ci-dessus sont prises en charge à partir de TIA Portal V14, voir Figure 13.

Figure 13 SCL utilisé dans

5. Lors de l'insertion dans le DB, sélectionnez un bloc de données de type IEC_TIMER et remplissez le bloc de données au-dessus de l'instruction

Le bloc de données généré par cette méthode est équivalent au bloc de données d'arrière-plan du premier type et se trouve dans "Bloc système > Ressource de programme". À partir de TIA Portal V11, l'instruction de type bobine est également applicable, voir Figure 14.

Figure 14 Création d'un nouveau DB de type IEC_TIMER 

3. Problèmes courants de la minuterie Siemens S7-1200

1. Pourquoi le chronomètre ne compte-t-il pas ?

(1) Le bit d'entrée de la minuterie doit avoir un saut du signal de niveau, et la minuterie commencera à compter. Si un signal constant est utilisé comme bit d'entrée, il ne démarrera pas la temporisation. TP, TON et TONR nécessitent que IN passe de "0" à "1" pour démarrer, et TOF nécessite que IN passe de "1" à "0" pour démarrer.

(2) Le bloc de données d'arrière-plan du temporisateur est réutilisé.

(3) Uniquement lorsque le point Q ou ET de la boîte de fonction du temporisateur est connecté à la variable, ou que le point Q ou ET dans le DB d'arrière-plan (ou la variable de type IEC_TIMER) est utilisé dans le programme, le temporisateur commencera à chronométrer et à mettre à jour le temps de chronométrage. Reportez-vous à la figure 15.

Figure 15 Méthodes courantes d'utilisation de la minuterie

2. Comment programmer une minuterie à réinitialisation automatique et générer une impulsion ?

Reportez-vous à la figure 16 pour la bonne réponse et joignez 2 méthodes de programmation incorrectes courantes.

Raison : La mise à jour de l'heure du temporisateur S7-1200 se produit lorsque le point Q ou la variable de connexion ET du boîtier de fonction du temporisateur est utilisé, ou lorsque le point Q ou ET dans le DB d'arrière-plan (ou la variable de type IEC_TIMER) est utilisé dans le programme .

Autrement dit, si le point Q du même DB d'arrière-plan est utilisé plusieurs fois dans le programme, ou si le point Q de la boîte de fonction de temporisation ou la variable de connexion ET sont utilisés, et le point Q du DB d'arrière-plan est utilisé, le Les deux situations ci-dessus entraîneront l'exécution du minuteur au cours d'un cycle d'analyse. Plusieurs mises à jour peuvent empêcher le minuteur de fonctionner normalement.

 Figure 16 Exemple de temporisateur à réinitialisation automatique

Le flux de la méthode correcte divise le programme en deux parties conformément aux instructions, comme illustré à la Figure 17.

Figure 17 Décomposition de l'instruction correcte

(1) Phase 1 : "DB2" initial. Impulsion = Faux, donc "DB2". L'impulsion est inversée sur Vrai, déclenchant le temporisateur pour commencer à compter, la sortie "DB2". Impulsion = Faux, l'état reste inchangé ; la synchronisation le temps est inférieur à , il est toujours au stade 1 ;

(2) Lorsque "l'achèvement du temps de synchronisation" se produit à la position de ①, le temporisateur est mis à jour à TON, et les sorties Q sont vraies, de sorte que la sortie "DB2". Pulse=True, et l'impulsion "DB2" est inversée dans le cycle suivant Si c'est Faux, la sortie "DB2" Impulsion = Faux, et elle reviendra à l'étape 1 au cycle suivant ;

(3) Lorsque "l'achèvement du temps de synchronisation" se produit à la position de ②, cela n'affecte pas la mise à jour de la minuterie et la sortie ne sera pas modifiée avant le cycle suivant, et elle revient à l'étape 2.

On peut voir d'après ce qui précède que le temporisateur réalise une réinitialisation automatique, et "DB2".pulse=true ne maintient qu'un seul cycle, formant une impulsion.

Utilisez la première mauvaise méthode pour expliquer pourquoi cette méthode ne peut pas réaliser la minuterie à réinitialisation automatique et générer des impulsions. Comme le montre la figure 18, le programme est divisé en trois parties selon les instructions :

Figure 18 Décomposition des instructions erronées

(1) Phase 1 : Initialement, la première ligne "IEC_Timer_0_DB".Q=False, déclenche le temporisateur pour démarrer le comptage, la deuxième ligne, lorsque le temps de temporisation n'est pas terminé, "IEC_Timer_0_DB".Q=False reste inchangé, et la sortie "DB2" .Pulse=False, si le temps de temporisation est inférieur à, il est toujours en phase 1 ;

(2) Phase 2 : lorsque "l'achèvement du temps de synchronisation" se produit à la position de ①, le temporisateur est mis à jour à "IEC_Timer_0_DB".Q dans la première ligne. Après la mise à jour, "IEC_Timer_0_DB".Q=True, et l'inverse est False , à ce moment comme entrée de TON, ce qui réinitialise la minuterie. "IEC_Timer_0_DB".Q=False dans la deuxième ligne, la sortie "DB2".Pulse=False, et il reviendra à l'étape 1 au cycle suivant ;

(3) Étape 3 : Lorsque l'"achèvement du temps de temporisation" se produit à la position ②, le temporisateur est mis à jour à "IEC_Timer_0_DB".Q sur la deuxième ligne. Après la mise à jour, "IEC_Timer_0_DB".Q=True, la sortie " DB2 ".pulse=Vrai. Attendre le cycle suivant, "IEC_Timer_0_DB".Q=True, l'inversion est False, à ce moment, elle est utilisée comme entrée de TON pour réinitialiser le timer, "IEC_Timer_0_DB".Q=False dans la deuxième ligne, la sortie "DB2".Pulse= False, il reviendra à l'étape 1 au cycle suivant ;

(4) Étape 4 : lorsque le temps de synchronisation se produit à la position de ③, cela n'affecte pas la mise à jour de la minuterie et la sortie ne sera pas modifiée avant le cycle suivant, et elle revient à l'étape 2.

On peut voir d'après ce qui précède que peu importe à quel moment le "temps de la minuterie est terminé", la minuterie peut réaliser une réinitialisation automatique, mais uniquement lorsque le temps de temporisation atteint la position où se trouve ②, "DB2". ne maintient qu'un cycle, une impulsion est formée, mais dans ① et ③, "DB2".L'impulsion est toujours fausse et ne peut pas former d'impulsion. Dans le programme normal, le temps d'exécution de ② prend une très petite proportion dans tout le cycle de balayage, il n'y a donc qu'une très faible probabilité que l'impulsion puisse être réalisée. Cette méthode ne peut donc pas être utilisée et la deuxième méthode d'erreur est similaire.

3. Comment utiliser la minuterie pour obtenir un chronométrage précis ?

Par exemple, pour une temporisation à l'enclenchement avec une temporisation de 1 s, lorsque le programme scrute le point Q ou ET de la boîte de fonction temporisateur ou scrute le point Q ou ET dans le DB d'arrière-plan (ou une variable de type IEC_TIMER) , si le temps Il est de 997 ms, et il continuera seulement à attendre le prochain balayage régulièrement, et le prochain balayage peut être de 1003 ms, et la minuterie est activée à ce moment.

C'est-à-dire qu'il est presque impossible d'activer exactement 1. Si nous coopérons avec le compteur pour obtenir une temporisation plus longue, l'erreur ne fera qu'augmenter.

Par conséquent, il est recommandé d'utiliser l'alarme cyclique (OB30) avec le compteur pour obtenir une synchronisation précise.

4. Dans l'instruction de la minuterie, quelle est la différence entre la boîte de fonction et le type de bobine ?

Le principe est exactement le même, à quelques différences près :

(1) Le point Q ou ET peut être défini sur la boîte de fonction temporisateur, et le point Q ou ET dans le DB de fond (ou variable de type IEC_TIMER) n'a pas besoin d'apparaître dans le programme ; tandis que le temporisateur de type bobine doit utiliser le DB de fond (ou variable de type CEI_TIMER) dans le point Q ou ET ;

(2) La minuterie de la boîte de fonction peut automatiquement demander de générer le bloc d'arrière-plan lors de son utilisation, ou choisir de ne pas le générer ; tandis que la minuterie de type bobine ne peut créer le bloc d'arrière-plan que manuellement ;

(3) Si le temporisateur de bobine apparaît au milieu du segment de réseau, cela n'affectera pas le changement de RLO, comme illustré à la Figure 19, "DB46". Static_1 et I1.0 changent de manière synchrone.

Figure 19 Exemple de temporisateur de type bobine 

Supongo que te gusta

Origin blog.csdn.net/viixin/article/details/131370507
Recomendado
Clasificación