Paso A Paso IOT2000
Paso A Paso IOT2000
Paso A Paso IOT2000
INDICE
• Materiales Necesarios------------------------------ Hoja 3
15
P a g e 2 | 33
Materiales Necesarios
• Tarjeta MicroSD (tamaño mínimo 8GB, tamaño máximo 32GB)
• 2 cables Ethernet
• Fuente de Alimentación
• SIMATIC IOT2040
• Conexión a Internet
• Scalance M874-3
P a g e 3 | 33
Registro en el foro Siemens y descarga de archivos necesarios
En primera instancia, Siemens provee la imagen de firmware que necesitaremos para el
MicroSD el cual contiene el sistema operativo Yocto Linux con configuraciones útiles para
proyectos con el IOT2040. En resumen, nos registraremos y descargaremos la imagen para el
dispositivo SIMATIC IOT2040.https://support.industry.siemens.com/tf/ww/en/conf/60/
https://support.industry.siemens.com/cs/document/109741799/simatic-iot2000-sd-card-
example-image?dti=0&lc=en-WW
P a g e 4 | 33
Descarga de DiskImager y carga de imagen en SD
Luego de la descarga de la imagen en la PC, debe ser instalada para posteriormente ser
introducida en el IOT2040. Para cargar la imagen se necesita el programa Win32DiskImager.
https://sourceforge.net/projects/win32diskimager/
Una vez instalada con éxito, se procede a abrir el programa, seleccionamos el archivo.wic de
la imagen (descomprimimos él .zip de la imagen) y lo ubicamos en donde fue guardado, se
especifica en que unidad se encuentra la tarjeta MicroSD y se carga la imagen.
Nota: Para escribir la imagen en la tarjeta MicroSD debe estar vacía, en caso de no ser así
formatearla.
En caso de una operación fallida se recomienda formatear desde las propiedades de Windows
en la sección de almacenamiento (administrador de discos) o desde un programa externo.
P a g e 5 | 33
La escritura de la imagen toma un par de minutos
Una vez cargada la imagen se puede observar que el nombre de la tarjeta ha cambiado y dentro de la
misma hay dos carpetas y un archivo.
de discos.
P a g e 6 | 33
Colocación del SD en el IOT
En tercera Instancia, deberemos colocar la tarjeta SD en el SIMATIC IOT2040. Las siguientes
Se puede observar el slot donde se colocará el MicroSD Se observa en que posición se colocará el
MicroSD
P a g e 7 | 33
Luego de ser colocada, se alimenta el dispositivo a través del puerto X80. Se encenderá el led
PWE indicando que el dispositivo esta alimentado, y unos segundos después se encenderá el
led USB que indica el estado del IOT.
Para acceder al IOT2040 se conecta un cable ethernet desde el puerto X1 al PC. Por defecto
el dispositivo tiene asignada la IP “192.168.200.1”. Para que nuestro PC pueda detectarlo.
Debe ubicarse en la misma red IP. Para modificar la red del PC seguiremos los siguientes
pasos.
Panel de control -> Redes e Internet -> Centro de redes y recursos compartidos.
P a g e 8 | 33
En el menú de la izquierda, clic en Cambiar configuración del adaptador.
P a g e 9 | 33
Clic con el botón derecho en Conexión de área local o Local Area Connection.
Se introduce:
P a g e 10 | 33
Con la herramienta Putty configuramos una conexión por SSH al dispositivo. Para ello, el
dispositivo debe estar conectado mediante cable ethernet al PC.
En la primera conexión del dispositivo aparece una alerta de seguridad.
Dentro de la interfaz, el usuario para iniciar sesión es root. Por defecto no tiene configurada
ninguna contraseña de acceso por lo tanto que directamente entraría en el terminal de Linux
del dispositivo. Para configuraciones adicionales tales como usuario/contraseña, interfaces,
direcciones IP, etc., a través del comando “iot2000setup” se accede a un menú que permite
realizar estos ajustes.
allow-hotplug wlan0
auto wlan0
iface wlan0 inet dhcp
wpa-conf /etc/wpa_supplicant.conf
P a g e 11 | 33
Ctrl + X -> Y para guardar las modificaciones del archivo
Allow-hotplug wlan0 es para permitir detectar eventos de conexión o desconexión de
hardware (cable, usb, etc.) en la interfaz, auto wlan0 inicia automáticamente la interfaz
cuando se inicia el dispositivo, iface wlan0 inet dhcp indica que se le va a asignar una
dirección IP dinámica, y wpa-conf /etc/wpa_supplicant.conf indica el directorio en el que
se encuentra el archivo de configuración de la interfaz.
Luego, indicamos la conexión Wifi que vamos a utilizar a través del archivo
wpa_supplicant.conf.
Comando “cd /etc”
P a g e 12 | 33
Nota: podremos proveerle Wifi al dispositivo mediante un cable usb/micro usb conectado al
celular.
NODO TIPO
S7 Input
P a g e 13 | 33
FUNCTION Function
SWITCH Function
DEBUG Output
E-mail Social
Todos vienen instalados por defecto con node-red, excepto el nodo S7, que debemos
instalarlo.
Lo instalaremos a través de Node-Red. Para la instalación es necesario que el dispositivo
tenga conexión a internet:
Menú esquina superior derecha -> Manage palette
Menú de la izquierda -> Pestaña Install -> Buscar “node-red-contrib-s7” -> Install
P a g e 14 | 33
Una vez se ha instalado -> Done
En este caso no es necesario reiniciar el dispositivo.
Nodo S7: Con doble clic se accede a la configuración del nodo. El primer paso es añadir la
conexión al PLC. Para ello pulsamos sobre el icono de modificar a la derecha de Add new s7
endpoint.
P a g e 15 | 33
Aparecen 2 pestañas; la primera para definir la conexión y la segunda para definir las
variables a leer. Colocar la IP “192.168.200.20”.
P a g e 16 | 33
En este caso la dirección IP es “172.168.200.20”, el rack es 0 y el slot es 1.
Importante: En el PLC debemos habilitar el acceso vía comunicación PUT/GET. Para ello en
el menú inferior vamos a General -> Protección & Seguridad -> Mecanismos de conexión -
> Permitir acceso vía comunicación PUT/GET del interlocutor remoto.
Para configurar las variables a leer debemos conocer el tipo de variable, el DB y la región de
memoria que ocupan dichas variables en el PLC. Para ello, lo más sencillo y recomendable es
P a g e 17 | 33
crear un DB en el programa del PLC en el que agrupemos todas las variables que queremos
leer a través del IOT.
Una vez hemos terminado de añadir las variables, clic en Add. Luego activaremos una opción.
Al finalizar, en el menú del nodo seleccionamos el modo All variables, y clic en Done.
P a g e 18 | 33
Configuración de Node-Red
Nodo function
En este nodo vamos a programar una función sencilla que compruebe cuántas botellas se han
producido y que en el momento en el que se llegue a las 4000 habilite la notificación. Además,
vamos a definir el texto de la notificación.
Con doble clic accedemos al nodo. El apartado “Name” es para dar un nombre a la función
para que desde el Workspace podamos identificar qué hace el nodo, este nombre solo es
informativo. En el cuerpo de la función copiamos el siguiente texto:
if (msg.payload == 4000){
msg.notificar = 1;
msg.topic = "Botellas producidas"
msg.payload = "Le informamos de que ya se han producido 4000 botellas y los niveles de
los tanques son los siguientes: \n\n Tanque 1: " + msg.payload.nivel_tanque_1 +"% \n
Tanque 2: " + msg.payload.nivel_tanque_2 + "% \n Tanque 3: " +
msg.payload.nivel_tanque_3 + "% \n\n Un saludo, \n PLC.";
}else{
msg.notificar = 0;
}
return msg;
La función comprueba el número de botellas, en caso de que sea 4000, pone la variable
notificar a 1. Como veremos más adelante, el nodo email indica como asunto del correo
electrónico el campo topic, y en el cuerpo del correo envía el contenido del campo payload,
por lo que definimos dichos campos. En caso de que las botellas producidas no sean 1000, la
variable notificar será 0. De esta forma nos aseguramos de que solo envía un correo
electrónico.
P a g e 19 | 33
Nodo switch
El nodo switch sirve para definir distintos caminos del flujo en función de alguna variable. En
nuestro caso lo vamos a utilizar para que en caso de que la variable notificar esté a 1 vaya por
un camino, y en caso de que esté a 0 vaya por otro.
Para ello en el campo property, borramos payload y escribimos notificar, que es el campo que
nos dice si hay que enviar email o no. En cuanto a las posibles ramas, en la primera
cambiamos el tipo de string a number y le damos valor 1, y añadimos una segunda para el
valor 0, y done. Ahora en la salida del nodo switch aparece una segunda rama.
Nodo debug.
El nodo debug se utiliza para mostrar mensajes en la pestaña debug o en la ventana de
comandos. En nuestro caso lo vamos a utilizar para que en los casos en los que no haya que
notificar por email, nos muestre todas las variables y podamos ver cómo va la producción.
Para ello, doble clic para acceder a la configuración del nodo, en output seleccionamos
complete msg object, y en to seleccionamos debug tab o debug tab and console en función de
si queremos que muestre los mensajes en la columna debug o en la columna y en la ventana
de comandos.
P a g e 20 | 33
Nodo email.
La configuración del nodo email es bastante sencilla. Debemos rellenar los datos del
destinatario y del remitente. En el caso del destinatario, únicamente hace falta la dirección de
correo electrónico. Para el caso del remitente, necesitamos conocer el servidor de correo
electrónico y el puerto, para el caso de Gmail ya viene indicado. Además, se debe indicar el
usuario y contraseña del correo electrónico. Debemos pensar que el envío de correo
electrónico se hace de la misma forma en la que se hace manualmente, hay que acceder a la
cuenta, redactar el correo y enviarlo, por ello, necesitamos indicar el usuario y la contraseña ,
para que nuestro programa pueda acceder a él.
P a g e 21 | 33
Nota: En caso de ser Gmail.
Una vez conectados los nodos, se pulsa Deploy en la esquina superior derecha para compilar
el programa. Si hemos seguido todos los pasos correctamente, la compilación debería ser
satisfactoria. En cambio, si vamos a la pestaña debug del menú derecho, aparece un error de
conexión al PLC.
Para poder conectar el PLC al IoT2040, debemos configurar la interfaz del IoT a la que se va a
conectar el PLC.
P a g e 22 | 33
En este caso entramos en la opción Configure Interfaces
- Vamos a la interfaz eth1 y la modificamos introduciendo la IP que le vamos a asignar al
puerto, es decir, “172.168.200.1”
P a g e 23 | 33
OPC_UA Ejemplo A
Las Librerias del OPC_UA se instalarán de la misma forma que el S7.
NODO
OPC UA CLIENT
INJECT
GAUGE
• OPC_UA_CLIENT (NODO)
P a g e 24 | 33
Luego de agregar la IP , configuraremos el Nodo para que pase a modo de Suscribe, el cual
necesita agregar intervalos de tiempo.
• INJECT (NODO)
P a g e 25 | 33
En la pestaña para editar el nodo elegiremos String en la opción de Payload, al agregar el
NodeID es necesario un valor para el Topic. El cual es
“ns=3,s=”OPC_UA_Values”.”Temperature”.
• GAUGE(NODO)
P a g e 26 | 33
Value Format: “{{value | number 1 }}°C”.
OPC_UA Ejemplo B
Con el programa que tu puedas cargar valores de la variable Mode en el software de los
controladores del S7-1500 con un menú desplegable en la UI de Node-Red. Además de
mostrar el valor actual.
NODO
Dropdown
OPC UA Ítem
P a g e 27 | 33
OPC UA Client x2
Text
• Dropdown (NODO).
Le agregaremos el grupo al que esta asociado y las opciones para elegir.
P a g e 28 | 33
• OPC_UA ITEM(NODO).
Agregaremos el NodeID del valor para escribir en Ítem y Elegiremos el tipo de datos
• OPC_UA CLIENT
Editaremos ambos nodos con una distinta función y le colocaremos la IP y el puerto del
OPC_UA .
P a g e 29 | 33
• TEXT (NODO).
Editaremos el nodo colocando el grupo asociado y el diseño de cómo será visualizado.
P a g e 30 | 33
Al Finalizar de editar los nodos, le daremos a Deploy y luego iremos a UI.
Configuración S7 (Node-Red)
NODO
Storage
S7
• S7 (NODO).
Utilizaremos el Nodo configurado anteriormente.
• STORAGE
Configuraremos el nombre del archivo y la acción.
Contenido Adicional
OPC-UA (Links Relacionados)
Topic
1 SIMATIC IOT2000 forum
www.siemens.com/iot2000-forum
2 SIMATIC IOT2000 Setting Up
https://support.industry.siemens.com/tf/ww/en/posts/155642/
3 SIMATIC IOT2000 Getting Started
https://support.industry.siemens.com/tf/ww/en/posts/155643/
P a g e 32 | 33
Topic
1 Descripción del Nodo S7
https://github.com/plcpeople/nodeS7
Versión
Versión Fecha Modificaciones
P a g e 33 | 33