Création d'un DFB dans somachine Basic
-
Squale
- 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
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 ?
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 ?
- itasoft
- 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
slts,
dans ce cas, il faut faire "Fonctions définies par l'utilisateur" à la place de "Bloc fonction définies par l'utilisateur" "
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
itasoft@free.fr
Re: Création d'un DFB dans somachine Basic
il me semble en effet que tous les mots sont vus comme des variables "public" et pas via des connecteurs E/S
Re: Création d'un DFB dans somachine Basic
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

- Messages : 105
- Enregistré le : 05 sept. 2018, 06:17
- Localisation : TAHITI
Re: Création d'un DFB dans somachine Basic
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.
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.
Re: Création d'un DFB dans somachine Basic
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 Exemple d'appel du bloc et copie de PARAM0 dans %MW0 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.
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 Exemple d'appel du bloc et copie de PARAM0 dans %MW0 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

- Messages : 105
- Enregistré le : 05 sept. 2018, 06:17
- Localisation : TAHITI
Re: Création d'un DFB dans somachine Basic
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 ?
L'utilisation du VAR0 c'est pour éviter d'avoir plusieurs incrémentations de PARAM0 à chaque PULSE ?
-
Squale
- 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
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 ?
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 ?
- itasoft
- 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
Slts,
l’équation est correcte, ça concerne bien l'instance %UDFB1_0.PARAM et non l'instance visualisé qui est %UDFB1_5 ??
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
itasoft@free.fr
-
Squale
- 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
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.
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.
