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通信中所用到的特殊寄存器等等。谢谢大家的阅读与支持,您的支持就是我创作的动力。
西门子PLC通信编程MODBUS通信举例
例程将给大家介绍西门子S7-200SMART如何使用 Modbus 主站指令对 Modbus 从站的四个保持寄存器执行读写操作。
程序控制要求
当I0.0接通的时候,程序将从 VW100 开始的四个字写入 Modbus 从站从地址 40001 开始的保持寄存器。
PLC读取 Modbus 从站从 40010 到 40013 的四个保持寄存器,并将数据存入PLC中从 VW200 开始的 V 存储器中。数据交互地址如下:
西门子PLC进行MODBUS通信主要使用单个主站及 MBUS_CTRL 和 MBUS_MSG 指令。
MBUS_CTRL: 程序调用 MBUS_CTRL指令来初始化、监视或禁用 Modbus 通信。
MBUS_MSG: 程序调用 MBUS_MSG指令,启动对 Modbus 从站的请求并处理响应。
程序编程及说明
程序段1
通过在每次扫描时调用 MBUS_CTRL 来初始化和监视 Modbus 主站。Modbus 主站设为 9600 波特,无奇偶校验。从站设备允许在 1000 毫秒(1 秒)内进行响应。
程序段2
第一次扫描时,复位用于两条 MBUS_MSG 指令的启用标记(M2.0 和 M2.1)。
程序段3
当 I0.0 从关闭变为接通时,设置第一条 MBUS_MSG 指令的启用标志 (M2.0)。
程序段4
当第一个启用标志 (M2.0) 接通时,调用 MBUS_MSG 指令。只需为启用该指令的第一次扫描设置 First 参数。
该指令会对从站 2 的 4 个保持寄存器执行写入 (RW = 1) 操作。从PLC中的 VB100-VB107(4 个字)获取写数据,然后写入到 Modbus 从站中的地址 40001 - 40004。
程序段5
第一条 MBUS_MSG 指令完成后(“完成”(Done) 位从 0 变为 1),会清除第一条 MBUS_MSG 指令的启用标志,然后设置第二条 MBUS_MSG 指令的启用标志。
如果错误 (MB1) 不为零,则置位 Q0.1 显示错误。
程序段6
第二个启用标志 (M2.1) 接通时,调用第二条 MBUS_MSG 指令。只需为启用该指令的第一次扫描设置 First 参数。
该指令会对从站 2 的 4 个保持寄存器执行读取 (RW = 0) 操作。数据从 Modbus 从站中的地址 40010 - 40013 读取,并复制到PLC中的 VB200 - VB207(4 个字)。
程序段7
第二条 MBUS_MSG 指令完成(“完成”(Done) 位从 0 变为 1)后,清除第二条 MBUS_MSG 指令的启用标志。
如果错误 (MB1) 不为零,则置位 Q0.2 显示错误。
以上,即为西门子PLC进行modbus通信的使用示例。(转载请注明来源函控自动化工程师头条号)
相关问答
西门子modbus通讯协议编程实例?
西门子的PLC(可编程逻辑控制器)支持Modbus通讯协议,通过Modbus通信可以与其他设备(如传感器、仪表、HMI等)进行数据交换。以下是一个基本的西门子PLC通过Mod...
plc1200怎么设置modbus485通讯?
要设置PLC1200的Modbus485通讯,首先需要确保PLC1200具备Modbus485通讯模块。然后,进入PLC1200的编程软件中,选择通讯设置,配置Modbus485通讯参数,包括波特....
ab系列的plc如何进行modbus通讯?
AB系列的PLC可以通过使用Modbus通讯模块来实现Modbus通讯。按照以下步骤进行设置和配置:1.插入Modbus通讯模块:将Modbus通讯模块插入到AB系列PLC的扩展槽中。...
ABBPLC与MODBUS如何通信?
ABBPLC和MODBUS可以通过串口通信或以太网通信实现相互交互。1.首先,ABBPLC和MODBUS设备之间需要建立物理连接,串口通信可以通过RS485或RS232接口进行连接,...
三菱plc如何建立modbus通信?需要什么硬件?
三菱plc如何建立modbus通信,就拿fx系列的plc来说,首先通信设备有两种,一种是后缀为bd的板子(通信板),一种是后缀为adp的板子(通信适配器),两者区别后者价格...三...
带modbusrtu的温控器怎样和plc通讯?
走485通信,接两根线就可以了。温控器与PLC通信站号,通信格式,通信模式。设置一至。然后在PLC中编程MODBUS程度。编写程序的内容主要是写:站号,功能码,通信...
如何对应PLC地址和MODBUS地址?
在使用MODBUS协议与PLC通信时,需要进行PLC地址和MODBUS地址之间的转换。这通常需要进行手动设置。以下是基本的对应关系:1.MODBUS地址是一个16位的整数(0-65...
modbus功能块如何使用?
对于使用modbus功能块,首先需要了解modbus通讯协议的基本原理和相关参数设置,然后在PLC编程软件中创建modbus功能块并配置通讯参数,包括从站地址、功能码、寄...
rkc温控表怎样用modbusrtu写入参数吗?
走485通信,接两根线就可以了。温控器与PLC通信站号,通信格式,通信模式。设置一至。然后在PLC中编程MODBUS程度。编写程序的内容主要是写:站号,功能码,通信...
labview怎么通过modbus和plc通讯?
在LabVIEW中通过Modbus与PLC进行通信,可以使用NI的Modbus库或第三方库来实现。下面是一般的步骤:1.准备硬件:首先,连接您的PLC设备和计算机。通常使用串口...