news 2026/6/10 18:57:06

ProfControl简单平面库

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
ProfControl简单平面库

创建TaskInfo类

public class TaskInfo { public IAgv AgvName { get; set; } public IStation PickStation { get; set; } public IStation DropStation { get; set; } public IPocketLines PocketLine { get; set; } public bool IsMovingObstacle { get; set; } // 是否正在移动障碍物 public TaskInfo(IAgv agv, IStation PickStation, IPocketLines pocketLine = null) { this.AgvName = agv; this.PickStation = PickStation; this.PocketLine = pocketLine; this.IsMovingObstacle = false; agv.Tag = this; } }

初始化AGV和站点,为站点和AGV分配全局属性

public void InitProcess() { API.StartVirtualSim(); API.QuickGProperty<IStation, bool>("取货点", Dispatch.PPT.PropertyDetail.PropertyCtrlEnum.CheckBox, true); API.QuickGProperty<IStation, bool>("放货点", Dispatch.PPT.PropertyDetail.PropertyCtrlEnum.CheckBox, true); API.QuickGProperty<IAgv, string>("小车状态", Dispatch.PPT.PropertyDetail.PropertyCtrlEnum.TextBox, true); API.QuickGProperty<IAgv, string>("待命点", Dispatch.PPT.PropertyDetail.PropertyCtrlEnum.TextBox, true); API.Agvs.Foreach(agv => { agv.ShowInMap("小车状态", true); agv.SetValue("小车状态", "空闲"); agv.TakeAll(); agv.Tag = null; agvMovingStatus[agv] = false; if (agv.GetValue<string>("待命点") != null) { agv.GoTo(agv.GetValue<string>("待命点")); } }); var 取货点 = API.Stations.Where(x => x.GetValue<bool>("取货点")).ToList(); 取货点.ForEach(sta => { sta.Tag = null; }); var 放货点 = API.Stations.Where(x => x.GetValue<bool>("放货点")).ToList(); foreach (var sta in 放货点) { sta.TakeAll(); sta.Tag = null; } }

随机生成货物且生成障碍货物

//生成货物 public void SimProduce() { var allCargoStas = API.Stations.Where(x => x.GetValue<bool>("取货点")).ToList(); API.ClearCargos(allCargoStas.SelectMany(x => x.CargoAreas).ToList()); API.RandomGenerateCargoInfo(3); API.RandomGenerateContainerInfo(1, true, false, false); var storageStas = allCargoStas; var pocketLines = storageStas.SelectMany(x => x.BelongPocketLines).Distinct().ToList(); var pocketLineStas = pocketLines.SelectMany(x => x.OrderStations).Distinct().ToList(); // 生成货物_1(目标货物) var haveCargoStas = (int)(pocketLineStas.Count * initCargosPercent); var rand = new Random(); while (haveCargoStas > 0) { var pocketLine = pocketLines[rand.Next(pocketLines.Count)]; var catchOne = false; foreach (var sta in pocketLine.OrderStations) { if (sta.GetValue<bool>("取货点") && sta.IsEmpty()) { var container = sta.CargoAreas.FirstOrDefault().ContainerPlace("托盘_0"); container.CargoPlace("货物_1", 1); catchOne = true; Tools.trace($"生成货物_1 在 {sta.Mark}"); break; } } if (catchOne) haveCargoStas--; } // 生成障碍物货物(货物_2),放在货物_1前面,造成障碍 var obstacleCount = (int)(pocketLineStas.Count * 0.2); while (obstacleCount > 0) { var pocketLine = pocketLines[rand.Next(pocketLines.Count)]; var catchOne = false; foreach (var sta in pocketLine.OrderStations) { if (sta.GetValue<bool>("取货点") && sta.IsEmpty()) { var container = sta.CargoAreas.FirstOrDefault().ContainerPlace("托盘_0"); container.CargoPlace("货物_2", 1); catchOne = true; Tools.trace($"生成障碍物货物_2 在 {sta.Mark}"); break; } } if (catchOne) obstacleCount--; } }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 18:56:13

如何在5分钟内快速解锁VMware的macOS支持:终极完整指南

如何在5分钟内快速解锁VMware的macOS支持&#xff1a;终极完整指南 【免费下载链接】unlocker VMware Workstation macOS 项目地址: https://gitcode.com/gh_mirrors/unloc/unlocker 你是否曾经想在Windows或Linux电脑上体验macOS系统&#xff0c;却发现VMware中根本没…

作者头像 李华
网站建设 2026/6/10 18:52:44

PostgreSQL明明已经跑起来了,为什么同事还是连不上?

前言 第一次在本地搭 PostgreSQL 的时候&#xff0c;很多人都会有一种成就感。 数据库启动成功了。 用户创建好了。 数据表也建起来了。 本机连接测试正常。 甚至局域网里的其他设备也能顺利访问。 看起来一切都很完美。 但项目真正开始协作的时候&#xff0c;问题往往…

作者头像 李华
网站建设 2026/6/10 18:47:36

从“思考”到“行动”:具身智能技术突破与未来应用全景分析

当AI不再局限于屏幕&#xff0c;而是拥有“身体”去感知和改变物理世界&#xff0c;一场更深远的智能革命正在发生。 2026年6月&#xff0c;具身智能已成为继大语言模型之后最受瞩目的技术高地。与依赖云端数据处理的传统AI不同&#xff0c;具身智能强调智能体通过物理实体与环…

作者头像 李华
网站建设 2026/6/10 18:44:28

VOOHU沃虎:SFP笼子的屏蔽效能怎么看?选单层还是双层?

摘要&#xff1a;SFP笼子的屏蔽效能直接决定光模块接口的EMI合规性与信号完整性。笼体材料、结构完整性、接地设计是决定屏蔽能力的三大支柱&#xff0c;而单层与双层笼子的选择不仅关乎端口密度&#xff0c;更涉及散热叠加与串扰控制的系统权衡。本文从电磁屏蔽的工程原理出发…

作者头像 李华
网站建设 2026/6/10 18:40:02

2026年9月PMP考试倒计时90天:拒绝躺平,读完这篇可以直接开干!

不灌鸡汤&#xff0c;不拖泥带水&#xff0c;直接给你一张“备战军火库”清单一、最后一次紧急通知——这不是演习&#xff0c;这是“末班车”&#xff01;先给你们甩一个今日特急通知&#xff1a;2026年9月12日&#xff0c;是中国大陆地区PMP考试基于旧考纲的谢幕演出。从2026…

作者头像 李华