Page 1 sur 1

variateurs vitesse: profils de vitesse / FB en SCL

Posté : 06 juin 2017, 10:55
par pjoeboy
Image

Bonjour,
Je suis complètement novice sur le sujet du paramétrage d'un FB en SCL version TAI (ici V14) mais aussi les profils de vitesse variable. J'ai pas réussi à trouver d'aide adaptée (j'ai du mal chercher certainement^^) sur le net du coup je vous soumets le topic.
L'idée c'est d'avoir des paramètres saisis depuis un IHM (TP1200) comme ci-après afin de générer une consigne pour le/les variateurs de vitesse (les 3axes). Je voudrais faire un bloc générique avec le profil le plus complet (cf première image):

Image

J'ai essayé de "tronçonner" les différentes distances en droites affines mais je bloque un peu. Est-ce que quelqu'un aurait déjà programmé ce genre de chose et aurait éventuellement des bouts de code à présenter en exemple. Je sèche et je suis à la ramasse sur le planning d'avancement malheureusement.

Image

Re: variateurs vitesse: profils de vitesse / FB en SCL

Posté : 07 juin 2017, 22:43
par djé
Salut,

Un début de réponse pour gérer une rampe:

Créer une fonction intégration avec comme paramètres principaux :

IN:
T: période de base en ms (float)
Ti: temps d'intégration en ms ie le temps de rampe (float)
ValDeb: valeur de début (float) valeur à laquelle tu démarres la rampe
ValFin : valeur de Fin (float) valeur à laquelle tu finis ta rampe au bout du temps Ti
freeze: stop (bool)
init: (initialisation) (bool)
sens: montée=vrai (bool)

Stat=
Stemp : valeur à l'instant t(float)
    ** à déclarer Stemp à l'instant t-1 Stemp(t-1) **

    out:
    ValeurRampe: sortie rampée ( float)

    Pour fonctionner le bloc doit être appelé depuis un OB cyclique type OB31,32.. cadencé à 50 ou 100 ms par exemple. Cette période d'appel définira aussi la variable T (période de base = calcul de chaque échantillon à l'instant t)

    la formule de base est le calcul d'un coefficient de 0 à 1 "Stemp" :
    Stemp = Stemp(t-1) + T/Ti

    le principe: on rajoute à la sortie, sa valeur précédente + 1 tronçon de temps (T/Ti): au bout de Ti la valeur 1 (100%) est atteinte.

    A la suite de quoi tu calcules la valeur rampée finale:
    si sens positif (montée rampe)
    ValeurRampe = ValDeb + Stemp * (ValFin - ValDeb) : part de ValDeb jusqu'à ValFin dans le temps Ti

    si sens négatif:
    ValeurRampe = ValFin - Stemp * (ValFin - ValDeb)

    Les calculs sont exécutés si freeze et init sont tous les deux faux.
    Si freeze est vrai alors tu stoppes le calcul ie Stemp = Stemp(t-1)
    Si init est vrai Stemp = Stemp(t-1) =0

    C'est une base, je te laisse le soin de créer le code et la gestion correspondant a tes besoins.

    Re: variateurs vitesse: profils de vitesse / FB en SCL

    Posté : 07 juin 2017, 23:44
    par djé
    A la suite de quoi tu calcules la valeur rampée finale:
    si sens positif (montée rampe)
    ValeurRampe = ValDeb + Stemp * (ValFin - ValDeb) : part de ValDeb jusqu'à ValFin dans le temps Ti

    si sens négatif:
    ValeurRampe = ValFin - Stemp * (ValFin - ValDeb)
    En fait le premier calcul suffit pour les deux sens si tu intervertis les valeurs ValDeb et ValFin:
    Si ValDeb < ValFin : sens positif
    si ValDeb > ValFin : sens négatif

    Re: variateurs vitesse: profils de vitesse / FB en SCL

    Posté : 08 juin 2017, 07:34
    par pjoeboy
    merci pour tous ces éléments. Je vais regarder ça de près.