Modbus RTU通信应用

news2024/11/18 7:48:37

一、功能概述

1.1 概述

        Modbus串行通信协议是Modicon公司在1970年开发的。

        Modbus串行通信协议有Modbus ASCII和Modbus RTU两种模式,Modbus RTU协议通信效率较高,应用更加广泛。

        Modbus RTU协议是基于RS232和RS485串行通信的一种协议,数据通信采用主从方式进行传送,主站发出具有从站地址的数据报文,从站接收到报文后发送相应报文到主站进行应答。

        Modbus RTU协议网络上只能存在一个主站,主站在Modbus RTU网络上没有地址。每次从站必须有唯一的地址,从站地址为0-247,其中0为广播地址。

1.2 报文结构

        Modbus RTU协议报文结构:

        一个报文就是一帧数据,一个数据帧就一个报文: 指的是一串完整的指令数据,就像上面的一串数据。(CRC校验L和CRC校验H属于错误校验码,占2个字节)

        报文举例:

从站地址码功能码数据地址数据区错误校验码
0106000100179804

        这一串数据的作用是把数据H0017(十进制数为23)写入01号从站的地址H0001中。

1.3 功能码及数据地址 

        Modbus 设备之间的数据交换是通过功能码实现的,功能码有按位操作的,也有按字操作的。

        在S7-1200 PLC的Modbus RTU协议通信中,不同的Modbus RTU协议数据地址区对应不同的S7-1200 PLC数据区。

功能码描述/字操作Modbus数据地址S7-1200PLC数据地址区
01读取输出位00 001-09 999Q0.0-Q1023.7
02读取输入位10 001-19 999I0.0-I1023.7
03读取保持寄存器40 001-49 999DB数据块、M位存储区
04读取输入字30 001-39 999IW0-IW1022
05写一个输出位00 001-09 999Q0.0-Q1023.7
06写一个保持寄存器40 001-49 999DB数据块、M位存储区
15写多个输出位00 001-09 999Q0.0-Q1023.7
16写多个保持寄存器40 001-49 999DB数据块、M位存储区

二、指令说明 

        在“指令”窗格中依次选择“通信”→“通信处理器”→“MODBUS(RTU)”选项,出现MODBUS RTU指令列表。

         Modbus RTU指令主要包括3个指令:“Modbus_Comm_Load”(通信参数装载)指令、“Modbus_Master”(主站通信)指令和“Modbus_Slave”(从站通信)指令。

        早期版本的Modbus RTU指令( MODBUS (V2.2))仅可通过CM1241通信模块或CB1241通信板进行Modbus RTU通信。

        新版本的 Modbus RTU指令(MODBUS(RTU) V3.0)扩展了Modbus RTU的功能,该指令除了支持CM1241通信模块、CB1241通信板,还支持 PROFINET 或 PROFIBUS 分布式 I/O 机架上的PTP通信模块实现Modbus RTU通信。

2.1 Modbus_Comm_Load 指令

        该指令用于组态RS232和RS485通信模块端口的通信参数,以便进行Modbus RTU协议通信。每个Modbus RTU通信的端口,都必须执行一次“Modbus_Comm_Load”指令来组态。各引脚含义如下:

         ①在进行Modbus RTU通信前,必须执行该指令组态模块端口通信,然后才能使用通信指令进行Modbus RTU通信。在启动OB中调用该指令或者在OB1中使用“FirstScan”调用执行一次。

        ②当“Modbus_Master”(主站通信)和“Modbus_Slave”(从站通信)指令被拖拽到用户程序时,将为其分配背景数据块,“Modbus_Comm_Load”指令的MB_DB参数将引用该背景数据块。

2.2 Modbus_Master 指令

        “Modbus_Master”指令可通过由“Modbus_Comm_Load”指令组态的端口作为Modbus RTU主站进行通信。

         ①同一串行通信接口只能作为Modbus RTU主站或从站。

        ②当同一串行通信接口使用多个“Modbus_Master”指令时,“Modbus_Master”指令必须使用同一个背景数据块,用户程序必须使用轮询方式执行指令。

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

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

相关文章

论文解读|用于从RGB-D数据进行3D物体检测的Frustum PointNets

原创 | 文 BFT机器人 01 摘要 论文研究了室内和室外场景中基于RGBD数据的3D目标检测。论文的方法不仅仅依赖于3D方案,而是利用成熟的2D对象检测器和先进的3D深度学习进行对象定位,即使是小对象也能实现高效率和高召回。 直接在原始点云中学习&#xff0…

如何让GPT自己命令自己?榨干最后一丝智能,解放双手!

1.让GPT先别说话 2.接下来,看看它学的怎么样 使用成功了!效果拔群! 3.接下来,让他回答自己生成的指令: 效果比想象的还要好!果然最懂GPT的还是它自己,生成的prompt比自己手写的prompt更加精准有…

rocketmq客户端本地日志文件过大调整配置(导致pod缓存cache过高)

现象 在使用rocketmq时,发现本地项目中文件越来越大,查找发现在/home/root/logs/rocketmqlog目录下存在大量rocketmq_client.log日志文件。 配置调整 开启slf4j日志模式,在项目启动项中增加-Drocketmq.client.logUseSlf4jtrue因为配置使用的…

Bug管理规范

目录 1.目的 2.角色和职责 3.缺陷等级定义 4.缺陷提交原则 5.缺陷流转流程 5.1创建缺陷 5.2缺陷分拣/分配 5.3研发认领缺陷 5.4.研发解决缺陷 5.5关闭缺陷 5.6缺陷激活 1.目的 项目过程中对缺陷管理的规则,明确提单规范、用例优先级的选择规则、走单流程、…

为Android构建现代应用——应用架构

选择风格(Choosing a style) 我们将依照Google在《应用架构指南》中推荐的最佳实践和架构指南来构建OrderNow的架构。 这些定义包括通过各层定义组件的一些Clean Architecture原则。 层次的定义(Definition of the layers) 在应用程序中,我们将定义以下主要层次…

【C++ 进阶】继承

一.继承的定义格式 基类又叫父类,派生类又叫子类; 二.继承方式 继承方式分为三种: 1.public继承 2.protected继承 3.private继承 基类成员与继承方式的关系共有9种,见下表: 虽然说是有9种,但其实最常用的还…

【教学类-34-07】20230726拼图(“菱形”凹凸拼图)3*4格子(中班主题《个别化拼图》偏美术)

作品展示: 背景需求 我尝试将拼图的“圆形凹凸角”变成"正方形凹凸角”,没有成功,但做出了“菱形凹凸角”。 实用性思考: 1、这种菱形凹凸角与正方形结构近似,裁剪难度中等(比圆角容易剪&#xff0…

Android Studio Giraffe 发布,快来看有什么更新吧

又双叒叕到了「激动人心」 的 Android Studio 更新,这次更新的版本是 Giraffe | 2022.3.1,本次更新的 Giraffe(长颈鹿)将 IntelliJ 平台升级到 2022.3 版本,也将 AGP 支持提高到 8.1 ,虽然最低支持 3.2&…

LED智能照明在商业照明中的应用都有哪些?SLM421A数明深力科带你一起去了解

数明深力科SLM421A系列产品是用于两通道、高精度恒流源的LED线性驱动芯片。无需功率电感,无频闪、无EMC困扰,支持高频率PWM调色调光,在LED智能照明产品运用中周边线路简单,成本低。 SLM421每路驱动仅需要从SET到GND接一个电阻即可…

fpga_pwm呼吸灯(EP4CE6F17C8)

文章目录 一、呼吸灯二、代码实现三、引脚分配 一、呼吸灯 呼吸灯是指灯光在微电脑的控制之下完成由亮到暗的逐渐变化,使用开发板上的四个led灯实现1s间隔的呼吸灯。 二、代码实现 c module pwm_led( input clk ,input rst_n ,output reg [3:0] led ); …

从安装到实战!Citespace保姆级教程!

来源:浙师教育研会 软件介绍 Citespace是一款文献梳理软件 支持从主要来源(如Web of Science,Scopus,Dimensions,CNKI,CSSCI和其他一些来源)检索的书目和引文数据。能够把文件之间的关系&…

IntelliJ IDEA流行的构建工具——Gradle

IntelliJ IDEA,是java编程语言开发的集成环境。IntelliJ在业界被公认为最好的java开发工具,尤其在智能代码助手、代码自动提示、重构、JavaEE支持、各类版本工具(git、svn等)、JUnit、CVS整合、代码分析、 创新的GUI设计等方面的功能可以说是超常的。 如…

华为数通HCIP-ISIS原理与配置

IS-IS的基本概念 isis(中间系统到中间路由协议) 链路状态路由协议、IGP、无类路由协议; IS-IS是一种链路状态路由协议,IS-IS与OSPF在许多方面非常相似:运行IS-IS协议的直连设备之间通过发送Hello报文发现彼此,然后建…

用Python实战,畅享音乐海洋,一键采集你喜爱的音乐!

前言 嗨喽,大家好呀~这里是爱看美女的茜茜呐 环境使用: Python 3.8 解释器 Pycharm 编辑器 模块使用: requests >>> pip install requests re 第三方模块安装方法: win R 输入cmd 输入安装命令 pip install 模块名 (如果你觉得安装速…

逻辑的极限

逻辑的极限,数学和沉思 发表于康托尔的天堂 当逻辑出错时会发生什么? 让我们看看为什么排除中间定律是错误的(有时),发现数学核心的基本问题,然后再最终尝试解决出了什么问题。 您还将学习如何理解-1的负根…

Nvlddmkm错误

问题描述: 使用maya或多开应用,会不定期黑屏 电脑配置如下: 黑屏时,系统错误日志如下: 处理方式: 1、更换旧版本显卡驱动或更新显卡驱动 (目前从Navid下载的都是新版本显卡驱动 &#xff…

Linux推出Debian 12.1,并进行多方面系统修复

据了解,Debian是最古老的 GNU / Linux 发行版之一,也是许多其他基于 Linux 的操作系统的基础,包括 Ubuntu、Kali、MX 和树莓派 OS 等。 此外,该操作系统以稳定性为重,不追求花哨的新功能,因此新版本的发布…

3ds Max图文教程: 创建致命的冠状病毒动画

推荐: NSDT场景编辑器助你快速搭建可二次开发的3D应用场景 1. 病毒建模 步骤 1 打开 3ds Max。 打开 3ds Max 步骤 2 在透视视口中创建一个半径为 50,线段为 20 的 GeoSphere。 创建地球 步骤 3 打开修改器列表并将置换修改器应用于地理 球。 置换…

Python数据分析实战-dataframe筛选某字段是(精确匹配)某些值的记录(附源码和实现效果)

实现功能 Python数据分析实战-data[data[].isin([])],筛选dataframe某字段是(精确匹配)某些值的记录 实现代码 import pandas as pddf {DataBase:[mysql,test,test,test,test],table:[user,student,course,sc,book]} df pd.DataFrame(df)…

SRC | 逻辑漏洞原理及实战

前言 作者简介:不知名白帽,网络安全学习者。 博客主页:不知名白帽_网络安全,CTF,内网渗透-CSDN博客 网络安全交流社区:https://bbs.csdn.net/forums/angluoanquan 目录 逻辑漏洞基础 概述 分类 URL跳转漏洞 概述 危害 漏洞…