|
|
|
|
using HslCommunication;
|
|
|
|
|
|
|
|
|
|
using System;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System.Linq;
|
|
|
|
|
using System.Text;
|
|
|
|
|
using System.Threading.Tasks;
|
|
|
|
|
using NewLife.Reflection;
|
|
|
|
|
|
|
|
|
|
namespace Tool.Model
|
|
|
|
|
{
|
|
|
|
|
public class BoolModelFactory
|
|
|
|
|
{
|
|
|
|
|
private string a = "";
|
|
|
|
|
private string b = "";
|
|
|
|
|
|
|
|
|
|
public BoolModelFactory(string a, string b)
|
|
|
|
|
{
|
|
|
|
|
this.a = a;
|
|
|
|
|
this.b = b;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public PlcBoolModel GetPlcDb()
|
|
|
|
|
{
|
|
|
|
|
return Reload();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public UInt32 SetA(PlcBoolModel model)
|
|
|
|
|
{
|
|
|
|
|
return GetValue(model, "A");
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public UInt32 SetB(PlcBoolModel model)
|
|
|
|
|
{
|
|
|
|
|
return GetValue(model,"B");
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private UInt32 GetValue(PlcBoolModel model, string val)
|
|
|
|
|
{
|
|
|
|
|
bool[] bitArray = new bool[32];
|
|
|
|
|
for (int i = 0; i < 31; i++)
|
|
|
|
|
{
|
|
|
|
|
var value = model.GetValue(val + i);
|
|
|
|
|
bitArray[i] = Convert.ToBoolean(value);
|
|
|
|
|
}
|
|
|
|
|
Array.Reverse(bitArray);
|
|
|
|
|
|
|
|
|
|
return HmiHelp.ConvertBitsToUInt32(bitArray);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public PlcBoolModel Reload()
|
|
|
|
|
{
|
|
|
|
|
PlcBoolModel BoolModel = new PlcBoolModel();
|
|
|
|
|
|
|
|
|
|
var readUInt32 = PlcConnect.Instance.ReadInt32(a);
|
|
|
|
|
var bo = readUInt32.IsSuccess;
|
|
|
|
|
var context = readUInt32.Content;
|
|
|
|
|
if (bo)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
for (int i = 0; i < 31; i++)
|
|
|
|
|
{
|
|
|
|
|
BoolModel.SetValue("A" + i, context.GetBoolByIndex(i));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
readUInt32 = PlcConnect.Instance.ReadInt32(b);
|
|
|
|
|
bo = readUInt32.IsSuccess;
|
|
|
|
|
context = readUInt32.Content;
|
|
|
|
|
if (bo)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for (int i = 0; i < 31; i++)
|
|
|
|
|
{
|
|
|
|
|
BoolModel.SetValue("B" + i, context.GetBoolByIndex(i));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return BoolModel;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|