Hello all
I am currently trying to develop an instrumentation and control panel for an experiment which interfaces using Modbus RTU. I have a code snippet below for the logging. However ideally, I would also like to be able change some digital output on the device by clicking a button on the computer. The only way I can think of doing this is with an App with callbacks any time the button is pressed. However, since I need to poll the device I can't use a callback for the logging and so can't work out to keep it running continually. Any advice would be greatly appreciated.
Thanks,
Martin
close all
m = modbus('serialrtu', 'COM4');
m.Timeout = 3;
serverId = 2;
data = read(m, 'holdingregs', 1, 1, serverId, 'int16');
t = 0
tic
while 1==1
data = [data;read(m, 'holdingregs', 1, 1, serverId, 'int16')];
t = [t,toc];
plot(t,data)
drawnow
pause(1)
end
clear m

 Réponse acceptée

Martin O'Connor
Martin O'Connor le 21 Jan 2021

0 votes

I have done some further digging and realised I should probably use a timer object. Apologies for the preemptive post.
https://uk.mathworks.com/matlabcentral/answers/297381-how-to-implement-a-timer-in-appdesigner

Plus de réponses (0)

Catégories

Produits

Version

R2020b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by