Cicode Programming Reference > Cicode Function Categories > Task Functions > SleepMS

SleepMS

Suspends the current Cicode task for a specified number of milliseconds. After the time delay, the Cicode task wakes and continues execution. This function is similar to the Sleep function but with greater resolution.

Although a value of 0 milliseconds is accepted, it is not recommended. Try to use at least a value of 1.

This function does not affect any other Cicode tasks; only the task calling SleepMS() is suspended. If you have Cicode that runs continuously in a loop, you should call the SleepMS() or Sleep() function somewhere within the loop, to pause the loop and allow other tasks to run.

This function is a blocking function. It will block the calling Cicode task until the operation is complete.

Syntax

SleepMS(Milliseconds)

Milliseconds:

The number of milliseconds (1000 milliseconds per second). Set to 0 to pre-empt the task for one time-slice. Be careful not to use a value that is too small. Setting the value to 0 would generally have no desirable effect.

Return Value 

0 (zero) if successful, otherwise an error code is returned.

Related Functions

TaskNew, ReRead, Sleep

Example

Buttons

Text

Step

Command

PLCBit=1;SleepMS(500);PLCBit=0;

Comment

Switch Bit ON and then OFF 500 milliseconds later.

! Increment a memory variable by ten, 120 times over one minute 
(twice a second).
I = 0;
WHILE I < 180 DO
SleepMS(500);
iRamp = iRamp + 10;
I = I + 1;
END
! sleep a while in polling loops
WHILE < waiting for event or time> DO
! do what ever here
...
SleepMS(200); ! sleep a while to give other tasks a go.
! the longer the sleep the better for other tasks.
END

See Also

Task Functions

Published June 2018