PLC通讯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...