iCG驱动用于从iCentroGate设备上采集数据的驱动。
ICG驱动已经支持底层设备的通道冗余。
主要包含以下步骤:
注意:使用iCG驱动必须保证有vc7runtime环境,若遇到启动问题,先检查是否因为缺少VC7运行环境造成。
1.首先,需要配置好相应的SCADA节点。
2.双击SCADA节点下的驱动配置,进入驱动配置页面,在页面的左上方,可以看到“添加驱动”的按钮,点击添加驱动,弹出可用驱动的选择对话框,在可用驱动列表中,选择iCGDriver驱动所对应的“iCGDriver”,然后单击确定。
3.签出该驱动,点击“配置驱动”按钮
4.弹出iCGDriver配置的主界面
1.选择iCGDriver后点击确定按钮,签出iCGDriver,点击配置驱动按钮,系统弹出配置界面,在设备列表处点击鼠标右键,选择“创建设备”选项,如下图:
2.系统弹出设备配置窗口,填入相关配置项,如下图:
必填参数:
❖设备名称:不能为空,不能以数字开头
❖连接参数为:配置格式如下:
连接参数:主设备主链接/主设备备链接/备设备主链接/备设备备链接
每个链接格式为:ip,端口,用户名,密码,
其中密码可以为空,但是密码与用户名之间必须加个逗号,表示存在密码但是密码为空。
主设备主链接是必须的,其他可以不填,例如“link=168.2.239.5,9230,usr1,pwd1,”
如果设备支持多连接,可以配置成“link=168.2.237.5,9230,usr1,pwd1,;multiLink=1;”
multiLink=1表示设备支持多连接;
multiLink=0表示设备不支持多连接;
不配置的话默认单连接。
icg版本2.10以及以后的版本支持同一个用户名和密码多连接。
❖任务号:同一任务号下的设备消息放在同一个进程中。
3.点击确定按钮,完成设备配置。
注意:iCGDriver驱动支持免配块方式,若该设备下没有配置任何块,相应的变量配置参见免配块方式下的变量配置 。
对于ICG驱动而言,配置块与免配块方式最大的区别在于配置块时可以设置别名,并用别名作为设备地址进行tag点的配置。
1.选中已经配置的设备,在“数据块列表”中点击右键,如下图:
2.选择“创建数据项”,弹出数据块配置界面,如下图:
❖地址:对应到ICG中的点地址串,如下图:
红框标记的ICG中的点的地址为:ChnOPC.D.S.G.Simulation_Items_Random_Int4
❖别名:非必填项,自定义的icg点的别名。
❖长度:根据数据类型填写长度,int为4个字节、双精度double为8个字节、string是根据实际长度填写,不可超过255个字节,BLOB长度为255个字节。
❖描述:表示用户在数据块希望保存的变量记录数。
❖数据类型: 目前iCG支持int、double、string和BLOB类型,如果数据要做控制,该项为必填项。
其他配置项使用默认项。
3.配置完毕后,点击“确定”按钮,完成数据块配置。
4.配置完毕后,关闭配置界面,将iCGDriver签入则完成配置操作。
添加变量参见新增变量 。
注意:
❖配置完成后需要部署到scada节点,使得配置生效。
❖如果发现变量的值刷新慢,可以检查是否有错误的ICG点地址,如果存在错误的地址,则在读取这些变量时,会等待超时,从而影响其他变量的值的读取,使得整体的数据读取性能下降。
❖在配置变量的时候,icg同一个地址只能配置一种数据类型,如果之前这个点配置的数据类型是txt,则再配置blob类型的话会导致控制命令发送不下去,只能将之前的txt变量删除才可以。
在iCGDriver不配置块时,配置变量的设备地址填入实际ICG中的点地址,如下图:
要读取红框标记的ICG中的点,则在变量中配置变量地址如下图:
在iCGDriver配置了块时:
⟡若没有设置别名,则变量中的配置同免配块方式下的变量配置。
⟡若设置了别名,则变量中的设备地址输入设置的别名。
注意:对于iCV变量类型的配置,不论是免块方式配置,还是配置数据块的方式配置,iCV中变量的类型仅支持int32、double、TXT、BLOB这几种类型。
我们最多支持4个设备冗余,下面以四个设备为例子,配置一个通道冗余:
配置ICG驱动,添加设备,如下图:
“连接参数”中填写四个ICG设备的IP,第一个为主设备,其他以"/"为分隔;
格式:“link=168.2.239.5/168.2.239.6/168.2.239.7/168.2.239.8,9230,usr1,pwd1,”
ICG侧配置:
1.要保证通道上有Iostatus和Io_Work这两个点。
ICG特殊点配置说明:
不配Io_Work点:Iostatus代表网关和通道下设备的心跳和数据通信都正常;
配置Io_Work点:Iostatus仅代表心跳正常,Io_Work代表数据通信正常。
注意:IoStatus是icg内置点,整型,无需配置,Io_Work这个点需要添加并配置,可以是int或double。
2.四个ICG设备要配置相同的通道,相同的TAG点,以保证tag名相同;
ICV的ICG驱动监听Iostatus和Io_Work两个状态点的过程:
首先,读主设备主链接通道下设备的状态IoStatus。如果是0,再去读通道下设备的Io_Work,如果是0,才读取主设备主链接设备上数据,否则的话依次读取另外3个设备。如果四个icg对应通道下设备上IoStatus和Io_Work都不为0,则数据质量为bad。
至此,通道冗余配置完成。
1.在ICG中创建可写点IO_heart;
2.ICV定时向ICG中IO_heart点写变化的数据;
3.通过ICG端看IO_heart点是否持续变化来判断和ICV的通讯是否连通。
当icg检测到icv不更新Io_Heart这个点时,icg不向底层设备采集数据。