Commit 907b095b LN

服务器通信功能修改

1 个父辈 67dc99ba
...@@ -171,11 +171,14 @@ namespace OnlineStore.ACSquareStore ...@@ -171,11 +171,14 @@ namespace OnlineStore.ACSquareStore
private void btnOpenAxisBreak_Click(object sender, EventArgs e) private void btnOpenAxisBreak_Click(object sender, EventArgs e)
{ {
LogUtil.info("点击:" + btnRShelfForward.Text);
StoreManager.Store.ShelfForward(2); StoreManager.Store.ShelfForward(2);
} }
private void btnCloseAxisBreak_Click(object sender, EventArgs e) private void btnCloseAxisBreak_Click(object sender, EventArgs e)
{ {
LogUtil.info("点击:" + btnRShelfBack.Text);
StoreManager.Store.ShelfBack(2); StoreManager.Store.ShelfBack(2);
} }
...@@ -230,48 +233,48 @@ namespace OnlineStore.ACSquareStore ...@@ -230,48 +233,48 @@ namespace OnlineStore.ACSquareStore
private void btnOpenDoor_Click(object sender, EventArgs e) private void btnOpenDoor_Click(object sender, EventArgs e)
{ {
LogUtil.info("点击:" + btnOpenLDoor.Text);
// StoreManager.Store.OpenDoor(1); // StoreManager.Store.OpenDoor(1);
IOManager.IOMove(IO_Type.LeftDoor_Close, IO_VALUE.LOW); IOManager.IOMove(IO_Type.LeftDoor_Close, IO_VALUE.LOW);
} }
private void btnCloseDoor_Click(object sender, EventArgs e) private void btnCloseDoor_Click(object sender, EventArgs e)
{ {
LogUtil.info("点击:" + btnCloseLDoor.Text);
// StoreManager.Store.CloseDoor(1); // StoreManager.Store.CloseDoor(1);
IOManager.IOMove(IO_Type.LeftDoor_Close, IO_VALUE.HIGH); IOManager.IOMove(IO_Type.LeftDoor_Close, IO_VALUE.HIGH);
} }
private void btnOpenRDoor_Click(object sender, EventArgs e) private void btnOpenRDoor_Click(object sender, EventArgs e)
{ {
LogUtil.info("点击:" + btnOpenRDoor.Text);
// StoreManager.Store.OpenDoor(2); // StoreManager.Store.OpenDoor(2);
IOManager.IOMove(IO_Type.RightDoor_Close, IO_VALUE.LOW); IOManager.IOMove(IO_Type.RightDoor_Close, IO_VALUE.LOW);
} }
private void btnCloseRDoor_Click(object sender, EventArgs e) private void btnCloseRDoor_Click(object sender, EventArgs e)
{ {
LogUtil.info("点击:" + btnCloseRDoor.Text);
// StoreManager.Store.OpenDoor(2); // StoreManager.Store.OpenDoor(2);
IOManager.IOMove(IO_Type.RightDoor_Close, IO_VALUE.HIGH); IOManager.IOMove(IO_Type.RightDoor_Close, IO_VALUE.HIGH);
} }
private void btnLShelfForward_Click(object sender, EventArgs e) private void btnLShelfForward_Click(object sender, EventArgs e)
{ {
LogUtil.info("点击:" + btnLShelfForward.Text);
StoreManager.Store.ShelfForward(1); StoreManager.Store.ShelfForward(1);
} }
private void btnLShelfBack_Click(object sender, EventArgs e) private void btnLShelfBack_Click(object sender, EventArgs e)
{ {
LogUtil.info("点击:" + btnLShelfBack.Text);
StoreManager.Store.ShelfBack(1); StoreManager.Store.ShelfBack(1);
} }
private void btnOpenB_Click(object sender, EventArgs e)
{
IOManager.IOMove(IO_Type.Axis_Brake, IO_VALUE.HIGH);
}
private void btnCloseB_Click(object sender, EventArgs e)
{
IOManager.IOMove(IO_Type.Axis_Brake, IO_VALUE.LOW);
}
private void btnLShelfStop_Click(object sender, EventArgs e) private void btnLShelfStop_Click(object sender, EventArgs e)
{ {
LogUtil.info("点击:" + btnLShelfStop.Text);
StoreManager.Store.LeftShlefMove.Stop(); StoreManager.Store.LeftShlefMove.Stop();
} }
private void btnRShlefStop_Click(object sender, EventArgs e) private void btnRShlefStop_Click(object sender, EventArgs e)
{ {
LogUtil.info("点击:" + btnRShlefStop.Text);
StoreManager.Store.RightShelfMove.Stop(); StoreManager.Store.RightShelfMove.Stop();
} }
} }
......
...@@ -61,4 +61,11 @@ ...@@ -61,4 +61,11 @@
修改问题: 修改问题:
1.界面进出轴P3显示错误。 1.界面进出轴P3显示错误。
2.入库时:前后轴先移动到库位,再移动升降轴。 2.入库时:前后轴先移动到库位,再移动升降轴。
3.出库去库位时:前后轴先移动到库位,再移动升降轴。
\ No newline at end of file \ No newline at end of file
3.出库去库位时:前后轴先移动到库位,再移动升降轴。
20200917
方仓的字段:
1 入库时的字段: door: 1为1号仓门入库 2为2号仓门入库
2 出库放到仓门口算出库完成,完成时发送 door=1为1号仓门 door=2为2号仓门
3 仓门状态上传: 字段为door1和doo2, 状态:opened为已打开, closed为已关闭, opening为打开中, closing为关闭中
4 开关门操作: 开门openDoor=1为1号仓门打开, =2为2号仓门打开, closeDoor=1为1号仓门关闭,=2为2号仓门关闭
\ No newline at end of file \ No newline at end of file
...@@ -224,5 +224,14 @@ namespace OnlineStore.Common ...@@ -224,5 +224,14 @@ namespace OnlineStore.Common
public static string rfidLoc = "rfidLoc"; public static string rfidLoc = "rfidLoc";
public static string barcode = "barcode"; public static string barcode = "barcode";
/// <summary>
/// 1 入库时的字段: door: 1为1号仓门入库 2为2号仓门入库
/// 2 出库放到仓门口算出库完成,完成时发送 door = 1为1号仓门 door = 2为2号仓门
/// </summary>
public static string door = "door";
public static string door1 = "door1";
public static string door2 = "door2";
public static string openDoor= "openDoor";
public static string closeDoor= "closeDoor";
} }
} }
...@@ -32,20 +32,20 @@ namespace OnlineStore.Common ...@@ -32,20 +32,20 @@ namespace OnlineStore.Common
return; return;
} }
log.Info(log.Logger.Name + " - " + msg); log.Info( msg);
AddToBox(msg, Color.Black); AddToBox(msg, Color.Black);
//clear(); //clear();
} }
public static void info(ILog log,string msg, Color color) public static void info(ILog log,string msg, Color color)
{ {
log.Info(log.Logger.Name + " - " + msg); log.Info( msg);
AddToBox(msg, color); AddToBox(msg, color);
} }
public static void debug(ILog log, string msg, Color color) public static void debug(ILog log, string msg, Color color)
{ {
log.Debug(log.Logger.Name + " - " + msg); log.Debug( msg);
if (debug_opened) if (debug_opened)
{ {
AddToBox(msg, color); AddToBox(msg, color);
...@@ -53,7 +53,7 @@ namespace OnlineStore.Common ...@@ -53,7 +53,7 @@ namespace OnlineStore.Common
} }
public static void debug(ILog log, string msg) public static void debug(ILog log, string msg)
{ {
log.Debug(log.Logger.Name + " - " + msg); log.Debug( msg);
if (debug_opened) if (debug_opened)
{ {
AddToBox(msg, Color.Gray); AddToBox(msg, Color.Gray);
...@@ -93,7 +93,7 @@ namespace OnlineStore.Common ...@@ -93,7 +93,7 @@ namespace OnlineStore.Common
} }
public static void error(ILog log, string errorMsg) public static void error(ILog log, string errorMsg)
{ {
log.Error(log.Logger.Name + " - " + errorMsg); log.Error( errorMsg);
AddToBox(errorMsg, Color.Red); AddToBox(errorMsg, Color.Red);
} }
private static void AddToBox(string msg, Color color) private static void AddToBox(string msg, Color color)
......
...@@ -27,6 +27,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -27,6 +27,7 @@ namespace OnlineStore.DeviceLibrary
/// 记录最后一次 出库的posID,出库完成发送给服务器之后清除 /// 记录最后一次 出库的posID,出库完成发送给服务器之后清除
/// </summary> /// </summary>
public string lastPosId = ""; public string lastPosId = "";
public int lastDoor = 0;
public StoreStatus lastPosIdStatus = StoreStatus.StoreOnline; public StoreStatus lastPosIdStatus = StoreStatus.StoreOnline;
/// <summary> /// <summary>
/// 轴列表 /// 轴列表
...@@ -1171,8 +1172,9 @@ namespace OnlineStore.DeviceLibrary ...@@ -1171,8 +1172,9 @@ namespace OnlineStore.DeviceLibrary
//服务器返回时有:posId库位编号,plateW:料盘宽度,plateH:料盘高度, //服务器返回时有:posId库位编号,plateW:料盘宽度,plateH:料盘高度,
string posId = data[ParamDefine.posId]; string posId = data[ParamDefine.posId];
string plateW = data[ParamDefine.plateW]; string plateW = data[ParamDefine.plateW];
string plateH = data[ParamDefine.plateH]; string plateH = data[ParamDefine.plateH];
InOutPosInfo inoutInfo = new InOutPosInfo(message, posId, plateH, plateW); int door = Convert.ToInt32(data[ParamDefine.door]);
InOutPosInfo inoutInfo = new InOutPosInfo(message, posId, plateH, plateW,door);
//根据发送的posId获取位置列表 //根据发送的posId获取位置列表
ACSquareSPosition position = CSVPositionReader<ACSquareSPosition>.GetPositon(posId); ACSquareSPosition position = CSVPositionReader<ACSquareSPosition>.GetPositon(posId);
...@@ -1180,7 +1182,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -1180,7 +1182,7 @@ namespace OnlineStore.DeviceLibrary
{ //出入库没有找到服务器发送的库位,需要打印日志方便查询原因 { //出入库没有找到服务器发送的库位,需要打印日志方便查询原因
WarnMsg = "入库未找到库位:【" + inoutInfo.ToStr() + "】 "; WarnMsg = "入库未找到库位:【" + inoutInfo.ToStr() + "】 ";
LogUtil.error(LOGGER, "收到服务器入库命令:入库未找到库位:【" + inoutInfo.ToStr() + "】"); LogUtil.error(LOGGER, "收到服务器入库命令:入库未找到库位:【" + inoutInfo.ToStr() + "】");
LogUtil.info(LOGGER, "收到服务器入库命令:入库未找到库位:【" + inoutInfo.ToStr() + "】"); LogUtil.info(LOGGER, "收到服务器入库命令:入库未找到库位:【" + inoutInfo.ToStr() + "】");
return; return;
} }
//TODO:判断BOX是否处于可以入库状态,如果调试或急停中,需要返回给服务器; //TODO:判断BOX是否处于可以入库状态,如果调试或急停中,需要返回给服务器;
...@@ -1503,15 +1505,25 @@ namespace OnlineStore.DeviceLibrary ...@@ -1503,15 +1505,25 @@ namespace OnlineStore.DeviceLibrary
} }
else if (storeStatus.Equals(StoreStatus.OutStoreBoxEnd) || storeStatus.Equals(StoreStatus.InStoreEnd)) else if (storeStatus.Equals(StoreStatus.OutStoreBoxEnd) || storeStatus.Equals(StoreStatus.InStoreEnd))
{ {
boxStatus.data.Add(ParamDefine.posId, lastPosId); boxStatus.data.Add(ParamDefine.posId, lastPosId);
if (lastPosIdStatus.Equals(StoreStatus.OutStoreBoxEnd) || lastPosIdStatus.Equals(StoreStatus.InStoreEnd))
{
boxStatus.data.Add(ParamDefine.door, lastDoor.ToString());
}
} }
else if (!lastPosId.Equals("")) else if (!lastPosId.Equals(""))
{ {
boxStatus.data.Add(ParamDefine.posId, lastPosId); boxStatus.data.Add(ParamDefine.posId, lastPosId);
boxStatus.status = (int)lastPosIdStatus; boxStatus.status = (int)lastPosIdStatus;
string doorP = "";
if (lastPosIdStatus.Equals(StoreStatus.OutStoreBoxEnd) || lastPosIdStatus.Equals(StoreStatus.InStoreEnd))
{
boxStatus.data.Add(ParamDefine.door, lastDoor.ToString());
doorP = "door【" + lastDoor + "】";
}
if (lastPosId != "") if (lastPosId != "")
{ {
LogUtil.info(LOGGER, "给服务器发送出入库完成消息:" + StoreName + ",status【" + lastPosIdStatus + "】posId【" + lastPosId + "】"); LogUtil.info(LOGGER, "给服务器发送出入库完成消息:" + StoreName + ",status【" + lastPosIdStatus + "】posId【" + lastPosId + "】" + doorP);
} }
lastPosId = ""; lastPosId = "";
} }
...@@ -1525,7 +1537,9 @@ namespace OnlineStore.DeviceLibrary ...@@ -1525,7 +1537,9 @@ namespace OnlineStore.DeviceLibrary
// boxStatus.status = (int)StoreStatus.InStoreExecute; // boxStatus.status = (int)StoreStatus.InStoreExecute;
//} //}
} }
//3 仓门状态上传: 字段为door1和doo2, 状态: opened为已打开, closed为已关闭, opening为打开中, closing为关闭中
boxStatus.data.Add(ParamDefine.door1, GetDoorStatus(1));
boxStatus.data.Add(ParamDefine.door2, GetDoorStatus(2));
//温湿度 //温湿度
//ASTemperateParam param = HumitureServer.GetTemperateParam(Config.Temperate_Serveraddress); //ASTemperateParam param = HumitureServer.GetTemperateParam(Config.Temperate_Serveraddress);
...@@ -1559,26 +1573,67 @@ namespace OnlineStore.DeviceLibrary ...@@ -1559,26 +1573,67 @@ namespace OnlineStore.DeviceLibrary
Operation resultOperation = HttpHelper.Post(StoreManager.GetPostApi(server), lineOperation, false); Operation resultOperation = HttpHelper.Post(StoreManager.GetPostApi(server), lineOperation, false);
//发送状态信息到服务器 //发送状态信息到服务器
if (resultOperation == null || (resultOperation.op <= 0)) if (resultOperation == null )
{ {
//判断服务端是否返回出库操作 //判断服务端是否返回出库操作
return; return;
} }
if (resultOperation.op.Equals(1)) if (resultOperation.op > 0)
{
ReviceInStoreProcess("", resultOperation);
}
else if (resultOperation.op.Equals(2))
{
ReviceOutStoreProcess(resultOperation);
}
else if (resultOperation.op.Equals(5))
{ {
ProcessHumidityCMD(resultOperation); if (resultOperation.op.Equals(1))
{
ReviceInStoreProcess("", resultOperation);
}
else if (resultOperation.op.Equals(2))
{
ReviceOutStoreProcess(resultOperation);
}
else if (resultOperation.op.Equals(5))
{
ProcessHumidityCMD(resultOperation);
}
else
{
LogUtil.error("收到服务器命令:op=" + resultOperation.op + ",未找到对应处理");
}
} }
else else if (resultOperation.data != null)
{ {
LogUtil.error("收到服务器命令:op=" + resultOperation.op + ",未找到对应处理"); //4 开关门操作: 开门openDoor = 1为1号仓门打开, = 2为2号仓门打开, closeDoor = 1为1号仓门关闭,= 2为2号仓门关闭
bool result = false;
Dictionary<string, string> dataMap = resultOperation.data;
if (dataMap.ContainsKey(ParamDefine.openDoor))
{
if (dataMap[ParamDefine.openDoor].Equals(1))
{
LogUtil.info(StoreName + "收到服务器命令:openDoor=1 ");
result= OpenDoor(1);
}
else if (dataMap[ParamDefine.openDoor].Equals(2))
{
LogUtil.info(StoreName + "收到服务器命令:openDoor=2");
result = OpenDoor(2);
}
}
else if (dataMap.ContainsKey(ParamDefine.closeDoor))
{
if (dataMap[ParamDefine.closeDoor].Equals(1))
{
LogUtil.info(StoreName + "收到服务器命令:closeDoor=1");
result =CloseDoor(1);
}
else if (dataMap[ParamDefine.closeDoor].Equals(2))
{
LogUtil.info(StoreName + "收到服务器命令:closeDoor=2");
result = CloseDoor(2);
}
}
if (!result)
{
LogUtil.info(StoreName + "收到服务器命令:执行失败:" + result);
}
} }
TimeSpan span = DateTime.Now - time; TimeSpan span = DateTime.Now - time;
if (span.TotalMilliseconds > 10) if (span.TotalMilliseconds > 10)
......
...@@ -171,31 +171,31 @@ namespace OnlineStore.DeviceLibrary ...@@ -171,31 +171,31 @@ namespace OnlineStore.DeviceLibrary
/// <summary> /// <summary>
///出库:叉子先运动到P1 ///出库:叉子先运动到P1
/// </summary> /// </summary>
SO_01_DeviceBack = 101, SO_01_InoutToP1 = 101,
/// <summary> /// <summary>
/// 出库:前后轴至P2(库位点),托架后退) /// 出库:前后轴至P2(库位点),托架后退)
/// </summary> /// </summary>
SO_02_ToBagPosition = 102, SO_02_MiddleToP2 = 102,
/// <summary> /// <summary>
/// 出库:升降轴至P5(库位出库前点) /// 出库:升降轴至P5(库位出库前点)
/// </summary> /// </summary>
SO_03_UpdownMove= 103, SO_03_UpdownToP5= 103,
/// <summary> /// <summary>
/// 出库:叉子进入库位中, 轴3( 叉子) 至P3(库位取放料点) /// 出库:叉子进入库位中, 轴3( 叉子) 至P3(库位取放料点)
/// </summary> /// </summary>
SO_04_DeviceToBag = 104, SO_04_InoutToP3 = 104,
/// <summary> /// <summary>
///出库: 库位的物品放入叉子上,轴2( 上下) 至P6( 库位出料缓冲点),轴4( 压紧) 至P2(压紧点) ///出库: 库位的物品放入叉子上,轴2( 上下) 至P6( 库位出料缓冲点),轴4( 压紧) 至P2(压紧点)
/// </summary> /// </summary>
SO_05_BagWareToDevice = 105, SO_05_GetWare = 105,
/// <summary> /// <summary>
///出库:叉子从 库位返回,轴3( 叉子) 至P1( 待机点) ///出库:叉子从 库位返回,轴3( 叉子) 至P1( 待机点)
/// </summary> /// </summary>
SO_06_BagDeviceBack = 106, SO_06_InoutToP1 = 106,
/// <summary> /// <summary>
/// 出库:检测叉子是否有料 /// 出库:检测叉子是否有料
...@@ -212,32 +212,36 @@ namespace OnlineStore.DeviceLibrary ...@@ -212,32 +212,36 @@ namespace OnlineStore.DeviceLibrary
/// </summary> /// </summary>
SO_09_ToDoorPosition = 109, SO_09_ToDoorPosition = 109,
/// <summary> /// <summary>
/// 等待门口无料盘 /// 出库:等待门口无料盘
/// </summary> /// </summary>
SO_10_WaitNoTray = 110, SO_10_WaitNoTray = 110,
/// <summary>
/// 出库:托架后退
/// </summary>
SO_11_ShelfBack = 111,
/// <summary> /// <summary>
/// 出库:叉子进出料口,,轴3( 叉子) 至P2( 进料口取料点) /// 出库:叉子进出料口,,轴3( 叉子) 至P2( 进料口取料点)
/// /// </summary> /// /// </summary>
SO_11_DeviceToDoor = 111, SO_12_InoutToP2 = 112,
/// <summary> /// <summary>
/// 出库:把物品放下,,轴2( 上下) 至P8( 进料口出料缓冲点)轴4( 压紧) 至P1( 待机点) /// 出库:把物品放下,,轴2( 上下) 至P8( 进料口出料缓冲点)轴4( 压紧) 至P1( 待机点)
/// </summary> /// </summary>
SO_12_DevicePutWare = 112, SO_13_PutWare = 113,
/// <summary> /// <summary>
/// 出库:叉子从出料口返回,,轴3( 叉子) 动作至P1( 待机点) /// 出库:叉子从出料口返回,,轴3( 叉子) 动作至P1( 待机点)
/// </summary> /// </summary>
SO_13_DeviceOutFromDoor = 113, SO_14_InoutToP1 = 114,
/// <summary> /// <summary>
/// 出库:判断物料信号 /// 出库:判断物料信号
/// </summary> /// </summary>
SO_14_CheckShelfDI = 114, SO_15_CheckShelfDI = 115,
/// <summary> /// <summary>
/// 出库:升降轴返回,, 轴2至P1( 待机点) /// 出库:升降轴返回,, 轴2至P1( 待机点)
/// </summary> /// </summary>
SO_15_GoBack = 115, SO_16_GoBack = 116,
///// <summary> ///// <summary>
///// 等待拿走物品 ///// 等待拿走物品
///// </summary> ///// </summary>
...@@ -254,16 +258,16 @@ namespace OnlineStore.DeviceLibrary ...@@ -254,16 +258,16 @@ namespace OnlineStore.DeviceLibrary
/// <summary> /// <summary>
/// 入库。。进出轴(叉子)先返回P1,关闭门锁 /// 入库。。进出轴(叉子)先返回P1,关闭门锁
/// </summary> /// </summary>
SI_02_InOutAxisHome = 202, SI_02_InOutToP1 = 202,
/// <summary> /// <summary>
/// 入库。。所有轴先回到待机点,轴2、轴1 动作到P1, 托架后退 /// 入库。。所有轴先回到待机点,轴2、轴1 动作到P1, 托架后退
/// </summary> /// </summary>
SI_03_ReturnHome = 203, SI_03_ToP1 = 203,
/// <summary> /// <summary>
/// 入库。。叉子进入入料口,轴3( 叉子) 至P2( 进料口取料点) /// 入库。。叉子进入入料口,轴3( 叉子) 至P2( 进料口取料点)
/// </summary> /// </summary>
SI_05_DeviceToDoor = 205, SI_05_InoutToP2 = 205,
/// <summary> /// <summary>
/// 入库。。把物品放入叉子上,轴2( 上下) 至P7( 进料口取料缓冲点) /// 入库。。把物品放入叉子上,轴2( 上下) 至P7( 进料口取料缓冲点)
/// </summary> /// </summary>
...@@ -273,7 +277,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -273,7 +277,7 @@ namespace OnlineStore.DeviceLibrary
/// <summary> /// <summary>
/// 入库。。叉子 从入料口抽出,轴3( 叉子) 至P1( 待机点) /// 入库。。叉子 从入料口抽出,轴3( 叉子) 至P1( 待机点)
/// </summary> /// </summary>
SI_07_InoutBack = 207, SI_07_InOutToP1 = 207,
/// <summary> /// <summary>
/// 入库。。等待物料信号到位 /// 入库。。等待物料信号到位
...@@ -282,7 +286,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -282,7 +286,7 @@ namespace OnlineStore.DeviceLibrary
/// <summary> /// <summary>
/// 入库。。移动到库位点,前后轴 至P3(库位入库前点) /// 入库。。移动到库位点,前后轴 至P3(库位入库前点)
/// </summary> /// </summary>
SI_09_MoveToBag = 209, SI_09_MiddleToP3 = 209,
/// <summary> /// <summary>
/// 入库。。移动到库位点,升降轴到库位 /// 入库。。移动到库位点,升降轴到库位
/// </summary> /// </summary>
...@@ -291,15 +295,15 @@ namespace OnlineStore.DeviceLibrary ...@@ -291,15 +295,15 @@ namespace OnlineStore.DeviceLibrary
/// <summary> /// <summary>
/// 入库。。叉子进入库位中, 进出轴至P4(库位取放料点) /// 入库。。叉子进入库位中, 进出轴至P4(库位取放料点)
/// </summary> /// </summary>
SI_11_DeviceToBag = 211, SI_11_InoutToP4 = 211,
/// <summary> /// <summary>
/// 入库。。放下物品,轴2( 上下) 至P4( 库位入料缓冲点) /// 入库。。放下物品,轴2( 上下) 至P4( 库位入料缓冲点)
/// </summary> /// </summary>
SI_12_PutWareToBag = 212, SI_12_PutWare = 212,
/// <summary> /// <summary>
/// 入库。。叉子从库位中返回,轴3( 叉子) 动作至P1( 待机点) /// 入库。。叉子从库位中返回,轴3( 叉子) 动作至P1( 待机点)
/// </summary> /// </summary>
SI_13_DeviceBackFromBag = 213, SI_13_InoutToP1 = 213,
/// <summary> /// <summary>
/// 入库。判断料叉物料检测信号是否消失 /// 入库。判断料叉物料检测信号是否消失
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!