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通讯参数,包括波特....
西门子PLC怎么用MODBUS通讯,要讲解详细点的?
S7-200,编程软件有这个功能块,直接调用块,设置一下就可以modbus主站或从站功能。S7-300一般要配一个通讯模块CP340或者CP341,用340得自己编写通讯代码,用341...
如何用PC机通过modbus协议与PLC通信,并记录通信数据?
高级语言用串行通迅,MODBUS是最简单的总线对话协议,网上可搜到详细格式。PLC也要支持MODBUS的,可能在PLC还要编应答程序高级语言用串行通迅,MODBUS是最简单...
labview怎么通过modbus和plc通讯?
在LabVIEW中通过Modbus与PLC进行通信,可以使用NI的Modbus库或第三方库来实现。下面是一般的步骤:1.准备硬件:首先,连接您的PLC设备和计算机。通常使用串口...
三菱plcmodbustcp通讯协议详解?
三菱PLCModbusTCP通讯协议是一种基于TCP/IP协议的通讯方式,它允许通过以太网与其他设备进行数据交换。该协议具有高效、稳定的特点,可用于工业自动化领域中...
台达PLC与变频器用485通讯怎样实现启动、停止和频率给定,程序怎样做。谢谢?
1,台达PLC和变频器中,使用的应用通讯协议是MODBUS,硬件层用485;2,485连接的时候,需要先把变频器和PLC的通讯波特率,奇偶校验,结束位等做好匹配,其中变...1,...
plc1200modbus是什么?
随着TIAPORATL软件和S7-1200CPU固件的不断更新,S7-1200ModbusRTU指令也出现了不同的版本。用户需要根据使用的软件和硬件,正确选择使用符合要求的...
西门子plc,modbus通信读取与写入程序怎么间?
仪表读上来的看是否支持IEEE754浮点数格式,先用ModScan测试用浮点数格式(正浮点和反浮点)能否正常显示,如果能正常读取和显示,那么西门子PLC通过MODBUS主站程...
三菱plcmodbus读写指令有哪些?
三菱plcmodbus读写指令有以下这些:1.MAIN:主程序。根据PLC输入端子的命令执行通讯命令。2.P0:初始化子程序。初始化通讯接口;添加数据帧头、帧...三菱p...