Commit 95c66a1b authored by shaxuezheng's avatar shaxuezheng

自动控制限时,报警

parent 5635bdf7
...@@ -36,7 +36,7 @@ namespace ModbusDemo.Modular ...@@ -36,7 +36,7 @@ namespace ModbusDemo.Modular
#if DEBUG_TEST #if DEBUG_TEST
public const byte byX18xNumber = 1; public const byte byX18xNumber = 1;
public static byte[] byX18xIdlist = { 13 }; public static byte[] byX18xIdlist = { 13 };
private static modual.eX18xSensorChannelType[,] sX18xChannelType = new modual.eX18xSensorChannelType[byX18xNumber, byX18xReadDataNumber] { { modual.eX18xSensorChannelType.Mike_6, modual.eX18xSensorChannelType.Null, modual.eX18xSensorChannelType.Null, modual.eX18xSensorChannelType.Null, modual.eX18xSensorChannelType.Null, modual.eX18xSensorChannelType.Null, modual.eX18xSensorChannelType.Null, modual.eX18xSensorChannelType.Null } }; private static modual.eX18xSensorChannelType[,] sX18xChannelType = new modual.eX18xSensorChannelType[byX18xNumber, byX18xReadDataNumber] { { modual.eX18xSensorChannelType.NormalCurrent, modual.eX18xSensorChannelType.Mike_6, modual.eX18xSensorChannelType.Null, modual.eX18xSensorChannelType.Null, modual.eX18xSensorChannelType.Null, modual.eX18xSensorChannelType.Null, modual.eX18xSensorChannelType.Null, modual.eX18xSensorChannelType.Null } };
#else #else
public const byte byX18xNumber = 6; public const byte byX18xNumber = 6;
public static byte[] byX18xIdlist = {3,53,6,12,21,25}; public static byte[] byX18xIdlist = {3,53,6,12,21,25};
......
This diff is collapsed.
...@@ -76,7 +76,7 @@ namespace ModbusDemo ...@@ -76,7 +76,7 @@ namespace ModbusDemo
int mqttPort; int mqttPort;
string mqttUsername; string mqttUsername;
string mqttPwd; string mqttPwd;
byte[] LevelmodbusID = { 6, 3}; byte[] LevelmodbusID = { 6, 13};
public const string mqttSn = "66666666"; public const string mqttSn = "66666666";
public const string mqttSubscribeControlTopic = "Witium/WTDS78X/" + mqttSn + "/Ctrl"; public const string mqttSubscribeControlTopic = "Witium/WTDS78X/" + mqttSn + "/Ctrl";
public const string mqttBackTopic = "Witium/WTDS78X/" + mqttSn + "/Back"; public const string mqttBackTopic = "Witium/WTDS78X/" + mqttSn + "/Back";
...@@ -373,10 +373,13 @@ namespace ModbusDemo ...@@ -373,10 +373,13 @@ namespace ModbusDemo
private Thread ModbusPollThread; private Thread ModbusPollThread;
private void T_AutoControl() private void T_AutoControl()
{ {
AutoControl.Control usEcontrol = new AutoControl.Control();
AutoControl.Control usEcontrolB = new AutoControl.Control();
AutoControl.Control usWcontrol = new AutoControl.Control();
AutoControl.Control usWcontrolB = new AutoControl.Control();
while (true) while (true)
{ {
AutoControl.Control usEcontrol = new AutoControl.Control(); FileInfo file = new FileInfo(InIHelper.FileName);
AutoControl.Control usWcontrol = new AutoControl.Control();
if (ModualControl.cPoolLevelConfig.Count != 0) if (ModualControl.cPoolLevelConfig.Count != 0)
{ {
for (int i = 0; i < ModualControl.cPoolLevelConfig.Count; i++) for (int i = 0; i < ModualControl.cPoolLevelConfig.Count; i++)
...@@ -385,15 +388,15 @@ namespace ModbusDemo ...@@ -385,15 +388,15 @@ namespace ModbusDemo
{ {
if (ModualPoll.cx18x.byModbusID[j] == LevelmodbusID[0]) if (ModualPoll.cx18x.byModbusID[j] == LevelmodbusID[0])
{ {
usEcontrol.realTimeLevel = usWcontrol.realTimeLevel =
ModualPoll.cx18x.sX18xDataStruct[j].dNowConvertData[0]; ModualPoll.cx18x.sX18xDataStruct[j].dNowConvertData[0];
usEcontrol.modularx = j; usWcontrol.modularx = j;
} }
if (ModualPoll.cx18x.byModbusID[j] == LevelmodbusID[1]) if (ModualPoll.cx18x.byModbusID[j] == LevelmodbusID[1])
{ {
usWcontrol.realTimeLevel = usEcontrol.realTimeLevel =
ModualPoll.cx18x.sX18xDataStruct[j].dNowConvertData[0]; ModualPoll.cx18x.sX18xDataStruct[j].dNowConvertData[0];
usWcontrol.modularx = j; usEcontrol.modularx = j;
} }
} }
if (ModualControl.cPoolLevelConfig[i].byModbusID == LevelmodbusID[0]) if (ModualControl.cPoolLevelConfig[i].byModbusID == LevelmodbusID[0])
...@@ -402,11 +405,13 @@ namespace ModbusDemo ...@@ -402,11 +405,13 @@ namespace ModbusDemo
usWcontrol.minLevel = ModualControl.cPoolLevelConfig[i].dDownLevel; usWcontrol.minLevel = ModualControl.cPoolLevelConfig[i].dDownLevel;
usWcontrol.Name = "西·中转池"; usWcontrol.Name = "西·中转池";
usWcontrol.Enablation = true; usWcontrol.Enablation = true;
AutoControl.CriticalValueMonitoring(true, InIHelper.WriteConfig("Channel number", "西液位通道", usWcontrol.modularx.ToString());
AutoControl.CriticalValueMonitoring(ref usWcontrol,
true,
"西·中转池", "西·中转池",
out usWcontrol out usWcontrolB
); );
InIHelper.WriteConfig("Channel number", "西液位通道", usWcontrol.modularx.ToString()); ModualControl.cPoolLevelConfig.Remove(ModualControl.cPoolLevelConfig[i]);
} }
if (ModualControl.cPoolLevelConfig[i].byModbusID == LevelmodbusID[1]) if (ModualControl.cPoolLevelConfig[i].byModbusID == LevelmodbusID[1])
{ {
...@@ -414,37 +419,44 @@ namespace ModbusDemo ...@@ -414,37 +419,44 @@ namespace ModbusDemo
usEcontrol.minLevel = ModualControl.cPoolLevelConfig[i].dDownLevel; usEcontrol.minLevel = ModualControl.cPoolLevelConfig[i].dDownLevel;
usEcontrol.Name = "东·中转池"; usEcontrol.Name = "东·中转池";
usEcontrol.Enablation = true; usEcontrol.Enablation = true;
InIHelper.WriteConfig("Channel number", "东液位通道", usEcontrol.modularx.ToString());
AutoControl.CriticalValueMonitoring(true, AutoControl.CriticalValueMonitoring(
ref usEcontrol,
true,
"东·中转池", "东·中转池",
out usEcontrol out usEcontrolB
); );
InIHelper.WriteConfig("Channel number", "东液位通道", usEcontrol.modularx.ToString()); ModualControl.cPoolLevelConfig.Remove(ModualControl.cPoolLevelConfig[i]);
} }
} }
AutoControl.Automatic_control(usWcontrol.status, usEcontrol.status); AutoControl.Automatic_control(usWcontrolB.status, usEcontrolB.status);
} }
else if (InIHelper.FileName.Length!= 0)
else if (file.Length!= 0)
{ {
usEcontrol.modularx = InIHelper.ReadConfig<int>("Channel number", "东液位通道"); usEcontrol.modularx = InIHelper.ReadConfig<int>("Channel number", "东液位通道");
usWcontrol.modularx = InIHelper.ReadConfig<int>("Channel number", "西液位通道"); usWcontrol.modularx = InIHelper.ReadConfig<int>("Channel number", "西液位通道");
usWcontrol.maxLevel = InIHelper.ReadConfig<float>("MaxLevel", "西·中转池"); usWcontrol.maxLevel = InIHelper.ReadConfig<float>("MaxLevel", "西·中转池");
usWcontrol.minLevel = InIHelper.ReadConfig<float>("MinLevel", "西·中转池"); usWcontrol.minLevel = InIHelper.ReadConfig<float>("MinLevel", "西·中转池");
usEcontrol.maxLevel = InIHelper.ReadConfig<float>("MaxLevel", "东·中转池"); usEcontrol.maxLevel = InIHelper.ReadConfig<float>("MaxLevel", "东·中转池");
usEcontrol.minLevel = InIHelper.ReadConfig<float>("MaxLevel", "东·中转池"); usEcontrol.minLevel = InIHelper.ReadConfig<float>("MinLevel", "东·中转池");
usEcontrol.realTimeLevel = usEcontrol.realTimeLevel =
ModualPoll.cx18x.sX18xDataStruct[usEcontrol.modularx].dNowConvertData[0]; ModualPoll.cx18x.sX18xDataStruct[usEcontrol.modularx].dNowConvertData[0];
usWcontrol.realTimeLevel = usWcontrol.realTimeLevel =
ModualPoll.cx18x.sX18xDataStruct[usWcontrol.modularx].dNowConvertData[0]; ModualPoll.cx18x.sX18xDataStruct[usWcontrol.modularx].dNowConvertData[0];
AutoControl.CriticalValueMonitoring(true, AutoControl.CriticalValueMonitoring(
ref usEcontrol,
true,
"东·中转池", "东·中转池",
out usEcontrol out usEcontrolB
); );
AutoControl.CriticalValueMonitoring(true, AutoControl.CriticalValueMonitoring(
ref usWcontrol,
true,
"西·中转池", "西·中转池",
out usWcontrol out usWcontrolB
); );
AutoControl.Automatic_control(usWcontrol.status, usEcontrol.status); AutoControl.Automatic_control(usWcontrolB.status, usEcontrolB.status);
} }
else else
{ {
...@@ -1069,45 +1081,6 @@ namespace ModbusDemo ...@@ -1069,45 +1081,6 @@ namespace ModbusDemo
private void button2_Click(object sender, EventArgs e) private void button2_Click(object sender, EventArgs e)
{ {
<<<<<<< HEAD
=======
//AutoControl.Control usEcontrol = new AutoControl.Control();
//AutoControl.Control usWcontrol = new AutoControl.Control();
//if (ModualControl.cPoolLevelConfig.Count!=0)
//{
// for (int i = 0; i < ModualControl.cPoolLevelConfig.Count; i++)
// {
// if (ModualControl.cPoolLevelConfig[i].byModbusID == 6)
// {
// usWcontrol.maxLevel = ModualControl.cPoolLevelConfig[i].dUpLevel;
// usWcontrol.minLevel = ModualControl.cPoolLevelConfig[i].dDownLevel;
// usWcontrol.Name = "西·中转池";
// usWcontrol.Enablation = true;
// AutoControl.CriticalValueMonitoring(true, ModualControl.cPoolLevelConfig[1].dUpLevel,
// ModualControl.cPoolLevelConfig[0].dDownLevel, ModualPoll.cx18x.sX18xDataStruct[1].dNowConvertData[1],
// "西·中转池",
// out usWcontrol
// );
// }
// if (ModualControl.cPoolLevelConfig[i].byModbusID == 3)
// {
// usEcontrol.maxLevel = ModualControl.cPoolLevelConfig[i].dUpLevel;
// usEcontrol.minLevel = ModualControl.cPoolLevelConfig[i].dDownLevel;
// usEcontrol.Name = "东·中转池";
// usEcontrol.Enablation = true;
// AutoControl.CriticalValueMonitoring(true, ModualControl.cPoolLevelConfig[0].dUpLevel,
// ModualControl.cPoolLevelConfig[0].dDownLevel, ModualPoll.cx18x.sX18xDataStruct[0].dNowConvertData[0],
// "东·中转池",
// out usEcontrol
// );
// }
// }
//}
>>>>>>> 83d8d9d1b2182210455375f355bb9f6860d45dc2
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment