|
|||||||||||||
04-17-2012 09:55 PM
いつもお世話になり、ありがとうございます。
また質問させていただきますので、お手数ですがご教授くだされば幸いです。
例えば、測定中のタイムスタンプを取って、データーとして保存する方法はわかりますが、途中でロスタイム等
その時間差分だけ足したり引いたり計算した結果を保存したいのですが、計算が出来なくて困っています。
添付の様に単純にロスタイム分(0:45、45分のつもりで定数を作った)を足しただけでは、希望する数値
時間データーのフォーマット等何か工夫する必要がある様ですが、その方法がわかりません。
以上よろしくお願いいたします。
解決済! 解決策の投稿を見る。
04-23-2012 05:12 AM
denou 様
平素よりNI製品をご利用頂きまして誠に有難うございます。
日本ナショナルインスツルメンツ技術部の山田と申します。
45分(00:45)の定数ですが、定数の表示形式の設定でタイプを相対時間に設定し、再度試して頂けます
仮にされていない場合ですと、45分ではなく日付も含まれる時間が足されるので、それが原因で予想されてい
上記内容をご確認の上、お手数ですが再度ご連絡願います。
宜しくお願い致します。
山田
日本ナショナルインスツルメンツ技術部
04-23-2012 09:42 PM
日本ナショナルインスツルメンツ技術部 山田様
コメントありがとうございました。
早速試したところ添付の様になりました。
45秒で足しているはずですが、結果は49秒なので何かまぢおかしいですね。
あと、書き忘れましたが LabVIEW は6.1 です。
ご確認よろしくお願いします。
04-24-2012 04:43 AM - 編集済み 04-24-2012 04:44 AM
denou 様
お世話になっております。
日本ナショナルインスツルメンツ技術部 山田です。
ご連絡ありがとうございます。
45秒を足される場合には、相対時間に秒も含む様に設定します。
スクリーンショットを添付致しましたのでご確認願います。
45秒の場合、定数は「00:00:45」と表示されます。
45分の場合はうまくできましたでしょうか?
上記内容をご確認の上、お手数ですが再度ご連絡願います。
宜しくお願い致します。
山田
日本ナショナルインスツルメンツ技術部
04-24-2012 06:00 PM
日本ナショナルインスツルメンツ技術部 山田様
コメントありがとうございました。
LabVIEW6.1 ですと添付の様にご指示のフォーマットでは入力できませんでした。
ですので、(秒)と書かれていたので、大きい数字(45分×60秒)は面倒だったので、45 と入れたら
結果は49秒足された結果となりました。
ご確認よろしくお願いします。
04-24-2012 07:08 PM - 編集済み 04-24-2012 07:09 PM
横槍で恐縮です。
LabVIEW6.1でも、「形式と精度」の一番上の形式の「10進数」のプルダウンを
「時間と日付」にすれば、同じ指定が可能です。
「カスタム日付形式」を「日付が使用されていません」などにしておきます。
また、結果の秒が「49」になってしまう、とのことですが、足しているのは45秒だけでなく、
45秒に加算している「1当たり時間」という別の計算結果である4.65が一緒に加算されていますから、
秒が49になってしまうのは想定通りなのでは。
形式と精度の時刻のフォーマットで「HH:MM: SS」の下の桁数に2とか3とか入れれば、
端数の「.65」も表示されますので、確かに、4.65「秒」として加算されているのが分かると思います。
4.65の意味は分かりかねますが、これの単位は秒でいいのでしょうか?
加算する時間の計算では、「単位付き」実数(単位を、秒や分や時間など、計算しやすいもの個別に設定)
で演算しておき、最後に「秒」で単位変換して(単位を除去して)日付時刻の値に加算する方法もあります。
こちらの方が、間違いないですし、「1分」と「1秒」を加算すれば、内部では61秒で計算結果が
伝搬するので単位換算を人間が気にしなくていいです。
04-24-2012 07:31 PM
白石様
コメントありがとうございます。
確かにご指摘の通りでした。自分で足していることをすっかり忘れてました。お恥ずかしい限りです。
間違えない様にシンプルにしたviを添付しましたが、単純な計算は出来きて特に問題は無いのですが
アドバイスして頂いた形式での処理はやはりダメな様です。
04-24-2012 09:00 PM - 編集済み 04-24-2012 09:06 PM
すみません、LabVIEW6.1の「形式と精度」の「相対時間」でなければならないですね。
で、先程の「時刻と日付」を使うと絶対時間になってしまいますので、日付時刻形式での演算は
確実にうまく行きません。
一方、相対時間ですが、LabVIEW6.1の場合、
●1分未満の場合、「0:ss」のようには表示されない。1分を超えて初めて「m:ss」になる。
●同様に、1時間を超えて初めて「h:mm:ss」になる。
●表示器上では、「(h: )mm:ss」の入力を受け付けてくれる(コロンを入力できる)
●ダイヤグラムの定数で相対時間にすると、コロンを受け付けてくれない。
ということが分かりました。おそらく、上の、4番目がネックになっていると思われます。
定数で相対時間にした場合ですが、とりあえず「45秒」については、1分以下なので
「0:45」とは表示してくれないのでこれはあきらめます。
次に、「1分30秒」と入れたい場合に、定数上で「1:30」と入力しようとしてもコロンを受け付けて
くれないため、まず「59」と入れて、59の数字をクリックして「↑」キーを押すと、時間が増えて
「1:00」になってくれますので、この状態でコロンが消えないようにして分の部分を入れます。
同様に、時間の単位まで入れたければ、これで分を59にしておいて、分の数字をクリックして
「↑」キーを押すと、「1:00:ss」になってくれます。
先にご案内した形式設定では絶対時間になってしまいますので、45秒のつもりでも、
何の年月日になっているか、で、変な時刻になってしまう上に、日本では日本標準時(JST)
になっているので、「0:00:45」でもUTCでは変な時間になっています。
時刻の内部形式は、LabVIEWの場合、「1904/1/1 0:00:00(UTC)」(Epochといいます)を
実数の0と同じとし、そこからの経過秒数で表現しています(うるう秒は当然無視)。
1904/1/1 0:00:00(UTC)がEpochなのは、Mac OSの特長で、おそらくLabVIEWが
最初はMac上のものだった作られた名残かと思います。
「2012/5/23 8:10:00」は内部的には、実数の「3420573000」と同じでして、
「2012/5/23 8:10:00(JST)」に「2012/5/23 0:00:45(JST)」を足すというのは、
内部では「3420573000+3420543645=6841116645」なんですが、計算結果は実
ちゃんと出来ているのですが、時刻表現としてはU32の最大値である4294967295に対応する
「2040/2/6 15:28:15(JST)」までしか表現できず、この1秒次が、「1904/1/1 9:00:00(JST)」の
Epochの時刻(ゼロと同じ)に戻ってしまいまして、「6841116645」は「1984/9/6 16:42:29(JST)」
という過去の変な時刻になってしまいます。
(2040/2/6というと、LabVIEWの時刻はあと28年以内に使えなくなるわけですが)
というわけで、定数の形式を「相対時間」にした上で、1分未満では秒しか表示されないのは
仕様っぽいので仕方ないとして、1分以上の入力は若干面倒ですが上述の方法でお試しください。
04-25-2012 01:04 AM
M.Shiraishi 様
詳細に調べて頂きありがとうございました。
なるほど、そう言う事があったんですね。
ある意味裏技的な対応ですが、結果処理できれば問題ありません。
助かりました。
どうもありがとうございました。
プロファイル | プライバシ- |
使用条件 |
お問い合わせ
© 2011 National Instruments Corporation. All rights reserved. | このページを紹介する
|
||

このページを紹介する