Downloads
What does this application do?
Provides visibility into Kinetix servo drive status from an operator panel without opening Studio 5000. The controller consolidates data for each axis in a single structure (UDT) organized into six groups: identity, validity, operation, diagnostics, variables, and shared context. FactoryTalk Optix reads this UDT and displays its data in individual axis cards. An Optix heartbeat watchdog ensures that, if communication is lost or the controller stops, the panel explicitly shows “No data” rather than stale values.
- General features
- Benefits
- Limitations / Disadvantages
This solution includes:
- UDT_HMI_Servo and the HMI_Servo[3] array as the HMI data contract in Studio 5000
- Structured Text routines R03_HMI_Ident (identity text) and R02_HMI_Map (cyclic module and axis mapping)
- Controller heartbeat (HMI_Heartbeat) for communication validation
- FactoryTalk Optix project with an RA EtherNet/IP driver, a Model layer, and ServoWatchdog Runtime NetLogic (C#)
- Status cards for each axis.
- Decouples the HMI from the motion program: Optix reads the contract in Read Only mode
- Reliable communication status: distinguishes a disconnected drive, a controller in Program mode, and network loss
- Reusable structure: adding an axis requires one more array element and an additional card
- Monitoring-only application: no motion commands or HMI write operations are included
- Fault and alarm codes are displayed as hexadecimal bitmasks; detailed descriptions require an additional lookup table
Please note: You will need to agree to the Terms & Conditions for each download.
Need Help?
If you need help with an application or have feedback from the Innovation Center, please contact us.
Is this application relevant to me?
Use this solution to monitor the status, faults, and key variables of Kinetix 5700/5500 servo drives from an operator panel or maintenance workstation.
Application areas - Packaging and converting machines, material handling, test benches, and motion demonstrators in food and beverage, manufacturing, and logistics.
How can I make it work?
Requirements: products, tools, prior knowledge.
Hardware
- Logix controller
- Kinetix CIP Motion
- Optix Panel or PC running FactoryTalk Optix Runtime
Software
- Studio 5000 Logix Designer (the program was developed in version 38)
- FactoryTalk Optix Studio
Prior Knowledge
Basic programming and configuration knowledge of:
- Studio 5000
- FactoryTalk Optix
- EtherNet/IP networks
Implementation Guide
- Step 1
- Step 2
- Step 3
- Step 4
- Step 5
- Step 6
- Step 7
- Step 8
- Step 9
Studio 5000 program: extract and open
Extract the supplied files: the Servo_Status_rev0.ACD project and the Servo_Status_HMI Optix project folder.
kinetix-5500-5700-servo-drive-monitoring-dashboard_16x9_ServoStatus_step1_image1
Open the Studio 5000 program by double-clicking the .ACD file. This application was tested with a ControlLogix 5590 controller (1756-L902TS).
kinetix-5500-5700-servo-drive-monitoring-dashboard_16x9_ServoStatus_step1_image2
Understand the program structure and HMI UDT
In Controller Organizer, review the main program components:
Component |
Function |
|---|---|
K5700_DC_BUS (2198-P031) |
Kinetix 5700 DC bus supply |
K5700_Dual_Axis (2198-D006-ERS3) |
Axis_01_A and Axis_01_B |
K5500_Single_Axis (2198-H008-ERS) |
Axis_03_A |
MG_Servo |
Motion group containing the axes and Axis_K5700_Converter |
R05_HMI_Ident |
Loads identity strings into the HMI data contract |
R10_HMI_Map |
Maps Kinetix axis data to the HMI data contract |
The HMI UDT organizes information into six groups. These groups define both the fields in Studio 5000 and how the data is presented in Optix:
Group |
Fields to define in Studio 5000 |
Presentation in Optix |
|---|---|---|
Identity |
Axis name, equipment, family, and catalog reference |
Header and navigation |
Validity |
Communication and data validity |
Explicit “No data” status |
Operation |
Axis state, enable status, and motion |
Operating summary |
Diagnostics |
Alarm, fault, and available details |
Diagnostics tab |
Variables |
Position, velocity, and units, if applicable |
Values and trends |
Shared context |
Bus supply / inverter condition, where applicable |
5700 equipment view |
Review the UDT_HMI_Servo UDT
Open Assets → Data Types → User-Defined → UDT_HMI_Servo. All members have External Access set to Read Only; BOOL members are grouped to optimize memory usage.
Group |
Members |
Data type |
Identity |
AxisName, Equipment, Family, CatalogRef |
STRING_32 |
Validity |
CommOK, DataValid / ModuleEntryStatus, ModuleFaultCode |
BOOL / INT |
Operation |
DriveEnabled, ServoOn, Moving, Homed / AxisState |
BOOL / DINT |
Diagnostics |
Alarm, Fault, DetailAvailable / FaultCode, AlarmCode / FaultText |
BOOL / DINT / STRING |
Variables |
ActPosition, ActVelocity / PosUnits, VelUnits |
REAL / STRING_16 |
Shared context |
IsSharedBus, BusReady, ConverterFault / DCBusVolts |
BOOL / REAL |
kinetix-5500-5700-servo-drive-monitoring-dashboard_16x9_ServoStatus_step3_image1
Review controller and program tags
Tag |
Data type |
Scope / configuration |
|---|---|---|
HMI_Servo |
UDT_HMI_Servo[3] |
Controller - Standard - Read Only |
HMI_Heartbeat |
DINT |
Controller - Standard - Read Only |
HB_Timer |
FBD_TIMER |
MainProgram - 1000 ms time base |
GSV_EntryStatus / GSV_FaultCode |
INT[3] |
MainProgram - temporary GSV values |
GSV_BusEntryStatus |
INT |
MainProgram - 2198-P031 status |
Init_Done / Ident_Reload |
BOOL |
MainProgram - not Constant |
TXT_… |
STRING_32 / STRING_16 |
MainProgram - Constant |
Array index assignments:
Index |
Axis |
Module |
IsSharedBus |
|---|---|---|---|
HMI_Servo[0] |
Axis_01_A |
K5700_Dual_Axis |
1 |
HMI_Servo[1] |
Axis_01_B |
K5700_Dual_Axis |
1 |
HMI_Servo[2] |
Axis_03_A |
K5500_Single_Axis |
0 |
kinetix-5500-5700-servo-drive-monitoring-dashboard_16x9_ServoStatus_step4_image1
Understand the mapping routines
In MainRoutine, verify the execution order: JSR R05_HMI_Ident followed by JSR R10_HMI_Map.
- R03_HMI_Ident: copies TXT_… strings into the data contract with COP on the first scan (S:FS) or when Ident_Reload is activated.
- R02_HMI_Map: increments the heartbeat once per second; reads each module’s EntryStatus and FaultCode using GSV (Running = (EntryStatus AND 16#F000) = 16#4000); copies axis attributes (CIPAxisState, DriveEnableStatus, ServoActionStatus, ActualPosition, ActualVelocity, CIPAxisFaults, CIPAxisAlarms) and DC bus context.
kinetix-5500-5700-servo-drive-monitoring-dashboard_16x9_ServoStatus_step5_image1
kinetix-5500-5700-servo-drive-monitoring-dashboard_16x9_ServoStatus_step5_image2
Download the program to the controller
- Configure the communication path in FactoryTalk Linx.
- Verify the project with Verify (Ctrl+K). It should compile without errors.
- Download the project and set the controller to Remote Run mode.
- In Monitor Tags, confirm that HMI_Heartbeat increments once per second, CommOK = 1 for all three indices, and identity strings are populated.
Open the Optix project and configure the driver
- Open Servo_Status_HMI in FactoryTalk Optix Studio from a local path (for example, C:\Optix), not from a OneDrive-synchronized folder.
- Under CommDrivers → RA EtherNet/IP → station PLC_ServoStatus, set Route to the IP address of the 1756-L902TS embedded port (for example, 192.168.2.10). Do not append \Backplane\0.
kinetix-5500-5700-servo-drive-monitoring-dashboard_16x9_ServoStatus_step7_image1
Import tags and adjust polling
Import only HMI_Servo and HMI_Heartbeat, either online or offline. Set Sampling mode to Periodic:
Tag / members |
Polling interval |
Reason |
|---|---|---|
HMI_Heartbeat |
1000 ms |
Changes once per second; read by the watchdog |
CommOK, DataValid, Fault, Alarm |
500 ms |
Continuously read by the NetLogic |
ActPosition, ActVelocity, DCBusVolts |
250 ms |
Smooth values and trends |
Identity strings and units |
2000-5000 ms |
Static data |
kinetix-5500-5700-servo-drive-monitoring-dashboard_16x9_ServoStatus_step8_image1
Review the UI
- A panel has been created for one axis to display the most important parameters.
- To add more parameters, link the controls to the available members of UDT_HMI_SERVO.
- Copy the panel for the remaining axes.
kinetix-5500-5700-servo-drive-monitoring-dashboard_16x9_ServoStatus_step9_image1
Kinetix 5500/5700 Servo Drive Monitoring Dashboard
Version 1.0 - October 2026