库卡机器人编程工具OrangeEdit 2.0.14.95安装与应用指南
OrangeEdit的设计遵循直观、易用的原则,其用户界面布局和结构旨在提高编辑效率并减少操作学习曲线。该编辑器采用了模块化的设计,用户可以根据个人喜好和工作习惯调整界面元素。在OrangeEdit中,仿真视图提供了一个直观的机器人模型展示。仿真视图界面布局清晰,用户可以自定义工具栏和快捷键,以提高工作效率。仿真视图的工具栏一般包括启动仿真、暂停/继续仿真、重置仿真等常用功能。KUKA机器人语言(
简介:库卡(KUKA)机器人编程软件OrangeEdit 2.0.14.95版本是一款为KUKA机器人离线编程设计的直观、高效的编程环境。本指南详细介绍安装过程、主要功能和操作界面,以及如何使用OrangeEdit进行机器人程序的编写、编辑、测试和仿真。OrangeEdit支持标准的KUKA机器人语言KRL,拥有强大的离线编程能力,减少生产现场调试时间,并支持程序的导入导出,便于团队协作。指南还介绍如何通过官方教程和示例程序学习基本编程语法和特定功能,以提升编程技能。 
1. OrangeEdit 2.0.14.95版的安装过程
1.1 安装前的准备工作
为了确保安装过程的顺利进行,首先需要进行一些准备工作。在这个阶段,用户需要确认自己的操作系统是否与OrangeEdit 2.0.14.95版本兼容,并了解如何从官方网站或其他可信的下载源获取软件包。
1.1.1 系统兼容性检查
检查你的计算机操作系统是否满足OrangeEdit的最小要求。通常这些信息可以在官方文档或下载页面上找到。确认你的操作系统版本后,就可进入下一步——软件下载。
1.1.2 软件下载路径与获取方式
通过访问OrangeEdit的官方网站或授权的下载站点,可以找到最新版软件的下载链接。为确保安全,推荐使用HTTPS协议进行下载。完成下载后,需要记下软件的保存路径,以便下一步的安装。
1.2 安装步骤详解
接下来的步骤将根据不同的操作系统环境进行详细说明。无论是Windows用户还是Linux和macOS用户,安装过程都设计得尽量简单,只需按照提示操作即可。
1.2.1 Windows平台安装流程
在Windows平台上,双击下载的安装程序开始安装。通常,安装向导会引导用户通过简单的点击“下一步”来完成安装。在这个过程中,请确保取消勾选任何捆绑安装的第三方软件。
1.2.2 Linux和macOS平台安装流程
对于Linux和macOS用户,可能会涉及到使用命令行界面进行安装,或者下载特定格式的安装包(如.tar.gz)。确保下载安装包后按照官方文档提供的指令进行解压和安装。
1.3 安装后的初步配置
安装完成后,进行一些基本的配置是推荐的步骤。这可以包括设置界面语言以匹配用户偏好,以及配置快捷键和其他用户设置以优化个人使用体验。
1.3.1 界面语言设置
大多数现代应用程序都支持多语言界面。根据个人需求,用户可以在设置中选择合适的语言,这样界面元素就会以指定的语言显示。
1.3.2 快捷键与用户设置
配置快捷键可以帮助提高工作效率。同时,用户也可以根据自己的喜好调整其他设置,比如主题颜色、字体大小等。
以上步骤是安装OrangeEdit 2.0.14.95版的基础指南,后续章节将继续深入探讨如何充分利用该编辑器的各项功能。
2. OrangeEdit的主要功能和操作界面介绍
2.1 界面布局与结构
OrangeEdit的设计遵循直观、易用的原则,其用户界面布局和结构旨在提高编辑效率并减少操作学习曲线。该编辑器采用了模块化的设计,用户可以根据个人喜好和工作习惯调整界面元素。
2.1.1 主窗口和菜单栏的组成
主窗口是编辑代码的主要区域,支持无限滚动和多种视图模式,为用户提供了灵活的代码浏览体验。菜单栏位于主窗口的顶部,分为文件、编辑、查看、代码、工具、窗口和帮助等几个主要部分。每个部分都包含了对应功能的下拉菜单,允许用户访问文件操作、编辑工具、视图设置、代码格式化、宏操作、窗口管理以及帮助文档等。
在介绍菜单栏的同时,用户还可以通过以下代码块来查看如何进行基本的文件操作,如新建、打开、保存和关闭文件:
# 文件操作示例代码块
import os
# 新建一个文件
file_path = "example.txt"
with open(file_path, 'w') as file:
file.write("Hello, World!")
# 打开一个已存在的文件
with open(file_path, 'r') as file:
content = file.read()
print(content)
# 保存文件内容到已存在的文件
new_content = "Updated content"
with open(file_path, 'w') as file:
file.write(new_content)
# 关闭文件
os.close(file)
在执行以上代码块后,文件内容将被写入、读取和更新。需要注意的是,在实际应用中,不需要手动关闭文件,因为Python的文件操作上下文管理器会在代码块执行完毕后自动关闭文件。
2.1.2 工具栏和状态栏的定制
工具栏提供了快捷方式来访问最常用的命令,用户可以自定义工具栏按钮以快速访问特定功能。状态栏则显示了当前文件的信息,如编码格式、光标位置以及文档状态等。用户可以定制状态栏显示的内容,例如,显示当前选中的文本大小、行号或者列号等。
下表展示了如何在OrangeEdit中自定义工具栏和状态栏的方法:
| 功能 | 操作步骤 |
|---|---|
| 添加新的工具栏按钮 | 1. 点击“查看”菜单下的“自定义工具栏”; 2. 在弹出的对话框中选择要添加的命令; 3. 点击“添加”按钮,然后确定。 |
| 修改工具栏按钮顺序 | 1. 点击“查看”菜单下的“自定义工具栏”; 2. 选中要调整顺序的按钮; 3. 使用上下箭头移动按钮位置; 4. 确定保存更改。 |
| 显示或隐藏状态栏信息 | 1. 点击“窗口”菜单下的“状态栏”; 2. 根据需要勾选或取消勾选各状态信息选项。 |
2.2 核心功能操作指南
OrangeEdit的主要核心功能包括代码编辑、高亮显示、代码折叠导航和自动完成提示等,旨在提升编码效率和准确性。
2.2.1 代码编辑与高亮显示
代码编辑功能允许用户通过键盘快捷键和鼠标操作来编辑文本。在编写代码时,OrangeEdit会根据所选编程语言的语法规则,高亮显示关键字、字符串、注释等。这种高亮显示帮助开发者区分代码的不同部分,使代码结构更易于理解。
代码高亮显示不仅仅是视觉上的提升,它还有助于减少语法错误。以下展示了如何在OrangeEdit中设置代码高亮显示语言:
1. 打开OrangeEdit;
2. 点击顶部菜单栏的“工具”菜单;
3. 选择“首选项”;
4. 在弹出的对话框中选择“编辑器”标签;
5. 在语言选项中选择需要的编程语言;
6. 点击确定保存设置。
2.2.2 代码折叠与导航
代码折叠功能允许用户折叠或展开代码块,这样用户可以隐藏复杂的函数定义或类声明,以便专注于当前工作的代码区域。代码折叠有助于简化视图,提高编码集中度。
导航功能包括快速跳转到文件的特定行、查找和替换文本、书签设置等。这些功能为用户在大量代码中快速定位提供了便利。下面展示了一个简单的快捷键操作,用于快速跳转到指定行:
1. 打开OrangeEdit;
2. 在代码编辑区域,按下`Ctrl` + `G`(Windows/Linux)或`Command` + `L`(macOS);
3. 在弹出的对话框中输入目标行号;
4. 按`Enter`键定位到该行。
2.2.3 代码自动完成与提示
代码自动完成功能通过分析上下文环境,智能地提供代码建议和补全。当用户开始输入时,OrangeEdit会显示一个下拉列表,其中包含可能的代码补全选项。此外,代码提示功能提供了关于当前变量、函数或方法的详细信息,帮助开发者更好地理解代码。
代码自动完成和提示可以节省大量编写代码的时间,并减少由于手动编写而造成的拼写错误。下面展示了如何在OrangeEdit中使用代码自动完成功能:
1. 打开OrangeEdit并选择一个编程语言文件;
2. 开始编写代码,并在遇到需要自动补全的地方按`Ctrl` + `Space`(Windows/Linux)或`Command` + `Space`(macOS);
3. 查看下拉列表中的自动补全建议;
4. 使用键盘上下键选择需要的代码片段;
5. 按`Enter`键或使用鼠标点击补全代码。
2.3 高级功能探索
除了核心功能之外,OrangeEdit还包含了一些高级功能,如宏录制与运行、多窗口编辑与管理等,这些功能提升了编辑器的灵活性和功能性。
2.3.1 宏录制与运行
宏录制功能允许用户记录一系列操作,然后将这些操作保存为宏,并可以随时运行以重复执行相同的操作序列。这对于经常需要执行重复任务的用户来说,可以显著提高工作效率。
宏的创建和使用流程如下:
1. 打开OrangeEdit;
2. 点击“工具”菜单,然后选择“宏” -> “开始录制”;
3. 执行需要录制的操作;
4. 完成后,点击“工具”菜单,选择“宏” -> “停止录制”;
5. 在弹出的对话框中为宏命名,并保存;
6. 以后要运行该宏时,选择“工具” -> “宏” -> “运行宏”,然后选择相应的宏名称运行。
2.3.2 多窗口编辑与管理
多窗口编辑功能允许用户在同一个编辑器实例中打开多个文件进行编辑。用户可以自由地在各个窗口间切换,以同时处理多个文件。此外,OrangeEdit还支持垂直和水平拆分窗口,使得比对和同步编辑变得更加方便。
使用多窗口编辑时,可以通过以下方法来管理窗口:
1. 打开OrangeEdit,选择文件进行编辑;
2. 点击窗口菜单,选择“新建窗口”来打开相同的文件;
3. 使用窗口菜单中的“水平拆分”或“垂直拆分”选项来拆分当前窗口;
4. 使用鼠标拖拽或点击窗口标题栏上的按钮来调整各个窗口的大小;
5. 点击窗口菜单中的“窗口列表”可以查看所有打开的窗口,并进行快速切换。
通过以上内容,我们展示了OrangeEdit在主要功能和操作界面方面的介绍。在下一章中,我们将深入探讨如何使用OrangeEdit进行离线编程和仿真视图的操作,让读者能够进一步掌握这款编辑器的高级应用。
3. 离线编程与仿真视图的使用
在第三章,我们将深入探讨如何利用OrangeEdit进行离线编程以及如何操作仿真视图。对于许多工程技术人员来说,离线编程是提高开发效率和减少机器人停机时间的关键。仿真视图提供了一个图形化的界面,允许开发者在实际机器人操作之前测试和优化他们的程序。本章将从离线编程的基本步骤和技巧开始,然后详细介绍仿真视图的配置和使用方法。
3.1 离线编程的步骤与技巧
3.1.1 编写可执行的脚本
在进行离线编程时,首要步骤是熟悉你的目标机器人语言和编程环境。以KUKA机器人使用的KRL(KUKA Robot Language)为例,你需要熟悉其语法结构、关键字、变量和表达式的使用。OrangeEdit提供了代码高亮显示、代码折叠和自动完成等功能,帮助用户编写清晰且可维护的代码。
接下来是编写可执行脚本的实际步骤:
- 打开OrangeEdit,创建一个新文件或者打开一个现有的项目。
- 输入脚本代码,并使用OrangeEdit提供的代码辅助功能,如自动补全和语法高亮。
- 保存脚本,并确保脚本的扩展名符合所支持的机器人语言。
&ACCESS RVP
&REL 1
&PARAM TEMPLATE = C:\KRC\Roboter\Template\vorgabe
&PARAM EDITMASK = *
DEF myScript()
; Your KRL code goes here
END
在上述代码块中,我们创建了一个名为 myScript 的KRL脚本函数。使用OrangeEdit中的代码格式化功能,可以帮助你保持代码的一致性和可读性。
3.1.2 脚本调试与错误处理
在脚本编写完毕后,进行调试是至关重要的一步。OrangeEdit提供了一系列的调试工具,如断点、单步执行和变量监控功能,它们可以帮助开发者快速找到并修正代码中的错误。
调试过程通常包括以下步骤:
- 设置断点:在代码的某个位置单击,设置或移除断点。
- 启动调试模式:运行代码,并在到达断点时暂停。
- 单步执行:逐行执行代码,观察变量的值和程序流程。
- 查看和修改变量:在调试过程中,可以查看和修改变量的值,以便于测试不同的情况。
在OrangeEdit中,你可以使用“调试”菜单或工具栏按钮来启动调试模式。调试过程中的日志和错误信息会被记录在“输出”面板中,便于开发者分析问题所在。
3.2 仿真视图的配置与使用
3.2.1 视图界面布局介绍
在OrangeEdit中,仿真视图提供了一个直观的机器人模型展示。仿真视图界面布局清晰,用户可以自定义工具栏和快捷键,以提高工作效率。仿真视图的工具栏一般包括启动仿真、暂停/继续仿真、重置仿真等常用功能。
3.2.2 虚拟机器人模型的导入
在开始仿真之前,需要将机器人模型导入到仿真环境中。OrangeEdit支持多种模型格式,如URDF、SDF等,并能导入第三方3D模型。导入模型的步骤如下:
- 在仿真视图中,选择“文件”->“导入模型”。
- 导航至模型文件所在位置,选择对应的文件进行导入。
- 调整模型的位置和方向,以适应仿真环境。
3.2.3 仿真执行与动画观察
导入模型后,用户可以加载之前编写的脚本,并执行仿真。在仿真执行过程中,动画观察功能允许用户以动画形式查看机器人的动作。
仿真执行的基本步骤是:
- 加载脚本到仿真环境。
- 设置初始条件和必要的环境参数。
- 使用工具栏中的“开始仿真”按钮启动仿真过程。
- 观察动画,并使用“暂停/继续仿真”功能检查特定时刻的机器人状态。
- 如果发现错误,可以使用“重置仿真”返回初始状态,对脚本进行修正。
graph TB
A[开始仿真] --> B[加载脚本]
B --> C[设置初始条件]
C --> D[启动仿真]
D --> E[观察动画]
E -->|发现问题| F[暂停/继续仿真]
E -->|需要重置| G[重置仿真]
F --> H[修正脚本]
G --> B
H --> D
在上述mermaid格式流程图中,展现了使用仿真视图进行脚本测试的基本流程。通过这样的流程,开发者可以有效地识别和解决脚本中的问题,提高机器人程序的质量和可靠性。
本章中,我们详细介绍了使用OrangeEdit进行离线编程的步骤,以及如何配置和使用仿真视图。下一章,我们将继续深入了解KUKA机器人语言KRL的支持情况,以及OrangeEdit在编写和优化KRL程序中的应用。
4. KUKA机器人语言KRL的支持
4.1 KRL语言基础
4.1.1 KRL语法结构概述
KUKA机器人语言(KRL)是一种专为KUKA机器人编程而设计的语言。它是一种高级语言,允许程序员编写复杂的机器人应用程序,控制机器人的动作,处理输入输出,进行错误处理等。KRL的基本语法结构包括程序段(PROGRAM),过程(PROC),函数(FUNCTION),以及各种语句和指令。
一个典型的KRL程序由以下元素组成:
DECL声明区:定义变量和常量。PROG程序段:程序的入口点。PROC过程:程序中可以被调用的子程序。EVAL表达式:用于设置变量或进行条件判断。IF,FOR,WHILE,DO等控制流语句:用于程序逻辑控制。PERS持久化变量:定义在内存中保持值的变量。
代码块示例:
! 声明部分
DECL <变量声明>
! 程序段
PROG <程序名>
! 主程序逻辑
<指令序列>
! 调用过程
CALL <过程名>
ENDPROG
! 过程定义
PROC <过程名>
! 子程序逻辑
<指令序列>
ENDPROC
4.1.2 关键字、变量和表达式的使用
KRL中包含了大量的预定义关键字,用于控制程序流程、操作I/O、进行计算等。变量是存储数据的基本单元,包括局部变量和全局变量(使用PERS声明)。表达式可以由变量、常量、函数以及运算符组成,用于定义计算逻辑。
关键字
常见的KRL关键字包括:
- IF 、 ELSE 、 ELIF :条件分支。
- FOR 、 WHILE 、 DO :循环控制。
- INT 、 BOOL 、 FLOAT :数据类型。
变量
变量用于存储数据,声明时需要指定数据类型:
DECL INT iCount
表达式
表达式可以进行算术运算、比较等:
iCount := 10; ! 赋值
IF iCount > 5 THEN ... ! 条件判断
4.1.3 代码块与结构化编程
KRL支持结构化编程,这意味着开发者可以使用结构化语句(如IF, FOR, WHILE)来控制程序流程,编写清晰、易于维护的代码。
IF <条件表达式>
<语句序列1> ! 条件满足时执行
ELSE
<语句序列2> ! 条件不满足时执行
ENDIF
结构化编程提高了代码的可读性和可维护性,有助于减少编程错误。
4.2 KRL编程与调试
4.2.1 常用的编程模板与例程
在KRL编程中,使用编程模板可以加快开发速度,减少重复编写相同代码的工作量。模板通常包括一些基本的机器人控制逻辑,如移动指令、工具坐标设置等。
机器人移动指令
LIN:直线移动到指定位置。PTP:关节空间中的快速点到点移动。CIRC:圆弧移动。
示例模板:
DECL FRAME pPick, pPlace
DECL REAL vSpeed = 200
pPick = {X 200, Y 100, Z 200, A 0, B 0, C 0}
pPlace = {X 100, Y 100, Z 100, A 0, B 0, C 0}
PROG main
! 设置速度
SET_VEL vSpeed
! 移动到抓取位置
PTP pPick
! 执行抓取动作
WAIT SEC 2
! 移动到放置位置
LIN pPlace
! 释放物体
WAIT SEC 2
ENDPROG
4.2.2 程序调试与错误分析
调试KRL程序是确保机器人按预期运行的关键步骤。OrangeEdit提供了方便的调试工具,允许用户单步执行代码、设置断点和观察变量值。
调试过程中,开发者应关注以下几点:
- 语法错误和警告:确保代码格式正确无误。
- 运行时错误:如除以零、访问非法内存地址等。
- 逻辑错误:程序执行结果与预期不符。
OrangeEdit的调试面板提供了实时查看程序执行情况的工具,帮助开发者快速定位问题所在。
4.3 高级编程技巧
4.3.1 复杂路径的生成与优化
在KRL中,生成复杂路径需要考虑机器人的动态性能、碰撞避免和路径平滑。高级编程技巧可以帮助我们优化路径,提高机器人的运行效率和精度。
路径平滑
路径平滑可以通过调整移动指令的参数来实现,例如使用圆弧移动指令(CIRC)代替直线移动指令(LIN)来生成更平滑的路径。
CIRC pViaPoint, pTarget, pPlane
碰撞检测和避免
碰撞检测和避免是生成复杂路径时的重要考虑因素。开发者应确保在机器人运动过程中,不会与任何物体发生碰撞。
! 假设 pSafeZone 为安全区域的位置
PROC AvoidCollisions
IF MOVING() THEN
IF DIST(pRobotTool, pSafeZone) < COLLISION_THRESHOLD THEN
CALL EmergencyStop()
ENDIF
ENDIF
ENDPROC
4.3.2 与外部设备的通信实现
KUKA机器人可以通过KRL程序与外部设备(如传感器、执行器)进行通信。这通常是通过I/O信号或网络通信来实现的。
I/O信号通信
使用I/O信号是最常见的通信方式。例如,使用数字输出信号触发外部设备:
SET_DOUT 1, 1 ! 设置数字输出信号1为高电平
网络通信
对于更复杂的通信需求,可以使用TCP/IP或UDP协议与外部设备进行网络通信。通过定义网络变量,可以实现实时数据交换。
DECL NETVAR TCPVAR myTcpVar
! 接收数据
GET(myTcpVar)
! 发送数据
PUT(myTcpVar)
通过这些高级编程技巧,可以大幅提高KRL程序的效率和灵活性,满足复杂的工业应用需求。
5. 程序的导入导出与团队协作
5.1 程序的导入导出
5.1.1 不同格式文件的转换与支持
在进行项目管理时,程序的导入导出是基础且重要的环节。OrangeEdit 2.0.14.95版支持多种文件格式转换,包括但不限于源代码文件、配置文件和数据文件。具体支持的文件格式可以参考官方文档,通常包括但不限于以下类型:
.krl(KUKA Robot Language).txt(Plain Text).xml(Extensible Markup Language).json(JavaScript Object Notation).csv(Comma-Separated Values)
在进行文件转换时,用户可以利用OrangeEdit内置的功能来保证格式转换的准确性和完整性。
5.1.2 批量导入导出的操作方法
批量处理导入导出文件能够在多个文件之间进行高效的操作。OrangeEdit 提供了批处理工具来处理多个文件的导入导出,支持用户通过指定文件夹路径和文件类型来实现。具体步骤如下:
- 打开OrangeEdit的工具栏中的批处理选项。
- 选择“批量导入”或“批量导出”功能。
- 在弹出的对话框中,设置需要处理的文件夹路径。
- 选择文件类型或通过文件扩展名进行筛选。
- 点击“开始”按钮执行操作。
示例代码块:
import orangeedit.batch.*;
BatchImportExport bi = new BatchImportExport();
bi.setFolderPath("C:/Projects/OrangeEdit/Files");
bi.setFileExtension(".krl");
bi.startBatchProcess(); // 依据当前选择,执行批量导入或导出
在执行批量导入导出时,系统会显示进度条和状态日志,以方便用户跟踪操作进度。
5.2 版本控制与备份策略
5.2.1 集成版本控制系统的配置
OrangeEdit支持多种版本控制系统(VCS),如Git、SVN等。为了实现更高效的团队协作和代码管理,集成VCS是必不可少的步骤。在OrangeEdit中配置版本控制系统的步骤如下:
- 打开“文件”菜单,选择“版本控制”选项。
- 在下拉菜单中选择“配置”。
- 输入版本控制系统的地址、认证信息等必要的配置。
- 点击“确认”保存设置。
操作截图:
通过这种方式,开发者可以在OrangeEdit中直接进行代码的提交、更新、分支切换等操作。
5.2.2 定期备份与恢复的最佳实践
数据的安全性是不容忽视的环节。OrangeEdit提供了内置的数据备份和恢复功能,以防止数据丢失。定期备份数据的操作步骤如下:
- 在“工具”菜单中选择“备份项目”。
- 设置备份目录和备份间隔。
- 点击“开始备份”,根据设置自动进行备份。
数据恢复操作:
- 在“工具”菜单中选择“恢复项目”。
- 浏览并选择备份文件夹。
- 点击“恢复”,系统将恢复到备份时的状态。
5.3 团队协作与远程共享
5.3.1 多用户协作环境的搭建
为了支持团队协作,OrangeEdit允许多用户同时编辑同一个项目。设置多用户协作环境可以遵循以下步骤:
- 创建或打开一个项目文件。
- 在项目设置中找到协作选项。
- 选择需要共享的用户或组,设置相应的读写权限。
- 选择“分享”按钮,邀请用户加入。
一旦用户接受邀请,就可以在OrangeEdit中实时地看到其他用户所做的更改,提高了团队的协作效率。
5.3.2 远程访问与编辑功能的实现
对于远程办公或分布式团队来说,远程访问和编辑功能是十分必要的。OrangeEdit通过互联网实现远程连接和共享编辑,实现方法如下:
- 在项目设置中激活远程访问选项。
- 将项目共享到互联网,或通过安全的远程桌面协议访问。
- 设置访问密码和端口等安全选项。
- 其他成员通过远程访问地址连接到项目。
通过以上方法,团队成员可以在不直接坐在同一台计算机前的情况下,共同协作编辑文档或代码,极大的提升了灵活性和生产力。
在本章节中,我们详细介绍了OrangeEdit在程序管理、版本控制和团队协作方面的高级功能。接下来的章节将进一步探讨如何利用OrangeEdit进行复杂应用的开发和优化。
简介:库卡(KUKA)机器人编程软件OrangeEdit 2.0.14.95版本是一款为KUKA机器人离线编程设计的直观、高效的编程环境。本指南详细介绍安装过程、主要功能和操作界面,以及如何使用OrangeEdit进行机器人程序的编写、编辑、测试和仿真。OrangeEdit支持标准的KUKA机器人语言KRL,拥有强大的离线编程能力,减少生产现场调试时间,并支持程序的导入导出,便于团队协作。指南还介绍如何通过官方教程和示例程序学习基本编程语法和特定功能,以提升编程技能。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐



所有评论(0)