Track My Order
Frequently Asked Questions
International Shipping Info
Mon-Fri, 9am to 12pm and
1pm to 5pm U.S. Mountain Time:
July 17, 2012
about 9 years ago
Hey thanks for posting that :)
I had problems with ABS_POS too and I suspect you've got the solution.
Unfortunately the answer is no, you won't be able to interface this directly to PLC relay outputs. However if you put an arduino or some other micro in between the PLC and the stepper driver then it could be done.
I remember you could get stepper driver cards for the medium sized and larger plc's back when I did PLC work.
A pololu orangatang (I can't spell) to drive 1 stepper directly - at 1A or less. That could step the stepper, and then you could use a relay output to start and stop it.
Might be worth trying 24v instead of 12v. Thats what I did when I hit some similar issues early on in my testing. I've never gone back to test 12v again now that everything is working.
Two 12v power supplies in series give 24v but at least one of them must be isolated.
Other relevant settings are the int_speed: which is the speed at which the voltage profile changes to counter back EMF generated by the motor. And the full step speed: which is the speed that the driver switches to full steps instead of microsteps
You need to take the chip select line high after writing each byte. The process of writing simply clocks the bits into an 8 bit register, and clocks the which is already in the register out. They are not read by the L6470 chip until you raise the chip select line.
There is some code here https://github.com/hendorog/dSPIN_L6470_Example
The code is a port of the above sample code with just enough hacky mods to individually address multiple sparkfun boards in the daisy chain mode mentioned in the datasheet. I've got a version which supports writing to them all at once as well, but haven't uploaded it anywhere yet.
This might help:) In the datasheet, some of the register bits for error conditions are active low. So 0x7E03 is actually all good. The only flags which are 'active' in 0x7E03 are BUSY and HI_Z. Going to 0x7C03 turns off the UVLO flag which is active low. So its saying undervoltage on the motor supply - which makes sense when you try and use it with no motor supply turned on :)
Off the top of my head, you need to place the .ino file in a directory which has the same name as the filename portion of the .ino file. Then open it in the arduino IDE and you should have better luck. The project does compile without changes from my recollection once you get the directory names right.
I had never done anything with arduinos before using this product, and while its a bit of a learning curve the results are impressive. I've now built a reprap based on these things and have it all running nicely now. The only issue (already noted above) is the thermal design of this particular pcb is pretty sub optimal. Which means you can't get anywhere near the current limit in the spec. This effectively limits the acceleration/deceleration and holding torque which can be achieved once the stepper motor has something connected to the shaft.
Figuring out the back emf constant for your motor is the other tricky issue. The method described in the ST docs noted above requires a 'scope. I don't have one and so used another method which only requires a multimeter. I found it on the net somewhere, reply if anyone needs it. There is also an purely mathematical approximation method which doesn't require driving the motor under test. In my case they both produced comparable results.
Hope that helps...
No public wish lists :(