WINCC 关于用户登陆注销的脚本

WINCC 关于用户登陆注销的脚本
WINCC 关于用户登陆注销的脚本

我有两个用户,分别是用户1和用户2,请教如何在启动WINCC6.0 SP3时,自动登陆到用户1而无须手动登陆?

将登录用户脚本编写在您项目的首画面中的Open Picture事件内。

在开始画面-》画面对象-》其他-》打开画面中添加“C动作”

#pragma code("useadmin.dll")

#include "PWRT_API.H"

#pragma code()

PWRTSilentLogin("用户1", "密码");

注销用户的脚本:

在按钮动作里加入以下c脚本

#pragma code("useadmin.dll")

#include "PWRT_API.H"

#pragma code()

PWRTLogin('1');

最后一句改成PWRTLogout();就是退出

WINCC-如何使用自定义的对话框实现用户登录

在登录按钮中加处以下脚本:

#pragma code("useadmin.dll")

#include "PWRT_API.H"

#pragma code()

if (PWRTSilentLogin("username", "PassWord"))

{

//登录成功后的处理

}

其中"USERNAME","PASSWORD"可以用存储用户名和密码的变量替换.如:

PWRTSilentLogin(GetTagChar("user"), GetTagChar("PassWord"))

当登录成功时,函数返回值为真;如登录失败,则返回值为假

WINCC--如何在程序中动态修改用户密码

1、点击“开始”--》“设置”--》“控制面板”--》“管理工具”--》“数据源(ODBC)”,打开ODBC 数据源管理器

2、在用户DSN页面的用户数据源中找到与当前项目所关联的一项,其名称为“CC_项目名_项目建立日期时间”,记下该项的名称

3、在脚本中加入以下代码:

#pragma code("UseGen.dll")

#include "USEGENAP.H"

#pragma code()

LPCMN_ERROR err; //定义的LPCMN_ERROR型变量,在函数调用中需使用

if (PWGENConnect("CC_ass_04-09-21_16:35:22",err)) //建立与数据库的联接,其中CC_ass_04-09-21_ 16:35:22用第二步中记下的名称取代

{

if (PWGENChangePassword(GetTagChar("user"),GetTagChar("oldpassword"),GetTagChar("password"), err)) //修改密码,user,oldpassword,password分别为存贮用户名,原密码,新密码的内部变量,类型为文本变量8位字符集

{

//密码修改成功后的操作,如给用户提示等

}

}

PWGENDisconnect(err); //断开与数据库的联接

4、编译运行程序

5、工作完成

6、与用户管理相关的函数定义存贮在APPLIB目录下的USEGENAP.H文件中,可根据上面示例自行完成添加用户,修改权限等功能。

WINCC-如何使用自定义的对话框实现用户登录

在登录按钮中加处以下脚本:

#pragma code("useadmin.dll")

#include "PWRT_API.H"

#pragma code()

if (PWRTSilentLogin("username", "PassWord"))

{

//登录成功后的处理

}

其中"USERNAME","PASSWORD"可以用存储用户名和密码的变量替换.如:

PWRTSilentLogin(GetTagChar("user"), GetTagChar("PassWord"))

当登录成功时,函数返回值为真;如登录失败,则返回值为假

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-FLEXIBLE多用户登录(李洋)

在项目视图中找到“运行系统用户管理”条目。双击它可以列出子菜单,其中有三个选项,分别是是“组”、“用户”以及“运行系统安全性设置” 双击“组”选项打开用户组编辑器 在编辑器中有两个部分,分别是“组”表、“组权限”表。 在组表中列出了现有的用户组,在组权限表中列出了系统中现有的所有权限。 为每个用户组分配不同的权限是通过在组权限表中的复复选框内打勾实现的。 在项目视图的“组”选项上单击鼠标右键选择“添加组”;或者在用户组编辑器“组表”中紧邻现有组的空白行上双击鼠标左键,都可添加一个新的用户组。 在“组权限”表中空白行内,双击鼠标左键可以添加新的权限。 这里新添加了一个“组1”组,并把“操作”的权限分配给它

打开用户编辑器 在项目视图中“运行系统用户管理”条目下双击“用户”选项打开用户组编辑器 添加用户 在编辑其中可以清楚的看到每个用户所在的用户组。如上图所示灰色部分显示的用户是系统默认的用户“Admin”,属于管理员组,拥护所有的权限。 添加或修改“用户”的方法与添加或修改“组”的方法一样。 在这里创建了两个用户,分别是“user1”和“user2”并且将“user1”分配给“用户”组,将“user2”分配给“组1”组。则这两个用户就分别拥有了“用户”组和“组1”组的权限。 为用户设置密码 这里我们user1输入口令123,确认口令123; user2输入口令234,确认口令234;

在属性视图中为用户设置密码 打开文本和图形列表(点开文本列表) 新建文本列表如图

添加缺省条目,数值为1时,条目为user1,数值为2时,条目为user2 创建画面 创建新画面并将“符号IO域“拖拽到画面,此IO域为用户名 双击符号IO域其属性有 文本列表选择刚建的列表,变量选择新建变量“test”变量类型为BOOL型 添加IO域,并新建变量password1 变量类型为字符串型即sting型,并把变量password1连接到IO域上,IO域属性设为字符串类型,并且隐藏输入,此IO域为密码的输入,如下图

wincc登录与注销修改当前用户的密码

调用用户管理的C脚本:(没试) #include "apdefap.h" void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName) { SSMProgramStart( lpszPictureName, lpszObjectName, "Passcs.exe"); } 在按钮上用ProgramExecute("Passcs.exe")脚本可以执行用户管理程序 登陆和注销,做个登陆的画面,放2个按钮,写脚本: 由函数PWRTLogin()来执行登录。 #pragma code("USEADMIN.DLL") #include "PWRT_API.H" #pragma code() PWRTLogin('1'); 由函数PWRTLogout()来实现注销。 #pragma code("USEADMIN.DLL") #include "PWRT_API.H" #pragma code() PWRTLogout(); 分别用登录按钮和注销按钮实现,在按钮的事件中输入相应的代码, 登录动作(如事件Mouse-click) #pragma code (“useadmin.dll”) #include “PWRT_api.h” #pragma code() PWRTLogin(’c’); - 退出动作(如事件Mouse-click) #pragma code (“useadmin.dll”) #include “PWRT_api.h” #pragma code() PWRTLogout(); 如何修改当前用户的密码,请参考(没试) “CC_SewageDi_09_11_27_17_20_29”为自己创建的项目数据库名称; “@CurrentUserName”用当前户名,为WinnCC自身的内部变量,文本变量16位字符集,连接一个输入输出域; “@OldPassword”用当前用户旧密码,为需要创建的内部变量,文本变量16位字符集,连

WinccV7.3 c脚本,同一个按钮根据登录用户不同执行不同的操作

182.WinccV7.3 c脚本,同一个按钮根据登录用户不同执行不同的操作 今天晚上在群上看到有一个网友问起过在wincc中如何实现同一个按钮,如果是用户1点击就退出wincc项目程序,如果是用户2点击就退出用户程序并关机。单独的退出wincc和单独的关机脚本,都可以使用向导来自动生成,根据用户不同执行不同的操作,无非就是加上条件判断而已,其实还是很好实现的。 新建一个wincc项目,新建两个用户user1和user2,给项目属性设定登录快捷键ctrl+L。新建一个画面,画面上放置一个按钮,在按钮的鼠标点击事件中添加以下c脚本: #include "apdefap.h" void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName) { char *username=GetTagChar("@CurrentUser"); if(strcmp(username,"user1")==0) DeactivateRTProject ();//退出wincc if(strcmp(username,"user2")==0) DMExitWinCCEx (DM_SDMODE_POWEROFF);//退出wincc并关机 } 保存运行,就可以看到效果了。 从这个练习可以看出,尽管编辑时定义的用户是User1和User2,但实际上登录后@CurrentUser得到的还是user1或者user2,全部都是小写字母。此外比较两个字符串是不是一致,这里使用了strcmp函数。开始我想当然的用==来判断是不是一致,结果始终不对,看来还是学艺不精啊。

WINCC脚本个人经验总结

语音报警的组态 在工业现场安全是极其重要的,无论从那个角度讲我们应该利用一切手段减少故障的发生。在故障已经发生的时候,应该在第一时间以多种方式通知操作人员有故障发生。现代微处理计算机的处理速度可以完全胜任对于图形,语音地同时处理。所以我们可以利用计算机的声卡和音箱在有故障发生的时候产生语言报警,但是问题是WinCC本身并不能产生语音的功能,而且其内部的上千个函数也没有提供处理声音的函数。解决这个问题的方法归功于微软开发的WinCC与操作系统地完美结合,因为在WinCC中可以直接调用Windows的API函数。实现的具体C脚本代码如下: long _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName) { #pragma code(\"Winmm.dll\") void WINAPI PlaySoundA(char *pszSound,char *hmode,DWORD dwflay); #pragma code() if(GetTagBit(\"112排泥备泵故障\")) PlaySoundA(\"d:\\\\\\\\winnt\\\\\\\\media\\\\\\\\Mircosoft sound.wav\",NULL,8); return 1020; }重新启动后,不使用登录窗口如何以一个缺省用户的身份自动登录?怎样确保运行期间有个缺省用户始终处于登入状态?即使另外一个用户已经预先退出。 解答: 重新启动以及在运行期间,您希望HMI系统达到最小的实用性而不使用登录窗口。然而,对于高级操作,登录功能应当保留。此外,如果没有用户登录,则有一个缺省的用户自动登录。缺省用户的权限可以在用户管理器中根据需要设定。 可使用下面的C脚本执行此项功能,请按照下列步骤进行: 将附件中的函数“Silentlogin.pas”复制到项目中的“PAS”子文件夹中。 在项目中选择Global Script > C Editor > Actions > Global Actions并打开全局动作(Global Action)“Silentlogin.pas”。 在“PWRTSilentLogin (“Login”,“Password”);”一行中,用缺省的用户名替换用户“Login”,用缺省用户的口令代替“Password”。 无限循环命令 static int a=0, b=0; if(GetTagBit("BINi_pictu_dyn_09")) { if(b==0) a++; else a--; if(a==7) b=1; if(a==0) b=0; }

wincc功能使用总结

1、Wincc online trend控件实现多条曲线查询 项目要求,查询任意时段内的两条曲线的历史数据 1、首先在变量记录中设置需要记录的变量,如果需要在一个控件内显示两条曲线,做数据 归档时,归档属性最好是一致的,归档属性不一样是否会出现问题,这个没测试,有兴趣的可以测试一下。 2、数据记录设置OK后,新建画面插入online trend控件,我的项目需要把趋势打印出来, 所以把控件的工具栏全部隐藏。 3、双击online trend控件,添加需要显示的归档变量。选择公共X,Y轴等参数。坐标显示 根据自己使用选择,基本上不用设置太多参数。 4、添加需要显示的历史归档变量后,就需要写脚本了,西门子工控网论坛有实例,实例提 示针对于一条曲线时使用,咨询西门子技术支持,如果需要同时显示两条曲线时,需要对两条曲线分别进行设置属性“控件.index=0,1”,但是测试其实只设置index=0的起始及结束时间就OK,就是论坛给的实例不是只针对于一条曲线,两条曲线时同样适用,再多的曲线就没测试了。 5、西门子默认的时间格式为“MM-DD-YYYY HH-MM-SS”格式,所以在设置趋势起始及 结束时间时需要注意。 6、注:导入归档数据需要一定的时间,建议按钮触发。尝试在画面打开时触发脚本,有的 时候会出现历史数据加载不上来。 7、脚本如下,仅供参考 Dim objConnection Dim strConnectionString Dim strSQL Dim objrs Dim chaxun '定义曲线控件 Dim TREND Dim strval_1

Dim strval_2 Dim strval_t1 Dim strval_t2 '初始化程序,省略N行。。。。。。。。。。。。。。。。。。。。。。。。。。。。 '初始化程序,省略N行。。。。。。。。。。。。。。。。。。。。。。。。。。。。 chaxun=HMIRuntime.Tags("管号查询输入").Read strConnectionString = "Provider=MSDASQL;DSN=REPORT;UID=;PWD=;" strSQL = "select * from report where guanhao='"&chaxun&"';" Set objConnection = CreateObject("ADODB.Connection") objConnection.ConnectionString = strConnectionString objConnection.Open Set objrs = CreateObject("ADODB.RecordSet") objrs.open strSQL,objConnection /赋值程序,省略,,,,,,,,,,,,,,,,,,,,,,/ /赋值程序,省略,,,,,,,,,,,,,,,,,,,,,,/ objrs.close Set objrs = Nothing objConnection.Close Set objConnection = Nothing '趋势时间设定 Set trend = ScreenItems("控件1") strval_r=HMIRuntime.Tags("测试日期_read").Read strval_t1=HMIRuntime.Tags("开始时间_read").Read strval_t2=HMIRuntime.Tags("测试时间_read").Read

wincc 常用脚本

D e a c t i v a t e R T P r o j e c t();//退出系统 #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 Actionforlogin(forexample,"mouseclick"event): #pragmacode("useadmin.dll") #include"PWRT_api.h" #pragmacode() PWRTLogin('c'); Logout Actionforlogout(forexample,"mouseclick"event): #pragmacode("useadmin.dll") #include"PWRT_api.h" #pragmacode() PWRTLogout(); PWRTLogin参数必须是CHAR字符。它指定了显示对话框的监视器。如果只使用一个监视器,那么保留默认参数“c”或者指定“1”。 注意 可以使用PASSLoginDialog函数来代替PWRTLogin?或者PWRTLogout函数。这个函数需要和函数PWRTLogin相同的参数。PWRTLogin?和PASSLoginDialog函数可以调用登录界面,在上面可以登录或者注销。函数PWRTLogout被正确执行并且不调用登录界面。 正确执行后这两个函数都返回“1”。然而,登录不会等到显示对话框之后。 注意 如果使用多个显示器,为了能使登录对话框显示在合适的显示器上,需要WinCCBasicProcessControl(OS项目编辑器)。

WinCC脚本案例保留

WinCC脚本案例保留 2010-09-16 16:44 最近做一个WinCC跟ERP通讯的一个小项目,将脚本语言保留下来,以备不时之需! 仅仅是保留,各位看官如发现不妥之处请加以指教. 1.通过扫描枪扫描到ID号传给PLC,WinCC读取到ID号从ERP数据库中查找相关数据,写回到PLC,并给PLC一个写完成确认信号.(数据库是SqlServer2000) Dim DB240trigger,db241trigger db240trigger=HMIRuntime.Tags("db240itrigger").Read db241trigger=HMIRuntime.Tags("DB241itrigger").Read Dim ss,str str=HMIRuntime.Tags("DB240szcoil_ID").Read ss=CStr(str) If (db240trigger=1 And db241trigger=0 ) Then Dim sPro,sDsn,sSer,sCon,sSql Dim oRsMaterial,conn,oCom,oItem,oRsSCHEMA Dim database,server,uid,pwd sCon ="driver=sql server;server=10.51.103.96;DATABASE=brgs_release;uid=sa;pwd=pasword" Set conn = CreateObject("ADODB.Connection") conn.ConnectionString = sCon conn.Open Set oRsMaterial = CreateObject("ADODB.Recordset") sSql= "SELECT * FROM dbo.BRGS_GP_Material where MkNo='" & CStr(ss) & "'" oRsMaterial.open ssql,conn,1,1 Dim m,n m=oRsMaterial.recordcount If m<>1 Then MsgBox "这个ID号找不到唯一的一条参数信息,请手动输入信息!" Exit Function End If Dim sCon2,sSql2

VB操作wincc脚本心得

Vbs 操作wincc画面脚本总结 一:不使用变量单纯的操作界面 1.操作某个画面中控件的属性如Home1.Pdl(总窗体)下的画面窗口2(画面窗口) Sub OnClick(ByVal Item) Dim objCircle Dim screenname Dim pwname Set objCircle= ScreenItems("圆1" ) objCircle.Radius = 60 Set screenname=HMIRuntime.Screens("Home1") //获取要操作的窗体 Set pwname=screenname.ScreenItems("画面窗口2") //获取要操作的控件,这里填入你要操作的控件名 MsgBox(objCircle.Radius) //输出圆的半径 MsgBox (pwname.Picturename) //输出当前画面窗口2的名字 End Sub 注意当调用某窗体下的某控件的某个属性时,需要声明两个对象,一个接纳这个控件,一个接纳值例如 Dim object Dim value Set object =HMIRuntime.Screens("Home1").ScreenItems("画面窗口2") Set value=object.picturename 2.更改画面窗口的对象 Sub OnClick(Byval Item) Dim opObject Set opObject=HMIRuntime.Screens ("Home1").ScreenItems("画面窗口2") opObject.PictureName="Page1.Pdl" End Sub 3.设置文本 Set titleTxt=HMIRuntime.Screens ("Home1").ScreenItems("静态文本2") titleTxt.Text =titleTxt.Text+"EF" //获取文本的值并追加字符 4.vb 字符串函数 VB的字符串截取函数有Left(字符串,n),返回字符串前N个字符;Mid(字符串,p,n),从第p个字符开始,向后截取N个字符;right(字符串,n),返回字符串的最后n个字符。 获取下标

WINCC 关于用户登陆注销的脚本

我有两个用户,分别是用户1和用户2,请教如何在启动WINCC6.0 SP3时,自动登陆到用户1而无须手动登陆? 将登录用户脚本编写在您项目的首画面中的Open Picture事件内。 在开始画面-》画面对象-》其他-》打开画面中添加“C动作” #pragma code("useadmin.dll") #include "PWRT_API.H" #pragma code() PWRTSilentLogin("用户1", "密码"); 注销用户的脚本: 在按钮动作里加入以下c脚本 #pragma code("useadmin.dll") #include "PWRT_API.H" #pragma code() PWRTLogin('1'); 最后一句改成PWRTLogout();就是退出 WINCC-如何使用自定义的对话框实现用户登录 在登录按钮中加处以下脚本: #pragma code("useadmin.dll") #include "PWRT_API.H" #pragma code() if (PWRTSilentLogin("username", "PassWord")) { //登录成功后的处理 } 其中"USERNAME","PASSWORD"可以用存储用户名和密码的变量替换.如: PWRTSilentLogin(GetTagChar("user"), GetTagChar("PassWord")) 当登录成功时,函数返回值为真;如登录失败,则返回值为假

WINCC--如何在程序中动态修改用户密码 1、点击“开始”--》“设置”--》“控制面板”--》“管理工具”--》“数据源(ODBC)”,打开ODBC 数据源管理器 2、在用户DSN页面的用户数据源中找到与当前项目所关联的一项,其名称为“CC_项目名_项目建立日期时间”,记下该项的名称 3、在脚本中加入以下代码: #pragma code("UseGen.dll") #include "USEGENAP.H" #pragma code() LPCMN_ERROR err; //定义的LPCMN_ERROR型变量,在函数调用中需使用 if (PWGENConnect("CC_ass_04-09-21_16:35:22",err)) //建立与数据库的联接,其中CC_ass_04-09-21_ 16:35:22用第二步中记下的名称取代 { if (PWGENChangePassword(GetTagChar("user"),GetTagChar("oldpassword"),GetTagChar("password"), err)) //修改密码,user,oldpassword,password分别为存贮用户名,原密码,新密码的内部变量,类型为文本变量8位字符集 { //密码修改成功后的操作,如给用户提示等 } } PWGENDisconnect(err); //断开与数据库的联接 4、编译运行程序 5、工作完成 6、与用户管理相关的函数定义存贮在APPLIB目录下的USEGENAP.H文件中,可根据上面示例自行完成添加用户,修改权限等功能。 WINCC-如何使用自定义的对话框实现用户登录 在登录按钮中加处以下脚本: #pragma code("useadmin.dll") #include "PWRT_API.H" #pragma code() if (PWRTSilentLogin("username", "PassWord")) { //登录成功后的处理 } 其中"USERNAME","PASSWORD"可以用存储用户名和密码的变量替换.如: PWRTSilentLogin(GetTagChar("user"), GetTagChar("PassWord")) 当登录成功时,函数返回值为真;如登录失败,则返回值为假

wincc按钮通过脚本更改的方法

wincc按钮通过脚本更改的方法 最近才发现用脚本真的可以让画面更加高大上一点,本来想做个做个文档,但真的是做不出来就再下面总结一下用法把:拿提示文本举例吧,提示文本是把鼠标放到上面有相应的提示,我们可以 通过VB函数修改比如打我们这个设备达到允许条件然后这个文本提示允许,也可以控制它的颜色让按钮 更加明显(修改颜色我不知道为什么必须用VBGreen的方式而RGB(200,0,0)的方式不可以,所以有知道的顺便解答一下) ''按钮文本 ScreenItems("按钮1").Text="启动" ''按钮字体大小 ScreenItems("按钮1").FontSize=20 ''按钮字体样式 ScreenItems("按钮1").FontName="隶书" ''按钮粗体样式 ScreenItems("按钮1").FontBold=True ''按钮加下划线样式 ScreenItems("按钮1").FontUnderline=True ''按钮斜体样式

ScreenItems("按钮1").FontItalic=True ''按钮字体颜色 ScreenItems("按钮1").ForeColor=vbGreen ''按钮文本的字体 是否自适应大小 ScreenItems("按钮1").AdaptBorder=False ''按钮是否可见 ScreenItems("按钮1").Visible=True ''按钮的背景颜色 ScreenItems("按钮1").BackColor=vbYellow ''按钮背景的闪烁 ScreenItems("按钮1").backflashingenabled=False ''按钮的文本闪烁 ScreenItems("按钮1").FlashForeColor=False ''按钮的提示文本 ScreenItems("按钮1").ToolTipText="1#电机" ''按钮的填充图案(根据手册设置该值) ScreenItems("按钮1").FillStyle=131077 ''按钮操作权限(0不可以操作,1可以操作) ScreenItems("按钮1").enabled=False ''按钮的高 ScreenItems("按钮1").Height=150 ''按钮的宽

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项目管理器的用户界面由以下元素组成:标题栏、菜单栏、工具栏、状态栏、浏览窗口和数据窗口:

wincc登录DIY

用户登陆事件 1 双击“用户管理器”---------右击“管理员组”----------“添加一个用户”后出现如图画面: “登陆”和“口令”等自己设定。 设置完成后,将在“管理员组”中自动生成该用户,单击你所建立的用户将会出现权限设置: 在此用户中我们允许了“变量输入”“画面编辑”“改变画面”“工艺

参数”这4种权限的使用。也就是说在成功登陆后,只有有以上四种权限(任意一种即可)的控件可以正常运行。 2 打开图形编辑器,添加一个按钮,文本内容设为“登陆”,确定后,打开按钮的“属性”----------“事件”--------“鼠标”-------“按左键”---------“C动作” #include "apdefap.h" void OnLButtonDown(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName, UINT nFlags, int x, int y) { #pragma code("UseAdmin.DLL") #include "pwrt_api.h" #pragma code(); PWRTLogin(1); // WINCC:TAGNAME_SECTION_START // syntax: #define TagNameInAction "DMTagName" // next TagID : 1 // WINCC:TAGNAME_SECTION_END // WINCC:PICNAME_SECTION_START // syntax: #define PicNameInAction "PictureName" // next PicID : 1 // WINCC:PICNAME_SECTION_END

wincc常用C脚本..

.用户注销: #pragma code ("useadmin.dll") #include "PWRT_api.h" #pragma code() PWRTLogout(); 2.用户登录: #pragma code ("useadmin.dll") #include "PWRT_api.h" #pragma code() PWRTLogin('c'); 3.关闭项目并退出wincc: ExitWinCC (); 4.退出运行到wincc资源管理器: DeactivateRTProject (); 按钮变三种颜色 #include "apdefap.h" long _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName) { #pragma option(mbcs) if(GetTagWord("TX/ZSH001")==1) return 0x0000ff00; else if(GetTagWord("TX/ZSL001")==1) return 0x000000ff; else return 0x00c0c0c0; } 一个调用按钮变色 #include "apdefap.h" long _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName) { #pragma option(mbcs) if(GetTagWord("NewTag")==0) return 0x0000ff00; else return 0x00ffffff;

wincc中常用C脚本

查看文章 wincc常用C动作 2010-06-27 10:31 1.用户注销: #pragma code ("useadmin.dll") #include "PWRT_api.h" #pragma code() PWRTLogout(); 2.用户登录: #pragma code ("useadmin.dll") #include "PWRT_api.h" #pragma code() PWRTLogin('c'); 3.关闭项目并退出wincc: ExitWinCC (); 4.退出运行到wincc资源管理器: DeactivateRTProject (); 5.结束监控并关闭计算机(会弹出确认对话框) HWND hWnd = NULL;//Author:Smartsys int iRet; hWnd = FindWindow(NULL,"WinCC-运行系统 - "); iRet=MessageBox(hWnd,"结束监控并关闭计算机", "关闭操作站",MB_YESNO|MB_ICONWARNING|MB_APPLMODAL); if(iRet==IDYES) DMExitWinCCEx (DM_SDMODE_POWEROFF); 6.点击事件弹出对话框,通过点击弹出对话框的确定和取消按钮实现对变量的置位或取消: int r; r=MessageBox(NULL, "YES为开,NO为关", "确定开命令:", MB_YESNO |MB_SYSTEMMODAL); if (r==IDYES) SetTagBit("TAGNAME",TRUE); else SetTagBit("TAGNAME",FALSE); 7.开显示关显示:(要在内部变量中建立三个二进制变量COLSE_DISPLAY、DISPLAY_NO和DISPLAY_COMMENT) // Funktion: Bit in Doppelwort setzen; if (GetTagBitWait("COLSE_DISPLAY")==1 )

VB操作wincc脚本心得精选文档

V B操作w i n c c脚本心 得精选文档 TTMS system office room 【TTMS16H-TTMS2A-TTMS8Q8-

Vbs 操作wincc画面脚本总结 一:不使用变量单纯的操作界面 1.操作某个画面中控件的属性如 Home1.Pdl(总窗体)下的画面窗口2(画面窗口) Sub OnClick(ByVal Item) Dim objCircle Dim screenname Dim pwname Set objCircle= ScreenItems("圆1" ) objCircle.Radius = 60 Set screenname=HMIRuntime.Screens("Home1") //获取要操作的窗体 Set pwname=screenname.ScreenItems("画面窗口2") //获取要操作的控件,这里填入你要操作的控件名 MsgBox(objCircle.Radius) //输出圆的半径 MsgBox (pwname.Picturename) //输出当前画面窗口2的名字 End Sub 注意当调用某窗体下的某控件的某个属性时,需要声明两个对象,一个接纳这个控件,一个接纳值例如 Dim object Dim value Set object =HMIRuntime.Screens("Home1").ScreenItems("画面窗口2") Set value=object.picturename

2.更改画面窗口的对象 Sub OnClick(Byval Item) Dim opObject Set opObject=HMIRuntime.Screens ("Home1").ScreenItems("画面窗口2") opObject.PictureName="Page1.Pdl" End Sub 3.设置文本 Set titleTxt=HMIRuntime.Screens ("Home1").ScreenItems("静态文本2") titleTxt.Text =titleTxt.Text+"EF" //获取文本的值并追加字符 4.vb 字符串函数 VB的字符串截取函数有Left(字符串,n),返回字符串前N个字符; Mid(字符串,p,n),从第p个字符开始,向后截取N个字符;right(字符串,n),返回字符串的最后n个字符。 获取下标 VB中的InStr()函数与InStrRev()函数: 都是在主字符串当中搜寻寻找子字符串,返回找到的子字符串在主字符串中出现的位置; 不同在于; InStr()函数,从左开始向右寻找,InStrRev()函数,从右开始向左寻找。 截取 right 和left 获取长度 Len

WinCC V6 -启动时运行时自动登录(无声登录)

过程自动化 > 过程控制系统 > SIMATIC PCS 7 > 操作及监控 > OS软件 > C 脚本 /动作 > 常问问题 WinCC V6 -启动时/运行时自动登录(无声登录) 问题: 重新启动后,不使用登录窗口如何以一个缺省用户的身份自动登录? 怎样确保运行期间有个缺省用户始终处于登入状态?即使另外一个用户已经预先退出。 解答: 重新启动以及在运行期间,您希望HMI系统达到最小的实用性而不使用登录窗口。然而,对于高级操作,登录功能应当保留。此外,如果没有用户 登录,则有一个缺省的用户自动登录。缺省用户的权限可以在用户管理器中根据需要设定。 可使用下面的C脚本执行此项功能,请按照下列步骤进行: 1.将附件中的函数“Silentlogin.pas”复制到项目中的“PAS”子文件夹中。 2.在项目中选择Global Script > C Editor > Actions > Global Actions 并打开全局动作(Global Action)“Silentlogin.pas”。 3.在“PWRTSilentLogin (“Login”,“Password”);”一行中,用缺省的用户名替换用户“Login”,用缺省用户的口令代替“Password”。 4.编译和保存C脚本。 5.用变量@CurrentUser 设置一个变量触发器,周期选择为“ 2 s”。这确保了系统不会因脚本而负荷过重。在所述的例子中,变量 @CurrentUser (包含当前登录的用户)每隔 2 秒钟被询问一次察看有无变化。只有当用户变化时才调用脚本,例如当前用户退出时。 6.确保已经在计算机的属性“Startup”选项卡上激活了“Global Script Runtime”。 除此之外,SIMATIC PCS 7(SIMATIC PCS 7 V6.0 SP1及更高版本)用户还需执行下列步骤: 1.将系统画面@Welcome.pdl 复制到一个安全的位置,以便可以恢复原始画面。 2.使用Graphics Designer打开画面@Welcome.pdl 。 3.打开保存在选定画面中的C脚本,(右击)> Event > Picture Object > Miscellaneous > Open Picture)。 4.注释掉“PASSLoginDialog(Screen);”一行,以 // 作为注释的前缀。 5.编译C脚本。 6.保存系统画面@Welcome.pdl 。 警告: 如果再一次运行OS Project Editor,确保不要从basic data中调用系统画面@Welcome.pdl。为此,对于@Welcome.pdl,不能选定“Basic Data > Basic pictures in project deviate from delivered state > accept delivered state”选项。< /p> 免费下载的文件 Silentlogin.exe ( 29 KB ) 样例程序是免费软件。每个用户都可以免费使用,复制或转发该程序。程序的作者和拥有者对于该软件的功能性和兼容性不负任何责任。使用该软件的风险完全由用户自行承担。由于它是免费的,所以不提供任何担保,错误纠正和热线支持。 关键字: 页码,1/2

WINCC脚本整理

切换按钮 001SetTagBit("TE_BOOL",!GetTagBit("TE_BOOL")); 002BOOL A A=GetTagBit("TE_BOOL"); if(A)SetTagBit("TE_BOOL",0); ElseSetTagBit("TE_BOOL",1); 003SetTagBit("TE_BOOL ",1-GetTagBit("TE_BOOL ")); I O域处的xx输入输出 在I/O域的输出值事件处的动作 Float F_TAG; F_TAG =GetTagFloat("TE_FLOAT"); return(F_TAG /100); WINCC运行画面最小化 HWND WinCCHwnd; WinCCHwnd=FindWindow("PDLRTisAliveAndWaitsForYou",NULL); CloseWindow(WinCCHwnd); WINDOWSxx提供的标准对话框 {BOOL bool1; HWND Hwnd; int iRet; Hwnd = FindWindow(NULL,"WinCC-运行系统- ");

if (!Hwnd) Hwnd = FindWindow(NULL,"WinCC-运行系统- "); if (!Hwnd) printf("\r\nGetWinCC Handle Failed!"); iRet=MessageBox(Hwnd,"确认合闸","确认对话框 ",MB_YESNOCANCEL|MB_ICONEXCLAMATION|MB_SETFOREGROUND|MB_SYSTEM MODAL); switch (iRet){case IDYES: printf("user do YES\r\n"); SetTagBit("TE_QUEST",1); break; case IDNO: printf("user do NO\r\n"); SetTagBit("TE_QUEST",0); break; case IDCANCEL: printf("user do CANCEL\r\n"); break;}} 本画框的功能是点击按钮的时候弹出windows询问对话框其中“确认合闸”为对话内容,对话框的名称为“确认对话框” 用户不同显示不同的按钮 你可以在用户管理器给每个用户不同的权限,使他们对按钮有不同的操作权,这是最简便的。但是如果一定要根据用户不同显示不同的按钮就要用C脚本了

相关文档
最新文档