Running .m and simulink (.slx) file together
9 ビュー (過去 30 日間)
古いコメントを表示
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.
0 件のコメント
採用された回答
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 件のコメント
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Simultaneous and Synchronized Operations についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!