has anyone interfaced linuxcnc with an abb NextStep?
04 May 2017 19:01 #92672
by Deckerjwd
has anyone interfaced linuxcnc with an abb NextStep? was created by Deckerjwd
Got a used abb/Baldor nextstep on its way would like to control it with linuxcnc, have 3 matching Microflex drives to go with it.
would like to use the ethernet ports, but it has Serial and digital IO also.
would like to use the ethernet ports, but it has Serial and digital IO also.
Please Log in or Create an account to join the conversation.
05 May 2017 16:53 #92710
by andypugh
Replied by andypugh on topic has anyone interfaced linuxcnc with an abb NextStep?
I get a feeling from a cursory Google that the NextStep is a motion controller. If this is the case, then interfacing it with LinuxCNC would be difficult, as LinuxCNC is _also_ a motion controller.
Of course, I could be wrong.
Of course, I could be wrong.
Please Log in or Create an account to join the conversation.
18 May 2017 07:37 #93327
by 2x2l
Replied by 2x2l on topic has anyone interfaced linuxcnc with an abb NextStep?
Nope, your analysis is pretty fair. ABB's NextStep(or SmartMove, EuroServo, SmartStep/3, NextMove, etc etc) is a motion controller (platform-- as it integrates both the software functionality of Linux CNC on a PC (I think AB's software is called "Workbench" or something stupidly generic like that) + an industrial quality standalone unit, which end up communicating via RS232 or RJ45 to your PC. The standalone then ends up as a 'master' controller to the actual motor drivers (i.e. those MicroFlexes).The stand alone unit is pretty well designed, as one would expect, but you end up tying yourself to so many proprietary junk, that it's really not worth it unless you're building your entire career around Allen-Bradley/Baldor millwrighting.
That being said, those MicroFlex'es ain't too shabby. They're pretty old, but it's got points because it was one of the first brushless drivers in it's class and it was pretty flexible. Like, if you used the compatible Baldor motors, the drive would give you real time power analysis statistics so you can calculate the power factor, current draw for each leg, etc. Each drive basically gave you more or less all the tools needed to remotely run a full diagnostics suite to see what's generating your fault....
This is a long winded way of saying, I'd bypass the NextStep and use the Microflex(s) presuming with it I had the appropriate Baldor motors that were paired with the original setup, and those motors were spec'd to whatever requirements I had. The value proposition is in the ability to pair the drive with the motors. If not, ehhhhh... well, just look at the Ti InstaSPIN and you'll see how easy it is to design a drive to your liking with absolutely amazing performance for a weekend's worth of reading PDFs.
That being said, those MicroFlex'es ain't too shabby. They're pretty old, but it's got points because it was one of the first brushless drivers in it's class and it was pretty flexible. Like, if you used the compatible Baldor motors, the drive would give you real time power analysis statistics so you can calculate the power factor, current draw for each leg, etc. Each drive basically gave you more or less all the tools needed to remotely run a full diagnostics suite to see what's generating your fault....
This is a long winded way of saying, I'd bypass the NextStep and use the Microflex(s) presuming with it I had the appropriate Baldor motors that were paired with the original setup, and those motors were spec'd to whatever requirements I had. The value proposition is in the ability to pair the drive with the motors. If not, ehhhhh... well, just look at the Ti InstaSPIN and you'll see how easy it is to design a drive to your liking with absolutely amazing performance for a weekend's worth of reading PDFs.
Please Log in or Create an account to join the conversation.
18 May 2017 11:27 - 18 May 2017 11:35 #93335
by bkt
Replied by bkt on topic has anyone interfaced linuxcnc with an abb NextStep?
I think you can disconnect all from NextStep and add your pc + mesacard + Microflex Drive using X3 and X7 connector only for exe (drive with analogue signal & digital i/o + encoder simulation output as Lcnc feedback). So you can run your Machine with Lcnc and Microflex Drive ..... NextStep go to garage for a long sleeping. I did not remember this link I kept from a bit on firefox ... but maybe it is also possible to use pyprofibus ...
pyprofibus for Linuxcnc
... never try.
regards
giorgio
regards
giorgio
Last edit: 18 May 2017 11:35 by bkt.
Please Log in or Create an account to join the conversation.
18 May 2017 22:10 #93369
by Deckerjwd
Replied by Deckerjwd on topic has anyone interfaced linuxcnc with an abb NextStep?
So my nextMove e100(not a nextstep) came in, and yes seems to be a stand alone controller. the complexity is advanced, think this is how it would work. I would like for linuxcnc to run the kinematics and interface, not going to write it from scatch in ABB Mint language. would like to use mint for basic I/O and Tuning, the encoder are build to the Microflex drive then Feed into the NextMove. if i could feed them back to linuxcnc that would be cool, USB serial maybe. the NextMove has a heap of analog in and out along with some high speed Digital I/O, let it take all the Estop, limit, home, Analog I/O... I have never did a servo setup in linuxcnc do i have to have a Special card or would duel Parports work?
Anyway this is a concept machine, if anyone wants to help i will posting info here. the hardware fell in my lap so going to play with it
J
Anyway this is a concept machine, if anyone wants to help i will posting info here. the hardware fell in my lap so going to play with it
J
Please Log in or Create an account to join the conversation.
- tommylight
- Away
- Moderator
Less
More
- Posts: 19198
- Thank you received: 6436
18 May 2017 22:40 #93370
by tommylight
Replied by tommylight on topic has anyone interfaced linuxcnc with an abb NextStep?
You can use parallel port for simple servo setups, but do not expect high speeds with it.
forum.linuxcnc.org/show-your-stuff/31742...2-euros-for-2-motors
That is an example of driving DC servo motors directly from parallel port.
forum.linuxcnc.org/show-your-stuff/31742...2-euros-for-2-motors
That is an example of driving DC servo motors directly from parallel port.
Please Log in or Create an account to join the conversation.
19 May 2017 10:30 #93378
by 2x2l
Replied by 2x2l on topic has anyone interfaced linuxcnc with an abb NextStep?
Bypass the NextMove - sell it on ebay (old PLC junk like that can often be worth close to MSRP if a company needs to replace that specific component).
Use the money to get the Mesa 5i20 or whatever as K1 said . You'll have at least a few hundred bucks left on that.
(Or if you're adventurous, this is a way better/more flexible deal, should you happen to know VHDL or Verilog. Alternatively, you could download the Xilinix 20 gig package, rip the 5i20 synthesized code, re-configure for your wire in-out for proper pinning, and then load it onto your Zynq -- www.digikey.com/product-detail/en/digile...1286-1044-ND/4840864 --- no seriously, haha don't do this unless you at least have played with FPGA's in undergrad, just get the 5i20 -- hey just throwing out options depending on what you really want to accomplish, since you didn't really define your full equipment, budget, timeline, or goals, I'm trying to hit a bit of all the bases...)
I think you're missing the point of the Microflex drive paired with a compatible Baldor motor. They're designed to offer closed-loop feedback real time (via syncro serial, or incremental encoding or whatever). That means you're really not going to be hard-up for latency since all of the high-resolution negotiation is done on the MF-drive itself with the motor. You bang out an instruction a millisecond or whatever to the MFdrive. The MFdrive then is taking care of all the microsecond resolution positioning/closed-loop velocity adjustments by directly talking to the motor. (See: MN1919.pdf re: X7 and X8).
An oversimplified version of what's happening here is HostPC (running Linux w[/img]/ your MESA board) is firing off a g-code instruction (see arrow "1").
Then there's a lot of rapid chat between the 2 and 3, with the MF drive saying 'alright go here, at this velocity' (arrow 2), and the motor is firing back (arrow 3) some info saying 'alright I'm at point x,y right now'. The drive gets that message, and goes "uh-oh, you should be a little further..you must be loaded pretty hard, let's see how you do with half an amp more". The important thing to note is that there's no computer interaction here to be the bottleneck[1]. The logic in the MFdrive + the parameters you set it to operate within continuously adjust the working parameters so you get a closed-loop process control.
[1] Serial and parallel port are actually super fast. You're just banging out bits. The information limit is pretty much how fast your square-waves can rise/fall while maintaining enough signal fidelity to keep the transmission 'eye'. Unlike USB there's no overhead for host-device negotiation and all sorts of things like that. You can get USB3 down to around 125 usec pretty reliably which is good enough for machining, no doubt, but don't under estimate
Use the money to get the Mesa 5i20 or whatever as K1 said . You'll have at least a few hundred bucks left on that.
(Or if you're adventurous, this is a way better/more flexible deal, should you happen to know VHDL or Verilog. Alternatively, you could download the Xilinix 20 gig package, rip the 5i20 synthesized code, re-configure for your wire in-out for proper pinning, and then load it onto your Zynq -- www.digikey.com/product-detail/en/digile...1286-1044-ND/4840864 --- no seriously, haha don't do this unless you at least have played with FPGA's in undergrad, just get the 5i20 -- hey just throwing out options depending on what you really want to accomplish, since you didn't really define your full equipment, budget, timeline, or goals, I'm trying to hit a bit of all the bases...)
I think you're missing the point of the Microflex drive paired with a compatible Baldor motor. They're designed to offer closed-loop feedback real time (via syncro serial, or incremental encoding or whatever). That means you're really not going to be hard-up for latency since all of the high-resolution negotiation is done on the MF-drive itself with the motor. You bang out an instruction a millisecond or whatever to the MFdrive. The MFdrive then is taking care of all the microsecond resolution positioning/closed-loop velocity adjustments by directly talking to the motor. (See: MN1919.pdf re: X7 and X8).
An oversimplified version of what's happening here is HostPC (running Linux w[/img]/ your MESA board) is firing off a g-code instruction (see arrow "1").
Then there's a lot of rapid chat between the 2 and 3, with the MF drive saying 'alright go here, at this velocity' (arrow 2), and the motor is firing back (arrow 3) some info saying 'alright I'm at point x,y right now'. The drive gets that message, and goes "uh-oh, you should be a little further..you must be loaded pretty hard, let's see how you do with half an amp more". The important thing to note is that there's no computer interaction here to be the bottleneck[1]. The logic in the MFdrive + the parameters you set it to operate within continuously adjust the working parameters so you get a closed-loop process control.
[1] Serial and parallel port are actually super fast. You're just banging out bits. The information limit is pretty much how fast your square-waves can rise/fall while maintaining enough signal fidelity to keep the transmission 'eye'. Unlike USB there's no overhead for host-device negotiation and all sorts of things like that. You can get USB3 down to around 125 usec pretty reliably which is good enough for machining, no doubt, but don't under estimate
Please Log in or Create an account to join the conversation.
20 May 2017 09:42 #93397
by andypugh
I think that this could be made to work. I am not sure it is sensible, but it could be made to work.
At the HAL level, which is where it is easy to interface new hardware, LinuxCNC sends out a new set of position commands every mS.
If you can configure the NextMove to follow those position commands, then it should all work.
You probably need to write a new driver, as a HAL component. This would take the position data from LinuxCNC and build it into data packets in a format understood by the NextMove.
USB to serial won't work. USB won't necessarily transmit the data inside the 1mS window.
LinuxCNC has a number of drivers that send data direct to the parallel port. I don't know of any that use the serial port.
There is a HAL component that toggles the status lines of the serial port, so perhaps there is some fundamental difficulty in accessing the UART from HAL.
github.com/LinuxCNC/linuxcnc/blob/master...drivers/serport.comp
You will see that is uses simple inb() and outb() instructions to control the port pins.
That component is written in the "comp" preprocessing language , which is the easy way to create HAL drivers in LinuxCNC.
I imagine that a home-made serial port driver would need to run in a base-thread and handle handshaking internally, but I don't know for sure, maybe the hardware is usable.
Replied by andypugh on topic has anyone interfaced linuxcnc with an abb NextStep?
I would like for linuxcnc to run the kinematics and interface, not going to write it from scatch in ABB Mint language. would like to use mint for basic I/O and Tuning, the encoder are build to the Microflex drive then Feed into the NextMove. if i could feed them back to linuxcnc that would be cool, USB serial maybe.
I think that this could be made to work. I am not sure it is sensible, but it could be made to work.
At the HAL level, which is where it is easy to interface new hardware, LinuxCNC sends out a new set of position commands every mS.
If you can configure the NextMove to follow those position commands, then it should all work.
You probably need to write a new driver, as a HAL component. This would take the position data from LinuxCNC and build it into data packets in a format understood by the NextMove.
USB to serial won't work. USB won't necessarily transmit the data inside the 1mS window.
LinuxCNC has a number of drivers that send data direct to the parallel port. I don't know of any that use the serial port.
There is a HAL component that toggles the status lines of the serial port, so perhaps there is some fundamental difficulty in accessing the UART from HAL.
github.com/LinuxCNC/linuxcnc/blob/master...drivers/serport.comp
You will see that is uses simple inb() and outb() instructions to control the port pins.
That component is written in the "comp" preprocessing language , which is the easy way to create HAL drivers in LinuxCNC.
I imagine that a home-made serial port driver would need to run in a base-thread and handle handshaking internally, but I don't know for sure, maybe the hardware is usable.
Please Log in or Create an account to join the conversation.
20 May 2017 09:49 #93398
by andypugh
The 5i20 is quite old and quite expensive now. The 5i24 has exactly the same amount of IO and a more powerful FPGA[1] for half the price.
[1] I think it is, anyway. I am not sure how you compare FPGAs. In any case, even if it is much less powerful, it is still good enough to run all the LinuxCNC-compatible Hostmot2 firmwares.
Replied by andypugh on topic has anyone interfaced linuxcnc with an abb NextStep?
Use the money to get the Mesa 5i20 or whatever as K1 said . You'll have at least a few hundred bucks left on that.
The 5i20 is quite old and quite expensive now. The 5i24 has exactly the same amount of IO and a more powerful FPGA[1] for half the price.
[1] I think it is, anyway. I am not sure how you compare FPGAs. In any case, even if it is much less powerful, it is still good enough to run all the LinuxCNC-compatible Hostmot2 firmwares.
Please Log in or Create an account to join the conversation.
24 May 2017 18:05 #93600
by Deckerjwd
Replied by Deckerjwd on topic has anyone interfaced linuxcnc with an abb NextStep?
so digging in to the they have step and dir so dive just like a stepper drive. also can set up a if out of position by number of steps then send signal on general output. there is a encoder feed though for getting drive position to the nextMove or putting them in follow mode( ie 1 axis with 2 or more motors). the nextmove has four stepper motors out, think this would be good for tool changers / parts loaders whatever. anyway love all the idea maybe make some videos.
j
j
Please Log in or Create an account to join the conversation.
Time to create page: 0.295 seconds