Intouch与Kepware通信,权限与控制的实现

一直从事组态软件的开发工作,却很少发表过类似的文章,本次项目上应用到了Wonderware公司的Intouch,项目上需要实现Intouch下发控制指令写Kepware的某开关量,并且需要实现权限控制,通过查看Intouch帮助文档,实现了Intouch与Kepware的通信,并制作了Intouch工程(请从空间的资料中下载),以供参考!

首先通过Intouch制作了模拟工程:demoapp1_1280,其中包括:包括三个窗口:主画面、权限警告、水泵房。并且通过Intouch.配置以下用户信息:

名称
密码
权限级别(AccessLevel)
Administrator
123
9999
demo
123
8000
lj
123
6000
权限实现说明:
  1. 在主画面中添加水泵房的链接按钮,双击按钮后选择动作绑定,在条件类型为鼠标左键/键按下时输入脚本:
IF ($AccessLevel>7500) THEN
    Show("水泵房");
ELSE 
    Show("权限警告");
ENDIF;
     2.   第一步中如果权限级别小于7500的话,将自动跳转至权限警告界面,在该界面的登录按钮的鼠标动作中绑定了
IF (1==PostLogonDialog())   AND $AccessLevel>7500 THEN
    Show("水泵房");
ENDIF;
     该脚本想通过点击按钮进行重新登录并且当权限大于7500时直接跳转至水泵房界面,但是每次在输入demo用户之后,需要再次按登录界面才自动跳转至水泵房界面,个人分析原因是:以上脚本虽然运行正常,但是需要再次点击登录按钮才能进行AccessLevel>7500的判定。以上便实现了只有当用户登录的权限大于7500才能登录水泵房界面,才能使用下一步的控制功能。
控制实现说明:
1. 通过Kepware配置工程文件test.opf (请从空间资源中下载),并配置了可读写的开关量c.d.b
2. 在Intouch工程中添加IO离散量testbool,选择可读写,配置Kepware的访问名时,请将应用程序名写为servermain,这样就 将通过Intouch的Suitelink协议绑定到kepware工程中的c.d.b开关量。
3. 在水泵房的控制按钮的鼠标点击动作中绑定以下控制脚本:
IF (testbool==0) THEN
    testbool=1;
ELSE 
        testbool=0;
ENDIF;
4.    测试是否控制成功:首先通过kepware打开test.opf,打开水泵房窗口,点击控制按钮,通过kepware的opc quick client查看c.d.b的值在0与1之间切换,oh yes 控制成功!
对于权限设定不清楚的可以查看Intouch帮助文档中安全性,模拟工程制作粗糙,请谅解!
资源下载地址: http://download.csdn.net/source/3371910

你可能感兴趣的:(组态)