Dear Community User! We have started the migration process.
This community is now in READ ONLY mode.
Read more: Important information on the platform change.

cancel
Showing results for 
Search instead for 
Did you mean: 
SOLVED

How to read motion operation mode node status ?

How to read motion operation mode node status ?

Max1
Long-established Member

Hello rexroth team

I have a question,I want to know how to use "fb DL_ReadNode" to read motion operation mode status?

and  also I want to know how to use "fb DL_WriteNode" to forced motion operation mode to running?

Max1_0-1666253531351.png

Max1_1-1666253568617.png

 

 

1 REPLY 1

CodeShepherd
Community Moderator
Community Moderator

First I like to mention that in the CXA_MOTIONINTERFACE there is an easy to use function included:

 

//Reading mode
ImcStatus.Admin._OpModeAck;

//Setting mode
ImcCtrl.Admin._OpMode := MB_IMC_MODE_CONTROL.IMC_MODE_CTRL_RUN;
ImcCtrl.Admin._OpMode := MB_IMC_MODE_CONTROL.IMC_MODE_CTRL_CONF;

 

For your question, as all information can be found in the Data Layer you can read as follows:

Declaration:

 

PROGRAM MotionStatus
VAR	
	fbDL_ReadNode: DL_ReadNode;
	bReadExecute: BOOL;
	bReadDone: BOOL;
	bReadActive: BOOL;
	bReadError: BOOL;
	ReadErrorID: CXA_Datalayer.ERROR_CODE;
	ReadErrorIdent: CXA_Datalayer.ERROR_STRUCT;
	ReadValue: STRING;
	diSize: DINT;
END_VAR

 

Implementation:

 

fbDL_ReadNode(
	Execute:= bReadExecute, 
	Done=> bReadDone, 
	Active=> bReadActive, 
	Error=> bReadError, 
	ErrorID=> ReadErrorID, 
	ErrorIdent=> ReadErrorIdent, 
	ClientId:= , 
	NodeName:= 'motion/state/opstate', //Path to the node at the Data Layer
	Value:= ReadValue, 
	Size=> diSize);

 

Writing with DL_CreateNode because it is a command:

Declaration:

PROGRAM MotionState
VAR
	fbDL_WriteNode: DL_WriteNode;
	bWriteExecute: BOOL;
	bWriteDone: BOOL;
	bWriteActive: BOOL;
	bWriteError: BOOL;
	WriteErrorID: CXA_Datalayer.ERROR_CODE;
	WriteErrorIdent: CXA_Datalayer.ERROR_STRUCT;
	WriteValue: STRING := 'Configuration'; //Use 'Booting' to get to 'Running'
	fbDL_CreateNode: DL_CreateNode;
	WriteReturnValue: UDINT;
END_VAR

 

 

Implementation:

fbDL_CreateNode(
	Execute:= bWriteExecute, 
	Done=> bWriteDone, 
	Active=> bWriteActive, 
	Error=> bWriteError, 
	ErrorID=> WriteErrorID, 
	ErrorIdent=> WriteErrorIdent, 
	ClientId:= , 
	NodeName:= 'motion/cmd/opstate',//Path to the node at the Data Layer 
	ValueIn:= WriteValue, 
	ValueOut:= WriteReturnValue);

 

 

Icon--AD-black-48x48Icon--address-consumer-data-black-48x48Icon--appointment-black-48x48Icon--back-left-black-48x48Icon--calendar-black-48x48Icon--center-alignedIcon--Checkbox-checkIcon--clock-black-48x48Icon--close-black-48x48Icon--compare-black-48x48Icon--confirmation-black-48x48Icon--dealer-details-black-48x48Icon--delete-black-48x48Icon--delivery-black-48x48Icon--down-black-48x48Icon--download-black-48x48Ic-OverlayAlertIcon--externallink-black-48x48Icon-Filledforward-right_adjustedIcon--grid-view-black-48x48IC_gd_Check-Circle170821_Icons_Community170823_Bosch_Icons170823_Bosch_Icons170821_Icons_CommunityIC-logout170821_Icons_Community170825_Bosch_Icons170821_Icons_CommunityIC-shopping-cart2170821_Icons_CommunityIC-upIC_UserIcon--imageIcon--info-i-black-48x48Icon--left-alignedIcon--Less-minimize-black-48x48Icon-FilledIcon--List-Check-grennIcon--List-Check-blackIcon--List-Cross-blackIcon--list-view-mobile-black-48x48Icon--list-view-black-48x48Icon--More-Maximize-black-48x48Icon--my-product-black-48x48Icon--newsletter-black-48x48Icon--payment-black-48x48Icon--print-black-48x48Icon--promotion-black-48x48Icon--registration-black-48x48Icon--Reset-black-48x48Icon--right-alignedshare-circle1Icon--share-black-48x48Icon--shopping-bag-black-48x48Icon-shopping-cartIcon--start-play-black-48x48Icon--store-locator-black-48x48Ic-OverlayAlertIcon--summary-black-48x48tumblrIcon-FilledvineIc-OverlayAlertwhishlist