Hallo,
wir haben auch das Kunbus Modbus TCP GATEWAY Modul verwendet, und ich finde es schade, dass das Produkt aufgelassen wurde. Warum wurde es abgekündigt?
Wir werden ev. auch die Modbus TCP Komponente mit einem Core S realisieren. Ev. werden wir aber die Buskopplung in Zukunft mit einem anderen Produkt umsetzen.
Sei wie es sei. So haben wir einen möglichen Umstieg realisiert. Verbesserungsvorschläge sind gerne willkommen, da dies mein erster Kontakt mit einem RevPi Basismodul war.
Beispiel Modbus TCP <-> Profinet:
Konfiguration PiCtory:
Jeweils „Export“ der ersten Input und ersten Output Variable vom Gateway und vom Modbus Slave anklicken, um die „absoluten Adressen im Prozessabbild?“ zu erhalten.
- PiCtory_Profinet_Kopplung.png (232.11 KiB) Viewed 16103 times
Mit diesem Python Prog. werden die Daten im Prozessabbild zwischen Gateway und CoreS kopiert:
Code: Select all
#!/usr/bin/python3
import time
#LED ein- und ausschalten
f=open("/dev/piControl0","wb+",0)
while True:
try:
# Modbus TCP (Unitronics) -> Profinet
# 288 Byte an Daten
f.seek(1035)
x = f.read(288)
f.seek(512)
f.write(x)
time.sleep(0.5)
# Profinet -> Modbus TCP (Unitronics)
# 64 Byte an Daten
f.seek(128)# 128 Byte offset wegen 64Byte Modul im TIA
x = f.read(64)
f.seek(2059)
f.write(x)
time.sleep(0.5)
except ValueError:
time.sleep(50)
Das Python Prog. wurde im Verzeichnis "/var/lib/revpipyload" als „program.py“ ablegen, damit es automatisch gestartet wird.
Müssen wir uns wegen der Datenkonsistenz Gedanken machen? 32 Bit Zählerstände sind die „größte“ Einheit die nicht getrennt übertragen werden soll?