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

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

相关文章

springboot集成Lucene的详细指南

《springboot集成Lucene的详细指南》这篇文章主要为大家详细介绍了springboot集成Lucene的详细指南,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以跟随小编一起... 目录添加依赖创建配置类创建实体类创建索引服务类创建搜索服务类创建控制器类使用示例以下是 Spring

Flutter实现文字镂空效果的详细步骤

《Flutter实现文字镂空效果的详细步骤》:本文主要介绍如何使用Flutter实现文字镂空效果,包括创建基础应用结构、实现自定义绘制器、构建UI界面以及实现颜色选择按钮等步骤,并详细解析了混合模... 目录引言实现原理开始实现步骤1:创建基础应用结构步骤2:创建主屏幕步骤3:实现自定义绘制器步骤4:构建U

Windows系统宽带限制如何解除?

《Windows系统宽带限制如何解除?》有不少用户反映电脑网速慢得情况,可能是宽带速度被限制的原因,只需解除限制即可,具体该如何操作呢?本文就跟大家一起来看看Windows系统解除网络限制的操作方法吧... 有不少用户反映电脑网速慢得情况,可能是宽带速度被限制的原因,只需解除限制即可,具体该如何操作呢?本文

CentOS和Ubuntu系统使用shell脚本创建用户和设置密码

《CentOS和Ubuntu系统使用shell脚本创建用户和设置密码》在Linux系统中,你可以使用useradd命令来创建新用户,使用echo和chpasswd命令来设置密码,本文写了一个shell... 在linux系统中,你可以使用useradd命令来创建新用户,使用echo和chpasswd命令来设

电脑找不到mfc90u.dll文件怎么办? 系统报错mfc90u.dll丢失修复的5种方案

《电脑找不到mfc90u.dll文件怎么办?系统报错mfc90u.dll丢失修复的5种方案》在我们日常使用电脑的过程中,可能会遇到一些软件或系统错误,其中之一就是mfc90u.dll丢失,那么,mf... 在大部分情况下出现我们运行或安装软件,游戏出现提示丢失某些DLL文件或OCX文件的原因可能是原始安装包

电脑显示mfc100u.dll丢失怎么办?系统报错mfc90u.dll丢失5种修复方案

《电脑显示mfc100u.dll丢失怎么办?系统报错mfc90u.dll丢失5种修复方案》最近有不少兄弟反映,电脑突然弹出“mfc100u.dll已加载,但找不到入口点”的错误提示,导致一些程序无法正... 在计算机使用过程中,我们经常会遇到一些错误提示,其中最常见的就是“找不到指定的模块”或“缺少某个DL

IntelliJ IDEA 中配置 Spring MVC 环境的详细步骤及问题解决

《IntelliJIDEA中配置SpringMVC环境的详细步骤及问题解决》:本文主要介绍IntelliJIDEA中配置SpringMVC环境的详细步骤及问题解决,本文分步骤结合实例给大... 目录步骤 1:创建 Maven Web 项目步骤 2:添加 Spring MVC 依赖1、保存后执行2、将新的依赖

如何为Yarn配置国内源的详细教程

《如何为Yarn配置国内源的详细教程》在使用Yarn进行项目开发时,由于网络原因,直接使用官方源可能会导致下载速度慢或连接失败,配置国内源可以显著提高包的下载速度和稳定性,本文将详细介绍如何为Yarn... 目录一、查询当前使用的镜像源二、设置国内源1. 设置为淘宝镜像源2. 设置为其他国内源三、还原为官方

最详细安装 PostgreSQL方法及常见问题解决

《最详细安装PostgreSQL方法及常见问题解决》:本文主要介绍最详细安装PostgreSQL方法及常见问题解决,介绍了在Windows系统上安装PostgreSQL及Linux系统上安装Po... 目录一、在 Windows 系统上安装 PostgreSQL1. 下载 PostgreSQL 安装包2.

MySql match against工具详细用法

《MySqlmatchagainst工具详细用法》在MySQL中,MATCH……AGAINST是全文索引(Full-Textindex)的查询语法,它允许你对文本进行高效的全文搜素,支持自然语言搜... 目录一、全文索引的基本概念二、创建全文索引三、自然语言搜索四、布尔搜索五、相关性排序六、全文索引的限制七