- 締切済み
エンコーダの信号が途切れる
- MATLABのsimulinkでエンコーダの信号をグラフ表示するプログラムを作成したが、必ず0.3秒後に信号が途切れる(A相、B相とも0Vになる)。
- エンコーダへの入力電圧やADボードに問題はない。
- 他の信号は正常に取り込めるため、原因はMATLABやPC、ボード以外にある可能性がある。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- lumiheart
- ベストアンサー率47% (1141/2405)
MATLAB 入門 プログラミングとスクリプト https://jp.mathworks.com/help/matlab/learn_matlab/scripts.html スクリプトと関数 https://jp.mathworks.com/help/matlab/learn_matlab/scripts-and-functions.html よーするに、スクリプト言語ってのはインタプリタなんで https://www.otsuka-shokai.co.jp/words/interpreter.html プログラムコードを1行づつ順番に実行してる >必ずSimuinkプログラムを実行後"約0.3秒後" 0.3秒後にエンコーダボードのイニシャライズしてると憶測できる >別の信号を入力して同じことをやったら、信号は途切れず問題なく取り込めていました。 同じボードにエンコーダ以外の、例えば押し釦スイッチとかにした場合って事なら ボードのデフォルト設定が押し釦入力に設定してあったならイニシャライズ不要 従って、信号の途切れは無くとも不思議はない 90度位相差エンコーダ入力ってのは実はかなり大変な事やってる エンコーダ入力専用ボードならともかくとして https://www.contec.com/jp/products-services/daq-control/pc-helper/pci-card/cnt32-4mt(lpci)/feature/ 汎用DIボードとかを流用してるとソフト負荷は大きい https://www.contec.com/jp/products-services/daq-control/pc-helper/pcie-card/dio-1616e-lpe/price/ なので、イニシャライズに時間が掛かっても不思議ではない モーションコントロールボードも物によってはイニシャライズに時間が掛かったっりする https://www.contec.com/jp/products-services/daq-control/pc-helper/pci-card/smc-4df2-pci/feature/ で、イニシャライズだとしてそれを確認する手段 0.3秒より短くするのはほぼ無理でしょうけど、長くするのは比較的簡単 所謂、ダミーループでタイマ作って https://jp.mathworks.com/help/matlab/learn_matlab/flow-control.html エンコーダ読み込みプログラムの直前にタイマを入れてみる
- q4330
- ベストアンサー率27% (768/2786)
・信号をグラフ表示させるプログラム 症状からするとこのプログラムに原因がありそうです。 プログラムが起動した時に何かを初期化するなどの処理に時間を取られ信号の入手に欠落が生じてるのではないでしょうか?