• ベストアンサー

PRO-FACE タッチパネル

プロフェイスのタッチパネルに日付を表示させ、その表示をタッチすると日付設定することができて、日付を入力し設定するとその日付になった時にアラーム鳴らす というプログラムをグローバルDスクリプトで作成したいのですが説明書読んでもいまいち分かりません。詳しい方教えてください。 イメージは添付してあります

質問者が選んだベストアンサー

  • ベストアンサー
回答No.4

基本、EXもC-Package同じです。C-Pakageの記述に変更していますので、ご確認下さい。 スクリプトは2種類あります。 1個目は比較のスクリプト(下記) if ([b:011100]==1)//ONの場合は下記の処理を実施 { if ([w:0004]==[w:0100])//年の入力とシステムエリア年と比較 {set([b:011000]) //比較で同じ場合はビットセット } endif if ([w:0005]==[w:0101])//月の入力とシステムエリア月と比較 {set([b:011001]) //比較で同じ場合はビットセット } endif if ([w:0006]==[w:0102])//日の入力とシステムエリア日と比較 {set([b:011002]) //比較で同じ場合はビットセット } endif } endif 2個目は、アラームビットON/OFFのスクリプトです。(下記) if ([w:0110]==7)//年月日の比較ビット全てON {set([b:011200])//アラームON } endif if ([w:0111]==0)//アラームスイッチがOFFの場合 {clear([b:011200])//アラームビットOFF [w:0110]=0//比較結果のビット全てOFF } endif 画面イメージは画像を添付しています。

shin5141
質問者

お礼

何度も何度も細かく丁寧に教えていただきありがとうございます。 少し勘違いしてました。年月日は[日付]の部品を使うのではなく個別に数値表示で[年][月][日]を作成するって意味だったんですね。 この場合だとアラームを鳴らしたい日付を入れてアラームON/OFFスイッチを押すとその日になったらアラームが鳴りON/OFFスイッチをもう一度押すとアラームが解除されるって意味ですよね? PRO-FACE自体でアラームって鳴らせるんですか? またアラームを三菱のシーケンサー上で鳴らすことも可能ですか? PRO-FACEのことここまで知ってる方がいないので長々と質問してしまいすみません。

その他の回答 (3)

回答No.3

リファレンスマニュアルの 「22 機能をプログラミングしたい(スクリプト)」を見て頂ければ簡単な記述方法などの説明が記載されています。

shin5141
質問者

お礼

分かりやすく説明して頂いたのですが手順どおりにやったのですがなりませんでした。 使用しているPRO-FACEは[GPPRO/PBIII]なんですが、このシリーズでも出来ますか?

回答No.2

まずは、作画方法として、 1.年月日を個別にデータ表示器の数値表示部品を画面上配置します。 2.配置した部品をダブルクリックし、基本設定のタブを開きます。 3.モニタワードアドレスを内部のアドレス(LSやUSER)設定します。   (下記のスクリプトの比較元アドレスになります。) 4.入力許可のチェックをONします。(このチェックで値が変更できます) 5.データ形式を16ビットBCDに設定します。 上記が部品の設定となります。 次にシステムエリアにある時刻データと比較する処理を作成します。 比較対象となるシステムエリアのデータは、 MtoMプロトコルの場合は 年 [#MEMLINK]0004 月 [#MEMLINK]0005 日 [#MEMLINK]0006 となります。 上記のアドレスと比較元アドレスをスクリプトで比較します。 スクリプトの記述の参考例です if([w:[#MEMLINK]0100]==[w:[#MEMLINK]0004])//年の比較。 {set([b:[#MEMLINK]011000])//110の00ビットをON } endif // if([w:[#MEMLINK]0101]==[w:[#MEMLINK]0005])//月の比較。 {set([b:[#MEMLINK]011001])//110の01ビットをON } endif // if([w:[#MEMLINK]0102]==[w:[#MEMLINK]0006])//日の比較。 {set([b:[#MEMLINK]011002])//110の02ビットをON } endif // if([w:[#MEMLINK]0110]==7)//年月日が合致した場合下記の処理。 {set([b:[#MEMLINK]001101])//[#MEMLINK]0011の01ビットをON。ブザーON } endif あとは、比較するタイミング(スクリプトのトリガ)とブザーをOFFする処理タイミングが必要です。その処理を追加すれば、ご希望の運用動作ができると思います。

shin5141
質問者

お礼

すごく丁寧に説明いただきありがとうございます。 このスクリプトのプログラムは説明書のどの部分を見れば分かりやすいですか?

回答No.1

はじめまして。 この内容であれば、デジタルサポートセンターにお問合せいただいた方が早いのではないでしょうか? 以下のサイトから問合せ可能です。 http://www.proface.co.jp/otasuke/inquiry/ 回答で無く、申し訳ありませんでした。

参考URL:
http://www.proface.co.jp/otasuke/inquiry/