# Technik

Python-Snap7 Bit-Toggel

In den Beiträgen „OpenSource Webvisualisierung für Siemens S7“ Berichtete ich schon über python-snap7.
Die ersten Tests zeigen, das alles Handelbar aber trotzdem immer wieder Neu-Land für mich ist. Hier ein kleiner Auszug über das Toggeln eines Bits in Python mit Snap7:

test_value_1 = [int('00000000', 2)]
test_bytes_1 = bytearray(test_value_1) #Leere Array anlegen

print("Toogle!")
test_bytes_1 = self.client.db_read(41, 0, 1) #Lesen des DB41.DBW0
value = snap7.util.get_bool(test_bytes_1, 0, 2) #Prüfe ob DB41.DBX0.2 gesetzt
if value == 1: #Wenn True
	print ("Value = 1")
	writevalue = 0
else: #Wenn False
	print ("Value = 0")
	writevalue = 1
snap7.util.set_bool(test_bytes_1, 0, 2, writevalue) #Setzte DB41.DBX0.2 in DB41.DBW0 auf entsprechenden Wert....
self.client.db_write(41, 0, test_bytes_1) Übertrage DB41.DBW0 in SPS