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