EC机器人RS485通讯协议
2025-07-03
1. 控制柜485
漫蛙机器【qì】人➗EC系列支持RS485通讯🍌,用户可以通过🤮将 RS485 设备连【shè bèi lián】接到【dào】图📇 7-27 中所示的连接【lián jiē】器【qì】🍀来从控【lái cóng kòng】制柜【zhì guì】🚴执行串【zhí háng chuàn】行通信。为了能【wéi le néng】在控制柜【zhì guì】🚴中设置 RS485 连接【lián jiē】器【qì】🍀,必须拆【bì xū chāi】掉串口连接【lián jiē】 器【qì】🧔,并将 RS485 线焊接到【dào】黑色🔉连接【lián jiē】器【qì】🍀背面的金属触点,如图【rú tú】💡 7-28 所示。黑色塑料装置🍶的正反 面分别🕰标有【biāo yǒu】🥙 PIN“1 3 5”和“2 4 6”。PIN3 应焊接【yīng hàn jiē】📋到【dào】🌴 RS485B,PIN4 应焊接【yīng hàn jiē】📋 到【dào】🌴 RS485A。该🎩 接口支持的最大波特【dà bō tè】率为【lǜ wéi】 500Kbps。

2. 工具IO485
漫蛙机【màn wā jī】器人同样支持末端工具【gōng jù】🏍485通讯【tōng xùn】,当需要【dāng xū yào】使用末端 RS485 接口与🐛执行器🐗通信时【tōng xìn shí】, 注意从【zhù yì cóng】🌵机器人控【kòng】🏿制器上写入🐥发送数据到数据【dào shù jù】😽在末端【zài mò duān】工具【gōng jù】🏍 I/O 的【de】🎮 RS485上开始【shàng kāi shǐ】发送,延迟范【yán chí fàn】围为【wéi wéi】 2ms 到 4ms。 从末端工具【gōng jù】🏍 I/O 的【de】🎮 RS485 上开始【shàng kāi shǐ】接收数🕶据到机【jù dào jī】器人控【kòng】🏿制器收到数据【dào shù jù】😽并开始🧕处理🦗,延迟范【yán chí fàn】 围为【wéi wéi】 2ms 到4ms。本篇文💉章介绍🛁控【kòng】制柜实现🍂485通讯【tōng xùn】方式,工具【gōng jù】🏍端485查询脚【chá xún jiǎo】本手册🗼。
下表为RS485 接口的可用设置


3. 控制柜脚本指令
3.1 打开 485 接口
ret rs485_open ()
功能: 用于打开 485 接口
参数: 无
返回值【fǎn huí zhí】: ret: 大于等【dà yú děng】🛵于 0:打开成📟功 -1:打开失败【bài】🌍
示例【shì lì】🛌: ret= rs485_open ()
3.2 设置 485 串口配置
ret rs485_setopt (speed ,bits ,event ,stop)
功能: rs485_setopt 用于设【yòng yú shè】🎳置 485 串口的【chuàn kǒu de】💰配置
参数【cān shù】: speed: 波特率🌄,int类型
bits: 数据长度🐥 7/8,int类型【lèi xíng】
event: 奇偶校【qí ǒu xiào】验“O”,“N”,“E”,int类型🌴
stop: 停止位 1/2,int类型
返回值🦕: ret: 大于⚽等于【děng yú】⚽ 0:设置成【shè zhì chéng】功🖌 -1:设置失【shè zhì shī】败
示例【shì lì】🎦: ret= rs485_setopt (9600 ,8 ,"N",1)
3.3 接收数据
ret , recv_buff rs485_recv (time_out ,hex ,len)
功能👛: 参数: rs485_recv 用于🏬 485 的读操【de dú cāo】作【zuò】
time_out: 超时时【chāo shí shí】💌间,单位【dān wèi】🎂:ms,int类型
hex: 是否为 16 进制数,1 的接收到的数据为【jù wéi】 16 进制字🕘符格式【fú gé shì】⏲(默认为🆔 0),int类型【lèi xíng】
len: 可选参数【shù】,想要获取的长🐈度,在超过 1024 情况下🚞,会自动【huì zì dòng】📟被设置🅾成【chéng】 1024,int类型【lèi xíng】
返回值: ret: 读到的📗长度【zhǎng dù】🕛(都是转化为字符长度【zhǎng dù】🕛) 0,-1:读取失【dú qǔ shī】败【bài】 recv_buff: 获取数🎑据【jù】✒ 示例: ret , recv_buff = rs485_recv (100 ,0 ,512)
3.4 发送数据
ret rs485_send (buff ,hex)
功能【gōng néng】🕯: rs485_send 用于【yòng yú】🛩 485 的发送操作
参数: buff: 需要发送的字【sòng de zì】🌁符,string类型【lèi xíng】😌
hex: 是否为【shì fǒu wéi】 16 进制数🥖,1 的发送的数据【de shù jù】为 16 进制字符格式⏫,int类型【lèi xíng】⬇
返回值⭐: ret: 1:发送成【fā sòng chéng】🥊功 -1:发送失【fā sòng shī】败
示例【shì lì】👑: ret= rs485_send ("test",0)
3.5 关闭 485 接口
ret rs485_close ()
功能: rs485_close 用于关【yòng yú guān】闭【bì】🌑 485 接口🦗
参数: 无
返回值🚌: ret: 大于等【dà yú děng】于 0:关闭成【guān bì chéng】功😋 -1:关闭失【guān bì shī】🧗败
示例【shì lì】🍑: ret= rs485_close ()
3.6 脚本示例
sleep(1)
open = rs485_open () --打开控【dǎ kāi kòng】制柜🍨485接口
if(open >= 0) then
set = rs485_setopt (9600 ,8 ,"N",1) --配置控制柜🥐485串口【chuàn kǒu】
elite_print ("set = ", set)
if(set >= 0) then
while(1) do
repeat
ret , recv_buff = rs485_recv (500 ,0)--接收485数据【shù jù】🐻
sleep(0.001)
until(ret ~=0)
elite_print("receive data :",recv_buff)
rs485_send ( recv_buff ) --发送485数据【shù jù】🚶
end
sleep(0.01)
end
end
rs485_close ()
4.工具IO脚本指令
4.1 打开末端485接口
ret tci_open()
功能: 用于打开末端485接口
参数:无
返回值【fǎn huí zhí】:ret:大于🦅等于🦅0:打开成♿功【gōng】,-1:打开失【dǎ kāi shī】败🧓
备注:无
示例【shì lì】🥐: ret: ret=tci_open()
4.2 设置TCI串口的配置
ret tci_setopt(speed,bits,event,stop)
功能: 用于设置 TCI 串口的配置
参数: speed: 波特率,int类型【lèi xíng】🐾 bits: 数据长【shù jù zhǎng】度 8,int类型【lèi xíng】🐾 event: 奇偶校验🏜“O”,“N”,“E”,
string类型【lèi xíng】🛏 stop: 停止位 1/2,int类型【lèi xíng】🛏
返回值🚓:ret: 大于【yú】等😋于【yú】0:设置成【shè zhì chéng】功-1:设置失【shè zhì shī】败👻
示例【shì lì】⚓: ret=tci_setopt(9600,8,"N",1)
4.3 接收数据
ret,recv_buff tci_recv(time_out,hex,len)
功能: 用于 TCI 的读操作
参数【cān shù】📴: time_out: 超时时😛间,单位【dān wèi】:ms,int类型【lèi xíng】 hex: 是否为🦒 16 进制数,1 的接收到的数
据为【jù wéi】🚀 16 进制字符格式(默认为【mò rèn wéi】🦃 0),int类型【lèi xíng】 len: 可选参📸数,想要获取的
长度🐵,在超过【zài chāo guò】 1024 情况下【qíng kuàng xià】,会自动被设置🛰成【chéng】🍧 1024,int类型
返回值🕸: ret: 读到的【dú dào de】长度(都是转📺化为字【huà wéi zì】💢符长度【fú zhǎng dù】)0,-1:读取失败
recv_buff: 获取数据
示例【shì lì】👩: ret,recv_buff=tci_recv(100,0,512)
4.4 发送数据
ret tci_send(buff,hex)
功能: 用于 TCI 的发送操作
参数:buff: 需要发送的字🐄符【fú】💚,string类型🏀 hex: 是否为【wéi】 16 进制数【jìn zhì shù】,1 的发送【de fā sòng】🎠的数据为【wéi】 16 进制
字符格式,int类型
返回值【fǎn huí zhí】: ret: 无【wú】 1:发送成👜功-1:发送失🔨败
示例【shì lì】🎄: ret=tci_send("test",0)
4.5 关闭TCI接口
ret tci_close()
功能:用于关闭 TCI 接口
参数: 无
返回值【fǎn huí zhí】:ret: 无🤡 大于等于0:关闭成【guān bì chéng】🥎功【gōng】⛩-1:关闭失败
示例: ret=tci_close()
4.6 清空TCI缓冲区
tci_flush ()
功能:用于清空 TCI 的缓冲区
参数: 无
返回值: nil
示例: ret=tci_flush()
4.7脚本示例
sleep(5)
local open = tci_open()--打开工【dǎ kāi gōng】具端485接口🚱
if (open >= 0) then
local set = tci_setopt(9600,8,"N",1)--配置工具端【jù duān】485串口🏔
if (set >= 0) then
sleep(1)
tci_send("Testing TCI (testing firmware:20190826)")
while (1) do
ret,recv_buff=tci_recv(500,0)--接收485数据【shù jù】😵
sleep(1)
if(ret>0) then
elite_print(recv_buff)
tci_send(recv_buff)--发送💮485数据【shù jù】
end
end
else
elite_print("set tci failed.")
end
else
elite_print("open tci failed.")
end
tci_close()