本文主要是介绍夜光:车载通讯系统详细设计 (五),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
夜光序言:
黄金榜上。偶失龙头望。明代暂遗贤,如何向。
未遂风云便,争不恣狂荡。
何须论得丧。才子词人,自是白衣卿相。
烟花巷陌,依约丹青屏障。
幸有意中人,堪寻访。
且恁偎红翠,风流事、平生畅。
青春都一饷。
忍把浮名,换了浅斟低唱。
正文:
数据包中内容采用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;
};
这篇关于夜光:车载通讯系统详细设计 (五)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!