Está en la página 1de 35

CONTROLWAVE MICRO

Protocolos de comunicación

ModBus TCP – ModBus Slave


ModBus TCP – ModBus Master
HART – Punto a punto y multidrop
Yacira Aguiar
Ingeniero de Servicios
CONTROLWAVE MICRO
Protocolos de comunicación

ModBus TCP
ModBus Slave
ModBus TCP – ModBus Slave
Bloque CUSTOM

ioabInit BOOL Inicio del bloque. Debe hacerse un toggle bit para
En la librería ACCOL3, se encuentra el bloque
iniciar la comunicación, luego de hacer cambios
CUSTOM, que permite la conexión con idiRepeat DINT 500 Tiempo de repetición del ciclo. Debe ser igual al
tiempo de la tarea.
diversos protocolos de comunicación.
iiMode INT 51 51 = ModBus Open Slave Mode

iiCustomList INT 97 Número de la lista de parámetros de configuración de


Las configuraciones del bloque CUSTOM para la comunicación
una comunicación ModBus TCP, donde el iiComPort INT 1 N/A para comunicación TCP/IP

esclavo es el que se programará dentro del iiSlaveAddress INT 1 ID del esclavo

ControlWaveDesigner son las siguientes: idTimeout DINT 500 Timeout del tiempo de respuesta

isIPAddress STRING ‘502’ Puerto de conexión ModBus TCP/IP


odiStatus DINT Status de la comunicación
oudDoneCount UDINT Incrementa en 1 con cada conexión satisfactoria
obDoneFlag BOOL 1 indica que la comunicación fue correcta, luego
vuelve a 0

ControlWave Micro – Protocolos de Comunicación


ModBus TCP – ModBus Slave
CustomList 97 – Lista de parámetros de configuración de la comunicación

ianyElement1 INT 1 Número de la lista de almacenamiento de los registros modbus-Coils


ianyElement2 INT 3 Número de la lista de almacenamiento de los registros modbus-
Holding Register
ianyElement3 INT 6 Número de la lista de los estados de excepción.

ianyElement4 INT 2 Número de la lista de almacenamiento de los registros modbus-


Discrete Inputs
ianyElement5 INT 4 Número de la lista de almacenamiento de los registros modbus-
Input Register.
ianyElement6 INT 3 Tamaño del dato (DataSize). 3 para enteros, 5 para flotantes.

ianyElement7 INT 0 Orden de los bits. 0=Más significativo primero

ControlWave Micro – Protocolos de Comunicación


ModBus TCP – ModBus Slave
CustomList 97 – Lista de parámetros de configuración de la comunicación

ianyElement8 INT 1 Orden de los bytes. 1=Más significativo primero


ianyElement9 INT 1 Orden de los words. 1=Más significativo primero
ianyElement10 INT N/A para comunicación TCP/IP
ianyElement11 INT N/A para comunicación TCP/IP
ianyElement12 INT 7 Número de la lista de almacenamiento de las direcciones base de los
registros.
ianyElement13 INT 0 Protección contra escritura. 0= no habilitado
ianyElement14 INT 0 Definición de un esclavo de sólo lectura. 0= no habilitado

Nota: Es necesario rellenar los 14 elementos, así algunos no apliquen para el


protocolo, para evitar que la lista deje de reconocer algún elemento posterior.

ControlWave Micro – Protocolos de Comunicación


ModBus TCP – ModBus Slave
CustomList 1 – Lista de almacenamiento de los registros ModBus - Coils

El número de esta CustomList es el primer


parámetro de la CustomList 97.

Los elementos de la lista deben coincidir


con el tipo de dato del registro. En este
caso, todos deben ser booleanos.

ControlWave Micro – Protocolos de Comunicación


ModBus TCP – ModBus Slave
CustomList 3 – Lista de almacenamiento de los registros ModBus – Holding Register

El número de esta CustomList es el segundo


parámetro de la CustomList 97.

Los elementos de la lista deben coincidir con el tipo de dato del


registro. Esta lista puede manejar reales y enteros.
En caso de cambiar entre reales y enteros, hay que cambiar el
valor del DataSize (Parámetro 6 de la CustomList 97)

ControlWave Micro – Protocolos de Comunicación


ModBus TCP – ModBus Slave
CustomList 6 – Lista de los estados de excepción

El número de esta CustomList es el tercer


parámetro de la CustomList 97.

Esta lista debe contener 8


elementos booleanos.

ControlWave Micro – Protocolos de Comunicación


ModBus TCP – ModBus Slave
CustomList 2 – Lista de almacenamiento de los registros ModBus - Discrete Inputs

El número de esta CustomList es el cuarto


parámetro de la CustomList 97.

Los elementos de la lista deben coincidir con el tipo


de dato del registro. En este caso, todos deben ser
booleanos.

ControlWave Micro – Protocolos de Comunicación


ModBus TCP – ModBus Slave
CustomList 4 – Lista de almacenamiento de los registros ModBus – Input Register

El número de esta CustomList es el quinto


parámetro de la CustomList 97.

Los elementos de la lista deben coincidir


con el tipo de dato del registro. Esta lista
puede manejar enteros.

ControlWave Micro – Protocolos de Comunicación


ModBus TCP – ModBus Slave
CustomList 7 – Lista de almacenamiento de las direcciones base de los registros

El número de esta lista es el elemento 12 de la


CustomList 97 y debe poseer 4 elementos de
tipo INT, correspondientes a las direcciones
base de los 4 tipos de registro ModBus.

En este caso, las direcciones base están en


Dirección base de los Coils.
100. Lo que en ControlWaveDesigner supone Dirección base de las Discrete
Dirección base de los Holding
Inputs.
que los valores serán almacenados a partir de Dirección base de los Input
Registers.
la dirección 101. Registers

Desde ModScan, debe colocarse la 101 como


dirección base, para poder preguntarle al
esclavo.

ControlWave Micro – Protocolos de Comunicación


ModBus TCP – ModBus Slave
Configuración del maestro (ModScan)

Para comunicación de tipo TCP/IP

Dirección IP de la ControlWaveMicro

Puerto de servicio para


comunicación ModBus

ControlWave Micro – Protocolos de Comunicación


ModBus TCP – ModBus Slave
Configuración del maestro (ModScan)

Una dirección por encima de la


utilizada en la CustomList 7 No puede ser superior a la cantidad de
elementos que posee la lista que Misma dirección de esclavo
contiene los registros. configurada en el custom block

ControlWave Micro – Protocolos de Comunicación


CONTROLWAVE MICRO
Protocolos de comunicación

ModBus TCP
ModBus Master
ModBus TCP – ModBus Master
Bloque CUSTOM

En la librería ACCOL3, se encuentra el bloque CUSTOM, que permite la conexión con diversos
protocolos de comunicación.
Las configuraciones del bloque CUSTOM para una comunicación ModBus TCP, donde el maestro es el
que se programará dentro del ControlWaveDesigner son las siguientes:
Mantiene al maestro preguntando
constantemente

ControlWave Micro – Protocolos de Comunicación


ModBus TCP – ModBus Master
Bloque CUSTOM

ioabInit BOOL true Inicio del bloque. Debe hacerse un toggle bit para iniciar la
comunicación, luego de hacer cambios
idiRepeat DINT 500 Tiempo de repetición del ciclo. Debe ser igual al tiempo de la tarea.

iiMode INT 53 53 = ModBus Open Master Mode

iiCustomList INT 2 Número de la lista de parámetros de configuración de la


comunicación
iiComPort INT 1 N/A para comunicación TCP/IP

iiSlaveAddress INT 2 ID del esclavo

idTimeout DINT 500 Timeout del tiempo de respuesta

isIPAddress STRING ’10.10.10.150’ Dirección IP del esclavo


odiStatus DINT Status de la comunicación
oudDoneCount UDINT Incrementa en 1 con cada conexión satisfactoria
obDoneFlag BOOL 1 indica que la comunicación fue correcta, luego vuelve a 0

ControlWave Micro – Protocolos de Comunicación


ModBus TCP – ModBus Master
CustomList 2 – Lista de parámetros de configuración de la comunicación

ianyElement1 INT 3 Modbus Function Code; 3=Read holding registers. Nota: La dirección base enviada
ianyElement2 INT 100 Dirección base del registro especificado en el elemento 1. al esclavo será menor en 1 al
especificado en el parámetro 2.

Parameter 1 Parameter Function Equivalent Modbus


Value Function Code
1 Read Coil Status 1
2 Read Input Status 2
3 Read Holding Registers 3

4 Read Input Registers 4


5 Force Single Coil 5
6 Preset Single Register 6

7 Read Exception Status 7

8 Force Multiple Coils 15


9 Preset Multiple Registers 16

10 Diagnostics 8

255 User Defined Function N/A

ControlWave Micro – Protocolos de Comunicación


ModBus TCP – ModBus Master
CustomList 2 – Lista de parámetros de configuración de la comunicación

ianyElement3 INT 10 Número de elementos a leer del esclavo


ianyElement4 INT 1 Número de la lista de almacenamiento de los registros.

ianyElement5 INT 1 Sólo aplica para funciones definidas por el usuario

ianyElement6 INT 1 Tamaño del dato (DataSize). 1 para booleanos, 3 para enteros,
5 para flotantes.
ianyElement7 INT 0 Orden de los bits. 0=Más significativo primero

ianyElement8 INT 1 Orden de los bytes. 1=Más significativo primero

ianyElement9 INT 1 Orden de los words. 1=Más significativo primero

ControlWave Micro – Protocolos de Comunicación


ModBus TCP – ModBus Master
CustomList 1 – Lista de almacenamiento de los registros

El número de esta CustomList es el cuarto


parámetro de la CustomList 2.

Todos los elementos de la lista deben ser


del mismo tipo; y deben coincidir con el
tipo de dato del registro especificado en el
elemento 1 de la CustomList 2.

Se debe tomar el cuenta el DataSize especificado en el


elemento 6 de la CustomList 2; en caso de reutilizar el
bloque para almacenar enteros de 16-32 bit, flotantes o
booleanos.

ControlWave Micro – Protocolos de Comunicación


ModBus TCP – ModBus Master

ControlWave Micro – Protocolos de Comunicación


ModBus TCP – ModBus Master
Configuración del esclavo (ModSim)

Para comunicación de tipo TCP/IP

ControlWave Micro – Protocolos de Comunicación


ModBus TCP – ModBus Master
Configuración del esclavo (ModSim)
Dirección del esclavo. Este número debe
coincidir en el custom block.
Dirección base de los registros.

Se debe tomar en cuenta que el esclavo puede


enviar gran cantidad de elementos, pero el maestro
sólo podrá leer la cantidad que se configuró
previamente.

ControlWave Micro – Protocolos de Comunicación


CONTROLWAVE MICRO
Protocolos de comunicación

HART
Punto a punto y Multidrop
HART
Configuración de la tarjeta HART/BTI

Para configurar la tarjeta HART, se accede a


la ruta View>>IO Configurator y se añade
“CWM_HIB” a la lista de la derecha:

ControlWave Micro – Protocolos de Comunicación


HART
Configuración de la tarjeta HART/BTI

Se configura el número de slot


donde se encuentra la tarjeta

Se relaciona con la tarea que se va a


encargar de la comunicación HART.

Se configuran los
canales de la tarjeta

Para comunicación Multidrop


se escoge Hart Multidrop

ControlWave Micro – Protocolos de Comunicación


HART
Configuración de la tarjeta HART/BTI

Para comunicación HART punto a


punto, se configuran los canales
como Analog Input

Para comunicación Multidrop


se escoge Hart Multidrop

ControlWave Micro – Protocolos de Comunicación


HART
Bloque HART

Para establecer la comunicación HART, se configura el


bloque HART de la librería ACCOL 3.

Es necesario un bloque por cada instrumento. ioabInit BOOL true Inicio del bloque. Debe hacerse un toggle bit para
iniciar la comunicación, luego de hacer cambios
ibPrimary BOOL

iiComMode INT 1 1 = Point to Point communications through I/O


board.
2 = Hart Multidrop
iiDevice INT 1 Slot donde está la tarjeta

iiChannel INT 1 Canal donde está conectado el (los)


instrumento(s)
iiPollMode INT 1 1 = Read Dynamic Variables and loop current

iaStartDataStruct Estructura definida por el usuario.


iaPollDataStruct Estructura definida por el usuario.

ControlWave Micro – Protocolos de Comunicación


HART
iiPollMode

0 = Lee la variable primaria.


1 = Lee las variables dinámicas y la corriente.
2 = Lee las variables del dispositivo.
3 = Le escribe texto al dispositivo y luego lee la variable primaria. (Tag, descripción y mensaje).
Este modo puede utilizarse para la configuración inicial del dispositivo.
4 = Mensaje definido por el usuario.

La ControlWave va a preguntarle al dispositivo por TAG,


no por dirección HART. Con el modo 3, se permite definir
el TAG para la configuración inicial y luego poderle
preguntar.

ControlWave Micro – Protocolos de Comunicación


HART
iaStartDataStruct

Este campo debe llamar a una estructura definida por el usuario, donde se almacenan los datos de la secuencia de inicio del
dispositivo. Almacena datos como el número de serial, span, limites, corriente y rangos. Las imágenes muestran la
declaración del tipo de dato StructHartStartData. Por cada dispositivo al que se le va a preguntar, debe existir una estructura
de este tipo de dato.

ControlWave Micro – Protocolos de Comunicación


HART
iaPollDataStruct

Este campo debe llamar a una estructura definida por el usuario, donde se almacenan los datos de retorno del dispositivo.
Almacena el valor de las variables y las unidades. Las imagen muestra la declaración del tipo de dato StructHartPollData. Por cada
dispositivo al que se le va a preguntar, debe existir una estructura de este tipo de dato.

ControlWave Micro – Protocolos de Comunicación


HART
Multidrop

3 instrumentos en multidrop,
Cadaconectados
bloque al mismo
representa
canal. a un
instrumento, y cada uno debe tener sus
estructuras declaradas individualmente.

ControlWave Micro – Protocolos de Comunicación


HART
Multidrop

Le indica a la estructura cual es el TAG del dispositivo


al que le va a preguntar.
Mueve los datos desde la estructura hacia variables
locales, para poder verlas.

Al iniciar la rutina, este código le asigna la dirección


HART 1 al FT3095MV, la 2 al PT200 y la 2 al TT100;
debido a que es el orden en que está preguntando.

ControlWave Micro – Protocolos de Comunicación


HART
Punto a punto

2 instrumentos conectados punto a


punto. Cada uno en un canal
diferente.
Estos valores no deben coincidir.

ControlWave Micro – Protocolos de Comunicación


HART
Punto a punto

Para escribirle al dispositivo. PollMode 3

En este caso no es necesario preguntar por TAG.


Automáticamente, al correr, el instrumento obtiene
dirección 0 y se puede acceder a los datos.

ControlWave Micro – Protocolos de Comunicación

También podría gustarte