| while (! PLC_shutdown) |
| retrieving sensed values; |
| computing motion command; |
| if first_iter: |
| /* Delay transmission time at first task instance */ |
| time2transmit = first_release_time + $\delta$ * TSK_PERIOD; |
| else |
| /* Next transmission time is determined by |
| sum of previous transmission time and task period */ |
| time2transmit += TSK_PERIOD; |
| endif |
| now = get current system time; |
| /* Waiting for the time to transmit */ |
| while (now < time2transmit) |
| now = get current system time; |
| endwhile |
| time2transmit = now; |
| publishing motion command; |
| wait until next task activation; |
| endwhile |