我有一个复杂的Simulink模型,并希望在子系统中生成一个简单的错误消息信号,从大量的传入错误观察信号 . 这些输入信号在一个总线中组织,并且始终为0,在发生错误时执行:然后有一个值到边缘 . 错误消息应包含单个位代码,该代码是为excel列表中的每个错误名称和错误值定义的 .

如何将此错误代码分配给具有上升沿的特定错误信号?我需要类似查找功能的东西:

for(每个信号):如果信号有边缘值,请在列表中查找信号名称并输出其错误代码 .

我的想法是使用带有总线输入和一维输出的MATLAB功能块 . 在模拟开始之前生成的.mat文件包含一个结构,其中包含来自excel文件的列表输入,应该用作MATLAB函数中的参数 .

这个解决方案似乎有点困难,因为代码生成不支持动态字段引用和通过结构进行交互 . 我甚至无法从结构中获取信号名称,因为也不支持fieldnames函数 .

我现在想知道是否有另一种方法或MATLAB功能仍然可以解决我的问题 . 我可以在PreLoadfcn中为MATLAB功能块生成代码吗? S功能在这里有意义吗?或者是否有基于Simulink的解决方案进行信号转换?