Mensajes recientes

Páginas: 1 ... 5 6 [7] 8 9 10
61
STX8091 / Re:Consulta modo PLC y soft en C#
« Último mensaje por Soporte marzo 26, 2019, 12:06:11 pm »
Una simple consulta. Estoy leyendo el manual STX80XX-UM-DAQ-AX_BX
para profundizar sobre la librería stx.8xxx.dll.

La duda es ¿Existe algún tipo de limitante en el uso de esta si el dispositivo está en modo PLC?

Buenos días.

Si, las funciones de la librería diseñadas para modo DAQ no pueden utilizarse cuando el dispositivo se encuentra en modo PLC.
Deberían devolver un código de error apropiado.

Algunas funciones que no son especificas al modo DAQ, si funcionan en ambos modos.

Saludos!
62
STX8091 / Consulta modo PLC y soft en C#
« Último mensaje por Mariano marzo 25, 2019, 20:58:58 pm »
Buenas noches Boris,

Una simple consulta. Estoy leyendo el manual STX80XX-UM-DAQ-AX_BX
para profundizar sobre la librería stx.8xxx.dll.

La duda es ¿Existe algún tipo de limitante en el uso de esta si el dispositivo está en modo PLC?

Saludos
63
Ing. Boris: Modifique la hora manualmente, cargue el código, reinicie el plc y tomo la hora actual. Y luego volví a enviar para modificar la hora y probe despues de dos minutos y estaba actualizada a la hora correcta así que por lo que probe funciona a la perfeccion.

Perfecto, entonces tu router tiene servidor NTP habilitado.

Saludos!
64
Ing. Boris: Modifique la hora manualmente, cargue el código, reinicie el plc y tomo la hora actual. Y luego volví a enviar para modificar la hora y probe despues de dos minutos y estaba actualizada a la hora correcta así que por lo que probe funciona a la perfeccion.


Mucha gracias.


Saludos. Esteban
65
Buenos días Esteban,

La función Pawn que permite configurar la IP del servidor NTP para actualizar la fecha/hora del RTC es la siguiente:

NtpEnable(TimeZone, PollRate, Server[], Options)

Donde:

  • TimeZone = Es la zona horaria, -3 para argentina.
  • PollRate = Tasa de refresco en segundos ( mínimo 64 o superior, recomendado 120).
  • Server= Nombre del servidor o IP.
  • Options = Opciones.

Ejemplos:

Código: (Pawn) [Seleccionar]
   // Utilizar servidor NTP Google.
   // UTC Time Zone = -3 (Argentina)
   // Poll Rate (refresco) = 120 segundos .
   NtpEnable(-3, 120, "time.google.com", NTP_OPT_DEFAULT)

   // Espeficar IP de servidor NTP: 216.239.35.0 (time1.google.com).
   NtpEnable(-3, 120, "216.239.35.0", NTP_OPT_USE_IP)
   
   // Espeficar IP de servidor NTP: 192.168.1.1 (red interna).
   NtpEnable(-3, 120, "192.168.1.1", NTP_OPT_USE_IP)

Para usarlo correctamente, debés deshabilitar la opción "Actualizar por red" en StxLadder como se muestra marcada en amarillo en la siguiente captura de pantalla (si es que la tenés habilitada), así no se solapan ambas configuraciones:



Te adjunto 2 proyectos de ejemplo, uno en Pawn y otro en Ladder para que veas la configuración.

En el caso de la red con tu router, debes remplazar la IP del ejemplo por la de tu router, por ejemplo "192.168.1.1".

Desde la configuración del PLC en StxLadder, deberías poder ver hora/fecha actualizada luego de apagar y encender el PLC, si no lo hace, es porque no puede obtener la información.

No pude probarlo con mi router, ya que el mio no tiene servidor NTP. Asegúrate que el tuyo lo tenga disponible.

Cualquier duda, avísame.

Saludos!
66
Hola Ing. Boris necesitaria ver como puedo modificar la dirección de ip de sincronización de hora para que me toma la dirección del servidor NTP. Debido a que el PLC no se encuentra conectado a internet.


Saludos.

Esteban.
67
Kinco / Re:No puedo transferir datos del PLC (maestro) a la pantalla (esclava) por RS485
« Último mensaje por Soporte marzo 19, 2019, 21:39:45 pm »
MbRtuClSendReadHoldingReg(4,10,16);
MbRtuClGetRxReg(gai_Pantalla,0,16,1);
 
En la posición  10 guardamos en pantalla un valor cualquiera por ejemplo 128. Luego envío lo que tengo en gai_Pantalla(0) nuevamente a la pantalla para visualizar que estoy haciendo bien la lectura y muestra siempre cero en vez de retornar el 128.

Me da la impresión de que hay un error de lógica, es decir, debes estar leyendo la repuesta de otra petición ModBus, o en la pantalla no estás escribiendo LW10.

Igualmente, te hice un ejemplo completo así lo probás.

Ejemplifica todas las operaciones, lectura de registros, escritura de registros, escritura/lectura de bits, etc.
El ejemplo utiliza VirtualHMI para mostrar información.



Te paso los links de descarga:

Proyecto para pantalla (HMI como esclavo):

http://slicetex.com/hmi/kinco/files/examples/ModBusRTU_HMI_Slave_MT4532TE.zip

Proyecto para PLC (como maestro):

http://slicetex.com/hmi/kinco/files/examples/ModBusRtuKincoSlave1.zip

Fíjate de probarlos y ver como se hace, leer archivo info.txt en el proyecto de PLC que explica procedimiento.

Cualquier duda, quedamos a disposición.

Saludos!
68
Hola gracias por responder , ya hicimos funcionar el envío de datos a la HMI y visualizarlos en pantalla pero no podemos leer datos del HMI. No utilizamos ethernet porque el proyecto lo presentamos con RS485 dos hilos y ya está aprobado así, el cliente lo exigió. Te agradecemos la solución.
Volviendo al tema de leer en la pantalla, utilizamos el mismo ejemplo de lectura para los módulos PD3060... Te escribo el código en PAWN :

MbRtuClSendReadHoldingReg(4,10,16);
MbRtuClGetRxReg(gai_Pantalla,0,16,1);
 
En la posición  10 guardamos en pantalla un valor cualquiera por ejemplo 128. Luego envío lo que tengo en gai_Pantalla(0) nuevamente a la pantalla para visualizar que estoy haciendo bien la lectura y muestra siempre cero en vez de retornar el 128.

PD: Los módulos de temperatura los pudimos leer también y mostrarlos en la pantalla.
69
Kinco / Re:No puedo transferir datos del PLC (maestro) a la pantalla (esclava) por RS485
« Último mensaje por Soporte marzo 18, 2019, 20:14:49 pm »
Como hago para programar la HMI como esclavo?

Estuve haciendo pruebas, para comunicar el PLC como maestro y el HMI como esclavo, y es posible.

Si solo tenés que mostrar temperatura en el HMI, es algo simple, sin problemas.

Pero se complica desde el punto de vista de programación en el PLC, si tenés que interactuar, es decir escribir valores desde el HMI al PLC,
para por ejemplo establecer configuraciones o controlar algo en el PLC. Más aún si tenés conectados los módulos de temperatura.

Te recomiendo conectar el HMI al puerto Ethernet del PLC, de esa forma, escribís o lees registros desde el HMI en el PLC de forma directa, que pueden ser los de temperatura, y listo.

¿Hay una razón en particular por la cual no usar Ethernet?.



Te dejo como configurar el HMI como esclavo, por si querés hacer la prueba:

HMI

En el proyecto del HMI, ir al diseñador y configurar conexión, especificando que el PLC utiliza "ModBus RTU Slave":



Entrar a los atributos del HMI y configurar puerto COM0:



En la vista de diseño de pantalla, podemos insertar un componente "Number Display" para mostrar un valor de registro escrito por el PLC en el HMI:



PLC

En el PLC podés enviar el valor de 6 registros contenidos en un Array HmiData[] como se muestra a continuación:

Código: (Pawn) [Seleccionar]
      //
      // Enviar datos de 6 registros al HMI a partir de dirección 0.
      // En el HMI se podrán leer en dirección LW 0, 1, 2, 3, 4, y 5.
      //
     
      MbRtuClSendWriteMultReg(4, 0, 6, HmiData) 
     
      // Incrementar valores de los registros.
      HmiData[0]++
      HmiData[1]++
      HmiData[2]++
      HmiData[3]++
      HmiData[4]++
      HmiData[5]++
     
      // Realizar una pausa de 100 mS para permitir que termine transmisión ModBus
      // de escritura, antes de iniciar siguiente transmisión.
      DelayMS(100)


Notar que utilizamos dirección ModBus RTU número 4 para el HMI como esclavo y escribimos 6 registros a partir de dirección interna número 0 del HMI.

En el HMI accedés a estos registros en dirección LW 0, LW 1, LW 2, LW 3, LW 4 y LW 5.

Esta equivalencia se muestra en el manual del HMI (pág. 448):



Saludos!
70
STX8091 / Re:Comando CGI: $!+ ... $ con página dinamica (.shtml)
« Último mensaje por EBD marzo 18, 2019, 18:32:38 pm »
Perfecto. Es bueno saberlo.
Gracias.
Páginas: 1 ... 5 6 [7] 8 9 10