INTRODUCCIÓN... 2 1. PROTOCOLO TCP... 2 2. MAPA GENERAL DE DIRECCIONES... 3 SALIDAS INTERNAS. ADDR BASE 00001... 3 SALIDAS EXTERNAS. ADDR BASE 00012... 4 SALIDAS MÓDULO IMPRESOR. ADDR BASE 00020... 4 ENTRADAS INTERNAS. ADDR BASE 10001... 5 ENTRADAS EXTERNAS. ADDR BASE 10014... 5 ENTRADAS MÓDULO IMPRESOR. ADDR BASE 10021... 5 ESTRUCTURA ESTADO. ADDR BASE 30001... 6 ESTADO ACCIONES. ADDBASE 31001... 8 ESTRUCTURA PARÁMETROS. ADDR BASE 40001... 8 SIMULACIÓN IE1,IE2,IE3. ADDR BASE 40801... 10 MODO ONLINE/OFFLINE.... 10 ACCIONES. ADDBASE 41006... 10 FAMILIAS REBOBINADO. ADDR BASE 42001... 11 FAMILIAS MULTIETIQUETAS. ADDR BASE 44001... 11
Introducción El presente documento define el protocolo enfocado a los equipos MLA2. Utilización de lectura y/o escritura de parámetros, Entradas, Salidas y acciones. La conexión al equipo és a través de TCP/IP cliente / servidor Las direcciones de todos los campos es la dirección lógica del equipo. El valor físico de la addr restar dirección base. Ver ejemplos. 1. Protocolo TCP El modbus TCP fija el puerto de comunicaciones ethernet 502 El encapsulado TCP se define a continuación: EncapsuladoTCP Descripción Tamaño en bytes ej Identificador Hi Transacción 1 0x15 Identificador Lo Transacción 1 0x01 Identificador protocolo 2 0x0000 Tamaño trama 2 0x0006 Identificador Unidad 1 0xFF Codigo función 1 0x06 Dirección 2 0x0004 Datos x 0x1234 La codificación de los datos es big-endian y los registros són de 16bits. Ejemplo trama datos => 15 01 00 00 00 06 FF 06 00 04 12 34 El identificador de transacción se usa para asociar la respuesta con la petición. El identificador del protocolo siempre es 0 = PROTOCOL Tamaño de trama dependerá de la cantidad de registros. Identificador de unidad sirve para equipos esclavos. Como en nuestro caso es a través del TCP/IP no direccionamos exclusivamente a un equipo, y por lo tanto este campo no se utiliza. Se recomienda 0xFF para un valor insignificante. Códigos función expresa el tipo de operación.
Código función Nombre 01 Lectura n bits salidas 02 Lectura n bits entradas 03 Lectura registro de almacenamiento 04 Lectura registro 05 Escribir un bit 06 Escribir un registro 16 Escribir múltiples registros La respuesta a una petición es la misma función y en caso de error se suma 0x80 y campo datos con la codificación de errores siguiente: Código Error Significado 01 Función invalida La función recibida no está permitida 02 Dirección inválida Dirección fuera de rango 03 Dato invalido El dato contiene un valor no válido 04 Falla en el dispositivo El controlador no responde 05 Reconocimiento(ACK) Se ha aceptado la función y se está procesando 06 Ocupado El mensaje se ha recibido pero no puede procesarlo en este momento Dirección 2. Mapa general de direcciones El mapa modbus está conformado por las especificaciones : Rango direcciones Tipo Descripción 00001-10000 Lectura y/o escritura Salidas 10001-20000 Solo Lectura Entradas digitales 30001-40000 Solo lectura Registros(Estructura Estado) 40001-50000 Ectura y/o escritura Registros de almacenamiento(parámetros) Salidas internas. Addr base 00001 OI1 2 00001 OI2 2 00002 OI3 2 00003 OI4 2 00004 OI5 2 00005 OI6 2 00006 OI7 2 00007 OI8 2 00008 OI9 2 00009
OI10 2 00010 OI11 2 00011 OI12 1 00012 Las salidas solo son de lectura. Ejemplo leer 10 salidas internas (Función 0x01) Petición Respuesta Ident Hi Transacción 0x00 Ident Hi Transacción 0x00 Ident Lo Transacción 0x02 Ident Lo Transacción 0x01 Ident protocolo 0x0000 Ident protocolo 0x0000 Tamaño trama 0x0006 Tamaño trama 0x0005 Identificador Unidad 0xFF Identificador Unidad 0xFF Codigo función 0x01 Codigo función 0x01 Dirección logica 00001 0x0000 Contador bytes 0x02 Cantidad salidas 0x000A II1..II8 0x80 II9..II13 0x00 Petición-> 00 04 00 00 00 06 FF 01 00 00 00 0A Respuesta -> 00 03 00 00 00 05 FF 01 02 80 00(OI8 activada) Salidas externas. Addr base 00012 OE1 2 00013 OE2 2 00014 OE3 2 00015 OE4 2 00016 OE5 2 00017 OE6 2 00018 OE7 2 00019 OE8 2 00020 Salidas módulo impresor. Addr base 00020 MIO1 2 00021 MIO2 2 00022 MIO3 2 00023 MIO4 2 00024 MI5 2 00025 Nota: Para escribir salidas es necesario que el equipo este en modo offline. Ver capítulo modo offline.
Entradas internas. Addr base 10001 II1 2 10001 II2 2 10002 II3 2 10003 II4 2 10004 II5 2 10005 II6 2 10006 II7 2 10007 II8 2 10008 II9 2 10009 II10 2 10010 II11 2 10011 II12 2 10012 II13 2 10013 Ejemplo leer 13 entradas internas (Función 0x02) Petición Respuesta Ident Hi Transacción 0x00 Ident Hi Transacción 0x00 Ident Lo Transacción 0x07 Ident Lo Transacción 0x06 Ident protocolo 0x0000 Ident protocolo 0x0000 Tamaño trama 0x0006 Tamaño trama 0x0005 Identificador Unidad 0xFF Identificador Unidad 0xFF Codigo función 0x02 Codigo función 0x02 Dirección logica 10001 0x0000 Contador bytes 0x02 Cantidad entradas 0x000D II1..II8 0x80 II9..II13 0x00 Petición => 00 07 00 00 00 06 FF 02 00 00 00 0D Respuesta => 00 06 00 00 00 05 FF 02 02 80 00 (II8 activada) Entradas externas. Addr base 10014 IE1 2 10014 IE2 2 10015 IE3 2 10016 IE4 2 10017 IE5 2 10018 IE6 2 10019 IE7 2 10020 Entradas módulo impresor. Addr base 10021 IE1 2 10021 IE2 2 10022
IE3 2 10023 IE4 2 10024 IE5 2 10025 IE6 2 10026 IE7 2 10027 Estructura estado. Addr base 30001 Version 2 30003 Revision 2 30004 Contador parcial 4 30005-30006 Contador acumulado 4 30007-30008 Contador total 4 30009-30010 Errores (1) 8 30011-30014 Incidencias o alarmas(2) 4 30015-30016 Timer ciclo estimado 2 30017 Timer tiempo aplicación estimado 2 30018 Timer impresión 2 30019 Prioridad errores(1) 2 30029 Modo offline(1) 2 30032 Prioridad incidencias(1) 2 30033 Familia activa 2 30034 Familia activa multietiquetas 2 30035 Código error impresora 2 30036 Mensaje error impresora 20 30037-30046 Nota 1: El modo ofline indica que la máquina no está en modo producción normal, sino parada por un error voluntario o que se ha producido de modo anormal. Si este campo esta activo está asociado a un error. Definición errores activos bit a bit. Total 8 bytes. Cuando hay varios errores activos el campo prioridad error o prioridad incidencia marca como su nombre indica el más prioritario. Este campo de prioridad los 4 bits de mayor peso indican byte, y los 4 bits de menos pesos el bit. Ej prioridad errores = 0x12 (Error mas prioritario cilindro 1 home) Error Byte bit Parámetros 0 0 Paro emergencia 0 1 Paro 0 2 RFU1 0 3 Puerta cabina 0 4 Final producción 0 5 Rotura papel 0 6 Scanner 0 7
Rampa 1 0 4L pasos 1 1 Cilindro 1 home 1 2 Protección avance 1 3 Cilindro 2 home 1 4 No hay etiquetas gap 1 5 Cilindro 2 tope 1 6 Cilindro 1 tope 1 7 Sensor rebobinado arriba 2 0 Sensor rebobinado abajo 2 1 Precisión gap 2 2 Falta teaching 2 3 Pala 2 4 Tiempo aplicador 2 5 Tiempo subaplicador 2 6 Borrado eeprom 2 7 Rebobinador lleno 3 0 Falta MII3 3 1 Etiqueta caída 3 2 Etiqueta en pala 3 3 Buffer vacío 3 4 RFU2 3 5-7 RFU3 4 0-7 RFU4 5 0-7 RFU5 6 0-7 Impresora apagada 7 0 Impresora 7 1 Impresora no lista 7 2 No hay etiquetas en impresora 7 3 Ribon terminado 7 4 Longitud etiqueta 7 5 RFU6 7 6-7 Nota 2: Todas las incidencias o alarmas se describen a continuación: Incidencia Byte bit Scanner 0 0 No hay etiquetas 0 1 Low etiquetas 0 2 Low ribon 0 3 Arrancando 0 4 Parando 0 5 Bufer vacío 0 6 Vaciar bufer esclavo 0 7 Etiqueta caída 0 0 Etiqueta en pala 1 1 RFU1 1 2-7 RFU2 2 0-7 RFU3 0-7
Ejemplo leer versión y revisión Petición Respuesta Ident Hi Transacción 0x00 Ident Hi Transacción 0x00 Ident Lo Transacción 0x07 Ident Lo Transacción 0x06 Ident protocolo 0x0000 Ident protocolo 0x0000 Tamaño trama 0x0006 Tamaño trama 0x0007 Identificador Unidad 0xFF Identificador Unidad 0xFF Codigo función 0x04 Codigo función 0x04 Dirección logica 30003 0x0002 Contador bytes 0x04 Cantidad registros 0x0002 Valor registro(versión) 0x0003 Valor registro(revisión) 0x0024 Petición => 00 07 00 00 00 06 FF 04 00 02 00 02 Respuesta => 00 06 00 00 00 07 FF 04 04 00 03 00 24 Estado acciones. AddBase 31001 TEACHING(1) 2 31006 REBOBINAR(1) 2 31008 FINAL REBOBINAR(1) 2 31009 Byte Acciones Estado/Resultado acción 0 Stop ; 1; Working ;2 Ok; 3 FAIL Estructura parámetros. Addr base 40001 Scanner(1) 2 40018 Encoder(2) 2 40023 Timer 1 retraso impresión(ms) 2 40033 Timer 8 tiempo entre imprimir y aplicar(ms) 2 40034 Timer 9 soplado(ms) 2 40035 Tiempo de ciclo maximo(ms) 2 40036 Timer 2 eyección(ms) 2 40037 Timer 6 retraso cilindro 1(ms) 2 40038 Timer 5 retraso cilindro 2(ms) 2 40039 Timer 7 eyección(ms) 2 40040 Timer 4 retorno cilindro 2(ms) 2 40041 Timer 10 tiempo max aplicación(ms) 2 40042 Timer 13 tiempo aplicación cil 2(ms) 2 40043 Timer 14 vacío(ms) 2 40044
Timer 15 retraso fin aplicación(ms) 2 40045 Timer retraso disparo scanner(ms) 2 40046 Timer final ciclo(ms) 2 40047 Timer scanner(ms) 2 40048 Nota 1: Campo scanner Byte scanner bit Valor Habilitado 0 Señales o Protocolo 1-2 0 Señales; 1Protocolo Tipo protocolo 3-4 0 Sick ; 1 Datalogic Reenvio a host 5 Retraso disparo habilitado 6 Nota 2: Campo encoder Byte encoder bit Valor Habilitado 0-1 0 Habilitado 1 Directo 2 Cuadratura horaria 3 Cuadratura anti-horaria Velocidad dispensación 2 Etiquetar a partir de IE1 3 Entradas II12,II13 o MII3,MII4 4 RFU 5-7 Ejemplo escribir un registro (Función 0x06) Petición escribir campo scanner addr lògica 40019-40001(física 0x0011) habilitado y reenvio a host 0x21. Petición Respuesta Ident Hi Transacción 0x00 Ident Hi Transacción 0x00 Ident Lo Transacción 0x02 Ident Lo Transacción 0x01 Ident protocolo 0x0000 Ident protocolo 0x0000 Tamaño trama 0x0006 Tamaño trama 0x0006 Identificador Unidad 0xFF Identificador Unidad 0xFF Codigo función 0x06 Codigo función 0x06 Dirección logica 40018 0x0011 Dirección logica 40018 0x0011 Valor registro 0x0021 Valor registro 0x0021 Petición => 00 02 00 00 00 06 FF 06 00 11 00 21 Respuesta => 00 01 00 00 00 06 FF 06 00 11 00 21 Ejemplo escribir múltiples registros (Función 0x10)
Petición escribir Timer10 1000ms i Timer13 2000ms. Addr lógica base base 40042--40001(física 0x0029) Petición Respuesta Ident Hi Transacción 0x00 Ident Hi Transacción 0x00 Ident Lo Transacción 0x03 Ident Lo Transacción 0x02 Ident protocolo 0x0000 Ident protocolo 0x0000 Tamaño trama 0x000B Tamaño trama 0x0006 Identificador Unidad 0xFF Identificador Unidad 0xFF Codigo función 0x10 Codigo función 0x10 Dirección logica 40042 0x0029 Dirección logica 40042 0x0029 Cantidad registros 0x0002 Cantidad registros 0x0002 Contador bytes 0x04 Valor reg Timer 10 0x03E8 Valor reg Timer 13 0x07D0 Petición => 00 03 00 00 00 0B FF 10 00 29 00 02 04 03 E8 07 D0 Respuesta => 00 02 00 00 00 06 FF 10 00 29 00 02 Simulación IE1,IE2,IE3. Addr base 40801 IE1(1) 2 40801 IE2(1) 2 40802 IE3(1) 2 40803 Nota 1: Campo con valor!= 0 entrada activada Modo online/offline. Modo offline 2 40810 Acciones. AddBase 41006 IMPRIMIR 2 41002 APLICAR 2 41003 REIMPRIMIR 2 41004 ETIQUETA EN BLANCO 2 41005 TEACHING(1) 2 41006 REBOBINAR(1) 2 41008 FINAL REBOBINAR(1) 2 41009 PARAR SIRENA 2 41012 Nota 1: Campo con valor!= 0 Start acción
Familias rebobinado. Addr Base 42001 Existen 60 familias de rebobinado. Para direccionar la familia n aplicar el siguiente calculo: ej família 3 -> n=3 Offset = (n-1)*30 Velocidad m/min (1) 4 42001-40002 + offset Pasos rampa inicial 2 42003 + offset Pasos rampa final 2 42004 + offset Frecuencia inicial 2 42005 + offset Frecuencia final 2 42006 + offset Tiempo inhibición fotocélula(ms) 4 42007-42008 + offset Numero etiquetas final producción 4 42009-42010 + offset Peel off(1) 4 42011-42012 + offset Longitud etiquetatramo 4 42013-42014 + offset Index 2 42015 + offset Activa 2 42016 + offset Resevado1(PLC) 2 42017 + offset Timer T16 retraso inicio ciclo(ms) 2 42018 + offset Inhibición fotocelula gap(mm) 2 42019 + offset L->Longitud etiqueta (mm) 2 42020 + offset X->Offset(mm) 2 42021 + offset Encoder número etiquetas 2 42022 + offset Encoder mm primera etiqueta 2 42023 + offset Encoder mm siguiente etiqueta 2 42024 + offset Encoder mm inhibición fotocélula 2 42025 + offset Tramo 2 42026 + offset Especial bits(2) 2 42027 + offset Resevado2(PLC) 2 42028 + offset Resevado3(PLC) 2 42029 + offset Resevado4(PLC) 2 42030 + offset Nota1:Todos estos campos valor multiplicado por 10000 Nota2:Especial bits Especial bits bit Valor Habilitado 0 Impresora desbilitada RFU 1-7 Familias multietiquetas. Addr Base 44001 Existen 24 familias de multietiquetas. Para direccionar la familia n aplicar el siguiente calculo: ej família 3 -> n=3 Offset = (n-1)*15
Activa 2 44001 + offset Número etiquetas línea 2 44002 + offset Número líneas 2 44003 + offset Reverso 2 44004 + offset Index 2 44005 + offset Separación etiquetas(mm) 2 44007 + offset Cola centrado(mm) 2 44008 + offset