WINCC制作用户输入密码登录画面步骤
如何在WinCC中用按钮激活用户登录
如何在 WinCC 中用按钮激活用户登录/退出对话框
方法:
1. 画面上建立两个按扭,两个文本
2.
(1)在登录按扭鼠标动作中组态一个 C 动作,输入下面脚本:
(3)在操作员文本的的文本属性的动态添加@CurrentUser 变量
3. 项目管理器中找到用户管理器, 在用户管理器中新建用户, 为用户设置用户名和密码, 分配权限
(
4.按钮的属性/其他/授权中 选择用户管理
#pragma code("useadmin.dll") #include "PWRT_API.H" #pragma code() PWRTLogin('1');
(2)在注销:
#pragma code("useadmin.dll") #include "PWRT_API.H" #pragma code() PWRTLogout(); 退出按钮
WINCC讲义4-输入输出
在弹出的编辑动作对话框中分别输入如下代码;
//登录脚本
#include "apdefap.h"
void OnLButtonDown(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName, UINT nFlags, int x, int y)
热键登录:
在WINCC项目管理器中,右击项目选择属性,对热键进行分配,将登录设为Ctrl+Alt+l,退出设为Ctrl+Alt+x。再次运行系统,当需要进行相应操作时,可以利用热键进行登录如图4-3所示。
对话框登录:
除利用热键登录,还可以在画面上组态登录登录按钮,利用按钮进行登录,在画面上组态两个按钮分别为用户登录和用户注销,在属性编辑中的按钮事件,选择C动作,如图4-4所示。
此题目要求主要涉及WINCC的用户管理功能,双击WINCC用户管理器,弹出如图4-1所示对话框,首先添加新用户,并设置密码。
图4-1
在管理员组的图标处点右键,选择添加新用户,添加两个用户,分别命名为管理员和操作员,之后对用户进行授权,选中相应用户,在图4-1右侧的授权管理窗口双击授权项,对操作员进行过程控制的授权,对管理员进行变量输入和过程控制两项授权,之后退出。
{
#pragma code ("UseAdmin.dll");
#include "pwrt_api.h"
gout();
}
3.3思考练习
尝试设置更多的用户权限。
四、用户管理与授权
控制要求:
对训练3的过程监控中,正常情况下,参数的改变不是任何人都可以操作的,这就要对其进行权限的设定,本题目要求实现三级用户管理:管理员、操作员、一般用户。
密码设置和报警组态示例说明
密码设置和报警组态示例说明1、工作任务要求:组态两个界面:欢迎界面和运行界面,启动时进入欢迎界面,按下“运行界面”按钮,将首先弹出用户登录框,要求选择用户并输入密码,选择用户为张三,键入预设密码“12345”。
若密码正确,系统将检查是否准备就绪,界面上有一个切换开关,触摸此开关,可使开关量“就绪”取反。
①若系统已准备就绪,打开运行界面窗口。
②若系统尚未准备就绪,弹出报警窗口,指示“系统未准备就绪!”,触摸报警窗口中的“确认”按钮,报警窗口消失。
系统切换到运行界面后,触摸返回按钮,返回到欢迎界面。
2、组态过程说明⑴用户权限设置点击工具栏,出现下拉菜单,点击“用户权限管理”,弹出“用户管理器”框。
点击左下角的“新增用户”,弹出“用户属性设置”框,填入用户名“张三”,设置用户密码为“12345”,确认之。
在下框中勾选隶属用户组为管理员组。
确认后退出用户管理器,即完成用户权限设置。
⑵在欢迎界面上“运行界面”按钮按下脚本组态:IF !LogOn( )=0 THENIF 就绪.Value=1 THEN!SetWindow(运行画面,1)ELSE!OpenSubWnd( 提示窗口,350,150,310,140,0)ENDIFendif⑶“运行界面”按钮按下脚本用到二个系统函数,一是!LogOn( ),二是!SetWindow( ),三是!OpenSubWnd( )。
它们的使用方法如下:•!LogOn()函数意义:弹出登录对话框。
返回值:数值型。
返回值=0:调用成功;<>0:调用失败。
参数:无。
实例:!LogOn()。
•!SetWindow(WndName,Op)函数意义:按照名字操作用户窗口,如打开、关闭、打印。
返回值:数值型。
返回值:=0:调用正常;<>0:调用不正常。
参数:WndName,用户窗口名,字符型。
Op: 操作用户窗口的方法,数值型。
Op=1:打开窗口并使其可见。
Op=2:打开窗口并使其不可见。
WINCC登录设计教程
建立用户内部变量的建立全局脚本函数EnumUser#pragma code ("UseGen.DLL") #include "usegenap.h"#pragma code ()CMN_ERROR err;CMN_ERROR Error;LPCMN_ERROR error;DWORD countname;char usedata;extern BOOL MyPWGENEnumUsersCallBack ( LPWGEN_USERINFO lpUserInfo ,PVOID lpUser); VOID EnumUser(){if(PWGENConnect("",&err)){PWGENEnumUsers (&countname,MyPWGENEnumUsersCallBack,&usedata,error);SetTagSDWord("count",countname); //Return-Type: BOOLprintf("Count:%2d\r\n",countname);}else{printf("PWGENConnect Error :%d\r\n",err);}全局脚本函数MyPWGENEnumUsersCallBack#pragma code ("UseGen.DLL")#include "usegenap.h"#pragma code ()BOOL MyPWGENEnumUsersCallBack ( LPWGEN_USERINFO lpUserInfo, PVOID lpUser) {static int n=0;if(n==GetTagWord("count"))n=1;elsen=n+1;switch(n){case 16:SetTagChar("username16",lpUserInfo->login);break;case 15:SetTagChar("username15",lpUserInfo->login);break;case 14:SetTagChar("username14",lpUserInfo->login);break;case 13:SetTagChar("username13",lpUserInfo->login);break;case 12:SetTagChar("username12",lpUserInfo->login);break;case 11:SetTagChar("username11",lpUserInfo->login);break;case 10:SetTagChar("username10",lpUserInfo->login); break;case 9:SetTagChar("username9",lpUserInfo->login); break;case 8:SetTagChar("username8",lpUserInfo->login); break;case 7 :SetTagChar("username7",lpUserInfo->login); break;case 6:SetTagChar("username6",lpUserInfo->login); break;case 5:SetTagChar("username5",lpUserInfo->login); break;case 4:SetTagChar("username4",lpUserInfo->login); break;case 3:SetTagChar("username3",lpUserInfo->login); break;case 2:SetTagChar("username2",lpUserInfo->login); break;case 1:SetTagChar("username1",lpUserInfo->login); break;}return TRUE;}画面窗口属性设置登录按钮脚本#include "apdefap.h"void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName){#pragma code("useadmin.dll")#include "PWRT_API.H"#pragma code()SetPropChar("main.pdl","pic_denglu","Captiontext","正在验证,请稍后......");if (PWRTSilentLogin(GetTagChar("usernamestr"),GetTagChar("passwordstr"))==TRUE){SetTagBit("@Visible1",0);SetTagChar ("passwordstr", "");}else{SetPropChar("main.pdl","pic_denglu","Captiontext","密码不正确,请重新输入");}}注销按钮脚本#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()PWRTLogout();//SetTagBit("@Visible1",0);//SetTagWord("@Picture",0);}取消按钮脚本#include "apdefap.h"void OnLButtonDown(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName, UINT nFlags, int x, int y){#pragma option(mbcs)SetTagBit("@Visible1",0);}I/O输入输出域设置VB脚本Sub InputValue_OnPropertyChanged(Byval Item, Byval value) Dim obj1,obj2Set obj1=ScreenItems("I01")Set obj2=HMIRuntime.Tags("passwordstr")'obj2.Write obj1.Text,1End Sub用户登录(画面脚本VB)Sub OnOpen()Dim obj1,obj2,obj3,obj4,obj5,namecount,nDim name1,name2,name3,name4,name5,name6,name7,name8,namestr,userstr Set obj1=ScreenItems("combox1")Set obj2=HMIRuntime.Tags("count")obj2.Readnamecount=obj2.Valuen=1Do While (n<namecount+1)namestr="name"&nuserstr="username"&nSet namestr=HMIRuntime.Tags(""&userstr&"")namestr.Readobj1.AddItem namestr.Valuen=n+1LoopEnd Sub组合框脚本Sub Change(ByVal Item)Dim obj1,obj2Set obj1=ScreenItems("combox1")Set obj2=HMIRuntime.Tags("usernamestr")obj2.Write obj1.Text,1End Sub用户显示备注:AP_PBIB出错#include "AP_GLOB.H"#pragma code ("UseGen.DLL")#include "usegenap.h"#pragma code ()void Delay (long int ms); //GSC_NAME:Delay G SC_PROTOTYPE:\delay.fctvoid cc_playsound (char* lpszSoundFile); //GSC_NAME:cc_playsound GSC_PROTOTYPE:\cc_playsound.fctvoid EnumUser (); //GSC_NAME:EnumUser G SC_PROTOTYPE:\enumuser.fctBOOL MyPWGENEnumUsersCallBack (LPWGEN_USERINFO lpUserInfo, PVOID lpUser);//GSC_NAME:MyPWGENEnumUsersCallBack GSC_PROTOTYPE:\mypwgenenumuserscallback.fctvoid getmouse (); //GSC_NAME:getmouse GSC_PROTOTYPE:\getmouse.fct。
为什么我的winccflexible 在设定用户组密码时候,LOG ON窗口只有密码输入栏
为什么我的winccflexible 在设定用户组密码时候,LOG ON窗口只有密码输入栏
看书上的样例要输入用户名与密码啊,为什么我的只能输入密码不能输入用户名呢?在哪里可以设置?
问题补充:
我在按钮上调用事件里面的函数showlogondailog,点击按钮后可以弹出对话框,但是只有密码输入,没有用户名输入。
这是怎么回事?
最佳答案
如果你问的是在用户视图中修改用户密码的话用户视图中只有两个密码输入没有用户名输入的话,那么WINCCflexible用户视图中单击修改密码只有两行密码输入框,如果修改用户名则需要双击用户名出现文本光标后即可修改,如果你没有登录的话肯定是有用户名与密码登录窗口的,还有showlogondailog函数在你单击的时候肯定是有用户名输入与密码输入窗口的。
在用户视图中是不需要调用showlogondailog函数的。
如果你在窗口用按钮单独调用showlogondailog函数只有密码的话那么你是在“运行系统安全性设置”里面启用的“只能使用密码登录”选项。
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-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域为密码的输入,如下图创建新的IO域,并新建变量string1,变量类型为字符串型,创建按钮显示为用户名显示;创建IO域的属性和按钮的属性将变量string1添加到IO域的属性中按钮属性窗口中事件中的单击,添加函数GetUserName,输出变量设置为string1创建用户登录按钮,并将以下脚本赋予登录按钮,具体操作如下新建脚本Script_1Dim objtestDim objstring1Dim objpassword1objtest=SmartTags("test")rem objstring1=SmartTags("string1")objpassword1=SmartTags("password1")If objtest=2 And objpassword1="123" Thenstring1="user1"Logon objpassword1,string1End IfIf objtest=4 And objpassword1="234" Thenstring1="user2"Logon objpassword1,string1End If双击用户登录按钮,事件中,单击将函数Script_1选中,再添加SetValue函数,将变量password 置空添加按钮,命名为注销用户,同理添加函数logoff,再添加SetValue函数,将变量string1置空完成如图运行。
WINCC设置登录名和密码
我在WINCC上面组态了画面,想做成只有登录正确的用户名和密码,才能进行画面中的操作.请问怎么做啊?我做了下悬赏分:0 |解决时间:2010-11-24 22:44 |提问者:wh544最佳答案具体步骤如下:1.在启动画面中插入“画面窗口”。
设置属性为隐藏。
2.新创建画面窗口“密码保护.PDL”3.插入2个输入输出域,2个按钮,更改名为1,2分别是用于“用户名”输入;“密码”输入;确定;取消4.在用户名的输入输出域的事件属性->输出/输入->输入值->更改加入C脚本函数在时间属性里加的#include "apdefap.h"void OnPropertyChanged(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName, char* value){SetOutputValueChar(lpszPictureName,lpszObjectName,GetInputValueChar(l pszPictureName,lpszObjectName));}5.按照上面做的在密码输入输出域里加入同样的C脚本6.在确定按钮的事件->按钮->鼠标按下加入C脚本#include "apdefap.h"void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName){#pragma code ("UseAdmin.DLL")#include "pwrt_api.h"#pragma code ()if(PWRTSilentLogin(GetInputValueChar(lpszPictureName,"1"),GetInputValueC har(lpszPictureName,"2")) == FALSE)MessageBox (NULL, "错误,请重新输入!" , "提示",MB_ICONEXCLAMATION| MB_SYSTEMMODAL );// }elseOpenPicture("你要进入的画面");}7.取消按钮中加入功能关闭此画面就可以了中间的过程没有过于详细的描述。
WINCC-使用对话框实现用户登录的方法
WINCC-使用自定义的对话框实现用户登录?1、首先建立两个输入输出域,分别定义为1,2,在输入输出域的对象属性-属性-输出/输入-输出值连接变量@CurrentUserName,对象属性-事件-属性主题-输出/输入-输入值-更改添加代码:SetOutputValueChar(lpszPictureName,lpszObjectName,GetInputValueChar(lpszPictureName,lpszObjec tName));2、在登录按钮中加处以下脚本:#include "USEGENAP.H"#pragma code ("UseAdmin.DLL")#include "pwrt_api.h"#pragma code ()if (PWRTSilentLogin(GetInputValueChar(lpszPictureName,"1"),GetInputValueChar(lpszPictureName,"2")) == FALSE){if(MessageBox (NULL, "错误,请重新输入!" , "提示", MB_ICONEXCLAMATION| MB_SYSTEMMODAL ));}else{//OpenPicture("你要进入的画面");}其中"USERNAME","PASSWORD"可以用存储用户名和密码的变量替换.如:PWRTSilentLogin(GetTagChar("user"),GetTagChar("PassWord"))当登录成功时,函数返回值为真;如登录失败,则返回值为假。
3、在退出按钮中添加代码:#pragma code ("useadmin.dll")#include "PWRT_api.h"#pragma code()if(PWRTLogout()){MessageBox (NULL, "用户已退出!" , "提示", MB_ICONEXCLAMATION| MB_SYSTEMMODAL );}以下为空。
详细WINCC用户登录系统画面
关于WINCC用户登录画面的详细解决办法本人在网上找了很多关于这类的文章和解决办法,但效果都不是很好,要么过于简单.要么有问题,现本人整理了下.方便大家解决这个问题.1.首先打开WINCC用户管理器.如图:1.新建用户取名为admin,当然自己可以更换为其他的,并选择相应的权限,如图:2.新建画面,取名为login.dll并添加两个按钮,如图:只有当点击登录系统并输入正确密码后,才能进入画面.3.选择登录按钮-属性-事件-鼠标-按左键,加入C动作,内容如下: #pragma code ("UseAdmin.DLL")#include "pwrt_api.h"#pragma code ()PWRTLogin('e');如图:4.编辑进入画面按钮-属性—其他-授权-选择用户管理.如图:5.再次编辑进入画面按钮-事件-鼠标-按下左键-直接连接,如图:常数选择你要跳转的画面,当前窗口选择画面名称.[常数选择前需新建你的主画面]这样一个简单的用户登录画面就完成了.当然你可以优化一下,根据你的情况更改.浅析规则式植物造景和自然式植物造景苏旺指导老师:汪小飞(黄山学院生命与环境科学学院,安徽黄山245041)摘要:本文分析了规则式植物造景和自然式植物造景,和他们各自的造景特色和主要适用在什么场合。
探讨了规则式植物造景和自然式植物造景二者包括的造景形式以及他们在造园体系、表现手法上的不同点。
介绍了它们在各个国家、地域的各有特色。
最后我们应该适宜运用各种造景形式。
关键字:规则式植物造景,自然式植物造景Analysis of rule-plant landscaping andnature plant landscapeSu WangDirector:Wang Xiaofei(College of Life & Environmental Sciences, Huangshan University,Huangshan245041, China)Abstract:This article analyses the rules scene building with plants and nature plant landscape, and their landscape and mainly used on occasion.Discusses rules for scene building with plants and nature plant landscape landscape including the two forms as well as their gardening system, on the presentation of different points.Describes them in the various countries, geographical features.Finally we should be appropriate to use various landscape forms.Keyword:Rules-plant landscaping, nature plant landscape1.树木配置的形式按照树木的生态习性,运用美学原理,依其姿态、色彩、干形进行平面和立面的构图,使其具有不同形态的有机组合,构成千姿百态的美景,创造出各种引人入胜的树木景观。
