需要提前准备的软件和文件:1.Visual Studio 2019(自己到官网上下载安装) 2.S7.net.dll文件(需要的话链接我会放在文末) 3.西门子PLC软件TIA PORTAL V15.0或者V16(需要安装PLCSIM) 4.S7仿真软件:Nettoplcsim-S7o-v-1-2-4-0 这些必要的前提条件均满足了,我们再开始下面的步骤。 一、西门子PLC一侧: 首先,打开TIA博途软件,添加一个CPU:1215C DC/DC/DC,在程序块中添加2个DB块,一个用于接收数据,一个用于发送数据,如下图所示: 在这个2个DB中分别建立几个变量,如下图所示: 在属性中设置CPU的IP地址:192.168.0.1,子网掩码:255.255.255.0,如下图所示: 在“防护与安全”中,设置“允许来自远程对象的PUT/GET通信访问”,这一点非常重要! 二、VS2019一侧: 新建一个基于C#的winform,并添加引用S7.net.dll文件,如下图: 打开工具箱,在form1上添加所需的按钮、标签、定时器timer,以及输入输出用的文本框,如下图所示: 双击form1,进入程序代码编辑界面,首先要添加引用S7.net,如下图所示: 连接PLC的IP地址,这里为:127.0.0.1是因为我是在自己的电脑上通过nettoplcsim仿真的,所以输入的是本机环网的IP地址,后面的0和1,代表机架号和插槽号,如下图所示: “连接PLC”按钮,按下后会触发打开PLC连接的事件,如下图: “断开PLC连接”按钮,按下后会触发关闭PLC连接的事件,如下图: “readDB”按钮,按下后会触发读取PLC的DB数据块的事件,并在textbox文本框中进行显示,如下图: “writeDB”按钮,按下后会触发将textbox文本框中的内容写入PLC的DB数据块的事件,如下图: 定时器timer1的功能和“readDB”按钮的功能类似,可以周期性地触发读取DB内数据的事件,如下图: 在装载form1的时候,要启用timer1,并且设置timer1的周期间隔(此处为1000ms),如下图: 程序启动之后,form1会每隔1000ms触发一次读取DB的事件,可以看到C#读取的数据和S7-1200PLC的DB1中的数据是一致的,说明通信连接正常,且读写是正常的,如下图: 以上,仅为个人实验数据,程序上还有很多不规范的地方,大家感兴趣的话可以自己去尝试一下。。。
|