關鍵詞:iFIX ,運行畫麵中修改用戶密碼 在zai工gong業ye領ling域yu中zhong為wei保bao證zheng生sheng產chan安an全quan現xian場chang操cao作zuo站zhan上shang的de操cao作zuo員yuan和he工gong程cheng師shi用yong戶hu的de密mi碼ma需xu要yao定ding時shi更geng新xin,然ran而er大da量liang操cao作zuo站zhan上shang安an裝zhuang的de是shi工gong控kong組zu態tai軟ruan件jian的de運yun行xing版ban,在zai這zhe種zhong情qing況kuang下xia組zu態tai軟ruan件jian隻zhi具ju有you運yun行xing功gong能neng而er不bu具ju備bei組zu態tai設she置zhi功gong能neng,其qi次ci現xian場chang情qing況kuang也ye不bu允yun許xu組zu態tai軟ruan件jian在zai生sheng產chan過guo程cheng中zhong退tui出chu運yun行xing因yin為wei這zhe樣yang會hui造zao成cheng不bu可ke預yu料liao的de後hou果guo。因yin此ci如ru何he在zai組zu態tai軟ruan件jian運yun行xing環huan境jing下xia修xiu改gai用yong戶hu密mi碼ma成cheng為wei工gong程cheng設she計ji者zhe必bi須xu麵mian對dui的de問wen題ti。實shi際ji上shang一yi些xie比bi較jiao完wan善shan的de組zu態tai軟ruan件jian提ti供gong了le針zhen對dui此ci需xu求qiu的deAPI接口,可以讓用戶方便的在組態軟件運行環境下修改自己的密碼。 下麵我們以應用比較廣泛的iFIX組態軟件為例逐步介紹如何實現此功能。 1、創建Windows組工具 創建Windows組工具有助於快速創建映射iFIX權限的Windows組: 當使用映射到iFIX安全權限的適當名稱創建Windows安全組時,可消除排版錯誤。 當創建Windows安全組時,可使用正確的語法。 使用映射到iFIX安全權限的適當名稱,創建Windows全局組和本地組。 在使用此工具之前,必須根據在本地計算機還是在Windows域上創建了Windows組,以本地計算機或者Windows域上的係統管理者或者帳戶操作者的身份登錄進入Windows。然而,iFIX的運行並不需要此工具。 圖 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組,則點擊“創建本地組”可以創建當前在列表框中被選擇的組。 點擊“創建域組”,則出現指定組創建域對話框。 如果正在Windows域上創建Windows組,則指定當前在列表框中被選擇的創建組的域名稱,如下圖所示。
 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工(gong)作(zuo)台(tai),建(jian)立(li)一(yi)個(ge)新(xin)的(de)畫(hua)麵(mian)並(bing)為(wei)其(qi)設(she)定(ding)最(zui)高(gao)的(de)安(an)全(quan)級(ji)別(bie),在(zai)畫(hua)麵(mian)上(shang)放(fang)置(zhi)一(yi)個(ge)按(an)鈕(niu)。下(xia)麵(mian)在(zai)按(an)鈕(niu)中(zhong)編(bian)輯(ji)腳(jiao)本(ben),首(shou)先(xian)選(xuan)中(zhong)按(an)鈕(niu)然(ran)後(hou)單(dan)擊(ji)鼠(shu)標(biao)右(you)鍵(jian)在(zai)快(kuai)捷(jie)菜(cai)單(dan)中(zhong)選(xuan)擇(ze)“編輯腳本”進入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 bNodeSignEnabled As Boolean Dim UserName As String Dim PassWord As String Dim UsrId As String Dim bExpired As Boolean Dim daysLeft As Long Dim bCanChangePassword As Boolean On Error Resume Next UserName = TextBox1.Text Set ESig = CreateObject("ElectronicSignature.ESignature") ESig.IsNodeSignEnabled bNodeSignEnabled If bNodeSignEnabled = True Then ESig.CheckAccountExpiration UserName, bExpired, bCanChangePassword, daysLeft If bCanChangePassword <> False Then ESig.PromptToChangePassword UserName Else If bCanChangePassword = False And bExpired = False And daysLeft = 0 Then MsgBox "用戶名不存在!" End If If bCanChangePassword = False And bExpired = False And daysLeft = -1 Then MsgBox "密碼不允許修改!" End If End If Else MsgBox "此節點沒有啟用安全機製!" End If End Sub 此段代碼的作用是調用iFIX安全機製並其當前的狀態,以及用戶名是否存在,如果存在則調用iFIX提供的修改密碼API程序界麵,實現對用戶密碼的修改。 5、啟用安全 在iFIX安全配置中啟用“用戶基本安全”
 配置完成後保存SCU文件運行示例畫麵觀看效果。
 結束語: 如上所述,經過對iFIX VBA的深入編程解決了在組態軟件運行環境下對用戶密碼的修改問題,更好保障了生產過程的安全運行。 參考資料:(1)劉炳文 . Visual Basic程序設計簡明教程 . 清華大學出版社 .2006年 (2)iFIX電子書 |