Issue1: Server creation failed .Invalid ProgID 'CANoe.Application.
Issue2: 加载库 “SymbSelAdapt.dll” 时出错
找不到指定的模块。

Step 如下:

  1. 安装Vector_AddOn_Matlab_Interface
    a. 这个插件程序,网页找不到,只能通过CANoe本地安装路径查找:
    12.0 SP2 --> <CANoe 安装路径>\ Installer Additional Components\Matlab.
    找不到的Everything一下,不同版本CANoe路径不一致,
    文件名:Vector_AddOn_Matlab_Interface.exe
    b. 直接运行 Vector_AddOn_Matlab_Interface.exe,会自动扫描电脑上已安装的 Matlab,定位到Matlab 安装位置进行安装。
  2. matlab无法调用GPU matlab无法调用canoe_simulink

  3. c. 安装完成后,对应的 Simulink Library 中会出现 Vector CANoe 相关 Blocks, 如果刷新后也找不到,重启Matlab就可以。
  4. matlab无法调用GPU matlab无法调用canoe_Simulink_02

  5. 2.Matlab生成.mdl/slx, .ini 及.dll 文件
    a. Configure parameter:
    Solver 中,把 Solver Selection 的 Type 设为 Fixed-step,Solver 选为 ode1(Euler).
  6. matlab无法调用GPU matlab无法调用canoe_matlab_03

  7. b. Code Generation 中,选择 System target file 后的 Browse,在弹出窗口中选择 cn.tlc:
  8. matlab无法调用GPU matlab无法调用canoe_matlab_04

  9. 3.编译器配置
    a. 请先确认电脑上已安装 Visual Studio Professional,所支持的编译器版本信息请在帮助文档中的Index 标签页搜索” MATLAB Integration Setup”查看。
    b. 在 Matlab 主窗口输入 mex -setup,按照提示选择所需编译器:
  10. matlab无法调用GPU matlab无法调用canoe_bms_05

  11. c. 编译
    创建好 Simulink 模型(.mdl/.slx)之后,选择 Build Model(快捷键 Ctrl + B),即可生成对应模型文件的*.ini 及*.dll 文件。
  12. matlab无法调用GPU matlab无法调用canoe_simulink_06

  13. 4. 编译遇到的问题
    a. “Server creation failed .Invalid ProgID 'CANoe.Application”, 这个是由于安装了两次以上的CANoe,导致注册表冲突,重新注册一下既可以, 步骤如下:
    <64位 CANoe安装路径> -->> Exec64\RegisterComponents.exe -->>直接运行既可以。
    note: 如果是32位软件,则在 Exec32 文件夹下寻找。
    b. 在simulink ->>Signal Output ->> select signal, 产生下列问题:
    错误使用 loadlibrary
    加载库 “SymbSelAdapt.dll” 时出错
    找不到指定的模块。
    出错 cn_get_siginfo2 (line 15)
    loadlibrary(‘SymbSelAdapt.dll’, ‘SymbSelAdapt.h’)
    出错 SignalOutputBlock>btnSelect_Callback (line 195)
    [result, dbName, nodeName, messageName, signalName, varType, hasEncoding] = cn_get_siginfo2(0);
    出错 gui_mainfcn (line 95)
    feval(varargin{:});
    出错 SignalOutputBlock (line 42)
    gui_mainfcn(gui_State, varargin{:});
    出错
    matlab.graphics.internal.figfile.FigFile/read>@(hObject,eventdata)SignalOutputBlock(‘btnSelect_Callback’,hObject,eventdata,guidata(hObject))
    原因:
    错误使用 loaddefinedlibrary
    找不到指定的模块。
    如果选择信号遇到这个问题,则是软件版本不匹配。
  14. matlab无法调用GPU matlab无法调用canoe_Simulink_07

  15. c. 不能生成dll文件。
    Visual studio 必须是professional, community version 不能生成dll文件。

5. CANoe 配置

a. 使能 Simulink integration。

matlab无法调用GPU matlab无法调用canoe_bms_08

6. CANoe Node 配置

a. Network Node 上点击鼠标右键,选择 Configuration.

matlab无法调用GPU matlab无法调用canoe_simulink_09


b. 在配置界面中选择 Simulink 标签,添加模型需要提供.mdl/slx 文件、.ini 文件以及.dll 文件.

matlab无法调用GPU matlab无法调用canoe_bms_10


c. 运行 CANoe 文件,节点中绑定的 Simulink 模型也会运行。同时,可在 CANoe 的 Environment -> Model Viewer 中直接查看模型文件.

matlab无法调用GPU matlab无法调用canoe_simulink_11