一种配置线程优先级的方法及装置制造方法

文档序号:6634740阅读:160来源:国知局
一种配置线程优先级的方法及装置制造方法
【专利摘要】本发明公开了一种配置线程优先级的方法及装置,该方法包括:S1、配置线程的优先级;S2、依据优先级对线程中的报文分为第一队列与第二队列;S3、初始化循环次数;S4、在预设循环次数内,发送第一队列,根据第二队列的使能状态以及第一队列的发送进度发送第二队列;S5、结束线程。实施本发明的有益效果是,通过配置变量的优先级并对其进行队列调度,提高了线程的执行效率,大幅度提高了BACnet数据的访问速度。
【专利说明】一种配置线程优先级的方法及装置

【技术领域】
[0001]本发明涉及楼宇自动控制网络数据通讯领域,尤其涉及一种配置线程优先级的方法及装置。

【背景技术】
[0002]BACnet (Building Automat1n and Control Net-works)是一种专为楼宇自动控制网络制定的数据通信协议,以其先进的技术、完善的体系结构和开放的理念正式成为建筑智能化系统领域中的唯一 ISO标准,使智能建筑的自动控制设备和系统能够实现信息的交换和共享,从而达到互连和互操作的目的,为智能建筑实现智能提供了基础。
[0003]虽然楼控系统对实时性要求不是很苛刻,但是目前BACnet的访问速度还是存在不完善的地方,例如,控制一台新风机的运转,发送开启命令后,现场新风机已经开始运转,但有时出现过了半分钟才能在上位看到它的状态,造成这种现场的原因是发送命令的报文是立即报文,而读取状态的报文是轮询报文,每条轮询报文从上位机发出轮询请求指令到BACnet设备返回状态信息需要150ms左右,每条报文最多包含七个变量,假定每个DDC(Direct Digital Control,直接数字控制)控制器包含4条报文,共有50个DDC,则完成一次轮询需要150*4*50 = 30000ms = 30s。通过对抓取各个厂家的BACnet实时报文进行分析,现有技术的缺点是:轮询报文均采用发送轮询请求报文,然后一直等待DDC控制器返回响应状态报文,在返回状态报文后再发送下一条轮询请求报文。


【发明内容】

[0004]本发明要解决的技术问题在于,针对上述轮询报文均采用发送轮询请求报文,需等待DDC控制器返回响应状态报文,从而造成访问速度极为低下的问题,提供一种配置线程优先级的方法及装置。
[0005]本发明解决其技术问题所采用的技术方案是:构造一种配置线程优先级的方法,该方法在BACnet通讯中配置线程优先级,包括步骤:
[0006]S1、配置线程的优先级;
[0007]S2、依据所述优先级对所述线程中的报文分为第一队列与第二队列;
[0008]S3、初始化循环次数;
[0009]S4、在预设循环次数内,发送所述第一队列,根据所述第二队列的使能状态以及第一队列的发送进度发送所述第二队列;
[0010]S5、结束线程。
[0011]在本发明所述的方法中,在所述步骤SI中,通过点表配置线程的优先级。
[0012]在本发明所述的方法中,在所述步骤S2中,根据所述点表对所述报文进行组帧,以分为所述第一队列与第二队列。
[0013]在本发明所述的方法中,所述步骤S4包括以下子步骤:
[0014]S401、发送报文,判断是否为所述第一队列的最后一条报文,若是,转至步骤S402,若否,转至步骤S404 ;
[0015]S402、判断所述第二队列是否使能,若是,转至步骤S403,若否,转至步骤S405 ;
[0016]S403、判断是否为所述第二队列的最后一条报文,若是,转至步骤S3,若否,转至步骤 S406;
[0017]S404、发送所述第一队列的下一条报文,转至步骤S407 ;
[0018]S405、发送所述第一队列的第一条报文,转至步骤S407 ;
[0019]S406、发送所述第二队列的下一条报文,转至步骤S407 ;
[0020]S407、所述循环次数自加I ;
[0021]S408、判断所述循环次数是否大于预设的次数,若是,转至步骤S409,若否,转至步骤 S410;
[0022]S409、令所述第二队列使能;
[0023]S410、延迟预设的时间。
[0024]在本发明所述的方法中,所述步骤S5还包括:判断线程是否结束,若是,结束线程,若否,转至步骤S4。
[0025]另一方面,提供一种配置线程优先级的装置,用于在BACnet通讯中配置线程优先级,包括:
[0026]配置模块,用于配置线程的优先级;
[0027]分队模块,用于依据所述优先级对所述线程中的报文分为第一队列与第二队列;
[0028]初始化模块,用于初始化循环次数;
[0029]发送模块,用于在预设循环次数内,发送所述第一队列,根据所述第二队列的使能状态以及第一队列的发送进度发送所述第二队列;
[0030]线程结束模块,用于结束线程。
[0031]在本发明所述的装置中,所述配置模块,还用于通过点表配置线程的优先级。
[0032]在本发明所述的装置中,所述分队模块,还用于根据所述点表对所述报文进行组帧,以分为所述第一队列与第二队列。
[0033]在本发明所述的装置中,所述发送模块包括:
[0034]报文发送子模块,用于发送报文;
[0035]第一判断模块,用于判断是否为所述第一队列的最后一条报文;
[0036]第二判断模块,用于判断所述第二队列是否使能;
[0037]第三判断模块,用于判断是否为所述第二队列的最后一条报文;
[0038]第一发送模块,用于发送所述第一队列的下一条报文;
[0039]第二发送模块,用于发送所述第一队列的第一条报文;
[0040]第三发送模块,用于发送所述第二队列的下一条报文;
[0041]自加模块,用于使所述循环次数自加I;
[0042]第四判断模块,用于判断所述循环次数是否大于预设的次数;
[0043]使能模块,用于令所述第二队列使能;
[0044]延迟模块,用于延迟预设的时间。
[0045]在本发明所述的装置中,所述线程结束模块还用于判断线程是否结束,若是,结束线程。
[0046]实施本发明的一种配置线程优先级的方法及装置,具有以下有益效果:通过配置变量的优先级并对其进行队列调度,提高了线程的执行效率,大幅度提高了 BACnet数据的访问速度。

【专利附图】

【附图说明】
[0047]下面将结合附图及实施例子对本发明作进一步说明,附图中:
[0048]图1为本发明一实施例提供的一种配置线程优先级的方法的流程图;
[0049]图2为本发明另一实施例提供的一种配置线程优先级的方法的流程图;
[0050]图3为本发明实施例提供的一种配置线程优先级的装置框图。

【具体实施方式】
[0051]为了对本发明的技术特征、目的和效果有更加清楚的理解,现对照附图详细说明本发明的【具体实施方式】。
[0052]本发明的目的在于提供一种配置线程优先级的方法及装置,本发明应用于建筑智能化领域,采用BACnet协议置线程优先级,该BACnet协议作为一种新兴的楼宇自动控制网络标准,解决了 BACnet协议在现有技术中的诸多不足,比如现有技术中,BACnet的访问速度值得人担忧。本发明通过配置变量的优先级并对其进行队列调度,提高了线程的执行效率,可使BACnet访问速度比常规访问方式提高一倍以上。
[0053]参见图1,图1为本发明一实施例提供的一种配置线程优先级的方法的流程图,该实施例提供一种配置线程优先级的方法在BACnet通讯中配置线程优先级,其包括步骤:
[0054]S1、配置线程的优先级;例如:将所有的DDC控制器中的BACnet变量分为O?2级,其中O级的表示本BACnet变量不被轮询状态,极大部分BO点(Binary Output)均可以配置为O级,比如风机的启停开关,我们发出启停命令后,只要查询风机的运行状态即可,而无需知道此命令的状态,在优先级I?2级中,I级的变量每个循环周期都会被访问,2级的变量可设置为η个循环周期被访问一次。BACnet变量的优先级由用户在建立设备点表时分配,根据变量的重要性、变量的总数量、变量的变化快慢程度来确定,如室内温度信号变化比较缓慢,一般设为2级,重要设备的运行故障等状态一般设为I级。
[0055]S2、依据所述优先级对所述线程中的报文分为第一队列与第二队列;根据2级优先级对应地将报文分为第一队列与第二队列,即优先级为I级的线程对应为第一队列(即I级队列),优先级为2级的线程对应为第二队列(即II级队列)。
[0056]S3、初始化循环次数;
[0057]S4、在预设循环次数内,发送所述第一队列,根据所述第二队列的使能状态以及第一队列的发送进度发送所述第二队列;
[0058]S5、结束线程。
[0059]参见图2,图2为本发明另一实施例提供的一种配置线程优先级的方法的流程图,该实施例不同于上一实施例之处在于,细化了步骤S4的具体流程。具体的,该方法包括以下步骤:
[0060]S1、通过过点表配置线程的优先级。即报文任务的循环读操作开始,读取已配置好变量优先级的点表。
[0061]S2、根据所述点表对所述报文进行组帧,以分为所述第一队列与第二队列。即根据点表对报文进行组帧,分为I级、II级两个循环队列。
[0062]S3、初始化循环次数;对参数进行初始化,使循环次数Cnum = 0,II级队列使能SecEnable = O0
[0063]S4、在预设循环次数内,发送所述第一队列,根据所述第二队列的使能状态以及第一队列的发送进度发送所述第二队列;步骤S4包括以下子步骤:
[0064]S401、发送报文,判断是否为所述第一队列的最后一条报文,若是,转至步骤S402,若否,转至步骤S404 ;
[0065]S402、判断所述第二队列是否使能,若是,转至步骤S403,若否,转至步骤S405 ;
[0066]S403、判断是否为所述第二队列的最后一条报文,若是,转至步骤S3,若否,转至步骤 S406 ;
[0067]S404、发送所述第一队列的下一条报文,转至步骤S407 ;
[0068]S405、发送所述第一队列的第一条报文,转至步骤S407 ;
[0069]S406、发送所述第二队列的下一条报文,转至步骤S407 ;
[0070]S407、所述循环次数自加I ;即Cnum++。
[0071]S408、判断所述循环次数是否大于预设的次数,若是,转至步骤S409,若否,转至步骤 S410 ;
[0072]S409、令所述第二队列使能;即SecEnable = I。
[0073]S410、延迟预设的时间tdelay,释放线程。
[0074]S5、判断线程是否结束,若是,结束线程,若否,转至步骤S4。
[0075]参见图3,图3为本发明实施例提供的一种配置线程优先级的装置100框图,该配置线程优先级的装置100用于在BACnet通讯中配置线程优先级,包括:
[0076]配置模块,用于配置线程的优先级;还用于通过点表配置线程的优先级。
[0077]分队模块,用于依据所述优先级对所述线程中的报文分为第一队列与第二队列;还用于根据所述点表对所述报文进行组帧,以分为所述第一队列与第二队列。
[0078]初始化模块,用于初始化循环次数;
[0079]发送模块,用于在预设循环次数内,发送所述第一队列,根据所述第二队列的使能状态以及第一队列的发送进度发送所述第二队列;所述发送模块包括:
[0080]报文发送子模块,用于发送报文;
[0081]第一判断模块,用于判断是否为所述第一队列的最后一条报文;
[0082]第二判断模块,用于判断所述第二队列是否使能;
[0083]第三判断模块,用于判断是否为所述第二队列的最后一条报文;
[0084]第一发送模块,用于发送所述第一队列的下一条报文;
[0085]第二发送模块,用于发送所述第一队列的第一条报文;
[0086]第三发送模块,用于发送所述第二队列的下一条报文;
[0087]自加模块,用于使所述循环次数自加I;
[0088]第四判断模块,用于判断所述循环次数是否大于预设的次数;
[0089]使能模块,用于令所述第二队列使能;
[0090]延迟模块,用于延迟预设的时间。
[0091]线程结束模块,用于结束线程。还用于判断线程是否结束,若是,结束线程。
[0092]上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的【具体实施方式】,上述的【具体实施方式】仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。
【权利要求】
1.一种配置线程优先级的方法,该方法在BACnet通讯中配置线程优先级,其特征在于,包括步骤: 51、配置线程的优先级; 52、依据所述优先级对所述线程中的报文分为第一队列与第二队列; 53、初始化循环次数; 54、在预设循环次数内,发送所述第一队列,根据所述第二队列的使能状态以及第一队列的发送进度发送所述第二队列; 55、结束线程。
2.根据权利要求1所述的方法,其特征在于,在所述步骤S1中,通过点表配置线程的优先级。
3.根据权利要求2所述的方法,其特征在于,在所述步骤S2中,根据所述点表对所述报文进行组帧,以分为所述第一队列与第二队列。
4.根据权利要求1所述的方法,其特征在于,所述步骤S4包括以下子步骤: 5401、发送报文,判断是否为所述第一队列的最后一条报文,若是,转至步骤S402,若否,转至步骤S404 ; 5402、判断所述第二队列是否使能,若是,转至步骤S403,若否,转至步骤S405; 5403、判断是否为所述第二队列的最后一条报文,若是,转至步骤S3,若否,转至步骤S406 ; 5404、发送所述第一队列的下一条报文,转至步骤S407; 5405、发送所述第一队列的第一条报文,转至步骤S407; 5406、发送所述第二队列的下一条报文,转至步骤S407; 5407、所述循环次数自加1; 5408、判断所述循环次数是否大于预设的次数,若是,转至步骤S409,若否,转至步骤S410 ; 5409、令所述第二队列使能; 5410、延迟预设的时间。
5.根据权利要求1所述的方法,其特征在于,所述步骤S5还包括:判断线程是否结束,若是,结束线程,若否,转至步骤S4。
6.—种配置线程优先级的装置,其特征在于,用于在BACnet通讯中配置线程优先级,其特征在于,包括: 配置模块,用于配置线程的优先级; 分队模块,用于依据所述优先级对所述线程中的报文分为第一队列与第二队列; 初始化模块,用于初始化循环次数; 发送模块,用于在预设循环次数内,发送所述第一队列,根据所述第二队列的使能状态以及第一队列的发送进度发送所述第二队列; 线程结束模块,用于结束线程。
7.根据权利要求6所述的装置,其特征在于,所述配置模块,还用于通过点表配置线程的优先级。
8.根据权利要求7所述的装置,其特征在于,所述分队模块,还用于根据所述点表对所述报文进行组帧,以分为所述第一队列与第二队列。
9.根据权利要求6所述的装置,其特征在于,所述发送模块包括: 报文发送子模块,用于发送报文; 第一判断模块,用于判断是否为所述第一队列的最后一条报文; 第二判断模块,用于判断所述第二队列是否使能; 第三判断模块,用于判断是否为所述第二队列的最后一条报文; 第一发送模块,用于发送所述第一队列的下一条报文; 第二发送模块,用于发送所述第一队列的第一条报文; 第三发送模块,用于发送所述第二队列的下一条报文; 自加模块,用于使所述循环次数自加1 ; 第四判断模块,用于判断所述循环次数是否大于预设的次数; 使能模块,用于令所述第二队列使能; 延迟模块,用于延迟预设的时间。
10.根据权利要求6所述的装置,其特征在于,所述线程结束模块还用于判断线程是否结束,若是,结束线程。
【文档编号】G06F9/38GK104486189SQ201410660357
【公开日】2015年4月1日 申请日期:2014年11月18日 优先权日:2014年11月18日
【发明者】匡付华, 蔡伟周, 宋志刚, 陈琼雁 申请人:深圳达实智能股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1