3 variables interne pour une externe

Forum traitant des automates industriels de marque Siemens.
hgvieira
Code son premier grafcet
Code son premier grafcet
Messages : 41
Enregistré le : 02 sept. 2022, 13:26

Re: 3 variables interne pour une externe

Message par hgvieira »

itasoft a écrit : 16 janv. 2023, 13:24 c'est clair et limpide, reste à savoir si la variable externe Z n'est pas écrite dans le programme automate (l'automate ne fait que la lire)
Elle est juste lue dans l'automate, merci.
Avatar du membre
itasoft
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 7806
Enregistré le : 20 oct. 2015, 10:15
Localisation : Lyon
Contact :

Re: 3 variables interne pour une externe

Message par itasoft »

OK
dans ce cas je vois pas ou est le problème ?
J’ai 3 champs qui affichent les valeurs des variables internes A,B,C par appui sur le champs A je copie le contenu de la variable A dans la variable Z ect……..
ya pas de script à faire
--------clic dessus pour zoom-------
01.JPG
Automaticien privé (de tout)
itasoft@free.fr
DurandO
Maître du binaire
Maître du binaire
Messages : 482
Enregistré le : 21 mars 2021, 15:31

Re: 3 variables interne pour une externe

Message par DurandO »

itasoft a écrit : 16 janv. 2023, 13:53 OK
dans ce cas je vois pas ou est le problème ?
J’ai 3 champs qui affichent les valeurs des variables internes A,B,C par appui sur le champs A je copie le contenu de la variable A dans la variable Z ect……..
ya pas de script à faire
Le problème est peut-être que'on n'utilise pas Vijeo mais TIA-Portal ( j'entends déjà les remarques sur le fonctionnement du cerveau teuton).
N'étant pas madame Irma, j'ai eu beau lustrer mes deux boules qui ne sont pas en cristal, je n'avais pas deviné qu'il s'agissait de variables real!

Du coup, en effet la fonction échelle ne fonctionnera pas dans ce cas.
Je ne vois plus qu'une solution par script par exemple :

Code : Tout sélectionner

Sub MajReel()

Select SmartTags("IndexListBox") 
    Case 0   
        SmartTags("reelAPI") = SmartTags("reel1")
    Case 1   
        SmartTags("reelAPI") = SmartTags("reel2")
    Case 2   
        SmartTags("reelAPI") = SmartTags("reel3")
   
End Select  

End 
Ce script est à appeler sur événement modification de la variable IndexListBox.
Dans l'hypothèse suivante :
Reel1 est de type real valeur du premier champs de saisie
Reel2 est de type real valeur du second champs
Reel3 est de type real valeur du 3éme

ReelAPI la variable API de type real devant recevoir la valeur en fonction de la sélection associée à la variable IndexListBox.
Avatar du membre
itasoft
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 7806
Enregistré le : 20 oct. 2015, 10:15
Localisation : Lyon
Contact :

Re: 3 variables interne pour une externe

Message par itasoft »

OK,
ça veut dire que chez les "teutons" sur un champs affichage on peut faire une action par clic dessus, c'est ça ?
si c'est le cas alors oui on peut appliquer ton script exemple
dans tous les cas il faut afficher la variable Z pour voir le résultat de l'action
Modifié en dernier par itasoft le 16 janv. 2023, 15:01, modifié 3 fois.
Automaticien privé (de tout)
itasoft@free.fr
Pepino672
Première mise en service
Première mise en service
Messages : 72
Enregistré le : 02 sept. 2022, 16:08

Re: 3 variables interne pour une externe

Message par Pepino672 »

Salut,

Tu peux créer une liste déroulante et tu l'associe à une liste de texte. Ta liste déroulante est reliée à une variable automate, par exemple ton Z, tu la met soit en input ou en input/output dans l'IHM. Ensuite, ta liste de texte tu la paramètres avec les valeurs que tu souhaite. Par exemple choix 1 prend la valeur 1 dans ta liste de texte et donc transmet 1 dans ta variable Z.
Capture.PNG
Capture1.PNG
philou77
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 2142
Enregistré le : 21 oct. 2015, 10:00
Localisation : Ile de France

Re: 3 variables interne pour une externe

Message par philou77 »

Salut !

ceci pourrait peut être t'aider un peu
https://support.industry.siemens.com/cs ... 0&lc=fr-FR

à savoir que le multiplexage ne fonctionne pas forcément avec toutes les cpu, tous les pilotes de com, tous les afficheurs..
de plus, cela ne fonctionne pas avec les DB en accès optimisé !

sinon, cela rempli effectivement ton besoin
Si vous avez compris tout ce que je viens d'écrire, c'est que j'ai dû faire une erreur quelque part ! :D
DurandO
Maître du binaire
Maître du binaire
Messages : 482
Enregistré le : 21 mars 2021, 15:31

Re: 3 variables interne pour une externe

Message par DurandO »

Pepino672 a écrit : 16 janv. 2023, 14:47 Par exemple choix 1 prend la valeur 1 dans ta liste de texte et donc transmet 1 dans ta variable Z.
Sa variable Z est un réel. Dans une liste, ce sont des valeurs entières.
itasoft a écrit : 16 janv. 2023, 14:41 ça veut dire que chez les "teutons" sur un champs affichage on peut faire une action par clic dessus, c'est ça ?
Oui, enfin en fonction du control, on a divers événements auxquels on peut associer une ou plusieurs action diverses dont des scripts, charger vue, assigner variable...
itasoft a écrit : 16 janv. 2023, 14:41 dans tous les cas il faut afficher la variable Z pour voir le résultat de l'action
Oui, logique.
Je dirais même que le transfert de la valeur ne devrait se faire qu'après appui sur une touche :
1°) choix de la valeur par listBox
2°) Touche Validation Chargement dans l'API (appel du script)

Du coup, si plusieurs valeurs sont ainsi à transférer après sélections des divers paramètres, on valide l'envoi vers API.
Et en effet, vaut mieux afficher les paramètres actuellement actif dans l'API.
hgvieira
Code son premier grafcet
Code son premier grafcet
Messages : 41
Enregistré le : 02 sept. 2022, 13:26

Re: 3 variables interne pour une externe

Message par hgvieira »

Pepino672 a écrit : 16 janv. 2023, 14:47 Salut,

Tu peux créer une liste déroulante et tu l'associe à une liste de texte. Ta liste déroulante est reliée à une variable automate, par exemple ton Z, tu la met soit en input ou en input/output dans l'IHM. Ensuite, ta liste de texte tu la paramètres avec les valeurs que tu souhaite. Par exemple choix 1 prend la valeur 1 dans ta liste de texte et donc transmet 1 dans ta variable Z.

Capture.PNG
Capture1.PNG
Merci de votre réponse, malheureusement une valeur réel ne peut être affectés.
hgvieira
Code son premier grafcet
Code son premier grafcet
Messages : 41
Enregistré le : 02 sept. 2022, 13:26

Re: 3 variables interne pour une externe

Message par hgvieira »

DurandO a écrit : 16 janv. 2023, 14:33
itasoft a écrit : 16 janv. 2023, 13:53 OK
dans ce cas je vois pas ou est le problème ?
J’ai 3 champs qui affichent les valeurs des variables internes A,B,C par appui sur le champs A je copie le contenu de la variable A dans la variable Z ect……..
ya pas de script à faire
Le problème est peut-être que'on n'utilise pas Vijeo mais TIA-Portal ( j'entends déjà les remarques sur le fonctionnement du cerveau teuton).
N'étant pas madame Irma, j'ai eu beau lustrer mes deux boules qui ne sont pas en cristal, je n'avais pas deviné qu'il s'agissait de variables real!

Du coup, en effet la fonction échelle ne fonctionnera pas dans ce cas.
Je ne vois plus qu'une solution par script par exemple :

Code : Tout sélectionner

Sub MajReel()

Select SmartTags("IndexListBox") 
    Case 0   
        SmartTags("reelAPI") = SmartTags("reel1")
    Case 1   
        SmartTags("reelAPI") = SmartTags("reel2")
    Case 2   
        SmartTags("reelAPI") = SmartTags("reel3")
   
End Select  

End 
Ce script est à appeler sur événement modification de la variable IndexListBox.
Dans l'hypothèse suivante :
Reel1 est de type real valeur du premier champs de saisie
Reel2 est de type real valeur du second champs
Reel3 est de type real valeur du 3éme

ReelAPI la variable API de type real devant recevoir la valeur en fonction de la sélection associée à la variable IndexListBox.
Je vais essayé votre solution, je vous reviens après.
Pepino672
Première mise en service
Première mise en service
Messages : 72
Enregistré le : 02 sept. 2022, 16:08

Re: 3 variables interne pour une externe

Message par Pepino672 »

Oui en effet pour mettre la variable en real, soit passer par un script dans l'IHM soit mettre en forme dans l'automate INT_TO_REAL avec la division.

La solution de DurandO semble la plus appropriée dans ce cas si vous ne souhaitez pas toucher au programme automate.
Répondre