S7-200_Modbus通信幻灯片.ppt_第1页
S7-200_Modbus通信幻灯片.ppt_第2页
S7-200_Modbus通信幻灯片.ppt_第3页
S7-200_Modbus通信幻灯片.ppt_第4页
S7-200_Modbus通信幻灯片.ppt_第5页
已阅读5页,还剩73页未读 继续免费阅读

下载本文档

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

文档简介

1、1,新!S7-200 Modbus通信,1,2,定义Modbus消息传输格式的概述Modbus主协议指令Modbus从协议指令Micro/Win函数库管理函数库安装函数库删除函数库删除编程示例功能要求,2,S7-200 Modbus通信,3。定义Modbus消息传输格式Modbus主协议指令Modbus从协议指令,3。概述,4 .Modbus通信协议是Modicon公司提出的一种消息传输协议,广泛应用于工业控制领域,已成为通用的工业标准。不同厂家提供的控制设置可以通过Modbus协议连接到通信网络中,从而实现集中控制。根据传输网络类型的不同,Modbus通信协议分为串行连接的Modbus和基于

2、TCP/IP协议的Modbus。Modbus串行链路协议只有一个主站,可以有1247个从站。Modbus通信只能从主站发起,当从站没有收到主站的请求时,它们不能发送数据或相互通信。Modbus串行链路协议的通信接口可以是RS-485接口或RS-232接口。RS-485接口可用于长距离通信,RS-232C接口只能用于短距离通信。定义,5,定义Modbus报文传输格式Modbus寻址ASCII模式RTU模式Modbus主站协议指令Modbus从站协议指令,5,概述,6,Modbus寻址ASCII模式RTU模式,6,Modbus报文传输格式,7,Modbus地址通常是5或6个字符,包括数据类型和偏移

3、量。前两个或前两个字符决定数据类型,最后四个字符根据数据类型是适当的值。Modbus主命令可以将地址映射到正确的功能,以便发送到从站。1 Modbus主站寻址Modbus主设备指令支持以下Modbus地址:(1)00001至09999是离散输出(线圈)。(2)10001至19999是离散输入(触点)。(3)30001至39999是输入寄存器(通常是模拟输入)。(4)40001到49999是保持寄存器。所有Modbus地址都基于1,表示第一个数据值从地址1开始。有效地址范围取决于从站。不同的从站将支持不同的数据类型和地址范围。Modbus寻址,8,2 Modbus从机寻址Modbus从机指令支持

4、以下地址:(1)000001至000128为实际输出,对应于Q0.0Q15.7,(2)010001至010128为实际输入,对应于I0.0I15.7. (3)030001至030032为模拟输入寄存器,对应于AIW0至AIW2。(4)040001至04XXXX是保持寄存器,对应于v区。Modbus从协议允许您限制Modbus主机可访问的输入、输出、模拟输入和保持寄存器(V区)的数量。MBUS_INIT指令的参数MaxIQ指定Modbus主站允许访问的实际输入或输出(I或q)的最大数量。MBUS_INIT指令的MaxAI参数指定Modbus主站允许访问的最大输入寄存器数(AIW)。MBUS_IN

5、IT指令的MaxHold参数指定Modbus主站允许访问的最大保持寄存器数(v存储区字)。Modbus寻址,9、Modbus地址与S7-200地址的对应关系如下表所示。Modbus寻址,10,Modbus寻址ASCII模式RTU模式,10,Modbus消息传输格式,11,Modbus通信协议有两种消息传输模式:ASCII和RTU(远程传输单元)。Modbus网络中的所有站必须采用相同的传输模式和串口参数。在ASCII模式下,使用LRC(垂直冗余校验)进行验证,其报文格式如下表所示:在ASCII模式下,报文帧中的每个8位字节被转换为两个ASCII码进行传输。消息中的每个ASCII码都由十六进制字

6、符组成,每个传输的字符包括1个起始位、7个数据位、1个奇偶校验位和1个停止位。如果没有奇偶校验位,则有两个停止位。LRC计算不包括开头的冒号字符,LRC本身和回车符换行符。Modbus报文传输格式,12,Modbus寻址模式,ASCII模式,RTU模式,12,Modbus报文传输格式,13,RTU模式报文格式如下表所示:地址:Modbus地址,1字节。功能代码:Modbus功能代码,1字节。Modbus协议支持16个功能代码,其中西门子Modbus RTU协议库支持最常用的8个代码。信息数据:n字节,格式与功能代码有关。循环冗余校验,两个字节。Modbus消息传输格式,14。下表显示了西门子M

7、odbus RTU协议库支持的八种最常用的功能代码。Modbus消息传输格式,15,RTU模式,消息中的每个8位字节被转换为两个十六进制字符,然后以字节为单位传输,并通过循环冗余校验进行验证。RTU模式的优点是在相同的波特率下,它比ASCII模式有更高的传输效率。目前,支持Modbus通信的DCS系统和过程仪表大多采用基于串行接口的Modbus RTU模式,西门子为西门子PLC的Modbus RTU通信提供了协议库。如果要在西门子PLC上实现Modbus ASCII模式通信,用户可以根据相关协议规定使用自由端口模式独立编程。Modbus报文传输格式,16,西门子专门开发了Modbus RTU通

8、信函数库,大大简化了Modbus RTU通信的开发,从而快速实现相关应用。通过Modbus RTU从指令库,S7-200可以作为Modbus RTU中的从设备集成到Modbus网络中,从而实现与Modbus主设备的通信。在最近推出的STEP7-Micro/Win SP5升级包中,西门子增加了Mobus RTU主指令库,使得S7-200 CPU可以作为Modbus主站,实现与Modbus RTU从站的通信任务。使用Modbus函数库必须注意以下四点:(1)在使用Modbus函数库之前,需要安装在Step7-Micro/Win中,STEP 7-Micro/WIN必须是V3.2或以上。(2)S7-2

9、00的中央处理器必须是固化程序的版本2.00或最好支持Modbus主协议库(中央处理器MLFB 21x-2x 23-0xb 0)。Modbus报文传输格式,17,(3)由于引入了Modbus RTU主指令库Modbus Master Port0和Modbus Master Port1用于端口0和端口1,Modbus RTU从指令库用于端口0,Modbus RTU从指令库在端口0可以实现Modbus RTU主从通信。(4)一旦中央处理器端口用于Modbus RTU主/从站协议通信,它就不能用于任何其他目的,包括与STEP 7-Micro/WIN的通信。Modbus消息传输格式,18,Modbus

10、主协议指令MBUS_CTRL指令MBUS_MSG指令Modbus从协议指令MBUS_INIT指令MBUS_SLAVE指令,18,概述,19,MBUS_CTRL指令MBUS_MSG指令,19。Modbus主站协议指令;20.西门子Modbus主站协议库包括两条指令:MBUS_CTRL指令和MBUS_MSG指令。MBUS_CTRL命令用于初始化主通信,MBUS_MSG命令(或端口1的MBUS_MSG_P1)用于启动对Modbus从站的请求并处理响应。S7-200端口0的MBUS_CTRL指令(或端口1的MBUS_CTRL_P1指令)可以初始化、监控或禁用Modbus通信。在使用MBUS_MSG命令

11、之前,必须正确执行MBUS_CTRL命令。指令完成后立即设置“完成”位,然后继续执行下一条指令。每次打开发动机输入时,都会执行发动机控制系统指令。每次扫描(包括第一次扫描)都必须调用MBUS_CTRL指令,以允许监控以MBUS_MSG指令开始的任何重要消息的过程。除非每次都调用MBUS_CTRL,否则Modbus主协议将无法正确运行。MBUS_CTRL命令,21,SiemENs en:命令使能位。模式:“模式”参数。输入“模式”值以选择通信协议。输入值1,将中央处理器端口分配给Modbus协议并启用该协议。输入值0,将中央处理器端口分配给PPI系统协议,并禁用Modbus协议。波特:“波特率”

12、参数。MBUS_CTRL指令支持1200、2400、4800、9600、19200、38400、57600或115200位/秒的波特率.奇偶校验:“奇偶校验”参数。“奇偶校验”参数设置为与Modbus从站的奇偶校验相匹配。所有设置都使用一个开始位和一个停止位。可接受的值是:0无奇偶校验,1奇数奇偶校验,2偶数奇偶校验,MBUS_CTRL指令,22,超时:“超时”参数。超时参数设置为等待从站应答的毫秒数。“超时”的值可以设置为1毫秒到32767毫秒。典型值为1000毫秒(1秒)。“超时”参数应设置得足够大,以便从站有时间响应选定的波特率。完成:当mbus _ ctrl命令成功完成时,“完成”输出

13、为1,否则为0。错误:“错误”输出代码。“错误”输出代码由反映指令执行结果的特定数字组成。“错误”输出代码的含义如下:0无错误1无效奇偶校验选择2无效波特率选择3无效超时选择4无效模式选择,MBUS_CTRL指令,23。下表显示了上述参数支持的操作数和数据类型。MBUS_CTRL指令,24,MBUS_CTRL指令,MBUS_MSG指令,24,Modbus主协议指令,25,MBUS_MSG指令(或端口1的MBUS_MSG_P1)用于启动对Modbus从站的请求并处理响应。当en输入和“第一次”输入都为1时,总线消息命令开始向Modbus从站请求。发送请求、等待答案和处理答案通常需要多次扫描。EN

14、输入必须开启,才能发送请求,并且应保持开启状态,直到“完成”位被置位。必须注意,一次只能激活一条MBUS_MSG指令。如果启用了多条MBUS_MSG指令,将处理执行的第一条MBUS_MSG指令,并且所有后续的MBUS_MSG指令都将中止,错误代码为6。MBUS_MSG指令,26,EN:指令使能位。第一:“第一次”参数。只有当有新的请求要发送时,才应该为扫描打开“第一次”参数。“第一次”输入应该由边缘检测元件(例如上升沿)开启,这将导致请求被发送一次。从站:“从站”参数。“从站”参数是Modbus从站的地址。允许的范围是0到247。地址0是广播地址,只能用于写请求。对地址0的广播请求没有响应。并

15、非所有从站都支持广播地址,S7-200 Modbus从站协议库不支持广播地址。RW:“读写”参数。读/写参数指定是读取还是写入消息。读/写参数允许以下两个值:0读和1写。MBUS_MSG指令,27,Addr:“地址”参数。“地址”参数是初始Modbus地址。允许以下范围:00001至09999是离散输出(线圈)10001至19999是离散输入(触点)30001至39999是输入寄存器40001至49999是保持寄存器,其中离散输出(线圈)和保持寄存器支持读和写请求,而离散输入(触点)和输入寄存器仅支持读请求。“地址”的具体值应与Modbus从站支持的地址一致。计数:“计数”参数。计数参数指定请

16、求中读取或写入的数据元素的数量。计数值是位数(对于位数据类型)和字数(对于字数据类型)。MBUS_MSG指令,28。根据Modbus协议,“计数”参数与Modbus地址有以下对应关系:MBUS_MSG指令将读取或写入最多120个字或1920位(240字节的数据)。“计数”的实际限制也取决于Modbus从站的限制。data tr:“data tr”参数。“数据寄存器”参数是一个间接地址指针,指向S7-200中央处理器的虚拟存储器中与读或写请求相关的数据。对于读请求,数据寄存器应该指向第一个中央处理器存储单元,用于存储从Modbus从站读取的数据。对于写请求,数据寄存器应该指向要发送到Modbus

17、从站的数据的第一个中央处理器存储位置。MBUS_MSG指令,29,完成:完成输出。发送请求和接收回复时,完成输出关闭。当回答完成或由于错误导致MBUS_MSG指令中止时,“完成”输出打开。错误:“错误”输出只有在“完成”输出打开时才有效。编号较低的错误代码(1至8)是由MBUS_MSG指令检测到的错误。这些错误代码通常表示与MBUS_MSG指令的输入参数相关的问题,或者从站接收响应时的问题。奇偶校验和循环冗余校验错误表明存在确认,但数据未被正确接收。这通常是由电气故障引起的,例如连接问题或电气噪音。高数字的错误代码(从101开始)是由Modbus从站返回的错误。这些错误表明从站不支持所请求的功能,或者Modbus从站不支持所请求的地址(或数据类型或地址范围)。MBUS_MSG指令

温馨提示

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

最新文档

评论

0/150

提交评论