SECS/GEMを装置やツールに追加する

この短い記事では、Visual C#を使用してSecsToHost.Netを機器アプリケーションソフトウェアに統合する方法を紹介します。.

機器コントローラにSECS/GEM機能を追加することは、複雑である必要はありません。SECS/GEMは SecsToHost.Net, つまり、3つの簡単なステップ(最小限のコーディングで)を踏めば、1時間もかからずに達成できるということだ!

ステップ#1 - ダイナミックコンフィグレーション

モデルビルダ(SDK に付属)を使用して、装置のパラメータ(ステータス変数、ディスクリート変数、装置定数 / 設定など)、イベント、アラーム、リモート / ホストコマンドなどを追加または定義します。.

GEMデータ項目はいくつでも追加でき、これらの設定はEquipmentTemplate.xmlファイルに保存されます。(ファイル名は変更可能)

この記事の例に従うには、これらのGEMデータ項目を定義する必要があります:

1.

ステータス変数:"圧力 "と "温度 "を追加"

2.

CEID:"SensorDataChanged "を追加。"

3.

アラーム:"Alarm1 "を追加"

すべてのGEMデータ項目IDは自動的に生成される

ステップ#2 - SecsToHost.Net DLLをアプリケーションに統合する

ステップ1で必要なGEMデータ項目をすべて定義したら、これらのDLLをプロジェクトリファレンスに追加します。.

ステップ 1 で生成した EquipmentTemplate.xml で GEMController オブジェクトを初期化します。.

				
					private GEMController gemController;

private void InitializeSecsToHost() { GEMController = new GEMController(); gemController = new GEMController()
    gemController = new GEMController();
    
    try {
        // 通信状態の遷移イベントを購読します
        gemController.CommunicationStateChanged += OnCommunicationStateChanged;
        
        // GEMコントロールの状態遷移イベントを購読する
        gemController.ControlStateChanged += OnControlStateChanged;
        
        // Hostから送信されたGEMリモートコマンドを受信します (S2F21, S2F41, S2F49)
        gemController.RemoteCommandIn += OnRemoteCommandIn;
        
        // GEM Recipe Download Inquireを受信する(S7F1)
        gemController.RecipeDownloadInquired += OnRecipeDownloadInquired;
        
        // Hostから送信されたGEMレシピダウンロード(S7F3)を受信する
        gemController.RecipeDownloadReceived += OnRecipeDownloadReceived;
        
        // GEM レシピのアップロードリクエストを受信します (S7F5)
        gemController.RecipeUploadRequested += OnRecipeUploadRequested;
        
        // Hostから送信されたGEM Terminal Message(S10F3)を受信します。
        gemController.TerminalMessageReceived += OnTerminalMessageReceived;
        
        // GEM Controller を初期化します。
        gemController.Initialize("EquipmentTemplate.xml", @"C:¥EquipmentTemp");
    }
    catch (Exception ex) { {.
        Logger("Error: Failed to initialize SecsToHost.Net");
    }
}</xmp
				
			

上記のgemController.Initializeメソッドは、EquipmentTemplate.xmlファイルを取り込み、実行時にGEMデータアイテムをロードします。.

機器のパラメータ値が変更されるたびに、 gemController.SetAttribute メソッドをコールして値を更新します。.
例えば、パラメータ「圧力」と「温度」を更新します:

				
					//SVIDを更新:Pressure
gemController.SetAttribute("Pressure", AttributeType.SV, "89");

// SVID:温度を更新
gemController.SetAttribute("Temperature", AttributeType.SV, "122.8");.
				
			
イベント通知をホストに送信する:
				
					//ホストに対してCEID: SensorDataChangedイベント通知を行う
gemController.SendCollectionEvent("SensorDataChanged");。
				
			

ホストにアラームを発生またはアラーム通知を消去する:

				
					// Raise ALID: Alarm1: アラームセット通知をホストに送信する
gemController.SetAlarm("Alarm1");

// ALID: Alarm1 をクリアする: ホストにアラームクリア通知を送信する
gemController.ClearAlarm("Alarm1");。
				
			
Hostからレシピのダウンロードを受け取るには、まずRecipeDownloadReceivedコールバックを購読します:
				
					//ホストから送信されたGEMレシピダウンロード(S7F3)を購読する
gemController.RecipeDownloadReceived += OnRecipeDownloadReceived; </xmp
				
			

OnRecipeDownloadReceivedイベントハンドラでrecipeIdとrecipeBodyパラメータを取得します:

				
					private void OnRecipeDownloadReceived(object sender, RecipeEventArgs e) { 次のようにします。
    string recipeId = e.RecipeId;
    byte[] binPPBody = e.GetRecipeBody();
    
    // ホストに S7F4 ack を送信する。
    e.SetReply(ACKC7.Accepted);
}</xmp
				
			

ステップ#3 - SWIFTシミュレータでGEMアプリケーションをテストする

SWIFTシミュレータは、SDKに付属するもう一つのユーティリティで、HOSTのシミュレーションに使用できます。.

SWIFT シミュレータを HOST として実行し、新しく作成した GEM アプリケーションをテストします:

GEMアプリケーションがこれらのコードを呼び出したら:

				
					//SVIDを更新:Pressure
gemController.SetAttribute("Pressure", AttributeType.SV, "89");

// SVID:温度を更新
gemController.SetAttribute("Temperature", AttributeType.SV, "122.8");.
				
			

SWIFTシミュレータで、“圧力(SVID: 1016) ”と “温度(SVID: 1017) ”の値を問い合わせるためにS1F3を送信すると、GEMControllerはシームレスにS1F4を返信します。.

カテゴリー
ソーシャル

信じられない
そしてモダン
デザイン

特に技術&ソフトウェア開発会社のウェブサイトのために作られた現代的なテーマ。Deon、WPデザインの新時代。.