Modbus Tcp数据发布服务是将iCentroView的实时数据通过Modbus Tcp标准协议的方式发布出去,第三方应用可通过Modbus协议直接读取iCentroView中的实时数据,或通过此服务向设备发送控制命令。实施人员可配置需要发布的Tag点,以及对应的Modbus寄存器地址。
1.签出Modbus tcp服务配置
如下图,鼠标右键点击“modbus tcp服务配置”,并点击“签出”,即可进入Modbus tcp服务配置界面。
2.客户端配置页
客户端配置界面如下图:
客户端配置项:
❖端口:Modbus服务监听端口,默认为502;
❖IP限制:勾选之后,只有列表中的IP地址才能访问;否则所有IP都能访问;
❖IP:可以访问Modbus tcp服务的IP地址;
❖描述:填写IP的描述信息;
❖新增:点击新增,第3、第4项新配置好的可访问的IP会出现在IP列表中;
❖删除:选择要删除的IP地址,点击删除,即删除可访问的IP地址;
3.站配置页
站配置界面如下图:
站配置,如上图,点击新增站,弹出下面窗口。
在站配置属性框中,可填写站号,扫描周期和扫描相位。
❖站号缺省默认为1,建议不要修改。如果配其余号码,或添加多个站,在Modbus Tcp客户端数据访问时,需要根据服务器的站号配置站号地址,并且信号点的寄存器地址格式将变为“站号@寄存器地址”。而使用站号“1”,客户端访问则无需进行站号配置。
❖扫描周期设置最小为100毫秒,并且必须是100毫秒的整数倍,周期最大86400000(24小时)。
❖扫描相位必须是50毫秒的倍数,且必须小于扫描周期。
可通过变量查询,将服务器内的变量选择为本站发布的信号。
变量查询: 分别可以通过变量名、变量类型、设备名、所属驱动进行变量过滤。
选择要通过本站modbusTcp服务发布的变量,点击“>”,弹出下面对话框。(“》”符号表示全部选择)
❖起始地址:设置这批选中的变量的Modbus寄存器地址的首地址,地址的命名详见地址说明。除首个被选中变量,其他变量地址偏移,系统会根据数据类型自动添加。
❖域:有三种选项可以选择:
⟡F_CV:当前值
⟡F_QUALITY:数据质量
⟡F_TIMESTAMP:数据时间戳
不选域的话,默认为当前值(F_CV)。
点击修改站、删除站,分别可以对站进行修改和删除的操作。
点击保存配置,并签入。
部署后,此站点即为modbusTcp服务发布。
注意:
❖所选对象变量必须配置域名,即:若使用F_CV,该变量必须配置域名F_CV。
❖建议不同数据类型的变量(Tag),分别归属不同站号管理,这样分类编辑在批量分配地址时,会降低Excel操作的复杂度。
1.批量选变量
在选择变量时,支持shift键批量选择变量,如下图:
选中需要的变量,点击“>”,会弹出如下窗口:
起始地址为第一个选中点的Modbus寄存器地址,地址的命名详见地址说明,后面点的地址偏移是按照点类型系统自动递增添加。
2.配置的导入导出
为了更方便的编辑ModbusTCP发布信号点表,支持导出成excel格式文件进行编辑,再导入的方式。
❖导出配置
点击导出配置,弹出下面对话框,选择要保存配置的路径,点击保存。缺省文件名,以"ModbusSvrCfg_时间.xlsx"为名,当然也可自定义。
❖导入配置
点击导入配置,选择修改好的配置文件,打开即可。
❖配置文件在EXCEL中编辑说明
配置文件内有以下几个分页:
⟡Basic Config:端口配置、IP限制参数配置;
⟡IP Config:可访问IP参数配置;
⟡Station Config:站点基本属性配置;
⟡Tag Config:站内信号点表配置;
建议除“Tag Config”页,其他不在配置文件中修改,而选择在界面中修改。
“Tag Config”页由以下几列构成,如下图:
⟡站号:要与“Station Config”页定义的站号一致;
⟡变量名称:参考导出的变量名格式填写,格式为:“节点名.变量名.域名”;
⟡地址:详见Modbus地址说明;
⟡长度:指变量的字节长度,单位:字节。为了方便编辑,建议将同种长度的变量放在一起;
⟡类型:请根据变量类型,以下表中代码填入;
类型代码 |
变量类型 |
变量类型说明 |
---|---|---|
0 |
DT_ASCII |
ASCII string, maximun:127 |
1 |
DT_SINT16 |
16 bit Signed Integer value |
2 |
DT_UINT16 |
16 bit Unsigned Integer value |
3 |
DT_FLT |
32 bit IEEE float |
4 |
DT_BIT |
1 bit value |
5 |
DT_TIM |
4 byte TIME (H:M:S:T) |
6 |
DT_ULONG |
32 bit integer value |
7 |
DT_SLONG |
32 bit signed integer value |
8 |
DT_DBL |
64 bit double |
9 |
DT_BLOB |
blob, maximum 65535 |
10 |
DT_CHAR |
8 bit signed integer value |
11 |
DT_UCHAR |
8 bit unsigned integer value |
12 |
DT_INT64 |
64 bit signed integer value |
13 |
DT_UINT64 |
64 bit unsigned integer value |
14 |
DT_CV_TIME |
64 bit cv time (second + usecond) |
15 |
CV_MAX_NUMBER_DATATYPE |
Total number of Datatypes |
根据Modbus协议地址规则,我们的地址是个6位数,由1位信号类型及5位寄存器地址构成。
DI类型信号地址为:1XXXXX;
DO类型信号地址为:0XXXXX;
AI类型信号地址为:3XXXXX;
AO类型信号地址为:4XXXXX;
后5位数XXXXX为10进制数表达,根据modbus协议,每种信号类型我们可以使用的寄存器是65535个,即十六进制表达:FFFF个。1个寄存器是16bit,因此对于一个32位的变量,其长度为4个字节,占用2个寄存器地址。
Modbus tcp服务发布后的点可供其他SCADA产品通过modbus驱动进行读写操作,详见Modbus驱动配置。