基本信息
源码名称:西门子PLC以太网通讯组件
源码大小:0.16M
文件格式:.rar
开发语言:C#
更新时间:2018-11-13
×
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
源码介绍
public void butLink_Click(System.Object sender, System.EventArgs e)
{
PLC1.ConnTimeout = 10000;
PLC1.RecvTimeout = 10000;
PLC1.SendTimeout = 10000;
PLC1.mima_Id = "注册码";
int re = 0;
re = PLC1.ConnectTo(txtRemoteIP.Text.Trim(), 0, 1);
if (re == 0)
{
EntLink = true;
MessageBox.Show("PLC联接成功!");
}
else
{
EntLink = false;
MessageBox.Show("PLC联接失败: " PLC1.ErrorText(re));
}
}
public void butClose_Click(System.Object sender, System.EventArgs e)
{
int re = 0;
EntLink = false;
re = PLC1.Disconnect();
}
public void butRead_Click(System.Object sender, System.EventArgs e)
{
int re = 0;
if (!EntLink)
{
MessageBox.Show("还未与PLC建立联接!");
return;
}
if (Conversion.Val(txtReadCnt.Text) < 1)
{
MessageBox.Show("CmdRead方法的length参数必须大于0.");
return;
}
string s_data = "";
int readAdd = Convert.ToUInt16(txtReadAdd.Text);
int getlength = Convert.ToUInt16(txtReadCnt.Text);
byte[] dbBuffer = new byte[getlength];
switch (cmbReadMry.Text)
{
case "I":
re = PLC1.EBRead(readAdd, getlength, dbBuffer);
break;
case "Q":
re = PLC1.ABRead(readAdd, getlength, dbBuffer);
break;
case "M":
re = PLC1.MBRead(readAdd, getlength, dbBuffer);
break;
case "V":
re = PLC1.DBRead(1, readAdd, getlength, dbBuffer);
break;
//case "AI":
// re = PLC1.DBRead(1, readAdd, getlength, dbBuffer);
// break;
//case "AQ":
// re = PLC1.DBRead(1, readAdd, getlength, dbBuffer);
// break;
default:
re = PLC1.DBRead(1, readAdd, getlength, dbBuffer);
break;
}
switch (cmbReadType.Text)
{
case "W_INT16":
s_data = S7.GetIntAt(dbBuffer, 0).ToString();
break;
case "W_UINT16":
s_data = S7.GetUIntAt(dbBuffer, 0).ToString();
break;
case "D_DINT32":
s_data = S7.GetDIntAt(dbBuffer, 0).ToString();
break;
case "D_REAL32":
s_data = S7.GetRealAt(dbBuffer, 0).ToString();
break;
//case "AI":
// re = PLC1.DBRead(1, readAdd, getlength, dbBuffer);
// break;
//case "AQ":
// re = PLC1.DBRead(1, readAdd, getlength, dbBuffer);
// break;
default:
re = PLC1.DBRead(1, readAdd, getlength, dbBuffer);
break;
}
txtReRead.Text = s_data.ToString();
}
西门子S7协议通讯,使用与S7-200/300/400/1200等
可同时监控几百台PLC
.C#语言开发,采用NET4.5框架,TCP通讯方式,通信效率高。
public void butLink_Click(System.Object sender, System.EventArgs e)
{
PLC1.ConnTimeout = 10000;
PLC1.RecvTimeout = 10000;
PLC1.SendTimeout = 10000;
PLC1.mima_Id = "注册码";
int re = 0;
re = PLC1.ConnectTo(txtRemoteIP.Text.Trim(), 0, 1);
if (re == 0)
{
EntLink = true;
MessageBox.Show("PLC联接成功!");
}
else
{
EntLink = false;
MessageBox.Show("PLC联接失败: " PLC1.ErrorText(re));
}
}
public void butClose_Click(System.Object sender, System.EventArgs e)
{
int re = 0;
EntLink = false;
re = PLC1.Disconnect();
}
public void butRead_Click(System.Object sender, System.EventArgs e)
{
int re = 0;
if (!EntLink)
{
MessageBox.Show("还未与PLC建立联接!");
return;
}
if (Conversion.Val(txtReadCnt.Text) < 1)
{
MessageBox.Show("CmdRead方法的length参数必须大于0.");
return;
}
string s_data = "";
int readAdd = Convert.ToUInt16(txtReadAdd.Text);
int getlength = Convert.ToUInt16(txtReadCnt.Text);
byte[] dbBuffer = new byte[getlength];
switch (cmbReadMry.Text)
{
case "I":
re = PLC1.EBRead(readAdd, getlength, dbBuffer);
break;
case "Q":
re = PLC1.ABRead(readAdd, getlength, dbBuffer);
break;
case "M":
re = PLC1.MBRead(readAdd, getlength, dbBuffer);
break;
case "V":
re = PLC1.DBRead(1, readAdd, getlength, dbBuffer);
break;
//case "AI":
// re = PLC1.DBRead(1, readAdd, getlength, dbBuffer);
// break;
//case "AQ":
// re = PLC1.DBRead(1, readAdd, getlength, dbBuffer);
// break;
default:
re = PLC1.DBRead(1, readAdd, getlength, dbBuffer);
break;
}
switch (cmbReadType.Text)
{
case "W_INT16":
s_data = S7.GetIntAt(dbBuffer, 0).ToString();
break;
case "W_UINT16":
s_data = S7.GetUIntAt(dbBuffer, 0).ToString();
break;
case "D_DINT32":
s_data = S7.GetDIntAt(dbBuffer, 0).ToString();
break;
case "D_REAL32":
s_data = S7.GetRealAt(dbBuffer, 0).ToString();
break;
//case "AI":
// re = PLC1.DBRead(1, readAdd, getlength, dbBuffer);
// break;
//case "AQ":
// re = PLC1.DBRead(1, readAdd, getlength, dbBuffer);
// break;
default:
re = PLC1.DBRead(1, readAdd, getlength, dbBuffer);
break;
}
txtReRead.Text = s_data.ToString();
}