线程评级:
Robodk中的IF else命令
# 1
大家好,RDK

我对roboDK真的很陌生。关于我可能有一个非常“愚蠢”的问题,但我还没有从robodk找到一个灵魂来帮助解决它。

我在robodk中做了2个不同的运动程序。我们称它们为Prog1和prog2。
现在我想做条件if和else。
我如何在RoboDK中做到这一点?

我可以生成主程序,它将首先运行Prog1,然后运行Prog2,并手动编辑它并添加条件。
就像那样,但我希望RoboDK在程序中有更好的解决方案
代码:
% % %
版本:1
语言:英语
% % %

模块MOD_MainProgram

珀耳斯tooldata rdkTool: =(真的,[[0,0,0),[1 0 0,0]],[[0,0200],1,0,0,0,0,0,0.005]];

PROC MainProgram ()
由RoboDK v5.2.1在11/02/2021 20:34:18为ABB IRB 6400 2.8 120生成的程序
!使用标称运动学。
if andur_1=HIGH THEN
Prog1;
其他的
Prog2;
ENDIF
ENDPROC

PROC Prog1 ()
MoveJ [[2145.000,0.000,1143.934],[0.70710678,0.00000000,0.70710678,0.00000000],[0,- 1,1,1],[9E9,9E9,9E9,9E9,9E9,9E9]], v200, fine, rdkTool;
MoveJ [[2145.000,870.641,1143.934],[0.70710678,0.00000000,0.70710678,-0.00000001],[0,0,-1,1],[9E9,9E9,9E9,9E9,9E9,9E9]], v200, fine, rdkTool;
MoveJ [[2145.000,870.641,1981.626],[0.70710678,0.00000000,0.70710678,0.00000000],[0,0,-1,1],[9E9,9E9,9E9,9E9,9E9,9E9]], v200, fine, rdkTool;
MoveJ [[2145.000,3.905,1981.626],[0.70710678,-0.00000001,0.70710678,0.00000000],[0,0,-1,1],[9E9,9E9,9E9,9E9,9E9,9E9]], v200, fine, rdkTool;
MoveJ [[2145.000,889.036,1158.989],[0.70710678,-0.00000001,0.70710678,0.00000000],[0,0,-1,1],[9E9,9E9,9E9,9E9,9E9,9E9]], v200, fine, rdkTool;
ENDPROC

PROC Prog2 ()
MoveJ [[2145.000,0.000,2075.000],[0.70710678,-0.00000001,0.70710678,0.00000000],[0,0,-1,0],[9E9,9E9,9E9,9E9,9E9,9E9]], v200, fine, rdkTool;
MoveJ [[2145.000,41.161,2382.972],[0.70710678,0.00000000,0.70710678,0.00000000],[0,1,-2,1],[9E9,9E9,9E9,9E9,9E9,9E9,9E9]], v200, fine, rdkTool;
MoveJ [[2145.000,695.675,2382.972],[0.70710678,0.00000000,0.70710678,0.00000000],[0,1,-2,1],[9E9,9E9,9E9,9E9,9E9,9E9]], v200, fine, rdkTool;
MoveJ [[2145.000,695.675,2135.282],[0.70710678,-0.00000001,0.70710678,0.00000000],[0,1,-2,1],[9E9,9E9,9E9,9E9,9E9,9E9]], v200, fine, rdkTool;
MoveL [[2145.000,55.244,2135.282],[0.70710678,0.00000001,0.70710678,0.00000001],[0,1,-2,1],[9E9,9E9,9E9,9E9,9E9,9E9]], v200, fine, rdkTool;
ENDPROC

ENDMODULE

使用UI时不支持If/then/else语句。您的变通方法是最好的方法,除非您想使用API。例如,您可以编写一个小脚本来模拟您的逻辑并触发相应的程序。

很抱歉我们现在帮不了你。
# 3
你好,

如果你下载了最新版本的RoboDK,你可以使用“If”和“WHILE”语句。

要使其工作,您需要激活“工具”->“选项”->“站”中的“流量控制语句”

我附上了一个例子站。
如果您有任何意见,请告诉我们。

杰里米


附加文件
.rdk FlowControlStatements.rdk(大小:1.11 MB /下载:278)
有关RoboDK及其功能的有用信息,请访问我们的在线文档通过观看我们的教程Youtube频道


# 4
亲爱的杰里米,


我的同事尝试了一个使用“IF”和“WHILE”语句的项目,但他在他的项目中发现了一些错误。

你能详细说明在他的项目中IF语句运行不好的原因是什么吗?

最好的问候,
Hiroe


附加文件
. zip 样本(1). zip(大小:3.18 MB /下载:123)
# 5
要使其工作,您需要激活“工具”->“选项”->“站”中的“流量控制语句”。

我忘了在我的第一个评论中提到它,我编辑了它。
有关RoboDK及其功能的有用信息,请访问我们的在线文档通过观看我们的教程Youtube频道


# 6
嗨,杰里米

有什么原因吗流量控制语句默认不启用?
# 7
RoboDK中的流量控制语句是一个实验特性。为了正确地支持这一功能,我们必须改进所有的后置处理器,以便在生成机器人程序时正确地生成这些流控制语句。




浏览此线程的用户:
1客人(年代)