Saber y cambiar IP desde TCP Server

  • 6 Respuestas
  • 5128 Vistas

coloriginal

  • Aprendiz
  • **
  • Mensajes: 37
Saber y cambiar IP desde TCP Server
« : diciembre 11, 2015, 10:30:31 am »
Hola Boris, te molestaba para saber si existe o si se podría implementar alguna función para obtener el nro de IP del PLC y para cambiarlos.

Desde ya muchas gracias.
A.S.: Cristian M. Colovatto
M.P.:3076
Del.:3512635979
WWW.E-PARKING.COM.AR

Soporte

  • Global Moderator
  • Experto
  • *****
  • Mensajes: 2324
  • Soporte Técnico
Re:Saber y cambiar IP desde TCP Server
« Respuesta #1 : diciembre 11, 2015, 20:20:15 pm »
Buenas tardes Cristian,

Podes cambiar la IP con la funcion SysSetIP(IP, Netmask, Gasteway). Al cambiarla, la direcciones de Netmask y Gateway deben ser coherentes con el valor de la nueva IP. Los cambios requieren un reset del sistema para que sean aplicados.

Ejemplo:

Código: (Pawn) [Seleccionar]
// Cambiar parametros IP de red:
// Local IP = 192.168.1.82
// Netmask IP = 255.255.255.0
// Gateway IP = 192.168.1.1

SysSetIP(IpToVar(192,168,1,82), IpToVar(255,255,255,0), IpToVar(192,168,1,1))

// Pausar unos mS (opcional).
DelayMS(500)

// Resetear PLC.
SysReset()

Fíjate en el manual de programación Pawn para mas información sobre esta función.

Por otro lado, no hay una función para conocer la IP actual desde el PLC. ¿ Te hace falta ?.

Saludos
« Última Modificación: diciembre 11, 2015, 20:37:47 pm por Soporte »
SOPORTE TÉCNICO

Slicetex Electronics
www.slicetex.com

coloriginal

  • Aprendiz
  • **
  • Mensajes: 37
Re:Saber y cambiar IP desde TCP Server
« Respuesta #2 : diciembre 11, 2015, 20:51:21 pm »
Hola Boris, estaría muy bueno poder saber la ip que tiene el plc ya que en mi caso lo uso como server y en el caso de tener varios funcionando saber que ip tiene cada uno.
A.S.: Cristian M. Colovatto
M.P.:3076
Del.:3512635979
WWW.E-PARKING.COM.AR

Soporte

  • Global Moderator
  • Experto
  • *****
  • Mensajes: 2324
  • Soporte Técnico
Re:Saber y cambiar IP desde TCP Server
« Respuesta #3 : diciembre 11, 2015, 20:54:07 pm »
Pero si ya te conectas desde la PC a cada PLC, implícitamente sabes la IP de cada PLC.

¿ A eso te referis ?.

SOPORTE TÉCNICO

Slicetex Electronics
www.slicetex.com

coloriginal

  • Aprendiz
  • **
  • Mensajes: 37
Re:Saber y cambiar IP desde TCP Server
« Respuesta #4 : diciembre 11, 2015, 21:10:40 pm »
Si, si ya me conecte si, pero si tengo 5 plc guardados con diferente ip estaría muy bueno poder saber la ip así lo programó para que cuando está desconectado el tcp server muestre en el display el nro de ip.

Si se puede estaría muy bueno.
A.S.: Cristian M. Colovatto
M.P.:3076
Del.:3512635979
WWW.E-PARKING.COM.AR

Soporte

  • Global Moderator
  • Experto
  • *****
  • Mensajes: 2324
  • Soporte Técnico
Re:Saber y cambiar IP desde TCP Server
« Respuesta #5 : diciembre 11, 2015, 21:13:43 pm »
Ah ok. Si, se puede. Te aviso cuando tenga un update.

Saludos

Enviado desde un dispositivo móvil usando Taptalk.

SOPORTE TÉCNICO

Slicetex Electronics
www.slicetex.com

Soporte

  • Global Moderator
  • Experto
  • *****
  • Mensajes: 2324
  • Soporte Técnico
Re:Saber y cambiar IP desde TCP Server
« Respuesta #6 : diciembre 13, 2015, 12:38:01 pm »
Buenos días Cristian,

Adjunto te paso la actualización para utilizar la nueva función SysGetIP() que permite obtener la IP utilizada por el PLC.

Para utilizarla debes:

  • Actualizar el firmware de la placa a la versión 214.
  • Luego copiar el archivo: sys.inc que te adjunto en este mensaje en el <directorio de instalación StxLadder>\slicetex\StxLadder\pawn\include\common, que puede ser por ejemplo: C:\Program Files\slicetex\StxLadder\pawn\include\common. Quizás necesites permisos de administrador.

En la próxima versión de StxLadder este cambio será agregado a la distribución.

Ejemplo:

Código: (Pawn) [Seleccionar]
   new IpArray[4]
   new MyIP
   
   // Obtener IP del sistema.
   MyIP = SysGetIP()
   
   // Convertir IP en variable a IP contenida en array.
   IpArray[0] = MyIP & 0xFF
   IpArray[1] = (MyIP >> 8) & 0xFF
   IpArray[2] = (MyIP >> 16) & 0xFF
   IpArray[3] = (MyIP >> 24) & 0xFF
   
   //
   // Mostrar IP en display
   //
   
   LcdClear()
   LcdPrintf(0,0, "PLC IP")
   LcdPrintf(0,1, "%d.%d.%d.%d", IpArray[3],IpArray[2],IpArray[1],IpArray[0])

Ver ejemplo completo en archivo ShowIP.zip que se adjunta.

Saludos

« Última Modificación: diciembre 13, 2015, 12:45:46 pm por Soporte »
SOPORTE TÉCNICO

Slicetex Electronics
www.slicetex.com