课程中心
HOME
课程中心
正文内容
modbus通讯协议及plc编程 PLC通讯MODBUS协议的应用及编程
发布时间 : 2025-04-18
作者 : 小编
访问数量 : 23
扫码分享至微信

PLC通讯MODBUS协议的应用及编程

叙述:现为大家讲解一下MODBUS的应用,现在工业控制上位机和下位机通信大部分采用通信协议为MODBUS.可想而知机器与机器通信的重要性。

一:MODBUS系统框架图

二:MODBUS运用

MODBUS 通讯的底层为 RS485 信号采用双绞线进行联接就可以了,因 此传输距离较远,可达 1000 米,抗干扰性能比较好,且成本低,在工业控制设备的通讯中被 广泛使用,现在众多厂家的变频器、控制器都采用了该协议

传送数据格式有 HEX 码数据和 ASCII 码两种,分别称为 MODBUS-RTU 和 MODBUS-ASCII 协 议,前者为数据直接传送,而后者需将数据变换为 ASCII 码后传送,因此 MODBUS-RTU 协议的 通讯效率较高,处理简单,使用得更多

MODBUS 为单主多从通讯方式,采用的是主问从答方式,每次通讯都是由主站首先发起, 从站被动应答。因此,如变频器之类的被控设备,一般内置的是从站协议,而 PLC 之类的控 制设备,则需具有主站协议、从站协议

现在以 MODBUS-RTU 协议为例,说明通讯帧的典型格式: 请求帧格式:从机地址+0x03+寄存器起始地址+寄存器数量+CRC 检验

正常响应帧格式:从机地址+0x03+字节数+寄存器值+CRC 检验

三:PLC 编程时应该注意以下信息:

从机地址:主站发送帧中,该地址表示目标接收从机的地址;从机应答帧中,表示本机 地址;从机地址的设定范围为 1~247,0 为广播通信地址。

操作类型:表示读或写操作;0x1=读线圈操作;0x03=读寄存器操作;0x05=改写线圈 操作;0x06=改写寄存器操作。

对于变频器而言,只支持 0x03 读、0x06 写的操作。 寄存器起始地址:表示对从机中要访问的寄存器地址,对于 MD280、MD320 系列变频器的 访问时,对应的就是"功能码号"、"命令地址"、"运行参数地址"; 数据个数:即从"寄存器起始地址"开始要连续访问的数据个数,对于寄存器变量,以 word 为单位。

寄存器参数(数据):要改写的数据(主机改写),或读取的数据(从机应答);

四: 程序编程编写及讲解

结论:以上是对PLC通信举得例子,只要设置这几个特殊寄存器就可以通信了,特别是要对RS通信指令的应用和对PLC通信中所用到的特殊寄存器等等。谢谢大家的阅读与支持,您的支持就是我创作的动力。

你了解Modbus协议吗?实例讲解如何使用Modbus协议进行通讯?

今天和大家分享一个使用Modbus协议进行西门子S7-200PLC通讯的程序。

使用下面的例程你可以在S7-200CPU之间设置一个简单的Modbus通讯。

这个例子是关于Modbus功能码6的(写从站保持寄存器), 也可以作为其他所支持的功能码:1, 2, 3, 4, 5, 15 和16 的基本参数设置步骤 。

要求:

要使用Modbus协议必须先在STEP 7 Micro/Win上安装指令库 。

Modbus主站协议只支持STEP 7 Micro/Win V4.0 SP5及其以上版本.。

1. 硬件设置 2. 参数匹配 3. 指令库的存储地址 4. 保持寄存器值得传输

1. 硬件设置

例程中的Modbus通讯是在两个S7-200 CPU的0号通讯口间进行的(最好每个CPU都有两个通讯口)。在主站侧也可以选择相应库文件 "MBUS_CTRL_P1" 和 "MBUS_MSG_P1"通过1号通讯口通信。通讯口1与Micro/WIN建立PG或PC连接,两个CPU的通讯口0通过PPI电缆进行连接(电缆的 针脚 连接为2,3,7,8)。

图1

2. 参数匹配

对于MODBUS通讯, 主站侧需要程序库 "MBUS_CTRL" 和 "MBUS_MSG", 从站侧需要程序库 "MBUS_INIT" and "MBUS_SLAVE"。

在 Micro/WIN 中您需要为主站和从站新建一个项目,程序与参数设置见图.02。

必须要保证主站与从站的“Baud”和"Parity"的参数设置要一致,并且程序块"MBUS_MSG"中的"Slave"地址要与程序块"MBUS_INIT"中的"Addr"所设置的一致 (见图. 02)。

Micro/WIN“系统块”中设置的0通讯口的波特率与MODBUS协议无关("Mode" = "1")。

图2

下面的表格列出了程序块各个参数选项及其意义

主站

MBUS_CTRL

表 01

1) 参看STEP 7 Micro/WIN 帮助: "MODBUS主站执行MBUS_MSG时的错误代码MBUS_MSG" 。

MBUS_MSG

表 02

1)参看STEP 7 Micro/WIN 帮助: "MODBUS主站执行MBUS_MSG时的错误代码MBUS_MSG" 。

从站

MBUS_INIT

表 03

2) 最大的地址取决于所用CPU的类型及其最大值。

3)参看STEP 7 Micro/WIN 帮助: “MODBUS从站协议的错误代码”。

MBUS_SLAVE

表 04

3)参看STEP 7 Micro/WIN 帮助: “MODBUS从站协议的错误代码” 。

3. 库的存储地址

项目完成后必须要在Micro/WIN中定义库的存储地址,当定义完存储区后, 要保证在任何情况下不能再被其它程序所使用 (主站侧: "DataPtr" + "Count" 从站侧: "HoldStart" + "MaxHold")。

图3

图4

关于STEP 7 Micro/WIN MOBDUS 库的更多信息可以参看 S7-200 系统手册 ( Entry ID 1109582) 和 STEP 7 Micro/WIN 帮助。

如何在 STEP 7 Micro/WIN 中找到 Modbus RTU 协议和 USS 协议操作库?

说明:

在 STEP 7 Micro/WIN 中,Modbus RTU 协议和 USS 协议操作库位于操作树的“库”文件夹中。MODBUS 函数库要求 STEP 7 Micro/WIN 为 V3.2 或更高版本。

图1: 添加函数库

这些库是附加函数库,并非组态软件 STEP 7 Micro/WIN 的组成部分。

您如果需要使用 Modbus RTU 协议,必须购买“SIMATIC STEP 7 Micro/WIN ADD ON: Function Library V1.1 (USS + MODBUS) for STEP 7 Micro/WIN 32”软件。

这个可选附加函数库的订货号是 6ES7830-2BC00-0YX0。

安装顺序:

先安装“STEP 7 Micro/WIN 32 Toolbox V1.0”(包括库),然后安装“STEP 7 Micro/WIN”。

注意:

这个函数库包含可以在 STEP 7 Micro/WIN V3.2 中使用的 Modbus RTU 协议库和 USS 协议库。

如果您安装了 STEP 7 Micro/WIN V4.0 SP5 或者更高版本,那么操作库中就会包含下列函数:

Modbus RTU Master V1.2 对应端口 0 和端口 1 Modbus RTU Slave V1.0 对应端口 0 USS protocol V2.3 对应端口 0 和端口 1

相关问答

西门子PLC设置为自由口通讯方式,如果使用MODBUS通讯协议,要...

西门子PLC设置为自由口通讯方式,如果使用MODBUS通讯协议,要怎么弄?硬件要求和软件要求都有哪些?举报西门子4人讨论7148次围观关注问题写回答讨论回答...

三菱plcmodbus通讯协议详解?

D8126值为H20时表示为MODBUSRTU主站,H02时为RTU从站,H03时为ASCII从站,为H0时表示为三菱协议。RS指令在D8126设为MODBUS模式时,指令格式和D8126设为...

labview怎么通过modbus和plc通讯?

在LabVIEW中通过Modbus与PLC进行通信,可以使用NI的Modbus库或第三方库来实现。下面是一般的步骤:1.准备硬件:首先,连接您的PLC设备和计算机。通常使用串口...

1200plc不同项目如何通讯?

要实现1200PLC之间的通信,可以使用不同的通信协议和方法。一种常见的方法是使用以太网通信,通过以太网模块连接PLC,并使用TCP/IP协议进行数据传输。另一种方...

西门子怎么实现一个PLC与另一台PLC的通信?

实现的方案有多种。1.使用有两个编程口的PLC,例如CPU224XP或者CPU226。2.加EM277模块,用Profibus-DP协议,支持多主站。3.加CP243-1以太网模块。4.P...

三菱FX1N的PLC上位机通过MODBUS协议通讯,怎么操作呢?

看了下,DAM-3381只是作为DAM-37XX系列模块与三菱PLC通讯连接的桥梁,看着就一转换器,PLC端如果不需要编程的话应该是用的计算机链接功能,但这不是MODBUS协议的...

三菱plc与台达变频器modbus通讯设置?

如zhanglin282所说即可轻松实现变频器与PLC通讯1.检查配线,保证RS-485配线正确,RS485(+)---RS485(+),RS485(-)---RS485(-)2.设置变频器的通...

plc与变频器modbus通讯控制不了?

首先,PLC和变频器之间的通讯需要使用Modbus协议进行控制。如果无法控制,可能是以下原因:第一,通讯设置不正确。需要确保PLC和变频器的通讯参数设置一致,包括...

CPU和PLC怎么通讯?

CPU(中央处理器)和PLC(可编程逻辑控制器)之间可以通过多种通信方式进行通讯,具体取决于使用的PLC和CPU型号。以下列举了几种常见的通信方式:1.串口通信:...C...

两台电脑都装有力控软件,怎样通过串口服务器同时和一台plc200进行通讯?单独通讯都没问题?

实现的方案有多种。1.使用有两个编程口的PLC,例如CPU224XP或者CPU226。2.加EM277模块,用Profibus-DP协议,支持多主站。3.加CP243-1以太网模块。4.PLC...

 灵鹫寺  武则天的儿子李弘 
王经理: 180-0000-0000(微信同号)
10086@qq.com
北京海淀区西三旗街道国际大厦08A座
©2025  上海羊羽卓进出口贸易有限公司  版权所有.All Rights Reserved.  |  程序由Z-BlogPHP强力驱动
网站首页
电话咨询
微信号

QQ

在线咨询真诚为您提供专业解答服务

热线

188-0000-0000
专属服务热线

微信

二维码扫一扫微信交流
顶部