|
@@ -5,25 +5,17 @@ using SIMDP.BLL;
|
|
|
using SIMDP.Device;
|
|
|
using SIMDP.Model;
|
|
|
using System.IO;
|
|
|
-using static SIMDP.Project.ProductData;
|
|
|
using SIMDP.Util;
|
|
|
using System.Threading.Tasks;
|
|
|
using SIMDP.Project.RWS;
|
|
|
|
|
|
namespace SIMDP.Project
|
|
|
{
|
|
|
- /// <summary>
|
|
|
- /// 芯子压机PLC
|
|
|
- /// </summary>
|
|
|
public class PLC7 : PlcMXComponent
|
|
|
{
|
|
|
#region 设备空间
|
|
|
|
|
|
-
|
|
|
- public PLC7()
|
|
|
- {
|
|
|
-
|
|
|
- }
|
|
|
+ private string plcname = "芯子主压机PLC";
|
|
|
|
|
|
bool pcHeartBeat = false;
|
|
|
|
|
@@ -51,78 +43,74 @@ namespace SIMDP.Project
|
|
|
p.proc.Invoke(this, new object[] { value });
|
|
|
}
|
|
|
}
|
|
|
- redis.Publish<string>(SysEnvironment.OpcDataChannel, "");
|
|
|
+ redis.Publish(SysEnvironment.OpcDataChannel, "");
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
|
isConnect = false;
|
|
|
- LogHelper.log.Error($"PLC7 通信异常,即将重连:{ex.Message}");
|
|
|
+ LogHelper.log.Error($"{plcname}通信异常,即将重连:{ex.Message}");
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ public override void actionConnected()
|
|
|
+ {
|
|
|
+ Write("主压机读取请求处理完成", false);
|
|
|
+ }
|
|
|
+
|
|
|
#endregion
|
|
|
|
|
|
#region 信号函数
|
|
|
|
|
|
- /// <summary>
|
|
|
- /// 根据PLC提供的流水号,定位并保存当前工件数据;查找CSV曲线是否生成,并改名;
|
|
|
- /// </summary>
|
|
|
- /// <param name="value"></param>
|
|
|
- public void 芯子压机读取请求(object value)
|
|
|
+ public void 主压机读取请求(object value)
|
|
|
{
|
|
|
bool signal = Convert.ToBoolean(value);
|
|
|
- LogHelper.log.Info($"PLC7 : signal ={signal}");
|
|
|
+ LogHelper.log.Info($"{plcname} signal ={signal}");
|
|
|
if (!signal)
|
|
|
{
|
|
|
- Write("芯子压机读取请求处理完成", false);
|
|
|
+ Write("主压机读取请求处理完成", false);
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
//1 读取数据:流水号、压装力、位移
|
|
|
- Read("芯子压机读取流水号", out short serialNum);
|
|
|
- Read("芯子压机OK", out bool bok);
|
|
|
- Read("芯子压机压装力", out float fforce);
|
|
|
- Read("芯子压机位移", out float ofdisplacement);
|
|
|
+ Read("主压机读取流水号", out short serialNum);
|
|
|
+ Read("主压机OK", out bool bok);
|
|
|
+ Read("主压机压装力", out float fforce);
|
|
|
+ Read("主压机位移", out float ofdisplacement);
|
|
|
|
|
|
//2 数据绑定:根据流水号查找本地生产数据表
|
|
|
MoProductData model = BLLFactory<BlProductData>.Instance.FindbySerialNum(serialNum);
|
|
|
if (model == null)
|
|
|
{
|
|
|
- LogHelper.log.Error($"PLC7: 存储压装数据失败,无法找到当前工件的上料信息,流水号 {serialNum}");
|
|
|
- //Write("芯子压机读取请求处理完成", true);不给完成,等PLC超时报警
|
|
|
+ Tool.LogAndNotice("绑定数据错误", 3, $"数据库查询不到{serialNum}");
|
|
|
+ LogHelper.log.Error($"{plcname} 存储压装数据失败,无法找到当前工件的上料信息,流水号 {serialNum}");
|
|
|
return;
|
|
|
}
|
|
|
- ProductionData_HCQ data = new ProductionData_HCQ();
|
|
|
+ ProdataSet data = new ProdataSet(model.RuleId);
|
|
|
data.LoadData(model);
|
|
|
- data.dict["芯子压机压装力"] = fforce.ToString();
|
|
|
- data.dict["芯子压机工件尺寸"] = ofdisplacement.ToString();
|
|
|
- data.dict["芯子压机结果"] = bok == true ? "OK" : "NG";
|
|
|
- data.model.RuleTime = DateTime.Now;//更新的时间
|
|
|
+ data.dict["主压机压装力"] = fforce.ToString();
|
|
|
+ data.dict["主压机工件尺寸"] = ofdisplacement.ToString();
|
|
|
+ data.dict["主压机结果"] = bok == true ? "OK" : "NG";
|
|
|
+ data.model.RuleTime = DateTime.Now;
|
|
|
BLLFactory<BlProductData>.Instance.Update(data.toModel(), model.DataId);
|
|
|
|
|
|
+ //3 反馈完成
|
|
|
+ Write("主压机读取请求处理完成", true);
|
|
|
+
|
|
|
+ //4 延时执行改名操作
|
|
|
Task task = Task.Factory.StartNew(async () =>
|
|
|
{
|
|
|
await Task.Delay(5000);
|
|
|
|
|
|
- //2.1 csv文件改名
|
|
|
- string csvPath = Tool.SearchLatestFile(serialNum, SysEnvironment.CSV_ExportPath);
|
|
|
- if (string.IsNullOrEmpty(csvPath))
|
|
|
+ bool bres = PressHelper.FindNewUpload(serialNum.ToString(), SysEnvironment.CSV_ExportPath, out string newfile);
|
|
|
+ if (bres)
|
|
|
{
|
|
|
- Tool.LogAndNotice("找不到文件", 3, $"无法找到当前工件({serialNum})的压机数据");
|
|
|
- LogHelper.log.Error($"PLC7 无法找到CSV文件,流水号:({model.SerialNum})");
|
|
|
- Write("芯子压机读取请求处理完成", true);
|
|
|
- return;
|
|
|
+ FileInfo fi = new FileInfo(newfile);
|
|
|
+ PressHelper.RenameCSV(fi, data.dict["备注"], data.dict["图号"], serialNum.ToString());
|
|
|
}
|
|
|
- string newName = data.dict["备注"] + '_' + data.dict["图号"] + '_' + DateTime.Now.ToString("yyyy-MM-dd-hh-mm") + '_' + serialNum + ".csv";
|
|
|
- newName = csvPath.Substring(0, csvPath.LastIndexOf('\\')) + '\\' + newName;
|
|
|
- File.Move(csvPath, PressHelper.ReplaceInvalidChar(newName));
|
|
|
});
|
|
|
-
|
|
|
- //3 反馈完成
|
|
|
- Write("芯子压机读取请求处理完成", true);
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
-
|
|
|
}
|
|
|
}
|
|
|
|