Software Development Kit (SDK) for HV PSU Automation

'The fastest way to automate your power control and monitoring needs'

What is this?
  • Software to quickly and easily integrate Advanced Energy Power Supplies into your end product
  • Comprehensive set of step-by-step examples for LabVIEW and Visual Studio
*PLEASE NOTE: Only the following products currently fully supported*
  • EG353-01, -02, -15
  • EG303-19, -20, -22, -23, -24, -25
  • EGT303-01
  • XRG70-603PFXC
  • HP E-Beam (A603-211 / A603-217)
  • EG603
Requests for other products can be made through your sales contacts.
Please submit technical queries and bug reports to the contact form on the 'NuGet' hosting site, the link is below.
For general programming questions please use the LabVIEW or Visual Studio support forums

Introduction

This SDK hides details of the protocols behind a user friendly ‘API’ (Application Programming Interface). Your control software talks to the API, which in turn talks to the power supply.

The main advantages are:
  • The API is common across products: even if the power supply protocol is different
  • Works with the existing range of serial or Ethernet products
  • Easily adapt your control software to work with different PSU models - You are tied to the API, not the protocol
  • Compatible with different controller platforms
  • Better code decoupling: message retries and timeouts are handled by a 'background polling engine', not your application
  • API is non-blocking: Instant access to all PSU parameters
  • Supports the 'event driven' approach to software design, popularised over the last 15 years
Quickly write your own wrapper:
  • Expose only the functions you use in your application
  • Expose functions as a WebService / RESTful WebService / WebSocket / DLL / TCP socket server/ UDP server or other
  • Make UART / RS232 PSUs network controlled or 'web aware'
  • Completely decouple you application code from the power supply
  • Connect more than one application to a PSU. Useful for monitoring and debug while running your control software
Motivation
PSU Automation using a digital interface is not easy. Industrial protocols such as PROFIBUS can help but are not widely supported across our existing product range. This SDK provides an attractive alternative for use now and also adds a number of additional advantages.

Download the SDK here...

http://hitekpowersoftware.com/hitekpowersoftware/SDK/AutomationSDK1.2.5.zip (30 September 2021)

Licence conditions are attached to the use of this software

API Documentation

DLL is built using V4.6.1 version of the .NET Framework and natively supported by Windows 10, Version 1511 (November 2015 Update) and above

http://hitekpowersoftware.com/hitekpowersoftware/AutomationSDK/AutomationSDK/api/AdvancedEnergy.Power.Protocol.EG303.V1.html

Example Code

This SDK has example files for:
  • Visual Studio 2019 (For Console and WPF application)
  • Visual Studio Code - C# and Python.net
  • CS-Scripting (The C# Script Engine)csscript
  • LabVIEW 2018 (and above)
It's also possible to use this library with:

SDK

This SDK consists of two parts – A DLL (Dynamic Linked Library) and supporting examples of how to use it.

Example Screenshots

Basic Front Panel - LabVIEW 2018

Basic Front Panel (Block Diagram) - LabVIEW 2018

Front Panel example - LabVIEW 2018

Basic Console - Visual Studio

WPF - Visual Studio

DLL (Dynamic Link Library)

A DLL is a software component which talks to the PSU and presents clean API for your application to use.
The API is object oriented and is presented as three parts:
  • Methods (Like function calls in ‘C’)
  • Properties (Like variables in ‘C’)
  • Events (Notifications)

Methods

Used to perform an action, such as ‘Open Com Port’, ‘Close COM port’, ‘Clear faults’

Properties

Parameters can be read only or read/writable.
For example:
  • Read once – Serial number, output name, max voltage
  • Read only - monitors, status flags, fault flags
  • Read Writable - demands, slew rates

Events

The three events are:
  • MonitorReadbackComplete – raised when the monitors have been updated
  • ConnectionStateChange – raised when the connection to the PSU is lost or changes
  • DubugMessage – raised when message is generated regarding protocol timeouts and errors

What is an ‘event’?


An event is ‘raised’ by this library, not by your code. To make use of an event you must provide and attach an event handler. The event handler is called when the event is raised. You have no control over when or how often an event occurs. See fundamentals of ‘event driven programming’.
You may, for example, attach a handler that performs the following functions:
  • Attach a handler that ‘logs data’ to the ‘MonitorReadbackComplete’ event
  • Attach a handler that greys out the user interface when a ‘ConnectionStateChange’ signals a ‘disconnection’ event
  • Attach a handler that enables the user interface when a ‘ConnectionStateChange’ signals a ‘connected’ event

Visual Studio - NuGet hosting

The SDK download will automatically pull the required library from this NuGet location
NuGet https://www.nuget.org/packages/AdvancedEnergy.Power.Protocol
Licence conditions are attached to the use of this software

API Documentation

API documentation is embedded into the library. Use the Visual Studio object browser to access it. You will also see documentation displayed as ‘tool tips’ as you type.
If you do not have Visual Studio, the information is contained as an XML file in the nuget download. Use http://www.7-zip.org to extract the DLL from the nuget library.