Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Tecnologia industrial

Conectando PLCs PLCnext a RS232/RS485 remoto via pseudo TTY


Neste artigo do Makers Blog discutimos as possibilidades e vantagens que um Com Server proporciona à plataforma PLCnext.

Introdução


Os módulos de extensão que a Phoenix Contact oferece para seus PLCs podem ser, por exemplo, adaptadores seriais como:

Todos os módulos de extensão têm algo em comum:podem ser acessados ​​ciclicamente via processdata. Isso oferece a possibilidade de interagir diretamente com o dispositivo serial de nosso aplicativo em tempo real.

Em alguns casos não é isso que queremos. Em vez disso, queremos reutilizar as bibliotecas (C/C++) existentes e não precisamos do contexto em tempo real. No entanto, veremos que essas bibliotecas geralmente são programadas para ter acesso direto a uma interface COM ou TTY.

Existem duas opções para criar uma interface TTY para um PLCnext Control :
  1. Implemente algumas funções (C++ / C#) que criam uma interface TTY para os adaptadores seriais AXL ou IL de dentro do PLCnext Runtime .
  2. Uso de dispositivos COM-Server, como o GW Device Server

O GW Device Server fornece um TCP to Serial transparente interface. Com a ajuda de uma ferramenta como Socat podemos encaminhar o tráfego Serial/TCP diretamente para uma interface pseudo TTY. Usando GW Device Server também oferece a possibilidade de se comunicar com o dispositivo serial em locais remotos por meio de um canal criptografado TLS.

NOTA


Neste tutorial, o CP atua como cliente e estabelece conexão com um GW Device Server .

(No entanto, também é possível alternar o PLC Socat a uma opção de escuta e ter o GW como cliente conectado ativamente ao PLC.)

Configuração

Configurando o servidor de dispositivo GW


Nós nos conectamos ao GW Device Server através do Gerenciamento via Web. O endereço IP padrão do GW Device Server é 192.168.254.254.

Usamos as seguintes configurações:
Configurações da LAN – Segurança
Configurações seriais

Testando o servidor de dispositivo GW


Para testar se configuramos o GW Device Server corretamente, primeiro conectamos nosso PLC ao GW Device Server via Ethernet. Em seguida, conectamos os dois adaptadores DSUB do GW Device Server um com o outro.

Podemos testar rapidamente a configuração usando a ferramenta Telnet . Com esta ferramenta, podemos enviar dados do PLC para o GW Device Server em Port8000/COM1 através do cabo serial para Port8001/COM2 e finalmente recebê-lo de volta no PLC.

Usamos os seguintes 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

Construindo Socat


Para construir Socat facilmente em um sistema operacional Linux, usamos os seguintes 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

Implantando e instalando o Socat


Para implantar o Socat instalação, executamos o seguinte 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"

Após a implantação, agora podemos ssh para nosso PLC. Portanto, primeiro preparamos o CP configurando os diretórios e arquivos de configuração executando os seguintes 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

Agora, modificamos o socat.conf arquivo para configurar os parâmetros da interface serial para nossas necessidades.
nano /etc/default/socat/socat.conf

O conteúdo do arquivo se parece com isso.
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=""

Se precisarmos modificar outros parâmetros, também precisaremos modificar o SocatDaemon Arquivo. Mais informações sobre os parâmetros TTY podem ser encontradas nas páginas do manual stty.

Agora criamos um SocatDaemon arquivo para se conectar automaticamente ao GW Device Server usando um Socat demônio.

OBSERVAÇÃO:


Este arquivo SocatDaemon é um exemplo sem gerenciamento de erros/desconexão etc. por favor.
nano /etc/init.d/SocatDaemon

O arquivo tem o seguinte conteúdo.(clique para ver/ocultar o código)

Agora que todos os arquivos de configuração estão no lugar, podemos prosseguir configurando o Socat binários e registrando o Socat demônio.
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

Se tudo estiver configurado corretamente, podemos ver o daemon em execução usando um comando como ps -e | grep socat . Também podemos verificar o Socat logs localizados em cat /var/log/socat.log .

Acessando a interface TTY de um terminal


Agora podemos enviar mensagens pela interface TTY.
sudo echo "PLC to GW $var" > /dev/GWDeviceServer

Para testar continuamente o pseudo TTY, podemos usar um comando como
while true; do sleep 5 && sudo echo "PLC to GW $var" >/dev/ttyUSB0 && var=$((var+1)); done

O tráfego de entrada pode ser exibido executando cat /dev/GWDeviceServer . Agora qualquer aplicação pode acessar o dispositivo Serial conectado ao GW Device Server como se estivesse conectado diretamente ao CP.

Tecnologia industrial

  1. CLPs para acionamentos na indústria
  2. O que é PCB via Tenting?
  3. Monitoramento em nuvem, um sistema de controle remoto
  4. 5 vantagens do controle remoto de produção
  5. gRPC remoto usando grpcurl
  6. Gerenciando um dispositivo PLCnext Control via SNMP
  7. Clustermangement no PLCnext?
  8. Painel PLCnext Tableau
  9. Relatórios PLCnext Power BI
  10. PLCnext Grafana Dashboards