天天看點

beckhoff ModbusRTU程式記錄 EL6021

FUNCTION_BLOCK FB_MeteorologyIn
VAR_IN_OUT CONSTANT
	DAct : ST_TurbineActual;
	IIn : ST_MeteorologyInput;
END_VAR

VAR_IN_OUT
	DIn : ST_MeteorologyInbox;
	DOut : ST_MeteorologyOutbox;	
END_VAR

VAR
	nSta : BYTE := 0;
	nStaLast : BYTE := 0;
	tonTmOu : TON;	
	arrDat : ARRAY[0..31] OF BYTE;
	nDev : BYTE := 2;
	j : BYTE;	
	bRcvFsh : BOOL;
	tonRcvFsh : TON;
	fbModbusMetTid: ModbusRtuMaster_KL6x22B;
	iStep: INT:=0;
	iCount: INT;
	arrMetTidMb:ARRAY[0..7] OF INT;
	arrMetTidMb2X:ARRAY[0..7] OF INT;
	iCount1: INT;
	iCount2: INT;
	fMetTidTmp: LREAL;
	fMetTidSpdInst: LREAL;	
	fMetTidTmp2: LREAL;
	fMetTidSpdInst2: LREAL;	
	
END_VAR
           

程式具體

DIn.bVld := TRUE;


CASE iStep OF
	0:
	fbModbusMetTid.ReadRegs(Execute:=FALSE );
	iStep:=10;
	10:
	fbModbusMetTid.ReadRegs(
	UnitID:=1 , 
	Quantity:=8 , 
	MBAddr:=10 , 
	cbLength:=SIZEOF(arrMetTidMb) , 
	pMemoryAddr:=ADR(arrMetTidMb) , 
	Execute:=TRUE , 
	Timeout:=T#
           

繼續閱讀