EC机器人RS485通讯协议

2025-01-17

1.  控制柜485

艾利特机器人EC系列支持RS485通讯,用户可以通过将 RS485 设备连接到图 7-27 中所示的连接器来从控制柜执行串行通信。为了能在控制柜中设置 RS485 连接器,必须拆掉串口连接 器,并将 RS485 线焊接到黑色连接器背面的金属触点,如图 7-28 所示。黑色塑料装置的正反 面分别标有 PIN“1 3 5”和“2 4 6”。PIN3 应焊接到 RS485B,PIN4 应焊接 到 RS485A。该 接口支持的最大波特率为 500Kbps。

2.  工具IO485

艾利特机器人同样支持末端工具485通讯,当需要使用末端 RS485 接口与执行器通信时, 注意从机器人控制器上写入发送数据到数据在末端工具 I/O 的 RS485上开始发送,延迟范围为 2ms 到 4ms。 从末端工具 I/O 的 RS485 上开始接收数据到机器人控制器收到数据并开始处理,延迟范 围为 2ms 到4ms。本篇文章介绍控制柜实现485通讯方式,工具端485查询脚本手册。

下表为RS485 接口的可用设置


3.  控制柜脚本指令

3.1 打开 485 接口

ret rs485_open ()

功能: 用于打开 485 接口

参数: 无

返回值: ret: 大于等于 0:打开成功 -1:打开失败

示例: ret= rs485_open ()

3.2 设置 485 串口配置

ret rs485_setopt (speed ,bits ,event ,stop)

功能: rs485_setopt 用于设置 485 串口的配置

参数: speed: 波特率,int类型

bits: 数据长度 7/8,int类型

event: 奇偶校验“O”,“N”,“E”,int类型

stop: 停止位 1/2,int类型

返回值: ret: 大于等于 0:设置成功 -1:设置失败

示例: ret= rs485_setopt (9600 ,8 ,"N",1)

3.3 接收数据

ret , recv_buff rs485_recv (time_out ,hex ,len)

功能: 参数: rs485_recv 用于 485 的读操作

time_out: 超时时间,单位:ms,int类型

hex: 是否为 16 进制数,1 的接收到的数据为 16 进制字符格式(默认为 0),int类型

len: 可选参数,想要获取的长度,在超过 1024 情况下,会自动被设置成 1024,int类型

返回值: ret: 读到的长度(都是转化为字符长度) 0,-1:读取失败 recv_buff: 获取数据 示例: ret , recv_buff = rs485_recv (100 ,0 ,512)

3.4 发送数据

ret rs485_send (buff ,hex)

功能: rs485_send 用于 485 的发送操作

参数: buff: 需要发送的字符,string类型

hex: 是否为 16 进制数,1 的发送的数据为 16 进制字符格式,int类型

返回值: ret: 1:发送成功 -1:发送失败

示例: ret= rs485_send ("test",0)

3.5 关闭 485 接口

ret rs485_close ()

功能: rs485_close 用于关闭 485 接口

参数: 无

返回值: ret: 大于等于 0:关闭成功 -1:关闭失败

示例: ret= rs485_close ()

3.6 脚本示例

sleep(1)

open = rs485_open () --打开控制柜485接口

if(open >= 0) then

set = rs485_setopt (9600 ,8 ,"N",1) --配置控制柜485串口

elite_print ("set = ", set)

if(set >= 0) then

while(1) do

repeat

ret , recv_buff = rs485_recv (500 ,0)--接收485数据

sleep(0.001)

until(ret ~=0)

elite_print("receive data :",recv_buff)

rs485_send ( recv_buff ) --发送485数据

end

sleep(0.01)

end

end

rs485_close ()

4.工具IO脚本指令

4.1 打开末端485接口

ret tci_open()

功能: 用于打开末端485接口

参数:无

返回值:ret:大于等于0:打开成功,-1:打开失败

备注:无

示例: ret: ret=tci_open()

4.2 设置TCI串口的配置

ret tci_setopt(speed,bits,event,stop)

功能: 用于设置 TCI 串口的配置

参数: speed: 波特率,int类型 bits: 数据长度 8,int类型 event: 奇偶校验“O”,“N”,“E”,

string类型 stop: 停止位 1/2,int类型

返回值:ret: 大于等于0:设置成功-1:设置失败

示例: ret=tci_setopt(9600,8,"N",1)

4.3 接收数据

ret,recv_buff tci_recv(time_out,hex,len)

功能: 用于 TCI 的读操作

参数: time_out: 超时时间,单位:ms,int类型 hex: 是否为 16 进制数,1 的接收到的数

据为 16 进制字符格式(默认为 0),int类型 len: 可选参数,想要获取的

长度,在超过 1024 情况下,会自动被设置成 1024,int类型

返回值: ret: 读到的长度(都是转化为字符长度)0,-1:读取失败

recv_buff: 获取数据

示例: ret,recv_buff=tci_recv(100,0,512)

4.4 发送数据

ret tci_send(buff,hex)

功能: 用于 TCI 的发送操作

参数:buff: 需要发送的字符,string类型 hex: 是否为 16 进制数,1 的发送的数据为 16 进制

字符格式,int类型

返回值: ret: 无 1:发送成功-1:发送失败

示例: ret=tci_send("test",0)

4.5 关闭TCI接口

ret tci_close()

功能:用于关闭 TCI 接口

参数: 无

返回值:ret: 无 大于等于0:关闭成功-1:关闭失败

示例: ret=tci_close()

4.6 清空TCI缓冲区

tci_flush ()

功能:用于清空 TCI 的缓冲区

参数: 无

返回值: nil

示例: ret=tci_flush()

4.7脚本示例

sleep(5)

local open = tci_open()--打开工具端485接口

if (open >= 0) then

local set = tci_setopt(9600,8,"N",1)--配置工具端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数据

sleep(1)

if(ret>0) then

elite_print(recv_buff)

tci_send(recv_buff)--发送485数据

end

end

else

elite_print("set tci failed.")

end

else

elite_print("open tci failed.")

end

tci_close()




download-669.svg comicon14.svg

电话咨询

download-397.svg comicon15.svg

免费试用

Vector.svg Frame.svg

微信小程序

img1.jpg

微信小程序

准备好突破增长瓶颈,开启智能制造了吗?
了解我们的机器人如何帮助您的业务增长
欢迎下载艾利特机器人资料

我已阅读并同意艾利特《隐私政策》《法律声明》

我已知晓并同意艾利特通过电子邮件发送相关资料

提交