DeviceXPlorer OPC Server ユーザーズガイド (サーバー本体編) Revision 011 September 2014 本書に対する注意事項 (1) 本製品の操作は、本書をよく読んで内容を理解した後に行ってください。 (2) 本書は、本製品の機能詳細を説明するものであり、お客様の特定目的に適合することを保証するものではありません。 (3) 本書の一部または全部を、無断で転載、複製することは固くお断りします。 (4) 本書の内容については、将来予告なしに変更することがあります。 (5) 本書の記載内容は、プログラムバージョン 5.2.0.1 以降で有効です。 本製品の免責について (1) 弊社は、保証条項に定める場合を除き、本製品に関して如何なる保証も行いません。 (2) 本製品の使用により、お客様または第三者が損害を被った場合、あるいは弊社の予測できない本製品の欠陥などのため、 お客様または第三者が被った損害及び如何なる間接的損害に対しても、弊社は責任を負いかねますのでご了承ください。 本ソフトウェアについて (1) 本ソフトウェアは、特定の 1 台の PC にインストールしてご使用ください。 別の PC にインストールして、ご使用になる場合は別途ライセンスが必要です。 (2) 本ソフトウェアをバックアップの目的以外でコピーすることは、固くお断りいたします。 (3) 本ソフトウェアの収められている CD(メディア)は、大切に保管してください。 (4) 本ソフトウェアの逆コンパイル、逆アセンブルなどのリバースエンジニアリングを行うことは、固くお断りします。 (5) 本ソフトウェアを弊社の事前の承認なしに、その全部または一部を譲渡、交換、転貨などによって第三者に使用させることは、 固くお断りします。 (6) 本ソフトウェアの仕様は、将来予告なしに変更することがあります。 著作権について CD に含まれているプログラム及びオンラインマニュアルなどの著作権は株式会社たけびしに帰属します。CD に含まれる内容 をコピーすること及び第三者に譲渡、販売、頒布(パソコン通信のネットワークを通じて通信により提供することを含みます)するこ とを禁止します。また、無断でビデオテープその他に登録、録画することも禁止します。 商標について 本書に記載しているすべての会社名、製品名及び商標は、それぞれの所有者に属します。 -2- はじめに...............................................................................................................................................................................................8 1.1 概要 ............................................................................................................................................................................................8 1.2 特長 ............................................................................................................................................................................................8 1.3 アプリケーション間通信プロトコル ...........................................................................................................................................9 1.4 ライセンス ..................................................................................................................................................................................9 2 構成................................................................................................................................................................................................... 10 2.1 システム構成 .......................................................................................................................................................................... 10 2.2 動作環境 ..................................................................................................................................................................................11 2.3 対応機種 ................................................................................................................................................................................. 12 3 インストール ..................................................................................................................................................................................... 14 3.1 インストール手順.................................................................................................................................................................... 14 3.2 インストールファイル.............................................................................................................................................................. 18 3.3 アンインストール手順 ............................................................................................................................................................ 19 3.4 ライセンス認証 ....................................................................................................................................................................... 20 3.4.1 シリアル番号 ................................................................................................................................................................. 20 3.4.2 ソフトウェアキー(ライセンスコード) ............................................................................................................................ 20 3.4.3 ハードウェアキー .......................................................................................................................................................... 20 3.4.4 ライセンス状況とアプリケーション動作....................................................................................................................... 20 3.4.5 ライセンスの登録/転送方法 ...................................................................................................................................... 21 3.4.5.1 ライセンスアクティベーション .............................................................................................................................. 22 3.4.5.2 ライセンスの転送................................................................................................................................................. 23 3.4.5.3 ライセンスの変更................................................................................................................................................. 25 3.4.5.4 ライセンスの認証解除......................................................................................................................................... 25 3.4.5.5 ライブラリ情報 ...................................................................................................................................................... 25 3.4.6 リモートデスクトップ接続利用時の注意事項 .............................................................................................................. 26 3.5 エンタープライズライセンスとスタンダードライセンスの違い ............................................................................................ 27 3.6 デモ版...................................................................................................................................................................................... 27 3.7 非管理者権限利用時の注意事項.......................................................................................................................................... 27 3.8 64 ビット版使用時の注意事項............................................................................................................................................... 27 3.9 OPC UA 環境のセットアップ ................................................................................................................................................ 28 3.9.1 OpcUaEnv のインストール ......................................................................................................................................... 28 3.9.1 OpcUaEnv のアンインストール.................................................................................................................................. 30 4 一般性能仕様 ................................................................................................................................................................................... 31 4.1 諸元表 ..................................................................................................................................................................................... 31 4.2 OPC DA インターフェイス..................................................................................................................................................... 32 4.2.1 Prog.ID.......................................................................................................................................................................... 32 4.2.2 アイテム ID ................................................................................................................................................................... 32 4.2.3 アクセスパス.................................................................................................................................................................. 33 4.2.4 OPC カスタムインターフェイス .................................................................................................................................... 34 4.2.5 OPC オートメーションインターフェイス ....................................................................................................................... 37 4.2.6 品質フラグ...................................................................................................................................................................... 37 4.2.7 エラーコード................................................................................................................................................................... 38 4.3 OPC A&E インターフェイス.................................................................................................................................................. 40 4.3.1 Prog.ID.......................................................................................................................................................................... 40 4.3.2 アイテム ID ................................................................................................................................................................... 40 4.3.3 対応インターフェイス .................................................................................................................................................... 41 4.4 OPC UA インターフェイス .................................................................................................................................................... 42 4.4.1 サービス......................................................................................................................................................................... 42 4.5 DDE/SuiteLink インターフェイス..................................................................................................................................... 43 4.5.1 アプリケーション名........................................................................................................................................................ 43 4.5.2 トピック名とアイテム名.................................................................................................................................................. 44 4.6 DxpLink インターフェイス .................................................................................................................................................... 45 1 -3- DxpLink サーバー設定 .............................................................................................................................................. 45 4.6.1 4.6.2 DxpLink 通信設定....................................................................................................................................................... 45 4.6.3 DxpLink 機能について ............................................................................................................................................... 46 4.6.4 DxpLink プロトコル仕様 ............................................................................................................................................. 47 4.6.4.1 デバイスの列挙(GetDevice)............................................................................................................................. 47 4.6.4.2 タグの列挙(GetTags) ........................................................................................................................................ 48 4.6.4.3 タグの現在値取得(GetTagsValue) .................................................................................................................. 49 4.6.4.4 タグの現在値書込(SetTagsValue)................................................................................................................... 50 4.6.4.5 定数....................................................................................................................................................................... 51 5 操作................................................................................................................................................................................................... 52 5.1 チュートリアル......................................................................................................................................................................... 52 5.1.1 Ethernet アダプターの装着・設定 .............................................................................................................................. 52 5.1.2 デバイスエクスプローラのインストール...................................................................................................................... 53 5.1.3 デバイスエクスプローラの起動 ................................................................................................................................... 53 5.1.4 スタートページ ............................................................................................................................................................... 53 5.1.5 プロジェクトウィザード .................................................................................................................................................. 54 5.1.6 クライアントからのアクセス.......................................................................................................................................... 57 5.2 画面レイアウト ........................................................................................................................................................................ 59 5.2.1 メニュー .......................................................................................................................................................................... 62 5.2.2 ツールバー .................................................................................................................................................................... 65 5.2.3 その他のショートカットキー .......................................................................................................................................... 66 5.2.4 プロパティグリッド ......................................................................................................................................................... 66 5.2.5 リストビューのクリップ .................................................................................................................................................. 66 5.3 ポート....................................................................................................................................................................................... 67 5.3.1 ポートの新規作成 ......................................................................................................................................................... 68 5.3.2 ポート名の変更 ............................................................................................................................................................. 69 5.3.3 ポート設定の編集 ......................................................................................................................................................... 70 5.3.4 Ethernet ポートの設定方法........................................................................................................................................ 72 5.3.4.1 TCP/IP 使用時のタイムアウト設定値 ............................................................................................................... 74 5.3.5 シリアルポートの設定方法........................................................................................................................................... 76 5.3.6 ポートジェネレーター .................................................................................................................................................... 77 5.3.7 ダイナミックポート ......................................................................................................................................................... 79 5.4 デバイス .................................................................................................................................................................................. 80 5.4.1 デバイスの新規作成..................................................................................................................................................... 81 5.4.1.1 ポート指定せずにデバイス作成......................................................................................................................... 81 5.4.1.2 ポート指定してデバイス作成 .............................................................................................................................. 82 5.4.1 接続テスト ...................................................................................................................................................................... 84 5.4.2 デバイス名の変更......................................................................................................................................................... 85 5.4.3 デバイス設定の編集..................................................................................................................................................... 85 5.4.4 デバイスオプション ....................................................................................................................................................... 86 5.4.5 ポートの変更方法 ......................................................................................................................................................... 88 5.4.6 デバイスジェネレーター ............................................................................................................................................... 89 5.4.7 ダイナミックデバイス..................................................................................................................................................... 91 5.5 グループ ................................................................................................................................................................................. 92 5.5.1 グループの新規作成 .................................................................................................................................................... 93 5.5.2 グループ名の変更 ........................................................................................................................................................ 94 5.5.3 グループ設定の編集 .................................................................................................................................................... 95 5.5.4 グループ設定の削除 .................................................................................................................................................... 96 5.6 デバイスフォルダー ............................................................................................................................................................... 97 5.6.1 デバイスフォルダーの新規作成.................................................................................................................................. 98 5.6.2 デバイスフォルダー名の変更...................................................................................................................................... 99 5.6.3 デバイスフォルダーの削除........................................................................................................................................ 100 -4- タグ ........................................................................................................................................................................................ 101 5.7 5.7.1 ダイナミックタグとスタティックタグ ............................................................................................................................. 101 5.7.2 タグの新規作成........................................................................................................................................................... 102 5.7.3 タグ名の変更方法....................................................................................................................................................... 103 5.7.4 プロパティ(一般) ........................................................................................................................................................ 104 5.7.5 プロパティ(スケール設定)......................................................................................................................................... 105 5.7.5.1 線形変換............................................................................................................................................................. 106 5.7.5.2 二乗根変換......................................................................................................................................................... 106 5.7.5.3 力率変換............................................................................................................................................................. 106 5.7.5.4 工学値の最小値、最大値などの変更............................................................................................................... 106 5.7.6 プロパティ(シミュレーション) ..................................................................................................................................... 107 5.7.7 プロパティ(アラーム) ................................................................................................................................................. 108 5.7.8 設定情報の保存 .......................................................................................................................................................... 109 5.7.9 タグの連続追加........................................................................................................................................................... 109 5.7.10 タグジェネレーター ................................................................................................................................................. 109 5.7.11 タグ名の拡張指定 ...................................................................................................................................................111 5.7.11.1 指定なし.............................................................................................................................................................. 112 5.7.11.2 ビット位置指定(:nn).......................................................................................................................................... 112 5.7.11.3 バイト型(:L、:LU、:H、:HU) ........................................................................................................................... 112 5.7.11.4 ワード型(:W、:U、:WU)................................................................................................................................... 112 5.7.11.5 ロング型(:D、:DU) ........................................................................................................................................... 112 5.7.11.6 ロングロング型(:I、:IU) ................................................................................................................................... 112 5.7.11.7 単精度実数型(:R) ............................................................................................................................................. 112 5.7.11.8 倍精度実数型(:DR).......................................................................................................................................... 112 5.7.11.9 BCD 型(:B)....................................................................................................................................................... 113 5.7.11.10 読出専用属性/書込専用属性(:OR、:OW)................................................................................................. 113 5.7.11.11 配列型(:A99999) ........................................................................................................................................... 113 5.7.11.12 文字列型(:S99999) ........................................................................................................................................ 113 5.7.11.13 ファイル一括書込(:F99999) ........................................................................................................................... 113 5.7.11.14 テキスト形式 2 進数型(:B99999) ................................................................................................................. 114 5.7.11.15 テキスト形式 8 進数型(:O99999) ................................................................................................................. 114 5.7.11.16 テキスト形式 10 進数型(:D99999)............................................................................................................... 114 5.7.11.17 テキスト形式 16 進数型(:H99999)............................................................................................................... 114 5.7.11.18 ビット反転(:V)................................................................................................................................................... 115 5.7.11.19 論理型変換(:BL) ............................................................................................................................................. 115 5.7.11.20 サインシミュレーション(:SS) .......................................................................................................................... 115 5.7.11.21 共有メモリシミュレーション(:SD) .................................................................................................................... 115 5.7.11.22 インクリメントシミュレーション(:SI) ................................................................................................................. 115 5.7.11.23 ランダムシミュレーションモード(:SR)............................................................................................................. 115 5.7.12 システムタグ ........................................................................................................................................................... 116 5.7.12.1 グローバルシステムタグ .................................................................................................................................. 116 5.7.12.2 デバイスシステムタグ ....................................................................................................................................... 118 5.7.12.3 コネクションシステムタグ .................................................................................................................................. 119 5.7.13 タグモニター............................................................................................................................................................ 120 5.7.13.1 デバイスモニター............................................................................................................................................... 121 5.7.13.2 キャッシュモニター............................................................................................................................................. 121 5.7.14 オフラインモード ..................................................................................................................................................... 122 5.7.15 タグへの値書き込み .............................................................................................................................................. 123 5.7.16 ウォッチ ................................................................................................................................................................... 124 5.7.17 配列ビューアー....................................................................................................................................................... 125 5.7.18 レジスターモニター................................................................................................................................................. 126 5.8 メソッドタグ ............................................................................................................................................................................ 129 -5- メソッドタグの作成....................................................................................................................................................... 129 5.8.1 5.8.2 スクリプトタグの実行 .................................................................................................................................................. 130 5.9 構造体タグ ............................................................................................................................................................................ 131 5.9.1 構造体テンプレートの定義......................................................................................................................................... 131 5.9.2 構造体タグの作成....................................................................................................................................................... 135 5.9.3 構造体タグにクライアントからアクセスする場合...................................................................................................... 137 5.10 ブリッジ ............................................................................................................................................................................. 138 5.10.1 ブリッジ設定............................................................................................................................................................ 138 5.11 メッセージ ......................................................................................................................................................................... 141 5.11.1 メッセージについて ................................................................................................................................................ 141 5.11.2 メッセージを自動ファイル保存する方法 ............................................................................................................... 144 5.12 診断................................................................................................................................................................................... 145 5.12.1 インターフェイス診断.............................................................................................................................................. 145 5.12.2 クライアント診断 ..................................................................................................................................................... 146 5.12.3 グループ診断.......................................................................................................................................................... 146 5.12.4 タグ診断 .................................................................................................................................................................. 147 5.12.5 イベント診断............................................................................................................................................................ 148 5.13 プロジェクト....................................................................................................................................................................... 149 5.13.1 共通プロパティ - 全般........................................................................................................................................ 150 5.13.2 共通プロパティ - OPC....................................................................................................................................... 152 5.13.3 共通プロパティ - DDE/SuiteLink ................................................................................................................... 153 5.13.4 共通プロパティ ― DxpLink ................................................................................................................................. 153 5.13.5 構成プロパティ - 全般........................................................................................................................................ 154 5.13.6 構成プロパティ - GUI ....................................................................................................................................... 156 5.13.7 構成プロパティ - ログ ........................................................................................................................................ 157 5.14 サービス起動 ................................................................................................................................................................... 158 5.14.1 サービス起動の登録方法...................................................................................................................................... 158 5.14.2 サービス起動時の設定変更方法 .......................................................................................................................... 160 5.14.3 サービス起動の解除方法...................................................................................................................................... 161 5.15 インポート/エクスポート ............................................................................................................................................... 162 5.15.1 インポート[定義情報] ............................................................................................................................................. 163 5.15.2 エクスポート[定義情報].......................................................................................................................................... 163 5.15.3 インポート[タグメモリ]............................................................................................................................................. 164 5.15.4 エクスポート[タグメモリ]......................................................................................................................................... 165 5.16 ホットコンフィグレーション ............................................................................................................................................... 166 5.17 二重化通信....................................................................................................................................................................... 167 5.17.1 ウォームスタンバイ ................................................................................................................................................ 168 5.17.2 コールドスタンバイ ................................................................................................................................................. 168 5.18 通信周期........................................................................................................................................................................... 168 5.19 スローポーリングモード .................................................................................................................................................. 169 5.20 ユーザー権限 .................................................................................................................................................................. 170 5.20.1 ユーザー権限の設定 ............................................................................................................................................. 170 5.20.2 設定項目一覧.......................................................................................................................................................... 171 5.20.3 起動時のユーザー権限の指定 ............................................................................................................................. 172 5.21 GUI 表示言語の動的切替え............................................................................................................................................... 173 5.22 DCOM 設定......................................................................................................................................................................... 174 5.22.1 概要 ......................................................................................................................................................................... 174 5.22.2 DCOM 構成設定........................................................................................................................................................ 176 5.22.3 ローカルセキュリティーポリシー設定................................................................................................................... 181 5.22.4 ファイアウォール設定 ............................................................................................................................................ 182 5.22.4.1 DeviceXPlorer OPC Server 5 および OpcEnum の例外設定................................................................. 183 5.22.4.2 DCOM ポート用の規則作成............................................................................................................................ 185 -6- クライアント PC にインストールが必要なファイル .............................................................................................. 187 5.22.5 5.23 クライアントアクセス方法 ................................................................................................................................................ 188 5.23.1 OPC DA クライアントからのアクセス方法............................................................................................................... 188 5.23.2 DDE クライアントからのアクセス方法...................................................................................................................... 189 5.23.2.1 Visual Basic 6.0 ................................................................................................................................................ 189 5.23.2.2 EXCEL .............................................................................................................................................................. 190 6 スクリプト ........................................................................................................................................................................................ 191 6.1 イベントスクリプト設定 ......................................................................................................................................................... 191 6.2 言語仕様 ............................................................................................................................................................................... 193 6.3 拡張仕様 ............................................................................................................................................................................... 193 6.3.1 予約語 .......................................................................................................................................................................... 193 6.3.2 定数 .............................................................................................................................................................................. 193 6.3.3 クラス............................................................................................................................................................................ 194 6.3.3.1 タグアクセスクラス............................................................................................................................................. 195 6.3.3.2 グループアクセスクラス .................................................................................................................................... 196 6.3.3.3 デバイスアクセスクラス..................................................................................................................................... 196 6.3.3.4 構造体アクセスクラス ........................................................................................................................................ 197 6.3.3.5 ポートアクセスクラス ......................................................................................................................................... 197 6.3.3.6 イベントスクリプトアクセスクラス ...................................................................................................................... 197 6.3.3.7 メソッドアクセスクラス........................................................................................................................................ 198 6.3.3.8 時刻クラス .......................................................................................................................................................... 198 6.3.4 関数 .............................................................................................................................................................................. 199 6.3.5 アクセスマクロ............................................................................................................................................................. 201 6.3.6 返されるオブジェクトの優先順位............................................................................................................................... 202 6.3.7 スクリプトの実行単位について .................................................................................................................................. 202 6.3.8 書込みについて .......................................................................................................................................................... 202 6.4 サンプル................................................................................................................................................................................ 203 6.4.1 基本的な処理の例 ...................................................................................................................................................... 203 6.4.2 簡易的な CSV ロギング ............................................................................................................................................. 204 6.4.3 外部ファイルにクラスを定義する例(ブリッジ) ......................................................................................................... 205 6.4.4 外部ファイルにクラスを定義する例(タイマー)......................................................................................................... 208 7 トラブルシューティング .................................................................................................................................................................. 210 7.1 エラーメッセージ................................................................................................................................................................... 210 7.1.1 Ethernet 接続における受信タイムアウトエラーの発生要因 ................................................................................. 210 7.1.2 Ethernet 使用時のエラーコード(Winsock エラーコード)...................................................................................... 211 7.1.3 シリアル使用時のエラーコード .................................................................................................................................. 211 8 付録................................................................................................................................................................................................. 212 8.1 OPC テストクライアントの使い方 ....................................................................................................................................... 212 8.2 サンプルプログラムについて.............................................................................................................................................. 212 8.3 ユーザーサポート ................................................................................................................................................................ 212 8.4 著作権情報 ........................................................................................................................................................................... 213 8.4.1 Scintilla ....................................................................................................................................................................... 213 8.4.2 Lua............................................................................................................................................................................... 213 8.4.3 tolua++........................................................................................................................................................................ 214 8.4.4 CGridListCtrlEx ....................................................................................................................................................... 214 -7- 1 はじめに 本書は、DeviceXPlorer OPC Server(以下、デバイスエクスプローラと略します)の操作方法について説明したものです。 通信対象機種に関する諸設定、操作方法、エラーコード等は「ユーザーズガイド(PLC 接続編)」をご覧ください。 1.1 概要 OPC(Ole for Process Control)は、製造業に携わる世界各国のハードウェア・ソフトウェアベンダーが OPC Foundation という 標準化団体に参加して、策定したアプリケーション間通信のインターフェイス仕様です。OPC には、フィールドデバイスと通信する ための OPC-DA インターフェイス、ヒストリカルデータにアクセスする OPC-HDA インターフェイス、アラームを監視するための OPC A&E インターフェイス、次世代情報インフラとして普及が進む SOAP/XML/Web サービスを基盤とした OPC の新仕様 OPC UA インターフェイス等があります。 デバイスエクスプローラは、OPC-DA、OPC A&E、OPC UA インターフェイスに対応した通信ソフトウェアで、PLC などの各種 機器との通信機能を提供しています。デバイスエクスプローラを使用することによって、ユーザーアプリケーションは、PLC タイプ や通信インターフェイスに依存することなく、PLC 等のフィールドデバイスにアクセスできるようになります。また、デバイスエクス プローラにアクセスするユーザーアプリケーション(以下、クライアントと略します)は、ローカル PC またはリモート PC に配置でき ますので、分散システムを構築することも可能になります。 1.2 特長 デバイスエクスプローラの主な特長は次の通りです。 ※ OPC コンプライアンステストに適合しています。 ※ 米国および日本国内の OPC 相互接続試験を通じて、世界各国のパッケージ製品との接続性を確認しています。 ※ OPC-DA2.05A / OPC-DA3.0 に対応しています。 ※ アラームおよびイベントを管理する OPC A&E 1.10 に対応しています。 ※ OPC 統合インターフェイスである OPC UA に対応しています。 ※ DDE インターフェイスに対応しています。 ※ Wonderware 社専用インターフェイスである SuiteLink インターフェイスに対応しています。 ※ デバイスエクスプローラ間での DxpLink という HTTP 通信に対応しています。 ※ 単一のサーバーで、Ethernet 通信やシリアル通信に対応しています。また、三菱電機 MELSEC、オムロン SYSMAC、ジ ェイテクト TOYOPUC 等、複数の PLC との通信に対応しています。 ※ 各種サンプルプログラムを製品に添付していますので、Visual Basic、VB.NET、EXCEL はじめ、Visual C/C++や C#.NET からも容易にアクセスすることができます。 ※ デバイスエクスプローラ内でスケール変換処理や BCD 変換処理を提供しますので、シーケンスプログラミングの手間を軽 減できます。 ※ PLC 側は Ethernet や RS232C などの通信ユニットの設定を行うだけでデバイスエクスプローラと通信することができ、デ バイスエクスプローラを使用するために余計なシーケンスプログラムを追加する必要はありません。 ※ PLCのデバイス名は、デバイスエクスプローラ内で別名を付けて事前定義しておくことが可能です。また、設定する手間を省 略するために定義しないでアクセスすることも可能です。 ※ Windows のサービスプログラムとして動作可能です。 ※ 冗長化通信に対応していますので、通信障害が発生した場合でも通信経路を自動的に切り替えて、通信を継続することがで きます。 ※ PLC を用意できない環境でも OPC クライアントを開発できるように、シミュレーション機能を搭載しています。 ※ スクリプト機能を搭載しており、ユーザーロジックを実行することができます。クライアント側や PLC 側に処理を組み込むこと ができない場合でも容易に対応できます。 -8- 1.3 アプリケーション間通信プロトコル デバイスエクスプローラは、上位アプリケーションと通信するために 5 種類のプロトコル(OPC、 DDE、 FastDDE、 NetDDE SuiteLink)に対応しています。 【OPC】 OPC は、Microsoft 社の OLE/COM テクノロジをベースにした標準仕様であり、産業アプリケーション、フィールドデバイス、ビジ ネスアプリケーション等の相互接続性を提供します。従来、アプリケーション開発者はフィールドデバイスにアクセスするために 独自のドライバを開発する必要がありましたが、OPC のインターフェイスを使用することで、HMI や SCADA、産業アプリケーシ ョンとフィールドデバイスとのシームレス通信と再利用が可能になりました。ネットワーク環境においては、DCOM(Distributed COM)を介してリモートコンピューティングを可能にします。 【OPC UA】 OPC-UA(Unified Architecture)は、 次世代情報インフラとして普及が進む SOAP/XML/Web サービスを基盤とした OPC の 新仕様です。既存仕様(DA,A&E,HDA)の統合に加え、情報モデルを定義することにより、 本格的なオブジェクトベースのデータ 交換が可能となります。OPC-UA の適用範囲はプラントフロア内に留まらず、より上位に位置する MES や ERP の領域にも適用 可能な、安全かつ安定したデータ交換を可能とします。 【DDE】 DDE は、Windows 環境での双方向通信を提供し、クライアントアプリケーションの要求に応じてサーバーアプリケーションがデ ータを提供するプロトコルです。 【SuiteLink】 SuiteLink は、Wonderware 社が開発した TCP/IP ベースのプロトコルです。TCP/IP を使うことによって通信の信頼性が増し、 さらに、現在値にタイムスタンプ、品質情報も付加されますので、信頼性の高いシステムを構築することができます。 【DxpLink】 当社専用通信プロトコルです。HTTP 通信の技術を利用しており、デバイスエクスプローラ間でのシームレスなデータの受け渡し が可能となります。 デバイスエクスプローラは DxpLink サーバー機能及び DxpLink クライアント機能、両方を備えています。 1.4 ライセンス デバイスエクスプローラは、インストールする PC 毎に 1 ライセンス必要になります。 1 台のデバイスエクスプローラでアクセスできる PLC 台数の上限は 255 台までとなります。 接続されるクライアント台数には制限はありません。 エンタープライズライセンスと、スタンダードライセンスの違いは 3.5 項を参照してください。 -9- 2 構成 2.1 システム構成 デバイスエクスプローラのシステム構成例を下図に示します。 ※ ※ ※ ※ ※ 単一サーバーで複数の機器との通信に対応しています。 各インターフェイスでアクセスできる開発言語は下表をご覧ください。 OPC DA 、A&E インターフェイスは DCOM を経由して別ノードからのリモート接続が可能です。 SuiteLink は TCP 通信、DxpLink は HTTP 通信、OPC UA は TCP/HTTP 通信によりリモート接続が可能です。 DxpLink 機能を用いて、デバイスエクスプロ―ラ間でデータ通信を行うことができます。 【開発言語対応表】 インターフェイス EXCEL VB6.0 VB.NET C#.NET VC++ ○ ○ DDE カスタムインターフェイス ○ OPC オートメーションインターフェイス ※1 ○ ○ ○ DA ○ ○ RCW ○ ○ ○ OPC UA ○ ○ ○ ○ OPC AE SuiteLink※2 デバイスエクスプローラ間の通信にのみ使用可能です。 DxpLink ※1 オートメーションインターフェイスは 64 ビット版 Windows に対応しておりません。 ※2 Suite Link 接続する場合は、Wonderware 社製品のインストールが必要です。 備考 デバイスエクスプローラには、OPC DA の各インターフェイスを使ったサンプルプログラムが添付されています。 - 10 - SCADA ○ ○ ○ ○ ○ 2.2 動作環境 デバイスエクスプローラは下表の環境で動作します。 項目 内容 コンピューター本体 Windows が動作するコンピューター Windows 8.1 ※1 ※2 Windows 8 ※1 ※2 Windows 7 ※1 ※2 Windows Vista SP2 以降 ※1 ※2 Windows Server 2012 R2 ※1 ※2 基本 OS Windows Server 2012 ※1 ※2 Windows Server 2008 R2 ※1 ※2 Windows Server 2008 SP2 以降 ※1 ※2 Windows Server 2003 R2 Windows Server 2003 SP2 以降 32 ビットアプリケーション (WIN32 / x86) アプリケーションタイプ 64 ビットアプリケーション (WIN64 / x64) ※1 ※3 メモリ 512MB 以上 ※4 ハードディスク 200MB 以上 ※5 ディスク装置 CD-ROM ドライブ LAN アダプター Windows 上で動作可能なアダプター ※1 DDE/SuiteLink インターフェイスは、64 ビット版デバイスエクスプローラでは対応しておりません。(2014 年 9 月現在) ※2 以下の接続方式は各社提供のライブラリを利用しており、対応 OS はそれぞれのライブラリの対応 OS に準じます。 ・MELSEC EZSocket 接続 / MELSEC GOT 接続 / MELSEC インターフェイスボード接続 ・SYSMAC FinsGateway 接続、SYSMAC SysmacGateway 接続、SYSMAC CX-Compolet 接続 ・TOYOPUC CPU ポート接続 ・FANUC FOCAS1/2 ※3 MELSEC EZSocket 接 続 、 SYSMAC FinsGateway 接 続 、 SYSMAC SysmacGateway 接 続 、 SYSMAC CX-Compolet 接続、TOYOPUC CPU ポート接続、FANUC FOCAS1/2 接続は 64 ビット版デバイスエクスプローラで は対応しておりません。(2014 年 9 月現在) ※4 使用するタグ総点数が 1 万点を超える場合、1GB 以上のメモリを搭載することを推奨します。 ※5 MELSEC EZSocket 接続使用時は 300MB 以上必要です。 - 11 - 2.3 対応機種 デバイスエクスプローラが対応している通信対象機種は次の通りです。 名称 インターフェイス PLC 機種名 Ethernet シリアル MELSEC iQ-R / Q / L / QnA / A / FX シリーズ インターフェイスボード GOT シリーズ 三菱電機スイート EZSocket MC AppBuilder 連携機能 (GX Simulator/GX Simulator2) GOT 接続 Ethernet シリアル オムロンスイート SYSMAC-NJ/CJ/CS/CP/CV/C シリーズ Sysmac Gateway FinsGateway CX-Compolet Ethernet 横河電機スイート FA-M3V / FA-M3(R)シリーズ シリアル Ethernet ジェイテクトスイート TOYOPUC- PC10/PC3J/PC2J シリーズ CPU ポート(通信 DLL) 日立産機スイート EH150-EHV/EH150/H シリーズ Ethernet MODBUS 対応製品 三菱電機 MODBUS ユ ニ ッ ト / 電子指示計器 / EcoMonitorLight 発紘電機 MONITOUCH Ethernet 光洋 DirectLOGIC/KOSTAC シリーズ (MODBUS/TCP) IDEC MICRO Smart アズビル(山武) 調節計 日置電機 Smart Site2300 シリーズ 理化工業調節計 チノー記録計/調節計 Eurotherm 調節計 MODBUS スイート エムシステム リモート I/O / 表示灯 エニイワイヤ DBA40 シリーズ ワゴ I/O システム コグネックス In-Sight シリアル デルタ電子 DVP シリーズ (MODBUS/RTU、ASCII) パナソニック電工 FP / KT / KW シリーズ 3S CoDeSys ソフト PLC 横河電機 STARDOM / 記録計 / 制御・計測ステーション Moxa スイッチングハブ キーエンススイート KV5500 /5000 / 3000 / 1000 / 700 / Nano シリーズ Ethernet シャープスイート SATELLITE-JW シリーズ Ethernet Ethernet 富士電機スイート MICREX-SX/F シリーズ シリアル Ethernet (MEMOBUS) 安川電機スイート MP3200/ 2400 / 2300 / 2200 / 2100 / 900 シリーズ シリアル(MEMOBUS) 東芝スイート nv / V / PROSEC T シリーズ Ethernet パナソニックスイート FP-X、FP2(SH)シリーズ Ethernet ControlLogix / CompactLogix / ロックウェルスイート EtherNet/IP FlexLogix / DriveLogix シリーズ - 12 - シーメンススイート SIMATIC S7-1500/ S7-1200 / S7-400 / S7-300 シリー ズ XGT シリーズ(XGK / XGI / XGR) C コン、D/D+コン、E コン、S/S+コン FANUC-PMC シリーズ 計装 NX シリーズ/CPL 対応機器 RF-RW シリーズ V680 シリーズ Dataman BL(BCR)/SR(二次元 BCR) Ethernet LS 産電スイート Ethenet 川崎重工業スイート Ethernet(通信 DLL) ファナックスイート Ethernet (FANUC FOCAS) アズビル(山武)スイート Ethernet 三菱電機 RFID スイート Ethernet オムロン RFID スイート シリアル コグネックスBCR スイート Ethernet キーエンス BCR スイート Ethernet マーストーケンソリューシ Ethernet TFIR-3172 ョン BCR スイート 三菱電機省エネ支援機器 HTTP 通信 EcoServerⅢ/E-Energy スイート BACnet プロトコル BACnet 対応製品 Ethernet IEC60870-5-104 クライア IEC60870-5-104 スレーブ対応機器 Ethernet ント ODBC クライアント ODBC 対応データベース ODBC OPC DA クライアント OPC DA2.0 / 3.0 対応 OPC サーバー OPC DA DDE クライアント DDE 対応サーバー DDE DxpLink クライアント DxpLink(HTTP 通信) DxpLink 対応サーバー 共有メモリ 共有メモリアクセス デバイスエクスプローラ内部デバイス ※ 2014 年 9 月現在の対応機種です。 ※ 各機種との通信に関する詳細は、ユーザーズガイド(PLC 接続編)をご覧ください。 - 13 - 3 インストール 3.1 インストール手順 (1) デバイスエクスプローラの CD をドライブに入れて DeviceXPlorer OPC Server のインストールを選択すると、インストーラ ーが起動します。言語選択ダイアログが表示されますので、インストールで使用する言語を選択してください。 重要 セットアップは、管理者権限(Administrator 権限)を持つアカウントで行ってください。 (2) 環境によって、デバイスエクスプローラを動作するのに必要なコンポーネントの事前にインストールが必要な場合があります。 「Install」をクリックします。 (3) 「次へ」をクリックします。 - 14 - (4) 使用許諾契約に同意して頂ける場合は、「使用許諾契約の条項に同意します」を選択し、「次へ」を押してください。 (5) ユーザー情報と製品のシリアル番号を入力し、「次へ」をクリックします。 備考 製品に記載されているシリアル番号を正確に入力してください。シリアル番号は CD、ライセンス証書、ユーザー登録カードの 3 点に同一の番号が記載されています。シリアル番号が不適切な場合は以下のエラーダイアログが表示され、デモ版としてイ ンストールされます。(デモ版としてインストールする場合は、シリアル番号にハイフン記号( - )のみを入力してください。 - 15 - (6) インストール先のフォルダーを指定します。 (7) インストールするコンポーネントを選択します。 備考 ここで選択された通信機能が利用できます。全ての通信機能を使う場合は、すべてにチェックを入れてください。 OPC UA サーバー機能を利用する場合は、コンポーネントにある「OPC UA サーバー機能」をチェックしてください。 - 16 - (8) Melsec EZSocket コンポーネントを選択した場合は、EZSocket コンポーネントのインストール先を選択します。 (9) プログラムフォルダーを選択します。 (10) 以上でインストールの準備ができました。「次へ」をクリックすると、セットアップが始まります。 - 17 - (11) セットアップ完了時、Windows コンポーネントの更新が行われた場合は PC を再起動する必要があります。 3.2 インストールファイル デバイスエクスプローラのインストールは、次のファイルをセットアップします。 内容 セットアップパス 備考 デバイスエクスプローラ本体 インストールフォルダー¥Bin ユーザーズガイド インストールフォルダー¥Doc サーバー本体編、PLC 接続編 OPC-DA Custom Interface Specification OPC-DA I/F 仕様書 インストールフォルダー¥Doc OPC-DA Automation Interface Specification (OPC-Foundation 発行) サンプルプログラム インストールフォルダー¥Sample VB6、VB.NET、VC#、VC++、EXCEL OPC-DA2.0/3.0 カスタムインターフェイス OPC-DA コンポーネント Windows システムフォルダー OPC-DA2.0 オートメーションインターフェイス Windows コンポーネント Windows システムフォルダー .NET Framwork2.0、VC/VB ランタイムライブラリ - 18 - 3.3 アンインストール手順 デバイスエクスプローラは次の手順でアンインストールすることができます。 (1) クライアントアプリケーションからの接続を切断し、デバイスエクスプローラを終了します。サービスプログラムとして実行して いる場合は、コントロールパネルの「サービス」から「DeviceXPlorer OPC Server 5」を停止させてください。 (2) コントロールパネルの「プログラムと機能」を選択します。 (3) 「DeviceXPlorer OPC Server 5」を削除します。 (4) デバイスエクスプローラをアンインストールしてもユーザー作成のプロジェクトデータは残ります。 - 19 - 3.4 ライセンス認証 ライセンス認証とは、ご購入頂いた製品にライセンス情報を付加し、正規の製品として動作させるのに必要な手続きです。 弊社ソフトウェア製品のライセンス契約は、特定の 1 台の PC にインストールして使用する権利を許諾しています。 製品タイプによって、ソフトウェアキー(ライセンスコード)を要求するものとハードウェアキーを要求するものがあります。 3.4.1シリアル番号 シリアル番号は、お客様が製品を購入した際に受け取る一意の番号です。お客様はインストール時にこのシリアル番号を正確に 入力する必要があります。 重要 デバイスエクスプローラは同一 LAN 上の PC に対して定期的にシリアル番号のチェックを行います。 万が一、同じシリアル番号の製品が見つかれば、即座に動作を停止しますのでご注意ください。 3.4.2ソフトウェアキー(ライセンスコード) ソフトウェアキーを要求する製品の場合、アプリケーションを実行するには、シリアル番号とライセンスコードの両方を同じ PC に インストールする必要があります。インストール時に正確なシリアル番号を入力し、ライセンスアクティベーション時に、弊社より取 得したライセンスコードを記入して下さい。ライセンスコードの取得方法については、後述の「ライセンスの登録・転送」の項をご覧 下さい。 3.4.3ハードウェアキー ハードウェアキーを要求する製品の場合、アプリケーションを実行するには、シリアル番号とハードウェアキーの両方を同じ PC にインストールする必要があります。インストール時に正確なシリアル番号を入力し、ハードウェアキーを PC の USB ポートに接 続して使用します。 3.4.4ライセンス状況とアプリケーション動作 ライセンスの認証状況とアプリケーションの動作の対応を下表に示します。 ライセンス状況 ステータス表示 アプリケーション動作 ライセンス認証されています。 OK 通常モード ハードウェアキーライセンスでライセンス認証されています。 OK(HASP) ソフトウェアキーライセンスでライセンス認証されています。 OK(SOFTWARE) デモモードとして 1 時間動作します。1 時間以上経過すると動作を停止します。 DEMO デモモード ハードウェアキーが未装着の場合は、デモモードとして動作します。 NO KEY 一時ライセンスが有効となっています。製品をインストール後 14 日間は通常モー ドとして動作します。その間にライセンスコードを取得してください。期間を過ぎる 期間モード TERM と動作を停止します。 - 20 - 3.4.5ライセンスの登録/転送方法 ライセンス状況は、「ヘルプ」メニューの「ライセンス」画面で確認することができます。 ステータス欄にライセンス状況が表示されます。 ステータス 内容 OK ライセンスは有効になっていますので、以降の操作は必要ありません。 OK(HASP) OK(SOFTWARE) デモモードとして 1 時間動作します。 DEMO ハードウェアキーを装着する必要があります。 NO KEY 14 日以内にライセンスコードを取得する必要があります。 下記何れかの方法でライセンスコードを取得してください。 TERM 1. WEB サイト 弊社ホームページ上のユーザー登録画面からシリアル番号とコンピューターID 及び必要事項を入力 して送信してください。折り返し、ライセンスコードをお知らせします。 URL http://www.faweb.net/asp/registration.aspx 2. FAX ユーザー登録用紙にシリアル番号とコンピューターID 及び必要事項を記入して弊社宛に FAX してく ださい。折り返し、ライセンスコードをお知らせします。 FAX 番号 075-325-2273 以上の手続き後もライセンスコードが届かない場合は、下記のメールアドレスまでご連絡ください。 Email アドレス [email protected] - 21 - 3.4.5.1 ライセンスアクティベーション 対象コンポーネントを右クリックするとポップアップメニューが表示されますので、「ライセンスアクティベーション」を選択します。 製品をデモ版としてインストールした場合には、本機能を利用して、後からライセンスの認証を行うことが可能です。また、ソフトウ ェアキー(ライセンスコード)を要求する製品の場合、本機能にて、ライセンスコードの認証を行う必要があります。 シリアル番号が空欄の場合は、最初にシリアル番号のみ記入し、認証ボタンを押します。 ソフトウェアキーを要求製品の場合はコンピューターID が表示されるため、シリアル番号と、表示されるコンピューターID を弊社 までご連絡下さい。それに応じて、ライセンスコードを発行いたしますので、そのライセンスコードを入力して、再度認証ボタンを 押して下さい。 重要 ライセンスの認証・変更・削除には、ユーザー権限設定の「Administrator」でログインしている必要があります。 - 22 - 3.4.5.2 ライセンスの転送 ライセンスがインストールされている PC から他の PC へライセンスを転送することができます。 開発機でアプリケーションを開発・評価し、その後本番機へ移行するような場合に、この転送機能が有効です。 (1) まず初めに、転送先の PC に本製品をインストールし、コンピューターID を確認します。 (2) 次に、転送元の PC でステータス表示が「OK」となっているのを確認します。ポップアップメニューが表示されますので、「ラ イセンスの転送」を選択してください。 (3) 表示された画面に前述「1」で取得した転送先のコンピューターID を入力します。 - 23 - (4) 「転送」ボタンを押すと、転送先 PC のコンピューターID に対応したライセンスコードが表示されます。 重要 この操作を行うと、転送元 PC のライセンスが無効となりますのでご注意ください。 備考 表示されたライセンスコードは、「LicensTransferred.txt」というファイル名でカレントフォルダーに格納されます。 (5) 最後に、前述「4」で取得したライセンスコードを転送先 PC にインストールし、ライセンスの転送が完了します。 - 24 - 3.4.5.3 ライセンスの変更 アクティベーションされているライセンスを変更することが出来ます。変更対象のシリアル番号と、変更先のシリアル番号を入力 する必要があります。 3.4.5.4 ライセンスの認証解除 アクティベーションされているライセンスの認証解除することが出来ます。解除するライセンスのシリアル番号を入力する必要が あります。 3.4.5.5 ライブラリ情報 ポップアップメニューから「ライブラリ情報」を選択することで、各コンポーネントが使用しているライブラリ情報を確認することがで きます。 - 25 - 3.4.6リモートデスクトップ接続利用時の注意事項 Windows の機能であるリモートデスクトップ接続利用時に、ライセンス認証方式がハードウェアキーライセンス(HASP キー使用 時)もしくは、ソフトウェアキーライセンス(コンピューターID とライセンスコードを使用)の場合にはライセンス認証がされなくなる 可能性があるため注意が必要です。 リモートデスクトップ接続を利用すると、HASP キーの認証および、コンピューターID の適合チェックが適切に動作しなくなり、ラ イセンスが認証されなくなる場合があります。対策として、デバイスエクスプローラをサービス起動してご使用ください。 サービス起動については、5.13 項を参照ください。 重要 デバイスエクスプローラは、リモートデスクトップ接続利用時に機能の制限などは設けておりませんが、利用する場合は十分 検証を行ったうえご使用ください。 - 26 - 3.5 エンタープライズライセンスとスタンダードライセンスの違い エンタープライズライセンスとスタンダードライセンスの違いは以下の通りです。 機能 エンタープライズライセンス 通信機能 デバイスエクスプローラ対応機器全種 スクリプト機能 制限なし OPC UA サーバー機能 利用可能 その他 .NET OPC クライアント開発ツールが利用可能 上記以外は機能的な違いはありません。 3.6 スタンダードライセンス ライセンス有効機種 SYSTEM/共有メモリ 1 秒周期固定 1 スクリプトのみ 使用不可 デモ版 インストール時にシリアル番号入力にハイフン記号( - )のみを入力して進めると、以下の画面が表示され、[ はい ]を選択すると デモ版としてインストールされます。 デモ版には、機能的な制限はありませんが、連続一時間稼動制限があり、起動後一時間経つと、動作が停止するので注意して下 さい。 3.7 非管理者権限利用時の注意事項 デバイスエクスプローラを利用する際、管理者権限を持ったアカウントでないと、下記 3 操作が実行出来ないため注意が必要で す。 ① デバイスエクスプローラのインストール、アンインストール ② サービスプログラム登録、解除 ③ ライセンスの登録、変更、認証解除、転送 制限事項 利用 OS Windows 8 / 7 / Vista Windows Server 2008 Windows Server 2012 UAC UAC 有効時 管理者として実行する。 UAC 無効時 管理者権限を持ったアカウントで実行する。 N /A 管理者権限を持ったアカウントで実行する。 上記以外の OS 3.8 上記の 3 操作を行う方法 64 ビット版使用時の注意事項 64 ビット版デバイスエクスプローラを使用される場合、64 ビット版OPC クライアントから OPC サーバーの接続先を列挙する場合 は、64 ビット版の OpcEnum を使用して列挙する必要があります。もし、サービス登録されている OpcEnum が C:¥Windows¥SysWOW64¥OpcEnum.exe となっている場合は、C:¥Windows¥System32¥OpcEnum.exe をサービス登録 する必要があります。 インストールディレクトリにある「Reg_OPCEnum32to64.Bat」を「管理者として実行」として起動したコマンドプロンプトで実行して ください。 - 27 - 3.9 OPC UA 環境のセットアップ OPC UA サーバー機能を利用するうえで必要な UA Local Discovery Server などがインストールされます。 インストールには、Windows Installer 3.1 および.NET Framework4.0 のインストールが必要です。 3.9.1OpcUaEnv のインストール (1) デバイスエクスプローラの CD をドライブに入れて OPC UA 環境のセットアップを選択すると、インストーラーが起動します。 環境によって、OPC UA 環境セットアップに必要なコンポーネントの事前にインストールが必要な場合があります。 (2) インストール画面の表示言語を選択して、「次へ」をクリックします。 (3) ユーザー情報を入力してください。 - 28 - (4) セットアップタイプは「すべて」を選択して、インストールを開始してください。 (5) セットアップ完了時、Windows コンポーネントの更新が行われた場合は PC を再起動する必要があります。 - 29 - 3.9.1OpcUaEnv のアンインストール (1) コントロールパネルの「プログラムと機能」を選択します。 (2) 「OpcUaEnv」を削除します。 - 30 - 4 一般性能仕様 4.1 諸元表 項目 サービス起動 表示言語 最大ポート数/PLC 台数 サポートプロトコル アクセス可能デバイス アイテム(タグ)名の別名定義 OPC OPC Item ID 対応バージョン PROG. ID OPC DA CLASS ID OPC Access Path 対応バージョン OPC A&E PROG. ID CLASS ID URI OPC UA プロトコル アプリケーション名 DDE/SuiteLink トピック名 ポート番号 DxpLink データタイプ 拡張フォーマット 内容 可能 日本語、英語、中国語(簡体字)、中国語(繁体字)、韓国語(ハングル) を動的に変更可能 255 OPC-DA、 OPC A&E、OPC UA、DDE、SuiteLink、DxpLink ユーザーズガイド(PLC 接続編)をご覧ください 可能 デバイス名、グループ名、タグ名をデリミターで区切指定 2.05A/3.0 Takebishi.Dxp.5 8D8CD405-1EA6-45bf-9AAE-A69D53A50005 可能 1.10 Takebishi.DxpAe.5 8D8CD405-1EA6-45bf-9AAE-A69D53A50005 opc.tcp://[machinename]:52210/DeviceXPlorer5/UA TCP / HTTP 任意(デフォルト値は「DXPSV」) 任意(デフォルト値は「デバイス名」) 任意(デフォルトは 9980) 論理値型 VT_BOOL 8 ビット符号付整数型 VT_I1 8 ビット符号無整数型 VT_UI1 16 ビット符号付整数型 VT_I2 16 ビット符号無整数型 VT_UI2 32 ビット符号付整数型 VT_I4 32 ビット符号無整数型 VT_UI4 32 ビット符号付実数型 VT_R4 64 ビット符号付整数型 VT_I8 64 ビット符号無整数型 VT_UI8 64 ビット符号付実数型 VT_R8 文字列型 VT_BSTR 配列型 VT_ARRAY ワードデバイスのビット位置指定 8 ビット符号付整数型 8 ビット符号無整数型 16 ビット符号付整数型 16 ビット符号無整数型 32 ビット符号付整数型 32 ビット符号無整数型 64 ビット符号付整数型 64 ビット符号無整数型 整数型 BCD 値 単精度浮動小数点型 倍精度浮動小数点型 - 31 - 文字列型 テキスト形式 2 進 テキスト形式 8 進 テキスト形式 10 進 テキスト形式 16 進 ビット反転 論理型変換 ファイル書込 配列型 読出専用属性 書込専用属性 4.2 OPC DA インターフェイス 4.2.1Prog.ID デバイスエクスプローラの Prog.ID は、「Takebishi.Dxp.5」です。バージョン指定のない、「Takebishi.Dxp」でも接続可能です。 4.2.2アイテム ID OPC ItemID は、デバイスエクスプローラで設定したデバイス名、グループ名(構造体タグ名)、タグ名をドット(.)で区切って指定 します。下図の「Tag001」にアクセスする場合は、アイテム ID は「Device1.Tag001」と指定します。 グループ階層がある場合は、デバイス名とタグ名の間にグループ名を入れて指定します。 下図の「Tag001」にアクセスする場合は、アイテム ID は「Device1.Group1.Tag001」と指定します。 備考 デバイスエクスプローラのアイテム ID は、ポート名やデバイスフォルダー名を含みません。 ポートビューでは下図のように表示されますが、アイテム ID は「Device1.Tag001」となります。 - 32 - 4.2.3アクセスパス アクセスパスを指定すると、アイテムIDからデバイス名とグループ名を省略することができます。例えば、「Device1」の「Tag001」 にアクセスする場合、通常であれば「Device1.Tag001」と指定しますが、アクセスパスを「Device1」としておくことによって、アイテ ム ID は「Tag001」になります。 アクセスパスを指定することによって、アイテム ID を簡略化して指定できますので、クライアントはデバイス名を分離してタグを 管理できるようになります。 - 33 - 4.2.4OPC カスタムインターフェイス OPC カスタムインターフェイスの対応状況を示します。表の見方は次の通りです。 インターフェイス名 OPC-DA のインターフェイス名称 DA2 OPC-DA2.05A のインターフェイスは「○」と表記。 DA3 OPC-DA3.0 ののインターフェースは「○」と表記。 Opt オプションインターフェースは「○」と表記。 メンバー関数 当該インターフェイス内のメンバー関数名称 対応状況 ○:対応、△:未対応(E_NOTIMP を返す) 【OPCServer オブジェクト】 OPC サーバーをエクスポーズするメインオブジェクトです。 インターフェイス名 DA2 DA3 Opt IOPCCommon 共通インターフェイス ○ ○ IOPCServer メインインターフェース ○ ○ ○ ○ ○ ○ IOPCBrowseServerAddressSpace 利用可能なアイテムIDをブラウズするためのインターフ ェイス ○ ○ ○ IOPCServerPublicGroups パブリックグループを管理するためのインターフェイス ○ ○ ○ IPersistFile OPC サーバーの構成情報のファイル保存と読込を行う インターフェイス ○ ○ ○ IConnectionPointContainer IOPCShutdown とのコネクションポイントをアクセスす るためのインターフェイス IOPCItemProperties 利用可能なアイテムプロパティをブラウズするためのイ ンターフェイス IOPCBrowse アドレススペースのブラウズとアイテムのプロパティを取 得するインターフェイス IOPCItemIO グループを作成しないで直接アイテム値を取得するイン ターフェイス ○ ○ - 34 - メンバー関数 SetLocaleID GetLocaleID QueryAvailableLocalIDs GetErrorString SetClientName AddGroup GetErrorString GetGroupByName GetStatus RemoveGroup CreateGroupEnumerator EnumConnectionPoints 対応状況 ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ FindConnectionPoints ○ QueryAvailableProperties GetItemProperties LookutItemIDs QueryOrganization ChangeBrowsePosition BrowseOPCItemIDs GetItemID BrowseAccessPaths GetPublicGroupByName RemovePublicGroup IsDirty Load Save SaveCompleted GetCurFile GetProperties ○ ○ ○ ○ ○ ○ ○ △ △ △ △ △ △ △ △ ○ Browse ○ Read ○ WriteVQT ○ 【OPCGroup オブジェクト】 OPC サーバーがアイテムコレクションの管理をするためのオブジェクトです。 インターフェイス名 DA2 DA3 Opt IOPCGroupStateMgt グループの全体的な状態を管理するインターフェイス IOPCPublicGroupStateMgt パブリックグループに変更するためのインターフェイス IOPCGroupStateMgt2 KeepAlive の設定及び実行のためのインターフェイス IOPCItemMgt グループ内のアイテム動作を制御するインターフェイス IOPCSyncIO 同期読込/書込を実行するインターフェイス IOPCSyncIO2 MaxAge を使用した同期読込/品質フラグ、タイムスタ ンプへの同期書込を実行するインターフェイス ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ IOPCAsyncIO 非同期アクセスを行うインターフェイス ○ ○ IOPCASyncIO2 非同期アクセスを行うインターフェイス ○ ○ IOPCASyncIO3 非同期アクセス(MaxAge 使用)を行うインターフェイス IConnectionPointContainer IOPCShutdown とのコネクションポイントをアクセスす るためのインターフェイス ○ ○ - 35 - ○ ○ メンバー関数 GetState SetState SetName CloneGroup GetState MoveToPublic SetKeepAlive GetKeepAlive AddItems ValidateItems RemoveItems SetActiveState SetClientHandles SetDatatypes CreateEnumerator Read Write ReadMaxAge 対応状況 ○ ○ ○ ○ △ △ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ WriteVQT ○ Read Write Refresh Cancel Read Write Refresh Cancel2 SetEnable GetEnable ReadMaxAge WriteVQT Refresh2 ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ EnumConnectionPoints ○ インターフェイス名 IDataObject OPC グループ上で実行するインターフェイス DA2 DA3 ○ ○ IOPCItemDeadbandMgt アイテムのデッドバンドを指定するインターフェイス ○ IOPCItemSamplingMgt アイテム毎のサンプリング周期を指定するインターフェイ ス 【EnumOPCItem Attributes オブジェクト】 インターフェイス名 IEnumOPCItemAttributes グループのアイテムと属性を検索 Opt ○ ○ DA2 DA3 Opt ○ ○ - 36 - メンバー関数 DAdvise DUnadvise FindConnectionPoint SetItemDeadband GetItemDeadband 対応状況 ○ ○ ○ ○ ○ ClearItemDeadband ○ SetItemSamplingRate GetItemSamplingRate ClearItemSamplingRate SetItemBufferEnable GetItemBufferEnable ○ ○ ○ ○ ○ メンバー関数 Next Skip Reset Clone 対応状況 ○ ○ ○ ○ 4.2.5OPC オートメーションインターフェイス オートメーションインターフェイスは、VB、VBA などのインタープリタ言語からカスタムインターフェイスを使用するためのラッパ ーインターフェースであり、カスタムインターフェイスの機能と同じインターフェイスを実装しています。詳細に関しては、OPC-DA オートメーションインターフェイス仕様書(OPC Foundation 発行)をご参照ください。 Visual Basic 6.0 VBA(EXCEL等) OPC-DAオートメーションインターフェース OPC-DAカスタムインターフェース Visual C/C++ C#.NET VB.NET OPC-DA Runtime Callable Wrapper 4.2.6品質フラグ デバイスエクスプローラがクライアントに返す品質フラグは次の通りです。 各品質フラグの詳細は、デバイスエクスプローラ付属の OPC Data Access の仕様書を参照してください。 品質フラグ 値 内容 OPC_QUALITY_BAD 0x00 NG 値が不定 OPC_QUALITY_UNCERTAIN 0x40 OPC_QUALITY_GOOD 0xC0 OK 設定エラー OPC_QUALITY_CONFIG_ERROR 0x04 接続していない OPC_QUALITY_NOT_CONNECTED 0x08 デバイスの故障 OPC_QUALITY_DEVICE_FAILURE 0x0C センサーの故障 OPC_QUALITY_SENSOR_FAILURE 0x10 通信エラーが発生したので前回正常に読み込まれた値 OPC_QUALITY_LAST_KNOWN 0x14 を使用 通信エラー OPC_QUALITY_COMM_FAILURE 0x18 サービス中止(アイテムが無効) OPC_QUALITY_OUT_OF_SERVICE 0x1C 初期データ待ち OPC_QUALITY_WAITING_FOR_INITIAL_DATA 0x20 前回の値 OPC_QUALITY_LAST_USABLE 0x44 センサー調整中 OPC_QUALITY_SENSOR_CAL 0x50 工学値変換結果が範囲オーバー OPC_QUALITY_EGU_EXCEEDED 0x54 データソースの数が少ない OPC_QUALITY_SUB_NORMAL 0x58 値が強制的に書き換えられた OPC_QUALITY_LOCAL_OVERRIDE 0xD8 - 37 - 4.2.7エラーコード OPC インターフェースアクセス時にデバイスエクスプローラが COM エラーまたは OPC エラーを返すことがあります。 各エラー内容は下表の通りです。 備考 Visual Basic をお使いの場合、COM エラーまたは OPC エラーが発生すると例外になります。 例外をトラップすることでエラーコードを確認することができます。 【COM エラー】 COM エラー 値 E_FAIL 0x80004005 E_INVALIDARG E_NOINTERFACE E_NOTIMPL E_OUTOFMEMORY 0x80070057 0x80004002 0x80004001 0x8007000E CONNECT_E_ADVISELIMIT 0x80040201 OLE_E_NOCONNECTION DV_E_FORMATETC 0x80040004 0x80040064 内容 処理に失敗(通信異常などが発生し、書込処理に失敗した場合、 このエラーが返ります) 引数が不正 インターフェイスが存在しない インターフェイス非実装 メモリ不足 コネクションポイントは既に最大接続数に達していて、これ以上 受け付けできない(通信異常発生中に連続的に非同期書込を実 行した場合、このエラーが返ります) コネクションポイントが存在しない FORMATETC で指定されたフォーマットが無効 - 38 - 【OPC エラー】 OPC エラー 値 内容 OPC_E_INVALIDHANDLE OPC_E_BADTYPE OPC_E_PUBLIC 0xC0040001 0xC0040004 0xC0040005 OPC_E_BADRIGHTS 0xC0040006 OPC_E_UNKNOWNITEMID 0xC0040007 ハンドルが不正 指定したデータタイプに変換ができない パブリックグループに対して実行できない アイテムのアクセス権限により操作が拒否された (ReadOnly のアイテムに書き込みを実行した) アイテム ID が存在しない (OPC サーバーに未登録のタグを要求した) OPC_E_INVALIDITEMID 0xC0040008 アイテム ID が不正(アイテム ID が指定されていない) OPC_E_INVALIDFILTER OPC_E_UNKNOWNPATH OPC_E_RANGE OPC_E_DUPLICATENAME 0xC0040009 0xC004000A 0xC004000B 0xC004000C フィルターの文字列が不正 アクセスパスが認識できない 値が範囲外 名前が重複している OPC_S_UNSUPPORTEDRATE 0x0004000D サーバーは要求された周期をサポートしない OPC_S_CLAMP OPC_S_INUSE 0x0004000E 0x0004000F 書込値がクランプされた オブジェクトが使用中のため操作を継続できない OPC_S_UD_COMM_ERROR 0x00048000 処理は成功しましたが、品質に問題があります OPC_E_UD_COMM_ERROR OPC_E_INVALIDCONFIGFILE OPC_E_NOTFOUND OPC_E_INVALID_PID OPC_E_DEADBANDNOTSET OPC_E_DEADBANDNOTSUPPORTED OPC_E_NOBUFFERING OPC_E_INVALIDCONTINUATIONPOINT 0x80048000 0xC0040010 0xC0040011 0xC0040203 0xC0040400 0xC0040401 0xC0040402 0xC0040403 OPC_S_DATAQUEUEOVERFLOW 0xC0040404 OPC_E_RATENOTSET OPC_E_NOTSUPPORTED 0xC0040405 0xC0040406 通信処理に失敗しました サーバーの設定ファイルフォーマットが不正 要求されたオブジェクトが見つからない プロパティ ID が無効 アイテムにデッドバンドがセットされなかった アイテムはデッドバンドをサポートしてない サンプリングバッファーをサポートしていない Browse インターフェイスの Continuation Point が無効 サーバーのサンプリングバッファーがオーバーフローし た サンプリングレートがセットされなかった 品質フラグ、タイムスタンプの書き込みが非対応 - 39 - 4.3 OPC A&E インターフェイス デバイスエクスプローラは OPC A&E 1.10 に対応しています。 4.3.1Prog.ID デバイスエクスプローラの Prog.ID は、「Takebishi.DxpAe.5」です。 バージョン指定のない、「Takebishi.DxpAe」でも接続可能です。 4.3.2アイテム ID OPC ItemID は、OPC DA インターフェイスの考え方と同様です。 詳細は 4.2.2 項を参照してください。 OPC A&E クライアントでは以下のように見えます。 重要 アラームタグとして扱うためには、タグプロパティのアラーム設定を適切に設定する必要があります。 アラーム設定については 5.7.7 項を参照してください。 - 40 - 4.3.3対応インターフェイス OPC AE カスタムインターフェイスの対応状況を下表に示します。 ○:対応、△:非対応(E_NOTIMP を返します。) オブジェクト インターフェイス名 Opt IOPCCommon IOPCEventServer OPCEventServer Object IOPCEventServer2 ○ IConnectionPointContainer OPCEventAreaBrowser Object OPCEventSubscription Object IOPCEventAreaBrowser IOPCEventSubscriptionMgt IConnectionPointContainer - 41 - ○ メンバー SetLocaleID GetLocaleID QueryAvailableLocalIDs GetErrorString SetClientName GetStatus CreateEventSubscription QueryAvailableFilters QueryEventCategories QueryConditionNames QuerySubConditionNames QuerySourceConditions QueryEventAttributes TranslateToItemIDs GetConditionState EnableConditionByArea EnableConditionBySource DisableConditionByArea DisableConditionBySource AckCondition CreateAreaBrowser EnableConditionByArea2 EnableConditionBySource2 DisableConditionByArea2 DisableConditionBySource2 GetEnableStateByArea GetEnableStateBySource EnumConnectionPoints FindConnectionPoint ChangeBrowsePosition BrowseOPCAreas GetQualifiedAreaName GetQualifiedSourceName SetFilter GetFilter SelectReturnedAttributes GetReturnedAttributes Refresh CancelRefresh GetState SetState EnumConnectionPoints FindConnectionPoint 対応 ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ △ △ △ △ △ △ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ 4.4 OPC UA インターフェイス デバイスエクスプローラは OPC UA に対応しています。 4.4.1 サービス OPC UA のサービスの対応を下表に示します。 サービスセット Discoverty Service Set Secure Channel Service Set Session Service Set NodeManagement Service Set View Service Set Query Service Set Attribute Service Set Method Service Set MonitoredItem Service Set Subscription Service Set サービス FindServers GetEndpoints RegisterServer OpenSecureChannel CloseSecureChannel CreateSession ActivateSession CloseSession Cancel AddNodes AddReferences DeleteNodes DeleteReferences Browse BrowseNext TranslateBrowsePathToNodeIds RegisterNodes UnregisterNodes QueryFirst QueryNext Read HistoryRead Write HistoryUpdate Call CreateMonitoredItems ModifyMonitoredItems SetMonitoringMode SetTriggering DeleteMonitoredItems CreateSubscription ModifySubscription SetPulishingMode Publish Republish TransferSubscriptions DeleteSubscriptions - 42 - 機能(当社分類) Enum Core Enum Core Core Core Core Core Core NodeManager NodeManager NodeManager NodeManager Browse Browse Browse View View Query Query DA Historical DA Historical Method DA DA DA DA DA DA/A&C DA/A&C DA/A&C DA/A&C DA/A&C DA/A&C DA/A&C 対応 × ○ × ○ ○ ○ ○ ○ ○ × × × × ○ ○ ○ × × × × ○ × ○ × ○ ○ ○ × ○ ○ ○ ○ ○ × × × ○ 4.5 DDE/SuiteLink インターフェイス デバイスエクスプローラは DDE インターフェイスと、Wonderware 社製 SuiteLink インターフェイスに対応しています。 重要 DDE/SuiteLink インターフェイスは、LONGLONG 型と ULONGLONG 型のタグへのアクセスには対応していません。 4.5.1アプリケーション名 デバイスエクスプローラのアプリケーション名は、デフォルトで「DXPSV」と設定されています。 アプリケーション名は共通プロパティ画面(ツールメニュー「オプション」)で変更可能です。 項目 DDE/SuiteLink アプリケーション名 初回キャッシュ通知 内容 DDE クライアントや SuiteLink クライアントが接続する際に指定するアプリケーション名です。 デバイスエクスプローラのアプリケーション名は、デフォルトで「DXPSV」と設定されています。 デフォルトでは無効です。 通常、読出しが完了しないと DDE クライアントに値を返しませんが、有効にすると、クライアントから のアイテム登録された際にすぐにキャッシュ値を通知します。一度も読み出しされていないタグ(ダ イナミックタグや、通信周期が長くデータ受信前)の状態では、0 が返ります。DDE クライアント側で 初回通知のタイムアウトが発生することを回避できます。 - 43 - 4.5.2トピック名とアイテム名 デバイスエクスプローラは、デバイス単位で任意のトピック名を設定することができます。 デフォルトのトピック名は「デバイス名」、アイテム名は「タグ名」になります。 下図の「Tag1」にアクセスする場合は、トピック名を「Device1」、アイテム名を「Tag1」と指定します。 トピック名と更新周期は、「デバイスオプション画面」でデバイス毎に指定することができます。 通信周期が DDE/SuiteLink の更新周期にもなります。 項目 DDE/SuiteLink アプリケーション名 トピック名 通信設定 内容 DDE および SuiteLink インターフェイスを有効にする場合は、チェックを入れます。 DDE クライアントや SuiteLink クライアントが接続する際に指定するアプリケーション名です。 共通プロパティ画面(ツールメニュー「オプション」)のみで変更でき、デバイスオプションでは設定変 更できません。 DDE クライアントや SuiteLink クライアントが接続する際に指定するトピック名です。 PLC との通信周期などの通信設定を行います。 - 44 - 4.6 DxpLink インターフェイス デバイスエクスプローラは、当社製オリジナルインターフェイスであるDxpLinkインターフェイス(HTTP通信)に対応しています。 4.6.1DxpLink サーバー設定 DxpLink サーバー機能の有効/無効およびポート番号は、共通プロパティ画面(ツールメニュー「オプション」)で変更可能です。 項目 DxpLink サーバー機能 DxpLink ポート番号 内容 DxpLink サーバー機能を有効にするかどうか選択します。 DxpLink サーバーで利用するポート番号を指定します。 4.6.2DxpLink 通信設定 デバイス単位の DxpLink 機能の有効/無効、通信継続時間は、「デバイスオプション画面」で指定できます。 - 45 - 項目 DxpLink 通信継続期間 通信設定 内容 このデバイスに対して、DxpLink サーバー機能を有効にするかどうか選択します。 DxpLink クライアントから通信開始要求があった後、指定時間要求がなければ PLC との通信を停 止します。 PLC との通信周期などの通信設定を行います。 4.6.3DxpLink 機能について デバイスエクスプローラは、DxpLink サーバー機能および DxpLink クライアント機能を備えています。 DxpLink は当社製オリジナルの HTTP 通信プロトコルです。 DCOM 接続が難しい環境や、PLC 側の通信インターフェイスが限られている場合などに、DxpLink 機能を使うことで、シームレ スに PLC データにアクセスできます。 - 46 - 4.6.4DxpLink プロトコル仕様 デバイスエクスプローラと通信する DxpLink のクライアントアプリケーションは、HTTP の POST コマンドによって XML 文書の 交換を行うことで、DxpLink 通信を実現します。 項目 HTTP バージョン 接続台数 リクエストメソッド メッセージボディ 内容 1.1 64 POST XML 文書(XML1.0) DxpLink クライアントから送信するリクエスト用の XML 文書、およびデバイスエクスプローラから返されるレスポンス用の XML 文書の仕様について、下記に明記します。 4.6.4.1 デバイスの列挙(GetDevice) ■ リクエスト 例 <?xml version="1.0" encoding="UTF-8"?> <Transportation Command="GetDevice"/> 名前 Transportation Command 種類 型 内容 属性 文字列 “GetDevice” 固定 ■ レスポンス 例 <?xml version="1.0" encoding="UTF-8"?> <Transportation Command="GetDevice" ErrorCode="0"> <Delimiter Extend=":" Namespace="."/> <Device Name="Device1" Type="MelsecEthernet"/> <Device Name="Device2" Type="LinkClient"/> <Device Name="Device3" Type="MicrexEthernet"/> <Device Name="SYSTEM" Type="SystemDevice"/> </Transportation> 名前 Transportation Command ErrorCode Delimiter Device 種類 型 内容 属性 属性 要素 要素 文字列 32bit 符無整数 Delimiter Device “GetDevice” 固定 名前 Delimiter Extend Namespace 種類 型 内容 属性 属性 文字 文字 拡張指定デリミター 名前空間デリミター 名前 Device Name Type 種類 型 内容 属性 属性 文字列 文字列 デバイス名 デバイスの種類(コンポーネント名) - 47 - 「Delimiter」型を参照。 「Device」型を参照。 対象デバイス数分返される。 4.6.4.2 タグの列挙(GetTags) ■ リクエスト 例 <?xml version="1.0" encoding="UTF-8"?> <Transportation Command="GetTags"> <TargetPath Name="Device1"/> </Transportation> 名前 Transportation Command TargetPath 種類 型 内容 属性 要素 文字列 TargetPath “GetTags” 固定 「TargetPath」型を参照 名前 TargetPath Name 種類 型 内容 属性 文字列 タグを列挙する対象のデバイス、もしくはグループ のパス。例:“Device1Group1” ■ レスポンス 例 <?xml version="1.0" encoding="UTF-8"?> <Transportation Command="GetTags" ErrorCode="0"> <Delimiter Extend="." Namespace="."/> <TargetPath Name="Device1"> <Tag Name="Tag1" Size="1" Type="SHORT"/> <Tag Name="Tag2" Size="1" Type="STRING"/> <Tag Name="Tag3" Size="6" Type="SHORT | ARRAY"/> </TargetPath> </Transportation> 名前 Transportation Command ErrorCode Delimiter TargetPath 種類 型 内容 属性 属性 要素 要素 文字列 32bit 符無整数 Delimiter TargetPath “GetTags” 固定 名前 Delimiter Extend Namespace 種類 型 内容 属性 属性 文字 文字 拡張指定デリミター 名前空間デリミター 名前 TargetPath Name Tag 種類 型 内容 属性 要素 文字列 Tag デバイス名 「Tag」型を参照。 タグ数分返される。 名前 Tag 種類 型 内容 Name Size 属性 属性 文字列 32bit 符無整数 Type 属性 文字列 タグ名 配列の要素数。非配列タグの場合は“1”が返され る。 タグのデータタイプ文字列。 「タグのデータタイプ文字列」の表を参照。 - 48 - 「Delimiter」型を参照。 対象デバイス数分返される 4.6.4.3 タグの現在値取得(GetTagsValue) ■ リクエスト 例 <?xml version="1.0" encoding="utf-8"?> <Transportation Command="GetTagValues"> <TargetPath Name="Device1"> <Tag Name="Short" /> <Tag Name="String" /> <Tag Name="ShortArray" /> </TargetPath> </Transportation> 名前 Transportation Command TargetPath 種類 型 内容 属性 要素 文字列 TargetPath “GetTagValues” 固定 「TargetPath」型を参照 名前 TargetPath Name 種類 型 内容 属性 文字列 要素 Tag タグを列挙する対象のデバイス、もしくはグループ のパス。例:“Device1Group1” 「Tag」型を参照。 読出対象のタグを指定する。 Tag ■ レスポンス 例 <?xml version="1.0" encoding="UTF-8"?> <Transportation Command="GetTagValues" ErrorCode="0"> <TargetPath Name="Device1"> <Tag Name="Short" Size="1" Type="SHORT"> <Value>0</Value> <TimeStamp>2012/09/27 06:10:24 GMT</TimeStamp> <Quality>192</Quality> </Tag> <Tag Name="String" Size="1" Type="STRING"> <Value>testvalue</Value> <TimeStamp>2012/09/27 06:10:24 GMT</TimeStamp> <Quality>192</Quality> </Tag> <Tag Name="ShortArray" Size="10" Type="SHORT | ARRAY"> <Value>0,0,0,0,0,0,0,0,0,0</Value> <TimeStamp>2012/09/27 06:10:24 GMT</TimeStamp> <Quality>192</Quality> </Tag> </TargetPath> </Transportation> 名前 Transportation Command ErrorCode TargetPath 種類 型 内容 属性 属性 要素 文字列 32bit 符無整数 TargetPath “GetTagValues” 固定 名前 TargetPath Name Tag 種類 型 内容 属性 要素 文字列 Tag デバイス名 「Tag」型を参照。 指定したタグ。 - 49 - 「TargetPath」型を参照 名前 Tag 4.6.4.4 種類 型 内容 Name Size 属性 属性 文字列 32bit 符無整数 Type 属性 文字列 Value TimeStamp Quality 要素 要素 要素 文字列 文字列 16bit 符無整数 タグ名 配列の要素数。非配列タグの場合は“1”が返され る。 タグのデータタイプ文字列。 「タグのデータタイプ文字列」の表を参照。 タグのタイプ応じた値。 タグの現在値書込(SetTagsValue) ■ リクエスト 例 <?xml version="1.0" encoding="UTF-8"?> <Transportation Command="SetTagValues"> <TargetPath Name="Device1"> <Tag Name="Tag"> <Value>123</Value> </Tag> </TargetPath> </Transportation> 名前 Transportation Command TargetPath 種類 型 内容 属性 要素 文字列 TargetPath “SetTagValues” 固定 「TargetPath」型を参照 名前 TargetPath Name 種類 型 内容 属性 文字列 要素 Tag タグを列挙する対象のデバイス、もしくはグループ のパス。例:“Device1Group1” 「Tag」型を参照。 書込み対象の数分のタグを指定する。 種類 型 内容 属性 要素 文字列 文字列 タグ名 タグのタイプ応じた書込み値を指定して下さい。 Tag 名前 Tag Name Value ■ レスポンス 例 <?xml version="1.0" encoding="UTF-8"?> <Transportation Command="SetTagValues" ErrorCode="0"> <TargetPath Name="Device1"/> </Transportation> 名前 Transportation Command ErrorCode TargetPath 種類 型 内容 属性 属性 要素 文字列 32bit 符無整数 TargetPath “SetTagValues” 固定 名前 TargetPath Name 種類 型 内容 属性 文字列 デバイス名 - 50 - 「TargetPath」型を参照 4.6.4.5 定数 ■ タグのデータタイプ文字列 タグの設定 配列 BOOL BYTE UBYTE SHORT USHORT LONG ULONG LONGLONG ULONGLONG FLOAT DOUBLE STRING ● BOOL ● BYTE ● UBYTE ● SHORT ● USHORT ● LONG ● ULONG ● LONGLONG ● ULONGLONG ● FLOAT ● DOUBLE ● STRING DxpLink におけるタグのデータタイプ文字列 “BOOL” “BYTE” “UBYTE” “SHORT” “USHORT” “LONG” “ULONG” “LONGLONG” “ULONGLONG” “FLOAT” “DOUBLE” “STRING” “BOOL | ARRAY” “BYTE | ARRAY” “UBYTE | ARRAY” “SHORT | ARRAY” “USHORT | ARRAY” “LONG | ARRAY” “ULONG | ARRAY” “LONGLONG | ARRAY” “ULONGLONG | ARRAY” “FLOAT | ARRAY” “DOUBLE | ARRAY” “STRING | ARRAY” - 51 - 5 操作 5.1 チュートリアル 初めてデバイスエクスプローラをお使い頂く場合、次の手順に従って設定作業を進めると簡単に動作を確認することができます。 5.1.1Ethernet アダプターの装着・設定 ローカル PC に Ethernet アダプターを装着し、コントロールパネルの「ローカルエリア接続」のプロパティ画面を開きます。 「インターネットプロトコル(TCP/IP)」のプロパティ画面を開き、IP アドレス、ホスト名等を設定し、「OK」を押します。 - 52 - 5.1.2デバイスエクスプローラのインストール インストールディスクを PC の CD ドライブに挿入し、デバイスエクスプローラをインストールします。 備考 管理者権限(Administrator 権限)を持つアカウントでインストールしてください。 5.1.3デバイスエクスプローラの起動 プログラムメニューから「DeviceXPlorer OPC Server 5」→「デバイスエクスプローラ OPC サーバー 5」を選択して、デバイス エクスプローラを起動します。 5.1.4スタートページ デバイスエクスプローラを起動すると、以下のようにスタートページが表示されます。 「新しいプロジェクト」を押して、新規プロジェクトを作成してください。 項目 新しいプロジェクト プロジェクトを開く 最近使ったプロジェクト プロジェクト読み込み時にページを閉じる スタートアップ時にページを表示する 内容 新規プロジェクトを作成します。 プロジェクトファイルを開きます。 最近使用したプロジェクト一覧が表示されます。 プロジェクトファイルを読み込んだ際に、スタートページを閉じるかどうか選択 します。 デバイスエクスプローラを起動した際に、スタートアップページを表示するか どうかを選択します。 - 53 - 5.1.5プロジェクトウィザード (1) 新規プロジェクトを作成するとプロジェクトウィザードが表示されるので、通信対象の機器と接続方式を選択し、デバイス名と ポート名を入力して、「次へ」をクリックします。ウィザードに沿ってポート設定、デバイス設定、タグ設定を行います。 項目 有効なライセンス インストールされているコンポーネント プロジェクト名 場所 デバイス名 ポート名 内容 ライセンスが有効になっているコンポーネントが列挙されます。 インストールされているコンポーネントが列挙されます。 プロジェクトファイルの名称を設定します。 プロジェクトファイルの保存先フォルダーを設定します。 作成するデバイスの名称を設定します。 作成するポートの名称を設定します。 (2) ポート設定では、相手機器との通信方式を設定します。Ethenet ポートの場合は、相手機器アドレスが存在するかどうか PING テストを行うことができます。ポート設定の詳細については、5.3 項を参照して下さい。 - 54 - (3) デバイス設定では、相手機器の CPU タイプなどの通信設定を行います。設定完了後、接続テストで相手機器と接続できるか 確認してください。デバイス設定の詳細については、5.4 項を参照して下さい。 (4) タグ設定では、相手機器のレジスターに名前や属性を定義します。タグ設定の詳細については、5.7 項を参照して下さい。 - 55 - (5) 以上で、相手機器との通信に最低限必要なポート設定とデバイス設定、タグ設定が完了しました。あとはシステムに応じて、 タグの追加や、各種オプション設定を行ってください。 - 56 - 5.1.6クライアントからのアクセス ツールメニューから「OPC テストクライアントの起動」を選択します。 OPC テストクライアントの OPC メニューから「Connect」を選択し、「Takebishi.Dxp.5」に接続します。 OPC テストクライアントの OPC メニューから「Server」⇒「AddGroup」を選択し、グループを追加します。 - 57 - OPC テストクライアントの OPC メニューから「Group」⇒「AddItem」を選択し、タグを追加します。 クライアントにデータが取得できることを確認します。Quality に「0xC0」と表示されていれば正常に通信できています。 右クリックメニューで、読出しや書き込みも可能です。 - 58 - 5.2 画面レイアウト 【プロジェクトエクスプローラー】 プロジェクトエクスプローラーは、ポートやデバイス、グループの設定状況を視覚的に表示し、新規作成、編集などの操作を行うこ とができます。また、ツールバーを使って、デバイス、ポート、プロトコル(PLC)を起点として、ソートすることができます。 アイコン 名称 内容 デバイスビュー デバイスを階層構造のルートとしてツリー表示します。 ポートビュー ポート情報を階層構造のルートとしてツリー表示します。 プロトコルビュー PLC 情報を階層構造のルートとしてツリー表示します。 デバイスフォルダービュー デバイスフォルダーを階層構造のルートとしてでツリー表示します。 プロジェクトエクスプローラーを右クリックすると、関連した機能がポップアップメニューとして表示されます。 - 59 - 【診断ビュー】 各インターフェイスのアクセス状態やタグの現在値等を確認することができます。 【構造体テンプレート】 構造体テンプレートの設定を変更や確認を行います。 【タグリストなどの各種リスト表示】 タグリストや構造体テンプレートタグリスト、診断リスト、スクリプトリストなどが表示されます。 - 60 - 【プロパティグリッド】 各種設定でダイアログを開くことなく、直感的に設定の確認や変更が出来ます。 【メッセージビュー】 通信エラー情報や診断情報などのメッセージを表示します。 【ウォッチモニター】 任意のタグを登録して現在値をモニターすることができます。 【レジスターモニター】 ラダーツールがなくても、PLC 上のレジスター値をモニターできます。 - 61 - 5.2.1メニュー デバイスエクスプローラのメニューを下表に示します。 【ファイルメニュー】 項目 新規作成 開く 閉じる 上書き保存 名前を付けて保存 インポート エクスポート 定義情報 タグメモリ 定義情報 タグメモリ 最近使用したプロジェクトリスト 終了 【編集メニュー】 項目 切り取り コピー 貼り付け 削除 全て選択 検索 配列ビューアー 値の書込 プロパティ 内容 プロジェクトを新規に作成します。 プロジェクトを開きます。 プロジェクトを閉じます。 プロジェクトファイルを上書きして保存します。 プロジェクトに別名を付けて保存します。 プロジェクト情報をインポートします。 タグメモリのインポートを行い、オフラインモードに移行します。 プロジェクト情報を XML または CSV 形式でエクスポートします。 オフラインモニタ用に、タグメモリのエクスポートを行います。 最近使用したプロジェクトのリストが表示されます。 クリックすることでそのプロジェクトが開かれます。 デバイスエクスプローラを終了します。 内容 選択状態のタグを切り取ります。 選択状態のタグをコピーします。 タグ情報を貼り付けます。 選択状態のデバイス、グループ、タグを削除します。 選択状態のデバイスに含まれる全てのタグを選択します。 タグ名を指定して検索を行います。 配列ビューアーを表示します。 タグに現在値を書込みます。 選択状態のプロパティ画面を表示します。 - 62 - 【表示メニュー】 項目 デバイスモニター モニター キャッシュモニター オフライン 内容 タグの値を読み出し、ビューに表示しますので、通信状態や値が確 認できます。画面に表示中のデバイスのみ通信を行います。 クライアントからアクセス中のタグの値をビューに表示します。アク セスされていないタグは値が交信されません。 オフラインモードに移行します。 デバイス毎の通信状態、エラー発生回数等を表示します。 通信情報(I) INFO WARNING ERROR FATAL ERROR スクリプトログ メッセージ表示の 通信トレース アイコンフィルタ OPC トレース DDE/SuiteLink トレース DxpLink トレース 全て有効 全て無効 メッセージ表示の文字列フィルター メッセージ表示の一時停止 プロジェクトエクスプローラー メッセージビュー プロパティビュー ウィンドウ 診断ビュー ウォッチ モニター スタートページ ツールバー ステータスバー 2 進数 で表示 8 進数 で表示 値の表示形式 10 進数 で表示 16 進数 で表示 再表示 一般的な情報メッセージを表示します。 警告メッセージを表示します。 エラーメッセージを表示します。 重大なエラーメッセージを表示します。 スクリプトの実行状況をトレースします。 PLC との通信状態をトレースします。 OPC インターフェイスのアクセス状況をトレースします。 DDE/SuiteLink インターフェイスのアクセス状況をトレースします。 DxpLink インターフェイスのアクセス状況をトレースします。 上記 9 つのメッセージを全て有効にします。 上記 9 つのメッセージを全て無効にします。 メッセージ表示のフィルタリングを行います。 メッセージ表示を一時停止します。 プロジェクトエクスプローラーを表示します。 メッセージビューを表示します。 診断ビューを表示します。 ウォッチを表示します。(最大 8 ビュー) レジスターモニターを表示します。(最大 8 ビュー) スタートページを表示します。 ツールバーの表示/非表示を切り替えます。 ステータスバーの表示/非表示を切り替えます。 タグモニタやタグ診断におけるタグの現在値の表示形式を指定しま す。 表示内容の再描画を行います。 - 63 - 【プロジェクトメニュー】 項目 プロジェクトウィザード 新規作成 設定 ポート デバイス グループ タグ 構造体タグ メソッド デバイスフォルダー デバイスジェネレーター ポートジェネレーター タグジェネレーター ポート デバイス グループ タグ スタートアッププロジェクトに設定 Project1 のプロパティ 【ツールメニュー】 項目 設定 ユーザー管理 ログイン ログアウト OPC テストクライアントの起動 DDE テストクライアントの起動 オプション 【ヘルプメニュー】 項目 マニュアル ユーザーズガイド(サーバー本体編) ユーザーズガイド(PLC 接続編) OPC-DA 3.0 カスタムインターフェイス仕様書 OPC-DA 2.05A カスタムインターフェイス仕様書 OPC-DA 2.0 オートメーション インターフェイス仕様書 OPC-AE 1.10 カスタムインターフェイス仕様書 製品の登録 テクニカルサポート 製品の WEB サイト ライセンス DeviceXPlorer のバージョン情報 内容 プロジェクトウィザードを起動し、ポート・デバイス・タグの一括生成を 行います。 通信ポート情報を新規に作成します。 デバイス情報を新規に作成します。 グループ情報を新規に作成します。 タグ情報を新規に作成します。 構造体タグを新規に作成します。 メソッドタグを新規に作成します。 デバイスフォルダーを新規に作成します。 デバイスジェネレーターを起動します。 ポートジェネレーターを起動します。 タグジェネレーターを起動します。 通信ポート情報を設定します。 デバイス情報を設定します。 グループ情報を設定します。 タグ情報を設定します。 現在のプロジェクトファイルをスタートアッププロジェクトとして設定し ます。 プロジェクトのプロパティ画面(構成情報)を開きます。 内容 ユーザー権限を設定します。 ユーザーにログインします。 ユーザーからログアウトします。 OPC テストクライアントを起動します。 DDE テストクライアントを起動します。 プロジェクトのプロパティ画面(共通情報)を開きます。 内容 本体編マニュアルを表示します。 PLC 接続編マニュアルを表示します。 OPC-DA インターフェイス仕様書を表示します。 OPC-AE インターフェイス仕様書を表示します。 製品のユーザー登録を行います。 メーラーを起動します。 製品情報サイトを開きます。 ライセンス情報の表示と設定を行います。 デバイスエクスプローラのバージョン情報を表示します。 - 64 - 5.2.2ツールバー ツールバーとショートカットキーの内容は次の通りです。 機能名 アイコン ショートカット 新規作成 Ctrl + N 開く Ctrl + O 上書き保存 Ctrl + S 切り取り Ctrl + X コピー Ctrl + C ペースト Ctrl + V 削除 DEL デバイスモニター F3 キャッシュモニター F4 ポートの新規作成 Ctrl + P デバイスの新規作成 Ctrl + D グループの新規作成 Ctrl + G タグの新規作成 Ctrl + T 構造体タグの新規作成 Ctrl + R メソッドタグの新規作成 Ctrl + M デバイスフォルダーの新規作成 Ctrl + I プロジェクトウィザード Ctrl + W デバイスジェネレーター Ctrl + Shift + D ポートジェネレーター Ctrl + Shift + P タグジェネレーター Ctrl + Shift + T OPC テストクライアント DDE テストクライアント オプション - 65 - Alt + F7 プロジェクトのプロパティ 5.2.3その他のショートカットキー 機能名 ショートカット (タグを選択しながら) Shift + Enter (タグを選択しながら) Ctrl + Enter (デバイスやグループ、デバイスフォルダーを選択しながら)F2 値の書込 配列ビューアー 名前変更 5.2.4プロパティグリッド プロジェクトエクスプローラー上のプロジェクト名、デバイス名やポート名のクリック、タグリストビューでのタグ名のクリックなどで そのプロパティ情報がプロパティグリッドに表示されます。ダイアログを開くことなく、直感的に設定の確認や変更が出来ます。 各アイコンは以下の通りです。 アイコン 内容 アイコン 内容 項目別に並び替え デバイス表示 アルファベット順 グループ表示 適用 (内容を確定するときに押す) ポート表示 5.2.5リストビューのクリップ タグリストや構造体リスト、イベントスクリプトリストなどのタブを右クリックすると、タブクリップすることができます。 クリップすることで、常に表示しておきたいタブを残しておくことができます。 - 66 - 5.3 ポート ポートとは通信対象機器との通信設定を行うための設定情報です。 ポート設定はデバイス設定と組み合わせて利用します。 重要 ・ポートは最大 255 個まで作成することができます。 ・ポート名は管理上の名称であり、クライアントからアクセスする名前空間とは関係ありません。 Ethernet のポート設定では以下のような画面が表示されます。 通信ポート毎に設定項目が異なります。Ethernet ポート設定については 5.3.4 項、シリアルポート設定については 5.3.5 項、それ 以外の特殊ポートについては、ユーザーズガイド(PLC 接続編)をご覧ください。 - 67 - 5.3.1ポートの新規作成 「プロジェクト」メニューから「新規追加」→「ポート」を選択します。 ウィザードメニューから、ポートの種類を選択し、ポート名を入力します。 ポート設定が表示されますので、通信パラメーターを入力し、「完了」ボタンを押します。 - 68 - 完了を行うと、ポートビューでポートが新規作成されたのが分かります。 5.3.2ポート名の変更 ポート名が選択されている状態で再度クリックするか、または、F2 キーを押すとインプレース編集が可能になり、ポート名を変更 することができます。 ※既に存在するポート名には変更できません。 - 69 - 5.3.3ポート設定の編集 プロジェクトビューでポート名を選択して、プロジェクトメニューの「設定」→「ポート」でポート情報が表示されます。 タグリスト上のポートジャンプボタンや、ポート名を右クリックして「プロパティ」表示でも表示されます。 [プロジェクトメニューから] [ タグリストジャンプボタンから ] [ 右クリックメニューから ] Ethernet のポート設定では以下のような画面が表示されます。 通信ポート毎に設定項目が異なります。Ethernet ポート設定については 5.3.4 項、シリアルポート設定については 5.3.5 項、それ 以外の特殊ポートについては、ユーザーズガイド(PLC 接続編)をご覧ください。 - 70 - - 71 - 5.3.4Ethernet ポートの設定方法 項目 PING テスト マシン名 アダプター選択 アダプター 説明 状態 DHCP IPv4 アドレス IPv6 アドレス ネットワーク プロトコル アダプター IP アドレス アダプター ポート番号 機器アドレス 機器ポート番号 送信ディレイ タイムアウト 説明 設定された機器アドレスに対して Ping コマンドの送受信を行います。 Windows 8 / 7 / Vista / Server 2012 / 2008 などの UAC 有効時は、「管理者として実行」でデバイ スエクスプローラを起動する必要があります。またファイアウォールなどにより、PING コマンドの 送信が制限されている環境では、本機能はご利用頂けません。 コンピューター名が表示されます。 アダプターを指定する場合はチェックボックスをオンします。複数のアダプターが装着され、同一セ グメントに設定している場合などで、通信処理が使用するアダプターを限定するために利用する機 能です。アダプター固有の ID を記憶するため、本設定を有効にしたプロジェクトファイルを別の PC で流用する場合には、流用先の PC 上でアダプターを選び直す必要があります。 コンピューター名に装着されているアダプタリストが表示されます。 Ethernet アダプター名称が表示されます。 LAN ケーブル接続中は「Connect」と表示されます。 DHCP 使用時は「Enable」と表示されます。 選択されているアダプターの IPv4 アドレスが表示されます。 選択されているアダプターの IPv6 アドレスが表示されます。 IPv4 か IPv6 を選択します。 TCP/IP または UDP/IP を選択します。 選択したアダプターの IP アドレスが表示されます。アダプターを選択しない場合は、PLC と通信を 行うアダプターの IP アドレスかマシン名を記入することができます。「localhost」もしくは「0.0.0.0」 に設定すると、利用可能なアダプターを自動的に使用します。 選択したアダプターのポート番号を指定します。ポート番号に「0」を指定すると OS が自動的に空 いているポートを割り振ります。0 および 1024~65535 の範囲で設定可能です。 特に指定のない場合は、「0」を指定してください。 接続機器の IP アドレスまたはマシン名を指定します。 接続機器のポート番号を指定します。0~65535 の範囲で設定可能です。 相手機器からレスポンスを受信後、次のコマンドを送信するまでの待ち時間をミリ秒単位で指定し ます。0~65535 の範囲で設定可能です。 要求メッセージを送信後、応答メッセージを受信するまでの待ち時間を指定します。設定時間内に - 72 - リトライ回数 も応答できない場合はタイムアウトエラーになります。0~60 の範囲で設定可能です。 タイムアウト発生時にリトライする回数を指定します。0~10 の範囲で設定可能です。 備考 TCP/IP でアダプターポート番号に 0 以外を指定した場合、一度コネクションが切断(正常な手順で切断できた場合も含めて)さ れると、該当ポートが TIME_WAIT のステータスに遷移します。TIME_WAIT から CLOSED へ遷移するまでの間、ポート を利用することができません。これは TCP/IP で規定された正しい動作です。この間、デバイスエクスプローラではオープン異 常(Code=10048)などのエラーログが出力されます。ポートが再度利用できるようになるまでの時間は OS の設定に依存しま す(およそ 5 分程度)。TCP/IP 使用時はアダプターポート番号を 0 に設定し、PLC 側のオープン方式はアンパッシブに設定さ れることを推奨します。 【PING】 PING は、設定されている相手先 IP アドレスに対して ICMP の要求パケットを送信し、応答パケットを受信することによって、相 手先 IP アドレスが存在するか確認する機能です。PING を実行すると、次のように表示されます。 成功時: 「Reply from ・・・」 失敗時: 「Reply Timeout ・・・」 重要 Windows Vista 以降の OS で PING 機能を使用するには、管理ツールの「セキュリティが強化された Windows ファイアウォ ール」で「パブリックプロファイル」の「受信接続」を"許可"に設定してください。 また Windows Vista 以降の OS で UAC の有効の場合は、socket error [10013]が発生する可能性があるので、PING テスト を行う場合は“管理者として実行”でデバイスエクスプローラを立ち上げる必要があります。 - 73 - 5.3.4.1 TCP/IP 使用時のタイムアウト設定値 TCP プロトコルを使用する場合、デバイスエクスプローラのタイムアウト値/リトライ回数を適切に設定する必要があります。 PC が Windows OS で動作しているものとして、TCP の通信動作とタイムアウト設定値の関係を説明します。 【PC からコマンド送信】 PC からコマンド送信後、PLC から ACK が返信されない場合、次の間隔で TCP レベルでの再送が自動的に行われます。 デバイスエクスプローラ PLC コマンド 再送コマンド 0.5秒 1秒 再送コマンド 2秒 再送コマンド 4秒 再送コマンド 8秒 再送コマンド 16秒 ACKが返信されない場合、10054のエラー発生 Windows OSではEthernet使用時のRTO (再送信タイムアウトRetransmission Time-Out)の初期値は0.5秒になっており、 最大送信回数(デフォルト5回/31.5秒後)に達すると、アプリケーション層に10054(接続がリモート側からリセットされた)のエラ ーが返されます。このとき、デバイスエクスプローラはコネクションを切断して、再オープンを行います。 RTO は動的に変更され、タイムアウト値の 2 倍ずつ増えていきます。 - 74 - 【PLC(MELSEC-Q)から PC へのレスポンス送信】 MELSEC-Q シリーズの場合、PLC がレスポンス送信後、PC 側から ACK が返信されないと TCP 再送タイマー値(初期値 10 秒)で TCP レベルでの再送が行われ、TCP ULP タイマー値を越えると RESET フラグが送信されます。 デバイスエクスプローラ PLC(MELSEC) レスポンス TCP再送タイマ値 (初期値:10秒) 再送 TCP再送タイマ値 (初期値:10秒) 再送 TCP再送タイマ値 (初期値:10秒) 再送 RESET TCP UTLタイマ値 (初期値:30秒) (接続復帰) コマンド RESET TCPのRESETフラグ受信で、10054のエラー発生 回線切断中、RESET フラグはデバイスエクスプローラに到達しません。接続が復帰し、デバイスエクスプローラからコマンドを送 信した時にレスポンスとして RESET フラグが返されます。このとき、アプリケーション層に 10054(接続がリモート側からリセット された)が返りますので、デバイスエクスプローラはコネクションを切断し、再オープンを行います。 重要 TCP プロトコルを選択した場合、タイムアウトは「31.5 秒以上」、リトライ回数は「0」に設定されることを推奨します。 - 75 - 5.3.5シリアルポートの設定方法 項目 ポート番号 ボーレート パリティ フロー制御 データ長 ストップビット 送信ディレイ タイムアウト リトライ回数 説明 使用する COM ポートの番号を 1~256 の範囲で設定します。 ボーレートを選択します。 パリティの有無を選択します。 RTS / CTS のフロー制御を行う場合、「Hardware(RTS/ CTS)」を選択します。 データ長を選択します。 ストップビットを選択します。 相手機器からレスポンスを受信後、次のコマンドを送信するまでの待ち時間をミリ秒単位で指定しま す。0~65535 の範囲で設定可能です。 要求メッセージを送信後、応答メッセージの受信までの待ち時間を秒単位で指定します。 0~60 の範囲で指定します。 タイムアウト発生時にリトライする回数を指定します。0~10 の範囲で設定可能です。 備考 バイナリコードで通信する場合、8 ビット/1 文字で通信を行いますのでデータ長を「8」に設定する必要があります。 - 76 - 5.3.6ポートジェネレーター ポート設定を一括生成できます。 プロジェクトメニューから、「新規作成」→「ポートジェネレーター」から起動できます。 プロジェクトウィザードメニューで、ポートの種類を選択し、ポート名を入力します。 ポート設定を行います。 - 77 - ポートの自動生成方法は以下の項目が設定できます。 項目 デバイス名 デバイス生成個数 設定項目 内容 新規作成される 1 つ目のポート名が表示されます。 一括生成するデバイス数を 1~255 で指定してください。 設定できる項目は通信ポートによって異なります。 設定内容によっては増加量を指定できます。 - 78 - 5.3.7ダイナミックポート SYSTEM デバイスのシステムタグの中にダイナミックポート作成用のシステムタグ($PortParameter)が用意されています。 システムタグ名 $PortParameter 種類 グローバルシステムタグ 内容 ポート生成用パラメーターシステムタグ データ型 STRING この$ PortParameter に、ポート設定用の文字列を書き込むことでデバイス設定が動的に生成されます。 Ethernet ポートを生成する場合は以下のような文字列を書き込みます。 この文字列の書式については通信ポートによって異なります。 LibType=Ethernet;Info=Device1Port,2,localhost,0,127.0.0.1,5000,3,3,0,0,0,3,0,1, 詳細な文字列については、ポート選択時のプロパティグリッドのパラメーターを参考にしてください。 - 79 - 属性 R/W 5.4 デバイス デバイスとは通信対象機器のデバイス設定を行うための設定情報です。 デバイスはポート設定に属する設定で、グループ設定やタグ設定を管理する単位です。 重要 ・デバイス名は、クライアントからアクセスする名前空間に関わってきます。上図のように、デバイス Device1 の下にある タグ Tag001 にアクセスする場合は、「Device1.Tag001」という名前空間となります。 ・デバイスの最大数に制限はありません。 MELSEC Ethernet のデバイス設定では以下のような画面が表示されます。 PLC 毎に設定項目が異なりますので、詳細はユーザーズガイド(PLC 接続編)をご覧ください。 - 80 - 5.4.1デバイスの新規作成 ポートを指定してデバイス作成する場合と、ポート指定なしでデバイス作成する場合で設定手順が異なります。 5.4.1.1 ポート指定せずにデバイス作成 プロジェクトビューでは何も選択せず、プロジェクトメニューから「新規作成」→「デバイス」を選択します。 ウィザードメニューから、デバイスとポートの種類を選択し、デバイス名、ポート名を入力します。 項目 デバイス名 ポート名 内容 新規作成するデバイス名を入力します。 新規作成するポート名を入力します。 - 81 - ウィザードに沿って、ポート情報、デバイス情報、デバイスオプションを設定します。 完了を行うと、デバイスとポートが新規作成されます。 5.4.1.2 ポート指定してデバイス作成 プロジェクトビューでポートを選択して、プロジェクトメニューから「新規作成」→「デバイス」を選択します。 ポート名を選択して右クリックメニューから「新規作成」→「デバイス」でも同様です。 - 82 - ウィザードメニューから、デバイスとポートが選択します。同一のポートの場合は、ポート名は入力済み状態となるので、デバイス 名のみ入力します。 項目 デバイス名 ポート名 内容 新規作成するデバイス名を入力します。 新規作成するポート名を入力します。 同一種類のポートの場合は入力済み状態となります。 後はウィザードに沿って、デバイス情報、デバイスオプションを設定します。 完了を行うと、デバイスが新規作成されます。 - 83 - 5.4.1接続テスト デバイス設定には、「接続テスト」が用意されており、この接続テストで相手機器と問題なく通信できるか確認できます。 「接続テスト」ボタンを押すと、以下のような画面が表示され、接続テストが実行されます。 項目 内容 Connection Test Success と表示されると接続テストは成功です。 接続テスト結果表示画面 Connection Test Error と表示されると接続テストは失敗です。 リトライ 閉じる 接続テストをリトライします。 接続テスト画面を閉じます。 重要 ・OPC クライアント接続中やデバイスモニター中など既に通信が行われている状況では、TCP/IP のセッションが既に確立さ れている場合や、相手機器側の同時接続可能台数を超えるなどの場合は、接続テストに失敗する場合があります。 ・MODBUS の接続テストでは、保持レジスター1 番地を接続テストの対象としていますが、相手機器に当該レジスターが存在 しないことを考慮して、応答内容にかかわらず、応答があった場合は接続テスト成功とみなします。 - 84 - 5.4.2デバイス名の変更 デバイス名が選択されている状態で、再度クリックするか、または、F2 キーを押すとインプレース編集が可能になり、デバイス名 を変更することができます。 ※既に存在するデバイス名と「SYSTEM」という名称には変更できません。 5.4.3デバイス設定の編集 プロジェクトビューでデバイス名を選択して、プロジェクトメニューの「設定」→「デバイス」でデバイス情報が表示されます。 タグリスト上のデバイスジャンプボタンや、デバイス名を右クリックして「プロパティ」表示でも表示されます。 [プロジェクトメニューから] [ タグリストジャンプボタンから ] [ 右クリックメニューから ] - 85 - MELSEC Ethernet のデバイス設定では以下のような画面が表示されます。 PLC 毎に設定項目が異なりますので、詳細はユーザーズガイド(PLC 接続編)をご覧ください。 5.4.4デバイスオプション シミュレーションモードや二重化通信など、PLC に依存しないデバイス固有の情報を設定します。 - 86 - 項目 通信設定 通信周期 通信周期を固定 マックスエイジ リトライ後の通信をスキップ 全タグ通信 スローポーリングモード スロー周期 即座にエラーで応答 二重化通信 待機デバイス スタンバイ方式 コールド/ウォーム 切り替え方式 自動/手動 基本系に自動復帰 両系でリトライ 切替条件 切替時にポートクローズ シミュレーション サイン インクリメント ランダム 共有メモリ DxpLink 通信継続期間 DDE/SuiteLink アプリケーション名 トピック名 その他 タグの自動登録 未登録タグの拒否 システムタグ表示 システムタグに”$”記号使用 内容 デバイスの通信設定を行います。 DDE/SuiteLink 通信や DxpLink 通信に利用される通信周期です。 OPC 通信においても、固定された通信周期で通信を行います。 最新値の許容時間を指定します。10000msec とすると 10 秒間は最新値として扱います。 DDE/SuiteLink 接続、DxpLink 接続では非サポートです。 タイムアウトエラーなどの通信異常発生時に、リトライしても通信できない場合、それ以降 の通信をスキップします。 登録されている全スタティックタグの通信を自動的に開始します。 これにチェックを入れると通信が自動開始されます。 スローポーリングモードを利用するかどうかを設定します。 タイムアウトエラーなどの通信異常発生時に、通信周期を一定間隔まで落とします。 スローポーリングモード時の通信周期を指定します。 スローポーリングモード中の要求に対して、即座にエラーを返す場合は有効にします。 通信の二重化を行う場合はチェックボックスをオンします。 切り替え対象の待機デバイスを指定します。 二重化通信を行う場合は、必ず 2 デバイス以上必要です。 コールド:通信障害発生時に初めて通信を開始します。 ウォーム:正常通信中も待機系の通信を定期的に行います。 自動:通信障害発生時に自動的にデバイスを切り替えます。 手動:システムタグ$Standby を使ってデバイスを切り替えます。 待機系に切り替わった後、基本系の通信が復旧した場合に自動的に基本系に復旧しま す。ウォームスタンバイの場合のみ有効です。 基本系で通信障害が発生したら、待機系でもリトライをするかどうか選択します。 通常は、タイムアウトが発生し、リトライが全て失敗した場合に切り替わります。 チェックを入れることで、タグを利用した切り替え条件を指定できます。 通信経路が切り替わる際に、今まで通信していたポートをクローズします。 シミュレーション動作を有効にする場合にチェックボックスをオンします。 シミュレーション値がサインカーブで変化します。 シミュレーション値がインクリメントで変化します。 シミュレーション値がランダムで変化します。 シミュレーション値が静的に保持されます。 本デバイスに対して DxpLink サーバー機能を有効にするかどうかを選択します。 DxpLink クライアントから本デバイスに対して要求が停止してから、通信停止するまでの 時間を分単位で指定します。 DDE/SuiteLink インターフェイスを有効にする場合にチェックボックスをオンします。 現在設定されている DDE/SuiteLink のアプリケーション名が表示されます。 デバイス毎に任意のトピック名を設定することができます。 その他の設定です。 クライアントから登録されたタグを自動的にタグビューへ登録します。 ダイナミックタグを受け付けないようにします。 システムタグを表示します。 システムタグの先頭に「$」記号を使用します。 - 87 - 5.4.5ポートの変更方法 デバイスに割り付けられたポートを変更する場合、プロジェクトエクスプローラーでデバイスノードを選択している状態で、ポップ アップメニューを表示し、「ポート変更」をクリックします。 割り付けられているポートが表示されますので、変更したいポートを選択します。 「同種類のポートのみ表示」のチェックボックスをオフにすると、設定されている全てのポートが表示されますので、異種ポートへ の変更が可能になります。 重要 異種ポートへ変更するとデバイスとタグの設定情報が一部失われる可能性があります。 - 88 - 5.4.6デバイスジェネレーター デバイス設定を一括生成できます。 プロジェクトメニューから、「新規作成」→「デバイスジェネレーター」から起動できます。 プロジェクトウィザードメニューで、デバイスとポートの種類を選択し、デバイス名とポート名を入力します。 ポート名を選択してデバイスジェネレーターを起動すると、同一ポートの場合は作成済みポートが指定されます。 以降の設定は、ポートの設定によって変わってきます。 ポート新規作成 作成済みポートを利用 ポート情報 ― 1 デバイス情報 デバイス情報 2 デバイスオプション デバイスオプション 3 デバイスの自動生成方法 デバイスの自動生成方法 4 ポートの自動生成方法 ― 5 - 89 - [ ポート新規作成の場合 ] [ 作成済みポートを利用する場合 ] デバイスの自動生成方法は以下の項目が設定できます。 項目 デバイス名 デバイス生成個数 設定項目 内容 新規作成される 1 つ目のデバイス名が表示されます。 一括生成するデバイス数を 1~255 で指定してください。 設定できる項目は PLC によって異なります。 設定内容によっては増加量を指定できます。 - 90 - 5.4.7ダイナミックデバイス SYSTEM デバイスのシステムタグの中にダイナミックデバイス作成用のシステムタグ($DeviceParameter)が用意されていま す。 システムタグ名 $DeviceParameter 種類 グローバルシステムタグ 内容 デバイス生成用パラメーターシステムタグ データ型 STRING 属性 R/W この$DeviceParamete に、デバイス設定用の文字列を書き込むことでデバイス設定が動的に生成されます。 MelsecEthernet デバイスを生成する場合は以下のような文字列を書き込みます。 この文字列の書式については機種ごとに異なります。 LibType=MelsecEthernet;Port=Device1Port;Info=Device1,4,0,15360,960,188,160,0,0,255,0,1023,10, #OPTION#,0,0,0,,1,Device1,1000,0,0,1,1,0,0,0,0,0,10000,0,1,1,1,1,0,D1,0,0,24,0,1,1,1,1 詳細な文字列については、デバイス選択時のプロパティグリッドのパラメーターを参考にしてください。 - 91 - 5.5 グループ グループはタグを管理する単位です。 プロジェクトビューのデバイスの配下に存在するグループを選択するとグループ情報が表示されます。 重要 グループ名は、クライアントからアクセスする名前空間に関わってきます。 上図のように、デバイス Device1 の下にあるグループ Group1 のタグ Tag001 にアクセスする場合は、 「Device1.Group1.Tag001」という名前空間となります。 グループの設定項目は以下の通りです。 グループ設定は、共有メモリのようにグループ名のみ設定を持つものや、三菱電機製MELSECのようにグループ名以外の各種 設定があるものなど、デバイスによって異なります。デバイス毎の設定項目は、ユーザーズガイド(PLC 接続編)をご覧ください。 [ 共有メモリなど ] [ 三菱電機製 MELSEC など ] 項目 グループ名 その他の設定 内容 グループ名を設定します。 同一階層上のグループ名や一つ上の階層の構造体タグ名とは重複できません。 各機種によって設定内容が異なります。 - 92 - グループ設定は、デバイス配下に自由に階層構造で作成できます。 重要 グループ数に制限はありません。 5.5.1グループの新規作成 デバイスを選択して、プロジェクトメニューから「新規追加」→「グループ」を選択します。 プロジェクトビューでデバイスを選択して、右クリックメニューからも可能です。 [ プロジェクトメニューから ] [ 右クリックメニューから ] - 93 - グループ名を入力し、グループパラメーターを設定します。 5.5.2グループ名の変更 グループ名が選択されている状態で、再度クリックするか、または、F2 キーを押すとインプレース編集が可能になり、グループ名 を変更することができます。 備考 同一階層内で重複しない名称を付ける必要があります また、一つ上の階層の構造体タグ名とは重複できません。(Group1 で、Device1 直下の構造体タグ名は利用不可) - 94 - 5.5.3グループ設定の編集 プロジェクトビューでグループ名を選択して、プロジェクトメニューから「設定」→「グループ」を選択します。 タグリスト上のジャンプボタンや、右クリックの「プロパティ」、プロパティグリッドからの編集も可能です。 [プロジェクトメニューから] [ タグリストジャンプボタンから ] [ 右クリックメニューから ] [ プロパティグリッドから ] - 95 - 5.5.4グループ設定の削除 グループを削除するには、グループ名が選択されている状態で、プロジェクトメニューから「編集」→「削除」を選択します。 グループ名が選択されている状態で、Delete キーを押すか、右クリックメニューからの削除も可能です。 削除すると、そのグループの下に存在するグループやアイテムが削除されます。 重要 グループ内のアイテムが通信中の場合は削除できません。 - 96 - 5.6 デバイスフォルダー デバイスフォルダーはデバイスを管理する単位です。 プロジェクトビューのデバイスフォルダービューで、複数のデバイス設定を階層構造たがのグループとして管理できます。 重要 デバイスフォルダーはあくまでも管理上のフォルダーであり、クライアントからアクセスする名前空間とは関係ありません。 デバイスフォルダーの設定項目は以下の通りです。 項目 フォルダー名 内容 フォルダー名を入力します。 同一階層上のフォルダー名と重複できません。 - 97 - デバイスフォルダーの中に、複数のデバイスを自由に配置でき、階層構造で作成できます。 重要 デバイスフォルダー数に制限はありません。 5.6.1デバイスフォルダーの新規作成 デバイスフォルダービューに表示を切り替え、プロジェクトメニューから「新規追加」→「デバイスフォルダー」を選択します。 デバイスフォルダービューの右クリックメニューからも可能です。 [ プロジェクトメニューから ] [ 右クリックメニューから ] - 98 - デバイスフォルダー名を入力します。 5.6.2デバイスフォルダー名の変更 デバイスフォルダービューで、デバイスフォルダー名が選択されている状態で、再度クリックするか、または、F2 キーを押すとイ ンプレース編集が可能になり、デバイスフォルダー名を変更することができます。 備考 同一階層内で重複しない名称を付ける必要があります - 99 - 5.6.3デバイスフォルダーの削除 デバイスフォルダーを削除するには、デバイスフォルダー名が選択されている状態で、プロジェクトメニューから「編集」→「削除」 を選択します。 グループ名が選択されている状態で、Delete キーを押すか、右クリックメニューからの削除も可能です。 削除すると、そのデバイスフォルダーの下に存在するデバイスフォルダーも削除されます。 重要 デバイスフォルダーを削除しても、中身のデバイスやグループ、タグは削除されません。 - 100 - 5.7 タグ タグは、PLC のレジスターに名前や属性を定義したもので、クライアントはタグを使ってデータにアクセスします。 5.7.1ダイナミックタグとスタティックタグ デバイスエクスプローラ上で事前に定義されているタグを「スタティックタグ」といいます。スタティックタグを使用すると、下図のよ うにタグ名に別名を付けることやスケール変換設定を行うことができます。スタティックタグはプロパティビューの「タグ」画面で確 認できます。 また、タグの定義を省略して簡易的にアクセスすることも可能です。事前に定義されていないタグを「ダイナミックタグ」といいます。 ダイナミックタグは、「デバイスエクスプローラのデバイス名」+「PLC のレジスター名」でアクセスします。 上図は「Device1」で設定されている PLC に対してデータレジスタ「D0」の値を取得しています。 重要 デバイスエクスプローラは、タグ数に制限を設けておりませんので、お使いになるシステム(タグ数)に応じてCPU 性能・メモリ を高スペックにしてください。通信する PLC 台数が 50 台を超える場合や総タグ点数が 10 万点を超えるような場合は、デバイ スエクスプローラを複数台の PC に分け、負荷分散を図ることを推奨します。 - 101 - 5.7.2タグの新規作成 プロジェクトメニューから「新規作成」→「タグ」を選択します。 タグのパラメーターを設定し、「次へ」を押します。タグのパラメーターは接続機種ごとに異なります。 スケール変換設定やシミュレーション設定、アラーム設定を行う場合は、「次へ」進んで設定します。 <スケール変換設定> - 102 - <シミュレーション設定> <アラーム設定> 5.7.3タグ名の変更方法 タグビューで任意のタグを選択し、ポップアップメニュー、もしくはダブルクリックしてプロパティ画面を開きます。 設定されているタグ名を任意の名前に変更することができます。 タグを選択してプロパティグリッドでも設定変更可能です。 備考 重複しない名称を付ける必要があります - 103 - 5.7.4プロパティ(一般) タグの名前やデータ型等を設定します。 MELSEC Ethernet のダイアログ設定項目は下表の通りです。 PLC 毎に設定項目が異なりますので、詳細はユーザーズガイド(PLC 接続編)をご覧ください。 項目 内容 PLC のデバイス名に別名を付けてアクセスする場合に指定します。 タグ名 ダイナミックタグのアクセス形式がタグ名の右側に表示されます。 自動フォーマット タグ名を自動生成します。 コメント タグ名にコメントを付けることができます。 デバイス種類 アクセスする PLC のデバイスを指定します。 デバイスの番号を指定します。 デバイス番号 デバイス種類によって 10 進数で入力するものと、16 進数で入力するものがあります。 ブロック番号 デバイス種類に拡張ファイルレジスタ(ER)を指定した場合、ブロック番号を指定します。 データタイプを選択します。 BOOL: 論理型 BYTE: 8 ビット符号付整数型 UBYTE: 8 ビット符号無整数型 SHORT: 16 ビット符号付整数型 USHORT: 16 ビット符号無整数型 LONG: 32 ビット符号付整数型 データ型 ULONG: 32 ビット符号無整数型 FLOAT: 32 ビット実数型 LONGLONG: 64 ビット符号付整数型 ULONGLONG: 64 ビット符号無整数型 DOUBLE: 64 ビット実数型 STRING: 文字列型 文字列型、配列型の場合にサイズを指定します。 文字列型: 「1」を指定した場合、1 ワード分占有されます。 配列型(BOOL): 「1」を指定した場合、1 ワード分(16 ビット分)占有されます。 配列型(BYTE): 「1」を指定した場合、1 ワード分(2 バイト分)占有されます。 サイズ 配列型(SHORT): 「1」を指定した場合、1 ワード分占有されます。 配列型(LONG / FLOAT): 「1」を指定した場合、2 ワード分占有されます。 配列型(LONGLONG / DOUBLE):「1」を指定した場合、4 ワード分占有されます。 - 104 - 項目 バイト位置 ビット位置 属性 システム演算 バイトスワップ 配列 内容 BYTE 型選択時、上位バイト、下位バイトを選択します。 データ型に BOOL 型を指定した場合、ビット位置を指定します。 タグの属性を選択します。 ReadWrite: 読出/書込可能 ReadOnly: 読出専用 WriteOnly: 書込専用 【ビット反転】 データ型が BOOL 型の場合、ビット反転を行うことができます。 【BCD 演算】 データ型が BYTE 型、SHORT 型、LONG 型、LONGLONG 型の場合、BCD 演算を行うことが できます。 【2 進/8 進/10 進/16 進テキスト型/ファイル書込】 データ型が文字型の場合に各形式を選択できます。 上位バイトと下位バイトを反転する場合、チェックボックスをオンします。 データ型が SHORT 型、LONG 型、LONGLONG 型の場合、有効となります。 タグを配列型として定義する場合にチェックボックスをオンします。 5.7.5プロパティ(スケール設定) PLC から取得した値を工学値に変換する場合にスケール設定を行います。 項目 スケール変換 変換前-最小 変換前-最大 変換後-最小 変換後-最大 工学単位 変換方式 内容 スケール変換処理を実施する場合はチェックボックスをオンします。 PLC 内で取りうる値範囲の最小値を入力します。 PLC 内で取りうる値範囲の最大値を入力します。 実効値の最小値を入力します。 実効値の最大値を入力します。 単位を設定する場合に指定します。 変換方式として「線形」、「二乗根」、「力率」を指定します。 備考 ・OPC-DA のデッドバンド機能は、スケール変換が設定されたタグに対して有効です。 ・PLC の取得値が変換前範囲を超えている場合、品質フラグが 0x50(Engineering Unit Exceeded)になります。 - 105 - 5.7.5.1 線形変換 工学値変換とはデータを拡大/縮小し、適正値に加工することです。 生データの取りうる最小値、最大値を「変換前―最小」、「変換前―最大」に、工学値変換後の最小値、最大値を「変換後―最小」、 「変換後―最大」に設定してください。 生データを x、工学値変換後の値を y とし、「変換前―最大」:RMax、「変換前―最小」:RMin、「変換後―最大」:EMax、「変換後 ―最小」:Emin とすると、以下の演算式で表される演算を行います。 y = EMin+ (EMax -EMin)×(x -RMin) (RMax-RMin) 工学値変換の例をいくつか示します。 ・生データ 0~4000、工学値 300~3300 で、生データが 1500 の場合、工学値=1425 ・生データ 500~2500、工学値 0~400 で、生データが 1000 の場合、工学値=100 ・生データ 0~2000、工学値 0~400 で、生データが 3000 の場合、工学値=600 5.7.5.2 二乗根変換 生データに対して、二乗根変換(開平演算)を行います。 生データを x、開平演算後の値を y とし、「変換前―最大」、:RMax、「変換前―最小」:RMin、「変換後―最大」:EMax、「変換後 ―最小」:Emin とすると、以下の演算式で表される演算を行います。 (EMax -EMin)×(√(x)-RMin) y = EMin+ √(RMax-RMin) 5.7.5.3 力率変換 電力監視等でよく扱われる力率演算を行います。 生データを x、力率演算後の値を y とし、「変換前―最大」、:RMax、「変換前―最小」:RMin、「変換後―最大」:EMax、「変換後 ―最小」:Emin とすると、以下の演算式で表される演算を行います。 (1)-100%~0~100%の場合 EMin = 0、EMax =100 (2)-100%~-50%、50~100%の場合 EMin = 50、EMax =100 EMax EMin RMin 【x ≧ (RMax + RMin) / 2 の場合】 RMax -EMin 【X < (RMax + RMin) / 2 の場合】 5.7.5.4 -EMax 工学値の最小値、最大値などの変更 スケール変換が設定されているタグに対して、クライアントなどから「EU:0,1000,0,100」というような文字列を書き込むと、「変換 前-最小」、「変換前-最大」、「変換後-最小」、「変換後-最大」を動的に変更することができます。タグリストからの書き込みで は変更できません。クライアントから文字列型で書き込みしてください。 書込値 : EU:RMin,RMax,EMin,EMax - 106 - 5.7.6プロパティ(シミュレーション) PLC と通信を行わず、任意の値を返したい場合はシミュレーション設定を行います。 項目 シミュレーション サイン インクリメント ランダム(R) 共有メモリ(H) 内容 タグ単位でシミュレーション動作を行います。 サインカーブを描く値を返します。 1 ずつ増加する値を返します。 ランダムな値を返します。 静的な値を返します。クライアントから書き込んだ値は保持されます。 - 107 - 5.7.7プロパティ(アラーム) OPC A&E インターフェイスで PLC から取得した値でアラーム、イベント監視する場合にアラーム設定を行います。 設定項目 アラームコメント レベル アラーム LoLo/Low/High/HiHi 値 優先度 変化率 変化率 アラーム 単位 優先度 基準値 偏差 アラーム 小偏差/大偏差 %偏差 優先度 偏差デッドバンド イベント種別 ディスクリート アラーム 発生条件 優先度 説明 クライアントへ通知するアラームコメントを指定します。 レベル毎にアラームの有効・無効、および設定が可能。 BOOL、STRING、ARRAY 型タグ以外で設定できます。 タグの値が範囲内に入った場合に、アラームがアクティブになります。 アラームの優先度をしていします。 単位時間あたりの大きな変化を検出した場合に発生するアラーム。 BOOL、STRING、ARRAY 型タグ以外で設定できます。 変化量を量る単位を指定します。 設定範囲:秒/分/時 アラームの優先度を指定します。 偏差アラームの基準値を設定します。 BOOL、STRING、ARRAY 型タグ以外で設定できます。 偏差設定を行います。 %偏差を指定します。 アラームの優先度を指定します。 偏差のデッドバンドを指定します。 BOOL 型タグでのみ設定できるアラーム。 シンプルイベント/トラッキングイベント/コンディションイベント アラーム発生状態を ON の場合とするか、OFF の場合とするか指定しま す。設定範囲:On(True)/Off(False) アラームの優先度を指定します。 備考 ・アラーム設定は、ディスクリートアラームを除いて、スケール変換が設定されたタグに対して有効です。 ・ディスクリートアラームは論理型(BOOL)のタグにのみ有効です。 - 108 - 5.7.8設定情報の保存 「保存」ボタンを押すか、または、「OK」ボタンを押してダイアログを閉じると設定情報が保存されます。 5.7.9タグの連続追加 「保存」ボタンと「新規」ボタンを連続して押すと、デバイス番号が自動的にインクリメントされます。 5.7.10 タグジェネレーター タグジェネレーターを使用すると、特定の形式を持つタグを一括生成することができます。 プロジェクトメニューから、「新規作成」→「タグジェネレーター」で起動できます。 備考 タグ名に含まれる数字とデバイス番号が自動的にインクリメントされます。 【操作方法】 ( 1 ) ベースとなるタグ情報を設定します。 - 109 - ( 2 ) スケール変換やシミュレーション、アラーム設定が必要な場合は、パラメーターを設定します。 ( 3 ) 一括生成する個数と増加ステップを設定します。 項目 タグジェネレーター 開始ロケーション 自動生成するタグ数 増加ステップ 型サイズを無視 桁数 ゼロサプライ 初期値 オン (ベースとなるタグ名) 10 1 オフ 3 オン 内容 タグの一括生成を行います。 この名前を元に、タグ名も自動生成します。 自動生成するタグの個数を指定します。 デバイス番号の増加数を指定します。 データ型を無視して、デバイス番号を 1 ずつ増加します。 ゼロサプライを行う場合の桁数を指定します。 ゼロサプライする場合はチェックします。 備考 一括生成するタグ名が既に存在していた場合、タグ名の後ろに連番が付与されます。 例えば、「Tag001」から 10 個生成した場合、「Tag003」が既に存在していると、上図のように「Tag003 (1)」となります。 - 110 - 5.7.11 タグ名の拡張指定 事前にタグ情報を登録せず、動的にアイテムを登録してアクセスする場合は、デバイス名称およびデータ型の拡張指定を行いま す。拡張指定は、下記の規則に従ってアクセスしてください。 拡張指定 内容 備考 ビットデバイス:論理型 指定なし バイトデバイス: 8 ビット符号付き整数型 一部機種(SIMATIC)で符号なしとなる。 ワードデバイス: 16 ビット符号付き整数型 一部機種(TOYOPUC)で符号なしとなる。 :00~:15 論理型 8 ビット符号付き整数型 :L 8 ビット符号無し整数型 ビットデバイスには指定できません。 :LU 8 ビット符号付き整数型 :H 8 ビット符号無し整数型 :HU 16 ビット符号付き整数型 :W 16 ビット符号無し整数型 :WU 32 ビット符号付き整数型 :D 32 ビット符号無し整数型 :DU 32 ビット実数型 :R 64 ビット符号付き整数型 :I 64 ビット符号無し整数型 :IU 64 ビット実数型 :DR 整数型 BCD 変換 :B 読出専用属性 :OR 書込専用属性 :OW 配列型 :A99999 文字列型 :S99999 D1.S5 = “ABCDEFGHIJ” ファイル一括書込 :F99999 D1:F5=”C:¥test.txt” 2 進テキスト型 :B99999 D1.B2 = “11111111111111110000111100001111” 8 進テキスト型 :O99999 D1.O5 = “1,1234,77777,0,177777” 10 進テキスト型 :D99999 D1.D5 = “1,2,32767,-32768,0” 16 進テキスト型 :H99999 D1.H5 = “1234FFFF99990000ABCD” ビット反転 :V 論理型変換 一部機種のみ対応 :BL シミュレーションモード(サイン) :SS シミュレーションモード(共有メモリ) :SD シミュレーションモード(インクリメント) :SI シミュレーションモード(ランダム) :SR 備考 複数の拡張指定を組み合わせて使用する場合、セパレータとしてコロン(:)が使用できます。 例えば、書込専用属性を持つ 32 ビット符号無し整数の配列型は「D1:DU:OW:A100」となります。 - 111 - 5.7.11.1 指定なし 拡張指定を行わない場合、ワードデバイスは 16 ビット符号付整数型、ビットデバイスは論理型が標準となります。 (例)MELSEC の場合、データレジスタの 1000 番は「D1000」、リンクリレーの 1F 番の場合は「B1F」になります。 重要 一部機種では、指定なしのデータ型が異なる場合があります。(ジェイテクト TOYOPUC では 16 ビット符号なし整数型、シーメ ンス SIMATIC では 8 ビット符号なし整数型、ODBC クライアント接続では文字列型、など) 詳細についてはユーザーズガイド(PLC 接続編)を参照してください。 5.7.11.2 ビット位置指定(:nn) タグ名の後ろにセパレータとビット位置を指定することで、論理型として扱うことができます。 (例)D1 の 0 ビット目は「D1:0」、D1 の 15 ビット目は「D1:15」となります。 備考 一部の PLC を除いて、このタグへ書き込むことはできません。 5.7.11.3 バイト型(:L、:LU、:H、:HU) Low バイト/High バイトを指定することによって、レジスター値を 8 ビット符号付き/符号無し整数型として扱います。 (例)「D1:H」は、D1 の上位 8 ビットを整数値としてアクセスします。 5.7.11.4 ワード型(:W、:U、:WU) レジスター値を 16 ビット符号付き/符号無し整数型として扱います。 (例)「D1:WU」は、D1 を符号無し整数値としてアクセスします。 5.7.11.5 ロング型(:D、:DU) レジスター値を 32 ビットの符号付き/符号無し整数型として扱います。 (例)「D1:D」は、D1 と D2 を 32 ビット符号付き整数型としてアクセスします。 5.7.11.6 ロングロング型(:I、:IU) レジスター値を 64 ビットの符号付き/符号無し整数型として扱います。 (例)「D1:I」は、D1~D4 を 64 ビット符号付き整数型としてアクセスします。 5.7.11.7 単精度実数型(:R) レジスター値を 32 ビット実数型として扱います。 (例)「D1:R」は、D1 と D2 の 2 ワードに「0x42F6CCCD」が格納されている場合、「123.4」として読み出します。 5.7.11.8 倍精度実数型(:DR) レジスター値を 64 ビット実数型として扱います。 (例)「D1:DR」は、D1~D4 の 4 ワードに「0x40FE240C9FBE76C9」が格納されている場合、「123456.789」として読み出しま す。 - 112 - 5.7.11.9 BCD 型(:B) 読み出し時はレジスター値を整数型 BCD 値として BIN 変換し、書き込み時は、書込値をバイナリ値として BCD 変換します。 BIN 変換できない場合(読出不可時)は、品質フラグが「0x54」(Engneering Units Exceeded)となり、値は不定となります。 BCD 変換できない場合(書込不可時)は、エラーが返され、値は書き込まれません。 (例)D1 に 1234(16 進)が格納されている場合、「D1:B」を読み出すと、「1234(10 進)」が返されます。 (例)「D1.B」 に「5678(10 進)」を書き込むと、「5678(16 進)」が書き込まれます。 5.7.11.10 読出専用属性/書込専用属性(:OR、:OW) 読出専用属性のタグは不意の書き込み操作を防止することができます。また、読み出しを必要としないタグが大量にある場合、 書込専用タグとして使用することにより、パフォーマンスが向上します。 (例)「D1:OR」は D1 を読出専用属性としてアクセスします。 5.7.11.11 配列型(:A99999) タグ名の後ろにセパレータと要素数を指定することで配列型タグとして扱います。配列型タグは PLC に対して一括でアクセスしま すので、通信時間の最適化が図れます。 (例)D1:A10 ⇒ D1~D9 を要素数 10 の 16 ビット整数型配列でアクセス (例)D1:D:A64 ⇒ D1~D63 を要素数 64 の 32 ビット整数型配列でアクセス 備考 ・要素数が一括 R/W 点数を超える場合、データの同時性は保証されません。 ・最大要素数は 65535 です。 5.7.11.12 文字列型(:S99999) タグ名の後ろに「:S99999」(99999 はアクセスするレジスター点数)を指定することで、レジスター値を文字列として扱います。 (例)D0=0x4241、D1=0x4443、D2=0x4645、D3=0x4847、D4=0x4A49 が格納されている場合、「D0:S5」にアクセスすると、 「ABCDEFGHIJ」という文字列が得られます。 備考 ・要素数が一括 R/W 点数を超える場合、データの同時性は保証されません。 ・最大要素数は 65535 です。 5.7.11.13 ファイル一括書込(:F99999) タグ名の後ろに「:F99999」(99999 はアクセスするレジスター点数:1~65535)を指定することで、テキストファイルの内容をレジ スターに一括で書き込むことができます。テキストファイルは CSV 形式(カンマ区切り形式)で作成しておき、書き込み時にテキス トファイルのパス(完全パス)をタグに書き込みます。読出しを行うと、書き込んだファイルパスが取得できます。 (例)「D0:F5」に対して、テキストファイルのパス(完全パス)を渡すと、そのテキストファイルの CSV 形式のデータの先頭から、5 つの値を利用して D0 から 5 点に対して書き込みを行います。 備考 ・要素数が一括 R/W 点数を超える場合、データの同時性は保証されません。 ・最大要素数は 65535 です。 - 113 - 5.7.11.14 テキスト形式 2 進数型(:B99999) タグ名の後ろに「:B99999」を指定することで、レジスター値をテキスト形式2 進数型として扱います。なお、書き込み要求時、書込 値の中に数字(0~1)以外が含まれる場合、それ以降の値は無視されます。 (例)D0=0xF0F0 が格納されている場合、「D0:B1」にアクセスすると、「"1111000011110000"」という文字列が得られます。 (例)「D0:B1」に「"111a0000”」を書き込んだ場合、「”111”」として書き込まれます。 備考 ・要素数が一括 R/W 点数を超える場合、データの同時性は保証されません。 ・最大要素数は 65535 です。 5.7.11.15 テキスト形式 8 進数型(:O99999) タグ名の後ろに「:O99999」を指定することで、レジスター値をテキスト形式8 進数型として扱います。なお、書き込み要求時、書込 値の中に数字(0~7)以外が含まれる場合、それ以降の値は無視されます。 (例)D0=123、D1=99、D2=1 が格納されている場合、「D0:O3」にアクセスすると、「"173,143,1"」という文字列が得られます。 (例)「D0:O1」に「"135790”」を書き込んだ場合、「"1357”」として書き込まれます。 備考 ・要素数が一括 R/W 点数を超える場合、データの同時性は保証されません。 ・最大要素数は 65535 です。 5.7.11.16 テキスト形式 10 進数型(:D99999) タグ名の後ろに「:D99999」を指定することで、レジスター値をテキスト形式 10 進数型として扱います。なお、書き込み要求時、書 込値の中に数字(0~9)以外が含まれる場合、それ以降の値は「0」が書き込まれます。 (例)D0=123、D1=99、D2=1 が格納されている場合、「D0:D3」にアクセスすると、「"123,99,1"」という文字列が得られます。 (例)「D0:D3」に「"9,a,8”」を書き込んだ場合、D0=9、D1=0、D2=0 として書き込まれます。 備考 ・要素数が一括 R/W 点数を超える場合、データの同時性は保証されません。 ・最大要素数は 65535 です。 5.7.11.17 テキスト形式 16 進数型(:H99999) タグ名の後ろに「:H99999」を指定することで、レジスター値をテキスト形式 16 進数型として扱います。なお、書き込み要求時、書 込値の中に数字(0~9)以外が含まれる場合、それ以降の値は「0」が書き込まれます。 (例)D0=0x123、D1=0x10 が格納されている場合、「D0:H2」にアクセスすると、「"01230010"」という文字列が得られます。 (例)「D0:H3」に「"98765X”」を書き込んだ場合、D0=0x9876、D1=5、D2=0 が書き込まれます。 備考 ・要素数が一括 R/W 点数を超える場合、データの同時性は保証されません。 ・最大要素数は 65535 です。 各テキスト形式のスケール変換マトリクスは下表をご覧ください。 2進 8進 10 進 0 0 0 11111111 377 255 111111111111 7777 4095 0111111111111111 77777 32767 1000000000000000 100000 -32768 1111111111111111 177777 -1 - 114 - 10 進(符号無し) 0 255 4095 32767 32768 65535 16 進 0 FF FFF 7FFF 8000 FFFF 5.7.11.18 ビット反転(:V) タグ名の後ろに「:V」を指定することで、論理型の値を反転します。 (例)M0=Off が格納されている場合、「M0:V」にアクセスすると、On が得られます。「M0:V」に Off を書き込むと、M0=On となり ます。 5.7.11.19 論理型変換(:BL) タグ名の後ろに「:BL」を指定することで、読み出し値を論理型に強制変換します。 0 の場合は Off、0 以外の場合は On となります。 (例)Field1 に 123 が格納されている場合、「Field1:BL」にアクセスすると、On となります。 (例)Field1 に 0 が格納されている場合、「Field1:BL」にアクセスすると、Off となります。 重要 使用できるのは、以下の機種に限られます。 ・ロックウェル AB ・ODBC クライアント ・コグネックス Dataman ・キーエンス BCR ・オムロン RFID ・DDE クライアント ・マーストーケンソリューションズ BCR 5.7.11.20 サインシミュレーション(:SS) タグ名の後ろに「:SS」を指定することで、レジスター値をシミュレーションモード(サイン)が有効なタグとして扱います。 (例)「D1:SS」は、D1 の値がサインカーブの値(シミュレーション値)となります。 5.7.11.21 共有メモリシミュレーション(:SD) タグ名の後ろに「:SD」を指定することで、レジスター値をシミュレーションモード(共有メモリ)が有効なタグとして扱います。 (例)「D1:SS」は、D1 の値が固定値(シミュレーション値)となります。 5.7.11.22 インクリメントシミュレーション(:SI) タグ名の後ろに「:SI」を指定することで、レジスター値をシミュレーションモード(インクリメント)が有効なタグとして扱います。 (例)「D1:SS」は、D1 の値がインクリメント値(シミュレーション値)となります。 5.7.11.23 ランダムシミュレーションモード(:SR) タグ名の後ろに「:SR」を指定することで、レジスター値をシミュレーションモード(ランダム)が有効なタグとして扱います。 (例)「D1:SS」は、D1 の値がランダム値(シミュレーション値)となります。 - 115 - 5.7.12 システムタグ 5.7.12.1 グローバルシステムタグ デバイスエクスプローラ全体で有効なシステムタグは次の通りです。SYSTEM デバイス内に存在するシステムタグです。 (使用例:SYSTEM.$Clock1000、SYSTEM.$TagCount) 名称 バージョン情報 ライセンス状態 クロック(100ms) クロック(200ms) クロック(500ms) クロック(1000ms) クロック(2000ms) クロック(1 分) クロック(1 時間) タグ名 $Version $License $Clock100 $Clock200 $Clock500 $Clock1000 $Clock2000 $ClockMin $ClockHour 型 VT_BSTR VT_BOOL VT_BOOL VT_BOOL VT_BOOL VT_BOOL VT_BOOL VT_BOOL VT_BOOL 属性 R R R R R R R R R ハートビート $HeartBeat VT_UI4 R 常時 ON 常時 OFF 自己診断エラー 自己診断エラーコード 自己診断エラーサブコード 時計データ(時) 時計データ(分) 時計データ(秒) 時計データ(ミリ秒) 日付データ(年) 日付データ(月) 日付データ(日) $On $Off $Diagnosis $DiagCode $DiagSubCode $Hour $Min $Sec $Msec $Year $Month $Day VT_BOOL VT_BOOL VT_BOOL VT_UI4 VT_UI4 VT_UI4 VT_UI4 VT_UI4 VT_UI4 VT_UI4 VT_UI4 VT_UI4 R R R R/W R/W R R R R R R R ログ保存実行フラグ $SaveLog VT_BOOL R/W ログ保存ファイル名 $LogFile VT_BSTR R/W スクリプトログフラグ 通信トレースフラグ DxpLink トレースフラグ $DumpScript $DumpCom $DumpDxpLink VT_BOOL VT_BOOL VT_BOOL R/W R/W R/W DDE/SuiteLink トレースフラグ $DumpDde VT_BOOL R/W OPC トレースフラグ トレース INFO トレース WARNING トレース ERROR トレース FATAL ERROR 接続クライアント数 異常クライアント数 $DumpOpc $TraceInfo $TraceWarning $TraceError $TraceFatalError $ClientCount $ClientErrors VT_BOOL VT_BOOL VT_BOOL VT_BOOL VT_BOOL VT_UI4 VT_UI4 R/W R/W R/W R/W R/W R R - 116 - 備考 例:"Version 5.0.0.1” 正常時:FALSE、異常時:TRUE 50ms オン後 50ms オフを繰り返し 100ms オン後 100ms オフを繰り返し 250ms オン後 250ms オフを繰り返し 500ms オン後 500ms オフを繰り返し 1 秒オン後 1 秒オフを繰り返し 30 秒オン後 30 秒オフを繰り返し 30 分オン後 30 分オフを繰り返し 1 秒毎にインクリメントするリングカウンター (サーバーが動作していることを確認可能) 常時 TRUE 常時 FALSE エラーが発生している間だけオン 最後に発生したエラーコード 最後に発生した詳細エラーコード PC の時計データを格納 TRUE が書き込まれるとログメッセージを保 存し、要求受付後に FALSE に変化 絶対パス、相対パスとも指定可能 指定しない場合(NULL)、YYYYMMDD HHMMSS.CSV 形式で保存 スクリプトログフィルターの有効/無効 通信トレースフィルターの有効/無効 DxpLink トレースフィルターの有効/無効 DDE/SuiteLink トレースフィルターの有効 /無効 OPC トレースフィルターの有効/無効 INFO メッセージを出力 WARNING メッセージを出力 ERROR メッセージを出力 FATAL ERROR メッセージを出力 接続中のクライアント数 異常発生中のクライアント数 名称 タグ名 型 属性 接続グループ数 $GroupCount VT_UI4 R 異常グループ数 $GroupErrors VT_UI4 R タグ総数 $TagCount VT_UI4 R 異常タグ数 ポートパラメーター $TagErrors $PortParameter VT_UI4 VT_BSTR R R/W デバイスパラメーター $DeviceParameter VT_BSTR R/W 統計情報のリセット $ResetStatisticalTags VT_ BOOL R/W - 117 - 備考 外部からアクセス中の OPC グループ数、 DDE/SuiteLink トピック数 異常発生中のグループ数 アクティブなタグの総数 (OPC DA および DDE のアイテム数) 異常発生中のタグ数 ダイナミックポート用のポートパラメーター ダイナミックデバイス用のデバイスパラメ ーター TRUEを書き込むと、統計情報のシステム タ グ ($ElapseMin 、 $ElapseMax 、 $Elapse、$ErrorCounts、$SendCount、 $RecievedCounts)をリセットします。 5.7.12.2 デバイスシステムタグ デバイス毎に有効なシステムタグは次の通りです。各デバイス内に存在するシステムタグです。 (使用例:Device1.$Status、Device2.$Simulate) 名称 タグ名 型 属性 通信状態 $Status VT_BOOL R/W 伝文/通信エラー発生回数 メッセージ送信回数 メッセージ受信回数 ビット一括 R/W の最大点数 ビット書込の最大点数 ワード書込の最大点数 $ErrorCounts $SendCounts $ReceivedCounts $BitRWRange $WordRWRange $ReadRange $BitWRange $WordWRange VT_UI4 VT_UI4 VT_UI4 VT_UI4 VT_UI4 VT_UI4 VT_UI4 VT_UI4 R R R R R R R R 二重化通信スタンバイ状態 $Standby VT_BOOL R/W シミュレーション状態 $Simulate VT_BOOL R/W 通信ポート名称 ラップタイム(現在) ラップタイム(最小) ラップタイム(最大) 通信負荷率(%) 通信周期(msec) $PortName $Elapse $ElapseMin $ElapseMax $ElapseRate $DeviceUpdateRate VT_BSTR VT_UI4 VT_UI4 VT_UI4 VT_UI4 VT_UI4 R R R R R R/W シミュレーションタイプ $SimulationType VT_UI4 R/W スローポーリングモード $SlowpollingMode VT_BOOL R/W 接続テスト $ConnectionTest VT_BOOL R プライマリーデバイス通信状態 セカンダリーデバイス通信状態 $PrimaryStatus $SecondaryStatus VT_BOOL VT_BOOL R/W R/W ワード一括 R/W の最大点数 - 118 - 備考 通信中:TRUE、停止中:FALSE シミュレーションモードの場合のみ、自由に 書き換えることが可能です。 エラーの発生回数 メッセージの送信回数 メッセージの受信回数 ビット一括コマンドの最大点数 ワード一括コマンドの最大点数 ビットランダム書込コマンドの最大点数 ワードランダム書込コマンドの最大点数 二重化通信使用時のアクティブな系統 プライマリーデバイスで通信中:FALSE セカンダリーデバイスで通信中:TRUE シミュレーションモード実行中:TRUE PLC 通信中:FALSE ポート名称 通信に要した時間。複数の OPC グループ が当該デバイスをアクセス中は、グループ 毎のラップタイムが交互にセットされます。 現在のラップタイム÷更新周期×100(%) デバイスの通信周期 シミュレーションモードのタイプ 0:サインカーブ 1:インクリメント 2:ランダム 3:共有メモリ スローポーリング中:TRUE 正常通信中:FALSE 読出しを行うと「接続テスト」を行います。 接続テスト成功時:TRUE 接続テスト失敗時:FALSE 二重化設定時の基本系の通信状態 二重化設定時の待機系の通信状態 5.7.12.3 コネクションシステムタグ コネクション毎に有効なシステムタグは次の通りです。OPC クライアントの各コネクションに存在するシステムタグです。コネクシ ョン毎に値は変わります。(使用例:SYSTEM.$UpdateInterval、SYSTEM. $Elapse) 名称 タグ名 型 属性 更新周期 $UpdateInterval VT_UI4 R/W エラーコード エラー内容文字列 伝文/通信エラー発生回数 メッセージ送信回数 メッセージ受信回数 $ErrorCode $ErrorText $ErrorCount $SendCount $ReceivedCount VT_UI4 VT_BSTR VT_UI4 VT_UI4 VT_UI4 R/W R/W R R R 書込処理状態 $WriteComplete VT_BOOL R 読出処理状態 $ReadComplete VT_BOOL R/W 登録済みのタグ数 アクティブなタグ数 エラー発生中のタグ数 メッセージ数 ラップタイム(現在) ラップタイム(最小) ラップタイム(最大) 通信負荷率 $ItemCount $ActiveItemCount $ErrorItemCount $MessageCount $Elapse $ElapseMin $ElapseMax $ElapseRate VT_UI4 VT_UI4 VT_UI4 VT_UI4 VT_UI4 VT_UI4 VT_UI4 VT_UI4 R R R R R R R R 備考 現在の更新周期。 「0」を指定すると通信を停止します。 最後に発生したエラーコード 最後に発生したエラー内容文字列 エラーの発生回数 メッセージの送信回数 メッセージの受信回数 書込要求を受け付けると「0」、書込処理が終 わる(完了/失敗)と「1」になります。 アクティブなタグの読み出しが全ての終わる と「1」、タグが追加されると「0」に戻り、その 読出処理が成功すると「1」になります。クライ アントから「0」を書き込むと、再度、全読出処 理が完了後に「1」になります。 登録済みタグ数 アクティブなタグ数 品質フラグが GOOD 以外のタグ数 Read/Write メッセージの総数 通信に要した時間 現在のラップタイム÷更新周期×100(%) 備考 コネクションタグのうち、クライアント単位通信無効時(デフォルト設定)では、以下の 4 コネクションタグのみ利用できます。 ・$UpdateInterval ・$ItemCount ・$ActiveItemCount ・$ErrorItemCount - 119 - 5.7.13 タグモニター スタティックタグは、クライアントからのアクセス有無に関わらず、デバイスエクスプローラの画面上から現在値をモニターするこ とができます。 【操作方法】 表示メニューから「デバイスモニター」、「キャッシュモニター」を選択します。 項目 デバイスモニター キャッシュモニター 内容 PLC との通信を行い、ライブデータをモニターします。 PLC との通信を行わず、デバイスエクスプローラ内のキャッシュ値をモニターします。 クライアントがアクセス中のタグのみ値更新されます。 タグモニタを行うと、現在値および品質フラグ等が画面上に表示されます。 備考 デバイスモニター機能使用時の更新周期は、共通プロパティ[全般]のモニター周期の時間となります。デフォルトでは 600msec 毎です。 - 120 - 5.7.13.1 デバイスモニター デバイスモニターを行うと画面に表示中のタグに対して、PLC との通信を行い、ライブデータをモニターします。 通信負荷へ影響を与えるため、通信設定やタグ設定が問題ないか、デバッグ目的で使用してください。 デバイスモニター実行中は、右下のステータスバーに、Monitoring と表示されます。 5.7.13.2 キャッシュモニター キャッシュモニターを行うと画面に表示中のタグに対して、PLC との通信を行わず、デバイスエクスプローラ内のキャッシュ値を モニターします。 クライアントなどからアクセスされたタグに関しては最新のキャッシュ値が表示されます。 一度も通信されていないタグは Waiting forInitial data となり、初期値がない状態となります。 キャッシュモニター実行中は、右下のステータスバーに、Monitoring と表示されます。 - 121 - 5.7.14 オフラインモード オフラインモードに移行すると、PLC との通信を一切行わなくなり、内部に持っているキャッシュ値で処理を行います。 このモードに移行するとクライアントなどへの処理にも影響を与えます。 オフラインモードに利用するタグメモリはファイルメニューのインポート/エクスポートで操作できます。 オフラインモードに移行する際には確認メッセージが表示されます。 オフラインモード実行中は、右下のステータスバーに、Offline Monitoring と表示されます。 重要 オフラインモードに移行すると、相手機器と一切通信処理を行わなくなります。システム運用中に移行される場合は、十分注意 してください。 - 122 - 5.7.15 タグへの値書き込み タグモニタ中に、タグに対して値の書き込みができます。 任意のタグを選択し、右クリックメニューから「値の書込」を選択します。 値の書き込みウィンドウが出てくるので値を入力し、OK を押すと書き込みされます。 備考 構成プロパティの「GUI」→「GUI 書込操作」が「書込を許可する」となっている必要があります。 - 123 - 5.7.16 ウォッチ ウォッチは、タグリストで任意のタグの右クリックメニューで「ウォッチへ追加」する、もしくはウォッチビューへドラッグ&ドロップす ることで、動的にタグの現在値をモニターする機能です。 「デバイス名.タグ名」を直接入力することで、ダイナミックタグを監視することも可能です。 ウォッチに登録したタグリストはポップアップメニューを使って、ファイルに保存しておくことができます。 備考 不適切なタグ(存在しないタグや識別できないアドレス、許可されていない書式など)を登録すると「N/A」と表示されます。 - 124 - 5.7.17 配列ビューアー 配列ビューアーは、配列のタグの値を一覧で見る機能です。 タグを右クリックして、配列ビューアーを選択するか、タグを選択し、Ctrl + Enter キーで表示されます。 配列ビューアーでは、値の確認や、指定値の書込が可能です。 書き込みするには、対象要素の値部分を編集し、”書込”ボタンを押して下さい。 項目 値/Copy 要素 現在値 書込値 書込値クリア 書込 内容 対象のタグの値が表示されます。「Copy」ボタンを押すと、値をクリップボードにコピーします。 配列の要素番号が表示されます。 要素ごとの値が表示されます。 要素ごとの書き込む値を編集します。 全ての要素の書込値をクリアします。 対象タグに対して、書込値を書き込みます。 - 125 - 5.7.18 レジスターモニター ラダーツールがなくても、PLC 上のレジスター値をモニターできます。 レジスターモニターでは、事前にタグ設定(スタティックタグ設定)をする必要がありません。 レジスターモニターは、「表示」メニューから、「ウィンドウ」→「モニター」→「モニター(1)」で表示できます。 最大 8 つのモニターウィンドウを表示できます。 モニターウィンドウは以下のようなウィンドウとなっています。 項目 デバイス レジスター 内容 対象のデバイスを選択します。 PLC のレジスターを入力します。 - 126 - デバイスを選択し、レジスターを入力して、エンターキーを押すとレジスターモニターが開始します。例えば、MELSEC の場合は、 レジスターに D0 と入力すると、以下のようにモニターできます。 レジスターモニターを右クリックメニューで以下のことが選択できます。 項目 表示形式 16 進数で表示 多点表示 内容 表示するデータ型を選択できます。 現在値を 16 進数で表示します。 多点(8 点)表示を行います。 - 127 - 10 点で折り返し 多点表示の場合のみ選択でき、10 点表示となります。 値の書き込み レジスターに対して値を書き込みます。 書込値の形式および 10 進数か 16 進数か選択できます。 [Ctrl] + [エンターキー]でも書き込みできます。 重要 レジスターモニターは、PLC ドライバー用のモニター機能になります。 連続したデータ領域であるレジスター―エリアを持っていない機種(たとえばODBCクライアント接続機能やDDEクライアント 機能など)は、レジスターモニターに対応していません。 - 128 - 5.8 メソッドタグ スクリプト処理を持つメソッドタグを作成できます。 メソッドタグに対して任意の値を書き込むと、そのスクリプトロジックが処理されます。 5.8.1メソッドタグの作成 タグリストの右クリックメニューから「新規作成」→「メソッド」を選択します。 メソッドタグの設定を行います。 項目 名前 周期 実行 スクリプト 内容 メソッドタグの名前を設定します メソッドスクリプト内で使用するタグのキャッシュ値に対する更新周期を指定します。 メソッドタグを有効にする場合はチェックをオンします。 任意のスクリプトを記入できます。 スクリプトについては 6 章を参照して下さい。 - 129 - 5.8.2スクリプトタグの実行 以下のようなスクリプトタグを作成します。 クライアントからこのタグに対して値を書き込むと、そのメソッドタグに割り付けたスクリプトが実行されます。 メソッドの実行結果については、スクリプトログを有効にする場合、メッセージビューで確認することができます。 備考 ・メソッドタグへ任意の値を書き込むとメソッドタグが実行されます。 ・タイミングや周期によってはスクリプト内のキャッシュ値が存在しない場合があります。キャッシュ値を確実に更新するには 同期読出しをスクリプト内で実行してください。 - 130 - 5.9 構造体タグ 複数のメンバー変数を持つ構造体の型を定義し、その定義に基づいて構造体タグを生成するだけで同様のタグ構造を使用でき ます。構造体には構造体テンプレートと、構造体タグがあります。 名称 構造体テンプレート 構造体タグ 内容 複数のメンバー変数を持つ構造体の型の定義 構造体テンプレートに基づいて作成されたタグ 重要 ODBC クライアント機能では、構造体タグを利用できません。 5.9.1構造体テンプレートの定義 構造体タグを利用するには、まず構造体テンプレートを作成します。 構造体テンプレートビューの右クリックメニューから「新規作成」を行います。 「Template01」という構造体テンプレートが作成されます。 Template01 をクリックすると、構造体テンプレートの設定リストが表示されるので、右クリックメニューから「新規作成」→「タグ」/ 「構造体」で構造体テンプレートに、メンバー変数を設定していきます。 - 131 - 構造体テンプレートのメンバー変数のパラメーター設定を行います。 <タグ> 項目 メンバー名 コメント データ型 サイズ 属性 システム演算 バイトスワップ 配列 内容 構造体テンプレートのメンバー変数名を指定します。 メンバーにコメントを付けることができます。 データタイプを選択します。 文字列型、配列型の場合にサイズを指定します。 メンバー変数の属性を選択します。 システム演算の方式を選択します。 上位バイトと下位バイトを反転する場合、チェックボックスをオンします。 タグを配列型として定義する場合にチェックボックスをオンします。 <構造体> 項目 メンバー名 コメント 構造体型 構造体情報表示 内容 構造体テンプレートのメンバー変数名を指定します。 メンバーにコメントを付けることができます。 既にほかの構造体テンプレートが存在する場合のみ、構造体を選択できます。 指定された構造体のメンバー変数リストが表示されます。 - 132 - 構造体テンプレートを複数利用することで、以下のように構造体を含んだ、多階層の構造体テンプレートを作成できます。 構造体テンプレートビューの右クリックメニューは以下の通りです。 項目 新規作成 名前の変更 イベントスクリプト 削除 内容 構造体テンプレートを新規作成します。 構造体テンプレートの名前を変更します。 構造体テンプレートのイベントスクリプトを設定します。 リストビューにイベントスクリプトが表示されます。 構造体テンプレートを削除します。 削除する構造体テンプレートが他の構造体テンプレートで使用されている場合は削除できません。 重要 ・構造体テンプレートが他の構造体テンプレートで利用されている場合は削除できません。 ・構造体テンプレートを元に作成された構造体タグが通信中の場合は削除できません。 - 133 - 構造体テンプレートの変数リストの右クリックメニューは以下の通りです。 項目 新規作成 プロパティ コピー 貼り付け 削除 上へ移動 下へ移動 内容 メンバー変数に新規タグや新規構造体を追加します。 選択中のメンバー変数のプロパティを表示します。 選択中のメンバー変数をコピーします。 コピーしたメンバー変数を貼り付けます。 選択中のメンバー変数をを削除します。 削除する構造体テンプレートが他の構造体テンプレートで使用されている場合は削除できません。 構造体テンプレートの中のメンバー変数の並びを上に移動します。 順番は No.で示されます。 構造体テンプレートの中のメンバー変数の並びを下に移動します。 順番は No.で示されます。 重要 ・構造体テンプレートを元に作成された構造体タグが通信中の場合はその中のメンバー変数は削除できません。 - 134 - 5.9.2構造体タグの作成 作成した構造体テンプレートを用いて、構造体タグを作成します。 タグリストの右クリックメニューから、「新規作成」→「構造体タグ」を選択します。 構造体タグの設定パラメーターを入力します。 項目 構造体タグ名 コメント 構造体型 先頭レジスター 構造体割り付けリスト 内容 構造体タグの名称を入力します。 任意のコメントを付けることができます。 構造体テンプレートを選択します。 先頭レジスターを指定し、反映ボタンを押すとその先頭レジスターに基づいて、構造体メンバーの 割り付けレジスターを自動で割り付けます。 構造体の各メンバーに割り当てるレジスターを入力します。 「F2」キーもしくは「エンター」キーで入力できます。適切なレジスターを割り当ててください。 重要 割り当てるレジスターによって、レジスターの設定内容が拡張指定付きの文字列に変わります。 たとえば、Float 型のメンバーに「D0」と入力して設定を保存すると、「D0:R」として登録されます。 - 135 - 構造体タグはタグリストで、通常のタグと同様に閲覧できます。 [+]アイコンや、[―]アイコンで、構造体タグのタグを開いたり、閉じたりできます。 <開いた状態> <閉じた状態> タグリストの右クリックメニューの「すべて展開」と「すべて省略」で、構造体タグの一括展開操作が可能です。 - 136 - 5.9.3構造体タグにクライアントからアクセスする場合 クライアントからアクセスする場合は、「構造体タグ名.メンバー変数名」としてアクセスしてください。 以下の Switch の場合は、「Device1.StructTag01.P01.Switch」としてアクセスします。 クライアントからブラウズすると以下のようなイメージとなります。 重要 クライアントからアクセスする名前は、グループの考え方と同じです。グループ「AAA」というものと、構造体タグ「AAA」は同じ ものとして扱われますので、注意してください。 - 137 - 5.10 ブリッジ ブリッジ機能を使ってタグ対タグ、もしくはグループ(もしくはデバイス)対グループ(もしくはデバイス)の値転送を行うことができ ます。 5.10.1 ブリッジ設定 タグやデバイス、グループにはブリッジ機能を設定することができます。プロジェクトビューでデバイスやグループを右クリックし て、「イベント」を選択すると、イベントリストを表示します。タグリストのタブで、イベントのアイコンをクリックすることでも、現在開 いているデバイスやグループに関するイベントリストを表示することができます。 デバイスやグループに設定されたイベントの一覧が表示されます。 右クリックメニューから、イベントの新規作成や、削除、実行・停止の切り替えなどを行うことができます。 備考 ブリッジ数に上限はありませんが、ブリッジ数が増えると通信負荷が増えるので注意してください。 - 138 - ブリッジ設定を行います。 設定項目 名前 イベント タグ 実行 周期 内容 ブリッジ名を指定します。 ブリッジの実行状態を指定します。 実行にチェックが入っていないと、ブリッジは実行されません。 ブリッジの実行条件となるイベントを指定します。 周期・・・指定された周期(一定周期)でブリッジを実行します。 タグ変化・・・指定されたタグの値が変化した場合に、ブリッジを実行します。 イベント起動・・・当該デバイスのエンジン起動時(※)に、ブリッジを実行します。 イベント停止・・・当該デバイスのエンジン停止時(※)に、ブリッジを実行します。 イベントで「タグ変化」を選択した場合、指定タグおよび条件を指定できます。 タグは、絶対パスおよび相対パスで指定できます。配列型や文字列型は指定できません。 [ON 中]・・・指定タグが ON 中(0 以外の場合)に場合に実行されます。 [変化時]・・・指定タグの値、品質、タイムスタンプが変更した場合に実行されます。 [変化時(値)] ・・・指定タグの値が変更した場合に実行されます。 [変化時(品質)] ・・・指定タグの品質が変更した場合に実行されます。 [変化時(タイムスタンプ)] ・・・指定タグのタイムスタンプが変更した場合に実行されます。 [立ち上がり]・・・指定タグが OFF から ON に変わった場合に実行されます。 [立ち下り] ・・・指定タグが ON から OFF に変わった場合に実行されます。 ブリッジの実行周期および通信周期を指定します。 ※ アプリケーション起動時に、イベントエンジンが起動、アプリケーション終了時にイベントエンジンが停止します。また、当該デ バイスのイベントリスト上で、イベントの新規作成/変更/削除を行ったタイミングで、該当デバイスのイベントエンジンが停 止して、再起動します。 - 139 - ブリッジ 設定項目 方式 転送先 転送元 変換(x) 追加 削除 OK キャンセル 内容 ブリッジの方式を指定します。 値の転送先となるタグやデバイス、グループのパスを指定します。 インプレース編集による直接入力、もしくは「…」ボタンをクリックで表示されるブラウズダイアロ グ(※)で選択することができます。 値の転送元となるタグやデバイス、グループのパスを指定します。 インプレース編集による直接入力、もしくは「…」ボタンをクリックで表示されるブラウズダイアロ グ(※)で選択することができます。 スクリプトによる四則演算を行えます。 方式で「Group」を指定する場合、値の変換を行うことはできません。 設定例: x * 100 ブリッジ設定を一行追加します。 選択中のブリッジ設定行を削除します。 設定中の内容を確定します。 設定中の内容を破棄し、変更をキャンセルする。 ※ ブラウズダイアログ機能を用いてタグやデバイス、グループを選択することができます。 - 140 - 5.11 メッセージ 5.11.1 メッセージについて デバイスエクスプローラは、メッセージの重要度を 4 段階(情報、警告、エラー、重大なエラー)に分けて管理します。 メッセージの重要度は下表のアイコンで表示されます。 アイコン 種別 内容 情報 通信パラメーター等の情報メッセージ 警告 警告レベルのメッセージ エラー エラーレベルのメッセージ 重大なエラー 重大なエラーメッセージ スクリプトログ スクリプトの実行メッセージなど DxpLink ログ DxpLink 通信のトレースメッセージ OPC トレース OPC インターフェイスのトレースメッセージ - 141 - ポップアップメニューまたはツールバーからアイコンフィルタや文字列フィルターを使って必要な情報のみ表示することや、出力を 一時停止させることができます。 [一時停止] メッセージ出力を一時停止できます。実際にはメッセージは出力されていますが、表示上の更新を停止します。 再度一時停止を解除することで、メッセージの表示が更新されます。 重要 自動ファイル保存をしている場合、ファイル保存は一時停止されません。 [クリア] メッセージビューからメッセージをクリアします。 重要 自動ファイル保存をしている場合、保存先のファイルは削除されません。 [アイコンフィルタ] 項目 FATAL ERROR ERROR WARNING INFO スクリプトログ 通信トレース OPC トレース DDE/SuiteLink トレース DxpLink トレース 内容 重大なエラーメッセージが表示されます。 通信エラーなどのエラー情報が表示されます。 警告メッセージが表示されます。 情報メッセージが表示されます。 スクリプトの実行状況をトレースします。 PLC との通信メッセージが表示されます。 OPC クライアントとの通信メッセージが表示されます。 DDE/SuiteLink インターフェイスのアクセス状況をトレースします。 DxpLink インターフェイスのアクセス状況をトレースします。 - 142 - [文字列フィルター] 項目 チェックボックス フィルター 種別 表示 以外を表示 を非表示 以外を非表示 大文字・小文字を区別 フィルター種別の優先 内容 フィルター機能を有効にする場合、チェックします。 フィルター文字列を入力します。 フィルターに設定された文字列を表示します。 フィルターに設定された文字列以外を表示します。 フィルターに設定された文字列を表示しません。 フィルターに設定された文字列以外を表示しません。 フィルター文字列の大文字・小文字を区別する場合は、チェックします。 フィルター条件で、表示と非表示が被った場合に優先する種別を選択します。 メッセージ行をダブルクリックすると、詳細ダイアログが表示されます。エラーメッセージをコピーすることが可能です。 ポップアップメニューから「コピー」を選択することで、メッセージをクリップボードにコピーすることが可能です。 - 143 - ポップアップメニューから「ファイル保存」を選択することで、メッセージを CSV ファイルに保存することができます。 CSV ファイル保存後、ログをクリアするかどうか確認されます。 5.11.2 メッセージを自動ファイル保存する方法 デバッグ目的や運用中の異常を追えるように、プロジェクトのプロパティ(構成プロパティ)のログで、メッセージの自動保存を「保 存する」としてください。指定されたファイル保存パスに、メッセージが CSV ファイル形式で保存されます。 - 144 - 5.12 診断 診断機能を使ってクライアントのアクセス状況の確認やトラブル時の原因調査を行うことができます。 診断状況は下記のアイコンで表示されます。 アイコン 内容 正常状態です。 正常状態のものと、異常状態のものが混在しています。 異常状態です。通信異常などが発生しています。 非アクティブな状態です。 5.12.1 インターフェイス診断 項目 インターフェイス コネクション数 アイテム数 Active アイテム数 Error アイテム数 内容 OPC インターフェイスおよび DDE/SuiteLink インターフェイス 各インターフェイスに接続中のクライアント数 登録されているタグ数(アクティブ/ディアクティブなタグの合計) アクティブなタグ数 エラー発生中のタグ数 - 145 - 5.12.2 クライアント診断 接続中のクライアント情報を表示します。 項目 クライアント名 グループ数 アイテム数 Active アイテム数 Error アイテム数 Asvised 内容 クライアントハンドルおよびクライアント名称 登録されているグループ数 登録されているタグ数(アクティブ/非アクティブなタグの合計) アクティブなタグ数 エラー発生中のタグ数 OPC サーバオブジェクトの Advise 接続状態 (クライアントがシャットダウン通知を受けるには、Advised になっている必要があります) 5.12.3 グループ診断 クライアントが登録しているグループ情報を表示します。 項目 グループ名 アイテム数 Active アイテム数 Error アイテム数 更新周期 ステータス Advised 内容 OPC グループ名 登録されているタグ数(アクティブ/ディアクティブなタグの合計) アクティブなタグ数 エラー発生中のタグ数 グループに設定されている UpdateInterval 値 グループのアクティブ状態 OPC グループオブジェクトの Advise 接続状態 (クライアントがデータ変化通知や非同期処 理完了通知を受けるには、Advised になっている必要があります) - 146 - 5.12.4 タグ診断 グループに含まれるタグ情報を表示します。 項目 タグ名 型 ロケーション 現在値 品質フラグ タイムスタンプ 属性 スケール コメント ステータス 内容 タグ名 タグのデータ型 参照先の物理アドレス 最新のキャッシュ値 品質フラグ タイムスタンプ タグの属性 スケール設定の有無 タグのコメント タグのアクティブ状態 タグの診断状況は下記のアイコンで表示されます。 アイコン 内容 品質が Good の状態です。 品質が Uncertain の状態です。 品質が Bad の状態です。通信異常などが発生しています。 初期値取得待ち状態(品質が Waiting for initial data)です。 非アクティブな状態です。 タグモニタ同様、タグに値を書き込むことができます。また、ドラッグ&ドロップによりタグをウォッチへ登録することも可能です。 - 147 - 5.12.5 イベント診断 イベントの実行状況を表示します。 「イベント」をクリックすると全体のイベントエンジンの稼働状況が分かります。 項目 イベントエンジン イベント数 実行中 エラー発生数 イベントスキャン(ms) 内容 イベントの名称 イベントの総数 実行しているイベントの数 エラーの発生数 イベントの実行スキャン時間とその最大時間 イベントエンジン名をクリックすると、当該イベントエンジンの稼働状況が分かります。 項目 イベント 種類 オブジェクト 状態 実行回数 エラー回数 処理時間(ms) 内容 イベント名 イベントの種類 イベントの属するオブジェクト名 イベントの稼働状態 イベントの実行回数 エラーの発生回数 イベントの実行スキャン時間とその最大時間 重要 イベントを 2 個以上利用する場合は、エンタープライズのライセンスが有効であることが必要です。 2 個以上登録すると、イベント診断に「ライセンス無効」と表示されます。 - 148 - 5.13 プロジェクト プロジェクトの設定は、共通プロパティと構成プロパティから構成されます。アプリケーション全体に影響する設定項目は「共通プ ロパティ」、プロジェクト毎に限定される項目は「構成プロパティ」として設定します。プロジェクト設定画面は、「プロジェクト」メニュ ーの「プロパティ」、または、「ツール」メニューの「オプション」から開くことができます。 備考 デバイスエクスプローラの設定情報は、拡張子「*.dxp」というファイル名で指定したフォルダーに保存されます。 - 149 - 5.13.1 共通プロパティ - 全般 ソフトウェア全体で有効なパラメーターを設定します。 項目 初期値 再起動 ポートの自動クローズ CLOSE する ― 非同期要求の最大許容数 (共通) 1000 必要 非同期要求の最大許容数 (OPC) 1000 必要 非同期要求の最大許容数 (DDE/SuiteLink) 10000 必要 プロトコルタイマーティック 10(ms) 必要 モニター周期 600(ms) ― プロジェクトファイル保存先 マイドキュメン フォルダー ト ― スタートアップファイル (指定なし) 必要 プロセス優先度 通常 必要 OPC スレッド優先度 通常 必要 サービス起動 通常の ア プ リ ケーションとし て起動 必要 名前空間デリミター . (ドット) 必要 拡張指定デリミター : (コロン) 必要 言語 [Language] 日本語 ― 内容 「CLOSE する」を選択すると、クライアントからのアクセスがなく なったときにポートをクローズします。複数のアプリケーションが RS232C のような排他的にアクセスしなければならないポートを 使用する場合に利便性が向上します。 キューイング可能なスクリプトや DxpLink インターフェイスから の非同期書込数を設定します。最大受付数以上に書込要求を受 けると、エラーがメッセージビューに表示されます。 受け付け可能な非同期要求(OPC インターフェース)の最大値を 設定します。実際の通信時間よりも高速に非同期要求が呼ばれ 続けた場合、指定数以上の要求が溜まると、デバイスエクスプロ ーラは、CONNECT_E_ADVISELIMIT (0x80040201)を返します。 受け付け可能な非同期書込要求(DDE/SuiteLinkインターフェイ ス)の最大値を設定します。実際の通信時間よりも高速に書込み 要求が呼ばれ続けた場合、指定数以上の要求が溜まると、デバ イスエクスプローラはエラーを返します。 メッセージの受信処理や送信処理を行う動作間隔を設定します。 この値を小さくしすぎると CPU 使用率が上がりますので、通常、 10ms で使用することを推奨します。 デバイスエクスプローラのモニター機能と診断の更新周期を指定 します。設定値を小さくすると、CPU 使用率が上昇しますので、 500ms 以上での使用を推奨します。 プロジェクトファイルの保存先フォルダーの初期設定を指定しま す。指定しない場合はマイドキュメントの TAKEBISHI/Project フ ォルダーに保存されます。 デバイスエクスプローラ起動時、自動的にロードするプロジェクト ファイルを指定します。指定しない場合は、最後に使用したプロジ ェクトがロードされます。 プロセスの優先度を指定します。 (高) (低) 「リアルタイム」 > 「高」 > 「通常」 > 「低」 スレッドの優先度を指定します。 (高) (低) 「クリティカル」 > 「高」 > 「通常」 > 「低」 > 「アイドル」 「サービスとして起動」にすると、デバイスエクスプローラを Windows のサービスプログラムとして動作させます。※ サービスとして起動: サービス 通常のアプリケーションとして起動: 通常 ア イ テ ム ID の 区切 り 文 字を 設 定し ま す 。 初期 値 で は 「Device1.Tag」となるアイテムIDも、本設定値を「/」に変更するこ とで「Device1/Tag」 に変更可能です。 ダイナミックタグの拡張指定の区切り文字を設定します。初期値 では「D0:DR:A10」となるタグ名も、本設定値を「¥」に変更するこ とで「D0¥DR¥A10」に変更可能です。 アプリケーションの表示言語を設定します。 日本語:日本語で表示します。 英語 [English]:英語で表示します。 中国語(簡体字)[Chinese]:中国語(簡体字)で表示します。 - 150 - 中国語(繁体字)[Chinese]:中国語(繁体字)で表示します。 韓国語(ハングル)(Korean):韓国語(ハングル)で表示します。 自動ログインユーザー 起動時にログインするユーザー名とパスワードを設定します。 Administrator 必要 デバイスエクスプローラを実行する CPU プロセッサを指定しま 実行プロセッサ指定 (指定なし) ― す。指定しない場合はすべてのプロセッサを使用して稼働しま す。 ※ サービス起動したデバイスエクスプローラに OPC クライアントから接続する場合は、DCOM 設定が必要となります。 DCOM 設定については、5.21 を参照してください。 - 151 - 5.13.2 共通プロパティ - OPC 項目 初期値 更新周期 500(ms) 必要 非同期更新モ ー ド の タ イ マ ー TICK 10(ms) 必要 内容 OPC クライアントにデータ変化を通知する周期を指定しま す。 本設定値は OPC クライアントから OPC 更新周期を 0 で指定 された場合のみ利用されます。 非同期更新モード有効時におけるデータ変化の通知間隔を 指定します。 ― 読出でエラーが発生した場合に、EMPTY 値の代わりにキャ ッシュ値を返します。 エラー時キャッシュリターン 有効 再起動 読出通信異常を処理成功とみな す 無効 ― 初回通知時の通信完了待ちタイ ムアウト(msec) 15000 ― OPC UA サーバー 無効 必要 有効時は、読出時の通信異常を処理成功とみなし、OPC DA クライアントへ成功コード OPC_S_UD_COMM_ERROR (0x00048000)を返します。本機能が無効の場合は、失敗コ ード OPC_E_UD_COMM_ERROR(0x80048000)を返しま す。 初回のデータ変化通知を発行する際の、PLC 通信完了待ち タイムアウト時間を設定します。タイムアウトを超えたアイテ ムは品質を Last Usable Value(0x44) もしくは、Waiting for Initial Data(0x20)にセットして通知します。 OPC UA サーバーの機能を有効にするかどうか選択しま す。 【各設定項目と内部動作の関係図】 OPCクライアント デバイスエクスプローラ PLC OPCグループ更新周期 Updete Interval Group 1 非同期更新モード 非同期タイマーティック アイドル時間 Group 2 ・・・ Group 1 Group 2 Group N PLC交信 プロトコルタイマーティック アイドル時間 送信 受信 ※ 上図の「UpdateInterval」は AddGroup 実行時に OPC クライアントが設定する項目です。 - 152 - 5.13.3 共通プロパティ - DDE/SuiteLink 項目 DDE/SuiteLink アプリケーション名 初回キャッシュ通知 初期値 DXPSV 無効 再起動 必要 内容 DDE/SuiteLink のアプリケーション名を指定します。 通常、読出しが完了しないと DDE クライアントに値を返しま せんが、有効にすると、クライアントからのアイテム登録され た際にすぐにキャッシュ値を通知します。一度も読み出しされ ていないタグ(ダイナミックタグや、通信周期が長くデータ受信 前)の状態では、0 が返ります。DDE クライアント側で初回通 知のタイムアウトが発生することを回避できます。 ― 5.13.4 共通プロパティ ― DxpLink 項目 初期値 再起動 DxpLink サーバー機能 有効 必要 DxpLink ポート番号 9980 必要 内容 DxpLink サーバー機能を有効にするかどうか選択します。 DxpLink サーバーで利用するポート番号を指定します。 - 153 - 5.13.5 構成プロパティ - 全般 プロジェクト内でのみ有効なパラメーターを設定します。 項目 初期値 再起動 リフレクトポーク 書込処理の優先度 クライアント単位通信 マルチアクセスモード 非同期更新モード 同期・非同期の マルチアクセス化 書込最適化方式 即座にキャッ シュ値に反映 する 書込優先 無効 有効 有効 無効 要求順 ― 必要 必要 必要 必要 必要 必要 内容 書き込み要求時に、キャッシュ値への反映タイミングを選択し ます。 「即座にキャッシュ値に反映する」 書込要求時にすぐに反映します。 「書き込み完了後にキャッシュ値に反映する」 書き込みに成功した場合に、反映します。 「キャッシュ値に反映しない」 書き込み値をキャッシュ値に反映しません。 「書込優先」を選択すると、書込処理を要求したとき、読出処理 よりも書込処理を優先して実行します。 有効にすると、OPC DAインターフェイスによって、クライアン ト や サ ブ ス ク リ プ シ ョ ン グ ル ー プ 単位で 通信を 行い 、 DXP2007 相当の動作を行います。 既定(無効)の動作と比較すると、通信負荷が高くなります。無 効時はデバイスエクスプローラ内で最適な単位で通信処理を 行います。詳細はエラー! 参照元が見つかりません。項を参 照してください。 クライアント単位通信が有効の場合のみ設定可能です。 マルチアクセスモードを有効にすると、複数のデバイスにま たがるタグを単一の OPC グループに登録した場合に、デバ イス単位で並列処理を行いますので、スループットを上げるこ とができます。マルチアクセスモードを使用しない場合、デバ イス単位で順に通信が行われますので、あるデバイスに通信 障害が発生すると、他のデバイスの通信処理にも遅延が生じ ます。 クライアント単位通信が有効の場合のみ設定可能です。 非同期更新モードを有効にすると、単一の OPC グループに 登録されているタグのうち、読出処理が終わったタグから DataChange イベントを発生させます。通信障害等により、読 み出しが完了しているタグのデータ変化通知が待たされるこ とを回避できます。 マルチアクセスモードの場合に、クライアントからの同期・非 同期要求をマルチアクセス処理します。読出・書込用のスレッ ドを生成するため、デバイス設定が多い場合にスレッド数が 増大する可能性があります。 PLC への値書き込みにおけるパケットの最適化方法を設定 します。 「要求順」 クライアントから要求された順に処理を 行う。 「アドレス順」 アドレス順に並び変えて処理を行う。 「最適化優先」 最もパケット数が少なくなるように処理 を行う。 - 154 - 非同期書込みキューに溜まった書込み要求の処理方法を指 定します。本設定は、画面、スクリプト、OPC UA、DxpLink などの、一部の内部処理に影響します。OPC DAクライアント からの同期・非同期書込み、および DDE クライアントからの 書込みには影響しません。 「同じ値の書込を省略」(既定) 同じタグへの同じ値の複数書込を 1 回に省略し、PLC 通信の 負荷を適切に軽減します。 書込キューの負荷軽減 同じ値の書込 を省略 必要 「最新値以外の書込を省略」 同じタグへの複数書込を最新のものだけに省略し、PLC 通信 の負荷を最大限に軽減します。キューに溜まっていた古い要 求は書き込まれないため、書込み抜けが発生しても良い場合 に選択することができます。 「軽減なし」 省略することなく全ての要求を書き込みます。PLC への書込 みが間に合わないケースでは、書込みキューの満杯エラー が発生し、新しい書込み要求を受け付けられなくなる可能性 があります。 シミュレーション最大値 100 ― シミュレーション周期(msec) 1000 ― 非有理数の書込 許可しない ― システムタグ(統計情報)の リセット (設定なし) ― スクリプトの ガベージコレクション 5000 ― シミュレーションモード(サイン/インクリメント/ランダム)に おける、値の変化範囲を設定します。シミュレーションモード が「共有メモリ」の場合は関係ありません。 シミュレーションモード(サイン/インクリメント)における、値 の変化周期を設定します。 シミュレーションモードが「ランダム」「共有メモリ」の場合は関 係ありません。 クライアントより浮動小数点数型のタグに対して非有理数 (NaN/Infinite)の書込みを行うか選択します。 統計情報の シ ス テ ム タ グ ($ElapseMin 、 $ElapseMax 、 $Elapse、$ErrorCounts、$SendCount、$RecievedCounts) をリセットするタイミングを指定します。 スクリプト(Lua)のフルガベージコレクションサイクルを指定 の周期で実行します。0 に設定すると、ユーザー自身でガベ ージコレクタを制御する必要があります。 - 155 - 5.13.6 構成プロパティ - GUI 表示関係のパラメーターを設定します。 項目 初期値 再起動 内容 タグビューからオペレーター操作による値書込を許可します。 GUI 書込操作 許可する ― 現在値表示クリア クリアしない ― タグビューでモニターを停止したとき、表示されているタグの 現在値をクリアするかどうか選択します。 タスクトレイ 格納しない ― 「格納する」を選択すると、ウィンドウを最小化した際、タスク バーに表示せず、タスクトレイに格納します。 メッセージビューの 最大表示行数 1000 未登録アイテムの使用可否※ 使用可 必要 ― アイテム自動登録※ 登録しない ― システムタグ表示※ 隠す ― 起動時のウィンドウ 前回 起動時 の状態で開く ― COM 起動時のウィンドウ 最小化で開く ― メッセージビューに表示する最大メッセージ数を設定します。 事前に登録されていないアイテムへのアクセスを許可しま す。 「登録する」を選択すると、事前に登録されていないアイテム へのアクセスが行われた場合、アイテムを自動的に登録しま す。 タグビューにシステムタグを表示します。 手動で起動する際のウィンドウの状態を設定します。 前回起動時の状態で開く: ウィンドウ状態を復元します 通常のウィンドウサイズで開く: 常にウィンドウで起動します 最小化で開く: 常に最小化で起動します クライアントから COM 接続されることにより自動起動する際 のウィンドウの状態を設定します。 ※ 「未登録アイテムの使用可否」、「アイテム自動登録」、「システムタグ表示」の各設定は、新規デバイス作成時のデフォルト値 となります。デバイス毎に設定情報を変えたい場合は、デバイスプロパティ画面で変更できます。 - 156 - 5.13.7 構成プロパティ - ログ メッセージビューに表示されるメッセージのロギングに関するパラメーターを設定します。 項目 初期値 再起動 内容 メッセージビューに出力されたメッセージを自動的にファイル に保存することができます。表示されるメッセージを一時停止 メッセージの自動保存 保存しない ― している間も自動的に保存されます。 保存期間 ディスク残容量 最大ファイルサイズ 0 (日) 1000 (MB) 99 (MB) ― 指定した保存期間が経過すると保存データは削除されます。 「0」を指定すると削除されません。 ― ディスク残量が指定容量以下になると、ファイル保存を停止し ます。 ― ファイル保存パス (指定なし) ― INFO メッセージ出力 出力する ― WARNING メッセージ出力 出力する ― ERROR メッセージ出力 出力する ― FATAL ERROR メッセージ出力 出力する ― スクリプトログ出力 出力しない ― 通信トレース出力 出力しない ― 情報メッセージを出力します。 警告メッセージを出力します。 異常メッセージを出力します。 致命的な異常メッセージを出力します。 スクリプトのログをトレースします。 通信伝文をトレースします。 DDE インターフェイス用の通信伝文をトレースします。 DDE トレース出力 OPC 詳細メッセージ ログデータを保存するパスを指定します。 指定しない場合は、プロジェクトファイルと同様の場所に保存 されます。 DxpLink 通インターフェイス用の通信伝文をトレースします。 DxpLink トレース出力 OPC トレース出力 ログファイルは「YYYYMMDD-nnn.LOG」というファイル名 で作成され、最大サイズに達すると次のファイルに切り替わり ます。nnn は 001~999 の範囲で自動的に付けられる枝番で す。枝番が 999 を超えると YYYYMMDD-1000.LOG となり ます。0 を指定するとファイルサイズのチェックを行いませ ん。 出力しない 無効 ― ― OPC インターフェイスのアクセス状況をトレースします。 OPCインターフェイスのアクセス状況のトレースを詳細化しま す。ログファイルへの出力、およびメッセージビューへの出力 が共に詳細化されます。 CPU 負荷や通信速度に影響を与えるので、デバッグ時のみ 有効にしてください。 - 157 - 5.14 サービス起動 デバイスエクスプローラを Windows のサービスプログラムとして起動することができます。 重要 Windows Vista 以降の OS で UAC 有効下では、デバイスエクスプローラを「管理者として実行」して起動してから設定してくだ さい。 Windows Vista 以降でサービス起動を利用すると、Windows のサービスセッション(セッション 0)で動作します。デスクトップ などの、他のセッション上で動作する DDE クライアントからは接続できません。 また MELSEC EZSocket および MELSEC インターフェイスボード接続は、サービス起動に対応していません。 5.14.1 サービス起動の登録方法 (1)「ツール」メニューの「オプション」画面で、「スタートアップファイル」を指定し、「サービス起動」を「サービスとして起動」に設定 します。 (2)デバイスエクスプローラを終了すると、サービスプログラムとして登録されます。 コントロールパネルの「管理ツール」→「サービス」で確認できます。 - 158 - 以下のダイアログが出てきた場合は、デバイスエクスプローラを「管理者として実行」して起動してから設定し直してください。 (3)コントロールパネルの「サービス」から、「DeviceXPlorer OPC Server 5」のプロパティ画面を開きます。 (4)「ログオン」タブを開き「デスクトップとの対話をサービスに許可」のチェックボックスをオンします。 (5)PC を再起動するとデバイスエクスプローラがサービスプログラムとして動作します。 重要 ※ サービス起動したデバイスエクスプローラに OPC クライアントから接続する場合は、DCOM 設定が必要となります。 DCOM 設定については、5.21 を参照してください。 - 159 - 5.14.2 サービス起動時の設定変更方法 WindowsVista 以降ではサービスプログラムはデスクトップ上に表示されません。デバイスエクスプローラの設定画面を表示す る場合は、サービスの「Interactive Services Detection」を再起動してください。再起動すると、「対話型サービスの検出」というウ ィンドウが表示されるので、「メッセージの表示」を押すことで画面が表示されます。 - 160 - 5.14.3 サービス起動の解除方法 ( 1 ) サービス起動したデバイスエクスプローラの「ツール」の「オプション設定」で、「サービス起動」を「通常のアプリケーションと して起動」に設定します。 (2)コントロールパネルの「サービス」から、「DeviceXPlorer OPC Server」のプロパティ画面を開きます。 (3)「停止」ボタンを押してデバイスエクスプローラを停止します。以上で、サービス解除されます。 - 161 - 5.15 インポート/エクスポート ファイルメニューから、「インポート」/「エクスポート」メニューで、プロジェクトファイルの設定を CSV 形式もしくは XML 形式でフ ァイル出力、ファイル入力が可能です。また、現在 OPC サーバーが保持しているタグメモリ(キャッシュ値、タイムスタンプ、品質) のエクスポートを行い、オフラインモードで使用するタグメモリ用にインポートも可能です。 重要 Ver.4 で出力したファイルはインポート/エクスポート可能ですが、Ver3 より古いデバイスエクスプローラでエクスポートした CSV ファイルは、インポートできません。 Ver.3 のプロジェクトファイルの場合は、「すべてのプログラム」→「DeviceXPlorer OPC Server 5」の「プロジェクトコンバータ ー」で、dxp プロジェクトファイルにして利用してください。 備考 エクスポートしたファイルを編集する場合は、十分注意して行ってください。 - 162 - 5.15.1 インポート[定義情報] エクスポートした CSV ファイルや XML ファイルをインポートできます。 インポートするデータ項目とファイル先を選択します。インポート時にはタグの出力順序は選択できません。 5.15.2 エクスポート[定義情報] 現在開いているプロジェクトファイルの CSV ファイルや XML ファイルをエクスポートできます。 - 163 - エクスポートするデータ項目とファイル先を選択します。タグ出力の順番をタグ名順か、ロケーションアドレス順か選択できます。 5.15.3 インポート[タグメモリ] エクスポートしたタグメモリをインポートできます。 インポート対象のデバイスを選択して、インポート先のファイル名を指定します。 インポートするとオフラインモードに移行するかどうか確認が表示されます。 - 164 - 5.15.4 エクスポート[タグメモリ] 現在 OPC サーバーが保持しているタグメモリ(キャッシュ値、タイムスタンプ、品質)のエクスポートを行います。 エクスポートするタグメモリの対象デバイスを選択します。 「データリフレッシュ後、エクスポートを行う」にチェックを入れて、エクスポートすると、全データを最新値に更新してからエクスポ ートを行います。 - 165 - 5.16 ホットコンフィグレーション デバイスエクスプローラはクライアントからの接続中でもデバイス設定やタグ設定を変更することができます。 以下にホットコンフィグレーションで反映される項目と、注意事項を示します。 設定名 共通プロパティ設定 構成プロパティ設定 ユーザー設定 ポート設定 デバイス設定 デバイスオプション設定 グループ設定 タグ設定 メソッドタグ設定 設定変更 可能 可能 可能 追加・編集可能 (削除不可) 追加・編集可能 (削除不可) 編集可能 追加・編集可能 (削除不可) 追加・編集可能 (削除不可) 追加・編集可能 (削除不可) 構造体タグ設定 追加のみ可能 構造体テンプレート設定 スクリプト 追加のみ可能 追加・編集・削除可能 プロジェクト操作 不可 インポート/エクスポート 可能 備考 即座に反映されず、再起動後に反映される項目があります。 即座に反映されず、再起動後に反映される項目があります。 ポート名は変更できません。 変更時に再接続を行います。 デバイス名は変更できません。 機種によっては変更時に再接続を行います。 以下の設定については通信中に変更できません。 ・DDE/SuiteLink のトピック名 ・システムタグに”$”記号使用 グループ名は変更できません。 設定されている構造体型の変更はできません。 構造体タグの割り付けを個々に設定変更することはできます。 メンバー変数名などの変更や削除はできません。 通信中はプロジェクトファイルの新規作成、読込、閉じるなどの操 作ができません。 インポートについては、通信中の設定については上書きされず、 スキップされます。 重要 削除不可となっていても、通信に利用されていない設定は削除可能です。 - 166 - 5.17 二重化通信 二重化通信機能は、通信障害発生時に自動的に回線を切り換えて通信を継続する機能です。この機能を使用すると、クライアント は通信回線の切り換えを意識することなく、簡単に冗長化システムを構築できます。 【設定方法】 ①デバイスオプション画面で、二重化通信機能を有効にします。 ②待機系デバイスに登録済みのデバイスを選択します。 ③「自動切換」を選択します。 ④システムに応じてスタンバイ方式、切替方法、切り替え時にポートクローズを選択します。 上図では、Device1 に通信障害が発生すると Device2 へ切り換わります。Device1 の通信が復旧するか、Device2 に通信障害が 発生すると Device1 へ通信が戻ります。 二重化設定の詳細については 5.4.4 項を参照してください。 - 167 - 5.17.1 ウォームスタンバイ 正常系通信中も、待機系で通信を行い、通信確認を行います。 ウォームスタンバイ方式の場合、基本系が断線中に、待機系で通信できる場合は待機系へ切り替わります。待機系も断線中の場 合は、基本系のままで通信を行います。(スローポーリングモード有効時はスローポーリングモードへ移行します。) 両系とも断線中は、常に両系で復帰確認を行い、復帰した系へ切り替えます。 5.17.2 コールドスタンバイ 基本系が断線になったタイミングで、待機系に通信経路を切り替えます。待機系も断線中の場合は、基本系に通信経路を切り替 えます。 備考 手動で経路を切り替えたい場合は、システムタグ「$Standby」に TRUE/FALSE を書き込んでください。 5.18 通信周期 デバイスエクスプローラと相手機器との通信周期はインターフェイスや設定によって異なります。 インターフェイス OPC DA OPC UA OPC AE DDE SuiteLink DxpLink スクリプト デバイスモニター PLC との通信周期 OPC クライアントが指定する OPC 更新周期 ただし、デバイスオプションで「通信周期を固定」としている場合は、デバイスオプションの「通信周期」 デバイスオプションの「通信周期」 スクリプト設定の「周期」 共通プロパティの「モニター周期」 これらのインターフェイスで、最良な通信周期で通信処理を行いますが、過去互換性を維持するため、OPC DA インターフェイス のみ、最適通信処理を行わないモードを用意しています。(クライアント単位通信) OPC DA インターフェイスにおけるクライアント単位通信の設定による動作の違いは以下の通りです。 設定条件 クライアント単位通信無効時 クライアント単位通信有効時 PLC との通信周期 最適な通信周期で PLC と通信を行います。 OPC クライアントから登録される OPC グループ毎に、OPC 更新周期で通信処理が 行われます。 無効時に比べて、通信負荷が高くなります。 - 168 - 5.19 スローポーリングモード タイムアウトエラーやオープン異常などの通信異常発生時に、通信周期を一定間隔まで落とします。相手機器との断線時に応答 が返ってこないケースや、通信負荷を下げたい場合に利用できます。 スローポーリングモードの有効/無効についてはデバイスオプションで設定し、指定された通信周期で処理を行います。その際、 即座にエラーを返す場合は、「即座にエラーで応答」にチェックを入れると、クライアントには即座にエラーが返ります。 通信が成功すると、スローポーリングモードが解除されます。 デバイスオプションで下記の設定を行います。 スローポーリングモードの設定については、5.4.4 項を参照してください。 当該デバイスがスローポーリングモードに入っているかどうかは、「デバイス名.$SlowpollingMode」というアイテムを監視すれ ばわかります。TRUE の場合はスローポーリングモード中、FALSE の場合は正常通信中です。 スローポーリングに関するメッセージは以下の通りです。 メッセージ 内容 スローポーリングモードに移行しました。 Entering Slowpolling Mode. スローポーリングモードが解除されました。 Leaving Slowpolling Mode. 備考 スローポーリングモード中、通信頻度を極力少なくしたい場合は、デバイスオプションにある「リトライ後の通信をスキップ」にチ ェックを入れてください。 - 169 - 5.20 ユーザー権限 5.20.1 ユーザー権限の設定 デバイスエクスプローラを操作するユーザーごとに操作権限を与えます。 通常 Administrator 権限(パスワードなし)で設定されており、操作の制限は一切ありません。 項目 設定 内容 ユーザー権限設定を行います。 別のユーザーにログインします。 ログイン状態ではステータスバーに現在のログインユーザーがと表示されます。 ログイン 現在のユーザーからログアウトします。 ログアウト状態ではステータスバーに(Logout)と表示されます。 ログアウト ユーザー権限設定は以下の通りです。 項目 ユーザー名 パスワード パスワード(確認) 項目 新規 削除 内容 初期設定では Administrator、Engineer、Operator が設定されています。 パスワードを設定します。 設定したパスワードを再度入力してください。 指定したユーザーの操作権限を設定します。各項目の説明については 5.19.2 項を参照してくださ い。Administrator は設定変更することはできません。 ユーザーを新規作成します。 ユーザーを削除します。Administrator 権限は削除できません。 - 170 - 5.20.2 設定項目一覧 大項目 ポート デバイス タグ グループ デバイスフォルダー 構造体 スクリプト ユーザー プロジェクトファイル プロジェクトファイル設定 モニター アプリケーション 項目 編集 新規作成 削除 編集 新規作成 削除 編集 新規作成 削除 編集 新規作成 削除 編集 新規作成 削除 編集 新規作成 削除 編集 新規作成 削除 編集 新規作成 削除 新規作成 読込 保存 編集 読出 書込 終了 内容 ポートの編集ができる。 ポートの新規作成ができる。 ポートの削除ができる。 デバイスの編集ができる。 デバイスの新規作成ができる。 デバイスの削除ができる。 タグの編集ができる。 タグの新規作成ができる。 タグの削除ができる。 グループの編集ができる。 グループの新規作成ができる。 グループの削除ができる。 デバイスフォルダーの編集ができる。 デバイスフォルダーの新規作成ができる。 デバイスフォルダーの削除ができる。 構造体タグ、構造体テンプレートの編集ができる。 構造体タグ、構造体テンプレートの新規作成ができる。 構造体タグ、構造体テンプレートの削除ができる。 スクリプトの編集ができる。 スクリプトの新規作成ができる。 スクリプトの削除ができる。 ユーザー設定の編集ができる。 ユーザー設定の新規作成ができる。 ユーザー設定の削除ができる。 プロジェクトファイルの新規作成ができる。 プロジェクトファイルの読み込みができる。 プロジェクトファイルの保存ができる。 プロジェクトファイル設定を編集できる。 デバイスモニターやキャッシュモニターができる。 GUI からの書き込み操作ができる。 アプリケーションを終了できる。 重要 ・ライセンス認証を行うには Administrator でログインしていることが必要です。 ・ユーザー権限は COM 起動した場合のクライアントに対しては無効です。 例えば、アプリケーション終了権限のないユーザーでログイン状態でも、COM 起動したアプリケーションはクライアント からの接続解除でアプリケーション終了します。 - 171 - 5.20.3 起動時のユーザー権限の指定 起動時のユーザー権限は、共通プロパティの自動ログインユーザーで指定してください。パスワード設定しているにもかかわら ず、パスワードを空で入れると起動時にユーザー認証に失敗し、ログアウト状態で起動します。 […]ボタンを押して、ユーザー名を選択し、パスワードを適切に入力してください。 - 172 - 5.21 GUI 表示言語の動的切替え アプリケーションの GUI 表示言語を、アプリケーションを再起動することなく動的に切替えることが可能です。 表示言語は日本語、英語、中国語(簡体字)、中国語(繁体字)、韓国語(ハングル)に対応しています。 UNICODE に対応しており、OS へのランゲージパックのインストールをすることなく、各言語を表示できます。 【設定方法】 (1) 「ツール」メニューの「オプション」画面で、「言語 [Language]」を他の言語に変更します。 (2) 「OK」を押し、オプション画面を閉じます。 (3) アプリケーションの GUI 表示言語が動的に切り替わります。 - 173 - 5.22 DCOM 設定 OPC を使用して、リモートコンピューターから DCOM 接続する場合の設定方法について説明します。 DDE/SuiteLink、OPC UA、DxpLink で通信する場合、本項の設定は必要ありません。 ここでは、一般的な設定例を示しますが、ご使用になるシステムのセキュリティの必要性に応じて各設定を行ってください。 重要 ・DCOM に関する詳細設定はオペレーティングシステムの関連書籍を参考にしてください。 ・サービス起動したデバイスエクスプローラに OPC 接続する場合も、DCOM 設定が必要となります。 ・サービス起動した OPC クライアントがデバイスエクスプローラに OPC 接続する場合も、DCOM 設定が必要となります。 5.22.1 概要 DCOM 接続するためには、デバイスエクスプローラが動作している PC で、クライアントのユーザーを認証する必要があります。 一般に、ワークグループで動作するシステムでは、双方の PC に同一ユーザーアカウント及び同一パスワードを作成することに よって、クライアント PC のユーザーを認証することができます。 DCOM の設定例を説明します。 アカウント関連 設定内容 パスワード サーバー側 PC、クライアント側 PC で、同一アカウントを用意する。パスワードもブ ランクではなく、同一のパスワードを用意する。 ワークグループ 同一ワークグループに属していること。 サーバー PC クライアント PC PC 再起動 ○ ○ ― ○ ○ ○ 【ローカルセキュリティーポリシー】 「コントロールパネル」の「管理ツール」の「ローカルセキュリティーポリシー」 設定内容 サーバー PC クライアント PC 再起動 ネットワークアクセス:ローカルアカウントの共有とセキュリティモデル <「ローカルポリシー」→「セキュリティオプション」> 「ネットワーク アクセス:ローカルアカウントの共有とセキュリティモデル」を「クラ シック-ローカルユーザーがローカルユーザーとして認識する」に設定。 ○ ― ○ ネットワークアクセス:Everyone のアクセス許可を匿名ユーザーに適用する <「ローカルポリシー」→「セキュリティオプション」> 「ネットワークアクセス:Everyone のアクセス許可を匿名ユーザーに適用する」を 「有効」に設定。 ○ ― ○ 【ファイアウォールの設定】 「コントロールパネル」の「Windows ファイアウォール」 設定内容 ※ファイアウォールを無効にしている場合は必要ありません。 サーバー クライアント PC 再起動 PC PC 例外登録 <詳細設定> 送信・受信の規則に「DeviceXPlorer OPC Server 5」と「OpcEnum」のプログラ ムを追加。 DCOM 用 TCP/IP ポートの解放 <詳細設定> 送信・受信の規則に「TCP/IP 特定のローカルポート 135」のポートを追加。 - 174 - ○ ○ (OpcEnum) ― ○ ○ ― 【DCOM 設定】 「ファイル名を指定して実行」を選択し、「DCOMCNFG」と入力し、DCOM 設定ユーティリティを起動。 設定内容 サーバー クライアント PC PC マイコンピューターの設定 <コンポーネントサービスのマイコンピューター> ・「既定のプロパティ」で「このコンピューター上で分散 COM を有効にする」を有 効。 ・「既定のプロパティ」で「既定の認証レベル」に「接続」。 ○ ○ (クライアント PC は「なし」に設定します。) ・「既定のプロパティ」で「既定の偽装レベル」に「識別する」。 ・「COM セキュリティ」で「制限の編集」で、「ANNOYMOUS LOGON」のアクセ ス許可をする。 ・「COM セキュリティ」で「既定値の編集」で、「Everyone」のアクセス許可をする。 DevicerXPlorer OPC Server 5 の設定 <コンポーネントサービスの DCOM 構成> ・「全般」の「認証レベル」で「接続」を選択。 ・「場所」で「このコンピューターでアプリケーションを実行する」を有効。 ・「セキュリティ」で、各項目の「カスタマイズ」を行い、「Everyone」および ○ ― 「ANNOYMOUS LOGON」にアクセス許可を付ける。 ・「ID」で実行ユーザーを選択。対話ユーザーを推奨。 【対話ユーザー】 :常にログオン中のユーザーアカウントで実行する。 【起動したユーザー】:起動したユーザーアカウントで実行する。 【このユーザー】:指定ユーザーアカウントで実行する。 「OpcEnum」の設定 <コンポーネントサービスの DCOM 構成> ・「全般」の「認証レベル」を「なし」を選択。 ○ ― ・「場所」で「このコンピューターでアプリケーションを実行する」を有効。 ・「セキュリティ」で、”SYSTEM”のアクセス許可をする。 ・「ID」が「システムアカウント(サービスのみ)」となっていることを確認。 PC 再起動 ○ デバイス エクスプローラ の再起動 OpcEnum の再起動 重要 ・ドメインを使用する場合は、ローカルセキュリティーポリシーの設定は不要です。 ・ドメインを使用する場合は、上述の Everyone は Domain Users としてください。 ・ウィルス検知ソフトなどを利用している場合は、各種プログラムや DCOM ポートのブロックを許可してください。 ・クライアント側がサービスアプリケーションの場合は、各権限設定に、INTERACTIVE および、SYSTEM に権限を与えてく ださい。 - 175 - 5.22.2 DCOM 構成設定 (1) DCOM 設定ユーティリティの起動 スタートメニューから「ファイル名を指定して実行」を選択し、「DCOMCNFG.EXE」と入力すると、DCOM 設定ユーティリティが 立ち上がります。 備考 DCOM 設定を行う場合、管理者権限(Administrator 権限)でログオンする必要があります。 (2) 既定のプロパティ 「コンポーネントサービス」⇒「コンピューター」⇒「マイコンピューター」とディレクトリツリーを展開します。次に「マイコンピューター」 を右クリックし、ポップアップメニューからプロパティ画面を開き、「既定のプロパティ」タブを選択してください。 ※「このコンピュータ上で分散 COM を有効にする」をチェックボックスをオンします。 ※「既定の認証レベル」を「接続」にします。 ※「既定の偽装レベル」を「識別する」にします。 重要 クライアント PC では、「既定の認証レベル」を「なし」に設定してください。 - 176 - (3) COM セキュリティ 「COM セキュリティ」タブを選択します。 「アクセス許可」の「既定値の編集」ボタンを押すとダイアログが開きます。OPCEnum.exe にリモートからアクセスできるように、 「ANONYMOUS LOGON」を選択して、「リモートアクセス」を「許可」に設定します。 「起動とアクティブ化のアクセス許可」の「既定値の編集」ボタンを押すとダイアログが開きます。「Everyone」を選択して、「リモー トからの起動」及び「リモートからのアクティブ化」を「許可」に設定します。 - 177 - (4) 固有のプロパティ(全般) 「マイコンピューター」の「DCOM の構成」ツリー、「DeviceXPlorer OPC Server 5」を右クリックし、ポップアップメニューからプロ パティ画面を開きます。 認証レベルを「接続」にします。 (5) 固有のプロパティ(場所) 「場所」タブを選択し、「このコンピュータでアプリケーションを実行する」のチェックボックスをオンします。 - 178 - (6) 固有のプロパティ(セキュリティ) 各項目について、「カスタマイズ」を選択して編集ボタンを押します。 「起動許可」と「アクセス許可」に、「Everyone」を入れてください。 Everyone 以外ではなく特定ユーザーの指定もできます。 システムのセキュリティ要求に応じて設定してください。 グループ名 アクセス権を与えられるユーザー 全てのユーザー Everyone ローカルでアクセスしているユーザー INTERACTIVE リモートからアクセスしているユーザー NETWORK サービスプログラム SYSTEM 匿名ユーザー ANONYMOUS LOGON 特定のドメイングループ 特定ドメインの指定グループの全てのユーザー 特定のユーザー 特定のユーザーのみ - 179 - (7) 固有のプロパティ(ID) 「ID」タブを選択し、アプリケーションを実行するユーザーアカウントを指定します。 ※ GUI を使用する場合は「対話ユーザー」に設定します。同一アカウントでログオンしている必要があります。 ※ 「起動ユーザー」を選択した場合、同一アカウントでログオンしていなくても、サーバーPC に存在するユーザーアカウントあ ればアクセス可能です。ただし、OPC サーバーの画面が表示されませんので、設定変更等を行うことはできません。 ※ 「このユーザー」を選択した場合は、管理者権限を持つユーザーを指定してください。 ※ サービスプログラムとして動作している場合は、「システムアカウント(サービスのみ)」が選択されます。 重要 ・マイコンピューターの DCOM 設定を変更した場合は、PC を再起動する必要があります。 ・上記の DCOM 構成の設定例でも接続できない場合は、ファイアウォールの設定やローカルセキュリティーポリシー設定を確 認した上で、セキュリティを緩める必要がある可能性があります。(セキュリティ項目に Everyone 設定や ANONYMOUS LOGON の追加など) - 180 - 5.22.3 ローカルセキュリティーポリシー設定 ワークグループ環境において、DCOM を使用するには、管理ツールの「ローカルセキュリティーポリシー」を起動します。 「ローカルポリシー」→「セキュリティオプション」にある「ネットワークアクセス:ローカルアカウントの共有とセキュリティモデル」を 「クラシック」に、「ネットワークアクセス:Everyone のアクセス許可を匿名ユーザーに適用する」を「有効」に設定してください。 ドメイン環境で使用する場合は必要ありません。 - 181 - 5.22.4 ファイアウォール設定 Windows OS に標準で搭載されている「Windows ファイアウォール」のデフォルトの設定では、DCOM 接続や OPCENUM 機 能を使ったサーバーリストのブラウジングが出来ません。デフォルトで Windows ファイアウォールが有効に設定されています。 次頁以降でファイアウォールを有効にした状態で例外を設定することにより、DCOM 接続する方法を説明します。 「コントロールパネル」から「Windows ファイアウォール」を表示します。 詳細設定で、送信の規則、受信の規則それぞれで、新しい規則を作成します。 - 182 - 5.22.4.1 DeviceXPlorer OPC Server 5 および OpcEnum の例外設定 送信・受信の規則に、プログラム指定で、デバイスエクスプローラおよび OpcEnum を登録します。 OpcEnum の場合 [システムディレクトリ¥OpcEnum.exe] DeviceXPlorer OPC Server 5 の場合 [インストールディレクトリ¥Bin¥DeviceXPlorer.exe] - 183 - 名前は管理しやすい名前にしてください。 - 184 - 5.22.4.2 DCOM ポート用の規則作成 - 185 - - 186 - 5.22.5 クライアント PC にインストールが必要なファイル OPC-DA サーバーのインターフェイスは、「OPC カスタムインターフェイス」と呼ばれる COM のインターフェイス群です。 一般的に C++のようなポインタを扱える言語(アプリケーション)はカスタムインターフェイスに直接アクセスできます。逆に、 VB6.0 やエクセル VBA のようにポインタを扱えない言語は「OPC オートメーションインターフェイス」と呼ばれるラッパーを介して、 OPC サーバーにアクセスします。また、VB.NET や C#のように.NET フレームワークで動作するアプリケーションの場合は、 COM と.NET の変換処理が必要になるため、「RCW(Runtime Callable Wrapper)」と呼ばれるラッパーを経由します。 ローカル PC やリモート PC にインストールされている OPC サーバーにアクセスする場合、OPC Enumerator を使って、接続先 PC のレジストリ情報を参照して COM アクセスに必要な Prog.ID や CLSID を取得しています。 OPC Enumerator を使用しない場合は、あらかじめクライアント PC に OPC サーバーの COM 情報をインポートしておく必要が あります。 デバイスエクスプローラのインストールメディアの中に、OPC クライアント用インストーラーを提供しています。 ¥ディスクドライブ¥OpcClient¥OPCDataAccessComponent(x86/x64).exe このインストーラーは下記の機能をセットアップします。 OPC Enumerator・・・OpcEnum.exe OPC Proxy / Stub・・・OpcProxy.dll, OpcComn_ps.dll OPC Automation Wrapper・・・OpcDaAuto.dll Runtime Callable Wrapper・・・OpcRcw.Da.dll ※ OpcDaAuto.dll は、Ver2.02 以降で.NET に対応しています。環境によってはこのファイルが古いバージョンに上書きされて いることがあります。.NET アプリケーションで OPC インターフェイスの動作が不安定になった場合はこのファイルを確認してくだ さい。DXP2007 シリーズがセットアップする最新バージョンは「Ver2.02.5.30」です。 重要 デバイスエクスプローラをデモ版でインストールすることでも、OPCDataAccessComponent でインストールしているモジュー ルはインストールされます。 - 187 - 5.23 クライアントアクセス方法 5.23.1 OPC DA クライアントからのアクセス方法 製品をインストールすると、サンプルプログラムが「インストールフォルダー¥Sample」にセットアップされますので、参考にしてく ださい。 詳細については、付属のクライアントサンプル オンラインマニュアル「DeviceXPlorer_Sample.pdf」をご覧下さい。 スタートメニューから[プログラム]→[DeviceXPlorer OPC Server 5]→[クライアントサンプル]→[クライアントサンプル オンライ ンマニュアル]を選択してご覧下さい。 - 188 - 5.23.2 DDE クライアントからのアクセス方法 5.23.2.1 Visual Basic 6.0 フォームにテキストボックスコントロールやラベルコントロール等を貼り付け、DDE 関係のプロパティを設定します。最後に LinkMode を自動に設定すると、TEXT プロパティに値が読み出されます。 プロパティ名 LinkTopic LinkItem LinkMode 内容 DDE アプリケーション名 + ”|” + トピック名 DDE アイテム名 DDE 交信モード(0:なし、1:自動リンク、2:手動リンク) 【PLC から値を読み出す例】 Private Sub Command1_Click() Text1.LinkTopic = " DXPSV|Device1" Text1.LinkItem = "D0" Text1.LinkMode = vbLinkManual Call Text1.LinkRequest End Sub 【PLC に値を書き込む例】 Private Sub Command2_Click() Text1.LinkTopic = " DXPSV|Device1" Text1.LinkItem = "D0" Text1.Text = 9999 Text1.LinkMode = vbLinkManual Call Text1.LinkPoke End Sub - 189 - 設定例 DXPSV|Device1 D0 1 5.23.2.2 EXCEL EXCEL のシートからデバイスエクスプローラにアクセスする場合は、「=アプリケーション名|トピック名!アイテム名」とセルに入 力してください。例えば、デバイスエクスプローラでトピック名を「Device1」と設定し、データレジスタの「D0」をアクセスする場合 は次のように入力します。 セルの設定(=アプリケーション名|トピック名!アイテム名) 値を書き込む場合は、EXCEL のマクロを使用し DDE POKE コマンドを使用して、次のように記述します。 Chn = DDEInitiate(" DXPSV", "Device1") DDEPoke Chn, "D0", Data_Reference DDETerminate (Chn) 備考 ・Chn は、INITIATE コマンドの戻り値を指定します。 ・Data_Reference は、POKE で書き込むセルの ID を指定します。 ・終了時には TERMINATE コマンドを使用してチャンネルをクローズします。 ・TERMINATE コマンドは、POKE の実行を確実にする為に十分遅らせて実行する必要があります。 ・その他のアクセス方法は、製品添付のサンプルプログラムを参考にしてください。 - 190 - 6 スクリプト デバイスやグループ、構造体テンプレートに対するイベントスクリプトや、メソッドタグのスクリプトに、ユーザー独自のロジックを 組み込むことができます。メソッドタグについては、5.8 項を参照してください。 6.1 イベントスクリプト設定 デバイスやグループ、構造体テンプレートには、イベントリストを設定することができます。プロジェクトビューでデバイスやグル ープを右クリックして、「イベント」を選択すると、イベントリストを表示します。タグリストのタブで、イベントのアイコンをクリックする ことでも、現在開いているデバイスやグループに関するイベントスクリプトリストを表示することができます。 デバイスやグループに設定されたイベントの一覧が表示されます。 右クリックメニューから、スクリプトの新規作成や、削除、実行・停止の切り替えなどが行えます。 備考 スクリプト数に上限はありませんが、スクリプト数が増えると通信負荷が増えるので注意してください。 - 191 - スクリプト設定を行います。 項目 名前 実行 イベント タグ 周期 スクリプト 内容 スクリプト名を指定します。 スクリプトの実行状態を指定します。 実行にチェックが入っていないと、スクリプトは実行されません。 スクリプトの実行条件を指定します。 周期・・・指定された周期(一定周期)でスクリプトを実行します。 タグ変化・・・指定されたタグの値が変化した場合に、スクリプトを実行します。 イベント起動・・・当該デバイスのイベントエンジン起動時(※)に、スクリプトを実行します。 イベント停止・・・当該デバイスのイベントエンジン停止時(※)に、スクリプトを実行します。 イベントで「タグ変化」を選択した場合、指定タグおよび条件を指定できます。 タグは、スタティックタグおよびダイナミックタグで指定できます。配列型や文字列型は指定できません。 [ON 中]・・・指定タグが ON 中(0 以外の場合)に場合に実行されます。 [変化時]・・・指定タグの値、品質、タイムスタンプが変更した場合に実行されます。 [変化時(値)] ・・・指定タグの値が変更した場合に実行されます。 [変化時(品質)] ・・・指定タグの品質が変更した場合に実行されます。 [変化時(タイムスタンプ)] ・・・指定タグのタイムスタンプが変更した場合に実行されます。 [立ち上がり]・・・指定タグが OFF から ON に変わった場合に実行されます。 [立ち下り] ・・・指定タグが ON から OFF に変わった場合に実行されます。 スクリプトの実行周期および通信周期を指定します。 ユーザーロジック(スクリプト)を記述します。 1 スクリプトあたり、32767 文字というサイズ制限があります。 Ctrl+スペースキーを押すことで、関数やコードスニペットを呼び出すことができます。 Ctrl+B もしくは Ctrl+Insert キーを押すことで、タグブラウズ画面を呼び出すことができます。 アプリケーション起動時にイベントエンジンが起動、アプリケーション終了時にイベントエンジンが停止します。また、当該デバイ スのイベントリスト上で、イベントの新規作成/変更/削除を行ったタイミングで、該当デバイスのイベントエンジンが停止して、 再起動します。 - 192 - 6.2 言語仕様 デバイスエクスプローラのスクリプトでは、オープンなスクリプト言語 Lua を採用しています。 Lua の基本仕様については、Lua のオフィシャルリファレンスを参照してください。 6.3 拡張仕様 デバイスエクスプローラ独自の追加仕様について記述します。 6.3.1予約語 Dxp で始まる名前は、大文字・小文字、ローカル・グローバルを含めてデバイスエクスプローラが内部的に使用する識別子として 予約されているため使用できません。 オブジェクト 型 内容 テーブル 定数やクラス、関数などを本テーブルのメンバーとして定義しています。 Dxp 6.3.2定数 グローバルテーブル Dxp の配下に、下記の定数を提供します。 ■オブジェクトタイプテーブル(Dxp.ObjectType) 定数 型 Dxp.ObjectType 数値 Tag 数値 Device 数値 Group 数値 Struct 数値 Port 数値 Method 数値 EventScript ■タグタイプ(Dxp.TagType) 定数 Dxp.TagType Boolean Number String BooleanArray NumberArray 値 1 2 3 4 5 6 7 型 数値 数値 数値 数値 数値 内容 タグ デバイス グループ 構造体 ポート メソッド イベントスクリプト 値 1 2 3 4 5 内容 論理型タグ 数値型タグ 文字列型タグ 論理型配列タグ 数値型配列タグ - 193 - 6.3.3クラス 下記のクラス(テーブル)を利用することができます。下記クラスのインスタンスは、デバイスエクスプローラのスクリプトが独自に 提供する「アクセスマクロ」を利用して取得できます。 クラス 内容 タグアクセスクラス。 BooleanTag 本クラスは、一部のタグ共通のプロパティについてアクセスする機能を提供します。 NumberTag 論理型タグ用、数値タグ用、文字列型タグ用、論理型配列タグ、数値型配列タグの 5 種類があ StringTag り、タグのデータタイプに応じて使い分ける必要があります。 BooleanArrayTag NumberArrayTag グループアクセスクラス。 Group デバイスアクセスクラス。グループアクセスクラスから派生しています。 Device 構造体インスタンスアクセスクラス。グループアクセスクラスから派生しています。 Struct ポートアクセスクラス。 Port イベントスクリプトアクセスクラス。 EventScript メソッドアクセスクラス。 Method 時刻クラス。 Time - 194 - 6.3.3.1 タグアクセスクラス タグアクセスクラス(BooleanTag/NumberTag/StringTag/BooleanArrayTag/NumberArrayTag) 変数 型 属性 内容 数値 オブジェクトタイプを返す(Dxp.ObjectType.***) ObjectType R 文字列 オブジェクトのタイプ名称(例:MelsecEthernetTag) ObjectClassName R 文字列 パス。 Path R 文字列 タグ名。 Name R 文字列 設定情報(CSV)。 Config R BooleanTag の場合は論理型。NumberTag の場合は数値。 論理型 StringTag、もしくは BooleanArrayTag、NumberArrayTag の場 Value 数値 合は文字列、配列タグの場合は、カンマ区切りの値となります。 R/W (クラスにより型が異なる) 文字列 新しい値が代入されると、スクリプト実行スレッドとは非同期で PLC に値書込みを行います。 数値 品質フラグ。 Quality R タイムスタンプ。 Timestamp Time R 文字列 ロケーション文字列。 Location R 数値 タグのタイプ。(Dxp.TagType.*** を返す) TagType R 数値 タグのデータタイプ。(VARIANT::vt を返す) VariantType R 文字列 コメント。 Comment R 論理型 シミュレーション状態。 Simulate R/W 関数 ToString() ToStringValue() HasValue() GetValue( element ) (配列タグのみ) SetValue( element, value ) (配列タグのみ) GetParent() 内容 [戻り値] インスタンス情報のダンプ(文字列) “ObjectTypeName{ClassName, Name, Path, Location, Value }” [戻り値] タグの値を文字列に変換したもの(文字列) [戻り値] 読出が完了し、値を持っているかどうか(論理型) [引数] element :配列の要素番号(数値) [戻り値] 指定された要素の値(論理型、数値) BooleanArrayTag の場合は論理型。 NumberArrayTag の場合は数値。 [引数] element :配列の要素番号(数値) value :セットする値(論理型、数値) [戻り値] なし [戻り値] グループ(Group、Device、Struct) - 195 - 6.3.3.2 グループアクセスクラス グループアクセスクラス(Group) プロパティ 型 数値 ObjectType 属性 R ObjectClassName 文字列 R Path Name Config 文字列 文字列 文字列 R R R メソッド ToString() ResolvePath( name ) FindChild( name ) GetParent() GetEvent(name ) GetMethod(name ) 6.3.3.3 内容 オブジェクトタイプを返す(Dxp.ObjectType.***) オブジェクトのタイプ名称 (例:BaseGroup/MelsecEthernetGroup) パス。 名前。 設定情報(CSV)。 内容 [戻り値] インスタンス情報のダンプ(文字列) “ObjectTypeName{ClassName, Name, Path }” [引数] name :配下の相対パス(文字列) [戻り値] 絶対パス。 [引数] name :配下の相対パス(文字列) [戻り値] オブジェクトアクセスクラス(BooleanTag、Device など) <使用例> local group = @@g( "Group1" ); local tag = group:FindChild( "tag1" ); [戻り値] グループ(Group、Device、Struct) [引数] name :配下のイベントスクリプト名(文字列) [戻り値] イベント(EventScript) [引数] name :配下のメソッドタグ名 (文字列) [戻り値] メソッド(Method) デバイスアクセスクラス デバイスアクセスクラス(Device)。 プロパティ 型 論理型 Status 論理型 Standby 論理型 Simulate メソッド ToString() GetPortName() GetPort() GetStandbyDevicePath() GetStandbyDevice() 属性 R R/W R/W 内容 通信状態。システムタグ$Status のエイリアス。 二重化通信状態。システムタグ$Standby のエイリアス。 シミュレーション状態。システムタグ$Simulate のエイリアス。 内容 [戻り値] インスタンス情報のダンプ(文字列) “ObjectTypeName{ClassName, Name, Status, Standby, Simulate }” [戻り値] ポート名(文字列) [戻り値] ポート(Port) 割り付けられたポートのインスタンスを取得します。取得に失敗すると、nil を返します。 [戻り値] 待機デバイスのフルパス(文字列) [戻り値] 待機デバイス(Device) 待機デバイスのインスタンスを取得します。待機デバイスが設定されていない場合は、nil を返します。 備考 グループアクセスクラスから派生しており、グループアクセスクラスのプロパティやメソッドが利用できます。 - 196 - 6.3.3.4 構造体アクセスクラス 構造体アクセスクラス(Struct) プロパティ TypeName メソッド ToString() 型 文字列 属性 R 内容 タイプ名。 内容 [戻り値] インスタンス情報のダンプ(文字列) “ObjectTypeName{ClassName, Name, StructTypeName }” 備考 グループアクセスクラスから派生しており、グループアクセスクラスのプロパティやメソッドが利用できます。 6.3.3.5 ポートアクセスクラス ポートアクセスクラス(Port) メンバー ObjectType ObjectClassName Path Name Config 関数 ToString() 6.3.3.6 型 数値 文字列 文字列 文字列 文字列 イベントスクリプトアクセスクラス 関数 Run() 内容 オブジェクトタイプを返す(Dxp.ObjectType.***) オブジェクトのタイプ名称(例:EthernetPort) パス。 名前。 設定情報(CSV)。 内容 [戻り値] インスタンス情報のダンプ(文字列) “ObjectTypeName{ClassName, Name }” イベントスクリプトアクセスクラス(EventScript) メンバー 型 数値 ObjectType 文字列 ObjectClassName 文字列 Path 文字列 Name 文字列 Config 論理型 Enabled ToString() 属性 R R R R R 属性 R R R R R R/W 内容 オブジェクトタイプを返す(Dxp.ObjectType.***) オブジェクトのタイプ名称(例:EventScript) パス。 名前。 設定情報(CSV)。 実行設定。 内容 [戻り値] インスタンス情報のダンプ(文字列) “ObjectTypeName{ClassName, Name }” イベントを手動実行する。 [戻り値] なし <使用例 1> local device = @d( "Device1" ); local event = device:GetEvent( "script01" ); event:Run(); <使用例 2> local event = @e( "Device1.script01" ); event:Run(); - 197 - 6.3.3.7 メソッドアクセスクラス メソッドアクセスクラス(Method) メンバー ObjectType ObjectClassName Path Name Config Enabled 関数 ToString() Run() 型 数値 文字列 文字列 文字列 文字列 論理型 属性 R R R R R R/W 内容 オブジェクトタイプを返す(Dxp.ObjectType.***) オブジェクトのタイプ名称(例:Method) パス。 名前。 設定情報(CSV)。 実行設定。 内容 [戻り値] インスタンス情報のダンプ(文字列) “ObjectTypeName{ClassName, Name }” メソッドを手動実行する。 [戻り値] なし <使用例 1> local device = @d( "Device1" ); local method = device:GetMethod( "Method01" ); method:Run(); <使用例 2> local method = @m( "Device1.method01" ); method:Run(); 6.3.3.8 時刻クラス 時刻クラス(Time) メンバー High Low 関数 Format( format ) 型 数値 数値 [引数] [戻り値] 属性 R/W R/W 内容 上位値 下位値 内容 format :日時のフォーマット(文字列) 日時文字列(文字列) ※省略可能 <使用例> local time = Dxp.GetCurrentTime(); Dxp.LogInfoMessage( time:Format("%Y/%m/%d %H:%M:%S") ); Diff( Time ) Year() Month() Day() Hour() Min() Sec() WDay() COleDateTime::Format()に指定できるフォーマット文字列が指定可能。 [数] Time :時刻クラス(Time) [戻り値] 秒単位の時刻の差(数値) [戻り値] 年(数値) [戻り値] 月。1~12(数値) [戻り値] 日。1~31(数値) [戻り値] 時。0~23(数値) [戻り値] 分。0~59(数値) [戻り値] 秒。0~59(数値) [戻り値] 曜日。1[日曜]~7[土曜](数値) - 198 - 6.3.4関数 グローバルテーブル Dxp の配下に、下記の関数を提供します。 関数 内容 Dxp 指定されたパスのオブジェクトが存在するかどうか確認します。 IsTag( path, name ) [引数] path :パス(文字列) IsDevice( name ) name :名前(文字列) IsGroup( path, name ) [戻り値] 該当の種類のオブジェクトが存在するかどうか(論理型) IsStruct( path, name ) IsPort( name ) IsMethod( path, name ) IsEvent( path, name ) GetObject( path, name ) 指定されたパスのオブジェクトを取得します。 [引数] path :パス(文字列) name :名前(文字列) [戻り値] オブジェクトアクセスクラス(BooleanTag、Device など) GetObjectType( path, name ) 指定されたパスのオブジェクトの種類を調べます。 [引数] path :パス(文字列) name :名前(文字列) [戻り値] オブジェクトタイプ(数値:Dxp.ObjectType.***) GetObjectTypeString( type ) オブジェクトタイプのタイプ名を取得します。 [引数] type :オブジェクトタイプ(数値:Dxp.ObjectType.***) [戻り値] オブジェクトタイプ名(文字列) GetDelimiter() デリミター文字を取得します。 [戻り値] 名前空間デリミター(文字列) MakePath( fullpath, child ) デリミター文字を付けたパスを取得します。 [引数] fullpath :親の絶対パス(文字列) child :子の名前(文字列) [戻り値] 親の絶対パス+名前空間デリミター+子の名前 品質フラグの文字列を取得します。 [引数] quality :タグの品質フラグ(数値) [戻り値] 品質フラグ文字列(文字列) 品質フラグが Good かどうか確認します。 [引数] quality :タグの品質フラグ(数値) [戻り値] 品質フラグが Good かどうか(論理型) 品質フラグが Bad かどうか確認します。 [引数] quality :タグの品質フラグ(数値) [戻り値] 品質フラグが Bad かどうか(論理型) 品質フラグが Uncertain どうか確認します。 [引数] quality :タグの品質フラグ(数値) [戻り値] 品質フラグが Uncertain かどうか(論理型) グループ内のタグの値を、別のグループへ階層的にコピーします。 [引数] dst :コピー先パス(文字列型) src :コピー元パス(文字列型) [戻り値] 処理が成功したかどうか(論理型) GetQualityString( quality ) IsGoodQuality( quality ) IsBadQuality( quality ) IsUncertainQuality( quality ) CopyTagsValue( dst, src ) - 199 - SyncRead( tags ) SyncWrite( tags ) LogMessage( msg ) LogInfoMessage( msg ) LogWarningMessage( msg ) LogErrorMessage( msg ) GetCurrentTime() And( num1, num2 ) Or( num1, num2 ) Xor( num1, num2 ) Nor( num1, num2 ) Nand( num1, num2 ) Not( num ) 同期読出しを行います。 [引数] tags :タグを格納したテーブル(Tag) [戻り値] 処理結果。成功/失敗(論理型) <使用例> local tags = {}; -- 読出し対象のタグをセット for i=1, 10, 1 do tags[i] = @t( "Device1.Tag" .. i ); end -- 同期読出 local ret = Dxp.SyncRead( tags ); -- 読出し結果 local sum = 0; for i=1, 10, 1 do sum = sum + tags[i].Value; end 同期書き込みを行います。 [引数] tags :タグを格納したテーブル(Tag) [戻り値] 処理結果。成功/失敗(論理型) <使用例> local tags = {}; -- 書込み対象のタグをセット、書込み値をセット for i=1, 10, 1 do tags[i] = @t( "Device1.Tag" .. i ); tags[i].Value = 123; end -- 同期書込 local ret = Dxp.SyncWrite( tags ); スクリプトログメッセージを出力します。 [引数] msg :出力するメッセージ(文字列) インフォメッセージを出力します。 [引数] msg :出力するメッセージ(文字列) 警告メッセージを出力します。 [引数] msg :出力するメッセージ(文字列) エラーメッセージを出力します。 [引数] msg :出力するメッセージ(文字列) 現在時刻を取得します。 [戻り値] 現在時刻(Time) 各種ビット演算(AND / OR / XOR / NOR / NAND)を行います。 [引数] num1:対象の数値 1(数値型) num2:対象の数値 2(数値型) [戻り値] 各種ビット演算の結果(数値型) ビット演算(NOT)を行います。 [引数] num:対象の数値(数値型) [戻り値] ビット演算(NOT)の結果(数値型) - 200 - 6.3.5アクセスマクロ デバイスエクスプローラのスクリプトは独自に以下のマクロを提供します。アクセスマクロは、タグやデバイス、グループ、構造体、 メソッド、ポートなどのアクセスクラスのインスタンスを生成します。 マクロ 内容 絶対アクセスマクロ。絶対パスを、アットマークに続けてダブルコーテーションで囲むことで、 タグやデバイス、グループ、構造体、メソッド、ポートクラスのインスタンスを生成します。指定 された絶対パスのオブジェクトに応じたインスタンスが返されます。該当するオブジェクトが存 在しない場合、nil が返ります。 @( fullpath ) @t( fullpath ) @d( fullpath ) @g( fullpath ) @s( fullpath ) @m( fullpath ) @e( fullpath ) @p( fullpath ) @@ @@( relativePath ) @@t( relativePath ) @@g( relativePath ) @@s( relativePath ) @@m( relativePath ) @@e( relativePath ) <使用例 1> @("Device1.Tag1").Value = 1; <使用例 2> local tag = @("Device1.Tag1"); tag.Value = 1; タグ絶対アクセスマクロ。タグアクセスクラスのインスタンスを生成します。 デバイス絶対アクセスマクロ。デバイスアクセスクラスのインスタンスを生成します。 グループ絶対アクセスマクロ。グループアクセスクラスのインスタンスを生成します。 構造体絶対アクセスマクロ。構造体アクセスクラスのインスタンスを生成します。 メソッド絶対アクセスマクロ。メソッドアクセスクラスのインスタンスを生成します。 下記は、デバイス「Device1」の配下に「SetAuto」という名前のメソッドタグがあらかじめ作成 されている場合に、SetAuto メソッドのコールする例です。 <使用例 1> local ret = @m("Device1.SetAuto"):Run(); <使用例 2> local method = @m("Device1.SetAuto"); local ret = method:Run(); イベント絶対アクセスマクロ。イベントスクリプトアクセスクラスのインスタンスを生成します。 ポート絶対アクセスマクロ。ポートアクセスクラスのインスタンスを生成します。 相対アクセスマクロ。スクリプトを設定したオブジェクトを起点とした相対パスでオブジェクトに アクセスします。相対パスを二つのアットマークに続けてダブルコーテーションで囲むか、アッ トマーク二つのみで記述します。該当するオブジェクトが存在しない場合、nil が返ります。 @@( "RelativePath" ) ・・・相対的に子オブジェクトにアクセス @@ ・・・自分自身(this) 下記は、デバイス「Device1」の配下に「Tag1」という名前のタグがあらかじめ作成されている 場合に、デバイスの名前とタグの値をログメッセージとして出力する例です。 <使用例 1> Dxp.LogInfoMessage( @@.Name .. " / " .. @@("Tag1"):ToStringValue() ); <使用例 2> local device = @@; local tag = @@("Tag1"); Dxp.LogInfoMessage( device.Name .. " / " .. tag:ToStringValue() ); タグ相対アクセスマクロ。タグアクセスクラスのインスタンスを生成します。 グループ相対アクセスマクロ。グループアクセスクラスのインスタンスを生成します。 構造体相対アクセスマクロ。構造体アクセスクラスのインスタンスを生成します。 メソッド相対アクセスマクロ。メソッドアクセスクラスのインスタンスを生成します。 イベントスクリプト相対アクセスマクロ。イベントスクリプトアクセスクラスのインスタンスを生成 します。 - 201 - 6.3.6返されるオブジェクトの優先順位 オブジェクトアクセスマクロ(@)や Dxp.GetObjectType 関数で検索されるオブジェクトの優先順位を下記に示します。例えば、同 じ名前のポートとデバイスが存在する場合、デバイスが返されます。明示的にポートを取得したい場合は、ポートアクセスマクロ を使ってください。 順位 ↑高 | | | ↓低 オブジェクト タグ、メソッド グループ、構造体インスタンス イベントスクリプト デバイス ポート 6.3.7スクリプトの実行単位について デバイス単位で Lua の実行エンジンを持ち、全く別のスレッドで実行されます。Device1 と Device2 のスクリプトは関連性を持た ず、別物として実行されます。Device1 が断線中に、Device1 配下のスクリプトで配下のタグ(Device1.Tag1 など)の値の同期読 出(Dxp.SyncRead 関数)を行うと、タイムアウト待ちおよびリトライ処理が完了するまで Device1 のスクリプトの実行は待たされ ますが、Device2 のスクリプトの実行に影響を与えることはありません。 6.3.8書込みについて タグアクセスクラスインスタンスの Value プロパティに新しい値が代入されるか、配列タグアクセスインスタンスの SetValue メソッ ドで新しい値がセットされると、スクリプトエンジンは、非同期で相手機器に値の書込みを行います。スクリプトで値代入後に同期 書込関数をコールした場合には、非同期書込みは行いません。ただし、同期書込関数コール後に値代入された場合には、非同期 書込みを行います。 断線中のデバイスに関するタグへの値書込みを繰り返し行うと、非同期の書込み要求が溜まっていきます。断線から復帰すると、 要求された順番で一気に書込みが行われます。長時間断線していると、非同期書込み要求を保持できる数の上限に達し、メッセ ージビューにエラーが出力されます。本エラーの発生に至らないようにするには、断線中はタグへの値書込みを控えるか、もしく は構成プロパティの「書込キューの負荷軽減」の設定を適切に設定することで対処できます。 - 202 - 6.4 サンプル 6.4.1基本的な処理の例 本サンプルでは、最も基本的な処理を行う例を示します。最初に準備として、Device1 にタグ(Device1.Tag001)を作成します。 Device1 に 2 つのイベントスクリプトを作成します。 Initialize スクリプト(スクリプト起動)で、グローバル変数の初期化や関数の作成を行います。 スクリプトはデバイス毎にスクリプトの実行エンジン(「6.3.7 スクリプトの実行単位について」を参照)を持っており、グローバルな 変数・関数は、デバイスおよびその配下のグループの間で共有可能なものとなります。 スクリプト例(Initialize) 1 2 3 4 6 7 8 -- define the function function CalcAdd( val1, val2 ) return val1 + val2; end -- declare gloval variable g_counter = 0; Cycle スクリプト(周期)で、常時実行する処理を実装します。Initialize スクリプトで作成したグローバル変数や関数を利用するこ とができます。ローカル変数の宣言には「local」キーワードを利用します。タグの値にアクセスするには、OPC サーバー独自のタ グアクセスマクロ(@t や@@t)を利用することができます。タグのプロパティにアクセスする場合にはドット「.」を、メソッドを呼び出 す場合にはコロン「:」(第一引数の this オブジェクトを省略する Lua 言語の仕組み)を用います。「Dxp」ネームスペース下に定義 された OPC サーバー独自の関数(Dxp.LogMessage など)を利用することで、ログメッセージを出力することができます。 スクリプト例(Cycle) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 -- Count up global variable g_counter = g_counter + 1; -- Getting tag access object with local variable local tag = @@t( "Tag001" ); -- Calling the function and writing the value of tag tag.Value = CalcAdd( g_counter, 1000 ); -- Output message log (WarningLog) Dxp.LogWarningMessage( "counter=" .. g_counter .. " / tag=" .. tag:ToStringValue() ); -- If example if ( g_counter % 5 == 0 ) then -- For example local i; for i=0, 10, 1 do Dxp.LogInfoMessage( "i=" .. i ); end end - 203 - 6.4.2簡易的な CSV ロギング 本サンプルでは、指定のフォルダーにテキストファイルを作成し、CSV 形式でタグの値を収集する単純な例を示します。 最初に準備として、Device1 にタグを作成します。 Device1 にイベントスクリプトを作成します。 Tag001~003 の 3 点を現在時刻付きで CSV 出力する処理を実装します。 スクリプト例(SimpleLogging) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 local f, msg = io.open("C:¥¥Work¥¥Log.csv", "a+" ); -- Check the open result if (f == nil) then Dxp.LogErrorMessage( "File Open Error (" .. msg .. ")" ); return; end -- Make CSV local text = ""; text = text .. Dxp.GetCurrentTime():Format(); text = text .. "," .. @@t("Tag001"):ToStringValue(); text = text .. "," .. @@t("Tag002"):ToStringValue(); text = text .. "," .. @@t("Tag003"):ToStringValue(); -- Write to file f:write( text .. "¥n" ); -- Close the file f:close(); -- Dump log Dxp.LogMessage( text ); 配列型のタグを利用する形に書き換えることで、複数点の連続データのロギングが簡単に実現できます。 スクリプト例(SimpleLogging) : 9 10 11 12 13 14 : -- Make CSV local text = ""; text = text .. Dxp.GetCurrentTime():Format(); text = text .. "," .. @@t("ArrayTag"):ToStringValue(); -- Write to file - 204 - 6.4.3外部ファイルにクラスを定義する例(ブリッジ) 本サンプルでは、タグ単位のブリッジ処理を例に、よく使う機能を外部ファイルでクラス定義する例を示します。 ブリッジを行うデバイス(Device1、Device2)とタグ(Device1.Tag001~005、Device2.Mem001~005)を作成します。 SYSTEM にイベントスクリプトを作成します。 Initialize スクリプト(スクリプト起動)では、外部のスクリプトファイルをロードします。これにより、外部ファイルに定義された BridgeSample クラスが利用できるようになります。生成した BridgeSample のインスタンスはグローバルな変数に代入します。 BridgeSample クラスのインスタンスメソッドを呼び出し、ブリッジを行うタグのパスを登録します。 スクリプト例(Initialize) 1 2 3 4 5 6 7 8 9 require( "lua/BridgeSample" ); g_bridge = BridgeSample.New(); g_bridge:Add( "Device1.Tag001", "Device2.Mem001" ); g_bridge:Add( "Device1.Tag002", "Device2.Mem002" ); g_bridge:Add( "Device1.Tag003", "Device2.Mem003" ); g_bridge:Add( "Device1.Tag004", "Device2.Mem004" ); g_bridge:Add( "Device1.Tag005", "Device2.Mem005" ); Bridgeスクリプト(周期)では、Initializeスクリプトで生成した BridgeSampleクラスのインスタンスメソッドを呼び出し、ブリッジ処 理を行います。 スクリプト例(Bridge) 1 2 3 g_bridge:BridgeForward(); - 205 - 外部ファイルで BridgeSample クラスを定義する例を示します。 作成したスクリプトファイルは実行フォルダー(C:¥Program Files (x86)¥TAKEBISHI¥DeviceXPlorer OPC Server 5¥Bin¥) の下に「Lua」フォルダーを作成し、その中に配置します。 スクリプト例(実行フォルダ¥Lua¥BridgeSample.lua) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 if (LUA_TKB_BRIDGE_SAMPLE_INCLUDE == nil) then LUA_TKB_BRIDGE_SAMPLE_INCLUDE = 1; -- ******************************************************************* -- BridgeData class -- ******************************************************************* BridgeData = { New = function(_DstTagPath, _SrcTagPath) return { SrcTagPath = _SrcTagPath, DstTagPath = _DstTagPath, SrcTag = nil, DstTag = nil, -- ///////////////////////////////////////////////////////// -- PrepareTag method -- ///////////////////////////////////////////////////////// PrepareTag = function(this) this.SrcTag = Dxp.GetTag( "", this.SrcTagPath ); this.DstTag = Dxp.GetTag( "", this.DstTagPath ); local found = true; if ( this.SrcTag == nil) then Dxp.LogErrorMessage( "BridgeData - Not found SrcTag [" .. this.SrcTagPath .. "]" ); found = false; end if (this.DstTag == nil ) then Dxp.LogErrorMessage( "BridgeData - Not found DstTag [" .. this.DstTagPath .. "]" ); found = false; end if ( found == false ) then this.SrcTag = nil; this.DstTag = nil; end end, return found; -- ///////////////////////////////////////////////////////// -- HasValue method -- ///////////////////////////////////////////////////////// HasValues = function(this) if ( this.SrcTag:HasValue() == false ) then return false; end if ( this.DstTag:HasValue() == false ) then return false; end return true; end, -- ///////////////////////////////////////////////////////// -- BridgeForwared method -- ///////////////////////////////////////////////////////// BridgeForward = function(this) - 206 - 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 end, }; end }; this.DstTag.Value = this.SrcTag.Value; -- ///////////////////////////////////////////////////////// -- BridgeInverse method -- ///////////////////////////////////////////////////////// BridgeInverse = function(this) this.SrcTag.Value = this.DstTag.Value; end -- ******************************************************************* -- BridgeSample -- ******************************************************************* BridgeSample = { New = function() return { Bridges = {}, -- ///////////////////////////////////////////////////////// -- Add method -- ///////////////////////////////////////////////////////// Add = function(this, dstPath, srcPath) -- Create Bridge Data local data = BridgeData.New( dstPath, srcPath ); this.Bridges[#this.Bridges + 1] = data; end, -- At first, get tag to start communication with PLC for getting values data:PrepareTag(); -- ///////////////////////////////////////////////////////// -- BridgeTags method -- ///////////////////////////////////////////////////////// BridgeForward = function(this) -- Wait for getting values for i=1, #this.Bridges, 1 do local data = this.Bridges[i]; if ( data:HasValues() == false ) then return false; -- failed end end -- Do Bridge for i=1, #this.Bridges, 1 do local data = this.Bridges[i]; data:BridgeForward(); end }; end }; end return true; -- succeeded end - 207 - 6.4.4外部ファイルにクラスを定義する例(タイマー) 本サンプルでは、タイマー処理を例に、よく使う機能を外部ファイルでクラス定義する例を示します。 タイマーの開始・停止を行うタグ(SYSTEM.Running)を作成します。 SYSTEM にイベントスクリプトを作成します。 Initialize スクリプト(スクリプト起動)では、外部のスクリプトファイルをロードします。これにより、外部ファイルに定義された TimerSample クラスが利用できるようになります。生成した TimerSample のインスタンスはグローバルな変数に代入します。 スクリプト例(Initialize) 1 2 3 4 5 6 require( "lua/TimerSample" ); -- Timer g_timer = TimerSample.New(); g_timer:Stop(); StartStop スクリプト(SYSTEM.Running:変化時(値))では、Initialize スクリプトで生成した TimerSample クラスのインスタン スメソッドを呼び出し、タイマーの開始・停止を行います。 スクリプト例(StartStop) 1 2 3 4 5 6 7 8 if ( @t("SYSTEM.Running").Value == true ) then g_timer:Start(); Dxp.LogInfoMessage("Timer Start"); else g_timer:Stop(); Dxp.LogInfoMessage("Timer Stop"); end Timer スクリプト(周期)では、10 秒のタイムアップ判定を行い、「Time Up」メッセージをログに出力することを繰り返します。 スクリプト例(Timer) 1 2 3 4 5 if ( g_timer:Elapsed(10) == true ) then Dxp.LogInfoMessage( "Time up !" ); g_timer:StartAdd(10); end 外部ファイルで TimerSample クラスを定義する例を示します。 作成したスクリプトファイルは実行フォルダー(C:¥Program Files (x86)¥TAKEBISHI¥DeviceXPlorer OPC Server 5¥Bin¥) の下に「Lua」フォルダーを作成し、その中に配置します。 スクリプト例(実行フォルダ¥Lua¥TimerSample.lua) 1 2 3 4 5 if (LUA_TKB_TIMER_SAMPLE_INCLUDE == nil) then LUA_TKB_TIMER_SAMPLE_INCLUDE = 1; -- ******************************************************************* -- TimerSample class - 208 - 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 -- ******************************************************************* TimerSample = { New = function() return { Running = true, LastTime = os.time(), -- ///////////////////////////////////////////////////////// -- Start method -- ///////////////////////////////////////////////////////// Start = function( this ) this.LastTime = os.time(); this.Running = true; end, -- ///////////////////////////////////////////////////////// -- StartAdd method -- ///////////////////////////////////////////////////////// StartAdd = function( this, sec ) local nowTime = os.time(); this.LastTime = this.LastTime + sec; if ( this:Elapsed(sec) == true ) then this.LastTime = nowTime - sec; end end, this.Running = true; -- ///////////////////////////////////////////////////////// -- Elapsed method -- ///////////////////////////////////////////////////////// Elapsed = function( this, sec ) if ( this.Running == false ) then return false; end local planTime = this.LastTime + sec; local nowTime = os.time(); local diffSec = os.difftime( planTime, nowTime ); if ( diffSec <= 0 ) then lastTime = planTime; return true; -- Time up ! end end, }; }; end; return false; -- Not time up -- ///////////////////////////////////////////////////////// -- Stop method -- ///////////////////////////////////////////////////////// Stop = function( this ) this.Running = false; end end - 209 - 7 トラブルシューティング 7.1 エラーメッセージ デバイスエクスプローラのメッセージビューに表示されるエラーメッセージについて説明します。 エラーメッセージ オープン異常(Code = XXX) 送信エラー(Code = XXX) 受信エラー(Code = XXX) 内容 ポートオープン時にエラーになりました。 送信時にエラーになりました。 受信時にエラーになりました。 タイムアウトが発生しました。受信待ちバイト数 wait=xxx バイトに対して、 受信済みバイト数 got=xxx バイトという意味で、期待する受信待ちバイト数 受信タイムアウトエラー(wait=xxx, got=xxx) 分の応答メッセージが返ってこないことを意味します。 Ethernet 接続の場合の要因については、7.1.1 を参照してください。 送信メッセージサイズ異常 送信データのサイズが異常です。 受信メッセージサイズ異常 受信データのサイズが異常です。 受信ヘッダ異常 受信データのヘッダ部分が異常です。 レスポンスエラー PLC からエラー応答を受信しました。 通信異常 上記以外の異常が発生しました。 受信サムチェック異常 受信データのサムチェックが伝文内のデータと異なります。 COMポートハンドル不正 要求されたデバイスモードが設定できません。 受信バッファーオーバーフロー 受信バッファーがオーバーフローしました。 受信オーバーラン 受信でオーバーランが発生しました。 受信パリティエラー パリティエラーが発生しました。 受信フレーミングエラー フレーミングエラーが発生しました。 受信ブレーク信号検出 回線にブレーク状態が検出されました。 I/ Oエラー I/ Oエラーが発生しました。 送信バッファーオーバーフロー 送信バッファーがオーバーフローしました。 ※「Code= XXX」はエラーコードを表します。エラーコードの内容は使用しているポートによって異なります。 7.1.1Ethernet 接続における受信タイムアウトエラーの発生要因 Ethernet 接続で受信タイムアウトエラーが出る要因は主に以下の通りです。ネットワークアダプターの故障などその他の要因の 可能性も考えられます。 要因 対策 No. 通信の周期や接続台数、アクセス点数を調整し、ネットワ ネットワーク負荷が高い。(慢性的 or 瞬間的) 1 ーク負荷を下げる。 PC の CPU 負荷が高い。(慢性的 or 瞬間的) PC の CPU 負荷を下げる。高性能な PC に置き換える。 2 Windows の ARP 処理によって受信パケットがクリアされ Windows のレジストリ設定から ARP のキャッシュの保 3 る。(10 分に一度、タイムアウトエラーが出る場合) 持期間を延ばす。 タイムアウト時間を延ばす。(慢性的にネットワーク負荷 ネットワーク環境に対してタイムアウト設定の値が小さい。 4 が高い環境で、負荷軽減も困難な場合。) UDP/IP の場合(TCP/IP の場合はオープン異常となるため、5.6 は当てはまりません。) PLC の電源状態、LAN ケーブルの接続状態を確認す PLC の電源断、もしくは LAN ケーブルの断線。 5 る。 PLC 側の Ethernet パラメーター、もしくはデバイスエクスプ PLC 側の Ethernet のパラメーター設定と、デバイスエク 6 ローラ側の Ethernet ポート設定に誤りがある。 スプローラ側の Ethernet ポート設定を見直す。 備考 TCP/IP は信頼性の高い通信プロトコルです。もし UDP/IP と TCP/IP が選択できる場合は、TCP/IP の使用を推奨します。 - 210 - 7.1.2Ethernet 使用時のエラーコード(Winsock エラーコード) オープン・送受信エラー発生時に表示されるエラーコード(Code=XXX)の内容について説明します。 Code 10024 10022 10035 10036 10038 10039 10040 10048 10049 10050 10051 10052 10053 10054 10055 10056 10057 10058 10060 10061 258 39321 内容 利用出来るファイルディスクリプタがありません。 ソケットはまだアドレスにバインドされていません。 ソケットが非ブロッキングになっていて、接続が完了出来ません。 実行中の Windowsソケット操作がブロッキングされています。 ディスクリプタがソケットではありません。 宛先アドレスが必要です。 データグラムが長すぎて、指定したバッファーに入りきらないため、切り詰められました。 指定したアドレスは使用中です。ポート番号に0以外を指定したとき発生することがあります。 指定したアドレスは、ローカルマシンからは利用出来ません。 Windowsソケットのインプリメントが、ネットワークサブシステムの異常を検出しました。 ホストからネットワークに到達出来ません。 Windowsソケットのインプリメントがソケットをドロップしたので接続をリセットする必要があります。 タイムアウトまたはその他の障害により、仮想回路はアボートされました。 Ethernetケーブル、HUB電源を確認してください。 リモート側から仮想回路がリセットされました。 PLCCPUのリセット、電源OFFの時に発生することがあります。 利用出来るバッファー領域がありません。ソケットは接続出来ません。 TCP 接続数を少なくしてください。 ソケットは既に接続されています。 ソケットが接続されていません。 ソケットはシャットダウンされました。 接続を試みましたが、タイムアウトで接続を確立出来ませんでした。 Ethernet回線及びPLC側の設定を確認してください。 接続を試みましたが、リジェクトされました。PLC側にコネクション接続が残っています。PLCのCPUリセット またはオープン要求信号をOFFにしてください。 相手機器との接続時にタイムアウトエラーが発生しました。相手機器が存在するか確認してください。 7.1.3シリアル使用時のエラーコード オープン・送受信エラー発生時に表示されるエラーコード(code=XXXの内容)について説明します。 エラーコード 2 5 内容 指定されたポートが存在しません。 指定されたポートは既にオープンされています。 - 211 - 付録 8 OPC テストクライアントの使い方 8.1 付属のクライアントサンプル オンラインマニュアル「DeviceXPlorer_Sample.pdf」をご覧下さい。 スタートメニューから[プログラム]→[DeviceXPlorer OPC Server 5]→[クライアントサンプル]→[クライアントサンプル オンライ ンマニュアル]を選択してご覧下さい。 8.2 サンプルプログラムについて インストールディレクトリのフォルダーの Samples フォルダーにサンプルプログラムが格納されています。 それ以外のサンプルプログラムについては、インストールメディアの「Samples」フォルダーを参照してください。 詳細については DeviceXPlorer クライアントサンプルガイドを参照してください。 8.3 ユーザーサポート ユーザー登録済みのお客様には、ユーザーサポートサービスをご提供致しております。デバイスエクスプローラの設定や操作方 法に関する不明点等ございましたら下記までお問い合わせください。 サポートダイヤル TEL 075-325-2261 / FAX 075-325-2273 [email protected] 受付時間 9:00~12:00 / 13:00~17:00 なお、お問い合わせの際は、下記項目を確認させて頂きますのでご準備ください。 ① ② ③ ④ 製品名、シリアル番号(CD、ライセンス証書およびユーザー登録カードに記載) パソコンの機種、OS 種類/サービスパック 接続先機器の CPU のタイプ、通信ユニット型名 クライアントソフトウェアのバージョン/サービスパック/開発言語等 備考 ハードウェアやデバイスドライバの設定方法、シーケンスプログラムやサンプルプログラムのプログラミング方法など、デバイ スエクスプローラ以外のご質問に関しては、お答えできない場合がありますのでご了承ください。 - 212 - 8.4 著作権情報 デバイスエクスプローラで使用しているサードパーティー製ソフトウェアの著作権情報を示します。 8.4.1Scintilla License for Scintilla and SciTE Copyright 1998-2003 by Neil Hodgson <[email protected]> All Rights Reserved Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation. NEIL HODGSON DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL NEIL HODGSON BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 8.4.2Lua Copyright(C) 1994-2012 Lua.org, PUC-Rio. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - 213 - 8.4.3tolua++ Copyright (C) 2009 Ariel Manzur. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 8.4.4CGridListCtrlEx Copyright 2012 by Rolf Kristensen, under CPOL ( The Code Project Open License ). - 214 - DeviceXPlorer OPCServer ユーザーズガイド サーバー本体編 F10191S-A011 September 2014
© Copyright 2024 Paperzz