Page 1 sur 2

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

Posté : 03 janv. 2025, 15:06
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

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

Posté : 03 janv. 2025, 15:40
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

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

Posté : 03 janv. 2025, 16:32
par LaurentCK
Bonjour Itasoft, Merci de m'avoir répondu mais il s'agit d'une IHM Siemens TP Comfort programmable sous Siemens TIA

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

Posté : 03 janv. 2025, 17:28
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

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

Posté : 04 janv. 2025, 12:02
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.

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

Posté : 05 janv. 2025, 12:08
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

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

Posté : 05 janv. 2025, 13:15
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 ?

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

Posté : 05 janv. 2025, 20:24
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

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

Posté : 05 janv. 2025, 20:57
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...

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

Posté : 05 janv. 2025, 22:05
par LaurentCK
Et je pense utiliser ça pour l'effet réciproque :
Image