Programmable devices

Programmable devices provide an application programming interface (API) that is either standardized (e.g. IEC 61131-3 or C-language or VisualBasic) or proprietary. This includes a large variety of CAN interface boards for PCs. Some of them support higher-layer protocols such as CANopen or DeviceNet. Many PLCs (programmable logic controller) implement IEC 61131 (PLCopen) runtime systems.
Some functions of CANopen programmable devices are specified in the CiA 302 additional CANopen application layer functions specification (e.g. NMT Boot-up, SDO Manager, Configuration Manager, etc.). For devices programmable in IEC 61131-3 languages, the CiA 405 interface profile specifies the use of network variables as well as some CANopen function blocks. Most of the programmable CANopen devices provide NMT Master functionality.