EDA365电子论坛网
标题:
matlab 脚本运行正常生产exe后无法读取仪器数据
[打印本页]
作者:
someone
时间:
2022-9-5 14:01
标题:
matlab 脚本运行正常生产exe后无法读取仪器数据
自己用脚本做的gui,实现用tcpip建立对象控制keysight电源N5767并读取电压电流。
% D. Q# y/ ? S, E( r# L1 C
脚本已经运行成功,功能正常。但是用应用程序打包成exe后发现如下问题:
Q; M) o" l# u3 h
1. 程序可以对仪器进行设置(输出电压,电流保护门限,对仪器进行开关操作)。但是无法读取仪器工作时的电压和电流值。而这些功能在脚本上运行是没有问题的。
1 _$ b4 ~$ {0 T! ]# p
2. 在运行打包的exe时,通过matlab的命令栏输入tmtool,观察到并没有建立tcpip对象。但是exe的确可以对仪器进行某些操作。 按道理没有看到对象就应该无法和仪器通信?
# ?9 ?% d- K( _( O
3. 为了排除这个疑问,我再次用脚本运行代码,同时再敲入tmtool,发现脚本运出来的GUI是可以创建对象。 这说明脚本程序能成功通信并且tmtool窗口也能观察到对象。但是为什么打包好的可执行exe却无法在tmtool上看到对象,但却能部分控制仪器。
& R& |' s% j' A0 a
- n* i8 K" p7 D8 y7 c8 I/ g
) ^; e3 r$ A0 X# ]& B
' u8 ]3 @4 }$ J3 \" S
switch polarity
; h+ X8 P5 t$ @$ t( G7 V
case 0
! m h, r" k# `, s/ ?
fprintf(psu,':OUTP OFF');
; b4 q3 O7 d5 B( b, e
set(obj,'String','Stop test');
+ B4 W5 j6 e0 |8 M3 V/ ?( b; {( n/ X
# o, F9 [$ n0 ^) h8 w# [
case 1
3 p! F0 X. ^( L9 y
set(obj,'String','Start test');
) k% \3 n9 G. M$ a
fprintf(psu,':OUTP ON');
3 ~& g' J# ]4 D% G/ E
for I=1:inf
& u5 @# |# }2 D8 l& @
currentchar = query(psu,'MEAS:CURR?');
3 k/ ^! C; S! x
voltchar = query(psu,'MEAS:VOLT?');
~4 }/ |+ l" a
currentdata = vpa(currentchar,4);
3 r: z5 f( u9 p: b0 }6 \& ?5 U
voltdata = vpa(voltchar,4);
# S6 x# X4 \' g- ?
set(voldispvalue,'String',voltdata);
s5 v( H: O f/ h/ T
set(curdispvalue,'String',currentdata);
1 {+ L- X# C* J) ]2 K7 f# H
delay(0.1);
% y% L% H8 I! D) R
end
- J1 i3 B. {; g* L+ } s/ u8 x
return
7 K+ S0 _; c% H5 ]: E* ^ m
end
: z) w# B& D9 j% h3 A& Y; B; X, `
) E3 F$ q( a3 u
end
) d* N! T4 |6 I( Q
4 r( Z! m7 N6 W, P: i4 u$ o
附上读取代码。这个在脚本运行没有问题,可以正常读取电源数据。但是打包生成exe后,就一直读取不了数据,卡在那里
1 u% R8 l3 U. p
作者:
nocturne
时间:
2022-9-5 14:39
exe程序目录可能和你的 m程序目录不在一个地方,导致找不到m文件目录下的 文件
作者:
someone
时间:
2022-9-5 15:17
我所有函数都在一个.m文件下编写的,没有依赖其他文件
8 L! m, H3 Q5 o" M
作者:
nocturne
时间:
2022-9-5 15:25
someone 发表于 2022-9-5 15:17
! b% p: M' ^5 B2 T% [) S
我所有函数都在一个.m文件下编写的,没有依赖其他文件
2 I0 J; h$ \* t0 E T- f
那你在程序里面加一个 pwd 输出看看程序运行时是否确实在 你要读的文件目录内。再就是看看文件读取权限,你可以试试用管理员模式运行exe 然后看看能不能读取文件
1 w4 f1 u+ f7 H# @
欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/)
Powered by Discuz! X3.2