纯VM一些让操作 解放自己

首先:这篇是集前面好几条文章的总结.

包含内容:

1.纯VM获取到自己的程序运行位置和程序名.

2.通过自己运行位置获取程序同级目录.

3.在同级目录下创建和程序名相同后面外加几个字符的文件夹.(方便配置文件 和存图放在该位置)

4.图像处理的结果统筹脚本.

5.运行计数.(输入总OK/NG可以输出运行计数,OK计数/NG计数/良品率).

6.路径计算,输入OK/NG可以输出文件路径和文件名.配置文件夹下以年月日OK/NG分开存图.

文字描述没有多少感受得实际操作才能体会到具体的东西.

开始:打开VisionMaster/4.3/4.4都可以,新建一个方案,保存到一个位置.

我保存的是:

路径:
C:\Users\Administrator\Desktop\3.21
文件名:
QROCRCheck01.sol
完整路径就是
C:\Users\Administrator\Desktop\3.21\QROCRCheck01.sol

虽然通过保存路径和文件名可以确认配置文件夹路径但是不灵活.

为什么不灵活呢?

假设:QROCRCheck01.sol复制到另外一个路径运行,一般情况VM手动配置的存图路径还在原来的地方.它是一个绝对路径 而不是相对路径.

要解决这个问题,就得实时获取sol文件的路径(加载的时候判断一次即可).

开始:

获取sol文件需要用到全局脚本:

using System.IO;
using VM.Core;
using VM.PlatformSDKCS;

		//using System.IO;
	    public int GetSOLtoGlobalstr()
        {
        	//m_operateHandle 二次开发SDK操作句柄
            if (m_operateHandle == IntPtr.Zero) {return ImvsSdkPFDefine.IMVS_EC_NULL_PTR;}
			string filePath;// 获取当前VM 的.sol文件 路径(完整) @"C:\Users\Administrator\Desktop\获取方案路径.sol"
			filePath = VmSolution.Instance.SolutionPath;// 流程输入需要设置对应的 变量
			//全局变量参数设置    
			string DirPath                  = System.IO.Path.GetDirectoryName            (filePath);// 目录路径(完整)       "C:\Users\Administrator\Desktop"
			string SolName                  = System.IO.Path.GetFileNameWithoutExtension (filePath);// 文件名(不包括扩展名)"获取方案路径"
			string fileName                 = System.IO.Path.GetFileName                 (filePath);// 文件名(包括扩展名)  "获取方案路径.sol"			
			string extension                = System.IO.Path.GetExtension                (filePath);// 扩展名 		       ".sol"		
			string FldPath                  = DirPath+"\\"+SolName+"__VM43_Pram";                   // 用于创建 sol同级目录文件夹"C:\Users\Administrator\Desktop\获取方案路径__VM43_Pram"
			if (!Directory.Exists(FldPath))// 检查文件夹是否存在
	        {
	            Directory.CreateDirectory(FldPath);// 如果文件夹不存在,则创建它
		    }
			string CfgPath               = FldPath+"\\"+"VMCFG.ini"; //配置文件路径			
			SetGlobalVariableStringValue("SOLName",filePath);//
			SetGlobalVariableStringValue("DirPath",DirPath);
			SetGlobalVariableStringValue("SolName",SolName);
			SetGlobalVariableStringValue("FldPath",FldPath);
			SetGlobalVariableStringValue("CfgPath",CfgPath);
			return 0;
        }
		
		//using VM.Core;
		//using VM.PlatformSDKCS;
	    public int Getpath(string LCName="流程1",string INstrName="SOLPath0")
        {
			VmProcedure pro1 = (VmProcedure)VmSolution.Instance[LCName];
	        if (pro1 != null)
	        {
	            ProcedureParam proParam = pro1.ModuParams;
	            if (proParam != null)
	            {
	                string filePath;// 获取当前VM 的.sol文件 路径(完整) @"C:\Users\Administrator\Desktop\获取方案路径.sol"
	                filePath = VmSolution.Instance.SolutionPath;// 流程输入需要设置对应的 变量
	                proParam.SetInputString(INstrName, new InputStringData[] { new InputStringData() { strValue = filePath} });//设置流程输入string    流程输入 "SOLPath"	
	                
	              //  int xxd= SetGlobalVariableStrignValue ("SOLName",  filePath);
	                
	            }
	        }
            return 0;
        }

第一个函数是通过流程输入变量传入字符串参数的.第二个函数是通过全局变量传的.

实际就是一句话:

using System.IO;
using VM.Core;
using VM.PlatformSDKCS;
filePath = VmSolution.Instance.SolutionPath;
#这句 会获取程序的全部路径
得到一个字符串是C:\Users\Administrator\Desktop\3.21\QROCRCheck01.sol

 在第一次运行的时候执行:当然每次执行意义不大.

我还是放出完整的全局脚本>





using System.IO;
using VM.Core;
using VM.PlatformSDKCS;


using System;
using VM.GlobalScript.Methods;
using System.Windows.Forms; 
using iMVS_6000PlatformSDKCS;
using System.Runtime.InteropServices;

/*****************************************
 * Example explanation:Example of multi process control operation
 * Logic Control:Single run, each flow execute once
 * Continuous run:continuous run, each flow execute continuous
 * 示例说明: 默认代码
 * 控制逻辑: 单次运行:所有流程运行一次
 *           连续运行:所有流程连续运行
 * ***************************************/
public class UserGlobalScript : UserGlobalMethods,IScriptMethods
{
	
		//using System.IO;
	    public int GetSOLtoGlobalstr()
        {
        	//m_operateHandle 二次开发SDK操作句柄
            if (m_operateHandle == IntPtr.Zero) {return ImvsSdkPFDefine.IMVS_EC_NULL_PTR;}
			string filePath;// 获取当前VM 的.sol文件 路径(完整) @"C:\Users\Administrator\Deskto
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值