机器人上位机软件开发,上位机软件整体框架

典型的机器视觉软件应用中,典型的构造如下

机器人上位机软件开发,上位机软件整体框架

视觉系统基础构造

典型应用中,下位机或者光电传感器触发上位机(视觉软件)拍照,上位机进行拍照、算法处理,处理结果给到下位机或者通过IO的方式。 上图成像系统1、3中图像数据可以通过很多种方式传输,常见的有Gige、USB3.0、1394a1394b、CameraLink、CoaXPress等常见的接口,最常用的网口GiGe和USB3.0接口。图像数据获取成功后算法层面可以使用对应的算法,看个人习惯,我常用halcon、OpenCV或者VisionMaster。

机器人上位机软件开发,上位机软件整体框架

整体框架流程

一个视觉软件(上位机)可以分为上面一个总的架构,UI层和运行流程,UI层是来进行参数配置界面展示数据的,运行流程总的流程组合,线程运行。

通常情况下,UI层我们看到的数据都是通过winform或者qt 拉取对应的控件进行设计,然后把数据保存到数据中心,这个时候数据在内存中,同时也会保存数据到本地,数据的存储格式常见的有xml、ini、数据库存储等方式。UI层设置好数据后,把数据加载到数据中心,数据中心把数据加载到运行流程,流程数据就会跟着改变的参数运行。

运行流程中通常是对流程的组合,初始化连接的时候会把相机、数据库、IO、PLC、MES等各种相关的资源进行连接,初始化OK后,运行取流线程、算法线程、存图线程。

在取流线程中,这里面就会跟下位机打交道了,在这里下位机通过读写寄存器的方式,取流线程会一直读PLC的寄存器来进行获取拍照信号。大概流程我以伪代码表示

while(true)

{

sleep(10);

If(!m_bExit)

Break;

Bool bCapture = m_Plc.ReadCaptureSignal();

If(!bCapture)

Continue;

//拍照

Image img = m_Camera.GetCaptureTimeout();

//其他队列

}

m_plc是封装的一个PLC通信的模块,接口ReadCaptureSignal读取拍照寄存器,如果获取到了就返回值,立即置位寄存器

当然,这只是一个总体的架构,细致的工作还有很多,我大大小小参与过上百个项目,有标准项目、非标项目、还有VisionMaster也有参与过开发,整体来看,只是每个软件复杂度不一样,拆开模块看,都是一样的。

上位机开发需要学什么

简单帮你规划一下吧:

1、C#基础:包括基本数据类型、基本逻辑控制语句、多线程、事件委托、网络(串口)通信

2、至于上位机软件开发,那人机交互界面是必不可少的,建议Winform入门:拖控件、写事件。配合C#语言的网络(串口)通信进行数据读写操作

以上只是入门,其实到这一步想写好一个软件其实还不够,如果只是简单几步就能很好的完成软件设计开发工作,那计算机本科4年学习不是很冤?

所以第3步,需要补充软件工程,信息系统相关的内容。

版权声明:【机器人上位机软件开发,上位机软件整体框架】版权归原作者所有,本文由作者:【王鹏(python工程师)】用户自发贡献上传,该文观点仅代表作者本人,本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任,如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至举报,一经查实,本站将立刻删除,如若转载,请注明出处:https://www.intostarry.com/jrzy/1001.html

(0)
上一篇 2023年11月17日 22:25:46
下一篇 2023年11月18日 21:29:53

相关推荐

发表回复

登录后才能评论