Commit 3a88735d 刘韬

1

1 个父辈 c60ccbf4
...@@ -9,7 +9,7 @@ using System.Threading.Tasks; ...@@ -9,7 +9,7 @@ using System.Threading.Tasks;
namespace DeviceLibrary namespace DeviceLibrary
{ {
public class LiftMonitor :ISafetyDevice public class LiftMonitor : ISafetyDevice
{ {
string up; string up;
string down; string down;
...@@ -18,20 +18,26 @@ namespace DeviceLibrary ...@@ -18,20 +18,26 @@ namespace DeviceLibrary
int upspeed; int upspeed;
int downspeed; int downspeed;
int StrokeLength = 270000; int StrokeLength = 270000;
public LiftMonitor(string _up, string _down,string _break, AxisBean _axisBean,int _upspeed, int _downspeed= 0) { bool paused = false;
public LiftMonitor(string _up, string _down, string _break, AxisBean _axisBean, int _StrokeLength, int _upspeed, int _downspeed = 0)
{
up = _up; up = _up;
down = _down; down = _down;
axisBean = _axisBean; axisBean = _axisBean;
upspeed = _upspeed; upspeed = _upspeed;
axisbreak = _break; axisbreak = _break;
downspeed = _downspeed; downspeed = _downspeed;
if (downspeed == 0) { StrokeLength = _StrokeLength;
if (downspeed == 0)
{
downspeed = upspeed; downspeed = upspeed;
} }
SafetyDevice.AddDevice(this); SafetyDevice.AddDevice(this);
} }
public bool isAtTOP { public bool isAtTOP
get { {
get
{
return IOManager.IOValue(up.ToString()).Equals(IO_VALUE.HIGH); return IOManager.IOValue(up.ToString()).Equals(IO_VALUE.HIGH);
} }
} }
...@@ -42,27 +48,57 @@ namespace DeviceLibrary ...@@ -42,27 +48,57 @@ namespace DeviceLibrary
return IOManager.IOValue(down.ToString()).Equals(IO_VALUE.HIGH); return IOManager.IOValue(down.ToString()).Equals(IO_VALUE.HIGH);
} }
} }
public void LiftUp(MoveInfo moveInfo) { public void LiftUp(MoveInfo moveInfo)
{
if (moveInfo == null) if (moveInfo == null)
moveInfo = new MoveInfo("界面",false); moveInfo = new MoveInfo("界面", false);
if (IOManager.IOValue(up.ToString()).Equals(IO_VALUE.HIGH)) { if (IOManager.IOValue(IO_Type.SuddenStop_BTN).Equals(IO_VALUE.LOW))
{
moveInfo.log($"急停未解除");
return;
}
paused = false;
if (IOManager.IOValue(up.ToString()).Equals(IO_VALUE.HIGH))
{
moveInfo.log($"{axisBean.AxisName},已在位置,无需上升"); moveInfo.log($"{axisBean.AxisName},已在位置,无需上升");
return; return;
} }
IOManager.IOMove(axisbreak,IO_VALUE.HIGH); if (!axisBean.IsServeoOn)
Thread.Sleep(200); axisBean.Open(true, out string msg);
if (!string.IsNullOrEmpty(axisbreak))
{
IOManager.IOMove(axisbreak, IO_VALUE.HIGH);
Thread.Sleep(200);
}
axisBean.RelMove(StrokeLength, (double)upspeed); axisBean.RelMove(StrokeLength, (double)upspeed);
DateTime d = DateTime.Now; DateTime d = DateTime.Now;
moveInfo.log($"{axisBean.AxisName},LiftUp"); moveInfo.log($"{axisBean.AxisName},LiftUp");
if(moveInfo!=null) if (moveInfo != null)
moveInfo.WaitList.Add(WaitResultInfo.WaitAction(new Func<WaitResultInfo, bool>(WaitUp), $"等待顶升[{axisBean.Config.Explain}]机构上升")); moveInfo.WaitList.Add(WaitResultInfo.WaitAction(new Func<WaitResultInfo, bool>(WaitUp), $"等待顶升[{axisBean.Config.Explain}]机构上升"));
Task.Run(()=> { Task.Run(() => {
while (!IOManager.IOValue(up.ToString()).Equals(IO_VALUE.HIGH)) { while (!IOManager.IOValue(up.ToString()).Equals(IO_VALUE.HIGH))
{
Task.Delay(30); Task.Delay(30);
if (paused)
{
paused = false;
return;
}
if (IOManager.IOValue(IO_Type.SuddenStop_BTN).Equals(IO_VALUE.LOW))
{
LogUtil.info("设备急停");
Pause();
return;
}
} }
axisBean.SuddenStop(); axisBean.SuddenStop();
IOManager.IOMove(axisbreak, IO_VALUE.LOW); if (!string.IsNullOrEmpty(axisbreak))
{
IOManager.IOMove(axisbreak, IO_VALUE.LOW);
axisBean.ServoOff();
}
var t = (DateTime.Now - d).TotalSeconds; var t = (DateTime.Now - d).TotalSeconds;
moveInfo.log($"{axisBean.AxisName},上升到位,s:{t}"); moveInfo.log($"{axisBean.AxisName},上升到位,s:{t}");
}); });
...@@ -72,12 +108,19 @@ namespace DeviceLibrary ...@@ -72,12 +108,19 @@ namespace DeviceLibrary
if (IOManager.IOValue(up.ToString()).Equals(IO_VALUE.HIGH)) if (IOManager.IOValue(up.ToString()).Equals(IO_VALUE.HIGH))
{ {
axisBean.SuddenStop(); axisBean.SuddenStop();
IOManager.IOMove(axisbreak, IO_VALUE.LOW);
return true; if (!string.IsNullOrEmpty(axisbreak))
{
IOManager.IOMove(axisbreak, IO_VALUE.LOW);
axisBean.ServoOff();
}
return true;
} }
if (!axisBean.IsBusy) { if (!axisBean.IsBusy)
axisBean.RelMove(StrokeLength, (double)upspeed); {
LogUtil.info("恢复继续上升");
LiftUp(null);
} }
return false; return false;
} }
...@@ -85,13 +128,24 @@ namespace DeviceLibrary ...@@ -85,13 +128,24 @@ namespace DeviceLibrary
{ {
if (moveInfo == null) if (moveInfo == null)
moveInfo = new MoveInfo("界面", false); moveInfo = new MoveInfo("界面", false);
if (IOManager.IOValue(IO_Type.SuddenStop_BTN).Equals(IO_VALUE.LOW))
{
moveInfo.log($"急停未解除");
return;
}
paused = false;
if (IOManager.IOValue(down.ToString()).Equals(IO_VALUE.HIGH)) if (IOManager.IOValue(down.ToString()).Equals(IO_VALUE.HIGH))
{ {
moveInfo.log($"{axisBean.AxisName},已在位置,无需下降"); moveInfo.log($"{axisBean.AxisName},已在位置,无需下降");
return; return;
} }
IOManager.IOMove(axisbreak, IO_VALUE.HIGH); if (!axisBean.IsServeoOn)
Thread.Sleep(200); axisBean.Open(true, out string msg);
if (!string.IsNullOrEmpty(axisbreak))
{
IOManager.IOMove(axisbreak, IO_VALUE.HIGH);
Thread.Sleep(200);
}
axisBean.RelMove(-StrokeLength, (double)downspeed); axisBean.RelMove(-StrokeLength, (double)downspeed);
DateTime d = DateTime.Now; DateTime d = DateTime.Now;
moveInfo.log($"{axisBean.AxisName},LiftDown"); moveInfo.log($"{axisBean.AxisName},LiftDown");
...@@ -102,9 +156,24 @@ namespace DeviceLibrary ...@@ -102,9 +156,24 @@ namespace DeviceLibrary
while (!IOManager.IOValue(down.ToString()).Equals(IO_VALUE.HIGH)) while (!IOManager.IOValue(down.ToString()).Equals(IO_VALUE.HIGH))
{ {
Task.Delay(30); Task.Delay(30);
if (paused)
{
paused = false;
return;
}
if (IOManager.IOValue(IO_Type.SuddenStop_BTN).Equals(IO_VALUE.LOW))
{
LogUtil.info("设备急停");
Pause();
return;
}
} }
axisBean.SuddenStop(); axisBean.SuddenStop();
IOManager.IOMove(axisbreak, IO_VALUE.LOW); if (!string.IsNullOrEmpty(axisbreak))
{
IOManager.IOMove(axisbreak, IO_VALUE.LOW);
axisBean.ServoOff();
}
var t = (DateTime.Now - d).TotalSeconds; var t = (DateTime.Now - d).TotalSeconds;
moveInfo.log($"{axisBean.AxisName},下降到位,s:{t}"); moveInfo.log($"{axisBean.AxisName},下降到位,s:{t}");
}); });
...@@ -114,25 +183,38 @@ namespace DeviceLibrary ...@@ -114,25 +183,38 @@ namespace DeviceLibrary
if (IOManager.IOValue(down.ToString()).Equals(IO_VALUE.HIGH)) if (IOManager.IOValue(down.ToString()).Equals(IO_VALUE.HIGH))
{ {
axisBean.SuddenStop(); axisBean.SuddenStop();
IOManager.IOMove(axisbreak, IO_VALUE.LOW);
if (!string.IsNullOrEmpty(axisbreak))
{
IOManager.IOMove(axisbreak, IO_VALUE.LOW);
axisBean.ServoOff();
}
return true; return true;
} }
if (!axisBean.IsBusy) if (!axisBean.IsBusy)
{ {
axisBean.RelMove(-StrokeLength, (double)downspeed); LogUtil.info("恢复继续下降");
LiftDown(null);
} }
return false; return false;
} }
public void Pause() public void Pause()
{ {
paused = true;
axisBean.SuddenStop(); axisBean.SuddenStop();
if (!string.IsNullOrEmpty(axisbreak))
{
IOManager.IOMove(axisbreak, IO_VALUE.LOW);
axisBean.ServoOff();
}
} }
public void Resume() public void Resume()
{ {
// throw new NotImplementedException(); //throw new NotImplementedException();
} }
} }
} }
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!