SIMENS STEP 7 CPU315-2DP programme en LIST

Forum traitant des automates industriels de marque Siemens.
Bazinga
Asservi son premier moteur
Asservi son premier moteur
Messages : 27
Inscription : 06 juin 2018, 11:39

SIMENS STEP 7 CPU315-2DP programme en LIST

Message par Bazinga »

Bonjour,
J'ai essayé de faire le plus clair possible, donc je suis désolé si ça ne l'est pas.

Je sus actuellement stagiaire et mon travail est de modifier un automate afin d'améliorer son fonctionnement. Mais je fais fasse à beaucoup trop de questionnements car je débute en Siemens. Je vous explique donc ma situation.
J’ai 2 programmes : celui fournit par l’entreprise qui a programmé l’automate, très mal commenté et en allemand que j’appellerai programme 1, et l’autre programme est celui récupéré sur l’automate sans aucun commentaires, ce qui est normal (selon mes recherches) que j’appellerai programme 2. Il se peut que les termes que j’utiliserais soient donc allemands, n’hésitez pas à me corriger.

------ La partie que je pense devoir modifier est, sur le programme 1 en SCL ce qui me semblait passablement compréhensible puisqu’il y avait quelques ressemblances avec les langages que je connais déjà. Mais dans le programme 2 le programme est maintenant en LIST. Les langages ne peuvent être changés, en tous les cas même lorsqu’il m’est possible de la changer, rien ne bouge. (Le LADDER me manque  ) Avez-vous une idée pour remettre le langage de base ?
J’essaie donc de comprendre ce que fait le programme 2 afin de comprendre ensuite le 1. Je voulais donc lancer le programme en ligne sur mon PC. Mais je suis toujours perdue. Je vais donc vous poser toutes mes questions. En espérant que vous puissiez y répondre.
Voici une image pour que ce soit plus clair. A droite, en rouge voilà ce que j’avais dans le programme 1 et à gauche ce que j’ai récupéré de l’automate.
Image Forum 0



------ L 0
T #TEMP6
Dans ce cas, ce qu’on fait c’est bien mettre 0 dans ACCU1 puis ACCU1 soit 0 dans#TEMP6 ?
De plus, à propos de #TEMP6 qui est qui est indiqué dans l’interface dans TEMP, nous somme bien d’accord que ce sont des temporisations (les TEMPs)? Car mon automate a des entrées qui sont des sondes de températures, j’ai donc un doute car je sais également que le but de ce bloc est de détecter des erreurs de températures. Il y a notamment des comparaisons de TEMP. Donc je voudrais être sûre de comprendre.

------ D’ailleurs, y a-t-il un moyen d’afficher toutes les mémoires, entrées et sorties du programme avec leurs valeurs ? Aussi est-ce possible de ne réaliser qu’une partie du programme, je m’explique. EN SCL, il était possible de mettre des points pour n’exécuter que certaines parties. C’est possible de faire ça pour les autres langages ? Car je voudrais vraiment comment tout est réalisé.

------ J’ai également cette partie qui est vague. Je comprends ce qui devrait être fait mais ce n’est pas ce qui est fait donc je suis –encore- perdue.
Image Forum 1

Selon moi dans la colonne STANDARD il devrait y avoir 28 mais il y a 23. Je ne comprends donc pas ce qui est réellement réalisé.

------ Ensuite il y a : L #TEMP6
Si ça avait été L L#TEMP6 j’aurai compris grâce à un document pdf dans lequel il est indiqué que l’on charge TEMP6 dans l’accumulateur 1 mais dans le cas que j’ai, je ne comprends pas.

------ J’ai également : L W#16#0
Alors ici je pense comprendre qu’on met quelque chose dans l’accumulateur 1, d’où le L. Mais on y met un mot ? Mais lequel ? Je n’ai pas trouvé d’explications, juste des exemples qui ne m’ont pas éclairés.

A la suite de tests en ligne, j’ai aussi remarqué que toutes les lignes de mon FC n’étaient pas réalisées. En effet au bout de 41 lignes, le logiciel n’affiche plus les états des d’accumulateurs, registres, etc. Est-ce normal, où y a-t-il une manipulation à faire ? Car dans mon programme il y a des jumps à M001 ou 2 etc. J’ai réalisé que certaines lignes n’étaient pas affichées, mais celle-ci se rapportent alors à la modification d’autres variables que les accumulateurs et autre, dans mon cas ce sont des lignes qui s’affichaient avant comme L #TEMP6

------ LAR1
Ce qu’on me dit pour cette fonction c’est que l’on charge le contenu de l'accumulateur 1 dans registre d'adresse 1. Ce que je comprendre c’est qu’on copie la valeur de ACCU1 ou dans mon cas STRANDARD et qu’on colle le résultat dans AR1 (le registre d’adresse 1). Mais quand je teste en ligne j’ai ceci : Image Forum 2

J’ai donc 10 dans ACCU1 et 2 dans AR1 alors que j’avais 222 juste avant. Quelque chose est bien réalisé mais je ne comprends pas quoi ni pourquoi.
------ T DBW [AR1, P#0.0]
On écrit le poids faible de l'accu1, grâce au pointeur vers un double mot. Mais lequel ? Comment je peux vérifier que ça a bine été fait ?

Je n'ai pas finit de tout regarder, mais cela fait déjà beaucoup donc je m'arrête là et en fonction de ce que j'aurais, je reviendrais vers vous.

Bazinga
Pièces jointes
Forum 0.png
Bazinga
Asservi son premier moteur
Asservi son premier moteur
Messages : 27
Inscription : 06 juin 2018, 11:39

Re: SIMENS STEP 7 CPU315-2DP programme en LIST

Message par Bazinga »

Les images n'ont pas toutes chargées
Pièces jointes
1
1
Bazinga
Asservi son premier moteur
Asservi son premier moteur
Messages : 27
Inscription : 06 juin 2018, 11:39

Re: SIMENS STEP 7 CPU315-2DP programme en LIST

Message par Bazinga »

Je vais y arriver !
Pièces jointes
3
3
Avatar de l’utilisateur
JC87
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 1903
Inscription : 20 oct. 2015, 13:00
Localisation : Nouvelle Aquitaine

Re: SIMENS STEP 7 CPU315-2DP programme en LIST

Message par JC87 »

Bonjour,

le langage SCL qui est un langage structuré est en Siemens Step 7 un langage compilé. Cela signifie qu'on transforme une source texte en langage list qui est le langage de base des automates Siemens en Step 7.

Le SCL n'est pas réversible, on ne peut en aucun cas le convertir automatiquement en ladder ou en logigramme. Si on n'a pas les sources d'origine on ne récupère en ligne que du list qui est totalement imbitable et qu'il ne faut surtout pas modifier en ligne car dans ce cas, la source ne correspond plus.

Dans ton cas il faut vérifier que les blocs en SCL correspondent bien aux blocs en ligne. A partir de là il y a deux solutions, soit les blocs n'ont pas été modifiés et dans ce cas c'est simple , il faut apporter les modifications dans les blocs en SCL, compiler puis transférer. Soit les blocs ont été modifiés en ligne (ce qu'il ne fallait pas faire je le redit) et là tu est mal car il faudra d'abord corriger voire refaire entièrement les sources pour correspondre aux blocs en ligne et ça peut être très très compliqué.

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..."
Bazinga
Asservi son premier moteur
Asservi son premier moteur
Messages : 27
Inscription : 06 juin 2018, 11:39

Re: SIMENS STEP 7 CPU315-2DP programme en LIST

Message par Bazinga »

JC87 a écrit : 07 juin 2018, 10:33 Bonjour,

le langage SCL qui est un langage structuré est en Siemens Step 7 un langage compilé. Cela signifie qu'on transforme une source texte en langage list qui est le langage de base des automates Siemens en Step 7.

Le SCL n'est pas réversible, on ne peut en aucun cas le convertir automatiquement en ladder ou en logigramme. Si on n'a pas les sources d'origine on ne récupère en ligne que du list qui est totalement imbitable et qu'il ne faut surtout pas modifier en ligne car dans ce cas, la source ne correspond plus.

Dans ton cas il faut vérifier que les blocs en SCL correspondent bien aux blocs en ligne. A partir de là il y a deux solutions, soit les blocs n'ont pas été modifiés et dans ce cas c'est simple , il faut apporter les modifications dans les blocs en SCL, compiler puis transférer. Soit les blocs ont été modifiés en ligne (ce qu'il ne fallait pas faire je le redit) et là tu est mal car il faudra d'abord corriger voire refaire entièrement les sources pour correspondre aux blocs en ligne et ça peut être très très compliqué.

JC
D'abord merci pour votre rapidité !

Je vais donc reprendre ce que vous venez de me dire, que je comprenne tout.

1. Je récupère le programme de l'automate
2. Je transfert le programme que j'ai déjà, celui commenté
3. Je compare les 2 programme (celui que j'ai récupéré et celui que j’ai transféré que je vais soit reprendre soit regarder en ligne (sans le modifier))
4.A Si c'est le même programme : je modifie dans le bloc source codé en SCL du programme commenté
4.B S'ils ne sont pas pareil : je dois modifier le programme en LIST et là, j'ai très peu de chance d'y arriver vu la complexité du LIST

C'est bien ça ?
Oh et quand vous dite aucune modification en ligne, c'est donc sur l'automate que je ne dois rien modifier ? Sinon le langage SCL que j'ai ne correspondra plus ?
Avatar de l’utilisateur
JC87
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 1903
Inscription : 20 oct. 2015, 13:00
Localisation : Nouvelle Aquitaine

Re: SIMENS STEP 7 CPU315-2DP programme en LIST

Message par JC87 »

Pour les points 1 et 2 et 3 tu fait simplement une comparaison entre le programme hors ligne et le programme en ligne. Ça dira tout de suite si il y a des différences de blocs, notamment ceux en SCL. Pour les points 4 c'est tout à fait ça. En fait quand on a un programme en SCL il faut travailler uniquement avec la source. On peut certes faire des modifications en ligne en List mais déjà c'est très difficile car le List généré à partir de SCL n'est pas un List "normal" qu'on aurait saisi soit même, la plupart du temps c'est totalement incompréhensible même si on sait parfaitement programme dans ce langage. Et de fait si on fait ça, la source en SCL ne correspond plus et devient inutile car si on la compile et qu'on la retransfère on perd les modifications. Donc quand on a le programma d'origine il faut travailler avec celui-ci et naturellement en ouvrant un bloc en SCL même en ligne c'est le langage SCL qui s'affichera. J'espère que c'est assez clair car c'est très différent de ce qu'on rencontre chez d'autres marques notamment Schneider ou le langage littéral n''était pas optionnel comme chez Siemens.

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..."
Bazinga
Asservi son premier moteur
Asservi son premier moteur
Messages : 27
Inscription : 06 juin 2018, 11:39

Re: SIMENS STEP 7 CPU315-2DP programme en LIST

Message par Bazinga »

Je suis un peu perdue sur un sujet. Comment je dois faire pour passer de la source en SCL à la traduction en LIST ?

Vous avez dit "Pour les points 1 et 2 et 3 tu fait simplement une comparaison entre le programme hors ligne et le programme en ligne. Ça dira tout de suite si il y a des différences de blocs, notamment ceux en SCL. Pour les points 4 c'est tout à fait ça."

Comme je fais via le logiciel, je ne comprends pas. En effet sur le programme hors ligne j'ai que du SCL et pour celui déjà en ligne j'ai que du LIST.
Bazinga
Asservi son premier moteur
Asservi son premier moteur
Messages : 27
Inscription : 06 juin 2018, 11:39

Re: SIMENS STEP 7 CPU315-2DP programme en LIST

Message par Bazinga »

Autre question, j'ai remarqué que des DB apparaissaient dans le programme en ligne mais pas dans celui que j'ai. Et quand j'ouvre celui en ligne j'ai juste un tableau avec 4 colonnes (Adresse, nom, type, valeur initiale, commentaires). Est-ce normal ?
Parce que dans le programme hors ligne on se sert quand même de ce DB, on l'appelle à plusieurs reprises.
Répondre