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

[Rozwiązano] Eaton Easy Soft - Czy obsługuje liczby float i funkcję pierwiastkowania?

horbunovdmitriy 01 Sty 2025 17:55 360 3
REKLAMA
  • #1 21372170
    horbunovdmitriy
    Poziom 2  
    Posty: 3
    Ocena: 1
    Czy można przekaźnikach programowalnych od eaton używać liczby float? Czy istnieje funkcja pierwiastkowania w Easy soft?
    AI: Jaki model przekaźnika programowalnego Eaton używasz?
    Easy-E4-UD-UC-12RC1
    AI: Jakiej wersji oprogramowania Easy Soft używasz?
    EasySoft 8.25
  • REKLAMA
  • Pomocny post
    #2 21378063
    plichta
    Poziom 17  
    Posty: 503
    Pomógł: 23
    Ocena: 66
    Niestety nie można operować na liczbach zmiennoprzecinkowych ( chodzi o funkcje matematyczne). Ale można np. pobrać liczbę zmiennoprzecinkową w formacie IEEE574 (konwersja automatyczna) z urządzenia zewnętrznego np. przez modbus RTU i przekazać ją do scady np przez modbus TCP , która potrafi odkodować format IEEE574 aby przedstawić wartość liczby z przecinkiem. Niestety nie udało mi się napisać funkcji w EasyE4 aby przekonwertować liczbę zakodowaną w IEEE574 na liczbę całkowitą zaokrągloną aby można ją było odczytać na ekranie easyE4.(Przy niektórych wartościach liczby wychodziła bardzo zła dokładność).
    Funkcji pierwiastkowania nie ma.
  • REKLAMA
  • #3 21382439
    horbunovdmitriy
    Poziom 2  
    Posty: 3
    Ocena: 1
    >>21378063 Dziękuję bardzo za odpowiedź.
    Udało mi się rozwiązać problem z uchybem 0.00x% obliczyć przepływ powietrza w [m³/h]. Już taką wartość można wyświetlać użytkownikowi, a nie jakieś magiczne liczby typu 4095.

    Napisałem funkcję przy pomocy modułu użytkownika, która oblicza:
    Przepływ = K * pierwiastek(z różnicy ciśnień),
    gdzie K to współczynnik wentylatora z dokumentacji.

    Obliczenia:
    Dla symulacji przecinka obie części równania są mnożone przez 10 000:
    100000 * Przepływ = K * pierwiastek(z różnicy ciśnień) * 10000.

    Algorytm poszukiwania pierwiastka oraz obliczenia przepływu w [m³/h]:
    Zakres czujnika różnicy ciśnień:
    Przykład: znamy zakres 1000 Pa–4095. Pierwiastek(1000) = 31,6227 (przyda się później).

    Skalowanie wartości:
    Najpierw wartość 4095 skaluję do większego zakresu – 65535 – aby zmniejszyć uchyb.
    Maksymalna wartość wynosi 65535, ponieważ później tę wartości trzeba podnieść do kwadratu, aby znaleźć najbliższy mniejszy kwadrat.

    Cykl iteracyjny:
    Operacje arytmetyczne są wykonywane w cyklu, zakładając, że X₁ = 1, a S to liczba, której szukamy pierwiastka.

    Wzory:

    Xₙ₊₁ = (Xₙ + S / Xₙ) / 2
    Warunek sprawdzania:
    Xₙ² - S ≤ 0
    Jeśli warunek nie jest spełniony, powtarzamy cykl, aż zostanie spełniony.

    Przykład:
    Poszukujemy pierwiastka z 146.

    X₁ = (1 + 146 / 1) / 2 = 73.
    73² - 146 = 5227 (nie spełnia warunku).
    X₂ = (73 + 146 / 73) / 2 = 37.
    37² - 146 = 1223 (dalej nie).
    X₃ = (37 + 146 / 37) / 2 = 20.
    20² - 146 = 254 (dalej nie).
    X₄ = (20 + 146 / 20) / 2 = 12.
    12² - 146 = 0 (warunek spełniony).
    Wynik: najbliższy mniejszy kwadrat to 12² = 144.

    Ulepszenie precyzji:
    Znamy kolejny kwadrat większy od 146: 13² = 169.
    Sprawdzamy różnice:

    169 - 146 = 23
    146 - 144 = 2
    Mniejszy kwadrat (144) jest bliższy.

    Ostateczny etap:
    Aby zmniejszyć uchyb obliczeniowy, obie strony równania są mnożone przez 10 000:
    10000 * pierwiastek(S) = (12 * 10000 + 146 * 10000 / 12) / 2.

    Skalowanie wyniku:
    Pierwiastek z zakresu 65535 → 1000 Pa:
    255,9980 * 10000 → 31,6227 * 10000.

    Ostatecznie mogę obliczyć przepływ w [m³/h]:
    Przepływ = K * 10000 * pierwiastek(S)./10000
    Obliczając w taki sposób wynik jest dość precyzyjny
  • #4 21382474
    horbunovdmitriy
    Poziom 2  
    Posty: 3
    Ocena: 1
    Napisałem funkcje pierwiastkowania
REKLAMA