FPGA interface kaart

LinuxCNC kan hier besproken worden

Moderator: Moderators

Gebruikersavatar
DaBit
Donateur
Berichten: 7863
Lid geworden op: 05 dec 2012 13:48
Locatie: Oss

Re: FPGA interface kaart

Bericht door DaBit » 21 okt 2018 11:15

Mijn Emco draait aangepaste firmware in de FPGA (van de 5i25). Dat had ik met een willekeurig ander FPGA-bord ook kunnen doen, maar waarom zou ik?

Voordat je begint met een LinuxCNC, een FPGA en een Ethernet-kabel tussen die twee in zou ik eerst eens heel goed de Hostmot2 sources bestuderen en snappen wat ze doen en waarom. Er zitten nog wat speciale grappen en grollen in om het goed te laten werken.

Weet je wat ook een leuk bordje is voor je? Deze: https://www.terasic.com.tw/cgi-bin/page ... ish&No=941
Moet je voor de gein eens kijken wat de MachineKit mannen ermee uitgespookt hebben.

Gebruikersavatar
Breaker
Donateur
Berichten: 1735
Lid geworden op: 26 mei 2015 22:43
Locatie: Nabij Antwerpen
Contacteer:

Re: FPGA interface kaart

Bericht door Breaker » 21 okt 2018 11:23

Met het gevaar ook naar de CNC-Zoo verwezen te worden... :roll:

Je geeft hoog op over LinuxCNC: Gebruik het dan ook! Een EtherCAT master module bestaat al en kan gebruikt worden met (o.a.) een Intel ethernet kaart van enkele tientjes.

Ook voor de performance hoef je het ook niet te laten:
4. Conclusion
The method of setting up an open source-based EtherCAT master system, and real-time performance were examined in this study. Guaranteeing real-time performance of EtherCAT master system is very important because EtherCAT master transmits and receives data with the EtherCAT slave through a polling. Therefore, the real-time performance of Beckhoff’s TwinCAT, which is the standard of EtherCAT master, and an open source-based EtherCAT master platform were compared in the experiment. Comparison results showed that the system set up was similar to or better than TwinCAT. Therefore, the proposed open source-based EtherCAT master system can be very useful for the field of EtherCAT-based robotics area because it can reduce cost and provide flexibility in application development.
Zelf een EtherCAT master (‘VOC’ , ‘kopstation’) ontwikkelen, leuk, maar onnodig, kan je misschien beter overwegen al bestaande initiatieven voor LinuxCNC te ondersteunen door het naar 64-bit te brengen als je dat een probleem vind, met de kennis die je hebt van EtherCAT en programmeren moet dat een eitje zijn. Laat het maar zien als je de kaas niet snijdt.

Ook al is het niet je vraag, het helpt altijd om een beetje achtergrond te geven voor degene die niet zo goed op te hoogte zijn als jij, al is het alleen maar voor anderen om te begrijpen wat je eigenlijk wilt bereiken, bijvoorbeeld:
EtherCat, het is een bussysteem, waarbij de opdrachten vanuit een master op de bus worden gezet en door aangekoppelde modules worden ontvangen, bekeken en dan naar de volgende module worden doorgezonden, degene waarvoor het bericht bedoeld is zal de opdracht oppakken en zo nodig data toevoegen die weer gelezen kan worden door de master of andere modules.

Beckhoff is zo’n beetje de uitvinder van EtherCAT en heeft vele modules die aangekoppeld kunnen worden, bv:
https://www.youtube.com/watch?v=SEl1X-hrdEw

De slaves kunnen niet zelfstandig informatie verzenden, maar moeten hierom gevraagd worden door de master. Het is een open systeem dus Beckhoff en anderen hebben die master modules, maar het kan ook met Linux of LinuxCNC waar een software module voor bestaat die een Ethernet kaart kan omtoveren in een EtherCAT master, zodoende kan LinuxCNC bepalen welke informatie op de bus wordt gezet en uitgelezen en dit kan gecombineerd worden met andere informatie die op de master beschikbaar is, bijvoorbeeld uit de CNC modules. Zo kan LinuxCNC bepalen wat er gebeurt.
Geduld is een schone zaak, frezen niet...

Gebruikersavatar
DaBit
Donateur
Berichten: 7863
Lid geworden op: 05 dec 2012 13:48
Locatie: Oss

Re: FPGA interface kaart

Bericht door DaBit » 21 okt 2018 11:41

In een EtherCAT systeem is LinuxCNC de master, en voor de master kun je nog wegkomen met gewone hardware.
De andere kant van de lijn is vervelender, want een EtherCAT slave is meer dan simpelweg 2 Ethernet-poortjes. Dan ontkom je toch niet aan iets als een LAN9252 of eventueel een IP-core in een FPGA en 2 reguliere PHY's.

Mesa gebruikt 'gewoon' UDP en een DPLL voor de kloksynchronisatie. Werkt ook zolang je geen tientallen slaves hebt.

Gebruikersavatar
Breaker
Donateur
Berichten: 1735
Lid geworden op: 26 mei 2015 22:43
Locatie: Nabij Antwerpen
Contacteer:

Re: FPGA interface kaart

Bericht door Breaker » 21 okt 2018 11:54

Maar als slave modules wil Kaasie de Beckhoff modules gebruiken, had ik hieruit afgeleid:
Kaasie schreef:
20 okt 2018 22:25
Ga je naar Beckhoff style toe
Maar ja, kan het verkeerd hebben, er is niet erg veel om op af te gaan...
Geduld is een schone zaak, frezen niet...

Gebruikersavatar
DaBit
Donateur
Berichten: 7863
Lid geworden op: 05 dec 2012 13:48
Locatie: Oss

Re: FPGA interface kaart

Bericht door DaBit » 21 okt 2018 12:15

Dan is er weinig nodig behalve een Ethernetkaart die ondersteund word door de LinuxCNC EtherCAT master. Met PREEMPT_RT zal dat wel zo'n beetje alles zijn, al is een Intel Pro1000 kaartje goedkoop en eigenlijk altijd goed.

Ik heb wel eens ooit naar de slaves zitten kijken, destijds naar Beckhoffs ET1100.
Ik vind het in de basis toch knap ideaal, Ethernet-kabeltje en voedingskabeltje de machine rond trekken en bijvoorbeeld gewoon lokaal op de brug een kleine I/O module die de pneumatische kleppen aanstuurt en sensoren inleest, naast de motor een drive met RJ45 stekketjes, etc.
Al is het nut ervan voor een kleine machine met weinig sensoren/actuatoren zoals onze hobbybrouwsels nog best beperkt.

Markus
Berichten: 339
Lid geworden op: 01 sep 2007 22:43
Locatie: Aduard, Groningen
Contacteer:

Re: FPGA interface kaart

Bericht door Markus » 21 okt 2018 16:49

Even off topic, nou ja half off topic, maar zijn er hier mensen op het Forum die met die Xilinx software om kunnen gaan ?

Ik wou die 5 phase stappen driver die ik ooit gemaakt had opnieuw doen nu open source en zonder processor maar met een Xilinx CPLD, tis slechts een up/down counter en een look up table met 20 entries.

Mijn inschatting is dat me een paar dagen zou kosten om het juiste ontwikkelbordje uit te zoeken, de software te snappen en de code te schrijven maar als iemand hier op het forum er goed inzit dan is het maar paar uurtjes, of vergis ik me ?

Heeft iemand daar zin in evetueel voor een of andre beloning ?, dus alleen de CPLD

Greezt,

Markus

Kaasie
Donateur
Berichten: 32
Lid geworden op: 15 okt 2018 22:20

Re: FPGA interface kaart

Bericht door Kaasie » 21 okt 2018 18:32

De beckhoff werkt nog niet onder linuxcnc 64 bit. Heeft met dependencies te maken die voor i386 (32 bit) zijn geschreven.

Het leukste vindt ik om met bijna niets te beginnen. Een heel eenvoudig Xilinx spartan 6 kaartje met een ethernet connector en van daaruit alles stap voor stap proberen te doorgronden voor linuxcnc.
De Isa software is nieuw voor mij. Maar wat ik ervan zie is dat het een heel stabiel en krachtig software pakket is.
Gelukkig is de source code van Mesa beschikbaar, dus dat kan dienen als voorbeeld en naslagwerk. Een mooi winterprojectje.

@Markus,

Wat ik ervan begrijp is dat je niet met linuxcnc werkt. Daar zijn verschillende steptype's beschikbaar in de source code.

zeeschuim
Berichten: 228
Lid geworden op: 05 jun 2015 21:54
Contacteer:

Re: FPGA interface kaart

Bericht door zeeschuim » 21 okt 2018 20:03

Als ver plassers zijn jullie in mijn ogen cum laude geslaagd.
Maar heeft de gewone frezer hier nu aan? Is er nu direct 5 assig frezen in beeld? Of is de trajectory planner nu in eens een S-planner waarmee we stenen tijdperk Beng-Beng bewegingen van Mach en Eding achter ons laten?
Met a.w. wat moeten we hier nu mee als simpele geautomatiseerde figuurzagers?

kawarider
Berichten: 505
Lid geworden op: 17 okt 2016 20:46
Locatie: Drongelen
Contacteer:

Re: FPGA interface kaart

Bericht door kawarider » 21 okt 2018 20:23

Nou, verplassers zou ik het niet willen noemen, maar mij waren ze na post 3 al kwijt. Toch mooi als je pakket in een keer en precies doet wat je wilt. Maar wel interessant om te lezen.
En modbus? wat is dat dan en waarom doen je het daar niet mee?

Kaasie
Donateur
Berichten: 32
Lid geworden op: 15 okt 2018 22:20

Re: FPGA interface kaart

Bericht door Kaasie » 21 okt 2018 20:47

Met de ise software zojuist een eerste bitfile gemaakt van een 7i92 mesa ethernet kaartje.
[image]http://www.mesanet.com/graphics/parallel/7i92colo.png[/image]
Het kaartje heeft een family : spartan 6, device : XC6SLX9 in het eigenschappen scherm van de ise software.

Eerste test was gedaan met een volledige library. De output was een bitfile in de source directory van 341 kb.
De volledige library is bijna een doolhof met alle mogelijke mesa toepassingen, dus dat was aanvankelijk best verwarrend om mee te beginnen.

Daarna heel veel gewist en onderstaande bestanden overgehouden die in de top file TopEthernetHostMot2 zijn geselecteerd voor de test :
use work.i92_x9card.all; -- needs 7i92.ucf and SP6 x9 144 pin
use work.PIN_G540x2D_34.all; -- 7i92 step config with DPLL for 2X Gecko 540

De output is ook nu een bit file van 341 kb. Dat is mooi.
Daarna in de top file TopEthernetHostMot2 heel veel weg gehaald aan configuraties (commentaar) die we niet gebruiken en nog een keer een bitfile gemaakt. Ook deze keer was de output goed.

Ik las ergens dat er een mogelijkheid is om een vdh file om te zetten naar grafische output. Dat zou mooi zijn als dat lukt.

@Kawarider,
Modbus werkt goed onder linuxcnc. Zelf gebruik ik het niet in de real time omgeving, maar in de user interface omgeving met behulp van python programmeer taal.
Ik heb daar bv. een analoge input, output module op staan via usb naar modbuss. Ook plasma inverters kun je op deze wijze aanspreken en instellen.

Gebruikersavatar
DaBit
Donateur
Berichten: 7863
Lid geworden op: 05 dec 2012 13:48
Locatie: Oss

Re: FPGA interface kaart

Bericht door DaBit » 21 okt 2018 21:13

zeeschuim schreef:
21 okt 2018 20:03
Als ver plassers zijn jullie in mijn ogen cum laude geslaagd.
De een heeft enkel lol in z'n auto op het circuit en laat het sleutelen aan z'n monteurs over, een ander sleutelt graag en stuurt zo af en toe zijn auto over het circuit....
Die tweede categorie wil nog wel eens neuzelen over klepveertjes en injectoren, maar dat maakt ze niet minder autoliefhebber dan de eerste categorie.

Een volledige S-planner is in LinuxCNC nooit doorgevoerd (die was er wel ooit; Arais Robo had er eentje gemaakt); alle cornercases correct krijgen is toch lastig en daar zijn ze best streng op voor een elementair stuk code. Een beetje conservatief is ook goed; voer Eding een bochtje bestaande uit korte lijnstukjes die elk niet meer dan 3 graden in hoek verschillen, en Eding gaat ook al de mist in kwa acceleratielimieten. Of dat moet inmiddels opgelost zijn. Maar het geeft aan dat zelfs een vooruitkijkende trapezoidale trajectplanner zonder jerk/jounce-begrenzing al niet bepaald een simpel stukje code is. Er zijn er op deze aardkloot niet veel die zo'n huzarenstukje kunnen leveren, en Bert Eding is er een van.

Maar mijn frees draait wel met een beperkte vorm van jerk-begrenzing. De acceleratie-stap is niet oneindig steil, maar ook niet zo afgerond als je 'm eigenlijk graag zou willen hebben. Maar zelfs dat beetje merk je al goed in het soepel lopen en minder bonken van de machine, zeker bij veel korte heen en weer bewegingen met hoge voeding.
Met a.w. wat moeten we hier nu mee als simpele geautomatiseerde figuurzagers?
Als Kaassie iets moois voor ons maakt waarmee we simpelweg een 8-aderig CAT5 kabeltje de machine rond hoeven te leggen (4 aders Ethernet, 4 aders prik, moet best kunnen voor de gemiddelde steppermachine) in plaats van kasten vol elektronica en kabelrupsen vol kabels te stoppen, en dat voor een leuk prijsje....
kawarider schreef:
21 okt 2018 20:23
Toch mooi als je pakket in een keer en precies doet wat je wilt. Maar wel interessant om te lezen.
Heel mooi, alleen voor mijn frees bestond het niet. Mach3 en CSMIO/A ofzoiets had misschien gekund voor de analoge servos, maar gooi nog een paar steppers in de mix die je synchroon wil laten lopen en dan is het alles bij elkaar zeker zo ingewikkeld als LinuxCNC met Mesa.
En modbus? wat is dat dan en waarom doen je het daar niet mee?
Als je meerdere motordrives, inleesmodules voor je eindschakelaars, etc. aan wil sturen over 1 kabeltje dan is het van belang dat dat kabeltje genoeg gegevens kan verstouwen, wat Modbus over RS485 niet lukt. Over netwerk eventueel wel, maar dan komt probleem nummer 2: al die apparaten moeten exact op dezelfde tijd wat doen en in harmonie blijven. Als je een 45 graden schuine lijn wil figuurzagen dan is het niet handig als de X-as eerder begint te lopen dan de Y-as.

En dat is wat met Modbus niet zo goed gaat lukken. En waarom 2 Ethernet motion-kaarten op Mach3 aansluiten met de X en Y motoren op nummer 1 en de Z en A motor op nummer 2 niet zomaar kan. Als je de meerdere motorassen binnen een paar micrometer gelijkop wil laten lopen terwijl je met 10m/min aan het voeden bent dan komt dat allemaal best wel nauw.
Met EtherCAT (en zijn soortgenoten) kunnen dat soort dingen wel, en meer.


En verder, ik heb het al vaker gezegd: een standaardmachine zoals Eding en UCCNC aan kunnen sturen is ook in LinuxCNC een kwestie van installeren, wizard doorlopen, en werken. Het word pas ingewikkeld tegen de tijd dat het met Eding en UCCNC niet meer kan.

Kjelt
Berichten: 781
Lid geworden op: 14 jun 2007 21:51
Locatie: Eindhoven

Re: FPGA interface kaart

Bericht door Kjelt » 21 okt 2018 23:51

Dus als ik het nu goed begrijp is het de bedoeling om een Beckhof Ethercat slave clones te bouwen die door Linuxcnc aangestuurd kunnen worden?
Heb je daar dan perse een FPGA voor nodig? Dat zou toch ook met een Arm Cortex-M4 of M7 processor wel moeten lukken? Stuk goedkoper.

Tonybryden
Berichten: 432
Lid geworden op: 29 mei 2015 15:44
Locatie: nijmegen
Contacteer:

Re: FPGA interface kaart

Bericht door Tonybryden » 22 okt 2018 23:14

Ben ik even blij dat ik dit niet allemaal moet leren om mijn frees te laten werken😁😁

Kaasie
Donateur
Berichten: 32
Lid geworden op: 15 okt 2018 22:20

Re: FPGA interface kaart

Bericht door Kaasie » 23 okt 2018 22:40

Okey,

Gisteren ethercat software geinstalleerd op 64 bit linux, dat lukte aardig. Nu met nieuwe installatie opnieuw proberen te installeren en wil ie niet meer. :roll:
Meestal kost iets nieuws uitdokteren in linux een week of meer aan tijd, maar goed wel weer iets geleerd. Ik moet het gewoon nog een keer proberen.

De Ethercat maakt gebruikt van een min of meer standaard ethernet driver, standaard kun je kiezen voor de generic driver, deze is niet real time.
Dus ik vraag me af met welke driver mesa gebruikt voor de ethernet kaarten. Die zouden dan een autoconfiguratie zoekscript moeten hebben... Deze onthou ik.

Het commando om je ethernet driver te vinden is : sudo lspci -v | grep "Ethernet\|driver"|grep -A1 Ethernet
Mijn pc had als driver een : e1000e ethernet driver.

@Tony,
Ja inderdaad.

@Kjelt,
Ik heb nog niet echt een idee. Maar wat Dabilt zegt, kan ook. Primair denk ik aan een FPGA omdat deze vrij programmeerbaar is.
In plaats van een Ethercat bus over Ethernet, zou ik ook kunnen kijken naar een eenvoudigere bus met dezelfde snelheid. Ik denk dat dit idee moet groeien.
Beckhoff claimt ethercat. Maar in feite kan een ieder een protocol verzinnen over een Ehternet bus.

Plaats reactie