Ecrire toutes les entrées physiques dans un mot
Ecrire toutes les entrées physiques dans un mot
Bonjour,
J'ai un automate Schneider M340. Il est composé de modules de 64 entrées TOR et 64 sorties TOR, un module de 4 entrées thermocouples, et un module de 8 entrées analogiques.
Côté IHM, j'ai un panel PC de chez Siemens.
Je souhaite réaliser une page sur mon IHM de l'état des entrées/sorties. Pour ce faire, j'aimerais enregistrer mes variables sur tia. J'ai tenté de les enregistrer avec l'adresse physique des entrées mais ça n'a pas marché (j'ai une connexion modbus TCP/IP entre mon automate et mon IHM ce qui limite les types de données), du coup je cherche une solution sur écostruxure pour écrire toutes les entrées physiques dans un mot.
Existe il une solution ? autre bien sûr que celle de passer bit par bit chaque entrée physique.
Cordialement,
Corolian
J'ai un automate Schneider M340. Il est composé de modules de 64 entrées TOR et 64 sorties TOR, un module de 4 entrées thermocouples, et un module de 8 entrées analogiques.
Côté IHM, j'ai un panel PC de chez Siemens.
Je souhaite réaliser une page sur mon IHM de l'état des entrées/sorties. Pour ce faire, j'aimerais enregistrer mes variables sur tia. J'ai tenté de les enregistrer avec l'adresse physique des entrées mais ça n'a pas marché (j'ai une connexion modbus TCP/IP entre mon automate et mon IHM ce qui limite les types de données), du coup je cherche une solution sur écostruxure pour écrire toutes les entrées physiques dans un mot.
Existe il une solution ? autre bien sûr que celle de passer bit par bit chaque entrée physique.
Cordialement,
Corolian
Re: Ecrire toutes les entrées physiques dans un mot
Est il possible de faire un operate sur Ecostruxure de ce style :
%I0.3.0 to %I0.3.31:=Copie_entrees_1
En sachant que copie entrée 1 est un double mot ?
%I0.3.0 to %I0.3.31:=Copie_entrees_1
En sachant que copie entrée 1 est un double mot ?
- itasoft
- Mi homme - Mi automate

- Messages : 7804
- Enregistré le : 20 oct. 2015, 10:15
- Localisation : Lyon
- Contact :
Re: Ecrire toutes les entrées physiques dans un mot
slts,
Copie_entrees_1:=%I0.3.0:32;
Copie_entrees_1:=%I0.3.0:32;
Automaticien privé (de tout)
itasoft@free.fr
itasoft@free.fr
- JC87
- Mi homme - Mi automate

- Messages : 2231
- Enregistré le : 20 oct. 2015, 13:00
- Localisation : Nouvelle Aquitaine
Re: Ecrire toutes les entrées physiques dans un mot
Bonjour,
Il faut utiliser la fonction "MOVE_AREBOOL_INT" qui permet de copier un tableau de booléens dans un INT.
JC
Il faut utiliser la fonction "MOVE_AREBOOL_INT" qui permet de copier un tableau de booléens dans un INT.
JC
"On veut faire du zéro défaut mais on a zéro bonhomme et zéro budget, et bien à la fin on a zéro résultat..."
- itasoft
- Mi homme - Mi automate

- Messages : 7804
- Enregistré le : 20 oct. 2015, 10:15
- Localisation : Lyon
- Contact :
Re: Ecrire toutes les entrées physiques dans un mot
slts,
enfer et damnation, j'ai confondu avec le PL7-PRO
MOVE_AREBOOL_DINT(%I0.3.0:32,Copie_entrees_1);
enfer et damnation, j'ai confondu avec le PL7-PRO
MOVE_AREBOOL_DINT(%I0.3.0:32,Copie_entrees_1);
Automaticien privé (de tout)
itasoft@free.fr
itasoft@free.fr
-
philou77
- Mi homme - Mi automate

- Messages : 2142
- Enregistré le : 21 oct. 2015, 10:00
- Localisation : Ile de France
Re: Ecrire toutes les entrées physiques dans un mot
salut !
il faut en plus :
dans le menu "Outils/Options de Projet..." de Unity, cocher la case "Autoriser les tableaux dynamiques (ANY_ARRAY_XXX)",
il faut en plus :
dans le menu "Outils/Options de Projet..." de Unity, cocher la case "Autoriser les tableaux dynamiques (ANY_ARRAY_XXX)",
Si vous avez compris tout ce que je viens d'écrire, c'est que j'ai dû faire une erreur quelque part ! 
Re: Ecrire toutes les entrées physiques dans un mot
ça marche pour l'instruction move arebool, top !
On peut pas le faire avec un Dword ?
On peut pas le faire avec un Dword ?
Re: Ecrire toutes les entrées physiques dans un mot
par contre on est bien d'accord que c'est de 0 à 31 pour 32 bits
Re: Ecrire toutes les entrées physiques dans un mot
ça marche pour la première :
MOVE_AREBOOL_DINT(%I0.3.0:31,Copie_entrees_1);
et pour la deuxième ça marche pas :
MOVE_AREBOOL_DINT(%I0.3.32:63,Copie_entrees_2);
MOVE_AREBOOL_DINT(%I0.3.0:31,Copie_entrees_1);
et pour la deuxième ça marche pas :
MOVE_AREBOOL_DINT(%I0.3.32:63,Copie_entrees_2);
-
philou77
- Mi homme - Mi automate

- Messages : 2142
- Enregistré le : 21 oct. 2015, 10:00
- Localisation : Ile de France
Re: Ecrire toutes les entrées physiques dans un mot
je devance Itasoft 
32 c'est le nombre de bit à copier à partir de 0 !!
et pour la deuxième instruction, tu démarre bien à l'adresse 32 mais pour 32 bits ... pas 63 !!
32 c'est le nombre de bit à copier à partir de 0 !!
et pour la deuxième instruction, tu démarre bien à l'adresse 32 mais pour 32 bits ... pas 63 !!
Si vous avez compris tout ce que je viens d'écrire, c'est que j'ai dû faire une erreur quelque part ! 
