显示plc 得值

dep_yangw
我叫锄头 11 months ago
parent 47f06b61a3
commit ef132011b0

@ -74,9 +74,11 @@ namespace ProductionSystem.Forms
#region 各工序的采集点位
Program.BZ1 = Program.MiddlePointKeyValues.Where(m => m.ParaCategory == "BZ1").ToList();
Program.BZ2 = Program.MiddlePointKeyValues.Where(m => m.ParaCategory == "BZ2").ToList();
var entity = Program.BZ2;
Program.BZ3 = Program.MiddlePointKeyValues.Where(m => m.ParaCategory == "BZ3").ToList();
Program.BZ4 = Program.MiddlePointKeyValues.Where(m => m.ParaCategory == "BZ4").ToList();
@ -162,12 +164,17 @@ namespace ProductionSystem.Forms
Task.Run(() =>
{
ShowMiddleData();
}, cancellationTokenSource.Token);
hslCurveHistory.RemoveAllCurve();
SetMiddleData("BZ1_DB");
ShowMiddleData2();
ShowMiddleData2();
ShowMiddleData2();
ShowMiddleData2();
}
/// <summary>
@ -519,8 +526,9 @@ namespace ProductionSystem.Forms
//条码值
private PointKeyValue M248 = Program.CommandPointKeyValues.FirstOrDefault(m => m.Key == "D670");
//步序
private PointKeyValue M249 = Program.CommandPointKeyValues.FirstOrDefault(m => m.Key == "M249");
/// <summary>
/// 顶部展示PLC采集数据
@ -703,122 +711,122 @@ namespace ProductionSystem.Forms
middleIsCanRound = false;
Thread.Sleep(Program.ReadPlcRate);
//步序
var M249 = Program.CommandPointKeyValues.FirstOrDefault(m => m.Key == "M249");
M249.Val = OmronHelper.GetPlcVal(M249.DataType, M249.Address).val;
#region 模拟一个值
#endregion
var d1300Value = GetPlcValue("D1300");
//步骤1水泵1空载
if(d1300Value == "1")
{
}
//var electricPoint = Program.electricTestPoints.FirstOrDefault(m => m.Key == "M44");
//var electricStatus = OmronHelper.GetPlcVal(electricPoint.DataType, electricPoint.Address).val;
//if (electricStatus == "1.000" || electricStatus == "2.000")
//{
// SetMiddleData(Program.electricTestPoints, "ElectricTest");
//}
#endregion
//步骤2水泵2空载
var d1302Value = GetPlcValue("D1302");
M249.Val = "23234234234234";
switch (M249.Val)
if (d1302Value == "1")
{
//空载
case "2.000":
BZ1();
break;
//一段速
case "3.000":
BZ1();
break;
//二段升速
case "4.000":
BZ1();
break;
//二段速稳定
case "5.000":
BZ1();
break;
//三段升速度
case "6.000":
BZ1();
break;
//三段速稳定
case "7.000":
BZ1();
break;
//内漏
case "8.000":
BZ1();
break;
//单驱
case "9.000":
BZ1();
break;
case "0.000"://设备待机
hasWriteStepNum = false;
Program.IsSendStop = false;
Program.isCanSend = true;
//读取配置文件
//var tempNum = IniHelper.Read("Step", "StepNum", "", iniFilePath);
//if (tempNum == "10")
//{
//写入配置文件
//IniHelper.Write("Step", "StepNum", "0", iniFilePath);
ClearMiddleData();
CurveHelper.SetArrEmpty();
hasWriteCurveSeciont = false;
//InitCurveSectionData();//初始化曲线区域数据
// hslCurveHistory.RemoveAllMarkForeSection();//清空曲线区域
hslCurveHistory.RenderCurveUI(); // 这步很重要
Program.cureManualReset.Reset();//停止曲线定时器
Program.timerEnable = false;
break;
case "10.000"://停机
BZ1();
if (!hasWriteCurveSeciont)
}
//步骤3水泵3空载
var d1304Value = GetPlcValue("D1304");
if (d1304Value == "1")
{
//AddCurveSection(stepChangeCount);
hslCurveHistory.RenderCurveUI();
stepChangeCount = 0;//步序变化次数
tempStepNum = 0;//临时存储步序号
hasWriteCurveSeciont = true;
}
if (!hasWriteStepNum)
//步骤4外露模式
var d1306Value = GetPlcValue("D1306");
if(d1306Value == "1")
{
//写入配置文件
IniHelper.Write("Step", "StepNum", "10", iniFilePath);
hasWriteStepNum = true;
}
//串口停止发送报文
Program.isCanSend = false;
//发送停止报文
if (Program.ProtocolDeviceHelper == null)
//步骤5模式1内漏
var d1308 = GetPlcValue("D1308");
if(d1308 == "1")
{
Program.ProtocolDeviceHelper = new ProtocolDeviceHelper();
}
Program.ProtocolDeviceHelper.SendStop(Program.ProtocolConigCode, (MsgFormatEnum)Enum.Parse(typeof(MsgFormatEnum), Program.MsgFormat));
Program.sendManualReset.Reset();
Thread.Sleep(100);
var M299 = Program.CommandPointKeyValues.FirstOrDefault(m => m.Key == "M299");
if (M299 != null)
//步骤6模式2内漏
if (d1308 == "2")
{
//停机成功后反馈PLC
var writeStopResult = OmronHelper.WriteToPlc(M299.DataType, M299.Address, "1");
}
Program.cureManualReset.Reset();//停止曲线定时器
Program.timerEnable = false;
break;
default:
break;
//步骤6出厂位置
var d1310 = GetPlcValue("D1310");
if (d1310 == "1")
{
}
//请求上位机保存数据
var d1900 = GetPlcValue("D1900");
if (d1900 == "8")
{
}
//待机模式
if (d1900 == "1")
{
}
middleIsCanRound = true;
}
}
private void ShowMiddleData2()
{
Thread.Sleep(Program.ReadPlcRate);
GetPlc(Program.BZ1, "BZ1");
GetPlc(Program.BZ2, "BZ2");
GetPlc(Program.BZ3, "BZ3");
GetPlc(Program.BZ4, "BZ4");
GetPlc(Program.BZ5, "BZ5");
GetPlc(Program.BZ6, "BZ6");
}
public string GetPlcValue(string key)
{
var entity= Program.CommandPointKeyValues.FirstOrDefault(m => m.Key == key);
if (entity != null)
{
return OmronHelper.GetPlcVal(entity.DataType, entity.Address).val;
}
return "";
}
/// <summary>
/// 添加曲线区域
/// </summary>
@ -991,60 +999,20 @@ namespace ProductionSystem.Forms
private void BZ1()
{
GetPlc(Program.BZ1, "BZ1");
}
private void BZ2()
{
GetPlc(Program.BZ2, "BZ2");
}
private void BZ3()
{
GetPlc(Program.BZ3, "BZ3");
}
private void BZ4()
{
GetPlc(Program.BZ4, "BZ4");
}
private void BZ5()
{
GetPlc(Program.BZ5, "BZ5");
}
private void BZ6()
{
GetPlc(Program.BZ6, "BZ6");
}
private void GetPlc(List<PointKeyValue> values,string txt)
{
var Bz1 = values;
for (int i = 0; i < Bz1.Count; i++)
for (int i = 0; i < values.Count; i++)
{
var electricReadResult = OmronHelper.GetPlcVal(Bz1[i].DataType, Bz1[i].Address);
Bz1[i].Val = electricReadResult.val;
var electricReadResult = OmronHelper.GetPlcVal(values[i].DataType, values[i].Address);
values[i].Val = electricReadResult.val;
}
SetMiddleData(Bz1,txt);
SetMiddleData(values, txt);
}
@ -1221,14 +1189,16 @@ namespace ProductionSystem.Forms
}
this.Invoke(new Action(() =>
{
if (middleMyTestResultControls[j].LblItemText == "总状态")
{
result = val;
}
middleMyTestResultControls[j].TestResultText = result == "1.000" ? "OK" : (result == "2.000" ? "NG" : "");
middleMyTestResultControls[j].TestResultForeColor = Color.White;
middleMyTestResultControls[j].TestResultBackColor = result == "1.000" ? Color.Green : (result == "2.000" ? Color.Red : Color.Gainsboro);
middleMyTestResultControls[j].TestValText = val;
middleMyTestResultControls[j].TestValText = result;
middleMyTestResultControls[j].TestResultText = "Ok";
middleMyTestResultControls[j].TestResultBackColor = Color.Green;
}));
}
}

Loading…
Cancel
Save