项目实战 | c#与VisionPro联合编程添加通信功能
Posted 属老鼠的猫
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了项目实战 | c#与VisionPro联合编程添加通信功能相关的知识,希望对你有一定的参考价值。
【往期经典】
视觉软件通常需要外部触发,并将结果发送给外部设备。具备通信功能才算是个可用的软件。
通信功能在以前的文章里面已经说过了()。
一般在视觉程序中集成服务器功能。TCP服务器运行在一个独立的线程上,收到消息会触发事件。在服务器的事件响应方法中添加运行图像采集处理程序就能实现远程触发功能。
1、接收消息,触发拍照
btnAcquire_Click方法是主界面上的“单张图像”按钮的单击响应方法。
它执行的是采集图像和处理图像。
前文触发相机是点击“单张按钮”实现的,TCP服务器收到消息后也让它点击这个按钮,如下所示添加修改通信代码。添加“btnAcquire_Click(null,null);”。
private void myServer_ReceiveMsg(object sender, CylControlLibrary.Helper.MessageEventArgs e)
{
Console.WriteLine("收到消息:"+e.MessageString);
btnAcquire_Click(null,null);
}
2、发送消息,返回结果
算法运行完成有个事件,前文在这里关联了更新界面的方法,可以再关联一个发送结果的方法。
algoFindBlobs.OnResultChanged += updateUI;
algoFindBlobs.OnResultChanged += sendResult;
使用TCP的Send方法发送结果给客户端设备。
private void sendResult(object sender, string str)
{
myServer.Send(str);
}
3、其他
到这里,一个完整的视觉软件算是完成了。这里的主题是讲c#调用VisionPro,所有通信说得很少。虽然有点简单,但是再复杂也就这些套路。
比如还要集成数据库功能,跟集成TCP服务器是一样的。在发送结果处写上保存数据的方法就可以了。至于数据库模块怎么写?以前的内容里面应该有,您受累往前翻翻。
突然发现,微信又改版了。点赞还是在看,戳一下再走呗,老铁~
以上是关于项目实战 | c#与VisionPro联合编程添加通信功能的主要内容,如果未能解决你的问题,请参考以下文章
Halcon与C#联合编程:使用S7协议实现机器视觉上位机与西门子PLC联动