NI製品ディスカッション

キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 

VCRの領域をクリアする方法

NI-FBUSの設定がVisitorの場合(FIXならこの問題は発生しない)、FF-H1セグメントを次々と繋ぎ変えていくうちに、
機器と通信できなくなる問題が発生します。
1セグメントあたり12台の機器がある場合、9セグメント程度で問題が発生します。
PCを再起動しても復帰せず、NIダイアログを使ってNIカードのメモリを書き換えない限り復帰はしません。
原因は、NI-FBUSがVCRの情報をNIカードのNVMに書き込み、VCRは100個分程度の領域しかないためです。
どうすればVCRの領域をクリアできるのでしょうか?
できればサンプルプログラム付きでお願いいたします。
ご回答宜しくお願いいたします。
0 件の賞賛
メッセージ1/9
4,690件の閲覧回数
平素よりNI製品をご利用頂きまして誠に有難うございます。
 
日本ナショナルインスツルメンツ株式会社技術部の南と申します。
 
こちらの件、Function Reference Manualにも特に記載がなく、
また、弊社で機器の手配がすぐにできないため本社開発部に確認いたしたいと思います。
そのため、大変お手数ですが、ご使用の弊社デバイス(FBUS-HSE/H1でしょうか?)、
ご使用のソフトウェア(NI-FBUS Communications Manager、NI-FBUS Configuratorでしょうか?)、またバージョンをお教えいただければ幸いです。
 
また、もし可能でしたら、
簡単でかまいませんので、
問題の再現方法を箇条書きでいただければ幸いです。
お返事の程お待ちしております。
 
宜しくお願い致します。
 
--
日本ナショナルインスツルメンツ株式会社
技術部 南 茂
0 件の賞賛
メッセージ2/9
4,639件の閲覧回数
南様
 
早速のご回答ありがとうございます。
説明不足で申し訳ありません。下記に補足致します。
 
> そのため、大変お手数ですが、ご使用の弊社デバイス(FBUS-HSE/H1でしょうか?)、
FBUS-H1です。<http://sine.ni.com/nips/cds/view/p/lang/ja/nid/1320>
 
> ご使用のソフトウェア(NI-FBUS Communications Manager、NI-FBUS Configuratorでしょうか?)、またバージョンをお教えいただければ幸いです。
NI-FBUS Communications Managerを使用していて、バージョンは3.1.0です。
 
再現方法は下記です。
1.NI-FBUSの設定をVisitor Addressにする。
2.FF-H1セグメントを次々と繋ぎ変えて操作する。
3.通信できなくなる。
 目安として、1セグメントあたり12台の機器がある場合、9セグメントくらい繋ぎかえたのち、通信できなくなります。
 
ご回答の程、宜しくお願いいたします。
0 件の賞賛
メッセージ3/9
4,603件の閲覧回数
ご連絡遅くなりまして申し訳ございません。
詳細な情報ありがとうございます。
今回の件、ご迷惑をおかけいたして申し訳ございません。
いただいた情報をもとに確認をとりたいと思います。
回答がまとまりましたら再度ご連絡致します。
今後ともよろしくお願い致します。
 
日本ナショナルインスツルメンツ株式会社
技術部 南 茂
 
 
0 件の賞賛
メッセージ4/9
4,569件の閲覧回数
ご連絡遅くなりまして申し訳ございません。
確認をとりましたところ、
弊社FBUS-HSE/H1は、1 H1ポートにつき100のVCRしか確保できないようです。
(弊社マニュアルにこれら記述がありませんので、こちらに関しては今後のマニュアルにて記述するよう伝えておきました。)
 
FFデバイスによりVCRを持つ数が違いますので、厳密にどれくらいのFFデバイスを接続できるかは確認が必要になりますが、
いくつかFFデバイスを接続すると、このような使用できる最大のVCR数を超えてしまうことがあります。
FBUS-HSE/H1では、最大のVCR数を超える場合、エラーが発生するようになっております。
もし、最大VCR数を超えてしまった場合、
現段階では、関数によりクリアする方法はないため、ご提示いただいた回避策以外方法はないそうです。
ご参考までに、弊社NI-FBUS Configuratorをお持ちでしたら、
表示されるH1ポートを右クリックし、“Clear Device”でクリアすることが可能です。
 
今後このようなVCRをクリアする関数をNI-FBUS Communications Managerにて搭載するよう本社に要望は伝えておきましたが、
現状では、弊社NI-FBUS ConfiguratorにてVCRをクリアすることを推奨しているため、難しいかもしれません。
ご期待に添えなく申し訳ございません。
 
ご回答になりましたでしょうか?
今後ともよろしくお願い致します。
 
日本ナショナルインスツルメンツ株式会社
技術部 南 茂
0 件の賞賛
メッセージ5/9
4,547件の閲覧回数

申し訳ありませんが、追加で質問させてください。

”1 H1ポートにつき”の意味が分からないのですが、詳しく教えていただけないでしょうか?

ご回答、宜しくお願いいたします。

0 件の賞賛
メッセージ6/9
4,542件の閲覧回数
いつもお世話になっております。
今回の件、再度ご確認ですが、
PCMCIA-FBUSをご使用されているということでよろしいでしょうか?
こちらでしたら、H1ポートは1ポートしかありませんので、
この1ポートに対し、100個のVCRの領域しか確保できないようです。
(本社の回答では、
“there are 100 VCR entries for each H1 port”とのことです。)
 
そのため、PCMCIA-FBUS/2に関しては、
2つのポート、それぞれで100づつ確保できるようです。
 
ご回答になりますでしょうか?
 
日本ナショナルインスツルメンツ株式会社
技術部 南 茂
Email: http://www.ni.com/jp/support/
TEL: 0120-527196
0 件の賞賛
メッセージ7/9
4,519件の閲覧回数
こちらこそ大変お世話になっております。
 
”1 H1ポートにつき” = ”1つのH1ポートにつき”という意味だったのですね。
間違えて解釈していました。ご丁寧に説明いただきありがとうございます。
 
> FBUS-HSE/H1では、最大のVCR数を超える場合、エラーが発生するようになっております。
具体的にどのようなエラーが返ってくるのでしょうか?
そのエラーの詳細を教えていただきたく。
 
> もし、最大VCR数を超えてしまった場合、
> 現段階では、関数によりクリアする方法はないため、ご提示いただいた回避策以外方法はないそうです。
> ご参考までに、弊社NI-FBUS Configuratorをお持ちでしたら、
> 表示されるH1ポートを右クリックし、“Clear Device”でクリアすることが可能です。
NI-FBUSダイアログを使用して、VCRの領域をクリアすることは可能です。
具体的には、FBUS-H1インタフェースのMIBを開き、WriteObjectのIndex指定で998(VcrListOdIndex=998)を指定し、
1を設定することで、VCRの領域をクリアできます。
これはFoundationFieldbusの仕様を基に可能になります。
よって何かしらの方法があるように思うのですが、ご回答お願いいたします。
 
また、「NI-FBUSダイアログを使用して、VCRの領域をクリアする」とその後の通信に不具合が発生します。
よってCommunications Managerを再起動しなければならないのですが、そのような関数は存在しますか?
 
質問の内容が長々としてしまいましたのでまとめますと、以下の3つです。
1. 最大のVCR数を超えた場合のエラーの詳細
2. FFの仕様を基にNI-FBUSダイアログを使用してVCRの領域をクリアできるので、何かしらの方法があるのではないか?
3. Communications Managerを再起動する方法
 
ということです。
 
度々の質問で申し訳ありませんが、ご回答宜しくお願いいたします。
0 件の賞賛
メッセージ8/9
4,511件の閲覧回数
いつもお世話になっております。
ご連絡遅くなりまして申し訳ございません。
ご回答がまとまりましたのでご確認いただければ幸いです。
 
1. FBUS-HSE/H1では、最大のVCR数を超える場合のエラーに関して
最大のVCR数を超える場合のエラーなどに関しては、“nifbus.h”で以下のように定義されております。
 
#define E_VCR_FULL                  (-15)
 
弊社NI-FBUSアプリケーションにおいては、このエラーの定義により同様のエラーが返されます。
そのため、NI-FBUS 関数をコールし、-15が返された場合は、最大のVCR数を超えたエラーになります。
 
2. VCR領域をクリアする方法は?
こちらに関しては、一点、説明不足だった点があり、誤解されたようですので説明させていただきます。
前回の私のスレッドの中で、“ご提示いただいた回避策以外” と説明させていただきました点ですが、
こちらのご提示いただいた回避策というのは、お客様から提案いただきましたNI-FBUSダイアログを使用して、VCRの領域をクリアすることです。
前回の段階では、弊社NI-Configuratorを使用する方法か、NI-FBUSダイアログを使用してVCRの領域をクリアすること、
の2つの方法を提案させていただきましたが、
他に方法がありましたのでこちらを紹介させていただきます。
- NI-FBUS 関数のnifWriteObjectを使用し、MIBパラメータのVCR_STATIC_ENTRYを0を書き込む
- \National Instruments\NI-FBUS\Data\NvmにVCRをクリアしたファイルを再度読み込む
2番目のほうに関しては詳細を添付の資料(大変申し訳ないのですが、英文での資料、本社からの回答をそのまま添付させていただきます。)に記載してありますので、
ご確認いただければ幸いです。
 
3. Communications Managerを再起動する方法
こちらに関しては弊社では手動において行っていただくか、
もしくは、通常のWindowsOS上でプロセスを起動させたり、終了させる関数(CreateProcessなど、WindowsOS上からプロセスを制御する関数)をご使用し、
nifb.exeを制御することをおすすめいたします。
なお、これらWindowsOSからプロセスを制御するための関数に関しては弊社サポート外になりますのでご了承ください。
 
以上、ご回答になりますでしょうか?
今後ともよろしくお願い致します。
日本ナショナルインスツルメンツ株式会社
技術部 南 茂
 
0 件の賞賛
メッセージ9/9
4,455件の閲覧回数