Script IHM pour synchroniser 1 variable String de 10 caractères avec 5 mots de 2 caractères

Forum traitant des automates industriels de marque Siemens.
Avatar du membre
LaurentCK
Première mise en service
Première mise en service
Messages : 60
Enregistré le : 24 oct. 2020, 08:41
Localisation : Pizay

Script IHM pour synchroniser 1 variable String de 10 caractères avec 5 mots de 2 caractères

Message par LaurentCK »

Bonjour et excellente année à celles et ceux qui me liront (et aux autres aussi),

Je suis nul en Script et même si je double mon niveau de compétence en 2025, je serais encore à classer parmi les nuls en script :cry:
Alors voilà mon souci :
Depuis 5 variables contenant 2 caractères alphanumériques ASCII chacune,
en provenance d'un automate Schneider (PL7 pro) via ModbusTCP,
déclarée dans un TP comfort en TIA 14 sous les noms mw1000, mw1001, mw1002, mw1003 et mw1004,
j'aurais besoin de synchroniser leur contenu
avec 1 variable interne à l'IHM déjà déclarée en format String
et nommée NomRecette,
et ce, dans les 2 sens, et à via l'appel de 2 scripts différents
que je vais nommer CharVersString et StringVersChar.
Est-ce que quelqu'un aurait des modèles un peu approchant (et si possible un peu commenté, mais je vais pas faire le difficile) ?

Moi, là, je suis dans l'aide intégrée à TIA, mais si je me débrouille seul sans modèle ça va me prendre 3 jours minimum et j'ai pas encore accès au matos pour tester.
Merci d'avance
Avatar du membre
itasoft
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 7803
Enregistré le : 20 oct. 2015, 10:15
Localisation : Lyon
Contact :

Re: Script IHM pour synchroniser 1 variable String de 10 caractères avec 5 mots de 2 caractères

Message par itasoft »

avec 1 variable interne à l'IHM déjà déclarée en format String
et nommée NomRecette,

-------
pas besoin de Script.
dans Vijeo-designer mettre la variable NomRecette comme variable externe à l'adresse %MW1000
Automaticien privé (de tout)
itasoft@free.fr
Avatar du membre
LaurentCK
Première mise en service
Première mise en service
Messages : 60
Enregistré le : 24 oct. 2020, 08:41
Localisation : Pizay

Re: Script IHM pour synchroniser 1 variable String de 10 caractères avec 5 mots de 2 caractères

Message par LaurentCK »

Bonjour Itasoft, Merci de m'avoir répondu mais il s'agit d'une IHM Siemens TP Comfort programmable sous Siemens TIA
Avatar du membre
itasoft
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 7803
Enregistré le : 20 oct. 2015, 10:15
Localisation : Lyon
Contact :

Re: Script IHM pour synchroniser 1 variable String de 10 caractères avec 5 mots de 2 caractères

Message par itasoft »

LaurentCK a écrit : 03 janv. 2025, 16:32 Bonjour Itasoft, Merci de m'avoir répondu mais il s'agit d'une IHM Siemens TP Comfort programmable sous Siemens TIA
---------
ok connais pas
Disons que sans Script le but est de mettre la variable String et le tableau de 5 mots à la même adresse mémoire, quand on modifie l'un ça modifie l'autre
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: Script IHM pour synchroniser 1 variable String de 10 caractères avec 5 mots de 2 caractères

Message par DurandO »

Bonjour,
LaurentCK a écrit : 03 janv. 2025, 15:06 Depuis 5 variables contenant 2 caractères alphanumériques ASCII chacune,
en provenance d'un automate Schneider (PL7 pro) via ModbusTCP,
déclarée dans un TP comfort en TIA 14 sous les noms mw1000, mw1001, mw1002, mw1003 et mw1004,
j'aurais besoin de synchroniser leur contenu
avec 1 variable interne à l'IHM déjà déclarée en format String
et nommée NomRecette,
Il suffit de déclarer la variable NomRecette non pas interne mais API en type array [0..9] of char à l'adresse API %MW1000.
Ensuite si tu veux modifier ta variable NomRecette, tu crée un champ E/S format d'affichage chaine de caracteres longueur du champ 10.
Avatar du membre
LaurentCK
Première mise en service
Première mise en service
Messages : 60
Enregistré le : 24 oct. 2020, 08:41
Localisation : Pizay

Re: Script IHM pour synchroniser 1 variable String de 10 caractères avec 5 mots de 2 caractères

Message par LaurentCK »

Bonjour DurandO,
Il suffit de déclarer la variable NomRecette non pas interne mais API en type array [0..9] of char à l'adresse API %MW1000.
L'idée est séduisante, malheureusement, les variables transitent par ModbusTCP (l'automate est un Schneider) et les types de variables regroupées en tableau array que TIA me propose sont :
  • +/-Double
    +- Int
    16 bit group
    Bit
    Double
    Float
    Int
Pas de trace de "Char"

Image
DurandO
Maître du binaire
Maître du binaire
Messages : 482
Enregistré le : 21 mars 2021, 15:31

Re: Script IHM pour synchroniser 1 variable String de 10 caractères avec 5 mots de 2 caractères

Message par DurandO »

DurandO a écrit : 04 janv. 2025, 12:02 Il suffit de déclarer la variable NomRecette non pas interne mais API en type array [0..9] of char à l'adresse API %MW1000.
J'ai proposé cela qui fonctionne parfaitement avec API Siemens. Je ne pensais pas que cela ne puisse pas marcher en Schneider !
Quel idée de raccorder un TP plutôt qu'un Magelis : il en a qui aiment se faire du mal.

As-tu essayé avec type données ASCII longueur 10 ?
Avatar du membre
LaurentCK
Première mise en service
Première mise en service
Messages : 60
Enregistré le : 24 oct. 2020, 08:41
Localisation : Pizay

Re: Script IHM pour synchroniser 1 variable String de 10 caractères avec 5 mots de 2 caractères

Message par LaurentCK »

Le client a toutes ses nouvelles machines en TIA. Il m'impose se travailler avec un TP1900 neuf en remplacement d'une IHM Siemens vieille de 20 ou 30 ans, dont l'écran se fige parfois. On ne touche pas à l'automate qui est un Schneider et dont personne ne comprend rien.
Pour moi faut faire avec.

La variable %MW1000 est déjà une sorte de pointeur de début de chaine en ASCII sur 10 caractères.

Image
Avatar du membre
LaurentCK
Première mise en service
Première mise en service
Messages : 60
Enregistré le : 24 oct. 2020, 08:41
Localisation : Pizay

Re: Script IHM pour synchroniser 1 variable String de 10 caractères avec 5 mots de 2 caractères

Message par LaurentCK »

Il me faut vraiment aboutir à une variable interne au format WString.
Du coup je pense que je vais tenter ça :

Image

Si ça marche ça me fait déjà la moitié du boulot et il me restera le chemin inverse...
Avatar du membre
LaurentCK
Première mise en service
Première mise en service
Messages : 60
Enregistré le : 24 oct. 2020, 08:41
Localisation : Pizay

Re: Script IHM pour synchroniser 1 variable String de 10 caractères avec 5 mots de 2 caractères

Message par LaurentCK »

Et je pense utiliser ça pour l'effet réciproque :
Image
Répondre