Programación Básica con “NQC” Pedro F. Toledo – Patricio Castillo 18/05/2007.

15
Programación Básica con “NQC” Pedro F. Toledo – Patricio Castillo 18/05/2007

Transcript of Programación Básica con “NQC” Pedro F. Toledo – Patricio Castillo 18/05/2007.

Page 1: Programación Básica con “NQC” Pedro F. Toledo – Patricio Castillo 18/05/2007.

Programación Básicacon “NQC”

Pedro F. Toledo – Patricio Castillo18/05/2007

Page 2: Programación Básica con “NQC” Pedro F. Toledo – Patricio Castillo 18/05/2007.

Fundamentos de Control

• Lazo Abierto• Lazo Cerrado• Estructura de la línea de control

Page 3: Programación Básica con “NQC” Pedro F. Toledo – Patricio Castillo 18/05/2007.

Lazo Abierto

• En control automático, un control de “Lazo Abierto” es aquel tipo de control donde el encargado de ejecutar la acción de control, realiza una serie de acciones para ejectutar la acción de control requerida sin analizar las reacciones efectivas de las acciones que ejecuta.

Page 4: Programación Básica con “NQC” Pedro F. Toledo – Patricio Castillo 18/05/2007.

Lazo Cerrado

• En control automático, un control de “Lazo Cerrado”, es aquel tipo de control donde el sistema controlador se “Informa” de los resultados de las acciones que ha tomado, y del medio, para realizar el control. En base a eso, determina sus nuevas acciones para seguir con la taréa de control.

Page 5: Programación Básica con “NQC” Pedro F. Toledo – Patricio Castillo 18/05/2007.

Estructura de la línea de control

• Finalmente, analizaremos cada desafío que se nos plantee como un problema de control, como ya hemos analizado, la manera de controlar efectivamente situaciones reales de manera eficiente y correcta es a través de un sistema de “Lazo Cerrado”, por lo que es necesario que dispongamos de sensores que informen a la unidad de proceso de las condiciones reales de la situación, para que esta unidad active de manera correcta y efectiva los actuadores que, a la larga, son los que realizan las taréas físicas y visibles del control.

Page 6: Programación Básica con “NQC” Pedro F. Toledo – Patricio Castillo 18/05/2007.

Sensores

• Funcionamiento de los Sensores• Modos de los Sensores• Tipos de Sensores• Configuración de Sensores

Page 7: Programación Básica con “NQC” Pedro F. Toledo – Patricio Castillo 18/05/2007.

Funcionamiento de los Sensores

• Dependiendo del requerimiento se debe utilizar un tipo de sensor adecuado para poder medir correctamente.

• El sensor se comporta como si fuese una variable cuyo valor no controlamos, ya que es lo que el sensor está midiendo en ese instante y eso es independiente del programa.

• Dependiendo del tipo de sensor podremos obtener sus datos de diferentes maneras numéricas, algunas mas prácticas que otras en ciertos ámbitos.

• Por los puntos anteriores, los sensores deben ser programados para que su funcionamiento sea realmente útil, esta programación hace variar 2 factores:

– Utilización de potencia: Algunos sensores requieren más energía que lo normal. Por lo anterior, uno de los factores es el consumo de potencia por parte del sensor.

– Tipo de entrega de dato: Los sensores indican su valor a una zona de la memoria, esto significa que nosotros podemos interpretar el valor de esa zona de memoria de distintas maneras, ya que una zona de memoria son solo un conjunto ordenado de 1 y 0..

Page 8: Programación Básica con “NQC” Pedro F. Toledo – Patricio Castillo 18/05/2007.

Funcionamiento de los Sensores

• Dentro de las variables de sistema se encuentran las de los sensores.• Nombres de las variables de sistema que entregan los datos de los sensores:

– SENSOR_1– SENSOR_2– SENSOR_3

Page 9: Programación Básica con “NQC” Pedro F. Toledo – Patricio Castillo 18/05/2007.

Modos de los Sensores

• El modo de los sensores dice como interpretar los datos de la dirección de memoria, los principales tipos son:– SENSOR_MODE_BOOL– SENSOR_MODE_PERCENT

• Para cambiar el modo de interpretación se utiliza la siguiente sentencia:– SetSensorMode(Sensor,Modo_de_sensor);

Page 10: Programación Básica con “NQC” Pedro F. Toledo – Patricio Castillo 18/05/2007.

Tipos de Sensores

• Los tipos de sensores indican qué sensor es el que está conectado y de ello el sistema sabe si tendrá que suministrarle potencia o no. Los tipos de sensores que veremos serán:– SENSOR_TYPE_TOUCH– SENSOR_TYPE_LIGHT

• Para cambiar un tipo de sensor se utiliza:– SetSensorType(Sensor,Tipo_de_sensor);

Page 11: Programación Básica con “NQC” Pedro F. Toledo – Patricio Castillo 18/05/2007.

Configuraciones de Sensores

• El sistema de los RCX trae una manera predeterminada de funcionamiento de los sensores, por lo que toda la configuración de un sensor puede definirse con:

– SENSOR_TOUCH– SENSOR_LIGHT

• Lo anterior, utilizando la sentencia:– SetSensor(Sensor,Clase_de_sensor);

Page 12: Programación Básica con “NQC” Pedro F. Toledo – Patricio Castillo 18/05/2007.

Subrutinas

• Existe la posibilidad de que de repente cierto código deba ser repetido múltiples veces en varias zonas diferentes del programa, aunque sea el mismo. Esto es una pérdida de memoria si es que se escribe en cada una de las partes por separado, por lo que existe una estructura llamada subrutina que tiene la siguiente forma:

Sub nombre(){

contenido;}

• Esto se escribe fuera del “task main()” y se guarda solo una vez en la memoria. Ahora, cada vez que se requiera ejecutar el contenido, basta con llamar a ese bloque de código con la línea:

nombre();• Así, este se ejecutará completo y no continuará ejecutando las siguientes líneas, del

programa “task main()”, hasta que el bloque subrutina se termine, donde se seguirá leyendo desde la línea siguiente a la donde se llamó a la subrutina.

Page 13: Programación Básica con “NQC” Pedro F. Toledo – Patricio Castillo 18/05/2007.

Operadores y Comparadores Lógicos

• Al programar un robot, es necesario programarlo para que tome decisiones, estas decisiones se basan en un conjunto de datos que se procesan y dicen que hacer o que no hacer. A esto se le llama lógica de programación.

• La lógica de programación solo reconoce dos valores, verdadero o falso, que dependiendo del lenguaje tienen diferentes significados.

• Para NQC todo numero que sea 0 se considerará falso, y todo numero diferente de 0 se considerará verdadero. Por lo anterior, el numero 5, 6, 99, 1556, etc. Tendrán el mismo valor de verdad (Verdadero).

Page 14: Programación Básica con “NQC” Pedro F. Toledo – Patricio Castillo 18/05/2007.

Operadores y Comparadores Lógicos

• ![x] No Entrega el valor de verdad del elemento x negado

• [x]==[y] Igual Compara el valor de x e y como números y entrega Verdadero si son iguales

• [x]&&[y] Y Compara el valor de x e y por su valor lógico y entrega Verdadero si son iguales

• || O Compara x e y por su valor lógico y entrega Verdadero si tan solo uno de los 2 es verdadero

• != Diferente Compara el valor numérico de x e y entregando verdadero si los valores son diferentes

Page 15: Programación Básica con “NQC” Pedro F. Toledo – Patricio Castillo 18/05/2007.

Programación Básicacon “NQC”

Pedro F. Toledo – Patricio Castillo18/05/2007