Étape 3: ESTRUCTURA GENERAL DE UN PROGRAMA
ESTRUCTURA GENERAL DE UN PROGRAMA
Ya teniendo una herramienta basica para gestion del PAC, se procedio un indagar un poco mas fr como es la estructura de un programa para Opto22.La de PAC informacion acquis fue la siguiente :
Los archivos con .crn1 extension, .crn2, .crn3, deben como todos tener
nombre como se « bautizo » el programa. * El archivo .crn1 contiene una linea : FILENAME. " PNAME "; Donde PNAME es el nombre con que se "bautizo el programa. Las otras lineas de este archivo aucun cambiaron nunca con diferentes programas que se crearonEl archivo .crn2 contiene los nombres de las « tareas » que conforman ONU
Programa, las variables que se utilizan, y la asignacion de pins I/OEl quelle archvo .crn3 inicializa las tareas, las el l’y dans la variables matérielles de I / 0
Delphine existir un archivo con extension .ccd para cada una de las tareas
que conforman el programa, cuyo nombre es el que aparece en el archivo .crn2
Se desarrollo ONU programa ejemplo « PARPADEO », que cuenta con dos tareas : una enciende y apaga una salida e numérique ou una variable contador, la otra tarea revisa si la variable es exactamente divisible entre 5 (modulo 5) y enciende el conduit cuando esta condición es valida, de lo contrario, lo apagara.
PARPADEO.crn1
En este archivo puede notarse la linea de codigo donde esta el nombre del programa, « PARPADEO ». Las demas lineas parecen algun tipo de asignacion de espacios de memoria para el matériel, variables e I/O. Aucun se notaron cambios en estas lineas para diferentes programas hechos y analizados.
DERNIER NOUVEAU $$$. COURIR
: NOM DE FICHIER. " PARPADEO ";
1 $VAR 0 * _HSV_SEMA
1024 $VAR 0 * _HSV_TEMP
200 $VAR 0 * _HSV_INIT_IO
IVAR 0 ^ _HNV_INIT_IO
PARPADEO.crn2
En este archivo se encontraron tres cosas :
-Tareas que conforman el programa : mise sous tension, parpadeolento, _INI_IO. Powerup es una tarea que viene por defecto, aucun puede ser renombrada, ni borrada. parpadeolento fue una tarea creada en el programa e _INIT_IO probablemente es una tarea interna encargada de inicializar el matériel automaticamente al iniciar un programa
-Variables Québec se utilizaron en el programa : variablecontador y variablemodulo
-Alias de los pins del matériel un nombres mas amigables el programa, fr este caso los pins digitales 0 y 7 fueron denominados un alias de los : SALIDA_DIGITAL_1 y SALIDA_DIGITAL_4
0 tâche & _INIT_IO
0 tâche & Powerup
0 tâche & parpadeolento
IVAR 0 ^ variablecontador
IVAR 0 ^ variablemodulo
$0000000000000000... 32769 1.000000 0.000000 0,010000 2001 7F000001 $ MBOARD 0 % RACK_PROPIO SPOINT 0,0 0 % RACK_PROPIO DE SORTIE
POINT 0 ~ SALIDA_DIGITAL_1
SORTIE DE SPOINT 0,0 % 7 RACK_PROPIO
POINT 0 ~ SALIDA_DIGITAL_4
PARPADEO.crn3
Este archivo es un poco largo mas. Al parecer en la parte inicial se crean se agrupan las tareas, los diferentes tipos de variables, fr qui y hacia el final se puede ver la inicializacion de las variables variablecontador y variablemodulo a 0. También puede notarse Qué por defecto los pins digitales estan configurados como entrada « 0 », y los que seran usados como salida delphine escribirse un "1" ($... 0081 pins 0 a 7)
: W_INIT_IO
CONFIG_PORTS
$0000000000000081... PERMET DE RACK_PROPIO % !
"% RACK_PROPIO (1/1)" * _HSV_INIT_IO $MOVE 0 ^ _HNV_INIT_IO
PERMETTRE À % RACK_PROPIO
« Initialisation des variables » * _HSV_INIT_IO $MOVE
0 ^ variablecontador
0 ^ variablemodulo
« « * _HSV_INIT_IO $MOVE
Archivos de tareas (powerup.ccd, parpadeo.ccd)
En estos archivos se encuentra el Código del programa, para cada una de las tareas programadas. En cada archivo se encuentra dos tipos de cosas, hacia el final pueden verset el listado de cada uno de los « bloques » de codigo :
T: T0
MANNEQUIN
0_0
0_1
0_3
0_5
0_7
0_10
T ;
& mise sous tension « T0 SETTASK
Cada uno de estos « bloques » de codigo se encuentra numerado a_b donde a, es el numero de la tarea y b el « id » de dicho bloque de codigo dentro de esta tarea. ESTOS números de bloques corresponden con los números de los bloques mostrados fr la aplicacion nativa y probablemente fils usados para realizar tareas de depuracion paso a paso por bloques. Un ejemplo de ONU bloque de codigo es el siguiente
: 1_1
VRAI
1 LIGNE. NUM
^ variablemodulo
1 <
LAND
SI-4 SINON -3 PUIS SAUTER ;
Puede notarse al comienzo la numeracion del bloque antecedida por: (dos puntos). Luego se ve instruccion de la ligne. NUM antecedida por un numero de linea. ESTOS números de linea corresponde con los números de linea de la aplicacion nativa y probablemente fils usados para realizar tareas de depuracion paso a paso por lineas.
Puede notarse que parte del Código se asemeja un FORTH en donde primero se nombran los operandos y finalmente se opéra con ellos.
El bloque finaliza siempre con una instruccion saut precedida de ; (punto y coma). ESTOS sauter sans fils saltos absolutos, sino relativos.