using Bodk.Device.Storage.EventArgs; namespace Bodk.Device.Storage.Modules; /// /// 龙门X /// /// /// /// /// /// /// public class GantryX( Action alarmEventHandler, Action motionTimeoutAlarmEventHandler, Func writeCoilRegisterFunc, Func> readCoilRegisterFunc, Func> readHoldingRegistersFunc, Func writeHoldingRegistersFunc) : ModuleBase(alarmEventHandler, motionTimeoutAlarmEventHandler, writeCoilRegisterFunc, readCoilRegisterFunc, readHoldingRegistersFunc, writeHoldingRegistersFunc) { public override string Name => "GantryX"; public override string Descirption => "龙门X轴"; public override int Id => 5; internal override ushort? EnableAddress => 104; internal override ushort? ResetAddress => 124; internal override ushort? CleanAddress => 144; internal override ushort? GotoOriginAddress => 164; internal override ushort? ForwardAddress => 184; internal override ushort? BackwardAddress => 204; internal override ushort? RelativeMoveAddress => 224; internal override ushort? AbsoluteMoveAddress => 244; internal override ushort? MotionTimeoutAlarmAddress => 284; internal override ushort? AlarmAddress => 304; internal override ushort? IsEnabledAddress => 334; internal override ushort? OriginFlagAddress => 354; internal override ushort? MoveDistanceAddress => 108; internal override ushort? CurrentPositionAddress => 132; internal override ushort? ManualSpeedAddress => 1008; internal override ushort? AutoSpeedAddress => 1048; internal override ushort? AccDecAddress => 1088; internal override ushort? GotoOriginHighSpeedAddress => 1128; internal override ushort? GotoOriginLowSpeedAddress => 1152; internal ushort StandbyAddress => 1420; internal ushort GraspFoamLidAddress => 1422; internal ushort PlaceFoamLidAddress => 1424; internal ushort BipolarModuleAAddress => 1384; internal ushort BipolarModuleBAddress => 1386; internal ushort BipolarModuleCAddress => 1388; internal ushort UnipolarModuleAAddress => 1390; internal ushort UnipolarModuleBAddress => 1392; internal ushort UnipolarModuleCAddress => 1394; /// /// 移动到待机位 /// public async Task MoveToStandbyPositionAsync() { await AbsoluteMoveAsync(await ReadFloat(StandbyAddress)); } /// /// 移动到抓取泡沫盖位 /// public async Task MoveToGraspFoamLidPositionAsync() { await AbsoluteMoveAsync(await ReadFloat(GraspFoamLidAddress)); } /// /// 移动到放泡沫盖位 /// public async Task MoveToPlaceFoamLidPositionAsync() { await AbsoluteMoveAsync(await ReadFloat(PlaceFoamLidAddress)); } /// /// 移动到双极模组A位 /// public async Task MoveToBipolarModuleAPositionAsync() { await AbsoluteMoveAsync(await ReadFloat(BipolarModuleAAddress)); } /// /// 移动到双极模组B位 /// public async Task MoveToBipolarModuleBPositionAsync() { await AbsoluteMoveAsync(await ReadFloat(BipolarModuleBAddress)); } /// /// 移动到双极模组C位 /// public async Task MoveToBipolarModuleCPositionAsync() { await AbsoluteMoveAsync(await ReadFloat(BipolarModuleCAddress)); } /// /// 移动到单极模组A位 /// public async Task MoveToUnipolarModuleAPositionAsync() { await AbsoluteMoveAsync(await ReadFloat(UnipolarModuleAAddress)); } /// /// 移动到单极模组B位 /// public async Task MoveToUnipolarModuleBPositionAsync() { await AbsoluteMoveAsync(await ReadFloat(UnipolarModuleBAddress)); } /// /// 移动到单极模组C位 /// public async Task MoveToUnipolarModuleCPositionAsync() { await AbsoluteMoveAsync(await ReadFloat(UnipolarModuleCAddress)); } /// /// 待机位 /// public float StandbyPosition { get { _standbyPosition ??= ReadFloat(StandbyAddress).Result; return _standbyPosition.Value; } set { _standbyPosition = value; WriteFloat(StandbyAddress, value); } } private float? _standbyPosition; }