• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:マイコン制御について)

マイコン制御についての故障現象

このQ&Aのポイント
  • 高校の実習で作成したマイコン制御プログラムが途中で止まる現象について説明します。
  • 「KENTAC 800 Zmk2」と「KENTAC 808 ステッピングモータ」を使用し、1相励磁を1PPSで正転し、20ステップ進むごとに2倍ずつ速くなるプログラムを実行させた際、処理が途中で止まってしまいました。
  • この現象は間隔が速すぎて処理が追いつかないために起こるものであり、マイコン制御における一般的な故障現象です。

質問者が選んだベストアンサー

  • ベストアンサー
noname#230359
noname#230359
回答No.1
noname#230358
質問者

お礼

ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

noname#230359
noname#230359
回答No.2

関連するQ&A

  • ステッピングモータの駆動方法について

    ステッピングモータ DC12V 2相励磁 駆動周波数300pps ディテントトルク最大0.8N・m モータがあります 駆動させる弁側のトルクが0.4N・mあります 駆動してすぐに通電をOFFにする場合5ステップ以下は回転しません、駆動後も通電をON状態ですと2ステップづつこきざみに動かしても作動はしますが通電OFFだと動きません ステッピングモータは負荷トルクがディテントトルクに近くなるにつれて小ステップでは回転しない現象は通常の状態でしょうか、又ステッピングモータは常に通電ON状態で使用しなければ小ステップは動かないのでしょうかご存知の方アドバイスください

  • 巻線(銅線3?径をステッピングモータで1?~5?…

    巻線(銅線3?径をステッピングモータで1?~5?程送り出すときの選定は? お世話になっております   銅線3?径を1?~5?ほど送りだす時に 選定するステッピングモータのSPECはどのように選定すればいいでしょうか? ________________________________ 選定例 サイズ(mm) 軸Φ3.4×4.8 重量(g) 0.4 抵抗(Ω) 25 定格電圧(V) 3.0 駆動波形 矩形 励磁方法 2相 ステップ角(°) 18 ステップ精度(%) 10 ホールディングトルク(mN・m) 0.06 ディテントトルク(mN・m) 0.005 最大自起動周波数(pps) 3000 _______________________________ ご指導をよろしくお願いいたします。 駆動系は初めて行います。

  • PICマイコンにつきまして教えてください。

    PICマイコンにつきましておしえてください。 初心者です、以下3点につきまして教えてください。 (1) PICマイコンを用いて、実験機を作成しているのですが、プログラム上の ある関数の処理時間がどのくらいが予測したいと思っています。 アセンブラの場合、クロック周期の4倍が1サイクルで、各処理毎に○サイクル というのが、データシート上に記載されていることから、ざっくり処理時間を 予測することができるのですが、C言語の場合、予測することはできないでしょうか? 加算、減算、ポート出力制御、if文、AD、、、等の1命令毎の処理時間がどのくらいか、 予測することができますでしょうか? (2) 実験機にはLCDをmain関数で表示させており、またTimer割り込み(5μsec)毎に簡単 な処理をおこなわせているのですが、動作させてみると、 LCDが表示せず(文字なしで高速で切り替えを繰り返しているような感じです。) これは、割り込み間隔が早すぎて、main関数に入る前に随時5μsec割り込みが入って main関数の表示ができていないということなのでしょうか? 割り込み間隔を50μsecにしたところ、うまく表示されましたので。。 (そういったことから(1)の質問をしました。) (3) MPLAB IDC2はデバッグシミュレータがあり、予測が難しい場合、ストップウォッチで、 確認しようと思っています。ブレークポイントを処理最初と最後に設定して、RUNで 時間を確認することができますでしょうか? 処理最初のブレークポイントまでは、どのように実行位置をもっていくのでしょうか? 長くなりましたが、よろしくお願いいたします。

  • マイコンのエミュレータについて

    現在E8エミュレータを使ってマイコン(H8tyni 3687)のデバッグを行おうとしております。 しかしプログラム上にブレークポイントをいくつか置いてデバッグをする際に、1つ目のブレークポイントまでは正常にプログラムが停止するのですが、2つ目のブレークポイントまでプログラムを実行させると、プログラムが停止することなく、固まってしまいます。 1つ目のブレークポイントから2つ目のブレークポイントまでのプログラムで無限ループに入っているのかと思い、1つ目のブレークポイントを削除し、リセットから直接2つ目のブレークポイントまでプログラムを実行させると、正常にプログラムが停止します。しかし次のブレークポイントまで実行させるとまた固まってしまいます。 他の製品にも同じマイコンを使用しているものがあるため、そちらに今回のプログラムをダウンロードしE8エミュレータをつないだところ、特に問題なく1つ目のブレークポイント、2つ目のブレークポイントでプログラムが停止します。 今回問題が発生している基板でエミュレータとマイコン間の波形をオシロで確認したところ、1つ目のブレークポイントから2つ目のブレークポイントまで実行するときに、マイコンのP86(42ピン)が途中まで信号を出力して、突然Lowになってしまいます。(正常なときは信号を出力し終えた後はHighになります。) ちなみにP86(42ピン)はマイコンからエミュレータに対して信号を出力するポートです。 このような現象をご経験された事がある方や、何かお気づきになられた方がいらっしゃいましたら、どのような事でもかまいませんので、ご教授ください。 よろしくお願いいたします。

  • パワーポイント、一日中流しっぱなしのスライドを止めずに内容を変更したい

    パワーポイント2000を使ってます。 仕事で1週間ほど前から悩んでいる案件です。 目的「一日中流しっぱなしのスライドがあります。その実行を止めずに内容の一部変更したい」 いいアイデアありませんか? ひとつのpptファイルを実行中に変更なんてことは出来ないだろうと考えスライドを2つに分けることにしました。 この2つを連続再生させて、再生中でない方なら変更できるのでは!?と思い 次のような事を考えたのですが、うまくいきません。 1.PC-A に共有フォルダを作り、test01.ppt,test02.pptファイルを作成 2.test01.ppt → test01.pps test02.ppt → test02.pps へ変換 3.goto.bat※を実行 ・・・ test01.ppsが実行中・・・・ 4.PC-B で共有フォルダのtest02.pptを更新、その後、test02.ppsへ変換 ※goto.batの内容 -------------------------------------------------------------- :a01 start "C:\Program Files\Microsoft Office\Office\POWERPNT.exe" test01.pps start "C:\Program Files\Microsoft Office\Office\POWERPNT.exe" test02.pps goto a01 -------------------------------------------------------------- 結果  それっぽく実行されるのですが・・・問題があります! まず、バッチファイルがtest01.ppsが終わったらtest02.ppsが実行されるようにと考えているのですが、実際は、ほとんど永久ループ状態で goto a01 → :a01 の間を連続処理してしまいます。 【質問】 1.このバッチファイルを改造すれば、目的を達成できそうですか? 2.その他のアイデアありますか? PS その他、マクロを組めばいけそうな感じもするのですが、マクロは、さっぱりわかりません・・・ test01.pps に マクロで再生が完了したらtest02.ppsを実行しなさい test02.pps に マクロで再生が完了したらtest01.ppsを実行しなさい よろしくアドバイスお願いします。 そんな事できないよ。でも結構です。

  • eclipseでステップ実行がしたい

    eclipseでステップ実行がしたいんですが、どうすればいいんでしょうか? そもそも、ステップ実行=一段階ずつ動作を確認しながら実行する という認識でいいでしょうか? eclipseのデバッガを使ってみたんですが、ブレイクポイントにしか反応しませんよね? 一段階ずつ(あるいは一行ずつ)プログラムの処理を追っていけるような機能はないでしょうか?

    • ベストアンサー
    • Java
  • コマンドラインで実行時に

    はじめまして。下記現象が起こり困っております。 ご存知の方がいらっしゃいましたら回答お願い致します。 データをダウンロードするphpプログラムを コマンドラインから実行すると、最初は問題なく 進むのですが、データ件数が増えてくると "強制終了"と表示されて、プログラムが途中で 終了されてしまいます。 データ件数が多いので、負荷はかかっているとは 思うのですがメモリを確認してみると、特に 使い切っている感じではありませんでした。 またログ出力すると終了させられる直前まで、 プログラム実行当初と同じ間隔で処理が進んでいます。 そこで原因追求のため、どういう時にこの"強制終了" が出力されるのか、また、強制終了時にシステムログ などが出力されている場合、どこに保存されているの かお教え頂きたく質問させて頂きました。 尚、実行環境は以下です。 LINUX:Red Hat Linux 7.2 apache:2.0.52 php:4.3.11 postgresSQL:7.4.6 ダウンロード件数:50万件 何卒宜しくお願い致します。

  • ステッピングモータの駆動方法

    ステッピングモータのドライバのF/Wを作っています。 PWMのキャリア周波数=内部処理周波数=角度の更新周波数は16kHzとしています。 この期間に入ってきたパルス=ステップを数えて、次の更新タイミングで動かすようにしました。 例えば、14kHzの入力パルスで動かすと、7ステップ動いたら1周期分止まるような動きになるため、これに起因する振動が発生します。 つまり16kHzでステップが進み、1回休むことで14kHzで動いている辻褄合わせが起こります。 この方式では、フルステップでもマイクロステップ駆動でも、同様の現象が発生します。 市販のドライバもキャリア周波数を固定しているにもかかわらず振動がありません。(フルステップで比較) 入力パルスの周期から基本ステップではない角度を求めて動かして、停止時に端数を動かして基本ステップの倍数にする処理を入れているのでしょうか。 以上よろしくお願いします。

  • DataGridView のSUB制御

    Windows 7 Professional に、Microsoft Visual Basic 2010 Express をインストールしました。 今までEXCELやAccessのフォームを使って作成していたVBAプログラムを移植しようと考えています。 その中で、いろいろ試しているうち、妙な現象に悩まされています。 例として、プロジェクト内にForm3を作成します。 そのForm3の中にDataGridView1を設置します。 Form3内のForm3_Load や、ボタンのプロシージャーに Me.DataGridView1.DataSource = ○○ や、 Me.DataGridView1(0, 0).Style.BackColor = Color.Orange 等を記述して実行すると、うまくデータソースを読み込んだり、指定のセルが塗られたりします。 ところが、 Module1 を作成し、そこに Public Sub test01 を作成して、 Form3.DataGridView1.DataSource = ○○ と記述し、call で test01を呼び出すと、全く表示されません。 Form3.DataGridView1(0, 0).Style.BackColor = Color.Orange などは、インデックスの範囲エラーと出てしまいました。 おかしいと思い、ブレークポイントを指定して、ステップ実行したところ call で呼び出されたtest01をステップしている最中に、 Debug.Print(Form3.DataGridView1.Columns.Count) を通過したところでは、カウント数がデータソースの行数になりますが、test01 のend sub まで実行して、form3のプロシージャーに戻ったところにも、Debug.Print(Me.DataGridView1.Columns.Count)を仕掛けて通過させたところ、イミディエイトウィンドウに表示された値は0でした。 つまり、呼び出したプロシージャー内では値をセットしたのに、戻った途端、それがすべて消えてしまった事になります。 VBAでこのような現象にぶつかった事がないので、ご質問ですが、Visual Basic 2010 では、sub の記述で、Form上のコントロールを制御する事はできないのでしょうか? Public Sub からFrom上の、特にDataGridViewを制御するのに、なにか必要な事があったら、教えてください。

  • PHP+MySQLでのINSERTの処理遅延

    PHP + MySQLのINSERTについて、不可解な現象が出ましたので、知っている方がいたら教えてください。 PHPでMySQLのデータ読み書きのプログラム(コマンドラインではなく、ブラウザで表示する)を書いたところ、PHPのプログラムの流れよりも、MySQLの書き込みが済んでしまっているような現象が発生しました。 プログラムソースの抜粋を以下に記述します。 ################# PHPのプログラム抜粋開始 ########## ~ DB接続処理 ~ //================================================== // STEP1:既に存在するデータを表示 //-------------------------------------------------- $sqltable = 'test'; $sqlcommand = "SELECT datadayo FROM $sqltable"; $sqlresult = mysql_query($sqlcommand, $sqllink) or die('ERROR'); while($tmpsqlread = mysql_fetch_array($sqlresult)) { echo "$tmpsqlread[datadayo]<br>"; } //================================================== // STEP2:データ追加 //-------------------------------------------------- $sqlcommand = "INSERT INTO $sqltable (autoid,datadayo) VALUES (NULL,'書き込んだデータ')"; $sqlresult = mysql_query($sqlcommand, $sqllink) or die('クエリの送信に失敗しました。'); ~ DBクローズ処理 ~ ################# PHPのプログラム抜粋終り ########## フローとしては、最初にSTEP1が処理されてSTEP2が処理されるはずです。 ■プログラム開始の時の条件 データベースをCREATEした直後にこのプログラムを流す。(つまり空の状態) ■予想した結果 1.STEP1において、まだデータベースは空の状態なので、echo文では何も表示されない。 2.STEP2において書き込まれる。 3.再度このプログラムを流す 4.STEP1において、上記2で書き込んだデータが表示される。 ■実際の結果 STEP1において、まだデータベースは空の状態のはずなのに、echo文で「書き込んだデータ」が表示される。 今まで、何度もこの手のプログラムを作成しましたが、このような現象は初体験です。 書き込みタイミングの遅延による現象ではなく、むしろ書き込みが早すぎる事による(PHPの処理が来る前にMySQLが処理されている)現象です。 PHPのバージョンは PHP 5.2.11 with Suhosin-Patch 0.9.7 (cli) MySQLのバージョンは Ver 14.14 Distrib 5.1.39 です。 どなたか、ご存知の方、ご教授いただけたら幸いです。

    • ベストアンサー
    • MySQL