A method of scheduling messages in a control system , the method comprising: receiving, by one or more processors , an offset and an interval associated with a first virtual link , wherein the offset is different from a second offset associated with a second virtual link , and wherein the interval is different from a second interval associated with the second virtual link ; receiving, by the one or more processors , an absolute count representing a start time; designating, by the one or more processors , a first plurality of transmission times for the first virtual link according to a first equation, the first equation comprising a function of the offset and the interval; receiving, by the one or more processors , a message associated with the first virtual link at a first time; and characterised by : transmitting, by the one or more processors , the message at a next transmission time in the first plurality of transmission times; receiving, by the one or more processors , a maximum latency, wherein the maximum latency comprises a duration of time representing a maximum amount of time needed for transmitting the message; determining, by the one or more processors , a second time, wherein the second time is one of the first plurality of transmission times, and when there exists no message associated with the first virtual link to be transmitted on the second time, designating, by the one or more processors , a second plurality of transmission times for the first virtual link according to a second equation, the second equation comprising a function of the second time and the maximum latency. receiving, by one or more processors , an offset and an interval associated with a first virtual link , wherein the offset is different from a second offset associated with a second virtual link , and wherein the interval is different from a second interval associated with the second virtual link ; receiving, by the one or more processors , an absolute count representing a start time; designating, by the one or more processors , a first plurality of transmission times for the first virtual link according to a first equation, the first equation comprising a function of the offset and the interval; receiving, by the one or more processors , a message associated with the first virtual link at a first time; and characterised by : transmitting, by the one or more processors , the message at a next transmission time in the first plurality of transmission times; receiving, by the one or more processors , a maximum latency, wherein the maximum latency comprises a duration of time representing a maximum amount of time needed for transmitting the message; determining, by the one or more processors , a second time, wherein the second time is one of the first plurality of transmission times, and when there exists no message associated with the first virtual link to be transmitted on the second time, designating, by the one or more processors , a second plurality of transmission times for the first virtual link according to a second equation, the second equation comprising a function of the second time and the maximum latency. transmitting, by the one or more processors , the message at a next transmission time in the first plurality of transmission times; receiving, by the one or more processors , a maximum latency, wherein the maximum latency comprises a duration of time representing a maximum amount of time needed for transmitting the message; determining, by the one or more processors , a second time, wherein the second time is one of the first plurality of transmission times, and when there exists no message associated with the first virtual link to be transmitted on the second time, designating, by the one or more processors , a second plurality of transmission times for the first virtual link according to a second equation, the second equation comprising a function of the second time and the maximum latency. <EOS>