Page 1 sur 2

[Panorama] Création dynamique d'instances de composants

Posté : 10 janv. 2023, 14:40
par BruceBacc
Bonjour
Je voudrais utiliser la même application avec des configurations pouvant être différentes sans devoir regénérer et configurer manuellement une application Panorama pour chaque affaire.
En fait, je ne veux rien définir dans l'unité au départ et tout créer dynamiquement.

J'ai donc un composant GROUP et différents composants DEVICE (tous en modbus TCP)
Dans un fichier INI, je défini :
- le nombre de groupe et le nom de chaque groupe
- puis par groupe, les DEVICE qui lui seront associés
- puis par groupe et par device, l'adresse IP et le numéro d'esclave

Panorama, à la lecture de ce fichier .INI doit, au lancement du run-time :
- créer dynamiquement des dossiers fonctionnels (un par par GROUP) dans un dossier fonctionnel existant dans l'unité racine
- créer dynamiquement des instances du composant GROUPE (une par groupe défini) dans ce dossier fonctionnel
(- créer dynamiquement des instances des différents composant DEVICE d'un GROUP dans ce dossier fonctionnel)
- Et pour chaque instance DEVICE créée, préciser l'adresse IP et le numéro d'esclave du composant MODBUS/Canal Equipement toujours de façon dynamique

Est t-il possible de créer dynamiquement des dossiers fonctionnels, des instances, en mode Run-Time ?

Cela donnerait cela au final après création dynamique:
Untitled.png
Untitled.png (10.74 Kio) Vu 3337 fois
alors que dans Panorama Studio, je n'ai que ça :
Untitled2.png
Untitled2.png (1.54 Kio) Vu 3337 fois
Un exemple de script pour cela ?
Merci

Re: [Panorama] Création dynamique d'instances de composants

Posté : 10 janv. 2023, 16:20
par itasoft
slts,
quel rapport avec l'automatisme ? poser la question sur https://www.developpez.net/forums/

Re: [Panorama] Création dynamique d'instances de composants

Posté : 10 janv. 2023, 16:43
par BruceBacc
Quel rapport a votre réponse avec ce forum ?

Je pense qu'il n'est pas inutile de vous rappeler ce à quoi sert ce forum : ;)
Image5.jpg


Il me semble être dans la bonne rubrique, non ?
Image6.jpg
Et en allant vérifier par vous même sur https://www.developpez.net/forums, vous auriez très vite compris que mon sujet n'a rien à faire sur le forum que vous citez.

C'est juste pour dire que ce genre de réponse hors sujet ne sert pas à grande chose dans la discussion.
Pas plus que la mienne d'ailleurs...
Je vous propose d'enlever votre intervention.
Du coup, j'enlèverai aussi la mienne...

Re: [Panorama] Création dynamique d'instances de composants

Posté : 10 janv. 2023, 16:48
par itasoft
--------clic pour zoom--------
01.JPG

Re: [Panorama] Création dynamique d'instances de composants

Posté : 10 janv. 2023, 16:58
par BruceBacc
Lol !
Nous sommes dans la rubrique "Supervision industrielle", pas "Photographie".

Le topic [panorama] qui est proposé automatiquement par le forum n'a donc bien évidemment rien à voir avec le Panorama que vous proposez !

Tout bon automaticien qui se respecte connait le SCADA Panorama de chez Codra... ;)

Re: [Panorama] Création dynamique d'instances de composants

Posté : 10 janv. 2023, 17:02
par itasoft
dans ce cas il fallait le préciser, je ne connais pas toutes les drouilles infâmes de SCADA de la planète, du cosmos et des univers parallèles !!!!!!!!!

Re: [Panorama] Création dynamique d'instances de composants

Posté : 10 janv. 2023, 17:39
par DurandO
BruceBacc a écrit : 10 janv. 2023, 14:40
Un exemple de script pour cela ?
Merci
Bonjour,
il y a longtemps, j'ai fait une appli VB utilisant le principe de redimensionnement d'objet en fonction d'un paramétrage par fichier ".ini"

En VB, donc, en espèrant que tu puisses écrire tes scripts dans ce langage, on utilise pour lire écrire fichier ini, les fonctions suivantes :

Code : Tout sélectionner

WritePrivateProfileString(Section, cle, Valeur, FICHIER)
GetPrivateProfileString
Rappel de la structure d'un fichier.ini :

Code : Tout sélectionner

;Définition des Moteurs traités dans l'automate de ligne
[M]
NB=16
ADRESSE=40
Ici M est une section, NB, ADRESSE sont des cle, 16, 40 des valeurs.

Pour redimensionner un tableau j'ai utilisé la fonction Redim Preserve exemple :

Code : Tout sélectionner

 'PARAMETRAGE DES ANIMATION OP
  cle = "ANIMOP"
  While LitFichierIni(cle, "COULEURFOND" & Trim(Str(i)), Fich_Synoptique, , "Module1/Init1") <> ""
    ReDim Preserve AnimOP(i)
    With AnimOP(i)
       .Text = LitFichierIni(cle, "TEXT" & Trim(Str(i)), Fich_Synoptique, , "Module1/Init2")
       .CouleurText = LitFichierIni(cle, "COULEURTEXT" & Trim(Str(i)), Fich_Synoptique, , "Module1/Init3")
       .CouleurFond = LitFichierIni(cle, "COULEURFOND" & Trim(Str(i)), Fich_Synoptique, , "Module1/Init4")
    End With
  Wend
Ici l'objet AnimOP est un tableau auquel j'ajoute des éléments à l'exécution de l'Appli.

Voila déjà une piste.
Cordialement.
Durand.O

Re: [Panorama] Création dynamique d'instances de composants

Posté : 10 janv. 2023, 18:01
par fish
itasoft a écrit : 10 janv. 2023, 17:02 dans ce cas il fallait le préciser, je ne connais pas toutes les drouilles infâmes de SCADA de la planète, du cosmos et des univers parallèles !!!!!!!!!
Salut,
Panorama de chez Codra n'est quand même pas une drouille infâme, c'est le standard dans les CEA...

Re: [Panorama] Création dynamique d'instances de composants

Posté : 10 janv. 2023, 18:07
par itasoft
les CEA ou la plus grosse concentration de fonctionnaires tous grassement payés par le contribuable et qui cherchent sans jamais rien trouver.
Demander à Jean-Pierre-Petit ce qu'il en pense

Re: [Panorama] Création dynamique d'instances de composants

Posté : 10 janv. 2023, 18:42
par BruceBacc
Merci Durando pour ton script pour lire les fichiers INI.

Mais c'est surtout savoir si on peut créer dynamiquement des instances de composants (suite à la lecture de ce fichier INI) qui m'intéresse