vendredi 8 décembre 2017

Utilisation compteur Temps et pièce sur Siemens840D

Pour afficher des temps d'exécution d'un programme sur CN Siemens il existe plusieurs variables système, qui peuvent être utilisés pour surveiller des processus technologiques. On peut par exemple utiliser :
$AN_SETUP_TIME          Temps depuis la dernière initialisation en minutes,
$AN_POWERON_TIME  Temps depuis la dernière mise sous tension en minutes.


Les trois temps suivants sont définis en tant que variables système spécifiques à un canal et peuvent être activés par le biais d'un paramètre machine.


$AC_OPERATING_TIME Temps global d'exécution de programmes CN en mode automatique en secondes,
$AC_CYCLE_TIME Temps d'exécution du programme CN sélectionné en secondes, $AC_CUTTING_TIME Temps de mise en oeuvre de l'outil en secondes.


Si l'on désire utiliser un compteur de pièce c'est un peu plus complexe car le fonctionnement dépend de variables système. Il faut regarder par exemple quel code M va incrémenter automatiquement le compteur :




Le code qui pilote l'incrémentation est défini par la variable $MC_PART_COUNTER_MCODE, sur cette machine c'est 97 donc M97 va incrémenter le code mais on pourrait le régler à M17 (fin d'un sous programme), M02.


Donc chaque fois que le programme va rencontrer M97 il augmentera la variable $AC_TOTAL_PARTS de 1. Si la variable $AC_REQUIRED_PARTS est définie,  une fois que le nombre de pièce produites ( $AC_TOTAL_PARTS) sera égal au nombre de pièces à produire ($AC_REQUIRED_PARTS), un message va s'afficher sur la CN pour dire que le nombre de pièce à produire est atteint.


Voici un exemple de programme ou l'on retrouve quelques exemple d'utilisation de : $AC_TOTAL_PARTS, $AC_REQUIRED_PARTS et $AC_CYCLE_TIME


A la fin de chaque boucle j'affiche un message pour donner le nombre des pièces produites et le temps d'exécution globale :


;Test Variable
G71 G90
G54 G17
G0 SUPA Z-5 D0


$AC_TOTAL_PARTS=0 ; RAZ du nombre de pièce produites
$AC_REQUIRED_PARTS=5 ; Nombre de pièces demandés


MSG("Piece demandee :"<<$AC_REQUIRED_PARTS) ; Nombre de pièce demandées


BOUCLE:


T="OUTIL1"
M06


S2500 D1
M03
G0 X0.0 Y0.0
Z100.0
X100.0
Z200.0
M05


M97 ; Incrémente nb pièce produite


MSG("Pieces produites : "<<$AC_TOTAL_PARTS<<" / "<<$AC_CYCLE_TIME<<" secondes") ; Nombre de pièce produites et temps execution depuis lancement du programme
M00


G0 SUPA Z-5 D0


; Si on a pas atteint le nombre de pièce retourne au départ


IF $AC_TOTAL_PARTS<$AC_REQUIRED_PARTS GOTOB BOUCLE


M02