夜光:车载通讯系统详细设计 (五)

2024-03-17 19:20

本文主要是介绍夜光:车载通讯系统详细设计 (五),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

夜光序言:

 

黄金榜上。偶失龙头望。明代暂遗贤,如何向。

未遂风云便,争不恣狂荡。

何须论得丧。才子词人,自是白衣卿相。

 

烟花巷陌,依约丹青屏障。

幸有意中人,堪寻访。

且恁偎红翠,风流事、平生畅。

青春都一饷。

忍把浮名,换了浅斟低唱。

 

 

 

 

 

 

 

 

 

正文:

 

数据包中内容采用16进制存储,命令对应数据内容中各段字节数也是固定的, 具体格式在此不做详细说明。由于上行时只是用于传递确认路径已走完的信息, 故上行数据包中,只发送路径编号即可。


命令对应数据内容说明如下:

 

● 路径名称: 如:P00001---P00002 即可表示为一个路径编号。理论上可支持 过亿条路径来组成完整的路径表。

● 小车速度:从 0-4 分别代表一个速度档位,0 为静止,4 位高速。具体数 值由小车通过档位设定计算。

● 小车方向: 小车方向分为前进和后退两种,0 代表前进,1 代表后退。

● 目的地点:小车该路径可以到达的停止点编号。

● 执行动作:工作机构动作有可能是一个复杂的指令集,如:叉车抓取某货 位上的货物时。因此需要单独定义机构的动作,故将协议定成字符串指令集,如表所示,在发送时由地面控制系统转为字节数组打包到协议对应的位置,车载 通讯系统按字符数组转为字符串。

 

执行动作指令集 

多条路径时,PATH 指令会分成多次发送,且每次都需要上行确认。直到发完 当前订单内包含的所有路径为止。 

 


 

 

激光头与车载通讯系统通讯协议 


车载通讯系统在与激光头的通讯内容相对简单,只包括部分参数配置命令与 定位信息,数据包格式与发送给地面控制系统的数据包协议格式类似,只减少了小车 ID 这一属性,因为每辆车都配有一个激光头,这里不再另做叙述。对于激光 头通讯模块的主要通讯内容:定位信息的规定如表所示。 

 定位信息规格 

PLC 与车载通讯系统通讯协议 


车载通讯系统与 PLC 的数据交互式通过 ADS 通讯协议提供的系统接口,获取 PLC 控制系统变量的句柄,并读写相应数据。为了保证将地面控制系统的指令与 信息准确传达给 PLC 控制系统,必须设置合理的 PLC 变量,规范变量类型,并保证使用过程中数据的单位保持一致,其在 PLC 中主要定义的变量

 

 PLC 通讯协议主要变量 

其中值得特别说明的是 Flag 标志,其取值范围为 0、1、2,0 表示初始状态, 1 表示写入的路径未执行或正在执行,2 表示路径已执行完。车载通讯系统通过获 取 Flag 标志来获知路径执行情况,以此判断是否继续写入路径。

 

其中 Str_Path1 和 Str_Path2 是自定义结构 PLCPath,其结构定义如表 

 

 PLCPath 结构 

为了方便读写 PLC 路径信息,在车载通讯系统中使用了对应的数据结构,结 构需要与 PLC 路径类型的各字段顺序、类型保持一致,并且字节对齐为 1 字节, 定义如下:

struct PLCPath

{

short Number;

int X1;

int Y1;

int Th1;

int X2;

int Y2;

int Th2;

short Rad;

char Path_Type;   //DIRECT or ARC  

char Dir[81];         //FORWARD or BACKWARD;

 char Ort;         // CW or CCW char Next_P;

char Path;

short Speed;

char Work;

}; 

 

 

 

 

 

 

 

 

 

 

这篇关于夜光:车载通讯系统详细设计 (五)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/819885

相关文章

更改linux系统的默认Python版本方式

《更改linux系统的默认Python版本方式》通过删除原Python软链接并创建指向python3.6的新链接,可切换系统默认Python版本,需注意版本冲突、环境混乱及维护问题,建议使用pyenv... 目录更改系统的默认python版本软链接软链接的特点创建软链接的命令使用场景注意事项总结更改系统的默

在 Spring Boot 中连接 MySQL 数据库的详细步骤

《在SpringBoot中连接MySQL数据库的详细步骤》本文介绍了SpringBoot连接MySQL数据库的流程,添加依赖、配置连接信息、创建实体类与仓库接口,通过自动配置实现数据库操作,... 目录一、添加依赖二、配置数据库连接三、创建实体类四、创建仓库接口五、创建服务类六、创建控制器七、运行应用程序八

MySQL连表查询之笛卡尔积查询的详细过程讲解

《MySQL连表查询之笛卡尔积查询的详细过程讲解》在使用MySQL或任何关系型数据库进行多表查询时,如果连接条件设置不当,就可能发生所谓的笛卡尔积现象,:本文主要介绍MySQL连表查询之笛卡尔积查... 目录一、笛卡尔积的数学本质二、mysql中的实现机制1. 显式语法2. 隐式语法3. 执行原理(以Nes

使用Redis快速实现共享Session登录的详细步骤

《使用Redis快速实现共享Session登录的详细步骤》在Web开发中,Session通常用于存储用户的会话信息,允许用户在多个页面之间保持登录状态,Redis是一个开源的高性能键值数据库,广泛用于... 目录前言实现原理:步骤:使用Redis实现共享Session登录1. 引入Redis依赖2. 配置R

使用Python的requests库调用API接口的详细步骤

《使用Python的requests库调用API接口的详细步骤》使用Python的requests库调用API接口是开发中最常用的方式之一,它简化了HTTP请求的处理流程,以下是详细步骤和实战示例,涵... 目录一、准备工作:安装 requests 库二、基本调用流程(以 RESTful API 为例)1.

在Linux系统上连接GitHub的方法步骤(适用2025年)

《在Linux系统上连接GitHub的方法步骤(适用2025年)》在2025年,使用Linux系统连接GitHub的推荐方式是通过SSH(SecureShell)协议进行身份验证,这种方式不仅安全,还... 目录步骤一:检查并安装 Git步骤二:生成 SSH 密钥步骤三:将 SSH 公钥添加到 github

Python pandas库自学超详细教程

《Pythonpandas库自学超详细教程》文章介绍了Pandas库的基本功能、安装方法及核心操作,涵盖数据导入(CSV/Excel等)、数据结构(Series、DataFrame)、数据清洗、转换... 目录一、什么是Pandas库(1)、Pandas 应用(2)、Pandas 功能(3)、数据结构二、安

Apache Ignite 与 Spring Boot 集成详细指南

《ApacheIgnite与SpringBoot集成详细指南》ApacheIgnite官方指南详解如何通过SpringBootStarter扩展实现自动配置,支持厚/轻客户端模式,简化Ign... 目录 一、背景:为什么需要这个集成? 二、两种集成方式(对应两种客户端模型) 三、方式一:自动配置 Thick

Mysql中设计数据表的过程解析

《Mysql中设计数据表的过程解析》数据库约束通过NOTNULL、UNIQUE、DEFAULT、主键和外键等规则保障数据完整性,自动校验数据,减少人工错误,提升数据一致性和业务逻辑严谨性,本文介绍My... 目录1.引言2.NOT NULL——制定某列不可以存储NULL值2.UNIQUE——保证某一列的每一

Python对接支付宝支付之使用AliPay实现的详细操作指南

《Python对接支付宝支付之使用AliPay实现的详细操作指南》支付宝没有提供PythonSDK,但是强大的github就有提供python-alipay-sdk,封装里很多复杂操作,使用这个我们就... 目录一、引言二、准备工作2.1 支付宝开放平台入驻与应用创建2.2 密钥生成与配置2.3 安装ali