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

夜光序言:

 

微微一笑~~

人都是这样,明知道关灯玩手机伤害眼还是惯了在被窝里玩,明知道饮料喝多了会胖还是忍不了,明知道熬夜伤身还是爱晚睡,明知道你不爱我我还是爱你

 

 

 

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

 

正文:微微一笑~~工业领域,必然涉及数据包协议的问题,就拿opentcs和PLC之间通讯来说,就会涉及~

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

 

车载通讯系统数据包协议设计 


通讯系统的作用除了在完成数据的传输之外,还必须完成对数据的管理。因此, 为了方便数据的传输和处理,保证数据传输的可靠性,各通讯模块应对所传输和接收的数据做标准化处理,制定相对应的数据包协议。

 

其中值得注意的是传输数据所用变量单位的统一,目前长度单位用的是毫米,角度单位服务端和地图文件中为度,激光头和 PLC 全部用微度。 

 


 地面控制系统与车载通讯系统通讯协议 


车载通讯系统与地面控制系统之间的通讯采用双向通讯方式,根据 AGV 控制 中的数据特点,我们采用不定长度的数据包进行通讯,协议以字节数组数据包形式发送。数据包主要包括协议头、小车地址 ID、命令、数据段、CRC 校验段、

 
格式如表

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

其中协议头占用 1 个字节,主要是为了识别数据包的起点,方便数据的匹配, 防止系统由于接收错误代码而导致系统错误的问题;小车地址ID段占用1个字节, 主要是帮助服务器分辨数据包是从哪辆 AGV 发送而来,并将要发送的数据精确送 达指定 AGV;

 

指令段占用 1 个字节,其中包含了服务器或客户端根据不同工况需 求而请求对方做出的行为指令,根据不同的指令,对数据段会进行不同的解析和 处理方式,指令功能设计如表所示;

 

考虑到 AGV 的操作指令所需要的操作内 容是不确定的,为了提高通讯效率,采用不定长数据包格式,故数据段中,长度 段用于识别不同指令下对应的操作段长度,占用 1 个字节;操作段提供不同指令 下执行操作所需要的参数信息,占用字节数不定,不同指令下,内容的格式不同;

 

校验段用于校验所传输的数据中是否存在错误,占用两个字节,采用可靠性比较高的 CRC 校验,大大提高系统通信的可靠性;协议尾占用 1 个字节,主要是为了判断数据包的终点。 


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

系统每条指令数据包都分为上行和下行两种状态,

上行是指车载通讯系统向 地面控制系统发数据,

下行是指地面控制系统向车载通讯系统发送数据。

在数据 交互过程中,即使同一指令,其上行与下行数据包数据段内容也会有所差异,所代表的含义也有所区别,如在线(ONL)命令下行时代表地面控制系统询问小车 是否在线,上行时表示车载通讯系统发送确认信息,并将 AGV 实时定位信息与运 行状态信息(车速、电力、负载等情况)上报给地面控制系统。


需要注意的是,AGV 小车即使进入脱机模式,也应继续响应 ONL 命令,以便用户进行实时监控。

 

下面将以路径(PATH)指令为例,对上行、下行数据包差异进行阐述。设小车地址为 00H,省去协议头、协议尾和 CRC 校验三部分,详细数据如表

 

PATH 指令详细数据 

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