Back to top

Selecting Cam Profiles from the Control Panel

0 votes
+ vote
Vote up!

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

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 - 11:42
Log in or register to post comments

2 Answers

0 votes
+ vote
Vote up!

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.

0 Comments

0 votes
+ vote
Vote up!

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.

Comments

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.

Eric Hoffstetter - Wed, 08/28/2019 - 11:27
Log in or register to post comments
ANSWER THIS QUESTION
You may login with either your assigned username or your e-mail address.
The password field is case sensitive.

If you do not have an account, click here to register.