change - 添加提升机报警设置、托盘到位逻辑处理

dev
WenJY 1 week ago
parent a1f7315d68
commit 19fd80f7d1

@ -26,7 +26,6 @@
using Sln.Wcs.Common.Domain.Dto;
using Sln.Wcs.HoistAdapter.Domain.Enum;
using Sln.Wcs.HoistAdapter.Domain.Model.GetHoistStatus;
using Sln.Wcs.HoistAdapter.Domain.Model.HoistControl;
namespace Sln.Wcs.HoistAdapter.Domain.Dto.GetHoistStatus;

@ -4,7 +4,7 @@
* (c) 2026 WenJY
* CLR4.0.30319.42000
* Mr.Wen's MacBook Pro
* Sln.Wcs.HoistAdapter.Domain.Domain.HoistControl
* Sln.Wcs.HoistAdapter.Domain.Domain.SetHoistAction
* 2B61FFB2-F10E-47BC-8B36-56524EB4F054
*
* WenJY
@ -25,9 +25,9 @@
using Sln.Wcs.HoistAdapter.Domain.Enum;
namespace Sln.Wcs.HoistAdapter.Domain.Dto.HoistControl;
namespace Sln.Wcs.HoistAdapter.Domain.Dto.SetHoistAction;
public class HoistControlDto
public class SetHoistActionDto
{
/// <summary>
/// 提升机编号

@ -4,7 +4,7 @@
* (c) 2026 WenJY
* CLR4.0.30319.42000
* Mr.Wen's MacBook Pro
* Sln.Wcs.HoistAdapter.Domain.Domain.HoistControl
* Sln.Wcs.HoistAdapter.Domain.Domain.SetHoistAction
* 2D12D182-6A86-4516-8AF2-B8E8FAC44CC6
*
* WenJY
@ -25,11 +25,11 @@
using Sln.Wcs.Common.Domain.Dto;
using Sln.Wcs.HoistAdapter.Domain.Enum;
using Sln.Wcs.HoistAdapter.Domain.Model.HoistControl;
using Sln.Wcs.HoistAdapter.Domain.Model.SetHoistAction;
namespace Sln.Wcs.HoistAdapter.Domain.Dto.HoistControl;
namespace Sln.Wcs.HoistAdapter.Domain.Dto.SetHoistAction;
public class HoistControlResultDto:ResultDto<HoistStatusEnum,HoistControlResultModel>
public class SetHoistActionResultDto:ResultDto<HoistStatusEnum,SetHoistActionResultModel>
{
}

@ -0,0 +1,54 @@
#region << 版 本 注 释 >>
/*--------------------------------------------------------------------
* (c) 2026 WenJY
* CLR4.0.30319.42000
* Mr.Wen's MacBook Pro
* Sln.Wcs.HoistAdapter.Domain.Dto.SetHoistAlarm
* 99CE0D25-6378-428E-BDF3-D948B1455BA3
*
* WenJY
*
* 2026-06-03 16:08:53
* V1.0.0
*
*
*--------------------------------------------------------------------
*
*
*
*
* V1.0.0
*--------------------------------------------------------------------*/
#endregion << 版 本 注 释 >>
namespace Sln.Wcs.HoistAdapter.Domain.Dto.SetHoistAlarm;
public class SetHoistAlarmDto
{
/// <summary>
/// 提升机编号
/// </summary>
public string hoistCode { get; set; }
/// <summary>
/// 设备序号
/// </summary>
public int deviceSerialNo { get; set; }
/// <summary>
/// 当前楼层
/// </summary>
public int floor { get; set; }
/// <summary>
/// 参数Key
/// </summary>
public string key{get;set;}
/// <summary>
/// 下发值
/// </summary>
public int value { get; set; }
}

@ -0,0 +1,35 @@
#region << 版 本 注 释 >>
/*--------------------------------------------------------------------
* (c) 2026 WenJY
* CLR4.0.30319.42000
* Mr.Wen's MacBook Pro
* Sln.Wcs.HoistAdapter.Domain.Dto.SetHoistAlarm
* 4E55E41C-4565-4E47-9907-E53E338E0F2A
*
* WenJY
*
* 2026-06-03 16:09:03
* V1.0.0
*
*
*--------------------------------------------------------------------
*
*
*
*
* V1.0.0
*--------------------------------------------------------------------*/
#endregion << 版 本 注 释 >>
using Sln.Wcs.Common.Domain.Dto;
using Sln.Wcs.HoistAdapter.Domain.Enum;
using Sln.Wcs.HoistAdapter.Domain.Model.SetHoistAlarm;
namespace Sln.Wcs.HoistAdapter.Domain.Dto.SetHoistAlarm;
public class SetHoistAlarmResultDto:ResultDto<HoistStatusEnum,SetHoistAlarmResultModel>
{
}

@ -4,7 +4,7 @@
* (c) 2026 WenJY
* CLR4.0.30319.42000
* Mr.Wen's MacBook Pro
* Sln.Wcs.HoistAdapter.Domain.Domain.HoistTaskExecutor
* Sln.Wcs.HoistAdapter.Domain.Domain.SetHoistTask
* 217D981D-DC12-4004-9B15-30E2C1D091C1
*
* WenJY
@ -23,9 +23,9 @@
#endregion << 版 本 注 释 >>
namespace Sln.Wcs.HoistAdapter.Domain.Dto.HoistTaskExecutor;
namespace Sln.Wcs.HoistAdapter.Domain.Dto.SetHoistTask;
public class HoistTaskExeDto
public class SetHoistTaskDto
{
/// <summary>
/// 提升机编号

@ -4,7 +4,7 @@
* (c) 2026 WenJY
* CLR4.0.30319.42000
* Mr.Wen's MacBook Pro
* Sln.Wcs.HoistAdapter.Domain.Domain.HoistTaskExecutor
* Sln.Wcs.HoistAdapter.Domain.Domain.SetHoistTask
* 399F7475-BEC6-42FA-AF32-AC99F5CBC35F
*
* WenJY
@ -25,11 +25,11 @@
using Sln.Wcs.Common.Domain.Dto;
using Sln.Wcs.HoistAdapter.Domain.Enum;
using Sln.Wcs.HoistAdapter.Domain.Model.HoistTaskExecutor;
using Sln.Wcs.HoistAdapter.Domain.Model.SetHoistTask;
namespace Sln.Wcs.HoistAdapter.Domain.Dto.HoistTaskExecutor;
public class HoistTaskExeResultDto:ResultDto<HoistStatusEnum,HoistTaskExeResultModel>
public class SetHoistTaskResultDto:ResultDto<HoistStatusEnum,SetHoistTaskResultModel>
{
}

@ -4,7 +4,7 @@
* (c) 2026 WenJY
* CLR4.0.30319.42000
* Mr.Wen's MacBook Pro
* Sln.Wcs.HoistAdapter.Domain.Model.HoistControl
* Sln.Wcs.HoistAdapter.Domain.Model.SetHoistAction
* 4974C976-A0D5-4FB2-B4AD-F45E11935008
*
* WenJY
@ -23,9 +23,9 @@
#endregion << 版 本 注 释 >>
namespace Sln.Wcs.HoistAdapter.Domain.Model.HoistControl;
namespace Sln.Wcs.HoistAdapter.Domain.Model.SetHoistAction;
public class HoistControlResultModel
public class SetHoistActionResultModel
{
/// <summary>
/// 返回码

@ -0,0 +1,39 @@
#region << 版 本 注 释 >>
/*--------------------------------------------------------------------
* (c) 2026 WenJY
* CLR4.0.30319.42000
* Mr.Wen's MacBook Pro
* Sln.Wcs.HoistAdapter.Domain.Model.SetHoistAlarm
* 697FD24A-CA2C-4282-A4B3-DEFD2A76915D
*
* WenJY
*
* 2026-06-03 16:12:23
* V1.0.0
*
*
*--------------------------------------------------------------------
*
*
*
*
* V1.0.0
*--------------------------------------------------------------------*/
#endregion << 版 本 注 释 >>
namespace Sln.Wcs.HoistAdapter.Domain.Model.SetHoistAlarm;
public class SetHoistAlarmResultModel
{
/// <summary>
/// 返回码
/// </summary>
public string code { get; set; }
/// <summary>
/// 返回消息
/// </summary>
public string message { get; set; }
}

@ -4,7 +4,7 @@
* (c) 2026 WenJY
* CLR4.0.30319.42000
* Mr.Wen's MacBook Pro
* Sln.Wcs.HoistAdapter.Domain.Model.HoistTaskExecutor
* Sln.Wcs.HoistAdapter.Domain.Model.SetHoistTask
* A4E0666A-66FA-46AE-B783-E385F905092E
*
* WenJY
@ -23,9 +23,9 @@
#endregion << 版 本 注 释 >>
namespace Sln.Wcs.HoistAdapter.Domain.Model.HoistTaskExecutor;
namespace Sln.Wcs.HoistAdapter.Domain.Model.SetHoistTask;
public class HoistTaskExeResultModel
public class SetHoistTaskResultModel
{
/// <summary>
/// 返回码

@ -24,27 +24,29 @@
#endregion << 版 本 注 释 >>
using Sln.Wcs.HoistAdapter.Domain.Dto.GetHoistStatus;
using Sln.Wcs.HoistAdapter.Domain.Dto.HoistControl;
using Sln.Wcs.HoistAdapter.Domain.Dto.HoistTaskExecutor;
using Sln.Wcs.HoistAdapter.Domain.Dto.SetHoistAction;
using Sln.Wcs.HoistAdapter.Domain.Dto.SetHoistAlarm;
using Sln.Wcs.HoistAdapter.Domain.Dto.SetHoistTask;
namespace Sln.Wcs.HoistAdapter.Service;
public interface IHoistService
{
/// <summary>
/// 提升机控制
/// 设置提升机动作
/// MOVE_TO, STOP, EMERGENCY_STOP, RESET, CALIBRATE
/// </summary>
/// <param name="hoistControlDto"></param>
/// <param name="setHoistActionDto"></param>
/// <returns></returns>
HoistControlResultDto HoistControl(HoistControlDto hoistControlDto);
SetHoistActionResultDto SetHoistAction(SetHoistActionDto setHoistActionDto);
/// <summary>
/// 提升机任务执行
/// 设置提升机任务
/// </summary>
/// <param name="hoistTaskExeDto"></param>
/// <param name="setHoistTaskDto"></param>
/// <returns></returns>
HoistTaskExeResultDto HoistTaskExecutor(HoistTaskExeDto hoistTaskExeDto);
SetHoistTaskResultDto SetHoistTask(SetHoistTaskDto setHoistTaskDto);
/// <summary>
/// 获取提升机状态
@ -52,4 +54,11 @@ public interface IHoistService
/// <param name="hoistStatusDto"></param>
/// <returns></returns>
GetHoistStatusResultDto GetHoistStatus(GetHoistStatusDto hoistStatusDto);
/// <summary>
/// 设置提升机报警
/// </summary>
/// <param name="hoistAlarmDto"></param>
/// <returns></returns>
SetHoistAlarmResultDto SetHoistAlarm(SetHoistAlarmDto hoistAlarmDto);
}

@ -24,12 +24,15 @@
#endregion << 版 本 注 释 >>
using Sln.Wcs.HoistAdapter.Domain.Dto.GetHoistStatus;
using Sln.Wcs.HoistAdapter.Domain.Dto.HoistControl;
using Sln.Wcs.HoistAdapter.Domain.Dto.HoistTaskExecutor;
using Sln.Wcs.HoistAdapter.Domain.Dto.SetHoistAction;
using Sln.Wcs.HoistAdapter.Domain.Dto.SetHoistAlarm;
using Sln.Wcs.HoistAdapter.Domain.Dto.SetHoistTask;
using Sln.Wcs.HoistAdapter.Domain.Enum;
using Sln.Wcs.HoistAdapter.Domain.Model.GetHoistStatus;
using Sln.Wcs.HoistAdapter.Domain.Model.HoistControl;
using Sln.Wcs.HoistAdapter.Domain.Model.HoistTaskExecutor;
using Sln.Wcs.HoistAdapter.Domain.Model.SetHoistAction;
using Sln.Wcs.HoistAdapter.Domain.Model.SetHoistAlarm;
using Sln.Wcs.HoistAdapter.Domain.Model.SetHoistTask;
using Sln.Wcs.HoistAdapter.Util;
using Sln.Wcs.HoistSdk;
@ -48,35 +51,35 @@ public class HoistService:IHoistService
}
/// <summary>
/// 提升机控制
/// 设置提升机动作
/// </summary>
/// <param name="hoistControlDto"></param>
/// <param name="setHoistActionDto"></param>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
public HoistControlResultDto HoistControl(HoistControlDto hoistControlDto)
public SetHoistActionResultDto SetHoistAction(SetHoistActionDto setHoistActionDto)
{
try
{
if (hoistControlDto == null)
if (setHoistActionDto == null)
{
throw new ArgumentException($"输入参数为空。");
}
var data = new HoistSdk.Dto.HoistControl.HoistControlDto()
var data = new HoistSdk.Dto.HoistControl.SetHoistActionDto()
{
hoistCode = hoistControlDto.hoistCode,
action = (HoistSdk.Enum.ControlAction)hoistControlDto.action,
hoistCode = setHoistActionDto.hoistCode,
action = (HoistSdk.Enum.ControlAction)setHoistActionDto.action,
};
var resp = this.hoistSdk.HoistControl(data);
var resp = this.hoistSdk.SetHoistAction(data);
bool parseRes = this.codeUtil.parse(resp.code, resp.message, out HoistStatusEnum hoistStatusEnum);
return new HoistControlResultDto()
return new SetHoistActionResultDto()
{
code = hoistStatusEnum,
msg = resp.message,
data = new HoistControlResultModel()
data = new SetHoistActionResultModel()
{
code = resp.code,
message = resp.message,
@ -87,7 +90,7 @@ public class HoistService:IHoistService
}
catch (Exception ex)
{
return new HoistControlResultDto()
return new SetHoistActionResultDto()
{
code = HoistStatusEnum.SDK,
msg = ex.Message,
@ -96,39 +99,39 @@ public class HoistService:IHoistService
}
/// <summary>
/// 提升机任务执行
/// 设置提升机任务
/// </summary>
/// <param name="hoistTaskExeDto"></param>
/// <param name="setHoistTaskDto"></param>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
public HoistTaskExeResultDto HoistTaskExecutor(HoistTaskExeDto hoistTaskExeDto)
public SetHoistTaskResultDto SetHoistTask(SetHoistTaskDto setHoistTaskDto)
{
try
{
if (hoistTaskExeDto == null)
if (setHoistTaskDto == null)
{
throw new ArgumentException($"输入参数为空。");
}
var data = new HoistSdk.Dto.HoistTaskExecutor.HoistTaskExeDto()
var data = new HoistSdk.Dto.SetHoistTask.SetHoistTaskDto()
{
hoistCode = hoistTaskExeDto.hoistCode,
taskCode = hoistTaskExeDto.taskCode,
deviceSerialNo = hoistTaskExeDto.deviceSerialNo,
startPoint = hoistTaskExeDto.startPoint,
endPoint = hoistTaskExeDto.endPoint,
hoistCode = setHoistTaskDto.hoistCode,
taskCode = setHoistTaskDto.taskCode,
deviceSerialNo = setHoistTaskDto.deviceSerialNo,
startPoint = setHoistTaskDto.startPoint,
endPoint = setHoistTaskDto.endPoint,
};
var resp = this.hoistSdk.HoistTaskExecutor(data);
var resp = this.hoistSdk.SetHoistTask(data);
bool parseRes = this.codeUtil.parse(resp.code, resp.message, out HoistStatusEnum hoistStatusEnum);
return new HoistTaskExeResultDto()
return new SetHoistTaskResultDto()
{
code = hoistStatusEnum,
msg = resp.message,
data = new HoistTaskExeResultModel()
data = new SetHoistTaskResultModel()
{
code = resp.code,
message = resp.message,
@ -139,7 +142,7 @@ public class HoistService:IHoistService
}
catch (Exception ex)
{
return new HoistTaskExeResultDto()
return new SetHoistTaskResultDto()
{
code = HoistStatusEnum.SDK,
msg = ex.Message,
@ -194,4 +197,53 @@ public class HoistService:IHoistService
};
}
}
/// <summary>
/// 设置提升机报警
/// </summary>
/// <param name="hoistAlarmDto"></param>
/// <returns></returns>
/// <exception cref="ArgumentException"></exception>
public SetHoistAlarmResultDto SetHoistAlarm(SetHoistAlarmDto hoistAlarmDto)
{
try
{
if (hoistAlarmDto == null)
{
throw new ArgumentException($"输入参数为空。");
}
var data = new HoistSdk.Dto.SetHoistAlarm.SetHoistAlarmDto()
{
hoistCode = hoistAlarmDto.hoistCode,
deviceSerialNo = hoistAlarmDto.deviceSerialNo,
key = hoistAlarmDto.key,
value = hoistAlarmDto.value,
};
var resp = this.hoistSdk.SetHoistAlarm(data);
bool parseRes = this.codeUtil.parse(resp.code, resp.message, out HoistStatusEnum hoistStatusEnum);
return new SetHoistAlarmResultDto()
{
code = hoistStatusEnum,
msg = resp.message,
data = new SetHoistAlarmResultModel()
{
code = resp.code,
message = resp.message,
},
};
}
catch (Exception ex)
{
return new SetHoistAlarmResultDto()
{
code = HoistStatusEnum.SDK,
msg = ex.Message,
};
}
}
}

@ -25,8 +25,9 @@
using Newtonsoft.Json;
using Sln.Wcs.HoistAdapter.Domain.Dto.GetHoistStatus;
using Sln.Wcs.HoistAdapter.Domain.Dto.HoistControl;
using Sln.Wcs.HoistAdapter.Domain.Dto.HoistTaskExecutor;
using Sln.Wcs.HoistAdapter.Domain.Dto.SetHoistAction;
using Sln.Wcs.HoistAdapter.Domain.Dto.SetHoistTask;
using Sln.Wcs.HoistAdapter.Domain.Enum;
using Sln.Wcs.HoistAdapter.Service;
using Sln.Wcs.Model.Domain;
@ -34,6 +35,9 @@ using Sln.Wcs.Serilog;
namespace Sln.Wcs.HoistDispatcher;
/// <summary>
/// 提升机调度中心
/// </summary>
public class HoistDispatchHub
{
private readonly SerilogHelper _logger;
@ -43,6 +47,25 @@ public class HoistDispatchHub
_hoistAdapter = hoistAdapter;
_logger = logger;
}
/// <summary>
/// 接收托盘
/// </summary>
/// <param name="taskDetail"></param>
/// <param name="deviceInfo"></param>
public void ReceivePallet(LiveTaskDetail taskDetail,BaseDeviceInfo deviceInfo)
{
//读取托盘RFID信息
string palletStr = "202606030001";
if (taskDetail.palletBarcode == palletStr)
{
this.TaskRun(deviceInfo);
}
else
{
_logger.Info($"托盘条码与计划不符");
}
}
/// <summary>
/// 提升机启动:放置完成下发
@ -52,7 +75,7 @@ public class HoistDispatchHub
{
try
{
HoistControlResultDto res = _hoistAdapter.HoistControl(new HoistControlDto()
SetHoistActionResultDto res = _hoistAdapter.SetHoistAction(new SetHoistActionDto()
{
hoistCode = deviceInfo.hostCode,
deviceSerialNo = deviceInfo.deviceSerialNo,
@ -91,7 +114,7 @@ public class HoistDispatchHub
int endPoint = Convert.ToInt32(deviceInfo.deviceSerialNo + startFloor + endFloor);
//调用适配层下发 提升机调度任务
HoistTaskExeResultDto res = _hoistAdapter.HoistTaskExecutor(new HoistTaskExeDto()
SetHoistTaskResultDto res = _hoistAdapter.SetHoistTask(new SetHoistTaskDto()
{
hoistCode = deviceInfo.hostCode,
taskCode = liveTaskDetail.taskCode,

@ -4,7 +4,7 @@
* (c) 2026 WenJY
* CLR4.0.30319.42000
* Mr.Wen's MacBook Pro
* Sln.Wcs.HoistSdk.HoistControl
* Sln.Wcs.HoistSdk.SetHoistAction
* DBFC7326-690D-41AE-8ACA-E6447525508F
*
* WenJY
@ -27,7 +27,7 @@ using Sln.Wcs.HoistSdk.Enum;
namespace Sln.Wcs.HoistSdk.Dto.HoistControl;
public class HoistControlDto
public class SetHoistActionDto
{
/// <summary>
/// 提升机编号

@ -4,7 +4,7 @@
* (c) 2026 WenJY
* CLR4.0.30319.42000
* Mr.Wen's MacBook Pro
* Sln.Wcs.HoistSdk.HoistControl
* Sln.Wcs.HoistSdk.SetHoistAction
* C07056AD-8242-4096-88D0-B82DB5024F0E
*
* WenJY
@ -23,9 +23,9 @@
#endregion << 版 本 注 释 >>
namespace Sln.Wcs.HoistSdk.Dto.HoistControl;
namespace Sln.Wcs.HoistSdk.Dto.SetHoistAction;
public class HoistControlResultDto
public class SetHoistActionResultDto
{
/// <summary>
/// 返回码

@ -0,0 +1,54 @@
#region << 版 本 注 释 >>
/*--------------------------------------------------------------------
* (c) 2026 WenJY
* CLR4.0.30319.42000
* Mr.Wen's MacBook Pro
* Sln.Wcs.HoistSdk.Dto.SetHoistAlarm
* C0D133E2-89EB-4D5A-884B-BADEDC658F77
*
* WenJY
*
* 2026-06-03 16:02:41
* V1.0.0
*
*
*--------------------------------------------------------------------
*
*
*
*
* V1.0.0
*--------------------------------------------------------------------*/
#endregion << 版 本 注 释 >>
namespace Sln.Wcs.HoistSdk.Dto.SetHoistAlarm;
public class SetHoistAlarmDto
{
/// <summary>
/// 提升机编号
/// </summary>
public string hoistCode { get; set; }
/// <summary>
/// 设备序号
/// </summary>
public int deviceSerialNo { get; set; }
/// <summary>
/// 当前楼层
/// </summary>
public int floor { get; set; }
/// <summary>
/// 参数Key
/// </summary>
public string key{get;set;}
/// <summary>
/// 下发值
/// </summary>
public int value { get; set; }
}

@ -0,0 +1,39 @@
#region << 版 本 注 释 >>
/*--------------------------------------------------------------------
* (c) 2026 WenJY
* CLR4.0.30319.42000
* Mr.Wen's MacBook Pro
* Sln.Wcs.HoistSdk.Dto.SetHoistAlarm
* 368D0B1B-1F71-4B78-A64D-F17B973ADDC2
*
* WenJY
*
* 2026-06-03 16:02:50
* V1.0.0
*
*
*--------------------------------------------------------------------
*
*
*
*
* V1.0.0
*--------------------------------------------------------------------*/
#endregion << 版 本 注 释 >>
namespace Sln.Wcs.HoistSdk.Dto.SetHoistAlarm;
public class SetHoistAlarmResultDto
{
/// <summary>
/// 返回码
/// </summary>
public string code { get; set; }
/// <summary>
/// 返回消息
/// </summary>
public string message { get; set; }
}

@ -4,7 +4,7 @@
* (c) 2026 WenJY
* CLR4.0.30319.42000
* Mr.Wen's MacBook Pro
* Sln.Wcs.HoistSdk.Domain.HoistTaskExecutor
* Sln.Wcs.HoistSdk.Domain.SetHoistTask
* 56358DE7-36A6-4906-926B-DFDF21A3EBE2
*
* WenJY
@ -23,9 +23,9 @@
#endregion << 版 本 注 释 >>
namespace Sln.Wcs.HoistSdk.Dto.HoistTaskExecutor;
namespace Sln.Wcs.HoistSdk.Dto.SetHoistTask;
public class HoistTaskExeDto
public class SetHoistTaskDto
{
/// <summary>
/// 提升机编号

@ -4,7 +4,7 @@
* (c) 2026 WenJY
* CLR4.0.30319.42000
* Mr.Wen's MacBook Pro
* Sln.Wcs.HoistSdk.Domain.HoistTaskExecutor
* Sln.Wcs.HoistSdk.Domain.SetHoistTask
* 5C951BAC-FDE6-4458-A559-BF31508EEE64
*
* WenJY
@ -23,9 +23,9 @@
#endregion << 版 本 注 释 >>
namespace Sln.Wcs.HoistSdk.Dto.HoistTaskExecutor;
namespace Sln.Wcs.HoistSdk.Dto.SetHoistTask;
public class HoistTaskExeResultDto
public class SetHoistTaskResultDto
{
/// <summary>
/// 返回码

@ -28,7 +28,9 @@ using Newtonsoft.Json.Linq;
using Sln.Wcs.HoistSdk.Config;
using Sln.Wcs.HoistSdk.Dto.GetHoistStatus;
using Sln.Wcs.HoistSdk.Dto.HoistControl;
using Sln.Wcs.HoistSdk.Dto.HoistTaskExecutor;
using Sln.Wcs.HoistSdk.Dto.SetHoistAction;
using Sln.Wcs.HoistSdk.Dto.SetHoistAlarm;
using Sln.Wcs.HoistSdk.Dto.SetHoistTask;
using Sln.Wcs.Model.Configs;
using Sln.Wcs.Plc.Service;
@ -46,14 +48,19 @@ public class HoistSdk:IHoistSdk
_plcs = plcs;
}
public HoistControlResultDto HoistControl(HoistControlDto hoistControlDto)
/// <summary>
/// 设置提升机动作
/// </summary>
/// <param name="setHoistActionDto"></param>
/// <returns></returns>
public SetHoistActionResultDto SetHoistAction(SetHoistActionDto setHoistActionDto)
{
HoistControlResultDto result = new HoistControlResultDto();
SetHoistActionResultDto result = new SetHoistActionResultDto();
try
{
string paramAddress = GetPlcParam(hoistControlDto.hoistCode,hoistControlDto.deviceSerialNo,"放置完成");
var plc = _plcs.Where(x => x.ConfigKey.Equals(hoistControlDto.hoistCode)).ToList().First();
var res = plc.writeInt16ByAddress(paramAddress, (int)hoistControlDto.action);
string paramAddress = GetPlcParam(setHoistActionDto.hoistCode,setHoistActionDto.deviceSerialNo,"放置完成");
var plc = _plcs.Where(x => x.ConfigKey.Equals(setHoistActionDto.hoistCode)).ToList().First();
var res = plc.writeInt16ByAddress(paramAddress, (int)setHoistActionDto.action);
if (res)
{
result.code = "0";
@ -73,14 +80,19 @@ public class HoistSdk:IHoistSdk
return result;
}
public HoistTaskExeResultDto HoistTaskExecutor(HoistTaskExeDto hoistTaskExeDto)
/// <summary>
/// 设置提升机任务
/// </summary>
/// <param name="setHoistTaskDto"></param>
/// <returns></returns>
public SetHoistTaskResultDto SetHoistTask(SetHoistTaskDto setHoistTaskDto)
{
HoistTaskExeResultDto result = new HoistTaskExeResultDto();
SetHoistTaskResultDto result = new SetHoistTaskResultDto();
try
{
string paramAddress = GetPlcParam(hoistTaskExeDto.hoistCode,hoistTaskExeDto.deviceSerialNo,"任务执行指令");
var plc = _plcs.Where(x => x.ConfigKey.Equals(hoistTaskExeDto.hoistCode)).ToList().First();
var res = plc.writeInt16ByAddress(paramAddress, hoistTaskExeDto.endPoint);
string paramAddress = GetPlcParam(setHoistTaskDto.hoistCode,setHoistTaskDto.deviceSerialNo,"任务执行指令");
var plc = _plcs.Where(x => x.ConfigKey.Equals(setHoistTaskDto.hoistCode)).ToList().First();
var res = plc.writeInt16ByAddress(paramAddress, setHoistTaskDto.endPoint);
if (res)
{
result.code = "0";
@ -100,6 +112,11 @@ public class HoistSdk:IHoistSdk
return result;
}
/// <summary>
/// 获取提升机状态
/// </summary>
/// <param name="hoistStatusDto"></param>
/// <returns></returns>
public GetHoistStatusResultDto GetHoistStatus(GetHoistStatusDto hoistStatusDto)
{
GetHoistStatusResultDto result = new GetHoistStatusResultDto();
@ -163,6 +180,45 @@ public class HoistSdk:IHoistSdk
return result;
}
/// <summary>
/// 设置提升机报警
/// </summary>
/// <param name="hoistAlarmDto"></param>
/// <returns></returns>
public SetHoistAlarmResultDto SetHoistAlarm(SetHoistAlarmDto hoistAlarmDto)
{
SetHoistAlarmResultDto result = new SetHoistAlarmResultDto();
try
{
string paramAddress = GetPlcParam(hoistAlarmDto.hoistCode,hoistAlarmDto.deviceSerialNo,hoistAlarmDto.key);
var plc = _plcs.Where(x => x.ConfigKey.Equals(hoistAlarmDto.hoistCode)).ToList().First();
var res = plc.writeInt16ByAddress(paramAddress, hoistAlarmDto.value);
if (res)
{
result.code = "0";
result.message = "设置成功";
}
else
{
result.code = "99";
result.message = "设置失败";
}
}
catch (Exception e)
{
result.code = "99";
result.message = e.Message;
}
return result;
}
/// <summary>
/// 获取参数地址
/// </summary>
/// <param name="hostCode"></param>
/// <param name="deviceSerialNo"></param>
/// <param name="paramName"></param>
/// <returns></returns>
private string GetPlcParam(string hostCode,int deviceSerialNo,string paramName)
{
List<dynamic> paramStr = JsonConvert.DeserializeObject<List<dynamic>>(_hoistConfig.hoist_plc_param);

@ -25,7 +25,9 @@
using Sln.Wcs.HoistSdk.Dto.GetHoistStatus;
using Sln.Wcs.HoistSdk.Dto.HoistControl;
using Sln.Wcs.HoistSdk.Dto.HoistTaskExecutor;
using Sln.Wcs.HoistSdk.Dto.SetHoistAction;
using Sln.Wcs.HoistSdk.Dto.SetHoistAlarm;
using Sln.Wcs.HoistSdk.Dto.SetHoistTask;
namespace Sln.Wcs.HoistSdk;
@ -38,16 +40,16 @@ public interface IHoistSdk
/// 提升机控制
/// MOVE_TO, STOP, EMERGENCY_STOP, RESET, CALIBRATE
/// </summary>
/// <param name="hoistControlDto"></param>
/// <param name="setHoistActionDto"></param>
/// <returns></returns>
HoistControlResultDto HoistControl(HoistControlDto hoistControlDto);
SetHoistActionResultDto SetHoistAction(SetHoistActionDto setHoistActionDto);
/// <summary>
/// 提升机任务执行
/// </summary>
/// <param name="hoistTaskExeDto"></param>
/// <param name="setHoistTaskDto"></param>
/// <returns></returns>
HoistTaskExeResultDto HoistTaskExecutor(HoistTaskExeDto hoistTaskExeDto);
SetHoistTaskResultDto SetHoistTask(SetHoistTaskDto setHoistTaskDto);
/// <summary>
/// 获取提升机状态
@ -56,4 +58,10 @@ public interface IHoistSdk
/// <returns></returns>
GetHoistStatusResultDto GetHoistStatus(GetHoistStatusDto hoistStatusDto);
/// <summary>
/// 设置提升机报警
/// </summary>
/// <param name="hoistAlarmDto"></param>
/// <returns></returns>
SetHoistAlarmResultDto SetHoistAlarm(SetHoistAlarmDto hoistAlarmDto);
}
Loading…
Cancel
Save