主要内容

转发表

如果编辑现有的库块,则需要确保在使用库块的旧版本保存模型时,更改不会破坏模型。库块中的编辑类型可以包括:库路径更改、库块名称更改、参数的添加、删除或重命名。

转发表有助于维护库块的兼容性,并确保模型继续工作。可以使用转发表在旧库块和新库块之间创建映射,而不会丢失任何数据或功能。在转发表中指定旧库块到新库块的映射后,到旧库块的链接会在模型加载时自动更新。例如,如果重命名或移动库中的块,则可以使用转发表更新具有到旧库块链接的模型。转发表的执行场景如下:

  • 当模型关闭并重新打开时。

  • 当AN.add_block.replace_block命令执行。

创建代理表

请注意

无法使用转发表更新已破坏或禁用链接的模型。

  1. 打开一个上锁的库。

  2. 在图书馆窗口中,在图书馆选项卡上,单击锁定库.库现在可以解锁进行编辑了。

  3. 造型选项卡上,单击图书馆属性.的图书馆属性将打开对话框。

  4. 点击转发表标签。

  5. 点击(添加新条目)按钮。在转发表中添加了一个新行。

  6. 老块路径新的块路径列。要获取块的路径,请选择模型中的块并单击

  7. 在里面版本列,您可以选择为库块指定版本号。

    如果旧块名称和新块名称相同,则转发表将自动填充版本号。库版本的初始值(图书处)是从模型版本(ModelVersion),在创建库链接时。对库块的任何后续更新都将更新库版本以匹配库的模型版本。

    请注意

    • 版本号必须是一个数值。

    • 当旧的和新的块路径相同时,版本号必须是这种格式.例如,在重命名库块时。

    • 版本号不能有多个点表示法。例如,版本号1.3是可接受的,而且版本号1.3.1是不能接受的。

    • 当您使用转发表将一个库块从一个库移动到另一个库时,版本号格式并不重要。

  8. 在里面转换函数列,您可以指定MATLAB®用于纠正旧链接和新链接之间参数数据不匹配的文件。为新库块转换旧链接参数数据使您能够加载旧链接并保留参数数据。有关更多信息,请参见转换函数

    如果未指定转换功能,则转换功能列显示没有转型当你拯救图书馆的时候。

  9. 要应用更改并关闭对话框,请单击好吧.在转发表中创建旧路径到新路径的映射。当您打开包含到库链接的模型时,到旧库块的链接将自动更新。

填充转发表后,您可以使用表上方的搜索栏来过滤其内容。当转发表有太多条目时,此过滤器特别有用。您可以按升序或降序对表中的列进行排序。您还可以通过它们的值组分组每个列。

用户定义的转发表的示例如图所示:

当您为旧块和新块指定相同的库块名称和路径时,转发表自动填充版本号。对于具有相同名称和路径的第一个条目,旧块的版本号以0开始,块的新版本被设置为库的模型版本。控件下可以查看库的模型版本历史转发表的标签。

当特定于实例的参数(InstanceData)在旧的和新图书馆块中发生了变化。

在这个例子中,

  • 块路径块一个改变从仙女镇李坝社区LibB

  • 块名称块X更改块Y而库路径保持不变。

  • 块名称块米变成块N.指定一个转换函数来处理特定于实例的更改。

  • 块版本和特定于实例的参数块L

以编程方式创建转发表

在命令行中,您可以创建一个简单的转发表,指定旧位置以及在库中移动的块的新位置或另一个库。您可以通过设置其与库将转发表与库相关联ForwardingTable两个元素单元阵列的小区数组的参数,每个元阵列指定已移动的块的旧路径。例如,创建转发表的语法并将其分配给名为的库Lib1是:

set_param(‘Lib1’,‘ForwardingTable’,{{Lib1 /,‘Lib2 /}{‘Lib1 / B’,‘Lib1 / C’}});

在哪里:

  • Lib1是与转发表相关联的库。

  • 堵塞一个转移到Lib1Lib2

  • 堵塞B重命名为C在同一个图书馆。

转换函数

链接块实例与调用的特定于实例的参数相关联InstanceData.创建库块版本时,可以从InstanceData

中参数的不匹配可以通过转换函数来纠正InstanceData因此,新的和旧图书馆链接因此确保图书馆链接继续工作。

您可以在路径上使用MATLAB文件定义一个变换函数,然后在转换函数列的转发表

转发表中定义的新块路径将覆盖变换函数中定义的值。如果新块路径是一个动态值,它会根据某些条件发生变化,那么新块路径只能使用转换函数定义。

转换函数的语法必须是:

函数outdata = TransformationFCN(indata)

在哪里:

  • indata.是一个田野的结构转发itableentry.InstanceData, 和转发itableentry.也是一种结构。

  • outData是一个田野的结构newinstanceata.newblockpath.

一般的变换函数可以定义许多局部函数。该函数根据旧块名称和版本调用适当的局部函数。您可以使用它将多个局部函数组合成一个单一的变换函数,以避免在MATLAB路径上有许多变换函数。

考虑到这一点比较常数在仿真软件金宝app®图书馆。您必须在不更改名称和块路径的情况下创建该块的版本,但要将参数添加到新的库块中。

的两个版本中的参数差异比较常数块。

旧版 新版本
堵塞BlockType参考的名字“比较\ nto常量”港口[1,1]位置[210, 60, 250, 100]SourceBlock“fixpt_lib_4 /逻辑比较/对比\旅游公司常量”SourceType“固定点相比常量”relop“==”常量“3.0”
堵塞BlockType参考的名字“比较\ nto常量”SID“15”港口[1,1]位置[125, 50, 155, 80]zorder.-5图书处“1.271”SourceBlock“金宝appsimulink /逻辑而\ nOperations /比较\常量”SourceType“相比常量”relop“<=”常量“3.0”仰卧床“布尔”ZeroCross

新版本的比较常数块有其他参数(仰卧床ZeroCross)与之相关。对于这种情况,转换功能必须确保附加参数InstanceData设置为旧图书馆链接工作。

的转换函数比较常数块添加仰卧床参数,值为uint8

功能[outData] = TransformationCompConstBlk(inData)NewBlockPath =''库块路径中的百分比没有变化outData。NewInstanceData = [];instanceData = inData.InstanceData;%从instandata获取字段类型'name'[ParameterNames{1:长度(instanceData)}] = instanceData.Name;如果(〜ismember('outdataTypestr', ParameterNames))%veryataTypest参数不存在于旧链路中。添加它并设置值UINT8instanceData(+ 1)结束。Name ='outdataTypestr';instanceData(结束)。值=“uint8”结尾outData。NewInstanceData = instanceData;

创建掩码参数别名

如果重命名蒙版参数,则必须确保使用旧参数名称的现有Matlab脚本继续工作。为确保兼容性,可以为掩码参数名称创建别名(备用名称)。别名允许您更改库块中的掩码参数的名称,而无需在现有模型中重新创建链接到块。

考虑包含一个屏蔽块编辑参数。掩码参数名称编辑参数是P1

MaskObj = 金宝appSimulink.Mask.get (gcb));hEdit = MaskObj.getParameter ('p1');hEdit =%MaskParameter具有属性:类型:“编辑”TypeOptions: {0×1 cell}'p1'提示:'p1'价值:' 0 '评估:“上”可调:“上”NeverSave:'离开'隐藏:'离开'启用:“上”可见:“上”提示:“上”打回来:''别名:''

请注意,编辑Mask参数没有任何别名名称。要为蒙版参数添加别名名称,可以为此设置值别名蒙版参数属性。

maskobj.alias ='pa'

您可以使用掩码参数名称或别名对掩码参数执行函数调用。例如,在这种情况下,您可以使用set_param (gcb,“p1”,10)(掩码参数名称)set_param(gcb,'pa,'10)(掩码参数别名)来设置编辑面具参数。

相关的话题