FactroryTalk View SE使用VBA的小技巧
一、用户登陆
在SE中使用VBA时,调用SE内部命令的方法
1 2 3 4 |
Application.Login name,password If Application.CurrentUserName = name then Application.ExecuteCommand("Display xxxx") End If |
二、根据PLC变量弹出窗体
如果想实现PLC控制器里某个标签发生变化,则弹出某个提示界面,同样可以使用这个功能。比如控制器里面有个标签Tag1,当Tag1=1时显示名为 xxx 的画面,当Tag1=0时自动关闭该画面,则可以用以下方法实现:
1.添加数字显示控件
在画面上添加一个数字显示的控件NumericDisplay1,关联到PLC控制器里面的标签Tag1
2.添加VBA代码
在NumericDisplay1控件上点右键,选择VBA Code…,在弹出的VBA编辑器内增加以下代码。
1 2 3 4 5 6 7 |
Private Sub NumericDisplay1_Change() If NumericDisplay1.Value = 1 Then Application.ExecuteCommand ("Display xxxx") ElseIf NumericDisplay1.Value = 0 Then Application.ExecuteCommand ("Abort xxxx") End If End Sub |
三、获取计算机名和用户名
1.最简单的方法
获取计算机名:
1 |
Text1.text = VBA.Environ("computername") |
获取用户名:
1 |
text1.text = VBA.Environ("username") |
2.API的方法
获取计算机名:
1 2 3 4 5 6 7 8 |
Private Declare Function GetComputerName Lib "kernel32" _ Alias "GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long Private Sub Form_Click() Dim StrT As String * 255 GetComputerName StrT, 255 Text1.text = StrT End Sub |
获取用户名:
1 2 3 4 5 6 7 8 |
Private Declare Function GetUserName Lib "advapi32.dll" _ Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long Private Sub Form_Click() Dim StrT As String * 255 GetUserName StrT, 255 Text1.text = StrT End Sub |
坐等大佬D盘更新,祝大佬全家福寿安康
有公众号之类的吗,之前这个网站打不开了
[…] 关于使用Change…
[…] 关于使用Functi…
谢谢提醒,已删 :)