Robot

Projet - Maquette salon 2026 - 02/2026

3.6 Décomposer prog bloc

Décomposition du programme du bloc en langage KV, dérivé du Basic :

' Initialisation des différents index utilisés dans le programme
@i_count_pattern = 0
@j_count_result = 0
@k_jm1 = 0
@k_temp0 = 0
@k_temp1 = 0
@k_temp2 = 0

' Remise à zéro du tableau ou l’on va sauvegarder le résultat
' de l’outil pattern effectué précédement, ceci permet éviter d’avoir
' des données mémorisées lors des résultats précédents
FOR @j_count_result = 0 TO 45
#LPatM_Result[@j_count_result ] = 0
NEXT

' Boucle de sauvegarde des résultats de l’outil pattern.
' Il y a 15 résultats dans l’outil, la boucle permet de les
' parcourir de 0 à 14, soit les 15 fois.
FOR @i_count_pattern = 0 TO 14

' Contrôle si le nombre de mesure trouvé par
' l’outil pattern est égale à 0
IF !U[0034].RSLT.N:MS = 0 THEN
' alors on écrit également 0 dans la première valeur du tableau,
' qui correspond au nombre de mesure trouvé
#LPatM_Result[0] = 0
' Puis on sort de la boucle
EXIT FOR
END IF

' Boucle d’écriture des résultats allant du premier
' jusqu’au nombre de mesure trouvé par l’outil pattern
FOR @j_count_result = 1 TO !U[0034].RSLT.N:MS

' index de la boucle – 1 permettant le calcul des index suivants
' et le pointage dans le tableau des mesures de l’outil, le premier
' étant la mesure [0]
@k_jm1 = @j_count_result - 1

' Préparation des index d’écriture dans le tableau de sauvegarde
@k_temp0 = (@k_jm1 * 3) + 1
@k_temp1 = (@k_jm1 * 3) + 2
@k_temp2 = (@k_jm1 * 3) + 3

' Ecriture nombre de mesure trouvé par l’outil pattern à l’adresse
' 0 du tableau de sauvegade. Cette valeur est divisée par 1000
' car le résultat est envoyé en millième à l’automate
#LPatM_Result[0] = !U[0034].RSLT.N:MS / 1000

' Ecriture des résultats X, Y et T de chaque mesure trouvées
' par l’outil dans les adresses suivantes du tableau de sauvegarde
#LPatM_Result[@k_temp0] = !U[0034].RSLT.X[@k_jm1]:MS
#LPatM_Result[@k_temp1] = !U[0034].RSLT.Y[@k_jm1]:MS
#LPatM_Result[@k_temp2] = !U[0034].RSLT.T[@k_jm1]:MS
NEXT
NEXT