
例如LUA 接收到机器人的一段轨迹点位,那么可以通过lua讲点位转成JBI程序轨迹。
前台JBI只需要等待lua转化完,并调用新的轨迹即可。
JBI程序,
NOP SET B001 0 TIMER T=1 S SET B001 1 // 请求lua开始转化并生成 轨迹jbi程序 // 等待lua转化完成 WAIT B001=0 CALL JOB:Alson1 // 调用新生成的Alson.jbi程序 END
generateJBI.lua 后台程序
sleep(0.3)
Pose_arr = {{400,12.543,25.9139,2.30554,-0.00000,-3.14159},
{400,25.9819,36.2783,2.48465,-0.00000,-3.14159},
{400,40.0492,43.015,2.69498,-0.00000,-3.14159},
{400,55.475,46.1574,2.94063,-0.00000,-3.14159},
{400,72.1395,45.5849,-3.10724,-0.00000,3.14159},
{400,92.1442,41.2421,-2.92782,-0.00000,3.14159},
{400,131.193,28.7256,-2.83139,-0.00000,3.14159},
{400,158.247,21.5695,-2.88300,-0.00000,3.14159},
{400,179.531,18.4946,-2.99811,-0.00000,3.14159},
{400,200,18.3181,-3.13297,-0.00000,3.14159},
{400,220.469,18.4946,3.13297,-0.00000,-3.14159},
{400,241.753,21.5695,2.99811,-0.00000,-3.14159},
{400,268.807,28.7256,2.88300,-0.00000,-3.14159},
{400,307.856,41.2421,2.83139,-0.00000,-3.14159},
{400,327.86,45.5849,2.92782,-0.00000,-3.14159},
{400,344.525,46.1574,3.10724,-0.00000,-3.14159},
{400,359.951,43.015,-2.94063,-0.00000,3.14159},
{400,374.018,36.2783,-2.69498,-0.00000,3.14159},
{400,387.457,25.9139,-2.48465,-0.00000,3.14159},
{400,400,12.0313,-2.30554,-0.00000,3.14159}}
-- 路径轨迹一共20个笛卡尔点
StartPos = {-54.169,-68.726,81.686,-61.057,115.744,25.829}
--起点,joint
user1 ={-70,-140,130,0.0,0.0,0.0} --用户坐标系
tool1 ={0,0,100,0.0,0.0,0.0} --工具
-- 用于MoveL中的运动参数
ACC = 20
DEC = 20
CR = 8.0
V = 50
function GenerateJBI(file1)
local jbifile_out = {}
table.insert(jbifile_out,'SETPOSE V000 '..table.concat(tool1, ","))
table.insert(jbifile_out,'SETTOOLFRAME TOOL#(1) V000')
-- 插入设置工具tool
table.insert(jbifile_out,'SETPOSE V000 '..table.concat(user1, ","))
table.insert(jbifile_out,'SETUSERFRAME USER #(1) V000')
-- 插入设置user用户坐标系
table.insert(jbifile_out,'MOVEJ VJ=100% CR=0.0MM ACC=20 DEC=20 ConstP=['..table.concat(StartPos, ",")..']')
-- 插入movej
for i = 1, #Pose_arr, 1 do
table.insert(jbifile_out,'MOVEL V='..V..'MM/S CR='..CR..'MM ACC='..ACC..' DEC='..DEC..' TOOL#(1) USER#(1) ConstV=['..table.concat(Pose_arr[i], ",")..']')
end
-- 插入moveL
filename = file1..'.jbi'
file = io.open(filename, "w")
io.output(file)
table.insert(jbifile_out, 1, "NOP")
table.insert(jbifile_out, "END")
for i = 1, #jbifile_out, 1 do
io.write(jbifile_out[i] .. "\n")
end
io.close(file)
sleep(0.3)
elite_print("生成程序" .. filename..'成功')
end
set_global_variable('B001',0)
while true do
B001 = get_global_variable('B001')
if B001 ==1 then
GenerateJBI('Alson1')
set_global_variable('B001',0)
sleep(0.5)
end
end