PC机与PLC的串行通信通过Modbus TCP协议实现
- 格式:pdf
- 大小:184.52 KB
- 文档页数:4
基于Modbus TCP 协议实现PC 机与PLC 的串行通信1 引言智能楼宇工程中的中央空调、电梯、通风、给排水、照明、火灾报警等个子系统的互联方案中,采用modbus tcp 协议的串行通信方式,全面兼容modbus 工业标准,数据传输可靠,响应速度快,扩展灵活,通过互联网实现各子系统与中央管理系统的通信。
modbus tcp 协议是在tcp/ip 标准中,应用层采用工业领域事实标准modbus。
modbus 使用tcp/ip 应用层的502 端口,这是经过国际公认的。
该串行总线方式支持各种介质的rs-232、rs-422、rs-485 接口。
modbus tcp 的网络通信模式采用client/server 方式,如2.1 协议分析modbus tcp 数据报文结构,如一次modbus tcp 读取保持寄存器的通信分析(省略了ip/tcp 头):从左向右分析该数据报文:00 03 为此次通信编号,一般每次通信之后将被要求加1 以区别不同的通信数据报文;00 00 表示协议标识符,00 00 为modbus 协议;00 06 为数据长度,用来指示接下来数据的长度,单位字节;03 为设备地址,用以标识连接在串行线或者网络上的远程服务端的地址。
以上七个字节也被称为modbus 报文头。
03 为功能码,此时代码03 为读取保持寄存器数据。
00 00 00 01 为功能码的参数,指示将被读取的保持寄存器的地址与长度。
从左向右分析该数据报文:00 03 为此次通信编号,应答报文要求与先前对应的请求保持一致;00 00 为协议标识符,00 00 表示modbus 协议;00 05 为数据长度,用来指示接下来数据的长度,单位字节;03 为设备地址,应答报文要求与先前对应的请求保持一致。
以上七个字节同样为modbus 报文头。
03 为功能码,正常情况下应答报文要求与先前对应的请求保持一致,如果出错则返回80h+先前的功能码。
电脑与台达plc网口通讯在现代工业控制系统中,PLC(可编程逻辑控制器)是一种非常重要的设备。
它能够实现自动化控制,保障工业生产的高效性和稳定性。
然而,要使PLC发挥其优势,必须与其他设备(如电脑)进行通信。
本文将介绍电脑与台达PLC网口通讯的原理、方法以及应用。
一、通讯原理现在,PLC的通讯主要使用串行通信和以太网通信两种方式。
其中,串行通信速度相对较慢,一般用于较简单的工业场景。
而以太网通信则能提供更高的数据传输速度和更稳定的连接,适用于复杂的工业控制系统。
二、网口通讯方法针对网口通讯,我们可以使用不同的通讯协议和软件来实现。
在与台达PLC进行通讯时,一种常用的方法是使用Modbus协议。
Modbus协议是一种开放的工业通讯协议,具有广泛的应用。
通过Modbus协议,电脑可以与台达PLC进行数据传输和命令交互。
与此同时,为了实现网口通讯,我们还需要用到PLC编程软件。
对于台达PLC来说,其编程软件为ISPSoft。
通过ISPSoft,我们可以配置PLC的通讯参数,编写相应的程序,并与电脑建立连接。
三、通讯过程在进行电脑与台达PLC网口通讯之前,我们需要确保电脑和PLC在同一局域网内,并且具备相应的IP地址。
首先,在ISPSoft软件中,我们需要进行通讯参数的设置。
具体包括选择通讯端口、设置PLC的IP地址和端口号等。
接下来,我们可以编写PLC程序,来实现与电脑的通讯功能。
在电脑端,我们可以使用串口调试助手这样的工具,通过串口与PLC进行连接和通讯。
通过输入相应的Modbus指令,我们可以实现数据的读取、写入以及设备的控制。
例如,我们可以通过发送读取指令,获取PLC中某个寄存器的值,以便进行后续的处理。
在整个通讯过程中,需要注意的是通讯参数的设置和指令的正确使用。
同时,稳定的网络连接也是保障通讯正常进行的重要因素。
四、应用案例电脑与台达PLC网口通讯在实际工业控制中有着广泛的应用。
举个例子,我们可以将此种通讯方式应用于自动化生产线的监控与控制。
第30卷 第10期2023年10月仪器仪表用户INSTRUMENTATIONVol.302023 No.10Modbus TCP通讯在中广核国产化PLC中的应用高 阳(上海中广核工程科技有限公司,上海 200241)摘 要:Modbus TCP 通讯协议是应用于工业控制器的一种通用语言。
通过此协议,可实现控制器与外部设备之间的通信。
在工业控制中,可编程控制器(PLC)作为工业控制装置已得到广泛地应用。
具有高可靠性、高稳定性的中广核国产化PLC,可以完美支持Modbus TCP 协议。
本文描述了Modbus TCP 通讯协议应用于中广核国产化PLC 中的配置方法,并通过一个通讯实例展示了PLC 与SCADA 之间的数据交互情况,表明中广核国产化PLC 可方便实现与外部设备之间的Modbus TCP 通信。
关键词:Modbus TCP ;国产化;PLC中图分类号:TK83 文献标志码:AApplication of Modbus TCP Communication in CGN Domestic PLCGao Yang(Shanghai CGN Engineering T echnology Co., Ltd.,Shanghai,200241,China )Abstract:The Modbus TCP communication protocol is a common language used in industrial controllers. This protocol enablesremote communication between the controller and the device. In industrial control, programmable logic controller (PLC) has been widely used as an industrial control device. CGN localized PLC with high reliability nuclear power quality can perfectly support Modbus TCP protocol. This paper introduces the configuration method of the Modbus TCP communication protocol applied to the CGN localized PLC, and shows the data interaction between PLC and SCADA through a communication sample, indicates that the CGN localized PLC could support Modbus TCP communication protocol with the host.Key words:Modbus TCP ;domestic ;PLC收稿日期:2023-06-29作者简介:高阳(1983-),男,哈尔滨人,硕士研究生,主任工程师,研究方向:风力发电机系统及其控制。
plc和计算机间串行通讯程序设计PLC和计算机间的串行通讯可以通过多种协议,如RS232、RS485、Modbus等进行。
其基本原理是通过串行通讯口将PLC和计算机连接起来,然后通过编程实现对PLC进行读写操作,以实现数据的交换。
具体的串行通讯程序设计需要考虑以下几个方面:
1. 确定通讯协议:在实现串行通讯时,需要确定通讯协议,比如RS232、RS485、Modbus等,然后根据协议要求对通讯口进行配置。
2. 配置串行通讯口:对于不同的通讯协议,需要对串行通讯口进
行不同的配置,如波特率、数据位、校验位等。
3. 编写数据收发程序:通过编写数据收发程序,可以实现对PLC
和计算机之间数据的交换。
一般来说,先发送数据请求给PLC,PLC接
收请求后返回数据,然后计算机再对收到的数据进行解析和处理。
4. 错误处理:在实际的串行通讯中,可能会发生各种错误,如通
讯中断、数据异常等,需要对这些错误进行处理,以保证程序的稳定
性和可靠性。
总的来说,串行通讯程序设计需要充分了解通讯协议和串行通讯
口的相关知识,同时需要对PLC和计算机之间的通讯进行严谨的设计
和实现,以确保程序的正常运行。
1 TCP协议基本含义分析(1)TCP协议为客户提供较为全面和系统的服务器连接与客户端。
某一既定TCP协议用户可以实现与服务器的实质性连接,并利用这一连接和服务器进行规模性的数据交互。
(2)TCP协议为用户提供较强的可靠性。
在TCP协议向其他计算机发送信息数据的过程中,需要对方进行人工审核确认。
若不能收到确认信息,那么TCP协议将自行重新传输数据,直至五次数据传输均失败的情况下,自行选择传输放弃。
(3)TCP协议内不含有用于实时性计算用户到服务器往返时间的计算系统,所以TCP协议能够有效掌握确认等待时间。
(4)TCP协议以向每一个字节发送数据的形式,使这些字节产生关联并获得相应序列号。
(5)TCP协议具有流量控制功能,使对端TCP协议掌握自身能够接受字节的范畴,这也就是我们常说的通告窗口。
TCP客户端和服务端构建连接的过程被我们称为三次握手:(1)客户端向服务器端发送SYN报告文件,正式进入SYN 模式。
(2)当服务器接到报文以后,迅速作出回应向对方发送ACK报文,进入RECV运行模式。
(3)当客户端收到回应以后,再次回应ACK报文,最终完成三次握手。
2 西门子PLC通信设置普遍来说,PLC和PC的地址需要在相同网络内,也就是各自的网络需要在物理层面相通,反之则无法进行有效通信。
现阶段,在国际上较为主流的西门子系列PLC系统当中,部分系列的中央处理器模块不具备以太网连接接口,必须通过西门子公司自行生产的以太网通信模块。
然而,目前最新的西门子S7-1200PLC系列和1500PLC系列再设计的过程中,为避免过去系列中的缺点与不足,在中央处理器本体设置profinets接口,能够良好支持TCP协议与以太网通信标准。
利用以太网便能轻松实现中央处理器和变成构件之间的通信,以及与其他中央处理器、PC之间的通信。
以西门子公司生产的S7-1200PLC系列为实际案例,实施软件编程与网络设置,其具体操作流程和其他PLC系列差距较小基本相同。
Modbus TCP通信功能应用示例1. 控制要求两台PLC,其中一台型号为S7-1200 CPU1215C DC/DC/DC,作为客户端(PLC_1);另一台型号为S7-1200 CPU1214C AC/DC/RLY,作为服务器(PLC_2)。
要求通过MODBUS TCP协议实现两台PLC的通信与数据交换:1)PLC_1读取PLC_2保持寄存器中10个字的数据;2)PLC_1向PLC_2保持寄存器写入10个字的数据。
2. 系统结构PLC_1 (S7-1200 CPU1215C DC/DC/DC)集成有两口交换机,采用两根以太网电缆,分别连接PC机和PLC_2,完成系统的网络连接。
如图7-18所示系统硬件连接示意图。
图7-18 硬件连接示意图3. 创建新项目打开TIA PORTAL V13 SP1软件,创建新项目“MODBUS-TCP通信示例”;然后在项目树下点击“添加新设备”,选择CPU1215C DC/DC/DC(订货号:6ES7 215-1AG40-0XB0,固件版本:V4.x),创建一个PLC_1站点,并将PLC_1的 IP 地址定义为192.168.0.1、子网掩码为255.255.255.0,如图7-19所示。
同样,继续添加新设备,选择CPU1214C AC/DC/RLY(订货号:6ES7 214-1BG40-0XB0,固件版本:V4.x),创建一个PLC_2站点,并将PLC_2的 IP 地址定义为192.168.0.2、子网掩码为255.255.255.0,如图7-20所示。
设置完成后,在网络视图中,建立两台PLC之间的PN/IE网络连接。
图7-19 PLC_1 IP地址设置 图7-20 PLC_2 IP地址设置两台PLC的相关参数设置如表7-1所示。
表7-1 PLC通信参数设置4. S7-1200 Modbus TCP 客户端参数设置与程序编写S7-1200 客户端侧需要调用MB_CLIENT指令块,该指令块主要完成客户机和服务器的TCP连接、发送命令消息、接收响应以及控制服务器断开的工作任务。
虚拟仪器与S7-1200系列PLC 基于Modbus TCP协议实现PC对PLC监控LabVIEW是一种图形化编程软件,使用灵活方便,虚拟仪器开发环境能支持多种接口通信,而以太网接口的通信方式被广泛应用到工业设备中,本文详细介绍了使用LabVIEW内置的TCP模块编写上位机的程序,利用了ModbusTCP/ IP 协议实现了PC主机与西门子S7-1200PLC的通信,PC机读取并写入PLC数据块DB的数据。
从而实现对运行设备的监控。
标签:Modbus TCP/IP协议;虚拟仪器;S7-1200PLC1引言LabVIEW不仅具有强大的虚拟仪表功能,还具有丰富的图形界面模块,支持多种通信协议、数字信号处理。
在工业设备控制上用LabVIEW实施设备运行状态显示和设备在PC机上控制,不仅能够达到智能的人机界面、智能化控制,而且便于专业技术人员对控制系统软件的二次开发。
本文以开发垂直升降类机械式立体停车库的上位机为背景,介绍了用LabVIEW实时在线显示车库运行状态和存取车辆的功能。
2 Modbus TCP客户机与服务器Modbus客户机:允许用户应用控制与远程设备的信息交换。
客户机根据用户应用向Modbus客户机接口的发送要求中所包含的参数来建立一个Modbus请求。
Modbus客户机接口提供一个接口,使得用户应用能够生成各类Modbus服务的请求,该服务包括对Modbus应用对象的访问。
Modbus服务器在收到一个Modbus请求以后,模块激活一个本地操作进行读、写、或完成其他操作。
本文将运用Modbus TCP/IP技术实现计算机和西门子S7-1200PLC之间的通信。
3 系统硬件组成上位机上位机采用普通计算机。
由于本系统采用以太网连接,所以要求计算机必须安装有以太网卡。
下位机下位机使用西门子S7-1215C AC/DC/RL Y PLC,固件版本4.2。
选用的CPU 集成两个带隔离的PROFINET以太网端口,该端口都可用于编程上传和下载,支持PC与PLC间通信。
基于VB实现台达PLC与PC串行通讯随着工业自动化控制技术的不断发展,可编程逻辑控制器(PLC)与上位机之间通讯的应用越来越广泛。
在PLC与上位机组成的集散控制系统中,PLC作为下位机完成现场各种信号和数据的采集、运算和完成对系统的底层控制,上位机则可提供人机交互界面,实现数据的处理以及现场数据的实时显示等监视和远程控制等功能。
为实现面向产品全生命周期的数字化远程服务经营理念的制造装备的远程监测、诊断与维护技术,随着移动通讯市场的迅速扩大,GSM 无线数字蜂窝通讯网络在我国得到了高速的发展,不但拥有较高的覆盖率,而且相继开放了SMS(短消息)、FAX(传真)、DATA(数据)等业务,为选择高效、廉价的数据传输提供了新的思路。
各种组态软件,如:iFix、MCGS、组态王等虽然可以实现PLC的远程监控,但不能实现PLC Modbus通讯协议与GSM模块的通讯协议的转换。
本文就是基于这点考虑,运用VB编制操作界面和通信功能,完成台达PLC与PC机串行通讯,这是实现GSM模块与PLC通讯的关键技术所在。
1通讯硬件及协议简介1.1通讯硬件组成台达PLC自带有两个通讯串口(EH系列可扩展第三个通讯口RS-485或RS-422)COM1和COM2。
COM1采用标准RS-232接口,它是一种近距离、低干扰、点对点的通讯协议。
该接口在下载完PLC程序后一般都处于闲置状态。
COM2是标准RS-485接口,可用于用抗干扰能力强、可多台串接组网的通讯方式。
在该生产线的控制系统中,COM2已用于PLC与变频器之间的通讯,而一般PC机都自带标准RS-232接口。
因此PC机与PLC之间通讯采用COM1(RS-232)接口,连接线采用台达PLC的编程电缆DVPACAB230。
1.2通讯协议介绍Modbus 协议是应用于电子控制器上的一种通用语言。
通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。
它已经成为一通用工业标准。
基于Modbus TCP协议实现PC机与PLC的串行通信邬书金; 万频; 何吉越; 胡健; 宓超
【期刊名称】《《可编程控制器与工厂自动化(PLC FA)》》
【年(卷),期】2009(000)009
【摘要】通过一个智能楼宇工程项目,介绍Modbus TCP协议的发展与应用,重点分析研究了Modbus TOP读取PLC的保持寄存器数据的过程,编写出基于Modbus TCP协议的VC串行通信程序,并在智能楼宇工程中获得成功应用。
【总页数】2页(P63-64)
【作者】邬书金; 万频; 何吉越; 胡健; 宓超
【作者单位】广东工业大学自动化学院; 上海海事大学物流工程学院
【正文语种】中文
【中图分类】TP316
【相关文献】
1.基于Modbus协议的PC机与S7-200PLC的串行通信 [J], 章程;程文明;肖建军
2.基于编程口的三菱PLC与PC机串行通信实现 [J], 柳剑;陈於学;杨曙年
3.基于三菱FXPLC的感应淬火机床与PC机的串行通信实现 [J], 雷钧;罗敏;吴岳敏
4.基于MODBUS协议的单片机与S7-200PLC串行通信的实现 [J], 张洁;马凤铭;徐颖
5.基于编程口的三菱PLC与PC机串行通信实现 [J], 黄章硕;
因版权原因,仅展示原文概要,查看原文内容请购买。
基于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)。
209MODBUS TCP 通讯协议在PLC 与串口服务器的通讯应用马永钧,王彦龙(北京源深节能技术有限责任公司,北京海淀100142)摘要:文章介绍了MODBUS 通讯协议的PLC 与串口服务器的通讯应用。
主要包括MODBUS TCP 通讯原理、串口服务器的通讯配置、PLC 组态配置和软件通讯实现等内容。
实践表明,该系统具有良好的实时性和可靠性。
关键词:MODBUS TCP ;通讯;PLC ;串口服务器中图分类号:TP393.05文献标识码:A 文章编号:1673-1131(2016)10-0209-020引言在工业企业中,集散控制系统(DCS )与可编程逻辑控制器(PLC )、数据采集器和各种智能仪表通过控制网络相互组合构成完整的自动化控制系统。
现场设备通常采用RS-232和RS-485总线进行连接,但是随着工业企业对自动化应用的实时性需求日益提高,工业以太网在自动化领域被广泛应用,取代串口通讯已成为自动化系统的一种趋势。
为了保护对现有设备的投资,同时满足用户对数据通讯处理能力的要求,就需要将原有串口通讯转换成工业以太网通讯,而串口服务器是设备硬件串口转以太网连接的桥梁,它能将传统的串行数据变成基于TCP/IP 协议的报文数据。
基于MODBUS TCP 协议的工业以太网连接方便,现场较容易实施,TCP/IP 协议的基础上在应用层使用MODBUS TCP 通讯协议,就能实现使用工业以太网进行数据实时交换,将大量的数据传输到实时监控网和管理网。
本文深入研究了MODBUS TCP 通讯协议,对MODBUS TCP 通讯原理、串口服务器的通讯设置、PLC 的组态配置和控制逻辑实现进行了详细说明。
1MODBUS TCP 协议MODBUS 协议是工业控制领域中最流行的通讯协议,它支持传统的RS232、RS422、RS485和以太网设备。
MODBUS 协议有两种通讯方式,既RTU (远程终端)方式和ASCII 方式。
第3期(总第148期)2008年6月机械工程与自动化M ECHAN IC AL EN GIN EERIN G & A U TO M A T IO N N o.3J un.文章编号:1672-6413(2008)03-0085-03基于M odbus 协议的PC 机与S7-200PLC 的串行通信章 程,程文明,肖建军(西南交通大学机械工程学院,四川 成都 610031)摘要:介绍了M o dbus 协议并讨论了遵守M o dbus R T U 协议的传输数据的CRC 算法验证的实现。
结合西门子S7-200PL C 的特点给出了利用Visua l Basic 中的M SCo mm 控件实现基于该协议的计算机与可编程控制器串行通信的方法。
关键词:PL C ;串行通信;M odbus 协议中图分类号:T P274 文献标识码:A收稿日期:2007-09-30;修回日期:2008-01-11作者简介:章程(1982-),男,湖南岳阳人,硕士研究生,研究方向:机电智能控制。
0 引言在工业控制领域中,PLC 作为一种稳定可靠的控制器得到了广泛的应用。
但它也有一些自身的缺点:数据的计算处理和管理能力较弱,不能给用户提供良好的界面等。
而计算机恰好能弥补PLC 的不足,它不但有很强的数据处理和管理能力,而且能给用户提供非常美观而又易于操作的界面。
将PLC 与计算机结合,可使系统既能及时地采集、存储数据,又可处理和使用好数据,这是PLC 发展和应用的一个热点问题。
计算机与PLC 结合的关键是它们之间通信功能的实现,本文主要介绍如何利用Visual Basic 的M SComm 控件和M odbus 协议来轻松地实现计算机与PLC 之间的串行通信。
1 S 7-200系列PLC 的通信协议[1]西门子S7-200系列PLC 是一种小型整体结构形式的PLC,内部集成的PPI 接口为用户提供了强大的通信功能,根据不同的协议,通过此接口与不同的设备进行通信或组成网络。
在PC机上模拟PLC实现MODBUS通信
高放;满庆丰;夏继强
【期刊名称】《微计算机信息》
【年(卷),期】2001(017)008
【摘要】独立的计算机控制单元与工业控制网络互连时,可将其模拟成为PLC,然后利用PLC的通信协议,与工业控制网络进行数据通信,从而为传统仪表与控制网络互连问题提供了新的解决方法和思路.本文以MODBUS通信协议为例,对此进行有意义的探讨.同时介绍了MODBUS通信协议的基本内容和格式,并给出了在Visual Basic下实现通信的方法.
【总页数】2页(P27-28)
【作者】高放;满庆丰;夏继强
【作者单位】100083,北京航空航天大学机械电子工程专业;100083,北京航空航天大学机械电子工程专业;100083,北京航空航天大学机械电子工程专业
【正文语种】中文
【中图分类】TN91
【相关文献】
1.通过Modbus TCP/IP实现ControlLogix PLC与S7 PLC的通信 [J], 孔凡强
2.基于OPC、Modbus以及Modbus Tcp/Ip的iFIX与PLC的通信 [J], 朱晶;齐向东
3.在PC机上模拟PLC实现MODBUS通信 [J], 高放;满庆丰;夏继强
4.基于Modbus TCP协议实现PC机与PLC的串行通信 [J], 邬书金; 万频; 何吉
越; 胡健; 宓超
5.MTL PCS83与CENTUM VP系统基于ModBus通信的实现 [J], 张俊平
因版权原因,仅展示原文概要,查看原文内容请购买。
PC机与PLC的串行通信通过Modbus TCP协议实现
1 引言
智能楼宇工程中的中央空调、电梯、通风、给排水、照明、火灾报警等个子系统的互联方案中,采用Modbus TCP协议的串行通信方式,全面兼容modbus工业标准,数据传输可靠,响应速度快,扩展灵活,通过互联网实现各子系统与中央管理系统的通信。
modbus tcp协议是在tcp/ip标准中,应用层采用工业领域事实标准modbus。
modbus使用tcp/ip 应用层的502端口,这是经过国际公认的。
该串行总线方式支持各种介质的rs-232、rs-422、rs-485接口。
modbus tcp的网络通信模式采用client/server方式,如图1所示。
图1 modbus tcp的网络通信模式
2 modbus tcp串行通信分析与实现
某智能楼宇中各子系统主要采用PLC作为主控模块,如图2所示。
网络互联采用modbus tcp网络通信模式,中央管理系统与该网络的互联是亟待解决的问题,plc将智能楼宇中各子系统的相关状态和参数信息保存于它的寄存器中,中央管理系统需要读取plc中一些保持寄存器的数值,以此来进行智能楼宇的全面监控与管理。
modbus tcp协议提供了相应指令来进行保持寄存器的读取。
图2 智能楼宇系统示意图
2.1 协议分析
modbus tcp数据报文结构,如图3所示。
图3 modbus tcp数据报文结构
一次modbus tcp读取保持寄存器的通信分析(省略了ip/tcp头):
从左向右分析该数据报文:00 03为此次通信编号,一般每次通信之后将被要求加1以区别不同的通信数据报文;00 00表示协议标识符,00 00为modbus协议;00 06为数据长度,用来指示接下来数据的长度,单位字节;03为设备地址,用以标识连接在串行线或者网络上的远程服务端的地址。
以上七个字节也被称为modbus报文头。
03为功能码,此时代码03为读取保持寄存器数据。
00 00 00 01为功能码的参数,指示将被读取的保持寄存器的地址与长度。
从左向右分析该数据报文:00 03为此次通信编号,应答报文要求与先前对应的请求保持一致;00 00为协议标识符,00 00表示modbus协议;00 05为数据长度,用来指示接下来数据的长度,单位字节;03为设备地址,应答报文要求与先前对应的请求保持一致。
以上七个字节同样为modbus报文头。
03为功能码,正常情况下应答报文要求与先前对应的请求保持一致,如果出错则返回80h+先前的功能码。
02为功能码的第一个参数,指示接下来数据的字节长度;00 17为被读取的保持寄存器中的数据值,即要求被读取的地址为00 00的保持寄存器中的数值为0017h。
测试程序(master)发送数据(hex)及plc(modbus tcp slave) 响应数据(hex)样例分析如
图4所示。
图4 程序发送/接收数据包样例分析
2.2 程序流程
以下是主程序的流程图,如图5所示,主要功能是建立tcp/ip连接以及连接错误处理。
modbus tcp协议的每一次工作循环的流程图,如图6所示。
图5 主程序流程图
图6 一次工作循环流程图
2.3 程序测试
首先在ip中填上需要被连接的服务端ip地址,然后点击connect进行连接。
连接成功后,在oFFset中填写需要读取的保持寄存器的开始地址,在length中填写需要读取的保持寄存器的长度。
最后点击trigger读取一次上述保持寄存器,同时将在sent和received中显示发送及收到的数据报文(hex),并且在data monitor中显示对这些报文的解释。
3 结束语
本文对modbus tcp协议以及modbus tcp串行通信在智能楼宇工程中的应用作了简单介绍,重点分析研究了modbus tcp读取plc的保持寄存器数据的过程,并提出实现modbus tcp协议通信的解决方案,进行编程以及调试,成功实现了预期的功能。