驱动概述
iCentroView的驱动系统,是iCentroView采集数据的基础,iCentroView系统能够正确、准确地采集所需要的各种不同设备的数据,依赖于驱动的正确建立。所以驱动配置相当于iCentroView系统和底层设备之间通讯的桥梁。用户正确地选择所需要的驱动协议,正确地配置设备信息、变量地址信息,是iCentroView系统和底层设备建立通讯的必备条件。
注:本示例中的驱动配置过程以modbus协议为例,驱动配置过程大同小异。其它驱动协议,请参照iCentroview系统配置->服务端配置->SCADA节点总览配置->驱动配置中的详细说明。
驱动配置,通常包括以下三步:
u新建驱动
u新建设备
u新建数据块 支持免配块方式的驱动,此步骤可省。
驱动配置完毕,在变量配置中变量地址书写格式及驱动配置验证工具使用详见以下说明:
双击“SCADA节点总览->added_scadaname1(此处的名称是需要配置驱动的SCADA服务器节点名称)”下的“驱动配置”,打开驱动配置画面,如下图:
打开驱动配置的画面后,点击“添加驱动”按钮,弹出选择驱动的对话框,如图,此时,选择“modbus”驱动,如下图:
选择了modbus驱动,点击确定以后,效果如下图:
至此,驱动协议添加完毕。
选中驱动列表中的“modbus”驱动,并且勾选驱动前面的“签出框”,签出这个驱动。选中并签出后,点击上方的“配置驱动”按钮,打开modbus驱动的配置页面,如下图:
在设备列表中,选中空白的一行,右单击,弹出选择菜单,在菜单中选择“添加设备”,然后弹出modbus的添加设备的设备配置界面,如下图:
设备配置中的详细参数解释:
❖连接类型:本示例中,选择“TCPClient类型”;
❖协议类型:本实例中,选择“Modbus/TCP”;
❖设备名称:名字唯一,自行定义;
❖响应超时:响应超时时间;
❖IP地址:填写modbus所在的那个设备的实际IP,上图示例的127.0.0.1是本示例的本机上有modbus模拟器。此处可以配置主备两台设备,配置方式为:主机地址/备机地址。
❖端口号:modbus通讯的端口号,此处默认为502。
❖任务号:设备可以通过任务号进行分类,使用同一个任务号的设备之间是按照顺序以单线程的方式运行,而不同任务号之间是以多线程的并行的方式运行,不会相互影响。
❖支持多连接:根据设备情况填写,本例选择“否”。
详细Modbus设备配置参数及最新说明,请参考:配置modbus设备。其它驱动设备配置的具体用法,请参考:iCentroview系统的配置-服务端配置-驱动配置。
设备添加成功后,效果如图:
至此,设备添加完毕。
iCV驱动配置中数据块配置可分为两种配置方式:
1.免配数据块的方式(也叫自组块方式),此方式下,只需配置到设备,无需添加数据块。只有部分驱动具有免配块方式,具体请查看各驱动配置详细说明。对于支持免配块方式的驱动,推荐使用此方式,可以减少数据块配置的工作量;
2.配置数据块的方式,所有驱动都有数据块配置方式。
Modbus协议支持自组块方式,选择何种配置方式,有以下两个注意事项:
第一,不能混用
如果选择了自组块的方式,那么在配置驱动时,只需配置到设备级别,不必配置数据块。相应的,在配置变量时,必须按照自组块方式对应的变量地址格式填写变量地址;
如果选择了配置数据块的方式,那么在配置驱动时,需要配置到数据块级别。在配置变量时,按照有数据块方式对应的变量地址格式填写变量地址。
第二,自组块方式只支持modbus站号为1的设备
如果设备的站号不是1,那请选择配置数据块的方式来配置驱动。
对modbus站号为1的设备,推荐采用自组块的方式。S
配置数据块的方式
Modbus配置数据块方式,详细说明请参考:Modbus驱动>配置modbus数据块。其它驱动数据块配置的具体用法,请参考:iCentroview系统的配置-服务端配置-驱动配置。
选中设备列表中的任何一个设备,本例中为上面添加的“modbus_Device0”,选中设备列表中的设备,然后选中数据块列表的空白行,同时右单击,在弹出菜单中选择“创建数据项”,弹出数据块的配置列表,如下图:
数据块配置中的详细参数解释:
❖名称:名字唯一,由用户指定,本次示例中为:datablock1。
❖类型:输入AI/AO/DI/DO中的任意一个,此处的O为output的首字母大写。
❖地址:设备的真实地址,这个其实地址的含义是设备变量的起始地址。本次示例中,因设备类型选择了AO,此处的元素地址写了一个modbus AO变量的地址作为这个数据块变量地址的起始地址。
❖元素个数:用户要在数据块中保存的查询记录的最大条数。
对于AI、AO,为寄存器个数,最大为125,推荐最大使用120;
元素个数填写,不用最大值(此处的最大值指的是上面寄存器个数最大为125)的意义在于,当如FLOAT类型4个字节跨数据块时,可使用预留的部分进行两个数据块间的调整。实际上使用的数据块长度限制,是由于ModBus协议的通讯包限制的,每个数据块大小为256Byte。
对于DI、DO变量,元素个数指的是线圈个数,最大为1000;
❖元素大小:用户查询的每条记录的元素大小,对于AI、AO,为寄存器大小,输入2即可;对于DI、DO,输入1即可。
❖轮询周期:数据块定时查询的时间间隔。
❖相位:不用特别配置,驱动程序会自动区分。
❖任务号:同一个任务号的数据块之间是按照顺序以单线程的方式运行,而不同任务号的数据块之间是以多线程的并行的方式运行,不会相互影响。(注意:对不同的块配置不同的任务需要设备支持多连接)。
❖描述:对本数据块的描述信息。
❖可选参数1:为当前modbus设备的设备站号
❖可选参数2:可选项。
❖可选参数3:可选项。
注意:字段类型大小的和,不能小于所配置的元素大小;元素大小不能超过256个字节。
数据块配置好后,效果如图:
至此,数据块配置完毕。
各类变量设备地址参数配置因驱动不同、是否有配数据块而有不同的地址填写格式,Modbus协议设备地址格式详见Modbus协议>变量管理-设备地址格式。其他驱动变量设备地址格式详见各驱动配置说明。
在驱动配置、变量配置、部署完成后,可以使用iCV提供的小工具“RDA Monitor”查验数据,以确认驱动运行正常。本例中Modbus设备以Modbus模拟器代替。过程如下:
1.运行“RDA Monitor”小程序。(注:RDA Monitor是iCV中的一个调试工具,具体位置在“icv安装目录\executable”的文件夹中,双击运行即可。)
2.SCADA名称下拉框中选择刚刚配好驱动的SCADA服务器节点名,并点击“刷新变量列表”按钮。
3.窗口左侧“变量名称”框中选择要查询的AI或DI变量名,右侧即会展示该变量的所有属性值。若在属性值中看到变量的质量(A_QUALITY)为好(GOOD),时间戳是当前时间,数值(F_CV)为Modbus模拟器对应寄存器中的数值。可以确认驱动读命令成功,驱动程序已正常运转,数据被正确采集上来了。
4.尝试从“RDA Monitor”中下发一个控制指令:写值“127”下去,modbus模拟器应可以正确收到下发的控制指令,说明驱动写命令成功。效果如下图:
5.如果数据质量为“BAD”,说明驱动没有能正常运转。请仔细核对以上配置正确与否,如无误建议修改该驱动的日志配置级别为“DEBUG”,查看日志记录以确认驱动通讯不成功原因。日志文件配置修改方法详见调试及小工具>日志章节。由于DEBUG级别日志记录比较消耗系统资源,查找问题完成后,请立即恢复日志级别。