发明内容
有鉴于此,本发明的主要目的在于提供一种基于人机界面系统的脚本处理方法及装置,能够提高人机界面系统的脚本运行可靠性。
为达到上述目的,本发明的技术方案是这样实现的:
一种基于人机界面系统的脚本处理方法,所述方法包括:
人机界面启动,检测是否存在启动脚本事件,若存在,则将所述脚本加入脚本执行队列;
响应主进程循环检测,当检测到执行脚本事件时,结合所述脚本待执行队列对所述执行脚本事件进行处理;
当预设的定时周期到时,检测是否存在定时执行脚本事件,若存在,结合所述脚本待执行队列对所述定时脚本事件进行处理。
其中,所述对所述执行脚本事件进行处理包括:
获取所述执行脚本事件中脚本的脚本信息;
判断所述脚本执行队列中是否存在所述脚本信息;
若存在,则忽略该次执行脚本事件;若不存在,则将所述脚本加入所述脚本执行队列;
所述对所述定时脚本事件进行处理包括:
获取所述定时脚本事件中脚本的脚本信息;
判断所述脚本执行队列中是否存在所述脚本信息;
若存在,则忽略该次定时脚本事件;若不存在,则将所述脚本加入所述脚本执行队列。
进一步地,所述方法还包括:
采用标准C语言格式建立脚本,其中,所述脚本需要使用的外部输入数据和输出数据用变量定义。
进一步地,所述方法还包括:
按照先入先出原则进行所述脚本执行队列的脚本执行。
其中,所述进行脚本执行队列的脚本执行包括:
当所述脚本存在读变量时,分配内存空间,将读变量对应数据读入所分配的内存空间;
当所述脚本存在写变量时,执行写出操作,若写出成功,则返回脚本执行成功。
一种基于人机界面系统的脚本处理装置,所述装置包括检测模块和处理模块;其中,
所述检测模块,用于当人机界面启动,检测是否存在启动脚本事件;还用于主进程循环检测响应后,检测是否存在执行脚本事件;还用于当预设的定时周期到时,检测是否存在定时执行脚本事件;
所述处理模块,用于当所所述检测模块检测到存在启动脚本事件时,将所述脚本加入脚本执行队列;还用于当所述检测模块检测到执行脚本事件时,结合所述脚本待执行队列对所述执行脚本事件进行处理;还用于当所述检测模块检测到存在定时执行脚本事件时,结合所述脚本待执行队列对所述定时脚本事件进行处理。
其中,所述处理模块,具体用于获取所述执行脚本事件中脚本的脚本信息;判断所述脚本执行队列中是否存在所述脚本信息;若存在,则忽略该次执行脚本事件;若不存在,则将所述脚本加入所述脚本执行队列;还具体用于获取所述定时脚本事件中脚本的脚本信息;判断所述脚本执行队列中是否存在所述脚本信息;若存在,则忽略该次定时脚本事件;若不存在,则将所述脚本加入所述脚本执行队列。
进一步地,所述装置还包括:脚本建立模块,用于采用标准C语言格式建立脚本,其中,所述脚本需要使用的外部输入数据和输出数据用变量定义。
进一步地,所述装置还包括:执行模块,用于按照先入先出原则进行所述脚本执行队列的脚本执行。
其中,所述执行模块,具体用于当所述脚本存在读变量时,分配内存空间,将读变量对应数据读入所分配的内存空间;当所述脚本存在写变量时,执行写出操作,若写出成功,则返回脚本执行成功。
本发明实施例提供的基于人机界面系统的脚本处理方法及装置,能够在人机界面启动时进行脚本的启动调用,在主进程循环检测过程中,通过检测执行脚本事件实现触发调用,还可以根据预设的定时周期实现脚本的定时调用,能够实现脚本多种执行及调用方式,提升了人机界面系统脚本使用的灵活便利性,并在脚本调用时,根据脚本信息防止相同脚本的重复调用,充分利用系统资源,还采用标准C语言建立脚本,变量定义来脚本所需数据,提高脚本可靠性,更好满足用户需求。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下举实施例并参照附图,对本发明进一步详细说明。
图1示出了本发明实施例提供的基于人机界面系统的脚本处理方法的流程,如图1所示,所述方法包括下述步骤:
步骤101,人机界面启动,检测是否存在启动脚本事件,若存在,则将所述脚本加入脚本执行队列;
步骤102,响应主进程循环检测,当检测到执行脚本事件时,对所述执行脚本事件进行处理;
具体地,本步骤中,对所述执行脚本事件进行处理包括:获取所述执行脚本事件中脚本的脚本信息;判断所述脚本执行队列中是否存在所述脚本信息;若存在,则忽略该次执行脚本事件;若不存在,则将所述脚本加入所述脚本执行队列;上述处理方式能够避免同一脚本在短时间内重复请求处理,进而造成脚本执行队列阻塞,其它脚本无法执行的情况出现。
步骤103,当预设的定时周期到时,检测是否存在定时执行脚本事件,若存在,对所述定时脚本事件进行处理;
具体地,本步骤中,若不存在,则继续主进程循环检测,直至人机界面退出;对所述定时脚本事件进行处理包括:获取所述定时脚本事件中脚本的脚本信息;判断所述脚本执行队列中是否存在所述脚本信息;若存在,则忽略该次定时脚本事件;若不存在,则将所述脚本加入所述脚本执行队列;上述处理方式能够避免同一脚本在短时间内重复请求处理,进而造成脚本执行队列阻塞,其它脚本无法执行的情况出现。
其中,预设的定时周期可以为人机界面系统每个脚本的执行时间,此处人机界面系统默认的每个脚本的执行时间为100ms,是指当超过100ms的执行时间,该脚本未执行完毕时,人机界面系统会自动结束该脚本的执行,并返回脚本执行失败;应当理解,每个脚本的执行时间可以根据需求自定义,但必须为100ms的整数倍。
图2示出了本发明实施例提供的基于人机界面系统的脚本处理方法的实施例一的实现流程,所述实施例一为本发明涉及脚本的建立过程,如图2所示,所述实施例一包括下述步骤:
步骤201,开始新建脚本;
步骤202,采用变量定义该脚本需要使用的外部输入数据和/或输出数据;
步骤203,使用标准C语言格式编写脚本,编写过程中判断是否需要新的外部输入数据,若是,执行步骤202,否则,执行步骤204;
步骤204,脚本完成后通过调用编译器进行编译调试,若编译通过,执行步骤205,否则执行步骤203;
步骤205,生成在PC端模拟时运行的后缀为.dll的文件和/或在人机界面系统运行的后缀为.so的文件。
图3示出了本发明实施例提供的基于人机界面系统的脚本处理方法的实施例二的实现,所述实施例二为本发明涉及脚本的执行过程,如图3所示,所述实施例二包括下述步骤:
步骤301,开始脚本执行;
具体地,本步骤按照先入先出原则进行脚本执行队列的脚本执行;
步骤302,判断所述脚本是否存在读变量,若是,执行步骤303,否则继续执行脚本;
步骤303,分配内存空间,将读变量对应数据读入所分配的内存空间,读取成功则继续执行脚本,否则返回脚本执行失败;
步骤304,判断所述脚本是否存在写变量,若不存在写变量,直接返回脚本执行成功;若存在写变量,执行写出操作,写出成功时返回脚本执行成功,写出失败时返回脚本执行失败;
具体地,在执行写出操作时,可以根据工业现场的实际需求,优先写出字变量,再写出位变量,如此可保证用户在使用位变量触发时所有字变量数据已经全部刷新完毕。
本发明实施例还提供的一种基于人机界面系统的脚本处理装置,该装置的各功能模块可用于上述方法实施例的流程,具体可参考图4,包括:检测模块41和处理模块42;其中,
所述检测模块41,用于当人机界面启动,检测是否存在启动脚本事件;还用于主进程循环检测响应后,检测是否存在执行脚本事件;还用于当预设的定时周期到时,检测是否存在定时执行脚本事件;
所述处理模块42,用于当所所述检测模块41检测到存在启动脚本事件时,将所述脚本加入脚本执行队列;还用于当所述检测模块41检测到执行脚本事件时,对所述执行脚本事件进行处理;还用于当所述检测模块41检测到存在定时执行脚本事件时,对所述定时脚本事件进行处理。
进一步地,所述处理模块42,具体用于获取所述执行脚本事件中脚本的脚本信息;判断所述脚本执行队列中是否存在所述脚本信息;若存在,则忽略该次执行脚本事件;若不存在,则将所述脚本加入所述脚本执行队列;还具体用于获取所述定时脚本事件中脚本的脚本信息;判断所述脚本执行队列中是否存在所述脚本信息;若存在,则忽略该次定时脚本事件;若不存在,则将所述脚本加入所述脚本执行队列。
优选地,所述装置还包括:脚本建立模块43,用于采用标准C语言格式建立脚本,其中,所述脚本需要使用的外部输入数据和输出数据用变量定义。
优选地,所述装置还包括:执行模块44,用于按照先入先出原则进行所述脚本执行队列的脚本执行。
进一步地,所述执行模块44,具体用于当所述脚本存在读变量时,分配内存空间,将读变量对应数据读入所分配的内存空间;当所述脚本存在写变量时,执行写出操作,若写出成功,则返回脚本执行成功。
本发明提供的基于人机界面系统的脚本处理装置,各模块工作过程与上述方法实施例类似,在此不再赘述。
本发明实施例提供的基于人机界面系统的脚本处理方法及装置,能够在人机界面启动时进行脚本的启动调用,在主进程循环检测过程中,通过检测执行脚本事件实现触发调用,还可以根据预设的定时周期实现脚本的定时调用,能够实现脚本多种执行及调用方式,提升了人机界面系统脚本使用的灵活便利性,并在脚本调用时,根据脚本信息防止相同脚本的重复调用,充分利用系统资源,还采用标准C语言建立脚本,变量定义来脚本所需数据,提高脚本可靠性,更好满足用户需求。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。