Proface普洛菲斯-HMI人机交互触摸屏: 脚本学习

  1. 脚本

D脚本

脚本 全局D脚本

扩展脚本

D脚本 —— 特定的某个画面内执行的脚本

全局D脚本 —— 在所有画面执行的脚本

扩展脚本 —— 触摸屏不支持的通讯设备上,

通过写扩展脚本代码来实现通讯。

  1. LS区

Memory Link 触摸屏被动 (触摸屏不支持直接通讯的)

通讯方式

Direct Access 触摸屏主动 (触摸屏支持通讯的)

数据类型:

数据类型

常量输入

最小

最大

Bin16

0

65535

Bin32

0

4294967295

Bin16+/-

-32768

32767

Bin32+/-

-2147483648

2147483647

BCD16

0

9999

BCD32

0

99999999

Proface普洛菲斯-HMI人机交互触摸屏:脚本学习

如上图所示:

用户真正可以使用的区域是:LS0276 ~ LS2031 LS2096 ~ LS8999两个区域。

  • LS0000 ~ LS0020

内部地址

描述

LS0000

当前画面号

LS0001

错误状态

LS0002

时钟的当前“年”值

LS0003

时钟的当前“月”值

LS0004

时钟的当前“日”值

LS0005

时钟的当前“时间”值

LS0006

状态

LS0007

保留

LS0008

切换到画面

LS0009

画面显示ON/OFF

LS0010

时钟的年份预设值

LS0011

时钟的“月份”设置

LS0012

时钟的“日”设置值

LS0013

时钟的“时间”设置

LS0014

控制

LS0015

保留

LS0016

窗口控制

LS0017

窗口编号

LS0018

窗口显示位置(X坐标)

LS0019

窗口显示位置(Y坐标)

  • LS2032 ~ LS2047

地址

描述

LS2032

通用继电器信息

LS2033

基本画面信息

LS2034

保留

LS2035

1秒钟二进制计数器

LS2036

显示扫描时间

LS2037

通讯周期

LS2038

显示扫描计数器

LS2039

通讯错误代码

LS2040

令牌分辨率速率最大值

LS2041

令牌分辨率速率当前值

LS2042

保留

LS2043

LS2044

LS2045

LS2046

LS2047

各个地址的详情-特殊继电器

  • 通用继电器信息(LS2032)

Proface普洛菲斯-HMI人机交互触摸屏:脚本学习

描述

bit0

每个通讯周期进行ON/OFF切换。

bit1

当基本画面或窗口切换后,该位将被置ON,直到切换完成变成OFF

bit2

只有当发生通讯错误时才置ON。

bit3

在上电显示初始画面时置ON。

bit4

通常为ON。

bit5

通常为OFF。

bit6

当清除备份SRAM时置ON。(仅板载备份SRAM)

bit7

当使用D脚本时,在发生BCD错误时置ON。

bit8

当使用D脚本时,在发生零错误时置ON。

bit9

当不能向备份SRAM传输配方时置ON。

bit10

当不能用控制字地址触发从PLC到SRAM传输配方数据时置ON。此外,如果通过特殊数据显示器(配方)从PLC进行数据传输,当使用传输完成位地址时,在数据不能从PLC->内部寄存器或PLC->SRAM上进行传输时,该位置ON。

bit11

当通过特殊数据显示器(配方)在SRAM ←→ 内部寄存器之间传输时,该位置ON。

bit12

当使用D脚本时,如果发生了来自memcpy( )或地址偏移指定读取的通讯错误时,该位将被置ON

bit13

当[串口操作]设置为读取发送函数、接收函数、控制、状态变量和接收数据的大小时,该位置ON。

bit14

在执行扩展脚本的[文本操作]函数时,该位置ON。

bit15

保留

  • 基本画面信息(LS2033)

描述

bit0

每个通讯周期进行ON/OFF切换。

bit1

当基本画面或窗口切换后,该位将被置ON,直到切换完成变成OFF

bit2 ~ 15

保留

  • 1秒钟二进制计数器(LS2035)

上电后即开始每秒钟加1。数据以BIN格式保存。

  • 显示扫描时间(LS2036)

显示画面上的第一个部件到最后一个部件所需的时间。数据以Bin格式保存,以ms为单位。当对目标部件的所有处理均已完成时数据会得到更新。数据的初始值为 "0"。该值有+/-10 ms的误差。

  • 通讯周期时间(LS2037)

对映射到系统数据区的地址(PLC或其他设备)进行扫描,从扫描开始到结束的时间。数据以Bin格式保存,以10ms为单位。当对系统数据区和目标设备的所有处理均已完成时数据会得到更新。数据的初始值为 "0"。该值有+/-10 ms的误差。

当多台控制器/PLC连接到一台人机界面时,只能将系统数据区分配给一台控制器/PLC。

  • 显示扫描计数器(LS2038)

每次当显示画面上设置的部件进行处理时计数器会增加一次。数据以BIN格式保存。

  • 通讯错误代码(LS2039)

当发生通讯错误时,它以Bin格式保存最后显示的通讯错误代码。

  • 令牌分辨率速率最大值(LS2040)

仅在串行多重连接过程中使用。通过多台连接人机界面的令牌数据包(PLC的一个命令权限)进行一个周期的传输所需时间的最大值。单位为10毫秒。每次更改最大值或切换画面时都更新数据。该数据的初始值为“0”。有±10ms的误差。

  • 令牌分辨率速率当前值(LS2041)

仅在串行多重连接过程中使用。通过多台连接人机界面的令牌数据包(PLC的一个命令权限)进行一个周期的传输所需时间的当前值。单位为10毫秒。每次更改最大值或切换画面时都更新数据。该数据的初始值为“0”。有±10ms的误差。

  • LS9000 ~ LS9999

内部地址

描述

详情

LS9000 - LS9063

显示历史图数据

历史数据编号和数据值

LS9100 - LS9199

脚本处理

脚本错误代码

LS9200 ~

CSV数据传输功能

由条件名称查找功能传输的CSV数据文件的文件号数量

LS9210 - LS9229

保留

保留

LS9230 ~

VM模块串行鼠标功能

串行鼠标触摸状态和坐标

LS9235 ~

触摸坐标

触摸人机界面画面上的坐标

LS9240 - LS9271

保留

保留

LS9272 - LS9274

MAC地址

MAC地址

LS9280 - LS9299

保留

保留

LS9300 ~

安全功能

安全级别

LS9310 ~

星期

星期

LS9320 - LS9349

保留

保留

LS9350 ~

RGB 2通道串行鼠标功能

触摸RGB模块串行鼠标的状态和坐标

LS9370 - LS9399

保留

保留

LS9400 ~

通讯周期

4个驱动程序 x 32台控制器*2

控制器/PLC的通讯周期

LS9528 ~

保留

保留

LS9550 ~

通讯扫描ON/OFF控制

4个驱动程序 X 32台控制器*2

控制器/PLC通讯扫描ON/OFF

LS9558~

保留

保留

LS9560~

通讯扫描ON/OFF状态

4个驱动程序 X 32台控制器*2

控制器/PLC通讯扫描状态

LS9568

保留

保留

LS9800 - LS9815

报警轮询周期信息

启用扩展报警时实际测量的轮询时间和每块的平均时间

LS9920 - LS9999

保留

保留

  • CSV数据传输功能(LS9200、LS9201)

Proface普洛菲斯-HMI人机交互触摸屏:脚本学习

保存条件名称查找功能传输的CSV数据的数量和文件编号。只有当搜索字符串与条件名称完全匹配时搜索才有结果。若在文件名中使用了空格,则表示是不同的文件名,并可能造成错误。当数据传输完成时,将显示已传输文件的状态和数量。最后传输的文件号码被写入GP内部寄存器特殊区LS9200和LS9201。(特殊区是只读的)

  • 触摸坐标 (LS9200、LS9201)

保存一个显示画面上的触摸坐标。

Proface普洛菲斯-HMI人机交互触摸屏:脚本学习

  • 触摸屏物理地址 (LS9272 -LS9274)

人机界面的MAC地址以十六进制格式保存在LS9272 - LS9274中,从第一个八位字节开始。

  1. USR区

USR00000 – USR29999 都是用户区,都可以使用

  1. 临时地址区

t:0000–t:0089 是临时地址区。用于变址或循环。等同于三菱中的Z0或V0

  1. 运算符

运算符

描述

详细

例子

+

将两个数据相加

b=2 + 1 → b=3

将两个数据相减

b=2 - 1 → b=1

%

取模

返回两个数据执行除法运算后的余数

b=5 % 3 → b=2

*

将两个数据相乘

b=5 * 3 → b=15

/

将两个数据相除

b=5 / 3 → b=1 小数后会没掉

=

赋值

将右侧的值赋给左侧

a=3 b=a → b=3

<<

左移

按右侧数字将左侧数据向左移

a=16 b=a<<2 → b=64

>>

右移

按右侧数字将左侧数据向右移

a=16 b=a>>2 → b=4

&

按位与

执行数据间的逻辑与

b=45 & 7 → b=5

|

按位或

执行数据间的逻辑或

b=45 | 7 → b=47

^

按位异或

执行数据间的逻辑异或

b=45 ^ 7 → b=42

~

按位取反

按位取反(~)

b= ~45 → b=18

区别1: % 求余数 / 求商。

区别2: = 赋值 == 判断是否相等

  1. 逻辑运算

运算符

描述

例子

AND

逻辑与

c=(a and b) a≠0 b≠0 → c=1 其它情况 c=0

OR

逻辑或

c= (a and b) a≠0 → c=1 b≠0 → c=1 a=0 b=0 → c=0

NOT

b=not a 如果a=0 b=1, a≠0 b=0

<

小于

<=

小于等于

>

大于

>=

大于等于

<>

不等于

==

等于

  1. 条件表达式
  • if – endif
  • if - else – endif
  • loop – endloop

loop(循环次数) //定义保存循环次数的临时地址。{[脚本表达式]break //可选的。用于中途退出循环体。} endloop //定义循环的终止。

例子:

[t:0000] = 100

loop ([t:0000]){[w:[#INTERNAL]LS0100]=[w:[#INTERNAL]LS0100]+1if ( [w:[#INTERNAL]LS0100] >10){break}endif}endloop

  • break

在loop过程中退出loop ( )。

  • return

函数处理终止,控制返回至函数的调用者。

立即取消主函数的处理并从主函数开始的地方重新开始。

  1. 常用内置函数
  • Memset 等同于三菱FMOV

memset([写入地址]、写入数据、字数)

	memset ([w:[PLC1]D0100], 0, 10)

将D0100至D0109的地址置“0”。

  • Memcpy 等同于三菱BMOV

memcpy (复制目的地地址, 复制源地址, 字数量)

  • _memcpy_EX

_memcpy_EX([复制目标地址]、[复制源地址]、字数)

  • 参数1:寄存器地址+临时地址
  • 参数2:寄存器地址+临时地址
  • 参数3:数值、内部寄存器、临时地址(参数3的有效范围在1至640之间。)

[t:0000]=10, [t:0001]=20_memcpy_EX ([w:[#INTERNAL]LS0100]#[t:0000], [w:[PLC1]D0100]#[t:0001], 5)

将D120 – D124 复制到 LS0110 – LS0114