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:
| Parametr | Hodnota |
|---|---|
| Type | UDINT |
| Symbol | DD |
| Address | 20 |
| Use Data Conversion | Yes |
| Data Conversion | Dě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:
- uložit hodnotu do PLC jako celé číslo (například ×10 nebo ×100),
- přenášet ji jako DINT nebo UDINT,
- 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.
Nejnovější komentáře