Registre à Décalage sur Siemens (le retour...)

Forum traitant des automates industriels de marque Siemens.
Horror484
Asservi son premier moteur
Asservi son premier moteur
Messages : 26
Enregistré le : 31 oct. 2022, 13:59

Registre à Décalage sur Siemens (le retour...)

Message par Horror484 »

Bonjour à tous,

J'aimerai faire un suivi d'article sur TIA PORTAL.

Dans l'idée, j'ai une bande convoyeuse qui reçoit des articles en début de file. Si au moins 1 article est détecté, la bande se met à tourner (j'ai un compteur qui compte le nombre d'articles présent sur la bande). Pour chaque article retiré à la main en fin de file (ou éjecté en cours car défectueux) je retire 1 unité à mon compteur.

Jusque là, je sais exactement combien d'articles sont présents sur ma bande.
Ensuite, j'aimerai faire un suivi d'article pour ceux dont le poids est inférieur à celui attendu (j'ai une balance en entrée de file).
Une fois le dit article présent devant mon vérin éjecteur, j'active la bobine et j'éjecte le produit dans une rampe.

Pour se faire, je voudrai utiliser un registre à décalage 8 bits sur TIA PORTAL. Et là je patine...

Pour moi, le bloc registre à décalage est composé de 3 entrées et 1 sorties :
RST : pour reset le mot
OUT : insère un bit 1 sur le bit le plus à gauche
SHFT : on décale l'ensemble de 1
sortie : mot décalé en sortie

Cependant, pour le bloc SHIFT sur TIA PORTAL, rien de tout ça. Et j'avoue ne pas trop savoir comment faire du coup, et j'ai rien trouvé de clairement explicite sur comment on programme ça...

(Je tiens à préciser que l'exemple au dessus est le fruit de mon imagination, donc s'il est faux, n'hésitez pas à me corriger :p !)

Merci à vous
Avatar du membre
itasoft
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 7804
Enregistré le : 20 oct. 2015, 10:15
Localisation : Lyon
Contact :

Re: Registre à Décalage sur Siemens (le retour...)

Message par itasoft »

slts,
Disons que on fait ça avec un registre FIFO ,
Modifié en dernier par itasoft le 09 janv. 2023, 08:16, modifié 1 fois.
Automaticien privé (de tout)
itasoft@free.fr
Horror484
Asservi son premier moteur
Asservi son premier moteur
Messages : 26
Enregistré le : 31 oct. 2022, 13:59

Re: Registre à Décalage sur Siemens (le retour...)

Message par Horror484 »

Voici une idée de réponse ici : https://www.youtube.com/watch?v=0Uy_dMzUWb4

Merci en tous cas pour le FIFO je ne connaissais pas !
Horror484
Asservi son premier moteur
Asservi son premier moteur
Messages : 26
Enregistré le : 31 oct. 2022, 13:59

Re: Registre à Décalage sur Siemens (le retour...)

Message par Horror484 »

Bonjour,

Du coup j'ai un petit peu insisté pour SIEMENS car c'est un exercice que je trouve plutôt intéressant.

Voici mon code (voir partie 2 gestion des articles defectueux) :

etape 1 : si un article est défectueux, j'active un OU (sur front montant) entre BIN 1000 0000 et mon registre de décalage (initialement à 0) comme ça je peux mémoriser les positions des articles défectueux précédemment détectés et pas encore retirés (la bande va de gauche à droite donc le départ se fait tout à gauche d'ou le HEX 80 soit 1000 0000)

etape 2 : mon codeur incrémental (une horloge 1Hz dans les faits) me permet de prendre le résultat précédent et de le décaler autant de fois que le moteur tourne

etape 3 : la position de mon éjecteur (partie mobile qui vient retirer de la bande l'article défectueux) est évaluée à 0000 00010 (HEX 2). Je réalise un ET entre la position mémorisée dans le registre et 0000 0010. Si le résultat est égale à 0000 0010, alors j'active une impulse pour active momentanément un vérin rotatif qui éjecte la pièce de la bande.

Dans les faits, le registre est toujours égal à 0 et je ne sais pas pourquoi l'opération OU ne se réalise pas. Le "mot" binaire qui enregistre la position de tous les articles défectueux présents sur la bande est mémorisé dans %MD6 (à la base je voulais utilisé %MW0 mais à priori, à partir la longueur en bits cela ne change rien n'est ce pas ?).

Auriez vous des idées ? Les images sont en ficher joint et le soft en lien wetrasnfer ci dessous :

https://we.tl/t-BEZUbexnsZ
1_SHR_Siemens.PNG
1_SHR_Siemens.PNG (7.78 Kio) Vu 4458 fois
2_SHR_Siemens.PNG
2_SHR_Siemens.PNG (6.31 Kio) Vu 4458 fois
3_SHR_Siemens.PNG
Avatar du membre
itasoft
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 7804
Enregistré le : 20 oct. 2015, 10:15
Localisation : Lyon
Contact :

Re: Registre à Décalage sur Siemens (le retour...)

Message par itasoft »

slts,
ya pas de registre FIFO chez les "teutons" , commencer par faire cet exercice:
download/file.php?id=5822&mode=view
Automaticien privé (de tout)
itasoft@free.fr
Horror484
Asservi son premier moteur
Asservi son premier moteur
Messages : 26
Enregistré le : 31 oct. 2022, 13:59

Re: Registre à Décalage sur Siemens (le retour...)

Message par Horror484 »

Sur TIA PORTAL ? N est ce pas exactement le même exercice que le mien sous une autre forme ? Je ne vois pas trop la différence sur le fond ...

Merci en tous cas et joyeux Noël !
Pepino672
Première mise en service
Première mise en service
Messages : 72
Enregistré le : 02 sept. 2022, 16:08

Re: Registre à Décalage sur Siemens (le retour...)

Message par Pepino672 »

Salut,

Tu peux utiliser une fonction FIFO avec TIA portal.

Il faut télécharger la librairie sur le site Siemens : https://support.industry.siemens.com/cs ... 0&lc=en-EG

Ensuite tu l'ouvre sur TIA :
Open library.PNG
Puis tu retrouve la fonction FIFO dans la librairie :
Librairue FIFO.PNG
Et enfin tu l'utilise dans le programme :
Bloc FIFO.PNG
Bloc FIFO.PNG (11.58 Kio) Vu 4276 fois
Le bloc FIFO fonctionne très bien, je m'en sert dans le cas précis que tu as décris.

Bonne chance.
Horror484
Asservi son premier moteur
Asservi son premier moteur
Messages : 26
Enregistré le : 31 oct. 2022, 13:59

Re: Registre à Décalage sur Siemens (le retour...)

Message par Horror484 »

Merci pour ta réponse !
Mais je ne suis pas sûr de bien maîtriser le bloc...


Par curiosité j ai demandé à chat GPT voici sa réponse :

Voici comment programmer un registre à décalage (à droite) en utilisant le langage de programmation compatible avec Siemens TIA Portal:

Ouvrez TIA Portal et créez un nouveau projet.
Ajoutez un automate programmable (PLC) à votre projet en utilisant l'Assistant de matériel.
Créez un programme dans le bloc-programme de votre PLC en utilisant le langage de programmation de votre choix (par exemple, le langage de commande structurelle ou le langage de fonction de Siemens).
Déclarez un registre à décalage en utilisant la syntaxe suivante:

Déclaration de registre à décalage à droite:

DECLARATIONS
SHIFT_REGISTER_RIGHT : DINT;
END_DECLARATIONS

Utilisez l'instruction de décalage à droite pour mettre à jour le registre à décalage. Voici un exemple de code qui utilise l'instruction de décalage à droite pour mettre à jour un registre à décalage à droite avec une valeur entière:

SHIFT_REGISTER_RIGHT := SHIFT_REGISTER_RIGHT >> 1;

Exécutez votre programme pour vérifier que le registre à décalage est mis à jour correctement.

J'espère que cela vous aidera à programmer un registre à décalage (à droite) en utilisant le langage de programmation compatible avec Siemens TIA Portal. Si vous avez des questions ou si vous avez besoin de plus de détails, n'hésitez pas à me poser d'autres questions.


C est fou!
Avatar du membre
itasoft
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 7804
Enregistré le : 20 oct. 2015, 10:15
Localisation : Lyon
Contact :

Re: Registre à Décalage sur Siemens (le retour...)

Message par itasoft »

Par curiosité j ai demandé à chat GPT ,

je connaissais pas, ya que a faire ce qu'il dit
Modifié en dernier par itasoft le 09 janv. 2023, 08:29, modifié 2 fois.
Automaticien privé (de tout)
itasoft@free.fr
Horror484
Asservi son premier moteur
Asservi son premier moteur
Messages : 26
Enregistré le : 31 oct. 2022, 13:59

Re: Registre à Décalage sur Siemens (le retour...)

Message par Horror484 »

A voir a voir après ça reste une intelligence artificielle...
Je vais regarder ça la semaine pro parce que j avais pas bien compris le bloc FIFO
Sinon je comptais faire du language structurel
Répondre