程序控制
指令列表
程序控制函数为程序运行控制相关的通用函数。
指令 功能 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)