A - 33
Appendices
NX-series Communications Interface Units User’s Manual (W540)
A-4 Programming Samples
A
A-4-2 Programming Sample 1: Restarting CIF Unit Ports
// If I/O data communications are possible for CIF Unit at program execution,
// restart port.
InitialPortRestartRequestTrigger_R_TRIG_instance(
E001_NX_Unit_I_O_Data_Active_Status_125[1],
InitialPortRestartRequestTrigger);
IF( InitialPortRestartRequestTrigger = TRUE ) THEN
//Set the CIF command code.
CIFCmdCode := WORD#16#0001;//0x0001:Restart port.
CmdStage:=INT#1;//Transition (to Clear Output SID)
END_IF;
CASE CmdStage OF
0://Idle
;
1: // Clear Output SID.
ExpectedOutputSIDResponse := 0;
N1_Ch1_Output_SID:=ExpectedOutputSIDResponse;
CmdStage := INT#2;//Transition (to Restart Port request)
2: // Request to restart the port.
IF (ExpectedOutputSIDResponse = N1_Ch1_Output_SID_Response) THEN
// Set Output Data Type.
N1_Ch1_Output_Data_Type:= (N1_Ch1_Output_Data_Type AND WORD#16#FF00 )
OR CIFCmdCode;
N1_Ch1_Send_Command_Flag:=TRUE;
// Set Output SID.
ExpectedOutputSIDResponse:=N1_Ch1_Output_SID + 1;
IF (ExpectedOutputSIDResponse=USINT#0) THEN
ExpectedOutputSIDResponse:=USINT#1; //If Output SID is 0, set 1.
END_IF;
N1_Ch1_Output_SID:=ExpectedOutputSIDResponse;
CmdStage := INT#3;//Transition (confirm completion of Restart Port request)
END_IF;
3: //Confirm completion of Restart Port request.
IF (ExpectedOutputSIDResponse = N1_Ch1_Output_SID_Response) THEN
//Clear Output Data Type.
N1_Ch1_Send_Command_Flag:=FALSE;
CmdStage := INT#4;//Transition (to confirmation of reception of Restart Port
response)
END_IF;
4: //Confirm reception of Restart Port response.
//Confirm update of Input SID.
IF (N1_Ch1_Input_SID_Response <> N1_Ch1_Input_SID) THEN
// Check for command response.
IF ( N1_Ch1_Receive_Command_Flag = TRUE ) THEN
//Check command response code.
IF (N1_Ch1_Input_Sub_Info=WORD#16#0000) THEN
//Clear Output SID after normal completion to Restart Port.
ExpectedOutputSIDResponse := 0;
N1_Ch1_Output_SID:=ExpectedOutputSIDResponse;
CmdStage := INT#5;//Transition (to confirmation of completion of clearing
Output SID)
ELSE
// Error end
ST Program