Go Down

Topic: ArduWebPLC (Read 5088 times) previous topic - next topic


Igor R

#16
Jan 24, 2012, 09:26 pm Last Edit: Jan 24, 2012, 11:47 pm by Igor R Reason: 1
Ya veo como lo estás planteando. Ese código no funciona, verdad? Te falta de meterlo todo en funciones, llamarlas, etc. no?

Ya tienes millis() en Arduino, veo que lo estas haciendo con el timer2...
Vas hacer en plan timers? Con millis() lo hacen en un periquete, no? Digo por si te merece la pena entrar tanto en detalle....  Y hacer una función para emular un biestable RS ? Con una función biestable, con millis() y con las funciones de readInputs, updateOutputs, o como se llamen... no sería bastante? Lo digo, porque una vez que ya se juega con ésto, ya se puede ir metiendo poco a poco programación, no?

bool set1= I1 && I2;
bool reset1= I3;
Q1=biestable(set1,reset1);


Es simple curiosidad, no digo que sea ni mejor ni peor. Es un "brainstorming".


;)

jnogues

#17
Jan 25, 2012, 11:31 am Last Edit: Jan 25, 2012, 11:37 am by jnogues Reason: 1
Hola Igor. Ese código es la parte ladder del sketch (partido en 3) que adjunté en un post anterior.

Estoy utilizando el timer 2 (siguiendo el ejemplo de tu página), porque cuando todo esto lo implemento en el ArduWebPLC, mientras el Arduino está atendiendo al cliente que le requiere por internet, pierdo entre 1/2 segundo y 1 segundo en esta gestión, y durante este tiempo muerto el refresco periódico de los tempos se pierde. Además si se pulsa algun pulsador durante ese tiempo tampoco me entero de que ha pasado.
Entonces aprovecho la interrupción de timer 2 para actualizar una alternativa a millis y para comprobar si hay alguna entrada activa en ese lapso de tiempo.

Respecto a la función RS tienes toda la razón. La quiero incorporar (estoy en ello) para orientarla a la implementación de GRAFCETS.

Estoy encantado con tus aportaciones. Yo soy un programador "dominguero" y necesito la visión de los que teneis mas experiencia que yo.

También añadiré funciones horarias con el RTC (el DS1307), pero estoy esperando el día que pueda pasar por la tienda buscarlo. ¿me recomiendas alguna librería para su uso?

Saludos a todos

Jaume





Igor R

#18
Jan 25, 2012, 03:04 pm Last Edit: Jan 25, 2012, 03:16 pm by Igor R Reason: 1
Yo tambien soy un "dominguero"!! Simplemente me pongo como usuario de una caja negra, y que pediria para poder hacer la mayoria de las cosas. Por ejemplo, para pasar de Grafcet a programacion, con tener un if, operaciones logicas y variables, no necesito mas (para cosas normales).
Ej:
state=(state==1 && Input1) ? 2 : state;   //Si estado=1 y Input1=ON, entonces estado=2, si no es asi, no hago nada.
state=(state==2 && !Input1) ? 1 : state; //Si estado=2 u Input1=OFF, entonces estado=1, si no es asi, no hago nada.
....
output1=(state==1) ? 1:0;  //Si estado=1, entonces output1=ON, si no output1=OFF

Pero claro, esto ya es cosa de cada uno.... Yo he hecho cosas asi con ECU's comerciales para procesar canales periodicos en "tiempo real" en  que solo te dejaban 5 variables por canal y una funcion del estilo if (se llamaba choose). Lo importante es saber aprender a "pensar", que es lo importante/dificil de transmitir a los alumnos, no??
Simplemente hay que prohibir la funcion delay!!! je,je,je

Lo decia porque cuanto mejor-sofisticado sea tu PLC, mas dificil sera para los alumnos pasar a Arduino dejando fuera tu "corePLC". A parte de esto, es un proyecto muy bonito!!


;)


Nota.- ni enyes ni acentos


carce76

Hola a todos
Estoy empezando con arduino y me parece fenomenal para dar clase a los chavales de electronica, pero como muchas veces quieres ir por delante de lo que estas haciendo, he visto que arduino se puede conectar por ethernet, pero mi duda es si se pueden conectar varios arduinos 4 o 5 por ethernet sin que ninguno sea servidor, creo que tendrian que ser todos clientes.  Mi idea es que por ethernet los chavales puedan encender salidas que esten en otro arduino accionando pulsadores que este en el suyo, y los otros arduinos igual. Me gustaria que me pudierais orientar a como hacerlo, gracias y me parece fenomenal este foro. Un saludo

Igor R

#20
Jun 19, 2012, 10:14 pm Last Edit: Jun 19, 2012, 10:17 pm by Igor R Reason: 1
y en vez de ethernet por rs485 o can bus?

carce76

Hola
Preferiria por ethernet por el juego que puede dar, ya que can no lo conozco y rs485 creo que seria mas caro. Mi duda es si yo tengo un switch, le puedo conectar varios arduinos como cliente sin tener acceso a internet y poder comunicarme con ellos. Tambien en el taller tenermos una red mas o menos cableada. Un saludo

Igor R

#22
Jun 20, 2012, 12:41 am Last Edit: Jun 20, 2012, 01:05 am by Igor R Reason: 1
Quote
rs485 creo que seria mas caro

Sólo por aclarar, que por precio no es, ya que un transceiver para RS485 cuesta menos de 1 euro => http://es.farnell.com/texas-instruments/sn75176bp/ic-bus-transceiver-75176-dip8/dp/1106023  y un par de resistencias de 120 ohmios a cada extremo del bus.
Si ya tienes cableado, puedes usar uno de los pares trenzados del cable utp...   ;)

Para tema de por ethernet, no soy el más indicado para contestar.... No estoy seguro cuando de fácil o díficil puede ser....Me refiero, conexión entre 2 Arduinos por ethernet, tienes muchos ejemplos (algunos incluidos en el IDE de Arduino). Si quieres que sea una red con múltiples y que todos se puedan intercambiar entre sí, no sé que complicación puede llevar....


:D

Hola. He estado leyendo este topic y me parece muy interesante ya que me interesaría aplicarlo a unos dispositivos que hemos creado para pequeñas automatizaciones. Hemos coincidido mucho en el nombre ya que estos se llaman ArduPLC.
De momento solo tenemos el hardware y la programación la hacemos directamente en C pero estamos buscando la forma de implementar un intérprete a lenguaje de PLCs industriales.
El dispositivo es este:

http://tienda.ray-ie.com/53-arduplcm.html

¿Cómo lo veis?

Go Up