Back to top

This is part 2 of a two part series. This application note will demonstrate establishing Modbus TCP communications between a Kollmorgen Visualization Builder ( AKI ) project and the variables in a running program in the AKD BASIC drive. Reading and Writing are demonstrated much in the same fashion as Part 1 but using KVB instead of Modbus Poll.

This application note serves as a quick start with simple example using a Modbus Master simulator software called Modbus Poll to read/write over Modbus TCP to/from the AKD BASIC program ( variables ). This is part 1 of a two part series. Part 2 will demonstrate similar methods but using the Kollmorgen Visualization Builder software for our AKI operator panel product line.

Hi,

Just wanted to know where to use those 'A GUI integer storage' for.

I'm using a Studio5000 PLC to communicate with AKD drive and this is my 1st time to use this drive so am trying to learn bit by bit.

What if I want to read parameter value that has no [Axis 1] on it? how am I write the logic? Is the AKD_Get_Parameter will work?

Thanks in advance for the answer.

 

AKD Modbus TCP Landing Page

Note: This Landing Page primarily applies to the AKD-B, P, or T drives. There are other application notes and guides for KAS with PCMM and PDMM controllers on the Kollmorgen Developer Network. See those articles for details that apply to that platform.

Overview and Specifications

This application note covers 2 options for protecting the AKD BASIC program from user access.

AKD BASIC keyword MOVE.MOVING is high when …

  1. The trajectory generator is active and the motor is moving and for (MOVE.DWELLTIME + MOVE.SCURVETIME) afterwards.

In case 1 the motor is considered not moving on exactly the same condition that stops the controlled stop (VL.FBFILTER is below CS.VTHRESH uninterrupted for at least CS.TO).

AKD BASIC provides the functionality for writing a variable to non-volatile memory, for retrieval after powering up the device. To achieve this you must define the variable as NV. For example:

DIM myVariable as integer NV

This is discussed in the AKD BASIC help under "Statements".

The following is based on what was learned and worked through phone and WebEx support. The conventions in this application note cannot be guaranteed to work with your hardware model or software version. We cannot supply a sample HMI project.

The General MODBUS TCP Master is selected for the driver and the target AKD IP Address is selected. This will need to match your target drive’s IP address. Port No. 502 is the standard port# for Modbus TCP.

When using torque mode in an AKD Basic program, you must set DRV.CMDSOURCE=0 (Service) and DRV.OPMODE = 0 (Torque) in the program.

If the program executes an IL.CMDU command while DRV.CMDSOURCE=5, it will throw an F825 Runtime error. The runtime error message says that DRV.CMDSOURCE must be set to 5. This is normal for position control, but for torque control it must be set to zero. The Basic program will continue to run even after the command source changes to Service mode.

Note: I don’t have EzWare Plus software or the HMI and no specifics on software revisions or HMI hardware revisions or models. I have no sample project.

The following is based on what worked and was learned through support.

If a data field is declared as 32 bit in the Maple and you are trying to read an AKD parameter or AKD BASIC variable, the Maple needs an offset of 1 from the WB Help starting address and also word swapping.

For example in the AKD BASIC program

Pages