ABB产品的Modbus 协议应用_第1页
ABB产品的Modbus 协议应用_第2页
ABB产品的Modbus 协议应用_第3页
ABB产品的Modbus 协议应用_第4页
ABB产品的Modbus 协议应用_第5页
已阅读5页,还剩65页未读 继续免费阅读

下载本文档

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

文档简介

ABB产品的Modbus协议应用ModbusModbus协议是MODICOM公司开发的一个为很多厂商支持的开放规约,是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络(常用的通讯网络有串行总线和以太网)进行通信的。它描述了一控制器请求访问其它设备的过程,如果回应来自其它设备的请求,以及怎样侦测错误并记录。它制定了消息域格局和内容的公共格式。串行通讯标准RS-232、RS-422与RS-485都是串行数据接口标准,最初都是由电子工业协会(EIA)制订并发布的,RS-232在1962年发布,命名为EIA-232-E,作为工业标准,以保证不同厂家产品之间的兼容。RS-422由RS-232发展而来RS-422定义了一种平衡通信接口,将传输速率提高到10Mb/s,传输距离延长到4000英尺(速率低于100kb/s时),并允许在一条平衡总线上连接最多10个接收器。RS-422是一种单机发送、多机接收的单向、平衡传输规范,被命名为TIA/EIA-422-A标准。EIA于1983年在RS-422基础上制定了RS-485标准,增加了多点、双向通信能力,即允许多个发送器连接到同一条总线上,同时增加了发送器的驱动能力和冲突保护特性,扩展了总线共模范围,后命名为TIA/EIA-485-A标准。由于EIA提出的建议标准都是以“RS”作为前缀,所以在通讯工业领域,仍然习惯将上述标准以RS作前缀称谓。RS232、RS422、RS485接口标准RS-232-C是美国电子工业协会EIA(ElectronicIndustryAssociation)制定的一种串行物理接口标准。RS-232-C总线标准设有25条信号线,常用9针口。对于一般双工通信,仅需一条发送线、一条接收线及一条地线。通讯距离受电缆电容及共地噪声的影响最多15米。RS-232是为点对点(即只用一对收、发设备)通讯而设计的,其驱动器负载为3~7kΩ。接线原则:接收数据针脚(或线)与发送数据针脚(或线)相连,彼些交叉,信号地对应相接。接线管脚图RS422与RS485RS-422是一种单机发送、多机接收的单向、平衡传输规范,被命名为TIA/EIA-422-A标准,是RS-232的改进。EIA又于1983年在RS-422基础上制定了RS-485标准,增加了多点、双向通信能力,即允许多个发送器连接到同一条总线上,即TIA/EIA-485-A标准。RS422与RS485数据信号采用差分传输方式,也称作平衡传输,它使用一对双绞线,将其中一线定义为A,另一线定义为BRS485两线制接法RS-422与RS-485的网络安装注意要点RS-422可支持10个节点,RS-485支持32个节点,因此多节点构成网络。网络拓扑一般采用终端匹配的总线型结构,不支持环形或星形网络。在构建网络时,应注意如下几点:1.采用一条双绞线电缆作总线,将各个节点串接起来,从总线到每个节点的引出线长度应尽量短,以便使引出线中的反射信号对总线信号的影响最低。2.应注意总线特性阻抗的连续性,在阻抗不连续点就会发生信号的反射。下列几种情况易产生这种不连续性:总线的不同区段采用了不同电缆,或某一段总线上有过多收发器紧靠在一起安装,再者是过长的分支线引出到总线。RS-422与RS-485传输线上匹配电阻对RS-422与RS-485总线网络一般要使用终接电阻进行匹配。但在短距离与低速率下可以不用考虑终端匹配。匹配原则:当信号的转换时间(上升或下降时间)超过电信号沿总线单向传输所需时间的3倍以上时就可以不加匹配。实际应用:RS-422在总线电缆的远端并接电阻,RS-485则应在总线电缆的开始和末端都需并接终接电阻。终接电阻一般在RS-422网络中取100Ω,在RS-485网络中取120Ω。比较省电的匹配方式利用一只电容C隔断直流成分可以节省大部分功率。但电容C的取值是个难点,需要在功耗和匹配质量间进行折衷。利用二极管的钳位作用能迅速削弱反射信号,达到改善信号质量的目的RS-422与RS-485的接地问题很多情况下,连接RS-422、RS-485通信链路时只是简单地用一对双绞线将各个接口的“A”、“B”端连接起来。而忽略了信号地的连接,这种连接方法在许多场合是能正常工作的,但却埋下了隐患。对整个RS-422或RS-485网络,必须有一条低阻的信号地将两个接口的工作地连接起来,使共模干扰电压被短路。这条信号地可以是额外的一条线(非屏蔽双绞线),或者是屏蔽双绞线的屏蔽层。这是最通常的接地方法。一在ModBus网络上传输标准的ModBus口是使用RS-232C兼容串行接口,它定义了连接口的针脚、电缆、信号位、传输波特率、奇偶校验。通信使用主—从技术,即仅一设备(主设备)能初始化传输(查询)。其它设备(从设备)根据主设备查询提供的数据作出相应反应。从设备回应消息也由Modbus协议构成,包括确认要行动的域、任何要返回的数据、和一错误检测域。如果在消息接收过程中发生一错误,或从设备不能执行其命令,从设备将建立一错误消息并把它作为回应发送出去。二在其它类型网络上传输在其它网络上,控制器使用对等技术通信,故任何控制都能初始和其它控制器的通信。这样在单独的通信过程中,控制器既可作为主设备也可作为从设备。提供的多个内部通道可允许同时发生的传输进程。在消息位,Modbus协议仍提供了主—从原则,尽管网络通信方法是“对等”。如果一控制器发送一消息,它只是作为主设备,并期望从从设备得到回应。同样,当控制器接收到一消息,它将建立一从设备回应格式并返回给发送的控制器三查询—回应周期四两种传输方式所选的ASCII或RTU方式仅适用于标准的Modbus网络,它定义了在这些网连续传输的消息段的每一位,以及决定怎样将信息打包成消息域和如何解码。其它网络上(象TCP和ModbusPlus)Modbus消息被转成与串行传输无关的帧。五RTU模式当控制器设为在Modbus网络上以RTU(远程终端单元)模式通信,在消息中的每个8Bit字节包含两个4Bit的十六进制字符。代码系统:a.8位二进制,十六进制数0...9,A...F;b.消息中的每个8位域都是一个字节,两个十六进制字符组成;每个字节的位:a.1个起始位;b.8个数据位,最小的有效位先发送;c.1个奇偶校验位,无校验则无;d.1个停止位(有校验时),2个Bit(无校验时);错误检测域:CRC(循环冗长检测);典型ModbusRTU帧结构地址域包含8Bit,地址范围是1...247(十进制)主设备通过将要联络的从设备的地址放入消息中的地址域来选通从设备。当从设备发送回应消息时,它把自己的地址放入回应的地址域中,以便主设备知道是哪一个设备作出回应功能代码域包含了8Bits,范围是十进制的1...255。消息从主设备发往从设备时,功能代码域将告之从设备需要执行哪些行为。从设备回应时,它使用功能代码域来指示是正常回应(无误)还是有某种错误发生(称作异议回应)。数据域是由两个十六进制数集合构成的,范围00...FF,从主设备发给从设备消息的数据域包含附加的信息:从设备必须用于进行执行由功能代码所定义的所为。这包括了象不连续的寄存器地址,要处理项的数目,域中实际数据字节数。如果主设备需要从设备读取一组保持寄存器(功能代码03),数据域指定了起始寄存器以及要读的寄存器数量。如果主设备写一组从设备的寄存器(功能代码10十六进制),数据域则指明了要写的起始寄存器以及要写的寄存器数量,数据域的数据字节数,要写入寄存器的数据。错误检测域的内容是通过对消息内容进行循环冗长检测方法得出的。CRC域附加在消息的最后,添加时先是低字节然后是高字节。ModbusRTU帧传输过程传输的第一个域是设备地址。可以使用的传输字符是十六进制的0...9,A...F。网络设备不断侦测网络总线,包括停顿间隔时间内。当第一个域(地址域)接收到,每个设备都进行解码以判断是否发往自己的。在最后一个传输字符之后,一个至少3.5个字符时间的停顿标定了消息的结束。一个新的消息可在此停顿后开始。整个消息帧必须作为一连续的流转输。如果在帧完成之前有超过1.5个字符时间的停顿时间,接收设备将刷新不完整的消息并假定下一字节是一个新消息的地址域。同样地,如果一个新消息在小于3.5个字符时间内接着前个消息开始,接收的设备将认为它是前一消息的延续。这将导致一个错误,因为在最后的CRC域的值不可能是正确的。RTU字符帧传输时位的序列是:有奇偶校验无奇偶校验错误检测方法标准的Modbus串行网络采用两种错误检测方法。奇偶校验对每个字符都可用例如RTU字符帧中包含以下8个数据位:11000101整个“1”的数目是4个。如果便用了偶校验,帧的奇偶校验位将是0,便得整个“1”的个数仍是4个。如果便用了奇校验,帧的奇偶校验位将是1,便得整个“1”的个数是5个。CRC域检测了整个消息的内容。CRC域是两个字节,包含一16位的二进制值。它由传输设备计算后加入到消息中。接收设备重新计算收到消息的CRC,并与接收到的CRC域中的值比较,如果两值不同,则有误。计算CRC码的步骤1---预置16位寄存器为十六进制FFFF(即全为1)。称此寄存器为CRC寄存器2---把第一个8位数据与16位CRC寄存器的低位相异或,把结果放于CRC寄存器;3---把寄存器的内容右移一位(朝低位),用0填补最高位,检查最低位;4---如果最低位为0:重复第3步(再次移位);如果最低位为1:CRC寄存器与多项式A001(1010000000000001)进行异或;5---重复步骤3和4,直到右移8次,这样整个8位数据全部进行了处理6---重复步骤2到步骤5,进行下一个8位数据的处理7---最后得到的CRC寄存器即为CRC码ACS550内置标准Modbus的连接RS485标准传输速率:1.2-76.8kbit/sACS550–Modbus参数设置98.02STDModbus:激活标准ModbusGroup53Modbus通讯设置53.01EFBPROTOCOLID(EFB辨识)现场总线协议和程序版本 xx=协议ID,YY=程序版本。53.02EFBSTATIONID(EFB站号)53.03EFBBAUDRATE(EFB波特率)53.04EFBPARITY(EFB校验)

总线中所有站点的奇偶校验一致0=8N1–8位,无校验,一个停止位。1=8N2–8位,无校验,两个停止位。2=8E1–8位,偶校验,一个停止位。3=8O1–8位,奇校验,一个停止位。53.05EFBCTRLPROFILE

(EFB控制通讯配置文件)0=ABBDRVLIM–控制字/状态字的操作符合ABB传动协议,与ACS400相同。1=DCUPROFILE–控制字/状态字的操作符合32位DCU协议。2=ABBDRVFULL–控制字/状态字的操作符合ABB传动协议,与ACS600/800相同。53.06EFBOKMESSAGES(EFB好信息)53.07EFBCRCERRORS(EFBCRC错误)53.08EFBUARTERRORS(EFBUART错误)53.09EFBSTATUS(EFB状态)0=IDLE(空闲)–EFB协议已配置,但没有接收到任何信息。1=EXEC.INIT(初始化)–EFB正在初始化。2=TIMEOUT(超时)–网络主机和EFB通讯中出现超时故障。3=CONFIGERROR(配置出错)–EFB配置出错。4=OFF-LINE(离线)–EFB离线。5=ON-LINE(在线)–EFB在线。6=RESET(复位)–EFB正在进行硬件复位。7=LISTENONLY(只接收状态)–EFB在只接收状态。ACS550–Modbus参数设置ACS550–Modbus参数设置53.10~53.17定义映射到Modbus保持寄存器40005~40012的参数的地址(XXYY,XX=参数组号,YY=参数在组中的序号)53.18保存最近的异常码53.19ABBDrives配置文件的控制字53.20ABBDrives配置文件的状态字53组参数改变后需要重新上电激活ACS550–Modbus寻址4xxxx保持寄存器映射40001~40099映射到传动控制和实际值Ps:40001~40004为固定映射,无需连接ACS550–Modbus寻址ACS550–Modbus异常码40101~49999映射到传动参数0101~9999。如果寄存器的地址不对应传动参数,那么该寄存器地址无效。如果试图对参数地址以外的寄存器进行读写,那么Modbus接口会向控制器返回一个异常码。Modbus通讯连接ACS550设置AC800M配置AC800M硬件配置端口选择:COM3总线参数配置

主站参数配置载入MODBUS通讯库通讯功能块说明模块名称参数配置举例通讯例程ACS510–现场总线控制EFB内置现场总线(X1:28~X1:32)StandardModbusFBA外置现场总线(R-系列现场总线适配器)Profibus(RPBA-01)DeviceNet(RDNA-01)ControlNet(RCNA-01)LonWorks(RLON-01CANOpen(RCAN-01)ACS510内置现场总线-标准ModbusACS510–Modbus总线连接ACS510内置标准Modbus的连接推荐电缆Belden9842–波阻抗为120Ω的双绞双屏蔽线用一对屏蔽双绞线连接RS485链路,A(-)/B(+)另一对双绞线中的一根导线接到逻辑地(端子31)不要将RS485网络在任何点直接接地。使用网络中设备上的接地端子将各设备接地任何一个接地导线都不应该构成一个环路,并且所有设备应该接到一个公共地上ACS510–Modbus总线连接将RS485通讯链路接入一个链式总线中,无支路为了减小网络中的干扰,在网络两端用120Ω的电阻来作为RS485网络的终端电阻。使用DIP开关来连接或断开终端电阻。将电缆的屏蔽层接到传动。一个ACS510串口的输入和输出电缆一根的屏蔽层接到端子28上,另一根的屏蔽层接到端子32上。不要将输入和输出电缆的屏蔽层接到同一个端子上,接到同一端子会使屏蔽层构成一个回路ACS510–Modbus参数设置98.02STDModbus:激活标准ModbusGroup53Modbus通讯设置53.01EFBPROTOCOLID(EFB辨识)现场总线协议和程序版本 xx=协议ID,YY=程序版本。53.02EFBSTATIONID(EFB站号)53.03EFBBAUDRATE(EFB波特率)1.2~76.8kbits/s53.04EFBPARITY(EFB校验)总线中所有站点的奇偶校验一致0=8N1–8位,无校验,一个停止位。1=8N2–8位,无校验,两个停止位。2=8E1–8位,偶校验,一个停止位。3=8O1–8位,奇校验,一个停止位。53.05EFBCTRLPROFILE(EFB控制通讯配置文件)0=ABBDRVLIM–控制字/状态字的操作符合ABB传动协议,与ACS400相同。1=DCUPROFILE–控制字/状态字的操作符合32位DCU协议。2=ABBDRVFULL–控制字/状态字的操作符合ABB传动协议,与ACS600/800相同。ACS510–Modbus参数设置53.06EFBOKMESSAGES(EFB好信息)53.07EFBCRCERRORS(EFBCRC错误)53.08EFBUARTERRORS(EFBUART错误)53.09EFBSTATUS(EFB状态)0=IDLE(空闲)–EFB协议已配置,但没有接收到任何信息。1=EXEC.INIT(初始化)–EFB正在初始化。2=TIMEOUT(超时)–网络主机和EFB通讯中出现超时故障。3=CONFIGERROR(配置出错)–EFB配置出错。4=OFF-LINE(离线)–EFB离线。5=ON-LINE(在线)–EFB在线。6=RESET(复位)–EFB正在进行硬件复位。7=LISTENONLY(只接收状态)–EFB在只接收状态。ACS510–Modbus参数设置53.10~53.17定义映射到Modbus保持寄存器40005~40012的参数的地址(XXYY,XX=参数组号,YY=参数在组中的序号)53.18保存最近的异常码53.19~53.20ABBDrive配置文件的控制字和状态字Group10传动起停/反向控制Group11传动外部给定值53组参数改变后需要重新上电激活ACS510–Modbus参数设置Group14继电器控制读取继电器状态ACS510–Modbus参数设置Group15模拟输出(AO)控制Group40PID调节器给定值ACS510–Modbus参数设置其它传动运行参数设置和通讯故障设置ACS510–Modbus参数值换算比例外部给定值REF1REF2实际值换算ACS510–Modbus功能码ACS510支持的Modbus功能代码ACS510–Modbus寻址Modbus的寻址空间和各个寻址空间支持的功能码ACS510–Modbus寻址0xxxx参考集–Modbus线圈ACS510–Modbus寻址1xxxx映射–Modbus离散输入3xxxx映射–Modbus输入ACS510–Modbus寻址4xxxx保持寄存器映射40001~40099映射到传动控制和实际值40101~49999映射到传动参数0101~9999。如果寄存器的地址不对应传动参数,那么该寄存器地址无效。如果试图对参数地址以外的寄存器进行读写,那么Modbus接口会向控制器返回一个异常码。ACS510–Modbus寻址ACS510–Modbus异常码ACS510–Modbus数据帧0065=101ACS510–Modbus数据帧请求(Request):从站号为72的从机的102参数开始读取3个参数值4803006500031B80(CRC=801B)0100100000000011000000000110010100000011100000000000000000011011ACS510–Modbus数据帧应答(Response):站号为72的从机从102参数开始返回6个字节3个参数值48030602E100FA000CE726(CRC=26E7)0100100000000011000001100000001000000000000000001110000111111010000011000010011011100111RMBA-01>>ACS800~ConnectionSlot1ofACS800DifferentwiththeManual!!!RMBA-01>>ACS800~ConnectionTwo-wireconnectionThree-wireconnection(preferredpractice)RMBA-01>>ACS800~ParameterSetting98.02:StandardModbus98.07:ABBDRIVESGroup5252.01StationNumber:1-24752.02BaudRate:600,1200,2400,4800,9600,19200bit/s52.03Parity:ODD,EVEN,None1stopbit,None2StopbitResetACS80010.01EXT1START/STOP/DIR:COMM.CW(10.02EXT2)11.03EXTREF1SELECT:COM.REF(11.06EXT2) REF1:20000~1500rpmor50Hz REF2:10000~100%(Torque)20000~100%(Speed)RMBA-01>>ACS800~ParameterMappingTheregisteraddresseswhicharenotallocatedtoanydriveparameterordatasetareinvalid.Noreadsorwritesareallowedfortheseaddresses.Ifthereisanattempttoreadorwriteoutsidetheparameteraddresses,theModbusinterfacewillreturnanexceptioncodetothecontroller.RMBA-01>>ACS800~ExceptionCodeRMBA-01>>ACS800~FunctionCodeDatasetregistersareupdatedinacyclicinterval.Updatingofparameterregistershappensataslowerinterval.RMBA-01>>ACS800~FaultTrackingRefertotheLEDsanddrivefaultmessageyellowLEDlightsatpower-upandremainslituntilthedrivehasconfiguredthemodule.IftheLEDlightsagainafterasuccessfulconfigurationofthemodule,themodulehasgonetoresetstateduetoe.g.powerloss.RxDgreenLEDblinkseverytimeaModbusmessageisreceivedbytheRMBA-01(independentofthenodeaddresssetting).TheTxDLEDbli

温馨提示

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

评论

0/150

提交评论