【ECJP011】干渉領域の番号のプロンプト方法(スクリプト実現)



干渉領域が多すぎて視覚的に区別しにくい場合があり、各干渉領域にロボットが入ることによってトリガーされる動作モードが異なる場合があるため、どの干渉領域に侵入するかを時間内に知る必要があります。次のスクリプ(interzone.lua)をインポートして実行することで実現できます。

スクリプト名:interzone.lua

スクリプト:
function RiseEdge(var)
    local current_state = 0
    local pre_state = 0

    repeat
        pre_state = current_state
        current_state = get_robot_io_status(var)
        sleep(0.008)
    until (current_state == 1) and (pre_state == 0)
end

function FallEdge(var)
    local current_state = 0
    local pre_state = 0

    repeat
        pre_state = current_state
        current_state = get_robot_io_status(var)
        sleep(0.008)
    until (current_state == 0) and (pre_state == 1)
end

local recv, ret, recv2
local m = {}
local m_pre = {}

function Init()
    recv ,ret=get_robot_register (55)
    recv2 ,ret=get_robot_register (56)
    for i = 1, 8, 1 do
        if (recv & (2 ^ (i - 1)) > 0) then
            m[i] = 1
        else
            m[i] = 0
        end
    end

    for i = 1, 8, 1 do
        if (recv2 & (2 ^ (i - 1)) > 0) then
            m[i + 8] = 1
        else
            m[i + 8] = 0
        end
    end

    for i=1,16,1  do
        m_pre[i] = m[i]
    end
end

Init()
while true do
    recv ,ret=get_robot_register (55)
    recv2 ,ret=get_robot_register (56)
    for i = 1, 8, 1 do
        if (recv & (2 ^ (i - 1)) > 0) then
            m[i] = 1
        else
            m[i] = 0
        end
    end

    for i = 1, 8, 1 do
        if (recv2 & (2 ^ (i - 1)) > 0) then
            m[i + 8] = 1
        else
            m[i + 8] = 0
        end
    end

    for i=1,16,1  do
        if(m[i]==1) and (m_pre[i]==0)  then
            elite_print("干渉領域"..i.."に入る")
        elseif(m[i]==0) and (m_pre[i]==1) then
            elite_print("干渉領域"..i.."を離す")
        end
    end

    for i=1,16,1  do
        m_pre[i] = m[i]
    end

    sleep(0.5)
end


インポート手順:プロセス -> スクリプト




あるプログラムを実行すること情報エリアは以下のようになりました:

点击显示全文
赞同0
发表评论
分享

手机扫码分享
0
284
收藏
举报
收起
登录
  • 密码登录
  • 验证码登录
还没有账号,立即注册
还没有账号,立即注册
注册
已有账号,立即登录
选择发帖板块
上传文件
举报
请选择举报理由
举报
举报说明