# Agv调度系统通用版
#### 介绍
基于.net 6.0编写的版本,区别于之前的java版本,本系统可以直接查看项数据,不用侦听Redis,对内存要求低。
#### 项目说明
WinFormsApp是基于winform+BlaorWebView的,本文撰写时blazorwebview尚处于预览版,只是一个demo,要换成web也可以。不建议IIS,可直接用kestrel!!
Dispatch 为核心类库,目前是.net6.0,有兴趣的小伙伴可以自己改为.net framework4.8(语法上有小差异),或者配合kestrel,只要Launch对象作为单例不被框架释放即可
#### Dispatch类库结构简要说明
##### DispatchData
所有的数据和算法核心,AGV调度也算高并发项目,写入高频,数据库容易达到写入瓶颈,不建议使用数据库来做数据的保存,可使用Redis和Mongodb等内存数据库来缓存实时数据,用于程序更新或者崩溃重启后的场景恢复。
##### Model
数据库基本信息的映射类,可自己进行扩展和修改,不管你使用ef,还是sqlsuger,还是freesql,还是dapper,或者mongodb,都可以。
##### Receive
这一块涉及的方面比较多,AGV消息的解析和指令(AgvEvent),端口的侦听(***Listener),各设备的解析和指令(IDeviceEvent是事件的定义,DemoDevice是示例类)
Dispatch开头的是协议解析后的具体的处理。
之前在使用java版本时使用的是spring框架,每条消息进入时都创建线程去处理,线程池和gc的开销都不低,一个线程从处理到反馈,可能耗时超过了两条消息之间的时间差。
.net的异步操作在这一块很有性能优势
##### DataInit
初始数据和场景恢复类,可自行扩展
##### Config
一些常量的定义,比如AGV的尺寸,与前方AGV保持的距离等。
#### AGV业务描述说明
有图有真相
![输入图片说明](WinFormsApp/agv%E6%96%B0%E7%89%88%E6%9C%AC.png)
1. 左上角是Marker和Route之间的关系,不同的厂商有不同的说明,有些叫点位和路线、路径。两个marker之间连起来的就是Route。虚线框为区域,相当于公路的十字路口,只要AGV存在相碰撞的可能,就要划这样的区域。区域不一定是矩形,本程序支持多边形,只要区域不存在重叠。
2. 中间大图是AGV处理大致逻辑
3. 传输坞,也可以叫机台,反正是各厂商的设备。但是一台设备存在多个料口的情况,这里指料口。机台发送过来的协议里面,必须体现是哪个料口,结合IP就能知道是哪个口。之前的项目就遇到过20个设备40个料口共用2个IP的情况。
模式和之前java版本不一样。之前是调度为主动,各机台被动。
之前的流程:
AGV到达=>申请传输直到传输坞允许=>转动电机=>传输完成后申请离开=>传输坞同意后离开
现在的流程:
AGV到达传输坞并通知传输坞=>传输坞满足进出料的时候询问AGV是否还在=>传输坞要求AGV转动电机=>AGV转动电机=>(传输完成后告之传输坞)=>传输坞通知AGV离开
从PLC工程师的角度和传输控制上,现在的流程更合理,机台满足收发料的时候直接给消息AGV配合就行,AGV处于被动模式,事故责任清晰。
4. 前方区域内检测有无其它AGV,有则需要停,没有就继续进行。这是之前java版本里面没有的。这一块知识涉及三角函数和线性代数,有兴趣的可以去研究研究
#### 其它
代码中存在大量的注释,也存在方法(不确定性),小伙伴们自己去增减。个人建议现场linux + nginx + asp.net core + supervisor的方式部署,更新程序相当的方便(不用停止程序再手动启动),如果能上AMD的CPU会更好(CPU核多还便宜)
如果是windows10,也不坏,不过记得关闭自动更新。能上asp.net core就上asp.net core,对外开放数据接口相当的方便。
项目中没有存日志,如果需要日志的,推荐mongodb和seq,真的不要太简单太爽。ELK什么的,真的不是首选。
切记:网络不好的车间,先保证网络的稳定性。网络越好工作压力越小。
没有合适的资源?快使用搜索试试~ 我知道了~
AGV地图自动生成系统 DispatchSystem-master
共72个文件
cs:29个
css:4个
razor:4个
需积分: 5 1 下载量 55 浏览量
2023-08-14
09:22:49
上传
评论
收藏 391KB RAR 举报
温馨提示
能够根据客户需求自动生成AGV的地图,在VS2010下调试完毕,能够正常运行 简单得C# AGV地图编辑器,可以根据需求制作AGV运行地图,用到GDI和自定义控件技术,属性框反射修改,自定义方法,事件,属性等等.
资源推荐
资源详情
资源评论
收起资源包目录
Agv DispatchSystem-master.rar (72个子文件)
AgvDispatchSystem-master
.gitattributes 2KB
WinFormsApp
Form1.Designer.cs 4KB
FrmDevice.Designer.cs 2KB
wwwroot
css
bootstrap
bootstrap.min.css 159KB
bootstrap.min.css.map 439KB
open-iconic
font
css
open-iconic-bootstrap.min.css 9KB
fonts
open-iconic.woff 15KB
open-iconic.ttf 27KB
open-iconic.otf 21KB
open-iconic.svg 54KB
open-iconic.eot 28KB
ICON-LICENSE 1KB
FONT-LICENSE 4KB
README.md 3KB
site.css 3KB
app.css 623B
index.html 754B
AreaList.razor 2KB
FrmDevice.cs 568B
Form1.cs 776B
obj
WinFormsApp.csproj.nuget.g.targets 294B
WinFormsApp.csproj.nuget.cache 150B
project.assets.json 3KB
WinFormsApp.csproj.nuget.g.props 1KB
FrmArea.Designer.cs 2KB
DeviceList.razor 2KB
agv新版本.png 178KB
_Imports.razor 125B
FrmArea.resx 3KB
Program.cs 527B
FrmDevice.resx 3KB
FrmArea.cs 563B
WinFormsApp.csproj 735B
AgvList.razor 326B
Form1.resx 3KB
AgvDispatchSystem.sln 2KB
.vs
AgvDispatchSystem
v15
.suo 29KB
Server
sqlite3
storage.ide-shm 32KB
storage.ide 4KB
storage.ide-wal 201KB
db.lock 0B
DesignTimeBuild
.dtbcache 276B
.gitignore 6KB
README.md 4KB
Dispatch
Launch.cs 925B
Utils
Tools.cs 3KB
obj
Dispatch.csproj.nuget.g.props 1KB
Dispatch.csproj.nuget.cache 149B
project.assets.json 1KB
Debug
net6.0
Dispatch.assets.cache 88B
Dispatch.csproj.nuget.g.targets 294B
Model
RouteModel.cs 606B
MarkerModel.cs 753B
DeviceModel.cs 1KB
WarningAreaModal.cs 419B
AgvModel.cs 370B
Receive
DeviceListener.cs 1KB
AgvEvent.cs 2KB
DemoDevice.cs 2KB
IDeviceEvent.cs 578B
DispatchAgv.cs 15KB
DispatchDevice.cs 4KB
ReceiveData.cs 2KB
AgvListener.cs 2KB
DataInit.cs 7KB
DispatchData
RouteDataSet.cs 1KB
WarningAreaDataSet.cs 12KB
DeviceDataSet.cs 11KB
AgvDataSet.cs 6KB
MarkerDataSet.cs 5KB
Dispatch.csproj 243B
Config.cs 645B
共 72 条
- 1
资源评论
ittxl
- 粉丝: 3
- 资源: 11
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功