工业网络控制技术 课件 项目9 Modbus通信应用_第1页
工业网络控制技术 课件 项目9 Modbus通信应用_第2页
工业网络控制技术 课件 项目9 Modbus通信应用_第3页
工业网络控制技术 课件 项目9 Modbus通信应用_第4页
工业网络控制技术 课件 项目9 Modbus通信应用_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

项目9Modbus通信应用张葵葵长沙民政职业技术学院电子信息工程学院本项目内容任务9.1认识Modbus应用背景任务9.2模拟Modbus协议任务9.3Modbus通信任务9.1认识Modbus应用背景任务描述9.1.1Modbus和RS-485的重要性工业领域一项重要技能就是使用Modbus协议和RS-485接口连接各种自动化设备的组网能力。现在Modbus协议是自动化工业中使用最广泛的协议,几乎所有的智能设备都支持Modbus协议。Modbus总线连接来自相同和不同制造商设备。9.1.2Modbus协议的历史Modbus协议是由MODICON(现为施耐德电气公司的一个品牌)在1979年开发的,是全球第一个真正用于工业现场的总线协议。Modbus协议用于分布式控制系统DCS,所有的传感器和执行器在整个工厂的安装分布布线,每一个传感器和执行器只需连接回他们的本地PLC,使用Modbus总线让各种ModiconPLC相互通信和共享这些传感器数据,仅安装一套通信电缆。Modbus是一个免费开放的标准。

用Modbus总线连接的DCS9.1.3对Modbus和RS-485的常见误解Modbus是一种协议。RS-485是一个电气标准。Modbus协议定义了用于交换数据的消息帧结构,而RS-485仅定义电信号电平和允许数据传输的布线。Modbus实际上可以使用许多不同类型的电气标准,如RS-232、RS-422、RS-485、无线电、微波、卫星等。Modbus没有定义其所使用的物理介质,而是定义消息帧结构。在工业现场,Modbus的大部分应用涉及RS-485。9.1.4RS-485的历史RS-232端口是一个简单的9针接口,是点对点通信应用。RS-232只能在15m内的距离内使用,而且它对电噪声源的抵抗力也不强。RS-485允许连接多个设备来创建网络,最多可连接32个设备,允许传输长达1200m。

RS-232接口

RS-485接口9.1.5ModbusRTU与ModbusTCP/IP通信区别Modbus通信协议有多种变体,ModbusRTU、ModbusASCII和ModbusTCP。工业领域一般采用ModbusRTU协议,基于串行通信的Modbus通信协议一般指ModbusRTU通信协议。Modbus/RTU协议定义了“主”设备如何轮询一个或多个“从”设备,以通过RS-232、RS-422或RS-485串行数据通信实时读取和写入数据。Modbus/TCP是Modbus/RTU的扩展,ModbusTCP/IP定义了如何在基于TC/IP的网络中编码和传输Modbus/RTU消息。9.1.5ModbusRTU与ModbusTCP/IP通信区别概念上不同。RTU通过二进制数据直接传输数据,而TCP则将二进制数据的每个字节转换为固定的两位十六进制字符串,然后将串行连接在一起,以TCP代码的形式传输数据。通信模式不同。MODBUSTCP对应的通信方式为以太网。MODBUSRTU或MODBUSASCII对应的通信方式为异步串行传输,用各种通信接口如RS-232/422/485。高速令牌传递网络相应的通信模式为ModbusPLUS。协议封装不同。与ModbusRTU协议相比,ModbusTCP协议在RTU协议中增加了消息MBAP头。由于TCP是基于可靠的连接服务,不再需要RTU协议中的CRC校验码,因此ModbusTCP协议中没有CRC校验码。ModbusRTU与ModbusTCP/IP通信区别功用不同。ModbusRTU协议可以让控制器之间以及控制器与其他设备之间通过网络进行通信。ModbusTCP协议是在传输层和网络层之间提供服务。ModbusRTU协议由于传输距离短、速度慢,应用受到限制。ModbusTCP协议则因传输距离长、传输速度快而得到广泛应用。应用不同。ModbusRTU协议主要用于电气自动化和过程控制,一般采用RS-232或RS-485通信接口。Modbus/IP协议主要用于Internet或Intranet。OSI模型不同。Modbus是OSI模型第7层之上的应用层报文传输协议,它在不同类型总线或网络设备之间提供主站设备/从站设备(或客户端/服务器)通信。ModbusRTU与ModbusTCP/IP通信区别ModbusRTU使用通过两条线连接整个网络,并通过为每个节点提供唯一的地址来与每个设备通信。ModbusRTU配RS-485接口,必须使用应用层来处理设备地址、校验和、数据包冲突。RS-485设计用于主/从拓扑,主站轮询每个从站,等待响应,避免了数据包冲突,来实现确定性行为。采用RS-485接口,主站最多可以通信32个从站,两线系统(半双工)或四线系统(全双工),最大距离为1200m。ModbusTCP使用星形网络,其中每个节点都有一条单独的电缆,称为Cat5或CAT6。它们可以使用路由器连接,给网络上每个节点唯一地址,地址可以是1到255。也可以通过互联网使用ModbusTCP。任务9.2模拟Modbus协议任务描述主站与从站之间Modbus通信9.2.1OSI模型Modbus是OSI模型第7层应用层报文传输协议,Modbus协议模型如图所示。9.2.2请求与应答处理Modbus事务处理正常过程9.2.2请求与应答处理Modbus事务处理异常过程9.2.3协议帧格式及功能码Modbus协议帧由四部分组成9.2.3协议帧格式及功能码ModbusRTU模式帧格式ModbusRTU模式的出错检查通过CRC进行。CRC是16位(2个字节)的二进制值。CRC值由发送设备计算,并添加到报文中。接收设备在报文接收过程中重新计算CRC,并和接收的实际值进行比较。进行比较的值如果不同则为出错。9.2.3协议帧格式及功能码ModbusRTU帧模式对应的功能代码9.2.4查询-响应循环模拟1.解读字节流9.2.4查询-响应循环模拟1.解读字节流错误检查9.2.4查询-响应循环模拟2.解读Modbus存储区和功能代码线圈读取、输入读取、保持寄存器读取、输入寄存器读取、单个线圈写入、单个寄存器写入。每个功能代码名都有一个与其相关联的数字。根据Modbus标准,功能代码编号是1、2、3、4、5、6。9.2.4查询-响应循环模拟

想读取地内存地址30019处的数据,属于输入寄存器范围内,因此需要功能命令输入寄存器读取功能代码的编号4。9.2.4查询-响应循环模拟主站想指定读30019寄存器中的压力值在的位置,它存在于Modbus存储区30001到40000的范围内,这是输入寄存器范围。取30019,减去30001,得到下限1,得到起始地址,保存到前两个字节,就是[0]、[18]。两个字节表示起始地址。前两个字节中每个字节内范围是0到256,如果此值超过256,则此值不起作用。9.2.4查询-响应循环模拟接下来的两个字节呢。在该示例中,想读取一个寄存器,所以接下来的两个字节是[0]、[1]。查询流中指定寄存器30019的八位数据字节部分全部表示出来,如图9所示。9.2.4查询-响应循环模拟示例中查询字节流的最后一部分,这就是错误检查。错误检查有两个字节长,这里用X和X表示。9.2.4查询-响应循环模拟3.虚拟仿真软件使用使用Modbus软件工具,来模拟前面关于Modbus两个命令查询-响应循环,进一步验证Modbus查询-响应循环的详细信息。9.2.4查询-响应循环模拟3.虚拟仿真软件使用首先在Modscan32建立主站连接,主站Modscan软件设置通信端口为COM3。9.2.4查询-响应循环模拟3.虚拟仿真软件使用设置Modscan主站通信参数9.2.4查询-响应循环模拟3.虚拟仿真软件使用Modbus主站模拟器内要设置连接到ID22,起始地址为30019,选择4输入寄存器读取,要把19放在地址栏中,读取数据长度为1,在长度栏中填入1。这样Modbus主站,启动单元ID22,地址为19,长度为1的寄存器。9.2.4查询-响应循环模拟3.虚拟仿真软件使用从站进行通信端口COM4、通信参数、站号22、地址19、功能代码4的设置,以建立与主站的通信必备条件。任务9.3Modbus通信9.3.1搭建系统新建工程PC中安装GXWorks2。在GXWorks2中新建工程,选择【系列(S)】“QCPU(Q模式)”,选择【机型】“Q03UDV”,如图所示。9.3.1搭建系统I/O设置打开导航【参数】→【PLC参数】,打开【I/O分配设置】,进行【模块添加】。打开【程序设置】→【插入】,添加扫描程序。9.3.1搭建系统开关设置单击导航栏中【智能功能模块】→【0000:QJ71C24N】→【开关设置】,出现图所示界面,根据所连接的设备要求进行通信参数设置,见通道CH2所示内容。将设置写入PLC,并重置PLC9.3.2第1个通信协议制作1)选择通信协议支持功能。选择菜单栏【工具】→【通信协议支持功能】→【串行通信模块】,出现通信协议制作界面,如图所示。9.3.2第1个通信协议制作2)新建协议。【文件】→【新建】→协议号【添加】,如图所示。9.3.2第1个通信协议制作3)第一个协议制作。从协议号中选择【制造商】→【型号】→【协议名】。常用03和16批量读取和写入,注意这里功能码是十六进制表示。本任务选择“03”,批量寄存器读取,单击【确定】按钮,如图所示。9.3.2第1个通信协议制作4)批量设置寄存器。单击鼠标右键,出现【软元件批量设置(I)】,设置D100,单击【确定】按钮,如图所示。9.3.2第1个通信协议制作5)批量读取设置。该协议号批量设置从站站号、功能代码、发送数据存储区域(起始地址和数据长度)、正常接收数据存储区域、错误接收数据存储区域等,如图所示。发送数据从站站号D100数据长度2个字节起始地址D101正常回复从站站号数据长度存储数据存放9.3.2第1个通信协议制作5)批量读取设置。该协议号批量设置从站站号、功能代码、发送数据存储区域(起始地址和数据长度)、正常接收数据存储区域、错误接收数据存储区域等,如图所示。发送数据从站站号D100数据长度2个字节起始地址D101错误回复9.3.2第1个通信协议制作总结03功能码批量读取寄存器设置,数据区批量设置的内容归纳如下:

D100:从站站号。

D101:从站起始Modbus地址。

D102:读取点数(1-125个)。

D104:接收到数据长度。

D105-D229:接收到的数据。9.3.3第2个通信协议制作1)第2个协议添加。协议号中选择【制造商】→【型号】→【协议名】。本任务选择“16”,批量寄存器写入,单击【确定】按钮,如图所示。9.3.3第2个通信协议制作2)批量设置寄存器。单击鼠标右键,出现【软元件批量设置(I)】,设置D300,单击【确定】按钮,如图所示。注意不要与前面协议号设置的寄存器范围重复或叠加。9.3.3第2个通信协议制作3)批量读取设置。该协议号批量设置从站站号、功能代码、发送数据存储区域(起始地址和数据长度)、正常接收数据存储区域、错误接收数据存储区域等,如图9-35所示。发送数据从站站号

数据长度2个字节

起始地址D301正常回复数据长度数据存放9.3.3第2个通信协议制作3)批量读取设置。该协议号批量设置从站站号、功能代码、发送数据存储区域(起始地址和数据长度)、正常接收数据存储区域、错误接收数据存储区域等,如图9-35所示。发送数据从站站号

数据长度2个字节

起始地址D301错误回复9.3.3第2个通信协议制作总结16功能码批量写入寄存器设置,数据区批量设置的内容归纳如下:

D300:从站站号。

D301:从站起始Modbus地址。

D302:写入点数(1-125个)。

D303:写入数据长度。

D304-D428:写入数据。9.3.4协议详细设置接收和发送设置9.3.5协议另存和模块写入协议制作完成后,另存,并进行【模块写入(W)】

9.3.4程序编写本项目小结Modbus是通信协议,RS-485是接口电气标准。Modbus协议可以使用RS-485、RS-232、RS-422等电气接口标准。Modbus通信协议有多种变体,其中最著名的是ModbusRTU、ModbusASCII和ModbusTCP。工业领域一般采用ModbusRTU协议,基于串行通信的Modbus通信协议一般指ModbusRTU通信协议。ModbusRTU采用主从结构,串行通信方式,使用两线(半双工)或四线(全双工)系统。ModbusTCP对应的通信方式为以太网

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论