基于RS485接口Modbus协议的PLC与多机通讯

发布者:TranquilSmile最新更新时间:2013-02-17 来源: dzsc关键字:RS485接口  Modbus协议  多机通讯 手机看文章 扫描二维码
随时随地手机看文章

  1 引言

  在自动控制领域,PLC 和单片机都受到广泛应用。PLC 具有稳定可靠,抗干扰能力强, 功能强大且使用方便等特点[1],单片机具有成本低廉,使用灵活,功能多样等特点。PLC 与 单片机结合,互相联系,互相通讯,将扩展控制功能,更好的控制复杂的系统。

  在研究混合动力电动汽车驱动系统[2]时, 采用PLC 作为主控制器,控制电机变频器和发 动机节气门控制器,实现对电机和发动机功率的 综合控制。因为PLC 和变频器均是艾默生公司 的产品,均支持RS485 接口和MODBUS 协议, 所以控制系统统一采用RS485 接口和MODBUS 协议。而发动机节气门控制器采用89C51 单片 机,所以要通过建立PLC 与单片机的通讯,实 现控制。


  图1 通信系统结构框图

  2 硬件设计

  通讯系统的结构框图如图1 所示。

  2.1 信号转换电路

  单片机支持 TTL 电平,可以采用MAX485 芯片来实现RS485 与TTL 之间的信号转换 (如图2)。MAX485 芯片采用单一电源+5 V 工作,额定电流为300 μA,采用半双工通讯方式,内部含有一个驱动器和接 收器。RO 和DI 端分别为接收 器的输出和驱动器的输入端, 分别与单片机的RXD 和TXD 相连;RE 和DE 端分别为接收 和发送的使能端,当RE 为逻 辑0 时,器件处于接收状态; 当DE 为逻辑1 时,器件处于 发送状态,因为MAX485 工作 在半双工状态,所以只需用单 片机的一个管脚控制这两个 引脚即可;PLC 里RS485 总线的A 端和B 端分别为接收和发送的差分信号端,当A 引脚的 电平高于B 时,代表发送的数据为1;当A 的电平低于B 端时,代表发送的数据为0。在A 和B 端之间加匹配电阻,一般可选100Ω 左右的电阻。



  3 软件设计

  控制系统采用单主机/多从机的组网方式,PLC 为主机,电机变频器和单片机为从机。 艾默生公司的PLC 和电机变频器之间已经建立了采用RS485 总线,MODBUS 协议的通讯 [3][4],为了实现PLC 与单片机的通讯,须先了解PLC 与电机变频器的通讯特点,然后建立 连接通讯。

  3.1 PLC 与电机变频器的通讯特点

  采用RTU 方式的Modbus 协议,帧格式如图3 所示。 波特率为9600bps,数据格式为1-8-N-2,字符间间隔少于 1.5 个字符时间(1.72ms),RTU 帧的最大帧长度是256 个 字节。帧之间的空闲时间取命令码设定和Modbus 内部约 定值中的较大值。Modbus 内部约定的最小帧间空闲如下: 帧头和帧尾通过总线空闲时间不小于3.5 个字符时间 (4ms)来界定帧。帧之间的总线空闲不需要累加起始和 结束空闲。数据采用CRC16 校验,整个信息参与校验, 校验和的高低字节需要交换后发送。



  图3 RTU 方式

  RS485 是异步半双工的通讯总线。主机处于主导和支 配地位,定时发出监控命令,等待从机的应答。从机处于 侦听状态,不能主动往总线发送数据,在接收到主机发送 的一帧信息后,首先判断地址码是否本机地址,如果此帧 信息的地址码和本机地址相同,则继续处理命令码和数 据,如果此帧信息的地址码和本机地址不同,则忽略。接收完一个主机监控命令后,先进行校验,如果校验正确则执行接收的监控命令,并根据命令 回送相应的应答帧。任何时刻只能有一个从机处于发送状态,但主机发送时所有从机都必须 处于接收状态。[page]

  上位机PLC 的通讯流程图如图4 所示。


  图4 上位机PLC 的通讯流程图

  3.2 PLC 与单片机通讯的实现

  表 1 PLC 与单片机通讯的帧字节数


  单片机进行通信时工作在“方式一”的状态下[5]。 因为PLC 发出的数据帧第一个字符为地址数据,所 以单片机在接收数据时要区分接收到的数据是否是 帧的第一个字符。根据单片机每接收完一个字节数 据RI 就置1,而且帧间间隔4ms 以上,字符间隔少 于1.72ms, 可以通过计时的方式来判断帧的第一个 字符。当RI 置1,开始计时,到下一次RI 置1,计 时结束,当时间间隔大于4ms,则后一次RI 置1 时 接收的字符是帧的第一个字符,当时间少于1.72ms, 则不是。

  为了简化程序,可以协议好PLC 与单片机通讯 的帧字节数为6 个字节,如表1。单片机根据地址字 符数据判断是否是本机地址,如果是,则接收处理 后面的5 个字节数据,计算前四个字节的CRC 校验 码,并与接收到的两个字节CRC 校验,进行核对, 如果不相同,则不反馈数据给PLC,也不执行数据 包含的指令,如果相同,则反馈数据给PLC,执行 数据包含的指令。下位机单片机程序的流程图如图5 所示。


  4 结束语

  本文作者创新点:在艾默生 PLC 与其变频器的 通讯基础上加入了基于RS485 接口Modbus 协议的 PLC 与单片机的多机通讯,该通讯方案硬件接口简 单,软件和通信协议有很好的通用性,可以拓展为PLC 与多个变频器和单片机的同时通讯, 也可应用于其他工程的多机通讯系统中。该通讯方案已经成功应用于混合动力电动汽车的驱 动电机及发动机节气门的综合控制。

参考文献:

[1]. PLC datasheet http://www.dzsc.com/datasheet/PLC_1248813.html.
[2]. RS485 datasheet http://www.dzsc.com/datasheet/RS485_585289.html.
[3]. 89C51  datasheet http://www.dzsc.com/datasheet/89C51+_105386.html.
[4]. TTL  datasheet http://www.dzsc.com/datasheet/TTL+_1174409.html.
[5]. MAX485  datasheet http://www.dzsc.com/datasheet/MAX485+_859396.html.

关键字:RS485接口  Modbus协议  多机通讯 引用地址:基于RS485接口Modbus协议的PLC与多机通讯

上一篇:C51编程中的自定义“位”及其保存方案
下一篇:CPU与单片机的复位电路的作用及基本复位方式

推荐阅读最新更新时间:2024-03-16 13:18

低容量STM8 Modbus协议移植与裁剪
1.freeModbus开源包的下载 一般STM8用的开发环境是IAR,所以这里我们就讲在IAR下移植FreeModbus, 下载freemodbus-v1.5.0,官方下载地址http://www.freemodbus.org/找到Download 点击freemodbus-v1.5.zip即可下载。 2.freeModbus开源包的简介 打开文件夹的目录如下 然后我们打开主要的文件夹modbus 我们可以看到有ascii、functions、include、rtu、tcp以及mb.c源文件 Ascii Modbus ascii通信方式相关文件夹, Rtu Modbus Rtu 通信方式和CRC校验
[单片机]
低容量STM8 <font color='red'>Modbus协议</font>移植与裁剪
采用Modbus协议实现DCS系统中监控级数据集成
    摘要: Modbus协议实现水泥生产生料系统中不同操作站的监控数据集成,采用ATL开发出基于Modbus通讯协议的一种通用接口组件,使得各异构成站点可以方便地互连。介绍网络的拓扑结构和实现方法,并把Modbus和其它几种协议如NetDDE、OPC的集成方式作了比较和讨论。     关键词: DCS 监控数据集成 Modbus COM 数据集成是DCS系统中的关键。一个典型DCS系统从结构上可分为四层 :现场级、控制级、监控级和管理级。本文讨论的是监控级,在这一级有许多并列的子站,一般采用计算机作为为机接口,各站点可按功能划分,分别采集相应的现场信号和控制某些局部设备。但是,各站点之间不是孤立的,它们必须
[工业控制]
RS485接口、电缆、布网、终端电阻
RS485接口               RS485采用差分信号负逻辑,+2V~+6V表示“0”,- 6V~- 2V表示“1”。RS485有两线制和四线制两种接线,四线制只能实现点对点的通信方式,现很少采用,现在多采用的是两线制接线方式,这种接线方式为总线式拓朴结构在同一总线上最多可以挂接32个结点。在RS485通信网络中一般采用的是主从通信方式,即一个主机带多个从机。很多情况下,连接RS-485通信链路时只是简单地用一对双绞线将各个接口的“A”、“B”端连接起来。而忽略了信号地的连接,这种连接方法在许多场合是能正常工作的,但却埋下了很大的隐患,这有二个原因:(1)共模干扰问题: RS-485接口采用差分方式传输信号方式,并不需
[嵌入式]
avr单片串口通讯及实例
在多机通信过程中,所有设备的 RS232接口是并在通信线上的,其中只能有一个设备为主机,其他为从机,通信由主机发起。数据帧一般采用1位起始位、9位数据位,其中第9位(RXB8)被用作为表征该帧是地址帧还是数据帧。当帧类型表征位为 1 时,表示该帧数据为一个地址帧;当帧类型表征位为 0 时,表示这个帧为一个数据帧。   在AVR中,通过设置从机的UCSRA寄存器中标志位MPCM,可以使能USART接收器对接收的数据帧进行过滤的功能。如果使能了过滤功能,从机接收器对接收到的那些不是地址信息帧的数据帧将进行过滤,不将其放入接收缓冲器中,这在多机通信中有效的方便了从机MCU处理数据帧程序的编写(同标准51 结构相比)。而发送器则不受MP
[单片机]
单总线单片通讯系统设计
提出了用单总线完成单片机通讯的方法。结合系统既传输数字信号又传输模拟信号的特点,提出用消侧音电路解决模拟信号的方案,并给出了详细的技术解决方案。 传统的多机通讯系统一般需要四条线完成: 1.电源线;2.地线;3.发送信号线;4.接收信号线。然而,对于主机和分机距离较远、分机台数较多的系统,采用四线制的经费投入较大,安装起来也颇困难。基于这一问题,本文结合为某医院研制的既有模拟信号(语音)又有数字信号的传输呼叫系统,提出用单总线实现多机通讯,并给出了一个完整的技术方案。 1 单总线制多机通讯系统的总线设计方案 本设计实现的多机呼叫系统的主要功能是:分机呼叫主机,利用单片微机向主机发
[单片机]
单总线单片<font color='red'>机</font><font color='red'>多</font><font color='red'>机</font><font color='red'>通讯</font>系统设计
RS485主从式通讯协议
一、数据传输协议       此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。它描述了一控制器请求访问其它设备的过程,如何回应来自其它设备的请求,以及怎样侦测错误并记录。它制定了消息域格局和内容的公共格式。       此协议决定了每个控制器须要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。如果需要回应,控制器将生成反馈信息按本协议发出。 1、数据在网络上转输       控制器通信使用主—从技术,即仅一设备(主设备)能初始化传输(查询)。其它设备(从设备)根据主设备查询提供的数据作出相应反应。       主设备可单独和从设备通信,也能以广播方式和所有从设备通信。如果单独通信,从设备
[嵌入式]
基于Modbus协议实现PLC与智能仪表的通讯
1 引言   Modbus 协议是法国施耐德公司推出的一个全开放的“主从式(Master/Slave)”通讯协议,其本意在于实现上位机(主设备)对PLC(从设备)内部存储区域的“直接”读写操作,无需用户对PLC进行通讯编程。随着工业自动化技术的不断发展,Modbus协议现已不仅仅局限于应用在PLC/上位机之间的通讯上,许多智能仪表厂商也纷纷采用该协议作为自己产品的通讯协议。与此同时,PLC也由以前单纯的I/O控制发展成为集控制、数据采集、通讯为一身,在越来越多的自动化工程中,PLC需要取代上位机,作为“主设备”来完成与智能仪表或其它支持该协议的PLC的通讯。针对这一情况,施耐德公司在其编程软件Concept2.2+补丁程序Se
[嵌入式]
实现单片与PC通讯的程序
下面是我写的一个实现多个下位机(单片机)与一个上位机(PC机)的一主多从串口通讯程序,用的STC89C52RC,定时器2做串口通信波特率发生器。 实现功能是这样的: 用调试助手向单片机发送一个数据包。 通讯协议是这样的: 数据包的格式如下所示(共10个字节组成): 0x2A,0xEB,0x8D,地址码,指令码,数据长度码,数据码,数据码,校验码,0xAD 前面三个字节为帧头,即开始符。 地址码: 欲传送的目的地址,即选定哪一个单片机。 指令码:向单片机发送的指令 数据长度码: 用于指示后面有效数据的个数 数据码:传送的数据,配合指令码的纯数据。 校验码: 累加和校验,对地址码,指令码,数据长度码,数据
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
更多每日新闻
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved