Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Technologie industrielle

Connexion des automates PLCnext au RS232/RS485 distant via un pseudo TTY

Dans cet article du Makers Blog, nous discutons des possibilités et des avantages qu'un serveur Com offre à la plate-forme PLCnext.

Présentation

Les modules d'extensions que Phoenix Contact propose pour ses automates peuvent par exemple être des adaptateurs série comme :

Tous les modules d'extension ont un point commun :ils sont accessibles cycliquement via les données de processus. Cela offre la possibilité d'interagir directement avec le périphérique série à partir de notre application en temps réel.

Dans certains cas, ce n'est pas ce que nous voulons. Au lieu de cela, nous voulons réutiliser les bibliothèques existantes (C/C++) et n'avons pas besoin du contexte en temps réel. Cependant, nous constaterons que ces bibliothèques sont généralement programmées pour avoir un accès direct à une interface COM ou TTY.

Il existe deux options pour créer une interface TTY pour un PLCnext Control :

  1. Mettre en œuvre certaines fonctions (C++/C#) qui créent une interface TTY pour les adaptateurs série AXL ou IL depuis l'intérieur du PLCnext Runtime .
  2. Utilisation d'appareils COM-Server tels que le serveur d'appareils GW

Le GW Device Server fournit un TCP to Serial transparent interface. Avec l'aide d'un outil comme Socat nous pouvons transférer le trafic série/TCP directement vers une interface pseudo TTY. Utilisation de GW Device Server offre également la possibilité de communiquer avec le périphérique série sur des sites distants via un canal crypté TLS.

REMARQUE

Dans ce tutoriel, l'automate fonctionne en tant que client et établit une connexion à un GW Device Server .

(Cependant, il est également possible de commuter l'automate Socat à une option d'écoute et que le GW en tant que client se connecte activement à l'automate.)

Configuration

Configuration du serveur de périphériques GW

Nous nous connectons au GW Device Server via la gestion basée sur le Web. L'adresse IP par défaut du GW Device Server est 192.168.254.254.

Nous utilisons les paramètres suivants :

Paramètres LAN - Sécurité
Paramètres série

Test du serveur de périphériques GW

Pour tester si nous avons mis en place le GW Device Server correctement, nous connectons d'abord notre automate au GW Device Server via Ethernet. Puis on connecte les deux adaptateurs DSUB du GW Device Server les uns avec les autres.

Nous pouvons rapidement tester la configuration à l'aide de l'outil Telnet . Avec cet outil, nous pouvons envoyer des données de l'automate vers le GW Device Server à Port8000/COM1 via le câble série à Port8001/COM2 et enfin le recevoir à l'automate.

Nous utilisons les commandes suivantes :

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

Bâtiment Socat

Pour construire Socat facilement sur un système d'exploitation Linux, nous utilisons les commandes suivantes :

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

Déployer et installer Socat

Pour déployer le Socat installation, nous exécutons le script suivant :

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"

Après le déploiement, nous pouvons maintenant nous connecter en ssh à notre automate. Par conséquent, nous préparons d'abord l'automate en configurant les répertoires et les fichiers de configuration en exécutant les commandes suivantes :

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

Maintenant, nous modifions le socat.conf fichier pour configurer les paramètres de l'interface série à nos besoins.

nano /etc/default/socat/socat.conf

Le contenu du fichier ressemble à ceci.

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 nous devons modifier d'autres paramètres, nous devrons également modifier le SocatDaemon dossier. Vous trouverez plus d'informations sur les paramètres TTY dans les pages de manuel stty.

Maintenant, nous créons un SocatDaemon fichier pour se connecter automatiquement au GW Device Server en utilisant un Socat démon.

REMARQUE :

Ce fichier SocatDaemon est un exemple sans gestion des erreurs/déconnexions, etc. s'il vous plaît.

nano /etc/init.d/SocatDaemon

Le fichier a le contenu suivant.(cliquez pour voir/masquer le code)

Maintenant que tous les fichiers de configuration sont en place, nous pouvons continuer en configurant le Socat binaires et enregistrement du Socat démon.

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 tout est correctement configuré, nous pouvons voir le démon en cours d'exécution à l'aide d'une commande telle que ps -e | grep socat . On peut aussi vérifier le Socat journaux situés au cat /var/log/socat.log .

Accéder à l'interface TTY depuis un terminal

Nous pouvons maintenant envoyer des messages via l'interface TTY.

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

Pour tester en continu le pseudo TTY, nous pouvons utiliser une commande comme

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

Le trafic entrant peut être affiché en exécutant cat /dev/GWDeviceServer . Désormais, n'importe quelle application peut accéder au périphérique série connecté au serveur de périphériques GW comme s'il était directement connecté à l'automate.


Technologie industrielle

  1. API pour entraînements dans l'industrie
  2. Qu'est-ce que le PCB Via Tenting ?
  3. Cloud monitoring, un système de contrôle à distance
  4. 5 avantages du contrôle de production à distance
  5. gRPC distant à l'aide de grpcurl
  6. Gestion d'un équipement PLCnext Control via SNMP
  7. Gestion de cluster sur PLCnext ?
  8. Tableau de bord PLCnext
  9. Rapports PLCnext Power BI