《WINCC通过OPC访问自身WINCC数据》这题目名字是有点绕!但你没看错,确实是WINCC建立OPC通讯通道,访问本地WINCC项目自身的内部变量。
能通讯成功吗?能!有意义吗?还真的有。今天讲的就是昌晖以表工程师做过的一次项目的应用,一直感觉挺有意思的,所以写出来给大家分享。
那是一套空调自控系统的项目,某知名商业地产的。下位除了几十台DDC之外还有几十台S7-1200控制通风设备水泵等。上位是两台平行独立运行的WINCC。这是背景的配置情况。
系统中有一些控制参数,是在上位WINCC管理的,由于WINCC与DDC和S7-1200通讯都是使用OPC通讯,另外也多谢WINCC7.2内部变量可以支持掉电保持功能,所以这些控制参数就选择了使用WINCC的内部变量来保存。
为了便于管理和维护,两台电脑上的WINCC项目其实只做了一套,运行中通过用户权限管理来实现功能区域的划分和限制。原本也是正常的事。
但到运行中,客户就发现两台OS设置的参数不一致,不能同步刷新!由于两台WINCC都是单机运行,所以同步是不可能的。而提到说如果修改其中一台的项目,导致两台电脑因为这一点点原因就需要运行完全不同的程序,项目经理都直接否定了,说还不如就这样接受瑕疵运行呢。
好纠结啊!
然后就突然想到了这一点,想试试行不行?
过程是:新建立一个OPC通道,链接的站选择网络计算机上的本计算机的名字,OS1,然后选择opc.wincc,找到那些作为参数的内部变量,导入。导入时给这些变量增加了前缀cc_,这样那些tag1的变量,反手换了个cc_tag1名字变成外部变量了。
然后画面中打开设置系统参数的界面,选择所有控件,选择替换连接变量的名字,前面均加上cc_,保存,完成。
本机运行中,变量通过opc通道访问电脑名字为OS1的本机的变量,可以成功。而项目复制到另外一台电脑OS2后,由于OPC通道中定义的计算机名称为OS1,所以相关变量数据仍然来自OS1。
问题得到解决,前后只花了不到十分钟。