 |
|
 |
| bopはGEM開発支援ソフトです。短期間・低価格でGEM準拠の通信ソフトを作成することができます。ユーザ側で機能追加することによりGEM300にも対応可能です。 |
 |
 |
| bopは10万円〜という低価格です。他社製品と比べると、1/4程度のコストで済みます。 |
 |
 |
ソースコードが簡潔であれば、当然ながら開発期間が短縮されます。それにより人件費が削減され、開発資金額を安く抑えることができます。以下のソースコードは、Visual
basic 6.0を使って作成したサンプルプログラムの全ソースコードです。
Option
Explict
Private
Sub Bop1_Received(ByVal lpszIPAddress As String, ByVal
lPortNumber As Long)
Bop1.DefProc
End Sub
Private
Sub Command1_Click()
Bop1.Configure "", -1
End Sub
Private
Sub Invoke_Click()
If Invoke.Value = 1 Then
Bop1.InvokeAlarm 30000, -1
Else
Bop1.InvokeAlarm 30000, 0
End If
End Sub
Private
Sub Placed_Click()
Bop1.VIDValue(40) = CarrierID.Text
If Placed.Value = 1 Then
Bop1.InvokeEvent 200
Else
Bop1.InvokeEvent 201
End If
End Sub
|
 |
 |
 |
 |
例えば以下のようなメッセージを作成することを考えてみます。
S1F3W
<L
<U4 5> * Control State
<U4 17> * Process State
>.
これをbopやswingを用いて記述すると、以下のようになります。
msg.SetList(
"S1F3W"
"<L"
"<U 4>" // Control State
"<U 17>" // Process State
">"
);
某社製品では以下のようになります。これでは何が書いてあるのかさっぱり分からず、
プログラムを「読解」しなければなりません。
このような状況だと容易にバグが発生します。
言うまでもありませんが、ソースコードが簡潔であれば開発期間を短縮でき、バグも減ります。
unsigned long lParamU4;
Emesg.stream = 1;
Emesg.length = sizeof(EMsgBuffer);
 Emesg.buffer = EMsgBuffer;
 SdrItemInitO( &Emesg );
// Select Equipment Status Req
if ( SdrItemOutput( &Emesg, S2_L, NULL, (SDRLENGTH)2 ) < 0
)
return false;
ParamU4 = 5; // SV : 5 Control state
if ( SdrItemOutput( &Emesg, S2_U4, &ParamU4, (SDRLENGTH)1 ) < 0 )
return false;
ParamU4 = 17; // SV : 17 Process state
if ( SdrItemOutput( &Emesg, S2_U4, &ParamU4, (SDRLENGTH)1 ) < 0 )
return false;
SdrRequest(SdrIdEqp, &Emesg, &Etkx);
UpdateEqpSECS();
return true;
|
| 最新のMicrosoft Visual Studio .Net (ビジュアル・スタジオ・ドットネット)にも対応しています。 |
| GEM準拠 |
| GEMの基本条件 |
性能の有無 |
GEMへの準拠 |
| 状態モデル |
R 有り
|
□ 無し
|
|
□ 無し |
| 装置プロセス状態 |
R 有り |
□ 無し |
| ホストが開始するS1F13/F14シナリオ |
R 有り |
□ 無し |
| イベント通知 |
R 有り |
□ 無し |
| オンライン確認 |
R 有り |
□ 無し |
| エラーメッセージ |
R 有り |
□ 無し |
| コントロール(オペレータ起動) |
R 有り |
□ 無し |
| 文書化 |
R 有り |
□ 無し |
| 追加性能 |
性能の有無 |
GEMへの準拠 |
| 通信確立 |
R 有り |
□ 無し |
R 有り
|
□ 無し
|
| 動的イベントレポート設定変更 |
R 有り |
□ 無し |
R 有り
|
□ 無し
|
| 変数データ収集 |
□ 有り |
R 無し |
□ 有り |
□ 無し |
| トレースデータ収集 |
□ 有り |
R 無し |
□ 有り
|
□ 無し
|
| 状態データ収集 |
R 有り
|
□ 無し
|
R 有り
|
□ 無し
|
| アラーム管理 |
R 有り
|
□ 無し
|
R 有り
|
□ 無し
|
| リモートコントロール |
R 有り
|
□ 無し
|
R 有り
|
□ 無し
|
| 装置定数 |
R 有り
|
□ 無し
|
R 有り
|
□ 無し
|
| プロセスプログラム管理 |
□ 有り
|
R 無し
|
□ 有り
|
□ 無し
|
| 材料移送 |
□ 有り
|
R 無し
|
□ 有り
|
□ 無し
|
| 装置端末サービス |
□ 有り
|
R 無し
|
□ 有り
|
□ 無し
|
| クロック |
R 有り
|
□ 無し
|
R 有り
|
□ 無し
|
| リミット監視 |
□ 有り
|
R 無し
|
□ 有り
|
□ 無し
|
| スプーリング |
□ 有り
|
R 無し
|
□ 有り
|
□ 無し
|
| コントロール(ホスト起動) |
R 有り
|
□ 無し
|
R 有り
|
□ 無し
|
|
 |