using System;
|
using System.Collections.Generic;
|
using System.Text;
|
using System.Linq;
|
using System.Threading;
|
using WIDESEAWCS_Model.Models;
|
using WIDESEAWCS_Core;
|
using WIDESEAWCS_Tasks.StackerCraneJob;
|
using WIDESEAWCS_QuartzJob;
|
|
namespace WIDESEAWCS_Tasks
|
{
|
public class StackerExecutor
|
{
|
/// <summary>
|
/// 下发堆垛机任务
|
/// </summary>
|
/// <param name="commonStackerCrane">堆垛机连接</param>
|
/// <param name="stacktaskinfo">任务对象</param> //SendHW_StackerTask
|
/// <returns></returns>
|
public static WebResponseContent SendStackerTask(STK commonStackerCrane, Dt_Task stacktaskinfo, string scName)
|
{
|
WebResponseContent content = new WebResponseContent();
|
try
|
{
|
var formInfo = stacktaskinfo.SourceAddress.Split("-");
|
var endInfo = stacktaskinfo.TargetAddress.Split("-");
|
|
commonStackerCrane.SetValue(StackerCraneDBName.S_Row, formInfo[0], scName);//来源货位行
|
commonStackerCrane.SetValue(StackerCraneDBName.S_Bay, formInfo[1], scName);//来源货位列
|
commonStackerCrane.SetValue(StackerCraneDBName.S_level, formInfo[2], scName);//来源货位层
|
commonStackerCrane.SetValue(StackerCraneDBName.E_Row, endInfo[0], scName);//目的货位行
|
commonStackerCrane.SetValue(StackerCraneDBName.E_Bay, endInfo[1], scName);//目的货位列
|
commonStackerCrane.SetValue(StackerCraneDBName.E_level, endInfo[2], scName);//目的货位层
|
|
commonStackerCrane.SetValue(StackerCraneDBName.WorkType, 1, scName);//工作命令代码
|
commonStackerCrane.SetValue(StackerCraneDBName.TaskNum, stacktaskinfo.TaskNum, scName);//工作序号
|
commonStackerCrane.SetValue(StackerCraneDBName.RFID, stacktaskinfo.PalletCode.PadLeft(4, '0') + stacktaskinfo.PVI, scName);//pvi
|
|
#region todo PLC写入后读取验证
|
//commonStackerCrane.GetValue<StackerCraneDBName, Int16>(StackerCraneDBName.S_Row, scName);//来源货位行
|
//commonStackerCrane.GetValue<StackerCraneDBName, Int16>(StackerCraneDBName.S_Bay, scName);//来源货位列
|
//commonStackerCrane.GetValue<StackerCraneDBName, Int16>(StackerCraneDBName.S_level, scName);//来源货位层
|
//commonStackerCrane.GetValue<StackerCraneDBName, Int16>(StackerCraneDBName.E_Row, scName);//目的货位行
|
//commonStackerCrane.GetValue<StackerCraneDBName, Int16>(StackerCraneDBName.E_Bay, scName);//目的货位列
|
//commonStackerCrane.GetValue<StackerCraneDBName, Int16>(StackerCraneDBName.E_level, scName);//目的货位层
|
//commonStackerCrane.SetValue(StackerCraneDBName.WorkType, 1, scName);//工作命令代码
|
//commonStackerCrane.SetValue(StackerCraneDBName.TaskNum, stacktaskinfo.TaskNum, scName);//工作序号
|
#endregion
|
|
commonStackerCrane.SetValue(StackerCraneDBName.CMD, 1, scName);//启动命令
|
|
content = content.OK();
|
}
|
catch (Exception ex)
|
{
|
content = content.Error(scName + "任务下发失败:" + ex.Message);
|
}
|
return content;
|
}
|
}
|
}
|