常见通信协议的接口调试方法公司标准化编码 [QQX96QT-XQQB89Q8-NQQJ6Q8-MQM9N]常见通信协议的接口调试方法版本号:发布时间:2012-2-41.ModbusModbus是一种工业领域通信协议标准,并且现在是工业电子设备之间相当常用的连接方式。
Modbus协议是一个Master/Slave架构的协议。
有一个节点是Master 节点,其他使用Modbus协议参与通信的节点是 Slave 节点。
Master节点类似Client/Server架构中的Client,Slave则类似Server。
工业上Modbus协议的常见架构如下图所示。
……1.1. 应用场合Modbus 协议主要用于测风塔数据实时读取、风机数据实时读取。
将来有可能用于集控系统中,读取各类数据和进行远程控制。
在清三营、长风风电场,莱维赛尔的测风塔使用Modbus RTU 协议与功率预测系统通信。
在向阳风电场,明阳的SCADA 服务器通过Modbus TCP 协议向功率预测系统提供各风机的实时运行数据。
在乌力吉、浩日格吐、马力、前后查台等风电场,赛风的测风塔使用Modbus RTU over TCP 协议与功率预测系统通信。
1.2. Modbus 数据模型在Slave 和Master 进行通信时,Slave 会将其提供的变量映射到四张不同的表上,Master 从表中相应位置读/写变量,就完成了数据获取或命令下达。
这四张不同的表,称作Modbus 数据模型(Modbus Data Model )。
为了理解方便,这里将四张表分别称作1位只读表、1位可读可写表、16位只读表、16位可读可写表。
(类似电力通信国标中的遥信、遥控、遥测、遥调。
)1位表用来映射单比特数据类型的变量,通常是布尔型变量;16位表用来映射双字节数据类型的变量,如int16、float16等,如果希望映射int32、float32等四字节变量,可以通过一次使用16位表中的两个位置来实现。
只读表用来映射Master只能读取的变量;可读可写表用来映射Master既可读取、又可改写的变量。
1位只读表位可读可写表116位可读可写表例如,在某温度监视系统中,一部温度传感器与一台上位机通过Modbus总线进行通信,温度传感器是Server,上位机是Client。
对温度传感器提供的变量做如下映射:1位只读表1位可读可写表16位只读表16位可读可写表再次说明,1位只读表、1位可读可写表、16位只读表、16位可读可写表等名称是本文档为了方便读者理解自拟的,在Modbus协议规范中有它们的正式名称。
另外,不同厂商的设备/软件说明书中,对这四张表的称呼又有不同。
1.3.Modbus RTU、Modbus TCP与Modbus RTU over TCPModbus协议有很多种变体,最常见的是Modbus RTU、Modbus TCP和Modbus RTU over TCP。
为了能从众多Slave中唯一地标识出希望与其通信的Slave,需要知道Slave的地址。
不同的变体对Slave地址的描述方式不同。
对于Modbus RTU、Modbus TCP和Modbus RTU over TCP,其硬件接口与对Slave地址的描述方式如下表:1.4.调试工具与调试方法Modbus Poll和Modbus Slave是Modbus Tools系列软件中的两个工具软件,可运行在Windows 2000/XP/Vista/7平台。
Modbus Poll可用于测试从Slave中实时读取数据。
Modbus Slave是一款Slave模拟软件,可用于模拟出一个假想的Slave设备。
modpoll的用法./modpoll-mtcp-a1-r2-c8-t3-p5021-a后面接slaveid-r后面接起始偏移地址,这个地址要比配置文件中的地址大1-c后面接读取数据个数-t后面接数据类型-p后面接端口最后加上ip:10004liksunliksungogogo/liksunispower/liksun/home/opps/config/2.OPC DAOPC是OLE for Process Control 的缩写,其最大的特点是必须运行在Windows平台,因为它基于微软的OLE、COM、DCOM技术而实现。
严格地说,OPC是指一系列协议,如OPC DA、OPC HDA、OPC DA-XML、OPC AE、OPC UA、OPC DX等。
但由于OPC DA的使用最为广泛,所以一般说OPC就是指OPC DA,即OPC Data Access。
OPC DA最新的协议版本是OPC DA ,目前主流的版本是OPC DA 。
2.1.应用场合OPC协议目前多用于风机实时数据的读取,且主要为华锐SCADA服务器的风机实时数据接口。
将来有可能用于集控系统中,读取各类数据和进行远程控制。
在高山子、阜北、彰北、通榆等风电场,华锐的SCADA服务器通过OPC协议向功率预测系统提供各风机的实时运行数据。
2.2.OPC DA 的特点为了从同一局域网的众多机器中标识出OPC服务软件所在的机器,需要指定该机器的IP 地址。
由于同一台机器上有可能运行多个OPC服务,需要指定该OPC服务的名称。
最后,通过字符串形式的变量名称来指定希望读/写的变量。
例如高山子风电场华锐SCADA系统的OPC服务器的信息和部分变量如下:与Modbus不同,OPC的变量名称一旦指定,其数据类型与是否可写就是确定的了。
另外,OPC的变量除了具有value属性(表示该变量的实时值)之外,还具有quality 和timestamp属性,表示读取该变量时的通信质量和该变量的更新时间。
Modbus的变量只有值。
2.3.调试工具与调试方法MatrikonOPC是一家专业开发OPC相关软件的加拿大公司。
MatrikonOPC Explorer是一款OPC客户端软件,可用于测试OPC服务器。
MatrikonOPC OPC Simulation Server是一款OPC服务器模拟软件。
OPC Quick Client是一款小巧的OPC客户端软件,无需安装,快捷简便。
3.CDT规约CDT,也称部颁CDT,是我国的电力和自动控制领域的常见的通信接口。
与其他规约相比,它的特点是:1)相对简单;2)并非客户端/服务器端工作方式,而是发端不管收端是否接收,总是将数据发送出去;3)所表示的遥测数据为12位的整数。
其中最高位为符号位,所以表示范围是-2048(负2的11次方)~2047(正2的11次方减1)。
3.1.应用场合CDT规约目前主要用于从远动柜获取升压站处采集的风电场实时总功率,以及其他厂家的测风塔实时数据。
还用于向电网上报测风塔的实时数据。
3.2.报文说明CDT规约传输的一组数据被封装在一个数据帧中。
数据帧包括同步字、控制字和信息字三部分。
同步字:标识一个帧的开头,一般是三个EB90。
控制字:记载帧的一些重要信息,如数据类型,信息字的长度等。
也是三个字节。
对遥测数据,控制字常常是71 61开头。
信息字:数据本身,长度可变(由控制字中指明)。
因为这个原因,CDT规约的原始报文中,往往可以看到三个EB 90,后面再接71 61。
在本系统工程实施上,这可以看做CDT规约报文的特征。
若干厂家(如许继、四方)扩展了CDT的通信规约标准,加入了自身的规范内容。
但是目前,远动装置给过来的CDT报文,都还是标准CDT报文。
3.3.倍率问题在与第三方厂家对接CDT接口时,往往需要根据数据点表,设定一个合适的倍率。
虽然大多时候,倍率由第三方厂家指定,但是有时候由我们指定,或者我们与第三方厂家共同论定,所以知道如何设定合适的倍率是必要的。
设置方式:CDT遥测原始数据(有时被称为码值)表示范围:-2048~2047,其真实含义(比方,准备表示一个300MW的风场的有功功率)的数据的变化范围:-1兆瓦~300兆瓦。
所以倍率应该小于等于300/2047。
在这个范围内选择一个合适的数字就好,但不要小于300/2047太多,否则造成表示范围的浪费,从而造成表示误差的升高;也不能大约300/2047,否则无法表示满发时风场的有功功率。
3.4.实例详解以下例子需要好好研究,以便理解CDT规约是如何包装数据的。
设有若干数据需要CDT传输。
列表如下:则CDT报文往往是: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:取当前时间的微秒数本记录生成时间:程序执行时写入当前时间(格式与采集时间一样)例:wms1sec/fuxin_fubei-GW00814-422105/20?第二段:基本数据(每个元素之间用“\t”分开,元素可能缺少)物理量依次为:温度(℃)、相对湿度(%)、气压(hPa)、降水量(mm)例1:\t56\\t11例2:\t\\t11第三段:附加数据(每个元素之间用“/”分开,元素可能缺少)目前的物理量为:主板电压(V)、主板温度(℃)例1: 22例2: /22第四段:第1~12路智能风数据(每个元素之间用“\t”分开,元素可能缺少)共12路数据,每一路由多个数据组成,分三种情况,根据ToyID的间隔时间来判断(注:下述风向均以正北风向为零度,以顺时针方向为正)(1)wms1sec物理量为:实时风向(度)、实时风速(m/s)例: 270\\t210\\t\\t ...含义如下:第一路风向 270、第一路风速第二路风向 210、第二路风速第三路风向无、第三路风速 11...(2)wms10min物理量为:10分平均风向(度)、10分平均风速(m/s)、标准偏差例:270\\\t210\t\\t ...含义如下:第一路风向 270、第一路风速、第一路标准偏差第二路风向 210、第二路风速无、第二路标准偏差...(3)wms1hou物理量为:小时平均风向(度)、小时平均风速(m/s)、极大风向(度)、极大风速(m/s)、极大风出现时间 (YYYY-MM-DD HH:mm:ss)、3~25m/s有效风累计时间(分钟)例:\\t\\t2011-08-01 07:04:36\t52\t ...含义如下:第一路小时平均风向无第一路小时平均风速第一路极大风向无第一路极大风速第一路极大风出现时间 2011-08-01 07:04:36第一路3~25m/s有效风累计时间 52...4.2.监控操作指令执行readdett程序时,加入参数-c,即可进入指令模式。