import hid import snap7 import struct import logging # Configura il logger logging.basicConfig(filename='log.txt', level=logging.DEBUG) plc = snap7.client.Client(lib_location="C:\SIF\Smoke_Analysis\TEMP\FilterWheel\Sorgenti\dll\snap7.dll") plc.connect('192.168.0.1', 0, 1) state = plc.get_cpu_state() logging.debug(f'Stato PLC: {state}') #vendor_id = 0x1278 #product_id = 0x0920 Device = hid.Device(vid=0x1278, pid=0x0920) start_address = 100 length = 1 try: if Device: logging.debug("Ruota Filtri Connessa.") else: logging.warning("Ruota Filtri Disconnessa.") previous_data = None while True: data = Device.read(1) if data: if data[0] != previous_data: logging.info("Filtro Selezionato: %s", data[0]) previous_data = data[0] def writeMemory(start_address, length, data): try: plc.mb_write(start_address, length, bytearray(struct.pack('B', data[0]))) logging.debug("MB100: %s", data[0]) except Exception as e: logging.error(f"Errore durante la scrittura in memoria: {str(e)}") writeMemory(start_address, length, data) except Exception as e: logging.error(f"Si รจ verificato un errore generale: {str(e)}") finally: Device.close()