Modbus教程

四种寄存器说明

线圈状态(coil status 输出端口 对应PLC DO(数字输出)如电磁阀,MOSFET输出

离散输入状态(input status)输入端口 对应PLC DI(数字输入) ,如拨码开关,接近开关

保持寄存器(holding Register)输出参数 对应PLC AO (模拟输出)。

 

输入寄存器(input  Register)输入参数,对应PLC AI(模拟输入)。

图1:

 

寄存器种类

寄存器PLC地址(address)

Modbus协议地址

简称

读写状态

线圈状态

00001~09999

0000~FFFF (address-1)

0X

读写

离散输入状态

10001~19999

0000~FFFF(address-10001)

1X

保持寄存器

40001~49999

0000~FFFF(address-40001)

4x

读写

输入寄存器

30001~39999

0000~FFFF(address-30001)

3X

 

注意:程序(代码中)实际使用的是0~FFFF的地址,和PLC地址的关系如上图。PLC地址开头0,1,4,3实际表明了操作的是何种寄存器。

 

Modbus报文主要由四个部分组成。设备地址,功能码,数据域,校验。

功能码

如下图:图2

功能码

名称

寄存器PLC地址

位、子操作

操作数量

01

读线圈

 见图1,下同

1或多

02

读离散输入

 

1或多

03

读保持寄存器

 

1或多

04

读输入寄存器

 

1

05

写单个线圈

 

1

06

写单个保持寄存器

 

1

15

写多个线圈

 

16

写多个保持寄存器

 

 

软件说明

下面以Modbus Poll 和Modbus Slave为例,说明Modbus协议具体内容。

下载这个两个软件,版本6.X,注册码分别是

slave
5455415451475662

master
5A5742575C5D10

 

 对于Slave

F8设置:

1.从机地址

2.设置四种寄存器的一个,配置其开始地址和地址数量。

F3连接设置,默认就好,Modbus master同理。

 点击Display ->Commnunications查看通信数据。Master相同。

对于Master

F8配置

1.从机地址

2.图2 中八种功能码中 的一种

 

3起始地址(已经给出40011对应10这样的例子)。

4数据量。

5扫描频率。

 

协议格式 

读协议

报文格式:

主===> 从

从设备地址,功能码,起始地址,寄存器数量,校验。

从===>主

从设备地址,功能码,数据域字节数,数据域,校验。

说明:起始地址和寄存器数量都是big endian (高字节在前,低字节在后),short类型。

从设备返回的数据域构成:对于位类型,会把每8个位合并成一个byte类型。

对于字类型,N个寄存器会有N*2个字节,按照高字节在前,低字节在后的顺序。

例1:01读线圈状态

slave id为34,寄存器选项为0X,设置起始地址2000,数量20,

具体数据如图所示

Master配置成

读取线圈状态:从设备ID为34,起始地址2000,数量为20的。

通信数据

下行:22 01 07 D0 00 14 3B DB

上行:22 01 03 07 03 03 CA 2D

 

例2:02读取离散输入状态

 

 

读取从设备ID 为1,起始地址为0,数量20个离散输入寄存器

通信数据:

下行:01 02 00 00 00 14 78 05

上行:01 02 03 03 03 03 C8 BF

 

例3:03读取保持寄存器

 

从设备id 50,地址60,数量3

通信数据:

下行:32 03 00 3C 00 03 C0 04

上行:32 03 06 0C 8E 00 38 00 29 49 44

 

例4:04读取输入寄存器

从设备ID 24,起始地址0,数量4

通信数据:

下行:18 04 00 00 00 04 F3 C0

上行:18 04 08 00 0C 00 2D 00 0B 00 2A CE 4A

 

写协议

 报文格式:

单个数据

主===>从:从设备ID,功能码,起始地址,变更数据,校验。

从===>主:从设备ID,功能码,起始地址,变更数据,校验。

多个数据

主===>从:从设备ID,功能码,起始地址,寄存器数量,字节数量,变更数据,校验

从===>主:从设备ID,功能码,起始地址,寄存器数量,校验

 

起始地址和寄存器数量都是2个字节。

例5:05写单个线圈

设置从设备ID 为24,寄存器地址56,在数据编辑框中写1或者0

 

通信数据:18 05 00 38 FF 00 0F FE,返回相同。

如果对线圈写0,通信数据变为18 05 00 38 00 00 4E 0E

 

例6:06写单个保持寄存器

从设备ID,为1,寄存器地址50,写一个数据52

通信数据:01 06 00 32 00 34 29 D2,返回相同。

 

例7:15写多个线圈

从设备ID为100,寄存器地址50 ,数量20个,写数据如下图

通信数据:

下行:64 0F 00 32 00 14 03 03 07 03 E2 29

上行:64 0F 00 32 00 14 FD FE

 

 例8:16写多个保持寄存器

从设备ID为48,寄存器地址100,数量为4

写入如下数据

通信数据:

下行:30 10 00 64 00 04 08 01 01 00 33 00 17 00 09 93 2B

 上行:30 10 00 64 00 04 84 34

 

 异常响应

报文格式:从设备ID,功能码,异常码,校验

返回报文将功能码最高位置为1,

异常码说明:

01 非法功能码

02 非法数据地址

03非法数据值

04从设备故障

 

 

 

参考文档:

https://wenku.baidu.com/view/d233d09feff9aef8941e0698.html

 

转载于:https://www.cnblogs.com/legion/p/9404229.html

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于计算机专业的学生而言,参加各类比赛能够带来多方面的益处,具体包括但不限于以下几点: 技能提升: 参与比赛促使学生深入学习和掌握计算机领域的专业知识与技能,如编程语言、算法设计、软件工程、网络安全等。 比赛通常涉及实际问题的解决,有助于将理论知识应用于实践,增强问题解决能力。 实践经验: 大多数比赛都要求参赛者设计并实现解决方案,这提供了宝贵的动手操作机会,有助于积累项目经验。 实践经验对于计算机专业的学生尤为重要,因为雇主往往更青睐有实际项目背景的候选人。 团队合作: 许多比赛鼓励团队协作,这有助于培养学生的团队精神、沟通技巧和领导能力。 团队合作还能促进学生之间的知识共享和思维碰撞,有助于形成更全面的解决方案。 职业发展: 获奖经历可以显著增强简历的吸引力,为求职或继续深造提供有力支持。 某些比赛可能直接与企业合作,提供实习、工作机会或奖学金,为学生的职业生涯打开更多门路。 网络拓展: 比赛是结识同行业人才的好机会,可以帮助学生建立行业联系,这对于未来的职业发展非常重要。 奖金与荣誉: 许多比赛提供奖金或奖品,这不仅能给予学生经济上的奖励,还能增强其成就感和自信心。 荣誉证书或奖状可以证明学生的成就,对个人品牌建设有积极作用。 创新与研究: 参加比赛可以激发学生的创新思维,推动科研项目的开展,有时甚至能促成学术论文的发表。 个人成长: 在准备和参加比赛的过程,学生将面临压力与挑战,这有助于培养良好的心理素质和抗压能力。 自我挑战和克服困难的经历对个人成长有着深远的影响。 综上所述,参加计算机领域的比赛对于学生来说是一个全面发展的平台,不仅可以提升专业技能,还能增强团队协作、沟通、解决问题的能力,并为未来的职业生涯奠定坚实的基础。
野火Modbus教程是关于Modbus通信协议在野火系统上的应用指南。Modbus是一种通信协议,常用于工业自动化领域,它能够实现不同设备之间的数据交互。通过学习野火Modbus教程,我们可以了解如何在野火系统上使用Modbus协议进行通信。 首先,野火Modbus教程会介绍Modbus协议的基本原理和通信方式。我们会学习Modbus协议的类型,如Modbus RTU和Modbus TCP/IP,并了解它们的工作原理和特点。同时,教程还会介绍Modbus通信的基本流程和数据格式,例如寄存器类型、功能码等。 其次,教程会介绍野火系统如何与其他设备建立Modbus通信连接。我们需要了解如何配置野火系统的串口或网络参数,以便能够与其他设备进行通信。教程还会提供相关示例代码,供我们参考和学习。 此外,野火Modbus教程还会教授如何在野火系统编写Modbus通信程序。我们会学习如何使用野火系统提供的Modbus库函数,实现数据的读取和写入操作。教程会给出具体的代码示例,帮助我们理解实际编程过程的步骤和方法。 最后,野火Modbus教程还会介绍一些常见的Modbus通信实例和案例。我们可以学习如何读取其他设备的数据,或者将野火系统作为Modbus服务器,提供数据给其他设备。这些实例和案例能够帮助我们更好地理解和掌握Modbus通信的应用方法。 总之,野火Modbus教程是一本详细介绍野火系统上Modbus通信的学习资料,通过学习教程的内容,我们可以掌握Modbus协议的基本原理和应用技巧,为工业自动化领域的数据交互提供解决方案。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值