No puedo transferir datos del PLC (maestro) a la pantalla (esclava) por RS485

  • 18 Respuestas
  • 363 Vistas

SebaRiera

  • Novato
  • *
  • Mensajes: 9
Buenos días , adquirimos tres módulos PD3060 con la pantalla Kinco 4532 y el PLC8091. Lo que hemos echo es configurar el PLC como maestro y en primer lugar leer todos los valores de las PT100 , luego envío esos valores a la pantalla y le digo que los guarde a partir de la dirección 40036 con el siguiente comando MbRtuClSendWriteMultReg(4,40036,6,gai_PT100_1)... Ahora cuando queremos programar la pantalla para que busque en su registro 40036 el valor de la primera PT100 y lo muestre no sabemos cómo se debería hacer. Parece que la pantalla pide al PLC leer esos datos como si fuera maestra también y sale un error PLC no responde. Estamos usando para comunicar Modbus RTU por RS485 2 cables.
« Última Modificación: marzo 18, 2019, 11:01:14 am por Soporte »

Soporte

  • Global Moderator
  • Experto
  • *****
  • Mensajes: 2032
  • Soporte Técnico
Buenos días , adquirimos tres módulos PD3060 con la pantalla Kinco 4532 y el PLC8091. Lo que hemos echo es configurar el PLC como maestro y en primer lugar leer todos los valores de las PT100 , luego envío esos valores a la pantalla y le digo que los guarde a partir de la dirección 40036 con el siguiente comando MbRtuClSendWriteMultReg(4,40036,6,gai_PT100_1)... Ahora cuando queremos programar la pantalla para que busque en su registro 40036 el valor de la primera PT100 y lo muestre no sabemos cómo se debería hacer. Parece que la pantalla pide al PLC leer esos datos como si fuera maestra también y sale un error PLC no responde. Estamos usando para comunicar Modbus RTU por RS485 2 cables.

Buenos días, no había probado la pantalla como esclava, pero da la impresión de que sigue siendo maestra por el tipo de error.

¿Cómo estás programando la pantalla?. ¿Podrías compartirme el proyecto de la pantalla para ver la configuración?.

Saludos!
SOPORTE TÉCNICO

Slicetex Electronics
www.slicetex.com

foliva26

  • Novato
  • *
  • Mensajes: 8
Buen Día, soy compañero de Seba Riera, estamos en el mismo proyecto. Yo programé la pantalla, en realidad, está como maestro; ya que por lo general, la pantalla siempre se la coloca como maestro.

el tema es que no sé como hacer para poner a la pantalla como esclavo?, ya que mi compañero puso el plc como maestro.

saludos.

FO

Soporte

  • Global Moderator
  • Experto
  • *****
  • Mensajes: 2032
  • Soporte Técnico
el tema es que no sé como hacer para poner a la pantalla como esclavo?, ya que mi compañero puso el plc como maestro.

Ah, ok.

Conectar el PLC a la pantalla con conexión Ethernet y evitar el RS485, para usarlas por separado, ¿no te sirve?, para eso hay ejemplos disponibles.

Sino decime, y puedo hacerte un ejemplo para comunicar el PLC como maestro a la pantalla configurada como esclava.

Saludos!
SOPORTE TÉCNICO

Slicetex Electronics
www.slicetex.com

foliva26

  • Novato
  • *
  • Mensajes: 8
Como hago para programar la HMI como esclavo?

saludos.

FO

Soporte

  • Global Moderator
  • Experto
  • *****
  • Mensajes: 2032
  • Soporte Técnico
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!
« Última Modificación: marzo 18, 2019, 20:27:23 pm por Soporte »
SOPORTE TÉCNICO

Slicetex Electronics
www.slicetex.com

SebaRiera

  • Novato
  • *
  • Mensajes: 9
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.
« Última Modificación: marzo 19, 2019, 18:40:09 pm por SebaRiera »

Soporte

  • Global Moderator
  • Experto
  • *****
  • Mensajes: 2032
  • Soporte Técnico
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!
« Última Modificación: marzo 19, 2019, 21:50:23 pm por Soporte »
SOPORTE TÉCNICO

Slicetex Electronics
www.slicetex.com

foliva26

  • Novato
  • *
  • Mensajes: 8
Re:Cambiar de pantalla automáticamente desde el PLC
« Respuesta #8 : marzo 28, 2019, 07:51:29 am »
Como estás, buen día...

Primero quiero agradecerte por la ayuda que nos dió el soporte sobre las dudas que hemos estado teniendo, entorno a la programación de las pantallas Kinco con el plc de la marca.

Por otro lado nos surje otro problema, dentro del programa que estamos realizando, existen estados de alarma del sistema a controlar. Necesitamos que ante una alarma emerja una pantalla de alarma, en forma automática, sin importar la pantalla que en ese momento este activa en la HMI.

Y no sabemos como hacerlo...Nos podrían dar algún ejemplo de como hacerlo?

Desde ya gracias.

Saludos.
« Última Modificación: abril 16, 2019, 19:34:13 pm por Soporte »

Soporte

  • Global Moderator
  • Experto
  • *****
  • Mensajes: 2032
  • Soporte Técnico
Re:Cambiar de pantalla automáticamente desde el PLC
« Respuesta #9 : marzo 28, 2019, 17:02:18 pm »
Por otro lado nos surje otro problema, dentro del programa que estamos realizando, existen estados de alarma del sistema a controlar. Necesitamos que ante una alarma emerja una pantalla de alarma, en forma automática, sin importar la pantalla que en ese momento este activa en la HMI.

Y no sabemos como hacerlo...Nos podrían dar algún ejemplo de como hacerlo?

Buenas tardes. Una forma es haciendo que el PLC escriba un registro en la pantalla (ejemplo LW-12) con el número de ventana a mostrar, que puede ser la ventana diseñada para "Alarmas".

Te muestro como hacerlo en el HMI:



(abajo se puede descargar la imagen para verla mejor con más zoom)

Si la ventana de alarma es la número 10, cuando LW12 sea igual a 10, el HMI cambiará a esa ventana independiente de donde esté.

El componente "PLC Control" se explica en la sección 4.15.5 del manual del HMI.

Tip-1: Esto también te puede servir para cuando arranca el PLC, que escriba el registro LW12 a 0, para que muestre la pantalla incial del HMI, independiente de donde esté.

Tip-2: Si no querés cambiar a ninguna ventana, pero igual escribís el registro, podes escribir un número de ventana inexistente (ej 32000) y el HMI no hará cambio alguno de ventana.

Tip-3: También es posible configurar alarmas, para que cuando un "bit" (ejemplo LB1100) esté activado, suene un "buzzer" o muestre un mensaje informativo. Ver sección 4.15.4 y 4.7.4 del manual del HMI.

Saludos!
« Última Modificación: abril 16, 2019, 19:33:52 pm por Soporte »
SOPORTE TÉCNICO

Slicetex Electronics
www.slicetex.com

foliva26

  • Novato
  • *
  • Mensajes: 8
Re:Especificar password / clave de acceso para HMI
« Respuesta #10 : abril 01, 2019, 12:30:23 pm »
Buen día, probé, lo de las pantallas emergentes y anduvo bien.

Ahora, dentro de mi programa, existe una pantalla para setear determinados parametros que no cualquiera puede tener acceso a ellos.

Por lo mencionado anteriormente, necesito que la pantalla que me permite programar estos parametros tenga clave de acceso, y he probado, de acuerdo a lo que dice el manual de la pantalla; programando niveles de seguridad pero no puedo.

El procedimiento que he hecho, es al presionar un pulsador que me lleve a la pantalla, abro un teclado para colocar el password, y posteriormente; una vez tipeada la clave al pulsar enter, no hace nada. Me sigue dejando en esta pantalla para colocar el password.

Por lo visto, el procedimiento no es así, tendrán algún ejemplo de como debería ser?

saludos.
« Última Modificación: abril 16, 2019, 19:33:05 pm por Soporte »

Soporte

  • Global Moderator
  • Experto
  • *****
  • Mensajes: 2032
  • Soporte Técnico
Re:Especificar password / clave de acceso para HMI
« Respuesta #11 : abril 01, 2019, 20:27:10 pm »
Ahora, dentro de mi programa, existe una pantalla para setear determinados parametros que no cualquiera puede tener acceso a ellos.

Por lo mencionado anteriormente, necesito que la pantalla que me permite programar estos parametros tenga clave de acceso, y he probado, de acuerdo a lo que dice el manual de la pantalla; programando niveles de seguridad pero no puedo.

Buenas tardes. De acuerdo a la sección 2.14.2 del manual, deberías configurar de la siguiente forma:

Paso 1) Atributos del HMI > Security Levels



Paso 2) Atributos del HMI > User Permissions



Paso 3) Entorno de diseño > Atributos de Ventana




Luego, cuando se entre a una ventana con nivel diferente a 0, se pedirá usuario/clave.

Fíjate de probar.

Saludos!


« Última Modificación: abril 16, 2019, 19:31:52 pm por Soporte »
SOPORTE TÉCNICO

Slicetex Electronics
www.slicetex.com

SebaRiera

  • Novato
  • *
  • Mensajes: 9
Re:Especificar password / clave de acceso para HMI
« Respuesta #12 : abril 03, 2019, 17:46:08 pm »
Gracias por responder, hemos estado intentando hacer eso pero no nos da bola cuando ponemos las pantallas personalizadas de password o la de login y password e ingresamos los datos, se queda en esas pantallas y no salta a la que queremos...
« Última Modificación: abril 16, 2019, 19:31:36 pm por Soporte »

Soporte

  • Global Moderator
  • Experto
  • *****
  • Mensajes: 2032
  • Soporte Técnico
Re:Especificar password / clave de acceso para HMI
« Respuesta #13 : abril 04, 2019, 11:42:45 am »
Gracias por responder, hemos estado intentando hacer eso pero no nos da bola cuando ponemos las pantallas personalizadas de password o la de login y password e ingresamos los datos, se queda en esas pantallas y no salta a la que queremos...

Te paso un ejemplo listo para probar, a mi me funciona, fíjate de transferirlo a la pantalla y tocar en el botón "SECRETO", que te llevará a la pantalla número 10, pero antes emergerá una ventana pop-up para introducir la clave. Ingresá "LEVEL PASSWORD = 888888".

Podes decargar desde el siguiente link:

www.slicetex.com/hmi/kinco/files/examples/ModBusRTU_HMI_Slave_Password_MT4532TE.zip





En el manual, sección 10.2.6, explica como hacerlo, también más información en capitulo 10.






Saludos!

Image
« Última Modificación: abril 16, 2019, 19:31:19 pm por Soporte »
SOPORTE TÉCNICO

Slicetex Electronics
www.slicetex.com

foliva26

  • Novato
  • *
  • Mensajes: 8
Re: Datalogger HMI en memoria USB
« Respuesta #14 : abril 15, 2019, 17:59:33 pm »
Buenas tardes, por suerte, la pantalla esta andando bien.

Pero me ha surgido otro problema, necesito que los registros de temperatura que la pantalla me muestra, en forma continua, me los exporte a una memoria externa, tipo Usb para poder levantarlo en excel y hacer gráficos de cómo varían estos parámetros.

Como puedo hacer?

saludos. Gracias

« Última Modificación: abril 16, 2019, 19:34:57 pm por Soporte »