SDK de extensión
Con Extension SDK, puede implementar sus propias funciones en C y llamarlas desde la aplicación IEC.
Para esta conexión, el código C se integra en el sistema de tiempo de ejecución en forma de un componente dinámico separado (shared object).
Hay dos formas de incluir:
- Preparado en el controlador: el componente dinámico ya está configurado para el CODESYS sistema de tiempo de ejecución (un - shared objectexiste y está configurado en el sistema Linux). Entonces, solo se requiere la biblioteca IEC respectiva.
- En forma de biblioteca IEC con un componente dinámico integrado. No es necesario preparar nada en el propio sistema Linux. Al utilizar la biblioteca IEC, el componente dinámico se agrega automáticamente a la CODESYS sistema de tiempo de ejecución y utilizado. 
En ambos casos, el usuario tiene que ser capaz de crear un shared object que es adecuado para la arquitectura del sistema de tiempo de ejecución (x64/ARM6/ARM7/AARCH64). El SDK de extensión lo ayuda a crear este tipo de componente dinámico (shared object).
A continuación se describe cómo crear la biblioteca y el componente dinámico para ambas variantes.
Entorno de desarrollo
- Abierto CODESYS y crear una nueva biblioteca. 
- Establecer el título de la biblioteca (Información del proyecto, Resumen tab) y guarde la biblioteca con el mismo nombre. 
- Agregue las funciones deseadas y márquelas como Implementación externa. - En el menú contextual de la función en el navegador de proyectos, haga clic en Propiedades. Sobre el Construir pestaña, seleccione Implementación externa. 
- Nota: La función debe contener " - _cext" en el nombre.
 
- Ahora genera los archivos *c y *m4: - Hacer clic . 
- Seleccione Archivo de interfaz M4 y archivo auxiliar C. 
- Seleccione la ubicación de guardado. 
 
linux
- Copie el SDK de extensión en un sistema Linux que tenga el entorno de compilación correspondiente para el sistema de destino. - De forma predeterminada, encontrará el SDK de extensión en: - C:\Program Files\CODESYS <version>\CODESYS\CODESYS Control SL Extension Package\<version>\ExtensionSDK. En los siguientes pasos nos referiremos al directorio como- <SDK DIR>.
- Cree una nueva carpeta donde cree la implementación de C. Esta carpeta está en la siguiente - <PROJECT DIR>.
- Navegar a - <PROJECT DIR>y correr:- $ make -f <SDKDIR>/makefile newproject
- Copie los archivos *c y *m4 que creó en el entorno de desarrollo para - <PROJECT DIR>.
- Implementar las funciones en C. 
- Crea el objeto compartido: - $ make all- El - shared objectse genera y se ubica en- <PROJECT DIR>/out/libCmpMyTest.so.
Como resultado, ha creado un componente dinámico que ahora se puede llamar desde la aplicación IEC a través de su biblioteca IEC. Detalles sobre el proceso de compilación (make) también se puede encontrar en los archivos MAKE y README file en el SDK de extensión.
Ahora decida una de las dos formas siguientes de incluir el componente:
Incluido el componente dinámico
Dispone de las siguientes opciones para incluir el componente:
Incluir el componente dinámico en el dispositivo de destino
Este método le permite incluir el objeto compartido creado previamente en C en el sistema de tiempo de ejecución. No se requieren permisos de sistema adicionales para el usuario y la biblioteca se puede implementar en los dispositivos utilizando métodos familiares.
- Copie el objeto compartido creado anteriormente en el sistema de tiempo de ejecución. 
- Copie el objeto compartido en - /usr/lib/o un directorio de biblioteca equivalente donde el sistema encuentra las bibliotecas.
- Detenga el sistema de tiempo de ejecución (ejemplo: - $ sudo /etc/init.d/codesyscontrol stop)
- Abierto - /etc/CODESYSControl_User.cfgcon permisos de administrador:- $ sudo nano /etc/CODESYSControl_User.cfg
- En el - [ComponentManager]sección, agregue los objetos compartidos creados:- [ComponentManager] Component.1=CmpFirstTest Component.2=CmpSomeOtherComponent ... - Nota: El número es un número incremental que no debe entrar en conflicto con los componentes existentes. 
- Inicie el sistema de tiempo de ejecución: - $ sudo /etc/init.d/codesyscontrol start- Ahora puede comprobar si el componente se ha cargado: - $ cat /tmp/codesyscontrol.log
Incluyendo el componente dinámico en la biblioteca IEC
Agregue el componente dinámico a la biblioteca IEC utilizando la funcionalidad "Integración de código C". Para más información, ver Integración de código C en la ayuda general.
- Abra la biblioteca IEC. 
- En POU, Agrega un Biblioteca implementada en C objeto. 
- En este objeto, agregue un Archivo de objeto para dispositivos: - Seleccione el componente dinámico (archivo) creado previamente y agréguelo. 
- Especifique un nombre de componente adecuado. 
- Seleccione el dispositivo adecuado. 
 - Ahora, al usar esta biblioteca con el dispositivo seleccionado, el componente dinámico se agrega automáticamente al sistema de tiempo de ejecución y se puede llamar usando las POU de la biblioteca. 
Otro
Restricciones:
- Con el SDK de extensión, solo se puede incluir el código C. 
- No se puede usar un depurador para examinar o depurar el código C (por ejemplo, como en el sistema de programación). 
- El código C no puede "interactuar" con el sistema de tiempo de ejecución o la aplicación IEC. Esto significa: - No es posible el acceso automático a las variables de la aplicación IEC. 
- El acceso a la funcionalidad del sistema runtime no es posible. Sin embargo, el acceso a las variables de la aplicación IEC es, por supuesto, posible pasándolas a una función implementada en código C. - by reference(por ejemplo, a través de- POINTER).
 
| Uso de la interfaz solo como miembro de Linux  | No | 
| Separación de procesos | No |