好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

种变流器ModBus通信程序设计方案.doc

13页
  • 卖家[上传人]:日度
  • 文档编号:163107651
  • 上传时间:2021-01-23
  • 文档格式:DOC
  • 文档大小:642KB
  • / 13 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 技术报告(董志然2012-4-13)一种变流器ModBus通信程序设计方案1. 内容及目的本技术报告提出了一种采用使用DSP实现变流器ModBus通信协议的方法使用有限的DSP时间及空间资源,完成了变流器机侧控制器与主控PLC之间的Modbus协议的RTU模式数据传输在现有RS232及RS485接口的基础上,完成了协议底层以及应用层功能,并成功应用于风力机模拟控制实验平台2. 实现原理及思路Modbus是一种主从方式的通信协议,即仅主设备可以初始化通信过程,从设备需要根据主设备提供的数据信息做出适当的响应为减小通信开销,采用RTU的传输模式标准的Modbus使用RS232C、RS422或者RS485串行接口,分析其通信流程,可见其可工作方式是半双工,本处使用RS232C通信接口实现半双工的通信方式变流器的控制器DSP2407工作过程中需要完成大量的数据运算及处理,故可利用的剩余的时间与空间资源非常有限,本处采用主循环与中断协调工作的方式完成通信数据帧的校验、解析与包装3. 软硬件关键技术及控制流程3.1 Modbus协议通信方式及数据格式Modbus通信协议采用主从方式,在同一个网络中有一个主设备及最多达255台从设备,从设备的地址编码为 1~255。

      主设备地址码为0,通信时采用广播方式,可以将消息发送给所有的从设备,从设备收到主设备发送来的地址码后与自己的地址码进行比较,如果一致时则与主设备进行通信Modbus通信以帧为单位,且定义了这些帧的意义,控制器只要按照协议解释其接收和发送的帧数据,就能与在同一网络中采用同样协议的控制器实现通信常用的Modbus通信规约有两种:一种是Modbus ASCII格式;一种是Modbus RTU格式一般来说,数据量少而且主要是文本的通信采用Modbus ASCII规约;数据量大而且是二进制数值的通信多采用Modbus RTU规约本处正符合Modbus RTU格式特点,故选用第二种数据格式如表3.1所示起始标志设备地址功能代码数据CRC校验结束T1-T2-T3-T48Bit8Bitn个8Bit16BitT1-T2-T3-T4表3.1 RTU数据格式使用RTU模式,消息发送至少要以3.5个字符时间的停顿间隔开始在程序中可以通过定时器完成传输的第一个域是设备地址网络设备不断侦测网络总线,包括停顿间隔时间,当第一个域(地址域)接收到,每个设备都进行解码以判断是否发往自己的在最后一个传输字符之后,一个至少3.5个字符时间的停顿标定了消息的结束。

      一个新的消息可在此停顿后开始 整个消息帧必须作为一连续的流转输如果在帧完成之前有超过3.5个字符时间的停顿时间,接收设备将刷新不完整的消息并假定下一字节是一个新消息的地址域同样地,如果一个新消息在小于3.5个字符时间内接着前个消息开始,接收的设备将认为它是前一消息的延续这将导致一个错误,因为在最后的CRC域的值不可能是正确的地址码可以根据需要自行设置功能码是通讯信息帧的第二个字节ModBus通讯规约可定义的功能码范围为1~127,其中为用户预留的是65~72、100~110根据实际需要,实现了以下功能码功能define SCI_READ_HLD_REG 0x03 // word,read N hold_reg #define SCI_READ_AI 0x04 // word,read N input_reg #define SCI_SET_1_HLD_REG 0x06 // word,write 1 hold_reg #define SCI_SET_N_HLD_REG 0x10 // word,write N hold_reg #define SCI_MASK_HLD_REG 0x16 // word,mask write N hold_reg #define SCI_SWAP_N_HLD_REG 0x17 // word,read and write N hold_reg#define SCI_INFORMATION 0x2b // read information Modbus通信协议并没有强制规定设备组织数据的方式,从时间复杂度与空间复杂度考虑,统一了变流器数据模型为输入寄存器与保持寄存器两种,且统一编址。

      Modbus通信主要是完成变流器与主控系统PLC之间的数据交换故定义变流器Modbus数据表如下所示,以直驱变流器为例:/* * modbus数据 * Version : 1.2sci_buffer[NUM] 关联变量 变量说明 属性 说明sci_buffer[0] r 流水号sci_buffer[1] 预留.sci_buffer[2] grid_data.state r 网侧.系统状态sci_buffer[3] grid_data.error r 网侧.故障状态sci_buffer[4] grid_data.i_d A@Q4 r 网侧.电网D轴电流sci_buffer[5] grid_data.i_q A@Q4 r 网侧.电网Q轴电流sci_buffer[6] grid_data.u_d V@Q4 r 网侧.电网D轴电压sci_buffer[7] grid_data.u_q V@Q4 r 网侧.电网Q轴电压sci_buffer[8] grid_data.u_dc V@Q4 r 网侧.直流母线电压sci_buffer[9] grid_data.breakers r 网侧.接触器状态sci_buffer[10] grid_data.temperature1 C@Q4 r 网侧.温度1sci_buffer[11] grid_data.temperature2 C@Q4 r 网侧.温度2sci_buffer[12] grid_data.temperature3 C@Q4 r 网侧.温度3sci_buffer[13] grid_data.i_a_rms A@Q4 r 网侧.电网A相电流有效值sci_buffer[14] grid_data.i_b_rms A@Q4 r 网侧.电网B相电流有效值sci_buffer[15] grid_data.i_c_rms A@Q4 r 网侧.电网C相电流有效值sci_buffer[16] grid_data.u_ab_rms V@Q4 r 网侧.电网AB电压有效值sci_buffer[17] grid_data.u_bc_rms V@Q4 r 网侧.电网BC电压有效值sci_buffer[18] grid_data.u_ca_rms V@Q4 r 网侧.电网CA电压有效值sci_buffer[19] grid_data.p W@Q4 r 网侧.有功功率sci_buffer[20] grid_data.q Var@Q4 r 网侧.无功功率sci_buffer[21] grid_data.s VA@Q4 r 网侧.视在功率sci_buffer[22] grid_data.i_d_ref A@Q4 r 网侧.有功电流参考值sci_buffer[23] grid_data.i_q_ref A@Q4 r 网侧.无功电流参考值sci_buffer[24] grid_data.pdp_err 网侧.PDP故障码sci_buffer[25] grid_data.temp1 网侧.temp1sci_buffer[26] can_rx_buffer[0] 网侧.can通信流水sci_buffer[27] system.state r 机侧.系统状态sci_buffer[28] system.error r 机侧.故障状态sci_buffer[29] i_stator.d A@Q4 r 机侧.定子D轴电流sci_buffer[30] i_stator.q A@Q4 r 机侧.定子Q轴电流sci_buffer[31] u_stator.d V@Q4 r 机侧.定子D轴电压sci_buffer[32] u_stator.q V@Q4 。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.