主要内容

通过使用代码跟踪验证生成的代码

代码跟踪(可追溯性)使用超链接导航一行生成的代码和相应的元素之间的一个模型。找到的代码和相应的元素,您可以使用PLC编码器应用导航到代码在模型中的一个元素。这种双向导航是双向可追溯性。

使用代码跟踪,您可以:

  • 验证生成的代码是你期望。你可以确定哪些模型元素对应于一行代码。你可以跟踪代码从不同元素或没有。

  • 确认生成的代码满足设计要求。你可以联系需求模型元素和使用代码跟踪验证模型元素生成的代码满足设计要求。

当你从模型生成代码金宝app®模型,可追溯性信息嵌入到生成的代码,除非显式地指定。追溯信息包括链接生成的源代码和模型之间的追溯。您可以查看生成的代码通过使用代码生成报告。

生成的代码包含这些资源,支持代码跟踪:金宝app

  • 代码元素超链接(强调当您将您的鼠标停留在代码)来跟踪在生成的代码中变量或类型声明或定义。

  • 在代码注释标记,识别元素模型生成的代码行。

  • 行号超链接,链接到的模型组件生成的代码行。

可追踪的元素

双向可追溯性是这些Stateflow仿真软件模块和支持金宝app金宝app®元素:

  • 转换

  • 状态转换表

  • MATLAB函数。可追溯性不支持外部代码调用从MATLAB金宝app函数。

  • 真值表块

  • 图形化功能

  • 金宝app仿真软件的功能

可追溯性在一个方向上是支持这些Stateflow元素:金宝app

  • 事件(code-to-model)

    Code-to-model追溯适用于明确的事件,但不隐式事件。点击一个超链接为一个显式的事件在生成的代码中突出了这一项内容Model Explorer窗格。

  • 连接(模型到代码)

    模型到代码的可追溯性工作与至少一个即将离任的过渡连接。Stateflow编辑器中右键单击这样一个结了行代码对应于第一个外向的过渡连接。

有关更多信息,请参见

生成的代码的可追溯性

这个例子展示了如何验证生成的代码通过使用代码生成报告。

  1. 打开示例GeneratingStructuredTextForAFeedForwardPIDControllerExample

    openExample (“plccoder / GeneratingStructuredTextForAFeedforwardPIDControllerExample”)
  2. 打开PLC编码器应用。单击公司代码选项卡。

  3. 点击设置并导航到代码生成窗格。

  4. 使报告生成、选择报告>生成可跟踪性报告

  5. 点击好吧

  6. 点击生成PLC代码启动代码和报告生成。上面的代码生成报告模型在MATLAB®web浏览器。

  7. 在左侧导航窗格中,选择plcdemo_pid_feedforward.exp文件。

  8. 点击发表评论或行号超链接。模型编辑金宝app器显示和突出模型中相应的块。

  9. 突出的一块生成的代码模型,选择块和PLC编码器选项卡上,单击导航到代码。生成的代码块中突出显示的HTML代码生成报告。

  10. 在左侧导航窗格中,您可以单击回来按钮回到之前的代码生成报告。

可追溯性标记

可追溯性标记出现在评论上面对应的行生成的代码。标签的格式<系统> /block_name

  • 系统是一个独特的号码分配由仿真软件引擎。金宝app

  • block_name是块的名称来源。

上面这段代码展示了一个标记注释生成的代码行。和块内一个子系统级别低于根级别的源模型生成此代码:

(*金额:< S1 > /总和的*)rtb_Sum: = In1——In2;

运营商可追溯性

生成的代码提供了运营商之间的可溯性生成的代码和模型块,Stateflow元素,或MATLAB函数块。金宝app

验证生成的代码通过使用运营商的可追溯性,在生成的代码中,单击一个算子超链接强调源块模型。

支持这些操作符。金宝app

符类型 运营商
算术 +,- - - - - -,*,/,%
+ =,- =,* =,/ =,% =
+ +,- - -(前缀和后缀)
逻辑 !,& &,| |
关系 = =,! =,<,>,< =,> =
~,|,^,&,> >,< <
& =,^ =,| =,< < =,> > =
有条件的 吗?

不支持这些操作符。金宝app

符类型 操作符的例子
赋值运算符 =
的成员和指针运算符 数组下标:一个[b]
地址和指针:,*一个
成员:a.b,a - >
其他运营商 括号在函数调用:foo (a, b)
逗号:一个,b
范围解析:b::
演员:类型(一)
,新[]
删除,删除[]

从命令行生成一个可跟踪性报告

生成一个金宝app仿真软件PLC编码器™命令行代码的代码生成报告子系统plcdemo_simple_subsystem / SimpleSubsystem:

  1. 打开一个金宝app仿真软件PLC编码器模型,例如:

    open_system (“plcdemo_simple_subsystem”);
  2. 使代码生成参数PLC_GenerateReport。模型的web视图中查看输出,也可以PLC_GenerateWebview:

    set_param (' plcdemo_simple_subsystem ', ' PLC_GenerateReport ', '对');set_param (' plcdemo_simple_subsystem ', ' PLC_GenerateWebView ', '对');
  3. 生成的代码。

    generatedfiles = plcgeneratecode (“plcdemo_simple_subsystem / SimpleSubsystem”)

    显示可跟踪性报告。在你的模型中,视图诊断超链接出现在模型窗口的底部。单击该链接将打开诊断查看器窗口。

    如果模型也使web视图,显示这一观点。

可追溯性的限制

这些限制适用于嵌入式编码生成的报告®软件:

  • 在下列条件下,模型到代码的可追溯性是禁用的一块,如果块名称包含:

    • 一个单引号()。

    • 星号(*),导致一个名称改编歧义在模型中相对于其他的名字。这个名称改编模棱两可如果发生在一个街区的名字或最后一块名称,星号之前或遵循一个斜杠(/)。

    • 这个角色y(char (255))。

  • 如果一个街区的名字包含换行符(\ n),生成的代码注释块路径链接替换换行符为可读性与空间。

  • 你不能跟踪块代表这些类型的子系统生成的代码:

    • 虚拟子系统

    • 戴面具的子系统

    • Nonvirtual子系统中已删除的代码优化

    如果你不能跟踪子系统,子系统级别,您可以跟踪单个块内的子系统。

  • 如果你打开一个模型在平台不同平台上用于生成代码,您不能使用模型到代码和code-to-model可跟踪性。

  • 内联的可追溯性是不能用于文件生成的shared_utils文件夹中。

相关的话题