Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Tecnología Industrial

Conexión de PLCnext a RS232/RS485 remoto a través de pseudo TTY

En este artículo del Makers Blog, discutimos las posibilidades y ventajas que proporciona un servidor Com a la plataforma PLCnext.

Introducción

Los módulos de ampliación que ofrece Phoenix Contact para sus PLC pueden ser, por ejemplo, adaptadores serie como:

Todos los módulos de extensiones tienen algo en común:se puede acceder a ellos cíclicamente a través de datos de proceso. Esto brinda la posibilidad de interactuar directamente con el dispositivo serie desde nuestra aplicación en tiempo real.

En algunos casos esto no es lo que queremos. En su lugar, queremos reutilizar las bibliotecas existentes (C/C++) y no necesitamos el contexto en tiempo real. Sin embargo, encontraremos que estas bibliotecas generalmente están programadas para tener acceso directo a una interfaz COM o TTY.

Hay dos opciones para crear una interfaz TTY para un PLCnext Control :

  1. Implemente algunas funciones (C++/C#) que crean una interfaz TTY para los adaptadores seriales AXL o IL desde dentro del PLCnext Runtime .
  2. Uso de dispositivos COM-Server como GW Device Server

El GW Device Server proporciona un TCP to Serial transparente interfaz. Con la ayuda de una herramienta como Socat podemos reenviar el tráfico Serial/TCP directamente a una interfaz pseudo TTY. Usando GW Device Server también brinda la posibilidad de comunicarse con el dispositivo serial en ubicaciones remotas a través de un canal encriptado TLS.

NOTA

En este tutorial, el PLC actúa como cliente y establece conexión a un GW Device Server .

(Sin embargo, también es posible cambiar el PLC Socat a una opción de escucha y hacer que el GW como cliente se conecte activamente al PLC).

Configuración

Configuración del servidor de dispositivos GW

Nos conectamos al GW Device Server a través de la gestión basada en web. La dirección IP predeterminada del GW Device Server es 192.168.254.254.

Usamos la siguiente configuración:

Configuración de LAN - Seguridad
Configuración de serie

Prueba del servidor de dispositivos GW

Para probar si hemos configurado el GW Device Server correctamente, primero conectamos nuestro PLC al GW Device Server a través de Ethernet. Luego conectamos los dos adaptadores DSUB del GW Device Server entre sí.

Podemos probar rápidamente la configuración usando la herramienta Telnet . Con esta herramienta podemos enviar datos desde el PLC al GW Device Server en Port8000/COM1 a través del cable serial a Port8001/COM2 y finalmente recíbalo en el PLC.

Usamos los siguientes comandos:

ssh [email protected]
sudo passwd root
su root
ip addr add 192.168.254.10 dev eth0
telnet 192.168.254.254 8000
## open another shell session
telnet 192.168.254.254 8001
# Type some messages

Edificio Socat

Para construir Socat fácilmente en un sistema operativo Linux, usamos los siguientes comandos:

mkdir tmp
cd tmp
git clone git://repo.or.cz/socat.git
cd socat

## TODO: Modify to your SDK location
source /opt/pxc/release/axcf2152/2020/0/environment-setup-cortexa9t2hf-neon-pxc-linux-gnueabi
. /opt/pxc/release/axcf2152/2020/0/site-config-cortexa9t2hf-neon-pxc-linux-gnueabi

mkdir install
autoconf
./configure $CONFIGURE_FLAGS --prefix=$(pwd)/install --enable-openssl-method
make -j2
make install

Implementación e instalación de Socat

Para implementar el Socat instalación, ejecutamos el siguiente script:

cd tmp
mkdir -p deploy
cd deploy
mkdir -p usr
cp -r ../../Daemon/* .
cp -r ../socat/install/* usr/

# Create package
tar -cf ../socat-binaries.tar .
cd ..
scp socat-binaries.tar [email protected]:~/
ssh -ttt [email protected] \
"mkdir -p /opt/plcnext/socat-binaries && \
tar -xf /opt/plcnext/socat-binaries.tar -C /opt/plcnext/socat-binaries"

Después de la implementación, ahora podemos ssh a nuestro PLC. Por lo tanto, primero preparamos el PLC configurando los directorios y archivos de configuración ejecutando los siguientes comandos:

deploy$ ssh [email protected]

[email protected]:~$ su root
[email protected]$ mkdir -p /etc/default/socat
[email protected]$ touch /etc/default/socat/socat.conf
[email protected]$ touch /etc/init.d/SocatDaemon

Ahora, modificamos el socat.conf archivo para configurar los parámetros de la interfaz serial a nuestras necesidades.

nano /etc/default/socat/socat.conf

El contenido del archivo se ve así.

TARGETIP="192.168.254.254"
TARGETPORT="8000"
TTYNAME="/dev/ttyGWDeviceServer"
OPTIONS="pty,link=$TTYNAME tcp-connect:$TARGETIP:$TARGETPORT,forever,interval=15"

BAUD="9600"
PARITY=""
DATABITS="csN 8"
STOPBITS="-cstopb"
FLOWCONTROLL=""

Si necesitamos modificar más parámetros, tendremos que modificar también el SocatDaemon expediente. Puede encontrar más información sobre los parámetros de TTY en las páginas del manual de stty.

Ahora creamos un SocatDaemon archivo para conectarse automáticamente al GW Device Server usando un Socat demonio.

NOTA:

Este archivo SocatDaemon es un ejemplo sin gestión de errores/desconexión, etc., por favor.

nano /etc/init.d/SocatDaemon

El archivo tiene el siguiente contenido. (haga clic para ver/ocultar código)

Ahora que todos los archivos de configuración están en su lugar, podemos continuar configurando el Socat binarios y registrando el Socat demonio.

chmod +x /etc/init.d/SocatDaemon
cd /opt/plcnext/socat-binaries
chmod +x usr/bin/*

cp -r usr /

update-rc.d -s -v SocatDaemon 99
/etc/init.d/SocatDaemon start

Si todo está configurado correctamente, podemos ver el demonio en ejecución usando un comando como ps -e | grep socat . También podemos comprobar el Socat registros ubicados en cat /var/log/socat.log .

Acceso a la interfaz TTY desde un terminal

Ahora podemos enviar mensajes a través de la interfaz TTY.

sudo echo "PLC to GW $var" > /dev/GWDeviceServer

Para probar continuamente el pseudo TTY, podemos usar un comando como

while true; do sleep 5 && sudo echo "PLC to GW $var" >/dev/ttyUSB0 && var=$((var+1)); done

El tráfico entrante se puede mostrar ejecutando cat /dev/GWDeviceServer . Ahora cualquier aplicación puede acceder al dispositivo serie conectado al servidor de dispositivos GW como si estuviera conectado directamente al PLC.


Tecnología Industrial

  1. PLC para accionamientos en la industria
  2. ¿Qué es PCB a través de tiendas de campaña?
  3. Monitoreo en la nube, un sistema de control remoto
  4. 5 ventajas del control remoto de la producción
  5. gRPC remoto usando grpcurl
  6. Gestión de un dispositivo PLCnext Control a través de SNMP
  7. ¿Gestión de clústeres en PLCnext?
  8. Tablero PLCnext de Tableau
  9. Informes de PLCnext Power BI
  10. Paneles de PLCnext Grafana
  11. Aplicación Java en PLCnext Control