using IWareCC.Properties;
|
using IWareCommon.Enum.Conveyor;
|
using IWareCommon.Help;
|
using S7.Net;
|
using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Text;
|
using System.Threading;
|
using System.Threading.Tasks;
|
|
namespace IWareCC.Conveyor.Entity
|
{
|
public class ConveyorEntity
|
{
|
private System.Text.ASCIIEncoding ascii = new System.Text.ASCIIEncoding();
|
|
public int ConveyorType { get; set; }
|
|
/// <summary>
|
/// 输送线名称
|
/// </summary>
|
public string ConveyorName { get; set; }
|
/// <summary>
|
/// PLCl连接字符串
|
/// </summary>
|
public string PLCContionString { get; set; }
|
/// <summary>
|
/// 设备Id
|
/// </summary>
|
public int DeviceId { get; set; }
|
/// <summary>
|
/// 是否在线
|
/// </summary>
|
public bool IsOnline { get; set; }
|
/// <summary>
|
/// 下线次数
|
/// </summary>
|
public int OffLineTimes { get; set; }
|
|
/// <summary>
|
/// 上一次心跳数
|
/// </summary>
|
public int LastHandShake { get; set; }
|
|
/// <summary>
|
/// 连接PLC读的对象
|
/// </summary>
|
public PlcS7 RCVS71500 { get; set; }
|
/// <summary>
|
/// 连接PLC写的对象
|
/// </summary>
|
public PlcS7 WCVS71500 { get; set; }
|
|
#region 输送线信息写入
|
public int WHandShake { get; set; }
|
/// <summary>
|
/// 设备编号
|
/// </summary>
|
public string WConveyorNo { get; set; }
|
|
/// <summary>
|
/// 任务号
|
/// </summary>
|
public int WTaskNo { get; set; }
|
/// <summary>
|
/// 目标端口点
|
/// </summary>
|
public int WToStationNo { get; set; }
|
|
/// <summary>
|
/// 急停
|
/// </summary>
|
public bool WEStop { get; set; }
|
|
/// <summary>
|
/// 任务取消
|
/// </summary>
|
public bool WTaskCancel { get; set; }
|
|
/// <summary>
|
/// 确认收到任务完成
|
/// </summary>
|
public bool WConfirmTaskFinish { get; set; }
|
/// <summary>
|
/// 任务下完成信号
|
/// </summary>
|
public bool WSTP { get; set; }
|
#endregion
|
|
#region 输送线信息读取
|
/// <summary>
|
/// 心跳
|
/// </summary>
|
public int RHandShake { get; set; }
|
/// <summary>
|
/// 设备编号
|
/// </summary>
|
public string RConveyorNo { get; set; }
|
/// <summary>
|
/// 任务号
|
/// </summary>
|
public int RTaskNo { get; set; }
|
/// <summary>
|
/// 当前目标位置
|
/// </summary>
|
public int RDestination { get; set; }
|
|
/// <summary>
|
/// 是否有报警
|
/// </summary>
|
public bool RAlarm { get; set; }
|
|
/// <summary>
|
/// 光电1状态(1有货;2无货)
|
/// </summary>
|
public int RPh1 { get; set; }
|
/// <summary>
|
/// /// <summary>
|
/// 光电2状态(1有货;2无货)
|
/// </summary>
|
/// </summary>
|
public int RPh2 { get; set; }
|
|
/// <summary>
|
/// 光电1状态(1有货;2无货)
|
/// </summary>
|
public int RPh3 { get; set; }
|
|
/// <summary>
|
/// 任务完成
|
/// </summary>
|
public bool RTaskfinish { get; set; }
|
/// <summary>
|
/// 报警代码
|
/// </summary>
|
public int RAlarmCode { get; set; }
|
|
/// <summary>
|
/// 外形检测(0通过,1前超,2后超,3左超,4右超,5超高)
|
/// </summary>
|
public int RShape { get; set; }
|
/// <summary>
|
/// 任务收到确认
|
/// </summary>
|
public bool RAck { get; set; }
|
|
/// <summary>
|
/// 模式
|
/// </summary>
|
public int RMode { get; set; }
|
/// <summary>
|
/// 状态
|
/// </summary>
|
public int RState { get; set; }
|
|
/// <summary>
|
/// 状态,输送线的光电检测高度
|
/// </summary>
|
public int RHeight { get; set; }
|
#endregion
|
|
public OpcReadItem OpcReadItems { get; set; }
|
|
public OpcWriteItem OpcWriteItems { get; set; }
|
|
public ConveyorEntity() { }
|
|
public ConveyorEntity(string conveyorName, int deviceId, int type, PlcS7 plc)
|
{
|
this.ConveyorType = type;
|
this.ConveyorName = conveyorName;
|
this.DeviceId = deviceId;
|
this.WCVS71500 = plc;
|
switch (conveyorName)
|
{
|
#region 入库口线体
|
case "Line1030":
|
OpcWriteItems = new OpcWriteItem
|
{
|
TaskNo = "DB601.DBD232",
|
ToStationNo = "DB601.DBW236",
|
EStop = "DB601.DBX238.0",
|
TaskCancel = "DB601.DBX238.1",
|
STP = "DB601.DBX238.2",
|
};
|
OpcReadItems = new OpcReadItem
|
{
|
Mode = "DB600.DBW640",
|
Ph1 = "DB600.DBW642",
|
Ph2 = "DB600.DBW644",
|
State = "DB600.DBW646",
|
Alarm = "DB600.DBX648.0",
|
AlarmCode = "DB600.DBW650",
|
TaskNo = "DB600.DBD652",
|
Destination = "DB600.DBW656",
|
Ack = "DB600.DBX658.0",
|
Shape = "DB600.DBW644",
|
HandShake = "DB600.DBW0",
|
};
|
break;
|
case "Line1031":
|
OpcWriteItems = new OpcWriteItem
|
{
|
TaskNo = "DB601.DBD240",
|
ToStationNo = "DB601.DBW244",
|
EStop = "DB601.DBX246.0",
|
TaskCancel = "DB601.DBX246.1",
|
STP = "DB601.DBX246.2",
|
};
|
OpcReadItems = new OpcReadItem
|
{
|
Mode = "DB600.DBW662",
|
Ph1 = "DB600.DBW664",
|
Ph2 = "DB600.DBW666",
|
State = "DB600.DBW668",
|
Alarm = "DB600.DBX670.0",
|
AlarmCode = "DB600.DBW672",
|
TaskNo = "DB600.DBD674",
|
Destination = "DB600.DBW678",
|
Ack = "DB600.DBX680.0",
|
Shape = "DB600.DBW682",
|
HandShake = "DB600.DBW0",
|
};
|
break;
|
case "Line1032":
|
OpcWriteItems = new OpcWriteItem
|
{
|
TaskNo = "DB601.DBD248",
|
ToStationNo = "DB601.DBW252",
|
EStop = "DB601.DBX254.0",
|
TaskCancel = "DB601.DBX254.1",
|
STP = "DB601.DBX254.2",
|
};
|
OpcReadItems = new OpcReadItem
|
{
|
Mode = "DB600.DBW684",
|
Ph1 = "DB600.DBW686",
|
Ph2 = "DB600.DBW688",
|
State = "DB600.DBW690",
|
Alarm = "DB600.DBX692.0",
|
AlarmCode = "DB600.DBW694",
|
TaskNo = "DB600.DBD696",
|
Destination = "DB600.DBW700",
|
Ack = "DB600.DBX702.0",
|
Shape = "DB600.DBW704",
|
HandShake = "DB600.DBW0",
|
};
|
break;
|
case "Line1033":
|
OpcWriteItems = new OpcWriteItem
|
{
|
TaskNo = "DB601.DBD256",
|
ToStationNo = "DB601.DBW260",
|
EStop = "DB601.DBX262.0",
|
TaskCancel = "DB601.DBX262.1",
|
STP = "DB601.DBX262.2",
|
};
|
OpcReadItems = new OpcReadItem
|
{
|
Mode = "DB600.DBW706",
|
Ph1 = "DB600.DBW708",
|
Ph2 = "DB600.DBW710",
|
State = "DB600.DBW712",
|
Alarm = "DB600.DBX714.0",
|
AlarmCode = "DB600.DBW716",
|
TaskNo = "DB600.DBD718",
|
Destination = "DB600.DBW722",
|
Ack = "DB600.DBX724.0",
|
Shape = "DB600.DBW726",
|
HandShake = "DB600.DBW0",
|
};
|
break;
|
#endregion
|
|
#region 出库口线体
|
case "Line1016":
|
OpcWriteItems = new OpcWriteItem
|
{
|
TaskNo = "DB601.DBD120",
|
ToStationNo = "DB601.DBW124",
|
EStop = "DB601.DBX126.0",
|
TaskCancel = "DB601.DBX126.1",
|
STP = "DB601.DBX126.2",
|
};
|
OpcReadItems = new OpcReadItem
|
{
|
Mode = "DB600.DBW332",
|
Ph1 = "DB600.DBW334",
|
Ph2 = "DB600.DBW336",
|
State = "DB600.DBW338",
|
Alarm = "DB600.DBX340.0",
|
AlarmCode = "DB600.DBW342",
|
TaskNo = "DB600.DBD344",
|
Destination = "DB600.DBW348",
|
Ack = "DB600.DBX350.0",
|
Shape = "DB600.DBW352",
|
HandShake = "DB600.DBW0",
|
};
|
break;
|
case "Line1015":
|
OpcWriteItems = new OpcWriteItem
|
{
|
TaskNo = "DB601.DBD112",
|
ToStationNo = "DB601.DBW116",
|
EStop = "DB601.DBX118.0",
|
TaskCancel = "DB601.DBX118.1",
|
STP = "DB601.DBX118.2",
|
};
|
OpcReadItems = new OpcReadItem
|
{
|
Mode = "DB600.DBW310",
|
Ph1 = "DB600.DBW312",
|
Ph2 = "DB600.DBW314",
|
State = "DB600.DBW316",
|
Alarm = "DB600.DBX318.0",
|
AlarmCode = "DB600.DBW320",
|
TaskNo = "DB600.DBD322",
|
Destination = "DB600.DBW326",
|
Ack = "DB600.DBX328.0",
|
Shape = "DB600.DBW330",
|
HandShake = "DB600.DBW0",
|
};
|
break;
|
case "Line1014":
|
OpcWriteItems = new OpcWriteItem
|
{
|
TaskNo = "DB601.DBD104",
|
ToStationNo = "DB601.DBW108",
|
EStop = "DB601.DBX110.0",
|
TaskCancel = "DB601.DBX110.1",
|
STP = "DB601.DBX110.2",
|
};
|
OpcReadItems = new OpcReadItem
|
{
|
Mode = "DB600.DBW288",
|
Ph1 = "DB600.DBW290",
|
Ph2 = "DB600.DBW292",
|
State = "DB600.DBW294",
|
Alarm = "DB600.DBX296.0",
|
AlarmCode = "DB600.DBW298",
|
TaskNo = "DB600.DBD300",
|
Destination = "DB600.DBW304",
|
Ack = "DB600.DBX306.0",
|
Shape = "DB600.DBW308",
|
HandShake = "DB600.DBW0",
|
};
|
break;
|
case "Line1013":
|
OpcWriteItems = new OpcWriteItem
|
{
|
TaskNo = "DB601.DBD96",
|
ToStationNo = "DB601.DBW100",
|
EStop = "DB601.DBX102.0",
|
TaskCancel = "DB601.DBX102.1",
|
STP = "DB601.DBX102.2",
|
};
|
OpcReadItems = new OpcReadItem
|
{
|
Mode = "DB600.DBW266",
|
Ph1 = "DB600.DBW268",
|
Ph2 = "DB600.DBW270",
|
State = "DB600.DBW272",
|
Alarm = "DB600.DBX274.0",
|
AlarmCode = "DB600.DBW276",
|
TaskNo = "DB600.DBD278",
|
Destination = "DB600.DBW282",
|
Ack = "DB600.DBX284.0",
|
Shape = "DB600.DBW286",
|
HandShake = "DB600.DBW0",
|
};
|
break;
|
#endregion
|
|
#region 入库小盘线体
|
|
case "Line1021":
|
OpcWriteItems = new OpcWriteItem
|
{
|
TaskNo = "DB601.DBD160",
|
ToStationNo = "DB601.DBW164",
|
EStop = "DB601.DBX166.0",
|
TaskCancel = "DB601.DBX166.1",
|
STP = "DB601.DBX166.2",
|
};
|
OpcReadItems = new OpcReadItem
|
{
|
Mode = "DB600.DBW442",
|
Ph1 = "DB600.DBW444",
|
Ph2 = "DB600.DBW446",
|
State = "DB600.DBW448",
|
Alarm = "DB600.DBX450.0",
|
AlarmCode = "DB600.DBW452",
|
TaskNo = "DB600.DBD454",
|
Destination = "DB600.DBW458",
|
Ack = "DB600.DBX460.0",
|
Shape = "DB600.DBW462",
|
HandShake = "DB600.DBW0",
|
};
|
break;
|
case "Line1022":
|
OpcWriteItems = new OpcWriteItem
|
{
|
TaskNo = "DB601.DBD168",
|
ToStationNo = "DB601.DBW172",
|
EStop = "DB601.DBX174.0",
|
TaskCancel = "DB601.DBX174.1",
|
STP = "DB601.DBX174.2",
|
};
|
OpcReadItems = new OpcReadItem
|
{
|
Mode = "DB600.DBW464",
|
Ph1 = "DB600.DBW466",
|
Ph2 = "DB600.DBW468",
|
State = "DB600.DBW470",
|
Alarm = "DB600.DBX472.0",
|
AlarmCode = "DB600.DBW474",
|
TaskNo = "DB600.DBD476",
|
Destination = "DB600.DBW480",
|
Ack = "DB600.DBX482.0",
|
Shape = "DB600.DBW484",
|
HandShake = "DB600.DBW0",
|
};
|
break;
|
case "Line1023":
|
OpcWriteItems = new OpcWriteItem
|
{
|
TaskNo = "DB601.DBD176",
|
ToStationNo = "DB601.DBW180",
|
EStop = "DB601.DBX182.0",
|
TaskCancel = "DB601.DBX182.1",
|
STP = "DB601.DBX182.2",
|
};
|
OpcReadItems = new OpcReadItem
|
{
|
Mode = "DB600.DBW486",
|
Ph1 = "DB600.DBW488",
|
Ph2 = "DB600.DBW490",
|
State = "DB600.DBW492",
|
Alarm = "DB600.DBX494.0",
|
AlarmCode = "DB600.DBW496",
|
TaskNo = "DB600.DBD498",
|
Destination = "DB600.DBW502",
|
Ack = "DB600.DBX504.0",
|
Shape = "DB600.DBW506",
|
HandShake = "DB600.DBW0",
|
};
|
break;
|
case "Line1024":
|
OpcWriteItems = new OpcWriteItem
|
{
|
TaskNo = "DB601.DBD184",
|
ToStationNo = "DB601.DBW188",
|
EStop = "DB601.DBX190.0",
|
TaskCancel = "DB601.DBX190.1",
|
STP = "DB601.DBX190.2",
|
};
|
OpcReadItems = new OpcReadItem
|
{
|
Mode = "DB600.DBW508",
|
Ph1 = "DB600.DBW510",
|
Ph2 = "DB600.DBW512",
|
State = "DB600.DBW514",
|
Alarm = "DB600.DBX516.0",
|
AlarmCode = "DB600.DBW518",
|
TaskNo = "DB600.DBD520",
|
Destination = "DB600.DBW524",
|
Ack = "DB600.DBX526.0",
|
Shape = "DB600.DBW528",
|
HandShake = "DB600.DBW0",
|
};
|
break;
|
|
|
#endregion
|
|
#region 入库大盘线体
|
|
case "Line1026":
|
OpcWriteItems = new OpcWriteItem
|
{
|
TaskNo = "DB601.DBD200",
|
ToStationNo = "DB601.DBW204",
|
EStop = "DB601.DBX206.0",
|
TaskCancel = "DB601.DBX206.1",
|
STP = "DB601.DBX206.2",
|
};
|
OpcReadItems = new OpcReadItem
|
{
|
Mode = "DB600.DBW552",
|
Ph1 = "DB600.DBW554",
|
Ph2 = "DB600.DBW556",
|
State = "DB600.DBW558",
|
Alarm = "DB600.DBX560.0",
|
AlarmCode = "DB600.DBW562",
|
TaskNo = "DB600.DBD564",
|
Destination = "DB600.DBW568",
|
Ack = "DB600.DBX570.0",
|
Shape = "DB600.DBW572",
|
HandShake = "DB600.DBW0",
|
};
|
break;
|
case "Line1027":
|
OpcWriteItems = new OpcWriteItem
|
{
|
TaskNo = "DB601.DBD208",
|
ToStationNo = "DB601.DBW212",
|
EStop = "DB601.DBX214.0",
|
TaskCancel = "DB601.DBX214.1",
|
STP = "DB601.DBX214.2",
|
};
|
OpcReadItems = new OpcReadItem
|
{
|
Mode = "DB600.DBW574",
|
Ph1 = "DB600.DBW576",
|
Ph2 = "DB600.DBW578",
|
State = "DB600.DBW580",
|
Alarm = "DB600.DBX582.0",
|
AlarmCode = "DB600.DBW584",
|
TaskNo = "DB600.DBD586",
|
Destination = "DB600.DBW590",
|
Ack = "DB600.DBX592.0",
|
Shape = "DB600.DBW594",
|
HandShake = "DB600.DBW0",
|
};
|
break;
|
case "Line1028":
|
OpcWriteItems = new OpcWriteItem
|
{
|
TaskNo = "DB601.DBD216",
|
ToStationNo = "DB601.DBW220",
|
EStop = "DB601.DBX222.0",
|
TaskCancel = "DB601.DBX222.1",
|
STP = "DB601.DBX222.2",
|
};
|
OpcReadItems = new OpcReadItem
|
{
|
Mode = "DB600.DBW596",
|
Ph1 = "DB600.DBW598",
|
Ph2 = "DB600.DBW600",
|
State = "DB600.DBW602",
|
Alarm = "DB600.DBX604.0",
|
AlarmCode = "DB600.DBW606",
|
TaskNo = "DB600.DBD608",
|
Destination = "DB600.DBW612",
|
Ack = "DB600.DBX614.0",
|
Shape = "DB600.DBW616",
|
HandShake = "DB600.DBW0",
|
};
|
break;
|
case "Line1029":
|
OpcWriteItems = new OpcWriteItem
|
{
|
TaskNo = "DB601.DBD224",
|
ToStationNo = "DB601.DBW228",
|
EStop = "DB601.DBX230.0",
|
TaskCancel = "DB601.DBX230.1",
|
STP = "DB601.DBX230.2",
|
};
|
OpcReadItems = new OpcReadItem
|
{
|
Mode = "DB600.DBW618",
|
Ph1 = "DB600.DBW620",
|
Ph2 = "DB600.DBW622",
|
State = "DB600.DBW624",
|
Alarm = "DB600.DBX626.0",
|
AlarmCode = "DB600.DBW628",
|
TaskNo = "DB600.DBD630",
|
Destination = "DB600.DBW634",
|
Ack = "DB600.DBX636.0",
|
Shape = "DB600.DBW638",
|
HandShake = "DB600.DBW0",
|
};
|
break;
|
|
#endregion
|
|
#region 人工分拣线体
|
case "Line1001":
|
OpcWriteItems = new OpcWriteItem
|
{
|
TaskNo = "DB601.DBD0",
|
ToStationNo = "DB601.DBW4",
|
EStop = "DB601.DBX6.0",
|
TaskCancel = "DB601.DBX6.1",
|
STP = "DB601.DBX6.2",
|
};
|
OpcReadItems = new OpcReadItem
|
{
|
Mode = "DB600.DBW2",
|
Ph1 = "DB600.DBW4",
|
Ph2 = "DB600.DBW6",
|
State = "DB600.DBW8",
|
Alarm = "DB600.DBX10.0",
|
AlarmCode = "DB600.DBW12",
|
TaskNo = "DB600.DBD14",
|
Destination = "DB600.DBW18",
|
Ack = "DB600.DBX20.0",
|
Shape = "DB600.DBW22",
|
HandShake = "DB600.DBW0",
|
};
|
break;
|
|
#endregion
|
|
#region 助力臂分拣1线体
|
case "Line1002":
|
OpcWriteItems = new OpcWriteItem
|
{
|
TaskNo = "DB601.DBD8",
|
ToStationNo = "DB601.DBW12",
|
EStop = "DB601.DBX14.0",
|
TaskCancel = "DB601.DBX14.1",
|
STP = "DB601.DBX14.2",
|
};
|
OpcReadItems = new OpcReadItem
|
{
|
Mode = "DB600.DBW24",
|
Ph1 = "DB600.DBW26",
|
Ph2 = "DB600.DBW28",
|
State = "DB600.DBW30",
|
Alarm = "DB600.DBX32.0",
|
AlarmCode = "DB600.DBW34",
|
TaskNo = "DB600.DBD36",
|
Destination = "DB600.DBW40",
|
Ack = "DB600.DBX42.0",
|
Shape = "DB600.DBW44",
|
HandShake = "DB600.DBW0",
|
};
|
break;
|
case "Line1003":
|
OpcWriteItems = new OpcWriteItem
|
{
|
TaskNo = "DB601.DBD16",
|
ToStationNo = "DB601.DBW20",
|
EStop = "DB601.DBX22.0",
|
TaskCancel = "DB601.DBX22.1",
|
STP = "DB601.DBX22.2",
|
};
|
OpcReadItems = new OpcReadItem
|
{
|
Mode = "DB600.DBW46",
|
Ph1 = "DB600.DBW48",
|
Ph2 = "DB600.DBW50",
|
State = "DB600.DBW52",
|
Alarm = "DB600.DBX54.0",
|
AlarmCode = "DB600.DBW56",
|
TaskNo = "DB600.DBD58",
|
Destination = "DB600.DBW62",
|
Ack = "DB600.DBX64.0",
|
Shape = "DB600.DBW66",
|
HandShake = "DB600.DBW0",
|
};
|
break;
|
case "Line1006":
|
OpcWriteItems = new OpcWriteItem
|
{
|
TaskNo = "DB601.DBD40",
|
ToStationNo = "DB601.DBW44",
|
EStop = "DB601.DBX46.0",
|
TaskCancel = "DB601.DBX46.1",
|
STP = "DB601.DBX46.2",
|
};
|
OpcReadItems = new OpcReadItem
|
{
|
Mode = "DB600.DBW112",
|
Ph1 = "DB600.DBW114",
|
Ph2 = "DB600.DBW116",
|
State = "DB600.DBW118",
|
Alarm = "DB600.DBX120.0",
|
AlarmCode = "DB600.DBW122",
|
TaskNo = "DB600.DBD124",
|
Destination = "DB600.DBW128",
|
Ack = "DB600.DBX130.0",
|
Shape = "DB600.DBW132",
|
HandShake = "DB600.DBW0",
|
};
|
break;
|
|
#endregion
|
|
#region 助力臂分拣2线体
|
case "Line1007":
|
OpcWriteItems = new OpcWriteItem
|
{
|
TaskNo = "DB601.DBD48",
|
ToStationNo = "DB601.DBW52",
|
EStop = "DB601.DBX54.0",
|
TaskCancel = "DB601.DBX54.1",
|
STP = "DB601.DBX54.2",
|
};
|
OpcReadItems = new OpcReadItem
|
{
|
Mode = "DB600.DBW134",
|
Ph1 = "DB600.DBW136",
|
Ph2 = "DB600.DBW138",
|
State = "DB600.DBW140",
|
Alarm = "DB600.DBX142.0",
|
AlarmCode = "DB600.DBW144",
|
TaskNo = "DB600.DBD146",
|
Destination = "DB600.DBW150",
|
Ack = "DB600.DBX152.0",
|
Shape = "DB600.DBW154",
|
HandShake = "DB600.DBW0",
|
};
|
break;
|
case "Line1008":
|
OpcWriteItems = new OpcWriteItem
|
{
|
TaskNo = "DB601.DBD56",
|
ToStationNo = "DB601.DBW60",
|
EStop = "DB601.DBX62.0",
|
TaskCancel = "DB601.DBX62.1",
|
STP = "DB601.DBX62.2",
|
};
|
OpcReadItems = new OpcReadItem
|
{
|
Mode = "DB600.DBW156",
|
Ph1 = "DB600.DBW158",
|
Ph2 = "DB600.DBW160",
|
State = "DB600.DBW162",
|
Alarm = "DB600.DBX164.0",
|
AlarmCode = "DB600.DBW166",
|
TaskNo = "DB600.DBD168",
|
Destination = "DB600.DBW172",
|
Ack = "DB600.DBX174.0",
|
Shape = "DB600.DBW176",
|
HandShake = "DB600.DBW0",
|
};
|
break;
|
case "Line1012":
|
OpcWriteItems = new OpcWriteItem
|
{
|
TaskNo = "DB601.DBD88",
|
ToStationNo = "DB601.DBW92",
|
EStop = "DB601.DBX94.0",
|
TaskCancel = "DB601.DBX94.1",
|
STP = "DB601.DBX94.2",
|
};
|
OpcReadItems = new OpcReadItem
|
{
|
Mode = "DB600.DBW244",
|
Ph1 = "DB600.DBW246",
|
Ph2 = "DB600.DBW248",
|
State = "DB600.DBW250",
|
Alarm = "DB600.DBX252.0",
|
AlarmCode = "DB600.DBW254",
|
TaskNo = "DB600.DBD256",
|
Destination = "DB600.DBW260",
|
Ack = "DB600.DBX262.0",
|
Shape = "DB600.DBW264",
|
HandShake = "DB600.DBW0",
|
};
|
break;
|
|
#endregion
|
}
|
|
}
|
|
/// <summary>
|
/// 发送任务
|
/// </summary>
|
/// <param name="deviceId"></param>
|
/// <param name="taskId"></param>
|
/// <param name="fromStationNo"></param>
|
/// <param name="toStationNo"></param>
|
/// <param name="barcode"></param>
|
/// <param name="cargoType"></param>
|
/// <param name="msg"></param>
|
/// <returns></returns>
|
public bool SendTask(int deviceId, int taskId, string toPlace, int palltype, out string msg)
|
{
|
try
|
{
|
msg = "";
|
if (!CanSendTask(deviceId, out msg))
|
{
|
return false;
|
}
|
bool b2 = this.WriteValue(this.OpcWriteItems.ToStationNo, toPlace);
|
bool b1 = this.WriteValue(this.OpcWriteItems.TaskNo, taskId);
|
// bool b3 = this.WriteValue(this.OpcWriteItems.STP, 1);
|
bool b4 = true;
|
if (this.ConveyorName == "Line1021")
|
{
|
b4 = this.WriteValue("DB601.DBW268", palltype);
|
}
|
if (this.ConveyorName == "Line1026")
|
{
|
b4 = this.WriteValue("DB601.DBW266", palltype);
|
}
|
if (!(b1 && b2 && b4))
|
{
|
msg = string.Format("向输送线{0}发送任务{1}失败", ConveyorName, taskId);
|
return false;
|
}
|
return true;
|
|
}
|
catch (Exception ex)
|
{
|
msg = ex.Message;
|
return false;
|
}
|
}
|
|
/// <summary>
|
/// 任务删除
|
/// </summary>
|
/// <param name="deviceId"></param>
|
/// <param name="taskId"></param>
|
/// <param name="msg"></param>
|
/// <returns></returns>
|
public bool DeleteTask(int deviceId, out string msg)
|
{
|
try
|
{
|
msg = "";
|
|
bool b1 = this.WriteValue(this.OpcWriteItems.TaskCancel, 1);
|
if (!(b1))
|
{
|
msg = string.Format("写入OPC失败", ConveyorName);
|
return false;
|
}
|
return true;
|
}
|
catch (Exception ex)
|
{
|
msg = ex.Message;
|
LogTextHelper.WriteLog(Resources.LogDir, this.ToString(), "DeleteTask", msg);
|
return false;
|
}
|
}
|
/// <summary>
|
/// 确认任务完成
|
/// </summary>
|
/// <param name="deviceId"></param>
|
/// <param name="taskId"></param>
|
/// <param name="msg"></param>
|
/// <returns></returns>
|
public bool ConfirmStp(int deviceId, out string msg)
|
{
|
try
|
{
|
msg = "";
|
|
var flag = this.WriteValue(this.OpcWriteItems.STP, false);
|
if (!flag)
|
{
|
msg = string.Format("向输送线{0}发送确认任务下发成功信号失败", ConveyorName);
|
return false;
|
}
|
return true;
|
}
|
catch (Exception ex)
|
{
|
msg = ex.Message;
|
return false;
|
}
|
}
|
|
|
/// <summary>
|
/// 判断任务是否完成
|
/// </summary>
|
/// <param name="deviceId"></param>
|
/// <param name="taskId"></param>
|
/// <param name="msg"></param>
|
/// <returns></returns>
|
public bool IsTaskFinish(int deviceId, int taskId, out string msg)
|
{
|
try
|
{
|
msg = "";
|
if (this.RTaskNo == taskId)
|
{
|
return this.RTaskfinish;
|
}
|
|
return false;
|
}
|
catch (Exception ex)
|
{
|
msg = ex.Message;
|
return false;
|
}
|
}
|
|
|
public bool CanSendTask(int deviceId, out string msg)
|
{
|
msg = "";
|
if (!IsOnline)
|
{
|
msg = "已离线";
|
return false;
|
}
|
if (RMode != (int)EConveyorMode.自动空闲模式)
|
{
|
msg = "当前非自动模式";
|
return false;
|
}
|
if (RState != (int)EConveyorState.空闲)
|
{
|
msg = "设备状态非空闲,无法执行其他任务";
|
return false;
|
}
|
return true;
|
}
|
|
public bool WriteValue(string addr, object value)
|
{
|
string msg = string.Empty;
|
if (!string.IsNullOrEmpty(addr))
|
{
|
try
|
{
|
if (!this.WCVS71500.IsConnected)
|
{
|
this.WCVS71500.Close();
|
Thread.Sleep(100);
|
this.WCVS71500.Open();
|
}
|
|
msg = this.WCVS71500.Write(addr, value).ToString();
|
if (msg != "NoError")
|
{
|
string msg1 = this.WCVS71500.Write(addr, value).ToString();
|
if (msg1 != "NoError")
|
{
|
this.WCVS71500.Close();
|
Thread.Sleep(100);
|
this.WCVS71500.Open();
|
LogTextHelper.WriteLog(Resources.LogDir, this.ToString(), this.ConveyorName + "WriteValue" + addr, msg);
|
return false;
|
}
|
else
|
{
|
return true;
|
}
|
}
|
else
|
{
|
return true;
|
}
|
}
|
catch
|
{
|
msg = addr + "写入失败 ";
|
LogTextHelper.WriteLog(Resources.LogDir, this.ToString(), this.ConveyorName + "WriteValue", msg);
|
return false;
|
}
|
}
|
else
|
{
|
msg = addr + "写入失败 ";
|
LogTextHelper.WriteLog(Resources.LogDir, this.ToString(), this.ConveyorName + "WriteValue", msg);
|
return false;
|
}
|
}
|
|
public object ReadValuePoint(string add)
|
{
|
|
try
|
{
|
if (!this.WCVS71500.IsConnected)
|
{
|
this.WCVS71500.Close();
|
Thread.Sleep(100);
|
this.WCVS71500.Open();
|
}
|
object MyPlcData = this.WCVS71500.Read(add);
|
if (MyPlcData.ToString() == "WrongVarFormat" || MyPlcData.ToString() == "10")
|
{
|
MyPlcData = this.WCVS71500.Read(add);
|
if (MyPlcData.ToString() == "WrongVarFormat" || MyPlcData.ToString() == "10")
|
{
|
MyPlcData = this.WCVS71500.Read(add);
|
}
|
}
|
return MyPlcData;
|
}
|
catch (Exception ex)
|
{
|
LogTextHelper.WriteLog(Resources.LogDir, this.ToString(), this.ConveyorName + "ReadValuePoint", ex.Message);
|
return 0;
|
}
|
|
}
|
}
|
}
|