|
|
@@ -85,6 +85,19 @@ static void* power_thread(void* arg)
|
|
|
g_switch_set_all_stop_time_delay(&__globalDeviceManage._globalRelaySampManger,_globalPowerMangerTemp->product_ch_type,_globalPowerMangerTemp->product_saddr,_globalPowerMangerTemp->product_ch_addr,_globalPowerMangerTemp->product_ch_stop_delay);
|
|
|
}
|
|
|
//usleep(300000);
|
|
|
+ if (_globalPowerMangerTemp->product_ch_type == DOUBLE_AC_TYPE)
|
|
|
+ {
|
|
|
+ GlobalTreeACManager *_globalTACManager = NULL;
|
|
|
+ list_for_each_entry(_globalTACManager, &_globalPowerMangerTemp->list_Tree_AC, list_Tree_AC)
|
|
|
+ {
|
|
|
+ short nCtrlType = 2;
|
|
|
+ if (_globalTACManager->product_ph_outputStatus == 1)
|
|
|
+ {
|
|
|
+ nCtrlType = 0;
|
|
|
+ }
|
|
|
+ g_switch_set_t_ac_ph_ctrl_mode(&__globalDeviceManage._globalRelaySampManger, _globalTACManager->product_saddr, _globalTACManager->product_ch_addr - 1, nCtrlType);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
//采集线程
|
|
|
@@ -1048,26 +1061,60 @@ static void* power_thread(void* arg)
|
|
|
float nTotalYGPower=0;//相总的有功功率
|
|
|
for (size_t i = 0; i <= _globalDeviceManager->brdMax; i++)
|
|
|
{
|
|
|
- if (_globalDeviceManager->pCtrlBoard[i].product_saddr == 0 || _globalDeviceManager->pCtrlBoard[i].product_type != TREE_AC_TYPE||_globalDeviceManager->pCtrlBoard[i].product_type != DOUBLE_AC_TYPE)
|
|
|
+ if (_globalDeviceManager->pCtrlBoard[i].product_saddr == 0 || (_globalDeviceManager->pCtrlBoard[i].product_type != TREE_AC_TYPE&&_globalDeviceManager->pCtrlBoard[i].product_type != DOUBLE_AC_TYPE))
|
|
|
{
|
|
|
continue;
|
|
|
}
|
|
|
- // 如果存在电压则置位如果都没有电压则保持0
|
|
|
- if (_globalDeviceManager->pCtrlBoard[i]._globalPowerInManger._PowerInfo[nTreeACType].voltage != 0)
|
|
|
+ if (_globalDeviceManager->pCtrlBoard[i].product_type == DOUBLE_AC_TYPE)
|
|
|
{
|
|
|
- _pTreeACPowerMangerTemp->_PowerInfo.voltage = _globalDeviceManager->pCtrlBoard[i]._globalPowerInManger._PowerInfo[nTreeACType].voltage;
|
|
|
-
|
|
|
+ int nFromIndex = 0;
|
|
|
+ if (_globalDeviceManager->pCtrlBoard[i].nLeft_phType == nTreeACType)
|
|
|
+ {
|
|
|
+ nFromIndex=0;
|
|
|
+ // 如果存在电压则置位如果都没有电压则保持0
|
|
|
+ if (_globalDeviceManager->pCtrlBoard[i]._globalPowerInManger._PowerInfo[nFromIndex].voltage != 0)
|
|
|
+ {
|
|
|
+ _pTreeACPowerMangerTemp->_PowerInfo.voltage = _globalDeviceManager->pCtrlBoard[i]._globalPowerInManger._PowerInfo[nFromIndex].voltage;
|
|
|
+ }
|
|
|
+ _pTreeACPowerMangerTemp->_PowerInfo.current += _globalDeviceManager->pCtrlBoard[i]._globalPowerInManger._PowerInfo[nFromIndex].current;
|
|
|
+ _pTreeACPowerMangerTemp->_PowerInfo.power += _globalDeviceManager->pCtrlBoard[i]._globalPowerInManger._PowerInfo[nFromIndex].power;
|
|
|
+ _pTreeACPowerMangerTemp->_PowerInfo.freq = _globalDeviceManager->pCtrlBoard[i]._globalPowerInManger._PowerInfo[nFromIndex].freq > _pTreeACPowerMangerTemp->_PowerInfo.freq ? _globalDeviceManager->pCtrlBoard[i]._globalPowerInManger._PowerInfo[nFromIndex].freq : _pTreeACPowerMangerTemp->_PowerInfo.freq;
|
|
|
+ _pTreeACPowerMangerTemp->_PowerInfo.consumption += _globalDeviceManager->pCtrlBoard[i]._globalPowerInManger._PowerInfo[nFromIndex].consumption;
|
|
|
+ nTotalYGPower += _globalDeviceManager->pCtrlBoard[i]._globalPowerInManger._PowerInfo[nFromIndex].factor * _globalDeviceManager->pCtrlBoard[i]._globalPowerInManger._PowerInfo[nFromIndex].power;
|
|
|
+ }
|
|
|
+ if (_globalDeviceManager->pCtrlBoard[i].nRight_phType == nTreeACType)
|
|
|
+ {
|
|
|
+ nFromIndex=1;
|
|
|
+ // 如果存在电压则置位如果都没有电压则保持0
|
|
|
+ if (_globalDeviceManager->pCtrlBoard[i]._globalPowerInManger._PowerInfo[nFromIndex].voltage != 0)
|
|
|
+ {
|
|
|
+ _pTreeACPowerMangerTemp->_PowerInfo.voltage = _globalDeviceManager->pCtrlBoard[i]._globalPowerInManger._PowerInfo[nFromIndex].voltage;
|
|
|
+ }
|
|
|
+ _pTreeACPowerMangerTemp->_PowerInfo.current += _globalDeviceManager->pCtrlBoard[i]._globalPowerInManger._PowerInfo[nFromIndex].current;
|
|
|
+ _pTreeACPowerMangerTemp->_PowerInfo.power += _globalDeviceManager->pCtrlBoard[i]._globalPowerInManger._PowerInfo[nFromIndex].power;
|
|
|
+ _pTreeACPowerMangerTemp->_PowerInfo.freq = _globalDeviceManager->pCtrlBoard[i]._globalPowerInManger._PowerInfo[nFromIndex].freq > _pTreeACPowerMangerTemp->_PowerInfo.freq ? _globalDeviceManager->pCtrlBoard[i]._globalPowerInManger._PowerInfo[nFromIndex].freq : _pTreeACPowerMangerTemp->_PowerInfo.freq;
|
|
|
+ _pTreeACPowerMangerTemp->_PowerInfo.consumption += _globalDeviceManager->pCtrlBoard[i]._globalPowerInManger._PowerInfo[nFromIndex].consumption;
|
|
|
+ nTotalYGPower += _globalDeviceManager->pCtrlBoard[i]._globalPowerInManger._PowerInfo[nFromIndex].factor * _globalDeviceManager->pCtrlBoard[i]._globalPowerInManger._PowerInfo[nFromIndex].power;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ // 如果存在电压则置位如果都没有电压则保持0
|
|
|
+ if (_globalDeviceManager->pCtrlBoard[i]._globalPowerInManger._PowerInfo[nTreeACType].voltage != 0)
|
|
|
+ {
|
|
|
+ _pTreeACPowerMangerTemp->_PowerInfo.voltage = _globalDeviceManager->pCtrlBoard[i]._globalPowerInManger._PowerInfo[nTreeACType].voltage;
|
|
|
+ }
|
|
|
+ _pTreeACPowerMangerTemp->_PowerInfo.current += _globalDeviceManager->pCtrlBoard[i]._globalPowerInManger._PowerInfo[nTreeACType].current;
|
|
|
+ _pTreeACPowerMangerTemp->_PowerInfo.power += _globalDeviceManager->pCtrlBoard[i]._globalPowerInManger._PowerInfo[nTreeACType].power;
|
|
|
+ // if (_globalTotalPowerInfo._power_info.freq != 0)
|
|
|
+ // {
|
|
|
+ // _pTreeACPowerMangerTemp->_PowerInfo.freq = _globalTotalPowerInfo._power_info.freq;
|
|
|
+ // }
|
|
|
+ _pTreeACPowerMangerTemp->_PowerInfo.freq = _globalDeviceManager->pCtrlBoard[i]._globalPowerInManger._PowerInfo[nTreeACType].freq > _pTreeACPowerMangerTemp->_PowerInfo.freq ? _globalDeviceManager->pCtrlBoard[i]._globalPowerInManger._PowerInfo[nTreeACType].freq : _pTreeACPowerMangerTemp->_PowerInfo.freq;
|
|
|
+ _pTreeACPowerMangerTemp->_PowerInfo.consumption += _globalDeviceManager->pCtrlBoard[i]._globalPowerInManger._PowerInfo[nTreeACType].consumption;
|
|
|
+ //_pTreeACPowerMangerTemp->_PowerInfo.factor = _globalDeviceManager->pCtrlBoard[i]._globalPowerInManger._PowerInfo[nTreeACType].factor;
|
|
|
+ nTotalYGPower += _globalDeviceManager->pCtrlBoard[i]._globalPowerInManger._PowerInfo[nTreeACType].factor * _globalDeviceManager->pCtrlBoard[i]._globalPowerInManger._PowerInfo[nTreeACType].power;
|
|
|
}
|
|
|
- _pTreeACPowerMangerTemp->_PowerInfo.current += _globalDeviceManager->pCtrlBoard[i]._globalPowerInManger._PowerInfo[nTreeACType].current;
|
|
|
- _pTreeACPowerMangerTemp->_PowerInfo.power += _globalDeviceManager->pCtrlBoard[i]._globalPowerInManger._PowerInfo[nTreeACType].power;
|
|
|
- // if (_globalTotalPowerInfo._power_info.freq != 0)
|
|
|
- // {
|
|
|
- // _pTreeACPowerMangerTemp->_PowerInfo.freq = _globalTotalPowerInfo._power_info.freq;
|
|
|
- // }
|
|
|
- _pTreeACPowerMangerTemp->_PowerInfo.freq = _globalDeviceManager->pCtrlBoard[i]._globalPowerInManger._PowerInfo[nTreeACType].freq> _pTreeACPowerMangerTemp->_PowerInfo.freq? _globalDeviceManager->pCtrlBoard[i]._globalPowerInManger._PowerInfo[nTreeACType].freq: _pTreeACPowerMangerTemp->_PowerInfo.freq;
|
|
|
- _pTreeACPowerMangerTemp->_PowerInfo.consumption += _globalDeviceManager->pCtrlBoard[i]._globalPowerInManger._PowerInfo[nTreeACType].consumption;
|
|
|
- //_pTreeACPowerMangerTemp->_PowerInfo.factor = _globalDeviceManager->pCtrlBoard[i]._globalPowerInManger._PowerInfo[nTreeACType].factor;
|
|
|
- nTotalYGPower+=_globalDeviceManager->pCtrlBoard[i]._globalPowerInManger._PowerInfo[nTreeACType].factor*_globalDeviceManager->pCtrlBoard[i]._globalPowerInManger._PowerInfo[nTreeACType].power;
|
|
|
}
|
|
|
//计算每相总功率因数
|
|
|
if (_pTreeACPowerMangerTemp->_PowerInfo.power>0)
|