Files
kou_zhaoxielou_shandong/口罩泄露定制款/Form/frm_Motor.cs

221 lines
7.9 KiB
C#
Raw Normal View History

2026-01-16 20:53:33 +08:00
using Modbus.Device;
using Sunny.UI;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace
{
public partial class frm_Motor : UIForm
{
ModbusMaster _master;
DataChange dc = new DataChange();
Function fc;
public frm_Motor(ModbusMaster master)
{
InitializeComponent();
_master = master;
if (_master != null)
{
Task.Run(() => ReadPLCData());
fc=new Function(_master);
}
}
#region PLC数据
ushort[] data_D410_D411 = new ushort[2];
ushort[] data_D420_D423 = new ushort[4];
ushort[] data_D442_D443 = new ushort[2];
ushort[] data_D450_D451 = new ushort[2];
ushort[] data_D460_D465 = new ushort[6];
ushort[] data_D480_D481 = new ushort[2];
ushort[] data_D488_D489 = new ushort[2];
ushort[] data_D502_D507 = new ushort[6];
bool[] data_M90_M92 = new bool[3];
bool[] data_M60_M62 = new bool[3];
float _huxipinglv;
float _huxiliang;
float _huxibeishu;
float _hushoudongsudu;
float _xishoudongsudu;
float _huweizhi;
float _xiweizhi;
float _huliang;
float _xiliang;
int _huxishijian;
int _ceshifen;
int _ceshimiao;
void ReadPLCData()
{
while (true)
{
try
{
if (this.IsDisposed || _master == null)
{
break;
}
data_D410_D411 = _master.ReadHoldingRegisters(1, 410, 2);
data_D420_D423 = _master.ReadHoldingRegisters(1, 420, 4);
data_D442_D443 = _master.ReadHoldingRegisters(1, 442, 2);
data_D450_D451 = _master.ReadHoldingRegisters(1, 450, 2);
data_D460_D465 = _master.ReadHoldingRegisters(1, 460, 6);
data_D480_D481 = _master.ReadHoldingRegisters(1, 480, 2);
data_D488_D489 = _master.ReadHoldingRegisters(1, 488, 2);
data_D502_D507 = _master.ReadHoldingRegisters(1, 502, 6);
data_M90_M92 = _master.ReadInputs(1, 90, 3);
data_M60_M62 = _master.ReadInputs(1, 60, 3);
_huxipinglv = dc.UshortToFloat(data_D410_D411[1], data_D410_D411[0]);
_huxiliang = dc.UshortToFloat(data_D420_D423[1], data_D420_D423[0]);
_huxibeishu = dc.UshortToFloat(data_D420_D423[3], data_D420_D423[2]);
_hushoudongsudu = dc.UshortToFloat(data_D450_D451[1], data_D450_D451[0]);
_xishoudongsudu = dc.UshortToFloat(data_D442_D443[1], data_D442_D443[0]);
_huweizhi = dc.UshortToFloat(data_D460_D465[1], data_D460_D465[0]);
_xiweizhi = dc.UshortToFloat(data_D460_D465[5], data_D460_D465[4]);
_huliang = dc.UshortToFloat(data_D480_D481[1], data_D480_D481[0]);
_xiliang = dc.UshortToFloat(data_D488_D489[1], data_D488_D489[0]);
_huxishijian = dc.UshortToInt1(data_D502_D507[4], data_D502_D507[5]);
_ceshifen = dc.UshortToInt1(data_D502_D507[2], data_D502_D507[3]);
_ceshimiao = dc.UshortToInt1(data_D502_D507[0], data_D502_D507[1]);
Thread.Sleep(100);
}
catch { break; }
}
}
#endregion
private void timerUI_Tick(object sender, EventArgs e)
{
tb_呼吸频率.Text = _huxipinglv.ToString("F2");
tb_呼吸量.Text = _huxiliang.ToString("F2");
tb_呼吸倍数.Text = _huxibeishu.ToString("F2");
tb_呼手动速度.Text = _hushoudongsudu.ToString("F2");
tb_吸手动速度.Text = _xishoudongsudu.ToString("F2");
tb_呼吸时间.Text = _huxishijian.ToString();
tb_呼位置.Text = _huweizhi.ToString("F2");
tb_吸位置.Text = _xiweizhi.ToString("F2");
tb_呼量.Text = _huliang.ToString("F2");
tb_吸量.Text = _xiliang.ToString("F2");
tb_测试分.Text = _ceshifen.ToString();
tb_测试秒.Text = _ceshimiao.ToString();
if (data_M60_M62[1])
{ btn_测试开始.Text = "测试中";btn_测试开始.FillColor = Color.Red; }
else
{ btn_测试开始.Text = "测试开始";btn_测试开始.FillColor = Color.FromArgb(80, 160, 255);}
if (data_M90_M92[1])
{ btn_复位.Text = "复位中"; btn_复位.FillColor = Color.Red; }
else
{ btn_复位.Text = "复位"; btn_复位.FillColor = Color.FromArgb(80, 160, 255); }
}
private void tb_呼吸频率_ButtonClick(object sender, EventArgs e)
{
fc.WriteToPLC(tb_呼吸频率.Text,410, Function.DataType.);
}
private void tb_呼吸量_ButtonClick(object sender, EventArgs e)
{
fc.WriteToPLC(tb_呼吸量.Text, 420, Function.DataType.);
}
private void tb_呼吸倍数_ButtonClick(object sender, EventArgs e)
{
fc.WriteToPLC(tb_呼吸倍数.Text, 422, Function.DataType.);
}
private void tb_呼手动速度_ButtonClick(object sender, EventArgs e)
{
fc.WriteToPLC(tb_呼手动速度.Text, 450, Function.DataType.);
}
private void tb_吸手动速度_ButtonClick(object sender, EventArgs e)
{
fc.WriteToPLC(tb_吸手动速度.Text, 442, Function.DataType.);
}
private void tb_呼吸时间_ButtonClick(object sender, EventArgs e)
{
fc.WriteToPLC(tb_呼吸时间.Text, 506, Function.DataType.);
}
private void btn_复位_Click(object sender, EventArgs e)
{
fc.BtnClickFunction(Function.ButtonType., 90);
}
private void btn_呼前_MouseDown(object sender, MouseEventArgs e)
{
fc.BtnClickFunction(Function.ButtonType., 1);
}
private void btn_呼前_MouseUp(object sender, MouseEventArgs e)
{
fc.BtnClickFunction(Function.ButtonType., 1);
}
private void btn_呼后_MouseDown(object sender, MouseEventArgs e)
{
fc.BtnClickFunction(Function.ButtonType., 2);
}
private void btn_呼后_MouseUp(object sender, MouseEventArgs e)
{
fc.BtnClickFunction(Function.ButtonType., 2);
}
private void btn_吸前_MouseDown(object sender, MouseEventArgs e)
{
fc.BtnClickFunction(Function.ButtonType., 3);
}
private void btn_吸前_MouseUp(object sender, MouseEventArgs e)
{
fc.BtnClickFunction(Function.ButtonType., 3);
}
private void btn_吸后_MouseDown(object sender, MouseEventArgs e)
{
fc.BtnClickFunction(Function.ButtonType.,4);
}
private void btn_吸后_MouseUp(object sender, MouseEventArgs e)
{
fc.BtnClickFunction(Function.ButtonType., 4);
}
private void btn_测试开始_Click(object sender, EventArgs e)
{
fc.BtnClickFunction(Function.ButtonType., 60);
}
private void btn_测试停止_Click(object sender, EventArgs e)
{
fc.BtnClickFunction(Function.ButtonType., 62);
}
private void frm_Motor_FormClosing(object sender, FormClosingEventArgs e)
{
this.Dispose();
}
}
}