B&R Automation StudioのTutorial第4話です。今回はB&RのAutomation StudioでOPC UA Serverの立ち上げ・そしてOPC UA に関するコンセプトを簡単に説明します。
さ、始めよう!
Reference Link
OPC UA?
OPC UAは、産業におけるオートメーション・アプリケーションのための、メーカーに依存しない通信プロトコルです。個々のセンサーやアクチュエーターからERPシステムやクラウドまでのEnd to Endの通信を可能にします。
B&Rは長年OPC Foundationの様々なワーキンググループのメンバーで、様々な製品を作っています。B&R の Automation Studio エンジニアリング環境での OPC UA デバイスの設定とアクセス権の設定を、数回のクリックで簡易設定できます。
さらにB&R の Automation StudioはPLCopen Function Blockが提供され、オートメーションプロジェクトに OPC UA 機能を実装するために使用されます。
Advantages
OPC UAは、ERPシステムから個々のセンサーやアクチュエーターまで、統合された通信を可能にし、様々な分野相互運用性を実現します。OPC UAは柔軟で完全に独立しており、industrial 4.0に様々な貢献をしています。OPC UAを使用することにより色々なメリットがあります。
- International standard (IEC 62541)に準じる
- 安全・セキュリティのデータ交換
- 信頼性高まる
- ベンダーに依存しない
- プラットフォームに依存しない
- Vertical and horizontal communication
International standard (IEC 62541)
OPC UAは、OPC Foundationによって仕様が定義され、IEC 62541で標準化されています。OPC UA仕様は14部から構成され、PLCopenや他のコンソーシアムなど他の組織の仕様によって継続的に補足されています。
- IEC/TR 62541-1 Part 1: Overview and concepts
- IEC/TR 62541-2 Part 2: Security model
- IEC 62541-3 Part 3: Address space model
- IEC 62541-4 Part 4: Services
- IEC 62541-5 Part 5: Information model
- IEC 62541-6 Part 6: Mappings
- IEC 62541-7 Part 7: Profiles
- IEC 62541-8 Part 8: Data access
- IEC 62541-9 Part 9: Alarms and conditions
- IEC 62541-10 Part 10: Programs
- IEC 62541-11 Part 11: Historical access
- Part 12: Discovery
- IEC 62541-13 Part 13: Aggregates
- Standard OPC UA specifications
- Part 14: PubSub
- IEC 62541-100 PLCopen IEC 61131-3
Where to use?
OPC UAは、B&Rシステムの様々なところで使用されています:
- HMIアプリケーションとコントローラとの接続(mapp Viewなど)
- B&RControllerのデータ交換
- 他社のCPUとのデータ交換
- Fieldbusデバイスの接続(例えばB&RのBus ControllerもしくはOPC UA対応したsensors またはactuators)
HMI Applications
OPC UAのHMIアプリケーションとPLCシステム間のプロセス変数の交換になる活用ケースです。簡単に説明すると、HMIアプリケーションはOPC UA ClientをPLC などのControllerはOPC UA Serverに接続します。ServerにあるOPC UA Nodeは、PLC との間でプロセス変数データを受信します。
OPC UA bus controller
Bus ControllerはOPC UA Server機能を提供し、様々なOPC UA ClientにそのBus Controllerと接続し、Bus ControllerにインストールしたIOモジュールからデータを読み書きできます。
例えば下図のBus Controller X20BC008U は、OPC UA システムと X20 I/O システムを接続し、OPC UAサービスを使用して、Bus ControllerとX20 I/Oモジュールの両方からデータを要求または送信できます。
OPC UA標準に従ったB&R Bus Controllerは、B&R製品だけでなく、他社のOPC UA Clientでもアクセスできます。
Controller to controller
OPC UAを使用すると、PLCシステム間の通信もPLCopen で指定されたFBを使用すれば、簡単に実装できます。Automation Studio には 20 以上のFBが提供されており、接続先のOPC UAデバイスにデータを転送したり、メソッドを呼び出すことができます。
Information model
OPC UA仕様に基づいてたB&R OPC UA Serverでは、PLCシステムはOPC UA ddress spaceにMappingされています。そのInfomration modelは以下の部分に準じます。
- Part 3 (Address Space Model)
- Part 5 (Information model)
- Companion Specification PLCopen OPC UA Information Model 1.00 Specification
Nodes
B&R OPC UAサーバには、仕様に従って必要なOPC UA Nodesが含まれています(例えばServer Objectなど)。さらに、起動中または動作中のB&R OPC UAサーバの状態を示す変数もNodesとしてServerにMappingされます。
NodeID
OPC UA ServerのNodeはNodeID によってAddresssapce内で一意に識別される。そのNodeID は NamespaceIndex、Identifier、IdentifierType から構成される。
NamespaceIndex
OPC UA ServerのNodesは OPC Foundation、PLCopen 組織、または B&R 自身によって定義される可能性があり、OPC UA のAddress spaceはNamespaceに管理されています。
なので、NameSpaceから該当するNodeはどこから定義されたのか次のような形式で分別できます。
Automation Studio
OPC UA bus controller
URIは非常に長いので、NodeIDで指定する代わりにURIをServer Objectにある “NamespaceArray “で管理しています。例えば、Automation Rutnimeの場合に、
- NamespaceIndex 0: http://opcfoundation.org/UA/
- NamespaceIndex 3: http://opcfoundation.org/UA/DI/
- NamespaceIndex 6: urn:B&R/pv/
Implementation
Automation Studio Side
Enable the OPC UA system
B&R のControllerでOPC UA Serverを使用するにはAutomation Runtime Configurationで有効するし、別の画面から設定可能です。基本的な設定は、OPC UAシステムを有効にするだけで十分で、Server設定では、ポート、暗号化アクセス、送信サイクル・タイム、リンク可能な変数数などのサーバー・プロパティを設定することもできます。
プロジェクトにPhysical Viewを切り替え>CPUを選び>右クリック>Configurationを開きます。
OPC-UA System>Activate OPC-UA Systemという項目があり、DefaulrではOffになってます。
Activate OPC-UA Systemの設定項目をOnにするとセキュリティ設定・使用PortなどOPC UA Serverの細かい設定が表示されています。
Configure the Access/Security
次はB&RのConfiguration Viewを開きます。
Configuration Viewが切り替えられ>AccessAndSecurityの項目からUserRoleSystemがあります。このUserRoleSystemにOPC UA ClientがB&RのOPC UA Serverをアクセスするときのセキュリティ関係やLogin情報を設定できます。
ではUserRoleSystem>Role.roleを開いてみます。
Add User
User.userを右クリック>Open>Open As TableでプロジェクトのUser変更を行います。
User Configuration画面が表示されました。
User.userにはいまAnoymousしかありませんので、User画面にも同じように反映されています。
Userの構築画面に右クリック>Add ”User” Elementで新しいUserを追加します。
DonE!Anonymous_1というUserが追加されました。
User name
Anonymous_1のところをクリックしてUser名を変更します。
今回のTutorialではAdminに設定します。
Password
User AdminにLoginするPasswordを設定します。
Done!
Roles
次はRolesです。Rolesは該当するはどこのGroupに所属するかを設定できます。
User AdminはRoles Adminstrators に所属するように設定します。
Add Roles
もし新しいRolesを追加したい場合、Role.roleを右クリック>Open>Open As Tableします。
Rolesの定義画面が表示されます。
Role Configuration画面を右クリック>Add “Role Element”で新しいRoleを追加します。
Adminstrators_1というRolesが追加されました。
Roles名をEnginnerに変更します。
先程のUser Configuration画面に戻り、新しいUser Chrisを追加し、RolesをEngineerに所属するように設定します。
Roles and User?
次のStepに進む前、RolesとUserの関係を少し説明します。例えば、あなたはある生産LINEの担当で、メンテナンス・開発・改造の分野を任されています。当然、あなたのRolesはMaintenance・Modification・Developementにも入っており、それらのRolesに対する権限を持っています。
あなたのTeamに新しいメンバーTomさんが入ってきました。Tomさんの担当分野はLINEのメンテナンスのみで、当然改造や開発に対するアクセス権限を持っていません。
それはRolesとUserの考え方です。Userは1つだけに対して複数の役割があります。
Mapping
次はOPC UA にPublishするNodeを設定します。
Adding OPC UA mapping
OPC UA Default ViewをToolboxからConfiguration View追加することにより簡単にOPC UA とRuntime間の変数Mappingをできるようになります。
つまり、Automation Runtime OPC UAサーバーを利用でき、各Node値の範囲、読み取り/書き込みアクセス、単位など、多くの設定オプションが可能です。
Add Default view
OPC UA Default Viewを追加するにはToolboxにあるOPC UA Default view FileをConfiguration Viewに追加しましょう。
OPCUaMap.uadが追加されました。
OpcUaMap.uadはOPC UA Default Viewでもあり、Runtimeの変数の属性を設定できます。
Configure
OPC UA Serverの基本設定を行うためにDefault Viewをクリックします。
Automation Studioの右にあるProperties‐ Default ViewではOPC UAのセキュリティ設定項目などが表示されます。
Add Role
3rd‐PartyからB&RのAutomation Runtime OPC UA ServerにアクセスするためのLogin情報を追加します。まずOPC UA ServerにアクセスできるRolesを追加していきます。
Rights/Roles>Add Roleします。
Drop-Listが表示されます。まずAdministratorsを選びましょう。
Done!Value列に該当するUserがOPC UA Server対して許可する動作をCheck/UnCheckで設定できます。
同じ操作でEveryone・EngineerのRolesも追加指定していきましょう。
Enable tag
OPC UA ServerにPublishするTagを選択し>右クリック>Enable Tagします。
Done!PublishされるTagは黒色文字になります。
最後はプロジェクトをRuntimeにDownloadしましょう。
UaExpert Side
B&RのOPC UA Serverを検証するためUaExpertを使用します。
Add Server
Add ServerでUaExpertに接続するServerを追加します。
Add Server画面が表示されました。
Custom Discoveryから<+Double Click to Add Server..>で新規Serverを追加します。
B&R OPC UA ServerのURLを入力し>Okで進みます。
Done!B&RのOPC UA Serverが検索できた場合はB&Rの OPC UA Serverと接続できるセキュリティOptionsが表示されます。
今回の記事ではBasic256Sha256で接続します。
Done!B&RのOPC UA Serverが追加されました。
Connect Server
Connect ServerのボタンをクリックしB&RのOPC UA Serverと接続します。
証明書の承認画面が表示されます。
Trust Server certificateをしContinueで進みましょう。
Done!UaExpertとB&RのOPC UA Serverが接続に成功しました。
Add Nodes
CPU>GlobalVarsで先程Automation StudioでEnableしたTagも表示できました。
NodeをUaExpertに追加してみます。
BadUserAccessDenied…?
でもBadUserAccessDeniedというエラーが表示されました。
Properties
UaExpertがB&RのOPC UA ServerにLoginするときの方法を変更するため>Server>B&RのOPC UA Server>Propertiesを開きます。
Authorization SettingsをUsernameに変更し、Username欄をAdminに入力します。
もう一回LoginするとPassword聞かれるようになります。
BadResourceUnavailable..?
Loginは成功しましたが、今度はBadResourceUnavailableというエラーが表示されました。
NodesのAttributesを開くとValueのTimeStampが古く、おそらくB&Rのプロジェクトに該当する変数を使用しTimeStampを更新する必要がありますね。
Use it in program
Automation StudioにOPC UA ServerでPublishした変数を使ってみます。
Result
Done!