通讯接收状态定义typedef enum Comm_Idle = 0 Comm_RevHeader Comm_RevMachineAddr Comm_RevOptCmd Comm_RevDataAddr Comm_RevDataLength Comm_RevData Comm_RevCrcC
//定义通讯接收状态 typedef enum { Comm_Idle = 0, //空闲状态 Comm_RevHeader, //接收帧头 Comm_RevMachineAddr, //接收设备地址 Comm_RevOptCmd, //接收读写操作 Comm_RevDataAddr, //接收数据地址 Comm_RevDataLength, //接收操作字节数 Comm_RevData, //接收操作数据 Comm_RevCrc //接收CRC校验位 }CommRevStatus;
//定义通讯接收逆变器数据结构体 typedef struct { Uint8 inv_CommRevHeaderHigh; //帧头高字节 Uint8 inv_CommRevHeaderLow; //帧头低字节 Uint8 inv_CommRevMachineAddr; //设备地址 Uint8 inv_CommRevOptCmd; //读写操作 Uint8 inv_CommRevDataAddrHigh; //数据地址高字节 Uint8 inv_CommRevDataAddrLow; //数据地址低字节 Uint8 inv_CommRevDataLenthHigh; //操作字节数高字节 Uint8 inv_CommRevDataLenthLow; //操作字节数低字节 Uint8 inv_CommRevData[40]; //操作数据,最多40个字节 Uint8 inv_CommRevCrcHigh; //CRC校验位高字节 Uint8 inv_CommRevCrcLow; //CRC校验位低字节 Uint8 inv_CommRevSuccess; //接收是否成功标志 Uint8 inv_CommRevErroCode; //接收错误码 }CommRevInvData;
//定义通讯发送逆变器数据结构体 typedef struct { Uint8 inv_CommSendHeaderHigh; //帧头高字节 Uint8 inv_CommSendHeaderLow; //帧头低字节 Uint8 inv_CommSendMachineAddr; //设备地址 Uint8 inv_CommSendOptCmd; //读写操作 Uint8 inv_CommSendDataAddrHigh; //数据地址高字节 Uint8 inv_CommSendDataAddrLow; //数据地址低字节 Uint8 inv_CommSendDataLengthHigh; //操作字节数高字节 Uint8 inv_CommSendDataLengthLow; //操作字节数低字节 Uint8 inv_CommSendData[40]; //操作数据,最多40个字节 Uint8 inv_CommSendCrcHigh; //CRC校验位高字节 Uint8 inv_CommSendCrcLow; //CRC校验位低字节 Uint8 inv_CommSendCtlRegs; //控制寄存器 Uint8 inv_CommSendStart; //发送开始标志 }CommSendInvData;
//定义inv通讯发送数据帧联合 typedef union { CommSendInvData inv_CommSendData; //通讯发送逆变器数据结构体 Uint8 inv_CommSendDataBytes[52]; //字节型数组,最多52个字节 }inv_CommSendDataFrame;
//定义inv通讯接收数据帧联合 typedef union { CommRevInvData inv_CommRevData; //通讯接收逆变器数据结构体 Uint8 inv_CommRevDataBytes[52]; //字节型数组,最多52个字节 }inv_CommRevDataFrame;
//定义通讯接收电池数据结构体 typedef struct { Uint8 inv_CommSendHeaderHigh; //帧头高字节 Uint8 inv_CommSendHeaderLow; //帧头低字节 Uint8 inv_CommSendMachineAddr; //设备地址 Uint8 inv_CommSendOptCmd; //功能码 Uint8 inv_CommSendData[40]; //操作数据,最多40个字节 Uint8 inv_CommSendCrcHigh; //CRC校验位高字节 Uint8 inv_CommSendCrcLow; //CRC校验位低字节 }CommRevBatData;
//定义通讯发送读取电池数据结构体 typedef struct {
}CommSendBatData;
//定义系统设置数据类型 typedef struct { Uint16 GridStandard; //电网标准,0x3015 Uint16 InputSource; //输入源,0x3016 Uint16 BatterryVotage; //电池电压,0x3017 Uint16 BatterryChargeVotage; //电池充电电压,0x3018 Uint16 BatterryChargeCurrent; //电池充电电流,0x3019 Uint16 MachineRunCode; //机器运行码,0x301A
Uint16 BatterrySlave485Addr; //电池从机485地址,0x3024
Uint16 StartChargeVotage; //开始充电电压,0x3025
Uint16 StopDisChargeVotage; //停止放电电压,0x3026
Uint16 StartChargeEnergy; //开始充电能量,0x3027
Uint16 StopDisChargeEnergy; //停止放电能量,0x3028
Uint16 BatterryDisChargeCurrent; //电池放电电流,0x3029
Uint16 EnergyStorageMode; //储能模式,0x302A
}SysSetDataType
原文地址: https://www.cveoy.top/t/topic/hirK 著作权归作者所有。请勿转载和采集!