Head.h 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. #if !defined(_INCLUDE_HEAD_H)
  2. #define _INCLUDE_HEAD_H
  3. #if _MSC_VER > 1000
  4. #pragma once
  5. #endif // _MSC_VER > 1000
  6. #include <afxtempl.h>
  7. // Modbus Rtu 设备Dll错误代码定义
  8. enum __ERRO_CODE_MODBUS_RTU
  9. {
  10. ERR_CODE_MODBUS_RTU_COM_FAULT = 30001 , // Modbus rtu设备串口通信故障
  11. ERR_CODE_MODBUS_RTU_COM_BUSY , // Modbus rtu设备串口通信忙
  12. ERR_CODE_MODBUS_RTU_COM_READ_NO_DATA , // Modbus rtu设备没有读到数据
  13. ERR_CODE_MODBUS_RTU_COM_READ_LEN_OVER , // Modbus rtu设备读到数据长度超时限制
  14. ERR_CODE_MODBUS_RTU_COM_LRC_LOST , // Modbus rtu设备lrc校验失败
  15. EER_CODE_MODBUS_RTU_COM_WRITE_DATA , // Modbus rtu设备写串口错误
  16. EER_CODE_MODBUS_RTU_COM_REGNUM , // Modbus rtu设备寄存器数
  17. ERR_CODE_MODBUS_RTU_COM_VARLEN , // Modbus rtu设备变量长度错误
  18. };
  19. #pragma pack(push) //保存对齐状态
  20. #pragma pack(1)//设定为4字节对齐
  21. typedef struct tagPORTPARAM
  22. {
  23. BYTE PortNo; //Com端口
  24. DWORD BaudRate; //波特率
  25. BYTE ByteSize; /* Number of bits/byte, 4-8 */
  26. BYTE Parity; /* 校验位 0-4=None,Odd,Even,Mark,Space */
  27. BYTE StopBits; /* 结束位 0,1,2 = 1, 1.5, 2 */
  28. BYTE StartAddr; //起止地址
  29. int Interval; //间隔时间
  30. tagPORTPARAM()
  31. {
  32. PortNo=3;
  33. BaudRate=CBR_9600;
  34. ByteSize=8;
  35. Parity=NOPARITY;
  36. StopBits=ONESTOPBIT;
  37. StartAddr=1;
  38. Interval=1000;
  39. }
  40. }PORTPARAM,*PPORTPARAM;
  41. //写寄存器请求
  42. typedef struct __REQUESTPARAM
  43. {
  44. BYTE AddrCode; //地址码
  45. BYTE FuncCode; //功能码
  46. WORD StartAddr; //起始地址
  47. WORD RequestRegNum; //读取的寄存器个数
  48. BYTE Crc[2]; //校验码位
  49. }REQUESTPARAM, *pREQUESTPARAM;
  50. typedef struct __REQUESTWRPARAM
  51. {
  52. BYTE AddrCode; //地址码
  53. BYTE FuncCode; //功能码
  54. WORD StartAddr; //起始地址
  55. WORD SetValue; //设置内容
  56. BYTE Crc[2]; //校验码位
  57. }REQUESTWRPARAM, *pREQUESTWRPARAM;
  58. //设置的通讯协议基本参数
  59. typedef struct __SETBASEPARAM
  60. {
  61. int nAddr; //地址码
  62. int nStartAddr; //起始地址
  63. int nRegNum; //读取的寄存器个数
  64. BYTE FuncCode; //功能码
  65. }SETBASEPARAM, *pSETBASEPARAM;
  66. //读应答数据结构
  67. typedef struct __STATUS_STRUCT
  68. {
  69. BYTE AddrCode; //地址码
  70. BYTE FuncCode; //功能码
  71. BYTE RtnByteNum; //返回字节个数
  72. }STATUS_STRUCT, *PSTATUSSTRUCT;
  73. typedef struct __RESPONSE_STRUCT
  74. {
  75. STATUS_STRUCT StatusStruct;
  76. char StrRtnMsg[80]; //返回字符串
  77. BYTE Crc[2]; //校验码位
  78. }RESPONSE_STRUCT, *PRESPONSE_STRUCT;
  79. #pragma pack(pop)//恢复对齐状态
  80. #endif //!defined(_INCLUDE_HEAD_H)