===================================================================== = モーションコントロール用ドライバについて = = API-SMC(WDM) Ver4.60 = = CONTEC Co.,Ltd. = ===================================================================== ◆ 目次 ======= はじめに 注意事項 インストール方法 インストールされるファイル バージョンアップ履歴 ◆ はじめに =========== 日頃から格別のお引き立てを賜りまして厚く御礼申し上げます。 API-SMC(WDM)に関する説明を以下に記載します。ヘルプ等に記載 されていない事項もありますので、ぜひご一読下さい。 ◆注意事項 ========== ・Administrator権限でログインして下さい。 ・API-SMC(WDM)は、従来版モーションコントロール用ドライバ(API-SMC(98/PC)) とは異なる製品です。 API-SMC(98/PC)でご使用頂いていたハードウェアは、本ドライバで使用する ことはできません。 ◆インストール方法 ================== ・開発環境(ヘルプ、サンプル、ツール等)のインストール 古いバージョンの開発環境がインストールされている場合、 先に「コントロールパネル」からアンインストールを行ってください。 ダウンロードファイルを解凍して、以下のセットアップを実行します。 Apipac\SmcWdm\Disk1\Setup.exe Autorun.exeからインストールを行ってください。 ・デバイスドライバのインストール 古いバージョンのドライバがインストールされている場合、 先にアンインストールを行ってください。 アンインストールならびにインストールの手順については、 ダウンロードファイル解凍後に作成される以下のヘルプを参照してください。 Help\SmcWdm\Jpn\Apitool.chm アンインストールならびにインストールの手順については、 API-PAC(W32) 添付メディア内の以下のヘルプを参照してください。 \Apipac\Help\Hwinst\Jpn\Apitool.chm ◆インストールされるファイル ============================ ・本製品のセットアッププログラムは、次の様な構成で ファイルをシステ ムディレクトリあるいは、ユーザー指定のディレクトリにインストール します。 ・また、既に他のAPI-TOOLドライバがインストールされている場合は、そ のディレクトリへインストールします。 \ CONTEC.ICO アイコンファイル CONTEC_APIPACW32_HOMEPAGE.URL API-PAC(W32)HPへのショートカット SMCWDM\CSMC.CHM ヘルプファイル SMCWDM\SAMPLE\ サンプルプログラム SMCWDM\SAMPLEEXE\ サンプルプログラムの実行ファイル ◆バージョンアップ履歴 ======================= Ver4.50->Ver4.60 -------------------------------- ・Windows 10 20H2での動作を確認 ・Windows 10 のセキュリティポリシー(メモリの整合性)に対応 ・対応OSを改定 対応OS: Microsoft Windows 10 (32bit/64bit) Microsoft Windows 8.1 (32bit/64bit) Microsoft Windows 7 (32bit/64bit) ・対応開発言語を改定 対応開発言語: Microsoft Visual Basic .NET (2010,2012,2013,2015,2017,2019) Microsoft Visual C# (2010,2012,2013,2015,2017,2019) Microsoft Visual C++ (MFC) (2010,2012,2013,2015,2017,2019) Ver4.40->Ver4.50 -------------------------------- ・Windows 10 2004での動作を確認 Ver4.30->Ver4.40 -------------------------------- ・Windows 10 19H2での動作を確認 ・診断レポートに下記デバイスのパルスコントロールLSI型式を表示する機能を追加 :SMC-4DL-PCI、SMC-8DL-PCI、SMC-4DL-PE、SMC-8DL-PE ・下記の関数について、引数にNULLポインタを指定した際に正しいエラーコード(10100)が返らない現象を修正。 :SmcWGetBankInterpolation, SmcWGetBankArcPoint, SmcWGetBankArcParam ・SmcWSetSync関数の引数SyncBoardに設定範囲外の値を設定した場合、正しいエラーコード(10201)が返らない現象を修正。 Ver4.20->Ver4.30 -------------------------------- ・対応開発言語を追加 対応開発言語: Microsoft Visual Basic 2019 Microsoft Visual C# 2019 Microsoft Visual C++ 2019 Ver4.10->Ver4.20 -------------------------------- ・Windows 10 19H1での動作を確認 Ver4.00->Ver4.10 -------------------------------- ・対応開発言語を追加 対応開発言語: Microsoft Visual Basic 2017 Microsoft Visual C# 2017 Microsoft Visual C++ 2017 Ver3.90->Ver4.00 -------------------------------- ・Windows 10 ドライバ署名ポリシー変更に対応 ・SmcWSetSoftLimit関数 で設定値(long PLimCount, long MLimCount)に対しshort型より大きい値を設定した場合、 SmcWGetSoftLimit関数 で前述設定値を取得すると、正常値が取得できないのを修正。 Ver3.80->Ver3.90 -------------------------------- ・新規デバイス対応 :SMC-4DF2-PCI、SMC-8DF2-PCI Ver3.70->Ver3.80 -------------------------------- ・対応開発言語を追加 対応開発言語: Microsoft Visual Basic 2015 Microsoft Visual C# 2015 Microsoft Visual C++ 2015 Ver3.63->Ver3.70 -------------------------------- ・Windows 10 対応 ・SHA-2デジタル署名対応 Ver3.62->Ver3.63 -------------------------------- ・SmcWSetOrgMode関数 LimitTurn=3 設定時、+LIM ON状態でCW方向、もしくは、-LIM ON状態でCCW方向への動作スタート時に エラー(20204)が発生し、動作スタートできない。これを修正。 ・Windows8 32bit環境において、診断プログラムでCSMC.SYSのバージョン情報が取得できないのを修正。 Ver3.60->Ver3.62 (Web 提供) -------------------------------- ・バンク動作において、加速時間「0」に設定したバンクを動作させた後、そのバンクに対し加速時間を設定し 再度バンク動作をスタートした場合、そのバンクが設定加速時間で動作せず加速時間「0」で動作する場合があるのを修正。 ・低スペックCPUでCPU高負荷状態が継続した状態において、複数軸同時に高周期で連続的にイベントを発生させた場合、 稀にイベント抜けが発生する可能性があるのを修正。 Ver3.53->Ver3.60 (Ver. Dec.2014) -------------------------------- ・Windows 8.1 対応 ・対応開発言語を追加 対応開発言語: Microsoft Visual Basic 2013 Microsoft Visual C# 2013 Microsoft Visual C++ 2013 Ver3.50->Ver3.53 -------------------------------- ・ORGを使用した原点復帰動作開始時、LIM信号がONだと動作開始できない。 LIM信号がONであっても、ORGを使用した原点復帰動作開始可能なモード追加。(SmcWSetOrgMode関数の引数:LimitTurn=2) ・LIM信号入力を使用した原点復帰動作機能追加。(SmcWSetOrgMode関数の引数:LimitTurn=3) ・原点復帰動作中にドライバ内部でカウンタ入力エラーやパルサ入力エラーを検知した場合、原点復帰動作が停止するのを修正。 Ver3.42->Ver3.50 (Web 提供) -------------------------------- ・Windows 8 対応 ・対応開発言語を追加 対応開発言語: Microsoft Visual Basic 2012 Microsoft Visual C# 2012 Microsoft Visual C++ 2012 ・モータ動作中に動作タイプ(MotionType)を変更しSmcWSetReadyを実行すると、動作タイプが書換えられてしまう。 結果、その動作中の動作タイプのステータスや動作に影響を及ぼしてしまうのを修正。 ・DLLファイルにて序数を定義。 Ver3.23->Ver3.42 -------------------------------- ・日本語環境以外でインストールを行った場合、他の言語では英語表示となるように対応。 Ver3.22->Ver3.23 (Web 提供) -------------------------------- ・開始速度と目標速度に対し加速時間を短い時間に設定すると、加速時間がゼロの動作となってしまう場合があるのを修正。 Ver3.21->Ver3.22 -------------------------------- ・新規関数追加 汎用イベント関数 :SmcWIrqEvent (LTC入力イベントのみ対応) 制御入出力状態取得関数 :SmcWGetCtrlInOutStatus ソフトリミット機能関数 (*):SMC-4/8DF-PCIのみ使用可 :SmcWSetSoftLimit, SmcWGetSoftLimit Ver3.14->Ver3.21 (Web 提供) -------------------------------- ・WOW64に対応(Windows 7 以降) ・Ver3.14で追加した MotionType=7,8,9に対し、SmcWGetReady、SmcWGetBankReadyにて、 設定したMotionType値を取得できないのを修正。 Ver3.12->Ver3.14 -------------------------------- ・SmcWSetReady の引数に MotionType=7(三角駆動による目標速度補正時、加減速レートを変更せずに補正します) を追加 ・SmcWSetBankReadyの引数:MotionType=8、MotionType=9を追加。それぞれ、以下の通り。 8:バンク動作(シングル)(三角駆動による目標速度補正時、加減速レートを変更せずに補正します) 9:バンク動作(ループ)(三角駆動による目標速度補正時、加減速レートを変更せずに補正します) ・加速時間/減速時間をゼロに近い値を設定した場合、加速時間/減速時間がゼロに設定されてしまう場合があるのを修正。 加速時間/減速時間をゼロに設定した場合以外は、加速/減速レートレジスタには「1」が設定され、そのレジスタ値に 相当する加速時間/減速時間で動作するのが正しい仕様。 ・補間バンク動作中に減速停止コマンドを実行すると、正常に減速停止できないのを修正。 ・補間動作で加速時間に「0」を設定した場合、減速時間が設定されているにも関わらず、 減速時無条件に減速時間「0」の動作(瞬時にFL)となるのを修正。 Ver3.00->Ver3.12 -------------------------------- ・SmcWSetMotionChangeReady の引数に ChangeType=7(加減速レートを変更せずに動作速度のみ変更) を追加 ・SmcWSetMotionChangeReady関数ChangeType=4設定時に、MotionChangeで減速後、設定した減速時間で 減速停止できないのを修正。 Ver2.53->Ver3.00 (Web 提供) -------------------------------- ・BX300 Support ・英語環境にて診断レポートでCSMC.SYSのバージョン情報が正常に取得できないのを修正。 Ver2.52->Ver2.53 -------------------------------- ・対応開発言語を追加 対応開発言語: Microsoft Visual Basic 2010 Microsoft Visual C# 2010 Microsoft Visual C++ 2010 Microsoft Visual C++(C++/CLI) 2010 Ver2.51->Ver2.52 -------------------------------- ・SMC-4DF-PCI/SMC-8DF-PCIで、Z相入力を使用したORG動作時、 設定したZ相カウント数で停止しない場合や、Z相入力前に停止する現象が発生するのを修正。 Ver2.50->Ver2.51 (Ver. Mar.2011) -------------------------------- ・イベント関数を連続実行すると、10005エラー(COMMON_ERROR_CREATE_THREAD)、 もしくはメモリリークが発生する場合があるのを修正。 ・原点復帰動作中にSmcWMotionStop関数やSmcWMotionDecStop関数を実行した場合、 SmcWGetStopStatus関数の取得値が0xFFとなってしまうのを修正。 ・原点復帰動作中に、ドライバ内で意図しないエラー(ノイズ等が原因)が発生した場合に 原点復帰終了方向が指定されていない場合の動作となってしまうのを修正。 ・DLボード使用時、補間動作後に単軸動作(PTP/JOG/ORGいずれも)を行うと、 SmcWMotionDecStop関数であれば減速停止するが、SmcWMotionStop関数の場合、動作が停止しない のを修正。 Ver2.41->Ver2.50 -------------------------------- ・新規デバイス対応 :SMC-2DL-FIT Ver2.40->Ver2.41 -------------------------------- ・SmcWSetSync関数において、設定した同期対象軸を減らす場合に、その設定が反映されない不具合を修正。 Ver2.36->Ver2.40 (Ver. Jan.2010) -------------------------------- ・Windows 7 対応 ・SmcWSetMotionChangeReady関数で、ChangeType=4設定時に、設定した減速時間で 減速できないのを修正。 ・SmcWSetMotionChangeReady関数実行後、SmcWGetStartSpeedで正しい開始速度を 取得できないのを修正。 ・目標速度(A)で動作中、MotionChangeにて目標速度(B)に変速後、 減速停止(SmcWMotionDecStop関数)を実行した場合に起動時速度(MotionStart時の開始速度)で 減速停止しないで、目標速度(A)で減速停止するのを修正。 ・SmcWSetRead関数、SmcWSetMotionChangeReady関数、SmcWSetBankReady関数においてゼロ除算 が行われる可能性のある箇所を修正。 ・新規関数追加 出力パルス幅(デューティ比)設定関数 :SmcWSetPulseDuty, SmcWGetPulseDuty Z相カウント分動作設定関数 :SmcWSetZCountMotion, SmcWGetZCountMotion Z相カウント取得関数 :SmcWGetZCount 動作速度取得関数 :SmcWGetMoveSpeed Ver2.35->Ver2.36 -------------------------------- ・SD信号による減速/減速停止が、SDがONの状態を保持していないと維持できなかったので ラッチ設定を追加。 SmcWSetSDMode関数、SDMode=2(減速停止+SD信号ラッチ)、SDMode=3(減速+SD信号ラッチ)追加。 Ver2.34->Ver2.35 (Web提供 2009.02.16)(Ver. Mar.2009) -------------------------------- ・Windows Server 2008 / Server 2008 x64 Edition に対応 ・Vistaで使用時、ドライバアンロード時にハングアップする場合があるのを修正。 Ver2.33->Ver2.34 (Ver. Jan.2009) -------------------------------- ・Visual C++.NET C++/CLI に対応。 ・直線補間2動作に対応 Ver2.32->Ver2.33 (Web提供 2008.07.02) -------------------------------- ・Visual Studio 2008に対応。 ・WEBダウンロードパッケージにHelpフォルダを作成しファイルを追加。 ・診断プログラムを変更。 ・ドライバファイル修正なし。 Ver2.31->Ver2.32 (Web提供 2008.04.25) -------------------------------- ・API-TIMER(WDM)対応。 ・複数プロセス毎に複数軸でモータ動作時、他のプロセスでSmcWInit実行すると、 対象ボードで動作していた軸を停止してしまうのを修正。 ・本ドライバ関数を含むアプリケーションをスタートアップに登録してのOS起動時、 ドライバロードが完了しない状態でSmcWInitを実行し関数エラーとなると、ロード完了後、 何度SmcWInitを実行しても関数エラーとなる場合があるのを修正。 ・DFタイプ使用時、開始/目標速度に分解能「1」での最高速65535[pps]を設定し、SmcWSetReadyを 実行すると、目標速度がDLタイプの最高速16384[pps]に変更されてしまうのを修正。 ・Vista環境にて、cmessage.ocxをインストールできない場合があるのを修正。 バージョンアップ>setup.exe (Ver1.0.1)、ccoinst.dll(Ver1.0.3)。 Ver2.30->Ver2.31 -------------------------------- ・一定速度/方向指定有り/Z相使用の条件で原点復帰動作を開始した場合、 ORGがONになったタイミングからZ相カウント開始となるように変更。 更に、一定速度であれば、方向指定が無くとも、ORGがONになったタイミングから Z相カウント開始する。 従来動作はヘルプの[用語集]>[原点復帰動作パターン]を参照。 Ver2.25->Ver2.30 (Ver. Jan.2008) -------------------------------- ・新規デバイス対応 :SMC-4DL-PE、SMC-8DL-PE ・ccoinst.dll バージョンアップ。 ・SmcWGetBankReady()で正常なMotionType値が取れないを修正。 ・ヘルプ記載「目標速度が開始速度以下の場合、目標速度の定速移動を行います」の動作になって いなかったのを修正。 Ver2.24->Ver2.25 (Web提供 2007.10.24) -------------------------------- ・SmcWSetReady()のMotionType=0(動作なし)でMotionStartを実行すると、 ハングアップする場合があるのを修正。 ・PTP動作の場合、開始方向指定(bStartDir)を無視せず、JOG等と同様にパラメータチェックしていた。 結果、PTP動作時でも開始方向指定によるエラーが発生していたのを修正。 ・Ver2.22の修正と同様に、SmcWGetStopStatusで取得するステータス(StopSts)が、 一瞬「FF (H) 動作関数の終了」となるのを修正。 Ver2.23->Ver2.24 -------------------------------- ・ACX-PAC(W32)上で発生する不具合を修正 ・目標速度に大きな値を設定し、且つ速度分解能に大きな値を設定しなかった場合、 減速タイミングが遅れ開始速度まで減速できずに停止するのを修正。 Ver2.22->Ver2.23 (Ver. Oct.2007) -------------------------------- ・Visual Studio 2005 Express Editionに対応(C++を除く) ・ドライバファイル修正なし。 Ver2.21->Ver2.22 (Web提供 2007.08.31) -------------------------------- ・サンプルBANKARCでCCW方向に正常動作しなかったのを修正。 ・ヘルプ修正。主にSmcWSyncMotionStart関数の記述が抜けていたので追記。 ・診断プログラムの不具合修正。 ・64bitOS使用時、開発環境をインストールしても、スタートメニューからのサンプルEXE、診断、 ヘルプへのショートカットができない場合があるのを修正。 ・ORG動作時、ORGがONで減速停止の折り返しや、±LIMにタッチして停止の折り返しのタイミングに、 SmcWGetMoveStatusで取得するステータス(MoveSts)が、一瞬「停止中」となるのを修正。 Ver2.20->Ver2.21 -------------------------------- ・SMC-4/8DF-PCIのORG動作において、停止イベントを設定し「方向指定有り」 設定で「開始方向と終了方向が一致する」条件において動作を開始すると、 停止イベントが2回発生してしまうのを修正。 ・加速時間に「0」を設定し動作させると、減速時間が設定されているにも関わらず、 停止時には瞬時に開始速度に減速してしまうのを修正。 ・モーションチェンジ時(SmcWSetMotionChangeReadyの引数にChangeType=4 と設定した場合)、加減速時間が正常に反映されないのを修正。 Ver2.10->Ver2.20 (Ver. Jun.2007) -------------------------------- ・64ビット版Windowsに対応。 ・Visual Basic.NET / C++.NET / C#.NET に対応。 ・ボードをインストールせず、ドライバをコピーした状態で関数を実行すると 「0xC000142」エラーが発生するのを修正。 ・診断プログラムのリミット入力信号検査において、リミットON状態の場合、 初期値設定起動に戻って論理を変更する必要がある仕様に変更。 ・デバイス名生成シーケンス変更。これに伴い Cpropsub.exe をインストール構成 から削除。 Ver2.00->Ver2.10 (Web提供 2007.04.23) -------------------------------- ・SMC-4/8DL-PCIで直線補間設定関数SmcWSetBankInterpolationを実行すると エラーとなるのを修正。 ・直線補間1設定時に、補間制御軸よりも他の補間対象軸の方に大きな移動距離を 設定した場合、加減速せず、開始速度での補間動作となってしまうのを修正。 ・イベント発生時、ボードIDだけではなく軸番号もパラメータとして返すよう に変更。 ・SMC-4/8DF-PCIで直線補間1動作中に補間制御軸に対し減速停止関数 (SmcWMotionDecStop)を実行すると、減速停止はするがSmcWGetStopStatusで ステータスが「動作中」のままとなってしまうのを修正。 またその他の補間対象軸に対して関数を実行しても停止しないのも併せて修正。 ・VCサンプル - Ctlio BaseMove Status デバイス名が変更された場合にSmcWSetInitParamを実行していたが、必要のない 処理なので削除。 Ver1.20->Ver2.00 (For SMC Ver. Feb.2007) -------------------------------- ・新規デバイス対応 :SMC-4DF-PCI、SMC-8DF-PCI ・新規関数追加 (*):SMC-4/8DL-PCI使用不可 同期動作関数 :SmcWSetSync, SmcWGetSync, SmcWSyncMotionStart バンクイベント関数 :SmcWBankEvent(*) バンク番号取得関数 :SmcWGetBankNo バンク/補間関数 :SmcWSet/GetBankNumber, SmcWSet/GetBankReady, SmcWSet/GetBankDistance, SmcWSet/GetBankResolveSpeed, SmcWSet/GetBankStartSpeed, SmcWSet/GetBankTargetSpeed, SmcWSet/GetBankAccelTime, SmcWSet/GetBankDecelTime, SmcWSet/GetBankSSpeed, SmcWSet/GetBankInterpolation, SmcWSet/GetBankArcPoint(*), SmcWSet/GetBankArcParam(*) ・SmcWSetCtrlTypeOutに出力パルスカウンタカウント一致信号(CP1)、 エンコーダカウンタカウント一致信号(CP2)を追加。 これにより各カウント一致イベント発生時に信号出力(レベル)。 ・ORG動作で、方向指定なしでZ相使用設定とした場合、ORGを通過して停止時に 折り返し前にZ相カウント分動作してから折り返してしまうのを修正。 ・イベントプロセスが2つ以上起動していて、かつ片方だけ同種イベント要因 Enable時にDisableの方の同種イベント要因でもイベント発生してしまうの を修正。 Ver1.10->Ver1.20 (Ver. Feb.2007) -------------------------------- ・Windows Vistaに対応 ・ドライバにデジタル著名を追加 ・ドライバの自動インストール機能追加(W2000系OSのみ) Ver1.00->Ver1.10 (Ver. Nov.2006) -------------------------------- ・新規関数追加 モーションチェンジ関数 :SmcWMotionChange, SmcWSetMotionChangeReady, SmcWGetMotionChangeReady ラッチカウンタ取得関数 :SmcWGetLatchOutPulse, SmcWGetLatchCountPulse イベント関数:SmcWStopEvent, SmcWCountEvent ・SmcWMotionStart実行時、リミットもしくはアラーム入力状態であっても エラーを返していなかったのを修正。 ・終了方向指定なしでORG動作実行した場合、ORGセンサ外で停止すると次の ORGサーチ動作が行われないのを修正。 Ver1.00 (Ver. Aug.2006) ------------------------------------- ・ファーストリリース