Test controller, Steps popup

Steps

This popup can perform a timed sequence of steps on any number of devices. It support number field and all interface functions. It is possible to manually enter data in the table or it can generate ramps, triangles, on/off data.

Note: This popup has a rendering bug when resizing, if it fails to render correctly select a field in the table.

Contents
    What is on screen
        The Add button
        The Output map button
    The last row
    Keys and values
        Keys
        Time values and performance
        Channel values
    Comparing to param sweeper
        Similarities
        Advantage to param sweeper
        Advantage to steps
    Generating a ramp
    Logging
    Saving
    Scripting
Main page

What is on screen

StepsUser
                     

The Add button

AddButton

The add button will list all currently connected devices. For each device there is a sub-menu listing all numeric fields and may also list a few #interfaces.
In the above example there is numeric fields from a couple of pages, if there had been a few more the menu would have added a level more where the page must be selected, before the actual fields are listed. The load has two #interface functions that are listed, in reality there are more, but they are duplicating the numeric fields.

AddOther

Selecting the Other menu option gives access to the all #interface functions, but a few specifications must be entered:


The Output map button

OutputMap

When the table get long, it is very hard to see what is going on, to make that easier use the "Output map" button, it will show curves of all the channels.
The output is a image that can be saved or printed. If there are too many channels for one page, more will be generated.
It will list the maximum and minimum values in the curve, this can be used as a fast error check on the range of values.
To show the generated image it will use the build in image viewer in TC.



The last row

The last row will always be active for 0 seconds, this makes it more or less superfluous, but it has a very specific purpose.
When the test is finished this is the state all channels are left in, usually it will be a good idea to put all zeros in this row, but sometimes other values will be better. If no values are defined in the row, channels will maintain their current value.
If the "Stop" button is pressed, all channels will also be switched to these values, same if the popup is closed while running.
When doing loops, it will not be used, i.e. the channels is not switched to these settings, but will be directly switches to setting in the first row.
The "Outputs off" button on the main page will not use this row, but will turn all outputs off and stop any running test.



Keys and values

Keys
A couple of special keys are supported, function may depend on what column is selected:


Time values and performance

Time can be specified as a number, a s/m/h prefix can be used for seconds/minutes/hours
It is also possible to use hh:mm:ss format, this is mostly useful in Total time mode
Both methods of entry can be used in both modes.
In Total time mode a specified time must be between the time of the previous entry and next entry, time cannot be added.
In delta time mode any time from 0.001 to days can be specified and will add to the total time.

It is possible to specify time down to ms level (0.001 second), but that does not mean that devices are updated that precise. TC will initiate the communication at the specified time, but for a serial device it can take 20ms (0.02) or more seconds to send and process the command.
Generally one slow device will not affect the other devices (Shared interfaces like Modbus and GPIB excluded). TC runs everything in parallel, i.e. it will start communication to all channels within the same ms.
If a channel gets behind, TC will start dropping updates to it, to keep it fairly current with the other channels.

Devices that send data for logging while being controlled from steps will use some communication bandwidth on that and can block the interface for 100ms (0.1) or more for each time a entry is logged.

Timing is very device depend, some device will be much better and some worse.



Channel values

Data depends on column type, it can be SI values, integer values or string values, there is also boolean, but that is just a integer with only 0 and 1 allowed.
Double/SI from the number controls will include a min/max specification from there and values outside that range will be ignored.
Interface Integers have min and max specifications and values outside that range will be ignored.
Interface Double have min and max specifications and values outside that range will be ignored.
Interface Strings do not required "" around them and leading or trailing spaces are ignored, but trailing spaces may be added when sending the value to the device. This can be used for remote readouts or to select mode on devices.

Gray values do not exist, but are just a repeat of a previous value in black and can be seen as a reminder of the last setting.

While running setup popups are not updated, but after a run all open setup popup will be synchronized to actual device state.



Comparing to param sweeper

There is some overlap with param sweeper, but there are also many differences. Generally param sweeper is used to do sweeps and steps are used for more complex test sequences.


Similarities

Advantage to param sweeper

Advantage to steps

Generating a ramp

All these functions will select the marked row as their starting point, the marked row will be the row where the right-click was done.
All other entries in the time interval will be removed.
All the settings popup will verify that the value stays inside the valid range for the channel and disable the ok button if that is not the case.

GenerateMenu

Right click in a column to get this popup menu, the click must be in the data part, not on the header. This menu is common for all columns, except integer (long) with only a few value, where it is reduced to high/low and delete.
The last entry in the menu (log) will include this column in the log when logging.

RampPopup TrianglePopup

Ramp and triangle popups are the same, the difference is the triangle varies direction for each repeat. I.e. to generate one triangle repeat must be two.
Step value can be negative to start with a negative ramp.

HighLowPopup

High/low will change between two values, it can be on/off (Type 1/0) for on/off channels, but any values can be used for other channels.
Repeat is for half a cycle, i.e. to get both first and second part it must be two.

DeletePopup

This popup is for removing values, only one of the field can be filled out.
GenerateTimeMenu

The Time column has a very different menu.

AddTimePopup

Add time steps at a specific interval, these steps will be added in addition to the already present steps. This is a way to add steps for easy entry of values in the channels columns. It is not possible to use this function multiple times to add more values because a optimize is done as part of this process. This mean the result from this will always be the optimized time column with the specified time steps added.

The Optimize function will check all channel columns for used time points and optimize the time column to only include these. This there will be one or more data column with data for each row.



Logging

Logging can be controlled from the main page of TC or from this page by checkmarking Log.
The log will include all regular logged values from the devices, but can also include settings controlled from this page.

GenerateMenu

The Generate menu (right-click in a column) includes a log checkbox, when it is checked that column is included in logging.
Note the column must be checkmarked before the logging is started for it to be included.
The data will be ? before the test is started, if the column is removed or the popup closed.

Log

If the log checkbox in the bottom line is checked this popup will control logging and save the result, if a filename is defined and save is checkmarked.
The "Save each loop" is only used when doing multiple loops and will save a log file for each loop.



Saving

Saving

Like other advanced popups in TC, it is possible to save the settings, it is not done as part of the popup, but has its own setting in the main window.
The popup settings are not included in the "Layout", but requires selecting the "Steps" menu to save.
This will generate commands to recreate the popup with all its settings. These commands can be saved as a text file or as a menu entry for the log window.
As usual it is possible to combine commands, i.e. there is no issues coping the commands from Steps onto the end of a saved Layout.

It will look something like this:
Code:
#ShowPopupSystem Steps 62 377 800 408
#Steps S 0 1 0 0:01 0 0 Test
#Steps FN HMC8043.Output_1.Voltage 0/10.0 
#Steps FN HMC8043.Output_1.Current 0/3.0 
#Steps IL setOn(HMC8043) 0 1 0/1 7811/0 
#Steps FN HMC8043.Output_2.Voltage 0/1.0 21/5.0 4211/1.0 
#Steps FN HMC8043.Output_3.Voltage 0/1.0 21/7.0 4201/1.0 
#Steps log HMC8043.Output_2.Voltage

But can easily be much, much longer. There is a limit to how many values are listed after a command, and if more values are present the command will be added multiple times.



Scripting

This popup can be controlled with:

#SHOWPOPUPSYSTEM Steps {x y {w h}}
#STEPS S totalTime loops log interval save saveEach filename
#STEPS FN SettingName time/value time/value ...
#STEPS FL IFaceLongName min max time/value time/value ...
#STEPS FD IFaceDoubleName min max time/value time/value ...
#STEPS FS IFaceStringName length time/value "time/value" ...
#STEPS log name name ...
#STEPS Start
#CLOSEALL