⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 msz_rab.lib

📁 modbus 运用事例
💻 LIB
📖 第 1 页 / 共 3 页
字号:
/***************************************************************************\
	MODBus Slave Serial Drivers for Rabbit 2000
		Copyright (c) 2002 Z-World, Inc.
		Copyright (c) 1998, CFControls.
		Portions Copyright (c) 1995, Progressive Solutions.
\***************************************************************************/

/*** Beginheader */
#ifndef __MSZ_RAB_LIB
#define __MSZ_RAB_LIB

#use "MS_RAB.LIB"									//	MODBus Slave Library
/*** Endheader */

/***************************************************************************\
	MODBus Slave ASCII Driver
\***************************************************************************/

/*** BeginHeader msaAinit */
int msaAinit(unsigned, unsigned);
/*** EndHeader */

int msXgetc()
{
	return( serAgetc() );
}


int msXread(void *data, int length, unsigned long tmout)
{
	return( serAread(data, length, tmout) );
}

nodebug
int msSend(char *pcMess, unsigned wLen)
{
	int nDone;

	msAtx();
	nDone = serAwrite(pcMess, wLen);
	msArx();

	return nDone;
}

/* START FUNCTION DESCRIPTION *****************************************
msaAinit                         <MSZ_RAB.LIB>

NOTE: MSZ_RAB.LIB functions are generally not reentrant.

SYNTAX: int msaAinit(unsigned wAddr, unsigned long qBaud)

DESCRIPTION: Initialize serial port A as a Modbus ASCII Slave.

PARAMETER1: slave address.
PARAMETER2: baud rate (bits per second).

RETURN VALUE: 1 if successful, 0 if unsupported baud rate.
END DESCRIPTION ******************************************************/



nodebug
int msaAinit(unsigned wAddr, unsigned qBaud)
{
	msaInit(wAddr);										//	Init ASCII Bridge

	return msAinit(qBaud);
}


/*** BeginHeader msaBinit */
int msaBinit(unsigned, unsigned);
/*** EndHeader */

int msXgetc()
{
	return( serBgetc() );
}


int msXread(void *data, int length, unsigned long tmout)
{
	return( serBread(data, length, tmout) );
}

nodebug
int msSend(char *pcMess, unsigned wLen)
{
	int nDone;

	msBtx();
	nDone = serBwrite(pcMess, wLen);
	msBrx();

	return nDone;
}

/* START FUNCTION DESCRIPTION *****************************************
msaBinit                         <MSZ_RAB.LIB>

NOTE: MSZ_RAB.LIB functions are generally not reentrant.

SYNTAX: int msaBinit(unsigned wAddr, unsigned long qBaud)

DESCRIPTION: Initialize serial port B as a Modbus ASCII Slave.

PARAMETER1: slave address.
PARAMETER2: baud rate (bits per second).

RETURN VALUE: 1 if successful, 0 if unsupported baud rate.
END DESCRIPTION ******************************************************/



nodebug
int msaBinit(unsigned wAddr, unsigned qBaud)
{
	msaInit(wAddr);										//	Init ASCII Bridge

	return msBinit(qBaud);
}


/*** BeginHeader msaCinit */
int msaCinit(unsigned, unsigned);
/*** EndHeader */

int msXgetc()
{
	return( serCgetc() );
}


int msXread(void *data, int length, unsigned long tmout)
{
	return( serCread(data, length, tmout) );
}

nodebug
int msSend(char *pcMess, unsigned wLen)
{
	int nDone;

	msCtx();
	nDone = serCwrite(pcMess, wLen);
	msCrx();

	return nDone;
}

/* START FUNCTION DESCRIPTION *****************************************
msaCinit                         <MSZ_RAB.LIB>

NOTE: MSZ_RAB.LIB functions are generally not reentrant.

SYNTAX: int msaCinit(unsigned wAddr, unsigned long qBaud)

DESCRIPTION: Initialize serial port C as a Modbus ASCII Slave.

PARAMETER1: slave address.
PARAMETER2: baud rate (bits per second).

RETURN VALUE: 1 if successful, 0 if unsupported baud rate.
END DESCRIPTION ******************************************************/


nodebug
int msaCinit(unsigned wAddr, unsigned qBaud)
{
	msaInit(wAddr);										//	Init ASCII Bridge

	return msCinit(qBaud);
}


/*** BeginHeader msaDinit */
int msaDinit(unsigned, unsigned);
/*** EndHeader */

int msXgetc()
{
	return( serDgetc() );
}


int msXread(void *data, int length, unsigned long tmout)
{
	return( serDread(data, length, tmout) );
}

nodebug
int msSend(char *pcMess, unsigned wLen)
{
	int nDone;
	msDtx();  
	nDone = serDwrite(pcMess, wLen);
	msDrx();  
	return nDone;
}

/* START FUNCTION DESCRIPTION *****************************************
msaDinit                         <MSZ_RAB.LIB>

NOTE: MSZ_RAB.LIB functions are generally not reentrant.

SYNTAX: int msaDinit(unsigned wAddr, unsigned long qBaud)

DESCRIPTION: Initialize serial port D as a Modbus ASCII Slave.

PARAMETER1: slave address.
PARAMETER2: baud rate (bits per second).

RETURN VALUE: 1 if successful, 0 if unsupported baud rate.
END DESCRIPTION ******************************************************/




nodebug
int msaDinit(unsigned wAddr, unsigned qBaud)
{
	msaInit(wAddr);										//	Init ASCII Bridge
	return msDinit(qBaud);
}

/*** BeginHeader */
#if ( _CPU_ID_ >= R3000 )
/*** EndHeader */

/*** BeginHeader msaEinit */
int msaEinit(unsigned, unsigned);
/*** EndHeader */

int msXgetc()
{
	return( serEgetc() );
}


int msXread(void *data, int length, unsigned long tmout)
{
	return( serEread(data, length, tmout) );
}

nodebug
int msSend(char *pcMess, unsigned wLen)
{
	int nDone;
	msEtx();  
	nDone = serEwrite(pcMess, wLen);
	msErx();  
	return nDone;
}

/* START FUNCTION DESCRIPTION *****************************************
msaEinit                         <MSZ_RAB.LIB>

NOTE: MSZ_RAB.LIB functions are generally not reentrant.

SYNTAX: int msaEinit(unsigned wAddr, unsigned long qBaud)

DESCRIPTION: Initialize serial port E as a Modbus ASCII Slave.
				 (For R3000 CPU's or higher only)
PARAMETER1: slave address.
PARAMETER2: baud rate (bits per second).

RETURN VALUE: 1 if successful, 0 if unsupported baud rate.
END DESCRIPTION ******************************************************/
nodebug
int msaEinit(unsigned wAddr, unsigned qBaud)
{
	msaInit(wAddr);										//	Init ASCII Bridge
	return msEinit(qBaud);
}

/*** BeginHeader msaFinit */
int msaFinit(unsigned, unsigned);
/*** EndHeader */

int msXgetc()
{
	return( serFgetc() );
}


int msXread(void *data, int length, unsigned long tmout)
{
	return( serFread(data, length, tmout) );
}

nodebug
int msSend(char *pcMess, unsigned wLen)
{
	int nDone;
	msFtx();  
	nDone = serFwrite(pcMess, wLen);
	msFrx();  
	return nDone;
}

/* START FUNCTION DESCRIPTION *****************************************
msaFinit                         <MSZ_RAB.LIB>

NOTE: MSZ_RAB.LIB functions are generally not reentrant.

SYNTAX: int msaFinit(unsigned wAddr, unsigned long qBaud)

DESCRIPTION: Initialize serial port F as a Modbus ASCII Slave.
				 (For R3000 CPU's or higher only)
PARAMETER1: slave address.
PARAMETER2: baud rate (bits per second).

RETURN VALUE: 1 if successful, 0 if unsupported baud rate.
END DESCRIPTION ******************************************************/
nodebug
int msaFinit(unsigned wAddr, unsigned qBaud)
{
	msaInit(wAddr);										//	Init ASCII Bridge
	return msFinit(qBaud);
}
/*** BeginHeader */
#endif	// #if (_CPU_ID_ >= R3000)  
/*** EndHeader */

/***************************************************************************\
	MODBus Slave RTU Driver
\***************************************************************************/

/*** BeginHeader msrAinit */
int msrAinit(unsigned, unsigned);
/*** EndHeader */

int msXgetc()
{
	return( serAgetc() );
}


int msXread(void *data, int length, unsigned long tmout)
{
	return( serAread(data, length, tmout) );
}

nodebug
int msSend(char *pcMess, unsigned wLen)
{
	int done;
	msAtx();	  
	done = serAwrite(pcMess, wLen);
	msArx();
	return done;	  
}

/* START FUNCTION DESCRIPTION *****************************************
msrAinit                         <MSZ_RAB.LIB>

NOTE: MSZ_RAB.LIB functions are generally not reentrant.

SYNTAX: int msrAinit(unsigned wAddr, unsigned long qBaud)

DESCRIPTION: Initialize serial port A as a Modbus RTU Slave.

PARAMETER1: slave address.
PARAMETER2: baud rate (bits per second).

RETURN VALUE: 1 if successful, 0 if unsupported baud rate.
END DESCRIPTION ******************************************************/
nodebug
int msrAinit(unsigned wAddr, unsigned qBaud)
{
	msrInit(wAddr, 1 + 35000u/qBaud);
	return msAinit(qBaud);
}


/*** BeginHeader msrBinit */
int msrBinit(unsigned, unsigned);
/*** EndHeader */

int msXgetc()
{
	return( serBgetc() );
}


int msXread(void *data, int length, unsigned long tmout)
{
	return( serBread(data, length, tmout) );
}

nodebug
int msSend(char *pcMess, unsigned wLen)
{
	int done;
	msBtx();	  
	done = serBwrite(pcMess, wLen);
	msBrx();	 
	return done; 
}

/* START FUNCTION DESCRIPTION *****************************************
msrBinit                         <MSZ_RAB.LIB>

NOTE: MSZ_RAB.LIB functions are generally not reentrant.

SYNTAX: int msrBinit(unsigned wAddr, unsigned long qBaud)

DESCRIPTION: Initialize serial port B as a Modbus RTU Slave.

PARAMETER1: slave address.
PARAMETER2: baud rate (bits per second).

RETURN VALUE: 1 if successful, 0 if unsupported baud rate.
END DESCRIPTION ******************************************************/
nodebug
int msrBinit(unsigned wAddr, unsigned qBaud)
{
	msrInit(wAddr, 1 + 35000u/qBaud);
	return msBinit(qBaud);
}


/*** BeginHeader msrCinit */
int msrCinit(unsigned, unsigned);
/*** EndHeader */

int msXgetc()
{
	return( serCgetc() );
}


int msXread(void *data, int length, unsigned long tmout)
{
	return( serCread(data, length, tmout) );
}

nodebug
int msSend(char *pcMess, unsigned wLen)
{
	int done;  
	msCtx();	  
	done = serCwrite(pcMess, wLen);
	msCrx();	  
	return done;
}

/* START FUNCTION DESCRIPTION *****************************************
msrCinit                         <MSZ_RAB.LIB>

NOTE: MSZ_RAB.LIB functions are generally not reentrant.

SYNTAX: int msrCinit(unsigned wAddr, unsigned long qBaud)

DESCRIPTION: Initialize serial port C as a Modbus RTU Slave.

PARAMETER1: slave address.
PARAMETER2: baud rate (bits per second).

RETURN VALUE: 1 if successful, 0 if unsupported baud rate.
END DESCRIPTION ******************************************************/
nodebug
int msrCinit(unsigned wAddr, unsigned qBaud)
{
	msrInit(wAddr, 1 + 35000u/qBaud);
	return msCinit(qBaud);
}


/*** BeginHeader msrDinit */
int msrDinit(unsigned, unsigned);
/*** EndHeader */

int msXgetc()
{

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -