Running .m and simulink (.slx) file together

3 ビュー (過去 30 日間)
Rutvik Shete
Rutvik Shete 2020 年 8 月 11 日
コメント済み: Rutvik Shete 2020 年 8 月 11 日
I ran in to trouble while working with NI DAQ (USB 6251). I wanted to integrate everything is simulink and they dont provide block for counter (Can't use DIs). So I used function block with coder.extrensic() function and it works but my counter resets everytime. Following is my code,
function data = functionRead1()
data = zeros(1,1); %Preinitialization
coder.extrinsic('daq','addinput','read','table2array'); %define functions as external
d = daq("ni"); % Add DAQ
ch1 = addinput(d, 'Dev1', 'ctr0', 'Position'); % Add Inputs
data = table2array(read(d)); %reads 1 scan cycle and returns accumulated value
end
So the problem is everytime counter resets and I get wront data read in code. Cant use while loop or if...else logic as it goes in loop or throws error.
I have .m file as well for code which works fine. It there any way I can run .m and .slx together on same machine? Or any other solution is fine.
Thanx in advance.

採用された回答

Walter Roberson
Walter Roberson 2020 年 8 月 11 日
Use persistent. Check if the persistent variable is empty and if it is then configure it. Then either way, read from the daq.
Note: consider using OutputFormat 'Matrix' instead of the default table.
  3 件のコメント
Walter Roberson
Walter Roberson 2020 年 8 月 11 日
persistent d
Rutvik Shete
Rutvik Shete 2020 年 8 月 11 日
Thanx a lot. Works really well. :)

サインインしてコメントする。

その他の回答 (0 件)

製品


リリース

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by