Skip to main content

Kollmorgen Support Network

To better serve our Kollmorgen users with questions too complex to be addressed in this space, we made the painful decision to close this Community forum.

Please submit your question using the contact us form to reach our application engineering team.

For the immediate future, you can still access and read past posts.

Thank you for understanding and for participating in the community over the years.

Selecting Cam Profiles from the Control Panel | 23 Aug 2019 | |

Selecting Cam Profiles from the Control Panel

I'd like to be able to select from the loaded cam profiles on the control panel, and remotely. Is there a way to populate a Combo-Droplist with the names of all loaded cam profiles? Or to get a list from a global variable?

Comments & Answers

toddevans01 said ...

toddevans01 |

It isn't clear what Kollmorgen products you are working with.

Please provide model numbers of all HMIs, Controllers, Drives, and Motors that you are working with.

Eric Hoffstetter | Wed, 08/28/2019 - 18:27

Hey Todd, I meant the control panel in the KAS IDE.
My application is using a Windows C# application to drive an AKD-PDMM (AKD-M01206-M1EC), which is driving a single C044A-13-3105 DDR Motor.
In the IDE I have uploaded 6 different caming profiles, and I want to be able to switch between them from the C# app. The profiles have a virtual axis, at constant RPM, as the master axis, and the DDR as the slave.
To load a cam profile, in PLCopen, you have to:
1. Load the profile into memory as referenced by its name and get a numeric reference.
2. Then Cam-In to that numeric reference to start using the profile.

This means I have to know the names of all my caming profiles in either my C# app or hard coded in the PLCopen app, and know which numeric references apply to which after loading them.

So I want to know if I can get a list of the profile names that are uploaded to the driver? Then I can read that list from the driver into the C# app and select profiles from there. And maybe I could put that list in a drop-down menu in the control panel so I can select profiles from there.

My current work around is:
On the control panel, I can type in the name of a profile, and then it will load that profile into memory and put that profile name and the reference number in a text box on the control panel. I can then enter the number of the profile I want to apply.
In the C# app, I can http-set to write to a global variable with the profile name, then set a bool that calls the function to load that profile into memory. Then I can read the number back from another global over http-get.

Both of these workarounds require me to just know the names of the profiles uploaded. And if I change or add a profile, then I have to update my C# app.

Joe Parks said ...

Joe Parks |

Hello Eric,

If you add a cam profile before compiling and downloading the project to the PDMM controller, either through the creation tool in the KAS IDE or by importing one from a csv file, they are automatically added as a global variable called Profiles that is a built in structure. If you build the cam profile while the project is running through the MLProfileBuild function block, then it will not.

I do not believe this built in structure will help you though, since you would not know the string based name of the subsection in your C# program. Just an idea, but you could create an array of Strings in your project that keep track of all the names of the cam profiles in your program (with maybe a separate integer that keeps track of the number of cams currently created) then add code to your C# program to read all the names of the currently created cam profiles onto a drop down menu. You would have to update the array of strings when a new cam profile is added, but hopefully the C# program would automatically update then.

Joe Parks | Wed, 08/28/2019 - 18:42

Hello Eric,

If you add a cam profile before compiling and downloading the project to the PDMM controller, either through the creation tool in the KAS IDE or by importing one from a csv file, they are automatically added as a global variable called Profiles that is a built in structure. If you build the cam profile while the project is running through the MLProfileBuild function block, then it will not.

I do not believe this built in structure will help you though, since you would not know the string based name of the subsection in your C# program. Just an idea, but you could create an array of Strings in your project that keep track of all the names of the cam profiles in your program (with maybe a separate integer that keeps track of the number of cams currently created) then add code to your C# program to read all the names of the currently created cam profiles onto a drop down menu. You would have to update the array of strings when a new cam profile is added, but hopefully the C# program would automatically update then.

About this Question

Eric Hoffstetter
Taxonomy: