private async void Run()
        {
            string alarmCode, _alarmCode = "-1";

            while (true)
            {
                try
                {
                    D300      = int.Parse(Inifile.INIGetStringValue(iniParameterPath, "Machine", "State", "-1"));
                    alarmCode = Inifile.INIGetStringValue(iniParameterPath, "AlarmCommand", "Code", "-1");
                    if (_alarmCode != alarmCode)
                    {
                        AlarmData alarmData = AlarmList.FirstOrDefault(s => s.Code == alarmCode);
                        if (alarmData != null)
                        {
                            AddMessage($"{alarmData.Code}:{alarmData.Content} 发生");

                            AlarmRecordViewModel newrow = new AlarmRecordViewModel
                            {
                                Time    = DateTime.Now,
                                Code    = alarmData.Code,
                                Content = alarmData.Content
                            };
                            AlarmRecord.Add(newrow);

                            string banci = GetBanci();
                            if (!File.Exists(System.IO.Path.Combine(@"D:\报警记录", "AlarmRecord" + banci + ".csv")))
                            {
                                string[] heads = new string[] { "时间", "报警代码", "报警内容" };
                                Csvfile.savetocsv(System.IO.Path.Combine(@"D:\报警记录", "AlarmRecord" + banci + ".csv"), heads);
                            }
                            string[] conts = new string[] { DateTime.Now.ToString(), alarmData.Code, alarmData.Content };
                            Csvfile.savetocsv(System.IO.Path.Combine(@"D:\报警记录", "AlarmRecord" + banci + ".csv"), conts);
                        }

                        _alarmCode = alarmCode;
                    }
                }
                catch (Exception ex) { AddMessage(ex.Message); }


                #region 换班
                if (LastBanci != GetBanci())
                {
                    try
                    {
                        WriteStatetoExcel(Path.Combine("D:\\报警记录", "时间统计" + LastBanci + ".xlsx"));
                        MachineStateA.Clean();
                        WriteToJson(MachineStateA, System.IO.Path.Combine(System.Environment.CurrentDirectory, "MachineStateA.json"));

                        LastBanci = GetBanci();
                        Inifile.INIWriteValue(iniParameterPath, "Summary", "LastBanci", LastBanci);
                        AddMessage(LastBanci + " 换班数据清零");
                    }
                    catch (Exception ex)
                    {
                        AddMessage(ex.Message);
                    }
                }
                #endregion
                await Task.Delay(100);
            }
        }