Liaison HMI et Siemens S7-1200

Forum traitant des automates industriels de marque Siemens.
Avatar du membre
Cyril93
Maître du binaire
Maître du binaire
Messages : 484
Enregistré le : 29 oct. 2015, 14:22
Localisation : IDF

Re: Liaison HMI et Siemens S7-1200

Message par Cyril93 »

Salut,

Ton bouton doit être affecté à une mémoire Mx.x ou à un bit dans un DB si les commandes se font depuis l'IHM.
L'entrée c'est si tu branches électriquement un bouton dessus qu'elle va changer d'état. A quoi cela peux t'il servir de changer l'état d'une entrée quand tu appuis sur l'écran ? A rien donc on ne peux pas le faire :D Comme dit Philou77 c'est même étonnant que de temps en temps cela fonctionne.
philou77
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 2142
Enregistré le : 21 oct. 2015, 10:00
Localisation : Ile de France

Re: Liaison HMI et Siemens S7-1200

Message par philou77 »

Salut !

Ca fonctionne aléatoirement car il affecte la MIE via l'IHM..

Pour une commande auto alimentée par bouton physique et IHM
Bouton Physique :
Bp Marche : I0.0
Bp Arrêt : I 0.1

Bouton Ihm
Bp Marche : M0.0
Bp Arrêt : M0.1


On peut écrire par exemple

-----|I0.0|------|----|I0.1|----|/M0.1|------------------------(Q0.0)
-----|M0.0|-----|
-----|Q0.0|-----|
Si vous avez compris tout ce que je viens d'écrire, c'est que j'ai dû faire une erreur quelque part ! :D
John
Apprend le binaire
Apprend le binaire
Messages : 7
Enregistré le : 22 mars 2017, 14:31

Re: Liaison HMI et Siemens S7-1200

Message par John »

Bonjour a tous , j'ai solutionné le problème et cela grâce à vous .

Les deux solutions qui ont fonctionné étaient de remplacer les entrées par des mémoires (comme suggéré plusieurs fois) ou de nommer ces entrées I2.0 et I2.1.(je suppose que c'est parce qu'au delà de I1.5 elles ne sont plus attribuées directement par l'API)

Je n'ai pas trop bien compris tous ces problèmes de cycle mais maintenant cela fonctionne super bien

Un grand merci à tous

John
philou77
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 2142
Enregistré le : 21 oct. 2015, 10:00
Localisation : Ile de France

Re: Liaison HMI et Siemens S7-1200

Message par philou77 »

Pour faire simple :

L'automate fait :
1 - il regarde toutes ses Entrées et affecte la zone MIE (Mémoire image des entrées)
2 - il traite son programme, affecte les mémoires, affecte les sorties dans la MIS (Mémoire Image des sorties)
3 - pour finir il affecte d'un coup les sorties physiques en transférant la MIS dans les sorties

et il recommence..indéfiniment..

Ton pupitre lui, affecte ses mémoire n'importe ou entre le point 1 et le point 3...
Donc si il le fait entre le point 1 et le point 2 ça peut marcher...
Si il le fait pendant le point 2, c'est plus aléatoire (en fonction de la scrutation du programme, quelle instruction est traitée, a t-on dépassé le point ou le programme teste l'entrée...)
si il fait pendant le point 3, ça marchera pas, car le point 1 va 'effacer' ce qu'a fait le pupitre...

Ton programme 'marche' (et encore c'est de la bidouille) car oui, si tu affectes une entrée qui n'est pas scrutée physiquement par l'automate, aucune raison que celui change quelque chose car cette entrée n'existe pas 'physiquement'. tu as donc trouvé un moyen de transformer une entrée en 'mémoire'.
On faisait cela en siemens il y a bien longtemps quand les ordinateurs avaient très peu de mémoire et qu'elle était super chère !!
Depuis, nos 'chers' automates ont bien assez de mémoire pour s'en passer et programmer 'propre'.


Donc !
Règle N°1 : Ne JAMAIS AFFECTER une entrée par programme !!
Règle N° 2 : si on veut attribuer une entrée par programme , appliquer la règle N° 1
Modifié en dernier par philou77 le 30 mars 2017, 10:29, modifié 2 fois.
Si vous avez compris tout ce que je viens d'écrire, c'est que j'ai dû faire une erreur quelque part ! :D
John
Apprend le binaire
Apprend le binaire
Messages : 7
Enregistré le : 22 mars 2017, 14:31

Re: Liaison HMI et Siemens S7-1200

Message par John »

philou77 a écrit : 29 mars 2017, 10:46 Pour faire simple :

L'automate fait :
1 - il regarde toutes ses Entrées et affecte la zone MIE (Mémoire image des entrées)
2 - il traite son programme, affecte les mémoires, affecte les sorties dans la MIS (Mémoire Image des sorties)
3 - pour finir il affecte d'un coup les mémoire physiques en transférant la MIS dans les sorties

et il recommence..indéfiniment..

Ton pupitre lui affecte ses mémoire n'importe ou entre le point 1 et le point 3...
Donc si il le fait entre le point 1 et le point 2 ça peut marcher...
Si il le fait pendant le point 2, c'est plus aléatoire (en fonction de la scrutation du programme, quelle instruction est traitée, a t-on dépassé le point ou le programme teste l'entrée...)
si il fait pendant le point 3, ça marchera pas, car le point 1 va 'effacer' ce qu'a fait le pupitre...

Ton programme 'marche' (et encore c'est de la bidouille) car oui, si tu affectes une entrée qui n'est pas scrutée physiquement par l'automate, aucun e raison que celui change quelque chose car cette entrée n'existe pas 'physiquement'. tu as donc trouvé un moyen de transformer une entrée en 'mémoire'.
On faisait cela en siemens il y a bien longtemps quand les ordinateurs avaient très peu de mémoire et qu'elle était super chère !!
Depuis, nos 'chers' automates ont bien assez de mémoire pour s'en passer et programmer 'propre'.


Donc !
Règle N°1 : Ne JAMAIS AFFECTER une entrée par programme !!
Règle N° 2 : si on veut attribuer une entrée par programme , appliquer la règle N° 1
Merci pour cette explication claire et pédagogique, je suis sur le Siemens depuis quelques semaines et j'ai encore beaucoup de choses à découvrir

Bonne journée à toi
or3l
Première mise en service
Première mise en service
Messages : 53
Enregistré le : 14 sept. 2016, 21:44
Localisation : Ardéche

Re: Liaison HMI et Siemens S7-1200

Message par or3l »

salut !

en gros tu crée une variable API du genre " Bit_de_marche". de type BOOL Non remanente.
Ensuite dans ta page IHM ( vue ) , tu crée un bouton -> tu lui associe un événement par exemple sur un clic "mise a 1 variable et tu selectionne "PLC/...Bit_de_marche.
Cela va creer automatiquement ta variable Ihm en meme temps.
Tu va dans tes variables IHM , et tu change le temps de la colonne " cycle d 'acquisition" de la variable concerné ( met 100 ms au lieu de 1S ).

Apres tu traite ce bit dans ton programme PLC comme tu veux .

PAr exemple sur un front montant de "Bit_de_marche" , tu pilotes une sortie ou autre.


voila j espere t avoir aidé
Répondre