add IPLC Read

dev
liulb@mesnac.com 1 year ago
parent 74906be59b
commit 80bbcd062e

@ -1556,6 +1556,11 @@
主键标识
</summary>
</member>
<member name="P:Admin.Core.Model.OffLineInfo.ProductLineCode">
<summary>
所属产线
</summary>
</member>
<member name="T:Admin.Core.Model.OldBoxFoamData">
<summary>
拆分的SAP BOM 信息

@ -55,7 +55,17 @@ namespace Admin.Core.Tasks
public async Task Execute(IJobExecutionContext context)
{
await ExecuteJob(context, async () => await OldBoxFoamDataRun(context));//发泡线
var obj = PlcHelper.melsecList.FirstOrDefault(d => d.EquipName.Equals("OldMelsecPlc1"));
if (obj == null) { return; }
if (obj.plc.IsConnected)
{
ushort len =Convert.ToUInt16("48");
byte[] bt = obj.plc.ReadBytes("D2010", len);
readbyte.Content.Skip(2).Take(4).ToArray()
(int)byteTransform.TransSingle(readbyte.Content.Skip(2).Take(4).ToArray(), 0);
var t= bt;
}
//await ExecuteJob(context, async () => await OldBoxFoamDataRun(context));//发泡线
//await ExecuteJob(context, async () => await OldBoxFoamStoreDataRun(context));
}
/// <summary>
@ -70,7 +80,7 @@ namespace Admin.Core.Tasks
public async Task OldBoxFoamStoreDataRun(IJobExecutionContext context)
{
await OldBoxFoamStoreData();
await OldBoxFoamStoreData();
}
#region PLC 老泡前库任务处理表
@ -84,7 +94,7 @@ namespace Admin.Core.Tasks
{
try
{
var obj = PlcHelper.melsecList.FirstOrDefault(d => d.EquipName.Equals("OldTypePlc1"));
var obj = PlcHelper.melsecList.FirstOrDefault(d => d.EquipName.Equals("OldMelsecPlc1"));
if (obj == null) { return; }
if (obj.plc.IsConnected)
{

@ -33,6 +33,12 @@ namespace Aucma.Core.HwPLc
/// <returns></returns>
byte[] ReadBytes(string address, ushort len);
/// <summary>
/// 读取
/// </summary>
/// <param name="address"></param>
/// <returns></returns>
byte[] Read(string address, ushort len);
/// <summary>
/// 读取bool
/// </summary>
/// <param name="address"></param>

@ -502,6 +502,29 @@ namespace Aucma.Core.HwPLc
}
return false;
}
#endregion
/// <summary>
/// 读取byte
/// </summary>
/// <param name="address">地址</param>
/// <param name="len">长度</param>
/// <returns></returns>
public byte[] Read(string address, ushort len)
{
OperateResult<byte[]> readbyte = melsecMcNet.Read(address, len);
if (readbyte.IsSuccess)
{
IsConnected = true;
return readbyte.Content;
}
else
{
IsConnected = false;
return null;
}
}
}
}

@ -119,12 +119,12 @@ namespace Aucma.Core.HwPLc
/// </summary>
/// <param name="address"></param>
/// <returns></returns>
public byte[] ReadBytes(string address)
public byte[] ReadBytes(string address,ushort len)
{
byte[] bytes = null;
try
{
OperateResult<byte[]> read = siemensS7Net.Read(address, 26);
OperateResult<byte[]> read = siemensS7Net.Read(address, len);
if (read.IsSuccess)
{
byte[] code = new byte[read.Content.Length - 2];
@ -499,10 +499,27 @@ namespace Aucma.Core.HwPLc
return false;
}
public byte[] ReadBytes(string address, ushort len)
#endregion
/// <summary>
/// 读取byte
/// </summary>
/// <param name="address">地址</param>
/// <param name="len">长度</param>
/// <returns></returns>
public byte[] Read(string address, ushort len)
{
throw new NotImplementedException();
OperateResult<byte[]> readbyte = siemensS7Net.Read(address, len);
if (readbyte.IsSuccess)
{
IsConnected = true;
return readbyte.Content;
}
else
{
IsConnected = false;
return null;
}
}
#endregion
}
}

@ -33,6 +33,12 @@ namespace Aucma.Core.PLc
/// <returns></returns>
byte[] ReadBytes(string address);
/// <summary>
/// 读取
/// </summary>
/// <param name="address"></param>
/// <returns></returns>
byte[] Read(string address, ushort len);
/// <summary>
/// 读取bool
/// </summary>
/// <param name="address"></param>

@ -505,5 +505,26 @@ namespace Aucma.Core.PLc
return false;
}
#endregion
/// <summary>
/// 读取byte
/// </summary>
/// <param name="address">地址</param>
/// <param name="len">长度</param>
/// <returns></returns>
public byte[] Read(string address, ushort len)
{
OperateResult<byte[]> readbyte = melsecMcNet.Read(address, len);
if (readbyte.IsSuccess)
{
IsConnected = true;
return readbyte.Content;
}
else
{
IsConnected = false;
return null;
}
}
}
}

@ -499,5 +499,26 @@ namespace Aucma.Core.PLc
return false;
}
#endregion
/// <summary>
/// 读取byte
/// </summary>
/// <param name="address">地址</param>
/// <param name="len">长度</param>
/// <returns></returns>
public byte[] Read(string address, ushort len)
{
OperateResult<byte[]> readbyte = siemensS7Net.Read(address, len);
if (readbyte.IsSuccess)
{
IsConnected = true;
return readbyte.Content;
}
else
{
IsConnected = false;
return null;
}
}
}
}

@ -44,10 +44,11 @@ namespace Aucma.Core.RunPlc
private static Task StartMelsecMcPlcServer()
{
// string ip = Appsettings.app("Middleware", "Scanner1", "Ip");
var allPlcServices = Appsettings.app<PlcModel>("PLCServer").ToList();
var list = allPlcServices.Where(d => d.PlcType=="Melsec" && d.Enabled == true).ToList();
foreach (var item in list)
if (allPlcServices == null) return Task.CompletedTask;
var list = allPlcServices.FindAll(d => d.PlcType == "Melsec" && d.Enabled == true);
foreach (var item in allPlcServices)
{
PlcModel model = new PlcModel();
model.Id = item.Id;
@ -63,22 +64,21 @@ namespace Aucma.Core.RunPlc
private static Task StartSiemensPlcServer()
{
//var allPlcServices = Appsettings.app<PlcModel>("PLCServer").ToList();
//if (allPlcServices==null) return Task.CompletedTask;
////var list1 = allPlcServices.Where(d => d.PlcType.Equals("Siemens") && d.Enabled == true);
// if (list1 == null) return Task.CompletedTask;
//var list = list1.Where(d => d.PlcType.Equals("Siemens") && d.Enabled == true);
//foreach (var item in list)
//{
// PlcModel model = new PlcModel();
// model.Id = item.Id;
// model.EquipName = item.EquipName;
// model.IP = item.IP;
// model.Port = item.Port;
// model.PlcType = item.PlcType;
// model.plc = new SiemensPlc(item.IP, item.Port);
// PlcHelper.siemensList.Add(model);
//}
List<PlcModel> allPlcServices = Appsettings.app<PlcModel>("PLCServer").ToList();
if (allPlcServices == null) return Task.CompletedTask;
var list = allPlcServices.FindAll(d => d.PlcType=="Siemens" && d.Enabled == true);
foreach (var item in list)
{
PlcModel model = new PlcModel();
model.Id = item.Id;
model.EquipName = item.EquipName;
model.IP = item.IP;
model.Port = item.Port;
model.PlcType = item.PlcType;
model.plc = new SiemensPlc(item.IP, item.Port);
PlcHelper.siemensList.Add(model);
}
return Task.CompletedTask;
}
#endregion

Loading…
Cancel
Save