肖正
5 months ago
4 changed files with 187 additions and 1 deletions
Binary file not shown.
@ -0,0 +1,174 @@ |
|||||
|
using Bodk.Device.Storage.EventArgs; |
||||
|
|
||||
|
namespace Bodk.Device.Storage.Modules; |
||||
|
/// <summary>
|
||||
|
/// 龙门X
|
||||
|
/// </summary>
|
||||
|
/// <param name="alarmEventHandler"></param>
|
||||
|
/// <param name="motionTimeoutAlarmEventHandler"></param>
|
||||
|
/// <param name="writeCoilRegisterFunc"></param>
|
||||
|
/// <param name="readCoilRegisterFunc"></param>
|
||||
|
/// <param name="readHoldingRegistersFunc"></param>
|
||||
|
/// <param name="writeHoldingRegistersFunc"></param>
|
||||
|
public class GantryX( |
||||
|
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 => "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; |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 移动到待机位
|
||||
|
/// </summary>
|
||||
|
public async Task MoveToStandbyPositionAsync() |
||||
|
{ |
||||
|
await AbsoluteMoveAsync(await ReadFloat(StandbyAddress)); |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 移动到抓取泡沫盖位
|
||||
|
/// </summary>
|
||||
|
public async Task MoveToGraspFoamLidPositionAsync() |
||||
|
{ |
||||
|
await AbsoluteMoveAsync(await ReadFloat(GraspFoamLidAddress)); |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 移动到放泡沫盖位
|
||||
|
/// </summary>
|
||||
|
public async Task MoveToPlaceFoamLidPositionAsync() |
||||
|
{ |
||||
|
await AbsoluteMoveAsync(await ReadFloat(PlaceFoamLidAddress)); |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 移动到双极模组A位
|
||||
|
/// </summary>
|
||||
|
public async Task MoveToBipolarModuleAPositionAsync() |
||||
|
{ |
||||
|
await AbsoluteMoveAsync(await ReadFloat(BipolarModuleAAddress)); |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 移动到双极模组B位
|
||||
|
/// </summary>
|
||||
|
public async Task MoveToBipolarModuleBPositionAsync() |
||||
|
{ |
||||
|
await AbsoluteMoveAsync(await ReadFloat(BipolarModuleBAddress)); |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 移动到双极模组C位
|
||||
|
/// </summary>
|
||||
|
public async Task MoveToBipolarModuleCPositionAsync() |
||||
|
{ |
||||
|
await AbsoluteMoveAsync(await ReadFloat(BipolarModuleCAddress)); |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 移动到单极模组A位
|
||||
|
/// </summary>
|
||||
|
public async Task MoveToUnipolarModuleAPositionAsync() |
||||
|
{ |
||||
|
await AbsoluteMoveAsync(await ReadFloat(UnipolarModuleAAddress)); |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 移动到单极模组B位
|
||||
|
/// </summary>
|
||||
|
public async Task MoveToUnipolarModuleBPositionAsync() |
||||
|
{ |
||||
|
await AbsoluteMoveAsync(await ReadFloat(UnipolarModuleBAddress)); |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 移动到单极模组C位
|
||||
|
/// </summary>
|
||||
|
public async Task MoveToUnipolarModuleCPositionAsync() |
||||
|
{ |
||||
|
await AbsoluteMoveAsync(await ReadFloat(UnipolarModuleCAddress)); |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 待机位
|
||||
|
/// </summary>
|
||||
|
public float StandbyPosition |
||||
|
{ |
||||
|
get |
||||
|
{ |
||||
|
_standbyPosition ??= ReadFloat(StandbyAddress).Result; |
||||
|
return _standbyPosition.Value; |
||||
|
} |
||||
|
set |
||||
|
{ |
||||
|
_standbyPosition = value; |
||||
|
WriteFloat(StandbyAddress, value); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
private float? _standbyPosition; |
||||
|
} |
Loading…
Reference in new issue