




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、深圳市中电电力技术股份有限公司DrvAnyPolling轮循模式通用驱动配置说明CET中电技术软件通用轮循驱动配置说明 P2.X/P3.X版本修改记录版本日期说明关联程序版本作者审核0.12009-11-19初稿ZC0.42012-01-09增加遥控功能YXZ0.52012-07-23增加遥调功能LDH0.62013-01-21增加数学运算表达式LDH1.02013-04-19增加校时LDH1.12013-05-14增加对多位状态的解析,详见5.2 JY1.32013-11-12数学运算增加Bits 详见5.3 3.1.5.11LDH2.22014-7-2简单遥控:不区分动作类型,不支持遥控返
2、回;复杂遥控:区分动作类型,支持遥控返回功能3.1.5.20LDH2.32014-7-21增加DI解析类型3.1.5.22LDH2.42014-8-13增加“2.通信速率设置”章节无LDH目录1.概述11.1.使用场合11.2.使用方法12.通信速率设置13.配置文件说明13.1.通信相关配置13.1.1.总体信息23.1.2.发送报文23.1.3.接收报文23.1.4.AI解析33.1.5.DI解析43.1.6.简单遥控43.1.7.复杂遥控53.1.8.遥调63.1.9.校时73.2.通用配置集合83.2.1.校验83.2.2.地址93.2.3.固定报文93.3.数学运算配置94.数据格式
3、说明104.1.校验类型104.2.AI数据类型104.3.DI数据类型115.简单示例125.1.如何让DrvAnyPolling正常运行126.复杂示例136.1.校时模块136.2.多位状态解析模块146.3.数学运算符Bits用法举例14CET Copyright 2013141. 概述通用轮循驱动程序(DrvAnyPolling)的目标是通过修改配置可以和不同的装置通信。使用DrvAnyPolling驱动配置通信相当于自己做了一个小程序直接和装置通信。1.1. 使用场合1) 没有现成的驱动程序能够接入该装置2) 该装置采用Polling(轮询)的通讯方式。(不论串口还是网络TCP)3
4、) 不要求读取事件记录、不要求读取故障录波、不要求读取定时记录4) 自己会阅读规约文档,并能够构造报文,而且可以通过工具手动解析接收的数据1.2. 使用方法1) 了解用户需要从这个装置读取到哪些信息。2) 阅读装置规约文档,并构造出相应的报文。3) 使用通信工具发送构造的报文,并手动解析回复的报文,验证是否正确。4) 根据第3步中构造的报文,使用AnyPollingConfig工具进行配置。5) 将配置文件拷贝到设备的inf中,把配置好相应点表导入到设备中,启动前台,与装置通讯。6) 观察片刻,确认前台测点数据完整无误。2. 通信速率设置待新增。3. 配置文件说明Inf配置文件用方括号(xxx
5、)表示一个配置节或配置模块。3.1. 通信相关配置通信配置由以下几个模块组成:common 项记录发送与接收的组数,以及模拟量与开关量的个数等总体的信息sendxx 配置发送报文Recxx 配置接受报文Axx 配置模拟量解析Dxx 配置开关量解析CtrlSendxx 配置遥控发送内容,配置范围从CtrlSend1 CtrlSend255CtrlRecvxx 配置遥控接收内容,配置范围同上TimeSend配置校时发送报文配置模块中的命名规则:sendxx Recxx 中xx 表示组号,从1开始。 发送接收的对应关系是由组号决定的,send3 与Rec3 表示了一组对应的接受与发送。A xx D
6、xx 中xx表示模拟量或开关量在第几栏,从1开始。CtrlSendxxCtrlRecvxx中xx对应前台遥控号3.1.1. 总体信息;/Common块记录各种配置项的数量 Common ;/接受与发送的组数 SendRecNumber=4;/模拟量的组数 AInumber=1;/开关量的组数 DInumber=1;/默认为0,配置该数据范围为1255,对应前台的遥控参数号为1255 CtrlSendRecvNum=1 注意:总体信息配置需要和后面的配置信息对应,否则出错。 3.1.2. 发送报文/第一组发送send1;/固定报文 配置详见3.2.3 BuffStr= 64 03 01 45 0
7、0 01 9D D6 ;/校验配置 详见3.2.1CHECK=1 checkFrom=1 checkTo=5checkpos=6checkMode=1 ;/地址配置 详见3.2.2AddrCHECK=1 AddrPos=3 AddrType=1 3.1.3. 接收报文Rec1;/是否进行帧头校验(1为校验,默认为0不校验)Checkframehead=1 ;/帧头的内容Framehead=EB 90 EB 90 ;/是否进行长度校验(1为校验,默认为0不校验)CheckLen=1 ;/长度值 Lenth=10 ;/是否校验地址CheckAddr=1 ;/ 地址配置 详见3.2.2AddrPos
8、=4 Addrtype=0 ;/是否进行固定字校验,默认为0不校验ConstCheck=1 ;/固定值所在字节 ConstPos=5 ;/固定值的值 Constant=AA ;/校验配置 详见3.2.1Check=1 checkFrom=4 checkTo=9 checkpos=10 checkMode=0 3.1.4. AI解析;/ 模拟量解析配置A1;/ 在第几组接收报文中进行解析Recnum=1 ;/ 从第几个字节开始解析 Recbyte=11;/ 数据类型 *(见4.2说明)DataType=4;/ 系数,结果为AX+B时的系数A,默认为1Scale=1;/ 结果为AX+B时的偏移量B
9、,默认为0Offset=0;/ 按顺序连续解析的模拟量的个数Aipoint=4;/前台传递的量最初的位置 ;/ AIMirrorAddress=1 表示从 A0(参数号0)开始;/ AIMirrorAddress=2 表示从 A1(参数号1)开始AIMirrorAddress=13.1.5. DI解析;/ 开关量解析配置 D1;/ 在第几组接收报文中进行解析(从1开始计数)Recnum=3;/ 在第几个字节处进行解析(从1开始计数)Recbyte=6;/ 默认为0, (*详见4.3 说明)DataType=0;/ 当选择按固定值解析时有效(十进制),等于此固定值时开关量置1,否则置0Value
10、=1;/ 需要解析的开关量的个数DIpoint=;/ DIMirrorAddress=1 表示从 D0(参数号0)开始;/ DIMirrorAddress=2 表示从 D1(参数号1)开始DIMirrorAddress=13.1.6. 简单遥控;/不区分遥控动作类型;/不支持遥控返回功能CtrlSend1 ;/详见3.2.3说明BuffStr=01 06 13 8D 00 CF 5D 31;/校验配置 详见2.2.1CHECK=1 checkFrom=1 checkTo=5checkpos=6checkMode=1 ;/地址配置 详见3.2.2AddrCHECK=1 AddrPos=3 Add
11、rType=1 ;/检查接收内容是否正确,暂时提供2种校验,一种长度,一种固定内容校验;CtrlRecv1 ;(长度校验);/默认为0,当等于1的时候,会检测接收的字节是否和下面的Lenth相等CheckLen=0;/默认为0,当CheckLen=1的时候,会检测接收的字节是否和自己相等,如果不等,则判断遥控失败Lenth=0;(固定内容校验);/默认为0,表示不校验接收的内容,等于1表示需要校验CheckConst=0;/默认为1,表示从第一个字节开始,01 06 13 8D 00 CF 5D 31其中的01就是第一个字节ConstPos=1;/默认为空,当配置了Constant =01 0
12、6 13 8D 00 CF 5D 31,程序则必须判断接收的内容是否从1个字节开/始的后续字节是“01 06 13 8D 00 CF 5D 31”这样的内容,如果不等,则判断失败;Constant=3.1.7. 复杂遥控;/区分遥控动作类型;/支持遥控返回功能;/配置范围从CtrlSend1 CtrlSend255,其他无效,遥控参数号对应1255;/配置遥控闭合报文CtrlSend1 ;/详见3.2.3说明BuffStr=01 06 13 8D 00 CF 5D 31;/校验配置 详见3.2.1CHECK=1 checkFrom=1 checkTo=5checkpos=6checkMode=
13、1 ;/地址配置 详见3.2.2AddrCHECK=1 AddrPos=3 AddrType=1 ;/ 1代表复杂遥控,还需要配置CtrlReturnSend1和 CtrlReturnRecv1CtrlReturn=1;/检查遥控闭合的接收内容是否正确,暂时提供2种校验,一种长度,一种固定内容校验;CtrlRecv1 ;(长度校验);/默认为0,当等于1的时候,会检测接收的字节是否和下面的Lenth相等CheckLen=0;/默认为0,当CheckLen=1的时候,会检测接收的字节是否和自己相等,如果不等,则判断遥控失败Lenth=0;/ 固定内容校验,默认为0,表示不校验接收的内容,等于1表
14、示需要校验CheckConst=0;/默认为1,表示从第一个字节开始,01 06 13 8D 00 CF 5D 31其中的01就是第一个字节ConstPos=1;/默认为空,当配置了Constant =01 06 13 8D 00 CF 5D 31,程序则必须判断接收的内容是否从1个字节开/始的后续字节是“01 06 13 8D 00 CF 5D 31”这样的内容,如果不等,则判断失败;Constant=:/配置遥控打开报文,与CtrlSend1共用地址和校验填充的配置CtrlReturnSend1;/添加遥控返回报文BuffStr=05 05 00 16 00 00 6C 7A;/检查遥控打
15、开的接收内容是否正确,暂时提供2种校验,一种长度,一种固定内容校验;CtrlReturnRecv1;/(长度校验);/默认为0,当等于1的时候,会检测接收的字节是否和下面的Lenth相等CheckLen=0;/默认为0,当CheckLen=1的时候,会检测接收的字节是否和自己相等,如果不等,则判断遥控失败Lenth=0;(固定内容校验);/默认为0,表示不校验接收的内容,等于1表示需要校验CheckConst=0;/默认为1,表示从第一个字节开始,05 05 00 16 00 00 6C 7A其中的01就是第一个字节ConstPos=1;/默认为空,当配置了Constant =05 05 00
16、 16 00 00 6C 7A,程序则必须判断接收的内容是否从1个字节开/始的后续字节是“05 05 00 16 00 00 6C 7A”这样的内容,如果不等,则判断失败;Constant=3.1.8. 遥调;/配置范围从CtrlSend1 CtrlSend255,其他无效,遥控参数号对应1255;/暂不区分闭合还是是打开CtrlSend1 ;/详见3.2.3说明BuffStr=01 06 13 8D 00 CF 5D 31;/配置1代表遥调,还需要配置校验如下CtrlMode=1 ;/参考3.2.1的校验模块说明CHECK=1 checkFrom=1 checkTo=5checkpos=6c
17、heckMode=1 ;/遥调值位置DataPos=5;/值系数DataScale=0.1 ;/ 数据类型 *(见4.2说明,暂时支持2、3、6、7、9、10、11、12) DataType=xx ;/检查接收内容是否正确,暂时提供2种校验,一种长度,一种固定内容校验;CtrlRecv1 ;(长度校验);/默认为0,当等于1的时候,会检测接收的字节是否和下面的Lenth相等CheckLen=0;/默认为0,当CheckLen=1的时候,会检测接收的字节是否和自己相等,如果不等,则判断遥控失败Lenth=0;(固定内容校验);/默认为0,表示不校验接收的内容,等于1表示需要校验CheckCons
18、t=0;/默认为1,表示从第一个字节开始,01 06 13 8D 00 CF 5D 31其中的01就是第一个字节ConstPos=1;/默认为空,当配置了Constant =01 06 13 8D 00 CF 5D 31,程序则必须判断接收的内容是否从1个字节开/始的后续字节是“01 06 13 8D 00 CF 5D 31”这样的内容,如果不等,则判断失败;Constant=3.1.9. 校时注意仅支持单点校时,设备校时间隔不等于0才会触发校时功能/校时命令发送后sleep 2sTimeSend;/详见3.2.3说明BuffStr=01 10 01 00 00 06 00 00 00 00
19、00 00 00 00;/地址模块 详见3.2.2AddrCHECK=1 AddrPos=3 AddrType=1;/校验模块 详见3.2.1CHECK=1 checkFrom=1 checkTo=5checkpos=6checkMode=1 /带pos的表示位置,Type表示数据类型 *(见4.2说明,暂时支持2、3、6、7、9、10、11、12) / 简单校时报文使用TimePos和TimeType即可TimePos=TimeType=YearPos=YearType=MonthPos=MonthType=DayPos=DayType=HourPos=HourType=MinutePos=
20、MinuteTypeSecondPos=SecondType=注意:年仅填充个位和十位,比如2013,仅填充13,20当成固定报文即可,因为它一百年才变一次。什么时候使用TimePos和TimeType:当报文中的时间排列为 年、月、日、时、分、秒,且6个数据格式一致时使用。当报文中时间排列顺序不是上述情况,或者各时间的数据格式不一致,需要单独配置各自的时间字段。3.2. 通用配置集合DrvAnyPolling驱动的通用配置集合在多个配置块使用,比如说。通用模块介绍如下:3.2.1. 校验主要职责是自动构造各种校验码。校验配置集合可以在发送报文sendxx使用也可以在遥调发送报文CtrlSen
21、dxx 中使用。;/是否配置发送校验,1为校验,默认为0不校验CHECK=1;/校验起始字节,默认0,不校验 checkFrom=1 ; /校验终止字节checkTo=5;/校验字位置 checkpos=6;/校验方式 *见4.1校验类型checkMode=1 3.2.2. 地址主要职责是自动设备地址,可以把PecConfig中配置的地址自动填充到报文中,这样做的好处是相同设备类型不同设备地址的配置 只需要一份即可。;/是否配置ID (1为校验,默认为0不校验)AddrCHECK=1;/ID位置 AddrPos=3;/ ID类型 (0表示byte;1表示word) AddrType=1 3.2
22、.3. 固定报文主要职责是提供报文的长度信息,提供报文中固定字节的内容。BuffStr的配置规则:1字节长度必须和实际报文一致2固定部分报文需要和实际报文一致3可变部分报文任意配置,因为程序会自动填充这部分的报文的字节BuffStr=01 06 13 8D 00 CF 5D 313.3. 数学运算配置本模块负责把通信之后的原始模拟量通过运算表达式进行二次计算,运算结果再刷新到前台对应测点。;/常量配置示例Constant;/限制最多设置100个常量 V0 V99Num=2 V0=2V1=3.1415926 /模拟量表达式配置示例 支持括号,不支持数字,请配置常量代替数字MathOperatio
23、nA200= A3*(A1+A2)A101= A3/Sqrt(A0)A12= A1*A4PowerV0 / A12=A1*(A4 V0)/等号右边的A1表示测点参数号=1的值/等号左边的A200表示计算后的值刷新到测点参数号=200/表达式个数没有限制/每个表达式最多支持48个元素(即数据源或操作符号)例如A4 或 power 算一个元素支持的普通运算符号名称符号优先级目数说明加法+12模拟量加法运算减法-12模拟量减法运算乘法*22模拟量乘法运算除法/22模拟量除法运算平方根Sqrt31模拟量平方根运算平方Sqr31模拟量平方运算指数Power32模拟量指数运算正弦Sin31模拟量正弦值运算
24、余弦Cos31模拟量余弦值运算支持的特殊运算符号名称符号优先级目数说明取数据位运算Bits33详见示例5.3说明4. 数据格式说明4.1. 校验类型DrvAnyPolling驱动通用校验方式(CheckMode 值的含义):0: SUM8 校验, (和累加取最低一个字节)1: SUM16校验 (和累加取两个字节,低字节在前,高字节在后)2: Modbus RTU校验 (CRC16 低在前高在后)3: CRC16 高在前低在后 4: 取反加一5:CCITT跟模版的可能不一致,是根据源博电量采集通讯规约 /CCITT (LH)6: SUM16校验 (和累加取两个字节,高字节在前,低字节在后)7:异
25、或校验4.2. AI数据类型DrvAnyPolling通用模拟量数据类型(Datatype 值的含义):值说明(常用的蓝体标出)字节数报文示例数值1有符号8位 1F8-82无符号8位1F82483BCD码124244无符号16位 低字节在前 高字节在后2F8 FF655285有符号16位 低字节在前 高字节在后2F8 FF-86无符号16位 高字节在前 低字节在后2FF F8655287有符号16位 高字节在前 低字节在后2FF F8-88有符号 后两字节*1000+前两字节400 01 00 0220019无符号32位 高字在前 低字在后400 01 00 036553910有符号32位 高
26、字在前 低字在后4FF FF FF F8-811IEEE32位浮点数43F 47 AE 140.7812与IEEE32位浮点数 高字 低字相反4AE 14 3F 470.7813MODBUS 无符号32位浮点数400 01 00 031000314MODBUS 有符号32位浮点数4FF FF FF F8-1000815无符号32位 低字在前 高字在后400 03 00 016553916有符号32位 低字在前 高字在后4FF F8 FF FF-817与IEEE32位浮点数 字节刚好完全相反414 AE 47 3F0.7818高字节*100+低字节21C 19252819双精度浮点数8
27、;00 00 00 BF 81 70 57 20-0.008520无符号32位(与类型9的字节顺序刚好完全相反)403 00 01 006553923有符号16位,最高位为符号位,低15位为具体数值2A6 6A-983424双精度浮点数 Big Indian (和类型19对应,字节序相反)8BF 81 70 57 20 00 00 00-0.0085100.111AsCII专用直接将字节转换成char,十进制表示105表示数据长度为5个Ascii,依次类推(包括小数)11131 32 20 33 3412.34120.131AsCII专用直接将字节转换成char,十六进制表
28、示124表示数据长度为4个Ascii,依次类推(不包括小数)11131 32 33 340x1234或4660132先按128的格式由ASCII解析成十六进制表示然后按11的格式解析成IEEE32浮点数831 34 3A 3E34 37 33 3F0.78200.210BCD码串 倒过来解析11005 64 000064054.3. DI数据类型DrvAnyPolling通用开关量数据类型(D xx 中Datatype 值的含义):0表示解析一个字节的8位开关量 /这个类型是最常用的9表示按固定值解析, 数据类型是byte10表示按固定值解析,数据类型是word当配置使用了9或10时,Valu
29、e的值与传递上来的值一致是,传递给前台的开关量为1200 Ascii码报文中用到,获取到的字节需要减去30H ,31H > 1/ 30H >0201 报文中的字节,减30H,然后再按一个字节8位去解析5. 简单示例5.1. 如何让DrvAnyPolling正常运行这个例子的目的是让DrvAnyPolling不依赖装置正常运行和通信。这样你就可以很容易的验证DrvAnyPolling的配置是否正确。1. 需要使用Pecstar3.5搭建主站。2. 需要使用Commix 或 AutoAnswer工具搭建从站。3. 需要虚拟串口工具,搭建两个互相连通的串口。构建一个最简单的发送和回复报文
30、让DrvAnyPolling可以正常通信,以下面例子。发送:05 1F (2 bytes) 接收:39 83 01 (3 bytes)配置:Common ;/接受与发送的组数 SendRecNumber=1;/模拟量的组数 AInumber=1;/注意:总体信息配置需要和后面的配置信息对应,否则会出错。 send1;/详见3.2.3说明 BuffStr= 05 1FRec1;/是否进行长度校验(1为校验,默认为0不校验)CheckLen=1 ;/长度值 Lenth=3;/ 模拟量解析配置A1;/ 在第几组接收报文中进行解析Recnum=1 ;/ 从第几个字节开始解析 Recbyte=1;/ 数
31、据类型 *(见4.2说明)DataType=2;/ 按顺序连续解析的模拟量的个数Aipoint=3;/前台传递的量最初的位置 表示传递到参数号为1的模拟量 A1AIMirrorAddress=26. 复杂示例示例中仅关注单一模块的配置,放入PecConfig未必能够正常运行,先参考4.1让DrvAnyPolling正常运行之后,再验证以下示例。6.1. 校时模块 (8) 命令 10H 多寄存器修改 装置校时格式:地址100100000306年月日时分秒CRC16位校验注:1. 年、月、日、时、分、秒为BCD码 2. 动作执行完毕,装置不回答。 TimeSend;/详见3.2.3说明 报文的固定
32、部分 10 01 00 00 03 06以及总报文长度必须和规约一致,可变部分任意写。BuffStr=02 10 01 00 00 03 06 00 00 00 00 00 00 00 00;/地址模块 详见3.2.2AddrCHECK=1 AddrPos=1 AddrType=0;/校验模块 详见3.2.1CHECK=1 checkFrom=1 checkTo=13checkpos=14checkMode=2 ;/时间部分 使用简单方式 起始位置8,格式BCD码TimePos=8TimeType=3PecConfig中配置的设备地址为1,配置结果报文如下:2013-04-24 08:38:2
33、5.375 (C4,M0)TimeSend2013-04-24 08:38:25.375 (C4,M0)BuffStr=02 10 01 00 00 03 06 00 00 00 00 00 00 00 002013-04-24 08:38:25.375 (C4,M0)AddrCheck=12013-04-24 08:38:25.375 (C4,M0)AddrPos=12013-04-24 08:38:25.375 (C4,M0)AddrType=02013-04-24 08:38:25.390 (C4,M0)Check=12013-04-24 08:38:25.390 (C4,M0)Chec
34、kFrom=12013-04-24 08:38:25.390 (C4,M0)CheckTo=132013-04-24 08:38:25.390 (C4,M0)CheckPos=142013-04-24 08:38:25.390 (C4,M0)CheckMode=32013-04-24 08:38:25.390 (C4,M0)TimePos=82013-04-24 08:38:25.390 (C4,M0)TimeType=32013-04-24 08:38:25.390 (C4,M0)-Meter0(ID=1,MeterType=AnyPollingMeter)新建设备114-2013-04-24 08:38:25.390 (C4,M0)校时2013-04-24 08:38:25.390 (C4,M0)进入到了发送函数2013-04-24 08:38:25.406 (C4,M0)发:( 15字节)01 10
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 租赁经营的品质管理与质量控制考核试卷
- 矿石处理工艺的设备选型与改进与现场维护与培训考核试卷
- 社会人文的跨学科研究考核试卷
- 电子智能手环运动追踪考核试卷
- 橡胶产品应用领域考核试卷
- 社会中的健康产业与经济增长考核试卷
- 窗帘辅料的选择与应用技巧考核试卷
- 石棉防震设备的使用方法和性能考核试卷
- 生物质能发电的生物质能发电设备选型指导考核试卷
- 工厂车间安全教育体系
- 医院培训课件:《产前准备-为顺产做准备》
- 《管理学原理》(课件)
- 长城汽车2025人才测评答案
- 幼儿园法制教育讲座
- 河道的管理和防护课件
- 《中华人民共和国产品质量法》知识培训
- 技能人才评价命题技术规程
- 中职不等式的试题及答案
- 深信服aES产品技术白皮书-V1.5
- 浙江省金华义乌市稠州中学2024-2025学年九年级下学期3月独立作业英语试卷(原卷版+解析版)
- Unit+2+Expressing+yourself+PartB(课件)【知识精研】人教PEP版(2024)英语三年级下册
评论
0/150
提交评论