完成了所有功能的测试,基本无问题,不全了注释,完善了初始化功能
This commit is contained in:
parent
c88015ff78
commit
4b832b3ed1
@ -66,6 +66,10 @@ def initialization():
|
||||
# 关闭缩减模式
|
||||
md.r_reduced_mode(0)
|
||||
|
||||
# 打开软限位
|
||||
clibs.logger.info("打开软限位开关...")
|
||||
hr.set_soft_limit_params(enable=True)
|
||||
|
||||
# 关闭安全区域
|
||||
clibs.logger.info("正在关闭所有的安全区,并关闭总使能开关...")
|
||||
hr.set_safety_area_overall(False)
|
||||
@ -73,9 +77,11 @@ def initialization():
|
||||
for i in range(10):
|
||||
hr.set_safety_area_enable(i, False)
|
||||
|
||||
# 打开外部通信
|
||||
# 打开外部通信,并设置控制器时间同步
|
||||
clibs.logger.info("配置并打开外部通信,默认服务器,8080端口,后缀为 \"\\r\"...")
|
||||
hr.set_socket_params(True, "8080", "\r", 1)
|
||||
ec = openapi.ExternalCommunication()
|
||||
ec.modify_system_time(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time())))
|
||||
|
||||
# 关闭拖动
|
||||
clibs.logger.info("关闭拖动模式...")
|
||||
|
@ -1799,10 +1799,14 @@ class ExternalCommunication(object):
|
||||
self.__c.send(order.encode())
|
||||
sleep(clibs.interval)
|
||||
|
||||
def r_string(self):
|
||||
def r_string(self, directive):
|
||||
result, char = "", ""
|
||||
while char != self.suffix:
|
||||
try:
|
||||
char = self.__c.recv(1).decode(encoding="unicode_escape")
|
||||
except TimeoutError:
|
||||
clibs.logger.error(f"获取请求指令 {directive} 的返回数据超时,需确认指令发送格式以及内容正确!")
|
||||
exit(101)
|
||||
result = "".join([result, char])
|
||||
sleep(clibs.interval)
|
||||
return result
|
||||
@ -1847,10 +1851,10 @@ class ExternalCommunication(object):
|
||||
def load_program(self, program_name): # OK
|
||||
return self.__exec_cmd(f"load_prog:{program_name}", "加载工程", self.exec_desc)
|
||||
|
||||
def estop_reset(self):
|
||||
def estop_reset(self): # OK | 复原外部 IO 急停和安全门急停,前提是硬件已复原
|
||||
return self.__exec_cmd("estop_reset", "急停复位", self.exec_desc)
|
||||
|
||||
def estopreset_and_clearalarm(self):
|
||||
def estopreset_and_clearalarm(self): # OK | 外部 IO/安全门急停/安全碰撞告警都可以清除,前提是硬件已复原
|
||||
return self.__exec_cmd("estopreset_and_clearalarm", "急停复位并清除报警", self.exec_desc)
|
||||
|
||||
def motoron_pp2main_start(self): # OK
|
||||
@ -1862,7 +1866,7 @@ class ExternalCommunication(object):
|
||||
def pause_motoroff(self): # OK
|
||||
return self.__exec_cmd("pause_motoroff", "暂停程序并下电", self.exec_desc)
|
||||
|
||||
def set_program_speed(self, speed: int): # OK
|
||||
def set_program_speed(self, speed: int): # OK | 1-100
|
||||
return self.__exec_cmd(f"set_program_speed:{speed}", "设置程序运行速率(滑块)", self.exec_desc)
|
||||
|
||||
def set_soft_estop(self, enable: str): # OK
|
||||
@ -1871,10 +1875,10 @@ class ExternalCommunication(object):
|
||||
def switch_auto_motoron(self): # OK
|
||||
return self.__exec_cmd("switch_auto_motoron", "切换自动模式并上电", self.exec_desc)
|
||||
|
||||
def open_safe_region(self, number: int): # OK
|
||||
def open_safe_region(self, number: int): # OK | 1-10
|
||||
return self.__exec_cmd(f"open_safe_region:{number}", f"打开第 {number} 个安全区域(1-10,信号控制开关需打开,不限操作模式)", self.exec_desc)
|
||||
|
||||
def close_safe_region(self, number: int): # OK
|
||||
def close_safe_region(self, number: int): # OK | 1-10
|
||||
return self.__exec_cmd(f"close_safe_region:{number}", f"关闭第 {number} 个安全区域(1-10,信号控制开关需打开,不限操作模式)", self.exec_desc)
|
||||
|
||||
def open_reduced_mode(self): # OK
|
||||
@ -1883,11 +1887,11 @@ class ExternalCommunication(object):
|
||||
def close_reduced_mode(self): # OK
|
||||
return self.__exec_cmd("close_reduced_mode", "关闭缩减模式(不限操作模式)", self.exec_desc)
|
||||
|
||||
def setdo_value(self, do_name, do_value):
|
||||
def setdo_value(self, do_name: str, do_value: str): # NG | do_value 为 true/false
|
||||
return self.__exec_cmd(f"setdo:{do_name},{do_value}", f"设置 {do_name} 的值为 {do_value}", self.exec_desc)
|
||||
|
||||
def modify_system_time(self, robot_time):
|
||||
return self.__exec_cmd(f"set_robot_time:{robot_time}", f"修改控制器和示教器的时间为 {robot_time}", self.exec_desc)
|
||||
def modify_system_time(self, robot_time): # OK
|
||||
return self.__exec_cmd(f"set_robot_time:{robot_time}", f"修改控制器和示教器的时间为 {robot_time} 的", self.exec_desc)
|
||||
|
||||
# --------------------------------------------------------------------------------------------------
|
||||
@property
|
||||
@ -1899,7 +1903,7 @@ class ExternalCommunication(object):
|
||||
return self.__exec_cmd("robot_running_state", "获取程序运行状态", " :--: 返回 true 表示正在运行,false 未运行")
|
||||
|
||||
@property
|
||||
def estop_state(self):
|
||||
def estop_state(self): # OK | 只表示外部急停,安全门触发不会返回 true,只要有急停标识 E 字母,就会返回 true
|
||||
return self.__exec_cmd("estop_state", "急停状态", " :--: 返回 true 表示处于急停状态,false 非急停")
|
||||
|
||||
@property
|
||||
@ -1907,16 +1911,16 @@ class ExternalCommunication(object):
|
||||
return self.__exec_cmd("operating_mode", "获取工作模式", " :--: 返回 true 表示自动模式,false 手动模式")
|
||||
|
||||
@property
|
||||
def home_state(self): # NG
|
||||
return self.__exec_cmd("home_state", "获取 HOME 输出状态", " :--: 返回 true 表示处于 HOME 点,false 未处于 HOME 点")
|
||||
def home_state(self): # OK | 需要设置一下 "HMI 设置->快速调整"
|
||||
return self.__exec_cmd("home_state", "获取 HOME 输出状态", " :--: 返回 true 表示法兰中心处于 HOME 点,false 未处于 HOME 点")
|
||||
|
||||
@property
|
||||
def fault_state(self): # OK
|
||||
return self.__exec_cmd("fault_state", "获取 故障状态", " :--: 返回 true 表示处于故障状态,false 非故障状态")
|
||||
|
||||
@property
|
||||
def collision_state(self): # NG
|
||||
return self.__exec_cmd("collision_state", "获取碰撞检测状态", " :--: 返回 true 表示碰撞检测打开,false 未打开")
|
||||
def collision_state(self): # OK | 但是触发后,无法清除?
|
||||
return self.__exec_cmd("collision_state", "获取碰撞触发状态", " :--: 返回 true 表示碰撞已触发,false 未触发")
|
||||
|
||||
@property
|
||||
def task_state(self): # OK
|
||||
@ -1950,8 +1954,8 @@ class ExternalCommunication(object):
|
||||
return self.__exec_cmd("alarm_state", "获取报警状态", " :--: 返回 true 表示当前有告警,false 没有告警")
|
||||
|
||||
@property
|
||||
def collision_alarm_state(self):
|
||||
return self.__exec_cmd("collision_alarm_state", "获取碰撞检测报警状态", " :--: 返回 true 表示碰撞检测已触发,false 未触发")
|
||||
def collision_alarm_state(self): # OK
|
||||
return self.__exec_cmd("collision_alarm_state", "获取碰撞报警状态", " :--: 返回 true 表示有碰撞告警,false 没有碰撞告警")
|
||||
|
||||
@property
|
||||
def collision_open_state(self): # OK
|
||||
@ -1970,8 +1974,21 @@ class ExternalCommunication(object):
|
||||
return self.__exec_cmd("robot_error_code", "获取机器人错误码")
|
||||
|
||||
@property
|
||||
def rl_pause_state(self):
|
||||
return self.__exec_cmd("program_full", "获取 RL 的暂停状态")
|
||||
def rl_pause_state(self): # OK
|
||||
# 0 -- 初始化状态,刚开机上电时
|
||||
# 1 -- RL 运行中
|
||||
# 2 -- HMI 暂停
|
||||
# 3 -- 系统 IO 暂停
|
||||
# 4 -- 寄存器功能码暂停
|
||||
# 5 -- 外部通讯暂停
|
||||
# 6 --
|
||||
# 7 -- Pause 指令暂停
|
||||
# 8 --
|
||||
# 9 --
|
||||
# 10 -- 外部 IO 急停
|
||||
# 11 -- 安全门急停
|
||||
# 12 -- 其他因素停止,比如碰撞检测
|
||||
return self.__exec_cmd("program_full", "获取 RL 的暂停状态", " :--: 返回值含义详见功能定义")
|
||||
|
||||
@property
|
||||
def program_reset_state(self): # OK
|
||||
@ -1982,15 +1999,15 @@ class ExternalCommunication(object):
|
||||
return self.__exec_cmd("program_speed", "获取程序运行速度")
|
||||
|
||||
@property
|
||||
def robot_is_busy(self):
|
||||
return self.__exec_cmd("robot_is_busy", "获取程序忙碌状态", " :--: 返回 true 表示控制器忙碌,false 非忙碌状态")
|
||||
def robot_is_busy(self): # OK | 触发条件为 pp2main/重载工程/推送到控制器,最好测试工程大一些,比较容易触发
|
||||
return self.__exec_cmd("robot_is_busy", "获取程序忙碌状态", " :--: 返回 1 表示控制器忙碌,0 非忙碌状态")
|
||||
|
||||
@property
|
||||
def robot_is_moving(self): # OK
|
||||
return self.__exec_cmd("robot_is_moving", "获取程序运行状态", " :--: 返回 true 表示机器人正在运动,false 未运动")
|
||||
|
||||
@property
|
||||
def safe_door_state(self):
|
||||
def safe_door_state(self): # OK
|
||||
return self.__exec_cmd("safe_door_state", "获取安全门状态", " :--: 返回 true 表示安全门已触发,false 未触发")
|
||||
|
||||
@property
|
||||
@ -2027,7 +2044,7 @@ class ExternalCommunication(object):
|
||||
|
||||
def __exec_cmd(self, directive, description, more_desc=""):
|
||||
self.s_string(directive)
|
||||
result = self.r_string().strip()
|
||||
result = self.r_string(directive).strip()
|
||||
clibs.logger.info(f"执行{description}指令 {directive},返回值为 {result}{more_desc}")
|
||||
return result
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user