MODBUS TCP CAPÍTULO PARA H0/H2- ECOM100 - AutomationDirect

Transcription

MODBUS TCPPARA H0/H2ECOM100CAPÍTULOAPÍTULO5En este capítulo.MODBUS TCP - Definiciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-2Códigos de funciones MODBUS apoyados . . . . . . . . . . . . . . . . . . . .5-4Operación de servidor (esclavo) de la red . . . . . . . . . . . . . . . . . . . . .5-5Operación del cliente (maestro0 de la red . . . . . . . . . . . . . . . . . . .5-13Memoria de sistema de H0/H2-ECOM o H0-H2-ECOM . . . . . . . . .5-19

Capítulo 5: MODBUS TCP para H0/H2-ECOM100MODBUS TCPMODBUS TCP es esencialmente el protocolo serial de MODBUS RTU encapsulado enEthernet TCP. MODBUS RTU se utiliza para comunicaciones seriales entre dispositivosmaestro y esclavo o esclavos. Se usa MODBUS TCP para comunicaciones TCP entre losdispositivos cliente y servidores en una red de Ethernet. La versión de TCP de Modbussigue el modelo de referencia de red de la OSI.Modelo Cliente/servidorEl servicio de mensajes de MODBUS proporciona un modelo cliente/Servidor decomunicación entre dispositivos conectados en una red de Ethernet TCP. Este modelode cliente/ servidor se basa en cuatro tipos de mensajes:- Petición de MODBUS - el mensaje enviado en la red por el cliente para iniciar unatransacción- Confirmación de MODBUS - el mensaje de respuesta recibido en el lado del clientee- Indicación de MODBUS - el mensaje de la petición recibido en el lado del servidor- Respuesta de MODBUS - el mensaje de respuesta enviado por el modelo del servidorModelo aciónRespuestaServidorLos módulos H0-ECOM100o el H2-ECOM100 puedenactuar como cliente oservidorDescripción del protocoloUn marco típico de MODBUS TCP consiste en los campos siguientes:El MBAP Header (Encabezamiento del protocolo de aplicación de MODBUS) tienesiete bytes de largo. Consiste en los campos siguientes.TCP HEADERMBAP HEADERFUNCIONDATOS- Transaction Identifier (Identificador de la Transacción) - Se usa para asociartransaccioes, el servidor de MODBUS copia en la respuesta el identificador de latransacción de la requisición (2 bytes)- Protocol identifier (Identificador del Protocolo) - Se usa para la intra multiplexación del sistema. El protocolo de MODBUS es identificado por el valor0 (2 bytes)- Length (Longitud) - El campo de longitud es una cuenta de bytes de los campossiguientes, incluyendo el identificador de la unidad y los campos de datos (2 bytes)- Identificador de la unidad - Se usa este campo para el propósito deencaminamiento interno del sistema. Se usa típicamente para comunicarse a unesclavo MODBUS o a una línea serial esclava de MODBUS a través de ungateway entre una red Ethernet TCP y una línea serial MODBUS. Este campo esconfigurado por el cliente de MODBUS en la requisición y debe volver con elmismo valor en la respuesta del servidor (1 byte).Este header proporciona algunas diferencias comparadas a la unidad de datos deaplicación de MODBUS RTU usada en una línea serial:5-2Manual de los módulos ECOM

Capítulo 5: MODBUS TCP para H0/H2-ECOM100- el campo "dirección del esclavo" de MODBUS usado generalmente en una líneaserial de MODBUS es substituido por un solo byte "identificador de la unidad"dentro del encabezamiento de MBAP. El "identificador de la unidad" se usa paracomunicarse a través de los dispositivos tales como puentes, routers y gatewaysque usen una sola DIRECCION IP para apoyar múltiplas unidades de extremo deMODBUS independientes .- Se diseñan todas las peticiones y las respuestas de MODBUS de una manera talque el recipiente pueda verificar que un mensaje esté acabado. Para códigos defunción donde la PDU de MODBUS tiene una longitud fija, solamente el códigode función es suficiente. Para códigos de función que llevan una cantidadvariable de datos en la requisición o la respuesta, el campo de datos incluye unacuenta de bytes.- Identificador del Protocolo - Se usa para la multiplexación del sistema internoEl protocolo de MODBUS es identificado por el valor 0 (2 bytes)El campo del código de función de un mensaje contiene 8 bits. Los códigos válidos defunción están en el rango de 1 -255 decimal . El código de función comanda al esclavoqué clase de acción tomar. Algunos ejemplos son leer el estado de un grupo de entradasdiscretas; leer los datos en un grupo de registros; escribir a una salida o un grupo deregistros; o leer el estado de diagnóstico de un esclavo.Cuando un esclavo responde al maestro, usa el campo del código de función paraindicar o una respuesta normal o que ha ocurrido un cierto tipo de error. Para unarespuesta normal, el esclavo repite el código original de la función. En una condiciónde error, el esclavo repite el código original de función con su MSB configurado comológica 1.Se construye el campo de datos usando conjuntos de dos dígitos hexadecimales en elrango de 00 a FF. Según el modo de transmisión serial de la red, estos dígitos se puedenhacer de un par de caracteres ASCII o a partir de un carácter RTU.El campo de datos también contiene la información adicional que el esclavo utilizapara ejecutar la acción definida por el código de función. Esto puede incluirdirecciones internas, la cantidad de artículos que serán transferidos, etc.El campo de datos de una respuesta de un esclavo a un maestro contiene los datossolicitados si no ocurre ningún error. Si ocurre un error, el campo contiene un códigode excepción que el maestro usa para determinar que acción siguiente se tomará. Elcampo de datos puede ser no existente en ciertos tipos de mensajes.Manual de los módulos ECOM5-3

Capítulo 5: MODBUS TCP para H0/H2-ECOM100Nota: ModScan32 es un programa de aplicación de Windows que se puede usar comomaestro de MODBUS para tener acceso y cambiar los puntos de datos en un dispositivoconectado (H0/H2 -ECOM100). La utilidad sirve idealmente para una prueba rápida yfácil de los dispositivos esclavos de la red de MODBUS TCP. Visite www.win -tech.compara descargar una versión parcial de programa de prueba gratis ModScan32 y para másinformación sobre ModScan32.Códigos de función MODBUSLos siguientes códigos de función de MODBUS son apoyados por el H0/H2 -ECOM100.No todos los códigos de función se apoyan cuando el ECOM100 sirve como cliente dela red. La "sección de operación del cliente de red" en este capítulo enumera másadelante los códigos de función que se apoyan en modo del cliente. MODBUSCódigo 01Lee tablas de salidasSíSí02Lee tablas de entradasSíSí03Lee Holding registers (cuando el modo dedireccionamiento es 584/984, esta función esusada para accesar registros de salidasanálogas)SíSí04Lee Input registers (cuando el modo dedireccionamiento es 584/984, esta función esusada para accesar registros de entradasanálogas)SíNo05Fuerza una salida únicaSíNo06Define registros únicosSíSí08Mantención/Loop backSíNo15Fuerza varias salidasSíSí16Define múltiplos registrosSíSíManual de los módulos ECOM

Capítulo 5: MODBUS TCP para H0/H2-ECOM100Operación de servidor (esclavo) de la redEsta sección describe cómo otros clientes de MODBUS TCP/IP en una red puedencomunicarse con un H0/H2 -ECOM100 que usted ha configurado con el protocoloMODBUS TCP. Un cliente de red debe enviar un código de función MODBUS y ladirección de MODBUS para especificar una posición de memoria de los PLCs o CPUsDL05/06/205. No se requiere ninguna lógica ladder para apoyar la operación del servidorMODBUS TCP.Códigos de función MODBUS apoyadosEl H0/H2 -ECOM100 apoya los códigos siguientes de función de MODBUS cuando actúacomo servidor de MODBUS TCP.Código de función FunciónMODBUSTipos de datos disponiblesen los PLCs DL05/06/20501Lee tablas de salidasY, C, T, CT02Lee tablas de entradasX, SP03Lee Holding registers (cuando elmodo de direccionamiento es584/984, esta función es usadapara accesar registros de salidasanálogas)V04Lee Input registers (cuando elmodo de direccionamiento es584/984, esta función es usadapara accesar registros deentradas análogas)V05Fuerza una salida única06Define registros únicos08Mantención/Loop back15Fuerza varias salidas16Define múltiplos registrosY, C, T, CTVY, C, T, CTVDeterminación de la dirección MODBUSHay típicamente dos maneras que la mayoría de las convenciones de direccionamientode MODBUS que le permiten que la dirección de MODBUS especifique una direcciónde memoria del PLC. Éstos son:* Especificando el tipo y la dirección de datos de MODBUS* Especificando solamente la dirección de datos de MODBUSManual de los módulos ECOM5-5

Capítulo 5: MODBUS TCP para H0/H2-ECOM100Si su software o cliente anfitrión requiere tipo de datos y direcciónMuchos clientes de MODBUS TCP permiten que usted especifique el tipo de datos deMODBUS y la dirección de MODBUS que corresponde a la dirección de memoria delPLC. Éste es el método más fácil, pero no todos los paquetes permiten que usted lo hagade esta manera.La ecuación real usada para calcular la dirección depende del tipo de datos del PLC queusted está usando. Los tipos de la memoria del PLC están divididos en dos categorías paraeste propósito.- Discreto - X, SP, Y, C, S, T(contactos), CT (contactos)- Palabra - Memoria V, valor corriente de temporizador, valor corriente de contadorEn cualquier caso, usted convierte básicamente la dirección octal del PLC a decimal yagrega la dirección inicial apropiada de MODBUS (según lo requerido). Las tablassiguientes muestran el rango exacto usado para cada grupo de datos.Nota: Para una utilidad automatizada de conversión de dirección de MODBUS/Koyo,descargue el archivo modbus conversion.xls desde el sitio de Internetwww.automationdirect.com, y vaya a la página de apoyo técnico.Tipo de memoria del DL05Cantidad(decimal)Rango delPLC (octal)Rango de direcciónMODBUSTipo dedatosMODBUSPara tipos de datos discretos. Convierta direcciones de PLC a decimal inicio del rango tipos de datosEntradas (X)256X0 - X3772048 - 2303EntradaRelevadores especiales (SP)512SP0 - SP7773072 - 3583EntradaSalidas (Y)256Y0 - Y3772048 - 2303BobinaRelevadores de control (C)512C0 - C7773072 - 3583BobinaContactos de temporizador (T)128T0 - T1776144 - 6271BobinaContactos de Contador (CT)128CT0 - CT177 6400 - 6527BobinaBits de estado de Etapa(s)256S0 - S377Bobina5120 - 5375Para tipos de datos de palabra.Convierta la dirección del PLC a decimal tipo de datos5-6Valores corrientes de tempori128zador (V)V0 - V177Valores corrientes de contador (V) 128V1000- V1177 512- 639Registro deentradaDatos en memoria VV1400- V7377 768 - 3839HoldingRegister3072Manual de los módulos ECOM0 - 127Registro deentrada

Capítulo 5: MODBUS TCP para H0/H2-ECOM100Tipo de memoria del DL06Cantidad Rango del PLC Rango de dirección Tipo de datos(Decimal)(octal)MODBUSMODBUSPara tipos de datos discretos.Convierta direcciones de PLC a decimal inicio del rango tipos de datosEntradas (X)512X0 - X7772048 - 2560EntradaRelevadores especiales (SP)512SP0 - SP7773072 - 3583EntradaSalidas (Y)512Y0 - Y17772048 - 2560BobinaRelevadores de control (C)1024C0 - C7773072 - 4095BobinaContactos de temporizador (T)256T0 - T3776144 - 6399BobinaContactos de Contador (CT)128CT0 - CT1776400 - 6527BobinaBits de estado de Etapa(s)256S0 - S3775120 - 5375BobinaEntradas globales (GX)2048GX0-GX73770 - 2047EntradaSalidas globales (GX)2048GY0-GY73770 - 2047BobinaPara tipos de datos de palabra.Convierta la dirección del PLC a decimal tipo de datosValorescorrientesdeRegistro de256V0 - V3770 - 255temporizador (V)entradaValores corrientes de contador128(V)Datos en memoria V25630724096Tipo de memoria del DL240Cantidad(Decimal)V1000- V1177512- 639V400- V677V1400- V7377 768 - 3839V10000-V17777Rango delPLC (octal)Registro deentradaHoldingRegisterRango de dirección Tipo de datosMODBUSMODBUSPara tipos de datos discretos.Convierta direcciones de PLC a decimal inicio del rango tipos de datosEntradas (X)320X0 - X4772048 - 2367EntradaRelevadores especiales (SP)144SP0 - SP1373072 - 3583EntradaSalidas (Y)256Y0 - Y3772048 - 2303BobinaRelevadores de control (C)512C0 - C7773072 - 3583BobinaContactos de temporizador (T)128T0 - T1776144 - 6271BobinaContactos de Contador (CT)Bits de estado de Etapa(s)128256CT0 - CT177S0 - S3776400 - 65275120 - 5375BobinaBobinaPara tipos de datos de palabra.Convierta la dirección del PLC a decimal tipo de datosValores corrientes de128temporizador (V)Valores corrientes de contador128(V)V0 - V1770 - 127V1000- V1177512- 639768 - 3839Registro deentradaRegistro deentradaHoldingRegisterDatos en memoria V3072V1400- V7377Datos en memoria V, no volátil256V4000 - V4377 2048 - 2303HoldingRegisterDatos de memoria V, sistema105V7620 - V7737 3984 - 4063V7746 - V7777 4070 - 4095HoldingRegisterManual de los módulos ECOM5-7

Capítulo 5: MODBUS TCP para H0/H2-ECOM100Tipo de memoria delDL250-1Cantidad(Decimal)Rango delPLC7(octal)Rango de dirección MODBUSTipo de datosMODBUSPara tipos de datos discretos.Convierta direcciones de PLC a decimal inicio del rango tipos de datosEntradas (X)512X0 - X7772048 - 2560EntradaRelevadores especiales (SP)512SP0 - SP137SP320 - SP7773072 - 31673280b- 3583EntradaSalidas (Y)Relevadores de control (C)Contactos de temporizador (T)Contactos de Contador (CT)5121024256128Y0 - Y777C0 - C1777T0 - T377CT0 - obinaBobinaBits de estado de Etapa(s)1024S0 - S17775120 - 6143Bobina-Para tipos de datos de palabra.Convierta la dirección del PLC a decimal tipo de datosValores corrientes detemporizador (V)256Valores corrientes de contador (V) 128V0 - V3770 - 255Registro de entradaV1000- V1177512- 639Registro de entradaDatos en memoria V30724096V1400- V7377V10000-V17777768 - 38394096 - 8191Holding RegisterDatos en memoria V, sistema256V7400- V77773480 - 3735Holding RegisterTipo de memoria del DL260Cantidad Rango del PLC(Decimal)(octal)Rango de dirección MODBUSTipo de datosMODBUSPara tipos de datos discretos.Convierta direcciones de PLC a decimal inicio del rango tipos de datosEntradas (X)1024X0 - X17772048 - 3071Relevadores especiales (SP)5121024SP0 - SP137SP320 - SP717Y0 - Y17773072 - 31673280 - 35352048 - 3071Salidas (Y)Relevadores de control (C)2048EntradaEntradaBobinaC0 - C37773072 - 5119BobinaContactos de temporizador (T) 256Contactos de Contador (CT)256T0 - T377CT0 - CT3776144 - 63996400 - 6655BobinaBobinaBits de estado de Etapa(s)1024S0 - S17775120 - 6143BobinaEntradas globales (GX)2048GX0-GX73770 - 2047EntradaSalidas globales (GX)2048GY0-GY37770 - 2047BobinaPara tipos de datos de palabra.Convierta la dirección del PLC a decimal tipo de datosValores corrientes detemporizador (V)256Valores corrientes de contador (V) 1285-8V0 - V377V1000- V13770 - 255512 - 767Registro deentradaRegistro deentradaDatos en memoria V256307211264256 - 511V400- V677V1400- V7377768 - 3839V10000-V35777 4096 - 15359Holding RegisterMemorias V del sistema2563968 - 4095V7600-V7777V36000-V37777 15360 - 16383Holding RegisterManual de los módulos ECOM

Capítulo 5: MODBUS TCP para H0/H2-ECOM100Los ejemplos siguientes muestran cómo generar el tipo de datos y dirección de MODBUSpara anfitriones que necesitan de este formato.Ejemplo 1: Encuentre la dirección MODBUS para la dirección V2100 del usuario V.1. Encuentre la memoria V en la tabla.Dirección de PLC( Dec) tipo de datos2. Convierta V2100 en decimal (1089).V2100 1088 decimal3. Use el tipo de datos de MODBUS de la 1088 Holding register Hold. register 1089tabla.Valores corrientes detemporizador (V)128V0 - V177Valores corrientes decontador (V)128V1000 - V1177 512 - 639Memoria V, datos deusuario1024 V2000- V3777 1024 - 2047 Holding register0 - 127Registro de entradaRegistro de entradaEjemplo 2: Encuentre la dirección de MODBUS para la salida Y20.1. Encuentre las salidas Y en la tabla. Dirección PLC( Dec) dirección inicial tipo de datosY20 16 decimal2. Convierta Y20 a decimal (16).3. Sume la dirección inicial para el 16 2049 bobina Bobina 2065rango (2049).4. Use el tipo de datos MODBUS de la tabla.Salidas (Y)320Y0 - Y4772049 - 2367BobinaRelevadores de control (C) 256C0 - C3773073 - 3551BobinaEjemplo 3: Encuentre la dirección MODBUS Dirección de PLC( Dec) tipo de datospara obtener el valor corriente del TA10 8 decimaltemporizador T10.8 registro de entrada Registro de1. Encuentre valores corrientes de temporizadorentrada 8en la tabla.2. Convierta T10 al decimal (8).3. Utilizar el tipo de datos MODBUS de la tabla.Valor corriente de timer (V)128V0 - V1770 - 1277Input registerValor corriente de contador (V) 128C0 - C3773072 - 3551Input registerEjemplo 4: Encuentre la dirección de MODBUS para el relevador de control C54.1. Encuentre relevadores de control Dirección PLC( Dec) dirección inicial tipo de datosen la tabla.Y20 16 decimal2. Convierta C54 a decimal (44)16 3072 bobina Bobina 31173. Sume la dirección inicial para elrango (3072).4. Use el tipo de datos MODBUS de la tabla.Salidas (Y)320Y0 - Y4772049 - 2367BobinaRelevadores de control (C) 256C0 - C3773072 - 3551BobinaManual de los módulos ECOM5-9

Capítulo 5: MODBUS TCP para H0/H2-ECOM100Si el software de anfitrión o el cliente requiere una dirección solamente.Algunos clientes MODBUS TCP no permiten que usted especifique el tipo de datos deMODBUS. En vez de eso, usted especifica solo una dirección . Este método requiere otropaso para determinar la dirección, pero no es difícil. Básicamente, MODBUS tambiénsepara los tipos de datos por rangos de dirección. Esto significa que una direcciónrealmente puede describir el tipo de datos y la dirección. Esto se refiere a menudo como"sumando el offset".La ecuación real usada para calcular la dirección depende del tipo de datos del PLC queusted está usando. Los tipos de la memoria del PLC están divididos en dos categorías paraeste propósito.* Discreto - X, GX, SP, Y, CR, S, T, C (contactos)* Palabra - Memoria V, valor corriente del temporizador y del contadorEn cualquier caso, usted convierte básicamente la dirección octal del PLC al decimal ysuma la dirección inicial apropiada MODBUS (según lo requerido). Las tablas siguientesmuestran el rango exacto usado para cada grupo de datos.Nota: Para una utilidad automatizada de conversión de dirección de MODBUS/Koyo,descargue el archivo modbus conversion.xls desde el sitio de Internetwww.automationdirect.com y vaya a la página de apoyo técnico.Tipos de datos discretosTipo de memoria del PLCCantidadRango del PLC(Decimal)Rango de la direcciónAccesoMODBUSEntradas globales (GX)2048GX0 - GX1746 10001 - 10999GX1747- X3777 11000 - 12048Entradas (X)1024X0 - X177712049 - 13072Relevadores especiales (SP)512SP0 - SP77713073 - 13584Reservados--13585 - 20000Salidas globales (GY)2048GY0 - GY3777Relevadores de control (CR)2048C0 - C37772049 - 3072Contactos de temporizadores (T)256CT0 - CT3776145 - 6400Contactos de contadores (CT)256CT0 - CT3776401 - 6656Bits de estado de etapas (S)1024S0 - S17775121 - 6144Reservados--Sololectura1 - 2048Lectura yescritura6657 - 10000* Vea el manual de usuario del PLC para el tamaño correcto de la memoria de suPLC.Puede ser que algunas de las direcciones mostradas arriba no pertenezcan a suCPU particular.5-10Manual de los módulos ECOM

Capítulo 5: MODBUS TCP para H0/H2-ECOM100Tipos de datos de palabrasRegistrosCantidad Rango del PLC Rango de dirección Rango de direcciónAccesoMODBUS 40001MODBUS 30001(Decimal)(Octal)Memoria V(Timers)256V0 - V37740001 - 4025630001 - 30256Memoria V(Contadores)256V1000-V137740513 - 4076840513 - 40768256V400 - V77740257 - 4051240257 - 405123072V1400-V737740769 - 4384040769 - 438405903V1000-V23416 44097 - 4999944097 - 499995361V23417-V35777410000- 415360410000- 4153601281024V7600 - V7777 43969-44096V36000-V37777 8V40000-V40177 416385-416512416385-416512Lectura yescritura128V40200-V40377 416513-416640416513-416640Lectura yescritura64V40400-V40477 416641-416704416641-416704Memoria V(Puntos de salidas)64V40500-V40577 416705-416768416705-416768Memoria V(Relevad. de control)16V40600-V40777 416769-416896416769-416896Memoria V(Bits de estado detemporizadores)16V41100-V41117 416961-416976416961-416976Memoria V(Bits de estados decontadores)32V41200-V41237 416993-417008416993-417008Memoria V(Relevadoresespeciales)32V41200-V41237 417025-417056417025-417056Memoria V(Palabras de datos)Memoria V(Sistema)Memoria V(Entradas remotas)Memoria V(Salidas remotas)Memoria V(Puntos de entradas)Lectura yescrituraLectura yescrituraSololectura* Vea el manual de usuario del PLC para el tamaño correcto de la memoria de suPLC.Puede ser que algunas de las direcciones mostradas arriba no pertenezcan a suCPU particular.Manual de los módulos ECOM5-11

Capítulo 5: MODBUS TCP para H0/H2-ECOM100Ejemplo 1: Encuentre la dirección MODBUS para la dirección V21001. Encuentre la memoria V en la tabla.Dirección de PLC( Dec) tipo de datosV2100 1088 decimal2. Convierta V2100 en decimal (1088).3. Use la dirección inicial de MODBUS para el 1088 40001 1089modo (40001).Para tipos de datos .Dirección de PLC (Decimal)Valores corrientes de timer (V)128Valores corrientes de contador (V) 128Memoria V, datos de usuarioV0 - V1770 - 127V1000-V1177 512 - 6393001 30001 Registro de entrada3001 30001 Registro de entrada1024 V2000-V3777 1024-2047 4001 40001 Holding registerEjemplo 2: Encuentre la dirección de MODBUS para la salida Y20.1. Encuentre las salidas Y en la tabla. Dirección de PLC( Dec) dirección inicial modoY20 16 decimal2. Convierta Y20 a decimal (16).3. Sume la dirección inicial del 6 2048 1 2065rango (2048).4. Use la dirección inicial deMODBUS para el modo (1).Salidas (Y)320Y0 - Y4772048 - 236711BobinaRelevadores de control (C)Contactos de temprozador (T)256128C0 - C377 3072 - 3551T0- T1776144 - 62711111BobinaBobinaEjemplo 3: Encuentre la dirección MODBUS del relevador de control C54.1. Encuentre los valores de rele- Dirección de PLC( Dec) dirección inicial modovadores de control en la tabla.C54 44 decimal2. Convierta C54 al decimal (44).44 3072 1 31173. Sume la dirección inicial delrango (3072).4. Use la dirección inicial de MODBUS para el modo (1).Salidas (Y)Relevadores de control (C)Contactos de temprozador (T)5-12320256128Y0 - Y477 2048 - 2367C0 - C377 3072 - 3551T0- T177 6144 - 6271Manual de los módulos ECOM111111BobinaBobinaBobina

Capítulo 5: MODBUS TCP para H0/H2-ECOM100Operación del cliente (maestro)de la redEsta sección describe cómo la CPU DL05/06/205 puede servir como cliente en una redde MODBUS TCP usando el H0/H2 -ECOM100. Esta sección discute cómo diseñar lalógica ladder requerida para la operación del cliente de la red.Al usar el ECOM100 como cliente en la red,usted usa simples instrucciones RLL parainiciar las requisiciones. La instrucción WXinicia operaciones de escritura a la red y lainstrucción RX inicia operaciones de lecturadesde la red. Antes de ejecutar los comandosWX o RX, necesitamos cargar los datosrelacionados con la operación de lectura oescritura en el stack del acumulador de laCPU. Cuando se ejecuta la instrucción WX oRX, ella usa la información en el stackcombinada con los datos en la instrucciónde bloque, para definir totalmente la tarea.Códigos de función MODBUS permitidosEl H0/H2 -ECOM100 apoya los códigos de función MODBUS siguientes cuando actúacomo cliente de MODBUS TCP.Código de funciónMODBUS010203FunciónTipos de datos disponiblesDL05/06/205Lee una tabla de salidaY ,C, T, CTLee una tabla de entradasX, SPLee Holding registers (cuando el modo dedireccionamiento es 584/984, esta función seVusa para tener acceso a registros de salidasanálogas)0615Configura registros únicosFuerza salidas múltiplasVY, C, T, CT16Configura registros múltiplosVNota: El H0/H2 -ECOM100, como cliente/maestro, no apoya la función código 4. Deeste modo, no se pueden leer las direcciónes 30001 desde un dispositivoservidor/esclavo.Manual de los módulos ECOM5-13

Capítulo 5: MODBUS TCP para H0/H2-ECOM100Dirección de memoria del PLC permitida en la operación del clienteLa ecuación real usada para calcular la dirección depende del tipo de datos del PLC queusted está usando. Los tipos de memoria del PLC son clasificados en tres categorías paraeste propósito.* Discreto - X, GX, SP* Discreto - Y, CR, S, T, C* Palabra - Valor actual de temporizadores, valor actual de contador, palabras de datosEn cualquier caso, usted básicamente toma la dirección de MODBUS a que usted estáintentando apuntar, resta la dirección MODBUS que comienza de ese rango, convierte elresultado a octal y agrega el número octal a la dirección inicial del PLC en el rangoapropiado del PLC. Vea los ejemplos de conversión en la página siguiente. Las tablassiguientes muestran el rango exacto usado para cada grupo de datos.Nota: Para un programa de conversión de dirección de MODBUS para Koyo y viceversa, bajeel archivo modbus conversion.xls desde el sitio de Internet www.automationdirect.com.Tipos de datos discretos *Tipo de memoria del PLCEntradas globales (GX)Cantidad Rango del PLC(Decimal) (octal)GX0 - GX17462048GX1747- X3777Entradas (X)Relevadores especiales (SP)Reservados1024512-X0 - X1777SP0 - SP777-Salidas globales (GY)2048GY0 - GY3777Salidas (Y)1024Y0 - Y1777Relevadores de control (CR)Contactos de temporizadores (T)Contactos de contadores (T)Bits de estado de etapas (S)20482562561024C0 - C3777CT0 - CT377CT0 - CT377S0 - S1777ReservadosRegistrosMemoria V(Timers)--Rango de la direcciónAccesoMODBUS10001 - 1099911000 - 1204812049 - 1307213073 - 1358413585 - 200001 - 20482049 - 30723073 - 51206145 - 64006145 - 64005121 - 6144256Lectura yescritura6657 - 10000Tipos de datos de palabrasCantidadRango del PLC Rango de direcciónMODBUS(Decimal)(Octal)256V0 - V37740001 - 40256Memoria V (Contadores)SololecturaV1000-V137740513 - 40768Memoria V (Palabras de datos)256307259035361V400 - V777V1400-V7377V1000-V23416V23417-V3577740257 - 4051240769 - 4384044097 - 49999410000- 415360Memoria V (Sistema)1281024V7600 - V7777 43969- 44096V36000-V37777 415361- 416384AccesoLectura yescritura* Vea el manual de usuario del PLC para el tamaño de memoria correcta de suPLC.Algunas de las direcciones mostradas arriba pueden no pertenecer a su CPUparticular.5-14Manual de los módulos ECOM

Capítulo 5: MODBUS TCP para H0/H2-ECOM100Nota: se puede usar la calculadora de Windows de su PC para conversiones de números(es decir decimal a octal). La calculadora de Windows debe estar en el modoCalculator View Scientific para permitir hacer las conversiones de números.Ejemplo 1: Calculando la dirección de una memoria V de PLCEncuentre la dirección del PLC para ladirección correspondiente MODBUS41025 en un dispositivo servidor.1. Reste la dirección inicial del rangoMODBUS (40001) de la direcciónMODBUS que desea convertir.1. 41025 - 40001 1024 decimal2. Convierta el resultado decimal en octal2. 1024 decimal 2000 octal3. Sume el resultado octal al inicio del 3. V0 (octal) 2000 (octal) V2000 octalrango del PLC (entrada, salida o palabra).Ejemplo 2: Calculando la dirección de una entrada discreta de PLCEncuentre la dirección del PLC correspondiente a la dirección 12060 en undispositivo servidor.1. Reste la dirección inicial del rango de laentrada de MODBUS (12049) desde ladirección deseada.2. Convierta el resultado decimal en octal3. Agregue el resultado octal al inicio delrango del PLC (entrada, salida o palabra).1. 12060 - 12049 11 decimal2. 11 decimal 13 octal3 X0 (octal) 13 (octal) X13 octalManual de los módulos ECOM5-15

Capítulo 5: MODBUS TCP para H0/H2-ECOM100Construyendo el programa de lectura (RX) o escritura (WX )Para las comunicaciones de red, ustedprograma las instrucciones de lectura(RX) oescritura (WX) en una rutina que usa las cuatroinstrucciones que usted ve a la derecha. Debenser usadas en la secuencia mostrada. Elprocedimiento paso a paso siguiente leentregará la información necesaria para hacerel programa ladder para recibir datos desde unservidor de la red.Paso 1: Identifique la ranura de ECOM y el no. de nodo del servidorLa primera instrucción (LD) acepta una constante o una variable. Use una "K" paraidentificar el número como constante. Use una "V" si usted está entrando la dirección deun registro. El contenido de ese registro realiza la misma función que la constantemostrada abajo. Por ejemplo, usted podría usar V2000 en lugar de K114. Si el contenidode V2000 es el número "114," la función sería igual. Usando una variable le permitecambiar parámetros mientras el programa está funcionando.Nodo del servidor #Número de ranura de ECOMPLC pidiendo acciónEl dispositivo que respondeBase de expansión 1,2 o 3 Vea la página 2-7 y 2-8 en la redsobre números de ranura.Vea la página 2-7 y 2-9 sobreVea la página -3 10 o 6-4como usar ECOMs ensobre asignar un número deextensión local o en basesnodo a una DIRECCION IPremotas de E/S.de un servidorNúmero de baseBase de la CPU 05-16Manual de los módulos ECOM

Capítulo 5: MODBUS TCP para H0/H2-ECOM100Paso 2: Cargue la cantidad de bytes a ser transferidosLa segunda instrucción LD )determina lacantidad de bytes que se transfieren entre elmaestro y el esclavo en la instrucciónsubsecuente WX o RX. El valor que se cargaráestá en el formato BCD, a partir 1 a 128 bytes.Paso 3: Especifique el área de memoriadel maestroLa tercera instrucción en la secuencia RX oWX es una instrucción (LDA). Su propósito escargar la dirección inicial del área dememoria que se transferirá. Entrado comonúmero octal, la instrucción LDA lo conviertea hexadecimal y pone el resultado en elacumulador.Para una instrucción WX, la CPU DL250-1 ola D2-260 envía la cantidad de bytesespecificados previamente de su área dememoria que comienza en la direcciónespecificada por LDA.Para una instrucción RX, la CPU DL250-1 o laD2-260 lee el número de bytes especificadospreviamente desde el servidor, poniendo losdatos recibidos en su área de memoria quecomienza en la dirección especificada porLDA.NOTA: Puesto que las palabras de la memoria V son siempre 16 bits, usted puede ser queno use siempre la palabra entera. Por ejemplo, si usted especifica solamente leer 3 bytes,usted conseguirá solamente 24 bits de datos. En est

Modelo Cliente/servidor El servicio de mensajes de MODBUS proporciona un modelo cliente/Servidor de comunicación entre dispositivos conectados en una red de Ethernet TCP. Este modelo de cliente/ servidor se basa en cuatro tipos de mensajes: - Petición de MODBUS - el mensaje enviado en la red por el cliente para iniciar una transacción