Ensimmäinen kerta, kun törmään tapaukseen, jossa yhdistellään eri rekistereitä saadakseen pidempi luku. Eli yleisin on, että on vaikka positiokohtainen tyyppi ja jos se on 8 bit, niin tulee 1 tavu ja jos se on 32 bit, niin tulee 4 tavua. Modbus on tietysti tarkoitettu yleiseksi liityntätavaksi, joten siinä lienee sovellettu tarpeen mukaan.
Samoin en ole kertaakaan törmännyt näissä siihen, että luku välitettäisiin nimenomaan bittimuotoisena liukulukuna. Yleisin on 2-komplementtimuotoinen kokonaisluku, joka on skaalattu kertomalla 10 tai 100 ja purkuvaiheessa sitten siirretään desimaalipilkkua sopivasti, että saadaan oikea arvo.
Onhan ne aina kaikkityynni jotain bitti-mössöä jokatapauksessa (1bit-8bit-16bit-32bit-64bit...), modbusissa on se ongelma tietty kun se on niin paljon aikaa sitten luotu ja pohjimmiltaan max16bit arvoilla pelataan ja tuohan ei monasti riitä mihinkään.
Tämmöset lämpötilat tietty menee komeesti 16 bittisellä -/+32647 ja pilkkun paikka jakamalla 10 on kumminkin jo yli 3000C astetta

, ainakin siis nyt vaikka siellä talologgerin päässä, sitten siellä toisessa päässä jossa tehdään toimintoja niin nuo kokonaisluvut ei ole tavallaan 'oikeita' vaan esmes 20.0C todellista olisiskin luku 200 ja siksi ei liene mukavaa. No tommosen lämpötilatiedon saa tietysti tehtyä niin että ohjaavassa päässä käsittelee liukulukuina (32bit) ja sitten tarjoo tuon Modbus rajapintaan 16bit kokonaislukuna kerrottuna 10:llä.
Mutta sitten kun on jotain suureita jotka menee yli 'tajunnan' eli yli 16bit maksimin niin sitten Modbusin kanssa on toinen ongelma, esmes vaikka joku kWh-mittaus...sehän heilahtaa helposti yli muutamien vuosien kuluttua...saahan tuonkin fixattua Modbus rajapintaan levittämällä MWh/kWh/Wh eri rekistereihin, 'lokeroihin'.
Eli Serveri (ohjauksia tekevä) päässä hommat tehdään niinkuin helpoin on ja siirretään Modbus 'pullonkaulaan' sen ehdoilla ja talologgerin päässä sitten taas yhistetään.
Tuo liukuluvun siirto kahdella perättäisellä rekisterillä Modbusissa ohjaavien systeemien välillä ei näy oikeastaan missään, se on molemmille vain yksi liukuluku joka siirtyy blokkina toiselta toiselle, samassa siirrossa voi sitten olla vaikka 1000 rekisteriä eli 500 liukulukua.
Vähän joutuu tämän nykyisen Modbusin kanssa säätään...niiden pitäis tehdä uusi ModbusTCP++ jossa olis 64bit rekisteri ja laittaa tuommosen siirto minimisiirroksi...
