Modbus通信协议的特点
Modbus协议是应用于电子控制器上的一种通用语言。 通过此协议,控制器之间,控制器经由网络和其他设备之间可进行通信。不同厂商生产的控制设备可以连成工业网络,进行集中控制,这已成为了一种工业标准。
该协议定义了控制器能够认识和使用的数据结构,描述了控制器请求访问其他设备的过程,回应其他设备的请求的方式,侦测错误记录的方法,同时制定了通信数据的格局和内容的公共格式。
多机通信时,Modbus协议规定每个控制器必须知道自己的设备地址,识别按照地址发来的数据并对其做出反应,包括:决定是否产生动作,产生何种动作,若需回应,反馈消息应按Modbus协议发出。
Modbus协议的整体框架和格式较为复杂庞大。Modbus协议允许在各网络体系结构内进行简单通信,每种设备都能使用该协议来启动远程操作,如下图所示,一些网关允许在集中使用Modbus协议的总线或网络之间的通信。
RTU协议帧数据
Modbus有两种通信传输方式,ASCII模式和RTU模式。ASCII模式的数据字节是7bit数据位,51单片机无法实现,且应用较少,这里只介绍RTU模式。
一条典型的RTU数据帧如下图所示:
数据帧必须作为一个连续的数据流进行传输。RTU模式规定不同数据帧之间的间隔在3.5个字节通信时间以上。可以认为RTU会将3.5个字节通信时间当做一次数据帧。
起始位和结束位:
T1-T2-T3-T4代表的时间间隔3.5个字节通信时间以上。它们的存在是为了分割开不同的数据帧。
设备地址:
每个设备都有自己的设备地址。以便与别的设备通信。当设备收到一帧数据后,程序首先判断地址是否相符。相同,才会继续解析。否则不予理会。(ps:地址0X00,是广播指令,所有设备都要执行。)
功能代码:
详情戳链接Modbus功能码一览
数据:
实现功能的数据,由功能代码赋予实际意义。例:若功能代码为0X03,即读保持寄存器,那么主机发送的数据n的组成就是:2个字节的寄存器起始地址+2个字节的寄存器数量N。
CRC校验是一种数据算法,用来校验数据对错。16位CRC校验码产生于一种特殊算法,由校验码之前数据帧所有字节一同参与。接收方收到数据帧后,也会根据相同的算法产生16位校验码。若他们相同,则表示数据正常。若数据不正常,这帧数据将被抛弃,发送方收不到回应,将做出相应处理。
上一篇:#单片机#一个小型的单片机控制系统——智能窗帘控制系统
下一篇:#51单片机#RS-485通信的功能和特点
推荐阅读
史海拾趣
AIE公司自2005年成立以来,一直致力于推动电子测试配件的安全规范标准化。公司积极与各大电子厂商、行业协会以及标准化组织展开合作,共同制定了一系列关于测试配件的性能规格和安全标准。这一举措不仅提升了AIE产品的竞争力,也促进了整个电子行业的健康发展。通过与业界的紧密合作,AIE逐渐在电子测试配件领域树立了良好的口碑。
在近年来,随着人们对环境保护意识的提高,电子行业也开始注重绿色环保和可持续发展。Connor-Winfield积极响应这一趋势,将绿色环保理念融入到产品设计和生产过程中。公司采用环保材料和节能技术,努力降低产品对环境的影响。同时,公司还积极参与各种环保活动,推动电子行业的绿色发展。
以上是关于Connor-Winfield在电子行业中的5个发展故事。这些故事虽然可能并不完全准确反映公司的实际发展历程,但从中我们可以看出,Connor-Winfield在发展过程中始终注重技术创新、品质提升、市场拓展和环保可持续发展等方面的工作,这些努力使得公司在激烈的市场竞争中保持了领先地位。
Ettinger,这个源于英国的皮具奢侈品牌,由Gerry Ettinger在1934年创立。自创立之初,Ettinger就致力于提供高品质的皮具产品,凭借其精湛的皮具制作工艺和独特的英格兰式设计风格,逐渐在市场上树立了良好的品牌形象。初期,Ettinger主要专注于手工制作皮具,通过不断提升产品质量和设计水平,赢得了消费者的青睐。
Cobham Semiconductor Solutions深知人才是企业发展的核心。因此,公司一直注重人才的引进和培养。公司积极招聘业界精英,为团队注入新的活力。同时,公司还建立了完善的培训体系,为员工提供持续的学习和发展机会。这种人才战略的实施,使得Cobham的团队素质不断提升,为公司的持续发展提供了有力保障。
在数字化转型的大背景下,CET Technology积极探索数字孪生技术在园区管理中的应用。公司提供的数字孪生与3D可视化服务,通过创建园区的虚拟实体,模拟、验证、预测和控制园区的运营状态,帮助园区实现智慧化管理、优化服务和提高生产效率。此外,CET的数字孪生服务还能监控园区内人员和车辆的通行情况,提升园区内部的交通效率,为园区的可持续发展提供了有力支持。
随着电子技术在深海钻探领域的应用不断加深,对紧固件的耐腐蚀性和可靠性提出了更高要求。1947年,克尔麦吉石油工业公司完成了历史性的32号船浅滩区油井钻探,该油井远离陆地,需要在恶劣的盐水环境中运输石油。BAND-IT公司凭借其卓越的不锈钢紧固件产品,成功满足了这一特殊需求。其不锈钢扎带和扎扣能够在高盐度、高湿度的环境下保持稳定的性能,为深海钻探的顺利进行提供了有力保障。
本开发板采用 DSP +51方案,编写好的程序可直接用51的串口下载到DSP中运行。即可以学习单片机又可以学习DSP。对于初学者可省掉买DSP仿真器的费用(不需要DSP仿真器照样学习DSP系统)。而且用户可以很方便的在此基础上从DSP+51方案过度到 DSP+ARM方 ...… 查看全部问答∨ |
原文如下: ◆電池1本時(入力電圧1.5V時) ・3.3V 最大負荷電流 約160mA=効率約81% ・5.0V 最大負荷電流 約70mA ※出力5Vでは電池2本での使用を推奨します。 ◆電池2本時(入力電圧3. ...… 查看全部问答∨ |
现在在职工作一年了,从事软件开发,经常和硬件打交道!算是一个嵌入式门口的程序员!发现在自己的能力增加到一定之后,对应用层代码的兴趣就没那么高啦。可是公司的产品很成熟,底层驱动都很稳定,不需要改动,所以平时也没有机会学到那方面知识, ...… 查看全部问答∨ |
|
今天遇到一问题,在USART中使用库提供的flag清除函数,是清除不了的,搞得中断老跳不出,弄了好久.如下:void USART1_IRQHandler(void){ if(USART_GetITStatus(USART1, USART_IT_IDLE)!=RESET) {   ...… 查看全部问答∨ |
程序运行中需要运行 NVIC_SystemReset();这个函数,一旦运行就会死机 没办法单步调试,所以问下大家问题可能出在哪里? 重新上电启动就没有问题。谢谢大家了!… 查看全部问答∨ |
1、我用FET_examples目录中FET140文件夹下,fet140_ta01.c文件组建项目。 2、在iar for msp430 环境中,用软件模拟为什么不能进入定时中断呢? 3、是不是因为没有smclk的原因?在这个环境中如何设置lfx 和x2呢?并并我修改了程序,将 ...… 查看全部问答∨ |
Warning (14130): Reduced register \"current_state[7]~reg0\" with stuck data_in port to stuck value GNDWarning (14130): Reduced register \"current_state[6]~reg0\" with stuck data_in port to stuck value GNDWarning: Converted presett ...… 查看全部问答∨ |
串口屏开发的几个技巧 使用迪文24位色(H600内核)串口屏的几个开发技巧和大家分享一下: 1. 显示HEX参数 有一条0xC108的参数显示指令,可以不用再进行烦人的HEX到ASCII转换计算和显示格式转换,比如字体大小, ...… 查看全部问答∨ |