EC机器人系列2台机器人基于modbustcp交互
1. 简介
两台【liǎng tái】EC机器人通过【tōng guò】MODBUSTCP通讯进🐣行交互🍭,可以通过【tōng guò】1#机器人读写🔄2#机器人的【de】M变量🖖
实现类似IO通讯的效果。
例如1#机器人👃的【de】🎠M560-M575作为本机的【de】🎠输出,写入【xiě rù】2#机器人👃的【de】🎠M560-M575的【de】🎠值。
1#机器人【jī qì rén】的【de】✳M576-M591做为本机的【de】输🌜入,读取【dú qǔ】2#机器人【jī qì rén】中的【de】✳M576-M591的【de】数值🚑。
EC机器人【jī qì rén】脚本手【jiǎo běn shǒu】册【cè】🧡:下载中❇心⛲_机器人【jī qì rén】技术-漫蛙机器人【jī qì rén】
EC程序备🐴份与恢🏳复【fù】😌:EC机器人【qì rén】数据备【shù jù bèi】份与恢🏳复【fù】😌-技术文档-漫蛙机器人【qì rén】
2. 操作流程
两台机器人IP设置为同一网段:
1#机器人【jī qì rén】🌒192.168.1.200 2#机器人【jī qì rén】🌒192.168.1.201
两台机器人之间通过网线相互连接。

lua脚本案【jiǎo běn àn】🚅例:下方脚本导入【běn dǎo rù】到1号机器😟人中👞,连接成功后🎉,就可实🛶现两台机器人通过【tōng guò】ModbusTCP相互控制【zhì】M线圈【xiàn quān】。
sleep(1)
ip = "192.168.1.201"
-- 对方机器人 IP 地址
port = 502
startl = 560
-- 本机写入对方🍂机器人的起始【de qǐ shǐ】 M 地址【dì zhǐ】🤽
lenl = 16
-- 本机写入对方机器人的 M 个数
starts = 576
-- 对方写入本机【rù běn jī】机器人🙇的起始【de qǐ shǐ】 M 地址🌜
lens = 16
-- 对方写入本机机器人的 M 个数
ctx = modbus_new_tcp(ip,port)
repeat
ret = modbus_connect(ctx)
elite_print("连接失【lián jiē shī】败🛰")
until(ret ~= -1)
elite_print("连接成功【gōng】💐")
t200l = }
while(1) do
--读取另【dú qǔ lìng】外一台🌑机器人🐴的线圈地址【dì zhǐ】
ret201l = modbus_read_bits(ctx,startl,lenl)
ret201s = modbus_read_bits(ctx,starts,lens)
--for循环获得当前【dé dāng qián】机器人😰的【de】M线圈🏉
for i=1,lenl,1 do
t = i+startl-1
name = "M"..tostring(t)
t200l[i] = get_robot_io_status(name)
end
for i=1,lens,1 do
t = i+starts-1
name = "M"..tostring(t)
t200s[i] = get_robot_io_status(name)
end
--for循环判断两台【duàn liǎng tái】🔧机器人【jī qì rén】📏对应线🛩圈数值是否相同💲,不相同💲则把【zé bǎ】1#机器人【jī qì rén】📏的值写入【rù】🏯2#机器人【jī qì rén】📏中
for i=1,lenl,1 do
if(t200l[i]~=ret201l[i]) then
retl = modbus_write_bit(ctx,i+startl-1,t200l[i])
if(retl == -1) then
elite_print("Write1 Wrong")
end
end
end
--for循环判断两台【duàn liǎng tái】机器人🥏对应线圈数值🌉是否相【shì fǒu xiàng】同😼,不相同😼则把【zé bǎ】♟2#机器人🥏的值写【de zhí xiě】入【rù】1#机器人🥏中👇
for i=1,lens,1 do
if(t200s[i]~=ret201s[i]) then
t = 575+i
name = "M"..tostring(t)
set_robot_io_status(name, ret201s[i])
end
end
end
modbus_close(ctx)