Autor Tema: Servidor por TCP + Modem GPRS enfora 1308 + Rabbit RCM4100 + PLC = quilombo  (Leído 11658 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado opaco

  • PIC10
  • *
  • Mensajes: 3
Antes que nada saludos a toda la gente del foro, ya que éste es mi primer post!

Paso a comentarles mi problema:

Trabajo en mantenimiento de un sistema de SCADA que consta de un servidor con una placa expansora de puertos serie, de los cuales salen preguntas (trama modbus) a diferentes PLC a través de radios o de enlaces punto a punto. Resulta que quieren actualizar los enlaces de radio porque son defectuosos, para lo cual estoy desarrollando un vínculo GPRS.
Estuve leyendo bastante del asunto, pero cada vez estoy más confundido. Mis dudas más importantes son las siguientes:

1. Para la configuración del modem GPRS, que comandos debería usar? La PC servidor tiene IP fija y un puerto abierto a propósito para esto. Debo usar el PAD?
2. Para que sirve el comando ATD*99***1#? Cuando lo ingreso, se conecta, me da una IP y no puedo ingresar ningún comando AT más.
3. Una vez que esté conectado, el modem actua en forma transparente? Es decir, lo que entra por gprs sale por el puerto serie y vice versa?

Si pueden ayudarme con estas dudas lo agradeceré mucho. Dejo adjunta la configuración del modem por si sirve de algo (como verán estuve cambiando cosas y hasta me pude conectar varias veces, pero sin entender mucho lo que hacía):

at&v
E1 Q0 V1 X1 &C1 &D0 S0:000 S3:013 S4:010 S5:008 +CBST: 7,0,1 +FCLASS:0
+CRLP: 61,61,48,6 +CR:0 +CRC:0 +CMGF:1 +CSCS:"PCCP437" +CNMI:1,1,0,0,0
+ILRR:0 +IPR:115200 +CMEE:2 +CSMS:0,1,1,1 +CFUN:1 +CREG:2 +CGREG:0
+CLIP:0,2 +CAOC:1 +COPS:0,0 722 07 +CSNS:0 +CSSN:0,0 +CSDH:0 +CMUT:0
+COLP:0 +CPBS:"AD" +CGAUTO:3 +CGSMS:3 +CGEREP:0,0 +CGCLASS:"B"
+CSVM:0,"",129 +CGQREQ:1,0,0,0,0,0 +CGQMIN:1,0,0,0,0,0
+CGDCONT: 1,"IP","internet.gprs.unifon.com.ar","",0,0
+IFC:0,0 +ICF:3 %CGAATT:0,1 %CGPPP:3 $AREG:1 $HOSTIF:2
$VGR: 22  $VGT: 7  $VLVL: 4  $VST: 0  $VSELECT: 1
$PADBLK: 512 $PADBS: 08 $PADCMD: 000b $PADDST: "200.063.022.181", 1103
$PADFWD: 0d $PADSRC: 1162 $PADTO: 50 $UDPAPI: "199.245.180.013", 1720
$ACTIVE: 1 $CONNTO: 60 $IDLETO: 120 $GATEWAY:000.000.000.000
$MSCLS: 8 %SLEEP: 2 %CPI: 0 %CGREG: 0 $ACKTM: 0, 0, 0
$MDMID: "011253000305930"  $MSGLOGEN: 0 $RTCUPD: 0, 0 $PKG: 30
$SMSDAEN: 1 $USRVAL: 0 $RICSD: 0 $IFC: 0
$FRIEND: 01, 1, "200.063.022.181", 1103, 1
$EVTIM1: 0, $EVTIM2: 0, $EVTIM3: 0, $EVTIM4: 0
$WAKEUP: 0, 0  $NETMON: 0, 0, 0, 0
$IOCFG: 10000100111111111111
$IOGPA: 00000110111100011111
$EVENT:    evgp evtyp evcat       p1         p2
            1A    0     9             2          4
            1B    3   117             1          0
            2A    0     9             5          5
            2B    3   114             0          0
            3A    0     9             0          0
            3B    3   115             0          0
            4A    0     9             1          1
            4B    3   114             0          0

Desconectado RICHI777

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1498
Re: Servidor por TCP + Modem GPRS enfora 1308 + Rabbit RCM4100 + PLC = quilombo
« Respuesta #1 en: 18 de Noviembre de 2008, 18:30:15 »
Hola, no conozco el Modem Enfora, pero hay mucha información en el foro sobre como comunicarse, lo que tendrias que hacer es leer algunos de estos post y traducir los comandos, normalmente los comandos una vez que el equipo esta registrado en la red, es activar el conexto, seleccionar el APN y abrir un socket con la IP de la maquina servida en el puerto correspondiente, vos seleccionas que tipo de socket queres TCP o UDP. Con respecto al comando que mencionas sirve para manejar todo el stack TCP vos, es decir el stack esta definido en tu aplicación, pero hoy x hoy como casi todos los Modem implementan el stack propio no deberias usar ese comando.
Una vez conectado, dependiendo del Modem, trabaja de esa manera, lo que mandas se escucha por el puerto del Server y vice-versa, todo muy TCP/IP.

Saludos !

Desconectado opaco

  • PIC10
  • *
  • Mensajes: 3
Re: Servidor por TCP + Modem GPRS enfora 1308 + Rabbit RCM4100 + PLC = quilombo
« Respuesta #2 en: 20 de Noviembre de 2008, 10:11:14 »
Gracias por tu respuesta!
Estuve mirando varios foros y por lo que leí, llegué a la conclusión que debo usar los siguientes comandos AT:
Primero verifico el estado del modem y de las conecciones:
Verificar la tarjeta SIIM con AT+CPIN?  ==> +CPIN: READY
Verificar el registro de la tarjeta en la red con AT+CREG? ==> +CREG: 1,1  (registrado OK)
Verificar el registro de la tarjeta en la red GPRS con AT+CGREG? ==> +CGREG: 1,1 (registrado OK)
Verificar que el módem se encuentre funcional con AT+CFUN? ==> +CFUN: 1 (funcionando OK)
Verificar el modo de llamada de datos (DATA) con AT+FCLASS? ==> +FCLASS: 0 (modo datos OK)

Conección con la red:
Para hacer attach del modem a la red GPRS: AT+CGATT=1
Configurar el contexto de la conección: AT+CGDCONT=1,"IP","internet.gprs.unifon.com.ar","",0,0
Activo el contexto dado por CGDCONT: AT+CGACT=1,1
Configuro nombre de usuario y contraseña: AT%CGPCO=1,"wap,wap",1
Activo la identificación automática en la red GPRS: AT%CGPPP=3
Configuro modem como cliente: AT$ACTIVE=1
Inicio conección TCP API: AT$TCPAPI=1
Defino puerto de salida para el PAD (packet assembler/disassembler): AT$PADSRC=1104
Configuro el servidor "amigo": AT$FRIEND=1,1,"ip del servidor",puerto, 1
Establezco una cesión TCP PAD: AT$HOSTIF=2
Para que me muestre el resultado de la conección uso: ATX1
Configuro la dirección del servidor al cual me conecto: AT$PADDST="ip del servidor",puerto
Veo la dirección IP que me asignó el servidor: AT+CGPADDR (responde +CGPADDR: 1,"172.017.124.077" , todo OK)
Llamo e inicio la conexión al servidor dado por AT$PADDST utilizando el contexto 1: ATD*99***1#

Con el último comando, antes me ponía connect y me decía la ip, ahora no hace nada, o me pone ERROR. Alguien me podrá ayudar con este tema? La verdad es que lei el manual varias veces y no le encuentro la vuelta.
No entiendo bien lo que me respondió Richi777 con respecto al comando ATD*99***1#. Según el manual: ATD*99***1# - Dials GPRS call for context activation 1, lo que no parecería tener relación con el stack TCP... (por lo muy poco que se, si me equivoco por favor corrijanme)

Desconectado opaco

  • PIC10
  • *
  • Mensajes: 3
Re: Servidor por TCP + Modem GPRS enfora 1308 + Rabbit RCM4100 + PLC = quilombo
« Respuesta #3 en: 18 de Diciembre de 2008, 09:49:09 »
Finalmente pude sacar andando esto, pero tengo otro problema :( 
Al transmitir algunos datos específicos, tengo quilombos con los caracteres especiales. Los datos que envío y recibo son de protocolo modbus RTU. En este protocolo, a veces lños datos transmitidos usan los caracteres especiales, ya sea el carriage return o el backspace. Algo pude hacer, ya que el hecho de transmitir o no estos datos está comandado por la funcion AT$PADCMD. El problema es que no entiendo bien este comando, y en el manual del modem la explicacion deja muuuucho que desear.
Alguien sabe bien como se usa?

Muchas gracias!

$PADCMD PAD Command Features
Command Function This command allows the user to set/query PAD configuration options.

Command Format Query AT$PADCMD=?
Response $PADCMD: (0-FFFF)

Write Format AT$PADCMD =<pad feature select >

Read Format AT$PADCMD?           Response $PADCMD: "<pad feature select >”

Parameter Values
<pad feature select > Add Bitwise Hex word to enable/Disable features.
Bit 1, 1 = Enable Forwarding on Character defined by $PADFWD
        0 = Disable Forwarding on Character defined by $PADFWD
Bit 2, 1 = Forward Character defined by $PADFWD with the data
        0 = Do not forward Character defined by $PADFWD with the data
Bit 8, 1 = Enable $PADBS Character.
        0 = Disable $PADBS and send $PADBS character with the data.

O sea, la explicación no está tan mal, pero no se como debo ejecutar el comando, ya que los parametros pueden ser 0-FFFF, y aca hablan de bit 1,2 y 8.

Gracias de nuevo.

Desconectado intelcont

  • PIC10
  • *
  • Mensajes: 1
Re: Servidor por TCP + Modem GPRS enfora 1308 + Rabbit RCM4100 + PLC = quilombo
« Respuesta #4 en: 29 de Abril de 2009, 19:20:17 »
Hola opaco.

Dices que "finalmente pude sacar andando esto".

Te agradecería me explicaras como lo pudiste lograr.

Desconectado w4lck

  • PIC10
  • *
  • Mensajes: 1
Re: Servidor por TCP + Modem GPRS enfora 1308 + Rabbit RCM4100 + PLC = quilombo
« Respuesta #5 en: 05 de Junio de 2009, 02:35:28 »
Hola me gustaria  que expliques, como podistes lograr..

Desconectado Orko

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 423
Re: Servidor por TCP + Modem GPRS enfora 1308 + Rabbit RCM4100 + PLC = quilombo
« Respuesta #6 en: 13 de Julio de 2009, 01:12:42 »
Hola Opaco, ojala hayas podido sacar a feliz termino el proyecto. Sin embargo quieres por favor indicarnos como sacaste adelante el inconveniente.

Saludos y gracias,

Orko  8)