目的:

寻找S7-1200作为服务端与计算机ModbusTCP通讯的具体方式,为PC端APP提供通讯依据。

需要准备的工具

S7-1200 CPU1212 DC/ DC/ DC一台,网线,24VDC电源, ProfiNet口通过交换机与PC连接。PC端用Modbus Poll客户端(目的是验证数据正确性)

协议说明

modbus tcp数据报文结构
请求:00 00 00 00 00 06 09 03 00 00 00 01
响应:00 00 00 00 00 05 09 03 02 00 00
一次modbus tcp读取保持寄存器的通信分析(省略了ip/tcp头):从左向右分析该数据报文:
请求:
00 00传输标志,两个字节长度,表示Modbus询问/应答的传输,默认是00 00;
00 00协议标识,两个字节长度,0表示Modbus,1表示UNI-TE,一般默认为00 00;
00 06数据长度,用来指示接下来数据的长度,单位字节;
09地址码,用以标识连接在串行线或者网络上的远程服务端的地址;
03功能码,此时代码03为读取保持寄存器数据;
00 00寄存器地址;
00 01寄存器数量;

响应:
00 00为此次通信事务处理标识符,应答报文要求与先前对应的请求保持一致;
00 00为协议标识符,与先前对应的请求保持一致;
00 05为数据长度,用来指示接下来数据的长度,单位字节;
09为设备地址,应答报文要求与先前对应的请求保持一致;
03为功能码,正常情况下应答报文要求与先前对应的请求保持一致,如果出错则返回80h+先前的功能码;
02指示接下来数据的字节长度;
00 00为被读取的保持寄存器中的数据值,即要求被读取的地址为00 00的保持寄存器中的数值为00 00。

其他命令码测试

a) 01 Read Coils(0x)读取输出Q地址
发送:00 09 00 00 00 06 01 01 00 00 00 01
含义:报文头00 09 00 00 00 06;00 09每帧递增;00 00 ModbusTCP;00 06是后面还有6字节数据。报文内容是读取站号01地址00 00开始的1个位地址。
回收:00 09 00 00 00 04 01 01 01 00

b) 02 Read Discrete Inputs(1x) 读取输入I地址
发送:00 09 00 00 00 06 01 02 00 00 00 01
含义:报文头00 09 00 00 00 06,00 09每帧递增,00 00ModbusTCP专属,00 06是后面还有6字节数据。报文内容是读取站号01地址00 00开始的1个输入位地址。
回收:00 09 00 00 00 04 01 02 01 00
含义:报文头00 09 00 00 00 04同上,报文内容是站号01读1个输入位地址(对应到S7-1200地址偏移范围可知是I区)返回了1个字节,结果是01。也就是I0.0是true。

发送:00 09 00 00 00 06 01 02 00 00 00 0A
回收:00 10 00 00 00 05 01 02 02 00 00
c) 03 Read Holding Registers(4x)
发送:00 09 00 00 00 06 01 03 00 00 00 01
回收:00 09 00 00 00 04 01 03 02 00 00
读取设定DataBlock的偏移为0的1个数据,返回结果是0x0000。经验证与PLC监控值相同。

#附录一
源代码资源地址,如果有问题可以给我发邮件jacky20sx@163.com,我会及时回复,互相学习
https://download.csdn.net/download/u011383812/10755005

ModbusTCP协议,上位机通讯测试实例分享相关推荐

  1. C# 机器视觉工控通讯------西门子PLC之S7协议上位机通讯

    C# 机器视觉工控通讯------西门子PLC之S7协议上位机通讯 使用步骤 1.引入库 项目添加应用HslCommunication.dll和代码代码如下(示例): dll官方支持网站> us ...

  2. c语言tcp硬时事通讯程序代码,使用C语言编写基于TCP协议的Socket通讯程序实例分享...

    tcp客户端示例 #include #include #include #include #include #include #include #include #include #include # ...

  3. modbus通讯协议编程实例_三菱PLC CC-LINK通讯编程实例分享,看完你就会了

    前言:小蓝上次分享了三菱PLC编程指令文章,有一位粉丝说还有标签,FB模块,以太网通讯,MODBUS,TCP通讯这些有的学的.所以今天就给大家带来CC-LINK通讯编程实例.如果看完还是不太明白怎么办 ...

  4. 西门子1200程序V15版本实例,设备已经运行生产,博图V15以上可打开 包含上位机通讯,modbus485

    西门子1200程序V15版本实例,设备已经运行生产,博图V15以上可打开 包含上位机通讯,modbus485,伺服等 西门子1214C控制4台步进电机: 西门子1214C与4台MS300变频器modb ...

  5. 物联网云平台DTU Modbus协议 上位机 下位机 源码 源代码 程序

    物联网云平台DTU Modbus协议 上位机 下位机 源码 源代码 程序 一.源码的使用基本说明: 1.1 编译语言: 下位机使用C语言:上位机使用C#语言 标准Modbus Slave通信下位机源码 ...

  6. STM32 MPU6050与匿名上位机通讯(V2.6版)

    0.系列目录 STM32 软件模拟IIC STM32 使用DMP库处理MPU6050数据 STM32 MPU6050与匿名上位机通讯(V2.6版) 1.简介 在四轴的调试中,经常要使用地面站与飞控之间 ...

  7. proteus中使用虚拟串口实现单片机和上位机通讯

    祝大家身体健康哈,肺炎愈来愈多,希望看到这篇文章的旁友都能健健康康! 今天写一下proteus里如何使用虚拟串口仿真单片机和上位机通讯,所需要的软件有:(1)Virtual Serial Port D ...

  8. 欧姆龙PLC码垛程序 电机:四个雷塞闭环步进电机,四个汇川伺服电机,总共八个电机。 PLC:CP1H-EX40DT-D,八个轴就用了两个PLC,还有跟上位机通讯

    欧姆龙PLC码垛程序(某上市公司设备),电机:四个雷塞闭环步进电机,四个汇川伺服电机,总共八个电机. PLC:CP1H-EX40DT-D,八个轴就用了两个PLC,还有跟上位机通讯. 图四是机台俯视图 ...

  9. 【代码】邮件群发机PHP实现实例分享

    原理: 第一申请大量的邮箱帐号 腾讯的 126的 163的 新浪的 雅虎的 谷歌的 等等提供smtp服务的 第二:收集你要发送邮件的邮件列表 第三:遍历邮件列表,每一个邮件发送邮件 第四:用linux ...

  10. AS608与单片机握手失败、与上位机通讯失败

    简言:本人在使用AS608模块时遇到了握手失败.通讯失败的问题,尝试网上各种方法未果后,换了一个AS608模块,问题解决. 一.与单片机握手失败 检查代码中的波特率是否为9600,再通过上位机将AS6 ...

最新文章

  1. Android存储空间不足的解决办法
  2. 通过反射获得类的构造引用无视private修饰符
  3. LeetCode 141. Linked List Cycle (链表循环)
  4. .Net 获取IP 地址和计算机名(本地网)
  5. feign multipartfile 多文件上传_Spring Cloud Alibaba 实战(六) - 声明式HTTP客户端-Feign
  6. socket创建失败_python3从零学习-5.8.1、socket—底层网络接口
  7. 最大流最小割算法入门理解
  8. 用c语言实现香农编码,单链表实现香农编码(C++)——二牛原创
  9. 【数学建模】灰色模型
  10. java写qq空间6_学会自己编写QQ空间免费代码教程
  11. 花生壳内网穿透+https+tomcat不能进行网页访问
  12. 使用freemarker引擎动态生成word文件
  13. 推荐一个多端的开发框架uni-app
  14. 【使用python和flask建个人博客】给个人博客增加了清单分类及计时功能,可以很方便的做时间记录,目标是为了能够跟柳比歇夫学习
  15. 紫光展锐面试——软件岗
  16. 交换机开启DHCP Snooping
  17. 一女孩写的(女人反省,男人感动。。。)
  18. 编写dylib_iOS逆向-无需越狱注入动态库
  19. Tomcat服务器端口修改
  20. 提高文章阅读量的最新技巧

热门文章

  1. 关于maven仓库的配置步骤
  2. 纯RAW数据转换为DNG格式
  3. 结果导向和自管理的联系
  4. android win7 共享网络打印机,详解win7共享打印机如何设置
  5. P4578 [FJOI2018]所罗门王的宝藏
  6. 微信小程序周记(第一周 7.19-7.25)
  7. EfficientDeRainy:一种高效的图像去雨雾算法
  8. vmware虚拟机扩展磁盘空间
  9. Linux CentOS 重置root密码
  10. 实战篇---Nios ii 基本操作