2025-03-23 13:09:36 +08:00

101 lines
2.6 KiB
C#

using Seyounth.Hyosung.Data.Models;
using Seyounth.Hyosung.Data.Models.Plc;
namespace Seyounth.Hyosung.Core.Plc;
public interface IHyosungPlcService
{
Task StartAsync(CancellationToken token);
Task StopAsync();
/// <summary>
/// 写入品种到PLC
/// </summary>
/// <param name="variety"></param>
/// <returns></returns>
Task WriteVarietyAsync(Variety variety);
/// <summary>
/// 写入扫码结果
/// </summary>
/// <param name="result">结果</param>
/// <param name="varietyId">品类ID</param>
/// <param name="yarnCode">纱码</param>
/// <returns></returns>
Task WriteScanYarnResultAsync(bool result, short? varietyId = null, string? yarnCode = null);
/// <summary>
/// 写入治具扫码结果
/// </summary>
/// <param name="fixtureId"></param>
/// <param name="result"></param>
/// <param name="fixtureCode"></param>
/// <returns></returns>
Task WriteScanFixtureResultAsync(int fixtureId, bool result, short? fixtureCode = null);
/// <summary>
/// 下线完成
/// </summary>
/// <returns></returns>
Task LeaveCompletedAsync();
/// <summary>
/// 写入托盘号
/// </summary>
/// <param name="index"></param>
/// <param name="trayCode"></param>
/// <returns></returns>
Task WriteTrayCodeAsync(int index, string trayCode);
/// <summary>
/// 写入收到的纱数量
/// </summary>
/// <param name="count"></param>
/// <returns></returns>
Task WriteReceivedYarnCountAsync(int count);
Task WritePackLineOptionAsync(PackLineOption option);
Task WritePrintLableOptionsAsync(int side);
Task WritePrintLabelResultAsync(int index, bool result);
/// <summary>
/// Plc请求扫描产品
/// </summary>
event Func<int, Task> OnPlcRequestScanProduct;
/// <summary>
/// Plc请求扫描治具
/// </summary>
event Func<int, Task> OnPlcRequestScanFixture;
/// <summary>
/// Plc请求下线
/// </summary>
event Func<PlcStackInfo, Task> OnPlcRequestLeavingProductionLine;
/// <summary>
/// Plc需要新的托盘号
/// </summary>
event Func<int, int, Task> OnPlcNeedNewTrayCode;
/// <summary>
/// Plc放入一次完成
/// </summary>
event Func<PlcStackingInfo, Task> OnPlcPutCompleted;
/// <summary>
/// Plc请求打包线选项
/// </summary>
event Func<string, Task> OnPlcRequestPackLineOption;
/// <summary>
/// 贴标站请求贴标
/// </summary>
event Func<int, int, Task> OnRequestPrintLabel;
event Func<string, Task> OnRequestGetPrintLableOption;
}