Pages: 1 [2]   Go Down
Author Topic: ArduWebPLC  (Read 4257 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 1
Posts: 44
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Añado algunas imágenes (a mano) de los ejemplos más sencillos.

http:///arduplc.awardspace.biz/documentos/ArduPLC.jpg
http:///arduplc.awardspace.biz/documentos/ArduPLC2.jpg
http:///arduplc.awardspace.biz/documentos/ArduPLC3.jpg

Saludos
Logged

0
Offline Offline
Edison Member
*
Karma: 16
Posts: 1579
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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".


smiley-wink
« Last Edit: January 24, 2012, 05:47:09 pm by Igor R » Logged


Offline Offline
Newbie
*
Karma: 1
Posts: 44
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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




« Last Edit: January 25, 2012, 05:37:11 am by jnogues » Logged

0
Offline Offline
Edison Member
*
Karma: 16
Posts: 1579
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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!!


smiley-wink


Nota.- ni enyes ni acentos

« Last Edit: January 25, 2012, 09:16:42 am by Igor R » Logged


Offline Offline
Newbie
*
Karma: 0
Posts: 4
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

0
Offline Offline
Edison Member
*
Karma: 16
Posts: 1579
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

y en vez de ethernet por rs485 o can bus?
« Last Edit: June 19, 2012, 03:17:32 pm by Igor R » Logged


Offline Offline
Newbie
*
Karma: 0
Posts: 4
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

0
Offline Offline
Edison Member
*
Karma: 16
Posts: 1579
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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...   smiley-wink

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....


 smiley-grin
« Last Edit: June 19, 2012, 06:05:11 pm by Igor R » Logged


Mirabel
Offline Offline
Newbie
*
Karma: 0
Posts: 3
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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?
Logged

Pages: 1 [2]   Go Up
Jump to: