You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

216 lines
5.3 KiB

using EC.Utils.Helper;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EC.Utils.PLC
{
/// <summary>
/// 命令类
/// </summary>
public class PLCCommand3
{
public PLCCommand3()
{
}
public string commandNum2 = "";
//public string commandNum3 = "";
public PLCCommand3(byte[] commandbytes)
{
if (commandbytes.Length < 16)
{
function1 = -1;
return;
}
commandNum = ByteHelper.SubToString(commandbytes, 0, 10);
NO4 = commandbytes[4];
NO5 = commandbytes[5];
NO6 = commandbytes[6];
NO7 = commandbytes[7];
NO8 = commandbytes[8];
NO9 = commandbytes[9];
commandNum2 = ByteHelper.SubToString(commandbytes, 0, 4) + commandbytes[4].ToString() + commandbytes[5].ToString() + commandbytes[6].ToString() + commandbytes[7].ToString() + commandbytes[8].ToString() + commandbytes[9].ToString();
function1 = commandbytes[10];//
state1 = commandbytes[11];
state2 = commandbytes[12];
state3 = commandbytes[13];
x1 = commandbytes[14];
y1 = commandbytes[15];
//x2 = commandbytes[17];
//y2 = commandbytes[18];
//x3 = commandbytes[19];
//y3 = commandbytes[20];
//x4 = commandbytes[21];
//y4 = commandbytes[22];
//x5 = commandbytes[23];
//y5 = commandbytes[24];
//x6 = commandbytes[25];
//y6 = commandbytes[26];
//param1 = commandbytes[27];
//param2 = commandbytes[28];
//param3 = commandbytes[29];
}
public byte[] ToBytesCommand()
{
byte[] command = new byte[16];
command = ByteHelper.Append(command, commandNum, 0);
command[4] = (byte)NO4;
command[5] = (byte)NO5;
command[6] = (byte)NO6;
command[7] = (byte)NO7;
command[8] = (byte)NO8;
command[9] = (byte)NO9;
command[10] = (byte)function1;
command[11] = (byte)state1;
command[12] = (byte)state2;
command[13] = (byte)state3;
command[14] = (byte)x1;
command[15] = (byte)y1;
//command[17] = (byte)x2;
//command[18] = (byte)y2;
//command[19] = (byte)x3;
//command[20] = (byte)y3;
//command[21] = (byte)x4;
//command[22] = (byte)y4;
//command[23] = (byte)x5;
//command[24] = (byte)y5;
//command[25] = (byte)x6;
//command[26] = (byte)y6;
//command[27] = (byte)param1;
//command[28] = (byte)param2;
//command[29] = (byte)param3;
return command;
}
//public string ToStrCommand()
//{
// StringBuilder command = new StringBuilder();
// command.Append(commandNum).Append(equipment).Append(function1);
// command.Append(state1);
// command.Append(state2);
// command.Append(tasNum);
// command.Append(x1);
// command.Append(y1);
// command.Append(x2);
// command.Append(y2);
// command.Append(x3);
// command.Append(y3);
// command.Append(x4);
// command.Append(y4);
// command.Append(x5);
// command.Append(y5);
// command.Append(x6);
// command.Append(y6);
// command.Append(param1);
// command.Append(param2);
// command.Append(param3);
// return command.ToString();
//}
public int NO4 { get; set; } = 0;
public int NO5 { get; set; } = 0;
public int NO6 { get; set; } = 0;
public int NO7 { get; set; } = 0;
public int NO8 { get; set; } = 0;
public int NO9 { get; set; } = 0;
#region 分类
/// <summary>
/// 指令流水号
/// </summary>
public System.String commandNum { get; set; }
/// <summary>
/// 车间
/// </summary>
// public System.String workShop { get; set; } = "S3";
/// <summary>
/// 功能号
/// </summary>
public int function1 { get; set; } = 0;
/// <summary>
/// 状态1
/// </summary>
public Int32 state1 { get; set; }
/// <summary>
/// 状态2
/// </summary>
public Int32 state2 { get; set; }
/// <summary>
/// 任务数
/// </summary>
public Int32 state3 { get; set; }
public int x1 { get; set; }
public int y1 { get; set; }
/// <summary>
/// 执行状态 是否成功
/// </summary>
public bool SendState = false;
/// <summary>
/// 执行情况0:没有 1: 完成
/// </summary>
public Int32 iFinish { get; set; }
/// <summary>
/// 1:A 臂操作 2: B臂操作 3:全部操作
/// </summary>
// public int axisType = 1;
public int dofferStep = 0;
#endregion
}
}