今回はCodesysでOPCUAサーバを立ち上げてみようと思います。近年ではOPC-UAはよく耳にしましたが、実際どんなものでしょうか?

Omronのページがから説明しますと…
OPC UA(OPC Unified Architecture)は産業オートメーションなどの業界で、安全で信頼性あるデータ交換を行うために策定されたオープンな国際標準規格です。OPC Foundationが2008年に発表、その後IEC62541として国際標準化されました。
機器の種類やオペレーティングシステム(OS)、メーカの垣根を越えて、セキュリティが確保された信頼性の高いデータ交換が行えることから、Industrie4.0の標準通信として推奨*され、それを契機に世界中で一気に関心が高まりました。
また、PLCの国際標準 IEC61131-3と整合され、製造現場(FA)の情報を、上位(IT)の監視制御システム(SCADA)や生産管理システム(MES)と高い信頼性でやりとりできるため、食品・日用品の製造で用いられる包装機の標準規格PackML(ANSI/ISA-TR88)、射出成形機の上位接続標準(EUROMAP77)で採用されるなど、さまざまな業界で普及が進んでいます。
https://www.fa.omron.co.jp/product/special/sysmac/nx1/opcua.html
実装
毎回も言いましたが、Online HelpとGoogleはいつもあなたの友達です。
https://help.codesys.com/api-content/2/codesys/3.5.14.0/en/_cds_runtime_opc_ua_server/
まず、Global Variable Listで適当な変数を作ります。

そしてPLC_PRGの中にも実数の配列を作ります。

Symbol Configuration
OPCUAを設定するにはSymbol Configurationを使います。
https://help.codesys.com/webapp/_cds_obj_symbolconfiguration;product=codesys;version=3.5.10.0
Application>Add Object>Symbol Configuration

Support OPC UA featuresのCheckBox入れて、Addします。

このような画面が出てきます。

PLC_PRGに”+”ボタン押すと、先定義したr32の実数配列が見えますが、GVLの変数たちがなぜが選択できないですね。

ここでPLC_PRGに戻して、GVLを使ってる簡単なプログラムを追加します。

もう一度Symbol Configurationに戻して、Buildをクリックします。
今度はGVLが出てきました。どうやらプログラムを一回も使ってない変数に対してCodesysは無視しますよね。

GVLの”+”をクリックすると、ちゃんとみえましたね。

CheckboxにGVLとPLC_PRGを入れるとなんだWarning出てきますね。3つの変数はIECコードに参照されていませんのようなメッセージがありますね。
Removeボタンをクリックします。

なるほど、プログラムに使ってない変数があり、割付でも仕方ないですよーのWarningですね。ここでひとまず無視しCancelを。

ここでF11でコンパイルしデバイスにLogingしてダウンロードください。
Codesys側がこれだけになります。
テスト
今回OPCUAサーバをテストするにはUaExpert というソフトを使います。登録してダウンロードしてください。
Python自力でもOKですが、別のPOSTで紹介します。
https://www.unified-automation.com/downloads/opc-ua-clients.html

Project>Serversで右クリックし+Add。

Custom Discoveryで+<Double click to Add Server>のところにタブルクリックします。

自分のServerアドレスに合わせていれてください。

Serverが見つかると、Login方法なども出てきます。
Securityの認証方法などまた別のPostで紹介しますのでここでまずNoneでいきます。
Configuration Nameを決めて、OKを。

それでサーバがConnectしたら下のAddressSpaceにNodeが見えます。

先程追加したGVLも全部ここに入っていますね。

そしてCodesys上でNodeの値を変わる、UaExpertにもちゃんと数字が反映されていますね。

お疲れ様ですーあとこっちらは近いうちにコラポ書く予定がありますー丁度お盆休みですしね。
- CodesysでOPCUAのSecurity認証
- PythonでOPCUA ClientをServerにアクセス
- SiemensのSIOME(OPC Node Model編集ソフトの使い方)
- OPCUAもう少し深くみる
くらいかな?