三菱#RD81OPC96を使ってみよう

この記事では三菱IQ-RのRD81OPC96モジュールを使用し、OPC UA Serverを立ち上げ、UaExpertとBeckhoff TwinCAT3 TF6100から接続テストを行います。

記事の中ではRD81OPC96のすべての機能をほぼCoverしてます。

さ、はじめよう!

RD81OPC96

IQ-RのRD81OPC96を使用することによって、OPC UA Serverを立ち上げることができ、他社のClientからこのモジュール経由でIQ-R CPUのレジスタデータにアクセスできます。

OPC UA Server Functions

Server機能では設定ツールで設定したアドレス空間に登録されているタグ(自局のCPUモジュールのデバイスやネットワーク上のCPUモジュール)や構造体ラベルにOPC UAクライアントからアクセスする機能です。

Timing to read data in an OPC UA client

OPC UAクライアントがアドレス空間内のタグ値の読み出しを要求した場合、要求タイミングから通信時間とOPC UA処理時間が経過した時点のタグ値を読み出します。

TagAはOPC UA Clientが送信したReadリクエストです。

TagBはOPC UA Clientに通知します。

Timing to write data from an OPC UA client (Write)

OPC UAクライアントがアドレス空間にタグ値の書き込みを要求した場合、要求タイミングから通信時間とOPC UA処理時間が経過した時点でタグ値が書き込まれます。

Data Types

RD81OPC96が対応できるData Typesになります。

Supprt String

こちらはRD81OPC96が対応できる文字列です。

Tool Installation

三菱電機からOPC UA Server unit Setting ToolsのDVDを入れ、インストールFileを起動しましょう。

簡単な個人情報やCD-KEYを入力し、次へ進みます。

ツールのインストールPathを設定し、次へ進みます。

インストールを開始します。

しばらくまちます…

Firewallに例外リストを登録します。

次はShort-Cutを作成します。

Yesで進みます。

Done!

Implementation1-Write Single Tag

Add Module Configuration

Module Configurationで今回使用するモジュールRD81OPC96を追加しましょう。

Tools

次はMxOpcUaModuleConfiguratorRソフトを起動します。

Done!ツールが起動しました。

Network Settings

ModuleとPCをLANケーブルで接続し、Tool>Network SettingをクリックしモジュールのIPアドレスなどを設定します。

モジュールのIPアドレスとHost 名を設定しましょう。

OPC UA Server Setting

OPC UA Server SettingをクリックしRD81OPC96モジュールのOPC UA server設定を行います。

Port番号とSecurity Policy・モードをアプリケーションに合わせて設定しましょう。

Security Setting

最後はSecurity Settingを開いてセキュリティ関連を設定しましょう。

User NameとPasswordのリクエストが必要かなどのセキュリティ設定をアプリケーション合わせて設定しましょう。

Add New Target Device

OPC UAはAddress SpaceでTagやGroupを管理しますので、Address Space>New Target Deviceで新しいAddress Spaceを追加します。

Address Spaceの設定画面が表示されます。

Address SpaceをMyDev000に設定し、EnableのCheckboxを入れてOkで設定を完了します。

Done!新しいAddress Spaceを作成しました。

Add New Data Tag

先程追加したAddress SpaceにTagを追加するため、Address Space>右クリック>New Data Tagをクリックします。

Tagの設定画面が表示されます。

Device Type

Device TypeはIQ-R CPU内部のDやMなどのデバイス種類に該当します。

Browseのボタンをクリックし、RD81OPC96モジュールが対応できるデバイスの一覧が可能です。

PLC Device No(I/O Address)

こちらはIQ-R CPUのデバイス番号を指定できます。今回のExampleではIQ-RのM0と紐つけます。

Finally

Done!初めてTagを追加しました。

Target Setting

プロジェクトをRD81OPC96にDownloadするため、Target Settingを開いて通信テストを行いましょう。

こちらは通信設定の設定画面になります。

RD81OPC96のDefault IPアドレスは192.168.3.3で、UsernameはRD81OPC96、PasswordはMITSUBISHIです。

Connection TestボタンをクリックしRD81OPC96と通信テストを行います。

Done!

Write to OPC UA Server Module

Online>Write to OPC UA Server ModuleでConfigurationをRD81OPC96にDownloadしましょう。

Yesで進みます。

しばらく待ちます…

Done!

YesでOPC UAモジュールRD81OPC96をアップデートします。

Result

UaExpertを起動し、下記のURLを入力し、RD81OPC96のOPC UA Serverと接続しましょう。

opc.tcp//yourIP:4840

今回のExampleでBasic256Sha256-Sign & Encryptを使用します。

OPC UA Serverが追加され、ConnectボタンでRD81OPC96と接続しましょう。

RD81OPC96の証明書をTrustします。

ですが、UaExpertから”BadSecurityChecksFailed”のエラーが発生しました。

RD81OPC96は手動で証明書を管理する必要があり、Online>Manage Application Certificateをクリックします。

UaExpertのCertificateは現在RD81OPC96の拒否リストに入ってます。

UaExpertの証明書を一旦Downloadします。

UaExpertの証明書を削除します。

Yesで進みます。

今度はTrust ListのところでUploadボタンをクリックし、先程Downloadした証明書をRD81OPC96に転送します。

Yesで進みます。

Done!

UaExpertの証明書はいまTrust Listに格納されています。

今度はUaExpertのLogin設定を変更するため、Propertiesをクリックします。

UsernameとPasswordを入力しましょう。

Done!RD81OPC96と接続できました。

Address Spaceに先程追加したMyDev000があり、中にTag000がありました。

Tag000をUaExpertにDropしましょう。

GXWORKS3かM0をTrueにします。UaExpertからも同じ値を確認できました。

Implementation2-Digital Specification

今回は三菱のMデバイスを複数にまとめてOPC UA Node化する設定を紹介します。例えば三菱のデバイスをK4M0、K4B0などの形でまとめて取得できます。

Configure Tag

Address Space MyDev000を右クリック>New Data Tagをクリックします。

Digit Specificationという選択Optionがあります。

Drop-Listから1-8、そしてNoneを選択できます。NoneはMなどのデバイスをBit単位として扱います。

今回の記事ではDigit Specifationを4に設定し、Tag001はK4MXを扱うことにし、Data TypeをINTにします。

PLC Device No(I/O Address)を100にします。つまりTag001はK4M100として扱われます。

Access RightsのDrop-Listから該当するOPC Nodeの読み書き権限を設定できます。

Tag001をReadに設定します。つまりTag001は読み専用のTagになります。

Done!

Result

UaExpertから先程追加したMyMTag1にアクセスできました。

GXWORKS3からK4M100を1234にします。UaExpertからも同じ値を確認できました。

ですが、UaExpertからMyMTag1の現在値を変更しようとしたとき、BadNotWriteableのエラーFeedbackが帰ってきました。

それは先程MyMTag1をReadのみに設定したからです。

Implementation3-Group Configuration

次はAddress Space MyDev000の中にGroupを定義します。Groupを作ることにより、複数のNodeを1つの”Folder”の中にまとめることができます。

Configure Group

Address Space MyDev000を選び>右クリック>New Groupをクリックします。

Group名を入力します。

Done!新しいGroupが追加されました。

今回はDレジスタにアクセスしますが、Bit Specificationを指定することにより、DなどのDataレジスタのある特定のBitにアクセスできます。

下記の設定ではD10.AをアクセスするOPC UA Nodeになります。

もう1つのD50で実数にアクセスするTag000を設定しましょう。

Done!

Result

UaExpertから先程定義したD10_AとD50_r32のNodesを検索できました。

GXWORKS3からD10.AとD50の現在値を変更すると、UaExpertからも同じ値を確認できました。

Implementation4-Configure Structure Type

今度はプロジェクト内に構造体を定義し、Address Space MyDev000の中に構造体の変数を作成します。

Configure Structure Type

構造体を定義するため、Structure Type Declarationsをクリックします。

構造体の作成画面に変わります。

Name Fieldで構造体の名前を入力します。

灰色エリアを右クリック>Add Variableで構造体のElementを追加します。

Add Variable画面が表示されます。

アプリケーションに合わせて構造体を作りましょう。

Done!構造体を作成しました。

Add New Structure Variable

次はAddress Space MyDev000の中にあるGroupData>右クリック>New Structure Type Declarationsで新しい構造体変数を宣言しましょう。

構造体の変数宣言画面が表示されました。

Label Nameで構造体変数名を設定し、Data TypeのListから先程宣言した構造体を選択しましょう。

次は構造体にある各部品の絶対アドレスを設定します。

…ボタンでアドレスを設定します。

こちらはAddress Setting画面になります。

下図ではD200を設定します。

Done!VAR00 とVAR01はIQ-R CPUのD200.0とD200.1に該当します。

最後はAutomatic FillingのCheckboxを入れれば、VAR2がD202を入力すれば、ツールが自動的にVAR03とVAR04もD203・D205に設定されます。

最後は読み書きなどの権限を設定すれば完了です。

Done!

Result

UaExpertから先程宣言したDUTVAR_D200 Nodeが検索できました!

D200からのレジスタ値を変更するとUaExpertにも同じように反映されます。

Implementation5-Polling Method/Convert Function

Add Polling Method

Polling MethodはNodeの更新周期や方法を定義でき、RD81OPC86は最低限200msを設定できます。

新しいPolling周期を定義するため、Polling Method Definitions>New Polling Method Definitionsをクリックします。

Polling Methodの定義画面が表示されます。

Rateでは更新周期を設定でき、今回は200msにします。

Done!新しいPolling Methodが追加されました。

Add Conversion Definitions

Conversion Definitionsを使用することによりOPC UA Client側は特別なプログラムなしでLinearなどの方法で、現在値を変換することができます。

Conversion Definitionsの設定画面が表示されます。

Conversion Typeはデータ変換式を設定でき、今回はLinearを使用しますが、詳しくはManualを参考にしてください。

次はEngineering UnitとInstrument Rangeを設定する必要があります。

Instrument RangeはCPU内部の現在値で、Engineering UnitはInstrument Rangeから変換され、実際OPC UA Serverに公開されるノードになります。なので、CPU内のデバイスの4-20から0-10000に変更できます。

Done!

Add New Tag

最後は新しいData Tagを宣言します。

Polling MethodはDefault 1000msです。

Drop-Listから先程定義したPollMethod_200msを設定しましょう。

Done!

次はConversion Definitionsを設定するため、Details Tabを開きます。

Use ConversionのCheckboxを入れてください。

ConversionはDefaultでNot Assignedですが、Drop-Listで先程定義したConversion000を設定しましょう。

Done!

Result

UaExpertから先程定義したNodeを検索できました。

IQ-RのCPU D250を13にすれば、実際ConvTagの現在値は5625くらいのLinearになります。

そしてD250を20に変更すると、ConvTagは10000になりました。

Implementation6‐Import From Global Label

今回はGXWORKS3のプロジェクトにあるGlobal LabelをImportする手順を紹介します。

Add Structured Data Type

RD81OPC96はどこまで複雑な構造体をImportできるかを検証するため、GXWORKS3のプロジェクトにデータ・タイプを宣言します。

Add Global Label

先程定義した構造体を使って変数を宣言します。

そして複数のGVLにも様々な変数も宣言します。

最後はAccess from External DeviceのCheckboxを入れてください。

Import Global Label

今度はGXWORKS3のGlobel LabelをRD81OPC96にImportするため、Address Spaceを右クリック>Import Global Labelをクリックします。

Import Global Labelの設定画面が表示されます。

GXWORKS3を設定するため、赤枠の…ボタンをクリックします。

Address Spaceの設定画面が表示されます。

Use the Global label/common device commentのCheckboxを入れてください。

赤枠の…ボタンをクリックしソースのGXWORKS3プロジェクトを設定します。

Done!最後はOkボタンをクリックし設定を完了します。

Okで進みます。

しばらくまちます…

Done!GXWORKS3プロジェクトにあるGlobal Variables Listが検索できました。

Dataの選択画面が表示されます。

アプリケーションに合わせて必要なデータを設定しましょう。

Done!Global LabelがImportされました。

もしGlobal Variables Listの中に構造体変数があれば、MX OPC UA Module Configuratorにも自動的に構造体を追加します。

それでOkです。

Result

UaExpertを使ってRD81OPC96にアクセスし、MyDev000に先程ImportしたGlobal Labelを検索できました。

各Nodeの現在値を確認するためUaExpertにNodeを追加しましょう。

下図のように、GXWORKS3からGlobal Label変数の現在値を変更するとUaExpertにも同じく反映されました。

Implementation7‐Communicate with other Station

Implementation7ではCC-Linked IE Fieldのネットワーク経由で他のStationのデータを取得し、OPC UA Node化させます。

Communication Setting

プロジェクトに新しいAddress Spaceを作成し、Communication Settingをクリックします。

DefaultではOwn Stationとして設定され、つまり自分自身のデバイスにアクセスすることになります。

Drop-ListからOther Stationを設定します。

Module TypeのDrop-Listから他のStationのアクセス方法を設定しましょう。

今回はCC-Link IE Field Moduleにします。

アクセスするStation No とNetwork Noを設定し、Nextで進みます。

CPU Seriesなどを設定し、Endで設定を完了しましょう。

最後はAddress Space名を変更すれば終わりです。

Add Data Tag

先程追加したCC-Link IE Field経由でアクセスStationのAddress Spaceを選び>右クリックでNew Data Tagを追加します。

今回はM0にアクセスするようにします。

Result

UaExpertを使ってRD81OPC96にアクセスし、CCLINKFIELD_Local1というAddress Sourceがあります。

Done!下図では少しわかりづらいですが、CC-Link IE FieldのLocal Station1にあるM0をTrueすると、CCLINKFIELD_Local1にあるTag000も同じく反映されました。

Implementation8‐PLC Program

Implementation8ではPLCプログラムでRD82OPC96の状態確認やリセットの操作を行います。

M+Global

RD81OPC96モジュールが追加されたあとにGlobal Label M+Globalの中にOPC96_1という構造体変数があります。

MAIN 

M0:=SM413;

ModuleReady:=OPC96_1.bSts_ModuleReady
AND OPC96_1.bSts_EthPortSts
AND OPC96_1.bSts_ConnectionSts
AND NOT OPC96_1.bSts_ConnectionSts
AND NOT OPC96_1.bSts_ModuleContinueErr
AND NOT OPC96_1.bSts_ModuleContinueErr
;

LEDCardRdy:=OPC96_1.uSts_LedStsCardRdy_D =1;
LEDError:=OPC96_1.uSts_LedStsErr_D=1;
LEDOpr:=OPC96_1.uSts_LedStsOpr_D=1;
LEDRun:=OPC96_1.uSts_LedStsRun_D=1;

TON1(in:=Reset,pt:=T#1s);
IF TON1.Q THEN
Reset:=FALSE;
END_IF;
OPC96_1.bReq_ErrClearReq:=Reset;

Result

Done!現在モジュールRD81OPC96の状態を確認できました!

RD81OPC96がエラー発生した場合にもリセットできるようになりました。

Implementation9‐Access From TwinCAT3

最後はUaExpertではなく、Beckhoff TwinCATからRD81OPC96に接続テストも行います。

Install Packages

Beckhoff TwinCAT3でOPC UA Clientを使用するには下記のPackageをインストールしてください。

https://www.beckhoff.com/ja-jp/products/automation/twincat/tfxxxx-twincat-3-functions/tf6xxx-connectivity/tf6100.html?

Add Devices

Devices>Add New Itemで新しいDevicesを追加します。

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

Add OPC UA Client

Device>Add New Itemで新しいOPC UA Clientを追加します。

OPC UA Client(Module)を追加しましょう。

SelectEndpoint

RD81OPC96の接続設定をするため、先程追加したClientをクリックします。

Select Endpointをクリックします。

Endpoint Discovery画面が表示されます。

Discovery UrlでRD81OPC96のOPC UA Server Endpointを入力しましょう。

RD81OPC96と接続するEndpointsを選びましょう。

Done!

Identity Type

UserとPasswordを使用しRD81OPC96を接続します。

UsernameはRD81OPC96で、PasswordはMITSUBISHIです。

Add Nodes

Add NodesをクリックしRD81OPC96 OPC UA Serverをアクセスします。

TrustをクリックしRD81OPC96の証明書を信頼します。

ですが、Server側がBadSecurityChecksFailedのエラーが帰ってきました。

Configure the Certificate

MX OPC UA Module Configurator-Rを起動し、Online>Manage Application Certificateを開きます。

Beckhoff TwinCAT3 Runtimeの証明書がDenied Certificate Listに入っています。

Implementation1と同じ操作でBeckhoff TwinCAT3の証明書をTrust Listに移動しましょう。

Add Nodes Again

Done!今回はTwinCAT3がRD81OPC96のNodeにアクセスできました。

アプリケーションに合わせてアクセスするNodeを選び>Okで進みましょう。

Done!

Create PLC Code

Create Plc CodeボタンをクリックすればTF6100が自動的にすべての変数を生成してくれます。

Done!

Activate Configuration

最後はActivate ConfigurationでプロジェクトをRuntimeにDownloadしましょう。

ライセンスが足りない場合はTrialライセンスを入力しましょう。

Magicのコードさえ入力すれば7日使えます。そして7日後Runtimeは1回Stopになり、もう1回Trialライセンスを有効しましょう。

TwinCATをRun Modeに切り替えます。

Login

結果を監視するためLoginします。

Yesで進みます。

Start

StartボタンでRuntimeを起動します。

Be careful!

注意するのは”Add Node”機能とRuntimeでOPC UA Clientを使用するときは、OPC UA の証明証は別々なので、もう1回証明証を信頼Listに移動しましょう。

Result

Done!TwinCAT3はRD81OPC96のOPC UA Server Nodeをアクセスできました。

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

シェアする

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

フォローする