public void DetectorControl(string ID, int i, ushort Time, bool Mode) { string OutputFileName = ID + "_" + i; Det.WriteMultipleRegisters(1, 0, TimeNameToUshort(Time, OutputFileName)); //[0]start detection or not, //[1]1=live or 0=real model, //[2]alarm flag bool[] Coils = { true, Mode, false }; Det.WriteMultipleCoils(1, 0, Coils); bool[] b; do { pMain.ct.ThrowIfCancellationRequested(); Thread.Sleep(1000); b = Det.ReadCoils(1, 0, 3); if (b[2]) { throw new Exception("探测器报警"); } }while (b[0]); }