La Instrucción Adicional (AOI) del Cliente Modbus TCP permite a los usuarios implementar la funcionalidad del Cliente Modbus TCP en la familia de controladores Logix. Las AOI pueden utilizarse de forma independiente o pueden añadirse a una aplicación existente siguiendo las instrucciones detalladas a continuación.
¿Para qué es esto?
Modbus TCP Client Add-On Instruction (AOI) permite a los usuarios implementar la funcionalidad Modbus TCP Client en la familia de controladores Logix. Los AOI se pueden usar de forma independiente o se pueden agregar a una aplicación existente siguiendo las instrucciones que se describen a continuación.
Descargas
Tenga en cuenta: deberá aceptar los Términos y Condiciones para cada descarga.
¿Necesita ayuda?
Si necesita ayuda con alguna aplicación o tiene comentarios acerca del Innovation Center, por favor contáctenos.
Características Generales:
El documento delinea los códigos de función Modbus admitidos, los formatos de datos e instrucciones para la implementación de AOI, incluyendo la programación de tareas periódicas, los procesos de importación de escalones y las convenciones de nomenclatura de etiquetas. Además, la guía describe la configuración de parámetros operativos locales, transacciones de datos y restricciones de implementación para garantizar un rendimiento y fiabilidad óptimos. También aborda las operaciones de monitoreo, datos de rendimiento, códigos de error y la integración de FactoryTalk View para la visualización, con el objetivo de facilitar la integración perfecta de la funcionalidad del Cliente Modbus TCP en la familia de controladores Logix para una comunicación y control mejorados.
Limitaciones/Desventajas:
Requisitos de memoria especificados debido al consumo significativo de memoria por parte de la AOI, especialmente en controladores CompactLogix más pequeños.
La Instrucción Adicional (AOI) del Cliente Modbus TCP permite a los usuarios implementar la funcionalidad del Cliente Modbus TCP en la familia de controladores Logix. Las AOI pueden utilizarse de forma independiente o pueden añadirse a una aplicación existente siguiendo las instrucciones detalladas a continuación.
¿Cómo puedo hacer que funcione?
Requisitos de hardware
- El código de cliente Modbus TCP requiere un controlador ControlLogix o CompactLogix con modulo EtherNet/IP compatible con la funcionalidad Logix Sockets. Consulte la nota técnica 470690 de la base de conocimientos para obtener la lista completa de controladores y módulos.
https://rockwellautomation.custhelp.com/app/answers/detail/a_id/470690
Requisitos de software
- El código AOI del cliente Modbus TCP es compatible con las revisiones 20 y posteriores del controlador Logix.
Requisitos de memoria
- La primera instancia del AOI del cliente TCP Modbus utiliza unos 108 Kbytes de memoria.
- Cada instancia adicional de AOI requiere unos 22,5 Kbytes de memoria.
- Estas estimaciones se basan en la familia de controladores ControlLogix 5570.
- Tenga en cuenta que algunos controladores Compactlogix tienen un tamaño de memoria inicial tan bajo como 384Kbytes. Este código puede ocupar una cantidad significativa de memoria en controladores CompactLogix más pequeños.
Requisitos funcionales y descripción
- Códigos de función Modbus compatibles
- Comandos de nivel de bits
Function Code | Name | Description |
Supported Values | Modbus Range |
---|---|---|---|---|
01 | Read Coils | Este código de función se utiliza para leer estado contiguo de las bobinas en un dispositivo (0xxxx direcciones).Las bobinas en El mensaje de respuesta se empaqueta como una bobina por bit del campo de datos. | Local Address: 0 to 1023 Server Address: 0 to 65535 Length: 1 to 256 coils |
Local Address 00001-01024 Server Address 000001-065536 |
02 | Read Discrete Inputs | Este código de función se utiliza para leer estado contiguo de las entradas discretas en un dispositivo remoto (1xxxx direcciones). Las entradas del mensaje de respuesta se empaquetan como una bobina por bit decampo de datos.
|
Local Address: 0 to 1023 Server Address: 0 to 65535 Length: 1 to 256 Inputs |
Local Address Server Address |
05 | Write Single Coil | Este código de función se utiliza para escribir un bobina simple a ON o OFF en un dispositivo remoto (direcciones 0xxxx). | Local Address: 0 to 1023 Server Address: 0 to 65535 |
Local Address Server Address |
15 | Write Multiple Coils | Este código de función se utiliza para escribir en una o más bobinas en una secuencia de bobinas para que se enciendan o apaguen en un control remoto dispositivo (0xxxx direcciones). | Local Address: 0 to 1023 Server Address: 0 to 65535 Length: 1 to 256 coils |
Local Address Server Address |
- Comandos a nivel de palabra
Function Code | Name | Description |
Supported Values | Modbus Range |
---|---|---|---|---|
03 | Read Holding Registers | Este código de función se utiliza para leer el contenido de un bloque contiguo de registros de tenencia (4xxxx direcciones) en un dispositivo remoto. | Local Address: 0 to 1023 Server Address: 0 to 65535 Length: 1 to 120 registers |
Local Address 40001-41024 Server Address 400001-465536 |
04 | Read Input Registers | Este código de función se utiliza para leer el Contenido de un bloque contiguo de entrada registros (3xxxx direcciones) en un dispositivo. | Local Address: 0 to 1023 Server Address: 0 to 65535 Length: 1 to 120 input registers |
Local Address 30001-31024 Server Address 300001-365536 |
06 | Write a Single Holding Register | Este código de función se utiliza para escribir en Registro de Holding Único (4xxxx direcciones) en un dispositivo remoto. | Local Address: 0 to 1023 Server Address: 0 to 65535 |
Local Address 40001-41024 Server Address 400001-465536 |
16 | Write Multiple Holding Registers | Este código de función se utiliza para escribir en registros de tenencia contiguos (4xxxx direcciones) en un dispositivo remoto. Este código de función se utiliza para leer el contenido de un bloque contiguo de |
Local Address: 0 to 1023 Server Address: 0 to 65535 Length: 1 to 120 registers |
Local Address 40001-41024 Server Address 400001-465536 |
Formato de datos
El AOI del cliente Modbus TCP es compatible con el formato estándar Modbus TCP del protocolo big-endian. Esto significa que el byte más significativo de un valor de 16 bits se envía antes que el byte menos significativo.
Guía de implementación
Implementación de AOI de cliente Modbus TCP
Uso de tareas periódicas
- Se recomienda agregar AOI a una tarea periódica con una velocidad de 10 ms (o superior).
- Las velocidades más lentas reducirán la carga del controlador y reducirán el rendimiento.
- Las velocidades de tarea más rápidas aumentarán el rendimiento, pero agregarán una carga significativa al controlador.
- Consulte la sección Datos de rendimiento para obtener más información (más adelante en este documento).
Cambios en la importación de peldaños y en la nomenclatura de etiquetas.
- Las instrucciones complementarias preconfiguradas se suministran en formato Rung.
- Se debe utilizar el formato Rung Import para implementar el AOI.
Importante:
Utilice solo el proceso de importación de peldaños.
No utilice la funcionalidad Copiar/Pegar ni agregue estas AOI mediante la barra de herramientas Instrucciones. Al hacer esto, se eliminarán las configuraciones de las instrucciones de mensajes preconfiguradas, lo que hará que los AOI no funcionen.
Proceso de importación de peldaños para el cliente Modbus TCP AOI
1 - Abra una rutina de escalera dentro de su aplicación.
2 - Haga clic con el botón derecho en cualquier área vacía y seleccione Import Rungs
3 - Seleccione el archivo raC_Opr_NetModbusTCPClient_Rung.L5X y haga clic en Import
4 - Cuando se abra el cuadro de diálogo Importar configuración, seleccione Tags
5 - Puede dejar los nombres finales como están o cambiarlos para adaptarlos a su aplicación.
6 - Para cambiar los nombres finales, haga clic en el botón "Find/Replace..."
Cuando se abra el cuadro de diálogo, reemplace el nombre predeterminado Client_01 con el prefijo deseado, verifique que la casilla Nombres finales esté marcada y luego haga clic en Replace All
Cierre el cuadro de diálogo Buscar/Reemplazar y verifique los nombres finales
7 - Haga clic en Aceptar para finalizar el proceso de importación
El nuevo peldaño debería verse como se muestra a continuación sin ningún error
8 - Repita los pasos 2 a 7 si la aplicación requiere clientes adicionales. NO copiar/pegar.
Configurar parámetros operativos locales
El cliente Modbus TCP requiere un módulo EtherNet/IP local que admita Logix Sockets. Consulte la sección Requisitos para obtener más información (al principio de este documento).
En esta sección vincularemos el AOI del cliente TCP Modbus a este módulo EtherNet/IP.
1 - Haga clic con el botón derecho en la etiqueta adjunta a la etiqueta Ref_Connection y seleccione Monitor "..."
2 - Expanda la etiqueta Parámetros. Especifique la ranura del módulo EtherNet/IP local.
Para los procesadores ControlLogix 1756, especifique la ranura real del módulo 1756-EN2T(R) deseado.
Para las controladoras 1756-L8xE que utilizan el puerto Ethernet integrado, especifique la ranura de la controladora 1756-L8xE. Para los controladores CompactLogix 5370, 5380, 5480, deje .LocalSlot en 0.
3 - Especifique el parámetro. LocalAddress del módulo EtherNet/IP.
Para CompactLogix 5380 y 5480 solo en modo IP dual, especifique la dirección IP de la conexión Ethernet local utilizada para las comunicaciones Modbus TCP.
Deje este campo en blanco para todos los demás casos.
4 - Especifique la dirección IP Ethernet del dispositivo Modbus Server. Esta dirección debe especificarse y no puede permanecer en blanco.
5 - Deje el puerto TCP Modbus predeterminado en 502. Este valor es el estándar del protocolo Modbus TCP.
6 - Inicie el cliente Modbus TCP estableciendo la etiqueta adjunta a Inp_Enable parámetro en 1.
Si cambia alguno de estos parámetros durante la operación, asegúrese de restablecer y, a continuación, establecer la etiqueta de parámetro Inp_Enable AOI.
Configurar transacciones de datos
1 - Expanda las etiquetas de transacciones para exponer las etiquetas miembro de la transacción 0
2 - Establezca el valor del intervalo de sondeo en milisegundos. El valor predeterminado es 1000 (1 segundo).
El valor mínimo es de 80 mseg. Cualquier transacción con una tasa de sondeo inferior a 80 ms se sondeará a una velocidad de 1 segundo.
3 - Establezca el código de la función Modbus en la etiqueta TransType. Consulte la sección Códigos de función Modbus compatibles para obtener la lista de comandos compatibles.
4 - Establezca el valor de StationID (UID en versiones anteriores) solo si el dispositivo del servidor del mismo nivel lo requiere. En la mayoría de los casos, este campo es ignorado por el servidor Modbus TCP y puede permanecer en 0. Consulte la documentación del servidor para obtener más información. Los valores 0-127 se pueden introducir directamente.
Los valores 128-255 deben convertirse en un número hexadecimal e introducirse en formato hexadecimal (16#xx). De forma predeterminada, estos valores se mostrarán como un número negativo en el campo StationID. Cambie el estilo de visualización a hexadecimal para ver el valor hexadecimal.
5 - Establezca la etiqueta BeginAddress. El valor representa la dirección inicial en el dispositivo remoto (servidor Modbus TCP) desde la que se va a leer o escribir.
Dependiendo de la función utilizada anteriormente, los valores 0... 65535 representan las direcciones Modbus 000001-065536, 100001-165536, 300001-365536, 400001-465536 respectivamente.
La versión AOI anterior a la versión 2.2.0 tenía estos valores limitados a 9999
6 - Establezca la etiqueta .Count. El valor representa el número de elementos en el dispositivo remoto (servidor Modbus TCP) desde los que se va a leer o escribir.
7 - Establezca la etiqueta LocalAddress. El valor representa la dirección inicial en las matrices "_Data" de este programa.
8 - Inicie la transacción configurando el archivo Enabled a 1.
Restricciones de implementación
1 - La implementación debe realizarse utilizando la función Import Rung solo para conservar las configuraciones de instrucciones de mensaje. No utilice Copiar/Pegar, ya que no traerá configuraciones y etiquetas completas de instrucciones de mensaje. No utilice etiquetas de búsqueda/reemplazo una vez que se implemente el peldaño. Todos los reemplazos se pueden realizar solo durante la importación de peldaños.
2 - Se admiten varias instancias de AOI de cliente por controladora. Cada instancia debe usar su propio conjunto de etiquetas de respaldo y mensaje, sin embargo, la estructura de etiquetas "..._Data" se puede compartir entre AOI.
3 - Los AOI del servidor TCP Modbus y del cliente TCP Modbus pueden residir en el mismo programa. Sin embargo, las aplicaciones de servidor pueden provocar una desconexión temporal del cliente debido al objeto Logix Sockets compartido.
4 - Cuando se implementa en el sistema de redundancia ControlLogix, el usuario debe esperar al menos una pérdida de 5 segundos de las comunicaciones Modbus después de un cambio de controlador atribuido al AOI del cliente Modbus TCP. Puede haber retrasos adicionales en las comunicaciones Modbus atribuidos al comportamiento del dispositivo servidor exacto que se está utilizando.
Supervisión de las operaciones del cliente Modbus TCP
1 - Expanda las etiquetas de transacciones para exponer las etiquetas miembro de la transacción 0
Esta etiqueta contiene cuatro áreas de datos separadas para bobinas (0xxxx), entradas discretas (1xxxx), registros de entrada (3xxxx) y registros de retención (4xxxx). La aplicación de usuario puede leer y rellenar estos valores de etiqueta sin ninguna restricción.
2 - Bits de estado Modbus TCP AOI
a - Sts_EN indica que la funcionalidad del cliente Modbus TCP está habilitada.
b - Sts_Connected resultado indica que el servidor aceptó la solicitud de conexión del cliente. No indica el flujo de datos activo. Se debe verificar el estado de las transacciones individuales para verificar el intercambio de datos.
c - Sts_Faulted resultado indica que una de las instrucciones del mensaje tiene un error.
d - Sts_Overlap salida indica que una o más transacciones no se completan antes del siguiente desencadenador
e - Sts_Overload salida indica superposiciones excesivas en una o más transacciones.
3 - Información sobre el estado de la transacción individual. Estas etiquetas existen para cada una de las 5 transacciones integradas. Transacción 0-4).
El bit TransComplete se establece cuando se completó la transacción solicitada. El programa lo borra cuando se solicita la siguiente transacción.
El valor TransStatus indica el estado actual de la transacción.
0 = éxito, 1 = en proceso, 2 = reintento, -1 = excepción
4 - La estructura de datos de diagnóstico de transacciones proporciona información dinámica interna mientras la transacción está activa.
No escriba en estas etiquetas.
Datos de rendimiento
El rendimiento del cliente Modbus puede verse afectado por muchos factores, entre ellos: la tasa de tareas periódicas, el rendimiento del dispositivo servidor, la velocidad del controlador del cliente, el grado de ocupación del controlador del cliente, el rendimiento de la red, la tarjeta de red, el número de clientes en el controlador, el número de transacciones activas, etc.
A continuación, se muestran las expectativas de rendimiento típicas cuando se utiliza un controlador L7x con una tarea periódica de 10 ms:
Número de transacciones habilitadas | Mínimo recomendado PollInterval para todas las transacciones |
1 | 80 mS |
2 | 130 mS |
3 | 220 mS |
4 | 300 mS |
5 | 380 mS |
Al usar la configuración recomendada de PollInterval o superior, puede esperar que la entrega de datos real sea muy cercana a PollInterval.
NOTA:
Si la configuración de PollInterval seleccionada es un poco demasiado rápida, es probable que vea errores de Sts_Overlap ocasionales y su sistema debería funcionar razonablemente bien.
Si la configuración de PollInterval seleccionada está extremadamente fuera de línea, verá tanto Sts_Overlap como
Sts_Overload errores y su sistema no funcionará de manera confiable. Si recibe Sts_Overload errores, debe ajustar la configuración de PollInterval.
Códigos de error
Códigos específicos de conexión
Los siguientes códigos locales almacenados en el parámetro AOI Sts_LastError
0 Sin Falla
-2 Error de mensaje de escritura de socket
-4 Error de mensaje de lectura de socket
-8 Error al crear un mensaje de socket
Para solucionar los errores de socket anteriores, revise el código de error del mensaje correspondiente y consulte la publicación Interfaz de socket EtherNet/IP para obtener detalles sobre el código de error en este vínculo: (https://literature.rockwellautomation.com/idc/groups/literature/documents/at/enet-at002_-en-p.pdf).
-12 La señal de habilitación de AOI se eliminó con la conexión activa
Códigos específicos de la transacción
Los siguientes códigos se almacenan en el parámetro Ref_Transaction por separado para cada transacción en el <TransactionTagName>[x]. Etiqueta de parámetro Diagnostic.TransLastError.
-12 Código de transacción local no admitido especificado en el valor de la etiqueta TransType. Consulte las páginas 4 y 5 para obtener la lista de códigos compatibles.
-13 Intervalo de direcciones locales no válido especificado en las etiquetas LocalAddress y Count. Consulte las páginas 4 y 5 para obtener la lista de direcciones locales admitidas.
Excepciones de Modbus TCP
Los servidores TCP Modbus pueden responder a este AOI de cliente con los códigos de excepción.
Estos se almacenan en el parámetro Ref_Transaction por separado para cada transacción en el <TransactionTagName>[x]. Etiqueta de parámetro Diagnostic.TransLastError.
Una excepción se indica cuando el 8º bit se envía en el tipo de transacción de retorno, por ejemplo, el tipo de transacción de 3 se devolvería como 16#83 (hexadecimal) o 131 (decimal). El siguiente byte contendrá el código de excepción Modbus. Estos códigos de excepción son generados por el servidor del mismo nivel y pueden desviarse de la lista de excepciones Modbus estándar.
Aquí está la lista parcial de los códigos de excepción Modbus más comunes:
- Función ilegal. El código de función recibido en la consulta no es una acción permitida para el servidor.
- Dirección de datos ilegal. La dirección de datos recibida en la consulta no es una dirección permitida para el servidor o la combinación de dirección inicial y longitud no es válida.
- Solicitud de datos o longitud ilegal. Un valor contenido en los datos de la consulta o en el campo de longitud no es un valor permitido para el servidor.
Visualización
A partir de la versión 2.03.00, se proporcionan las pantallas HMI opcionales FactoryTalk View SE, ME y View Designer para simplificar la implementación y la resolución de problemas.
Estas pantallas permiten a los usuarios ver el estado del cliente Modbus TCP, la configuración de las transacciones individuales y las matrices de datos Modbus.
Las instrucciones de instalación de las pantallas HMI se proporcionan por separado.
El código AOI de soporte se encuentra en la parte inferior de la lógica de escalera AOI y se puede quitar (junto con las etiquetas HMI) para reducir la huella de memoria AOI.