CN101739328B - 一种提高PC通过ModBus协议监控单片机的速度的方法 - Google Patents
一种提高PC通过ModBus协议监控单片机的速度的方法 Download PDFInfo
- Publication number
- CN101739328B CN101739328B CN200910263075A CN200910263075A CN101739328B CN 101739328 B CN101739328 B CN 101739328B CN 200910263075 A CN200910263075 A CN 200910263075A CN 200910263075 A CN200910263075 A CN 200910263075A CN 101739328 B CN101739328 B CN 101739328B
- Authority
- CN
- China
- Prior art keywords
- read
- address
- communication
- modbus
- singlechip
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Selective Calling Equipment (AREA)
Abstract
一种提高PC通过ModBus协议监控单片机的速度的方法,把所有需要监控的元件列出来并按顺序排列,将第一个元件的地址作为所要读取的元件的起始地址,将第一个元件到最后一个元件的连续的地址的总数作为从起始地址开始共要读取的元件的数量,在通讯长度最大的允许范围内一次性读所有需要监控的元件,发送一条ModBus通讯命令。本发明可以减少发送的通讯命令条数,来达到在传输速度确定的前提下提高监控的速度的目的,并且使单片机少处理大量的移位指令,减少单片机通讯处理上的时间消耗,从而大大缩短单次通讯所需的时间。
Description
技术领域
本发明涉及通过调整ModBus通讯命令来提高PC监控单片机的速度的方法。
背景技术
PC通过ModBus协议监控单片机的速度受两大条件限制:一是通讯次数;二是单次通讯的时间。随着技术的发展,PC通过按照现有方法编写的ModBus通讯命令来监控单片机的速度已跟不上要求,行业内迫切需要对现有ModBus通讯命令进行调整,以实现更快速的监控。
发明的内容
针对上述问题,申请人进行了研究改进,提供一种提高PC通过ModBus协议监控单片机的速度的方法,不但可以减少通讯次数,而且可以缩短单次通讯的时间。
本发明的技术方案如下:
一种提高PC通过ModBus协议监控单片机的速度的方法,把所有需要监控的元件列出来并按顺序排列,将第一个元件的地址作为所要读取的元件的起始地址,将第一个元件到最后一个元件的连续的地址的总数作为从起始地址开始共要读取的元件的数量,在通讯长度最大的允许范围内一次性读取所有需要监控的元件,发送一条ModBus通讯命令。
若所述需要监控的元件为位元件,则将第一个位元件所在字节的最低位的地址作为所要读取的元件的起始地址,将第一个元件所在字节的最低位到最后一个元件所在字节的最高位的连续的地址的总数作为从起始地址开始共要读取的元件的数量。
本发明的有益技术效果是:
本发明在通讯长度最大的允许范围内尽可能一次性多读几个需要监控的元件,以减少发送的通讯命令条数,来达到在传输速度确定的前提下提高监控的速度的目的。在读取位元件时尽量整个字节一起读,而不只读其中的某几个位,使单片机可以少处理大量的移位指令,减少单片机通讯处理上的时间消耗,从而大大缩短单次通讯所需的时间。
具体实施方式
实施例以寄存器以及线圈作为需要监控的元件,其中线圈作为需要监控的位元件。ModBus指令有读单个寄存器与读多个寄存器的通讯命令,也有读单个线圈与多个线圈的通讯命令。下面分别通过读多个寄存器以及读多个线圈两种情况,对本发明的具体实施方式做进一步说明。
实施例1:读多个寄存器
例如,需要读取地址分别为0x1A32和0x1A36的两个寄存器。按现有方法,PC将分别发送以下2条ModBus通讯命令来读取这两个寄存器的值:
01 03 1A32 00 01 CRCLow CRCHi
01 03 1A36 00 01 CRCLow CRCHi
上述ModBus通讯命令的格式,即其从左到右的每组数据分别代表:设备地址、功能码、起始寄存器地址的高位、起始寄存器地址的低位、读取的寄存器数量的高位、读取的寄存器数量的低位、CRC校验的低位、CRC校验的高位。
如第一条通讯命令表示:设备地址为01,当前命令的功能为读取寄存器(03),所要读取的寄存器的起始地址为1A 32,从起始地址开始共要读取00 01个数量的寄存器,最后是CRC校验码。第二条通讯命令表示:设备地址为01,当前命令的功能为读取寄存器(03),所要读取的寄存器的起始地址为1A 36,从起始地址开始共要读取00 01个数量的寄存器,最后是CRC校验码。
本发明则是把上述两条ModBus通讯命令合并成一条ModBus通讯命令来发送。应用本发明的方法,在整合通讯命令前,需要把所有需要监控的元件列出来并按顺序排列,排列结果为0x1A32、0x1A36。然后只要发送一条ModBus通讯命令,即可把两个寄存器值都读取出来。该ModBus通讯命令如下:
01 03 1A 32 00 05 CRCLow CRCHi
经过本发明方法整合后的上述通讯命令表示:设备地址为01,当前命令的功能为读取寄存器(03),所要读取的寄存器的起始地址为1A 32,从起始地址开始共要读取00 05个数量的寄存器,最后是CRC校验码。这样的通讯命令一次性读取了5个连续的寄存器,其中包含了2个需要监控的寄存器,将原本两条命令才实现的功能的用一条命令就涵盖了,减少了通讯的次数,大大缩短了监控所需的时间。
实施例2:读多个线圈
例如:需读取地址分别为0x0122和0x0123的两个线圈。在单片机内该两个线圈地址分布为:(每纵行代表一个字节BYTE,每个字节包含8个位BIT)
0120 | 0121 | 0122 | 0123 | 0124 | 0125 | 0126 | 0127 |
0128 | …… |
按现有方法,PC将发送以下ModBus通讯命令来读取这两个线圈的值:
01 01 01 22 00 02 CRCLow CRCHi
该通讯命令表示:设备地址为01,当前命令的功能为读取线圈状态(01),所要读取的线圈的起始地址为01 22,从起始地址开始共要读取00 02个数量的线圈,最后是CRC校验码。
上述现有方法,只是读了一个字节(BYTE)中需要读取的某几个位(BIT)。由于单片机处理能力不如PC,在处理读取位的指令时,若该位元件不是正好是一个字节的起始的话,就要处理大量的移位指令,处理这些移位指令会占用大量的时间。
应用本发明的读取整个字节的方法,调整后的ModBus通讯命令为:
01 01 01 20 00 08 CRCLow CRCHi
经过本发明方法调整后的上述通讯命令表示:设备地址为01,当前命令的功能为读取线圈状态(01),所要读取的线圈的起始地址为01 20,从起始地址开始共要读取00 08个数量的线圈,最后是CRC校验码。这样的通讯命令一次性读取了地址从0120到0127的整个字节,单片机将会少处理大量的移位指令,从而大大缩短单次通讯所需的时间。
以上所述的仅是本发明的优选实施方式,本发明不限于以上实施例。可以理解,本领域技术人员在不脱离本发明的精神和构思的前提下,可以做出其他改进和变化。
Claims (2)
1.一种提高PC通过ModBus协议监控单片机的速度的方法,其特征在于:把所有需要监控的元件列出来并按顺序排列,将第一个元件的地址作为所要读取的元件的起始地址,将第一个元件到最后一个元件的连续的地址的总数作为从起始地址开始共要读取的元件的数量,在通讯长度最大的允许范围内一次性读取所有需要监控的元件,发送一条ModBus通讯命令。
2.根据权利要求1所述提高PC通过ModBus协议监控单片机的速度的方法,其特征在于:若所述需要监控的元件为位元件,则将第一个位元件所在字节的最低位的地址作为所要读取的元件的起始地址,将第一个位元件所在字节的最低位到最后一个位元件所在字节的最高位的连续的地址的总数作为从起始地址开始共要读取的元件的数量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910263075A CN101739328B (zh) | 2009-12-16 | 2009-12-16 | 一种提高PC通过ModBus协议监控单片机的速度的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910263075A CN101739328B (zh) | 2009-12-16 | 2009-12-16 | 一种提高PC通过ModBus协议监控单片机的速度的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101739328A CN101739328A (zh) | 2010-06-16 |
CN101739328B true CN101739328B (zh) | 2012-10-03 |
Family
ID=42462844
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910263075A Active CN101739328B (zh) | 2009-12-16 | 2009-12-16 | 一种提高PC通过ModBus协议监控单片机的速度的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101739328B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105527881B (zh) * | 2014-09-30 | 2019-02-22 | 上海安川电动机器有限公司 | 一种指令处理方法及装置 |
CN105278918B (zh) * | 2015-10-15 | 2017-12-08 | 珠海格力电器股份有限公司 | 寄存器的读取方法和采用该读取方法的寄存器 |
CN111884915A (zh) * | 2020-07-17 | 2020-11-03 | 杭州电子科技大学 | 一种提高网关采集modbus设备效率的方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1294705A (zh) * | 1999-02-15 | 2001-05-09 | 松下电器产业株式会社 | 磁盘设备及磁盘存取方法 |
CN1556523A (zh) * | 2004-01-06 | 2004-12-22 | 中国科学院计算技术研究所 | 减少硬盘磁头寻道次数来提高读硬盘速度的控制方法 |
US7475187B2 (en) * | 2005-09-15 | 2009-01-06 | Infineon Technologies Ag | High-speed interface circuit for semiconductor memory chips and memory system including the same |
-
2009
- 2009-12-16 CN CN200910263075A patent/CN101739328B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1294705A (zh) * | 1999-02-15 | 2001-05-09 | 松下电器产业株式会社 | 磁盘设备及磁盘存取方法 |
CN1556523A (zh) * | 2004-01-06 | 2004-12-22 | 中国科学院计算技术研究所 | 减少硬盘磁头寻道次数来提高读硬盘速度的控制方法 |
US7475187B2 (en) * | 2005-09-15 | 2009-01-06 | Infineon Technologies Ag | High-speed interface circuit for semiconductor memory chips and memory system including the same |
Also Published As
Publication number | Publication date |
---|---|
CN101739328A (zh) | 2010-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE102015007571B4 (de) | Keine-lokalität-hinweis-vektor-speicherzugriff-prozessoren, -verfahren, -systeme und -befehle | |
WO2009101067A4 (en) | Providing indirect data addressing in an input/output processing system where the indirect data address list is non-contiguous | |
CN101739328B (zh) | 一种提高PC通过ModBus协议监控单片机的速度的方法 | |
DE102008035120A1 (de) | Prozessorauswahl für einen Interrupt, die einen Prozessorcluster identifiziert | |
CN105278918B (zh) | 寄存器的读取方法和采用该读取方法的寄存器 | |
CN106818581A (zh) | 一种多鱼塘养殖智能控制系统 | |
CN102255687A (zh) | 速率匹配方法与装置 | |
DE102018001536A1 (de) | Entschachteln (de-interleaving) von gleichmässig beabstandeten datenelementen-prozessoren, verfahren, systeme und befehle | |
CN105471548B (zh) | 一种网络数据包解析及分发方法 | |
CN101452427B (zh) | 一种dma数据传输系统及方法和一种中央处理器 | |
CN110412972A (zh) | 一种基于汽车的可变并行通讯控制方法、设备及介质 | |
CN204390023U (zh) | 一种工业控制系统 | |
CN104243246B (zh) | 一种基于ZigBee技术的FlexRay总线测试与优化方法及装置 | |
CN102291276A (zh) | 网络系统中心跳信息的调整方法和系统 | |
CN108170132B (zh) | 一种基于串行总线的模块化eps总线处理方法 | |
DE102014201029A1 (de) | Verfahren zum effizienten Übermitteln von Daten | |
CN205721967U (zh) | 一种区域建筑能耗平台数据采集处理装置 | |
CN106899307A (zh) | 一种数据压缩方法、数据解压缩方法及装置 | |
CN106034346B (zh) | 一种信息处理方法及电子设备 | |
CN107704421A (zh) | 一种多核处理器及报文处理方法 | |
CN203840554U (zh) | 用于公共自行车系统的双模无线通讯设备 | |
CN102043750A (zh) | 一种微处理器总线结构及微处理器 | |
CN102073530B (zh) | 一种多条正则表达式的增量分组方法 | |
CN105429896B (zh) | 一种耦合报文信用释放方法及系统 | |
CN112100170B (zh) | 数据库交互数据解码方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |