在VisionMaster 中,一般使用输出图像模块来进行图像存储,但是,存图文件夹路径是写死的,不能每次修改存图路径,那么如何实现根据SN码和OK NG 结果来动态修改存图路径呢?
我们只需要在输出图像模块前面,放一个脚本工具模块即可,在脚本工具模块中,修改输出图像1模块的存图文件夹路径。
脚本工具输入:
脚本代码:
using System;
using System.IO;
using System.Text;
using System.Windows.Forms;
using Script.Methods;
public partial class UserScript : ScriptMethods, IProcessMethods
{
//the count of process
//执行次数计数
int processCount;
/// <summary>
/// Initialize the field's value when compiling
/// 预编译时变量初始化
/// </summary>
public void Init()
{
//You can add other global fields here
//变量初始化,其余变量可在该函数中添加
processCount = 0;
}
/// <summary>
/// Enter the process function when running code once
/// 流程执行一次进入Process函数
/// </summary>
/// <returns></returns>
public bool Process()
{
//You can add your codes here, for realizing your desired function
//每次执行将进入该函数,此处添加所需的逻辑流程处理
//MessageBox.Show("Process Success");
string moduleName = "输出图像1";
string SN = "";
GetStringValue("SN", ref SN);
string ImageName = "";
GetStringValue("ImageName", ref ImageName);
SetStringValue("outImageName", ImageName);
int IfOK = 0;
GetIntValue("IfOk", ref IfOK);
string OkNgDir = "OK";
if (IfOK!=1)
{
OkNgDir = "NG";
}
string SaveOrgDir = "D:\\Image Data\\Org\\" + DateTime.Now.ToString("yyyyMMddHHmmssfff") + "\\" + OkNgDir + "\\" + SN;
string SaveRenDir = "D:\\Image Data\\Ren\\" + DateTime.Now.ToString("yyyyMMddHHmmssfff") + "\\" + OkNgDir + "\\" + SN;
//设置模块参数
CurrentProcess.GetModule(moduleName).SetValue("OriginImgPath", SaveOrgDir);
CurrentProcess.GetModule(moduleName).SetValue("RenderImgPath", SaveRenDir);
return true;
}
}