版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
工业机器人控制器:StaubliCS8C:工业机器人编程语言教程1工业机器人控制器:StaubliCS8C:工业机器人编程语言1.1简介1.1.1StaubliCS8C控制器概述StaubliCS8C控制器是Staubli集团为工业机器人设计的高性能控制系统。它集成了先进的运动控制算法,能够精确地控制机器人的六个轴,实现复杂和精确的运动轨迹。CS8C控制器支持多种通信协议,如EtherCAT、ProfiNet和DeviceNet,使其能够无缝集成到现代工业自动化环境中。1.1.2Staubli机器人编程语言TXL介绍TXL是Staubli机器人控制器的专用编程语言,它为用户提供了一种直观且强大的方式来编程和控制Staubli机器人。TXL支持模块化编程,允许用户创建可重用的代码片段,简化了编程过程并提高了效率。此外,TXL还提供了丰富的函数库,涵盖了从基本运动控制到高级视觉处理的各种功能。1.1.3TXL编程语言的基本结构TXL编程语言的基本结构包括程序、函数、变量和控制结构。程序由一系列指令组成,这些指令可以是运动命令、逻辑操作或数据处理。函数用于封装特定功能,可以接受参数并返回结果,支持代码的模块化和重用。变量用于存储数据,可以是数值、字符串或更复杂的数据类型。控制结构如循环和条件语句,用于实现逻辑流程控制。1.1.3.1示例:TXL中的基本运动控制//TXL示例:机器人运动到指定位置
PROCEDUREMoveToPosition
VARpos:VECTOR;//定义位置变量
pos:=[100,200,300,0,0,0];//设置位置坐标
MoveL(pos);//执行线性运动
ENDPROCEDURE在这个示例中,我们定义了一个名为MoveToPosition的过程,它使用VECTOR类型的变量pos来存储机器人的目标位置。通过MoveL命令,机器人将执行线性运动到达指定位置。1.1.4工业机器人的历史背景工业机器人的发展始于20世纪50年代,随着计算机技术的进步和自动化需求的增加,工业机器人在制造业中的应用日益广泛。从最初的简单重复性任务执行,到如今的复杂装配、焊接和喷涂,工业机器人已经成为现代工厂不可或缺的一部分。Staubli作为工业机器人领域的先驱,其产品线涵盖了从轻型到重型的各种机器人,满足不同行业的需求。1.1.5StaubliCS8C在工业自动化中的角色StaubliCS8C控制器在工业自动化中扮演着核心角色。它不仅控制机器人的运动,还管理与外部设备的通信,如传感器、执行器和视觉系统。CS8C控制器的灵活性和强大的处理能力使其能够适应各种工业环境,从汽车制造到食品加工,都能看到它的身影。通过CS8C控制器,用户可以轻松地集成机器人到生产线中,实现自动化流程的优化和升级。以上内容详细介绍了StaubliCS8C控制器和TXL编程语言的基本原理和应用,通过具体示例展示了TXL中的运动控制编程,同时也概述了工业机器人的历史背景以及StaubliCS8C在工业自动化中的重要角色。2工业机器人编程基础2.1TXL编程语言的语法基础TXL是Stäubli机器人控制器CS8C中使用的编程语言,它为用户提供了直观且强大的工具来控制和编程工业机器人。TXL的语法设计简洁,易于学习,同时提供了丰富的功能来满足复杂的工业自动化需求。2.1.1编写第一个TXL程序//TXL程序示例:机器人移动到指定位置
PROGRAMMoveToPosition
DECLARE
//定义变量
PositiontargetPosition=[100,200,300,0,0,0];
BEGIN
//移动到目标位置
MoveAbsJtargetPosition;
END;在这个示例中,我们定义了一个程序MoveToPosition,它首先声明了一个变量targetPosition,用于存储机器人的目标位置。然后,程序使用MoveAbsJ命令,这是一种关节运动指令,使机器人移动到之前定义的位置。2.1.2程序调试和错误处理在TXL编程中,调试和错误处理是确保程序正确运行的关键步骤。TXL提供了多种调试工具,包括断点设置、单步执行和变量监视。//TXL程序示例:包含错误处理的程序
PROGRAMSafeMove
DECLARE
PositiontargetPosition=[100,200,300,0,0,0];
INTerror=0;
BEGIN
TRY
MoveAbsJtargetPosition;
CATCH
//捕获并处理错误
error=GetError();
WRITE("发生错误:",error);
ENDTRY;
END;此示例展示了如何在TXL中使用TRY和CATCH语句来处理程序执行过程中可能发生的错误。如果MoveAbsJ命令执行失败,CATCH块将捕获错误,并通过GetError函数获取错误代码,最后使用WRITE命令输出错误信息。2.2变量和数据类型TXL支持多种数据类型,包括整数(INT)、实数(REAL)、字符串(STRING)和位置(Position)等。变量的声明和使用是TXL编程中的基本概念。2.2.1变量声明和使用//TXL程序示例:变量声明和使用
PROGRAMVariableExample
DECLARE
INTcounter=0;
REALtemperature=25.5;
STRINGmessage="Hello,TXL!";
PositionrobotPosition=[0,0,0,0,0,0];
BEGIN
//使用变量
counter=counter+1;
WRITE(message);
WRITE("当前温度:",temperature);
WRITE("机器人当前位置:",robotPosition);
END;在这个示例中,我们声明了四种不同类型的变量,并在程序中使用它们。counter是一个整数变量,用于计数;temperature是一个实数变量,存储温度值;message是一个字符串变量,用于输出问候信息;robotPosition是一个位置变量,存储机器人的当前位置。2.3控制结构:循环和条件语句TXL提供了循环和条件语句,使程序能够根据不同的条件执行不同的操作,或者重复执行某些操作。2.3.1循环结构//TXL程序示例:使用循环结构
PROGRAMLoopExample
DECLARE
INTi=0;
BEGIN
//使用FOR循环
FORi=0TO5DO
WRITE("循环次数:",i);
ENDFOR;
END;此示例展示了如何使用FOR循环在TXL中重复执行一系列操作。循环将从i=0开始,每次迭代i增加1,直到i等于5为止。2.3.2条件语句//TXL程序示例:使用条件语句
PROGRAMConditionalExample
DECLARE
INTsensorValue=10;
BEGIN
//使用IF条件语句
IFsensorValue>5THEN
WRITE("传感器值大于5");
ELSE
WRITE("传感器值小于等于5");
ENDIF;
END;在这个示例中,我们使用IF条件语句来检查sensorValue是否大于5。如果是,程序将输出“传感器值大于5”;否则,输出“传感器值小于等于5”。通过以上示例,我们可以看到TXL编程语言如何通过简洁的语法和丰富的功能,为工业机器人编程提供了一个强大且灵活的平台。掌握TXL的基本语法和控制结构,是编写高效、可靠的机器人程序的基础。3运动控制编程3.1运动指令详解在工业机器人编程中,运动指令是控制机器人执行特定动作的关键。StaubliCS8C控制器支持多种运动指令,每种指令都有其特定的用途和语法。下面,我们将详细介绍几种常用的运动指令:3.1.1MoveL(线性运动)MoveL指令用于控制机器人沿直线路径移动到指定的目标点。此指令确保机器人在移动过程中保持工具姿态的恒定,适用于需要精确路径控制的应用场景。3.1.1.1代码示例#定义目标点
target_point=[100,200,300,0,0,0]
#执行线性运动
MoveL(target_point,v100,z10,tool0)在这个例子中,target_point是机器人需要到达的目标位置,v100和z10分别表示速度和加速度的设置,tool0是机器人当前使用的工具坐标系。3.1.2MoveJ(关节运动)MoveJ指令用于控制机器人通过关节运动到达目标点。这种运动方式不保证路径的直线性,但可以快速改变机器人的位置和姿态,适用于需要快速移动的应用场景。3.1.2.1代码示例#定义目标点的关节角度
joint_angles=[0,45,0,0,0,0]
#执行关节运动
MoveJ(joint_angles,v100,z10)在这个例子中,joint_angles是机器人关节需要达到的角度,v100和z10分别表示速度和加速度的设置。3.1.3MoveC(圆弧运动)MoveC指令用于控制机器人沿圆弧路径移动。机器人将通过一个中间点(圆弧的起点)和一个目标点(圆弧的终点)来完成圆弧运动。3.1.3.1代码示例#定义圆弧的中间点和目标点
mid_point=[100,200,300,0,0,0]
target_point=[200,300,400,0,0,0]
#执行圆弧运动
MoveC(mid_point,target_point,v100,z10,tool0)在这个例子中,mid_point和target_point分别是圆弧的中间点和目标点,v100和z10分别表示速度和加速度的设置,tool0是机器人当前使用的工具坐标系。3.2路径规划和点位控制路径规划和点位控制是工业机器人编程中的重要组成部分,它们确保机器人能够准确、高效地执行任务。在StaubliCS8C控制器中,路径规划通常涉及多个点的运动指令组合,而点位控制则确保机器人在每个点上都能精确停止。3.2.1代码示例#定义一系列点位
points=[
[100,200,300,0,0,0],
[200,300,400,0,0,0],
[300,400,500,0,0,0]
]
#通过点位控制执行路径规划
forpointinpoints:
MoveL(point,v100,z10,tool0)在这个例子中,我们定义了一个包含三个点的列表points,然后使用for循环和MoveL指令来控制机器人依次访问这些点,实现路径规划。3.3速度和加速度控制速度和加速度控制对于确保机器人运动的平滑性和安全性至关重要。在StaubliCS8C控制器中,可以通过设置运动指令中的速度和加速度参数来调整机器人的运动特性。3.3.1代码示例#定义目标点
target_point=[100,200,300,0,0,0]
#设置不同的速度和加速度
MoveL(target_point,v50,z5,tool0)#较慢的速度和加速度
MoveL(target_point,v200,z20,tool0)#较快的速度和加速度在这个例子中,我们展示了如何通过调整v和z参数来控制机器人运动的速度和加速度。v50和z5表示较慢的运动,而v200和z20则表示较快的运动。3.4运动控制中的坐标系理解在工业机器人编程中,坐标系的选择直接影响到运动指令的执行效果。StaubliCS8C控制器支持多种坐标系,包括世界坐标系、基坐标系、工具坐标系和工件坐标系。3.4.1世界坐标系世界坐标系是机器人编程中的全局坐标系,通常用于定义机器人的绝对位置。3.4.2基坐标系基坐标系是机器人底座的坐标系,用于描述机器人相对于其底座的位置和姿态。3.4.3工具坐标系工具坐标系是与机器人末端执行器相关的坐标系,用于描述工具相对于机器人末端的位置和姿态。3.4.4工件坐标系工件坐标系是与工件相关的坐标系,用于描述工件相对于机器人或工作环境的位置和姿态。3.5高级运动控制策略在复杂的工业应用中,可能需要使用更高级的运动控制策略来优化机器人的性能。这包括但不限于:动态路径规划:根据实时环境变化调整机器人路径。碰撞检测和避免:确保机器人在运动过程中不会与周围环境发生碰撞。多机器人协同:在多机器人环境中,协调各机器人的运动,避免相互干扰。这些策略通常需要结合传感器数据和高级算法来实现,例如使用传感器数据进行实时路径调整,或使用碰撞检测算法来预测和避免潜在的碰撞。3.5.1示例:动态路径规划假设我们有一个传感器,可以实时检测工作区域内的障碍物位置。我们可以使用这个信息来动态调整机器人的路径,避免碰撞。#定义传感器数据处理函数
defprocess_sensor_data(sensor_data):
#假设传感器数据包含障碍物位置
obstacle_position=sensor_data['obstacle']
#根据障碍物位置调整目标点
adjusted_target_point=[100,200,300+obstacle_position[2],0,0,0]
returnadjusted_target_point
#定义目标点
target_point=[100,200,300,0,0,0]
#获取传感器数据
sensor_data=get_sensor_data()
#调整目标点
adjusted_target_point=process_sensor_data(sensor_data)
#执行调整后的线性运动
MoveL(adjusted_target_point,v100,z10,tool0)在这个例子中,我们首先定义了一个处理传感器数据的函数process_sensor_data,该函数根据障碍物的位置调整目标点的高度。然后,我们获取传感器数据,并使用这个数据来调整目标点。最后,我们执行调整后的线性运动指令。通过上述示例和讲解,我们不仅了解了StaubliCS8C控制器中运动控制编程的基本指令,还深入探讨了路径规划、速度控制以及高级运动控制策略的实现方法。这将有助于在实际工业应用中更有效地利用机器人控制器的功能。4高级编程技术4.1函数和子程序的创建与调用在工业机器人编程中,函数和子程序的使用可以极大地提高代码的可读性和可维护性。它们允许程序员将复杂的任务分解为更小、更易于管理的部分。下面,我们将通过一个示例来展示如何在StaubliCS8C控制器上创建和调用函数。4.1.1示例:创建一个函数来移动机器人到特定位置###函数定义####代码示例```txl
;定义函数MoveToPosition
;参数:x,y,z-机器人的目标位置坐标
MoveToPosition(x,y,z)
{
;机器人移动到指定位置
MoveAbsJ[x,y,z,0,0,0],v1000,z50,tool0;
}
```markdown
####解释在上述代码中,我们定义了一个名为MoveToPosition的函数,它接受三个参数:x、y和z,分别代表机器人目标位置的坐标。函数内部,我们使用MoveAbsJ命令来移动机器人到指定的绝对位置,速度为v1000,精度为z50,工具坐标系为tool0。4.1.2示例:调用函数####代码示例```txl
;调用MoveToPosition函数
MoveToPosition(100,200,300);
```markdown
####解释调用MoveToPosition函数时,我们只需提供目标位置的坐标值。在这个例子中,我们调用函数,使机器人移动到坐标为(100,200,300)的位置。4.2模块化编程模块化编程是将程序分解为独立的、可重用的模块或组件的实践。在StaubliCS8C控制器上,这可以通过创建和导入程序模块来实现。4.2.1示例:创建模块####代码示例```txl
;创建模块MyModule
MODULEMyModule
{
;定义函数
MoveToPosition(x,y,z)
{
MoveAbsJ[x,y,z,0,0,0],v1000,z50,tool0;
}
}
```markdown
####解释模块MyModule包含了我们之前定义的MoveToPosition函数。通过将函数封装在模块中,我们可以更容易地在不同的程序中重用这段代码。4.2.2示例:导入模块####代码示例```txl
;导入模块
IMPORTMyModule;
;使用模块中的函数
MoveToPosition(100,200,300);
```markdown
####解释在主程序中,我们使用IMPORT语句来导入MyModule模块。一旦导入,我们就可以像在模块内部一样使用MoveToPosition函数。4.3通信接口和网络编程工业机器人控制器通常需要与外部设备通信,如PLC、传感器或计算机。StaubliCS8C提供了多种通信接口,包括以太网、ProfiNet和DeviceNet等。4.3.1示例:通过以太网发送数据####代码示例```txl
;定义变量
VAR[1..10]intDataToSend;
;通过以太网发送数据
SendDataViaEthernet()
{
;将数据打包为字符串
strDataString="Data:"+DataToSend[1]+","+DataToSend[2]+","+DataToSend[3];
;发送数据
SocketSend("192.168.1.100",1234,DataString);
}
```markdown
####解释在这个示例中,我们定义了一个函数SendDataViaEthernet,它将数组DataToSend中的数据转换为字符串格式,并通过以太网发送到IP地址为192.168.1.100、端口为1234的设备上。4.4利用TXL进行复杂任务编程TXL是Staubli机器人控制器的编程语言,它提供了丰富的功能来处理复杂的任务。例如,可以使用循环和条件语句来控制机器人的动作序列。4.4.1示例:使用循环来重复任务####代码示例```txl
;定义循环次数
VARintLoopCount=5;
;使用循环重复任务
RepeatTask()
{
FORi=1TOLoopCountDO
{
;执行任务
MoveToPosition(100,200,300);
WaitTime(1.0);
ENDFOR;
}
```markdown
####解释RepeatTask函数使用FOR循环来重复调用MoveToPosition函数和等待1秒,总共执行LoopCount次。这在需要机器人重复执行相同动作的场景中非常有用。4.5与外部设备的交互机器人控制器需要能够与外部设备交互,以实现自动化生产线的协调工作。这包括读取传感器数据、控制外部设备或响应来自其他系统的信号。4.5.1示例:读取传感器数据####代码示例```txl
;定义传感器读取函数
ReadSensorData()
{
;读取传感器数据
intSensorData=ReadDI(1);
;根据传感器数据执行动作
IFSensorData=1THEN
{
MoveToPosition(100,200,300);
}
ELSE
{
MoveToPosition(400,500,600);
ENDIF;
}
```markdown
####解释ReadSensorData函数读取数字输入DI1的值。如果传感器检测到信号(值为1),机器人将移动到坐标(100,200,300)的位置;否则,它将移动到坐标(400,500,600)的位置。这种基于传感器数据的条件控制是自动化生产中常见的需求。通过上述示例,我们可以看到在StaubliCS8C控制器上,如何使用高级编程技术如函数、模块化编程、网络通信以及与外部设备的交互来实现更复杂和灵活的机器人控制。这些技术的应用可以显著提高编程效率和程序的可维护性。5故障排除与维护5.1常见编程错误及其解决方案在工业机器人编程中,StaubliCS8C控制器使用Val3Dtin语言。常见的编程错误包括语法错误、逻辑错误和运行时错误。下面通过具体例子来说明如何识别和解决这些错误。5.1.1语法错误5.1.1.1示例代码//Val3Dtin语法错误示例
PROCEDUREExample
VARi:INTEGER;
BEGIN
i:=10;
IFi=10THEN
PRINT"iis10";
ELSE
PRINT"iisnot10";
ENDIF
END5.1.1.2解析上述代码中,PROCEDURE和END之间的语句块缺少了ENDPROCEDURE关键字,这是Val3Dtin语法的一部分,用于结束一个过程定义。5.1.1.3解决方案//Val3Dtin语法正确示例
PROCEDUREExample
VARi:INTEGER;
BEGIN
i:=10;
IFi=10THEN
PRINT"iis10";
ELSE
PRINT"iisnot10";
ENDIF
ENDPROCEDURE5.1.2逻辑错误5.1.2.1示例代码//Val3Dtin逻辑错误示例
PROCEDUREExample
VARi:INTEGER;
BEGIN
i:=10;
IFi>10THEN
PRINT"iisgreaterthan10";
ENDIF
ENDPROCEDURE5.1.2.2解析这段代码的逻辑错误在于,i被初始化为10,但在IF语句中检查i>10,这将永远不会为真,因此PRINT语句永远不会执行。5.1.2.3解决方案//Val3Dtin逻辑正确示例
PROCEDUREExample
VARi:INTEGER;
BEGIN
i:=10;
IFi>=10THEN
PRINT"iisgreaterthanorequalto10";
ENDIF
ENDPROCEDURE5.1.3运行时错误5.1.3.1示例代码//Val3Dtin运行时错误示例
PROCEDUREExample
VARi:INTEGER;
BEGIN
i:=10/0;
PRINT"iisnowcalculated";
ENDPROCEDURE5.1.3.2解析运行时错误通常在程序执行时发生,如除以零错误。在上述代码中,尝试将10除以0,这在数学上是未定义的,因此会导致运行时错误。5.1.3.3解决方案//Val3Dtin运行时错误解决方案示例
PROCEDUREExample
VARi:INTEGER;
BEGIN
IF0<>0THEN
i:=10/0;
ELSE
PRINT"Error:Divisionbyzero";
ENDIF
PRINT"iisnowcalculated";
ENDPROCEDURE虽然这个解决方案示例中,IF0<>0的条件永远不会为真,这仅用于说明如何避免运行时错误。在实际应用中,应检查除数是否为零。5.2系统维护和软件更新5.2.1预防性维护策略预防性维护是确保StaubliCS8C控制器长期稳定运行的关键。这包括定期检查硬件连接、更新软件、清理系统以及执行机器人校准。例如,定期更新控制器软件可以修复已知的错误和漏洞,提高系统性能。5.2.2紧急情况下的系统恢复在紧急情况下,如系统崩溃或软件故障,快速恢复系统至关重要。StaubliCS8C控制器提供了系统备份和恢复功能。通过创建定期的系统备份,可以在紧急情况下快速恢复到最近的稳定状态。5.2.2.1示例操作创建系统备份:进入控制器的系统设置菜单。选择“备份与恢复”选项。点击“创建备份”,并选择存储位置。系统恢复:进入控制器的系统设置菜单。选择“备份与恢复”选项。点击“恢复系统”,并选择之前创建的备份文件。5.3故障诊断和修复5.3.1故障诊断StaubliCS8C控制器内置了故障诊断工具,可以帮助识别和定位问题。例如,控制器的诊断界面可以显示当前的系统状态、错误代码和建议的解决方案。5.3.2故障修复一旦诊断出问题,应根据错误代码和控制器手册提供的信息进行修复。例如,如果诊断工具显示电机过热错误,可能需要检查冷却系统是否正常工作,或者调整工作负载以避免过热。5.3.2.1示例操作诊断电机过热错误:进入控制器的诊断界面。查看错误列表,找到电机过热错误。记录错误代码和详细信息。修复电机过热错误:检查冷却风扇是否运行正常。清理冷却系统,确保没有灰尘或杂物堵塞。调整机器人工作负载,避免长时间高负荷运行。通过上述示例,可以看出在工业机器人控制器StaubliCS8C的编程、维护和故障排除中,遵循正确的语法、逻辑和运行时错误处理策略,以及定期的预防性维护和有效的故障诊断与修复流程,是保持系统稳定性和提高生产效率的关键。6案例研究与实践6.1装配线自动化案例在装配线自动化中,StaubliCS8C控制器的编程语言TXL起着关键作用。下面,我们通过一个具体的案例来展示如何使用TXL实现装配线上的自动化任务。6.1.1实际项目中的TXL编程技巧6.1.1.1案例描述假设我们有一条装配线,需要机器人完成零件的抓取、定位和装配任务。零件放置在传送带上,机器人需要根据视觉系统的反馈,调整抓取位置,然后将零件准确地放置到装配位置。6.1.1.2TXL代码示例//定义视觉系统反馈的变量
VARpos_feedback:VECTOR;
//读取视觉系统反馈的位置信息
READvision_feedback,pos_feedback;
//定义抓取和放置位置
VARpick_pos:VECTOR:=[100,0,100];
VARplace_pos:VECTOR:=[200,0,100];
//根据视觉反馈调整抓取位置
pick_pos[1]:=pick_pos[1]+pos_feedback[1];
pick_pos[2]:=pick_pos[2]+pos_feedback[2];
//移动到调整后的抓取位置
MOVEpick_pos;
//执行抓取动作
GRIP;
//移动到放置位置
MOVEplace_pos;
//执行放置动作
PLACE;6.1.1.3代码解释VARpos_feedback:VECTOR;定义了一个向量变量pos_feedback,用于存储视觉系统反馈的位置信息。READvision_feedback,pos_feedback;从视觉系统读取位置信息并存储到pos_feedback。VARpick_pos:VECTOR:=[100,0,100];和VARplace_pos:VECTOR:=[200,0,100];定义了抓取和放置位置的初始坐标。pick_pos[1]:=pick_pos[1]+pos_feedback[1];和pick_pos[2]:=pick_pos[2]+pos_feedback[2];根据视觉反馈调整抓取位置的X和Y坐标。MOVEpick_pos;和MOVEplace_pos;控制机器人移动到抓取和放置位置。GRIP;和PLACE;分别执行抓取和放置动作。6.2物料搬运机器人编程实例物料搬运是工业自动化中的常见任务,使用StaubliCS8C控制器和TXL语言可以高效地完成这一工作。6.2.1实际项目中的TXL编程技巧6.2.1.1案例描述物料从生产线的一端需要被搬运到另一端,机器人需要识别物料的位置,抓取并搬运到指定位置。6.2.1.2TXL代码示例//定义物料位置和目标位置
VARmaterial_pos:VECTOR:=[300,0,100];
VARtarget_pos:VECTOR:=[500,0,100];
//移动到物料位置
MOVEmaterial_pos;
//执行抓取动作
GRIP;
//移动到目标位置
MOVEtarget_pos;
//执行放置动作
PLACE;6.2.1.3代码解释VARmaterial_pos:VECTOR:=[300,0,100];定义了物料的初始位置。VARtarget_pos:VECTOR:=[500,0,100];定义了目标放置位置。MOVEmaterial_pos;控制机器人移动到物料位置。GRIP;执行抓取动作。MOVEtarget_pos;控制机器人移动到目标位置。PLACE;执行放置动作。6.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论