为什么虚拟子系统输出的测试点标签没有显示在Real-Time Workshop 5.3 (R2009a)的C-API代码中?

1次查看(最近30天)
我发现标记的、测试指向的信号(在我从库中使用的原子子系统的输出)没有出现在C-API接口中。具体来说,子系统输出不会出现在结构中,除非它们被信号转换块或增益块缓冲(至少不使用与信号名称对应的标签)。
文件中没有关于此限制的说明。我希望能够通过生成的代码访问带有标签的信号。在当前方案中,如果信号的源没有任何关联的标签,那么我将在信号记录中得到以下代码:
{0, 4,“tt1 / Subsystem1”
"", 0, 0, 0, 0},
{1 8“tt1 / Subsystem1”
"", 0, 0, 0, 0},
代码似乎引用了一个没有指定端口号的子系统,并且没有显示来自用户的本地标签。不清楚为什么我不能通过标记将信号与Simulink实体联系起来。金宝app

接受的答案

MathWorks支金宝app持团队
你看到的行为是预期的。原因是_capi.c中的信号标签是来自驱动块(定义内存的块)的信号标签。当您在虚拟子系统的输出端口设置一个测试点时,是驱动块(而不是子系统)分配一个单独的内存缓冲区。虚拟子系统只是一个图形化的方便,并且通常不拥有信号的内存。
一般情况下,我们建议在驱动块的输出位置进行标记和测试。如果驱动块是虚拟子系统的一部分,你可以在这个子系统/块的输出中使用unity Gain块来强制测试点的标签显示在生成的代码中。直接路由出虚拟块的信号上的测试点可能会对C API生成产生意想不到的影响,这意味着测试点规范可能会传播到拥有内存的块。

更多的答案(0)

标签

下载188bet金宝搏

社区寻宝

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始狩猎!