1.本发明属于动车组的制造技术领域,具体地说,涉及一种焊接机器人的标准化编程方法及系统。
背景技术:
2.焊接机器人在转向架焊接中大量应用,且焊接结构、层道越来越复杂,编程难度越来越大,程序精度要求越来越高,样板焊缝的使用直接决定机器人的焊接质量,同时样板焊缝与工件每条焊缝相对应数量众多,且受设备型号、结构、系统版本、基础安装差异等因素影响,不同设备间样板焊缝程序可兼容性和复制性差,实际运行步点存在偏差,焊接质量一致性差,目前仍需人工采用实际工件或模拟件示教编程的方式重复编程、反复调试,费时费力,对编程人员个人技能要求极高。
3.以上问题制约着机器人焊接生产效率与焊接质量,有鉴于此,特提出本发明。
技术实现要素:
4.本发明要解决的技术问题在于克服现有技术的不足,提供一种焊接机器人的标准化编程方法,通过建立样板焊缝编程数据库,在样板焊缝编程数据库中存储焊接样板焊缝所需的焊接参数,将焊道参数与焊道层数相关联,采用层道空间偏移修正的技术手段,使不同焊接机器人执行焊接同一种焊缝结构的任务,或者,同一焊接机器人执行焊接不同焊缝结构的任务时能够统一调用样板焊缝编程数据库中的数据,克服了必须依靠实际工件或模拟工件现场示教编程和反复调试而费时费力的缺点,从根本上解决了焊接机器人的设备差异带来的样板焊缝程序不兼容、可复制性差、实际运行步点偏差大,焊接质量不一致的问题。
5.本发明的另一目的是提供一种焊接机器人的标准化编程系统,用于实施上述的标准化编程方法。
6.为解决上述技术问题,本发明采用技术方案的基本构思是:
7.一种焊接机器人的标准化编程方法,包括以下步骤:
8.建立样板焊缝编程数据库,所述样板焊缝编程数据库中存储有焊接程序所需的若干套焊接参数,根据所述焊接参数形成所述焊接机器人的用于焊接待焊接的焊缝的焊接程序;
9.其中,每套焊参数以若干层焊道所需焊接参数的形式储存,每一层焊道对应有第一焊接参数和第二焊接参数;
10.所述第一焊接参数包括焊接机器人在焊接每层焊道时的所需参数及工具中心点空间位置数据,所述第二焊接参数包括焊接机器人在焊接除根层外的其余每层焊道时相对于根层的空间偏移参数。
11.进一步的,所述第一焊接参数包括焊接功率、弧长修正、焊接速度、摆动频率、摆动宽度、摆动高度、在焊接该层焊道时所述工具中心点相对于所述焊接机器人的相对零位的
第一角度、第二角度和第三角度;
12.所述第二焊接参数包括在焊接该层焊道时所述工具中心点相对于所述根层的焊缝方向偏差、侧面偏差、高度偏差、起始点偏移、结束点偏移。
13.进一步的,所述样板焊缝编程数据库中存储有若干种焊缝的焊缝尺寸数据;
14.每套焊接参数与至少一种焊缝的焊缝尺寸数据相对应。
15.进一步的,所述焊缝尺寸数据包括焊缝宽度、坡口深度、坡口角度。
16.进一步的,包括以下步骤:
17.控制焊接机器人的工具中心点运行至所述相对零位;
18.确定待焊接的焊缝的焊缝尺寸数据,获取所述样板焊缝编程数据库中与所述待焊接的焊缝的焊缝尺寸数据相对应的焊接参数;
19.根据所述焊接参数形成所述焊接机器人的用于焊接所述待焊接的焊缝的焊接程序。
20.进一步的,所述根据所述焊接参数形成所述焊接机器人的用于焊接所述待焊接的焊缝的焊接程序,包括以下步骤:
21.a1,确定根层焊道,将所述焊接机器人的焊接程序中的根层焊道所需的焊接参数修订为与所述样板焊缝编程数据库中记录的与所述待焊接的焊缝的焊缝尺寸数据相对应的根层焊道的焊接参数相一致;
22.a2,确定覆盖层焊道,将所述焊接机器人的焊接程序中的覆盖层焊道所需的焊接参数修订为与所述样板焊缝编程数据库中记录的与所述待焊接的焊缝的焊缝尺寸数据相对应的覆盖层焊道的焊接参数相一致。
23.进一步的,步骤a2中,确定覆盖层焊道包括随机添加覆盖层的层道数。
24.进一步的,所述焊接参数还包括样板焊缝编号;
25.所述样板焊缝编程数据库包括第一数据库和第二数据库;
26.所述第一数据库中存储有焊缝尺寸数据与所述样板焊缝编号的对应关系;
27.所述第二数据库中存储有所述样板焊缝编号与所述焊接参数的对应关系。
28.进一步的,所述第一数据库中还存储有待焊接的焊缝所在的部件名称,和/或待焊接的焊缝所在的车型型号。
29.一种焊接机器人的标准化编程系统,用于实施如上所述的标准化编程方法。
30.采用上述技术方案后,本发明与现有技术相比具有以下有益效果。
31.本发明根据焊接机器人程序编制与动作实现之间的数据控制关系,建立样板焊缝编程数据库,不同机器人设备调用时,通过层道空间偏移修正法,可以直接在任意空间对各焊接层道的空间位置与焊接姿态进行定义和修正,从而消除设备间差异导致的程序偏差,解决不同型号不同结构机器人程序不兼容问题,实现样板焊缝程序编程标准化与焊接品质一致性,极大简化了编程难度,解决了人工重复示教编程周期长、差异大等问题,显著提升焊缝质量及生产效率。而且,焊接结构、层道布局越复杂,本发明优势越明显。
32.下面结合附图对本发明的具体实施方式作进一步详细的描述。
附图说明
33.附图作为本发明的一部分,用来提供对本发明的进一步的理解,本发明的示意性
实施例及其说明用于解释本发明,但不构成对本发明的不当限定。显然,下面描述中的附图仅仅是一些实施例,对于本领域普通技术人员来说,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。在附图中:
34.图1是本发明焊接机器人的标准化编程方法的流程示意图;
35.图2是本发明第一数据库的部分数据示意图;
36.图3是本发明第二数据库的部分数据示意图;
37.图4是本发明第一角度、第二角度、第三角度修订参数示意图;
38.图5是本发明方向偏差数据修订参数示意图;
39.图6是本发明方向起始偏移点、结束偏移点修订参数示意图;
40.图7是本发明摆动数据修订参数示意图;
41.图8是采用本发明的标准化焊接编程方法焊接后的焊缝结构示意图。
42.需要说明的是,这些附图和文字描述并不旨在以任何方式限制本发明的构思范围,而是通过参考特定实施例为本领域技术人员说明本发明的概念。
具体实施方式
43.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对实施例中的技术方案进行清楚、完整地描述,以下实施例用于说明本发明,但不用来限制本发明的范围。
44.在本发明的描述中,需要说明的是,术语“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
45.在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
46.如图1至图8所示,本发明提供一种焊接机器人的标准化编程方法及系统。其中焊接机器人的标准化编程方法包括以下步骤:建立样板焊缝编程数据库,所述样板焊缝编程数据库中存储有焊接程序所需的若干套焊接参数,根据所述焊接参数形成所述焊接机器人的用于焊接待焊接的焊缝的焊接程序;其中,每套焊接参数以若干层焊道所需焊接参数的形式储存,每一层焊道对应有第一焊接参数和第二焊接参数;所述第一焊接参数包括焊接机器人在焊接每层焊道时的所需参数及工具中心点空间位置数据,所述第二焊接参数包括焊接机器人在焊接除根层外的其余每层焊道时相对于根层的空间偏移参数。
47.详细的,本发明将焊接机器人焊接某一结构的焊缝时所需要的焊接参数存储在样板焊缝编程数据库中,并将焊接参数分为两类,分别为第一焊接参数和第二焊接参数。其中,如图2和图3所示,第一焊接参数包括焊接机器人在焊接每层焊道时的所需参数及工具中心点空间位置数据,例如,焊接功率、弧长修正、焊接速度、摆动频率、摆动宽度、摆动高度、在焊接该层焊道时所述工具中心点相对于所述焊接机器人的相对零位的第一角度、第二角度和第三角度等。第一角度、第二角度和第三角度分别表示焊枪的phi、theta、psi三个
角,表示焊接机器人的工具中心点相对于x、y、z方向的角度。第二焊接参数包括焊接机器人在焊接除根层外的其余每层焊道时工具中心点相对于根层的空间偏移参数,例如,在焊接该层焊道时所述工具中心点相对于所述根层的焊缝方向偏差、侧面偏差、高度偏差、起始点偏移、结束点偏移等。
48.因此,上述第一焊接参数和第二焊接参数即为焊接上述这一结构的焊缝所需要的标准化的焊接参数。当焊接机器人将要执行焊接上述这一结构的焊缝的任务时,技术人员即可根据上述第一焊接参数和第二焊接参数编制用于控制该焊接机器人的焊接程序。
49.上述方案中,由于本发明的样板焊缝编程数据库中的焊接参数是以若干层道的形式存储的,因此,技术人员在编制用于控制该焊接机器人的焊接程序时,可以直接在任意空间对各焊接层道的空间位置与焊接姿态进行定义和修正,从而消除不同焊接机器人设备间差异导致的程序偏差,解决不同型号不同结构的焊接机器人程序不兼容问题,实现样板焊缝程序编程标准化与焊接品质一致性,极大简化了编程难度,解决了人工重复示教编程周期长、差异大等问题,显著提升焊缝质量及生产效率。
50.另外,如图8所示,焊接结构、层道布局越复杂,本发明优势越明显,可显著提升焊接机器人的编程效率和焊接质量。
51.需要说明的是,所述样板焊缝编程数据库中存储有若干种焊缝的焊缝尺寸数据;焊缝尺寸数据包括焊缝宽度、坡口深度、坡口角度等。每套焊接参数与至少一种焊缝的焊缝尺寸数据相对应。
52.详细的,结构相差较大的焊缝所需要的焊接参数的差异性一般也较大,但是结构相差较小的焊缝有时却可以采用同一套焊接参数。因此,本发明的样板焊缝编程数据库中存储有若干种焊缝的焊缝尺寸数据,而每套焊接参数与至少一种焊缝的焊缝尺寸数据相对应,使得每一种焊缝结构均有标准化的焊缝参数可供参考,极大简化了编程难度,解决了焊接程序的精度过分依赖编程人员个人技能的问题,实现样板焊缝程序的快速、准确编制。
53.例如,对于标准动车横梁上的焊缝而言,一位电机吊座反面的焊缝结构为焊缝宽度45mm、破口深度8mm、破口角度25
°
,二位电机吊座反面的焊缝结构为焊缝宽度45mm、破口深度8mm、破口角度30
°
。可见,一位电机吊座反面的焊缝结构与二位电机吊座反面的焊缝结构仅在坡口角度上相差5
°
,区别较小,因此,焊接机器人在执行一位电机吊座反面的焊缝结构的焊接任务时采用的焊接参数与焊接机器人在执行二位电机吊座反面的焊缝结构的焊接任务时采用的焊接参数可以为同一套标准化的焊接参数。但是,纵向梁正面的焊缝结构为焊缝宽度45mm、破口深度8mm、破口角度45
°
,纵向梁反面的焊缝结构为焊缝宽度38mm、破口深度8mm、破口角度45
°
。可见,纵向梁正面的焊缝结构与纵向梁反面的焊缝结构虽然仅在焊缝宽度上有区别,但是区别较大,两者的焊缝宽度相差7mm。因此,焊接机器人在执行纵向梁反面的焊缝结构的焊接任务时采用的焊接参数与焊接机器人在执行纵向梁正面的焊缝结构的焊接任务时采用的焊接参数就不可以为同一套标准化的焊接参数,需要分别采用两套标准化的焊接参数。
54.需要说明的是,上述示例仅为详细说明本发明的技术方案,本发明的标准化编程方法也可应用于焊接其他结构的场合下。
55.在本发明的一些实施例中,如图1所示,焊接机器人的标准化编程方法,包括以下步骤:
56.控制焊接机器人的工具中心点运行至所述相对零位;
57.确定待焊接的焊缝的焊缝尺寸数据,获取所述样板焊缝编程数据库中与所述待焊接的焊缝的焊缝尺寸数据相对应的焊接参数;
58.根据所述焊接参数形成所述焊接机器人的用于焊接所述待焊接的焊缝的焊接程序。
59.在编制焊接机器人的焊接程序时应以焊接机器人的相对零位作为参考点,可简化标准化编程方法。其中相对零位是指能够确保手动操作机器人调整焊枪姿态和位置时,动作方向是前后、左右平行方向移动的位置。
60.具体的,焊接机器人在执行焊接某一焊接结构的焊缝前,如图2所示,首先应确定这一焊接结构的焊缝的焊缝尺寸数据,然后,根据焊缝尺寸数据在样板焊缝编程数据库中搜索是否有针对该焊接结构的焊缝的标准化焊接参数,若没有,即不能采用本发明的标准化编程方法,其不是本发明保护的重点,不做赘述。若有,即可采用本发明的标准化编程方法。
61.详细的,所述根据所述焊接参数形成所述焊接机器人的用于焊接所述待焊接的焊缝的焊接程序,包括以下步骤:
62.a1,确定根层焊道,将所述焊接机器人的焊接程序中的根层焊道所需的焊接参数修订为与所述样板焊缝编程数据库中记录的与所述待焊接的焊缝的焊缝尺寸数据相对应的根层焊道的焊接参数相一致;
63.a2,确定覆盖层焊道,将所述焊接机器人的焊接程序中的覆盖层焊道所需的焊接参数修订为与所述样板焊缝编程数据库中记录的与所述待焊接的焊缝的焊缝尺寸数据相对应的覆盖层焊道的焊接参数相一致。
64.在具体操作过程中,焊接机器人的标准化编程方法如下:
65.(1)建立样板焊缝编程数据库,包含每一层焊道所需的第一角度phi、第二角度theta、第三角度psi三个三维空间角度数据;详细的焊接参数;摆动参数;除根层外每条焊缝层道焊缝方向偏差、侧面偏差、高度偏差数据;层道偏移数据;焊缝层道布局简图;坡口尺寸数据;焊缝尺寸数据;wps编号;焊缝编号;应用车型;焊接部位名称等数据和信息。
66.其中,如图2和图3所示,所述样板焊缝编程数据库包括第一数据库和第二数据库;焊缝尺寸数据(焊缝宽度、坡口深度、坡口角度)与所述样板焊缝编号的对应关系存储在所述第一数据库中;所述样板焊缝编号与所述焊接参数(每一层焊道所需的第一角度phi、第二角度theta、第三角度psi三个三维空间角度数据;详细的焊接参数;摆动参数;除根层外每条焊缝层道焊缝方向偏差、侧面偏差、高度偏差数据;层道偏移数据;焊缝层道布局简图;坡口尺寸数据;焊缝尺寸数据)的对应关系存储在所述第二数据库中。
67.另外,待焊接的焊缝所在的部件名称,和/或待焊接的焊缝所在的车型型号也存储在所述第一数据库中,根据焊缝尺寸数据在样板焊缝编程数据库中搜索是否有针对该焊接结构的焊缝的标准化焊接参数时可之间输入待焊接的焊缝所在的部件名称,和/或待焊接的焊缝所在的车型型号进行搜索,可提高搜索的便捷性。
68.上述方案中,将不同的对应关系分别存储在两个数据库中,可避免数据量太多造成的搜索工作量增大的问题,提升数据库的响应速度。
69.(2)根据待焊接的焊缝结构选定某一样板焊缝,查看并记录样板焊缝编程数据库
中已有的样板焊缝的根层编程位置中焊枪的phi、theta、psi三个角度数据及焊接参数和摆动参数,如图4和图7所示。
70.(3)运行工具中心点至焊接机器人的相对零位,确保手动操作机器人调整焊枪姿态和位置时,动作方向是前后、左右平行方向移动。
71.(4)编制新的用于控制焊接机器人的焊枪的样板焊缝程序,在对应空间角度菜单下输入样板焊缝编程数据库中相应数据,使用“fn corr”组合键修改,然后按“goto”键,使根层焊枪角度及各类参数与之一致。
72.(5)查阅样板焊缝编程数据库,记录每一个覆盖层相对于根层的空间偏移数值,即在焊接该层焊道时所述工具中心点相对于所述根层的焊缝方向偏差、侧面偏差、高度偏差、起始点偏移、结束点偏移等,明确各覆盖层对应于根层的实际位置关系,如图5和图6所示。
73.详细的,在新建的样板焊缝程序上随机添加覆盖层程序步点,进入覆盖层补偿页面,根据查阅数据库记录的空间偏差数据,对应输入相应的焊缝方向偏差、侧面偏差、高度偏差数据,根据步点在程序中的位置选择“ins插入、corr修改、add添加”。完成相对空间关系修正,生成的覆盖层将自动修改与根层的相对空间关系,实现新建样板焊缝各层道空间姿态和位置与原始样板焊缝完全一致。
74.(6)查阅记录覆盖层每层焊道所需的的焊接参数、摆动参数以及起始偏移点、结束偏移点数值。
75.(7)回到样板焊缝程序页面,对照表格输入对应的焊接、摆动、偏移以及收弧等参数。使用“fn corr”组合键修改参数。
76.需要说明的是,上述过程中对焊接参数的修改顺序没有要求,注意完成修改后检查确认摆动参数数据是否准确,借以检查是否修改了位置数据。
77.另外,为进一步减少编程人员的工作量,新建覆盖层的焊枪角度在修改时将自动与根层保持一致,若需要变化某一层道角度需在编程位置菜单里输入对应变化的theta角度,fn corr即可。
78.上述方案中,本发明建立样板焊缝编程数据库,不同机器人设备统一调用相关数据,采用层道空间偏移修正的技术手段,克服了必须依靠实际工件或模拟工件现场示教编程和反复调试而费时费力的缺点,从根本上解决了机器人设备差异带来的样板焊缝程序不兼容、可复制性差、实际运行步点偏差大,焊接质量不一致的问题,极大简化了编程难度,解决了程序精度过分依赖编程人员个人技能的问题,实现样板焊缝程序的快速、准确编制,焊接结构、层道布局越复杂,此发明优势越明显,显著提升机器人编程效率和焊接质量。
79.本发明提供的一种焊接机器人的标准化编程系统,用于实施上述的标准化编程方法。
80.详细的,焊接机器人的标准化编程系统包括第一数据库和第二数据库;所述第一数据库中存储有焊缝尺寸数据与所述样板焊缝编号的对应关系;所述第二数据库中存储有所述样板焊缝编号与所述焊接参数的对应关系。所述第一数据库中还存储有待焊接的焊缝所在的部件名称,和/或待焊接的焊缝所在的车型型号。
81.以上所述仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专利的技术人员在不脱离本发明技术方案范围内,当可利用上述提示的技术内容作出些许更动或修饰为
等同变化的等效实施例,但凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明方案的范围内。
技术特征:
1.一种焊接机器人的标准化编程方法,其特征在于:包括以下步骤:建立样板焊缝编程数据库,所述样板焊缝编程数据库中存储有焊接程序所需的若干套焊接参数,根据所述焊接参数形成所述焊接机器人的用于焊接待焊接的焊缝的焊接程序;其中,每套焊接参数以若干层焊道所需焊接参数的形式储存,每一层焊道对应有第一焊接参数和第二焊接参数;所述第一焊接参数包括焊接机器人在焊接每层焊道时的所需参数及工具中心点空间位置数据,所述第二焊接参数包括焊接机器人在焊接除根层外的其余每层焊道时相对于根层的空间偏移参数。2.根据权利要求1所述的一种焊接机器人的标准化编程方法,其特征在于:所述第一焊接参数包括焊接功率、弧长修正、焊接速度、摆动频率、摆动宽度、摆动高度、在焊接该层焊道时所述工具中心点相对于所述焊接机器人的相对零位的第一角度、第二角度和第三角度;所述第二焊接参数包括在焊接该层焊道时所述工具中心点相对于所述根层的焊缝方向偏差、侧面偏差、高度偏差、起始点偏移、结束点偏移。3.根据权利要求2所述的一种焊接机器人的标准化编程方法,其特征在于:所述样板焊缝编程数据库中存储有若干种焊缝的焊缝尺寸数据;每套焊接参数与至少一种焊缝的焊缝尺寸数据相对应。4.根据权利要求3所述的一种焊接机器人的标准化编程方法,其特征在于:所述焊缝尺寸数据包括焊缝宽度、坡口深度、坡口角度。5.根据权利要求1
‑
4任一所述的一种焊接机器人的标准化编程方法,其特征在于:包括以下步骤:控制焊接机器人的工具中心点运行至所述相对零位;确定待焊接的焊缝的焊缝尺寸数据,获取所述样板焊缝编程数据库中与所述待焊接的焊缝的焊缝尺寸数据相对应的焊接参数;根据所述焊接参数形成所述焊接机器人的用于焊接所述待焊接的焊缝的焊接程序。6.根据权利要求5所述的一种焊接机器人的标准化编程方法,其特征在于:所述根据所述焊接参数形成所述焊接机器人的用于焊接所述待焊接的焊缝的焊接程序,包括以下步骤:a1,确定根层焊道,将所述焊接机器人的焊接程序中的根层焊道所需的焊接参数修订为与所述样板焊缝编程数据库中记录的与所述待焊接的焊缝的焊缝尺寸数据相对应的根层焊道的焊接参数相一致;a2,确定覆盖层焊道,将所述焊接机器人的焊接程序中的覆盖层焊道所需的焊接参数修订为与所述样板焊缝编程数据库中记录的与所述待焊接的焊缝的焊缝尺寸数据相对应的覆盖层焊道的焊接参数相一致。7.根据权利要求6所述的一种焊接机器人的标准化编程方法,其特征在于:步骤a2中,确定覆盖层焊道包括随机添加覆盖层的层道数。8.根据权利要求1
‑
4任一所述的一种焊接机器人的标准化编程方法,其特征在于:所述焊接参数还包括样板焊缝编号;所述样板焊缝编程数据库包括第一数据库和第二数据库;
所述第一数据库中存储有焊缝尺寸数据与所述样板焊缝编号的对应关系;所述第二数据库中存储有所述样板焊缝编号与所述焊接参数的对应关系。9.根据权利要求8所述的一种焊接机器人的标准化编程方法,其特征在于:所述第一数据库中还存储有待焊接的焊缝所在的部件名称,和/或待焊接的焊缝所在的车型型号。10.一种焊接机器人的标准化编程系统,其特征在于:用于实施如权利要求1
‑
9任一所述的标准化编程方法。
技术总结
本发明公开了一种焊接机器人的标准化编程方法及系统,包括建立存储有焊接程序所需的若干套参数的样板焊缝编程数据库,根据参数形成焊接机器人的用于焊接焊缝的焊接程序;其中,每套参数以若干层焊道所需参数的形式储存,每一层焊道对应有第一焊接参数和第二焊接参数;第一焊接参数包括焊接机器人在焊接每层焊道时的所需参数及工具中心点空间位置数据,第二焊接参数包括焊接机器人的工具中心点在焊接除根层外的其余每层焊道时相对于根层的空间偏移参数;利用样板焊缝编程数据库通过层道空间偏移修正方法,直接在任意空间对各焊接层道的空间位置与焊接姿态进行定义和修正,解决了焊接机器人的设备差异带来的样板焊缝程序不兼容、可复制性差的问题。可复制性差的问题。可复制性差的问题。
技术研发人员:刘建树 马征征 田仁勇 刘伟鑫 韩永彬
受保护的技术使用者:中车青岛四方机车车辆股份有限公司
技术研发日:2021.03.25
技术公布日:2021/6/29
转载请注明原文地址:https://doc.8miu.com/read-12854.html