跳到主要内容

程序控制

指令列表

程序控制函数为程序运行控制相关的通用函数。

指令 功能 Print 打印调试信息到控制台 Log 输出自定义日志 Wait 等待指定时间或满足指定条件后再继续执行下一条命令 Pause 暂停脚本运行 ResetElapsedTime 开始计时 ElapsedTime 结束计时 Systime 获取当前系统时间 SetGlobalVariable 设置全局变量

Print

原型:

Print(value)

描述:

打印调试信息到控制台(命令名也可写成print)。

说明: 变量打印出来的格式和本文档中描述的格式可能有所差异,但表示的是同一种数据格式,参考本文档中描述的格式理解和使用即可。

-- 例如,变量的格式为 {pose={x,y,z,rx,ry,rz}},打印出来的格式则类似于:
table:0x123abc{
[pose] => table:0x123abc{
[1] => x
[2] => y
[3] => z
[4] => rx
[5] => ry
[6] => rz
}
}

必选参数:

  • value:待打印的数据

示例:

-- 打印字符串Success到控制台。
Print('Success')

Log

原型:

Log(value)

描述:

输出自定义级别的日志信息,可在控制软件日志页面中查看及导出。

必选参数:

value:日志信息

示例:

-- 输出内容为test的日志信息。
Log('test')

Wait

原型:

Wait(time_ms)
Wait(check_str)
Wait(check_str, timeout_ms)

描述:

机械臂完成上一条指令后,等待指定时间或满足指定条件后再继续执行下一条命令。等待时间的最大值为2147483647ms,设置的参数超过最大值会导致指令无效。

必选参数:

time_ms:参数值为integer类型时,表示指定等待时间,小于等于0时表示不等待。单位:ms check_str:参数值为string类型时,表示判断逻辑,逻辑为true后再继续执行下一条指令。 可选参数:

timeout_ms:超时时间。判断逻辑一直为false且等待超过该时间时,系统会继续执行下一条指令并返回false。小于等于0时表示不等待,立刻超时。不设置该参数时,表示不会超时,会一直等待直到判断逻辑为true。单位:ms

返回:

满足条件并继续运行时,返回true;不满足条件,因超时导致继续运行时,返回false。

示例:

-- 等待300ms。
Wait(300)
-- DI1为ON时继续运行。
Wait("DI(1) == ON")
-- DO1为ON且AI(1)小于7时继续运行。
Wait("GetDO(1) == ON and AI(1) < 7")
-- 根据1s内DI1的状态执行不同的业务逻辑。
if (Wait("DI(1) == ON", 1000))
then
-- DI1状态为ON
else
-- DI1状态为OFF且等待超过1s
end

Pause

原型:

Pause()

描述:

暂停脚本运行。需要通过控制软件或者远程控制操作才可继续运行。

示例:

-- 机械臂运行至P1点后暂停运行,通过外部控制继续运行后才会运行至P2点。
MovJ(P1)
Pause()
MovJ(P2)

ResetElapsedTime

原型:

ResetElapsedTime()

描述:

待此指令前所有指令执行完成后开始计时,需配合ElapsedTime()一起使用,可用于计算运行时间。

示例:

请参考ElapsedTime的示例。

ElapsedTime

原型:

ElapsedTime()

描述:

结束计时,返回时间差,需配合ResetElapsedTime()一起使用。

返回:

从开始计时到结束计时的时间差,单位毫秒。最大可统计4294967295ms(约49.7天),超过此时间后会从0开始重新计数。

示例:

-- 计算机械臂在P1和P2间直线运动来回10次的时间,打印至控制台。
MovJ(P2)
ResetElapsedTime()
for i=1,10 do
MovL(P1)
MovL(P2)
end
print (ElapsedTime())

Systime

原型:

Systime()

描述:

获取当前系统时间。

返回:

系统当前时间的Unix时间戳,单位转换为了毫秒,即从格林威治时间1970年1月1日零时到当前时间的毫秒数,一般用于计算时间差。如需获取当地时间,请根据当地时区使用获取的格林威治时间换算获得。

示例:

-- 获取系统当前时间。
local time1 = Systime()
print(time1) -- > 1686304295963,换算为北京时间为2023-06-09 17:51:35(加963毫秒)
local time2 = Systime()
print(time2) -- > 1686304421968,换算为北京时间为2023-06-09 17:53:41(加968毫秒)

-- 计算机械臂移动到P1所花费的时间,单位毫秒。
local time1 = Systime()
MovL(P1)
local time2 = Systime()
print(time2-time1)

SetGlobalVariable

原型:

SetGlobalVariable(key,val)

描述:

设置全局变量。如需对全局变量进行赋值,建议使用此函数,不建议使用”=“。

必选参数:

key:要设置的全局变量的名称。 val:要设置的全局变量的值,支持的数据类型包括bool,table,string,number。 示例:

-- 设置全局变量g1的值为10
SetGlobalVariable("g1",10)