Ban2 knowledge

Gestion de la mémoire d'un API SCHNEIDER MODICON PREMIUM TSXP57

Kenza MS
Kenza MS

le 16/07/2019 à 20:33 Citer ce message

Bonjour,
Je dispose d'un automate Schneider Modicon à processeur PREMIUM TSXP57203 et d'un capteur de niveau (sonde ultra-son) câblé sur maître (accompagné d'un afficheur) IO-LINK avec interface Modbus TCP AL1342.
Mon travail consiste à calculer la consommation journalière du liquide en question (valeur à l'instant ti - valeur à l'instant ti+24h),de la stocker en mémoire et de pouvoir afficher cette valeur ultérieurement au besoin.
J'ai donc pensé à créer une section en langage ST pour convertir l'entrée analogique reçue par le capteur et calculer la durée de 24h pour effectuer le deuxième prélèvement pour enfin calculer la différence entre la valeur initiale et la valeur finale.
Le soucis à présent est de pouvoir parcourir la mémoire de l'API pour y stocker les différentes valeurs après tout calcul fait. Comme je ne maîtrise pas très bien la programmation Schneider ST et encore moins la gestion de la mémoire d'un API, j'ai pensé à créer une 2ème section en langage IL ( programmation en assembleur) mais je ne sais pas si c'est une bonne idée.
Pouvez-vous m'aider à ce propos ??
Merci d'avance!
EvangerC
EvangerC
Modérateur

132 messages
Inscrit le 01/07/2017

le 17/07/2019 à 16:52 Citer ce message

Bonjour Kenza,
Si je comprend bien tu as besoin de faire un échantillon du niveau de ton liquide toutes les 24h?
Si oui, combien d’échantillons (donc combien de jour de prélèvement) tu as besoin pour ton analyse?
Kenza MEZIATI SABOUR
Kenza MEZIATI SABOUR

le 05/08/2019 à 11:29 Citer ce message

Bonjour,
Oui c'est bien ça.
7 jours ( une semaine).
Pouvez-vous m'aider pour le calcul de la durée de 24h aussi sans passer par le bloc "schedule" ?
Merci d'avance.
Kenza MEZIATI SABOUR
Kenza MEZIATI SABOUR

le 05/08/2019 à 12:32 Citer ce message

Bonjour,
Je corrige : le prélèvement se fera chaque 8h sur 365 jours (1 année).
EvangerC
EvangerC
Modérateur

132 messages
Inscrit le 01/07/2017

le 05/08/2019 à 13:30 Citer ce message

Tu peux faire une programmation en LD Ladder sa pose pas de problème.
Il suffit que tu récupère l'heure de l'automate -(mot système %SW50 -> a %SW54 que tu doit convertir en integer car ils sont en BCD)
Ensuite tu créé une ligne de prog pour monter une variable a 1 lorsque que l'heure automate passe a la valeur 800 soit 8H du matin ca seras ta variable de top prélèvement.
Ensuite tu utilise cette variable et sur front montant de celle ci tu écrit la valeur analogique de ton capteur dans un mot (par exemple %MW0 et tu decale la prochaine ecriture au mot %MW0+1)
Ainsi du mot %MW0 au mot %MW365 tu auras la valeur de ton capteur analogique sur 365 jours.
Kenza MEZIATI SABOUR
Kenza MEZIATI SABOUR

le 05/08/2019 à 14:04 Citer ce message

Bonjour,
En fait ce n'est pas chaque 8h (heure) du matin que je fais un prélèvement mais au bout de chaque 8h (durée) je fais un nouveau prélèvement. Je n'avais pas bien expliqué au début.
Pour décaler les mots, j'utilise l'écriture indexée?
EvangerC
EvangerC
Modérateur

132 messages
Inscrit le 01/07/2017

le 05/08/2019 à 15:06 Citer ce message

Oui pour décaler les mots tu peux utiliser l'adresage indexée.
Pour le prelèvement toute les 8h il suffit de crée un bloc tempo TON (Nom du bloc tempo TON_0 par exemple) et tu met en paramètre 8h soit (t#8h) ensuite en sortie de cette tempo tu attaque la variable de top prélèvement.
Tu utiliseras le front montant de cette varaiable pour enregistrer ta valeur.
Pour relancer le bloc tempo automatiquement il te suffit de rajouter en serie en entrée de celle-ci (broche IN) un contact normalement fermée (TON_0.Q)
Quand la tempo se termineras la variable TON_0.Q va passer a 1 elle va donc te reinitialiser ton bloc temporisation.
Kenza MEZIATI SABOUR
Kenza MEZIATI SABOUR

le 06/08/2019 à 00:02 Citer ce message

Ah d'accord! Je ne savais pas que le TON acceptait des durées longues (en heures), merci!
Pour la remise automatique du compteur jaffecte à IN et Q le même EBOOL c'est ça?
Merci beaucoup pour toutes les réponses.
Kenza MEZIATI SABOUR
Kenza MEZIATI SABOUR

le 06/08/2019 à 00:50 Citer ce message

Ah non je crois que j'ai dit des bêtises! le On eet le Q ne peuvent pas être activés en même temps.

C'est possible de remettre le ON à 0 quand Q passe à 1 et au début du programme, puisqu'il est cyclique, on met le ON à 1 ?
EvangerC
EvangerC
Modérateur

132 messages
Inscrit le 01/07/2017

le 06/08/2019 à 13:15 Citer ce message

Tu utilise bien le FFB qui s'apelle TON pour le bloc tempo?
Car sur ce bloc il n'y a pas de ON
Considérons que ton bloc tempo s'apelle TON_0
En entrée IN de ce bloc tempo du met en contact normalement fermée, la variable TON_0.Q
Et en sortie de ton bloc tempo tu met la variable qui va te servir pour le top prélèvement.
A chaque fois que ton bloc tempo auras terminer ca tempo de 8h la variable TON_0.Q va passer a 1
Or celle-ci se trouve en entrée IN de ce même bloc tempo, ce qui a pour effet de réinitialiser ton bloc tempo par la même occasion.
Kenza MEZIATI SABOUR
Kenza MEZIATI SABOUR

le 06/08/2019 à 14:16 Citer ce message

Oui en fait je voulais écrire IN* et non pas ON, pardon!
Comment mettre la variable TON_0.Q en contact normalement fermé à l'entrée IN par programme ?
Merci :)
EvangerC
EvangerC
Modérateur

132 messages
Inscrit le 01/07/2017

le 06/08/2019 à 14:34 Citer ce message

Oui en langage ladder
Tu crée une section en LD tu insère ton bloc tempo TON_0, tu y insère un contact normalement fermée (Raccourcis F3 sur le clavier) Et tu lui donne le nom de TON_0.Q.
Tu relie le contact normalement fermée a l'entré IN de ton bloc tempo
Kenza MEZIATI SABOUR
Kenza MEZIATI SABOUR
Kenza MEZIATI SABOUR
Kenza MEZIATI SABOUR

le 06/08/2019 à 17:14 Citer ce message

Je peux créer le bloc tempo dans une section en LD et l'appeler dans une section en ST, ou est-ce que je devrai dans ce cas faire tout le programme en LD ?
EvangerC
EvangerC
Modérateur

132 messages
Inscrit le 01/07/2017
Kenza MEZIATI SABOUR
Kenza MEZIATI SABOUR
Kenza MEZIATI SABOUR
Kenza MEZIATI SABOUR

le 07/08/2019 à 17:58 Citer ce message

Bonjour!
Une petite question : à quoi sert la sortie ET du temporisateur svp ?
EvangerC
EvangerC
Modérateur

132 messages
Inscrit le 01/07/2017

le 07/08/2019 à 20:00 Citer ce message

La sortie ET permets de voir le décompte en cours de la temporisation.
Kenza MEZIATI SABOUR
Kenza MEZIATI SABOUR

Répondre à ce message

7 choses à savoir si Tu débutes en automatisme...

7 choses que tu dois savoir si tu debutes en automatismeCliquez ici pour télécharger le guide PDF

Superv 3