操控平台后端代码
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

114 lines
3.2 KiB

4 months ago
using Bodk.Device.Storage.EventArgs;
namespace Bodk.Device.Storage.Modules;
public class CryogenicRackGripper1(
Action<object?, AlarmChangedEventArg> alarmEventHandler,
Action<object?, MotionTimeoutAlarmChangedEventArg> motionTimeoutAlarmEventHandler,
Func<ushort, bool[], Task> writeCoilRegisterFunc,
Func<ushort, ushort, Task<bool[]>> readCoilRegisterFunc,
Func<ushort, ushort, Task<ushort[]>> readHoldingRegistersFunc,
Func<ushort, ushort[], Task> writeHoldingRegistersFunc)
: ModuleBase(alarmEventHandler, motionTimeoutAlarmEventHandler, writeCoilRegisterFunc, readCoilRegisterFunc,
readHoldingRegistersFunc, writeHoldingRegistersFunc)
{
public override string Name => "CryogenicRackGripper1";
public override string Descirption => "冻存架夹爪1";
public override int Id => 2;
internal override ushort? EnableAddress => 101;
internal override ushort? ResetAddress => 121;
internal override ushort? CleanAddress => 141;
internal override ushort? GotoOriginAddress => 161;
internal override ushort? ForwardAddress => 181;
internal override ushort? BackwardAddress => 201;
internal override ushort? RelativeMoveAddress => 221;
internal override ushort? AbsoluteMoveAddress => 241;
internal override ushort? MotionTimeoutAlarmAddress => 281;
internal override ushort? AlarmAddress => 301;
internal override ushort? IsEnabledAddress => 331;
internal override ushort? OriginFlagAddress => 351;
internal override ushort? MoveDistanceAddress => 102;
internal override ushort? CurrentPositionAddress => 126;
internal override ushort? ManualSpeedAddress => 1002;
internal override ushort? AutoSpeedAddress => 1042;
internal override ushort? AccDecAddress => 1082;
internal override ushort? GotoOriginHighSpeedAddress => 1122;
internal override ushort? GotoOriginLowSpeedAddress => 1146;
internal ushort ReleasePositionAddress => 1370;
internal ushort HoldingPositionAddress => 1372;
/// <summary>
/// 松开夹爪
/// </summary>
/// <returns></returns>
public async Task Release()
{
var des = await ReadFloat(ReleasePositionAddress);
await AbsoluteMoveAsync(des);
}
public async Task Holding()
{
var des = await ReadFloat(HoldingPositionAddress);
await AbsoluteMoveAsync(des);
}
/// <summary>
/// 松开位
/// </summary>
public float ReleasePosition
{
get
{
_releasePosition ??= ReadFloat(ReleasePositionAddress).Result;
return _releasePosition.Value;
}
set
{
_releasePosition = value;
WriteFloat(ReleasePositionAddress, value);
}
}
/// <summary>
/// 夹紧位
/// </summary>
public float HoldingPosition
{
get
{
_holdingPosition ??= ReadFloat(HoldingPositionAddress).Result;
return _holdingPosition.Value;
}
set
{
_holdingPosition = value;
WriteFloat(HoldingPositionAddress, value);
}
}
private float? _releasePosition;
private float? _holdingPosition;
}