TODOPIC

Microcontroladores PIC => * PROYECTOS * => Mensaje iniciado por: MGLSOFT en 22 de Febrero de 2003, 08:31:00

Título: Hagamos un PLC con PIC!!
Publicado por: MGLSOFT en 22 de Febrero de 2003, 08:31:00
Para los que quieran colaborar!!

Intento hacer un PLC con PIC.
La idea la reforce al visitar una pagina WEB donde hay uno hecho con PIC16F84.

En este caso, por diversas razones intentaria usar un 16F628.
Ademas agregaria un LCD y 4 pulsadores para cambio de parametros.

Espero sugerencias y ayuda.

MGLSOFT


Título: RE: Hagamos un PLC con PIC!!
Publicado por: adolfoadc en 22 de Febrero de 2003, 08:59:00
Porque no expones el tema de una forma un poco mas extensa, es decir caracteristicas que debe cumplir, y demas historias, para poder ayudarte y colaborar en tu idea.
Me parece una buena idea, se incluiria software para programarlo?
Explicanos un poco mas que ideas tienes para realizarlo.
Título: RE: Hagamos un PLC con PIC!!
Publicado por: MGLSOFT en 22 de Febrero de 2003, 09:20:00
Habia pensado en utilizar la misma tecnica utilizada por la persona que hizo el desarrollo que les comente.
Consiste en hacer macros reutilizables en asm, y luego estas pueden ser llamadas desde el PBP.
El programador estaria incluido dentro del circuito impreso, similar al de Cekit.
Esta parte la estoy por subir el lunes si la tengo lista, dejenme tiempo para ir paso a paso.

No habia pensado utilizar un software que programe visualmente por la sencilla razon que no se hacerlo, dejo el reto para los que si lo saben hacer.
De esa forma podriamos programarlo en Ladder y no en literal (booleano) como es la idea original de esta persona.

Ver pagina WEB http://inicia.es/de/juanmarod/portada.htm

Alli se pueden dar una idea mejor, yo no quiero publicar esta informacion que no me pertenece.

En mi caso pienso utilizar las entradas y salidas con registros serie - paralelo de ocho bits, que ademas de menos lineas me permite expandir el PLC mas alla de 8+8 E/S.

MGLSOFT

Título: RE: Hagamos un PLC con PIC!!
Publicado por: MGLSOFT en 27 de Febrero de 2003, 15:52:00
No se que paso, crei enviar un mensaje, debo estar muy pavo a esta altura....

Adjunto va un PDF (como esta hecho en Protel 99 muchos no podrian leerlo) del circuito y el esquematico del circuito de entradas y salidas.
No lo hice en Proteus porque no tengo libreria del 74HC595, si alguien es tan gaucho me la envia o me enseña a hacerla.

El circuito de entradas salidas es expandible de 8 en 8 y es universal para las entradas como para las salidas, cualquiera se arma en la misma placa.

Usar 8 entradas y 8 salidas sera en este caso lo mismo que tener 48 entradas y 32 salidas, porque siempre usaremos 6 lineas del PIC para la lectura y escritura!!!

Va tambien un programa en PBP que fue probado y esta bien comentado, para entender de que se trata.

Tambien incluyo el esquematico del programador pic que luego utilizare en el PLC, incorporandolo directamente.

Perdon, pero el impreso no salio porque es muy grande el archivo, si me consiguen la libreria para Proteus donde este el 74HC595 les hago el esquematico del circuito de pruebas, asi sin armar un PCB, pueden probarlo

Espero comentarios, estan muy callados.
Título: RE: Hagamos un PLC con PIC!!
Publicado por: hexapodo en 05 de Marzo de 2003, 00:10:00
hola,

aquí está lo que llevo en visual basic para programar el PLC con ladder todavia estoy en pañales con esto, pero se puede captar la idea.

les mando el código fuente en Visual Basic 6

Bye
Título: RE: Hagamos un PLC con PIC!!
Publicado por: MGLSOFT en 05 de Marzo de 2003, 07:04:00

Genial lo tuyo , hexapodo!!

Aqui va algo que encontre por la WEB y guarde.
Se trata de un soft abierto, creo que es C, para hacer los modelos que te permitan grabar PICs.
Mi idea es que en forma de activex, nos ayude a solucionar el tema de grabacion del .hex en el PIC del PLC.

Yo me voy a poner en el tema de desarrollar el circuiterio necesario para grabar el PIC.

Para Todopic:
Como veras esto va orientado a escribir el software en Ladder, gracias a lo que tiene pensado Hexapodo.

A todos los que escuchais, viertan su opinion de como podemos mejorar lo que publiquemos, por favor....

Un abrazo

PD: No puedo subir el PDF, aun zipeandolo, porque es tien 330Kb, como se soluciona??
Título: RE: Hagamos un PLC con PIC!!
Publicado por: MGLSOFT en 05 de Marzo de 2003, 12:10:00
Vuelvo con lo de entradas y salidas.
Como en el Proteus no encontre la libreria que tenga el 74HC595, entonces lo  "fabrique".
Como lo hice yo, supongo que es por eso, no simula bien, o mejor dicho no simula.
Este deberia poder simularse con el programita hecho en PBP, pero no lo hace.
Si descubren porque no lo hace les ruego me lo expliquen.
Yo lo probe en el protoboard y anduvo.
Esta seria la parte de entradas y salidas del PLC, que lo hace expandible.

Me pongo a hacer el esquematico del CPU, con programador incluido.
Título: RE: Hagamos un PLC con PIC!!
Publicado por: hexapodo en 05 de Marzo de 2003, 16:08:00
hola,
con el winrar o winace se pueden comprimir los archivos y se pueden partir en pedazos de x kb.
tiene la opcion de guardarlos con extencion .exe para ser descomprimidos sin tener el programa.
bye
Título: RE: Hagamos un PLC con PIC!!
Publicado por: MGLSOFT en 06 de Marzo de 2003, 05:50:00
Gracias Hexapodo!!
No sabia usar eso en WINRAR.
Van dos archivos que son uno solo con el PDF del programador correspondiente a lo ultimo subido al foro.

Un abrazo.

PD: avanzaste algo Hexapodo.
Título: RE: Hagamos un PLC con PIC!!
Publicado por: hexapodo en 07 de Marzo de 2003, 13:27:00
hola

no he podido avanzar porque estoy en examenes parciales estas dos semanas y he estado estudiando como si no hubiera mañana      

bye
Título: RE: Hagamos un PLC con PIC!!
Publicado por: MGLSOFT en 25 de Abril de 2003, 15:12:00
Hola a todos!!



Por supuesto este segmento tampoco se salvo de la perdida de mensajes.

Este es para decirles que estamos vivos....



Hexapodo:  Has avanzado algo con el soft?
Si no has entrado estos dos ultimos dias te encontraras con la sorpresa que faltan mensajes.
Por ello utilizo este para ponerte al tanto.



Hasta lueeegoo.....
Título: RE: Hagamos un PLC con PIC!!
Publicado por: todopic en 02 de Mayo de 2003, 10:21:00


Hola MGLSOFT, encontre esta direccion... http://www.microladder.com

es un microcontrolador. programable con ladder...

Norberto
Título: RE: Hagamos un PLC con PIC!!
Publicado por: MGLSOFT en 02 de Mayo de 2003, 12:23:00
Gracias , Norberto.

De todos modos no pude bajar el soft, no encuentro el enlace, vos probaste??

Título: RE: Hagamos un PLC con PIC!!
Publicado por: todopic en 02 de Mayo de 2003, 23:37:00
Hola, por lo que vi, estara disponible dentro de poco.... alli figura Mayo.... quizas se atrasaron....


suerte

Norberto
Título: RE: Hagamos un PLC con PIC!!
Publicado por: MGLSOFT en 09 de Mayo de 2003, 07:00:00
Les comento que me puse en contacto con Juan Manuel Rodriguez, creador de las rutinas del firmware del PLC con PIC, de su idea original.



Me contesto en forma muy atenta, autorizandome a publicar este trabajo.
Estoy enviandole ahora lo que estuve modificando de hardware y software, para que se entere de las modificaciones, y despues , cuando lo tenga saneado y entendible, lo colgare de este foro, para que puedan utilizarlo todos.



Un abrazo.
Título: RE: Hagamos un PLC con PIC!!
Publicado por: hexapodo en 10 de Junio de 2003, 02:10:00
Hola a Todos, Volví

Me ausenté del foro porque tenía problemas academicos en la Universidad je je por andar pensando en cosas como estas, pero ahora que he salido a vacaciones ya me puedo dedicar a esto.

ya está disponible para bajar el microladder

http://www.microladder.com

lo vi y me pareció muy chevere, es mas o menos la idea que tengo para el soft de nuestro PLC basado en PIC.

alguien ha avanzado con el software? (para ponerme al día).

me despido
Título: RE: Hagamos un PLC con PIC!!
Publicado por: MGLSOFT en 11 de Junio de 2003, 06:27:00
Ya lo baje del Site, me parecio muy bueno.
Ese Soft esta hecho para trabajar con determinado hardware que ellos te venden y ademas usa las funcionalidades de bootloader del 16F877a.

En cuanto al soft, ya tengo permiso para subir lo que hice, estoy dandole retoques y terminando los circuitos, pues hice todo de memoria, ademas le voy a agregar otras funciones de seguridad que me aconsejo el autor del proyecto base.

Pronto lo subire.
Título: RE: Hagamos un PLC con PIC!!
Publicado por: shaderobot en 14 de Junio de 2003, 23:15:00
 mi consulta es :

 el plc construido con un pic16F84, quisiera saber cual es el maximo voltaje para las entradas optoacopladas.

Título: RE: Hagamos un PLC con PIC!!
Publicado por: MGLSOFT en 17 de Junio de 2003, 06:45:00
Una de las grandes ventajas de trabajar con entradas y salidas optoacopladas es la inmunidad al ruido electrico que ganas, seguramente es la mas importante ventaja, que debes tener en cuenta en todo circuito que pueda trabajar en el ambiente industrial.
La otra gran ventaja es la de poder trabajar con casi cualquier tension, por el hecho de que el circuito de entrada o salida esta aislado electricamente del circuito de control.
Esto te permite armar una entrada o una salida en 12 VDC o 220 VCA sin problemas, es mas pueden coexistir en diferentes placas del mismo proyecto entradas o salidas de diferentes tensiones, casi olvidandote de los problemas que podrian acarrear.
Eso si la seguridad corre por cuenta del diseñador....
En mi caso trato de utilizar las tensiones mas bajas posibles siempre que puedo.

Un abrazo.
Título: RE: Hagamos un PLC con PIC!!
Publicado por: villar28 en 27 de Junio de 2003, 14:19:00
hola pueden puplicar la paguina que aperecio el proyecto que quieren reforzar, quiero ayudaren el proyecto
Título: RE: Hagamos un PLC con PIC!!
Publicado por: hexapodo en 28 de Junio de 2003, 04:23:00
hola villar24, y hola a todos

no se si se refiera a la página de Juan manuel quien ya hizo un PLC con un Pic 16f84:
http://inicia.es/de/juanmarod/portada.htm

tambien puedes encontrar un programa a manera de ejemplo en:
http://www.microladder.com

puede tambien ver el softaware que se está diseñando en:
http://afrodita.unicauca.edu.co/~jpleon/hexapodo.jpg

bye.
Título: RE: Hagamos un PLC con PIC!!
Publicado por: hexapodo en 03 de Agosto de 2003, 14:54:00

hola,

auque las macros ayudan en gran medida a la programacion en ensablador, no es bueno abusar de ellas.

una macro no se complila hasta cuando no se llama desde el programa, pero si se llama dos, tres, cuatro o mas veces, cada llamada va a hacer que se incremente el tamaño del programa en la memoria del micro.
Ej: una macro que ocupe 10 pocisiones en memoria de programa, a no llamarla no se compila y oviamente no ocupa nada, al llamarla una vez ocupará 10 posiciones, al llamarla dos veces 20 posiciones, 3 veces -> 30 posiciones y asi sucesivamente.

es mejor trabajar con funciones se compilan solo una vez y se pueden diseñar para que se comporten diferente de acuerdo al valor de W o de algun registro temporal.

bye.
Hexápodo.
Título: RE: Hagamos un PLC con PIC!!
Publicado por: MGLSOFT en 04 de Agosto de 2003, 09:20:00
Coincido plenamente contigo acerca de las macros, tienes toda la razon acerca del consumo infernal de memoria por cada llamado a la macro que utilizes.
Estuve pensando como hacer esto en otro lenguaje, para evitar el assembler, donde pasar un parametro por referencia es bastante complejo (en esto coincidiras conmigo), y lo que encuentro disponible es el Basic y el C.
Aunque no se como pasar los parametros por referencia en Basic, lo descarto pues no atiende las interrupciones hasta que no termina el comando que esta ejecutando en ese momento.
Con ese defecto no nos sirve para garantizar el minimo tiempo de scan y tener control sobre el mismo.
Si miras el C veo que podemos pasar parametros por referencia (es el campeon en ese sentido) y ademas creo que atiende correctamente las instrucciones.
Entre otros tambien es facil hacer matematica de punto flotante, tiene rutinas para atender teclados, etc.
La dificultad consiste en aprender el lenguaje y ademas en generar las rutinas correctas para cada funcion.

Si hasta alli voy bien necesito me confirmes..
Título: RE: Hagamos un PLC con PIC!!
Publicado por: hexapodo en 06 de Agosto de 2003, 01:00:00


hola,

si se busca otro lenguaje (c, basic, etc), tocaría adaptarse a él, y muchas veces el código que generan no es optimizado, es muy grande, lo ideal sería seguir trabajando en ensamblador.

Otra cosa: el proteus parece tener bugs en la simulación no anda bien ni el 74hc595, ni el 74ls165, se monta en protoboard y está perfecto.

bye.
Hexápodo.
Título: RE: Hagamos un PLC con PIC!!
Publicado por: MGLSOFT en 06 de Agosto de 2003, 08:12:00
Me encanta ese comentario!!
Demuestra que le estas poniendo interes al tema.
Lo que descubri de Proteus es que no tiene los modelos de simulacion de ambos integrados, pero de todos modos para esquematizar el circuito esta OK.
Yo tambien lo arme y funciona, tengo el codigo hecho en assembler y funciona OK.

En cuanto a programar en assembler las funciones (ya no serian macros) con pasaje de parametros, dejame estudiarlo, ya que yo soy vago y tambien utilize macros donde el lenguaje me apreto, por ello hago aguas en este tema.

Recuerdo que quien quiera ayudar sera recibido con los brazos abiertos!!!
Título: RE: Hagamos un PLC con PIC!!
Publicado por: pocher en 06 de Agosto de 2003, 10:41:00
Hola.

- El 74LS165 (registro de desplazamiento paralelo-serie --> entradas) sí que funciona ¡OK! en PROTEUS
- El 74HC595 (registro de desplazamiento serie-paralelo --> salidas) no lo he visto por ningún sitio, sin embargo para simulación lo podeis cambiar por un 74LS164.IEC (registro de desplazamiento serie-paralelo --> salidas) que sí lo lleva el PROTEUS y funciona ¡OK!

Un saludo
Título: RE: Hagamos un PLC con PIC!!
Publicado por: hexapodo en 07 de Agosto de 2003, 02:39:00
hola,

Aquí les dejo una comparación entre PBP y ensamblador.
Se los recomiendo, es un ejemplo que pueden montar.

PD: gracias Pocher por responder, pero a mi no me funciona la simulación ni con el 165 ni con el 164.

chao
Título: RE: Hagamos un PLC con PIC!!
Publicado por: pocher en 07 de Agosto de 2003, 10:05:00
Voy a simular tu código, a ver si podemos dar una solución a la simulación

Un saludo
Título: RE: Hagamos un PLC con PIC!!
Publicado por: MGLSOFT en 07 de Agosto de 2003, 13:17:00
Diste en el clavo del tema que quise explicar cuando publique ese codigo.
El PBP trabaja en background con macros.
Si miras en el directorio donde compilaste el programa veras un archivo del mismo nombre con extension .mac, entre otros.
Cada comando aumenta en forma increible el tamaño del codigo, es mas cuando repites muchas veces la misma instruccion (la peor es LCDOUT) se agranda en forma desproporcionada el tamaño del .hex resultante.
Imaginate que aun en ensamblador tu archivo tiene pocas lineas, cuando agrandas el programa se porta peor.

Pero si un Team de programadores uso ese esquema en assembler, porque lo hicieron asi??, no saben ellos programar funciones con pasada de parametros??
A mi entender son bastante genios y duchos en assembler, me parece fantastico que podamos disfrutar de una herramienta de ese tipo, pero por que no lo hicieron de otra forma??

No saben o no pueden??

La comparacion de tamaño de codigo yo la hice en su momento en Assembler, Basic y C.
Optimize aun mas en assembler al usar el Carry para rotar bits en las tramas de cada byte recibido.
Creo que me dio unos 57 KB el assembler, unos 64 a 65 KB el C y unos 128 KB el B, que es el mismo que enviaste.

Como seguimos??
Yo no encuentro la forma de pasar parametros y ademas como cubro la forma de llamar a la funcion sin el CALL??

MGLSOFT
Título: RE: Hagamos un PLC con PIC!!
Publicado por: pocher en 07 de Agosto de 2003, 13:57:00
¡¡¡ Ya tengo la simulación!!!   ¡¡¡ Por fin !!!

 En el esquema original he cambiado el 74HC595 que no lo lleva el PROTEUS por el 74LS164.IEC que sí lo lleva.

He hecho el programa en C, en ensamblador me podía dar un ataque, ni se me ha ocurrido.

Me ha costado varias horas de faena, pero por fin ha salido.

También lo voy a dejar en el apartado de ejemplos para simular, por si a alguien le interesa la forma de ampliar entradas y salidas en un PIC utilizando registros de desplazamiento.

Un saludo
Título: RE: Hagamos un PLC con PIC!!
Publicado por: hexapodo en 08 de Agosto de 2003, 01:07:00

hola,

si intentan compilar con el mplab el archivo .asm que envié anteriormente y les salen errores, es por el uso de las mayusculas y minusculas; hay que desactivar case sensitive.

bye
Título: RE: Hagamos un PLC con PIC!!
Publicado por: hexapodo en 22 de Agosto de 2003, 23:08:00


hola,

Ya hice el programa en VB que es capaz de leer y programar un Pic16f84a, (bueno, ya casi está listo), luego solo queda adaptarlo al pic16f877a, no es difícil el cambio.

bye.
Título: RE: Hagamos un PLC con PIC!!
Publicado por: Sispic en 22 de Agosto de 2003, 23:26:00
Hola hexapodo

Antes felicitaros por el proyecto ya que es muy interesante .

Quisiera hacerte una pregunta, ¿ tu programa serviría para gravar la serie 18fxxx  ¿¿
Haciendo los cambios naturalmente .

Saludos .
Título: RE: Hagamos un PLC con PIC!!
Publicado por: hexapodo en 23 de Agosto de 2003, 02:57:00
Hola Sispic,

No sé de que forma se graban los pic de la serie 18.
aun no me meto con ellos.

me imagino que la manera de programarlos es similar, sabés si utilizan una linea para señal de reloj y otra para la señal de datos?
creo que tienen la posibilidad de ser gravados por medio de un bootloader.

aqui está una imagen del software programador:



Bye
Título: RE: Hagamos un PLC con PIC!!
Publicado por: MGLSOFT en 23 de Agosto de 2003, 06:08:00
Bravo Hexapodo!!

Eso suena espectacular!!
Título: RE: Hagamos un PLC con PIC!!
Publicado por: Sispic en 23 de Agosto de 2003, 06:51:00

Pues enhorabuena , parece completito .

En cuanto a la serie 18 yo los programo con te20 e icprog , le añadi un zocalo de 40 pins conectado al zocalo del 876 , osea que el sistema es el mismo .

tambien se programan con  bootloader .

la diferencia esta creo , en la capacidad de memoria y en que tiene mas bits de config y obciones del oscilador .

Enfin .. nada , mi consulta no tiene que ver nada con el proyecto  y solo era por curiosidad  .

Suerte con el proyecto .
sisco


Título: RE: Hagamos un PLC con PIC!!
Publicado por: hexapodo en 23 de Agosto de 2003, 11:10:00

hola Sispic,

podemos ver las hojas de programación de cualquier 18 y adaptarlo, es solo saber en que direcciones se encuentra cada cosa y ya! (memoria de programa, bits de configuración, ect.)

Bye.
Título: RE: Hagamos un PLC con PIC!!
Publicado por: Sispic en 23 de Agosto de 2003, 11:25:00

Si comprendo , y seguro que tambien puedes adaptarlo a cuarquier hard , tanto por lpt como los coms con visual b.

En vuestro caso no seria mas facil usar un 16f876 con bootloader : un max232 y a correr .Corre por la red  el codigo fuente del programador pero esta en pascal delphi , te lo paso si quieres .

No creo que fuera dificil pasarlo a visual basic o si quereis contemplarlo se puede crear una dll para usarla con visual .

Título: RE: Hagamos un PLC con PIC!!
Publicado por: Sispic en 23 de Agosto de 2003, 15:09:00
El esquema es facil , un max232 conectado a rc6,rc7 del pic .
ahora no tengo tiempo , pero mañana lo cuelgo ya que lo modifique para que hiciese un reset utilizando rst del com antes de programar ya que por defecto no lo trae .

Ahí va ...

y el esquema , no es muy profesional pero sentiende .
Título: RE: Hagamos un PLC con PIC!!
Publicado por: MGLSOFT en 26 de Agosto de 2003, 08:51:00
Hola Hexapodo, Hola Sispic!!


Me alegra ver que han ido avanzando y mucho por lo que veo.
Hay una consulta que quiero hacerles, ya que me interesa ir ayudando en el desarrollo del Hardware.
Que o cual forma seria la utilizada para comunicarse, hacer debug, etcetera, con el PIC??
Que tipo de PIC creen mas util??

No olvidar que el 16F628 ademas de economico ya tiene posibilidad de programacion y debug serial, segun creo.

Si pueden ir definiendo esto, creo que yo podria ir avanzando en los circuitos, para ir consensuandolos juntos, OK??
Título: RE: Hagamos un PLC con PIC!!
Publicado por: hexapodo en 29 de Agosto de 2003, 23:48:00

Hola MGLSOFT,

Pues a mi  me llama la atención el pic16f877a, pues cuenta con comunicación serial, i2c, pwm, y mas cosas que se podrían utilizar en el PLC, y lo mas importante: 8K de memoria. (no es muy caro, acá en colombia se lo consigue en 24000 pesos que equivalen a 8 dolares americanos mas o menos)

No se que opinen o que sugerencias tengan.

Bye.
Hex-apodo
Título: RE: Hagamos un PLC con PIC!!
Publicado por: MGLSOFT en 30 de Agosto de 2003, 06:46:00
Ok, no hay problema, solo que es grandote...
El 16F876 no te gusta, tiene los mismos 8K y las mismas posibilidades, es un micro mas comprimido (mitad de ancho) y mas corto (tiene un puerto menos de ocho bits).

El tema es que si utilizamos expansiones seriales de I/O con solo 6 lineas tenemos todo controlado.

Por otro lado deberiamos determinar bien el circuito de grabacion del mismo, ya que desde alli empezamos a desarrollar luego el hardware necesario.

Pregunta:
¿Has logrado configurar algunas lineas de Ladder, compilarlas y enviarlas al PIC??

Si es asi cual es la interfase?

MGLSoft
Título: RE: Hagamos un PLC con PIC!!
Publicado por: hexapodo en 30 de Agosto de 2003, 10:08:00

Hola,

Sería bueno, barato y cómodo utilizar un bootloader para enviarle el código al pic, pero no he hecho algo así todavía, en este momento ya tengo un programa listo en VB que graba los pics16f84a solo sería adaptarlo, utiliza rb6 y rb7, y el circuito se hace con un CI negador, una cuantas resistencias y un transistor: es el prog de pablín pero modificado.
Ahí les envío el esquemático y espero sugerencias:
Título: RE: Hagamos un PLC con PIC!!
Publicado por: Sispic en 30 de Agosto de 2003, 13:21:00
Ok hexapodo  .

Yo seguramente si hiciese un proyecto asi usaria el downloader tambien , simple , rapido etc , ademas ya  posibilidad de comunicarte con pic  una vez programado .

O incluso usar despues el conector rs232 del PLC como una utilizacion interna del mismo para otras aplicaciones programables  .

Me ofrezco a crear un *.dll del downloader con la cual podras usarla con bisual vasic y montarte el programador a tu gusto , abrir el com , archivo , bautrate , programar , etc . podras ver los errores producidos .
Todo esto con llamadas a las funciones del dll con tu form .

Otra obcion es pasar el codigo a visual ; yo no dispongo de el , osea niflores .

No se si has usado alguna vez alguna , pero es muy facil .

Ya lo pasareis a limpio y si interesa por aqui estare .

Saludos. <__ sisco.

Título: RE: Hagamos un PLC con PIC!!
Publicado por: hexapodo en 30 de Agosto de 2003, 18:01:00


hola sispic,

me parece chévere tu idea, si podés hacer la dll sería muy bueno, para así poder incluirle esa capacidad al programa del PLC.

chao.
Título: RE: Hagamos un PLC con PIC!!
Publicado por: MGLSOFT en 01 de Septiembre de 2003, 06:08:00
Ademas en el codigo enviado al downloader podria estar ya incluido el sistema operativo del PLC, evitando tener que enviarlo todo luego, y reservandonos la posibilidad de mantener intactos los derechos de autor respecto a los fuentes del firmware del PLC, no se olviden que hay un desarrollo previo de quien nos permite iniciar el tema....

Este es mas o menos el sistema empleado por la gente de Microladder, que luego te vende el micro con el codigo fuente protegido.
Título: RE: Hagamos un PLC con PIC!!
Publicado por: Sispic en 01 de Septiembre de 2003, 11:07:00

He conseguido el VB 5 y he puesto un ejemplo de cómo se utiliza, lo modificáis al gusto.
Lo he hecho lo más simple posible para no complicarlo.
La opción de cancelar no esta, creo que no es necesaria.
Título: RE: Hagamos un PLC con PIC!!
Publicado por: Sispic en 05 de Septiembre de 2003, 12:39:00
Y mejor todavía.

Cacharreando con visual b para ver si funcionamiento he conseguido pasar el código del downloader de pascal a basic , así tendréis un mejor control sobre el programador (personalizarlo para el proyecto).

Será mi primer programa y él ultimo, ya que no lo cambio por el delphi , casi me coge un ataque de histeria con él.

sisco
Título: RE: Hagamos un PLC con PIC!!
Publicado por: hexapodo en 05 de Septiembre de 2003, 22:25:00


hola,

je je,
pues a veces VB es un poco canzón, el problema es de raiz

bye

Título: RE: Hagamos un PLC con PIC!!
Publicado por: faselec1 en 06 de Septiembre de 2003, 11:56:00
Hola a todos.

En primer lugar, felicitaros por la genial idea y como la estais desarrollando. soy nuevo en este foro, y algunos archivos, como el  lenguaje ladder no he conseguido hacerlo funcionar. Bueno supongo que hago algo mal.

Como sabreis, ademas del lenguaje ladder, existen otros métodos de programación de PLC, y dado que trabajo habitualmente los mal llamados reles programables (Logo, Zelio, Arrray-tech, pharao), que en realidad son microPLC´s,  os pregunto si sería muy dificil desarrollar un lenguaje FBD (Diagramas de Bloques de funciones) para este PLc que se está desarrollando en este foro.  

Por otro lado, pregunto, dispongo de un PLC basado en el AT89S53, el cual hay que programarlo en ensamblador, basic o C. Se que es compatible con los micros de intel 8051 y que este no es el foro adecuado, pero necesitaria saber como podria hacerle un entorno de programacion ladder o FBD similar. Por si alguno quiere saber de este uPLC digital.....www.ibercomp.es

Muchas gracias por todo.

PD. dispongo de un diseño de PLC publicado por la revista Elektor en España, si alguno le interesa, que lo indique.

Paco
Título: RE: Hagamos un PLC con PIC!!
Publicado por: hexapodo en 06 de Septiembre de 2003, 14:21:00

hola faselec1,

La verdad es que en este momento no hemos pensado en otro tipo de programación para el PLC, pues el solo desarrollo de la parte del ladder ya supone un reto de cierta complejidad.
Depronto en un futuro.

Bye
Título: RE: Hagamos un PLC con PIC!!
Publicado por: MGLSOFT en 09 de Septiembre de 2003, 10:02:00
Hola Faselec1!!

El creador de la idea en la cual me base para poner la idea en el foro estuvo trabajando en ese mismo microPLC que comentas, basado en un 8051, por lo cual puedes consultar con el directamente, el tambien es Español.
Se trata de Juan Manuel Rodriguez.
juanmarod@ono.com

El puede comentarte de sus resultados.
No nos molesta que menciones otras marcas, de hecho este foro tiene espacio para los que no somos fanaticos de los PICs...no todos son perfectos...je..je..

En cuanto al proyecto de Elektor, ponlo aqui, hombre, asi podemos aprovechar para ver posibilidades nuevas o contrastar lo que vamos haciendo....

Gracias
Título: RE: Hagamos un PLC con PIC!!
Publicado por: Sispic en 09 de Septiembre de 2003, 13:15:00
Holas .
No se si teneis el tema de crear el hex solucionado .
Estoy con el visual y le estoy poniendo todas las funciones para que cree un .hex programando directamente con el basic .
Ejemplo :
Codigo:

Const PORTB = 6
" labels
Dim Main As Long
"vars
Dim P1 as byte , P2 as byte
P1 = 5
P2 = 6


" ************ Org 0  *********************
Goto_ (VarPtr(Main))         " vector inicio

Label_ (VarPtr(Main))        " inicio

clrf P1
addwf PORTB, 1
addwf 100, 0
andwf P2, 1
clrw

"***** fin ******************************
CreaHex ()



esto se compila perfectamente y crea un hex en memoria que puede ir directamente al programador o a un archivo en disco , sin necesidad de mpasm

cuando tenga todos las funciones hechas ya lo colgare y le hechais un vistazo haver si os puede servir o cogerle la idea , de paso aprendo el basic y el asm

saludos
Título: RE: Hagamos un PLC con PIC!!
Publicado por: MGLSOFT en 09 de Septiembre de 2003, 14:29:00
Me parece fantastico!!
Esto unido con lo que esta haciendo Hexapodo y con los macros que tenemos (asignando iconos de Hexapodo a los macros inserta el macro seleccionado en la lista a tu codigo), y con parte del codigo ya ingresado, estamos listos para generar el hex en memoria, sin pasar por ningun compilador, por lo tanto con esta arquitectura ya estariamos mejor respecto a conservar intactos los derechos de autor de Juanma.

Si no entiendes me explayo mas, pero me queda felicitarlos, creo que estamos muy cerca de darle en el clavo, asi como vamos....

MUY BUENOO!!!!
Título: RE: Hagamos un PLC con PIC!!
Publicado por: faselec1 en 09 de Septiembre de 2003, 14:35:00
Gracias por vuestras respuestas colaboradores. Intentaré contactar con Juan Manuel Rodriguez.

En cuanto al PLc de Elektor, deciros que está realizado con un Pic, y en lo antes posible, lo escaneo y lo cuelgo.

Por otro lado,  He bajado los ficheros escritos en visual basic, y aunque soy un gran inexperto en el, no ha an funcionado al hacerlos correr,  ya que me informa una ventanita que falta un fichero..OCX, ¿debo hacer correr primero el VB y desde allí  estos ficheros, como el basic de toda la vida?.

Muchas gracias. Y seguir con este proyecto!!!.  
Título: RE: Hagamos un PLC con PIC!!
Publicado por: MGLSOFT en 09 de Septiembre de 2003, 15:13:00
El control .ocx es un componente reutilizable con que cuenta VB.
Si falta es posible que sea a proposito o porque es nativo de VB.
Informanos del nombre que tira dentro del error y te diremos cual es el que falta entre esas opciones....
Título: RE: Hagamos un PLC con PIC!!
Publicado por: hexapodo en 10 de Septiembre de 2003, 01:34:00

hola a todos  

Esta semana que pasó no he podido trabajar en el software porque estaba en examenes en la universidad, pero ya estoy libre

Sispic: Exelente idea para no utilizar el Mpasm. la idea que se tenía en un principio era que el programa, por linea de comando, le digera al mpasm que generara el .Hex y luego teniendo el Hex grabarlo en el PLC.

El software que que estoy desarrollando genera una matriz de numeros que corresponden a cada una de la cuadricula del area de trabajo, así cada contacto tiene un número de identificación, al final solo es analizar la secuencia de números por filas para determinar  cada linea de programa y con esto generar al .hex, voy a pensar bien esta parte para que podamos "empatar" (juntar), la parte que estás desarrollando con la que yo estoy haciendo.

has trabajado programación orientada a objetos?
clases, instancias, herencia, ect?

Visual B. ofrece tambien una forma de crear clases para luego utilizarlas, esto hace el código mas entendible y mas fácil de corregir o actualizar.

dame un correo donde te pueda mandar un tutorial muy bueno que incluye esta parte de clases, coleccion de clases.....
el archivo es de 870kBytes.

Bye
Título: RE: Hagamos un PLC con PIC!!
Publicado por: MGLSOFT en 11 de Septiembre de 2003, 14:19:00
Hey, Hexapodo!!
Al instalarlo me pide el archivo .c01, el .c02, etcetera...
Faltan archivos??
Título: RE: Hagamos un PLC con PIC!!
Publicado por: hexapodo en 12 de Septiembre de 2003, 00:48:00

hola a todos,

Efectivamente faltan el .c01 y el .c02, no se que pasó, pensé que los había adjuntado, creo que ya estaba un poco  je je

aquí está la continuación:

Bye.
Título: RE: Hagamos un PLC con PIC!!
Publicado por: Tec_Claudio_Perez en 04 de Octubre de 2003, 21:01:00
Hola a todos:
Primero que nada quiero felicitarlos por el proyecto que estan desarrollando. Mi nombre es Claudio J. Pérez, tengo 28 años y soy estudiante de Ing. Informática. Vivo en Jujuy, Argentina.
El tema es que desde hace 6 meses que también estoy desarrollando un PLC basado en PIC, que denominé proyecto Argentum. Este será un producto comercial, pero de muy bajo costo.
Dentro de una semana, mas o menos, voy a subir una pagina web con informacion mas detallada sobre el mismo.
Para que se hagan una idea les comento lo mas importante, el objetivo es armar algo parecido a los controladores programables (o a veces llamados relays inteligentes):

-Zelio de Schneider-Electric.
-Zen de Omron.
-Picocontrollers de Allen-Bradley.
-Logo! de Siemens.

Ya que quiero que Argentum se pueda usar como herramienta educativa para aprender a programar PLCs industriales, debe cumplir ciertas características:
-Debe ser muy barato, accesible para cualquier estudiante.
-En lo posible debe ser compatible con el estandar IEC-1131, es decir programable en ladder, bloques de funciones lógicas y lista de instrucciones.
-Debe tener un puerto RS-485 para conocer los buses de campo.
-Debe soportar monitorización de parametros desde el editor.
-Debe disponer de una .OCX que permita comunicarse con el PLC desde cualquier lenguaje (Visual Basic, Visual C, Delphi) para realizar la monitorización desde nuestros propios programas. Similar a los sistema SCADA.

Argentum es similar al proyecto de este foro, pero con algunas diferencias:

En vez de usar un bootloader programé un intérprete. El programa del PLC se almacena en una memoria I2C externa (de esta forma no limito el tamaño del programa), aunque hace que el ciclo de scan sea mas lento ya que antes de ejecutar una instrucción se debe leer serialmente de la memoria. Sin embargo para la mayoría de los automatismos domésticos no se necesita mayor velocidad.

Para desarrollar el prototipo estoy usando un 16F873 y una memoria serial I2C 24LC64, que es la que tenía a mano. Pero para el producto final voy a usar un 16C73A, que es mas barato que la version flash.

El PLC tiene un Reloj de Tiempo Real que ya funciona.

El esquema de Entradas y Salidas es similar al elegido por Uds, pero con integrados CMOS de bajo consumo. También tiene un puerto RS232 para conectarse con la PC y modificar el programa.

Planeo hacer varios modelos con distintas cantidades de E/S y combinaciones de periféricos.

Actualmente el PLC se programa usando lista de instrucciones. Por ejemplo si quiero encender la salida Q1 cuando se active la entrada I1 o la I2 (Q1=I1 or I2) seria:

LD  I1
OR  I2
STA Q1

Estoy trabajando en el editor Ladder (ya tengo una versión beta que estará en el sitio en la sección download), justo ahora estoy en una rutina para que recorra el grafico del circuito y convierta todo en Lista de Instrucciones para poder enviarlas al PLC.

Cuando tenga el sitio on-line les envío la direccion, antes quiero terminar un pequeño tutorial del editor ladder, ya que la version beta no tiene, por el momento, archivo de ayuda

Estaré en contacto.
Título: RE: Hagamos un PLC con PIC!!
Publicado por: JOLUCI en 05 de Octubre de 2003, 13:30:00
Claudio Pérez,
quando sua pagina web estiver pronta, coloque aqui para vermos sua pagina .
Obrigado
Título: RE: Hagamos un PLC con PIC!!
Publicado por: MGLSOFT en 06 de Octubre de 2003, 06:22:00
Bravo Claudio!!
Veo que te animaste a poner tu experiencia aqui en el foro............
Esperamos con ansiedad tu publicacion, para ayudarnos mutuamente a salir adelante.
Título: RE: Hagamos un PLC con PIC!!
Publicado por: tutor_es en 13 de Octubre de 2003, 11:36:00
Todos los que estamos en algo similar esperamos tu pagina con verdadera ansiedad.
Título: RE: Hagamos un PLC con PIC!!
Publicado por: MGLSOFT en 04 de Noviembre de 2003, 14:41:00
Hey, muchachos!!!
Se han ido a algun lado??
Que paso con el software,? aun no han seguido con el tema?
o lo estan haciendo entre ustedes, por afuera del Post??
Si es asi diganlo, asi seguimos solos aqui, con gente que quiera participar....
Título: RE: Hagamos un PLC con PIC!!
Publicado por: hexapodo en 05 de Noviembre de 2003, 01:16:00
Hola,

Por mi parte no he podido avanzar, no he sacado el tiempo necesario para ello; quería presentar algo en una feria empresarial organizada por los de Administración que hay en mi universidad pero no tengo nada aun para mostrar.

En un mes salgo a vacaciones y me dedicaré tiempo completo al este proyecto, por ahora solo debo dedicarme a mis clases, pues en algunas voy colgado

Bye.
Título: RE: Hagamos un PLC con PIC!!
Publicado por: Sispic en 05 de Noviembre de 2003, 11:40:00
Yo ya termine el loader y el compilador basic , ahora es cuestión de seguir machacándole con el visual todas las funciones etc.  No os puedo ayudar ya que domino mejor el delphi  y con el VB5 casi me coje un ataque .

Pero mientras esperáis el proyecto de claudio he encontrado esto para ir entreteniendose
http://members1.chello.nl/~f.vdburgh/picbit/index.htm

Título: RE: Hagamos un PLC con PIC!!
Publicado por: MGLSOFT en 05 de Noviembre de 2003, 11:54:00
Lo tengo desde hace unos años, no me convence el hecho que utiliza un lenguaje grafico distinto a cualquiera de los PLC....
Título: RE: Hagamos un PLC con PIC!!
Publicado por: joe_nazgul en 25 de Febrero de 2004, 16:36:00
Por si les interesa, un amigo mio de la universidad, realizo como proyecto de tesis un emulador de PLC que funciona con el basic stamp y lo programas usando una TI-89, el titulo no lo recuerdo exactamente, pero pueden encontrar el archivo completo en la pagina de la biblioteca de mi universidad , http://www.biblioteca.ufm.edu.gt/infolib/bin/il30.dll/ILS32.Query.Typed?titulo=&autores=corpe%F1o&keys=&material=TESIS&idioma=&ilustraciones=

el titulo es Emulador de PLC, quiza puedan tomar ideas
Título: RE: Hagamos un PLC con PIC!!
Publicado por: MGLSOFT en 26 de Febrero de 2004, 06:00:00
Gracias !!
Lo tomaremos en cuenta.
Hoy Parallax ya cuenta con modulos PLC con sus PICs....
Título: RE: Hagamos un PLC con PIC!!
Publicado por: Tec_Claudio_Perez en 20 de Octubre de 2004, 08:48:00
Hola a todos,
La verdad que hace mucho que no retomo el proyecto del PLC. No se si saben pero hay una norma europea para que todos los PLCs se programen de la misma forma (por lo menos esa es la idea), que soporten los mismos lenguajes con sintaxis normalizada. La norma es la IEC-61131. Creo que Hexapodo estaba buscando informaciónb sobre esto.
En cambio los PLCs americanos y los japoneses (Allen Bradley y Mitsubishi por ejemplo) siguen su propias reglas.
Si la idea es hacer un PLC que sirva como entrenamiento sería bueno que soporte la mayor cantidad posible de lenguajes de programación.

Aquí hay un par de documentos que explican la norna IEC-61131 muy bien.

Estándares IEC 61131-3 e IEC 61499 [1ª parte: lenguajes gráficos]
http://www.aei3.com/p/fondoeditorialytematico/articles/353/soluciones/lastra/iec.pdf

Estándares IEC 61131-3 e IEC 61499 [2ª parte: lenguajes no gráficos]
http://www.aei3.com/p/fondoeditorialytematico/articles/355/soluciones/ieec.pdf

Téc. Claudio J. Pérez
Ciberar-Sistemas & Desarrollos
Jujuy-Argentina
Título: RE: Hagamos un PLC con PIC!!
Publicado por: MGLSOFT en 20 de Octubre de 2004, 09:19:00
Gracias Claudio !!
Yo no pude encontrarlas en su momento.
La I3E es un sitio pago, y no encontre a nadie que estuviera adherido.Sonrisa Gigante
Título: RE: Hagamos un PLC con PIC!!
Publicado por: Bacra2k en 04 de Marzo de 2005, 13:25:00
Para los que sigan interesdos en este tema, aqui les pongo un link que puede ser muy util, es un compilador en lenguage leadder para PIC16 y AVR

http://cq.cx/ladder.pl
Título: RE: Hagamos un PLC con PIC!!
Publicado por: arkanto1 en 09 de Marzo de 2005, 18:30:00
EL proyecto esta interesante porque no lo continuan
Título: RE: Hagamos un PLC con PIC!!
Publicado por: MGLSOFT en 17 de Marzo de 2005, 19:42:00
Cita:
Para los que sigan interesdos en este tema, aqui les pongo un link que puede ser muy util, es un compilador en lenguage leadder para PIC16 y AVR

http://cq.cx/ladder.pl[/cita]

Eso si que esta interesante !!Giño
Título: RE: Hagamos un PLC con PIC!!
Publicado por: pepes2 en 09 de Abril de 2005, 04:37:00
Hola a todos que paso con el proyecto acaso ya se termino y yo todabia no acabo de entender.
slds.
Título: RE: Hagamos un PLC con PIC!!
Publicado por: MGLSOFT en 20 de Abril de 2005, 07:13:00
No, no termino aun...
lo que pasa es que a veces no disponemos del tiempo y experiencias para hacer esto bien, alli la espera mejora el producto final.
Estamos tratando de darle forma a un metodo de programacion grafica desde PC, en el cual me declaro nulo, y los genios de esto aun no pueden dedicarle el tiempo necesario al tema.
Tenemos que tener paciencia un poco mas.

desde ya gracias GiñoGiño
Título: RE: Hagamos un PLC con PIC!!
Publicado por: MGLSOFT en 04 de Octubre de 2005, 13:12:00
Escrito originalmente por Bacra2k
Para los que sigan interesdos en este tema, aqui les pongo un link que puede ser muy util, es un compilador en lenguage leadder para PIC16 y AVR

http://cq.cx/ladder.pl




Bueno, muchachos, es para avisar que va por la version 0,5 y ha solucionado problemas varios este software.RebotadoRebotadoRebotadoRebotado

Voy a ir en este camino desarrollando un PLC virtual que funcione dentro del Proteus, asi es menos costoso para muchos.
De acuerdo ??

Mientras tanto esperamos a Sisco a ver si nos da una mano en la creacion del software necesario....
Sonrisa GiganteSonrisa GiganteSonrisa GiganteSonrisa Gigante
Título: RE: Hagamos un PLC con PIC!!
Publicado por: Sispic en 05 de Octubre de 2005, 14:45:00
Y que sabre yo de plc mi amigo Marcos loco

Título: RE: Hagamos un PLC con PIC!!
Publicado por: MGLSOFT en 07 de Octubre de 2005, 16:30:00
No sabras de PLC (eso esta por verse) pero sos un capo en el tema programacion directa de un PIC, ademas que sabes como enviar cada comando compilado al PIC, si miras unos cuantos post antes encontraras una idea genial tuya donde lo demuestras.
eso es la colaboracion que estoy solicitando tuya, si es que puedes y tienes ganas de ayudarnos...RebotadoRebotadoRebotadoRebotado

Luego el sistema operativo puede ser hecho en C, ahora ya sabemos un poco mas al respecto, y el software puede ayudarnos desde un entorno grafico a programar y luego compilar y ensamblar o dar una salida a lenguaje C.

Crees que es posible GiñoGiñoGiño

IdeaIdeaIdeaIdea
RollEyesRollEyesRollEyes
Título: RE: Hagamos un PLC con PIC!!
Publicado por: maunix en 18 de Noviembre de 2005, 05:29:00
Escrito originalmente por MGLSOFT
No sabras de PLC (eso esta por verse) pero sos un capo en el tema programacion directa de un PIC, ademas que sabes como enviar cada comando compilado al PIC, si miras unos cuantos post antes encontraras una idea genial tuya donde lo demuestras.
eso es la colaboracion que estoy solicitando tuya, si es que puedes y tienes ganas de ayudarnos...RebotadoRebotadoRebotadoRebotado

Luego el sistema operativo puede ser hecho en C, ahora ya sabemos un poco mas al respecto, y el software puede ayudarnos desde un entorno grafico a programar y luego compilar y ensamblar o dar una salida a lenguaje C.

Crees que es posible GiñoGiñoGiño

IdeaIdeaIdeaIdea
RollEyesRollEyesRollEyes


Hola, recine me incorporo a este link.

Quisiera comentar que me parece una idea interesante pero no nueva...

No quiero desilusionar a nadie con esto pero es lo primero que uno piensa cuando ve el precio de un PLC!

El tema es que para industrias muy menores, no hay problemas, pero para la industria propiamente dicha no se puede caer con un PLC en la mano hecho por uno mismo.  Directamente no te lo compran! así de facil...   Triste pero real

Veo que sos de Córdoba y yo también lo soy, y te digo que pocas pymes adquiriran un plc de marca desconocida si no confían en su resultado.

Lo crítico no es la lógica de la programación o enviar comandos (lo he hecho muchas veces), lo crítico es lograr la confiabilidad necesaria para que la industria lo acepte.  Entradas realmente inmunizadas, salidas realmente confiables, durabilidad!  Los plcs se utilizan muchas veces en procesos críticos donde si falla algo . se rompe algo mucho mas caro!!!

jejeje, ahora no cuento con mucho tiempo pero si podría ayudar con algunas sugerencias.

En cuanto al S.O. no me parece algo sencillo de hacer, y propongo arrancar directamente con un pic18 que tienen un buen core para compilar codigo C.

También sugiero que peguen un vistazo al picos18, no lo he utilizado pero sí he oido numerosos elogios en foros.

Título: RE: Hagamos un PLC con PIC!!
Publicado por: MGLSOFT en 18 de Noviembre de 2005, 12:59:00
Gracias por tus conceptos.
Te sugiero que leas todo el hilo del tema, esto lo haces mirando todas las paginas que componen el tema (para este tema o cualquier otro es igual).

Alli veras que no es intencion fabricar un PLC para el entorno industrial, sino hacer algo accesible para poder ingresar a los chicos al mundo de los micros y ademas que le pierdan el miedo a las "cajas negras" que son los PLCs.

Ademas busco algo que luego sea accesible y ellos puedan armarlo en forma sencilla tambien...

No vivo de los desarrollos, para mi caso es un hobby, por lo tanto puedo hacerlo y lo unico que pido es que quien pueda aportar en forma desinteresada a este proyecto lo haga.

Por el privado puedes contactarme. Un abrazo.
Título: RE: Hagamos un PLC con PIC!!
Publicado por: fuentesg en 05 de Enero de 2006, 22:48:00
Hola

Estoy evaluando el Microladder, esta muy bueno cuenta con un editor en Ladder bastante flexible y facil de usar, lo mejor de todo es que la base es un microcontrolador de Microchip el PIC16F877A con el firmware cargado para funcionar tal y como lo hace un PLC, pero con mas funciones porque las patillas son totalmente programables y cuenta ademas con 8 canales analogicos y lcd de 16 caracteres y 2 lineas.

Se los recomiendo en Mexico los venden en http://www.sbctecnologias.com/tienda.htm y hay informacion en http://www.control-digital.com

Saludos.
Andres.
Título: RE: Hagamos un PLC con PIC!!
Publicado por: MGLSOFT en 09 de Enero de 2006, 06:40:00
Considero que el Microladder es un excelente producto, muy bien diseñado para obtener una fuerte expansion en el mercado del diseño en escuelas, para ir entrando luego al ambiente industrial.
Lo que sucede es que busques la opcion que busques, siempre termina siendo caro para un ingreso masivo al area de los estudiantes, por lo menos en nuestro pais.
Este proyecto busca mejorar esta situacion, dejando opciones para el armado a pulmon del proyecto por quien asi lo necesite, asi que la orientacion es buscar el minimo costo al momento de implementarlo.
Sonrisa GiganteSonrisa GiganteSonrisa Gigante
Título: RE: Hagamos un PLC con PIC!!
Publicado por: fuentesg en 20 de Enero de 2006, 20:47:00
Si ese es un buen punto, pero considero que para un estudiante gastar unos 500 pesos SOLO en comprar el chip no es todavia prohibitivo, lo interesante en esto es diseñar la placa del PLC ya que el software del editor te lo puedes bajar gratis, tambien el scada en visualbasic. Hay ocasiones que si piensas en lo que uno gasta al ir al cine o a la disco, bien esta semana puedo utilizar ese dinero en comprar el chip, como te digo es una inversion pequeña realmente.

Saludos.
Andres
Título: Re: Hagamos un PLC con PIC!!
Publicado por: arthas02 en 11 de Mayo de 2006, 00:29:24
me parece interesante pero recien mi inicio tenia pensado acerlo
bueno espero leer toda suu informacion 8) 8) 8)
Título: Re: Hagamos un PLC con PIC!!
Publicado por: djdshg en 19 de Mayo de 2006, 11:58:45
Muchachos yo estoy haciendo un soft "LADDER"  en delphi. La unica diferencia es que es para un micro de motorola pero se puede adaptar perfectamente.. si quierien puedo pasarles una copia.. Saludos y suerte
Título: Re: Hagamos un PLC con PIC!!
Publicado por: MGLSOFT en 19 de Mayo de 2006, 12:09:42
Bienvenido sera todo aporte que hagas !!! :-/ :-/ :-/
Título: Re: Hagamos un PLC con PIC!!
Publicado por: robifaria en 19 de Mayo de 2006, 23:19:40
   Leí todos los mensajes de este tema que datan como de dos años atras y he notado que se ha puesto mucho entusiasmo y se nota que hay potencial para resolver este proyecto.

Se plantearon dos caminos a seguir en el proyecto, por un lado usar la solución comercial de microladder y por otro hacer algo mas asequible económicamente.

        Creo que si se pudiera realizar el hardware y el software del autómata aunque no se parezca a un Simatic o su software no corra en Guindows tiene muchisimo más valor este proyecto que algo que se compra se conecta y funciona. El precio sería mas competitivo para así llegar a mas personas y nos enriqueceriamos en conocimientos todos, esto último lo considero lo más importante ya que lo demás con dinero se soluciona.

         El corazón de este proyecto es la programación,  y ya lo teneis medio encaminado. Descartaron las macros pq consumian mucha memoria y hexa-podo hizo un programa que tiene muy buen aspecto, Sispic aportó lo suyo y se le vé muy buena disposición y MGLsoft de vez en cuando me hace reflexionar.

Si el software nos tiene los pelos de punta que se arme hasta donde se pueda luego podemos pedir ayuda en algun foro de programación que los hay a granel.

No sé en que fase ha quedado el proyecto pero me parece que lo principal es discutir que funcionalidades tendrá el hardware sin importar si será un 16F877 o 76 o 628 eso se verá después. Lo mismo con el software, se puede plantear como sería el  ideal pero desarrollandolo progresivamente sin agovios, y dentro de un par de años si así fuera ya implementaran la serie 18F.

Quizas se empiece con un programador convencional y luego se implemente el bootloader pero todo a su tiempo.

Con respecto a las entradas y salidas creo que habría que cubrir todas las variantes: optoacopladas , relé , transistor y triac

No os ofendais si no he mencionado a todos los que han participado en el proyecto, un fuerte apreton de manos y mucho exito.



Título: Re: Hagamos un PLC con PIC!!
Publicado por: Josef en 02 de Enero de 2007, 12:36:57
Hola
Hay aun personas interesadas en esto, yo he desarrollado una tarjeta PCB, con PIC16F877, claro que se puede usar un PIC18F452, con 8 entradas de optoacoplador , RTC, LCD, SALIDAS A 8 RELAYS, se puede programar el PIC en circuito, control de voltaje alto o bajo, salidas de los puertos,  bueno, si aun hay interesados les puedo poner el diagrama aqui.
Acerca de como programarlo o como ser de facil uso para los usuarios finales que no saben de electronica ni de programar un PIC, en eso no he avanzado, pero, como les digo si hay interes, simplemente respondan
JoseF
Título: Re: Hagamos un PLC con PIC!!
Publicado por: electrotacto en 02 de Enero de 2007, 13:06:09
hola que tal  Josef yo sigo interesado en el tema, aver que tienes para mostrar e intercambiamos experiencias con este tema.
Título: Re: Hagamos un PLC con PIC!!
Publicado por: Fer_TACA en 02 de Enero de 2007, 13:24:50
Hola amigos: Tambien he leido todos los post y si lo necesitan me ofrezco para colabora en lo que pueda. Sobre todo a la hora de realizar las pcbs, ese es mi fuerte.
Un saludo
Fermín
Título: Re: Hagamos un PLC con PIC!!
Publicado por: Josef en 03 de Enero de 2007, 14:02:44
Hola amigos, es la 4ta vez que intento enviar esta imagen, ojala se pueda ahora.
Saludos de Arequipa Peru
JoseF
Título: Re: Hagamos un PLC con PIC!!
Publicado por: MGLSOFT en 04 de Enero de 2007, 16:47:29
Me interesa como vuelve al tapete el tema!! :-/ :-/
Yo me estoy desocupando en esta epoca de un proyecto que me comia la cabeza, asi que podremos reflotarlo!!!

Gracias por los aportes, son muy buenos todos!! :-/ :-/
Título: Re: Hagamos un PLC con PIC!!
Publicado por: Azicuetano en 06 de Enero de 2007, 15:57:01
La verdad es que el diseño que propone el amigo Josef lo veo realmente bueno.

Yo ahora no es que esté con mucho tiempo libre, pero, si concretamos unas premisas comunes y las distintas partes del proyecto las dividimos tareas, me comprometo a hacer lo que me toque jeje  :mrgreen:


Un saludo desde Alicante.
Título: Re: Hagamos un PLC con PIC!!
Publicado por: Josef en 08 de Enero de 2007, 17:05:18
Las partes que propuse (que tiene el diagrama son:

-Ocho entradas de optoacoplador
-Ocho salidas de relay, 4 de un solo contacto, cuatro de contacto NO/NC, manejados por ULN2803
-Conector para teclado 4*4
-Memoria EEPROM
-RTC DS1307
-Conector para LCD alfanumerico
-Opcion para RS232 o RS485
-Monitor de voltaje
-Fuentes independientes para Microprocesador y Etapa de Relays
-Acceso a todos los puertos
-Acceso independiente para puertos A&E, para usarse como entradas analogas
- Entrada ICSP, para grabacion en circuito

Mi idea se inicio, cuando quize controlar todas las habitaciones de una casa "domotica", de alli que le puse conexion RS485, una de las tarjetas la usaria como master y las demas como esclavos, obviamente solo usaria las partes necesarias, que deben ir en la tarjeta para cada habitacion o lugar, ademas que el microprocesador que puedo usar es el PIC16F877 o mas potente, el PIC18F452, cuyos pines son compatibles.

Y como les dije, les envio una foto.......OTRA VEZ ERRORES, ME DICE: El directorio de uploads está lleno. Por favor intenta un archivo más pequeño y contacta al administrador. Pero el archivo no ocupa ni 100k....Lo intentare mas tarde
Atte JoseF
-
Título: Re: Hagamos un PLC con PIC!!
Publicado por: Josef en 08 de Enero de 2007, 17:12:41
Aun tengo el error de UPLOADS LLENO, Contacte con el administrador.......y la imagen es bien pequeña......
Espero poder hacerlo otro dia....
JoseF
Título: Re: Hagamos un PLC con PIC!!
Publicado por: Algec en 08 de Enero de 2007, 17:16:44
me apunto a colaborar si quereis
Decidme que hago
Título: Re: Hagamos un PLC con PIC!!
Publicado por: MGLSOFT en 08 de Enero de 2007, 17:20:18
Recien acabo de reportar este mismo error pero ocurrido en otro foro, intente poner un adjunto y no me dejo!!
Parece que se lleno el servidor !! :shock: :shock: :shock:
Título: Re: Hagamos un PLC con PIC!!
Publicado por: aitopes en 08 de Enero de 2007, 17:28:13
Josef, no puedes postear el esquema con un poco mas de resolucion? Hay cosas que no leo! :)
Título: Re: Hagamos un PLC con PIC!!
Publicado por: MGLSOFT en 08 de Enero de 2007, 17:32:50
Je..je.. Estuvo un dia intentando subirlo bajando la resolucion para que entre y vos le pedis que la aumente !! :mrgreen: :mrgreen: :mrgreen: :mrgreen:
Título: Re: Hagamos un PLC con PIC!!
Publicado por: aitopes en 09 de Enero de 2007, 08:19:45
Por eso la " :) "  ja ja ja!
Título: Re: Hagamos un PLC con PIC!!
Publicado por: Fer_TACA en 09 de Enero de 2007, 16:31:05
Hola josef,
aparte de la resolucion y lo poco que he podido ver, observo que hay muchos puntos para seleccionar distantas partes del circuito.
Esto en la realidad lo veo como no muy practico sobre todo si se pretende colocar todo el equipo dentro deuna caja o contenedor, dado que si quieres cambiar cualquier opcion te verias obligado a estar manipulando la tarjeta(s).
Tienes pensado algun otro metodo.
Fermin
Título: Re: Hagamos un PLC con PIC!!
Publicado por: MGLSOFT en 10 de Enero de 2007, 08:30:40
Coincido con esa apreciacion, creo que el equipo hay que insertarlo dentro de una caja con montaje para riel DIN, por lo tanto debemos diseñarlo definitivo y sin interconexiones, en todo caso hacer un bus donde conectar perifericos, en caso de utilizarlo en Domotica ese mismo bus seria el enlace entre el maestro y los esclavos... :P :P
Título: Re: Hagamos un PLC con PIC!!
Publicado por: QIQE en 10 de Enero de 2007, 10:07:58
hola estaba mirando el hilo y vi que vais a usar un ds1307 de rtc por que no mirais un ds3232, es en smd pero muy facil de usar los registros son =es que los del 1307 pero tiene una virtud que a mi me gustó muxo en su dia tiene integrado el oscilador, y esta calibrado por laser, con lo que tiene muy poco error,supongo que ahorra bastante sitio en la pcb

Título: Re: Hagamos un PLC con PIC!!
Publicado por: LordLafebre en 10 de Enero de 2007, 12:55:09
Hola:

Pinta bien ese ds3232 mas aun si lleva el oscilador integrado, ya que algunas veces se hace un lio conseguirlo, y tambien ahorra mucho espacio.  :mrgreen:
Título: Re: Hagamos un PLC con PIC!!
Publicado por: MGLSOFT en 10 de Enero de 2007, 16:03:39
Muy buen apunte GIGE !!
Aqui esta la data del RTC...
DS3232 (http://www.maxim-ic.com/quick_view2.cfm/qv_pk/4984)
Título: Re: Hagamos un PLC con PIC!!
Publicado por: ascii en 11 de Enero de 2007, 01:38:46
 :mrgreen: Lo mejor es que puedes pedirlo como sample  :D
Título: Re: Hagamos un PLC con PIC!!
Publicado por: Josef en 14 de Enero de 2007, 21:27:31
Es correcto amigos, gracias por las ideas, como que deberia ser para ponerlo en riel.
A ver que mejoras, mas le hago, lo que que pensaba yo era hacerlo algo mas comercial, es decir con dispositivos que sean faciles de ubicar en el mercado, tener una tarjeta en la que el usuario pueda armar en ella solo lo necesario, y lo demas obviarlo, y si no hubiera el circutio que el usuario necesita en la placa, pues, podria armarse uno y acoplarlo a algun puerto, les incluyo una foto ensamblado para que aprecien mejor la idea.
JoseF
Si hay mas ideas, obviamente siempre son bienvenidas, respecto a la resolucion del circuito, al este grande, ocupa mucho espacio, y aqui solo puedo incluir 300k, tratare de ver la forma de insertarlo por otro lado.

JoseF
Título: Re: Hagamos un PLC con PIC!!
Publicado por: Nocturno en 27 de Enero de 2007, 05:54:17
Ya he recibido mis primeros DS3232, ¡qué buena pinta tienen!
Título: Re: Hagamos un PLC con PIC!!
Publicado por: MGLSOFT en 05 de Febrero de 2007, 19:28:58
Maxim no manda a Argentina!! :shock: :shock:
Que pena!! :? :?
Título: Re: Hagamos un PLC con PIC!!
Publicado por: hackimi en 27 de Abril de 2007, 00:15:47
holas bueno viendo el tema de realizar un plc con pic me parece interesante
estoy desarrollando el software en vb como lo estubo realizando hexapodo bueno parti de cero
por lo cual recien esta en desarrollo jejjee :D ya pondre las imagenes del programa en si
espero poder terminarlo pronto :-) :-)
Título: Re: Hagamos un PLC con PIC!!
Publicado por: MGLSOFT en 27 de Abril de 2007, 08:08:15
Barbaro!! :-/ :-/ :-/
Yo aun no retomo el tema pero dandole vueltas a la cosa creo o mejor dicho estoy convencido que el firmware del PIC lo hare en C, que da un nivel mas alto de programacion y permite usar funciones en vez de macros...
Título: Re: Hagamos un PLC con PIC!!
Publicado por: ByteMan en 06 de Mayo de 2007, 22:33:43
Hi to all, sorry for my language but I can't speak/write in Spanish.
First of all I've see this project ad this one meet 100% with my currently design, build a PLC based on PIC 16F877 device and with a ladder graphical user interface. I'm a electronic engineer with a deep passion for all about electronics  :-)

At now I'm collecting some idea in order to make all the work in a organized way, I've see many good people that is working on the graphical interface, also, I'd to like to code for myself this gui (just to learn and pratice more on coding) and I'm thinking to code it in VB to make the coding more faster than writing all in VC++.

At this point, if I can, I'd like to know the approach to this problem, at first my think is build a intermediate language between the graphical GUI and the final hex code.
In this way I've to define the component and module that has to be implemented, the IL file should be equal from every GUI interface developed in this way we can meet on a fixed point before take further step into the project, but this is just a my idea, don't care, just to speak about this design.  :mrgreen:

After that further stage is build the hex code. About this the ldmicro software has a in-build hex generator, at first step my think was to make a engine in asm and then append to it the translated IL -> asm PLC code, after that call the MPASM compiler in order to build the final code. This idea can have some advantage:
1. every time Microchip improve MPLAB may be some improvement also into the MPASM compiler
2. more flexible into the target processor code generation (now I'm looking on the PIC16F877 but may be simple translate the engine for other big processor).

But at now my goal will be code the graphical interface in VB60, then if someone have some idea we can share it and work on same platform.

Cheers
ByteMan

Título: Re: RE: Hagamos un PLC con PIC!!
Publicado por: ByteMan en 06 de Mayo de 2007, 22:37:38
Hola a todos,
La verdad que hace mucho que no retomo el proyecto del PLC. No se si saben pero hay una norma europea para que todos los PLCs se programen de la misma forma (por lo menos esa es la idea), que soporten los mismos lenguajes con sintaxis normalizada. La norma es la IEC-61131. Creo que Hexapodo estaba buscando informaciónb sobre esto.
En cambio los PLCs americanos y los japoneses (Allen Bradley y Mitsubishi por ejemplo) siguen su propias reglas.
Si la idea es hacer un PLC que sirva como entrenamiento sería bueno que soporte la mayor cantidad posible de lenguajes de programación.

Aquí hay un par de documentos que explican la norna IEC-61131 muy bien.

Estándares IEC 61131-3 e IEC 61499 [1ª parte: lenguajes gráficos]
<a href="http://www.aei3.com/p/fondoeditorialytematico/articles/353/soluciones/lastra/iec.pdf" target="_blank">http://www.aei3.com/p/fondoeditorialytematico/articles/353/soluciones/lastra/iec.pdf[/url]

Estándares IEC 61131-3 e IEC 61499 [2ª parte: lenguajes no gráficos]
<a href="http://www.aei3.com/p/fondoeditorialytematico/articles/355/soluciones/ieec.pdf" target="_blank">http://www.aei3.com/p/fondoeditorialytematico/articles/355/soluciones/ieec.pdf[/url]

Téc. Claudio J. Pérez
Ciberar-Sistemas & Desarrollos
Jujuy-Argentina

I'm thank you for the info, but the link isn't working for me, could you please supply the paper o RapidShare or similar file sharing way?

Thanks in advance
ByteMan
Título: Re: Hagamos un PLC con PIC!!
Publicado por: ByteMan en 06 de Mayo de 2007, 22:44:17
holas bueno viendo el tema de realizar un plc con pic me parece interesante
estoy desarrollando el software en vb como lo estubo realizando hexapodo bueno parti de cero
por lo cual recien esta en desarrollo jejjee :D ya pondre las imagenes del programa en si
espero poder terminarlo pronto :-) :-)


Hi, do you've some progress in this stuff?

Cheers
ByteMan
Título: Re: Hagamos un PLC con PIC!!
Publicado por: MGLSOFT en 07 de Mayo de 2007, 08:37:01
Aqui estan los documentos que tengo sobre normas IEC para PLC. :mrgreen: :mrgreen: :mrgreen:

http://rapidshare.com/files/29965766/IEC.pdf (http://rapidshare.com/files/29965766/IEC.pdf)

http://rapidshare.com/files/29966085/IEEC.pdf (http://rapidshare.com/files/29966085/IEEC.pdf)

http://rapidshare.com/files/29966143/Intro_IEC_61131-3_Spanish.doc (http://rapidshare.com/files/29966143/Intro_IEC_61131-3_Spanish.doc)

Espero sirvan para todos!!

Bienvenido al foro ByteMan !!
 :-/ :-/ :-/ :-/
Título: Re: Hagamos un PLC con PIC!!
Publicado por: ByteMan en 07 de Mayo de 2007, 17:39:25
Aqui estan los documentos que tengo sobre normas IEC para PLC. :mrgreen: :mrgreen: :mrgreen:

http://rapidshare.com/files/29965766/IEC.pdf (http://rapidshare.com/files/29965766/IEC.pdf)

http://rapidshare.com/files/29966085/IEEC.pdf (http://rapidshare.com/files/29966085/IEEC.pdf)

http://rapidshare.com/files/29966143/Intro_IEC_61131-3_Spanish.doc (http://rapidshare.com/files/29966143/Intro_IEC_61131-3_Spanish.doc)

Espero sirvan para todos!!

Bienvenido al foro ByteMan !!
 :-/ :-/ :-/ :-/

Thanks a lot!!!

Cheers
Título: Re: Hagamos un PLC con PIC!!
Publicado por: hackimi en 15 de Mayo de 2007, 21:48:23
disculpen por no responder rapido
lo de la programacion en vb lo deje colgado por falta de tiempo ya que la universidad no me deja mucho para realizar pruebas y avances pero poco a poco estare avanzando la interfaz y la programacion
lo que estoy realizando es enlazar mi programa con el mplab para poder compilar el hex del pic y facilitarme las cosas jejeje :D bueno soy nuevo en esto de programar pic con lenguajes de alto nivel para realizar funciones por lo cual lo estoy desarrollando con macros me estoy guiando de los macros realizador por Juan Manuel Rodríguez
que los tiene en su pagina pero cambiandolos para el pic 16f877  eso es por pronto


gracias a MGLSOFT por la informacion la estare revisando

Título: Re: Hagamos un PLC con PIC!!
Publicado por: cverdes en 21 de Noviembre de 2007, 15:41:10
Gente,

Yo estoy desarrollando una plataforma de desarrollo tipo PLC (IL, Ladder, Graphset y Lenguaje estructurado) con la plataforma Explorer 16, con el PIC24 copiando las herramientas del Twido (un PLC de Schneider)

Mi enfoque es distinto al planteado. Estoy desarrollando un compilador de IL a lenguaje C.
Es mucho más potente que la herramienta MicroLadder y las posibles macros en Assembler.

Ya he desarrollado el 80% de la gramática en la herramienta GOLD (http://www.devincook.com/goldparser/) . Ayer recibí el Explorer 16 que compré en EEUU y comenzaré con la parte del Firmware sobre el que corra el ANSI C generado por el cross compiller. Adjunto la versión 0.1 de la gramática. La estoy liberando bajo una licencia Creative Commons Atribución NoComercial CompartirDerivadasIgual 2.5-Argentina (http://creativecommons.org/licenses/by-nc-sa/2.5/ar/).

La v1.0 tiene completo los items explicados en Bienvenidos\Número de serie del software Twido\Descripción de instrucciones y funciones \Instrucciones básicas del archivo de Help.

A alguien le interesa desarrollar en paralelo el Firmware para la familia PIC16 y PIC18?

Las herramientas las estoy haciendo en Delphi.
Título: Re: Hagamos un PLC con PIC!!
Publicado por: MGLSOFT en 21 de Noviembre de 2007, 16:22:55
La verdad es sorprendente!!
Al menos a mi dejame digerir un poco tanta informacion junta!! :mrgreen: :mrgreen:
Creo que esta muy bueno lo tuyo, y mas que a nadie (soy quien creo este hilo) me interesa llegar a terminar este proyecto...

Creo que te queda claro que sera abierto totalmente, no??

Si es asi (descuento que asi lo has interpretado, por las herramientas que utilizas) soy el primero en suscribirme a continuar el proyecto en ese rumbo, ya que parece muy interesante.

De Delphi no se ni J, pero se de muchos por aqui que nos daran una gran mano!! :mrgreen:

bajo la herramienta GOLD y vamos viendo...
Ya estamos casi listos para incorporarle en BUS CAN, y mas adelante abrir el canal en CanOpen, así que creo puede quedar algo muy interesante!!

Gracias por compartir lo tuyo aqui...

La seguimos...
Título: Re: Hagamos un PLC con PIC!!
Publicado por: MGLSOFT en 21 de Noviembre de 2007, 16:29:23
Que partes debo bajar de GOLD??
Es impresionante todo lo que hay, y no tengo idea que deberia bajar para usarlo y poder interpretar tu trabajo, para al menos ir poniendome a tono con lo que ya tienes desarrollado... :mrgreen:
Título: Re: Hagamos un PLC con PIC!!
Publicado por: cverdes en 29 de Noviembre de 2007, 13:40:19
Hola MGLSOFT,

Basicamente tenés que bajar el Grammar Parser Builder (http://www.devincook.com/goldparser/builder/download/gold-parser-builder.zip) y te recomiendo la ayuda off line (http://www.devincook.com/goldparser/doc/doc-builder.zip)

Con eso podrías juegar con la gramática que baje. Luego para producir el "compilador" tenés que bajar un template del lenguaje con el que querés desarrollar.

Para conocer al Twido podés bajar el Twido Swite (http://www.schneider-electric.com.ar/recursos/software.asp?id_inicial=11) que tiene un archivo completo de ayuda.

Estoy totalmente de acuerdo que sea un desarrollo abierto.

Disculpá que tardé en conestar, pero pensé que me iba a llegar un mail cuando alguien me contestara. Entre por curiosidad a ver como seguía la lista.

Me parece que para compartir el proyecto se complica con una lista de correos en este foro. ¿Tenés alguna sugerencia? ¿Por ejemplo podríamos trabajar con documentos compartidos en Google?

Me gustaría tomar contacto directo con vos (y los que estén interesados) coordinando algún chateo abierto. Yo trabajo hasta las 19hs aprox y luego podrías coordinar para chatear un día para intercambiar ideas ¿Te parece?

C.
Título: Re: Hagamos un PLC con PIC!!
Publicado por: MGLSOFT en 29 de Noviembre de 2007, 14:36:59
Citar
Basicamente tenés que bajar el Grammar Parser Builder (http://www.devincook.com/goldparser/builder/download/gold-parser-builder.zip) y te recomiendo la ayuda off line (http://www.devincook.com/goldparser/doc/doc-builder.zip)

Con eso podrías juegar con la gramática que baje. Luego para producir el "compilador" tenés que bajar un template del lenguaje con el que querés desarrollar.


Esto lo hago en un periquete!!
Hoy mismo!! :mrgreen:

Citar
Para conocer al Twido podés bajar el Twido Swite (http://www.schneider-electric.com.ar/recursos/software.asp?id_inicial=11) que tiene un archivo completo de ayuda.


Hoy lo bajo, tengo una version demasiado vieja... :mrgreen:

Citar
Me parece que para compartir el proyecto se complica con una lista de correos en este foro. ¿Tenés alguna sugerencia? ¿Por ejemplo podríamos trabajar con documentos compartidos en Google?

Me gustaría tomar contacto directo con vos (y los que estén interesados) coordinando algún chateo abierto. Yo trabajo hasta las 19hs aprox y luego podrías coordinar para chatear un día para intercambiar ideas ¿Te parece?

Es posible que se haga así, solo debemos actualizar el hilo cada tanto, y yo me ocuparia de eso, aunque se perdería la participación de otros muchos... y la tuya, es para charlarlo.
Lee el privado del foro y alli te paso mis datos.... :mrgreen:
Título: Re: Hagamos un PLC con PIC!!
Publicado por: cverdes en 29 de Noviembre de 2007, 15:03:24
Disculpa, como se accede al privado del foro?
Título: Re: Hagamos un PLC con PIC!!
Publicado por: MGLSOFT en 29 de Noviembre de 2007, 15:11:04
Disculpa, como se accede al privado del foro?

Cuando configuraste tu cuenta automaticamente accediste a un sistema de mensajes del foro.
Cuando vuelvas a entrar a la pagina deberia avisarte que tenes un nuevo mensaje y ofrecerte abrirlo en la misma instancia del navegador o en otra aparte.
Para saber cuantos mensajes tenes en el tope de la pagina actual, al lado de tu Nick en el foro, aparece cuantos mensajes tenes y cuantos no han sido leidos...
Si clickeas sobre el numero de mensajes te lleva a los mensajes privados... :mrgreen: :mrgreen:
Título: Re: Hagamos un PLC con PIC!!
Publicado por: cverdes en 30 de Noviembre de 2007, 07:28:20
Marcos,

Ayer comencé a preparar un tutorial de para hacer compilador de las primeras 4 ó 5 instrucciones básicas de IL (PLC Instruction Lenaguaje) a lenguaje ANSI C para microcontroladores.

En base a tu consulta me di cuenta que tenía que compartir el camino que he recorrido para que podamos seguir caminando juntos.

Este fin de semana me voy a descanzar a Merlo - San Luis, por lo que supongo que lo tendré listo entre lunes ó martes.

La pregunta que me surge, es que lenguaje usar para el compilador (sobre la base del template generado por GOLD), vos intestaste el VB, pero lo que no me gusta de ese lenguaje es que en su versión independiente (sin necesidad del Framework .NET) ya está descontinuado por Microsoft. Y no me gusta tener que instalar el Framework .NET para correr en un futuro el programa de desarrollo y debug del PLC, ya que puede tener que correr en computadoras viejitas. Por ejemplo, en el trabajo al Twido lo debugeamos en el banco de prueba con una laptop de 64Mb de hace 5 años.

Por eso proponía el Delphi, pero si hago el tutorial (y desarrollo) en Delphi no vamos a poder compartir una herramienta común.

¿En que lenguaje me sugerís que desarrolle el Tutorial? Otra alternativa podría hacerlo en VC++. Supongo que todos los que intentamos trabajar con micros mas o menos deberíamos entender el C. ¿Que te parece?

¿La contra de hacer un software de PC en C es que luego se puede complicar para implementar la parte gráfica e interfaz de usuario... con respecto a VB o Delphi... pero creo que se justifica si es una plataforma en que todos podamos trabajar

¿Sugerencias?

C.
Título: Re: Hagamos un PLC con PIC!!
Publicado por: MGLSOFT en 30 de Noviembre de 2007, 08:16:53
Bueno, el VC++ lo tengo, estoy mas o menos a mitad de camino en el tema programación, asi que malo por malo, siempre que seas el guía, es lo mismo para mí.
Además aquí en el foro hay muchos que podrán ayudarnos a salir del pozo si nos estancamos!!
Adelante entonces!!

Y que descanses en San Luis!!
de donde venís, desde Capital??

Yo estoy sobre ruta 7... si gustas pasar noqueamos alguna birra... :mrgreen:
Título: Re: Hagamos un PLC con PIC!!
Publicado por: cverdes en 11 de Diciembre de 2007, 21:07:18
Hola Marcos,

Estoy con muchísimo laburo y además enduve enfermo (no se si tendrá algo que ver...  :(). Continuo con mucho laburo, por lo que tal vez sea lenta mi participación.

Te estoy enviando por email un zip con un projecto en VB6.0 de ejemplo (muy básico) y un documento Word con un mini tutorial explicando lo básico, muy básico. La idea es transmitir el concepto de lo que se puede hacer.

No lo pude postear porque me daba error, tal vez sea muy grande.

Quedo a tu disposición para charlar sobre el tema.

Título: Re: Hagamos un PLC con PIC!!
Publicado por: MGLSOFT en 11 de Diciembre de 2007, 23:04:03
Me quito el sombrero ante vos, Cesar!!! :lol: :lol:
Que nivel de programación!!! :shock: :shock:

Muy bueno lo tuyo!!
Gracias por compartirlo!! :mrgreen:
Título: Re: Hagamos un PLC con PIC!!
Publicado por: Nocturno en 12 de Diciembre de 2007, 02:00:05
¿Os importaría subirlo a algún servidor de ficheros?
Título: Re: Hagamos un PLC con PIC!!
Publicado por: MGLSOFT en 12 de Diciembre de 2007, 23:30:43
¿Os importaría subirlo a algún servidor de ficheros?

Apenas este en casa yo lo hago...
Título: Re: RE: Hagamos un PLC con PIC!!
Publicado por: germantdf en 13 de Diciembre de 2007, 08:46:22
hola que tal soy nevo en e lForo y me precio muy interesante es LOG.
Esta muy interesante.. y espero poder aportar algo en especil por los comentarios que de este mensaje en especial , es muy cierto lo que pone como contras, pero tambien quiero contar que como experiencia personal he visto soluciones AD HOC  (hechas para tal fin) en la industria, con aplicaciones de uso casero. PAsa que bueno uno tiene que estar en el momento justo para que le pidan aplciar algo que una empresa grande no lo sabe hacer o no lo puede implementar porque no tiene un sector que haga esa parte, osea que la terceriza para encontrar una solucion y es ahi don de no aparece nada de Scheneider, Siemens y otros...

Por el hecho de las EMI e interferencias, es una muy buena idea que la fuente de alimentacion sea multiple y abre un abanico en una parte para Logica y el resto para salidas y entradas. Una forma de soluconar esto, si bien da un costo mayor es que tanto In y Out sean optoacopladas.

La parte del CPU, osea el PIC deberia estar encerrado en una especie de Jaula de Faraday. DOy el siguiente ejemplo, si vos estas con un HT (Handy) de 5 Watt y pulsas cerca de esa placa, alguna condicion se va a afectar. Y ojo que eso pasa hasta con equipos de marca reconocida, por eso tambien muchos PLC Criticos son colocados dentro de un gabinete metalico, con un vidrio como visor y el mismo vidrio le pasan hilos de oro para evitar abrir una ventana para las interrecencias Radio electricas. Piensen que en muchos casos un PLC esta asociado a una telemetria, osea un equipo que va a remotizar un canal RS 232 o 422 o 485 "N" kilometros, si existiera un problema con ese equipo de radio la RF poria estar haciend oesrtagos dentro del PLC, este tipo de problemas los solucionan con buffer que colocan a las salidas y entradas en los casos que realmente sean pertinenetes.
En el caso de procesos "recontracriticos!!!" una accion se debe dar por la superposicion de varios eventos que denotan la si o si accion de sacrificar algo para alvar otra cosa, con lo que seguro que en el caso de 8 entradas, 8 salidas es poco lo que podremos asegurar e neste aspecto.
Para el caso de las fuentes de alimentacion es normal que los PLC medianos a grande cuentes con 2 fuentes, que estanen paralelo con l oque si una falla sigue con la otra y en casos extremos de estar en configuracion 1+0 osa que una fiente fallo liberan procesos criticos de su gestion y los pasan a un modulo que este en 1+1 y solo quedan con los que no serian "tan importantes".. PEro esto es otro tema bastante pero bastante mas complejo. Porque por ejemplo en un lugar donde hay un sistema de alivio de cargas a una generacion electrica, el PLC no puede parar nunca porque aunque les parezca mentira si no hay generacion no hay PLC (Osea el hecho de la Gallina y el Huevo) y esto lo solucionan con 2 CPU de PLC y solo estas trabajan a la par de otra que realiza procesos criticos escenciales Osea que si una CPU muere, la otra la reemplaza y en el caso que el problema pasa a mayores, el sistema de control que da en una funciona  manual que solo mantiene los escenciales hasta tanto se pueda localizar la falla y re arrancar todo el sistema. La verdad que es interesanticimo estos temas para el estudio, pero siguiendo con el post y no yendome por las ramas

Power Supply separada, la logica de las entradas y salidas
PIC (aislado electricamente y radioelectricamente) idem si vana  poner display de LCD
Entrdas y salidas Optoacopladas
Salidas de gran potencia y no inductivas deben ir transistorizadas o con un TIP
Las de gran potencia un rele que a su vez debe disparar afuera un contactor (si es critico debe llevar un enclavamiento mecanico y electrico, caso del motor de arranque de un gurpo generador)
Comunicacion aunque estemos en el 2007 para el 2008 todos los equipos adoptan el puerto serial en el caso mas critico la programacion de urgencia se hace con un hyperterminal

y por lo que estuve viendo en general de la tendencia de mercado es que la palca sea multiproposito a una automatizacion ya que muchas veces son PLC dedicados Ej lavarropas, tanque de agua portones, logicas de control de una caldeta y etc.. que manejan hasta un maximo de 8 entradas y 6 salidas

Espero haber contribuido en algo y quedo antento a cualquier comentario

Me llamo German y soy de Rio Grande Tierra del Fuego



<span class="texto_mini">Escrito originalmente por MGLSOFT</span>
No sabras de PLC (eso esta por verse) pero sos un capo en el tema programacion directa de un PIC, ademas que sabes como enviar cada comando compilado al PIC, si miras unos cuantos post antes encontraras una idea genial tuya donde lo demuestras
.
eso es la colaboracion que estoy solicitando tuya, si es que puedes y tienes ganas de ayudarnos...<img   src="http://pics.miarroba.com/caretos/bounce.gif" alt="Rebotado" title="Rebotado" /><img   src="http://pics.miarroba.com/caretos/bounce.gif" alt="Rebotado" title="Rebotado" /><img   src="http://pics.miarroba.com/caretos/bounce.gif" alt="Rebotado" title="Rebotado" /><img   src="http://pics.miarroba.com/caretos/bounce.gif" alt="Rebotado" title="Rebotado" />

Luego el sistema operativo puede ser hecho en C, ahora ya sabemos un poco mas al respecto, y el software puede ayudarnos desde un entorno grafico a programar y luego compilar y ensamblar o dar una salida a lenguaje C.

Crees que es posible <img   src="http://pics.miarroba.com/caretos/wink.gif" alt="Giño" title="Giño" /><img   src="http://pics.miarroba.com/caretos/wink.gif" alt="Giño" title="Giño" /><img   src="http://pics.miarroba.com/caretos/wink.gif" alt="Giño" title="Giño" />

<img   src="http://pics.miarroba.com/caretos/idee.gif" alt="Idea" title="Idea" /><img   src="http://pics.miarroba.com/caretos/idee.gif" alt="Idea" title="Idea" /><img   src="http://pics.miarroba.com/caretos/idee.gif" alt="Idea" title="Idea" /><img   src="http://pics.miarroba.com/caretos/idee.gif" alt="Idea" title="Idea" />
<img   src="http://pics.miarroba.com/caretos/rolleyes.gif" alt="RollEyes" title="RollEyes" /><img   src="http://pics.miarroba.com/caretos/rolleyes.gif" alt="RollEyes" title="RollEyes" /><img   src="http://pics.miarroba.com/caretos/rolleyes.gif" alt="RollEyes" title="RollEyes" />


Hola, recine me incorporo a este link.

Quisiera comentar que me parece una idea interesante pero no nueva...

No quiero desilusionar a nadie con esto pero es lo primero que uno piensa cuando ve el precio de un PLC!

El tema es que para industrias muy menores, no hay problemas, pero para la industria propiamente dicha no se puede caer con un PLC en la mano hecho por uno mismo.  Directamente no te lo compran! así de facil...   Triste pero real

Veo que sos de Córdoba y yo también lo soy, y te digo que pocas pymes adquiriran un plc de marca desconocida si no confían en su resultado.

Lo crítico no es la lógica de la programación o enviar comandos (lo he hecho muchas veces), lo crítico es lograr la confiabilidad necesaria para que la industria lo acepte.  Entradas realmente inmunizadas, salidas realmente confiables, durabilidad!  Los plcs se utilizan muchas veces en procesos críticos donde si falla algo . se rompe algo mucho mas caro!!!

jejeje, ahora no cuento con mucho tiempo pero si podría ayudar con algunas sugerencias.

En cuanto al S.O. no me parece algo sencillo de hacer, y propongo arrancar directamente con un pic18 que tienen un buen core para compilar codigo C.

También sugiero que peguen un vistazo al picos18, no lo he utilizado pero sí he oido numerosos elogios en foros.


Título: Re: Hagamos un PLC con PIC!!
Publicado por: cverdes en 15 de Diciembre de 2007, 09:03:39
Me parece que alquien dijo algo similar sobre un proyecto sobre el cual estaba trabajando un tal Linus Toward... y pensar de eso hoy es uno de los sistemas más confiables del mundo.  :?

Considero que hay muchas productos (no extrictamente PLC industriales), como por ejemplo controladores de máquinas especiales para cuales la posibilidad de ser programados en Ladder/Grafset/etc, por el cliente final (el fabricante de la máquina, el OEM) sería un valor agregado importantísimo ya que le permite diferenciarse de su competencia y customizar el producto con su propio know how.

Es como ponerle un lenguaje de script a un microcontrolador... las funciones de bajo nivel se programan en C y encerradas en una librería, pero el resto, de alto nivel, en lenguajes de PLC, para que cada OEM pueda customizar su producto y diferenciarse de la competencia.

Logro explicar mi idea?
Título: Re: Hagamos un PLC con PIC!!
Publicado por: germantdf en 15 de Diciembre de 2007, 19:05:18
La verdad no te termine de entender la idea. Pero bueno aprotaba mi experiencia
Yo trabajo mucho con Logo y con los OEM de Logo

Saludos
Título: Re: Hagamos un PLC con PIC!!
Publicado por: cverdes en 17 de Diciembre de 2007, 08:55:45
German,

Lo he intentado explicar, y lo que justificaría el desarrollo del que estamos hablando, es que a veces un PLC comercial no se ajusta extrictamente a las necesidades, o es caro comparando con un desarrollo a medida, especialmente para un OEM (es decir un fabricante de una máquina).

Es decir, si el OEM decide, o necesita un desarrollo a medida, creo que estamos haciendo un aporte a la humanidad ofrecer una plataforma abierta que permita customizar las funciones embebidas con herramientas tipo PLC (LADDER, Graphset, etc).

A su vez, existiendo esta plataforma de software (la cual va a ser portable a varios micros) tal vez aparezcan proveedores de bloques de hardware que se puedan programar con esta herramienta, simplificando para OEM que decide, o necesita un desarrollo a medida su desarrollo a la complejidad de un PLC estandard.

C.
Título: MACRO PLC - Economico
Publicado por: skiel25 en 18 de Enero de 2008, 23:09:19
POST EDITADO: En este foro no se permiten actividades comerciales......
Título: Re: Hagamos un PLC con PIC!!
Publicado por: MGLSOFT en 19 de Enero de 2008, 08:10:20
Bueno, ni me dejaron editarlo a mi, je..je.. :lol: :lol:

skiel25:
este proyecto si miras el primer post de la cadena, veras que nace y se conserva como GRATUITO, tal vez por eso avanza lento, pero veras que al fin asi sera!!

Espero que no vuelvas a las andadas con tu propaganda, asi no tenemos que poner links en tu pagina web !! :mrgreen: :mrgreen:
Título: Re: Hagamos un PLC con PIC!!
Publicado por: skiel25 en 19 de Enero de 2008, 14:52:40
Mira MGLSOFT flojo de parte de ustedes lo que hicieron.Mi unica intencion era colaborar y que puedan utilizar un simulador para ir probandolo. Alla ustedes. Perdon a todos.
skiel25
Título: Re: Hagamos un PLC con PIC!!
Publicado por: Meta en 20 de Enero de 2008, 15:27:29
Quizás esto ayude algo.

https://upcommons.upc.edu/pfc/bitstream/2099.1/3760/1/54360-1.pdf
Título: Re: Hagamos un PLC con PIC!!
Publicado por: poseidon20 en 21 de Enero de 2008, 02:17:08
Mira MGLSOFT flojo de parte de ustedes lo que hicieron.Mi unica intencion era colaborar y que puedan utilizar un simulador para ir probandolo. Alla ustedes. Perdon a todos.
skiel25

Mi estimado skiel25, parece que no te has tomado la molestia de pasarte por las reglas del foro, si las lees comprenderas la accion que tomo un moderador. El solo hizo lo que debia hacer, y para eso es moderador, unos globales y otros locales

Bueno, ni me dejaron editarlo a mi, je..je.. :lol: :lol:

Se quedo dormido señor MGLSOFT,  :D :D :D, sera la edad o el trabajo? :?
Título: compilador ladder para pics FREE GPL3
Publicado por: skiel25 en 21 de Enero de 2008, 10:49:19
 :-/espero que esto les acelere el desarrollo:

 Es un compilador de ladder para pic y avr.

cita:
"Ladder Logic for PIC and AVR
         

(also in: Italiano, Deutsch, Português; thanks to G. Mariani, H. U. Noell, D. Corteletti)

Quick summary: I wrote a compiler that starts with a ladder diagram and generates native PIC16 or AVR code. Features include:

    * digital inputs and outputs
    * timers (TON, TOF, RTO)
    * counters (CTU, CTD, ‘circular counters’ for use like a sequencer)
    * analog inputs, analog (PWM) outputs
    * integer variables and arithmetic instructions
    * easy-to-use serial communications, to a PC, LCD, or other device
    * shift registers, look-up tables
    * EEPROM variables, whose values are not forgotten when you lose power
    * simulator, to test your program before you generate PIC/AVR code

This program is free software; source code and executables are available for download. "

   http://www.cq.cx/dl/ldmicro-rel1.6.zip -codigo fuente, liberado con GPL3-
   http://www.cq.cx/dl/ldmicro-es.exe     -ejecutable en español-

Saludos a todos,
confio en que les sera util mi aporte!:-)
Título: Re: Hagamos un PLC con PIC!!
Publicado por: MGLSOFT en 21 de Enero de 2008, 10:59:06
Eso es otra cosa, Skiell.
Ya lo conocía y sabía que ahora esta liberado por licencia GNU el código, pero igual me interesa avanzar sobre algo hecho, aquí...
Repetiste tu mensaje, tal vez por un error, si quieres podemos borrar uno o sino hacerlo vos mismo.

Respecto a la edición de tu mensaje anterior.
No hay nada en tu contra, solo que en el foro las reglas dicen que evitaremos la publicidad, y si no lo hubiera hecho J1M, lo hubiera hecho yo o algún otro moderador, es una obligación del moderador hacerlo.
Yo normalmente escribo un mensaje personal para que el que puso el POST lo edite, de esa forma me aseguro que no hubo mala intención, y si la hubo también me entero, pero es un trabajo que yo me tomo personalmente... :mrgreen:
Título: Re: Hagamos un PLC con PIC!!
Publicado por: masterlink en 19 de Febrero de 2008, 20:15:57
muy bueno
Título: Re: Hagamos un PLC con PIC!!
Publicado por: Viko en 01 de Abril de 2008, 15:01:08
Hola  amigos,
En el otro foro de mirarroba tiene unos enlaces para descargar informacion de este PLC que se esta desarrollando, los intente bajar pero no puedo, como los puedo descargar, gracias
Título: Re: Hagamos un PLC con PIC!!
Publicado por: MGLSOFT en 01 de Abril de 2008, 17:17:27
Hace ya bastante tiempo dejamos atras ese foro.
Los enlaces a archivos se perdian de un dia al otro, esa fue una de las razones para dejarlo, entre varias otras...
Si me dices que archivos quieres, busco a ver si aun los tengo, y los subo (al menos si resistieron los ultimos problemas de mi maquina...). :mrgreen:
Título: Re: Hagamos un PLC con PIC!!
Publicado por: Viko en 02 de Abril de 2008, 12:36:17
Gracias, MGLSOFT.
Si podría colocar un post, con una recopilación de la información que se a manejado en este proyecto para continuar con este proyecto de mucha utilidad.
Título: Re: Hagamos un PLC con PIC!!
Publicado por: manex_1987 en 02 de Abril de 2008, 17:39:08
Bueno, tampoco son demasiados post para leer... :lol: :-) :-) :-)
Título: Re: Hagamos un PLC con PIC!!
Publicado por: Viko en 03 de Abril de 2008, 12:14:07
Me exprese mal :lol:, lo que te estaba pidiendo es los archivos de códigos fuentes e imagenes que tenían en el otro foro. lo que tendas para compartir. gracias.
ps. si me leí todo el hilo de este tema.
Título: Re: RE: Hagamos un PLC con PIC!!
Publicado por: javiventa en 24 de Marzo de 2009, 18:44:56
hola amigos soy javier y quiero felecitarlos por su proyecto, no se quien me puede ayudar a conseguir el soft o el source en vb6 que ha diseñado hexapodo, gracias por su atencion prestada
Título: Re: Hagamos un PLC con PIC!!
Publicado por: Tec_Claudio_Perez en 06 de Noviembre de 2009, 20:07:21
Hola a todos y gracias por compartir conocimientos.
Lamentablemente por problemas personales no pude seguir desarrollando el proyecto del PLC Argentum. Sin embargo creo que es algo pendiente y digno de continuar.
Resulta que en este tiempo trabaje en una gran industria de cemento y tengo acceso a multiples sistemas PLCs, por otro lado me dedique a dictar cursos y para ello me tuve que comprar dos PLCs que tengo en casa. Uno es un Allen Bradley Micrologix 1500 con tres modulos de I/O analogicos, y otro Siemens S7-200 tambien con un modulo de I/O analógico y otro digital.
Lo interesante de todo esto es que puedo hacer un poco de Ingenieria Inversa y analizar el hardware de estos PLCs comerciales para sacar ideas. Me llamo la atencion unos PLCs muy economicos llamados KDN que los comercializa una empresa local, pero que son de fabricación china. Estos se programan en Ladder y tambien en Bloques de Funciones Logicas. En su diseño son "muy" parecidos a los Logo!, son solo dos placas pcb. Una inferior donde esta la fuente de alimentacion y otra superior con toda la logica y las I/O. Lo llamativo es que utilizan un microcontrolador Infenion (La rama de Siemens que hace productos electronicos). Luego todo va dentro de un gabinete plastico de dos partes ensamblables montable en riel DIN.
Lo gracioso es que no me parecio demasiado complicado, es algo que seguramente se podria hacer en este foro. Puedo colocar fotos de toda esta electrónica.
El software es muy rustico y la documentacion un poco pobre, pero es compatible con el famoso estandar IEC-61131.
Quisiera seguir desarrollando el software y ahora dispongo de mas tiempo. Por favor si a alguien le interesa todavia este proyecto no duden en responder.
Saludos y suerte para todos.
Título: Re: Hagamos un PLC con PIC!!
Publicado por: MGLSOFT en 06 de Noviembre de 2009, 22:38:44
Hola Claudio!!
Como no va a interesar!!
Tambien en mi caso mis ocupaciones y limitaciones personales me llevaron a dormir el tema, que como dice el titulo, era para hacerlo entre todos, pero no hubo gran quorum, parece que muchos prefieren tener un PLC comprado que hacerlo como proyecto en las escuelas... :oops: :oops:
Título: Re: Hagamos un PLC con PIC!!
Publicado por: Suky en 07 de Noviembre de 2009, 01:03:54
Los Siemens, por lo menos los S7-200, también están compuestos por dos PCBs en donde la inferior es la de potencia (trafo, fuente de 24V y reles de salida ) y la superior tiene la lógica más comunicaciones.  En la de lógica tiene los optoacopladores de entrada, leds de visualización, etc. Cuando pueda le saco fotos y las subo.

Saludos!
Título: Re: Hagamos un PLC con PIC!!
Publicado por: Tec_Claudio_Perez en 10 de Noviembre de 2009, 23:10:51
Hola a todos,
Les voy a comentar paso a paso lo que tengo desarrollado hasta el momento, es un PLC de 8 entradas y 8 salidas.
El hardware por el momento es, un PIC16F873 con cristal de 4 Mhz y otro de 32 Khz para implementar un reloj de tiempo real (RTC), conectado a una memoria serial I2C 24LC64 y un MAX232 para comunicarse con la PC.

Adjunto el diagrama esquematico y el programa completo que tengo hasta el momento.

El programa del PLC se divide en dos, un SISTEMA OPERATIVO que se encarga del control de las entradas/salidas, de los temporizadores, contadores y de las comunicaciones, tanto con la PC como con la memoria I2C, y el PROGRAMA DE USUARIO que es el que debe ejecutar el PLC. El SISTEMA OPERATIVO se encuentra grabado en el PIC, pero el PROGRAMA DE USUARIO está grabado en la memoria I2C externa. Elegi esto porque me permite expandir o aumentar el tamaño del programa de usuario por encima del tamaño de la memoria de programa del PIC. En futuras versiones pienso implementarlo en una o varias memorias RAM, debido a que son mas rápidas que las seriales. Sin embargo como prueba de concepto funciona perfectamente.

La idea era soportar la mayor cantidad posible de lenguajes de programación estándar IEC 61131, pero el desarrollo del software es todo un desafio en sí mismo. Volveremos sobre este tema luego. Por el momento se programa solo con Lista de Instrucciones desde un archivo de texto. Por comodidad utilize la nomenclatura de los PLCs Allen Bradley, pero por compatibilidad deberian ser como dice el estandar IEC-61131.

Ejemplo 1

LD  I0, 0   //Leer la entrada 0 del puerto I0 y ponerla en el acumulador.
AND I0, 1   //"Y logica" con la entrada 1 del puerto I0 y ponerla en el acumulador.
OTE Q0, 0   //Copiar el acumulador en la salida 0 del puerto Q0

Ejemplo 2

LD  I0, 0   //Leer la entrada 0 del puerto I0 y ponerla en el acumulador.
OR  I0, 1   //"O logica" con la entrada 1 del puerto I0 y ponerla en el acumulador.
OTE Q0, 0   //Copiar el acumulador en la salida 0 del puerto Q0

Como ven se trata de emular un automata con ACUMULADOR y PILA, muy parecido al funcionamiento interno del PIC, pero utilizando registros en la RAM. Ciertamente se trata de convertir al PIC en un microprocesador para permitir almacenar los programas fuera de el. Esta técnica es similar a la que utilizan los BASIC STAMP, transformando al PIC en un intérprete.
La ventaja obvia es que no se necesita reprogramar al pic, la desventaja es que las instrucciones se ejecutan de forma mas lenta. Seria muy bueno poder combinar ambas funciones compilando directamente el codigo de usuario y el sistema operativo y grabarlo en el pic (este era el deseo original de Hexapodo y MGLSOFT).

El ciclo de trabajo del PLC es:

1-Leer las entradas y actualizar las imagenes de las entradas en RAM.
2-Leer la siguiente instruccion del programa de usuario.
3-Decodificar las intruccion y ver si se necesitan leer mas parámetros de la memoria I2C.
3-Ejectuar la instruccion.
4-Si se llego a la ultima instruccion, actualizar las salidas y volver al paso 1, sino volver al paso 2.

Tratando de utilizar subrutinas para cada parte del programa, esta parte se implemento asi en el programa del PIC, que está hecho en assembler.

;**************************************************************************
;Rutina principal del PIC.
;**************************************************************************
Inicio
   call   LeerEntradas      ;Actualizar las imagenes de entrada.
Next_Inst   
   call   LeerInstruc      ;Leer la siguiente instruccion de la memoria eeprom.
   call   DecoInstruc      ;Decodificar la instruccion, de ser necesario leer mas datos de la memoria.
   call   EjecInstruc      ;Ejecutar la instruccion.
   movf   Reg_Inst, W      ;Ver si se deben actualizar las salidas.
   xorlw   Inst_END      ;
   btfss   STATUS, Z      ;Es la ultima instruccion ?
   goto   Next_Inst      ;No, Leer la proxima instruccion.
   call   EnviarSalidas      ;Si, Actualizar las salidas segun sus imagenes.
   goto   Inicio         ;Volver a repetir el ciclo.

Para saber cual es la proxima instruccion a leer utilize dos registros del PIC como CONTADOR DE PROGRAMA, es decir que cada vez que se lee una instruccion de la memoria este contador se incrementa en uno, apuntado a la proxima.

Supongamos la siguiente instruccion:

LD  I0, 0   //Leer la entrada 0 del puerto I0 y ponerla en el acumulador.

En la memoria se divide en tres bytes, primero el tipo de instruccion (en este caso LD), luego el nro del puerto (I0), y luego el nro de bit (0). Por lo que lo que se guarda en la memoria es 0x01 0x00 0x00. Es decir que esta instruccion tiene dos parametros adicionales. Por lo general este es el caso para la mayoria de las instrucciones, por lo que cada instruccion del programa de usuario consume tres bytes de la memoria serial.

La lista de instrucciones soportadas es esta:

;Instrucciones del PLC
Inst_LD      equ   0x01      ;LD, carga una entrada o salida en el acumulador.
Inst_OTE   equ   0x03      ;OTE, activa una salida.
Inst_OTL   equ   0x04      ;OTL, activa una salida y la deja memorizada.
Inst_OTU   equ   0x05      ;OTU, desactiva una salida y la deja memorizada.
Inst_OTT   equ   0x06      ;OTT, cambia el estado de una salida.
Inst_OSR   equ   0x07      ;OSR, deteccion de flanco ascendente.
Inst_OSF   equ   0x08      ;OSF, deteccion de flanco descendente.
Inst_AND   equ   0x09      ;AND, "Y logica".
Inst_OR      equ   0x0B      ;OR, "O logica".
Inst_TON   equ   0x0F      ;TON   Temporizador de retardo a la conexion.
Inst_TOF   equ   0x10      ;TOF   Temporizador de retardo a la desconexion.
Inst_TIP   equ   0x11      ;TIP   Temporizador de activacion durante impulso.
Inst_TFL   equ   0x12      ;TFL   Temporizador de activacion/desactivacion ciclica.
Inst_CTU   equ   0x13      ;CTU   Contador ascendente.
Inst_CTD   equ   0x14      ;CTD   Contador descendente.
Inst_RES   equ   0x15      ;RES   Reset de un temporizador o contador.
Inst_CTK   equ   0x16      ;CTK   Incrementa/Decrementa un contador segun DIR.
Inst_HOR        equ     0x17      ;HOR  Horario semanal.
Inst_END   equ   0xFF      ;END   Indica fin del programa.

El segundo byte de la instruccion me indica cual es el puerto, el nro del contador o el nro del temporizador que se quiere utilizar. Por ejemplo si el PLC tuviese dos puertos de 8 salidas cada uno, el primer puerto seria Q0 y el segundo puerto seria Q1, aqui el segundo byte seria 0x00 para Q0 y 0x01 para Q1.
Y finalmente el ultimo byte me indica el nro de bit del puerto, el bit del contador o del temporizador a utilizar.

Bueno, espero que se entienda, en la proxima explico la implementacion de los temporizadores y contadores, que considero lo mas interesante. Saludos.

Tec. Claudio J. Pérez

Título: Re: Hagamos un PLC con PIC!!
Publicado por: MGLSOFT en 10 de Noviembre de 2009, 23:43:51
Muy buenos avances has tenido, Claudio.
Como pregunta solamente, no has pensado utilizar la memoria de programa para almacenar el programa de usuario??
No seria mas rapido??
Título: Re: Hagamos un PLC con PIC!!
Publicado por: Tec_Claudio_Perez en 11 de Noviembre de 2009, 00:04:31
Creo que la primer version usaba un PIC16F84 y la memoria se quedaba corta enseguida, tambien me quedé sin RAM. Pero cualquier mejora o modificacion será bien recibida. En realidad esa es la idea, que el proyecto siga avanzando con el aporte de todos. (Este proyecto estuvo estancado por seis años...)

Tec. Claudio J. Pérez
Título: Re: Hagamos un PLC con PIC!!
Publicado por: MGLSOFT en 11 de Noviembre de 2009, 00:16:12
Es cierto, en ese tiempo tambien cambiaron las posibilidades y alternativas de nuevos PICs.
Tambien es cierto que es dificil encontrar puertos seriales en las PCs...

Siguenos contando sobre tus avances, no quise interrumpirte, sino alentarte a continuar...
Título: Re: Hagamos un PLC con PIC!!
Publicado por: Tec_Claudio_Perez en 17 de Noviembre de 2009, 16:06:18
Hola a todos,
Ahora voy a comentar sobre la implementacion de los temporizadores.

Todos sabemos como hacer una demora de una determinada cantidad de milisegundos, sin duda es lo primero que se aprende para encender y apagar un led :)
Normalmente se utiliza un enfoque donde mediante un bucle, se gastan ciclos de CPU. Pero que sucede si se necesitan contar varios intervalos de tiempo de forma independiente?
Supongamos que tenemos el siguiente problema, queremos encender y apagar ocho leds conectados al puerto B del pic, pero con diferentes intervalos de tiempo, por ejemplo:

RB0 cada  150 ms
RB1 cada  160 ms.
RB2 cada  170 ms.
RB3 cada  180 ms.
RB4 cada  190 ms.
RB5 cada  200 ms.
RB6 cada  210 ms.
RB7 cada  220 ms.

Una solucion seria usar un temporizador por hardware por cada salida, pero los PIC 16F873 solo disponen de tres timer internos. Por lo que hay que encontrar otra solucion.

Otro problema tambien es la resolucion variable. Los temporizadores cuentan invervalos de tiempo, la resolucion o base de tiempo del temporizador determina la duracion de cada intervalo. En algunos PLCs comerciales se asignan resoluciones fijas de acuerdo al nro del temporizador, por ejemplo para 100 temporizadores, el T0 al T3 tienen resolucion de 1ms, del T4 al T20 tienen 10ms de resolucion y el resto T21 al T99 tienen resolucion de 100ms. En los Siemens S7-200 es así, y de acuerdo a la aplicacion uno debe elegir el temporizador adecuado. Sin embargo los Allen Bradley Micrologix 1500 pueden asignar cualquier resolucion a todos los temporizadores, como lo hacen ? Esa sin duda es una buena caracteristica para nuestro PLC.

Cual es el rango de medicion de los temporizadores? Normalmente cuentan de 0 a 32767. Para poder almacenar este valor de cuenta se necesitan 15 bits (2^15=32768) es decir que se usan dos registros en RAM de ocho bits, en el primero se almacenan los 8 bits menos significativos (LSB) y en el segundo se almacenan los 7 restantes (MSB). Por lo general el bit 8 del MSB se utiliza para almacenar el signo. Es decir que el tipo de datos es int16.

Una solucion al problema anterior es la siguiente, queremos implementar ocho temporizadores T0 al T7, con una resolucion variable de 10ms, de 1seg y de 1 minuto. Para esto utilizo dos temporizador por hardware del PIC: el timer 0 configurado para que genere una interrupcion exactamente cada 10 ms y el timer 1 configurado para que genere una interrupcion exactamente cada 1 seg (1000 ms). (Sin duda esto se podría hacer con un solo temporizador y un contador, ademas no creo que la demora de un minuto se utilize muy seguido, pero bueno es solo una prueba de concepto y seguro se mejorará luego. Por otro lado aumentando la velocidad del cristal a 20 Mhz se podria hacer que la resolucion minima de 10ms baje a 1ms. Otra razon para usar la interrupcion de un segundo es que luego se agrego una rutina de Reloj de Tiempo Real usando el Timer2 del PIC y un cristal de 32.768 Khz, y para esto cada un segundo se debe actualizar el reloj. Seguro que esto tambien se puede hacer con un chip externo dedicado que ademas soportan el corte de energia mediante el uso de una pila).

Luego por cada temporizador asocie seis registros  en RAM que controlan su funcionamiento.

Asi para el T0 y el T1 tenemos:

Tim0Config                      ;Configuracion y banderas del T0.
Tim0Presc                       ;Prescaler del T0 (multiplicador).
Tim0LCount                      ;LSB de la Cuenta del T0.
Tim0HCount                      ;MSB de la Cuenta del T0.
Tim0LPreset                     ;LSB del Preset del T0.
Tim0HPreset                     ;MSB del Preset del T0.

Tim1Config                      ;Configuracion y banderas del T1.
Tim1Presc                       ;Prescaler del T1 (multiplicador).
Tim1LCount                      ;LSB de la Cuenta del T1.
Tim1HCount                      ;MSB de la Cuenta del T1.
Tim1LPreset                     ;LSB del Preset del T1.
Tim1HPreset                     ;MSB del Preset del T1.

y asi sucesivamente para el T2 al T7.

El primer registro TimXConfig es un registro de estado y configuracion, y utilizo los bits en forma individual.

;Bits del registro TimConfig:
;- Prescaler         (7-6) 00-10 ms, 01-1 seg, 10 10 seg.
;- Tipo de Timer  (5-4)  00-TON, 01-TOF, 10-TDR, 11-TAD.
;- Actualizando    (3) Se está modificando el temporizador.
;- PLC_AccAnt     (2) Almacena el valor anterior de la entrada del temporizador.
;- DN                  (1) Salida del temporizador.
;- TimerActivado (0) Se está usando el temporizador en el programa de usuario.

Funciona con dos partes, una rutina de servicio de interrupción generada por overflow de los temporizadores y otra rutina que se ejecuta en el programa normal del PIC.

Rutina de interrupción
Cada vez que ocurre una interrupción, se verifica si es la de 10ms, por overflow del timer 0 o la de 1 seg, por overflow del timer 1. Esto luego se marca mediante la variable BandBase10ms utilizada como bandera.

A continuacion, si corresponde, se incrementa el valor de la CUENTA de cada temporizador. Esto se hace en la subrutina "Inc_Timers".

Como la interrupcion puede ocurrir en cualquier momento, existe la posibilidad que justo en ese momento se estén actualizando los datos del temporizador, en el programa normal del PIC, por lo que utilizo el bit 3 de su registro TimConfig (Actualizando) como bandera para indicar esta situacion.
Si esta bandera está activada, significa que el temporizador se está actualizando y no se deben modificar sus datos, por lo que se pasa al siguiente temporizador. En cambio si esta bandera está desactivada se controla si se está utilizando en el programa de usuario, para esto se revisa el bit 0 de su registro TimConfig. Si el temporizador no se utiliza no tiene sentido revisarlo y se pasa al siguiente temporizador.
Si el bit 0 esta activado significa que el temporizador se está utilizando en el programa, por lo que se revisa la resolucion del temporizador.

La resolucion de cada temporizador se configura usando los bits 6 y 7 de su registro de estado TimConfig:

                       Bit 7   Bit 6
Resolucion  10 ms      0   0
Resolucion   1 seg      0   1
Resolucion 60 seg      1   0

Si ocurrió la interrupcion de 10ms (BandBase10ms=1) y la resolucion del temporizador es de 10 ms, se incrementa su valor de CUENTA en uno.
Si ocurrió la interrupcion de 1seg (BandBase10ms=0) y la resolucion del temporizador es de 1seg, se incrementa su valor de CUENTA en uno.
En cambio si ocurrió la interrupcion de 1 seg (BandBase10ms=0), pero la resolucion del temporizador es de 10seg, se incrementa su valor de PRESCALER en uno. Si el valor de PRESCALER, es igual a 60, se vuelve a 0 y se incrementa su valor de CUENTA en uno. (Ya pasaron 60 segundos).

Luego se verifica si su valor de CUENTA es mayor o igual que su valor de PRESET, de ser asi se activa la salida del temporizador (bit DN del registro de estado TimConfig) y se desactiva el temporizador (esto ultimo no deberia ser asi, en futuras versiones, se deberia dejar el temporizador activado). Un caso especial ocurre si el temporizador esta configurado como Temporizador de Intermitencia TFL, aqui cuando la CUENTA es mayor o igual al PRESET se pone a cero el valor de CUENTA y se cambia de estado la salida (si estaba activada se desactiva y si estaba desactivada se activa).

Esto se realiza por cada temporizador. Se utiliza mucho el direccionamiento indirecto (FSR e INDF) para acceder a los registros individuales de cada temporizador. Una vez que se revisan todos, termina la subrutina y se sale de la interrupcion.

Programa normal del PIC.

Por ejemplo supongamos que el PLC debe ejecutar las siguientes sentencias en Lista de Instrucciones:

LD I0,0    // Leer la entrada I0,0 y copiar su valor al acumulador.
TON T0, 500 // Usar el temporizador T0 como retardo a la conexion con un preset de 500 milisegundos.
LD T0, DN  // Cargar el bit DN del temporizador T0 (la salida del temporizador)
OTE Q0, 1  // Si pasan los 500 milisegundos activar la salida Q0, 1

Es decir que si la entrada I0.0 queda activada durante medio segundo, recien se activa la salida Q0, 1.

En el programa de usuario cada vez que se encuentra una instruccion que utilice un temporizador se llama a la subrutina "ActTimers".
Siempre el valor que activa la entrada del temporizador se lee del acumulador, pero tambien es importante conocer si ocurrio un flanco ascendente o un flanco descendente sobre esta entrada. Para poder realizar esto se necesita conocer el valor anterior del acumulador y compararlo contra su valor actual.
Con este fin se utiliza el bit  2 de su registro de estado TimConfig que almacena el estado anterior del acumulador.

Es importante porque cada temporizador puede configurarse de diferente manera como:

TON Retardo a la conexion.
TOF Retardo a la desconexion.
TIP  Temporizador de impulso.
TFL Temporizador de intermitencia.

Esta configuracion se realiza usando los bits 5 y 4 del registro de estado TimConfig:
                      Bit 5   Bit 4
Temporizador TON      0   0
Temporizador TOF      0   1
Temporizador TIP      1   0
Temporizador TFL      1   1

Si el estado actual de la entrada del temporizador es uno y el estado anterior era 0, ocurrió un flanco ascendente. Si el estado actual de la entrada del temporizador es cero y el estado anterior era 1, ocurrio un flanco descendente. Si el estado actual es igual al estado anterior no hubo cambio en la entrada del temporizador. De acuerdo al tipo de temporizador se comporta de manera diferente.

Para un temporizador TON (Retardo a la conexion)
---------------------------------------------------------------------------------

-Si no hubo ningun cambio:
   Guardar el estado actual de la entrada del timer o sea el acumulador (bit 2 del registro de estado).
   
-Si hubo un flanco ascendente:
   Guardar el estado actual de la entrada del timer o sea el acumulador (bit 2 del registro de estado = 1)
   Desactivar la interrupcion mientras se configura el timer (bit 3 del registro de estado=1)
   Borrar la salida del temporizador DN (bit 1 del registro de estado=0).
   Activar el timer (bit 0 del registro de estado=1).
   Configurar el tipo de timer a TON (bits 5 y 4 del registro de estado=00)
   Configurar la base de tiempo (bits 6 y 7 del registro de estado) segun corresponda.
   Borrar la cuenta del PRESCALER (Registro TimPresc  = 0)
   Borrar la cuenta del temporizador (Registros TimLCount  y TimHCount).
   Setear el valor de PRESET del temporizador (Registros TimLPreset y TimHPreset)
   Reactivar la interrupcion porque se termino de configurar el timer (bit 3 del registro de estado=0)

-Si hubo un flanco descendente:
   Guardar el estado actual de la entrada del timer o sea el acumulador (bit 2 del registro de estado = 0)
   Desactivar la interrupcion mientras se configura el timer (bit 3 del registro de estado=1)
   Borrar la salida del temporizador DN (bit 1 del registro de estado=0).
   Desactivar el timer (bit 0 del registro de estado=0).
   Reactivar la interrupcion porque se termino de configurar el timer (bit 3 del registro de estado=0)

Para un temporizador TOF (Retardo a la desconexión)
--------------------------------------------------------------------------------------

-Si no hubo ningun cambio:
   Guardar el estado actual de la entrada del timer o sea el acumulador (bit 2 del registro de estado).
   
-Si hubo un flanco ascendente:
   Guardar el estado actual de la entrada del timer o sea el acumulador (bit 2 del registro de estado = 1)
   Desactivar la interrupcion mientras se configura el timer (bit 3 del registro de estado=1)
   Borrar la salida del temporizador DN (bit 1 del registro de estado=0).
   Desactivar el timer (bit 0 del registro de estado=0).
   Reactivar la interrupcion porque se termino de configurar el timer (bit 3 del registro de estado=0)

-Si hubo un flanco descendente:
   Guardar el estado actual de la entrada del timer o sea el acumulador (bit 2 del registro de estado = 0)
   Desactivar la interrupcion mientras se configura el timer (bit 3 del registro de estado=1)
   Borrar la salida del temporizador DN (bit 1 del registro de estado=0).
   Activar el timer (bit 0 del registro de estado=1).
   Configurar el tipo de timer a TOF (bits 5 y 4 del registro de estado=01)
   Configurar la base de tiempo (bits 6 y 7 del registro de estado) segun corresponda.
   Borrar la cuenta del PRESCALER (Registro TimPresc  = 0)
   Borrar la cuenta del temporizador (Registros TimLCount  y TimHCount).
   Setear el valor de PRESET del temporizador (Registros TimLPreset y TimHPreset)
   Reactivar la interrupcion porque se termino de configurar el timer (bit 3 del registro de estado=0)

Para un temporizador TIP (Temporizador de Impulso)
-------------------------------------------------------------------------------------

-Si no hubo ningun cambio:
   Guardar el estado actual de la entrada del timer o sea el acumulador (bit 2 del registro de estado).

-Si hubo un flanco ascendente:
   Guardar el estado actual de la entrada del timer o sea el acumulador (bit 2 del registro de estado = 1)
   Desactivar la interrupcion mientras se configura el timer (bit 3 del registro de estado=1)
   Activar la salida del temporizador DN (bit 1 del registro de estado=1).
   Activar el timer (bit 0 del registro de estado=1).
   Configurar el tipo de timer a TOF (bits 5 y 4 del registro de estado=10)
   Configurar la base de tiempo (bits 6 y 7 del registro de estado) segun corresponda.
   Borrar la cuenta del PRESCALER (Registro TimPresc  = 0)
   Borrar la cuenta del temporizador (Registros TimLCount  y TimHCount).
   Setear el valor de PRESET del temporizador (Registros TimLPreset y TimHPreset)
   Reactivar la interrupcion porque se termino de configurar el timer (bit 3 del registro de estado=0)
-Si hubo un flanco descendente:
   Guardar el estado actual de la entrada del timer o sea el acumulador (bit 2 del registro de estado = 0)

Para un temporizador TFL (Temporizador de Impulso)
-------------------------------------------------------------------------------------

-Si no hubo ningun cambio:
   Guardar el estado actual de la entrada del timer o sea el acumulador (bit 2 del registro de estado).

-Si hubo un flanco ascendente:
   Guardar el estado actual de la entrada del timer o sea el acumulador (bit 2 del registro de estado = 1)
   Desactivar la interrupcion mientras se configura el timer (bit 3 del registro de estado=1)   
   Desactivar la salida del temporizador DN (bit 1 del registro de estado=1).
   Activar el timer (bit 0 del registro de estado=1).
   Configurar el tipo de timer a TOF (bits 5 y 4 del registro de estado=11)
   Configurar la base de tiempo (bits 6 y 7 del registro de estado) segun corresponda.
   Borrar la cuenta del PRESCALER (Registro TimPresc  = 0)
   Borrar la cuenta del temporizador (Registros TimLCount  y TimHCount).
   Setear el valor de PRESET del temporizador (Registros TimLPreset y TimHPreset)
   Reactivar la interrupcion porque se termino de configurar el timer (bit 3 del registro de estado=0)
-Si hubo un flanco descendente:
   Guardar el estado actual de la entrada del timer o sea el acumulador (bit 2 del registro de estado = 1)
   Desactivar la interrupcion mientras se configura el timer (bit 3 del registro de estado=1)
   Borrar la salida del temporizador DN (bit 1 del registro de estado=0).
   Desactivar el timer (bit 0 del registro de estado=0).
   Reactivar la interrupcion porque se termino de configurar el timer (bit 3 del registro de estado=0)
   Guardar el estado actual de la entrada del timer o sea el acumulador (bit 2 del registro de estado = 0)

Bueno, espero que se haya entendido algo, la verdad que me llevo bastante tiempo mejorar la redaccion. Como prueba de concepto y para fines educativos funciona  perfectamente logrando implementar ocho temporizadores (T0 al T7) completamente independientes, con resoluciones variables. El problema es el gran consumo de registros en RAM (Seis registros por cada temporizador) lo que nos limita la cantidad de temporizadores disponibles. En comparacion el Siemens S7-200 tiene 256 temporizadores, para poder llegar a esto hace falta conectar una RAM estática externa al PIC, por ejemplo una 62XXX. En realidad la mayoria de los PLC industriales hacen esto. Luego subo unas fotos para que vean.

Saludos a todos y se aprecia cualquier sugerencia.
Tec. Claudio J. Pérez
Título: Re: Hagamos un PLC con PIC!!
Publicado por: MGLSOFT en 18 de Noviembre de 2009, 09:38:04
Brillante explicacion!!
La verdad es que vas a completar un libro, Claudio!!

Acerca de los timers, el valor del preset puede ser modificado con el timer funcionando??
Título: Re: Hagamos un PLC con PIC!!
Publicado por: Tec_Claudio_Perez en 19 de Noviembre de 2009, 15:03:17
Gracias MGLSOFT, si parece un libro es que quedo entendible. Ja ja.
Creo que si se podria, con la precaucion de deshabilitar la interrupcion sobre el mismo antes de comenzar la modificacion y luego habilitarla luego. Esto lo podria hacer automaticamente el sistema operativo y que sea invisible para el usuario.
Título: Re: Hagamos un PLC con PIC!!
Publicado por: Suky en 19 de Noviembre de 2009, 23:51:58
Buenas, me demoré un poco pero seguro, led dejo imagenes de las placas del S7-212.

Placa de control:
(http://img69.imageshack.us/img69/1425/imagen0087.th.jpg) (http://img69.imageshack.us/i/imagen0087.jpg/)(http://img694.imageshack.us/img694/3411/imagen0089.th.jpg) (http://img694.imageshack.us/i/imagen0089.jpg/)

Placa de potencia:
(http://img689.imageshack.us/img689/7238/imagen0093.th.jpg) (http://img689.imageshack.us/i/imagen0093.jpg/)(http://img693.imageshack.us/img693/5317/imagen0095.th.jpg) (http://img693.imageshack.us/i/imagen0095.jpg/)


Saludos!
Título: Re: Hagamos un PLC con PIC!!
Publicado por: MGLSOFT en 20 de Noviembre de 2009, 08:04:33
Buenas, me demoré un poco pero seguro, led dejo imagenes de las placas del S7-212.

Placa de control:
(http://img69.imageshack.us/img69/1425/imagen0087.th.jpg) (http://img69.imageshack.us/i/imagen0087.jpg/)(http://img694.imageshack.us/img694/3411/imagen0089.th.jpg) (http://img694.imageshack.us/i/imagen0089.jpg/)

Placa de potencia:
(http://img689.imageshack.us/img689/7238/imagen0093.th.jpg) (http://img689.imageshack.us/i/imagen0093.jpg/)(http://img693.imageshack.us/img693/5317/imagen0095.th.jpg) (http://img693.imageshack.us/i/imagen0095.jpg/)


Saludos!

Tuvo un corto en la fuente ese PLC o simplemente es polvo lo que se ve sobre varios componentes??
Título: Re: Hagamos un PLC con PIC!!
Publicado por: Suky en 20 de Noviembre de 2009, 09:08:05
No, es polvo! Aunque como es de la facu, es sufrido el pobrecito y no me extrañaría que tenga un par de cortos en su vida  :mrgreen:

Saludos!
Título: Re: Hagamos un PLC con PIC!!
Publicado por: Tec_Claudio_Perez en 23 de Noviembre de 2009, 22:45:31
Muy buenas fotos,

Lo primero que veo es la ram estatica, en la segunda foto abajo a la izquierda, dice SHARP LH5164AN-10L.
Segun la hoja de datos http://kr.ic-on-line.cn/IOL/datasheet/lh5164ahn-10l_200507.pdf (http://kr.ic-on-line.cn/IOL/datasheet/lh5164ahn-10l_200507.pdf) es una ram de 64 Kbits (8 Kbytes). Por lo que para direccionarla en forma directa se usan 13 lineas de direccion (A0 a A12), 8 de datos y tres de control CE, WE y OE. Seria bueno comparar con otros PLCs  a ver que Rams usan.

Otra cosa interesante de los Siemens S7-200 es que siempre usan un microcontrolador ATMEL, aparte del micro principal, tambien lo llevan en los modulos de expansion por lo que creo que lo usan para el protocolo de comunicacion en el bus. Será que con un solo microcontrolador no alcanza ?

Saludos a todos.
Título: Re: Hagamos un PLC con PIC!!
Publicado por: Suky en 23 de Noviembre de 2009, 23:13:42
Lo primero que veo es la ram estatica, en la segunda foto abajo a la izquierda, dice SHARP LH5164AN-10L.
Segun la hoja de datos http://kr.ic-on-line.cn/IOL/datasheet/lh5164ahn-10l_200507.pdf (http://kr.ic-on-line.cn/IOL/datasheet/lh5164ahn-10l_200507.pdf) es una ram de 64 Kbits (8 Kbytes). Por lo que para direccionarla en forma directa se usan 13 lineas de direccion (A0 a A12), 8 de datos y tres de control CE, WE y OE. Seria bueno comparar con otros PLCs  a ver que Rams usan.

Dentro de 1 o 2 semanas voy a tener un S7-214, haber si tengo posibilidad de apropiármelo para sacarle unas fotos  :mrgreen:

Otra cosa interesante de los Siemens S7-200 es que siempre usan un microcontrolador ATMEL, aparte del micro principal, tambien lo llevan en los modulos de expansion por lo que creo que lo usan para el protocolo de comunicacion en el bus. Será que con un solo microcontrolador no alcanza ?

Puede ser, para trabajar las comunicaciones independientemente a las tareas de control y hacerlo más robusto  :huh:

Saludos!
Título: Re: Hagamos un PLC con PIC!!
Publicado por: Tec_Claudio_Perez en 03 de Diciembre de 2009, 19:51:53
Hola a todos, navegando por ahi encontré esto:

http://host.nigde.edu.tr/muzam/UZAM_PLC_with_PIC16F648A.htm

Está basado en el PICBIT, es decir un PLC con macros, pero mas completo. Aparentemente es de un Prof. en Turquia y es tan bueno que viene saliendo en la revista inglesa de electronica "Electronics World" como una serie de articulos. Echenle una mirada. Me pregunto como hace cuando tenes varios temporizadores...

Saludos.
Título: Re: Hagamos un PLC con PIC!!
Publicado por: deyvithegreat en 04 de Diciembre de 2009, 17:20:53
Estoy tratando de hacer un PLC con un pic que se programe cambiando los estads de algunas variables todo a traves del mismo hardware con un teclado y un dislplay, como los telemecanique o los micrologix 1100, tengo varias ideas para terminar el proyecto pero me gustaria saber ustedes que opinan.
Título: Re: Hagamos un PLC con PIC!!
Publicado por: MGLSOFT en 04 de Diciembre de 2009, 18:07:19
Si te animas a publicar tus ideas, aqui estaremos para opinar... :lol:
Título: Re: Hagamos un PLC con PIC!!
Publicado por: Carlosi2p en 09 de Abril de 2013, 14:39:25
    Veo que al final el tema del PLC con Pic se enfrió, para volver a animar el tema os presento el Micro-PLC que ya tengo terminado, no intenta hacer ni mucho memos la competencia a la amplia gama de micro autómatas que hay en el mercado pero el pequeño se defiende bastante bien. 

    Se programa desde el PC, de una forma muy similar a los que hay en el mercado, y consta de alguna instrucción más. Disponemos de 9 memorias, 9 contadores decrementales, 9 timers con una resolución de 100mseg, un registro de desplazamiento, función Set-Reset de salidas y memorias,  10 entradas digitales, 6 salidas de estado sólido y podemos hacer condiciones del estado de la entradas y de sus flancos (muy útil) y que la mayoría de pequeños reles programables no tienen….   Con sus 56 líneas de programa y cinco condiciones brinda muchas posibilidades, también añadir que el ciclo scan ha quedado en poco más de 10mseg.

    El Pic usado es un 18f2525 a 30Mhz,   Ahora falta ponerlo a prueba  :P
Título: Re: Hagamos un PLC con PIC!!
Publicado por: Carlosi2p en 09 de Abril de 2013, 14:44:20

     Ah!  Me falto la pantalla del programa del PC…
Título: Re: Hagamos un PLC con PIC!!
Publicado por: MGLSOFT en 09 de Abril de 2013, 15:47:27
Muy bueno !!
Realmente vas a compartirlo ??
Si es asi deberias abrir todo tu proyecto...
Título: Re: Hagamos un PLC con PIC!!
Publicado por: Carlosi2p en 10 de Abril de 2013, 15:46:50

      Buenas tardes!!

   Esta versión tiene optacopladores montados a las entradas y salidas, ya que está pensado para montarlo en ámbito industrial.   Todo y que ya esta verificado en el tema de errores de software quiero estar seguro antes de publicarlo....   prometo no tardar demasiado en hacer publico todo el proyecto.
 
   La intención que llevo es modificar el diseño para que sea mas asequible a los que estén estudiando y quieran aprender a programar en ladder,  las entradas y salidas serán sin optacoplador y a 5v (el actual es a 24V) , lo que ara que el precio baje bastante, los que conozcan el zelio tendrán ventaja porque los 6 tipos de timers que se pueden usar son los mismos….

   

        :wink:

   
Título: Re: Hagamos un PLC con PIC!!
Publicado por: rawitox en 04 de Noviembre de 2013, 19:01:45
Hola amigos!! quería saber que ha pasado con el desarrollo de este gran proyecto?? yo soy estudiante del ultimo semestre de la carrera de Ing. Electrónica y me gustaría aportar ideas y que me faciliten información al respecto a este tema, ya que actualmente estoy desarrollando un PLC basándome en la tecnología de los microcontroladores pic. Si todavía este tema está en marcha yo me uno a este hilo, ya que me interesa muchísimo el tema!! si pudiera alguien colgar los archivos u esquemas de los diseños que han ido adelantando para estar al día y aportar ideas para ir reforzando el desarrollo del mismo.
Título: Re: Hagamos un PLC con PIC!!
Publicado por: rawitox en 07 de Noviembre de 2013, 18:53:18
Hola amigos!! bueno para el desarrollo de mi proyecto me estoy basando en cuanto al hardware (CPU, I/O, comunicaciones, programador ICSP incluido por medio del USB, y fuente de alimentación con salidas de 12Vdc y 5Vdc) en la implementación del Software de programación de pic y avr "LDmicro"; ya que es un software realmente muy versátil y de fácil uso permitiendo aplicar los conocimientos de programación de lenguaje escalera y traduciendo el código escrito por el usuario a lenguaje .HEX que es el archivo que realmente nos importa para la programación del sistema. Mi idea inicial es desarrollar un sistema que sea compatible en cuanto a hardware con dicho software. Realice el diseño para las entradas digitales para un estándar de 24Vdc implementando una configuración básica con optoacopladores para el aislamiento eléctrico, para las entradas analógicas diseñe dos circuitos sencillos para el acondicionamiento de señales de tensiones entre un rango 0Vdc a 10Vdc, para señales de corrientes entre un rango estandar de 4mA a 20mA. En cuanto a las salidas se me ocurrió implementar tres tipos, las cuales son: salidas de tipo Relé, salidas de tipo Triac, y salidas de tipo Transistor a colector abierto. Para las comunicaciones solamente será implementado el protocolo RS-232. Bueno Esa es mi idea en cuanto al proyecto, cabe destacar que estoy desarrollando dichos diseños en varias etapas las cuales están divididas por módulos, porque como este proyecto es para usos didáctico al mismo se le realizará un cajetín o chasis donde se incluyan todos los módulos formando así un equipo completamente contacto.

Estoy usando el PIC16F877, el cual asigne los siguientes criterios para el diseño:

1) El puerto A y E: Entradas Analógicas: (RA0, RA1, RA2, RA3, RA5, RE0, RE1, RE2) Desde RA0 hasta RA3: Entradas analógicas de tensiones entre 0Vdc a 10Vdc y Desde RE0 hasta RE2: Entradas analógicas para corrientes entre 4mA a 20mA respectivamente.
2) El puerto B: Entradas Digitales optoacopladas para un máximo de tensiones de 24Vdc.
3) El puerto C: Salidas de tipo Relé y comunicación RS-232: Desde RC0 hasta RC5 (salidas a relé). Y RC6 y RC7 para el protocolo de comunicación RS-232.
4) El puerto D: Dividido en dos partes para las salidas a TRIAC y a Transistor a Colector Abierto. Desde RD0 hasta RD3 (salidas a TRIAC) y Desde RD4 hasta RD7 (salidas a Transistor con colector abierto).

Quisiera que me dieran su opinión al respecto y así poder seguir desarrollando diversos  diseños. La verdad es que tengo varios datos por alli q nos puden ser útiles. Porque yo realmente iba a realizar el diseño del software de programación del sistema utilizando el Visual Basic 6.0 y a través de un bootloader desarrollar un protocolo de comunicación propio para transferir los archivos del código del programa de usuario al sistema, pero por cuestiones de tiempo se me hizo difícil y no tuve otra opción que optar por la implementación del LDmicro y crear una pequeña interfaz que me relacionará y me ejecutara las aplicaciones tanto del software Ldmicro para la creación de los códigos en diagrama escalera y una vez compilados ejecutar la aplicación del pickit2 (ya que mi diseño incluye como programador el pickit2 clone) para la transferencia del codigo .HEX al sistema a traves de la programacion in-circuit.

Les dejare en la próximamente imágenes de los esquemas electrónicos que he venido realizando. cualquier duda u opinion al respecto a mi diseño bienvenido sea. Saludos!!
Título: Re: Hagamos un PLC con PIC!!
Publicado por: rawitox en 07 de Noviembre de 2013, 18:57:43
Acá están las imágenes de mi Sistema Didáctico de Autómata Programable denominado por mi autoria "SDAP_PLC" :)
Título: Re: Hagamos un PLC con PIC!!
Publicado por: rawitox en 07 de Noviembre de 2013, 19:00:17
Esta es la segunda parte de las imágenes del SDAP_PLC. Cualquier cosa no duden en escribir Saludos!!
Título: Re: Hagamos un PLC con PIC!!
Publicado por: AcoranTf en 07 de Noviembre de 2013, 20:38:47
Hola rawitox, se ve interesante y completo tu proyecto.
Yo tengo en mente hacer algo mas simple, sin entradas analogicas y con solo las salidas a  rele, todo ello debidamente optoaislado.
Mi idea es utilizar un sistema que alguien ya comento aqui y que da mucha flexibilidad al sistema. Consiste en utilizar registros de desplazamiento para entras y salidas. Aunque mi idea es modificar el que se explico aqui y adaptarlo a mi diseño.
Con ese sistema las ampliaciones son muy faciles, ya que no requieren puertos dedicados y permite realizar el automata con PIC's pequeños, al menos en cuanto a puertos se refiere.
De momento ando con otros temas y tengo poco tiempo, pero no me olvido de los PIC's.
Seguire leyendo por aqui a ver que tal sigue el tema.

Saludos.
Título: Re: Hagamos un PLC con PIC!!
Publicado por: Suky en 07 de Noviembre de 2013, 21:36:28
Hola! Recomiendo que a cada C.I. tenga su capacitor de desacople, y que cada 10 de estos se coloque un capacitor Bulk de 10uF. Después por ejemplo a los reles, a la linea de alimentación y lo más cerca del grupo de reles, colocarle también un grupo de capacitores para que estos respondan a la pedida de corriente y no se propague en la placa.


Saludos!
Título: Re: Hagamos un PLC con PIC!!
Publicado por: rawitox en 07 de Noviembre de 2013, 22:46:50
Hola amigos!! gracias por sus comentarios y recomendaciones respecto a mi diseño!! Bueno como ya les había mencionado mi idea es adaptar el hardware de mi prototipo con el software de programación LDmicro. Lo único en que verdaderamente ando perdido es en lo siguiente:

Como ya sabemos, el software de LDmicro es de uso libre y puede ser modificado para adaptarlo a nuestras necesidades, ya que he visto en la pagina del creador del mismo que su código fuente es de libre acceso y se puede descargar sin ningún inconveniente El detalle está en que yo no tengo los conocimientos necesarios para modificar el código fuente del software para adaptarlo a mi diseño. Por tal razón, necesito de la asesoría de alguien que si tenga unos sólidos conocimientos en programación de software para modificar dicho archivo fuente.

Lo que deseo modificar básicamente es:

A) Inhabilitar todos los demás microcontroladores soportados por el software y que únicamente me aparezca por defecto el microcontrolador PIC16F877.

B) Adicionar en el menú del software la opción de "CARGAR" la cual tendrá por objetivo realizar el llamado a la aplicación PicKit2.exe que va a estar instalado previamente en una carpeta llamada Pickit2 en la carpeta del programa, donde se le envíe por parámetros el tipo de microcontrolador, la palabra de configuración, el nombre del archivo .HEX generado por la compilación del programa actual editado en el LDMICRO, y que le envíe el parámetro de cargarlo sin necesidad de ninguna orden en el PicKit2.exe

C) Otro aspecto que se debe tomar bastante en cuenta es que el Sistema diseñado ya tiene definido las entradas y las salidas, sería un error que y podría dañar algo en el hardware que se tiene configurar de mal manera los puertos, para ello se debe limitar al software al momento de abrir las ventanas de selección de patas o puertos, para que cuando sea una entrada nos muestre las patas que pueden ser entrada y están disponibles y cuando sea una salida muestre las patas que pueden ser configurables como salida.

Bueno eso es lo único que realmente faltaría para que el diseño del prototipo sea completamente funcional y que no tenga nada q envidiarle (excepto de una que otras cosillas sofisticadas que poseen los PLC's en la actualidad jejeje  :D ). Espero de sus grandes ayudas amigos xq este proyecto vale mi carrera jejeje y yo en programación de software la verdad no se nada, ya que en la universidad donde estudio la programación de software no es el fuerte de la carrera, aunque no está demás que tengamos la iniciativa de conocerla y aprenderla :)
 
Cualquier ayuda u opinión que deseen aportar, serán bienvenidas!! Saludos y gracias por tomarse la libertad de leer estas lineas!!!
Título: Re: Hagamos un PLC con PIC!!
Publicado por: MGLSOFT en 08 de Noviembre de 2013, 10:45:17
Perdon, porque aun no vi todo bien como corresponde, pero queria hacerte este apunte:
El conector ICSP, deberias hacerlo compatible con los programadores de Microchip, ya que ademas hay muchos de otras marcas que guardan esa compatibilidad.
Hay una nota de aplicacion de como hacerlo.
Y los pines RB6 y RB7 (PGD y PGC del ICSP) deberias hacer una aislacion del circuito de I/O con resistencias u otros metodos, para que al programar no quemes nada y sin desconectarlo no cree problemas...
Título: Re: Hagamos un PLC con PIC!!
Publicado por: rawitox en 08 de Noviembre de 2013, 15:54:06
Hola nuevamente compañeros!! MGLSOFT gracias por tu apunte, la verdad lo del aislamiento para los pines RB6 y RB7 del ICSP no lo vi necesario incluirlo al diseño porque como primeramente las señales para la programación ICSP del sistema ingresan a la tarjeta de control de modos run_stop_prog están aisladas por minirelés no afecta en nada a las demás etapas del circuito ya lo he probado físicamente.

En cuanto al estándar del ICSP de Microchip me base en ello para el diseño, ya que estoy implementando el programador PicKit2 clone y como sabemos dicho conector posee la siguiente distribución de pines:

1 = Vpp (MCLR)
2 = Vdd (tensión de 5V del USB)
3 = GND (Vss)
4 = PGD (ICSP_DAT)
5 = PGC (ICSP_CLK)


Por tal razón, solamente agregue el conector ICSP del Programador a la Tarjeta de Control de Modos: RUN, STOP y PROG. Y en la salida de la misma incluí un conector de tres pines denominado ICSP CPU con la siguiente distribución de pines:

1 = Vpp
2 = PGD
3 = PCG

Los cuales irán cableados a la tarjeta principal ó CPU del sistema, de tal manera que al pulsar el button de PROG (Programar) conmuten los minirelés y envien las señales respectivas del módulo programador para la programación del sistema.

Tambien incluí en la misma tarjeta de control un conector de dos pines denominado RESET/MCLR distribuido de la siguiente manera:

1 = RESET
2 = MCLR

Nota: Este conector es adicionado al diseño ya que a la hora de que el usuario desee programar del sistema con un nuevo código, la tarjeta de control se encargará de hacer conmutar un minirelé que enviará la señal de Vpp a través del pin 1 (RESET) junto con las demás señales antes descritas. Sin embargo, cuando el usuario desee ejecutar el código ya enviado se desactivará el minirelé y se enviarán 5V a traves del pin 2 (MCLR) para que el sistema pueda funcionar correctamente.

Cualquier duda u opinión al respecto haganmela saber!! Saludos!! :)
Título: Re: Hagamos un PLC con PIC!!
Publicado por: MGLSOFT en 08 de Noviembre de 2013, 16:02:54
Barato no sera!! :D :D

Pero es original tu forma de programarlo y pasarlo a run/stop/prog !! ((:-)) ((:-)) ((:-))
Título: Re: Hagamos un PLC con PIC!!
Publicado por: rawitox en 09 de Noviembre de 2013, 17:25:20
Bueno si costara un poquito mas por no tanto jejeje!!
 Hay otra forma mas económica de hacerlo y es implementando un interruptor de tres estados y solamente tres minireles para enviar las señales del ICSP directamente al sistema que también seria una opción factible q creo q a lo mejor tome ese diseño como el mas apropiado en cuanto a costo.

Otra cosa con respecto al tema que había planteado de hacerle la modificación al software LDmicro para adaptarlo al diseño que he desarrollado, tendrán algún conocimiento para realizarlo?? Habra alguien por acá que pueda orientarme el respecto???
Si no es mucha molestia pedir, por favor necesito con urgencia de sus ayudas, ya que se me aproxima la fecha de entrega del proyecto completamente terminado y me falta solo la cuestión del software. S.O.S. pleaseeeee!!!  :oops: