Problem med Modbus + python

Elektronikrelaterade (på komponentnivå) frågor och funderingar.
Användarvisningsbild
lillahuset
Gått bort
Inlägg: 13969
Blev medlem: 3 juli 2008, 08:13:14
Ort: Norrköping

Re: Problem med Modbus + python

Inlägg av lillahuset »

Om man har tur alltså. Jag har för mig att common mode är max -7V/+12V på de flesta kretsar. Jag har sett RS485 "sluta" fungera med ~3m kabel i samma system.

Edit: Skit samma för min del. Jag skulle iallafall köra med nolla och korrekt terminering. Alltså med tre motstånd i ena änden av kabeln och ett eller tre i andra.
Användarvisningsbild
lillahuset
Gått bort
Inlägg: 13969
Blev medlem: 3 juli 2008, 08:13:14
Ort: Norrköping

Re: Problem med Modbus + python

Inlägg av lillahuset »

Signal ground, don't forget it. While a differential signal does not require a signal ground to communicate, the ground wire serves an important purpose. Over a distance of hundreds or thousands of feet there can be very significant differences in the voltage level of "ground." RS-485 networks can typically maintain correct data with a difference of -7 to +12 Volts. If the grounds differ more than that amount, data will be lost and often the port itself will be damaged. The function of the signal ground wire is to tie the signal ground of each of the nodes to one common ground. However, if the differences in signal grounds is too great, further attention is necessary. Optical isolation is the cure for this problem. Contact B&B Technical Support for more details.
http://www.bb-elec.com/Learning-Center/ ... ndard.aspx
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 45265
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Problem med Modbus + python

Inlägg av TomasL »

Jag bestrider inte det faktum att den gemensamma linan är nödvändig i vissa fall, problemet är att de flesta enheter saknar den.
Användarvisningsbild
lillahuset
Gått bort
Inlägg: 13969
Blev medlem: 3 juli 2008, 08:13:14
Ort: Norrköping

Re: Problem med Modbus + python

Inlägg av lillahuset »

OK, men vi har alltid kört med tredje ledaren. Men det är ju en smaksak.

Jag misstänker dock att det kan vara antingen termineringsproblem eller timingproblem i det här fallet.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 45265
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Problem med Modbus + python

Inlägg av TomasL »

Terminering eller timing, borde ge konstanta fel, kan man tycka.
danielr112
Inlägg: 8050
Blev medlem: 18 januari 2009, 00:48:24
Ort: Alvesta, Småland

Re: Problem med Modbus + python

Inlägg av danielr112 »

Och nu kan jag inte få fram felet igen för nu funkar det oavsett om jag har invertern igång eller inte :)

Oavsett så ska jag se över detta imorgon igen:
Line termination may be a 150 ohms value ( 0.5 W ) resistor.
A serial capacitor ( 1 nF, 10 V minimum ) with a 120 Ohms ( 0.25 W ) resistor is a better choice when a polarization of the pair must
be implemented (see here after).
Användarvisningsbild
lillahuset
Gått bort
Inlägg: 13969
Blev medlem: 3 juli 2008, 08:13:14
Ort: Norrköping

Re: Problem med Modbus + python

Inlägg av lillahuset »

Det är också bra med lite bias mot båda ledningarna i åtminstone ena änden så att UARTen ser förbindelse utan trafik när det inte är trafik.
danielr112
Inlägg: 8050
Blev medlem: 18 januari 2009, 00:48:24
Ort: Alvesta, Småland

Re: Problem med Modbus + python

Inlägg av danielr112 »

Yes ska dubbelkolla detta. Det var sektionen precis efter i dokumentet:
When there is no data activity on an RS-485 balanced pair, the lines are not driven and, thus susceptible to external noise or
interference. To insure that its receiver stays in a constant state, when no data signal is present, some devices need to bias the
network.
Each MODBUS device must be documented to say :
- if the device needs a line polarization,
- if the device implements, or can implement, such a line polarization.
If one or several devices need polarization, one pair of resistors must be connected on the RS-485 balanced pair :
- a Pull-Up Resistor to a 5V Voltage on D1 circuit,
- a Pull-Down Resistor to the common circuit on D0 circuit.
The value of those resistors must be between 450 Ohms and 650 Ohms. 650 Ohms resistors value may allow a higher number of
devices on the serial line bus.
In this case, a polarization of the pair must be implemented at one location for the whole Serial Bus. Generally this point is to
choose on the master device or on its Tap. Other devices must not implement any polarization.
The maximum number of devices authorized on such a MODBUS Serial Line is reduced by 4 from a MODBUS without polarization.
danielr112
Inlägg: 8050
Blev medlem: 18 januari 2009, 00:48:24
Ort: Alvesta, Småland

Re: Problem med Modbus + python

Inlägg av danielr112 »

Bytt adapter inget nämnbart bättre resultat. Däremot kör jag pajen på batteribank så funkar det nästan felfritt.

Får undersöka vidare men oavsett så verkar det bero på ovan förslag så det ska kollas. Uppdaterar när jag "löst" det.
Skriv svar