写在前面:

就目前而言,在中国的工控市场上,西门子仍然占了很大的份额,因此对于上位机开发而言,经常会存在需要与西门子PLC进行通信的情况。然后对于西门子PLC来说,通信方式有很多,下面简单列举一下:

(1)  S7通信:PLC作为服务器,上位机作为客户端

(2)  开放式TCP通信:PLC作为服务器,上位机作为客户端

(3)  开放式TCP通信:PLC作为客户端,上位机作为服务器

(4)   ModbusTCP通信:PLC作为服务器,上位机作为客户端

(5)   ModbusTCP通信:PLC作为客户端,上位机作为服务器

(6)   ModbusRTU通信:PLC作为主站,上位机作为从站

(7)   ModbusRTU通信:PLC作为从站,上位机作为主站

(8)   Simatic Net OPCDA通信

(9)   Simatic Net OPCUA通信

(10) KepServer OPCDA通信

(11) KepServer OPCUA通信

由于篇幅有限,这次仅以西门子S7通信为例,说明下如何基于S7通信协议实现与西门子PLC之间的通信。

1. PLC软件安装及配置

目前西门子PLC主要使用的软件包括STEP7-MicroWIN SMART、SIMATIC STEP7以及TIA Portal。TIA Portal已经完全兼容STEP 7,因此以后应该是STEP 7-MicroWIN SMART作为小型PLC的编程软件,TIA作为中大型PLC的编程软件,这里主要以博途为例进行说明:

如果大家需要软件的,可以关注左上方公众号,或者搜索微信公众号:dotNet工控上位机,关注后发送关键词:200SMART编程软件即可获取STEP 7-MicroWIN SMART V2.5软件,发送关键词:博图V15即可获取TIA V15.1编程软件。

软件安装完成后,PLC的配置也很简单,如果大家手头没有实际的PLC,也可以通过仿真的方式搭建PLC环境,具体可以参考文章:戳↓

基于S7-PLCSIM Advanced搭建S7通信仿真环境

无论使用何种方式,以下两个地方需要进行配置一下:

PLC配置一:需要将PLC的允许来自远程对象的PUT/GET通信访问勾选。

PLC配置二:对于DB块的访问,需要取消勾选优化访问。

2. 通信平台测试

(1)完成以上配置后,就可以通过自己开发的喜科堂通信测试平台软件进行测试,导航栏中选择西门子PLC,然后输入正确的IP地址,在CPU类型中选择自己的CPU类型:

图表 1新阁通信测试平台

(1)输入完成之后,点击建立连接,建立连接之后,日志栏会有连接成功提示。

(2)在读写测试中,输入相应的变量地址及变量类型,即可实现相关变量的通信读写及测试。

图表 2新阁通信测试平台测试

3. 项目级别应用

通信测试平台仅仅只是用于测试通信是否正常,实现正常的单变量数据读取和写入。但是如果是项目级别开发,还需要有一套更完善的通信架构,这里我采用的是自主开发的上位机通信配置一体化软件(简称CMS配置软件)。

(1)通过PLC设备右击选择西门子PLC,在打开的窗体中设置好相关参数:

设备名称:根据实际情况填写(无特殊字符即可)

设备备注:根据实际情况填写(无特殊字符即可)

IP地址:根据实际PLC的IP地址填写

机架号、插槽号:根据实际PLC的情况填写

PLC类型:根据实际PLC的情况填写

连接超时:PLC连接时的超时时间,默认是2000ms

容错次数:判断连接故障的容错次数,默认为1,即表示某次读取出错,即判断连接故障,根据实际情况可以适当放大

重连周期:通信过程中,出现断线时,重连的周期,默认是5000ms

图表 3创建PLC

(2)在PLC设备下,右击添加通信组,根据需要填写相应的存储区及起始地址及长度:

图表 4添加通信组

(3)通信组下面,根据实际情况配置相应的变量,输入开始地址及变量类型即可,变量地址会自动变换,这里可以输入比例系数及偏移量,用于做线性变换使用:

图表 5添加变量

(4)对于变量配置,左下角会有一个报警归档配置,主要用于配置该变量的报警类型、归档方式及设定限制:

图表 6报警归档配置

(5)完成上述配置后,可以点击保存配置,再点击启动运行,即可实现实时通信:

图表 7实时通信

(6)同时可以通过另存为,存储为一个配置文件的形式,再基于配置dll,可以通过快速方式实现配置解析及通信数据解析,这样整个项目的通信框架即可搭建完成。

4. 整体总结

本文主要针对西门子PLC的通信配置、通信配置及项目应用做了较为详细的描述,希望可以给一些想要去开发西门子PLC项目的同学一些帮助。这样的一套思路同样适用于其他品牌的PLC,我们旨在节约大家开发项目中在通信方面的时间,而将更多的精力投放在项目工艺开发中。

写在后面:

很多小伙伴想要CMSPro软件来进行学习,因此综合考虑,现提供CMSPro软件试用版供大家学习使用,试用版功能方面可能会存在部分删减,但是可以满足大部分小伙伴的学习需求,目前仅针对本公众号粉丝,具体获取方式,通过关注本公众号:dotNet工控上位机,发送关键词:CMSPro试用,即可获取。同时我们的通信库xktComm.dll也提供试用版,大家可以通过nuget搜索xktComm,安装使用,最后祝大家工作生活愉快。

更多精彩内容:

(点击即可阅读)

西门子PLC上位机软件开发历程

上位机C#通过TCP/IP和库卡机器人通讯

上位机C#通过OPCUA和西门子PLC通信

基于C#实现本地数据上传至云服务器

上位机开发之三菱Q系列PLC通信实践

上位机开发之西门子PLC-S7通信实践的更多相关文章

  1. 上位机开发之三菱FX3U以太网通信实践

    上次跟大家介绍了一下上位机与三菱Q系列PLC通信的案例,大家可以通过点击这篇文章:上位机开发之三菱Q系列PLC通信实践(←戳这里) 今天以三菱FX3U PLC为例,跟大家介绍一下,如何实现上位机与其之 ...

  2. 上位机开发之三菱Q系列PLC通信实践

    经常关注我们公众号或者公开课的学员(如果还没有关注的话,左上角点击一波关注)应该知道,我们会经常使用西门子PLC,其实对于其他品牌的PLC,我们都会讲到,包括三菱.欧姆龙.基恩士.松下及国产台达.信捷 ...

  3. 【专题教程第8期】基于emWin模拟器的USB BULK上位机开发,仅需C即可,简单易实现

    说明:1.如果你会emWin话的,就可以轻松制作上位机.做些通信和控制类上位机,比使用C#之类的方便程度一点不差,而且你仅会C语言就可以.2.并且成功将emWin人性化,可以做些Windows系统上的 ...

  4. Winform 快速开发框架,上位机开发,工控机程序开发,CS程序开发

    1.当客户让你做个CS程序时,当你手上一穷二白,所有都要重复造轮,你是不是很烦. 2.但如果有一个通用的,快速开发框架,就可以把你从这些基础的工作解救出来,你专注做业务就好了. 3.本人其中一个项目的 ...

  5. USBCAN的使用和上位机开发(MFC)

    USBCAN使用手册 参见:https://blog.51cto.com/12572800/2062839 1. USB CAN软件安装与硬件接线 USB CAN是常用的CAN测试工具.它的软件资料存 ...

  6. C#上位机开发(二)—— Hello,World

    上一篇大致了解了一下单片机实际项目开发中上位机开发部分的内容以及VS下载与安装,按照编程惯例,接下来就是“Hello,World!” 1.新建C#项目工程 首先选择新建Windows窗体应用(.NET ...

  7. 医疗器械c#上位机开发指引教程

    此教程面向的读者:对医疗器械上位机编程有兴趣,或者急需了解医疗器械(尿常规.血液分析.生化.心电.B超等医疗下位仪器)的编程流程.编程细节的程序员. 1.得到仪器协议 当我们需要与医疗器械等下位机数据 ...

  8. 周立功USBCAN-II 上位机开发(MFC)

    使用的USB转CAN的设备是周立功的USBCAN-II,在购买的时候,会有上位机二次开发的库文件.例程和API文档等材料,可以参考. 1.库函数的调用 首先,把库函数文件都放在工作目录下.库函数文件总 ...

  9. C#上位机开发(一)—— 了解上位机

    在单片机项目开发中,上位机也是一个很重要的部分,主要用于数据显示(波形.温度等).用户控制(LED,继电器等),下位机(单片机)与 上位机之间要进行数据通信的两种方式都是基于串口的: USB转串口 — ...

随机推荐

  1. 黑马程序员_毕向东_Java基础视频教程——位运算符(随笔)

    位运算符 左移和右移 左移 左移越移越大. 往左移几位就相当于这个数乘于2的几次方 3 << 2 --> 3 * 2^2 = 3 * 4 = 12 3 << 3 --&g ...

  2. CSS3面试题

    1.隐藏网页中的元素有几种方式?这些方法有什么区别? 答案:三种方法. display:none;脱离文档流,不占页面空间,会改变页面布局. visivility:hidden;不会脱离文档流,不会改 ...

  3. nginx操作目录

    nginx配置文件/conf/nginx.conf 错误日志功能:los/error.log 访问日志功能:logs/access.log 站点服务请求功能配置:html/ 禁止访问功能配置 404页 ...

  4. RBAC在Django中基于中间件的AJAX应用案例

    项目文件:   models.py from django.db import models from django.contrib.auth.models import AbstractUser # ...

  5. 洛谷 p1605 迷宫问题 详解

    题解:dfs搜索 #include <iostream> #include <algorithm> #include <cstring> #include < ...

  6. iscroll在谷歌浏览器中bug

    https://segmentfault.com/q/1010000008489619 iscroll 在安卓app嵌套html页面时,导致列表页滑动不起来,并且在chorme浏览器中使用手机模式,也 ...

  7. PAT 1029 Median (25分) 有序数组合并与防坑指南

    题目 Given an increasing sequence S of N integers, the median is the number at the middle position. Fo ...

  8. [C# WPF] 关于将文本框竖起来(旋转文字)

    xx.xmal.cs 后台代码中动态添加控件到 UI 文字显示在一个 Canvas 中(定位用Canvas.SetLeft() / Canvas.SetTop() ), 为了实现排版效果,可适当在 T ...

  9. [256个管理学理论]006.刺猬效应(Hedgehog Effect)

    刺猬效应(Hedgehog Effect) 来自于大洋彼岸的让你看不懂的解释: 刺猬效应(刺猬法则)就是人际交往中的“心理距离效应”.人与人之间都应该保持这条底线,过犹不及. 刺猬效应强调的就是人际交 ...

  10. 读Pyqt4简介,带你入门Pyqt4 _001

    PyQt是用来创建GUI应用程序的工具包,它把Python和成功的Qt绑定在一起,Qt库是这个星球上最强大的库之一,如果不是最强大的话. PyQt作为一组Python模块的实现.有超过300个类和超过 ...