должно быть достаточноКод:from pyModbusTCP.client import ModbusClient from datetime import datetime import pandas as pd import time def save_last_data(stroke): stroke.to_csv('save_last_data.csv',mode='a',index=False,header=False) def read_data(): client = ModbusClient(host='127.0.0.1', port=502, auto_open=True) col_name = ['time','result','duration'] df = pd.DataFrame(columns=col_name) while True: time.sleep(1) # запрос каждую секунду try: start_time = time.time() result = client.read_input_registers(0,1) duration = time.time() - start_time # расчитать время в секундах затраченное на запрос/ответ df.loc[len(df)] = [datetime.now(),result[0],duration] # текущее время, значение регистра, потраченное время save_last_data(df.tail(1)) # запись в конец файла if len(df) > 10: # если записей в таблице больше десяти удаляем старую df = df.iloc[1:] if result[0] == 1: # если регистр принимает определенное значение заканчиваем работу print(df) break except Exception as e: print(f'Что топошло не так: {str(e)}') break client.close() if __name__ == "__main__": read_data()




Ответить с цитированием