Página 1 de 1
Clarion - PLC
Publicado: Mar Jun 12, 2012 10:14 pm
por raai
Hola posiblemente pueda desarrollar un sistema en el cual tenga que comunicarme con unos PLC's alguien me puede orientar como buscar información para poder realizar esto.
Saludos y gracias.
Re: Clarion - PLC
Publicado: Lun Jun 18, 2012 11:46 pm
por raai
Bueno me he bajado un dll con el cual se supone que puedo operar el PLC que les comento. Necesito poder usar este dll en clarion
Me pueden orientar de como uso este dll en clarion, el dll no es clarion es para usarse en windows. Ya tengo el archivo lib generado con libmaker de clarion.
Se supone que debo de definir los prototipos en clarion pero aqui es donde no se como se hace, por favor ayudenme.
Saludos.
Re: Clarion - PLC
Publicado: Mar Jun 19, 2012 9:15 am
por Clemar
Hola Raii:
Tal vez deberías poner algún dato de como es la operación que necesitás realizar con el PLC.
Por ejemplo, nosotros tenemos una aplicación que solo debe subir a la base de datos los reportes del plc.
Entonces no nos complicamos, programamos el plc para que genere archivos .txt y periódicamente los subimos a la base de datos, está todo automatizado y funciona, los datos están disponibles con menos de 10 minutos de retraso (cada 10 minutos se suben los datos).
Si tenés que comandarlo es otra cosa, cual es el canal de comunicación?, RS232 ?, TCP/IP ?.
Para prototipear una DLL hay ejemplos en el ftp de Evolution Consulting, por ejemplo, como comandar la RS232 usando las API de windows.
Lamentablemente nunca profundicé estos temas, solamente llegué hasta solucionar el problema del momento.
Espero que te sirva. Saludos!
Re: Clarion - PLC
Publicado: Mar Jun 19, 2012 10:13 pm
por raai
Hola Clemar,
Se conecta por Ethernet. Ahora ya logré hacer uso de algunas funciones sin embargo tengo problemas en una.
la definicion es la siguiente:
Código: Seleccionar todo
int MXEIO_Connect ( char *szIP,WORD wPort,DWORD dwTimeOut,int * hConnection); // Asi esta definida la funcion en C/C++
Asi la defino en clarion
module('funcionesPLC')
MXEIO_Connect(*string szIP, signed wPort, ulong dwTimeOut,*signed hConnection),SIGNED,RAW,C,NAME('MXEIO_Connect')
MXEIO_Disconnect(signed hConnection),SIGNED,RAW,C,NAME('MXEIO_Disconnect')
end
Me marca error diciendo el prototipo no existe. Intento usar la funcion para conectar.
Seguramente definí algun parametro mal pero no logro saber cual es, espero me puedan ayudar.
Re: Clarion - PLC
Publicado: Mié Jun 20, 2012 3:46 pm
por César
Hola: probá asi:
Código: Seleccionar todo
module('funcionesPLC')
MXEIO_Connect(LONG szIP, SHORT wPort, ULONG dwTimeOut, LONG hConnection), SHORT, PASCAL
MXEIO_Disconnect(SHORT hConnection), SHORT, PASCAL
end
luego para llamar:
declaras estas variables:
Código: Seleccionar todo
LOC:szIP CSRTING(256) (el tamaño que haga falta en este parametro)
LOC:hConnection SHORT
el llamado:
Código: Seleccionar todo
LOC:szIP = 'lo que vaya aca' & '<0,0>'
Res# = MXEIO_Connect(ADDRESS(LOC:szIP), el_wport, el_dwtimeout, ADDRESS(LOC:hConnection))
! obiamente que en el_wport pones el valor que tengas que poner y en el_dwtimeout también.
message(Res#) ! supongo que aca sabras si andubo o no
Res# = MXEIO_Disconnect(LOC:hConnection)
Si no anda asi, proba cambiar los prototipos por estos otros:
Código: Seleccionar todo
module('funcionesPLC')
MXEIO_Connect(LONG szIP, SHORT wPort, ULONG dwTimeOut, LONG hConnection), SHORT, C, NAME('MXEIO_Connect')
MXEIO_Disconnect(SHORT hConnection), SHORT, C, NAME('MXEIO_Connect')
end
César .-
Re: Clarion - PLC
Publicado: Mié Jun 20, 2012 5:51 pm
por César
Error: Cambiar todos los SHORT que puse por LONG , también esta variable LOC:hConnection debe ser LONG.
Excepto el parámetro wPort, que quede con SHORT.
Re: Clarion - PLC
Publicado: Jue Jun 28, 2012 6:20 pm
por raai
Hola Cesar,
Fijate que defini las funciones que me hiciste favor de corregirme.
Cuando ejecuto la aplicacion simpre me arroja el erro de que no puede establecer la conexion y no se porque.
Estoy intentando usar el siguiente dispositivo que no es PLC (me aclararon esto).
MOXA ioLogik E1214.
Lo que tengo que hacer con esta tarjeta que se conecta via Ethernet es si ocurrio un error en un sistema que voy a desarrollar esta tarjeta debe de prender un foco para indicar que algo esta mal, solo eso.
Pero como te comento no puedo establecer la conexion con la tarjeta y no se que pasa, ojala y me puedas orientar.