2017-04-20 52 views
0

我目前正在研究测试工作台的自动化(我的工作位置的主题)。它由电子负载(BK8610,BK8500),直流电源(BK9202,ETS60X14C)和万用表(MetraEnergy)组成。在Scilab上执行常规任务

我在Scilab中创建了一个函数库来同时控制所有设备(我可以设置参数并使用以太网,串口和VISA接口来获取测量值)。现在,每个命令都可以正常工作,我正在尝试编写一个通用脚本来执行常规措施。

我想到在我的脚本开始时使用tic(),然后exec_time = toc()在结束时等待5s-exec_time,然后再次执行它。

tic() 
//My code 
exec_time=toc() 
//wait until the time is equal to 5s 
//Repeat 

即使这可能是工作,不知的Scilab具有将相当于一个异步中断定时器(上的ATmega常用,STM32等)的功能?这会容易得多。

希望这是明确的。谢谢 !

回答

0

也许realtime & realtimeinit是你的解决方案。从Scilab的帮助修改例如:

clc; 
clear; 

realtimeinit(1/2);//sets time unit to half a second 
realtime(0);//sets current date to 0 
for k=1:10 
    realtime(k); 
    mprintf('\r\ncurrent time is %.1f sec',k/2); 
end 
+0

谢谢你,我会试着写一个脚本这王氏一个。 我已经用我的解决方案做了一堆测试,它运行良好,但它并不真正“美丽”。 – Orgoss

+0

如果此解决方案解决了您的问题,您可能会考虑接受它,因此其他人也可能会看到问题不再公开。谢谢。 – Attila

+1

我试过了,我观察到150〜循环(几秒钟)后有点时间偏移,所以我保留了我以前的算法。无论如何,我会接受它,因为它是我需要的,但它不如外部石英那么精确(也许因为我使用的PC只有一个内核?)。 – Orgoss

相关问题