今回はSIMATIC NET +S7-1500でOPC DA Serverを立ち上げ、OPC ScoutやMatlab OPC Toolboxからアクセスの方法を紹介しようと思います。
S7-1500構築
まずS7-1500を追加します。今回使ってるのはCPU 1515-2 PN V2.0を使用します。
Protection & Security > Connection mechanisms > Permit access with..のChecboxを入れてください。そうすると3rd PartyからPUT/GETリクエストを許可することができます。
次はOPC Server用のTagを作成します。
Data block>Global DB>OKします。
作成したDBに右クリック>Propertiesをクリックします。
Attributes>Optimized block accessのCheckboxを外します。
そうするとDBがOffsetというコラムが出てき来ます。
OPC Server用の変数を追加します。
DBをコンパイルしたらOffsetにアドレスが出てきます。
b1=DB1.DBX0.0
b2=DB1.DBX0.1
f1=DB1.DBD2
のようになります。
PC Sytem
次はOPC Server用のPC System追加します。
PC Systems>PC general>PC station選びます。
Device viewに切り替えます。
右のCatalogに>Communications modules>PROFINET interfaces>IE generalを選択し、左側に引っ貼ります。
次はUser Applications>OPC Serverを偉い、Index 2に引っ貼ります。
OPC ServerのVersionをSW8.2..を使用してください。
いまはIE generalとOPC Serverも追加された状態になります、
IE generalはなんですか?と思う人が出てくるかもしれませんが、このIE generalってつまりあなたのパソコンからCPUと接続するNetwork interface cardのことだといっています。
ここでIPを設定します。
注意するのは実際のPCStationとIPを一致する必要があります。
S7 Connection
次はS7 Connectionの接続を設定します。OPCでしょ?なんでS7 Connectionが必要になるの?と思うかもしれませが、実際CPUとPC StationにあるOPC ServerとはS7 Connectionで通信しています。そしてOPC ServerのTagに変換するだと考えてよいでしょう。
まずNetwork viewにひりかえます。
PC StationのCP IEからCPUにひっばりますーそれで構成上で2つのDeviceが同じのNetworkになることになります。
つまり、こんな感じですね。
次は隣のConnectionというButtonをクリックします。
CPUの色が変わるとわかりますね。
次はとなりのSelectionlistからS7 Connectionを選択します。
いまOPC Serverにも色が変わりましたね。
ここでTIAが示すのはPLC_1とPCStationのOPC ServerとS7 Connection作成することができますよ!っと。
同じく、PLC_1のPortからOPC Serverにひっばり、線で繋がります。
よし、これでS7 Connectionの接続もOKです。
念の為、確認しておきましょう。ConnectionのTabをクリックします。
ここでいまProjectどんなConnectionを作成したが一覧できます。
うん、S7 Connectionはちゃんと作りましたね。
OPC Tag Configuration
S7 Connectionの次は、OPC のTagを設定します。
Network viewに戻り、OPC Serverを選択します。
下にあるProperties>S7>OPC symbols>Configured>Configuring。
Popupが出ます。はい、OKです。
この画面ではPLC Project内どんなTagがOPCからアクセスできるのか、書き込むだけか、LowerとUpper Limitがあるのか、などの設定できます。
左のSymbol selectorでずっとBrowseしたら先DBで作ったTagが見えますね!
それでS7 Connection成立したら見えます!
アプリケーションに合わせて設定してください。
PC Station Configurator
これからPC Station側の設定行います。
SIMATIC NET インストール
SIMATIC NET Trial DVD V15 SP1は今回使ってバージョンです。
以下のリンクってダウンロードして、インストールしてください。
私はISOのほうが好みです。EXEだとまた解凍しないとだめですから少しめんとくさい。
インストール完了だとStation Configurator のアプリケーションが出てきます。
Set PG PC Interface
SIMATIC NETインストールされたPCStationからSet PG/PC Interfaceを起動してください。
Control panelから起動できます。
PCStataionのIE GeneralとCPUを接続するNetwork cardを設定してください。
自分は同じパソコンでなおかつ実機がありませんので、Siemens PLCSIM Virtual..にします。
設定
Station Configurationを設定するときはよくある間違いは、Station名とIndexですね。
Station名は必ずいまプロジェクト内赤矢印示してる名前と一致する必要があります。
そしてIndexはDevice overviewの赤矢印示してるIndexと一致してください。例えばIE general_1はIndex1なら、Station configuration のIndex1にも同じくIE general_1し、Index2はOPC Serverなら、Station configuration にもOPC Serverするって感じです。
もしIndex合わなかったらダウンロードするとエラーが出てます。
IE General 追加
Add..をクリックします。
Add ComponentのPopupが出てきます。
TypeはIE Generalを選んでください。
Index=1にし、Parameter assigはPG/PC Interface設定したのNetwork Cardに合わせてください。
まぁ、新しいComponent入れるとPC Stationが再構成され一時的に止まりますよ、です。
Component Propertiesでいま設定したInterfaceのIP、Mac Addressなどが見えます。
OKを。
これでIE Generalが追加されした。
OPC Server追加
次はOPC ServerをInsertします。
Index2を選んだ状態Addボタンを。
TypeをOPC Serverを選び、OK。
同じPopupですね。
OK!
よし、これで完成です。
実装
これは実際PLCとPC Stationににダウンロードします。
PLC
自分がPLCSimAdvを使っていますので、まずProjectの方をクリックし、Properties。
Protection>Support simulation during block compilation.のCheckboxをいれてください。
そうしないとダウンロードエラーになります。
S7-PLCSIM Advancedを起動中…
次はダウンロードですね。
ちゃんとPLCSIM ADV見えますね。
よし、PLC側これで準備OK。
PC Station
次はPLC Stationです。
Downloadする前に、もう一度確認しましょう。ProjectのPC NameとStation ConfigurationのPC Nameがあってるかどうか。
もし違うのであれば、Station Name..というボタンをクリックします。
そこで自由に変更できます!
ここで念の為、もう一度IPとInterfaceも一致してるかどうかを確認しましょう。
OKなら、PCStation選び、Download。
AddressのところにPCStationのIPを入れて、Search。
よし、みえました。Load!
しばらく待ちます…
リセットとかですね。わかりました。Load!
これで完了ですー。
ちゃんと緑のCheckmarkが入って、Runしてますね。
Test
これからOPC Serverをテストします。2つのToolのやり方も紹介します。1つはOPC Scoutでもう1つはMatlabのOPC Toolboxです。
OPC Scout
OPC ScoutはSIMATIC NET インストールしたときに一緒に勝手に入れたものです。
OPC Scout v10
Siemens Automation>OPC Scout V10を起動すればよいです。
以下は実際OPC Scoutの居場所ですー
起動したらしばらく待ちます…
Local COM serverをダブルクリックします。
しばらく待ちますと、Drop-listが出てきます。
OPC.SimaticNETを選びます。
ずっとSYM>S71500ET200MP station_1>PLC_1>dbOPC_Dataを開きますと、作成されたTagが見えます。
次はMonitorしたいと思います。例えばb1を選び、下のDA view_1のIDのところにひっばります。
そうするとMonitorされるTagが一つが追加されます。
他のTagにも同じ作業しましょう。
次はDBをちょっと変更してみましょう。
Monitor ONのボタンをクリックします。
ValueのコラムのところにいまDBの値が見えます!
Matlab OPC ToolBox
次はMatlab OPC ToolBoxでOPC Serverをアクセスしてみますね。
まず以下は参考ドキュメントです:
Matlab OPC ToolBox
https://jp.mathworks.com/help/opc/server-connection-and-browsing.html?s_tid=CRUX_topnav
https://jp.mathworks.com/help/opc/ug/dagroup.read.html
OPC Serverと接続するにはまずSeverNameとHostNameの指定が必要ですね。
先のOPC ScoutからServer informationのところ見えます。
接続
d=opcda(‘localhost’,’OPC.SimaticNET’) d = Summary of OPC Data Access Client Object: localhost/OPC.SimaticNET Server Parameters Host : localhost ServerID : OPC.SimaticNET Status : disconnected Timeout : 10 seconds Object Parameters Group : 0-by-1 dagroup object Event Log : 0 of 1000 events connect(d) |
NameSpace取り
ns = getnamespace(d) ns = 2×1 struct array with fields: Name FullyQualifiedID NodeType Nodes |
nsは2×1のStruct arrayが戻りましたね。ns(1)は\S7でns(2)は\SYMです。
Nodes見てみる
ns(2).Nodes(1) struct with fields: Name: ‘S71500ET200MP station_1’ FullyQualifiedID: ‘\SYM:\S71500ET200MP station_1’ NodeType: ‘branch’ Nodes: [1×1 struct] |
\SYM:\S71500ET200MP station_1のNodesになります。
ns(2).Nodes(1).Nodes(1) struct with fields: Name: ‘PLC_1’ FullyQualifiedID: ‘\SYM:\S71500ET200MP station_1\PLC_1’ NodeType: ‘branch’ Nodes: [1×1 struct] |
\SYM:\S71500ET200MP station_1\PLC_1のNodesになります。
ns(2).Nodes(1).Nodes(1).Nodes(1) struct with fields: Name: ‘dbOPC_Data’ FullyQualifiedID: ‘\SYM:\S71500ET200MP station_1\PLC_1\dbOPC_Data’ NodeType: ‘branch’ Nodes: [6×1 struct] |
ようやくDBの変数見えましたね!
ns(2).Nodes(1).Nodes(1).Nodes(1).Nodes(1) ans = struct with fields: Name: ‘b1’ FullyQualifiedID: ‘S71500ET200MP station_1.PLC_1.dbOPC_Data.b1’ NodeType: ‘leaf’ Nodes: [] |
最後はb1をアクセスしようと思います。
browsenamespace
この関数使ってUIのInterfaceを開いてNodesを見ることを探すこともできます。
ItmList = browsenamespace(d) |
Read
最後はNodesの値をリクエストしたいと思います。
valueは0ですね。
itm = additem(grp,’S71500ET200MP station_1.PLC_1.dbOPC_Data.b2′);
s=read(itm)
s =
struct with fields:
ItemID: ‘S71500ET200MP station_1.PLC_1.dbOPC_Data.b2’
Value: 0
Quality: ‘Good: Non-specific’
TimeStamp: [2021 6 7 3 33 26.2880]
Error: ”
はーい、お疲れ様です。