1. A method for assigning network addresses to a plurality of IO devices in a control network, wherein the plurality of IO devices are connected to the controller through a common bus, the method including: at the controller, maintaining data indicative of a plurality of assignable network addresses; at a given IO device: defining a device identification code; storing the device identification code in local memory; and providing to the controller data indicative of a request for a network address, wherein the request includes the device identification code; at the controller: receiving from the given IO device the data indicative of the request for a network address; identifying, from the data indicative of a plurality of assignable network addresses, a network address for assignment to the given IO device; providing to the given IO device data indicative of the identified network address and the device identification code; maintaining data indicative of the assignment of the identified network address to the given IO device; and at the given IO device: receiving from the controller the data indicative of the identified network address and the device identification code; verifying the received device identification code matches the device identification code stored in local memory; and in the case that the verification is successful, applying the identified network address.