namespace IStation { /// /// 全局辅助类 /// public class GlobalHelper { #region 默认配置 #region 泵标志 #region 一输 public readonly static int Flag11 = 11; public readonly static int Flag12 = 12; public readonly static int Flag13 = 13; public readonly static int Flag14 = 14; public readonly static int Flag15 = 15; public readonly static int Flag16 = 16; public readonly static int Flag17 = 17; public readonly static int Flag18 = 18; public readonly static List Station1FlagList = new List() { Flag11, Flag12, Flag13, Flag14, Flag15, Flag16, Flag17, Flag18 }; public readonly static List Station1SameTypeFlagGroupFirst = new List() { Flag11, Flag12, Flag13, Flag14, Flag16, Flag17, Flag18 }; public readonly static List Station1SameTypeFlagGroupSecond = new List() { Flag15 }; #endregion #region 二输 public readonly static int Flag21 = 21; public readonly static int Flag22 = 22; public readonly static int Flag23 = 23; public readonly static int Flag24 = 24; public readonly static int Flag25 = 25; public readonly static int Flag26 = 26; public readonly static int Flag27 = 27; public readonly static List Station2FlagList = new List() { Flag21, Flag22, Flag23, Flag24, Flag25, Flag26, Flag27 }; public readonly static List Station2SameTypeFlagGroupFirst = new List() { Flag22, Flag23, Flag24, Flag25, Flag26 }; public readonly static List Station2SameTypeFlagGroupSecond = new List() { Flag21, Flag27 }; #endregion /// /// 是否变频 /// /// /// public static bool IsFrequency(int flag) { if (flag == Flag15 || flag == Flag16) { return false; } return true; } #endregion #region 众毅Scada对接标签 #region 二取 public readonly static string 长江水位 = "10001"; public readonly static string 二取前池液位 = "10002"; public readonly static string 陈行水库水位 = "10003"; public readonly static string 二取1泵_有功功率 = "10090"; public readonly static string 二取2泵_有功功率 = "10091"; public readonly static string 二取3泵_有功功率 = "10092"; public readonly static string 二取4泵_有功功率 = "10093"; public readonly static string 二取5泵_有功功率 = "10094"; public readonly static string 二取1泵_出口压力 = "10014"; public readonly static string 二取2泵_出口压力 = "10015"; public readonly static string 二取3泵_出口压力 = "10016"; public readonly static string 二取4泵_出口压力 = "10017"; public readonly static string 二取5泵_出口压力 = "10018"; public readonly static string 二取1泵_水泵_运行状态 = "10072"; public readonly static string 二取2泵_水泵_运行状态 = "10073"; public readonly static string 二取3泵_水泵_运行状态 = "10074"; public readonly static string 二取4泵_水泵_运行状态 = "10075"; public readonly static string 二取5泵_水泵_运行状态 = "10076"; public readonly static string 二取1泵_有功电能 = "10109"; public readonly static string 二取2泵_有功电能 = "10110"; public readonly static string 二取3泵_有功电能 = "10111"; public readonly static string 二取4泵_有功电能 = "10112"; public readonly static string 二取5泵_有功电能 = "10113"; public readonly static string 二取1泵_累计流量 = "10054"; public readonly static string 二取2泵_累计流量 = "10055"; public readonly static string 二取3泵_累计流量 = "10056"; public readonly static string 二取4泵_累计流量 = "10057"; public readonly static string 二取5泵_累计流量 = "10058"; public readonly static string 二取1泵_瞬时流量 = "10034"; public readonly static string 二取2泵_瞬时流量 = "10035"; public readonly static string 二取3泵_瞬时流量 = "10036"; public readonly static string 二取4泵_瞬时流量 = "10037"; public readonly static string 二取5泵_瞬时流量 = "10038"; public readonly static string 二取1泵_累计运行时间 = "10167"; public readonly static string 二取2泵_累计运行时间 = "10168"; public readonly static string 二取3泵_累计运行时间 = "10169"; public readonly static string 二取4泵_累计运行时间 = "10170"; public readonly static string 二取5泵_累计运行时间 = "10171"; public readonly static string 二取1泵_检修状态 = "10191"; public readonly static string 二取2泵_检修状态 = "10192"; public readonly static string 二取3泵_检修状态 = "10193"; public readonly static string 二取4泵_检修状态 = "10194"; public readonly static string 二取5泵_检修状态 = "10195"; public readonly static string 二取1泵_累计运行时间_历史 = "二取水1号主水泵.累计运行时间"; public readonly static string 二取2泵_累计运行时间_历史 = "二取水2号主水泵.累计运行时间"; public readonly static string 二取3泵_累计运行时间_历史 = "二取水3号主水泵.累计运行时间"; public readonly static string 二取4泵_累计运行时间_历史 = "二取水4号主水泵.累计运行时间"; public readonly static string 二取5泵_累计运行时间_历史 = "二取水5号主水泵.累计运行时间"; #endregion #region 一输 public readonly static string 嘉定1线_瞬时流量 = "10138"; public readonly static string 嘉定2线_瞬时流量 = "10139"; public readonly static string 嘉定3线_瞬时流量 = "10140"; public readonly static string 嘉定1线_瞬时流量_长江管网图 = "10159"; public readonly static string 嘉定2线_瞬时流量_长江管网图 = "10160"; public readonly static string 嘉定3线_瞬时流量_长江管网图 = "10161"; public readonly static string 嘉定1线_表头累计 = "10143"; public readonly static string 嘉定2线_表头累计 = "10144"; public readonly static string 嘉定3线_表头累计 = "10145"; public readonly static string 嘉定1线_累计流量_长江管网图 = "10164"; public readonly static string 嘉定2线_累计流量_长江管网图 = "10165"; public readonly static string 嘉定3线_累计流量_长江管网图 = "10166"; public readonly static string 嘉定1线_压力 = "10128"; public readonly static string 嘉定2线_压力 = "10129"; public readonly static string 嘉定3线_压力 = "10130"; public readonly static string 嘉定1线_压力_长江管网图 = "10154"; public readonly static string 嘉定2线_压力_长江管网图 = "10155"; public readonly static string 嘉定3线_压力_长江管网图 = "10156"; public readonly static string 一输_老前池南侧液位 = "10011"; public readonly static string 一输_老前池北侧液位 = "10012"; public readonly static string 一输_新前池液位 = "10013"; public readonly static string 一输11泵_出口压力 = "10026"; public readonly static string 一输12泵_出口压力 = "10027"; public readonly static string 一输13泵_出口压力 = "10028"; public readonly static string 一输14泵_出口压力 = "10029"; public readonly static string 一输15泵_出口压力 = "10030"; public readonly static string 一输16泵_出口压力 = "10031"; public readonly static string 一输17泵_出口压力 = "10032"; public readonly static string 一输18泵_出口压力 = "10033"; public readonly static string 一输11泵_转速 = "10084"; public readonly static string 一输12泵_转速 = "10085"; public readonly static string 一输13泵_转速 = "10086"; public readonly static string 一输14泵_转速 = "10087"; public readonly static string 一输17泵_转速 = "10088"; public readonly static string 一输18泵_转速 = "10089"; public readonly static string 一输11泵_频率 = "10066"; public readonly static string 一输12泵_频率 = "10067"; public readonly static string 一输13泵_频率 = "10068"; public readonly static string 一输14泵_频率 = "10069"; public readonly static string 一输17泵_频率 = "10070"; public readonly static string 一输18泵_频率 = "10071"; public readonly static string 一输11泵_运行状态 = "10046"; public readonly static string 一输12泵_运行状态 = "10047"; // 10150 is null public readonly static string 一输13泵_运行状态 = "10048"; public readonly static string 一输14泵_运行状态 = "10049"; public readonly static string 一输15泵_运行状态 = "10050"; public readonly static string 一输16泵_运行状态 = "10051"; public readonly static string 一输17泵_运行状态 = "10052"; public readonly static string 一输18泵_运行状态 = "10053"; public readonly static string 一输11泵_运行时间 = "10172"; public readonly static string 一输12泵_运行时间 = "10173"; public readonly static string 一输13泵_运行时间 = "10174"; public readonly static string 一输14泵_运行时间 = "10175"; public readonly static string 一输11泵_累计运行时间 = "10187"; public readonly static string 一输12泵_累计运行时间 = "10188"; public readonly static string 一输13泵_累计运行时间 = "10189"; public readonly static string 一输14泵_累计运行时间 = "10190"; public readonly static string 一输15泵_累计运行时间 = "10176"; public readonly static string 一输16泵_累计运行时间 = "10177"; public readonly static string 一输17泵_累计运行时间 = "10178"; public readonly static string 一输18泵_累计运行时间 = "10179"; public readonly static string 一输11泵_有功功率 = "10101"; public readonly static string 一输12泵_有功功率 = "10102"; public readonly static string 一输13泵_有功功率 = "10103"; public readonly static string 一输14泵_有功功率 = "10104"; public readonly static string 一输15泵_有功功率 = "10105"; public readonly static string 一输16泵_有功功率 = "10106"; public readonly static string 一输17泵_有功功率 = "10107"; public readonly static string 一输18泵_有功功率 = "10108"; public readonly static string 一输11泵_累计运行时间_历史 = "一输水泵11号变频单泵.水泵累计运行时间"; public readonly static string 一输12泵_累计运行时间_历史 = "一输水泵12号变频单泵1.水泵运行时间"; public readonly static string 一输13泵_累计运行时间_历史 = "一输水泵13号变频单泵.水泵累计运行时间"; public readonly static string 一输14泵_累计运行时间_历史 = "一输水泵14号变频单泵.水泵累计运行时间"; public readonly static string 一输15泵_累计运行时间_历史 = "HF一输水15号工频控制图.水泵累计运行时间"; public readonly static string 一输16泵_累计运行时间_历史 = "HF一输水16号工频控制图.水泵累计运行时间"; public readonly static string 一输17泵_累计运行时间_历史 = "一输水泵17号变频单泵.水泵累计运行时间"; public readonly static string 一输18泵_累计运行时间_历史 = "一输水泵18号变频单泵.水泵累计运行时间"; #endregion #region 二输 public readonly static string DN2400_出厂压力 = "10141"; public readonly static string DN2700_出厂压力 = "10142"; public readonly static string DN2400_出厂压力_长江管网图 = "10152"; public readonly static string DN2700_出厂压力_长江管网图 = "10153"; public readonly static string DN2400总管_瞬时流量 = "10146"; public readonly static string DN2700总管_瞬时流量 = "10147"; public readonly static string DN2400总管_瞬时流量_长江管网图 = "10157"; public readonly static string DN2700总管_瞬时流量_长江管网图 = "10158"; public readonly static string DN2400总管_实际累计流量 = "10148"; public readonly static string DN2700总管_实际累计流量 = "10149"; public readonly static string DN2400总管_累计流量_长江管网图 = "10162"; public readonly static string DN2700总管_累计流量_长江管网图 = "10163"; public readonly static string 二输21泵_泵井液位 = "10004"; public readonly static string 二输22泵_泵井液位 = "10005"; public readonly static string 二输23泵_泵井液位 = "10006"; public readonly static string 二输24泵_泵井液位 = "10007"; public readonly static string 二输25泵_泵井液位 = "10008"; public readonly static string 二输26泵_泵井液位 = "10009"; public readonly static string 二输27泵_泵井液位 = "10010"; public readonly static string 二输21泵_出水压力 = "10019"; public readonly static string 二输22泵_出水压力 = "10020"; public readonly static string 二输23泵_出水压力 = "10021"; public readonly static string 二输24泵_出水压力 = "10022"; public readonly static string 二输25泵_出水压力 = "10023"; public readonly static string 二输26泵_出水压力 = "10024"; public readonly static string 二输27泵_出水压力 = "10025"; public readonly static string 二输21泵_瞬时流量 = "10039"; public readonly static string 二输22泵_瞬时流量 = "10040"; public readonly static string 二输23泵_瞬时流量 = "10041"; public readonly static string 二输24泵_瞬时流量 = "10042"; public readonly static string 二输25泵_瞬时流量 = "10043"; public readonly static string 二输26泵_瞬时流量 = "10044"; public readonly static string 二输27泵_瞬时流量 = "10045"; public readonly static string 二输21泵_累计流量 = "10059"; public readonly static string 二输22泵_累计流量 = "10060"; public readonly static string 二输23泵_累计流量 = "10061"; public readonly static string 二输24泵_累计流量 = "10062"; public readonly static string 二输25泵_累计流量 = "10063"; public readonly static string 二输26泵_累计流量 = "10064"; public readonly static string 二输27泵_累计流量 = "10065"; public readonly static string 二输21泵_有功电能 = "10131"; public readonly static string 二输22泵_有功电能 = "10132"; public readonly static string 二输23泵_有功电能 = "10133"; public readonly static string 二输24泵_有功电能 = "10134"; public readonly static string 二输25泵_有功电能 = "10135"; public readonly static string 二输26泵_有功电能 = "10136"; public readonly static string 二输27泵_有功电能 = "10137"; public readonly static string 二输22泵_频率 = "10095"; public readonly static string 二输23泵_频率 = "10096"; public readonly static string 二输24泵_频率 = "10097"; public readonly static string 二输25泵_频率 = "10098"; public readonly static string 二输26泵_频率 = "10099"; public readonly static string 二输27泵_频率 = "10100"; public readonly static string 二输21泵_转速 = "10114"; public readonly static string 二输22泵_转速 = "10115"; public readonly static string 二输23泵_转速 = "10116"; public readonly static string 二输24泵_转速 = "10117"; public readonly static string 二输25泵_转速 = "10118"; public readonly static string 二输26泵_转速 = "10119"; public readonly static string 二输27泵_转速 = "10120"; public readonly static string 二输21泵_有功功率 = "10121"; public readonly static string 二输22泵_有功功率 = "10122"; public readonly static string 二输23泵_有功功率 = "10123"; public readonly static string 二输24泵_有功功率 = "10124"; public readonly static string 二输25泵_有功功率 = "10125"; public readonly static string 二输26泵_有功功率 = "10126"; // "10151"; is null public readonly static string 二输27泵_有功功率 = "10127"; public readonly static string 二输21泵_运行状态 = "10077"; public readonly static string 二输22泵_运行状态 = "10078"; public readonly static string 二输23泵_运行状态 = "10079"; public readonly static string 二输24泵_运行状态 = "10080"; public readonly static string 二输25泵_运行状态 = "10081"; public readonly static string 二输26泵_运行状态 = "10082"; public readonly static string 二输27泵_运行状态 = "10083"; public readonly static string 二输21泵_运行时间 = "10180"; public readonly static string 二输22泵_运行时间 = "10181"; public readonly static string 二输23泵_运行时间 = "10182"; public readonly static string 二输24泵_运行时间 = "10183"; public readonly static string 二输25泵_运行时间 = "10184"; public readonly static string 二输26泵_运行时间 = "10185"; public readonly static string 二输27泵_运行时间 = "10186"; public readonly static string 二输21泵_检修状态 = "10196"; public readonly static string 二输22泵_检修状态 = "10197"; public readonly static string 二输23泵_检修状态 = "10198"; public readonly static string 二输24泵_检修状态 = "10199"; public readonly static string 二输25泵_检修状态 = "10200"; public readonly static string 二输26泵_检修状态 = "10201"; public readonly static string 二输27泵_检修状态 = "10202"; public readonly static string 二输21泵_累计运行时间_历史 = "二输水21号水泵运行参数.运行时间"; public readonly static string 二输22泵_累计运行时间_历史 = "二输水22号水泵运行参数.运行时间"; public readonly static string 二输23泵_累计运行时间_历史 = "二输水23号水泵运行参数.运行时间"; public readonly static string 二输24泵_累计运行时间_历史 = "二输水24号水泵运行参数.运行时间"; public readonly static string 二输25泵_累计运行时间_历史 = "二输水25号水泵运行参数.运行时间"; public readonly static string 二输26泵_累计运行时间_历史 = "二输水26号水泵运行参数.运行时间"; public readonly static string 二输27泵_累计运行时间_历史 = "二输水27号水泵运行参数.运行时间"; #endregion #endregion #region 泵标志 和 众毅Scada对接标签 映射 /// /// 泵标志运行状态映射字典 1输水 /// public readonly static Dictionary FlagRunStatusMappingDict1 = new() { {Flag11, 一输11泵_运行状态}, {Flag12, 一输12泵_运行状态}, {Flag13, 一输13泵_运行状态}, {Flag14, 一输14泵_运行状态}, {Flag15, 一输15泵_运行状态}, {Flag16, 一输16泵_运行状态}, {Flag17, 一输17泵_运行状态}, {Flag18, 一输18泵_运行状态} }; /// /// 泵标志运行状态映射字典 2输水 /// public readonly static Dictionary FlagRunStatusMappingDict2 = new() { {Flag21, 二输21泵_运行状态}, {Flag22, 二输22泵_运行状态}, {Flag23, 二输23泵_运行状态}, {Flag24, 二输24泵_运行状态}, {Flag25, 二输25泵_运行状态}, {Flag26, 二输26泵_运行状态}, {Flag27, 二输27泵_运行状态} }; /// /// 泵标志进口水位映射字典 1输水 /// public readonly static Dictionary FlagInletWaterLevelMappingDict1 = new() { {Flag11, 一输_老前池南侧液位}, {Flag12, 一输_老前池南侧液位}, {Flag13, 一输_老前池南侧液位}, {Flag14, 一输_老前池北侧液位}, {Flag15, 一输_老前池北侧液位}, {Flag16, 一输_新前池液位}, {Flag17, 一输_新前池液位}, {Flag18, 一输_新前池液位} }; /// /// 泵标志进口水位映射字典 2输水 /// public readonly static Dictionary FlagInletWaterLevelMappingDict2 = new() { {Flag21, 二输21泵_泵井液位}, {Flag22, 二输22泵_泵井液位}, {Flag23, 二输23泵_泵井液位}, {Flag24, 二输24泵_泵井液位}, {Flag25, 二输25泵_泵井液位}, {Flag26, 二输26泵_泵井液位}, {Flag27, 二输27泵_泵井液位} }; /// /// 泵标志出口压力映射字典 1输水 /// public readonly static Dictionary FlagOutletPressureMappingDict1 = new() { {Flag11, 一输11泵_出口压力}, {Flag12, 一输12泵_出口压力}, {Flag13, 一输13泵_出口压力}, {Flag14, 一输14泵_出口压力}, {Flag15, 一输15泵_出口压力}, {Flag16, 一输16泵_出口压力}, {Flag17, 一输17泵_出口压力}, {Flag18, 一输18泵_出口压力} }; /// /// 泵标志出口压力映射字典 2输水 /// public readonly static Dictionary FlagOutletPressureMappingDict2 = new() { {Flag21, 二输21泵_出水压力}, {Flag22, 二输22泵_出水压力}, {Flag23, 二输23泵_出水压力}, {Flag24, 二输24泵_出水压力}, {Flag25, 二输25泵_出水压力}, {Flag26, 二输26泵_出水压力}, {Flag27, 二输27泵_出水压力} }; /// /// 泵标志出口压力映射字典 2输水 /// public readonly static Dictionary FlagOutletFlowMappingDict2 = new() { {Flag21, 二输21泵_瞬时流量}, {Flag22, 二输22泵_瞬时流量}, {Flag23, 二输23泵_瞬时流量}, {Flag24, 二输24泵_瞬时流量}, {Flag25, 二输25泵_瞬时流量}, {Flag26, 二输26泵_瞬时流量}, {Flag27, 二输27泵_瞬时流量} }; /// /// 泵标志转速映射字典 1输水 /// public readonly static Dictionary FlagNrMappingDict1 = new() { {Flag11, 一输11泵_转速}, {Flag12, 一输12泵_转速}, {Flag13, 一输13泵_转速}, {Flag14, 一输14泵_转速}, {Flag15, 一输15泵_运行状态}, {Flag16, 一输16泵_运行状态}, {Flag17, 一输17泵_转速}, {Flag18, 一输18泵_转速} }; /// /// 泵标志转速映射字典 2输水 /// public readonly static Dictionary FlagNrMappingDict2 = new() { {Flag21, 二输21泵_转速}, {Flag22, 二输22泵_转速}, {Flag23, 二输23泵_转速}, {Flag24, 二输24泵_转速}, {Flag25, 二输25泵_转速}, {Flag26, 二输26泵_转速}, {Flag27, 二输27泵_转速} }; /// /// 泵标志检修状态映射字典 2输水 /// public readonly static Dictionary FlagMaintenanceMappingDict2 = new() { {Flag21, 二输21泵_检修状态}, {Flag22, 二输22泵_检修状态}, {Flag23, 二输23泵_检修状态}, {Flag24, 二输24泵_检修状态}, {Flag25, 二输25泵_检修状态}, {Flag26, 二输26泵_检修状态}, {Flag27, 二输27泵_检修状态} }; /// /// 泵标志累计时间映射字典 1输水 (分钟单位) /// public readonly static Dictionary FlagCumulativeRunTimeMappingDict1 = new() { {一输11泵_累计运行时间_历史,Flag11}, {一输12泵_累计运行时间_历史,Flag12}, {一输13泵_累计运行时间_历史,Flag13}, {一输14泵_累计运行时间_历史,Flag14}, {一输15泵_累计运行时间_历史,Flag15}, {一输16泵_累计运行时间_历史,Flag16}, {一输17泵_累计运行时间_历史,Flag17}, {一输18泵_累计运行时间_历史,Flag18} }; /// /// 泵标志累计时间映射字典 2输水 (小时单位) /// public readonly static Dictionary FlagCumulativeRunTimeMappingDict2 = new() { {二输21泵_累计运行时间_历史,Flag21}, {二输22泵_累计运行时间_历史,Flag22}, {二输23泵_累计运行时间_历史,Flag23}, {二输24泵_累计运行时间_历史,Flag24}, {二输25泵_累计运行时间_历史,Flag25}, {二输26泵_累计运行时间_历史,Flag26}, {二输27泵_累计运行时间_历史,Flag27} }; #endregion #region 模型映射 /// /// 模型流量点映射字典 /// public readonly static Dictionary ModelFlowIdMappingDict = new(){ { "Pjd1", 嘉定1线_瞬时流量_长江管网图}, { "Pjd2", 嘉定2线_瞬时流量_长江管网图}, { "Pjd3", 嘉定3线_瞬时流量_长江管网图}, { "Pdn2400", DN2400总管_瞬时流量_长江管网图}, { "Pdn2700", DN2700总管_瞬时流量_长江管网图}, { "Ppump21", 二输21泵_瞬时流量}, { "Ppump22", 二输22泵_瞬时流量}, { "Ppump23", 二输23泵_瞬时流量}, { "Ppump24", 二输24泵_瞬时流量}, { "Ppump25", 二输25泵_瞬时流量}, { "Ppump26", 二输26泵_瞬时流量}, { "Ppump27", 二输27泵_瞬时流量} }; /// /// 模型压力点映射字典 /// public readonly static Dictionary ModelPressureIdMappingDict = new() { { "Jjd1", 嘉定1线_压力_长江管网图}, { "Jjd2", 嘉定2线_压力_长江管网图}, { "Jjd3", 嘉定3线_压力_长江管网图}, { "Jpump11", 一输11泵_出口压力}, { "Jpump12", 一输12泵_出口压力}, { "Jpump13", 一输13泵_出口压力}, { "Jpump14", 一输14泵_出口压力}, { "Jpump15", 一输15泵_出口压力}, { "Jpump16", 一输16泵_出口压力}, { "Jpump17", 一输17泵_出口压力}, { "Jpump18", 一输18泵_出口压力}, { "Jdn2400", DN2400_出厂压力_长江管网图}, { "Jdn2700", DN2700_出厂压力_长江管网图}, { "Jpump21", 二输21泵_出水压力}, { "Jpump22", 二输22泵_出水压力}, { "Jpump23", 二输23泵_出水压力}, { "Jpump24", 二输24泵_出水压力}, { "Jpump25", 二输25泵_出水压力}, { "Jpump26", 二输26泵_出水压力}, { "Jpump27", 二输27泵_出水压力} }; /// /// 模型模式点映射字典 /// public readonly static Dictionary ModelPatternIdMappingDict = new() { {"Pump11", 一输11泵_转速}, {"Pump12", 一输12泵_转速}, {"Pump13", 一输13泵_转速}, {"Pump14", 一输14泵_转速}, {"Pump15", 一输15泵_运行状态}, {"Pump16", 一输16泵_运行状态}, {"Pump17", 一输17泵_转速}, {"Pump18", 一输18泵_转速}, {"R3", 一输_老前池南侧液位}, {"R2", 一输_老前池北侧液位 }, {"R1", 一输_新前池液位}, {"SFJD1", 嘉定1线_瞬时流量_长江管网图}, {"SFJD2", 嘉定2线_瞬时流量_长江管网图}, {"SFJD3", 嘉定3线_瞬时流量_长江管网图}, {"RPump21", 二输21泵_泵井液位}, {"RPump22", 二输22泵_泵井液位}, {"RPump23", 二输23泵_泵井液位}, {"RPump24", 二输24泵_泵井液位}, {"RPump25", 二输25泵_泵井液位}, {"RPump26", 二输26泵_泵井液位}, {"RPump27", 二输27泵_泵井液位}, {"SFPump21", 二输21泵_瞬时流量}, {"SFPump22", 二输22泵_瞬时流量}, {"SFPump23", 二输23泵_瞬时流量}, {"SFPump24", 二输24泵_瞬时流量}, {"SFPump25", 二输25泵_瞬时流量}, {"SFPump26", 二输26泵_瞬时流量}, {"SFPump27", 二输27泵_瞬时流量}, {"Pump21", 二输21泵_转速}, {"Pump22", 二输22泵_转速}, {"Pump23", 二输23泵_转速}, {"Pump24", 二输24泵_转速}, {"Pump25", 二输25泵_转速}, {"Pump26", 二输26泵_转速}, {"Pump27", 二输27泵_转速}, {"SFDN2400", DN2400总管_瞬时流量_长江管网图}, {"SFDN2700", DN2700总管_瞬时流量_长江管网图} }; /// /// 模型压力点(kPa)列表 /// public readonly static List ModelPressureIdkPaList = new() { 嘉定1线_压力, 嘉定2线_压力, 嘉定3线_压力, 嘉定1线_压力_长江管网图, 嘉定2线_压力_长江管网图, 嘉定3线_压力_长江管网图, 一输11泵_出口压力, 一输12泵_出口压力, 一输13泵_出口压力, 一输14泵_出口压力, 一输15泵_出口压力, 一输16泵_出口压力, 一输17泵_出口压力, 一输18泵_出口压力 }; /// /// 模型泵转速字典 /// public static readonly Dictionary ModelPumpNrDict = new() { { "Pump11",590}, { "Pump12",590}, { "Pump13",590}, { "Pump14",590}, { "Pump15",590}, { "Pump16",590}, { "Pump17",590}, { "Pump18",590}, { "Pump21",740}, { "Pump22",495}, { "Pump23",495}, { "Pump24",495}, { "Pump25",495}, { "Pump26",495}, { "Pump27",740} }; /// /// 模型泵标识映射字典 /// public static readonly Dictionary ModelPumpIdMappingDict = new() { { Flag11,"Pump11"}, { Flag12,"Pump12"}, { Flag13,"Pump13"}, { Flag14,"Pump14"}, { Flag15,"Pump15"}, { Flag16,"Pump16"}, { Flag17,"Pump17"}, { Flag18,"Pump18"}, { Flag21,"Pump21"}, { Flag22,"Pump22"}, { Flag23,"Pump23"}, { Flag24,"Pump24"}, { Flag25,"Pump25"}, { Flag26,"Pump26"}, { Flag27,"Pump27"} }; #endregion #endregion #region 获取 配置字典 /// /// 获取 泵标志运行状态映射字典 /// public static Dictionary GetFlagRunStatusMappingDict() { var flag_run_status_mapping_dict = new Dictionary(); foreach (var item in FlagRunStatusMappingDict1) { flag_run_status_mapping_dict.Add(item.Key, item.Value); } foreach (var item in FlagRunStatusMappingDict2) { flag_run_status_mapping_dict.Add(item.Key, item.Value); } return flag_run_status_mapping_dict; } /// /// 获取 泵标志转速映射字典 /// public static Dictionary GetFlagNrMappingDict() { var flag_nr_mapping_dict = new Dictionary(); foreach (var item in FlagNrMappingDict1) { flag_nr_mapping_dict.Add(item.Key, item.Value); } foreach (var item in FlagNrMappingDict2) { flag_nr_mapping_dict.Add(item.Key, item.Value); } return flag_nr_mapping_dict; } #endregion #region 获取实时Scada /// /// 众毅实时数据 /// public class ZyRealTimeDataDto { /// /// /// public string msg { get; set; } /// /// /// public Dictionary> data { get; set; } /// /// /// public int status { get; set; } } /// /// 获取实时众毅Scada数据列表 /// public static string GetRealTimeZyScadaList(out List zy_scada_list, bool use_debug = false) { zy_scada_list = new List(); if (!Settings.ParasHelper.ZyDocking.Enable) { if (use_debug) { var debug_zy_scada_file = Settings.ParasHelper.LocalFile.DataFolderDirectory + "\\" + "zy_scada_debug.txt"; if (File.Exists(debug_zy_scada_file)) { var debug_zy_scada_json = File.ReadAllText(debug_zy_scada_file); var dto = JsonHelper.Json2Object(debug_zy_scada_json); zy_scada_list = ConvertRealTimeZyScadaList(dto?.data); } } return "ZyDocking 未启用"; } var url = Settings.ParasHelper.ZyDocking.RealTimeScadaHttpUrl; if (string.IsNullOrEmpty(url)) { return "RealTimeScadaHttpUrl 为空"; } try { var response_text = Yw.Untity.HttpRequestHelper.Get(url); var dto = JsonHelper.Json2Object(response_text); var data = dto?.data; if (dto.data == null || !dto.data.Any()) { return "response_text 解析失败!"; } zy_scada_list = ConvertRealTimeZyScadaList(dto.data); } catch (System.Exception ex) { return ex.Message; } if (!zy_scada_list.Any()) { return "zy_scada_list 无数据"; } return string.Empty; } /// /// 转换实时众毅Scada数据列表 /// /// /// private static List ConvertRealTimeZyScadaList(Dictionary> data) { if (data == null || !data.Any()) return default; var zy_scada_list = new List(); foreach (var item in data) { var zy_scada = new Model.ZyScada(); zy_scada.Code = item.Key; zy_scada.Tag = item.Value["key"]; if (DateTime.TryParse(item.Value["time"], out DateTime t)) zy_scada.Time = t; if (double.TryParse(item.Value["vals"], out double v)) zy_scada.Value = v; zy_scada_list.Add(zy_scada); } return zy_scada_list; } /// /// 获取实时众毅Scada数据列表 /// public static bool ExportTempZyScadaDebugTxt(List zy_scada_list) { if (zy_scada_list == null || !zy_scada_list.Any()) { return false; } var debug_zy_scada_file = Settings.ParasHelper.LocalFile.DataFolderDirectory + "\\" + "zy_scada_debug.txt"; if (File.Exists(debug_zy_scada_file)) { File.Delete(debug_zy_scada_file); } var temp_wl_dict = new Dictionary() { {"R3", 一输_老前池南侧液位}, {"R2", 一输_老前池北侧液位 }, {"R1", 一输_新前池液位}, {"RPump21", 二输21泵_泵井液位}, {"RPump22", 二输22泵_泵井液位}, {"RPump23", 二输23泵_泵井液位}, {"RPump24", 二输24泵_泵井液位}, {"RPump25", 二输25泵_泵井液位}, {"RPump26", 二输26泵_泵井液位}, {"RPump27", 二输27泵_泵井液位} }; var temp_pump_dict = new Dictionary() { {"Pump11", 一输11泵_运行状态}, {"Pump12", 一输12泵_运行状态}, {"Pump13", 一输13泵_运行状态}, {"Pump14", 一输14泵_运行状态}, {"Pump15", 一输15泵_运行状态}, {"Pump16", 一输16泵_运行状态}, {"Pump17", 一输17泵_运行状态}, {"Pump18", 一输18泵_运行状态}, {"R3", 一输_老前池南侧液位}, {"R2", 一输_老前池北侧液位 }, {"R1", 一输_新前池液位}, {"RPump21", 二输21泵_泵井液位}, {"RPump22", 二输22泵_泵井液位}, {"RPump23", 二输23泵_泵井液位}, {"RPump24", 二输24泵_泵井液位}, {"RPump25", 二输25泵_泵井液位}, {"RPump26", 二输26泵_泵井液位}, {"RPump27", 二输27泵_泵井液位}, {"Pump21", 二输21泵_运行状态}, {"Pump22", 二输22泵_运行状态}, {"Pump23", 二输23泵_运行状态}, {"Pump24", 二输24泵_运行状态}, {"Pump25", 二输25泵_运行状态}, {"Pump26", 二输26泵_运行状态}, {"Pump27", 二输27泵_运行状态} }; var data = new Dictionary>(); foreach (var zy_scada in zy_scada_list) { var code = zy_scada.Code; var tag = zy_scada.Tag; var time = zy_scada.Time.ToString("u"); var vals = zy_scada.Value.ToString() ?? ""; if (string.IsNullOrEmpty(code)) { if (temp_wl_dict.ContainsKey(tag)) { code = temp_wl_dict[tag]; } else if (temp_pump_dict.ContainsKey(tag)) { code = temp_pump_dict[tag]; vals = zy_scada.Value > 0 ? "1" : "0"; } } if (string.IsNullOrEmpty(code)) continue; data.Add(code, new Dictionary()); data[code]["key"] = tag; data[code]["time"] = time; data[code]["vals"] = vals; } var debug_zy_scada_dto = new ZyRealTimeDataDto(); debug_zy_scada_dto.data = data; debug_zy_scada_dto.msg = "测试文件"; var dto_json = JsonHelper.Object2Json(debug_zy_scada_dto); File.WriteAllText(debug_zy_scada_file, dto_json); return true; } #endregion #region 获取历史Scada /// /// 众毅历史数据 /// public class ZyHistoryDataDto { /// /// /// public string msg { get; set; } /// /// /// public List data { get; set; } /// /// /// public string status { get; set; } } /// /// 众毅历史数据 data /// public class ZyDataDto { /// /// /// public string dataMsg { get; set; } /// /// /// public List vals { get; set; } /// /// /// public string tagName { get; set; } } /// /// 获取泵累计运行时间(小时)字典 /// /// /// /// 统计日期间隔(天) /// 数据步长 1h(s:秒 m:分 h:小时 d:天) /// 数据值类型 first:每个间隔的第一个值 mean:每个间隔的平均值 /// public static string GetFlagCumulativeRunTimeDict(out Dictionary station1_flag_cumulative_run_time_dict, out Dictionary station2_flag_cumulative_run_time_dict, int date_interval = 30, string frequency = "1h", string type = "first") { station1_flag_cumulative_run_time_dict = new Dictionary(); station2_flag_cumulative_run_time_dict = new Dictionary(); if (!Settings.ParasHelper.ZyDocking.Enable) { return "ZyDocking 未启用"; } var url_prefix = Settings.ParasHelper.ZyDocking.HistoryScadaHttpUrl; if (string.IsNullOrEmpty(url_prefix)) { return "HistoryScadaHttpUrl 为空"; } var enter_time_format = "yyyy-MM-dd HH:mm:ss"; var travel_time_format = new System.Globalization.DateTimeFormatInfo() { ShortDatePattern = "yyyy-MM-dd'T'HH:mm:ss.SSS Z" }; ; var now_dt = DateTime.Now; var start_dt = now_dt.AddDays(-date_interval); var end_dt = now_dt; var start_time = start_dt.ToString(enter_time_format); var end_time = end_dt.ToString(enter_time_format); var tag_list = new List(); tag_list.AddRange(FlagCumulativeRunTimeMappingDict1.Keys); tag_list.AddRange(FlagCumulativeRunTimeMappingDict2.Keys); var measurement_max_count = 5; var measurements_list = new List(); for (int i = 0; i < tag_list.Count; i += measurement_max_count) { var tag_list_temp = tag_list.Skip(i).Take(measurement_max_count).ToList(); var measurements = Yw.Untity.StringListHelper.ToString(tag_list_temp); measurements_list.Add(measurements); } var log_str_builder = new StringBuilder(); var zy_scada_list_dict = new Dictionary>(); try { foreach (var measurements in measurements_list) { var url = $"{url_prefix}?" + $"startTime={start_time}&" + $"endTime={end_time}&" + $"type={type}&" + $"frequency={frequency}&" + $"measurements={measurements}"; log_str_builder.AppendLine($"历史数据请求:{url}"); var response_text = Yw.Untity.HttpRequestHelper.Get(url); var dto = JsonHelper.Json2Object(response_text); var zy_dada_dto_list = dto?.data; if (zy_dada_dto_list == null || !zy_dada_dto_list.Any()) { log_str_builder.AppendLine("无数据"); continue; } foreach (var zy_dada_dto in zy_dada_dto_list) { var tag = zy_dada_dto.tagName; var vlus = zy_dada_dto.vals; var zy_scada_list = new List(); foreach (var vlu in vlus) { var time_str = vlu[0]; var value_str = vlu[1]; if (!double.TryParse(value_str, out double value)) continue; var time = Convert.ToDateTime(time_str, travel_time_format).AddHours(-8); var zy_scada = new Model.ZyScada(); zy_scada.Time = time; zy_scada.Code = tag; zy_scada.Value = value; zy_scada.Tag = tag; zy_scada_list.Add(zy_scada); } zy_scada_list_dict.Add(tag, zy_scada_list); } } } catch (System.Exception ex) { log_str_builder.AppendLine(ex.Message); } foreach (var item in zy_scada_list_dict) { var tag = item.Key; var zy_scada_list = item.Value; if (zy_scada_list == null || !zy_scada_list.Any()) { continue; } var min_time = zy_scada_list.Min(x => x.Value); var max_time = zy_scada_list.Max(x => x.Value); var run_time = max_time - min_time ?? 0; if (FlagCumulativeRunTimeMappingDict1.ContainsKey(tag)) { var flag = FlagCumulativeRunTimeMappingDict1[tag]; var time = Math.Round(run_time / 60, 1); station1_flag_cumulative_run_time_dict.Add(flag, time); } else if (FlagCumulativeRunTimeMappingDict2.ContainsKey(tag)) { var flag = FlagCumulativeRunTimeMappingDict2[tag]; var time = Math.Round(run_time, 1); station2_flag_cumulative_run_time_dict.Add(flag, time); } } return log_str_builder.ToString(); } #endregion #region 获取调度算法入参 /// /// 获取泵站运行标志列表 /// /// 众毅Scada列表 /// 运行标志列表 1输水 /// 运行标志列表 2输水 public static void GetStationOpenFlagList(List zy_scada_list, out List station1_open_flag_list, out List station2_open_flag_list) { station1_open_flag_list = new List(); station2_open_flag_list = new List(); if (zy_scada_list == null || !zy_scada_list.Any()) return; foreach (var mapping in FlagRunStatusMappingDict1) { var flag = mapping.Key; var code = mapping.Value; var zy_scada = zy_scada_list.Find(x => x.Code == code); if (zy_scada != null && zy_scada.Value == 1) { station1_open_flag_list.Add(flag); } } foreach (var mapping in FlagRunStatusMappingDict2) { var flag = mapping.Key; var code = mapping.Value; var zy_scada = zy_scada_list.Find(x => x.Code == code); if (zy_scada != null && zy_scada.Value == 1) { station2_open_flag_list.Add(flag); } } } /// /// 获取泵进口水位字典 /// /// 众毅Scada列表 /// 泵进口水位字典 1输水 /// 泵进口水位字典 2输水 public static void GetFlagInletWaterLevelDict(List zy_scada_list, out Dictionary station1_flag_inlet_water_level_dict, out Dictionary station2_flag_inlet_water_level_dict) { station1_flag_inlet_water_level_dict = new Dictionary(); station2_flag_inlet_water_level_dict = new Dictionary(); foreach (var mapping in FlagInletWaterLevelMappingDict1) { var flag = mapping.Key; var code = mapping.Value; var water_level = 0d; var water_level_zy_scada = zy_scada_list?.Find(x => x.Code == code); if (water_level_zy_scada != null) { water_level = water_level_zy_scada.Value ?? 0; } station1_flag_inlet_water_level_dict.Add(flag, water_level); } foreach (var mapping in FlagInletWaterLevelMappingDict2) { var flag = mapping.Key; var code = mapping.Value; var water_level = 0d; var water_level_zy_scada = zy_scada_list?.Find(x => x.Code == code); if (water_level_zy_scada != null) { water_level = water_level_zy_scada.Value ?? 0; } station2_flag_inlet_water_level_dict.Add(flag, water_level); } } /// /// 获取泵站检修标志列表(0是正常,1是检修) /// /// 众毅Scada列表 /// 检修标志列表 1输水 /// 检修标志列表 2输水 public static void GetStationMaintenanceFlagList(List zy_scada_list, out List station1_maintenance_flag_list, out List station2_maintenance_flag_list) { station1_maintenance_flag_list = new List(); station2_maintenance_flag_list = new List(); if (zy_scada_list == null || !zy_scada_list.Any()) return; //1输水待补充 foreach (var mapping in FlagMaintenanceMappingDict2) { var flag = mapping.Key; var code = mapping.Value; var zy_scada = zy_scada_list.Find(x => x.Code == code); if (zy_scada != null && zy_scada.Value == 1) { station2_maintenance_flag_list.Add(flag); } } } #endregion } }