サービス&サポート


VBA Sample - アラーム認識にタグ・セキュリティ・チェックを追加する方法

このテクニカルノートの情報は、以下に該当します:

製品:RSView32タイプ:アプリケーションノート
テクニカルノートID:A1472JA
パッケージ/モジュール:Runtime
Works
英文版作成日:2000/12/01
リビジョン:6.20.49
修正リビジョン:
サブシステム: Alarming
Security
Visual Basic for Applications

テクニカルノート本文:

背景:
タグにセキュリティコードを割当てることにより、オペレータによるタグへの書込みがブロックされます。適切なセキュリティ権限を持たないオペレータは、現在のタグ値を読取り、タグのアラームを認識することしかできません。以下の例は、Visual Basic for Applicationsを使用して、ログインユーザのセキュリティ権限に基づいて特定のタグのアラーム認識をブロックする方法を示します。

この例を実行するための要件
アラームサマリでカスタム機能を構成できるのは、IdentifyおよびExecuteという2つのボタンだけです。他のすべてのボタンは、予約された機能を実行するため、機能をカスタマイズできません。アラームの認識動作を変更するには、まず最初にAlm Ack, Ack Page, およびAck Allボタンを無効にします。この例では、Executeボタンを構成して、アラーム認識を実行します。

Executeボタンを構成して、アラームサマリで選択されているタグの名前を渡します。これを行なうには、DataメニューでExecuteを選択して、Tagnameパラメータを選択します。この例では、Alarm Executeボタンコマンドは、以下のように表示されます。

VBAExec AlarmAck Tagname

Tagnameは、選択されたタグの名前であることをExecuteコマンドが実行時に解析するための予約名であり、以下のVBAコードに必要なパラメータです。

RSView32 6.20では、すべてのアラーム・サマリ・ボタンのフェーステキストをカスタマイズできます。ボタンのフェーステキストをカスタマイズするには、アラームサマリを編集して、Executeボタンをダブルクリックします。ExecuteボタンのフェーステキストをAcknowledgeに変更します。

VBAコード例

Sub AlarmAck (sTagname As String)
Dim oTag As Tag
Dim sCode As String
On Error GoTo ErrHandler

' For this example a tag object is not needed, however this statement provides
' a way to assure the passed-in parameter is really a valid tag name
Set oTag = gTagDb.GetTag(sTagname)
'Check for no security on tag object prior to check for user has permission
sCode = gSecurity.GetSecurityCode(sTagname, roSecurityObjectTag)
If sCode = "*" Then
   gCommand.Execute "Acknowledge " & sTagname, roNoWait
ElseIf gSecurity.CurrentUserHasPermissionFor (sTagname, roSecurityObjectTag) Then
   gCommand.Execute "Acknowledge " & sTagname, roNoWait
Else
   gActivity.Log "Insufficient security to acknowledge " & sTagname
End If
' Fall through to error handler regardless and clean up all objects
ErrHandler:
   If Err.Number Then
      gActivity.Log Err.Description & " " & Err.Number
      Err.Clear
   End If
Set oTag = Nothing
End Sub


Alarm Identifyの別の方法
同じ例をIdentifyボタンにも使用できますが、各タグのアラーム構成をマッピングして、VBAコードを実行しなければなりません。例えば、Alarm Identifyコマンドは、以下のとおりです。

VBAExec AlarmAck Tag1

Tag1は、対応するアラーム構成用のタグの名前に対してハードコードされています。どのような方法を選択しても、このVBAコードは同じです。

RSView32 Active Displayについて
クライアント/サーバ環境では、この例は異なる動作をします。VBAコードはサーバ上で実行されるため、セキュリティチェックはクライアントのユーザログインに対してではなく、サーバのユーザログインに対して行なわれます。

アラームにセキュリティチェックを提供して、RSView32およびRSView32 Active Display Systemで制御する他の方法については、以下のサポート・ライブラリ・ドキュメントを参照してください。

A1415JA - RSView32 Active Display SystemのActiveXコントロール:ボタンへのRSView32セキュリティの追加、現在のユーザの表示

A1573JA - RSView32 Active Displayクライアント上で外部アプリケーションがユーザのセキュリティ情報にアクセスする方法


法的な注意事項:
本版は、英文テクニカルノートの和訳です。英文原文を正文といたします。
ロックウェル・ソフトウェア(RSI) のサポートライブラリに記載された情報は、いかなる保証もなく「そのままで」提供されます。RSI は、明示または暗示されたいかなる保証も負いません。また、RSI がそのような損害の可能性を忠告していた場合でも、直接、間接、偶発的、必然的な利益の損失または損害を含むいかなる損害についても、RSI は責任を負いません。
©2000 Rockwell Software Inc. All rights reserved.