首页
社区
课程
招聘
[求助]谁能给我说明下这个硬件说明书的意思
发表于: 2008-9-26 09:46 4124

[求助]谁能给我说明下这个硬件说明书的意思

2008-9-26 09:46
4124
我是刚刚开始做驱动开发的
公司交给我一个电源驱动的说明说
通信电源集中监控通讯协议

一、        监控PC机命令格式:
短命令格式:系统编号+回车符+命令内容+回车符+结束符
长命令格式:系统编号+回车符+命令内容+回车符+数据+
            回车符+结束符
1.        设备编号:D**  其中** 为ASCⅡ码。**为01—99
2.        回车符:  d      (二进制数)
3.结束符:  4     (二进制数)

二、        监控PC机命令内容:
1.        查询命令:短命令格式
POL   系统查询,查询系统数据及系统状态,包括故障状态。
POL0  查询机桂1—机桂8整流器的状态,整流器电流。
POL1  查询电池状态。
POL2  查询直流分路状态。
2.        系统参数设置命令:长命令格式
1)                ECT:                        设均充时间:                        ECT/XX/
2)                ECP:                        设均充周期:                        ECP/XX/
3)                EFC:                        均浮转换电流:                EFC/XXXX/(带有符号)
4)                FCV:                        设浮充电压:                        FCV/XX.X/
5)                ECV:                        设均充电压:                        ECV/XX.X/
6)                LVV:                        欠压值:                                LVV/XX.X/
7)                OVV:                过压值:                                OVV/XX.X/
8)                TPF:                        温度系数:                        TPF/XXXX/
9)                TPR:                        参考温度:                        TPR/XX.X/
10)        CCL:                        设置充电限流值:        CCL/XXXX/(带有符号)
其中参数均为ASCⅡ码。
8.系统控制命令:    短命令格式
1)  BAT1:                启动电池实验:                        BAT1/
2)  BAT0:                关闭电池实验:                        BAT0/
3)  ECH1:                启动均充:                                ECH1/
4)  ECH0:                关均充:                                        ECH0/
5)  ONR:                系统开机:                                ONR/
6)  OFF:                系统关机:                                OFF/
7)  ONS:        单个模块开机                格式为ONS+机柜号+模块号+odh+04
8)   OFS:        单个模块关机   格式为OFS+机柜号+模块号+odh+04

三、        系统应答命令格式:
短命令格式: 系统编号+回车符+状态标示符+回车符+结束符
长命令格式: 系统编号+回车符+数据标识符+回车符+数据+回车符
              +结束符
1.设备编号D**  其中**为ASCⅡ码, **为01—99
2.回车符:     d (二进制数)
3.结束符:     4 (二进制数)

四、        数据和状态标示符:
长命令格式:
1)        AVU、AVW、AVV:三相电压
UNI、VNI、WNI:三相电压
2)        PW1:                市电电压1
PW2:                市电电压2
GNR:                油机电压
3)  ECT:                均充时间:                                ECT/XXX/
     ECP:                均充周期:                                ECP/XX/
     CCL:                充电限流值:                                CCL/XXXX/(带有符号)
4)  EFC:                均浮转换电流:                        EFC/XXXX/(带有符号)
5)  ECV:                均充电压:                                ECV/XX.X/
6)  FCV:                浮充电压:                                FCV/XX.X/
7)  COB:                电池电流:                                COB/XXXX/(带有符号)
8)  AHV:                安时数:                                        AHV/XXXX/(带有符号)
9)  FCR:                负载电流:                                FCR/XXXX/(带有符号)
10) TPF:                温度系数:                                TPF/XXXX/
     TPR:                参考温度:                                TPR/XX.X/
11) COR:                系统电流:                                COR/XXXX/
12) DCV:                直流电压:                                DCV/XXXX/
13) ACV:                交流电压:                                ACV/XXX/
14) OVV:                过压值:                                        OVV/XX.X/
15) LVV:                欠压值:                                        LVV/XX.X/
16) COB1-COB8  8路电池状态
17) FCR1-FCRG表示16路直流分路状态
短命令格式:
1)  OFF:        系统关机:                                OFF/
     ONR:        系统开机:                                ONR/
2)  ECH:        均充状态:                                ECH/
3)  BAT:        电池实验:                                BAT/
4)  故障码
UNB:        交流不平衡
ACB:        交流超限:                                ACB/
OOV:        过压:                                                OOV/
LBV:        欠压:                                                LBV/
BBF:        熔丝:                                                BBF/
BOB:        分路故障:                                BOB/
BOR:        整流器故障:                                BOR/
FIR:        火警:                                                FIR/
THF:        匪警:                                                THF/

五、        监控PC机命令与系统控制器应答关系说明
1、        对应监控PC机系统参数设置命令系统控制器无应答
2、        对应监控PC机控制命令系统控制无应答
3、        对应监控PC机查询命令POL的应答为:
AVU、AVW、AWW、
UNI、VNI、WNI、
PW1、PW2、GNR、
ECT、ECP、FCR、
AHV、TPF、TPR、
COR、COB、
DCV、ACV、
ECV、FCV、
以上数据以“数据编号+回车符+数据+回车符”的格式连续发回给监控PC机。
同时,OFF、ONR、ECH、BAT 和其余故障也以  状态标示符+回车符的格式发回,直到出现结束符。缺省的数据和状态为正常或系统无此设置。
4、POL0应答:
系统编号+机柜号+回车+模块号+状态+电流值+回车+结束。
缺省模块号没装
状态:0-没装    1-正常    2-故障    3-关机
5、对应于监控PC机查询命令POL1查询电瓶状态,系统控制器应答为:COB1—COB8
系统编号+(COB“N”+回车+状态+带正负号四位整数+回车)+结束。
状态:0-没装      1-正常       2-故障
同时发回的还有:
OFF、ONR、ECH、BAT 和故障码
缺省的项表示无此路电池。
6、对应于监控PC机查询命令POL2查询直流分路状态,系统控制器应答为:
FCR1—FCRG  “1”表示通,   “0”表示断
同时发回的还有:
OFF、ONR、ECH、BAT和故障码,
缺省的项表示无此分路。

六、        传输特性参数:
1.        波特率:
RS232格式为1200bps  RS485格式为4800 bps
2.        字结构
一个起始位,七个数据位,一个偶校验位,一个停止位,共十位。
3.        RS232、RS485接口定义:
引  脚  号        定   义
RS232:
1,4,5        接   地
3        发   送
2        接   收
7        CD
8        DTR
RS485:
1,4        负   端
2,3        正   端

我根据同事的帮助建立如下定义表

驱动程序通道定义表

设备名称        北京动力源科技股份有限公司通信电源        驱动名称       
参数格式        PxAy        备    注        y表示设备地址,不加该参数默认为1
电气标准        波特率        起始位        校验位        数据位        停止位        接线方式        设备        23        14        设备        1,4,5        2        3        7        8
232        1200        1        1偶        7        1                485        正        负        232        地线        接受        发送        CD        DTR
485        4800                                                                                                               
通道定义
机架        组        通道号        通道名称        类型        对应值意义        备注
0        0        0        协议通信状态        DI        0:通信正常       

1        1        1        开机        DI               
1        1        2        关机        DI               
1        1        3        启动电池实验        DI        0:关,1:开        
1        1        4        启动均充        DI        0:关  1:开       
1        1        5        单个模块开关        DI                
1        1        6        单个模块关机        DI                
1        1        7        电瓶状态        SI        0-没装     1-正常       2-故障       
1        1        8        直流分路状态        DI        “1”表示通“0”表示断       
1        1        9        模块状态        DI        0-没装 1-正常    2-故障    3-关机       

1        1        10        交流不平衡        DI               
1        1        11        交流超限        DI               
1        1        12        过压        DI               
1        1        13        欠压        DI               
1        1        14        熔丝        DI               
1        1        15        分路故障        DI               
1        1        16        整流器故障        DI               
1        1        17        火警        DI               
1        1        18        匪警        DI               
数字输出量
1        2        1        市电电压        sI        1:市电电压12:市电电压23:油机电压       
1        2        2        三相电压        SI        1: AVU2: AVW3: AVV       
1        2        3        三相电压        SI        1:UNI、2:VNI、3:WNI       
1        2        4        均充时间        DI               
1        2        5        均充周期        DI               
1        2        6        充电限流值        DI               

1        2        7        均浮转换电流        DI               
1        2        8        均充电压        DI               
1        2        9        浮充电压        DI               
1        2        10        电池电流        DI               
1        2        11        安时数        DI               
1        2        12        负载电流        DI               
1        2        13        温度系数        DI               
1        2        14        参考温度        DI               
1        2        15        系统电流        DI               

1        2        16        直流电压        DI               
1        2        17        交流电压        DI               
1        2        18        过压值        DI               
1        2        19        欠压值        DI               
1        2        20        8路电池状态        DI               
1        2        21        16路直流分路状态        DI               

2        1        1        POL查询状态        AO        参数设置范围:(空),0,1,2       
2        1        2        设均充时间        AO        参数设置范围:整数值       
2        1        3        设均充周期        AO        参数设置范围:正整数       
2        1        4        均浮转换电流        AO        参数设置范围:带符号       
2        1        5        设浮充电压        AO        1.        参数设置范围:01—99(只能设置为整数)       
2        1        6        设均充电压        AO        2.        参数设置范围:01—99(只能设置为整数)       
2        1        7        欠压值        AO        3.        参数设置范围:01—99(只能设置为整数)       
2        1        8        过压值        AO        4.        参数设置范围:(只能设置为整数01—99)       
2        1        9        温度系数        AO        5.        参数设置范围:时间值(01—99)       
2        1        10        参考温度        AO        6.        参数设置范围:(只能设置为整数01—99)       
2        1        11        设置充电限流值        AO        7.        参数设置范围:(只能设置为整数01—99)       

下面是我建立的vc++工程的一个中心类
// BeiJingPow_drv.h: interface for the BeiJingPow_drv class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_BEIJINGPOW_DRV_H__EAD7D70A_7D06_4966_A364_5FAC444BF02D__INCLUDED_)
#define AFX_BEIJINGPOW_DRV_H__EAD7D70A_7D06_4966_A364_5FAC444BF02D__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "StdAfx.h"
#include "CommonDrv.h"
#include "string.h"

//////判断命令是否相同
inline BOOL CodeCom(BYTE *p1,BYTE *p2,int n)
{
        for(int i = 0;i < n;i++)
                if(*(p1 + i) != *(p2 + i)) return FALSE;
        if(3 == i) return TRUE;
}

class BeiJingPow_drv:public CCommonDrv
{
public:
        BOOL DecodeFrame(BYTE *pData,int nLen);
        WORD CRC16(BYTE *pData,int nCount);
        int m_typeflag_int;
        virtual BOOL OnSendCommand(CSetCmd &cmd, BYTE * pWData, int &nWLen);
        virtual BOOL OnReceiveResponse(BYTE *pRData, int nRLen);
        virtual BOOL OnSendDataRequest(BYTE * pWData, int &nWLen);
        virtual BOOL OnCreate (CString &strFileName);
        virtual BOOL OnReset(tagCOMMINFO *pCommInfo);
        virtual void OnError(BYTE *pReadBuff, int nReadSize);
        virtual void OnRspTimeout();
        BeiJingPow_drv();
        virtual ~BeiJingPow_drv();
private:
        BYTE m_cAddr;
        int m_nRequestId;
protected:
        BYTE GetBitOfWORD(WORD wData,BYTE index);
};

#endif // !defined(AFX_BEIJINGPOW_DRV_H__EAD7D70A_7D06_4966_A364_5FAC444BF02D__INCLUDED_)

这个类中我只要实现虚函数的具体内容就可以了,公司已经把主要的内容写好了我只需调用就可以了
请问我如何写收发信息函数啊//
我看了好长时间一直不明白到底如何写收发函数??

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
8年前曾经搞过一个,可惜丢在北京了。找找看
是通讯协议
2008-9-26 10:01
0
雪    币: 109
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
谢谢拉
很感动多谢大哥帮忙
2008-9-26 10:05
0
游客
登录 | 注册 方可回帖
返回
//