Close

MODBUS slave, proměnná float

Úvodní stránka Fórum Software Drivery MODBUS slave, proměnná float

Aktuálně jsou na stránce zobrazeny 2 příspěvky - 1. až 2. (celkem z 2)
  • Autor
    Příspěvky
  • #10392
    david tomka
    Účastník

    Vážení,

    Při zprovozňování MODBUS komunikace mezi MegaADK a Promotic jsem narazil na omezení na typ „word“ nikde jsem nenašel jak přenést typ float.

    MegaADK je slave
    PC s Promotic je Master.

    Knihovny
    #include <modbus.h>
    #include <modbusDevice.h>
    #include <modbusRegBank.h>
    #include <modbusSlave.h>

    Příklad stažený s knihovnou fungoval na první pokus.
    Na problém jsem narazil až když jsem chtěl přenášet hodnotu teploty z čidla která je float.
    Hledání na netu bylo bezvýsledné.

    Takže otázka je :
    1) proč není do knihovny zakomponován přenos jiného formátu než word?
    2) lze to nějak obejít aby to začalo float přenášet?

    děkuji
    David

    #10396
    Vojtěch Vosáhlo
    Účastník

    1) proč není do knihovny zakomponován přenos jiného formátu než word?

    Přiznám se že nevím, skoro určitě vám tu ale někdo odpoví.

    2) lze to nějak obejít aby to začalo float přenášet?

    Proč teplotu prostě nepředělat na word? Odstranit desetinou tečku tzn. třeba 23,56 => 2356.
    Kdyby jste potřeboval posílat floaty univerzálně, a né vždy 2 desetiná místa, dala by se asi bez problému napsat funkce, která by poslala třeba nejdříve dané číslo bez čárky a hned po něm počet des míst. Třeba jako 23,56 => 2356; 2 a nebo rovnou číslo kterým se musí word vydělit aby vznikl původní float: 23,56 => 2356; 100. Tzn 2356/100= 23,56.

    Tohle je samozřejmě jedno pokud se to dá nějak obejít.

Aktuálně jsou na stránce zobrazeny 2 příspěvky - 1. až 2. (celkem z 2)
  • Pro reakci na toto téma se musíte přihlásit.