Bonjour à tous,

Je travaille sur un projet de contrôle moteur. Pour faire simple, j'ai un pot de peinture fixe posé sur une table fixe et un objet controlé par un axe motorisé vertical. Le but de mon programme c'est d'arriver, au millimètre près (j'ai rajouté un marge de 2mm pour ne pas toucher la peinture), au niveau où se trouve la peinture. Puis, l'utilisateur choisira une vitesse durant l'execution, et son objet devra descendre jusqu'à immersion totale, puis remonter jusqu'à être totalement sortie de la peinture. Je suis très précis donc le problème ne vient pas de la. Pour réaliser ce programme, j'ai donc utilisé un "chart" Simulink". Mon programme Simulink comptient un programme C pour le pilotage en vitesse (ce programme est verifié et tester, il marche très bien). Je fais ma "chart", je la teste, mon objet s'arrête à 2mm de ma peinture, il entame la descente à la vitesse demandée, jusqu'à la vitesse demandée. Et la mon problème arrive. Impossible de le faire remonter, et je ne comprend vraiment pas pourquoi. Je viens donc vous demandez de l'aide car je ne comprend vraiment pas pourquoi il ne veut pas remonter.

La partie de mon programme qui ne marche pas
D'abord le subchart:



Puis les blocs :







Les blocs FINISHED ne contiennent qu'un "exit : RUN = 0;
Mes calculs contiennent des variables, mais ils sont verifié et bon.

A savoir aussi, j'ai fais une variable appeler COMMAND. Lorsque COMMAND = 0, je fais un homing. COMMAND = 1 je fais un SETUP (je me met a 2mm de la peinture). COMMAND = 2 (je suis censé descendre puis remonté.
J'ai testé de mettre la descente en COMMAND = 2 et la montée en COMMANDE = 3 et la tout marche parfaitement. Mais je voudrais que la descente et la remontée s'enchaine sans interaction humaine.

Merci par avance pour votre aide,