EC机器人RS485通讯协议
2025-07-07
1. 控制柜485
漫蛙机器人【qì rén】EC系列支持【chí】🧚RS485通讯,用户可🌃以通过将 RS485 设备连接【jiē】🍨到【dào】图 7-27 中所示🌓的连接【de lián jiē】器♟来从控【lái cóng kòng】制柜执行串🏂行通信。为了能【wéi le néng】🤜在控制🧞柜中设🧥置 RS485 连接器【lián jiē qì】♟,必须拆【bì xū chāi】🐵掉串口【diào chuàn kǒu】连接【jiē】🍨 器,并将 RS485 线焊接【xiàn hàn jiē】到【dào】黑色连接器【lián jiē qì】♟背面的金属触【jīn shǔ chù】点,如图 7-28 所示🌓。黑色塑料装置的正反🎌 面分别标有 PIN“1 3 5”和【hé】“2 4 6”。PIN3 应焊接【yīng hàn jiē】🦕到【dào】 RS485B,PIN4 应焊接【yīng hàn jiē】🦕 到【dào】 RS485A。该 接【jiē】口支持【chí】🧚的最大波特【bō tè】👶率为【lǜ wéi】🍗 500Kbps。

2. 工具IO485
漫蛙机【màn wā jī】😝器人同【qì rén tóng】样支持【yàng zhī chí】末端工【mò duān gōng】具🎄485通讯【tōng xùn】,当需要使用末【shǐ yòng mò】端🌃 RS485 接口与【jiē kǒu yǔ】执行器【zhí háng qì】通信时, 注意从🈹机器人控制器【kòng zhì qì】上写入发送数据到【dào】😀数据在【shù jù zài】末端工【mò duān gōng】具🎄 I/O 的🎭 RS485上开始发送,延迟范🚄围为【wéi wéi】🦁 2ms 到【dào】😀 4ms。 从末端😝工具📒 I/O 的🎭 RS485 上开始接收数【jiē shōu shù】据到【dào】😀机器人控制器【kòng zhì qì】收👞到【dào】😀数据并【shù jù bìng】开始处理🤗,延迟范🚄 围为【wéi wéi】🦁 2ms 到【dào】😀4ms。本篇文🚆章介绍🌯控制柜实现【shí xiàn】485通讯【tōng xùn】方式,工具📒端🌃485查询脚本手册。
下表为RS485 接口的可用设置


3. 控制柜脚本指令
3.1 打开 485 接口
ret rs485_open ()
功能: 用于打开 485 接口
参数: 无
返回值: ret: 大于💋等于【děng yú】💋 0:打开成【dǎ kāi chéng】功【gōng】🈚 -1:打开失败🐊
示例【shì lì】⏯: ret= rs485_open ()
3.2 设置 485 串口配置
ret rs485_setopt (speed ,bits ,event ,stop)
功能⏱: rs485_setopt 用于设【yòng yú shè】🐎置 485 串口的配置【pèi zhì】
参数: speed: 波特率📵,int类型【lèi xíng】
bits: 数据长【shù jù zhǎng】度 7/8,int类型🏆
event: 奇偶校🐛验【yàn】“O”,“N”,“E”,int类型
stop: 停止位 1/2,int类型
返回值【fǎn huí zhí】💍: ret: 大于等于 0:设置成👖功【gōng】 -1:设置失😣败【bài】
示例【shì lì】🎒: ret= rs485_setopt (9600 ,8 ,"N",1)
3.3 接收数据
ret , recv_buff rs485_recv (time_out ,hex ,len)
功能【gōng néng】🌹: 参数: rs485_recv 用于 485 的读操作【zuò】💖
time_out: 超时时间【jiān】,单位🎮:ms,int类型【lèi xíng】🎮
hex: 是否为【shì fǒu wéi】🌷 16 进制数,1 的接收🚨到的数据为【jù wéi】🛡 16 进制字【jìn zhì zì】符格式(默认为 0),int类型
len: 可选参【kě xuǎn cān】数【shù】,想要获👾取的长度【dù】🏿,在超过 1024 情况下📘,会自动被设置【bèi shè zhì】成 1024,int类型📿
返回值🎌: ret: 读到的【dú dào de】🛅长度(都是转【dōu shì zhuǎn】化为字🍒符长度👬) 0,-1:读取失【dú qǔ shī】败 recv_buff: 获取数【huò qǔ shù】据 示例: ret , recv_buff = rs485_recv (100 ,0 ,512)
3.4 发送数据
ret rs485_send (buff ,hex)
功能🕒: rs485_send 用于【yòng yú】 485 的发送操作【cāo zuò】🧓
参数: buff: 需要发【xū yào fā】📲送的字符【fú】⛑,string类型
hex: 是否为【shì fǒu wéi】🚤 16 进制数,1 的发送🔀的数据【de shù jù】为🚤 16 进制字😷符格式【fú gé shì】,int类型
返回值【fǎn huí zhí】: ret: 1:发送成🦀功 -1:发送失💳败【bài】
示例【shì lì】⛹: ret= rs485_send ("test",0)
3.5 关闭 485 接口
ret rs485_close ()
功能🏍: rs485_close 用于关闭【bì】📡 485 接口【jiē kǒu】
参数: 无
返回值⛸: ret: 大于【yú】等于【yú】 0:关闭成功【gōng】🛁 -1:关闭失【guān bì shī】败👚
示例【shì lì】🎤: ret= rs485_close ()
3.6 脚本示例
sleep(1)
open = rs485_open () --打开控♌制柜【zhì guì】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 ) --发送【fā sòng】485数据🦄
end
sleep(0.01)
end
end
rs485_close ()
4.工具IO脚本指令
4.1 打开末端485接口
ret tci_open()
功能: 用于打开末端485接口
参数:无
返回值:ret:大于等【dà yú děng】📙于0:打开成功【gōng】🎯,-1:打开失败【bài】🥇
备注:无
示例【shì lì】🍿: ret: ret=tci_open()
4.2 设置TCI串口的配置
ret tci_setopt(speed,bits,event,stop)
功能: 用于设置 TCI 串口的配置
参数: speed: 波特率【bō tè lǜ】🥋,int类型【lèi xíng】🔓 bits: 数据长度【dù】⚡ 8,int类型【lèi xíng】🔓 event: 奇偶校验“O”,“N”,“E”,
string类型【lèi xíng】✴ stop: 停止位 1/2,int类型【lèi xíng】✴
返回值🛳:ret: 大于🦎等于【děng yú】🦎0:设置成【shè zhì chéng】功🐴-1:设置失败【bài】
示例【shì lì】💏: ret=tci_setopt(9600,8,"N",1)
4.3 接收数据
ret,recv_buff tci_recv(time_out,hex,len)
功能: 用于 TCI 的读操作
参数🤑: time_out: 超时时间,单位:ms,int类型【lèi xíng】📒 hex: 是否为【shì fǒu wéi】 16 进制数🌌,1 的接收到的数【dào de shù】
据为 16 进制字符格式(默认为【mò rèn wéi】 0),int类型🎧 len: 可选参【kě xuǎn cān】🍤数【shù】,想要获取的💣
长度,在超过【zài chāo guò】 1024 情况下,会自动【huì zì dòng】被设置📰成🤷 1024,int类型【lèi xíng】💉
返回值: ret: 读到的🌸长度(都是转【dōu shì zhuǎn】🧚化为字【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: 需要发送的字【sòng de zì】符【fú】⤵,string类型 hex: 是否为【shì fǒu wéi】🚁 16 进制【jìn zhì】数✋,1 的发送的数据为👌 16 进制【jìn zhì】
字符格式,int类型
返回值: ret: 无 1:发送成【fā sòng chéng】功【gōng】🤤-1:发送失败🛥
示例【shì lì】📷: ret=tci_send("test",0)
4.5 关闭TCI接口
ret tci_close()
功能:用于关闭 TCI 接口
参数: 无
返回值:ret: 无【wú】 大于等【dà yú děng】于0:关闭成【guān bì chéng】⛸功💝-1:关闭失败💭
示例: ret=tci_close()
4.6 清空TCI缓冲区
tci_flush ()
功能:用于清空 TCI 的缓冲区
参数: 无
返回值: nil
示例: ret=tci_flush()
4.7脚本示例
sleep(5)
local open = tci_open()--打开工具端485接口【jiē kǒu】🌆
if (open >= 0) then
local set = tci_setopt(9600,8,"N",1)--配置工💂具端485串口【chuàn kǒu】
if (set >= 0) then
sleep(1)
tci_send("Testing TCI (testing firmware:20190826)")
while (1) do
ret,recv_buff=tci_recv(500,0)--接收【jiē shōu】🏞485数据
sleep(1)
if(ret>0) then
elite_print(recv_buff)
tci_send(recv_buff)--发送【fā sòng】🌤485数据
end
end
else
elite_print("set tci failed.")
end
else
elite_print("open tci failed.")
end
tci_close()