Extraire les temps de cycle et les temps standards à partir du G-code peut débloquer des gains mesurables en termes de débit, des devis plus précis et une meilleure planification des effectifs, sans recruter d’opérateurs supplémentaires. Ce guide explique un processus pratique en sept étapes pour passer d’estimations de temps d’exécution issues du G-code, souvent trop optimistes, à des temps standards validés, prêts à être intégrés dans vos systèmes MES/ERP. Les lecteurs verront quelles données d’entrée sont nécessaires, comment analyser et simuler les programmes, comment ajouter les activités hors coupe, et comment boucler la boucle avec les données terrain pour une amélioration continue.
Extraire le temps de cycle à partir du G-code nécessite la cinématique machine, les outils et le contexte de programme ; l’absence de certains paramètres peut biaiser les estimations de 10 à 40 %.
Utilisez une simulation cinématique (qui tient compte de l’accélération, du jerk et du couplage des axes) pour obtenir des estimations précises ; une simple somme distance/avance sous-estime les programmes comportant beaucoup de petits déplacements.
Validez à l’aide des journaux machine / données de TRS (OEE) et automatisez l’extraction vers le MES via REST, OPC-UA ou CSV pour une planification de capacité fiable et un affinement continu.
La précision de l’extraction des temps de cycle dépend de bien plus que du simple texte du G-code. Les principaux éléments d’entrée sont le programme pièce brut et les paramètres spécifiques à la machine qui déterminent la manière dont le mouvement est exécuté. Au minimum, rassemblez les éléments suivants avant de commencer le parsing :
Fichier G-code et informations d’en-tête :
Programme CN brut incluant les lignes d’état modal, les blocs de début/fin et tous les sous-programmes ou appels de macros. Confirmez le “flavour” de post-processeur (Fanuc, Siemens/Heidenhain, Heidenhain conversationnel ou ISO RS-274), car les conventions de codage et les ensembles de M-codes varient.
Cinématique machine et limites d’axes :
Nombre d’axes (3/4/5 axes), courses d’axes, avance maximale (mm/min ou IPM), accélération maximale (mm/s² ou in/s²) et profils de jerk ou de jerk limité lorsque disponibles. Ces paramètres définissent l’avance réellement atteignable sur les petits déplacements et le comportement de lissage (blending).
Caractéristiques de la broche et des outils :
Plage de vitesse de broche (S), liste d’outils avec correcteurs, nombre de changements d’outils par pièce, et temps de changement d’outil documentés (temps d’indexation tourelle ou carrousel ATC). Les changements d’outils automatiques se situent typiquement entre 8 et 45 secondes selon le type de tourelle ou d’ATC.
Bridage et contexte de programme :
Contraintes de serrage, temps de palette ou de changeur de palettes, séquences de palpage et toutes les étapes manuelles de chargement/déchargement. Les cycles de palpage et les interventions opérateur ajoutent des minutes hors coupe par cycle.
Codes spécifiques au contrôle :
Identifiez les G/M-codes courants dans le programme (G0/G1/G2/G3, F, S, M6, M30, M01) ainsi que les M-codes propriétaires ou appels de macros qui déclenchent des fonctions machine non évidentes en G-code ISO.
Les travaux et discussions dans la communauté montrent que tenter d’estimer le temps de cycle uniquement à partir du texte du programme peut être trompeur. Par exemple, un développeur travaillant sur un algorithme pour un contrôleur spécifique a discuté des compromis liés au calcul du temps de cycle à partir du seul G-code dans un fil dédié : cette discussion illustre pourquoi l’état du contrôleur et les profils machine sont essentiels pour estimer le temps d’exécution à partir du code (voir la discussion Dallas Makerspace sur le calcul du temps de cycle d’une pièce à partir du G-code : https://talk.dallasmakerspace.org/t/calculate-part-cycle-time-from-g-code/9149). L’absence de spécifications machine conduit souvent à des estimations trop optimistes, car les petits déplacements sont limités par l’accélération et la prélecture (look-ahead), et non par l’avance nominale. Recueillir des données d’entrée complètes réduit la variance et permet une simulation plus fidèle par la suite.
Une analyse robuste du G-code nécessite de “tokeniser” les blocs et de maintenir un état modal persistant. Chaque ligne (bloc) contient des tokens (par ex. : G1 X10 Y5 F2000), et le parseur doit suivre les modes actifs comme le mode d’avance (G94/G95), le mode de distance (G90/G91), le plan de travail, l’état de la broche et les correcteurs d’outil actifs.
Principales étapes de l'analyse du G-code :
Tokenisation et état modal :
Lire chaque bloc et mettre à jour l’état modal. Si un bloc définit F (avance), cette avance s’applique aux déplacements en coupe suivants jusqu’à ce qu’elle soit modifiée. G0 est un rapide (hors coupe), G1 une interpolation linéaire en avance, et G2/G3 des arcs horaire/anti-horaire.
Distinguer déplacements rapides et déplacements en coupe :
Considérez G0 comme un mouvement rapide exécuté à la vitesse rapide maximale de la machine, souvent soumise à des limites spécifiques par axe. Les déplacements en coupe (G1, G2, G3) utilisent l’avance courante. Convertissez les unités d’avance (mm/min vs IPM) en fonction des déclarations G20/G21.
Gestion des arcs et linéarisation :
Les arcs (G2/G3) doivent être convertis en segments linéaires si le moteur de simulation ne peut pas gérer l’interpolation circulaire “pure”. Le choix de la tolérance de segmentation d’arc impacte le temps : des tolérances plus serrées génèrent plus de segments et des vitesses légèrement différentes lors du blending. Pour la plupart des estimations, une tolérance de corde de 0,01 à 0,1 mm offre un bon compromis entre précision et performance.
Cycles fixes, macros et sous-programmes :
Reconnaissez les cycles fixes (G81/G83) comme des opérations de plus haut niveau avec retraits implicites et temps de pause (dwell). Développez les appels de sous-programmes (M98) ou les macros pour “dérouler” les séquences de mouvement avant la simulation. Les macros spécifiques aux constructeurs peuvent déclencher des actions personnalisées (par ex. serrage hydraulique) qui doivent être associées à des durées.
Cas particuliers :
Gérez les changements d’avance en milieu de bloc (certains contrôleurs permettent de modifier S ou F sans mouvement explicite), les temps de pause (G4) qui ajoutent des secondes, et les programmes “multipièces” appelant des fichiers externes.
Les références industrielles comme le Lean Enterprise Institute définissent le temps de cycle d’un point de vue mesure ; l'analyse du G-code doit être alignée sur la définition opérationnelle du temps de cycle utilisée ensuite pour la planification et le calcul du TRS (voir la définition du cycle time par le Lean Enterprise Institute : https://www.lean.org/lexicon-terms/cycle-time. Des parseurs open source comme pygcode (Python) et des outils communautaires constituent un bon point de départ, mais les fournisseurs utilisent souvent des M-codes propriétaires — les contrôleurs Fanuc ou Siemens nécessitent donc un traitement spécifique. Une analyse du G-code qui respecte l’état modal et développe les macros garantit que la couche de simulation reçoit une séquence de mouvements complète et linéarisée.
Il existe deux approches courantes pour estimer le temps : une simple sommation arithmétique et la simulation cinématique. Chacune présente des compromis en termes de précision et de coût de calcul.
Sommation naïve :
Calculez la distance euclidienne de chaque déplacement en coupe et divisez par l’avance programmée (distance / avance). Traitez les rapides séparément en utilisant les limites de vitesse rapide. Cette méthode est rapide et adaptée aux devis préliminaires, mais suppose que la machine atteint instantanément l’avance commandée — une hypothèse optimiste. Des études et audits en atelier montrent que les méthodes naïves peuvent sous-estimer le temps de cycle de 10 à 40 % sur des trajectoires avec de nombreux petits mouvements ou des chemins à forte accélération, car l’accélération et la prélecture réduisent l’avance effective sur les courts segments.
Simulation cinématique :
Modélise les accélérations, décélérations, le jerk et le blending des axes / look-ahead. Cette approche utilise un profil machine (avance max, accélération par axe, jerk maximal / mouvement à jerk limité, et prélecture) pour simuler la façon dont le contrôleur lisse les transitions et limite les vitesses en virage. Les simulateurs cinématiques prédisent les zones où l’avance programmée ne peut pas être atteinte et calculent le temps en conséquence. Par exemple, un déplacement linéaire de 50 mm à 6 000 mm/min avec une limite d’accélération de 0,5 g atteindra rarement l’avance nominale avant de devoir décélérer, ce qui augmente le temps par rapport aux estimations naïves.
Les différences cinématiques sont particulièrement marquées sur :
les passes de finition courtes à grande vitesse,
les usinages 5 axes simultanés avec limites coordonnées par axe,
les programmes comportant des enchaînements complexes et de petits rayons d’arc.
Des outils visuels comme les backplots CAM et les simulateurs CN (Mastercam, Siemens NX, Autodesk Fusion 360 backplot ou NCViewer) illustrent les mouvements et peuvent calculer des estimations de temps de cycle. Pour ceux qui souhaitent visualiser la différence, des tutoriels industriels montrent la back-plot cinématique et mettent en évidence les cas où les sommes naïves échouent. Vous pouvez suivre une démonstration pas à pas pour observer comment la prélecture et le blending affectent le temps de cycle estimé.
Le suivi de production (machine monitoring) est une source de validation complémentaire : relier la simulation de mouvement aux enregistrements d’axes et de broche permet d’affiner les profils cinématiques. Voir notre discussion sur le suivi de production pour comprendre comment les données de mouvement et de broche sont utilisées pour la validation.
Le temps hors coupe représente souvent la majeure partie de la variance de cycle et doit être modélisé explicitement. Les éléments hors coupe typiques incluent :
Changements d’outils :
Les temps de changement d’outil automatique (ATC) varient d’environ 8 secondes (tourelle) à 30–45 secondes (carrousel ATC avec bras long). Les changements d’outils manuels prennent plus de temps — mesurez-les au chronomètre ou extrayez les horodatages. Incluez à la fois le changement physique et le temps d’indexation tourelle / repositionnement de broche.
Cycles de palpage :
Les cycles de palpage (palpeurs de mesure) peuvent ajouter 10 à 60 secondes par pièce selon la complexité et les repositionnements. Les palpage programmés (macros de palpage ISO) s’appuient généralement sur des M-codes ou des macros spécifiques au contrôle — parsez-les et associez-les à des durées mesurées.
Chargement/déchargement et changement de palettes :
Un chargement manuel pièce par pièce peut prendre 30 à 120 secondes ; les changeurs de palettes automatisés ont des temps d’indexation documentés (par ex. 20–90 secondes). Pour les cellules robotisées, incluez le temps de cycle du robot et l’indexation.
Réglages et bridage :
Les réglages de première pièce et les ajustements de bridage doivent être amortis sur la taille de lot. Exemple : un réglage de 30 minutes amorti sur une série de 1 000 pièces ajoute 1,8 seconde par pièce.
Interventions opérateur et contrôles :
Les contrôles qualité manuels, le remplissage du lubrifiant ou l’éjection des pièces peuvent ajouter des délais aléatoires ; mesurez-les via des études de temps ou des journaux d’événements I/O machine.
Les études de temps empiriques et les journaux de TRS / suivi machine sont recommandés pour alimenter les durées hors coupe. Les communautés RepRap et Klipper documentent la manière dont le firmware et les macros se traduisent en actions temporisées, ce qui peut aider à convertir des macros de palpage/cycles en secondes (voir les descriptions de G-code RepRap : https://reprap.org/wiki/G-code). Pour le comportement détaillé de certaines commandes de palpage et leurs temps perçus, la documentation Klipper fournit des exemples de paramètres explicitement liés au temps de cycle : https://www.klipper3d.org/G-Codes.html.
Les sources de données terrain incluent les signaux API/PLC, les horodatages saisis par les opérateurs et les journaux d’événements du MES. La capture d’événements tels que changement de magasin, début/fin de palpage, index de palette via un suivi de production permet de mesurer directement et d’étalonner le modèle. La télémétrie machine réelle révèle souvent que les éléments hors coupe contribuent à 20–50 % du temps de cycle total dans les environnements low-run ou high-mix ; un modèle précis de ces durées est donc essentiel pour une planification fiable des effectifs et du takt time.
Le temps de cycle (observé ou simulé) ne devient exploitable que lorsqu’il est converti en temps standard utilisé par les planificateurs pour les devis, la planification de capacité et la gestion des effectifs. Le temps standard tient compte des coefficients de performance, des tolérances (allowances), de la casse/reprise et de l’amortissement du réglage.
Étapes pour calculer le temps standard :
Assembler le temps de base par unité :
Additionnez le temps de coupe simulé et les éléments hors coupe mesurés empiriquement (changement d’outil, chargement/déchargement, palpage).
Exemple : temps de coupe brut = 2,00 min, changement d’outil amorti par pièce = 0,50 min, chargement/déchargement = 0,75 min → temps observé de base = 3,25 min.
Appliquer le coefficient de performance :
Si la machine ou l’opérateur est évalué avec un facteur de performance (par ex. 95 % d’efficacité machine ou un rating opérateur), divisez le temps observé par ce facteur. Dans l’industrie, on utilise souvent un facteur de performance (1,0 = cadence standard).
Exemple : 3,25 min / 0,95 = 3,42 min.
Ajouter les allowances :
Intégrez les tolérances pour repos et aléas. Les allowances totales courantes se situent entre 5 et 15 % selon la politique de l’atelier (pauses courtes, vérifications machine, micro-arrêts).
Exemple : 3,42 min × 1,10 = 3,76 min de temps standard par unité.
Ajuster en fonction de la taille de lot et de l’amortissement du réglage :
Pour les petites séries, le temps de réglage par pièce augmente. Pour le réglage de 30 minutes amorti sur 100 pièces, ajoutez 0,30 min par pièce. Pour la planification, présentez toujours le temps standard avec la taille de lot supposée.
Inclure un facteur de casse / retouche :
Si le procédé présente historiquement 2 % de rebut, ajustez la capacité en conséquence : la production effective par série planifiée = pièces planifiées × (1 − taux de rebut).
Conversion en capacité par poste ou par jour :
Multipliez le temps standard par le nombre de pièces par poste et comparez aux heures machine disponibles. Utilisez le takt time pour aligner la planification sur la demande.
Une étude de cas realiste montre comment l’optimisation de la programmation peut réduire le temps standard et générer des économies significatives ; des améliorations dans la structure du programme et les stratégies d’approche / d’avance ont produit des gains mesurables pour de petits ateliers — voir notre étude de cas sur une programmation CNC plus intelligente ayant réduit les temps de cycle et généré des économies. En cas de contraintes de capacité, l’amélioration des temps standards est un levier pour augmenter le débit sans ajouter de ressources.
Le choix de la bonne méthode dépend du niveau de précision souhaité, du budget et des objectifs d’intégration. Voici une comparaison pratique des approches courantes :
| Méthode | Précision typique | Données requises | Potentiel d’automatisation | Coût typique |
|---|---|---|---|---|
| Feuille de calcul manuelle (distance/avance) | ±10–40 % (optimiste) | Texte G-code, notes de base sur outils/temps | Faible | Faible (gratuit) |
| Parseurs open source + backplot (pygcode, NCViewer) | ±5–20 % | G-code, quelques limites machine | Moyen (via scripts) | Faible à moyen |
| Simulateur CAM/CN (Mastercam, Fusion 360…) | ±5–15 % | G-code/post CAM, profil machine | Moyen | Moyen |
| Simulateur cinématique avec profils machine | ±1–8 % | Paramètres cinématiques complets, accélérations/jerk | Élevé | Moyen à élevé |
| Extraction commerciale + intégration MES (enterprise) | ±1–5 % | Profils machine, tables d’outils, données atelier | Très élevé | Élevé |
Points de décision clés :
Pour le chiffrage de pièces unitaires, une feuille de calcul ou un backplot CAM peut suffire si l’on ajoute des marges prudentes.
Pour une planification globale au niveau atelier et une ordonnancement automatisé, un simulateur cinématique ou une solution d’extraction commerciale avec profils machine et connecteurs ERP/MES sera rapidement rentable en réduisant la variance.
Les bibliothèques open source comme pygcode offrent de la personnalisation ; les outils commerciaux fournissent des connecteurs (REST, OPC-UA, APIs MES natives) et du support.
Check-list “quick wins” vs automatisation long terme :
Quick wins : lancer un pilote sur 3–5 pièces récurrentes ; réaliser des études chronométrées pour les changements d’outils et le chargement/déchargement ; utiliser des modèles Excel avec allowances conservatrices.
Moyen terme : adopter des parseurs open source avec scripts batch pour analyser et développer les sous-programmes ; ajouter une validation via backplot CAM.
Long terme : mettre en place un simulateur cinématique ou une plate-forme commerciale d’extraction avec profils machine, et pousser des temps standards validés vers le MES/ERP.
Les fournisseurs de contrôleurs (Fanuc, Siemens) et les systèmes CAM (Mastercam, Fusion 360, Siemens NX) sont des points d’intégration fréquents. Évaluez les plateformes sur la précision, le support des profils machine, la disponibilité d’API, et leur capacité à importer des tables d’outils et des variantes de post-processeur.
La validation, l’automatisation et l’intégration transforment les estimations en données opérationnelles de planification. Une approche en boucle fermée réduit la dérive et améliore la confiance dans les temps standards.
Étapes de validation :
Comparer à la télémétrie machine : utilisez les horodatages broche ON, mouvements d’axes et journaux d’événements M-code pour calculer les durées réelles de cycle. Suivez des indicateurs comme l’erreur absolue moyenne (MAE) et le pourcentage de précision. Visez une MAE inférieure à 5–10 % pour la planification de production.
Définir des KPI : suivez la précision (% de pièces dans la tolérance), la variance (écart-type) et le taux de prédictions “hors clous”. Analysez régulièrement ces KPI par famille de pièces et type de machine.
Piloter et ajuster : lancez un pilote sur des pièces répétitives pour calibrer les accélérations machine et les temps de changement d’outil ; ajustez les profils cinématiques et les valeurs par défaut de temps hors coupe.
Schémas d’automatisation :
CI entre CAM et parseur : automatisez la chaîne : post-processeur CAM → dépôt de G-code → parseur/simulateur → base de données. Cela permet le recalcul immédiat dès qu’un programme change.
Mises à jour déclenchées par événements : relancez la simulation lorsque le post-processeur ou la liste d’outils est modifié. Utilisez la gestion de versions pour suivre les révisions de programmes et leur impact sur le temps.
Bonnes pratiques d’intégration :
Conception du “payload” : les payloads de temps standard incluent généralement l’ID d’opération, le temps standard par unité (secondes/minutes), la liste d’outils, le temps hors coupe attendu et l’ID de version.
Exemple JSON :{ "operation": "OP10", "std_time_min": 3.76, "tools": ["T1","T4"], "revision":"v1.2" }
Méthodes d’intégration : les modèles courants incluent des API REST (la plupart des MES/ERP modernes), OPC-UA pour la télémétrie temps réel, et des imports CSV en masse pour les systèmes plus anciens. Utilisez les capacités MES décrites dans votre guide MES pour cartographier l’emplacement des temps standards dans les gammes/opérations.
Suivi de production automatisé : combinez les temps issus du G-code avec un suivi d’atelier automatisé pour capturer les horodatages réels à des fins de validation. Voir notre article sur le suivi de production automatisé pour des exemples de mise en œuvre.
Scénario d’intégration pratique :
Un atelier automatise le parsing du G-code, simule à l’aide de profils machine et envoie les temps standards vers les gammes de l’ERP. Les données TRS en temps réel comparent ensuite le temps prévu au temps réel, et une tâche nocturne recalcule les profils machine lorsque la variance dépasse certains seuils. Pour des bénéfices en ordonnancement temps réel, combinez ces temps validés avec les données live pour améliorer le respect des délais et réduire les goulets.
Suivez ces sept étapes pour transformer le G-code en temps standards validés : collecter des données complètes sur la machine et les outils, parser et simuler avec une cinématique fidèle, inclure les activités hors coupe, convertir en temps standards avec allowances, et automatiser la validation ainsi que l’intégration MES/ERP. Commencez par un pilote ciblé sur des pièces répétitives, affinez grâce à la télémétrie machine, puis déployez à l’échelle de l’atelier.
La précision dépend de la méthode : une simple somme distance/avance est optimiste et peut sous-estimer de 10 à 40 % les programmes avec beaucoup de petits déplacements ou de fortes accélérations. Une simulation cinématique utilisant les accélérations/jerk par axe et la prélecture atteint généralement 1 à 8 % de précision lorsqu’elle est calibrée sur la télémétrie machine.
La validation par rapport aux horodatages de fonctionnement broche (spindle-run) et aux journaux de TRS est essentielle pour quantifier la précision sur votre parc et vos familles de pièces.
Oui, mais le 5 axes simultané nécessite un modèle cinématique complet des axes rotatifs, de leur couplage et de leurs limites de vitesse. Les contrôleurs comme Fanuc et Siemens appliquent des règles de blending différentes, il faut donc inclure les paramètres cinématiques de la machine et tester avec des programmes représentatifs.
Attendez-vous à plus de réglages et à des simulations de haute fidélité pour atteindre une précision meilleure que ±5 % sur les pièces 5 axes.
Documentez les M-codes spécifiques à vos contrôleurs et associez les macros à des actions temporisées (par ex. serrage, lubrification ON/OFF, changement de magasin). Développez ou inlinez les sous-programmes lors du parsing et mesurez les durées réelles via études de temps ou journaux PLC pour convertir ces événements en secondes dans le modèle.
Maintenez une bibliothèque de contrôleurs par modèle de machine (Fanuc, Siemens) pour garantir la répétabilité.
Comparez les temps simulés à la télémétrie machine, par exemple les horodatages broche ON/OFF et les mouvements d’axes, et calculez des KPI comme l’erreur absolue moyenne et le pourcentage dans la tolérance. Utilisez un suivi de production automatisé ou les journaux d’événements PLC pour collecter des horodatages fiables plutôt que de vous fier au souvenir des opérateurs.
Itérez l’ajustement des profils jusqu’à atteindre les objectifs de précision pour chaque famille de machines.
Oui, une fois validés. Visez une précision cohérente (par ex. ±5–10 %), documentez les hypothèses (taille de lot, allowances) et intégrez les temps dans le MES/ERP pour que les planificateurs travaillent sur les derniers standards validés. Maintenez une boucle de rétroaction avec le TRS et le suivi d’atelier pour recalibrer lorsque la variance augmente.