AGV集成整理modbus

编程知识 更新时间:2023-04-17 01:04:28

在modbus通信协议中,NUC作为客户端主动连接AGV进行指令的下发,从而控制AGV进行相应的动作

提示:modbus为一问一答协议,发送一个请求后要等待回复才能发送第二个请求。

通信方式tcp 端口号502,设备默认通信端口

可使用的寄存器信息

寄存器类型

地址范围

读写属性

数据类型

离散输入寄存器

10001-10100

只读

简单的开关量状态,如是否处于急停

输入寄存器

30001-30120

只读

数据类型的状态,如系统状态、电量

线圈寄存器

00001-00100

读写

简单的开关量控制,如暂停运动

保持寄存器

40001-40100

读写

数据类型的控制指令,如移动到站点/位姿

注意:

在AGV通信协议中,将32位整型数字以大端序保存在连续的两个寄存器中。

如:0x11223344

寄存器地址k

寄存器地址k+1

高字节

低字节

高字节

低字节

0x11

0x22

0x33

0x44

离散输入寄存器功能码02及相关信息

寄存器地址

描述

取值

10001

急停是否触发

1表示有效,0表示无效

10002

急停是否可恢复

1表示有效,0表示无效

10003

是否抱闸

1表示有效,0表示无效

10004

是否正在充电

1表示有效,0表示无效

10005

是否处于低功耗模式

1表示有效,0表示无效

10006

是否遇到障碍物减速

1表示有效,0表示无效

10007

是否遇到障碍物暂停

1表示有效,0表示无效

10009

当前是否可以运行移动任务,同时满足以下条件时有效。系统闲置、没有急停、没有解抱闸、不是低电量模式、定位成功、非手动控制模式、没有移动任务或移动任务已经结束、雷达、VSC、MOTOR1、MOTOR2、SRC都正常

1表示有效,0表示无效

10049

放行,即:动作(131,0,0)会等待此信号

1表示有效,0表示无效

输入寄存器功能码04及相关信息

寄存器地址

描述

类型

取值

30001

系统状态

enum/uint16

0x01: 系统正在初始化

0x02: 系统空闲

0x03: 系统出错

0x04: 正在启动定位

0x05: 导航正在初始化

0x06: 导航正在寻路

0x07: 正在等待到达目标位置

0x08: 检测到障碍,减速

0x09: 导航正在重新寻路

0x0A: 遇到障碍暂停运动

0x0B: 无法抵达目标位置

0x0E: 正在初始化执行固定路径

0x0F: 正在等待固定路径执行结束

0x10: 执行固定路径检测到障碍,减速前进

0x11: 执行固定路径遇到障碍暂停运动

0x12: 无法检测到目标站点

30002

定位状态

enum/uint16

0x01: 定位未启动

0x02: 定位正在初始化

0x03: 定位成功

0x04: 正在重定位

0x05: 定位错误,需要重新启动定位

30003

位姿x

int32

单位(毫米)

30005

位姿y

int32

单位(毫米)

30007

位姿yaw

int32

单位(弧度*1000)

30009

位姿置信度

uint16

单位0.01%

30015

当前站点编号

uint16

30016

操作状态

enum/uint16

0x00 状态不可用

0x01 自动控制模式

0x02 手动控制模式

30017

x方向线速度

int16

单位mm/s

30018

y方向线速度

int16

单位mm/s

30019

角速度

int16

单位(1/1000)rad/s

30021

DI状态

uint16

30022

DO状态

uint16

30025

硬件错误码

uint32

30027

系统上一次错误

uint32

30033

电池电压

uint16

单位mV

30034

电池电流

int16

单位mA (负数为充电电流)

30035

电池温度

int16

单位 ℃

30036

电池预计使用时间

uint16

单位 分钟

30037

当前电量百分比

uint16

[1, 100]

30038

当前电池的状态

enum/uint16

0x00: 无效状态

0x02: 正在充电

0x03: 未充电

30039

电池循环次数

uint16

电池充放电循环使用了的次数

30040

电池标称容量

uint16

单位mAh

30041

运动总里程

uint32

单位m

30043

开机总时间

uint32

单位s

30045

开机总次数

uint32

单位次

30047

系统当前时间

uint32

Linux时间戳

30049

IP.1

uint16

对外通信IP地址1

30050

IP.2

uint16

对外通信IP地址2

30051

IP.3

uint16

对外通信IP地址3

30052

IP.4

uint16

对外通信IP地址4

30053

系统主版本号

uint16

30054

系统次版本号

uint16

30055

系统修订版本号

uint16

30057

下视PGV扫描到的二维码ID

int32

需要有下视pgv

30059

下视PGV扫描到的二维码x

int32

30061

下视PGV扫描到的二维码y

int32

30063

下视PGV扫描到的二维码yaw

int32

30065

当前地图名的前两个字节编码

uint16

比如当前地图名为:“1aa”,那么此寄存器的值为:0x3161

30097

当前正在运行的mission id

uint32

30099

Mission运行状态

enum/uint16

0x00: 无效状态

0x02: 任务在队列中,但是又还没有启动的状态

0x03: 正在执行

0x04: 暂停执行

0x05: 执行结束

0x06: 正在取消

30100

Mission执行结果

enum/uint16

0x00: 无效状态

0x01: 任务执行成功

0x02: 任务取消

0x03: 任务执行出错

30101

Mission错误码

uint32

30113

运动状态

enum/uint16

0x00: 无效状态

0x02: 等待开始执行

0x03: 正在执行

0x04: 暂停执行

0x05: 执行结束

0x06: 正在取消

0x08: 交通管制

30114

当前移动任务no

int32

30116

当前移动任务目标站点

uint16

30117

当前路径编号,移动任务运行过程中有效

uint16

30122

移动任务结果

enum/uint16

0x00: 无效状态

0x01: 任务执行成功

0x02: 任务取消

0x03: 任务执行出错

30123

移动任务结果值

uint32

30129

动作任务状态

enum/uint16

0x00: 无效状态

0x02: 等待开始执行

0x03: 正在执行

0x04: 暂停执行

0x05: 执行结束

0x06: 正在取消

30130

当前动作任务no

int32

30132

当前动作任务ID

int32

30134

当前动作任务参数0

int32

30136

当前动作任务参数1

int32

30138

动作任务结果

enum/uint16

0x00: 无效状态

0x01: 任务执行成功

0x02: 任务取消

0x03: 任务执行出错

30139

动作任务结果值

int32

30151

获取铁安顶升机构高度

int16

保持寄存器功能码06(Write Single Register)、16(Write Multiple Registers)

寄存器地址

描述

类型

取值

备注

40001

通过位姿定位x

int32

单位(毫米)

必须一次性设置

40003

通过位姿定位y

int32

40005

通过位姿定位yaw

int32

单位(1/1000)rad

40007

通过站点定位

uint16

40009

自主导航移动到位姿x

int32

单位(毫米)

必须一次性设置

(此接口没有设置任务编号所以默认ID为0)

40011

自主导航移动到位姿y

int32

40013

自主导航移动到位姿yaw

int32

单位(1/1000)rad

40015

自主导航移动到站点

uint16

(此接口没有设置任务编号所以默认ID为0)

40016

设置避障策略

enum/uint16

0x01:

暂停运动直至障碍消失

0x02:

重新规划路径绕过障碍

0x10:

不避障(可能导致事故,谨

慎使用,自由导航有效)

设置避障策略只是暂时保存在modbus模块中

,所有的移动任务都用这个避障策略。

同理在Matrix上显示的避障策略也只是保存在M

atrix上的,所以统一时刻两处的臂章策略可能

不一样。

40017

执行动作任务ID

uint16

必须一次性设置

(此接口没有设置任务编号所以默认ID为0)

40018

执行动作任务参数0

uint16

40019

执行动作任务参数1

uint16

40022

手动控制车辆以Vx线速度运

int16

单位mm/s(前进为正,后退

为负)

必须一次性设置;

需要在手动模式才生效;

每次只执行100ms若要连续运行需要不间断发

40023

手动控制车辆以Vy线速度运

行(保留)

int16

单位mm/s

40024

手动控制车辆以w角速度运

int16

单位(1/1000)rad/s(向左边为正,向右为负)

40026

设置速度级别

uint16

[1, 100]

40027

设置当前站点

uint16

40028

设置扬声器音量

uint16

[1, 100]

40029

设置当前地图

uint16

1、取需要设置地图名字符

串的前两个字节

2、若存在多张地图字符串

的前两个字节相同,则按照

字符排序,取第一张地图。

3、建议用此功能时将地图

名都命名为纯ASCII字符形

例如:

1、需要将当前地图设置为:“12楼地图”,此

处设置的值为:0x3132.

2、若存在两张地图名分别为:“55a”和“55

aa”,当设置0x3535时,设置的当前地图为:

“55a”。

40049

通过位姿强制定位x

int32

单位(毫米)

40051

通过位姿强制定位y

int32

单位(毫米)

40053

通过位姿强制定位yaw

int32

单位(1/1000)rad

40057

自主导航移动到位姿任务编

int32

40059

自主导航移动到位姿x

int32

单位(毫米)

40061

自主导航移动到位姿y

int32

单位(毫米)

40063

自主导航移动到位姿yaw

int32

单位(1/1000)rad

40066

自主导航移动到站点任务编

int32

必须一次性设置

(和40015的效果是一样的,但是这个接口可以

设置任务编号)

40068

自主导航移动到站点

uint16

40070

执行动作任务编号

int32

必须一次性设置

(和40017的效果是一样的,但是这个接口可以

设置任务编号)

40072

执行动作任务ID

int32

40074

执行动作任务参数0

int32

40076

执行动作任务参数1

int32

40097

执行mission任务

uint32

Matrix上能看到mission对

应的ID

写一次此寄存器,将会将一个任务加入mission

队列,推荐modbus用户mission队列不要超过

1,若超过1个时,modbus拿不到mission的结

果,因为上一个结果会被覆盖掉。

线圈寄存器功能码05

寄存器地址

描述

取值

00001

暂停运动

写入0xFF00使能

00002

继续运动

00003

停止运动(取消任务)

00005

停止定位

00007

触发急停

00008

解除急停

00009

启动充电

00010

停止充电

00011

进入低功耗模式

00012

退出低功耗模式

00014

系统复位(重启)

00015

启动手动控制

00016

停止手动控制

00017

以0.495m/s向前移动(每设置一次移动10

0ms,此处是提供给开关专用,不支持

速度配置,推荐使用40022-

40024寄存器进行手动控制)

00018

以0.495m/s向后移动(每设置一次移动10

0ms)

00019

以0.389rad/s向左旋转(每设置一次移动1

00ms)

00020

以0.389rad/s向左旋转(每设置一次移动1

00ms)

00049

放行,即:发送此信号动作(131,0,0)会

结束

00097

暂停mission任务

00098

继续mission任务

00099

取消mission任务

五、指令测试用例

触发急停

00 00 00 00 00 06 01 05 00 07 FF 00

解除急停

00 00 00 00 00 06 01 05 00 08 FF 00

暂停运动

00 00 00 00 00 06 01 05 00 01 FF 00

继续运动

00 00 00 00 00 06 01 05 00 02 FF 00

停止运动

00 00 00 00 00 06 01 05 00 03 FF 00

导航到站点

00 00 00 00 00 06 01 06 9C 4F 00 03

更多推荐

AGV集成整理modbus

本文发布于:2023-04-13 15:28:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/c017ca9bac8eb0ae4e1f06d7642a35da.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:AGV   modbus

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!

  • 72985文章数
  • 14阅读数
  • 0评论数