




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
电气工程及其自动化课程设计2009级1班24号刘文亮1.Modbus通信协议及传输模式1.1 Modbus 通信协议简介Modbus是由Modicon(现为施耐德电气公司的一个品牌)在1979年发明的,是全球第一个真正用于工业现场的总线协议。为更好地普及和推动Modbus在基于以太网上的分布式应用,目前施耐德公司已将Modbus协议的所有权移交给IDA(Interface for Distributed Automation,分布式自动化接口)组织,并成立了Modbus-IDA组织,为Modbus今后的发展奠定了基础。在中国,Modbus已经成为国家标准GB/T19582-2008。据不完全统计:截止到2007年,Modbus的节点安装数量已经超过了1000万个。Modbus 协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。它已经成为一通用工业标准。有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。它描述了一控制器请求访问其它设备的过程,如何回应来自其它设备的请求,以及怎样侦测错误并记录。它制定了消息域格局和内容的公共格式。当在Modbus网络上通信时,此协议决定了每个控制器须要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。如果需要回应,控制器将生成反馈信息并用Modbus协议发出。在其它网络上,包含了Modbus协议的消息转换为在此网络上使用的帧或包结构。这种转换也扩展了根据具体的网络解决节地址、路由路径及错误检测的方法。1.2 传输模式控制器能设置为两种传输模式(ASCII或RTU)中的任何一种在标准的Modbus网络通信。用户选择想要的模式,包括串口通信参数(波特率、校验方式等),在配置每个控制器的时候,在一个Modbus网络上的所有设备都必须选择相同的传输模式和串口参数。所选的ASCII或RTU方式仅适用于标准的Modbus网络,它定义了在这些网络上连续传输的消息段的每一位,以及决定怎样将信息打包成消息域和如何解码。在其它网络上(象MAP和Modbus Plus)Modbus消息被转成与串行传输无关的帧。1.2.1 ASCII模式当控制器设为在Modbus网络上以ASCII(美国标准信息交换代码)模式通信,在消息中的每个8Bit字节都作为一个ASCII码(两个十六进制字符)发送。这种方式的主要优点是字符发送的时间间隔可达到1秒而不产生错误。代码系统为:十六进制,ASCII字符0.9,A.F ,消息中的每个ASCII字符都是一个十六进制字符组成。每个字节的位为:1个起始位;7个数据位,最小的有效位先发送;1个奇偶校验位,无校验则无;1个停止位(有校验时),2个Bit(无校验时)。 错误检测域为:LRC(纵向冗长检测)。 1.2.2 RTU模式 MODBUS协议在一根通讯线上使用主从应答式连接(半双工),这意味着在一根单独的通讯线上信号沿着相反的两个方向传输。首先,主计算机的信号寻址到一台唯一的终端设备(从机),然后,终端设备发出的应答信号以相反的方向传输给主机。 Modbus协议只允许在主机(PC,PLC等)和终端设备之间通讯,而不允许独立的终端设备之间的数据交换,这样各终端设备不会在它们初始化时占据通讯线路,而仅限于响应到达本机的查询信号。当控制器设为在Modbus网络上以RTU(远程终端单元)模式通信,在消息中的每个8Bit字节包含两个4Bit的十六进制字符。这种方式的主要优点是:在同样的波特率下,可比ASCII方式传送更多的数据。 主设备可单独和从设备通信,也能以广播方式和所有从设备通信。Modbus协议建立了主设备查询的格式:设备(或广播)地址、功能代码、错误检测域等。功能码(16进制)功能01读多个位03读多个寄存器05写单个位06写单个寄存器0F写多个位10写多个寄存器表一 Modbus-RTU模式功能码2. S7-200自由口和RS485串行口通信2.1 S7-200自由口通信S7-200 CPU的通信口可以设置为自由口模式。选择自由口模式后,用户程序就可以完全控制通信端口的操作,通信协议也完全受用户程序控制。S7-200 CPU上的通信口在电气上是标准的RS-485半双工串行通信口。此串行字符通信的格式可以包括:一个起始位 ;7或8位字符(数据字节) ;一个奇/偶校验位,或者没有校验位 ;一个停止位。 自由口通信速波特率可以设置为1200、2400、4800、9600、19200、38400、57600或112500。凡是符合这些格式的串行通信设备,理论上都可以和S7-200 CPU通信。自由口模式可以灵活应用。Micro/WIN的两个指令库(USS和Modbus RTU)就是使用自由口模式编程实现的。 在进行自由口通信程序调试时,可以使用PC/PPI电缆(设置到自由口通信模式)连接PC和CPU,在PC上运行串口调试软件(或者Windows的Hyper Terminal超级终端)调试自由口程序。2.2 RS485串行口通信RS-485总线接口是一种常用的串口,具有网络连接方便、抗干扰性能好、传输距离远等优点。RS-485收发器采用平衡发送和差分接收,因此具有抑制共模干扰的能力,加上收发器具有高的灵敏度,能检测到低达200mv的电压,可靠通信的传输距离可达数千米。使用RS-485总线组网,只需一对双绞线就可实现多系统联网构成分布式系统。串口是一种接口标准,它规定了接口的电气标准,简单说只是物理层的一个标准,没有规定接口插件电缆以及使用的协议,所以只要我们使用的接口插件电缆符合串口标准就可以在实际中灵活使用。RS485通信帧格式目的地址源地址长度控制帧净荷数据CRC检验1Byte1Byte1Byte2Bytes由长度字节确定,255Bytes2Bytes表二 RS485通信帧格式长度字段不包含控制字段、检验字段。校验字段使用CCITT的CRC16的校验方法。校验字段默认是加上的,只有在发送方的CPU负荷比较大时,并且能够保证本帧出现的错误不会对系统产生潜在的和现实的影响,或者保证影响在可以控制在一定范围内并且可以忍受时,才考虑取消校验字段。当接收方接收到帧的总长度减去长度字段值与帧头的长度之和,得到的结果为2时,表明发送方附带了校验和。RS485是典型的串行通讯标准。它定义了电压,阻抗等.但不对软件协议给予定义 。在发送之前,发送方需要按照双方约定的485通信帧格式将消息组帧,并按照约定数据链路传输协议组成485的数据链路帧。接下来就是如何发送数据包了。在RS-485通信中,发送过程主要采取了总线仲裁机制:RS485的特性包括: 1.RS-485的电气特性:逻辑“1”以两线间的电压差为+(26) V表示;逻辑“0”以两线间的电压差为-(26)V表示。接口信号电平比RS -232-C降低了,就不易损坏接口电路的芯片,且该电平与TTL电平兼容,可方便与TTL 电路连接。 2. RS-485的数据最高传输速率为10Mbps 3. RS-485接口是采用平衡驱动器和差分接收器的组合,抗共模干能力增强,即抗噪声干扰性好。 4. RS-485接口的最大传输距离标准值为4000英尺,实际上可达 3000米; RS-485接口在总线上是允许连接多达128个收发器,即具有多站能力,这样用户可以利用单一的RS-485接口方便地建立起设备网络。 因RS-485接口具有良好的抗噪声干扰性,长的传输距离和多站能力等上述优点就使其成为首选的串行接口。因为RS485接口组成的半双工网络 ,一般只需二根连线,所以RS485接口均采用屏蔽双绞线传输。 RS485接口连接器采用DB-9的9芯插头座,与智能终端RS485接口采用DB-9(孔) ,与键盘连接的键盘接口RS485采用DB-9(针)。串口协议只是定义了传输的电压,阻抗等,编程方式和普通的串口编程一样。5.RS-485数据信号采用差分传输方式,也称作平衡传输,它使用一对双绞线,将其中一线定义为A,另一线定义为B。通常情况下,发送驱动器A、B之间的正电平在+2+6V,是一个逻辑状态,负电平在-2V6V,是另一个逻辑状态。另有一个信号地C,在RS-485中还有一“使能”端, “使能”端是用于控制发送驱动器与传输线的切断与连接。当“使能”端起作用时,发送驱动器处于高阻状态,称作“第三态”,即它是有别于逻辑“1”与“0”的第三态。3. S7-200实现对电机监控器电能采集3.1 硬件设备通信连接:图一 硬件设备通信连接3.2 软件编程设计:安装s7-200通讯USB模块驱动CP210x(将电脑的USB接口模拟成串行口(通常是COM3,此处可右击我的电脑查看硬件设置),接通电脑与s7-200通讯。安装s7-200 ModBus通讯库(Toolbox_V32-STEP 7-Micro WIN 32 Instruction Library文件)。如果在自己的电脑中已经安装了有通讯库的话,那么这一安装步骤可以省略。打开s7-200程序,选择左下“库”,如图:由于本次是采集电表数据,PLC作为主站,电表作为从站,PLC对电表只做读取操作,且PLC接入的是P1串口,因此选择Modbus Master Port1。如图编写程序:网络1:MBUS_CTRL_P1初始化PLC的Modbus通讯图二 MBUS_CTRL_P1初始化PLC的Modbus通讯网络2、3:实现PLC对电表1、2循环间隔读取数据,每隔200ms读取一个电表数据(注:各个电表不可实现同时读取数据)图三 PLC每隔200ms对电表1、2循环读数网络4、5:计数为0时读取电表1(此处地址为3),将所得数据储存到VB100起(之后的数据空间);计数为1时读取电表2(此处地址为4),将所得数据储存到VB200起(之后的数据空间)。图四 计数为0、1时分别读取电表1、2的数据随后要进行编译,保存,下载到PLC中进行状态表监控。4. Modbus协议库:MBUS_CTRL和MBUS_MSG 指令4.1 MBUS_CTRL指令图五 MBUS_CTRL 指令MBUS_CTRL 指令用于初始化主站通信,MBUS_MSG 指令(或用于端口1的MBUS_MSG_P1)用于启动对Modbus从站的请求并处理应答。MBUS_CTRL 指令用于S7-200 端口0的 MBUS_CTRL 指令(或用于端口1的 MBUS_CTRL_P1 指令)可初始化、监视或禁用 Modbus 通讯。在使用 MBUS_MSG 指令之前,必须正确执行 MBUS_CTRL 指令。指令完成后立即设定“完成”位,才能继续执行下一条指令。MBUS_CTRL 指令在每次扫描且EN输入打开时执行。MBUS_CTRL指令必须在每次扫描时(包括首次扫描)被调用,以允许监视随MBUS_MSG 指令启动的任何突出消息的进程。除非每次调用MBUS_CTRL,否则Modbus 主设备协议将不能正确运行。 EN:指令使能位。Mode:“模式”参数。“模式”输入数值选择通讯协议。输入值1将CPU端口分配给Modbus协议并启用该协议。输入值0将CPU端口分配给PPI系统协议,并禁用Modbus协议。Baud:“波特率”参数。MBUS_CTRL指令支持的波特率为1200、2400、4800、9600、19200、38400、57600或115200bit/s。Parity:“奇偶校验”参数。“奇偶校验”参数被设为与Modbus从站奇偶校验相匹配。所有设置使用一个起始位和一个停止位。可接受的数值为:0无奇偶校验1奇校验2偶校验Timeout:“超时”参数。“超时”参数设为等待来自从站应答的毫秒时间数。“超时”数值可以设置的范围为1毫秒到32767毫秒。典型值是1000毫秒(1秒)。“超时”参数应该设置的足够大,以便从站有时间对所选的波特率作出应答。Done:MBUS_CTRL指令成功完成时,“完成”输出为1,否则为0。Error:“错误”输出代码。“错误”输出代码由反应执行该指令的结果的特定数字构成。“错误”输出代码的含义如下:0无错误1奇偶校验选择无效2波特率选择无效3超时选择无效4.2 MBUS_MSG 指令图六 MBUS_MSG 指令MBUS_MSG 指令(或用于端口1的 MBUS_MSG_P1 )用于启动对Modbus从站的请求并处理应答。当 EN 输入和“首次”输入都为1时,BUS_MSG 指令启动对 Modbus 从站的请求。发送请求、等待应答、并处理应答通常需要多次扫描。EN输入必须打开以启用请求的发送,并应该保持打开直到“完成”位被置位。必须注意的是,一次只能激活一条 MBUS_MSG 指令。如果启用了多条 MBUS_MSG 指令,则将处理所执行的第一条 MBUS_MSG 指令,之后的所有 MBUS_MSG 指令将中止并产生错误代码6。 EN:指令使能位。First:“首次”参数。“首次”参数应该在有新请求要发送时才打开以进行一次扫描。“首次”输入应当通过一个边沿检测元素(例如上升沿)打开,这将导致请求被传送一次。Slave:“从站”参数。“从站”参数是Modbus从站的地址。允许的范围是0到247。地址0是广播地址,只能用于写请求。不存在对地址0的广播请求的应答。并非所有的从站会支持广播地址,S7-200 Modbus 从站协议库不支持广播地址。RW:“读写”参数。“读写”参数指定是否要读取或写入该消息。“读写”参数允许使用下列两个值:0读参数1写参数Addr:“地址”参数。“地址”参数是起始的Modbus 地址。允许使用下列取值范围:00001至09999是离散输出(线圈)10001至19999是离散输入(触点)30001至39999是输入寄存器40001至49999是保持寄存器其中离散输出(线圈)和保持寄存器支持读取和写入请求,而离散输入(触点)和输入寄存器仅支持读取请求。“地址”的具体值应与Modbus从站支持的地址一致。Count:“计数”参数。“计数”参数指定在该请求中读取或写入的数据元素的数目。“计数”数值是位数(对于位数据类型)和字数(对于字数据类型)。根据Modbus协议,“计数”参数与 Modbus 地址存在以下对应关系:表三 “计数”参数与 Modbus 地址对应关系MBUS_MSG 指令将读取或写入最大120个字或1920个位(240字节的数据)。“计数”的实际限值还取决于 Modbus 从站中的限制。DataPtr:“DataPtr” 参数。“DataPtr” 参数是指向S7-200 CPU 的 V 存储器中与读取或写入请求相关的数据的间接地址指针。对于读取请求, DataPtr 应指向用于存储从 Modbus 从站读取的数据的第一个CPU存储器位置。对于写入请求,DataPtr应指向要发送到Modbus从站的数据的第一个CPU存储器位置。Done:完成输出。完成输出在发送请求
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 旅文中游化国25课件
- 2025四川泸州老窖股份有限公司招聘18人考试参考试题及答案解析
- 邮政速递业务知识培训
- 2025年甘肃省平凉市崇信县黄寨镇招聘大学生村文书备考练习题库及答案解析
- 邮政禁毒知识培训会课件
- 2025重庆市铜梁区侣俸镇人民政府公益性岗位招聘4人备考练习题库及答案解析
- 2025年高性能航空航天燃油产品研发与全球采购合作协议
- 税务咨询行业技术规范
- 民兵训练考核题库及答案
- 2025年航空航天复合材料研发与应用加工合作协议
- 《炼铁高炉及其生产流程》课件
- 电气火灾消防安全教育
- 四川省2024年高等职业教育单独招生考试中职类语文试题及答案
- 木屑制粒机安全操作规程
- 湖南文艺出版社小学四年级上册全册音乐教案及计划
- 社区书记文明城市创建表态发言范文(五篇)
- 检维修管理制度
- 服务业绿色低碳发展
- 风电基础劳务分包合同(2篇)
- 房屋建筑工程 危险性较大分部分项工程巡检记录表
- 4MWh储能系统技术方案
评论
0/150
提交评论