Discussion fermée
Affichage des résultats 1 à 17 sur 17

fanuc créé un programme calcul macro



  1. #1
    oursblanc76

    fanuc créé un programme calcul macro


    ------

    bonsoir
    je sollicitte votre aide et connaissance pour de la programmation macro sur fanuc esperan que que vous aurez quelque temp a me consacrer je vous remerci par avance

    je suis programmeur regleur sur des centres usinage 4et 5 axes equipé de fanuc 11 m 15m 16 m 18 i et 18 m ( 6 centres d'usinage sur pieces aéronautique ) je maitrise relativement bien la programation en G code mais pour mes réglages je doit toujours faire mes calculs d'angles et mes origines parfois 10 ou 12 angle différent
    je me penche donc sur de la macro pour tenter de réaliser un petit programme qui ferai ces calculs a ma place pour ce faire il me faudrai plusieurs formules dont je sui incapable de trouvé la syntaxe exacte :

    pour calculer une hypotemus:

    # 508 = racine carré de ( # 506 ² + # 507 ² )



    pour trouvé un angle : ( en degré si possible )

    # 509 = inverse tangente de ( # 507 / # 506 )


    trouver le sinus d'un angle

    # 510 = sinus de # 511


    trouver le cosinus d'un angle

    # 512 = cosinus de # 513


    et les 2 dernieres formules plu complexe

    si # 520 est plus grande que # 521 additioner # 530 et # 531


    si # 520 est moin grande que # 521 soustraire # 530 a # 531



    toute reponse meme partiel me sastiferai je vous remerci par avance

    -----

  2. Publicité
  3. #2
    Zozo_MP

    Re : fanuc créé un programme calcul macro

    Bonsoir
    Je suppose que le code G de Futjisu n'accepte pas n'importe qu'elle macro fut-elle en VBA ou écrite sous excel.

    Avez-vous un manuel d'utilisation des macros (dite Macro B) dans lequel les principales règles doivent être expliquées avec des exemples.
    Est-ce que la syntaxe des macros diffère de la syntaxe des programmes principaux. Normalement les macros ne sont que des sous-programmes pouvant être appellés par le master.

    En plus comme le Fanuc n'est pas standard, il peut y avoir des écarts d'interprétation selon les types de CN, donc il serait prudent de préciser un peu.

    Cordialement

  4. #3
    oursblanc76

    Re : fanuc créé un programme calcul macro

    bonsoir
    si je poste sur le forum c'est que j'ignore certaine chose ,pour ce qui est de l'ecriture il sont faite sur la cn proprement dite
    un exemple de macro : if [ #510 eq #511 ] goto 10
    les syntaxe : cos sin tan eq if peuve etre utilisé pour les autres je ne sait pas

    le manuel de 700 pages ne traite que sur 7 lignes de ce genre de macro
    pour les type de CN de la 11 a la 18 M elles acceptent les meme syntaxes

    je ne peut vous en dire plus

    Cordialement

  5. #4
    polo974

    Re : fanuc créé un programme calcul macro

    pour N2 faire N fois N ,ça évite de passer par les log et exp... (sinon, c'est N^2)

    doc:
    chapitre 15 (15.3 et 15.5) de http://sti.ac-montpellier.fr/IMG/pdf...eur_fr_16i.pdf

    un utilitaire gratuit (non testé)
    http://www.ncplot.com/macrocalc/macrocalc.htm
    et fouiller le reste du site...

    merci google (fanuc "macro b" atan) ...

  6. A voir en vidéo sur Futura
  7. #5
    Jaunin
    Animateur Technologies et Bricolage

    Re : fanuc créé un programme calcul macro

    Bonjour,
    J'ai le manuel de la Fanuc Series 16i/18i/160i/180i-TA, Manuel de l'utilisateur pour tour, ce sont les mêmes pages que le MG envoyé par polo74 et moins pratique.
    Salutations.
    Jaunin__

  8. #6
    oursblanc76

    Re : fanuc créé un programme calcul macro

    merci a vous pour les infos
    la calculette marche bien
    ma macro est fini
    %
    O10(programme calcul )
    #501=-650(VALEUR X0 MACHINE )
    #503=-750(VALEUR Z0 MACHINE )
    (G54 B0 )
    #5221=-700
    #5222=-230
    #5223=-550.3
    #5224=0

    (ANGLE A CALCULER #509 A #520 )
    (G55)
    #509=10
    (G56)
    #510=-15
    (G57)
    #511=
    (G58)
    #512=
    (G59)
    #513=

    (CALCUL ADJ )
    IF[#5221GT#501]GOTO10
    IF[#5221LT#501]GOTO20
    IF[#5221EQ#501]GOTO30
    N10
    #503=[#5221-#501]
    GOTO50
    N20
    #503=[#501-#5221]
    GOTO50
    N30
    #503=0
    N50

    (CALCUL OPP )
    IF[#5223GT#501]GOTO60
    IF[#5223LT#501]GOTO70
    IF[#5223EQ#501]GOTO80
    N60
    #504=[#5223-#501]
    GOTO90
    N70
    #504=[#501-#5223]
    GOTO90
    N80
    #504=0
    N90

    (CALCUL HYPO )
    #505=[#503*#503]
    #506=[#504*#504]
    #507=SQR[#505+#506]

    (CALCUL ANGLE )

    #508=ATAN[#504]/[#503]

    IF[#5221GT#501]GOTO100
    IF[#5221LT#501]GOTO110

    (CALCUL G55)
    #521=[#508-#509]

    (CALCUL G56)
    #522=[#508-#510]

    (CALCUL G57)
    #523=[#508-#511]

    (CALCUL G58)
    #524=[#508-#512]

    (CALCUL G59)
    #525=[#508-#513]

    N110

    (CALCUL G55)
    #521=[#508+#509]

    (CALCUL G56)
    #522=[#508+#510]

    (CALCUL G57)
    #523=[#508+#511]

    (CALCUL G58)
    #524=[#508+#512]

    (CALCUL G59)
    #525=[#508+#513]

    (CALCUL SINUS )
    (G55)
    #535=SIN[#521*#507]
    (G56)
    #536=SIN[#522*#507]
    (G57)
    #537=SIN[#523*#507]
    (G58)
    #538=SIN[#524*#507]
    (G59)
    #539=SIN[#525*#507]

    (CALCUL COSINUS )

    (G55)
    #545=COS[#521*#507]
    (G56)
    #546=COS[#522*#507]
    (G57)
    #547=COS[#523*#507]
    (G58)
    #548=COS[#524*#507]
    (G59)
    #549=COS[#525*#507]

    IF[#5221GT#501]GOTO120
    IF[#5221LT#501]GOTO130
    N120
    ( CALCUL ORIGINE X )
    (G55)
    #5231=[#501+#535]


    N130
    #5231=[#501-#535]

    ( CALCUL ORIGINE Z)

    IF[#5223GT#501]GOTO140
    IF[#52232LT#501]GOTO150
    N140
    (G55)
    #5233=[#503+#545]

    N150

    #5233=[#503-#545]
    M0
    M30
    %
    je teste demai,n si j'ai le temp
    merci encore de votre aide

    je file au dodo 1h du matin c'est pas sérieux !!!

  9. Publicité
  10. #7
    Jaunin
    Animateur Technologies et Bricolage

    Re : fanuc créé un programme calcul macro

    Bonsoir,
    C'est comme ça quand on est passionné.
    Bonne nuit et bon teste.
    Salutations.
    Jaunin__

  11. #8
    Zozo_MP

    Re : fanuc créé un programme calcul macro

    Bonjour

    Je ne sais pas si c'est volontaire mais vous n'utilisez pas de G54. Et êtes vous sur du bon emploi des codes 54 à 59
    Il y a un Goto100 qui tombe dans le vide (pas de N100) donc soit le programme plante et vous envoi une alarme (avec arrêt machine) soit il va directe à la fin du programme et renvoi des valeurs fausses au programme maître.

    Par ailleurs il me semble qu’il y a une erreur (ou plusieurs) car vous calculez deux fois
    Car après le N100 vous repassez dans le N110 il devrait y avoir un Goto à la fin du 100 qui sauterait au moins le 110 sinon le programme va continuer est exécuter le 110

    Pour ARTAN ne manque-t-il pas un test EQ
    Pour #506 on notera que #504 pouvant avoir la valeur zéro une multiplication par 0 peut générer une erreur (selon la susceptibilité du code machine). Dans le meilleur des cas la valeur HYPO peut être à zéro ce qui pour moi est bizarre pour une hypoténuse (mais enfin on n’arrête pas les connaissances)

    Par ailleurs vous ne testez pas dans certain cas « si égal à zéro » ce qui peut nuire à la robustesse du code. Même si certaine valeur ne peuvent être à zéro en théorie (voir ici le calcul origine X et Z)


    Par ailleurs vous auriez intérêt à bien encadrer chaque macro avec un flag de début et surtout un flag de fin comme pour les blocs (<FDB> ou <EOB> : ) est-ce que pour les macros c’est bien % je croyais que c’était : deux points. Pour les s/s programme que mettez vous comme caractère de fin ???

    Remarque
    Comme vous mettez % au début et % à la fin on n'a l'impression que c'est un seul programme.

    En réalité chaque bout de calcul est un mini programme qui doit pouvoir être appelé soit séparément (en tant que macro) soit par des variables de début qui indique un embranchement direct au premier calcul et puis aux autres calculs dans l’ordre dont vous avez besoin et pas forcément l’ordre du programme.
    Je doute que vous soyez obligé de calculer toutes ces valeurs à chaque fois.
    Mais peut être avez-vous besoin de toutes ces valeurs auquel cas oubliez cette remarque.


    Faite bien attention au appel modal ou non modal. Car la remise à zéro ou non remise à zéro d'une variable peut réserver des surprises. Soit en cas de coupure de courant subite (le programme ne pourra pas faire de reprise au point d’arrêt) pendant le travail, soit en fin et début de journée.

    Attention aux commentaires qui peuvent générer des retards dans l'exécution de la machine surtout s'ils sont additionnés à de nombreux appels aux s/s programmes ou macros.


    Mais peut être vouliez-vous nous montrer seulement les calculs.

    Cordialement

  12. #9
    oursblanc76

    Re : fanuc créé un programme calcul macro

    bonsoir a vous
    merci jaunin pour la bonne nuit, mais la soirée ma trainé toute la journé !! lol

    pour repondre au commentaire de "zozo" il ya effectivement une erreur pour le N100 que j'ai corriger au travail cet aprem
    pour le G54 ceci est volontaire cette macro ne servira qu'une fois au debut du reglage de la piece elle chargera tout les angles du programme donc ce n'est pas un sous programme mais un programme qui ne servira uniquement au regleur

    pour les calcul origines qui serai egal a zero ceci est impossible zero etant les origine machine qui se trouve etre sur ces centre a l'extremité des axes
    enfin pour les codes d'encadrement le logiciel de transfert integre les" eob" automatiquement lors du transfert du programme
    pour les appel modaux et non modaux encore une fois ce programme ne sert qu'a calculer les origine piece suivant des angle différent mais en aucun cas ne seront introduit dans le programme piece il ne serviront qu'une fois
    pour info je n'est eu kle temp de tester aujourdui mais je vous tiendrai au courant
    si vous avez des proposition a me faire n'hésiter pas !!!
    laisser moi vos essai et je les testerai volontier vu que je repette que je sui novice au niveau des macro !
    enfin il y avait pas mal d'erreur du au besoin de sommeil surtout au niveau des goto voici ce qui me semblerai etre meilleur
    bonne soirée a tous

    %
    O10(programme calcul )
    #501=-650(VALEUR X0 MACHINE )
    #502=-750(VALEUR Z0 MACHINE )
    (G54 B0 )
    #5221=-700
    #5222=-230
    #5223=-550.3
    #5224=0

    (ANGLE A CALCULER #509 A #520 )
    (G55)
    #509=10
    (G56)
    #510=-15
    (G57)
    #511=
    (G58)
    #512=
    (G59)
    #513=

    (CALCUL ADJ )
    IF[#5221GT#501]GOTO10
    IF[#5221LT#501]GOTO20
    IF[#5221EQ#501]GOTO30
    N10
    #503=[#5221-#501]
    GOTO50
    N20
    #503=[#501-#5221]
    GOTO50
    N30
    #503=0
    N50

    (CALCUL OPP )
    IF[#5223GT#502]GOTO60
    IF[#5223LT#502]GOTO70
    IF[#5223EQ#502]GOTO80
    N60
    #504=[#5223-#502]
    GOTO90
    N70
    #504=[#502-#5223]
    GOTO90
    N80
    #504=0
    N90

    (CALCUL HYPO )
    #505=[#503*#503]
    #506=[#504*#504]
    #507=SQR[#505+#506]

    (CALCUL ANGLE )

    #508=ATAN[#504]/[#503]

    IF[#5221GT#501]GOTO100
    IF[#5221LT#501]GOTO110

    N100

    (CALCUL G55)
    #521=[#508-#509]

    (CALCUL G56)
    #522=[#508-#510]

    (CALCUL G57)
    #523=[#508-#511]

    (CALCUL G58)
    #524=[#508-#512]

    (CALCUL G59)
    #525=[#508-#513]

    GOTO115

    N110

    (CALCUL G55)
    #521=[#508+#509]

    (CALCUL G56)
    #522=[#508+#510]

    (CALCUL G57)
    #523=[#508+#511]

    (CALCUL G58)
    #524=[#508+#512]

    (CALCUL G59)
    #525=[#508+#513]

    N115

    (CALCUL SINUS )
    (G55)
    #535=SIN[#521*#507]
    (G56)
    #536=SIN[#522*#507]
    (G57)
    #537=SIN[#523*#507]
    (G58)
    #538=SIN[#524*#507]
    (G59)
    #539=SIN[#525*#507]

    (CALCUL COSINUS )

    (G55)
    #545=COS[#521*#507]
    (G56)
    #546=COS[#522*#507]
    (G57)
    #547=COS[#523*#507]
    (G58)
    #548=COS[#524*#507]
    (G59)
    #549=COS[#525*#507]

    IF[#5221GT#501]GOTO120
    IF[#5221LT#501]GOTO130
    N120
    ( CALCUL ORIGINE X )
    (G55)
    #5231=[#501+#535]

    GOTO135

    N130
    #5231=[#501-#535]

    N135

    ( CALCUL ORIGINE Z)

    IF[#5223GT#501]GOTO140
    IF[#52232LT#501]GOTO150
    N140
    (G55)
    #5233=[#503+#545]
    GOTO155
    N150

    #5233=[#503-#545]

    N155
    M0
    M30
    %

  13. #10
    Zozo_MP

    Re : fanuc créé un programme calcul macro

    Bonsoir

    J'ai vu que vous avez corrigé certaines erreurs

    Il me semble qu'il en reste comme par exemple des Goto qui ne servent à rien

    Pour IF[expression de la condition]GOTO Nx
    Si l’expression conditionnelle est satisfaite (thrue), un branchement sur le N° de séquence N s’exécute sinon le programme continue à la ligne d’après.

    Il vaudrait mieux faire des IF [expression de la condition]THEN (c’est plus zen) cela évite de mettre plein de goto qui ne servent à rien, alourdissent le code et complique le débugage.

    Surtout que vous testez la plupart du temps que deux conditions, donc en deux lignes vous pouvez tout traiter.

    La variable #503 mériterait une attention car elle peut être mise à Zéro dans une partie du programme alors qu’elle est utilisée plus bas dans le programme.

    Pour (CALCUL ORIGINE Z) vous avez une coquille (erreur) sur la variable #52232 qui n’est pas définie avant
    Vous utilisez aussi la variable #5233 qui n'a pas été définie au préalable donc erreur.

    En plus en début de programme vous définissez deux variables (#5222 et #5224) qui ne sont pas utilisées dans le programme.
    Compte tenu de vos informations fournies par vous et comme la macro ne transmet pas de valeur de variable à un autre programme ces deux variables ne servent à rien ou alors vous avez une autre raison qui m’échappe (ou c’est moi qui ne suis pas assez attentif).

    Idem pour #511=
    (G58)
    #512=
    (G59)
    #513=
    En réalité, je suppose vous utilisez G55, G56, G57, G58, G59 pour pouvoir rentrer la valeur des variables au pupitre, sinon je serais curieux de savoir pourquoi.


    Cordialement

  14. #11
    oursblanc76

    Re : fanuc créé un programme calcul macro

    bonsoir

    ence qui concerne les GOTO qui ne serve a rien j'ai bien vu mais cela n'affectera en rien la macro meme si c'est vrai qu'il ne servent a rien
    en ce qui concerne les IF je ne maitrise pas les THEN donc je n'utilise pas j'ai justement créé ce post pour avoir des expression de personne qui utilise et maitrise la macro comme vous semblez la maitrise je ne vois aucune proposition de votre ârt qui pourrai m'aider
    la variable 503 est defini comme l'adjacent d'un triangle donc zero est impossible dans mon cas
    pour les # 5231 et 5232 ces valeur existe deja dans tous les programme piece le G54 est la reference B0 et chaque B different (angle) seront calculer dans le G55 / G 56 / etc ... c'est pour cela que pour le moment certaine # n'ont aucune valeur et que je n'est pas fini les calcul pour ses # a la fin du programme car c'est un essai et si cela fonctionne je le finirai
    cordialement

  15. #12
    JLuc69

    Re : fanuc créé un programme calcul macro

    Citation Envoyé par Zozo_MP Voir le message
    Il vaudrait mieux faire des IF [expression de la condition]THEN (c’est plus zen) cela évite de mettre plein de goto qui ne servent à rien, alourdissent le code et complique le débugage.
    Salut Zozo, le IF[...]Then n'existe pas en langage ISO Fanuc.
    La seule chose utilisable c'est malheureusement le GOTO

    JLuc69

  16. Publicité
  17. #13
    JLuc69

    Re : fanuc créé un programme calcul macro

    PS : oursblanc, je maitrise pas mal les macros fanuc, si tu as besoin d'un coup de main...

    JLuc69

  18. #14
    oursblanc76

    Re : fanuc créé un programme calcul macro

    merci pour ton aide jluc je posterai bientot au cas ou tu pourrai m'aider
    la je sui déborder
    merci pour ta proposition

  19. #15
    Ferey

    Re : fanuc créé un programme calcul macro

    Citation Envoyé par JLuc69 Voir le message
    Salut Zozo, le IF[...]Then n'existe pas en langage ISO Fanuc.
    La seule chose utilisable c'est malheureusement le GOTO

    JLuc69
    Bonjour
    Avant toute chose je suis heureux d'avoir trouver ce forum consacré à Fanuc, il en manque sur la toile.
    Ensuite pour préciser simplement que THEN existe chez Fanuc.
    Voici la syntaxe:
    ++++++++++++++
    si # 520 est plus grande que # 521 additionner # 530 et # 531
    IF [#520 GT #521] THEN #532=#530+#531
    +++++++++++++++
    Voici le fonctionnement:
    Si l'expression logique est vraie la macro après THEN est exécutée sinon elle n'est pas exécutée.
    Effectivement ça simplifie énormément et évite de mettre des GOTO après.
    Amicalement

  20. #16
    Zozo_MP

    Re : fanuc créé un programme calcul macro

    Bonjour

    Ce forum n'est pas consacré à FAnuc mais à la techno en général.

    Je sais bien que le "then" existe mais j'évite d'être péremptoire car selon les machines cela peut varier.

    Notre ami "Bougadul" connait sûrement des exceptions sur cette fonction.

    Mais bienvenue parmis nous et j'espère que tu aménera tout ton savoir.
    C'est très utile pour ceux qui n'ont pas ton expérience et tes savoirs.

    Cordialement

  21. #17
    bougadul

    Re : fanuc créé un programme calcul macro

    Citation Envoyé par oursblanc76 Voir le message
    bonsoir a vous
    pour le G54 ceci est volontaire cette macro ne servira qu'une fois au debut du reglage de la piece elle chargera tout les angles du programme donc ce n'est pas un sous programme mais un programme qui ne servira uniquement au regleur
    bonjour
    je viens de relire plusieure fois les different post et quelque chose m'interpelle.

    les codes G54 G55 G56 G57 G58 G59 sont utiliser pour avoir d'autre reference en utilisation "normal" (decalage d'origine).
    pourquois faire une macro de ce type alors qu'une machine a calculer progammable de "collegien ou de lyceen" peut largement faire l'affaire?
    les macro sont souvent utiliser pour faire des "forme" poche ou des forme mais de dimention differente;ou des percage /alesage avec des rayon et angle different;ou quand on travaille avec des plan tableau il est preferable de se faire stroumfer un peut que de refaire tout le pgm surtout quand on a pas de logiciel de prog
    pour ZOZO MP bien que j'ai travailler un bon nombres d'annees sur des cn je ne suis jamais aller chercher les capacité maxi des machine (prog bien sur mais puissance la )
    le peut que je sait au niveau des macro c'est que je les aient toujour fait sur papier d'abord et ensuite rentrer dans la machine en prian saint carton de ne pas cartonner car on a vite fait d'oublier un detail et l'outil lui il subi
    l'exression logique IF[exression conditionel] THEN est pratique et on peut avoir diferente solution comme par exemple
    IF [#1 NE #2] THEN #4=1 (si#1 est different que #2 ;#4 aura pour valeur 1)
    IF[#1 LT #2] THEN #4 = 2 (si#1 est inferieur a #2 alors #4 aura pour valeur 2)
    ect ect avec EQ :egal
    GE superieur ou egal
    LE inferieur ou egal
    GT superieur
    a+

Discussions similaires

  1. programme de calcul NPSH
    Par moukah2 dans le forum Logiciel - Software - Open Source
    Réponses: 2
    Dernier message: 18/12/2007, 17h20
  2. cherche programme de calcul d'angle.
    Par claude-56 dans le forum Mathématiques du collège et du lycée
    Réponses: 6
    Dernier message: 20/10/2007, 12h59
  3. recherche programme calcul electrique
    Par toto_phil dans le forum Logiciel - Software - Open Source
    Réponses: 2
    Dernier message: 05/04/2007, 12h01
  4. Programme de calcul
    Par dockfox dans le forum Mathématiques du supérieur
    Réponses: 5
    Dernier message: 25/12/2005, 23h04
  5. programme de calcul réseau pour la ti..
    Par os2 dans le forum Logiciel - Software - Open Source
    Réponses: 6
    Dernier message: 13/09/2004, 10h12
Découvrez nos comparatifs produits sur l'informatique et les technologies.