Jak pracovat s FLOAT hodnotami ve FatekNetOPC

Při práci s FatekNetOPC je potřeba počítat s tím, že tento OPC server nepodporuje datový typ FLOAT. K dispozici jsou pouze následující datové typy:

  • BOOL
  • UINT
  • INT
  • UDINT
  • DINT

Pokud potřebujete přenášet desetinné hodnoty, lze je jednoduše obejít pomocí celočíselných registrů a datové konverze.

Řešení pomocí násobení a datové konverze

Se stávajícím OPC serverem lze postupovat následovně:

1. Uložení hodnoty v PLC

Hodnota se v PLC uloží jako DINT (32bitový registr), přičemž se před uložením vynásobí deseti.

Příklad:

  • Skutečná hodnota: 1259,0
  • Hodnota uložená v PLC: 12590

Tímto způsobem lze bezpečně přenášet desetinná čísla bez použití datového typu FLOAT.

2. Vytvoření datové konverze v OPC serveru

V konfiguraci OPC serveru vytvořte novou Data Conversion, která bude hodnotu dělit deseti.

3. Přidání registru

Přidejte nový registr D20 s následujícím nastavením:

ParametrHodnota
TypeUDINT
SymbolDD
Address20
Use Data ConversionYes
Data ConversionDělení 10

Po načtení hodnoty OPC server automaticky provede dělení deseti a aplikace tak obdrží správnou desetinnou hodnotu.

Výsledek

Díky datové konverzi není nutné měnit logiku PLC ani používat speciální zpracování na straně klientské aplikace. Veškerá konverze probíhá přímo v OPC serveru.

Důležité poznámky

Pozor: Symbol DF není totéž co DD. Označuje zcela jiný registr v PLC – F registry.

Další důležité informace:

  • Dávejte pozor na rozsah použitých registrů. Například signed INT16 podporuje hodnoty pouze v rozsahu −32 768 až +32 767.

Shrnutí

Pokud potřebujete ve FatekNetOPC přenášet desetinné hodnoty, doporučeným postupem je:

  1. uložit hodnotu do PLC jako celé číslo (například ×10 nebo ×100),
  2. přenášet ji jako DINT nebo UDINT,
  3. v OPC serveru použít datovou konverzi pro vydělení odpovídajícím koeficientem.

Tento postup je jednoduchý, spolehlivý a plně kompatibilní se současnou verzí FatekNetOPC.

Comments are closed.