update
This commit is contained in:
parent
94b6344e3e
commit
1089ebb5c6
@ -45,14 +45,15 @@ else ()
|
||||
message ("else:${CMAKE_C_FLAGS_RELEASE}")
|
||||
endif()
|
||||
|
||||
option (HAVE_FTP_PROCESS "use ry ftp" ON)
|
||||
if (HAVE_FTP_PROCESS)
|
||||
add_definitions(-DHAVE_FTP_PROCESS)
|
||||
set (APP_LIBS ${APP_LIBS} curl)
|
||||
endif ()
|
||||
# option (HAVE_FTP_PROCESS "use ry ftp" ON)
|
||||
# if (HAVE_FTP_PROCESS)
|
||||
# add_definitions(-DHAVE_FTP_PROCESS)
|
||||
# set (APP_LIBS ${APP_LIBS} curl)
|
||||
# endif ()
|
||||
|
||||
find_package(miniocpp REQUIRED)
|
||||
target_link_libraries(application PRIVATE miniocpp::miniocpp)
|
||||
set (APP_LIBS ${APP_LIBS} miniocpp::miniocpp)
|
||||
# target_link_libraries(application PRIVATE miniocpp::miniocpp)
|
||||
|
||||
include_directories (
|
||||
inc
|
||||
@ -80,8 +81,10 @@ set (APP_SRCS
|
||||
hostiec104/host_iec104.cpp
|
||||
hostmodbusrtu/host_modbus_rtu.cpp
|
||||
hostmodbustcp/host_modbus_tcp.cpp
|
||||
hostmodbustcpbf/host_modbus_tcp_bf.cpp
|
||||
rtustatusproc/rtustatus.cpp
|
||||
subiec104/sub_iec104.cpp
|
||||
submodbustcp/sub_modbus_tcp.cpp
|
||||
zjd3100proc/zjd3100pro.cpp
|
||||
minio/ftp2minio.cpp
|
||||
)
|
||||
@ -220,12 +223,9 @@ endif ()
|
||||
include_directories ("${CMAKE_CURRENT_BINARY_DIR}")
|
||||
link_directories (${LINK_DIR})
|
||||
|
||||
if (UNIX)
|
||||
set (APP_LIBS ${APP_LIBS} pthread)
|
||||
set (APP_LIBS ${APP_LIBS} dl)
|
||||
set (APP_LIBS ${APP_LIBS} rt)
|
||||
#set (APP_LIBS ${APP_LIBS} websockets)
|
||||
endif()
|
||||
set (APP_LIBS ${APP_LIBS} pthread)
|
||||
set (APP_LIBS ${APP_LIBS} dl)
|
||||
set (APP_LIBS ${APP_LIBS} rt)
|
||||
|
||||
#add_link_options (-static)
|
||||
add_executable (application ${APP_SRCS})
|
||||
|
@ -3,10 +3,11 @@
|
||||
|
||||
"configurePresets": [
|
||||
{
|
||||
"name": "debug",
|
||||
"name": "default",
|
||||
"binaryDir": "${sourceDir}/build",
|
||||
"cacheVariables": {
|
||||
"CMAKE_TOOLCHAIN_FILE": "$env{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake"
|
||||
"CMAKE_TOOLCHAIN_FILE": "$env{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake",
|
||||
"CMAKE_BUILD_TYPE": "Release"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
@ -7,9 +7,8 @@
|
||||
#include "../rtustatusproc/rtustatus.h"
|
||||
#include "../zjd3100proc/zjd3100pro.h"
|
||||
#include "../minio/ftp2minio.h"
|
||||
//#include "../bfftpfile2issmqtt/bfftpfile2issmqtt.h"
|
||||
#ifdef USE_WEBSOCKET
|
||||
#endif
|
||||
#include "../hostmodbustcpbf/host_modbus_tcp_bf.h"
|
||||
|
||||
|
||||
BYTE CChangeMaster::m_tcitype;
|
||||
|
||||
@ -355,11 +354,6 @@ void CChangeMaster::StartUp(void)
|
||||
vLog(LOG_INFO, "协议<%d>创建为: iec104从协议.\n", i);
|
||||
procs[i] = new CSubIEC104Process();
|
||||
}
|
||||
else if (PROTOCOL_FTP2MINIO == config.processes[i].proto)
|
||||
{
|
||||
vLog(LOG_INFO, "协议<%d>创建为: FTP读取转MINIO存储协议.\n", i);
|
||||
procs[i] = new CFtp2MinioProcess();
|
||||
}
|
||||
else if (PROTOCOL_LOCAL_DEBUG == config.processes[i].proto)
|
||||
{//Local debug
|
||||
vLog(LOG_INFO, "协议<%d>创建为: 本地调试协议.\n", i);
|
||||
@ -370,6 +364,21 @@ void CChangeMaster::StartUp(void)
|
||||
vLog(LOG_INFO, "协议<%d>创建为: 网关状态协议.\n", i);
|
||||
procs[i] = new CRTUStatusProcess();
|
||||
}
|
||||
else if (PROTOCOL_FTP2MINIO == config.processes[i].proto)
|
||||
{
|
||||
vLog(LOG_INFO, "协议<%d>创建为: FTP读取转MINIO存储协议.\n", i);
|
||||
procs[i] = new CFtp2MinioProcess();
|
||||
}
|
||||
else if (PROTOCOL_HOST_BF_MODBUSTCP == config.processes[i].proto)
|
||||
{
|
||||
vLog(LOG_INFO, "协议<%d>创建为: 倍福modbus tcp主协议.\n", i);
|
||||
procs[i] = new CHostModbusTcpBFProcess();
|
||||
}
|
||||
else if (PROTOCOL_HOST_BF_ADS == config.processes[i].proto)
|
||||
{
|
||||
vLog(LOG_INFO, "协议<%d>创建为: 倍福ADS采集协议.\n", i);
|
||||
//procs[i] = new CHostModbusTcpProcess();
|
||||
}
|
||||
else
|
||||
{
|
||||
vLog(LOG_ERROR, "(%s,%d)系统不支持该协议或该协议未知.\n", config.processes[i].name, config.processes[i].proto);
|
||||
|
@ -221,7 +221,7 @@ int main(int argc, char** argv)
|
||||
}
|
||||
|
||||
//此处增加一条协议配置
|
||||
#if 1
|
||||
#if 0
|
||||
int i;
|
||||
for (i = 0; i < PROCESSES_NUM; i++)
|
||||
{
|
||||
@ -229,6 +229,7 @@ int main(int argc, char** argv)
|
||||
}
|
||||
memcpy(&config.processes[i], &config.processes[0], sizeof(struProcess));
|
||||
config.processes[i].proto = PROTOCOL_FTP2MINIO;
|
||||
snprintf(config.processes[i].option.ftp2minio.ftp.user, sizeof(config.processes[i].option.ftp2minio.ftp.user), "%s", "administrator");
|
||||
#endif
|
||||
unsigned int m_runCount = 0;
|
||||
unsigned int count = 0;
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -4,172 +4,6 @@
|
||||
#include "netproc.h"
|
||||
#include "modbus_def.h"
|
||||
|
||||
#include <dirent.h>
|
||||
#include <nopoll.h>
|
||||
#include <nopoll_decl.h>
|
||||
|
||||
#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_1sec;// 发电机扭矩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 iCosPhiSetValue;// 功率因数设定值 2 216 0.001 . 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 控制系统 代表目前已经触发的故障代码类似:02(HH)04(HL)005(L)
|
||||
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;// 当天发电量 2 308 千瓦时 1s 控制系统
|
||||
DWORD iKWhOverall;// 总发电量 2 310 千瓦时 1s 控制系统
|
||||
WORD iOperationHoursDay;// 当天发电小时数 2 312 小时 1s 控制系统
|
||||
DWORD iOperationHoursOverall;// 总发电小时数 2 313 小时 1s 控制系统
|
||||
WORD iLostKWhThisDay;// 当天损失发电量 2 315 千瓦时 1s 控制系统
|
||||
DWORD iLostKWhOverall;// 总损失发电量 2 316 千瓦时 1s 控制系统
|
||||
DWORD FirstTriggeredCode;// 首触故障代码高 4 318 1 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 iGenSpeed_10sec;// 发电机转速10秒均值 2 362
|
||||
WORD iGenSpeed_30sec;// 发电机转速30秒均值 2 363
|
||||
WORD iGenPower_10sec;// 机组有功10秒均值 2 364
|
||||
WORD iGenPower_30sec;// 机组有功30秒均值 2 365
|
||||
WORD iWindSpeed_10sec;// 风速10秒均值 2 366
|
||||
WORD iWindSpeed_30sec;// 风速30秒均值 2 367
|
||||
WORD iAvailablePower;// 可用有功功率 2 368
|
||||
} struRYDeviceData;
|
||||
#pragma pack()
|
||||
|
||||
class CHostModbusTcpProcessItem : public CNetProcessItem
|
||||
{
|
||||
public:
|
||||
@ -217,48 +51,6 @@ private:
|
||||
void calc2(void);
|
||||
void sort1(STRUCT_PARAM*, int); //功能码排序
|
||||
void sort2(STRUCT_PARAM*, int); //寄存地址排序
|
||||
|
||||
struRYModbusOption m_nOptions;
|
||||
//增加websocket连接
|
||||
pthread_t m_pid;
|
||||
short m_uid;
|
||||
|
||||
public:
|
||||
BOOLEAN m_bHaveFTP; //存在FTP协议
|
||||
|
||||
//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;
|
||||
|
||||
|
||||
int _mkdir(const char* pathName) {
|
||||
if (access(pathName, F_OK) == 0) return 0;
|
||||
// 创建目录
|
||||
if (mkdir(pathName, 0777) == -1) {
|
||||
vLog(LOG_ERROR, "创建文件夹 %s失败<%d,%s>\r\n", pathName, errno, strerror(errno));
|
||||
return -1;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
public:
|
||||
CHostModbusTcpProcess();
|
||||
virtual ~CHostModbusTcpProcess();
|
||||
@ -278,9 +70,6 @@ public:
|
||||
|
||||
BOOLEAN OnReceiveData(CHostModbusTcpProcessItem *pItem, BYTE* pData, int count);
|
||||
int OnPackageReceived(BYTE* pBuf, int count, int ord /* = -1 */);
|
||||
|
||||
virtual BOOLEAN OnReceiveIDData(CHostModbusTcpProcessItem *pItem, BYTE* pData, int count);
|
||||
|
||||
virtual BOOLEAN OnReceiveYXData(CHostModbusTcpProcessItem *pItem, BYTE* pData, int count);
|
||||
virtual BOOLEAN OnReceiveYCData(CHostModbusTcpProcessItem *pItem, BYTE* pData, int count);
|
||||
virtual BOOLEAN OnReceiveYMData(CHostModbusTcpProcessItem *pItem, BYTE* pData, int count);
|
||||
|
2662
das-dn/hostmodbustcpbf/host_modbus_tcp_bf.cpp
Normal file
2662
das-dn/hostmodbustcpbf/host_modbus_tcp_bf.cpp
Normal file
File diff suppressed because it is too large
Load Diff
289
das-dn/hostmodbustcpbf/host_modbus_tcp_bf.h
Normal file
289
das-dn/hostmodbustcpbf/host_modbus_tcp_bf.h
Normal file
@ -0,0 +1,289 @@
|
||||
#ifndef _ZJD_HOST_MODBUS_TCP_BF_PROCESS_H_
|
||||
#define _ZJD_HOST_MODBUS_TCP_BF_PROCESS_H_
|
||||
|
||||
#include "netproc.h"
|
||||
#include "modbus_def.h"
|
||||
|
||||
#include <dirent.h>
|
||||
#include <nopoll.h>
|
||||
#include <nopoll_decl.h>
|
||||
|
||||
#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_1sec;// 发电机扭矩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 iCosPhiSetValue;// 功率因数设定值 2 216 0.001 . 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 控制系统 代表目前已经触发的故障代码类似:02(HH)04(HL)005(L)
|
||||
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;// 当天发电量 2 308 千瓦时 1s 控制系统
|
||||
DWORD iKWhOverall;// 总发电量 2 310 千瓦时 1s 控制系统
|
||||
WORD iOperationHoursDay;// 当天发电小时数 2 312 小时 1s 控制系统
|
||||
DWORD iOperationHoursOverall;// 总发电小时数 2 313 小时 1s 控制系统
|
||||
WORD iLostKWhThisDay;// 当天损失发电量 2 315 千瓦时 1s 控制系统
|
||||
DWORD iLostKWhOverall;// 总损失发电量 2 316 千瓦时 1s 控制系统
|
||||
DWORD FirstTriggeredCode;// 首触故障代码高 4 318 1 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 iGenSpeed_10sec;// 发电机转速10秒均值 2 362
|
||||
WORD iGenSpeed_30sec;// 发电机转速30秒均值 2 363
|
||||
WORD iGenPower_10sec;// 机组有功10秒均值 2 364
|
||||
WORD iGenPower_30sec;// 机组有功30秒均值 2 365
|
||||
WORD iWindSpeed_10sec;// 风速10秒均值 2 366
|
||||
WORD iWindSpeed_30sec;// 风速30秒均值 2 367
|
||||
WORD iAvailablePower;// 可用有功功率 2 368
|
||||
} struRYDeviceData;
|
||||
#pragma pack()
|
||||
|
||||
class CHostModbusTcpBFProcessItem : public CNetProcessItem
|
||||
{
|
||||
public:
|
||||
BYTE m_addr;
|
||||
WORD m_nNum;
|
||||
DWORD m_nFramePoll;
|
||||
private:
|
||||
int m_nCurFrame;
|
||||
struModbusExtFrame m_nModbusFrames[MODBUS_RTU_AUTOMATIC_FRAME_MAX];
|
||||
public:
|
||||
CHostModbusTcpBFProcessItem();
|
||||
virtual ~CHostModbusTcpBFProcessItem();
|
||||
|
||||
DWORD apdu_t0_begin;
|
||||
void Attach(int uid, int sock, DWORD peer_addr, WORD peer_port);
|
||||
void Release(void);
|
||||
|
||||
struModbusExtFrame* GetNextFrame(void);
|
||||
void AddFrames(struModbusExtFrame*, struModbusExtFrame*, struModbusExtFrame*);
|
||||
};
|
||||
|
||||
class CHostModbusTcpBFProcess : public CNetProcess
|
||||
{
|
||||
public:
|
||||
BYTE m_nFrameType;
|
||||
DWORD m_nCount; //loops passed
|
||||
DWORD m_nFrameCount;
|
||||
|
||||
WORD m_nCurBeginReg;
|
||||
WORD m_nCurRegCount;
|
||||
BYTE m_nCurFuncCode;
|
||||
BOOLEAN m_nNeedSend;
|
||||
DWORD m_nCurFrame;
|
||||
DWORD m_nSendPoint; //send out loop
|
||||
short m_nTimeout;
|
||||
|
||||
int m_nYKOrder;
|
||||
BYTE m_bYKValue;
|
||||
BYTE m_nYKState;
|
||||
|
||||
int m_nYTOrder;
|
||||
DWORD m_dwYTValue;
|
||||
BYTE m_nYTState;
|
||||
private:
|
||||
void calc2(void);
|
||||
void sort1(STRUCT_PARAM*, int); //功能码排序
|
||||
void sort2(STRUCT_PARAM*, int); //寄存地址排序
|
||||
|
||||
struRYModbusOption m_nOptions;
|
||||
//增加websocket连接
|
||||
pthread_t m_pid;
|
||||
short m_uid;
|
||||
|
||||
public:
|
||||
BOOLEAN m_bHaveFTP; //存在FTP协议
|
||||
|
||||
//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;
|
||||
|
||||
|
||||
int _mkdir(const char* pathName) {
|
||||
if (access(pathName, F_OK) == 0) return 0;
|
||||
// 创建目录
|
||||
if (mkdir(pathName, 0777) == -1) {
|
||||
vLog(LOG_ERROR, "创建文件夹 %s失败<%d,%s>\r\n", pathName, errno, strerror(errno));
|
||||
return -1;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
public:
|
||||
CHostModbusTcpBFProcess();
|
||||
virtual ~CHostModbusTcpBFProcess();
|
||||
|
||||
CNetProcessItem *CreateItem(int ord);
|
||||
void DestroyItem(int ord, BOOLEAN bDeleted = FALSE);
|
||||
|
||||
virtual BOOLEAN OnPreCreate(int id);
|
||||
virtual BOOLEAN Run(void);
|
||||
virtual BOOLEAN OnTimer(void);
|
||||
|
||||
virtual BOOLEAN GetReadDataFrame(CHostModbusTcpBFProcessItem *pItem, BYTE* pData, int& count);
|
||||
|
||||
virtual BOOLEAN GetYKFrame(CHostModbusTcpBFProcessItem *pItem, BYTE* pBuf, int& count, DWORD& frame, BYTE& FuncCode);
|
||||
virtual BOOLEAN GetYTFrame(CHostModbusTcpBFProcessItem *pItem, BYTE* pBuf, int& count, DWORD& frame, BYTE& FuncCode);
|
||||
virtual BOOLEAN GetSetTimeFrame(CHostModbusTcpBFProcessItem *pItem, BYTE* pData, int& count);
|
||||
|
||||
BOOLEAN OnReceiveData(CHostModbusTcpBFProcessItem *pItem, BYTE* pData, int count);
|
||||
int OnPackageReceived(BYTE* pBuf, int count, int ord /* = -1 */);
|
||||
|
||||
virtual BOOLEAN OnReceiveIDData(CHostModbusTcpBFProcessItem *pItem, BYTE* pData, int count);
|
||||
|
||||
virtual BOOLEAN OnReceiveYXData(CHostModbusTcpBFProcessItem *pItem, BYTE* pData, int count);
|
||||
virtual BOOLEAN OnReceiveYCData(CHostModbusTcpBFProcessItem *pItem, BYTE* pData, int count);
|
||||
virtual BOOLEAN OnReceiveYMData(CHostModbusTcpBFProcessItem *pItem, BYTE* pData, int count);
|
||||
};
|
||||
|
||||
#endif //_ZJD_HOST_MODBUS_RTU_TCP_BF_PROCESS_H_
|
@ -198,7 +198,9 @@ typedef int SOCKET;
|
||||
#define PROTOCOL_SUB_GDW104 47 //国网104从
|
||||
#define PROTOCOL_HW_MQTT 72 //华为物联平台ROMA
|
||||
#define PROTOCOL_OPCUA 78 //opcua协议
|
||||
#define PROTOCOL_FTP2MINIO 79 //opcua协议
|
||||
#define PROTOCOL_FTP2MINIO 79 //FTP转minio协议
|
||||
#define PROTOCOL_HOST_BF_MODBUSTCP 80 //倍福MODBUSTCP主
|
||||
#define PROTOCOL_HOST_BF_ADS 81 //倍福ADS协议
|
||||
|
||||
#define ADDR_TYPE_NORMAL 0
|
||||
#define ADDR_TYPE_HEX 1
|
||||
|
1030
das-dn/submodbustcp/sub_modbus_tcp.cpp
Normal file
1030
das-dn/submodbustcp/sub_modbus_tcp.cpp
Normal file
File diff suppressed because it is too large
Load Diff
92
das-dn/submodbustcp/sub_modbus_tcp.h
Normal file
92
das-dn/submodbustcp/sub_modbus_tcp.h
Normal file
@ -0,0 +1,92 @@
|
||||
#ifndef _ZJD_SUB_MODBUS_TCP_PROCESS_H_
|
||||
#define _ZJD_SUB_MODBUS_TCP_PROCESS_H_
|
||||
|
||||
#include "netproc.h"
|
||||
#include "modbus_def.h"
|
||||
#include <vector>
|
||||
|
||||
#pragma pack(1)
|
||||
typedef struct
|
||||
{
|
||||
struNetWorkOption net;
|
||||
BYTE defaultYCType;
|
||||
} struSubModbusTCPOption;
|
||||
#pragma pack()
|
||||
|
||||
typedef std::vector<int> vecInt;
|
||||
|
||||
class CSubModbusTcpProcessItem : public CNetProcessItem
|
||||
{
|
||||
public:
|
||||
BYTE ied_addr;
|
||||
WORD m_nNum;
|
||||
|
||||
short m_CoilRegCount;
|
||||
short m_DiscreteRegCount;
|
||||
short m_HoldingRegCount;
|
||||
short m_InputregCount;
|
||||
|
||||
BYTE *m_pCoilRegTable;
|
||||
BYTE *m_pDiscreteRegTable;
|
||||
WORD *m_pHoldingRegTable;
|
||||
WORD *m_pInputRegTable;
|
||||
|
||||
public:
|
||||
CSubModbusTcpProcessItem();
|
||||
virtual ~CSubModbusTcpProcessItem();
|
||||
|
||||
void Attach(int uid, int sock, DWORD peer_addr, WORD peer_port);
|
||||
void Release(void);
|
||||
|
||||
};
|
||||
|
||||
class CSubModbusTcpProcess : public CNetProcess
|
||||
{
|
||||
public:
|
||||
CSubModbusTcpProcess();
|
||||
virtual ~CSubModbusTcpProcess();
|
||||
|
||||
CNetProcessItem *CreateItem(int ord);
|
||||
void DestroyItem(int ord, BOOLEAN bDeleted = FALSE);
|
||||
|
||||
virtual BOOLEAN OnPreCreate(int id);
|
||||
virtual BOOLEAN Run(void);
|
||||
virtual BOOLEAN OnTimer(void);
|
||||
private:
|
||||
struSubModbusTCPOption m_option;
|
||||
BYTE m_YC_Type;
|
||||
enum
|
||||
{
|
||||
M_ME_NA,
|
||||
M_ME_NC
|
||||
};
|
||||
|
||||
vecInt m_CoilRegTable;
|
||||
vecInt m_DiscreteTable;
|
||||
vecInt m_HoldingRegTable;
|
||||
vecInt m_InputRegTable;
|
||||
|
||||
private:
|
||||
int OnPackageReceived(BYTE* pBuf, int count, int ord /* = -1 */);
|
||||
BOOLEAN OnReceiveData(CSubModbusTcpProcessItem *pItem, BYTE* pData, int count, int uid);
|
||||
|
||||
eMBErrorCode eMBTCPSend(BYTE ucSlaveAddress, const BYTE *pucFrame, WORD usLength);
|
||||
|
||||
eMBException prveMBError2Exception(eMBErrorCode eErrorCode);
|
||||
eMBException eMBFuncReadInputRegister(CSubModbusTcpProcessItem *pItem, BYTE* pucFrame, WORD* usLen);
|
||||
eMBException eMBFuncReadHoldingRegister(CSubModbusTcpProcessItem *pItem, BYTE* pucFrame, WORD* usLen);
|
||||
eMBException eMBFuncWriteHoldingRegister(CSubModbusTcpProcessItem *pItem, BYTE* pucFrame, WORD* usLen);
|
||||
eMBException eMBFuncWriteMultipleHoldingRegister(CSubModbusTcpProcessItem *pItem, BYTE* pucFrame, WORD* usLen);
|
||||
eMBException eMBFuncReadCoils(CSubModbusTcpProcessItem *pItem, BYTE* pucFrame, WORD* usLen);
|
||||
eMBException eMBFuncWriteCoil(CSubModbusTcpProcessItem *pItem, BYTE* pucFrame, WORD* usLen);
|
||||
eMBException eMBFuncWriteMultipleCoils(CSubModbusTcpProcessItem *pItem, BYTE* pucFrame, WORD* usLen);
|
||||
eMBException eMBFuncReadDiscreteInputs(CSubModbusTcpProcessItem *pItem, BYTE* pucFrame, WORD* usLen);
|
||||
|
||||
|
||||
eMBErrorCode eMBRegInputCB(CSubModbusTcpProcessItem *pItem, BYTE* pucRegBuffer, WORD usAddress, WORD usNRegs);
|
||||
eMBErrorCode eMBRegHoldingCB(CSubModbusTcpProcessItem *pItem, BYTE* pucRegBuffer, WORD usAddress, WORD usNRegs, eMBRegisterMode eMode);
|
||||
eMBErrorCode eMBRegCoilsCB(CSubModbusTcpProcessItem *pItem, BYTE* pucRegBuffer, WORD usAddress, WORD usNCoils, eMBRegisterMode eMode);
|
||||
eMBErrorCode eMBRegDiscreteCB(CSubModbusTcpProcessItem *pItem, BYTE* pucRegBuffer, WORD usAddress, WORD usNDiscrete);
|
||||
};
|
||||
|
||||
#endif //_ZJD_SUB_MODBUS_TCP_PROCESS_H_
|
Loading…
Reference in New Issue
Block a user