コンテックさんのSMC-4DL-PCIボードを使用してアクチュエータを動かそうとしています(動かしたいのはオリエンタルモーターさんのELC)。
VC6.0を使用してプログラミングを行い、ビルドして.exeを実行すると何も起きません。
ボードに付属のサンプルプログラムではアクチュエータが動くので、配線ミスということは無いと思います。
おそらく組んだプログラムのどこかがおかしいのだとは思うのですが、恥ずかしながらプログラミング自体初めてなうえ、サンプルプログラムが難しすぎて解読が全く出来ないのでどうしたらいいか困っています。
卒論で使用するのでとにかく早く作り上げなければなりません。
足りない部分、間違いなどあればご指摘お願いします。
(ちゃんとライブラリファイルも追加してあります)
#include "stdafx.h"
#include "CSmc.h"
#include "CSmcdef.h"
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow )
{
long Ret;
char *DeviceName ="SMC000" ;
short Id ;
Ret = SmcWInit( DeviceName , &Id );
short PulseMode ;
short DirTimer ;
PulseMode = 5;
DirTimer = 1;
Ret = SmcWSetPulseType( Id , 1, PulseMode , DirTimer );
Ret = SmcWSetInitParam( Id , 1);
short MotionType ;
short StartDir ;
MotionType = 2;
StartDir = 0;
Ret = SmcWSetReady( Id , 1, MotionType , StartDir );
short Coodinate ;
short StopPosition ;
Coodinate = 1;
StopPosition = 1000;
Ret = SmcWSetStopPosition( Id , 1, Coodinate , StopPosition ) ;
Ret = SmcWMotionStart( Id , 1);
Ret = SmcWExit( Id );
return 0;
}
No.1ベストアンサー
- 回答日時:
全部ちゃんと見てません
とりあえず真っ先に目に付いた突っ込みどころが一つ
>Ret = SmcWMotionStart( Id , 1);
>Ret = SmcWExit( Id );
動かし始めて直ぐ止めて(終了して)ますので見た目動かないはずです
とりあえずその間に Sleep(10000) などと書いてみてください
他にざっと見て
>Ret = SmcWSetPulseType( Id , 1, PulseMode , DirTimer );
>Ret = SmcWSetInitParam( Id , 1);
ここも順番が逆かな
後モータ使用によるけど励磁ONになってないんじゃないかな
SmcWSetHoldOff関数
動作マスクも設定しないとちゃんと動きません
SmcWSetCtrlTypeOut関数
(リミットセンサなどの有効無効設定 これはお使いのハードに従って設定してください)
Contecサンプルプログラムのソースファイルも入ってるはずですが
それ見ても分かりませんか?
以下私が行ってるのは以下のような感じです
※ パラメータなどは一部省略
SmcWInit
SmcWSetInitParam
SmcWSetCtrlInOutLog
SmcWSetOrgLog
SmcWSetCtrlTypeOut
SmcWSetOrgMode
SmcWSetStartSpeed
SmcWSetTargetSpeed
SmcWSetHoldOff
SmcWSetAccelTime
SmcWSetDecelTime
SmcWSetStartSpeed
SmcWSetTargetSpeed
SmcWSetReady
SmcWMotionStart
速度関係の関数は設定しなくてもドライバ設定の初期値で動くはずです
動かないなら各関数のリターンコードをチェックして
どの関数でエラーを起こしているか確認しエラーコードの内容を
ヘルプで調べてそれなりの対処するかこちらへの補足をどうぞ
(私は常にここを見ているわけではないので反応速度は保障できません)
個人的に言わせてもらえば
WDMドライバより98/NTドライバ使ったほうがプログラム的には
楽のような気がします(※ 個人的な慣れかもしれません)
機能はWDMの方が上のはず(実情困ったことは無い)
ありがとうございました!!
Ret = SmcWSetPulseType( Id , 1, PulseMode , DirTimer );
Ret = SmcWSetInitParam( Id , 1);
を入れ替え、Sleepを追加したら無事に動いてくれました。
卒論の追い込み時期なので、koi1234さんには感謝してもしきれません!
本当にありがとうございました・・・!!!
No.2
- 回答日時:
追加~ #1に書いたのは原点だし(原点復帰処理イメージ)
初期化後に特定位置に動かすなどのときは以下みたいな感じ
(各関数は書いた順に使ってます)
SmcWSetAccelTime ---- 無くても動くはず
SmcWSetDecelTime ---- 無くても動くはず
SmcWSetStartSpeed ---- 無くても動くはず
SmcWSetTargetSpeed ---- 無くても動くはず
SmcWSetStopPosition --位置設定
SmcWSetReady --動作モード設定
SmcWMotionStart --動作開始
#1では
SmcWSetHoldOff関数の前に書いた
SmcWSetStartSpeed
SmcWSetTargetSpeed
は要らなかった(その後同じ関数書いてる)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# プログラムが書けません。 4 2023/01/22 22:57
- C言語・C++・C# C言語初心者 構造体 課題について 1 2023/03/10 19:30
- C言語・C++・C# C言語初心者です、、、お助けください 2 2023/03/14 20:08
- C言語・C++・C# Cのオブジェクトファイルの逆アセンブル 5 2023/05/13 01:51
- その他(プログラミング・Web制作) test([)コマンドによる条件判定 2 2022/08/10 12:28
- C言語・C++・C# C言語初心者 構造体 課題について 2 2023/03/10 19:48
- C言語・C++・C# C言語 3 2022/10/04 15:07
- C言語・C++・C# アセンブラ指令 3 2023/06/17 14:47
- 英語 short-term は形容詞 のはずなのに、 in the short-term 短期的に のよう 2 2023/05/14 20:22
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語primeについて
-
Webプログラムってネイティブア...
-
VBA
-
指定したフォルダーを最前面表...
-
vba listviewにおけるtextのAli...
-
壁紙の変更
-
初級者の質問――time_tについて
-
プロダクションコードとは?
-
NumLockの制御について
-
signalハンドラに引数を渡したい
-
expectを使用しない対話型処理
-
部品(ソースコード)は自分の...
-
C言語の勉強法について
-
VBAのプログラムが動いているか...
-
Arduino nano(アルドゥイーノ ...
-
C言語にて作成中の三目並べにつ...
-
COBOLのS9タイプからXタイプへ...
-
Pythonを用いて等高線図を作成...
-
openGLで物体を半透明にして表...
-
Visual C++でDESを使って文字列...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
vba listviewにおけるtextのAli...
-
プロダクションコードとは?
-
指定したフォルダーを最前面表...
-
Webプログラムってネイティブア...
-
COBOLのS9タイプからXタイプへ...
-
VBコンソールアプリ(.NET Frame...
-
VBA
-
2値化した画像の黒い部分のピク...
-
初級者の質問――time_tについて
-
無限ループ中にある任意のキー...
-
Arduino nano(アルドゥイーノ ...
-
世界一美しいソースコード
-
VBAにてTIFFから画像を取込みた...
-
C言語でpingを実行してその結果...
-
三次元のグラフを書きたいので...
-
マイコンからプログラムを読み...
-
C言語→MATLABへの変換で、困っ...
-
XPathの関数「text()="value"」...
-
URLの最初の「h」を略す
-
プログラミングの問題と解答例...
おすすめ情報