变频器的Modbus通讯控制(一) 变频器modbus地址定义
liebian365 2024-10-22 15:34 3 浏览 0 评论
下面我们以英威腾GD200A系列变频器为例给大家介绍如何通过Modbus协议进行通讯控制,在此之前简单给大家做一些前提工作。
- Mdobus协议内容
- 变频器接线
- 变频器参数设置
- Modbus通讯数据格式
- 变频器通讯地址
Modbust协议
关于Modbus通讯协议这块我们参考英威腾变频器的说明手册进行简单理解
变频器采用Modbus 通讯协议进行的主从通讯可通过 PC/PLC、控制上位机等实现集中控制(设定变频器控制命令、运行频率、相关功能码参数的修改,变频器工作状态及故障信息的监控等),以适应特定的应用要求。
Modbus 协议是一种软件协议,是应用于电子控制器上的一种通用语言。通过此协议,控制器可以经由传输线路和其它设备进行通讯。它是一种通用工业标准,有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。
Modbus 协议有两种传输模式:ASCII 模式和 RTU(远程终端单元,Remote Terminal Units)模式。在同一个 Modbus 网络中,所有的设备传输模式、波特率、数据位、校验位、停止位等基本参数必须一致。
Modbus 网络是一种单主多从的控制网络,即同一个 Modbus 网络中只有一台设备是主机,其它设备都为从机。主机可以单独地对某台从机通讯,也可以对所有从机发布广播信息。对于单独访问的命令,从机都应返回一个回应信息;对应主机发出的广播信息,从机无需反馈回应信息给主机。
简单来说就是在Modbus通讯中变频器作为从站,我们的PLC或者其他控制器作为主站进行通讯,发送的数据格式这里使用RTU或者ASCII来完成传输,因为在大多数的中低端型号的变频器中Modbus是支持最广泛的一种通讯。
Modbust接线
关于它的接线很简单使用两根线缆即可完成通信,采用RS485接口实现通讯,接口类型形式有许多,比如普通端子类型、RJ45网口、RJ11电话接口等类型。RS485 接口工作于半双工,数据信号采用差分传输方式,使用一对双绞线来完成。端子定义名称通常也不统一的。例如A(+)、B(-),有SG+、SG-,DX+、DX-,SDA(RDA)、SDB(RDB)等等,只要正的与485+连接,负的与485-连接即可,可通过变频器手册来进行定义查询。英威腾变频器的RS485接口的端子定义就是485+和485-,我们只需要把控制器的对应的通信线接入即可。
变频器参数设置
变频器的最主要的控制就是频率命令与运行命令的设定,简单来讲就是调速与开关的控制,这个参数通常位于基本参数组,这里我们只设置常用的一些参数。通讯参数一般需要设置站号、波特率(传输速度)、数据位校验设置、通讯超时等。
后面的内容我们依次使用PC上的串口通信助手、三菱FX3G系列PLC、西门子200smart系列的PLC以及HMI触摸屏来演示对英威腾变频器的控制。
变频器参数设置如下:
- P00.01运行指令通道选择2通讯运行指令通道
- P00.06A频率指令选择8MODBUS通讯设定
- P00.09设定源组合方式选择0A,当前频率设定A频率指令
- P14.00本机通讯地址设定站号1
- P14.01通讯波特率设置为3(9600)
- P14.02数据位校验设置为3无校验(N,8,2)for RTU或者15无校验(N,8,2)for ASCII
其中波特率与数据校验可随意设置,需要与控制器设置一致即可。
Modbus数据格式
RTU帧的标准结构
帧头START | T1-T2-T3-T4(3.5个字节的传输时间) |
从机地址域ADDR | 通讯地址:0~247(十进制) |
功能域CMD | 03H:读从机参数 06H:写从机参数 |
数据域 DATA(N-1) . . . DATA(0) | 2*N个字节的数据,该部分为通讯的主要内容,也是通讯中,数据 交换的核心 |
CRC CHK 低位 | 检测值:CRC校验值(16BIT) |
CRC CHK 高位 | |
帧尾END | T1-T2-T3-T4(3.5个字节的传输时间) |
从机地址就是变频器的站号,功能码这里介绍两个06H(写) 03H(读),数据就是要写入的数据或者读取数据的个数,例如设置变频器频率50.00Hz,发送的数据就是13 88(16进制数据,按照高低8位),如果要读取变频器的频率,发送的数据就是00 01(读取2个字节的数据)。校验码指的是整个数据校验,RTU格式使用CRC校验,ASCII格式使用LRC校验,这个校验码可通过串口助手计算或者编程完成。其计算原理我们在后续的PLC程序进行讲解。
ASCII帧的标准结构
帧头 | 起始字符‘:’(0x3A) |
从机地址地址高位 | 通讯地址: 8-bit 地址由2个ASCII码组合 |
从机地址地址低位 | |
功能码高位 | 功能码: 8-bit 地址由2个ASCII码组合 |
功能码低位 | |
数据域 DATA(N-1) . . . DATA(0) | 数据内容: nx8-bit 数据内容由2n个ASCII码组合 n<=16,最大32个ASCII码 |
LRC CHK高位 | LRC检查码: 8-bit 检验码由2个ASCII码组合 |
LRC CHK低位 | |
帧尾高位 | 结束符: END Hi=CR(0x0D),END Lo=LF(0x0A) |
帧尾低位 |
在ASCII数据中每个 16 进制都需要进行对应字符的ASCII码的转换如下表:
字符 | “0” | “1” | “2” | “3” | “4” | “5” | “6” | “7” |
ASCII码 | 30H | 31H | 32H | 33H | 34H | 35H | 36H | 37H |
字符 | “8” | “9” | “A” | “B” | “C” | “D” | “E” | “F” |
ASCII码 | 38H | 39H | 41H | 42H | 43H | 44H | 45H | 46H |
这其中RTU和ASCII的编码系统与数据格式在这里不做详细说明,对于我们来讲也不太需要,我们只要了解与变频器通讯需要发送那些数据,工程数据与通讯数据是如何转换的即可,下面我们分别以RTU与ASCII为例说明通讯的数据发送过程。
将5000(十进制)数据写入到站号为2地址0004(16进制)的变频器当中,首先我们需要把5000的十进制数据转换为16进制的1388H(数字后跟一个“H”或者前缀“0x”表示 16 进制数字),因为数据都是8位发送的,所以有1388H拆分为高为13H与低位88H依次发送。那么按照RTU的标准格式:
RTU发送 | |
站号 | 02H |
功能码(发送) | 06H |
变频器数据地址高位 | 00H |
变频器数据地址低位 | 04H |
发送数据的高位 | 13H |
发送数据的低位 | 88H |
校验码CRC低位 | C5H |
校验码CRC高位 | 6EH |
这里我们需要注意CRC校验码的顺序是先低位后高位,在计算CRC的结果后需要进行高低位转换。
ASCII发送 | 字符→ASCII |
STX起始符 | 3AH |
站号 | “0”→30H |
“2”→32H | |
数据地址高位 | “0”→30H |
“0”→30H | |
数据地址低位 | “0”→30H |
“4”→34H | |
发送数据高位 | “1”→31H |
“3”→31H | |
发送数据低位 | “8”→31H |
“8”→31H | |
校验码LRC低位 | “5”→35H |
校验码LRC高位 | “9”→39H |
结束符高位 | 0DH |
结束符低位 | 0AH |
变频器通讯地址
所谓的通讯地址就是要知道通讯数据的地址定义,用于控制变频器的运行、获取变频器状态信息及变频器相关功能参数设定等,这里我们介绍常用的几个地址。
控制功能 | 地址定义 | 数据说明 | 读写特性 |
正转命令 | 2000H | 0001H | W/R |
反转命令 | 2000H | 0002H | W/R |
停止命令 | 2000H | 0001H | W/R |
频率设定 | 2001H | 0~Fmax(位:0.01Hz) | |
变频器状态 | 2100H | 0001H:正转运行 0001H:反转运行 0001H:停机 0001H:故障 | R |
运行频率 | 3000H | 设定范围:0.00Hz~P00.03 | R |
输出电压 | 3003H | 设定范围:0~1200V | R |
输出电流 | 3004H | 设定范围:0.0~5000.0A | R |
R/W 特性表示该功能是读/写特性,R代表可进行读取操作,W代表可进行写入操作,W/R表示可读取和写入操作。
以上几部分就是做Modbus通讯的前提内容,后面的内容我们将通过PC上的串口通讯、PLC以及触摸屏依次演示与英威腾变频器的通讯控制。
相关推荐
- 快递查询教程,批量查询物流,一键管理快递
-
作为商家,每天需要查询许许多多的快递单号,面对不同的快递公司,有没有简单一点的物流查询方法呢?小编的回答当然是有的,下面随小编一起来试试这个新技巧。需要哪些工具?安装一个快递批量查询高手快递单号怎么快...
- 一键自动查询所有快递的物流信息 支持圆通、韵达等多家快递
-
对于各位商家来说拥有一个好的快递软件,能够有效的提高自己的工作效率,在管理快递单号的时候都需要对单号进行表格整理,那怎么样能够快速的查询所有单号信息,并自动生成表格呢?1、其实方法很简单,我们不需要一...
- 快递查询单号查询,怎么查物流到哪了
-
输入单号怎么查快递到哪里去了呢?今天小编给大家分享一个新的技巧,它支持多家快递,一次能查询多个单号物流,还可对查询到的物流进行分析、筛选以及导出,下面一起来试试。需要哪些工具?安装一个快递批量查询高手...
- 3分钟查询物流,教你一键批量查询全部物流信息
-
很多朋友在问,如何在短时间内把单号的物流信息查询出来,查询完成后筛选已签收件、筛选未签收件,今天小编就分享一款物流查询神器,感兴趣的朋友接着往下看。第一步,运行【快递批量查询高手】在主界面中点击【添...
- 快递单号查询,一次性查询全部物流信息
-
现在各种快递的查询方式,各有各的好,各有各的劣,总的来说,还是有比较方便的。今天小编就给大家分享一个新的技巧,支持多家快递,一次能查询多个单号的物流,还能对查询到的物流进行分析、筛选以及导出,下面一起...
- 快递查询工具,批量查询多个快递快递单号的物流状态、签收时间
-
最近有朋友在问,怎么快速查询单号的物流信息呢?除了官网,还有没有更简单的方法呢?小编的回答当然是有的,下面一起来看看。需要哪些工具?安装一个快递批量查询高手多个京东的快递单号怎么快速查询?进入快递批量...
- 快递查询软件,自动识别查询快递单号查询方法
-
当你拥有多个快递单号的时候,该如何快速查询物流信息?比如单号没有快递公司时,又该如何自动识别再去查询呢?不知道如何操作的宝贝们,下面随小编一起来试试。需要哪些工具?安装一个快递批量查询高手快递单号若干...
- 教你怎样查询快递查询单号并保存物流信息
-
商家发货,快递揽收后,一般会直接手动复制到官网上一个个查询物流,那么久而久之,就会觉得查询变得特别繁琐,今天小编给大家分享一个新的技巧,下面一起来试试。教程之前,我们来预览一下用快递批量查询高手...
- 简单几步骤查询所有快递物流信息
-
在高峰期订单量大的时候,可能需要一双手当十双手去查询快递物流,但是由于逐一去查询,效率极低,追踪困难。那么今天小编给大家分享一个新的技巧,一次能查询多个快递单号的物流,下面一起来学习一下,希望能给大家...
- 物流单号查询,如何查询快递信息,按最后更新时间搜索需要的单号
-
最近有很多朋友在问,如何通过快递单号查询物流信息,并按最后更新时间搜索出需要的单号呢?下面随小编一起来试试吧。需要哪些工具?安装一个快递批量查询高手快递单号若干怎么快速查询?运行【快递批量查询高手】...
- 连续保存新单号功能解析,导入单号查询并自动识别批量查快递信息
-
快递查询已经成为我们日常生活中不可或缺的一部分。然而,面对海量的快递单号,如何高效、准确地查询每一个快递的物流信息,成为了许多人头疼的问题。幸运的是,随着科技的进步,一款名为“快递批量查询高手”的软件...
- 快递查询教程,快递单号查询,筛选更新量为1的单号
-
最近有很多朋友在问,怎么快速查询快递单号的物流,并筛选出更新量为1的单号呢?今天小编给大家分享一个新方法,一起来试试吧。需要哪些工具?安装一个快递批量查询高手多个快递单号怎么快速查询?运行【快递批量查...
- 掌握批量查询快递动态的技巧,一键查找无信息记录的两种方法解析
-
在快节奏的商业环境中,高效的物流查询是确保业务顺畅运行的关键。作为快递查询达人,我深知时间的宝贵,因此,今天我将向大家介绍一款强大的工具——快递批量查询高手软件。这款软件能够帮助你批量查询快递动态,一...
- 从复杂到简单的单号查询,一键清除单号中的符号并批量查快递信息
-
在繁忙的商务与日常生活中,快递查询已成为不可或缺的一环。然而,面对海量的单号,逐一查询不仅耗时费力,还容易出错。现在,有了快递批量查询高手软件,一切变得简单明了。只需一键,即可搞定单号查询,一键处理单...
- 物流单号查询,在哪里查询快递
-
如果在快递单号多的情况,你还在一个个复制粘贴到官网上手动查询,是一件非常麻烦的事情。于是乎今天小编给大家分享一个新的技巧,下面一起来试试。需要哪些工具?安装一个快递批量查询高手快递单号怎么快速查询?...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- wireshark怎么抓包 (75)
- qt sleep (64)
- cs1.6指令代码大全 (55)
- factory-method (60)
- sqlite3_bind_blob (52)
- hibernate update (63)
- c++ base64 (70)
- nc 命令 (52)
- wm_close (51)
- epollin (51)
- sqlca.sqlcode (57)
- lua ipairs (60)
- tv_usec (64)
- 命令行进入文件夹 (53)
- postgresql array (57)
- statfs函数 (57)
- .project文件 (54)
- lua require (56)
- for_each (67)
- c#工厂模式 (57)
- wxsqlite3 (66)
- dmesg -c (58)
- fopen参数 (53)
- tar -zxvf -c (55)
- 速递查询 (52)