康耐视VisionPro脚本BUG修改教程

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

脚本故障查询

在我们编写康耐视的加拨本的时候,可能会产生一些BUG,有写BUG是语法的原因造成,有些BUG是由于其他原因造成的非语法内错误。这种错误可能是由于数据的传输了这些原因造成的。需要调试才能找到BUG的原因,那么需要怎么样才能调试康耐视的脚本你?

语法类错误

康耐视VisionPro脚本BUG修改教程_第1张图片
语法类的脚本错误,一般vp会进行相应的提示,比如简单的分隔符忘记了这些;或者定义的变量不存在l

康耐视VisionPro脚本BUG修改教程_第2张图片
我们只需要将关键字进行修改,就能解决问题;

Line 38, column 65: Error - 未能找到类型或命名空间名称“CogPMAlignToo1l”(是否缺少 using 指令或程序集引用?)
在这里,会提示大家在那一行存在错误。有错误了是没办法进行运行的。

康耐视VisionPro脚本BUG修改教程_第3张图片
当整体我们点击发行没有报错的时候,我们才可以使用脚本;

未知类错误

当我们发行了脚本后,他也没有错误,也没有报警,但是,程序运行出错。例如:

康耐视VisionPro脚本BUG修改教程_第4张图片

康耐视VisionPro脚本BUG修改教程_第5张图片
那这个时候我们检查语法没有问题,逻辑没有出错,怎么办呢?

 mToolBlock.Outputs["patCount"].Value = 0;
    mToolBlock.Outputs["patZuoBiao"].Value =" 0.00,0.00";
    CogPMAlignTool pat = mToolBlock.Tools["CogPMAlig1nTool1"] as CogPMAlignTool;
    // Run each tool using the RunTool function
    foreach(ICogTool tool in mToolBlock.Tools)
      mToolBlock.RunTool(tool, ref message, ref result);
    //工具运行结束后,我们需要判断工具是否正常运行
    //本文由宋小童创建于2020/05/18
    if( pat.RunStatus.Result == CogToolResultConstants.Accept)
    {
      //模板的个数赋值给输出的个数
      mToolBlock.Outputs["patCount"].Value = pat.Results.Count; 
      //模板的第二个坐标的值赋给我们的输出;
      mToolBlock.Outputs["patZuoBiao"].Value = pat.Results[1].GetPose().TranslationX.ToString("0.00") + "," + pat.Results[1].GetPose().TranslationY.ToString("0.00");
   
    }
    else
    {
      
      mToolBlock.Outputs["patCount"].Value = "error";
      mToolBlock.Outputs["patZuoBiao"].Value = "工具运行失败";
    }

语法没有问题,逻辑判断也没有问题。
这个时候我们就需要将这个脚本带入到我们的VS中去运行。
具体操作如下》:

  1. 将这一行的代码的注释去掉,;

康耐视VisionPro脚本BUG修改教程_第6张图片
2. 打开VS,点击调试,然后选择附加到进程;

康耐视VisionPro脚本BUG修改教程_第7张图片
3. 在里面找到我们的脚本

康耐视VisionPro脚本BUG修改教程_第8张图片
4. 运行你的VPP程序,将脚本 “发行”改为“调试 ***
5. 程序进入VS调试中,开始单步运行;
发现我们定义的pat为null

康耐视VisionPro脚本BUG修改教程_第9张图片
仔细一看,我们工具的名字写错了,多了一个1

康耐视VisionPro脚本BUG修改教程_第10张图片
我们在脚本中进行更改,将调试再改回来。代码注释掉。运行

康耐视VisionPro脚本BUG修改教程_第11张图片
我们成工的修改掉了BUG
以上就是我们本次所讲类容。

你可能感兴趣的:(Vision,pro,机器视觉,bug)