Någon som har "pratat" med SunSpec-enheter?
Någon som har "pratat" med SunSpec-enheter?
Är det någon som har lyckats kommunicera med SunSpec-standard enheter via MODBUS-RTU på RS485?
Jag har en hel del problem i ett projekt, inte med kommunikationen som sådan med med de värden som kommer.
Enheten är en SolarEdge och enl. deras Technical Note ska det vara enkelt.
Verkligheten är dock att de värden de skickar är helt åt fanders till, specifikt skalningen av värden, iaf. i den inverter jag jobbar mot.
Jag har en hel del problem i ett projekt, inte med kommunikationen som sådan med med de värden som kommer.
Enheten är en SolarEdge och enl. deras Technical Note ska det vara enkelt.
Verkligheten är dock att de värden de skickar är helt åt fanders till, specifikt skalningen av värden, iaf. i den inverter jag jobbar mot.
- Jan Almqvist
- Inlägg: 1655
- Blev medlem: 1 oktober 2013, 20:48:26
- Ort: Orust
Re: Någon som har "pratat" med SunSpec-enheter?
Kan det vara fel ordning på bytes och/eller words?
Normalt ska Modbus vara big-endian men man kan aldrig vara säker på något.
Normalt ska Modbus vara big-endian men man kan aldrig vara säker på något.
Re: Någon som har "pratat" med SunSpec-enheter?
Detta med Big & Little Endian är inräknad.
* Jag skickar en fråga om att få data från register 40084 och 25 register framåt.
* Svar kommer och värden är rimligt vettiga.
* Jag har fungerande rutiner för att vända Endian på WORD, DWORD och QWORD.
* Kommunikationen är stabil och tillförlitlig.
Varje fråga blir alltså besvarat med ett block som har rätt CRC16 och som inte växlar i värde annat än vad som kan förväntas.
Det stora problemet är dock att det är en skillnad mot vad som beskrivs i den Technical Note SolarEdge har på deras hemsida och hur verkligheten är. Och jo, invertern ska följa SunSpec-standarden, versionsnummer är i rätt ända.
Skalningsvärdet som följer med en hel del värden ska ju fungera så att värdet som ska skalas ska skalas i 10-potenser.
Tar man emot ett värde på t.ex. 1000 med ett skalningsvärde på -1 är värdet man har i verkligheten tagit emot 100,0.
Är skalningsvärdet +1 blir 1000 till 10000 efter skalningen.
Ganska enkelt och tydligt - men om man ser lite framåt behöver man jobba med ganska stora värden, något jag också har tagit hand om. Min enhet jobbar internt med 64 bitars unsigned värde för total insamlat energi (Wh) och det borde räcka ganska väl för ett tag fram.
Att skriva ut detta 64-bit värde går ju tyvärr inte med printf() men jag har såklart löst även den delen.
Det som verkar helt totalt fel är att skalningsvärdet inte fungerar som det ska! Eller i alla fall inte är entydigt.
I "nattläge" är skalningen på -1 vilket borde betyda att det avlästa värdet ska delas med 10. I just denna inverter betyder det dock att värdet ska delas med 256...
Men skam få den som ger sig, skylten sitter hos kund och det ska fungera så om den inverter gör på det vis gör jag det också!
Tyvärr ändrar invertern betydelsen av skalningsvärdet (eller utesluter det?) när invertern börjar tillverkar energi, alltså visas det ett sinnessjukt högt tal för total infångad energi.
Så det jag undrar är i grunden: är det någon som har en korrekt beskrivning av hur de gör?
Att göra undantag är en bitch men det går, om data däremot växlar betydelse sporadisk är det avsevärd mer svårt att klura ut.
Jag kan såklart åka dit (det är ju "bara" ~3 timmar i bil...), parkera vid skylten i ett par dagar så att jag får med båda dag och natt och läsa ut värden och analysera dom för att se mönstret, det är dock inte riktigt varken en ekonomisk eller tidsmässig möjlighet.
Och jag tycker att de 5:30 jag var där senast på deras parkeringsplats borde vara rikligt.
Självklart har jag redan kontaktat generalagenten i Sverige med en mail med mycket specifika frågor av teknisk natur. Efter deras svar om att de vill återkomma snarast skrev jag ung. samma frågor direkt till tillverkaren, möjligen med en aning mer irriterat ton då min kund just hade meddelat att de var tvungen att slå av skylten då den visade helt sinnessjukt fel.
Installatören påstod hårdnackad att det jag gör inte går! Det enda sätt man kan göra är att använda signalerna från den el-mätare som sitter på anläggningen! Och de hade såklart en display för detta...
Och ja, visst kan man kolla 1 Wh pulserna och använda tiden mellan som "effekt just nu" och så skapa en "effekt idag"-räknare men min kund begärde just "Total energi" och den finns bara att läsa i invertern.
* Jag skickar en fråga om att få data från register 40084 och 25 register framåt.
* Svar kommer och värden är rimligt vettiga.
* Jag har fungerande rutiner för att vända Endian på WORD, DWORD och QWORD.
* Kommunikationen är stabil och tillförlitlig.
Varje fråga blir alltså besvarat med ett block som har rätt CRC16 och som inte växlar i värde annat än vad som kan förväntas.
Det stora problemet är dock att det är en skillnad mot vad som beskrivs i den Technical Note SolarEdge har på deras hemsida och hur verkligheten är. Och jo, invertern ska följa SunSpec-standarden, versionsnummer är i rätt ända.
Skalningsvärdet som följer med en hel del värden ska ju fungera så att värdet som ska skalas ska skalas i 10-potenser.
Tar man emot ett värde på t.ex. 1000 med ett skalningsvärde på -1 är värdet man har i verkligheten tagit emot 100,0.
Är skalningsvärdet +1 blir 1000 till 10000 efter skalningen.
Ganska enkelt och tydligt - men om man ser lite framåt behöver man jobba med ganska stora värden, något jag också har tagit hand om. Min enhet jobbar internt med 64 bitars unsigned värde för total insamlat energi (Wh) och det borde räcka ganska väl för ett tag fram.
Att skriva ut detta 64-bit värde går ju tyvärr inte med printf() men jag har såklart löst även den delen.
Det som verkar helt totalt fel är att skalningsvärdet inte fungerar som det ska! Eller i alla fall inte är entydigt.
I "nattläge" är skalningen på -1 vilket borde betyda att det avlästa värdet ska delas med 10. I just denna inverter betyder det dock att värdet ska delas med 256...
Men skam få den som ger sig, skylten sitter hos kund och det ska fungera så om den inverter gör på det vis gör jag det också!
Tyvärr ändrar invertern betydelsen av skalningsvärdet (eller utesluter det?) när invertern börjar tillverkar energi, alltså visas det ett sinnessjukt högt tal för total infångad energi.
Så det jag undrar är i grunden: är det någon som har en korrekt beskrivning av hur de gör?
Att göra undantag är en bitch men det går, om data däremot växlar betydelse sporadisk är det avsevärd mer svårt att klura ut.
Jag kan såklart åka dit (det är ju "bara" ~3 timmar i bil...), parkera vid skylten i ett par dagar så att jag får med båda dag och natt och läsa ut värden och analysera dom för att se mönstret, det är dock inte riktigt varken en ekonomisk eller tidsmässig möjlighet.
Och jag tycker att de 5:30 jag var där senast på deras parkeringsplats borde vara rikligt.
Självklart har jag redan kontaktat generalagenten i Sverige med en mail med mycket specifika frågor av teknisk natur. Efter deras svar om att de vill återkomma snarast skrev jag ung. samma frågor direkt till tillverkaren, möjligen med en aning mer irriterat ton då min kund just hade meddelat att de var tvungen att slå av skylten då den visade helt sinnessjukt fel.
Installatören påstod hårdnackad att det jag gör inte går! Det enda sätt man kan göra är att använda signalerna från den el-mätare som sitter på anläggningen! Och de hade såklart en display för detta...
Och ja, visst kan man kolla 1 Wh pulserna och använda tiden mellan som "effekt just nu" och så skapa en "effekt idag"-räknare men min kund begärde just "Total energi" och den finns bara att läsa i invertern.
- lillahuset
- Gått bort
- Inlägg: 13969
- Blev medlem: 3 juli 2008, 08:13:14
- Ort: Norrköping
Re: Någon som har "pratat" med SunSpec-enheter?
Om det är 32-bits värden är det inte ordentligt specificerat i MODBUS. Finns flera varianter.
Re: Någon som har "pratat" med SunSpec-enheter?
Specifikationen för SunSpec är väldig tydlig!
Ett 32 bitars värde tar platsen av 2 st 16-bit register.
Värdet kan vara antingen heltal eller IEEE 754 Floating Point. I detta fall är det heltal.
Problemet som finns är att skalningen av variabeln är opålitlig efter vad jag har av data, själva värdet som de 4 bytes representerar kan jag enkelt hitta i utläsningen men skalningen är konstig.
Ett 32 bitars värde tar platsen av 2 st 16-bit register.
Värdet kan vara antingen heltal eller IEEE 754 Floating Point. I detta fall är det heltal.
Problemet som finns är att skalningen av variabeln är opålitlig efter vad jag har av data, själva värdet som de 4 bytes representerar kan jag enkelt hitta i utläsningen men skalningen är konstig.
- lillahuset
- Gått bort
- Inlägg: 13969
- Blev medlem: 3 juli 2008, 08:13:14
- Ort: Norrköping
Re: Någon som har "pratat" med SunSpec-enheter?
Om skalningen är konstig kan ju byteordningen vara annan än du förväntar dig. Eller har du hittat det i dokumentationen?
Här finns bra info: http://www.chipkin.com/support/modbus-s ... knowledge/ De har en modbusscanner och en del annat gratis också.
Här finns bra info: http://www.chipkin.com/support/modbus-s ... knowledge/ De har en modbusscanner och en del annat gratis också.
Scaling in Modbus
Modbus does not provide a method for transporting large or Floating Point numbers or a mechanism for scaling analog values. A 16 bit word can only contain values in the range 0-65535. Only whole numbers are permitted. To work around this many server device manufacturers use multipliers and document them in their manuals. For example, to report a temperature of 58.5 the device reports a value of 585, and makes a note in the manual that the master should scale by 10. This scaling is achieved by adopting a convention between the client and the server.
What about large numbers > 65535
Modbus does not provide a mechanism but 3 important schemes are widely used.
Long Integers – Two consecutive 16 bit words are interpreted as a 32 bit long integer.
MK10 values – Two consecutive words are used. The 1st reports the number of units and the 2nd reports the number of 10,000’s.
Floating Point Numbers – Two consecutive words are used and a scheme. These schemes are conventions and not all servers or clients support them.
The protocol does not identify these big numbers. Only the vendor docs do.
What we mean by this is – if you look at the byte stream in a Modbus message there is no way of telling whether you are looking at two consecutive 16 bit words, or two consecutive words that should be interpreted as floating point, long or MK10 formats. Because of this you always have to look to the vendor docs.
Re: Någon som har "pratat" med SunSpec-enheter?
Har lite ont om tid just nu men data överföras som de ska! Jag får växla till Little Endian när jag använder dom, det fungerar perfekt det med.
Det som skiljer är att skalningen inte följer SunSpec standarden - men det kan jag leva med, bara jag vet hur de gör.
Det som är problemet är att det verkar skilja mellan viloläge och produceringsläge, inte i värdet som överförs men i skalningen.
Det som skiljer är att skalningen inte följer SunSpec standarden - men det kan jag leva med, bara jag vet hur de gör.
Det som är problemet är att det verkar skilja mellan viloläge och produceringsläge, inte i värdet som överförs men i skalningen.
Re: Någon som har "pratat" med SunSpec-enheter?
har du någon länk till enhetens brux eller liknande.
Du skriver "Sansöst stora värden" det kan inte vara så att det är Signed Int, dvs den skickar negativa tal?
Du skriver "Sansöst stora värden" det kan inte vara så att det är Signed Int, dvs den skickar negativa tal?
Re: Någon som har "pratat" med SunSpec-enheter?
OK, det verkar vara en hel del problem med att uppfatta vad problemet är. Kommunikationen fungerar utmärkt, det är inte fråga om negativa värden eller liknande! Jag begär ett antal värden och jag får dom, jag har dumpat de mottagna värden så att jag kan se vad som händer varför jag vet att de bytes som finns på de platser de borde är rimligt OK.
Det värde jag definitivt behöver läsa ut är på ung 1,61MWh. Hexadecimalt är det 0x00189110.
I det register som håller detta värde var värdet 0x18911000 och skalfaktorn var -1.
Enl. SunSpec betyder det att värdet ska skalas -1 steg, alltså delas med 10.
Men delar jag det "med en byte" (256) passar värdet perfekt med vad kunden läser ut på deras app.
I det läge lämnade jag skylten och var nöjd med att vara i mål men väldigt irriterat över att invertern inte följer standarden.
Kunden ringde sedan på förmiddagen och berättade att värden hade kukat ur rejält, värdet motsvarar just att denna delning med 256 inte blir gjort.
Det enda sätt detta kan ske på är om skalfaktorn inte är den samma. Det finns andra konstigheter också, status är 16 bit men bara ena byten använda. Denna byte är dock placerat i MSB i de svar jag får fast det tydligt skrivs att den ska vara i LSB.
Begär man register 40001 och framåt ska 40001 vara på 4 bytes och innehålla "SunS". Det gör den inte.
I samma block ligger tillverkarnamn, typ, versionsnummer och serienummer fullständigt korrekt som det beskrivs.
40094: 18 93 CC 00 (Totalt inhämtat Wh = 412 339 200, alltså 412MWh)
40096: 00 FF (Skalfaktor = -1, borde därför bli 41,2MWh)
Verkligheten är att det är hämtat ~1,61MWh = 0x1893CC = 1 610 700 Wh
Så värdet är rätt men skalfaktorn är åt fanders.
Så det är orsaken till min fråga: är det någon som har erfarenhet av att prata MODBUS-RTU med en sån inverter och som har klurat ut hur den EGENTLIGEN gör.
Jag har verifierat att varje byte som kommer ligger rätt, att skalningsvärden är inom de limits som finns osv. så sluta tjafsa om negativa värden och skit.
Jag kan såklart bosätta mig vid skylten och köra en lång loggning och göra workaround på alla problemen men när invertern så blir uppdaterat och gör rätt ska jag dit igen och fixa. Och när en tillverkare reklamerar med att de minsann uppfyller standarden borde de jo rent faktisk också göra det tycker jag.
Det värde jag definitivt behöver läsa ut är på ung 1,61MWh. Hexadecimalt är det 0x00189110.
I det register som håller detta värde var värdet 0x18911000 och skalfaktorn var -1.
Enl. SunSpec betyder det att värdet ska skalas -1 steg, alltså delas med 10.
Men delar jag det "med en byte" (256) passar värdet perfekt med vad kunden läser ut på deras app.
I det läge lämnade jag skylten och var nöjd med att vara i mål men väldigt irriterat över att invertern inte följer standarden.
Kunden ringde sedan på förmiddagen och berättade att värden hade kukat ur rejält, värdet motsvarar just att denna delning med 256 inte blir gjort.
Det enda sätt detta kan ske på är om skalfaktorn inte är den samma. Det finns andra konstigheter också, status är 16 bit men bara ena byten använda. Denna byte är dock placerat i MSB i de svar jag får fast det tydligt skrivs att den ska vara i LSB.
Begär man register 40001 och framåt ska 40001 vara på 4 bytes och innehålla "SunS". Det gör den inte.
I samma block ligger tillverkarnamn, typ, versionsnummer och serienummer fullständigt korrekt som det beskrivs.
40094: 18 93 CC 00 (Totalt inhämtat Wh = 412 339 200, alltså 412MWh)
40096: 00 FF (Skalfaktor = -1, borde därför bli 41,2MWh)
Verkligheten är att det är hämtat ~1,61MWh = 0x1893CC = 1 610 700 Wh
Så värdet är rätt men skalfaktorn är åt fanders.
Så det är orsaken till min fråga: är det någon som har erfarenhet av att prata MODBUS-RTU med en sån inverter och som har klurat ut hur den EGENTLIGEN gör.
Jag har verifierat att varje byte som kommer ligger rätt, att skalningsvärden är inom de limits som finns osv. så sluta tjafsa om negativa värden och skit.
Jag kan såklart bosätta mig vid skylten och köra en lång loggning och göra workaround på alla problemen men när invertern så blir uppdaterat och gör rätt ska jag dit igen och fixa. Och när en tillverkare reklamerar med att de minsann uppfyller standarden borde de jo rent faktisk också göra det tycker jag.
Re: Någon som har "pratat" med SunSpec-enheter?
Ice, lugna ned dig. Lite bättre info vore bra.
Dvs länk till manualen.
Vad du läser och vad det skall vara.
Hur annars tror du vi skall kunna hjälpa dig.
Du skrev faktiskt "orimligt höga vörden", vilket av naturliga skäl får en att tro att du får negativa värden i stället.
Dvs länk till manualen.
Vad du läser och vad det skall vara.
Hur annars tror du vi skall kunna hjälpa dig.
Du skrev faktiskt "orimligt höga vörden", vilket av naturliga skäl får en att tro att du får negativa värden i stället.
Re: Någon som har "pratat" med SunSpec-enheter?
Ett värdet på 256 * verkliga värdet anser jag vara orimligt högt. Länk till manual kräver registrering på deras sida men den Technical Note jag hittade där bifogar jag.
Issues:
40001 ger 8C 6E 53 00, ska vara 53 75 6E 53
Resten av data i blocket 40001-40069 ligger fullständigt korrekt.
För utläsningen av värden läsas register 40084 - 40108 i ett block.
Detta sker med kommandot: 01 03 9C 94 00 19 EB BC
Altså:
Slav # 01h
Kommando 03h (Read Holding Register)
Start: 9C94h (40084d)
0019h register totalt (25 st dubbelbyte register)
EBBCh är CRC16
Svaret är:
01 03 32 00 00 13 88 FF FE 00 00 00 00 00 00 00 00 00 00 00
00 00 18 93 CC 00 00 00 00 00 00 00 02 00 00 00 00 00 00 80
00 00 00 80 00 80 00 FF FE 00 02 00 00 A4 8F
Detta svar ska vara 54 bytes lång men är 55 - vilket är OK, checksummen blir då 0000 på det totala blocket.
De två första bytes ska vara ett spegel av kommandoblocket - alltså OK.
Sedan kommer register 40084 (Effekt just nu 3200h) osv.
Just 3200h (12800W) är ganska bra gått, det var mörk kväll då jag hämtade detta värde.
Det ser ut som att det finns ett offset i vissa av värden, alltså att sändaren skickar en byte för mycket och att det fattas en byte här och där. Det är inte slumpmässigt, jag har kollat mängder av dessa block och varenda har varit lika - förutom den sista bytes som växlar lite hur som helst. Den är dock checksum+ så själva payload-delen är 100% stabil.
Jag har fått exakt samma svar vid varje fråga och varje fråga har besvarats så kommunikationen är alltså stabil.
Data läggs sedan ner i ett array i RAM i min ända och läsas därifrån. Jag har verifierat att varje byte ligger rätt i det array, inte vid uträkning men vid att låta µC'n skriva ut adresserna på de ingående värden.
Så jag är 100% säker på att data inte överförs korrekt från invertern! Jag har såklart även gjort ett simuleringsprogram som låtsades vara en inverter enl. definitionen. Ur den läste jag alla värden korrekt i alla lägen.
Issues:
40001 ger 8C 6E 53 00, ska vara 53 75 6E 53
Resten av data i blocket 40001-40069 ligger fullständigt korrekt.
För utläsningen av värden läsas register 40084 - 40108 i ett block.
Detta sker med kommandot: 01 03 9C 94 00 19 EB BC
Altså:
Slav # 01h
Kommando 03h (Read Holding Register)
Start: 9C94h (40084d)
0019h register totalt (25 st dubbelbyte register)
EBBCh är CRC16
Svaret är:
01 03 32 00 00 13 88 FF FE 00 00 00 00 00 00 00 00 00 00 00
00 00 18 93 CC 00 00 00 00 00 00 00 02 00 00 00 00 00 00 80
00 00 00 80 00 80 00 FF FE 00 02 00 00 A4 8F
Detta svar ska vara 54 bytes lång men är 55 - vilket är OK, checksummen blir då 0000 på det totala blocket.
De två första bytes ska vara ett spegel av kommandoblocket - alltså OK.
Sedan kommer register 40084 (Effekt just nu 3200h) osv.
Just 3200h (12800W) är ganska bra gått, det var mörk kväll då jag hämtade detta värde.

Det ser ut som att det finns ett offset i vissa av värden, alltså att sändaren skickar en byte för mycket och att det fattas en byte här och där. Det är inte slumpmässigt, jag har kollat mängder av dessa block och varenda har varit lika - förutom den sista bytes som växlar lite hur som helst. Den är dock checksum+ så själva payload-delen är 100% stabil.
Jag har fått exakt samma svar vid varje fråga och varje fråga har besvarats så kommunikationen är alltså stabil.
Data läggs sedan ner i ett array i RAM i min ända och läsas därifrån. Jag har verifierat att varje byte ligger rätt i det array, inte vid uträkning men vid att låta µC'n skriva ut adresserna på de ingående värden.
Så jag är 100% säker på att data inte överförs korrekt från invertern! Jag har såklart även gjort ett simuleringsprogram som låtsades vara en inverter enl. definitionen. Ur den läste jag alla värden korrekt i alla lägen.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Re: Någon som har "pratat" med SunSpec-enheter?
Nja, du har nog fattat det hela lite fel.
För att addressera ett register måste du dra i från 1 från register nummret, så skall du addressera register 40084, så blir det 0x9C93.
Dessutom i ditt svar från slaven så får du först Adressen och kommandot, därefter längden på datagrammet (1 byte), i ditt fall 0x32 dvs 50 bytes.
Därefter kommer payloaden, dvs data.
Data i detta fallet är;
00 00 13 88 FF FE 00 00 00 00 00 00 00 00 00 00 00 00 00 18 93 CC 00 00 00 00 00 00 00 02 00 00 00 00 00 00 80 00 00 00 80 00 80 00 FF FE 00 02 00 00
Och sist 2 byte CRC
För att addressera ett register måste du dra i från 1 från register nummret, så skall du addressera register 40084, så blir det 0x9C93.
Dessutom i ditt svar från slaven så får du först Adressen och kommandot, därefter längden på datagrammet (1 byte), i ditt fall 0x32 dvs 50 bytes.
Därefter kommer payloaden, dvs data.
Data i detta fallet är;
00 00 13 88 FF FE 00 00 00 00 00 00 00 00 00 00 00 00 00 18 93 CC 00 00 00 00 00 00 00 02 00 00 00 00 00 00 80 00 00 00 80 00 80 00 FF FE 00 02 00 00
Och sist 2 byte CRC
Senast redigerad av TomasL 14 november 2015, 14:22:14, redigerad totalt 1 gång.
- Jan Almqvist
- Inlägg: 1655
- Blev medlem: 1 oktober 2013, 20:48:26
- Ort: Orust
Re: Någon som har "pratat" med SunSpec-enheter?
Om du läser 25 register med Modbus RTU så ska svaret vara 55 byte.
Några tips om bra verktyg:
Modbus slav ( gratis )
http://www.plcsimulator.org/
Modbus master ( gratis )
HMI Droid Studio dvs utvecklingsverktyget för populära HMI Droid
http://www.idea-teknik.com/hmi_droid_download.html
Man löser ett sådant här problem på < 3 minuter.
Några tips om bra verktyg:
Modbus slav ( gratis )
http://www.plcsimulator.org/
Modbus master ( gratis )
HMI Droid Studio dvs utvecklingsverktyget för populära HMI Droid
http://www.idea-teknik.com/hmi_droid_download.html
Man löser ett sådant här problem på < 3 minuter.
Senast redigerad av Jan Almqvist 14 november 2015, 14:59:08, redigerad totalt 3 gånger.
Re: Någon som har "pratat" med SunSpec-enheter?
OK, det kan vara där jag missade! Måste läsa mer på MODBUS.
Jag blev lurat av att SolarEdge i deras Technical Note beskriver svaret som:
Rx: 01 03 F4 53 75 6E 53 … [Registers data] … FF FF AE DB (totalt 122 registers) men ingen snack om att F4 (244d) är antalet databytes.
My bad!
Jag blev lurat av att SolarEdge i deras Technical Note beskriver svaret som:
Rx: 01 03 F4 53 75 6E 53 … [Registers data] … FF FF AE DB (totalt 122 registers) men ingen snack om att F4 (244d) är antalet databytes.
My bad!
Senast redigerad av Icecap 14 november 2015, 14:27:39, redigerad totalt 1 gång.
Re: Någon som har "pratat" med SunSpec-enheter?
I ditt fall ovan så får du 25 register (50 bytes) med start på register 40085.
Du hittar specarna på http://www.modbus.org/tech.php
Nja de har väl förutsatt att läsaren är insatt i Modbus, gissar jag.
Du hittar specarna på http://www.modbus.org/tech.php
Nja de har väl förutsatt att läsaren är insatt i Modbus, gissar jag.