```pascal // Block Type: FC // Block Number: 1970 // Original Network Languages: STL, LAD FUNCTION "WritePeripheral" : Void { S7_Optimized_Access := 'TRUE' } VERSION : 0.1 VAR_INPUT Analog_Value : Real; MAX_Analog_Value : Real; MIN_Analog_Value : Real; MAX_Out : Int; MIN_Out : Int; END_VAR VAR_OUTPUT PAW : Word; END_VAR VAR_TEMP Range : Real; Scale : Real; Scale_Range : Real; Analog_Value_Used : Real; Buffer : Bool; END_VAR BEGIN // Network 1: (Original Language: LAD) // Check if Analog_Value is correct "Analog_Value_Used" := "Analog_Value"; IF "Analog_Value" > "MAX_Analog_Value" THEN "Analog_Value_Used" := "MAX_Analog_Value"; END_IF; IF "Analog_Value" < "MIN_Analog_Value" THEN "Analog_Value_Used" := "MIN_Analog_Value"; END_IF; "Buffer" := TRUE; // Network 2: (Original Language: STL) // --- BEGIN STL Network 2 --- L "Analog_Value_Used" L "MIN_Analog_Value" SUB_R T "Scale" L "MAX_Analog_Value" L "MIN_Analog_Value" SUB_R T "Range" L "Scale" L "Range" DIV_R T "Scale_Range" L "MAX_Out" L "MIN_Out" SUB_I ITD DTR L "Scale_Range" MUL_R RND L "MIN_Out" ADD_I T "PAW" // --- END STL Network 2 --- END_FUNCTION ```