von RasPi codesys 3.5.20.40 nach FremdSPS Merkerbeschreiben über TCP/IP

tomcat

Level-2
Beiträge
5
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
es soll eine Conexio SPS mit einem Real Wert gefüttert werden.
Kommunikation über TCP/IP nur schreiben von Raspi codesys nach Conexio auf Merker M237

---http://192.168.2.24/api/?action=set&marker=M237&value=(rUmrichterstrom) --

rUmrichterstrom = REAL := (Stromwert in Ampere)

RasPi und Conexio im gleichen Netz -Raspi 192.168.120.13 ---> 192.168.2.24/24

obiger Link funktioniert über Browser
wie kann ich das aus codesys heraus an die SPS senden?
muss dies zum ersten mal machen und habe keine Idee
mit der Fremd SPS hab ich nichts am Hut und kann keine Anpassungen machen
 
vielen Dank für den Hinweis -Web Client funktioniert -im Testbetrieb

Nachteil kostet €70 pro SPS
geht das auch kostenneutral?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
vielen Dank für den Hinweis -Web Client funktioniert -im Testbetrieb

Nachteil kostet €70 pro SPS
geht das auch kostenneutral?
Erst einmal pip3 install requests in der bash

Python Skript erstellen in z.B /home/pi/set_merker.py

Code:
import sys
import requests

# Übergabe des Werts per Argument
value = sys.argv[1]
url = f"http://192.168.2.24/api/?action=set&marker=M237&value={value}"

try:
    r = requests.get(url)
    print(r.status_code)
except Exception as e:
    print("Fehler:", e)

Dann ausführbar machen
chmod +x /home/pi/set_merker.py

Die Lib SysProcess einbinden im codesys und dann abfeuern.

Code:
PROGRAM PLC_PRG
VAR
    rUmrichterstrom : REAL := 12.34; // dein Messwert
    cmdLine : STRING(255);
    xSend : BOOL := FALSE;
    hProcess : RTS_IEC_HANDLE;
    result : RTS_IEC_RESULT;
END_VAR

IF xSend THEN
    cmdLine := CONCAT('/usr/bin/python3 /home/pi/set_merker.py ', REAL_TO_STRING(rUmrichterstrom));
    hProcess := SysProcessExecuteCommand2(cmdLine, ADR(result));
    xSend := FALSE;
END_IF
 
Zurück
Oben