Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Uitlezen Eastron kwh meters via Modbus

Pagina: 1
Acties:

Vraag


  • Bl4ckviper
  • Registratie: mei 2002
  • Laatst online: 21-02 10:13
Mijn vraag
Weet iemand hier toevallig wat er nog mis kan zijn aan mijn opzet om meerdere kWh meters uit te lezen middels modbus RS-485 RTU.

Setup is als volgt:
3 maal SDM 630 kWh meter:
  • 9600 baudrate
  • parity none
  • stopbit 1
2 maal SDM 220 kWh meter:
  • 9600 baudrate
  • parity none
  • stopbit 1
Aansluiting middels daisychain met aan het einde en het begin een 120 Ohm weerstand.

Als ik 1 meter probeer uit te lezen krijg ik naast een hoop errors zoals
code:
1
2
Checksum error in rtu mode: 'j\x10' instead of 'a\xcb' . 
The response is: '\x04\x04CgOTj\x10' (plain response: '\x04\x04CgOTj\x10')

ook nog wel eens een meting.

Op het moment dat ik er meerdere probeer uit te lezen krijg ik alleen maar errors. Ook communicatie errors zoals:
code:
1
2
IO Error while reading register 2 from meter 2. Retries left 0.
No communication with the instrument (no answer)

Maar geen enkele meting.

Relevante software en hardware die ik gebruik:
Linux version 4.9.0-5-amd64 (debian-kernel@lists.debian.org) (gcc version 6.3.0 20170516 (Debian 6.3.0-18) ) #1 SMP Debian 4.9.65-3+deb9u2 (2018-01-04)
Python: 2.7.13
Energy Meter logger Python scripts die gebruikt maken van minimal modbus lib.
Hardware
RS 485 to USB dongle (chip ch341-uart) via Alie
Bekabeling UTP cat 5 twisted pair met aan ieder einde een 120 Ohm weerstand (dus in de eerste meter (begin van de ketting) en in de usb dongle (einde van de ketting))
Wiring is gedaan volgens standaard zoals hier beschreven: https://www.maximintegrat...pp-notes/index.mvp/id/763

Wat ik al gevonden of geprobeerd heb
Diverse baudrates 2,4k en 4,8k, intervallen veranderd.
Met zonder weerstanden.

Iemand nog briljanten ideeŽn?

Be fast .... Be furious....

Alle reacties


  • AUijtdehaag
  • Registratie: oktober 2006
  • Niet online

AUijtdehaag

Oost-west zuid-noord is ook ok

Misschien een domme vraag, maar hebben alle 5 de meters wel een ander modbus adres ingesteld in de meter en dus ieder een uniek adres?

Ik lees in dat artikel dat er raspian stretch gebruikt word.
(ben daar niet kapot van, raspian jessie geeft hier minder "rechten" problemen)
Ik gebruik m-bus communicatie op een pi. Niet te verwarren met modbus. Maar dat terzijde.

Staan alle meters "parallel" aan elkaar aangesloten?


Men maakt in het artikel gebruik van een "shield", terwijl jij communiceert via USB.
Zit daar het probleem misschien?

AUijtdehaag wijzigde deze reactie 14-02-2018 05:39 (84%)

3430 Wp-z 2550 Wp-n op SMA-STP-6000 TL-20: Live PVoutput - 5 kW WP -All electric


  • Bl4ckviper
  • Registratie: mei 2002
  • Laatst online: 21-02 10:13
@AUijtdehaag
Ja alle meters hebben een uniek slave adres.

Ik gebruik helemaal geen pi dus maar een nuc met dan kan erop.

De meters zitten zo aangesloten zoals de groene vinkjes.



Overigens heb ik geen ground wire. De usb dongle heeft ook geen ground pin

Bl4ckviper wijzigde deze reactie 14-02-2018 08:49 (12%)

Be fast .... Be furious....


  • BartOverkamp
  • Registratie: november 2017
  • Laatst online: 23-02 17:57
Misschien zou je de idle bus spanning eens kunnen meten. Voor RS485 dient deze minimaal 200mVDC te zijn. Als deze voorspanning onvoldoende is krijg je communicatie fouten. Soms heeft een USB naar RS485 convertor ingebouwde "fail safe" weerstanden (die deze voorspanning op de bus zetten) maar dit is niet altijd het geval. Verder is het van belang, zeker met grotere afstanden, dat de bus aan beide kanten karakteristiek wordt afgesloten met 120 Ohm. In 1 van de voorgaande afbeeldingen zat deze in de convertor, maar ook dat is niet altijd het geval.
Verder is UTP kabel niet het meest geschikt voor RS485, maar over kortere afstanden zou dit geen probleem mogen zijn.

  • Bl4ckviper
  • Registratie: mei 2002
  • Laatst online: 21-02 10:13
@BartOverkamp

Hoe kan ik dat met een simpele multimeter meten?

Aan beide kanten zit een 120 Ohm weerstand. In de eerste meter en bij de draden in de usb dongle gestoken. Heb het ook zonder die in de dongle gedaan en ook dat maakt geen verschil.

De lengte is niet meer dan 4 a 5 meter.

Be fast .... Be furious....


  • jeroen3
  • Registratie: mei 2010
  • Laatst online: 21:41
Je kunt dit het beste meten met een oscilloscoop.

Zit er niet al een weerstand in de dongle?

Zijn alle units netjes geaard? Anders heb je wellicht last van common mode issues.
Dat kun je oplossen met een ander soort terminator methode.
Zie: AN-1057 Ten Ways to Bulletproof RS-485 Interfaces

jeroen3 wijzigde deze reactie 14-02-2018 09:29 (58%)
Reden: common mode issue


  • Xiphalon
  • Registratie: juni 2001
  • Laatst online: 23-02 19:23
Ik heb dit praktisch hetzelfde werkend, met het enige verschil dat ik de ground wel heb aangesloten.

Volgens mij zit de a en b bij mij op het blauw/blauw-witte paar op de UTP en de ground op groen. Ik haal over een lengte van ongeveer 100 meter met 3 meters (en een dongle, en de zonneomvormer) netjes 19200 (oid) bit/s. Heel af en toe een CRC error.

(uiteraard wel een weerstand op de uiteinden van de kabel)

Xiphalon wijzigde deze reactie 14-02-2018 09:30 (8%)


  • Bl4ckviper
  • Registratie: mei 2002
  • Laatst online: 21-02 10:13
@Xiphalon

Waar heb je de ground dan aan de usb dongle kant aangesloten dan?

Op de meters zit wel een ground aansluiting

Be fast .... Be furious....


  • Xiphalon
  • Registratie: juni 2001
  • Laatst online: 23-02 19:23
Mijn dongletje heeft 4 aansluitpunten: a, b, gnd, en +5V.

Volgens mij is het deze.

  • Bl4ckviper
  • Registratie: mei 2002
  • Laatst online: 21-02 10:13
quote:
Xiphalon schreef op woensdag 14 februari 2018 @ 09:39:
Mijn dongletje heeft 4 aansluitpunten: a, b, gnd, en +5V.

Volgens mij is het deze.
Ok en de 5v is dan niet aangesloten neem ik aan?

Be fast .... Be furious....


  • Xiphalon
  • Registratie: juni 2001
  • Laatst online: 23-02 19:23
Die is inderdaad niet aangesloten.

Ik bedenk me net iets: je weet dat B de + lijn is en A de - lijn?

Xiphalon wijzigde deze reactie 14-02-2018 09:49 (50%)


  • Bl4ckviper
  • Registratie: mei 2002
  • Laatst online: 21-02 10:13
quote:
Xiphalon schreef op woensdag 14 februari 2018 @ 09:42:
Die is inderdaad niet aangesloten.

Ik bedenk me net iets: je weet dat B de + lijn is en A de - lijn?
Apart.. Op mijn USB dongle staat bij de A (D+) en bij de B(D-)

Maar als dat verkeerd om zit dan zou toch ook geen communicatie met 1 meter mogelijk zijn?

Ga in ieder geval die andere dongle hier bestellen. En daarna een ground erbij zetten en dan kijken of het beter gaat ;)

Dank voor de tips dusver.

Be fast .... Be furious....


  • Femme
  • Registratie: juni 1999
  • Laatst online: 21:35

Femme

Hardwareconnaisseur

Official Jony Ive fan

Ik heb in ieder geval goede ervaringen met deze usb-stick van KMTronic in combinatie met de SDM630:
https://www.kmtronic.com/...uct&path=69&product_id=70

Ik heb er vier draaien bij mijn buurman. De data lees ik uit via IP-Symcon en een module die ik daarvoor gemaakt heb. De data heb je dan meteen in de webbrowser en in een app op je smartphone.

Daarbij was het wel een uitdaging dat je de adressen van verschillende meters niet continu door elkaar kunt pollen. Het beste is sequentieel uitlezen (of in ťťn commando meerdere adressen ophalen) per meter en dan 300ms rusttijd inlezen voordat je adressen op een andere meter inleest.

  • Bl4ckviper
  • Registratie: mei 2002
  • Laatst online: 21-02 10:13
@Femme
Hoe heb je de aangesloten? Alleen plus en min of ook de ground?

@Xiphalon
Die usb dongle van jou heb je dan ook nog twee afsluit weerstanden of 1?

Be fast .... Be furious....


  • Femme
  • Registratie: juni 1999
  • Laatst online: 21:35

Femme

Hardwareconnaisseur

Official Jony Ive fan

quote:
Bl4ckviper schreef op woensdag 14 februari 2018 @ 11:43:
@Femme
Hoe heb je de aangesloten? Alleen plus en min of ook de ground?
Twee-aderig dus alleen plus en min.

  • Bl4ckviper
  • Registratie: mei 2002
  • Laatst online: 21-02 10:13
@Femme
En de aansluitingen zitten in daisy chain?
Met of zonder weerstanden?

Of fungeert die ip sycom als master voor de slave?

Overigens lees ik sequentieel met een pauze van 0,5 seconden.

Be fast .... Be furious....


  • Femme
  • Registratie: juni 1999
  • Laatst online: 21:35

Femme

Hardwareconnaisseur

Official Jony Ive fan

quote:
Bl4ckviper schreef op woensdag 14 februari 2018 @ 11:49:
@Femme
En de aansluitingen zitten in daisy chain?
Met of zonder weerstanden?

Of fungeert die ip sycom als master voor de slave?

Overigens lees ik sequentieel met een pauze van 0,5 seconden.
Ik heb de meters aangesloten in daisy chain zonder terminator, aangezien de buslengte minimaal is (zie kast in de afbeelding hieronder). IP-Symcon fungeert inderdaad als modbus master.


  • Xiphalon
  • Registratie: juni 2001
  • Laatst online: 23-02 19:23
quote:
Bl4ckviper schreef op woensdag 14 februari 2018 @ 11:43:
Die usb dongle van jou heb je dan ook nog twee afsluit weerstanden of 1?
Ik heb inderdaad 2 afsluitweerstanden, aan elk uiteinde van de kabel 1.

  • BartOverkamp
  • Registratie: november 2017
  • Laatst online: 23-02 17:57
quote:
Bl4ckviper schreef op woensdag 14 februari 2018 @ 09:22:
@BartOverkamp

Hoe kan ik dat met een simpele multimeter meten?

Aan beide kanten zit een 120 Ohm weerstand. In de eerste meter en bij de draden in de usb dongle gestoken. Heb het ook zonder die in de dongle gedaan en ook dat maakt geen verschil.

De lengte is niet meer dan 4 a 5 meter.
Met een oscilloscoop is inderdaad nog mooier, maar als de bus idle is kun je dat prima met een simpele multimeter meten. De voorspanning is immers alleen te meten als er geen communicatie plaatsvind. Dan zou je alleen een dc spanning moeten hebben. Rs485 is mits goed aangesloten, een behoorlijk robuuste bus.

Ik zag ook ergens a+ b- en a- b+ als verwarring voorbij komen. Deze verwarring is ontstaan door profibus dp. Hierin heeft men namelijk de signalen omgedraaid ten opzichte van rs485. De chipdrivers zijn verder identiek, dus converters kunnen compatibel zijn.

  • ocaj
  • Registratie: juli 2011
  • Niet online
quote:
Bl4ckviper schreef op dinsdag 13 februari 2018 @ 22:42:

Relevante software en hardware die ik gebruik:
Linux version 4.9.0-5-amd64 (debian-kernel@lists.debian.org) (gcc version 6.3.0 20170516 (Debian 6.3.0-18) ) #1 SMP Debian 4.9.65-3+deb9u2 (2018-01-04)
Python: 2.7.13
Energy Meter logger Python scripts die gebruikt maken van minimal modbus lib.

Iemand nog briljanten ideeŽn?
Ik lees hier 3 SDM220's uit via modbus, maar gebruik daarvoor deze software: https://github.com/gianfrdp/SDM120C
en dan niet de python-scripts, maar de C-code.

Ik heb toen ik het opgezet heb uitgezocht wat de beste modbus-methode was en er bleken significante performance-verschillen te zijn tussen python, perl en c-code.
Ik lees mijn meters uit op 9600 baud. Heel zelden heb ik een crc-error (minder dan 1 of 2 per week).
De frequentie van errors was eerst hoger, maar is verbeterd nadat ik de meters VAKER ben gaan uitlezen (had ik niet aan zien komen....).
Ik lees ze 1 voor 1 uit met een tussenpauze van 100ms. Kost op 9600 baud ongeveer 300ms per meter, dus daarmee kom ik uit op alle 3 de meters elke 1,2 seconde uitlezen. Dat is snel genoeg voor een live grafiek / dashboard.

Ik roep de sdm120c-executable aan vanuit een perl-script en parse de output voor verdere verwerking in databases en dashboards. In de praktijk komt het er op neer dat ik 3 keer per seconde de usb-poort open en weer sluit, voelt een beetje als overkill. Op mijn todo-lijst staat nog om het anders te gaan doen en de seriŽle poort gewoon open te houden, maar aangezien het eigenlijk al meer dan een jaar nagenoeg probleemloos werkt op deze manier staat het tamelijk laag op mijn todo-lijst....

Probeer dus de c-versie ipv de python-versie eens, misschien dat dat stabieler werkt?
Pagina: 1


Apple iPhone X Google Pixel 2 XL LG W7 Samsung Galaxy S9 Google Pixel 2 Far Cry 5 Microsoft Xbox One X Apple iPhone 8

Tweakers vormt samen met Tweakers Elect, Hardware.Info, Autotrack, Nationale Vacaturebank en Intermediair de Persgroep Online Services B.V. © 1998 - 2018 Hosting door True

*