parent
bbed3e048e
commit
9edb39b695
|
@ -0,0 +1,44 @@
|
|||
using Aitex.Core.RT.DataCenter;
|
||||
using Aitex.Core.RT.Device;
|
||||
using Aitex.Core.RT.IOCore;
|
||||
using Aitex.Core.RT.OperationCenter;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace MECF.Framework.RT.EquipmentLibrary.Devices
|
||||
{
|
||||
public class IoCheckLoadLidClose : BaseDevice, IDevice
|
||||
{
|
||||
protected readonly DIAccessor _diLoaderLidClosed;
|
||||
|
||||
|
||||
|
||||
public bool LoaderLidClose { get; set; }
|
||||
|
||||
public bool Initialize()
|
||||
{
|
||||
DATA.Subscribe($"{Module}.{Name}.ServoReady", () => LoaderLidClose);
|
||||
return true;
|
||||
}
|
||||
|
||||
protected override void HandleMonitor()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public void Terminate()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public void Reset()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
|
@ -34,6 +34,7 @@ namespace Aitex.Core.RT.Device.Devices
|
|||
|
||||
private readonly AOAccessor _aoSpindleLoadAngle;
|
||||
private readonly AOAccessor _aoSpindleUnloadAngle;
|
||||
private readonly AOAccessor _aoSpindleJogSpeed;
|
||||
|
||||
private readonly DIAccessor _diServoHome;
|
||||
private readonly DIAccessor _diSpindleMoveComplete;
|
||||
|
@ -154,6 +155,7 @@ namespace Aitex.Core.RT.Device.Devices
|
|||
|
||||
_aoSpindleLoadAngle = ParseAoNode("aoSpindleLoadAngle", node, ioModule);
|
||||
_aoSpindleUnloadAngle = ParseAoNode("aoSpindleUnloadAngle", node, ioModule);
|
||||
_aoSpindleJogSpeed = ParseAoNode("aoSpindleJogSpeed", node, ioModule);
|
||||
|
||||
_diServoHome = ParseDiNode("diServoHome", node, ioModule);
|
||||
_diServoEnable = ParseDiNode("diServoEnable", node, ioModule);
|
||||
|
@ -288,6 +290,24 @@ namespace Aitex.Core.RT.Device.Devices
|
|||
return true;
|
||||
}
|
||||
|
||||
public void SetActualSpeed(float target, int time)
|
||||
{
|
||||
SpeedSetpoint = target;
|
||||
SetPulse(_doSpindleSpeedRun);
|
||||
}
|
||||
|
||||
public void LoadAngleRun(float angle)
|
||||
{
|
||||
SpindleLoadAngleSet = angle;
|
||||
SetPulse(_doSpindleLoadAngleRun);
|
||||
}
|
||||
|
||||
public void UnloadAngleRun(float angle)
|
||||
{
|
||||
SpindleUnloadAngle = angle;
|
||||
SetPulse(_doSpindleUnloadAngleRun);
|
||||
}
|
||||
|
||||
private void SetPulse(DOAccessor doAccessor)
|
||||
{
|
||||
if (doAccessor?.Value == false)
|
||||
|
@ -381,36 +401,38 @@ namespace Aitex.Core.RT.Device.Devices
|
|||
return true;
|
||||
}
|
||||
|
||||
public void SetActualSpeed(float target, int time)
|
||||
{
|
||||
//取消检查
|
||||
//if (!ServoReady)
|
||||
|
||||
|
||||
//public void SetActualSpeed(float target, int time)
|
||||
//{
|
||||
// EV.PostWarningLog(Module, "Servo is not ready!");
|
||||
// return;
|
||||
// //取消检查
|
||||
// //if (!ServoReady)
|
||||
// //{
|
||||
// // EV.PostWarningLog(Module, "Servo is not ready!");
|
||||
// // return;
|
||||
// //}
|
||||
|
||||
// if (target == 0 && ServoEnable)
|
||||
// {
|
||||
// _setValueIsZero = true;
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// _setValueIsZero = false;
|
||||
// }
|
||||
|
||||
// //if (target > 0 && !ServoEnable)
|
||||
// //{
|
||||
// // SetServoEnable(true, out _);
|
||||
// //}
|
||||
|
||||
// _rampTimer.Stop();
|
||||
// _rampInitValue = _aoSpindleSpeedSet.Value; //ramp 初始值取当前设定值,而非实际读取值.零漂问题
|
||||
// _rampTime = time;
|
||||
// _rampTarget = target;
|
||||
// _rampTimer.Start(_rampTime);
|
||||
//}
|
||||
|
||||
if (target == 0 && ServoEnable)
|
||||
{
|
||||
_setValueIsZero = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
_setValueIsZero = false;
|
||||
}
|
||||
|
||||
//if (target > 0 && !ServoEnable)
|
||||
//{
|
||||
// SetServoEnable(true, out _);
|
||||
//}
|
||||
|
||||
_rampTimer.Stop();
|
||||
_rampInitValue = _aoSpindleSpeedSet.Value; //ramp 初始值取当前设定值,而非实际读取值.零漂问题
|
||||
_rampTime = time;
|
||||
_rampTarget = target;
|
||||
_rampTimer.Start(_rampTime);
|
||||
}
|
||||
|
||||
public void SetAccSpeed(float dValue)
|
||||
{
|
||||
_aoAccSpeedSetPoint.Value = (float)dValue;
|
||||
|
@ -484,7 +506,7 @@ namespace Aitex.Core.RT.Device.Devices
|
|||
|
||||
protected override void HandleMonitor()
|
||||
{
|
||||
MonitorRamping();
|
||||
//MonitorRamping();
|
||||
MonitorSet();
|
||||
|
||||
_trigEnable.CLK = ServoEnable;
|
||||
|
|
|
@ -78,6 +78,7 @@
|
|||
<Compile Include="Core\Interfaces\IBitTypeClass.cs" />
|
||||
<Compile Include="Devices\AdsIoProvider.cs" />
|
||||
<Compile Include="Devices\DoSensor.cs" />
|
||||
<Compile Include="Devices\IoCheckLoadLidClose.cs" />
|
||||
<Compile Include="Devices\IoLineHeater.cs" />
|
||||
<Compile Include="Devices\IoSensorAnalog.cs" />
|
||||
<Compile Include="Devices\IoBottomSection.cs" />
|
||||
|
|
Loading…
Reference in New Issue