Equivalent fonction DRUM de PL7 sur Unity et M340
-
mateocinco
- Apprend le binaire

- Messages : 7
- Enregistré le : 01 juin 2017, 09:24
Equivalent fonction DRUM de PL7 sur Unity et M340
Bonjour,
Je dois réaliser le remplacement d'un automate TSX37 Micro par un automate M340 sur une station de pompage équipé de 4 pompes.
J'ai donc un nouvel API type M340 et le logiciel Unity Pro. Je recrée mon programme existant PL7Pro en langage LD sur Unity toujours en LD.
Actuellement, l'API gère le fonctionnement comme suit : des ordres de pompage sont donnés par des seuils de débit, dès que l'on perd un ordre, on avance le pas d'un DRUM de PL7 (équivalent programmateur cyclique à cames mécanique). Avec les %M# donnés par le DRUM, on fait une sélection de pompe ce qui alterne leur fonctionnement.
Le problème est que sur Unity, cette fonction DRUM n'existe plus ! Je ne voulais pas trop m'éloigner du programme existant.
Je suis un peu coincé par la programmation d'un équivalent, je n'ai pas de grandes notions sur Unity que je découvre...
Je pensais créer un compteur d'impulsion qui s'incrémente à chaque arrêt de pompe avec une remise à zéro quand il arrive à 3. Puis avec un bloc Compare ou Operate quand le compteur est a 0 activer le %M0, compteur à 1 activer %M1... puis utiliser mes %M# comme avant pour ma sélection de pompe.
Je n'arrive pas à faire cette programmation, je sèche un peu....
Je ne sais pas si ça peut fonctionner ou si il y a d'autres solutions plus simples et plus adaptées tout en restant en langage LD.
Merci pour votre aide
Mathieu
Je dois réaliser le remplacement d'un automate TSX37 Micro par un automate M340 sur une station de pompage équipé de 4 pompes.
J'ai donc un nouvel API type M340 et le logiciel Unity Pro. Je recrée mon programme existant PL7Pro en langage LD sur Unity toujours en LD.
Actuellement, l'API gère le fonctionnement comme suit : des ordres de pompage sont donnés par des seuils de débit, dès que l'on perd un ordre, on avance le pas d'un DRUM de PL7 (équivalent programmateur cyclique à cames mécanique). Avec les %M# donnés par le DRUM, on fait une sélection de pompe ce qui alterne leur fonctionnement.
Le problème est que sur Unity, cette fonction DRUM n'existe plus ! Je ne voulais pas trop m'éloigner du programme existant.
Je suis un peu coincé par la programmation d'un équivalent, je n'ai pas de grandes notions sur Unity que je découvre...
Je pensais créer un compteur d'impulsion qui s'incrémente à chaque arrêt de pompe avec une remise à zéro quand il arrive à 3. Puis avec un bloc Compare ou Operate quand le compteur est a 0 activer le %M0, compteur à 1 activer %M1... puis utiliser mes %M# comme avant pour ma sélection de pompe.
Je n'arrive pas à faire cette programmation, je sèche un peu....
Je ne sais pas si ça peut fonctionner ou si il y a d'autres solutions plus simples et plus adaptées tout en restant en langage LD.
Merci pour votre aide
Mathieu
- itasoft
- Mi homme - Mi automate

- Messages : 7806
- Enregistré le : 20 oct. 2015, 10:15
- Localisation : Lyon
- Contact :
Re: Equivalent fonction DRUM de PL7 sur Unity et M340
slts,
voir le bloc fonction PL7_DRUM
voir le bloc fonction PL7_DRUM
Automaticien privé (de tout)
itasoft@free.fr
itasoft@free.fr
-
mateocinco
- Apprend le binaire

- Messages : 7
- Enregistré le : 01 juin 2017, 09:24
Re: Equivalent fonction DRUM de PL7 sur Unity et M340
Bonjour,
Je ne trouve pas cette fonction PL7_DRUM dans la bibliothèque ???
Où se cache-t-elle ?
J'avais eu le SAV de Schneider qui m'avait dis que la fonction DRUM n'avait pas été développée pour Unity et M340 !
Je ne trouve pas cette fonction PL7_DRUM dans la bibliothèque ???
Où se cache-t-elle ?
J'avais eu le SAV de Schneider qui m'avait dis que la fonction DRUM n'avait pas été développée pour Unity et M340 !
- itasoft
- Mi homme - Mi automate

- Messages : 7806
- Enregistré le : 20 oct. 2015, 10:15
- Localisation : Lyon
- Contact :
Re: Equivalent fonction DRUM de PL7 sur Unity et M340
chercher dans l'aide en ligne
sinon en programmation ça revient à faire un décalage à gauche de 1 du bit 0 d'un mot EX: %MW0:=SHL(%MW0,1)
sinon en programmation ça revient à faire un décalage à gauche de 1 du bit 0 d'un mot EX: %MW0:=SHL(%MW0,1)
Automaticien privé (de tout)
itasoft@free.fr
itasoft@free.fr
-
mateocinco
- Apprend le binaire

- Messages : 7
- Enregistré le : 01 juin 2017, 09:24
Re: Equivalent fonction DRUM de PL7 sur Unity et M340
Bonjour
Je dois avoir compris le principe de la fonction SHL mais après je ne trouve pas comment utiliser le bit qui est utilisé dans le mot %MW0 ???
Par exemple bit a du mot interne b %MWb:Xa ? Cela me met une erreur??? Faut-il faire autre chose avant ?
Désolé pour toutes ces questions mais ça dépasse mes compétences...
Je dois avoir compris le principe de la fonction SHL mais après je ne trouve pas comment utiliser le bit qui est utilisé dans le mot %MW0 ???
Par exemple bit a du mot interne b %MWb:Xa ? Cela me met une erreur??? Faut-il faire autre chose avant ?
Désolé pour toutes ces questions mais ça dépasse mes compétences...
Re: Equivalent fonction DRUM de PL7 sur Unity et M340
Salut,
Sur Unity Pro %MWb.a
Sur Unity Pro %MWb.a
- Bernardo59
- Mi homme - Mi automate

- Messages : 1054
- Enregistré le : 20 oct. 2015, 05:48
- Localisation : Nimes
- Contact :
Re: Equivalent fonction DRUM de PL7 sur Unity et M340
Salut mateocinco,
Si tu veux réellement récupérer cette fonction il te faut convertir ton fichier PL7-PRO .FEF sur UNITY et ta fonction DRUM sera remplacée par PL7_DRUM dans le programme.
Par contre, je reviens sur ce que te dis Itasoft, tu peux utiliser la fonction SHL.
A+
Si tu veux réellement récupérer cette fonction il te faut convertir ton fichier PL7-PRO .FEF sur UNITY et ta fonction DRUM sera remplacée par PL7_DRUM dans le programme.
Par contre, je reviens sur ce que te dis Itasoft, tu peux utiliser la fonction SHL.
A+
-
mateocinco
- Apprend le binaire

- Messages : 7
- Enregistré le : 01 juin 2017, 09:24
Re: Equivalent fonction DRUM de PL7 sur Unity et M340
OK merci à vous trois, j'essaie et je reviens vers vous...
-
mateocinco
- Apprend le binaire

- Messages : 7
- Enregistré le : 01 juin 2017, 09:24
Re: Equivalent fonction DRUM de PL7 sur Unity et M340
Bonsoir,
J'ai voulu essayer de faire quelques lignes pour tester et après génération du projet, mais j'ai des erreurs :

A la mise en route de l'API, le %MW0 se met à 0.
A chaque activation de l'entrée At1 on décale le bit du mot %MW0 vers la gauche.
Quand le bit 0 du %MW0 est activé on active le %M0....
Dès que le bit 4 du %MW0 est activé on active le %M4 qui remet le %MW0 à 0.
Le %M0 autorise le démarrage de la pompe 1, le %M1 la pompe 2 ...
Est-ce que le principe est bon ?
Voici ce que Unity me dit :

Je ne comprend rien à ces avertissement, c'est trop technique pour moi...
Si quelqu'un peut me sauver ???
J'ai voulu essayer de faire quelques lignes pour tester et après génération du projet, mais j'ai des erreurs :

A la mise en route de l'API, le %MW0 se met à 0.
A chaque activation de l'entrée At1 on décale le bit du mot %MW0 vers la gauche.
Quand le bit 0 du %MW0 est activé on active le %M0....
Dès que le bit 4 du %MW0 est activé on active le %M4 qui remet le %MW0 à 0.
Le %M0 autorise le démarrage de la pompe 1, le %M1 la pompe 2 ...
Est-ce que le principe est bon ?
Voici ce que Unity me dit :

Je ne comprend rien à ces avertissement, c'est trop technique pour moi...
Si quelqu'un peut me sauver ???
Re: Equivalent fonction DRUM de PL7 sur Unity et M340
Salut,
Le principe de décalage c'est bon. Mais cela ne va pas marcher, je veux dire par là que les pompes ne se mettront pas en route
Pour les avertissements sur %MW0, oui tu utilises le principe de chevauchement donc le logiciel te prévient au cas ou ce ne serais pas volontaire, peux être que dans les options du projet il y une case à cocher pour autoriser les chevauchement de variable et ainsi ne plus avoir ces alertes.
Programme avec des mnémoniques c'est plus classe quand même
Edit : pour le chevauchement vérifie quand même que %MW0 ne soit pas utilisé ailleurs dans le programme et aussi par %MD0, %MF0
Le principe de décalage c'est bon. Mais cela ne va pas marcher, je veux dire par là que les pompes ne se mettront pas en route
Pour les avertissements sur %MW0, oui tu utilises le principe de chevauchement donc le logiciel te prévient au cas ou ce ne serais pas volontaire, peux être que dans les options du projet il y une case à cocher pour autoriser les chevauchement de variable et ainsi ne plus avoir ces alertes.
Programme avec des mnémoniques c'est plus classe quand même
Edit : pour le chevauchement vérifie quand même que %MW0 ne soit pas utilisé ailleurs dans le programme et aussi par %MD0, %MF0
