TODOPIC

Lenguajes de programación para PC => Delphi => Mensaje iniciado por: IIIC en 17 de Julio de 2006, 15:31:29

Título: Interfaz Delphi < ---- > dispositivos Electronicos
Publicado por: IIIC en 17 de Julio de 2006, 15:31:29
Bien, mi nombre es Ivan y desde hace algun tiempo migre de visual C++ a Delphi por su rapidez en cuanto al desarrollo de software.

El área que mas me interesa es el enlace de Delphi con cualquier tipo de sistemas electronicos (la primera vez conecte la plancha a mi computadora), y quisiera que este hilo nos sirva para dar soluciones concretas al problema de enlace desde delphi a cualquier puerto.

bien para empezar iniciare con el puerto paralelo (el mas facil) para que de una vez empiecen a trabajar.

Sabemos que en las versiones de windows actuales no se permite acceder a los puertos tan facilmente,
Esto se debe de hacer en el mejor de los casos mediante una DLL que nos de acceso.

Para nuestra fortuna existe una libreria llamada inpout32.dll que hace todo el trabajo, que la pueden encontrar en muchos sitios de internet o pedirmela en mi correo.

Para cargar esta libreria hay que construir una nueva UNIT y declarar las funciones necesarias de la siguiente manera:

unit CargarLibreria;

interface
  procedure Out32(PortAddress: Word; Data: Byte); stdcall;
  function    Inp32(PortAddress: Word): Byte; stdcall;

implementation
  procedure Out32(PortAddress: Word; Data: Byte); external 'inpout32.dll';
  function Inp32(PortAddress: Word): Byte; external 'inpout32.dll';

end.

y ya con esto podemos llamar a las funciones   

                   Out32(Puerto, Dato)

                   Inp32(Puerto)

desde cualquier  porcion de codigo no sin antes anexar nuestra unidad en la clausula USES.


Para enviar el numero del puerto es   888 ó $378 (Hexadecimal)

Ejemplo:    Enviar un cero al puerto paralelo indispensable para inicializar el puerto y al cerrarlo.
////////////////////////////////////

                 Out32(888, $00);

/////////////////////////////////////

Para recibir o leer el dato  el puerto es   889 ó $379 (Hexadecimal)

Ejemplo:    Recibir un dato del puerto paralelo.
//////////////////////////////////////////

Declarar un dato tipo
 
            Dato: Byte;

y capturamos

            Dato := Inp32(889);
//////////////////////////////////////////

Eso es todo por el momento, la proxima ocasión les dire como estan organizados los bytes que recibimos de entrada y de salida, es decir la organizacion fisica del byte.

Al finalizar con el puerto paralelo seguiremos con el puerto serial.

Hasta pronto. Agradeceria que me dieran sus criticas.  :-)


 

 


Título: Re: Interfaz Delphi < ---- > dispositivos Electronicos
Publicado por: RedPic en 17 de Julio de 2006, 15:41:02
Magnifico hilo este que has inaugurado. Muchas gracias por tu aporte, y adelante con él ...  :mrgreen:

Título: Re: Interfaz Delphi < ---- > dispositivos Electronicos
Publicado por: jfh900 en 17 de Julio de 2006, 18:23:31
Muy buen hilo, pero... ¿Por que no subes la libreria?

Un saludo
Título: Re: Interfaz Delphi < ---- > dispositivos Electronicos
Publicado por: IIIC en 17 de Julio de 2006, 20:00:57
Bien, creo que debo de ser consecuente con la filosioia de este hilo, "Dar soluciones concretas" asi es que, de aqui en adelante pondre cada uno de los recursos necesarios a disposicion de ustedes,  solo esperen un poco para hacerme de un espacio en la red y poner ahi todos los archivos. :-)
Título: Re: Interfaz Delphi < ---- > dispositivos Electronicos
Publicado por: IIIC en 17 de Julio de 2006, 20:49:52

Bien, ya tengo un espacio.

Aqui tienen la dirección http://www.paginasprodigy.com/a53410500/compartidos/inpout32.zip (http://www.paginasprodigy.com/a53410500/compartidos/inpout32.zip)

Si el link se rompe por favor me avisan, es un sitio permanente.
Título: Re: Interfaz Delphi < ---- > dispositivos Electronicos
Publicado por: IIIC en 17 de Julio de 2006, 22:23:37
En esta siguiente parte del tema  Puerto Paralelo, queria señalar la forma en que se organiza el byte de entrada y de salida que nos proporcionan las funciones de la DLL.

Pero a cambio de eso les dejo un link a un pequeño programa que acabo de realizar para que vean graficamente la posicion de cada bit y su correspondiente sitio (fisico) dentro del conector DB-25.

http://www.paginasprodigy.com/a53410500/compartidos/pparalelo.zip (http://www.paginasprodigy.com/a53410500/compartidos/pparalelo.zip)

Nota: este archivo tambien contiene el archivo inpout32.dll

Continuare con una sencilla aplicación para controlar un Motor de Pasos bipolar.

Hasta pronto y ojala esten interesados en el tema.
Título: Re: Interfaz Delphi < ---- > dispositivos Electronicos
Publicado por: jfh900 en 18 de Julio de 2006, 06:50:23
Por supuesto que nos interesa, es interesante el trabajo que estas realizando. Así que te anomo a que sigas. Yo soy un enamorado de Delphi. Por cierto que componentes usas para los led del programa?.

Un saludo y animo con el trabajo que estas realizando.
Título: Re: Interfaz Delphi < ---- > dispositivos Electronicos
Publicado por: IIIC en 18 de Julio de 2006, 12:55:42
Bien, pensaba ir desarrollando una aplicacion para el puerto paralelo, pero se que todos ustedes son lo bastante listos para poder implementar correctamente las funciones que nos otorga la DLL, incluso veo que en otro lenguajes tambien presentan la implementacion de esta libreria (c++ y C# ver el tema en el foro).

Ustedes saben que con un poco de informacion se puede hacer trabajar el puerto en todos los modos necesarios EPP, ECP, etc...  solo es cuestion de alterar el byte de configuracion del puerto. (todo se resume a posiciones de memoria), pero si tienen mas preguntas por favor haganlas y juntos buscaremos una respuesta.

Por lo pronto ustedes, que estan acostumbrados al ambiente de Delphi, saben que algunas cosas se resuelven mediante los Componentes que algunos programadores liberan para nuestro uso, y gracias a todos ellos podremos avanzar facilmente en el tema del PUERTO SERIAL.

No hay mucho que decir y bastante que aprender, para el puerto serial es indispensable saber como se configuran sus parametros  (velocidad, paridad, etc...) y lo que cada uno e ellos implica.

En delphi estos parametro se pueden editar en el momento del desarrollo y demas se pueden activar eventos para saber en que momento se reciben datos.

Sin mas preambulo les dejo  la direccion donde pueden descargar el componente necesario para manejar el puerto serial

http://www.paginasprodigy.com/a53410500/compartidos/cport-3.10.zip (http://www.paginasprodigy.com/a53410500/compartidos/cport-3.10.zip)

las instrucciones necesarias para la instalacion vienen dentro del archivo, es compatible con las versiones 4,5,6,7, 2005 2006.

Asi que a trabajar y aprender.   Les mando un saludo y pronto publicare algo sobre el puerto USB.

 

 
Título: Re: Interfaz Delphi < ---- > dispositivos Electronicos
Publicado por: IIIC en 18 de Julio de 2006, 13:38:56
Ademas para que comiencen a experimentar con el puerto paralelo les dejo un buen tutorial a su disposicion (BONUS)

http://www.paginasprodigy.com/a53410500/compartidos/Interfacing Micro.zip (http://www.paginasprodigy.com/a53410500/compartidos/Interfacing Micro.zip)

que nos muestra conexiones del los microcontroladores.

Desde un simple led o boton, hasta interfaces avanzadas LCD, Serial etc. espero les guste y sobre todo les sirva para sus proyectos.

Desde México un saludo a todos los del foro, que sin su ayuda no podria haber construido mi GTP USB LITE.

Continuara...
Título: Re: Interfaz Delphi < ---- > dispositivos Electronicos
Publicado por: Manofwar en 18 de Julio de 2006, 15:06:45
Hola IIIC, acabas de ahorrarme algunas horas buscando en la net el componente para el puerto serie.

1M de gracias.
Título: Re: Interfaz Delphi < ---- > dispositivos Electronicos
Publicado por: maunix en 21 de Julio de 2006, 13:30:22
Hola IIIC, acabas de ahorrarme algunas horas buscando en la net el componente para el puerto serie.

1M de gracias.

Jejeje, un pasito por Enlaces, recursos, tutoriales y trucos de Delphi te hubiera ahorrado también muchas horas.

Echale un vistazo al TurboPower Async Professional
http://www.todopic.com.ar/foros/index.php?topic=11497.msg63351#msg63351 (http://www.todopic.com.ar/foros/index.php?topic=11497.msg63351#msg63351)

yo usaba el cport hasta que descubrí las librerias tpapro, te sugiero que pruebes ambos y saques tus propias conclusiones :) :)


Saludos
Título: Re: Interfaz Delphi < ---- > dispositivos Electronicos
Publicado por: RedPic en 21 de Julio de 2006, 13:33:58
Yo utilizo las TpaPro desde hace años y me sería muy dificil cambiar a otras sin que me presionasen mucho, mucho mucho ...  :mrgreen:  :mrgreen:  :mrgreen:

 
Título: Re: Interfaz Delphi < ---- > dispositivos Electronicos
Publicado por: Manofwar en 21 de Julio de 2006, 14:00:20
:z):z):z)

Si ya me lo decía mi madre cuando era pequeño, tienes que leer más, hijo, tienes que leer más.
Título: Re: Interfaz Delphi < ---- > dispositivos Electronicos
Publicado por: maunix en 21 de Julio de 2006, 14:42:06
:z):z):z)

Si ya me lo decía mi madre cuando era pequeño, tienes que leer más, hijo, tienes que leer más.

Jajaja  :D :D  :mrgreen: :mrgreen:

Yo comencé con el CPORT y hace un par de años uso TPAPRO..... y como dice Diego, también me tendrán que amenazar con violencia para que los cambie...

Hace más de 10 años que se vienen desarrollando estos componentes y realmente funcionan muy bien, no tengo quejas en lo absoluto.  Las veces que no anduvieron es porque yo mal interpretaba alguna informacion.  Además cuentan con un par de PDFs realmente muy extensos donde se cubre (en alguna medida) todos los aspectos de cada componente.

Incluso un mismo ejecutable, con acceso a hardware como es el puerto serie, puedes usarlo en Win98, Windows NT, Windows 2000, Windows XP!  Osea --> excelente!!

El CPORT deja mucho que desear en ese aspecto.

Incluso, por ejemlo, el SIOW que viene con el CCS se ha programado con el TPAPRO ;)



Título: Re: Interfaz Delphi < ---- > dispositivos Electronicos
Publicado por: RedPic en 21 de Julio de 2006, 16:29:35
Como nota anecdótica sobre los TpaPro, y sobre todo su componente TapdComPort ....

Mi trabajo actual, en el que llevo dos años y ya me han hecho contrato indefinido, se lo debo en gran medida a haber podido montar en solo un par de días un programa Delphi que controlaba una red RS-485 con mas de cien dispositivos colgados ... llevaban meses intentándolo y nadie había sido capaz de solucionarlo con rápidez y elegancia.

TpaPro lo hizo, con un poco de ayuda por mi parte.  :mrgreen:

Título: Re: Interfaz Delphi < ---- > dispositivos Electronicos
Publicado por: jfh900 en 21 de Julio de 2006, 16:32:30
Y delphi donde me lo dejas?  :-)

Un saludo
Título: Re: Interfaz Delphi < ---- > dispositivos Electronicos
Publicado por: valdorre en 23 de Julio de 2006, 01:14:52
de donde me puedo bajar ese componente TpaPro??
saludos
Título: Re: Interfaz Delphi < ---- > dispositivos Electronicos
Publicado por: RedPic en 23 de Julio de 2006, 04:43:42
TpaPro en http://sourceforge.net/projects/tpapro/
Título: Re: Interfaz Delphi < ---- > dispositivos Electronicos
Publicado por: picpatagonia en 26 de Julio de 2006, 11:35:27
Estimados:
               Con respecto a la comunicación por puerto USB, tendrían información, quizás algún componente para trabajarlo?
               Saludos desde Neuquén, Argentina.
 :)
Título: Re: Interfaz Delphi < ---- > dispositivos Electronicos
Publicado por: mariano_pic en 29 de Enero de 2007, 19:59:21
Hola amigos yo solia manejar el puerto paralelo con delphi, pero tengo un problema  :lol: desde que todo mundo usa xp no me funciona y bueno agradeseria un componente compatible con delphi 5 que no me moleste mas o una dll, con su correspondiente ayuda, a y que sea de libre uso.
Grasias mariano_pic
Título: Re: Interfaz Delphi < ---- > dispositivos Electronicos
Publicado por: IIIC en 30 de Enero de 2007, 04:58:40
Al inicio del Tema esta indicada la libreria  inpout32.dll (gratuita) la puedes encontrar muy facil en internet, (disculpa que el link no este funcionando, hice limpieza en mi sitio)  la forma de usarla tambien se muestra ahi.

De todas formas si tienes problemas en encontrarla, enviame un e mail y te envio lo necesario.

Hasta luego.
Título: Re: Interfaz Delphi < ---- > dispositivos Electronicos
Publicado por: gonzalo_asc en 21 de Octubre de 2008, 00:32:57
Hola IIIC, acabas de ahorrarme algunas horas buscando en la net el componente para el puerto serie.

1M de gracias.

Jejeje, un pasito por Enlaces, recursos, tutoriales y trucos de Delphi te hubiera ahorrado también muchas horas.

Echale un vistazo al TurboPower Async Professional
http://www.todopic.com.ar/foros/index.php?topic=11497.msg63351#msg63351 (http://www.todopic.com.ar/foros/index.php?topic=11497.msg63351#msg63351)

yo usaba el cport hasta que descubrí las librerias tpapro, te sugiero que pruebes ambos y saques tus propias conclusiones :) :)


Saludos


queria saber mas sobre este componente soy nuevo en delphi y quiero saber si sirve para win xp y como lo instalo puesto que he intentado instalarlo de acuerdo al documento anexo (en la pagina de descarga) pero no lo consigo, ayuda porfavor....
Título: Re: Interfaz Delphi < ---- > dispositivos Electronicos
Publicado por: gonzalo_asc en 22 de Octubre de 2008, 21:38:21
TpaPro en http://sourceforge.net/projects/tpapro/

POR FAVOR AYUDA  :::He intentado "instalar" el componente asyncpro para un proyecto en delphi 7 con sistema operativo winxp  pero no consigo completar la instalación cuando intento compilar el paquete r70 me arroja un error (en rcl o vcl), quiza lo estoy haciendo mal  por favor si me pudieras explicar como instalarlo te lo agradeceria muchisimo, de antemano gracias.             
Título: Re: Interfaz Delphi < ---- > dispositivos Electronicos
Publicado por: mariano_pic en 23 de Octubre de 2008, 09:39:36


 pregunta en www.clubdelphi.com
Título: Re: Interfaz Delphi < ---- > dispositivos Electronicos
Publicado por: pantera08 en 04 de Febrero de 2010, 21:58:54
saben como se hace para recibir datos por el puerto parelelo, lo que quiero hace es que me reciba un dato por el puerto de estado y cuando reciba deje de enviar el dato por alguno del d0.d7 mi pregunta es si es nesesario meterlo en un repeat para que lea a cado rato el puerto   o basta con un if o while o alguno de esos
Título: Re: Interfaz Delphi < ---- > dispositivos Electronicos
Publicado por: mariano_pic en 06 de Febrero de 2010, 22:51:58

saben como se hace para recibir datos por el puerto parelelo, lo que quiero hace es que me reciba un dato por el puerto de estado y cuando reciba deje de enviar el dato por alguno del d0.d7 mi pregunta es si es nesesario meterlo en un repeat para que lea a cado rato el puerto   o basta con un if o while o alguno de esos

  Si haces eso, es posible una ves que entre tu programa se bloquea, puedes hacerlo pero dentro del evento de un timer, cuando te llegue un dato entonces cambias una variable externa. A menos que la rutina sea enviar un dato, y tenga una funcion que permita detectar el no recivo del dato, de forma que no se quede indefinidamente dentro del bucle. Tal ves tengas que mostrar parte de tu codigo para ver de que se trata saludos.