Accueil > Forum > Programmation IEC 61131 (LogicLab) > Gestion de l'hystérésis sur le contrôle du réchauffeur
- Ce sujet a 5 réponses, 2 participants et a été mis à jour pour la dernière fois 8 années, 2 mois da Sergio Bertana.
-
auteurPost
-
Novembre 18, 2015 à 2: pm 19 #35879Anonymeinactif
J'ai créé un programme simple échelle qui gère la commande d'un appareil de chauffage sur l'acquisition de la température de Pt100. Pour éviter les oscillations sur le contrôle du chauffage, j'ai réussi une hystérésis sur la valeur de la température.
Ne pas être très pratique en langage ST, suite à ce qui est rapporté dans ce sujet Je l'ai fait tout en échelle, ici c'est capture d'écran du programme. Je me demandais s'il était possible d'avoir un exemple en ST, donc ça peut aussi être utile pour moi de me rapprocher de l'utilisation du langage.
Novembre 18, 2015 à 2: pm 30 #39195Sergio BertanaAdministrateur du forumÉtant donné que la gestion de l'hystérésis que vous avez effectuée est correcte, le schéma que vous avez créé n'a rien de l'échelle et est plus adapté au langage FBD (Capture d'écran). À tel point que dans la nouvelle version de LogicLab 4, l'éditeur d'échelle a été révisé pour "costringere»Le développeur doit suivre les règles dictées par la norme CEI 61131. Mais ne vous inquiétez pas, il est toujours possible de continuer à utiliser la rétrocompatibilité avec l'éditeur actuel. Voyons maintenant comment écrire le programme en ST.
AnInp.Address:=0; (* Module address *)
AnInp.Channel:=0; (* Module channel *)
AnInp.Mode:=AD_VOLT_0_10_COMMON; (* Acquisition mode *)
AnInp(); (* Execute the analog acquisistion *)IF (AnInp.Value < Minimum) THEN Heating:=TRUE; END_IF; (* If the value drops below minimum set the command *)
IF (AnInp.Value >= Maximum) THEN Heating:=FALSE; END_IF; (* If the value reach the maximum reset the command *)
IF (AnInp.Fault) THEN Heating:=FALSE; END_IF; (* On FB fault reset the command *)Même pour ceux qui n'ont aucune expérience de la programmation en langage ST, je crois que le programme est lisible, dans la première partie l'acquisition est gérée. Ensuite, la valeur acquise est comparée à l'instruction IF avec les valeurs minimale et maximale et si la condition est vraie, les opérations écrites après le THEN sont effectuées.
Novembre 18, 2015 à 3: pm 40 #39196Sergio BertanaAdministrateur du forumBien sûr, il est pratique de créer une fonction pour gérer l'hystérésis. Dans ce programme (presse) J'ai créé deux fonctions pour la gestion de l'hystérésis, l'une écrite en ST et l'autre en FBD (Télécharger le programme).
Novembre 20, 2015 à 2: pm 00 #39198AnonymeinactifJe devrais vérifier que:
Température <de SetPoint -> vanne ouverte A (chaleur)
Température> de SetPoint -> ouvrir la vanne B (cool)
-2 ° de SetPoint> Température <+ 2 ° de SetPoint -> fermer les vannes A et BDe cette manière, si le débit de chaleur ou de froid (pour les pompes ou vannes surdimensionnées) est trop important, les arrêter avant la consigne n'a pas tendance à le dépasser.
Novembre 20, 2015 à 2: pm 15 #39199Sergio BertanaAdministrateur du forumEn attendant, disons qu'avec une régulation On / Off il est difficile d'éviter les dépassements, le système a toujours tendance à dépasser un peu les valeurs de consigne, seule une régulation PID permet d'éviter ce problème. Mais pour réaliser un contrôle PID, vous devez avoir des pompes et / ou des vannes qui peuvent être gérées de manière analogique (vitesse / débit variable).
Cependant, c'est une bonne solution de créer une bande morte autour de la valeur SetPoint (vous avez fixé ± 2 degrés) mais vous pouvez avoir une valeur variable à définir expérimentalement en fonction des tests réels sur le système. En augmentant la bande morte, vous pouvez arrêter l'action avant d'atteindre le SetPoint en laissant à l'inertie thermique la tâche d'amener la température à la valeur SetPoint sans avoir de dépassement.
Ici c'est capture d'écran Simulation d'un simple chauffage à double effet avec bande morte sur SimuLab (Télécharger le programme).
Février 3, 2016 à 8: 15 am #39330Sergio BertanaAdministrateur du forumJ'attache le FB OnOffRegulation que j'ai fait pour gérer l'ajustement des appareils de chauffage de l'entreprise. Le FB gère le seuil de température avec une bande morte pour éviter les pendules sur la commande (presse, bibliothèque).
-
auteurPost
- Vous devez être connecté pour répondre à ce sujet.