admin 管理员组文章数量: 888143
2023年12月21日发(作者:uighurs)
C#与S7-1200的数据读写方法
Github上有的源码,大家随便下/killnine/s7netplus
是针对西门子系列PLC的驱动程序, 而且这个驱动只能用于支持Profinet通信的CPU,最常用的还是S7-1200和S7-1500,整个驱动是用C#开发的。
可以通过github进行下载,也可以在微软的Visual Studio中通过NuGet直接下载库文件
/packages/s7netplus
C#编程
这次我通过图形界面的方式进行与PLC的通信,界面的样子是这样的
CPU type可以选择不同类型的CPU。
IP地址是连接PLC的计算机IP,如果是本机运行可以写127.0.0.1。
Rack和Slot针对S7-1200分别是0和1
点击Connect按钮即可实现连接,连接之后,可以通过Read或者Write对指定的数据区进行读取和写入。
代码基本就是下面的样子
using
using
using
using
System;
c;
entModel;
;
using g;
using ;
using ;
using ;
using ;
using ;
namespace WindowsFormsApplication1
{
public partial class FormMain : Form
{ //
private Plc plc = null;
private ErrorCode errorState = r;
public FormMain()
{
InitializeComponent();
}
// 关闭窗口
private void FormMain_FormClosed(object sender, FormClosedEventArgs e)
{
try
{
if (plc != null)
{
();
}
}
catch (Exception ex)
{
(this, e, "Information", , ation);
}
}
// 窗口加载
private void FormMain_Load(object sender, EventArgs e)
{
try
{
urce = es(typeof(CpuType));
edIndex = 3; //for 1200 CPU
}
catch (Exception ex)
{
(this, e, "Information", , ation);
}
}
//Connect按钮按下
private void btnConnect_Click(object sender, EventArgs e)
{
try
{
CpuType cpuType = (CpuType)(typeof(CpuType), ng());
string ipAddress = ;
short rack = ();
short slot = ();
plc = new Plc(cpuType, ipAddress, rack, slot);
errorState = ();
if (errorState != r) throw new Exception(ng());
d = false;
}
catch (Exception ex)
{
(this, e, "Information", , ation);
}
}
//Disconnect按钮按下
private void btnDisconnect_Click(object sender, EventArgs e)
{
try
{
if (plc != null)
{
();
}
d = true;
}
catch (Exception ex)
{
(this, e, "Information", , ation);
}
}
//Read按钮按下
private void btnRead_Click(object sender, EventArgs e)
{
try
{
if (plc != null)
{
string variable = ;
object result = (variable);
= ("{0}", ng());
}
}
catch (Exception ex)
{
(this, e, "Information", , ation);
}
}
//Write按钮按下
private void btnWrite_Click(object sender, EventArgs e)
{
try
{
if (plc != null)
{
string variable = ;
object value = ;
(variable, value);
}
}
catch (Exception ex)
{
(this, e, "Information", , ation);
}
}
}
}
PLC编程
PLC的编程相对很简单,简单到就没有程序,只是建了一个数据块用于测试读取和写入的功能。使用NetToPLCSim建立模拟器月PLC Sim之前的通信,这一步可以参看之前的文章,都是一样的。
这里需要注意数据块属性中需要取消勾选优化的数据块,CPU的保护属性中需要勾选允许访问通过PUT/GET
这两个地方如果没有设置,会出现通讯不上的问题
联机测试
设置好软件参数后,按照下图,选择一个需要进行读取或者写入的数据区,点击读取,写入试试看看吧,祝大家玩的开心!!
版权声明:本文标题:C#与S7-1200的数据读写方法 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/free/1703164018h440547.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论