Convertir un bloc FC de LIST en structuré ?

Forum traitant des automates industriels de marque Siemens.
Répondre
Elite60
Code sa première boucle
Code sa première boucle
Messages : 19
Enregistré le : 14 janv. 2021, 19:42

Convertir un bloc FC de LIST en structuré ?

Message par Elite60 »

bonjour,

Etant Pro Schneider, j'ai une question mon responsable m'a donné la tâche de convertir un morceaux de programme siemens (Step 7 ) vers control expert(Schneider).
Sauf que sur siemens j'ai vraiment quelques bases mais c'est tout..
De plus le morceaux de programme à été programmé en liste d'instruction et la pour comprendre leur système je sèche même avec la documentation...

Peut on convertir un bloc FC de liste d'instruction en structuré ?
je vous met en pièce jointe des photos du programme.

Merci d'avance pour vos réponse
Cordialement
img1.png
img2.PNG
img2.PNG (4.79 Kio) Vu 1971 fois
dpo
Créateur de langage
Créateur de langage
Messages : 740
Enregistré le : 27 nov. 2015, 20:03

Re: Convertir un bloc FC de LIST en structuré ?

Message par dpo »

convertir en ST, je ne pense pas sous step7 car le st était optionnel
il y'a une astuce en LD
De mémoire, dans l'éditeur de programme tu as une option d'affichage pour passer de list à ladder
problème : il ne sait convertir en ladder que si le réseau en list est assez simple
(en gros il doit correspondre à un réseau LD)
sauf que....en list (sauf erreur de ma part) tu peux programmer l'équivalent de plusieurs réseaux LD dans un réseau LIST
Quand j'ai un doute dans la compréhension, je découpe le réseau LIST en plusieurs petits réseaux LIST et je passe l'affichage en LD.
C'est laborieux mais ça permet de comprendre ce qu'on convertit
Avatar du membre
JC87
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 1952
Enregistré le : 20 oct. 2015, 13:00
Localisation : Nouvelle Aquitaine

Re: Convertir un bloc FC de LIST en structuré ?

Message par JC87 »

Bonjour,

Ce code ne se convertira pas en ladder, ça n'a pas été écrit pour ça ça se voit de suite. Après, tout peut se convertir, ce n'est qu'une question de temps mais il est clair que passer du List Siemens au ST Schneider n'est pas naturel.

Ce qu'on peut dire en jetant un coup d’œil rapide au code c'est qu'il s'agit probablement de variables statiques ou temporaire d'un FB qu'on reconnait aux "#". Ensuite il faut savoir qu'en List Siemens on travaille beaucoup avec des sauts conditionnel (instruction SPB). Donc sur test on exécute ou pas une partie du code. En l’occurrence ici c'est un test de valeurs réelles (<R).

Cela dit il faudrait avoir le bloc en entier pour avoir une idée de ce que ça fait vraiment. Au final on a parfois intérêt à partir du résultat attendu pour réécrire le code plutôt que de vouloir absolument convertir ligne à ligne.

JC
"On veut faire du zéro défaut mais on a zéro bonhomme et zéro budget, et bien à la fin on a zéro résultat..."
philou77
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 2085
Enregistré le : 21 oct. 2015, 10:00
Localisation : Ile de France

Re: Convertir un bloc FC de LIST en structuré ?

Message par philou77 »

Salut !

Chez siemens, le list ouvre les portes à des instructions non disponibles en ladder..
Chez d'autres, toutes les instructions sont disponibles en ladder

Ceci dit, il faut 'comprendre' pourquoi on fait les choses avant de pouvoir les retranscrire !
ceci peut peut être t'y aider : http://labase-malvoisin.net/S7_Programmation.pdf

L xxxx
T yyyy

revient à écrire yyyy = xxxx

U L 0.7 est une interrogation d'un bit (à l'adresse 0.7) dans les mémoire temporaires du FC (Regardes les déclarations dans l'entête du FC pour voir quel bit (variable temporaire) est à l'adresse 0.7)

UD est un ET bit à bit sur un mot de 32 bits... la subtilité ici est de connaitre les valeurs de ACCU 1 et ACCU 2
(si je ne me trompe pas #Tempo et #Tempo_dyn)
Le résultat du UD est transféré dans #Tempo_dyn

Il faut avoir à l'esprit comment fonctionne les accumulateurs de siemens..
L MW100 par exemple veut dire

-Contenu actuel de ACCU2 perdu
-Contenu de Accu1 est copié dans Accu2
-Contenu de MW100 est copié dans ACCU1

T MW100 par exemple veut dire
-Contenu de ACCU1 est copié dans MW100

+R veut dire
-Contenu de ACCU1 + Contenu de ACCU2 (opération en Nombre Réel)
-Contenu de ACCU1 est copié dans ACCU2
-Résultat est copié dans ACCU1

Si l'on saute des parties de programme, c'est en partie parce que en siemens, les chargement (L) et les transferts (T) se font quelque soit le résultat d'un test !! donc si on ne doit pas faire certaines choses, il faut que le programme les ignorent (et la meilleure façon, c'est de pas les lire) !
Si vous avez compris tout ce que je viens d'écrire, c'est que j'ai dû faire une erreur quelque part ! :D
Elite60
Code sa première boucle
Code sa première boucle
Messages : 19
Enregistré le : 14 janv. 2021, 19:42

Re: Convertir un bloc FC de LIST en structuré ?

Message par Elite60 »

Je vais regarder et puis je vais réécrire le code cela me semble plus simple.
Merci à vous
Répondre