1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | FUNCTION_BLOCK Monarco_FB EXTENDS SPI VAR_INPUT //byUserLeds : BYTE := 0;// Userleds //byDOut : BYTE; // DO as Byte //wAOut1 : WORD; // AO1 //wAOut2 : WORD; // AO2 END_VAR VAR_OUTPUT //stHATinfo : stHATinfo; axDInValue : ARRAY [0..3] OF BOOL; // DI as array of BOOL //wAIn1 : WORD; // AI1 //wAIn2 : WORD; // AI2 VAR // _stControlByte : stControlByte; // _uiWatchDog : UINT; // _uiLastWatchDog : UINT; // _eComStatus : eMonarcoComStatus; // _stCounter1Config : stCounter1Config; // _stCounter2Config : stCounter2Config; // SPI communication buffers _abyIntRxBuf : ARRAY [0..(ParamList.MONARCO_STRUCT_SIZE-1)] OF BYTE; // General Info _xOperational : BOOL; _AfterReadInputs : UINT; _BeforeWriteOutputs : UINT; ////Inputs //stHwConfig : stHWConfig1; //stAOut : stAOut; //stDOut : stDOut; //udiPWM1freq : UDINT; //rDutyCycleDOut1 : REAL; //rDutyCycleDOut2 : REAL; //rDutyCycleDOut3 : REAL; //udiPWM2freq : UDINT; //rDutyCycleDOut4 : REAL; //_uiNumberOfDevices : INT; //_stRS485Mode : stRS485Mode; //_stHWConfig1 : stHWConfig1; //_stLastCounter1Cfg : stCounter1Config; //_stLastCounter2Cfg : stCounter2Config; //stPWM1 : stPWM1; //stPWM2 : stPWM2; SUPER^(); CASE _iState OF 0: IF SUPER^.init() THEN _iState := 1; END_IF 1: _iState := 10; END_CASE _xOperational := (_istate = 1) OR (_istate = 10); |