版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Allen-BradleyMicro800TM
可编程控制器
Micro830/830Modbus™
技术培训Jan-23,2013
Modbus协议概述Modbus是Modicon公司在上世纪70年代为ModiconPLC开发的一款通信协议。该协议使用简单,多年来被很多第三方设备供给商采用。属于半双工的主/从协议。由主站启动通信〔称为的“查询”〕,从站根据主站的要求作出响应。从站地址范围:1~247“0”地址用于播送主站没有地址不使用ACK或NAK应答机制–数据传送只是由主站发起查询,从站响应来完成Modbus接收者根据“静音”时间间隔来判断数据包是否传送完毕。Modbus串行传输模式ModbusASCII编码系统:十六进制的ASCII码0~9、A~F(每个ASCII码只包含一个十六进制字符)每个字包括:1个开始位、7个数据位、可选的校验位、1~2个停止位错误校验:纵向冗余校验(LRC)间隔:半个字符容易实现(LRCvs.CRC),间隔较短ModbusRTU编码系统:8位二进制码表示的十六进制0~9、A~F(8位数据中包含二个十六进制数)每个字包括:1个开始位、8个数据位、可选的校验位、1~2个停止位错误校验:循环冗余校验(CRC-16)间隔:3.5个字符更高效(包含的数据位较多),容错能力强(CRC校验)间隔时间很重要一个ModbusRTU的信息帧期望在一个连续的数据流中被传输。如果在数据传输完成前出现一个时间大于预设的间隔时间的“静音”,那么接收者将丢弃不完整的数据,并且预期下一个字是下一个数据的地址信息,这将导致信息传输失败。同理,如果下一个信息与上一个信息间隔小于预设的间隔,那么接收者会认为该信息是上一个信息的延续,这将导致校验出错。间隔时间很重要因此,Modbus的健壮性并不比过去的会出现虚假字符的无线电网络强,也不比延时不确定的多通道的卫星网络强。许多使用Modbus的人(包括我们在内),都会遇到因为间隔时间设置不当而带来的麻烦。Modbus信息帧ASCII数据帧:开头地址功能码数据LRC校验结尾:(3A)2个字符2个字符n个字符2个字符CRLF(0D0A)RTU数据帧:开头地址功能码数据CRC校验结尾T1-T2-T3-T48位8位nx8位16位T1-T2-T3-T4Modbus信息帧(从站)地址一个byte,有效值1~247,0用于播送功能代码一个byte,有效值1~255告诉从站需要干什么数据包含从站与功能码相应的动作所必须使用的附加信息,如:起始地址、数据长度等某些功能码不需要附加数据(因此,ModbusRTU包最小长度是4个byte)Modbus信息帧响应从站响应时,在地址区发回自己的地址从站响应时,发回原先的功能码,作为接收正确的响应如果有错误,那么从站响应时,会将原功能码的最高位置位如果有错误,那么从站响应时,会将错误代码放在数据区典型的错误响应01–非法功能:出现从站不支持的功能码02–非法数据地址:出现无效的数据地址03–非法数据数值:出现无效的数据数值Modbus功能格式Modicon处理器有4个主要数据存储区(数据表):线圈(输出位–读/写):00001-09999,010000-065536输入(输入位–只读):10001-19999,100000-165536输入存放器(16位字-只读):30001-39999,310000-365536保存存放器(16位字-读/写):40001-49999,410000-465536注意:每组的数据范围都从“1”开始然而,所有的Modbus信息帧中的数据地址偏移量是“0”!第一个出现的数据,其地址是“0”。例如:线圈1在Modbus的地址是“0000”线圈127在Modbus的地址是十六进制“007E”(十进制126)保存存放器40001在Modbus的地址是“0000”,(‘4XXXX’或‘4XXXXX’隐性地与功能码相对应)Modbus功能格式这给文档描述带来混淆。你会发现如下针对保持存放器的描述,例如:保持存放器0(从0开始的编址方式)保持存放器1(从1开始的编址方式)保持存放器40001(5位地址格式),或400001(6位地址格式)数据长度当读写多个数据时,表示数据长度的字会出现在数据和校验区之间。Modbus功能代码功能代码名称 地址范围(5位6位)01 读线圈状态 00001-09999,000001-06553602 读输入状态 10001-19999,100001-16553603 读保持存放器 40001-49999,400001-46553604 读输入存放器 30001-39999,300001-36553605 强制(写)单个线圈 00001-09999,000001-06553606 预置(写)单个存放器 40001-49999,400001-46553615 强制(写)多个线圈 00001-09999,000001-06553616 预置(写)多个存放器 40001-49999,400001-465536Micro830/850串口设置内置的串口设置方法与Plug-in串口模块(2080-SERIALISOL)的设置方法相同(注意:高级设置时,窗口需要展开):Micro830/850串口设置CCWRelease2的通信驱动有4个可选:ASCII、CIPSerial(缺省值)、ModbusRTU、Shutdown:可选比特率:1200,2400,9600,19200,38400(缺省值),校验类型可选:None(缺省值)、Odd、Even.串口ModbusRTU的设定UnitAddress:0(缺省值),1~247,是ModbusRTU从站地址。注意:“0”地址用于播送,不用于ModbusRTU从站地址。ModbusRTU主站没有地址,可以设为“0”。ModbusRole有三种可选:ModbusRTUMaster(缺省值)、ModbusRTUSlave、ModbusRTUAuto(既可作主站,也可作从站)串口ModbusRTU高级设定Media:RS232(缺省值)–无握手RS232RTS/CTS–使用RTS/CTS握手RS485–内置串口,需要1763-NC01电缆连接RTSPre-Delay/Post-Delay:0ms(缺省值),0-999,999,999ms在传输前和传输后,RTS被置位的最短提前和滞后时间(只有当介质设为RS232RTS/CTS时).DataBits:固定8位StopBits:1(缺省)或2串口ModbusRTU高级设置ResponseTimer:200ms(缺省值),0-999,999,999msModbusRTU主站等待从站响应的最长时间,该时间对所有的MSG_MODBUS指令有效。如果在此时间内没有响应,那么指令出现超时故障(故障代码是55)。注意:对于一个硬接线的Modbus网络,该时间可以减少到200ms〔对应9600波特率〕,100ms〔对应19,200波特率〕,50ms〔对应38,400波特率〕,以减少无响应节点的等待时间。BroadcastPause:200ms(缺省值),0-999,999,999msModbusRTU主站发完前一个播送后到下一个播送前的最短时间间隔串口ModbusRTU高级设置Inter-CharTimeout:0ms(缺省值),0-999,999,999msModbusRTU协议根据传输过程中“静音”时间是否超过“Inter-CharTimeout”的值来判断一个数据包是否已完全被接收。数字0意味着Modbus的该值为3.5个字符的时间间隔。串口诊断在Release2,CCW仍不能显示串口诊断计数。当任何一个串口无论是发送数据还是接收数据,控制器的通信指示灯COMM都会闪烁(因此,在多串口情况下,无法判断哪个串口正在收发数据)。COMMLED指示灯闪烁最短时间是250毫秒。Modbus从站Mapping设置为了响应Modbus主站的读写命令,PLC的变量必须映射到Modbus地址中双击VariableName下方的单元格,翻开变量选择窗口:Modbus从站Mapping设置选择变量,点击OK,然后输入适宜的Modbus地址,〔从1开始,有5位的和6位的二种格式〕:0xxxx或0xxxxx,输出/线圈(最高到09999或065536)1xxxx或1xxxxx,输入/触点(最高到19999或165536)3xxxx或3xxxxx,输入/只读存放器(最高到39999或365536)4xxxx或4xxxxx,保持/读写存放器(最高到49999或465536)Modbus从站Mapping设置CCW会根据数据类型,自动填写已经Mapping的地址数量Modbus从站Mapping设置重要提示! 强烈推荐:连续使用Modbus地址,中间不要留无用的地址。因为大多数Modbus主站设备〔如PVC屏〕为了提高效率,会对连续的数据块进行读写。例如,如果你只让PVC显示Modbus存放器40001和40009的值,那么,PVC会使用一条读指令将40001~40009的值一次性全部读入,而不会分二次读。如果40002-40008的值没有被Map,那么指令会出现02错误代码〔非法数据地址〕。Modbus从站Mapping设置重要提示!(接上页)
你可以在Modbus主站里设置块读写的长度。对PVC来说,在控制器设置栏里,可以设置该参数,缺省值是32。Modbus从站Mapping设置限制:Modbusmapping表中,最多只能有200条有些数据类型:TIME、DATE、STRING,不能map任何数据类型的数组都不能mapModbus主站Message指令为了使用Modbusmessage指令,先将一个block拖放到梯形图中,然后选择MSG_MODBUSModbus主站Message指令黄色三角形警告,提示必须为指令块的输入端指定所需数据类型的常数或变量。输出端那么不是必须的。Modbus主站Message指令INMSG_MODBUS指令由IN的上升沿触发,一旦触发,指令将一直执行,不管IN后来是否为真,直到执行完成。Cancel将Cancel置为真是唯一终止MSG_MODBUS执行的方法。通常你可以让该引脚常FALSE,以确保指令正常执行。Modbus主站Message指令LocalCfg用于设置本地〔主站〕,其数据类型是MODBUSLOCPARA,结构如下:LocalCfg.ChannelLocalCfg.TriggerTypeLocalCfg.CmdLocalCfg.ElementCntModbus主站Message指令创立一个类型为MODBUSLOCPARA的本地变量,并将其指定给MSG指令的LocalCfg输入。你可以为其设置初始值〔如以下图〕,也可以通过变量和逻辑程序来赋值。MyLocalCfg.Channel=5 (通道号:左起第一个插槽)MyLocalCfg.TriggerType=0 (触发类型:非连续型)MyLocalCfg.Cmd=3 (命令:读保持存放器)MyLocalCfg.ElementCnt=4 (数据长度:4个字)Modbus主站Message指令TargetCfg用于设置远端〔从站〕,其数据类型是MODBUSTARPARA,数据结构如下:TargetCfg.AddrTargetCfg.NodeModbus主站Message指令创立一个类型为MODBUSTARPARA的本地变量,并将其指定给MSG指令的TargetCfg输入。你可以为其设置初始值〔如以下图〕,也可以通过变量来赋值。MyTargetCfg.Addr=8449MyTargetCfg.Node=100Modbus主站Message指令LocalAddr用于数据缓存,其数据类型是MODBUSLOCADDR,该类型是一个由125个WORD组成的数组。对读命令而言,LocalAddr用来储存从从站读来的数据〔最多125个WORD〕。对写命令而言,LocalAddr存放需要写入从站的数据〔最多123个WORD〕。创立一个类型为MODBUSLOCADDR的本地变量,并将其指定给MSG指令的LocalAddr输入。Modbus主站Message指令现在,MSG_MODBUS指令已经设置成功:通过插在左边第一个插槽的2080-SERIALISOLplug-in串口模块,用非连续触发的方式,读取从站的48449-48452保持存放器,数据存放在MyReadData[1]~MyData[4],从站地址为100。当MSG指令成功执行完成后,输出Q将置为TRUE(MSG_MODBUS_1.Q=1).如果MSG指令执行不成功,那么输出Q保持FALSE,输出Error置为TRUE(MSG_MODBUS_1.Error=1),同时输出ErrorID给出十进制的错误代码。Modbus主站Message指令在连续型触发模式下(MyLocalCfg.TriggerType=1),输出Q和ERROR保持false,ERRORID为0每个串口(48点的控制器可支持5个plug-in串口模块,以及一个内置的串口)拥有自己独立的数据收发缓冲区。Modbus主站Message指令MSG_MODBUS成功执行完毕:MSG_MODBUS执行出错:Modbus主站Message指令故障码及说明Message指令编程例如根本的MSG梯形图逻辑:非连续型每个IN的上升沿触发一次当MSG指令被触发时,其输出端Q和Error
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年高职(数控设备应用与维护)数控机床故障诊断实操试题及答案
- 《短视频制作》电子教案 课题15-拍摄美食短视频
- 2026 二年级上册《简单障碍跳跃练习》课件
- 2026八年级道德与法治上册 奉献社会的高尚情操
- 高职生作业指南
- 学前教育就业自荐信
- 项目安全员实战技能培训
- 学校象棋社团活动实施方案
- 影视翻译就业指南
- 定制婚庆装饰的独特设计与创意-婚庆装饰设计师展示
- 第十一章:公共管理规范
- 第五章有机过渡金属化合物和过渡金属簇合物教材课件
- 正畸治疗的生物机械原理-矫治力与牙齿的移动(口腔正畸学课件)
- 广电和通信设备调试工(高级)理论考试备考题库(重点500题)
- 统编版五年级道德与法治下册全册完整版课件
- 全过程工程咨询服务技术方案
- 危化企业双重预防机制数字化建设运行成效评估
- 作业指导书SOP编制规范
- 2022年苏州太仓市特殊教育岗位教师招聘考试笔试试题及答案解析
- YS/T 1152-2016粗氢氧化钴
- GB/T 7762-2014硫化橡胶或热塑性橡胶耐臭氧龟裂静态拉伸试验
评论
0/150
提交评论