wincc时间显示的问题_0

wincc时间显示的问题_0
wincc时间显示的问题_0

wincc时间显示的问题

1.自己通过模拟读取SFC1读取系统时间怎么显示1900

2.查了下资料,想在wincc一个变量中显示年月日同理另一个变量表显示小时分钟秒看网上是通过WINCC新建一个变量表格式为文本变量8个字符。这个还是不懂怎么弄??

3.还有一个问题是怎样在wincc中显示通过PLC计算得出的时间在wincc中格式为HHMMSS不知道怎么弄问题补充:

第一个问题没写完,补充下。通过模拟读取的时间怎么还是DT#90-1-1-0:0:0.000已经在模拟是直接更改了时间通过PLC修改settimeofday但读出的好像还是初始时间。。

最佳答案

1、看一下系统在线帮助关于dateandtime。

2、wincc建立8个byte变量分别对应dateandtime的8个字节。

3、是整数吗?如果是整数,那么整数mod60,余数就是秒,整数/60就是分;分mod60后是显示的分,分/60的结果就是小时。最后把这三个数用字符串显示“小时:分:秒”

是怎么设置的?需要用sfc0设置系统时间,sfc1读取时间。这都是dateandtime类型的。问题不是没有设置正确就是没有读取正确。设置和读取后的结果要放在两个不同的8字节的变量中。

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中归档数据片段的时间和尺寸设置

1.归档数据片段介绍 1.1 概述 WinCC V6.2 开始的后台数据库采用了MS SQL Server 2005 ,所以归档方式与V5 有所不同,它的运行数据存放在数据片段(segment)当中,工程师可以根据尺寸需求组态最大容量或根据时间周期启动新的数据库归档片段。将归档数据连续的写入数据库,单个数据片段的尺寸到达或者时间界限到达时,系统会自动开启另一个数据片段进行归档。当数据片段的总体尺寸达到最大时,最早的数据片段就会被覆盖,重新开始新的归档。如图1 所示。备份功能可以把将要被覆盖的数据保存起来。 图1

例如: ? 在“单个分段所包含的时间段”设定的是1小时, 则只有"更改分段的时间" 组中“分钟” 参数是有效的;? 在“单个分段所包含的时间段”设定的是8小时, 则只有"更改分段的时间" 组中“小时”和“分钟”参数是有效的; ? 在“单个分段所包含的时间段”设定的是1个月, 则"更改分段的时间" 组中的“日”,“小时”和“分钟” 参数是有效的。 归档组态中的设置修改只有在下一次数据段生成的时候才会生效。 组态要点: 在归档组态中,需要保证所有单个归档(包括快速归档,慢速归档和报警归档)片断的个数不超过某一个值。 经过测试比较,SQL数据库所能连接的单个归档片断最大可行的数量为200个。归档片断个数不能过多地超过这个数量,否则会影响Microsoft SQL server运行性能。这会导致数据管理错误。 单个归档片断的大小在服务器不应超过700M,或者在CAS上不应超过1G。 1.2 变量记录计算 为了详细解释数据段的功能和用法,举例加以说明: 某用户希望进行两个月的数据归档,其中有5000 个变量的归档周期是2 分钟,50 个变量的归档周期是2 秒钟,单个的数据片段时间设置为1 周,怎样设置相应的数据段尺寸? 在计算数据段尺寸前需要先考虑以下三个问题: 首先,一条慢速变量归档记录与一条快速变量归档记录占用的硬盘空间是不同的,因此要计算数据库尺寸就得分两种情况考虑。 第二,WinCC V6.0 版本开始,快慢速归档的归档周期界限可以由用户自行设定,该参数在快速归档属性的第三个标签项“归档内容”中设置(如图2)。所有勾选的条目将作为快速归档保存,除了勾选条目之外的其他归档数据则作为慢速归档保存。系统默认采用1 分钟进行计算。

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)函数,外部消息窗口操作,此函数打开确认对话框(紧急确认/复位)。

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

如何根据WinCC设置S7控制器的时间

如何根据WinCC设置S7控制器的时间? 描述: 下面的方法只能进行时间设置而不能完成时间同步的功能。因为必须考虑到延迟,比如报文的处理时间,C 脚本的运行时间等,因此这个方法在精度方面不如真正的时间同步精确。 还要注意时间跳变(向前/向后)的发生,这就意味着这个方法不适用于必须按时间正向顺序的应用。 The following solution writes the time (type DATE_AND_TIME) with a WinCC script into a global data block (DB) of the controller下面的方法是使用WinCC的脚本把时间(DATE_AND_TIME类型)写到PLC的全局数据块(DB)中。在function block (FB)中,时间从DB中读出并写到临时/本地变量(时戳)中。该变量在系统功能块"Set_Clock"调用时被传送,从而设置到PLC中。 更多信息: ?时钟同步的设置参考条目ID: 16622902. ?如何通过以太网组态时钟同步参考条目ID: 2416068. ?如何通过PROFIBUS组态时钟同步参考条目ID:

AWL-Code.txt

C-Skript.txt

U DB1.DBX 8.0 SPBN end L DB1.DBB 0 // Year T LB 0 L DB1.DBB 1 // Month T LB 1 L DB1.DBB 2 // Day T LB 2 L DB1.DBB 3 // Hour T LB 3 L DB1.DBB 4 // Minutes T LB 4 L DB1.DBB 5 // Secounds T LB 5 L DB1.DBB 6 // 1/1000 Sec T LB 6 L DB1.DBB 7 // 1/1000 Sec T LB 7 CALL "SET_CLK" PDT :=#TimeStamp RET_VAL:=#ret_value R DB1.DBX 8.0 //reset Flag end: NOP 0

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中归档数据片段的时间和尺寸设置模板

WinCC中归档数据片段的时间和尺寸设置1.归档数据片段介绍 1.1 概述 WinCC V6.2 开始的后台数据库采用了MS SQL Server 2005 ,所以归档方式与V5 有所不同,它的运行数据存放在数据片段(segment)当中,工程师可以根据尺寸需求组态最大容量或根据时间周期启动新的数据库归档片段。将归档数据连续的写入数据库,单个数据片段的尺寸到达或者时间界限到达时,系统会自动开启另一个数据片段进行归档。当数据片段的总体尺寸达到最大时,最早的数据片段就会被覆盖,重新开始新的归档。如图1 所示。备份功能可以把将要被覆盖的数据保存。 图1

WinCC 的归档数据分三部分,即变量记录中的快速归档、慢速归档和报警记录中的消息归档。对应的数据分别保存在项目文件夹下 \ArchiveManager中的\TagLoggingFast、\TagLoggingSlow 和 \AlarmLogging。三类归档的运行机制是一样的,都是基于各自“归档组态”中设置的参数来维护历史数据的。以快速归档为例说明“归档大小”中各参数的含义。

在运行过程中,当单个分段文件的尺寸达到A的参数100M后,系统自动创建新的分段文件;如果系统连续运行B参数1天后,仍没有达到100M,但系统也会自动创建新的分段文件,即使文件大小只有1M, 系统也会自动创建新的分段文件,因为时间超过了B参数。这样,系统运行中首先监测单个分段文件的大小,只要超过A的参数,系统就会自动创建新的分段文件;同时,单个分段中的数据时间范围如果超出了B参数1天后,系统同样会自动创建新的分段文件。 文件夹\TagLoggingFast(快速归档)中总的数据尺寸首先不会超过C 的参数,同时也不会超过D的参数。例如,系统1小时的数据就达到了100M,那么,根据设定系统只能保存10个小时的数据。因为即使没有达到B、D限制的参数,但是受到A、C参数限制的原因,只能保存10

WinCC中归档数据片段的时间和尺寸设置

WinCC中归档数据片段的时间和尺寸设置 1.归档数据片段介绍 1.1 概述 WinCC V6.2 开始的后台数据库采用了MS SQL Server 2005 ,所以归档方式与V5 有所不同,它的运行数据存放在数据片段(segment)当中,工程师可以根据尺寸需求组态最大容量或根据时间周期启动新的数据库归档片段。将归档数据连续的写入数据库,单个数据片段的尺寸到达或者时间界限到达时,系统会自动开启另一个数据片段进行归档。当数据片段的总体尺寸达到最大时,最早的数据片段就会被覆盖,重新开始新的归档。如图1 所示。备份功能可以把将要被覆盖的数据保存起来。 图1

WinCC 的归档数据分三部分,即变量记录中的快速归档、慢速归档和报警记录中的消息归档。对应的数据分别保存在项目文件夹下\ArchiveManager中的\TagLoggingFast、\TagLoggingSlow 和\AlarmLogging。三类归档的运行机制是一样的,都是基于各自“归档组态”中设置的参数来维护历史数据的。以快速归档为例说明“归档大小”中各参数的含义。

在运行过程中,当单个分段文件的尺寸达到A的参数100M后,系统自动创建新的分段文件;如果系统连续运行B参数1天后,仍没有达到100M,但系统也会自动创建新的分段文件,即使文件大小只有1M, 系统也会自动创建新的分段文件,因为时间超过了B参数。这样,系统运行中首先监测单个分段文件的大小,只要超过A的参数,系统就会自动创建新的分段文件;同时,单个分段中的数据时间范围如果超出了B参数1天后,系统同样会自动创建新的分段文件。 文件夹\TagLoggingFast中总的数据尺寸首先不会超过C的参数,同时也不会超过D的参数。例如,系统1小时的数据就达到了100M,那么,根据设定系统只能保存10个小时的数据。因为即使没有达到B、D限制的参数,但是受到A、C参数限制的原因,只能保存10个分段文件。对于超出参数C、D的分段文件,系统默认会删除;如需保留,则需要设置第二页选项卡“备份组态”。 对于“更改分段的时间”中的设置,只有小于“单个分段所包含的时间段”的参数才起作用。如果“单个分段所包含的时间段”为1天,则“更改分段的时间”中的“月”“日”“星期”都不起作用。

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时间显示函数

一、方法一 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 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)

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 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.数据类型转换函数:

WinCC中定时器使用方法介绍Word版

WinCC中定时器使用方法介绍 1定时器功能介绍 WinCC中定时器的使用可以使WinCC按照指定的周期或者时间点去执行任务,比如周期执行变量归档、在指定的时间点执行全局脚本或条件满足时打印报表。WinCC已经提供了一些简单的定时器,可以满足大部分定时功能。但是在有些情况下,WinCC 提供的定时器不能满足我们需求,这时我们就可以通过 WinCC提供的脚本接口通过编程的方式实现定时的功能,因为脚本本身既可以直接调用WinCC其他功能,比如报表打印,也可以通过中间变量来控制其他功能的执行,比如通过置位/复位归档控制变量来触发变量记录的执行。WinCC 提供了C 脚本和VBS脚本,本文主要以全局 C 脚本编程为例介绍定时功能的实现。 2脚本中定时器介绍 既然在全局脚本中可以编程控制其他功能的执行,那么首先看看全局脚本的触发: 图1 脚本触发器分类 如图1所示:脚本触发器分为使用定时器和使用变量,定时器又分为周期执行和非周期执行一次,比如每分钟执行一次脚本属于周期执行,指定2012年10月1日执行一次属于非周期执行。使用变量触发脚本,即在变量发生变化时,

脚本就执行一次,而变量的采集可以根据指定周期循环采集,或者根据变化采集,根据变化实际是1秒钟采集变量一次。

3使用脚本实现更多定时器功能 利用脚本自身的定时器,可以通过在脚本中编程的方式实现更多其它定时功能。 3.1整点归档 WinCC提供了变量归档,变量归档分为周期归档和非周期归档,不管是周期归档或非周期的归档,都又可以通过一些变量或脚本返回值来控制归档,比如:整点归档。下面的设置结合WinCC脚本,实现了在整点开始归档,归档五分种后停止归档,即每个小时仅归档前五分钟的数据。 软件环境:Windows 7 Professional Service Pack1 , WinCC V7.0 SP3 归档名称:ProcessValueArchive 归档变量:NewTag 归档周期:1 分钟 归档控制变量 startarchive C脚本触发周期:10秒 脚本代码: #include "apdefap.h" int gscAction( void ) { #pragma option(mbcs) #pragma code ("kernel32.dll"); void GetLocalTime (SYSTEMTIME* lpst); #pragma code(); SYSTEMTIME time; int t1; GetLocalTime(&time); t1=time.wMinute; if(t1==00) { SetTagBit("startarchive",1); } if(t1==05) { SetTagBit("startarchive",0); } return 0; } 归档设置如图2:

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"); }

相关文档
最新文档