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控制变频器
一、MODBUS通信概述
MODBUS协议分为串行链路上MODBUS协议和基于TCP/IP协议的MODBUS 协议。 串行链路上MODBUS协议有MODBUS ASCAII(字符串) 和MODBUS RTU两种 。
200SMART所提供的MODBUS协议库能够支持MODBUS RTU通信。MODBUS RTU 是以16进制的数值进行发送 。
MODBUS ASCAII是以ASCAII码的方式进行发送,一个数据采用RTU方式发送只需要一个字节,而用ASACII码发送需要两个字节,发送时间。
PLC与变频器串口通信有很多通信方式,但常用的、首选的就是MODBUS通信方式 ,在实际的工业控制中应用非常广泛;这一期我们向大家一起分享变频器如何与PLC通过MODBUS RTU的方式进行控制。
二、MODBUS库指令详解
库指令分两种,一个是主站库,一个是从站库。
主站是PLC作为MODBUS的主站主动去读取其他设备的数据;从站是PLC作为MODBUS的从站,其他设备来读取数据;本期我们分享的是PLC作主站,变频器做从站。
STEP7-MinWIN SMART软件自带MODBUS通信库指令
初始化指令:
控制指令:
三、MODBUS RTU的通信格式(协议)
通信协议有:站号、功能码、数据地址、数据内容、校验位、结束符组成。
校验 :N=None无校验 E=Even偶校验 O=Odd奇校验
判断数据位中为1的个数是奇数还是偶数(选择偶校验如16#03中如果为1 的个数是偶数时,校验位为1 ;如果为1 的个数是奇数时,校验位为0 。选择奇校验时,为1的个数是偶数时,校验位为0 ;为1的个数是奇数时,校验位为1)
功能码指定了对从站设备读操作还是写操作,同时也指定了MODBUS寄存器地址的类型,常用功能码有:
四、PLC与变频器通信硬件的连接
在变频器上面涉及通信的端子标记有A/B RS585+/RS485-或RJ11的网口;找到相关变频器的说明书查看通信端口的接线定义,以下是台达VFD-M系列的变频器通信口接线定义
五、变频器通信参数的设置
1、 要实现变频器或仪表和PLC能正常通信,彼此的接口和协议需要一致,除此之外参数的设置也必须一致
P00 设03(频率指令)
P01 设03(运转指令)
P88 设03 (通讯地址,0-254之间)
P89 设02(波特率选择)
P92 设04 (数据格式,200SMART不支持2个停止位,因此只能选04/05任意一个参数)
P157 设01 (变频器默认的就是MODBUS模式)
2、查看说明书的启停、频率给定、运行频率、电压电流等反馈参数的地址
信息帧格式说明
表示读2103 2104两个地址的数据放在17 70 和00 00的地址里
通信协议的参数地址定义:
运行命令地址2000H 频率命令地址2001H
输出频率地址2103H 输出电流地址22104H
输出电压地址2106H 变频器温度地址 210DH
六、MODBUS通信程序的编写
在程序的开始可以加一段初始化对所有的位进行复位。
相关问答
西门子PLC怎么用MODBUS通讯,要讲解详细点的?
S7-200,编程软件有这个功能块,直接调用块,设置一下就可以modbus主站或从站功能。S7-300一般要配一个通讯模块CP340或者CP341,用340得自己编写通讯代码,用341...
在通信程序中,如何实现PLC与多台变频器的MODBUS/RTU通信?
如何实现PLC与多台变频器的MODBUS/RTU通信,首先不同的PLC、不同的变频器的设置方法和通信程序不一样,包括使用的通信指令、接线方法,MODBUS寄存器地址,需要我...
ab系列的plc如何进行modbus通讯?
AB系列的PLC可以通过使用Modbus通讯模块来实现Modbus通讯。按照以下步骤进行设置和配置:1.插入Modbus通讯模块:将Modbus通讯模块插入到AB系列PLC的扩展槽中。...
台达PLC与变频器用485通讯怎样实现启动、停止和频率给定,程序怎样做。谢谢?
1,台达PLC和变频器中,使用的应用通讯协议是MODBUS,硬件层用485;2,485连接的时候,需要先把变频器和PLC的通讯波特率,奇偶校验,结束位等做好匹配,其中变...1,...
labview怎么通过modbus和plc通讯?
在LabVIEW中通过Modbus与PLC进行通信,可以使用NI的Modbus库或第三方库来实现。下面是一般的步骤:1.准备硬件:首先,连接您的PLC设备和计算机。通常使用串口...
ABBPLC与MODBUS如何通信?
ABBPLC和MODBUS可以通过串口通信或以太网通信实现相互交互。1.首先,ABBPLC和MODBUS设备之间需要建立物理连接,串口通信可以通过RS485或RS232接口进行连接,...
三菱plc如何建立modbus通信?需要什么硬件?
三菱plc如何建立modbus通信,就拿fx系列的plc来说,首先通信设备有两种,一种是后缀为bd的板子(通信板),一种是后缀为adp的板子(通信适配器),两者区别后者价格...三...
如何对应PLC地址和MODBUS地址?
在使用MODBUS协议与PLC通信时,需要进行PLC地址和MODBUS地址之间的转换。这通常需要进行手动设置。以下是基本的对应关系:1.MODBUS地址是一个16位的整数(0-65...
控制柜中200plc经modbus与组态王通讯要注意哪些事项
[回答]电气柜PLC建立通讯要通过modbus协议,由于占用了V1000及以前的地址,所以注意不能与亚控提供的协议中所占用的V区地址冲突。由于PLCModbus协议程序占...
怎样用西门子300plcCPU自带接口实现MODBUS通讯?
s7-300自带的mpi口,不支持modbus通讯协议。如果要进行modbus通讯,需要添加cp341串行通讯模块s7-300自带的mpi口,不支持modbus通讯协议。如果要进行modbus通讯....