10/4/2013 8:51 AM | |
Joined: 4/24/2006 Last visit: 4/26/2024 Posts: 8616 Rating: (1147) |
Hello Roby, Did you have a look at the function FC105 "Scale"? Best regards, Wizard |
10/4/2013 11:33 AM | |
Joined: 4/22/2010 Last visit: 2/15/2024 Posts: 5697 Rating: (711)
|
Hello, Please try this block(import and compile the source): [code]FUNCTION FC 6 : VOID TITLE = ANALOG reading // { S7_language := '9(1) English (United States) 04.10.2013 11:39:50' } AUTHOR : MC FAMILY : S7 NAME : READ_PIW VERSION : 0.1 VAR_INPUT ANALOG_IN : WORD ; MIN_HW : INT ; MAX_HW : INT ; reset_alarm : BOOL ; END_VAR VAR_OUTPUT DATA_WORD_SCALED : WORD ; //Waarde MIN to MAX END_VAR VAR_IN_OUT Measurementerror_SR : BOOL ; //Set - Reset fout Measurement_error : BOOL ; END_VAR VAR_TEMP RANGEFACTOR : REAL ; tm***7 : BOOL ; tmpIsother : BOOL ; END_VAR BEGIN NETWORK TITLE = L #MAX_HW; L 27648; //max value S7 ==I ; = #tm***7; AN #tm***7; = #tmpIsother; NETWORK TITLE =Calculate Range // factorfor scaling L #MAX_HW; L #MIN_HW; -I ; ITD ; DTR ; L 1.000000e+003; /R ; T #RANGEFACTOR; NETWORK TITLE =Scaling and error // //DATAWOORD_UIT 0 - 1000 A #tm***7; JCN G_S7; //geen S7 O( ; L W#16#7FFF; //overflow( >118%) L #ANALOG_IN; ==I ; ) ; O( ; L W#16#8000; //underflow ) L #ANALOG_IN; ==I ; ) ; = #Measurement_error; A #reset_alarm; R #Measurementerror_SR; A #Measurement_error; S #Measurementerror_SR; A #Measurement_error; JCN SKP1; L 0; SKP1: NOP 0; ITD ; DTR ; L #RANGEFACTOR; /R ; RND ; T #DATA_WORD_SCALED; G_S7: NOP 0; NETWORK TITLE =Scaling and error // // A #tmpIsother; JCN Over; //niet overig L #ANALOG_IN; L #MIN_HW; -I ; ITD ; DTR ; L #RANGEFACTOR; /R ; RND ; T #DATA_WORD_SCALED; // ) Over: NOP 0; NETWORK TITLE = L #DATA_WORD_SCALED; L 0; <I ; JCN sk05; L 0; T #DATA_WORD_SCALED; sk05: NOP 0; L #DATA_WORD_SCALED; L 1000; >I ; JCN sk06; L 1000; T #DATA_WORD_SCALED; sk06: NOP 0; NETWORK TITLE = BE ; END_FUNCTION [/code] This block scales any input to a 0-1000 value Attached example block call. Regards, Marcjan AttachmentOB1_scale.pdf (69 Downloads) |
Last edited by: Marcjan at: 10/4/2013 12:04 PMChanged error reset bit Last edited by: Marcjan at: 10/4/2013 11:39 AMLast edited by: Marcjan at: 10/4/2013 11:37 AMProblem solved? |
|
This contribution was helpful to3 thankful Users |
Follow us on