|
@@ -4,7 +4,7 @@ using Aitex.Sorter.Common;
|
|
|
using MECF.Framework.Common.CommonData;
|
|
|
using MECF.Framework.Common.Equipment;
|
|
|
using MECF.Framework.Common.SubstrateTrackings;
|
|
|
-using MECF.Framework.RT.EquipmentLibrary.HardwareUnits.LoadPorts;
|
|
|
+using MECF.Framework.RT.EquipmentLibrary.HardwareUnits.Robot;
|
|
|
using System;
|
|
|
using System.Collections.Concurrent;
|
|
|
using System.Collections.Generic;
|
|
@@ -20,7 +20,7 @@ namespace Venus_RT.Devices.TM
|
|
|
public class SunWayRobot : ITransferRobot
|
|
|
{
|
|
|
private readonly AsyncSocket _socket;
|
|
|
- private const string EOF = "\n";
|
|
|
+ private const string EOF = "\r";
|
|
|
private RState _status;
|
|
|
private bool _IsHomed;
|
|
|
private VRStep _currentStep = VRStep.Idle;
|
|
@@ -50,51 +50,114 @@ namespace Venus_RT.Devices.TM
|
|
|
|
|
|
public Dictionary<string, string> _error2msg = new Dictionary<string, string>()
|
|
|
{
|
|
|
+ {"105" , "数据解析错误" },
|
|
|
{"221" , "手臂选择无效,检查指令中的对应参数" },
|
|
|
- {"222" , "无效的 Pan 参数"},
|
|
|
+ //{"222" , "无效的 Pan 参数"},
|
|
|
+ {"233" , "伸缩信号未使能,检查传输腔传感器信号是否正常" },
|
|
|
+ {"304" , "未识别的错误码" },
|
|
|
{"305" , "无法识别的命令,检查指令" },
|
|
|
{"309" , "不支持的指令,检查指令" },
|
|
|
- {"350" , "解析器错误,堆栈溢出,检查指令" },
|
|
|
- {"402" , "槽位参数异常,检查指令中的对应参数" },
|
|
|
- {"403" , "Slot编号错误,指令的参数中指定的 Slot 编号超过了有效范围" },
|
|
|
- {"407" , "旋转轴超过限位,检查指令中的对应参数" },
|
|
|
- {"408" , "伸展轴超过限位,检查指令中的对应参数" },
|
|
|
- {"409" , "升降轴超过限位,检查指令中的对应参数" },
|
|
|
- {"416" , "无法执行 CheckLoad 操作,检查指令中的对应参数" },
|
|
|
- {"417" , "Offset 参数参数超限,检查指令中指定的 offset 值是否在允许范围内" },
|
|
|
- {"418" , "AWC 功能检测到误差过大,检查晶圆是否过偏或检查AWC传感器标定参数" },
|
|
|
- {"420" , "副臂没有在HOME位置,请检查副臂的位置,可以使用HOME ALL使得所有关节姿态回到HOME位置" },
|
|
|
- {"451" , "取片后 AWC校验异常,机械臂取片后缩回时,检测到晶圆偏心过大,或者 AWC 校验失败" },
|
|
|
+ //{"350" , "解析器错误,堆栈溢出,检查指令" },
|
|
|
+ {"401" , "ZWAFER参数错误 ,检查ZWAFER参数" },
|
|
|
+ {"402" , "非法的slot参数,检查slot设置参数" },
|
|
|
+ {"403" , "运动指令RX参数错误,检查RX参数字段" },
|
|
|
+ {"404" , "晶圆夹取失败,检测传感器是否正常" },
|
|
|
+ {"405" , "晶圆释放失败,检测传感器是否正常" },
|
|
|
+ {"406" , "气缸压力表检测错误,检查气缸传感器" },
|
|
|
+ {"407" , "Mapping传感器伸出失败,检查气缸传感器" },
|
|
|
+ {"408" , "Mapping传感器缩回失败,检查气缸传感器" },
|
|
|
+ {"409" , "Mapping传感器位置数据不正确,检查mapping工位或传感器设置" },
|
|
|
+ {"410" , "Mapping参数值不合理,检查Mapping设置参数" },
|
|
|
+ //{"416" , "无法执行 CheckLoad 操作,检查指令中的对应参数" },
|
|
|
+ //{"417" , "Offset 参数参数超限,检查指令中指定的 offset 值是否在允许范围内" },
|
|
|
+ //{"418" , "AWC 功能检测到误差过大,检查晶圆是否过偏或检查AWC传感器标定参数" },
|
|
|
+ //{"420" , "副臂没有在HOME位置,请检查副臂的位置,可以使用HOME ALL使得所有关节姿态回到HOME位置" },
|
|
|
+ {"451" , "放片时,AWC偏差超过设定最大偏差值(PAN L) ,检测到晶圆偏心过大,或者 AWC 校验失败" },
|
|
|
+ {"452" , "PICK时,AWC偏差超过设定最大偏差值(PAN L) ,检测到晶圆偏心过大,或者 AWC 校验失败" },
|
|
|
+ {"453" , "AWC采集数据个数异常,检查AWC传感器配置" },
|
|
|
+ {"455" , "放片时,AWC偏差超过设定最大偏差值(PAN R) ,检测到晶圆偏心过大,或者 AWC 校验失败" },
|
|
|
+ {"456" , "PICK时,AWC偏差超过设定最大偏差值(PAN R) ,检测到晶圆偏心过大,或者 AWC 校验失败" },
|
|
|
+ {"457" , "AWC检查到破片报警(PAN L),检查破片设置值,晶圆位置,或者 AWC 校验失败" },
|
|
|
+ {"458" , "AWC检查到破片报警(PAN R),检查破片设置值,晶圆位置,或者 AWC 校验失败" },
|
|
|
+ {"459" , "AWC未标定,检查AWC标定信息,工位示教后进行AWC标定" },
|
|
|
+ {"460" , "AWC标定失败,检查晶圆SIZE设置是否正确 ,检查AWC传感器是否正常触发 " },
|
|
|
{"550" , "Station参数超出范围,检查站点配置参数" },
|
|
|
- {"551" , "ARM 不在站点,检查当前手臂实际位置与逻辑位置" },
|
|
|
- {"560" , "机械臂处于 HALT 状态,拒绝接受新的指令" },
|
|
|
- {"561" , "当前机械臂状态机与指令不匹配,当前状态机不满足执行该指令的条件" },
|
|
|
- {"600" , "PAligner通讯异常,检查与 PA 的通讯电缆,上电情况等" },
|
|
|
- {"603" , "收到急停指令" },
|
|
|
- {"608" , "机械臂急停中" },
|
|
|
- {"610" , "手持示教器急停按钮按下" },
|
|
|
- {"692" , "检测左 PAN 上有片,与逻辑状态不匹配" },
|
|
|
- {"693" , "检测右 PAN 上有片,与逻辑状态不匹配" },
|
|
|
- {"694" , "检测左 PAN 上无片,与逻辑状态不匹配" },
|
|
|
- {"695" , "检测右 PAN 上有片,与逻辑状态不匹配" },
|
|
|
- {"700" , "当前手臂有晶圆 ,检查指令动作要求的晶圆状态,与手臂内部存储的晶圆状态是否匹配" },
|
|
|
- {"701" , "当前手臂无晶圆,检查指令动作要求的晶圆状态,与手臂内部存储的晶圆状态是否匹配"},
|
|
|
- {"711" , "站点互锁错误,检查站点的“允许机械臂进入信号”是否就绪"},
|
|
|
- {"721" , "取片失败,检查手臂晶圆状态,或者晶圆检测传感器状态"},
|
|
|
- {"722" , "放片失败,检查手臂晶圆状态,或者晶圆检测传感器状态"},
|
|
|
- {"771" , "取片时 AWC 传感器检测失败,检查 AWC 传感器状态,或者 AWC 配置相关是否正确"},
|
|
|
- {"791" , "查询 AWC 数据失败,未曾执行过 AWC 相关功能的操作"},
|
|
|
- {"792" , "AWC 传感器检测失败,检查AWC传感器状态,或者AWC配置相关是否正确"},
|
|
|
- {"799" , "放片失败,检查手臂晶圆状态,或者晶圆检测传感器状态"},
|
|
|
- {"802" , "伺服报错,伺服提示异常,目前暂时无法读取伺服错误。开机盖可以读到伺服信息。一般整机断电重启。"},
|
|
|
- {"803" , "机械臂上电失败,HOME ALL 指令,或者其他上电操作,驱动器未能正常响应上电"},
|
|
|
- {"805" , "第1个伺服收敛异常,伺服没有在规定时间内运动到位置,或者停稳。"},
|
|
|
- {"806" , "第2个伺服收敛异常,伺服没有在规定时间内运动到位置,或者停稳。"},
|
|
|
- {"807" , "第3个伺服收敛异常,伺服没有在规定时间内运动到位置,或者停稳。"},
|
|
|
- {"808" , "第4个伺服收敛异常,伺服没有在规定时间内运动到位置,或者停稳。"},
|
|
|
- {"1100" , "无法安全回 HOME 操作,检查机械臂是否在安全 HOME 半径内,常见于双臂机械臂,双臂同时伸出超过安全位"},
|
|
|
- {"1805" , "当前处于示教器模式,检查示教器档位,一般此时处于 Teach 档位"},
|
|
|
- {"13004" , "PA报错,检查 PA 运行状态,PA 扫片结果等"},
|
|
|
+ //{"551" , "ARM 不在站点,检查当前手臂实际位置与逻辑位置" },
|
|
|
+ //{"560" , "机械臂处于 HALT 状态,拒绝接受新的指令" },
|
|
|
+ //{"561" , "当前机械臂状态机与指令不匹配,当前状态机不满足执行该指令的条件" },
|
|
|
+ {"599" , "用户急停开启 ,检查用户急停 " },
|
|
|
+ {"600" , "系统未上电,发送上电指令" },
|
|
|
+ {"602" , "指令正在执行中,等待机械手运动完成" },
|
|
|
+ //{"603" , "收到急停指令" },
|
|
|
+ {"604" , "示教器控制中,通过操作示教盒退出示教盒模式 " },
|
|
|
+ {"605" , "机械手运动中停止,确认是否发送了HALT指令" },
|
|
|
+ //{"608" , "机械臂急停中" },
|
|
|
+ {"609" , "系统存在错误,检查错误码或查看Robot内部log文件" },
|
|
|
+ {"610" , "示教盒急停启动,解除示教盒急停按钮" },
|
|
|
+ {"611" , "驱动器报警,检查驱动器状态或对应IO状态" },
|
|
|
+ {"629" , "驱动器存在报警,检查驱动器报警码" },
|
|
|
+ //{"692" , "检测左 PAN 上有片,与逻辑状态不匹配" },
|
|
|
+ //{"693" , "检测右 PAN 上有片,与逻辑状态不匹配" },
|
|
|
+ //{"694" , "检测左 PAN 上无片,与逻辑状态不匹配" },
|
|
|
+ //{"695" , "检测右 PAN 上有片,与逻辑状态不匹配" },
|
|
|
+ //{"700" , "当前手臂有晶圆 ,检查指令动作要求的晶圆状态,与手臂内部存储的晶圆状态是否匹配" },
|
|
|
+ //{"701" , "当前手臂无晶圆,检查指令动作要求的晶圆状态,与手臂内部存储的晶圆状态是否匹配"},
|
|
|
+ {"705" , "LOAD状态未知,RQ LOAD查询状态 "},
|
|
|
+ //{"711" , "站点互锁错误,检查站点的“允许机械臂进入信号”是否就绪"},
|
|
|
+ {"712" , "真空吸附动作失败,检查真空吸附传感器是否正常"},
|
|
|
+ {"720" , "PAN L PICK RE状态不正确,检查PAN L上是否有晶圆"},
|
|
|
+ {"721" , "PAN R PICK RE状态不正确,检查PAN R是否有晶圆 "},
|
|
|
+ {"722" , "PAN R PLACE前状态不正确,查询PAN R状态"},
|
|
|
+ {"723" , "PAN L PLACE前状态不正确,查询PAN L状态"},
|
|
|
+ {"724" , "PAN R PLACE EX状态不正确 ,检查PAN R上是否有晶圆"},
|
|
|
+ {"725" , "PAN L PLACE EX状态不正确 ,检查PAN L上是否有晶圆"},
|
|
|
+ {"726" , "PAN R PLACE RE状态不正确 ,检查PAN R上是否有晶圆"},
|
|
|
+ {"727" , "PAN L PLACE RE状态不正确 ,检查PAN L是否有晶圆"},
|
|
|
+ {"730" , "PLACE前LOAD状态错误,RQ LOAD查询状态"},
|
|
|
+ {"731" , "PLACE后检测到晶圆,检查手指上晶圆状态"},
|
|
|
+ {"734" , "PLACE执行Extend过程中未检测到晶圆,检查Sensor状态和wafer check配置"},
|
|
|
+ {"736" , "PLACE执行Retract过程中检测到晶圆,检查Sensor状态和wafer check配置"},
|
|
|
+ {"740" , "PICK前LOAD状态错误 ,RQ LOAD查询状态"},
|
|
|
+ {"741" , "PICK后未检测到晶圆 ,检查手指是否有晶圆和Sensor状态"},
|
|
|
+ {"744" , "PICK执行Extend过程中检测到晶圆,检查Sensor状态和wafer check配置"},
|
|
|
+ {"745" , "PICK执行Retract过程中未检测到晶圆,检查Sensor状态和wafer check配置"},
|
|
|
+ {"751" , "PAN L晶圆不存在,查询LOAD状态"},
|
|
|
+ {"752" , "PAN R晶圆不存在,查询LOAD状态"},
|
|
|
+ {"757" , "PAN R晶圆不存在,查询LOAD状态"},
|
|
|
+ {"758" , "PAN R PICK EX检测到晶圆,检查Sensor状态和PAN R当前是否晶圆"},
|
|
|
+ {"759" , "PAN L PICK RE未检测到晶圆,检查Sensor状态和PAN L当前是否晶圆"},
|
|
|
+ {"760" , "PAN R PICK RE未检测到晶圆,检查Sensor状态和PAN R当前是否晶圆"},
|
|
|
+ {"761" , "PAN L PLACE EX未检测到晶圆,检查Sensor状态和PAN L当前是否有晶圆"},
|
|
|
+ {"762" , "PAN R PLACE EX未检测到晶圆,检查Sensor状态和PAN R当前是否有晶圆"},
|
|
|
+ {"763" , "PAN L PLACE RE检测到晶圆,检查Sensor状态和PAN L当前是否有晶圆"},
|
|
|
+ {"764" , "PAN R PLACE RE检测到晶圆,检查Sensor状态和PAN R当前是否有晶圆"},
|
|
|
+ //{"771" , "取片时 AWC 传感器检测失败,检查 AWC 传感器状态,或者 AWC 配置相关是否正确"},
|
|
|
+ //{"791" , "查询 AWC 数据失败,未曾执行过 AWC 相关功能的操作"},
|
|
|
+ //{"792" , "AWC 传感器检测失败,检查AWC传感器状态,或者AWC配置相关是否正确"},
|
|
|
+ //{"799" , "放片失败,检查手臂晶圆状态,或者晶圆检测传感器状态"},
|
|
|
+ {"800" , "PICK执行Retract过程中未检测到晶圆,检查Sensor状态和wafer check配置"},
|
|
|
+ {"801" , "改变运动状态发生错误,检查当前运动状态"},
|
|
|
+ {"802" , "无法获取下一个状态,检查机械手当前运动状态"},
|
|
|
+ {"803" , "没有正在运行的指令 ,指令是否运行完成"},
|
|
|
+ {"804" , "没有暂停的动作,检查机械手是否在运动"},
|
|
|
+ {"805" , "没有可跳过的动作,检查运动状态"},
|
|
|
+ {"806" , "带拐点工位不支持该指令,拐点开关是否打开"},
|
|
|
+ {"1006" , "非法的IO端口号,确认配置的IO号"},
|
|
|
+ {"1314" , "PITCH轴超界,检查PITCH关节值"},
|
|
|
+ {"1315" , "关节位置超界 ,查询当前关节值和软限位"},
|
|
|
+ {"1316" , "关节位置超硬限 ,查询当前关节值和硬限位传感器"},
|
|
|
+ {"1320" , "机械手跟踪差超限错误 ,查询当前跟踪差配置值"},
|
|
|
+ {"1321" , "机械手发生碰撞,检测当前碰撞参数配置值"},
|
|
|
+ {"1322" , "机械手发生碰撞,检测当前碰撞参数配置值"},
|
|
|
+ {"1323" , "机械手发生碰撞,检测当前碰撞参数配置值"},
|
|
|
+ {"2000" , "ALGN偏差超过最大值,检查设置的晶圆最大偏差值 检查晶圆位置 "},
|
|
|
+ {"2001" , "AGLN CCD数据异常,确认晶圆位置是否正确 确认CCD传感器位置是否正确 确认内部线路正负正确 "},
|
|
|
+ {"2002" , "返回值格式错误,确认返回值格式"},
|
|
|
+ {"2003" , "通信已经断开,检查通讯线路是否正常"},
|
|
|
+ {"2008" , "FLAT片数据异常,确认晶圆位置是否正确 确认CCD传感器位置是否正确 "},
|
|
|
+ {"13007" , "通信断开,检查通讯线路是否正常"},
|
|
|
+ {"13033" , "伺服驱动器初始化失败,检查驱动器通信连线或检查通信配置"},
|
|
|
+
|
|
|
};
|
|
|
private BlockingCollection<RobotAnimationData> blockingCollection = new BlockingCollection<RobotAnimationData>();
|
|
|
private ModuleName _module;
|
|
@@ -356,7 +419,7 @@ namespace Venus_RT.Devices.TM
|
|
|
|
|
|
private void OnReceiveMessage(string revMsg)
|
|
|
{
|
|
|
- string[] ResMsgs = revMsg.Split('\n');
|
|
|
+ string[] ResMsgs = revMsg.Split('\r');
|
|
|
foreach (string revRawMsg in ResMsgs)
|
|
|
{
|
|
|
if (string.IsNullOrWhiteSpace(revRawMsg)) continue;
|