Commit 9e55ac2b 张东亮

手动出料串

1 个父辈 44964e7b
......@@ -155,6 +155,10 @@ namespace OnlineStore.Common
public static MyConfig<bool> Disable_LogWindow = true;
[MyConfigComment("屏蔽门安全检查")]
public static MyConfig<bool> Disable_DoorSafeCheck = false;
[MyConfigComment("屏蔽光栅检查")]
public static MyConfig<bool> Disable_SafetyLightCurtains = false;
[MyConfigComment("是否禁止单盘入库,禁用时服务端不显示单盘入库按钮")]
public static MyConfig<bool> Disable_SingleReelIn = false;
......
using OnlineStore.LoadCSVLibrary;
using OnlineStore.Common;
using OnlineStore.LoadCSVLibrary;
using System;
using System.Collections.Generic;
using System.Linq;
......@@ -20,15 +21,21 @@ namespace DeviceLibrary
{
List.Add(safetyDevice);
}
public static void PauseAll() {
public static void PauseAll()
{
List.ForEach(x => x.Pause());
}
public static void ResumeAll() {
public static void ResumeAll()
{
List.ForEach(x => x.Resume());
}
public static bool IsSafe() {
return IOManager.IOValue(IO_Type.SafetyLightCurtains).Equals(IO_VALUE.HIGH);
public static bool IsSafe()
{
if (Setting_Init.Disable_SafetyLightCurtains)
return true;
else
return IOManager.IOValue(IO_Type.SafetyLightCurtains).Equals(IO_VALUE.HIGH);
}
}
......
......@@ -115,7 +115,7 @@ namespace DeviceLibrary
Clamp_Axis.interference += Clamp_Axis_interference;
Crc_LanguageChangeEvent(null, EventArgs.Empty);
#endregion
Line = new LineRunMonitor($"料串进出机构", Config.DOList[IO_Type.LineRun].GetIOAddr(), Config.DOList[IO_Type.LineRev].GetIOAddr(),(int)(Setting_Init.StringDoor_InOut_Roller_Mode.Val));
Line = new LineRunMonitor($"料串进出机构", Config.DOList[IO_Type.LineRun].GetIOAddr(), Config.DOList[IO_Type.LineRev].GetIOAddr(), (int)(Setting_Init.StringDoor_InOut_Roller_Mode.Val));
SingleDoor = new CylinderManger($"单料门", IO_Type.NGDoor_Open, IO_Type.NGDoor_Close);
//检测翻板门是否为鸣志点击伺服控制
if (Config.FlipDoor_L_Axis == null && Config.FlipDoor_R_Axis == null)
......@@ -131,8 +131,17 @@ namespace DeviceLibrary
{
RobotManage.Config.DOList.Remove(IO_Type.ReelFlipDoor_Work);
RobotManage.Config.DOList.Remove(IO_Type.ReelFlipDoor_Home);
MotorFlipDoorB = new LiftMonitor(IO_Type.ReelFlipDoor_L_Home, IO_Type.ReelFlipDoor_L_Work, IO_Type.SafetyLightCurtains, null, new AxisBean(Config.FlipDoor_L_Axis, Name), Config.FlipDoorLength, Config.FlipDoorLength_speed, 0, "B翻转门");
MotorFlipDoorA = new LiftMonitor(IO_Type.ReelFlipDoor_R_Home, IO_Type.ReelFlipDoor_R_Work, IO_Type.SafetyLightCurtains, null, new AxisBean(Config.FlipDoor_R_Axis, Name), Config.FlipDoorLength, Config.FlipDoorLength_speed, 0, "A翻转门");
string safetyLightCurtains = "";
if (Setting_Init.Disable_SafetyLightCurtains)
{
safetyLightCurtains = IO_Type.SuddenStop_BTN;
}
else
{
safetyLightCurtains = IO_Type.SafetyLightCurtains;
}
MotorFlipDoorB = new LiftMonitor(IO_Type.ReelFlipDoor_L_Home, IO_Type.ReelFlipDoor_L_Work, safetyLightCurtains, null, new AxisBean(Config.FlipDoor_L_Axis, Name), Config.FlipDoorLength, Config.FlipDoorLength_speed, 0, "B翻转门");
MotorFlipDoorA = new LiftMonitor(IO_Type.ReelFlipDoor_R_Home, IO_Type.ReelFlipDoor_R_Work, safetyLightCurtains, null, new AxisBean(Config.FlipDoor_R_Axis, Name), Config.FlipDoorLength, Config.FlipDoorLength_speed, 0, "A翻转门");
MotorFlipDoorB.SlowAftPause = true;
MotorFlipDoorB.SlowAftPause = true;
LogUtil.info("加载翻板门类型为:步进");
......@@ -150,7 +159,7 @@ namespace DeviceLibrary
var sf = "";
if (Setting_Init.StringDoor_X08IsStringDoor_SafetyLightCurtains)
sf = IO_Type.AGV_OnPosition;
StringDoor = new LiftMonitor(IO_Type.StringDoor_Open, IO_Type.StringDoor_Close, sf, IO_Type.StringDoor_Axis_Break, new AxisBean(Config.StringDoor_Axis, Name), Config.StringDoorLength, Config.StringDoorLength_speed, 0, "折叠门",true);
StringDoor = new LiftMonitor(IO_Type.StringDoor_Open, IO_Type.StringDoor_Close, sf, IO_Type.StringDoor_Axis_Break, new AxisBean(Config.StringDoor_Axis, Name), Config.StringDoorLength, Config.StringDoorLength_speed, 0, "折叠门", true);
StringDoor.DownOverTimeMS = Setting_Init.StringDoor_DownOverTimeMS;
StringDoor.UpOverTimeMS = Setting_Init.StringDoor_UpOverTimeMS;
StringDoor.ResumeWaitTimeSec = 5;
......@@ -193,7 +202,8 @@ namespace DeviceLibrary
IOMonitor.RegisterIO(IO_Type.SuddenStop_BTN, Config, IO_VALUE.LOW, SuddenStop_BTN, 2500, 100);
IOMonitor.RegisterIO(IO_Type.Reset_BTN, Config, IO_VALUE.HIGH, Reset_BTN, 2500, 100);
IOMonitor.RegisterIO(IO_Type.AutoRun_Single, Config, IO_VALUE.HIGH, Run_BTN, 2500, 100);
IOMonitor.RegisterIO(IO_Type.SafetyLightCurtains, Config, IO_VALUE.LOW, DeviceSuddenStop, 1, 1);
if (!Setting_Init.Disable_SafetyLightCurtains)
IOMonitor.RegisterIO(IO_Type.SafetyLightCurtains, Config, IO_VALUE.LOW, DeviceSuddenStop, 1, 1);
LedProcessInit();
Setting_Init.CamTestReel_debug = false;
initAgv();
......@@ -284,7 +294,7 @@ namespace DeviceLibrary
ioMonitor();
AGVProcess();
StringProcess();
ClampProcess();
ClampProcess();
boxTransport.Process();
if (AutoInOutTest)
AutoInOutTestProcess();
......@@ -359,7 +369,7 @@ namespace DeviceLibrary
IOMove(IO_Type.LineRun, IO_VALUE.LOW);
IOMove(IO_Type.LineRev, IO_VALUE.LOW);
LedProcess(null);
CloseRgbLed();
CloseRgbLed();
SoundsController.StopPlay();
LogUtil.info("开始停止系统3.");
}
......@@ -594,7 +604,7 @@ namespace DeviceLibrary
}
break;
case MoveStep.H15_HomeReset:
if (IOValue(IO_Type.SafetyLightCurtains).Equals(IO_VALUE.LOW))
if (isSafetyLightCurtainsTrigget())
{
Msg.add(crc.GetString(L.wait_put_reel_into_ngdoor, "等待阻挡物离开光栅"), MsgLevel.warning);
}
......@@ -610,12 +620,12 @@ namespace DeviceLibrary
Msg.add(crc.GetString(L.x29_low_no_reel, "检测相机打开失败."), MsgLevel.alarm);
}
else
if (IOValue(IO_Type.SafetyLightCurtains).Equals(IO_VALUE.HIGH) && h.Value)
if (!isSafetyLightCurtainsTrigget() && h.Value)
{
ResetMoveInfo.log("NG口还是检测到料盘");
ResetMoveInfo.NextMoveStep(MoveStep.H14_HomeReset);
}
else if (IOValue(IO_Type.SafetyLightCurtains).Equals(IO_VALUE.HIGH) && !h.Value)
else if (!isSafetyLightCurtainsTrigget() && !h.Value)
{
if (RobotManage.NeedSensorPro())
{
......@@ -812,7 +822,7 @@ namespace DeviceLibrary
break;
case MoveStep.CH09_CloseDoor:
ResetMoveInfo.log("检查完成");
ResetMoveInfo.EndMove();
ResetMoveInfo.EndMove();
runStatus = RunStatus.Running;
ServerCM.storeStatus = StoreStatus.StoreOnline;
break;
......@@ -821,7 +831,7 @@ namespace DeviceLibrary
}
}
public bool CheckOk()
{
{
if (ResetMoveInfo.IsStep(MoveStep.CH06_WaitCheck))
{
ResetMoveInfo.NextMoveStep(MoveStep.CH07_CheckOk);
......@@ -830,8 +840,8 @@ namespace DeviceLibrary
}
return false;
}
public void StartToCheck( )
{
public void StartToCheck()
{
runStatus = RunStatus.HomeReset;
ServerCM.storeStatus = StoreStatus.ResetMove;
ResetMoveInfo.NewMove(MoveStep.CH01_StartTo);
......@@ -882,8 +892,12 @@ namespace DeviceLibrary
//IOValue(IO_Type.StringFront_Check).Equals(IO_VALUE.LOW) &&
if (IOValue(IO_Type.AGV_OnPosition).Equals(IO_VALUE.LOW) && IOValue(IO_Type.StringDoor_Close).Equals(IO_VALUE.LOW))
{
Msg.add(crc.GetString("guangshanzhedang","料串门光栅被遮挡"), MsgLevel.warning);
if (lastStringSafetyStatus)
Msg.add(crc.GetString("guangshanzhedang", "料串门光栅被遮挡"), MsgLevel.warning);
if (isManualOuting())
{
}
else if (lastStringSafetyStatus)
{
lastStringSafetyStatus = false;
StringDoorPause();
......@@ -994,11 +1008,22 @@ namespace DeviceLibrary
get
{
if (RobotManage.Config.DOList.ContainsKey(IO_Type.DoorSafe_Disable))
return IOValue(IO_Type.DoorSafe_Disable).Equals(IO_VALUE.LOW) && IOValue(IO_Type.SafetyLightCurtains).Equals(IO_VALUE.LOW);
return IOValue(IO_Type.DoorSafe_Disable).Equals(IO_VALUE.LOW) && isSafetyLightCurtainsTrigget();
else
return IOValue(IO_Type.SafetyLightCurtains).Equals(IO_VALUE.LOW);
return isSafetyLightCurtainsTrigget();
}
}
/// <summary>
/// 光栅是否触发
/// </summary>
/// <returns></returns>
bool isSafetyLightCurtainsTrigget()
{
if (Setting_Init.Disable_SafetyLightCurtains)
return false;
else
return IOValue(IO_Type.SafetyLightCurtains).Equals(IO_VALUE.LOW);
}
public bool DeviceCheck()
{
bool ok = true;
......
......@@ -326,7 +326,7 @@ namespace DeviceLibrary
}
break;
case MoveStep.NGOUT_04:
if (IOValue(IO_Type.SafetyLightCurtains).Equals(IO_VALUE.LOW))
if (isSafetyLightCurtainsTrigget())
{
Msg.add(crc.GetString(L.wait_put_reel_into_ngdoor, "等待阻挡物离开光栅"), MsgLevel.warning);
}
......@@ -342,7 +342,7 @@ namespace DeviceLibrary
Msg.add(crc.GetString(L.x29_low_no_reel, "检测相机打开失败."), MsgLevel.alarm);
}
else
if (IOValue(IO_Type.SafetyLightCurtains).Equals(IO_VALUE.HIGH) && !h.Value)
if (!isSafetyLightCurtainsTrigget() && !h.Value)
{
ClampMoveInfo.NextMoveStep(MoveStep.NGOUT_06);
ClampMoveInfo.log("关门NG口门");
......
......@@ -487,7 +487,7 @@ namespace DeviceLibrary
{
StringMoveInfo.NextMoveStep(MoveStep.StringOut_08);
StringMoveInfo.log($"复位按钮触发,手动出料串:打开折叠门");
CylinderMove(StringMoveInfo, IO_Type.StringDoor_Close, IO_Type.StringDoor_Open, IO_VALUE.HIGH);
StringDoorOpen(StringMoveInfo);
}
break;
case MoveStep.StringOut_05:
......@@ -531,9 +531,9 @@ namespace DeviceLibrary
{
StringMoveInfo.NextMoveStep(MoveStep.StringOut_09);
CylinderMove(StringMoveInfo, IO_Type.StringFix_Bottom, IO_Type.StringFix_Top, IO_VALUE.LOW);
Line.LineRun("n", true, 30);
Line.LineRun("n", true, 15);
StringMoveInfo.WaitList.Add(WaitResultInfo.WaitTime(2000));
AGVMoveInfo.log($"复位按钮触发,手动出料串:料串出料");
StringMoveInfo.log($"复位按钮触发,手动出料串:料串出料");
}
break;
case MoveStep.StringOut_09:
......@@ -541,13 +541,13 @@ namespace DeviceLibrary
{
StringMoveInfo.NextMoveStep(MoveStep.StringOut_10);
Line.LineStop("n");
CylinderMove(StringMoveInfo, IO_Type.StringDoor_Close, IO_Type.StringDoor_Open, IO_VALUE.LOW);
AGVMoveInfo.log($"复位按钮触发,手动出料串:关门");
StringDoorClose(StringMoveInfo);
StringMoveInfo.log($"复位按钮触发,手动出料串:关门");
}
break;
case MoveStep.StringOut_10:
StringMoveInfo.NextMoveStep(MoveStep.StringOut_11);
AGVMoveInfo.log($"手动出料串完成");
StringMoveInfo.log($"手动出料串完成");
break;
case MoveStep.StringOut_11:
StringMoveInfo.EndMove();
......@@ -557,7 +557,10 @@ namespace DeviceLibrary
break;
}
}
bool isManualOuting()
{
return StringMoveInfo.MoveStep>= MoveStep.StringOut_08 && StringMoveInfo.MoveStep <= MoveStep.StringOut_11;
}
string StringProcessState()
{
string state = "";
......
......@@ -104,7 +104,7 @@ namespace TheMachine
//if (ioValue.SubType.Equals(0))
{
this.tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.Absolute, 26));
IOTextControl control = new IOTextControl(ioValue.ElectricalDefinition + "_" + crc.GetString(ioValue.ElectricalDefinition + "_" + ioValue.ProName, ioValue.Explain), ioValue.ProName);
IOTextControl control = new IOTextControl(ioValue.ElectricalDefinition + "_" + crc.GetString(ioValue.ElectricalDefinition + "_" + ioValue.ProName, ioValue.Explain), ioValue.ProName,440);
this.tableLayoutPanel1.Controls.Add(control, 0, roleindex);
roleindex++;
......@@ -120,7 +120,7 @@ namespace TheMachine
//if (ioValue.SubType.Equals(0))
{
this.tableLayoutPanel2.RowStyles.Add(new RowStyle(SizeType.Absolute, 28));
IOTextControl control = new IOTextControl(ioValue.ElectricalDefinition + "_" + crc.GetString(ioValue.ElectricalDefinition + "_" + ioValue.ProName, ioValue.Explain), ioValue.ProName);
IOTextControl control = new IOTextControl(ioValue.ElectricalDefinition + "_" + crc.GetString(ioValue.ElectricalDefinition + "_" + ioValue.ProName, ioValue.Explain), ioValue.ProName, 440);
control.Click += Control_Click;
this.tableLayoutPanel2.Controls.Add(control, 0, roleindex);
roleindex++;
......
......@@ -138,13 +138,13 @@ FrmPositionTool_groupBox6_groupBox2_label5_Text 库位低点偏移量: Locatio
FrmPositionTool_groupBox6_groupBox2_label7_Text 实际位置: Acutual Location
FrmPositionTool_groupBox6_groupBox2_label8_Text 移动速度: Movement Speed
FrmPositionTool_groupBox6_groupBox2_Text 位置信息 Position Info.
IOControl_groupBox1_btnCloseDO_Text 关闭 OFF
IOControl_groupBox1_btnOpenDo_Text 打开 ON
IOControl_groupBox1_label14_Text 地址: Adress:
IOControl_groupBox1_label5_Text 定时(ms): Timing
IOControl_groupBox1_Text DO写入 DO Writing
IOControl_groupBox3_Text DI列表 DI List
IOControl_groupBox4_Text DO列表 DO List
IOControl_tableLayoutPanel3_groupBox1_btnCloseDO_Text 关闭 OFF
IOControl_tableLayoutPanel3_groupBox1_btnOpenDo_Text 打开 ON
IOControl_tableLayoutPanel3_groupBox1_label14_Text 地址: Adress:
IOControl_tableLayoutPanel3_groupBox1_label5_Text 定时(ms): Timing
IOControl_tableLayoutPanel3_groupBox1_Text DO写入 DO Writing
IOControl_tableLayoutPanel3_groupBox3_Text DI列表 DI List
IOControl_tableLayoutPanel3_groupBox4_Text DO列表 DO List
menuStrip1_关于ToolStripMenuItem_Text 关于 About
menuStrip1_设备操作ToolStripMenuItem_Text 设备操作 Operation
menuStrip1_语言toolStripMenuItem_Text 语言 Language
......@@ -497,4 +497,6 @@ NGDoor_Close 单料口门下降 Single material port door lowering end
StringFix_Bottom 进料线体料串固定下降 Fixed lowering of material string on feeding line
Clamping_Relax 夹爪气缸放松 Gripper cylinder release
StringPosChecker_Home 上料定位旋转气缸避让 Avoidance of feeding positioning rotary cylinder
StringDoor_Axis_Break 上料机构折叠门刹车解除 Brake release of feeding mechanism folding door
\ No newline at end of file
StringDoor_Axis_Break 上料机构折叠门刹车解除 Brake release of feeding mechanism folding door
StringDoor_Close 上料机构折叠门关闭端 Closing end of feeding mechanism folding door
timeout 超时 Timeout
\ No newline at end of file
......@@ -138,13 +138,13 @@ FrmPositionTool_groupBox6_groupBox2_label5_Text 库位低点偏移量: 庫位
FrmPositionTool_groupBox6_groupBox2_label7_Text 实际位置: 実際位置:
FrmPositionTool_groupBox6_groupBox2_label8_Text 移动速度: 移動速度:
FrmPositionTool_groupBox6_groupBox2_Text 位置信息 位置情報
IOControl_groupBox1_btnCloseDO_Text 关闭 閉じる
IOControl_groupBox1_btnOpenDo_Text 打开 開く
IOControl_groupBox1_label14_Text 地址: アドレス:
IOControl_groupBox1_label5_Text 定时(ms): タイミング(ms):
IOControl_groupBox1_Text DO写入 DO書き込み
IOControl_groupBox3_Text DI列表 DIリスト
IOControl_groupBox4_Text DO列表 DOリスト
IOControl_tableLayoutPanel3_groupBox1_btnCloseDO_Text 关闭 閉じる
IOControl_tableLayoutPanel3_groupBox1_btnOpenDo_Text 打开 開く
IOControl_tableLayoutPanel3_groupBox1_label14_Text 地址: アドレス:
IOControl_tableLayoutPanel3_groupBox1_label5_Text 定时(ms): タイミング(ms):
IOControl_tableLayoutPanel3_groupBox1_Text DO写入 DO書き込み
IOControl_tableLayoutPanel3_groupBox3_Text DI列表 DIリスト
IOControl_tableLayoutPanel3_groupBox4_Text DO列表 DOリスト
menuStrip1_关于ToolStripMenuItem_Text 关于 について
menuStrip1_设备操作ToolStripMenuItem_Text 设备操作 機器操作
menuStrip1_语言toolStripMenuItem_Text 语言 言語
......@@ -497,4 +497,6 @@ NGDoor_Close 单料口门下降 単一料口ドア下降
StringFix_Bottom 进料线体料串固定下降 フィードライン料串固定下降
Clamping_Relax 夹爪气缸放松 グリッパーシリンダーリリース
StringPosChecker_Home 上料定位旋转气缸避让 上料位置決め回転シリンダー回避
StringDoor_Axis_Break 上料机构折叠门刹车解除 上料機構折りたたみドアブレーキ解除
\ No newline at end of file
StringDoor_Axis_Break 上料机构折叠门刹车解除 上料機構折りたたみドアブレーキ解除
StringDoor_Close 上料机构折叠门关闭端 上料機構折りたたみドア閉鎖端
timeout 超时 タイムアウト
\ No newline at end of file
......@@ -138,13 +138,13 @@ FrmPositionTool_groupBox6_groupBox2_label5_Text 库位低点偏移量:
FrmPositionTool_groupBox6_groupBox2_label7_Text 实际位置:
FrmPositionTool_groupBox6_groupBox2_label8_Text 移动速度:
FrmPositionTool_groupBox6_groupBox2_Text 位置信息
IOControl_groupBox1_btnCloseDO_Text 关闭
IOControl_groupBox1_btnOpenDo_Text 打开
IOControl_groupBox1_label14_Text 地址:
IOControl_groupBox1_label5_Text 定时(ms):
IOControl_groupBox1_Text DO写入
IOControl_groupBox3_Text DI列表
IOControl_groupBox4_Text DO列表
IOControl_tableLayoutPanel3_groupBox1_btnCloseDO_Text 关闭
IOControl_tableLayoutPanel3_groupBox1_btnOpenDo_Text 打开
IOControl_tableLayoutPanel3_groupBox1_label14_Text 地址:
IOControl_tableLayoutPanel3_groupBox1_label5_Text 定时(ms):
IOControl_tableLayoutPanel3_groupBox1_Text DO写入
IOControl_tableLayoutPanel3_groupBox3_Text DI列表
IOControl_tableLayoutPanel3_groupBox4_Text DO列表
menuStrip1_关于ToolStripMenuItem_Text 关于
menuStrip1_设备操作ToolStripMenuItem_Text 设备操作
menuStrip1_语言toolStripMenuItem_Text 语言
......@@ -497,4 +497,6 @@ NGDoor_Close 单料口门下降
StringFix_Bottom 进料线体料串固定下降
Clamping_Relax 夹爪气缸放松
StringPosChecker_Home 上料定位旋转气缸避让
StringDoor_Axis_Break 上料机构折叠门刹车解除
\ No newline at end of file
StringDoor_Axis_Break 上料机构折叠门刹车解除
StringDoor_Close 上料机构折叠门关闭端
timeout 超时
\ No newline at end of file
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!