McgsPro BACnetIP协议串口设备通信驱动

下载

McgsPro_BacnetIP_v6_0_0_1_20200506.rar

设备简介

本驱动构件用于MCGS软件通过BACnetIP协议读写支持BACnetIP协议设备的数据;

驱动类型 串口子设备,须挂接在“通用TCP/IP父设备”下才能工作
通讯协议 采用BACnetIP协议
通讯方式 一主一从、一主多从方式。驱动构件为主,设备为从。

 

1、 设备通讯参数

“通用串口父设备”通讯参数设置如下:

设置项 参数项
本地IP地址 200.200.200.1
本地端口号 45670
远程IP地址 200.200.200.2
远程端口号 47808

其中父设备通讯参数设置应与设备的通讯参数相同,否则无法正常通讯。

设备通讯参数的具体设置请参见对应设备手册。

注意端口号的设置

2、 设备构件参数设置

“莫迪康ModbusRTU”子设备参数设置如下:

ACnetIP设备构件参数设置

内部属性:单击“查看设备内部属性”,点击按钮进入内部属性,具体设置请参看内部属性

最小采集周期:MCGS对设备进行操作的时间周期,单位为ms,默认为200ms,根据采集数据量的大小,设置值可适当调整。

写属性优先级:默认为8,取值范围为1-16,表示分配给这个写操作的优先级,16为最低优先级

通讯等待时间:通讯数据接收等待时间,默认设置为200ms,根据采集数据量的大小,设置值可适当调整。

3、 采集通道

a、 通讯状态:

通讯状态值 代表意义
0 表示当前通讯正常
1 表示采集初始化错误
2 表示采集无数据返回错误
3 表示采集数据校验错误
4 表示设备命令读写操作失败错误
5 表示设备命令格式或参数错误
6 表示设备命令数据变量取值或赋值错误
7 表示接收数据异常,解码错误
通讯异常码 (详见附录1

 

4、 设备命令

本设备构件提供设备命令,具体格式如下:

设备命令 命令格式 命令举例
读取命令

Read

Read(寄存器名称, 寄存器地址, 属性=返回值)

 

例1.1: !SetDevice(设备0,6, “Read(AO,1,PresentValue=Data00) “)

读取AO模拟输出地址为1,1区地址10,PresentValue属性的值,放入MCGS变量Data00。

写入命令

Write

Write(寄存器名称, 寄存器地址, 属性=写入值) 例1.3: !SetDevice(设备0,6, “Write(4,10,WUB=Data00;4,40,DF=Data01) “)

将Data00,Data01的值分别以16位无符号和浮点数写入AO模拟输出地址10。

32位读命令

Read32

Read32(寄存器名称, 寄存器地址, 属性=字符返回值) 例2.1: !SetDevice(设备0,6, “Read32(AO,10,PresentValue=strData) “)

读取 AO模拟10地址PresentValue属性放入strData中。。

32位写命令

Write32

Write32(寄存器名称, 寄存器地址, 属性=字符写入值) 例2.2: !SetDevice(设备0,6, “Write32(AO,10,PresentValue=strData) “)

将字符变量strData的值, 写入AO模拟输出地址10的PresentValue属性中。

批量读取A:

ReadP

ReadP(寄存器名称, 起始地址, 属性,属性个数n, 数据1, …..数据n [,返回状态]) 例3.1: !SetDevice(设备0,6,”ReadP(AO,10,PresentValue,2,Data00,Data00,返回值)”)

表示读取AO模拟输出从地址10开始的2个PresentValue值,放入MCGS变量Data00和Data01 中, 结果存入变量“返回值”中。

批量读取B:

ReadPV

ReadPV(寄存器名称, 起始地址, 属性类型,属性个数n, 数据1 [,返回状态]) 例3.2: !SetDevice(设备0,6,”ReadPV(AO,10,PresentValue,5,Data00,返回值)”)

表示读取AO模拟输出从地址10开始的5个16位无符号数值,放入MCGS变量Data00为起始,连续5个变量(即: Data00,Data01,Data02,Data03,Data04) 中, 结果存入变量“返回值”中。

批量读取C:

ReadBlock

ReadBlock (寄存器名称, 起始地址, [属性类型1][属性类型…],读取数量n, 字符数据 [,返回状态]) 说明: 读取数量是指读取N个数据类型中指定的数据段到字符变量中,数据类型可以有多个,之间用中括号分隔。

实际连续读取个数 = 读取数量n *(数据类型1+数据类型n)

返回数据“字符数据”格式为:123,456,xxx的csv方式,每次读取时以回车换行结尾。

例3.3: !SetDevice(设备0,6, “ReadBlock(4,10,[ PresentValue][ PresentValue],3,strData)”)

表示读取AO模拟输出从地址10开始,PresentValue连续读取3组数据 (),并以相应格式解析并以逗号间隔的CSV格式存入字符变量StrData中。

批量写入A:

WriteP

WriteP(寄存器名称, 起始地址, 属性类型,属性个数n, 数据1, …..数据n [,返回状态]) 例4.1: !SetDevice(设备0,6,”Write P(AO,10,PresentValue,2,Data00,Data00,返回值)”)

表示将MCGS变量Data00,Data01的值, 写入AO模拟输出从地址10起始的两个寄存器PresentValue中, 执行结果存入变量nReturn中。

批量写入B:

WritePV

WriteP(寄存器名称, 起始地址, 属性类型,属性个数n, 数据1 [,返回状态]) 例4.2: !SetDevice(设备0,6, “WritePV(AO,10,PresentValue,5,Data00,nReturn)”)

表示将以MCGS变量Data01为起始,连续5个变量的值(即: Data00,Data01,Data02, Data03, Data04), 以写入AO模拟输出从地址10起始的两个寄存器PresentValue中, 执行结果存入变量nReturn中。。

批量写入C:

WriteBlock

WriteBlock (寄存器名称, 起始地址, [属性类型1][属性类型…],读取数量n, 字符数据 [,返回状态]) 说明: 写入的数据在指定的字符数据对象中,格式为:xxx,xxx,xxx的csv方式,每次读取时换行以回车换行结尾。其他具体格式参见ReadBlock。

例4.3: !SetDevice(设备0,6, “WriteBlock(4,10,[ PresentValue][ PresentValue],3,strData)”)

表示将strData字符变量中的CSV格式的数据,按指定格式,写入AO寄存器从地址10开始的连续地址PresentValue属性中。

通讯日志 SetHiddenPro(1,属性值) 开启通讯日志: !SetDevice(设备0,6, “SetHiddenPro(1, 1) “)
开启错误日志: !SetDevice(设备0,6, “SetHiddenPro(1, 2) “)
关闭通讯日志: !SetDevice(设备0,6, “SetHiddenPro(1, 0) “)
属性获取 GetHiddenPro(1,属性值) 读取通讯日志状态:!SetDevice(设备0,6, “GetHiddenPro(1, Data01) “)

Data01为1时,表示通讯日志开启;为0时,表示通讯日志关闭。

注:通常情况下,驱动日志功能默认为关闭的;

参数说明:

寄存器名称:字符型变量,表示当前操作的寄存器,值为AI,AO,AV,BI,BO,BV,MI,MO,MV, Calendar, Command, Device, File,Group,N_C,Schedule等等,分别对应设备Analog Input,Analog Output,Analog Value,Binary Input,Binary Output,Binary Value,MultiState Input,MultiState Output,MultiStateValue,NotificationClass,Schedule。

寄存器地址:数值型变量,表示当前操作的寄存器地址,不同的设备地址范围不同,查阅相关手册确定。

属性类型: 设备对象支持的属性

返回状态:返回批量读写设备命令的执行状态(当设备命令格式错误时无效), 具体返回值意义请参见通讯状态说明, 返回状态为可选参数(以[]标记), 用户也可通过通讯状态通道判断返回结果。

批量读写说明

1.批量读写操作(包括:ReadP、ReadPV、WriteP、WritePV),为对同类寄存器连续地址的一次性读写操作。使用时要注意变量对应寄存器地址的连续性。

2.批量读写操作(包括:ReadP、ReadPV、WriteP、WritePV),数据个数最大为512个。建议一次批量操作数据量不要过大, 否则会影响正常采集效果。

3.批量读写ReadPVWritePV为对连续变量的操作,使用时要注意保证变量命名的索引累加的连续性。具体可参看相应“命令举例”部分。

4.批量读写ReadBlockWriteBlock为对连续地址的读写操作,其字符变量格式为特定的CSV格式,在写入及读取解析时一定要注意符合格式要求。

通讯日志功能说明

设备命令中提供的通讯日志功能是为了方便用户现场调试,默认为不开启状态。正常时无需开启,否则影响速度。当现场有疑难无法正常通讯时,可开启通讯日志功能,记录日志信息,将通讯过程记录以供技术人员分析。对于通讯跳变等不稳定状态,可以开启通讯错误日志记录(即:当通讯不正常时,记录通讯错误的日志,而正常通讯时不记录日志)。通讯日志默认保存为C:\BACnetIP.log (TPC下为\harddisk\ ModbusRTU.log)(TPC下为插入的U盘根目录mcgs_log 文件夹下)。

5、 常见故障分析

故障现象 分析 处理建议
通讯状态为

1或 2

采集初始化错误

或采集无数据返回

 

(通讯硬件连接、参数设置问题)

1、检查TCP/IP父设备参数设置是否正确
2、检查端口是否被其他程序占用
3、检查通讯电缆是否正确连接
4、检测设备,并使用厂家测试程序确保通讯正常。

并确认设备设置项与帮助中要求相同。

5、检查“远程端口”和“”本地端口“”的设置是否正确
6、适当延长“通讯等待时间”
7、读取数据地址超范围
通讯状态为3 采集数据校验错误

(只包括数据校验错误)

1、检查父设备TCP/IP设置是否正确
2、适当延长“通讯等待时间”
3、设备断电,重新上电,使初始化设备
4、现场干扰太大,避免周围环境干扰
通讯状态为7

 

采集数据不正确

(获取数据帧不正确)

1、检查设备当前是否支持BACnetIP协议
2、适当延长“通讯等待时间”
3、现场干扰太大,避免周围环境干扰
4、设备断电,重新上电,使初始化设备
通讯状态在0与非0之间跳变 通讯不稳定或读取地址超范围 1、同通讯状态为3的处理
2、读取数据地址超范围

(典型情况为,添加某通道后,导致通讯状态变非0)

通讯状态为0,数据不正确 组态工程错误 1、新建工程测试驱动
2、检测通道是否连接变量
3、检测工程是否对数据进行处理
通讯速度太慢 通讯数据量过大或采集周期设置过长 1、将“采集优化”属性设置为“1-优化”
2、减小父设备及子设备的最小采集周期

(最小可设置为20ms)

3、使用设备命令,减少实时采集的数据
4、通过设备命令获取PLC延时,判断是否因PLC响应时间过长而影响采集速度。
通讯次数过多 5、将数据放到连续的地址块中,提高块读效率
6、将不同寄存器的数据放到同一寄存器连续的地址块中,减少采集块数,提高采集效率

6、 特殊应用的开发

本设备构件目前只实现部分通讯功能,如需要用作其它用途或本构件不能满足要求时,可自行进行开发,《MCGS用户指南》中有关于开发设备构件的详细说明,也可以提出具体的技术要求,由我们亲自为您定制。

附表:

附录1

通讯异常码分为两部分,前两位和后两位,分别表示错误类和错误代码详见下表:

例:1:131,1为error class,31为error code表示无此设备对象

例2:31,0为error class,31为error code 表示无此设备

例3:232,2为error class,31为error code 表示设备对象无此对应属性

error class Value
device 0
object 1
property 2
resources 3
security 4
services 5
vt 6

 

error code Value
other 0
authentication-failed 1
character-set-not-supported 41
configuration-in-progress 2
device-busy 3
dynamic-creation-not-supported 4
file-access-denied 5
incompatible-security-levels 6
inconsistent-parameters 7
inconsistent-selection-criterion 8
Invalid-array-index 42
Invalid-data-type 9
invalid-file-access-method 10
invalid-file-start-position 11
operator-name 12
invalid-parameter-data-type 13
invalid-time-stamp 14
key-generation-error 15
missing-required-parameter 16
no-objects-of-specified-type 17
no-space-for-object 18
no-space-to-add-list-element 19
no-space-to-write-property 20
no-vt-sessions-available 21
object-deletion-not-permitted 22
object-identifier-already-exists 23
operational-problem 24
password-failure 25
property-is-not-a-list 26
read-access-denied 27
security-not-supported 28
service-request-denied 29
timeout 30
unknown-object 31
unknown-property 32
this enumeration was removed 33
unknown-vt-class 34
unknown-vt-session 35
unsupported-object-type 36
value-out-of range 37
vt-session-already-closed 38
vt-session-termination-failure 39
write-access-denied 40

版权声明:本文内容来源于网络搜集无法获知原创作者,仅供个人学习用途,若侵犯到您的权益请联系我们及时删除。邮箱:1370723259@qq.com

发表评论