Commit 303cad43 authored by 潘栩锋's avatar 潘栩锋 🚴

合并

parents 4b40027b 21ae28ec
......@@ -120,7 +120,7 @@ namespace FLY.OBJComponents.Client
public string[] GetSyncPropNames()
{
return new string[] {
"IsConnectedWithPLC"
nameof(IsConnectedWithPLC)
};
}
......
......@@ -108,9 +108,8 @@ namespace FLY.OBJComponents.Common
/// </summary>
public struct ERRNO
{
public byte Code;
public UInt16 Code;
public string Descrption;
public bool OffIsError;
}
public static class PlcErrNos
......@@ -118,6 +117,6 @@ namespace FLY.OBJComponents.Common
/// <summary>
/// PLC连接断开
/// </summary>
public static ERRNO ERRNO_PLC_DISCONNECTED = new ERRNO() { Code = 255, Descrption = "PLC连接断开" };
public static ERRNO ERRNO_PLC_DISCONNECTED = new ERRNO() { Code = 65535, Descrption = "PLC连接断开" };
}
}
......@@ -20,13 +20,13 @@ namespace FLY.OBJComponents.Server
/// <summary>
/// 需要设置
/// </summary>
IPLCProxySystemService PLCos;
PLCProxySystem PLCos;
/// <summary>
/// 报警系统
/// </summary>
WarningSystem mWarning;
public byte ErrCode=0;
public ErrorConf(IPLCProxySystemService PLCos, WarningSystem mWarning, string plcName)
public ErrorConf(PLCProxySystem PLCos, WarningSystem mWarning, string plcName)
{
this.PLCos = PLCos;
this.mWarning = mWarning;
......@@ -98,22 +98,27 @@ namespace FLY.OBJComponents.Server
}
//--------------------------------------------------------------------------------
//连接断开事件
//连接断开事件, 3秒查一次,不能有复位的机会
FObjBase.PollModule.Current.Poll_Config(PollModule.POLL_CONFIG.ADD,
() =>
{
Misc.BindingOperations.SetBinding(PLCos, nameof(PLCos.IsConnectedWithPLC), () =>
for (int i = 0; i < PLCos.PLCs.Count(); i++)
{
bool b = !PLCos.IsConnectedWithPLC;
bool b = !PLCos.PLCs[i].Client.IsConnected;
ERR_STATE state = b ? ERR_STATE.ON : ERR_STATE.OFF;
ERRNO errno = PlcErrNos.ERRNO_PLC_DISCONNECTED;
byte errcode = errno.Code;
string description = $"{plcName} "+errno.Descrption;
UInt16 errcode = (UInt16)(errno.Code - i);
string description;
if (PLCos.PLCs.Count() > 1)
description = $"{plcName} No.{i+1} " + errno.Descrption;
else
description = $"{plcName} " + errno.Descrption;
mWarning.Add(errcode, description, state);
});
}, TimeSpan.FromSeconds(3), true, false, this, MARKNO_DELAY_ISCONNECTED, true);
}
}, TimeSpan.FromSeconds(3), true, false, this, MARKNO_DELAY_ISCONNECTED, false);
//--------------------------------------------------------------------------------
//启动定时器,每1秒查报警,防止 以为报警复位了,但其实还在报警
......@@ -149,7 +154,7 @@ namespace FLY.OBJComponents.Server
public void ResetError(INotifyPropertyChanged sender)
{
var type = sender.GetType();
foreach (var ei in obj_error[sender as INotifyPropertyChanged].error_property)
foreach (var ei in obj_error[sender].error_property)
{
var property = type.GetProperty(ei.property);
property.SetValue(sender, false);
......
......@@ -111,12 +111,18 @@ namespace FLY.OBJComponents.Server
}
Misc.BindingOperations.SetBinding(PLCs[0].Client, "IsConnected", () =>
//任何一个PLC断开,也会显示连接断开
IsConnectedWithPLC = PLCs.All(plc => plc.Client.IsConnected);
foreach (var plc in PLCs)
{
plc.Client.PropertyChanged += (s, e) =>
{
IsConnectedWithPLC = PLCs[0].Client.IsConnected;
//if (!IsConnectedWithPLC)
// ClearPlan();
});
if (e.PropertyName == nameof(Modbus.WithThread.ClientTCP.IsConnected)) {
IsConnectedWithPLC = PLCs.All(p => p.Client.IsConnected);
}
};
}
foreach (var obj in ObjNames.Values)
{
......@@ -357,7 +363,7 @@ namespace FLY.OBJComponents.Server
public string[] GetSyncPropNames()
{
return new string[] { "IsConnectedWithPLC" };
return new string[] { nameof(IsConnectedWithPLC) };
}
public string[] GetNoSyncPropNames()
......
......@@ -75,17 +75,7 @@
</StackPanel>
</StackPanel>
<StackPanel Grid.Column="1" Orientation="Horizontal" VerticalAlignment="Center" >
<Button Style="{StaticResource buttonStyle}" Click="button_silence_click" Foreground="#FFEE3232">
<StackPanel >
<Grid Style="{StaticResource GridStyle_ButtonShadow}">
<Ellipse Style="{StaticResource backPackStyle}" Fill="White"/>
<iconPacks:PackIconMaterial Kind="VolumeMute" Style="{StaticResource iconPackStyle}" />
</Grid>
<TextBlock Text="消音" Style="{StaticResource titlePackStyle}"/>
</StackPanel>
</Button>
</StackPanel>
</Grid>
......
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