一、前言
1)通过VS2019添加西门子S7.NET协议、编写程序代码实现VS与PLC间数据简单读取案例:
电脑全仿真实现上位机程序与仿真PLC间的通信,通过NetToPlcSim桥接本机电脑IP地址与PLCSIM仿真的实际PLC的IP地址,再通过<西门子PLC访问DEMO>测试软件实现上位机对PLC本体的数据读写的测试,最后测试第三方软件系统与PLC间通信
(2)优点:①解决了博图自带的S7-PLCSIM仿真仅能与STEP7或者博图内部通讯,不能与其它上位系统通信,②NetToPLCsim可以让客户端程序(SCADA等)通过互联网网络的方式访问PLCSim,可以添加多个站,与多个PLCSim建立连接
(3)备注:本人刚开始学习VS使用 ,其程序借鉴https://www.bilibili.com/video/BV1ME411c7yA
二、配置
(1)新建PLC项目,打开PUT/GET允许外部设备访问、取消DB块的优化访问,仿真项目
(2)检查本机IP地址,如cmd内输入IPCONFIG
(3)使用NetToPlcSim桥接本机IP地址(192.168.0.102)与PLC仿真IP地址(192.168.10.20)并启动运行,备注CPU1200/1500注意插槽号
(4)可使使用西门子PLC访问DEMO测试工具测试通信读写是否正常
(5)使用VS2019编写通信程序
①添加S7.NET通信协议
②引用using S7.Net和using System.Windows.Forms用以通信和显示通信数据
③右击“引用”添加管理NEWGET程序包、搜索S7NETPLUS并选择安装
(6)生成解决方案、启动运行,监视读写数据是否正确
三、VS通信代码实现
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using S7.Net;
using System.Windows.Forms;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
Plc plc = new Plc(CpuType.S71500,"192.168.0.102",0,1);
try
{
plc.Open();
}
catch(Exception)
{
MessageBox.Show("通信连接失败");
}
bool IO1 = (bool)plc.Read("DB20.DBX0.0");
bool IO2 = (bool)plc.Read("DB20.DBX0.1");
Console.WriteLine("DB20.DBX0.0"+IO1);
Console.WriteLine("DB20.DBX0.1" + IO2);
Console.ReadKey();
}
}
}