Accueil > Forum > contrôleurs SlimLine e Netsyst (LogicLab) > Mise à jour des E / S via un FB ou une image de process
- Ce sujet a 4 réponses, 3 participants et a été mis à jour pour la dernière fois 9 années, 10 mois da Sergio Bertana.
-
auteurPost
-
Avril 26, 2011 à 10: 38 am #35000Anonymeinactif
Je travaille avec une Slim Line et un terminal Weintek connecté via Modbus ethernet.
En travaillant sur mon projet, je suis confronté à ce doute, à savoir ce qui change entre la gestion des E / S du système via la mémoire image, puis le pointage de la variable d'entrée comme% IX3.1 par exemple et la variable de sortie comme% QX1.0 par exemple. XNUMX, et à la place de les gérer via le bloc fonction get / set de l'E / S?
Peut-être que la différence est que si j'active une sortie via le bloc fonction, elle est activée immédiatement (à l'exception du 300us pour exécuter la commande), alors que si je la gère dans l'image de processus, elle sera activée à la fin de la tâche plc?
Si tel est le cas, à quelle tâche les images de process se réfèrent-elles, à la lente ou à l'arrière?
Avril 26, 2011 à 10: 45 am #36714Sergio BertanaAdministrateur du forumLa question est intéressante et donne l'occasion de clarifier comment le système Slim Line met à jour les E / S.
Tous les modules d'E / S logiques connectés au module CPU sont mis à jour automatiquement (image du processus) et mappés dans les tableaux% IX et% QX dans le tâche lente. Les entrées sont acquises avant et les sorties sont gérées après l'exécution du programme utilisateur. Ainsi, l'image de l'état d'une E / S est valable pour toute l'exécution de la tâche lente.
pour tâche de retour, une mémoire image "parallèle" est créée qui rapporte l'état des entrées avant exécution et gère les sorties après l'exécution du programme utilisateur, cette "image" de l'état d'une E / S est également valable pour toute l'exécution de la tâche arrière. Attention! la gestion de la même sortie logique à la fois dans la tâche lente et la tâche arrière crée des désalignements entre les deux tâches et è da evitare.
dans tâche rapide si vous souhaitez gérer les E / S à la vitesse d'exécution de la tâche, il est nécessaire d'acquérir sa valeur et de gérer son activation avec les FB appropriés. Si vous utilisez ceux mappés dans la table% IX et% QX, ils seront toujours mis à jour à la vitesse d'exécution de la tâche lente. Attention! l'exécution de la tâche rapide interrompt l'exécution de la tâche lente, agissant donc sur les variables% IX et% QX "dirty" la mémoire image de la tâche lente.
Comme vous l'avez dit, l'utilisation des FB de gestion des E / S permet d'acquérir et de gérer les modules d'E / S directement quelle que soit la mémoire image. Attention! la gestion d'un module de sortie doit être effectuée en considérant que la tâche lente gérera la mémoire image, donc elle pourrait définir dans les sorties une valeur différente de celle définie par le FB provoquant le clignotement des sorties.
Avril 26, 2011 à 1: pm 26 #36715Sergio BertanaAdministrateur du forumEn ce qui concerne la gestion des E / S analogiques, les FB appropriés doivent être utilisés. Il est possible d'insérer les FB indifféremment dans toutes les tâches, mais sinon pour des cas exceptionnels, mon conseil est d'insérer l'appel dans le tâche de retour.
Il est également possible d'acquérir une entrée et / ou de gérer une sortie sur un module analogique dans une tâche et d'acquérir une autre entrée et / ou de gérer une autre sortie du même module dans une autre tâche.
Si une valeur d'entrée analogique est utilisée dans plusieurs tâches, elle est acquise plus rapidement dans la tâche exécutée et la valeur acquise dans l'autre tâche est utilisée, sans relancer le FB.
Juin 27, 2014 à 11: pm 27 #38296FabioPartecipanteJe ne comprends pas pourquoi les exemples tels que FBOnOffCycle ne montrent pas les entrées changeantes ni en simulation ni en essayant de donner de la tension à la borne DI00 du CPU. Je pensais qu'en déclarant% XI0.0 il suffirait que l'entrée soit lue sans avoir à ajouter des FB de lecture appropriés. Est-ce que je fais quelque chose de mal ?
June 28, 2014 à 6: 20 am #38297Sergio BertanaAdministrateur du forumComme 16 modules peuvent être connectés au bus d'extension du module CPU (adresses 0 à 15), les E / S du module CPU sont adressées avec l'adresse de module 255. Ainsi, si vous utilisez le mappage de mémoire image, vous devez mapper les entrées comme % IX255.0,% IX255.1,… et des sorties telles que% QX255.0,% QX255.1,… Si vous gérez les E / S directement avec les blocs fonctionnels correspondants, vous devez définir l'adresse de module 255.
Attention, cette règle ne s'applique pas aux modules de la CPU NetlogIII, dans ce cas, les E / S du module CPU sont mappées sur l'adresse 0.
La raison de cette différence est que la forme NetlogIII est basé sur un Module CPU OEM, qui a déjà des E / S câblées (adresse de module 255). La partie matérielle physique des E / S n'est rien de plus qu'un Module d'extension d'E / S 20 (Avec adresse 0) connecté au bus d'extension du module de la CPU. Tous les autres modules d'extension connectés au bus prendront automatiquement les adresses de 1 à 15.
-
auteurPost
- Vous devez être connecté pour répondre à ce sujet.