SetConfiguredAxesCount
Configures a number of simulated axes. The number of simulated axes is determined by how much the given value outnumbers the real hardware. If the given number is greater than the number of the real axes, KINGSTAR will display all real axes plus simulated ones. For example, if you have five real axes and you give the number seven, you'll get five real axes plus two simulated axes. If the given number is less than or equal to the number of the real axes, KINGSTAR will display all real axes without simulated ones.
Syntax
KsError SetConfiguredAxesCount(
int Count
);
Parameters
Count: the number of simulated axes. The maximum is 256.
Return value
If the function succeeds, it returns errNoError
, otherwise an error code. For more information about the error code, see the KsError list.
Remarks
Allows a developer to test applications without having all the hardware available. Simulated axes must be created using SetConfiguredAxesCount before they are configured with ConfigureAxis. This function must be called after Create and before Start. Once the link is established the simulated axes cannot be modified.
Usable EtherCAT states
ecatOffline
Example
/////////////////////////////////////////////////////////////////////////
//
// This code snippet demonstrates how to configure simulated hardware
// in KINGSTAR subsystem. Please be aware that if any actual hardware
// detected in the bus scan procedure the configuration will be replaced
// by automated configuration.
//
/////////////////////////////////////////////////////////////////////////
#define AXIS_COUNT 2
#define IO_COUNT 3
// Variable declaration
KsError nRet = errNoError;
KsCommandStatus Command = { 0 };
SubsystemStatus Subsystem = { ecatOffline, ecatOffline, 0, 0, 0, {ecatOffline}, {ecatOffline}, {axisOffline} };
int axesCount = 0, ioCount = 0;
// Link to the KINGSTAR subsystem
nRet = Create(0, 0);
nRet = SetConfiguredAxesCount(AXIS_COUNT);
nRet = SetConfiguredIoCount(IO_COUNT);
for (int i = 0; i < AXIS_COUNT; i++)
{
SlaveStatus axisDefinition = { "Simulated Axis", 0 };
// Assign resolution for the simulated axes
nRet = ConfigureAxis(0, axisDefinition, 131072);
}
for (int i = 0; i < IO_COUNT; i++)
{
SlaveStatus simulatedIo = { "Simulated IO", 0 };
// Assign input length for the simulated IOs
simulatedIo.InputLength = 32;
nRet = ConfigureIo(i, simulatedIo);
}
// By setting the timeout to a short interval and abort Start() on timeout,
// KINGSTAR subsystem will stop scanning for real hardware and start with
// the simulated hardware instead.
Command = WaitForCommand(2, TRUE, Start());
// Get the configured hardware count. It can be used by another KINGSTAR application process.
nRet = GetConfiguredAxesCount(&axesCount);
nRet = GetConfiguredIoCount(&ioCount);
Requirements
RT | Win32 | |
---|---|---|
Minimum supported version | 4.0 | 4.0 |
Header | ksapi.h | ksapi.h |
Library | KsApi_Rtss.lib | KsApi.lib |
See also