wenluderen
总版主
总版主
  • 最后登录2020-09-21
  • 发帖数688
  • 金币9593枚
  • 贡献勋章0枚
  • 社区居民
  • 社区明星
  • 忠实会员
  • 喜欢达人
  • 原创写手
阅读:362回复:9

步步推进:在VS里面使用VB.net语言建立调用VP的程序

楼主#
更多 发布于:2020-05-09 16:26
步步推进:在VS里面使用VB.net语言建立调用VP的程序。

××××××××
前提:在WIN10 系统里面按照好VP9.0   VS2012.(具体见群内相关帖子)
××
第一步:在VS2012里面建立基于VB,net语言的应用程序。

图片:2020-05-09_160119.jpg





第二步:
要在应用程序中使用VisionPro类,必须引用定义要使用的类的程序集。对于使用QuickBuild应用程序作为其基础的所有VisionPro项目,您将需要引用以下程序集:
Cognex.VisionPro
Cognex.VisionPro.Core
Cognex.VisionPro.QuickBuild.Core
**
右击

图片:2.jpg



图片:3.jpg



图片:4.jpg

图片:5.jpg





××××

第三步:在窗口代码界面,添加导入命名空间

Imports Cognex.VisionPro
Imports Cognex.VisionPro.QuickBuild。


图片:6.jpg







××

至此环境搭建完毕,后续如果还要使用新的VP里面的数据类型,

可以参考上述的方式添加引用,添加导入命名空间,然后定义变量即可
喜欢2

最新打赏:0人

wenluderen
总版主
总版主
  • 最后登录2020-09-21
  • 发帖数688
  • 金币9593枚
  • 贡献勋章0枚
  • 社区居民
  • 社区明星
  • 忠实会员
  • 喜欢达人
  • 原创写手
沙发#
发布于:2020-05-09 16:37
第四步:在Form1类中声明以下三个变量:
Private myJobManager As CogJobManager
Private myJob As CogJob
Private myIndependentJob As CogJobIndependent




第五步:加载QuickBuild应用程序
保存QuickBuild应用程序时,它将存储为VisionPro持久性(.vpp)文件。此文件包含重新创建QuickBuild应用程序所需的所有信息,与您在QuickBuild中保存时完全相同。在大多数情况下,加载已保存应用程序的最方便时间是表单的Load 方法。

选择Form1.vb
[Design]
选项卡,然后双击该窗体以创建在 加载窗体时运行的 Form1_Load方法。
保存QuickBuild应用程序时,VisionPro将其保存为 CogJobManager 对象。该 LoadObjectFromFile 方法加载从文件中保存的VisionPro对象,但它返回它作为一个通用的对象。使用CType 将对象强制转换为适当的类型。

图片:7.jpg



图片:8.jpg




  myJobManager = CType(CogSerializer.LoadObjectFromFile("C:\Program Files\Cognex\VisionPro\Samples\Programming\QuickBuild\advancedAppOne.vpp"), CogJobManager)
        myJob = myJobManager.Job(0)
        myIndependentJob = myJob.OwnedIndependent


        myJobManager.UserQueueFlush()
        myJobManager.FailureQueueFlush()
        myJob.ImageQueueFlush()
        myIndependentJob.RealTimeQueueFlush()


××××××××

图片:9.jpg






wenluderen
总版主
总版主
  • 最后登录2020-09-21
  • 发帖数688
  • 金币9593枚
  • 贡献勋章0枚
  • 社区居民
  • 社区明星
  • 忠实会员
  • 喜欢达人
  • 原创写手
板凳#
发布于:2020-05-09 16:39
小结一下:
1)环境的搭建大致说清楚了, 如果要用到新的VP数据类型,比如 模板匹配,就需要添加这个引用 和命名空间

2)后续的事情,就是这些数据之间的一些操作。

3)上面的都正常了,可以继续看下面的内容。
wenluderen
总版主
总版主
  • 最后登录2020-09-21
  • 发帖数688
  • 金币9593枚
  • 贡献勋章0枚
  • 社区居民
  • 社区明星
  • 忠实会员
  • 喜欢达人
  • 原创写手
地板#
发布于:2020-05-09 16:55
QuickBuild应用程序可以有多个作业(job),但在此示例中,应用程序仅使用一个作业。


通过调用myJobManager.Job(0)您在此QuickBuild应用程序中获得对第一个也是唯一作业(job)的引用。


下一行myJob.OwnedIndependent 获取对CogJobIndependent 对象的引用,该对象提供对有关作业的更多信息的访问。 ( Owned Independent==拥有独立)

图片:10.jpg



图片:11.jpg





图片:2020-05-09_165449.jpg




加载已保存的QuickBuild应用程序的最后一步是确保所有队列都为空。
请记住,加载VisionPro持久性文件会像保存时一样重新创建保存的对象。
刷新所有队列是个好主意,以防万一存储在其中一个队列中。
wenluderen
总版主
总版主
  • 最后登录2020-09-21
  • 发帖数688
  • 金币9593枚
  • 贡献勋章0枚
  • 社区居民
  • 社区明星
  • 忠实会员
  • 喜欢达人
  • 原创写手
4楼#
发布于:2020-05-09 17:04
正常的结束程序:
之前的程序,当你关闭了 窗口,程序还没有被结束。
这是因为:
QuickBuild应用程序 CogJobManager对象在运行时会创建多个线程。关闭CogJobManager很重要
Form1_FormClosing 方法被称为窗体关闭。在这个函数里面调用CogJobManager.Shutdown.方法

图片:1.jpg

图片:2.jpg





图片:3.jpg





×××××××××
然后添加代码



myJobManager.Shutdown()

图片:4.jpg







这样程序在关闭的时候, 就会先把myJobManager 关闭了。

程序也就可以正常结束了




不会卡住
(未完待续)
fengbin200
技术员
技术员
  • 最后登录2020-08-22
  • 发帖数84
  • 金币309枚
  • 贡献勋章0枚
  • 社区居民
  • 忠实会员
5楼#
发布于:2020-05-10 17:44
做项目一般都是加载toolblock,不是job
Lin2016
高级工程师
高级工程师
  • 最后登录2020-09-21
  • 发帖数892
  • 金币5038枚
  • 贡献勋章0枚
  • 社区居民
  • 忠实会员
6楼#
发布于:2020-05-11 08:13
谢谢楼主分享。。。。。。
wenluderen
总版主
总版主
  • 最后登录2020-09-21
  • 发帖数688
  • 金币9593枚
  • 贡献勋章0枚
  • 社区居民
  • 社区明星
  • 忠实会员
  • 喜欢达人
  • 原创写手
7楼#
发布于:2020-05-11 09:47
fengbin200:做项目一般都是加载toolblock,不是job回到原帖
是的, 加载toolblock, Toolblcok里面设定 输入和输出

外部的C#(VB.net)程序和ToolBlcok交互
2bwutengfei
初学者
初学者
  • 最后登录2020-05-20
  • 发帖数68
  • 金币25枚
  • 贡献勋章0枚
8楼#
发布于:2020-05-11 13:32
楼主讲解的比较详细了,入门妥妥的
tzj9987
技术员
技术员
  • 最后登录2020-09-14
  • 发帖数205
  • 金币407枚
  • 贡献勋章0枚
9楼#
发布于:2020-05-26 09:00
用 visionpro的人多不
游客

返回顶部
支付

欢迎打赏,请选择打赏金额

  • 1元
  • 6元
  • 10元
  • 66元
  • 100元

支付即代表同意《本站支付协议》 有疑问请联系客服