#pragma once #include //according to ChaGanHu wind park MY1.5se-89 with Beckhoff controller #pragma pack(1) struct CGHAdsOverviewData{ uint16_t iTurbineOperationMode; uint16_t iBPLevel; uint16_t iYPLevel; uint8_t bYawCCWStart; uint8_t bYawCWStart; uint8_t bTowerDoorOpen; float fGenPower; float fGenPower1s; float fGenPower30s; float fGenSpeed; float fGenSpeed1s; float fGenSpeed30s; float fPitchAngle; float fPitchAngle1s; float fPitchAngle30s; float fWindSpeed; float fWindSpeed1s; float fWindSpeed30s; float fPowerFactor; float fReactivePower; float fGridFrequency; float fGridVoltageL1; float fGridVoltageL2; float fGridVoltageL3; float fGridCurrentL1; float fGridCurrentL2; float fGridCurrentL3; float fActivePowerSetPoint; float fGenSpeedSetPoint; float fPitchAngleSetPoint; float fNacellePositionLtd; float fCableTwistAngle; float fNacellePositionTotal; float fVaneDirection1s; float fAvailabilityToday; float fAvailabilityTotal; float fPowerFactorSetPoint; int32_t fEnergyProducedTotal; int32_t fEnergyProducedToday; uint32_t iOperationHoursTotal; uint32_t iOperationHoursToday; uint16_t SCW001; uint16_t SCW002; uint16_t SCW003; uint16_t SCW004; uint16_t SCW005; uint16_t SCW006; uint16_t SCW007; uint16_t SCW008; uint16_t SCW009; uint16_t SCW010; uint16_t SCW011; uint16_t SCW012; uint16_t SCW013; uint16_t SCW014; uint16_t SCW015; uint16_t SCW016; uint16_t SCW017; uint16_t SCW018; uint16_t SCW019; uint16_t SCW020; uint16_t SCW021; uint16_t SCW022; uint16_t SCW023; uint16_t SCW024; uint16_t SCW025; uint16_t SCW026; uint16_t SCW027; uint16_t SCW028; uint16_t SCW029; uint16_t SCW030; uint16_t SCW031; uint16_t SCW032; uint16_t SCW033; uint16_t SCW034; uint16_t SCW035; uint16_t SCW036; uint16_t SCW037; uint16_t SCW038; uint16_t SCW039; uint16_t SCW040; uint16_t SCW041; uint32_t dwFaultInformation; uint32_t dwWecRunCondition; uint32_t dwTriggeredSCAddress; float fWindSpeedIec; float fWindSpeedIec30s; float fWindSpeedIec10min; float fRotorSpeed; float fNacelleVibrationY; float fNacelleVibrationZ; float fNacelleVibrationYFiltered; float fNacelleVibrationZFiltered; float fHydraulicPressure; float fYawPressure; float fWindSpeed10min; float fPitch1Angle; float fPitch2Angle; float fPitch3Angle; float fPowerSetPointFlag; float fStandardAirDensity; float fAirDensity; float fLocalWindSpeed; float fDynamicPower; uint16_t iMVTransSign1; uint16_t iMVTransSign2; uint16_t iMVTransSign3; }*pCGHAdsOverviewData; struct CGHAdsTempData{ float fEnvTemp1s; float fEnvTemp30s; float fEnvTemp10min; float fHubTemp1s; float fHubTemp30s; float fHubTemp10min; float fNacelleTemp1s; float fNacelleTemp30s; float fNacelleTemp10min; float fTowerBaseTemp1s; float fTowerBaseTemp30s; float fTowerBaseTemp10min; float fNacelleCabinetTemp1s; float fNacelleCabinetTemp30s; float fNacelleCabinetTemp10min; float fTowerBaseCabinetTemp1s; float fTowerBaseCabinetTemp30s; float fTowerBaseCabinetTemp10min; float f400vTransTemp1s; float f400vTransTemp30s; float f400vTransTemp10min; float fPitchTransTemp1s; float fPitchTransTemp30s; float fPitchTransTemp10min; float fPitch1MotorTemp1s; float fPitch1MotorTemp30s; float fPitch1MotorTemp10min; float fPitch2MotorTemp1s; float fPitch2MotorTemp30s; float fPitch2MotorTemp10min; float fPitch3MotorTemp1s; float fPitch3MotorTemp30s; float fPitch3MotorTemp10min; float fRotorBearATemp1s; float fRotorBearATemp30s; float fRotorBearATemp10min; float fRotorBearBTemp1s; float fRotorBearBTemp30s; float fRotorBearBTemp10min; float fGearOilTemp1s; float fGearOilTemp30s; float fGearOilTemp10min; float fGearDEBearTemp1s; float fGearDEBearTemp30s; float fGearDEBearTemp10min; float fGearNDEBearTemp1s; float fGearNDEBearTemp30s; float fGearNDEBearTemp10min; float fGearCoolWaterTemp1s; float fGearCoolWaterTemp30s; float fGearCoolWaterTemp10min; float fGenDEBearTemp1s; float fGenDEBearTemp30s; float fGenDEBearTemp10min; float fGenNDEBearTemp1s; float fGenNDEBearTemp30s; float fGenNDEBearTemp10min; float fGenWindUTemp1s; float fGenWindUTemp30s; float fGenWindUTemp10min; float fGenWindVTemp1s; float fGenWindVTemp30s; float fGenWindVTemp10min; float fGenWindWTemp1s; float fGenWindWTemp30s; float fGenWindWTemp10min; float fGenCoolAirTemp1s; float fGenCoolAirTemp30s; float fGenCoolAirTemp10min; float fResv1Temp1s; float fResv1Temp30s; float fResv1Temp10min; float fResv2Temp1s; float fResv2Temp30s; float fResv2Temp10min; float fResv3Temp1s; float fResv3Temp30s; float fResv3Temp10min; float fResv4Temp1s; float fResv4Temp30s; float fResv4Temp10min; float fResv5Temp1s; float fResv5Temp30s; float fResv5Temp10min; }*pCGHAdsTempData; struct CGHAdsTurbineCommand{ uint16_t oControlWord; float fSetPowerFactor; uint16_t oSetYear; uint16_t oSetMonth; uint16_t oSetDayOfWeek; uint16_t oSetDay; uint16_t oSetHour; uint16_t oSetMinute; uint16_t oSetSecond; uint16_t oSetMillis; float fSetValuePoweratMax; float fSetLockDirAtTyhoonMode; uint8_t bSetTyhoonModeActive; uint16_t oControlWord1; float fSetReactivePower; float fSetConverterVoltage; }*pCGHAdsTurbineCommand; const uint16_t AdsOverviewDataMemAddr = 1000; const uint16_t AdsTempDataMemAddr = 2; #pragma pack()