常见通信协议的接口调试方法_第1页
常见通信协议的接口调试方法_第2页
常见通信协议的接口调试方法_第3页
常见通信协议的接口调试方法_第4页
常见通信协议的接口调试方法_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

版本号:1.0.1

发布时间:2012-2-4

1.Modbus

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

Modbus协议是一个Master/Slave架构的协议。有一个节点是Master节点,其他使用Modbus协议参

与通信的节点是Slave节点。Master节点类似Client/Server架构中的Client,Slave则类似Server。工业上

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

IIModbusMaster

InstrumentBus

ModbusSlave

1.1.应用场合

Modbus协议主要用于测风塔数据实时读取、风机数据实时读取。将来有可能用于集控系统中,读取

各类数据和进行远程控制。

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

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

数据。

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

率预测系统通信。

1.2.Modbus数据模型

在Slave和Master进行通信时,Slave会将其提供的变量E央射到四张不同的表上,Maste,从表中相应

位置读/写变量,就完成了数据获取或命令下达。这四张不同的表,称作Modbus数据模型(ModbusData

Model)。

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

(类似电力通信国标中的遥信、遥控、遥测、遥调J1位表用来映射单比特数据类型的变量,通常是布尔

型变量;16位表用来映射双字节数据类型的变量,如int16、float16等,如果希望映射int32、float32等四

字节变量,可以通过一-次使用16位表中的两个位置来实现。只读表用来映射Master只能读取的变量;可

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

1位只读表

变量地址012345•••

数据区域

•••

(1个方格表示1bit)

1位可读可写表

变量地址012345・・・

数据区域

(1个方格表示1bit)

16位只读表

变量地址012345・・・

数据区域

(1个方格表示1bit)

16位可读可写表

变量地址012345・・・

数据区域

(1个方格表示1bit)

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

Server,上位机是Clieni。对温度传感器提供的变量做如下映射:

变量含义数据类型映射表在映射表中的起始高8位在前

位置

是否停止运行bool1位只读表0-

有无故障bool1位只读表2-

外部温度tloat3216位只读表1否

内部温度float3216位只读表3否

外部温度告警值float1616位可读可写表2否

内部温度告警值float1616位可读可写表4否

1位可读可写表

变量地址012345・・・

数据区域

•••

(1个方格表示1bit)

16位可读可写表

再次说明,1位只读表、1位可读可写表、16位只读表、16位可读可写表等名称是本文档为了方便读

者理解自拟的,在Modbus协议规范中有它们的正式名称。另外,不同厂商的设备/软件说明马中,对这四

张表的称呼又有不同。

1位只读表1位可读可写表16位只读表16位可读可写表

Modbus协议规范DiscretesInputCoilsInputRegistersHoldingRegisters

BachmannPLCDiscCoilsRegsHRegs

OutputRegister

SiemensPLCInputCoilOutputCoilInputRegister

HoldingRegister

1.3.ModbusRTU、ModbusTCP与ModbusRTUoverTCP

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

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

地址的描述方式不同。对于ModbusRTU、ModbusTCP和ModbusRTUoverTCP,其硬件接口与对Slave

地址的描述方式如下表:

是否需要指定是否需要指定IP地址其他需要指定

硬件接口

SlaveId与TCP端口的参数

ModbusRTU串口是否通信端口、波特

率、数据位、校

验方式、停止位

ModbusTCP网口否是无

ModbusRTU

网口是是无

overTCP

1.4.调试工具与调试方法

ModbusPoll和ModbusSlave是ModbusTools系列软件中的两个工具软件,可运行在Windows

2000/XP/Vista/7平台。ModbusPoll可用于测试从Slave中实时读取数据。ModbusSlave是一款Slave模拟

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

modpoll的用法

./modpoll-mtep-a1-r2-c8-t3-p5021192.168.100.1

-a后面接slaveid

-r后面接起始偏移地址,这个地址要比配置文件中的地址大1

-c后面接读取数据个数

-t后面接数据类型

・p后面接端口

最后加上ip

172.18.106.11:10004

liksun

liksungogogo/liksunispower/liksun

/home/opps/config/opps.cfg

2.0PCDA

()PC是OLEforProcessConlrol的缩写,其最大的特点是必须运行在Windows平台,因为它基于微软

的OLE、COM、DCOM技术而实现。

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

DX等。但由于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地址86.21.0.19

服务名称HrDataSvr

变量名称含义数据类型是否可写

ABB.WT1.Basic.PlcSta1#风机的PLC状态Short否

ABB_WT2.Basic.WinSpe2#风机的机舱外风速Float否

ABB_WT3.Basic.ActPow3#风机的有功功率Float否

ABB_WT8.Basic.bErrSta8#风机是否故障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,

控制字:记载帧的一些重要信息,如数据类型,信息字的长度等。也是三个字节。对遥测数据,控制

字常常是716I开头。

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

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

实施上,这可以看做CDT规约报文的特征。

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

置给过来的CDT报文,都还是标准CDT报文。

33倍率问题

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

倍率由第三方厂家指定,但是有时候由我们指定,或者我们与第三方厂家共同论定,所以知道如何设定合

适的倍率是必要的。

设置方式:CDT遥测原始数据(有时被称为码值)表示范围:・2048〜2047,其真实含义(比方,准备

表示一个300MW的风场的有功功率)的数据的变化范围:-1兆瓦〜300兆瓦。所以倍率应该小于等于

300/2047o在这个范围内选择一个合适的数字就好,但不要小于300/2047太多,否则造成表示范围的浪费,

从而造成表示误差的升高;也不能大约300/2047,否则无法表示满发时风场的有功功率。

3.4.实例详解

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

设有若干数据需要CDT传输,列表如下:

物理量单位倍数

70米风速m/s0.1

70米风向度0.2

50米风速m/s0.1

50米风向度0.2

10米风速m/s0.1

10米风向度0.2

气温摄氏度0.1

相对湿度%0.1

气压百帕1

则CDT报文往往是:

片段序号报文内容说明

1eb90eb90eb90报文起始.

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

05是信息字个数,CDT每个信息字可存放2个物理量,一共9

个物理量,故信息字个数为5(向上取整):

27161052dOfxx

2d表示源地址,Of表示目的地址,即接口的源地址为45(2d)、

目的地址为15(Of);

xx为CRC校验码。

00是信息字的地址;

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

30062004006xx

9.8m/s;

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

xx为CRC校验码。

01是信息字的地址;

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

40142000c06xx

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

xx为CRC校验码。

02是信息字的地址;

0()20对应十进制数32,即10米风速3.2m/s:

50220000e06xx

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

xx为CRC校验码。

03是信息字的地址;

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

6035a(X)c6()0xx

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

xx为CRC校验码。

04是信息字的地址;

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

704e5030000xx

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”分开。

第一段:ToylD(每个元素之间用分开,每个元素每次基本上都可读到)

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

数据类型:现有wmslsec、wmslOmin、wmslhou三种

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

采集时间:格式为YYYYMMDDHHmmss

唯一ID:取当前时间的微秒数

本记录生成时间:程序执行时写入当前时间(格式与采集时间一样)

例:wms1sec/fuxin_fubei-GWOO1-20111110155814-422105/20111110155815

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

物理量依次为:温度(℃)、相对湿度(%)、气压(hPa)、降水量(mm)

例1:32.2\t56\t998.2\tll

例2:32.2\t\t998.2\tll

第三段:附加数据(每个元素之间用分开,元素可能缺少)

目前的物理量为:主板电压(V)、主板温度(℃)

例1:13.6/22

例2:/22

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

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

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

(1)wmslsec

物理量为:实时风向(度)、实时风速(m/s)

例:270\t2.3\t210\t2.2\t\tl.l\t...

含义如下:

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

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

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

(2)wmslOmin

物理量为:10分平均风向(度)、10分平均风速(m/s)、标准偏差

例:270\t2.3\t0.4l\t210\t\t0.33\t...

含义如下:

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

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

(3)wmslhou

物理量为:小时平均风向(度)、小时平均风速(m/s)、极大风向(度)、极大风速(m/s)、极大风出

现时间(YYYY-MM-DDHH:mm:$s)、3~25m/s有效风累计时间(分钟)

例:\t4.1\t\t5.0\l2011-08-0107:04:36\t52\t...

含义如下:

第一路小时平均风向无

笫一路小时平均风速4.1

第一路极大风向无

第一路极大风速5.0

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

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

4.2.监控操作指令

执行readdett程序时,加入参数-c,即可进入指令模式。各指令分述如下:

⑴采集器自检(命令符:AUTOCHECK)

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

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

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

示例:若设置区站号为57494,键入命令为:ID57494/

返回值:<ID57494T>/

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

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

返回值:<IDA5890>/

表示当前区站号为A5890

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

参数:YYYY-MM-DDHH:MM:SS

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

键入命令为:TIME2011-07-2112:34:10/

返回值:<TIMEA58901>/

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

返回值:<TIMEA58902011-08-0107:04:36>/

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

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

示例:若开启第123路智能风,以及辅助分机1,

键入命令为:SENST111000000000100000/

返回值:〈SENSTA5890T〉/

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

返回值:<SENSTA5890()1II()()()(K)(X)()()()(K)()>/

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

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

传感器标识

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论