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.

706 lines
19 KiB

using HslCommunication;
using Module.Common;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Module.Plc.Profinet.Tool
{
public class T2GlueControlFunc
{
static OperateResult connect = null;
public static bool Enable(int number, bool value)
{
var address = String.Format("D{0}.0", 3510 + (number - 1) * 100);
return changeStatus(address, value);
}
public static bool setNumberLocationValue(int number, int location, bool v)
{
var address = String.Format("D{0}", 3510 + (number - 1) * 100);
short resultValue = 0;
if (PublicParams.T2ConnectPlc)
{
int value = PlcCommon.DeltaTcpNetClient02.ReadInt16(address).Content;
//var t = Convert.ToString(value, 2);
//string result = "";
//for (int i = 0; i < t.Length; i++)
//{
// var temp = t[i];
// if (location == 15 - i)
// {
// if (v)
// {
// result += "1";
// }
// else
// {
// result += "0";
// }
// }
// else
// {
// result += temp;
// }
//}
if (v)
{
if (location == 0)
{
resultValue = Convert.ToInt16(value | 1);
}
else if (location == 1)
{
resultValue = Convert.ToInt16(value | 2);
}
else if (location == 3)
{
resultValue = Convert.ToInt16(value | 8);
}
}
else
{
if (location == 0)
{
resultValue = Convert.ToInt16(value & 0xFFFE);
}
else if (location == 1)
{
resultValue = Convert.ToInt16(value & 0xFFFD);
}
else if (location == 3)
{
resultValue = Convert.ToInt16(value & 0xFFF7);
}
}
}
return PlcCommon.DeltaTcpNetClient02.Write(address, resultValue).IsSuccess;
}
/// <summary>
/// <20><>ȡ<EFBFBD>򽺰<EFBFBD>ť<EFBFBD>·<EFBFBD><C2B7><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD>PLC<4C><43><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/// </summary>
/// <param name="number"></param>
/// <returns></returns>
public static int GetGlueControlResult(int number)
{
int iRet = 99;
var address = String.Format("D{0}", 3510 + (number - 1) * 100);
if (PublicParams.T2ConnectPlc)
{
int value = PlcCommon.DeltaTcpNetClient02.ReadInt16(address).Content;
char[] results = BitConvert.ToFullBinaryChars(Convert.ToInt16(value));
if (results[13] == '1')
{
iRet = 1;
}
else
{
iRet = 0;
}
}
return iRet;
}
public static bool setNumberLocationValueOpposite(int number, int location)
{
var address = String.Format("D{0}", 3510 + (number - 1) * 100);
short resultValue = 0;
if (PublicParams.T2ConnectPlc)
{
int value = PlcCommon.DeltaTcpNetClient02.ReadInt16(address).Content;
//var t = Convert.ToString(value, 2);
//string result = "";
//for (int i = 0; i < t.Length; i++)
//{
// var temp = t[i];
// if (location == 15 - i)
// {
// if (temp.Equals('1'))
// {
// result += "0";
// }
// else
// {
// result += "1";
// }
// }
// else
// {
// result += temp;
// }
//}
resultValue = Convert.ToInt16(value | 4);
}
return PlcCommon.DeltaTcpNetClient02.Write(address, resultValue).IsSuccess;
}
public static bool setNumberLocationValueOppositeClose(int number, int location)
{
var address = String.Format("D{0}", 3510 + (number - 1) * 100);
short resultValue = 0;
if (PublicParams.T2ConnectPlc)
{
int value = PlcCommon.DeltaTcpNetClient02.ReadInt16(address).Content;
//var t = Convert.ToString(value, 2);
//string result = "";
//for (int i = 0; i < t.Length; i++)
//{
// var temp = t[i];
// if (location == 15 - i)
// {
// if (temp.Equals('1'))
// {
// result += "0";
// }
// else
// {
// result += "1";
// }
// }
// else
// {
// result += temp;
// }
//}
resultValue = Convert.ToInt16(value & 0xFFFB);
}
return PlcCommon.DeltaTcpNetClient02.Write(address, resultValue).IsSuccess;
}
public static int C2t10(string value)
{
int len = value.Length;
int sum = 0;
for (int i = 0; i < len; i++)
{
char c = value[len - 1 - i];
if (c == '1')
{
int k = 1;
for (int x = 0; x < i; x++) { k = k * 2; }
sum += k;
}
}
return Convert.ToInt16(sum.ToString());
}
//public static bool Empty(int number, bool value)
//{
// var address = String.Format("D{0}.1", 3510 + (number - 1) * 100);
// return changeStatus(address, value);
//}
//public static bool Execute(int number)
//{
// var address = String.Format("D{0}.2", 3510 + (number - 1) * 100);
// return exChangeStatus(address);
//}
public static bool SetYy(int number, short value)
{
var address = String.Format("D{0}", 3540 + (number - 1) * 100);
return setValue(address, value);
}
public static bool SetDj(int number, short value)
{
var address = String.Format("D{0}", 3542 + (number - 1) * 100);
return setValue(address, value);
}
public static bool SetHx(int number, short value)
{
var address = String.Format("D{0}", 3544 + (number - 1) * 100);
return setValue(address, value);
}
public static bool SetXj(int number, short value)
{
var address = String.Format("D{0}", 3546 + (number - 1) * 100);
return setValue(address, value);
}
private static bool setValue(string address, short value)
{
bool result = false;
if (PublicParams.T2ConnectPlc)
{
connect = PlcCommon.DeltaTcpNetClient02.Write(address, value);
if (connect.IsSuccess)
{
result = true;
}
else
{
result = false;
}
}
return result;
}
public static bool changeStatus(string address, bool value)
{
bool result = false;
if (PublicParams.T2ConnectPlc)
{
connect = PlcCommon.DeltaTcpNetClient02.Write(address, value);
if (connect.IsSuccess)
{
result = true;
}
else
{
result = false;
}
}
return result;
}
public static bool exChangeStatus(string address)
{
bool result = false;
if (PublicParams.T2ConnectPlc)
{
int value = PlcCommon.DeltaTcpNetClient02.ReadInt16(address).Content;
if (value == 1)
{
connect = PlcCommon.DeltaTcpNetClient02.Write(address, (short)0);
}
else
{
connect = PlcCommon.DeltaTcpNetClient02.Write(address, (short)1);
}
if (connect.IsSuccess)
{
result = true;
}
else
{
result = false;
}
}
return result;
}
public static bool ManualGlue()
{
bool result = false;
if (PublicParams.T2ConnectPlc)
{
bool value = PlcCommon.DeltaTcpNetClient02.ReadBool("M95").Content;
if (value)
{
connect = PlcCommon.DeltaTcpNetClient02.Write("M95", false);
}
else
{
connect = PlcCommon.DeltaTcpNetClient02.Write("M95", true);
}
if (connect.IsSuccess)
{
result = true;
}
else
{
result = false;
}
}
return result;
}
public static bool ManualGlueClose()
{
bool result = false;
if (PublicParams.T2ConnectPlc)
{
connect = PlcCommon.DeltaTcpNetClient02.Write("M95", false);
if (connect.IsSuccess)
{
result = true;
}
else
{
result = false;
}
}
return result;
}
public static bool AlarmReset()
{
bool result = false;
if (PublicParams.T2ConnectPlc)
{
connect = PlcCommon.DeltaTcpNetClient02.Write("M99", true);
if (connect.IsSuccess)
{
result = true;
}
else
{
result = false;
}
}
return result;
}
public static bool AlarmResetClose()
{
bool result = false;
if (PublicParams.T2ConnectPlc)
{
connect = PlcCommon.DeltaTcpNetClient02.Write("M99", false);
if (connect.IsSuccess)
{
result = true;
}
else
{
result = false;
}
}
return result;
}
public static bool InitReset()
{
bool result = false;
if (PublicParams.T2ConnectPlc)
{
connect = PlcCommon.DeltaTcpNetClient02.Write("M98", true);
if (connect.IsSuccess)
{
result = true;
}
else
{
result = false;
}
}
return result;
}
public static bool InitResetClose()
{
bool result = false;
if (PublicParams.T2ConnectPlc)
{
connect = PlcCommon.DeltaTcpNetClient02.Write("M98", false);
if (connect.IsSuccess)
{
result = true;
}
else
{
result = false;
}
}
return result;
}
public static bool SendOut()
{
bool result = false;
if (PublicParams.T2ConnectPlc)
{
connect = PlcCommon.DeltaTcpNetClient02.Write("M100", true);
if (connect.IsSuccess)
{
result = true;
}
else
{
result = false;
}
}
return result;
}
public static bool SendOutClose()
{
bool result = false;
if (PublicParams.T2ConnectPlc)
{
connect = PlcCommon.DeltaTcpNetClient02.Write("M100", false);
if (connect.IsSuccess)
{
result = true;
}
else
{
result = false;
}
}
return result;
}
public static bool Start()
{
bool result = false;
if (PublicParams.T2ConnectPlc)
{
connect = PlcCommon.DeltaTcpNetClient02.Write("M101", true);
if (connect.IsSuccess)
{
result = true;
}
else
{
result = false;
}
}
return result;
}
public static bool StartClose()
{
bool result = false;
if (PublicParams.T2ConnectPlc)
{
connect = PlcCommon.DeltaTcpNetClient02.Write("M101", false);
if (connect.IsSuccess)
{
result = true;
}
else
{
result = false;
}
}
return result;
}
public static bool Stop()
{
bool result = false;
if (PublicParams.T2ConnectPlc)
{
connect = PlcCommon.DeltaTcpNetClient02.Write("M102", true);
if (connect.IsSuccess)
{
result = true;
}
else
{
result = false;
}
}
return result;
}
public static bool StopClose()
{
bool result = false;
if (PublicParams.T2ConnectPlc)
{
connect = PlcCommon.DeltaTcpNetClient02.Write("M102", false);
if (connect.IsSuccess)
{
result = true;
}
else
{
result = false;
}
}
return result;
}
public static bool ReceiveOut()
{
bool result = false;
if (PublicParams.T2ConnectPlc)
{
connect = PlcCommon.DeltaTcpNetClient02.Write("M103", true);
if (connect.IsSuccess)
{
result = true;
}
else
{
result = false;
}
}
return result;
}
public static bool ReceiveOutClose()
{
bool result = false;
if (PublicParams.T2ConnectPlc)
{
connect = PlcCommon.DeltaTcpNetClient02.Write("M103", false);
if (connect.IsSuccess)
{
result = true;
}
else
{
result = false;
}
}
return result;
}
public static bool Clean()
{
bool result = false;
if (PublicParams.T2ConnectPlc)
{
connect = PlcCommon.DeltaTcpNetClient02.Write("M6004", true);
if (connect.IsSuccess)
{
result = true;
}
else
{
result = false;
}
}
return result;
}
public static bool CleanClose()
{
bool result = false;
if (PublicParams.T2ConnectPlc)
{
connect = PlcCommon.DeltaTcpNetClient02.Write("M6004", false);
if (connect.IsSuccess)
{
result = true;
}
else
{
result = false;
}
}
return result;
}
public static bool GlueNums(int value)
{
bool result = false;
if (PublicParams.T2ConnectPlc)
{
connect = PlcCommon.DeltaTcpNetClient02.Write("D2826", value);
if (connect.IsSuccess)
{
result = true;
}
else
{
result = false;
}
}
return result;
}
public static bool Encryption()
{
bool result = false;
if (PublicParams.T2ConnectPlc)
{
connect = PlcCommon.DeltaTcpNetClient02.Write("M6100", true);
if (connect.IsSuccess)
{
result = true;
}
else
{
result = false;
}
}
return result;
}
public static bool EncryptionClose()
{
bool result = false;
if (PublicParams.T2ConnectPlc)
{
connect = PlcCommon.DeltaTcpNetClient02.Write("M6100", false);
if (connect.IsSuccess)
{
result = true;
}
else
{
result = false;
}
}
return result;
}
public static bool Password(int value)
{
bool result = false;
if (PublicParams.T2ConnectPlc)
{
connect = PlcCommon.DeltaTcpNetClient02.Write("D3818", value);
if (connect.IsSuccess)
{
result = true;
}
else
{
result = false;
}
}
return result;
}
public static bool CurrDays(int value)
{
bool result = false;
if (PublicParams.T2ConnectPlc)
{
connect = PlcCommon.DeltaTcpNetClient02.Write("D3816", value);
if (connect.IsSuccess)
{
result = true;
}
else
{
result = false;
}
}
return result;
}
}
}