RTPL-EC 既知の問題

最終更新日:

KB027

8441 2021/9/2 0.3.20.1 調査中 2021/9/2

INtime 6環境において、製品付属サンプルをビルドすると以下のビルドエラーが発生します。

clib.lib(cppstart.obj) : error LNK2019: 未解決の外部シンボル ___vshelper_init が関数 _mainCRTStartup で参照されました。
clib.lib(isa_avail.obj) : error LNK2019: 未解決の外部シンボル ___isa_available_init が関数 ___isa_init で参照されました。

プロジェクトワークスペースがINtime 6よりも古いバージョンのSDKにて作成しているため、INtime 6環境上でビルドすると上記ビルドエラーが発生します。発生するサンプルプログラムは以下となります。
FncExecSmplApp / RecipeSmplApp / SampleApp / TpcSmplApp

[回避方法]:vshelper.libをリンクするように設定をお願いします。

8352 2021/7/29 0.3.10.1
0.3.00.1
0.2.90.1
0.2.80.1
修正済み 2021/9/2

RtplECTReleaseAPIThreadでレスポンスバッファがクリアされません。

このため、レスポンスバッファに応答が残ったままRtplECTReleaseAPIThread/RtplECTCloseをしてしまうと、次回以降の制御で、不正な応答(前回制御に対する応答)を受信してしまいます。

[回避方法]:RtplECTReleaseAPIThreadコール前に、アプリケーション側でRtplECTResWaitコールにより応答キューをクリアしてください。

[修正対応]:バージョン0.3.20.1で修正されました。

8351 2021/7/2 0.3.10.1
0.3.00.1
0.2.90.1
0.2.80.1
0.2.70.1
0.2.60.1
修正済み 2021/9/2

製品付属サンプルをVS2015/VS2017にアップグレードするとビルドに失敗します。

これはアップグレードすることでのセキュリティポリシーが変更なり、この変更に追従できていませんでした。
全てのバージョンで発生します。

[回避方法]:アップグレード後以下の2つの設定を変更します。
1) プロジェクトのプロパティを変更「共通言語ランタイムサポート」を
「純粋MSIL共通言語ランタイムサポート(/clr:pure)」→「共通言語ランタイムサポート(/clr)」
2) "AssemblyInfo.cpp"の中の"SecurityPermission"についてコメントアウト
 //[assembly:SecurityPermission(SecurityAction::RequestMinimum, UnmanagedCode = true)];

[修正対応]:バージョン0.3.20.1で修正されました。

8350 2021/7/2 0.3.10.1 修正済み 2021/9/2

RtplECTJOGStartをコマンドバッファに積んだ状態でRtplECTJOGStopをコールすると例外発生(PageFault)

RtplECTJOGStartをコマンドバッファに積んだ状態で、RtplECTCmdAcitveで実行する前に、RtplECTJOGStopをコールすると発生します。

[回避方法]:RtplECTJOGStopはJOG動作中に実行するようにしてください。

[修正対応]:バージョン0.3.20.1で修正されました。

8344 2021/6/30 0.3.10.1
0.3.00.1
0.2.90.1
0.2.80.1
修正済み 2021/9/2

自動コンフィグモードで正しくスレーブ情報を取得できない問題があります。

自動コンフィグモード設定でRtplECTInitializeMasterをコールすると処理は成功しますが、得られるスレーブ情報が正しくありません。
0.2.80.1以降で発生しています。

[回避方法]:自動コンフィグモードは使用せず、ユーザーアプリケーション側でスレーブ情報を指定しRtplECTInitializeMasterをコールしてください。

[修正対応]:バージョン0.3.20.1で修正されました。

8284 2021/6/2 0.3.10.1 修正済み 2021/9/2

オーバートラベル時に、オーバートラベル方向への移動APIを実行すると、次の移動APIの移動が完了しません。

対象の移動APIは以下となります。
RtplECTPositioning/RtplECTLinInterpolate/RtplECTLinInterpolateEx/RtplECTCirInterpolate
RtplECTCirInterpolateEx/RtplECTCirInterpolateMs/RtplECTCirInterpolateMsEx/RtplECTLatchPositioning

[回避方法]
<根本的な解決方法>
①既にオーバートラベルとなっている場合には、オーバートラベル方向への移動を実行しない
ステータスデータでオーバートラベル方向を確認し、オーバートラベル方向への移動をしないでください。
<上記状態に陥った場合の脱出方法>
②目標位置を指定しない移動方法(JOG動作)で移動する
機械の様子をみながら、オペレータが慎重にJOG動作でオーバートラベルの逆方向に移動してください。
③応答しない移動APIを移動中断する
上記APIにてオーバートラベル方向へ移動した後、上記APIで移動すると移動完了しても応答しません。
その場合、移動中断(RtplECTStopPositioning)で停止すると、それ以降は正常に移動できるようになります。

[修正対応]:バージョン0.3.20.1で修正されました。

8205 2021/3/31 0.3.00.1 修正済み 2021/3/31

位置決め制御中にリミットセンサを検知したとき、TargetPosition(0x607A)とActualPositionValue(0x6064)との間に差が生じてしまう。

このため、リミットセンサON検知時、サーボON状態を保持する場合、リミットセンサが解除された瞬間に、サーボモータがわずかに動作してしまいます。
次期バージョンで修正予定です。

[回避方法]]:サーボアンプ設定で、リミットセンサON時にはアラームにすることで回避できます。

[修正対応]:バージョン0.3.10.1で修正されました。

8100 2021/3/3 0.2.60.1 修正済み 2021/3/3

PDOマッピングのCOEオブジェクトが上限を超えた場合に例外エラーが発生する

マスター初期化(RtplECTInitializeMaster,RtplECTInitializeMasterMs)を実行する時、PDOアサインオブジェクトが上限(16)を超える場合、PDOアサインオブジェクト毎のPDOマッピングオブジェクトの上限(64)を超える場合や、局毎のPDOマッピングオブジェクトの上限(512)を超える場合、エラー(RTPLECT_ERROR_ECT_MAPPING_OBJ_OVER)となります。

[修正対応]:バージョン0.3.00Aで修正されました。

8078 2021/3/3 0.2.60.1 修正済み 2021/3/3

応答待機(RtplECTResWait)の割り込み待ち時間(WaitingTime)をNO_WAITでコールすると、必ず、タイムアウトエラー(RTPLECT_ERROR_RES_WAIT_TIMEOUT)になる。

[修正対応]:バージョン0.3.00Aで修正されました。

7755 2020/8/4 0.2.60.1 修正済み 2020/12/14

C++環境で使用するとリンクエラーが発生する。

[回避方法]:RTPLヘッダーのインクルード時にextern "C"の記述をします。
//#include <RtplECT.h>
extern "C" {
 #include "RtplECT.h"
 #include "RtplECT_Def.h"
}

[修正対応]:バージョン0.2.70Aで修正されました。

7721 2020/7/27 0.2.60.5 修正済み 2020/12/14

RtplECTHoldAxisにて減速中に、RtplECTResumeAxisをコールすると、RTPLECT_CS_WAIT_HOLD_AXISフラグがOFFしない問題。

RTPLECT_CS_WAIT_HOLD_AXISフラグは一時停止するまでの減速区間中にONするフラグなので、本来はResumeされるとOFFになるべきフラグです。

[回避方法]:減速中にResumeしないようなパラメータでの制御をお願いします。

[修正対応]:バージョン0.2.70Aで修正されました。

7713 2020/8/5 0.2.60.1 修正済み 2020/12/14

コマンドバッファが空の時に、RtplECTClearCmdBuffをコールしても、割り込みコマンドをクリアできない問題。

本問題により、例えば目標位置変更処理(割り込みコマンド)は、制御を終えた後ではRtplECTClearCmdBuffをコールしてもクリアできず、次の制御で作用してしまう現象に繫がります。

[修正対応]:バージョン0.2.70Aで修正されました。

7666 2020/6/18 0.2.60.4 修正済み 2020/12/14

RtplECTPositioning中にEtherCATバスケーブルを断線させることにより、RTPLプロセス上で例外が発生する。

本件は、加速(jerk)を用いた位置決め(RtplECTPositioning)での移動中にケーブルを引き抜く等断線状態となった際に発生する問題です。

[修正対応]:バージョン0.2.70Aで修正されました。

7640 2020/6/4 0.2.60.1 修正済み 2020/12/14

RtplECTPositioningにて、特定の軸に対してJerkを指定した位置決めを5回実行することでRTPLプロセス内でページ違反が発生します。

[回避方法]:RtplECTLinInterpolateExにて代替する。

[修正対応]:バージョン0.2.70Aで修正されました。

7469 2020/6/4 0.2.60.1 修正済み 2020/12/14

接続スレーブエラー時、リセット処理にてEtherCAT®ステートマシンをInit状態まで遷移させていませんでした。

[修正対応]:バージョン0.2.70Aで修正されました。

7349 2020/6/4 0.2.50 修正済み 2020/6/4

.NET Framework 3.5に依存している。

[修正対応]:バージョン0.2.60.1以降で修正済み。

7243 2020/6/4 0.2.50.1 修正済み 2020/6/4

制御中断線検出時APIが正常終了する問題。

[修正対応]:本問題はバージョン0.2.60.1にて修正済み。

7238 2020/6/4 0.2.10 修正済み 2020/6/4

アプリケーション終了時ページ例外が発生するケースが検出されました。

RTPL終了時、起動した別タスクを非同期的に削除する状況で発生していました。

[修正対応]:バージョン0.2.40以降で修正されています。

7217 2020/6/4 0.2.42 修正済み 2020/6/4

RtplECTGetStatusにて最終エラーが取得できない問題。

複数のスレーブが同時にエラーを通知した場合、最も番号の大きいもののエラーのみ表示される問題でした。

[修正対応]:0.2.50にて修正されています。

7090 2020/6/4 0.2.40 修正済み 2020/6/4

アラームステータスが取得できない問題。

MINAS A5B等StatuswordのFaultビット成立後603Fへのエラー出力が遅れるサーボデバイスに対応していませんでした。
100ms待機時間設けて適切に値の取得ができるよう修正しています。

[修正対応]:バージョン 0.2.42にて修正されました。

7080 2020/6/4 0.2.40 修正済み 2020/6/4

RtplECTGetTorqueにてトルク値を得られませんでした。

オブジェクト0x6077のみでなく、0x6071のマッピングが必要とされていました。

[修正対応]:バージョン 0.2.50.1にて修正されました。

6843 2019/7/29 0.2.10 修正済み 2020/6/4

直線補間制御(RtplECTLinInterpolate)を行うとき、INPOS設定を行っても応答イベント取得タイミングに変化がありません。

本現象はRTPL-ECの不具合です。

[回避方法]:つなぎ機能をOFFに設定します。
つなぎ機能をOFFにするには、RtplECTLinInterpolateに渡すパラメータ構造体の中のSmoothingにRTPLECT_SMOOTHING_OFFを設定しコマンドバッファに積みます。

[修正対応]:0.2.42 にて修正されました。

6748 2019/7/1 0.2.10 修正済み 2020/6/4

RtplECTInitializeMasterでエラーコード616が返ってきます。

エラーコード616はサイクルタイムアンマッチエラーです。
DC周期とサイクリック周期が一致していないことにより発生します。

[回避方法]:RSI-ECAT-Masterの起動引数に「-cycle=eni」を指定することで解消されます。

[修正対応]:0.2.42 にて修正されました。

6742 2019/6/28 0.2.10 修正済み 2020/6/4

RtplECTP.rtaにてページ違反例外が発生します。

パラメータ「加速時定数」への設定が制限値を越えたためエラーが発生し、この状態でコマンドバッファなどのクリア処理を行わずにコマンドの登録、実行を行っていたことが起因となっていました。
RTPLの使用方法としましては、エラーを検知しコマンドバッファ等のクリア処理を行い、処理を再開することになります。

[回避方法]:エラーを受信したとき、以下の処理を実行し復旧します。
①全ての軸に"RtplECTClearCmdBuff"を実行する。
②全ての軸に"RtplECTStopPositioning"を実行する。
③全てのレスポンスを受信する。
"RTPLECT_NO_WAIT_COMP_WITH_ANS"で実行したコマンドのレスポンスが無くなるまで、"RtplECTResWait"を実行してください。
NO_WAITで実行して"RTPLECT_ERROR_RES_WAIT_TIMEOUT"が返却されれば、レスポンスは全て受信できたと判断できます。

[修正対応]:0.2.42 にて修正されました。

6706 2019/6/17 0.2.10 修正済み 2020/6/4

RTPL-ECの開始処理/終了処理を繰り返すたびにモータの移動速度も倍々になっていきます。

RTPL-EC 0.2.10 と RSI-ECAT-Master 3.00との組み合わせにてRtplECTResetLibをコールすることで発生します。

[修正対応]:0.2.42 にて修正されます。