1. A method, comprising: a programmable controller automatically detecting at least one programmable hardware element coupled to the programming controller; and the programmable controller automatically updating a memory map based on a hardware I/O interface of the at least one programmable hardware element, wherein the memory map facilitates communications between programs executing on the programmable controller and the programmable hardware element; the programmable controller retrieving and storing information from and to the memory map a plurality of times to update information to and from the programmable hardware element, wherein said retrieving and storing comprises the programmable controller utilizing a scanning architecture.