直播课堂
HOME
直播课堂
正文内容
modbus通讯PLC编程 PLC通讯MODBUS协议的应用及编程
发布时间 : 2024-11-24
作者 : 小编
访问数量 : 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通信中所用到的特殊寄存器等等。谢谢大家的阅读与支持,您的支持就是我创作的动力。

实例讲解PLC实现modbus通讯

1. 硬件设置程序中的 Modbus 通讯是在两个 S7-200 CPU 的 0 号通讯口间进行的(最好每个 CPU 都有两个通讯口)。在主站侧也可以用相应库文件 "MBUS_CTRL_P1" 和 "MBUS_MSG_P1"通过1号通讯口通信。通讯口 1 用 Micro/WIN 与 PG 或 PC 建立连接,两个 CPU 的通讯口 0 通过 Profibus 缆进行连接(电缆的针脚 连接为3,3,8,8 -> 见图 01)。另外,需要确定逻辑地M相连 。

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")。

下面的表格列出了程序块各个参数选项及其含义。 主站MBUS_CTRL

MBUS_MSG

从站MBUS_INIT

MBUS_SLAVE

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

4. 保持寄存器值的传输将程序下载到相应的 CPU 后,可以在状态表中给主站侧的 V 存储区赋值,然后从站侧监视数值的变化。当主站的 I0.0 使能后,VW2 中的内容就被发送到从站并写入从站的 VW2 。保持寄存器值的传输见图. 04。指针 "DataPtr" 代表了被读的 V 区起始地址。参数 "Count" 指定了被写入地址 "Addr" = "4xxxx" (保持寄存器)字的个数。相应 V 存储区的变量将被写到保持寄存器启始地址 "Addr" = "40002" ("RW" = "1")中。保持寄存器是以字为单位传输的,它与从站的 V 区地址对应。指针 "HoldStart" 指定了与保持寄存器起始地址 40001 相对应的V存储区的初始地址。可以按下面公式计算从站的V区目标指针:2 * (Addr - 40001) + HoldStart = 2 * (40002 - 40001) + &VB0 = &VB2另外,要保证主站侧所要写入的数据区包含在 "MaxHold" 定义的数据区内 :MaxHold >= Addr - 40001 + Count = 40002 - 40001 + 1 = 2

相关问答

plc1200怎么设置modbus485通讯?

要设置PLC1200的Modbus485通讯,首先需要确保PLC1200具备Modbus485通讯模块。然后,进入PLC1200的编程软件中,选择通讯设置,配置Modbus485通讯参数,包括波特....

松下plcmodbusrtu通信程序详解?

松下PLCModbusRTU通信程序是一种用于实现PLC与其他设备之间数据交换的通信协议。它基于Modbus协议,使用串行通信方式进行数据传输。程序的详解包括设置PLC的...

在通信程序中,如何实现PLC与多台变频器的MODBUS/RTU通信?

如何实现PLC与多台变频器的MODBUS/RTU通信,首先不同的PLC、不同的变频器的设置方法和通信程序不一样,包括使用的通信指令、接线方法,MODBUS寄存器地址,需要我...

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

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

ABBPLC与MODBUS如何通信?

ABBPLC和MODBUS可以通过串口通信或以太网通信实现相互交互。1.首先,ABBPLC和MODBUS设备之间需要建立物理连接,串口通信可以通过RS485或RS232接口进行连接,...

MODBUSRTU如何在PLC控制系统中应用?

MODBUS是一种通信协议,是电子设备通用的协议,我们可以通过它使控制器如PLC与其他设备进行通讯控制,不同的生产商的设备都可以通过线路连接组成工业网络。MODBU...

modbus和plc通讯不了?

关于这个问题,可能的原因有以下几点:1.通讯方式不一致:Modbus协议和PLC通讯协议不同,需要使用相应的通讯方式来进行通讯。如果使用的通讯方式不正确,则无...

1200plc不同项目如何通讯?

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

三菱plcmodbus通讯协议详解?

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

plc1200怎么设置modbustcp通讯?

需要进行一定的设置才能进行modbustcp通讯首先需要设置PLC的网络连接和配置IP地址和子网掩码等网络参数,然后在TIAPortal中添加连接模块并进行参数设置,包括...

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

QQ

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

热线

188-0000-0000
专属服务热线

微信

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