Cargar un sketch a un PLC Industrial usando Ethernet - Paso 3 - Cliente TFTP

24 de diciembre de 2018 por
Cargar un sketch a un PLC Industrial usando Ethernet - Paso 3 - Cliente TFTP
Alejandro Jabalquinto

Introducción

En este post, se verá cómo enviar el archivo binario de un sketch a Arduino usando Ethernet con el Cliente tftp. Además es necesario usar Telnet para hacer un reset remoto. Al igual que en el paso 2 de este proceso este post se dividirá en dos partes diferentes. Una para enviar el archivo binario usando Windows y la otra usando Linux.

 

Windows

Para enviar un sketch usando el cliente tftp es necesario activar el tftp en la función de Windows. También es necesario añadir Telnet para poder enviar un reset remoto al PLC. (Sólo se puede hacer una carga si el Arduino está arrancando. Por eso necesitamos el reset). Si sigues este enlace verás cómo activar estos servicios en Windows Feature.

http://www.trishtech.com/2014/10/enable-tftp-telnet-in-windows-10/.

También necesitamos tener un rango de IP compatible con 192.168.1.128 por lo que hay que definir una IP con este rango, como 192.168.1.129 

Una vez que tenemos los servicios activados sólo tenemos que ir al prompt Shell de Windows. También conocido como CMD. 

Shell of Windows - Cargar un sketch a un PLC Industrial usando Ethernet

Allí sólo tendremos que ir a la ruta del archivo .bin utilizando el comando "cd". Esta operación se hará dos veces (en dos avisos diferentes). si vamos a utilizar el restablecimiento remoto. (Ten en cuenta si puedes hacer un reset remoto, visita estelink para más información).

Una vez que estamos preparados, teniendo el CMD en el directorio correcto sólo podemos enviar el archivo binario mediante un comando. Para tener éxito el PLC va a recibir el código que tiene que estar booteando. El PLC está booteando en el momento en que se reinicia por lo que es realmente importante enviar el archivo binario justo después de que reiniciemos.

Para el reinicio remoto, utilizaremos los siguientes comandos en el prompt.

->Telnet
->open 192.168.1.128 open
a


Para el reinicio remoto - Cargar un sketch a un PLC Industrial usando Ethernet

Para subir el código binario utilizaremos el siguiente comando.

tftp -i Host PUT sketch.bin
  •            Host -> 192.168.1.128 La IP del booloader
  •           sketch.bin -> sketch_nov20a.ino.bin El sketch que queremos subir

 Cargar el código binario - Cargar un sketch a un PLC Industrial usando Ethernet

Ahora el código se carga en el PLC.

Pueden aparecer algunos contratiempos que pueden hacer fallar esta comunicación tftp. El principal problema es el Firewall de Windows. Así que si sigues todos los pasos y al momento de querer enviar el archivo binario no responde tal vez el firewall de Windows sea el responsable. En nuestro caso, tuvimos que desactivar el firewall de Windows para poder lograr esta subida.

Linux

 

En primer lugar, es necesario tener el cliente tftp y Telnet. Tendremos que descargarlo utilizando el siguiente comando:

sudo apt-get install tftp 
sudo apt-get install telnet

Después necesitamos establecer una IP estática si no la tenemos habiendo conectado ya el cable Ethernet que conecta el PC y el PLC para crear una interfaz para esta red. 

Ahora todo está preparado para cargar el código en el PLC.

Así que tenemos que abrir 1 terminal (2 si vas a hacer el reinicio remoto. Compruebe el link ).

El resultado final sería algo así si estamos usando el reset remoto, si no sólo necesitaremos el terminal adecuado. Veremos cómo nos ponemos a ello.

resultado final - Cargar un sketch a un PLC Industrial usando Ethernet  

Restablecimiento a distancia

El comando que utilizaremos para enviar el reinicio remoto es el siguiente:

$ telnet HOST PORT
$ a

HOST -> IP para hablar, en mi caso 192.168.1.211

PUERTO -> Puerto para establecer la comunicación. Por defecto 2000.

comando que utilizaremos para enviar el reinicio remoto

A remote reset will be not possible if an sketch like the example in the link above is not already uploaded to the PLC. To upload the sketch for the first time, a manual reset or a USB cable must be used because you will not be able to reach telnet.

Cliente TFTP

Para usar el cliente tftp necesitamos establecer algunas funcionalidades en el cliente tftp.

Tendremos que utilizar los siguientes comandos:

$ tftp HOST PORT
mode octet
trace
verbose
put sketch.bin

HOST ->   IP of the bootloader, as the Readme from the bootloader says, 192.168.1.128

PORT -> Port to establish the communication. By default 69.

Podemos entrar en el momento en que hemos hecho un reset en el PLC ya sea un reset remoto o un reset manual. Si lo conseguimos veremos como se envía el fichero binario.

 archivo binario - Cargar un sketch a un PLC Industrial usando Ethernet

Ahora tendremos el código cargado en el PLC.

If not, a "Transfer timed out." message will appear. This can be solve by resetting the PLC and trying again. If the message keeps appearing, check you have done all the steps correct.


Buscar en nuestro blog

Cargar un sketch a un PLC Industrial usando Ethernet - Paso 3 - Cliente TFTP
Alejandro Jabalquinto 24 de diciembre de 2018

¿Estás buscando tu Controlador Lógico Programable ideal?

Echa un vistazo a esta comparativa de producto de varios controladores industriales basados en Arduino.

Comparamos entradas, salidas, comunicaciones y otras especificaciones con las de los equipos de otras marcas destacadas.


Industrial PLC comparison >>>