.

Integrating C模块

.
.

使用集成C代码插件,可以在CODESYS工程中包含外部实现的C代码文件,可以从IEC对象生成C存根。

在CODESYS中,C代码模块对象类型可用于此目的。C代码文件和使用的IEC对象位于C代码模块的下面。硬盘上的一个文件目录与C代码文件被分配给每个C代码模块。

在这个项目中,您可以从C代码文件中以*.h或*.hpp的格式生成IEC对象(头文件),以便在其他POUs中使用它们。

.生成c存根的目的是为了以下用例:

  • C代码文件访问IEC对象: C代码文件不能直接访问IEC对象。它只能访问由IEC对象生成的C存根。
  • 生成可合并到库工程中的预编译模块。

导入后,导入的源代码文件是CODESYS项目的一部分,因此它们与磁盘上的原始文件解耦。

在编译期间,从C代码模块生成一个动态模块,并将其保存为项目的一部分。信息、警告和错误显示在C代码模块类别的消息视图中。

在下载过程中,应用程序的所有动态模块都被传输并加载到Runtime系统。Runtime系统必须为此支持动态链接。

 

Runtime系统的许可证

Runtime系统需要一个允许加载C模块的许可证。没有此许可证,动态模块在下载期间无法链接,因此下载将被中止。

动态模块是启动应用程序的一部分,它们在控制器重新启动时被重新加载和激活。Reset Origin命令卸载应用程序中的所有C代码模块。冷复位热复位命令不会导致C代码模块的重复初始化。

提示!

没有C代码的模拟模式

在模拟模式下,不生成C代码并将其加载到runtime系统。为了模拟C模块中包含的代码,您可以在C代码模块的各个IEC对象中实现这一目标。

CODESYS不支持在C代码文件中监视变量或在C源代码中设置断点。

库中预编译模块:

C代码集成提供了分配预编译Runtime模块的功能(例如: *.dll)在库中保存一个设备,然后将其保存在库中。然后,可以动态加载这些模块。

.
  配置C代码模块
.
  从文件目录导入包含C源文件的文件夹
.
 导入单独的C代码文件
.
 生成空的C代码文件
.
 将C代码文件转换成IEC对象,在应用程序中用作编程对象
.
 创建C存根
.
 将预编译的Runtime模块分配给设备并将其保存到库中