top of page

Comunicación con SENTRON PAC 3200 MODBUS TCP

  • Juan Pablo Alía
  • 4 may 2020
  • 2 Min. de lectura

Actualizado: 8 may 2020


En esta entrada se muestra cómo comunicar un plc SIEMENS S7 de las serie 1200 con un multímetro SENTRON PAC 3200 de SIEMENS mediante comunicación MODBUS TCP

El plc tiene la referencia 6ES7 214-1BG40-0XB0, el multímetro tiene la referencia 7KM PAC3200

El esquema de conexiones es el siguiente:


A continuación se explica la función que se utilizó para realizar la conexión y poder leer los valores del medidor de energía en un Scada:

Primero se establece la dirección IP del plc y de los multímetros, tienen que estar todos en el mismo rango de red:


En el Main del programa se hace una llamada a la función que hemos programado para establecer la comunicación:


El bloque utilizado para la comunicación es MB_CLIENT, que se encuentra en COMUNICACIÓN >> OTROS >> MODBUS TCP >> MB_CLIENT:


La lectura se realiza cada segundo y siempre que la función no esté ocupada (pin REQ)

Configuramos como lectura (Pin MB_MODE = 0)

En MB_DATA_ADDR se establece la dirección Modbus inicial del esclavo a partir de la cual queremos leer los datos y en MB_DATA_LEN el número de datos a leer desde la dirección inicial.

En MB_DATA_PTR se indica el puntero del DB a partir de donde se depositan los datos:


En el Pin CONNECT se pone un puntero que apunta al DB de configuración de la comunicación:


La variable CONEXIO es del tipo de datos TCON_IP_V4

En el primer segmento de la función se establece la dirección IP del SENTRON PAC: 10.0.10.104 :


En el segundo segmento se establecen datos relativo a la conexión:


El puerto es el 502

El tipo de conexión es 11 (TCP/IP) (0b en hexadecimal)

El InterfaceID es 64 (40 en hexadecimal):


En el tercer segmento establecemos el puerto local, que es el 502:


En el segmento 6 hacemos un reseteo de la primera secuencia de lectura, este programa tiene dos secuencias de lectura puesto que los valores que queremos leer están en dos bloques distintos, uno que va desde la dirección 40002 y abarca 100 posiciones y otro bloque abarca desde la dirección 40802 y abarca 8 posiciones, por eso se ejecuta una primera lectura de datos, es decir una llamada al primer bloque de lectura de datos, y una vez que se ha terminado la lectura se pasa a la siguiente lectura de datos:


Los siguientes dos segmentos, el 8 y el 9 sirven para reiniciar la secuencia y volver al primer bloque de lectura de datos:


Los siguientes segmentos sirven para transferir los datos leidos en el bloque DB4 que tiene formato de array a las correspondientes posiciones de memoria que se visualizarán en el scada:




Hay una particularidad en la energía, que es un valor que viene en un formato que hay que convertir a doble palabra


En el segmento 13 se resetea la secuencia de lectura y en el 14 se mueve el valor de energía que es una palabra doble a una dirección del scada



 
 
 

Comments


© 2023 by Train of Thoughts. Proudly created with Wix.com

bottom of page