kawasaki_robot_udp_tcp
1.0.0
يحتوي هذا المستودع على رمز مثال لتوضيح كيفية إنشاء اتصال UDP بين جهاز كمبيوتر وروبوت Kawasaki.
robot_script.as
: البرنامج النصي للغة Kawasaki robot AS لتلقي رسائل UDP.send_message.py
: برنامج Python لإرسال رسائل UDP إلى الروبوت.robot_tcp_communication.as
: البرنامج النصي للغة Kawasaki robot AS لإنشاء اتصال TCP واستقبال البيانات وإغلاق الاتصال.robot_tcp_communication.py
: برنامج Python لإرسال رسائل TCP إلى الروبوت. robot_script.as
.ROBOT_IP
و ROBOT_PORT
في send_message.py
لمطابقة تكوين الروبوت الخاص بك. قم بتشغيل البرنامج النصي لروبوت Kawasaki robot_script.as
على الروبوت.
قم بتنفيذ البرنامج النصي Python send_message.py
على جهاز الكمبيوتر الخاص بك لإرسال رسائل إلى الروبوت:
python send_message.py
سوف يتلقى الروبوت الرسالة ويطبعها على وحدة التحكم الخاصة به.
robot_tcp_communication.as
على الروبوت.connect_to_pc
: إنشاء اتصال TCP بالكمبيوتر.receive_data
: يستقبل البيانات باستمرار من جهاز الكمبيوتر ويطبعها.close_connection
: إغلاق اتصال TCP. robot_tcp_communication.as
. PROGRAM connect_to_pc()
; Configuration for connection using TCP .
; This scripts are created by Coder Shiyar
timeout_open = 60
pc_ip [ 1 ] = 192
pc_ip [ 2 ] = 168
pc_ip [ 3 ] = 0
pc_ip [ 4 ] = 2 ; PC 's IP address
pc_port = 10001
error_count = 0
connect:
; Start timer
TIMER (2) = 0
; Attempt to connect to the PC
TCP_CONNECT socket_id, pc_port, pc_ip[1], timeout_open
; Check if connection is successful
IF socket_id < 0 THEN
error_count = error_count + 1
IF error_count >= 5 THEN
PRINT "Client Communication with PC has failed"
ELSE
PRINT "TCP_CONNECT error id = ", socket_id, ", error count = ", error_count
GOTO connect
END
ELSE
PRINT "TCP_CONNECT OK id = ", socket_id, ", with time elapsed = ", TIMER (2)
END
.END
.PROGRAM receive_data()
; Loop to receive data continuously
WHILE TRUE DO
num_bytes = 10
max_length = 10
timeout_receive = 60
recv_result = 0
; Receive data from the PC
TCP_RECV recv_result, socket_id, $receive_buffer[1], num_bytes, timeout_receive, max_length
; Check if data reception is successful
IF recv_result < 0 THEN
PRINT "TCP_RECV error in RECV", recv_result
$receive_buffer[1] = "000"
ELSE
IF num_bytes > 0 THEN
; Print received data
FOR i = 1 TO num_bytes
PRINT "RecBuff[", i, "] = ", $receive_buffer[i]
; Check for specific messages
IF $receive_buffer[1] == "1" THEN
PRINT "IT IS 1"
END
IF $receive_buffer[1] == "2" THEN
PRINT "IT IS 2"
END
END
ELSE
$receive_buffer[1] = "000"
recv_result = -1
END
END
END
.END
.PROGRAM close_connection()
; Close the connection to the PC
close_result = 0
IF socket_id >= 0 THEN
TCP_CLOSE close_result, socket_id
END
; Check if the connection is closed successfully
IF close_result < 0 THEN
PRINT "TCP_CLOSE error id = ", socket_id
ELSE
PRINT "TCP_CLOSE OK id = ", socket_id
END
.END