EC機器人讀寫32位M變量
1.簡介
對連續(xù)32位 M變量,可以讀取連續(xù)32bit M變量并轉(zhuǎn)成對用DINT,或者將DINT數(shù)據(jù)存儲到連續(xù)32bit M變量
2.操作流程
2.1變量定義

2.2JBI和LUA代碼
使用如下JBI和lua代碼:
2.3JBI代碼
NOP
//D變量的值轉(zhuǎn)化M的值
SET I000 528
SET D002 1987
SET B000 2
TIMER T=1 S
WAIT B000 = 0
//M變量的值轉(zhuǎn)化D的值
SET I000 528
SET B000 1
TIMER T=1 S
WAIT B000 = 0
END
2.4LUA代碼
sleep(1)
--32位M變量轉(zhuǎn)成DINT數(shù)據(jù)
function M32bitToDint(startbit)
local mout = 0
local mbit = 0
for i = 32, 1, -1 do
mbit = get_robot_io_status("M" .. (startbit + i - 1))
mout = mout | mbit
mout = mout<<1
end
mout = mout>>1
mout = string.pack("I", mout)
return string.unpack("i", mout)
end
--DINT數(shù)據(jù)轉(zhuǎn)成32位M變量
function DintToM32(data, startbit)
local mout = 0
mout = string.pack("i", data)
mout = string.unpack("I", mout)
for i = 1, 32, 1 do
if (mout & 1) > 0 then
set_robot_io_status("M" .. (startbit+i-1), 1)
else
set_robot_io_status("M" .. (startbit+i-1), 0)
end
mout = mout >> 1
end
end
sleep(0.3)
local startbit
local D001
local D002
local B000
while true do
B000 = get_global_variable("B000")
if (B000 == 1) then
startbit = get_global_variable("I000")
D001 = M32bitToDint(startbit)
set_global_variable("D001", D001)
set_global_variable("B000", 0)
end
if (B000 == 2) then
startbit = get_global_variable("I000")
D002 = get_global_variable("D002")
DintToM32(D002, startbit)
set_global_variable("B000", 0)
end
sleep(0.5)
end
3.附錄:
使用U盤或FTP升級導入JBI和LUA
EC機器人FTP文件傳輸-技術(shù)文檔-艾利特機器人
TS2023057E-EC系列使用u盤導入jbi和lua-Elite應(yīng)用技術(shù)文檔 (1).pdf