L’outil "Calculation Prepa Data Output" est placé à la fin des blocs de recherche de caractères pour transférer le tableau de sauvegarde que l’on vient de créer dans le tableau de sortie destinés à l’automate.
' 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
#LPat_DataOutput[@j_count_result] = 0
NEXT' Ecriture du code reçu et traitée afin de le retransettre à
' l’automate pour contrôle. Cette valeur est divisée par 1000
' car le résultat est envoyé en millième à l’automate
#LPat_CodeOutput = %InDataFieldbus[0]/1000' Ecriture du tableau sauvegardé dans le tableau de sortie
' destiné à l’automate. Le tableau transféré sera celui demandé par
' l’automate et le même traité par l’outil pattern précédement
IF %InDataFieldbus[0] = 65 THEN
@a = CopyVariableArrayS(#LPat_DataOutput[].#LPatA_Result[].0,46)
END IF
IF %InDataFieldbus[0] = 66 THEN
@a = CopyVariableArrayS(#LPat_DataOutput[].#LPatA_Result[].0,46)
END IF
IF %InDataFieldbus[0] = 67 THEN
@a = CopyVariableArrayS(#LPat_DataOutput[].#LPatA_Result[].0,46)
END IF. . . 'Test de tout les codes (65 à 90,puis 48 à 57 et ceux ci-dessous)
IF %InDataFieldbus[0] = 43 THEN
@a = CopyVariableArrayS(#LPat_DataOutput[].#LPatPlus_Result[].0,46)
END IF
IF %InDataFieldbus[0] = 45 THEN
@a = CopyVariableArrayS(#LPat_DataOutput[].#LPatMoins_Result[].0,46)
END IF
IF %InDataFieldbus[0] = 32 THEN
@a = CopyVariableArrayS(#LPat_DataOutput[].#LPatSpace_Result[].0,46)
END IF
Pour écrire les variables vers l’automate, une trame personnalisée doit être construite.
Dans U0005:Data output (Editing) :
Figure 25 : Data Output Editing
La première valeur envoyée représente le nombre de caractères détectés sur le plateau. Les valeurs suivantes regroupent les coordonnées X, Y et T associées à chaque caractère.