Can I set a session parameter to a variable?
Afficher commentaires plus anciens
I have a tank of fluid of which I would like to control the temperature. I read a temperature from a thermocouple through a background analog input channel.
inputSession = daq.createSession('ni');
inputSession.DurationInSeconds = 1;
inputSession.Rate = 2;
inputSession.IsContinuous = 1;
inputSession.NotifyWhenDataAvailableExceeds = 2;
slot1 = addAnalogInputChannel(inputSession,'cDAQ3Mod1',0,'Thermocouple');
slot1(1).ThermocoupleType = 'T';
lh = addlistener(inputSession,'DataAvailable',@listenerFunction);
startBackground(inputSession);
The temperature can be controlled by sending a PWM signal to a heater. I control the heater by adjusting the 'DutyCycle' of a background counter output channel.
ctrSession = daq.createSession('ni');
ctrSession.IsContinuous = 1;
slot2 = addCounterOutputChannel(ctrSession,'cDAQ3Mod2',0,'PulseGeneration');
slot2.Frequency = 1;
ctrSession.Channels(1).DutyCycle = 0.2;
startBackground(ctrSession);
I would like to dynamically update the duty cycle of the background counter channel. I do this by performing calculations in the @listenerFunction. I also plot the temperature on a set of axes using the same @listenerFunction. When I try to update the the duty cycle directly from the @listenerFunction it causes terrible lag in the plot function.
Is there any way for me to set the duty cycle parameter of the channel to a variable (global or not)?
Thanks!
Réponses (0)
Catégories
En savoir plus sur Data Acquisition Toolbox dans Centre d'aide et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!