?? modbus.h
字號:
#ifndef __MODBUS_H__
#define __MODBUS_H__
#pragma once
/*
MODBUS 通信模塊頭文件
本模塊實現如下方法:
OpenSerial 串口設置
CloseSerial 關閉串口
RdMultiBit 讀多個線圈
RdMultiWord 讀多個寄存器
WrtOneBit 寫單個線圈
WrtOneWord 寫單個寄存器
WrtMultiBit 寫多個線圈
WrtMultiWord 寫多個寄存器
VerifyPack 回送診斷校驗
*/
#ifdef __DLLEXPORT__
#define DLLPROC __declspec(dllexport)
#else
#define DLLPROC __declspec(dllimport)
#endif // __DLLEXPORT__
/* 錯誤代碼定義 */
#define MODBUS_NOERROR 0 // 成功
#define MODBUS_INVALID_FUNC 1 // 非法功能碼
#define MODBUS_INVALID_REG 2 // 非法寄存器地址
#define MODBUS_INVALID_COUNT 3 // 數據個數錯誤
#define MODBUS_NO_LIB 100 // 無法導入動態庫
#define MODBUS_NO_IMPL 99 // 尚未實現
#define MODBUS_INVALID_PARAM 98 // 函數參數錯誤
#define MODBUS_OPEN_FAILED 97 // 無法打開端口
#define MODBUS_PORT_UNAVAILABLE 96 // 端口不可用
#define MODBUS_LOW_MEM 95 // 內存不足
#define MODBUS_NO_RESPONSE 94 // 從機無響應
#define MODBUS_BAD_RESPONSE 93 // 響應格式不合法
#define MODBUS_CRC_ERROR 92 // CRC校驗碼不正確
/* 協議模式定義 */
#define PROTOCOL_ASCII 0 // ASCII模式
#define PROTOCOL_RTU 1 // RTU模式
/* 功能碼定義 */
#define FN_READ_BITS 1 // 讀線圈
#define FN_READ_INPUT 2 // 讀離散量輸入
#define FN_READ_WORDS 3 // 讀保存寄存器
#define FN_WRITE_ONEBIT 5 // 寫單個線圈
#define FN_WRITE_ONEWORD 6 // 寫單個寄存器
#define FN_WRITE_BITS 15 // 寫多個線圈
#define FN_WRITE_WORDS 16 // 寫多個寄存器
#define FN_VERIFY_PACK 8 // 回送診斷校驗
extern "C" {
/* 接口方法定義 */
DLLPROC long __stdcall OpenSerial( int nSerialNo,
int nBaud,
int nDataBit,
int nStopBit,
int nProType,
int nRetryTime,
int nTimeOut );
DLLPROC long __stdcall CloseSerial( int nSerialNo );
DLLPROC long __stdcall RdMultiBit( int nSerialNo,
int nStationNo,
const char* ucStartAddr,
int nNum,
unsigned char ucRefValue[] );
DLLPROC long __stdcall RdMultiWord( int nSerialNo,
int nStationNo,
const char* ucStartAddr,
int nNum,
short sRefValue[] );
DLLPROC long __stdcall WrtOneBit( int nSerialNo,
int nStationNo,
const char* ucAddr,
unsigned char ucValue );
DLLPROC long __stdcall WrtOneWord( int nSerialNo,
int nStationNo,
const char* ucAddr,
short sValue );
DLLPROC long __stdcall WrtMultiBit( int nSerialNo,
int nStationNo,
const char* ucStartAddr,
int nNum,
unsigned char ucValue[] );
DLLPROC long __stdcall WrtMultiWord( int nSerialNo,
int nStationNo,
const char* ucStartAddr,
int nNum,
short sValue[] );
DLLPROC long __stdcall VerifyPack( int nSerialNo,
int nStationNo,
short sVerifyCode,
short* DataField );
}; // extern "C"
#endif // __MODBUS_H__
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -