Dockerは、PythonのOPCUAクライアントイメージをカプセル化します

仮想マシンが外部ネットワークに接続されていることを確認し、ハイパーターミナルを開いて、continuumio / anaconda3イメージをダウンロードします

docker pull continuumio/anaconda3

空のフォルダーを作成し、このフォルダーの下にDockerfileとmain.pyの2つのファイルを作成します
ここに画像の説明を挿入

Dockerfileのコンテンツを次のように編集します。

FROM continuumio/anaconda3:latest
ADD main.py /

RUN pip install paho-mqtt
RUN pip install freeopcua
RUN pip install opcua-client

CMD ["python","-u","./main.py"]

main.pyのコンテンツを次のように編集します。

from opcua import Client
from opcua import ua
import time
class SubHandler(object):
    def data_change(self, handle, node, val, attr):
        print("Python: New data change event", handle, node, val, attr)
client = Client("opc.tcp://192.168.224.157:4840/")
client.connect()
objects = client.get_objects_node()
root = client.get_root_node()
#myvar = root.get_child(["0:Objects","2:DeviceSet","3:test","3:DataBlocksGlobal","3:db1","3:tags","3:0"])
myvar = client.get_node("ns=2;i=14")
#myvar = client.get_node("ns=5;s=MotionDeviceSystem.ProcessData.System.$CONST_VEL")
#myvar = client.get_node('ns=5;s=MotionDeviceSystem.Controllers.Controller_1.ParameterSet.CurrentProjectDescription')
#myvar = client.get_node('ns=3;s="clocl0.5hz"."tags"[0]')
#var = client.get_node('ns=3;s="Tag_1"')
handler = SubHandler()
sub = client.create_subscription(500, handler)
sub.subscribe_data_change(myvar)
time.sleep(100000)
client.disconnect()

OPC UAサーバーの構成、クライアントが入力するIPとポートについては、実際の状況に応じてノードアドレスを変更してください。OPCUAサーバーに接続するためのIPアドレスとして127.0.0.1を使用しないでください。
このフォルダディレクトリで、バージョン0.1のedgeboxという名前の新しいイメージイメージをコンパイルします。命令の最後のドットは失われないことに注意してください。これは、ドック構成ファイルDockerfile docker
build -t edgebox:0.1が現在のディレクトリにあることを意味します
コンパイルが完了するのを待ち、命令を使用して表示します。新しく生成された画像の
ドッキングウィンドウの画像に
変数を購読匿名でOPC UAサーバーから、OPC UAクライアントを実行
-it edgeboxを実行するドッキングウィンドウ:0.1は、
一般的な手順を参照してください
すべて作成したコンテナを見る
コンテナLSドッキングウィンドウ-a
すべてのドッキングウィンドウのコンテナが処理見る
ドッカPSを
イメージイメージの削除
dockerrmiイメージ名またはID
すべてのdockerコンテナーを削除
sudodocker rm $(sudo docker ps -a -q)
dockerコンテナーの削除
dockerコンテナーrmコンテナー名またはID

おすすめ

転載: blog.csdn.net/weloveut/article/details/108200912