zoukankan      html  css  js  c++  java
  • 上位机开发之西门子PLC-S7通信实践

    写在前面:

    就目前而言,在中国的工控市场上,西门子仍然占了很大的份额,因此对于上位机开发而言,经常会存在需要与西门子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通信实践


  • 相关阅读:
    jdk环境变量配置
    智商太低,竟然算不出病狗神题了
    HDU 1284 钱币兑换问题 母函数、DP
    linux下实现监控进程网络带宽
    编程算法
    C語言 rand函数 进阶探讨与实现
    JDBCUtil
    iOS进阶路线以及进阶书籍
    Windows平台CUDA开发之前的准备工作
    数据库中substring的用法 CONVERT(varchar(12) , getdate(), 112 )
  • 原文地址:https://www.cnblogs.com/xiketang/p/13065508.html
Copyright © 2011-2022 走看看