1.R1四軸控制
學習到的程式設計心得:
1.IO點位是數字,因為暫時不確定且為了可讀性,先用變數,然後給變數賦值
2.變數的名字進行分類,分IN和OUT在變數名前加上,若是實際線路未接的部分,字首再加上test進行模擬處理,用來遮蔽這些未接的訊號對程式的影響
require "Points"
require "Tools"
require "Users"
local a=1
local b=2
local str="LinkHou "
--------------------
local in_zudangqigangshang=0
local in_daowei=1
local in_youliao=2
local in_houzhanfangliao=7
local out_qianzhanfangliao=0
local out_zudangqigang=4
local out_cuiqi=5
-----------------------
local test1=1 ---遮蔽前後站訊號
local test2=1 ---遮蔽氣缸訊號
local test_in_youliao=1 ---遮蔽有無料光電訊號
local test_in_houzhanfangliao=1 --遮蔽後站放料訊號
----------------
function LMain()
JSpeed={vel=10,accel=30,decel=30,tvel=0,rvel=0,blend=100,leave=0,reach=0}
LSpeed={vel=500,accel=30,decel=30,tvel=0,rvel=0,blend=50,leave=0,reach=0}
VELPCT(50)
MOTOR(On)
DELAY(500)
ccpos=CCPOS()
ccpos.z=home.z
MOVJ(ccpos,tool1,JSpeed)
MOVJ(home,tool1,JSpeed)
while true do
--------------------------------上料
OUT(out_zudangqigang,Off) --阻擋上升
repeat
SLEEP(30)
until IN(in_zudangqigangshang)==On or test1==1 --阻擋到位
if IN(in_daowei)==Off then
OUT(out_qianzhanfangliao,On) --允許前站放料
end
a=0
repeat
if IN(in_daowei)==On then
a=a+1
else
a=0
end
DELAY(50)
until IN(in_daowei)==On and a>10
OUT(out_qianzhanfangliao,Off) --允許前站放料關閉
--------------------------------有料就工作,無料放空板或者報警
if IN(in_youliao)==On or test_in_youliao==1 then
OUT(out_cuiqi,On)
MOVJ(p1,tool1,JSpeed)
MOVL(p2,tool1,LSpeed)
MOVL(p3,tool1,LSpeed)
MOVL(p4,tool1,LSpeed)
MOVL(p1,tool1,LSpeed)
MOVJ(home,tool1,JSpeed)
DELAY(0)
OUT(out_cuiqi,Off)
end
-------------------------------------等放行
repeat
SLEEP(30)
until IN(in_houzhanfangliao)==On or test_in_houzhanfangliao==1 --放行
OUT(out_zudangqigang,On) --阻擋下降放行
a=0
repeat
if IN(in_daowei)==Off then
a=a+1
else
a=0
end
DELAY(50)
until IN(in_daowei)==Off and a>10
end
end