基于Modbus协议实现单片机与PLC之间的通讯

合集下载

PLC与单片机之间的串行通信实现方法探讨

PLC与单片机之间的串行通信实现方法探讨

PLC与单片机之间的串行通信实现方法探讨随着工业自动化的不断发展,PLC(Programmable Logic Controller,可编程逻辑控制器)和单片机作为常用的控制设备,扮演着越来越重要的角色。

在实际的工业生产中,PLC和单片机往往需要进行数据的交互和通信,以实现对工艺过程的控制和监测。

而在这种通信中,串行通信被广泛应用。

本文将探讨PLC和单片机之间的串行通信实现方法,以期为实际应用提供一些参考。

一、串行通信概述串行通信是指在数据传输中,比特按照一定的顺序进行传送,也就是每次只传送一个比特位。

与之相对应的是并行通信,其数据在传输时多个比特同时传送。

在实际工业控制系统中,串行通信由于线缆布置简单、传输距离远和干扰小等特点而得到了广泛的应用。

串行通信包含同步和异步两种方式。

在同步串行通信中,发送和接收设备通过一个时钟信号实现同步传输。

而在异步串行通信中,传输的数据通过起始位和停止位的表示来进行同步。

在工业控制系统中,由于同步通信受到时钟信号的限制,一般采用异步串行通信的方式。

二、PLC与单片机之间的串行通信现在让我们来讨论PLC与单片机之间的串行通信。

PLC作为工业控制中的核心设备,通常负责控制和监测生产过程。

而单片机则常用于硬件控制和数据的采集。

在工业控制系统中,PLC和单片机之间需要进行数据的交互和通信,以实现工艺过程的控制和监测。

在实际的应用中,PLC与单片机之间的串行通信一般采用RS-232、RS-485、Modbus等通信协议。

RS-232是一种传统的串行通信标准,其传输距离较短,一般在15米左右。

RS-485则是一种适用于远距离传输的串行通信标准,其传输距离可以达到1200米。

而Modbus是一种通信协议,广泛应用于工业控制系统中,其采用主从架构,支持点对点和多点通信。

1、使用串口通信模块在实际应用中,我们可以在PLC和单片机上分别搭载串口通信模块,通过串口通信模块实现两者之间的数据交互。

基于PLC的Modbus通信协议的实现

基于PLC的Modbus通信协议的实现

基于PLC的Modbus通信协议的实现————————————————————————————————作者: ————————————————————————————————日期:摘要:介绍了三菱FX2N系列PLC 在无协议通信方式下与基于DS18b20 型数字温度传感器的STA-D 温度采集模块以Modbus 协议通信,实现即时读取温度, 并给出了相关程序。

随着3C 技术迅速发展, 网络集成信息自动化正迅速应用到现场设备、控制中, 现场总线控制系统正逐步取代传统的集散控制系统,其中Modbus现场总线协议在基于PLC 的控制系统中得到了越来越广泛的应用. 在本系统中,以PLC为主机、温度采集模块为从机, 完成对生产过程的自动控制、工业流程及工艺参数的显示、修改, 根据PLC 的无协议通信功能, 用Modbus现场总线协议实现主机与从机的通讯。

本文基于某监控系统的设计,实现了三菱FX2N 系列PLC在无协议通信方式下与DS18b20型数字温度传感器的采集模块以Mo dbus 协议通信,在电炉熔化工作过程中,对电炉、电容、冷却水等100多点的温度实现巡检。

1系统硬件组成温度监控部分系统的硬件由DS18b20型数字温度传感器、采集模块、FX2N 系列PLC、FX2N-485-BD、HITECH 触摸屏组成,其结构如图1 所示。

图1 系统硬件组成DS18b20 是世界上首个支持单线总线接口( 1w ire bus interface)的数字化温度传感器, 单总线接口便于构建分布式的温度测控网络,数字化的输出提高了信号传输的可靠性,而且使外围电路大为简化。

DS18b20 具有很高的适应性和性价比, 其测温范围为-55~125 ℃, 测温精度为±0. 5℃, 测温距离最大为200m , 测温方式使用3线制,本系统使用的传感器排序方式为指定排序。

DS18b20 内部主要有3 个数字部件: 1个温度传感器、1个64 位的激光刻蚀ROM、9 字节高速暂存器ScratchpadRAM和3字节EERAM. ROM 上64 位数据是传感器的序列号。

探讨PLC与单片机之间的串行通信实现

探讨PLC与单片机之间的串行通信实现

探讨PLC与单片机之间的串行通信实现PLC (可编程逻辑控制器) 和单片机是现代自动化控制系统中常用的两种设备。

PLC 主要用于工业自动化控制,而单片机则常用于嵌入式系统和小型控制器中。

在某些应用中,PLC 和单片机之间的数据交换是必要的。

这可以通过串行通信实现。

串行通信是一种在两个设备之间传输数据的方式,通过一根线路逐位地传输数据。

常见的串行通信协议包括 RS232、RS485、Modbus 等。

需要确定 PLC 和单片机之间的物理接口。

通常情况下,PLC 和单片机使用 RS485 接口进行通信。

RS485 是一种高速、远距离传输的串行通信协议,适用于工业环境。

PLC 和单片机分别连接到一个 RS485 转换器,将信号转换为串行通信所需的电平和协议。

在 PLC 端,需要编写一个通信模块,用于接收和发送数据。

该模块可以通过 PLC 的编程软件进行开发。

通常,PLC 支持多种编程语言,如 Ladder Diagram (梯形图),Structured Text (结构化文本)等。

在通信模块中,需要使用特定的指令来配置和控制串行通信。

在单片机端,也需要编写一个串行通信的程序。

通常情况下,单片机可以使用 C 语言来开发。

程序包括设置串行通信的参数,如波特率、数据位、停止位等,以及接收和发送数据的函数。

在数据传输过程中,需要协商好数据格式和通信协议。

数据格式指定了数据的组织形式,如字节顺序、数据类型等。

通信协议则定义了数据的传输方式和规则。

常见的通信协议包括 Modbus、Profibus、CAN 等。

在 PLC 和单片机之间,需要约定好使用的通信协议,并编写相应的程序来实现数据的传输和解析。

除了硬件和软件的设置外,还需要注意一些通信过程中的问题。

PLC 和单片机之间的通信速度应该相匹配,以避免数据丢失或溢出。

需要确保通信连接的稳定性和可靠性,例如使用合适的电缆连接、地线和屏蔽等。

PLC 和单片机之间的串行通信是现代自动化控制系统中常见的需求之一。

PLC与单片机之间的串行通信实现方法探讨

PLC与单片机之间的串行通信实现方法探讨

PLC与单片机之间的串行通信实现方法探讨PLC(可编程逻辑控制器)和单片机是工业自动化领域中常用的控制设备。

它们通常需要进行数据交换和通信,以实现更复杂的控制功能。

本文将探讨PLC与单片机之间的串行通信实现方法。

1. 基于RS485的串行通信RS485是一种常用的串行通信协议,具有传输距离远、抗干扰能力强等特点。

在PLC和单片机之间建立RS485通信可以实现可靠的数据传输。

需要在PLC和单片机之间建立RS485物理连接。

一般使用双线制,其中一条线为发送线(A)、另一条线为接收线(B),同时需要接地线(GND)。

在硬件层面上,PLC和单片机需要通过485转232转换器实现电平转换。

PLC的UART串口通过485转232转换器连接到单片机的串口,以实现数据的传输。

在软件层面上,PLC和单片机需要定义一套通信协议,以规定数据的传输方式、格式和顺序。

通常可以使用Modbus协议来实现PLC与单片机之间的串行通信。

PLC作为Modbus 从站,单片机作为Modbus主站,通过读写寄存器的方式进行数据的读取和写入。

2. 基于CAN总线的串行通信CAN(Controller Area Network)总线是一种高可靠性、高带宽、多节点、实时性强的串行通信协议,广泛应用于汽车电子和工业控制领域。

通过CAN总线实现PLC和单片机之间的串行通信,可以实现多节点的数据交换和实时的控制。

在软件层面上,PLC和单片机需要使用CAN通信协议,如CANOpen或者DeviceNet协议,来实现数据的传输和控制。

在硬件层面上,PLC和单片机需要具备以太网接口,并通过以太网交换机或者路由器连接到同一个局域网中。

在软件层面上,PLC和单片机可以使用TCP/IP协议来实现数据的传输和控制。

PLC作为服务器,单片机则可以作为客户端,通过建立TCP连接来进行数据的读写操作。

PLC与单片机之间的串行通信可以通过不同的通信协议实现,如RS485、CAN总线和以太网。

PLC与单片机之间的串行通信实现方法探讨

PLC与单片机之间的串行通信实现方法探讨

PLC与单片机之间的串行通信实现方法探讨PLC(可编程逻辑控制器)和单片机是现代工业自动化中常见的控制设备,它们通常被用于监控和控制工厂中的设备和生产线。

在实际应用中,很多情况下需要PLC和单片机之间进行通信,以便实现数据传输和控制指令的交互。

本文将探讨PLC与单片机之间的串行通信实现方法,为工程师在实际应用中提供一些参考。

一、PLC与单片机之间的通信方式PLC与单片机之间的通信方式主要包括串行通信和网络通信。

在工业控制系统中,串行通信是最常用的一种通信方式,它可以简单地通过串口连接实现设备之间的数据传输。

PLC和单片机都支持串行通信,因此在实际应用中可以选择串行通信方式进行通讯。

二、串行通信的基本原理串行通信是将数据一位一位地按照一定的时间间隔发送出去,接收端再按照相同的时间间隔接收数据。

串行通信有两种方式:同步串行通信和异步串行通信。

在工业控制系统中,异步串行通信方式更常见,因此本文将重点介绍异步串行通信的实现方法。

异步串行通信是将数据分为帧进行传输,每一帧包括起始位、数据位、校验位和停止位。

起始位和停止位用来标识一帧数据的开始和结束,数据位用来传输实际的数据,校验位用来检测数据传输过程中是否发生错误。

在实际应用中,可以通过串口模块来实现异步串行通信。

1. 使用串口模块在实际应用中,可以在PLC和单片机上分别连接串口模块,通过串口模块来实现两者之间的串行通信。

串口模块可以实现串口转换和数据传输,它能够将串行数据转换为并行数据,方便单片机和PLC进行数据交换。

2. 使用Modbus协议Modbus是一种常用的工业通信协议,它可以在串行通信中实现设备之间的数据传输。

在实际应用中,可以使用Modbus协议来实现PLC和单片机之间的通信。

单片机可以通过Modbus协议向PLC发送控制指令,PLC可以通过Modbus协议向单片机发送传感器数据,从而实现数据交换和控制指令的传输。

3. 使用RS485通信以一个简单的例子来说明PLC与单片机之间的串行通信实现方法。

用Modbus协议实现DCS与PLC之间的串行通讯

用Modbus协议实现DCS与PLC之间的串行通讯

用Modbus协议实现DCS与PLC之间的串行通讯万立氧空分装置是2008年辽化公司20万吨环氧乙烷/乙二醇改造的配套项目,该装置仪控系统采用了先进的Honeywell PKS集散控制系统来实现对整个装置的各系统及主要设备的工艺参数的监控,并实现各主要操作阀门、切换阀门的自动控制或遥控操作,以及必要的联锁保护措施。

氮压机选用Ingersoll—rand的CENTAC 3C70MX5N2型压缩机,该压缩机配置独立的控制系统CM C控制器,为了有效的监控氮压机的运行参数,我们利用Modbus协议实现了Honeywell PKS集散系统与Ingersoll—rand CM C可编程序控制器之间串行通讯。

2 Modbus协议简介Modbus是Modicon公司于1 979年提出的一种通信协议,经过多年的实际应用,已经成为一种应用于工业控制器上的标准通信协议。

有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。

此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。

它描述了控制器请求访问其它设备的过程,以及怎样侦测错误并记录,它制定了消息域格局和内容的公共格式[5]。

当在Modbus网络上通信时,此协议决定了每个控制器须要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。

如果需要回应,控制器将生成反馈信息并用Modbus协议发出。

标准的Modbus口是使用RS-232C兼容串行接口,它定义了连接口的针脚、电缆、信号位、传输波特率、奇偶校验。

控制器能直接或经由MOdem组网。

2.1 Modbus报文如图1所示,Modbus通信使用主从技术,即仅设备(主设备)能初始化传输(查询)。

其它设备(从设备)根据主设备查询提供的数据作出相应反应。

主设备可单独和从设备通信,也能以广播方式和所有从设备通信。

如果单独通信,从设备返回消息作为回应,如果是以广播方式查询的,则不作任何回应。

基于Modbus协议的PLC与单片机的多机通讯

基于Modbus协议的PLC与单片机的多机通讯

本系统利用RS485总线来完成多机通讯的,而RS485只是ISO /OSI 七层模型的最底层—物理层,要完成可靠的多机通讯则必须还要加上应用层。

本系统则是采用Modbus 协议,Modbus 协议是应用于电子控制器上的一种通用语言。

通过此协议,控制器相互之间、控制器经由网络和其它设备之间可以通信。

它已经成为一通用工业标准。

有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。

1系统总体方案设计本系统的上位机采用的是西门子S7-200PLC ,作为系统的主站,而多个AT89S52单片机则作为从机通过RS485连接至上位机S7-200。

本系统的通讯过程如下:上位机S7-200通过RS485总线发送控制命令,各个单片机从机接收数据帧,从数据帧中提取出地址信息并与自身的地址作较。

若不符合则丢弃该数据帧,反之,则接收数据帧,完成相应的功能,并返回数据帧给PLC 。

其中上述数据帧的格式在Modbus 协议中定义。

系统结构如图1所示。

2硬件电路设计单片机串行通讯口是标准的TTL 电平,为了完成和PLC 之间的多机通讯则需加上MAX485芯片。

采用MAX485芯片,一方面是了完成电平转换,降低了传输数据误码率;另一方面MAX485芯片有数据收发控制端,方便了多机通讯的实现。

单片机与MAX485的接线图如图2所示,其中P2.0控制了MAX485芯片的数据收发,当期高电平时,MAX485只能发送数据;反之则只能接收数据。

因此基于RS485总线的多机通讯是半双工的。

单片机的发送数据端和接收端分别接至MAX485芯片的发送数据端和接收数据端。

经MAX485芯片转换后,其输出引脚分别和其他所有单片机的A 、B 两端连接,无需交叉,最终汇总至S7-200的自由口。

图2单片机与MAX485芯片接线图3软件设计S7-200和单片机之间通讯除了借助于RS485总线这个物理层,还需应用层的支持,本系统应用层采用的是Modbus 协议。

基于MODBUS协议和PLC的通讯

基于MODBUS协议和PLC的通讯

基于MODBUS协议和PLC的通讯'判断电机是否在转动Public Sub WaitMotorStop()'判断电机是否在转动Dim str1 As String = '1'Do Until str1 = '0'Comm2PLC(RCS, Relay901, '')System.Threading.Thread.Sleep(50)Dim str2 As String = FormMain.RS232.ReadExisting().ToString()FormMain.RS232.DiscardInBuffer()FormMain.RS232.DiscardOutBuffer()'先高低位转换,再16进制转换为10进制。

例如把78563412转换为12345678If str2.Length > 6 Thenstr1 = str2.Substring(6, 1)End IfLoopThread.Sleep(200)End Sub‘----------------------------------------------------------------’'写入PLCPublic Sub Comm2PLC(ByRef _Code As String, ByRef _Address As String, ByVal _Command As String)Dim str1 As String = _Code & _Address & _Command'代码字+中间继电器+命令字Dim str2 As String = Calculte_Vertification_bit(str1)Dim str3 As String = str1 & str2FormMain.RS232.WriteLine(str3 + vbCr)FormMain.RS232.DiscardOutBuffer()End Sub‘---------------------------------------------------------------- '计算校验位Function Calculte_Vertification_bit(ByVal str)Dim str2 As String = NothingFor i As Integer = 1 To Len(str)Dim str1 As String = Asc(Mid(str, i, 1))str2 = str2 Xor str1NextReturn Hex(str2)End Function‘---------------------------------------------------------------- '运动坐标读取Private Sub ReadCoord()System.Threading.Thread.Sleep(10)FormMain.RS232.DiscardInBuffer()Comm2PLC(RD, Register1, '')TrySystem.Threading.Thread.Sleep(200)Dim str1 As String = FormMain.RS232.ReadExisting().ToString()'先高低位转换,再16进制转换为10进制。

单片机与PLC之间的通讯模式的Modbus协议的有效应用

单片机与PLC之间的通讯模式的Modbus协议的有效应用

单片机与PLC之间的通讯模式的Modbus协议的有效应用摘要;随着经济的发展,Modbus协议得到了广泛的应用,这满足了单片机和PLC通讯模式的应用,在此过程中HMI由于其自身的高实时性、高性能、小体积化得到了广泛的普及在一些工业自动系统设备中,都能看到它的影子。

其通过对图片、汉字、图形的有效应用,确保相关工作环节的稳定运行,大大满足了单片机与PLC通讯环节运作需要。

标签:波特;地址接收;代码;通讯管理;方案深化1 Modbus通讯协议的系统分析1.1 为了实现对单片机与PLC通讯环节的有效分析,我们首先要进行Modbus协议的深入分析,以分析目前工作中存在的不足,通过相应措施的应用,确保实际工作环节的稳定运行。

Modbus是施耐德电气公司的一种总线协议运作模式,有利于实现Modbus在以太网上的分布式应用,满足实际场景的需要。

随着经济技术的不断发展,Modbus协议的所有权也在发生着改变,目前主要由Modbus-IDA组织所应用,这极大推动了该协议模式的发展,随着Modbus的节点安装数量的不断提升,Modbus协议的应用范围更加广泛,目前已经成为电子控制器的广泛应用的语言。

Modbus协议应用于各个协议控制器之间,确保了网络之间的良好通信,比如以太网与其他设备的良好通信。

随着经济的发展,它已经成为一种通用的工业标准模式。

实现了对相关控制设备的有效应用,促进了工业网络的集中监控化,促进网络通信系统的不断完善。

这种模式通过对RS-232C兼容串行接口等环节的应用,实现日常信号位环节、奇偶校验等环节的稳定运行,实现了Modbus协议模式的正确应用。

1.2 为了确保单片机与PLC之间的通讯模式的深化,我们需要进行Modbus 协议的应用深化,这种协议模式提供了一种主从原则,就是主设备的初始化传输,该协议系统的其他相关环节都是围绕这个主从原则进行具体运用的,其他设备通过对主设备的反应,进行相关环节的运行,它主要是对主设备提供的相关数据信息进行反映。

S7-200 PLC与单片机间ModBus主从通信方式

S7-200 PLC与单片机间ModBus主从通信方式

S7-200 PLC与单片机间ModBus主从通信方式邹益民【摘要】介绍一种基于ModBus协议的S7-200 PLC扩展方式,该系统可使用主站或从站方式,与MCS51单片机进行ModBus数据通信,最终扩展S7-200的数据计算、人机接口等应用功能。

该文对S7-200的ModBus-RTU主站及从站通信指令,单片机ModBus通信编程以及MCS51单片机基于Preteus与VSPD虚拟串口的仿真调试技术等进行了较详细的介绍。

文中给出的系统设计方案可给PLC的功能扩展应用提供借鉴。

%A S7-200 PLC expansion mode based on ModBus protocol was introduced. In master or slave mode, PLC achieved ModBus data communications with SCM, and ultimately expanded PLC’s data computing and human-computer interface application features. In this paper,detailed descriptions about the S7-200 communication instruction for ModBus-RTU, the ModBus communication programming of SCM and the debugging techniques of MCS51 based on Preteus and VSPD virtual serial port were also presented. The system design scheme could provide reference for the PLC function expansion.【期刊名称】《工业仪表与自动化装置》【年(卷),期】2015(000)003【总页数】4页(P19-21,85)【关键词】PLC;S7-200;单片机;ModBus协议;数据通信;功能扩展【作者】邹益民【作者单位】南京铁道职业技术学院通信信号学院,南京210031【正文语种】中文【中图分类】TP23;TP2740 引言PLC由于功能强、性价比高、可靠性高、扩展灵活、环境适应能力强及安装维护方便等突出优点而在自动控制系统中得到广泛应用。

基于单片机的modbus协议实现

基于单片机的modbus协议实现

基于单片机的MODBUS协议实现摘要现场总线作为生产过程自动化发展的重点,对推动自动化技术起到巨大的推动作用,是现代化工业的标志。

它作为工业数据通信网络的基础,沟通了生产过程现场设备之间的联系。

MODBUS作为现场总线的一种通信协议,它实现了PLC 控制器、工控仪表与设备间的通讯和信息交换,已经发展为全球工业领域最流行的协议之一。

本文设计基于MODBUS协议的单片机控制系统,实现PC机和单片机的通信,达到用PC机控制单片机的目的,构建了以PC机为主机,MODBUS协议为联络载体,单片机为从机的“主一从”式装置;设计了RS232和RS485的电平转换器,实现了PC串口和单片机串口的电平的兼容;采用CRC校检方法,保证了通信数据的准确性。

针对MODBUS信息帧的特点,编程实现了主机和单片机以MODBUS 协议的串行通信。

设计合理,价格低廉,自主性强,在工业控制领域具有广泛的应用前景。

关键词:现场总线,MODBUS协议,CRC校检,串行通信,单片机英文题目ABSTRACTField bus as the production process automation development focus, to promote the automation technology has played a tremendous role in promoting, modern industrial logo. It as industrial data communication network based on the production process field device, communication links between. MODBUS as a kind of field bus communication protocol, it implements PLC controller, industrial control instrumentation and the communication and the exchange of information, has developed into a global industry is one of the most popular protocols.In this paper, based on the MODBUS protocol design of the microcomputer control system, the realization of PC and MCU communication, achieve the PC control chip, built with PC as the host, the MODBUS protocol as the contact carrier, chip microcomputers as the "from" type device; design of RS232 and RS485 level converter, implementation the PC serial port and single-chip serial port level compatible; using CRC checking method, ensure the accuracy of data communication. According to the characteristics of MODBUS information frame, programming host computer and MCU with MODBUS protocol serial communication. Reasonable design, low price, autonomic sex is strong; in the industry control domain has the widespread application prospect.KEY WORDS: Field bus, MODBUS protocol, CRC checking, serial communication, single-chip microcomputer目录前言 (1)第1章绪论 (2)1.1 研究背景 (2)1.2 组态软件发展概况 (4)1.3 设计内容概述 (6)1.4 本文所做的工作 (6)第2章MODBUS协议 (7)2.1 MODBUS协议概述 (7)2.1.1总体描述 (7)2.1.2 MODBUS数据单元 (8)2.1.3 MODBUS通信原理 (9)2.1.4 MODBUS通信网络 (10)2.2 MODBUS两种传输方式 (11)2.2.1 ASCII模式 (11)2.2.2 RTU模式 (12)2.3 MODBUS消息帧 (12)2.3.1 ASCII帧 (12)2.3.2 RTU帧 (13)2.3.3地址域与数据域 (14)2.3.4 字符的连续传输 (14)2.4错误检测方法 (15)2.4.1奇偶校验 (15)2.4.2 LRC检测 (15)2.4.3 CRC检测 (16)第3章MODBUS协议实现的硬件设计 (17)3.1实现装置硬件结构 (17)3.2 RS-485协议及RS-485芯片简介 (17)3.3主机RS-232/485转换接口设计 (19)3.4从机系统的设计 (20)3.4.1设计要求 (20)3.4.2核心硬件设计 (20)3.4.3通信模块设计 (21)第4章MODBUS协议的软件实现 (22)4.1系统程序流程软件设计 (22)4.1.1主-从机各自通信过程 (22)4.1.2数据的发送和接收 (23)4.2串口初始化程序设计 (25)4.3部分功能码的实现 (26)4.4RUT传输方式的软件设计 (28)4.4.1发送数据的软件设计 (28)4.4..2接收数据的软件设计 (29)4.4.3判断一帧报文接收结束 (30)4.4.4 CRC循环冗余校验 (32)结论 (34)谢辞 (36)参考文献 (37)外文资料翻译 (38)前言现场总线是当今自动化领域发展的热点之一,被誉为自动化领域计算机局域网。

基于Modbus协议实现单片机与PLC之间通讯

基于Modbus协议实现单片机与PLC之间通讯

基于Modbus协议实现单片机与PLC之间的通讯关键词:可编程控制器 Modbus 通讯协议1 引言HMI(人机界面)以其体积小,高性能,强实时等特点,越来越多的应用于工业自动化系统和设备中。

它有字母、汉字、图形和图片等不同的显示,界面简单友好。

配有长寿命的薄膜按钮键盘,操作简单。

它一般采用具有集成度高、速度快、高可靠且价格低等优点的单片机[1]作为其核心控制器,以实现实时快速处理。

PLC和单片机结合不仅可以提PLC的数据处理能力,还可以给用户带来友好简洁的界面。

本文以Modbus通讯协议为例,详细讨论了一个人机系统中,如何用C51实现单片机和PLC之间通讯的实例。

2 Modbus通讯协议[4]Modbus协议是应用于电子控制器上的一种通用语言。

通过此协议,控制器相互之间、控制器经由网络和其它设备之间可以通信。

Modbus协议提供了主—从原则,即仅一设备(主设备)能初始化传输(查询)。

其它设备(从设备)根据主设备查询提供的数据作出相应反应。

主设备查询的格式:设备地址(或广播,此时不需要回应)、功能代码、所有要发送的数据、和一错误检测域。

从设备回应消息包括确认地址、功能码、任何要返回的数据、和一错误检测域。

如果在消息接收过程中发生一错误,或从设备不能执行其命令,从设备将建立一错误消息并把它作为回应发送出去。

控制器能设置为两种传输模式:ASCII和RTU,在同样的波特率下,RTU可比ASCII方式传送更多的数据,所以采用KTU模式。

(1) 典型的RTU消息帧典型的RTU消息帧如表1所示。

RTU消息帧的地址域包含8bit。

可能的从设备地址是0...127(十进制)。

其中地址0是用作广播地址,以使所有的从设备都能认识。

主设备通过将要联络的从设备的地址放入消息中的地址域来选通从设备。

当从设备发送回应消息时,它把自己的地址放入回应的地址域中,以便主设备知道是哪一个设备作出回应。

RTU消息帧中的功能代码域包含了8bits,当消息从主设备发往从设备时,功能代码域将告之从设备需要执行哪些行为;当从设备回应时,它使用功能代码域来指示是正常回应(无误)还是有某种错误发生(称作异议回应,一般是将功能码的最高位由0改为1)。

基于MODBUS协议的上位机与PLC及智能仪表之间的通信实现方法

基于MODBUS协议的上位机与PLC及智能仪表之间的通信实现方法
CRC是先调入一值是全“1”的16位寄存器,然后调用一过程将消息中连续的8位字节各当前寄存器中的值进行处理。
CRC产生过程中,每个8位字符都单独和寄存器内容相或(OR),结果向最低有效位方向移动,最高有效位以0填充。LSB被提取出来检测,如果LSB为1,寄存器单独和预置的值或一下,如果LSB为0,则不进行。整个过程要重复8次。在最后一位(第8位)完成后,下一个8位字节又单独和寄存器的当前值相或。最终寄存器中的值,是消息中所有的字节都执行之后的CRC值。下面是它的VC代码:
{
wCrc >>= 1;
wCrc ^= 0xA001;
}
else
{
wCrc >>= 1;
}
}
}
return wCrc;
}
六、上位机与智能仪表的通讯:
上位机的通讯程序可参照上位机与PLC的通讯程序进行设计,注意将上位机的串口地址设为其它的地址(例如2)。在此不作过多介绍。
多台智能仪表作为MODBUS从站的网络,每个从站必须设为唯一的从站地址,并设定好波特率。仪表要遵循MODBUS规约的通信帧结构对上位机的命令进行解析。非呼叫对象要能及时重新恢复等待接受状态。响应呼叫的仪表要解析命令并进行相应的功能处理,对非法的命令要能回报报错信息。
20读取通用参数(584L)显示扩展存储器文件中的数据信息
21写入通用参数(584L)把通用参数写入扩展存储文件,或修改之
在这些功能码中较长使用的是1、2、3、4、5、6号功能码,使用它们即可实现对下位机的数字量和模拟量的读写操作。
4下表是MODBUS地址映射到S7-200的地址:
MODBUS地址S7-200地址MODBUS地址S7-200地址
三、电气接口:

基于MODBUS协议的单片机与S7—200PLC串行通信的实现

基于MODBUS协议的单片机与S7—200PLC串行通信的实现
张 洁, 马凤铭 , 徐 颖
( 鞍 山师范学院 物理科 学与技 术学院 , i T . 宁 鞍山 1 1 4 0 0 7 ) 摘 要: 采 用 MO D B U S通信 协议 , 以A T ME G A1 6单 片 机 为主 机 , s 7 . 2 0 0 P L C为从 机 , 设计 了两 者之 间的
括两个 4位 1 6进制字符 , 相对于 A S C I I 模式 , R T U模式表达相同的信息需要较少的位数 , 且在相同通信 速率下具有更大的数据流量. s 7 — 2 0 0 P L C支持 M O D B U S通信协议的 R T U模式.
M O D B U S 通信格式如表 1 所示 , M O D B U S 工作方式采用主从问答式 , 通信命令由主机发送至从机 , 符合相应地址码的从机就会响应命令 , 根据约定的通信协议读取信息并进行数据校验 , 如传送的通信命 令正确则进行相应的功能操作 , 同时从 机向主机返 回响应 消息 , 如图 l 所示. 本文以单 片机侧为主机 , P L C侧为从机 , 按照 M O D B U S R T U模式进行通信.
1 MO D B U S通 信 协 议 [ 1 , 2 3
MO D B U S通 信协 议是 M o d i c o n公 司推 出 的一 个 开放 性 通 信协 议 , 通 过 此协 议 , 控 制器 相 互 之 间 、 控
制器经由网络和其它设备之间可以通信 , 它已经成为一通用工业标准. M O D B U S 通信协议有 R T U模式和 A S C I I 模式两种传输模式, 其中R T u模式信息帧中的8 位数据包
( 1 ) 主机单 片 机侧 采用 R S 2 3 2串行 通 信接 口, 从机 s 7 。 2 0 0 P L C的串行通信接 E I 为D B - 9 针R S 4 8 5接 口, 这里采用 C P U

基于ModBus协议的STM32单片机与MCGS通信设计

基于ModBus协议的STM32单片机与MCGS通信设计

基于ModBus协议的STM32单片机与MCGS通信设计ModBus是一种常用的通信协议,广泛应用于工业自动化领域。

本文将介绍如何基于ModBus协议设计和实现STM32单片机与MCGS之间的通信。

一、引言在现代工业自动化系统中,通信是不可或缺的一环。

STM32是一款功能强大的单片机,而MCGS是一款常用的人机界面软件,它们之间的通信可以实现对工业设备的控制和监测。

本文旨在介绍如何利用ModBus协议实现STM32单片机和MCGS之间的稳定通信。

二、通信原理ModBus协议是一种基于主从结构的通信协议。

在通信过程中,STM32单片机作为从机,MCGS作为主机。

主机通过发送指令来获取或设置从机的数据。

三、硬件设计1. STM32单片机选择在本设计中,我们选择了一款功能强大且成本较低的STM32F103系列单片机作为通信的从机。

这款单片机具有较多的GPIO口、通信接口和丰富的外设,非常适合工业自动化领域的通信需求。

2. 连接方式STM32单片机与MCGS之间可以通过RS485通信进行连接。

RS485是一种常用的工业通信接口,具有抗干扰能力强的特点。

在连接过程中,需要将STM32的TX引脚与MCGS的RX引脚相连,同时将STM32的RX引脚与MCGS的TX引脚相连。

四、软件设计1. STM32单片机程序设计在STM32单片机程序设计中,首先需要配置串口通信的参数,包括波特率、数据位数、停止位数等。

然后按照ModBus协议规定的格式进行数据的解析和处理。

将接收到的数据根据指令要求进行响应,然后再将响应数据发送给MCGS。

2. MCGS界面设计在MCGS界面设计中,需要添加ModBus通信控件,并进行相应的参数配置。

通过配置从机的地址、寄存器的地址以及读写操作,实现与STM32单片机的通信。

同时,设计合适的界面布局,使用户能够直观地了解设备的状态和实时数据。

五、通信测试在完成硬件和软件设计后,需要进行通信测试,以确保通信的稳定性和准确性。

基于MODBUS协议的单片机与PLC通讯的设计

基于MODBUS协议的单片机与PLC通讯的设计

第1章绪论随着计算机、数字通信的快速发展,计算机控制已经拓展到全部的工业领域。

其中,单片机和PLC得到了长足的发展,在小规模的控制系统中得到了非常广的应用。

对工业系统来说,PLC与单片机的应用都比较普及,可是,两者都有各自的优缺点。

单片机的驱动能力比较弱,且无法驱动大功率、大电流设备的直接运行,因而在使用方面受到限定。

相比而言PLC则运行可靠、使用也相对简单、抗干扰效果好,而且负载驱动能力也比较强,所以适合在一些环境较差的地方工作。

可是PLC控制能力固然强,但是其结构锁闭,缺乏智能化,无法链接键盘等外部设备,所以在使用PLC时就必须要通过外部智能设备编程来实现控制。

想要进行弱电控制强电,必须要有智能程度较高的核心。

而单片机的智能化程度很高,在系统的设置和外部设备的管理中起着非常高的作用。

PLC和单片机联系可以提升PLC的数据处理功能,友好与简洁的人机交互也给用户提。

供了很大便利。

本次要实现基于modbus协议的单片机与plc通讯的设计,通过MX232接口。

转RS485接口转换电路,将单片机与PLC进行连接,单片机作为上位机向PLC发送数据,实现以51 单片机为核心,将输出信号通过RS485总线来与西门子S7-200PLC进行串口通信。

1.1主要任务以及目标通过查阅相关资料,了解51单片机及S7-200PLC通讯的发展概况;根据相关文献,深入学习51单片机及S7-200 PLC通讯系统各部分的组成以及控。

制的基本原理和方法;综合运用所学的模拟电子技术、数字电子技术、电力电子技术、无线通信技术、嵌入式等知识,进而查阅相关文献,研究51单片机及S7-200 PLC通讯的设计方法;根据要求,编写软件设计基于51单片机及S7-200的PLC各个功能模块;通过该设计,达到以下几个目标:提高分析和解决问题的能力;提高对所学知识的综合运用的能力;提高查阅有关文献的能力;获得工程设计的基本训练;提高动手操作能力。

探讨PLC与单片机之间的串行通信实现

探讨PLC与单片机之间的串行通信实现

探讨PLC与单片机之间的串行通信实现PLC(可编程逻辑控制器)与单片机(微型计算机)之间的串行通信实现是工业控制领域中的一个重要问题。

在许多工控系统中,PLC和单片机都担任着重要的控制角色,而两者之间的通信却是不可避免的。

在串行通信中,数据是逐位发送的,通常使用RS232、RS485、Modbus等协议,通信速度取决于通信协议和硬件设备。

PLC和单片机之间的串行通信可以通过以下几种方式实现:1. RS232串口通信RS232串口通信是一种最为基本的串行通信方式,它使用的是同步传输方式,通常用于短距离通信。

PLC和单片机都支持RS232串口通信,可以通过串口线连接并进行数据传输。

在通信过程中,需要注意通信协议的制定、数据格式的统一以及波特率的设定。

RS485串口通信是一种双向的、差分信号的串行通信方式,通常用于长距离通信和异地通信。

PLC和单片机都支持RS485串口通信,可以通过RS485转接板或者直接连接实现数据传输。

RS485通信协议相对简单,但需要注意地址编码、数据加工和防干扰等问题。

3. Modbus协议通信Modbus协议是一种串口通信协议,可用于PLC与单片机之间的数据传输。

Modbus协议支持RS232和RS485通信模式,其通信速度较快,可用于实时控制应用。

在Modbus通信中,需要设定起始地址、数据长度、读写模式等参数,以确保数据传输的正确性。

综上所述,PLC与单片机之间的串行通信实现有多种方式,大多数情况下,选择通信方式要根据具体应用场景及硬件设备考虑。

在通信过程中,需要注意通信协议的制定、数据格式的统一、波特率的设定以及防干扰等细节问题,以确保通信正常、可靠。

基于Modbus协议的工控机与单片机的串行通信设计

基于Modbus协议的工控机与单片机的串行通信设计

基于M o d b u s 协议的工控机与单片机的串行通信设计陈冀川* 朱怀忠(河北工业大学计算机科学与软件学院 天津 300310)摘 要:本文简要介绍了M o d b u s 通信协议的R T U 模式特点,阐述了该协议在V B 6.0编程环境下通过M S C o m m 控件实现工控机与火灾报警终端通信的具体方法。

该方法简单实用,对类似系统的设计开发有一定的借鉴作用。

关键字:M o d b u s 协议;M S C o m m 控件中图分类号:T P 368.1 文献标识码:A 文章编号:1008-911X (2009)02-0042-05D e s i g n o f t h e S e r i a l C o m m u n i c a t i o n b e t w e e nI P Ca n d MC UB a s e d o nM o d b u s P r o t o c o lC h e nJ i c h u a n,Z h u H u a i z h o n g(S c h o o l o f C o m p u t e r S c i e n c e a n dS o f t w a r e E n g i n e e r i n g ,H e b e i U n i v e r s i t yo f T e c h n o l o g y ,T i a n j i n 300310,C h i n a )A b s t r a c t :T h e f e a t u r e s o f t h e M o d b u s c o m m u n i c a t i o n p r o t o c o l i n R T Um o d e a r e i n t r o d u c e d b r i e f l y .T h e m e t h o d f o r r e a l i z i n g t h e c o m m u n i c a t i o n b e t w e e n I P C a n d T e r m i n a l o f f i r e a l a r mb a s e d o n M o d b u s p r o t o c o l i s a l s o e x p l a i n e d .T h e s e r i a l c o m m u n i c a t i o n i s p r o g r a m m e d w i t h M S C o m mc o n t r o l u n d e r V B .I t i s e a s y a n d p r a c t i c a l ,a n d c a n p r o v i d e c e r t a i n r e f e r e n c e s f o r t h e d e s i g n a n d d e v e l o p m e n t o f s i m i l a r s y s t e m s .K e y w o r d s :M o d b u s p r o t o c o l ;M S C o m m c o n t r o l 在工业控制领域中,M o d b u s 协议是应用于控制器上的一种通用语言。

plc与单片机modbus通信

plc与单片机modbus通信
119
信息通信
SET S1 STLE STL S1 LD S1 OUT T202 K20 LD M8138 OR M8137 OR T202 OUT T203 K2 LD T203 REGR K1 K20 K2 D20 K2 SET S0 STLE END 指令解释:M8002-初始正向脉冲,M8137-串口 2 通讯错误 结束信号,M8138--串口 2 通讯正常结束信号,T200~T203-10ms 计数器,REGW--单个寄存器写 ,REGR--寄存器读。 工作原理:开机后将常数 29(可以是其它任何值)放入数 据寄存器 D10 中,进入流程 S0,启动定时器 T200,等待通信正 常信号 M8138 或错误信号 M8137,如果在 200ms 时间内无应 答,启动定时器 T201,如果有通信正常信号 M8138 或错误信 号 M8137,直接启动定时器 T201,经 T201 的 20ms 延迟后, PLC 通过串口 2 把 D10 的数据写入到站号为 1 的单片机从机 地址为 10 的寄存器中。REGW K1 K10 D10 K2 中 k1 是表示 从机号,即单片机,k10 表示待写入的单片机的数据寄存器地 址,D10 表示 PLC 的数据寄存器,K2 表示通信串口 2,即 PLC 的 RS485 通信口。PLC 写入单片机数据后,系统进入流程 S1, S1 流程和 S0 流程类似,先等待通信应答信号,有信号或等待 超时系统进入读单片机信号,PLC 通过串口 2 把站号为 1 的 单片机从机的地址为 10 的数据读入到 PLC 中 D20 中;单片 机地址为 11 的数据读入到 PLC 的 D21 中。REGR K1 K20 K2 D20 K2 中 K1 表示从机号,即单片机,K20 表示待读出的单片 机的数据寄存器起始地址,K2 表示读取个数,D20 表示 PLC 的数据寄存器,K2 表示通信串口 2。然后流程又进入 S0,进 行下一轮写读判断循环。 3.2 单片机编程 单片机编程流程图如图 3 所示:

基于Modbus协议的PLC与单片机的多机通讯

基于Modbus协议的PLC与单片机的多机通讯

基于Modbus协议的PLC与单片机的多机通讯
陈林
【期刊名称】《工业控制计算机》
【年(卷),期】2014(027)011
【摘要】通过设计了单片机硬件电路,扩展了RS485通讯能力,实现了与S7-200的Modbus协议多机通讯功能,在工业应用中具有良好的实用价值.
【总页数】2页(P90-91)
【作者】陈林
【作者单位】无锡职业技术学院控制学院,江苏无锡214121
【正文语种】中文
【相关文献】
1.单片机与PLC之间的通讯模式的Modbus协议的有效应用 [J], 窦群
2.基于RS485接口Modbus协议的PLC与多机通讯 [J], 邓志君;梁松峰
3.基于MODBUS协议的单片机与触摸屏通讯接口设计 [J], 欧阳崇伟;杨秋萍;李疆
4.基于Modbus协议实现单片机与PLC之间的通讯 [J], 蔡晓燕; 赵兴群; 万遂人; 董鹏云
5.基于Modbus协议的单片机触摸屏通讯系统设计应用 [J], 刘永琦;曲鸣飞
因版权原因,仅展示原文概要,查看原文内容请购买。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于Modbus协议实现单片机与PLC之间的通讯
来源:PLC&FA 作者:蔡晓燕赵兴群万遂人董鹏云
关键词:可编程控制器 Modbus 通讯协议
1 引言
HMI(人机界面)以其体积小,高性能,强实时等特点,越来越多的应用于工业自动化系统和设备中。

它有字母、汉字、图形和图片等不同的显示,界面简单友好。

配有长寿命的薄膜按钮键盘,操作简单。

它一般采用具有集成度高、速度快、高可靠且价格低等优点的单片机[1]作为其核心控制器,以实现实时快速处理。

PLC和单片机结合不仅可以提PLC的数据处理能力,还可以给用户带来友好简洁的界面。

本文以Modbus通讯协议为例,详细讨论了一个人机系统中,如何用C51实现单片机和PLC之间通讯的实例。

2 Modbus通讯协议[4]
Modbus协议是应用于电子控制器上的一种通用语言。

通过此协议,控制器相互之间、控制器经由网络和其它设备之间可以通信。

Modbus协议提供了主—从原则,即仅一设备(主设备)能初始化传输(查询)。

其它设备(从设备)根据主设备查询提供的数据作出相应反应。

主设备查询的格式:设备地址(或广播,此时不需要回应)、功能代码、所有要发送的数据、和一错误检测域。

从设备回应消息包括确认地址、功能码、任何要返回的数据、和一错误检测域。

如果在消息接收过程中发生一错误,或从设备不能执行其命令,从设备将建立一错误消息并把它作为回应发送出去。

控制器能设置为两种传输模式:ASCII和RTU,在同样的波特率下,RTU可比ASCII方式传送更多的数据,所以采用KTU模式。

(1) 典型的RTU消息帧
典型的RTU消息帧如表1所示。

RTU消息帧的地址域包含8bit。

可能的从设备地址是0...127(十进制)。

其中地址0是用作广播地址,以使所有的从设备都能认识。

主设备通过将要联络的从设备的地址放入消息中的地址域来选通从设备。

当从设备发送回应消息时,它把自己的地址放入回应的地址域中,以便主设备知道是哪一个设备作出回应。

RTU消息帧中的功能代码域包含了8bits,当消息从主设备发往从设备时,功能代码域将告之从设备需要执行哪些行为;当从设备回应时,它使用功能代码域来指示是正常回应(无误)还是有某种错误发生(称作异议回应,一般是将功能码的最高位由0改为1)。

从主设备发给从设备消息的数据域包含附加的信息:从设备必须用于进行执行由功能代
码所定义的行为。

这包括了像不连续的寄存器地址,要处理项的数目,域中实际数据字节数。

如果没有错误发生,从从设备返回的数据域包含请求的数据。

如果有错误发生,此域包含一异议代码,主设备应用程序可以用来判断采取下一步行动。

当选用RTU模式作字符帧时,错误检测域包含一16Bits值(用两个8位的字符来实现)。

错误检测域的内容是通过对消息内容进行循环冗长检测(CRC)方法得出的。

CRC域附加在消息的最后,添加时先是低字节然后是高字节。

(2) 所有的Modbus功能码
Modbus的功能码定义如表2所示。

3 常用功能通讯程序的设计[5]
本文介绍了几个Modbus常用功能程序的设计。

笔者采用单片机作为主机,在单片机上编写程序实现单片机与PLC之间的通讯。

由单片机向PLC发出命令信息,PLC自动作出回应。

PLC通过单片机的串行通讯口通讯,程序用C51实现。

程序的子函数及其功能:
(1) 串口初始化
void ProtocolInit(void)
函数功能:串口设置为异步通讯方式1(起始位1位,数据位8位,停止位1位);定时/计数器1设置为波特率发生器,通讯速率9600bps;开串行中断,并把串行中断设置为高优先级。

(2) CRC简单函数
unsigned char Crc16(unsigned char *puchMsg, unsigned char usDataLen)
函数功能:先调入一值是全“1”的16位寄存器,然后调用一过程将消息中连续的8位字节各当前寄存器中的值进行处理。

每个8位字符都单独和寄存器内容相或(OR),结果向最低有效位方向移动,最高有效位以0填充。

LSB被提取出来检测,如果LSB为1,寄存器单独和预置的值或一下,如果LSB为0,则不进行。

整个过程要重复8次。

在最后一位(第8位)完成后,下一个8位字节又单独和寄存器的当前值相或。

最终寄存器中的值,是消息中所有的字节都执行之后的CRC值。

(3) 初始化变量
void Initvar(void)
函数功能:初始化所有过程变量。

(4) 串行中断服务程序
void ProtocolSerialProcess(void) interrupt 4 using 2
函数功能:发送中断发送主机形成的命令数组,发送完后置标志位;接收中断接收PLC返回的响应数组,存入接收数组,并置标志位,且假设响应正确,留待主机处理。

(5) 读N个位变量(线圈)
void ProtocolRead_bit(unsigned char DeviceAddr/* PLC局号*/, unsigned char RegTy pe/*寄存器类型*/, unsigned int BitAddr/*起始地址*/, unsigned char SubAddr/*子地址*/, unsigned int BitNum/*位数*/)
函数功能:根据函数参数,形成读N个位变量的命令数组,启动发送。

等待发送完并接收完(如超时未接收完则重新发送)。

分析接收数组:正确,保存读取的数据;错误,重新发送。

(6) 写一个位变量
void ProtocolSetBit(unsigned char DeviceAddr/* PLC局号*/, unsigned char RegType/ *寄存器类型*/, unsigned int BitAddr/*地址*/, unsigned char SubAddr/*子地址*/, unsign ed int ClrSet/*写值“1”或“0”*/)
函数功能:根据函数参数,形成置某位变量为“1”或“0”的命令数组,启动发送。

等待发送完并接收完(如超时未接收完则重新发送)。

分析接收数组:正确,返回;错误,重新发送。

(7) 读N个字节变量
void ProtocolReadByte(unsigned char DeviceAddr/* PLC局号*/, unsigned char RegTy pe/*寄存器类型*/, unsigned int RegAddr/*起始地址*/, unsigned char SubAddr/*子地址* /, unsigned int RegNum/*个数*/)
函数功能:根据函数参数,形成读N个字节变量的命令数组,启动发送。

等待发送完并接收完(如超时未接收完则重新发送)。

分析接收数组:正确,保存读取的数据;错误,重新发送。

(8) 写N个字节变量
void ProtocolSetByte(unsigned char DeviceAddr/* PLC局号*/, unsigned char RegTyp e/*寄存器类型*/, unsigned int RegAddr/*起始地址*/, unsigned char SubAddr/*子地址*/, unsigned int RegNum/*个数*/)
函数功能:根据函数参数,形成写N个字变量的命令数组(要写的数从某参数数组中读取),启动发送。

等待发送完并接收完(如超时未接收完则重新发送)。

分析接收数组:正确,返回;错误,重新发送。

4 结束语
以上的程序已经通过实验,并应用于实际的人机系统中。

依照类似的方法,可以编写其他不同功能的程序,实现对PLC的不同控制和操作。

利用单片机和PLC进行优势互补,可以组成网络化、智能化的工业控制系统。

另外整个单片机系统程序用C51语言编程,程序简洁,便于阅读与调试。

单片机和人机界面结合可以实时的显示PLC的工作状况,实时的控制、设置、调整PLC工作情况,提高工业控制的自动化程度和实时性。

相关文档
最新文档