Controlador V1.0

11 12 2007

Controlador V1.0 !

Tolera etapa de emergencia mediante fichero.

Testado entre PC’s.

Ya en GMail :P

Tiene un error para el que he llegado a una conclusión:

El programa, en bucle infinito, recoge del puerto de serie el vector de transiciones. Si el PIC envia algo, pues OK. Pero sino cojerá BASURA, es decir, cualquier cosa (por ejemplo: 0 -34 128 124), y se irá, en el caso de que estemos en el caso de etapa de emergencia, a la etapa de emergencia. Las soluciones pueden ser varias:

-Redibujar la red de Petri correctamente, con etapa de emergencia, y sacar la nueva matriz C.

-Implementar algún código para su detección, siendo la única posibilidad la que se me ocurre la de incluir un byte más en el vector de transiciones para identificación de un vector válido, por ejemplo: 255 1 0 0 0, siendo 255 el byte especial (escrito en decimal), siendo esta solución muy poco válida, ya que puede fallar (puede que se reciba un vector basura igual).

-Que el PIC envie siempre el estado de los sensores.

Las dos primeras opciones son malas. Así que se puede implementar la menos mala o desistir. Al menos yo no consigo sacar la red de petri correcta.

La última opción se podría mirar, no creo que el PIC se quemase ni nada de eso. Es más, creo que es totalmente obligatorio, ya que de lo contrario tendríamos datos indeseados en el cable de serie, que podrían ser tratados como transiciones válidas (en el caso de que todos los números recogidos sean positivos, por ejemplo) y obtener una máquina bastante defectuosa.

Pues eso, que el PIC tiene que escribir el estado de los sensores en las patas de envío hacia el PC constantemente.

Dani


Acciones

Information

4 responses

11 12 2007
Igor Ordoñez Rodriguez

Solo una pregunta, si el pic tiene que estar continuamente mandando eso, cuando necesite leer lo de la maquina dejara de mandar y puede que justo en ese instante haya una emergencia, el pic no lo manda y falla.

Quiero llegar a si esta idea o echo contempla la cosa de que el pic no puede hacer dos acciones a la vez, sino una, bien lee maquina, o lee PC, dos cosas no puede hacer a la vez.

Mañana de todas formas nos dices un poco el codigo cambiado, con el cambio del codigo, ese codigo solo es para este programa o se puede seguir tratando como universal.

Aio, mañana me cuentas, que ando hasta las pelotas de hacer laminas.

11 12 2007
danielskun

Ion ha dado con la solución para no leer basura del cable de serie (por cierto muy simple).
Lo que yo proponía no es posible por lo que has dicho.
Y sí, el código es universal, ya que te deja introducir en un fichero la etapa que elijas como etapa de emergencia (en este caso 1 0 0 0 0), siempre que elijas el modo “Control de Proceso con Emergencia”. Siempre se podrá perfeccionar el código, ya que hay algunas partes que no me gustan demasiado.

Nos vemos mañana!

12 12 2007
ionbixen

Como soy tan bueno? nadie lo sabe :D

12 12 2007
ionbixen

Pues ya esta arreglado, versión 1.1 en GMail. El programa ahora es capaz de detectar cuando sí y cuando no se le envian datos.

(Dani con la cuenta de Ion).

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s




A %d blogueros les gusta esto: