前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >STC-单片机控制系统

STC-单片机控制系统

作者头像
用户1112962
发布2018-07-04 13:32:10
3.2K0
发布2018-07-04 13:32:10
举报

电源测量命令

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

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

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

代码语言:javascript
复制
  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 }
代码语言:javascript
复制
  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 }
代码语言:javascript
复制
   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 }
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-03-14 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档