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

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

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

    [LV.1]初来乍到

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

    EDA365欢迎您登录!

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

    x
    自己用脚本做的gui,实现用tcpip建立对象控制keysight电源N5767并读取电压电流。0 z: Y7 `( D( n" J2 d' r
    脚本已经运行成功,功能正常。但是用应用程序打包成exe后发现如下问题:% T% Y  s) R+ z1 |6 v* E; Z% F
    1. 程序可以对仪器进行设置(输出电压,电流保护门限,对仪器进行开关操作)。但是无法读取仪器工作时的电压和电流值。而这些功能在脚本上运行是没有问题的。
    ( V8 t3 l% i3 i5 v' B# d& A. Z2. 在运行打包的exe时,通过matlab的命令栏输入tmtool,观察到并没有建立tcpip对象。但是exe的确可以对仪器进行某些操作。 按道理没有看到对象就应该无法和仪器通信?: ?! a; f  M& s  J& `$ K* a; i. l
    3. 为了排除这个疑问,我再次用脚本运行代码,同时再敲入tmtool,发现脚本运出来的GUI是可以创建对象。 这说明脚本程序能成功通信并且tmtool窗口也能观察到对象。但是为什么打包好的可执行exe却无法在tmtool上看到对象,但却能部分控制仪器。
    9 G( a8 s% c% r4 g9 h6 |1 H* y; {* E- [# W2 U5 W% f8 D
    + a' P  O0 v/ i. U

    / i' l, T3 T# d' N; L: m  zswitch polarity( j! f, J, C4 ?. f' ?4 O
            case 0
    - I2 V, F! x1 I8 N( y        fprintf(psu,':OUTP OFF');      
    - q5 R6 n0 z* B( `        set(obj,'String','Stop test');   $ F8 ~, }& h  M' z9 q
                + Z* b4 X: T9 o' D% |
            case 14 a' _8 E" v& Y  w
            set(obj,'String','Start test');               3 b" V( r2 Q  V8 [9 @* s
            fprintf(psu,':OUTP ON');   0 {; F/ s6 P8 _/ V* j0 s
            for I=1:inf  
    5 R3 w  q2 d, \7 H, h        currentchar = query(psu,'MEAS:CURR?');
    7 h  `/ K- }( _" p: |        voltchar = query(psu,'MEAS:VOLT?');
    ! ^/ y7 b& A# Z- O# o1 D        currentdata = vpa(currentchar,4);2 s- w1 |& K: |: o; _$ g3 |& p+ ?
            voltdata = vpa(voltchar,4);
    1 W9 s& c3 d& [3 s8 }, S/ s        set(voldispvalue,'String',voltdata);4 I) P- ^- U8 m: ^
            set(curdispvalue,'String',currentdata);
    * Q' l8 N4 v: @: h        delay(0.1);
    ( {1 b1 u# `5 i+ {; y% m9 L        end      , A0 I! [# }, G  t$ m
        return
    3 y. F0 s5 k. z- T* `    end
    $ n0 n6 J! D) U4 o" v            
    0 e3 b; e  ]$ e- {$ L    end
    4 a+ S" x4 X( a5 [  Z% r* @) H. d! ?0 N, ?
    附上读取代码。这个在脚本运行没有问题,可以正常读取电源数据。但是打包生成exe后,就一直读取不了数据,卡在那里

    8 [- w- h2 e* J& J+ u
  • 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文件下编写的,没有依赖其他文件% H, X; k/ B6 P- y5 ?' T6 p

    点评

    那你在程序里面加一个 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% w! |' L  C  X, z) q
    我所有函数都在一个.m文件下编写的,没有依赖其他文件

    / [! b7 V* m7 q) u, u那你在程序里面加一个  pwd 输出看看程序运行时是否确实在 你要读的文件目录内。再就是看看文件读取权限,你可以试试用管理员模式运行exe 然后看看能不能读取文件2 W  E4 Q- J3 y8 s- F& L! s, l/ T" }
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-8-24 01:42 , Processed in 0.140625 second(s), 24 queries , Gzip On.

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

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

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