EnableHotConnect
Allows new hardware to be added while the EtherCAT network is running.
Syntax
KsError EnableHotConnect(
BOOL Active
);
Parameters
Active: TRUE to enable, and FALSE to disable Hot Connect. By default, it is FALSE.
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
- This function must be called after Create and before Start.
- This feature requires Hot Connect Package.
Usable EtherCAT states
ecatOffline
Example
BOOL StartKingstar() {
//Launch or connect to the KINGSTAR Subsystem process
KsError nRet = errNoError;
nRet = Create(INSTANCE, 0);
SubsystemStatus Subsystem = { ecatOffline, ecatOffline, 0, 0, 0,
{ecatOffline}, {ecatOffline}, {axisOffline} };
GetStatus(&Subsystem, NULL);
if (Subsystem.State == ecatOP) {
RtPrintf("Subsystem already started: %x\n", nRet);
return TRUE;
}
else if (Subsystem.State != ecatOffline) {
RtPrintf("Subsystem in unexpected state: %d\n", Subsystem.State);
return FALSE;
}
//Configure the Subsystem settings
nRet = SetCycleTime(cycle500);
nRet = SetAxisAccessMode(accessPos);
nRet = EnableServerLog(FALSE);
nRet = EnableAxisInput(TRUE);
nRet = EnableAxisOutput(FALSE);
nRet = EnableSecondEncoder(FALSE);
nRet = EnableActualVelocity(TRUE);
nRet = EnableActualTorque(TRUE);
nRet = EnableActualCurrent(TRUE);
nRet = EnableFollowingError(TRUE);
nRet = EnableMaxTorque(TRUE);
nRet = EnableMaxCurrent(TRUE);
nRet = EnableTorqueOffset(FALSE);
nRet = EnableProfilePosition(FALSE);
nRet = EnableSynchronizedControlMode(TRUE);
nRet = EnableAutoRestart(TRUE);
nRet = EnableAutoRepair(TRUE);
nRet = EnableAutoConfig(TRUE);
nRet = ConfigureDc(TRUE, TRUE, FALSE, 0);
nRet = EnableHotConnect(TRUE);
nRet = EnableRedundancy(TRUE);
nRet = SetConfiguredAxesCount(1);
nRet = SetConfiguredIoCount(3);
SlaveStatus simulatedIo = { 0 };
simulatedIo.InputLength = 16;
simulatedIo.OutputLength = 16;
for (int i = 0; i < IO_COUNT; i++) {
nRet = ConfigureIo(i, simulatedIo);
}
SlaveStatus axisDefinition = { "Simulated Axis", 0 };
ConfigureAxis(0, axisDefinition, 131072);
//Start the EtherCAT network
//This function is asynchronous so the network is not started yet when it returns
KsCommandStatus status = WaitForCommand(30, TRUE, Start());
return TRUE;
}
Requirements
| RT | Win32 | |
|---|---|---|
| Minimum supported version | 4.0 | 4.0 |
| Header | ksapi.h | ksapi.h |
| Library | KsApi_Rtss.lib | KsApi.lib |
See also