Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Industrietechnik

Anschließen von PLCnext-SPSen an Remote-RS232/RS485 über Pseudo-TTY

In diesem Makers-Blog-Artikel diskutieren wir die Möglichkeiten und Vorteile, die ein Com-Server für die PLCnext-Plattform bietet.

Einführung

Die Erweiterungsmodule, die Phoenix Contact für seine SPSen anbietet, können beispielsweise serielle Adapter sein wie:

Eines haben alle Erweiterungsmodule gemeinsam:Sie können zyklisch über Prozessdaten angesprochen werden. Dies bietet die Möglichkeit, von unserer Echtzeitanwendung aus direkt mit dem seriellen Gerät zu interagieren.

In einigen Fällen ist dies nicht das, was wir wollen. Stattdessen wollen wir vorhandene (C/C++) Bibliotheken wiederverwenden und brauchen den Echtzeitkontext nicht. Wir werden jedoch feststellen, dass diese Bibliotheken normalerweise so programmiert sind, dass sie direkten Zugriff auf eine COM- oder TTY-Schnittstelle haben.

Es gibt zwei Möglichkeiten, eine TTY-Schnittstelle für einen PLCnext Control zu erstellen :

  1. Implementieren Sie einige Funktionen (C++ / C#), die eine TTY-Schnittstelle für die seriellen AXL- oder IL-Adapter innerhalb von PLCnext Runtime erstellen .
  2. Verwendung von COM-Server-Geräten wie dem GW Device Server

Die GW Device Server stellt einen transparenten TCP to Serial bereit Schnittstelle. Mit Hilfe eines Tools wie Socat Wir können den Serial/TCP-Verkehr direkt an eine Pseudo-TTY-Schnittstelle weiterleiten. Mit GW Device Server bietet auch die Möglichkeit, mit dem seriellen Gerät an entfernten Standorten über einen TLS-verschlüsselten Kanal zu kommunizieren.

HINWEIS

In diesem Tutorial tritt die SPS als Client auf und stellt eine Verbindung zu einem GW Device Server her .

(Es ist aber auch möglich die SPS Socat umzuschalten zu einer Abhöroption hinzufügen und das GW als Client aktiv mit der SPS verbinden lassen.)

Einrichtung

Einrichten des GW-Geräteservers

Wir verbinden uns mit GW Device Server über das Web Based Management. Die Standard-IP-Adresse von GW Device Server ist 192.168.254.254.

Wir verwenden die folgenden Einstellungen:

LAN-Einstellungen – Sicherheit
Serieneinstellungen

Testen des GW-Geräteservers

Um zu testen, ob wir den GW Device Server eingerichtet haben Richtig, zuerst verbinden wir unsere SPS mit der GW Device Server über Ethernet. Dann verbinden wir die beiden DSUB-Adapter des GW Device Server miteinander.

Mit dem Tool Telnet können wir die Einrichtung schnell testen . Mit diesem Tool können wir Daten von der SPS an GW Device Server senden an Port8000/COM1 durch das serielle Kabel an Port8001/COM2 und schließlich wieder an der SPS empfangen.

Wir verwenden die folgenden Befehle:

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

Gebäude Socat

Um Socat zu erstellen einfach auf einem Linux-Betriebssystem verwenden wir die folgenden Befehle:

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

Bereitstellen und Installieren von Socat

Um den Socat bereitzustellen Installation führen wir das folgende Skript aus:

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"

Nach dem Deployment können wir jetzt ssh zu unserem PLC. Daher bereiten wir zuerst die SPS vor, indem wir die Verzeichnisse und Konfigurationsdateien einrichten, indem wir die folgenden Befehle ausführen:

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

Jetzt ändern wir den socat.conf Datei, um die Parameter der seriellen Schnittstelle nach unseren Bedürfnissen zu konfigurieren.

nano /etc/default/socat/socat.conf

Der Inhalt der Datei sieht folgendermaßen aus.

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=""

Wenn wir weitere Parameter ändern müssen, müssen wir auch SocatDaemon ändern Datei. Weitere Informationen zu TTY-Parametern finden Sie in den stty-Manpages.

Jetzt erstellen wir eine SocatDaemon Datei, um sich automatisch mit GW Device Server zu verbinden mit einem Socat Dämon.

HINWEIS:

Diese SocatDaemon-Datei ist ein Beispiel ohne Fehler-/Verbindungsabbruchmanagement etc. bitte.

nano /etc/init.d/SocatDaemon

Die Datei hat folgenden Inhalt. (Klicken Sie hier, um den Code anzuzeigen/auszublenden)

Nachdem alle Konfigurationsdateien vorhanden sind, können wir mit der Einrichtung von Socat fortfahren Binärdateien und Registrieren des 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

Wenn alles richtig eingerichtet ist, können wir den laufenden Daemon mit einem Befehl wie ps -e | grep socat sehen . Wir können auch den Socat überprüfen Protokolle unter cat /var/log/socat.log .

Zugriff auf die TTY-Schnittstelle von einem Terminal aus

Jetzt können wir Nachrichten über die TTY-Schnittstelle senden.

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

Um das Pseudo-TTY kontinuierlich zu testen, können wir einen Befehl wie

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

Eingehender Datenverkehr kann durch Ausführen von cat /dev/GWDeviceServer angezeigt werden . Jetzt kann jede Anwendung auf das mit dem GW Device Server verbundene serielle Gerät zugreifen, als ob es direkt mit der SPS verbunden wäre.


Industrietechnik

  1. SPS für Antriebe in der Industrie
  2. Was ist PCB via Tenting?
  3. Cloud-Überwachung, ein Fernsteuerungssystem
  4. 5 Vorteile der Fernsteuerung der Produktion
  5. Remote-gRPC mit grpcurl
  6. Verwalten eines PLCnext Control-Geräts über SNMP
  7. Clusterverwaltung auf PLCnext?
  8. PLCnext Tableau-Dashboard
  9. PLCnext Power BI-Berichte
  10. PLCnext Grafana-Dashboards