12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- #pragma once
- #pragma warning(disable:4275)
- #include<iostream>
- #include<stdlib.h>
- #include<stdio.h>
- #include "windows.h"
- #include "CRS232.h"
- #include <sstream>
- #include <string>
- using namespace std;
- #ifdef MODBUS_EXPORTS
- #define MODBUS_DLL_API __declspec(dllexport)
- #else
- #define MODBUS_DLL_API //__declspec(dllimport)
- #endif
- #define MODBUS_BASE_ERROR (SERIAL_PORT_BASE_ERROR + 20000)
- #define MAX_COM_BUFFER_LEN 256
- typedef enum
- {
- MODBUS_BASE_FILE = MODBUS_BASE_ERROR,
- RTU_ERR_ORDER,
- RTU_ERR_ADDR,
- RTU_ERR_DATA,
- RTU_ERR_CONN,
- RTU_ERR_WRITE,
- RTU_ERR_READ_NULL,
- RTU_ERR_RECV,
- RTU_ERR_PARITY,
- } MODBUSERR;
- class MODBUS_DLL_API CRS485 : public CRS232
- {
- public:
- char aryComPort[10];
- private:
- unsigned char m_Readbuf[MAX_COM_BUFFER_LEN];
- unsigned char m_Writebuf[MAX_COM_BUFFER_LEN];
- unsigned short CalcCrcFast(unsigned char*puchMsg, unsigned short usDataLen);
- long ModbusRead(unsigned char rtuAddr, unsigned char cmd, unsigned short int dataAddr, unsigned short int readCount, unsigned short int *pReadVal);
- public:
- long OpenPort(unsigned long xPort, int iRate);
- long OpenPort(char *xPort, int iRate);
- long ModbusRead_01(unsigned char rtuAddr, unsigned short int dataAddr, unsigned short int readCount, unsigned short int *pReadVal);
- long ModbusRead_03(unsigned char rtuAddr, unsigned short int dataAddr, unsigned short int readCount, unsigned short int *pReadVal);
- long ModbusRead_04(unsigned char rtuAddr, unsigned short int dataAddr, unsigned short int readCount, unsigned short int *pReadVal);
- long ModbusWrite_05(unsigned char rtuAddr, unsigned short int dataAddr, unsigned short int &pWriteVal);
- long ModbusWrite_06(unsigned char rtuAddr, unsigned short int dataAddr, unsigned short int pWriteVal);
- long ModbusWrite_10(unsigned char rtuAddr, unsigned short int dataAddr, unsigned short int writeCount, unsigned short int *pWriteVal);
- static string GetErrText(long errid);
- };
|