Nuevamente el tema de fabricar un PLC

Bueno, ya sabéis lo que es IAP, (pensé que era conocido, lo siento) no me parece serio tener que poner al micro en modos extraños y no me parece admisible tener que sacarlo para programarlo.
¿Por diagrama de escalera os referís al grafcet, al diagrama de contactos o a otra cosa?
Si empezais por el AWL o como se llame, cada instrucción es equivalente a una o dos instrucciones del microcontrolador. Ejemplo, una puerta and:

En el automata es algo muy parecido a esto:
LD entrada1
and entrada2
= salida1

Eso en código de 8052 equivale a
mov c,entrada1 ;carga el carry con el pin 1
and c,entrada2 ; hace un and del carry con el pin 2
mov salida1,c ; mueve el resultado al pin 3

Si no recuerdo mal eso se puede hacer tal cual cambiando los nemónicos a los del pic, osea que lo único que hay que hacer es cambiar una instrucción por otra y luego que lo ensamble el ensamblador del pic, es lo que yo hice con unas macros. Si estás animado puedes generar el binario directamente.
 
IAP es usualmente más conocido por ISP (In System Programming), pero al menos por estos lares (unos 300Km al norte de maestro Scooter) también se conocen estas siglas.

Todos los autómatas que he visto en la industria (y ahora trabajo en el sector del automóvil) se programman en ladder. Se llama así porque el programa parece una escalera de mano, llena de rayas horizontales.

Creo que el sistema se basa en poner en serie contactos abiertos y cerrados entre una entrada y una salida, pero en realidad no he usado nunca ese tipo de programación gráfica.

Aún así, creo que lo que se pretende es hacer una especie de 'macro' que 'traduzca' el diseño gráfico a macros en ensamblador/C, y luego compilarlo directamente al micro.

Queda decir, que aunque no estoy muy seguro, mientras en los PLC's 'viejos' (esos basados en el veterano 8051) el programa se compilaba y se guardaba en RAM, en los 'nuevos' (ARM7 o incluso ARM926) el programa se interpreta, también sobre RAM, pero con un SO de trasfondo, librerías precompiladas, etc. La velocidad y capacidad de ejecución no es comparable.
 
No, ISP e IAP son dos cosas diferentes: ISP es que se puede programas sin sacar del sistema. IAP es que se puede programar sin salir de la aplicación. Evidentemente todos los IAP son ISP pero no al revés.

Gracias por la aclaración: Ladder o escalera es lo que siemens llama KOP y por aquí se suele llamar diagrama de contactos. Su traducción a una lista de instrucciones y por lo tanto a ensamblador es casi directa. Ahora no recuerdo como pero eso es lo que hacía mi primer proyecto del 93, era mucho mas sencillo de lo que parece.
Sin ir mas lejos los programas de siemens guardan la info en lista de instrucciones y permiten visualizar el programa indistintamente en las tres versiones. (la tercera, FUP, son las puertas pintadas)

Los autómatas de siemens de la serie S5, los AG90 y AG95 llevan un 8052 dentro, el resto no lo se. Aunque lo guarden en ram apostaría, esto ya no lo se, a que esa ram está mapeada en la memoria de programa (los 8052 al igual que los pic son harward no von newman como los PCs)... todo esto nos lleva a dos posibilidades:
a) Hacer el programa en código nativo, osea en flash en el caso de un pic
b) Hacer un programa interpretado, osea en ram

Es discutible, pero yo me inclino claramente por la a) por varias razones:
  • Es mas rápido de ejecución
  • Si es flash IAP se puede reprogramar el autómata sin pegas
  • No conozco los derivados disponibles, pero apostaría a que tienen muchísima mas flash que ram
  • Como ya está en la flash no hay que preocuparse de que se borre al quitar la corriente
  • Permite programar al autómata en cualquier lenguaje, por ejemplo C o por ejemplo empezar con "ladder 0.1" y conforme se avance se pasa a "ladder x.x" reprogramando el PC y sin tocar el PLC
La única pega es que se tiene que compilar a ejecutable, en mi proyecto lo hacía en el PC y mandaba un volcado estándar en .hex . También lo podría compilar el PIC pero no me parece lógico cargarle mas trabajo del meramente de control.

Las desventajas del método b) salen rápidamente de lo antes comentado
  • Mas lento en ejecución
  • Mas complicada la programación de un intérprete en el PIC. Esta es la tarea análoga a l compilado de antes, osea que no te escapas
  • Menos capacidad de ram
  • La ram se borra, tendría que ser eeprom que también es corta
  • Cualquier error o mejora en el "ladder" conlleva actualizar el firmware
Con el método a) lo único que tiene que llevar el pic es un firmware que comunique con el PC y descargue la aplicación binaria y la ejecute, poco mas que un bootloader. Que detecte si la aplicación ya está en flash al arrancar y si la tiene que ejecutar directamente.
Además ese firmware puede llevar facilidades para lo que creamos necesario; LCD, comunicación USB ó 485 y que eso sea fácil de usar por el programa de usuario. Por ejemplo en mi segundo proyecto gestionaba 8 timers por soft empleando un solo timer de hardware.

Total que se haría IAP cada vez que se manda el programa al "autómata" e ISP cada vez que se actualice el firmware, por ejemplo para que admita otra pantalla LCD diferente.
 
Última edición:
Hola

Scooter, buena la opinion de como tratar el codigo al pasar al PLC; no se aparten de lo siguiente:

1. De los PLC se puede obtener el programa que esta ejecutandose.
2. Pueden estar ejecutando un programa y sin embargo puedes cargarle otro o modificar el que se esta ejecutando sin dejar de que el PLC deje de atender la maquina a la que esta conectado.

No es cosa de volverse exigentes, pero; estas son las minimas prestaciones de los PLC actuales.

Asi que la arquitectura del firmware debe ser capaz de poder acercarse a este tipo de monerias.

Dejar .Hex o cualquier otro tipo de formato para que se programe despues no es una solucion deseable; directo del software-PC hacia el PLC via USB (los seriales estan dejando de existir en la laptops).

J2C. Gracias por el ofrecimiento y te tomo la palabra. Para no hacer crecer el hilo podrias enviarme un mensaje privado para ponernos de acuerdo. Creo que no se pueden proporcionar direcciones de correo externas al foro.

Saludos !!!
 
La 2 la cumplía perfectamente mi proyecto. Solo hay que cuidar que un programa no pise al otro. Permitía hasta ocho programas.
La 1 no la implementé pero bastaría con hacer que transmita al revés los datos.
Lo del .hex es solo un formato para empaquetar los datos, es para no inventar lo que ya se ha inventado; se pase por usb o como sea hay que definir como se envían los datos, que direcciones ocupan, un checksum etc. Eso el formato .hex o el de motorola que no recuerdo como se llamaba lo hacen independientemente de que canal de comunicación se emplee.
 
Hola nuevamente

Les dejo el ejecutable con los avances al momento, se aceptan opiniones, unicamente esta implementada la parte de trazado del diagrama de escalera.

Como prerequisito se tiene el framework de .net en version 3.5, aqui la liga si lo necesitan:

http://download.microsoft.com/download/6/0/f/60fc5854-3cb8-4892-b6db-bd4f42510f28/dotnetfx35.exe

Reglas que estableci:

1. El area de trabajo esta formado por 7 columnas (A, B...G) y 128 renglones
2. Los elementos de trabajo son (I) entradas base del aparato, (Q) Salidas base del aparato, (M) relevadores virtuales de trabajo, (T) temporizadores y (C) contadores
3. Para colocar un elemento debe arrastrarlo haciendo clic en cada simbolo y dejandolo caer en la zona de trabajo
4.Los elementos pueden estar en columnas impares unicamente (A,C,E,G)
5.Los elementos de entrada (I) no pueden ponerse en la columna G (es solo para bobinas)
6.Para conectar los elementos se debe hacer uso de la herramienta de trazado, esta en la barra de herramientas con el icono de un lapiz.
7.Cuando se selecciona dicha herramienta, el cursor cambia segun el paso requerido, al entrar a la zona de trabajo muestra una leyenda "Desde" indicando que debe seleccionar el elemento origen, pudiendo ser un elemento del aparato o una coneccion; despues de seleccionar el origen el cursor cambia a "Hasta", debe elegir otro elemento del aparato o bien una celda vacia que este en sentido ortogonal, es decir en direccion horizontal o vertical en relacion al elemento elegido como origen (nunca en diagonal).
8.Puede usarse la tecla "Esc" para abandonar el modo de trazado
9.La tecla "Supr" sirve para eliminar un elemento en la zona de trabajo.

Siguiente paso:
- Configurar los elementos colocados en la zona de trabajo

Se aceptan criticas, comentarios, sugerencias y apoyo (envio fuentes del proyecto).

Saludos
 

Adjuntos

  • simPLC.zip
    44.9 KB · Visitas: 102
Bajaaaando, cuando la pruebe comento.


Muy buen trabajo, muy profesional.
¿Se admiten comentarios?
 
Última edición:
-Creo que deberían de haber mas columnas para poder hacer programas mas complejos y que permita poner símbolos en todas
-El sistema de "cableado" es un poco confuso, al menos no me he aclarado muy bien, ha sido a base de ir cacharreando sin mucho orden cuando lo he cableado
-¿Como vas a guardar el programa? ¿Sabes si hay algún método estándard? Lo digo porque tiene una pinta fantástica y creo que se podría emplear para mas cosas aparte de programas nuestro plc-pic, como por ejemplo para didáctica con un simulador. En canalPLC hay unos simuladores de Siemens S7200 que se me estaba ocurriendo que podrían usarse, por citar un caso. Otra posibilidad es acoplar el código de salida a otro "plc" como podría ser el que yo hice u otro de los existentes...
 
Que tal Scooter

Seguramente te ha resultado confuso como usarlo, ofrezco una disculpa ya que deberia haber un manual para esta primera parte; prometo elaborarlo lo antes posible.

Respecto al numero de columnas creo que por el momento deberian ser mas que suficientes, tenemos 128 posibles escalones (renglones) verticales, si extendemos las columnas ganaremos un poco de complejidad en la vista (desplazarse de forma vertical es mas sencillo por medio de la rueda del mouse que arrastrar la barra de desplazamiento horizontal).

De cualquier modo deje el codigo de tal forma que no estan fijas las dimensiones, ni vertical ni horizontal; que tal si lo dejamos parametrizable por el usuario?

Creo que ya me has captado la idea de porque pense que el proyecto podria iniciarse elaborando el software de la PC, el simulador puede usarse independientemente si tienes el PLC con fines didacticos.

El formato para guardar el diagrama de escalera puede ser desde un sencillo CSV como el que usa excel o simplemente un texto plano.

La idea de poder conectar al software un PLC estandar no es mala pero, habria que investigar el protocolo y forma en que se debe transferir un diagrama al equipo en cuestion.

No he podido subir mas actualizaciones del software ya que mi equipo se daño y apenas estoy estabilizandolo. Unos dias mas y me pondre al corriente.

Gracias por las observaciones y seguro que leyendo el manual que en breve subire te quedara claro cual es la idea que sigue el procedimiento para crear el diagrama.

Saludos
 
Seguramente te ha resultado confuso como usarlo, ofrezco una disculpa ya que deberia haber un manual para esta primera parte; prometo elaborarlo lo antes posible.
Está muy bien para ser una versión inicial

Respecto al numero de columnas creo que por el momento deberian ser mas que suficientes, tenemos 128 posibles escalones (renglones) verticales, si extendemos las columnas ganaremos un poco de complejidad en la vista (desplazarse de forma vertical es mas sencillo por medio de la rueda del mouse que arrastrar la barra de desplazamiento horizontal).
Lo digo porque al final de la línea siempre hay una bobina y no creo que se puede hacer siempre en 8 pasos, aunque si es lioso de momento, déjalo así

De cualquier modo deje el codigo de tal forma que no estan fijas las dimensiones, ni vertical ni horizontal; que tal si lo dejamos parametrizable por el usuario?
Me parece bien

Creo que ya me has captado la idea de porque pense que el proyecto podria iniciarse elaborando el software de la PC, el simulador puede usarse independientemente si tienes el PLC con fines didacticos.
Me parece una buena idea

El formato para guardar el diagrama de escalera puede ser desde un sencillo CSV como el que usa excel o simplemente un texto plano.
Cuanto mas sencillo, mejor

La idea de poder conectar al software un PLC estandar no es mala pero, habria que investigar el protocolo y forma en que se debe transferir un diagrama al equipo en cuestion.
El formato de siemens es "desconocido", al menos por mi, pero lo que hacen los de canal plc es exportarlo a .awl que resulta ser un archivo de texto sencillo.

No he podido subir mas actualizaciones del software ya que mi equipo se daño y apenas estoy estabilizandolo. Unos dias mas y me pondre al corriente.

Gracias por las observaciones y seguro que leyendo el manual que en breve subire te quedara claro cual es la idea que sigue el procedimiento para crear el diagrama.

Quedo a la espera "impacientemente"
 
Hola nuevamente,

Nueva version y manual de la seccion correspondiente al diagrama de escalera.

Saludos cordiales
 

Adjuntos

  • simPLC.zip
    47.7 KB · Visitas: 70
  • Edición del diagrama de escalera.pdf
    785.9 KB · Visitas: 161
Hola a todos,

Yo fabrico un PLC que incorpora la funcionalidad de placa DAQ al mismo tiempo, parece raro, pero me parecio original mientras lo desarrollaba :).

Tiene display LCD e interfaz Ethernet.

Esta pensado basicamente para tecnicos con escasos conocimientos de programacion y minimos conocimientos de electronica, si les interesa, les dejo el link de mi proyecto a continuacion:

El PLC tiene una maquina virtual que ejecuta scripts realizados en lenguaje PAWN, previamente compilados (bytecode).

Cualquier duda me avisan!.

Saludos, Boris.-
 
Última edición por un moderador:
Hola gente, me interesa el tema y vengo a decir una frases:

Hace tiempo trabajo con todos estos equipos, son de Santa Fe, Argentina, y si bien tambien aqui es dificl llegar a comprar equipos de alta gama, y esta muy buena la idea de fabricarlos todos tienen , como siempre, un poco de razón

* Todo es posible, todo se puede realizar
* El costo de fabricar 1 unidad supera ampliamente al de 1 unidad comercial
* Si se fabrica en serie, ya tendrías toda una empresa fabricante de tecnologia, y digo tecnologia porque no vas a poder fabricar sólo el plc...si alguien ha visto o ha trabajao con estos elementos, las fabricas existentes Schneider, Siemens, etc, etc, te ofrecen una gama tan amplia de productos además del PLC que la sola idea te desanima completamente.
* sería necesario una inversión primaria para poder fabricar estos equipos y que el mercado este realmente dispuesto a comprarlos.

estas son sólo algunas consideraciones que deben tener en cuenta

saludos y mucha suerte
 
Que tal DJ

Definitivamente el camino es largo pensando en el avance que nos llevan esas marcas comerciales que mencionas respecto a los PLC (y mas cosas por ahi).

Es extremadamente dificil, mas no imposible.

Tenia buen tiempo de no regresar al foro, debo entregar un proyecto a mediados de Enero y por eso no he podido avanzarle al tema.

Saludos y felices fiestas !!!
 
hola, el PLC de oximoron es una prueba de que si es posible hacer un buen PLC con muchas caracteristicas a un precio razonable. Un PLC comercial con esas caracteristicas como entradas y salidas analogicas y PWM es mucho mas caro, asi que la afirmación de que una unidad comercial es más barata no siempre es cierta.

saludos
 
¿Y el oximoron que és? ¿No es comercial? ¿Lo regalan?....
Les habrá costado un buen dinero y tiempo, saldrá mas barato comprar un oximoron que fabricar un plac casero.
 
Hola a todos,

Si, nos costó bastante esfuerzo el desarrollo, pero afortunadamente lo estamos
empezando a comercializar en industrias locales.

Unos de los aspectos fuertes (además de las prestaciones) es el énfasis
que le pusimos a la documentación, hay más de 500 páginas entre
manuales de usuario, notas de aplicación y hojas de datos, de simple lectura.

La idea es ofrecer un buen entorno de desarrollo para el proyectista y simple.

El PLC está a un buen precio, casi a precio de costo de fabrica,
si alguno pasa por nuestra página, con gusto le paso una
cotización de los distintos modelos.

Lo bueno a mi entender de este PLC, es que está pensado para
ser versátil, puede actuar como data logger, adquirir datos a distancia,
imprimir lo que se te ocurra en el display, utilizar el puerto Ethernet
o serie para datos, reloj en tiempo real para alarmas, variar la frecuencia del PWM, etc.

Dentro del PLC, pueden escribir programas enormes (diría casi ilimitados
por la cantidad de memoria ROM) y utilizar grandes áreas de memoria
para datos temporales (hasta 16 KB de RAM).

Gracias a la actualización on-line del firmware del PLC, si al usuario,
se le ocurre alguna función extra que requiera gran velocidad (por
ejemplo para algún procesamiento de señales o función matemática)
la podemos implementar en código nativo (código del CPU) y luego
de que se actualice el firmware, el usuario accede a la función a través
del lenguaje simple de scripts del PLC.

Actualmente estamos desarrollando módulos economicos para
expandir las entradas y salidas del PLC (hasta 57 entradas
y 64 salidas) y modulos para expandir las entradas
analogicas (conexion de termocuplas PT100, etc).

Somos concientes que nuestros competidores son gigantes como
Siemens, Allen-Bradley, etc, pero muchas veces ellos ofrecen
soluciones muy costosas, que empresas medianas a pequeñas,
no pueden afrontar, y los resultados son los mismos.

Cualquier consulta, no duden en preguntarme.

Saludos a todos y feliz navidad.

Boris Estudiez
 
Última edición por un moderador:
fijense que yo estoy haciendo el mio, el mayor problema que se me esta presentando es la parte del hardware, el diseño de hardware es crítico en cuanto al ruido, el software que estoy usando es el PARSIC
 
Atrás
Arriba