这里使用s7通信
【1】首先,添加NuGet包,在搜索框搜索S7.netplus,找到并下载


【2】添加using引用

【3】写代码
代码会贴在下面
先稍微讲解一下
首先要创建plc实例:
plc = new Plc(CpuType cpu, string ip, Int16 rack, Int16 slot);
接着尝试连接plc(可以放在一个点击事件里)
try
{
plc.Open();
}
catch (Exception ex)
{
MessageBox.Show("连接失败" + ex);
}
接下来就可以读取数据
plc.ReadBytes(DataType.DataBlock, 2, 0, 4)
这里的2,0,4分别表示从数据块读取数据,从地址0开始读取,读取4个字节的数据数
连接plc后,运行如下

代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
using S7.Net;
namespace PLCdemo
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
Plc plc = null;//初始化
private void btnConnect_Click(object sender, EventArgs e)
{
plc = new Plc(CpuType.S71200, "填pic的IP", 0, 1);
try
{
plc.Open();
}
catch (Exception ex)
{
MessageBox.Show("连接失败" + ex);
}
Thread thread = new Thread(read);
thread.Start();
}
private void read()
{
while (true)
{
byte[] data = plc.ReadBytes(DataType.DataBlock, 2, 0, 4);//从数据块2读取数据,从地址0开始读取,读取4个字节的数据
Invoke(new Action(() =>
{
textBox1.Text = data[0].ToString();
textBox2.Text = data[1].ToString();
textBox3.Text = data[2].ToString();
textBox4.Text = data[3].ToString();
}));
}
}
823

被折叠的 条评论
为什么被折叠?



