WinCC用户登录退出用户注销权限设置精编版

WinCC用户登录退出用户注销权限设置精编版
WinCC用户登录退出用户注销权限设置精编版

W i n C C用户登录退出用户注销权限设置

公司标准化编码 [QQX96QT-XQQB89Q8-NQQJ6Q8-MQM9N]

如何在WinCC中用按钮激活用户登录/退出对话框

方法:

1.画面上建立两个按扭,两个文本

2.

(1)在登录按扭鼠标动作中组态一个C动作,输入下面脚本:

#pragma code("")

#include ""

#pragma code()

PWRTLogin('1');

(2)在注销按扭鼠标动作中组态一个C动作,输入下面脚本:

#pragma code("")

#include ""

#pragma code()

PWRTLogout();退出按钮

(3)在操作员文本的的文本属性的动态添加@CurrentUser变量

3.项目管理器中找到用户管理器,在用户管理器中新建用户,为用户设置用户名和密码,分配权限

4.按钮的属性/其他/授权中选择用户管理

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 关于用户登陆注销的脚本

我有两个用户,分别是用户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登录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 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登录

用户管理器 添加用户组随意命名(eg.service) 添加新用户随意命名(eg.willi) 选择授权 End 组态对象权限 选中按键,选择属性—其它—授权,双击,选择权限 点击按钮,显示没有许可权

用户登录有两种方式:设置热键,脚本编程 使用热键 Wincc项目管理器中,右键单击项目名称选择属性 为登录和退出分配热键 脚本编程见图形编辑器C动作 图形编辑器 登录按钮 鼠标动作 #include "apdefap.h" void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName) { #pragma code("UseAdmin") #include "pwrt_api.h" #pragma code () PWRTLogin(1);

} 注销按钮 #include "apdefap.h" void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName) { #pragma code("UseAdmin") #include "pwrt_api.h" #pragma code () PWRTLogout(); } 输入输出域1 输入输出域2 使用附件--变量登录 将计算机分配给变量 WINCC用户管理器菜单,附件—变量登录—分配计算机

注:整型变量对键操作切换的应用才有意义 组态 附件—变量登录—组态 最小范围0—32767,最大范围0—32767,最大值必须大于最小值 用户分配 附件—变量登录—用户分配 在数值项的下拉列表中选择变量的数值,从用户项的下拉列表中选择希望分配给的用户,之后点击分配 注:每个变量置智能分配给一个用户 S32-0=1时用户willi自动登录,S32-0=0时用户willi自动注销

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 );// } else OpenPicture("你要进入的画面"); } 7.取消按钮中加入功能关闭此画面就可以了 中间的过程没有过于详细的描述。自己实验一下。

WinCC应用实例—用按钮实现登录与注销

WinCC应用实例—用按钮实现登录与注销 除了为登录或注销过程而组态的热键之外,WinCC还提供了函数PWRTLogin()来执行登录,函数PWRTLogout()用于注销。可以使用这两个函数,组态一个通过鼠标动作和键盘两者激活的独立按钮。还可通过按钮的热键属性设置功能键控制动作。用于登录和注销的函数是WinCC应用程序函数。可以在鼠标动作或按下按钮事件中使用C动作来调用函数。 由函数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();

打开“用户管理器”,新建用户“family” 用户权限设定(红灯亮的说明该用户有此操作的权限)

按钮授权配置:只有用户的权限包含按钮的权限时该用户才可以操作此按钮。

运行时登陆提示:

未登陆时操作提示: 成功登陆后操作提示: 登陆后再次单击“登陆按钮”会弹出下面的窗口,这时的“退出登陆”可以操作了,可以从这里退出登陆,而不用单独设置退出按钮了。

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

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 登录与注销C脚本程序

调用用户管理的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位字符集,连接一个输入输出域; “@NewPassword”用当前用户新密码,为需要创建的内部变量,文本变量16位字符集,

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是西门子公司推出的监控组态软件,它集成了SCADA、组态、Script语言、ActiveX 和OPC等先进技术,为用户提供了Windows操作系统环境下使用各种通用软件的功能。作为SIMATIC全集成自动化系统的重要组成部分,WinCC确保了与SI—MArC S5、S7和505系列PLC以及TDC连接的方便和通讯的高效,被越来越广泛地应用于化工、冶金、水电等领域“。WinCC组态环境和运行环境没有完全分离,软件使用者可以轻易进入组态环境,查看源程序,修改组态界面。而对于工程项目,软件组态环境的加密是十分重要的。一方面,加密可以保护工程软件编写人员的知识产权,对其劳动成果加以尊重;另一方面。可以防止未经授权的人随意改动程序而造成的经济损失和安全事故。通过某工厂的实际项目设计,本文深入系统研究了C/S(Client/Server)模式下WinCC软件组态环境的加密问题。 2、C/S模式的使用 本项目使用的是WinCC V6 SP2 ASIA,操作系统为Windows XP。采用C/S模式,配置一台服务器,两台客户机,组态多用户项目。服务器通过TCP/IP协议完成与下位机TDC 的实时通讯,接收下位机传送的外部过程数据。服务器进行复杂的运算,并将结果发送给下位机。服务器中WinCC集成了OEM数据库实例SQL Server 2000,可以进行内部变量及外部变量的实时快速归档,以及报警事件的归档。客户机上没有组态项目,只需登录服务器,运行服务器上的项目。因而,客户机不需要购买组态授权,只需一定点数的运行授权即可,这种模式可以降低软件造价。在C/S模式下,通过不同的客户机可以观看不同的监控画面,完成监控、报表、历史数据查询等多种功能。然而,在联网状态下任何一台客户机也可轻易地访问服务器的组态环境,可以修改组态界面,更改脚本代码。所以在C/S模式下,保护软件安全更为困难和必要。 3、ANSI·C和VBScript脚本的加密 虽然WinCC提供了标准的智能对象、窗口对象及ActiveX控件等组态工具。但是对于复杂的运算、后台任务等需要借助于脚本来完成。WinCC提供了两种脚本:ANSI.C和VBScript。在画面中组态的对象可以直接输入ANSI—C或者VBScript脚本代码。对于不重要的代码,采取这种方式比较省事。对于具有重要功能的代码,应该使用全局脚本编辑器。全局脚本编辑器位于WinCC资源浏览器下。包括C—Editor和VBS—Editor。需要多次引用或者需要加密的脚本,可以在全局脚本编辑器中编制项目函数(C)或者项目模块(VBS)。在画面中组态对象时,在其属性或者事件中就可以引用这些项目函数或者项目模块。全局脚本编辑器为函数和模块提供了加密功能。打开C—Editor或者VBS—Editor,点击菜单按钮“信息/触发”图标,在弹出的对话框界面为该脚本输入口令。同样,对于动作,也可以输入口令。这样,即使用户进入了组态环境,想更改脚本,也需要输入正确的口令才能看到脚本源代码。 4、应用C脚本对动作进行加密 在生产实际中,一些特殊的按钮,被不熟悉生产工艺的人随意操作,可能会引发安全事故。所以必须为这些按钮分配操作权限。只有被授权的用户,在输入用户名和密码之后,才能执行操作。分配操作权限的操作必须通过用户管理器来完成。在WinCC运行画面,WinCC提供了热键来自动弹出用户登录对活框。热键需要设置和记忆,加重了编程者和使用者的负担。所以在需要髓录用户的地方,设置了按钮,应用ANSI-C语言,编写了弹出输入用户密码的对话框的函数UserPW.fct,代码如下:

相关主题
相关文档
最新文档