Modbus ein einfaches Pythonscript

Auf dem Raspberry Pi läuft bei mir die  freie SPS Software Openplc . Ich kann die Ausgänge die nicht von der SPS benutzt werden vom Linuxrechner über mein Heimnetzwerk mit Modbus-TCP steuern. Ich kann den Wert aller Ein und Ausgänge  auslesen (True/False)

Ein einfaches Python-Beispiel für den Raspberry Pi als Client  kommt von Pymodbus.

Pin 8 (Hardware) = %QX0.0 (openPLC) = coil(0) (Modbus)


 from pymodbus.client.sync import ModbusTcpClient
client = ModbusTcpClient('192.168.2.101')
client.write_coil(2, False)
result = client.read_coils(0,5)
reg = client.read_discrete_inputs(0,5)
print "gruene LED"
print result.bits[0]
print "rote LED"
print result.bits[1]
print "gelbe LED"
print result.bits[2]
print "Einschalter"
print reg.bits [2]
print "Ausschalter"
print  reg.bits [3]
client.close()
 

Openplc auf dem Pi kann auch als Master agieren und per Modbus andere Geräte verwalten. z.B einen Arduino .

  • Kenntnisse zum Verstehen des Artikels: LINUX, PYTHON, BASH