Opto 22 in Latin America

Started by jblosada@hotmail.com at 01-29-2008 4:28 AM. Topic has 18 replies.

Print Search
Sort Posts:    
   01-29-2008, 4:28 AM
jblosada@hotmail.com is not online. Last active: 1/29/2008 8:16:53 PM jblosada@hotmail.com

Top 150 Posts
Joined on 01-29-2008
Posts 2
Comunicacion M2MPower con OPTOGSM I/O

Estoy realizando un proyecto mediante la placa OptoGSM I/O y el modem SonyEricsson GT47, y tengo un problema inicial bastante grande.

Realizando los ejemplos que ponen en el tutorial de OPTO número 1502(OptoTutorial_OptoGsmIo.pdf), no consigo hacer funcionar el script del m2mpower en mi dispositivo.  A priori está todo bien conectado, de hecho al enviar el comando AT por el hiperterminal (Com1) me responde OK. 

El error que me pone es el siguiente:ERROR #6: Line 7 : undeclared identifier :I0PowerUpClear

Os pongo el código completo:

main () 

{

int nResult;

prs(0);

nResult = utc(1,3,0);

nResult = I0PowerUpClear();

while(1<2)

{

IOWriteDPoint(64,1);

prtf("turn board LED on\n");

prtf("\n");

dlys(1);

prtf("Retraso 1 segundo\n");

prtf("\n");

IOWriteDPoint(64,0);

prtf("turn board LED off\n");

prtf("\n");

dlys(1);

prtf("Retraso 1 seg.\n");

prtf("\n");

}

nResult=utc(0,0,0);

}

Agradecería mucho una respuesta.  Gracias de antemano.


   Report 
   01-29-2008, 8:47 AM
devil_cdb is not online. Last active: 1/29/2008 9:21:23 PM devil_cdb

Top 25 Posts
Joined on 01-29-2008
Posts 9
Re: Comunicacion M2MPower con OPTOGSM I/O
Por cierto, la versión del M2MPOWER que estoy utilizando es la 1.0.30
   Report 
   01-29-2008, 12:28 PM
rhernandez is not online. Last active: 11/12/2005 8:06:39 PM rhernandez

Top 10 Posts
Joined on 11-26-2003
Madrid - SPAIN
Posts 42
Re: Comunicacion M2MPower con OPTOGSM I/O
Debes incluir todas las funciones de la librería de Opto como parte de tu script con un vulgar copiar+pegar.

Las únicas funciones externas que se pueden utilizar son las propias de Sony. El resto debe ser porporcionado en el mismo fichero fuente.

No hay forma de construir y descargar "librerías" al módem. Es un mero intérprete de pseudo-C con unas pocas funciones básicas incorporadas. Esto afectará tanto a las funciones que facilita Opto22 como las que tú vayas fabricándote.


   Report 
   01-30-2008, 8:58 AM
jblosada@hotmail.com is not online. Last active: 1/29/2008 8:16:53 PM jblosada@hotmail.com

Top 150 Posts
Joined on 01-29-2008
Posts 2
Re: Comunicacion M2MPower con OPTOGSM I/O

Gracias rhernandez, pero he hecho lo que me has dicho y el resultado ha sido el siguiente:

Una vez que he puesto todas las librerías de Opto, y me dispongo a descargar el script por el m2mpower, al alcanzar la barra de "downloading script" el 100% me aparece el mensaje "ERROR DOWNLOADING SCRIPT AT CHANNEL TIMEOUT".

La verdad es que no se que hacer... he probado con varios scripts que me venían en el cd de OPTO22 (y que a priori tendrían que estar correctos), y en todos me ocurre lo mismo...

A ver si sabéis por qué me aparece esto.

Gracias.

 


   Report 
   01-30-2008, 12:44 PM
rhernandez is not online. Last active: 11/12/2005 8:06:39 PM rhernandez

Top 10 Posts
Joined on 11-26-2003
Madrid - SPAIN
Posts 42
Re: Comunicacion M2MPower con OPTOGSM I/O
Eso ocurre con relativa frecuencia.
La solución pasa por reiniciar el módem, aunque a veces hay que insistir. Intenta hacer otras operaciones con el módem, como introducir comandos AT desde el hyperterminal o con los botones de detener o borrar programa del M2Mpower para ver si por lo menos a algo responde.
¿No estarás intentando comunicar con el módem a más de 9600 baudios, verdad? Con versiones anteriores de M2Mpower era sencillamente imposible. Aunque con la 1.0.30 se pueda, yo no lo intentaría.
   Report 
   01-31-2008, 10:56 AM
devil_cdb is not online. Last active: 1/29/2008 9:21:23 PM devil_cdb

Top 25 Posts
Joined on 01-29-2008
Posts 9
Re: Comunicacion M2MPower con OPTOGSM I/O
el módem sí que me responde a todas las operaciones que me dices (comandos AT, borrar script con el m2mpower,...), pero no realiza correctamente la descarga del scritp con la librería OPTO22... Sí que he observado que me deja descargarlo al 100% sin esta librería pero, como es normal, me da luego error al interpretar el código (primer post mío).

Así que el módem sí que tiene comunicación con el hyperterminal y con el m2mpower...

Hemos de advertir, que la única velocidad a la que me deja conectar el módem es a 57600baudios, ya que si conecto a otra, no me responde en el hyperterminal, y en el m2m me sale el siguiente error "WARNING: UNABLE TO GET ACTIVE SCRIPT CONFIGURATION".


   Report 
   01-31-2008, 12:08 PM
rhernandez is not online. Last active: 11/12/2005 8:06:39 PM rhernandez

Top 10 Posts
Joined on 11-26-2003
Madrid - SPAIN
Posts 42
Re: Comunicacion M2MPower con OPTOGSM I/O
Lo SonyEricsson no tiene "autobauding", no basta con cambiar la velocidad al M2mPower o al hyperterminal, además hay que cambiarsela al módem (ejemplo, AT+IPR=9600). Tras lo cual es conveniente guardar la configuración en NVRAM (AT&W).


Yo lo intentaría a 9600. También trataría de cambiar algo en el código, empezar con pocas líneas pero correctas (para ir cogiendo confianza) y poco a poco ir añadiendo código.

Por cierto, revisando tu código observo la siguiente línea:
IOWriteDPoint(64,0);
Que yo recuerde, los puntos digitales van del 0 al 7. El 64 no tiene mucho sentido para mí.

   Report 
   01-31-2008, 4:49 PM
devil_cdb is not online. Last active: 1/29/2008 9:21:23 PM devil_cdb

Top 25 Posts
Joined on 01-29-2008
Posts 9
Re: Comunicacion M2MPower con OPTOGSM I/O
Según la pagina 28 del manual de opto número 1502, los puntos 64 y 65 son los que corresponden con los LED`s I/O de la placa OPTOGSM...

De acuerdo, mañana intentaré realizar lo que me has dicho, estoy deseando decirte que, de una vez por todas, me funciona correctamente.

Un saludo y gracias por las molestias.
   Report 
   02-01-2008, 1:32 PM
devil_cdb is not online. Last active: 1/29/2008 9:21:23 PM devil_cdb

Top 25 Posts
Joined on 01-29-2008
Posts 9
Re: Comunicacion M2MPower con OPTOGSM I/O
Funcionó!!!!!!!!! Por fin hemos conseguido hacer funcionar un script en la placa. Finalmente he hecho lo que has dicho de los comandos AT y le he puesto 9600 baudios. He utilizado el mismo código que puesto en el primer post, añadiendo parte de las funciones OPTOGSM I/O (únicamente las que intervienen en el script). Lo que he observado extraño es que, si introduzco la librería COMPLETA del optogsm me da error ("ERROR DOWNLOADING SCRIPT AT CHANNEL TIMEOUT"); pero si introduzco solo las funciones que intervienen, no... ¿a qué se debe ocurrir esto?. Por cierto, muchas gracias por tu ayuda rhernandez.
   Report 
   02-05-2008, 1:17 PM
rhernandez is not online. Last active: 11/12/2005 8:06:39 PM rhernandez

Top 10 Posts
Joined on 11-26-2003
Madrid - SPAIN
Posts 42
Re: Comunicacion M2MPower con OPTOGSM I/O
¡Enhorabuena!
Me alegro de haber sido de ayuda.
Respecto al timeout, no puedo decir que no lo haya sufrido, pero yo si que descargaba (hace mucho que no trabajo con los Sony) la librería completa.

En tu caso no parece un problema de tamaño del script, de todas formas prueba a eliminar comentarios.


   Report 
   02-06-2008, 10:08 AM
devil_cdb is not online. Last active: 1/29/2008 9:21:23 PM devil_cdb

Top 25 Posts
Joined on 01-29-2008
Posts 9
Re: Comunicacion M2MPower con OPTOGSM I/O
Una vez que ya he conseguido "hechar a andar" el dispositivo, me surjen multitud de dudas.................................................................................................................... Uno de los problemas que me he encontrado hoy ha sido al intentar dar el valor de ENTRADA o SALIDA a un punto digital de la placa .................................................................................................................. He utilizado el siguiente script: main()

{

int nresult;

int nptnumber;

int nstate;


/*inicializamos I/O*/

prs(0);

nresult = utc(1,3,0);

nresult = IOPowerUpClear();


/*Configuramos entrada digital*/

nresult=IOConfigDPoint(0,0);

prtf("\nPunto 0 ENTRADA -");

nresult=IOReadDPoint(0,&nstate);

prtf(" Realmente es: %d",nstate);


/*Configuramos SALIDA digital*/

nresult=IOConfigDPoint(1,1);

prtf("\nPunto 1 SALIDA -");

nresult=IOReadDPoint(1,&nstate);

prtf(" Realmente es: %d",nstate);


nresult = utc(0,0,0);


}



Cuando monitorizo el script, obtengo que ambos puntos (tanto el cero como el uno) tienen el valor de 0 (input), he probado de diferentes formas y no consigo hacer que un punto digital sea una salida.......... ¿Sabríais cómo puedo resolver esto? Gracias
   Report 
   02-06-2008, 1:22 PM
rhernandez is not online. Last active: 11/12/2005 8:06:39 PM rhernandez

Top 10 Posts
Joined on 11-26-2003
Madrid - SPAIN
Posts 42
Re: Comunicacion M2MPower con OPTOGSM I/O
 Lo primero es asegurarte que tienes un módulo digital de entrada (blanco/amarillo) en el punto 0 y uno de salida en el punto 1 (rojo/negro). Si es así, y aunque sea de perogrullo, un inciso:
  • las entradas sólo pueden leerse, es la parte eléctrica la responsable de activar/desactivar la misma. Si no "energizas" sus bornas de campo siempre leeras un 0. A lo mejor uno de tus módulos tiene un pequeño interruptor, en cuyo caso puedes forzar a mano el valor.
  • las salidas digitales deben ser activadas/desactivas por el script.
Dicho esto, con IOConfigDPoint configuras la placa de Opto, le informas de lo que tiene "al otro lado del campo". Deberás configurar las entradas y las salidas de acuerdo con lo que físicamente hayas instalado en la placa.
Una vez hecho esto podrás utilizar
IOReadDPoint
contra culaquier punto digital y deberás utilizar IOWriteDPoint para alterar el estado de los puntos configurados como salidas únicamente.

Tu programa está haciendo lo que le pides, ahora intenta añadir a tu script lo siguiente, antes de nresult = utc(0,0,0);:

nresult=IOWriteDPoint(1,1); /* activar punto 1 */
nresult=IOReadDPoint(1,&nstate); /* volver a leer */
prtf(" y ahora el punto 1 vale: %d",nstate);

Deberías ver un 1, en lugar de un 0. Además, el led del módulo deberá encenderse tambien.

   Report 
   02-10-2008, 7:06 AM
devil_cdb is not online. Last active: 1/29/2008 9:21:23 PM devil_cdb

Top 25 Posts
Joined on 01-29-2008
Posts 9
Re: Comunicacion M2MPower con OPTOGSM I/O
Con el código de script anterior, he conseguido poder apagar y encender los LED's de los módulos I/O. Lo que aún no he logrado es hacer variar el valor de la variable nstate de 0 a 1. Aunque ponga la línea:
nresult=IOWriteDPoint(1,1); /* activar punto 1 */, el valor de la variable nstate es de cero (aunque se encienda la luz del módulo de salida). No sé qué es lo que hago mal...

Por cierto, ya he logrado descargar todo el script entero (incluyendo la librería optogsm completa). He tenido que cambiar la velocidad de comunicación a 38400. Me sigue dando error de timeout, pero ahora llega la descarga del script al 100%, y puedo hacer funcionar el programa.
   Report 
   02-11-2008, 11:44 AM
rhernandez is not online. Last active: 11/12/2005 8:06:39 PM rhernandez

Top 10 Posts
Joined on 11-26-2003
Madrid - SPAIN
Posts 42
Re: Comunicacion M2MPower con OPTOGSM I/O
Bien, seguimos avanzando.

Pon el código para que pueda ver si hay algo raro.



   Report 
   02-12-2008, 2:55 AM
devil_cdb is not online. Last active: 1/29/2008 9:21:23 PM devil_cdb

Top 25 Posts
Joined on 01-29-2008
Posts 9
Re: Comunicacion M2MPower con OPTOGSM I/O

Pues básicamente el código es el mismo que he puesto un poco más arriba.  Es muy extráño, ya que sí se enciende el LED del módulo output, pero no consigo que me devuelva el valor de '1' (salida).

Te explico más o menos cual es mi configuración de montaje, por si puede influir... El montaje del modem+placa es el mismo que el del manual 1502 de Opto22 (utilizo los 3 rs232).  Tengo una SIM de vodafone activa, y una fuente de tensión (alimento a la placa a 15V).  Además de un módulo de entrada conectado en el punto digital 0 y otro de salida en el 1.

Creo que no influye nada el código PIN de la tarjeta, pues alguna que otra vez he puesto en el hyperterminal AT+CPIN="xxxx" y no me ha funcionado.

Otra cosa que tampoco me funciona (no se si lo estoy haciendo bien), es leer la entrada.  Es decir, tengo puesto una fuente de alimentación conectada al punto 0.  He observado que cuando subo de 6V el LED del módulo de entrada se enciende y cuando bajo de 4.5V se apaga,  pero, por ejemplo, cuando quiero intentar realizar un contador de impulsos con la entrada, la variable se me queda siempre a cero, nunca adquiere el valor de '1'.  Estoy empezando a sospechar que o la placa o el módem están defectuosos...

Éste es el código que me pides:

main()
{
int nresult;
int nstate;

prs(0);
nresult = utc(1,3,0);
nresult = IOPowerUpClear();

/*Configuramos entrada digital*/
nresult=IOConfigDPoint(0,0);
prtf("\nPunto 0 ENTRADA -");
nresult=IOWriteDPoint(0,0);
nresult=IOReadDPoint(0,&nstate);
prtf("   Realmente es: %d",nstate);

/*Configuramos SALIDA digital*/
nresult=IOConfigDPoint(1,1);
prtf("\nPunto 1 SALIDA -");
nresult=IOWriteDPoint(1,1);
nresult=IOReadDPoint(1,&nstate);  /*la variable nstate tendría que adoptar el valor 1(salida), pero muestra el valor 0, aunque sí se enciende el LED del módulo de salida*/
prtf("   Realmente es: %d",nstate);

nresult = utc(0,0,0);

}

Gracias por ayudarme.


   Report 
  Page 1 of 2 (19 items) 1 2 >
OptoForums » International » Opto 22 in Lati... » Re: Comunicacion M2MPower con OPTOGSM I/O

Powered by Community Server, by Telligent Systems