logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Odczyt ramek RS232 i wykres 3 wartości z ramki (np. 18.23, 0.39, 0.27)

Charles Bronson 30 Sty 2026 17:20 132 3
REKLAMA
  • #1 21824420
    Charles Bronson
    Poziom 14  
    Posty: 360
    Ocena: 52
    Witam Szanownych Kolegów.

    Urządzenie wysyła portem szeregowym RS232 takie ramki:

    0FTF0018.23V00000.390P-0000.27

    Potrzebuję program/narzędzie, który odczyta te ramki z portu i narysuje 3 charakterystyki (albo chociaż jedną) z tych trzech pogrubionych wartości z ramki. Nie znam się na informatyce, mam nadzieję, że piszę w dobrym dziale.
  • REKLAMA
  • #2 21824427
    avatar
    Poziom 36  
    Posty: 4142
    Pomógł: 159
    Ocena: 413
    ale na jaki system ? np https://github.com/hyOzd/serialplot ,, real term ? Python AI powpowiada coś takiego
    import serial
    import matplotlib.pyplot as plt
    from collections import deque
    
    ser = serial.Serial('COM3', 9600)
    
    buf1, buf2, buf3 = deque(maxlen=200), deque(maxlen=200), deque(maxlen=200)
    
    plt.ion()
    fig, ax = plt.subplots()
    
    while True:
        line = ser.readline().decode().strip()
        # przykład ramki: 0FTF0018.23V00000.390P-0000.27
        try:
            v1 = float(line[6:11])   # 18.23
            v2 = float(line[12:17])  # 0.390
            v3 = float(line[18:24])  # 0.27
        except:
            continue
    
        buf1.append(v1)
        buf2.append(v2)
        buf3.append(v3)
    
        ax.clear()
        ax.plot(buf1, label="V1")
        ax.plot(buf2, label="V2")
        ax.plot(buf3, label="V3")
        ax.legend()
        plt.pause(0.01)
    
  • REKLAMA
  • #3 21824814
    Charles Bronson
    Poziom 14  
    Posty: 360
    Ocena: 52
    Najlepiej na dowolny Windows.
  • #4 21829944
    Charles Bronson
    Poziom 14  
    Posty: 360
    Ocena: 52
    Temat ogarnięty. Trzeba było wykorzystać "Arduino". Poniżej fragment kodu wychwytujący interesujący fragment z ramki:

    Kod: Arduino
    Zaloguj się, aby zobaczyć kod



    Laptop Dell z wykresem oraz płytki Arduino połączone przewodami na stole warsztatowym

    Do wizualizacji posłużyła aplikacja "Telemetry Viewer v0.9 (Windows x64)". Aplikacja łączy się z "Arduino" kablem USB.


    Zrzut ekranu z Telemetry Viewer v0.9 z wykresem czerwonej linii rosnącej do ok. 100 ml/h
REKLAMA