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

Jak oznaczyć dane z Modbusa jako FLOAT w Proface Ladder?

rapcio1 09 Paź 2024 11:38 258 1
REKLAMA
  • #1 21256275
    rapcio1
    Poziom 11  
    Posty: 28
    Pomógł: 1
    Ocena: 3
    Witam. Proface GP-4301 połączony z licznikiem energii po Modbus. Potrzebuje przekonwertować dane z Modbus-a które są we FLOAT na INT. Mogę odczytać je na panelu prawidłowo, podaje 32bit FLOAT i jest OK. Problem jest w LADDER. Nie mogę ich przekonwertować za pomocą bloku F2I bo te dane nie są jako oznaczone jako FLOAT. Czytam komórkę D300025 jako 32bit. lub 300025,300026 jako 16bit, ale przekonwertować ich nie potrafię bo program twierdzi że to nie FLOAT. Wie ktoś jak to ogarnąć ?
  • REKLAMA
  • #2 21258701
    gacore
    Specjalista Automatyk
    Posty: 273
    Pomógł: 40
    Ocena: 52
    Lader przyjmuje z zewnątrz tylko rejestry 16 bitowe, ale jest na to sposób.
    Tworzysz:
    - zmienną symboliczną typu float w "Symbol Variable" - zmiennafloat
    - skrypt globalny "Global D-Script" z deklaracją długości danych 32-bit ze znakiem lub bez w zależności czy będziesz operował na liczbach ujemnych i triggerem Continous Action i w nim robisz przypisanie [w32s:zmiennafloat]=[w32s:[PLC1]D300025]
    Potem możesz w laderze już przekonwertować "zmiennafloat: funkcą F2I na integer.

    Pozdrawiam,
    Amdrzej Łacinnik
    www.covis.pl
REKLAMA