modbus v.s. canbus

Robot, CNC, Pneumatik, Hydraulik, mm
SeniorLemuren
Inlägg: 7812
Blev medlem: 26 maj 2009, 12:20:37
Ort: Kristinehamn

modbus v.s. canbus

Inlägg av SeniorLemuren »

Jag öppnar en separat tråd här om detta. Jag skall ju köpa closed loop drivare Makerbase MKS SERVO57D till mina Nema23 motorer. De skall kopplas till en Arduino för övervakning av axlarna och stoppa vid fel. De finns att köpa med antingen RS485 eller CAN-bus. Vad är att föredra?
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 45304
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: RS485 eller CAN-bus

Inlägg av TomasL »

Det är ju helt olika saker, RS485 är ett elektriskt protokoll, medans CAN både är ett kommunikationsprotokoll och ett elektriskt protokoll.
Om du väljer RS485, får du kontrollera vad för dataprotokoll som dina enheter använder, och implementera detta i din processor.
SeniorLemuren
Inlägg: 7812
Blev medlem: 26 maj 2009, 12:20:37
Ort: Kristinehamn

Re: RS485 eller CAN-bus

Inlägg av SeniorLemuren »

Vid RS485 så är det Modbus som gäller.
Edikt. Så frågan skulle väl varit RS485 Modbus eller CAN.
nifelheim
Den första
Inlägg: 2329
Blev medlem: 27 mars 2008, 22:31:16
Ort: stockholm

Re: RS485 eller CAN-bus

Inlägg av nifelheim »

du måste kolla på mjukvaran som ska köras, klarar den båda?
Ska du skriva den själv, vad är du mest bekväm med?
Om det inte finns några tidigare erfarenheter att stå på skulle jag säga att Modbus RTU är enklast att få igång.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 45304
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: RS485 eller CAN-bus

Inlägg av TomasL »

RS485 är väldigt enkelt, man behöver en serieport och en drivkrets, En MODBUS master är väldigt enkel att implementera i programkod.

CAN, vill jag minnas kräver dedicerade drivkretsar/tranceiver och, gissar jag en betydligt mer komplicerad master, dock har jag för mig att CAN-kretsarna kan göra en hel del, vilket avlastar processorn ordentligt.
Användarvisningsbild
hawkan
Inlägg: 2636
Blev medlem: 14 augusti 2011, 10:27:40

Re: modbus v.s. canbus

Inlägg av hawkan »

En arduino kan Modbus RTU över RS485 direkt. Det är vanligt seriell kommunikation med den inbyggda Serial (eller SoftwareSerial).
Behöver en signalnivåomvandlare som det dräller av på såna sajter.
För modultänkaren https://www.electrokit.com/rs422-/-rs48 ... or-arduino
Billigt https://www.ebay.com/itm/134694956165

CAN-bus är väl samma princip, men behöver en enhet som kan CAN. T ex den här som
också kommunicerar med seriell kommunikation https://www.instructables.com/Yes-We-CA ... 0-Seconds/

Om du gör realtidsövervakning kan det vara trixigt att göra serie-kommunikationen interruptstyrd. Bara säger så får du reda ut detaljerna.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 45304
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: modbus v.s. canbus

Inlägg av TomasL »

Med modbus måste du polla slaven hela tiden, slaven kan inte sända av sig själv.
CANbus är multimaster, dvs alla enheter på busen kan sända och ta emot av sig själva.
Användarvisningsbild
hawkan
Inlägg: 2636
Blev medlem: 14 augusti 2011, 10:27:40

Re: modbus v.s. canbus

Inlägg av hawkan »

Finns det förresten en alarm-utgång? Det brukar closed-loop drivare ha.
När positioneringsfelet blir för stort så sätts en pinne, så får man reagera på det.
SeniorLemuren
Inlägg: 7812
Blev medlem: 26 maj 2009, 12:20:37
Ort: Kristinehamn

Re: modbus v.s. canbus

Inlägg av SeniorLemuren »

Nej. Det är just det som är problemet som jag vill lösa. Jag kan polla drivarna och kontrollera axlarnas ev. vinkelfel, när det överstiger vad jag bestämt så nödstoppar jag. Det har hänt mig en gång att ena y-axeln missade lite, då inträffade den berömda byrolåde effeten och ställde till det rätt ordentligt. Förmodligen körde jag på gränsen av vad motorerna orkade.
Användarvisningsbild
Icecap
Inlägg: 26151
Blev medlem: 10 januari 2005, 14:52:15
Ort: Aabenraa, Danmark

Re: modbus v.s. canbus

Inlägg av Icecap »

Jag har kört MODBUS via rs485 med en μC. Det var lika enkelt som all annan seriell kommunikation.
SeniorLemuren
Inlägg: 7812
Blev medlem: 26 maj 2009, 12:20:37
Ort: Kristinehamn

Re: modbus v.s. canbus

Inlägg av SeniorLemuren »

Ok. Tack för all input. Jag ser inte några svårigheter med att använda varken Modbus eller CAN avseende programmering eller teknik. Priserna för signalomvandling till Arduino är i princip de samma för de båda. Arduino har även biblioteksrutiner för båda.

Min fråga var mer vilka för och nackdelar själva kommunikationstypen innebär så som jag skall använda den.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 45304
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: modbus v.s. canbus

Inlägg av TomasL »

Modbus, du måste polla slaven konstant.
CAN om det är rätt gjort, ligger du och lyssnar på meddelanden, dvs du behöver inte polla
Mindmapper
Inlägg: 6422
Blev medlem: 31 augusti 2006, 16:42:43
Ort: Jamtland

Re: modbus v.s. canbus

Inlägg av Mindmapper »

I det här fallet borde CAN vara snabbare i att kunna avslöja ett fel. Det må väl vara det som prioriteras, att så snabbt som möjligt få reda på om det börjar gå fel eller att det har blivit en för stor avvikelse.
Att lägga ett interrupt som snabbt går in och behandlar meddelanden från CAN bör väl vara vägen att gå.
SeniorLemuren
Inlägg: 7812
Blev medlem: 26 maj 2009, 12:20:37
Ort: Kristinehamn

Re: modbus v.s. canbus

Inlägg av SeniorLemuren »

TomasL skrev: 18 mars 2024, 09:26:24 Modbus, du måste polla slaven konstant.
CAN om det är rätt gjort, ligger du och lyssnar på meddelanden, dvs du behöver inte polla
Fast jag ser inte någon skillnad rent funktionsmässigt. 4 st drivrar kommer att sända data hela tiden. varvtal pulser, vinkelfel m.m så jag måste i alla fall kolla inkommande data från alla hela tiden för att se om för stort vinkelfel inträffat på någon av dem.
Användarvisningsbild
hawkan
Inlägg: 2636
Blev medlem: 14 augusti 2011, 10:27:40

Re: modbus v.s. canbus

Inlägg av hawkan »

Och om man gör ett vanligt linjärt program så fastnar man antingen i Modbus pollning eller i lyssna på CAN och kan inte göra något annat. I princip samma problem. Man vill ju att pollandet görs hela tiden så snabbt som möjligt, alt. lyssnandet efter CAN meddelanden, medan själva applikationen gör annat viktigt. Det var det jag var ute och for efter.
Går alltid att börja med ett linjärt program som kollar först den ena motorn, sedan den andra motorn, tredje, fjärde och om det är galet: explodera.
Skriv svar