Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

xArmをpythonのsocket経由で操作する

実際のところ

import socket

# 接続先の情報
IP_ADDRESS = "192.168.1.168"
PORT = 502

# 送信するModbusコマンド
COMMAND = bytes([0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x10])

def send_modbus_command(ip_address, port, command):
    # ソケットオブジェクトの作成
    with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
        # タイムアウトの設定 (オプション)
        s.settimeout(10)
        
        # サーバに接続
        s.connect((ip_address, port))
        
        # コマンドの送信
        s.sendall(command)
        
        # 応答の受信
        response = s.recv(1024)
        
        # bytes型の配列として表示
        print("Received (bytes):", response)
        
        # 各バイトを個別にパースして表示
        parsed_response = ",".join(["0x{:02x}".format(b) for b in response])
        print("Received (parsed):", parsed_response)

if __name__ == "__main__":
    send_modbus_command(IP_ADDRESS, PORT, COMMAND)
Received (bytes): b'\x00\x01\x00\x02\x00\x02\x10\x00'
Received (parsed): 0x00,0x01,0x00,0x02,0x00,0x02,0x10,0x00