现场有一台计算机,目前通过MBE连接现场支持modbus tcp的仪表,想同时连接kepware,kepware作为OPC
Server,citect作为OPC
Client。节前试了一阵子,编译的时候错误很多。放松一段时间后,今天办公室加班的时候用unity模拟器和kepware模拟器测试了一下,居然成功了。需要赶紧记录下配置的过程,免得忘记了。
说句题外话,kepware似乎不支持连接plc的模拟器,好在kepware自己也有模拟器,这两方面今天发现的。
unity使用上一个博客的unity程序,先下载到unity的模拟器中。新建一个citect项目。
1. 在citect工程编辑器菜单“服务器”-“集群”中新建一个集群,配置如下:

2. 在citect工程编辑器菜单“服务器”-“网络地址”中新建一个地址,配置如下:

127.0.0.1表示是本机。
3. 在citect工程编辑器菜单“服务器”-“I/O服务器”,新建一个IO服务器,配置如下:

4.在citect工程编辑器菜单“通信”-“快速向导”,打开对话框,配置如下



因为后面还有OPC通讯的IO设备,为了区分,将这个设备定义成MBE_Dev,表示Modbus TCP通讯的设备

虽然连接的是模拟器,这里还是选择外部IO设备

因为unity模拟器中硬件为昆腾,通讯为modbus tcp,这里也这么选

这里的IP地址是PLC的IP地址,因为是模拟器,这里写127.0.0.1,无论是实际PLC还是模拟器,端口都是502

默认设置,不做修改

5.在citect工程编辑器菜单“通信”,分别打开“通讯板”、“端口”、“I/O设备”,可以看到向导里面的设置都在这里了。



这些设置保持不变
6.
在citect工程编辑器菜单“标签”-“变量标签”中新建一个标签,用于unity模拟器中变量通讯,配置如下

7.
在citect图形编辑器中新建一个页面main,插入一个数据显示控件,绑定变量realvalue1,保存,编译,运行,可以看到unity模拟器变量数据采集过来了。
接下来是citect连接kepware模拟器。
8. 运行kepware软件,新建一个channel(通道)。


设备类型选择simulator(模拟器)



9.
在channel1下新建一个device(设备)




10.新建一个tag(标签)

保存一下kepware模拟器设置。打开kepware组件opc quick
client,新建一个server

因为kepware也是在本机,所以就在local machine中选择OPC 服务器,可以看到kepware作为OPC
Server的名字是KEPware.KEPServerEx.V4。
新建一个Group(组)

在右侧添加item

图中Item ID中ID的写法就是在citect中opc标签地址的写法,这点需要注意。可以从browsing中浏览添加到OPC
Server的变量,那个绿色的勾点击一下,可以让opc client中这个变量类型和opc
server中保持一致。确定后就能在这个opc
client中看到有数据变化了。这个数就是kepware模拟器模拟了现场设备发生变化。

11. 在citect工程编辑器的菜单“通讯”-“快速向导”新建一个I/Oserver


IOserver保持不变,和前面MBE通讯的设备使用同样的IO服务器

I/O设备为了理解,名字设定为OPC_Dev





需要注意的是IO设备协议需要修改成OPC。在citect工程编辑器的菜单通信-I/O设备对话框中修改,其他不变。

在citect的工程编辑器菜单“标签”-“变量标签”中新建一个变量

地址就是前面在opc quick client中介绍的Item ID
在citect图形编辑器中新建一个数据显示控件,绑定变量realsim1。保存、编译、运行,就可以看到与kepware模拟器连接成功了。
有时候问题解决不了,放几天再想想,一下子就通常了。
加载中,请稍候......