• 検索結果がありません。

2 ASTMAC 1step Windows ( ) ASTMAC PC

N/A
N/A
Protected

Academic year: 2021

シェア "2 ASTMAC 1step Windows ( ) ASTMAC PC"

Copied!
35
0
0

読み込み中.... (全文を見る)

全文

(1)

Information

ASTMAC

入門書(応用編)

TI 34P02K11-02

(2)

本書の目的

本書の目的

本書の目的

本書の目的

本書は初めて ASTMAC でシステム構築する人のための入門書です。ただ読むだけではなく,簡単なシ ステムを実際に作成しながらシステム構築の基本的な考え方と操作方法を習得することを目的にして います。 応用編ではイベント受信,データ共有,マルチタスクとプロセス管理などについて,それぞれのミニテ ストプログラムを作成してみます。作業手順を 1step づつ記述してありますので,Windows の基本的 な操作方法(キーボードの操作,マウスでの操作など)がわかれば楽に進めることができます。 全体に,あくまでも「システム構築の基本的な流れ,ツールの操作方法の習得」を目的にしているため, リファレンス的な要素は少なくなっていますが,各例題の前に,ASTMAC の用語や概念を簡単にまと めてみました。実習に取り掛かる前に,こちらをご一読される事をお勧めします。また,図版を多くし て,手順をシンプルに記述することを心がけたために,やや説明不足になっている面があり,それをコ ラムという形で補っています。基本的な用語の解説や操作のヒントなどですが,内容が「難しい」と感 じた場合は飛ばしても作業手順には影響しませんので,こちらは後日,ゆっくり読まれても大丈夫だと 思います。 今回取り上げた例題は,現場でのシステム構築手順とはやや異なります。システム構築においてもっと も重要な設計やフィールド機器との接続が省かれていますし,作成したシステムの動作確認も PC 上で のシミュレートとなります。 なお,実習のシミュレートにあたり,体験版では実行できない項目があります点はご了承ください。

(3)

目次

目次

目次

目次

1. 1.1. 1. マルチタスクマルチタスクマルチタスクマルチタスク ... 4444... 1.1 マルチタスクとは ... 4 1.2 マルチタスクシステムの特徴 ... 4 1.3 ASTMAC のマルチタスク... 5 1.4 実習... 5 1.4.1. タスク間での事象(イベント)通知 ... 5 1.4.2. タスク間でのデータ共有... 10 2. 2.2. 2. 現場からのイベント受信現場からのイベント受信現場からのイベント受信現場からのイベント受信... 19191919 2.1 従来の手法... 19 2.2 ASTMAC での手法... 19 2.3 実習... 20 2.3.1. イベント送信の概略... 20 2.3.2. オブジェクトビルダでの設定 ... 21 2.3.3. グラフィックビルダの設定 ... 25 2.3.4. 動作確認 ... 25 3. 3.3. 3. プロセス管理プロセス管理プロセス管理 ...プロセス管理... 27...272727 3.1 実行ファイル設定 ... 29 3.1.1. 機能 ... 29 3.1.2. 設定手順 ... 29 3.2 プロセスコンフィギュレータ ... 30 3.2.1. 機能 ... 30 3.2.2. 設定手順 ... 31

(4)

1.

マルチタスク

マルチタスク

マルチタスク

マルチタスク

1.1

マルチタスクとは

マルチタスクとは

マルチタスクとは

マルチタスクとは

マルチタスクとは,タスク(プログラム)を複数同時に実行できる機能のことです。WindowsNT もマ ルチタスク OS なのはご存知だと思います。画面のタスクバーに起動させているアプリケーションがい くつも並びますよね。 対する言葉としてシングルタスクがあります。機能としては 1 度に1つのアプリケーションしか実行で きません。

1.2

マルチタスクシステムの特徴

マルチタスクシステムの特徴

マルチタスクシステムの特徴

マルチタスクシステムの特徴

• 効率の良いシステムを実現効率の良いシステムを実現効率の良いシステムを実現効率の良いシステムを実現 複数のアプリケーションを1つのタスクとして作成した場合,時間のかかる処理が存在するとそれ以 降の処理も遅れてしまいます。マルチタスクシステムの場合,各アプリケーションは並列に処理され るため,遅い処理の影響を全体が受けることはありません。結果として,システムの効率が上がりま す。 • 保守性に優れたシステムを実現保守性に優れたシステムを実現保守性に優れたシステムを実現保守性に優れたシステムを実現 もちろん,シングルタスクシステムでも,ボトルネックとなるような処理を分散することで,効率の 良いアプリケーションが作成できます。しかし,分散のためのロジックに加え,複数の異なる機能を 1つのアプリケーションに抱え込むとどうしても大きく,複雑になってしまいます。マルチタスクで 設計すると,各アプリケーションは単機能で済みます。作成,デバッグ,保守が容易になることは明 らかです。 • タスク間通信タスク間通信タスク間通信タスク間通信 大きなメリットを持つマルチタスクシステムですが問題点もあります。それはタスク間の同期と通信 です。各タスクがバラバラに動いていては 1 つのシステムとして成り立ちません。マルチタスクシ ステムを作成するときは,タスク間通信が容易に行える事が重要です。

(5)

1.3 ASTMAC

のマルチタスク

のマルチタスク

のマルチタスク

のマルチタスク

ASTMAC のソフトウエア構造は,基礎 編でも説明したとおり,I/O オブジェク トからデータサーバ,アプリケーション フォームと分かれて動作しているマル チタスク構造です。従って,データサー バも1つのタスクと考える事ができま す。 「ASTMAC のマルチタスク」で特徴的 なのは,ユーザが作成したアプリケーシ ョンプログラムも ASTMAC 上でマルチ タスク処理できる,つまりユーザもマル チタスク対応のアプリケーション(マル チタスクシステム)が作成できるという 点です。 Visual Basic などの開発言語でマルチタスクシステムを開発する場合,タスク間のイベント送信のため に Windows のメッセージをフックするための OCX を作成したり,共有メモリを利用するための DLL を別言語で作成しなくてはなりません。ASTMAC ではマルチタスク支援パッケージを加えることで以 下の機能を容易に実現できます。 • ある事象の発生を他のタスクへ通知する機能ある事象の発生を他のタスクへ通知する機能ある事象の発生を他のタスクへ通知する機能ある事象の発生を他のタスクへ通知する機能(イベント送受信)(イベント送受信)(イベント送受信)(イベント送受信) • タスク間で効率よくデータを共有する機能タスク間で効率よくデータを共有する機能タスク間で効率よくデータを共有する機能タスク間で効率よくデータを共有する機能(ブロックデータ)(ブロックデータ)(ブロックデータ)(ブロックデータ) • 処理の依頼などのためのデータを引き渡す機能処理の依頼などのためのデータを引き渡す機能処理の依頼などのためのデータを引き渡す機能処理の依頼などのためのデータを引き渡す機能(イベント+データ送受信)(イベント+データ送受信)(イベント+データ送受信)(イベント+データ送受信) 概念的な説明が続き,いま一つ,ピンとこないかもしれませんね。実際にテストプログラムを作成して, 動作を確認してみましょう。

1.4

実習

実習

実習

実習

1.4.1.

タスク間での事象

タスク間での事象

タスク間での事象

タスク間での事象(イベント)通知

(イベント)通知

(イベント)通知

(イベント)通知

ASTMAC のイベント通知にはシグナル交信オブジェクト(SG)を使用します。シグナル交信オブジェ クトはマルチタスク支援パッケージをインストールすることで使用可能になり,データサーバとアプリ ケーションフォーム間,およびアプリケーションフォーム同士で事象の発生(= イベント)を通知/受 それぞれが,1つのタスク (プログラム)で,同時に動 作します。 グラフィック画面のプログラムを複数同時 に起動することができます これらのタス ク 間 通 信 は ネットワーク 経 由 で も 可 能です。

(6)

信することができます。また,イベントの通知と共に最大1024Byte のデータを送ることができま す。 実習ではアプリケーションフォーム間のイベント送受信として,シグナル送信のアプリケーションとシ グナル受信のアプリケーションの2つを作成します。 ① ①① ① シグナル送信アプリケーションを作成シグナル送信アプリケーションを作成シグナル送信アプリケーションを作成シグナル送信アプリケーションを作成 オブジェクトビルダを起動し,新規のオブジェクト(空のデータサーバ)を用意します。その後に,グ ラフィックビルダを起動します。イベントを送信する機能はシグナル交信オブジェクトが持っています。 このオブジェクトがツールバーに見えない場合は,マルチタスク支援パッケージをインストールしてく ださい。このオブジェクトはデザイン画面で貼り付けられていても実行時には見えなくなりますが,貼 り付ける事で機能が有効になります。 どちらも独立した1つのタスクです。 送信テキストに文字列を入力し,送 信ボタンを押すとイベント受信アプリ ケーションに表示されます。 シグナル送信アプリケーション シグナル受信アプリケーション 送信側がテキストを送信 するという処理がイベント の発生にあたります。受 信側がテキストを表示す る処理がイベントの受信 にあたります。 ②ラベルを3つ貼り付けて, caption を変更 ③テキストボックスを 3 つ貼り付け て,オブジェクト名を以下のとおり に変更する。 送信先 Node 名:RmtNdName 送信先シグナル名:RmtSigName 送信テキスト:sndText ④コマンドボタンを貼り付け て,caption を「送信」にする 送信テキストのみ Multiline プロパティを True にしま

(7)

画面のデザインが終了したら,「送信ボタン」をダブルクリックしてください。

コードウインドウが表示されますので CommandButton_Click()の下に次のコードを追加します。 sndsig.SendSignal RmtNdName.Text, RmtSigName.Text, SndText.Text

sndsig.SendSignal RmtNdName.Text, RmtSigName.Text, SndText.Textsndsig.SendSignal RmtNdName.Text, RmtSigName.Text, SndText.Text sndsig.SendSignal RmtNdName.Text, RmtSigName.Text, SndText.Text

以上で送信側のプログラムは完成です。このプロジェクトを「シグナル送信.YGP」で保存します 。 その後に実行ファイルの作成を行います。 グラフィックビルダのメニュー[ファイル]の中に,「実行ファイルの作成」がありますので,選択し てください。 ダイアログが表示され,[保存]を押すと「Ygr」の拡張子が付いた実行ファイルが作成されます。 ② ②② ② シグナル受信アプリケーションを作成シグナル受信アプリケーションを作成シグナル受信アプリケーションを作成シグナル受信アプリケーションを作成 引き続き受信側のアプリケーションを作成します。グラフィックビルダのメニュー[ファイル(F)]−[新 規プロジェクト(N)]を選択します。新しい Page が表示されますので,以下のオブジェクトを貼り付け てください。 オブジェクト名 sndsig(シグナル交信オブジェクト)の SendSignal メソッド(送信) を実行します。 SendSignal には「どのコンピュータの」,「どのシグナル交信オブジェクトに」,「何を送る か」の引数が必要です。 ここでは,ユーザが実行時にテキストボックスに入力した内容を引数に利用します。 RmtNdName.Text Node 名(PC 名を入力することでネットワークにも対応していま す。入力を省略するとローカル PC=自分の PC で送信先を探します。) RmtSigName.Text 相手の名(SignalName プロパティ) SndText.Text 送信内容

(8)

コードウインドウに以下のコードを追加します。 コードを追加しましたら保存して,実行ファイル(シグナル受信.Ygr)を作成してください。以上で受 信アプリケーション作成は終了です。 ④1 行追加します。rcvtext(テキストボックス)の Text プロパティに受信したデータを表示するという コードです。 ③プロシージャ名は自動的に記述されます。こ のプロシージャは rcvsig(シグナル交信オブジェ クト)がイベントを受信したときに呼び出される処 理です。

(Data As Variant)は呼び出されたときに取得 可能なデータ(この場合は送信されたテキスト) です。 ①▼を押して,rcvsig を選択します。 ②▼を押して,SignalReceive を選択します。 ③シグナル交信オブジェク トを貼り付けます。 オブジェクト名を「rcvsig」に します。 SignalName プロパティを 「txtsig」にします。 ②テキストボックスを貼り付けます。 オブジェクト名を「rcvtext」にします。 Multiline プロパティを True にしておき ます。(テキストボックス内に複数行の 表示ができます) ①ラベルを貼り付け,Caption を「受信シグナ ルデータ」とし,font プロパティで文字サイズを 適当な大きさにします。 ④クリックしてコードウインドウを 表示します。

(9)

③ ③③ ③ 実行実行実行実行 機能を確認しましょう。 まず,オブジェクトビルダで[モード変更]−[デバッグ]を選択します。 実行ファイルを作成したフォルダはデフォルトでは C:¥Program Files¥YOKOGAWA¥Astmac¥Work¥Application C:¥Program Files¥YOKOGAWA¥Astmac¥Work¥ApplicationC:¥Program Files¥YOKOGAWA¥Astmac¥Work¥Application C:¥Program Files¥YOKOGAWA¥Astmac¥Work¥Application になっているはずです。その中に「シグナル送信.Ygr」と「シグナル受信.Ygr」というファイルがあり ますのでダブルクリックして起動してください。 *誤ったシグナル名を入力すると異常終了しますので注意してください。 送信テキストに入力したデータが受信データに表示されれば,成功です。

● As Variant

As Variant

As Variant

As Variant ●

VB の文法規則です。「Data As Variant 」で,Data のデータタイプが Variant であることを示し ています。データタイプには Integer(整数),Long(長整数),String(文字列),Double(実数) などがあります。Variant は使う方法に合わせて自動変換してくれるタイプです。 送信先 Node 名は空欄 送信先シグナル名は txtsig を入力します。 送信先オブジェクト名(rcvsig)ではないことに注意! シグナル送信アプリケーション 自由に入力してみてください テキストを入力後に送信します

(10)

1.4.2.

タスク間でのデータ共有

タスク間でのデータ共有

タスク間でのデータ共有

タスク間でのデータ共有

次はタスク間でデータを共有する方法を実習します。共有データを保持するオブジェクト(ブロックデ ータオブジェクトと呼びます)を用いることにより最大オブジェクトあたり 32Kbyte までのデータを共 有できます。この機能も複数のアプリケーションフォーム間,データサーバとアプリケーションフォー ム間で有効です。 実習ではあるデータを共有データ(表形式)に書き込むアプリケーションと,読み込んで表示するアプ リケーションを作成します。 アプリケーション A アプリケーション B

データサーバ

共 有 デ ー タ ①書き込み ③読み込み 共有データを利用することのメリットは,イ ベントの送受信と違い,複数のアプリケー ション間でそのデータを参照できることにあ ります。また,オブジェクト指向の観点から もデータ部とデータ処理部を分けて設計す ることは効果的な手法です。 ②イベント送信 ①名前と年齢・メールアドレス を入力し,追加ボタンを押すと ②表示されます。 ③全削除ボタンを押すと表示側が クリアされます。

(11)

① ①① ① 構造定義ファイルの作成構造定義ファイルの作成構造定義ファイルの作成構造定義ファイルの作成 共有データは構造定義可能なデータです。構造定義というのは,データに名前を付けて,データにアク セスするときはその名前で扱えるという利点があります。また,1つの共有データに文字列,整数など 異なるタイプのデータ含むことができます。 さて,入力側の画面に,「名前」と「年齢」,「メール1」,「メール2」の4つのデータがあります。 この4つのデータを以下のように名前を付けて,定義します。メモ帳などのエディタで以下のように入 力してください。 カンマでデータを区切る形式は CSV 形式と呼ばれます。EXCEL で作成して,保存時に CSV 形式を選 択してもかまいません。 作成したら保存します。保存場所は自由ですが,ここでは以下のようにします。 C:¥Program Files¥YOKOGAWA¥ASTMAC¥Work¥構造定義 (「構造定義」フォルダは,新規作成してください。) ファイル名は「データ共有.csv」とします。 ② ②② ② オブジェクトビルダの設定オブジェクトビルダの設定オブジェクトビルダの設定オブジェクトビルダの設定 オブジェクトビルダを起動します。[ファイル(F)]−[新規作成(N)]で新しいデータサーバを デザインします。 [プロジェクト(P)]−[コントロールオブジェクトの追加(O)]を選択して,開いた追加ダイア ログの各項目を設定します。 クラスを「アプリケーション支援」にし ないとタイプの選択肢として BD(ブ ロックデータ)が表示されません。 Addr(2)は Addr が 2 つある 事をさします データのタイプです。 Integer は整数値を示します。 String は文字データである事を示し,*64 は 64 文字分のエリアを用意するという意味です。 #の後ろはコメント扱いです 1 つのデータ定義を 1 行に書きます。 データの名前,データタイプ,コメントの順に カンマで区切って書きます。

(12)

[OK]ボタンを押すと,詳細設定のタブダイアログが表示されますので,[固有タブ]の[構造定義 ファイルパス]を設定します。 ③ ③③ ③ 入力画面の作成入力画面の作成入力画面の作成入力画面の作成 入力側のアプリケーションを作成します。グラフィックビルダを立ち上げ,Page オブジェクトを適当 なサイズにしてから,各コントロールオブジェクトを貼り付けます。 クリックして,①で保存したファイルを 選択します。 以上でオブジェクトビルダの設定は終 以上でオブジェクトビルダの設定は終以上でオブジェクトビルダの設定は終 以上でオブジェクトビルダの設定は終 了です。 了です。了です。 了です。 動作モードを 動作モードを動作モードを 動作モードを「デバッグ」にしておい「デバッグ」にしておい「デバッグ」にしておい「デバッグ」にしておい てください。 てください。てください。 てください。 コマンドボタン:DeleteAllButton シグナル交信オブジェクト:Signal ブロックデータアクセスオブジェクト:CommonData *図中「:」に続く名前は,オブジェクト名です。 コマンドボタン:AddButton テキストボックス:AddrField2 テキストボックス:NameField テキストボックス:AddrField1 テキストボックス:AgeField

(13)

ブロックデータアクセスオブジェクトの BlockDataName プロパティにデータサーバで定義したブロッ クデータオブジェクト名を指定します。 「追加ボタン」をクリックした場合と,「全削除ボタン」をクリックした場合との処理を記述します。 共有データへのデータ書き込みはブロックデータアクセスオブジェクトの DataValue プロパティに値 をセットする処理になります。 DataValue の( )の中は,構造定義ファイル「データ共有.CSV」で定義した名前を指定しますが,こ の時注意する点は,大文字,小文字も区別されることと,必ず “ ”で囲むことです。 ブロックデータアクセスオブジェクト 「MainGroup」から記述します。 MainGroup.データ共有オブジェクト 追加ボタンクリック時の処理 全削除ボタンクリック時の処理 構造定義ファイルの定義名を “”で囲って指定します

(14)

共有データへの書き込みの次に,表示画面へ追加イベントを送信するコードを記述します。 シグナル送信の処理コードが 1.2.1 で行った実習とは少し異なっていますので説明します。 シグナル交信オブジェクトの SendSignal メソッドには 3 つの引数がありました。「送信先 Node 名」[送 信先 SignalName][送信データ]でしたね。ここでは,1つの引数しかありません。 実は,引数には必ず指定しなくてはならないものと,オプション的なものとあり,オプション的な引数 は記述し なくてもかまわ ないの です。こ の場合,必ず指定しな くてはならない 引数は 「送信先 SignalName」なので,“AddSig”というのは相手の SignalName という事になります。

では,Node 名や Data はどうなるのでしょうか。Node 名が指定されない場合は,ローカルコンピュー タすなわち,同じ PC であるとメソッドは解釈して処理します。Data は指定しなければイベントだけ の送信となります。全削除の送信も同様に相手の SignalName のみ指定しています。

さて,このことから受信側のプログラムには Add 用と Delete 用の2つのシグナル交信オブジェクトが 用意されなくてはならない事が予想できましたか?

(15)

④ ④④ ④ 表示画面の作成表示画面の作成表示画面の作成表示画面の作成 表示側のプログラムを作成します。メニューの[ファイル(F)]−[新規プロジェクト(N)]を選 択してください。 Page サイズを決めて,コントロールを貼り付けます。下の図を参考にしてください。 2つのシグナル交信オブジェクトは SignalName プロパティをそれぞれ「AddSig」,「DelSig」とし ます。 新しいコントロールオブジェクトが登場しました。ListBox コントロールです。Windows アプリケーシ ョンではよく使用されます。 ListBox:ListBox1 シグナル交信オブジェクト:AddSignal ブロックデータアクセスオブジェクト:CommonData シグナル交信オブジェクト:DelSignal *図中「:」に続く名前は, オブジェクト名です。 表示項目が多くなるとスクロールバーが 自動表示されます。チェックボックス付き のリストボックスもあります。 リストボックスの例

(16)

リストボックスのプロパティを設定します。 VBA では複数列のリストボックスをサポートしているので,プロパティで列の数や幅を決めます。 追加イベント受信と全削除イベント受信の処理を記述します。 列幅を指定します。 単位(pt)を付け,セミコロン(;)で区 切ります。 「pt」はポイントを示します。 「-1」を指定すると ColumCount で均 等分割されます。 列数を指定します 追加シグナル交信オブジェクトのイベント受信処理 全削除シグナル交信オブジェクトのイベント受信処理 Clear メソッドは ListBox の 内容をすべて消去する ListCount は現在保 持している行数

(17)

追加イベント受信時にはリストボックスにデータを表示します。リストボックスは表の様なものと考え てください。 まず,AddItem メソッドで行が追加されます。次に共有データの値をセットする行のインディックス (index)を求めます。行のインディックスは0から始まるので,追加された行のインディックスは(行の 総数−1)になります。その後,List プロパティで行と列を指定して,共有データから取得した値をセ ットします。 以上で表示画面は完成です。 ⑤ ⑤⑤ ⑤ 動作の確認動作の確認動作の確認動作の確認 シグナル交信オブジェクトの実習と同様に両方とも「実行ファイル」を作成します。 オブジェクトビルダの[モード変更]で動作モードを「デバッグ」にしておきます。その後で2つの実 行ファイルを起動させてください。入力画面で名前その他を入力し,「追加ボタン」を押すとリストボ ックスに表示されることを確認します。 0, 1 0, 2 0,3 1, 1 1, 2 1,3 2, 1 2, 2 2, 3 index=0 の行 index=1の行 index=2の行 Name Age Addr(1) Addr(2)

*0からであることに注意 この場合の行の総数=3 0, 0 1, 0 2, 0 行,列

(18)

● デバッグ

デバッグ

デバッグ

デバッグ ●

実習のプログラムが上手く動かなかった場合はデバッグが必要です。デバッグのテクニックはたく さんありますが,よく使われるのはブレークポイント(BP)と変数の確認です。BP による簡単な デバッグ方法を紹介します。 まず,[表示]−[ツールバー(T)]の[デバッグ]をチェックしてデバッグ用のツールを表示 しておきます。 ステップオーバー ステップイン ここをクリックする とその行に BP が 張れる。 BP をもう一度 クリックすると 解除される A B BP はデバッグ環境で実行中にプログラムを止めたい行に張ります。上図では追加イベントを受信 したときに止まります。止まるとカーソルが黄色になりプログラムが一時停止した事が分かりま す。停止したらカーソルを変数に近づけますとその値が表示されます。この事から,まず追加のイ ベントが来ている事が分かります。ここに BP を張っていて停止しないようなら入力側で追加ボタ ンを押してもイベントが発生していない(受信できていない)ことが想像できます。イベントが来 ている事が分かったので,1 行だけ進めてみます。ステップオーバーをクリックすると反転カーソ ルが 1 行進みます。そうして 1 行ずつ実行していき,カーソルを近づけて変数の値を確認しますと, おかしな値が入っている個所が見つかるのです。コードの間違いはそこにあります。ただし,BP で止まった行は実行前であることを覚えていてください。次の行に移った時点で変数に値がセット されるのです。図の A に反転カーソルがある時は index に値は入っていません。ステップオーバー で B に移ったとき,index には「ListCount−1」の値がセットされているのです。 BP は複数個所に張れます。プログラムのコードが大きくなるとステップオーバーで 1 行ずつでは 大変なので,BP で止めて確認して,再度実行してまた止めてという方法が一般的です。

(19)

2.

現場からのイベント受信

現場からのイベント受信

現場からのイベント受信

現場からのイベント受信

生産システムにおいて,現場の製造工程進捗情報や重故障発生情報などいち早く監視パソコンへ通知し なければならないデータがいくつかあります。そこで ASTMAC ではイベント駆動型の処理を可能にし ました。

2.1

従来の手法

従来の手法

従来の手法

従来の手法

従来の手法は定周期で収集・監視するやり方でした。常に収集し,表示するデータはこの方法で良いの ですが,突発的に発生する情報に対しては,瞬時にパソコン側へ通知することができず,どうしても収 集周期によるタイムラグが発生していました。 また,タイムラグを押さえようと,収集周期を高速にするとパソコンの負荷が上がり,他の処理に影響 を及ぼす恐れがありました。

2.2 ASTMAC

での手法

での手法

での手法

での手法

ASTMAC では,上記のような定周期のデータ収集方法に加え,PLC が発信するイベントを受けて動作 するイベント駆動型の処理が可能になりました。現場のイベントに対して即時に処理が実行できますし, 常時監視ではないのでパソコンの負荷も上がりません。 一般のパッケージソフト 一般のパッケージソフト一般のパッケージソフト 一般のパッケージソフト 定周期の 定周期の 定周期の 定周期の データ収集 データ収集 データ収集 データ収集 収集直後に発生したイベントは次の 収集まで認識できない イベント発生 早く処理してね! 収集周期を高速にすると 負荷が大きくなっちゃう

(20)

2.3

実習

実習

実習

実習

ここでは PLC からのイベント受信に関する基本的な構築の方法を実習しましょう。

2.3.1.

イベント送信の概略

イベント送信の概略

イベント送信の概略

イベント送信の概略

イベントの送受信は送信する PLC の機種により手法が異なるので,この実習では PLC 側の設定や I/O オブジェクトの詳しい設定は省略します。章末のコラムにサンプルとして FA-M3 でイベント送信を行 うラダープログラムを添付しました。実習の対象となるのは,イベントを受信してデータサーバのテキ ストオブジェクトの内容が変更されたところからです。以下に手順を示します。図も参照してください。 ①送信されたイベントはまず I/O オブジェクトが受信し,コントロールオブジェクト(図では TXT:テ キストオブジェクト)が受信します。受信内容は,TXT オブジェクトの Cv 値に格納されます。 ②TXT オブジェクトの Cv 値が変化(Change イベント)するので,それをきっかけとして,シグナル 交信オブジェクト(SG)がグラフィック画面へ通知します。 ③グラフィック画面側はデータサーバからのイベントをオブジェクト(SG)が受信し,内容を表示し ます。 実習では PLC は接続せず,擬似的にイベントを受信したことにします。 ASTMAC 定周期で データ収集 イベント受信 PLC 即時実行! イ ベ ン ト 生 常時監視 するデータ 緊急な情報はイベント通知に よって即時実行! 常時高速で監視する必要が ないので負荷も軽減! ASTMAC は定周期収集とイベント受信で現場を管理!!

(21)

2.3.2.

オブジェクトビルダでの設定

オブジェクトビルダでの設定

オブジェクトビルダでの設定

オブジェクトビルダでの設定

⑥ ⑥⑥

⑥ I/OI/OI/O オブジェクトの登録I/Oオブジェクトの登録オブジェクトの登録オブジェクトの登録

I/O オブジェクトに関しては基礎編と同様に登録します。 オブジェクト名:装置 A

タイプ:FA-M3-Ethernet

ホスト名:192.168.1.1 これ以外はデフォルトでかまいません。

(22)

⑦ ⑦⑦ ⑦ コントロールオブジェクトの登録コントロールオブジェクトの登録コントロールオブジェクトの登録コントロールオブジェクトの登録 コントロールオブジェクトは2つ登録します。 まず,MainGroup に PLC からのイベント受信用に TXT オブジェクトを登録します。 EVENT_R の詳細設定は以下のとおりです。 コメントを入力します。 FA-M3 から非同期イベントを受信する 際のキーワードです。 EVENT とキーボードから入力します。 非同期を選択します。 受信するバイト数=16 にします。 非同期の場合は無視されます

(23)

次にシグナル交信オブジェクトを登録します。 クラスを「アプリケーション支援」とし,タイプを「SG」とします。 OK ボタンを押し,続いて表示される[全般タブ]のコメントを「AP へシグナル送信」と入力し OK ボタンを押します。 他のタブはデフォルトとします。この後保存を行い(プロジェクトの名前は「イベント送信」とします), 動作モードをデバッグに変更します。 ⑧ ⑧⑧ ⑧ VBAVBAVBAVBA

2つのコントロールオブジェクトは登録されましたが,このままでは何の関連もないオブジェクトが2 つ存在するだけです。TXT オブジェクトがイベントを受信したら,SG オブジェクトがアプリケーショ ンフォームの SG オブジェクトにイベントを送信するようにコードを追加します。

左上のコンボボックスで「EVENT_R」を選択すると,以下のプロシージャが表示されますので,以下 の 2 行を追加します。

On Error Resume Next On Error Resume NextOn Error Resume Next On Error Resume Next

SIGNAL_S.SendSignal SIGNAL_S.SendSignal SIGNAL_S.SendSignal

SIGNAL_S.SendSignal “”“”“”, “”, , ””””SIG_RCV, SIG_RCVSIG_RCVSIG_RCV””””, EVENT_R.Cv, EVENT_R.Cv, EVENT_R.Cv, EVENT_R.Cv

コードウインドウが表示されていなかった ら,MainGroup をダブルクリックします。

EVENT_R を選択します。

デバッグモードに変更する と VBE 画面になります。

(24)

「On Error Resume Next」は「実行時にエラーが発生しても次のコードを実行しなさい」という命令 です。 以上でオブジェクトビルダの作業は終了です。 PLC からのイベントは TXT オブジェクト:EVENT_R の Cv 値 に格納されるので,受信すると Cv 値に変化があり,このプロ シージャ」が呼び出されます。 送信 先 シ グナ ル 交 信 オ ブジ ェ ク ト 「SignalName」プロパティの値 送信内容 SIGNAL_S はシグナル交信オブジェクトなので,SendSignal メソッドを使って,アプリケーションフォームにイベントを送信し ます。(SendSignal メソッドはタスク間通信の実習を参照) Node は空欄 動作モードをデバッグに変更すると VBE が表示されます。 コードウインドウが表示されない場合は 「MainGroup」をダブルクリックします。

(25)

2.3.3.

グラフィックビルダの設定

グラフィックビルダの設定

グラフィックビルダの設定

グラフィックビルダの設定

コントロールを貼り付ける。 コントロールを貼り付ける。コントロールを貼り付ける。 コントロールを貼り付ける。 新規プロジェクトの Page 上に「シグナル交信オブジェクト」とイベント内容表示用のラベルコントロ ールを貼り付けます。 ⑨ ⑨⑨ ⑨ コードの編集コードの編集コードの編集コードの編集 コードウインドウで以下のプロシージャに 1 行追加します。タスク間通信の実習では受信結果をテキス トボックスに表示しましたが,今回はラベルに表示します。

Private Sub YfsSignal1_SignalReceive(Data As Variant) Private Sub YfsSignal1_SignalReceive(Data As Variant) Private Sub YfsSignal1_SignalReceive(Data As Variant) Private Sub YfsSignal1_SignalReceive(Data As Variant) Label1.Caption = Data Label1.Caption = Data Label1.Caption = Data Label1.Caption = Data ←←← 1← 1 1 行追加 1行追加行追加行追加 End Sub End Sub End Sub End Sub 作業はこれで終了です。保存しておいてください。(プロジェクト名は「イベント受信」とします)

2.3.4.

動作確認

動作確認

動作確認

動作確認

実習の最初にも書きましたが,今回は PLC を接続しませんので,PLC からのイベントを受信したとし て,直接に TXT オブジェクト(EVENT_R)の Cv 値を変更します。 まず,グラフィックビルダの実行ボタンをおして,作成した画面を表示しておきます。 シ グ ナ ル 交 信 オ ブ ジ ェ ク ト の SignalName プ ロ パ テ ィ を 「SIG_RCV」と入力します

(26)

⑩ データサーバ VBE 画面で EVENT_R の Cv プロパティを書き換えます。これがイベント受信にな ります。書き換えた瞬間にグラフィックビルダで作成した画面のラベルが同じ値に変更されることを 確認してください。

● ラベルオブジェクトとのプロパティリンク ●

ラベルオブジェクトとのプロパティリンク ●

ラベルオブジェクトとのプロパティリンク ●

ラベルオブジェクトとのプロパティリンク ●

こ の 例 題 を 作 成し て み て , あれ っ と 思 っ た方 も い ら っ しゃ る の で は ない で し ょ う か 。 EVENT_R.Cv の変化を,わざわざシグナル交信オブジェクトで送信しなくても,グラフィック ビルダで Label1.Caption とプロパティリンクをしておけば同じ動作となるはずです。しかし, ここで重要なのはイベントを受信するということなので,あえてシグナル交信オブジェクトを 使用しました。イベントを受信するということは,タイミング(キック)を得ることです。た とえば,そのタイミングでファイルへの書き込みを開始するとか,上位通信の処理を開始する とか,プログラムを発展させることができるのです。

(27)

3.

プロセス管理

プロセス管理

プロセス管理

プロセス管理

プロセス管理とはマルチタスクシステムにおいてタスクの起動・終了等を管理する機能をさします。 VB などの開発言語でシステムすべてを作成した場合,このようなタスクの起動・終了等を管理するプ ログラムが別途必要となりますが,ASTMAC は,自身の各種機能やユーザが任意に作成したアプリケ ーションプログラムなどの起動や終了を管理する機能を標準で持っています。 プロセス管理のツールは[システムランチャ]−[システム構成定義]のフォルダにまとめられていま す。

(28)

● プロセス

プロセス

プロセス

プロセス ●

プロセスというのは,独立して実行されるプログラムの単位です。これまでにも似たような用語(ア プリケーション,タスク,など)がありましたが,最も広義なプログラムを意味する言葉として考 えてください。そして,ASTMAC のプログラムは次のように分類されます。 起動 シ ャ ッ ト ダ ウ ン ユーザプロセス システムオプション プロセス モード変更 (操業 or 開発 or シャットダウン) I/O オブジェクトサーバ メッセージ管理サーバ プロセスマネージャ データサーバ 動作モード変更 ツール PC 電源 ON ログオン ↓ 起動ファイル参照 起動 その中心となるのが基本システムプロセスの「プロセスマネージャ」です。「プロセスマネージャ」 は PC のスタートアップ時に自動起動され他のプロセスの起動・終了を管理しています。「プロセ スマネージャが動作している=ASTMAC が動作している。」とも言えます。 ASTMAC が動作している状態には,開発モードと操業モードがありました。このモードは動作し ているプロセスの違いです。開発モードというのはプロセスマネージャとメッセージ管理サーバの みが起動されているモードです。操業モードはすべてのプロセスが起動可能な状態です。 ・プロセスマネージャ ・データサーバ ・I/O オブジェクトサーバ ・メッセージ管理サーバ 基本システムプロセス ・SIM ジェネレータ ・ヒストリ収集 ・レポート管理 などオプションパッケージのプロセス システムオプションプロセス ユーザプロセス ユーザが作成した 画面など 起動 起動 起動

(29)

3.1

実行ファイル設定

実行ファイル設定

実行ファイル設定

実行ファイル設定

3.1.1.

機能

機能

機能

機能

「実行ファイル設定」はシステムの立ち上がり時に使用するデータサーバとメッセージ管理サーバを指 定します。 開発モードの場合,オブジェクトビルダを起動させるとここで指定されたファイル(ワークスペースフ ァイル)が開きます。もちろん,他のワークスペースで作業を行いたいのであれば,オブジェクトビル ダから他のワークスペースを開く事が可能です。しかし,一旦終了し,再度オブジェクトビルダを起動 した場合は,また「実行ファイル設定」で指定されたファイルが開き,最後に作業したワークスペース が開かれるわけではありません。このように,起動時のデフォルトとなるファイルを指定するのが「実 行ファイル設定」なのです。メッセージ管理サーバについても同様です。メッセージビルダの起動時フ ァイルを指定しています。 操業モードの場合は,ビルダが起動しませんので,実行中にワークスペースやメッセージ定義ファイル を変更する事ができません。つまり,操業モードで PC を起動した場合は,実行ファイルの設定が操業 用のそれとなるわけです。

3.1.2.

設定手順

設定手順

設定手順

設定手順

実際に「実行ファイル設定」を行ってみましょう。 [システムランチャ]→[システム構成定義]→[実行ファイル設定]の順に開いて,起動してくださ い。 ①通常はデフォルトでかまいません。 データサーバ,メッセージ管理サーバ はこのフォルダ内に保存されます ②▼を押すとデータサーバ,メッセー ジ管理サーバが選択可能です。 ③▼を押すとデータサーバはワークス ペースファイルの一覧が,メッセージ管 理サーバはメッセージ定義ファイルの一 覧が表示されますので,選択します。 フォルダを参照する場合 ④ ⑤

(30)

まず,①2つのサーバの保存フォルダを指定します。デフォルトはインストール時に決められています が,新規に作成してもかまいません。その際は横の [...]を押します。 ②[データサーバ定義ファイル]を選択します。 ③ワークスペース一覧から「Y 流量.odw」を選択し,④[設定]を押します。 同様に,②で[メッセージ定義ファイル]を選択し,③で「usermsg.ymg」を選択します。このファイ ルは ASTMAC のデフォルトのメッセージ定義ファイルです。④[設定]を押してから,⑤[終了]を 押して終了です。 オブジェクトビルダを起動すると,「Y 流量」のワークスペースが開かれるはずです。確認してくださ い。

3.2

プロセスコンフィギュレータ

プロセスコンフィギュレータ

プロセスコンフィギュレータ

プロセスコンフィギュレータ

3.2.1.

機能

機能

機能

機能

プロセスコンフィギュレータはプロセスの起動する・しない,する場合の条件等について設定するツー ルです。先のコラムで登場した「プロセスマネージャ」が参照するファイルを作成するツールでもあり ます。 プロセスコンフィギュレータが対象とするのは,ユーザプロセスとシステムオプションプロセスです。 ASTMAC が正常に動作するために最低限必要とするプロセス(=基本システムプロセス)については 操作できません。 また,条件を設定できるのはユーザプロセスのみで,システムオプションプロセスは「起動する/しな い」のみの設定です。

(31)

3.2.2.

設定手順

設定手順

設定手順

設定手順

① ①① ① システムオプションシステムオプションシステムオプションシステムオプション [システムランチャ]→[システム構成定義]→[プロセスコンフィギュレータ]の順に開き,起動し ます。 起動直後はユーザプロセスの設定画面です。 メニューの[オプション(O)]を選択すると,[ユーザプロセス(U)]か[システムオプション(S)] をチェックできますので,まず,[システムオプション]を選択します。 機能のところでも書きましたが,システムオプションでは起動順や起動パラメータなどの条件設定はで きません。 ⑪ ⑪⑪ ⑪ ユーザプロセスユーザプロセスユーザプロセスユーザプロセス ユーザプロセスとはグラフィックビルダで作成した実行ファイルなどです。(他のツールで作成したも のでも,実行ファイル=.exe 形式 であれば登録可能です。) 単体で実行させるには,ビルダのデバッ グ機能を使用したり,フォルダからダブルクリックで実行したりすれば良かったのですが,操業モード で実行するとなると,必ずここで登録してプロセスマネージャに呼び出してもらわなければなりません。 登録手順と,起動時条件を見てみましょう。 ここに選択されたプロセスの種類が表示されます。 起動するプロセスを選択してチェックを付けます。 起動フラグを変更 したら,押します。 ファイル名からでは何のプログラムか分 かりづらい場合は,参考にします。

(32)

新規の場合は項目を設定して,[追加]を押します。 変更や削除は対象となるプロセスを選択してから,内容を変えて,[変更][削除]とします。 ⑫ ⑫⑫ ⑫ その他の機能その他の機能その他の機能その他の機能 メニューの[ファイル(F)]に印刷があります。表示されているオプション(ユーザプロセス or シ ステムオプション)のみ印刷されます。 また,メニューの[オプション(O)]に[ASTMAC システム(A)]があります。 ここでは ASTMAC 自体が,ユーザログオン後からどれくらいで起動するかと,開発モード時にオブジ ェクトビルダを自動起動するかを設定します。 プロセスコンフィギュレータの設定は最終的に終了するときにファイルに保存され,次回立ち上げ時か ら有効になります。 プ ロ セ ス の 起 動順番です。 1000 ~ 9999 ま で 使 用 で き ます。 起動フラグです。登録してもチェック されていないと起動しません。 実行ファイル名を フルパスで入力 起動時のウィンドウの 状態 Normal:通常 MINIMIZE::アイコン化 HIDE:表示なし このプログラムが起動 してから,次のプログラ ムが起動するまでの時 間(単位は秒) -1にすると次のプロ グラムは,このプログラ ムが終了しないと起動 できません。 固定 ファイル名からは分かり づらいの で,なるべく 入 力します。

(33)

●イベント送信サービス設定方法 ●

●イベント送信サービス設定方法 ●

●イベント送信サービス設定方法 ●

●イベント送信サービス設定方法 ●

FA-M3 の直接指定でイベントを送信する例を示します。 例) Ethernet モジュールの実装スロット:6 パソコンの IP アドレス:192.168.1.201 ($C0A801C9 ) I/ O オブジェクトのポート番号:12306 ($3012 ) プロトコル種別:UDP/IP ($0000 ) 送信方法:直接指定($0000 ) レスポンス監視時間:5 秒($0164 ) イベントデータ:「ABC 」(3 バイト)

(34)
(35)

◆Technical Information 改版履歴

資料名称:ASTMAC 入門書(応用編) 資料番号:TI 34P02K11-02 `01年 03 月/初版/R3.01 以降* 新規発行 *Technical Information 記載内容と対応しているソフトウェアのリリース番号。対応する範囲は次の改訂版が発 行されるまで。 著作者 横河電機株式会社 システム事業部オープンシステム部 発行者 横河電機株式会社 〒180-8750 東京都武蔵野市中町 2-9-32

参照

関連したドキュメント

1-1 睡眠習慣データの基礎集計 ……… p.4-p.9 1-2 学習習慣データの基礎集計 ……… p.10-p.12 1-3 デジタル機器の活用習慣データの基礎集計………

Scival Topic Prominence

③ 新産業ビジョン岸和田本編の 24 ページ、25 ページについて、説明文の最終段落に経営 者の年齢別に分析した説明があり、本件が今回の新ビジョンの中で謳うデジタル化の

'BOM for Windows Ver.8.0 インストールマニュアル'では、BOM for Windows

編﹁新しき命﹂の最後の一節である︒この作品は弥生子が次男︵茂吉

※証明書のご利用は、証明書取得時に Windows ログオンを行っていた Windows アカウントでのみ 可能となります。それ以外の

〇齋藤会長代理 ありがとうございました。.

添付資料-4-2 燃料取り出し用カバーの構造強度及び耐震性に関する説明書 ※3 添付資料-4-3