新闻中心

EEPW首页 > 手机与无线通信 > 设计应用 > 基于Modbus通讯协议的Rs-485总线在配电自动化控制系统中的应用(05-100)

基于Modbus通讯协议的Rs-485总线在配电自动化控制系统中的应用(05-100)

——
作者:浙江正泰电器股份有限公司 蒋锋 陈建余 郑光枢 舒捍刚时间:2006-09-03来源:电子产品世界收藏


本设计的异步通信数据以字节的方式传送,在每一个字节传送之前,先要通过一个低电平起始位实现握手。为防止干扰信号误触发RO(接收器输出)产生负跳变,使接收端MCU进入接收状态,在RO脚外接3kΩ上拉电阻;P3.4与DE脚之间通过74HC86实现反相控制,以防止MCU上电时对总线的干扰。 

MODBUS通讯协议及编程
 
本设计采用通信协议的RTU通讯模式,消息发送至少要以3.5个字符时间的停顿间隔开始。网络设备不断侦测网络总线,包括停顿间隔时间内。当第一个域(地址域)接收到,每个设备都进行解码以判断是否发往自己的。一个典型的消息帧如下所示:起始位 设备地址 功能代码 数据 CRC校验 结束符。监控计算机通过将要联络的智能控制器的地址放入消息中的地址域来选通智能控制器。当智能控制器发送回应消息时,它把自己的地址放入回应的地址域中,以便监控计算机知道是哪一个设备做出回应。地址0是用作广播地址,以使所有的智能控制器都能认识。当消息从监控计算机发往智能控制器时,功能代码域将告之智能控制器需要执行哪些行为。在这里主要使用到2种功能码,03H:读寄存器数据;06H:写寄存器数据。读寄存器的内容包括开关分/合闸状态、当前电流值、电压值、故障记录值等。智能控制器回应时,它使用功能代码域来指示是正常回应(无误)还是有某种错误发生(称作异议回应)。对正常回应,智能控制器仅回应相应的功能代码。对异议回应,智能控制器返回一等同于正常代码的代码,并将功能代码首位置为逻辑1。例如:一从监控计算机发往智能控制器的消息要求读一组保持寄存器,将产生如下功能代码:0 0 0 0 0 0 1 1 (十六进制03H) 对正常回应,智能控制器仅回应同样的功能代码。对异议回应,它返回: 1 0 0 0 0 0 1 1 (十六进制83H)除功能代码因异议错误作了修改外,智能控制器将一独特的代码放到回应消息的数据域中,监控计算机应用程序得到异议的回应后重发信息,直到智能控制器能够正确响应;通过写寄存器可实现开关遥控分/合闸控制及更改智能控制器系统参数等功能。在最后一个传输字符之后,一个至少3.5个字符时间的停顿标定了消息的结束,一个新的消息可在此停顿后开始,如果停顿时间小于3.5个字符时就会引起CRC校验错误。在程序中设置一个帧计时器,当线路上有数据时就刷新该计时器,线路空闲时则停止刷新,计时时间达到3.5帧时计时器被软件清除,而下一帧则为地址帧,限于篇幅关系,下面简单给出MODBUS通信中智能控制器查询发送处理程序流程图(图3)和接收中断处理程序流程图(图4)。

本文引用地址:http://www.eepw.com.cn/article/16125.htm

 

由于编程主要需处理好CRC校验码的生成及数据包开始标志的测试,下面给出CRC校验码的生成流程,见图5。

 

结束语

协议是目前得到广泛应用的通信协议,而其构筑的硬件平台总线具有硬件设计简单、控制方便、成本低廉等优点,在工控自动化系统中将得到越来越多的应用。

参考文献:《CAN总线在啤酒发酵过程控制系统中的应用》—何用辉 黄耀志
          《Modbus通信协议及编程》—朱小襄


上一页 1 2 下一页

关键词: 正泰 Modbus Rs-485 无线

评论


相关推荐

技术专区

关闭