Не получается Streaming опросника modbus с построением графика в реальном времени

Прилагаю код самого опросника:

from pymodbus.constants import Endian # для перевода во float32
from pymodbus.payload import BinaryPayloadDecoder # для перевода во float32
from pymodbus.payload import BinaryPayloadBuilder # для перевода во float32
from pymodbus.client.sync import ModbusSerialClient # для опроса по Modbus
import datetime
import csv
import time
from time import sleep

client = ModbusSerialClient(
    method='rtu',
    port='COM9',
    baudrate=9600, # настройки порта 
    timeout=2,
    parity='N',
    stopbits=1,
    bytesize=8
)

connection = client.connect()
while True:
#for _ in range(60):
        
        request = client.read_holding_registers(address=0x3E, count=2, unit=16) # опрос региста , колво регистров, алрес устройства
        result = request.registers
        decoder = BinaryPayloadDecoder.fromRegisters(result, Endian.Big)
        today = datetime.datetime.today()
        time1 = today.strftime("%Y-%m-%d %H:%M:%S.%f")[:-3]
        ch1 = decoder.decode_32bit_float()
       

        with open(r"C:\py3\datamodbus3_ch1.csv", mode="a", encoding='utf-8') as a_file:
    
            file_writer = csv.writer(a_file, delimiter = ",", lineterminator="\n")
            file_writer.writerow(["{:6f}".format(ch1), time1])
   

time.sleep(1 - time.time() % 1)
   
client.close()

пытался из под Jupyter notebook подключить

import hvplot.streamz  # noqa
import pandas as pd
import numpy as np
import hvplot.pandas  # noqa
from hvplot import hvPlot
import holoviews as hv
from streamz import Stream
from streamz.dataframe import DataFrame
hv.extension('bokeh')

и запустить stream так:

df = pd.DataFrame(ch1, time1)
df.head()
  • не получилось. нужна помощь.

Ответы (0 шт):