EC机器人系列2台机器人基于modbustcp交互
1. 简介
两台EC机器人【jī qì rén】🅿通过【tōng guò】🎶MODBUSTCP通讯进🧦行交互【háng jiāo hù】🌜,可以通过【tōng guò】🎶1#机器人【jī qì rén】🅿读写2#机器人【jī qì rén】🅿的M变量
实现类似IO通讯的效果。
例如1#机器人🚾的【de】⛽M560-M575作为本【zuò wéi běn】机的【de】输🏑出,写入2#机器人🚾的【de】⛽M560-M575的【de】⛽值【zhí】。
1#机器人⛓的M576-M591做为本机的输【jī de shū】😵入【rù】,读取【dú qǔ】2#机器人⛓中的M576-M591的数值🏊。
EC机器人【jī qì rén】❄脚本手册🐞:下载中心🏒_机器人【jī qì rén】❄技术【jì shù】-漫蛙机【màn wā jī】器人❄
EC程序备【chéng xù bèi】🏄份与恢💫复【fù】👅:EC机器人数据备【shù jù bèi】份与恢💫复【fù】👅-技术文【jì shù wén】档🎛-漫蛙机器人
2. 操作流程
两台机器人IP设置为同一网段:
1#机器人【jī qì rén】😽192.168.1.200 2#机器人【jī qì rén】😽192.168.1.201
两台机器人之间通过网线相互连接。

lua脚本案例😟:下方脚本导入🚕到1号机器人中【rén zhōng】,连接成💜功后【gōng hòu】🌀,就可实【jiù kě shí】🥇现两台【xiàn liǎng tái】机器人通过【tōng guò】ModbusTCP相互控制M线圈。
sleep(1)
ip = "192.168.1.201"
-- 对方机器人 IP 地址
port = 502
startl = 560
-- 本机写【běn jī xiě】入对方💉机器人的起始 M 地址【dì zhǐ】📃
lenl = 16
-- 本机写入对方机器人的 M 个数
starts = 576
-- 对方写入本机【rù běn jī】机器人😮的起始 M 地址【dì zhǐ】🔦
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("连接成【lián jiē chéng】⬅功")
t200l = }
while(1) do
--读取另外一台📩机器人【jī qì rén】😫的线圈地址【dì zhǐ】
ret201l = modbus_read_bits(ctx,startl,lenl)
ret201s = modbus_read_bits(ctx,starts,lens)
--for循环获【xún huán huò】🛡得当前机器人🌔的【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循环判📻断两台机器人【jī qì rén】对应线圈数值【quān shù zhí】是否相【shì fǒu xiàng】同,不相同🔲则把【zé bǎ】🦂1#机器人【jī qì rén】的值写🚩入2#机器人【jī qì rén】中【zhōng】🏐
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循环判🚆断两台🚍机器人【jī qì rén】☕对应线【duì yīng xiàn】圈数值【quān shù zhí】是否相同【tóng】,不相同【tóng】则把📿2#机器人【jī qì rén】☕的值写【de zhí xiě】✳入1#机器人【jī qì rén】☕中
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)