Tema 7. Protocolo Modbus

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Tema 7. Protocolo Modbus"

Transcripción

1 3 Prtcl 1 Intrducción La designación Mdbus Mdicn crrespnde a una marca registrada pr Guld Inc. Cm en tants trs cass, la designación n crrespnde prpiamente al estándar de red, incluyend tds ls aspects desde el nivel físic hasta el de aplicación, sin a un prtcl de enlace (nivel OSI 2). Puede, pr tant, implementarse cn diverss tips de cnexión física y cada fabricante suele suministrar un sftware de aplicación prpi, que permite parametrizar sus prducts. N bstante, se suele hablar de MODBUS cm un estándar de bus de camp, cuyas características esenciales sn las que se detallan a cntinuación. 2 Estructura de la red Medi Físic El medi físic de cnexión puede ser un bus semidúplex (half duplex) (RS-485 fibra óptica) dúplex (full duplex) (RS-422, BC 0-20mA fibra óptica). La cmunicación es asíncrna y las velcidades de transmisión previstas van desde ls 75 baudis a baudis. La máxima distancia entre estacines depende del nivel físic, pudiend alcanzar hasta 1200 m sin repetidres. Acces al Medi La estructura lógica es del tip maestr-esclav, cn acces al medi cntrlad pr el maestr. El númer máxim de estacines previst es de 63 esclavs más una estación maestra. Ls intercambis de mensajes pueden ser de ds tips: Intercambis punt a punt, que cmprtan siempre ds mensajes: una demanda del maestr y una respuesta del esclav (puede ser simplemente un recncimient («acknwledge»). Mensajes difundids. Ests cnsisten en una cmunicación unidireccinal del maestr a tds ls esclavs. Este tip de mensajes n tiene respuesta pr parte de ls esclavs y se suelen emplear para mandar dats cmunes de cnfiguración, reset, etc. La cdificación de dats dentr de la trama puede hacerse en md ASCII puramente binari, según el estándar RTU (Remte Transmissin Unit). En cualquiera de ls ds cass, cada mensaje bedece a una trama que cntiene cuatr camps principales, según se muestra en la figura 1. La única diferencia estriba en que la trama ASCII incluye un carácter de encabezamient («:»=3A H ) y ls caracteres CR y LF al final del mensaje. Pueden existir también diferencias en la frma de calcular el, puest que el frmat RTU emplea una fórmula plinómica en vez de la simple suma en módul 16. Cn independencia de ests pequeñs detalles, a cntinuación se da una breve descripción de cada un de ls camps del mensaje: : (3AH) de Operación de Operación Subfuncines, Dats Cdificación ASCII Subfuncines, Dats Cdificación RTU LRC(16) (P16) CR (0DH) Figura 1. Trama genérica del mensaje según el códig emplead Númer de esclav (1 byte): LF (0AH) Permite direccinar un máxim de 63 esclavs cn direccines que van del 01 H hasta 3F H. El númer 00 H se reserva para ls mensajes difundids. de peración función (1 byte): Cada función permite transmitir dats u órdenes al esclav. Existen ds tips básics de órdenes: Ordenes de lectura/escritura de dats en ls registrs en la memria del esclav. Ordenes de cntrl del esclav y el prpi sistema de cmunicacines (RUN/STOP, carga y descarga de prgramas, verificación de cntadres de intercambi, etc.) La tabla 1 muestra la lista de funcines dispnibles en el prtcl MODBUS cn sus crrespndientes códigs de peración. Camp de subfuncines/dats (n bytes): Este camp suele cntener, en primer lugar, ls parámetrs necesaris para ejecutar la función indicada pr el byte anterir. Ests parámetrs pdrán ser códigs de subfuncines en el cas de órdenes de cntrl (función 00 H ) direccines del primer bit byte, númer de bits palabras a leer escribir, valr del bit palabra en cas de escritura, etc. Univ Plitécnica de Cartagena. Departament de Tecnlgía Electrónica. Pág. 1 Asignatura:. Prfesr: Manuel Jiménez Buendía. Univ Plitécnica de Cartagena. Departament de Tecnlgía Electrónica. Pág. 2 Asignatura:. Prfesr: Manuel Jiménez Buendía.

2 de cntrl de errres (2 bytes): En códig ASCII, esta palabra es simplemente la suma de cmprbación ( checksum ) del mensaje en módul 16 expresad en ASCII. En el cas de cdificación RTU el se calcula cn una fórmula plinómica según el algritm mstrad en la figura 2. Función Tarea 0 00 H Cntrl de estacines esclavas 1 01 ectura de n bits de salida interns 2 02 ectura de n bits de entradas 3 03 ectura de n palabras de salidas interns 4 04 ectura de n palabras de entradas 5 05 H Escritura de un bit 6 06 H Escritura de una palabra 7 07 ectura rápida de 8 bits 8 08 H Cntrl de cntadres de diagnóstics númer 1 a H N utilizad 10 0A H N utilizad 11 0B H Cntrl del cntadr de diagnóstics númer C H N utilizad 13 0D H N utilizad 14 0E H N utilizad 15 0F H Escritura de n bits H Escritura de n palabras Tabla 1. Funcines básicas y códigs de peración 3.1 Descripción de las funcines del prtcl Función 0: 0 INDEX FFFF H TRAMA (INDEX) XOR 0 N DECALAJE 1 POS A LA DERECHA CARRY = 1 XOR A001 H N+1=N N>7 INDEX+1=INDEX INDEX > MAX FIN Figura 2. Cálcul del cdificación RTU Esta función permite ejecutar órdenes de cntrl, tales cm marcha, par, carga y lectura de prgramas de usuari del autómata. Para cdificar cada una de las citadas órdenes se emplean ls cuatr primers bytes del camp de dats. La trama resultante es la representada en la figura 3 y la interpretación de ls códigs de subfunción se especifica en la tabla 2. En cas de las órdenes de marcha y par, el camp de «infrmación» de la trama representada en la figura 3 está vací y, pr tant, el mensaje se cmpne simplemente de 6 bytes de función más 2 bytes de. La respuesta del esclav a estas órdenes es un mensaje idéntic al enviad pr el maestr. Cabe señalar, además, que después de un par el autómata sól acepta ejecutar subfuncines de la función 00 H. 00H Dats D0 D1 Infrmación (16) Figura 3. Trama genérica de las subfuncines de cntrl de esclavs (cód. función 00H) Funcines 1 y 2: Dats subfunción subfunción Tarea D0 D1 00 H 00 H 00 H 00 H Par del esclav sin inicializar 00 H 01 H 00 H 00 H Marcha del esclav sin inicializar 00 H 02 H 00 H 00 H Marcha e inicialización del esclav 00 H 03 H 00 H XX ectura de la secuencia XX de prgrama de usuari en el esclav 00 H 04 H YY H XX H Carga de una secuencia de prgrama de usuari en el esclav Petición: YY = secuencia a cargar, XX= próxima secuencia Respuesta: XX= códig errr, YY= 00 Tabla 2. Subfuncines crrespndientes a la función =00H Lectura de bits del autómata. La trama es la indicada en la figura 4. La frma de direccinamient de ls bits es a base de dar la dirección de la palabra que ls cntiene y lueg la psición del bit. Obsérvese también que la respuesta es dada siempre en ctets cmplets. 01H de 02H PPP = de la palabra (hex), B= del bit dentr de la palabra 0 a F H. Respuesta del esclav Funcines 3 y 4: 01H 02H Octets leíds 1 er Octet B7..B0 Otrs Octets Hasta máx. 256 Figura 4. Petición y respuesta de la función: Lectura de bits (01H, 02H) Lectura de palabras del autómata. La trama es la indicada en la figura 5. Obsérvese que la petición indica el númer de palabras a leer, mientras que en la respuesta se indica el númer de ctets leíds. 03H 04H PPPP = de la palabra (hex) Respuesta del esclav 03H 04H Octets leíds de 1 er Otras Hasta máx. 128,,HL,... Figura 5. Petición y respuesta de la función: Lectura de palabras (03H,04H) Univ Plitécnica de Cartagena. Departament de Tecnlgía Electrónica. Pág. 3 Asignatura:. Prfesr: Manuel Jiménez Buendía. Univ Plitécnica de Cartagena. Departament de Tecnlgía Electrónica. Pág. 4 Asignatura:. Prfesr: Manuel Jiménez Buendía.

3 Función 5: Escritura de un bit. La trama es la indiada en la figura 6. El direccinamient del bit se efectúa tal cm se ha indicad para las funcines 1 y 2. 08H Dat D0 D1 Bit 05H XXH 00H PPP = de la palabra (hex), B= del bit dentr de la palabra 0 a F H. Respuesta del esclav 05H Bit XXH 00H XX H = 00H para bit = 0 y XX H = FF H para bit = 1 Función 6: Figura 6. Petición y respuesta de la función: Escritura de un bit (05H) Escritura de una palabra. La trama es la indicada en la figura 7. 06H Respuesta del esclav Función 7: 06H Valr DD DD de DD DD Figura 7. Petición y respuesta de la función: Escritura de una palabra (06H) Petición de lectura rápida de un ctet. La trama es la mstrada en la figura 8. Obsérvese que la petición n tiene camp de dirección, est es debid a que el ctet legible pr esta función es fij en cada esclav y viene fijad en su cnfiguración. 07H Respuesta del esclav Función 8: 07H Valr Octet DD Figura 8. Petición y respuesta de la función: Lectura rápida de un ctet (07H) Petición del cntenid y cntrl de ls 8 primers cntadres de diagnóstic de un esclav (véase tabla 3). Las tramas de petición y respuesta pueden verse en la figura 9. Respuesta del esclav 08H Valr Cntadr Figura 9. Petición y respuesta de la función: Cntrl de cntadres (08H) Dats D0 D1 Tarea 0 00 H 00 H XY H ZT H El esclav envía el ec XYZT de petición cm test H 03 H ZZ H 00 H Mdifica el carácter de fin de trama en md ASCII pr ZZ H H 0A H 00 H 00 H Puesta a cer de ls cntadres H 0B H 00 H 00 ectura del cntadr H 0C H 00 H 00 ectura del cntadr H 0D H 00 H 00 ectura del cntadr H 0E H 00 H 00 ectura del cntadr H 0F H 00 H 00 ectura del cntadr H 12 H 00 H 00 ectura del cntadr 1 Tabla 3 Función 11: La petición del cntenid del cntadr de diagnóstic númer 9, n se realiza pr la función 8, sin pr la función 11. Las tramas de petición y respuestas sn las indicadas pr la figura 10. 0BH Respuesta del esclav Función 15: 0BH Valr Cntadr Figura 10. Petición y respuesta de la función: Cntenid cntadr 9 (0BH) Escritura de bits del autómata. La trama es la indicada en la figura 11. La frma de direccinamient es análga a la indicada para las funcines 1 y 2. Univ Plitécnica de Cartagena. Departament de Tecnlgía Electrónica. Pág. 5 Asignatura:. Prfesr: Manuel Jiménez Buendía. Univ Plitécnica de Cartagena. Departament de Tecnlgía Electrónica. Pág. 6 Asignatura:. Prfesr: Manuel Jiménez Buendía.

4 Petición maestr 0FH Respuesta del esclav 0FH de de de Octets M Valr de ls bits 8xM valres 3.2 Nivel de aplicación Cm se ha dich a nivel general de buses de camp, el nivel de aplicación de MODBUS n está cubiert pr un sftware estándar, sin que cada fabricante suele suministrar prgramas para cntrlar su prpia red. N bstante, el nivel de cncreción en la definición de las funcines permite al usuari la cnfección de sftware prpi para gestinar cualquier red, inclus cn prducts de distints fabricantes. Función 16: Figura Petición y respuesta: Escritura de bits (0FH ) Escritura de palabras del autómata. La trama es la indicada en la figura 12. Petición maestr 10FH Respuesta del esclav 10H Mensajes de errr: de de de Octets M Valr de las palabras HL, HL,... Figura 12. Petición y respuesta: Escritura de palabras (10H ) Puede currir que un mensaje se interrumpa antes de terminar. Cada esclav interpreta que el menaje ha terminad si transcurre un tiemp de silenci equivalente a 3,5 caracteres. Después de este tiemp el esclav cnsidera que el carácter siguiente es el camp de dirección de esclav de un nuev mensaje. Cuand un esclav recibe una trama incmpleta errónea desde el punt de vista lógic, envía un mensaje de errr cm respuesta, except en el cas de mensajes de difusión. La trama del mensaje de errr es la indicada en al figura 13. Respuesta del esclav Función Errr Figura 13. Trama de mensaje de errr Función = función recibid + 80 H Errr = 01 de Función erróne: 02 incrrecta 03 Dats incrrects 06 Autómata cupad Si la estación maestra n recibe respuesta de un esclav durante un tiemp superir a un límite establecid, declara el esclav fuera de servici, a pesar de que al cab de un ciert númer de cicls hace nuevs intents de cnexión. 4 Variantes de MODBUS 4.1 JBUS JBUS es una designación utilizada pr la firma APRIL para un bus prpi que presenta gran similitud cn MODBUS, cn prtcls prácticamente idéntics. La designación JBUS, de la misma frma que MODBUS, crrespnde a un prtcl de enlace más que a una red prpiamente dicha. Puede, pr tant, implementarse cn cualquiera de las cnexines físicas nrmalizadas. 4.2 Cmparación entre JBUS y MODBUS La arquitectura de la red, el frmat general de la trama y muchs de ls códigs de función de ambs buses cinciden exactamente. Existen, sin embarg, alguns códigs de función cambiads, trs que presentan ligeras diferencias funcines añadidas. Cm diferencias más relevantes citarems las siguientes: Psee un registr de estad en cada estación que permite un diagnóstic de la estación. El númer de esclav para JBUS (1er byte de la trama) permite valres que van del 01H hasta el FFH. Permite, pr tant, direccinar 255 esclavs en vez de 63. El númer 00H se reserva igualmente para mensajes difundids. Las funcines dispnibles sn prácticamente las mismas en ambs prtcls, per alguns códigs de función (2º byte de la trama) y de las subfuncines n cinciden. Función Tarea 1 01 ectura de n bits de salida interns 2 02 ectura de n bits de entradas 3 03 ectura de n palabras de salidas interns 4 04 ectura de n palabras de entradas 5 05 H Escritura de un bit 6 06 H Escritura de una palabra 7 07 ectura rápida de 8 bits 15 0F H Escritura de n bits H Escritura de n palabras Tabla 4. Funcines idénticas Mdbus Jbus Univ Plitécnica de Cartagena. Departament de Tecnlgía Electrónica. Pág. 7 Asignatura:. Prfesr: Manuel Jiménez Buendía. Univ Plitécnica de Cartagena. Departament de Tecnlgía Electrónica. Pág. 8 Asignatura:. Prfesr: Manuel Jiménez Buendía.

5 4.3 MODBUS TCP/IP MODBUS TCP/IP es una variante extensión del prtcl Mdbus que permite utilizarl sbre la capa de transprte TCP/IP. De este md, Mdbus-TCP se puede utilizar en Internet, de hech, este fue un de ls bjetivs que mtivó su desarrll (la especificación del prtcl se ha remitid a la IETF=Internet Engineering Task Frce). En la práctica, un dispsitiv instalad en Eurpa pdría ser direccinad desde EEUU cualquier tra parte del mund. Las ventajas para ls instaladres empresas de autmatización sn innumerables: Realizar reparacines mantenimient remt desde la ficina utilizand un PC, reduciend así ls cstes y mejrand el servici al cliente. El ingenier de mantenimient puede entrar al sistema de cntrl de la planta desde su casa, evitand desplazamients. Permite realizar la gestión de sistemas distribuids gegráficamente mediante el emple de las tecnlgías de Internet/Intranet actualmente dispnibles. MODBUS TCP/IP se ha cnvertid en un estándar industrial de fact debid a su simplicidad, baj cste, necesidades mínimas en cuant a cmpnentes de hardware, y sbre td a que se trata de un prtcl abiert. En la actualidad hay cients de dispsitivs MODBUS TCP/IP dispnibles en el mercad. Se emplea para intercambiar infrmación entre dispsitivs, así cm mnitrizarls y gestinarls. También se emplea para la gestión de entradas/salidas distribuidas, siend el prtcl más ppular entre ls fabricantes de este tip de cmpnentes. La cmbinación de una red física versátil y escalable cm Ethernet cn el estándar universal de interredes TCP/IP y una representación de dats independiente de fabricante, cm MODBUS, prprcina una red abierta y accesible para el intercambi de dats de prces. El prtcl Mdbus TCP Mdbus/TCP simplemente encapsula una trama Mdbus en un segment TCP. TCP prprcina un servici rientad a cnexión fiable, l que significa que tda cnsulta espera una respuesta. Ethernet cnmutadas frecen a ls usuaris en la industria. El emple del prtcl abiert Mdbus cn TCP prprcina una slución para la gestión desde uns pcs a decenas de miles de nds. Prestacines de un sistemas MODBUS TCP/IP Las prestacines dependen básicamente de la red y el hardware. Si se usa MODBUS TCP/IP sbre Internet, las prestacines serán las crrespndientes a tiemps de respuesta en Internet, que n siempre serán las deseables para un sistema de cntrl. Sin embarg pueden ser suficientes para la cmunicación destinada a depuración y mantenimient, evitand así desplazamients al lugar de la instalación. Si dispnems de una Intranet de altas prestacines cn cnmutadres Ethernet de alta velcidad, la situación es ttalmente diferente. En tería, MODBUS TCP/IP, transprta dats hasta 250/( ) alrededr de un 60% de eficiencia cuand se trasfieren registrs en blque, y puest que 10 Base T prprcina uns 1.25 Mbps de dats, la velcidad de transferencia de infrmación útil será: 1.25M / 2 * 60% = registrs pr Segund En 100BaseT la velcidad es 10 veces mayr. Est supniend que se están empleand dispsitivs que pueden dar servici en la red Ehernet aprvechand td el anch de banda dispnible. En ls ensays práctics realizads pr by Schneider Autmatin utilizand un PLC Ethernet Mmentum TM cn entradas/salidas Ethernet, demstró que se pdían escanear hasta 4000 blques I/O pr segund, cada un cn hasta 16 I/O analógicas de 12-bits 32 I/O digitales (se pueden actualizar 4 bases pr milisegund). Aunque ests resultads están pr debaj del límite teóric calculad anterirmente, per debems recrdar que el dispsitiv se prbó cn una CPU de baja velcidad (80186 a 50MHz cn 3 MIPS). Además, el abaratamient de ls rdenadres persnales y el desarrll de redes Ethernet cada vez más rápidas, permite elevar las velcidades de funcinamient, a diferencia de trs buses que están inherentemente limitads una sla velcidad. Cóm pdems cmunicar dispsitivs MODBUS existentes sbre MODBUS TCP/IP? Puest que MODBUS TCP/IP es simplemente un prtcl MODBUS encapsulad en TCP, es muy sencill cmunicar dispsitivs MODBUS existentes sbre MODBUS TCP/IP. Para ell se requiere una pasarela que cnvierta el prtcl MODBUS a MODBUS TCP/IP. Figura 14. Encapsulamient de la trama Mdbus en TCP. Esta técnica de cnsulta/respuesta encaja perfectamente cn la naturaleza Maestr/ de Mdbus, añadid a la ventaja del determinism que las redes Univ Plitécnica de Cartagena. Departament de Tecnlgía Electrónica. Pág. 9 Asignatura:. Prfesr: Manuel Jiménez Buendía. Univ Plitécnica de Cartagena. Departament de Tecnlgía Electrónica. Pág. 10 Asignatura:. Prfesr: Manuel Jiménez Buendía.