LG-PLC MODBUS协议例程.doc_第1页
LG-PLC MODBUS协议例程.doc_第2页
LG-PLC MODBUS协议例程.doc_第3页
LG-PLC MODBUS协议例程.doc_第4页
LG-PLC MODBUS协议例程.doc_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

Chapter 10 Modbus Communication10.2 Modbus 通讯10.2.1 Modbus 通讯 1. 介绍XGB 内置通讯支持 Modbus, 即 Modicon 产品的通讯协议. 同时支持使用 ASCII 数据类型的ASCII 格式和使用Hex数据格式的 RTU格式. 通过在 Modbus 中所支持的功能代码实现通讯,特殊功能代码如 01, 02, 03, 04, 05, 06, 15 和 16. 请参考 Modicon Modbus 通讯协议指南.2.基本规范1) ASCII 模式A) 使用 ASCII 数据通讯. B) 每个桢使用 : (冒号n: H3A), 作为头, CR/LF (Carriage return-line feed: HoD H0A), 作为尾. C) 使用 LRC检查错误. D) 桢结构(ASCII数据)项目头地址功能码数据LRC尾(CR/LF)大小 1 字节2字节2字节n字节2字节2字节2) RTU 模式A) 使用十六进制通讯. B) 没有头和尾的区别. 从地址开始,到有 CRC的桢结束.C) 在两个桢之间至少有 3.5 字符时间.D) 使用 16 位 CRC检查错误.E) 桢结构(HEX数据)项目地址功能码数据CRC大小 1 字节1字节n字节2字节3)地址区域 (1)设定范围是从 1 到247,但是 XGB支持 0 到 63.(2)地址 0 被用作传送地址. 传送地址是所有从站设备接受和自身地址响应的地址,XGB不支持此项功能.4) 功能代码区域(1) 命令代码是 0225. XGB 仅支持 01, 02, 03, 04, 05, 06, 15, 和 16.(2) 如果响应格式是+(ACK), 使用相同的功能代码.(3) 如果响应格式是-(NAK),返回同时设置功能代码的第8位是 1. 例.)如果功能代码是 03 -我们这里只写了功能代码的一部分, 因为仅有功能代码是不同的. 请求 0000 0011 (H03)确认+0000 0011 (H03)确认-返回同时设置功能代码的第8位是 11000 0011 (H83)5) 数据区域(1)发送数据类型为 ASCII 数据(ASCII 模式) 或者 hex (RTU模式).(2) 数据根据每个功能代码改变.(3)相应桢的数据区域是响应数据或者是错误数据.6) LRC 检测/CRC 检测区域(1) LRC (纵向冗余检测) : 工作方式是 ASCII模式. 它是除了头和尾之外转换成 ASCII 的所有桢和的补码, (2) CRC (循环冗余校验):工作方式是RTU 模式. 使用 2字节 CRC 检验规则.备注 1) 所有的数据可以是十六进制,十进制和二进制类型。如果我们把十进制7和10转换成各种类型,结果如下:十六进制 : H07, H0A 或者16#07, 16#0A十进制 : 7, 10 7) 功能码类型代码功能码名称Modicon PLC 数据地址注释01读取输出触点状态0XXXX(位输出)读位02读取输入状态1XXXX(位输入)读位03读取输出寄存器4XXXX(字输出)读字04读取输入寄存器3XXXX(字输入)读字05强制单个触点输出0XXXX(位输出t)写位06设置单个寄存器 4XXXX(字输出)写字15强制多个触点输出0XXXX(位输出)写位16设置多个寄存器4XXXX(字输出)写字8) 使用数据大小对于数据尺寸, XGB支持 240 字节. Modicon 产品的数据大小对每个产品是不同的. 请参考 Modicon Modbus 通讯协议指南.9) 接线 XGBXGB单元接线号和方向Quantum (9 针)信号针号针号信号12345485+11CD485-22RXDGND33TXDTXD44DTRRXD55GND6DSR7RTS8CTS9 当通道 2使用RS-485+ 和 485- 连接.PMU接线号和方向XGB 单元485+485+485-485-10.2.2 Modbus server 通讯Modbus server 通讯由连接的主站模块发送请求数据,不需要对连接的从站每一个都发送请求数据。 1) 通讯参数设定接下来描述如何设定 Modbus server 通讯的参数.A) 在 XG5000中打开一个新文件.确认PLC类型选为 XGB. 在(XG-PD) XG5000中Tools菜单下,选择Network Manager. 然后, 出现Network Manager 画面B)在XG-PD中的 Option菜单下,选择 “XGB-XBMS” , 出现下面窗口.模块设定 (Cnet,Enet)高速连接设定P2P 设定通讯参数 双击00 : Built-in Cnet 出现如下基本参数设定画面.如果 Modbus server 被选择,激活 C)通讯设定 设定内容如下.项目描述站号 0 到 63.波特率 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200bps.数据位 7 或者 8 .(ASCII 模式设定7位; RTU 模式设定8位.校验位 无, 奇或者偶.停止位 1或者 2.通讯通道 基本单元内置通讯通道如下.(通道1 : RS-232C , 通道 2 : RS-485)D) 运行方式设定设定 Modbus 驱动.驱动类型含义备注P2P端口操作由客户端;通讯由 P2P参数设定(当Modbus客户端通讯被指定时使用)参考 P2P 设定XGT 服务器使用XGT server 用于 XGT 专用通讯专用服务器Modbus ASCII 服务器使用 Modbus ASCII 服务器-Modbus RTU 服务器使用 Modbus RTU 服务器- E) 在设定Modbus 服务器(ASCII , RTU)时,地址分配 (地址指定) 点击 “Modbus Setting” 出现下面设定画面. Modbus 设定含义DI的开始地址指定输入相关开始地址DO的开始地址 指定输入相关开始地址 AI 的开始地址指定输入注册开始地址AO 的开始地址指定输入注册开始地址根据上述的Modbus 地址规则, 制定每一个XGB设备(如果指定“00000” 作为Modbus 主站的“01”, 意味着XGB 的开始地址被指定为M0000; 如果指定 “0000” 作为功能代码, “h10”, 意味着指定 XGB 字 D0020.) F) 保存上面设定参数并下载. 下载通讯参数后,复位通讯模块或者给PLC重新上电。如果要通讯监控,使用Online System Diagnosis. 桢监控显示当前通讯桢的状态.通讯桢分析 用户要求桢 (主) 头码r站号功能码地址数据数 字节数数据LRC尾码:0010077F000204192B0000A0CR/LF 这个桢是执行Modbus ASCII通讯,向0号站的07ff(2047),写入(功能码 h10: 持续写入输出注册)2个字(4 字节) (如果4xxxx 在地址表里被设定为 D0020,实际地址写入为 D(0020 + 2047) = D2067, 数据D2067 = h192B, D2068 = h0000 被写入.) 服务器 (从) 正常响应桢头码r站号功能码地址数据数 LRC尾码:0010077F0002A0CR/LF响应桢是Modbus ASCII 通讯格式向#00的07ff (2047)写入2个字数据 (4字节) 服务器 (从) 不正常响应桢头码r站号功能码错误码LRC尾码:0090 *1xx *2xxCR/LF如果有错误, 设定功能码 MSB 为 “1” 同时又错误码响应. *1功能码 : 0001 0000 = h10,如果错误产生: 1001 0000 = h90 *2 如果想了解错误码的详细内容,参考 “Error Code”.10.2.3 Modbus 客户端通讯Modbus 客户端通讯可以在需要的时间,使主站和每一个从站设备进行数据交换 1) 通讯参数设定接下来描述如何设定 Modbus 客户端通讯的参数.A) 设定 XG-PD 基本参数.设定 “Use P2P”. B) 通讯设定 设定如下的用户通讯设置.项目描述站号 0 到 63.波特率 1200, 2400, 4800, 9600, 19200, 38400, 57600bps.数据位 7 或者 8 .(ASCII 模式设定7位; RTU 模式设定8位).校验位 无, 奇或者偶.停止位 1或者 2.通讯通道 基本单元内置通讯通道如下.(通道1 : RS-232C , 通道 2 : RS-485) 在 P2P 参数设定模式下设定P2P Channel.双击 P2P Channel出现如下所示 P2P driver 设定窗口. 点击Edit 出现如下的 P2P 驱动设定窗口.选择 Modbus ASCII client 或者Modbus RTU client. 双击P2P Block 编辑 Modbus Client 通讯桢. 最大21个通讯桢. 双击显示通讯方式 (Read, Write) 设定窗口. 在 Modbus Client, 设定两种方式中的一种; READ和 WRITE.项目描述备注基本操作设定通道1,2指定通讯通道.(通道1 : RS-232C, 通道2 : RS-485)主单元上状态标志指定通讯状态标志.字节数据命令 单个指定单个通讯设备.-连续指定连续通讯设备.-数据类型字节设定通讯数据类型是 BIT.-字设定通讯数据类型是Word.-变量号没有使用 Modbus 通讯.-数据大小只有当命令类型是 series时有效,ASCII 模式下最大124字节;RTU 模式下最大250字节.单位:字节目标站号设定通讯的目标站号.-存储器设定如果指定读读区域指定连接站号的读设备.-保存区域指定保存相关站号读取数据的设备地址-地址地址保存在网络设备中.自动分配如果指定写读区域指定写入设备地址. -保存区域制定相关站号写入设备地址.-地址地址保存在网络设备中.自动分配完成每个模块设定后, 保存参数并且写入参数. 下载完成后, 复位通讯模块或者给PLC重新上电,才可以应用新设定的参数. 通讯监控使用 Diagnosis System Diagnosis 如果想了解通讯监控的细节, 参考 10.1.1 内置专用通讯的例子. 3)例子 A) 系统结构XBM-DxxxS #0波特率: 38400bps通讯方式 : Modbus RTU数据位 : 7Bit停止位: 1Bit校验位 : NoneRS-485 (38400 , 7/1, 无 , RTU)SMART I/O #5输出 32SMART I/O #4输入32SMART I/O #3输出16SMART I/O #2输入 16SMART I/O #1输入 32通讯使用XGB上的 RS-485 (使用 CH2)通讯通道. B) 通讯操作假定是上面结构时,操作如下.每200毫秒读取Smart I/O #1 的32点输入数据同时保存在M10.如果 P04 #1 被设定,读 Smart I/O #2 的16位输入并且保存在 M20.如果M10 #2被设定,输出M11的1个字给 给 Smart I/O #3.如果P04 #2被设定, 读Smart I/O #4 的32位输入并且保存在MW30.如果P04 #3被设定,输出M20的2个字 给Smart I/O #5. C) 参数设定(1) 在 XG5000下打开一个新文件.(2) 选择 XG-PD, 如下设置基本参数.基本参数设定Modbus 客户端的P2P设定 (3)在 P2P 参数设定模式, 设定 CH2 P2P Driver 为Modbus RTU Client. (4) 设定P2P Block中每一个SMART I/O 的参数. 从占通讯模块数据设定(SMART I/O) 如下表设定从站通讯模块的参数.序号Operation通道状态标志位Command type数据类型数据大小目标站号读区域保存区域注释0读2F092Series 字210x30000M0010SMART I/O #11读P0041Single字-20x30000M0020SMART I/O #22写M0102Single字-3M00110x40000SMART I/O #33读P0042Series字240x30000M0030SMART I/O #44写P0043Series字25M0400x40000SMART I/O #5 a) SMART I/O #1 设定窗口通讯桢分析 客户端(主) 命令桢站号功能代码地址数据数目CRC01040000000271CB 该桢完成的功能是,Modbus RTU 通讯格式下,读取#01中0000地址开始的2个字 (4 字节) (功能码h04:读取输入地址). 服务器(从) 正常响应桢站号功能代码字节数数据CRC01040412345678xxxx Modbus RTU 通讯格式下,正常响应#01 中0000地址开始的数据(h12345678)4字节服务器(从)非正常响应桢站号功能码错误码LRC0184 *1xx *2xx如果有错误产生, 设定功能码MSB 为“1” 同时相应故障代码 *1 功能码 : 0000 0100 = h04, 如果有错误产生: 1000 0100 = h84 *2 如果要了解故障代码的详细内容,参考 “Error Code”.b) SMART I/O #2 设定窗口通讯桢分析 客户端(主) 命令桢站号功能代码地址数据数目CRC020400000001xxxxx该桢完成的功能是,Modbus RTU 通讯格式下,读取#02中0000地址开始的2个字 (4 字节) (功能码h04:读取输入地址).服务器(从) 正常响应桢站号功能代码字节数数据CRC0204021234xxxx Modbus RTU 通讯格式下,正常响应#02 中0000地址开始的2字节数据(h1234) S服务器(从)非正常响应桢站号功能码错误码LRC0284 *1xx *2xx如果有错误产生, 设定功能码MSB 为“1” 同时相应故障代码 *1 功能码 : 0000 0100 = h04, 如果有错误产生: 1000 0100 = h84 *2 如果要了解故障代码的详细内容,参考 “Error Code”. c) SMART I/O #3 设定窗口通讯桢分析 客户端(主) 命令桢站号功能代码地址数据数目CRC030600001234xxxx该桢完成的功能是,Modbus RTU 通讯格式下,读取#03中0000地址开始的1个字 (2 字节:h1234) (功能码h04:读取输入地址). 服务器(从) 正常响应桢站号功能代码字节数数据CRC030600001234xxxx Modbus RTU 通讯格式下,正常响应#03 中0000地址开始的数据(h1234)2字节服务器(从)非正常响应桢站号功能码错误码LRC0386 *1xx *2xx如果有错误产生, 设定功能码MSB 为“1” 同时相应故障代码 *1 功能码 : 0000 0100 = h06, 如果有错误产生: 1000 0100 = h86 *2 如果要了解故障代码的详细内容,参考 “Error Code”.d) SMART I/O #4 设定窗口通讯桢分析 客户端(主) 命令桢站号功能代码地址数据数目CRC040400000002xxxx该桢完成的功能是,Modbus RTU 通讯格式下,读取#04中0000地址开始的2个字 (4 字节) (功能码h04:读取输入地址).服务器(从) 正常响应桢站号功能代码字节数数据CRC0404021234xxxx Modbus RTU 通讯格式下,正常响应#04 中0000地址开始的数据(h1234)2字节服务器(从)非正常响应桢站号功能码错误码LRC0484 *1xx *2Xx如果有错误产生, 设定功能码MSB 为“1” 同时相应故障代码 *1 功能码 : 0000 0100 = h04, 如果有错误产生: 1000 0100 = h84 *2 如果要了解故障代码的详细内容,参考 “Error Code”.e) SMART I/O #4 设定窗口通讯桢分析 客户端(主) 命令桢站号功能代码地址数据数目No. of BytesDataCRC0510000000020412345678xxxx该桢完成的功能是,Modbus RTU 通讯格式下,写入#05中0000地址开始的2个字 (4 字节) 数据(h12345678)(功能码h10:连续写入输出地址). 服务器(从) 正常响应桢站号功能代码地址数据数目CRC051000000002xxxxModbus RTU 通讯格式下,写入#05 中0000地址开始的数据(h12345678)2个字服务器(从)非正常响应桢站号功能码错误码LRC

温馨提示

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

评论

0/150

提交评论