北東北 LabVIEWユーザー会

返信
これは自由参加グループです。 グループメンバーとして参加し、投稿を開始するには、サインインして [グループへ参加] をクリックしてください。
Highlighted

青い強制ドット(Blue Coercion Dots)

長年LabVIEWを使っていても青い強制ドットを意識した人は多くないと思います。

 

赤い強制ドットは「数値タイプのワイヤを異なる数値タイプの端子に接続した場合」に出てくるので目にする機会はあると思います。

青い強制ドットはオンラインヘルプによると「手動で関数の固定小数点の出力設定を構成すると、数値関数の出力端子に青い強制ドットを配置します。このドットは、オーバーフローや丸め込みによる誤差を回避するために、LabVIEWが出力データタイプを自動的に調節しないことを示します」と書かれています。


例えば乗算関数のプロパティを開いて手動で関数の出力の数値データタイプを指定すると青い強制ドットが現れます。私の場合、どんな時に青い強制ドットを見る機会が多いかというと、Arduino Compatible Compiler for LabVIEWを使っている時です。普段LabVIEWで使っている変換関数(左側)がほとんど使えない(右側)のです。conversion.png

 

 

稀に困ることがあって、例えば22ビットの2の補数をU32で受け取って、符号つき整数(I32)で使いたい時に、どうします?

いろいろな方法が考えられるとは思いますが、変換関数が使えないとかなり厳しいのではないでしょうか。

Arduino Compatible Compiler for LabVIEWでは加算、乗算関数などは出力の数値データタイプを指定することが許されているようで、これを使えばなんとかなります。I32.png

 

 

 

ダイアグラムの例(乗算に青ドット ! )diagram.png

 10ビット分シフトしてI32に変換して10ビット分戻す。

 

 

(2018.11.29)

数年前に気がついていて使っていたのですが、いつの間にか忘れて、半日かけて思い出したので備忘録です。

 

 

メッセージ1/1
41件の閲覧回数
返信
これは自由参加グループです。 グループメンバーとして参加し、投稿を開始するには、サインインして [グループへ参加] をクリックしてください。