版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 I摘 要在机械、化工、纺织等行业,随着生产规模的不断扩大,以及对生产过程集中监控的迫切要求,现场总线技术应运而生,并成为了当今测控领域研究的热点之一。Modbus 协议作为现场总线的一种,以其开发成本低,简单易用等诸多优点己被工业领域广泛接受。信号测量作为工业中重要的测量参数之一,本课题选择了信号测量作为测量的对象,并设计了基于 Modbus 协议的信号测量测控节点。本设计采用 TC1047A 传感器采集现场信号测量,由 DSP320IF2407 单片机进行AD 转换和 Modbus 协议通讯。通讯的物理层采用 RS485 接口,并增加了光电隔离、抗雷击和短路保护等功能。最后实现了单个节点和
2、 PC 机的 Modbus 协议通讯,并通过控制蜂鸣器和继电器来模拟工业现场控制。本文分别从硬件和软件上阐述了该信号测量测控节点的实现方法。关键词 信号测量测控 Modbus 协议 RS485 DSP320IF2407 IIABSTRACTWith the continuous expansion of production scale, and the urgent requirements in centralized monitoring of the production process in mechanical, chemical, textile and other indust
3、ries. Fieldbus technology came into being, and become one of hot research field of measurement and control today. As one of field bus, Modbus protocol have been widely accepted because of low development cost, easy to use and many other advantages in industry.The temperature is one of the important
4、parameters measured in industry,so it has been chosen a measurement of the object,temperature measurement and control nodes has been designed based on Modbus protocol. This design uses TC1047A sensor to collect on-site temperature,AD conversion and Modbus protocol communications can be done by DSP32
5、0IF2407 microcontroller.The physical layer of communication adopts RS485 interface, and have optical isolation, anti-lightning and short circuit protection in addition. Finally, achieved the Modbus protocol communication between a single node and the PC, and simulate industrial control by controllin
6、g the buzzer, and relay. This paper describes the implementation of temperature control node from hardware and software.KEY WORDS Temperature Monitoring Modbus protocol RS485 STC12C5A60目 录中文摘要.英文摘要.1 绪论.12 设计方案.32.1 方案概述.32.2 方案论证.32.2.1 通讯可靠性.42.2.2 信号测量检测电路选择.42.2.3 系统电源稳定性.53 硬件电路设计.63.1 最小系统电路.6
7、3.2 信号测量检测电路.63.3 电源电路.73.4 报警控制电路.93.5 通讯电路.103.6 显示电路.133.7 硬件抗干扰的设计.144 MODBUS 协议概述与应用.16 4.1 MODBUS 协议概述.164.1.1 总体描述.164.1.2 MODBUS 数据单元.174.1.3 MODBUS 通信原理.174.2 M 两种传输方式.194.2.1 ASCll 模式.204.2.2 RTU 模式.204.3 MODBUS 消息帧.214.3.1 ASCll 帧.214.3.2 RTU 帧.214.3.3 字符的连续传输.224.5 错误检测方法.234.5.1 LRC 检测.
8、244.5.2 CRC 检测.245 软件设计.255.1 AD 采集程序设计.265.2 串口中断处理程序设计.275.3 MODBUS 协议程序设计.295.4 CRC 计算及校验程序设计.296 总结.33 致谢.34参考文献.35附 录 1.36附 录 2.37 11 绪论绪论随着计算机技术和网络技术的发展,工业参数的数字采集促进了现场总线技术的发展,目前现场总线已经从当初的 4-20mA 电流信号升级为数字信号,发展成为全数字通讯,解决了现场信号远距离高速传送的问题,而且提高了抗干扰性能,增加了系统配置的灵活性,节省了硬件投资,是未来生产自动化和过程控制的发展方向。目前,较有影响的总
9、线有:Modbus,CAN,LonWorks,Profibus 等。采用RS485 标准总线技术对现场数据进行采集、管理,相对于CAN,LonWorks,Profibus 等现场总线系统而言,具有结构简易、成本低廉、硬软件支持丰富、安装方便,且与传统的 DCS 兼容,与现场仪表接口简单,系统实施容易等特点,因而 RS485 总线系统在一定时间内仍是中小控制系统的主要形式。信号测量测控模块作为一种重要的设备,在诸多工业生产过程中得到了广泛应用。自 70 年代以来,由于工业过程控制的需要,特别是微电子技术和计算机技术的迅猛发展,国外信号测量测控发展迅速,并在智能化、自适应等方面取得显著成果。在这方
10、面,以口本、美国、德国、瑞典等国的技术领先,生产出了很多商品化的、性能优异的信号测量测控器及仪器仪表,并在各行业广泛应用。目前,国外信号测量测控系统及仪表正朝着高精度、智能化、小型化等方面快速发展。基于单片机的 Modbus 协议产品一般由单片机芯片为核心和外围辅助逻辑元器件组成,它充分利用单片机的硬件资源和软件资源,同时合理配置特定的功能元器件来实现产品的功用,外围元器件一部分是用来实现通讯的串行接口元件,具有电平转换的功能,这使得 Modbus 产品具有组成工业网络的能力;另一部分是功能器件,如:数模转化器、模数转化器、LED 显示器等,能够实现很多的特定功能。由于产品的硬件构成比较简单,
11、性能比较稳定,功能比较强且造价比较低成为该产品的主要特点,在国内使用的 Modbus 产品大部分是国外产品,国内很少有独立的知识产权,这是 Modbus 产品在国内的现状。本设计实现了单节点与 PC 机的 Modbus 协议的通讯,通过单片机的功能模块进行 AD 采集,数码管显示,蜂鸣器报警和继电器控制,通过串口以 RTU 帧的格式和上位机通讯,实现节点上传信号测量 AD 值和上位机控制节点的 I/O 的功能。 2本论文第一章是绪论,概述了现场总线的发展及工业应用的发展趋势,分析了信号测量测控模块在国内应用的现状,然后对基于单片机的 Modbus 协议产品的特点进行介绍。第二章是设计方案介绍,
12、通过对比元器件和电路,论证了设计的可靠性,并概述了系统实现的功能和设计的思路,并确定了设计的方案。第三章是硬件电路的设计和实现,首先对设计方案的硬件部分进行分模块的介绍,包括硬件结构、接口设计以及元器件功能的介绍说明。第四章是 Modbus 协议的研究,总述了 Modbus 现场总线的协议结构,探索了Modbus 物理层和数据链路层的实现方式,分析了 Modbus 协议的报文结构和数据交换方法以及校验方式。第五章是节点软件设计,首先概述了软件实现的功能和主要设计模块,分别介绍了个子程序的设计,重点描述了 Modbus 通讯实现的过程。 32 设计方案设计方案 2.1 方案概述本方案采用精密信号
13、测量电压转换器 TC1047 作为采集现场环境信号测量的传感器,单片机选用性价比较高的 DSP320IF2407。外部电压基准源为 REF3325 作为2.5V 电压基准。8 位拨码开关用来设置 Modbus 协议节点的 ID 号。RS232 通讯电路实现节点和 PC 的 Modbus 通讯,并在调试时作为 ISP 烧录程序的接口。RS485 电路实现节点与节点之间的 Modbus 通讯接口。由于节点是在工业现场进行远距离布线,所以在设计 RS485 总线电路时特别增加了电路抗电磁干扰和防雷电等措施。数码管电路用来显示现场信号测量。在现场信号测量超过设定的阈值时,蜂鸣器进行报警,并且通过控制继
14、电器来控制阀门等现场的执行器。单片机系统的具体框图如图 2-1所示。图 2-1 单片机系统框图由于实际应用系统中,往往分散节点数量较多,分布较远,现场存在各种干扰,为了减少对单片机系统的电磁干扰,在单片机与继电器、单片机与 RS485 的通道上分别加了光电隔离, 这就要求各电源模块相互独立,所以在 24V 转 5V 的电源部分采用隔离稳压器以实现上述单片机供电、RS485 供电和继电器供电的完全隔离。电源系统如图 2-2 所示。 4图 2-2 电源系统框图2.2 方案论证2.2.1 通讯可靠性本设计中,通讯的物理层包括 RS232 电路和 RS485 电路两部分。RS232 主要是单节点与 P
15、C 机的通讯,其通讯速率预设低于 9600b/s,距离小于 15 米,适用于户内布线,电磁干扰较小,所以采用 DB-9 连接器及 MAX232 电压转换电路即可实现其稳定工作。RS485 电路适用于节点之间的通讯,其通讯速率预设低于 1Mb/s,距离小于 1000 米,适用于户外布线,这就存在雷击、浪涌等电磁干扰,有时还会出现 RS485 信号线与电力线短路的情况,所以在设计 RS485 电路时,要求有抗雷击、抗浪涌冲击以及过压保护等功能。在设计硬件电路时,本人查阅了相关技术文档,并经过论证,最后确定采用瞬变电压抑制二极管、自恢复保险丝以及钳位电路等来实现上述功能。具体电路见后面章节详细介绍。
16、 由于本通讯采用了 Modbus 协议及 CRC 校验,可以保证数据链路层和应用层数据传输的可靠性。2.2.2 信号测量检测电路选择 信号测量检测选择的原则:在满足设计要求的基础上,遵循设计的简单可靠,电路的性价比高。目前信号测量传感器的种类众多,通过查阅技术文档,以及结合现有元件,最初确定了三种常用的信号测量传感器:DS18B20 信号测量传感器、热敏电阻和 TC1047A 信号测量电压转换器。 5DS18B20 信号测量传感器适用于高精度、高可靠性的场合。其具有体积小,硬件开消低,抗干扰能力强,精度高等特点。但是 DS18B20 价格较贵,并在软件开发中发现 DS18B20 单总线通讯对时
17、序要求较高,占用较多 CPU 资源,造成了软件开发的难度。结合本设计对检测信号测量的精度要求不高,所以综合考虑,放弃 DS18B20 作为信号测量检测的传感器,而选择热敏电阻或 TC1047A 信号测量电压转换器。热敏电阻虽然其价格便宜,电路设计简单,但其线性度很差。TC1047A 是线性电压输出信号测量传感器,其输出电压与测得的信号测量直接成比例,TC1047A 可精确地测量从-40C 到+125C 之间的信号测量,测量精度约 2C,完全可以满足设计要求,并且通过单片机的 ADC 采集其输出端电压即可实现信号测量检测,方法简单、可靠。综上所述选用 TC1047A 作为信号测量检测传感器。2.
18、2.3 系统电源稳定性电源是一个系统动力源泉,其设计的好坏会直接影响到该设备的稳定性。结合本题实际,在仔细分析了各个模块的供电需求后,本文设计了一个完全可以满足本题要求的电源系统。为了实现光耦隔离,本系统的电源分为三部分:单片机电源、继电器电源和 RS485 电源。由于单片机为 5V 供电且其内部的 ADC 的参考电压也选择的是电源电压,故其必须比较稳定。考虑到工业上常用直流电源为 24V,并且估算系统的最大工作电流小于 1A。通过查阅相关技术文档,单片机电源最初选择了 LM7805 电路和LM22680 电路。LM7805 为线性稳压器,当有 24V 转换为 5V 时,其发热较大,无法保证单
19、片机系统长时间稳定工作,同时 ADC 进行信号测量检测的精度就会降低。LM22680 为开关稳压器,其输入电压范围为 4.5V 至 42V,可以驱动电流高达2A 的负载,具有超过 90%的高开关转换效率,发热量很小,并且其输出直流纹波和交流纹波都很小,完全可以满足单片机设计需求。综上考虑,单片机电源选用LM22680 电路。为了实现系统的光电隔离,本设计采用了 24D0505 隔离电源模块,其内部通过磁隔离来实现三个电源模块的相互独立,满足设计需求。 63 3 硬件电路硬件电路设计设计3.1 最小系统电路DSP320IF2407 系列单片机是宏晶科技生产的单时钟的单片机,是高速、低功耗、超强抗
20、干扰的新一代 8051 单片机,指令代码完全兼容传统 8051。其内部集成MAX810 专用复位电路,2 路 PWM,8 路高速 10 位 AD 转换,工作电压 5.5V 至3.3V,工作频率范围 0 至 35MHz,通用 I/O 口 44 个,复位后为准双向口/弱上拉,可设置成准双向口/弱上拉,推挽/强上拉,仅为输入/高阻,开漏每个 I/O 口驱动能力可达到 20mA,但整个芯片最大不超过 55mA,有看门狗功能,有 8 路 10 位精度ADC,转换速度可达 250K/S,内部有 60K 字节的 Flash 程序存储器。选用DSP320IF2407 单片机完全可以满足本设计需求。图 3-1
21、单片机最小系统3.2 信号测量检测电路TC1047A 是线性电压输出信号测量传感器,其输出电压与测得的信号测量直接成比例。TC1047A 可精确地测量从-40C 到+125C 之间的信号测量。TC1047 的电源电压范围为 2.7V 至 4.4V,而 TC1047A 的电源电压范围为 2.5V 至 5.5V。这些器件的典型输出电压-40C 时为 100mV,0C 时为 500mV,+25时为 7750mV,+125C 时为 1.75V。TC1047 和 TC1047A 输出电压的斜率响应为 10mV/C,允许在宽信号测量范围内对预计信号测量进行测量,TC1047 和 TC1047A 为 3引脚
22、 SOT-23B 封装。图 3-2 输出电压与信号测量的关系由于 DSP320IF2407 单片机内部 ADC 参考电压为 5V 供电电压,而单片机电源为开关电源,纹波在 30mV 左右,而 TC1047A 信号测量电压转换精度为 10mV,所以要外加电压基准源,以保证信号测量检测的精度在 3C 内。该设计采用低功耗、小封装的 2.5V 电压基准源,型号为 REF3325,经过测试,其精度在 10mV 内,满足设计需求。图3-3 信号测量检测电路3.3 电源电路为了给单片机系统提供稳定可靠的电源,本设计采用国半公司的 LM22680 系列稳压器电路。LM22680 提供了作为降压开关稳压器应有
23、的一切有源功能,具有优良的线性与负载调节特性,可以驱动电流高达 2A 的负载。其通过使用一个低导通电 8阻的 N 沟道金属氧化物半导体场效应管获得超过 90%的高效率,并提供了一种简易的整体设计手段,可将使用的外部元器件减少到最低限度。开关时钟频率由内部工作在 500kHz 固定频率的振荡器提供,也可以通过一个外部电阻进行调节,或者与高达 1 MHz 的外部时钟同步,另外也可以设置让多个稳压器自同步,工作在同一开关频率。LM22680 系列产品具有内置热关断和限流功能,而且有一个使能控制输入端,可使稳压器休眠至静态电流为 25 微安的待机状态。通过选择合适的外部软启动电容器可实现可调软启动特性
24、。LM22680 的其它主要特征如下:(1) 宽广的输入电压范围:4.5V 至 42V(2) 低等效串联阻抗的陶瓷电容器即可稳定工作(3) 输出电压可调,输出低至1.285V(4) 1.5 %反馈参考精度(5) 500 kHz的开关频率,且在200 kHz至1 MHz之间可调(6) 工作结点信号测量范围为40C至125C对于 LM22680_ADJ,输出电压应该直接连到 FB 引脚上,不需要电阻分压器就可实现 1.285V 的输出电压,其它输出电压可以利用一个电阻分压器实现。官方推荐电阻 R1 和 R2 之和的最大值不超过 10 k,以保证高输出电压的精确度。在本电源电路中采用 510 和 1
25、.5K,输出 5.06V 电压。单片机系统电源电路如图 3-4 所示:图3-4 单片机电源电路为了减少现场对单片机的电磁干扰,单片机电源、继电器电源、RS485 电源要保证完全独立,否则单片机输出通道的光电隔离就没有意义。4D0505-2W 模块属隔离宽电压输入稳压输出系列,该类产品具有效率高、精度高、稳定性能好、输出纹波低等特点。其适用于蓄电池供电及长距离供电电路,特别适用于对电压稳定度要求较高的电路和对噪声敏感的电路。24D0505-2W 模块输入电压范围 36V 至 72V, 9额定值为 48V,最大 80V,双路输出电压 5V,电流为 200mA,纹波 50mA,其输出主路电压精度为1
26、%,副路电压精度为3%,在本电路中 RS485 电路电源采用其主路输出供电,从而保证 RS485 转换电路的稳定性。图3-5 隔离电源模块电路3.4 报警控制电路该信号测量测控节点的设计不仅要对现场信号测量进行数据上传,还要对现场进行简单的报警和控制,如当信号测量达到预设的阈值时,蜂鸣器要进行报警,以提示现场人员,并通过控制继电器,实现对现场的设备进行简单的控制。图3-6 蜂鸣器报警电路蜂鸣器是一种采用直流电压供电的电子讯响器,主要分为压电式与电磁式两种类型。压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。多谐振荡器由晶体管或集成电路构成,当接通电源后,多谐振荡器起振
27、,输出 1.5kHZ 至 2.5kHZ 的音频信号,阻抗匹配器推动压电蜂鸣片发声。电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成,当接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场。振动膜片在电磁线圈和磁铁的相互作用下,周期性的振动发声。本系统的设计采用电磁式蜂鸣器,通过 10DSP320IF2407 单片机的 I/O 口进行控制,P1.3 口具有 PWM 输出功能,可以进行频率的设置,从而让蜂鸣器发出不同频率的声音,具体电路如图 3-6 所示。继电器控制电路中,在单片机输出通道中进行了光电隔离,由于继电器控制属于低速信号,所以在此采用普通的光耦 TLP521
28、即可满足设计要求。继电器采用DC5V 直流电磁式继电器,经过测量,该型号继电器线圈等效电阻约 100 欧姆左右,在电流约于 200mA 即可启动,所以在继电器线圈上串联 100 欧姆的限流电阻,目的是为防止继电器吸合时,线圈发热。二极管 1N1007 的作用是保护晶体管。当继电器吸合时,二极管截止,不影响电路工作。继电器释放时,由于继电器线圈存在电感,这时晶体管已经截止,所以会在线圈的两端产生较高的感应电压。这个电压的极性是上负下正,正端接在晶体管的发射机。当感应电压与 5V 之和大于晶体管的发射节向耐压时,晶体管就可能损坏。加入二极管后,继电器线圈产生的感应电流由二极管流过,因此不会产生很高
29、的感应电压,晶体管就得到了保护,从而保证了电路的可靠性。图3-7 继电器控制电路3.5 通讯电路为实现现场组网控制和方便上位机完成现场数据采集和各种控制任务,该设计提供了两种通信接口:RS485 接口和 RS232 接口。RS232 主要用来实现一对一的通信方式,即信号测量测控节点和上位机的通讯,而 RS485 则可用来完成节点组网通信。其中 RS232 通讯电路采用 MAX232 芯片,它是专门为电脑 的 RS232 标准串口设计的单电源电平转换芯片 ,使用+5v 单电源供电。 具体 RS232 通讯电路如图 3-8 所示。 11图3-8 RS232通讯电路由于实际应用系统中,往往分散控制单
30、元数量较多,分布较远,现场存在各种干扰,使得实际工程应用中如何保障 RS-485 总线通信的可靠性成为一个棘手的问题。在使用 RS-485 总线时,如果简单地按常规方式设计电路,在实际工程中可能有以下两个问题出现。一是通信数据收发的可靠性问题;二是在多机通信方式下,一个节点的故障如死机,往往会使得整个系统的通信框架崩溃,给故障的排查带来困难。由于应用系统中,上位机与分节点相隔较远,通信线路的总长度往往超过几百米,而分节点系统上电或复位又常常不在同一个时刻完成。如果在此时某个分节点的 RS485 芯片 DE 端电位为“1”,那么它在 RS485 总线输出将会处于发送状态,也就是占用了通信总线,这
31、样其它的分节点就无法与主机进行通信。这种情况尤其表现在某个分节点出现异常情况下如死机,会使整个系统通信崩溃。因此在电路设计时,应保证系统上电复位时每个分节点的 485 芯片的 DE 端电位为“0”。在单片机在复位期间,其 I/O 口输出高电平,此时光电隔离的输出端为低电平,485 芯片的DE 端为低电平,节点处于接收状态,故电路的接法有效地解决复位期间分节点“咬”总线的问题。除了上述总线逻辑问题需要解决外,还要对 RS485 总线输出电路的参数进行精心设置。由于要对现场信号测量情况进行实时监控及响应,通信数据的波特率往往做得较高,通常都在 4800 波特以上。限制通信波特率提高的瓶颈,并不是现
32、场的导线,而是 RS485 与单片机系统进行信号隔离的光耦电路上。在本电路设计采用了高 12速光耦,如 6N137、HCPL2530 等芯片。另外通过优化光耦电路参数的设计,可以使之能工作最佳状态。例如限流电阻和上拉电阻如果选取得较大,将会使光耦的发光管由截止进入饱和变得较慢;如果选取得过小,退出饱和也会很慢,所以这两只电阻的数值要精心选取,不同型号的光耦及驱动电路使得这两个电阻的数值略有差异,通常可以由实验来定本设计中这两个电阻为 470 和 1K。另外,在 RS485 信号输出端串联了两个 10 的电阻,这样本节点的硬件故障就不会使整个总线的通信受到影响。在应用系统工程的现场施工中,由于通
33、信载体一般是双绞线加屏蔽层,双绞线的特性阻抗为 120 左右,所以线路设计时,在 RS-485 网络传输线的始端和末端各应接 1 只 120 的匹配电阻,以减少线路上传输信号的反射。由于 RS485 芯片的特性,接收器的检测灵敏度为 200mV,即差分输入端 VAVB +200mV,输出逻辑 1;VAVB 200mV,输出逻辑 0。而 A、B 端电位差的绝对值小于 200mV时,输出为不确定。如在总线上所有发送器被禁止时,接收器输出逻辑 0,这会误认为通信帧的起始引起工作不正常。解决这个问题的办法是使 A 端电位高于 B 两端电位,这样 RXD 的电平在 485 总线不发送期间呈现唯一的高电平
34、,单片机就不会被误中断而收到乱字符。通过在 485 电路的 A、B 输出端加接上拉、下拉电阻,即可很好地解决这个问题。 由于本设计的信号测量测控节点的 RS485 传输线通常暴露于户外,因此极易因为雷击等原因引入过电压。而 RS485 收发器工作电压较低 5V 左右,其本身耐压也非常低,一旦过压引入,就会击穿损坏。因此防雷击保护成为 RS485 口设计必须要考虑的。在本设计中 RS485 电路加入了防雷击,承受浪涌冲击,过流保护的功能,可以满足户外布线。该 RS485 保护电路中主要采用了 TVS 半导体保护器件和自恢复保险丝,其中 TVS 管具有响应速度快,可靠性高的优点。由于器件正常工作时
35、 RS-485驱动电流约为 30 mA,短路时总线电流超过 300mA,所以自恢复保险丝采300mA/60V,从而可以推出 RS485 总线上的 10 欧姆的串联电阻应选用 1W。当雷击发生时,感应过电压由 RS485A 和 485B 线引入,电路中 D20 是作为初级共模防护,通常可以承受 10KV 浪涌冲击,使之后残压已经降低到 1KV 以下,然后 TVS 管D11、D10、D14 和 D15 作为二级保护进行共模或差模保护,从而电压被钳制在12V 以下,保证电路防雷击,抗浪涌的功能。 13图3-9 RS485转换电路在 RS485 收发器之后还加入了电压钳位电路,采用四个高速开关二极管1
36、N4148 反向接入 RS485 电源和 RS485 地来实现,从而把 RS485 总线输入收发器之前的电压限制在-0.3V 到 4.7V 之间。当 RS485 总线与电力线搭接短路时,RS485A和 RS485B 线上的自恢复保险丝可以提供短路保护。图3-10 RS485保护电路3.6 显示电路显示部分的任务是显示采集现场的信号测量,由于单片机的 I/O 口资源丰富,从性价比考虑,选用四位一体的共阳数码管,驱动部分采用 8550 达灵顿管,单片机对其进行动态扫描显示。具体电路如图 3-11 所示。 14图3-11 数码管显示电路3.7 硬件抗干扰的设计一个完善的硬件设计,不仅能实现预定的功能
37、,还要对外界的扰动有一定的防御能力以确保系统能够可靠安全的运行。一般来说干扰形成必须具备三个条件:干扰源、传输的通道以及对干扰问题敏感的接收电路。对于本系统来说主要的干扰因素如下:系统内部电路板布线的合理性,元器件的选择,布局等对各种芯片精度的影响;工业环境的复杂,磁场干扰,电网的波动,市电的工频干扰,可以通过电源变压器分布电容和各种电磁路径对测控系统产生影响;通过信号通道串入的外部电气信号对系统内部电气信号的影响。针对以上干扰,本系统主要采用了如下的抗干扰设计。第一,地的处理。浮地、屏蔽接地:把节点的数字地与模拟地浮空,而系统设备外壳采用屏蔽接地。浮地方式可使微机系统不受大地电流的影响,提高
38、了系统的抗干扰能力。由于强电设备采用保护接地,浮空技术切断了强电与弱电的联系,系统运行安全可靠。系统设备外壳采用屏蔽接地,可防止静电干扰和电磁感应干扰。数字地和模拟地分开布置:在线路设计中,将所有器件的数字地和模拟地分别相连,但数字地与模拟地仅在一点相连。这样可有效防止地线公共阻抗干扰。第二:电源电路抗干扰设计。为抑制电源输出纹波,在每个电源的输出端都并入一个吸收低频干扰的大容量电解电容和一个吸收高频干扰的无源电容。每个集成电路旁放置一个去耦电容,且.尽可能靠近集成电路,引线短而粗。第三,电路板设计。将电路板数字、模拟信号分区;晶振与单片机引脚尽量靠近,用地线把时钟区隔离起来,晶振外壳接地并固
39、定;双面板布线时,两面的导线宜相互垂直、斜交或弯曲走线,避兔相互平行,以减少寄生耦合;电路板布线时避免 90折线,减小高频噪声发射:电路板上每个芯片要并接一个 15104 高频电容,减小芯片对电源的影响;I/O 驱动器件,功率放大器件尽量靠近印制板的边缘,靠近接插件;在没有布置器件的地方尽量覆和地线相连的铜网,以便于散热,同时采集板和显示板外围用地线构成闭环路,来减少电位差;给继电器线圈增加续流二极管,消除断电时产生的反电动势。第四,信号通道抗干扰设计。系统内外的信号流主要是通过 RS485 通道传输,为了避免外部电气信号的干扰,在 485接口电路中采用了光藕芯片,使得内外电气信号隔离连接,信
40、号通过光路进行传递,能有效抑制尖峰脉冲和各种噪声的干扰,从而能有效地防止干扰从过程通道进入主机;信号传输线采用双绞线,使得各个小环路的电磁感应干扰相抵消,对电磁场干扰有一定的抑制作用。 164 Modbus 协议协议概述与应用概述与应用 本章是对 Modbus 协议的概述,主要介绍了:Modbus 协议结构,Modbus 数据单元,Modbus 通信网络,Modbus 通信原理,Modbus 传输方式,错误检测方法,Modbus 消息帧等。通过本章对 Modbus 协议系统分析研究,为基于 Modbus 协议的信号测量测控节点的设计提供理论依据。4.1 Modbus 协议概述4.1.1 总体描
41、述Modbus 协议是工业控制系统采用的一种通用协议。通过此协议,采集器相互之间、采集器经由网络(例如以太网)和其它设备之间可以通信,己经成为一种通用工业标准。不同厂商生产的采集设备可以通过协议连成工业网络,进行集中监控。Modbus 协议描述了一采集器请求访问其它设备的过程,如何回应来自其它设备的请求,以及怎样侦测错误并记录,制定了消息域格式和内容的公共格式。当在一个Modbus 网络上通信时,此协议决定了每个采集器必须知道自己的设备地址,根据地址识别消息的归属,决定执行何种功能。如果需要回应,采集器将生成报文并以Modbus 协议帧方式发送报文。Modbus 协议包括 ASCll、RTU、
42、TCP 等协议,标准的 Modbus 采集器使用 RS232 实现串行通讯。Modbus 的 ASCll、RTU 协议规定了消息、命令和应答的方式,数据通讯采用 Maser/Slave 方式,Master 端发出数据请求消息,Slave 端接收到正确消息后就可以发送数据到 Master 端以响应请求,Master 端也可以直接发消息修改 Slave 端的数据,实现双向读写。Modbus 协议需要对数据进行校验,串行协议中除有奇偶校验外,ASCll 模式主要采用 LRC 校验,RTU 模式主要采用 16 位 CRC 校验。Modbus 是 OSI 模型第 7 层上的应用层报文传输协议,它在连接不
43、同类型网络的设备之间提供数据的通信。目前,可以通过下列三种方式实现 Modbus 通信:(1) 以太网上的 TCP/IP(2) 各种介质如 RS232,RS422,RS485,光纤,无线等串行传输(3) 一种高速令牌传递网络 174.1.2 Modbus 数据单元Modbus 协议定义了一个与基础通信层无关的简单协议数据单元(即 PDU),特定总线或网络上的 Modbus 协议映射能够在应用数据单元(即 ADU)上引入一些附加域,通用 Monus 帧如图所示。启动 Modbus 事务处理的客户机创建ModbusPDU,其中的功能码向服务器指示将执行哪种操作,功能码后面是含有请求和响应参数的数据
44、域。在 Modbus 串行链路,地址域只含有子节点地址。合法的子节点地址为十进制 0 至 247。每个子设备被赋予 1 至 247 范围中的地址。主节点通过将子节点的地址放到报文的地址域对子节点寻址。当子节点返回应答时,它将自己的地址放到应答报文的地址域以让主节点知道哪个子节点在回答。功能码指明服务器要执行的动作。功能码后面可跟有表示含有请求和响应参数的数据域。错误检验域是对报文内容执行“冗余校验”的计算结果。根据不同的传输模式(RTU 或ASCII)使用两种不同的计算方法。图4-1 通用Modbus帧4.1.3 Modbus 通信原理Modbus 协议可以方便地在各种网络体系结构内进行通信,
45、每种设备(PLC,HMI、采集面板、变频器、运动采集、UO 设备等)都能使用 Modbus 协议来启动远程操作,同样的通信能够在串行链路和 TCP/IP 以太网网络上进行,而网关则能够实现各种使用 Modbus 协议的总线或网络之间的通信。标准的 Modbus 口是使用一个 RS232C 兼容串行接口,它定义了连接口的针脚、电缆、信号位、传输波特率、奇偶校验。控制器能直接或经由 Modem 组网。控制器通信使用主、从技术,即仅主设备能初始化传输即查询。其它从设备根据主设备查询提供的数据做出相应反应。典型的主设备:主机和可编程仪表。典型的从设备:可编程逻辑控制器。主设备可单独和从设备通信,也能以
46、广播方式和所有从设备通 18信。如果单独通信,从设备返回一消息作为回应,如果是以广播方式查询的,则从设备不作任何回应。Modbus 协议建立了主设备查询的格式:设备(或广播)地址、功能代码、所有要发送的数据、错误检测域。从设备回应消息也由 Modbus 协议构成,包括确认要行动的域、任何要返回的数据、和错误检测域。如果在消息接收过程中发生一个错误,或从设备不能执行其命令,从设备将建立一个错误消息并把它作为回应发送出去。Modbus 通信过程就是一个查询和一个回应的过程,其中查询消息中的功能代码表示被选中的从设备要执行何种功能。数据段包含了从设备要执行功能的任何附加信息。例如功能代码 03H 是
47、要求从设备读保持寄存器并返回它的内容。数据段必须包含要告之从设备的信息:从何寄存器开始读及要读的寄存器数量。错误校验为从设备提供了一种验证消息内容是否正确的方法。如果从设备产生一正常的回应,在回应消息中的功能代码是在查询消息中的功能代码的回应。数据段包括了从设备收集的数据、寄存器的值或状态。如果有错误发生,功能代码将被修改来指出回应消息是错误的,同时数据段包含了描述此错误信息的代码,错误校验是主设备确认消息传输的正误。在其它类型网络上控制器使用对等技术通信,故任何控制器都能初始化并与其它控制器的通信,这样在单独的通信过程中,控制器既可作为主设备也可作为从设备,提供的多个内部通道同时发生的传输进
48、程。当然在消息位,Modbus 消息帧仍然提供了主、从原则,尽管网络通信方法是“对等”的。如果控制器发送一个消息,它只是作为主设备并期望从设备得到回应。同样,当控制器接收到一个消息,它将建立一个从设备回应格式并返回给发送的控制器。在 Modbus 串行链路上客户机的功能由主节点提供而服务器功能由子节点实现。Modbus 串行链路协议是一个主、从协议。在同一时刻,只有一个主节点连接于总线,一个或多个子节点,最大编号为 247,连接于同一个串行总线。Modbus 通信总是由主节点发起。子节点在没有收到来自主节点的请求时,从不会发送数据。子节点之间从不会互相通信。主节点在同一时刻只会发起一个 Mod
49、bus 事务处理。主节点以两种模式对子节点发出 Modbus 请求:单播模式和广播模式。在单播模式,主节点以特定地址访问某个子节点,子节点接到并处理完请求后,子节点向主节点返回一个报文即应答。在这种模式,一个 Modbus 事务处理包含 2 19个报文:一个来自主节点的请求,一个来自子节点的应答。每个子节点必须有唯一的地址,这样才能区别于其它节点被独立的寻址。单播模式如图 4-3 所示。图4-2 单播模式在广播模式,主节点向所有的子节点发送请求,对于主节点广播的请求没有应答返回,广播请求一般用于写命令。所有设备必须接受广播模式的写功能,其中地址 0 是专门用于表示广播数据的。广播模式分别如图
50、4-4 所示。图4-3 广播模式4.2 Modbus 两种传输方式Modbus 设置两种传输模式(ASCll 或 RTU)在标准的 Modbus 网络通信。用户选择想要的模式,包括串口通信参数(波特率、校验方式等),在配置每个采集器的时候,一个 Modbus 网络上的所有设备都必须选择相同的传输模式和串口参数。所选的 ASCll 或 RTU 方式仅适用于标准 Modbus 网络,它们定义了在这些网络上连续传输的消息段的每一位,以及决定怎样将信息打包成消息域和如何校验。在其它网络上,Modbus 消息被转成与串行传输无关的帧。这 2 种传输模式与从机 PC 通信的能力是同等的。选择时应视所用 M
51、odbus 主机而定,每个 Modbus 系统只能使用一种模 20式,不允许 2 种模式混用。下面分别介绍 ASCll(美国信息交换码)模式和RTU(远程终端设备)模式。表 4-1 分别列出 ASCII 模式和 RTU 模式的特性。表4-1 ASII和RTU传输模式特性对比4.2.1 ASCll 模式在 Modbus 网络上以 ASCII(美国标准信息交换代码)模式通信时,在消息中每个字节对应的两位 16 进制数都以 ASCll 字符值发送。这种方式的主要优点是字符发送的时间间隔可达到 1 秒而不容易产生错误。例如:要发送字符“20”时,ASCll发送模式为:“00110010”+“00110
52、000”,也就是说发送“20”时,分别发送“2”的 ASCll 码和“0”的 ASCll 码。消息中 ASCll 字符采用十六进制字符 0 至 9和 A 至 F;采用 LRC(纵向冗长检测)进行检测。对 ASCII 传输模式“空闲” 态是没有发送和接收报文要处理的正常状态。每次接收到“:”字符表示新的报文的开始。如果在一个报文的接收过程中收到该字符,则当前地报文被认为不完整并被丢弃。而一个新的接收缓冲区被重新分配。检测到帧结束后,完成 LRC 计算和检验。然后,分析地址域以确定帧是否发往此设备,如果不是,则丢弃此帧。为了减少接收处理时间,地址域可以在接到就分析,而不需要等到整个帧结束。4.2.
53、2 RTU 模式在 Modbus 网络上以 RTU(远程终端单元)模式通信时,在消息中的每个字节包含两个 4 位的十六进制字符。这种方式的主要优点是:在同样的波特率下,可比 21ASCII 方式传送更多的数据。消息是 8 位二进制数,采用十六进制数字符 0 至 9 和A 至 F;采用 CRC(循环冗余检测)进行检测。对 RTU 传输模式从“初始”态到“空闲” 态转换需要 3.5 字符长定时,这保证帧间延迟“空闲” 态是没有发送和接收报文要处理的正常状态。在 RTU 模式,当没有活动的传输的时间间隔达 3.5 个字符长时,通信链路被认为在“空闲”态。当链路空闲时,在链路上检测到的任何传输的字符被
54、识别为帧起始,此刻链路变为 活动 状态。然后,当链路上没有字符传输的时间间隔达到 3.5 字符长后,被识别为帧结束。检测到帧结束后,完成 CRC 计算和检验。然后分析地址域以确定帧是否发往此设备,如果不是,则丢弃此帧。为了减少接收处理时间,地址域可以在一接到就分析,而不需要等到整个帧结束。这样,CRC 计算只需要在帧寻址到该节点(包括广播帧)时进行。4.3 Modbus 消息帧在 Modbus 两种传输模式中(ASCll 或 RTU),传输设备以将 Modbus 的消息转为有起点和终点的帧,这就允许接收的设备在消息起始处开始工作,读地址分配信息,判断哪一个设备被选中(广播方式则传给所有设备),
55、判断何时消息完成。4.3.1 ASCll 帧使用 ASCll 模式,消息以冒号“:”字符(ASCll 码 3AH)开始,以回车换行符结束(ASCll 码 ODH,OAH)。其它域可以使用的传输字符是十六进制的 O 至 9和 A 至 F。网络上的设备不断侦测“:”字符,当有一个冒号接收到时,每个设备都解码下个域(地址域)来判断是否发给自己的。消息中字符间发送的时间间隔最长不能超过 1 秒,否则接收的设备将认为传输错误。其优点是:传输的都是可见的ASCH 字符,进行调试时比较直观,LRC 校验也比较容易。一个典型 ASCII 消息帧如表 4-2 所示。表4-2 ASII帧格式 224.3.2 RT
56、U 帧使用 RTU 模式,起始位为 T1、T2、T3、T4,传输的第一个域是设备地址。可以使用的传输字符是十六进制的 0 至 9 和 A 至 F。网络设备不断侦测网络总线,当第一个地址接收到,每个设备都进行解码以判断是否发往本机的。在接收最后一个传输字符之后,至少 3.5 个字符时间的停顿标定了消息的结束,一个新的消息可在此停顿后开始。消息帧必须作为一连续的流传输。如果在帧完成之前有超过 1.5 个字符时间的停顿时间,接收设备将刷新不完整的消息并假定下一字节是一个新消息的地址域。同样,如果一个新消息在小于 1.5 个字符时间内接着前个消息开始,接收的设备将认为它是前一消息的延续。其优点:能够传
57、输的数据量比较大,同等波特率的条件下比 ASCll 模式要多一倍的信息量。Modbus 网络的通信中心是主机,所有通信都由它发出。网络可支持最多 247 个远程从设备。采用这个系统,各从机可以和中心主机交换信息而不影响各从即执行各自的工作。一个典型的 RTU 消息帧如下表 4-3 所示。 表4-3 RTU消息帧表 4-4 是 Modbus 各功能码对应的数据类型,表 4-5 是功能码与功能对应表。由表可以看出,Modbus 的功能主要是读和写,数据类型主要是位、字符型、整型、状态字和浮点型,这些协议功能通过单片机装置实现成为可能。表4-4 Modbus功能码与数据类型对应表 234.3.3 字
58、符的连续传输当消息在标准的 Modbus 系列网络传输时,每个字符或字节以如下方式发送(从左到右):最低有效位至最高有效位。当使用 ASCII 字符帧时,位的序列是:(1) 有奇偶校验位:起始位 1 2 3 4 5 6 7 奇偶位 停止位(2) 无奇偶校验位: 起始位 1 2 3 4 5 6 7 停止位 停止位 当使用RTU字符帧时,位的序列是:(1) 有奇偶校验位: 起始位 1 2 3 4 5 6 7 8 奇偶位 停止位(2) 无奇偶校验位:起始位 1 2 3 4 5 6 7 8 停止位 停止位表4-5 Modbus功能码与功能对应表 244.5 错误检测方法标准的 Modbus 串行网络采
59、用两种错误检测方法。帧检测分为 LRC 校验和 CRC校验,它们都是在消息发送前由主设备产生的,从设备在接收过程中检测每个字符和整个消息帧。用户要给主设备配置一预先定义的超时时间间隔,这个时间间隔要足够长,以使任何从设备都能作为正常反应。如果从设备测到一传输错误,消息将不会接收,也不会向主设备作出回应。4.5.1 LRC 检测使用 ASCII 模式,消息包括了基于 LRC 方法的错误检测域。LRC 域检测了消息域中除开始的冒号及结束的回车换行号外的内容。LRC 域是一个包含一个 8 位二进制值的字节。LRC 值由传输设备来计算并放到消息帧中,接收设备在接收消息的过程中计算 LRC,并将它和接收
60、到消息中 LRC 域中的值比较,如果两值不相等,说明有误。LRC 方法是将消息中的 8bit 的字节连续累加,丢弃了进位。4.5.2 CRC 检测使用 RTU 模式传送数据时,消息中包括了一个基于 CRC 错误检测域。CRC 域检测了整个消息的内容。CRC 域是两个字节,16 位的二进制值。它由传输设备按CRC 计算后加入到消息中。接收设备重新计算收到消息的 CRC,并与接收到的CRC 中的值比较,如果两值相同,则正确,如果不同,则有误。CRC 校验方法是:先调入值是全“1”的 16 位寄存器,然后将消息中连续的 8位字节各当前寄存器中的值进行处理。仅每个字节的 8 位数据位对 CRC 有效,起始位和
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2021年安徽省巢湖市公开招聘警务辅助人员辅警笔试自考题1卷含答案
- 2022年甘肃省兰州市公开招聘警务辅助人员辅警笔试自考题2卷含答案
- 2024年云南省昭通市公开招聘警务辅助人员辅警笔试自考题2卷含答案
- 2024年湖南省怀化市公开招聘警务辅助人员辅警笔试自考题2卷含答案
- 2022年广西壮族自治区崇左市公开招聘警务辅助人员辅警笔试自考题1卷含答案
- 淮北市和淮南市2025届高三第一次质量检测(一模)生物试卷(含答案解析)
- 小学生学习之星事迹材料
- 河北省秦皇岛市(2024年-2025年小学六年级语文)统编版竞赛题(上学期)试卷及答案
- 2025年激光治疗机项目立项申请报告
- 广东省潮州市(2024年-2025年小学六年级语文)统编版开学考试((上下)学期)试卷及答案
- 2024年恩施州直事业单位选聘36人历年(高频重点提升专题训练)共500题附带答案详解
- 电路分析(中国石油大学(华东))智慧树知到期末考试答案章节答案2024年中国石油大学(华东)
- 2023-2024学年湖北省黄石市黄石港区八年级(上)期末数学试卷(含解析)
- 上海市杨浦区2023-2024学年九年级上学期期末考试语文试题(解析版)
- 卫生事业管理考试题库2022
- 广东省课程思政示范高职院校申报书
- 脑梗塞老人的营养护理措施
- 电动汽车胶粘剂市场洞察报告
- 不锈钢楼梯扶手安装合同
- 开荒保洁物业管理开荒保洁服务实施方案
- GA/T 2015-2023芬太尼类药物专用智能柜通用技术规范
评论
0/150
提交评论