利用KEPserver模拟通道转发组态软件内部变量

2021-09-02 16:26:36 栏目:kepware动态 TAG标签: kepware kepserver 组态软件 模拟通道 内部变量 查看()

遇到一个问题,数据采集的对象是某国产组态软件的内部变量,数据格式是字符串格式;数据主要为产品名称、批号、配方名称,起止日期和时间等,既有字母数字还有中文。

难点在于这款组态软件授权限制了数据共享转发,OPCUA功能根本没有,OPCDA访问需要单独再授权,数据还要转发到数据采集服务器。因是老系统(差不多十多年了),操作系统还是XP,供应商要价太高一个授权差不多2万了,领导不想这样挨宰,于是这块难啃的石头就落下来,不幸被砸中了。

想办法吧,虽然头疼,也得硬着头皮干活。

第一个方案:修改组态软件通过脚本或者事件动作等,周期触发把需要的字符串变量写入已经建立通讯的PLC,在PLC的空白存储区中转一下,再用数据采集服务器的实时数据库从PLC内读取。

经过一番折腾,确定了PLC的空白存储区域,修改组态软件,建立新的IO变量,通过事件动作写入PLC变量,结果电脑在PLC端在线查看目标内存区域始终是一片空白,切换数据格式,10进制、16进制、字符串格式等,都无法显示发送的测试字符串。直接在PLC端用PLC编程软件写内存,字符串显示正常。回过头来再看组态软件里的变量读上来的数据也正常,可是从组态软件端写入新的字符串却无法在PLC端看到。无奈折腾了2天,始终无法解决,IO变量总数也没超过授权限制,能读字符串却不能写,测测其他数据格式吧,结果整数浮点数都能正常写入PLC,无语了,单单字符串不能写。好无奈啊,怎么办?

第二个方案:装个kepware?虽然这软件很贵,但是如果只用模拟驱动,不买其他PLC的IO驱动好像也不用花钱,就用它做数据中转吧。

找来kepware6.4的安装包,赶快安装,结果白折腾,XP系统装不上,崩溃了………………

不死心,又找来kepware 5.11的安装包,这次安装成功了。建立了模拟通道,建立了字符串变量。组态软件端新建个OPC通道连接上kepware的模拟量,写入测试字符串,用OPCclient查看一下,字符串成功传送过来,再测试了中文字也能正常显示,看来有点眉目。

接下来是如何把数据转发到数据采集的服务器,这个问题怎么解决呢?还用OPCDA远程采集吗?头又开始大了

看看kepware5.11的帮助文件,发现支持OPCUA,太好了。只要OPCUA配置正确通讯正常,数据转发就不再是问题。赶快按照帮助文件里的说明,一步步设置,测试,又是一通折腾,经过多次失败,终于在数据采集服务器的OPCUA客户端看到传送过来的数据。