The mechanism of user functions, or User Programming API, is integrated into the OpenSCADA core. User functions can be provided by any object of the program, including modules in accordance with their functionality, thus providing the user with the set of functions for the control of one or another object. User API functions can be either static, i.e. implementing the fixed functionality of an individual object, and the dynamic ones, i.e. formed by the user for the desired task in the internal high-level programming language of the user.