Störningar i RS485
Re: Störningar i RS485
Kan du skicka en miljon byte data och kolla felfrekvensen? Är det inga fel kanske det kan kvitta med motstånd i andra änden, men det bör ju sitta ett där också, om avstånden är långa. Termineringsmotstånden gör dock ingen skillnad när det gäller externa störningar - de tar bara bort reflexer som uppstår i ledningarna. De syns ofta som 'falska' spänningsnivåer efter flankerna om man kollar på oscilloskop.
lite mer om terminering: RS485: more on transmission line termination & material + reality check
lite mer om terminering: RS485: more on transmission line termination & material + reality check
Re: Störningar i RS485
En oscilloskopbild från nuvarande anläggning borde hinta om det återstår några problem.
Re: Störningar i RS485
Tack igen för alla tips om RS485-störningar. En fråga till om CAT5 / ELAQBY-kabel. Jag har hört att man aldrig ska sätta båda ledarna (helfärgad resp. randig) i ett tvinnat par på samma skruv, utan alltid sära på dem. Detta skulle även gälla RS232. Stämmer det med era erfarenheter? Är det rentav ABC-kunskap..?
Re: Störningar i RS485
Viss kan man och oftast sprängs inget. Men vill du ha störnings-fördelen av tvinnad par (TP) är det dumt att göra så.
Men det finns ingen lag mot det.
Men det finns ingen lag mot det.
Re: Störningar i RS485
Frågan om störningar på RS485 kom upp idag på jobbet.
Jag har byggt ett larmsystem som kommunicerar med RS485, MODBUS. Jag kopplade upp två slavenheter och en master.
Dessa har kört kontinuerligt i ett par månader med färre fel än en på 100.000 (eller troligtvis inga fel alls).
Men så lossade jag ett av kretskorten, stängde av strömförsörjningen och flyttade lite på det. Plötsligt signalerar det andra kortet att det blir fler än 1% fel, dvs. mer än 1 av 100 meddelanden kommer fram med felaktiga data eller fel checksummekod. När jag kollade statistiken var fler än var femte meddelande korrupt!
Jag blev ganska förvånad och pratade med min kollega om detta. Han ifrågasatte då att jag låter enheten larma vid >1% fel. Han menade att det kan förekomma mycket störningar ute och att man inte borde varna förrän man fått 10 fel i rad efter varandra, annars bara godkänna!
Men om man har en så kass lina att bara hälften kommer fram, man inte vet om det, och det skickas ca 50 meddelanden i sekunden dygnet runt - hur stor sannolikhet är det inte då att något felaktigt meddelande "går igenom" och alltså ger felaktigt överförd data?
Kollegan menar alltså att systemet inte ska varna i onödan. Jag menar att om det är fler än 1:100 fel så bör man göra något åt det, annars kan det bli problem.
Vad anser ni? Man måste kanske inte larma så att det tutar och blinkar, men i alla fall uppmärksamma installatören på att här är det problem?
(orsaken till att felen uppstod var att när jag flyttade kortet så lade jag det på en skruv - precis där skruvplinten till RS485 satt, så det blev nån slags kortslutning)
Jag har byggt ett larmsystem som kommunicerar med RS485, MODBUS. Jag kopplade upp två slavenheter och en master.
Dessa har kört kontinuerligt i ett par månader med färre fel än en på 100.000 (eller troligtvis inga fel alls).
Men så lossade jag ett av kretskorten, stängde av strömförsörjningen och flyttade lite på det. Plötsligt signalerar det andra kortet att det blir fler än 1% fel, dvs. mer än 1 av 100 meddelanden kommer fram med felaktiga data eller fel checksummekod. När jag kollade statistiken var fler än var femte meddelande korrupt!
Jag blev ganska förvånad och pratade med min kollega om detta. Han ifrågasatte då att jag låter enheten larma vid >1% fel. Han menade att det kan förekomma mycket störningar ute och att man inte borde varna förrän man fått 10 fel i rad efter varandra, annars bara godkänna!
Men om man har en så kass lina att bara hälften kommer fram, man inte vet om det, och det skickas ca 50 meddelanden i sekunden dygnet runt - hur stor sannolikhet är det inte då att något felaktigt meddelande "går igenom" och alltså ger felaktigt överförd data?
Kollegan menar alltså att systemet inte ska varna i onödan. Jag menar att om det är fler än 1:100 fel så bör man göra något åt det, annars kan det bli problem.
Vad anser ni? Man måste kanske inte larma så att det tutar och blinkar, men i alla fall uppmärksamma installatören på att här är det problem?
(orsaken till att felen uppstod var att när jag flyttade kortet så lade jag det på en skruv - precis där skruvplinten till RS485 satt, så det blev nån slags kortslutning)
Re: Störningar i RS485
Man ska såklart ha en toleranströskel, något jäkla fel blir det ju ibland! Men att tycka att det är besvärligt vid 50% fel är WAY OUT i mitt tycke.
Min toleransgräns vid RS485 har jag inte renodlat men vid 1% hade jag definitivt lagt ganska mycket energi på att hitta anledningen! 0,1% ville fortfarande kännas dumt och jag ville definitivt veta vad som orsaker detta!
Sedan kan man såklart ha en miljö/protokoll som ger störningar/kollisioner men då är det inplanerat!
Min toleransgräns vid RS485 har jag inte renodlat men vid 1% hade jag definitivt lagt ganska mycket energi på att hitta anledningen! 0,1% ville fortfarande kännas dumt och jag ville definitivt veta vad som orsaker detta!
Sedan kan man såklart ha en miljö/protokoll som ger störningar/kollisioner men då är det inplanerat!
Re: Störningar i RS485
Risken för "falsk positiv" beror i detta fall sannolikt mest antal bitar som används i felkorrigeringen för att skydda meddelandet.
- JimmyAndersson
- Inlägg: 26511
- Blev medlem: 6 augusti 2005, 21:23:33
- Ort: Oskarshamn (En bit utanför)
- Kontakt:
Re: Störningar i RS485
Jag resonerar som Icecap.
Vid RS485 och 1Wire har jag väldigt låg tolerans för fel.
Jag hade inte räknat ut procenten (hick) innan, men jag kör tydligen med 0,05%.
Mitt "system" kontrollerar både värdena och tiden för att tydligt kunna berätta när något uppför sig konstigt.
Sedan beror det som sagt på vad det är för fel: Det finns "rätt sorts fel" och "fel sorts fel".
Problemet i tråden är av typen "fel sorts fel".
Rätt sorts fel kan i vissa fall vara till nytta och användas som filter.
(Jag började skriva om ett trick jag kommit på för att larma vid eventuell vattenläcka
men det blev för långt, så det får bli i en tråd i framtiden. Men jämför med t.ex spamfilter i mailprogram.)
Vid RS485 och 1Wire har jag väldigt låg tolerans för fel.
Jag hade inte räknat ut procenten (hick) innan, men jag kör tydligen med 0,05%.
Mitt "system" kontrollerar både värdena och tiden för att tydligt kunna berätta när något uppför sig konstigt.
Sedan beror det som sagt på vad det är för fel: Det finns "rätt sorts fel" och "fel sorts fel".
Problemet i tråden är av typen "fel sorts fel".
Rätt sorts fel kan i vissa fall vara till nytta och användas som filter.
(Jag började skriva om ett trick jag kommit på för att larma vid eventuell vattenläcka
men det blev för långt, så det får bli i en tråd i framtiden. Men jämför med t.ex spamfilter i mailprogram.)
- JimmyAndersson
- Inlägg: 26511
- Blev medlem: 6 augusti 2005, 21:23:33
- Ort: Oskarshamn (En bit utanför)
- Kontakt:
Re: Störningar i RS485
För felkontroll är det inget vidare, rent generellt/teoretiskt.
Men 1Wire är ganska fiffigt designat:
Om det blir ett fel så kan den felande enheten sållas bort från 1Wire-nätet.
Vid mindre fel så får man en felkod.
Så i praktiken fungerar det faktiskt utmärkt ändå.
Sensmoralen borde bli: Det finns en plats även för enkla typer av felkontroller.
Dessutom går det fort att sända 1 byte och 1Wire-nät har en förmåga att inkludera många enheter,
så det passar utmärkt. Speciellt i kombination med att de sorteras bort om de inte håller måttet.
I nästan alla de fall som jag fått fel så har det berott på att Windows inte är så bra på det här med tider.
Det var så jag kom fram till mina 0,05% för feltoleransen.
Men 1Wire är ganska fiffigt designat:
Om det blir ett fel så kan den felande enheten sållas bort från 1Wire-nätet.
Vid mindre fel så får man en felkod.
Så i praktiken fungerar det faktiskt utmärkt ändå.

Sensmoralen borde bli: Det finns en plats även för enkla typer av felkontroller.

Dessutom går det fort att sända 1 byte och 1Wire-nät har en förmåga att inkludera många enheter,
så det passar utmärkt. Speciellt i kombination med att de sorteras bort om de inte håller måttet.
I nästan alla de fall som jag fått fel så har det berott på att Windows inte är så bra på det här med tider.
Det var så jag kom fram till mina 0,05% för feltoleransen.
Re: Störningar i RS485
Problemet är att om man t.ex får ett mätvärde så är det av stor vikt att veta att det är korrekt. Vet man inte det så är det i stort sett värdelöst. Det kan vara korrekt, eller kanske inte eller ..
Re: Störningar i RS485
Jag kör ju MODBUS och den har ju 16-bitars CRC, så det är ju relativt bra.
Helst hade jag velat varna redan vid 0.1% fel eller fler, men då mina kollegor tycker det är extremt att varna för ett fel på tre, så kompromissade jag lite och lade mig på 1%. Jag tänkte väl att om det skulle inträffa att den larmar så finns det en orsak som bör åtgärdas. Men ute hos kunden sedan finns det ju ett antal felkällor - man använder fel kabel, kör dom parallellt med andra kablar med störande strömspikar, glömmer termineringsmotstånden osv... Vad man vill är tydligen att sälja ett system som till synes tål allt det där. Att varna för fel är lite som att säga>. Hej, vår produkt är väldigt störningskänslig - köp något annat som är bättre. men jag tänker ett steg till - vårt system är smartare för det varnar i tid, innan de fatala felen uppstår. jag tänker behålla 1% gränsen, men jag har förkortat "minnet" lite så den varnar inte så länge efteråt om det rättar till sig. Varningen finns dock kvar i loggboken.
Helst hade jag velat varna redan vid 0.1% fel eller fler, men då mina kollegor tycker det är extremt att varna för ett fel på tre, så kompromissade jag lite och lade mig på 1%. Jag tänkte väl att om det skulle inträffa att den larmar så finns det en orsak som bör åtgärdas. Men ute hos kunden sedan finns det ju ett antal felkällor - man använder fel kabel, kör dom parallellt med andra kablar med störande strömspikar, glömmer termineringsmotstånden osv... Vad man vill är tydligen att sälja ett system som till synes tål allt det där. Att varna för fel är lite som att säga>. Hej, vår produkt är väldigt störningskänslig - köp något annat som är bättre. men jag tänker ett steg till - vårt system är smartare för det varnar i tid, innan de fatala felen uppstår. jag tänker behålla 1% gränsen, men jag har förkortat "minnet" lite så den varnar inte så länge efteråt om det rättar till sig. Varningen finns dock kvar i loggboken.
Re: Störningar i RS485
Om man vänder på det. Vad händer om man gör ett (modbus) system som struntar i varningarna?
Re: Störningar i RS485
Då går det sannolikt åt h-e, vilket iofs gäller alla system oavsett namnet.
Dock är det ju naturligtvis så att MODBUS (som alla andra liknande system) rapporterar felet, och fortsätter att försöka.
Men naturligtvis, har man konstant mycket fel, så måste man ju titta på implementationen (men det beror ju också på vilken typ av fel man får).
Dock är det ju naturligtvis så att MODBUS (som alla andra liknande system) rapporterar felet, och fortsätter att försöka.
Men naturligtvis, har man konstant mycket fel, så måste man ju titta på implementationen (men det beror ju också på vilken typ av fel man får).
Re: Störningar i RS485
Hej igen,
Vi har inte fått bort kommunikationsstörningarna helt i RS485-nätet. Det är nog läge att plocka fram oscilloskopet.
Jag upptäckte nu att det finns gott om extra kablar att tillgå i CAT5-an. Vi kan t.ex. öka från 2 till 6 ledare.
Om låg resistans i kablarna alltid är bättre än hög blir det en given åtgärd. Vad tycker du/ni?
Vi har inte fått bort kommunikationsstörningarna helt i RS485-nätet. Det är nog läge att plocka fram oscilloskopet.
Jag upptäckte nu att det finns gott om extra kablar att tillgå i CAT5-an. Vi kan t.ex. öka från 2 till 6 ledare.
Om låg resistans i kablarna alltid är bättre än hög blir det en given åtgärd. Vad tycker du/ni?