有人说VisionPro的自由度不够高,我想说,那是他还没理解到精髓。举个例子,现在有一个使用visionpro的项目,桌面程序已经被别人写死,只输出工具块的三个值,分别是outA,outB,outC。现在由于业务调整,需要将outC改成输出判断结果合格与不合格。在不修改程序的情况下,使用visionpro实现功能。
下面以这个例子将一下VisionPro使用toolgroup工具组创建自定义小工具。
创建工具
首先在项目原有的visionpro识别流程中,新增一个toolgroup工具,打开它,写脚本。
声明变量
为后面实现,声明必须变量。
private double r;private String Str,jg;private object rt;
创建输入输出终端
在工具组脚本中找到Initialize
方法,然后在base.Initialize(host)
后面写创建终端代码,如下:
base.toolGroup.DefineScriptTerminal(r, "R", true); base.toolGroup.DefineScriptTerminal(Str, "Str", false);
第一个参数是变量名,第二个参数是终端名,第三个参数控制是输出还是输入,true表示输入,false表示输出。
实现逻辑
在GroupRun
方法中写你的业务逻辑,这里以上面举得例子为例。
获取终端值
base.toolGroup.GetScriptTerminalData("R", ref rt);
判断逻辑
jg="合格"; double c=2*3.14*(double)rt; if(c>100){ jg="不合格"; }
设置终端值
base.toolGroup.SetScriptTerminalData("Str",jg));
保存工具
回到visionpro中,右键我们刚刚使用的工具组,重命名为自己喜欢的名字。右键保存模板,然后就可以在工具箱中看到了,下次使用直接拖出来就行了。
最后,回到我们最初的问题,不修改程序,通过visionpro完成我们业务的变化。将上面创建的小工具的输出值,连接到工具块的输入即可。
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/241931.html