Communication Robot-python

De Wiki TGE CSTwiki
Aller à la navigation Aller à la recherche

Code python

Ce projet est conjoint avec le projet de vision robotique expliqué sur une autre page wiki. Les codes ci-dessous servent à communiquer entre un code python et un robot ABB. C'est utile pour transférer des positions. Du code jusqu'au Robot.

def send_to_robot(pos_str):
                                            
   host = '10.243.11.72'                     # Adresse IP du robot
   port = 1025                               # Port de communication  
   try:
        with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as client_socket:
            client_socket.settimeout(1.0)  # 1 seconde de timeout
            client_socket.connect((host, port))
            client_socket.sendall(str(pos_str).encode())         
   except socket.timeout:
        print("le robot ne repond pas")


Code à envoyer

Il est important d'envoyer le code souhaité en string.
De plus, il est important d'être en admin (sudo) pour lancer le code
pos_str = str([0,0,300])
send_to_robot(pos_str)


Code Robot Studio rapid

Le code va s'écrire dans la variable code_recu_str .
DE plus, le code va s'afficher sur le Flexpendant avec la fonction TPWrite
PROC communication()
        
        SocketCreate server_socket;
        SocketBind server_socket, "10.243.11.72", 1025;
        SocketListen server_socket;
        SocketAccept server_socket, client_socket \ClientAddress:=client_ip;
        SocketReceive client_socket \str := code_recu_str;
        SocketClose client_socket;
        SocketClose server_socket;
        TPWrite code_recu_str;




Ne pas oublier de déclarer les variables au début du code Rapid

        VAR socketdev server_socket;
        VAR socketdev client_socket;
        VAR string code_recu_str;
        VAR string client_ip;