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

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

相关文章

C#实现系统信息监控与获取功能

《C#实现系统信息监控与获取功能》在C#开发的众多应用场景中,获取系统信息以及监控用户操作有着广泛的用途,比如在系统性能优化工具中,需要实时读取CPU、GPU资源信息,本文将详细介绍如何使用C#来实现... 目录前言一、C# 监控键盘1. 原理与实现思路2. 代码实现二、读取 CPU、GPU 资源信息1.

在C#中获取端口号与系统信息的高效实践

《在C#中获取端口号与系统信息的高效实践》在现代软件开发中,尤其是系统管理、运维、监控和性能优化等场景中,了解计算机硬件和网络的状态至关重要,C#作为一种广泛应用的编程语言,提供了丰富的API来帮助开... 目录引言1. 获取端口号信息1.1 获取活动的 TCP 和 UDP 连接说明:应用场景:2. 获取硬

JAVA系统中Spring Boot应用程序的配置文件application.yml使用详解

《JAVA系统中SpringBoot应用程序的配置文件application.yml使用详解》:本文主要介绍JAVA系统中SpringBoot应用程序的配置文件application.yml的... 目录文件路径文件内容解释1. Server 配置2. Spring 配置3. Logging 配置4. Ma

2.1/5.1和7.1声道系统有什么区别? 音频声道的专业知识科普

《2.1/5.1和7.1声道系统有什么区别?音频声道的专业知识科普》当设置环绕声系统时,会遇到2.1、5.1、7.1、7.1.2、9.1等数字,当一遍又一遍地看到它们时,可能想知道它们是什... 想要把智能电视自带的音响升级成专业级的家庭影院系统吗?那么你将面临一个重要的选择——使用 2.1、5.1 还是

高效管理你的Linux系统: Debian操作系统常用命令指南

《高效管理你的Linux系统:Debian操作系统常用命令指南》在Debian操作系统中,了解和掌握常用命令对于提高工作效率和系统管理至关重要,本文将详细介绍Debian的常用命令,帮助读者更好地使... Debian是一个流行的linux发行版,它以其稳定性、强大的软件包管理和丰富的社区资源而闻名。在使用

Ubuntu系统怎么安装Warp? 新一代AI 终端神器安装使用方法

《Ubuntu系统怎么安装Warp?新一代AI终端神器安装使用方法》Warp是一款使用Rust开发的现代化AI终端工具,该怎么再Ubuntu系统中安装使用呢?下面我们就来看看详细教程... Warp Terminal 是一款使用 Rust 开发的现代化「AI 终端」工具。最初它只支持 MACOS,但在 20

Java操作PDF文件实现签订电子合同详细教程

《Java操作PDF文件实现签订电子合同详细教程》:本文主要介绍如何在PDF中加入电子签章与电子签名的过程,包括编写Word文件、生成PDF、为PDF格式做表单、为表单赋值、生成文档以及上传到OB... 目录前言:先看效果:1.编写word文件1.2然后生成PDF格式进行保存1.3我这里是将文件保存到本地后

windows系统下shutdown重启关机命令超详细教程

《windows系统下shutdown重启关机命令超详细教程》shutdown命令是一个强大的工具,允许你通过命令行快速完成关机、重启或注销操作,本文将为你详细解析shutdown命令的使用方法,并提... 目录一、shutdown 命令简介二、shutdown 命令的基本用法三、远程关机与重启四、实际应用

Debian如何查看系统版本? 7种轻松查看Debian版本信息的实用方法

《Debian如何查看系统版本?7种轻松查看Debian版本信息的实用方法》Debian是一个广泛使用的Linux发行版,用户有时需要查看其版本信息以进行系统管理、故障排除或兼容性检查,在Debia... 作为最受欢迎的 linux 发行版之一,Debian 的版本信息在日常使用和系统维护中起着至关重要的作

Python中的可视化设计与UI界面实现

《Python中的可视化设计与UI界面实现》本文介绍了如何使用Python创建用户界面(UI),包括使用Tkinter、PyQt、Kivy等库进行基本窗口、动态图表和动画效果的实现,通过示例代码,展示... 目录从像素到界面:python带你玩转UI设计示例:使用Tkinter创建一个简单的窗口绘图魔法:用