![]() |
Delphi en la industria
Hola.
Mi pregunta es esta; Imaginaos que hago con delphi una aplicacion industrial para poder mover una pequeña maquina desde un PC. Este PC esta conectado por medio de ethernet a un switch y a ese switch esta conectado un automata programable. El programa interno del automata ya esta hecho, y funciona, pero quiero mover la maquina desde el PC con la aplicacion que he hecho en delphi, asi como visualizar los estados de las entradas y las salidas de ese automata. Necesito asignar a los botones de mi aplicacion Delphi, unas direcciones para que el automata obedezca. No se si me he explicado bien. No puedo colgar el ejemplo aún. Un saludo a tod@s. |
Pues qué bien, me alegro :)
Bienvenido a clubdelphi, ¿ya leiste nuestra guía de estilo?, gracias por tu colaboración. |
1 Archivos Adjunto(s)
Gracias por la bienvenida.
Y si, si que he leido la guia de estilo. ¿No esta bien planteda la duda, o no esta en el lugar correcto? Esta seria la estructura de dicha aplicacion industrial: |
Sinceramente, a través de la red, no lo sé. Yo siempre que he hecho cosas de ese tipo ha sido conectado el pc directamente a la máquina por algún puerto (serie o paralelo), a ver si algún compañero puede ayudar.
Es que esto no tiene realmente nada que ver con delphi, da igual el lenguaje, el problema o la duda es si se puede controlar y recibir información de una máquina a través de una red local. Interesante el tema. |
Hombre, tiene que ver con delphi, por que con el es con lo que hago la aplicacion, o el scada.
Sinceramente, no es a modo profesional, estoy iniciandome en delphi y me gustaria aprovecharlo para fines industriales, aunque ya se que hay otro tipo de programas o lenguajes para este tipo de cosas, Bisual Basic por ejemplo, o programas tipo wincc de siemens, etc, etc Espero que mis dudas no creen polemica. Por cierto Casimiro Notevi, imagina que nos saltamos el switch y lo hacemos desde un puerto serie directamente, o integrando una tarjeta Profibus en mi PC. ¿como asigno las direcciones hacia los botones programados en delphi? Gracias. |
No, si no digo que no tenga nada que ver, sino que el problema es enviar/recibir información de la máquina, independientemente del lenguaje a usar, que en este caso, por supuesto, es delphi :)
Supongo que tendrás que hacerlo como cualquier otro aparato, como si fuese una impresora, una báscula, etc. es cuestión de conocer cómo funciona la máquina, quiero decir que deberías tener las especificaciones del mismo y mandarle esos códigos, al igual que una impresora, le envías chr(12) y avanza página (por ejemplo), pues esa máquina tendrás que enviarle unas cadenas de caracteres de control para hacer una cosa u otra. Luego se lo asignas a un botón, a un menú, o a lo que tú quieras, pero necesitas conocer los datos a enviar. Igualmente necesitas saber también qué información y cómo envía los datos de vuelta la máquina para poder leerla desde tu programa, etc. Lo normal con cualquier dispositivo externo. Por red local también se debe poder, ya sea directamente o a través de un dispositivo, al igual que las impresoras de red, que envias datos a una IP. También existen los administradores de impresión que son aparatitos que se conectan entre el pc y las impresoras... pues igual, pero con las máquinas que quieras manejar. Evidentemente, si no tenemos información de cómo funciona esa máquina, no podemos hacer nada. Tendrás que buscar esa información en sus manuales, en la web del fabricante, etc. |
1 Archivos Adjunto(s)
El ejemplo sería este mas o menos:
|
Cita:
Por ejmplo, a traves de una tarjeta espedial de ese tipo de comunicaciones con esos aparatos, las variables de esas entrads o salidas, serian marcas internas de esos aparatos, por ejemplo M200.0, M200.1, etc, etc. No se si me he explicado bien. Primero debo saber como asignar direcciones desde delphi hacia afuera. |
Cita:
En este caso, esa máquina que quieres controlar está esperando una serie de "comandos" para hacer cosas, ¿qué comandos son y qué está esperando para hacerlo?, pues esa es la pregunta. |
Cita:
Esa es la pregunta; ¿que comando debo asignar a los botones que programo en delphi para que se redirijan hacia un periferico conectado a mi PC? Gracias de antemano. Un saludo. |
Por partes,
si tú quieres conectarte a cualquier dispositivo, tendrás que saber cuanto menos las siguientes cuestiones. Protocolo Set de instrucciones Protocolo: dependiendo de cómo se comunique el dispositivo, tendrás que acceder al puerto, configurarlo, y una vez hecho esto, enviarle comando que estén dentro del juego de instrucciones que entienda el cacharro.Generalmente, el propio cacharro devuleve un check (ok) cuando ha recibido el comando y lo 'ha digerido'. Si te comunicas con le dispositivo por el puerto serie, tendrás que abrirlo, configurar la velocidad, los bits de paridad, .... Si está conectado vía ethernet, obviamente tendrás que llegar él vía ip ( generalmente podrás hacerle un 'ping 192.168.1.1', Se t de instruciones: dependiendo del cacharro, tendrá un set de instrucciones que entienda. Dependiendo de quién lo ha programado, podrá ser desde poner a 1 el 2º bit de no sé qué dirección de memoria, a enviarle la cadena 'mover izquierda 10 grados'. Lo dicho, generalmente después de enviar la instrucción el cacharro dice ok, lo he entendido ( otra cosa es que haga lo que quieras ) o nada, lo que quiere decir que no entiende ni escucha. En todos los casos, el propio fabricante facilita una dll que encapsulan todas las funciones de configuración, envío de comandos, etc que traga el cacharro. Espero que te haya servido de ayuda. Saludos |
Cita:
Creo que no me se explicar... |
Cita:
Es que adivinos no somos ninguno ;) |
Os pido paciencia por favor, ya que soy nuevo en esto no he estudiado programacion. Lo poquito que se lo he aprendido de manera autodidacta.
Abro delphi 7 y creo un new form. En la barra de herramientas pulso el icono cuadrado con el ok dentro y ya me aparece el boton. ¿Y ahora? ¿Como le asigno una orden para que ejecute una aplicacion externa? De momento solo para probarlo ¿En propertis? ¿En events? |
Es que no es eso, amigo, creo que te he puesto un ejemplo antes con la impresora:
Veamos, quieres controlar una máquina impresora, y quieres que avance el papel una página, ¿cómo lo haces?, pues vas a las instrucciones de la impresora y buscas... a ver.. a ver... "para avanzar una página debe enviar el carácter de control 12". Perfecto, pues así con todos los comandos que quieras usar en la impresora, cambio de tipo de letra, retroceso, avance de tabuladores, tamaño de la fuente, etc. Cuando ya tengas todos los comandos, entonces es cuando debes irte a tu programa, pero si no los tienes y no sabes siquiera por qué puerto, velocidad, paridad, etc. hay que pasarle los comandos, entonces no puedes hacer nada... hasta que lo sepas. |
Creo que los dos decimos lo mismo pero tu te vas al comienzo de la organizacion del sistema para hacer acopio de esa info, y yo ya doy por hecho que tengo esa info y no se donde escribir los comandos en mi programa delphi, y tampoco que comandos son.
Seguire buscando y cuando tenga la solucion, la colgare aqui por si a alguien le interesa. Muchisimas gracias por vuestras respuestas. Seguire por aqui a ver si aprendo. Esto es todo un mundo. |
Cita:
|
Cita:
Por eso me he registrado. Busco respuestas. Los que sabeis deberiais tener un poco de paciencia y entender que los que no sabemos erramos en las preguntas, tanto en el fondo como en las formas. |
A ver, amigo, nadie se está "cebando", tú necesitas saber una serie de comandos que necesita una máquina (que ni siquieras has dicho qué máquina es), y la respuesta ya te la hemos indicado varias veces: "consulta el manual de la máquina o pregunta al fabricante".
Esa es la única respuesta, por muchas vueltas que le des. |
Hola, yo básicamente solo utilizo delphi en entornos industriales, telecontrol de maquinas y recopilación de datos de producción.
Creo que la pregunta que planteas es errónea, no hay ninguna respuesta correcta para tu pregunta ya que hay muchos factores a tener en cuenta. Lo primero que tienes que hacer es lo que ya te han comentado varios compañeros, mirar que tipo de protocolo de comunicación tiene disponible el PLC con el que te quieres comunicar, el protocolo mas extendido de la industria es Modbus, tanto sobre ethernet como sobre RS232 y RS485. Observando tus comentarios veo que tu nivel de programación es bastante bajo ( esto no es una critica, todos hemos empezado alguna vez). Lo que te recomendaria es leer algún manual sobre delphi para entender los conceptos básico del lenguaje y una vez que lo domines meterte en algo mas compliaco como es comunicarse con dispositivos industriales. Según te vayan surgiendo preguntas mas concretas puedes plantearlas e intentaremos ayudarte. Un Saludo. |
Que no, que no Casimiro, que yo necesito saber que comandos programar en delphi para redireccionarlo a una maquina externa
Que sea a traves de ethernet, modbus, profibus, profinet, ASI o lo que sea es indiferente ahora mismo. |
Puede ser que el PLC deba enviar los registros de las I/O a una base de datos en el PC. y desde esa base de datos leer y escribir.....
Pero ¿como recojo los registros de la base de datos para activar casillas en delphi (colorear segun si es 0 verde o 1 rojo), y como desde delphi cargo en la DB las pulsaciones sobre los botones de mi scada para convertirlas en 0 y 1 en mi plc? |
Algo asi?
Es una asignatura que tengo pendiente por lo que no puedo ayudarte mucho. El plc que manejas (imagen Siemens S7-300) maneja una biblioteca de comandos Modbus. Este es un enlace a un documento en ingles que te puede dar mas luz sobre esto. Si logras algo y posteriormente nos puedes informar se agradece. |
Cita:
Gracias. Efectivamente soy un N00B en programacion. Seguire leyendo y planteare por aqui preguntas mas concretas. Gracias. |
Cita:
A ese codigo me referia !! o a otro muy parecido que vincule mi programa delphi con un PLC Jolin, ha costao que me entendieran pero se va viendo la luz al final del tunel Investigo y me paso por esta gran web. ;) |
He encontrado esta conversacion en ingles por inet y la he medio traducido.
Cita:
Gracias a todos |
A ver... que parece que no captas...
¡Que se necesita saber que aparato, máquina o nave extraterreste es! En base a eso es que podremos ver cómo, y que, hacer al respecto. Tal vez se requiera de algún componente especial, tal vez basta con alguna biblioteca de comunicación por puertos genérica, etc. Los comandos a enviar dependerán del aparato, del protocolo, etc. Naturalmente el código de la aplicación dependerá de ello. Si te han dicho, hasta el cansancio, de que se necesita de una mejor explicación de los aparatos y una debida información al respecto es porque en realidad hay que estudiar de que trata todo esto. No puedes esperar a que te digamos que "comando" o código se necesita si tu no estas dispuesto a ceder y brindar la debida información... Al menos di que aparato y marca es. Quizá así ya podamos darnos una idea... Por lo general los mismos fabricantes ofrecen bibliotecas, componentes, SDK, etc además de la debida documentación para poder comunicarse con sus aparatos pero si no hay nada de ello, estás frito. Y no hay modo de encararlo. No somos adivinos. Y con todo respeto... si no tienes ni siquiera una pizca de noción de programación como para hacer un hello word lo más decente es que desistas de semejante proyecto. Para aprender hay otros retos, no se... prueba primero en hacer una calculadora. Busca un reto más acorde a tu medida, ¡que te estás suicidando! Y por favor evita mencionar a VB que es el peor entorno por el cual intentar hacer semejante proyecto; preferiría escuchar en todo caso C# o C++ antes que VB. Saludos, |
Es que somos un poco "corchos", por eso no te entendemos, menos mal que gracias a tu insistencia ya vemos la luz al final del túnel.
Suerte con el proyecto, ya nos contarás :) |
Debo de reconocer que tienes algo fundamental y mas importante que los conocimientos. Perseverancia :-)
|
Después de leer el link que pone otro forero y que dices que es chanchi molongui, puedo suponer que quieres conectarte a un cacharro plc S7-1500. Una vez hecha esta suposición, busco en google y me aparace una página del fabricante, que da bastante información.
https://www.swe.siemens.com/spain/we...Ed.2009-11.pdf Una vez te chapes el manual, seguramente lo tengas más claro. Un saludo |
|
Hola de nuevo.
Creo que voy entendiendo. :D De momento me hace falta una libreria que haga de enlace (como ya me habian indicado por aqui :o, y es por ello que pido disculpas por no saber leer) :( De momento he encontrado libnodave, que interpreta y enlaza Delphi, lazarus, C++, etc con bastantes automatas industriales. http://libnodave.sourceforge.net/ Es de libre distribucion, basada en LINUX y de codigo abierto. Ahora a pelearme con estas aplicaciones Espero que me disculpeis y entendais mi ignorancia. Colgare los resultados (cuando los tenga, que me llevara tiempo :eek:) |
|
Resulta que tú quieres hacer un programa en Delphi donde dices que lo único que sabes de delphi es que pegas un TButton y luego preguntas y después....
Macho, para recibir una contestación útil, orientada en tu pequeño saber, debes de hacer una pregunta, que al menos tú la entiendas y la puedas transmitir a los demás ya que no estamos viendo tú cacharro, ¿has leído tú pregunta otra vez, para saber lo que dice?. Dices que en otra web has visto la luz y las has traducido. Macho, la luz que has visto han sido proporcionados por los compañeros de ésta web VB, que c....ño es eso. Estamos aquí encantados de ayudar a cualquier persona, que no entienda o que se le atasque algún Objecto, Función o Procedimiento, pero lo primero es tener alguna documentación del cacharro para poder realizar alguna pregunta relacionado con el cacharro, no como la primera pregunta. Ahora si tú preguntas: Cita:
Un saludo. |
En fin, la vida es muy dura ;)
|
Te agradezco tu respuesta, pero no aporta gran cosa, además de parecer un poco arrogante, ¿no?
|
Cita:
|
Cita:
Un saludo. |
Mis dos centavos al tema, aunque suene agresivo: estás intentando hacer algo industrial, para poner en producción, pero antes de largarte en una empresa de ese tipo creo que te convendría dominar conceptos básicos de protocolos, electrónica, comunicaciones, y sobre todo Delphi.
Mejor deja eso (lo de la máquina) para dentro de dos años y ponte a estudiar lo más básico de Delphi. Todo a su tiempo. |
Este... ejem... :rolleyes:
Cita:
Desiste flaco, aprende a reconocer el calzado que mejor te calza. Si realmente necesitas de esto ve a por los servicios de un profesional calificado ¡que para eso están! Claro... es una tontería que con 2 clics se hace todo y sin saber ñaca de ñaca :mad: Ve aprendiendo diagrama de flujo y algoritmia a ver si al menos así te iluminas. Si así no captas por donde van las cosas y que te estamos diciendo de buena manera que te estás por cochar y muy feo... entonces ¡mejor dejamos que choques a ver si así te das cuenta de la magnitud! Y ojo... que no lo digo con prepotencia... esto es prepotencia: ¡Flaco, abrí bien los ojitos chinitos que tenés... no podes ser más ciego. Date cuenta que es IMPOSIBLE que lo hagas tu solo sin nada... Sos un salame. ¡Dejate de joder y no nos hagas perder más tiempo! No se... si ni con las anteriores palabras y las de con prepotencias no reaccionas... entonces este... como por decimos por aquí ¡sos un b****o importante! :D |
| La franja horaria es GMT +2. Ahora son las 13:19:15. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi