S7NETPLUS与西门子PLC通讯

S7NETPLUS是一款开源的程序库,用于与西门子PLC通讯,这里使用的是西门子S71200。

PLC需要做设置,允许上位机访问

添加一个数据块,取消”优化块的访问”

S7NET下载地址

链接:https://pan.baidu.com/s/1aAVIRIhUtcorQjlz9qWmOA

提取码:4b7d

C#编程,添加S7NET的引用

使用对象浏览器,查看要用到的几个函数

源代码如下

using System;

using System.Windows.Forms;

using S7.Net;

 

namespace WindowsFormsApplication5

{


public
partial
class
Form1 : Form

{


public Form1()

{

InitializeComponent();

}

 


Plc plc = null;

 


private
void Form1_Load(object sender, EventArgs e)

{

 

plc = new
Plc(CpuType.S71200,“192.168.1.12”,0,1);


try

{

plc.Open();

}


catch(Exception ex)

{


MessageBox.Show(错误信息:+ex.Message);

}

}

 


private
void Form1_FormClosed(object sender, FormClosedEventArgs e)

{

plc.Close();

}

 


private
void btnRead_Click(object sender, EventArgs e)

{


Object obj = plc.Read(“DB1.DBW0”);


if(obj==null)

{


MessageBox.Show(数据读取错误!);

}


else

{


MessageBox.Show(Convert.ToInt16(obj).ToString());

}

}

 


private
async
void btnReadAsync_Click(object sender, EventArgs e)

{


Object obj = await plc.ReadAsync( DataType.DataBlock,1,0,VarType.Int,1 );


if (obj == null)

{


MessageBox.Show(数据读取错误!);

}


else

{


MessageBox.Show(obj.ToString());

}

}

 


private
void btnWrite_Click(object sender, EventArgs e)

{

plc.Write(“DB1.DBW0”,Convert.ToInt16(textBox1.Text));

}

}

}

2021年9月23日