Commit de89515f authored by shaxuezheng's avatar shaxuezheng

AutoControl Updata

parent e3cca5ae
...@@ -26,6 +26,8 @@ namespace ModbusDemo.Common ...@@ -26,6 +26,8 @@ namespace ModbusDemo.Common
ChannelDataChangeError = 8, ChannelDataChangeError = 8,
ChannelLevelError = 16, ChannelLevelError = 16,
ChannelControlError = 32, ChannelControlError = 32,
ChannelRunOverTimeError = 64,
} }
public static void vSetAlarmList(ushort usAddress, ushort[] usChannel, ushort[] usChannelAlarmcode) public static void vSetAlarmList(ushort usAddress, ushort[] usChannel, ushort[] usChannelAlarmcode)
{ {
......
...@@ -28,20 +28,11 @@ namespace ModbusDemo.MessageFormat ...@@ -28,20 +28,11 @@ namespace ModbusDemo.MessageFormat
MB_EMASTERSENT, MB_EMASTERSENT,
MB_RTUERNOERR MB_RTUERNOERR
} }
<<<<<<< HEAD
public static ModbusMaster Modbus; public static ModbusMaster Modbus;
public static ushort usCommunFailTimes = 0; public static ushort usCommunFailTimes = 0;
private static object oLock = new object(); private static object oLock = new object();
public static eModbusErrorCode Modbus_ReadHoldingRegistersTask(out ushort[] OutputValue, byte slaveAddress, ushort startAddress, ushort numberOfPoints) public static eModbusErrorCode Modbus_ReadHoldingRegistersTask(out ushort[] OutputValue, byte slaveAddress, ushort startAddress, ushort numberOfPoints)
{ {
=======
public static ModbusMaster Modbus;
public static ushort usCommunFailTimes = 0;
static object oLock = new object();
public static eModbusErrorCode Modbus_ReadHoldingRegistersTask(out ushort[] OutputValue, byte slaveAddress, ushort startAddress, ushort numberOfPoints)
{
>>>>>>> 5635bdf708c90bb2146f99466d1145dda5dabb37
lock (oLock) lock (oLock)
{ {
eModbusErrorCode ModbusErrorCode; eModbusErrorCode ModbusErrorCode;
...@@ -126,10 +117,6 @@ namespace ModbusDemo.MessageFormat ...@@ -126,10 +117,6 @@ namespace ModbusDemo.MessageFormat
} }
public static eModbusErrorCode Modbus_ReadCoilsTask(out bool[] OutputValue, byte slaveAddress, ushort startAddress, ushort numberOfPoints) public static eModbusErrorCode Modbus_ReadCoilsTask(out bool[] OutputValue, byte slaveAddress, ushort startAddress, ushort numberOfPoints)
{ {
<<<<<<< HEAD
=======
//object oLock = new object();
>>>>>>> 5635bdf708c90bb2146f99466d1145dda5dabb37
lock (oLock) lock (oLock)
{ {
eModbusErrorCode ModbusErrorCode; eModbusErrorCode ModbusErrorCode;
...@@ -214,10 +201,6 @@ namespace ModbusDemo.MessageFormat ...@@ -214,10 +201,6 @@ namespace ModbusDemo.MessageFormat
} }
public static eModbusErrorCode Modbus_WriteSingleCoil(byte slaveAddress, ushort startAddress, bool value) public static eModbusErrorCode Modbus_WriteSingleCoil(byte slaveAddress, ushort startAddress, bool value)
{ {
<<<<<<< HEAD
=======
//object oLock = new object();
>>>>>>> 5635bdf708c90bb2146f99466d1145dda5dabb37
lock (oLock) lock (oLock)
{ {
eModbusErrorCode ModbusErrorCode; eModbusErrorCode ModbusErrorCode;
...@@ -300,10 +283,6 @@ namespace ModbusDemo.MessageFormat ...@@ -300,10 +283,6 @@ namespace ModbusDemo.MessageFormat
} }
public static eModbusErrorCode Modbus_WriteMultipleCoils(byte slaveAddress, ushort startAddress, bool[] data) public static eModbusErrorCode Modbus_WriteMultipleCoils(byte slaveAddress, ushort startAddress, bool[] data)
{ {
<<<<<<< HEAD
=======
//object oLock = new object();
>>>>>>> 5635bdf708c90bb2146f99466d1145dda5dabb37
lock (oLock) lock (oLock)
{ {
eModbusErrorCode ModbusErrorCode; eModbusErrorCode ModbusErrorCode;
......
...@@ -180,15 +180,6 @@ ...@@ -180,15 +180,6 @@
</PropertyGroup> </PropertyGroup>
<Import Project="$(SQLDBExtensionsRefPath)\Microsoft.Data.Tools.Schema.Sql.UnitTesting.targets" Condition="$(VisualStudioVersion) != '15.0' And '$(SQLDBExtensionsRefPath)' != ''" /> <Import Project="$(SQLDBExtensionsRefPath)\Microsoft.Data.Tools.Schema.Sql.UnitTesting.targets" Condition="$(VisualStudioVersion) != '15.0' And '$(SQLDBExtensionsRefPath)' != ''" />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\SSDT\Microsoft.Data.Tools.Schema.Sql.UnitTesting.targets" Condition="$(VisualStudioVersion) != '15.0' And '$(SQLDBExtensionsRefPath)' == ''" /> <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\SSDT\Microsoft.Data.Tools.Schema.Sql.UnitTesting.targets" Condition="$(VisualStudioVersion) != '15.0' And '$(SQLDBExtensionsRefPath)' == ''" />
<<<<<<< HEAD
<<<<<<< HEAD
=======
=======
>>>>>>> 5635bdf708c90bb2146f99466d1145dda5dabb37
<PropertyGroup>
<SsdtUnitTestVersion>3.1</SsdtUnitTestVersion>
</PropertyGroup>
>>>>>>> origin/master
<!-- To modify your build process, add your task inside one of the targets below and uncomment it. <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets. Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild"> <Target Name="BeforeBuild">
......
...@@ -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.NormalCurrent, 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.Null, modual.eX18xSensorChannelType.NormalCurrent, 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};
......
...@@ -35,15 +35,11 @@ namespace ModbusDemo.application ...@@ -35,15 +35,11 @@ namespace ModbusDemo.application
public string Name; public string Name;
public double StatusTime; public double StatusTime;
public int modularx; public int modularx;
public byte modbusID;
} }
public static void CriticalValueMonitoring(ref Control usControl,bool Enabl, string Affiliation, out Control control) public static void CriticalValueMonitoring(ref Control usControl,bool Enabl, string Affiliation, out Control control)
{ {
//Control usControl = new Control
//{
// Enablation = Enabl,
// Name = Affiliation,
//};
if (usControl.Enablation == true) if (usControl.Enablation == true)
{ {
if (usControl.maxLevel != 0.0 && usControl.minLevel != 0.0) if (usControl.maxLevel != 0.0 && usControl.minLevel != 0.0)
...@@ -67,7 +63,6 @@ namespace ModbusDemo.application ...@@ -67,7 +63,6 @@ namespace ModbusDemo.application
} }
else if (usControl.realTimeLevel < usControl.maxLevel && usControl.realTimeLevel > (usControl.minLevel + usControl.minLevel * 0.15)) else if (usControl.realTimeLevel < usControl.maxLevel && usControl.realTimeLevel > (usControl.minLevel + usControl.minLevel * 0.15))
{ {
//usControl.status = true;
usControl.normal = true; usControl.normal = true;
} }
...@@ -99,7 +94,7 @@ namespace ModbusDemo.application ...@@ -99,7 +94,7 @@ namespace ModbusDemo.application
public static bool Wtimerun = false; public static bool Wtimerun = false;
static System.Diagnostics.Stopwatch ETime = new System.Diagnostics.Stopwatch(); static System.Diagnostics.Stopwatch ETime = new System.Diagnostics.Stopwatch();
static System.Diagnostics.Stopwatch WTime = new System.Diagnostics.Stopwatch(); static System.Diagnostics.Stopwatch WTime = new System.Diagnostics.Stopwatch();
//public static string
public static void Automatic_control(bool Eenabl,bool Wenabl) public static void Automatic_control(bool Eenabl,bool Wenabl)
{ {
TimeSpan Wtime = WTime.Elapsed; TimeSpan Wtime = WTime.Elapsed;
...@@ -146,36 +141,54 @@ namespace ModbusDemo.application ...@@ -146,36 +141,54 @@ namespace ModbusDemo.application
} }
if (timespan.TotalMinutes > 2) if (timespan.TotalMinutes > 2)
{ {
if(ModbusComm.Modbus_WriteMultipleCoils(EmodbusId[i], 16, state_OFF) ModualAlarm.vSet_Modual_Alarm(EmodbusId[i],
(ushort)ModualAlarm.eAlarmCode.ChannelControlError |
(ushort)ModualAlarm.eAlarmCode.ChannelRunOverTimeError, true, 1,
"d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7");
ModualAlarm.vSet_Modual_Alarm(EmodbusId[i + 1],
(ushort)ModualAlarm.eAlarmCode.ChannelControlError |
(ushort)ModualAlarm.eAlarmCode.ChannelRunOverTimeError, true, 1,
"d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7");
ETime.Reset();
ETime.Stop(); // 停止监视
}
}
else
{
if (ModbusComm.Modbus_WriteMultipleCoils(EmodbusId[i], 16, state_OFF)
== ==
ModbusComm.eModbusErrorCode.MB_EMASTERNOERR) ModbusComm.eModbusErrorCode.MB_EMASTERNOERR)
{ {
ModualAlarm.vSet_Modual_Alarm(EmodbusId[i],
(ushort)ModualAlarm.eAlarmCode.ChannelControlError, false, 1,
"d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7");
} }
else else
{ {
ModualAlarm.vSet_Modual_Alarm(EmodbusId[i],
(ushort)ModbusComm.eModbusErrorCode.MB_EMASTERNOERR |
(ushort)ModualAlarm.eAlarmCode.ChannelCommunError, true, 1,
"d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7");
} }
if(ModbusComm.Modbus_WriteMultipleCoils(EmodbusId[i + 1], 16, state_OFF) if(ModbusComm.Modbus_WriteMultipleCoils(EmodbusId[i], 16, state_OFF)
== ==
ModbusComm.eModbusErrorCode.MB_EMASTERNOERR ModbusComm.eModbusErrorCode.MB_EMASTERNOERR
) )
{ {
ModualAlarm.vSet_Modual_Alarm(EmodbusId[i+1],
} (ushort)ModualAlarm.eAlarmCode.ChannelControlError, false, 1,
"d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7");
ETime.Reset();
ETime.Stop(); // 停止监视
//timerun = false;
}
} }
else else
{ {
ModualAlarm.vSet_Modual_Alarm(EmodbusId[i + 1],
(ushort)ModbusComm.eModbusErrorCode.MB_EMASTERNOERR |
(ushort)ModualAlarm.eAlarmCode.ChannelCommunError, true, 1,
"d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7");
}
ETime.Reset(); ETime.Reset();
ETime.Stop(); // 停止监视 ETime.Stop(); // 停止监视
timerun = false; timerun = false;
ModbusComm.Modbus_WriteMultipleCoils(EmodbusId[i], 16, state_OFF);
ModbusComm.Modbus_WriteMultipleCoils(EmodbusId[i + 1], 16, state_OFF);
} }
if (Wenabl ==true) if (Wenabl ==true)
...@@ -216,26 +229,61 @@ namespace ModbusDemo.application ...@@ -216,26 +229,61 @@ namespace ModbusDemo.application
WTime.Start();//开始监视 WTime.Start();//开始监视
Wtimerun = true; Wtimerun = true;
} }
if(Wtime.TotalMinutes>2) if(Wtime.TotalMinutes>1)
{ {
ModualAlarm.vSet_Modual_Alarm(WmodbusId[i],
(ushort)ModualAlarm.eAlarmCode.ChannelControlError |
(ushort)ModualAlarm.eAlarmCode.ChannelRunOverTimeError, true, 1,
"d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7");
ModualAlarm.vSet_Modual_Alarm(WmodbusId[i + 1],
(ushort)ModualAlarm.eAlarmCode.ChannelControlError |
(ushort)ModualAlarm.eAlarmCode.ChannelRunOverTimeError, true, 1,
"d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7");
WTime.Reset(); WTime.Reset();
WTime.Stop();//停止监视 WTime.Stop();//停止监视
Wtimerun = false; Wtimerun = false;
ModbusComm.Modbus_WriteMultipleCoils(WmodbusId[i], 16, state_OFF);
ModbusComm.Modbus_WriteMultipleCoils(WmodbusId[i+1], 16, state_OFF);
} }
} }
else else
{ {
if(ModbusComm.Modbus_WriteMultipleCoils(WmodbusId[i], 16, state_OFF)
==
ModbusComm.eModbusErrorCode.MB_EMASTERNOERR
)
{
ModualAlarm.vSet_Modual_Alarm(WmodbusId[i],
(ushort)ModualAlarm.eAlarmCode.ChannelControlError, false, 1,
"d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7");
}
else
{
ModualAlarm.vSet_Modual_Alarm(WmodbusId[i],
(ushort)ModbusComm.eModbusErrorCode.MB_EMASTERNOERR |
(ushort)ModualAlarm.eAlarmCode.ChannelCommunError, true, 1,
"d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7");
}
if(ModbusComm.Modbus_WriteMultipleCoils(WmodbusId[i+1], 16, state_OFF)
==
ModbusComm.eModbusErrorCode.MB_EMASTERNOERR
)
{
ModualAlarm.vSet_Modual_Alarm(WmodbusId[i+1],
(ushort)ModualAlarm.eAlarmCode.ChannelControlError, false, 1,
"d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7");
}
else
{
ModualAlarm.vSet_Modual_Alarm(WmodbusId[i+1],
(ushort)ModbusComm.eModbusErrorCode.MB_EMASTERNOERR |
(ushort)ModualAlarm.eAlarmCode.ChannelCommunError, true, 1,
"d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7");
}
WTime.Reset(); WTime.Reset();
WTime.Stop();//停止监视 WTime.Stop();//停止监视
Wtimerun = false; Wtimerun = false;
ModbusComm.Modbus_WriteMultipleCoils(WmodbusId[i], 16, state_OFF);
ModbusComm.Modbus_WriteMultipleCoils(WmodbusId[i + 1], 16, state_OFF);
} }
double Whours = Wtime.TotalHours; double Whours = Wtime.TotalHours;
double Wminures = Wtime.TotalMinutes; double Wminures = Wtime.TotalMinutes;
double Wseconds = Wtime.TotalSeconds; double Wseconds = Wtime.TotalSeconds;
......
...@@ -391,12 +391,14 @@ namespace ModbusDemo ...@@ -391,12 +391,14 @@ namespace ModbusDemo
usWcontrol.realTimeLevel = usWcontrol.realTimeLevel =
ModualPoll.cx18x.sX18xDataStruct[j].dNowConvertData[0]; ModualPoll.cx18x.sX18xDataStruct[j].dNowConvertData[0];
usWcontrol.modularx = j; usWcontrol.modularx = j;
usWcontrol.modbusID = LevelmodbusID[0];
} }
if (ModualPoll.cx18x.byModbusID[j] == LevelmodbusID[1]) if (ModualPoll.cx18x.byModbusID[j] == LevelmodbusID[1])
{ {
usEcontrol.realTimeLevel = usEcontrol.realTimeLevel =
ModualPoll.cx18x.sX18xDataStruct[j].dNowConvertData[0]; ModualPoll.cx18x.sX18xDataStruct[j].dNowConvertData[0];
usEcontrol.modularx = j; usEcontrol.modularx = j;
usEcontrol.modbusID = LevelmodbusID[1];
} }
} }
if (ModualControl.cPoolLevelConfig[i].byModbusID == LevelmodbusID[0]) if (ModualControl.cPoolLevelConfig[i].byModbusID == LevelmodbusID[0])
...@@ -431,7 +433,6 @@ namespace ModbusDemo ...@@ -431,7 +433,6 @@ namespace ModbusDemo
} }
AutoControl.Automatic_control(usWcontrolB.status, usEcontrolB.status); AutoControl.Automatic_control(usWcontrolB.status, usEcontrolB.status);
} }
else if (file.Length!= 0) else if (file.Length!= 0)
{ {
usEcontrol.modularx = InIHelper.ReadConfig<int>("Channel number", "东液位通道"); usEcontrol.modularx = InIHelper.ReadConfig<int>("Channel number", "东液位通道");
......
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