上位机工业协议-S7COMM

news2025/2/28 15:40:20

1、S7协议主要针对西门子相关设备通信。先了解基本通信对象、通信环境、通信报文,再处理S7COMM通信库的封装与测试。

2、西门子设备通信

- PLC:系列    LOGO200200Smart30040012001500

- PLCLOGO200200Smart30040012001500

    - 通信模块/扩展板    

    - 通信环境

3、通信环境

4、西门子PLC存储区

存储区分类

     - I:输入、Q:输出、AI:模拟量输入、V/DB:变量存储区    Modbus  4 个存储区

     - AQ:模拟量输出、M:位存储区、T:定时器存储区、C:计数器存储区、HC:高速计数器、AC:累加器、SM:特殊存储器、L:局部存储区、S:顺序控制继电器     

访问规则

     - bitByteWordDword  

     - 访问地址:最小存储是字节(S7协议   访问非优化块,偏移地址)

        I0.0    Q1.3    MB10  MW10   M10.0   VW100  V100.1  DB1.DBX100.5     位地址最大:7

        W   Word    2Byte      10号字节开始的两个字节

 5、S7COMM-COTP报文

6、S7COMM-Read报文

S7Comm-

长度(bit)

发送

说明

长度(bit)

响应

说明

0

TPKT

8

0x03

Version,版本默认3

TPKT

8

0x03

Version,版本默认3

1

8

0x00

Reserved,保留默认0

8

0x00

Reserved,保留默认0

2

16

0x00

整个请求字节数

16

0x00

整个请求字节数

3

0x1f

0x1a

4

COTP

8

0x02

当前字节以后的字节数

COTP

8

0x02

当前字节以后的字节数

5

8

0xf0

PDU Type,数据传输[附录一]

8

0xf0

PDU Type,数据传输

6

8

-000 0000

TPDU number

8

-000 0000

TPDU number

1--- ----

Last data unit:Yes

1--- ----

Last data unit:Yes

7

S7-Header

8

0x32

Protocol Id,默认

S7-Header

8

0x32

Protocol Id,默认

8

8

0x01

ROSCTR:JOB[附录二]

8

0x03

ROSCTR:Ack_Data

9

16

0x00

Redundancy Identification (Reserved)

16

0x00

Redundancy Identification (Reserved)

10

0x00

0x00

11

16

0x00

Protocol Data Unit Reference

16

0x00

Protocol Data Unit Reference

12

0x00

0x00

13

16

0x00

Parameter length

16

0x00

Parameter length

14

0x0e

0x02

15

16

0x00

Data length

16

0x00

Data length

16

0x00

0x05

17

S7-Parameter

8

0x04

Function: Read Var (0x04)[附录五]

8

0x00

Error class: No error (0x00)

18

8

0x01

Item count: 1

8

0x00

Error code: 0x00

19

Item[1]

8

0x12

结构标识,一般默认0x12

S7-Parameter

8

0x04

Function: Read Var (0x04)

20

8

0x0a

此字节往后的字节长度

8

0x01

Item count: 1

21

8

0x10

Syntax Id: S7ANY (0x10)[附录六]

Data

Item[1]

8

0xff

Return code: Success (0xff)[附录九]

22

8

0x02

Transport size: BYTE (2)[附录七]

8

0x04

Transport size: BYTE/WORD/DWORD (0x04)

23

16

0x00

数据长度

16

0x00

数据响应长度

24

0x01

0x01

25

16

0x00

数据块编号     DB1.DBX100.0

n

0x00

数据(不定长度)

26

0x01

Item2

8

0xff

Return code: Success (0xff)[附录九]

27

8

0x84

Area[附录八]

8

0x04

Transport size: BYTE/WORD/DWORD (0x04)

28

24

18-3

Byte Address:100

16

0x00

数据响应长度

29

0x01

30

2-0

Bit Address:0

n

0x00

数据(不定长度)

6、S7COMM-Write报文

 7、S7COMM-SZL报文

 8、S7COMM-通信限制

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/19007.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Elastic Stack容器化部署拓展(Https、AD域集成)并收集Cisco设备的日志信息

前言: 还记得在去年的笔记中提到过EFK(Elasticsearch-Filebeat-Kibana)的部署,但是其中的内容相对简单,也没有提到一些额外的Elastic Stack的特性。链接如下:https://blog.csdn.net/tushanpeipei/article/…

JSTL使用

目录 简介: 组成 使用: code核心库使用 ​编辑 fmt格式化 ​编辑 简介: 全称:JSP Standard Tag Library 中文名:JSP标准标签库 作用:用于扩展JSP中的标签,能够为JSP页面提供流程控制、类型转换等功能的标签。替换JSP中代码…

【Spring Cloud实战】Ribbon负载均衡

gitee地址:https://gitee.com/javaxiaobear/spring-cloud_study.git 在线阅读地址:https://javaxiaobear.gitee.io/ 1、概述 Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端负载均衡的工具。 简单的说,Ribbon是Netflix发布的开源项…

jenkins持续集成 自动化部署

一、环境准备 1.1 Java环境 (1)安装jdk1.8 yum -y install java-1.8.0-openjdk* (2)执行以下命令查看是否安装成功 java -version 1.2 安装maven (1)将安装包上传到Linux服务器,解压缩 tar -…

对笔记本电池的研究

文章目录设计容量&完全充电容量笔记本电池报告显示电池设计与系统电池的全部充电容量之间的差异解释电池损耗正确做法查看笔记本的电池使用报告方法第一步:WinR键输入cmd,打开命令提示符窗口第二步:输入powercfg /batteryreport&#xff…

代码规范-对抗软件复杂度

1、为什么需要代码规范 任何系统性的项目都需要架构设计,而架构设计的核心命题是控制复杂度。 但随着项目的不断迭代,复杂度就会不断上升,研发效率就会不断下降。 而代码规范正是对抗软件复杂度的有效手段,通过约定俗成的规则…

[附源码]计算机毕业设计JAVA户籍管理系统

[附源码]计算机毕业设计JAVA户籍管理系统 项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis M…

docker安装redis详细教程

1、下载最新redis镜像 docker pull redis //表示拉取最新的镜像 如果要指定版本 docker pull redis:latest//表示拉取最新的镜像 2、创建redis映射目录 mkdir /redisData/redis/conf 配置文件挂载在我指定的redisData/redis/conf/ 文件夹中,方便后续的修改 创建re…

Linux上单机部署RocketMq

Linux上单机部署RocketMq1、安装jdk2、下载rocketmq并解压3、创建日志文件夹4、启动namesrv5、启动broker6、查看和关闭7、rocketmq控制台7.1、控制台idea启动7.2、控制台jar包启动1、安装jdk rocketmq的运行是建立在jdk之上的,所以,我们要搭建rocketmq服…

uView u-slider 自定义滑块

有个需求UI设计的滑动选择器中的滑块如下所示: 项目中集成的是vView2.0组件库,u-slider组件中有 blockStyle 属性,看着是用来设置自定义滑块的。但是试了下,没有效果,不知怎么回事。看了一下uView1.0组件库 u-slider组…

大学生想做兼职应该怎么找,适合大学生的线上线下靠谱兼职推荐

大学生现在有很多兼职工作可以在网上和实体上做。他们可以根据个人能力和喜好进行选择。以下是一些低门槛的在线和离线兼职工作,希望能帮助到你。 线下兼职 1.勤工助学岗位 学校:通过学校提供的勤工俭学岗位,如办公室助理、图书馆助理等&am…

Java 线上机器 CPU 100% 的一次排查过程

文章目录1. 问题发生2. 数据库连接关闭问题排查3. 问题的进一步排查4. 解决方法1. 问题发生 日常敲代码突然收到生产环境异常告警,线上有一台机器 CPU 使用率飙升到 100 触发扩容,工作群里一下子鸡飞狗跳。 出现问题,首先当然是查看监控和日…

如何画架构图?

平时做过一些系统设计,也写过一些系统分析文章,从组件、关系、交互等方面提供一些建议,并用我之前写文章画的一些图举些例子。构成系统的组件通过形状、颜色、名称来逼近其概念。LevelDB 主要构件如上面 LevelDB 的架构图,包含的主…

Redis哨兵(Sentinel)

# Redis哨兵(Sentinel) Redis 的 Sentinel 系统用于管理多个 Redis 服务器(instance), 该系统执行以下三个任务: 监控(Monitoring): Sentinel 会不断地检查你的主服务器和从服务器是否运作正常…

内核参数 sched_min_granularity_ns 为什么看不到啦?

linux内核从版本v5.13-rc1起(含),sysctl 已无法设置 kernel.sched_min_granularity_ns。 其实不止sched_min_granularity_ns,在 /proc/sys/kernel 下,和CPU调度相关的6个参数都不见了: sched_latency_ns …

Unity VR开发教程 OpenXR+XR Interaction Toolkit 2.1.1(七)射线抓取

文章目录📕教程说明📕添加射线功能的相关组件📕设置 Interaction Layer Mask📕让 XR Direct Interactor 不对 XR Ray Interactor 产生干扰📕使抓取的物体不会吸到手上📕远距离抓取时通过摇杆改变抓取物体的…

Node.js安装及环境配置

Node.js安装及环境配置1.下载安装Node.js2.npm安装路径配置3.环境变量配置4.换源5.测试npm安装1.下载安装Node.js Node.js官网 下载如图所示版本:(请根据自己的系统环境选择) 下载完成后傻瓜式安装即可 测试环境: PS C:\Users…

终于拿到了爆火全网的进一线大厂程序员必看的1700道java面试题

爆火全网的进一线大厂程序员必看的1700道java面试题到底有多牛? 牛不牛不敢说,但是有好多程序员是靠这一套1700道高频面试题,顺利收到很多大厂offer! 以至于,到现在为止,大厂都开始按照这一套1700道面试题…

java计算机毕业设计ssm美食视频教学网站element 前后端分离

项目介绍 高校实验室信息管理平台是使用JAVA的SSM技术,MySQL作为数据库开发,用户通过查看实验室信息,在线预约实验室,实现高校实验室信息化管理。首先对本论文进行分析后,提出平台的相关技术,然后整理系统的需求分析,根据需求进行功能和数据库设计,最后进行系统实现和测试 。 …

Redis的Java客户端

目录 1 前言 2 Jedis客户端 2.1 jedis快速入门 2.2Jedis连接池 3 SpringDataRedis 3.1快速入门 3.2ReisTemplate配置序列化工具 3.3 StringRedisTemplate 1 前言 在Redis官网中提供了各种语言的客户端,地址:https://redis.io/resources/clien…