精华内容
下载资源
问答
  • labview与西门子s7通信

    2019-04-21 11:23:10
    labview与西门子s7通信,直接对西门子db块进行操作
  • 西门子PLC以太网s7协议组件,西门子s7通信协议,C#源码.zip
  • 西门子S7通信库 Snap7 是一个基于以太网与S7系列的西门子PLC通讯的开源库。 支持包括S7系列的S7-200、S7-200 Smart、S7-300、S7-400、S7-1200以及S7-1500的以太网通信。
  • 西门子S7通信

    2021-06-11 15:02:10
  • C# Siemens PLC Ethernet S7 protocol using third-party DLL
  • 西门子S7-1200通信教程

    2021-03-17 17:58:10
    西门子S7-1200通信教程.pdf 介绍了关于西门子S7-1200通信教程的详细说明,提供理论教程的技术资料的下载。
  • 西门子S7-300PLC培训课件 6-S7通信基础 西门子S7-300PLC培训课件 6-S7通信基础
  • 西门子S7-200通信及网络.pdf 介绍了关于西门子S7-200通信及网络的详细说明,提供S7-200的技术资料的下载。
  • 西门子S7-300主站与S7-200分站通信.pdf 介绍了关于西门子S7-300主站与S7-200分站通信的详细说明,提供S7-300的技术资料的下载。
  • 西门子S7-200通信

    2013-11-22 11:52:00
    西门子S7-200_Modbus通信通信协议。
  • 3G3MZ与西门子S7-300通信.pdf 介绍了关于3G3MZ与西门子S7-300通信的详细说明,提供通讯与网络的技术资料的下载。
  • 西门子S7-300通信基础

    2013-03-07 10:57:51
    西门子S7-300通信基础 介绍西门子基础通信 POFIBUS通信基础
  • 西门子S7-300高级编程培训教材_内部教材_9、S7基本通信和扩展通信.pdf 介绍了关于西门子S7-300高级编程培训教材_内部教材_9、S7基本通信和扩展通信的详细说明,提供S7-300的技术资料的下载。
  • 最近又将S7协议巩固了一遍,发现了一些自己之前都不知道的事,这才发现,西门子S7协议是非常强大的一个协议。1.S7协议之布尔操作对于布尔操作,很多协议都有,但是这里的布尔操作是指寄存器布尔,比如DB100.DBX0....

    ↑ 点击上方

    “智能制造之家”

    关注我们

    6aec6a01a5b1c48d306f29d5459985cd.png

    写在面前

    在上位机开发的路上,西门子PLC也一直是我钟爱的一个品牌,仍然记得刚开始做的第一个上位机就是基于S7-300 PLC的S7协议。最近又将S7协议巩固了一遍,发现了一些自己之前都不知道的事,这才发现,西门子S7协议是非常强大的一个协议。

    1. S7协议之布尔操作

    对于布尔操作,很多协议都有,但是这里的布尔操作是指寄存器布尔,比如DB100.DBX0.0,很多时候,我们都是通过先读取DB100.DBB0的值,再通过位运算结果,写入到DB100.DBB0中,实现DB100.DBX0.0的操作,但是这种方式有弊端,第一:每次操作一个布尔值都需要与PLC进行两次数据交互,第二:安全性和稳定性无法保障,你不知道在你读取和写入之间,这个字节的值是否已经发生了改变。

    这样的问题也存在于Modbus协议的寄存器位操作,如40001.05,三菱、欧姆龙的寄存器位操作,如D100.06、W12.04,给上位机开发者带来很多苦恼。

    但是S7协议支持直接位操作,有专门的报文指令实现这样的功能。

    2. S7协议之PDU读取

    大部分人都知道S7协议一次性读取有限制,但是具体是多少?怎么计算出来的?

    S7协议的一次性读取长度是根据PDU计算出来的,这个PDU的值是来自于PLC本身,不同型号的CPU,它的PDU是不一样的,大家可以通过KepServer结合PLC来测试,如果手头没有PLC,可以关注本公众号的一篇文章《手把手教你搭建西门子PLC仿真环境》。

    cf6417064e9c60ba5637f3ee373a51ab.png

    图表 1 S7-1200的PDU

    4adc87379f83bd967ccfdde733605f04.png

    图表 2 S7-1500的PDU

    经过研究发现,西门子PLC的PDU大小是和CPU息息相关的,一般会有240、480、960三个档次,知道PDU之后,那么一次性读取的字节长度,就是在PDU的基础上减去18,这个18是指包头包尾会有18个字节,这样我们就知道了一般的PLC,一次性能读取222个字节(240-18=222),但是对于S7-1516这样的PLC,我们一次性是可以读取942个字节的(960-18=942),这个一次性能读取的字节越长,越能提高上位机的通信效率。

    但是刚刚的方式是通过KepServer测试的,实际开发过程中,该怎么获取CPU的PDU呢,实际上在建立连接的第二次握手时,返回的报文中就包含PDU的值。

    f776f00536af485e4c55803200805f99.png

    图表 3 S7-1200 PDU报文

    第二次握手返回的报文长度是27个字节,最后两个字节就是PDU的值,上图展示的是S7-1200PLC返回的报文,0和240的组合即为240。

    对于S7-1500,我这里也做了一下测试,结果如下,返回结果为3和192,3和192的组合恰好是960(960=3*256+192)。

    1eecc04e70c5a1ed31edffd7fd0f6b6f.png

    图表 4 S7-1500 PDU报文

    虽然PDU是由硬件做了限制,但是我们可以通过软件的方式,实现大量数据的读取,只需要在底层做一些封装即可。做了一下测试,针对S7-1200和S7-1500同时读取M区的8000个字节的耗时比较,S7-1200耗时800多ms,S7-1500耗时仅需200ms,由此可见,硬件对通信的重要性。

    cf3a1a50017dfd7b84fc345585ba18b7.png

    图表 5 S7-1200通信耗时测试

    f33382301ea952fd703bc32832d1a162.png

    图表 6 S7-1500通信耗时测试

    3. S7协议之多组读取

    西门子S7协议其中的一个重要体现就在于可以同时读取很多个不同的存储区,最大支持19种,总共读取长度仍然受PDU的限制。

    对于很多其他的通信协议,当我们遇到数据变量比较零散,同时读取多个存储区或者一个存储区多个不同部分的时候,我们只能针对每个存储区或者每块区域做一个数据请求,但是西门子S7协议可以解决这样的问题。

    这里我们仍然以实验测试为例,体验多组读取带来的美妙体验。

    假设我们的通信组配置如下:

    通信组01:读取I区从0开始的1个字节

    通信组02:读取Q区从0开始的1个字节

    通信组03:读取M区从0开始的200个字节

    通信组04:读取M区从500开始的50个字节

    通信组05:读取M区从1000开始的60个字节

    通信组06:读取DB100从0开始的20个字节 

    通信组07:读取DB100从20开始的20个字节 

    通信组08:读取DB100从40开始的20个字节 

    通信组09:读取DB100从60开始的20个字节

    我们采用常用S7-1200PLC,基于CMS配置软件实现配置之后,开始通信测试,首先我们选择的是单组读取的方式,就是针对每个组,依次进行读取,结果如下,耗时大约200ms,这个时间应该相对来说还是比较正常的。

    0dc0522b0444bed4698ea2790ada1d9e.png

    图表 7 S7-1200PLC单组读取

    紧接着,我将读取方式改成了多组读取,再进行测试发现结果如下:

    8d2deb5ce01dc95968dcd44e9dd0aeca.png

    图表 8 S7-1200PLC多组读取

    通过结果发现,多组读取对于存储区较为零散的项目来说,有着非常重要的作用,可以大大提高通信效率。

    免责申明:本公众号所载文章为本公众号原创或根据网络搜索编辑整理,文章版权归原作者所有。因转载众多,无法找到真正来源,如标错来源,或对于文中所使用的图片,资料,下载链接中所包含的软件,资料等,如有侵权,请跟我们联系协商或删除,谢谢!

    往期推荐 一文看尽所有TIA Portal重要文档,链接和知识点如何优雅自如的了解对比PROFINET和PROFIBUS西门子TIA Portal大鱼吃小鱼VS施耐德Intouch潜水艇小游戏TIAPortal下的自动化标准—沃尔沃VCC StandardNX MCD与Plant Simulation系统培训 | 虚拟调试与仿真 这才是正确学习工业以太网PROFINET的最佳打开方式 基于WMS/WCS与PLC数据交互的立体仓库控制系统案例分析 64d3a7b569394ce728d9b39277b7fac6.png

    我们是一群智能制造技术的爱好者,我们乐于分享,我们积极向上,我们也许有些宅,但是我们很有爱,我们期待您的加入

    --智能制造之家

    多重福利哦

    1.若您有智能制造相关资料需求,可以到留言区进行留言~

    2.进入知识星球智能制造之家,提升自我认知,认识更多朋友,掌握更多资源,更多技巧~

    展开全文
  • 使用C#和Sharp7库与西门子S7PLC通信源码
  • SIEMENS西门子PLC S7-1200PLC的S7通信相关资料
  • 西门子S7系列PLC通信C#库(sharp7),西门子S7plc的C#通信
  • 西门子S7-1200PLC通信全解.pdf
  • 组态软件,又称组态监控系统软件,是指数据采集与过程控制的专用软件,也是指在自动控制系统监控层一级的软件平台和开发环境。这些软件实际上也是一种通过灵活的组态方式,为用户提供快速构建...力控与西门子S7-2...

    组态软件,又称组态监控系统软件,是指数据采集与过程控制的专用软件,也是指在自动控制系统监控层一级的软件平台和开发环境。这些软件实际上也是一种通过灵活的组态方式,为用户提供快速构建工业自动控制系统监控功能的、通用层次的软件工具。组态软件广泛应用于机械、汽车、石油、化工、造纸、水处理以及过程控制等诸多领域。力控组态软件作为国产组态软件的佼佼者,在自动化控制领域发挥着不可替代的作用。力控与西门子S7-200 SMART如何建立通信呢?1. 打开力控主态软件,新建一个项目,如下图所示:

    2. 建立IO设备组态,点击开发打开开发界面,如下图所示:

    在左侧工程栏双击打开IO设备组态,找到PLC>SIEMENS(西门子)>SMART200TCP协议,如下图所示:

    3. 建立数据库组态变量,设定一个简单的画面测试通信效果。在左侧工作栏中双击数据库组态,打开数据库变量设置画面,如下图所示:

    双击NAME(点名)下的空白栏打开变量类型选择,I,Q,M,S等位变量选择数字量I/O点,VB,VW,VD等变量选择模拟I/O点。

    建立一个M0.0变量,如下图所示:

    同样的方法建立一个Q0.0,一个M0.1和一个VD0浮点数。

    建立一个简单画面,M0.0启动,M0.1停止,Q0.0指示灯

    在PLC中写入上图程序,运行力控组态测试与SMART通信情况,通过启动按钮M0.0可以启动指示灯Q0.0,通过停止按钮M0.1可以关闭指示灯Q0.0。

    展开全文
  • 西门子S7-200_PLC通信技术
  • 西门子S7-400基于PROFIBUS总线的S7单边通信rar,西门子S7-400基于PROFIBUS总线的S7单边通信(STEP7 v5.x的)
  • 西门子S7-300PLC,S7-400PLC与VB的通信方法
  • C#与西门子s7-300通信

    2016-03-20 15:54:05
    通过prodave来实现C#与西门子s7-300通信
  • 介绍了关于Eview触摸屏与西门子S7-200的通信的详细说明,提供步科的技术资料的下载。
  • SIEMENS西门子S7-1200PLC OPC UA通信介绍
  • [c054]C#与西门子S7-1200PLC通信源码,西门子s7-1200plc编程,C#源码
  • 本文档主要描述西门子S7-1200在STEP_7_Basic V10.5中的通信配置方法。(西门子S7-1200与STEP_7_Basic入门系列之7)
  • 西门子S7-300PLC与PC机通信实现的研究.pdf 介绍了关于西门子S7-300PLC与PC机通信实现的研究的详细说明,提供S7-200的技术资料的下载。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,591
精华内容 1,036
关键字:

西门子s7通信的方法