Telèfon de contacte: +34 93 846 48 01 ·

CÁPSULA UNITRONICS | MODBUS


Noticies

En este tutorial se explicará como configurar un PLC Unitronics de la gama UniStream para que actue como maestro o esclavo tanto en RTU como en TCP-IP.

15/4/2021
unitronics-unistream-unilogic-plc-hmi-programacion-industria40-automatizacion

Modbus es un protocolo de comunicaciones basado en la arquitectura maestro/esclavo (RTU) o cliente/servidor (TCP/IP), diseñado en 1979 por Modicon. Convertido en un protocolo de comunicaciones estándar de facto en la industria, es el que goza de mayor disponibilidad para la conexión de dispositivos electrónicos industriales.


En este tutorial se explicará como configurar un PLC Unitronics de la gama UniStream para que actue como maestro o esclavo tanto en RTU como en TCP-IP.




MODBUS RTU: MASTER

1. Configuración de puerto de comunicaciones
1.1 Acceder al apartado de comunicaciones serie dentro del ‘Solution Explorer’.
Acceder al apartado de configuración del puerto de comunicaciones serie para configurar-lo en función de las necesidades del proyecto.






2. Configuración de MODBUS RTU como maestro.
2.1 Acceder al apartado de MODBUS Masters y añadir tantos esclavos/slaves remotos como se necesite según el proyecto.



2.2 Definir la configuración de cada esclavo:

• Active periodic: Campo obligatorio que determinará cuando estará permitido que se ejecuten las operaciones periódicas en el esclavo.
Un ejemplo sería el bit de sistema ‘General.ON’ para mantenerlo siempre activo.

• Modbus Communications: Determina el puerto físico por el cual se comunicará el PLC.


Ejemplo: Asignar el puerto de comunicaciones que se utilizara para comunicar con el esclavo, si es el puerto por defecto de la CPU o el puerto de un modulo de comunicaciones




• Slave ID: Se debe determinar la ID del equipo esclavo, rango valido: 1 – 255.
• Slave Name: Nombre identificativo para el esclavo, determina el nombre de la estructura asociada a dicho esclavo.


• Response Timeout(ms): Determina el tiempo (en mili-segundos) que el controlador estar esperando la respuesta del esclavo, pasado este tiempo se considerara que no hay respuesta y reintentara la comunicación hasta que lo consiga o de error.

3. Configuración de variables/tags para transmitir de forma periódica.
3.1 Creación de variables/tags tipo coils/bobinas.
3.1.1 Seleccionar la pestaña de ‘Coils Periodic’ y seleccionar una función del desplegable de ‘Add New Operation’ .



3.1.2 – Si se selecciona ‘Add New Operation’ o se hace clic en el icono se añadirá una fila:



3.1.3 Si se selecciona ‘Add New Operation Batch’ se abrirá la siguiente ventana para seleccionar las variables tipo BIT que se quieran añadir.

• Para ello selecciona todas las variables que quieras añadir.
• Selecciona la acción que deseas (Read/Write).
• Añadirlas todas a la vez de forma consecutiva al presionar ‘Add’.

Nota: El orden en el que se añaden depende del orden en el que se han seleccionado, no por la posición en que se encuentran. Los arrays
reservaran tantas direcciones de memoria como memorias contenga.

3.1.4 Si se selecciona ‘Add New Struct’ se abrirá la siguiente ventana para seleccionar las estructuras que se quieran añadir, al seleccionar una estructura añadirá todas las variables que esta tenga en la pestaña correspondiente.



3.2 Creación de variables/tags tipo registros/enteros.

3.2.1 Seleccionar la pestaña de ‘Registers Periodic’ y seleccionar una función del desplegable de ‘Add New Operation’.



3.1.2 – Si se selecciona ‘Add New Operation’ o se hace clic en el icono se añadirá una fila:


3.1.3 Si se selecciona ‘Add New Operation Batch’ se abrirá la siguiente ventana para seleccionar las variables tipo BIT que se quieran añadir.

• Para ello selecciona todas las variables que quieras añadir.
• Selecciona la acción que deseas (Read/Write).
• Añadirlas todas a la vez de forma consecutiva al presionar ‘Add’.

Nota: El orden en el que se añaden depende del orden en el que se han seleccionado, no por la posición en que se encuentran. Los arrays
reservaran tantas direcciones de memoria como memorias contenga.


3.1.4 Si se selecciona ‘Add New Struct’ se abrirá la siguiente ventana para seleccionar las estructuras que se quieran añadir, al seleccionar una estructura añadirá todas las variables que esta tenga en la pestaña correspondiente.




4. Configuración de variables/tags para transmitir de forma aperiódica.

La configuración de las variables/tags es prácticamente idéntica a la expuesta en la sección de envió periódico, la mayor diferencia radica en la forma de activar estas peticiones.



Mirar los parámetros de operaciones aperiódicas

4.1 Configuración de tags/variables para enviar de forma aperiódica, dado que la configuración es similar entre tags de tipo coil y registers, solo se expondrá la configuración con las memorias de tipo BIT.

unitronics-unistream-unilogic-plc-hmi-programacion-industria40-automatizacion

4.2 Ejecución de operaciones/comandos aperiódicos vía Ladder, para ello se deben utilizar las funciones del Toolbox en el Ladder ‘COM: MODBUS’

unitronics-unistream-unilogic-plc-hmi-programacion-industria40-automatizacion

4.2.1 Envió mediante ‘MODBUS Aperiodic Trigger’, de tal forma que se ejecutara el comando linkado. En este ejemplo, causara que cada vez que una variable cambie de estado, seejecute la operación linkada a esa variable.

unitronics-unistream-unilogic-plc-hmi-programacion-industria40-automatizacion

4.2.2 – Envió mediante ‘MODBUS Aperiodic Indirect Trigger’.Esta función permite realizar operaciones individuales en función de su ID, ya sea seleccionando-se mediante una constante o una variable.

unitronics-unistream-unilogic-plc-hmi-programacion-industria40-automatizacion

En esta función hay 3 campos:

A. Master: En este campo se determinará el puerto de comunicaciones que se desee.

unitronics-unistream-unilogic-plc-hmi-programacion-industria40-automatizacion

B. Operation ID to trigger: En este campo se escogerá mediante constante o variable la ID de la operación que se llevará a cabo. Esto permitirá que con un solo bloque de funciones se podrán realizar diferentes operaciones recorriendo las IDs mediante una variable como si fuera un puntero.

Este ejemplo permitiría ejecutar de forma secuencial las operaciones desde la ID 2 hasta la 6

unitronics-unistream-unilogic-plc-hmi-programacion-industria40-automatizacion

C. Status: Este campo se deberá linkar a una variable de control de estado, con tal de ver el estado de la función.

unitronics-unistream-unilogic-plc-hmi-programacion-industria40-automatizacion

4.2.3 Envió mediante ‘MODBUS Aperiodic Group Indirect Trigger’.

Esta función es similar a la anterior, pero esta ejecuta de forma conjunta un grupo de operaciones pre-agrupadas.

unitronics-unistream-unilogic-plc-hmi-programacion-industria40-automatizacion

En esta función hay 3 campos:

A. Master: En este campo se determinará el puerto de comunicaciones que se desee.

unitronics-unistream-unilogic-plc-hmi-programacion-industria40-automatizacion

B. Group ID to trigger: En este campo se escogerá mediante constante o variable el grupo de operaciones que se llevara a cabo. Esto permitirá realizar un conjunto de operaciones de forma simultánea con un solo bloque de funciones, modificando el valor de la variable asociada se podrán ejecutar deferentes grupos.

Este ejemplo permitiría ejecutar el grupo de operaciones 1 de forma conjunta:

unitronics-unistream-unilogic-plc-hmi-programacion-industria40-automatizacionunitronics-unistream-unilogic-plc-hmi-programacion-industria40-automatizacion

C. Status: Este campo se deberá linkar a una variable de control de estado, con tal de ver el estado de la función.

unitronics-unistream-unilogic-plc-hmi-programacion-industria40-automatizacion



MODBUS RTU: SLAVE

1. Configuración de puerto de comunicaciones.

1.1 - Acceder al apartado de comunicaciones serie dentro del ‘Solution Explorer’.

Acceder al apartado de configuración del puerto de comunicaciones serie para configurar-lo en función de las necesidades del proyecto.

unitronics-unistream-unilogic-plc-hmi-programacion-industria40-automatizacionunitronics-unistream-unilogic-plc-hmi-programacion-industria40-automatizacionunitronics-unistream-unilogic-plc-hmi-programacion-industria40-automatizacion


2. Configuración de MODBUS RTU como esclavo.

2.1 - Acceder al apartado de MODBUS Slaves y definir la configuración del esclavo:

unitronics-unistream-unilogic-plc-hmi-programacion-industria40-automatizacion

• Modbus Communications: Determina el puerto físico por el cual se comunicará el PLC.
• Slave ID: Se debe definir la ID del equipo, rango valido: 1 – 255. Este deberá coincidir con el especificado en el PLC Master.
• Slave Name: Nombre identificativo para el esclavo, determina el nombre de la estructura asociada a dicho esclavo.

unitronics-unistream-unilogic-plc-hmi-programacion-industria40-automatizacion


3. Configuración de variables/tags como esclavo.

La creación de variables/tags es idéntico al expuesto en la sección del maestro

3.1 – Creación de variables/tags tipo coils/bobinas.

unitronics-unistream-unilogic-plc-hmi-programacion-industria40-automatizacion

Mirar los parámetros de operaciones como esclavo


3.2 – Asignar direcciones MODBUS (Address) a las memorias.
Tener en cuenta que el Coil2 está asociado a un array de 5 BITs, por lo tanto las direcciones de modbus que ocuparía serian de la 50 a la 55.

unitronics-unistream-unilogic-plc-hmi-programacion-industria40-automatizacion

Tener en cuenta que los registros expuestos don de 16 bits, si fueran registros de 32 bits ocuparían 2 espacios de memoria.

unitronics-unistream-unilogic-plc-hmi-programacion-industria40-automatizacion


MODBUS TCP-IP: MASTER

El proceso de configuración es idéntico al expuesto en apartado del RTU - RS485, la única diferencia se encuentra en la configuración del puerto de comunicaciones que se utilizara.

1. Configuración de puerto de comunicaciones.

1.1 - Acceder al apartado de comunicaciones ethernet dentro del ‘Solution Explorer’.

unitronics-unistream-unilogic-plc-hmi-programacion-industria40-automatizacion


1.1.1 – Dentro del apartado ‘Panel Ethernet’ configurar las propiedades requeridas para
la comunicación TCP-IP en el apartado ‘IP Settings’ dentro del ‘Properties Window’, y de ser necesario para el proyecto, los servidores DNS requeridos.

unitronics-unistream-unilogic-plc-hmi-programacion-industria40-automatizacion


2. Configuración de MODBUS TCP-IP como maestro.

2.1 - Acceder al apartado de MODBUS Masters y añadir tantos esclavos/slaves remotos como se necesite según el proyecto.

unitronics-unistream-unilogic-plc-hmi-programacion-industria40-automatizacionunitronics-unistream-unilogic-plc-hmi-programacion-industria40-automatizacion

2.2 - Definir la configuración de cada esclavo:

• Active periodic: Campo obligatorio que determinará cuando estará permitido que se ejecuten las operaciones periódicas en el esclavo.
Un ejemplo sería el bit de sistema ‘General.ON’ para mantenerlo siempre activo.

unitronics-unistream-unilogic-plc-hmi-programacion-industria40-automatizacion

• Modbus Communications: Determina la dirección IP y el puerto del esclavo con el cual se comunicará.

unitronics-unistream-unilogic-plc-hmi-programacion-industria40-automatizacion

• Slave ID: Por defecto se utiliza la ID 255 para Unitronics (rango valido: 1 – 255).
• Slave Name: Nombre identificativo para el esclavo, determina el nombre de la estructura asociada a dicho esclavo.

unitronics-unistream-unilogic-plc-hmi-programacion-industria40-automatizacion

• Response Timeout (ms): Determina el tiempo (en mili-segundos) que el controlador estar esperando la respuesta del esclavo, pasado este tiempo se considerara que no hay respuesta y re-intentara la comunicación hasta que lo consiga o de error.

Los pasos para la creación te tags/variables son idénticos para MODBUS RTU y TCP-IP, para ver dicho proceso puede ir al punto 3 y 4 para la configuración de transmisión periódica y aperiódica respectivamente.



MODBUS TCP-IP: SLAVE

El proceso de configuración es idéntico al expuesto en apartado del RTU - RS485, la única diferencia se encuentra en la configuración del puerto de comunicaciones que se utilizara.


1. Configuración de puerto de comunicaciones.

1.1 - Acceder al apartado de comunicaciones ethernet dentro del ‘Solution Explorer’ y configurar las propiedades requeridas para la comunicación TCP-IP en el apartado ‘IP Settings’ dentro del ‘Properties Window’, y de ser necesario para el proyecto, los servidores DNS requeridos.

unitronics-unistream-unilogic-plc-hmi-programacion-industria40-automatizacion
Nota: Cada equipo debe tener una dirección IP única dentro de la misma red, eso incluye al maestro, los esclavos y otros equipos que estén en dicha red.


2. Configuración de MODBUS TCP-IP como esclavo.

2.1 - Acceder al apartado de MODBUS Slaves y definir el equipo como esclavo.

unitronics-unistream-unilogic-plc-hmi-programacion-industria40-automatizacion

2.2 - Definir la configuración de cada esclavo:

• Modbus Communications: Determina la dirección IP en función del puerto fisico de comunicaciones seleccionado y el puerto por el cual se comunicará. Para la función de esclavo se utiliza el puerto 502

unitronics-unistream-unilogic-plc-hmi-programacion-industria40-automatizacion

• Slave ID: Por defecto se utiliza la ID 255 para Unitronics (rango valido: 1 – 255).
• Slave Name: Nombre identificativo para el esclavo, determina el nombre de la estructura asociada a dicho esclavo.

unitronics-unistream-unilogic-plc-hmi-programacion-industria40-automatizacion
Los pasos para la creación te tags/variables son idénticos para MODBUS RTU y TCP-IP, para ver dicho proceso puede ir al punto 3 para la configuración de variables/tags como esclavo en el apartado de RTU SLAVE.

Parámetros de operaciones periódicas

• Name: Parámetro no relevante, solo sirve para identificar a nivel de usuario, no influye en la programación.
• Tag: Variable asociada a dicha operación.
• Addres: Dirección a la que actuara dentro del esclavo en formato decimal (DEC).
• Action:
• Read: Lee la dirección del esclavo establecida en ‘Address’ y la guarda en la variable establecida en ‘Tag’ .
• Write: Escribe el valor de la variable establecida en ‘Tag’ en la dirección del esclavo establecida en ‘Address’.
• Operation: Define la acción especifica que se realizara en dicha operación, asi como la dirección MODBUS a la que apuntara.

unitronics-unistream-unilogic-plc-hmi-programacion-industria40-automatizacion

• Every Period: Determina el número de unidades de tiempo que pasaran entre cada ejecución.
• Every Time Unit: Determina la unidad de tiempo que se utilizara como referencia.

unitronics-unistream-unilogic-plc-hmi-programacion-industria40-automatizacion

• Active: Campo opcional que determina cuando se ejecutara la operación en función de la variable asignada, es un condicionante más que actúa por debajo del ‘Active periodic’.
• Status: Campo opcional que permite ver el estado de la operación. Relevante para operaciones aperiódicas


Parámetros de operaciones aperiódicas

• Name: Parámetro no relevante, solo sirve para identificar a nivel de usuario, no influye en la programación.
• ID: Identificador único para cada operación.
• Group ID: Campo que permite agrupar diferentes operaciones, solo admite formato numérico entre 0 y 128.
• Tag: Variable asociada a dicha operación.
• Addres: Dirección a la que actuara dentro del esclavo en formato decimal (DEC).
• Action:
• Read: Lee la dirección del esclavo establecida en ‘Addres’ y la guarda en la variable establecida en ‘Tag’.
• Write: Escribe el valor de la variable establecida en ‘Tag’ en la dirección del esclavo establecida en ‘Addres’.
• Operation: Define la acción especifica que se realizara en dicha operación, asi como la dirección MODBUS a la que apuntara.

unitronics-unistream-unilogic-plc-hmi-programacion-industria40-automatizacion

• Status: Campo opcional que permite ver el estado de la operación. Relevante para operaciones aperiódicas


Parámetros de operaciones como esclavo

• Name: Parámetro no relevante, solo sirve para identificar a nivel de usuario, no influye en la programación.
• Tag: Variable asociada a dicha operación. Puede ser una memoria independiente, un array de elementos o un solo elemento de este.

Por ejemplo: 
unitronics-unistream-unilogic-plc-hmi-programacion-industria40-automatizacion   O   unitronics-unistream-unilogic-plc-hmi-programacion-industria40-automatizacion


• Addres: Dirección en la que se alojara dicha memoria en el mapeado de MODBUS del PLC, en formato decimal (DEC).
• Permissions:
o Read-Only: Esta opción causa que esta variable/tag solo pueda ser leída pero no modificada.
o Read/Write: Esta opción habilita tanto la lectura como la escritura de dicha memoria.
NEWSLETTER
Si vols disposar de continguts útils per al teu dia a dia i estar a l'última
de les novetats del sector, subscriu-te a la nostra newsletter.