DMやMRが1個or連番の場合はできるのですが、
D100,D200,D300の値を同時に取得する方法をご教示いただきたいです。
下のコードで言う、
comandD200、comandM100 等を同時取得したいです。
どうぞよろしくお願い致します。
参考にさせていただいたサイトです。
PLCへの指示内容も記載があります。
https://plc-memo.com/maketool5/
PLCはキーエンスのKV7500です。
python
1import logging 2import socket 3 4logging.basicConfig(level=logging.DEBUG, format='%(threadName)s: %(message)s') 5host_ip = '192.168.0.10' # PLCのIPアドレス 6host_port = 8501 7 8logging.debug('start') 9client = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 10# socket.AF_INETでip4を使うことを指定。socket.SOCK_STREAMでTCPを使うことを指定。 11 12try: 13 #クライアント接続 14 client.connect((host_ip ,host_port)) # サーバーに接続(kv-7500にTCP接続/上位リンク通信) 15except: 16 print("PLC接続NG") 17 18comandD100 = "RD DM100.U\r" 19#comandD200 = "RDS DM200.U 200\r" 20#comandM100 = "RD MR200.S 3\r" 21 22 23ascii_comandd100 = client.send(comandD100.encode("ascii")) 24#ascii_comanm100 = client.send(comandM100.encode("ascii")) 25#ascii_comand200 = client.send(comandD200.encode("ascii")) 26print("send : " + str(ascii_comandd100)) 27 28 29response = client.recv(32) #受信用バイト配列を定義しておく(responseのバイト数以上を設定しておく) 30print(response) 31response = response.decode("UTF-8") # PLCからの返答がbyteデータなのでUTF-8にデコード 32 33client.close() 34 35print("Received :" ,response) 36logging.debug('end')
y_waiwaiさんも指摘されていますが、まずは「D100,D200,D300の値を同時に取得するコマンド」を提示ください。あるいはマニュアルの読み方が分からない(教えてほしい)ということでしょうか?
回答1件
あなたの回答
tips
プレビュー