SetCycleTime

Sets the EtherCAT cycle time.

Syntax

KsError SetCycleTime(
     double Cycle
);

Parameters

Cycle: the interpolation cycle time in second.

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

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

Create

Start