254 lines
10 KiB
C#
254 lines
10 KiB
C#
|
|
using Modbus.Device;
|
|||
|
|
using Sunny.UI;
|
|||
|
|
using System;
|
|||
|
|
using System.Threading.Tasks;
|
|||
|
|
using System.Windows.Forms;
|
|||
|
|
using 口罩泄露定制款;
|
|||
|
|
|
|||
|
|
namespace 口罩泄露测试仪控制系统_定制款.窗体
|
|||
|
|
{
|
|||
|
|
public partial class frm_ExperSetting : UIForm
|
|||
|
|
{
|
|||
|
|
ModbusMaster _master;
|
|||
|
|
ExperData experData = new ExperData();
|
|||
|
|
Function fc;
|
|||
|
|
public frm_ExperSetting(ModbusMaster master)
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
InitializeComponent();
|
|||
|
|
_master = master;
|
|||
|
|
if (_master != null)
|
|||
|
|
{ Task.Run(() => { Read_PLCdata(); });
|
|||
|
|
fc=new Function(_master); }
|
|||
|
|
}
|
|||
|
|
#region
|
|||
|
|
DataChange dc = new DataChange();
|
|||
|
|
|
|||
|
|
ushort[] data_D1310_D1330 = new ushort[21];
|
|||
|
|
ushort[] data_D1360_D1380 = new ushort[21];
|
|||
|
|
ushort[] data_D1410_D1430 = new ushort[21];
|
|||
|
|
ushort[] data_D1460_D1480 = new ushort[21];
|
|||
|
|
ushort[] data_D1510_D1530 = new ushort[21];
|
|||
|
|
ushort[] data_D1560_D1580 = new ushort[21];
|
|||
|
|
bool[] data_M6_M7 = new bool[2];
|
|||
|
|
bool[] data_M14_M24 = new bool[11];
|
|||
|
|
|
|||
|
|
float 室内CO2基数;
|
|||
|
|
float 室内CO2系数;
|
|||
|
|
float 口罩CO2基数;
|
|||
|
|
float 口罩CO2系数;
|
|||
|
|
float 室内O2基数;
|
|||
|
|
float 室内O2系数;
|
|||
|
|
float 室内温度基数;
|
|||
|
|
float 室内温度系数;
|
|||
|
|
float 室内湿度基数;
|
|||
|
|
float 室内湿度系数;
|
|||
|
|
void Read_PLCdata()
|
|||
|
|
{
|
|||
|
|
while (true)
|
|||
|
|
{
|
|||
|
|
if (this.IsDisposed || _master == null)
|
|||
|
|
break;
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
data_D1310_D1330 = _master.ReadHoldingRegisters(1, 1310, 21);
|
|||
|
|
data_D1360_D1380 = _master.ReadHoldingRegisters(1, 1360, 21);
|
|||
|
|
data_D1410_D1430 = _master.ReadHoldingRegisters(1, 1410, 21);
|
|||
|
|
data_D1460_D1480 = _master.ReadHoldingRegisters(1, 1460, 21);
|
|||
|
|
data_D1510_D1530 = _master.ReadHoldingRegisters(1, 1510, 21);
|
|||
|
|
data_D1560_D1580 = _master.ReadHoldingRegisters(1, 1560, 21);
|
|||
|
|
data_M14_M24 = _master.ReadInputs(1, 14, 12);
|
|||
|
|
data_M6_M7 = _master.ReadInputs(1, 6, 2);
|
|||
|
|
|
|||
|
|
口罩CO2基数 = dc.UshortToFloat(data_D1360_D1380[15], data_D1360_D1380[14]);
|
|||
|
|
口罩CO2系数 = dc.UshortToFloat(data_D1360_D1380[19], data_D1360_D1380[18]);
|
|||
|
|
|
|||
|
|
室内CO2基数 = dc.UshortToFloat(data_D1410_D1430[15], data_D1410_D1430[14]);
|
|||
|
|
室内CO2系数 = dc.UshortToFloat(data_D1410_D1430[19], data_D1410_D1430[18]);
|
|||
|
|
|
|||
|
|
室内O2基数 = dc.UshortToFloat(data_D1460_D1480[15], data_D1460_D1480[14]);
|
|||
|
|
室内O2系数 = dc.UshortToFloat(data_D1460_D1480[19], data_D1460_D1480[18]);
|
|||
|
|
|
|||
|
|
室内温度基数 = dc.UshortToFloat(data_D1510_D1530[15], data_D1510_D1530[14]);
|
|||
|
|
室内温度系数 = dc.UshortToFloat(data_D1510_D1530[19], data_D1510_D1530[18]);
|
|||
|
|
|
|||
|
|
室内湿度基数 = dc.UshortToFloat(data_D1560_D1580[15], data_D1560_D1580[14]);
|
|||
|
|
室内湿度系数 = dc.UshortToFloat(data_D1560_D1580[19], data_D1560_D1580[18]);
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
catch
|
|||
|
|
{
|
|||
|
|
break;
|
|||
|
|
// MessageBox.Show(ex.Message, "读取失败");
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
#endregion
|
|||
|
|
|
|||
|
|
private void timer_UpdateUI_Tick(object sender, EventArgs e)
|
|||
|
|
{
|
|||
|
|
lb_室内CO2.Text = experData.CO2NongDu_Indoor.ToString("F2") + "%";
|
|||
|
|
lb_室外CO2.Text = experData.Mask_CO2NongDu.ToString("F2") + "%";
|
|||
|
|
lb_O2浓度.Text = experData.O2NongDu.ToString("F2") + "%";
|
|||
|
|
lb_湿度.Text = experData.HuanJingShiDu.ToString("F2") + "%RH";
|
|||
|
|
lb_温度.Text = experData.HuanJingWenDu.ToString("F2") + "℃";
|
|||
|
|
lb_室内TSI.Text = experData.InDoor_TSINongDu.ToString("F3") + "mg/m³";
|
|||
|
|
lb_室外TSI.Text = experData.Mask_TSINongDu.ToString("F3") + "mg/m³";
|
|||
|
|
|
|||
|
|
tb_室内CO2.Text= experData.CO2NongDu_Indoor.ToString("F2");
|
|||
|
|
tb_室内CO2基数.Text= 室内CO2基数.ToString("F2");
|
|||
|
|
tb_室内CO2系数.Text= 室内CO2系数.ToString("F2");
|
|||
|
|
|
|||
|
|
tb_口罩CO2.Text= experData.Mask_CO2NongDu.ToString("F2");
|
|||
|
|
tb_口罩CO2基数.Text= 口罩CO2基数.ToString("F2");
|
|||
|
|
tb_口罩CO2系数.Text= 口罩CO2系数.ToString("F2");
|
|||
|
|
|
|||
|
|
tb_室内02.Text= experData.O2NongDu.ToString("F2");
|
|||
|
|
tb_室内02基数.Text= 室内O2基数.ToString("F2");
|
|||
|
|
tb_室内02系数.Text= 室内O2系数.ToString("F2");
|
|||
|
|
|
|||
|
|
tb_室内温度.Text = experData.HuanJingShiDu.ToString("F2");
|
|||
|
|
tb_室内温度基数.Text = 室内温度基数.ToString("F2");
|
|||
|
|
tb_室内温度系数.Text = 室内温度系数.ToString("F2");
|
|||
|
|
|
|||
|
|
tb_室内湿度.Text= experData.HuanJingShiDu.ToString("F2");
|
|||
|
|
tb_室内湿度基数.Text= 室内湿度基数.ToString("F2");
|
|||
|
|
tb_室内湿度系数.Text= 室内湿度系数.ToString("F2");
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
if (data_M14_M24[2])//M16
|
|||
|
|
{ lb_气溶胶进气阀.Text = " 气溶胶进气阀:开"; lb_气溶胶进气阀.ForeColor = System.Drawing.Color.Red; }
|
|||
|
|
else
|
|||
|
|
{ lb_气溶胶进气阀.Text = " 气溶胶进气阀:关"; lb_气溶胶进气阀.ForeColor = System.Drawing.Color.Black; }
|
|||
|
|
if (data_M6_M7[0])
|
|||
|
|
{ lb_换风系统.Text = " 换风系统:开"; lb_换风系统.ForeColor = System.Drawing.Color.Red; }
|
|||
|
|
else
|
|||
|
|
{ lb_换风系统.Text = " 换风系统:关"; lb_换风系统.ForeColor = System.Drawing.Color.Black; }
|
|||
|
|
if (data_M14_M24[0])
|
|||
|
|
{ lb_室内取样阀.Text = " 室内取样阀:开"; lb_室内取样阀.ForeColor = System.Drawing.Color.Red; }
|
|||
|
|
else
|
|||
|
|
{ lb_室内取样阀.Text = " 室内取样阀:关"; lb_室内取样阀.ForeColor = System.Drawing.Color.Black; }
|
|||
|
|
if (data_M14_M24[1])
|
|||
|
|
{ lb_口罩取样阀.Text = " 口罩取样阀:开"; lb_口罩取样阀.ForeColor = System.Drawing.Color.Red; }
|
|||
|
|
else
|
|||
|
|
{ lb_口罩取样阀.Text = " 口罩取样阀:关"; lb_口罩取样阀.ForeColor = System.Drawing.Color.Black; }
|
|||
|
|
if (data_M14_M24[11])
|
|||
|
|
{ lb_口罩取样泵.Text = " 口罩取样泵:开"; lb_口罩取样泵.ForeColor = System.Drawing.Color.Red; }
|
|||
|
|
else
|
|||
|
|
{ lb_口罩取样泵.Text = " 口罩取样泵:关"; lb_口罩取样泵.ForeColor = System.Drawing.Color.Black; }
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
private void Valve_气溶胶进气阀_Click(object sender, EventArgs e)
|
|||
|
|
{
|
|||
|
|
fc.BtnClickFunction(Function.ButtonType.切换型, 16);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
private void Motor_换风系统_Click(object sender, EventArgs e)
|
|||
|
|
{
|
|||
|
|
fc.BtnClickFunction(Function.ButtonType.切换型, 6);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
private void Valve_室内取样阀_Click(object sender, EventArgs e)
|
|||
|
|
{
|
|||
|
|
fc.BtnClickFunction(Function.ButtonType.切换型, 14);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
private void Valve_口罩取样阀_Click(object sender, EventArgs e)
|
|||
|
|
{
|
|||
|
|
fc.BtnClickFunction(Function.ButtonType.切换型, 15);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
private void Motor_口罩取样泵_Click(object sender, EventArgs e)
|
|||
|
|
{
|
|||
|
|
fc.BtnClickFunction(Function.ButtonType.切换型, 25);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
private void frm_ExperSetting_FormClosing(object sender, FormClosingEventArgs e)
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
this.Dispose();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
private void tb_室内CO2基数_ButtonClick(object sender, EventArgs e)
|
|||
|
|
{
|
|||
|
|
fc.WriteToPLC(tb_室内CO2基数.Text,1424,Function.DataType.浮点型);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
private void tb_室内CO2系数_ButtonClick(object sender, EventArgs e)
|
|||
|
|
{
|
|||
|
|
fc.WriteToPLC(tb_室内CO2系数.Text, 1428, Function.DataType.浮点型);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
private void tb_口罩CO2基数_ButtonClick(object sender, EventArgs e)
|
|||
|
|
{
|
|||
|
|
fc.WriteToPLC(tb_口罩CO2基数.Text, 1374, Function.DataType.浮点型);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
private void tb_口罩CO2系数_ButtonClick(object sender, EventArgs e)
|
|||
|
|
{
|
|||
|
|
fc.WriteToPLC(tb_口罩CO2系数.Text, 1378, Function.DataType.浮点型);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
private void tb_室内02基数_ButtonClick(object sender, EventArgs e)
|
|||
|
|
{
|
|||
|
|
fc.WriteToPLC(tb_室内02基数.Text, 1474, Function.DataType.浮点型);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
private void tb_室内02系数_ButtonClick(object sender, EventArgs e)
|
|||
|
|
{
|
|||
|
|
fc.WriteToPLC(tb_室内02系数.Text, 1478, Function.DataType.浮点型);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
private void tb_室内温度基数_ButtonClick(object sender, EventArgs e)
|
|||
|
|
{
|
|||
|
|
fc.WriteToPLC(tb_室内温度基数.Text, 1524, Function.DataType.浮点型);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
private void tb_室内温度系数_ButtonClick(object sender, EventArgs e)
|
|||
|
|
{
|
|||
|
|
fc.WriteToPLC(tb_室内温度系数.Text, 1528, Function.DataType.浮点型);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
private void tb_室内湿度基数_ButtonClick(object sender, EventArgs e)
|
|||
|
|
{
|
|||
|
|
fc.WriteToPLC(tb_室内湿度基数.Text, 1574, Function.DataType.浮点型);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
private void tb_室内湿度系数_ButtonClick(object sender, EventArgs e)
|
|||
|
|
{
|
|||
|
|
fc.WriteToPLC(tb_室内湿度系数.Text, 1578, Function.DataType.浮点型);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
private void btn_室内CO2_清零_Click(object sender, EventArgs e)
|
|||
|
|
{
|
|||
|
|
fc.BtnClickFunction(Function.ButtonType.复归型,122);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
private void btn_口罩CO2清零_Click(object sender, EventArgs e)
|
|||
|
|
{
|
|||
|
|
fc.BtnClickFunction(Function.ButtonType.复归型, 121);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
private void btn_室内02清零_Click(object sender, EventArgs e)
|
|||
|
|
{
|
|||
|
|
fc.BtnClickFunction(Function.ButtonType.复归型, 123);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
private void btn_室内温度清零_Click(object sender, EventArgs e)
|
|||
|
|
{
|
|||
|
|
fc.BtnClickFunction(Function.ButtonType.复归型, 124);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
private void btn_室内湿度清零_Click(object sender, EventArgs e)
|
|||
|
|
{
|
|||
|
|
fc.BtnClickFunction(Function.ButtonType.复归型, 125);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|