STC-单片机控制系统

电源测量命令

60V开 FD020600010101000000 60V关 FD020600020101000000 60V保开 60V保关

-8KV开 -8KV关 FD020928020102010000 -0-2000 FD0209180001020126dc -2-4000 FD020910000102011b4f -4-8000 FD020911000102011473

+8KV开 FD020918010001010000 +8KV关 FD020918020101010000 +0-2000 FD0209180001010114cd +2-4000 FD020910000101013116 +4-8000 FD020911000101012fca

-16KV开 FD020B00010100020000 -16KV关 FD020B00020100020000 -0-8K -8-130K -1-160K

模拟设置 FD0103180001010100005C46AA //U14 - 聚焦电源一组 第一段 FD010310000101010000D586AA //U14 - 聚焦电源一组 第二段 FD010311000101010000C546AA //U14 - 聚焦电源一组 第三段

FD0103280001010100006C45AA //U13 - 聚焦电源二组 第一段 FD010320000101010000E585AA //U13 - 聚焦电源二组 第二段 FD010321000101010000F545AA //U13 - 聚焦电源二组 第三段

FD010418000101010000A01DAA //U14 - 预聚焦电源一组 第一段 FD0104100001010100006094AA //U14 - 预聚焦电源一组 第二段 FD01041100010101000084A0AA //U14 - 预聚焦电源一组 第三段

FD0104280001010100002DA3AA //U13 - 预聚焦电源二组 第一段 FD010420000101010000A463AA //U13 - 预聚焦电源二组 第二段 FD010421000101010000B4A3AA //U13 - 预聚焦电源二组 第三段

FD0104380001010100003C62AA //U13 - 预聚焦电源三组 第一段 FD010430000101010000B5A2AA //U13 - 预聚焦电源三组 第二段 FD010431000101010000A562AA //U13 - 预聚焦电源三组 第三段

数字量查询 FD010210000401010000D84AAA //U14 - 引出极 电压 FD010210000401020000284AAA //U14 - 引出极 电流

FD0103180004010100009046AA //U14 - 聚焦电源一组 电压 FD0103180004010200006046AA //U14 - 聚焦电源一组 电流 FD010328000401010000A045AA //U13 - 聚焦电源二组 电压 FD0103280004010200005045AA //U13 - 聚焦电源二组 电流

FD010418000401010000D1A0AA //U14 - 预聚焦电源一组 电压 FD01041800040102000021A0AA //U14 - 预聚焦电源一组 电流 FD010428000401010000E1A3AA //U13 - 预聚焦电源二组 电压 FD01042800040102000011A3AA //U13 - 预聚焦电源二组 电流 FD010438000401010000F062AA //U13 - 预聚焦电源三组 电压 FD0104380004010200000062AA //U13 - 预聚焦电源三组 电流

FD01051000040101000099ACAA //U14 - 脉冲输出电源 5KV 电压 FD01051000040102000069ACAA //U14 - 脉冲输出电源 5KV 电流

FD010610000401010000D9B9AA //U13- 60V整流电源 电压 FD01061000040102000029B9AA //U13 - 60V整流电源 电流

FD0108100004010100005835AA //U13 - 热丝电源 10V 电压 FD010810000401020000A835AA //U13 - 热丝电源 10V 电流

开关控制

FD010110010401010000998EAA //U13 - 抑制极+1KV电源开 FD01011002040102000069BDAA //U13 - 抑制极+1KV电源关 FD01011001040201000099CAAA //U13 - 抑制极-1KV电源开 FD01011002040202000069F9AA //U13 - 抑制极-1KV电源关

FD010210010401010000D99BAA //LPC - 引出极+5KV电源开 FD01021002040102000029A8AA //LPC - 引出极+5KV电源关

FD0103180104010100009197AA //U14 - 聚焦电源一组 开 FD01031802040102000061A4AA //U14 - 聚焦电源一组 关 FD010328010401010000A194AA //U13 - 聚焦电源二组 开 FD01032802040102000051A7AA //U13 - 聚焦电源二组 关

FD010418010401010000D071AA //U14 - 预聚焦电源一组 开 FD0104180204010200002042AA //U14 - 预聚焦电源一组 关 FD010428010401010000E072AA //U13 - 预聚焦电源二组 开 FD0104280204010200001041AA //U13 - 预聚焦电源二组 关 FD010438010401010000F1B3AA //U13 - 预聚焦电源三组 开 FD0104380204010200000180AA //U13 - 预聚焦电源三组 关

FD010510010401010000987DAA //U14 - 脉冲输出电源 5KV 开 FD010510020401020000684EAA //U14 - 脉冲输出电源 5KV 关

FD010610010401010000D868AA //U13- 60V整流电源 开 由控制箱控制 FD010610020401020000285BAA //U13 - 60V整流电源 关

FD01081001040101000059E4AA //U13 - 热丝电源 10V 开 FD010810020401020000A9D7AA //U13 - 热丝电源 10V 关

电流电压显示 FD010118000201010000999FAA //U14 - 抑制极+1KV电源电压显示 FD01011800020202000069DBAA //U13 - 抑制极-1KV电源电流显示 FD01011800020201000099DBAA //U13 - 抑制极-1KV电源过压显示

FD010218000201010000D98AAA //U14 - 引出极 +5KV电压 FD010218000201020000298AAA //U14 - 引出极 +5KV电流

FD0103180002010100001846AA //U14 - 聚焦电源一组 电压 FD010318000201020000E846AA //U14 - 聚焦电源一组 电流 FD0103280002010100002845AA //U13 - 聚焦电源二组 电压 FD010328000201020000D845AA //U13 - 聚焦电源二组 电流

FD01041800020101000059A0AA //U14 - 预聚焦电源一组 电压 FD010418000201020000A9A0AA //U14 - 预聚焦电源一组 电流 FD01042800020101000069A3AA //U13 - 预聚焦电源二组 电压 FD01042800020102000099A3AA //U13 - 预聚焦电源二组 电流 FD0104380002010100007862AA //U13 - 预聚焦电源三组 电压 FD0104380002010200008862AA //U13 - 预聚焦电源三组 电流

FD01051000020101000011ACAA //U14 - 脉冲输出电源 5KV 电压 FD010510000201020000E1ACAA //U14 - 脉冲输出电源 5KV 电流

FD01061000020101000051B9AA //U13- 60V整流电源 电压 FD010610000201020000A1B9AA //U13 - 60V整流电源 电流

FD010810000201010000D035AA //U13 - 热丝电源 10V 电压 FD0108100002010200002035AA //U13 - 热丝电源 10V 电流

 使用到的串口调试工具

1.CRC_16校验程序(好!不分大小写)

2.STC_ISP_V480.exe

3.串口调试工具SSCOM32.exe

4.电源协议E.doc

5.技术文件67.doc

注意:此处技术文件为保密文件,此处就不提供出来了,还请谅解。

不闲扯,直接替源码,如下所示:

  1 using System;
  2 using System.Drawing;
  3 using System.IO.Ports;
  4 using System.Threading;
  5 using System.Windows.Forms;
  6 
  7 namespace CDCurrentControl.UI
  8 {
  9     public class BaseForm : Form
 10     {
 11         protected readonly string redPath = Application.StartupPath + @"\Images\红色.png";
 12         protected readonly string greenPath = Application.StartupPath + @"\Images\绿色.png";
 13         protected readonly string whitePath = Application.StartupPath + @"\Images\白色.png";
 14         protected readonly SerialPort sp = new SerialPort();
 15 
 16         #region 发送协议
 17         /// <summary>
 18         /// 发送协议
 19         /// </summary>
 20         /// <param name="str"></param>
 21         public void SendAgreement(string str)
 22         {
 23             if (sp.IsOpen)
 24             {
 25                 //TxtAllAgreement.Text += str;
 26                 Byte[] sendstrs = BLL.ZhuanHuan.GetByte(str);
 27                 sp.Write(sendstrs, 0, sendstrs.Length);
 28                 Thread.Sleep(500);
 29             }
 30         }
 31 
 32         #endregion
 33 
 34         /// <summary>
 35         /// 清除所有文本框的值
 36         /// </summary>
 37         protected void ClearAllTextBox()
 38         {
 39             foreach (Control c in Controls)
 40             {
 41                 if (c is TextBox)
 42                 {
 43                     c.Text = string.Empty;
 44                 }
 45             }
 46         }
 47 
 48         /// <summary>
 49         /// 输入验证
 50         /// </summary>
 51         /// <param name="tb"></param>
 52         /// <param name="min"></param>
 53         /// <param name="max"></param>
 54         /// <returns></returns>
 55         public bool ValidateString(TextBox tb, double min, double max)
 56         {
 57             try
 58             {
 59                 double zhi = Convert.ToDouble(tb.Text.Trim());
 60                 if (zhi < min || zhi > max)
 61                 {
 62                     MessageBox.Show("请输入" + min + "-" + max + "之间的电压");
 63                     return false;
 64                 }
 65                 return true;
 66             }
 67             catch
 68             {
 69                 MessageBox.Show("请输入正确的数字");
 70                 return false;
 71             }
 72         }
 73 
 74         public void SetPicGreen(PictureBox image)
 75         {
 76             image.Image = Image.FromFile(greenPath);
 77         }
 78 
 79         public void SetPicRed(PictureBox image)
 80         {
 81             image.Image = Image.FromFile(redPath);
 82         }
 83 
 84         public void SetPicWhite(PictureBox image)
 85         {
 86             image.Image = Image.FromFile(whitePath);
 87         }
 88 
 89         public void ClearText(TextBox t1, TextBox t2, TextBox t3, TextBox t4, TextBox t5)
 90         {
 91             while (true)
 92             {
 93                 Thread.Sleep(2000);
 94                 if (t1.Text == "" && t2.Text == "" && t3.Text == "" && t4.Text == "" && t5.Text == "")
 95                 {
 96                     break;
 97                 }
 98                 t1.Text = "";
 99                 t2.Text = "";
100                 t3.Text = "";
101                 t4.Text = "";
102                 t5.Text = "";
103             }
104 
105         }
106         public void ClearText(TextBox t1, TextBox t2, TextBox t3, TextBox t4)
107         {
108 
109             while (true)
110             {
111                 Thread.Sleep(2000);
112                 if (t1.Text == "" && t2.Text == "" && t3.Text == "" && t4.Text == "")
113                 {
114                     break;
115                 }
116                 t1.Text = "";
117                 t2.Text = "";
118                 t3.Text = "";
119                 t4.Text = "";
120             }
121 
122         }
123     }
124 }
  1 using System;
  2 using System.Drawing;
  3 using System.Windows.Forms;
  4 
  5 namespace CDCurrentControl.UI
  6 {
  7     public partial class frmMain : BaseForm
  8     {
  9         readonly RFD_Form rfd = new RFD_Form();
 10         readonly CFS_Form cfs = new CFS_Form();
 11         readonly CeS_Form csf = new CeS_Form();
 12         readonly Point p = new Point();
 13         int count = 0;
 14         protected override CreateParams CreateParams
 15         {
 16             get
 17             {
 18                 CreateParams cp = base.CreateParams;
 19                 cp.ExStyle |= 0x02000000;
 20                 return cp;
 21             }
 22         }
 23         public frmMain()
 24         {
 25 
 26             p.X = 0;
 27             p.Y = 0;
 28             InitializeComponent();
 29 
 30 
 31 
 32         }
 33         /// <summary>
 34         /// 热发电d
 35         /// </summary>
 36         /// <param name="sender"></param>
 37         /// <param name="e"></param>
 38         private void lblRFD_Click(object sender, EventArgs e)
 39         {
 40             cfs.Hide();
 41             csf.Hide();
 42             rfd.MdiParent = this;
 43             rfd.Show();
 44             rfd.Location = p;
 45 
 46             lblRFD.ImageIndex = 0;
 47             lblCFD.ImageIndex = 1;
 48             lblCS.ImageIndex = 1;
 49         }
 50         /// <summary>
 51         /// 场发射
 52         /// </summary>
 53         /// <param name="sender"></param>
 54         /// <param name="e"></param>
 55         private void lblCFD_Click(object sender, EventArgs e)
 56         {
 57             rfd.Hide();
 58             csf.Hide();
 59             cfs.MdiParent = this;
 60             cfs.Show();
 61             cfs.Location = p;
 62 
 63             lblRFD.ImageIndex = 1;
 64             lblCFD.ImageIndex = 0;
 65             lblCS.ImageIndex = 1;
 66         }
 67 
 68         /// <summary>
 69         /// 测试
 70         /// </summary>
 71         /// <param name="sender"></param>
 72         /// <param name="e"></param>
 73         private void lblCS_Click(object sender, EventArgs e)
 74         {
 75             if (count == 1)
 76             {
 77                 rfd.Hide();
 78                 cfs.Hide();
 79                 csf.MdiParent = this;
 80                 csf.Show();
 81                 csf.Location = p;
 82 
 83                 lblRFD.ImageIndex = 1;
 84                 lblCFD.ImageIndex = 1;
 85                 lblCS.ImageIndex = 0;
 86             }
 87             else
 88             {
 89                 frmLogin fl = new frmLogin();
 90                 if (fl.ShowDialog() == DialogResult.OK)
 91                 {
 92                     TextBox tb = fl.Controls["txtName"] as TextBox;
 93                     if (tb.Text == "正确")
 94                     {
 95                         rfd.Hide();
 96                         cfs.Hide();
 97                         csf.MdiParent = this;
 98                         csf.Show();
 99                         csf.Location = p;
100 
101                         count = 1;
102                         lblRFD.ImageIndex = 1;
103                         lblCFD.ImageIndex = 1;
104                         lblCS.ImageIndex = 0;
105                     }
106                     else
107                     {
108                         lblCS_Click(sender, e);
109 
110                     }
111                 }
112             }
113 
114         }
115 
116         private void frmMain_Resize(object sender, EventArgs e)
117         {
118             int kuan = Width - 15;
119             int gao = Height - panel1.Height - 32;
120 
121             cfs.Width = kuan;
122             cfs.Height = gao;
123             rfd.Width = kuan;
124             rfd.Height = gao;
125             csf.Width = kuan;
126             csf.Height = gao;
127         }
128 
129         private void label1_Click(object sender, EventArgs e)
130         {
131             frmSJJY fs = new frmSJJY();
132             fs.Show();
133         }
134 
135         private void frmMain_Load(object sender, EventArgs e)
136         {
137             new BLL.SJJY().NewJiaZai();
138         }
139     }
140 }
   1 using System;
   2 using System.Collections.Generic;
   3 using System.ComponentModel;
   4 using System.Data;
   5 using System.Drawing;
   6 using System.Linq;
   7 using System.Text;
   8 using System.Windows.Forms;
   9 using System.IO.Ports;
  10 using ZedGraph;
  11 using System.Threading;
  12 using CDCurrentControl.Model;
  13 
  14 namespace CDCurrentControl.UI {
  15     public partial class RFD_Form : Form {
  16         frmClose fc = new frmClose();
  17         List<Thread> ltr = new List<Thread>();//线程
  18         bool ZF = true;
  19         string gy = "10";
  20         string zgy = "18";//主高压初始片选
  21         string pza = "18";//偏转正初始片选
  22         string pzb = "18";//偏转负初始片选
  23         string jja = "18";//聚集极一初始片选
  24         string jjb = "28";//聚集极二初始片选
  25         string yjja = "18";//预聚集极一初始片选
  26         string yjjb = "28";//预聚集极二初始片选
  27         string yjc = "38";//预聚集极三初始片选
  28         double jjbs = 0;//聚集二设置前的值
  29         double jjas = 0;//聚集一设置前的值
  30         double yjjas = 0;//预聚集一设置前的值
  31         double yjjbs = 0;//预聚集二设置前的值
  32         double yjjcs = 0;//预聚集三设置前的值
  33         double pzas = 0;//偏转正设置前的值
  34         double pzbs = 0;//偏转负设置前的值
  35         double zgys = 10000;//主高压设置前的值
  36         double rss = 0;
  37         int count = 0;
  38         System.Windows.Forms.Timer t = new System.Windows.Forms.Timer();//热丝电源等待时间加引出极
  39         List<Dictionary<int, CheckBox>> cbos = new List<Dictionary<int, CheckBox>>();//check按钮
  40         List<Button> btns = new List<Button>();//button按钮
  41         SerialPort sp = new SerialPort();
  42         PointPairList listzgy = new PointPairList();
  43         LineItem myCurvezgy;
  44         PointPairList listyzj = new PointPairList();
  45         LineItem myCurveyzj;
  46         PointPairList listycj = new PointPairList();
  47         LineItem myCurveycj;
  48         PointPairList listjja = new PointPairList();
  49         LineItem myCurvejja;
  50         PointPairList listjjb = new PointPairList();
  51         LineItem myCurvejjb;
  52         PointPairList listyjja = new PointPairList();
  53         LineItem myCurveyjja;
  54         PointPairList listyjjb = new PointPairList();
  55         LineItem myCurveyjjb;
  56         PointPairList listyjjc = new PointPairList();
  57         LineItem myCurveyjjc;
  58         PointPairList listymc = new PointPairList();
  59         LineItem myCurveymc;
  60         PointPairList listzl = new PointPairList();
  61         LineItem myCurvezl;
  62         PointPairList listrs = new PointPairList();
  63         LineItem myCurvers;
  64         PointPairList listpza = new PointPairList();
  65         LineItem myCurvepza;
  66         PointPairList listpzb = new PointPairList();
  67         LineItem myCurvepzb;
  68         bool b = false;
  69         List<byte[]> js = new List<byte[]>();
  70         List<List<string>> ss = new List<List<string>>();
  71         readonly string whitePath = Application.StartupPath + @"\Images\白色.png";
  72         readonly string redPath = Application.StartupPath + @"\Images\红色.png";
  73         readonly string greenPath = Application.StartupPath + @"\Images\绿色.png";
  74         public RFD_Form() {
  75             InitializeComponent();
  76             zedGraph zg = new zedGraph();
  77             zg.JiaZai(this.zgcZGYDY, "主高压电源");
  78             zg.JiaZai(this.zgcYZJDY, "抑制极电源");
  79             zg.JiaZai(this.zgcYCJDY, "引出极电源");
  80             zg.JiaZai(this.zgcJJDYA, "聚焦电源一");
  81             zg.JiaZai(this.zgcJJDYB, "聚焦电源二");
  82             zg.JiaZai(this.zgcYJJDYA, "预聚焦电源一");
  83             zg.JiaZai(this.zgcYJJDYB, "预聚焦电源二");
  84             zg.JiaZai(this.zgcYJJDYC, "预聚焦电源三");
  85             zg.JiaZai(this.zgcZLDY, "60V整流电源");
  86             zg.JiaZai(this.zgcRSDY, "热丝电源");
  87             zg.JiaZai(this.zgcMCSCDYA, "脉冲电源");
  88             zg.JiaZai(this.zgcPZDYA, "偏转电源一");
  89             zg.JiaZai(this.zgcPZDYB, "偏转电源二");
  90             CheckBox[] cbo = new CheckBox[] { cboZGY, cboYZJ, cboYCJ, cboJJA, cboJJB, cboYJJA, cboYJJB, cboYJJC, cboMC, cboZL, cboRS, cboPZ };
  91             Button[] b = new Button[] { button11, button1, button2, button36, button41, button5, button23, button29, button8, button9, button10, button4 };
  92             btns.AddRange(b);
  93             for (int i = 0 ; i < 12 ; i++) {
  94                 Dictionary<int, CheckBox> c = new Dictionary<int, CheckBox>();
  95                 c.Add(i, cbo[i]);
  96                 cbos.Add(c);
  97             }
  98 
  99         }
 100         //重复读取数据
 101         void NewXianCheng() {
 102             do {
 103 
 104                 if (sp.IsOpen) {
 105 
 106                     if (count > 0) {
 107                         #region MyRegion
 108                         // 整流
 109                         if (this.button9.Text == "断电") {
 110                             string gy = "FD010610000401010000";
 111                             string gl = "FD010610000401020000";
 112                             chuansong(gy);
 113                             shuchu(xianshi());
 114                             chuansong(gl);
 115                             shuchu(xianshi());
 116                             string str = "FD010618000201010000";
 117                             chuansong(str);
 118                             shuchu(xianshi());
 119                             string strs = "FD010618000201020000";
 120                             chuansong(strs);
 121                             shuchu(xianshi());
 122 
 123                         }
 124                         //抑制极
 125                         if (this.button1.Text == "断电") {
 126                             string str = "";
 127                             string strs = "";
 128                             string gl = "";
 129                             string gy = "";
 130 
 131                             //正
 132                             if (ZF) {
 133 
 134                                 str = "FD010118000201010000";
 135                                 strs = "FD010118000201020000";
 136                                 gy = "FD010110000401010000";
 137                                 chuansong(gy);
 138                                 shuchu(xianshi());
 139 
 140                             }
 141                                 //负
 142                             else {
 143 
 144                                 str = "FD010118000202010000";
 145                                 strs = "FD010118000202020000";
 146                                 gl = "FD010110000402020000";
 147                                 chuansong(gl);
 148                                 shuchu(xianshi());
 149 
 150 
 151 
 152                             }
 153                             chuansong(strs);
 154                             shuchu(xianshi());
 155                             chuansong(str);
 156                             shuchu(xianshi());
 157 
 158 
 159                         }
 160                         //脉冲A
 161                         if (button8.Text == "断电") {
 162                             string gy = "FD010510000401010000";
 163                             string gl = "FD010510000401020000";
 164                             chuansong(gy);
 165                             shuchu(xianshi());
 166                             chuansong(gl);
 167                             shuchu(xianshi());
 168                             string str = "FD010510000201010000";
 169                             string strs = "FD010510000201020000";
 170                             chuansong(str);
 171                             shuchu(xianshi());
 172                             chuansong(strs);
 173                             shuchu(xianshi());
 174 
 175                         }
 176                         //聚焦一
 177                         if (button36.Text == "断电") {
 178                             string gy = "FD0103" + jja + "000401010000";
 179                             string gl = "FD0103" + jja + "000401020000";
 180                             chuansong(gy);
 181                             shuchu(xianshi());
 182                             chuansong(gl);
 183                             shuchu(xianshi());
 184                             string str = "FD0103" + jja + "000201010000";
 185                             string strs = "FD0103" + jja + "000201020000";
 186                             chuansong(str);
 187                             shuchu(xianshi());
 188                             chuansong(strs);
 189                             shuchu(xianshi());
 190 
 191                         }
 192                         //聚焦二
 193                         if (button41.Text == "断电") {
 194                             string gy = "FD0103" + jjb + "000401010000";
 195                             string gl = "FD0103" + jjb + "000401020000";
 196                             chuansong(gy);
 197                             shuchu(xianshi());
 198                             chuansong(gl);
 199                             shuchu(xianshi());
 200                             string str = "FD0103" + jjb + "000201010000";
 201                             string strs = "FD0103" + jjb + "000201020000";
 202                             chuansong(str);
 203                             shuchu(xianshi());
 204 
 205                             chuansong(strs);
 206                             shuchu(xianshi());
 207 
 208                         }
 209                         //预聚焦一
 210                         if (button5.Text == "断电") {
 211                             string gy = "FD0104" + yjja + "000401010000";
 212                             string gl = "FD0104" + yjja + "000401020000";
 213                             chuansong(gy);
 214                             shuchu(xianshi());
 215                             chuansong(gl);
 216                             shuchu(xianshi());
 217                             string str = "FD0104" + yjja + "000201010000";
 218                             string strs = "FD0104" + yjja + "000201020000";
 219                             chuansong(str);
 220                             shuchu(xianshi());
 221 
 222                             chuansong(strs);
 223                             shuchu(xianshi());
 224 
 225                         }
 226                         //预聚焦二
 227                         if (button23.Text == "断电") {
 228                             string gy = "FD0104" + yjjb + "000401010000";
 229                             string gl = "FD0104" + yjjb + "000401020000";
 230                             chuansong(gy);
 231                             shuchu(xianshi());
 232                             chuansong(gl);
 233                             shuchu(xianshi());
 234                             string str = "FD0104" + yjjb + "000201010000";
 235                             string strs = "FD0104" + yjjb + "000201020000";
 236                             chuansong(str);
 237                             shuchu(xianshi());
 238                             chuansong(strs);
 239                             shuchu(xianshi());
 240 
 241                         }
 242                         //预聚焦三
 243                         if (button29.Text == "断电") {
 244                             string gy = "FD0104" + yjc + "000401010000";
 245                             string gl = "FD0104" + yjc + "000401020000";
 246                             chuansong(gy);
 247                             shuchu(xianshi());
 248                             chuansong(gl);
 249                             shuchu(xianshi());
 250                             string str = "FD0104" + yjc + "000201010000";
 251                             string strs = "FD0104" + yjc + "000201020000";
 252                             chuansong(str);
 253                             shuchu(xianshi());
 254                             chuansong(strs);
 255                             shuchu(xianshi());
 256                         }
 257                         //主高压
 258                         if (button11.Text == "断电") {
 259                             string gl = "FD020B" + zgy + "000401020000";
 260                             chuansong(gl);
 261                             shuchu(xianshi());
 262                             string gy = "FD020B" + zgy + "000401010000";
 263                             chuansong(gy);
 264                             shuchu(xianshi());
 265                             string str = "FD020B" + zgy + "000201010000";
 266                             string strs = "FD020B" + zgy + "000201020000";
 267                             chuansong(str);
 268                             shuchu(xianshi());
 269                             chuansong(strs);
 270                             shuchu(xianshi());
 271                         }
 272                         //偏转正
 273                         if (this.button4.Text == "断电") {
 274                             string gl = "FD0209" + pza + "000401020000";
 275                             chuansong(gl);
 276                             shuchu(xianshi());
 277                             string gy = "FD0209" + pza + "000401010000";
 278                             chuansong(gy);
 279                             shuchu(xianshi());
 280                             string str2 = "FD0209" + pza + "000201010000";
 281                             chuansong(str2);
 282                             shuchu(xianshi());
 283                             string strs = "FD0209" + pza + "000201020000";
 284                             chuansong(strs);
 285                             shuchu(xianshi());
 286                             string gl2 = "FD0209" + pzb + "000402020000";
 287                             chuansong(gl2);
 288                             shuchu(xianshi());
 289                             string gy2 = "FD0209" + pzb + "000402010000";
 290                             chuansong(gy2);
 291                             shuchu(xianshi());
 292                             string str = "FD0209" + pzb + "000202010000";
 293                             string strs2 = "FD0209" + pzb + "000202020000";
 294                             chuansong(str);
 295                             shuchu(xianshi());
 296                             chuansong(strs2);
 297                             shuchu(xianshi());
 298                         }
 299                         //引出极
 300                         if (this.button2.Text == "断电") {
 301                             string gl = "FD010210000401020000";
 302                             chuansong(gl);
 303                             shuchu(xianshi());
 304                             string gy = "FD010210000401010000";
 305                             chuansong(gy);
 306                             shuchu(xianshi());
 307                             string str = "FD010218000201010000";
 308                             chuansong(str);
 309                             shuchu(xianshi());
 310                             string strs = "FD010218000201020000";
 311                             chuansong(strs);
 312                             shuchu(xianshi());
 313 
 314                         }
 315 
 316                         //热丝
 317                         if (this.button10.Text == "断电") {
 318                             string gy = "FD010810000401010000";
 319                             string gl = "FD010810000401020000";
 320                             chuansong(gy);
 321                             shuchu(xianshi());
 322                             chuansong(gl);
 323                             shuchu(xianshi());
 324                             string str = "FD010818000201010000";
 325                             chuansong(str);
 326                             shuchu(xianshi());
 327                             string strs = "FD010818000201020000";
 328                             chuansong(strs);
 329                             shuchu(xianshi());
 330                         }
 331                         #endregion
 332                     } else {
 333                         Thread.Sleep(1000);
 334                     }
 335                 } else {
 336                     Thread.Sleep(1000);
 337                 }
 338             } while (true);
 339 
 340         }
 341         //接受协议
 342         public byte[] xianshi() {
 343             try {
 344 
 345                 bool bGet = false;
 346                 byte[] received = new byte[13];
 347                 int nTimeout = 0;
 348                 if (sp.BytesToRead > 0) {
 349                     do {
 350 
 351                         int zhi = sp.ReadByte();
 352                         received[nTimeout] = Convert.ToByte(zhi);
 353 
 354 
 355                         if (received[nTimeout].ToString().IndexOf("170") >= 0)//这个地方要换成你的结束符
 356                         {
 357                             bGet = true;
 358                         }
 359 
 360                         nTimeout++;
 361 
 362                         if (nTimeout > 100) {
 363                             bGet = true;
 364                         }
 365                         Thread.Sleep(1);
 366                     }
 367                     while (!bGet);
 368                     sp.DiscardOutBuffer();
 369                     sp.DiscardInBuffer();
 370                     return received;
 371                 } else {
 372                     return null;
 373                 }
 374 
 375             } catch {
 376                 return null;
 377             }
 378         }
 379         //发送协议
 380         public void chuansong(string str) {
 381 
 382             if (sp.IsOpen == true) {
 383                 Byte[] sendstrs = BLL.ZhuanHuan.GetByte(str);
 384                 sp.Write(sendstrs, 0, sendstrs.Length);
 385                 Thread.Sleep(600);
 386             }
 387 
 388         }
 389         //过流过压图片显示
 390         public void GLGY(PictureBox pbR, PictureBox pbG, string jiu, string qi) {
 391             //过压
 392             if (qi == "01") {
 393 
 394                 if (jiu == "01") {
 395 
 396                     //  Closes();
 397                     pbR.Image = Image.FromFile(redPath);
 398                 } else if (jiu == "00") {
 399                     pbG.Image = Image.FromFile(greenPath);
 400                     pbR.Image = Image.FromFile(whitePath);
 401                 }
 402             }
 403                 //过流
 404             else if (qi == "02") {
 405                 if (jiu == "01") {
 406 
 407                     //   Closes();
 408                     pbR.Image = Image.FromFile(redPath);
 409                 } else if (jiu == "00") {
 410                     pbG.Image = Image.FromFile(greenPath);
 411                     pbR.Image = Image.FromFile(whitePath);
 412                 }
 413             }
 414         }
 415         //输出显示
 416         public void shuchu(byte[] buf) {
 417             if (buf != null) {
 418                 if (buf.Count() > 0) {
 419                     string[] bufd = BLL.ZhuanHuan.ByteToByteString(buf);
 420                     #region 算法
 421                     switch (bufd[2]) {
 422                         //抑制极电源
 423                         #region 抑制极
 424                         case "01": {
 425                                 //设置与开关
 426                                 if (bufd[4] == "00") {
 427                                     //查询电压电流
 428                                     if (bufd[5] == "03") {
 429                                         //正
 430                                         if (bufd[6] == "01") {
 431                                             //电压
 432                                             if (bufd[7] == "01") {
 433                                                 this.txtYZJDYS.Text = BLL.YiZhiJi.YZJSZ(bufd[8] + bufd[9]).ToString();
 434                                                 double jieguo = Math.Round(BLL.ZhuanHuan.Shi(bufd[8] + bufd[9]) / 16383.0 * 5.0, 4);
 435                                                 shuaxin(jieguo, this.zgcYZJDY, listyzj, myCurveyzj);
 436                                             }
 437                                                 //电流
 438                                             else if (bufd[7] == "02") {
 439                                                 double zhi = BLL.YiZhiJi.DLJSZ(bufd[8] + bufd[9]);
 440                                                 if (zhi > BLL.Model.YZJZ.SCDLG * (1 + 0.1)) {
 441                                                     //发送过流保护信号
 442                                                     this.pbxYZJDYR.Image = Image.FromFile(redPath);
 443                                                     Closes();
 444                                                 }
 445                                                 this.txtYZJDL.Text = BLL.YiZhiJi.DLJSZ(bufd[8] + bufd[9]).ToString();
 446                                                 double jieguo = Math.Round(BLL.ZhuanHuan.Shi(bufd[8] + bufd[9]) / 16383.0 * 5.0, 4);
 447                                             }
 448 
 449                                         }
 450                                             //负
 451                                         else if (bufd[6] == "02") {
 452                                             //电压
 453                                             if (bufd[7] == "01") {
 454 
 455                                                 this.txtYZJDYS.Text = BLL.YiZhiJi.YZJSF(bufd[8] + bufd[9]).ToString();
 456                                                 double jieguo = Math.Round(BLL.ZhuanHuan.Shi(bufd[8] + bufd[9]) / 16383.0 * 5.0, 4);
 457                                                 shuaxin(jieguo, this.zgcYZJDY, listyzj, myCurveyzj);
 458                                             }
 459                                                 //电流
 460                                             else if (bufd[7] == "02") {
 461 
 462                                                 this.txtYZJDL.Text = BLL.YiZhiJi.YZJSZDL(bufd[8] + bufd[9]).ToString();
 463                                                 double jieguo = Math.Round(BLL.ZhuanHuan.Shi(bufd[8] + bufd[9]) / 16383.0 * 5.0, 4);
 464 
 465                                             }
 466                                         }
 467                                     }
 468                                         //过流过压
 469                                     else if (bufd[5] == "04") {
 470                                         //正
 471                                         if (bufd[6] == "01") {
 472                                             GLGY(this.pbxYZJDYR, pbxYZJDYG, bufd[9], bufd[7]);
 473                                         }
 474                                             //负
 475                                         else if (bufd[6] == "02") {
 476                                             GLGY(this.pbxYZJDYR, pbxYZJDYG, bufd[9], bufd[7]);
 477                                         }
 478                                     }
 479                                 }
 480                                 break;
 481                             }
 482                         #endregion
 483                         //引出极电源
 484                         #region 引出极
 485                         case "02": {
 486                                 //设置
 487                                 if (bufd[4] == "00") {
 488                                     //查询电流电压
 489                                     if (bufd[5] == "03") {
 490                                         //电压
 491                                         if (bufd[7] == "01") {
 492 
 493                                             this.txtYCJDYS.Text = BLL.YinChuJi.YCJSZ(bufd[8] + bufd[9]).ToString();
 494                                             double jieguo = Math.Round(BLL.ZhuanHuan.Shi(bufd[8] + bufd[9]) / 16383.0 * 5.0, 4);
 495                                             shuaxin(jieguo, this.zgcYCJDY, listycj, myCurveycj);
 496                                         }
 497                                             //电流
 498                                         else if (bufd[7] == "02") {
 499 
 500                                             this.txtYCJDL.Text = BLL.YinChuJi.YCJSZDL(bufd[8] + bufd[9]).ToString();
 501                                             double jieguo = Math.Round(BLL.ZhuanHuan.Shi(bufd[8] + bufd[9]) / 16383.0 * 5.0, 4);
 502                                         }
 503 
 504 
 505                                     }
 506                                         //过流过压
 507                                     else if (bufd[5] == "04") {
 508                                         GLGY(this.pbxYCJDYR, this.pbxYCJDYG, bufd[9], bufd[7]);
 509 
 510                                     }
 511                                 }
 512                                 break;
 513                             }
 514                         #endregion
 515                         //聚焦电源
 516                         #region 聚焦
 517                         case "03": {
 518                                 //一
 519                                 switch (bufd[3]) {
 520                                     case "18": {
 521                                             if (bufd[5] == "03") {
 522 
 523                                                 if (bufd[7] == "01") {
 524 
 525                                                     this.txtJJDYAS.Text = BLL.JuJiJi.JJJAASZ(bufd[8] + bufd[9]).ToString();
 526                                                     double jieguo = Math.Round(BLL.ZhuanHuan.Shi(bufd[8] + bufd[9]) / 16383.0 * 5.0, 4);
 527                                                     shuaxin(jieguo, this.zgcJJDYA, listjja, myCurvejja);
 528                                                 } else if (bufd[7] == "02") {
 529 
 530                                                     this.txtJJDLA.Text = BLL.JuJiJi.JJJAASZDL(bufd[8] + bufd[9]).ToString();
 531                                                     double jieguo = Math.Round(BLL.ZhuanHuan.Shi(bufd[8] + bufd[9]) / 16383.0 * 5.0, 4);
 532                                                 }
 533 
 534 
 535                                             }
 536                                                 //过流过压
 537                                             else if (bufd[5] == "04") {
 538                                                 GLGY(this.pbxJJDYAR, pbxJJDYAG, bufd[9], bufd[7]);
 539                                             }
 540 
 541 
 542                                             break;
 543                                         }
 544                                     //二
 545                                     case "10": {
 546                                             if (bufd[5] == "03") {
 547                                                 if (bufd[7] == "01") {
 548 
 549                                                     this.txtJJDYAS.Text = BLL.JuJiJi.JJJABSZ(bufd[8] + bufd[9]).ToString();
 550                                                     double jieguo = Math.Round(BLL.ZhuanHuan.Shi(bufd[8] + bufd[9]) / 16383.0 * 5.0, 4);
 551                                                     shuaxin(jieguo, this.zgcJJDYA, listjja, myCurvejja);
 552 
 553                                                 } else if (bufd[7] == "02") {
 554 
 555                                                     this.txtJJDLA.Text = BLL.JuJiJi.JJJABSZDL(bufd[8] + bufd[9]).ToString();
 556                                                     double jieguo = Math.Round(BLL.ZhuanHuan.Shi(bufd[8] + bufd[9]) / 16383.0 * 5.0, 4);
 557                                                 }
 558                                             }
 559                                                 //过流过压
 560                                             else if (bufd[5] == "04") {
 561                                                 GLGY(this.pbxJJDYAR, pbxJJDYAG, bufd[9], bufd[7]);
 562                                             }
 563 
 564                                             break;
 565                                         }
 566                                     case "11": {
 567                                             //三
 568                                             if (bufd[5] == "03") {
 569                                                 //因为要访问ui资源,所以需要使用invoke方式同步ui。
 570                                                 if (bufd[7] == "01") {
 571                                                     this.txtJJDYAS.Text = BLL.JuJiJi.JJJACSZ(bufd[8] + bufd[9]).ToString();
 572                                                     double jieguo = Math.Round(BLL.ZhuanHuan.Shi(bufd[8] + bufd[9]) / 16383.0 * 5.0, 4);
 573                                                     shuaxin(jieguo, this.zgcJJDYA, listjja, myCurvejja);
 574                                                 } else if (bufd[7] == "02") {
 575 
 576                                                     this.txtJJDLA.Text = BLL.JuJiJi.JJJACSZDL(bufd[8] + bufd[9]).ToString();
 577                                                     double jieguo = Math.Round(BLL.ZhuanHuan.Shi(bufd[8] + bufd[9]) / 16383.0 * 5.0, 4);
 578                                                 }
 579                                             }
 580                                                 //过流过压
 581                                             else if (bufd[5] == "04") {
 582                                                 GLGY(this.pbxJJDYAR, pbxJJDYAG, bufd[9], bufd[7]);
 583                                             }
 584 
 585                                             break;
 586                                         }
 587                                     //一
 588                                     case "28": {
 589 
 590                                             if (bufd[5] == "03") {
 591                                                 if (bufd[7] == "01") {
 592                                                     this.txtJJDYBS.Text = BLL.JuJiJi.JJJBASZ(bufd[8] + bufd[9]).ToString();
 593                                                     double jieguo = Math.Round(BLL.ZhuanHuan.Shi(bufd[8] + bufd[9]) / 16383.0 * 5.0, 4);
 594                                                     shuaxin(jieguo, this.zgcJJDYB, listjjb, myCurvejjb);
 595                                                 } else if (bufd[7] == "02") {
 596 
 597                                                     this.txtJJDLB.Text = BLL.JuJiJi.JJJBASZDL(bufd[8] + bufd[9]).ToString();
 598                                                     double jieguo = Math.Round(BLL.ZhuanHuan.Shi(bufd[8] + bufd[9]) / 16383.0 * 5.0, 4);
 599                                                 }
 600                                             }
 601                                                 //过流过压
 602                                             else if (bufd[5] == "04") {
 603                                                 GLGY(this.pbxJJDYBR, pbxJJDYBG, bufd[9], bufd[7]);
 604                                             }
 605                                             break;
 606                                         }
 607                                     //二
 608                                     case "20": {
 609 
 610                                             if (bufd[5] == "03") {
 611                                                 if (bufd[7] == "01") {
 612                                                     this.txtJJDYBS.Text = BLL.JuJiJi.JJJBBSZ(bufd[8] + bufd[9]).ToString();
 613                                                     double jieguo = Math.Round(BLL.ZhuanHuan.Shi(bufd[8] + bufd[9]) / 16383.0 * 5.0, 4);
 614                                                     shuaxin(jieguo, this.zgcJJDYB, listjjb, myCurvejjb);
 615                                                 } else if (bufd[7] == "02") {
 616                                                     this.txtJJDLB.Text = BLL.JuJiJi.JJJBBSZDL(bufd[8] + bufd[9]).ToString();
 617                                                     double jieguo = Math.Round(BLL.ZhuanHuan.Shi(bufd[8] + bufd[9]) / 16383.0 * 5.0, 4);
 618                                                 }
 619                                             }
 620                                                 //过流过压
 621                                             else if (bufd[5] == "04") {
 622                                                 GLGY(this.pbxJJDYBR, pbxJJDYBG, bufd[9], bufd[7]);
 623                                             }
 624                                             break;
 625                                         }
 626                                     //三
 627                                     case "21": {
 628 
 629                                             if (bufd[5] == "03") {
 630                                                 //因为要访问ui资源,所以需要使用invoke方式同步ui。
 631                                                 if (bufd[7] == "01") {
 632                                                     this.txtJJDYBS.Text = BLL.JuJiJi.JJJBCSZ(bufd[8] + bufd[9]).ToString();
 633                                                     double jieguo = Math.Round(BLL.ZhuanHuan.Shi(bufd[8] + bufd[9]) / 16383.0 * 5.0, 4);
 634                                                     shuaxin(jieguo, this.zgcJJDYB, listjjb, myCurvejjb);
 635                                                 } else if (bufd[7] == "02") {
 636                                                     this.txtJJDLB.Text = BLL.JuJiJi.JJJBCSZDL(bufd[8] + bufd[9]).ToString();
 637                                                     double jieguo = Math.Round(BLL.ZhuanHuan.Shi(bufd[8] + bufd[9]) / 16383.0 * 5.0, 4);
 638                                                 }
 639                                             }
 640                                                 //过流过压
 641                                             else if (bufd[5] == "04") {
 642                                                 GLGY(this.pbxJJDYBR, pbxJJDYBG, bufd[9], bufd[7]);
 643                                             }
 644                                             break;
 645                                         }
 646                                 }
 647                                 break;
 648                             }
 649                         #endregion
 650                         //预聚焦电源
 651                         #region 预聚焦
 652                         case "04": {
 653                                 {
 654                                     //一
 655                                     switch (bufd[3]) {
 656                                         case "18": {
 657                                                 if (bufd[5] == "03") {
 658                                                     if (bufd[7] == "01") {
 659                                                         this.txtYJJDYAS.Text = BLL.YuJuJiJi.YJJJAASZ(bufd[8] + bufd[9]).ToString();
 660                                                         double jieguo = Math.Round(BLL.ZhuanHuan.Shi(bufd[8] + bufd[9]) / 16383.0 * 5.0, 4);
 661                                                         shuaxin(jieguo, this.zgcYJJDYA, listyjja, myCurveyjja);
 662                                                     } else if (bufd[7] == "02") {
 663                                                         this.txtYJJDLA.Text = BLL.YuJuJiJi.YJJJAASZDL(bufd[8] + bufd[9]).ToString();
 664                                                         double jieguo = Math.Round(BLL.ZhuanHuan.Shi(bufd[8] + bufd[9]) / 16383.0 * 5.0, 4);
 665                                                     }
 666                                                 }
 667                                                     //过流过压
 668                                                 else if (bufd[5] == "04") {
 669                                                     GLGY(this.pbxYJJDYAGR, pbxYJJDYAG, bufd[9], bufd[7]);
 670                                                 }
 671                                                 break;
 672                                             }
 673                                         //二
 674                                         case "10": {
 675                                                 if (bufd[5] == "03") {
 676                                                     if (bufd[7] == "01") {
 677                                                         this.txtYJJDYAS.Text = BLL.YuJuJiJi.YJJJABSZ(bufd[8] + bufd[9]).ToString();
 678                                                         double jieguo = Math.Round(BLL.ZhuanHuan.Shi(bufd[8] + bufd[9]) / 16383.0 * 5.0, 4);
 679                                                         shuaxin(jieguo, this.zgcYJJDYA, listyjja, myCurveyjja);
 680                                                     } else if (bufd[7] == "02") {
 681                                                         this.txtYJJDLA.Text = BLL.YuJuJiJi.YJJJABSZDL(bufd[8] + bufd[9]).ToString();
 682                                                         double jieguo = Math.Round(BLL.ZhuanHuan.Shi(bufd[8] + bufd[9]) / 16383.0 * 5.0, 4);
 683                                                     }
 684                                                 }
 685                                                     //过流过压
 686                                                 else if (bufd[5] == "04") {
 687                                                     GLGY(this.pbxYJJDYBR, pbxYJJDYAG, bufd[9], bufd[7]);
 688                                                 }
 689                                                 break;
 690                                             }
 691                                         case "11": {
 692                                                 //三
 693                                                 if (bufd[5] == "03") {
 694                                                     if (bufd[7] == "01") {
 695                                                         this.txtYJJDYAS.Text = BLL.YuJuJiJi.YJJJACSZ(bufd[8] + bufd[9]).ToString();
 696                                                         double jieguo = Math.Round(BLL.ZhuanHuan.Shi(bufd[8] + bufd[9]) / 16383.0 * 5.0, 4);
 697                                                         shuaxin(jieguo, this.zgcYJJDYA, listyjja, myCurveyjja);
 698                                                     } else if (bufd[7] == "02") {
 699                                                         this.txtYJJDLA.Text = BLL.YuJuJiJi.YJJJACSZDL(bufd[8] + bufd[9]).ToString();
 700                                                         double jieguo = Math.Round(BLL.ZhuanHuan.Shi(bufd[8] + bufd[9]) / 16383.0 * 5.0, 4);
 701                                                     }
 702                                                 }
 703                                                     //过流过压
 704                                                 else if (bufd[5] == "04") {
 705                                                     GLGY(this.pbxYJJDYCR, pbxYJJDYAG, bufd[9], bufd[7]);
 706                                                 }
 707                                                 break;
 708                                             }
 709                                         //一
 710                                         case "28": {
 711                                                 if (bufd[5] == "03") {
 712                                                     if (bufd[7] == "01") {
 713                                                         this.txtYJJDYBS.Text = BLL.YuJuJiJi.YJJJBASZ(bufd[8] + bufd[9]).ToString();
 714                                                         double jieguo = Math.Round(BLL.ZhuanHuan.Shi(bufd[8] + bufd[9]) / 16383.0 * 5.0, 4);
 715                                                         shuaxin(jieguo, this.zgcYJJDYB, listyjjb, myCurveyjjb);
 716                                                     } else if (bufd[7] == "02") {
 717                                                         this.txtYJJDLB.Text = BLL.YuJuJiJi.YJJJBASZDL(bufd[8] + bufd[9]).ToString();
 718                                                         double jieguo = Math.Round(BLL.ZhuanHuan.Shi(bufd[8] + bufd[9]) / 16383.0 * 5.0, 4);
 719                                                     }
 720 
 721                                                 }
 722                                                     //过流过压
 723                                                 else if (bufd[5] == "04") {
 724                                                     GLGY(this.pbxYJJDYBR, pbxYJJDYBG, bufd[9], bufd[7]);
 725                                                 }
 726                                                 break;
 727                                             }
 728                                         //二
 729                                         case "20": {
 730                                                 if (bufd[5] == "03") {
 731                                                     if (bufd[7] == "01") {
 732                                                         this.txtYJJDYBS.Text = BLL.YuJuJiJi.YJJJBBSZ(bufd[8] + bufd[9]).ToString();
 733                                                         double jieguo = Math.Round(BLL.ZhuanHuan.Shi(bufd[8] + bufd[9]) / 16383.0 * 5.0, 4);
 734                                                         shuaxin(jieguo, this.zgcYJJDYB, listyjjb, myCurveyjjb);
 735                                                     } else if (bufd[7] == "02") {
 736                                                         this.txtYJJDLB.Text = BLL.YuJuJiJi.YJJJBBSZDL(bufd[8] + bufd[9]).ToString();
 737                                                         double jieguo = Math.Round(BLL.ZhuanHuan.Shi(bufd[8] + bufd[9]) / 16383.0 * 5.0, 4);
 738                                                     }
 739                                                 }
 740                                                     //过流过压
 741                                                 else if (bufd[5] == "04") {
 742                                                     GLGY(this.pbxYJJDYBR, pbxYJJDYBG, bufd[9], bufd[7]);
 743                                                 }
 744                                                 break;
 745                                             }
 746                                         //三
 747                                         case "21": {
 748                                                 if (bufd[5] == "03") {
 749                                                     if (bufd[7] == "01") {
 750                                                         this.txtYJJDYBS.Text = BLL.YuJuJiJi.YJJJBCSZ(bufd[8] + bufd[9]).ToString();
 751                                                         double jieguo = Math.Round(BLL.ZhuanHuan.Shi(bufd[8] + bufd[9]) / 16383.0 * 5.0, 4);
 752                                                         shuaxin(jieguo, this.zgcYJJDYB, listyjjb, myCurveyjjb);
 753                                                     } else if (bufd[7] == "02") {
 754                                                         this.txtYJJDLB.Text = BLL.YuJuJiJi.YJJJBCSZDL(bufd[8] + bufd[9]).ToString();
 755                                                         double jieguo = Math.Round(BLL.ZhuanHuan.Shi(bufd[8] + bufd[9]) / 16383.0 * 5.0, 4);
 756                                                     }
 757                                                 }
 758                                                     //过流过压
 759                                                 else if (bufd[5] == "04") {
 760                                                     GLGY(this.pbxYJJDYBR, pbxYJJDYBG, bufd[9], bufd[7]);
 761                                                 }
 762                                                 break;
 763                                             }
 764                                         //一
 765                                         case "38": {
 766                                                 if (bufd[5] == "03") {
 767                                                     if (bufd[7] == "01") {
 768                                                         this.txtYJJDYCS.Text = BLL.YuJuJiJi.YJJJCASZ(bufd[8] + bufd[9]).ToString();
 769                                                         double jieguo = Math.Round(BLL.ZhuanHuan.Shi(bufd[8] + bufd[9]) / 16383.0 * 5.0, 4);
 770                                                         shuaxin(jieguo, this.zgcYJJDYC, listyjjc, myCurveyjjc);
 771                                                     } else if (bufd[7] == "02") {
 772                                                         this.txtYJJDLC.Text = BLL.YuJuJiJi.YJJJCASZDL(bufd[8] + bufd[9]).ToString();
 773                                                         double jieguo = Math.Round(BLL.ZhuanHuan.Shi(bufd[8] + bufd[9]) / 16383.0 * 5.0, 4);
 774                                                     }
 775                                                 }
 776                                                     //过流过压
 777                                                 else if (bufd[5] == "04") {
 778                                                     GLGY(this.pbxYJJDYCR, pbxYJJDYCG, bufd[9], bufd[7]);
 779                                                 }
 780                                                 break;
 781                                             }
 782                                         //二
 783                                         case "30": {
 784                                                 if (bufd[5] == "03") {
 785                                                     if (bufd[7] == "01") {
 786                                                         this.txtYJJDYCS.Text = BLL.YuJuJiJi.YJJJCBSZ(bufd[8] + bufd[9]).ToString();
 787                                                         double jieguo = Math.Round(BLL.ZhuanHuan.Shi(bufd[8] + bufd[9]) / 16383.0 * 5.0, 4);
 788                                                         shuaxin(jieguo, this.zgcYJJDYC, listyjjc, myCurveyjjc);
 789                                                     } else if (bufd[7] == "02") {
 790                                                         this.txtYJJDLC.Text = BLL.YuJuJiJi.YJJJCBSZDL(bufd[8] + bufd[9]).ToString();
 791                                                         double jieguo = Math.Round(BLL.ZhuanHuan.Shi(bufd[8] + bufd[9]) / 16383.0 * 5.0, 4);
 792                                                     }
 793                                                 }
 794                                                     //过流过压
 795                                                 else if (bufd[5] == "04") {
 796                                                     GLGY(this.pbxYJJDYCR, pbxYJJDYCG, bufd[9], bufd[7]);
 797                                                 }
 798                                                 break;
 799                                             }
 800                                         //三
 801                                         case "31": {
 802                                                 if (bufd[5] == "03") {
 803                                                     if (bufd[7] == "01") {
 804                                                         this.txtYJJDYCS.Text = BLL.YuJuJiJi.YJJJCCSZ(bufd[8] + bufd[9]).ToString();
 805                                                         double jieguo = Math.Round(BLL.ZhuanHuan.Shi(bufd[8] + bufd[9]) / 16383.0 * 5.0, 4);
 806                                                         shuaxin(jieguo, this.zgcYJJDYC, listyjjc, myCurveyjjc);
 807                                                     } else if (bufd[7] == "02") {
 808                                                         this.txtYJJDLC.Text = BLL.YuJuJiJi.YJJJCCSZDL(bufd[8] + bufd[9]).ToString();
 809                                                         double jieguo = Math.Round(BLL.ZhuanHuan.Shi(bufd[8] + bufd[9]) / 16383.0 * 5.0, 4);
 810                                                     }
 811                                                 }
 812                                                     //过流过压
 813                                                 else if (bufd[5] == "04") {
 814                                                     GLGY(this.pbxYJJDYCR, pbxYJJDYCG, bufd[9], bufd[7]);
 815                                                 }
 816                                                 break;
 817                                             }
 818                                     }
 819                                     break;
 820                                 }
 821                             }
 822                         #endregion
 823                         //脉冲输出电源
 824                         #region 脉冲输出
 825                         case "05": {
 826                                 if (bufd[4] == "00") {
 827                                     if (bufd[5] == "03") {
 828                                         if (bufd[7] == "01") {
 829                                             this.txtMCSCDYS.Text = BLL.TiaoZhiJi.TZJSZ(bufd[8] + bufd[9]).ToString();
 830                                             double jieguo = Math.Round(BLL.ZhuanHuan.Shi(bufd[8] + bufd[9]) / 16383.0 * 5.0, 4);
 831                                             shuaxin(jieguo, this.zgcMCSCDYA, listymc, myCurveymc);
 832                                         } else if (bufd[7] == "02") {
 833                                             this.txtMCSCDL.Text = BLL.TiaoZhiJi.TZJSZDL(bufd[8] + bufd[9]).ToString();
 834                                             double jieguo = Math.Round(BLL.ZhuanHuan.Shi(bufd[8] + bufd[9]) / 16383.0 * 5.0, 4);
 835                                         }
 836                                     }
 837                                         //过流过压
 838                                     else if (bufd[5] == "04") {
 839                                         GLGY(this.pbxMCSCDYR, pbxMCSCDYG, bufd[9], bufd[7]);
 840                                     }
 841                                 }
 842                                 break;
 843                             }
 844                         #endregion
 845                         //60V整流电源
 846                         #region 60V整流
 847                         case "06": {
 848                                 if (bufd[4] == "00") {
 849                                     if (bufd[5] == "03") {
 850                                         if (bufd[6] == "01") {
 851                                             if (bufd[7] == "01") {
 852                                                 this.txtZLDYS.Text = BLL._60V.VSZ(bufd[8] + bufd[9]).ToString();
 853                                                 double jieguo = Math.Round(BLL.ZhuanHuan.Shi(bufd[8] + bufd[9]) / 16383.0 * 5.0, 4);
 854                                                 shuaxin(jieguo, this.zgcZLDY, listzl, myCurvezl);
 855                                             } else if (bufd[7] == "02") {
 856                                                 this.txtZLDL.Text = BLL._60V.VSZDL(bufd[8] + bufd[9]).ToString();
 857                                                 double jieguo = Math.Round(BLL.ZhuanHuan.Shi(bufd[8] + bufd[9]) / 16383.0 * 5.0, 4);
 858                                             }
 859                                         }
 860 
 861                                     }
 862                                         //过流过压
 863                                     else if (bufd[5] == "04") {
 864                                         if (bufd[9] == "01") {
 865                                             string str = "FD020610000101110000";
 866 
 867                                             chuansong(str);
 868 
 869                                         }
 870                                         GLGY(this.pbxZLDYR, pbxZLDYG, bufd[9], bufd[7]);
 871 
 872                                     }
 873                                 }
 874                                 break;
 875                             }
 876                         #endregion
 877                         // 热丝电源预热(0-10)分钟
 878                         #region 热丝预热
 879                         case "07": {
 880                                 break;
 881 
 882                             }
 883                         #endregion
 884                         //热丝电源
 885                         #region 热丝
 886                         case "08": {
 887                                 if (bufd[4] == "00") {
 888                                     if (bufd[5] == "03") {
 889                                         if (bufd[7] == "01") {
 890                                             this.txtRSDYS.Text = BLL.DengSi.DSSZ(bufd[8] + bufd[9]).ToString();
 891                                             double jieguo = Math.Round(BLL.ZhuanHuan.Shi(bufd[8] + bufd[9]) / 16383.0 * 5.0, 4);
 892                                             shuaxin(jieguo, this.zgcRSDY, listrs, myCurvers);
 893                                         } else if (bufd[7] == "02") {
 894                                             this.txtRSDL.Text = BLL.DengSi.DSSZDL(bufd[8] + bufd[9]).ToString();
 895                                             double jieguo = Math.Round(BLL.ZhuanHuan.Shi(bufd[8] + bufd[9]) / 16383.0 * 5.0, 4);
 896                                         }
 897                                     }
 898                                         //过流过压
 899                                     else if (bufd[5] == "04") {
 900                                         GLGY(this.pbxRSDYR, pbxRSDYG, bufd[9], bufd[7]);
 901                                     }
 902                                 }
 903                                 break;
 904                             }
 905                         #endregion
 906                         //偏转电源
 907                         #region 偏转
 908                         case "09": {
 909                                 if (bufd[5] == "03") {
 910                                     if (bufd[6] == "01") {
 911                                         if (bufd[7] == "01") {
 912 
 913                                             double zhi = Math.Round(BLL.ZhuanHuan.Shi(bufd[8] + bufd[9]) / 16383.0 * 5.0, 4);
 914                                             shuaxin(zhi, this.zgcPZDYA, listpza, myCurvepza);
 915                                             if (zhi <= BLL.Model.PZDYZ1.DYXSG) {
 916                                                 this.txtPZDYAS.Text = BLL.PianZhuan.PZASZ(bufd[8] + bufd[9]).ToString();
 917                                             } else if (zhi <= BLL.Model.PZDYZ2.DYXSG) {
 918                                                 this.txtPZDYAS.Text = BLL.PianZhuan.PZBSZ(bufd[8] + bufd[9]).ToString();
 919                                             } else if (zhi <= BLL.Model.PZDYZ3.DYXSG) {
 920                                                 this.txtPZDYAS.Text = BLL.PianZhuan.PZCSZ(bufd[8] + bufd[9]).ToString();
 921                                             }
 922 
 923 
 924                                         } else if (bufd[7] == "02") {
 925                                             double zhi = Math.Round(BLL.ZhuanHuan.Shi(bufd[8] + bufd[9]) / 16383.0 * 5.0, 4);
 926                                             if (zhi <= BLL.Model.PZDYZ1.DLXSG) {
 927                                                 this.txtPZDLA.Text = BLL.PianZhuan.PZASZDL(bufd[8] + bufd[9]).ToString();
 928                                             } else if (zhi <= BLL.Model.PZDYZ2.DLXSG) {
 929                                                 this.txtPZDLA.Text = BLL.PianZhuan.PZBSZDL(bufd[8] + bufd[9]).ToString();
 930                                             } else if (zhi <= BLL.Model.PZDYZ3.DLXSG) {
 931                                                 this.txtPZDLA.Text = BLL.PianZhuan.PZCSZDL(bufd[8] + bufd[9]).ToString();
 932                                             }
 933 
 934 
 935                                         }
 936 
 937                                     } else if (bufd[6] == "02") {
 938                                         if (bufd[7] == "01") {
 939 
 940                                             double zhi = Math.Round(BLL.ZhuanHuan.Shi(bufd[8] + bufd[9]) / 16383.0 * 5.0, 4);
 941                                             shuaxin(zhi, this.zgcPZDYB, listpzb, myCurvepzb);
 942 
 943                                             if (zhi <= BLL.Model.PZDYF1.DYXSG) {
 944                                                 this.txtPZDYBS.Text = BLL.PianZhuan.PZASF(bufd[8] + bufd[9]).ToString();
 945                                             } else if (zhi <= BLL.Model.PZDYF2.DYXSG) {
 946                                                 this.txtPZDYBS.Text = BLL.PianZhuan.PZBSF(bufd[8] + bufd[9]).ToString();
 947                                             } else if (zhi <= BLL.Model.PZDYF3.DYXSG) {
 948                                                 this.txtPZDYBS.Text = BLL.PianZhuan.PZCSF(bufd[8] + bufd[9]).ToString();
 949                                             }
 950                                         } else if (bufd[7] == "02") {
 951                                             double zhi = Math.Round(BLL.ZhuanHuan.Shi(bufd[8] + bufd[9]) / 16383.0 * 5.0, 4);
 952                                             if (zhi <= BLL.Model.PZDYF1.DLXSG) {
 953                                                 this.txtPZDLB.Text = BLL.PianZhuan.PZASFDL(bufd[8] + bufd[9]).ToString();
 954                                             } else if (zhi <= BLL.Model.PZDYF2.DLXSG) {
 955                                                 this.txtPZDLB.Text = BLL.PianZhuan.PZBSFDL(bufd[8] + bufd[9]).ToString();
 956                                             } else if (zhi <= BLL.Model.PZDYF3.DLXSG) {
 957                                                 this.txtPZDLB.Text = BLL.PianZhuan.PZCSFDL(bufd[8] + bufd[9]).ToString();
 958                                             }
 959 
 960                                         }
 961 
 962                                     }
 963 
 964                                 }
 965                                     //过流过压
 966                                 else if (bufd[5] == "05") {
 967                                     //正
 968                                     if (bufd[6] == "01") {
 969                                         GLGY(this.pbxPZDYAR, pbxPZDYAG, bufd[9], bufd[7]);
 970                                     }
 971                                         //负
 972                                     else if (bufd[6] == "02") {
 973                                         GLGY(this.pbxPZDYBR, pbxPZDYBG, bufd[9], bufd[7]);
 974                                     }
 975                                 }
 976                                 break;
 977                             }
 978                         #endregion
 979                         //主高电源
 980                         #region 主高压
 981                         case "0B": {
 982                                 if (bufd[5] == "03") {
 983                                     if (bufd[7] == "01") {
 984                                         double zhi = Math.Round(BLL.ZhuanHuan.Shi(bufd[8] + bufd[9]) / 16383.0 * 5.0, 4);
 985                                         if (zhi <= BLL.Model.ZGY1.DYXSG) {
 986                                             this.txtZGYDYS.Text = BLL.ZhuGaoYa.GYSZA(bufd[8] + bufd[9]).ToString();
 987                                         } else if (zhi <= BLL.Model.ZGY2.DYXSG) {
 988                                             this.txtZGYDYS.Text = BLL.ZhuGaoYa.GYSZB(bufd[8] + bufd[9]).ToString();
 989                                         } else if (zhi <= BLL.Model.ZGY3.DYXSG) {
 990                                             this.txtZGYDYS.Text = BLL.ZhuGaoYa.GYSZC(bufd[8] + bufd[9]).ToString();
 991                                         }
 992                                         shuaxin(zhi, this.zgcZGYDY, listzgy, myCurvezgy);
 993 
 994                                     }
 995                                     if (bufd[7] == "02") {
 996                                         double zhi = Math.Round(BLL.ZhuanHuan.Shi(bufd[8] + bufd[9]) / 16383.0 * 5.0, 4);
 997                                         if (zhi <= BLL.Model.ZGY1.DLXSG) {
 998                                             this.txtZGYDL.Text = BLL.ZhuGaoYa.GYSZDLA(bufd[8] + bufd[9]).ToString();
 999                                         } else if (zhi <= BLL.Model.ZGY2.DLXSG) {
1000                                             this.txtZGYDL.Text = BLL.ZhuGaoYa.GYSZDLB(bufd[8] + bufd[9]).ToString();
1001                                         } else if (zhi <= BLL.Model.ZGY3.DLXSG) {
1002                                             this.txtZGYDL.Text = BLL.ZhuGaoYa.GYSZDLC(bufd[8] + bufd[9]).ToString();
1003                                         }
1004                                     }
1005                                 }
1006                                     //过流过压
1007                                 else if (bufd[5] == "05") {
1008 
1009                                     GLGY(this.pbxZGYDLR, pbxZGYDLG, bufd[9], bufd[7]);
1010                                 }
1011                                 break;
1012 
1013                             }
1014                         #endregion
1015                     }
1016 
1017                     #endregion
1018                     sp.DiscardInBuffer();
1019                 }
1020 
1021             }
1022 
1023         }
1024         //关闭所有电源
1025         public void Closes() {
1026             ltr[0].Suspend();
1027             if (count > 0) {
1028 
1029                 this.button8.Text = "加电";
1030                 this.button29.Text = "加电";
1031                 this.button23.Text = "加电";
1032                 this.button5.Text = "加电";
1033                 this.button41.Text = "加电";
1034                 this.button36.Text = "加电";
1035                 this.button2.Text = "加电";
1036                 this.button1.Text = "加电";
1037                 this.button11.Text = "加电";
1038                 this.button9.Text = "加电";
1039                 this.button10.Text = "加电";
1040                 this.button4.Text = "加电";
1041                 if (sp.IsOpen) {
1042                     string str = "FD010110020401010000";
1043                     chuansong(str);
1044                     Thread.Sleep(1000);
1045                     string strs1 = "FD010110020402010000";
1046                     chuansong(strs1);
1047                     Thread.Sleep(1000);
1048                     string str2 = "FD010210020401010000";
1049                     chuansong(str2);
1050                     Thread.Sleep(1000);
1051                     string strs3 = "FD010318020402010000";
1052                     chuansong(strs3);
1053                     Thread.Sleep(1000);
1054                     string strs4 = "FD010328020401010000";
1055                     chuansong(strs4);
1056                     Thread.Sleep(1000);
1057                     string strs5 = "FD010418020401010000";
1058                     chuansong(strs5);
1059                     Thread.Sleep(1000);
1060                     string strs6 = "FD010428020401010000";
1061                     chuansong(strs6);
1062                     Thread.Sleep(1000);
1063                     string strs7 = "FD010438020401010000";
1064                     chuansong(strs7);
1065                     Thread.Sleep(1000);
1066                     string str8 = "FD010510020401010000";
1067                     chuansong(str8);
1068                     Thread.Sleep(1000);
1069                     string str10 = "FD010810020401010000";
1070                     chuansong(str10);
1071                     Thread.Sleep(1000);
1072                     string strs11 = "FD020910020401010000";
1073                     chuansong(strs11);
1074                     Thread.Sleep(1000);
1075                     string strs12 = "FD020910020402010000";
1076                     chuansong(strs12);
1077                     Thread.Sleep(1000);
1078                     string strs13 = "FD020B10020401010000";
1079                     chuansong(strs13);
1080                     Thread.Sleep(1000);
1081                     string str9 = "FD010610020401010000";
1082                     chuansong(str9);
1083                 }
1084                 for (int i = 0 ; i < cbos.Count ; i++) {
1085                     cbos[i][i].Enabled = true;
1086                     btns[i].Enabled = true;
1087                 }
1088             }
1089             ltr[0].Resume();
1090             sp.Close();
1091             PictureBox pb = new PictureBox();
1092             pb.Name = "qb";
1093             guandeng(pb);
1094             fc.Hide();
1095             btnCom.Text = "打开";
1096             this.pictureBox1.Image = Image.FromFile(whitePath);
1097         }
1098         /// <summary>
1099         /// 输入验证
1100         /// </summary>
1101         /// <param name="tb">TextBox文本框</param>
1102         /// <param name="min">最小值</param>
1103         /// <param name="max">最大值</param>
1104         /// <returns></returns>
1105         public bool tanchukuang(TextBox tb, double min, double max) {
1106             try {
1107                 double zhi = Convert.ToDouble(tb.Text.Trim());
1108                 if (zhi < min || zhi > max) {
1109                     MessageBox.Show("请输入" + min + "-" + max + "之间的电压");
1110                     return false;
1111                 } else {
1112                     return true;
1113                 }
1114             } catch {
1115                 MessageBox.Show("请输入正确的数字");
1116                 return false;
1117 
1118             }
1119         }
1120         //主高压开关
1121         private void button11_Click(object sender, EventArgs e) {
1122             ltr[0].Suspend();
1123             if (tanchukuang(this.txtZGYDY, 9000, 168000)) {
1124                 if (this.button11.Text == "加电") {
1125                     count++;
1126                     this.button11.Text = "断电";
1127                     string str1 = "FD020B1800010101" + BLL.ZhuGaoYa.GYXZA(10000);
1128                     chuansong(str1);
1129                     string strk = "FD020B00010100020000";
1130                     chuansong(strk);
1131                     int counts = 30;
1132                     string[] jieguo = ZGY.SheZhi(this.txtZGYDY.Text.Trim(), gy, zgys);
1133                     zgy = jieguo[2];
1134                     if (zgys >= Convert.ToDouble(this.txtZGYDY.Text.Trim())) {
1135                         chuansong(jieguo[1]);
1136                         Thread.Sleep(5000);
1137                         chuansong(jieguo[0]);
1138                     } else {
1139                         chuansong(jieguo[0]);
1140                         double d = Convert.ToDouble(this.txtZGYDY.Text.Trim()) - zgys;
1141                         //判断之前设置和现在设置的电压差距·根据差距设置循环加电次数
1142                         if (d >= 140000) {
1143                             counts = 75;
1144                         } else if (d >= 100000) {
1145                             counts = 55;
1146                         } else if (d >= 60000) {
1147                             counts = 50;
1148                         } else if (d >= 30000) {
1149                             counts = 35;
1150                         } else {
1151                             counts = 20;
1152                         }
1153                         if (jieguo[3] != "") {
1154                             chuansong(jieguo[3]);
1155                             if (jieguo[2] == "11") {
1156                                 string str = "FD020B1000010101" + BLL.ZhuanHuan.ShiLiu(4.9 * 16383 / 5);
1157                                 chuansong(str);
1158                             }
1159                             double dizeng = Math.Round((4.9 - Convert.ToDouble(jieguo[4])) / counts, 4);
1160                             double dq = 4.9;
1161                             for (int i = 0 ; i < counts ; i++) {
1162                                 if (jieguo[2] == "18") {
1163                                     dq -= dizeng;
1164                                     string strs = "FD020B1800010101" + BLL.ZhuanHuan.ShiLiu(dq * 16383 / 5);
1165                                     chuansong(strs);
1166                                 } else if (jieguo[2] == "10") {
1167                                     dq -= dizeng;
1168                                     string strs = "FD020B1000010101" + BLL.ZhuanHuan.ShiLiu(dq * 16383 / 5);
1169                                     chuansong(strs);
1170                                 } else if (jieguo[2] == "11") {
1171                                     dq -= dizeng;
1172                                     string strs = "FD020B1100010101" + BLL.ZhuanHuan.ShiLiu(dq * 16383 / 5);
1173                                     chuansong(strs);
1174                                 }
1175                             }
1176                         } else {
1177                             double tizeng = (Convert.ToDouble(this.txtZGYDY.Text.Trim()) - zgys) / counts;
1178                             double dq = zgys;
1179                             for (int i = 0 ; i < counts ; i++) {
1180                                 if (jieguo[2] == "18") {
1181                                     dq += tizeng;
1182                                     string strs = "FD020B1800010101" + BLL.ZhuGaoYa.GYXZA(dq);
1183                                     chuansong(strs);
1184                                 } else if (jieguo[2] == "10") {
1185                                     dq += tizeng;
1186                                     string strs = "FD020B1000010101" + BLL.ZhuGaoYa.GYXZB(dq);
1187                                     chuansong(strs);
1188                                 } else if (jieguo[2] == "11") {
1189                                     dq += tizeng;
1190                                     string strs = "FD020B1100010101" + BLL.ZhuGaoYa.GYXZC(dq);
1191                                     chuansong(strs);
1192                                 }
1193                             }
1194                         }
1195                     }
1196                     zgys = Convert.ToDouble(this.txtZGYDY.Text.Trim());
1197 
1198                 } else {
1199                     count--;
1200                     zgys = 10000;
1201 
1202                     this.button11.Text = "加电";
1203                     string str = "FD020B00020100020000";
1204                     guandeng(pbxZGYDLG);
1205                     chuansong(str);
1206                     string strs = "FD020B1800010101" + BLL.ZhuGaoYa.GYXZA(10000);
1207                     chuansong(strs);
1208                     txtZGYDYS.Text = "";
1209                     txtZGYDL.Text = "";
1210                 }
1211             }
1212             ltr[0].Resume();
1213         }
1214         //偏转A开关
1215         private void button4_Click(object sender, EventArgs e) {
1216             ltr[0].Suspend();
1217             if (tanchukuang(this.txtPZDYA, 0, 9000)) {
1218                 if (this.button4.Text == "加电") {
1219                     count++;
1220 
1221                     this.button4.Text = "断电";
1222                     string[] jieguo = new PZA().shezhi(this.txtPZDYA.Text.Trim(), gy, pzas);
1223                     pza = jieguo[2];
1224                     if (pzas >= Convert.ToDouble(this.txtPZDYA.Text.Trim())) {
1225                         chuansong(jieguo[1]);
1226                         Thread.Sleep(2000);
1227                         chuansong(jieguo[0]);
1228                     } else {
1229                         chuansong(jieguo[0]);
1230                         chuansong(jieguo[1]);
1231                     }
1232                     string[] jieguo2 = new PZB().shezhi(this.txtPZDYA.Text.Trim(), gy, pzbs);
1233                     pzb = jieguo2[2];
1234                     if (pzbs >= Convert.ToDouble(this.txtPZDYA.Text.Trim())) {
1235                         chuansong(jieguo2[1]);
1236                         Thread.Sleep(2000);
1237                         chuansong(jieguo2[0]);
1238                     } else {
1239                         chuansong(jieguo2[0]);
1240                         chuansong(jieguo2[1]);
1241                     }
1242                     pzas = Convert.ToDouble(this.txtPZDYA.Text.Trim());
1243                     string str = "FD020900010001010000";
1244                     chuansong(str);
1245                     pzbs = Convert.ToDouble(this.txtPZDYA.Text.Trim());
1246                     string str2 = "FD020900010002010000";
1247                     chuansong(str2);
1248                 } else {
1249                     count--;
1250                     guandeng(pbxPZDYAG);
1251                     this.button4.Text = "加电";
1252                     string str = "FD020900020101010000";
1253                     chuansong(str);
1254                     string str2 = "FD020928020102010000";
1255                     chuansong(str2);
1256                     txtPZDYAS.Text = "";
1257                     txtPZDLA.Text = "";
1258                     txtPZDYBS.Text = "";
1259                     txtPZDLB.Text = "";
1260                 }
1261             }
1262             ltr[0].Resume();
1263         }
1264         //电流图
1265         public void shuaxin(double shuju, ZedGraphControl zedGraphControl1, PointPairList list, LineItem myCurve) {
1266             int lenth = 1;
1267             try {
1268                 zedGraphControl1.GraphPane.XAxis.Type = ZedGraph.AxisType.DateAsOrdinal;
1269             } catch {
1270             }
1271             for (int i = 0 ; i < lenth ; i++) {
1272                 double x = (double)new XDate(DateTime.Now.AddSeconds(-(100 - i)));
1273                 list.Add(x, shuju);
1274                 if (lenth > 20) {
1275                     list.RemoveAt(0);
1276                 }
1277             }
1278             DateTime dt = DateTime.Now;
1279             myCurve = zedGraphControl1.GraphPane.AddCurve("", list, Color.DarkGreen, SymbolType.None);
1280             zedGraphControl1.AxisChange();
1281             zedGraphControl1.Refresh();
1282             lenth++;
1283         }
1284         //引出极开关
1285         private void button2_Click(object sender, EventArgs e) {
1286             ltr[0].Suspend();
1287             if (tanchukuang(this.txtYCJDY, 0, 6000)) {
1288                 if (this.button2.Text == "加电") {
1289                     count++;
1290 
1291                     this.button2.Text = "断电";
1292                     string[] jieguo = new YCJ().shezhi(this.txtYCJDY.Text.Trim(), gy);
1293                     chuansong(jieguo[0]);
1294                     chuansong(jieguo[1]);
1295                     string str = "FD010210010401010000";
1296                     chuansong(str);
1297                     t.Stop();
1298                     this.button2.Enabled = true;
1299                 } else {
1300                     count--;
1301                     guandeng(pbxYCJDYG);
1302                     this.button2.Text = "加电";
1303                     string str = "FD010210020401020000";
1304                     chuansong(str);
1305                     txtYCJDYS.Text = "";
1306                     txtYCJDL.Text = "";
1307                 }
1308             }
1309             ltr[0].Resume();
1310         }
1311         //聚焦A开关
1312         private void button36_Click(object sender, EventArgs e) {
1313             ltr[0].Suspend();
1314             if (tanchukuang(this.txtJJDYA, 0, 15000)) {
1315                 if (this.button36.Text == "加电") {
1316                     count++;
1317                     this.button36.Text = "断电";
1318                     string[] jieguo = new JJA().shezhi(this.txtJJDYA.Text.Trim(), gy, jjas);
1319                     jja = jieguo[2];
1320                     if (jjas >= Convert.ToDouble(this.txtJJDYA.Text.Trim())) {
1321                         chuansong(jieguo[1]);
1322                         Thread.Sleep(2000);
1323                         chuansong(jieguo[0]);
1324                     } else {
1325                         chuansong(jieguo[0]);
1326 
1327                         chuansong(jieguo[1]);
1328                     }
1329                     jjas = Convert.ToDouble(this.txtJJDYA.Text.Trim());
1330                     string str = "FD010318010101010000";
1331                     chuansong(str);
1332                 } else {
1333                     count--;
1334                     guandeng(pbxJJDYAG);
1335                     this.button36.Text = "加电";
1336                     string str = "FD010318020101010000";
1337                     chuansong(str);
1338                     txtJJDYAS.Text = "";
1339                     txtJJDLA.Text = "";
1340                 }
1341             }
1342             ltr[0].Resume();
1343         }
1344         //聚集B开关
1345         private void button41_Click(object sender, EventArgs e) {
1346             ltr[0].Suspend();
1347             if (tanchukuang(this.txtJJDYB, 0, 15000)) {
1348                 if (this.button41.Text == "加电") {
1349                     count++;
1350                     this.button41.Text = "断电";
1351                     string[] jieguo = JJB.shezhi(this.txtJJDYB.Text.Trim(), gy, jjbs);
1352                     jjb = jieguo[2];
1353                     if (jjbs >= Convert.ToDouble(this.txtJJDYB.Text.Trim())) {
1354                         chuansong(jieguo[1]);
1355                         Thread.Sleep(2000);
1356                         chuansong(jieguo[0]);
1357                     } else {
1358                         chuansong(jieguo[0]);
1359                         chuansong(jieguo[1]);
1360                     }
1361                     jjbs = Convert.ToDouble(this.txtJJDYB.Text.Trim());
1362                     string str = "FD010328010101010000";
1363                     chuansong(str);
1364 
1365                 } else {
1366                     count--;
1367                     guandeng(pbxJJDYBG);
1368                     this.button41.Text = "加电";
1369                     string str = "FD010328020101010000";
1370                     chuansong(str);
1371                     txtJJDYBS.Text = "";
1372                     txtJJDLB.Text = "";
1373                 }
1374             }
1375             ltr[0].Resume();
1376         }
1377         //预聚集A开关
1378         private void button5_Click(object sender, EventArgs e) {
1379             ltr[0].Suspend();
1380             if (tanchukuang(this.txtYJJDYA, 0, 25000)) {
1381                 if (this.button5.Text == "加电") {
1382                     count++;
1383                     this.button5.Text = "断电";
1384                     string[] jieguo = new YJJA().shezhi(this.txtYJJDYA.Text.Trim(), gy, yjjas);
1385                     yjja = jieguo[2];
1386                     if (yjjas >= Convert.ToDouble(this.txtYJJDYA.Text.Trim())) {
1387                         chuansong(jieguo[1]);
1388                         Thread.Sleep(2000);
1389                         chuansong(jieguo[0]);
1390                     } else {
1391                         chuansong(jieguo[0]);
1392                         chuansong(jieguo[1]);
1393                     }
1394                     yjjas = Convert.ToDouble(this.txtYJJDYA.Text.Trim());
1395                     string str = "FD010418010101010000";
1396                     chuansong(str);
1397                 } else {
1398                     count--;
1399                     guandeng(pbxYJJDYAG);
1400                     this.button5.Text = "加电";
1401                     string str = "FD010418020101010000";
1402                     chuansong(str);
1403                     txtYJJDYAS.Text = "";
1404                     txtYJJDLA.Text = "";
1405                 }
1406             }
1407             ltr[0].Resume();
1408         }
1409         //预聚集B开关
1410         private void button23_Click(object sender, EventArgs e) {
1411             ltr[0].Suspend();
1412             if (tanchukuang(this.txtYJJDYB, 0, 25000)) {
1413                 if (this.button23.Text == "加电") {
1414                     count++;
1415                     this.button23.Text = "断电";
1416                     string[] jieguo = new YJJB().shezhi(this.txtYJJDYB.Text.Trim(), gy, yjjbs);
1417                     yjjb = jieguo[2];
1418                     if (yjjbs >= Convert.ToDouble(this.txtYJJDYB.Text.Trim())) {
1419                         chuansong(jieguo[1]);
1420                         Thread.Sleep(2000);
1421                         chuansong(jieguo[0]);
1422                     } else {
1423 
1424                         chuansong(jieguo[0]);
1425                         chuansong(jieguo[1]);
1426 
1427                     }
1428                     yjjbs = Convert.ToDouble(this.txtYJJDYB.Text.Trim());
1429                     string str = "FD010428010101010000";
1430                     chuansong(str);
1431                 } else {
1432                     count--;
1433                     guandeng(pbxYJJDYBG);
1434                     this.button23.Text = "加电";
1435                     string str = "FD010428020101010000";
1436                     chuansong(str);
1437                     txtYJJDYBS.Text = "";
1438                     txtYJJDLB.Text = "";
1439                 }
1440             }
1441             ltr[0].Resume();
1442         }
1443         //预聚集C开关
1444         private void button29_Click(object sender, EventArgs e) {
1445             ltr[0].Suspend();
1446             if (tanchukuang(this.txtYJJDYC, 0, 25000)) {
1447                 if (this.button29.Text == "加电") {
1448                     count++;
1449                     this.button29.Text = "断电";
1450                     string[] jieguo = new YJJC().shezhi(this.txtYJJDYC.Text.Trim(), gy, yjjcs);
1451                     yjc = jieguo[2];
1452                     if (yjjcs >= Convert.ToDouble(this.txtYJJDYC.Text.Trim())) {
1453                         chuansong(jieguo[1]);
1454                         Thread.Sleep(2000);
1455                         chuansong(jieguo[0]);
1456                     } else {
1457                         chuansong(jieguo[0]);
1458                         chuansong(jieguo[1]);
1459                     }
1460                     yjjcs = Convert.ToDouble(this.txtYJJDYC.Text.Trim());
1461                     string str = "FD010438010101010000";
1462                     chuansong(str);
1463                 } else {
1464                     count--;
1465                     guandeng(pbxYJJDYCG);
1466                     this.button29.Text = "加电";
1467                     string str = "FD010438020101010000";
1468                     chuansong(str);
1469                     txtYJJDYCS.Text = "";
1470                     txtYJJDLC.Text = "";
1471                 }
1472             }
1473             ltr[0].Resume();
1474         }
1475         //主高压
1476         private void button22_Click(object sender, EventArgs e) {
1477             ltr[0].Suspend();
1478             if (tanchukuang(this.txtZGYDY, 9000, 168000)) {
1479                 double newzgy = Convert.ToDouble(this.txtZGYDY.Text.Trim());
1480                 string[] jieguo = ZGY.SheZhi(this.txtZGYDY.Text.Trim(), gy, zgys);
1481                 if (zgys >= Convert.ToDouble(this.txtZGYDY.Text.Trim())) {
1482                     chuansong(jieguo[1]);
1483                     Thread.Sleep(5000);
1484                     chuansong(jieguo[0]);
1485                 } else {
1486                     int counts = 30;
1487                     chuansong(jieguo[0]);
1488                     double d = Convert.ToDouble(this.txtZGYDY.Text.Trim()) - zgys;
1489                     //判断之前设置和现在设置的电压差距·根据差距设置循环加电次数
1490                     if (d >= 140000) {
1491 
1492                         counts = 75;
1493                     } else if (d >= 100000) {
1494                         counts = 55;
1495                     } else if (d >= 600000) {
1496                         counts = 50;
1497                     } else if (d >= 300000) {
1498                         counts = 35;
1499                     } else {
1500                         counts = 20;
1501                     }
1502                     if (jieguo[3] != "") {
1503                         chuansong(jieguo[3]);
1504                         if (jieguo[2] == "11") {
1505                             string str = "FD020B1000010101" + BLL.ZhuanHuan.ShiLiu(4.9 * 16383 / 5);
1506                             chuansong(str);
1507                         }
1508                         double dizeng = Math.Round((4.9 - Convert.ToDouble(jieguo[4])) / counts, 4);
1509                         double dq = 4.9;
1510                         for (int i = 0 ; i < counts ; i++) {
1511                             if (jieguo[2] == "18") {
1512                                 dq -= dizeng;
1513                                 string strs = "FD020B1800010101" + BLL.ZhuanHuan.ShiLiu(dq * 16383 / 5);
1514                                 chuansong(strs);
1515                             } else if (jieguo[2] == "10") {
1516                                 dq -= dizeng;
1517                                 string strs = "FD020B1000010101" + BLL.ZhuanHuan.ShiLiu(dq * 16383 / 5);
1518                                 chuansong(strs);
1519                             } else if (jieguo[2] == "11") {
1520                                 dq -= dizeng;
1521                                 string strs = "FD020B1100010101" + BLL.ZhuanHuan.ShiLiu(dq * 16383 / 5);
1522                                 chuansong(strs);
1523                             }
1524                         }
1525                     } else {
1526                         double tizeng = (Convert.ToDouble(this.txtZGYDY.Text.Trim()) - zgys) / counts;
1527                         double dq = zgys;
1528                         for (int i = 0 ; i < counts ; i++) {
1529                             if (jieguo[2] == "18") {
1530                                 dq += tizeng;
1531                                 string strs = "FD020B1800010101" + BLL.ZhuGaoYa.GYXZA(dq);
1532                                 chuansong(strs);
1533                             } else if (jieguo[2] == "10") {
1534                                 dq += tizeng;
1535                                 string strs = "FD020B1000010101" + BLL.ZhuGaoYa.GYXZB(dq);
1536                                 chuansong(strs);
1537                             } else if (jieguo[2] == "11") {
1538                                 dq += tizeng;
1539                                 string strs = "FD020B1100010101" + BLL.ZhuGaoYa.GYXZC(dq);
1540                                 chuansong(strs);
1541                             }
1542                         }
1543                     }
1544 
1545                 }
1546                 zgy = jieguo[2];
1547                 zgys = Convert.ToDouble(this.txtZGYDY.Text.Trim());
1548 
1549             }
1550             ltr[0].Resume();
1551         }
1552         //引出极
1553         private void button13_Click(object sender, EventArgs e) {
1554             ltr[0].Suspend();
1555             if (tanchukuang(this.txtYCJDY, 0, 6000)) {
1556                 string[] jieguo = new YCJ().shezhi(this.txtYCJDY.Text.Trim(), gy.Trim());
1557                 chuansong(jieguo[0]);
1558                 chuansong(jieguo[1]);
1559             }
1560             ltr[0].Resume();
1561         }
1562         //聚焦A
1563         private void button14_Click(object sender, EventArgs e) {
1564             ltr[0].Suspend();
1565             if (tanchukuang(this.txtJJDYA, 0, 15000)) {
1566                 string[] jieguo = new JJA().shezhi(this.txtJJDYA.Text.Trim(), gy, jjas);
1567                 if (jjas >= Convert.ToDouble(this.txtJJDYA.Text.Trim())) {
1568                     chuansong(jieguo[1]);
1569                     Thread.Sleep(2000);
1570                     chuansong(jieguo[0]);
1571                 } else {
1572                     chuansong(jieguo[0]);
1573                     if (jieguo[3] != "") {
1574                         chuansong(jieguo[3]);
1575                     }
1576                     chuansong(jieguo[1]);
1577                 }
1578                 jjas = Convert.ToDouble(this.txtJJDYA.Text.Trim());
1579             }
1580             ltr[0].Resume();
1581         }
1582         //聚集B
1583         private void button38_Click(object sender, EventArgs e) {
1584             ltr[0].Suspend();
1585             if (tanchukuang(this.txtJJDYB, 0, 15000)) {
1586                 string[] jieguo = JJB.shezhi(this.txtJJDYB.Text.Trim(), gy, jjbs);
1587                 if (jjbs >= Convert.ToDouble(this.txtJJDYB.Text.Trim())) {
1588                     chuansong(jieguo[1]);
1589                     Thread.Sleep(2000);
1590                     chuansong(jieguo[0]);
1591                 } else {
1592                     chuansong(jieguo[0]);
1593                     if (jieguo[3] != "") {
1594                         chuansong(jieguo[3]);
1595                     }
1596                     chuansong(jieguo[1]);
1597                 }
1598                 jjbs = Convert.ToDouble(this.txtJJDYB.Text.Trim());
1599             }
1600             ltr[0].Resume();
1601         }
1602         //预聚集A
1603         private void button16_Click(object sender, EventArgs e) {
1604             ltr[0].Suspend();
1605             if (tanchukuang(this.txtYJJDYA, 0, 25000)) {
1606                 string[] jieguo = new YJJA().shezhi(this.txtYJJDYA.Text.Trim(), gy, yjjas);
1607 
1608                 if (yjjas >= Convert.ToDouble(this.txtYJJDYA.Text.Trim())) {
1609                     chuansong(jieguo[1]);
1610                     Thread.Sleep(2000);
1611                     chuansong(jieguo[0]);
1612                 } else {
1613                     chuansong(jieguo[0]);
1614                     if (jieguo[3] != "") {
1615                         chuansong(jieguo[3]);
1616                     }
1617                     chuansong(jieguo[1]);
1618                 }
1619                 yjjas = Convert.ToDouble(this.txtYJJDYA.Text.Trim());
1620             }
1621             ltr[0].Resume();
1622         }
1623         //预聚集B
1624         private void button24_Click(object sender, EventArgs e) {
1625             ltr[0].Suspend();
1626             if (tanchukuang(this.txtYJJDYB, 0, 25000)) {
1627                 string[] jieguo = new YJJB().shezhi(this.txtYJJDYB.Text.Trim(), gy, yjjbs);
1628                 if (yjjbs >= Convert.ToDouble(this.txtYJJDYB.Text.Trim())) {
1629                     chuansong(jieguo[1]);
1630                     Thread.Sleep(2000);
1631                     chuansong(jieguo[0]);
1632                 } else {
1633                     chuansong(jieguo[0]);
1634                     if (jieguo[3] != "") {
1635                         chuansong(jieguo[3]);
1636                     }
1637                     chuansong(jieguo[1]);
1638                 }
1639                 yjjbs = Convert.ToDouble(this.txtYJJDYB.Text.Trim());
1640             }
1641             ltr[0].Resume();
1642         }
1643         //预聚集C
1644         private void button30_Click(object sender, EventArgs e) {
1645             ltr[0].Suspend();
1646             if (tanchukuang(this.txtYJJDYC, 0, 25000)) {
1647                 string[] jieguo = new YJJC().shezhi(this.txtYJJDYC.Text.Trim(), gy, yjjcs);
1648                 if (yjjcs >= Convert.ToDouble(this.txtYJJDYC.Text.Trim())) {
1649                     chuansong(jieguo[1]);
1650                     Thread.Sleep(2000);
1651                     chuansong(jieguo[0]);
1652                 } else {
1653                     chuansong(jieguo[0]);
1654                     if (jieguo[3] != "") {
1655                         chuansong(jieguo[3]);
1656                     }
1657                     chuansong(jieguo[1]);
1658                 }
1659                 yjjcs = Convert.ToDouble(this.txtYJJDYC.Text.Trim());
1660             }
1661             ltr[0].Resume();
1662         }
1663         //偏转A
1664         private void button3_Click(object sender, EventArgs e) {
1665             ltr[0].Suspend();
1666             if (tanchukuang(this.txtPZDYA, 0, 9000)) {
1667                 string[] jieguo = new PZA().shezhi(this.txtPZDYA.Text.Trim(), gy, pzas);
1668                 if (pzas >= Convert.ToDouble(this.txtPZDYA.Text.Trim())) {
1669                     chuansong(jieguo[1]);
1670                     Thread.Sleep(2000);
1671                     chuansong(jieguo[0]);
1672                 } else {
1673                     chuansong(jieguo[0]);
1674                     if (jieguo[3] != "") {
1675                         chuansong(jieguo[3]);
1676                     }
1677                     chuansong(jieguo[1]);
1678                 }
1679                 pzas = Convert.ToDouble(this.txtPZDYA.Text.Trim());
1680                 string[] jieguo2 = new PZB().shezhi(this.txtPZDYA.Text.Trim(), gy, pzbs);
1681                 if (pzbs >= Convert.ToDouble(this.txtPZDYA.Text.Trim())) {
1682                     chuansong(jieguo2[1]);
1683                     Thread.Sleep(2000);
1684                     chuansong(jieguo2[0]);
1685                 } else {
1686                     chuansong(jieguo2[0]);
1687                     if (jieguo2[3] != "") {
1688                         chuansong(jieguo2[3]);
1689                     }
1690                     chuansong(jieguo2[1]);
1691                 }
1692                 pzbs = Convert.ToDouble(this.txtPZDYA.Text.Trim());
1693             }
1694             ltr[0].Resume();
1695         }
1696         //关闭状态图片
1697         public void guandeng(PictureBox pb) {
1698             if (pb.Name == "qb") {
1699                 this.pbxZGYDLG.Image = Image.FromFile(whitePath);
1700                 this.pbxYCJDYG.Image = Image.FromFile(whitePath);
1701                 this.pbxJJDYAG.Image = Image.FromFile(whitePath);
1702                 this.pbxJJDYBG.Image = Image.FromFile(whitePath);
1703                 this.pbxYJJDYAG.Image = Image.FromFile(whitePath);
1704                 this.pbxYJJDYBG.Image = Image.FromFile(whitePath);
1705                 this.pbxYJJDYCG.Image = Image.FromFile(whitePath);
1706                 this.pbxPZDYAG.Image = Image.FromFile(whitePath);
1707                 this.pbxPZDYBG.Image = Image.FromFile(whitePath);
1708             } else {
1709                 pb.Image = Image.FromFile(whitePath);
1710             }
1711         }
1712         //切换模式
1713         private void RFD_Form_Deactivate(object sender, EventArgs e) {
1714             Closes();
1715             ltr[0].Abort();
1716             ltr.RemoveAt(0);
1717         }
1718         //模式加载
1719         private void RFD_Form_Activated(object sender, EventArgs e) {
1720             Control.CheckForIllegalCrossThreadCalls = false;
1721             this.cboCom.SelectedIndex = 0;
1722             this.cboMCA.SelectedIndex = 0;
1723             fc.Hide();
1724             count = 0;
1725             jjas = 0;
1726             jjbs = 0;
1727             yjjas = 0;
1728             yjjbs = 0;
1729             yjjcs = 0;
1730             rss = 0;
1731             zgys = 10000;
1732             pzas = 0;
1733             pzbs = 0;
1734             Thread td = new Thread(new ThreadStart(NewXianCheng));
1735             ltr.Add(td);
1736             td.Start();
1737             if (!sp.IsOpen) {
1738                 for (int i = 0 ; i < this.cboCom.Items.Count ; i++) {
1739                     try {
1740                         sp.PortName = cboCom.Items[i].ToString();
1741                         sp.BaudRate = 9600;
1742                         sp.Parity = Parity.None;
1743                         sp.DataBits = 8;
1744                         sp.StopBits = StopBits.One;
1745                         sp.Open();
1746                         this.btnCom.Text = "关闭";
1747                         this.pictureBox1.Image = Image.FromFile(greenPath);
1748                         continue;
1749                     } catch {
1750 
1751                     }
1752                 }
1753             }
1754         }
1755         //串口设置
1756         private void btnCom_Click(object sender, EventArgs e) {
1757             if (sp.IsOpen == false) {
1758                 if (cboCom.Text != "") {
1759                     try {
1760                         sp.PortName = cboCom.SelectedItem.ToString();
1761                         sp.BaudRate = 9600;
1762                         sp.Parity = Parity.None;
1763                         sp.DataBits = 8;
1764                         sp.StopBits = StopBits.One;
1765                         sp.Open();
1766                         this.btnCom.Text = "关闭";
1767                         this.pictureBox1.Image = Image.FromFile(greenPath);
1768 
1769                     } catch {
1770 
1771                         MessageBox.Show(cboCom.SelectedItem.ToString() + "不存在");
1772                     }
1773 
1774                 }
1775             } else {
1776                 if (MessageBox.Show("是否关闭端口?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Asterisk) == DialogResult.Yes) {
1777 
1778                     fc.Show();
1779                     Thread t = new Thread(new ThreadStart(Closes));
1780                     t.Start();
1781                 }
1782 
1783             }
1784         }
1785         //刷新显示
1786         private void button15_Click(object sender, EventArgs e) {
1787             if (ltr[0].IsAlive) {
1788                 try {
1789                     ltr[0].Abort();
1790                     ltr.RemoveAt(0);
1791                     Thread td = new Thread(new ThreadStart(NewXianCheng));
1792                     ltr.Add(td);
1793                     td.Start();
1794                 } catch {
1795 
1796 
1797                 }
1798             } else {
1799                 ltr.RemoveAt(0);
1800                 Thread td = new Thread(new ThreadStart(NewXianCheng));
1801                 ltr.Add(td);
1802                 td.Start();
1803             }
1804         }
1805         //关闭窗口
1806         private void RFD_Form_FormClosing(object sender, FormClosingEventArgs e) {
1807             if (ltr[0].IsAlive) {
1808                 ltr[0].Abort();
1809             }
1810         }
1811         //抑制极开关
1812         private void button1_Click(object sender, EventArgs e) {
1813             ltr[0].Suspend();
1814             if (tanchukuang(this.txtYZJDY, -1500, 1500)) {
1815                 if (this.button1.Text == "加电") {
1816                     count++;
1817                     double dy = Convert.ToDouble(this.txtYZJDY.Text);
1818                     if (dy >= 0) {
1819                         ZF = true;
1820                         string[] jieguo = YZJ.shezhi(this.txtYZJDY.Text.Trim(), "正");
1821                         chuansong(jieguo[0]);
1822                         string strs = "FD010110030001000000";
1823                         chuansong(strs);
1824                         string[] fu = YZJ.shezhi("0", "负");
1825                         chuansong(fu[0]);
1826                         string str3 = "FD010110020402010000";
1827                         chuansong(str3);
1828                         string str = "FD010110010001010000";
1829                         chuansong(str);
1830 
1831 
1832                     } else {
1833                         ZF = false;
1834                         string[] jieguo = YZJ.shezhi(this.txtYZJDY.Text.Trim(), "负");
1835                         chuansong(jieguo[0]);
1836                         string strs = "FD010110030002000000";
1837                         chuansong(strs);
1838                         string[] zheng = YZJ.shezhi("0", "正");
1839                         chuansong(zheng[0]);
1840                         string str3 = "FD010110020401010000";
1841                         chuansong(str3);
1842                         string str2 = "FD010110010002010000";
1843                         chuansong(str2);
1844 
1845                     }
1846 
1847                     this.button1.Text = "断电";
1848                 } else {
1849                     count--;
1850                     this.button1.Text = "加电";
1851                     string str = "";
1852                     if (ZF) {
1853                         str = "FD010110020401010000";
1854                         chuansong(str);
1855                     } else {
1856                         str = "FD010110020402010000";
1857                         chuansong(str);
1858                     }
1859                     guandeng(pbxYZJDYG);
1860                     txtYZJDYS.Text = "";
1861                     txtYZJDL.Text = "";
1862                 }
1863             }
1864             ltr[0].Resume();
1865         }
1866         //抑制极
1867         private void button12_Click(object sender, EventArgs e) {
1868             if (tanchukuang(this.txtYZJDY, -1500, 1500)) {
1869                 ltr[0].Suspend();
1870                 double dy = Convert.ToDouble(this.txtYZJDY.Text);
1871                 if (dy >= 0) {
1872                     ZF = true;
1873                     string[] jieguo = YZJ.shezhi(this.txtYZJDY.Text.Trim(), "正");
1874                     chuansong(jieguo[0]);
1875                     string strs = "FD010110030001000000";
1876                     chuansong(strs);
1877                     string[] fu = YZJ.shezhi("0", "负");
1878                     chuansong(fu[0]);
1879                     string str3 = "FD010110020402010000";
1880                     chuansong(str3);
1881                     string str = "FD010110010001010000";
1882                     chuansong(str);
1883 
1884 
1885                 } else {
1886                     ZF = false;
1887                     string[] jieguo = YZJ.shezhi(this.txtYZJDY.Text.Trim(), "负");
1888                     chuansong(jieguo[0]);
1889                     string strs = "FD010110030002000000";
1890                     chuansong(strs);
1891                     string[] zheng = YZJ.shezhi("0", "正");
1892                     chuansong(zheng[0]);
1893                     string str3 = "FD010110020401010000";
1894                     chuansong(str3);
1895                     string str2 = "FD010110010002010000";
1896                     chuansong(str2);
1897 
1898                 }
1899 
1900                 ltr[0].Resume();
1901             }
1902         }
1903         //脉冲开关A
1904         private void button8_Click(object sender, EventArgs e) {
1905             ltr[0].Suspend();
1906             if (tanchukuang(this.txtMCSCDY, 0, 6000)) {
1907                 if (this.button8.Text == "加电") {
1908                     count++;
1909                     string jieguo2 = new MCSZ().shezhi("20/100");
1910                     chuansong(jieguo2);
1911                     this.button8.Text = "断电";
1912                     string[] jieguo = new MC().shezhi(this.txtMCSCDY.Text.Trim(), gy);
1913                     chuansong(jieguo[0]);
1914                     double z = Convert.ToDouble(this.txtMCSCDY.Text.Trim());
1915                     double j = z / 20;
1916                     double s = j;
1917                     for (int i = 0 ; i < 20 ; i++) {
1918                         string[] jieguo3 = new MC().shezhi(j.ToString(), gy);
1919                         chuansong(jieguo3[1]);
1920                         j = j + s;
1921                         if (i == 0) {
1922                             string str = "FD010510010101010000";
1923                             chuansong(str);
1924                         }
1925                     }
1926 
1927 
1928                     chuansong(jieguo[1]);
1929 
1930                 } else {
1931                     count--;
1932                     guandeng(pbxMCSCDYG);
1933                     this.button8.Text = "加电";
1934                     string str = "FD010510020101010000";
1935                     chuansong(str);
1936                     txtMCSCDYS.Text = "";
1937                     txtMCSCDL.Text = "";
1938                 }
1939             }
1940             ltr[0].Resume();
1941         }
1942         //脉冲A设置
1943         private void button17_Click(object sender, EventArgs e) {
1944             ltr[0].Suspend();
1945             string[] jieguo = new MC().shezhi(this.txtMCSCDY.Text.Trim(), gy);
1946             chuansong(jieguo[0]);
1947             string[] jieguo3 = new MC().shezhi("300", gy);
1948             chuansong(jieguo3[1]);
1949             Thread.Sleep(2000);
1950             if (this.cboMCA.Text != "") {
1951                 string jieguo2 = new MCSZ().shezhi(this.cboMCA.SelectedItem.ToString());
1952                 chuansong(jieguo2);
1953             }
1954             double z = Convert.ToDouble(this.txtMCSCDY.Text.Trim());
1955             double j = z / 50;
1956             double s = j;
1957             for (int i = 0 ; i < 50 ; i++) {
1958                 string[] jieguo2 = new MC().shezhi(j.ToString(), gy);
1959                 chuansong(jieguo2[1]);
1960                 j = j + s;
1961             }
1962 
1963             ltr[0].Resume();
1964 
1965         }
1966         //热丝开关
1967         private void button10_Click(object sender, EventArgs e) {
1968             ltr[0].Suspend();
1969             if (tanchukuang(this.txtRSDY, 0, 15)) {
1970                 if (this.button10.Text == "加电") {
1971                     count++;
1972 
1973                     this.button10.Text = "断电";
1974                     string[] jieguo = new RS().shezhi(this.txtRSDY.Text.Trim(), gy);
1975                     if (rss >= Convert.ToDouble(this.txtRSDY.Text.Trim())) {
1976                         chuansong(jieguo[1]);
1977                         chuansong(jieguo[0]);
1978                     } else {
1979                         chuansong(jieguo[0]);
1980                         chuansong(jieguo[1]);
1981                     }
1982                     rss = Convert.ToDouble(this.txtRSDY.Text.Trim());
1983                     string str = "FD010810010101010000";
1984                     chuansong(str);
1985                 } else {
1986                     count--;
1987                     guandeng(pbxRSDYG);
1988                     this.button10.Text = "加电";
1989                     string str = "FD010810020101020000";
1990                     chuansong(str);
1991                     txtRSDYS.Text = "";
1992                     txtRSDL.Text = "";
1993                 }
1994             }
1995             ltr[0].Resume();
1996         }
1997 
1998         void t_Tick(object sender, EventArgs e) {
1999             if (button2.Text == "加电") {
2000                 button2_Click(sender, e);
2001             }
2002             button2.Enabled = false;
2003         }
2004         //60v整流开关
2005         private void button9_Click(object sender, EventArgs e) {
2006             ltr[0].Suspend();
2007             if (this.button9.Text == "加电") {
2008                 string str1 = "FD010510020101010000";
2009                 chuansong(str1);
2010                 count++;
2011                 this.button9.Text = "断电";
2012                 string str = "FD020600010101000000";
2013                 chuansong(str);
2014 
2015 
2016             } else {
2017                 count--;
2018                 guandeng(pbxZLDYG);
2019                 this.button9.Text = "加电";
2020                 string str = "FD020600020101000000";
2021                 chuansong(str);
2022                 txtZLDYS.Text = "";
2023                 txtZLDL.Text = "";
2024             }
2025             ltr[0].Resume();
2026         }
2027         //热丝
2028         private void button21_Click(object sender, EventArgs e) {
2029             ltr[0].Suspend();
2030             if (tanchukuang(this.txtRSDY, 0, 15)) {
2031                 string[] jieguo = new RS().shezhi(this.txtRSDY.Text.Trim(), gy);
2032                 if (rss >= Convert.ToDouble(this.txtRSDY.Text.Trim())) {
2033                     chuansong(jieguo[1]);
2034                     chuansong(jieguo[0]);
2035                 } else {
2036                     chuansong(jieguo[0]);
2037                     chuansong(jieguo[1]);
2038                 }
2039                 rss = Convert.ToDouble(this.txtRSDY.Text.Trim());
2040             }
2041             ltr[0].Resume();
2042         }
2043         //脉冲A
2044         private void button20_Click(object sender, EventArgs e) {
2045             if (tanchukuang(this.txtMCSCDY, 0, 6000)) {
2046                 string[] jieguo = new MC().shezhi(this.txtMCSCDY.Text.Trim(), gy);
2047                 chuansong(jieguo[0]);
2048                 double z = Convert.ToDouble(this.txtMCSCDY.Text.Trim());
2049                 double j = z / 20;
2050                 double s = j;
2051                 for (int i = 0 ; i < 20 ; i++) {
2052                     string[] jieguo2 = new MC().shezhi(j.ToString(), gy);
2053                     chuansong(jieguo2[1]);
2054                     j = j + s;
2055                 }
2056 
2057 
2058                 chuansong(jieguo[1]);
2059             }
2060         }
2061         //自动加断电
2062         private void button6_Click(object sender, EventArgs e) {
2063             if (this.button6.Text == "热发射模式加电") {
2064                 #region 加电
2065                 int[] sx = new int[] { 0, 9, 1, 10, 2, 5, 6, 7, 3, 4, 8, 11 };
2066                 int[] sx2 = new int[] { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 };
2067                 for (int i = 0 ; i < cbos.Count ; i++) {
2068                     if (cbos[i][i].Checked) {
2069                         for (int j = 0 ; j < sx.Count() ; j++) {
2070                             if (sx[j] == i) {
2071                                 sx2[j] = i;
2072                             }
2073                         }
2074 
2075                     }
2076                 }
2077                 for (int i = 0 ; i < sx2.Count() ; i++) {
2078                     switch (sx2[i]) {
2079                         //热丝
2080                         case 10: {
2081                                 if (this.button10.Text == "加电") {
2082 
2083                                     button10_Click(sender, e);
2084                                     button10.Enabled = false;
2085                                     //等待2分钟后加引出极
2086                                     if (cboYCJ.Checked) {
2087 
2088                                         t.Interval = 120000;
2089                                         t.Tick += new EventHandler(t_Tick);
2090                                         t.Start();
2091                                         this.button2.Enabled = false;
2092                                     }
2093 
2094                                 }
2095                                 break;
2096                             }
2097 
2098                         ////引出极
2099                         //case 2:
2100                         //    {
2101                         //        button2_Click(sender, e);
2102                         //        break;
2103                         //    }
2104                         //抑制极
2105                         case 1: {
2106                                 if (this.button1.Text == "加电") {
2107                                     button1_Click(sender, e);
2108                                     button1.Enabled = false;
2109                                 }
2110                                 break;
2111                             }
2112                         //聚集A
2113                         case 3: {
2114                                 if (this.button36.Text == "加电") {
2115                                     button36_Click(sender, e);
2116                                     button36.Enabled = false;
2117                                 }
2118                                 break;
2119                             }
2120                         //聚集B
2121                         case 4: {
2122                                 if (this.button41.Text == "加电") {
2123                                     button41_Click(sender, e);
2124                                     button41.Enabled = false;
2125                                 }
2126                                 break;
2127                             }
2128                         //预聚集A
2129                         case 5: {
2130                                 if (this.button5.Text == "加电") {
2131                                     button5_Click(sender, e);
2132                                     button5.Enabled = false;
2133                                 }
2134                                 break;
2135                             }
2136                         //预聚集B
2137                         case 6: {
2138                                 if (this.button23.Text == "加电") {
2139                                     button23_Click(sender, e);
2140                                     button23.Enabled = false;
2141                                 }
2142                                 break;
2143                             }
2144                         //预聚集C
2145                         case 7: {
2146                                 if (this.button29.Text == "加电") {
2147                                     button29_Click(sender, e);
2148                                     button29.Enabled = false;
2149                                 }
2150                                 break;
2151                             }
2152                         //偏转
2153                         case 11: {
2154                                 if (this.button4.Text == "加电") {
2155                                     button4_Click(sender, e);
2156                                     button4.Enabled = false;
2157                                 }
2158                                 break;
2159                             }
2160                         //脉冲
2161                         case 8: {
2162                                 if (this.button8.Text == "加电") {
2163                                     button8_Click(sender, e);
2164                                     button8.Enabled = false;
2165                                 }
2166                                 break;
2167                             }
2168                         //整流
2169                         case 9: {
2170                                 if (this.button9.Text == "加电") {
2171                                     button9_Click(sender, e);
2172                                     button9.Enabled = false;
2173                                     Thread.Sleep(5000);
2174                                 }
2175                                 break;
2176                             }
2177                         //主高压
2178                         case 0: {
2179                                 if (this.button11.Text == "加电") {
2180                                     button11_Click(sender, e);
2181                                     button11.Enabled = false;
2182                                 }
2183                                 break;
2184                             }
2185                         default:
2186                             break;
2187                     }
2188                 }
2189                 #endregion
2190                 this.button6.Text = "热发射模式断电";
2191                 for (int i = 0 ; i < cbos.Count ; i++) {
2192                     cbos[i][i].Enabled = false;
2193                 }
2194 
2195             } else {
2196                 #region 断电
2197                 int[] sx = new int[] { 10, 2, 1, 3, 4, 5, 6, 7, 11, 8, 9, 0 };
2198                 int[] sx2 = new int[] { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 };
2199                 for (int i = 0 ; i < cbos.Count ; i++) {
2200                     if (cbos[i][i].Checked) {
2201                         for (int j = 0 ; j < sx.Count() ; j++) {
2202                             if (sx[j] == i) {
2203                                 sx2[j] = i;
2204                             }
2205                         }
2206 
2207                     }
2208                 }
2209                 //抑制极调到负的最极大,但不断电
2210                 if (button1.Text == "断电") {
2211                     ZF = false;
2212                     string[] jieguo = YZJ.shezhi("-1000", "负");
2213                     chuansong(jieguo[0]);
2214                     string strs = "FD010110030002000000";
2215                     chuansong(strs);
2216                 }
2217                 for (int i = 0 ; i < sx2.Count() ; i++) {
2218                     switch (sx2[i]) {
2219 
2220                         //热丝
2221                         case 10: {
2222                                 if (button10.Text == "断电") {
2223                                     button10_Click(sender, e);
2224                                     button10.Enabled = true;
2225                                     if (t.Enabled) {
2226                                         t.Stop();
2227                                     }
2228 
2229                                 }
2230                                 break;
2231                             }
2232 
2233                         //引出极
2234                         case 2: {
2235                                 if (button2.Text == "断电") {
2236                                     button2_Click(sender, e);
2237                                 }
2238                                 button2.Enabled = true;
2239                                 break;
2240                             }
2241                         //抑制极
2242                         case 1: {
2243                                 if (button1.Text == "断电") {
2244                                     button1_Click(sender, e);
2245                                     button1.Enabled = true;
2246                                 }
2247                                 break;
2248                             }
2249                         //聚集A
2250                         case 3: {
2251                                 if (button36.Text == "断电") {
2252                                     button36_Click(sender, e);
2253                                     button36.Enabled = true;
2254                                 }
2255                                 break;
2256                             }
2257                         //聚集B
2258                         case 4: {
2259                                 if (button41.Text == "断电") {
2260                                     button41_Click(sender, e);
2261                                     button41.Enabled = true;
2262                                 }
2263                                 break;
2264                             }
2265                         //预聚集A
2266                         case 5: {
2267                                 if (button5.Text == "断电") {
2268                                     button5_Click(sender, e);
2269                                     button5.Enabled = true;
2270                                 }
2271                                 break;
2272                             }
2273                         //预聚集B
2274                         case 6: {
2275                                 if (button23.Text == "断电") {
2276                                     button23_Click(sender, e);
2277                                     button23.Enabled = true;
2278                                 }
2279                                 break;
2280                             }
2281                         //预聚集C
2282                         case 7: {
2283                                 if (button29.Text == "断电") {
2284                                     button29_Click(sender, e);
2285                                     button29.Enabled = true;
2286                                 }
2287                                 break;
2288                             }
2289                         //偏转
2290                         case 11: {
2291                                 if (button4.Text == "断电") {
2292                                     button4_Click(sender, e);
2293                                     button4.Enabled = true;
2294                                 }
2295                                 break;
2296                             }
2297                         //脉冲
2298                         case 8: {
2299                                 if (button8.Text == "断电") {
2300                                     button8_Click(sender, e);
2301                                     button8.Enabled = true;
2302                                 }
2303                                 break;
2304                             }
2305                         //整流
2306                         case 9: {
2307                                 if (button9.Text == "断电") {
2308                                     button9_Click(sender, e);
2309                                     button9.Enabled = true;
2310                                 }
2311                                 break;
2312                             }
2313                         //主高压
2314                         case 0: {
2315                                 if (button11.Text == "断电") {
2316                                     button11_Click(sender, e);
2317                                     button11.Enabled = true;
2318                                 }
2319                                 break;
2320                             }
2321                         default:
2322                             break;
2323                     }
2324                 }
2325                 #endregion
2326                 this.button6.Text = "热发射模式加电";
2327                 for (int i = 0 ; i < cbos.Count ; i++) {
2328                     cbos[i][i].Enabled = true;
2329                 }
2330 
2331             }
2332 
2333         }
2334         //全选/取消
2335         private void checkBox1_CheckedChanged(object sender, EventArgs e) {
2336             if (checkBox1.Checked) {
2337                 for (int i = 0 ; i < cbos.Count ; i++) {
2338                     cbos[i][i].Checked = true;
2339                 }
2340             } else {
2341                 for (int i = 0 ; i < cbos.Count ; i++) {
2342                     cbos[i][i].Checked = false;
2343                 }
2344             }
2345         }
2346     }
2347 }

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Golang语言社区

厚土Go学习笔记 | 13. 用循环和函数 实现Sqrt(x)

利用前面学习的循环和函数,来实现 Sqrt(x)。并且与math.Sqrt(x)的结果做一下比较。 这个很有意思,所以,把中间不断带入的变化值都打印出来。 使用...

3556
来自专栏听雨堂

常用代码

图层 1、加载地图,选择图层    if(!Page.IsPostBack)    {     MapControl1.Map.Clear();     Map...

1899
来自专栏王磊的博客

Net连接mysql的公共Helper类MySqlHelper.cs带MySql.Data.dll下载

MySqlHelper.cs代码如下: using System; using System.Collections.Generic; using System...

5259
来自专栏阿炬.NET

SUI分页组件和avalon搞定ajax无刷新分页

3394
来自专栏跟着阿笨一起玩NET

C#自定义泛型类绑定ComboBox控件

C# WinForm ComboBox 自定义数据项 (ComboBoxItem )

1871
来自专栏c#开发者

让web api 4.5支持Jquery.getJson(url,handle)跨域访问

代码片段,google了半天,找到的都是4.5 rc,或之前版本的代码,发现都不能用,正式版后有些方法做了修改。我重新修改一下分享给大家 public stat...

2745
来自专栏跟着阿笨一起玩NET

在DataGridView控件中加入ComboBox下拉列表框的实现

本文转载:http://www.cnblogs.com/luqingfei/archive/2007/03/28/691372.html

1902
来自专栏Pythonista

Golang之时间、日期类型

5702
来自专栏张善友的专栏

发布一个日期选择控件(ASPNET2.0)

The Coolest DHTML Calendar,这是一个在GPL下发布的JS日历程序,具有极高的可配置性,包括外观样式、显示格式、显示内容等等。默认程序...

2529
来自专栏林德熙的博客

WPF 获得触摸精度和触摸点

使用 Tablet.TabletDevices 可以获得所有的触摸设备,获得触摸点数可以通过下面代码

1301

扫码关注云+社区