常见通信协议的接口调试方法.docx

上传人:b****5 文档编号:29754858 上传时间:2023-07-26 格式:DOCX 页数:20 大小:26.49KB
下载 相关 举报
常见通信协议的接口调试方法.docx_第1页
第1页 / 共20页
常见通信协议的接口调试方法.docx_第2页
第2页 / 共20页
常见通信协议的接口调试方法.docx_第3页
第3页 / 共20页
常见通信协议的接口调试方法.docx_第4页
第4页 / 共20页
常见通信协议的接口调试方法.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

常见通信协议的接口调试方法.docx

《常见通信协议的接口调试方法.docx》由会员分享,可在线阅读,更多相关《常见通信协议的接口调试方法.docx(20页珍藏版)》请在冰豆网上搜索。

常见通信协议的接口调试方法.docx

常见通信协议的接口调试方法

集团企业公司编码:

(LL3698-KKI1269-TM2483-LUI12689-ITT289-DQS58-MG198)

 

常见通信协议的接口调试方法

常见通信协议的接口调试方法

版本号:

1.0.1

发布时间:

2012-2-4

1.Modbus

Modbus是一种工业领域通信协议标准,并且现在是工业电子设备之间相当常用的连接方式。

Modbus协议是一个Master/Slave架构的协议。

有一个节点是Master节点,其他使用Modbus协议参与通信的节点是Slave节点。

Master节点类似Client/Server架构中的Client,Slave则类似Server。

工业上Modbus协议的常见架构如下图所示。

1.1.应用场合

Modbus协议主要用于测风塔数据实时读取、风机数据实时读取。

将来有可能用于集控系统中,读取各类数据和进行远程控制。

在清三营、长风风电场,莱维赛尔的测风塔使用ModbusRTU协议与功率预测系统通信。

在向阳风电场,明阳的SCADA服务器通过ModbusTCP协议向功率预测系统提供各风机的实时运行数据。

在乌力吉、浩日格吐、马力、前后查台等风电场,赛风的测风塔使用ModbusRTUoverTCP协议与功率预测系统通信。

1.2.Modbus数据模型

在Slave和Master进行通信时,Slave会将其提供的变量映射到四张不同的表上,Master从表中相应位置读/写变量,就完成了数据获取或命令下达。

这四张不同的表,称作Modbus数据模型(ModbusDataModel)。

为了理解方便,这里将四张表分别称作1位只读表、1位可读可写表、16位只读表、16位可读可写表。

(类似电力通信国标中的遥信、遥控、遥测、遥调。

)1位表用来映射单比特数据类型的变量,通常是布尔型变量;16位表用来映射双字节数据类型的变量,如int16、float16等,如果希望映射int32、float32等四字节变量,可以通过一次使用16位表中的两个位置来实现。

只读表用来映射Master只能读取的变量;可读可写表用来映射Master既可读取、又可改写的变量。

1位只读表

变量地址

0

1

2

3

4

5

...

数据区域

(1个方格表示1bit)

...

1位可读可写表

变量地址

0

1

2

3

4

5

...

数据区域

(1个方格表示1bit)

...

16位只读表

变量地址

0

1

2

3

4

5

...

数据区域

(1个方格表示1bit)

...

16位可读可写表

变量地址

0

1

2

3

4

5

...

数据区域

(1个方格表示1bit)

...

例如,在某温度监视系统中,一部温度传感器与一台上位机通过Modbus总线进行通信,温度传感器是Server,上位机是Client。

对温度传感器提供的变量做如下映射:

变量含义

数据类型

映射表

在映射表中的起始位置

高8位在前

是否停止运行

bool

1位只读表

0

-

有无故障

bool

1位只读表

2

-

外部温度

float32

16位只读表

1

内部温度

float32

16位只读表

3

外部温度告警值

float16

16位可读可写表

2

内部温度告警值

float16

16位可读可写表

4

1位只读表

变量地址

0

1

2

3

4

5

...

数据区域

(1个方格表示1bit)

是否停止运行

有无故障

...

1位可读可写表

变量地址

0

1

2

3

4

5

...

数据区域

(1个方格表示1bit)

...

16位只读表

变量地址

0

1

2

3

4

5

...

数据区域

(1个方格表示1bit)

外部温度

内部温度

...

16位可读可写表

变量地址

0

1

2

3

4

5

...

数据区域

(1个方格表示1bit)

外部温度告警值

内部温度告警值

...

再次说明,1位只读表、1位可读可写表、16位只读表、16位可读可写表等名称是本文档为了方便读者理解自拟的,在Modbus协议规范中有它们的正式名称。

另外,不同厂商的设备/软件说明书中,对这四张表的称呼又有不同。

1位只读表

1位可读可写表

16位只读表

16位可读可写表

Modbus协议规范

DiscretesInput

Coils

InputRegisters

HoldingRegisters

BachmannPLC

Disc

Coils

Regs

HRegs

SiemensPLC

InputCoil

OutputCoil

InputRegister

OutputRegister

HoldingRegister

1.3.ModbusRTU、ModbusTCP与ModbusRTUoverTCP

Modbus协议有很多种变体,最常见的是ModbusRTU、ModbusTCP和ModbusRTUoverTCP。

为了能从众多Slave中唯一地标识出希望与其通信的Slave,需要知道Slave的地址。

不同的变体对Slave地址的描述方式不同。

对于ModbusRTU、ModbusTCP和ModbusRTUoverTCP,其硬件接口与对Slave地址的描述方式如下表:

硬件接口

是否需要指定SlaveId

是否需要指定IP地址与TCP端口

其他需要指定的参数

ModbusRTU

串口

通信端口、波特率、数据位、校验方式、停止位

ModbusTCP

网口

ModbusRTUoverTCP

网口

1.4.调试工具与调试方法

ModbusPoll和ModbusSlave是ModbusTools系列软件中的两个工具软件,可运行在Windows2000/XP/Vista/7平台。

ModbusPoll可用于测试从Slave中实时读取数据。

ModbusSlave是一款Slave模拟软件,可用于模拟出一个假想的Slave设备。

modpoll?

的用法

./modpoll?

-m?

tcp?

-a?

1?

-r?

2?

-c?

?

8?

-t?

3?

-p?

5021?

-a?

后面接?

slave?

id

-r?

后面接?

起始偏移地址,这个地址要比配置文件中的地址大1

-c?

后面接?

读取数据个数

-t?

后面接数据类型

-p?

后面接端口

最后加上?

ip

liksun

liksungogogo/liksunispower/liksun

/home/opps/config/opps.cfg

2.OPCDA

OPC是OLEforProcessControl的缩写,其最大的特点是必须运行在Windows平台,因为它基于微软的OLE、COM、DCOM技术而实现。

严格地说,OPC是指一系列协议,如OPCDA、OPCHDA、OPCDA-XML、OPCAE、OPCUA、OPCDX等。

但由于OPCDA的使用最为广泛,所以一般说OPC就是指OPCDA,即OPCDataAccess。

OPCDA最新的协议版本是OPCDA3.0,目前主流的版本是OPCDA2.0。

2.1.应用场合

OPC协议目前多用于风机实时数据的读取,且主要为华锐SCADA服务器的风机实时数据接口。

将来有可能用于集控系统中,读取各类数据和进行远程控制。

在高山子、阜北、彰北、通榆等风电场,华锐的SCADA服务器通过OPC协议向功率预测系统提供各风机的实时运行数据。

2.2.OPCDA的特点

为了从同一局域网的众多机器中标识出OPC服务软件所在的机器,需要指定该机器的IP地址。

由于同一台机器上有可能运行多个OPC服务,需要指定该OPC服务的名称。

最后,通过字符串形式的变量名称来指定希望读/写的变量。

例如高山子风电场华锐SCADA系统的OPC服务器的信息和部分变量如下:

IP地址

服务名称

HrDataSvr

变量名称

含义

数据类型

是否可写

1#风机的PLC状态

Short

ABB_WT2.Basic.WinSpe

2#风机的机舱外风速

Float

ABB_WT3.Basic.ActPow

3#风机的有功功率

Float

ABB_WT8.Basic.bErrSta

8#风机是否故障

Boolean

与Modbus不同,OPC的变量名称一旦指定,其数据类型与是否可写就是确定的了。

另外,OPC的变量除了具有value属性(表示该变量的实时值)之外,还具有quality和timestamp属性,表示读取该变量时的通信质量和该变量的更新时间。

Modbus的变量只有值。

2.3.调试工具与调试方法

MatrikonOPC是一家专业开发OPC相关软件的加拿大公司。

MatrikonOPCExplorer是一款OPC客户端软件,可用于测试OPC服务器。

MatrikonOPCOPCSimulationServer是一款OPC服务器模拟软件。

OPCQuickClient是一款小巧的OPC客户端软件,无需安装,快捷简便。

3.CDT规约

CDT,也称部颁CDT,是我国的电力和自动控制领域的常见的通信接口。

与其他规约相比,它的特点是:

1)相对简单;

2)并非客户端/服务器端工作方式,而是发端不管收端是否接收,总是将数据发送出去;

3)所表示的遥测数据为12位的整数。

其中最高位为符号位,所以表示范围是-2048(负2的11次方)~2047(正2的11次方减1)。

3.1.应用场合

CDT规约目前主要用于从远动柜获取升压站处采集的风电场实时总功率,以及其他厂家的测风塔实时数据。

还用于向电网上报测风塔的实时数据。

3.2.报文说明

CDT规约传输的一组数据被封装在一个数据帧中。

数据帧包括同步字、控制字和信息字三部分。

同步字:

标识一个帧的开头,一般是三个EB90。

控制字:

记载帧的一些重要信息,如数据类型,信息字的长度等。

也是三个字节。

对遥测数据,控制字常常是7161开头。

信息字:

数据本身,长度可变(由控制字中指明)。

因为这个原因,CDT规约的原始报文中,往往可以看到三个EB90,后面再接7161。

在本系统工程实施上,这可以看做CDT规约报文的特征。

若干厂家(如许继、四方)扩展了CDT的通信规约标准,加入了自身的规范内容。

但是目前,远动装置给过来的CDT报文,都还是标准CDT报文。

3.3.倍率问题

在与第三方厂家对接CDT接口时,往往需要根据数据点表,设定一个合适的倍率。

虽然大多时候,倍率由第三方厂家指定,但是有时候由我们指定,或者我们与第三方厂家共同论定,所以知道如何设定合适的倍率是必要的。

设置方式:

CDT遥测原始数据(有时被称为码值)表示范围:

-2048~2047,其真实含义(比方,准备表示一个300MW的风场的有功功率)的数据的变化范围:

-1兆瓦~300兆瓦。

所以倍率应该小于等于300/2047。

在这个范围内选择一个合适的数字就好,但不要小于300/2047太多,否则造成表示范围的浪费,从而造成表示误差的升高;也不能大约300/2047,否则无法表示满发时风场的有功功率。

3.4.实例详解

以下例子需要好好研究,以便理解CDT规约是如何包装数据的。

设有若干数据需要CDT传输。

列表如下:

物理量

单位

倍数

70米风速

m/s

0.1

70米风向

0.2

50米风速

m/s

0.1

50米风向

0.2

10米风速

m/s

0.1

10米风向

0.2

气温

摄氏度

0.1

相对湿度

%

0.1

气压

百帕

1

则CDT报文往往是:

片段序号

报文内容

说明

1

eb90eb90eb90

报文起始。

2

7161052d0fxx

7161表示本报文是遥测数据;

05是信息字个数,CDT每个信息字可存放2个物理量,一共9个物理量,故信息字个数为5(向上取整);

2d表示源地址,0f表示目的地址,即接口的源地址为45(2d)、目的地址为15(0f);

xx为CRC校验码。

3

0062004006xx

00是信息字的地址;

0062(高低字节对调)对应十进制数98,即表示70米风速为9.8m/s;

0640对应十进制数1600,乘以倍数0.2,即70米风向为320度;

xx为CRC校验码。

4

0142000c06xx

01是信息字的地址;

0042对应十进制数66,即表示50米风速大小为6.6m/s;

060c对应十进制数1548,即50米风向为309.6度;

xx为CRC校验码。

5

0220000e06xx

02是信息字的地址;

0020对应十进制数32,即10米风速3.2m/s;

060e对应十进制数1550,即10米风向310度;

xx为CRC校验码。

6

035a00e600xx

03是信息字的地址;

005a对应十进制数90,即气温9摄氏度;

00e6对应十进制数230,即相对湿度为23%;

xx为CRC校验码。

7

04e5030000xx

04是信息字的地址;

03e5对应十进制数997,即气压为997百帕;

0000处是无用的数据,一般补0;

xx为CRC校验码。

3.5.调试工具与调试方法

Windows平台:

SSCOM串口调试工具(用于调试串口)

监控模拟系统调试工具(用于调试CDT规约)

Linux平台:

readcom(用于读取串口原始报文)

readcdt(用于读取和解包CDT数据)

writecdt(用于写入CDT数据)

4.长仪DETT协议

DETT(梯度风协议)是长春气象仪器厂自有的测风塔实时数据读取协议。

该协议除可读取实时数据外,还能够通过监控操作指令对测风塔的部分参数进行远程配置。

4.1.实时数据的输出格式

1、每条记录之间用“\n”分开。

2、每条记录由4段组成,每段之间用“\t”分开。

第一段:

ToyID(每个元素之间用“/”分开,每个元素每次基本上都可读到)

格式:

数据类型/站号-采集时间-唯一ID/本记录生成时间

数据类型:

现有wms1sec、wms10min、wms1hou三种

站号:

区站号(由施工人员现场确定并输入)

采集时间:

格式为YYYYMMDDHHmmss

唯一ID:

取当前时间的微秒数

本记录生成时间:

程序执行时写入当前时间(格式与采集时间一样)

第二段:

基本数据(每个元素之间用“\t”分开,元素可能缺少)

物理量依次为:

温度(℃)、相对湿度(%)、气压(hPa)、降水量(mm)

例1:

32.2\t56\t998.2\t11

例2:

32.2\t\t998.2\t11

第三段:

附加数据(每个元素之间用“/”分开,元素可能缺少)

目前的物理量为:

主板电压(V)、主板温度(℃)

例1:

?

13.6/22

例2:

?

/22

第四段:

第1~12路智能风数据(每个元素之间用“\t”分开,元素可能缺少)

共12路数据,每一路由多个数据组成,分三种情况,根据ToyID的间隔时间来判断

(注:

下述风向均以正北风向为零度,以顺时针方向为正)

(1)wms1sec

物理量为:

实时风向(度)、实时风速(m/s)

例:

270\t2.3\t210\t2.2\t\t1.1\t...

含义如下:

第一路风向270、第一路风速2.3

第二路风向210、第二路风速2.2

第三路风向无、第三路风速11

...

(2)wms10min

物理量为:

10分平均风向(度)、10分平均风速(m/s)、标准偏差

例:

270\t2.3\t0.41\t210\t\t0.33\t...

含义如下:

第一路风向270、第一路风速2.3、第一路标准偏差0.41

第二路风向210、第二路风速无、第二路标准偏差0.33

...

(3)wms1hou

物理量为:

小时平均风向(度)、小时平均风速(m/s)、极大风向(度)、极大风速(m/s)、极大风出现时间(YYYY-MM-DDHH:

mm:

ss)、3~25m/s有效风累计时间(分钟)

例:

\t4.1\t\t5.0\t2011-08-0107:

04:

36\t52\t...

含义如下:

第一路小时平均风向无

第一路小时平均风速4.1

第一路极大风向无

第一路极大风速5.0

第一路极大风出现时间2011-08-0107:

04:

36

第一路3~25m/s有效风累计时间52

...

4.2.监控操作指令

执行readdett程序时,加入参数-c,即可进入指令模式。

各指令分述如下:

(1)采集器自检(命令符:

AUTOCHECK)

返回的内容包括采集器时间,主板温度,主板电压,各传感器开启状态,以及各传感器挂接状态。

(2)设置或读取区站号(命令符:

ID)

参数:

区站号(5位数字或字母)

示例:

若设置区站号为57494,键入命令为:

ID57494↙

返回值:

整体在<>中,F表示设置失败,T表示设置成功,各项由半角空格隔开,结尾为回车换行。

若读取区站号,键入命令为:

ID↙

返回值:

表示当前区站号为A5890

(3)设置或读取采集器时间(命令符:

TIME)

参数:

YYYY-MM-DDHH:

MM:

SS

示例:

若设置采集器时间为2011年7月21日12时34分10秒,

键入命令为:

TIME2011-07-2112:

34:

10↙

返回值:

若读取采集器时间,键入命令为:

TIME↙

返回值:

04:

36>↙

(4)设置或读取传感器开启状态(命令符:

SENST)

参数:

18位的0或1,1表示传感器开启,0表示传感器关闭,详见下表。

示例:

若开启第1,2,3路智能风,以及辅助分机1,

键入命令为:

SENST↙

返回值:

若读取传感器开启状态,键入命令为:

SENST↙

返回值:

可以看到第2,3,4路智能风是开启的。

各传感器标识符如下表所示:

序号

传感器名称

传感器标识符(XXX)

序号

传感器名称

传感器标识符(XXX)

1

第1路智能风

10

第10路智能风

2

第2路智能风

11

第11路智能风

3

第3路智能风

12

第12路智能风

4

第4路智能风

13

辅助分机1

5

第5路智能风

14

保留

6

第6路智能风

15

保留

7

第7路智能风

16

保留

8

第8路智能风

17

保留

9

第9路智能风

18

保留

(5)设置或读取智能风分机号及类型(命令符:

WST)

二级命令符:

Wxx(xx取01至12)

参数:

智能风分机号,智能风类型

智能风分机号取20至99,

智能风类型取0或1,0为风速风向一体,1为只有风速。

示例:

若设置第1路智能风分机号为21,类型为只有风速,

键入命令为:

WSTW01211↙

返回值:

若读取第2路智能风状态,直接键入命令:

WSTW02↙

返回值:

可以看到第2路智能风分机号为22,类型为风速风向一体。

(6)清空补报数据标志(命令符:

CLEAR)

示例:

CLEAR↙

返回值:

(7)擦除全部存储数据(命令符:

ERASE)

擦除整个存储器约用时90-120秒

示例:

ERASE↙

返回值:

(8)复位采集器(命令符:

RESET)

示例:

RESET↙

返回值:

(9)调试指令(命令符:

TEST)

参数:

SS。

说明:

SS为秒数,即每间隔指定秒数,发出实时数据,以便于系统调试

示例:

若设置每10秒发出实时数据,键入命令为:

TEST10↙

返回值:

若关闭此功能,键入命令为:

TEST00↙

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 院校资料

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1