Commit d20e4e34 刘韬

1

1 个父辈 972f6287
......@@ -135,7 +135,6 @@
<Compile Include="DeviceLibrary\IOManager.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="theMachine\sub\IDevice.cs" />
<Compile Include="theMachine\sub\CI.cs" />
<Compile Include="theMachine\sub\MI.cs" />
<Compile Include="theMachine\sub\TrayStop.cs" />
<Compile Include="theMachine\sub\TransplantMove.cs" />
......
using OnlineStore.Common;
using ConfigHelper;
using OnlineStore.Common;
using OnlineStore.LoadCSVLibrary;
using System;
using System.Collections.Generic;
......@@ -15,14 +16,21 @@ namespace DeviceLibrary
string DeviceGroup;
string Name;
IO_VALUE currentIOvalue = IO_VALUE.None;
bool disable =false;
public CylinderManger(string name,string devicegroup,string high,string low) {
High = high;
Low = low;
Name = name;
DeviceGroup = devicegroup;
SafetyDevice.AddDevice(this);
if (!RobotManage.Config.DOList[devicegroup].ContainsKey(high))
{
disable=true;
LogUtil.info($"{Name},没有找到 {devicegroup} 的IO {high} 已禁止");
}
}
public void ToHigh(MoveInfo moveInfo) {
if (disable) return;
currentIOvalue = IO_VALUE.HIGH;
if (moveInfo != null)
{
......@@ -37,6 +45,7 @@ namespace DeviceLibrary
}
public void ToLow(MoveInfo moveInfo)
{
if (disable) return;
currentIOvalue = IO_VALUE.LOW;
if (moveInfo != null)
{
......@@ -52,6 +61,7 @@ namespace DeviceLibrary
public void Pause()
{
if (disable) return;
LogUtil.info($"{Name},停止运行");
if (currentIOvalue == IO_VALUE.None) {
LogUtil.info($"{Name},没有在运行");
......@@ -73,6 +83,7 @@ namespace DeviceLibrary
public void Resume(bool islog=true)
{
if (disable) return;
if (currentIOvalue == IO_VALUE.None)
return;
IOManager.IOMove(Low, currentIOvalue == IO_VALUE.LOW ? IO_VALUE.HIGH : IO_VALUE.LOW, DeviceGroup);
......
......@@ -49,7 +49,7 @@ namespace DeviceLibrary
public static bool FwdFree(int curaddr) {
int nextaddr = curaddr + 1;
if (nextaddr > 20)
if (nextaddr > 21)
nextaddr = 0;
if (!DeviceListByAddr.ContainsKey(nextaddr))
......
......@@ -60,7 +60,6 @@ namespace DeviceLibrary
TrayManager.Init(DeviceGroup);
MI.Init(Config, DeviceGroup, out m);
CI.Init(Config, DeviceGroup, out m);
msg += m;
#region 初始化led
RunningLed = new Led(Config.DOList["root"][IO_Type.Run_Led].GetIOAddr(), LedColor.green);
......@@ -164,7 +163,6 @@ namespace DeviceLibrary
TransplantMove.DeviceList.Values.ToList().ForEach(s => s.Stop());
TrayStop.DeviceList.Values.ToList().ForEach(s => s.Stop());
MI.DeviceList.Values.ToList().ForEach(s => s.Stop());
CI.DeviceList.Values.ToList().ForEach(s => s.Stop());
IOMove(IO_Type.Line_Run, IO_VALUE.LOW);
ResetEvent.Set();
Alarm(AlarmType.None);
......@@ -185,7 +183,6 @@ namespace DeviceLibrary
TransplantMove.DeviceList.Values.ToList().ForEach(s => s.Start());
TrayStop.DeviceList.Values.ToList().ForEach(s => s.Start());
MI.DeviceList.Values.ToList().ForEach(s => s.Start());
CI.DeviceList.Values.ToList().ForEach(s => s.Start());
}
......
......@@ -34,13 +34,13 @@ namespace DeviceLibrary
public static Dictionary<string, RobotPosition> MI1Postion;
public static Dictionary<string, RobotPosition> MI2Postion;
public static Dictionary<string, RobotPosition> CIPostion;
//public static Dictionary<string, RobotPosition> CIPostion;
public static URRobotControl Robot_MI1;
public static URRobotControl Robot_MI2;
public static URRobotControl Robot_CI;
//public static URRobotControl Robot_CI;
public static VStoreCollection VStoreCollection;
public static ShareFolderWatcher folderWatcher;
//public static ShareFolderWatcher folderWatcher;
public static void Init() {
string msg = "";
try
......@@ -61,20 +61,18 @@ namespace DeviceLibrary
msg += crc.GetString("Res0180", "找不到库位配置文件") + "\n";
}
folderWatcher = new ShareFolderWatcher(Setting_Init.Device_VJCounterFolder);
if (!folderWatcher.Start(out string errmsg))
{
IsLoadOk = false;
msg += errmsg + "\n";
LogUtil.error("ShareFolderWatcher:"+errmsg);
}
//folderWatcher = new ShareFolderWatcher(Setting_Init.Device_VJCounterFolder);
//if (!folderWatcher.Start(out string errmsg))
//{
// IsLoadOk = false;
// msg += errmsg + "\n";
// LogUtil.error("ShareFolderWatcher:"+errmsg);
//}
string MI1PostionFile = "config\\MI1Postion.csv";
string MI2PostionFile = "config\\MI2Postion.csv";
string CIPostionFile = "config\\CIPostion.csv";
MI1Postion = CSVPositionReader<RobotPosition>.LoadCSVFile(MI1PostionFile);
MI2Postion = CSVPositionReader<RobotPosition>.LoadCSVFile(MI2PostionFile);
CIPostion = CSVPositionReader<RobotPosition>.LoadCSVFile(CIPostionFile);
Robot_MI1 = new URRobotControl(Setting_Init.URRobot_MI1_IP, "Robot-R1", Setting_Init.URRobot_MI1_ListenPort);
Robot_MI1.Name = "R1";
......@@ -82,8 +80,6 @@ namespace DeviceLibrary
Robot_MI2 = new URRobotControl(Setting_Init.URRobot_MI2_IP, "Robot-R2", Setting_Init.URRobot_MI2_ListenPort);
Robot_MI2.Name = "R2";
Robot_MI2.SetSpeedRate(Setting_Init.URRobot_MI2_Speed_Rate);
Robot_CI = new URRobotControl(Setting_Init.URRobot_CI_IP, "Robot-CI", Setting_Init.URRobot_CI_ListenPort);
Robot_CI.SetSpeedRate(Setting_Init.URRobot_CI_Speed_Rate);
VStoreCollection = new VStoreCollection();
......@@ -112,7 +108,6 @@ namespace DeviceLibrary
DeviceRunControl.AddDevice("TransplantMove", TransplantMove.DeviceList.Values.ToList<IDevice>());
//DeviceRunControl.AddDevice("TrayStop", TrayStop.DeviceList.Values.ToList<IDevice>());
DeviceRunControl.AddDevice("MI", MI.DeviceList.Values.ToList<IDevice>());
DeviceRunControl.AddDevice("CI", CI.DeviceList.Values.ToList<IDevice>());
TrayStop.DeviceList.Values.ToList<IDevice>().ForEach(device => { DeviceRunControl.AddDevice(device.GroupName, new List<IDevice>() { device }); });
if (G.simulate)
......@@ -169,7 +164,6 @@ namespace DeviceLibrary
VStoreCollection.ShutDown();
Robot_MI1.StopRobot();
Robot_MI2.StopRobot();
Robot_CI.StopRobot();
}
public static void UserPause(bool userpause)
{
......
......@@ -160,23 +160,23 @@ namespace DeviceLibrary
return false;
var ttt = 0;
if (curaddr1 == 9)
ttt = 15;
if (curaddr1 == 10)
ttt = 16;
else if (curaddr1 == 4)
ttt = 19;
else if (curaddr1 == 19)
ttt = 20;
else if (curaddr1 == 20)
ttt = 4;
//当前托盘到需求距离
var ts = dis(a.Addr, ttt);
return !(trayaddrs.Where(t1 => dis(a.Addr, t1) < ts).Count() > 0);
};
//ls3处判断,出库任务数量大于值时治具托盘全部从LS3转移走
//ls3地址=19
if (curaddr1 == 19 && RobotManage.mainMachine?.ServerCM.OutMaterialTaskCount > Setting_Init.Device_LS3_MTP2_OutTaskMaxCount && trayType == TrayTypeE.MTP2)
//ls3地址=20
if (curaddr1 == 20 && RobotManage.mainMachine?.ServerCM.OutMaterialTaskCount > Setting_Init.Device_LS3_MTP2_OutTaskMaxCount && trayType == TrayTypeE.MTP2)
{
return true;
}
if (curaddr1 == 19 && RobotManage.mainMachine?.ServerCM.OutReelTaskCount > Setting_Init.Device_LS3_MTP1_OutTaskMaxCount && trayType == TrayTypeE.MTP1)
if (curaddr1 == 20 && RobotManage.mainMachine?.ServerCM.OutReelTaskCount > Setting_Init.Device_LS3_MTP1_OutTaskMaxCount && trayType == TrayTypeE.MTP1)
{
return true;
}
......@@ -189,12 +189,12 @@ namespace DeviceLibrary
{
if (destaddr == -1)
return false;
if (curaddr == 9 && (destaddr > 15 || destaddr < 9))
if (curaddr == 10 && (destaddr > 16 || destaddr < 10))
return true;
if (curaddr == 4 && (destaddr > 19 || destaddr < 4))
if (curaddr == 4 && (destaddr > 20 || destaddr < 4))
return true;
if (curaddr == 19 && (destaddr > 4 && destaddr < 19))
if (curaddr == 20 && (destaddr > 4 && destaddr < 20))
return true;
return false;
}
......@@ -204,7 +204,7 @@ namespace DeviceLibrary
if (d >= 0)
return d;
else
return d + 20;
return d + 21;
}
}
public static void SetToEmpty(string rfid)
......
using ConfigHelper;
using HalconDotNet;
using Newtonsoft.Json;
using OnlineStore;
using OnlineStore.Common;
using OnlineStore.LoadCSVLibrary;
using RemoteSheardObject;
using Robot.UR;
using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace DeviceLibrary
{
public class CI : DeviceBase, IDevice
{
public static Dictionary<string, CI> DeviceList = new Dictionary<string, CI>();
public static void Init(Robot_Config config, Dictionary<string, DeviceGroup> devices,out string msg) {
msg = "";
CI sideMove = new CI(devices["CI"], out string m);
DeviceList.Add(devices["CI"].GroupName, sideMove);
msg += m;
}
DeviceGroup DeviceGroup;
public MoveInfo MoveInfo;
MoveInfo RoboMoveInfo;
//CylinderManger Location;
public AxisBean Comp;
//public AxisBean Rotate;
URRobotControl Robot;
public RobotHelper robotHelper;
BufferSlotsManger BufferSlotsManger;
string POS_Start = "CI";
string robotname = "";
public bool ManualCount = false;
public event EventHandler<string> ReelReady;
public event EventHandler<XRayStepE> XRayStep;
public CI(DeviceGroup device,out string msg) : base()
{
msg = "";
Name = device.Name+"("+ device.GroupName + ")";
DeviceGroup = device;
GroupName = DeviceGroup.GroupName;
Msg = new MsgService(GroupName+"-T");
MoveInfo = new MoveInfo(GroupName + "-T");
RoboMoveInfo = new MoveInfo(GroupName + "-Robo");
if (device.GroupName == "CI")
{
Robot = RobotManage.Robot_CI;
robotname = "R3";
}
Robot.Name = robotname;
//robotHelper = new RobotHelper(Robot, robotname);
//Comp = AxisBean.List[DeviceGroup.GroupName][0];
//Rotate = AxisBean.List[DeviceGroup.GroupName][1];
BufferSlotsManger = new BufferSlotsManger(POS_Start);
}
public DeviceStateE DeviceState { get; set; }
public void Start()
{
OpenAllServo();
//robotHelper.Start();
DeviceState = DeviceStateE.HomeReset;
MoveInfo.NewMove(MoveStep.H01_HomeReset);
MoveInfo.log("开始回原1");
}
public void Stop()
{
//robotHelper.Stop();
//Robot.StopRobot();
DeviceState = DeviceStateE.Stop;
MoveInfo.log("停止运行1");
}
public void Process()
{
try
{
LogUtil.OutputDebugString($"{GroupName} DeviceState:" + DeviceState.ToString());
if (!DeviceCheck())
{
return;
}
MsgService.MSList[GroupName + "-T"].clear();
if (DeviceState == DeviceStateE.HomeReset)
ResetProcess();
else if (DeviceState == DeviceStateE.Run)
{
OneWayProcess();
RobotMoveProcess();
}
}
finally {
MsgService.MSList[GroupName + "-T"].Show();
}
}
public void Reset()
{
Robot.SendMoveCmd(1, Setting_Init.URRobot_CI_Speed_Rate, false, RobotHelper.LoadRateParam[robotHelper.lastWeight]);
Config.Set("RuntimeRobot_" + robotname + "_MoveStep", "Wait");
Config.Set("RuntimeRobot_" + robotname + "_Arm_MoveStep", "Wait");
}
private bool DeviceCheck()
{
return true; // 没有机器人暂时屏蔽
if (!robotHelper.RobotStatus) {
Msg.add(POS_Start + crc.GetString("Res0058","机器人当前不可用"), MsgLevel.alarm);
return false;
}
return true;
}
JobInfo CurrentJobInfo;
public void OneWayProcess()
{
//Config.Set("RuntimeRobot_MoveStep", MoveInfo.MoveStep.ToString());
if (CheckWait(MoveInfo))
return;
switch (MoveInfo.MoveStep)
{
case MoveStep.Wait:
var hasoutjob = false;
if (hasoutjob)
{
MoveInfo.log("查询到出库任务,开始优先出库");
MoveInfo.NextMoveStep(MoveStep.MI_50);
}
//判断入库任务
LogUtil.OutputDebugString("InStoreJobList:" + InStoreJobList.Count.ToString());
if (InStoreJob != null)
{
CurrentJobInfo = InStoreJob.Clone();
InStoreJob = null;
MoveInfo.log("收到物料点料任务:" + CurrentJobInfo.ToStr());
MoveInfo.MoveParam.WareCode = CurrentJobInfo.WareNum;
MoveInfo.MoveParam.PosID = CurrentJobInfo.PosId;
MoveInfo.MoveParam.PlateW = CurrentJobInfo.plateW;
MoveInfo.MoveParam.PlateH = CurrentJobInfo.plateH;
MoveInfo.MoveParam.cid = CurrentJobInfo.CID;
MoveInfo.NextMoveStep(MoveStep.MI_01);
Config.Set("Runtime_Robot_" + robotname + "_ReelInfo", JsonConvert.SerializeObject(MoveInfo.MoveParam));
var cc = MoveInfo.MoveParam.WareCode.Split('#');
if (cc.Count()>2)
ReelReady?.Invoke(this, cc[0].Substring(1) + "|" + cc[1].Substring(1));
else
ReelReady?.Invoke(this, MoveInfo.MoveParam.WareCode);
XRayStep?.Invoke(this, XRayStepE.WaitMTtoVJ);
MoveInfo.log($"开始点料");
VJCounter.SendBarcode(ProcessCodeGetVJType(MoveInfo.MoveParam.WareCode) + VJCounter.newline);
}
break;
case MoveStep.MI_01:
Msg.add("等待人员料盘放置到点料机", MsgLevel.warning);
MoveInfo.log("等待人员取走料盘");
break;
case MoveStep.MI_02:
MoveInfo.NextMoveStep(MoveStep.MI_10);
RemoteLoad remoteLoad = new RemoteLoad();
remoteLoad.Action = "";
remoteLoad.GroupName = GroupName;
remoteLoad.RequestLoadInfo = new RequestLoadInfo();
remoteLoad.RequestLoadInfo.DeviceGroupName = GroupName;
remoteLoad.RequestLoadInfo.IsEmpty = true;
remoteLoad.RequestLoadInfo.LoadParam = MoveInfo.MoveParam.clone();
TrayManager.TrayRelease(remoteLoad);
TrayStop.DeviceList[GroupName].TrayRelease();
MoveInfo.log("取料完成托盘放行");
TheLine.UpdateLocInfo("", remoteLoad.RequestLoadInfo.LoadParam.WareCode, TheLine.LineStatusE.INROBOT, GroupName);
//VJCounter.SendBarcode(ProcessCodeGetVJType(MoveInfo.MoveParam.WareCode));
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(1000));
break;
case MoveStep.MI_10:
MoveInfo.NextMoveStep(MoveStep.MI_11);
///VJCounter.SendBarcode(ProcessCodeGetVJType(MoveInfo.MoveParam.WareCode));
//Thread.Sleep(1000);
TrayStop.DeviceList["CI"].IOMove(IO_Type.CI_Start, IO_VALUE.HIGH, 500);
MoveInfo.log("步骤1: 按下启动开始点料");
XRayStep?.Invoke(this, XRayStepE.Counting);
break;
case MoveStep.MI_11:
if (IOValue(IO_Type.CI_Count_Finished).Equals(IO_VALUE.LOW))
{
MoveInfo.NextMoveStep(MoveStep.MI_12);
MoveInfo.log("步骤2: 满抽屉正在进入");
}
else if (MoveInfo.IsTimeOut(2000))
{
MoveInfo.log("等待抽屉进入点料机超时");
Msg.add("等待抽屉进入点料机超时", MsgLevel.warning);
}
break;
case MoveStep.MI_12:
if (IOValue(IO_Type.CI_Count_Finished).Equals(IO_VALUE.HIGH))
{
MoveInfo.NextMoveStep(MoveStep.MI_13);
MoveInfo.log("步骤3: 空抽屉已退出, 等待一会");
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(1000*40));
}
else if (MoveInfo.IsTimeOut(5000))
{
MoveInfo.log("等待内部抽屉退出超时");
Msg.add("等待内部抽屉退出超时", MsgLevel.warning);
}
break;
case MoveStep.MI_13:
MoveInfo.NextMoveStep(MoveStep.MI_14);
MoveInfo.log("步骤4: 按启动按钮准备退出满抽屉");
TrayStop.DeviceList["CI"].IOMove(IO_Type.CI_Start, IO_VALUE.HIGH, 500);
break;
case MoveStep.MI_14:
if (IOValue(IO_Type.CI_Count_Finished).Equals(IO_VALUE.LOW))
{
MoveInfo.NextMoveStep(MoveStep.MI_15);
MoveInfo.log("步骤5: 空抽屉正在进入");
}
else if (MoveInfo.IsTimeOut(2000))
{
MoveInfo.log("等待抽屉进入点料机超时");
Msg.add("等待抽屉进入点料机超时", MsgLevel.warning);
}
break;
case MoveStep.MI_15:
if (IOValue(IO_Type.CI_Count_Finished).Equals(IO_VALUE.HIGH))
{
MoveInfo.NextMoveStep(MoveStep.MI_16);
MoveInfo.log("步骤6: 满抽屉已退出, 点料完成");
//IOMove(IO_Type.CI_Start, IO_VALUE.HIGH, 1000);
XRayStep?.Invoke(this, XRayStepE.WaitCountResult);
}
else if (MoveInfo.IsTimeOut(60))
{
MoveInfo.log("等待内部抽屉退出超时");
Msg.add("等待内部抽屉退出超时", MsgLevel.warning);
}
break;
case MoveStep.MI_16:
if (RobotManage.folderWatcher.GetQty(MoveInfo.MoveParam.WareCode, out int qty)) {
MoveInfo.NextMoveStep(MoveStep.MI_17);
TheLine.UpdateReelQty(MoveInfo.MoveParam.WareCode, qty);
MoveInfo.MoveParam.WareCode = ProcessCodeInsertQty(MoveInfo.MoveParam.WareCode, qty);
MoveInfo.MoveParam.QTY=qty;
MoveInfo.log("步骤7: 获得点料结果:"+qty+ ", "+MoveInfo.MoveParam.WareCode);
}
else if (MoveInfo.IsTimeOut(120))
{
MoveInfo.NextMoveStep(MoveStep.MI_16);
MoveInfo.log("等待点料结果超时");
Msg.add("等待点料结果超时", MsgLevel.warning);
}
break;
case MoveStep.MI_17:
MoveInfo.NextMoveStep(MoveStep.MI_50);
MoveInfo.MoveParam = TheLine.Regetposid(MoveInfo.MoveParam, TrayTypeE.MTP1.ToString(), out string msg);
MoveInfo.log($"步骤8: 重新获取库位 msg:{msg},\t {MoveInfo.MoveParam.ToStr()}");
break;
case MoveStep.MI_50:
MoveInfo.NextMoveStep(MoveStep.MI_53);
break;
case MoveStep.MI_53:
if (!TrayStop.DeviceList[GroupName].IsFree())
{
MoveInfo.NextMoveStep(MoveStep.MI_54);
MoveInfo.log("机器人开始放料");
XRayStep?.Invoke(this, XRayStepE.WaitVJtoMT);
RequestLoadInfo RequestLoadInfo = new RequestLoadInfo();
RequestLoadInfo.LoadParam = MoveInfo.MoveParam.clone();
RequestLoadInfo.DeviceGroupName = MoveInfo.MoveParam.cid;
RequestLoadInfo.TrayType = TrayTypeE.MTP1.ToString();
RequestLoadInfo.IsEmpty = false;
TrayManager.SetTrayLoadInfo(TrayStop.DeviceList["CI"].CurrrentRFID, RequestLoadInfo);
}
else
{
RemoteLoad remoteLoad1 = new RemoteLoad();
remoteLoad1.Action = "SetTrayRequest";
remoteLoad1.GroupName = GroupName;
remoteLoad1.RequestLoadInfo = new RequestLoadInfo();
remoteLoad1.RequestLoadInfo.TrayType = TrayTypeE.MTP1.ToString();
remoteLoad1.RequestLoadInfo.IsEmpty = true;
remoteLoad1.RequestLoadInfo.DeviceGroupName = GroupName;
TrayManager.SetTrayRequest(remoteLoad1);
Msg.add(crc.GetString("Res0097.b5a12101", "等待空托盘"), MsgLevel.info);
}
break;
case MoveStep.MI_54:
Msg.add("等待人工放上料盘", MsgLevel.warning);
break;
case MoveStep.MI_55:
MoveInfo.log("点料任务结束");
XRayStep?.Invoke(this, XRayStepE.Finish);
MoveInfo.NewMove(MoveStep.Wait);
break;
}
}
public void RobotMoveProcess()
{
Config.Set("RuntimeRobot_Arm_MoveStep", RoboMoveInfo.MoveStep.ToString());
if (CheckWait(RoboMoveInfo))
return;
switch (RoboMoveInfo.MoveStep)
{
case MoveStep.Wait:
break;
}
}
StoreJobList InStoreJobList = new StoreJobList(crc.GetString("Res0013","入库"));
volatile JobInfo InStoreJob;
StoreJobList OutStoreJobList = new StoreJobList(crc.GetString("Res0015","出库"));
internal void StartInStore(ReelParam trayParam)
{
//PosID== 料仓CID
InStoreJob = new JobInfo(trayParam.WareCode, trayParam.PosID, trayParam.PlateW, trayParam.PlateH);
InStoreJob.CID = trayParam.PosID;
InStoreJobList.Enqueue(new JobInfo(trayParam.WareCode, trayParam.PosID, trayParam.PlateW, trayParam.PlateH));
MoveInfo.log("写入点料队列:" + trayParam.ToStr());
}
internal void EnqueueOutStore(JobInfo trayParam)
{
OutStoreJobList.Enqueue(trayParam.Clone());
MoveInfo.log("写入出库队列:" + trayParam.ToStr());
}
public void StartOutStore()
{
if (MoveInfo.MoveStep != MoveStep.MI_54)
{
MoveInfo.log("没有在等待托盘状态");
}
else
{
MoveInfo.log("人工完成放料");
RemoteLoad remoteLoad = new RemoteLoad();
remoteLoad.GroupName = GroupName;
remoteLoad.RequestLoadInfo = new RequestLoadInfo();
remoteLoad.RequestLoadInfo.DeviceGroupName = MoveInfo.MoveParam.cid;
remoteLoad.RequestLoadInfo.IsEmpty = false;
remoteLoad.RequestLoadInfo.TrayType = TrayTypeE.MTP1.ToString();
remoteLoad.RequestLoadInfo.LoadParam = MoveInfo.MoveParam.clone();// 填充料盘信息
TrayManager.TrayRelease(remoteLoad); //这条会自动放行托盘并且写入托盘目的地
TheLine.UpdateLocInfo("", MoveInfo.MoveParam.WareCode, TheLine.LineStatusE.INLINE, CurrrentRFID);
TrayManager.ClearTrayRequest(GroupName);
MoveInfo.NextMoveStep(MoveStep.MI_55);
MoveInfo.log("完成点料放料");
}
}
string ProcessCodeInsertQty(string barcode, int qty) {
if (barcode.Count(c => c == '#') == 3)
{
MoveInfo.log("CI: 原条码:" + barcode + ", qty:" + qty);
var barcodes = barcode.Split('#');
barcodes[2] = qty.ToString();
var af = string.Join("#", barcodes);
MoveInfo.log("CI: 转换后:" + af);
return af;
}
MoveInfo.log("CI: Barcode转换失败:" + barcode);
return "";
}
string ProcessCodeGetVJType(string barcode)
{
if (barcode.Count(c => c == '#') == 3)
{
var barcodes = barcode.Split('#');
var vjcode = barcodes[0].Substring(1) + "|" + barcodes[1].Substring(1);
MoveInfo.log($"CI: VJ转换:{barcode} => {vjcode}");
return vjcode;
}
MoveInfo.log("CI: VJ转换失败:" + barcode);
return "";
}
/// <summary>
/// 释放托盘
/// </summary>
public void TrayRelease() {
//MoveInfo.log("释放托盘");
// MoveInfo.NextMoveStep(MoveStep.TrayStop_LoadProcessed);
}
public void ResetProcess()
{
if (CheckWait(MoveInfo))
return;
switch (MoveInfo.MoveStep)
{
case MoveStep.Wait:
break;
case MoveStep.H01_HomeReset:
if (IOValue(IO_Type.CI_Count_Finished).Equals(IO_VALUE.HIGH))
{
MoveInfo.NextMoveStep(MoveStep.H02_HomeReset);
MoveInfo.log("VJ点料机状态正常");
}
else {
Msg.add("VJ counter pallet is not in right position", MsgLevel.warning);
}
break;
case MoveStep.H02_HomeReset:
MoveInfo.EndMove();
DeviceState = DeviceStateE.Run;
break;
}
}
/// <summary>
/// 设备是否有任务
/// </summary>
/// <param name="reelParam"></param>
/// <returns></returns>
public bool HasJob(ReelParam reelParam)
{
MoveInfo.log($"DeviceState:{DeviceState},{MoveInfo.MoveStep},{reelParam}");
if (DeviceState != DeviceStateE.Run)
return false;
if (reelParam == null && MoveInfo.MoveStep >= MoveStep.MI_53)//正在出库中
return true;
if (reelParam != null && MoveInfo.MoveStep == MoveStep.Wait)
return true;
return false;
}
public bool FrontCheck(int curaddr)
{
throw new NotImplementedException();
}
public bool IsFree()
{
throw new NotImplementedException();
}
public void FrontStopProcess()
{
//throw new NotImplementedException();
}
}
public enum XRayStepE {
WaitMTtoVJ,
Counting,
WaitCountResult,
WaitVJtoMT,
Finish
}
}
\ No newline at end of file
......@@ -833,11 +833,9 @@ namespace DeviceLibrary
if (device == "AMH-MI1")
return RobotManage.MI1Postion[pos];
else if (device == "AMH-MI2")
else // (device == "AMH-MI2")
return RobotManage.MI2Postion[pos];
else
return RobotManage.CIPostion[pos];
}
int GetWeight(ReelParam reelParam) {
int w = 0;
......
......@@ -245,59 +245,17 @@ namespace DeviceLibrary
MoveInfo.NextMoveStep(MoveStep.TrayStop_04);
return;
}
else if (GroupName == "CI" && trayInfo.TrayType == TrayTypeE.MTP1)
#endregion
if (stop && !trayInfo.HasLoad)
{
MoveInfo.log($"在CI设备:{trayInfo.DestinationAddr}=={DeviceGroup.addr_1}");
var device = CI.DeviceList[GroupName];
if (!device.ManualCount)
if (IOValue(IO_Type.MI_Reel_Check).Equals(IO_VALUE.HIGH))
{
MoveInfo.log($"点料机当前不可用,NG处理");
RequestLoadInfo RequestLoadInfo = new RequestLoadInfo();
RequestLoadInfo.LoadParam = trayInfo.TrayParam.clone();
RequestLoadInfo.LoadParam.IsNg = true;
RequestLoadInfo.LoadParam.NgMsg = "XRay not enable";
RequestLoadInfo.DeviceGroupName = "AMH-MI2";
RequestLoadInfo.TrayType = trayInfo.TrayType.ToString();
RequestLoadInfo.IsEmpty = false;
TrayManager.SetTrayLoadInfo(CurrrentRFID, RequestLoadInfo);
//查询新库位, 检查料仓状态
MoveInfo.NextMoveStep(MoveStep.TrayStop_03);
TrayManager.SetTrayError(CurrrentRFID);
Msg.add("Pallet data is empty, but material is sensed, please check.", MsgLevel.alarm);
MoveInfo.log("托盘数据为空,但时间感应到物料,请检查");
MoveInfo.NextMoveStep(MoveStep.TrayStop_04);
return;
}
if (!trayInfo.HasLoad && IOValue(IO_Type.MI_Reel_Check).Equals(IO_VALUE.LOW))
{
MoveInfo.log("开始处理出料");
MoveInfo.NextMoveStep(MoveStep.TrayStop_07);
//请求的空托盘到达时
if (!device.HasJob(null))
MoveInfo.NextMoveStep(MoveStep.TrayStop_04);
else
{
MoveInfo.NextMoveStep(MoveStep.TrayStop_07);
//device.StartOutStore();
}
}
else if (trayInfo.DestinationAddr == DeviceGroup.addr_1 && trayInfo.HasLoad)
{
MoveInfo.log("开始处理入料");
//抵达了一个有物料的托盘等待处理
if (!device.HasJob(trayInfo.TrayParam))
MoveInfo.NextMoveStep(MoveStep.TrayStop_04);
else
{
MoveInfo.NextMoveStep(MoveStep.TrayStop_07);
device.StartInStore(trayInfo.TrayParam);
}
}
else
MoveInfo.NextMoveStep(MoveStep.TrayStop_04);
return;
}
#endregion
if (stop && !trayInfo.HasLoad && IOValue(IO_Type.MI_Reel_Check).Equals(IO_VALUE.LOW))
{
//空托盘
MoveInfo.NextMoveStep(MoveStep.TrayStop_07);
RemoteLoad remoteLoad = new RemoteLoad();
......@@ -309,7 +267,7 @@ namespace DeviceLibrary
MoveInfo.remoteLoad = remoteLoad;
if (RemoteService.SendAndWait(GroupName, remoteLoad) != RemoteResult.True)
MoveInfo.NextMoveStep(MoveStep.TrayStop_04);
MoveInfo.NextMoveStep(MoveStep.TrayStop_03);
SRec.info(crc.GetString("Res0042","托盘挡停"), GroupName, crc.GetString("Res0030","空托盘"), crc.GetString("Res0043","准备接料"), CurrrentRFID);
return;
......@@ -321,7 +279,7 @@ namespace DeviceLibrary
TrayManager.SetTrayError(CurrrentRFID);
Msg.add(crc.GetString("Res0034", "托盘没有检测到物料"), MsgLevel.alarm);
MoveInfo.log("托盘没有检测到物料");
MoveInfo.NextMoveStep(MoveStep.TrayStop_04);
MoveInfo.NextMoveStep(MoveStep.TrayStop_03);
return;
}
//有物料
......
类型,分类编号,说明,名称,属性值,设备名称,电器定义,目标速度,加速时间,减速时间,原点低速度,原点高速,原点加速度,脉冲最小误差,脉冲最大误差,脉冲最小限位,脉冲最大限位
AXIS,0,AMH-SBSH2伺服移栽,AMH_SBSH2_Axis,0,HC,,60000,0,0,0,10000,0,10,700,0,0
AXIS,0,AMH-SBSH2伺服移栽,AMH_SBSH2_Axis,0,HC,,60000,0,0,0,40000,0,10,700,0,0
AXIS,0,AMH-SBDH2-1伺服移栽,AMH_SBDH2_1_Axis,1,HC,,20000,0,0,0,40000,0,10,700,0,0
AXIS,0,AMH-SBDH2-2伺服移栽,AMH_SBDH2_2_Axis,2,HC,,60000,0,0,0,10000,0,10,700,0,0
AXIS,0,AMH-SBDH2-2伺服移栽,AMH_SBDH2_2_Axis,2,HC,,60000,0,0,0,40000,0,10,700,0,0
AXIS,0,AMH-SBSH1伺服移栽,AMH_SBSH1_Axis,3,HC,,20000,0,0,0,40000,0,10,700,0,0
AXIS,0,MI1压紧伺服,MI1_Axis,4,HC,,60000,0,0,0,10000,0,10,700,0,0
AXIS,0,MI1压紧伺服,MI1_Axis,4,HC,,600000,0,0,0,50000,0,10,700,0,0
AXIS,0,MI1定位伺服,MI1_Rotate_Axis,5,HC,,60000,0,0,0,10000,0,10,700,0,0
AXIS,0,AMH-SBDH3-1伺服移栽,AMH_SBDH3_1_Axis,6,HC,,20000,0,0,0,40000,0,10,700,0,0
AXIS,0,AMH-SBDH3-2伺服移栽,AMH_SBDH3_2_Axis,7,HC,,60000,0,0,0,10000,0,10,700,0,0
AXIS,0,AMH-SBDH3-2伺服移栽,AMH_SBDH3_2_Axis,7,HC,,60000,0,0,0,40000,0,10,700,0,0
AXIS,0,AMH-SBDH1-1伺服移栽,AMH_SBDH1_1_Axis,8,HC,,20000,0,0,0,40000,0,10,700,0,0
AXIS,0,AMH-SBDH1-2伺服移栽,AMH_SBDH1_2_Axis,9,HC,,60000,0,0,0,10000,0,10,700,0,0
AXIS,0,AMH-SBDH1-2伺服移栽,AMH_SBDH1_2_Axis,9,HC,,60000,0,0,0,40000,0,10,700,0,0
AXIS,0,MI2压紧伺服,MI2_Axis,10,HC,,20000,0,0,0,40000,0,10,700,0,0
AXIS,0,MI1定位伺服,MI2_Rotate_Axis,11,HC,,60000,0,0,0,10000,0,10,700,0,0
AXIS,0,MI2定位伺服,MI2_Rotate_Axis,11,HC,,60000,0,0,0,10000,0,10,700,0,0
,,,,,,,,,,,,,,,,
PRO,50,IO信号超时时间(秒),IOSingle_TimerOut,5,,,,,,,,,,,,
PRO,50,IO信号超时时间(秒),IOSingle_TimerOut,15,,,,,,,,,,,,
PRO,0,气压检测超时,AirCheckSeconds,5,,,,,,,,,,,,
PRO,10,AMH移栽设备每毫米脉冲,AMH_TS_PoToMM,1000,,,,,,,,,,,,
PRO,10,AMH移栽设备待机点P1,AMH_TS_P1,1000,,,10000,,,,,,,,,
PRO,10,AMH移栽设备取料P2-8mm,AMH_TS_P2,1000,,,10000,,,,,,,,,
PRO,10,AMH移栽设备待机点P1,AMH_TS_P1,500,,,60000,,,,,,,,,
PRO,10,AMH移栽设备取料P2-8mm,AMH_TS_P2,1000,,,60000,,,,,,,,,
,,,,,,,,,,,,,,,,
PRO,14,机器人压紧轴每毫米脉冲,AMH_RoboComp_PoToMM,1000,,,,,,,,,,,,
PRO,14,机器人压紧轴待机点P1,AMH_RoboMI1_Comp_P1,1000,,,10000,,,,,,,,,
PRO,14,机器人压紧轴8mm压紧点,AMH_RoboMI1_Comp_P2,1000,,,10000,,,,,,,,,
PRO,14,机器人压紧轴待机点P1,AMH_RoboMI1_Comp_P1,0,,,200000,,,,,,,,,
PRO,14,机器人压紧轴8mm压紧点,AMH_RoboMI1_Comp_P2,62000,,,60000,,,,,,,,,
PRO,15,托盘旋转轴每度脉冲,AMH_Route_PoToMM,1000,,,10000,,,,,,,,,
,,,,,,,,,,,,,,,,
DI,0,急停,SuddenStop_BTN,0,,X00,,,,,,,,,,
......@@ -124,17 +124,15 @@ DI,0,AMH-SBDH1-2托盘物料检测,AMH_Reel_Check,89,AMH-SBDH1-2,X89,,,,,,,,,,
DI,0,AMH-SBDH1-2移栽气缸前进端,AMH_Trans_Fwd,90,AMH-SBDH1-2,X90,,,,,,,,,,
DI,0,AMH-SBDH1-2移栽气缸后退端,AMH_Trans_Bwd,91,AMH-SBDH1-2,X91,,,,,,,,,,
,,,,,,,,,,,,,,,,
DI,0,AMH-CI顶升上升端,MI_Location_Up,92,CI,X92,,,,,,,,,,
DI,0,AMH-CI顶升下降端,MI_Location_Down,93,CI,X93,,,,,,,,,,
DI,0,AMH-CI托盘前阻挡检测,MI_Front_Check,94,CI,X94,,,,,,,,,,
DI,0,AMH-CI托盘到位检测,MI_In_Check,95,CI,X95,,,,,,,,,,
DI,0,AMH-CI托盘物料检测,MI_Reel_Check,96,CI,X96,,,,,,,,,,
DI,0,AMH-CI-OUT顶升上升端,MI_Location_Up,92,CI-OUT,X92,,,,,,,,,,
DI,0,AMH-CI-OUT顶升下降端,MI_Location_Down,93,CI-OUT,X93,,,,,,,,,,
DI,0,AMH-CI-OUT托盘前阻挡检测,MI_Front_Check,94,CI-OUT,X94,,,,,,,,,,
DI,0,AMH-CI-OUT托盘到位检测,MI_In_Check,95,CI-OUT,X95,,,,,,,,,,
DI,0,AMH-CI-OUT托盘物料检测,MI_Reel_Check,96,CI-OUT,X96,,,,,,,,,,
,,,,,,,,,,,,,,,,
DI,0,CI点料完成,CI_Count_Finished,97,CI,X97,,,,,,,,,,
DI,0,CI物料放置区门开启按钮,CI_Cache_Door_Open,98,CI,X98,,,,,,,,,,
DI,0,CI物料放置区门关闭按钮,CI_Cache_Door_Close,99,CI,X99,,,,,,,,,,
DI,0,CI物料放置区门关闭检测,CI_Cache_Door_Close_Check,100,CI,X100,,,,,,,,,,
DI,0,CI物料检测,CI_Cache_Reel_Check,101,CI,X101,,,,,,,,,,
DI,0,AMH-CI-IN托盘前阻挡检测,MI_Front_Check,97,CI-IN,X97,,,,,,,,,,
DI,0,AMH-CI-IN托盘到位检测,MI_In_Check,98,CI-IN,X98,,,,,,,,,,
DI,0,AMH-CI-IN托盘物料检测,MI_Reel_Check,99,CI-IN,X99,,,,,,,,,,
,,,,,,,,,,,,,,,,
DI,0,LS3-1顶升上升端,Ls_A_Location_Up,112,LS3,X112,,,,,,,,,,
DI,0,LS3-1顶升下降端,Ls_A_Location_Down,113,LS3,X113,,,,,,,,,,
......@@ -288,20 +286,13 @@ DO,0,AMH-SBDH1-2托盘前阻挡下降,AMH_Front_Stop,90,AMH-SBDH1-2,Y90,,,,,,,,,,
DO,0,AMH-SBDH1-2托盘阻挡下降,AMH_Tray_Stop,91,AMH-SBDH1-2,Y91,,,,,,,,,,
DO,0,AMH-SBDH1-2吸盘放料,AMH_Sucker_Release,105,AMH-SBDH1-2,Y105,,,,,,,,,,
,,,,,,,,,,,,,,,,
DO,0,AMH-CI顶升上升,MI_Location_Up,92,CI,Y92,,,,,,,,,,
DO,0,AMH-CI顶升下降,MI_Location_Down,93,CI,Y93,,,,,,,,,,
DO,0,AMH-CI托盘前阻挡下降,AMH_Front_Stop,94,CI,Y94,,,,,,,,,,
DO,0,AMH-CI托盘阻挡下降,AMH_Tray_Stop,95,CI,Y95,,,,,,,,,,
,,,,,,,,,,,,,,,,
DO,0,CI物料放置区门锁打开,CI_Cache_Door_UNLock,96,CI,Y96,,,,,,,,,,
DO,0,ROBOT-CI吸盘吸料,AMH_Sucker,97,CI,Y97,,,,,,,,,,
DO,0,CI物料放置区照明开启,CI_Cache_Light,98,CI,Y98,,,,,,,,,,
DO,0,CI启动,CI_Start,99,CI,Y99,,,,,,,,,,
DO,0,CI物料放置区门可开启指示灯,CI_Cache_Door_StandbyLED,100,CI,Y100,,,,,,,,,,
DO,0,CI物料放置区物料NG指示灯,CI_Cache_Door_NGLED,101,CI,Y101,,,,,,,,,,
DO,0,ROBOT-CI吸盘吸料,AMH_Sucker_Release,106,CI,Y106,,,,,,,,,,
DO,0,ROBOT-CI远程开机,MI_Robot_PowerON,109,CI,Y109,,,,,,,,,,
DO,0,ROBOT-CI远程关机,MI_Robot_PowerOFF,110,CI,Y110,,,,,,,,,,
DO,0,AMH-CI-OUT顶升上升,MI_Location_Up,92,CI-OUT,Y92,,,,,,,,,,
DO,0,AMH-CI-OUT顶升下降,MI_Location_Down,93,CI-OUT,Y93,,,,,,,,,,
DO,0,AMH-CI-OUT托盘前阻挡下降,AMH_Front_Stop,94,CI-OUT,Y94,,,,,,,,,,
DO,0,AMH-CI-OUT托盘阻挡下降,AMH_Tray_Stop,95,CI-OUT,Y95,,,,,,,,,,
,,,,,,,,,,,,,,,,
DO,0,AMH-CI-IN托盘前阻挡下降,AMH_Front_Stop,100,CI-IN,Y100,,,,,,,,,,
DO,0,AMH-CI-IN托盘阻挡下降,AMH_Tray_Stop,101,CI-IN,Y101,,,,,,,,,,
,,,,,,,,,,,,,,,,
DO,0,LS3横移电机正转,Ls_A_LineRun,112,LS3,Y112,,,,,,,,,,
DO,0,LS3横移电机反转,Ls_A_LineRwd,113,LS3,Y113,,,,,,,,,,
......
设备组,名称,设备类型,RFID-1,RFID-2,伺服轴号,伺服轴号2,地址号-1,地址号-2,设备侧8mm放料点,料仓侧8mm放料点,位置,优先级,高度,宽度
LS1,横移,LS,,,,,11,12,,,,,,
LS2,横移,LS,192.168.103.115,,,,8,15,,,,,,
LS3,横移,LS,192.168.103.110,192.168.103.106,,,4,19,,,,,,
LS4,横移,LS,,,,,0,1,,,,,,
设备组,名称,设备类型,RFID-1,RFID-2,伺服轴号,伺服轴号2,地址号-1,地址号-2,设备侧8mm放料点,料仓侧8mm放料点,位置,优先级,高度,宽度
LS1,横移,LS,,,,,12,13,,,,,,
LS2,横移,LS,192.168.103.115,,,,10,16,,,,,,
LS3,横移,LS,192.168.103.110,192.168.103.106,,,4,20,,,,,,
LS4,横移,LS,,,,,0,1,,,,,,
,,,,,,,,,,,,,,
AMH-MI1,定位,RT,192.168.103.103,,4,9,16,,,345,,,,
AMH-MI2,定位,RT,192.168.103.107,,10,11,20,,,345,,,,
AMH-MI1,定位,RT,192.168.103.103,,4,905,17,-1,-1,61500,,,,
AMH-MI2,定位,RT,192.168.103.107,,10,911,21,-1,-1,59500,,,,
,,,,,,,,,,,,,,
AMH-ML5-1,定位,RT,192.168.103.108,,-1,,2,,,,,,,
AMH-ML5-2,定位,RT,192.168.103.109,,-1,,3,,,,,,,
AMH-ML5-1,定位,RT,192.168.103.108,,-1,,2,,,,,,,
AMH-ML5-2,定位,RT,192.168.103.109,,-1,,3,,,,,,,
,,,,,,,,,,,,,,
CI,定位,RT,192.168.103.111,,-1,,5,,,,,,,
CI-IN,定位,RT,192.168.103.117,,-1,,5,,,,,,,
CI-OUT,定位,RT,192.168.103.111,,-1,,6,,,,,,,
,,,,,,,,,,,,,,
AMH-SBSH2,移栽,SISO,192.168.103.116,,0,,10,,123,234,,,,
AMH-SBDH2-1,移栽,SISO,192.168.103.101,,1,,13,,123,234,,,,
AMH-SBDH2-2,移栽,SISO,192.168.103.102,,2,,14,,123,234,,,,
AMH-SBSH1,移栽,SISO,192.168.103.114,,3,,8,,123,234,,,,
AMH-SBDH3-1,移栽,SISO,192.168.103.112,,6,,6,,123,234,,,,
AMH-SBDH3-2,移栽,SISO,192.168.103.113,,7,,7,,123,234,,,,
AMH-SBDH1-1,移栽,SISO,192.168.103.104,,8,,17,,123,234,,,,
AMH-SBDH1-2,移栽,SISO,192.168.103.105,,9,,18,,123,234,,,,
AMH-SBSH2,移栽,SISO,192.168.103.116,,0,-1,11,-1,50600,74000,,,,
AMH-SBDH2-1,移栽,SISO,192.168.103.101,,1,-1,14,-1,58000,74523,,,,
AMH-SBDH2-2,移栽,SISO,192.168.103.102,,2,-1,15,-1,63500,85000,,,,
AMH-SBSH1,移栽,SISO,192.168.103.114,,3,-1,9,-1,57564,75500,,-1,-1,-1
AMH-SBDH3-1,移栽,SISO,192.168.103.112,,6,-1,7,-1,74000,125100,,,,
AMH-SBDH3-2,移栽,SISO,192.168.103.113,,7,-1,8,-1,48142,70000,,,,
AMH-SBDH1-1,移栽,SISO,192.168.103.104,,8,-1,18,-1,54973,79000,,-1,-1,-1
AMH-SBDH1-2,移栽,SISO,192.168.103.105,,9,-1,19,-1,64520,74679,,,,
......@@ -82,10 +82,7 @@
</ItemGroup>
<ItemGroup>
<None Include="app.config" />
<None Include="Config\DeviceGroup.csv">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<Content Include="Config\CIPostion.csv">
<Content Include="Config\DeviceGroup.csv">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Config\MI2Postion.csv">
......
......@@ -49,27 +49,7 @@ namespace OnlineStore.LoadCSVLibrary
/// <summary>
/// DI,0,ML5出入口安全检测,ML5_DoorSafeCheck,149,,X149,,,,,,,,,,
/// </summary>
public static string ML5_DoorSafeCheck = "ML5_DoorSafeCheck";
/// <summary>
/// DI,0,CI点料完成,CI_Count_Finished,97,,X97,,,,,,,,,,
/// </summary>
public static string CI_Count_Finished = "CI_Count_Finished";
/// <summary>
/// DI,0,CI物料放置区门开启按钮,CI_Cache_Door_Open,98,,X98,,,,,,,,,,
/// </summary>
public static string CI_Cache_Door_Open = "CI_Cache_Door_Open";
/// <summary>
/// DI,0,CI物料放置区门关闭按钮,CI_Cache_Door_Close,99,,X99,,,,,,,,,,
/// </summary>
public static string CI_Cache_Door_Close = "CI_Cache_Door_Close";
/// <summary>
/// DI,0,CI物料放置区门关闭检测,CI_Cache_Door_Close_Check,100,,X100,,,,,,,,,,
/// </summary>
public static string CI_Cache_Door_Close_Check = "CI_Cache_Door_Close_Check";
/// <summary>
/// DI,0,CI物料检测,CI_Cache_Reel_Check,101,,X101,,,,,,,,,,
/// </summary>
public static string CI_Cache_Reel_Check = "CI_Cache_Reel_Check";
public static string ML5_DoorSafeCheck = "ML5_DoorSafeCheck";
/// <summary>
/// DO,0,LS3-2顶升上升端,Ls_B_Location_Up,116,HY3,X116,,,,,,,,,,
/// </summary>
......@@ -207,30 +187,6 @@ namespace OnlineStore.LoadCSVLibrary
/// </summary>
public static string MI_Robot_Light = "MI_Robot_Light";
/// <summary>
/// DO,0,CI物料放置区门锁打开,CI_Cache_Door_UNLock,96,,Y96,,,,,,,,,,
/// </summary>
public static string CI_Cache_Door_UNLock = "CI_Cache_Door_UNLock";
/// <summary>
/// DO,0,ROBOT-CI吸盘吸料,CI_sa,97,,Y97,,,,,,,,,,
/// </summary>
public static string CI_sa = "CI_sa";
/// <summary>
/// DO,0,CI物料放置区照明开启,CI_Cache_Light,98,,Y98,,,,,,,,,,
/// </summary>
public static string CI_Cache_Light = "CI_Cache_Light";
/// <summary>
/// DO,0,CI启动,CI_Start,99,,Y99,,,,,,,,,,
/// </summary>
public static string CI_Start = "CI_Start";
/// <summary>
/// DO,0,CI物料放置区门可开启指示灯,CI_Cache_Door_StandbyLED,100,,Y100,,,,,,,,,,
/// </summary>
public static string CI_Cache_Door_StandbyLED = "CI_Cache_Door_StandbyLED";
/// <summary>
/// DO,0,CI物料放置区物料NG指示灯,CI_Cache_Door_NGLED,101,,Y101,,,,,,,,,,
/// </summary>
public static string CI_Cache_Door_NGLED = "CI_Cache_Door_NGLED";
/// <summary>
/// DO,0,LS3横移电机反转,Ls_A_LineRwd,113,HY3,Y113,,,,,,,,,,
/// </summary>
public static string Ls_A_LineRwd = "Ls_A_LineRwd";
......
......@@ -77,8 +77,8 @@ namespace TheMachine
DeviceControl<TrayStopControl> ml = new DeviceControl<TrayStopControl>();
DeviceControl<TrayStopControl> mi = new DeviceControl<TrayStopControl>();
DeviceControl<TrayStopControl> ci = new DeviceControl<TrayStopControl>();
CIDebugControl cidebug = new CIDebugControl();
AxisControl ac = new AxisControl();
AxisControl ac = new AxisControl();
SettingControl sc = new SettingControl();
MycronicControl mc = new MycronicControl();
......@@ -184,9 +184,7 @@ namespace TheMachine
AddForm("tab_traystopMI", "MT-MI", mi);
AddForm("tab_traystopCI", "MT-CI", ci);
AddForm("tab_traysetting", crc.GetString("Form1_tabc_tab_setting__SettingControl_tabControl1_tabPage1_Text","治具设置"), sc);
AddForm("tab_other", "MI", mc);
ci.AddForm("tab_ciconfig", "CI-Test", cidebug);
AddForm("tab_other", "MI", mc);
crc.LanguageProcess(this);
}
......
......@@ -100,12 +100,6 @@
<Compile Include="DeviceControl.Designer.cs">
<DependentUpon>DeviceControl.cs</DependentUpon>
</Compile>
<Compile Include="device\CIDebugControl.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="device\CIDebugControl.Designer.cs">
<DependentUpon>CIDebugControl.cs</DependentUpon>
</Compile>
<Compile Include="device\HYControl.cs">
<SubType>UserControl</SubType>
</Compile>
......@@ -239,9 +233,6 @@
<EmbeddedResource Include="DeviceControl.resx">
<DependentUpon>DeviceControl.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="device\CIDebugControl.resx">
<DependentUpon>CIDebugControl.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="device\HYControl.resx">
<DependentUpon>HYControl.cs</DependentUpon>
</EmbeddedResource>
......
......@@ -200,8 +200,6 @@ namespace TheMachine
return RobotManage.Robot_MI1;
else if (_aCStorePosition.PositionNum.StartsWith("MI2"))
return RobotManage.Robot_MI2;
else if (_aCStorePosition.PositionNum.StartsWith("CI"))
return RobotManage.Robot_CI;
return RobotManage.Robot_MI1;
}
......
......@@ -42,8 +42,6 @@ namespace TheMachine.device.Other
this.uc_boxdebug1 = new TheMachine.uc_boxdebug();
this.tabPage2 = new System.Windows.Forms.TabPage();
this.uc_boxdebug2 = new TheMachine.uc_boxdebug();
this.tabPage3 = new System.Windows.Forms.TabPage();
this.uc_boxdebug3 = new TheMachine.uc_boxdebug();
this.tabPage5 = new System.Windows.Forms.TabPage();
this.groupBox5 = new System.Windows.Forms.GroupBox();
this.flowLayoutPanel2 = new System.Windows.Forms.FlowLayoutPanel();
......@@ -53,22 +51,18 @@ namespace TheMachine.device.Other
this.ucurRobot1 = new URRobot.UCURRobot();
this.groupBox3 = new System.Windows.Forms.GroupBox();
this.ucurRobot2 = new URRobot.UCURRobot();
this.groupBox4 = new System.Windows.Forms.GroupBox();
this.ucurRobot3 = new URRobot.UCURRobot();
this.timer1 = new System.Windows.Forms.Timer(this.components);
this.tabControl1.SuspendLayout();
this.tabPage4.SuspendLayout();
this.groupBox2.SuspendLayout();
this.tabPage1.SuspendLayout();
this.tabPage2.SuspendLayout();
this.tabPage3.SuspendLayout();
this.tabPage5.SuspendLayout();
this.groupBox5.SuspendLayout();
this.panel1.SuspendLayout();
this.flowLayoutPanel1.SuspendLayout();
this.groupBox1.SuspendLayout();
this.groupBox3.SuspendLayout();
this.groupBox4.SuspendLayout();
this.SuspendLayout();
//
// tabControl1
......@@ -76,7 +70,6 @@ namespace TheMachine.device.Other
this.tabControl1.Controls.Add(this.tabPage4);
this.tabControl1.Controls.Add(this.tabPage1);
this.tabControl1.Controls.Add(this.tabPage2);
this.tabControl1.Controls.Add(this.tabPage3);
this.tabControl1.Controls.Add(this.tabPage5);
this.tabControl1.Dock = System.Windows.Forms.DockStyle.Fill;
this.tabControl1.Location = new System.Drawing.Point(0, 0);
......@@ -204,27 +197,6 @@ namespace TheMachine.device.Other
this.uc_boxdebug2.Size = new System.Drawing.Size(986, 542);
this.uc_boxdebug2.TabIndex = 0;
//
// tabPage3
//
this.tabPage3.Controls.Add(this.uc_boxdebug3);
this.tabPage3.Location = new System.Drawing.Point(4, 22);
this.tabPage3.Name = "tabPage3";
this.tabPage3.Padding = new System.Windows.Forms.Padding(3);
this.tabPage3.Size = new System.Drawing.Size(992, 548);
this.tabPage3.TabIndex = 2;
this.tabPage3.Text = "CI 点位";
this.tabPage3.UseVisualStyleBackColor = true;
//
// uc_boxdebug3
//
this.uc_boxdebug3.Config = null;
this.uc_boxdebug3.Dock = System.Windows.Forms.DockStyle.Fill;
this.uc_boxdebug3.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.uc_boxdebug3.Location = new System.Drawing.Point(3, 3);
this.uc_boxdebug3.Name = "uc_boxdebug3";
this.uc_boxdebug3.Size = new System.Drawing.Size(986, 542);
this.uc_boxdebug3.TabIndex = 0;
//
// tabPage5
//
this.tabPage5.Controls.Add(this.groupBox5);
......@@ -274,7 +246,6 @@ namespace TheMachine.device.Other
//
this.flowLayoutPanel1.Controls.Add(this.groupBox1);
this.flowLayoutPanel1.Controls.Add(this.groupBox3);
this.flowLayoutPanel1.Controls.Add(this.groupBox4);
this.flowLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
this.flowLayoutPanel1.Location = new System.Drawing.Point(0, 0);
this.flowLayoutPanel1.Margin = new System.Windows.Forms.Padding(2);
......@@ -322,26 +293,6 @@ namespace TheMachine.device.Other
this.ucurRobot2.Size = new System.Drawing.Size(306, 197);
this.ucurRobot2.TabIndex = 17;
//
// groupBox4
//
this.groupBox4.Controls.Add(this.ucurRobot3);
this.groupBox4.Location = new System.Drawing.Point(630, 2);
this.groupBox4.Margin = new System.Windows.Forms.Padding(2);
this.groupBox4.Name = "groupBox4";
this.groupBox4.Padding = new System.Windows.Forms.Padding(2);
this.groupBox4.Size = new System.Drawing.Size(310, 215);
this.groupBox4.TabIndex = 2;
this.groupBox4.TabStop = false;
this.groupBox4.Text = "CI";
//
// ucurRobot3
//
this.ucurRobot3.Dock = System.Windows.Forms.DockStyle.Fill;
this.ucurRobot3.Location = new System.Drawing.Point(2, 16);
this.ucurRobot3.Name = "ucurRobot3";
this.ucurRobot3.Size = new System.Drawing.Size(306, 197);
this.ucurRobot3.TabIndex = 17;
//
// timer1
//
this.timer1.Enabled = true;
......@@ -361,14 +312,12 @@ namespace TheMachine.device.Other
this.groupBox2.ResumeLayout(false);
this.tabPage1.ResumeLayout(false);
this.tabPage2.ResumeLayout(false);
this.tabPage3.ResumeLayout(false);
this.tabPage5.ResumeLayout(false);
this.groupBox5.ResumeLayout(false);
this.panel1.ResumeLayout(false);
this.flowLayoutPanel1.ResumeLayout(false);
this.groupBox1.ResumeLayout(false);
this.groupBox3.ResumeLayout(false);
this.groupBox4.ResumeLayout(false);
this.ResumeLayout(false);
}
......@@ -379,9 +328,7 @@ namespace TheMachine.device.Other
private System.Windows.Forms.TabPage tabPage1;
private System.Windows.Forms.TabPage tabPage2;
private uc_boxdebug uc_boxdebug1;
private System.Windows.Forms.TabPage tabPage3;
private uc_boxdebug uc_boxdebug2;
private uc_boxdebug uc_boxdebug3;
private System.Windows.Forms.TabPage tabPage4;
private System.Windows.Forms.Button btn_manualout;
private System.Windows.Forms.TextBox txt_reelid;
......@@ -392,8 +339,6 @@ namespace TheMachine.device.Other
private URRobot.UCURRobot ucurRobot1;
private System.Windows.Forms.GroupBox groupBox3;
private URRobot.UCURRobot ucurRobot2;
private System.Windows.Forms.GroupBox groupBox4;
private URRobot.UCURRobot ucurRobot3;
private System.Windows.Forms.GroupBox groupBox2;
private DoubleBufferListView stateView;
private System.Windows.Forms.Timer timer1;
......
......@@ -23,11 +23,9 @@ namespace TheMachine.device.Other
{
uc_boxdebug1.Init(RobotManage.MI1Postion);
uc_boxdebug2.Init(RobotManage.MI2Postion);
uc_boxdebug3.Init(RobotManage.CIPostion);
ucurRobot1.Init(RobotManage.Robot_MI1);
ucurRobot2.Init(RobotManage.Robot_MI2);
ucurRobot3.Init(RobotManage.Robot_CI);
#region 状态信息listview初始化
stateView.View = View.Details;
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!