[0040] 为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明的实施例,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0041] 本实施例提供的基于PLC的运动控制方法应用于基于PLC的运动控制器中,“基于PLC的运动控制器”在下述实施例中简称为“运动控制器”;
[0042] 图1为本发明提供的基于PLC的运动控制方法对应的三层程序架构示意图,如图1所述,该运动控制方法对应的程序具有三层架构,分别为用户定制层,控制程序层和引擎算法层;用户定制层用于将用户输入的自然语言运动指令转化为控制程序层识别的标准运动指令,具体的,被控机器的一个运动过程对应的是多条具有时间先后顺序的标准运动指令的完成,如图1中的标准运动指令1、标准运动指令2、标准运动指令3、标准运动指令4和标准运动指令5;控制程序层用于根据具有时间先后顺序的多条标准运动指令,调用相应的引擎算法依次执行多条标准运动指令;引擎算法层用于根据控制程序层的调用,执行相应的引擎算法,并控制被控机器执行相应的动作。本实施例中提供的运动控制器具有从用户定制层到控制程序层再到引擎算法层的逐层映射关系,对于需要频繁更改控制参数和运动控制逻辑的运动控制需求,用户可进行运动控制的语言的定制。
[0043] 在运动控制器启动初始化时,在内存中开辟一块专用的公共数据区,并将公共数据区按类型分为字节数据区(D区)和位数据区(M区);其中,字节数据区用于存储用户输入的运动指令和运动指令对应的参数,位数据区用于存储运动指令的执行状态以及与运动指令对应的引擎算法的执行状态。
[0044] 图2为本发明提供的基于PLC的运动控制方法的流程示意图一,图2所示方法流程的执行主体可以为运动控制器,该运动控制器可由任意的软件和/或硬件实现。如图2所示,本实施例提供的基于PLC的运动控制方法可以包括:
[0045] S101,根据字节数据区存储的N条标准运动指令对应的运动参数,依次执行N条标准运动指令,以控制被控机器执行对应的动作,其中,N为大于0的整数。
[0046] 本实施例中,用户可按照现有技术中的启动方式将被控机器开启,运动控制器接收到用户输入的启动指令,字节数据区存储有N条标准运动指令以及N条标准运动指令对应的运动参数。
[0047] 根据N条标准运动指令对应的运动参数,控制被控机器执行相应的动作;其中,对N条标准运动指令依次进行执行,控制被控机器执行各指令对应的动作。
[0048] S102,当执行第M条标准运动指令时,调用第M条标准运动指令对应的X条引擎算法执行第M条标准运动指令,并将第M条标准运动指令的执行状态设置为启动状态、和将X条引擎算法的执行状态设置为运行状态;其中,M为大于0且小于或等于N的整数,X为大于0的整数。
[0049] 当运动控制器执行第M条标准运动指令时,调用第M条标准运动指令对应的X条引擎算法,其中,第M条标准运动指令对应的X条引擎算法可以为多条。其中,M为大于0且小于或等于N的整数,第M条标准运动指令为N条标准运动指令中的任意一条标准运动指令。
[0050] 其中,调用引擎算法层的引擎算法的控制程序设置在控制程序层,引擎算法可预先设置在的引擎算法层。
[0051] 在执行第M条标准运动指令时,将第M条标准运动指令的执行状态设置为启动状态,在调用X条引擎算法执行第M条标准运动指令时,将将X条引擎算法的执行状态设置为运行状态。
[0052] 具体的,本实施例中对于启动状态和运动状态的具体设置方式不做限制,只要能够识别第M条标准运动指令和其对应的X条引擎算法均处于工作状态即可。
[0053] S103,将N条标准运动指令的执行状态和N条标准运动指令对应的引擎算法的执行状态存储在位数据区。
[0054] 运动控制器在调用引擎算法依次执行N条标准运动指令时,将当前执行的标准运动指令的执行状态设置为启动状态,且将当前执行的标准运动指令对应的引擎算法的执行状态设置为运行状态,且对应的,将标准运动指令的执行状态和标准运动指令对应的引擎算法的执行状态存储在位数据区。其中,标准运动指令的执行状态存储在控制层序层的位数据区,标准运动指令对应的引擎算法的执行状态存储在引擎算法层的位数据区。
[0055] 可以想到的是,本实施例提供的运动控制方法还可应用于其他被控机器;在应用至其他被控机器时,可先根据被控机器的全部运动,将被控机器的运动设置对应的指令对应表,可根据本实施例中的运动控制方法对被控机器实现用户可定制的运动控制。
[0056] 本实施例中提供一种基于PLC的运动控制方法,包括:根据字节数据区存储的N条标准运动指令对应的运动参数,依次执行N条标准运动指令,以控制被控机器执行对应的动作;当执行第M条标准运动指令时,调用第M条标准运动指令对应的X条引擎算法执行第M条标准运动指令,并将第M条标准运动指令的执行状态设置为启动状态、和将X条引擎算法的执行状态设置为运行状态;将N条标准运动指令的执行状态和N条标准运动指令对应的引擎算法的执行状态存储在位数据区。本发明实现了用户定制语言到运动控制算法的映射,用户可以定制运动指令,节省了程序开发时间和成本。
[0057] 下面结合图3对本发明提供的基于PLC的运动控制方法、以及用户定制层、控制程序层和引擎算法层的映射关系进行详细说明,图3为本发明提供的基于PLC的运动控制方法的流程示意图二,如图3所示,本发明提供的基于PLC的运动控制方法包括:
[0058] S201,根据预先设置的指令对应表,将用户输入的N条自然语言运动指令转化为N条标准运动指令,并将N条标准运动指令存储在字节数据区;标准运动指令用于指示被控机器对应的运动参数,指令对应表用于指示被控机器的自然语言运动指令与标准运动指令之间的对应关系。
[0059] 本实施例中,指令对应表可预先设置在用户定制层,用户在运动控制器中输入相应的运动指令,由于实际操作的用户一般不具有很强代码能力,用户输入的为具有时间先后顺序的N条自然语言运动指令,具体的自然语言运动指令的形式可以是按照运动指令的先后顺序,逐行表示的自然语言的执行过程,如自然语言运动指令中可包括:被控机器的速度,加速度和加加速度,以及被控机器各轴的运动位移、运动时间等。本实施例对于用户输入的自然语言运动指令的具体形式不做限制,只要与指令对应表中的自然语言运动指令的表示形式一致即可,能够实现根据指令对应表实现自然语言运动指令转化为N条标准运动指令到N条标准运动指令的转化即可。其中,N为大于0的整数。
[0060] 本实施例中的指令对应表具体包括被控机器所有运动的自然语言运动指令和标准运动指令,指令对应表用于指示被控机器的自然语言运动指令与标准运动指令之间的对应关系;当用户根据被控机器的具体需求输入相应的自然语言运动指令,通过查询该指令对应表,按照指令的时间先后顺序,依次将自然语言运动指令转化为对应的标准运动指令。标准运动指令用于指示被控机器对应的运动参数,如被控机器的速度,加速度和加加速度,以及被控机器各轴的运动位移、运动时间等。
[0061] 获取到被控机器的N条标准运动指令后,将该N条标准运动指令存储在运动控制器中用户定制层的字节数据区,以便于之后根据该N条标准运动指令中的运动参数调用相应的引擎算法执行该N条标准运动指令。
[0062] 以下,以绕线机为例对本实施例提供的基于PLC的运动控制方法进行说明,绕线机是把线状的物体缠绕到特定的工件上的设备,其具体的运动可以包括:
[0063] 1)复位:即绕线机的X轴,Y轴,Z轴,U轴,Q轴依次通过Z相定位的方式,找到电机Z点,然后各轴运动指定距离作为各轴的原点,准备开始绕线);2)上料:绕线开始时,通过气泵的组合运动,将骨架从料台送到U轴上固定;3)退料:绕线结束时,通过气泵的组合运动,将骨架从U轴上卸到料台;4)直线进给:电机分别驱动X轴,Y轴,Z轴,使导针(引导铜线)到达指定位置;5)缠脚:电机驱动X轴,Y轴,Z轴三轴联动,X轴,Y轴以指定半径做画圆运动,同时Z轴按指定距离做提升或下降运动;用于将铜线固定在骨架的引脚上,以准备下一个动作,如断线等;6)断线:在铜线缠住引脚后,气泵驱动夹爪左移或前进或后退,将铜线扯断;7)退线:夹爪下旋,张开,退线气泵前推,将断线后的废线退到废料区,然后退线气泵复位;8)缠线:电机驱动X轴,U轴两轴做主从运动,其中U轴为主轴,X轴为从轴;U轴带动骨架高速旋转的同时,X轴跟随U轴做来回运动,从而将铜线按指定参数缠绕在骨架上。
[0064] 获取绕线机的所有运动后,可对绕线机的运动设置相应的指令对应表,可如下表一所示:
[0065] 表一
[0066]
[0067]
[0068] 其中,该绕线机的指令对应表中包括了上述绕线机8中运动指令,此外还包括绕线机的暂停/延时指令,绕线机绝对坐标等运动指令等。具体的,用户输入的自然语言运动指令的指令格式如表一中第2列所示,可为“G00X_Y_Z_S_、G00CW X_N_D_S_、G02CW R_N_Z_S_等”,其中,G00、G00CW、G02CW表示不同的运动类型,具体的指令格式涉及到的参数表示含义如表一中第3列所示。在表一中还可设置有各参数的转化率,如:为了使得自然语言运动指令中的运动参数的单位(X轴、Y轴、Z轴等的位移单位mm)与最终被控机器接收到的位移对应的脉冲的单位(脉冲/毫秒)一致,将上述运动参数转化为脉冲数,即被控机器运动1mm对应的脉冲数为5000,即位移的转化率为5000;如自然语言运动指令中的时间的单位与最终被控机器接收到的位移对应的脉冲的单位一致,时间对应的转化率为1。具体的,上述表一为指令对应表的示例,本领域的技术人员可以设置其他项目添加至指令对应表中,本实施例不做限制。
[0069] 用户根据实际需求,如只需绕线机进行直线进给、停止和直线进给运动,即对应该指令对应表中的指令功能为X、Y、Z轴快速定位的指令。则用户在运动控制器中输入相应的运动指令,由于实际操作的用户一般不具有很强代码能力,用户输入的为自然语言运动指令,具体可如下所示:
[0070] N101 G00 X12.00 Y33.500 Z24.000 S50
[0071] N102 G04 T2
[0072] N103 G00 X11.00 Y36.500 Z16.000 S50
[0073] 其中,N101、N102和N103分别表示第101行、102行和103行的指令,G00和G04分别指示的是指令对应表中的自然语言运动指令中对应的被控机器的执行动作的类型,X、Y、Z、分别表示绕线机所处的X轴、Y轴和Z轴的坐标值,S表示绕线机的速度,T表示绕线机处于暂停状态;具体的,上述第101行指令为绕线针以50mm/s的速度定位到坐标(X12.00,Y33.50,Z24.00),第102行指令为绕线机暂停2秒钟,第103行指令为绕线针以50mm/s的速度定位到坐标(X11.00,Y36.50,Z16.00)。其中,本实施例对坐标中相应数值的单位不做具体限制。具体的,对于指令对应表中的自然语言运动指令中的G00、X、Y、Z、S、G04、T代表的含义或者字母本身可以改变,只要与指令对应表中的指令符号一致即可。
[0074] 具体的,本实施例中,将用户输入的N条自然语言运动指令转化为N条标准运动指令具体方式可以是:
[0075] 首先根据指令代码,将用户输入的N条自然语言运动指令转化为N条运动代码指令。
[0076] 指令对应表中包括自然语言运动指令对应的指令代码,根据上述实施例中的表一所示如“G00 X_Y_Z_S_自然语言运动指令对应的指令代码为01”,具体的,将自然语言运动指令中的运动类型转化为指令代码,将指令格式中的“X、Y、Z”等指令参数删除,仅留下运动参数的数值;如:将自然语言运动指令转化为如下所示的运动代码指令:
[0077] 01 12.00 33.500 24.000 50
[0078] 08 2
[0079] 01 11.00 36.500 16.000 50
[0080] 其次,根据自然语言运动指令中的运动参数、标准运动指令中的运动参数之间的单位转换关系,将N条运动代码指令转化为N条标准运动指令。
[0081] 本实施例中为了使得自然语言运动指令中的运动参数的单位(mm)与最终被控机器接收到的脉冲的单位(脉冲/毫秒)一致,将上述运动参数转化为脉冲数,即被控机器运动1mm对应的脉冲数为5000;如:将自然语言运动指令转化为如下所示的标准运动指令:
[0082] 01 60000 167500 144000 250
[0083] 08 2
[0084] 01 55000 182500 80000 250
[0085] S202,将N条标准运动指令存储在定制程序数据区。
[0086] 具体的,字节数据区包括定制程序数据区,在根据指令对应表将N条自然语言运动指令转化为N条标准运动指令后,将该N条标准运动指令存储在定制程序数据区,其中,定制程序数据区位于用户定制层。
[0087] S203,将第M条标准运动指令复制至定制程序参数交换区,根据预先设置的指令解析表,在定制程序指令标志区将第M条标准运动指令对应的执行状态设置为启动状态,指令解析表用于指示第M条标准运动指令的启动状态设置的位置。
[0088] 具体的,字节数据区包括定制程序参数交换区,本实施例中,运动控制器需要执行第M条标准运动指令时,先将存储在定制程序数据区的第M条标准运动指令复制至定制程序参数交换区;且将第M条标准运动指令对应的执行状态设置为启动状态,并存储在定制程序指令标志区。
[0089] 具体的,以绕线机为例进行说明,当运动控制器执行“01 55000 18250080000 250”标准运动指令时,查询指令解析表,解析该条标准运动指令,其中,指令解析表预先存储在定制程序层,指令解析表用于指示第M条标准运动指令的启动状态设置的位置和第M条标准运动指令在定制程序参数交换区存储的位置。
[0090] 具体的,根据指令解析表,获取该运动指令的起始地址为VM200(M区第200个字节),且在定制程序参数交换区的存储地址为VD1000(D区第1000个字节),因此,在执行该标准运动指令时,将启动起始地址的第一位VM2000设置为“ON”或“1”,代表该条指令正在运行,本实施例对于标准运动指令的执行状态的具体表示方式不做限制,只要能够表示该条标准运动指令处于启动状态即可。具体的,指令解析表可如下表二所示:
[0091] 表二
[0092]
[0093]
[0094] 其中,参数交换区地址为各标准运动指令中的参数的存储地址;而启动标志起始地址表示各标准运动指令的起始地址。
[0095] S204,当执行第M条标准运动指令时,将第M条标准运动指令对应的运动参数复制至标准引擎算法参数区。
[0096] 其中,标准运动指令中包括被控机器对应的运动参数,字节数据区包括标准引擎算法参数区;当运动控制器将要执行的第M条标准运动指令复制至定制程序参数交换区,即表示这条指令为当前执行的标准运动指令,当执行第M条标准运动指令时,将该第M条标准运动指令对应的运动参数复制至标准引擎算法参数区。
[0097] S205,在N条标准运动指令对应的引擎算法中,查询第M条标准运动指令对应的X条引擎算法;利用X条引擎算法执行第M条标准运动指令,并将X条引擎算法在引擎算法标志区的执行状态设置为运行状态。
[0098] 当执行第M条标准运动指令时,运动控制器调用设置在引擎算法层的引擎算法,根据第M条标准运动指令对应的运动参数,执行第M条标准运动指令,以控制被控机器执行第M条标准运动指令对应的动作,具体的,运动控制器调用引擎算法执行第M条标准运动指令的具体方式可以是:
[0099] 引擎算法层设置有多个算法,运动控制器根据引擎算法层的第M条标准运动指令,查询与其对应的X条引擎算法,利用X条引擎算法执行第M条标准运动指令,并将X条引擎算法在引擎算法标志区的执行状态设置为运行状态;其中,位数据区包括引擎算法标志区。
[0100] 具体的,引擎算法标志区包括引擎算法触发标志区(TS)和引擎算法状态标志区(RS),其中,TS包括on和off两个触发标志,RS包括run和stop两个状态标志。
[0101] 具体的,在第M条标准运动指令执行时,其对应的X条引擎算法逐条执行,当执行X条引擎算法中的任意一条时,该条引擎算法对应的TS和RS的状态变化可如图4所示,图4为本发明提供的基于PLC的运动控制器中的引擎算法层的运动状态变化流程示意图,如图4所示,在运动控制器执行第M条标准运动指令前,该运动指令对应的X条引擎算法的引擎算法标志区为,X条引擎算法处于停止状态(Stop);当运动控制器执行第M条标准运动指令时,运动控制器将第M条标准运动指令对应的X条引擎算法的触发标志由off设置为on,此时,X条引擎算法的引擎算法标志区为,X条引擎算法处于准备状态(Ready);X条引擎算法即将开始执行,当X条引擎算法开始执行时,运动控制器将第M条标准运动指令对应的X条引擎算法的状态标志由stop设置为run,将X条引擎算法的触发标志由on设置为off,此时,X条引擎算法的引擎算法标志区为,X条引擎算法处于运行状态(Run);当X条引擎算法执行结束时,运动控制器将第M条标准运动指令对应的X条引擎算法的状态标志由run设置为stop,此时,X条引擎算法的引擎算法标志区为,X条引擎算法处于停止状态(Stop);其中,第M条标准运动指令对应的X条引擎算法为多条引擎算法。
[0102] 本实施例中,标准运动指令存储在用户定制层的定制程序数据区,当执行第M条标准运动指令时,先将该第M条标准运动指令复制至控制程序层的定制程序参数交换区,且将第M条标准运动指令对应的执行状态设置为启动状态存储在控制程序层的定制程序指令标志区;其次,运动控制器在引擎算法层调用第M条标准运动指令对应的X条引擎算法执行该运动指令时,先将该第M条标准运动指令由控制程序层的定制程序参数交换区复制至标准引擎算法参数区,且将X条引擎算法对应的执行状态设置为运行状态,存储在引擎算法标志区;本实施例中提供的基于PLC的运动控制方法,实现了用户定制语言到控制程序、再到引擎算法的映射,用户可以在用户定制层定制运动指令,该运动指令映射至引擎算法层,实现被控机器的运动控制,节省了程序开发时间和成本。
[0103] 图5为本发明提供的基于PLC的运动控制器的结构示意图,如图5所示,该运动控制器500包括:存储器501和至少一个处理器502。
[0104] 存储器501,用于存储程序指令。
[0105] 处理器502,用于在程序指令被执行时实现本实施例中的运动控制方法。
[0106] 具体的,图6为本发明提供的基于PLC的运动控制器的内存分配示意图一,如图6所示:存储器501的存储区域包括字节数据区和位数据区。
[0107] 处理器502,用于根据字节数据区存储的N条标准运动指令对应的运动参数,依次执行N条标准运动指令,以控制被控机器执行对应的动作;其中,N为大于0的整数;
[0108] 当执行第M条标准运动指令时,调用第M条标准运动指令对应的X条引擎算法执行第M条标准运动指令,并将第M条标准运动指令的执行状态设置为启动状态、和将X条引擎算法的执行状态设置为运行状态;其中,M为大于0且小于或等于N的整数,X为大于0的整数;
[0109] 其中,字节数据区用于存储N条标准运动指令;
[0110] 位数据区用于存储N条标准运动指令的执行状态以及N条标准运动指令对应的引擎算法的执行状态。
[0111] 可选的,该运动控制器500还包括通信总线503,通信总线503用于实现存储器501和处理器502之间的连接。
[0112] 本实施例提供的基于PLC的运动控制器与上述运动控制方法实现的原理和技术效果类似,在此不作赘述。
[0113] 图7为本发明提供的基于PLC的运动控制器的内存分配示意图二,如图7所示,字节数据区包括:定制程序数据区、标准引擎算法参数区和定制程序参数交换区;位数据区包括引擎算法标志区和定制程序指令标志区。
[0114] 可选的,处理器,还用于根据预先设置的指令对应表,将用户输入的N条自然语言运动指令转化为N条标准运动指令,并将N条标准运动指令存储在字节数据区;标准运动指令用于指示被控机器对应的运动参数,指令对应表用于指示被控机器的自然语言运动指令与标准运动指令之间的对应关系。
[0115] 可选的,指令对应表中包括自然语言运动指令对应的指令代码。
[0116] 处理器502,具体用于根据指令代码,将用户输入N条自然语言运动指令转化为N条运动代码指令。
[0117] 根据自然语言运动指令中的运动参数、标准运动指令中的运动参数之间的单位转换关系,将N条运动代码指令转化为N条标准运动指令。
[0118] 定制程序数据区用于存储N条标准运动指令。
[0119] 可选的,标准运动指令中包括被控机器对应的运动参数。
[0120] 处理器502,具体用于将第M条标准运动指令复制至定制程序参数交换区;
[0121] 根据预先设置的指令解析表,在定制程序指令标志区将第M条标准运动指令对应的执行状态设置为启动状态,指令解析表用于指示第M条标准运动指令的启动状态设置的位置。
[0122] 可选的,处理器502,具体用于当执行第M条标准运动指令时,将第M条标准运动指令对应的运动参数复制至标准引擎算法参数区;
[0123] 在预先存储的引擎算法中查询第M条标准运动指令对应的X条引擎算法;
[0124] 利用X条引擎算法执行第M条标准运动指令,并将X条引擎算法在引擎算法标志区的执行状态设置为运行状态;
[0125] 引擎算法标志区用于存储X条引擎算法的执行状态。
[0126] 本发明还提供一种计算机可读存储介质,可读存储介质中存储有执行指令,当基于PLC的运动控制器的至少一个处理器执行该执行指令时,当计算机执行指令被处理器执行时,实现上述实施例中的运动控制方法。
[0127] 本发明还提供一种程序产品,该程序产品包括执行指令,该执行指令存储在可读存储介质中。基于PLC的运动控制器的至少一个处理器可以从可读存储介质读取该执行指令,至少一个处理器执行该执行指令使得基于PLC的运动控制器实施上述的各种实施方式提供的运动控制方法。
[0128] 在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0129] 所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0130] 另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
[0131] 上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取存储器(英文:Random Access Memory,简称:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
[0132] 在上述网络设备或者终端设备的实施例中,应理解,处理器可以是中央处理单元(英文:Central Processing Unit,简称:CPU),还可以是其他通用处理器、数字信号处理器(英文:Digital Signal Processor,简称:DSP)、专用集成电路(英文:Application Specific Integrated Circuit,简称:ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
[0133] 最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。