INDICE 1. INTRODUCCIÓN... 2 1.1. Instalación módulo de comunicaciones... 2 2. COMUNICACIONES RS485... 4 2.1. Standard RS485... 4 2.2. Conexionado... 4 3. PROTOCOLO MODBUS... 5 3.1. Introducción... 5 3.2. Modo de transmisión... 5 3.3. Estructura mensaje... 5 3.3.1... 5 3.3.2... 6 3.3.3 Datos... 6 3.3.4... 6 3.4. Descripción de las funciones... 9 3.4.1 Leer N bits... 9 3.4.2 Leer N registros... 10 3.4.3 Asignar un bit... 11 3.4.4 Asignar un registro... 12 3.5. Códigos de error... 13 4. OPERATIVA DE LA SERIE AKROS... 14 4.1. Tabla de direcciones Modbus... 15 4.1.1Direcciones Modbus de bits... 15 4.1.2 Direcciones Modbus de registros... 16 1
1. INTRODUCCIÓN Lea este capítulo antes de conectar el módulo. El presente manual está orientado a los usuarios que necesiten comunicaciones digitales con el protocolo MODBUS para la supervisión, control y configuración de procesos mediante los indicadores AK30 y AK32 de la serie Akros. Se considera que el usuario tiene unos conocimientos básicos de protocolos de comunicaciones, así como funcionamiento de los indicadores de la serie Akros. Para ensamblar el modulo AK36, primero debe extraer el indicador de su caja e identificar el circuito que contiene los conectores de salida. 1.1. Instalación módulo de comunicaciones Ensamble el módulo AK36 cuidadosamente, de manera que coincidan todos los terminales acodados de la placa de la fuente de alimentación AK30/AK32 con los conectores de la cara inferior Ak36. 2
Conecte el otro conector AK36 en el lugar destinado para ello en la placa de la CPU como se muestra en la figura inferior. Para activar el modulo de comunicaciones, una vez encendido el indicador vaya a la opción de menú OPT y seleccione la opción 1. Al seleccionar una de estas opciones, quedaran habilitados los siguientes elementos menú, destinados a la configuración funcionamiento modulo Addr Speed Prty dlay Modbus instrumento Velocidad bus Paridad Tiempo de retardo de respuesta 3
2. COMUNICACIONES RS485 2.1. Standard RS485 El standard de comunicaciones RS485 permite la conexión de más de un instrumento mediante dos conductores con una longitud máxima de 1200m. Adicionalmente es recomendable conectar un tercer conductor a tierra y a las pantallas de los cables de comunicaciones con el fin de proporcionar a la línea una protección adicional a las interferencias. 2.2. Conexionado Los moos AK30/32 de la serie Akros admiten conexiones a buses RS485 mediante dos conductores más uno adicional de tierra. Para utilizar una conexión RS485 desde un PC es necesario intercalar un conversor RS-232/RS485. Si el conversor proporciona comunicaciones RS-485 a 4 conductores, se deberán unir los terminales marcados como TX- con RX- y, a su vez, los terminales marcados como TX+ con RX+. De esta manera se obtendrán dos líneas que identificaremos como TR+ y TR-. Adicionalmente, justo después último instrumento de la línea se conectará una resistencia de terminación entre TR+ y TR- de 220 Ohm. Direccione los cables de comunicaciones por caminos diferentes a los cables de potencia. Los cables de comunicaciones pueden canalizarse junto a cables de señal si éstos no están expuestos a fuentes de interferencia. Se recomienda el uso de cables de par trenzado, con una capacidad entre conductores inferior a 60pF, impedancia característica nominal a 100 KHz de 100 Ohm, y una resistencia nominal inferior a 100 Ohm/Km (conductores de mínimo 24 AWG). 4
3. PROTOCOLO MODBUS 3.1. Introducción El protocolo MODBUS define una estructura de mensajes que puede ser reconocida por diferentes s independientemente tipo de red de comunicaciones utilizada. El protocolo describe el proceso para acceder a información de un, cómo debe responder éste, y como se notifican las situaciones de error. El protocolo MODBUS define una red digital de comunicaciones con un solo master y uno o más s slave. 3.2. Modo de transmisión El modo de transmisión es la estructura de las unidades de información contenidas en un mensaje. El protocolo MODBUS define dos modos de transmisión: ASCII (American Satandard Code for Information Interchange) y RTU (Remote Terminal Unit). En una red de s conectados mediante el protocolo MODBUS NO se pueden compartir s utilizando diferentes modos de transmisión. Los indicadores AK30/32 de la serie Akros se comunican en modo RTU. 3.3. Estructura mensaje Un mensaje consiste en una secuencia de carácteres que puedan ser interpretados por el receptor. Esta secuencia de carácteres define la trama. Para sincronizar la trama, los s receptores monitorizan el intervalo de tiempo transcurrido entre carácteres recibidos. Si se detecta un intervalo mayor que tres veces y media el tiempo necesario para transmitir un carácter, el receptor ignora la trama y asume que el siguiente carácter que recibirá será una dirección. 3.3.1 3,5T DIRECCIÓN FUNCIÓN DATOS 3,5T 3,5 bytes 1 byte 1 byte N bytes 2 bytes 3,5 Bytes El campo dirección es el primero de la trama después tiempo de sincronización. Indica el al que va dirigido el mensaje. 5
Cada de la red debe tener asignada una dirección única, diferente de cero. Igualmente, cuando un responde a un mensaje, debe enviar en primer lugar su dirección para que el master reconozca la procedencia mensaje. MODBUS permite enviar mensajes a todos los s a la vez utilizando para ello la dirección cero. Sin embargo, para evitar conflictos con otros s en la red, los moos AK30/32 de la serie Akros no aceptan este tipo de mensajes. 3.3.2 El campo función indica al direccionado qué tipo de función ha de realizar. Los moos AK30/32 aceptan las siguientes funciones: 3.3.3 Datos Código 01 o 02 Leer N bits (máx. 255) 03 o 04 Leer N registros (máx 127) 05 Asignar 1 bit 06 Asignar 1 registro 07 Leer byte de estado instrumento véase el apartado 3.4 para una descripción de las funciones El campo datos contiene la información necesaria para que los s puedan ejecutar las funciones solicitadas, o la información enviada por los s al master como respuesta a una función. 3.3.4 El campo es el último de la trama y permite al master y a los s detectar errores de transmisión. Ocasionalmente, debido a ruido eléctrico o a interferencias de otra naturaleza, se puede producir alguna modificación en el mensaje mientras se está transmitiendo. El control de errores por medio de asegura que los s receptores o el master no efectuaran acciones incorrectas debido a una modificación accidental mensaje. Los indicadores de la serie Akros NO envían ninguna respuesta cuando detectan un error de en la trama recibida. 6
Para el cálculo de no se consideran los bits de stop ni de paridad. Sólo los de datos. La secuencia para el cálculo de se describe a continuación: 1. Cargar un registro de 16 bits a 1 s. 2. Efectuar un OR exclusivo de los primeros 8 bits recibidos con el byte alto registro, guardando el resultado en el registro. 3. Desplazar el registro un bit a la derecha. 4. a) Si el bit desplazado es un 1, efectuar un OR exclusivo valor 1010 0000 0000 0001 con el contenido registro y guardarlo en el registro. 4. b) Si el bit desplazado es un 0, volver al paso 3. 5. Repetir los pasos 3 y 4 hasta haber efectuado 8 desplazamientos de bit. 6. Efectuar un OR exclusivo siguiente byte de la trama con el registro de 16 bits. 7. Repetir los pasos 3 al 6 hasta que se hayan procesado todos los bytes de la trama. 8. El contenido registro de 16 bits es el, que se añade al mensaje con el bit más significativo primero. 7
Ejemplo de calculo de en C: unsigned short Calcula( unsigned char c, unsigned short want ) { //c es el caracter actual de la trama //want es el calculado hasta el momento unsigned char n, carry; want ^= ( unsigned short ) c; } for( n = 0 ; n < 8 ; n = n + 1 ) { carry = want & 0x01; want >>= 1; if( carry ) want ^= 0xA001; } return want; int main( int argc, char *argv[] ) { //Ejemplo de una trama sin : leer bit 3 y 4 unsigned char trama[] = { 0x02, 0x01, 0x00, 0x03, 0x00, 0x02 }; //Inicialización para calculo de unsigned short i, w; //Inicialización w = 0xffff; for( i = 0; i < sizeof( trama ); i = i + 1 ) w = Calcula( trama[i], w ); //Para este ejemplo el resultado es w = 0xf84d( ejemplo en un PC. //Dependiendo modo de alinear los bytes sistema utilizado este //resultado puede ser 0x4df8 ) } //la trama completa sería //0x02, 0x01, 0x00, 0x03, 0x00, 0x02, 0x4d, 0xf8 return 0; 8
3.4. Descripción de las funciones 3.4.1 Leer N bits ( función 01o 02) Esta función permite al usuario obtener los valores lógicos (ON/OFF) de los bits direccionado. Los datos de respuesta van empaquetados en bytes de manera que el primer bit solicitado ocupa el bit de menos peso primer byte de datos. Los siguientes van a continuación de manera que si no son un número múltiplo de 8, el último byte se completa con ceros. Trama master-: (01 o 02) trama -master: primer bit Número de bits a leer ( máx 255) 1 byte 1 byte MSB LSB MSB LSB MSB LSB Código de Número de bytes leídos Primer byte de datos... Último byte de datos 1 byte 1 byte 1 byte 1 byte... 1 byte MSB LSB Ejemplo: Leer 2 bits a partir bit con dirección 4, indicador con dirección 2. Master-: Dispositivo-master: primer bit Número de bits a leer 02 01 00 04 00 02 FC 39 Código de Número de bytes leídos Primer byte de datos 02 01 01 03 11 CD La respuesta nos indica que los bits de dirección 4 (AL1) y 5 (AL2) se encuentran a 1. Por lo tanto, las alarmas AL1 y AL2 se encuentran activadas. La respuesta ha asignado ceros a las direcciones que no se han pedido desde el master, lo cual no significa que su valor real sea cero. 9
3.4.1 Leer N Registros ( función 03 o 04) Esta función permite al usuario obtener los valores de los registros direccionado. Estos registros almacenan los valores numéricos de los parámetros y variables indicador. El tamaño campo de datos para cada registro puede ser 2 o 4 bytes según el valor máximo que pueda tomar el parámetro solicitado. Los datos correspondientes a direcciones de registros no accesibles se asignan a un valor de 2 bytes a 0 (00 00 ). Trama master-: (03 o 04) trama -master: primer registro Número de registros a leer ( máx 51) 1 byte 1 byte MSB LSB MSB LSB MSB LSB Código de Número de bytes leídos Valor primer word registro Valor segundo word registro(si es de 2 words)... Valor de último registro 1 byte 1 byte 1 byte MSB LSB MSB LSB... MSB LSB MSB LSB Ejemplo: Leer 3 registros a partir registro con dirección 2, indicador con dirección 2. Master-: primer registro Número de registros a leer 02 03 00 02 00 03 A4 38 Dispositivo-master: Código de Número de bytes leídos Valor primer registro Valor segundo registro Valor tercer registro 02 03 06 00 00 00 C8 00 01 80 A6 La respuesta nos indica que los parámetros SP.A2 ( registros 2 y 3 ) y C.A1 ( registro 4 ) tienen respectivamente el valor hexadecimal 000000C8 y 0001. Por lo tanto, los valores decimales correspondientes son: SP.A2=200 y C.A1=1. 10
3.4.3 Asignar un bit ( función 05) Esta función permite al usuario asignar los valores lógicos (ON/OFF) de los bits direccionado. Para desactivar el bit se debe enviar 00h, y para activarlo se debe enviar 01h o FFh. Éste valor se debe escribir en el byte más significativo. Trama master-: (05) bit Valor bit 1 byte 1 byte MSB LSB MSB LSB MSB LSB trama -master: (05) bit Valor bit 1 byte 1 byte MSB LSB MSB LSB MSB LSB Ejemplo: Asignar estado de activación al bit de dirección 8, indicador con dirección 2. Master-: bit Valor bit 02 05 00 08 01 00 4D AB Dispositivo-master: bit Valor bit 02 05 00 08 01 00 4D AB La respuesta nos indica que el bit 8 (Mascara alarma 1) ha sido activado y la alarma AL1 se encuentra enmascarada 11
3.4.4 Asignar un registro ( función 06) Esta función permite al usuario modificar el contenido de los parámetros direccionado. Trama master-: (06) registro Valor registro 1 byte 1 byte MSB LSB MSB LSB MSB LSB Trama -master: (06) registro Valor registro 1 byte 1 byte MSB LSB MSB LSB MSB LSB Ejemplo: Asignar el valor 4 (0004h) al registro de dirección 05, indicador con dirección 2. Master-: registro Valor registro 02 06 00 05 00 04 98 3B Dispositivo-master: registro Valor registro 02 06 00 05 00 04 98 3B La respuesta nos indica que el registro 5 (Configuración de alarma 2) ha recibido el valor de 4(Alarma baja inversa). Hay parámetros que ocupan dos de un registro ( consignas, bias, etc. ). Para asignar valores superiores a 65535, o menores a 0 se deben asignar correctamente los dos registros. Por ejemplo, para asignar Bias canal 1 a -200 ( ffffff38h) se debería asignar ffffh al registro 28 y ff38h al registro 29. Es recomendable asignar el WORD ALTO antes que el. 12
3.5. Códigos de error Comúnmente, los errores que aparecen durante las operaciones de acceso y programación de s tienen relación con datos no válidos en la trama. cuando un detecta un error de esta naturaleza, la respuesta al master consiste en la dirección, el código de la función, el código de error y el. Para indicar que la respuesta es una notificación de error, el bit de más peso código de la función está activado a 1. Los moos AK30/32 de la serie Akros utilizan los siguientes códigos de error: error Descripción 01 no válida 02 campo dirección de datos no válido 03 campo dato/s no válido 06 Ocupado: Se está accediendo al menú En referencia a los indicadores de la serie Akros, deben contemplarse los siguientes casos: Si un recibe una solicitud de lectura de N bits y pasa de la última dirección accesible, el indicador envía como respuesta el valor 00 para las direcciones no existentes. Si un recibe una solicitud de lectura de N registros y pasa de la última dirección accesible, el indicador envía como respuesta el valor 00 00 para las direcciones no existentes. Si un recibe una solicitud de escritura de un registro definido como solo lectura o que no existe, el indicador envía como respuesta el código de error 02. Si la dirección primer registro es mayor que la ultima dirección valida el indicador envía como respuesta el código de error 02 Si la función no está entre las descritas el indicador envía como respuesta el código de error 01. Si se intenta iniciar una calibración de transductor de presión mientras se está realizando una, o mientras se esta dentro menú se devuelve el código de error 06. 13
4. OPERATIVA DE LA SERIE AKROS Los moos AK30/32 de la serie Akros equipados con interfaz RS485 para conexión Modbus deben configurarse previamente. Las comunicaciones se efectúan con un formato de 1 start bit, 8 bits de datos y 1 stop bit. Adicionalmente se pueden configurar cuatro parámetros. Addr indicador en la red Modbus Valor Mínimo 0( Modbus deshabilitado ) Valor Máximo 255 baud Velocidad de transmisión Valor Velocidad 0 2400 bps 1 4800 bps 2 9600 bps 3 19200 bps Prty Paridad Valor Significado 0 Sin paridad 1 Par 2 Impar dlay Tiempo de retardo Valor mínimo 0 Valor máximo 10 El valor de dlay es el tiempo que espera el indicador antes de contestar a una trama enviada por el master. El tiempo es el resultado de multiplicar el valor de dlay por 10 ms. Este parámetro es necesario cuando se producen retardos en la conmutación de los modos recepción/transmisión en los s de conversión RS232/RS485. De este modo se crea un tiempo de espera que permite sincronizar las comunicaciones evitando conflictos. 14
4.1. Tabla de direcciones Modbus A continuación se muestra una lista de todos los parámetros disponibles mediante comunicaciones en la serie Akros. todos los parámetros accesibles por teclado están disponibles por medio de las comunicaciones. Sin embargo, debido a que la serie Akros puede estar configurada para una gran variedad de aplicaciones, si se accede a lectura o escritura de un parámetro relacionado con una opción no configurada en el instrumento, el indicador responde un mensaje de error de código 03 (ver apartado 3.5). 4.1.1 Direcciones Modbus de bits MODBUS Parámetro bit 0 1= overrange canal 1* 1 1=underrange canal 1* 2 1= overrange canal 2* 3 1=underrange canal 2* 4 1=AL1 activada * 5 1=AL2 activada * 6 0= Canal 1 AL1 / 1= Canal 2 AL1 * 7 0= Canal 1 AL2 / 1= Canal 2 AL2 * 8 1 = Mascara AL1 activada 9 1 = Mascara AL2 activada 10 0 = Unidad ºC / 1 = Unidad F 11 0 = AK30 / 1= AK32* 12 Nivel de seguridad 13 1= Tara activa * 14 1= Utilizando menú * * Direcciones de sólo lectura 15
4.1.2 Direcciones Modbus de registros Dir parámetro Nombre de display Posición AK30 AK32 Limite alto Limite bajo Notas 0 WORD ALTO Punto de consigna alarma 1* SP.A1 1 RW RW (Sonda) (Sonda) 2 WORD ALTO Punto de consigna alarma 2* SP.A2 3 RW RW (Sonda) (Sonda) 5 Configuración alarma 1 C.A1 RW RW 0 7 7 Configuración alarma 2 C.A2 RW RW 0 7 8 WORD ALTO Histéresis alarma 1* Hy.A1 9 RW RW (Sonda)-SP1 0 10 WORD ALTO Histéresis alarma 2* HY.A2 11 RW RW (Sonda)-SP2 0 13 Canal alarma 1 CH.A1 NP RW 2 1 15 Canal alarma 2 CH.A2 NP RW 2 1 17 Mascara alarma 1 NAS.A1 RW RW 1 0 Activa/No activa 19 Mascara alarma 2 NAS.A2 RW RW 1 0 Activa/No activa 21 Espera activación alarma 1 dly.a1 RW RW 300 0 Segundos 23 Espera activación alarma 2 dly.a2 RW RW 300 0 Segundos 25 Desactivación manual alarma 1 Lch.A1 RW RW 1 0 Manual/Auto 27 Desactivación manual alarma 2 Lch.A2 RW RW 1 0 Manual/Auto 28 WORD ALTO Bias canal 1* BIAs.1 29 RW RW 99999-9999 30 WORD ALTO Bias canal 2* BIAS.2 31 NP RW 99999-9999 16
Akros Series 33 Sonda de entrada Inp RW RW (AK30)14 (AK32)12 35 Unidad Unit RW RW 1 0 0: ºC, 1:F 37 Punto decimal entrada lineal dp RW RW 3 0 38 WORD ALTO Inicio escala lineal* In.L 39 RW RW (Fondo) -9999 40 WORD ALTO Fondo escala lineal* In.H 41 RW RW 99999 (Inicio) 43 Punto decimal presión dp RW NP 3 0 44 WORD ALTO FSV presión* FSU 45 RW NP 99999 0 47 Filtro display presión FILtr RW NP 99 0 % filtrado 51 Punto decimal galga dp RW NP 3 0 52 WORD ALTO FSV galga FSU 53 RW NP 99999 0 0 0:J 1:L 2:K 3:N 4:T 5:R 6:S 7:RTD -200 a 600 8:RTD -99.9 a 200.0 9:Lineal 0-5V 10:Lineal 0-10V 11:Lineal 0-20mA 12:Lineal 4-20mA 13:Presión 14:Galga 17
Akros Series 69 dirección Modbus Addr RW RW 240 0 71 Velocidad Speed RW RW 4 0 73 Paridad Prty RW RW 2 0 75 Tiempo Modbus dlay RW RW 10 0 76 WORD ALTO Clave PASS 77 RW RW 99999 0 79 Nivel de protección LEUEL RW RW 1 0 81 Valor de inicio de escalado de presión ( no consta ) R R 65535 (Valor alto) 83 Tara ( no consta ) RW NP 65535 0 85 Valor de fin de escalado de presión ( no consta ) R R (Valor inicio) 0 87 Zero de Galga (mv ) * 100 ZErO.r RW NP (Span Galga) -300 89 Span de Galga (mv ) * 100 SPAN.r RW NP 3700 (Cero Galga) 90 ( valor de display WORD ALTO Lectura canal 1* 91 canal 1 ) R R (Sonda) (Sonda) 92 WORD ALTO Lectura canal 1 alta resolución ( no consta ) 93 R R ---- ---- 94 ( valor de display WORD ALTO Lectura canal 2* 95 canal 2 ) NP R (Sonda) (Sonda) 96 WORD ALTO Lectura canal 2 alta resolución ( no consta ) 97 NP R ---- ---- 99 Numero de canales ( no consta ) R R 2 1 0:2400 1:4800 2:9600 3:19200 0: Ninguna 1: Par 2: Impar 0 indica tensión de inicio de la escala de presión. 65535 indica tensión fondo de escala de presión 18
Akros Series 143 Estado de calibración de presión ( no consta ) RW RW 7 0 Escribir 0 : Activa la función de calibración automática de transductor de presión. Lectura: Último estado al que llegó la calibración de transductor de presión: 0: No se pudo iniciar o no se ha iniciado ninguna calibración desde la puesta en marcha instrumento 1: Esperando medir cero 2: Midiendo cero 3: Esperando medir span 4: Midiendo span 5: Fallo en la calibración 6: Esperando a salvar ( solo si se inicia la calibración desde teclado ) 7: Calibración finalizada con éxito - R: Registro de lectura, W: Registro de escritura, NP: Registro no valido - El formato de los parámetros es enteros con complemento a 2 - Algunos de los parámetros pueden tener un valor superior a 65535. En este caso ocupan 2 registros Modbus. Normalmente no será necesario obtener estos 2 registros ya que el valor podrá ser almacenado simplemente en el. Para escribir un número negativo en estos parámetros SI será necesario escribir los 2 registros - Las lecturas de alta resolución están compuestas por 4 bytes. El valor resultante hay que dividirlo por 65536 para obtener su valor real * Si la sonda de entrada (inp) es la número 8 (RTD /-99.9...200.0), se debe dividir por 10. Si la sonda de entrada es lineal (inp = 9,10,11 o 12) o de presión o galga (inp = 13 o 14), en función valor de dp (0-3), se debe dividir por 1, 10, 100 o 1000 respectivamente. 19