Ecostruxure Control Bloc fonction

  • Pascaljt
    Pascaljt
    Modérateur
    Automaticien habitué

    27 messages
    Inscrit le 11/09/2016

    le 03/02/2022 à 09:36 Citer ce message

    Bonjour,

    Je viens de programmer un DFB avec mes entrées / sorties et 2 variables In et Out avec un type Struc_In et Struct_Out. Le but est de piloter plusieurs contrôleurs d'axes ( identique) sur un réseau Ethernet/IP ( carte NOC0401). Lorsque je déclare un contrôleur dans le navigateur DTM que j'appelle par exemple EIP, j'ai les 2 variables EIP_IN et EIP_OUT qui se créent avec les types T_EIP_IN et T_EIP_OUT.
    Je dois créé une liaison entre mes variables EIP_IN, EIP_OUT avec mes variables In et Out pour pouvoir piloter mon contrôleur.

    Problème, si j'ai bien fait en sorte que la structure soit strictement identique les types sont différents et Ecostruxure me le rejette. Du coup impossible de créer une liaison entre le contrôleur et le bloc fonction.
    J'ai bien essayé de mettre les adresses %MW sur les variables In et Out du bloc fonction, ça marche mais il y a des chevauchements d'adresses lors de la génération du projet.

    Est ce que quelqu'un aurait une idée ?

    Merci d'avance.
  • EvangerC
    EvangerC
    Modérateur
    Automaticien vétéran

    270 messages
    Inscrit le 01/07/2017

    le 03/02/2022 à 09:57 Citer ce message

    Bonjour Pascaljt,

    As tu essayé de crée un DDT structure?
    Comme ça lorsque tu va crée ton DFB tu va pouvoir y affecter en entrée et en sortie le même DDT structure que tu auras crée.

    Cordialement,
  • Pascaljt
    Pascaljt
    Modérateur
    Automaticien habitué

    27 messages
    Inscrit le 11/09/2016

    le 03/02/2022 à 10:28 Citer ce message

    Bonjour EvangerC,

    Oui j'ai essayé. A chaque fois j'ai "type incompatible", la structure DDT du contrôleur est différent de la structure DDT de mon bloc et sont incompatible. J'ai essayé de faire un MOVE d'une variable vers une autre mais toujours incompatible.
    Si je mets mes variables In et Out avec la structure DDT du contrôleur, ça marche ils ont le même type, le problème est que chaque contrôleur a sa propre structure donc j'ai un DFB = 1 contrôleur et en plus je dois modifier mon DFB pour chaque contrôleur, ça marche mais c'est pas pratique. Ce que j'aimerais c'est avoir 1 seule fonction pour tous les contrôleurs et faisant correspondre les 2 structures DDT.
    Avec Omron par exemple je crée un type de données E/S (Position, vitesse, accélération,etc...) avec le bon format (36 bytes par exemple), j'utilise ce type pour mes variables E/S que je déclare sur le réseau et les variables E/S de mon bloc fonction et c'est Nickel. Avec Siemens on utilise simplement les adresses, avec Rockwell ça marche simplement avec le format de la structure mais avec Ecostruxure on a pas la main sur le type de données pour le périphérique Ethernet/IP, il est créé par défaut. Si seulement il y avait un type de données générique qui permette de rendre compatible les 2 structures ce serait top.
  • Pascaljt
    Pascaljt
    Modérateur
    Automaticien habitué

    27 messages
    Inscrit le 11/09/2016

    le 03/02/2022 à 14:04 Citer ce message

    Je viens d'essayer avec un contrôleur qui déclare uniquement un tableau de 64 octets, l'eds ne donnant aucune autre description des variables. J'ai créé les 2 variables du bloc fonction In et Out comme tableau de 64 octets et un autre essai avec Any_Array_Byte, toujours incompatibilité de type :(
    J'ai l'impression qu'il considère vraiment la structure du périphérique au niveau de la variable DDT, c'est bizarre puisque pris individuellement je peux faire un Move d'un élément vers un autre type.
    C'est à dire EIP_IN.Free0[0] (byte) = Variable_Octet dans le programme principal ça marche donc c'est bien considéré comme des octets.

Répondre à ce message

 

7 choses à savoir si Tu débutes en automatisme...

7 choses que tu dois savoir si tu debutes en automatismeCliquez ici pour télécharger le guide PDF

Superv 3