在工业领域中为保证生产安全现场操作站上的操作员和工程师用户的密码需要定时更新,然而大量操作站上安装的是工控组态软件的运行版,在这种情况下组态软件只具有运行功能而不具备组态设置功能控制工程网版权所有,其次现场情况也不允许组态软件在生产过程中退出运行因为这样会造成不可预料的后果。因此如何在组态软件运行环境下修改用户密码成为工程设计者必须面对的问题。实际上一些比较完善的组态软件提供了针对此需求的API接口,可以让用户方便的在组态软件运行环境下修改自己的密码。
下面我们以应用比较广泛的iFIX组态软件为例逐步介绍如何实现此功能。
1、创建Windows组工具
创建Windows组工具有助于快速创建映射iFIX权限的Windows组:
当使用映射到iFIX安全权限的适当名称创建Windows安全组时,可消除排版错误。
当创建Windows安全组时,可使用正确的语法。
使用映射到iFIX安全权限的适当名称,创建Windows全局组和本地组。
在使用此工具之前,必须根据在本地计算机还是在Windows域上创建了Windows组,以本地计算机或者Windows域上的系统管理者或者帐户操作者的身份
图 5-1 显示了创建Windows组工具。使用下图所示的过程创建Windows安全组。
图 5-1:创建Windows组工具
使用创建Windows组工具来创建Windows组:
从DYNAMICS目录中运行CreateWindowsGroups.exe程序。Windows组名称列表显示在列表框中。Windows组名称来自于当前的iFIX安全配置,包括用户配置的安全组和安全区域名称。注意:在使用创建Windows组工具之前,只有在安全配置程序中建立了组和安全区域名称,Windows组名称才显示在列表框中。
给希望创建的Windows组选择适当的过滤器和前缀类型。如果正在Windows NT v4.0 域上创建组控制工程网版权所有,则必须选择显示NT v4.0 名称过滤器。
在Windows安全中,从组名称列表框中选择希望创建的组。此列表应当包括代表相同iFIX安全权限的不同组名称。注意:使用Ctrl+Click可选择列表框的多组名称。使用Shift+Click可选择列表框的组名称范围。
如果正在本地计算机上创建Windows组CONTROL ENGINEERING China版权所有,则点击“创建本地组”可以创建当前在列表框中被选择的组。
点击“创建域组”,则出现指定组创建域对话框。
如果正在Windows域上创建Windows组www.cechina.cn,则指定当前在列表框中被选择的创建组的域名称,如下图所示。
2、向Windows组和所授权限分配用户
一旦创建了所需的Windows组,则可以给与iFIX安全权限相应的组分配Windows用户帐户。使用Windows用户管理器工具,可以给与代表iFIX所应当授予权限的组分配用户。为了修改密码至少要在“FIX Application Feature - AppVal 基础”、“FIX Application Feature - AppVal 运行”、“FIX Application Feature - 电子签名 - 操作者”、“FIX Application Feature - 电子签名 - 操作者” 这四个Windows组中加入要拥有修改密码权限的用户名,这里输入“asp”,该用户名将可以在iFIX运行画面中修改所有用户密码。
3、在IFIX中配置用户
进入iFIX安全配置,打开用户的配置文件,选中“使用Windows安全”选项,用户名为加入Windows组时的用户名,如果定义了域则要填入域名。为其分配相应权限。
4、编写脚本
进入iFIX工作台,建立一个新的画面并为其设定最高的安全级别,在画面上放置一个按钮。下面在按钮中编辑脚本,首先选中按钮然后单击鼠标右键在快捷菜单中选择“编辑脚本”进入VBA编辑器。选择“CommandButton1对象”,事件选择“Click”,输入如下代码:
Private Sub CommandButton1_Click()
Load UserForm1
UserForm1.Show vbModal
End Sub
此段代码的作用是调出用户名窗口以修改密码。然后选中窗体文件夹新建一个窗口命名为“UserForm1”加入标签控件、文字框控件、按钮控件分别命名为“Label1”、“TextBox1”、“CommandButton1”如图所示:
双击按钮控件输入如下代码:
Private Sub CommandButton1_Click()
Dim ESig As Object
Dim bNodeSignEn