文档库 最新最全的文档下载
当前位置:文档库 › wincc flexible 系统函数

wincc flexible 系统函数

wincc flexible 系统函数
wincc flexible 系统函数

WinCC Flexible 系统函数报警

ClearAlarmBuffer

应用

删除HMI设备报警缓冲区中的报警。

说明

尚未确认的报警也被删除。

语法

ClearAlarmBuffer (Alarm class number)

在脚本中是否可用:有 (ClearAlarmBuffer)

参数

Alarm class number

确定要从报警缓冲区中删除的报警:

0 (hmiAll) = 所有报警/事件

1 (hmiAlarms) = 错误

2 (hmiEvents) = 警告

3 (hmiSystem) = 系统事件

4 (hmiS7Diagnosis) = S7 诊断事件

可组态的对象

对象事件

变量数值改变超出上限低于下限

功能键(全局)释放按下

功能键(局部)释放按下

画面已加载已清除

数据记录溢出报警记录溢出

检查跟踪记录可用内存很少可用内存极少

画面对象按下

释放

单击

切换(或者拨动开关)打开

断开

启用

取消激活

时序表到期

报警缓冲区溢出

ClearAlarmBufferProtoolLegacy 应用

该系统函数用来确保兼容性。

它具有与系统函数“ClearAlarmBuffer”相同的功能,但使用旧的ProTool编号方式。语法

ClearAlarmBufferProtoolLegacy (Alarm class number)

在脚本中是否可用:有 (ClearAlarmBufferProtoolLegacy)

参数

Alarm class number

将要删除其消息的报警类别号:

-1 (hmiAllProtoolLegacy) = 所有报警/事件

0 (hmiAlarmsProtoolLegacy) = 错误

1 (hmiEventsProtoolLegacy) = 警告

2 (hmiSystemProtoolLegacy) = 系统事件

3 (hmiS7DiagnosisProtoolLegacy) = S7 诊断事件

可组态的对象

对象事件

变量数值改变超出上限低于下限

功能键(全局)释放按下

功能键(局部)释放按下

画面已加载已清除

变量记录溢出报警记录溢出

检查跟踪记录可用内存很少可用内存极少

画面对象按下

释放

单击

切换(或者拨动开关)打开

断开

启用

取消激活

时序表到期

报警缓冲区溢出

SetAlarmReportMode

应用

确定是否将报警自动报告到打印机上。

语法

SetAlarmReportMode (Mode)

在脚本中是否可用:有 (SetAlarmReportMode)

参数

Mode

确定报警是否自动报告到打印机上:

0 (hmiDisnablePrinting) = 报表关闭:报警不自动打印。

1 (hmiEnablePrinting) = 报表打开:报警自动打印。-1 (hmiToggle) = 切换:在两种模式之间切换。

可组态的对象

对象事件

变量数值改变超出上限低于下限

功能键(全局)释放按下

功能键(局部)释放按下

画面已加载已清除

数据记录溢出报警记录溢出

检查跟踪记录可用内存很少可用内存极少

画面对象按下

释放

单击

切换(或者拨动开关)打开

断开

启用

取消激活

时序表到期

报警缓冲区溢出

ShowAlarmWindow

应用

隐藏或显示 HMI 设备上的报警窗口。

语法

ShowAlarmWindow (Object name, Display mode) 在脚本中是否可用:是 (ShowAlarmWindow)

参数

Object name

要隐藏或显示的报警画面的名称。

Display mode

确定隐藏或显示报警窗口:

0 (hmiOff) = 关:隐藏报警画面

1 (hmiOn) = 开:显示报警画面

-1 (hmiToggle) = 切换:在两种模式之间切换。可组态的对象

对象事件

变量数值改变超出上限低于下限

功能键(全局)释放

按下

功能键(局部)释放按下

画面已加载已清除

数据记录溢出报警记录溢出报警视图单击

检查跟踪记录可用内存很少可用内存极少

画面对象按下

释放

单击

切换(或者拨动开关)打开

断开

启用

禁用

调度器到期ShowSystemAlarm

应用

将已传递参数的值显示为 HMI 设备上的系统报警。语法

ShowSystemAlarm (Text/value)

在脚本中是否可用:是 (ShowSystemAlarm)

参数

Text/Value

作为系统报警输出的文本或数值。

可组态的对象

对象事件

变量数值改变超出上限低于下限

功能键(全局)释放按下

功能键(局部)释放按下

画面已加载已清除

错误启用

取消激活确认

编辑

警告启用

取消激活编辑

数据记录溢出

检查跟踪记录可用内存很少可用内存极少

画面对象按下

释放

单击

切换(或者拨动开关)打开

断开

启用

取消激活

时序表到期

画面切换

用户改变

报警缓冲区溢出

逻辑位

InvertBit

应用

对给定的“Bool”型变量的值取反。

?如果变量具有值 1(真),它将被设置为 0(假)。

?如果变量具有值 0(假),它将被设置为 1(真)。语法

InvertBit (Tag)

在脚本中是否可用:有 (InvertBit)

参数

Tag

要设置其位的变量。

可组态的对象

对象事件

变量数值改变超出上限低于下限

功能键(全局)释放按下

功能键(局部)释放按下

系统键(全局)释放按下

画面已加载已清除

错误启用

取消激活确认

编辑

警告启用

取消激活编辑

报警记录溢出

检查跟踪记录可用内存很少可用内存极少

画面对象按下

释放

单击

切换(或者拨动开关)打开

断开

启用

禁用

完成时输入

调度器到期

画面切换

用户改变

报警缓冲区溢出运行系统停止

InvertBitInTag

系统函数

应用

对给定变量中的位取反:

?如果变量中的位为值 1(真),它将被设置为 0(假)。

?如果变量中的位为值 0(假),它将被设置为 1(真)。

在改变了给定位之后,系统函数将整个变量传送回 PLC。但是并不检查变量中的其它位是否改变。在变量被传送回 PLC 之前,操作员和 PLC 可能只能读该变量。

说明

如果 PLC 支持 BOOL 型变量,不要使用该系统函数。而是使用“InvertBit”系统函数。语法

InvertBitInTag (Tag, Bit)

在脚本中是否可用:有 (InvertBitInTag)

参数

Tag

要设置其给定位的变量。

Bit

要设置的位的编号。

当该系统函数在脚本中使用时,变量中的位从右向左计数。计数从 0 开始。

可组态的对象

对象事件

变量数值改变超出上限低于下限

功能键(全局)释放按下

功能键(局部)释放按下

系统键(全局)释放按下

画面已加载已清除

错误启用

取消激活确认

编辑

警告启用

取消激活编辑

数据记录溢出报警记录溢出

检查跟踪记录可用内存很少可用内存极少

画面对象按下

释放

单击

切换(或者拨动开关)打开

断开

启用

禁用

完成时输入

调度器到期

画面切换

用户改变

报警缓冲区溢出运行系统停止

PLC 中的值

要求

在 HMI 设备上组态的变量“x”访问 PLC 中的变量“y”。

例如,将以下系统函数之一分配给功能键。

系统函数“f”:

?SetBitInTag

?SetBitWhileKeyPressed

?ResetBitInTag

?InvertBitInTag

将系统函数“f”分配给 HMI 设备的变量“x”。

预期的顺序

从 PLC 读取值(读)。系统函数“f”更改定义的位后,将整个变量返回到 PLC(写)。问题

从 PLC 读取实际值的时间由在 HMI 设备的变量“x”上组态的采集周期决定。

从 PLC 读取变量“x”的值:

1.如果在变量上组态“循环连续”或“循环使用”,则循环读取值

2.如果设置了“根据命令”更新并在之后对变量“x”执行“UpdateTag”函数,则仅

在画面启动时读取一次数值。

系统函数“f”使用变量中当前可用的值,并将新值返回到 PLC。

例如,您可以将采集周期设置为 1 分钟。也就是说,每分钟从 PLC 读取值并更新变量“x”的值一次。这有一个从 59 秒到下一次读取操作的时间窗口。例如,操作员在此时间窗口中按下功能键。例如,使用“f”函数将变量“y”的实际值由“0”更改为“1”(写)。函

数“y”不会检查变量“y”上的任何其它位是否同时被更改。在下一次读取变量“y”时(读),变量“x”会使用错误的值进行初始化。来自 PLC 的初始信息将丢失。例如,其它系统函数继续使用错误的值执行操作。

在下列情况下也会触发该响应:

?由于高负载,变量“x”的值更新延迟。

?PLC 中变量“y”的值在时间窗口中更改几次。

?相同的变量“”通过函数列表在 PLC 中更改几次。

小心

为避免上述问题,请不要在支持“BOOL”类型变量的 PLC 上使用这些系统函数。

使用

o“SetBit”系统函数,而不是“SetBitInTag”。

o“SetBitInTag”系统函数,而不是“SetBitWhileKeyPressed”。

o“ResetBit”系统函数,而不是“ResetBitInTag”。

o“InvertBitInTag”系统函数,而不是“InvertBit”

如果 PLC 不支持任何类型为“BOOL”的变量,您只应使用以上列出的函数,但条件是已安全排除从多个位置访问相同变量的可能。

在以下条件下会出现这种情况:

1.PLC 没有写入变量

2.HMI 设备本身没有从多个位置写入变量,例如,通过后台运行的任务调度器

活动。

ResetBit

应用

将“Bool”型变量的值设置为 0(假)。

语法

ResetBit (Tag)

在脚本中是否可用:有 (ResetBit)

参数

Tag

设置为 0(假)的 BOOL 型变量。

可组态的对象

对象事件

变量数值改变超出上限低于下限

功能键(全局)释放按下

功能键(局部)释放按下

系统键(全局)释放按下

画面已加载已清除

错误启用

取消激活确认

编辑

警告启用

取消激活

编辑

数据记录溢出

报警记录溢出

检查跟踪记录可用内存很少可用内存极少

画面对象按下

释放

单击

切换(或者拨动开关)打开

断开

启用

禁用

完成时输入

调度器到期

画面切换

用户改变

报警缓冲区溢出运行系统停止在对话框打开时在对话框关闭时

ResetBitInTag

系统函数

应用

将给定变量中的一个位设置为 0(假)。

在改变了给定位之后,系统函数将整个变量传送回 PLC。但是并不检查变量中的其它位是否改变。在变量被传送回 PLC 之前,操作员和 PLC 可能只能读该变量。

说明

如果 PLC 支持 BOOL 型变量,不要使用该系统函数。而使用系统函数“ResetBit”。

语法

ResetBitInTag (Tag, Bit)

在脚本中是否可用:有 (ResetBitInTag)

参数

Tag

其中的一个位要设置为 0(假)的变量。

Bit

要设置为 0(假)的位的编号。

在脚本中使用该系统函数时,无论使用何种 PLC,给定变量中的位都是从右向左计数。计数从 0 开始。

可组态的对象

对象事件

变量数值改变超出上限低于下限

功能键(全局)释放按下

功能键(局部)释放按下

系统键(全局)释放按下

画面已加载已清除

错误启用

取消激活确认

编辑

警告启用

取消激活编辑

数据记录溢出报警记录溢出

检查跟踪记录可用内存很少可用内存极少

画面对象按下

释放

单击

切换(或者拨动开关)打开

断开

启用

禁用

完成时输入

调度器到期

画面切换

用户改变

报警缓冲区溢出运行系统停止在对话框打开时在对话框关闭时

PLC 中的值

要求

在 HMI 设备上组态的变量“x”访问 PLC 中的变量“y”。

例如,将以下系统函数之一分配给功能键。

系统函数“f”:

?SetBitInTag

?SetBitWhileKeyPressed

?ResetBitInTag

?InvertBitInTag

将系统函数“f”分配给 HMI 设备的变量“x”。

预期的顺序

从 PLC 读取值(读)。系统函数“f”更改定义的位后,将整个变量返回到 PLC(写)。问题

从 PLC 读取实际值的时间由在 HMI 设备的变量“x”上组态的采集周期决定。

从 PLC 读取变量“x”的值:

1.如果在变量上组态“循环连续”或“循环使用”,则循环读取值

2.如果设置了“根据命令”更新并在之后对变量“x”执行“UpdateTag”函数,则仅

在画面启动时读取一次数值。

系统函数“f”使用变量中当前可用的值,并将新值返回到 PLC。

例如,您可以将采集周期设置为 1 分钟。也就是说,每分钟从 PLC 读取值并更新变量“x”的值一次。这有一个从 59 秒到下一次读取操作的时间窗口。例如,操作员在此时间窗口中按下功能键。例如,使用“f”函数将变量“y”的实际值由“0”更改为“1”(写)。函数“y”不会检查变量“y”上的任何其它位是否同时被更改。在下一次读取变量“y”时(读),变量“x”会使用错误的值进行初始化。来自 PLC 的初始信息将丢失。例如,其它系统函数继续使用错误的值执行操作。

在下列情况下也会触发该响应:

?由于高负载,变量“x”的值更新延迟。

?PLC 中变量“y”的值在时间窗口中更改几次。

?相同的变量“”通过函数列表在 PLC 中更改几次。

小心

为避免上述问题,请不要在支持“BOOL”类型变量的 PLC 上使用这些系统函数。

使用

o“SetBit”系统函数,而不是“SetBitInTag”。

o“SetBitInTag”系统函数,而不是“SetBitWhileKeyPressed”。

o“ResetBit”系统函数,而不是“ResetBitInTag”。

o“InvertBitInTag”系统函数,而不是“InvertBit”

如果 PLC 不支持任何类型为“BOOL”的变量,您只应使用以上列出的函数,但条件是已安全排除从多个位置访问相同变量的可能。

在以下条件下会出现这种情况:

1.PLC 没有写入变量

2.HMI 设备本身没有从多个位置写入变量,例如,通过后台运行的任务调度器

活动。

SetBit

应用

将“Bool”型变量的值设置为 1(真)。

语法

SetBit (Tag)

在脚本中是否可用:有 (SetBit)

参数

Tag

要将其值设置为 1(真)的 BOOL 型变量。

可组态的对象

对象事件

变量数值改变超出上限低于下限

功能键(全局)释放按下

功能键(局部)释放按下

系统键(全局)释放按下

画面已加载

已清除

错误启用

取消激活确认

编辑

警告启用

取消激活编辑

数据记录溢出报警记录溢出

检查跟踪记录可用内存很少可用内存极少

画面对象按下

释放

单击

切换(或者拨动开关)打开

断开

启用

禁用

完成时输入

调度器到期

画面切换

用户改变

报警缓冲区溢出运行系统停止在对话框打开时在对话框关闭时

SetBitInTag

系统函数

应用

将给定变量中的一个位设置为 1(真)。

在改变了给定位之后,系统函数将整个变量传送回 PLC。不检查变量中的其它位是否同时发生了改变,在变量传送回 PLC 之前,操作员和 PLC 只能读取该变量。

说明

如果 PLC 支持 BOOL 型变量,不要使用该系统函数。而使用系统函数“SetBit”。

语法

SetBitInTag (Tag, Bit)

在脚本中是否可用:有 (SetBitInTag)

参数

Tag

要将其中的一个位设置为 1(真)的变量。

Bit

要设置为 1(真)的位的编号。

在脚本中使用该系统函数时,无论使用何种 PLC,给定变量中的位都是从右向左计数。计数从 0 开始。

可组态的对象

对象事件

变量数值改变超出上限低于下限

功能键(全局)释放按下

功能键(局部)释放按下

系统键(全局)释放按下

画面已加载已清除

错误启用

取消激活确认

编辑

警告启用

取消激活编辑

数据记录溢出报警记录溢出

检查跟踪记录可用内存很少可用内存极少

画面对象按下

释放

单击

切换(或者拨动开关)打开

断开

启用

禁用

完成时输入

调度器到期

画面切换

用户改变

报警缓冲区溢出运行系统停止在对话框打开时在对话框关闭时

说明

要实现可靠的功能,必须保证与实际过程值一起使用的变量的更新。因此,应在 IO 域中组态变量或将函数分配给画面元素(如按钮)。

如果为函数组态了短事件(如报警的激活),则只能通过设置连续读取的变量访问实际过程值。

PLC 中的值

要求

在 HMI 设备上组态的变量“x”访问 PLC 中的变量“y”。

例如,将以下系统函数之一分配给功能键。

系统函数“f”:

?SetBitInTag

?SetBitWhileKeyPressed

?ResetBitInTag

?InvertBitInTag

将系统函数“f”分配给 HMI 设备的变量“x”。

预期的顺序

从 PLC 读取值(读)。系统函数“f”更改定义的位后,将整个变量返回到 PLC(写)。问题

从 PLC 读取实际值的时间由在 HMI 设备的变量“x”上组态的采集周期决定。

从 PLC 读取变量“x”的值:

1.如果在变量上组态“循环连续”或“循环使用”,则循环读取值

2.如果设置了“根据命令”更新并在之后对变量“x”执行“UpdateTag”函数,则仅

在画面启动时读取一次数值。

系统函数“f”使用变量中当前可用的值,并将新值返回到 PLC。

例如,您可以将采集周期设置为 1 分钟。也就是说,每分钟从 PLC 读取值并更新变量“x”的值一次。这有一个从 59 秒到下一次读取操作的时间窗口。例如,操作员在此时间窗口中按下功能键。例如,使用“f”函数将变量“y”的实际值由“0”更改为“1”(写)。函数“y”不会检查变量“y”上的任何其它位是否同时被更改。在下一次读取变量“y”时(读),变量“x”会使用错误的值进行初始化。来自 PLC 的初始信息将丢失。例如,其它系统函数继续使用错误的值执行操作。

在下列情况下也会触发该响应:

?由于高负载,变量“x”的值更新延迟。

?PLC 中变量“y”的值在时间窗口中更改几次。

?相同的变量“”通过函数列表在 PLC 中更改几次。

小心

为避免上述问题,请不要在支持“BOOL”类型变量的 PLC 上使用这些系统函数。

使用

o“SetBit”系统函数,而不是“SetBitInTag”。

o“SetBitInTag”系统函数,而不是“SetBitWhileKeyPressed”。

o“ResetBit”系统函数,而不是“ResetBitInTag”。

o“InvertBitInTag”系统函数,而不是“InvertBit”

如果 PLC 不支持任何类型为“BOOL”的变量,您只应使用以上列出的函数,但条件是已安全排除从多个位置访问相同变量的可能。

在以下条件下会出现这种情况:

1.PLC 没有写入变量

2.HMI 设备本身没有从多个位置写入变量,例如,通过后台运行的任务调度器

活动。

ShiftAndMask

输入字母数字值

字母数字屏幕键盘

触摸触摸屏上的输入对象时,HMI设备自动打开一个屏幕字母数字键盘,供输入字符串和十六进制格式的数值。输入完成后,键盘将自动隐藏。

仅在为输入对象编写了操作员注释时,才会激活键。

用于字母数字输入的触摸屏键盘

键盘层次

字母数字键盘由两个层次构成:

?标准层(如图)

?

?

?

层用来输入特殊字符。

步骤

使用屏幕键盘按钮可逐个字符地输入字母数字值。使用确认输入或使用取消输入。这两个操作均会关闭屏幕键盘。

打印

PrintScreen

应用

通过连接到HMI设备的打印机来打印当前显示在HMI设备上的画面。

同时打印已打开的窗口。

说明

从Windows操作系统的当前设置中获取打印机设置。

语法

PrintScreen

在脚本中是否可用:有 (PrintScreen)

参数

--

可组态的对象

对象事件

变量数值改变超出上限低于下限

功能键(全局)释放按下

功能键(局部)释放按下

画面已加载已清除

画面对象按下

释放

单击

切换(或者拨动开关)打开

断开

启用

取消激活

时序表到期

SetAlarmReportMode

应用

确定是否将报警自动报告到打印机上。

语法

SetAlarmReportMode (Mode)

在脚本中是否可用:有 (SetAlarmReportMode)

参数

Mode

确定报警是否自动报告到打印机上:

0 (hmiDisnablePrinting) = 报表关闭:报警不自动打印。

1 (hmiEnablePrinting) = 报表打开:报警自动打印。

-1 (hmiToggle) = 切换:在两种模式之间切换。

可组态的对象

对象事件

变量数值改变超出上限低于下限

功能键(全局)释放按下

功能键(局部)释放按下

画面已加载已清除

数据记录溢出报警记录溢出

检查跟踪记录可用内存很少可用内存极少

画面对象按下

释放

单击

切换(或者拨动开关)打开

断开

启用

取消激活

时序表到期

报警缓冲区溢出

计算

DecreaseValue

应用

从变量值中减去给定的值。

X = X - a

说明

系统函数使用同一变量作为输入和输出值。当该系统函数用于转换数值时,必须使用帮助变量。可使用系统函数“SetValue”将变量值分配给帮助变量。

如果在报警事件中组态了函数但变量未在当前画面中使用,则无法确保在 PLC 中使用实际的变量值。通过设置“连续循环”采集模式可以改善这种情况。

语法

DecreaseValue (Tag, Value)

在脚本中是否可用:是 (DecreaseValue)

参数

Tag

要减去给定值的变量。

Value

其值作为减数。

可组态的对象

对象事件

变量数值改变超出上限低于下限

功能键(全局)释放按下

功能键(局部)释放按下

系统键(全局)释放按下

画面已加载已清除

错误启用

取消激活确认

编辑

警告启用

取消激活编辑

数据记录溢出报警记录溢出

检查跟踪记录可用内存很少可用内存极少

画面对象按下

释放

单击

切换(或者拨动开关)打开

断开

启用

禁用

完成时输入

调度器到期

画面切换

用户改变

报警缓冲区溢出运行系统停止

在对话框打开时

在对话框关闭时

IncreaseValue

应用

将给定值添加到变量值上。

X = X + a

说明

系统函数使用同一变量作为输入和输出值。当该系统函数用于转换数值时,必须使用帮助变量。可使用系统函数“SetValue”将变量值分配给帮助变量。

如果在报警事件中组态了函数但变量未在当前画面中使用,则无法确保在 PLC 中使用实际的变量值。通过设置“连续循环”采集模式可以改善这种情况。

语法

IncreaseValue (Tag, Value)

在脚本中是否可用:有 (IncreaseValue)

参数

Tag

为其添加给定值的变量。

Value

作为加数的数值。

可组态的对象

对象事件

变量数值改变超出上限低于下限

功能键(全局)释放按下

功能键(局部)释放按下

系统键(全局)释放按下

画面已加载已清除

错误启用

取消激活确认

编辑

警告启用

取消激活编辑

数据记录溢出报警记录溢出

检查跟踪记录可用内存很少可用内存极少

画面对象按下释放单击

切换(或者拨动开关)打开

断开

启用

禁用

完成时输入

调度器到期

画面切换

用户改变

报警缓冲区溢出运行系统停止对话框打开时对话框关闭时

InverseLinearScaling

应用

使用线性函数X = (Y - b) / a,将通过给定变量Y的值计算得出的数值赋给变量X。变量X和Y不能相同。与此函数相反的系统函数是“LinearScaling”。

说明

变量X和Y不能相同。如果要将变量转换为其自身,必须使用一个帮助变量。

可用系统函数“SetValue”将要转换变量的值分配给帮助变量。

语法

InverseLinearScaling (X, Y, b, a)

在脚本中是否可用:有 (InverseLinearScaling)

参数

X

要为其分配通过线性方程式计算得出的值的变量。

Y

其值用于计算的变量。

b

其值作为减数。

a

其值作为除数。

可组态的对象

对象事件

变量数值改变超出上限低于下限

功能键(全局)释放按下

功能键(局部)释放按下

画面已加载已清除

画面对象按下

释放

单击

切换(或者拨动开关)打开

断开

启用

取消激活

时序表到期

运行系统停止

LinearScaling

应用

为变量Y赋值,该变量通过线性函数Y= (a *X) + b利用给定变量X的值计算得出。与此函数相反的系统函数是“InverseLinearScaling”。

说明

变量X和Y不能相同。如果要将变量转换为其自身,必须使用一个帮助变量。

可用系统函数“SetValue”将要转换变量的值分配给帮助变量。

语法

LinearScaling (Y, X, a, b)

在脚本中是否可用:有 (LinearScaling)

参数

Y

要为其分配通过线性方程式计算得出的值的变量。

X

其值用于计算的变量。

a

作为乘数的数值。

b

作为加数的数值。

可组态的对象

对象事件

变量数值改变超出上限低于下限

功能键(全局)释放按下

功能键(局部)释放按下

画面已加载已清除

画面对象按下

释放

单击

切换(或者拨动开关)打开

断开

启用

取消激活

时序表到期SetValue

系统函数

应用

wincc标准函数介绍

标准函数 该系统包含标准函数。可以按需要修改这些函数。此外,还可以自己创建标准函数。 该系统包括一个标准函数集。 一、Alarm - 简短描述 Alarm组包含控制WinCC报警控件的函数。标准函数可用于工具栏中的每一个按钮。这些函数可用来创建自定义工具栏,例如选择画面,或者定义控件上的设置。 1.void AcknowledgeMessage(DWORD MsgNr)函数,确认消息系统中带编号的消息,该编号被传递为参数。 使用标准函数操作WinCC报警控件的实例 {//确认选择的报警记录消息 AcknowledgeMessage(GetTagWord("U08i_MsgNr")); } 指定待确认的消息号。在本例中是从变量读取的。 2.BOOL AXC_OnBtnArcLong(char* lpszPictureName, char* pszMsgWin)函数,在消息窗口中该函数表示消息存储在长期归档中。 使用标准函数操作WinCC报警控件的实例 {// 跳转到WinCC报警控件中的第一条消息 AXC_OnBtnMsgFirst("gs_alarm_00","Control1"); } AXC_OnBtnMsgFirst函数参数: “gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。 Control 1是WinCC报警控件的对象名。 3.BOOL AXC_OnBtnArcShort(char* lpszPictureName, char* pszMsgWin)函数,在消息窗口中该函数表示消息存储在短期归档中。 使用标准函数操作WinCC报警控件的实例 {// 跳转到WinCC报警控件中的第一条消息 AXC_OnBtnMsgFirst("gs_alarm_00","Control1"); } AXC_OnBtnMsgFirst函数参数: “gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。 Control 1是WinCC报警控件的对象名。 Control 1是WinCC报警控件的对象名。 4.BOOL AXC_OnBtnComment(char* lpszPictureName, char* pszMsgWin)函数 外部消息窗口操作,该函数显示先前所选消息的注释。 使用标准函数操作WinCC报警控件的实例 {// 跳转到WinCC报警控件中的第一条消息 AXC_OnBtnMsgFirst("gs_alarm_00","Control1"); } AXC_OnBtnMsgFirst函数参数: “gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。 Control 1是WinCC报警控件的对象名。 5.BOOL AXC_OnBtnEmergAckn(char* lpszPictureName, char* pszMsgWin)函数,外部消息窗口操作,此函数打开确认对话框(紧急确认/复位)。

winccfleXible系统函数

WinCC Flexible 系统函数 报警 ClearAlarmBuffer 应用 删除HMI设备报警缓冲区中的报警。 说明 尚未确认的报警也被删除。 语法 ClearAlarmBuffer (Alarm class number) 在脚本中是否可用:有 (ClearAlarmBuffer) 参数 Alarm class number 确定要从报警缓冲区中删除的报警: 0 (hmiAll) = 所有报警/事件 1 (hmiAlarms) = 错误 2 (hmiEvents) = 警告 3 (hmiSystem) = 系统事件 4 (hmiS7Diagnosis) = S7 诊断事件 可组态的对象 对象事件 变量数值改变超出上限低于下限 功能键(全局)释放按下 功能键(局部)释放按下 画面已加载已清除 数据记录溢出报警记录溢出 检查跟踪记录可用内存很少可用内存极少 画面对象按下 释放 单击 切换(或者拨动开关)打开 断开 启用 取消激活 时序表到期 报警缓冲区溢出

ClearAlarmBufferProtoolLegacy 应用 该系统函数用来确保兼容性。 它具有与系统函数“ClearAlarmBuffer”相同的功能,但使用旧的ProTool编号方式。语法 ClearAlarmBufferProtoolLegacy (Alarm class number) 在脚本中是否可用:有 (ClearAlarmBufferProtoolLegacy) 参数 Alarm class number 将要删除其消息的报警类别号: -1 (hmiAllProtoolLegacy) = 所有报警/事件 0 (hmiAlarmsProtoolLegacy) = 错误 1 (hmiEventsProtoolLegacy) = 警告 2 (hmiSystemProtoolLegacy) = 系统事件 3 (hmiS7DiagnosisProtoolLegacy) = S7 诊断事件 可组态的对象 对象事件 变量数值改变超出上限低于下限 功能键(全局)释放按下 功能键(局部)释放按下 画面已加载已清除 变量记录溢出报警记录溢出 检查跟踪记录可用内存很少可用内存极少 画面对象按下 释放 单击 切换(或者拨动开关)打开 断开 启用 取消激活 时序表到期 报警缓冲区溢出 SetAlarmReportMode 应用 确定是否将报警自动报告到打印机上。 语法 SetAlarmReportMode (Mode) 在脚本中是否可用:有 (SetAlarmReportMode) 参数 Mode

wincc中使用vbs常用函数.

wincc 中使用vbs 常用函数 1. 函数array() 功能: 创建一个数组变量 格式:array(list) 参数:list 为数组变量中的每个数值列,中间用逗号间隔 例子: <% i = array ( “1”, ”2”, ”3”) %> 结果: i 被赋予为数组 2. 函数Cint() 功能: 将一表达式/ 其它类型的变量转换成整数类型(int) 格式:Cin t(expressio n_r) 参数:expression」是任何有效的表达式/其它类型的变量 例子: <% f = ” 234” response.write cINT(f) + 2 %> 结果: 236 函数Cint() 将字符” 234”转换成整数234.如果表达式为空, 或者无效时, 返回值为0; 3. 函数:Creatobject() 功能: 创建及返回一个ActiveX 对象. 格式:Creatobject(obname)

参数bname 是对象的名称 例子: <% Set con = Server.CreateObject( “ADODB.Connection”) %> 结果: 4. 函数Cstr() 功能: 将一表达式/其它类型的变量转换成字符类型(string) 格式:Cstr(expression_r) 参数:expression」是任何有效的表达式/其它类型的变量例子: <% s = 3 + 2 response.write ”The result is: ” & cStr(s) %> 结果: 函数Cstr() 将整数 5 转换成字符” 5”. 5. 函数Date() 功能: 返回当前系统(server 端) 的日期 格式: Date() 参数:无 例子<% date () %> 结果:05/10/00

Wincc系统函数

报警 1、ClearAlarmBuffer 应用:删除HMI设备报警缓冲区中的报警。说明:尚未确认的报警也被删除。 2、ClearAlarmBufferProtoolLegacy 应用:该系统函数用来确保兼容性。 它具有与系统函数“ClearAlarmBuffer”相同的功能,但使用旧的ProTool编号方式。参数:Alarm class number 将要删除其消息的报警类别号: -1 (hmiAllProtoolLegacy) = 所有报警/事件 0 (hmiAlarmsProtoolLegacy) = 错误 1 (hmiEventsProtoolLegacy) = 警告 2 (hmiSystemProtoolLegacy) = 系统事件 3 (hmiS7DiagnosisProtoolLegacy) = S7 诊断事件 3、SetAlarmReportMode 应用:确定是否将报警自动报告到打印机上。 4、ShowAlarmWindow 应用:隐藏或显示 HMI 设备上的报警窗口。 5、ShowSystemAlarm 应用:将已传递参数的值显示为 HMI 设备上的系统报警。 编辑位 1、InvertBit 应用:对给定的“Bool”型变量的值取反。如果变量具有值 1(真),它将被设置为 0(假)。如果变量具有值 0(假),它将被设置为 1(真)。说明:不要使用循环事件或递归事件或具有外部变量的系统函数。 在画面中创建一个开关。该开关连接到外部布尔类型变量“Tag1”。将系统函数“InvertBit”分配给“更改”事件。该系统函数连接到外部变量“Tag1”。 在运行期间,这会导致无法预料的行为。 2、InvertBitInTag 应用:对给定变量中的位取反:如果变量中的位为值 1(真),它将被设置为 0(假)。如果变量中的位为值 0(假),它将被设置为 1(真)。 在改变了给定位之后,系统函数将整个变量传送回 PLC。不检查此过程期间变量中是否有其它位发生更改。在变量被传送回 PLC 之前,操作员和 PLC 对变量具有只读访问权限。 说明:如果 PLC 支持 BOOL 型变量,不要使用该系统函数。而是使用“InvertBit”系统函数。不要使用循环事件或递归事件或具有外部变量的系统函数。 在画面中创建一个开关。该开关连接到外部布尔类型变量“Tag1”。将系统函数“InvertBitInVariable”分配给“更改”事件。该系统函数连接到外部变量“Tag1”。 在运行期间,这会导致无法预料的行为。 3、ResetBit 应用:将“Bool”型变量的值设置为 0(假)。 4、ResetBitInTag 应用:将给定变量中的一个位设置为 0(假)。 在改变了给定位之后,系统函数将整个变量传送回 PLC。不检查此过程期间变量中是否有其它位发生更改。在指示的变量被传送回 PLC 之前,操作员和 PLC 对变量具有只读访问权限。说明:如果 PLC 支持 BOOL 型变量,不要使用该系统函数。而使用系统函数“ResetBit”。 5、SetBit 应用 将“Bool”型变量的值设置为 1(真)。

wincc vbscript Split 函数用法

vbscript Split 函数用法 用法:传回数组 = Split(原始字串, 要找的字串, 拆成几个数组) 描述 返回一个下标从零开始的一维数组,它包含指定数目的子字符串。 语法 Split(expression[, delimiter[, count[, compare]]]) 例如用逗号(,)分割字符串为数组 复制代码代码如下: str="1,2,3,4" strarr=split(str,",") for i=0 to ubound(strarr) msgbox strarr(i) next Split函数语法有如下几部分: 部分描述 expression 必需的。包含子字符串和分隔符的字符串表达式。如果expression是一个长度为零的字符串(""),Split则返回一个空数组,即没有元素和数据的数组。 delimiter 可选的。用于标识子字符串边界的字符串字符。如果忽略,则使用空格字符(" ")作为分隔符。如果delimiter是一个长度为零的字符串,则返回的数组仅包含一个元素,即完整的 expression字符串。

count 可选的。要返回的子字符串数,-1表示返回所有的子字符串。 compare 可选的。数字值,表示判别子字符串时使用的比较方式。关于其值,请参阅“设置值”部分。 参数的设置 设置值 compare参数的设置值: 常数值描述 vbUseCompareOption -1 用Option Compare语句中的设置值执行比较。vbBinaryCompare 0 执行二进制比较。 vbTextCompare 1 执行文字比较。 vbDatabaseCompare 2 仅用于Microsoft Access。基于您的数据库的信息执行比较。 复制代码代码如下: Private Sub Command1_Click() Dim MyStr As String MyStr = "1234567123456712345" MyStrs = Split(MyStr, "67") For Each Strs In MyStrs Print Strs Next End Sub 输出结果:"12345"、"12345"、"12345"

wincc中使用vbs的常用函数

wincc中使用vbs的常用函数 1.函数array() 功能:创建一个数组变量 格式:array(list) 参数:list为数组变量中的每个数值列,中间用逗号间隔 例子: <%i=array(“1”,”2”,”3”)%> 结果:i被赋予为数组 2.函数Cint() 功能:将一表达式/其它类型的变量转换成整数类型(int) 格式:Cint(expression) 参数:expression是任何有效的表达式/其它类型的变量 例子: <% f=”234” response.write cINT(f)+2 %> 结果:236 函数Cint()将字符”234”转换成整数234.如果表达式为空,或者无效时,返回值为0; 3.函数:Creatobject() 功能:创建及返回一个ActiveX对象. 格式:Creatobject(obname) 参数bname是对象的名称 例子: <% Set con=Server.CreateObject(“ADODB.Connection”) %> 结果: 4.函数Cstr() 功能:将一表达式/其它类型的变量转换成字符类型(string) 格式:Cstr(expression) 参数:expression是任何有效的表达式/其它类型的变量 例子: <% s=3+2 response.write”The result is:”&cStr(s) %> 结果:函数Cstr()将整数5转换成字符”5”. 5.函数Date() 功能:返回当前系统(server端)的日期

格式:Date() 参数:无 例子<%date()%> 结果:05/10/00 6.函数Dateadd() 功能:计算某个指定的时间和 格式:dateadd(timeinterval,number,date) 参数:timeinterval是时间单位(月,日..);number是时间间隔值,date是时间始点. 例子: <% currentDate=#8/4/99# newDate=DateAdd(“m”,3,currentDate) response.write newDate %><% currentDate=#12:34:45PM# newDate=DateAdd(“h”,3,currentDate) response.write newDate %> 结果: 11/4/99 3:34:45PM 其中 “m”=”month”; “d”=”day”; 如果是currentDate格式,则, “h”=”hour”; “s”=”second”; 7.函数Datediff() 功能:计算某量个指定的时间差 格式:datediff(timeinterval,date1,date2[,firstdayofweek[,firstdayofyear]]) 参数:timeinterval是时间单位;date1,date2是有效的日期表达式,firstdayofweek,firstdayofyear是任意选项. 例子: <% fromDate=#8/4/99# toDate=#1/1/2000# response.write”There are”&_ DateDiff(“d”,fromDate,toDate)&_ “days to millenium from8/4/99.” %> 结果:There are150days to millenium from8/4/99. 8.函数day() 功能:返回一个整数值,对应于某月的某日 格式:day(date)

WINCC的API编程

如何将其它程序的窗口置于最前面? 可以通过使用Windows API 函数FindWindow找到一个窗口的句柄。 假设您希望将一个Microsoft Access 窗口置于最前面: HWND Handle= ZERO; Handle= FindWindow("OMAIN",ZERO); if(Handle) { ShowWindow(Handle, SW_MINIMIZE); // ShowWindow ( Handle, SW_SHOWNORMAL ); SetForegroundWindow(Handle); } else ProgramExecute("C:\\MSOffice.97\\Office\\ACCESS.EXE"); 如果没有发现该窗口,随后Microsoft Access 将重新启动。 FindWindow 函数的注意事项: 第一个参数是窗口的类。 可以使用编译器(比如:用Visual C++ 中的Spy 命令)找到类。 第二个参数是窗口的标题(标题栏)。可以指定两个参数中的任何一个,或者两个都指定。在本

运行时通过按下一个按钮来启动一个程序,打印一个文本文件或者打开一个显示订货号

22560470 WinHelp (Windows Help) via API 显示订货号 QUESTION: Can a user-specific Help be called in a WinCC project? ANSWER: Yes, in WinCC you can call use an API call to call a user-specific Help. With "fuCommand" you can branch to a specific topic. For this you create a new project function with the following code: #pragma code("user32.dll") BOOL WinHelpA(hwnd, lpszHelpFile, fuCommand, dwData); #pragma code() #define HELP_CONTENTS 0x0003L void WinHelpApi() { HWND hwnd; /* handle of window requesting help */ char HelpFile[255]; UINT fuCommand; /* type of help */

wincc 常用脚本

DeactivateRTProject ();//退出系统 #pragma code("useadmin.dll") #include"PWRT_api.h" #pragma code() char* CUser=NULL; CUser=GetTagChar("@CurrentUser"); if (strlen(CUser)==0) { PWRTSilentLogin("operator","123456");//用户“operator",密码"123456”登录} OpenPicture("@MAIN.pdl"); } 在画面中结合不同按钮来组态下面 C 操作 Login Action for login (for example, "mouse click" event): #pragma code ("useadmin.dll") #include "PWRT_api.h" #pragma code() PWRTLogin('c'); Logout Action for logout (for example, "mouse click" event): #pragma code ("useadmin.dll") #include "PWRT_api.h" #pragma code() PWRTLogout(); PWRTLogin 参数必须是CHAR 字符。它指定了显示对话框的监视器。如果只使用一个监视器,那么保留默认参数“c”或者指定“1”。 注意 可以使用PASSLoginDialog 函数来代替PWRTLogin 或者PWRTLogout 函数。这个函数需要和函数PWRTLogin 相同的参数。PWRTLogin 和PASSLoginDialog 函数可以调用登录界面,在上面可以登录或者注销。函数PWRTLogout 被正确执行并且不调用登录界面。 正确执行后这两个函数都返回“1”。然而,登录不会等到显示对话框之后。 注意 如果使用多个显示器,为了能使登录对话框显示在合适的显示器上,需要WinCC Basic Process Control (OS项目编辑器)。 不使用WinCC Basic Process Control 时,可以指定显示器编号,但登录对话框始终显示在第一个显示器上。 #include"apdefap.h"//调用函数代码 void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)

WinCC C语言基础

Wincc C语言基础 3.属性的C动作 #include apdefap h long-main(char* lpszPictureName.char* lpszObjectName.char*lpszPropertyName) { /*1*/ long 1ReturnValue; /*2*/ 1ReturnValue * GetTagSDword(*S32icourse-test-1*); /*3*/ return 1ReturnValue; } 上述实例代码代表一个典型的属性的C动作。各部分的含义描述如下: 标题(灰色):灰色阴影显示的前三行构成C的动作标题。该标题自动生成并且不能更改。除返回类型(在实例代码中为long)之外,所有的函数标题完全相同。将三个参数传送给C动作。它们是画面名称(Lpsz PictureName),对象名(lpszObjectName)和属性名(lpszPropertyName). 变量声明(1):在可以编辑的第一段代码中声明使用的变量。在本实例代码中,指的是一个long型的变量。数值计算(2):在本段中,执行属性值的计算。在实例代码中,只读入一个WinCC 变量的数值。 数值返回(3):将计算得出的属性值赋给属性。这通过return命令来完成 4.事件的C动作 #include apdefap.h* void OnClicik(char* lpszPictureName.char* lpszObjectName.char* lpszPropertyName) { /*1*/ long 1Value; /*2*/ 1Value * GetTagSDWord(*s32i-course-tset-1”); SetIeft (lpszPictureName,lpszobjectName,1value); } 上述实例代码代表一个典型的事件的C动作。各部分含义描述如下: 标题(灰色):灰色阴影显示的前三行构成C动作的标题。该标题自动生成并且不能更改。对于不同类型的事件,其参数标题也不同。将参数lpszPictureName(画面名称).lpszObjectName(对象名)和lpszPropertyName(属性名)传递给C动作。参数lpszPropertyName只包含与响应属性变化事件相关信息。可以传递附加的事件指定的参数。 变量声明(1):在可以编辑的第一代码段中声明使用的变量。在本实例代码中,指的是一个long型的变量。事件处理(2):在本段中,执行响应事件的动作。在本实例代码中,读入一个WinCC变量的数值。该数值作为位置X分配给自己的对象。事件的C动作的返回值为void类型,也就是说不需要返回值 5.C动作的创建 创建C动作的步骤如下: (1).打开图形编辑器,打开期望的WinCC画面,打开所期望对象的对象属性对话框 (2)通过鼠标R期望的属性或事件,然后从弹出式菜单中选择C动作来打开动作编辑器 (3)将显示动作编辑器,其中将显示函数的基本框架。此外,C动作的标题已经自动生成,该标题不能

Wincc中弹出对话框函数MessageBox参数以及应用

Wincc 中对话框弹出函数MessageBox 参数以及应用 按键显示: 常数 值 描述 MB_OK 0x00000000 消息框中包含的一个按钮: 确定 这是默认值. MB_OKCANCEL 0x00000001 消息框中包含的两个按钮: 确定和取消. MB_ABORTRETRYIGNORE 0x00000002 消息框中包含的三个按钮: 中止, 重试和忽略. MB_YESNOCANCEL 0x00000003 消息框中包含的三个按钮: 是,否和取消 MB_YESNO 0x00000004 消息框中包含的两个按钮: 是和否 MB_RETRYCANCEL 0x00000005 消息框中包含的两个按钮: 重试和取消 MB_CANCELTRYCONTINUE 0x00000006 Windows 2000: 消息框中包含的三个按钮: 取消, 重试, 继续. 使用这个消息框类型代替 //MessageBox(NULL,"这是一个默认的只有确定的消息框!","标题", MB_OK ); //MessageBox(NULL,"这是一个确定取消的消息框!","标题", MB_OKCANCEL ); //MessageBox(NULL,"这是一个是或否的消息框!","标题", MB_YESNO ); //MessageBox(NULL,"这是一个是或否或取消的消息框!","标题", MB_YESNOCANCEL ); //MessageBox(NULL,"这是一个重试或取消的消息框!","标题",MB_RETRYCANCEL ); //MessageBox(NULL,"这是一个中止, 重试和忽略的消息框!","标题",MB_ABORTRETRYIGNORE ); 在消息框内显示的图标是以下值之一。 //MessageBox(NULL,"这是一个错误的消息框!","标题", MB_ICONHAND ); //MessageBox(NULL,"这是一个错误的消息框!","标题", MB_ICONSTOP ); //MessageBox(NULL,"这是一个错误的消息框!","标题", MB_ICONERROR ); //MessageBox(NULL,"这是一个询问的消息框!","标题", MB_ICONQUESTION); //MessageBox(NULL,"这是一个警告的消息框!","标题", MB_ICONEXCLAMATION );

WINCC c语言基础

要使对象动态化,在WinCC中有多种不同的选项可用。其中包括变量连接.动态对话框和直接连接。通过它们可以实现复杂的动态。然而,随着要求的增加它们会有限制。对于用户来说,组态C动作、项目函数或动作可以有更广的范围。它们在WinCC 脚本语言C中创建。对于许多应用来说,不必具备非常全面的C语言知识。它足以为现有函数提供参数。然而,为了使用WinCC脚本语言C的全部功能,需要具备有关这种编辑语言的基本知识。本课程可以为用户提供这些知识。 本课程用来为不熟悉C语言的人员提供有关编辑语言C的常规应用的基本知识。具备C语言编辑经验的编程员可以学习C语言应用于WinCC时的特性。 C脚本的开发环境 对于C脚本的创建,WinCC提供两个不同的编辑器。一个是图形编辑器中的动作编辑器,用于在对象处创建C动作;另一个是全局脚本编辑器,用于创建项目函数和全局动作。脚本语言的语法与采用ANSI的标准C语言相一致。 在WinCC中编辑语言C的另一个应用领域是关于动态向导的创建。为此,可以使用一个单独的编辑器。 图形编辑器的动作编辑器 在图形编辑器中,可以通过C动作使对象属性动作化。同样,也可以使用C动作来响应对象事件。 1.动作编辑器 对于C动作的组态,可以使用动作编辑器。此编辑器可以在对象属性对话框中通过以下方法打开,即点击鼠标右键期望的属性或事件,然后从显示的弹出式菜单中选择C动作。已经存在的C动作在属性或事件处用绿色箭头标记。 在动作编辑器中,可以编写C动作。对于属性的C动作,必须定义触发器。对于事件的C 动作,由于事件本身就是触发器所以不必再定义。完成的C动作必须进行编译,如果编译程序没有检测到错误,则可以通过单击确定退出动作编辑器 2.动作的结构 通常,一个C动作相当与C中的一个函数。C动作由两种不同类型:为属性创建动作和为事件创建的动作。通常,属性的C动作用于根据不同的环境条件控制此属性的值(例如变量的值)。对于这种类型的C动作,必须定义触发器来控制其执行。事件的C动作来响应此事件。 3.属性的C动作 #include apdefap h long-main(char* * *lpszPropertyName)

wincc时间显示函数

一、方法一 1.设置一个或多个变量,类型为内存字符串或者是一个连接PLC的外部变量的字符串 2.全局脚本:C脚本 #pragma code("kernel32.dll"); 定义系统链接文件 GetLocalTimes(SYSTEMTIME*lpst);获取系统时间变量 #pragma code(); SYSTEMTIME time; GetLocalTime(&time); SetTagWord("Varname1",time.wYear);年 SetTagWord("Varname2",time.wMonth);月 SetTagWord("Varname3",time.wDayOfWeek);星期 SetTagWord("Varname4",time.wDay);天 SetTagWord("Varname5",time.wHour);小时 SetTagWord("Varname6",time.wMinute);分钟 SetTagWord("Varname7",time.wSecond);秒 SetTagWord("Varname8",time.wMilliseconds);毫秒 3.在输入输出域关联变量,记住要修改显示类型为字符串 如果要在一个中显示,则把Varname1-Varname8通过字符串连接即可 方法二: char* temp=(char*)SysMalloc(26); time_t *p=(time_t*)SysMalloc(sizeof(time_t)),CT; CT=time(p); strcpy(temp,ctime(&CT)); *(temp+24)='\0'; return temp; 方法三: 利用控件中的wincc digital/analog clock contol

WinCC C函数详解

WinCC C函数详解 GetFontSize函数参数: “lpszPictureName”是在其中组态该对象的画面的名称。 “Static Text1”是该对象的名称。 1). 读出当前字体大小和fontsize中的缓冲区。 2). 执行处理返回值的自定义代码。 2. long int GetAlignmentTop(LPCTSTR lpszPictureName, LPCTSTR lpszObjectName)函数,定义垂直文本对齐(上对齐、居中、下对齐)。 读出字体大小的实例 { long int fontsize; //获得实际字体大小fontsize = GetFontSize(lpszPictureName,"Static Text 1"); //自定义代码 //在那里用户可以使用返回值做某事 ... } GetFontSize函数参数: “lpszPictureName”是在其中组态该对象的画面的名称。 “Static Text1”是该对象的名称。

3. BOOL GetFontBold(LPCTSTR lpszPictureName, LPCTSTR lpszObjectName)函数,定义字体样式是否为“粗体字”。 读出静态文本域的布尔型属性的实例 { BOOL bbold; //了解文本是否是粗体字bbold = GetFontBold(lpszPictureName,"Static Text 1"); if(bbold) { // 自定义代码 // 字体是否是粗体字 ... } else { // 自定义代码 // 字体是否不是粗体字 ... } } GetFontBold函数参数:

WINCC C脚本的标准函数

WINCC C脚本的标准函数1 -------------------------------------------------------------------------------- 标准函数 该系统包含标准函数。可以按需要修改这些函数。此外,还可以自己创建标准函数。 该系统包括一个标准函数集。 一、Alarm - 简短描述 Alarm组包含控制WinCC报警控件的函数。标准函数可用于工具栏中的每一个按钮。这些函数可用来创建自定义工具栏,例如选择画面,或者定义控件上的设置。 1.void AcknowledgeMessage(DWORD MsgNr)函数,确认消息系统中带编号的消息,该编号被传递为参数。 使用标准函数操作WinCC报警控件的实例 {//确认选择的报警记录消息 AcknowledgeMessage(GetTagWord("U08i_MsgNr")); } 指定待确认的消息号。在本例中是从变量读取的。 2.BOOL AXC_OnBtnArcLong(char* lpszPictureName, char* pszMsgWin)函数,在消息窗口中该函数表示消息存储在长期归档中。 使用标准函数操作WinCC报警控件的实例 {// 跳转到WinCC报警控件中的第一条消息 AXC_OnBtnMsgFirst("gs_alarm_00","Control1"); } AXC_OnBtnMsgFirst函数参数: “gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。 Control 1是WinCC报警控件的对象名。 3.BOOL AXC_OnBtnArcShort(char* lpszPictureName, char* pszMsgWin)函数,在消息窗口中该函数表示消息存储在短期归档中。 使用标准函数操作WinCC报警控件的实例 {// 跳转到WinCC报警控件中的第一条消息 AXC_OnBtnMsgFirst("gs_alarm_00","Control1"); } AXC_OnBtnMsgFirst函数参数: “gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。 Control 1是WinCC报警控件的对象名。 4.BOOL AXC_OnBtnComment(char* lpszPictureName, char* pszMsgWin)函数 外部消息窗口操作,该函数显示先前所选消息的注释。 使用标准函数操作WinCC报警控件的实例 {// 跳转到WinCC报警控件中的第一条消息 AXC_OnBtnMsgFirst("gs_alarm_00","Control1"); }

WINCC VBSCRIPT常用函数

WinCC VBscript常用函数 1.数值型函数: abs(num):返回绝对值 sgn(num):num>01;num=00;num<0-1;判断数值正负 hex(num):返回十六进制值直接表示:&Hxx最大8位 oct(num):返回八进制值直接表示:&Oxx最大8位 sqr(num):返回平方根num>0 int(num):取整int(99.8)=99;int(-99.2)=100 fix(num):取整fix(99.8)=99;fix(-99.2)=99 round(num,n):四舍五入取小数位round(3.14159,3)=3.142中点数值四舍五入为近偶取整round(3.25,1)=3.2 log(num):取以e为底的对数num>0 exp(n):取e的n次幂通常用num^n sin(num):三角函数,以弧度为值计算(角度*Pai)/180=弧度con(num); tan(num);atn(num) 2.字符串函数: len(str):计算字符串长度中文字符长度也计为一! mid(str,起始字符,[读取长度]):截取字符串中间子字符串 left(str,nlen):从左边起截取nlen长度子字符串 right(str,nlen):从右边起截取nlen长度子字符串 Lcase(str):字符串转成小写 Ucase(str):字符串转成大写 trim(str):去除字符串两端空格 Ltrim(str):去除字符串左侧空格 Rtrim(str):去除字符串右侧空格 replace(str,查找字符串,替代字符串,[起始字符,替代次数,比较方法]):替换字符串 注:默认值:起始字符1;替代次数不限;比较方法区分大小写(0) InStr([起始字符,]str,查找字符串[,比较方法]):检测是否包含子字符串可选参数需同时选返回起始位置 InStrRev(str,查找字符串[,起始字符][,比较方法]):反向检测是否包含子字符串返回起始位置 space(n):构造n个空格的字符串 string(n,str):构造由n个str第一个字符组成的字符串 StrReverse(str):反转字符串 split(str,分割字符串[,次数][,比较方法]):以分割字符串为分割标志将字符串转为字符数组可选参数需同时选 3.数据类型转换函数:

winccflexible系统函数

WinCC Flexible 系统函数报警 ClearAlarmBuffer 应用 删除HMI设备报警缓冲区中的报警。 说明 尚未确认的报警也被删除。 语法 ClearAlarmBuffer (Alarm class number) 在脚本中是否可用:有 (ClearAlarmBuffer) 参数 Alarm class number 确定要从报警缓冲区中删除的报警: 0 (hmiAll) = 所有报警/事件 1 (hmiAlarms) = 错误 2 (hmiEvents) = 警告 3 (hmiSystem) = 系统事件 4 (hmiS7Diagnosis) = S7 诊断事件 可组态的对象 对象事件 变量数值改变超出上限低于下限 功能键(全局)释放按下 功能键(局部)释放按下 画面已加载已清除 数据记录溢出报警记录溢出 检查跟踪记录可用内存很少可用内存极少 画面对象按下 释放 单击 切换(或者拨动开关)打开 断开 启用 取消激活 时序表到期 报警缓冲区溢出 ClearAlarmBufferProtoolLegacy 应用

该系统函数用来确保兼容性。 它具有与系统函数“ClearAlarmBuffer”相同的功能,但使用旧的ProTool编号方式。语法 ClearAlarmBufferProtoolLegacy (Alarm class number) 在脚本中是否可用:有 (ClearAlarmBufferProtoolLegacy) 参数 Alarm class number 将要删除其消息的报警类别号: -1 (hmiAllProtoolLegacy) = 所有报警/事件 0 (hmiAlarmsProtoolLegacy) = 错误 1 (hmiEventsProtoolLegacy) = 警告 2 (hmiSystemProtoolLegacy) = 系统事件 3 (hmiS7DiagnosisProtoolLegacy) = S7 诊断事件 可组态的对象 对象事件 变量数值改变超出上限低于下限 功能键(全局)释放按下 功能键(局部)释放按下 画面已加载已清除 变量记录溢出报警记录溢出 检查跟踪记录可用内存很少可用内存极少 画面对象按下 释放 单击 切换(或者拨动开关)打开 断开 启用 取消激活 时序表到期 报警缓冲区溢出 SetAlarmReportMode 应用 确定是否将报警自动报告到打印机上。 语法 SetAlarmReportMode (Mode) 在脚本中是否可用:有 (SetAlarmReportMode) 参数 Mode 确定报警是否自动报告到打印机上: 0 (hmiDisnablePrinting) = 报表关闭:报警不自动打印。

WinCC实例教程

WinCC 视频教程知识点总结 第一讲组态软件基础 一、WinCC简介 1、WinCC 西门子视窗控制中心SIMATIC WinCC(Windows Control Center)是在计算机上对PLC 控制的运行设备进行状态监控的软件,是PC上的监控软件。 运行该软件,可以动画监视现场设备的运行状况,监视相应的运行参数,以及更改、设置系统的运行数据。 2、WinCC的特点 (1)开放性 WinCC对用户所添加的任何形式的扩充是绝对开放,该绝对开放性是通过WinCC的模块结构及其强大的编程接口来获取的。 (2)将应用软件集成到WinCC中 WinCC提供了一些方法将其他应用程序和应用程序块统一地集成到用于过程控制的用户界面中。OLE应用程序窗口和OLE自定义控制或Active控制可以集成到WinCC应用软件中。 (3)WinCC中的数据管理 WinCC的数据库为Windows SQL,从属于WinCC,该数据库用于存储所有面向列表的组态数据(如变量列表和消息文本),以及当前过程数据(如消息,测量值和用户数据记录等)该数据库具有服务器功能。

(4)在项目开始之前规定组态分类 a、文件夹名称 除一些特殊字符(例如\)之外,文件夹名称允许使用所有的字符。还允许使用数字0~9. b、变量名称 变量名称可以多于8个字符。但应尽量避免太长的名称。WinCC项目的变量名称必须是唯一的。如果变量名称还包含了其他信息,这对用户将非常有用。 c、画面名称 确定画面名称时应注意其长度的影响,太长的名称(文件名)不容易识别(列表框中的选择,脚本中的调用等)。根据经验表明,长度最好不超过28个字符,画面名称应遵守以下限制条件:①最大长度为255个字符;②不使用某些特殊字符(例如\);③画面名称中的字母不区分大小写。 二、WinCC软件的安装 1、安装S7-300/400PLC编程软件STEP7及PLCSIM; 2、安装数据库软件SQL Server 2000; 3、安装消息列队(软件操作); 4、安装WinCC(建议不选典型安装,选择全部安装)。 三、WinCC管理器 1、WinCC项目管理器的结构 WinCC项目管理器的用户界面由以下元素组成:标题栏、菜单栏、工具栏、状态栏、浏览窗口和数据窗口:

相关文档