一台主服务器,一台冗余服务器,10台客户机,在主服务器上建了 一个多用户项目,10台客户机直接调用主服务器上的项目,该项目为实现该厂生产线的全程监控,每台客户机都位于不同的操作台,都有自己的操作主画面,各个客户机的操作主画面都可以相互切换,现在厂方给我提了一个要求:每个客户机在自己的操作主画面上可以操作,切换到其他客户机的操作画面时只可以浏览不可以操作,要操作必须要登陆相应的权限。我的方法是:先建立了20个内部变量,为每个客户机分配两个变量,将每个客户机操作主画面里的输入输出域可操作的按钮等可操作的东西的可否允许操作员控制的属性与其中一个变量的值对应起来,再用一个输入输出域和两个按钮做成了一个具有一个密码输入框和一个“登陆”和一个“锁定”登录框,当输入的 密码正确时,相应的客户机操作主画面里的输入输出域可操作的按钮等可操作的东西的“可否允许操作员控制”的属性变为“允许操作员控制”,点击“锁定”按钮赋给变量一个不对的值,相应的客户机操作主画面里的输入输出域可操作的按钮等可操作的东西的“可否允许操作员控制”的属性变为“不允许操作员控制”,从而锁定画面。问题在这里:只要该操作台的画面是登陆的 情况下,其他操作台切换的它的画面不需要登陆密码也可以操作。这个方法是 不行的。刚做WinnCC画面没多久,水平比较低让高手见笑啦,请高手多 指点指点!先谢谢啦。
最佳答案
因为你用的是多用户的项目,你建立的那些内部变量都位于服务器上,当在一台客户机上更改了那些变量的数值,自然其它客户机上访问的该变量的值也是修改后的,自然不能实现分别控制权限的目的。
其实这个还是用WinCC标准的用户管理比较好。不同用户分配不同权限,不同画面的对象需要不同权限操作。那么要想操作某个画面上的对象,必须先登陆具有相应权限才可以。
如果顺着你的思路来说,也可以采用以下两个方法:
1、改成分布式客户机的项目。
每个操作站创建本地项目,导入服务器数据包。每个本地项目只做一个画面,画面里放一个画面窗口,调用希望的服务器画面(就是每个操作站想操作的默认画面)。然后每个客户机创建自己的内部变量,实现在本地的用户权限控制(因为分布式客户机允许创建本地的内部变量)
2、还用多用户项目。
不用内部变量来控制权限,而是用两套画面,一套是正常有权限可操作的,一套是没有权限不可操作的,当具有权限时调用可操作的画面,权限不够时调用不可操作的画面。画面的调用各个操作站是独立的,应该也可以实现要求
提问者对于答案的评价:
先得谢谢你拉,你讲很详细拉,终于知道该怎么做 了。
zhangli0和风雨中的彩虹,也讲的 不错。 在这里谢谢你们拉。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc278328.html