WinCC自定义用户登录(高级篇)

已锁定

iZhouSai

  • 帖子

    42
  • 精华

    8
  • 被关注

    81

论坛等级:侠士

注册时间:2015-01-21

普通 普通 如何晋级?

WinCC自定义用户登录(高级篇)

13365

36

2022-03-17 19:52:42

star star star star star

    在WinCC项目应用中避免不了用户登录这一操作,但是使用系统的登录或者自定义的登录(网络常规教程)方式都有一些缺陷,最主要的就是每次登录的时候都需要输入用户名,在用户过多或者做的项目较多的情况下,设计者很难记得每个项目的用户名称具体都是什么。

    针对这一现象我给的一个解决方案就是在自定义的登录(网络常规教程)的基础上增加用户名可选的下拉列表方式,可以给用户去选择相应的用户名,再输入正确的密码。

    先给大家展示一下实现后的效果,避免各位同仁在看到上述文字后失去向下阅读的兴致;

    

    我们可以看到用户名栏目可以进行一个下拉选择的操作。

    展示完毕,现在就说说这个具体是如何实现的;

  •     页面的布局

    • 我这边通过图片展示,其中<组合框>无需进行任何多余的设置,<I/O域>因为要输入密码所以需要进行特殊的设置,使其显示内容为 *********** 样式,具体设置方法如下(TIA WinCC):<属性>-<特性>-<勾选隐藏输入> 。 至于界面的美观性因人而异,大家可以按照自己的需求进行设置;

        


  • 实现思路

    • 在<画面>-<事件>-<已加载>时将WinCC用户管理中的各个用户的用户名填充到<组合框>中的各个选项中。

    • LOGIN <按钮>-<事件>-<单击> 时再获取<组合框>已经选择的内容和<I/O域>中的密码,使用用户登录的函数进行登录操作;

  • 具体实现

    • 首先WinCC用户管理中的用户数据都是存在WinCC运行时数据库中一个叫做 《dbo.PW_USER WHERE》的表中,以我的项目为例表中的内容如下:


      我们可以看到其中的内容不仅有用户名,还有用户组所以我们要通过SQL 查询语句进行筛选,SQL语句如下:SELECT NAME FROM dbo.PW_USER WHERE GRPID > 0

      可以看到所需的用户名就已经被筛选出来了,接下来我们就可以写数据库连接查询和相关操作的脚本代码了

    • 在画面的<事件>-<已加载>中添加VBS脚本,脚本撰写内容如下:


      注意需要将第29行代码替换成实际项目中<组合框>的名称,不然无法实现效果;

      我在实现上述内容遇到的问题,主要有一下几点:

          1.数据库始终无法连接成功,主要原因为 <@DatasourceNameRT>变量中的内容,带有R后缀,而实际存储用户名的表是不带R的,所以要通过代码 第15行删除后缀R。

          

          2.始终无法登录成功,主要原因为WinCC在设计表时NAME列的数据类型为nchar(25),当数据也就是用户不足25个文字时,字符串的长度始终为25个字符,不足的部分补【空格】,所以登录时始终显示不成功,这个问题折磨我一天,晚上整到12点还是没有解决(刚开始没有找到原因),找到这个原因后使用代码的第36行解决了这个问题;

    • 上述步骤正确无误的实现完毕后,就可以在画面中的<组合框中>选择相应的用户名了,之后在LOGIN <按钮>-<事件>-<单击>中添加C脚本,脚本撰写内容如下:


      注意需要将第14行代码替换成实际项目中<组合框>的名称,将第16行代码替换成实际项目中<I/O域>的名称,不然无法实现效果;

    • 然后退出登录实现 LOGOFF <按钮>-<事件>-<单击>中添加C脚本,脚本撰写内容如下:



            其中代码中的第13行主要功能为当退出登录后再关闭当前的窗口。因为我做的是弹窗的模式。同理用户登录成功以后也是要关闭当前窗口的,在登录脚本的第29-40有相应的业务逻辑。当然各位同仁也可以在成功后的处理中加入更多的功能,例如跳转页面之类的功能;

以上就是WinCC自定义用户登录(高级篇)的全部内容,欢迎大家指正讨论!


我这样做基本就是将这个登录界面与WinCC组态工程剥离了,也就是IT接称之为前后端分离吧,将这个登录框直接拷贝到任何项目中都是可以直接使用的,无需进行代码的更改!


附赠相关内容源代码:

源代码.zip


WinCC自定义用户登录(高级篇) 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC WinCC / Panel

共有30993条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。