Vijeo Desginer 脚本编程实现配方功能

1 前言

Vijeo-Designer 脚本是一些由用户编写的指令,用来制定目标机器如何响应实时事件(例如, 点击、切换画面、或者值的改变)。无法通过组件或动画来编程,这是使用 Vijeo-Designer 脚本的主要原因。 另一个使用脚本的原因是,可以在脚本中使用外部变量来扩充编程范围,而这在设备程序中是无法做到的。

Vijeo-Designer 脚本以 Java 语言为基础。 因此可以直接使用某些 Java 类和函数,另外,Vijeo-Designer 还有自己的函数。

本文结合实际客户对配方功能要求,用脚本编程实现配方功能。本文内用到的代码可以直接复制应用您的程序,帮助您熟悉用脚本编程。

2 具体实现过程

2.1 客户对触摸屏脚本的要求

设备用来进行最多10种不同规格产品的加工,每种规格的产品有14个工艺参数。在进行产品加工切换时,需要同步启用对应的工艺参数。靠随机输入参数比较麻烦,也不容易记下10组140个参数值,在PLC控制器内编程实现参数存储会占用一定的调电保持寄存器空间。借助触摸屏类似配方的功能实现参数的存储,参数可编辑更新,也可随产品规格切换调用。

 图1

画面效果如上图1。

1)工艺设定列用来实现配方组参数的输入,指定配方编号i后,按下存储按键,工艺设定列参数存储为第i组配方参数。

2)中间列为配方组参数查看,输入配方编号后,对应的配方组参数会刷新显示。

3)当前工艺列显示当前规格产品加工用到的工艺参数,可以是配方组内调用的参数,也可以是其它参数画面创建的工艺参数。如果调用配方组参数,需要先指定配方编号i,然后按下调用按键,将指定配方编号的一组参数作为当前规格产品的加工工艺参数。

配方组内参数存放于触摸屏上,并且可断电保持。

2.2 脚本编程实现

Vijeo-Designer 脚本以 Java 语言为基础。

2.2.1定义Vijeo-Designer 变量

Vijeo-Designer 中创建的变量,不能直接使用在脚本表达式中。在脚本中使用 Vijeo-Designer 变量时,必须调用该变量的 get value 函数,并把结果赋给局部脚本变量。 然后在控制语句、数学操作,及其它脚本表达式中使用该脚本变量。

要获取 BOOL 型变量的值,使用 getIntValue() 函数

Vijeo-Designer 中创建的变量可以是单一变量,也可以是数组;可以是内部变量,也可以是外部变量。

图2

如果变量要在触摸屏内实现调电保持,修改“变量属性—数据细节”,钩选“保持”功能:

图3

2.2.2 添加画面脚本

 图4

图5

需要指定脚本触发类型,本文选择周期触发,触发周期0.2秒。

图6

2.2.3 编写脚本程序

1)定义脚本变量

在脚本中,使用 write 函数可以改变 Vijeo Designer 变量的值。write 函数的参数可以是一个常量或脚本变量。

定义了脚本变量的数据类型和名称后,才能在脚本程序中使用它。在脚本中,可以将脚本变量声明为标准数据类型,也可以创建这些数据类型的数组。

//Define Variable

int i=0,j=0,k=0,n=0,PF_Num=配方组号.getIntValue( ),

Get_PF=配方提取.getIntValue( ),

Drawout_PF=配方调用.getIntValue( ),

Putin_PF=配方存储.getIntValue( );

float[] Gongyi_Input=new float[14],Gongyi_Present=new float[14],Gongyi_Memory=new float[140];

2)配方组号限定

   限定最大10组配方参数。

if (PF_Num<=0 || PF_Num>=11)

{

PF_Num=1;

配方组号.write(PF_Num);

}

3)修改和存储配方组参数

//Memory

if (Putin_PF==1)

{

  for (i=0;i<14;i=i+1)  

  {

  Gongyi_Input[i]=配方工艺输入[i].getFloatValue( );       触摸屏输入值赋给脚本变量数组

  配方工艺存储[(PF_Num-1)*14+i].write(Gongyi_Input[i]); 脚本变量值赋给触摸屏变量数组

  }

}

4)输入配方编号,显示当前配方组参数

//display

for (k=0;k<140;k=k+1)

{

Gongyi_Memory[k]=配方工艺存储[k].getFloatValue( );

}

for (j=0;j<14;j=j+1)

{

配方工艺当前[j].write(Gongyi_Memory[(PF_Num-1)*14+j]);

}

5)调取指定编号的配方组参数作为工艺参数用

//Get

if (Drawout_PF==1)

{

    for (n=0;n<14;n=n+1)

    {

        监视值[n].write(Gongyi_Memory[(PF_Num-1)*14+n]);

    }

    负极片设定值.write(Gongyi_Memory[(PF_Num-1)*14+0]);

    负极备片位置设定.write(Gongyi_Memory[(PF_Num-1)*14+1]);

    负极叠片位置设定.write(Gongyi_Memory[(PF_Num-1)*14+2]);

    正极备片位置设定.write(Gongyi_Memory[(PF_Num-1)*14+3]);

    正极叠片位置设定.write(Gongyi_Memory[(PF_Num-1)*14+4]);

    叠台负极位置设定.write(Gongyi_Memory[(PF_Num-1)*14+5]);

    叠台正极位置设定.write(Gongyi_Memory[(PF_Num-1)*14+6]);

    拇指台出料位.write(Gongyi_Memory[(PF_Num-1)*14+7]);

    拇指电芯位设定.write(Gongyi_Memory[(PF_Num-1)*14+8]);

    拇指卷绕位设定.write(Gongyi_Memory[(PF_Num-1)*14+9]);

    拇指台等待位置.write(Gongyi_Memory[(PF_Num-1)*14+10]);

    拇指贴胶1位设定.write(Gongyi_Memory[(PF_Num-1)*14+11]);

    拇指贴胶1位设定.write(Gongyi_Memory[(PF_Num-1)*14+12]);

    拇指贴胶1位设定.write(Gongyi_Memory[(PF_Num-1)*14+13]);   

}

2.2.4脚本编译验证

3 结束

    在实际的项目过程中,会遇到很多需要用脚本来实现的例子,比如动画,多用户名和密码的加密功能,可能会用到数组,本文是一个例子,仅供参考。编写的脚本程序可以借助Vijeo-Designer的仿真功能模拟效果。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Bryan Ding

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值