DFB sur Ecostruxure Control

Forum traitant des automates industriels de marque Schneider - Telemecanique
Répondre
Pascaljt

DFB sur Ecostruxure Control

Message par Pascaljt »

Bonjour,

Je suis en train de développer un bloc fonction sur Ecostruxure control Expert avec un contrôleur en Ethernet/IP (connecté sur carte NOC401).
Mon bloc est bien programmé, j'ai renseigné toutes les E/S et j'ai créé une structure pour me faciliter la tâche.
Jusqu'ici tout va bien. Le problème est que je n'arrive pas à raccrocher les variables de mon contrôleur en Ethernet/IP avec les variables de mon DFB. J'ai créé une structure Data_Input et Data_Output pour le bloc fonction et la structure de mes variables du contrôleur dans mon programme de test sont T_EIP_Input et T_EIP_Output.
Bien sûr si je déclare ces types dans mon bloc fonction ça marche mais le but est d'utiliser le bloc avec plusieurs contrôleurs donc les structures n'auront jamais le même nom.
Si je déclare mon type avec les adresses %MW[x] ça marche aussi mais il y a un chevauchement d'adresse c'est désagréable.

Quelqu'un pourrait m'aider ?
Comment mettre en relation les variables de mon bloc avec les variables du périphérique ?

PS : Le fichier eds ne donne aucun nom, c'est un tableau de 64 octets. Dans les 2 cas j'ai déclaré 64 octets mais bien sûr le nom des types sont différents donc ça ne passe pas.

Merci de votre aide.
Avatar du membre
itasoft
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 7807
Enregistré le : 20 oct. 2015, 10:15
Localisation : Lyon
Contact :

Re: DFB sur Ecostruxure Control

Message par itasoft »

slts,
afficher les variables de ton bloc
Automaticien privé (de tout)
itasoft@free.fr
dpo
Dieu du process
Dieu du process
Messages : 820
Enregistré le : 27 nov. 2015, 20:03

Re: DFB sur Ecostruxure Control

Message par dpo »

Si j'ai bien compris ton besoin,
pour ce genre de choses je fais :
mon DFB standard (par exemple MOTEUR), qui travaille avec une structure adaptée (par exemple Strut_MOTEUR qui contient le défaut,la commande, la vitesse....)
Ce bloc est générique et s'adapte à quasiment tous les projets.
Puis je remplis la structure en fonction du matériel qui est en face (souvent en com Ethernet/IP ou Modbus TCP)
s'il y en a peu, je le fais parfois dans une section en litteral ;
Strut_MOTEUR1.DEF:=io_scan_LEC_MOTEUR1.X0;
Strut_MOTEUR1.MAR:=io_scan_LEC_MOTEUR1.X1
io_scan_ECR_MOTEUR1.X0:=Strut_MOTEUR1.CDE:

où (tu l'as compris), les variables io_scan viennent des DTM.

mais comme je suis un gros feignant, souvent je fais un autre DFB qui fait coller les variables io_scan et la structure en fonction du fabricant.
par exemple je vais avoir le dfb COM_ATV pour schneider, puis COM_SEW pour SEW.....
PascalTech
Apprend le binaire
Apprend le binaire
Messages : 1
Enregistré le : 01 févr. 2022, 08:46

Re: DFB sur Ecostruxure Control

Message par PascalTech »

Bonjour et merci pour vos réponses :)
Je reprends le sujet en PascalTech puisque je n'arrive plus à me connecter sur mon compte Pascaljt.
#dpo je ne pense pas pouvoir appliquer cette méthode (si je l'ai bien compris). Mon bloc va simplifier les données, la position par exemple est sur 4 octets donc dans mon programme de bloc je fais [position_LL] + [Position_LH] + [Position_HL] + [Position_HH] = Position. avec "Position" ma variable externe qui va être renseignée dans le programme principal et les Position_XX qui sont le Data_Input, structure que j'ai créé.

Dans la structure du DTM c'est Byte[0] + Byte[1] + Byte[2] + Byte[3] avec un type T_EIP_Input qui est la structure créée par défaut lorsque j'ai déclaré le contrôleur.
Le problème est que le programme considère les 2 types incompatibles. J'aurais bien voulu faire correspondre Byte[0]=Position[LL] etc... mais sans avoir à le faire octet / octet dans le programme principal mais en faisant correspondre les 2 types, c'est pour ça que j'ai créé les structures Data_Input et Data_Output sur 64 octets comme les structures DTM de mes contrôleurs.

#itasoft, qu'est ce que tu entends par afficher les variables du bloc ? :?

J'espérais que ce soit aussi simple que dans Sysmac Studio où j'ai une même variable avec le type créé dans le bloc fonction et déclaré sur le réseau Ethernet/IP ou encore sur TIA où on renseigne l'adresse du contrôleur sur une variable du type personnalisé et c'est bon.

J'espère que je suis clair, je ne suis pas toujours très pédagogue dans les explications.

Merci d'avance.
Répondre