1磁流体新增连贯设置,写AO,置位DO

2添加Load复位状态记录,未完成
This commit is contained in:
hanqiangqiang 2024-06-16 10:05:43 +08:00
parent bbed3e048e
commit 9edb39b695
3 changed files with 94 additions and 27 deletions

View File

@ -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()
{
}
}
}

View File

@ -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;

View File

@ -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" />