欢迎来到《圣博凯斯》变频供水设备官网
精锐于专业 / 卓然于品质 -- 20年专注于供水行业,缔造至臻品质 -- 服务热线:0731-85783205 18932453205

西门子PLC怎么编程_西门子plc编程的流程

如果你对西门子PLC通信或者上位机开发稍微有一点研究的话,应该对Snap7有所耳闻。

Snap7是一个基于以太网与西门子S7系列PLC通信的开源库,在世界领域应用很广。但也许是因为资料比较少,而且很多都是纯英文,在国内反而没有大规模的应用。

作为一个技术开发人员,所有未知领域的事物都是值得探索的。于是花了一些时间,对Snap7做了一些研究,借此机会,给大家做一些分享,希望可以给对工作或学习中有这块需要的人,提供一些借鉴。

1. Snap7基础介绍

(3)大家如果源码下载太慢或者下载不了,可以关注本公众号,发送关键词:Snap7源码

(4)Snap7主要用于将PC站点与PLC网路完全连接到一起,所以它具有三个对象组件,分别是客户端、服务器和协作者,这三个对象可以同时应用,下面这幅图描述了这三个对象之间的联系:

图表 1 Snap7整体框架

对于一般开发人员来说,Server和Partner模式是用不到的,我们主要用的是Client模式,即PLC作为Server,上位机PC作为Client。

2. Snap7源码分析

如果顺利的话,大家打开源码之后是可以运行的,找一个自己身边的西门子PLC进行通信功能测试,如果手头没有PLC,可以关注本公众号的一篇文章《手把手教你搭建西门子PLC仿真环境》。

如果大家看到源码,可以发现提供的snap7.net其实是对snap7.dll的二次封装,snap7.dll是一个C/C++写的类库,我们可以找到一些我们需要的方法。

图表 2 建立PLC连接

图表 3 断开PLC连接

图表 4 存储区读取

图表 5存储区写入

图表 6读取多变量

图表 7写入多变量

但是这个snap7.net类封装的风格有些老外的风格,会导致我们使用起来很麻烦,于是我便对这个snap7.net做了进一步的封装:

图表 8建立及断开连接

图表 9读取及写入多个字节

图表 10读取及写入多个通信组

图表 11读取及写入多个通信变量

图表 12读取及写入单个变量

通过这些封装,会将snap7.net里晦涩难懂的方法变成我们自己熟悉的方式,这样,我们自己做开发的时候,会更加方便和高效,这里值得注意的是西门子S7协议通信会有PDU及通信组数量的限制,一般来说PDU限制是220个字节,通信组数量限制是20个,也就意味着一次性只能读取220个字节,并且最多只能同时读取20个通信组。

3. 通信测试

通信库编写完成之后,通过TIA V15 + PLCSIM + NETTOPLCISM搭建了一个S7-1500PLC的仿真环境,用于通信测试。

图表 13 西门子仿真环境

基于封装的通信库开发了一个简单的测试平台,分别于S7-200 Smart PLC及S7-1500进行了通信测试,测试结果如下:

图表 14 S7-200 Smart PLC通信测试

图表 15 S7-1500 PLC通信测试

欢迎关注公众号↓

猜你喜欢

  • 哪种信号灯不可以右转_哪种交通信号灯可以右转

    【红绿灯控制模式】可分为定时控制、感应控制和自适应控制:1.定时控制:十字路口的交通信号控制器都按照预设的定时方案运行,也称为周期控制。每天只有一个定时方案称为单级定时控制;当根据一天中不同时间段的交通量采用几种计时方案时,采用多级计时控制。最基本的控制方法是单个路口的定时控制。线路控制和平面控制也可以用定时控制,也

  • PLC和电脑连接_plc与pc机的通讯连接

    由于项目需要连接PLC和PC,所以传送几种状态和控制信息。为了实现最快的响应速度,采用了I/O直接连接。但是,这需要添加I/O卡,与PLC的I/O功能有些重复。那么,网络通信可能吗?本文进行一些实验。西门子S7-1200概述使用的PLC是目前主流的西门子S7-1200。支持PROFINET、PROFIBUS

  • 西门子step7怎么连接plc_西门子step7与plc通讯

    ​如果你对西门子PLC通信或者上位机开发稍微有一点研究的话,应该对Snap7有所耳闻。Snap7是一个基于以太网与西门子S7系列PLC通信的开源库,在世界领域应用很广。但也许是因为资料比较少,而且很多都是纯英文,在国内反而没有大规模的应用。作为一个技术开发人员,所有未知领域的事物都是值得探索的。于是花了一些时间,

  • 西门子plc300编程入门基础_西门子plc300编程入门

    点击,PLC进步后进入“技术PLC教室”!3358www.Sina.com/http://www.Sina.com/串行链路上的MODBUS协议有两种:MODBUSASCAII(字符串)和MODBUSRTU。200SMART提供的MODBUS协议库支持MODBUSRTU通信。一、MODBU

  • 西门子PLC怎么编程_西门子plc编程的流程

    如果你对西门子PLC通信或者上位机开发稍微有一点研究的话,应该对Snap7有所耳闻。Snap7是一个基于以太网与西门子S7系列PLC通信的开源库,在世界领域应用很广。但也许是因为资料比较少,而且很多都是纯英文,在国内反而没有大规模的应用。作为一个技术开发人员,所有未知领域的事物都是值得探索的。于是花了一些时间,对S

  • 西门子plc300编程入门视频教程免费_西门子plc300编程入门

    点击,PLC进步后进入“技术PLC教室”!3358www.Sina.com/http://www.Sina.com/串行链路上的MODBUS协议有两种:MODBUSASCAII(字符串)和MODBUSRTU。200SMART提供的MODBUS协议库支持MODBUSRTU通信。一、MODBU

18932453205