技术问题technical problem
在此处键入技术问题描述段落。Type a technical problem description paragraph here.
技术解决方案technical solutions
基于上述技术背景,本发明的目的在于提供一种既可以实现周期通信又可以使命令分步执行的支持触发式通信的数据处理系统和方法。Based on the above-mentioned technical background, the purpose of the present invention is to provide a data processing system and method supporting triggering communication, which can realize both periodic communication and step-by-step execution of commands.
本发明的第一个方面提供了一种支持触发式通信的数据处理方法,包括如下步骤:A first aspect of the present invention provides a data processing method supporting triggered communication, comprising the following steps:
S1、根据用户需求进行组态配置,并生成对应触发式通信命令的命令控制字和命令序号;S1, configure the configuration according to user requirements, and generate the command control word and command serial number corresponding to the trigger communication command;
S2、控制器根据组态配置向主站或者客户端模块周期发布实时数据,所述实时数据包括所述命令控制字、命令序号和输出数据;S2, the controller periodically releases real-time data to the master station or client module according to the configuration configuration, and the real-time data includes the command control word, the command serial number and the output data;
S3、主站或者客户端模块监听控制器下发的实时数据,根据所述命令控制字判定是否允许输出触发式通信命令,若允许则输出触发式通信命令,否则不输出;S3, the master station or the client module monitors the real-time data sent by the controller, and determines whether to allow the output of the trigger communication command according to the command control word, and if so, the trigger communication command is output, otherwise it is not output;
S4、主站或者客户端接收受控设备执行所述触发式通信命令的响应数据,解析所述响应数据,并将解析出的命令执行序号和命令执行状态反馈给控制器;S4, the master station or the client receives the response data of the controlled device executing the trigger communication command, parses the response data, and feeds back the parsed command execution sequence number and command execution status to the controller;
S5、控制器等待命令响应过程中监听从主站或者客户端反馈的数据,并基于命令执行序号判定是否计算并显示外部受控的响应结果;若命令执行序号与该命令对应的命令序号一致,则计算并显示受控设备的响应结果;否则不予处理。S5. The controller monitors the data fed back from the master station or the client during the command response process, and determines whether to calculate and display the externally controlled response result based on the command execution sequence number; if the command execution sequence number is consistent with the command sequence number corresponding to the command, The response result of the controlled device is calculated and displayed; otherwise, it is not processed.
进一步的,步骤S5还包括:控制器在监听从主站或者客户端返回的数据时,若在设定的时间阈值内未接收到反馈数据或接收到的命令执行序号与该命令对应的命令序号始终不一致,则以命令响应超时处理。Further, step S5 also includes: when the controller monitors the data returned from the master station or the client, if the feedback data is not received within the set time threshold or the command execution sequence number received corresponds to the command sequence number of the command. If it is always inconsistent, it will be processed with a command response timeout.
进一步的,步骤S1中,所述命令序号的数值有效范围为[1-255],且每一条新的触发式通信命令对应的命令序号为现有值加1。Further, in step S1, the valid range of the command serial number is [1-255], and the command serial number corresponding to each new triggered communication command is the existing value plus 1.
进一步的,步骤S3中,若主站或者客户端模块监听到控制器下发的实时数据中命令序号的值为0,则表示初始状态,此时控制器与主站或者客户端模块进行实时数据同步,同时主站或客户端模块忽略命令控制字。Further, in step S3, if the master station or the client module monitors that the value of the command sequence number in the real-time data sent by the controller is 0, it indicates the initial state, and the controller and the master station or the client module conduct real-time data at this time. Synchronized while the master or client module ignores the command control word.
进一步的,步骤S4中,所述命令执行状态包括:Further, in step S4, the command execution state includes:
状态1:初值;state 1: initial value;
状态2:响应正确,对应有响应的触发式命令类型,主站或客户端模块接收到响应;State 2: The response is correct, corresponding to the type of triggered command that has a response, and the master station or client module receives the response;
状态3:发送完成,对应无响应的触发式命令类型,主站或客户端模块发送完成;Status 3: Sending completed, corresponding to the trigger command type without response, the master station or client module has completed sending;
状态4:响应超时,对应有响应的触发式命令类型,主站或客户端模块接收超时。State 4: Response timed out, corresponding to the type of triggered command that has a response, the master station or client module receives a timeout.
本发明的第二个方面提供了一种支持触发式通信的数据处理系统,应用于集散控制系统中,包括:A second aspect of the present invention provides a data processing system supporting triggered communication, applied in a distributed control system, including:
命令调度模块,其包括:Command scheduling module, which includes:
数据发布单元,用于根据组态配置向主站或者客户端模块周期发布实时数据,所述实时数据包括命令控制字、命令序号和输出数据;a data release unit, configured to periodically release real-time data to the master station or the client module according to the configuration configuration, the real-time data including the command control word, the command serial number and the output data;
程序调度单元,用于根据组态配置调度用户程序,所述用户程序中包括控制触发式通信命令执行的功能块;a program scheduling unit, configured to schedule a user program according to the configuration configuration, the user program includes a function block that controls the execution of the trigger-type communication command;
数据接收单元,用于接收受控设备的响应数据并返回给主站或者客户端模块,所述响应数据至少包括命令执行状态和命令执行序号;a data receiving unit, used for receiving the response data of the controlled device and returning it to the master station or the client module, the response data at least including the command execution state and the command execution sequence number;
命令执行模块,其包括:Command execution module, which includes:
命令输出单元,用于监听下发的实时数据,并根据命令控制字和命令序号决定是否输出一条触发式通信命令;The command output unit is used to monitor the real-time data issued, and decide whether to output a trigger communication command according to the command control word and the command serial number;
命令执行单元,用于控制命令执行,并将命令执行状态和命令执行序号通过响应数据发布给主站或者客户端;The command execution unit is used to control the execution of the command, and publish the command execution status and the command execution sequence number to the master station or the client through the response data;
以及映射配置模块,其用于实现所述命令调度模块和命令执行模块之间的数据映射和命令号映射配置。and a mapping configuration module, which is used to implement data mapping and command number mapping configuration between the command scheduling module and the command execution module.
进一步的,所述功能块被配置为触发式通信功能块,其用于:Further, the function block is configured as a triggered communication function block, which is used for:
当用户需要触发一条通信命令时,基于所述功能块改写所述实时数据中的命令控制字,并自动生成命令序号;When the user needs to trigger a communication command, rewrite the command control word in the real-time data based on the function block, and automatically generate a command sequence number;
等待命令响应过程中监听受控设备的响应数据,并根据命令执行状态和命令执行序号计算并显示受控设备的响应结果。Monitor the response data of the controlled device in the process of waiting for the command response, and calculate and display the response result of the controlled device according to the command execution status and the command execution sequence number.
进一步的,功能块在监听受控设备的响应数据时,若在设定的时间阈值内未接收到反馈数据或接收到的命令执行序号与该命令对应的命令序号始终不一致,则以命令响应超时处理。Further, when the function block monitors the response data of the controlled device, if the feedback data is not received within the set time threshold or the received command execution sequence number is always inconsistent with the command sequence number corresponding to the command, the command response timeout will be used. deal with.
有益效果beneficial effect
本发明的有益效果如下: The beneficial effects of the present invention are as follows:
本发明的支持触发式通信的数据处理方法和系统,既可以实现集散控制系统中控制端和受控对象间的周期性通信,也可以实现触发式通信,从而能够支持特定对象的流程式操作过程。同时,本发明的数据处理方法和系统,既支持机架冗余模式下的命令通信,也支持相邻冗余模式下的命令通信,也支持单卡模式下的命令通信,应用场景比较灵活。另一方面,本发明的数据处理方法和系统,既支持modbus触发式通信也支持自定义触发式通信,既支持触发式有响应通信也支持触发式无响应通信,具有良好的应用范围。The data processing method and system for supporting trigger communication of the present invention can realize both periodic communication between the control terminal and the controlled object in the distributed control system, and trigger communication, so as to support the flow-type operation process of a specific object . At the same time, the data processing method and system of the present invention support not only command communication in rack redundancy mode, command communication in adjacent redundant mode, but also command communication in single card mode, and the application scenarios are relatively flexible. On the other hand, the data processing method and system of the present invention support both modbus-triggered communication and custom-triggered communication, both triggered-responsive communication and triggered non-responsive communication, and have a good scope of application.
本发明的实施方式Embodiments of the present invention
为了进一步理解本发明,下面结合实施例对本发明优选实施方案进行描述,但是应当理解,这些描述只是为进一步说明本发明的特征和优点,而不是对本发明权利要求的限制。In order to further understand the present invention, the preferred embodiments of the present invention are described below in conjunction with the examples, but it should be understood that these descriptions are only for further illustrating the features and advantages of the present invention, rather than limiting the claims of the present invention.
本发明的第一示出实施例为一种支持触发式通信的数据处理方法,包括如下步骤:The first illustrated embodiment of the present invention is a data processing method supporting triggered communication, which includes the following steps:
第一步,根据用户需求进行组态配置,并生成对应触发式通信命令的命令控制字和命令序号。The first step is to configure the configuration according to user requirements, and generate the command control word and command serial number corresponding to the trigger communication command.
其中,命令序号的数值有效范围为[1-255],且每一条新的触发式通信命令对应的命令序号为现有值加1。The valid range of the command serial number is [1-255], and the command serial number corresponding to each new trigger communication command is the existing value plus 1.
第二步,控制器根据组态配置向主站或者客户端模块周期发布实时数据,所述实时数据包括所述命令控制字、命令序号和输出数据。In the second step, the controller periodically releases real-time data to the master station or client module according to the configuration configuration, and the real-time data includes the command control word, command serial number and output data.
第三步,主站或者客户端模块监听控制器下发的实时数据,根据所述命令控制字判定是否允许输出触发式通信命令,若允许则输出触发式通信命令,否则不输出。In the third step, the master station or the client module monitors the real-time data sent by the controller, determines whether to allow the output of the trigger communication command according to the command control word, and if so, outputs the trigger communication command, otherwise does not output.
若主站或者客户端模块监听到控制器下发的实时数据中命令序号的值为0,则表示初始状态,此时控制器与主站或者客户端模块进行实时数据同步,同时主站或客户端模块忽略命令控制字。If the master station or client module listens to the command sequence number value of 0 in the real-time data sent by the controller, it means the initial state. At this time, the controller and the master station or client module synchronize real-time data, and the master station or client The end module ignores the command control word.
第四步,主站或者客户端接收受控设备执行所述触发式通信命令的响应数据,解析所述响应数据,并将解析出的命令执行序号和命令执行状态反馈给控制器。In the fourth step, the master station or the client receives the response data of the controlled device executing the trigger communication command, parses the response data, and feeds back the parsed command execution sequence number and command execution status to the controller.
其中,命令执行状态包括:The command execution status includes:
状态1:初值;state 1: initial value;
状态2:响应正确,对应有响应的触发式命令类型,主站或客户端模块接收到响应;State 2: The response is correct, corresponding to the type of triggered command that has a response, and the master station or client module receives the response;
状态3:发送完成,对应无响应的触发式命令类型,主站或客户端模块发送完成;Status 3: Sending completed, corresponding to the trigger command type without response, the master station or client module has completed sending;
状态4:响应超时,对应有响应的触发式命令类型,主站或客户端模块接收超时。State 4: Response timed out, corresponding to the type of triggered command that has a response, the master station or client module receives a timeout.
第五步,控制器等待命令响应过程中监听从主站或者客户端反馈的数据,并基于命令执行序号判定是否计算并显示外部受控的响应结果;若命令执行序号与该命令对应的命令序号一致,则计算并显示受控设备的响应结果;否则不予处理。In the fifth step, the controller monitors the data fed back from the master station or the client while waiting for the command response, and determines whether to calculate and display the externally controlled response result based on the command execution sequence number; if the command execution sequence number corresponds to the command sequence number of the command If they are consistent, the response result of the controlled device will be calculated and displayed; otherwise, it will not be processed.
进一步的,控制器在监听从主站或者客户端返回的数据时,若在设定的时间阈值内未接收到反馈数据或接收到的命令执行序号与该命令对应的命令序号始终不一致,则以命令响应超时处理。Further, when the controller monitors the data returned from the master station or the client, if no feedback data is received within the set time threshold or the received command execution sequence number is always inconsistent with the command sequence number corresponding to the command, the controller will use the Command response timeout processing.
本发明的第二示出实施例为一种支持触发式通信的数据处理系统,应用于集散控制系统中,包括:The second illustrated embodiment of the present invention is a data processing system supporting triggered communication, applied in a distributed control system, including:
命令调度模块,其包括:Command scheduling module, which includes:
数据发布单元,用于根据组态配置向主站或者客户端模块周期发布实时数据,所述实时数据包括命令控制字、命令序号和输出数据;a data release unit, configured to periodically release real-time data to the master station or the client module according to the configuration configuration, the real-time data including the command control word, the command serial number and the output data;
程序调度单元,用于根据组态配置调度用户程序,所述用户程序中包括控制触发式通信命令执行的功能块;a program scheduling unit, configured to schedule a user program according to the configuration configuration, the user program includes a function block that controls the execution of the trigger-type communication command;
数据接收单元,用于接收受控设备的响应数据并返回给主站或者客户端模块,所述响应数据包括命令执行状态、命令执行序号和设备响应数据。The data receiving unit is used for receiving the response data of the controlled device and returning it to the master station or the client module, the response data including the command execution status, the command execution sequence number and the device response data.
命令执行模块,其包括:Command execution module, which includes:
命令输出单元,用于监听下发的实时数据,并根据命令控制字和命令序号决定是否输出一条触发式通信命令;The command output unit is used to monitor the real-time data issued, and decide whether to output a trigger communication command according to the command control word and the command serial number;
命令执行单元,用于控制命令执行,并将命令执行状态和命令执行序号通过响应数据发布给主站或者客户端;命令执行结果仅向控制器发布一次数据;The command execution unit is used to control the execution of the command, and publish the command execution status and the command execution sequence number to the master station or the client through the response data; the command execution result only publishes the data to the controller once;
以及映射配置模块,其用于实现所述命令调度模块和命令执行模块之间的数据映射和命令号映射配置。and a mapping configuration module, which is used to implement data mapping and command number mapping configuration between the command scheduling module and the command execution module.
本实施例中,所述的功能块特指触发式通信功能块,当用户需要触发一条通信命令时,基于所述功能块改写所述实时数据中的命令控制字,并自动生成命令序号;In this embodiment, the function block specifically refers to a trigger communication function block. When a user needs to trigger a communication command, the command control word in the real-time data is rewritten based on the function block, and a command sequence number is automatically generated;
等待命令响应过程中监听受控设备的响应数据,并根据命令执行状态和命令执行序号计算并显示受控设备的响应结果。Monitor the response data of the controlled device in the process of waiting for the command response, and calculate and display the response result of the controlled device according to the command execution status and the command execution sequence number.
进一步的,功能块在监听受控设备的响应数据时,若在设定的时间阈值内未接收到反馈数据或接收到的命令执行序号与该命令对应的命令序号始终不一致,则以命令响应超时处理。Further, when the function block monitors the response data of the controlled device, if the feedback data is not received within the set time threshold or the received command execution sequence number is always inconsistent with the command sequence number corresponding to the command, the command response timeout will be used. deal with.
下面通过具体实施例对本发明的方案做进一步详细说明。The solution of the present invention will be further described in detail below through specific embodiments.
如附图1所示的系统中,主要包括配置与客户端或主站一侧的命令调度器(命令调度模块)、命令执行器(命令执行模块)、功能块,以及实现命令调度器和命令执行器之间的数据映射和命令号映射配置的映射配置模块。As shown in Figure 1, the system mainly includes a command scheduler (command scheduling module), a command executor (command execution module), a function block, and a command scheduler and a command that are configured with the client or the main station. A mapping configuration module for data mapping and command number mapping configuration between actuators.
如图2所示,为本具体实施例中涉及的周期性发布的实时数据帧格式图,其中:As shown in Figure 2, the real-time data frame format diagram of periodic release involved in this specific embodiment, wherein:
Start代表byCtrl中bit7位,当Start发生变化时有效,状态变化表示触发发送。Start represents bit 7 in byCtrl, which is valid when Start changes, and the state change means triggering transmission.
bySeq用于实现发送命令与接收命令的一一对应关系。控制器发送了一条触发命令给主站或者客户端模块,但可能收到主站或者客户端模块上一次的响应结果,这会造成功能块误判。为了防止这个情况发生,引入bySeq概念,功能块每执行一次触发命令则bySeq加1。特别注意功能块不能置bySeq为0,即其有效范围是[1-255]。bySeq为0表示初始状态,发生在控制器离线下载、冷启动、瞬时掉电和新增的触发式通信命令的情况。主站或者客户端模块接收到控制器发布的实时数据时,若检测到bySeq为0,表示控制器发生上述行为,需要与主站或者客户端模块进行实时数据同步,此时主站或客户端模块忽略Start控制字,更新Ctrl字段和bySeq字段。bySeq is used to realize the one-to-one correspondence between sending commands and receiving commands. The controller sends a trigger command to the master station or client module, but may receive the last response result of the master station or client module, which will cause the function block to misjudge. In order to prevent this from happening, the concept of bySeq is introduced, and bySeq is incremented by 1 every time the function block executes a trigger command. Note that the function block cannot set bySeq to 0, that is, its valid range is [1-255]. bySeq is 0 to indicate the initial state, which occurs in the case of controller offline download, cold start, momentary power failure and newly added trigger communication commands. When the master station or client module receives the real-time data released by the controller, if it detects that bySeq is 0, it means that the controller has the above behavior and needs to synchronize the real-time data with the master station or client module. The module ignores the Start control word and updates the Ctrl and bySeq fields.
如图3所示,为本具体实施例中接收响应数据帧格式图,其中:As shown in FIG. 3, it is a format diagram of the received response data frame in this specific embodiment, wherein:
1)byStatus为状态字描述:1) byStatus is the description of the status word:
0x00 —— 初值;0x00 —— initial value;
0x01 —— 响应正确,对应有响应的触发式命令类型,主站或客户端模块接收到响应;0x01 —— The response is correct, corresponding to the type of triggered command that has a response, and the master station or client module receives the response;
0x02 —— 发送完成,对应无响应的触发式命令类型,主站或客户端模块发送完成;0x02 —— Sending completed, corresponding to the trigger command type without response, the master station or client module has completed sending;
0x03 —— 响应超时,对应有响应的触发式命令类型,主站或客户端模块接收超时。0x03 —— Response timeout, corresponding to the type of trigger command with response, the master station or client module receives timeout.
2)bySeq为命令执行序号,有效范围[1-255],初值是0x00。2) bySeq is the command execution sequence number, the valid range is [1-255], and the initial value is 0x00.
主站或客户端模块在处理命令响应后原样返回控制器下发的实时数据中的bySeq命令序列号。The master station or client module returns the bySeq command serial number in the real-time data sent by the controller as it is after processing the command response.
功能块在监听命令响应数据时,只有发送的bySeq和接收的bySeq值一致时才能进一步处理byStatus状态,不一致时表明主站或客户端模块还未处理本条命令。When the function block monitors the command response data, it can further process the byStatus status only when the sent bySeq value is consistent with the received bySeq value. If it is inconsistent, it means that the master station or client module has not yet processed this command.
功能块在监听命令响应数据时,若发送的bySeq和接收的bySeq长时间不一致超过设定时间(功能块组态参数),则以命令响应超时处理。When the function block monitors the command response data, if the sent bySeq and the received bySeq are inconsistent for a long time and exceed the set time (function block configuration parameter), the command response timeout will be processed.
3)byDataLen为从设备响应数据长度:3) byDataLen is the response data length from the device:
从设备或者服务器响应数据长度(设备在不同情况下响应长度不一样)。The data length of the response from the device or the server (the response length of the device is different in different situations).
4)byMode模式bit7置1表示命令执行器在线,置0表示命令执行器不在线,当功能块发现命令执行器不在线时,不会下发触发命令。4) Bit7 in byMode mode is set to 1 to indicate that the command executor is online, and set to 0 to indicate that the command executor is not online. When the function block finds that the command executor is not online, it will not issue a trigger command.
如图4所示为本具体实施例中触发式通信功能块示意图。FIG. 4 is a schematic diagram of the trigger type communication function block in this specific embodiment.
功能块为简化触发式通信设置,一个功能块对应一条触发式命令,当用户想要发送一条命令给外部设备时,通过功能块Trig将图2中Start信号发生变化,并将bySeq累加1,发送给主站或客户端模块。当接收到外部响应数据时,主站或客户端模块会处理接收来的数据,并将自己接收到的bySeq重新赋值到数据区前4个字节,按格式填好发送给控制器,功能块解析每条命令的响应区数据并显示,Recv表示接受到正常的响应数据包,RspLen表示接收到的数据长度,当超时时间仍然没有收到响应数据时,TimeOut置ON。命令与命令之间的调度关系由用户编写逻辑,功能块无需关心。功能块相关的数据区有三个部分:The function block is to simplify the trigger communication setting. One function block corresponds to one trigger command. When the user wants to send a command to an external device, the Start signal in Figure 2 is changed through the function block Trig, and the bySeq is incremented by 1 to send to the master or client module. When receiving external response data, the master or client module will process the received data, reassign the received bySeq to the first 4 bytes of the data area, fill in the format and send it to the controller, the function block Parse the data in the response area of each command and display it, Recv indicates that a normal response data packet is received, RspLen indicates the length of the received data, and TimeOut turns ON when the response data is still not received within the timeout period. The scheduling relationship between commands is written by the user, and the function block does not need to care. The function block related data area has three parts:
命令对应的响应实时数据区,格式见图3;The response real-time data area corresponding to the command, the format is shown in Figure 3;
命令对应的下发触发命令数据区,格式见图2。The data area of the issued trigger command corresponding to the command, the format is shown in Figure 2.
功能块组态时设定的命令超时时间,此处指功能块触发一条命令多久没有收到主站或客户端回包时会将功能块TimOut置ON的时间。The command timeout time set when the function block is configured, here refers to the time that the function block will turn on the function block TimOut when it triggers a command and does not receive a reply packet from the master station or client.
如图5所示为本具体实施例中触发式通信命令执行器查询允许发送命令操作流程图。FIG. 5 is a flow chart of the operation of the trigger communication command executor inquiring the permission to send command in this specific embodiment.
本实施例中,将所有命令放到2ms任务中做周期性调度,通过bySeq和Start信号判断是否允许主站或者客户端发送给外部设备。s_bValid[byCmdID]是命令号为byCmdID时所对应的组态是否更新状态标志,用于判断是否同步控制器中bySeq和Start信号。当该位为0时,说明此次调度只是同步功能,不会触发信号,当该位不为0时,说明该触发信号正式触发下来。判断bySeq是否为0,如果是,说明模块处于离线下载、冷启动、热复位、瞬时掉电和新增触发式通信命令情况下,命令序列号为0进行Start控制字同步。bySeq[byCmdID]是记录的上次触发有效信号的序列号值,如果此次触发信号跟上次一样,说明功能块并未下发新的触发命令,所以此次触发应该丢弃;如果不一样,说明有新的触发信号过了,记录此次触发信号到bySeq[byCmdID]中,同步更新Start[byCmdID]状态,返回此次新的触发信号的命令号,并将该命令号对应的实时数据发送给外部设备。In this embodiment, all commands are put into a 2ms task for periodic scheduling, and it is judged by using the bySeq and Start signals whether the master station or the client is allowed to send to the external device. s_bValid[byCmdID] is whether the corresponding configuration updates the status flag when the command number is byCmdID, which is used to judge whether to synchronize bySeq and Start signals in the controller. When the bit is 0, it means that the scheduling is only a synchronization function and will not trigger the signal. When the bit is not 0, it means that the trigger signal is officially triggered. Determine whether bySeq is 0. If it is, it means that the module is in offline download, cold start, warm reset, instantaneous power failure and new trigger communication commands, and the command serial number is 0 to synchronize the Start control word. bySeq[byCmdID] is the recorded serial number value of the last valid trigger signal. If the trigger signal this time is the same as the last time, it means that the function block has not issued a new trigger command, so this trigger should be discarded; Indicates that a new trigger signal has passed, record the trigger signal to bySeq[byCmdID], update the Start[byCmdID] state synchronously, return the command number of the new trigger signal, and send the real-time data corresponding to the command number. to external devices.
如图6所示为本具体实施例中触发式通信命令执行器将外部设备响应数据和包发送给控制器操作流程图。FIG. 6 is a flow chart of the operation of sending the response data and packets of the external device to the controller by the trigger communication command executor in this specific embodiment.
以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。The descriptions of the above embodiments are only used to help understand the method and the core idea of the present invention. It should be pointed out that for those skilled in the art, without departing from the principle of the present invention, several improvements and modifications can also be made to the present invention, and these improvements and modifications also fall within the protection scope of the claims of the present invention.