#ifndef _RYFILE_DEFINE_H_ #define _RYFILE_DEFINE_H_ #include "zjdtypes.h" #include #include #include #include typedef std::unordered_map datalen2mbaddrmap; typedef struct { short point; short pos; } struDataPos; typedef std::unordered_map datatypeposmap; typedef std::unordered_map datatypemap; typedef struct { int start; int length; } FIELDDES; typedef struct { int length; int address; } struDataLengthMBAddr; typedef struct { int length; int address; float coef; } struDataLengthADSAddr; struct memory { char *response; size_t size; }; typedef struct { int uid; //ftp参数信息 char m_user[64]; char m_password[64]; char m_remotePath[128]; char m_localPath[128]; //文件信息 int m_iv; LONG m_currentDirNo; //当前目录编号 LONG m_currentFileNo; //当前文件编号 LONG m_lastDirNo; //上一目录编号 LONG m_lastFileNo; //上一文件编号 LONG m_currentDirStartFileNo; //当前目录文件开始编号 LONG m_lastReadDirNo; //最后获取的目录编号 LONG m_lastReadFileNo; //最后获取的文件编号 LONG m_lastReadDirStartFileNo; //最后获取的目录文件开始编号 LONG m_curStartDirNo; //当前获取的目录编号 LONG m_curStartFileNo; //当前获取的文件编号 BOOLEAN m_bHaveUnReadFile; //存在未读的文件 BOOLEAN m_bFtpRun; } struTFPThreadParams; #pragma pack(1) typedef struct { QLONG localtime;// PLC本地时间 8 none 0.0001 毫秒 little endian 系统 WORD iGenSpeed;//发电机转速 2 200 0.1 转/分 40ms 控制系统 WORD iGenPower;//机组有功功率 2 201 0.1 千瓦 40ms 控制系统 WORD iWindSpeed;//风速 2 202 0.01 米/秒 40ms 气象 WORD iVibrationY;//机舱振动前后方向 2 203 0.001 米/秒^2 40ms 机舱 WORD iVibrationZ;//机舱振动左右方向 2 204 0.001 米/秒^2 40ms 机舱 WORD iTurbineOperationMode;//运行模式 2 205 1 需要解析 1s 控制系统 WORD iBPLevel;//刹车等级 2 206 1 需要解析 1s 控制系统 WORD iYPLevel;//偏航运行模式 2 207 1 需要解析 1s 控制系统 WORD iWindSpeed_1sec;//风速1秒均值 2 208 0.01 米/秒 1s 气象 WORD iGenSpeed_1sec;//发电机转速1秒均值 2 209 0.1 转/分 1s 控制系统 WORD iGenPower_1sec;//机组有功1秒均值 2 210 0.1 千瓦 1s 控制系统 WORD iGenToruqe;//发电机扭矩1秒均值 2 211 0.1 牛米 1s 控制系统 WORD iRotorSpeed;//风轮转速 2 212 0.1 转/分 1s 控制系统 WORD iTheoreticalPower;//理论有功功率 2 213 0.1 千瓦 1s 控制系统 WORD iReactivePower;//无功功率 2 214 0.1 千乏 1s 控制系统 WORD iActivePowerSetPointValue;//有功设定值 2 215 0.1 千瓦 1s 控制系统 WORD iReactivePowerSetPointValue;//无功设定值 2 216 0.1 千乏 1s 控制系统 WORD iSetValueGenSpeed;//发电机转速设定值 2 217 0.1 转/分 1s 控制系统 WORD iSetValuePitchAngle;//桨叶角度设定值 2 218 0.01 度 1s 控制系统 WORD iPitchAngle1RefValue;//桨叶1角度给定 2 219 0.01 度 1s 控制系统 WORD iPitchAngle2RefValue;//桨叶2角度给定 2 220 0.01 度 1s 控制系统 WORD iPitchAngle3RefValue;//桨叶3角度给定 2 221 0.01 度 1s 控制系统 WORD iPitchAngle1;//桨叶1角度 2 222 0.01 度 1s 变桨系统 WORD iPitchAngle2;//桨叶2角度 2 223 0.01 度 1s 变桨系统 WORD iPitchAngle3;//桨叶3角度 2 224 0.01 度 1s 变桨系统 WORD iVaneDirection;//机舱方向 2 225 0.1 度 1s 气象 WORD iWindDirection;//风向(与机舱夹角) 2 226 0.1 度 1s 气象 WORD StateWord01;//状态字01 2 227 1 需要解析 1s 控制系统 WORD StateWord02;//状态字02 2 228 1 需要解析 1s 控制系统 WORD StateWord03;//状态字03 2 229 1 需要解析 1s 控制系统 WORD StateWord04;//状态字04 2 230 1 需要解析 1s 控制系统 WORD StateWord05;//状态字05 2 231 1 需要解析 1s 控制系统 WORD StateWord06;//状态字06 2 232 1 需要解析 1s 控制系统 WORD StateWord07;//状态字07 2 233 1 需要解析 1s 控制系统 WORD StateWord08;//状态字08 2 234 1 需要解析 1s 控制系统 DWORD ActiveStatusCode01;//故障代码01 4 235 1 需要解析 1s 控制系统 DWORD ActiveStatusCode02;//故障代码02 4 237 1 需要解析 1s 控制系统 DWORD ActiveStatusCode03;//故障代码03 4 239 1 需要解析 1s 控制系统 DWORD ActiveStatusCode04;//故障代码04 4 241 1 需要解析 1s 控制系统 DWORD ActiveStatusCode05;//故障代码05 4 243 1 需要解析 1s 控制系统 DWORD ActiveStatusCode06;//故障代码06 4 245 1 需要解析 1s 控制系统 DWORD ActiveStatusCode07;//故障代码07 4 247 1 需要解析 1s 控制系统 DWORD ActiveStatusCode08;//故障代码08 4 249 1 需要解析 1s 控制系统 WORD iFrequency;//电网频率 2 251 0.01 赫兹 1s 电网 WORD iUL1_690V;//电网L1相电压 2 252 0.1 伏 1s 电网 WORD iUL2_690V;//电网L2相电压 2 253 0.1 伏 1s 电网 WORD iUL3_690V;//电网L3相电压 2 254 0.1 伏 1s 电网 WORD iIL1_690V;//电网L1相电流 2 255 0.1 安 1s 电网 WORD iIL2_690V;//电网L2相电流 2 256 0.1 安 1s 电网 WORD iIL3_690V;//电网L3相电流 2 257 0.1 安 1s 电网 WORD iBlade1MotorCurrent;//变桨电机1电流 2 258 0.1 安 1s 变桨系统 WORD iBlade2MotorCurrent;//变桨电机2电流 2 259 0.1 安 1s 变桨系统 WORD iBlade3MotorCurrent;//变桨电机3电流 2 260 0.1 安 1s 变桨系统 WORD iPitchAngleBk1;//备用桨叶角度1 2 261 0.01 度 1s 变桨系统 WORD iPitchAngleBk2;//备用桨叶角度2 2 262 0.01 度 1s 变桨系统 WORD iPitchAngleBk3;//备用桨叶角度3 2 263 0.01 度 1s 变桨系统 WORD iCosPhi;//并网点功率因数 2 264 0.001 . 1s 电网 WORD iGearPressA;//齿轮箱油压A 2 265 0.1 巴 1s 齿轮箱 WORD iGearPressB;//齿轮箱油压B 2 266 0.1 巴 1s 齿轮箱 WORD iHydrPress;//液压系统压力 2 267 0.1 巴 1s 液压系统 WORD iNacellePositionLtd;//机舱绝对方向 2 268 0.1 度 1s 机舱 WORD iCableTwistTotal;//总扭缆角度 2 269 0.1 度 1s 机舱 WORD iNacellePositionTotal;//机舱方向 2 270 0.1 度 1s 机舱 WORD iTempOutdoor_1sec;//环境温度 2 271 0.1 摄氏度 1s 环境 WORD iTempHub_1sec;//轮毂内温度 2 272 0.1 摄氏度 1s 轮毂 WORD iTempNacelle_1sec;//机舱内温度 2 273 0.1 摄氏度 1s 机舱 WORD iTempTowerBase_1sec;//塔基内温度 2 274 0.1 摄氏度 1s 塔基 WORD iTempCabinetNacelle_1sec;//机舱柜内温度 2 275 0.1 摄氏度 1s 机舱 WORD iTempCabinetTowerBase_1sec;//塔基柜内温度 2 276 0.1 摄氏度 1s 塔基 WORD iTempTransformer690_400V_1sec;//400伏变压器温度 2 277 0.1 摄氏度 1s 塔基 WORD iTempMV_1sec;//箱变温度 2 278 0.1 摄氏度 1s 箱变 WORD iBlade1TempMotor_1sec;//变桨电机1温度 2 279 0.1 摄氏度 1s 变桨系统 WORD iBlade2TempMotor_1sec;//变桨电机2温度 2 280 0.1 摄氏度 1s 变桨系统 WORD iBlade3TempMotor_1sec;//变桨电机3温度 2 281 0.1 摄氏度 1s 变桨系统 WORD iBlade1TempBattBox_1sec;//变桨电池柜1温度 2 282 0.1 摄氏度 1s 变桨系统 WORD iBlade2TempBattBox_1sec;//变桨电池柜2温度 2 283 0.1 摄氏度 1s 变桨系统 WORD iBlade3TempBattBox_1sec;//变桨电池柜3温度 2 284 0.1 摄氏度 1s 变桨系统 WORD iTempCntr_1sec;//变桨中控箱温度 2 285 0.1 摄氏度 1s 变桨系统 WORD iBlade1TempInvBox_1sec;//变桨逆变器1温度 2 286 0.1 摄氏度 1s 变桨系统 WORD iBlade2TempInvBox_1sec;//变桨逆变器2温度 2 287 0.1 摄氏度 1s 变桨系统 WORD iBlade3TempInvBox_1sec;//变桨逆变器3温度 2 288 0.1 摄氏度 1s 变桨系统 WORD iBlade1TempPMMHeatsink_1sec;//变桨PMM1散热器温度 2 289 0.1 摄氏度 1s 变桨系统 WORD iBlade2TempPMMHeatsink_1sec;//变桨PMM2散热器温度 2 290 0.1 摄氏度 1s 变桨系统 WORD iBlade3TempPMMHeatsink_1sec;//变桨PMM3散热器温度 2 291 0.1 摄氏度 1s 变桨系统 WORD iBlade1TempPMCHeatsink_1sec;//变桨PMC1散热器温度 2 292 0.1 摄氏度 1s 变桨系统 WORD iBlade2TempPMCHeatsink_1sec;//变桨PMC2散热器温度 2 293 0.1 摄氏度 1s 变桨系统 WORD iBlade3TempPMCHeatsink_1sec;//变桨PMC3散热器温度 2 294 0.1 摄氏度 1s 变桨系统 WORD iTempRotorBearA_1sec;//主轴承A温度 2 295 0.1 摄氏度 1s 传动链 WORD iTempRotorBearB_1sec;//主轴承B温度 2 296 0.1 摄氏度 1s 传动链 WORD iTemp1GearOil_1sec;//齿轮箱油温 2 297 0.1 摄氏度 1s 齿轮箱 WORD iTempGearBearDE_1sec;//齿轮箱驱动齿轴承温度 2 298 0.1 摄氏度 1s 齿轮箱 WORD iTempGearBearNDE_1sec;//齿轮箱非驱动侧轴承温度 2 299 0.1 摄氏度 1s 发电机 WORD iTempGenBearDE_1sec;//发电机驱动侧轴承温度 2 300 0.1 摄氏度 1s 发电机 WORD iTempGenBearNDE_1sec;//发电机非驱动侧轴承温度 2 301 0.1 摄氏度 1s 发电机 WORD iTempGenStatorU_1sec;//发电机绕组U温度 2 302 0.1 摄氏度 1s 发电机 WORD iTempGenStatorV_1sec;//发电机绕组V温度 2 303 0.1 摄氏度 1s 发电机 WORD iTempGenStatorW_1sec;//发电机绕组W温度 2 304 0.1 摄氏度 1s 发电机 WORD iTempGenCoolingAir_1sec;//发电机冷却风温度 2 305 0.1 摄氏度 1s 发电机 WORD iAvailabillityToday;//当天可利用率 2 306 0.001 . 1s 控制系统 WORD iAvailabillityTotal;//总可利用率 2 307 0.001 . 1s 控制系统 DWORD iKWhThisDay;//当天发电量 4 308 千瓦时 1s 控制系统 DWORD iKWhOverall;//总发电量 4 310 千瓦时 1s 控制系统 DWORD iOperationHoursDay;//当天发电小时数 4 312 小时 1s 控制系统 DWORD iOperationHoursOverall;//总发电小时数 4 314 小时 1s 控制系统 DWORD iLostKWhThisDay;//当天损失发电量 4 316 千瓦时 1s 控制系统 DWORD iLostKWhOverall;//总损失发电量 4 318 千瓦时 1s 控制系统 WORD SCW001;//故障代码字01 2 320 1 1s 控制系统 WORD SCW002;//故障代码字02 2 321 1 1s 控制系统 WORD SCW003;//故障代码字03 2 322 1 1s 控制系统 WORD SCW004;//故障代码字04 2 323 1 1s 控制系统 WORD SCW005;//故障代码字05 2 324 1 1s 控制系统 WORD SCW006;//故障代码字06 2 325 1 1s 控制系统 WORD SCW007;//故障代码字07 2 326 1 1s 控制系统 WORD SCW008;//故障代码字08 2 327 1 1s 控制系统 WORD SCW009;//故障代码字09 2 328 1 1s 控制系统 WORD SCW010;//故障代码字10 2 329 1 1s 控制系统 WORD SCW011;//故障代码字11 2 330 1 1s 控制系统 WORD SCW012;//故障代码字12 2 331 1 1s 控制系统 WORD SCW013;//故障代码字13 2 332 1 1s 控制系统 WORD SCW014;//故障代码字14 2 333 1 1s 控制系统 WORD SCW015;//故障代码字15 2 334 1 1s 控制系统 WORD SCW016;//故障代码字16 2 335 1 1s 控制系统 WORD SCW017;//故障代码字17 2 336 1 1s 控制系统 WORD SCW018;//故障代码字18 2 337 1 1s 控制系统 WORD SCW019;//故障代码字19 2 338 1 1s 控制系统 WORD SCW020;//故障代码字20 2 339 1 1s 控制系统 WORD SCW021;//故障代码字21 2 340 1 1s 控制系统 WORD SCW022;//故障代码字22 2 341 1 1s 控制系统 WORD SCW023;//故障代码字23 2 342 1 1s 控制系统 WORD SCW024;//故障代码字24 2 343 1 1s 控制系统 WORD SCW025;//故障代码字25 2 344 1 1s 控制系统 WORD SCW026;//故障代码字26 2 345 1 1s 控制系统 WORD SCW027;//故障代码字27 2 346 1 1s 控制系统 WORD SCW028;//故障代码字28 2 347 1 1s 控制系统 WORD SCW029;//故障代码字29 2 348 1 1s 控制系统 WORD SCW030;//故障代码字30 2 349 1 1s 控制系统 WORD SCW031;//故障代码字31 2 350 1 1s 控制系统 WORD SCW032;//故障代码字32 2 351 1 1s 控制系统 WORD SCW033;//故障代码字33 2 352 1 1s 控制系统 WORD SCW034;//故障代码字34 2 353 1 1s 控制系统 WORD SCW035;//故障代码字35 2 354 1 1s 控制系统 WORD SCW036;//故障代码字36 2 355 1 1s 控制系统 WORD SCW037;//故障代码字37 2 356 1 1s 控制系统 WORD SCW038;//故障代码字38 2 357 1 1s 控制系统 WORD SCW039;//故障代码字39 2 358 1 1s 控制系统 WORD SCW040;//故障代码字40 2 359 1 1s 控制系统 WORD SCW041;//故障代码字41 2 360 1 1s 控制系统 WORD SCW042;//故障代码字42 2 361 1 1s 控制系统 WORD SCW043;//故障代码字43 2 362 1 1s 控制系统 WORD SCW044;//故障代码字44 2 363 1 1s 控制系统 WORD SCW045;//故障代码字45 2 364 1 1s 控制系统 WORD SCW046;//故障代码字46 2 365 1 1s 控制系统 WORD SCW047;//故障代码字47 2 366 1 1s 控制系统 WORD SCW048;//故障代码字48 2 367 1 1s 控制系统 WORD SCW049;//故障代码字49 2 368 1 1s 控制系统 WORD SCW050;//故障代码字50 2 369 1 1s 控制系统 WORD iGenSpeed_10sec;//发电机转速10秒均值 2 370 0.1 转/分 1s 控制系统 WORD iGenSpeed_30sec;//发电机转速30秒均值 2 371 0.1 转/分 1s 控制系统 WORD iGenPower_10sec;//机组有功10秒均值 2 372 0.1 千瓦 1s 控制系统 WORD iGenPower_30sec;//机组有功30秒均值 2 373 0.1 千瓦 1s 控制系统 WORD iWindSpeed_10sec;//风速10秒均值 2 374 0.01 米/秒 1s 气象 WORD iWindSpeed_30sec;//风速30秒均值 2 375 0.01 米/秒 1s 气象 WORD iWindSpeed_10min;//风速10分钟均值 2 376 0.01 米/秒 1s 气象 WORD iAvailablePower;//可用有功功率 2 377 0.1 千瓦 1s 控制系统 DWORD FirstTriggeredCode;//首触故障代码 4 378 1 1s 控制系统 DWORD FaultInformation;//故障信息 4 380 1 1s 控制系统 DWORD WecRunCondition;//机组运行状态机状态 4 382 1 1s 控制系统 WORD iWindSpeedIEC;//标准化风速 2 384 0.01 米/秒 1s 控制系统 WORD iWindSpeedIEC_30sec;//标准化风速30秒均值 2 385 0.01 米/秒 1s 控制系统 WORD iWindSpeedIEC_10min;//标准化风速10分钟均值 2 386 0.01 米/秒 1s 控制系统 WORD iYawPress;//偏航系统压力 2 387 0.1 巴 1s 液压系统 WORD iStandardAirDensity;//标准空气密度 2 388 0.001 千克/米^3 1s 气象 WORD iAirDensity;//实时空气密度 2 389 0.001 1s 气象 WORD iVibrationYFiltered;//机舱振动前后方向滤波值 2 390 0.001 米/秒^2 1s 机舱 WORD iVibrationZFiltered;//机舱振动左右方向滤波值 2 391 0.001 米/秒^2 1s 机舱 WORD iTempGearWaterCool_1sec;//齿轮箱水冷温度 2 392 0.1 摄氏度 1s 齿轮箱 WORD PowerLimitSource;//限功率原因 2 393 1 1s 控制系统 WORD iTempOutdoor_10min;//环境温度十分钟均值 2 394 0.1 摄氏度 1s 环境 } struRYDeviceData; #pragma pack() int calcFields(FIELDDES *fields); size_t write_callback(void *ptr, size_t size, size_t nmemb, struct memory *mem); CURLcode ftpget(const char* remote, const char* user, const char* pwd, const long timeout = 3, struct memory* chunk = NULL); float GetUnitYCRealFromValue(int uid, int order, LONG value); BOOLEAN GetUnitYCIsFloat(int uid, int order); int GetUnitYXCount(int uid); int GetUnitYCCount(int uid); BOOLEAN GetUnitYCType(int uid, int order); #endif //_RYFILE_DEFINE_H_