主要内容

C功能

从Simulink模型集成并呼叫外部C代码金宝app

  • 图书馆:
  • 金宝appSimulink /用户定义的函数

  • C功能块

描述

C功能块从Simulink中集成并调用外部C代码金宝app®模型。使用此块来定义外部代码并通过预处理或后处理数据来自定义代码的集成。此外,您还可以指定用于仿真和C代码生成的自定义代码。您可以根据条件调用在代码中定义的函数,并且您也可以在一个块中调用多个函数。使用此块,您可以初始化块的持久数据并将其传递给外部功能。

你也可以使用C功能块调用C数学库函数的子集。看C函数块调用C库函数想要查询更多的信息。

C功能块支持初始化金宝app持久数据并从块对话框调用外部函数。这C功能块仅支持初始金宝app化和终止持久数据;该块不支持在仿真期间更新数据。金宝app要使用连续状态模拟动态系统,请使用S函数堵塞。要了解有关S函数的更多信息,请参阅什么是s函数?

定义源代码和支持要调用的文件金宝appC功能块在仿真目标配置参数的窗格。

限制

Simulink的以下功能与此不兼容金宝appC功能堵塞。

  • 金宝appSimulink Coverage™

    才能测量执行覆盖范围。

  • 金宝appSimulink代码Inspector™

  • 金宝appSimulink Design Verifier™

  • 金宝appSimulink Test™

    - 测试线束

  • 使用C功能金宝appSimulink Report Generator™

此外,以下限制适用于由此引用的源代码C功能堵塞。

  • c关键词静止的不受支持。金宝app

    跨时间步骤缓存值,将符号定义为执着的在里面符号块对话框的表。

  • 文件不能包含在脚本中。

    必须在外部函数中指定仿真目标配置参数对话框的窗格。

    如果您已存在包含在中的包含仿真目标无法与新内容混合的窗格,考虑在库模型中添加包含和C功能块,并在主模型中使用链接到块。有关更多信息,请参阅创建自定义库

  • 无法互相分配不同类型的指针。当您调用外部函数时,指针类型应匹配。

  • 代码不能占据常量的地址。

  • 直接调用来自的一些C库函数C功能不支持块。金宝app要查看可直接调用的C数学库功能的列表,请参阅C函数块调用C库函数。要调用其他C库函数,请创建一个调用C库函数的包装器函数。

港口

输入

展开全部

输入到C功能堵塞。

输入的数量及其名称由外部C代码中的定义和符号中的定义决定符号块参数对话框中的表。

输入端口标签与输入符号的名称相同,除非通过编辑它来更改它标签田野符号块对话框的表。

数据类型:单身的|双倍的|INT8.|int16|INT32.|INT64.|uint8.|uint16|UINT32|UINT64|布尔基|枚举|公共汽车

输出

展开全部

输出从C功能堵塞。

输出数量及其名称由外部C代码中的定义和符号中的定义决定符号块参数对话框中的表。

输出端口标签与输出符号的名称相同,除非您通过编辑它来更改它标签田野符号块参数对话框的表。

数据类型:单身的|双倍的|INT8.|int16|INT32.|INT64.|uint8.|uint16|UINT32|UINT64|布尔基|枚举|公共汽车

参数

展开全部

指定代码C功能块在模拟期间执行。例如,您可以从指定的外部C代码调用函数仿真目标窗格,对结果进行修改,并执行操作将结果传递给其他块。

指定初始化代码C功能堵塞。此代码在仿真开始时执行一次。例如,您可以初始化持久性数据。

指定清理代码C功能块在模型终止时运行。此代码在模拟结束时执行一次。例如,使用此代码释放为持久符号释放为void指针的持久符号中的内存。

符号表指定C代码中符号的属性。您必须输入表中每个符号的属性。

  • 名称- 源代码中的符号名称。

  • 范围- 符号的范围。您可以随时更改符号的范围。以下范围可用:

    • 输入- 输入符号C功能堵塞。

    • 输出- 输出符号C功能堵塞。

    • 输入输出- 将符号定义为输入和输出C功能堵塞。

    • 范围- 将符号定义为参数。参数名称由此定义标签符号的财产。

    • 执着的- 将符号定义为持久数据。

      您可以使用使用void指针执着的范围。一种void指针是一个指针,可以存储您创建或分配的任何类型的数据。

    • 不变- 使用值大小或数字表达式将符号定义为常量。

  • 标签- 符号的标签。对于他们的范围设置为的符号输入或者输出,此标签显示为块上的端口名称。对于他们的范围设置为的符号范围,此标签是块参数掩码上显示的标签。如果范围是不变,标签是常量表达式。您无法定义标签执着的符号。

  • 类型- 符号的数据类型。从下拉列表中选择数据类型或指定自定义数据类型。

    使用自定义类型如金宝appsimulink.bus.金宝appsimulink枚举或者金宝appsimulink.aliaStype.没有与a关联的外部标题定义C功能块,相应地设置类型象征桌子。

  • 尺寸- 符号数据的大小。这C功能块仅支持标量金宝app和向量;不支持矩阵和更高尺寸阵列。金宝app您可以使用大小表达式来定义输出或使用的大小-1继承大小。

  • 港口- 用于输入和输出符号,港口表示符号数据块上的端口索引。对于参数符号,港口表示符号出现在块参数蒙版中的顺序。

块特征

数据类型

布尔基[一种]|公共汽车[一种]|双倍的[一种]|枚举[一种]|整数[一种]|单身的[一种]

直接喂养

多维信号

是的

可变尺寸信号

零交叉检测

[一种]实际数据类型或能力支持取决于块实现。金宝app

扩展能力

在R2020A中介​​绍