利用socket建立Python与RobotStudio的TCP通讯

一、RobotStudio 6.08作为客户端代码

MODULE Module1

    VAR socketdev socket1;
    VAR string recived_string;

    PROC main()
        SocketClose socket1;
        SocketCreate socket1;
        !IP地址填本地IP,端口号一定要与Python端一致
        SocketConnect socket1,"192.168.*.***",8080;   
        TPWrite "client and server connect successful";

        WHILE OpMode()=OP_AUTO DO
            SocketSend socket1\Str:="Hello server ";
            SocketReceive socket1\Str:=recived_string;!接受字符串
            TPWrite "Server show "+recived_string;
            SocketSend socket1\Str:=recived_string;!将接受到的字符串再发送回服务器端
        ENDWHILE

    !报错处理
    ERROR
        IF ERRNO=ERR_SOCK_TIMEOUT THEN !如果长时间不操作报错,重连
            RETRY;
        ENDIF

        IF ERRNO=ERR_SOCK_CLOSED THEN !如果意外关闭等待5s尝试重连
            SocketClose socket1;
            WaitTime 5;
            SocketCreate socket1;
            SocketConnect socket1,"192.168.*.***",8080;
        ENDIF
    ENDPROC

ENDMODULE

二、Python作为服务器的代码

from socket import *

tcpSerSock = socket(AF_INET, SOCK_STREAM)
tcpSerSock.bind('192.168.*.***',8080)//评论区说bind有问题的可以加个括号,感谢指正tcpSerSock.bind(('192.168.*.***',(8080)))
tcpSerSock.listen(5)

while True:
    print('waiting for connection...')
    tcpCliSock, addr = tcpSerSock.accept()
    print('...connnecting from:', addr)
    data_recv = tcpCliSock.recv(1024)
    print(data_recv.decode())

    while True:
        message = input('>')
        tcpCliSock.send(message.encode('utf-8'))

三、测试通讯

先启动Python代码,等待连接。

在这里插入图片描述

后启动RobotStudio的示教器自动连接。

在这里插入图片描述
python作为服务器端发送:Hello

在这里插入图片描述
RobotStudio作为客户端接受讯息:
在这里插入图片描述

注意事项

RobotStudio的Communication中选中616-1 PC interface,一定要打开

在这里插入图片描述

  • 7
    点赞
  • 58
    收藏
    觉得还不错? 一键收藏
  • 14
    评论
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值