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.

187 lines
8.3 KiB

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Module.DB.Model;
using Module.Common;
namespace Module.Plc.Profinet.Tool
{
/// <summary>
/// 读写PLC中打胶设置
/// </summary>
public class PlcGlueModelUtils
{
/// <summary>
/// 保留一位小数
/// </summary>
/// <param name="number"></param>
/// <returns></returns>
private static string FormatDataOne(double number)
{
return Math.Round(Convert.ToDecimal(number), 1).ToString("#0.0");
}
private static string FormatData(double number)
{
return Math.Round(Convert.ToDecimal(number), 2).ToString("#0.00");
}
/// <summary>
/// 读通道1胶臂设置参数数值
/// </summary>
/// <returns></returns>
public static GlueModel ReadT1GlueData()
{
try
{
GlueModel glueModelResult = null;
if (PublicParams.T1ConnectPlc)
{
glueModelResult = new GlueModel();
var reader1 = PlcCommon.DeltaTcpNetClient01.Read("D3540", 16);
glueModelResult.pr1Enable = PlcCommon.DeltaTcpNetClient01.ReadBool("D3510.0").Content;
glueModelResult.pr1Empty = PlcCommon.DeltaTcpNetClient01.ReadBool("D3510.1").Content;
glueModelResult.pr1Execute = PlcCommon.DeltaTcpNetClient01.ReadBool("D3510.3").Content;
glueModelResult.pr1Yy = FormatDataOne(ByteConvert.ToInt32(reader1.Content, 0) * 0.1);
glueModelResult.pr1Dj = FormatDataOne(ByteConvert.ToInt32(reader1.Content, 4) * 0.1);
glueModelResult.pr1Hx = FormatData(ByteConvert.ToInt32(reader1.Content, 8) * 0.001);
glueModelResult.pr1Xj = FormatDataOne(ByteConvert.ToInt32(reader1.Content, 12) * 0.1);
var reader2 = PlcCommon.DeltaTcpNetClient01.Read("D3640", 16);
var reader12 = PlcCommon.DeltaTcpNetClient01.ReadBool("D3610.0", 10);
glueModelResult.pr2Enable = PlcCommon.DeltaTcpNetClient01.ReadBool("D3610.0").Content;
glueModelResult.pr2Empty = PlcCommon.DeltaTcpNetClient01.ReadBool("D3610.1").Content;
glueModelResult.pr2Execute = PlcCommon.DeltaTcpNetClient01.ReadBool("D3610.3").Content;
glueModelResult.pr2Yy = FormatDataOne(ByteConvert.ToInt32(reader2.Content, 0) * 0.1);
glueModelResult.pr2Dj = FormatDataOne(ByteConvert.ToInt32(reader2.Content, 4) * 0.1);
glueModelResult.pr2Hx = FormatData(ByteConvert.ToInt32(reader2.Content, 8) * 0.001);
glueModelResult.pr2Xj = FormatDataOne(ByteConvert.ToInt32(reader2.Content, 12) * 0.1);
var reader3 = PlcCommon.DeltaTcpNetClient01.Read("D3740", 16);
var reader13 = PlcCommon.DeltaTcpNetClient01.ReadBool("D3710.0", 10);
glueModelResult.pr3Enable = PlcCommon.DeltaTcpNetClient01.ReadBool("D3710.0").Content;
glueModelResult.pr3Empty = PlcCommon.DeltaTcpNetClient01.ReadBool("D3710.1").Content;
glueModelResult.pr3Execute = PlcCommon.DeltaTcpNetClient01.ReadBool("D3710.3").Content;
glueModelResult.pr3Yy = FormatDataOne(ByteConvert.ToInt32(reader3.Content, 0) * 0.1);
glueModelResult.pr3Dj = FormatDataOne(ByteConvert.ToInt32(reader3.Content, 4) * 0.1);
glueModelResult.pr3Hx = FormatData(ByteConvert.ToInt32(reader3.Content, 8) * 0.001);
glueModelResult.pr3Xj = FormatDataOne(ByteConvert.ToInt32(reader3.Content, 12) * 0.1);
}
return glueModelResult;
}
catch (Exception ex)
{
ex.ToString();
return null;
}
}
/// <summary>
/// 读通道2胶臂设置参数数值
/// </summary>
/// <returns></returns>
public static GlueModel ReadT2GlueData()
{
try
{
GlueModel glueModelResult = null;
if (PublicParams.T2ConnectPlc)
{
glueModelResult = new GlueModel();
var reader1 = PlcCommon.DeltaTcpNetClient02.Read("D3540", 16);
glueModelResult.pr1Enable = PlcCommon.DeltaTcpNetClient02.ReadBool("D3510.0").Content;
glueModelResult.pr1Empty = PlcCommon.DeltaTcpNetClient02.ReadBool("D3510.1").Content;
glueModelResult.pr1Execute = PlcCommon.DeltaTcpNetClient02.ReadBool("D3510.3").Content;
glueModelResult.pr1Yy = FormatDataOne(ByteConvert.ToInt32(reader1.Content, 0) * 0.1);
glueModelResult.pr1Dj = FormatDataOne(ByteConvert.ToInt32(reader1.Content, 4) * 0.1);
glueModelResult.pr1Hx = FormatData(ByteConvert.ToInt32(reader1.Content, 8) * 0.001);
glueModelResult.pr1Xj = FormatDataOne(ByteConvert.ToInt32(reader1.Content, 12) * 0.1);
var reader2 = PlcCommon.DeltaTcpNetClient02.Read("D3640", 16);
var reader12 = PlcCommon.DeltaTcpNetClient02.ReadBool("D3610.0", 10);
glueModelResult.pr2Enable = PlcCommon.DeltaTcpNetClient02.ReadBool("D3610.0").Content;
glueModelResult.pr2Empty = PlcCommon.DeltaTcpNetClient02.ReadBool("D3610.1").Content;
glueModelResult.pr2Execute = PlcCommon.DeltaTcpNetClient02.ReadBool("D3610.3").Content;
glueModelResult.pr2Yy = FormatDataOne(ByteConvert.ToInt32(reader2.Content, 0) * 0.1);
glueModelResult.pr2Dj = FormatDataOne(ByteConvert.ToInt32(reader2.Content, 4) * 0.1);
glueModelResult.pr2Hx = FormatData(ByteConvert.ToInt32(reader2.Content, 8) * 0.001);
glueModelResult.pr2Xj = FormatDataOne(ByteConvert.ToInt32(reader2.Content, 12) * 0.1);
var reader3 = PlcCommon.DeltaTcpNetClient02.Read("D3740", 16);
var reader13 = PlcCommon.DeltaTcpNetClient02.ReadBool("D3710.0", 10);
glueModelResult.pr3Enable = PlcCommon.DeltaTcpNetClient02.ReadBool("D3710.0").Content;
glueModelResult.pr3Empty = PlcCommon.DeltaTcpNetClient02.ReadBool("D3710.1").Content;
glueModelResult.pr3Execute = PlcCommon.DeltaTcpNetClient02.ReadBool("D3710.3").Content;
glueModelResult.pr3Yy = FormatDataOne(ByteConvert.ToInt32(reader3.Content, 0) * 0.1);
glueModelResult.pr3Dj = FormatDataOne(ByteConvert.ToInt32(reader3.Content, 4) * 0.1);
glueModelResult.pr3Hx = FormatData(ByteConvert.ToInt32(reader3.Content, 8) * 0.001);
glueModelResult.pr3Xj = FormatDataOne(ByteConvert.ToInt32(reader3.Content, 12) * 0.1);
}
return glueModelResult;
}
catch (Exception ex)
{
ex.ToString();
return null;
}
}
/// <summary>
/// 读通道1胶泵阀状态
/// </summary>
/// <returns></returns>
public static bool[] ReadT1PumpValveStatus()
{
try
{
bool[] yBits = null;
if (PublicParams.T1ConnectPlc)
{
yBits = PlcCommon.DeltaTcpNetClient01.ReadBool("Y4.0", 15).Content;
}
return yBits;
}
catch (Exception ex)
{
ex.ToString();
return null;
}
}
/// <summary>
/// 读通道1胶泵阀状态
/// </summary>
/// <returns></returns>
public static bool[] ReadT2PumpValveStatus()
{
try
{
bool[] yBits = null;
if (PublicParams.T2ConnectPlc)
{
yBits = PlcCommon.DeltaTcpNetClient02.ReadBool("Y4.0", 15).Content;
}
return yBits;
}
catch (Exception ex)
{
ex.ToString();
return null;
}
}
}
}