工业系统中常用通讯协议.ppt_第1页
工业系统中常用通讯协议.ppt_第2页
工业系统中常用通讯协议.ppt_第3页
工业系统中常用通讯协议.ppt_第4页
工业系统中常用通讯协议.ppt_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

自控系统中常用通讯MODBUS协议2009年1月15日 EIA ElectronicIndustriesAssociation美国电子工业协会TIA TelecommunicationsIndustryAssociation电信工业协会OSI OpenSystemInterconnection开放系统互联MODBUS MODICOM公司定义的通讯协议ADU ApplicationDataUnit应用数据单元PDU ProtocolDataUnit协议数据单元HDLC HighDataLinkControl高级数据链路控制IP InternetProtocol互联网协议TCP TransportControlProtocol传输控制协议CSMA CD CarrierSenseMultipleAccess CollisionDetect载波监听多路访问 冲突检测IEEE754 浮点数表示标准 名词 网络结构模型MODBUS协议串行接口SIRS485可靠性 网络结构模型NetworkModel 通讯网络结构模型OSI 一 OpenSystemInterconnect 7 应用层 ApplicationLayer 应用层确定进程之间通信的性质 以满足用户的需要 不仅要提供应用进程所需要的信息交换和远程操作 而且还要作为应用进程的用户代理 为完成一些为进行信息交换所必需的功能 应用层为操作系统或网络应用程序提供访问网络服务的接口 典型的协议 TelnetFTPHTTPSNMP6 表示层 PresentationLayer 主要用于处理两个通信系统中交换信息的表示方式 它包括数据格式交换 数据加密与解密 数据压缩与恢复等功能 5 会话层 SessionLayer 在两个节点之间建立端连接 此服务包括建立连接是以全双工还是以半双工的方式进行设置 尽管可以在层4中处理双工方式 本层管理主机之间的会话进程 负责建立 管理 终止进程之间的会话 会话层还利用在数据中插入校验点来实现数据的同步 通讯网络结构模型OSI 二 OpenSystemInterconnect 4 传输层 TransportLayer 传输层负责将上层数据分段并提供端到端的 可靠的或不可靠的传输 传输层还要处理端到端的差错控制和流量控制问题 包括全双工或半双工 流控制和错误恢复服务 本层的数据称为 数据段 传输层协议的代表包括 TCPUDPSPX等 3 网络层 NetworkLayer 本层通过寻址来建立两个节点之间的连接 它包括通过互连网络来路由和中继数据 网络层负责对子网间的数据包进行路由选择 本层的数据称为 数据包 网络层协议的代表包括 IPIPXRIPOSPF等 通讯网络结构模型OSI 三 OpenSystemInterconnect 2 数据链路层 DataLinkLayer 在此层将数据分帧 并处理流控制 指定拓扑结构 物理地址寻址 数据的成帧 流量控制 数据的检错 重发等 本层的数据称为 数据帧 数据链路层协议的代表包括 SDLC HDLC PPP STP 帧中继等 1 物理层 PhysicalLayer 物理层的主要功能是利用物理传输介质为数据链路层提供物理连接 以便透明的传送比特流 规定了激活 维持 关闭通信端点之间的机械特性 电气特性 功能特性以及过程特性 在这一层 数据的单位称为比特 bit 物理层定义的典型规范代表包括 EIA TIARS 232 EIA TIARS 449 V 35 RJ 45 MODBUS标准分类 MODBUS分为两种 串行链路上的MODBUS MODBUSonSerialLine TCP IP上的MODBUS MODBUSonTCP IP 串行链路上的MODBUSTIA EIA 232 FTIA EIA 485 A TCP IP上的MODBUSRFC793和RFC791 MODBUSonSerial与OSI层次对应关系 MODBUS协议的各个层次只采用了OSI层次模型中的三层 物理层 数据链路层和应用层 各层都有各层相应的标准规范 物理层标准 EIA TIA 485 或EIA TIA 232 数据链路层标准 MODBUSSerialLineProtocolMODBUS串行线协议应用层标准 MODBUSApplicationProtocolMODBUS应用协议 MODBUSonTCP与OSI层次对应关系 MODBUS协议的各个层次只采用了OSI层次模型中的三层 物理层 数据链路层和应用层 各层都有各层相应的标准规范 物理层 在多种物理媒体上以多种速率采用CSMA CD访问方式10Base2 10Base5 10BaseTX 10BaseFX数据链路层 IEEE802 3逻辑链路控制LLC LogicalLinkControl 子层媒体接入控制MAC MediumAccessControl 子层 应用层标准 MODBUSApplicationProtocolMODBUS应用协议 MODBUS典型网络结构 MODBUS协议 定义与PDU结构 定义 MODBUS协议是一项应用层报文传输协议 用于在通过不同类型的总线或网络所连接的设备之间的客户机 服务器通讯 MODBUS协议定义了一个与基础通讯层无关的简单协议数据单元 PDU PDU由通讯发起方负责创建 发起方在协议定义中称为客户机通讯接收方负责对PDU的应答 通讯接收方在协议定义中称为服务器一次的通讯过程称为事务处理 MODBUSonSerial PDU长度为253字节MODBUSonTCP PDU长度为249字节 无错误的事务处理过程 事务正常完成 服务器返回客户机所需的数据 错误的事务处理过程 事务异常完成 服务器返回错误代码指示错误原因 设置请求功能码的MSB为1 因此一般情况下MODBUS协议中80H以上功能码保留 功能码 FUNCTIONCODE 功能码 定义某一个PDU的功能分为公共功能码和用户功能码公共功能码 唯一的被较好定义的MODBUS组织认可的功能码用户功能码 不保证唯一的 各用户不同的 只能定义65 72和100 110范围内的功能码 常用的功能码 01H 02H 03H 04H 05H 06H 16H 23H等 常用数据类型 DataType bit 比特类型 通常用于表示开关量状态 WORD 字类型 通常表示一个数 浮点数可以采用IEEE754格式 其长度为32bits 占2个字长 在显示时 注意高低位是否需要交换 MODBUSRTU报文 PDU 格式 FormatofMODBUSRTUPDU 在不同的模式下 PDU的内容是不一样的 RTU模式 每个字节为1个16进制的数 0 FFH ASCII模式 每个字节为ASCII码 0 9 A F RTU模式下的报文 PDU 内容请求PDU正常应答PDU异常应答PDU 异常错误子码1 ErrorSubCode 异常错误子码2 ErrorSubCode2 串行接口 SerialInterface MODBUS主 从站协议基本原理 MODBUS串行链路协议与OSI模型的对应关系 MODBUS串行链路协议是一个主从协议 主节点发送请求 子节点的响应 在任何时刻 同一个网络上有且只能有一个主节点存在 有多个子节点 地址1 247 子节点在没有收到主节点的请求时 是沉默的 任何时刻 子节点之间是互相沉默的 MODBUS主 从站协议基本原理 通讯模式 主站与从站之间有两种通讯模式 单播模式 主节点指定地址的方式请求数据 子节点根据请求 向主节点返回相应的数据 在这种情况下 MODBUS通讯事务只包含2个报文 主节点请求报文和子节点应答报文 子节点在单播模式中的地址必须在网络上是唯一的 1 247 多播模式 主节点对所有子节点进行请求 子节点沉默 仅仅根据请求完成相应的自身功能 在这种情况下 MODBUS通讯事务只包含1个报文 主节点请求报文 子节点在多播模式下地址可以不用考虑 但是子节点必须能够相应地址0的请求 0在协议中定义为多播地址 MODBUS地址规则 MODBUS地址范围 地址域长度为1字节 因此可能的寻址范围0 255 MODBUS协议规定地址范围广播地址 用于向所有子节点进行请求 0 子节点地址 同一网络中唯一表示子节点的地址 1 247 保留地址 MODBUS协议保留的地址 248 255 协议规定所有子节点必须识别广播地址0主节点在网络上没有也不需要地址 MODBUS数据帧 MODBUS是应用层协议 只定义协议数据单元PDU MODBUSonSerial是数据链路层协议 需要定义目的地址和差错效验等功能 因此定义了应用数据单元ADU 根据数据链路层协议的不同 ADU的内容是不同的 MODBUS主 从站状态图 主站状态图 空闲 无等待的请求 等待应答 请求发出后的状态 应答检查 检查应答数据 错误处理 应答错误处理 处理应答 处理正常的应答数据 MODBUS主 从站状态图 从站状态图 空闲 无等待的请求 检查请求 请求发出后的状态 格式化正常应答 形成正常应答数据并发送 分单播模式和多播模式 格式化错误应答 形成错误应答数据并发送 非本节点地址 请求地址不是本节点地址 忽略请求 回到 空闲 状态 RTU模式允许字符 0 x00h 0 xFFh8位二进制位 bit 1位起始位1位奇偶校验位1 1 5位停止位奇偶校验位可选LSB MSB最大帧长 256字节 数据长度252字节 ASCII模式允许字符 0 9 A F7位数据位1位起始位1位奇偶校验位1位停止位奇偶校验位可选LSB MSB最大帧长 256字节 数据长度是RTU模式的2倍 两种MODBUS串行模式 RTU模式起始字符 3 5字符地址域 1Byte 寻址范围0 247功能码域 1Byte 0 x00h 0 xFFh数据域 NBytes 最长252Bytes效验域 2Bytes 1Word CRC方式CRC 循环冗余效验 CyclicalRedundancyChecking 结束字符 3 5字符 ASCII模式起始字符 1字符 冒号 地址域 2个字符功能码域 2个字符 00 FF char 数据域 最长252 2字符效验域 2字符 LRC方式LRC 纵向冗余效验 LongitudinalRedundancyChecking 结束字符 CR LF 回车和换行符 2字符 MODBUS报文帧 RTU模式下的数据流 RTU方式没有明显的起止符号 因此必须规定时间的要求由发送设备将Modbus报文构造为带有已知起始和结束标记的帧 这使设备可以在报文的开始接收新帧 并且知道何时报文结束 不完整的报文必须能够被检测到 错误标志必须作为结果被设置 在RTU模式 报文帧由时长至少为3 5个字符时间的空闲间隔区分 这个时间区间通常被称作t3 5 MODBUS差错控制 RTU模式循环冗余校验 CRC CyclicalRedundancyChecking 由两个8位字节组成的一个16位值CRC域检验整个报文的内容报文中附加低字节 然后是高字节 ASCII模式纵向冗余校验 LRC LongitudinalRedundancyChecking LRC为一个8位二进制值检验包括除起始 冒号 和结尾CRLF的整个ASCII报文域的内容 差错控制方法奇偶校验 偶或奇 每个字符采用帧检验 LRCorCRC 整个报文报文有无奇偶校验 均执行帧检验 物理层 电气接口 MODBUS协议默认的通讯速率 19200bps可用速率 4800bps 115Kbps每种波特率对发送方 要求其精度必须高于1 即19008 19392bps对接收方 必须允许2 误差 即18816 19584bps常用速率 9600bps Micro motion默认速率 电气物理接口 网络结构 有源接口和无源接口电气接头分为几种 主干接口 主干间接口ITr分支接口 设备与无源接口之间的接口IDv附件单元接口 设备与有源接口的接口AUI主要连接方式 RS485 RS422 RS232 电气物理接口 2线MODBUS定义 串行链路上的MODBUS依照EIA TIA 485标准实现 2 线 电气接口在这个2线 总线上 在任何时候只有一个驱动器有权发送信号第三条导线把总线上所有设备相互连接 公共地 电气物理接口 4线MODBUS定义 从对总线 TXD1 TXD0 上接收来自从站的数据 主对总线 RXD1 RXD0 上发送数据 由从站接收 电气物理接口 多点系统需求 多点系统需求无中继器情况下 最大设备数量 32台无配置中继器的RS 485MODBUS有一个主干电缆 所有的从设备沿着它直接 菊花链 或通过短的分支电缆连接起来长度 主干电缆端到端的长度必须有限制 其长度由波特率 电缆 规格 电容或特征阻抗 菊花链上的负载数 以及网络配置 2线或4线制 所决定接地 公共地电路 信号与可选电源公共地 必须直接连到保护地上 最好是整条总线只接在一点终端电阻 沿线路传播的移动信号波遇到不连续的阻抗 造成在传输线路中的反射 为了使在RS 485电缆终端的反射最小 需要在接近总线两端点处放置线路终端 机械物理接口 各种物理连接器的接线定义 电缆 连接要求 RS485 MODBUS必须使用一对平衡对线 用于D0 D1 第三根导线 用于公共地 在4线 MODBUS系统中还必须使用第二对平衡对线 用于RXD0 RXD1 对RS485 MODBUS 必须选择足够大的连线直径以达到最大长度 1000m AGW24对MODBUS数据总是满足的在RS485 MODBUS中使用第5类电缆 最大长度可达600m 在RS485 系统中使用的平衡对线 建议特征阻抗高于100欧姆 MODBUS串行链路电缆必须屏蔽 RS485可靠性 RS485Reliability RS485电气特性常见问题及处理 RS485可靠性 电气特性 ElectronicCharacteristic RS 485标准采有用平衡式发送 差分式接收的数据收发器来驱动总线 规格要求 1 接收器的输入电阻Rin 12k 2 驱动器能输出 7V的共模电压3 输入端的电容Cin 50pF4 在节点数为32个 配置了120 的终端电阻的情况下 驱动器至少还能输出电压1 5V 终端电阻的大小与所用双绞线的参数有关 5 接收器的输入灵敏度为200mV即 V V 200 V 表示信号 0 V V 200mV 表示信号 1 RS485可靠性 在工业控制领域 由于现场情况十分复杂 各个节点之间存在很高的共模电压 虽然RS 485接口采用的是差分传输方式 具有一定的抗共模干扰的能力 但当共模电压超过RS 485接收器的极限接收电压 即大于 12V或小于 7V时 接收器就再也无法正常工作了 严重时甚至会烧毁芯片和仪器设备 用一对双绞线将各个接口的A B端连接起来 而不对RS 485通信链路的信号接地 在某些情况下也可以工作 但给系统埋下了隐患 RS 485接口采用差分方式传输信号并不需要对于某个参照点来检测信号系统 只需检测两线之间的电位差就可以了 但应该注意的是收发器只有在共模电压不超出一定范围 7V至 12V 的条件下才能正常工作 当共模电压超出此范围 就会影响通信的可靠直至损坏接口 当发送器A向接收器B发送数据时 发送器A的输出共模电压为VOS 由于两个系统具有各自独立的接地系统存在着地电位差VGPD 那么接收器输入端的共模电压就会达到VCM VOS VGPD RS 485标准规定VOS 3V 但VGPD可能会有很大幅度 十几伏甚至数十伏 并可能伴有强干扰信号致使接收器共模输入VCM超出正常围 在信号线上产生干扰电流轻则影响正常通信 重则损坏设备 解决此类问题的方法是通过DC DC将系统电源和RS 485收发器的电源隔离 通过光耦将信号隔离 彻底消除共模电压的影响 实现此方案的途径可分为 光隔离器 光耦 集成芯片 用1条线或者屏蔽线将所有485设备的GND地连接这样可以避免所有设备之间存在影响通讯的电势差 RS485可靠性 常见问题一 1 信号A和B的判断 B线应该永远是在空闲状态下电压更高的那一根 A线相当于 B线相当于 可在网络空闲的状态下用电压表检测 如果B线没有比A线电压更高 那么就会存在连接问题 2 若出现系统完全瘫痪 大多因为某节点芯片的VA VB对电源击穿 使用万用表测VA VB间差模电压为零 而对地的共模电压大于3V 此时可通过测共模电压大小来排查 共模

温馨提示

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

评论

0/150

提交评论