public enum SoftElemType
{
REGI_Easy_Y = 0x20, //Y元件的定义
REGI_Easy_X = 0x21,//X元件的定义
REGI_Easy_S = 0x22, //S元件的定义
REGI_Easy_M = 0x23, //M元件的定义
REGI_Easy_B = 0x34, //B元件的定义
REGI_Easy_D = 0x28, //D字元件的定义
REGI_Easy_R = 0x36, //R字元件的定义
}
一些方法函数
m点操作
private void cB_MStateR(CheckBox cB, byte[] pBuf, int nAddr)//M点读
{
try
{
if (this.ActiveControl != null)
{
if (this.ActiveControl.Name != cB.Name)
{
if (pBuf[nAddr] == 1) { cB.Checked = true; } else { cB.Checked = false; }
}
}
}
catch
{
txtMsg.AppendText("读取数据失败,失败名:" + cB.Name + ".");
}
}
private void MStateR(Control cB, byte[] pBuf, int nAddr)//m点组读
{
try
{
if (this.ActiveControl != null)
{
if (this.ActiveControl.Name != cB.Name)
{
if (pBuf[nAddr] == 1) { cB.BackColor = Color.Lime; } else { cB.BackColor = Color.White; }
}
}
}
catch
{
txtMsg.AppendText("读取数据失败,失败名:" + cB.Name + ".");
}
}
private void MStateW(Control conBtn, byte[] pBuf)//M点组写入
{
try
{
if (200 < D490 && D490 < 390)
{
if (MessageBox.Show("系统在自动运行状态!!!!确认操作,取消操作", "系统消息", MessageBoxButtons.OKCancel) == DialogResult.OK)
{
}
else
{
return;
}
}
int PLC_M = Convert.ToInt32(conBtn.Name.Replace("M", ""));
H3u_Write_Soft_Elem(SoftElemType.REGI_Easy_M, PLC_M, 1, pBuf, nNetId);
if (pBuf[0] == 1)
{
conBtn.BackColor = Color.Lime;
}
else
{
conBtn.BackColor = Color.White;
}
}
catch
{
txtMsg.AppendText("写入数据失败,失败名:" + conBtn.Name + "。");
}
}
画图操作
List<Point> xy = new List<Point>();
double XMP = 900 / 450;
double YMP = 900 / 450;
double Xmix = 450;
double Ymix = 450;
void pBox_GP(PictureBox pBox, List<Point> xy)
{
try
{
//DrawXY(pBox);
Graphics gra = pBox.CreateGraphics();
int pointsX = 0;//X存储绘制多边形的点集
int pointsY = 0;//Y存储绘制多边形的点集
double X_L = 0;
double Y_L = 0;
double X_max;
double X_mix;
double Y_max;
double Y_mix;
xy.Sort((x, y) => x.X.CompareTo(y.Y));//升序
Xmix = xy[0].X;//X最大数
xy.Reverse();// 反转顺序
double Xmax = xy[0].X;//X最小数
xy.Sort((x, y) => x.X.CompareTo(y.Y));//升序
Ymix = xy[0].Y;//Y最大数
xy.Reverse();// 反转顺