Cargar un sketch a un PLC mediante Ethernet - Paso 2 - Archivo binario
24 diciembre, 2018 por
Cargar un sketch a un PLC mediante Ethernet - Paso 2 - Archivo binario
Alejandro Jabalquinto

Introducción

En este post veremos cómo tomar el archivo binario de un sketch.ino


Requisitos

Ethernet o 20 I/Os PLC:      Ethernet PLC             20 I/Os PLC     

Placas de Industrial Shields:   Placas de Industrial Shields:   


Descripción

En primer lugar, tenemos que conocer las diferencias entre la carga de un código a través de USB y la carga a través de Ethernet. Cuando se sube un código a una placa Arduino usando el USB, el software Arduino IDE hace automáticamente su magia y transforma el código sketch.ino en un archivo.hex que es el que se sube automáticamente. Si queremos subir un código a través de Ethernet tenemos que hacerlo manualmente. Para empezar, no subimos un archivo .hex como en el USB, ahora es un archivo .bin por lo que la primera parte es conseguir este archivo binario.

Es un proceso diferente para obtener el archivo binario usando Windows que usando Linux, así que este post será separado en estas 2 partes.

1. Parte com√ļn. Modificaci√≥n de una preferencia en el software Arduino IDE.

En el software Arduino IDE vaya a Archivo -> Preferencias. marca la casilla Mostrar salida verbosa durante la compilación *opcional: Cargar (no es necesario).

 Modificación de una preferencia en el software Arduino IDE

2. Verifica tu boceto en el software Arduino IDE.

 Verificar el boceto en el software Arduino IDE

*Ten en cuenta por el momento que quieres cargar un c√≥digo usando Ethernet tienes que ser hecho un Reset al PLC, si el PLC no ha sido configurado para resetearse autom√°ticamente, tendr√° que ser manualmente (presionando f√≠sicamente el bot√≥n de reset). Aqu√≠ se deja el post que explica el c√≥digo que hay que a√Īadir para hacer un reset remoto.¬†

COMO RESETEAR UN PLC USANDO EL ETHERNET SHIELD

3. Windows 

Para crear el archivo binario necesitamos saber dónde se encuentra el archivo .hex. Este archivo se crea en una carpeta temporal. En el momento en que se verifica un código teniendo esta marca de Compilación (en Preferencias), podremos ver la ruta.

Dónde se encuentra el archivo .hex

Tenemos que situarnos en las √ļltimas l√≠neas. Despu√©s de "Enlazando todo..." la siguiente l√≠nea muestra este camino. No se muestra en la primera foto porque es demasiado grande para representarla en una sola foto. En la siguiente foto acabo de mover a la derecha las ventanas negras encontrando la ruta del archivo temporal. (SUGERENCIA: busque /Temp/)

Ventanas negras encontrando la ruta del archivo temporal.

Por defecto, debe guardarse en la carpeta temporal del sistema Windows de su usuario.

Si vas a ese directorio encontrarás algo así en la carpeta temporal:

Carpeta temporal

Como se puede ver he encontrado mi archivo .hex creado después de verificar mi boceto. 

3.1 Abrir CMD

CMD - Cargar un sketch a un PLC mediante Ethernet

Esta es una terminal para insertar comandos que Windows entiende, usaremos esta terminal para enviar un comando que ejecutará una herramienta de Arduino IDE que convertirá el .hex en el .bin. 

Comando que ejecutar√° una herramienta de Arduino IDE que convertir√° el .hex en el .bin.

Si sabes cómo funciona CMD tienes que ir al directorio del archivo .ino.hex que es el que hemos visto antes. Esto se hace usando el comando cd "$ruta" como se muestra en la foto.
Una vez que nos situamos en el directorio correcto necesitamos utilizar este comando para usar la herramienta Arduino IDE que transforma el .hex en .bin. La ruta en el primer camino puede ser ligeramente diferente dependiendo del lenguaje y la arquitectura de tu ordenador (los ordenadores de 32bits tienen \ Archivos de programa (x86)\N-).
 
C:\Program Files\Arduino\hardware\tools\avr\bin\avr-objcopy.exe" -I ihex [sketchname].ino.hex -O binary [sketchname].ino.bin
 
Aquí está el resultado: