信捷plc485通信上位机_基于Snap7实现与西门子PLC通信
如果你对西门子PLC通信或者上位机开发稍微有一点研究的话,应该对Snap7有所耳闻。
Snap7是一个基于以太网与西门子S7系列PLC通信的开源库,在世界领域应用很广。但也许是因为资料比较少,而且很多都是纯英文,在国内反而没有大规模的应用。
作为一个技术开发人员,所有未知领域的事物都是值得探索的。于是花了一些时间,对Snap7做了一些研究,借此机会,给大家做一些分享,希望可以给对工作或学习中有这块需要的人,提供一些借鉴。
1、Snap7基础介绍
- Snap7作为一个世界级的开源库,有自己的官网:
Snap7 Homepagesnap7.sourceforge.net
- 大家如果需要Snap7的源码,可以去这里下载:
https://sourceforge.net/projects/snap7/files/1.4.2/snap7-full-1.4.2.7z/downloadsourceforge.net
- Snap7主要用于将PC站点与PLC网路完全连接到一起,所以它具有三个对象组件,分别是客户端、服务器和协作者,这三个对象可以同时应用,下面这幅图描述了这三个对象之间的联系:
对于一般开发人员来说,Server和Partner模式是用不到的,我们主要用的是Client模式,即PLC作为Server,上位机PC作为Client。
2、Snap7源码分析
如果顺利的话,大家打开源码之后是可以运行的,找一个自己身边的西门子PLC进行通信功能测试,如果手头没有PLC,可以搭建一个西门子PLC仿真环境。
如果大家看到源码,可以发现提供的http://snap7.net其实是对snap7.dll的二次封装,snap7.dll是一个C/C++写的类库,我们可以找到一些我们需要的方法。
但是这个http://snap7.net类封装的风格有些老外的风格,会导致我们使用起来很麻烦,于是我便对这个http://snap7.net做了进一步的封装:
通过这些封装,会将http://snap7.net里晦涩难懂的方法变成我们自己熟悉的方式,这样,我们自己做开发的时候,会更加方便和高效,这里值得注意的是西门子S7协议通信会有PDU及通信组数量的限制,一般来说PDU限制是220个字节,通信组数量限制是20个,也就意味着一次性只能读取220个字节,并且最多只能同时读取20个通信组。
3、通信测试
通信库编写完成之后,通过TIA V15 + PLCSIM + NETTOPLCISM搭建了一个S7-1500PLC的仿真环境,用于通信测试。
基于封装的通信库开发了一个简单的测试平台,分别于S7-200 Smart PLC及S7-1500进行了通信测试,测试结果如下:
信捷plc485通信上位机_基于Snap7实现与西门子PLC通信相关推荐
- 信捷plc485通信上位机_三菱FX3U编程口通信上位机QT实现
三菱FX3U编程口通信上位机软件 上位机开发流程: 一 查找类似工具 找到 三菱FX串口实验(FX Serial) 这款工具 这款工具挺好用的,能够验证大多数的功能,而且能够看到发送和接收的报文,是一 ...
- 信捷plc485通信上位机_上位机开发之三菱FX3U以太网通信实践
上次跟大家介绍了一下上位机与三菱Q系列PLC通信的案例,大家可以通过点击这篇文章: dotNet工控上位机:上位机开发之三菱Q系列PLC通信实战zhuanlan.zhihu.com 今天以三菱FX3 ...
- 信捷plc485通信上位机_【新阁教育】穷学上位机系列——搭建STEP7仿真环境
经常有学员问我,学习上位机要不要买PLC硬件? 我一般的回答是:富则自行购买,穷则搭建仿真. PLC硬件,对于学习上位机来说,是锦上添花的事,经济条件允许,有则更好,条件不允许,新阁教育告诉您也可以通 ...
- 单片机float数发给上位机_上位机倒计时器
1. 设置窗口 在VS2019新建一个Windows窗体应用(.NET Framework)项目,新建之后出现一个可视化页面(From1.cs[设计])设置窗口. 在左侧的工具箱里面拉拽控件到操作面板 ...
- 西门子PLC通信全解析
前言 最近西门子PLC价格大幅上调,在工控界引起了不小的风波,不仅涨价,甚至还缺货,导致很多人不得不更改方案.听说最近已经完成了芯片替换,希望不久能够恢复供货,并把价格回调. 通过这件事,从侧面可以看 ...
- C#上位机 西门子PLC通信 S7NET协议
C#上位机 西门子PLC通信 S7NET协议 1,西门子PLC网口通信,可通信S7-200smart,S7-1200,S7-1500. 2,例子简单易懂,自己写的程序,可提供部分 3,现场实测有效. ...
- 信捷8轴焊锡机程序,采用显控触摸屏加XD5-60T10 每个轴的电子齿轮比单独设置,转盘式
信捷8轴焊锡机程序,采用显控触摸屏加XD5-60T10 每个轴的电子齿轮比单独设置,转盘式 机械手下料加料架,放料位置可以堆叠,放满一堆自动移动料架,直到整框装满. 程序带详细注释 原创程序 采用C语 ...
- 用Java做s71200的上位机_上位机通过西门子S7-1200PLC与OPC UA通讯
上位机通过OPC UA server与S71200 PLC通讯的配置步骤. 此次主要将的是关于西门子S7-1200系列PLC与上位机通过哪些特定的条件,来实现通讯的配置分享,着重讲解这一要点,接收以下 ...
- plc编程和python的联系_通过Python与西门子PLC通信
供大家想要与西门子PLC通信的朋友使用 1.该程序是通过python snap7连接西门子1200.1500系列PLC并按照I.Q.M区采集打印信息: 2.用户打开应用程序之前,要将目录下的snap7 ...
最新文章
- R语言neuralnet包构建神经网络模型:基于乳腺癌数据集
- locate,find
- 第一章 : javaScript框架分类及主要功能
- 在.net core3.0中使用SignalR实现实时通信
- RabbitMQ学习之集群镜像模式配置
- Linux内核 eBPF基础:kprobe原理源码分析:基本介绍与使用示例
- IDEA常用设置及推荐插件
- java 生成csr_Java以编程方式生成CSR
- flex中设置字体样式
- Spark的Shuffle过程介绍
- latex longtable caption长度提前换行解决方案
- 彻底了解HTTP模块
- 8大成功的网络营销案例 互联网营销案例分析
- java 游戏背景mp3音乐_java飞机大战(带背景音乐) 游戏原码下载
- 可疑的 Box 操作
- 小程序_图片剪切功能(支持多图片上传)
- aspose.words复制插入同一word文档中的某个页面
- 霹雳灯双灯c语言程序,单片机霹雳游侠灯源程序
- 工作十年,我是如何达到年薪40W以上
- html range关联文本框,HTML Input Range type用法及代码示例
热门文章
- 经历就是财富——总结我的26岁
- Adaboost算法原理以及matlab代码实现(超详细)
- 离散正(余)弦信号的时域与FFT变换后所得频域之间的关系(幅值和相角)
- php zval_copy_static_var(),深入理解 PHP7 中全新的 zval 容器和引用计数机制
- 【Python】find()函数居然还能指定搜索的起点和终点?
- 【Python】for 循环次数
- 科大星云诗社动态20210818
- python变量类型声明_python中可以声明变量类型吗
- 一次二次开发中的经验与教训(二)
- Windows 外壳扩展编程入门实例