首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

通过C#与S7-1200进行数据读

近来一直在学习C#,但是对于输出个HELLO WORLD之类的教程实在提不起什么兴趣,于是上网想找找有没有使用C#做一些和自动化相关的事情,不查不知道,原来C#一直是被用来开发通信协议以及HMI界面的不二利器,于是乎产生了是不是能通过PLC和C#之间建立某种连接来学习C#语法的念头,就这样,产生了这篇文章。

先发个视频,这是我在Youtube上找到的一系列视频中的一个,作者通过S7.net的dll控件实现了与西门子S7系列的PLC通信的功能

密码:1gqq

软件的安装

需要安装的软件包括

TIA Portal V14

S7-PLCSIM V14

Visual Studio 2013 ultimate

NetToPLCsim-S7o-v-1-2-2-0

PLC程序的编写

因为是个例子程序,所以PLC的程序相对很简单,而且也不是必须需要使用PLC硬件,因为TIA 软件自带模拟器,完全可以通过软件实现功能,这里需要使用NetToPLCsim的模拟工具,这个工具可以和PLCsim之间建立网络通讯模拟功能,这样C#就可以作为一个SCADA系统进行数据的读写操作。

PLC程序里面需要有两处进行设置

1. 选中组态的PLC设备,之后在保护选项下面的连接机制中,选择允许从远程伙伴使用PUT/GET通信访问

2. 建立的数据块文件,需要取消优化的块访问选项,使用绝对地址

数据块中建立如下图所示的变量

主程序如下图所示,也可以编写自己的主程序

C#程序的编写

我们不需要重头写完整的C#程序,只需要下载例子程序,之后配置好后,在主程序中进行C#程序的编写练习与PLC的读写操作.

打开例子程序,引用中引用了S7.Net的控件,如果显示有一个叹号,可以将其删除,通过在项目上右键点击,选择管理NuGet程序包进行搜索S7.Net,之后安装.

C#的主程序是写在Program类下的Main函数中,具体程序如下

其中using(var plc = new Plc(CpuType.S71200, “127.0.0.1”, 0, 1))是建立与S71200PLC的连接,127.0.0.1是指服务器是运行在本机电脑上,即之前我们下载的NetToPLCsim-S7o-v-1-2-2-0软件模拟的服务器。

之后使用Open方法,打开PLC,之后就可以进行数据的读取了,都是很基本的语法,DB1.DBX0.0正是我们在PLC上建立的数据块。

最后通过Console.WriteLine方法将结果输出到控制台界面。

PLC模拟器的开启

至此程序就全部完成了,我们需要将PLC运行起来,首先需要使用NetToPLCsim软件模拟出一个本机的服务器.

按照图示设置参数即可,之后点击StartServer按钮即可.

之后启动TIA仿真器,仿真一个PLC.

C#程序运行

点击编辑器上方工具条上的启动按钮,C#程序即可运行,因为我们建立的是个控制台程序,所以输出的是一个黑窗口,当前显示了PLC程序中两个Bool变量的状态.

与我们在TIA中监控的数值是一致的.

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180101G0MPVX00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券