08-28-2018 02:24 AM - 編集済み 08-28-2018 02:26 AM
皆様のお力を貸していただきたいです。
添付したviは力づくで作成したのですが、
繰り返している部分をまとめたいのですが上手くできません。
何かいい案はありますでしょうか。
よろしくお願いします。
08-28-2018 09:03 PM
大変力技でここまで作成された印象があります。
プログラムの世界では「繰り返しは悪」とまで言われますので、類似の処理はまとめたいですよね。
私は機能的グローバル変数を用いて、データベースを構築する方法をお勧めします。
まず各制御器のラベル名は「Status 0」「Status 1」のようにルールに基づいて作成します。
機能的グローバル変数では、各制御器のリファレンスを配列に格納します。これがデータベースになります。
イベントストラクチャで特定のボタンが押されると、そのボタンのラベル名から指標を取得します。
その指標を基にデータベースにアクセスし、対応するリファレンスを取得します。
最後に取得したリファレンスに対する操作を行います。
参考になればと思い、サンプルを私も考えてみました。
08-28-2018 11:15 PM
ご丁寧な返答ありがとうございます。
やはり1つのvi(表現が正しいか分かりませんが)では難しいですよね
作成していただいたプログラムは全てのフォルダのプログラムがあって成り立つのですよね
初歩的なこときいて申し訳ないです。
作成していただいたviでSTAUSのボタンをクリックするだけで不在、入室など切り替えるには
どこを変更したらいいのでしょうか?
08-28-2018 11:27 PM
1つのVIだけでは難しいと思います。
LabVIEWでもCでも、プログラムを作るときは複数のVIや関数を組み合わせるほうが、
効率的でパフォーマンスのよいコーディングができます。
STATUSボタンをクリックするだけであれば、Reference Table.vi内の「Update Status」ケースを
変更してください。
たとえば以前の値が「入室」であれば次は「一時退室」、次は「帰宅」、次は「入室」のように、
循環的に値を更新していけばよいと思います。
後は好きにVIを編集していただいてかまいません。
08-29-2018 12:03 AM
たとえば以前の値が「入室」であれば次は「一時退室」、次は「帰宅」、次は「入室」のように、循環的に値を更新していけばよいと思います。
この部分をどう変更すればいいのかご教示いただけないでしょうか?
何度も申し訳ありませんがよろしくお願いします
08-29-2018 02:06 AM
もし私が提案したFGVを使うのでしたら十分理解したうえで使わないと、重大なバグを招くことになります。
お渡ししたサンプルは、初期化処理やエラー処理など、そういったアプリケーションに重要な部分は省いています。
ただ、今回質問された「循環的な値の更新」に対する修正はしました。
Reference Table.vi内の「Get Reference」ケースです。
FGVの使用経験などお持ちでないのであれば、まず基本から勉強されるほうがよいと思います。
08-29-2018 03:09 AM
丁寧にありがとうございました。
LabVIEW自体初心者なので色々勉強しようと思います。
09-06-2018 09:03 PM
私が作成したviでログ出力する方法をどなたかおしえていただけないでしょうか?