一种子系统命令的同步方法及装置制造方法及图纸

技术编号:16101091 阅读:19 留言:0更新日期:2017-08-29 22:12
本发明专利技术实施例公开了一种子系统命令的同步方法及装置。其中,所述方法包括:在向子系统发送命令时,选取所述命令对应的形式参数传入对应的命令,所述每个命令对应的形式参数不同,所述形式参数用于传递;将所述形式参数插入预设的形参队列;将所述命令的调用线程阻塞于预设的线程队列;在接收到回应时,从所述形参队列中读取形式参数,判断所述回应是否与所述命令对应;在所述回应与所述命令对应时,唤醒所述调用线程,得到所述命令处理结果。可以利用消息通知的方式实现多个子系统的命令同步,避免由于异步方式产生的程序错误。此外,由于其只需对消息队列接口进行封装即可实现命令同步,降低了软件设计的复杂度。

【技术实现步骤摘要】
一种子系统命令的同步方法及装置
本专利技术涉及数字控制
,尤其涉及一种子系统命令的同步方法及装置。
技术介绍
数控系统是数字控制系统的简称,英文名称为(NumericalControlSystem),根据计算机存储器中存储的控制程序,执行部分或全部数值控制功能,并配有接口电路和伺服驱动装置的专用计算机系统。通过利用数字、文字和符号组成的数字指令来实现一台或多台机械设备动作控制,它所控制的通常是位置、角度、速度等机械量和电气开关量。目前,在数控系统中,目前通常采用异步方法进行控制,当主系统发出进行某一微操作控制信号后,等待子系统完成此操作后发回的“回答”信号或“结束”信号。但在具有多个子系统的数控系统中,如果主系统多个线程需要访问同一个资源,它们需要以某种顺序来确保该资源在某一特定时刻只能被一个线程所访问,如果使用异步方式进行控制,程序的运行结果将不可预料。
技术实现思路
本专利技术实施例提供了一种子系统命令的同步方法及装置,以实现主系统对多个子系统的进行同步控制的目的。第一方面,本专利技术实施例提供了一种子系统命令的同步方法,包括:在向子系统发送命令时,选取所述命令对应的形式参数传入对应的命令,所述每个命令对应的形式参数不同,所述形式参数用于传递;将所述形式参数插入预设的形参队列;将所述命令的调用线程阻塞于预设的线程队列;在接收到回应时,从所述形参队列中读取形式参数,判断所述回应是否与所述命令对应;在所述回应与所述命令对应时,唤醒所述调用线程,得到所述命令处理结果。进一步的,所述命令对应的形式参数包括:所述命令的回应处理函数的指针。相应的,在判断所述回应是否与所述命令对应之后,唤醒所述调用线程之前还包括:从所述验证参数队列中取出所述命令的回应处理函数的指针,并利用所述回应处理函数判断所述回应是否正常;相应的,所述在所述回应是否与所述命令对应时,唤醒所述调用线程,包括:在所述回应与所述命令对应且正常时,唤醒所述调用线程。进一步的,所述将所述回应处理线程阻塞于线程队列,包括:设定所述阻塞的终止触发条件的最大响应时长;所述方法还包括:在最大响应时长内没有接收到回应时,唤醒所述调用线程以输出错误。进一步的,在得到所述命令处理结果之后,还包括:从所述形参队列中删除所述形式参数和从所述线程队列中删除所述调用线程。更进一步的,所述方法还包括:在所述回应与所述命令不对应时,等待接收所述命令的回应。第二方面,本专利技术实施例还提供了一种子系统命令的同步装置,包括:传入模块,用于在向子系统发送命令时,选取所述命令对应的形式参数传入对应的命令,所述每个命令对应的形式参数不同,所述形式参数用于传递;插入模块,用于将所述形式参数插入预设的形参队列;阻塞模块,用于将所述命令的调用线程阻塞于预设的线程队列;第一判断模块,用于在接收到回应时,从所述形参队列中读取形式参数,判断所述回应是否与所述命令对应;唤醒模块,用于在所述回应与所述命令对应时,唤醒所述调用线程,得到所述命令处理结果。进一步的,所述命令对应的形式参数包括:所述命令的回应处理函数的指针。相应的,所述装置还包括:第二判断模块,用于从所述验证参数队列中取出所述命令的回应处理函数的指针,并利用所述回应处理函数判断所述回应是否正常;相应的,所述唤醒模块包括:唤醒单元,用于在所述回应与所述命令对应且正常时,唤醒所述调用线程。进一步的,述阻塞模块包括:设定单元,用于设定所述阻塞的终止触发条件的最大响应时长;所述装置还包括:输出模块,用于在最大响应时长内没有接收到回应时,唤醒所述调用线程以输出错误。进一步的,所述装置还包括:从所述形参队列中删除所述形式参数和从所述线程队列中删除所述调用线程。更进一步的,所述装置还包括:等待模块,用于在所述回应与所述命令不对应时,等待接收所述命令的回应。本专利技术实施例提供的子系统命令的同步方法和装置,通过将向子系统发送的命令的同时,将所述命令对应的形式参数传入命令中,并将所述形式参数存入预设的形参队列中,和将所述命令的调用线程阻塞于预设的线程队列中。在回应与命令对应时,唤醒所述调用线程。可以利用消息通知的方式实现多个子系统的命令同步,避免由于异步方式产生的程序错误。此外,由于其只需对消息队列接口进行封装即可实现命令同步,降低了软件设计的复杂度。附图说明通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本专利技术的其它特征、目的和优点将会变得更明显:图1是本专利技术实施例一提供的子系统命令的同步方法的流程示意图;图2是本专利技术实施例二提供的子系统命令的同步方法的流程示意图;图3是本专利技术实施例三提供的子系统命令的同步方法的流程示意图;图4是本专利技术实施例四提供的子系统命令的同步方法的流程示意图;图5是本专利技术实施例五提供的子系统命令的同步装置的结构示意图。具体实施方式下面结合附图和实施例对本专利技术作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本专利技术,而非对本专利技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本专利技术相关的部分而非全部结构。实施例一图1为本专利技术实施例一提供的子系统命令的同步方法的流程示意图,本实施例的方法适用于对包括多个子系统的数控系统中子系统命令进行同步的情况。可以由子系统命令的同步装置来执行,该装置可通过硬件和/或软件的方式实现,并一般可以应用于数控系统的主系统中。参见图1,所述子系统命令的同步方法,包括:S110,在向各个子系统发送命令时,选取每个所述命令对应的形式参数传入对应的命令,所述每个命令对应的形式参数不同,所述形式参数用于传递。在控制系统中,通常包括主系统和子系统。其中,主系统用于控制整个系统,每个子系统可单独完成某一功能,并可和主系统进行交互。控制系统中通常可包括子系统。示例性的,所述控制系统为ATM机,主系统可以为嵌入操作系统的PC系统,子系统可以包括:显示系统、存\取钞系统、计数系统、打印系统、传感系统和开\关门系统等。在控制系统工作过程中,经常需要同时对多个子系统同时进行控制,例如:ATM机在控制开\关门系统进行开关门操作时,需要从传感系统获取开关门的角度。在本实施例中,在主控系统向子系统发送命令时,选取每个所述命令对应的形式参数传入对应的命令。所述每个命令对应的形式参数不同。由于每个命令对应的子系统不同,其所对应的形式参数也不相同。形式参数是在定义函数名和函数体的时候使用的参数,目的是用来接收调用该函数时传入的参数。示例性的,可以是地址或者指针等。例如:分配的该命令的回应的数据存储地址,或者回应存储地址的指针等。S120,将所述形式参数插入预设的形参队列中。队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。在本实施例中,预先建立形参队列。示例性的,可以在内存中静态分配或者动态申请一片连续的存储空间,并设置两个指针进行管理。一个是队头指针front,它指向队头元素;另一个是队尾指针rear,它指向下一个入队元素的存储位置。采用队列存储是因为对某个子系统发送的命令不是唯一的,且各个命令之间存在着一定的时序关系,利用队列先进先出的特点,可以按本文档来自技高网...
一种子系统命令的同步方法及装置

【技术保护点】
一种子系统命令的同步方法,其特征在于,包括:在向子系统发送命令时,选取所述命令对应的形式参数传入对应的命令,所述每个命令对应的形式参数不同,所述形式参数用于传递;将所述形式参数插入预设的形参队列;将所述命令的调用线程阻塞于预设的线程队列;在接收到回应时,从所述形参队列中读取形式参数,判断所述回应是否与所述命令对应;在所述回应与所述命令对应时,唤醒所述调用线程,得到所述命令处理结果。

【技术特征摘要】
1.一种子系统命令的同步方法,其特征在于,包括:在向子系统发送命令时,选取所述命令对应的形式参数传入对应的命令,所述每个命令对应的形式参数不同,所述形式参数用于传递;将所述形式参数插入预设的形参队列;将所述命令的调用线程阻塞于预设的线程队列;在接收到回应时,从所述形参队列中读取形式参数,判断所述回应是否与所述命令对应;在所述回应与所述命令对应时,唤醒所述调用线程,得到所述命令处理结果。2.根据权利要求1所述的方法,其特征在于,所述命令对应的形式参数包括:所述命令的回应处理函数的指针;相应的,在判断所述回应是否与所述命令对应之后,唤醒所述调用线程之前还包括:从所述验证参数队列中取出所述命令的回应处理函数的指针,并利用所述回应处理函数判断所述回应是否正常;相应的,所述在所述回应是否与所述命令对应时,唤醒所述调用线程,包括:在所述回应与所述命令对应且正常时,唤醒所述调用线程。3.根据权利要求1所述的方法,其特征在于,所述将所述回应处理线程阻塞于线程队列,包括:设定所述阻塞的终止触发条件的最大响应时长;所述方法还包括:在最大响应时长内没有接收到回应时,唤醒所述调用线程以输出错误。4.根据权利要求1所述的方法,其特征在于,在得到所述命令处理结果之后,还包括:从所述形参队列中删除所述形式参数和从所述线程队列中删除所述调用线程。5.根据权利要求1所述的方法,其特征在于,所述方法还包括:在所述回应与所述命令不对应时,等待接收所述命令的回应。6.一...

【专利技术属性】
技术研发人员:李意希
申请(专利权)人:深圳怡化电脑股份有限公司深圳市怡化时代科技有限公司深圳市怡化金融智能研究院
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1