Création d'un DFB dans somachine Basic

Forum traitant des automates industriels de marque Schneider - Telemecanique
Squale
Générateur de blocs fonctions
Générateur de blocs fonctions
Messages : 105
Enregistré le : 05 sept. 2018, 06:17
Localisation : TAHITI

Création d'un DFB dans somachine Basic

Message par Squale »

Bonjour,

J'essaie de me palucher mon premier DFB dans somachine basic, je cherche à créer un Compteur horaire pour totaliser les heures de fonctionnement des équipements. Sur ce bloc j'ai besoin de créer 2 entrées Bool pour le pulse 1s (%S6) et la validation ainsi que 1 ou plusieurs sorties INT pour les heures, minutes, etc...

Quand j'essaie de créer un bloc fonction créé par l'utilisateur je peux mettre que des variables bool en entrée et en sortie du bloc, est-il possible d'avoir un INT en sortie du DFB pour le stocker dans une variable persistante ?
Sans titre.png
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: Création d'un DFB dans somachine Basic

Message par itasoft »

slts,
dans ce cas, il faut faire "Fonctions définies par l'utilisateur" à la place de "Bloc fonction définies par l'utilisateur" "
Modifié en dernier par itasoft le 10 avr. 2020, 11:02, modifié 2 fois.
Automaticien privé (de tout)
itasoft@free.fr
dpo
Dieu du process
Dieu du process
Messages : 819
Enregistré le : 27 nov. 2015, 20:03

Re: Création d'un DFB dans somachine Basic

Message par dpo »

il me semble en effet que tous les mots sont vus comme des variables "public" et pas via des connecteurs E/S
Avatar du membre
sinced
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 1273
Enregistré le : 13 oct. 2015, 16:56

Re: Création d'un DFB dans somachine Basic

Message par sinced »

Malheureusement il y a des limitations sur le type de variables en entrees/sorties. Si tu veux du complexe tu passes sur Unity Pro
Squale
Générateur de blocs fonctions
Générateur de blocs fonctions
Messages : 105
Enregistré le : 05 sept. 2018, 06:17
Localisation : TAHITI

Re: Création d'un DFB dans somachine Basic

Message par Squale »

Le contrôleur est un M221, il me semble que Unity c'est à partir du M340.
J'ai toujours la possibilité de migrer le projet de somachine basic vers somachine "moins basic" qui est un peu plus sympa pour mouliner des DFB.
Cedric39
Générateur de blocs fonctions
Générateur de blocs fonctions
Messages : 136
Enregistré le : 05 déc. 2015, 09:47

Re: Création d'un DFB dans somachine Basic

Message par Cedric39 »

Bonjour,
C'est basique mais on peut faire pas mal de chose:
Voici un exemple de bloc fonction a ameliorer pour ton besoin.
VAR0 est utilisé en bit 0 pour le front du %S6
PARAM0 sera accesible en dehors du bloc
Capture1.JPG
Exemple d'appel du bloc et copie de PARAM0 dans %MW0
Capture2.JPG
Extrait de l'aide :
Utilisez éventuellement des blocs opération pour lire ou écrire des paramètres de bloc fonction.
La syntaxe est %<UDFB name><instance number>.PARAMn, n représentant un entier correspondant au numéro du paramètre.
Squale
Générateur de blocs fonctions
Générateur de blocs fonctions
Messages : 105
Enregistré le : 05 sept. 2018, 06:17
Localisation : TAHITI

Re: Création d'un DFB dans somachine Basic

Message par Squale »

Merci Cedric, je comprends mieux la démarche avec ton exemple.

L'utilisation du VAR0 c'est pour éviter d'avoir plusieurs incrémentations de PARAM0 à chaque PULSE ?
Squale
Générateur de blocs fonctions
Générateur de blocs fonctions
Messages : 105
Enregistré le : 05 sept. 2018, 06:17
Localisation : TAHITI

Re: Création d'un DFB dans somachine Basic

Message par Squale »

Bonjour,

suite à la création d'un bloc fonction pour totaliser le temps de fonctionnement en heures, min, secondes, je l'ai implémenté dans plusieurs réseaux sur différents équipements. Le DFB fonctionne correctement puisque les variables s'incrémentent correctement, par contre je ne comprend pas quelle est mon erreur quand j'essaie de recopier la valeur dans des variables persistentes.

D'après la doc du M221 les 50 premiers mots sont sauvegardés, j'ai ajouté un réseau pour recopier la valeur des compteurs dans des mots pour conserver la valeur en cas de cold start mais j'ai des valeurs incohérentes. Est-ce qu'il y a une erreur dans la syntaxe de l'opération ?
Fichiers joints
Recopie var.png
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: Création d'un DFB dans somachine Basic

Message par itasoft »

Slts,
l’équation est correcte, ça concerne bien l'instance %UDFB1_0.PARAM et non l'instance visualisé qui est %UDFB1_5 ??
Automaticien privé (de tout)
itasoft@free.fr
Squale
Générateur de blocs fonctions
Générateur de blocs fonctions
Messages : 105
Enregistré le : 05 sept. 2018, 06:17
Localisation : TAHITI

Re: Création d'un DFB dans somachine Basic

Message par Squale »

Slts,

Cela concerne bien %UDFB1_0.PARAM2 mais également tous les autres DFB, sur la copie d'écran on ne vois pas tous les réseaux. Les valeurs PARAM0, PARAM1 et PARAM2 s'incrémentent correctement mais quand je recopie dans des MW j'obtiens des valeurs incohérentes.

Il y a un truc qui m'échappe et je n'arrive pas à mettre le doigt dessus.
Répondre