找回密码
 注册
关于网站域名变更的通知
查看: 327|回复: 3
打印 上一主题 下一主题

matlab 脚本运行正常生产exe后无法读取仪器数据

[复制链接]
  • TA的每日心情
    开心
    2022-1-29 15:05
  • 签到天数: 2 天

    [LV.1]初来乍到

    跳转到指定楼层
    1#
    发表于 2022-9-5 14:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

    EDA365欢迎您登录!

    您需要 登录 才可以下载或查看,没有帐号?注册

    x
    自己用脚本做的gui,实现用tcpip建立对象控制keysight电源N5767并读取电压电流。( T' m  o( ]" B- c, |5 F) Z2 T
    脚本已经运行成功,功能正常。但是用应用程序打包成exe后发现如下问题:
    - E: g2 `5 X7 r' F2 P5 ^5 G$ R1. 程序可以对仪器进行设置(输出电压,电流保护门限,对仪器进行开关操作)。但是无法读取仪器工作时的电压和电流值。而这些功能在脚本上运行是没有问题的。# H- u. l0 Y2 I# {6 q. [8 i
    2. 在运行打包的exe时,通过matlab的命令栏输入tmtool,观察到并没有建立tcpip对象。但是exe的确可以对仪器进行某些操作。 按道理没有看到对象就应该无法和仪器通信?
    9 W! A& _0 B& ~7 N3. 为了排除这个疑问,我再次用脚本运行代码,同时再敲入tmtool,发现脚本运出来的GUI是可以创建对象。 这说明脚本程序能成功通信并且tmtool窗口也能观察到对象。但是为什么打包好的可执行exe却无法在tmtool上看到对象,但却能部分控制仪器。
    7 E3 \- r) U$ @, i- r
    ( _. X2 O) q% V1 Y8 u. o0 q; [" e) l4 S' _9 z& J* |4 v- R- q
    2 W7 H( G8 r0 q0 U6 a& }' y  |3 J/ Q
    switch polarity
    6 E! z  [+ a1 N/ Y3 O! R0 E        case 09 `! u" X+ \0 \  b
            fprintf(psu,':OUTP OFF');      8 b: [0 \' M& t1 W$ _' a: ?
            set(obj,'String','Stop test');   ) T8 E' m' k8 j/ ?; w5 A( F; X! }
                
    + Y7 X7 b0 l. N) L# H3 D        case 1+ R  o% ]% b# C* D
            set(obj,'String','Start test');               0 g$ @9 X6 `6 G9 I# @. K1 ]; M
            fprintf(psu,':OUTP ON');   
    , N' U2 r5 A  w  o% Y% }        for I=1:inf  # _  d4 u4 D& g, x" ~
            currentchar = query(psu,'MEAS:CURR?');# [5 L- J9 p9 H5 E
            voltchar = query(psu,'MEAS:VOLT?');
    ) j8 G* S) l: C/ o- `  p0 @- Q        currentdata = vpa(currentchar,4);& x8 E0 e; @" x% r# U
            voltdata = vpa(voltchar,4);
    " i8 r/ I5 P1 u6 p( P        set(voldispvalue,'String',voltdata);: L4 ?+ f' {$ _6 O
            set(curdispvalue,'String',currentdata);/ i  g4 s: {6 ^* w7 i7 }4 ~
            delay(0.1);
    7 H. o2 j" {* E% V( m6 `        end      
    $ k, r$ H6 s6 V0 A. G1 g    return3 E3 ]# T0 }3 C
        end9 E* Z' K7 ~% f7 K6 N
                / D0 f4 R2 P0 \' z$ y
        end
    , p! |, g) @' p& _4 _- m/ l, p$ f; Y5 s5 z  v
    附上读取代码。这个在脚本运行没有问题,可以正常读取电源数据。但是打包生成exe后,就一直读取不了数据,卡在那里
    % G7 a8 H' \! G, V/ h3 Q) k
  • TA的每日心情
    奋斗
    2022-1-21 15:15
  • 签到天数: 1 天

    [LV.1]初来乍到

    2#
    发表于 2022-9-5 14:39 | 只看该作者
    exe程序目录可能和你的 m程序目录不在一个地方,导致找不到m文件目录下的  文件
  • TA的每日心情
    开心
    2022-1-29 15:05
  • 签到天数: 2 天

    [LV.1]初来乍到

    3#
     楼主| 发表于 2022-9-5 15:17 | 只看该作者
    我所有函数都在一个.m文件下编写的,没有依赖其他文件
    - f' g2 ]4 W: {0 ]7 u

    点评

    那你在程序里面加一个 pwd 输出看看程序运行时是否确实在 你要读的文件目录内。再就是看看文件读取权限,你可以试试用管理员模式运行exe 然后看看能不能读取文件  详情 回复 发表于 2022-9-5 15:25
  • TA的每日心情
    奋斗
    2022-1-21 15:15
  • 签到天数: 1 天

    [LV.1]初来乍到

    4#
    发表于 2022-9-5 15:25 | 只看该作者
    someone 发表于 2022-9-5 15:17
    " n# m) q# v( F8 x% \8 q我所有函数都在一个.m文件下编写的,没有依赖其他文件

    1 w' R, B4 Q$ T- j8 C8 W+ O那你在程序里面加一个  pwd 输出看看程序运行时是否确实在 你要读的文件目录内。再就是看看文件读取权限,你可以试试用管理员模式运行exe 然后看看能不能读取文件
    ( c' H; m8 O+ J0 ~3 c% P9 s
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-11-23 17:02 , Processed in 0.171875 second(s), 24 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表