ctrlX#OPC UA Server Appsを使ってみよう

今回の記事ではCtrlxのOPC UA Appsの使用方法やスムーズに導入できるように説明します。CtrlxのOPC UA Appsは、OPC Unified Architecture(OPC UA)標準に従った標準化された安全な通信を提供し、OPC UAサーバーとして、ctrlX COREはすべての接続されたOPC UAクライアントにすべてのデバイスデータを提供します。一般的なクライアントには、HMI、MEシステム、またはデータ収集システムがあります。

CtrlxのOPC UA Appsには以下の機能がSupportしています。

  • OPC UA data access
  • OPC UA discovery services including browsing of data
  • Encrypted communication
  • Handling of certificates
  • User identification and authorization
  • Access to all data layer information including plc, motion, system and user app data

Configuration

こちらは今回の接続構成です。ctrlXのOPC UA Server AppsはEXOR社のJSmart710MやTwinCAT TF6100 と接続テストを行います。

OPC UA Server Apps

Security

セキュリティー上で考えると、可能であればAes256-Sha256-RsaPssを使用してください。

  • SecurityPolicy [B] – Basic256Sha256
  • SecurityPolicy [A] – Aes128-Sha256-RsaOaep
  • SecurityPolicy – Aes256-Sha256-RsaPss

Endpoints

Default上で以下のEndpointとLogin ・暗号化 Methodの組み合わせの対応ができます。

  • Sign –Basic256Sha256
  • Sign – Aes128-Sha256-RsaOaep
  • Sign – Aes256-Sha256-RsaPss
  • SignAndEncrypt –Basic256Sha256
  • SignAndEncrypt – Aes128-Sha256-RsaOaep
  • SignAndEncrypt – Aes256-Sha256-RsaPss

Certificate management

OPC UAのサーバーとクライアント間の安全な接続は、信頼できる証明書に基づいて実装されます。現在、Self-signed証明書の管理のみがサポートされています。

つまり、OPC UAサーバーとクライアントの間で証明書を手動で交換することになり、クライアントとサーバーが接続を確立すると、証明書が交換されます。サーバーとクライアントは証明書を手動で信頼する操作をする必要があります。

証明書マネージャーを使用するには以下の手順が必要です:

最初に、OpenSecureChannelを使用してセキュリティの接続(SecureChannel)を設定します。証明書は、そのときクライアントからサーバーに転送されます。

サーバーにエラーBadSecurityChecksFailedが発生し、クライアント証明書を拒否リストに入れます。

クライアントの証明書は、Server側が拒否すると表示されます。この証明書は手動で信頼することができます。クライアントもサーバー証明書を信頼する必要があります。

最後はServerとClientが通信確立されました。クライアントは、今やサーバーと安全なOPC UA接続を設定することができます。

Cleintの証明書は、直接証明書マネージャーにアップロードすることもできますが。証明書は名前を変更する必要があります。ファイル名は、SHA1値に対応する必要があります。

  • 証明書のFinger Printを使用して命名できます。
  • 名前を変更するときに、SHA1のすべての文字を大文字で表示する必要がありま
  • ファイルスキーマはSHA1値の大文字化.derです。

Reference Link

EXOR#Part02_Siemens S71200 OPC UA Serverと繋がろう
Project#Setup Security OPCUA Connection wtih TwinCAT TF6100 x Keyence KV8000

http://soup01.com/ja/2023/04/26/post-5674/

EXOR#Part01_JSMARTパネルを開封します!

http://soup01.com/ja/category/bosch/ctrlx/

http://soup01.com/ja/category/protocol/opcua/

Implementation with TwinCAT TF6100

最初はTwinCAT TF6100と接続テストを行います。

Network Configuration

Virtual Coreは仮想環境で稼働していますのでPort Forwarding の設定が必要になります。Extended tab>Port forwardingを選択します。

こちらは自分のPort Forward設定です。

8022:22,8443:443,8740:11740,48410:48410,2069:2069,2070:2070

If Error..

もしctrlX  Virtualcoreがどうしても起動できないなら、以下の項目をチェックしましょう。

  • 該当するPortは他のアプリケーションに使用されているか
  • 必要ではないアプリケーションを閉じる
  • IP Adapterに複数のIP設定を消す

Ctrlx Side

Download Apps

下記のLinkからCtrlx OPC UA ServerのアプリケーションをDownloadしてください。

https://developer.community.boschrexroth.com/t5/Store-and-How-to/ctrlX-CORE-OPC-UA-Server-App/ba-p/13271

Installation

RuntimeのWBMにアクセスし、Service Modeに切り替えます。

Press Continueで進みます。

Settings>Appsで開きます。

Install from fileでAppをインストールします。

Installで始めます。

Oview

インストール完了したら左側にOPC UAという項目が増え、中にOverviewやServerなども表示されています。(自分がClientもインストールされたのでClientも表示されます)

Overviewをクリックすると現在CtrlXで稼働してるサーバー状態を確認できます。

  • Status:現在状態
  • Start Time:Serverが起動された時間
  • Session:Serverと接続したSession数

User 

CtrlXのOPC UA Serverはセキュリティなしでアクセスできませんので、OPC UA ClientがServerにLogin するときUser名とPasswordが必要です。そのUserがOPC UA Serverにアクセスできるかの権限を確認しましょう。Ctrlx Web Serverの左下にあるSettingsをクリックします。

User & Permissionsを開きます。

Usersをクリックします。

現在設定されたUserを一覧できます。

Actions

User権限の確認や変更はActionの下にある鉛筆ICONをクリックします。

boschrexrothはDefaultで権限の一番高いUserで、いまState=EnabledはつまりそのUserが使用できる状態です。

Oveall permissions

該当するUserの権限を一覧するにはOverall permissionsのTabを開きましょう。

Full accessのCheckboxが入れてるのでboschrexrothはすべての操作が許可されるのイメージです。

Indivdual permisions

Indivdual permisionsでUserに個別の権限を設定することも可能です。

例えば、rexrootのUser 権限ではOPC UA Serverのアクセスが許可されてないので、OPC UA Server accessをCheck入れてください。

Certificaion

OPC UAのServer Client間のセキュリティ通信を成り立たせるには、証明証は必須です。証明証を操作するにはまたSettingsをクリックします。

Certificates & Keysを開きます。

OPC UA Server AppsがインストールされたらCertificatesのところにOPC UA Serverの項目が表示されます

中にはCtrlx 本体のServerと信頼・拒否された証明証を一覧できます。

Ctrlx Project

前回のctrlX プロジェクトをそのまま利用します。

ctrlX#REST APIをPythonとM5Stackを連携してみよう
今回の記事ではctrlX CORE または ctrlX COREvirtual の REST API を使用して ctrlX Data L...

Server Configuration

Ctrlx のOPC UA Server設定を行います。Overview>Serverをクリックします。

Status

Status画面が表示され、現在CtrlXのOPC UA Serverの状態を確認できます。

Endpoint URL:Ctrlx OPC UA ServerのURLになります。

Active Sessions:現在有効したSession数

Status:現在のOPC UA Server状態

Details

下の矢印をクリックするとより詳しいのServer情報を確認できます。

Actions

Actionsの下にある鉛筆ICONをタップすればOPC UA Serverの構成を変更できます。

Setup Server画面が表示されます。

Endpoint

Endpoint Tabではサーバーの接続やセキュリティ設定を行います。

Port

CtrlX OPC UA ServerのPort番号になります。

Security Policies Allow

NoがDefaultですが、今回はYesで設定してみます。つまり非推奨するセキュリティ設定の使用が可能かどうかを設定します。

Security Configuration

各Policyに接続可能なセキュリティ方法の設定です。

ActionにActivatedのメッセージが表示されたら有効の意味で、もう一度クリックすると無効に変わります。

User Token configurations

User Token Policyを設定する場合です。同じくActivatedのメッセージが表示されたら有効の意味で、もう一度クリックすると無効に変わります。

Session 

Sessionの最大維持時間やSessionの関連設定できる項目がのっています。

すべて設定が終わったらSaveボタンで設定を保存します。

Restart your runtime

設定を有効にするために、Runtimeを再起動する必要があり、Settingsをクリックします。

Shutdownを開きます。

RestartでRuntimeを再起動しましょう。

TwinCAT Side

次はTwinCAT 側でOPC UA Clientを準備します。

Add OPC UA Client

次はOPC UA Clientを追加します。Devices>右クリック>Add New Itemします。

Deviceを選択し>右クリック>Add New Itemします。

OPC UA>Virtual OPC UA Deviceを選び>OKします。

Configure OPC UA Client

Endpoint URLにCtrlX OPC UA ServerのURLを入れましょう。

opc.tcp://your Ctrlx IP:your portになります。

そしてSelect Endpointをクリックします。

接続に成功したらCtlrx OPC UA Serverで接続できるEndpointが表示されます。

今回はSignAndEncrypt:Basic256Sha256:Binaryを選択します。

そのEndpointを選択した状態でUpdateします。

Add Node

次はAdd NodesでCtrlX OPC UA ServerのNodeを追加してきます。

CtrlX Serverの証明書を信頼していますか?のPopupが出てきます。Trustで進みます。

TwinCATがCtrlX OPC UA Serverと接続するときエラーが発生しました。それはTwinCAT側がCtrlX OPC UA Serverの証明書を信頼しましたが、CtrlX 側ではまだ信頼してないからです。そのエラーを解除するにはCtrlx 側からTwinCATの証明書を”信頼”する必要があります。

Ctrlx Web serverをCheckするとRejctedされた証明証がありました。Inssued for の列にBeckhoff Automationだと書いてて、うん、これは私先CtrlXに渡してた証明証です。

…のボタンをクリックし>TrustでBeckhoffの証明証を信頼します。

Beckhoffの証明証がTrustedに変わってて、それでOKです。

もう一度先ほどと同じ操作をしていきます。Done!Browse succeededのメッセージもあって、CtrlX OPC UA Serverにアクセスできました。

CtrlxのNodeを選択しEnable writeのCheckboxを入れ、Okで完了します。

Client#1の下に先程追加されたNodeが見えました!

Add PLC

PLCを追加します。PLC>右クリック>Add New Itemします。

Standard PLC Projectを選び>Addで進みます。

新しいプロジェクトが追加されました。

Create Node

Name PrefixでDefault名前を設定し、Create Plc Codeで変数やMethodを自動作成します。

GVLsのFolderにGVLが自動作成されます。

Done!Ctrlx のNode全部入っています。

Activate 

Activate ConfigurationでHardware ConfigurationをDowloadします。

OKで進みます。

ライセンスが足りない場合はYesでライセンス入力画面に進みます。

セキュリティコードを入れてOKです。

TwinCATをRun Modeに再起動します。

Login

LoginでプログラムをDownloadします。

Yesで進む。


Start

最後はStartボタンでプログラムを起動すればOKです。

Error?

OKだと思ったら、Erro ListからCtrlX OPC UA Serverと繋がりません、証明証をチェックしてくださいとのメッセージがありまして、うん?先Trustedに設定したはずですが…

もう一度CtrlX WEB Serverから証明証を確認すると、もう一枚Rejectedされた証明証がありました。Common NameではTcOpcUa Extenstion Node SelectorとTcOpcUaClientで、TcOpcUa Extenstion Node Selectorは私達がHardware ConfigurationでNode選択し、構築するときに使用するClientとその証明証で、TcOpcUaClientは実際アプリケーションでNodeアクセスするときに使用するClientとその証明証です。

…のボタンからTrustでその証明書を信頼します。

Done!

Result

TwinCAT側から確認するとbConnected=Trueであり、つまり接続成功です。

nStmState

nStmState変数も現在の接続状態を確認できます。現在値は4です。

変数の意味を確認するにはClient>Inputs>Status>StmStateを開きましょう。

4=Polling Modeで、つまりTwinCAT側のOPC UA Clientはいま正常にPolling Modeとして稼働しています。

Implementation with EXOR

次はCtrlX OPC UA ServerをEXOR社のJSmart710Mと接続テストしてみましょう。

Exor Side

Add OPC UA Connection

Configuration>Protocolsから新しいProtocolを追加します。

Drop ListからOPC UA Clientを選択しましょう。

次はConfigurationの…のボタンをクリックしCtrlx OPC UA Serverを接続設定を行います。

もしうまく接続できない場合、設定にある以下の3つOptionsを外してください。

  • Hostname validation
  • App URI validation
  • Time validation

Importer

次はCtrlx OPC UA ServerのTagをEXOR プロジェクトにImportします。

Configurtaion>Tagsを開きます。

Import Dictionaryをします。

Full BrowseでCtrlx OPC UA Serverにアクセスします。

Accept permanentlyで証明書を信頼します。

Ctrlx OPC UA ServerのNodeを選択し>Okします。

Add Tag

Tagをプロジェクトに追加しましょう。

Screen

Tagを確認するために画面にCtrlXと接続してる表示を追加します。

Ctrlx Side

Ctrlx 側からも証明書をTrustすること忘れずに。

Result

Done!

Footer_Basic

Please Support some devices for my blog

Amazon Gift List

Find ME

Twitter:@3threes2
Email:soup01threes*gmail.com (* to @)
YoutubeChannel:https://www.youtube.com/channel/UCQ3CHGAIXZAbeOC_9mjQiWQ

シェアする

  • このエントリーをはてなブックマークに追加

フォローする