El complemento de integración de código C permite incluir en los proyectos CODESYS archivos de código C implementados externamente y generar stubs de C a partir de objetos IEC.
En CODESYS, el módulo de código C «tipo de objeto» está disponible para este propósito. Los archivos de código C y los objetos IEC utilizados se encuentran debajo de un módulo de código C . A cada módulo de código C se le asigna un directorio de archivos en el disco duro con archivos de código C.
En el proyecto, puede generar objetos IEC a partir de un archivo de código C en formato *.h o *.hpp (archivo de cabecera) para utilizarlos en otros POU.
La generación de C-stubs está pensada para los siguientes casos de uso:
-
Un archivo de código C accede a un objeto IEC: Un archivo de código C no puede acceder directamente a un objeto IEC. Sólo puede acceder al stub C que se generó a partir del objeto IEC.
-
Generación de módulos precompilados que puede fusionar en un proyecto de biblioteca.
Una vez importados, los archivos de código fuente importados forman parte del proyecto CODESYS y, por tanto, se desacoplan de los archivos originales del disco.
Durante la compilación, se genera un módulo dinámico a partir de un módulo de código C y se guarda como parte del proyecto. La información, las advertencias y los errores se muestran en la ventana de mensajes del módulo de código «C» categoría.
Todos los módulos dinámicos de una aplicación se transfieren y cargan en el sistema en tiempo de ejecución durante la descarga. Para ello, el sistema de ejecución debe admitir la vinculación dinámica.
Licencia para el sistema de ejecución
Licencia para el sistema de ejecución
El sistema de ejecución requiere una licencia que permita cargar módulos C. Sin esta licencia, los módulos dinámicos no podrán vincularse durante la descarga, por lo que ésta se interrumpirá.
Los módulos dinámicos forman parte de la aplicación de arranque y se recargan y activan cuando se reinicia el controlador. El comando «Reset origin» descarga todos los módulos de código C de la aplicación. Los comandos «Reset frío» y «Reset caliente» no provocan una inicialización repetida de los módulos de código C.




AVISO

Sin código C para el modo de simulación
En el modo de simulación, el código C no se genera ni se carga en el sistema en tiempo de ejecución. Para simular de todos modos el código contenido en los módulos C, puede implementarlo a tal efecto en los respectivos objetos IEC del módulo de código C.
CODESYS no admite la supervisión de variables en archivos de código C ni el establecimiento de puntos de interrupción en código fuente C.
Los POUs de la Librería de Usuario se listan en Input Assisted (F2) pero la función no da ningún resultado significativo en el contexto de un POU de código C. Estos POUs están listados como estándar y no como Función / Bloques de Función / Programas definidos por el usuario.
Módulos precompilados en bibliotecas
La integración de código C ofrece la posibilidad de asignar un módulo de tiempo de ejecución precompilado (ejemplo: *.dll) en la biblioteca a un dispositivo y, a continuación, guardarlo en la biblioteca. A continuación, estos módulos pueden cargarse dinámicamente.
Configuración de módulos de código C
Requisito: Se abre un proyecto que ya incluye un módulo de código C
.
-
Haga clic en el objeto
« Módulo de código C» en el árbol de dispositivos. -
Seleccione el comando «Propiedades» en el menú contextual.
-
Abra la pestaña «Build» del cuadro de diálogo «Properties».
-
Especifique la ruta de archivo de la instalación de Visual Studio en su ordenador. También están disponibles el asistente de entrada (
) y la herramienta de búsqueda (lupa). -
Especifique la ruta del archivo de instalación del SDK de MS Windows en su ordenador. También están disponibles el asistente de entrada (
) y la herramienta de búsqueda (lupa). -
Especifique una ruta de archivo para CODESYS para almacenar los archivos de compilación temporales.
Importación de carpetas con archivos fuente C desde el directorio de archivos
Requisito: Un proyecto está abierto. El controlador de proyectos admite la integración de código C.
-
Seleccione «Aplicación» en el árbol de dispositivos y haga clic en «Proyecto Añadir objeto Módulo de código C».
-
Si es necesario, especifique un nuevo nombre para su módulo de código C en el cuadro de diálogo «Add C code modules». Si no lo hace, su objeto recibirá el nombre estándar «Módulo de código C».
-
Haga clic en el símbolo (
) situado junto al campo de entrada «Directorio de origen». -
Se abre el cuadro de diálogo «Buscar carpeta».
-
En el cuadro de diálogo «Buscar carpeta», seleccione la carpeta que contiene los archivos fuente C (
*.c,*.cpp,*.ho*.hpp). -
Cuando se selecciona la opción «Monitorizar carpeta para cambios en el código fuente», CODESYS muestra un mensaje cuando se han realizado cambios en los archivos fuente C en la carpeta seleccionada del sistema de archivos.
-
Haga clic en «Añadir».
CODESYS inserta el módulo de código C en el árbol de dispositivos con las carpetas «Extensiones», «Interfaz IEC», y «Archivos fuente».
-
En el árbol de dispositivos, haga clic en el símbolo más («+») de la carpeta «Source files».
Los archivos fuente C importados aparecen en la carpeta abierta.
-
Si hace doble clic en uno de los archivos fuente C (
), el archivo de código C se abrirá en su editor.
Importación de archivos individuales de código C
Requisito: Se abre un proyecto que ya incluye un módulo de código C
.
-
Haga clic en el objeto
« Módulo de código C» en el árbol de dispositivos. -
Haga clic en «Proyecto Añadir objeto Archivo de código C».
-
En el cuadro de diálogo «Añadir archivo de código C», utilice el asistente de entrada (
) para seleccionar un archivo en formato *.c, *.cpp, *.ho*.hppy, a continuación, haga clic en «Añadir».CODESYS inserta el archivo de código C seleccionado en el árbol de dispositivos, debajo del módulo de código C
. -
Si hace doble clic en el nuevo archivo de código C (
) en el árbol de dispositivos, se abrirá en el editor para su modificación.
Generación de archivos de código C vacíos
Requisito: Se abre un proyecto que ya incluye un módulo de código C
.
-
Haga clic en el objeto
« Módulo de código C» en el árbol de dispositivos. -
Haga clic en «Proyecto Añadir objeto Archivo de código C».
-
En el cuadro de diálogo «Añadir archivo de código C», especifique el nombre del nuevo archivo de código C con la extensión de archivo adecuada y haga clic en «Añadir».
CODESYS inserta el archivo de código C seleccionado en el árbol de dispositivos, debajo del módulo de código C
. -
Si hace doble clic en el nuevo archivo de código C (
) en el árbol de dispositivos, se abrirá en el editor para su modificación.
Conversión de archivos de código C en objetos IEC para su uso como objetos de programación en aplicaciones
Requisito: Se abre un proyecto que incluye un módulo de código C
y archivos de código C
. Por ejemplo, el archivo de código C contiene el siguiente código C: int adder(int a, int b);
-
Haga clic en un archivo de código C de
con la extensión *.h. En este ejemplo, estest.h. -
Haga clic en «Construir C-Integración Crear interfaz IEC».
Se abre el cuadro de diálogo «Crear interfaz C» y enumera el archivo
test.hy su funciónadder (int, int). Ambos están activados para la importación. -
Haga clic en «Importar».
-
CODESYS genera la función «adder (FUN)» y la inserta como objeto en la carpeta «IEC interface» del árbol de dispositivos.
-
Si hace doble clic en el objeto «sumador (FUN)», se abre en el editor. Contiene la siguiente parte de declaración:

-
Ahora puede llamar a la función
adderen la parte de implementación de un POU (ejemplo:adder (diVar1, diVar2);).
Creación de stubs en C
Requisito: Se abre un proyecto que incluye un módulo de código C
. Se añade un POU al módulo de código C y este POU tiene código implementado.
-
En el árbol de dispositivos, seleccione el POU situado debajo del módulo de código C y haga clic en «C-Integration Create stub implementation in C».
CODESYS crea los objetos «iec_external.c» y «iec_external.h» y los añade a la carpeta «Extensions» del árbol de dispositivos.
En la ventana de mensajes («categoría del módulo de código C»), encontrará un mensaje que indica que se ha creado correctamente un archivo m4.
Al hacer clic en «Crear implementación stub en C», la aplicación se compila automáticamente. Si se producen errores en el proceso, éstos se indican en la ventana de mensajes. Además, controle los mensajes de la «categoría del módulo de código C».
Asignación de módulos de ejecución precompilados a dispositivos y almacenamiento en bibliotecas
Requisito: Una biblioteca (*.library) está abierta en CODESYS.
-
Haga clic en «Ver POUs».
La vista «POUs» se abre y muestra el proyecto de biblioteca y sus objetos.
-
Seleccione el proyecto de biblioteca y haga clic en «Proyecto Añadir objeto Biblioteca implementada en C».
-
Haga clic en «Añadir» en el cuadro de diálogo «Añadir biblioteca implementada en C».
CODESYS añade el objeto
«biblioteca implementada en C» a la vista «POUs». -
Haga doble clic en el objeto
de la «biblioteca implementada en C».El objeto se abre en su editor
-
Haga clic en «Añadir» en este editor.
Se abre el cuadro de diálogo «Seleccionar dispositivo».
-
En el campo de entrada «Archivo de objetos», especifique el nombre de un módulo cargable dinámicamente con el formato *.dll o *.so.




AVISO

El archivo *.dll debe contener el título del proyecto de biblioteca en su nombre. Por ejemplo, si el proyecto de biblioteca se llama XYlib, el archivo «Object» debe llamarse:
<Name>_XYlib.dll. -
En la ventana «Dispositivo», seleccione un dispositivo para la asignación del archivo de objetos .
-
Haga clic en «Seleccione el dispositivo».
CODESYS muestra la asignación del archivo de dispositivo creado en el editor en la pestaña «Componentes compilados».
-
Guarde el proyecto de biblioteca.