03-06-2013 02:39 PM
I am attempting to use the LabView Modbus library to communicate with a Kollmorgen AKD servo drive. I am not using any control boards/cards, I have the AKD connected directly to my laptop via Ethernet. I have made some progress with simple commands but am struggling with more complex commands and data. I have created a series of simple vi's that execute a single command as building blocks. Attached are vi's for clearing faults, enabling the drive, and turning on the drive (velocity mode) that seem to work although this has been some what of a hit and miss effort. I need some basic understanding of how to format the AKD commands to control the drive and read the registers on the drive to provide feedback to the user. I'm not proficient at hex, words, etc. but I can follow directions if someone who knows how to do this can explain it. I'm actually wondering why there is not a library of functions to read/write and parse AKD commands using modbus seeing as NI is selling the AKD drives?
03-06-2013 03:02 PM
Do you have other working samples in e.g. other languages (e.g. C#)?
Then you could run them and look, which commands are sent through serial port (use a serial port sniffer).
Hope this helps.
BR
03-07-2013 10:56 AM
Hi Larry,
Looking at the AKD manual, I am not seeing any specific modbus coils enumerated for what commands you can send them.
Have you tried using AKD WorkBench to communicate with your device? You can download this software here:
http://joule.ni.com/nidu/cds/view/p/id/2696/lang/en
Also, I found a discussion of using ModBus (including an overview powerpoint) with AKD on this forum:
03-07-2013 11:00 AM
I've used Workbench to setup and communicate with the servo. All the commands in the CAD manual seem to work fine from Workbench. It's more of a matter of formatting them in a vi to then send them to the drive over the Ethernet connection.
03-08-2013 02:56 PM - edited 03-08-2013 02:57 PM
Can you tell me what format you need in order to send a specific command so I can help you create that in LabVIEW?
I found the Modbus TCP manual here: http://www.kollmorgen.com/en-us/products/drives/servo/akd/
This seemed to describe some of the tags we might need to use.
03-13-2013 11:43 AM
I am specifically interested in the following AKD commands:
Reads: PL.FB, DRV.Fault1, DRV.Active, IL.FB, AIN.VALUE
Writes: VL.CMDU, DRV.STOP, DRV.CLEARFAULTS, DRV.EN, DRV.OPMODE, PLS.EN
As a start, I built a vi that lets me read the values in the drive registers. The attached screenshot example works with the PL.FB command and shows the values in the four registers. How do I use the four values to arrive at the displacement as shown by the attached AKD Workbench screenshot (360.230 degrees)?
03-14-2013 06:35 PM