From d4dcfd4fbe579df07ad2a26e3639d939efa2619d Mon Sep 17 00:00:00 2001 From: shi_jq Date: Wed, 25 Feb 2026 17:53:09 +0800 Subject: [PATCH] =?UTF-8?q?0225=E6=9B=B4=E6=96=B0=E6=A8=A1=E6=9D=BF?= =?UTF-8?q?=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../setDeviceTitle.csv | 0 .../InverseTimeLimitVer6.xlsx | Bin .../InverseTimeLimit/table.files/filelist.xml | 0 .../InverseTimeLimit/table.files/image001.png | Bin .../InverseTimeLimit/table.files/image002.png | Bin .../InverseTimeLimit/table.files/sheet001.htm | 0 .../table.files/stylesheet.css | 0 .../InverseTimeLimit/table.files/tabstrip.htm | 0 .../data/InverseTimeLimit/table.htm | 0 .../data/NetMonite/ChanlPara.csv | 0 .../data/NetMonite/MyDataBase.db | Bin .../HM SG-A系列技术规格书.doc | Bin ...S智慧电力监控系统_用户手册.doc | Bin .../data/back_pixmap/1U管理机.png | Bin .../data/back_pixmap/EMS.png | Bin .../back_pixmap/EMS能量管理系统.png | Bin .../data/back_pixmap/LOGO-100x32.png | Bin .../data/back_pixmap/LOGO.gif | Bin .../data/back_pixmap/MainPic.png | Bin .../data/back_pixmap/PCS-9611.png | Bin .../data/back_pixmap/PM8000.png | Bin .../data/back_pixmap/SOC上限.png | Bin .../data/back_pixmap/SOC下限.png | Bin .../data/back_pixmap/SOH.png | Bin .../data/back_pixmap/WEB服务器.png | Bin .../data/back_pixmap/arrowDown.png | Bin .../data/back_pixmap/arrowUp.png | Bin .../data/back_pixmap/backgroup.png | Bin .../data/back_pixmap/bms.png | Bin .../data/back_pixmap/board 1.png | Bin .../data/back_pixmap/board.png | Bin .../data/back_pixmap/bus-1.png | Bin .../data/back_pixmap/check.png | Bin .../data/back_pixmap/checked.png | Bin .../data/back_pixmap/datebackground1.png | Bin .../data/back_pixmap/datebackground2.png | Bin .../data/back_pixmap/details_img_BMS.png | Bin .../data/back_pixmap/details_img_PCS_n.png | Bin .../data/back_pixmap/disableCheck.png | Bin .../data/back_pixmap/down.png | Bin .../data/back_pixmap/epm.png | Bin .../data/back_pixmap/footer_background.png | Bin .../data/back_pixmap/frame.png | Bin .../data/back_pixmap/groupbox.png | Bin .../data/back_pixmap/header_background.png | Bin .../data/back_pixmap/hmlogo-white.png | Bin .../data/back_pixmap/hmlogo.png | Bin .../data/back_pixmap/home_back.png | Bin .../data/back_pixmap/home_back_2.png | Bin .../data/back_pixmap/home_back_3.png | Bin .../data/back_pixmap/home_btn.png | Bin .../data/back_pixmap/home_btn_site_dot_b.png | Bin .../data/back_pixmap/home_btn_site_dot_r.png | Bin .../data/back_pixmap/home_btn_site_left_b.png | Bin .../data/back_pixmap/home_btn_site_left_r.png | Bin .../data/back_pixmap/home_btn_site_line_b.png | Bin .../data/back_pixmap/home_btn_site_line_r.png | Bin .../back_pixmap/home_btn_site_right_b.png | Bin .../back_pixmap/home_btn_site_right_r.png | Bin .../data/back_pixmap/icon_BMS.png | Bin .../data/back_pixmap/icon_PCS.png | Bin .../data/back_pixmap/icon_SOC.png | Bin .../data/back_pixmap/icon_Select.png | Bin .../data/back_pixmap/icon_alarm.png | Bin .../data/back_pixmap/icon_bms监控.png | Bin .../data/back_pixmap/icon_bms监控_sel.png | Bin .../data/back_pixmap/icon_dev_ng.png | Bin .../data/back_pixmap/icon_dev_ok.png | Bin .../data/back_pixmap/icon_down.png | Bin .../data/back_pixmap/icon_down_disable.png | Bin .../data/back_pixmap/icon_more.png | Bin .../data/back_pixmap/icon_out.png | Bin .../data/back_pixmap/icon_pcs监控.png | Bin .../data/back_pixmap/icon_pcs监控_sel.png | Bin .../data/back_pixmap/icon_register.png | Bin .../data/back_pixmap/icon_up.png | Bin .../data/back_pixmap/icon_up_disable.png | Bin .../data/back_pixmap/icon_user.png | Bin .../data/back_pixmap/icon_一览表.png | Bin .../data/back_pixmap/icon_两票管理.png | Bin .../data/back_pixmap/icon_主接线图.png | Bin .../back_pixmap/icon_主接线图_sel.png | Bin .../data/back_pixmap/icon_事故追忆.png | Bin .../data/back_pixmap/icon_事故追忆2.png | Bin .../data/back_pixmap/icon_交接班.png | Bin .../data/back_pixmap/icon_仓库.png | Bin .../data/back_pixmap/icon_任务.png | Bin .../data/back_pixmap/icon_值班管理.png | Bin .../data/back_pixmap/icon_储能单元.png | Bin .../back_pixmap/icon_储能单元_sel.png | Bin .../data/back_pixmap/icon_充电量.png | Bin .../data/back_pixmap/icon_关于.png | Bin .../data/back_pixmap/icon_冷机.png | Bin .../data/back_pixmap/icon_功率.png | Bin .../data/back_pixmap/icon_功率总.png | Bin .../data/back_pixmap/icon_区域.png | Bin .../data/back_pixmap/icon_协调控制器.png | Bin .../data/back_pixmap/icon_历史事件.png | Bin .../back_pixmap/icon_历史事件_sel.png | Bin .../data/back_pixmap/icon_变电站.png | Bin .../data/back_pixmap/icon_变电站2.png | Bin .../data/back_pixmap/icon_告警分析.png | Bin .../back_pixmap/icon_告警分析_sel.png | Bin .../data/back_pixmap/icon_告警管理.png | Bin .../data/back_pixmap/icon_告警统计.png | Bin .../data/back_pixmap/icon_地图.png | Bin .../data/back_pixmap/icon_定值管理.png | Bin .../data/back_pixmap/icon_实时告警.png | Bin .../back_pixmap/icon_实时告警_sel.png | Bin .../data/back_pixmap/icon_实时数据.png | Bin .../data/back_pixmap/icon_审核.png | Bin .../data/back_pixmap/icon_屏蔽.png | Bin .../data/back_pixmap/icon_工作票.png | Bin .../data/back_pixmap/icon_布局.png | Bin .../data/back_pixmap/icon_总有功.png | Bin .../data/back_pixmap/icon_总览.png | Bin .../data/back_pixmap/icon_报表.png | Bin .../data/back_pixmap/icon_报表浏览.png | Bin .../data/back_pixmap/icon_报表管理.png | Bin .../back_pixmap/icon_报表管理_sel.png | Bin .../data/back_pixmap/icon_报表编辑.png | Bin .../data/back_pixmap/icon_拓扑图.png | Bin .../data/back_pixmap/icon_挂牌.png | Bin .../data/back_pixmap/icon_排班.png | Bin .../data/back_pixmap/icon_接线图.png | Bin .../data/back_pixmap/icon_控制策略.png | Bin .../back_pixmap/icon_控制策略_sel.png | Bin .../data/back_pixmap/icon_操作票.png | Bin .../data/back_pixmap/icon_放电量.png | Bin .../data/back_pixmap/icon_故障录波.png | Bin .../data/back_pixmap/icon_文档配置.png | Bin .../back_pixmap/icon_文档配置_sel.png | Bin .../data/back_pixmap/icon_日志-1.png | Bin .../data/back_pixmap/icon_日志.png | Bin .../data/back_pixmap/icon_曲线.png | Bin .../data/back_pixmap/icon_机柜.png | Bin .../data/back_pixmap/icon_框.png | Bin .../data/back_pixmap/icon_模拟操作.png | Bin .../data/back_pixmap/icon_消防.png | Bin .../data/back_pixmap/icon_温度.png | Bin .../data/back_pixmap/icon_点修改.png | Bin .../data/back_pixmap/icon_用户管理.png | Bin .../back_pixmap/icon_用户管理_sel.png | Bin .../data/back_pixmap/icon_用户组管理.png | Bin .../data/back_pixmap/icon_电压.png | Bin .../data/back_pixmap/icon_电池堆数据.png | Bin .../data/back_pixmap/icon_电池簇数据.png | Bin .../data/back_pixmap/icon_电流-1.png | Bin .../data/back_pixmap/icon_电流.png | Bin .../data/back_pixmap/icon_监控.png | Bin .../data/back_pixmap/icon_监控线路.png | Bin .../data/back_pixmap/icon_监控首页.png | Bin .../back_pixmap/icon_监控首页_sel.png | Bin .../data/back_pixmap/icon_站点.png | Bin .../data/back_pixmap/icon_策略.png | Bin .../data/back_pixmap/icon_箱变测控.png | Bin .../data/back_pixmap/icon_系统设置.png | Bin .../back_pixmap/icon_系统设置_sel.png | Bin .../data/back_pixmap/icon_网络.png | Bin .../data/back_pixmap/icon_网络拓扑.png | Bin .../data/back_pixmap/icon_联动.png | Bin .../data/back_pixmap/icon_能耗分析.png | Bin .../data/back_pixmap/icon_能耗总览.png | Bin .../data/back_pixmap/icon_能耗报表.png | Bin .../data/back_pixmap/icon_表清单.png | Bin .../data/back_pixmap/icon_计划.png | Bin .../data/back_pixmap/icon_设备信息.png | Bin .../data/back_pixmap/icon_详细数据.png | Bin .../back_pixmap/icon_详细数据_sel.png | Bin .../data/back_pixmap/icon_趋势分析.png | Bin .../back_pixmap/icon_趋势分析_sel.png | Bin .../data/back_pixmap/icon_趋势浏览.png | Bin .../data/back_pixmap/icon_轮询.png | Bin .../data/back_pixmap/icon_轮询配置.png | Bin .../data/back_pixmap/icon_辅助设备.png | Bin .../back_pixmap/icon_辅助设备_sel.png | Bin .../data/back_pixmap/icon_运维首页.png | Bin .../data/back_pixmap/icon_运行简报.png | Bin .../data/back_pixmap/icon_通道设置.png | Bin .../back_pixmap/icon_通道设置_sel.png | Bin .../data/back_pixmap/icon_逻辑编程.png | Bin .../data/back_pixmap/icon_配电系统.png | Bin .../data/back_pixmap/icon_需量.png | Bin .../data/back_pixmap/icon_项目.png | Bin .../data/back_pixmap/icon_顺控.png | Bin .../data/back_pixmap/icon_顺控执行.png | Bin .../data/back_pixmap/icon_首页.png | Bin .../data/back_pixmap/index.png | Bin .../data/back_pixmap/index_background.png | Bin .../data/back_pixmap/item_back.png | Bin .../data/back_pixmap/item_icon.png | Bin .../data/back_pixmap/kehua logo.png | Bin .../data/back_pixmap/load.gif | Bin .../data/back_pixmap/logo.png | Bin .../data/back_pixmap/logo_bg.png | Bin .../data/back_pixmap/logo_line.png | Bin .../data/back_pixmap/mute.png | Bin .../data/back_pixmap/nav_background.png | Bin .../data/back_pixmap/overlook.gif | Bin .../data/back_pixmap/pause.png | Bin .../data/back_pixmap/pcs.png | Bin .../data/back_pixmap/pcs_3d.png | Bin .../data/back_pixmap/play.png | Bin .../data/back_pixmap/pointer 1.png | Bin .../data/back_pixmap/pointer.png | Bin .../data/back_pixmap/rec_1.png | Bin .../data/back_pixmap/rec_1_arrow.png | Bin .../data/back_pixmap/relyez-title.png | Bin .../data/back_pixmap/relyez-title_zh.png | Bin .../data/back_pixmap/selected.png | Bin .../data/back_pixmap/sound.png | Bin .../data/back_pixmap/title1_sel.png | Bin .../data/back_pixmap/title_arrow.png | Bin .../data/back_pixmap/title_nor.png | Bin .../data/back_pixmap/top.png | Bin .../data/back_pixmap/top_0.png | Bin .../data/back_pixmap/top_1.png | Bin .../data/back_pixmap/uncheck.png | Bin .../data/back_pixmap/unchecked.png | Bin .../data/back_pixmap/unselect.png | Bin .../data/back_pixmap/user.png | Bin .../data/back_pixmap/zoomfit.png | Bin .../data/back_pixmap/zoomin.png | Bin .../data/back_pixmap/zoomout.png | Bin .../data/back_pixmap/一体机.png | Bin .../data/back_pixmap/一体机背景.png | Bin .../data/back_pixmap/上一帧.png | Bin .../data/back_pixmap/上一页.png | Bin .../data/back_pixmap/下一帧.png | Bin .../data/back_pixmap/下一页.png | Bin .../data/back_pixmap/中压进线柜.png | Bin .../data/back_pixmap/主机.png | Bin .../data/back_pixmap/事件.png | Bin .../data/back_pixmap/事故列表.png | Bin .../data/back_pixmap/云动力系统.png | Bin .../data/back_pixmap/交流器.png | Bin .../data/back_pixmap/产品集合.png | Bin .../data/back_pixmap/今日充电量.png | Bin .../data/back_pixmap/今日放电量.png | Bin .../data/back_pixmap/仪表.png | Bin .../data/back_pixmap/停止.png | Bin .../data/back_pixmap/储能回路单元.png | Bin .../data/back_pixmap/充放电状态.png | Bin .../data/back_pixmap/全屏截图.png | Bin .../data/back_pixmap/北_斜.png | Bin .../data/back_pixmap/区变.png | Bin .../data/back_pixmap/区域截图.png | Bin .../data/back_pixmap/协调控制器.png | Bin .../data/back_pixmap/单体_soc.png | Bin .../data/back_pixmap/单体_电池.png | Bin .../back_pixmap/单体温度_极差值.png | Bin .../back_pixmap/单体电压_极差值.png | Bin .../data/back_pixmap/南_斜.png | Bin .../data/back_pixmap/南_正.png | Bin .../data/back_pixmap/变压器柜.png | Bin .../data/back_pixmap/可充电量.png | Bin .../data/back_pixmap/可放电量.png | Bin .../data/back_pixmap/向右线-.png | Bin .../data/back_pixmap/向右线.png | Bin .../data/back_pixmap/向左线.png | Bin .../data/back_pixmap/告警.png | Bin .../data/back_pixmap/告警中.png | Bin .../data/back_pixmap/告警追忆.png | Bin .../back_pixmap/四层柴发机房1-斜.png | Bin .../data/back_pixmap/存储服务器.png | Bin .../back_pixmap/实时监控_充电量.png | Bin .../back_pixmap/实时监控_放电量.png | Bin .../data/back_pixmap/导航栏.png | Bin .../data/back_pixmap/就地.png | Bin .../data/back_pixmap/工作站.png | Bin .../data/back_pixmap/快进.png | Bin .../data/back_pixmap/慢放.png | Bin .../data/back_pixmap/报警.png | Bin .../data/back_pixmap/指针.png | Bin .../data/back_pixmap/接线图-选中.png | Bin .../data/back_pixmap/接线图.png | Bin .../data/back_pixmap/推图.png | Bin .../data/back_pixmap/推图old.png | Bin .../data/back_pixmap/推图中.png | Bin .../data/back_pixmap/推图中old.png | Bin .../data/back_pixmap/摄像头.png | Bin .../data/back_pixmap/整流柜.png | Bin .../data/back_pixmap/更多-选中.png | Bin .../data/back_pixmap/更多.png | Bin .../data/back_pixmap/柴发.png | Bin .../back_pixmap/格力电子鸟瞰图.jpg | Bin .../data/back_pixmap/正向隔离装置.png | Bin .../data/back_pixmap/消防_主电状态.png | Bin .../data/back_pixmap/消防_分区数量.png | Bin .../data/back_pixmap/消防_备电状态.png | Bin .../data/back_pixmap/消防_瓶头阀.png | Bin .../data/back_pixmap/消防_警铃.png | Bin .../data/back_pixmap/消防_通讯状态.png | Bin .../data/back_pixmap/液冷柜内部.png | Bin .../data/back_pixmap/温度制冷.png | Bin .../data/back_pixmap/温度制冷_目标.png | Bin .../data/back_pixmap/温度制冷_设定.png | Bin .../data/back_pixmap/温度制热.png | Bin .../data/back_pixmap/温度制热_目标.png | Bin .../data/back_pixmap/温度制热_设定.png | Bin .../data/back_pixmap/温度告警.png | Bin .../data/back_pixmap/温度告警_目标.png | Bin .../data/back_pixmap/温度告警_设定.png | Bin .../data/back_pixmap/点标签.png | Bin .../data/back_pixmap/电度表.png | Bin .../data/back_pixmap/电池.png | Bin .../data/back_pixmap/电池堆_soc.png | Bin .../back_pixmap/电池堆_健康状态.png | Bin .../data/back_pixmap/电池堆_电压.png | Bin .../data/back_pixmap/电池堆_电流.png | Bin .../data/back_pixmap/电网.png | Bin .../data/back_pixmap/登录-密码-1.png | Bin .../data/back_pixmap/登录-密码.png | Bin .../data/back_pixmap/登录-用户-1.png | Bin .../data/back_pixmap/登录-用户.png | Bin .../data/back_pixmap/登录弹窗背景.png | Bin .../data/back_pixmap/登录背景.png | Bin .../data/back_pixmap/登录背景2.png | Bin .../data/back_pixmap/白灯.png | Bin .../data/back_pixmap/监控平台-选中.png | Bin .../data/back_pixmap/监控平台.png | Bin .../data/back_pixmap/监控服务器.png | Bin .../data/back_pixmap/站内3D.png | Bin .../data/back_pixmap/箭头.png | Bin .../data/back_pixmap/箱变保护测控.png | Bin .../data/back_pixmap/簇SOC_极差值.png | Bin .../data/back_pixmap/簇电压_极差值.png | Bin .../data/back_pixmap/累计充电量.png | Bin .../data/back_pixmap/累计放电量.png | Bin .../data/back_pixmap/红灯.png | Bin .../data/back_pixmap/绿灯.png | Bin .../data/back_pixmap/网络交换机.png | Bin .../data/back_pixmap/背景.png | Bin .../data/back_pixmap/背景_light.png | Bin .../data/back_pixmap/背景_unuse.png | Bin .../data/back_pixmap/负载.png | Bin .../data/back_pixmap/轮询.png | Bin .../data/back_pixmap/辅助设备-pcs.png | Bin .../data/back_pixmap/辅助设备-消防.png | Bin .../back_pixmap/辅助设备-温湿器.png | Bin .../data/back_pixmap/辅助设备-电表.png | Bin .../data/back_pixmap/远信云平台.png | Bin .../data/back_pixmap/远方.png | Bin .../data/back_pixmap/退出.png | Bin .../data/back_pixmap/退出弹窗背景.png | Bin .../back_pixmap/鄂州机场平面图.png | Bin .../data/back_pixmap/铜排监测-选中.png | Bin .../data/back_pixmap/铜排监测.png | Bin .../data/back_pixmap/防火墙.png | Bin .../data/back_pixmap/额定功率.png | Bin .../data/back_pixmap/额定容量.png | Bin .../data/back_pixmap/馈线柜.png | Bin .../data/back_pixmap/首页-选中.png | Bin .../data/back_pixmap/首页.png | Bin .../data/back_pixmap/首页底图.jpg | Bin .../data/back_pixmap/高压柜.png | Bin .../data/back_pixmap/黄灯.png | Bin .../data/config/db_his_data_srv_cfg.xml | 0 .../data/config/db_manager_cfg.xml | 4 + .../data/config/pathallow.xml | 0 .../data/config/变压器.time | 0 .../config61850/61850ImportCfg-高厂变.xlsx | Bin .../data/config61850/61850ImportCfg.xlsx | Bin .../继保间/61850ImportCfg-ECS.xlsx | Bin .../data/config61850/继保间/FBAP343.cid | 0 .../data/config61850/继保间/FBAP5.cid | 0 .../data/config61850/继保间/FBAP643.cid | 0 .../data/config61850/继保间/FBBP343.cid | 0 .../data/config61850/继保间/FBBP5.cid | 0 .../data/config61850/继保间/FBBP643.cid | 0 .../data/config61850/继保间/FBCCK.cid | 0 .../data/config61850/继保间/FBCFDL.cid | 0 .../data/config61850/继保间/XLCK.cid | 0 .../data/config61850/继保间/XLP543.cid | 0 .../高厂变/61850ImportCfg-高厂变.xlsx | Bin .../data/config61850/高厂变}/AH101.cid | 0 .../data/config61850/高厂变/AH102.cid | 0 .../data/config61850/高厂变/AH103.cid | 0 .../data/config61850/高厂变/AH104.cid | 0 .../data/config61850/高厂变/AH105.cid | 0 .../data/config61850/高厂变/AH106.cid | 0 .../data/config61850/高厂变/AH107.cid | 0 .../data/config61850/高厂变/AH109.cid | 0 .../data/config61850/高厂变/AH109.icd | 0 .../data/config61850/高厂变/AH110.cid | 0 .../data/config61850/高厂变/AH111.cid | 0 .../data/config61850/高厂变/AH112.cid | 0 .../data/config61850/高厂变/AH113.cid | 0 .../data/config61850/高厂变/AH114.cid | 0 .../data/config61850/高厂变/AH114.icd | 0 .../data/config61850/高厂变/AH115.cid | 0 .../data/config61850/高厂变/AH115.icd | 0 .../data/config61850/高厂变/AH201.cid | 0 .../data/config61850/高厂变/AH202.cid | 0 .../data/config61850/高厂变/AH203.cid | 0 .../data/config61850/高厂变/AH204.cid | 0 .../data/config61850/高厂变/AH205.cid | 0 .../data/config61850/高厂变/AH205.icd | 0 .../data/config61850/高厂变/AH206.cid | 0 .../data/config61850/高厂变/AH207.cid | 0 .../data/config61850/高厂变/AH209.cid | 0 .../data/config61850/高厂变/AH209.icd | 0 .../data/config61850/高厂变/AH210.cid | 0 .../data/config61850/高厂变/AH211.cid | 0 .../data/config61850/高厂变/AH212.cid | 0 .../data/config61850/高厂变/AH213.cid | 0 .../data/config61850/高厂变/AH215.cid | 0 .../data/config61850/高厂变/AH215.icd | 0 .../data/fbd_designer/AGC功率分配.xml | 0 .../data/fbd_designer/AGC功率分配1-50.xml | 0 .../data/fbd_designer/alarm_push_test.xml | 0 .../data/fbd_designer/time_trigger.xml | 0 .../data/fbd_designer/告警策略.xml | 0 .../data/fes/EMS_osicfg.xml | 0 .../data/fes/PSCADA_osicfg.xml | 0 .../data/fes/SPMS_osicfg.xml | 0 .../data/fes/cdts.xml | 0 .../data/fes/fesConfig.xml | 0 .../data/fes/fespartdatazf.xml | 0 .../data/fes/hmjs104.xml | 0 .../data/fes/iec101s.xml | 0 .../data/fes/iec103.xml | 0 .../data/fes/iec104.xml | 0 .../data/fes/iec104s.xml | 0 .../data/fes/iec61850_clientV3.xml | 0 .../data/fes/khbas.xml | 0 .../data/fes/logcfg.xml | 0 .../data/fes/mmsconfig.ini | 0 .../data/fes/modbus_rtu_dt.xml | 0 .../data/fes/modbus_rtu_s.xml | 0 .../data/fes/modbus_tcp_mz.xml | 0 .../data/fes/modbus_tcp_s.xml | 0 .../data/fes/modbus_tcp_s_V2.xml | 0 .../data/fes/modbustcps.xml | 0 .../data/fes/mqtt_topic_cfg58.csv | 0 .../data/fes/mqtt_yxCloud.xml | 0 .../data/fes/siemens103_tcp.xml | 0 .../data/fes/snmpWiseWay3.xml | 0 .../data/fes/snmpv3.xml | 0 .../data/fes/sqlserver_s.xml | 0 .../data/fes/wfudpcdt.xml | 0 .../data/fes/yxcloud_mqtt_wn.xml | 0 .../data/icon/NewCB.ilx | 0 .../data/icon/NewCB2.ilx | 0 .../data/icon/三卷变YYV.ilx | 0 .../data/icon/三卷变压器.ilx | 0 .../data/icon/三相电压.ilx | 0 .../data/icon/三相电流功率.ilx | 0 .../data/icon/三角形.ilx | 0 .../两卷变压器三角形三角形.ilx | 0 .../icon/两卷变压器三角形星形.ilx | 0 .../icon/两卷变压器星形三角形.ilx | 0 .../data/icon/中压CT.ilx | 0 .../data/icon/中压CTs.ilx | 0 .../data/icon/中压PT.ilx | 0 .../data/icon/中压PT_刀闸.ilx | 0 .../data/icon/中压PT_反.ilx | 0 .../data/icon/中压PTs.ilx | 0 .../data/icon/中压母联.ilx | 0 .../data/icon/中压母联_刀闸.ilx | 0 .../data/icon/中压母联_双刀闸.ilx | 0 .../data/icon/中压母联s.ilx | 0 .../data/icon/中压进线.ilx | 0 .../data/icon/中压进线H.ilx | 0 .../data/icon/中压进线H_刀闸.ilx | 0 .../data/icon/中压进线H_双刀闸.ilx | 0 .../data/icon/中压进线Hs.ilx | 0 .../data/icon/中压隔离.ilx | 0 .../data/icon/中压隔离_刀闸.ilx | 0 .../data/icon/中压隔离s.ilx | 0 .../data/icon/中压馈线.ilx | 0 .../data/icon/中压馈线H_刀闸.ilx | 0 .../data/icon/中压馈线_刀闸.ilx | 0 .../data/icon/中压馈线_双刀闸.ilx | 0 .../data/icon/中压馈线s.ilx | 0 .../data/icon/主备状态.ilx | 0 .../data/icon/主电状态.ilx | 0 .../data/icon/仪表盘.ilx | 0 .../data/icon/仪表通讯.ilx | 0 .../data/icon/低压开关.ilx | 0 .../data/icon/低压断路器.ilx | 0 .../data/icon/低压断路器_不可控.ilx | 0 .../data/icon/低压进线.ilx | 0 .../data/icon/低压馈线.ilx | 0 .../data/icon/低压馈线H.ilx | 0 .../data/icon/低压馈线H_接触器.ilx | 0 .../data/icon/低压马达.ilx | 0 .../data/icon/光字牌.ilx | 0 .../data/icon/刀闸.ilx | 0 .../data/icon/分裂电抗器.ilx | 0 .../data/icon/压板.ilx | 0 .../data/icon/发电机.ilx | 0 .../data/icon/四卷变压器_横.ilx | 0 .../data/icon/四卷变压器_竖.ilx | 0 .../data/icon/带熔断器刀闸.ilx | 0 .../data/icon/带电指示器.ilx | 0 .../data/icon/快速接地刀.ilx | 0 .../data/icon/手车_上.ilx | 0 .../data/icon/手车_下.ilx | 0 .../data/icon/把手.ilx | 0 .../data/icon/投入退出.ilx | 0 .../data/icon/挂牌.ilx | 0 .../data/icon/探测器状态.ilx | 0 .../data/icon/接地.ilx | 0 .../data/icon/接地刀闸.ilx | 0 .../data/icon/接触器.ilx | 0 .../data/icon/摄像头.ilx | 0 .../data/icon/数字量点标签.ilx | 0 .../data/icon/断路器 - 副本.ilx | 0 .../data/icon/断路器.ilx | 0 .../data/icon/断路器_控制.ilx | 0 .../data/icon/模拟量点标签.ilx | 0 .../data/icon/横向接地刀闸.ilx | 0 .../data/icon/母线电压.ilx | 0 .../data/icon/母联.ilx | 0 .../data/icon/测控_远方状态.ilx | 0 .../data/icon/牵引变压器_四卷.ilx | 0 .../data/icon/牵引变压器_横.ilx | 0 .../data/icon/牵引变压器_竖.ilx | 0 .../data/icon/状态3D_白黄.ilx | 0 .../data/icon/状态3D_绿红.ilx | 0 .../data/icon/状态_红绿蓝.ilx | 0 .../data/icon/电动机.ilx | 0 .../data/icon/电压互感器PT.ilx | 0 .../data/icon/电压互感器三绕组.ilx | 0 .../data/icon/电压互感器两绕组.ilx | 0 .../data/icon/电压互感器四绕组.ilx | 0 .../data/icon/电容.ilx | 0 .../data/icon/电容器.ilx | 0 .../data/icon/电抗器.ilx | 0 .../data/icon/电机.ilx | 0 .../data/icon/电流互感器.ilx | 0 .../data/icon/电缆.ilx | 0 .../data/icon/硬压板.ilx | 0 .../data/icon/竖向.ilx | 0 .../data/icon/装置_通讯状态.ilx | 0 .../data/icon/调频状态.ilx | 0 .../data/icon/负荷开关.ilx | 0 .../data/icon/转换开关3D_远方就地.ilx | 0 .../data/icon/转换开关_投入退出.ilx | 0 .../data/icon/转换开关_联锁解锁.ilx | 0 .../data/icon/转换开关_远方就地.ilx | 0 .../icon/转换开关_远方就地退出.ilx | 0 .../data/icon/运行停止.ilx | 0 .../data/icon/运行状态.ilx | 8 + .../data/icon/进线.ilx | 0 .../data/icon/远方就地.ilx | 0 .../data/icon/远方就地_LR.ilx | 0 .../data/icon/通信状态字描述.ilx | 0 .../data/icon/通断状态.ilx | 0 .../data/icon/通用状态.ilx | 0 .../data/icon/通用状态无效.ilx | 0 .../data/icon/通讯状态.ilx | 0 .../data/icon/通道状态.ilx | 0 .../data/icon/避雷器.ilx | 0 .../data/icon/隔离开关.ilx | 0 .../data/icon/静止无功补偿器.ilx | 0 .../data/icon/馈线.ilx | 0 .../data/icon/高压PT.ilx | 0 .../data/icon/高压PT2.ilx | 0 .../data/icon/高压母联.ilx | 0 .../data/icon/高压进线.ilx | 0 .../data/icon/高压避雷器.ilx | 0 .../data/icon/高压馈线.ilx | 0 .../data/icon/高压馈线2.ilx | 0 .../data/mod_instance/P53A_imput temp.xlsx | Bin 0 -> 10162 bytes .../data/model/ButtonGroupWidget.json | 0 .../data/model/DevGroupLock.json | 0 .../data/model/GradModel.ini | 0 .../data/model/NavigationWidget.json | 0 .../data/model/alarm_color_define.xml | 0 .../data/model/colorConfig.xml | 477 + .../data/model/hmi.json | 0 .../data/model/hmiRoll.xml | 0 .../data/model/iconAction.json | 5 + .../data/model/publish.json | 0 .../data/model/qt_zh_CN.qm | Bin .../data/model/report.xml | 0 .../data/model/retriever.xml | 0 .../data/model/style.xml | 0 .../data/model/switchSetting.xml | 0 .../data/model/toolbox.xml | 148 + .../data/model/toolopen.xml | 0 .../data/model/trendgraph.xml | 0 .../data/model/wordlist.txt | 0 .../data/modelstudio/ModelConfig.ini | 0 .../data/pic/index.glx | 0 .../10kV厂用电主接线图.glx | 595 + .../110kV发电三期主接线图.glx | 413 + .../实时监控/低压厂用电接线图.glx | 0 .../实时监控/全厂串口通讯图.glx | 4 +- .../data/pic/实时监控/全厂潮流图.glx | 0 .../实时监控/全厂网络通道图.glx | 6 +- .../data/pic/实时监控/全厂骨干网.glx | 0 .../data/pic/实时监控/四宫格.glx | 0 .../实时监控/数据表格控件模板.glx | 0 .../data/pic/实时监控/母线测温.glx | 0 .../data/pic/实时监控/站内布置图.glx | 0 .../继保间/1#直流屏监控图.glx | 0 .../继保间/110kV电子间/110kVXLP.glx | 0 .../110kV电子间/2AS同期装置.glx | 0 .../BT9301上海利乾/BT9301A-4n.glx | 0 .../BT9301上海利乾/BT9301G-1n.glx | 0 .../BT9301上海利乾/BT9301G-3n.glx | 0 .../继保间/110kV电子间/CKP.glx | 0 .../继保间/110kV电子间/FBPC.glx | 0 .../继保间/110kV电子间/冷风机.glx | 0 .../110kV电子间/发变组测控A屏.glx | 0 .../110kV电子间/发变组测控B屏.glx | 0 .../继保间/110kV电子间/微机励磁.glx | 0 .../继保间/110kV电子间/快切.glx | 0 .../继保间/2#直流屏监控图.glx | 0 .../实时监控/继保间/UPS监控图.glx | 0 .../继保间/全厂网络架构图.glx | 0 .../继保间/小电流选线监控.glx | 0 .../pic/实时监控/继保间/快切.glx | 0 .../继保间/汇川凝泵变频器.glx | 0 .../实时监控/继保间/消谐装置.glx | 0 .../data/pic/实时监控/首页-old.glx | 0 .../data/pic/实时监控/首页.glx | 0 .../data/pic/界面框架/BatchOperation.glx | 0 .../data/pic/界面框架/Batchperation.glx | 0 .../data/pic/界面框架/alarm_window.glx | 8 +- .../pic/界面框架/alarm_window_dialog.glx | 0 .../data/pic/界面框架/event_window.glx | 8 +- .../data/pic/界面框架/frame_footer.glx | 0 .../data/pic/界面框架/frame_header.glx | 40 +- .../pic/界面框架/frame_navigation.glx | 0 .../界面框架/frame_navigation_more.glx | 0 .../frame_navigation_realtime.glx | 0 .../data/pic/界面框架/interval_meter.glx | 498 + .../data/pic/界面框架/interval_relay.glx | 502 + .../pic/界面框架/panel_accuml_ctrl.glx | 52 +- .../pic/界面框架/panel_alarm_push.glx | 0 .../pic/界面框架/panel_analog_set.glx | 1555 + .../pic/界面框架/panel_const_read.glx | 0 .../pic/界面框架/panel_const_switch.glx | 0 .../pic/界面框架/panel_ctrl_verify.glx | 0 .../pic/界面框架/panel_direct_ctrl.glx | 2086 ++ .../pic/界面框架/panel_direct_ctrl0.glx | 0 .../pic/界面框架/panel_direct_ctrl1.glx | 0 .../pic/界面框架/panel_direct_ctrl2.glx | 0 .../pic/界面框架/panel_group_limit.glx | 0 .../pic/界面框架/panel_group_maint.glx | 0 .../pic/界面框架/panel_group_more.glx | 0 .../data/pic/界面框架/panel_hint_info.glx | 0 .../data/pic/界面框架/panel_login.glx | 0 .../pic/界面框架/panel_login_exit.glx | 0 .../pic/界面框架/panel_login_lock.glx | 0 .../pic/界面框架/panel_oper_verify.glx | 0 .../pic/界面框架/panel_opt_ticket.glx | 0 .../pic/界面框架/panel_point_lock.glx | 0 .../pic/界面框架/panel_recall_alarm.glx | 0 .../pic/界面框架/panel_recall_list.glx | 0 .../pic/界面框架/panel_recall_toolbar.glx | 0 .../pic/界面框架/panel_remote_ctrl.glx | 184 +- .../pic/界面框架/panel_reset_ctrl.glx | 0 .../pic/界面框架/panel_roll_switch.glx | 0 .../pic/界面框架/panel_tag_operate.glx | 50 +- .../pic/界面框架/panel_ticket_manage.glx | 0 .../界面框架/panel_transformer_ctrl.glx | 0 .../pic/界面框架/panel_trend_curve.glx | 0 .../pic/界面框架/panel_video_linkage.glx | 0 .../pic/界面框架/panel_video_paly.glx | 0 .../pic/界面框架/panel_video_viewer.glx | 0 .../pic/界面框架/panel_video_wall.glx | 0 .../data/pic/界面框架/reportdesign.glx | 0 .../data/pic/界面框架/reportview.glx | 0 .../pic/界面框架/view_alarm_Statis.glx | 0 .../pic/界面框架/view_alarm_analyze.glx | 0 .../pic/界面框架/view_alarm_manage.glx | 0 .../pic/界面框架/view_alarm_shield.glx | 0 .../pic/界面框架/view_alarm_strategy.glx | 0 .../data/pic/界面框架/view_bi_browser.glx | 0 .../data/pic/界面框架/view_bi_design.glx | 0 .../data/pic/界面框架/view_bi_view.glx | 0 .../pic/界面框架/view_chan_status.glx | 0 .../pic/界面框架/view_const_curves.glx | 0 .../pic/界面框架/view_const_groupsw.glx | 0 .../pic/界面框架/view_const_manage.glx | 0 .../pic/界面框架/view_device_list.glx | 0 .../data/pic/界面框架/view_doc_manage.glx | 0 .../pic/界面框架/view_duty_manger.glx | 0 .../pic/界面框架/view_fault_record.glx | 0 .../data/pic/界面框架/view_hand_panel.glx | 0 .../pic/界面框架/view_invtime_curve.glx | 0 .../data/pic/界面框架/view_linkage.glx | 0 .../data/pic/界面框架/view_maint_list.glx | 0 .../data/pic/界面框架/view_media.glx | 0 .../pic/界面框架/view_recall_setting.glx | 0 .../pic/界面框架/view_robot_linkage.glx | 0 .../pic/界面框架/view_roll_setting.glx | 0 .../data/pic/界面框架/view_run_report.glx | 0 .../data/pic/界面框架/view_sequence.glx | 0 .../pic/界面框架/view_serial_status.glx | 0 .../pic/界面框架/view_shield_list.glx | 0 .../pic/界面框架/view_shift_manage.glx | 0 .../pic/界面框架/view_sim_operate.glx | 0 .../pic/界面框架/view_system_setting.glx | 0 .../pic/界面框架/view_ticket_manage.glx | 0 .../pic/界面框架/view_ticket_search.glx | 0 .../data/pic/界面框架/view_token_list.glx | 0 .../data/pic/界面框架/view_trend.glx | 0 .../data/pic/界面框架/view_user_group.glx | 0 .../pic/界面框架/view_user_manage.glx | 0 .../pic/界面框架/view_wave_analyze.glx | 0 .../data/pic/界面框架/view_web_energy.glx | 0 .../pic/界面框架/view_work_ticket.glx | 0 .../data/pic/界面框架/导航栏.glx | 0 .../data/picbackup.tar.gz | Bin .../protect/branchSetting/全部名称.csv | 0 .../data/protect/deviceList.csv | 0 .../XK1001_RCD_0_20240416_105916_461.cfg | 0 .../XK1001_RCD_0_20240416_105916_461.dat | 0 .../XK1001_RCD_0_20240416_105916_461.des | 0 .../XK1001_RCD_0_20240416_105916_461.hdr | 0 .../XK1001_RCD_0_20240416_105916_461.mid | 0 ...PQMonitor_PQM1_001_20220502_151718_839.cfg | 0 ...PQMonitor_PQM1_001_20220502_151718_839.dat | Bin ...PQMonitor_PQM1_001_20220502_151718_839.hdr | 0 ...PQMonitor_PQM1_001_20220502_151718_839.inf | 0 ...PQMonitor_PQM1_001_20220926_173250_750.cfg | 0 ...PQMonitor_PQM1_001_20220926_173250_750.dat | Bin ...PQMonitor_PQM1_001_20220926_173250_750.hdr | 0 ...PQMonitor_PQM1_001_20220926_173250_750.inf | 0 ...PQMonitor_PQM1_002_20220502_151847_028.cfg | 0 ...PQMonitor_PQM1_002_20220502_151847_028.dat | Bin ...PQMonitor_PQM1_002_20220502_151847_028.hdr | 0 ...PQMonitor_PQM1_002_20220502_151847_028.inf | 0 .../data/report/FAIL_PAGE.html | 0 .../data/report/PERM_FORBIT_EDIT.html | 0 .../data/report/PERM_FORBIT_VIEW.html | 0 .../10kV厂用电日电度报表.log | 0 .../10kV厂用电日运行报表.log | 0 .../data/script/commonBtn.qs | 0 .../data/script/commonOpt.qs | 0 .../data/script/commonTree(复件).qs | 0 .../data/script/commonTree.qs | 0 .../data/script/lockOpt.qs | 0 .../data/script/macros.7z | Bin .../data/script/macros.qs | 0 .../data/script/panel_ctrl_1N.qs | 0 .../data/script/panel_ctrl_digital.qs | 0 .../data/script/pscadaOpt.qs | 0 .../data/script/scriptCfg.qs | 0 .../data/scriptbackup.tar.gz | Bin .../data/sound/Default.wav | Bin .../data/sound/JUMP_EN.WAV | Bin .../data/sound/OVER6.WAV | Bin .../data/sound/ROOSTER.wav | Bin .../data/sound/保护SOE报警.WAV | Bin .../data/sound/保护报警.wav | Bin .../data/sound/保护报警1.WAV | Bin .../data/sound/关闭.WAV | Bin .../data/sound/刀闸报警.wav | Bin .../data/sound/向上还原.WAV | Bin .../data/sound/向下还原.WAV | Bin .../data/sound/嘟嘟声.wav | Bin .../data/sound/幻想空间默认值.WAV | Bin .../data/sound/开关.Wav | Bin .../data/sound/开关1003.Wav | Bin .../data/sound/开关1004.wav | Bin .../data/sound/总功报警.wav | Bin .../data/sound/感叹.WAV | Bin .../data/sound/打开.WAV | Bin .../data/sound/报警.wav | Bin .../data/sound/提示.WAV | Bin .../data/sound/提问.WAV | Bin .../data/sound/最大化.wav | Bin .../data/sound/最小化.wav | Bin .../data/sound/清空回收站.wav | Bin .../data/sound/状态报警.wav | Bin .../data/sound/电笛.WAV | Bin .../data/sound/电铃.WAV | Bin .../data/sound/菜单命令.WAV | Bin .../data/sound/菜单弹出.WAV | Bin .../data/sound/蜂鸣器.WAV | Bin .../data/sound/错误.WAV | Bin .../data/sound/预告报警.wav | Bin .../sys_model_info/SYS_MODEL_APP_INFO.xml | 0 .../SYS_MODEL_DBCONFIG_DOMAIN.xml | 0 .../SYS_MODEL_DBCONFIG_NODE.xml | 0 .../sys_model_info/SYS_MODEL_DEPLOY_INFO.xml | 0 .../sys_model_info/SYS_MODEL_DOMAIN_INFO.xml | 0 .../SYS_MODEL_LOCATION_INFO.xlsx | Bin .../SYS_MODEL_LOCATION_INFO.xml | 0 .../sys_model_info/SYS_MODEL_MSG_RELAY.xml | 0 .../sys_model_info/SYS_MODEL_NODE_INFO.xlsx | Bin .../sys_model_info/SYS_MODEL_NODE_INFO.xml | 0 .../sys_model_info/SYS_MODEL_PROCESS_INFO.xml | 14 +- .../SYS_MODEL_SUB_SYSTEM_INFO.xml | 0 .../3D/a-03adroghm_jknmfo87f2.glb | Bin .../-us3al30_08rxql6zlbfc5.json | 0 .../1al160nobkq99noy8v-7iu.json | 0 .../24i-g2jx_u66rua28zzjrx.json | 0 .../326ckzbji8i3kudupaonfy.json | 0 .../3n_t3p088qeqbcph_-zqsq.json | 0 .../3xnj28pkwe9up4734md9cq.json | 0 .../51ozdkblrwkq1-coyqdavr.json | 0 .../5l_ivsx1wrkdabd0fit4o9.json | 0 .../5vmsu53hzzwhsfoczkab6k.json | 0 .../6kkccamzzlg9dxoxvta1ke.json | 0 .../74k25ecsgwymadilkmnksy.json | 0 .../7t66ynjth02_38z1o9yprc.json | 0 .../88y0rzhv78wpvtuk885uhw.json | 0 .../9fqt8r-8mgbzczioj2q2ab.json | 0 .../9n5jvyspzyaumcnmct6q6w.json | 0 .../_1un7dc-vmhr1tzr-mc7a8.json | 0 .../ba25z619z9dyev2q1c801b.json | 0 .../clcn74yb-cm9h_gxloic71.json | 0 .../exaglht1330kbqama32-jj.json | 0 .../fxzw0d6u5_8sub1-xubx8e.json | 0 .../g0upy3ebnkrgbkac306vtz.json | 0 .../h8g2j6ic7_xx99t8-iuose.json | 0 .../i5run9zaljl9kgdrx_89b6.json | 0 .../jfa6v6-4fvm3l9i1jve934.json | 0 .../l44vzhrahws736r92zp2da.json | 0 .../lzsr-0361tmv3uf8nytmae.json | 0 .../m08l1qgxsdmz8wm23j7evz.json | 0 .../m1shfjtzwid_sp4-3d30jp.json | 0 .../ma6zn_5lh-__1ao7_7ql64.json | 0 .../r4u6gxkexo-cwg8dfw34-c.json | 0 .../rn1w_xi5_9i1ht0w9yyfzu.json | 0 .../uf-_-b52ku7-ld--efct32.json | 0 .../vlwu4ysip_ef7lp_omhtmh.json | 0 .../wh0bkhhwlonmzw00o09qh-.json | 0 .../wl6uwti7r3dpnopuh4_3k4.json | 0 .../x36ola2i6ye-ve7tisl74c.json | 0 .../xvicq_i6ltyfuuzs80jhb6.json | 0 .../yc5_ue_2om-tp_h-xr7qf5.json | 0 .../yupe96zsizpzfii7k-0nfr.json | 0 .../zc8lj2p90emu4yconf9_ic.json | 0 .../config/1/json/tnlycze_ruoop3s4h4oc9w.json | 0 .../data/xm_alm_send/Xm_Alarm_Send_Config.xml | 0 .../database/accuml.xlsx | Bin 0 -> 17882 bytes .../database/accuml_limit_info.xlsx | Bin 3642 -> 3642 bytes .../database/accuml_map_to_fes.xlsx | Bin 0 -> 10001 bytes .../database/accuml_temp_define.xlsx | Bin 0 -> 15361 bytes .../database/acs_device_info.xlsx | Bin 3386 -> 3386 bytes .../database/acs_device_node_map.xlsx | Bin 3304 -> 3304 bytes .../database/alarm_action_define.xlsx | Bin 3661 -> 3661 bytes .../database/alarm_color.xlsx | Bin 3277 -> 3277 bytes .../database/alarm_keyword_define.xlsx | Bin 5269 -> 5269 bytes .../database/alarm_level_define.xlsx | Bin 3631 -> 3631 bytes .../database/alarm_level_sound_def.xlsx | Bin 3438 -> 3438 bytes .../database/alarm_link_enable_info.xlsx | Bin 3386 -> 3386 bytes .../database/alarm_manner_define.xlsx | Bin 4064 -> 4064 bytes .../database/alarm_sms_config.xlsx | Bin 3413 -> 3413 bytes .../database/alarm_sms_device.xlsx | Bin 3431 -> 3431 bytes .../database/alarm_sms_rule.xlsx | Bin 3372 -> 3372 bytes .../database/alarm_status_define.xlsx | Bin 8399 -> 8399 bytes .../database/alarm_status_dig_set.xlsx | Bin 3482 -> 3482 bytes .../database/alarm_type_define.xlsx | Bin 3596 -> 3596 bytes .../database/analog.xlsx | Bin 0 -> 86181 bytes .../database/analog_control.xlsx | Bin 3556 -> 3556 bytes .../database/analog_limit_info.xlsx | Bin 3668 -> 3668 bytes .../database/analog_map_to_fes.xlsx | Bin 0 -> 46593 bytes .../database/analog_temp_define.xlsx | Bin 0 -> 23987 bytes .../database/apc_analog.xlsx | Bin 3423 -> 3423 bytes .../database/apc_curve.xlsx | Bin 3381 -> 3381 bytes .../database/apc_curve_day_index.xlsx | Bin 3465 -> 3465 bytes .../database/apc_curve_day_tmpl.xlsx | Bin 3356 -> 3356 bytes .../database/apc_curve_day_tmpl_section.xlsx | Bin 3551 -> 3551 bytes .../database/apc_curve_day_value.xlsx | Bin 3590 -> 3590 bytes .../database/apc_curve_type.xlsx | Bin 3360 -> 3360 bytes .../database/apc_curve_week.xlsx | Bin 3515 -> 3515 bytes .../database/apc_curve_year.xlsx | Bin 3492 -> 3492 bytes .../database/apc_digital.xlsx | Bin 3374 -> 3374 bytes .../database/asset_info.xlsx | Bin 3423 -> 3423 bytes .../database/asset_records.xlsx | Bin 3372 -> 3372 bytes .../ats_casco_dynamic_train_data.xlsx | Bin 3456 -> 3456 bytes .../ats_casco_planned_train_data.xlsx | Bin 3443 -> 3443 bytes .../ats_casco_practical_train_data.xlsx | Bin 3489 -> 3489 bytes .../database/ats_fes_location_info.xlsx | Bin 3292 -> 3292 bytes .../database/ats_fes_platform_info.xlsx | Bin 3309 -> 3309 bytes .../database/bas_craft_def.xlsx | Bin 3308 -> 3308 bytes .../database/bas_mode_def.xlsx | Bin 3358 -> 3358 bytes .../database/bas_mode_type.xlsx | Bin 3278 -> 3278 bytes .../database/bas_timetable_ctrl_param.xlsx | Bin 3442 -> 3442 bytes .../database/bas_timetable_def.xlsx | Bin 3327 -> 3327 bytes .../database/bas_timetable_info.xlsx | Bin 3354 -> 3354 bytes .../database/bas_timetable_schedule.xlsx | Bin 3481 -> 3481 bytes .../database/calc_func_def.xlsx | Bin 4522 -> 4522 bytes .../database/calc_group_def.xlsx | Bin 3462 -> 3462 bytes .../database/calc_in_para.xlsx | Bin 3676 -> 3676 bytes .../database/calc_out_para.xlsx | Bin 3377 -> 3377 bytes .../database/calc_para_def.xlsx | Bin 3603 -> 3603 bytes .../database/cctv_camera_info.xlsx | Bin 3591 -> 3591 bytes .../database/cctv_monitor_info.xlsx | Bin 3463 -> 3463 bytes .../database/cctv_orientation.xlsx | Bin 3606 -> 3606 bytes .../database/cctv_separator_info.xlsx | Bin 3823 -> 3823 bytes .../database/cctv_sequence.xlsx | Bin 4574 -> 4574 bytes .../database/cfg_dev_type_map.xlsx | Bin 4064 -> 4064 bytes .../database/cfg_device_inst.xlsx | Bin 4871 -> 4871 bytes .../database/cfg_signal_inst.xlsx | Bin 78847 -> 78847 bytes .../database/dbop_list.xlsx | Bin 8152468 -> 8158282 bytes .../database/dev_group.xlsx | Bin 0 -> 5794 bytes .../database/dev_info.xlsx | Bin 0 -> 14215 bytes .../database/dev_temp_def.xlsx | Bin 0 -> 4104 bytes .../database/dev_temp_group.xlsx | Bin 3297 -> 3297 bytes .../database/dev_topo_info.xlsx | Bin 3321 -> 3321 bytes .../database/dev_topo_ver.xlsx | Bin 3296 -> 3296 bytes .../database/dev_type_def.xlsx | Bin 3619 -> 3619 bytes .../database/dev_type_def_61850.xlsx | Bin 3574 -> 3574 bytes .../database/dict_menu_info.xlsx | Bin 15952 -> 15952 bytes .../database/dict_point_type.xlsx | Bin 13412 -> 13412 bytes .../database/dict_state_text_info.xlsx | Bin 4911 -> 4911 bytes .../database/dict_text_define.xlsx | Bin 4821 -> 4821 bytes .../database/dict_unit_info.xlsx | Bin 4162 -> 4162 bytes .../database/dict_vol_level.xlsx | Bin 3658 -> 3658 bytes .../database/digital.xlsx | Bin 0 -> 269681 bytes .../database/digital_control.xlsx | Bin 6088 -> 6088 bytes .../database/digital_map_to_fes.xlsx | Bin 0 -> 80679 bytes .../database/digital_temp_define.xlsx | Bin 46320 -> 47655 bytes .../database/duty_define.xlsx | Bin 3445 -> 3445 bytes .../database/duty_info.xlsx | Bin 3509 -> 3509 bytes .../database/duty_setting.xlsx | Bin 3642 -> 3642 bytes .../database/event_task_link.xlsx | Bin 3339 -> 3339 bytes .../database/fault_recall_cond_def.xlsx | Bin 3396 -> 3396 bytes .../database/fault_recall_record.xlsx | Bin 3386 -> 3386 bytes .../database/fbd_diagram.xlsx | Bin 9595 -> 9595 bytes .../database/fbd_group.xlsx | Bin 3536 -> 3536 bytes .../database/fbd_template.xlsx | Bin 3312 -> 3312 bytes .../database/fes_accuml.xlsx | Bin 0 -> 17005 bytes .../database/fes_analog.xlsx | Bin 0 -> 104119 bytes .../database/fes_analog_ctrl.xlsx | Bin 3673 -> 3673 bytes .../database/fes_channel_para.xlsx | Bin 0 -> 10976 bytes .../database/fes_const.xlsx | Bin 3794 -> 3794 bytes .../database/fes_const_temp.xlsx | Bin 3709 -> 3709 bytes .../database/fes_data_block.xlsx | Bin 0 -> 4158 bytes .../database/fes_data_block_temp.xlsx | Bin 0 -> 5350 bytes .../database/fes_dev_info.xlsx | Bin 0 -> 6014 bytes .../database/fes_dev_pt_temp_def.xlsx | Bin 187828 -> 192051 bytes .../database/fes_dev_temp_def.xlsx | Bin 0 -> 4126 bytes .../database/fes_dev_type_def.xlsx | Bin 3632 -> 3632 bytes .../database/fes_digital.xlsx | Bin 0 -> 155626 bytes .../database/fes_digital_ctrl.xlsx | Bin 0 -> 14365 bytes .../database/fes_mix.xlsx | Bin 3715 -> 3715 bytes .../database/fes_mix_ctrl.xlsx | Bin 3669 -> 3669 bytes .../database/fes_protocol.xlsx | Bin 3932 -> 3932 bytes .../database/fes_rtu_para.xlsx | Bin 0 -> 8407 bytes .../database/forward_accuml.xlsx | Bin 3677 -> 3677 bytes .../database/forward_analog.xlsx | Bin 3709 -> 3709 bytes .../database/forward_analog_ctrl.xlsx | Bin 3688 -> 3688 bytes .../database/forward_digital_ctrl.xlsx | Bin 3776 -> 3776 bytes .../database/forward_digital_double.xlsx | Bin 3680 -> 3680 bytes .../database/forward_digital_single.xlsx | Bin 3680 -> 3680 bytes .../database/forward_mix.xlsx | Bin 3676 -> 3676 bytes .../database/forward_mix_ctrl.xlsx | Bin 3666 -> 3666 bytes .../database/hmi_type_info.xlsx | Bin 3335 -> 3335 bytes .../database/ia_disposal_plan.xlsx | Bin 3321 -> 3321 bytes .../database/linkage_action.xlsx | Bin 3423 -> 3423 bytes .../database/linkage_define.xlsx | Bin 3346 -> 3346 bytes .../database/linkage_function.xlsx | Bin 3474 -> 3474 bytes .../database/linkage_setting.xlsx | Bin 3433 -> 3433 bytes .../database/load_stat_define.xlsx | Bin 3465 -> 3465 bytes .../database/mix.xlsx | Bin 4032 -> 4032 bytes .../database/mix_control.xlsx | Bin 3568 -> 3568 bytes .../database/mix_map_to_fes.xlsx | Bin 3549 -> 3549 bytes .../database/mix_temp_define.xlsx | Bin 3916 -> 3916 bytes .../database/opc_config_define.xlsx | Bin 3450 -> 3450 bytes .../database/opc_config_version.xlsx | Bin 3345 -> 3345 bytes .../database/operation_order_model.xlsx | Bin 3417 -> 3417 bytes .../database/operation_order_model_info.xlsx | Bin 3712 -> 3712 bytes .../database/opt_ctrl_act_define.xlsx | Bin 3882 -> 3882 bytes .../database/opt_handover_grp.xlsx | Bin 3486 -> 3486 bytes .../database/opt_interlock_define.xlsx | Bin 4270 -> 4270 bytes .../database/opt_interlock_para.xlsx | Bin 3614 -> 3614 bytes .../database/opt_shield_define.xlsx | Bin 3581 -> 3581 bytes .../database/opt_shield_info.xlsx | Bin 3479 -> 3479 bytes .../database/opt_shield_obj.xlsx | Bin 3374 -> 3374 bytes .../database/opt_shield_time.xlsx | Bin 3350 -> 3350 bytes .../database/opt_tag_info.xlsx | Bin 3445 -> 3445 bytes .../database/opt_token_define.xlsx | Bin 3736 -> 3736 bytes .../database/opt_token_info.xlsx | Bin 3508 -> 3508 bytes .../database/p_dict.xlsx | Bin 32650 -> 32650 bytes .../database/p_dict_sort.xlsx | Bin 5817 -> 5817 bytes .../database/pa_area_info.xlsx | Bin 3276 -> 3276 bytes .../database/pa_audio_info.xlsx | Bin 3321 -> 3321 bytes .../database/pa_broadcast_group.xlsx | Bin 3330 -> 3330 bytes .../database/pa_ctrl_param.xlsx | Bin 3297 -> 3297 bytes .../database/pa_location_area_def.xlsx | Bin 3293 -> 3293 bytes .../database/pa_location_seq_def.xlsx | Bin 3291 -> 3291 bytes .../database/pa_operator_def.xlsx | Bin 3287 -> 3287 bytes .../database/pa_operator_map.xlsx | Bin 3295 -> 3295 bytes .../database/pa_timed_audio.xlsx | Bin 3545 -> 3545 bytes .../database/pis_area_info.xlsx | Bin 3277 -> 3277 bytes .../database/pis_ctrl_param.xlsx | Bin 3300 -> 3300 bytes .../database/pis_display_info.xlsx | Bin 3475 -> 3475 bytes .../database/pis_fes_location_info.xlsx | Bin 3293 -> 3293 bytes .../database/pis_location_area_def.xlsx | Bin 3294 -> 3294 bytes .../database/pis_message_info.xlsx | Bin 3329 -> 3329 bytes .../database/point_lock_condition_info.xlsx | Bin 3405 -> 3405 bytes .../database/point_lock_config_info.xlsx | Bin 3309 -> 3309 bytes .../database/point_task_link.xlsx | Bin 3343 -> 3343 bytes .../database/psc3000_plugin.xlsx | Bin 5445 -> 5445 bytes .../database/region_info.xlsx | Bin 3433 -> 3433 bytes .../database/report_type_info.xlsx | Bin 3450 -> 3450 bytes .../database/rm_dept_def.xlsx | Bin 3318 -> 3318 bytes .../database/rm_norm_func_def.xlsx | Bin 4440 -> 4440 bytes .../database/rm_role_db_info.xlsx | Bin 5508 -> 5508 bytes .../database/rm_role_def.xlsx | Bin 3859 -> 3859 bytes .../database/rm_role_hmi_info.xlsx | Bin 3483 -> 3483 bytes .../database/rm_role_spef_reg.xlsx | Bin 3809 -> 3809 bytes .../database/rm_security_def.xlsx | Bin 3411 -> 3411 bytes .../database/rm_spcl_func_def.xlsx | Bin 3657 -> 3657 bytes .../database/rm_user_def.xlsx | Bin 0 -> 4850 bytes .../database/rm_user_face_info.xlsx | Bin 3318 -> 3318 bytes .../database/rm_user_finger_print_info.xlsx | Bin 3337 -> 3337 bytes .../database/rm_user_signature_info.xlsx | Bin 6008 -> 6008 bytes .../database/rm_userg_db_info.xlsx | Bin 3322 -> 3322 bytes .../database/rm_userg_def.xlsx | Bin 4050 -> 4050 bytes .../database/rm_userg_hmi_info.xlsx | Bin 3885 -> 3885 bytes .../database/rm_userg_report_info.xlsx | Bin 3413 -> 3413 bytes .../database/rm_userg_rsp_info.xlsx | Bin 4390 -> 4390 bytes .../database/safety_day.xlsx | Bin 3358 -> 3357 bytes .../database/sample_define.xlsx | Bin 0 -> 70891 bytes .../database/scl_dataset.xlsx | Bin 6141 -> 6141 bytes .../database/scl_fcda.xlsx | Bin 107310 -> 107310 bytes .../database/scl_lcb.xlsx | Bin 3435 -> 3435 bytes .../database/scl_rcb.xlsx | Bin 66418 -> 66418 bytes .../database/scl_runtime.xlsx | Bin 10024 -> 10024 bytes .../database/scl_sgcb.xlsx | Bin 4591 -> 4591 bytes .../database/sequence_action.xlsx | Bin 3420 -> 3420 bytes .../database/sequence_define.xlsx | Bin 3342 -> 3342 bytes .../database/sequence_function.xlsx | Bin 3419 -> 3419 bytes .../database/sequence_setting.xlsx | Bin 3470 -> 3470 bytes .../database/stat_inst_def.xlsx | Bin 3533 -> 3533 bytes .../database/stat_inst_para_grp.xlsx | Bin 3378 -> 3378 bytes .../database/stat_inst_para_point.xlsx | Bin 3426 -> 3426 bytes .../database/stat_inst_para_time.xlsx | Bin 3560 -> 3560 bytes .../database/stat_inst_ret_grp.xlsx | Bin 3376 -> 3376 bytes .../database/stat_inst_ret_para.xlsx | Bin 3481 -> 3481 bytes .../database/stat_link_def.xlsx | Bin 3323 -> 3323 bytes .../database/stat_link_para.xlsx | Bin 3391 -> 3391 bytes .../database/stat_link_ret.xlsx | Bin 3388 -> 3388 bytes .../database/stat_template_def.xlsx | Bin 4956 -> 4956 bytes .../database/stat_template_para.xlsx | Bin 4087 -> 4087 bytes .../database/stat_template_ret.xlsx | Bin 6148 -> 6148 bytes .../database/switch_cfg_info.xlsx | Bin 3382 -> 3382 bytes .../database/sys_model_app_info.xlsx | Bin 3558 -> 3558 bytes .../database/sys_model_dbconfig_domain.xlsx | Bin 3509 -> 3509 bytes .../database/sys_model_dbconfig_node.xlsx | Bin 3561 -> 3561 bytes .../database/sys_model_deploy_info.xlsx | Bin 3653 -> 3653 bytes .../database/sys_model_domain_info.xlsx | Bin 3409 -> 3409 bytes .../database/sys_model_location_info.xlsx | Bin 3812 -> 3812 bytes .../database/sys_model_msg_relay.xlsx | Bin 3483 -> 3483 bytes .../database/sys_model_node_info.xlsx | Bin 3623 -> 3623 bytes .../database/sys_model_process_info.xlsx | Bin 0 -> 6467 bytes .../database/sys_model_sub_system_info.xlsx | Bin 3475 -> 3475 bytes .../database/sys_trigger_flag.xlsx | Bin 3282 -> 3282 bytes .../database/t_sys_table_file_tree.xlsx | Bin 3751 -> 3751 bytes .../database/t_w_inspection.xlsx | Bin 3464 -> 3464 bytes .../database/temp_plugin.xlsx | Bin 0 -> 3738 bytes .../database/temp_plugin_dev_map.xlsx | Bin 0 -> 4074 bytes .../database/temp_plugin_fes_dev_map.xlsx | Bin 0 -> 4411 bytes .../database/temp_plugin_point_map_acc.xlsx | Bin 0 -> 12182 bytes .../database/temp_plugin_point_map_ana.xlsx | Bin 0 -> 8995 bytes .../database/temp_plugin_point_map_dig.xlsx | Bin 95844 -> 96188 bytes .../database/temp_plugin_point_map_mix.xlsx | Bin 3369 -> 3369 bytes .../database/trend_collection.xlsx | Bin 3348 -> 3348 bytes .../database/trigger_condition_define.xlsx | Bin 4033 -> 4033 bytes .../database/trigger_function_define.xlsx | Bin 3702 -> 3702 bytes .../database/trigger_period_define.xlsx | Bin 3374 -> 3374 bytes .../database/trigger_timer_define.xlsx | Bin 3321 -> 3321 bytes .../database/web_files.xlsx | Bin 3386 -> 3386 bytes .../database/web_page.xlsx | Bin 3531 -> 3531 bytes .../database/web_primitive.xlsx | Bin 3715 -> 3715 bytes .../db_manager_backup_manifest.xml | 3 + .../data/model/toolopen.xml | 7 - .../data/pic/nav-cn.xlsx | Bin 12217 -> 0 bytes .../data/pic/nav-en.xlsx | Bin 7406 -> 0 bytes .../pic/old/告警事件/事故追忆.glx | 50 - .../pic/old/告警事件/历史事件.glx | 90 - .../pic/old/告警事件/告警分析.glx | 20 - .../pic/old/告警事件/实时告警.glx | 108 - .../pic/old/告警事件/故障录波.glx | 10 - .../pic/old/告警事件/运行简报.glx | 10 - .../pic/old/曲线报表/报表浏览.glx | 47 - .../pic/old/曲线报表/报表管理.glx | 13 - .../pic/old/曲线报表/报表编辑.glx | 47 - .../pic/old/曲线报表/详细数据.glx | 18 - .../pic/old/曲线报表/趋势分析.glx | 10 - .../220kV/220kV1#主变保护信息.glx | 218 - .../220kV/220kV1#主变测控信息.glx | 255 - .../220kV/220kV高压一次主接线.glx | 1355 - .../old/示例工程/ATMT小窗口信息.glx | 57 - .../FAB2A/F23-1串口通讯图R1.glx | 33 - ...3-1低压U380一次接线图U101H-201H.glx | 594 - .../FAB2A/F23-1网络通道图.glx | 34 - .../南区开闭所/中压主接线.glx | 445 - .../低压TM1一次接线图.glx | 328 - .../低压TM2一次接线图.glx | 137 - .../南区开闭所/低压主接线.glx | 886 - .../南区开闭所/直流屏图.glx | 287 - .../南区开闭所/站内布置图.glx | 81 - .../南区开闭所/网络结构图.glx | 139 - .../南区开闭所/自定义顺控.glx | 354 - .../南区开闭所/视频监控.glx | 62 - .../南区开闭所/设备监控.glx | 144 - .../南区开闭所/进线监控.glx | 63 - .../南区开闭所/通讯状态图.glx | 645 - .../南区开闭所/通讯状态图一.glx | 140 - .../南区开闭所/通讯状态图二.glx | 241 - .../实时监控/10KV中压柜.glx | 351 - .../old/示例工程/实时监控/BMS1.glx | 838 - .../old/示例工程/实时监控/BMS2.glx | 838 - .../old/示例工程/实时监控/BMS3.glx | 838 - .../old/示例工程/实时监控/BMS4.glx | 838 - .../实时监控/交流馈线柜.glx | 370 - .../示例工程/实时监控/整流柜1.glx | 499 - .../示例工程/实时监控/整流柜2.glx | 499 - .../示例工程/实时监控/整流柜3.glx | 499 - .../示例工程/实时监控/整流柜4.glx | 499 - .../实时监控/移项变压器.glx | 563 - .../示例工程/布局图/停电区域.glx | 19 - .../布局图/全厂骨干网.glx | 68 - .../布局图/南区汇聚网.glx | 66 - .../old/示例工程/布局图/接线图.glx | 576 - .../示例工程/布局图/铜排监测.glx | 93 - .../pic/old/示例工程/布局图/首页.glx | 314 - .../更多设置/容量管理.glx | 130 - .../柴发/柴发1号单体监控.glx | 168 - .../柴发/柴发一次接线图.glx | 535 - .../柴发/柴发站内布置图.glx | 35 - .../母线测温/L10(203)N-01(4000A).glx | 20 - .../母线测温/母线测温L10.glx | 236 - .../pic/old/示例工程/温度_backup.glx | 1468 - .../pic/old/示例工程/电压_backup.glx | 2368 -- .../old/示例工程/配电盘/I-Line盘.glx | 233 - .../pic/old/系统设置/控制策略.glx | 40 - .../pic/old/系统设置/文档配置.glx | 21 - .../pic/old/系统设置/用户管理.glx | 18 - .../pic/old/系统设置/用户组管理.glx | 18 - .../pic/old/系统设置/系统设置.glx | 20 - .../pic/old/系统设置/轮询配置.glx | 28 - .../data/pic/old/视频监控/四宫格.glx | 19 - .../pic/old/运维管理/交接班管理.glx | 10 - .../pic/old/运维管理/工作票管理.glx | 50 - .../pic/old/运维管理/挂牌一览.glx | 10 - .../pic/old/运维管理/排班管理.glx | 10 - .../pic/old/运维管理/操作票管理.glx | 10 - .../pic/old/运维管理/模拟操作.glx | 117 - .../pic/old/运维管理/置数一览.glx | 10 - .../pic/old/高级功能/协调曲线.glx | 10 - .../pic/old/高级功能/告警策略.glx | 40 - .../pic/old/高级功能/告警管理.glx | 10 - .../data/pic/old/高级功能/多媒体.glx | 18 - .../pic/old/高级功能/定值管理.glx | 10 - .../pic/old/高级功能/设备屏蔽.glx | 21 - .../ECMS电厂行业模版/data/pic/test1.glx | 10 - .../interval_instrument - 副本.glx | 485 - .../interval_protect - 副本 - 副本.glx | 521 - .../interval_protect - 副本.glx | 521 - .../database/accuml.xlsx | Bin 17375 -> 0 bytes .../database/accuml_map_to_fes.xlsx | Bin 9744 -> 0 bytes .../database/accuml_temp_define.xlsx | Bin 14764 -> 0 bytes .../database/analog.xlsx | Bin 84629 -> 0 bytes .../database/analog_map_to_fes.xlsx | Bin 45608 -> 0 bytes .../database/analog_temp_define.xlsx | Bin 21675 -> 0 bytes .../database/database.sql | 20290 ------------ .../database/dev_group.xlsx | Bin 5740 -> 0 bytes .../database/dev_info.xlsx | Bin 14059 -> 0 bytes .../database/dev_temp_def.xlsx | Bin 4068 -> 0 bytes .../database/dict_point_type.xlsx | Bin 13412 -> 0 bytes .../database/digital.xlsx | Bin 268641 -> 0 bytes .../database/digital_map_to_fes.xlsx | Bin 80262 -> 0 bytes .../database/fes_accuml.xlsx | Bin 16522 -> 0 bytes .../database/fes_analog.xlsx | Bin 101827 -> 0 bytes .../database/fes_channel_para.xlsx | Bin 10799 -> 0 bytes .../database/fes_data_block.xlsx | Bin 3737 -> 0 bytes .../database/fes_data_block_temp.xlsx | Bin 5079 -> 0 bytes .../database/fes_dev_info.xlsx | Bin 5922 -> 0 bytes .../database/fes_dev_temp_def.xlsx | Bin 4092 -> 0 bytes .../database/fes_digital.xlsx | Bin 155037 -> 0 bytes .../database/fes_digital_ctrl.xlsx | Bin 14080 -> 0 bytes .../database/fes_rtu_para.xlsx | Bin 8281 -> 0 bytes .../database/rm_user_def.xlsx | Bin 4850 -> 0 bytes .../database/sample_define.xlsx | Bin 70606 -> 0 bytes .../database/sys_model_process_info.xlsx | Bin 6468 -> 0 bytes .../database/temp_plugin.xlsx | Bin 3722 -> 0 bytes .../database/temp_plugin_dev_map.xlsx | Bin 4062 -> 0 bytes .../database/temp_plugin_fes_dev_map.xlsx | Bin 4398 -> 0 bytes .../database/temp_plugin_point_map_acc.xlsx | Bin 12090 -> 0 bytes .../database/temp_plugin_point_map_ana.xlsx | Bin 8696 -> 0 bytes .../db_manager_backup_manifest.xml | 3 - .../data/config/db_manager_cfg.xml | 3 - .../data/config61850/高厂变/AH101.cid | 25386 ---------------- .../data/icon/运行状态.ilx | 8 - .../mod_instance/设备实例-高泰.xlsx | Bin 8363 -> 0 bytes .../data/model/colorConfig.xml | 472 - .../data/model/toolbox.xml | 147 - .../10kV厂用电主接线图.glx | 597 - .../110kV发电三期主接线图.glx | 412 - .../pic/界面框架/frame_footer_unuse.glx | 367 - .../data/pic/界面框架/interval_custom.glx | 482 - .../interval_instrument - 副本.glx | 485 - .../pic/界面框架/interval_instrument.glx | 485 - .../data/pic/界面框架/interval_meter.glx | 502 - .../interval_protect - 副本 - 副本.glx | 521 - .../interval_protect - 副本.glx | 521 - .../pic/界面框架/interval_protect.glx | 499 - .../data/pic/界面框架/interval_relay.glx | 502 - .../pic/界面框架/panel_analog_set.glx | 1556 - .../pic/界面框架/panel_direct_ctrl.glx | 2086 -- .../界面框架/panel_remote_ctrl-gdw.glx | 2197 -- .../界面框架/panel_remote_ctrl0000.glx | 2197 -- .../SYS_MODEL_DBCONFIG_DOMAIN.xml | 4 - .../SYS_MODEL_DBCONFIG_NODE.xml | 4 - .../sys_model_info/SYS_MODEL_NODE_INFO.xml | 5 - .../database/accuml.xlsx | Bin 32741 -> 0 bytes .../database/accuml_map_to_fes.xlsx | Bin 16277 -> 0 bytes .../database/accuml_temp_define.xlsx | Bin 11999 -> 0 bytes .../database/analog.xlsx | Bin 111918 -> 0 bytes .../database/analog_map_to_fes.xlsx | Bin 59954 -> 0 bytes .../database/analog_temp_define.xlsx | Bin 10738 -> 0 bytes .../database/calc_func_def.xlsx | Bin 4788 -> 0 bytes .../database/calc_group_def.xlsx | Bin 3634 -> 0 bytes .../database/calc_in_para.xlsx | Bin 4012 -> 0 bytes .../database/calc_out_para.xlsx | Bin 3525 -> 0 bytes .../database/calc_para_def.xlsx | Bin 3682 -> 0 bytes .../database/dev_group.xlsx | Bin 6588 -> 0 bytes .../database/dev_info.xlsx | Bin 9010 -> 0 bytes .../database/dev_temp_def.xlsx | Bin 3912 -> 0 bytes .../database/dev_type_def_61850.xlsx | Bin 3597 -> 0 bytes .../database/dict_state_text_info.xlsx | Bin 4996 -> 0 bytes .../database/digital.xlsx | Bin 70149 -> 0 bytes .../database/digital_map_to_fes.xlsx | Bin 22176 -> 0 bytes .../database/digital_temp_define.xlsx | Bin 32606 -> 0 bytes .../database/fes_accuml.xlsx | Bin 29615 -> 0 bytes .../database/fes_analog.xlsx | Bin 133972 -> 0 bytes .../database/fes_channel_para.xlsx | Bin 6846 -> 0 bytes .../database/fes_data_block.xlsx | Bin 22908 -> 0 bytes .../database/fes_data_block_temp.xlsx | Bin 4236 -> 0 bytes .../database/fes_dev_info.xlsx | Bin 7330 -> 0 bytes .../database/fes_dev_pt_temp_def.xlsx | Bin 53695 -> 0 bytes .../database/fes_dev_temp_def.xlsx | Bin 3621 -> 0 bytes .../database/fes_digital.xlsx | Bin 37746 -> 0 bytes .../database/fes_digital_ctrl.xlsx | Bin 18064 -> 0 bytes .../database/fes_rtu_para.xlsx | Bin 10431 -> 0 bytes .../database/opt_ctrl_act_define.xlsx | Bin 3884 -> 0 bytes .../database/rm_user_def.xlsx | Bin 5078 -> 0 bytes .../database/sample_define.xlsx | Bin 15505 -> 0 bytes .../database/sys_model_dbconfig_domain.xlsx | Bin 3512 -> 0 bytes .../database/sys_model_dbconfig_node.xlsx | Bin 3560 -> 0 bytes .../database/sys_model_deploy_info.xlsx | Bin 3595 -> 0 bytes .../database/sys_model_node_info.xlsx | Bin 3746 -> 0 bytes .../database/sys_model_process_info.xlsx | Bin 4981 -> 0 bytes .../database/temp_plugin.xlsx | Bin 3394 -> 0 bytes .../database/temp_plugin_dev_map.xlsx | Bin 3471 -> 0 bytes .../database/temp_plugin_fes_dev_map.xlsx | Bin 3536 -> 0 bytes .../database/temp_plugin_point_map_acc.xlsx | Bin 5387 -> 0 bytes .../database/temp_plugin_point_map_ana.xlsx | Bin 4747 -> 0 bytes .../database/temp_plugin_point_map_dig.xlsx | Bin 16367 -> 0 bytes .../setDeviceTitle.csv | 0 .../InverseTimeLimitVer6.xlsx | Bin .../InverseTimeLimit/table.files/filelist.xml | 0 .../InverseTimeLimit/table.files/image001.png | Bin .../InverseTimeLimit/table.files/image002.png | Bin .../InverseTimeLimit/table.files/sheet001.htm | 0 .../table.files/stylesheet.css | 0 .../InverseTimeLimit/table.files/tabstrip.htm | 0 .../data/InverseTimeLimit/table.htm | 0 .../data/NetMonite/ChanlPara.csv | 0 .../data/NetMonite/MyDataBase.db | Bin .../HM SG-A系列技术规格书.doc | Bin ...S智慧电力监控系统_用户手册.doc | Bin .../data/back_pixmap/1U管理机.png | Bin .../data/back_pixmap/EMS.png | Bin .../back_pixmap/EMS能量管理系统.png | Bin .../data/back_pixmap/LOGO-100x32.png | Bin .../data/back_pixmap/LOGO.gif | Bin .../data/back_pixmap/MainPic.png | Bin .../data/back_pixmap/PCS-9611.png | Bin .../data/back_pixmap/PM8000.png | Bin .../data/back_pixmap/SOC上限.png | Bin .../data/back_pixmap/SOC下限.png | Bin .../data/back_pixmap/SOH.png | Bin .../data/back_pixmap/WEB服务器.png | Bin .../data/back_pixmap/arrowDown.png | Bin .../data/back_pixmap/arrowUp.png | Bin .../data/back_pixmap/backgroup.png | Bin .../data/back_pixmap/bms.png | Bin .../data/back_pixmap/board 1.png | Bin .../data/back_pixmap/board.png | Bin .../data/back_pixmap/bus-1.png | Bin .../data/back_pixmap/check.png | Bin .../data/back_pixmap/checked.png | Bin .../data/back_pixmap/datebackground1.png | Bin .../data/back_pixmap/datebackground2.png | Bin .../data/back_pixmap/details_img_BMS.png | Bin .../data/back_pixmap/details_img_PCS_n.png | Bin .../data/back_pixmap/disableCheck.png | Bin .../data/back_pixmap/down.png | Bin .../data/back_pixmap/epm.png | Bin .../data/back_pixmap/footer_background.png | Bin .../data/back_pixmap/frame.png | Bin .../data/back_pixmap/groupbox.png | Bin .../data/back_pixmap/header_background.png | Bin .../data/back_pixmap/hmlogo-white.png | Bin .../data/back_pixmap/hmlogo.png | Bin .../data/back_pixmap/home_back.png | Bin .../data/back_pixmap/home_back_2.png | Bin .../data/back_pixmap/home_back_3.png | Bin .../data/back_pixmap/home_btn.png | Bin .../data/back_pixmap/home_btn_site_dot_b.png | Bin .../data/back_pixmap/home_btn_site_dot_r.png | Bin .../data/back_pixmap/home_btn_site_left_b.png | Bin .../data/back_pixmap/home_btn_site_left_r.png | Bin .../data/back_pixmap/home_btn_site_line_b.png | Bin .../data/back_pixmap/home_btn_site_line_r.png | Bin .../back_pixmap/home_btn_site_right_b.png | Bin .../back_pixmap/home_btn_site_right_r.png | Bin .../data/back_pixmap/icon_BMS.png | Bin .../data/back_pixmap/icon_PCS.png | Bin .../data/back_pixmap/icon_SOC.png | Bin .../data/back_pixmap/icon_Select.png | Bin .../data/back_pixmap/icon_alarm.png | Bin .../data/back_pixmap/icon_bms监控.png | Bin .../data/back_pixmap/icon_bms监控_sel.png | Bin .../data/back_pixmap/icon_dev_ng.png | Bin .../data/back_pixmap/icon_dev_ok.png | Bin .../data/back_pixmap/icon_down.png | Bin .../data/back_pixmap/icon_down_disable.png | Bin .../data/back_pixmap/icon_more.png | Bin .../data/back_pixmap/icon_out.png | Bin .../data/back_pixmap/icon_pcs监控.png | Bin .../data/back_pixmap/icon_pcs监控_sel.png | Bin .../data/back_pixmap/icon_register.png | Bin .../data/back_pixmap/icon_up.png | Bin .../data/back_pixmap/icon_up_disable.png | Bin .../data/back_pixmap/icon_user.png | Bin .../data/back_pixmap/icon_一览表.png | Bin .../data/back_pixmap/icon_两票管理.png | Bin .../data/back_pixmap/icon_主接线图.png | Bin .../back_pixmap/icon_主接线图_sel.png | Bin .../data/back_pixmap/icon_事故追忆.png | Bin .../data/back_pixmap/icon_事故追忆2.png | Bin .../data/back_pixmap/icon_交接班.png | Bin .../data/back_pixmap/icon_仓库.png | Bin .../data/back_pixmap/icon_任务.png | Bin .../data/back_pixmap/icon_值班管理.png | Bin .../data/back_pixmap/icon_储能单元.png | Bin .../back_pixmap/icon_储能单元_sel.png | Bin .../data/back_pixmap/icon_充电量.png | Bin .../data/back_pixmap/icon_关于.png | Bin .../data/back_pixmap/icon_冷机.png | Bin .../data/back_pixmap/icon_功率.png | Bin .../data/back_pixmap/icon_功率总.png | Bin .../data/back_pixmap/icon_区域.png | Bin .../data/back_pixmap/icon_协调控制器.png | Bin .../data/back_pixmap/icon_历史事件.png | Bin .../back_pixmap/icon_历史事件_sel.png | Bin .../data/back_pixmap/icon_变电站.png | Bin .../data/back_pixmap/icon_变电站2.png | Bin .../data/back_pixmap/icon_告警分析.png | Bin .../back_pixmap/icon_告警分析_sel.png | Bin .../data/back_pixmap/icon_告警管理.png | Bin .../data/back_pixmap/icon_告警统计.png | Bin .../data/back_pixmap/icon_地图.png | Bin .../data/back_pixmap/icon_定值管理.png | Bin .../data/back_pixmap/icon_实时告警.png | Bin .../back_pixmap/icon_实时告警_sel.png | Bin .../data/back_pixmap/icon_实时数据.png | Bin .../data/back_pixmap/icon_审核.png | Bin .../data/back_pixmap/icon_屏蔽.png | Bin .../data/back_pixmap/icon_工作票.png | Bin .../data/back_pixmap/icon_布局.png | Bin .../data/back_pixmap/icon_总有功.png | Bin .../data/back_pixmap/icon_总览.png | Bin .../data/back_pixmap/icon_报表.png | Bin .../data/back_pixmap/icon_报表浏览.png | Bin .../data/back_pixmap/icon_报表管理.png | Bin .../back_pixmap/icon_报表管理_sel.png | Bin .../data/back_pixmap/icon_报表编辑.png | Bin .../data/back_pixmap/icon_拓扑图.png | Bin .../data/back_pixmap/icon_挂牌.png | Bin .../data/back_pixmap/icon_排班.png | Bin .../data/back_pixmap/icon_接线图.png | Bin .../data/back_pixmap/icon_控制策略.png | Bin .../back_pixmap/icon_控制策略_sel.png | Bin .../data/back_pixmap/icon_操作票.png | Bin .../data/back_pixmap/icon_放电量.png | Bin .../data/back_pixmap/icon_故障录波.png | Bin .../data/back_pixmap/icon_文档配置.png | Bin .../back_pixmap/icon_文档配置_sel.png | Bin .../data/back_pixmap/icon_日志-1.png | Bin .../data/back_pixmap/icon_日志.png | Bin .../data/back_pixmap/icon_曲线.png | Bin .../data/back_pixmap/icon_机柜.png | Bin .../data/back_pixmap/icon_框.png | Bin .../data/back_pixmap/icon_模拟操作.png | Bin .../data/back_pixmap/icon_消防.png | Bin .../data/back_pixmap/icon_温度.png | Bin .../data/back_pixmap/icon_点修改.png | Bin .../data/back_pixmap/icon_用户管理.png | Bin .../back_pixmap/icon_用户管理_sel.png | Bin .../data/back_pixmap/icon_用户组管理.png | Bin .../data/back_pixmap/icon_电压.png | Bin .../data/back_pixmap/icon_电池堆数据.png | Bin .../data/back_pixmap/icon_电池簇数据.png | Bin .../data/back_pixmap/icon_电流-1.png | Bin .../data/back_pixmap/icon_电流.png | Bin .../data/back_pixmap/icon_监控.png | Bin .../data/back_pixmap/icon_监控线路.png | Bin .../data/back_pixmap/icon_监控首页.png | Bin .../back_pixmap/icon_监控首页_sel.png | Bin .../data/back_pixmap/icon_站点.png | Bin .../data/back_pixmap/icon_策略.png | Bin .../data/back_pixmap/icon_箱变测控.png | Bin .../data/back_pixmap/icon_系统设置.png | Bin .../back_pixmap/icon_系统设置_sel.png | Bin .../data/back_pixmap/icon_网络.png | Bin .../data/back_pixmap/icon_网络拓扑.png | Bin .../data/back_pixmap/icon_联动.png | Bin .../data/back_pixmap/icon_能耗分析.png | Bin .../data/back_pixmap/icon_能耗总览.png | Bin .../data/back_pixmap/icon_能耗报表.png | Bin .../data/back_pixmap/icon_表清单.png | Bin .../data/back_pixmap/icon_计划.png | Bin .../data/back_pixmap/icon_设备信息.png | Bin .../data/back_pixmap/icon_详细数据.png | Bin .../back_pixmap/icon_详细数据_sel.png | Bin .../data/back_pixmap/icon_趋势分析.png | Bin .../back_pixmap/icon_趋势分析_sel.png | Bin .../data/back_pixmap/icon_趋势浏览.png | Bin .../data/back_pixmap/icon_轮询.png | Bin .../data/back_pixmap/icon_轮询配置.png | Bin .../data/back_pixmap/icon_辅助设备.png | Bin .../back_pixmap/icon_辅助设备_sel.png | Bin .../data/back_pixmap/icon_运维首页.png | Bin .../data/back_pixmap/icon_运行简报.png | Bin .../data/back_pixmap/icon_通道设置.png | Bin .../back_pixmap/icon_通道设置_sel.png | Bin .../data/back_pixmap/icon_逻辑编程.png | Bin .../data/back_pixmap/icon_配电系统.png | Bin .../data/back_pixmap/icon_需量.png | Bin .../data/back_pixmap/icon_项目.png | Bin .../data/back_pixmap/icon_顺控.png | Bin .../data/back_pixmap/icon_顺控执行.png | Bin .../data/back_pixmap/icon_首页.png | Bin .../data/back_pixmap/index.png | Bin .../data/back_pixmap/index_background.png | Bin .../data/back_pixmap/item_back.png | Bin .../data/back_pixmap/item_icon.png | Bin .../data/back_pixmap/kehua logo.png | Bin .../data/back_pixmap/load.gif | Bin .../data/back_pixmap/logo.png | Bin .../data/back_pixmap/logo_bg.png | Bin .../data/back_pixmap/logo_line.png | Bin .../data/back_pixmap/mute.png | Bin .../data/back_pixmap/nav_background.png | Bin .../data/back_pixmap/overlook.gif | Bin .../data/back_pixmap/pause.png | Bin .../data/back_pixmap/pcs.png | Bin .../data/back_pixmap/pcs_3d.png | Bin .../data/back_pixmap/play.png | Bin .../data/back_pixmap/pointer 1.png | Bin .../data/back_pixmap/pointer.png | Bin .../data/back_pixmap/rec_1.png | Bin .../data/back_pixmap/rec_1_arrow.png | Bin .../data/back_pixmap/relyez-title.png | Bin .../data/back_pixmap/relyez-title_zh.png | Bin .../data/back_pixmap/selected.png | Bin .../data/back_pixmap/sound.png | Bin .../data/back_pixmap/title1_sel.png | Bin .../data/back_pixmap/title_arrow.png | Bin .../data/back_pixmap/title_nor.png | Bin .../data/back_pixmap/top.png | Bin .../data/back_pixmap/top_0.png | Bin .../data/back_pixmap/top_1.png | Bin .../data/back_pixmap/uncheck.png | Bin .../data/back_pixmap/unchecked.png | Bin .../data/back_pixmap/unselect.png | Bin .../data/back_pixmap/user.png | Bin .../data/back_pixmap/zoomfit.png | Bin .../data/back_pixmap/zoomin.png | Bin .../data/back_pixmap/zoomout.png | Bin .../data/back_pixmap/一体机.png | Bin .../data/back_pixmap/一体机背景.png | Bin .../data/back_pixmap/上一帧.png | Bin .../data/back_pixmap/上一页.png | Bin .../data/back_pixmap/下一帧.png | Bin .../data/back_pixmap/下一页.png | Bin .../data/back_pixmap/中压进线柜.png | Bin .../data/back_pixmap/主机.png | Bin .../data/back_pixmap/事件.png | Bin .../data/back_pixmap/事故列表.png | Bin .../data/back_pixmap/云动力系统.png | Bin .../data/back_pixmap/交流器.png | Bin .../data/back_pixmap/产品集合.png | Bin .../data/back_pixmap/今日充电量.png | Bin .../data/back_pixmap/今日放电量.png | Bin .../data/back_pixmap/仪表.png | Bin .../data/back_pixmap/停止.png | Bin .../data/back_pixmap/储能回路单元.png | Bin .../data/back_pixmap/充放电状态.png | Bin .../data/back_pixmap/全屏截图.png | Bin .../data/back_pixmap/北_斜.png | Bin .../data/back_pixmap/区变.png | Bin .../data/back_pixmap/区域截图.png | Bin .../data/back_pixmap/协调控制器.png | Bin .../data/back_pixmap/单体_soc.png | Bin .../data/back_pixmap/单体_电池.png | Bin .../back_pixmap/单体温度_极差值.png | Bin .../back_pixmap/单体电压_极差值.png | Bin .../data/back_pixmap/南_斜.png | Bin .../data/back_pixmap/南_正.png | Bin .../data/back_pixmap/变压器柜.png | Bin .../data/back_pixmap/可充电量.png | Bin .../data/back_pixmap/可放电量.png | Bin .../data/back_pixmap/向右线-.png | Bin .../data/back_pixmap/向右线.png | Bin .../data/back_pixmap/向左线.png | Bin .../data/back_pixmap/告警.png | Bin .../data/back_pixmap/告警中.png | Bin .../data/back_pixmap/告警追忆.png | Bin .../back_pixmap/四层柴发机房1-斜.png | Bin .../data/back_pixmap/存储服务器.png | Bin .../back_pixmap/实时监控_充电量.png | Bin .../back_pixmap/实时监控_放电量.png | Bin .../data/back_pixmap/导航栏.png | Bin .../data/back_pixmap/就地.png | Bin .../data/back_pixmap/工作站.png | Bin .../data/back_pixmap/快进.png | Bin .../data/back_pixmap/慢放.png | Bin .../data/back_pixmap/报警.png | Bin .../data/back_pixmap/指针.png | Bin .../data/back_pixmap/接线图-选中.png | Bin .../data/back_pixmap/接线图.png | Bin .../data/back_pixmap/推图.png | Bin .../data/back_pixmap/推图old.png | Bin .../data/back_pixmap/推图中.png | Bin .../data/back_pixmap/推图中old.png | Bin .../data/back_pixmap/摄像头.png | Bin .../data/back_pixmap/整流柜.png | Bin .../data/back_pixmap/更多-选中.png | Bin .../data/back_pixmap/更多.png | Bin .../data/back_pixmap/柴发.png | Bin .../back_pixmap/格力电子鸟瞰图.jpg | Bin .../data/back_pixmap/正向隔离装置.png | Bin .../data/back_pixmap/消防_主电状态.png | Bin .../data/back_pixmap/消防_分区数量.png | Bin .../data/back_pixmap/消防_备电状态.png | Bin .../data/back_pixmap/消防_瓶头阀.png | Bin .../data/back_pixmap/消防_警铃.png | Bin .../data/back_pixmap/消防_通讯状态.png | Bin .../data/back_pixmap/液冷柜内部.png | Bin .../data/back_pixmap/温度制冷.png | Bin .../data/back_pixmap/温度制冷_目标.png | Bin .../data/back_pixmap/温度制冷_设定.png | Bin .../data/back_pixmap/温度制热.png | Bin .../data/back_pixmap/温度制热_目标.png | Bin .../data/back_pixmap/温度制热_设定.png | Bin .../data/back_pixmap/温度告警.png | Bin .../data/back_pixmap/温度告警_目标.png | Bin .../data/back_pixmap/温度告警_设定.png | Bin .../data/back_pixmap/点标签.png | Bin .../data/back_pixmap/电度表.png | Bin .../data/back_pixmap/电池.png | Bin .../data/back_pixmap/电池堆_soc.png | Bin .../back_pixmap/电池堆_健康状态.png | Bin .../data/back_pixmap/电池堆_电压.png | Bin .../data/back_pixmap/电池堆_电流.png | Bin .../data/back_pixmap/电网.png | Bin .../data/back_pixmap/登录-密码-1.png | Bin .../data/back_pixmap/登录-密码.png | Bin .../data/back_pixmap/登录-用户-1.png | Bin .../data/back_pixmap/登录-用户.png | Bin .../data/back_pixmap/登录弹窗背景.png | Bin .../data/back_pixmap/登录背景.png | Bin .../data/back_pixmap/登录背景2.png | Bin .../data/back_pixmap/白灯.png | Bin .../data/back_pixmap/监控平台-选中.png | Bin .../data/back_pixmap/监控平台.png | Bin .../data/back_pixmap/监控服务器.png | Bin .../data/back_pixmap/站内3D.png | Bin .../data/back_pixmap/箭头.png | Bin .../data/back_pixmap/箱变保护测控.png | Bin .../data/back_pixmap/簇SOC_极差值.png | Bin .../data/back_pixmap/簇电压_极差值.png | Bin .../data/back_pixmap/累计充电量.png | Bin .../data/back_pixmap/累计放电量.png | Bin .../data/back_pixmap/红灯.png | Bin .../data/back_pixmap/绿灯.png | Bin .../data/back_pixmap/网络交换机.png | Bin .../data/back_pixmap/背景.png | Bin .../data/back_pixmap/背景_light.png | Bin .../data/back_pixmap/背景_unuse.png | Bin .../data/back_pixmap/负载.png | Bin .../data/back_pixmap/轮询.png | Bin .../data/back_pixmap/辅助设备-pcs.png | Bin .../data/back_pixmap/辅助设备-消防.png | Bin .../back_pixmap/辅助设备-温湿器.png | Bin .../data/back_pixmap/辅助设备-电表.png | Bin .../data/back_pixmap/远信云平台.png | Bin .../data/back_pixmap/远方.png | Bin .../data/back_pixmap/退出.png | Bin .../data/back_pixmap/退出弹窗背景.png | Bin .../back_pixmap/鄂州机场平面图.png | Bin .../data/back_pixmap/铜排监测-选中.png | Bin .../data/back_pixmap/铜排监测.png | Bin .../data/back_pixmap/防火墙.png | Bin .../data/back_pixmap/额定功率.png | Bin .../data/back_pixmap/额定容量.png | Bin .../data/back_pixmap/馈线柜.png | Bin .../data/back_pixmap/首页-选中.png | Bin .../data/back_pixmap/首页.png | Bin .../data/back_pixmap/首页底图.jpg | Bin .../data/back_pixmap/高压柜.png | Bin .../data/back_pixmap/黄灯.png | Bin .../data/config/db_his_data_srv_cfg.xml | 0 .../data/config/db_manager_cfg.xml | 0 .../data/config/pathallow.xml | 0 .../data/config/变压器.time | 0 .../config61850/61850ImportCfg-高厂变.xlsx | Bin .../data/config61850/61850ImportCfg.xlsx | Bin .../data/config61850}/AH101.cid | 0 .../继保间/61850ImportCfg-ECS.xlsx | Bin .../data/config61850/继保间/FBAP343.cid | 0 .../data/config61850/继保间/FBAP5.cid | 0 .../data/config61850/继保间/FBAP643.cid | 0 .../data/config61850/继保间/FBBP343.cid | 0 .../data/config61850/继保间/FBBP5.cid | 0 .../data/config61850/继保间/FBBP643.cid | 0 .../data/config61850/继保间/FBCCK.cid | 0 .../data/config61850/继保间/FBCFDL.cid | 0 .../data/config61850/继保间/XLCK.cid | 0 .../data/config61850/继保间/XLP543.cid | 0 .../高厂变/61850ImportCfg-高厂变.xlsx | Bin .../data/config61850/高厂变}/AH101.cid | 0 .../data/config61850/高厂变/AH102.cid | 0 .../data/config61850/高厂变/AH103.cid | 0 .../data/config61850/高厂变/AH104.cid | 0 .../data/config61850/高厂变/AH105.cid | 0 .../data/config61850/高厂变/AH106.cid | 0 .../data/config61850/高厂变/AH107.cid | 0 .../data/config61850/高厂变/AH109.cid | 0 .../data/config61850/高厂变/AH109.icd | 0 .../data/config61850/高厂变/AH110.cid | 0 .../data/config61850/高厂变/AH111.cid | 0 .../data/config61850/高厂变/AH112.cid | 0 .../data/config61850/高厂变/AH113.cid | 0 .../data/config61850/高厂变/AH114.cid | 0 .../data/config61850/高厂变/AH114.icd | 0 .../data/config61850/高厂变/AH115.cid | 0 .../data/config61850/高厂变/AH115.icd | 0 .../data/config61850/高厂变/AH201.cid | 0 .../data/config61850/高厂变/AH202.cid | 0 .../data/config61850/高厂变/AH203.cid | 0 .../data/config61850/高厂变/AH204.cid | 0 .../data/config61850/高厂变/AH205.cid | 0 .../data/config61850/高厂变/AH205.icd | 0 .../data/config61850/高厂变/AH206.cid | 0 .../data/config61850/高厂变/AH207.cid | 0 .../data/config61850/高厂变/AH209.cid | 0 .../data/config61850/高厂变/AH209.icd | 0 .../data/config61850/高厂变/AH210.cid | 0 .../data/config61850/高厂变/AH211.cid | 0 .../data/config61850/高厂变/AH212.cid | 0 .../data/config61850/高厂变/AH213.cid | 0 .../data/config61850/高厂变/AH215.cid | 0 .../data/config61850/高厂变/AH215.icd | 0 .../data/fbd_designer/AGC功率分配.xml | 0 .../data/fbd_designer/AGC功率分配1-50.xml | 0 .../data/fbd_designer/alarm_push_test.xml | 0 .../data/fbd_designer/time_trigger.xml | 0 .../data/fbd_designer/告警策略.xml | 0 .../data/fes/EMS_osicfg.xml | 0 .../data/fes/PSCADA_osicfg.xml | 0 .../data/fes/SPMS_osicfg.xml | 0 .../data/fes/cdts.xml | 0 .../data/fes/fesConfig.xml | 0 .../data/fes/fespartdatazf.xml | 0 .../data/fes/hmjs104.xml | 0 .../data/fes/iec101s.xml | 0 .../data/fes/iec103.xml | 0 .../data/fes/iec104.xml | 0 .../data/fes/iec104s.xml | 0 .../data/fes/iec61850_clientV3.xml | 0 .../data/fes/logcfg.xml | 0 .../data/fes/mmsconfig.ini | 0 .../data/fes/modbus_rtu_dt.xml | 0 .../data/fes/modbus_rtu_s.xml | 0 .../data/fes/modbus_tcp_mz.xml | 0 .../data/fes/modbus_tcp_s.xml | 0 .../data/fes/modbus_tcp_s_V2.xml | 0 .../data/fes/modbustcps.xml | 0 .../data/fes/mqtt_topic_cfg58.csv | 0 .../data/fes/mqtt_yxCloud.xml | 0 .../data/fes/siemens103_tcp.xml | 0 .../data/fes/snmpWiseWay3.xml | 0 .../data/fes/snmpv3.xml | 0 .../data/fes/sqlserver_s.xml | 0 .../data/fes/wfudpcdt.xml | 0 .../data/fes/yxcloud_mqtt_wn.xml | 0 .../data/icon/NewCB.ilx | 0 .../data/icon/NewCB2.ilx | 0 .../data/icon/三卷变YYV.ilx | 0 .../data/icon/三卷变压器.ilx | 0 .../data/icon/三相电压.ilx | 0 .../data/icon/三相电流功率.ilx | 0 .../data/icon/三角形.ilx | 0 .../两卷变压器三角形三角形.ilx | 0 .../icon/两卷变压器三角形星形.ilx | 0 .../icon/两卷变压器星形三角形.ilx | 0 .../data/icon/中压CT.ilx | 0 .../data/icon/中压CTs.ilx | 0 .../data/icon/中压PT.ilx | 0 .../data/icon/中压PT_刀闸.ilx | 0 .../data/icon/中压PT_反.ilx | 0 .../data/icon/中压PTs.ilx | 0 .../data/icon/中压母联.ilx | 0 .../data/icon/中压母联_刀闸.ilx | 0 .../data/icon/中压母联_双刀闸.ilx | 0 .../data/icon/中压母联s.ilx | 0 .../data/icon/中压进线.ilx | 0 .../data/icon/中压进线H.ilx | 0 .../data/icon/中压进线H_刀闸.ilx | 0 .../data/icon/中压进线H_双刀闸.ilx | 0 .../data/icon/中压进线Hs.ilx | 0 .../data/icon/中压隔离.ilx | 0 .../data/icon/中压隔离_刀闸.ilx | 0 .../data/icon/中压隔离s.ilx | 0 .../data/icon/中压馈线.ilx | 0 .../data/icon/中压馈线H_刀闸.ilx | 0 .../data/icon/中压馈线_刀闸.ilx | 0 .../data/icon/中压馈线_双刀闸.ilx | 0 .../data/icon/中压馈线s.ilx | 0 .../data/icon/主备状态.ilx | 0 .../data/icon/主电状态.ilx | 0 .../data/icon/仪表盘.ilx | 0 .../data/icon/仪表通讯.ilx | 0 .../data/icon/低压开关.ilx | 0 .../data/icon/低压断路器.ilx | 0 .../data/icon/低压断路器_不可控.ilx | 0 .../data/icon/低压进线.ilx | 0 .../data/icon/低压馈线.ilx | 0 .../data/icon/低压馈线H.ilx | 0 .../data/icon/低压馈线H_接触器.ilx | 0 .../data/icon/低压马达.ilx | 0 .../data/icon/光字牌.ilx | 0 .../data/icon/刀闸.ilx | 0 .../data/icon/分裂电抗器.ilx | 0 .../data/icon/压板.ilx | 0 .../data/icon/发电机.ilx | 0 .../data/icon/四卷变压器_横.ilx | 0 .../data/icon/四卷变压器_竖.ilx | 0 .../data/icon/带熔断器刀闸.ilx | 0 .../data/icon/带电指示器.ilx | 0 .../data/icon/快速接地刀.ilx | 0 .../data/icon/手车_上.ilx | 0 .../data/icon/手车_下.ilx | 0 .../data/icon/把手.ilx | 0 .../data/icon/投入退出.ilx | 0 .../data/icon/挂牌.ilx | 0 .../data/icon/探测器状态.ilx | 0 .../data/icon/接地.ilx | 0 .../data/icon/接地刀闸.ilx | 0 .../data/icon/接触器.ilx | 0 .../data/icon/摄像头.ilx | 0 .../data/icon/数字量点标签.ilx | 0 .../data/icon/断路器 - 副本.ilx | 0 .../data/icon/断路器.ilx | 0 .../data/icon/断路器_控制.ilx | 0 .../data/icon/模拟量点标签.ilx | 0 .../data/icon/横向接地刀闸.ilx | 0 .../data/icon/母线电压.ilx | 0 .../data/icon/母联.ilx | 0 .../data/icon/测控_远方状态.ilx | 0 .../data/icon/牵引变压器_四卷.ilx | 0 .../data/icon/牵引变压器_横.ilx | 0 .../data/icon/牵引变压器_竖.ilx | 0 .../data/icon/状态3D_白黄.ilx | 0 .../data/icon/状态3D_绿红.ilx | 0 .../data/icon/状态_红绿蓝.ilx | 0 .../data/icon/电动机.ilx | 0 .../data/icon/电压互感器PT.ilx | 0 .../data/icon/电压互感器三绕组.ilx | 0 .../data/icon/电压互感器两绕组.ilx | 0 .../data/icon/电压互感器四绕组.ilx | 0 .../data/icon/电容.ilx | 0 .../data/icon/电容器.ilx | 0 .../data/icon/电抗器.ilx | 0 .../data/icon/电机.ilx | 0 .../data/icon/电流互感器.ilx | 0 .../data/icon/电缆.ilx | 0 .../data/icon/硬压板.ilx | 0 .../data/icon/竖向.ilx | 0 .../data/icon/装置_通讯状态.ilx | 0 .../data/icon/调频状态.ilx | 0 .../data/icon/负荷开关.ilx | 0 .../data/icon/转换开关3D_远方就地.ilx | 0 .../data/icon/转换开关_投入退出.ilx | 0 .../data/icon/转换开关_联锁解锁.ilx | 0 .../data/icon/转换开关_远方就地.ilx | 0 .../icon/转换开关_远方就地退出.ilx | 0 .../data/icon/运行停止.ilx | 0 .../data/icon/运行状态.ilx | 0 .../data/icon/进线.ilx | 0 .../data/icon/远方就地.ilx | 0 .../data/icon/远方就地_LR.ilx | 0 .../data/icon/通信状态字描述.ilx | 0 .../data/icon/通断状态.ilx | 0 .../data/icon/通用状态.ilx | 0 .../data/icon/通用状态无效.ilx | 0 .../data/icon/通讯状态.ilx | 0 .../data/icon/通道状态.ilx | 0 .../data/icon/避雷器.ilx | 0 .../data/icon/隔离开关.ilx | 0 .../data/icon/静止无功补偿器.ilx | 0 .../data/icon/馈线.ilx | 0 .../data/icon/高压PT.ilx | 0 .../data/icon/高压PT2.ilx | 0 .../data/icon/高压母联.ilx | 0 .../data/icon/高压进线.ilx | 0 .../data/icon/高压避雷器.ilx | 0 .../data/icon/高压馈线.ilx | 0 .../data/icon/高压馈线2.ilx | 0 .../mod_instance/设备实例-高泰.xlsx | Bin .../data/model/ButtonGroupWidget.json | 0 .../data/model/DevGroupLock.json | 0 .../data/model/GradModel.ini | 0 .../data/model/NavigationWidget.json | 0 .../data/model/alarm_color_define.xml | 0 .../data/model/colorConfig.xml | 0 .../data/model/hmi.json | 0 .../data/model/hmiRoll.xml | 0 .../data/model/iconAction.json | 0 .../data/model/publish.json | 0 .../data/model/qt_zh_CN.qm | Bin .../data/model/report.xml | 0 .../data/model/retriever.xml | 0 .../data/model/style.xml | 0 .../data/model/switchSetting.xml | 0 .../data/model/toolbox.xml | 0 .../SG管理机模版/data/model/toolopen.xml | 7 + .../data/model/trendgraph.xml | 0 .../data/model/wordlist.txt | 0 .../data/modelstudio/ModelConfig.ini | 0 .../data/pic/index.glx | 0 .../10kV厂用电主接线图.glx | 0 .../110kV发电三期主接线图.glx | 0 .../实时监控/低压厂用电接线图.glx | 0 .../实时监控/全厂串口通讯图.glx | 0 .../data/pic/实时监控/全厂潮流图.glx | 0 .../实时监控/全厂网络通道图.glx | 0 .../data/pic/实时监控/全厂骨干网.glx | 0 .../data/pic/实时监控/四宫格.glx | 0 .../实时监控/数据表格控件模板.glx | 0 .../data/pic/实时监控/母线测温.glx | 0 .../data/pic/实时监控/站内布置图.glx | 0 .../继保间/1#直流屏监控图.glx | 0 .../继保间/110kV电子间/110kVXLP.glx | 0 .../110kV电子间/2AS同期装置.glx | 0 .../BT9301上海利乾/BT9301A-4n.glx | 0 .../BT9301上海利乾/BT9301G-1n.glx | 0 .../BT9301上海利乾/BT9301G-3n.glx | 0 .../继保间/110kV电子间/CKP.glx | 0 .../继保间/110kV电子间/FBPC.glx | 0 .../继保间/110kV电子间/冷风机.glx | 0 .../110kV电子间/发变组测控A屏.glx | 0 .../110kV电子间/发变组测控B屏.glx | 0 .../继保间/110kV电子间/微机励磁.glx | 0 .../继保间/110kV电子间/快切.glx | 0 .../继保间/2#直流屏监控图.glx | 0 .../实时监控/继保间/UPS监控图.glx | 0 .../继保间/全厂网络架构图.glx | 0 .../继保间/小电流选线监控.glx | 0 .../pic/实时监控/继保间/快切.glx | 0 .../继保间/汇川凝泵变频器.glx | 0 .../实时监控/继保间/消谐装置.glx | 0 .../data/pic/实时监控/首页-old.glx | 0 .../data/pic/实时监控/首页.glx | 0 .../data/pic/界面框架/BatchOperation.glx | 0 .../data/pic/界面框架/Batchperation.glx | 0 .../data/pic/界面框架/alarm_window.glx | 0 .../pic/界面框架/alarm_window_dialog.glx | 0 .../data/pic/界面框架/event_window.glx | 0 .../data/pic/界面框架/frame_footer.glx | 0 .../pic/界面框架/frame_footer_unuse.glx | 0 .../data/pic/界面框架/frame_header.glx | 0 .../pic/界面框架/frame_navigation.glx | 0 .../界面框架/frame_navigation_more.glx | 0 .../frame_navigation_realtime.glx | 0 .../data/pic/界面框架/interval_custom.glx | 0 .../pic/界面框架/interval_instrument.glx | 0 .../data/pic/界面框架/interval_meter.glx | 0 .../pic/界面框架/interval_protect.glx | 0 .../data/pic/界面框架/interval_relay.glx | 0 .../pic/界面框架/panel_accuml_ctrl.glx | 0 .../pic/界面框架/panel_alarm_push.glx | 0 .../pic/界面框架/panel_analog_set.glx | 0 .../pic/界面框架/panel_const_read.glx | 0 .../pic/界面框架/panel_const_switch.glx | 0 .../pic/界面框架/panel_ctrl_verify.glx | 0 .../pic/界面框架/panel_direct_ctrl.glx | 0 .../pic/界面框架/panel_direct_ctrl0.glx | 0 .../pic/界面框架/panel_direct_ctrl1.glx | 0 .../pic/界面框架/panel_direct_ctrl2.glx | 0 .../pic/界面框架/panel_group_limit.glx | 0 .../pic/界面框架/panel_group_maint.glx | 0 .../pic/界面框架/panel_group_more.glx | 0 .../data/pic/界面框架/panel_hint_info.glx | 0 .../data/pic/界面框架/panel_login.glx | 0 .../pic/界面框架/panel_login_exit.glx | 0 .../pic/界面框架/panel_login_lock.glx | 0 .../pic/界面框架/panel_oper_verify.glx | 0 .../pic/界面框架/panel_opt_ticket.glx | 0 .../pic/界面框架/panel_point_lock.glx | 0 .../pic/界面框架/panel_recall_alarm.glx | 0 .../pic/界面框架/panel_recall_list.glx | 0 .../pic/界面框架/panel_recall_toolbar.glx | 0 .../界面框架/panel_remote_ctrl-gdw.glx | 0 .../pic/界面框架/panel_remote_ctrl.glx | 0 .../界面框架/panel_remote_ctrl0000.glx | 0 .../pic/界面框架/panel_reset_ctrl.glx | 0 .../pic/界面框架/panel_roll_switch.glx | 0 .../pic/界面框架/panel_tag_operate.glx | 0 .../pic/界面框架/panel_ticket_manage.glx | 0 .../界面框架/panel_transformer_ctrl.glx | 0 .../pic/界面框架/panel_trend_curve.glx | 0 .../pic/界面框架/panel_video_linkage.glx | 0 .../pic/界面框架/panel_video_paly.glx | 0 .../pic/界面框架/panel_video_viewer.glx | 0 .../pic/界面框架/panel_video_wall.glx | 0 .../data/pic/界面框架/reportdesign.glx | 0 .../data/pic/界面框架/reportview.glx | 0 .../pic/界面框架/view_alarm_Statis.glx | 0 .../pic/界面框架/view_alarm_analyze.glx | 0 .../pic/界面框架/view_alarm_manage.glx | 0 .../pic/界面框架/view_alarm_shield.glx | 0 .../pic/界面框架/view_alarm_strategy.glx | 0 .../data/pic/界面框架/view_bi_browser.glx | 0 .../data/pic/界面框架/view_bi_design.glx | 0 .../data/pic/界面框架/view_bi_view.glx | 0 .../pic/界面框架/view_chan_status.glx | 0 .../pic/界面框架/view_const_curves.glx | 0 .../pic/界面框架/view_const_groupsw.glx | 0 .../pic/界面框架/view_const_manage.glx | 0 .../pic/界面框架/view_device_list.glx | 0 .../data/pic/界面框架/view_doc_manage.glx | 0 .../pic/界面框架/view_duty_manger.glx | 0 .../pic/界面框架/view_fault_record.glx | 0 .../data/pic/界面框架/view_hand_panel.glx | 0 .../pic/界面框架/view_invtime_curve.glx | 0 .../data/pic/界面框架/view_linkage.glx | 0 .../data/pic/界面框架/view_maint_list.glx | 0 .../data/pic/界面框架/view_media.glx | 0 .../pic/界面框架/view_recall_setting.glx | 0 .../pic/界面框架/view_robot_linkage.glx | 0 .../pic/界面框架/view_roll_setting.glx | 0 .../data/pic/界面框架/view_run_report.glx | 0 .../data/pic/界面框架/view_sequence.glx | 0 .../pic/界面框架/view_serial_status.glx | 0 .../pic/界面框架/view_shield_list.glx | 0 .../pic/界面框架/view_shift_manage.glx | 0 .../pic/界面框架/view_sim_operate.glx | 0 .../pic/界面框架/view_system_setting.glx | 0 .../pic/界面框架/view_ticket_manage.glx | 0 .../pic/界面框架/view_ticket_search.glx | 0 .../data/pic/界面框架/view_token_list.glx | 0 .../data/pic/界面框架/view_trend.glx | 0 .../data/pic/界面框架/view_user_group.glx | 0 .../pic/界面框架/view_user_manage.glx | 0 .../pic/界面框架/view_wave_analyze.glx | 0 .../data/pic/界面框架/view_web_energy.glx | 0 .../pic/界面框架/view_work_ticket.glx | 0 .../data/pic/界面框架/导航栏.glx | 0 .../data/picbackup.tar.gz | Bin .../protect/branchSetting/全部名称.csv | 0 .../data/protect/deviceList.csv | 0 .../XK1001_RCD_0_20240416_105916_461.cfg | 0 .../XK1001_RCD_0_20240416_105916_461.dat | 0 .../XK1001_RCD_0_20240416_105916_461.des | 0 .../XK1001_RCD_0_20240416_105916_461.hdr | 0 .../XK1001_RCD_0_20240416_105916_461.mid | 0 ...PQMonitor_PQM1_001_20220502_151718_839.cfg | 0 ...PQMonitor_PQM1_001_20220502_151718_839.dat | Bin ...PQMonitor_PQM1_001_20220502_151718_839.hdr | 0 ...PQMonitor_PQM1_001_20220502_151718_839.inf | 0 ...PQMonitor_PQM1_001_20220926_173250_750.cfg | 0 ...PQMonitor_PQM1_001_20220926_173250_750.dat | Bin ...PQMonitor_PQM1_001_20220926_173250_750.hdr | 0 ...PQMonitor_PQM1_001_20220926_173250_750.inf | 0 ...PQMonitor_PQM1_002_20220502_151847_028.cfg | 0 ...PQMonitor_PQM1_002_20220502_151847_028.dat | Bin ...PQMonitor_PQM1_002_20220502_151847_028.hdr | 0 ...PQMonitor_PQM1_002_20220502_151847_028.inf | 0 .../data/report/FAIL_PAGE.html | 0 .../data/report/PERM_FORBIT_EDIT.html | 0 .../data/report/PERM_FORBIT_VIEW.html | 0 .../10kV厂用电日电度报表.log | 0 .../10kV厂用电日运行报表.log | 0 .../data/script/commonBtn.qs | 0 .../data/script/commonOpt.qs | 0 .../data/script/commonTree(复件).qs | 0 .../data/script/commonTree.qs | 0 .../data/script/lockOpt.qs | 0 .../data/script/macros.7z | Bin .../data/script/macros.qs | 0 .../data/script/panel_ctrl_1N.qs | 0 .../data/script/panel_ctrl_digital.qs | 0 .../data/script/pscadaOpt.qs | 0 .../data/script/scriptCfg.qs | 0 .../data/scriptbackup.tar.gz | Bin .../data/sound/Default.wav | Bin .../data/sound/JUMP_EN.WAV | Bin .../data/sound/OVER6.WAV | Bin .../data/sound/ROOSTER.wav | Bin .../data/sound/保护SOE报警.WAV | Bin .../data/sound/保护报警.wav | Bin .../data/sound/保护报警1.WAV | Bin .../data/sound/关闭.WAV | Bin .../data/sound/刀闸报警.wav | Bin .../data/sound/向上还原.WAV | Bin .../data/sound/向下还原.WAV | Bin .../data/sound/嘟嘟声.wav | Bin .../data/sound/幻想空间默认值.WAV | Bin .../data/sound/开关.Wav | Bin .../data/sound/开关1003.Wav | Bin .../data/sound/开关1004.wav | Bin .../data/sound/总功报警.wav | Bin .../data/sound/感叹.WAV | Bin .../data/sound/打开.WAV | Bin .../data/sound/报警.wav | Bin .../data/sound/提示.WAV | Bin .../data/sound/提问.WAV | Bin .../data/sound/最大化.wav | Bin .../data/sound/最小化.wav | Bin .../data/sound/清空回收站.wav | Bin .../data/sound/状态报警.wav | Bin .../data/sound/电笛.WAV | Bin .../data/sound/电铃.WAV | Bin .../data/sound/菜单命令.WAV | Bin .../data/sound/菜单弹出.WAV | Bin .../data/sound/蜂鸣器.WAV | Bin .../data/sound/错误.WAV | Bin .../data/sound/预告报警.wav | Bin .../sys_model_info/SYS_MODEL_APP_INFO.xml | 0 .../SYS_MODEL_DBCONFIG_DOMAIN.xml | 4 + .../SYS_MODEL_DBCONFIG_NODE.xml | 4 + .../sys_model_info/SYS_MODEL_DEPLOY_INFO.xml | 4 +- .../sys_model_info/SYS_MODEL_DOMAIN_INFO.xml | 0 .../SYS_MODEL_LOCATION_INFO.xlsx | Bin .../SYS_MODEL_LOCATION_INFO.xml | 0 .../sys_model_info/SYS_MODEL_MSG_RELAY.xml | 0 .../sys_model_info/SYS_MODEL_NODE_INFO.xlsx | Bin .../sys_model_info/SYS_MODEL_NODE_INFO.xml | 5 + .../sys_model_info/SYS_MODEL_PROCESS_INFO.xml | 1 + .../SYS_MODEL_SUB_SYSTEM_INFO.xml | 0 .../3D/a-03adroghm_jknmfo87f2.glb | Bin .../-us3al30_08rxql6zlbfc5.json | 0 .../1al160nobkq99noy8v-7iu.json | 0 .../24i-g2jx_u66rua28zzjrx.json | 0 .../326ckzbji8i3kudupaonfy.json | 0 .../3n_t3p088qeqbcph_-zqsq.json | 0 .../3xnj28pkwe9up4734md9cq.json | 0 .../51ozdkblrwkq1-coyqdavr.json | 0 .../5l_ivsx1wrkdabd0fit4o9.json | 0 .../5vmsu53hzzwhsfoczkab6k.json | 0 .../6kkccamzzlg9dxoxvta1ke.json | 0 .../74k25ecsgwymadilkmnksy.json | 0 .../7t66ynjth02_38z1o9yprc.json | 0 .../88y0rzhv78wpvtuk885uhw.json | 0 .../9fqt8r-8mgbzczioj2q2ab.json | 0 .../9n5jvyspzyaumcnmct6q6w.json | 0 .../_1un7dc-vmhr1tzr-mc7a8.json | 0 .../ba25z619z9dyev2q1c801b.json | 0 .../clcn74yb-cm9h_gxloic71.json | 0 .../exaglht1330kbqama32-jj.json | 0 .../fxzw0d6u5_8sub1-xubx8e.json | 0 .../g0upy3ebnkrgbkac306vtz.json | 0 .../h8g2j6ic7_xx99t8-iuose.json | 0 .../i5run9zaljl9kgdrx_89b6.json | 0 .../jfa6v6-4fvm3l9i1jve934.json | 0 .../l44vzhrahws736r92zp2da.json | 0 .../lzsr-0361tmv3uf8nytmae.json | 0 .../m08l1qgxsdmz8wm23j7evz.json | 0 .../m1shfjtzwid_sp4-3d30jp.json | 0 .../ma6zn_5lh-__1ao7_7ql64.json | 0 .../r4u6gxkexo-cwg8dfw34-c.json | 0 .../rn1w_xi5_9i1ht0w9yyfzu.json | 0 .../uf-_-b52ku7-ld--efct32.json | 0 .../vlwu4ysip_ef7lp_omhtmh.json | 0 .../wh0bkhhwlonmzw00o09qh-.json | 0 .../wl6uwti7r3dpnopuh4_3k4.json | 0 .../x36ola2i6ye-ve7tisl74c.json | 0 .../xvicq_i6ltyfuuzs80jhb6.json | 0 .../yc5_ue_2om-tp_h-xr7qf5.json | 0 .../yupe96zsizpzfii7k-0nfr.json | 0 .../zc8lj2p90emu4yconf9_ic.json | 0 .../config/1/json/tnlycze_ruoop3s4h4oc9w.json | 0 .../data/xm_alm_send/Xm_Alarm_Send_Config.xml | 0 PSCADA/SG管理机模版/database/accuml.xlsx | Bin 0 -> 11270 bytes .../database/accuml_limit_info.xlsx | Bin 3642 -> 3641 bytes .../database/accuml_map_to_fes.xlsx | Bin 0 -> 6969 bytes .../database/accuml_temp_define.xlsx | Bin 0 -> 12575 bytes .../database/acs_device_info.xlsx | Bin 3386 -> 3385 bytes .../database/acs_device_node_map.xlsx | Bin 3304 -> 3303 bytes .../database/alarm_action_define.xlsx | Bin 3661 -> 3660 bytes .../database/alarm_color.xlsx | Bin 3277 -> 3276 bytes .../database/alarm_keyword_define.xlsx | Bin 5269 -> 5268 bytes .../database/alarm_level_define.xlsx | Bin 3631 -> 3630 bytes .../database/alarm_level_sound_def.xlsx | Bin 3438 -> 3437 bytes .../database/alarm_link_enable_info.xlsx | Bin 3386 -> 3385 bytes .../database/alarm_manner_define.xlsx | Bin 4064 -> 4063 bytes .../database/alarm_sms_config.xlsx | Bin 3413 -> 3412 bytes .../database/alarm_sms_device.xlsx | Bin 3431 -> 3430 bytes .../database/alarm_sms_rule.xlsx | Bin 3372 -> 3371 bytes .../database/alarm_status_define.xlsx | Bin 8399 -> 8398 bytes .../database/alarm_status_dig_set.xlsx | Bin 3482 -> 3481 bytes .../database/alarm_type_define.xlsx | Bin 3596 -> 3595 bytes PSCADA/SG管理机模版/database/analog.xlsx | Bin 0 -> 29501 bytes .../database/analog_control.xlsx | Bin 3556 -> 3555 bytes .../database/analog_limit_info.xlsx | Bin 3668 -> 3667 bytes .../database/analog_map_to_fes.xlsx | Bin 0 -> 17727 bytes .../database/analog_temp_define.xlsx | Bin 0 -> 13016 bytes .../database/apc_analog.xlsx | Bin 3423 -> 3422 bytes .../database/apc_curve.xlsx | Bin 3381 -> 3380 bytes .../database/apc_curve_day_index.xlsx | Bin 3465 -> 3464 bytes .../database/apc_curve_day_tmpl.xlsx | Bin 3356 -> 3355 bytes .../database/apc_curve_day_tmpl_section.xlsx | Bin 3551 -> 3550 bytes .../database/apc_curve_day_value.xlsx | Bin 3590 -> 3589 bytes .../database/apc_curve_type.xlsx | Bin 3360 -> 3359 bytes .../database/apc_curve_week.xlsx | Bin 3515 -> 3514 bytes .../database/apc_curve_year.xlsx | Bin 3492 -> 3491 bytes .../database/apc_digital.xlsx | Bin 3374 -> 3373 bytes .../database/asset_info.xlsx | Bin 3423 -> 3422 bytes .../database/asset_records.xlsx | Bin 3372 -> 3371 bytes .../ats_casco_dynamic_train_data.xlsx | Bin 3456 -> 3455 bytes .../ats_casco_planned_train_data.xlsx | Bin 3443 -> 3442 bytes .../ats_casco_practical_train_data.xlsx | Bin 3489 -> 3488 bytes .../database/ats_fes_location_info.xlsx | Bin 3292 -> 3291 bytes .../database/ats_fes_platform_info.xlsx | Bin 3309 -> 3308 bytes .../database/bas_craft_def.xlsx | Bin 3308 -> 3307 bytes .../database/bas_mode_def.xlsx | Bin 3358 -> 3357 bytes .../database/bas_mode_type.xlsx | Bin 3278 -> 3277 bytes .../database/bas_timetable_ctrl_param.xlsx | Bin 3442 -> 3441 bytes .../database/bas_timetable_def.xlsx | Bin 3327 -> 3326 bytes .../database/bas_timetable_info.xlsx | Bin 3354 -> 3353 bytes .../database/bas_timetable_schedule.xlsx | Bin 3481 -> 3480 bytes .../database/calc_func_def.xlsx | Bin 0 -> 4522 bytes .../database/calc_group_def.xlsx | Bin 0 -> 3461 bytes .../database/calc_in_para.xlsx | Bin 0 -> 3675 bytes .../database/calc_out_para.xlsx | Bin 0 -> 3376 bytes .../database/calc_para_def.xlsx | Bin 0 -> 3544 bytes .../database/cctv_camera_info.xlsx | Bin 3780 -> 3779 bytes .../database/cctv_monitor_info.xlsx | Bin 3463 -> 3462 bytes .../database/cctv_orientation.xlsx | Bin 3610 -> 3609 bytes .../database/cctv_separator_info.xlsx | Bin 3823 -> 3822 bytes .../database/cctv_sequence.xlsx | Bin 4574 -> 4573 bytes .../database/cfg_dev_type_map.xlsx | Bin 3466 -> 3465 bytes .../database/cfg_device_inst.xlsx | Bin 3572 -> 3571 bytes .../database/cfg_signal_inst.xlsx | Bin 11013 -> 11012 bytes .../database/dbop_list.xlsx | Bin 16746739 -> 16765411 bytes .../SG管理机模版/database/dev_group.xlsx | Bin 0 -> 4340 bytes .../SG管理机模版/database/dev_info.xlsx | Bin 0 -> 5155 bytes .../database/dev_temp_def.xlsx | Bin 0 -> 3950 bytes .../database/dev_temp_group.xlsx | Bin 3297 -> 3296 bytes .../database/dev_topo_info.xlsx | Bin 3321 -> 3320 bytes .../database/dev_topo_ver.xlsx | Bin 3296 -> 3295 bytes .../database/dev_type_def.xlsx | Bin 3522 -> 3521 bytes .../database/dev_type_def_61850.xlsx | Bin 0 -> 3628 bytes .../database/dict_menu_info.xlsx | Bin 15950 -> 15949 bytes .../database/dict_point_type.xlsx | Bin 0 -> 13480 bytes .../database/dict_state_text_info.xlsx | Bin 0 -> 4910 bytes .../database/dict_text_define.xlsx | Bin 4821 -> 4820 bytes .../database/dict_unit_info.xlsx | Bin 4162 -> 4161 bytes .../database/dict_vol_level.xlsx | Bin 3658 -> 3657 bytes .../SG管理机模版/database/digital.xlsx | Bin 0 -> 20683 bytes .../database/digital_control.xlsx | Bin 3589 -> 3588 bytes .../database/digital_map_to_fes.xlsx | Bin 0 -> 8426 bytes .../database/digital_temp_define.xlsx | Bin 0 -> 33977 bytes .../database/duty_define.xlsx | Bin 3445 -> 3444 bytes .../database/duty_info.xlsx | Bin 3394 -> 3393 bytes .../database/duty_setting.xlsx | Bin 3313 -> 3312 bytes .../database/event_task_link.xlsx | Bin 3339 -> 3338 bytes .../database/fault_recall_cond_def.xlsx | Bin 3396 -> 3395 bytes .../database/fault_recall_record.xlsx | Bin 3386 -> 3385 bytes .../database/fbd_diagram.xlsx | Bin 9595 -> 9594 bytes .../database/fbd_group.xlsx | Bin 3536 -> 3535 bytes .../database/fbd_template.xlsx | Bin 3312 -> 3311 bytes .../database/fes_accuml.xlsx | Bin 0 -> 10388 bytes .../database/fes_analog.xlsx | Bin 0 -> 34809 bytes .../database/fes_analog_ctrl.xlsx | Bin 3673 -> 3672 bytes .../database/fes_channel_para.xlsx | Bin 0 -> 6844 bytes .../database/fes_const.xlsx | Bin 3794 -> 3793 bytes .../database/fes_const_temp.xlsx | Bin 3709 -> 3708 bytes .../database/fes_data_block.xlsx | Bin 0 -> 8731 bytes .../database/fes_data_block_temp.xlsx | Bin 0 -> 4502 bytes .../database/fes_dev_info.xlsx | Bin 0 -> 4629 bytes .../database/fes_dev_pt_temp_def.xlsx | Bin 0 -> 57761 bytes .../database/fes_dev_temp_def.xlsx | Bin 0 -> 3654 bytes .../database/fes_dev_type_def.xlsx | Bin 3546 -> 3545 bytes .../database/fes_digital.xlsx | Bin 0 -> 12518 bytes .../database/fes_digital_ctrl.xlsx | Bin 0 -> 7557 bytes .../database/fes_mix.xlsx | Bin 3715 -> 3714 bytes .../database/fes_mix_ctrl.xlsx | Bin 3669 -> 3668 bytes .../database/fes_protocol.xlsx | Bin 3985 -> 3984 bytes .../database/fes_rtu_para.xlsx | Bin 0 -> 5591 bytes .../database/forward_accuml.xlsx | Bin 3677 -> 3676 bytes .../database/forward_analog.xlsx | Bin 3709 -> 3708 bytes .../database/forward_analog_ctrl.xlsx | Bin 3688 -> 3687 bytes .../database/forward_digital_ctrl.xlsx | Bin 3776 -> 3775 bytes .../database/forward_digital_double.xlsx | Bin 3680 -> 3679 bytes .../database/forward_digital_single.xlsx | Bin 3680 -> 3679 bytes .../database/forward_mix.xlsx | Bin 3676 -> 3675 bytes .../database/forward_mix_ctrl.xlsx | Bin 3666 -> 3665 bytes .../database/hmi_type_info.xlsx | Bin 3335 -> 3334 bytes .../database/ia_disposal_plan.xlsx | Bin 3321 -> 3320 bytes .../database/linkage_action.xlsx | Bin 3523 -> 3522 bytes .../database/linkage_define.xlsx | Bin 3346 -> 3345 bytes .../database/linkage_function.xlsx | Bin 3559 -> 3558 bytes .../database/linkage_setting.xlsx | Bin 3523 -> 3522 bytes .../database/load_stat_define.xlsx | Bin 3465 -> 3464 bytes .../database/mix.xlsx | Bin 4032 -> 4031 bytes .../database/mix_control.xlsx | Bin 3568 -> 3567 bytes .../database/mix_map_to_fes.xlsx | Bin 3549 -> 3548 bytes .../database/mix_temp_define.xlsx | Bin 3916 -> 3915 bytes .../database/opc_config_define.xlsx | Bin 3450 -> 3449 bytes .../database/opc_config_version.xlsx | Bin 3345 -> 3344 bytes .../database/operation_order_model.xlsx | Bin 3417 -> 3416 bytes .../database/operation_order_model_info.xlsx | Bin 3712 -> 3711 bytes .../database/opt_ctrl_act_define.xlsx | Bin 0 -> 3881 bytes .../database/opt_handover_grp.xlsx | Bin 3486 -> 3485 bytes .../database/opt_interlock_define.xlsx | Bin 4270 -> 4269 bytes .../database/opt_interlock_para.xlsx | Bin 3614 -> 3613 bytes .../database/opt_shield_define.xlsx | Bin 3581 -> 3580 bytes .../database/opt_shield_info.xlsx | Bin 3479 -> 3478 bytes .../database/opt_shield_obj.xlsx | Bin 3374 -> 3373 bytes .../database/opt_shield_time.xlsx | Bin 3350 -> 3349 bytes .../database/opt_tag_info.xlsx | Bin 3445 -> 3444 bytes .../database/opt_token_define.xlsx | Bin 3736 -> 3735 bytes .../database/opt_token_info.xlsx | Bin 3508 -> 3507 bytes .../database/p_dict.xlsx | Bin 23075 -> 23074 bytes .../database/p_dict_sort.xlsx | Bin 5817 -> 5816 bytes .../database/pa_area_info.xlsx | Bin 3276 -> 3275 bytes .../database/pa_audio_info.xlsx | Bin 3321 -> 3320 bytes .../database/pa_broadcast_group.xlsx | Bin 3330 -> 3329 bytes .../database/pa_ctrl_param.xlsx | Bin 3297 -> 3296 bytes .../database/pa_location_area_def.xlsx} | Bin 3294 -> 3292 bytes .../database/pa_location_seq_def.xlsx | Bin 3291 -> 3290 bytes .../database/pa_operator_def.xlsx | Bin 3287 -> 3286 bytes .../database/pa_operator_map.xlsx | Bin 3295 -> 3294 bytes .../database/pa_timed_audio.xlsx | Bin 3545 -> 3544 bytes .../database/pis_area_info.xlsx | Bin 3277 -> 3276 bytes .../database/pis_ctrl_param.xlsx | Bin 3300 -> 3299 bytes .../database/pis_display_info.xlsx | Bin 3475 -> 3474 bytes .../database/pis_fes_location_info.xlsx | Bin 3293 -> 3292 bytes .../database/pis_location_area_def.xlsx} | Bin 3293 -> 3293 bytes .../database/pis_message_info.xlsx | Bin 3329 -> 3328 bytes .../database/point_lock_condition_info.xlsx | Bin 4983 -> 4982 bytes .../database/point_lock_config_info.xlsx | Bin 3707 -> 3706 bytes .../database/point_task_link.xlsx | Bin 3343 -> 3342 bytes .../database/psc3000_plugin.xlsx | Bin 3602 -> 3601 bytes .../database/region_info.xlsx | Bin 3433 -> 3432 bytes .../database/report_type_info.xlsx | Bin 3398 -> 3397 bytes .../database/rm_dept_def.xlsx | Bin 3318 -> 3317 bytes .../database/rm_norm_func_def.xlsx | Bin 4440 -> 4439 bytes .../database/rm_role_db_info.xlsx | Bin 5508 -> 5507 bytes .../database/rm_role_def.xlsx | Bin 3859 -> 3858 bytes .../database/rm_role_hmi_info.xlsx | Bin 3483 -> 3482 bytes .../database/rm_role_spef_reg.xlsx | Bin 3809 -> 3808 bytes .../database/rm_security_def.xlsx | Bin 3411 -> 3410 bytes .../database/rm_spcl_func_def.xlsx | Bin 3661 -> 3660 bytes .../database/rm_user_def.xlsx | Bin 0 -> 5050 bytes .../database/rm_user_face_info.xlsx | Bin 3318 -> 3317 bytes .../database/rm_user_finger_print_info.xlsx | Bin 3337 -> 3336 bytes .../database/rm_user_signature_info.xlsx | Bin 6053 -> 6052 bytes .../database/rm_userg_db_info.xlsx | Bin 3322 -> 3321 bytes .../database/rm_userg_def.xlsx | Bin 4050 -> 4049 bytes .../database/rm_userg_hmi_info.xlsx | Bin 3890 -> 3889 bytes .../database/rm_userg_report_info.xlsx | Bin 3369 -> 3368 bytes .../database/rm_userg_rsp_info.xlsx | Bin 4390 -> 4389 bytes .../database/safety_day.xlsx | Bin 3355 -> 3354 bytes .../database/sample_define.xlsx | Bin 0 -> 6618 bytes .../database/scl_dataset.xlsx | Bin 3793 -> 3792 bytes .../database/scl_fcda.xlsx | Bin 13888 -> 13887 bytes .../database/scl_lcb.xlsx | Bin 3435 -> 3434 bytes .../database/scl_rcb.xlsx | Bin 12282 -> 12281 bytes .../database/scl_runtime.xlsx | Bin 6417 -> 6416 bytes .../database/scl_sgcb.xlsx | Bin 3558 -> 3557 bytes .../database/sequence_action.xlsx | Bin 3420 -> 3419 bytes .../database/sequence_define.xlsx | Bin 3342 -> 3341 bytes .../database/sequence_function.xlsx | Bin 3419 -> 3418 bytes .../database/sequence_setting.xlsx | Bin 3470 -> 3469 bytes .../database/stat_inst_def.xlsx | Bin 3533 -> 3532 bytes .../database/stat_inst_para_grp.xlsx | Bin 3378 -> 3377 bytes .../database/stat_inst_para_point.xlsx | Bin 3426 -> 3425 bytes .../database/stat_inst_para_time.xlsx | Bin 3560 -> 3559 bytes .../database/stat_inst_ret_grp.xlsx | Bin 3376 -> 3375 bytes .../database/stat_inst_ret_para.xlsx | Bin 3481 -> 3480 bytes .../database/stat_link_def.xlsx | Bin 3323 -> 3322 bytes .../database/stat_link_para.xlsx | Bin 3391 -> 3390 bytes .../database/stat_link_ret.xlsx | Bin 3388 -> 3387 bytes .../database/stat_template_def.xlsx | Bin 4956 -> 4955 bytes .../database/stat_template_para.xlsx | Bin 4087 -> 4086 bytes .../database/stat_template_ret.xlsx | Bin 6148 -> 6147 bytes .../database/switch_cfg_info.xlsx | Bin 3382 -> 3381 bytes .../database/sys_model_app_info.xlsx | Bin 3517 -> 3516 bytes .../database/sys_model_dbconfig_domain.xlsx | Bin 0 -> 3509 bytes .../database/sys_model_dbconfig_node.xlsx | Bin 0 -> 3559 bytes .../database/sys_model_deploy_info.xlsx | Bin 0 -> 3589 bytes .../database/sys_model_domain_info.xlsx | Bin 3411 -> 3410 bytes .../database/sys_model_location_info.xlsx | Bin 3633 -> 3632 bytes .../database/sys_model_msg_relay.xlsx | Bin 3483 -> 3482 bytes .../database/sys_model_node_info.xlsx | Bin 0 -> 3746 bytes .../database/sys_model_process_info.xlsx | Bin 0 -> 5087 bytes .../database/sys_model_sub_system_info.xlsx | Bin 3450 -> 3449 bytes .../database/sys_trigger_flag.xlsx | Bin 3282 -> 3281 bytes .../database/t_sys_table_file_tree.xlsx | Bin 3663 -> 3662 bytes .../database/t_w_inspection.xlsx | Bin 3464 -> 3463 bytes .../database/temp_plugin.xlsx | Bin 0 -> 3413 bytes .../database/temp_plugin_dev_map.xlsx | Bin 0 -> 3485 bytes .../database/temp_plugin_fes_dev_map.xlsx | Bin 0 -> 3554 bytes .../database/temp_plugin_point_map_acc.xlsx | Bin 0 -> 5470 bytes .../database/temp_plugin_point_map_ana.xlsx | Bin 0 -> 5055 bytes .../database/temp_plugin_point_map_dig.xlsx | Bin 0 -> 16717 bytes .../database/temp_plugin_point_map_mix.xlsx | Bin 3369 -> 3368 bytes .../database/trend_collection.xlsx | Bin 3348 -> 3347 bytes .../database/trigger_condition_define.xlsx | Bin 4033 -> 4032 bytes .../database/trigger_function_define.xlsx | Bin 3702 -> 3701 bytes .../database/trigger_period_define.xlsx | Bin 3374 -> 3373 bytes .../database/trigger_timer_define.xlsx | Bin 3321 -> 3320 bytes .../database/web_files.xlsx | Bin 3386 -> 3385 bytes .../database/web_page.xlsx | Bin 3531 -> 3530 bytes .../database/web_primitive.xlsx | Bin 3715 -> 3714 bytes 2328 files changed, 6500 insertions(+), 81832 deletions(-) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/BusbarTemperatureWidget/setDeviceTitle.csv (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/InverseTimeLimit/InverseTimeLimitVer6.xlsx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/InverseTimeLimit/table.files/filelist.xml (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/InverseTimeLimit/table.files/image001.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/InverseTimeLimit/table.files/image002.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/InverseTimeLimit/table.files/sheet001.htm (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/InverseTimeLimit/table.files/stylesheet.css (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/InverseTimeLimit/table.files/tabstrip.htm (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/InverseTimeLimit/table.htm (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/NetMonite/ChanlPara.csv (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/NetMonite/MyDataBase.db (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/PcpmsDocManage/技术规格书/HM SG-A系列技术规格书.doc (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/PcpmsDocManage/用户手册/HM SPMS智慧电力监控系统_用户手册.doc (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/1U管理机.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/EMS.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/EMS能量管理系统.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/LOGO-100x32.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/LOGO.gif (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/MainPic.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/PCS-9611.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/PM8000.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/SOC上限.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/SOC下限.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/SOH.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/WEB服务器.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/arrowDown.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/arrowUp.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/backgroup.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/bms.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/board 1.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/board.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/bus-1.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/check.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/checked.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/datebackground1.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/datebackground2.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/details_img_BMS.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/details_img_PCS_n.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/disableCheck.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/down.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/epm.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/footer_background.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/frame.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/groupbox.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/header_background.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/hmlogo-white.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/hmlogo.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/home_back.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/home_back_2.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/home_back_3.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/home_btn.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/home_btn_site_dot_b.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/home_btn_site_dot_r.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/home_btn_site_left_b.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/home_btn_site_left_r.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/home_btn_site_line_b.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/home_btn_site_line_r.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/home_btn_site_right_b.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/home_btn_site_right_r.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_BMS.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_PCS.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_SOC.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_Select.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_alarm.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_bms监控.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_bms监控_sel.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_dev_ng.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_dev_ok.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_down.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_down_disable.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_more.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_out.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_pcs监控.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_pcs监控_sel.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_register.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_up.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_up_disable.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_user.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_一览表.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_两票管理.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_主接线图.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_主接线图_sel.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_事故追忆.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_事故追忆2.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_交接班.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_仓库.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_任务.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_值班管理.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_储能单元.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_储能单元_sel.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_充电量.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_关于.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_冷机.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_功率.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_功率总.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_区域.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_协调控制器.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_历史事件.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_历史事件_sel.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_变电站.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_变电站2.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_告警分析.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_告警分析_sel.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_告警管理.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_告警统计.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_地图.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_定值管理.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_实时告警.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_实时告警_sel.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_实时数据.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_审核.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_屏蔽.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_工作票.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_布局.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_总有功.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_总览.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_报表.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_报表浏览.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_报表管理.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_报表管理_sel.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_报表编辑.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_拓扑图.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_挂牌.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_排班.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_接线图.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_控制策略.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_控制策略_sel.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_操作票.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_放电量.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_故障录波.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_文档配置.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_文档配置_sel.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_日志-1.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_日志.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_曲线.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_机柜.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_框.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_模拟操作.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_消防.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_温度.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_点修改.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_用户管理.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_用户管理_sel.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_用户组管理.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_电压.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_电池堆数据.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_电池簇数据.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_电流-1.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_电流.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_监控.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_监控线路.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_监控首页.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_监控首页_sel.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_站点.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_策略.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_箱变测控.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_系统设置.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_系统设置_sel.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_网络.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_网络拓扑.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_联动.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_能耗分析.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_能耗总览.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_能耗报表.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_表清单.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_计划.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_设备信息.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_详细数据.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_详细数据_sel.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_趋势分析.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_趋势分析_sel.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_趋势浏览.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_轮询.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_轮询配置.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_辅助设备.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_辅助设备_sel.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_运维首页.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_运行简报.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_通道设置.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_通道设置_sel.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_逻辑编程.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_配电系统.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_需量.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_项目.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_顺控.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_顺控执行.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/icon_首页.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/index.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/index_background.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/item_back.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/item_icon.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/kehua logo.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/load.gif (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/logo.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/logo_bg.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/logo_line.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/mute.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/nav_background.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/overlook.gif (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/pause.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/pcs.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/pcs_3d.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/play.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/pointer 1.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/pointer.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/rec_1.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/rec_1_arrow.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/relyez-title.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/relyez-title_zh.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/selected.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/sound.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/title1_sel.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/title_arrow.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/title_nor.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/top.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/top_0.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/top_1.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/uncheck.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/unchecked.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/unselect.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/user.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/zoomfit.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/zoomin.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/zoomout.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/一体机.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/一体机背景.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/上一帧.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/上一页.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/下一帧.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/下一页.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/中压进线柜.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/主机.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/事件.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/事故列表.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/云动力系统.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/交流器.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/产品集合.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/今日充电量.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/今日放电量.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/仪表.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/停止.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/储能回路单元.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/充放电状态.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/全屏截图.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/北_斜.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/区变.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/区域截图.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/协调控制器.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/单体_soc.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/单体_电池.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/单体温度_极差值.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/单体电压_极差值.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/南_斜.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/南_正.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/变压器柜.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/可充电量.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/可放电量.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/向右线-.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/向右线.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/向左线.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/告警.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/告警中.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/告警追忆.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/四层柴发机房1-斜.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/存储服务器.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/实时监控_充电量.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/实时监控_放电量.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/导航栏.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/就地.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/工作站.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/快进.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/慢放.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/报警.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/指针.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/接线图-选中.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/接线图.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/推图.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/推图old.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/推图中.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/推图中old.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/摄像头.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/整流柜.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/更多-选中.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/更多.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/柴发.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/格力电子鸟瞰图.jpg (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/正向隔离装置.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/消防_主电状态.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/消防_分区数量.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/消防_备电状态.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/消防_瓶头阀.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/消防_警铃.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/消防_通讯状态.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/液冷柜内部.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/温度制冷.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/温度制冷_目标.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/温度制冷_设定.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/温度制热.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/温度制热_目标.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/温度制热_设定.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/温度告警.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/温度告警_目标.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/温度告警_设定.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/点标签.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/电度表.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/电池.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/电池堆_soc.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/电池堆_健康状态.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/电池堆_电压.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/电池堆_电流.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/电网.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/登录-密码-1.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/登录-密码.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/登录-用户-1.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/登录-用户.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/登录弹窗背景.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/登录背景.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/登录背景2.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/白灯.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/监控平台-选中.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/监控平台.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/监控服务器.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/站内3D.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/箭头.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/箱变保护测控.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/簇SOC_极差值.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/簇电压_极差值.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/累计充电量.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/累计放电量.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/红灯.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/绿灯.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/网络交换机.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/背景.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/背景_light.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/背景_unuse.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/负载.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/轮询.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/辅助设备-pcs.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/辅助设备-消防.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/辅助设备-温湿器.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/辅助设备-电表.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/远信云平台.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/远方.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/退出.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/退出弹窗背景.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/鄂州机场平面图.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/铜排监测-选中.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/铜排监测.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/防火墙.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/额定功率.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/额定容量.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/馈线柜.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/首页-选中.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/首页.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/首页底图.jpg (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/高压柜.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/back_pixmap/黄灯.png (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/config/db_his_data_srv_cfg.xml (100%) create mode 100644 PSCADA/ECMS电厂电气模版/data/config/db_manager_cfg.xml rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/config/pathallow.xml (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/config/变压器.time (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/config61850/61850ImportCfg-高厂变.xlsx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/config61850/61850ImportCfg.xlsx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/config61850/继保间/61850ImportCfg-ECS.xlsx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/config61850/继保间/FBAP343.cid (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/config61850/继保间/FBAP5.cid (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/config61850/继保间/FBAP643.cid (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/config61850/继保间/FBBP343.cid (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/config61850/继保间/FBBP5.cid (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/config61850/继保间/FBBP643.cid (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/config61850/继保间/FBCCK.cid (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/config61850/继保间/FBCFDL.cid (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/config61850/继保间/XLCK.cid (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/config61850/继保间/XLP543.cid (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/config61850/高厂变/61850ImportCfg-高厂变.xlsx (100%) rename PSCADA/{ECMS电厂行业模版/data/config61850 => ECMS电厂电气模版/data/config61850/高厂变}/AH101.cid (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/config61850/高厂变/AH102.cid (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/config61850/高厂变/AH103.cid (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/config61850/高厂变/AH104.cid (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/config61850/高厂变/AH105.cid (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/config61850/高厂变/AH106.cid (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/config61850/高厂变/AH107.cid (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/config61850/高厂变/AH109.cid (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/config61850/高厂变/AH109.icd (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/config61850/高厂变/AH110.cid (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/config61850/高厂变/AH111.cid (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/config61850/高厂变/AH112.cid (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/config61850/高厂变/AH113.cid (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/config61850/高厂变/AH114.cid (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/config61850/高厂变/AH114.icd (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/config61850/高厂变/AH115.cid (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/config61850/高厂变/AH115.icd (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/config61850/高厂变/AH201.cid (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/config61850/高厂变/AH202.cid (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/config61850/高厂变/AH203.cid (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/config61850/高厂变/AH204.cid (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/config61850/高厂变/AH205.cid (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/config61850/高厂变/AH205.icd (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/config61850/高厂变/AH206.cid (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/config61850/高厂变/AH207.cid (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/config61850/高厂变/AH209.cid (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/config61850/高厂变/AH209.icd (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/config61850/高厂变/AH210.cid (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/config61850/高厂变/AH211.cid (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/config61850/高厂变/AH212.cid (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/config61850/高厂变/AH213.cid (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/config61850/高厂变/AH215.cid (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/config61850/高厂变/AH215.icd (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/fbd_designer/AGC功率分配.xml (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/fbd_designer/AGC功率分配1-50.xml (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/fbd_designer/alarm_push_test.xml (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/fbd_designer/time_trigger.xml (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/fbd_designer/告警策略.xml (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/fes/EMS_osicfg.xml (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/fes/PSCADA_osicfg.xml (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/fes/SPMS_osicfg.xml (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/fes/cdts.xml (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/fes/fesConfig.xml (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/fes/fespartdatazf.xml (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/fes/hmjs104.xml (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/fes/iec101s.xml (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/fes/iec103.xml (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/fes/iec104.xml (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/fes/iec104s.xml (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/fes/iec61850_clientV3.xml (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/fes/khbas.xml (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/fes/logcfg.xml (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/fes/mmsconfig.ini (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/fes/modbus_rtu_dt.xml (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/fes/modbus_rtu_s.xml (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/fes/modbus_tcp_mz.xml (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/fes/modbus_tcp_s.xml (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/fes/modbus_tcp_s_V2.xml (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/fes/modbustcps.xml (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/fes/mqtt_topic_cfg58.csv (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/fes/mqtt_yxCloud.xml (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/fes/siemens103_tcp.xml (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/fes/snmpWiseWay3.xml (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/fes/snmpv3.xml (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/fes/sqlserver_s.xml (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/fes/wfudpcdt.xml (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/fes/yxcloud_mqtt_wn.xml (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/NewCB.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/NewCB2.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/三卷变YYV.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/三卷变压器.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/三相电压.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/三相电流功率.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/三角形.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/两卷变压器三角形三角形.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/两卷变压器三角形星形.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/两卷变压器星形三角形.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/中压CT.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/中压CTs.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/中压PT.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/中压PT_刀闸.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/中压PT_反.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/中压PTs.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/中压母联.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/中压母联_刀闸.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/中压母联_双刀闸.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/中压母联s.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/中压进线.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/中压进线H.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/中压进线H_刀闸.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/中压进线H_双刀闸.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/中压进线Hs.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/中压隔离.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/中压隔离_刀闸.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/中压隔离s.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/中压馈线.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/中压馈线H_刀闸.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/中压馈线_刀闸.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/中压馈线_双刀闸.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/中压馈线s.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/主备状态.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/主电状态.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/仪表盘.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/仪表通讯.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/低压开关.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/低压断路器.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/低压断路器_不可控.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/低压进线.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/低压馈线.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/低压馈线H.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/低压馈线H_接触器.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/低压马达.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/光字牌.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/刀闸.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/分裂电抗器.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/压板.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/发电机.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/四卷变压器_横.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/四卷变压器_竖.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/带熔断器刀闸.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/带电指示器.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/快速接地刀.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/手车_上.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/手车_下.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/把手.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/投入退出.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/挂牌.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/探测器状态.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/接地.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/接地刀闸.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/接触器.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/摄像头.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/数字量点标签.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/断路器 - 副本.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/断路器.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/断路器_控制.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/模拟量点标签.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/横向接地刀闸.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/母线电压.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/母联.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/测控_远方状态.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/牵引变压器_四卷.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/牵引变压器_横.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/牵引变压器_竖.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/状态3D_白黄.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/状态3D_绿红.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/状态_红绿蓝.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/电动机.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/电压互感器PT.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/电压互感器三绕组.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/电压互感器两绕组.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/电压互感器四绕组.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/电容.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/电容器.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/电抗器.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/电机.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/电流互感器.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/电缆.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/硬压板.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/竖向.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/装置_通讯状态.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/调频状态.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/负荷开关.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/转换开关3D_远方就地.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/转换开关_投入退出.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/转换开关_联锁解锁.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/转换开关_远方就地.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/转换开关_远方就地退出.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/运行停止.ilx (100%) create mode 100644 PSCADA/ECMS电厂电气模版/data/icon/运行状态.ilx rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/进线.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/远方就地.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/远方就地_LR.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/通信状态字描述.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/通断状态.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/通用状态.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/通用状态无效.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/通讯状态.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/通道状态.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/避雷器.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/隔离开关.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/静止无功补偿器.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/馈线.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/高压PT.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/高压PT2.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/高压母联.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/高压进线.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/高压避雷器.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/高压馈线.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/icon/高压馈线2.ilx (100%) create mode 100644 PSCADA/ECMS电厂电气模版/data/mod_instance/P53A_imput temp.xlsx rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/model/ButtonGroupWidget.json (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/model/DevGroupLock.json (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/model/GradModel.ini (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/model/NavigationWidget.json (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/model/alarm_color_define.xml (100%) create mode 100644 PSCADA/ECMS电厂电气模版/data/model/colorConfig.xml rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/model/hmi.json (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/model/hmiRoll.xml (100%) rename PSCADA/{SG-A通讯管理模版 => ECMS电厂电气模版}/data/model/iconAction.json (95%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/model/publish.json (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/model/qt_zh_CN.qm (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/model/report.xml (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/model/retriever.xml (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/model/style.xml (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/model/switchSetting.xml (100%) create mode 100644 PSCADA/ECMS电厂电气模版/data/model/toolbox.xml rename PSCADA/{SG-A通讯管理模版 => ECMS电厂电气模版}/data/model/toolopen.xml (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/model/trendgraph.xml (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/model/wordlist.txt (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/modelstudio/ModelConfig.ini (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/index.glx (100%) create mode 100644 PSCADA/ECMS电厂电气模版/data/pic/实时监控/10kV厂用电主接线图.glx create mode 100644 PSCADA/ECMS电厂电气模版/data/pic/实时监控/110kV发电三期主接线图.glx rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/实时监控/低压厂用电接线图.glx (100%) rename PSCADA/{SG-A通讯管理模版 => ECMS电厂电气模版}/data/pic/实时监控/全厂串口通讯图.glx (53%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/实时监控/全厂潮流图.glx (100%) rename PSCADA/{SG-A通讯管理模版 => ECMS电厂电气模版}/data/pic/实时监控/全厂网络通道图.glx (53%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/实时监控/全厂骨干网.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/实时监控/四宫格.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/实时监控/数据表格控件模板.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/实时监控/母线测温.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/实时监控/站内布置图.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/实时监控/继保间/1#直流屏监控图.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/实时监控/继保间/110kV电子间/110kVXLP.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/实时监控/继保间/110kV电子间/2AS同期装置.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/实时监控/继保间/110kV电子间/BT9301上海利乾/BT9301A-4n.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/实时监控/继保间/110kV电子间/BT9301上海利乾/BT9301G-1n.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/实时监控/继保间/110kV电子间/BT9301上海利乾/BT9301G-3n.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/实时监控/继保间/110kV电子间/CKP.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/实时监控/继保间/110kV电子间/FBPC.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/实时监控/继保间/110kV电子间/冷风机.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/实时监控/继保间/110kV电子间/发变组测控A屏.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/实时监控/继保间/110kV电子间/发变组测控B屏.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/实时监控/继保间/110kV电子间/微机励磁.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/实时监控/继保间/110kV电子间/快切.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/实时监控/继保间/2#直流屏监控图.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/实时监控/继保间/UPS监控图.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/实时监控/继保间/全厂网络架构图.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/实时监控/继保间/小电流选线监控.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/实时监控/继保间/快切.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/实时监控/继保间/汇川凝泵变频器.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/实时监控/继保间/消谐装置.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/实时监控/首页-old.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/实时监控/首页.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/界面框架/BatchOperation.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/界面框架/Batchperation.glx (100%) rename PSCADA/{SG-A通讯管理模版 => ECMS电厂电气模版}/data/pic/界面框架/alarm_window.glx (80%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/界面框架/alarm_window_dialog.glx (100%) rename PSCADA/{SG-A通讯管理模版 => ECMS电厂电气模版}/data/pic/界面框架/event_window.glx (76%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/界面框架/frame_footer.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/界面框架/frame_header.glx (51%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/界面框架/frame_navigation.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/界面框架/frame_navigation_more.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/界面框架/frame_navigation_realtime.glx (100%) create mode 100644 PSCADA/ECMS电厂电气模版/data/pic/界面框架/interval_meter.glx create mode 100644 PSCADA/ECMS电厂电气模版/data/pic/界面框架/interval_relay.glx rename PSCADA/{SG-A通讯管理模版 => ECMS电厂电气模版}/data/pic/界面框架/panel_accuml_ctrl.glx (53%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/界面框架/panel_alarm_push.glx (100%) create mode 100644 PSCADA/ECMS电厂电气模版/data/pic/界面框架/panel_analog_set.glx rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/界面框架/panel_const_read.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/界面框架/panel_const_switch.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/界面框架/panel_ctrl_verify.glx (100%) create mode 100644 PSCADA/ECMS电厂电气模版/data/pic/界面框架/panel_direct_ctrl.glx rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/界面框架/panel_direct_ctrl0.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/界面框架/panel_direct_ctrl1.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/界面框架/panel_direct_ctrl2.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/界面框架/panel_group_limit.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/界面框架/panel_group_maint.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/界面框架/panel_group_more.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/界面框架/panel_hint_info.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/界面框架/panel_login.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/界面框架/panel_login_exit.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/界面框架/panel_login_lock.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/界面框架/panel_oper_verify.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/界面框架/panel_opt_ticket.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/界面框架/panel_point_lock.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/界面框架/panel_recall_alarm.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/界面框架/panel_recall_list.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/界面框架/panel_recall_toolbar.glx (100%) rename PSCADA/{SG-A通讯管理模版 => ECMS电厂电气模版}/data/pic/界面框架/panel_remote_ctrl.glx (50%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/界面框架/panel_reset_ctrl.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/界面框架/panel_roll_switch.glx (100%) rename PSCADA/{SG-A通讯管理模版 => ECMS电厂电气模版}/data/pic/界面框架/panel_tag_operate.glx (63%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/界面框架/panel_ticket_manage.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/界面框架/panel_transformer_ctrl.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/界面框架/panel_trend_curve.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/界面框架/panel_video_linkage.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/界面框架/panel_video_paly.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/界面框架/panel_video_viewer.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/界面框架/panel_video_wall.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/界面框架/reportdesign.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/界面框架/reportview.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/界面框架/view_alarm_Statis.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/界面框架/view_alarm_analyze.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/界面框架/view_alarm_manage.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/界面框架/view_alarm_shield.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/界面框架/view_alarm_strategy.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/界面框架/view_bi_browser.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/界面框架/view_bi_design.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/界面框架/view_bi_view.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/界面框架/view_chan_status.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/界面框架/view_const_curves.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/界面框架/view_const_groupsw.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/界面框架/view_const_manage.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/界面框架/view_device_list.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/界面框架/view_doc_manage.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/界面框架/view_duty_manger.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/界面框架/view_fault_record.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/界面框架/view_hand_panel.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/界面框架/view_invtime_curve.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/界面框架/view_linkage.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/界面框架/view_maint_list.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/界面框架/view_media.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/界面框架/view_recall_setting.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/界面框架/view_robot_linkage.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/界面框架/view_roll_setting.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/界面框架/view_run_report.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/界面框架/view_sequence.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/界面框架/view_serial_status.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/界面框架/view_shield_list.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/界面框架/view_shift_manage.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/界面框架/view_sim_operate.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/界面框架/view_system_setting.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/界面框架/view_ticket_manage.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/界面框架/view_ticket_search.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/界面框架/view_token_list.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/界面框架/view_trend.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/界面框架/view_user_group.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/界面框架/view_user_manage.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/界面框架/view_wave_analyze.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/界面框架/view_web_energy.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/界面框架/view_work_ticket.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/pic/界面框架/导航栏.glx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/picbackup.tar.gz (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/protect/branchSetting/全部名称.csv (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/protect/deviceList.csv (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/rec/#1储能回路#1储能单元/PCS协控1/XK1001_RCD_0_20240416_105916_461.cfg (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/rec/#1储能回路#1储能单元/PCS协控1/XK1001_RCD_0_20240416_105916_461.dat (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/rec/#1储能回路#1储能单元/PCS协控1/XK1001_RCD_0_20240416_105916_461.des (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/rec/#1储能回路#1储能单元/PCS协控1/XK1001_RCD_0_20240416_105916_461.hdr (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/rec/#1储能回路#1储能单元/PCS协控1/XK1001_RCD_0_20240416_105916_461.mid (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/rec/进线柜/断路器/PQMonitor_PQM1_001_20220502_151718_839.cfg (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/rec/进线柜/断路器/PQMonitor_PQM1_001_20220502_151718_839.dat (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/rec/进线柜/断路器/PQMonitor_PQM1_001_20220502_151718_839.hdr (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/rec/进线柜/断路器/PQMonitor_PQM1_001_20220502_151718_839.inf (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/rec/进线柜/断路器/PQMonitor_PQM1_001_20220926_173250_750.cfg (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/rec/进线柜/断路器/PQMonitor_PQM1_001_20220926_173250_750.dat (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/rec/进线柜/断路器/PQMonitor_PQM1_001_20220926_173250_750.hdr (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/rec/进线柜/断路器/PQMonitor_PQM1_001_20220926_173250_750.inf (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/rec/进线柜/断路器/PQMonitor_PQM1_002_20220502_151847_028.cfg (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/rec/进线柜/断路器/PQMonitor_PQM1_002_20220502_151847_028.dat (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/rec/进线柜/断路器/PQMonitor_PQM1_002_20220502_151847_028.hdr (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/rec/进线柜/断路器/PQMonitor_PQM1_002_20220502_151847_028.inf (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/report/FAIL_PAGE.html (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/report/PERM_FORBIT_EDIT.html (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/report/PERM_FORBIT_VIEW.html (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/reportFile/10kV厂用电日电度报表.log (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/reportFile/10kV厂用电日运行报表.log (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/script/commonBtn.qs (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/script/commonOpt.qs (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/script/commonTree(复件).qs (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/script/commonTree.qs (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/script/lockOpt.qs (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/script/macros.7z (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/script/macros.qs (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/script/panel_ctrl_1N.qs (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/script/panel_ctrl_digital.qs (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/script/pscadaOpt.qs (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/script/scriptCfg.qs (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/scriptbackup.tar.gz (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/sound/Default.wav (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/sound/JUMP_EN.WAV (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/sound/OVER6.WAV (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/sound/ROOSTER.wav (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/sound/保护SOE报警.WAV (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/sound/保护报警.wav (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/sound/保护报警1.WAV (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/sound/关闭.WAV (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/sound/刀闸报警.wav (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/sound/向上还原.WAV (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/sound/向下还原.WAV (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/sound/嘟嘟声.wav (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/sound/幻想空间默认值.WAV (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/sound/开关.Wav (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/sound/开关1003.Wav (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/sound/开关1004.wav (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/sound/总功报警.wav (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/sound/感叹.WAV (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/sound/打开.WAV (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/sound/报警.wav (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/sound/提示.WAV (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/sound/提问.WAV (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/sound/最大化.wav (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/sound/最小化.wav (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/sound/清空回收站.wav (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/sound/状态报警.wav (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/sound/电笛.WAV (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/sound/电铃.WAV (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/sound/菜单命令.WAV (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/sound/菜单弹出.WAV (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/sound/蜂鸣器.WAV (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/sound/错误.WAV (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/sound/预告报警.wav (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/sys_model_info/SYS_MODEL_APP_INFO.xml (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/sys_model_info/SYS_MODEL_DBCONFIG_DOMAIN.xml (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/sys_model_info/SYS_MODEL_DBCONFIG_NODE.xml (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/sys_model_info/SYS_MODEL_DEPLOY_INFO.xml (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/sys_model_info/SYS_MODEL_DOMAIN_INFO.xml (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/sys_model_info/SYS_MODEL_LOCATION_INFO.xlsx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/sys_model_info/SYS_MODEL_LOCATION_INFO.xml (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/sys_model_info/SYS_MODEL_MSG_RELAY.xml (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/sys_model_info/SYS_MODEL_NODE_INFO.xlsx (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/sys_model_info/SYS_MODEL_NODE_INFO.xml (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/sys_model_info/SYS_MODEL_PROCESS_INFO.xml (93%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/sys_model_info/SYS_MODEL_SUB_SYSTEM_INFO.xml (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/web_server_files/3D/a-03adroghm_jknmfo87f2.glb (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/web_server_files/3dPublicConfigs/-us3al30_08rxql6zlbfc5.json (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/web_server_files/3dPublicConfigs/1al160nobkq99noy8v-7iu.json (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/web_server_files/3dPublicConfigs/24i-g2jx_u66rua28zzjrx.json (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/web_server_files/3dPublicConfigs/326ckzbji8i3kudupaonfy.json (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/web_server_files/3dPublicConfigs/3n_t3p088qeqbcph_-zqsq.json (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/web_server_files/3dPublicConfigs/3xnj28pkwe9up4734md9cq.json (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/web_server_files/3dPublicConfigs/51ozdkblrwkq1-coyqdavr.json (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/web_server_files/3dPublicConfigs/5l_ivsx1wrkdabd0fit4o9.json (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/web_server_files/3dPublicConfigs/5vmsu53hzzwhsfoczkab6k.json (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/web_server_files/3dPublicConfigs/6kkccamzzlg9dxoxvta1ke.json (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/web_server_files/3dPublicConfigs/74k25ecsgwymadilkmnksy.json (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/web_server_files/3dPublicConfigs/7t66ynjth02_38z1o9yprc.json (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/web_server_files/3dPublicConfigs/88y0rzhv78wpvtuk885uhw.json (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/web_server_files/3dPublicConfigs/9fqt8r-8mgbzczioj2q2ab.json (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/web_server_files/3dPublicConfigs/9n5jvyspzyaumcnmct6q6w.json (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/web_server_files/3dPublicConfigs/_1un7dc-vmhr1tzr-mc7a8.json (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/web_server_files/3dPublicConfigs/ba25z619z9dyev2q1c801b.json (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/web_server_files/3dPublicConfigs/clcn74yb-cm9h_gxloic71.json (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/web_server_files/3dPublicConfigs/exaglht1330kbqama32-jj.json (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/web_server_files/3dPublicConfigs/fxzw0d6u5_8sub1-xubx8e.json (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/web_server_files/3dPublicConfigs/g0upy3ebnkrgbkac306vtz.json (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/web_server_files/3dPublicConfigs/h8g2j6ic7_xx99t8-iuose.json (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/web_server_files/3dPublicConfigs/i5run9zaljl9kgdrx_89b6.json (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/web_server_files/3dPublicConfigs/jfa6v6-4fvm3l9i1jve934.json (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/web_server_files/3dPublicConfigs/l44vzhrahws736r92zp2da.json (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/web_server_files/3dPublicConfigs/lzsr-0361tmv3uf8nytmae.json (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/web_server_files/3dPublicConfigs/m08l1qgxsdmz8wm23j7evz.json (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/web_server_files/3dPublicConfigs/m1shfjtzwid_sp4-3d30jp.json (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/web_server_files/3dPublicConfigs/ma6zn_5lh-__1ao7_7ql64.json (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/web_server_files/3dPublicConfigs/r4u6gxkexo-cwg8dfw34-c.json (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/web_server_files/3dPublicConfigs/rn1w_xi5_9i1ht0w9yyfzu.json (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/web_server_files/3dPublicConfigs/uf-_-b52ku7-ld--efct32.json (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/web_server_files/3dPublicConfigs/vlwu4ysip_ef7lp_omhtmh.json (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/web_server_files/3dPublicConfigs/wh0bkhhwlonmzw00o09qh-.json (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/web_server_files/3dPublicConfigs/wl6uwti7r3dpnopuh4_3k4.json (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/web_server_files/3dPublicConfigs/x36ola2i6ye-ve7tisl74c.json (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/web_server_files/3dPublicConfigs/xvicq_i6ltyfuuzs80jhb6.json (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/web_server_files/3dPublicConfigs/yc5_ue_2om-tp_h-xr7qf5.json (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/web_server_files/3dPublicConfigs/yupe96zsizpzfii7k-0nfr.json (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/web_server_files/3dPublicConfigs/zc8lj2p90emu4yconf9_ic.json (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/web_server_files/config/1/json/tnlycze_ruoop3s4h4oc9w.json (100%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/data/xm_alm_send/Xm_Alarm_Send_Config.xml (100%) create mode 100644 PSCADA/ECMS电厂电气模版/database/accuml.xlsx rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/accuml_limit_info.xlsx (71%) create mode 100644 PSCADA/ECMS电厂电气模版/database/accuml_map_to_fes.xlsx create mode 100644 PSCADA/ECMS电厂电气模版/database/accuml_temp_define.xlsx rename PSCADA/{SG-A通讯管理模版 => ECMS电厂电气模版}/database/acs_device_info.xlsx (69%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/acs_device_node_map.xlsx (70%) rename PSCADA/{SG-A通讯管理模版 => ECMS电厂电气模版}/database/alarm_action_define.xlsx (71%) rename PSCADA/{SG-A通讯管理模版 => ECMS电厂电气模版}/database/alarm_color.xlsx (70%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/alarm_keyword_define.xlsx (83%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/alarm_level_define.xlsx (71%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/alarm_level_sound_def.xlsx (68%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/alarm_link_enable_info.xlsx (69%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/alarm_manner_define.xlsx (76%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/alarm_sms_config.xlsx (68%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/alarm_sms_device.xlsx (70%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/alarm_sms_rule.xlsx (69%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/alarm_status_define.xlsx (87%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/alarm_status_dig_set.xlsx (72%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/alarm_type_define.xlsx (73%) create mode 100644 PSCADA/ECMS电厂电气模版/database/analog.xlsx rename PSCADA/{SG-A通讯管理模版 => ECMS电厂电气模版}/database/analog_control.xlsx (69%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/analog_limit_info.xlsx (71%) create mode 100644 PSCADA/ECMS电厂电气模版/database/analog_map_to_fes.xlsx create mode 100644 PSCADA/ECMS电厂电气模版/database/analog_temp_define.xlsx rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/apc_analog.xlsx (69%) rename PSCADA/{SG-A通讯管理模版 => ECMS电厂电气模版}/database/apc_curve.xlsx (70%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/apc_curve_day_index.xlsx (69%) rename PSCADA/{SG-A通讯管理模版 => ECMS电厂电气模版}/database/apc_curve_day_tmpl.xlsx (69%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/apc_curve_day_tmpl_section.xlsx (69%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/apc_curve_day_value.xlsx (71%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/apc_curve_type.xlsx (69%) rename PSCADA/{SG-A通讯管理模版 => ECMS电厂电气模版}/database/apc_curve_week.xlsx (72%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/apc_curve_year.xlsx (68%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/apc_digital.xlsx (69%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/asset_info.xlsx (70%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/asset_records.xlsx (69%) rename PSCADA/{SG-A通讯管理模版 => ECMS电厂电气模版}/database/ats_casco_dynamic_train_data.xlsx (69%) rename PSCADA/{SG-A通讯管理模版 => ECMS电厂电气模版}/database/ats_casco_planned_train_data.xlsx (68%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/ats_casco_practical_train_data.xlsx (70%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/ats_fes_location_info.xlsx (68%) rename PSCADA/{SG-A通讯管理模版 => ECMS电厂电气模版}/database/ats_fes_platform_info.xlsx (69%) rename PSCADA/{SG-A通讯管理模版 => ECMS电厂电气模版}/database/bas_craft_def.xlsx (68%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/bas_mode_def.xlsx (69%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/bas_mode_type.xlsx (69%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/bas_timetable_ctrl_param.xlsx (69%) rename PSCADA/{SG-A通讯管理模版 => ECMS电厂电气模版}/database/bas_timetable_def.xlsx (71%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/bas_timetable_info.xlsx (69%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/bas_timetable_schedule.xlsx (69%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/calc_func_def.xlsx (77%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/calc_group_def.xlsx (69%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/calc_in_para.xlsx (70%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/calc_out_para.xlsx (69%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/calc_para_def.xlsx (71%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/cctv_camera_info.xlsx (71%) rename PSCADA/{SG-A通讯管理模版 => ECMS电厂电气模版}/database/cctv_monitor_info.xlsx (69%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/cctv_orientation.xlsx (70%) rename PSCADA/{SG-A通讯管理模版 => ECMS电厂电气模版}/database/cctv_separator_info.xlsx (72%) rename PSCADA/{SG-A通讯管理模版 => ECMS电厂电气模版}/database/cctv_sequence.xlsx (76%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/cfg_dev_type_map.xlsx (74%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/cfg_device_inst.xlsx (78%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/cfg_signal_inst.xlsx (98%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/dbop_list.xlsx (99%) create mode 100644 PSCADA/ECMS电厂电气模版/database/dev_group.xlsx create mode 100644 PSCADA/ECMS电厂电气模版/database/dev_info.xlsx create mode 100644 PSCADA/ECMS电厂电气模版/database/dev_temp_def.xlsx rename PSCADA/{SG-A通讯管理模版 => ECMS电厂电气模版}/database/dev_temp_group.xlsx (68%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/dev_topo_info.xlsx (69%) rename PSCADA/{SG-A通讯管理模版 => ECMS电厂电气模版}/database/dev_topo_ver.xlsx (69%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/dev_type_def.xlsx (71%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/dev_type_def_61850.xlsx (71%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/dict_menu_info.xlsx (93%) rename PSCADA/{SG-A通讯管理模版 => ECMS电厂电气模版}/database/dict_point_type.xlsx (92%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/dict_state_text_info.xlsx (78%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/dict_text_define.xlsx (78%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/dict_unit_info.xlsx (78%) rename PSCADA/{SG-A通讯管理模版 => ECMS电厂电气模版}/database/dict_vol_level.xlsx (71%) create mode 100644 PSCADA/ECMS电厂电气模版/database/digital.xlsx rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/digital_control.xlsx (82%) create mode 100644 PSCADA/ECMS电厂电气模版/database/digital_map_to_fes.xlsx rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/digital_temp_define.xlsx (55%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/duty_define.xlsx (70%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/duty_info.xlsx (69%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/duty_setting.xlsx (70%) rename PSCADA/{SG-A通讯管理模版 => ECMS电厂电气模版}/database/event_task_link.xlsx (71%) rename PSCADA/{SG-A通讯管理模版 => ECMS电厂电气模版}/database/fault_recall_cond_def.xlsx (69%) rename PSCADA/{SG-A通讯管理模版 => ECMS电厂电气模版}/database/fault_recall_record.xlsx (73%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/fbd_diagram.xlsx (88%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/fbd_group.xlsx (70%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/fbd_template.xlsx (68%) create mode 100644 PSCADA/ECMS电厂电气模版/database/fes_accuml.xlsx create mode 100644 PSCADA/ECMS电厂电气模版/database/fes_analog.xlsx rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/fes_analog_ctrl.xlsx (70%) create mode 100644 PSCADA/ECMS电厂电气模版/database/fes_channel_para.xlsx rename PSCADA/{SG-A通讯管理模版 => ECMS电厂电气模版}/database/fes_const.xlsx (71%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/fes_const_temp.xlsx (73%) create mode 100644 PSCADA/ECMS电厂电气模版/database/fes_data_block.xlsx create mode 100644 PSCADA/ECMS电厂电气模版/database/fes_data_block_temp.xlsx create mode 100644 PSCADA/ECMS电厂电气模版/database/fes_dev_info.xlsx rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/fes_dev_pt_temp_def.xlsx (82%) create mode 100644 PSCADA/ECMS电厂电气模版/database/fes_dev_temp_def.xlsx rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/fes_dev_type_def.xlsx (69%) create mode 100644 PSCADA/ECMS电厂电气模版/database/fes_digital.xlsx create mode 100644 PSCADA/ECMS电厂电气模版/database/fes_digital_ctrl.xlsx rename PSCADA/{SG-A通讯管理模版 => ECMS电厂电气模版}/database/fes_mix.xlsx (71%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/fes_mix_ctrl.xlsx (70%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/fes_protocol.xlsx (72%) create mode 100644 PSCADA/ECMS电厂电气模版/database/fes_rtu_para.xlsx rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/forward_accuml.xlsx (70%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/forward_analog.xlsx (71%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/forward_analog_ctrl.xlsx (70%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/forward_digital_ctrl.xlsx (74%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/forward_digital_double.xlsx (71%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/forward_digital_single.xlsx (71%) rename PSCADA/{SG-A通讯管理模版 => ECMS电厂电气模版}/database/forward_mix.xlsx (70%) rename PSCADA/{SG-A通讯管理模版 => ECMS电厂电气模版}/database/forward_mix_ctrl.xlsx (71%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/hmi_type_info.xlsx (69%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/ia_disposal_plan.xlsx (69%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/linkage_action.xlsx (69%) rename PSCADA/{SG-A通讯管理模版 => ECMS电厂电气模版}/database/linkage_define.xlsx (69%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/linkage_function.xlsx (69%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/linkage_setting.xlsx (68%) rename PSCADA/{SG-A通讯管理模版 => ECMS电厂电气模版}/database/load_stat_define.xlsx (69%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/mix.xlsx (73%) rename PSCADA/{SG-A通讯管理模版 => ECMS电厂电气模版}/database/mix_control.xlsx (71%) rename PSCADA/{SG-A通讯管理模版 => ECMS电厂电气模版}/database/mix_map_to_fes.xlsx (69%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/mix_temp_define.xlsx (71%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/opc_config_define.xlsx (70%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/opc_config_version.xlsx (69%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/operation_order_model.xlsx (69%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/operation_order_model_info.xlsx (71%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/opt_ctrl_act_define.xlsx (71%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/opt_handover_grp.xlsx (72%) rename PSCADA/{SG-A通讯管理模版 => ECMS电厂电气模版}/database/opt_interlock_define.xlsx (75%) rename PSCADA/{SG-A通讯管理模版 => ECMS电厂电气模版}/database/opt_interlock_para.xlsx (72%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/opt_shield_define.xlsx (71%) rename PSCADA/{SG-A通讯管理模版 => ECMS电厂电气模版}/database/opt_shield_info.xlsx (69%) rename PSCADA/{SG-A通讯管理模版 => ECMS电厂电气模版}/database/opt_shield_obj.xlsx (69%) rename PSCADA/{SG-A通讯管理模版 => ECMS电厂电气模版}/database/opt_shield_time.xlsx (69%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/opt_tag_info.xlsx (68%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/opt_token_define.xlsx (71%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/opt_token_info.xlsx (69%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/p_dict.xlsx (96%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/p_dict_sort.xlsx (82%) rename PSCADA/{SG-A通讯管理模版 => ECMS电厂电气模版}/database/pa_area_info.xlsx (70%) rename PSCADA/{SG-A通讯管理模版 => ECMS电厂电气模版}/database/pa_audio_info.xlsx (69%) rename PSCADA/{SG-A通讯管理模版 => ECMS电厂电气模版}/database/pa_broadcast_group.xlsx (69%) rename PSCADA/{SG-A通讯管理模版 => ECMS电厂电气模版}/database/pa_ctrl_param.xlsx (68%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/pa_location_area_def.xlsx (68%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/pa_location_seq_def.xlsx (68%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/pa_operator_def.xlsx (68%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/pa_operator_map.xlsx (68%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/pa_timed_audio.xlsx (69%) rename PSCADA/{SG-A通讯管理模版 => ECMS电厂电气模版}/database/pis_area_info.xlsx (72%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/pis_ctrl_param.xlsx (68%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/pis_display_info.xlsx (69%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/pis_fes_location_info.xlsx (69%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/pis_location_area_def.xlsx (68%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/pis_message_info.xlsx (71%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/point_lock_condition_info.xlsx (69%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/point_lock_config_info.xlsx (69%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/point_task_link.xlsx (69%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/psc3000_plugin.xlsx (80%) rename PSCADA/{SG-A通讯管理模版 => ECMS电厂电气模版}/database/region_info.xlsx (69%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/report_type_info.xlsx (69%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/rm_dept_def.xlsx (69%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/rm_norm_func_def.xlsx (76%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/rm_role_db_info.xlsx (82%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/rm_role_def.xlsx (72%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/rm_role_hmi_info.xlsx (72%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/rm_role_spef_reg.xlsx (71%) rename PSCADA/{SG-A通讯管理模版 => ECMS电厂电气模版}/database/rm_security_def.xlsx (71%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/rm_spcl_func_def.xlsx (71%) create mode 100644 PSCADA/ECMS电厂电气模版/database/rm_user_def.xlsx rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/rm_user_face_info.xlsx (70%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/rm_user_finger_print_info.xlsx (69%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/rm_user_signature_info.xlsx (81%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/rm_userg_db_info.xlsx (72%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/rm_userg_def.xlsx (74%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/rm_userg_hmi_info.xlsx (72%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/rm_userg_report_info.xlsx (68%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/rm_userg_rsp_info.xlsx (76%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/safety_day.xlsx (56%) create mode 100644 PSCADA/ECMS电厂电气模版/database/sample_define.xlsx rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/scl_dataset.xlsx (82%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/scl_fcda.xlsx (98%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/scl_lcb.xlsx (68%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/scl_rcb.xlsx (98%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/scl_runtime.xlsx (89%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/scl_sgcb.xlsx (76%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/sequence_action.xlsx (67%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/sequence_define.xlsx (69%) rename PSCADA/{SG-A通讯管理模版 => ECMS电厂电气模版}/database/sequence_function.xlsx (68%) rename PSCADA/{SG-A通讯管理模版 => ECMS电厂电气模版}/database/sequence_setting.xlsx (69%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/stat_inst_def.xlsx (70%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/stat_inst_para_grp.xlsx (69%) rename PSCADA/{SG-A通讯管理模版 => ECMS电厂电气模版}/database/stat_inst_para_point.xlsx (69%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/stat_inst_para_time.xlsx (71%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/stat_inst_ret_grp.xlsx (69%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/stat_inst_ret_para.xlsx (69%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/stat_link_def.xlsx (70%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/stat_link_para.xlsx (70%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/stat_link_ret.xlsx (69%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/stat_template_def.xlsx (78%) rename PSCADA/{SG-A通讯管理模版 => ECMS电厂电气模版}/database/stat_template_para.xlsx (76%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/stat_template_ret.xlsx (82%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/switch_cfg_info.xlsx (69%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/sys_model_app_info.xlsx (71%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/sys_model_dbconfig_domain.xlsx (70%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/sys_model_dbconfig_node.xlsx (71%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/sys_model_deploy_info.xlsx (70%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/sys_model_domain_info.xlsx (73%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/sys_model_location_info.xlsx (74%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/sys_model_msg_relay.xlsx (69%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/sys_model_node_info.xlsx (70%) create mode 100644 PSCADA/ECMS电厂电气模版/database/sys_model_process_info.xlsx rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/sys_model_sub_system_info.xlsx (68%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/sys_trigger_flag.xlsx (68%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/t_sys_table_file_tree.xlsx (72%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/t_w_inspection.xlsx (68%) create mode 100644 PSCADA/ECMS电厂电气模版/database/temp_plugin.xlsx create mode 100644 PSCADA/ECMS电厂电气模版/database/temp_plugin_dev_map.xlsx create mode 100644 PSCADA/ECMS电厂电气模版/database/temp_plugin_fes_dev_map.xlsx create mode 100644 PSCADA/ECMS电厂电气模版/database/temp_plugin_point_map_acc.xlsx create mode 100644 PSCADA/ECMS电厂电气模版/database/temp_plugin_point_map_ana.xlsx rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/temp_plugin_point_map_dig.xlsx (79%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/temp_plugin_point_map_mix.xlsx (69%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/trend_collection.xlsx (69%) rename PSCADA/{SG-A通讯管理模版 => ECMS电厂电气模版}/database/trigger_condition_define.xlsx (73%) rename PSCADA/{SG-A通讯管理模版 => ECMS电厂电气模版}/database/trigger_function_define.xlsx (71%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/trigger_period_define.xlsx (69%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/trigger_timer_define.xlsx (69%) rename PSCADA/{ECMS电厂行业模版 => ECMS电厂电气模版}/database/web_files.xlsx (69%) rename PSCADA/{SG-A通讯管理模版 => ECMS电厂电气模版}/database/web_page.xlsx (70%) rename PSCADA/{SG-A通讯管理模版 => ECMS电厂电气模版}/database/web_primitive.xlsx (73%) create mode 100644 PSCADA/ECMS电厂电气模版/db_manager_backup_manifest.xml delete mode 100644 PSCADA/ECMS电厂行业模版/data/model/toolopen.xml delete mode 100644 PSCADA/ECMS电厂行业模版/data/pic/nav-cn.xlsx delete mode 100644 PSCADA/ECMS电厂行业模版/data/pic/nav-en.xlsx delete mode 100644 PSCADA/ECMS电厂行业模版/data/pic/old/告警事件/事故追忆.glx delete mode 100644 PSCADA/ECMS电厂行业模版/data/pic/old/告警事件/历史事件.glx delete mode 100644 PSCADA/ECMS电厂行业模版/data/pic/old/告警事件/告警分析.glx delete mode 100644 PSCADA/ECMS电厂行业模版/data/pic/old/告警事件/实时告警.glx delete mode 100644 PSCADA/ECMS电厂行业模版/data/pic/old/告警事件/故障录波.glx delete mode 100644 PSCADA/ECMS电厂行业模版/data/pic/old/告警事件/运行简报.glx delete mode 100644 PSCADA/ECMS电厂行业模版/data/pic/old/曲线报表/报表浏览.glx delete mode 100644 PSCADA/ECMS电厂行业模版/data/pic/old/曲线报表/报表管理.glx delete mode 100644 PSCADA/ECMS电厂行业模版/data/pic/old/曲线报表/报表编辑.glx delete mode 100644 PSCADA/ECMS电厂行业模版/data/pic/old/曲线报表/详细数据.glx delete mode 100644 PSCADA/ECMS电厂行业模版/data/pic/old/曲线报表/趋势分析.glx delete mode 100644 PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/220kV/220kV1#主变保护信息.glx delete mode 100644 PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/220kV/220kV1#主变测控信息.glx delete mode 100644 PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/220kV/220kV高压一次主接线.glx delete mode 100644 PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/ATMT小窗口信息.glx delete mode 100644 PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/FAB2A/F23-1串口通讯图R1.glx delete mode 100644 PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/FAB2A/F23-1低压U380一次接线图U101H-201H.glx delete mode 100644 PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/FAB2A/F23-1网络通道图.glx delete mode 100644 PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/南区开闭所/中压主接线.glx delete mode 100644 PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/南区开闭所/低压TM1一次接线图.glx delete mode 100644 PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/南区开闭所/低压TM2一次接线图.glx delete mode 100644 PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/南区开闭所/低压主接线.glx delete mode 100644 PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/南区开闭所/直流屏图.glx delete mode 100644 PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/南区开闭所/站内布置图.glx delete mode 100644 PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/南区开闭所/网络结构图.glx delete mode 100644 PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/南区开闭所/自定义顺控.glx delete mode 100644 PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/南区开闭所/视频监控.glx delete mode 100644 PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/南区开闭所/设备监控.glx delete mode 100644 PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/南区开闭所/进线监控.glx delete mode 100644 PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/南区开闭所/通讯状态图.glx delete mode 100644 PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/南区开闭所/通讯状态图一.glx delete mode 100644 PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/南区开闭所/通讯状态图二.glx delete mode 100644 PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/实时监控/10KV中压柜.glx delete mode 100644 PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/实时监控/BMS1.glx delete mode 100644 PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/实时监控/BMS2.glx delete mode 100644 PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/实时监控/BMS3.glx delete mode 100644 PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/实时监控/BMS4.glx delete mode 100644 PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/实时监控/交流馈线柜.glx delete mode 100644 PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/实时监控/整流柜1.glx delete mode 100644 PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/实时监控/整流柜2.glx delete mode 100644 PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/实时监控/整流柜3.glx delete mode 100644 PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/实时监控/整流柜4.glx delete mode 100644 PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/实时监控/移项变压器.glx delete mode 100644 PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/布局图/停电区域.glx delete mode 100644 PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/布局图/全厂骨干网.glx delete mode 100644 PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/布局图/南区汇聚网.glx delete mode 100644 PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/布局图/接线图.glx delete mode 100644 PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/布局图/铜排监测.glx delete mode 100644 PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/布局图/首页.glx delete mode 100644 PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/更多设置/容量管理.glx delete mode 100644 PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/柴发/柴发1号单体监控.glx delete mode 100644 PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/柴发/柴发一次接线图.glx delete mode 100644 PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/柴发/柴发站内布置图.glx delete mode 100644 PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/母线测温/L10(203)N-01(4000A).glx delete mode 100644 PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/母线测温/母线测温L10.glx delete mode 100644 PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/温度_backup.glx delete mode 100644 PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/电压_backup.glx delete mode 100644 PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/配电盘/I-Line盘.glx delete mode 100644 PSCADA/ECMS电厂行业模版/data/pic/old/系统设置/控制策略.glx delete mode 100644 PSCADA/ECMS电厂行业模版/data/pic/old/系统设置/文档配置.glx delete mode 100644 PSCADA/ECMS电厂行业模版/data/pic/old/系统设置/用户管理.glx delete mode 100644 PSCADA/ECMS电厂行业模版/data/pic/old/系统设置/用户组管理.glx delete mode 100644 PSCADA/ECMS电厂行业模版/data/pic/old/系统设置/系统设置.glx delete mode 100644 PSCADA/ECMS电厂行业模版/data/pic/old/系统设置/轮询配置.glx delete mode 100644 PSCADA/ECMS电厂行业模版/data/pic/old/视频监控/四宫格.glx delete mode 100644 PSCADA/ECMS电厂行业模版/data/pic/old/运维管理/交接班管理.glx delete mode 100644 PSCADA/ECMS电厂行业模版/data/pic/old/运维管理/工作票管理.glx delete mode 100644 PSCADA/ECMS电厂行业模版/data/pic/old/运维管理/挂牌一览.glx delete mode 100644 PSCADA/ECMS电厂行业模版/data/pic/old/运维管理/排班管理.glx delete mode 100644 PSCADA/ECMS电厂行业模版/data/pic/old/运维管理/操作票管理.glx delete mode 100644 PSCADA/ECMS电厂行业模版/data/pic/old/运维管理/模拟操作.glx delete mode 100644 PSCADA/ECMS电厂行业模版/data/pic/old/运维管理/置数一览.glx delete mode 100644 PSCADA/ECMS电厂行业模版/data/pic/old/高级功能/协调曲线.glx delete mode 100644 PSCADA/ECMS电厂行业模版/data/pic/old/高级功能/告警策略.glx delete mode 100644 PSCADA/ECMS电厂行业模版/data/pic/old/高级功能/告警管理.glx delete mode 100644 PSCADA/ECMS电厂行业模版/data/pic/old/高级功能/多媒体.glx delete mode 100644 PSCADA/ECMS电厂行业模版/data/pic/old/高级功能/定值管理.glx delete mode 100644 PSCADA/ECMS电厂行业模版/data/pic/old/高级功能/设备屏蔽.glx delete mode 100644 PSCADA/ECMS电厂行业模版/data/pic/test1.glx delete mode 100644 PSCADA/ECMS电厂行业模版/data/pic/界面框架/interval_instrument - 副本.glx delete mode 100644 PSCADA/ECMS电厂行业模版/data/pic/界面框架/interval_protect - 副本 - 副本.glx delete mode 100644 PSCADA/ECMS电厂行业模版/data/pic/界面框架/interval_protect - 副本.glx delete mode 100644 PSCADA/ECMS电厂行业模版/database/accuml.xlsx delete mode 100644 PSCADA/ECMS电厂行业模版/database/accuml_map_to_fes.xlsx delete mode 100644 PSCADA/ECMS电厂行业模版/database/accuml_temp_define.xlsx delete mode 100644 PSCADA/ECMS电厂行业模版/database/analog.xlsx delete mode 100644 PSCADA/ECMS电厂行业模版/database/analog_map_to_fes.xlsx delete mode 100644 PSCADA/ECMS电厂行业模版/database/analog_temp_define.xlsx delete mode 100644 PSCADA/ECMS电厂行业模版/database/database.sql delete mode 100644 PSCADA/ECMS电厂行业模版/database/dev_group.xlsx delete mode 100644 PSCADA/ECMS电厂行业模版/database/dev_info.xlsx delete mode 100644 PSCADA/ECMS电厂行业模版/database/dev_temp_def.xlsx delete mode 100644 PSCADA/ECMS电厂行业模版/database/dict_point_type.xlsx delete mode 100644 PSCADA/ECMS电厂行业模版/database/digital.xlsx delete mode 100644 PSCADA/ECMS电厂行业模版/database/digital_map_to_fes.xlsx delete mode 100644 PSCADA/ECMS电厂行业模版/database/fes_accuml.xlsx delete mode 100644 PSCADA/ECMS电厂行业模版/database/fes_analog.xlsx delete mode 100644 PSCADA/ECMS电厂行业模版/database/fes_channel_para.xlsx delete mode 100644 PSCADA/ECMS电厂行业模版/database/fes_data_block.xlsx delete mode 100644 PSCADA/ECMS电厂行业模版/database/fes_data_block_temp.xlsx delete mode 100644 PSCADA/ECMS电厂行业模版/database/fes_dev_info.xlsx delete mode 100644 PSCADA/ECMS电厂行业模版/database/fes_dev_temp_def.xlsx delete mode 100644 PSCADA/ECMS电厂行业模版/database/fes_digital.xlsx delete mode 100644 PSCADA/ECMS电厂行业模版/database/fes_digital_ctrl.xlsx delete mode 100644 PSCADA/ECMS电厂行业模版/database/fes_rtu_para.xlsx delete mode 100644 PSCADA/ECMS电厂行业模版/database/rm_user_def.xlsx delete mode 100644 PSCADA/ECMS电厂行业模版/database/sample_define.xlsx delete mode 100644 PSCADA/ECMS电厂行业模版/database/sys_model_process_info.xlsx delete mode 100644 PSCADA/ECMS电厂行业模版/database/temp_plugin.xlsx delete mode 100644 PSCADA/ECMS电厂行业模版/database/temp_plugin_dev_map.xlsx delete mode 100644 PSCADA/ECMS电厂行业模版/database/temp_plugin_fes_dev_map.xlsx delete mode 100644 PSCADA/ECMS电厂行业模版/database/temp_plugin_point_map_acc.xlsx delete mode 100644 PSCADA/ECMS电厂行业模版/database/temp_plugin_point_map_ana.xlsx delete mode 100644 PSCADA/ECMS电厂行业模版/db_manager_backup_manifest.xml delete mode 100644 PSCADA/SG-A通讯管理模版/data/config/db_manager_cfg.xml delete mode 100644 PSCADA/SG-A通讯管理模版/data/config61850/高厂变/AH101.cid delete mode 100644 PSCADA/SG-A通讯管理模版/data/icon/运行状态.ilx delete mode 100644 PSCADA/SG-A通讯管理模版/data/mod_instance/设备实例-高泰.xlsx delete mode 100644 PSCADA/SG-A通讯管理模版/data/model/colorConfig.xml delete mode 100644 PSCADA/SG-A通讯管理模版/data/model/toolbox.xml delete mode 100644 PSCADA/SG-A通讯管理模版/data/pic/实时监控/10kV厂用电主接线图.glx delete mode 100644 PSCADA/SG-A通讯管理模版/data/pic/实时监控/110kV发电三期主接线图.glx delete mode 100644 PSCADA/SG-A通讯管理模版/data/pic/界面框架/frame_footer_unuse.glx delete mode 100644 PSCADA/SG-A通讯管理模版/data/pic/界面框架/interval_custom.glx delete mode 100644 PSCADA/SG-A通讯管理模版/data/pic/界面框架/interval_instrument - 副本.glx delete mode 100644 PSCADA/SG-A通讯管理模版/data/pic/界面框架/interval_instrument.glx delete mode 100644 PSCADA/SG-A通讯管理模版/data/pic/界面框架/interval_meter.glx delete mode 100644 PSCADA/SG-A通讯管理模版/data/pic/界面框架/interval_protect - 副本 - 副本.glx delete mode 100644 PSCADA/SG-A通讯管理模版/data/pic/界面框架/interval_protect - 副本.glx delete mode 100644 PSCADA/SG-A通讯管理模版/data/pic/界面框架/interval_protect.glx delete mode 100644 PSCADA/SG-A通讯管理模版/data/pic/界面框架/interval_relay.glx delete mode 100644 PSCADA/SG-A通讯管理模版/data/pic/界面框架/panel_analog_set.glx delete mode 100644 PSCADA/SG-A通讯管理模版/data/pic/界面框架/panel_direct_ctrl.glx delete mode 100644 PSCADA/SG-A通讯管理模版/data/pic/界面框架/panel_remote_ctrl-gdw.glx delete mode 100644 PSCADA/SG-A通讯管理模版/data/pic/界面框架/panel_remote_ctrl0000.glx delete mode 100644 PSCADA/SG-A通讯管理模版/data/sys_model_info/SYS_MODEL_DBCONFIG_DOMAIN.xml delete mode 100644 PSCADA/SG-A通讯管理模版/data/sys_model_info/SYS_MODEL_DBCONFIG_NODE.xml delete mode 100644 PSCADA/SG-A通讯管理模版/data/sys_model_info/SYS_MODEL_NODE_INFO.xml delete mode 100644 PSCADA/SG-A通讯管理模版/database/accuml.xlsx delete mode 100644 PSCADA/SG-A通讯管理模版/database/accuml_map_to_fes.xlsx delete mode 100644 PSCADA/SG-A通讯管理模版/database/accuml_temp_define.xlsx delete mode 100644 PSCADA/SG-A通讯管理模版/database/analog.xlsx delete mode 100644 PSCADA/SG-A通讯管理模版/database/analog_map_to_fes.xlsx delete mode 100644 PSCADA/SG-A通讯管理模版/database/analog_temp_define.xlsx delete mode 100644 PSCADA/SG-A通讯管理模版/database/calc_func_def.xlsx delete mode 100644 PSCADA/SG-A通讯管理模版/database/calc_group_def.xlsx delete mode 100644 PSCADA/SG-A通讯管理模版/database/calc_in_para.xlsx delete mode 100644 PSCADA/SG-A通讯管理模版/database/calc_out_para.xlsx delete mode 100644 PSCADA/SG-A通讯管理模版/database/calc_para_def.xlsx delete mode 100644 PSCADA/SG-A通讯管理模版/database/dev_group.xlsx delete mode 100644 PSCADA/SG-A通讯管理模版/database/dev_info.xlsx delete mode 100644 PSCADA/SG-A通讯管理模版/database/dev_temp_def.xlsx delete mode 100644 PSCADA/SG-A通讯管理模版/database/dev_type_def_61850.xlsx delete mode 100644 PSCADA/SG-A通讯管理模版/database/dict_state_text_info.xlsx delete mode 100644 PSCADA/SG-A通讯管理模版/database/digital.xlsx delete mode 100644 PSCADA/SG-A通讯管理模版/database/digital_map_to_fes.xlsx delete mode 100644 PSCADA/SG-A通讯管理模版/database/digital_temp_define.xlsx delete mode 100644 PSCADA/SG-A通讯管理模版/database/fes_accuml.xlsx delete mode 100644 PSCADA/SG-A通讯管理模版/database/fes_analog.xlsx delete mode 100644 PSCADA/SG-A通讯管理模版/database/fes_channel_para.xlsx delete mode 100644 PSCADA/SG-A通讯管理模版/database/fes_data_block.xlsx delete mode 100644 PSCADA/SG-A通讯管理模版/database/fes_data_block_temp.xlsx delete mode 100644 PSCADA/SG-A通讯管理模版/database/fes_dev_info.xlsx delete mode 100644 PSCADA/SG-A通讯管理模版/database/fes_dev_pt_temp_def.xlsx delete mode 100644 PSCADA/SG-A通讯管理模版/database/fes_dev_temp_def.xlsx delete mode 100644 PSCADA/SG-A通讯管理模版/database/fes_digital.xlsx delete mode 100644 PSCADA/SG-A通讯管理模版/database/fes_digital_ctrl.xlsx delete mode 100644 PSCADA/SG-A通讯管理模版/database/fes_rtu_para.xlsx delete mode 100644 PSCADA/SG-A通讯管理模版/database/opt_ctrl_act_define.xlsx delete mode 100644 PSCADA/SG-A通讯管理模版/database/rm_user_def.xlsx delete mode 100644 PSCADA/SG-A通讯管理模版/database/sample_define.xlsx delete mode 100644 PSCADA/SG-A通讯管理模版/database/sys_model_dbconfig_domain.xlsx delete mode 100644 PSCADA/SG-A通讯管理模版/database/sys_model_dbconfig_node.xlsx delete mode 100644 PSCADA/SG-A通讯管理模版/database/sys_model_deploy_info.xlsx delete mode 100644 PSCADA/SG-A通讯管理模版/database/sys_model_node_info.xlsx delete mode 100644 PSCADA/SG-A通讯管理模版/database/sys_model_process_info.xlsx delete mode 100644 PSCADA/SG-A通讯管理模版/database/temp_plugin.xlsx delete mode 100644 PSCADA/SG-A通讯管理模版/database/temp_plugin_dev_map.xlsx delete mode 100644 PSCADA/SG-A通讯管理模版/database/temp_plugin_fes_dev_map.xlsx delete mode 100644 PSCADA/SG-A通讯管理模版/database/temp_plugin_point_map_acc.xlsx delete mode 100644 PSCADA/SG-A通讯管理模版/database/temp_plugin_point_map_ana.xlsx delete mode 100644 PSCADA/SG-A通讯管理模版/database/temp_plugin_point_map_dig.xlsx rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/BusbarTemperatureWidget/setDeviceTitle.csv (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/InverseTimeLimit/InverseTimeLimitVer6.xlsx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/InverseTimeLimit/table.files/filelist.xml (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/InverseTimeLimit/table.files/image001.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/InverseTimeLimit/table.files/image002.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/InverseTimeLimit/table.files/sheet001.htm (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/InverseTimeLimit/table.files/stylesheet.css (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/InverseTimeLimit/table.files/tabstrip.htm (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/InverseTimeLimit/table.htm (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/NetMonite/ChanlPara.csv (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/NetMonite/MyDataBase.db (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/PcpmsDocManage/技术规格书/HM SG-A系列技术规格书.doc (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/PcpmsDocManage/用户手册/HM SPMS智慧电力监控系统_用户手册.doc (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/1U管理机.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/EMS.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/EMS能量管理系统.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/LOGO-100x32.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/LOGO.gif (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/MainPic.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/PCS-9611.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/PM8000.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/SOC上限.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/SOC下限.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/SOH.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/WEB服务器.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/arrowDown.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/arrowUp.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/backgroup.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/bms.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/board 1.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/board.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/bus-1.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/check.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/checked.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/datebackground1.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/datebackground2.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/details_img_BMS.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/details_img_PCS_n.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/disableCheck.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/down.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/epm.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/footer_background.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/frame.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/groupbox.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/header_background.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/hmlogo-white.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/hmlogo.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/home_back.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/home_back_2.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/home_back_3.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/home_btn.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/home_btn_site_dot_b.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/home_btn_site_dot_r.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/home_btn_site_left_b.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/home_btn_site_left_r.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/home_btn_site_line_b.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/home_btn_site_line_r.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/home_btn_site_right_b.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/home_btn_site_right_r.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_BMS.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_PCS.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_SOC.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_Select.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_alarm.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_bms监控.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_bms监控_sel.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_dev_ng.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_dev_ok.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_down.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_down_disable.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_more.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_out.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_pcs监控.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_pcs监控_sel.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_register.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_up.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_up_disable.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_user.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_一览表.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_两票管理.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_主接线图.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_主接线图_sel.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_事故追忆.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_事故追忆2.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_交接班.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_仓库.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_任务.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_值班管理.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_储能单元.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_储能单元_sel.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_充电量.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_关于.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_冷机.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_功率.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_功率总.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_区域.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_协调控制器.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_历史事件.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_历史事件_sel.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_变电站.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_变电站2.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_告警分析.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_告警分析_sel.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_告警管理.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_告警统计.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_地图.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_定值管理.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_实时告警.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_实时告警_sel.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_实时数据.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_审核.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_屏蔽.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_工作票.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_布局.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_总有功.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_总览.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_报表.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_报表浏览.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_报表管理.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_报表管理_sel.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_报表编辑.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_拓扑图.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_挂牌.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_排班.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_接线图.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_控制策略.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_控制策略_sel.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_操作票.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_放电量.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_故障录波.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_文档配置.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_文档配置_sel.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_日志-1.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_日志.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_曲线.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_机柜.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_框.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_模拟操作.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_消防.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_温度.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_点修改.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_用户管理.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_用户管理_sel.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_用户组管理.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_电压.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_电池堆数据.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_电池簇数据.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_电流-1.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_电流.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_监控.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_监控线路.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_监控首页.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_监控首页_sel.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_站点.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_策略.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_箱变测控.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_系统设置.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_系统设置_sel.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_网络.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_网络拓扑.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_联动.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_能耗分析.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_能耗总览.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_能耗报表.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_表清单.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_计划.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_设备信息.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_详细数据.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_详细数据_sel.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_趋势分析.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_趋势分析_sel.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_趋势浏览.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_轮询.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_轮询配置.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_辅助设备.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_辅助设备_sel.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_运维首页.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_运行简报.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_通道设置.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_通道设置_sel.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_逻辑编程.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_配电系统.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_需量.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_项目.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_顺控.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_顺控执行.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/icon_首页.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/index.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/index_background.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/item_back.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/item_icon.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/kehua logo.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/load.gif (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/logo.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/logo_bg.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/logo_line.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/mute.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/nav_background.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/overlook.gif (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/pause.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/pcs.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/pcs_3d.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/play.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/pointer 1.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/pointer.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/rec_1.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/rec_1_arrow.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/relyez-title.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/relyez-title_zh.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/selected.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/sound.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/title1_sel.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/title_arrow.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/title_nor.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/top.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/top_0.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/top_1.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/uncheck.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/unchecked.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/unselect.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/user.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/zoomfit.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/zoomin.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/zoomout.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/一体机.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/一体机背景.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/上一帧.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/上一页.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/下一帧.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/下一页.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/中压进线柜.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/主机.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/事件.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/事故列表.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/云动力系统.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/交流器.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/产品集合.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/今日充电量.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/今日放电量.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/仪表.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/停止.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/储能回路单元.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/充放电状态.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/全屏截图.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/北_斜.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/区变.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/区域截图.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/协调控制器.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/单体_soc.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/单体_电池.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/单体温度_极差值.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/单体电压_极差值.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/南_斜.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/南_正.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/变压器柜.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/可充电量.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/可放电量.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/向右线-.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/向右线.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/向左线.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/告警.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/告警中.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/告警追忆.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/四层柴发机房1-斜.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/存储服务器.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/实时监控_充电量.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/实时监控_放电量.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/导航栏.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/就地.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/工作站.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/快进.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/慢放.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/报警.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/指针.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/接线图-选中.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/接线图.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/推图.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/推图old.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/推图中.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/推图中old.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/摄像头.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/整流柜.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/更多-选中.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/更多.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/柴发.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/格力电子鸟瞰图.jpg (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/正向隔离装置.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/消防_主电状态.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/消防_分区数量.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/消防_备电状态.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/消防_瓶头阀.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/消防_警铃.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/消防_通讯状态.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/液冷柜内部.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/温度制冷.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/温度制冷_目标.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/温度制冷_设定.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/温度制热.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/温度制热_目标.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/温度制热_设定.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/温度告警.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/温度告警_目标.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/温度告警_设定.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/点标签.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/电度表.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/电池.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/电池堆_soc.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/电池堆_健康状态.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/电池堆_电压.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/电池堆_电流.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/电网.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/登录-密码-1.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/登录-密码.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/登录-用户-1.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/登录-用户.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/登录弹窗背景.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/登录背景.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/登录背景2.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/白灯.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/监控平台-选中.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/监控平台.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/监控服务器.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/站内3D.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/箭头.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/箱变保护测控.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/簇SOC_极差值.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/簇电压_极差值.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/累计充电量.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/累计放电量.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/红灯.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/绿灯.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/网络交换机.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/背景.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/背景_light.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/背景_unuse.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/负载.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/轮询.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/辅助设备-pcs.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/辅助设备-消防.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/辅助设备-温湿器.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/辅助设备-电表.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/远信云平台.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/远方.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/退出.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/退出弹窗背景.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/鄂州机场平面图.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/铜排监测-选中.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/铜排监测.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/防火墙.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/额定功率.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/额定容量.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/馈线柜.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/首页-选中.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/首页.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/首页底图.jpg (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/高压柜.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/back_pixmap/黄灯.png (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/config/db_his_data_srv_cfg.xml (100%) rename PSCADA/{ECMS电厂行业模版 => SG管理机模版}/data/config/db_manager_cfg.xml (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/config/pathallow.xml (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/config/变压器.time (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/config61850/61850ImportCfg-高厂变.xlsx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/config61850/61850ImportCfg.xlsx (100%) rename PSCADA/{ECMS电厂行业模版/data/config61850/高厂变 => SG管理机模版/data/config61850}/AH101.cid (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/config61850/继保间/61850ImportCfg-ECS.xlsx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/config61850/继保间/FBAP343.cid (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/config61850/继保间/FBAP5.cid (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/config61850/继保间/FBAP643.cid (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/config61850/继保间/FBBP343.cid (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/config61850/继保间/FBBP5.cid (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/config61850/继保间/FBBP643.cid (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/config61850/继保间/FBCCK.cid (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/config61850/继保间/FBCFDL.cid (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/config61850/继保间/XLCK.cid (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/config61850/继保间/XLP543.cid (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/config61850/高厂变/61850ImportCfg-高厂变.xlsx (100%) rename PSCADA/{SG-A通讯管理模版/data/config61850 => SG管理机模版/data/config61850/高厂变}/AH101.cid (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/config61850/高厂变/AH102.cid (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/config61850/高厂变/AH103.cid (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/config61850/高厂变/AH104.cid (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/config61850/高厂变/AH105.cid (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/config61850/高厂变/AH106.cid (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/config61850/高厂变/AH107.cid (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/config61850/高厂变/AH109.cid (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/config61850/高厂变/AH109.icd (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/config61850/高厂变/AH110.cid (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/config61850/高厂变/AH111.cid (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/config61850/高厂变/AH112.cid (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/config61850/高厂变/AH113.cid (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/config61850/高厂变/AH114.cid (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/config61850/高厂变/AH114.icd (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/config61850/高厂变/AH115.cid (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/config61850/高厂变/AH115.icd (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/config61850/高厂变/AH201.cid (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/config61850/高厂变/AH202.cid (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/config61850/高厂变/AH203.cid (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/config61850/高厂变/AH204.cid (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/config61850/高厂变/AH205.cid (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/config61850/高厂变/AH205.icd (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/config61850/高厂变/AH206.cid (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/config61850/高厂变/AH207.cid (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/config61850/高厂变/AH209.cid (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/config61850/高厂变/AH209.icd (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/config61850/高厂变/AH210.cid (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/config61850/高厂变/AH211.cid (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/config61850/高厂变/AH212.cid (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/config61850/高厂变/AH213.cid (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/config61850/高厂变/AH215.cid (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/config61850/高厂变/AH215.icd (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/fbd_designer/AGC功率分配.xml (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/fbd_designer/AGC功率分配1-50.xml (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/fbd_designer/alarm_push_test.xml (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/fbd_designer/time_trigger.xml (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/fbd_designer/告警策略.xml (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/fes/EMS_osicfg.xml (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/fes/PSCADA_osicfg.xml (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/fes/SPMS_osicfg.xml (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/fes/cdts.xml (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/fes/fesConfig.xml (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/fes/fespartdatazf.xml (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/fes/hmjs104.xml (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/fes/iec101s.xml (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/fes/iec103.xml (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/fes/iec104.xml (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/fes/iec104s.xml (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/fes/iec61850_clientV3.xml (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/fes/logcfg.xml (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/fes/mmsconfig.ini (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/fes/modbus_rtu_dt.xml (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/fes/modbus_rtu_s.xml (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/fes/modbus_tcp_mz.xml (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/fes/modbus_tcp_s.xml (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/fes/modbus_tcp_s_V2.xml (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/fes/modbustcps.xml (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/fes/mqtt_topic_cfg58.csv (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/fes/mqtt_yxCloud.xml (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/fes/siemens103_tcp.xml (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/fes/snmpWiseWay3.xml (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/fes/snmpv3.xml (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/fes/sqlserver_s.xml (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/fes/wfudpcdt.xml (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/fes/yxcloud_mqtt_wn.xml (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/NewCB.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/NewCB2.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/三卷变YYV.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/三卷变压器.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/三相电压.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/三相电流功率.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/三角形.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/两卷变压器三角形三角形.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/两卷变压器三角形星形.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/两卷变压器星形三角形.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/中压CT.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/中压CTs.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/中压PT.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/中压PT_刀闸.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/中压PT_反.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/中压PTs.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/中压母联.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/中压母联_刀闸.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/中压母联_双刀闸.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/中压母联s.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/中压进线.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/中压进线H.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/中压进线H_刀闸.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/中压进线H_双刀闸.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/中压进线Hs.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/中压隔离.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/中压隔离_刀闸.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/中压隔离s.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/中压馈线.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/中压馈线H_刀闸.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/中压馈线_刀闸.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/中压馈线_双刀闸.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/中压馈线s.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/主备状态.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/主电状态.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/仪表盘.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/仪表通讯.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/低压开关.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/低压断路器.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/低压断路器_不可控.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/低压进线.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/低压馈线.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/低压馈线H.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/低压馈线H_接触器.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/低压马达.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/光字牌.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/刀闸.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/分裂电抗器.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/压板.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/发电机.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/四卷变压器_横.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/四卷变压器_竖.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/带熔断器刀闸.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/带电指示器.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/快速接地刀.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/手车_上.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/手车_下.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/把手.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/投入退出.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/挂牌.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/探测器状态.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/接地.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/接地刀闸.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/接触器.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/摄像头.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/数字量点标签.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/断路器 - 副本.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/断路器.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/断路器_控制.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/模拟量点标签.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/横向接地刀闸.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/母线电压.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/母联.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/测控_远方状态.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/牵引变压器_四卷.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/牵引变压器_横.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/牵引变压器_竖.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/状态3D_白黄.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/状态3D_绿红.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/状态_红绿蓝.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/电动机.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/电压互感器PT.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/电压互感器三绕组.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/电压互感器两绕组.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/电压互感器四绕组.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/电容.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/电容器.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/电抗器.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/电机.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/电流互感器.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/电缆.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/硬压板.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/竖向.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/装置_通讯状态.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/调频状态.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/负荷开关.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/转换开关3D_远方就地.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/转换开关_投入退出.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/转换开关_联锁解锁.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/转换开关_远方就地.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/转换开关_远方就地退出.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/运行停止.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => SG管理机模版}/data/icon/运行状态.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/进线.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/远方就地.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/远方就地_LR.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/通信状态字描述.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/通断状态.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/通用状态.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/通用状态无效.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/通讯状态.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/通道状态.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/避雷器.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/隔离开关.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/静止无功补偿器.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/馈线.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/高压PT.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/高压PT2.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/高压母联.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/高压进线.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/高压避雷器.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/高压馈线.ilx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/icon/高压馈线2.ilx (100%) rename PSCADA/{ECMS电厂行业模版 => SG管理机模版}/data/mod_instance/设备实例-高泰.xlsx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/model/ButtonGroupWidget.json (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/model/DevGroupLock.json (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/model/GradModel.ini (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/model/NavigationWidget.json (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/model/alarm_color_define.xml (100%) rename PSCADA/{ECMS电厂行业模版 => SG管理机模版}/data/model/colorConfig.xml (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/model/hmi.json (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/model/hmiRoll.xml (100%) rename PSCADA/{ECMS电厂行业模版 => SG管理机模版}/data/model/iconAction.json (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/model/publish.json (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/model/qt_zh_CN.qm (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/model/report.xml (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/model/retriever.xml (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/model/style.xml (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/model/switchSetting.xml (100%) rename PSCADA/{ECMS电厂行业模版 => SG管理机模版}/data/model/toolbox.xml (100%) create mode 100644 PSCADA/SG管理机模版/data/model/toolopen.xml rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/model/trendgraph.xml (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/model/wordlist.txt (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/modelstudio/ModelConfig.ini (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/index.glx (100%) rename PSCADA/{ECMS电厂行业模版 => SG管理机模版}/data/pic/实时监控/10kV厂用电主接线图.glx (100%) rename PSCADA/{ECMS电厂行业模版 => SG管理机模版}/data/pic/实时监控/110kV发电三期主接线图.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/实时监控/低压厂用电接线图.glx (100%) rename PSCADA/{ECMS电厂行业模版 => SG管理机模版}/data/pic/实时监控/全厂串口通讯图.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/实时监控/全厂潮流图.glx (100%) rename PSCADA/{ECMS电厂行业模版 => SG管理机模版}/data/pic/实时监控/全厂网络通道图.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/实时监控/全厂骨干网.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/实时监控/四宫格.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/实时监控/数据表格控件模板.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/实时监控/母线测温.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/实时监控/站内布置图.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/实时监控/继保间/1#直流屏监控图.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/实时监控/继保间/110kV电子间/110kVXLP.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/实时监控/继保间/110kV电子间/2AS同期装置.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/实时监控/继保间/110kV电子间/BT9301上海利乾/BT9301A-4n.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/实时监控/继保间/110kV电子间/BT9301上海利乾/BT9301G-1n.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/实时监控/继保间/110kV电子间/BT9301上海利乾/BT9301G-3n.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/实时监控/继保间/110kV电子间/CKP.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/实时监控/继保间/110kV电子间/FBPC.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/实时监控/继保间/110kV电子间/冷风机.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/实时监控/继保间/110kV电子间/发变组测控A屏.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/实时监控/继保间/110kV电子间/发变组测控B屏.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/实时监控/继保间/110kV电子间/微机励磁.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/实时监控/继保间/110kV电子间/快切.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/实时监控/继保间/2#直流屏监控图.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/实时监控/继保间/UPS监控图.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/实时监控/继保间/全厂网络架构图.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/实时监控/继保间/小电流选线监控.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/实时监控/继保间/快切.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/实时监控/继保间/汇川凝泵变频器.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/实时监控/继保间/消谐装置.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/实时监控/首页-old.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/实时监控/首页.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/界面框架/BatchOperation.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/界面框架/Batchperation.glx (100%) rename PSCADA/{ECMS电厂行业模版 => SG管理机模版}/data/pic/界面框架/alarm_window.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/界面框架/alarm_window_dialog.glx (100%) rename PSCADA/{ECMS电厂行业模版 => SG管理机模版}/data/pic/界面框架/event_window.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/界面框架/frame_footer.glx (100%) rename PSCADA/{ECMS电厂行业模版 => SG管理机模版}/data/pic/界面框架/frame_footer_unuse.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/界面框架/frame_header.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/界面框架/frame_navigation.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/界面框架/frame_navigation_more.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/界面框架/frame_navigation_realtime.glx (100%) rename PSCADA/{ECMS电厂行业模版 => SG管理机模版}/data/pic/界面框架/interval_custom.glx (100%) rename PSCADA/{ECMS电厂行业模版 => SG管理机模版}/data/pic/界面框架/interval_instrument.glx (100%) rename PSCADA/{ECMS电厂行业模版 => SG管理机模版}/data/pic/界面框架/interval_meter.glx (100%) rename PSCADA/{ECMS电厂行业模版 => SG管理机模版}/data/pic/界面框架/interval_protect.glx (100%) rename PSCADA/{ECMS电厂行业模版 => SG管理机模版}/data/pic/界面框架/interval_relay.glx (100%) rename PSCADA/{ECMS电厂行业模版 => SG管理机模版}/data/pic/界面框架/panel_accuml_ctrl.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/界面框架/panel_alarm_push.glx (100%) rename PSCADA/{ECMS电厂行业模版 => SG管理机模版}/data/pic/界面框架/panel_analog_set.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/界面框架/panel_const_read.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/界面框架/panel_const_switch.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/界面框架/panel_ctrl_verify.glx (100%) rename PSCADA/{ECMS电厂行业模版 => SG管理机模版}/data/pic/界面框架/panel_direct_ctrl.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/界面框架/panel_direct_ctrl0.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/界面框架/panel_direct_ctrl1.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/界面框架/panel_direct_ctrl2.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/界面框架/panel_group_limit.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/界面框架/panel_group_maint.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/界面框架/panel_group_more.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/界面框架/panel_hint_info.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/界面框架/panel_login.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/界面框架/panel_login_exit.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/界面框架/panel_login_lock.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/界面框架/panel_oper_verify.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/界面框架/panel_opt_ticket.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/界面框架/panel_point_lock.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/界面框架/panel_recall_alarm.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/界面框架/panel_recall_list.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/界面框架/panel_recall_toolbar.glx (100%) rename PSCADA/{ECMS电厂行业模版 => SG管理机模版}/data/pic/界面框架/panel_remote_ctrl-gdw.glx (100%) rename PSCADA/{ECMS电厂行业模版 => SG管理机模版}/data/pic/界面框架/panel_remote_ctrl.glx (100%) rename PSCADA/{ECMS电厂行业模版 => SG管理机模版}/data/pic/界面框架/panel_remote_ctrl0000.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/界面框架/panel_reset_ctrl.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/界面框架/panel_roll_switch.glx (100%) rename PSCADA/{ECMS电厂行业模版 => SG管理机模版}/data/pic/界面框架/panel_tag_operate.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/界面框架/panel_ticket_manage.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/界面框架/panel_transformer_ctrl.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/界面框架/panel_trend_curve.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/界面框架/panel_video_linkage.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/界面框架/panel_video_paly.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/界面框架/panel_video_viewer.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/界面框架/panel_video_wall.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/界面框架/reportdesign.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/界面框架/reportview.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/界面框架/view_alarm_Statis.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/界面框架/view_alarm_analyze.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/界面框架/view_alarm_manage.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/界面框架/view_alarm_shield.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/界面框架/view_alarm_strategy.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/界面框架/view_bi_browser.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/界面框架/view_bi_design.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/界面框架/view_bi_view.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/界面框架/view_chan_status.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/界面框架/view_const_curves.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/界面框架/view_const_groupsw.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/界面框架/view_const_manage.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/界面框架/view_device_list.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/界面框架/view_doc_manage.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/界面框架/view_duty_manger.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/界面框架/view_fault_record.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/界面框架/view_hand_panel.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/界面框架/view_invtime_curve.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/界面框架/view_linkage.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/界面框架/view_maint_list.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/界面框架/view_media.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/界面框架/view_recall_setting.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/界面框架/view_robot_linkage.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/界面框架/view_roll_setting.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/界面框架/view_run_report.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/界面框架/view_sequence.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/界面框架/view_serial_status.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/界面框架/view_shield_list.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/界面框架/view_shift_manage.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/界面框架/view_sim_operate.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/界面框架/view_system_setting.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/界面框架/view_ticket_manage.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/界面框架/view_ticket_search.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/界面框架/view_token_list.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/界面框架/view_trend.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/界面框架/view_user_group.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/界面框架/view_user_manage.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/界面框架/view_wave_analyze.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/界面框架/view_web_energy.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/界面框架/view_work_ticket.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/pic/界面框架/导航栏.glx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/picbackup.tar.gz (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/protect/branchSetting/全部名称.csv (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/protect/deviceList.csv (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/rec/#1储能回路#1储能单元/PCS协控1/XK1001_RCD_0_20240416_105916_461.cfg (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/rec/#1储能回路#1储能单元/PCS协控1/XK1001_RCD_0_20240416_105916_461.dat (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/rec/#1储能回路#1储能单元/PCS协控1/XK1001_RCD_0_20240416_105916_461.des (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/rec/#1储能回路#1储能单元/PCS协控1/XK1001_RCD_0_20240416_105916_461.hdr (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/rec/#1储能回路#1储能单元/PCS协控1/XK1001_RCD_0_20240416_105916_461.mid (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/rec/进线柜/断路器/PQMonitor_PQM1_001_20220502_151718_839.cfg (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/rec/进线柜/断路器/PQMonitor_PQM1_001_20220502_151718_839.dat (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/rec/进线柜/断路器/PQMonitor_PQM1_001_20220502_151718_839.hdr (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/rec/进线柜/断路器/PQMonitor_PQM1_001_20220502_151718_839.inf (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/rec/进线柜/断路器/PQMonitor_PQM1_001_20220926_173250_750.cfg (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/rec/进线柜/断路器/PQMonitor_PQM1_001_20220926_173250_750.dat (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/rec/进线柜/断路器/PQMonitor_PQM1_001_20220926_173250_750.hdr (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/rec/进线柜/断路器/PQMonitor_PQM1_001_20220926_173250_750.inf (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/rec/进线柜/断路器/PQMonitor_PQM1_002_20220502_151847_028.cfg (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/rec/进线柜/断路器/PQMonitor_PQM1_002_20220502_151847_028.dat (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/rec/进线柜/断路器/PQMonitor_PQM1_002_20220502_151847_028.hdr (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/rec/进线柜/断路器/PQMonitor_PQM1_002_20220502_151847_028.inf (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/report/FAIL_PAGE.html (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/report/PERM_FORBIT_EDIT.html (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/report/PERM_FORBIT_VIEW.html (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/reportFile/10kV厂用电日电度报表.log (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/reportFile/10kV厂用电日运行报表.log (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/script/commonBtn.qs (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/script/commonOpt.qs (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/script/commonTree(复件).qs (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/script/commonTree.qs (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/script/lockOpt.qs (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/script/macros.7z (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/script/macros.qs (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/script/panel_ctrl_1N.qs (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/script/panel_ctrl_digital.qs (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/script/pscadaOpt.qs (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/script/scriptCfg.qs (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/scriptbackup.tar.gz (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/sound/Default.wav (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/sound/JUMP_EN.WAV (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/sound/OVER6.WAV (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/sound/ROOSTER.wav (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/sound/保护SOE报警.WAV (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/sound/保护报警.wav (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/sound/保护报警1.WAV (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/sound/关闭.WAV (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/sound/刀闸报警.wav (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/sound/向上还原.WAV (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/sound/向下还原.WAV (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/sound/嘟嘟声.wav (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/sound/幻想空间默认值.WAV (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/sound/开关.Wav (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/sound/开关1003.Wav (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/sound/开关1004.wav (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/sound/总功报警.wav (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/sound/感叹.WAV (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/sound/打开.WAV (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/sound/报警.wav (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/sound/提示.WAV (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/sound/提问.WAV (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/sound/最大化.wav (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/sound/最小化.wav (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/sound/清空回收站.wav (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/sound/状态报警.wav (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/sound/电笛.WAV (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/sound/电铃.WAV (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/sound/菜单命令.WAV (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/sound/菜单弹出.WAV (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/sound/蜂鸣器.WAV (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/sound/错误.WAV (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/sound/预告报警.wav (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/sys_model_info/SYS_MODEL_APP_INFO.xml (100%) create mode 100644 PSCADA/SG管理机模版/data/sys_model_info/SYS_MODEL_DBCONFIG_DOMAIN.xml create mode 100644 PSCADA/SG管理机模版/data/sys_model_info/SYS_MODEL_DBCONFIG_NODE.xml rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/sys_model_info/SYS_MODEL_DEPLOY_INFO.xml (56%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/sys_model_info/SYS_MODEL_DOMAIN_INFO.xml (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/sys_model_info/SYS_MODEL_LOCATION_INFO.xlsx (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/sys_model_info/SYS_MODEL_LOCATION_INFO.xml (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/sys_model_info/SYS_MODEL_MSG_RELAY.xml (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/sys_model_info/SYS_MODEL_NODE_INFO.xlsx (100%) create mode 100644 PSCADA/SG管理机模版/data/sys_model_info/SYS_MODEL_NODE_INFO.xml rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/sys_model_info/SYS_MODEL_PROCESS_INFO.xml (93%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/sys_model_info/SYS_MODEL_SUB_SYSTEM_INFO.xml (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/web_server_files/3D/a-03adroghm_jknmfo87f2.glb (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/web_server_files/3dPublicConfigs/-us3al30_08rxql6zlbfc5.json (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/web_server_files/3dPublicConfigs/1al160nobkq99noy8v-7iu.json (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/web_server_files/3dPublicConfigs/24i-g2jx_u66rua28zzjrx.json (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/web_server_files/3dPublicConfigs/326ckzbji8i3kudupaonfy.json (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/web_server_files/3dPublicConfigs/3n_t3p088qeqbcph_-zqsq.json (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/web_server_files/3dPublicConfigs/3xnj28pkwe9up4734md9cq.json (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/web_server_files/3dPublicConfigs/51ozdkblrwkq1-coyqdavr.json (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/web_server_files/3dPublicConfigs/5l_ivsx1wrkdabd0fit4o9.json (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/web_server_files/3dPublicConfigs/5vmsu53hzzwhsfoczkab6k.json (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/web_server_files/3dPublicConfigs/6kkccamzzlg9dxoxvta1ke.json (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/web_server_files/3dPublicConfigs/74k25ecsgwymadilkmnksy.json (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/web_server_files/3dPublicConfigs/7t66ynjth02_38z1o9yprc.json (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/web_server_files/3dPublicConfigs/88y0rzhv78wpvtuk885uhw.json (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/web_server_files/3dPublicConfigs/9fqt8r-8mgbzczioj2q2ab.json (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/web_server_files/3dPublicConfigs/9n5jvyspzyaumcnmct6q6w.json (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/web_server_files/3dPublicConfigs/_1un7dc-vmhr1tzr-mc7a8.json (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/web_server_files/3dPublicConfigs/ba25z619z9dyev2q1c801b.json (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/web_server_files/3dPublicConfigs/clcn74yb-cm9h_gxloic71.json (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/web_server_files/3dPublicConfigs/exaglht1330kbqama32-jj.json (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/web_server_files/3dPublicConfigs/fxzw0d6u5_8sub1-xubx8e.json (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/web_server_files/3dPublicConfigs/g0upy3ebnkrgbkac306vtz.json (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/web_server_files/3dPublicConfigs/h8g2j6ic7_xx99t8-iuose.json (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/web_server_files/3dPublicConfigs/i5run9zaljl9kgdrx_89b6.json (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/web_server_files/3dPublicConfigs/jfa6v6-4fvm3l9i1jve934.json (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/web_server_files/3dPublicConfigs/l44vzhrahws736r92zp2da.json (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/web_server_files/3dPublicConfigs/lzsr-0361tmv3uf8nytmae.json (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/web_server_files/3dPublicConfigs/m08l1qgxsdmz8wm23j7evz.json (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/web_server_files/3dPublicConfigs/m1shfjtzwid_sp4-3d30jp.json (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/web_server_files/3dPublicConfigs/ma6zn_5lh-__1ao7_7ql64.json (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/web_server_files/3dPublicConfigs/r4u6gxkexo-cwg8dfw34-c.json (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/web_server_files/3dPublicConfigs/rn1w_xi5_9i1ht0w9yyfzu.json (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/web_server_files/3dPublicConfigs/uf-_-b52ku7-ld--efct32.json (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/web_server_files/3dPublicConfigs/vlwu4ysip_ef7lp_omhtmh.json (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/web_server_files/3dPublicConfigs/wh0bkhhwlonmzw00o09qh-.json (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/web_server_files/3dPublicConfigs/wl6uwti7r3dpnopuh4_3k4.json (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/web_server_files/3dPublicConfigs/x36ola2i6ye-ve7tisl74c.json (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/web_server_files/3dPublicConfigs/xvicq_i6ltyfuuzs80jhb6.json (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/web_server_files/3dPublicConfigs/yc5_ue_2om-tp_h-xr7qf5.json (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/web_server_files/3dPublicConfigs/yupe96zsizpzfii7k-0nfr.json (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/web_server_files/3dPublicConfigs/zc8lj2p90emu4yconf9_ic.json (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/web_server_files/config/1/json/tnlycze_ruoop3s4h4oc9w.json (100%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/data/xm_alm_send/Xm_Alarm_Send_Config.xml (100%) create mode 100644 PSCADA/SG管理机模版/database/accuml.xlsx rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/accuml_limit_info.xlsx (60%) create mode 100644 PSCADA/SG管理机模版/database/accuml_map_to_fes.xlsx create mode 100644 PSCADA/SG管理机模版/database/accuml_temp_define.xlsx rename PSCADA/{ECMS电厂行业模版 => SG管理机模版}/database/acs_device_info.xlsx (56%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/acs_device_node_map.xlsx (56%) rename PSCADA/{ECMS电厂行业模版 => SG管理机模版}/database/alarm_action_define.xlsx (61%) rename PSCADA/{ECMS电厂行业模版 => SG管理机模版}/database/alarm_color.xlsx (55%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/alarm_keyword_define.xlsx (73%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/alarm_level_define.xlsx (59%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/alarm_level_sound_def.xlsx (57%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/alarm_link_enable_info.xlsx (55%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/alarm_manner_define.xlsx (64%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/alarm_sms_config.xlsx (56%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/alarm_sms_device.xlsx (56%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/alarm_sms_rule.xlsx (55%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/alarm_status_define.xlsx (82%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/alarm_status_dig_set.xlsx (58%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/alarm_type_define.xlsx (60%) create mode 100644 PSCADA/SG管理机模版/database/analog.xlsx rename PSCADA/{ECMS电厂行业模版 => SG管理机模版}/database/analog_control.xlsx (58%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/analog_limit_info.xlsx (60%) create mode 100644 PSCADA/SG管理机模版/database/analog_map_to_fes.xlsx create mode 100644 PSCADA/SG管理机模版/database/analog_temp_define.xlsx rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/apc_analog.xlsx (57%) rename PSCADA/{ECMS电厂行业模版 => SG管理机模版}/database/apc_curve.xlsx (56%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/apc_curve_day_index.xlsx (59%) rename PSCADA/{ECMS电厂行业模版 => SG管理机模版}/database/apc_curve_day_tmpl.xlsx (56%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/apc_curve_day_tmpl_section.xlsx (58%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/apc_curve_day_value.xlsx (60%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/apc_curve_type.xlsx (55%) rename PSCADA/{ECMS电厂行业模版 => SG管理机模版}/database/apc_curve_week.xlsx (58%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/apc_curve_year.xlsx (57%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/apc_digital.xlsx (54%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/asset_info.xlsx (56%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/asset_records.xlsx (55%) rename PSCADA/{ECMS电厂行业模版 => SG管理机模版}/database/ats_casco_dynamic_train_data.xlsx (56%) rename PSCADA/{ECMS电厂行业模版 => SG管理机模版}/database/ats_casco_planned_train_data.xlsx (58%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/ats_casco_practical_train_data.xlsx (57%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/ats_fes_location_info.xlsx (55%) rename PSCADA/{ECMS电厂行业模版 => SG管理机模版}/database/ats_fes_platform_info.xlsx (56%) rename PSCADA/{ECMS电厂行业模版 => SG管理机模版}/database/bas_craft_def.xlsx (54%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/bas_mode_def.xlsx (56%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/bas_mode_type.xlsx (54%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/bas_timetable_ctrl_param.xlsx (57%) rename PSCADA/{ECMS电厂行业模版 => SG管理机模版}/database/bas_timetable_def.xlsx (57%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/bas_timetable_info.xlsx (57%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/bas_timetable_schedule.xlsx (58%) create mode 100644 PSCADA/SG管理机模版/database/calc_func_def.xlsx create mode 100644 PSCADA/SG管理机模版/database/calc_group_def.xlsx create mode 100644 PSCADA/SG管理机模版/database/calc_in_para.xlsx create mode 100644 PSCADA/SG管理机模版/database/calc_out_para.xlsx create mode 100644 PSCADA/SG管理机模版/database/calc_para_def.xlsx rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/cctv_camera_info.xlsx (61%) rename PSCADA/{ECMS电厂行业模版 => SG管理机模版}/database/cctv_monitor_info.xlsx (57%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/cctv_orientation.xlsx (58%) rename PSCADA/{ECMS电厂行业模版 => SG管理机模版}/database/cctv_separator_info.xlsx (61%) rename PSCADA/{ECMS电厂行业模版 => SG管理机模版}/database/cctv_sequence.xlsx (67%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/cfg_dev_type_map.xlsx (57%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/cfg_device_inst.xlsx (59%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/cfg_signal_inst.xlsx (86%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/dbop_list.xlsx (99%) create mode 100644 PSCADA/SG管理机模版/database/dev_group.xlsx create mode 100644 PSCADA/SG管理机模版/database/dev_info.xlsx create mode 100644 PSCADA/SG管理机模版/database/dev_temp_def.xlsx rename PSCADA/{ECMS电厂行业模版 => SG管理机模版}/database/dev_temp_group.xlsx (55%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/dev_topo_info.xlsx (56%) rename PSCADA/{ECMS电厂行业模版 => SG管理机模版}/database/dev_topo_ver.xlsx (56%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/dev_type_def.xlsx (57%) create mode 100644 PSCADA/SG管理机模版/database/dev_type_def_61850.xlsx rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/dict_menu_info.xlsx (90%) create mode 100644 PSCADA/SG管理机模版/database/dict_point_type.xlsx create mode 100644 PSCADA/SG管理机模版/database/dict_state_text_info.xlsx rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/dict_text_define.xlsx (68%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/dict_unit_info.xlsx (65%) rename PSCADA/{ECMS电厂行业模版 => SG管理机模版}/database/dict_vol_level.xlsx (60%) create mode 100644 PSCADA/SG管理机模版/database/digital.xlsx rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/digital_control.xlsx (59%) create mode 100644 PSCADA/SG管理机模版/database/digital_map_to_fes.xlsx create mode 100644 PSCADA/SG管理机模版/database/digital_temp_define.xlsx rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/duty_define.xlsx (56%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/duty_info.xlsx (58%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/duty_setting.xlsx (55%) rename PSCADA/{ECMS电厂行业模版 => SG管理机模版}/database/event_task_link.xlsx (56%) rename PSCADA/{ECMS电厂行业模版 => SG管理机模版}/database/fault_recall_cond_def.xlsx (57%) rename PSCADA/{ECMS电厂行业模版 => SG管理机模版}/database/fault_recall_record.xlsx (57%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/fbd_diagram.xlsx (84%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/fbd_group.xlsx (59%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/fbd_template.xlsx (55%) create mode 100644 PSCADA/SG管理机模版/database/fes_accuml.xlsx create mode 100644 PSCADA/SG管理机模版/database/fes_analog.xlsx rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/fes_analog_ctrl.xlsx (58%) create mode 100644 PSCADA/SG管理机模版/database/fes_channel_para.xlsx rename PSCADA/{ECMS电厂行业模版 => SG管理机模版}/database/fes_const.xlsx (61%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/fes_const_temp.xlsx (61%) create mode 100644 PSCADA/SG管理机模版/database/fes_data_block.xlsx create mode 100644 PSCADA/SG管理机模版/database/fes_data_block_temp.xlsx create mode 100644 PSCADA/SG管理机模版/database/fes_dev_info.xlsx create mode 100644 PSCADA/SG管理机模版/database/fes_dev_pt_temp_def.xlsx create mode 100644 PSCADA/SG管理机模版/database/fes_dev_temp_def.xlsx rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/fes_dev_type_def.xlsx (57%) create mode 100644 PSCADA/SG管理机模版/database/fes_digital.xlsx create mode 100644 PSCADA/SG管理机模版/database/fes_digital_ctrl.xlsx rename PSCADA/{ECMS电厂行业模版 => SG管理机模版}/database/fes_mix.xlsx (60%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/fes_mix_ctrl.xlsx (59%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/fes_protocol.xlsx (62%) create mode 100644 PSCADA/SG管理机模版/database/fes_rtu_para.xlsx rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/forward_accuml.xlsx (59%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/forward_analog.xlsx (60%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/forward_analog_ctrl.xlsx (59%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/forward_digital_ctrl.xlsx (62%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/forward_digital_double.xlsx (61%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/forward_digital_single.xlsx (60%) rename PSCADA/{ECMS电厂行业模版 => SG管理机模版}/database/forward_mix.xlsx (59%) rename PSCADA/{ECMS电厂行业模版 => SG管理机模版}/database/forward_mix_ctrl.xlsx (60%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/hmi_type_info.xlsx (56%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/ia_disposal_plan.xlsx (55%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/linkage_action.xlsx (57%) rename PSCADA/{ECMS电厂行业模版 => SG管理机模版}/database/linkage_define.xlsx (56%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/linkage_function.xlsx (59%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/linkage_setting.xlsx (58%) rename PSCADA/{ECMS电厂行业模版 => SG管理机模版}/database/load_stat_define.xlsx (57%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/mix.xlsx (63%) rename PSCADA/{ECMS电厂行业模版 => SG管理机模版}/database/mix_control.xlsx (59%) rename PSCADA/{ECMS电厂行业模版 => SG管理机模版}/database/mix_map_to_fes.xlsx (58%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/mix_temp_define.xlsx (61%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/opc_config_define.xlsx (56%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/opc_config_version.xlsx (56%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/operation_order_model.xlsx (56%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/operation_order_model_info.xlsx (60%) create mode 100644 PSCADA/SG管理机模版/database/opt_ctrl_act_define.xlsx rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/opt_handover_grp.xlsx (58%) rename PSCADA/{ECMS电厂行业模版 => SG管理机模版}/database/opt_interlock_define.xlsx (65%) rename PSCADA/{ECMS电厂行业模版 => SG管理机模版}/database/opt_interlock_para.xlsx (60%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/opt_shield_define.xlsx (58%) rename PSCADA/{ECMS电厂行业模版 => SG管理机模版}/database/opt_shield_info.xlsx (58%) rename PSCADA/{ECMS电厂行业模版 => SG管理机模版}/database/opt_shield_obj.xlsx (55%) rename PSCADA/{ECMS电厂行业模版 => SG管理机模版}/database/opt_shield_time.xlsx (56%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/opt_tag_info.xlsx (56%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/opt_token_define.xlsx (60%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/opt_token_info.xlsx (57%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/p_dict.xlsx (93%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/p_dict_sort.xlsx (74%) rename PSCADA/{ECMS电厂行业模版 => SG管理机模版}/database/pa_area_info.xlsx (55%) rename PSCADA/{ECMS电厂行业模版 => SG管理机模版}/database/pa_audio_info.xlsx (55%) rename PSCADA/{ECMS电厂行业模版 => SG管理机模版}/database/pa_broadcast_group.xlsx (55%) rename PSCADA/{ECMS电厂行业模版 => SG管理机模版}/database/pa_ctrl_param.xlsx (55%) rename PSCADA/{SG-A通讯管理模版/database/pis_location_area_def.xlsx => SG管理机模版/database/pa_location_area_def.xlsx} (57%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/pa_location_seq_def.xlsx (55%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/pa_operator_def.xlsx (55%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/pa_operator_map.xlsx (55%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/pa_timed_audio.xlsx (58%) rename PSCADA/{ECMS电厂行业模版 => SG管理机模版}/database/pis_area_info.xlsx (56%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/pis_ctrl_param.xlsx (55%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/pis_display_info.xlsx (57%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/pis_fes_location_info.xlsx (55%) rename PSCADA/{SG-A通讯管理模版/database/pa_location_area_def.xlsx => SG管理机模版/database/pis_location_area_def.xlsx} (58%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/pis_message_info.xlsx (56%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/point_lock_condition_info.xlsx (70%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/point_lock_config_info.xlsx (59%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/point_task_link.xlsx (56%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/psc3000_plugin.xlsx (58%) rename PSCADA/{ECMS电厂行业模版 => SG管理机模版}/database/region_info.xlsx (57%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/report_type_info.xlsx (57%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/rm_dept_def.xlsx (56%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/rm_norm_func_def.xlsx (67%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/rm_role_db_info.xlsx (73%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/rm_role_def.xlsx (63%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/rm_role_hmi_info.xlsx (59%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/rm_role_spef_reg.xlsx (61%) rename PSCADA/{ECMS电厂行业模版 => SG管理机模版}/database/rm_security_def.xlsx (57%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/rm_spcl_func_def.xlsx (60%) create mode 100644 PSCADA/SG管理机模版/database/rm_user_def.xlsx rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/rm_user_face_info.xlsx (56%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/rm_user_finger_print_info.xlsx (56%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/rm_user_signature_info.xlsx (75%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/rm_userg_db_info.xlsx (56%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/rm_userg_def.xlsx (64%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/rm_userg_hmi_info.xlsx (63%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/rm_userg_report_info.xlsx (55%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/rm_userg_rsp_info.xlsx (66%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/safety_day.xlsx (55%) create mode 100644 PSCADA/SG管理机模版/database/sample_define.xlsx rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/scl_dataset.xlsx (61%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/scl_fcda.xlsx (89%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/scl_lcb.xlsx (57%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/scl_rcb.xlsx (88%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/scl_runtime.xlsx (77%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/scl_sgcb.xlsx (58%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/sequence_action.xlsx (56%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/sequence_define.xlsx (56%) rename PSCADA/{ECMS电厂行业模版 => SG管理机模版}/database/sequence_function.xlsx (56%) rename PSCADA/{ECMS电厂行业模版 => SG管理机模版}/database/sequence_setting.xlsx (58%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/stat_inst_def.xlsx (57%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/stat_inst_para_grp.xlsx (55%) rename PSCADA/{ECMS电厂行业模版 => SG管理机模版}/database/stat_inst_para_point.xlsx (57%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/stat_inst_para_time.xlsx (58%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/stat_inst_ret_grp.xlsx (56%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/stat_inst_ret_para.xlsx (57%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/stat_link_def.xlsx (56%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/stat_link_para.xlsx (56%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/stat_link_ret.xlsx (56%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/stat_template_def.xlsx (70%) rename PSCADA/{ECMS电厂行业模版 => SG管理机模版}/database/stat_template_para.xlsx (65%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/stat_template_ret.xlsx (77%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/switch_cfg_info.xlsx (56%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/sys_model_app_info.xlsx (57%) create mode 100644 PSCADA/SG管理机模版/database/sys_model_dbconfig_domain.xlsx create mode 100644 PSCADA/SG管理机模版/database/sys_model_dbconfig_node.xlsx create mode 100644 PSCADA/SG管理机模版/database/sys_model_deploy_info.xlsx rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/sys_model_domain_info.xlsx (56%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/sys_model_location_info.xlsx (60%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/sys_model_msg_relay.xlsx (57%) create mode 100644 PSCADA/SG管理机模版/database/sys_model_node_info.xlsx create mode 100644 PSCADA/SG管理机模版/database/sys_model_process_info.xlsx rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/sys_model_sub_system_info.xlsx (58%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/sys_trigger_flag.xlsx (54%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/t_sys_table_file_tree.xlsx (59%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/t_w_inspection.xlsx (57%) create mode 100644 PSCADA/SG管理机模版/database/temp_plugin.xlsx create mode 100644 PSCADA/SG管理机模版/database/temp_plugin_dev_map.xlsx create mode 100644 PSCADA/SG管理机模版/database/temp_plugin_fes_dev_map.xlsx create mode 100644 PSCADA/SG管理机模版/database/temp_plugin_point_map_acc.xlsx create mode 100644 PSCADA/SG管理机模版/database/temp_plugin_point_map_ana.xlsx create mode 100644 PSCADA/SG管理机模版/database/temp_plugin_point_map_dig.xlsx rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/temp_plugin_point_map_mix.xlsx (56%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/trend_collection.xlsx (55%) rename PSCADA/{ECMS电厂行业模版 => SG管理机模版}/database/trigger_condition_define.xlsx (63%) rename PSCADA/{ECMS电厂行业模版 => SG管理机模版}/database/trigger_function_define.xlsx (60%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/trigger_period_define.xlsx (56%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/trigger_timer_define.xlsx (56%) rename PSCADA/{SG-A通讯管理模版 => SG管理机模版}/database/web_files.xlsx (56%) rename PSCADA/{ECMS电厂行业模版 => SG管理机模版}/database/web_page.xlsx (57%) rename PSCADA/{ECMS电厂行业模版 => SG管理机模版}/database/web_primitive.xlsx (61%) diff --git a/PSCADA/ECMS电厂行业模版/data/BusbarTemperatureWidget/setDeviceTitle.csv b/PSCADA/ECMS电厂电气模版/data/BusbarTemperatureWidget/setDeviceTitle.csv similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/BusbarTemperatureWidget/setDeviceTitle.csv rename to PSCADA/ECMS电厂电气模版/data/BusbarTemperatureWidget/setDeviceTitle.csv diff --git a/PSCADA/ECMS电厂行业模版/data/InverseTimeLimit/InverseTimeLimitVer6.xlsx b/PSCADA/ECMS电厂电气模版/data/InverseTimeLimit/InverseTimeLimitVer6.xlsx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/InverseTimeLimit/InverseTimeLimitVer6.xlsx rename to PSCADA/ECMS电厂电气模版/data/InverseTimeLimit/InverseTimeLimitVer6.xlsx diff --git a/PSCADA/ECMS电厂行业模版/data/InverseTimeLimit/table.files/filelist.xml b/PSCADA/ECMS电厂电气模版/data/InverseTimeLimit/table.files/filelist.xml similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/InverseTimeLimit/table.files/filelist.xml rename to PSCADA/ECMS电厂电气模版/data/InverseTimeLimit/table.files/filelist.xml diff --git a/PSCADA/ECMS电厂行业模版/data/InverseTimeLimit/table.files/image001.png b/PSCADA/ECMS电厂电气模版/data/InverseTimeLimit/table.files/image001.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/InverseTimeLimit/table.files/image001.png rename to PSCADA/ECMS电厂电气模版/data/InverseTimeLimit/table.files/image001.png diff --git a/PSCADA/ECMS电厂行业模版/data/InverseTimeLimit/table.files/image002.png b/PSCADA/ECMS电厂电气模版/data/InverseTimeLimit/table.files/image002.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/InverseTimeLimit/table.files/image002.png rename to PSCADA/ECMS电厂电气模版/data/InverseTimeLimit/table.files/image002.png diff --git a/PSCADA/ECMS电厂行业模版/data/InverseTimeLimit/table.files/sheet001.htm b/PSCADA/ECMS电厂电气模版/data/InverseTimeLimit/table.files/sheet001.htm similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/InverseTimeLimit/table.files/sheet001.htm rename to PSCADA/ECMS电厂电气模版/data/InverseTimeLimit/table.files/sheet001.htm diff --git a/PSCADA/ECMS电厂行业模版/data/InverseTimeLimit/table.files/stylesheet.css b/PSCADA/ECMS电厂电气模版/data/InverseTimeLimit/table.files/stylesheet.css similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/InverseTimeLimit/table.files/stylesheet.css rename to PSCADA/ECMS电厂电气模版/data/InverseTimeLimit/table.files/stylesheet.css diff --git a/PSCADA/ECMS电厂行业模版/data/InverseTimeLimit/table.files/tabstrip.htm b/PSCADA/ECMS电厂电气模版/data/InverseTimeLimit/table.files/tabstrip.htm similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/InverseTimeLimit/table.files/tabstrip.htm rename to PSCADA/ECMS电厂电气模版/data/InverseTimeLimit/table.files/tabstrip.htm diff --git a/PSCADA/ECMS电厂行业模版/data/InverseTimeLimit/table.htm b/PSCADA/ECMS电厂电气模版/data/InverseTimeLimit/table.htm similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/InverseTimeLimit/table.htm rename to PSCADA/ECMS电厂电气模版/data/InverseTimeLimit/table.htm diff --git a/PSCADA/ECMS电厂行业模版/data/NetMonite/ChanlPara.csv b/PSCADA/ECMS电厂电气模版/data/NetMonite/ChanlPara.csv similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/NetMonite/ChanlPara.csv rename to PSCADA/ECMS电厂电气模版/data/NetMonite/ChanlPara.csv diff --git a/PSCADA/ECMS电厂行业模版/data/NetMonite/MyDataBase.db b/PSCADA/ECMS电厂电气模版/data/NetMonite/MyDataBase.db similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/NetMonite/MyDataBase.db rename to PSCADA/ECMS电厂电气模版/data/NetMonite/MyDataBase.db diff --git a/PSCADA/ECMS电厂行业模版/data/PcpmsDocManage/技术规格书/HM SG-A系列技术规格书.doc b/PSCADA/ECMS电厂电气模版/data/PcpmsDocManage/技术规格书/HM SG-A系列技术规格书.doc similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/PcpmsDocManage/技术规格书/HM SG-A系列技术规格书.doc rename to PSCADA/ECMS电厂电气模版/data/PcpmsDocManage/技术规格书/HM SG-A系列技术规格书.doc diff --git a/PSCADA/ECMS电厂行业模版/data/PcpmsDocManage/用户手册/HM SPMS智慧电力监控系统_用户手册.doc b/PSCADA/ECMS电厂电气模版/data/PcpmsDocManage/用户手册/HM SPMS智慧电力监控系统_用户手册.doc similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/PcpmsDocManage/用户手册/HM SPMS智慧电力监控系统_用户手册.doc rename to PSCADA/ECMS电厂电气模版/data/PcpmsDocManage/用户手册/HM SPMS智慧电力监控系统_用户手册.doc diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/1U管理机.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/1U管理机.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/1U管理机.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/1U管理机.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/EMS.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/EMS.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/EMS.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/EMS.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/EMS能量管理系统.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/EMS能量管理系统.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/EMS能量管理系统.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/EMS能量管理系统.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/LOGO-100x32.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/LOGO-100x32.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/LOGO-100x32.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/LOGO-100x32.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/LOGO.gif b/PSCADA/ECMS电厂电气模版/data/back_pixmap/LOGO.gif similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/LOGO.gif rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/LOGO.gif diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/MainPic.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/MainPic.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/MainPic.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/MainPic.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/PCS-9611.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/PCS-9611.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/PCS-9611.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/PCS-9611.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/PM8000.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/PM8000.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/PM8000.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/PM8000.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/SOC上限.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/SOC上限.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/SOC上限.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/SOC上限.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/SOC下限.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/SOC下限.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/SOC下限.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/SOC下限.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/SOH.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/SOH.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/SOH.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/SOH.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/WEB服务器.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/WEB服务器.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/WEB服务器.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/WEB服务器.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/arrowDown.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/arrowDown.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/arrowDown.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/arrowDown.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/arrowUp.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/arrowUp.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/arrowUp.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/arrowUp.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/backgroup.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/backgroup.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/backgroup.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/backgroup.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/bms.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/bms.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/bms.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/bms.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/board 1.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/board 1.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/board 1.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/board 1.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/board.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/board.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/board.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/board.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/bus-1.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/bus-1.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/bus-1.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/bus-1.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/check.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/check.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/check.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/check.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/checked.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/checked.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/checked.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/checked.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/datebackground1.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/datebackground1.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/datebackground1.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/datebackground1.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/datebackground2.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/datebackground2.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/datebackground2.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/datebackground2.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/details_img_BMS.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/details_img_BMS.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/details_img_BMS.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/details_img_BMS.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/details_img_PCS_n.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/details_img_PCS_n.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/details_img_PCS_n.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/details_img_PCS_n.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/disableCheck.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/disableCheck.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/disableCheck.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/disableCheck.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/down.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/down.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/down.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/down.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/epm.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/epm.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/epm.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/epm.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/footer_background.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/footer_background.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/footer_background.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/footer_background.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/frame.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/frame.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/frame.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/frame.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/groupbox.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/groupbox.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/groupbox.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/groupbox.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/header_background.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/header_background.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/header_background.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/header_background.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/hmlogo-white.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/hmlogo-white.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/hmlogo-white.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/hmlogo-white.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/hmlogo.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/hmlogo.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/hmlogo.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/hmlogo.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/home_back.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/home_back.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/home_back.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/home_back.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/home_back_2.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/home_back_2.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/home_back_2.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/home_back_2.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/home_back_3.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/home_back_3.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/home_back_3.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/home_back_3.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/home_btn.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/home_btn.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/home_btn.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/home_btn.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/home_btn_site_dot_b.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/home_btn_site_dot_b.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/home_btn_site_dot_b.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/home_btn_site_dot_b.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/home_btn_site_dot_r.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/home_btn_site_dot_r.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/home_btn_site_dot_r.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/home_btn_site_dot_r.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/home_btn_site_left_b.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/home_btn_site_left_b.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/home_btn_site_left_b.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/home_btn_site_left_b.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/home_btn_site_left_r.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/home_btn_site_left_r.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/home_btn_site_left_r.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/home_btn_site_left_r.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/home_btn_site_line_b.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/home_btn_site_line_b.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/home_btn_site_line_b.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/home_btn_site_line_b.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/home_btn_site_line_r.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/home_btn_site_line_r.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/home_btn_site_line_r.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/home_btn_site_line_r.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/home_btn_site_right_b.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/home_btn_site_right_b.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/home_btn_site_right_b.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/home_btn_site_right_b.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/home_btn_site_right_r.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/home_btn_site_right_r.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/home_btn_site_right_r.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/home_btn_site_right_r.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_BMS.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_BMS.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_BMS.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_BMS.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_PCS.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_PCS.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_PCS.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_PCS.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_SOC.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_SOC.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_SOC.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_SOC.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_Select.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_Select.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_Select.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_Select.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_alarm.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_alarm.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_alarm.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_alarm.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_bms监控.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_bms监控.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_bms监控.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_bms监控.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_bms监控_sel.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_bms监控_sel.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_bms监控_sel.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_bms监控_sel.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_dev_ng.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_dev_ng.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_dev_ng.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_dev_ng.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_dev_ok.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_dev_ok.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_dev_ok.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_dev_ok.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_down.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_down.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_down.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_down.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_down_disable.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_down_disable.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_down_disable.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_down_disable.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_more.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_more.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_more.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_more.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_out.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_out.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_out.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_out.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_pcs监控.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_pcs监控.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_pcs监控.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_pcs监控.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_pcs监控_sel.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_pcs监控_sel.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_pcs监控_sel.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_pcs监控_sel.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_register.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_register.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_register.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_register.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_up.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_up.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_up.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_up.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_up_disable.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_up_disable.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_up_disable.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_up_disable.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_user.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_user.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_user.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_user.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_一览表.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_一览表.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_一览表.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_一览表.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_两票管理.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_两票管理.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_两票管理.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_两票管理.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_主接线图.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_主接线图.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_主接线图.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_主接线图.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_主接线图_sel.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_主接线图_sel.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_主接线图_sel.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_主接线图_sel.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_事故追忆.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_事故追忆.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_事故追忆.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_事故追忆.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_事故追忆2.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_事故追忆2.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_事故追忆2.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_事故追忆2.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_交接班.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_交接班.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_交接班.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_交接班.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_仓库.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_仓库.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_仓库.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_仓库.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_任务.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_任务.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_任务.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_任务.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_值班管理.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_值班管理.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_值班管理.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_值班管理.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_储能单元.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_储能单元.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_储能单元.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_储能单元.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_储能单元_sel.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_储能单元_sel.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_储能单元_sel.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_储能单元_sel.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_充电量.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_充电量.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_充电量.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_充电量.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_关于.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_关于.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_关于.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_关于.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_冷机.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_冷机.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_冷机.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_冷机.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_功率.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_功率.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_功率.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_功率.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_功率总.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_功率总.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_功率总.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_功率总.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_区域.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_区域.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_区域.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_区域.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_协调控制器.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_协调控制器.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_协调控制器.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_协调控制器.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_历史事件.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_历史事件.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_历史事件.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_历史事件.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_历史事件_sel.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_历史事件_sel.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_历史事件_sel.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_历史事件_sel.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_变电站.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_变电站.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_变电站.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_变电站.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_变电站2.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_变电站2.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_变电站2.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_变电站2.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_告警分析.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_告警分析.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_告警分析.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_告警分析.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_告警分析_sel.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_告警分析_sel.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_告警分析_sel.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_告警分析_sel.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_告警管理.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_告警管理.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_告警管理.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_告警管理.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_告警统计.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_告警统计.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_告警统计.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_告警统计.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_地图.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_地图.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_地图.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_地图.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_定值管理.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_定值管理.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_定值管理.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_定值管理.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_实时告警.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_实时告警.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_实时告警.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_实时告警.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_实时告警_sel.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_实时告警_sel.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_实时告警_sel.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_实时告警_sel.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_实时数据.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_实时数据.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_实时数据.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_实时数据.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_审核.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_审核.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_审核.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_审核.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_屏蔽.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_屏蔽.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_屏蔽.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_屏蔽.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_工作票.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_工作票.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_工作票.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_工作票.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_布局.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_布局.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_布局.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_布局.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_总有功.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_总有功.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_总有功.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_总有功.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_总览.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_总览.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_总览.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_总览.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_报表.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_报表.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_报表.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_报表.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_报表浏览.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_报表浏览.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_报表浏览.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_报表浏览.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_报表管理.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_报表管理.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_报表管理.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_报表管理.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_报表管理_sel.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_报表管理_sel.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_报表管理_sel.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_报表管理_sel.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_报表编辑.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_报表编辑.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_报表编辑.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_报表编辑.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_拓扑图.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_拓扑图.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_拓扑图.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_拓扑图.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_挂牌.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_挂牌.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_挂牌.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_挂牌.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_排班.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_排班.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_排班.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_排班.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_接线图.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_接线图.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_接线图.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_接线图.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_控制策略.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_控制策略.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_控制策略.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_控制策略.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_控制策略_sel.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_控制策略_sel.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_控制策略_sel.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_控制策略_sel.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_操作票.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_操作票.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_操作票.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_操作票.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_放电量.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_放电量.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_放电量.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_放电量.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_故障录波.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_故障录波.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_故障录波.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_故障录波.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_文档配置.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_文档配置.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_文档配置.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_文档配置.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_文档配置_sel.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_文档配置_sel.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_文档配置_sel.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_文档配置_sel.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_日志-1.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_日志-1.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_日志-1.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_日志-1.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_日志.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_日志.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_日志.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_日志.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_曲线.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_曲线.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_曲线.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_曲线.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_机柜.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_机柜.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_机柜.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_机柜.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_框.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_框.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_框.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_框.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_模拟操作.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_模拟操作.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_模拟操作.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_模拟操作.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_消防.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_消防.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_消防.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_消防.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_温度.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_温度.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_温度.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_温度.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_点修改.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_点修改.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_点修改.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_点修改.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_用户管理.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_用户管理.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_用户管理.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_用户管理.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_用户管理_sel.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_用户管理_sel.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_用户管理_sel.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_用户管理_sel.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_用户组管理.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_用户组管理.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_用户组管理.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_用户组管理.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_电压.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_电压.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_电压.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_电压.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_电池堆数据.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_电池堆数据.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_电池堆数据.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_电池堆数据.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_电池簇数据.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_电池簇数据.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_电池簇数据.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_电池簇数据.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_电流-1.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_电流-1.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_电流-1.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_电流-1.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_电流.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_电流.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_电流.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_电流.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_监控.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_监控.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_监控.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_监控.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_监控线路.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_监控线路.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_监控线路.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_监控线路.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_监控首页.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_监控首页.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_监控首页.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_监控首页.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_监控首页_sel.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_监控首页_sel.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_监控首页_sel.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_监控首页_sel.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_站点.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_站点.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_站点.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_站点.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_策略.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_策略.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_策略.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_策略.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_箱变测控.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_箱变测控.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_箱变测控.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_箱变测控.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_系统设置.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_系统设置.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_系统设置.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_系统设置.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_系统设置_sel.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_系统设置_sel.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_系统设置_sel.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_系统设置_sel.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_网络.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_网络.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_网络.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_网络.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_网络拓扑.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_网络拓扑.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_网络拓扑.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_网络拓扑.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_联动.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_联动.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_联动.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_联动.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_能耗分析.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_能耗分析.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_能耗分析.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_能耗分析.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_能耗总览.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_能耗总览.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_能耗总览.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_能耗总览.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_能耗报表.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_能耗报表.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_能耗报表.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_能耗报表.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_表清单.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_表清单.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_表清单.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_表清单.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_计划.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_计划.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_计划.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_计划.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_设备信息.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_设备信息.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_设备信息.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_设备信息.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_详细数据.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_详细数据.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_详细数据.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_详细数据.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_详细数据_sel.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_详细数据_sel.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_详细数据_sel.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_详细数据_sel.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_趋势分析.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_趋势分析.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_趋势分析.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_趋势分析.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_趋势分析_sel.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_趋势分析_sel.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_趋势分析_sel.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_趋势分析_sel.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_趋势浏览.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_趋势浏览.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_趋势浏览.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_趋势浏览.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_轮询.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_轮询.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_轮询.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_轮询.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_轮询配置.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_轮询配置.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_轮询配置.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_轮询配置.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_辅助设备.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_辅助设备.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_辅助设备.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_辅助设备.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_辅助设备_sel.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_辅助设备_sel.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_辅助设备_sel.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_辅助设备_sel.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_运维首页.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_运维首页.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_运维首页.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_运维首页.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_运行简报.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_运行简报.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_运行简报.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_运行简报.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_通道设置.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_通道设置.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_通道设置.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_通道设置.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_通道设置_sel.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_通道设置_sel.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_通道设置_sel.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_通道设置_sel.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_逻辑编程.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_逻辑编程.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_逻辑编程.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_逻辑编程.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_配电系统.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_配电系统.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_配电系统.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_配电系统.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_需量.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_需量.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_需量.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_需量.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_项目.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_项目.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_项目.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_项目.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_顺控.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_顺控.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_顺控.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_顺控.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_顺控执行.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_顺控执行.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_顺控执行.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_顺控执行.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_首页.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_首页.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/icon_首页.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/icon_首页.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/index.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/index.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/index.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/index.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/index_background.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/index_background.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/index_background.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/index_background.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/item_back.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/item_back.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/item_back.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/item_back.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/item_icon.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/item_icon.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/item_icon.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/item_icon.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/kehua logo.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/kehua logo.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/kehua logo.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/kehua logo.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/load.gif b/PSCADA/ECMS电厂电气模版/data/back_pixmap/load.gif similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/load.gif rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/load.gif diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/logo.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/logo.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/logo.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/logo.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/logo_bg.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/logo_bg.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/logo_bg.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/logo_bg.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/logo_line.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/logo_line.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/logo_line.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/logo_line.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/mute.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/mute.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/mute.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/mute.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/nav_background.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/nav_background.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/nav_background.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/nav_background.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/overlook.gif b/PSCADA/ECMS电厂电气模版/data/back_pixmap/overlook.gif similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/overlook.gif rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/overlook.gif diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/pause.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/pause.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/pause.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/pause.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/pcs.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/pcs.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/pcs.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/pcs.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/pcs_3d.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/pcs_3d.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/pcs_3d.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/pcs_3d.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/play.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/play.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/play.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/play.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/pointer 1.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/pointer 1.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/pointer 1.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/pointer 1.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/pointer.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/pointer.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/pointer.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/pointer.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/rec_1.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/rec_1.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/rec_1.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/rec_1.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/rec_1_arrow.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/rec_1_arrow.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/rec_1_arrow.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/rec_1_arrow.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/relyez-title.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/relyez-title.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/relyez-title.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/relyez-title.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/relyez-title_zh.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/relyez-title_zh.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/relyez-title_zh.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/relyez-title_zh.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/selected.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/selected.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/selected.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/selected.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/sound.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/sound.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/sound.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/sound.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/title1_sel.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/title1_sel.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/title1_sel.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/title1_sel.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/title_arrow.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/title_arrow.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/title_arrow.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/title_arrow.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/title_nor.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/title_nor.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/title_nor.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/title_nor.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/top.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/top.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/top.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/top.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/top_0.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/top_0.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/top_0.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/top_0.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/top_1.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/top_1.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/top_1.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/top_1.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/uncheck.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/uncheck.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/uncheck.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/uncheck.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/unchecked.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/unchecked.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/unchecked.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/unchecked.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/unselect.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/unselect.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/unselect.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/unselect.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/user.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/user.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/user.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/user.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/zoomfit.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/zoomfit.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/zoomfit.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/zoomfit.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/zoomin.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/zoomin.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/zoomin.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/zoomin.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/zoomout.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/zoomout.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/zoomout.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/zoomout.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/一体机.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/一体机.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/一体机.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/一体机.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/一体机背景.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/一体机背景.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/一体机背景.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/一体机背景.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/上一帧.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/上一帧.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/上一帧.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/上一帧.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/上一页.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/上一页.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/上一页.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/上一页.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/下一帧.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/下一帧.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/下一帧.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/下一帧.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/下一页.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/下一页.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/下一页.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/下一页.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/中压进线柜.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/中压进线柜.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/中压进线柜.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/中压进线柜.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/主机.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/主机.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/主机.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/主机.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/事件.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/事件.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/事件.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/事件.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/事故列表.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/事故列表.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/事故列表.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/事故列表.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/云动力系统.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/云动力系统.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/云动力系统.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/云动力系统.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/交流器.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/交流器.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/交流器.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/交流器.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/产品集合.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/产品集合.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/产品集合.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/产品集合.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/今日充电量.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/今日充电量.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/今日充电量.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/今日充电量.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/今日放电量.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/今日放电量.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/今日放电量.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/今日放电量.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/仪表.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/仪表.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/仪表.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/仪表.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/停止.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/停止.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/停止.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/停止.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/储能回路单元.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/储能回路单元.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/储能回路单元.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/储能回路单元.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/充放电状态.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/充放电状态.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/充放电状态.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/充放电状态.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/全屏截图.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/全屏截图.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/全屏截图.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/全屏截图.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/北_斜.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/北_斜.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/北_斜.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/北_斜.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/区变.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/区变.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/区变.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/区变.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/区域截图.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/区域截图.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/区域截图.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/区域截图.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/协调控制器.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/协调控制器.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/协调控制器.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/协调控制器.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/单体_soc.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/单体_soc.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/单体_soc.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/单体_soc.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/单体_电池.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/单体_电池.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/单体_电池.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/单体_电池.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/单体温度_极差值.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/单体温度_极差值.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/单体温度_极差值.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/单体温度_极差值.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/单体电压_极差值.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/单体电压_极差值.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/单体电压_极差值.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/单体电压_极差值.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/南_斜.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/南_斜.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/南_斜.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/南_斜.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/南_正.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/南_正.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/南_正.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/南_正.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/变压器柜.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/变压器柜.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/变压器柜.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/变压器柜.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/可充电量.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/可充电量.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/可充电量.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/可充电量.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/可放电量.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/可放电量.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/可放电量.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/可放电量.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/向右线-.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/向右线-.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/向右线-.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/向右线-.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/向右线.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/向右线.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/向右线.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/向右线.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/向左线.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/向左线.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/向左线.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/向左线.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/告警.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/告警.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/告警.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/告警.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/告警中.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/告警中.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/告警中.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/告警中.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/告警追忆.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/告警追忆.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/告警追忆.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/告警追忆.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/四层柴发机房1-斜.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/四层柴发机房1-斜.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/四层柴发机房1-斜.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/四层柴发机房1-斜.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/存储服务器.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/存储服务器.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/存储服务器.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/存储服务器.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/实时监控_充电量.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/实时监控_充电量.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/实时监控_充电量.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/实时监控_充电量.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/实时监控_放电量.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/实时监控_放电量.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/实时监控_放电量.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/实时监控_放电量.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/导航栏.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/导航栏.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/导航栏.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/导航栏.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/就地.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/就地.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/就地.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/就地.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/工作站.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/工作站.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/工作站.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/工作站.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/快进.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/快进.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/快进.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/快进.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/慢放.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/慢放.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/慢放.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/慢放.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/报警.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/报警.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/报警.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/报警.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/指针.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/指针.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/指针.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/指针.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/接线图-选中.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/接线图-选中.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/接线图-选中.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/接线图-选中.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/接线图.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/接线图.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/接线图.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/接线图.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/推图.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/推图.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/推图.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/推图.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/推图old.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/推图old.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/推图old.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/推图old.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/推图中.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/推图中.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/推图中.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/推图中.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/推图中old.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/推图中old.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/推图中old.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/推图中old.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/摄像头.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/摄像头.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/摄像头.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/摄像头.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/整流柜.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/整流柜.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/整流柜.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/整流柜.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/更多-选中.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/更多-选中.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/更多-选中.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/更多-选中.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/更多.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/更多.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/更多.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/更多.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/柴发.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/柴发.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/柴发.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/柴发.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/格力电子鸟瞰图.jpg b/PSCADA/ECMS电厂电气模版/data/back_pixmap/格力电子鸟瞰图.jpg similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/格力电子鸟瞰图.jpg rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/格力电子鸟瞰图.jpg diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/正向隔离装置.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/正向隔离装置.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/正向隔离装置.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/正向隔离装置.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/消防_主电状态.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/消防_主电状态.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/消防_主电状态.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/消防_主电状态.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/消防_分区数量.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/消防_分区数量.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/消防_分区数量.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/消防_分区数量.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/消防_备电状态.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/消防_备电状态.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/消防_备电状态.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/消防_备电状态.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/消防_瓶头阀.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/消防_瓶头阀.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/消防_瓶头阀.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/消防_瓶头阀.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/消防_警铃.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/消防_警铃.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/消防_警铃.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/消防_警铃.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/消防_通讯状态.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/消防_通讯状态.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/消防_通讯状态.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/消防_通讯状态.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/液冷柜内部.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/液冷柜内部.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/液冷柜内部.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/液冷柜内部.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/温度制冷.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/温度制冷.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/温度制冷.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/温度制冷.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/温度制冷_目标.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/温度制冷_目标.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/温度制冷_目标.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/温度制冷_目标.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/温度制冷_设定.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/温度制冷_设定.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/温度制冷_设定.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/温度制冷_设定.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/温度制热.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/温度制热.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/温度制热.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/温度制热.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/温度制热_目标.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/温度制热_目标.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/温度制热_目标.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/温度制热_目标.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/温度制热_设定.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/温度制热_设定.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/温度制热_设定.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/温度制热_设定.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/温度告警.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/温度告警.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/温度告警.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/温度告警.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/温度告警_目标.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/温度告警_目标.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/温度告警_目标.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/温度告警_目标.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/温度告警_设定.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/温度告警_设定.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/温度告警_设定.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/温度告警_设定.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/点标签.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/点标签.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/点标签.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/点标签.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/电度表.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/电度表.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/电度表.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/电度表.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/电池.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/电池.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/电池.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/电池.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/电池堆_soc.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/电池堆_soc.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/电池堆_soc.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/电池堆_soc.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/电池堆_健康状态.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/电池堆_健康状态.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/电池堆_健康状态.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/电池堆_健康状态.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/电池堆_电压.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/电池堆_电压.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/电池堆_电压.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/电池堆_电压.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/电池堆_电流.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/电池堆_电流.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/电池堆_电流.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/电池堆_电流.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/电网.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/电网.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/电网.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/电网.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/登录-密码-1.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/登录-密码-1.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/登录-密码-1.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/登录-密码-1.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/登录-密码.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/登录-密码.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/登录-密码.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/登录-密码.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/登录-用户-1.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/登录-用户-1.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/登录-用户-1.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/登录-用户-1.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/登录-用户.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/登录-用户.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/登录-用户.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/登录-用户.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/登录弹窗背景.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/登录弹窗背景.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/登录弹窗背景.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/登录弹窗背景.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/登录背景.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/登录背景.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/登录背景.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/登录背景.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/登录背景2.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/登录背景2.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/登录背景2.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/登录背景2.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/白灯.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/白灯.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/白灯.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/白灯.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/监控平台-选中.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/监控平台-选中.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/监控平台-选中.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/监控平台-选中.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/监控平台.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/监控平台.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/监控平台.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/监控平台.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/监控服务器.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/监控服务器.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/监控服务器.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/监控服务器.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/站内3D.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/站内3D.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/站内3D.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/站内3D.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/箭头.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/箭头.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/箭头.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/箭头.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/箱变保护测控.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/箱变保护测控.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/箱变保护测控.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/箱变保护测控.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/簇SOC_极差值.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/簇SOC_极差值.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/簇SOC_极差值.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/簇SOC_极差值.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/簇电压_极差值.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/簇电压_极差值.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/簇电压_极差值.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/簇电压_极差值.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/累计充电量.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/累计充电量.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/累计充电量.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/累计充电量.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/累计放电量.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/累计放电量.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/累计放电量.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/累计放电量.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/红灯.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/红灯.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/红灯.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/红灯.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/绿灯.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/绿灯.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/绿灯.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/绿灯.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/网络交换机.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/网络交换机.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/网络交换机.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/网络交换机.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/背景.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/背景.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/背景.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/背景.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/背景_light.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/背景_light.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/背景_light.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/背景_light.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/背景_unuse.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/背景_unuse.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/背景_unuse.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/背景_unuse.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/负载.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/负载.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/负载.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/负载.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/轮询.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/轮询.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/轮询.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/轮询.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/辅助设备-pcs.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/辅助设备-pcs.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/辅助设备-pcs.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/辅助设备-pcs.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/辅助设备-消防.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/辅助设备-消防.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/辅助设备-消防.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/辅助设备-消防.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/辅助设备-温湿器.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/辅助设备-温湿器.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/辅助设备-温湿器.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/辅助设备-温湿器.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/辅助设备-电表.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/辅助设备-电表.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/辅助设备-电表.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/辅助设备-电表.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/远信云平台.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/远信云平台.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/远信云平台.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/远信云平台.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/远方.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/远方.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/远方.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/远方.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/退出.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/退出.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/退出.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/退出.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/退出弹窗背景.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/退出弹窗背景.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/退出弹窗背景.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/退出弹窗背景.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/鄂州机场平面图.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/鄂州机场平面图.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/鄂州机场平面图.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/鄂州机场平面图.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/铜排监测-选中.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/铜排监测-选中.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/铜排监测-选中.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/铜排监测-选中.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/铜排监测.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/铜排监测.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/铜排监测.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/铜排监测.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/防火墙.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/防火墙.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/防火墙.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/防火墙.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/额定功率.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/额定功率.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/额定功率.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/额定功率.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/额定容量.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/额定容量.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/额定容量.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/额定容量.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/馈线柜.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/馈线柜.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/馈线柜.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/馈线柜.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/首页-选中.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/首页-选中.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/首页-选中.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/首页-选中.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/首页.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/首页.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/首页.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/首页.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/首页底图.jpg b/PSCADA/ECMS电厂电气模版/data/back_pixmap/首页底图.jpg similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/首页底图.jpg rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/首页底图.jpg diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/高压柜.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/高压柜.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/高压柜.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/高压柜.png diff --git a/PSCADA/ECMS电厂行业模版/data/back_pixmap/黄灯.png b/PSCADA/ECMS电厂电气模版/data/back_pixmap/黄灯.png similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/back_pixmap/黄灯.png rename to PSCADA/ECMS电厂电气模版/data/back_pixmap/黄灯.png diff --git a/PSCADA/ECMS电厂行业模版/data/config/db_his_data_srv_cfg.xml b/PSCADA/ECMS电厂电气模版/data/config/db_his_data_srv_cfg.xml similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/config/db_his_data_srv_cfg.xml rename to PSCADA/ECMS电厂电气模版/data/config/db_his_data_srv_cfg.xml diff --git a/PSCADA/ECMS电厂电气模版/data/config/db_manager_cfg.xml b/PSCADA/ECMS电厂电气模版/data/config/db_manager_cfg.xml new file mode 100644 index 0000000..1bc054a --- /dev/null +++ b/PSCADA/ECMS电厂电气模版/data/config/db_manager_cfg.xml @@ -0,0 +1,4 @@ + + + + diff --git a/PSCADA/ECMS电厂行业模版/data/config/pathallow.xml b/PSCADA/ECMS电厂电气模版/data/config/pathallow.xml similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/config/pathallow.xml rename to PSCADA/ECMS电厂电气模版/data/config/pathallow.xml diff --git a/PSCADA/ECMS电厂行业模版/data/config/变压器.time b/PSCADA/ECMS电厂电气模版/data/config/变压器.time similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/config/变压器.time rename to PSCADA/ECMS电厂电气模版/data/config/变压器.time diff --git a/PSCADA/ECMS电厂行业模版/data/config61850/61850ImportCfg-高厂变.xlsx b/PSCADA/ECMS电厂电气模版/data/config61850/61850ImportCfg-高厂变.xlsx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/config61850/61850ImportCfg-高厂变.xlsx rename to PSCADA/ECMS电厂电气模版/data/config61850/61850ImportCfg-高厂变.xlsx diff --git a/PSCADA/ECMS电厂行业模版/data/config61850/61850ImportCfg.xlsx b/PSCADA/ECMS电厂电气模版/data/config61850/61850ImportCfg.xlsx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/config61850/61850ImportCfg.xlsx rename to PSCADA/ECMS电厂电气模版/data/config61850/61850ImportCfg.xlsx diff --git a/PSCADA/ECMS电厂行业模版/data/config61850/继保间/61850ImportCfg-ECS.xlsx b/PSCADA/ECMS电厂电气模版/data/config61850/继保间/61850ImportCfg-ECS.xlsx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/config61850/继保间/61850ImportCfg-ECS.xlsx rename to PSCADA/ECMS电厂电气模版/data/config61850/继保间/61850ImportCfg-ECS.xlsx diff --git a/PSCADA/ECMS电厂行业模版/data/config61850/继保间/FBAP343.cid b/PSCADA/ECMS电厂电气模版/data/config61850/继保间/FBAP343.cid similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/config61850/继保间/FBAP343.cid rename to PSCADA/ECMS电厂电气模版/data/config61850/继保间/FBAP343.cid diff --git a/PSCADA/ECMS电厂行业模版/data/config61850/继保间/FBAP5.cid b/PSCADA/ECMS电厂电气模版/data/config61850/继保间/FBAP5.cid similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/config61850/继保间/FBAP5.cid rename to PSCADA/ECMS电厂电气模版/data/config61850/继保间/FBAP5.cid diff --git a/PSCADA/ECMS电厂行业模版/data/config61850/继保间/FBAP643.cid b/PSCADA/ECMS电厂电气模版/data/config61850/继保间/FBAP643.cid similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/config61850/继保间/FBAP643.cid rename to PSCADA/ECMS电厂电气模版/data/config61850/继保间/FBAP643.cid diff --git a/PSCADA/ECMS电厂行业模版/data/config61850/继保间/FBBP343.cid b/PSCADA/ECMS电厂电气模版/data/config61850/继保间/FBBP343.cid similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/config61850/继保间/FBBP343.cid rename to PSCADA/ECMS电厂电气模版/data/config61850/继保间/FBBP343.cid diff --git a/PSCADA/ECMS电厂行业模版/data/config61850/继保间/FBBP5.cid b/PSCADA/ECMS电厂电气模版/data/config61850/继保间/FBBP5.cid similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/config61850/继保间/FBBP5.cid rename to PSCADA/ECMS电厂电气模版/data/config61850/继保间/FBBP5.cid diff --git a/PSCADA/ECMS电厂行业模版/data/config61850/继保间/FBBP643.cid b/PSCADA/ECMS电厂电气模版/data/config61850/继保间/FBBP643.cid similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/config61850/继保间/FBBP643.cid rename to PSCADA/ECMS电厂电气模版/data/config61850/继保间/FBBP643.cid diff --git a/PSCADA/ECMS电厂行业模版/data/config61850/继保间/FBCCK.cid b/PSCADA/ECMS电厂电气模版/data/config61850/继保间/FBCCK.cid similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/config61850/继保间/FBCCK.cid rename to PSCADA/ECMS电厂电气模版/data/config61850/继保间/FBCCK.cid diff --git a/PSCADA/ECMS电厂行业模版/data/config61850/继保间/FBCFDL.cid b/PSCADA/ECMS电厂电气模版/data/config61850/继保间/FBCFDL.cid similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/config61850/继保间/FBCFDL.cid rename to PSCADA/ECMS电厂电气模版/data/config61850/继保间/FBCFDL.cid diff --git a/PSCADA/ECMS电厂行业模版/data/config61850/继保间/XLCK.cid b/PSCADA/ECMS电厂电气模版/data/config61850/继保间/XLCK.cid similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/config61850/继保间/XLCK.cid rename to PSCADA/ECMS电厂电气模版/data/config61850/继保间/XLCK.cid diff --git a/PSCADA/ECMS电厂行业模版/data/config61850/继保间/XLP543.cid b/PSCADA/ECMS电厂电气模版/data/config61850/继保间/XLP543.cid similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/config61850/继保间/XLP543.cid rename to PSCADA/ECMS电厂电气模版/data/config61850/继保间/XLP543.cid diff --git a/PSCADA/ECMS电厂行业模版/data/config61850/高厂变/61850ImportCfg-高厂变.xlsx b/PSCADA/ECMS电厂电气模版/data/config61850/高厂变/61850ImportCfg-高厂变.xlsx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/config61850/高厂变/61850ImportCfg-高厂变.xlsx rename to PSCADA/ECMS电厂电气模版/data/config61850/高厂变/61850ImportCfg-高厂变.xlsx diff --git a/PSCADA/ECMS电厂行业模版/data/config61850/AH101.cid b/PSCADA/ECMS电厂电气模版/data/config61850/高厂变/AH101.cid similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/config61850/AH101.cid rename to PSCADA/ECMS电厂电气模版/data/config61850/高厂变/AH101.cid diff --git a/PSCADA/ECMS电厂行业模版/data/config61850/高厂变/AH102.cid b/PSCADA/ECMS电厂电气模版/data/config61850/高厂变/AH102.cid similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/config61850/高厂变/AH102.cid rename to PSCADA/ECMS电厂电气模版/data/config61850/高厂变/AH102.cid diff --git a/PSCADA/ECMS电厂行业模版/data/config61850/高厂变/AH103.cid b/PSCADA/ECMS电厂电气模版/data/config61850/高厂变/AH103.cid similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/config61850/高厂变/AH103.cid rename to PSCADA/ECMS电厂电气模版/data/config61850/高厂变/AH103.cid diff --git a/PSCADA/ECMS电厂行业模版/data/config61850/高厂变/AH104.cid b/PSCADA/ECMS电厂电气模版/data/config61850/高厂变/AH104.cid similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/config61850/高厂变/AH104.cid rename to PSCADA/ECMS电厂电气模版/data/config61850/高厂变/AH104.cid diff --git a/PSCADA/ECMS电厂行业模版/data/config61850/高厂变/AH105.cid b/PSCADA/ECMS电厂电气模版/data/config61850/高厂变/AH105.cid similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/config61850/高厂变/AH105.cid rename to PSCADA/ECMS电厂电气模版/data/config61850/高厂变/AH105.cid diff --git a/PSCADA/ECMS电厂行业模版/data/config61850/高厂变/AH106.cid b/PSCADA/ECMS电厂电气模版/data/config61850/高厂变/AH106.cid similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/config61850/高厂变/AH106.cid rename to PSCADA/ECMS电厂电气模版/data/config61850/高厂变/AH106.cid diff --git a/PSCADA/ECMS电厂行业模版/data/config61850/高厂变/AH107.cid b/PSCADA/ECMS电厂电气模版/data/config61850/高厂变/AH107.cid similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/config61850/高厂变/AH107.cid rename to PSCADA/ECMS电厂电气模版/data/config61850/高厂变/AH107.cid diff --git a/PSCADA/ECMS电厂行业模版/data/config61850/高厂变/AH109.cid b/PSCADA/ECMS电厂电气模版/data/config61850/高厂变/AH109.cid similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/config61850/高厂变/AH109.cid rename to PSCADA/ECMS电厂电气模版/data/config61850/高厂变/AH109.cid diff --git a/PSCADA/ECMS电厂行业模版/data/config61850/高厂变/AH109.icd b/PSCADA/ECMS电厂电气模版/data/config61850/高厂变/AH109.icd similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/config61850/高厂变/AH109.icd rename to PSCADA/ECMS电厂电气模版/data/config61850/高厂变/AH109.icd diff --git a/PSCADA/ECMS电厂行业模版/data/config61850/高厂变/AH110.cid b/PSCADA/ECMS电厂电气模版/data/config61850/高厂变/AH110.cid similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/config61850/高厂变/AH110.cid rename to PSCADA/ECMS电厂电气模版/data/config61850/高厂变/AH110.cid diff --git a/PSCADA/ECMS电厂行业模版/data/config61850/高厂变/AH111.cid b/PSCADA/ECMS电厂电气模版/data/config61850/高厂变/AH111.cid similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/config61850/高厂变/AH111.cid rename to PSCADA/ECMS电厂电气模版/data/config61850/高厂变/AH111.cid diff --git a/PSCADA/ECMS电厂行业模版/data/config61850/高厂变/AH112.cid b/PSCADA/ECMS电厂电气模版/data/config61850/高厂变/AH112.cid similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/config61850/高厂变/AH112.cid rename to PSCADA/ECMS电厂电气模版/data/config61850/高厂变/AH112.cid diff --git a/PSCADA/ECMS电厂行业模版/data/config61850/高厂变/AH113.cid b/PSCADA/ECMS电厂电气模版/data/config61850/高厂变/AH113.cid similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/config61850/高厂变/AH113.cid rename to PSCADA/ECMS电厂电气模版/data/config61850/高厂变/AH113.cid diff --git a/PSCADA/ECMS电厂行业模版/data/config61850/高厂变/AH114.cid b/PSCADA/ECMS电厂电气模版/data/config61850/高厂变/AH114.cid similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/config61850/高厂变/AH114.cid rename to PSCADA/ECMS电厂电气模版/data/config61850/高厂变/AH114.cid diff --git a/PSCADA/ECMS电厂行业模版/data/config61850/高厂变/AH114.icd b/PSCADA/ECMS电厂电气模版/data/config61850/高厂变/AH114.icd similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/config61850/高厂变/AH114.icd rename to PSCADA/ECMS电厂电气模版/data/config61850/高厂变/AH114.icd diff --git a/PSCADA/ECMS电厂行业模版/data/config61850/高厂变/AH115.cid b/PSCADA/ECMS电厂电气模版/data/config61850/高厂变/AH115.cid similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/config61850/高厂变/AH115.cid rename to PSCADA/ECMS电厂电气模版/data/config61850/高厂变/AH115.cid diff --git a/PSCADA/ECMS电厂行业模版/data/config61850/高厂变/AH115.icd b/PSCADA/ECMS电厂电气模版/data/config61850/高厂变/AH115.icd similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/config61850/高厂变/AH115.icd rename to PSCADA/ECMS电厂电气模版/data/config61850/高厂变/AH115.icd diff --git a/PSCADA/ECMS电厂行业模版/data/config61850/高厂变/AH201.cid b/PSCADA/ECMS电厂电气模版/data/config61850/高厂变/AH201.cid similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/config61850/高厂变/AH201.cid rename to PSCADA/ECMS电厂电气模版/data/config61850/高厂变/AH201.cid diff --git a/PSCADA/ECMS电厂行业模版/data/config61850/高厂变/AH202.cid b/PSCADA/ECMS电厂电气模版/data/config61850/高厂变/AH202.cid similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/config61850/高厂变/AH202.cid rename to PSCADA/ECMS电厂电气模版/data/config61850/高厂变/AH202.cid diff --git a/PSCADA/ECMS电厂行业模版/data/config61850/高厂变/AH203.cid b/PSCADA/ECMS电厂电气模版/data/config61850/高厂变/AH203.cid similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/config61850/高厂变/AH203.cid rename to PSCADA/ECMS电厂电气模版/data/config61850/高厂变/AH203.cid diff --git a/PSCADA/ECMS电厂行业模版/data/config61850/高厂变/AH204.cid b/PSCADA/ECMS电厂电气模版/data/config61850/高厂变/AH204.cid similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/config61850/高厂变/AH204.cid rename to PSCADA/ECMS电厂电气模版/data/config61850/高厂变/AH204.cid diff --git a/PSCADA/ECMS电厂行业模版/data/config61850/高厂变/AH205.cid b/PSCADA/ECMS电厂电气模版/data/config61850/高厂变/AH205.cid similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/config61850/高厂变/AH205.cid rename to PSCADA/ECMS电厂电气模版/data/config61850/高厂变/AH205.cid diff --git a/PSCADA/ECMS电厂行业模版/data/config61850/高厂变/AH205.icd b/PSCADA/ECMS电厂电气模版/data/config61850/高厂变/AH205.icd similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/config61850/高厂变/AH205.icd rename to PSCADA/ECMS电厂电气模版/data/config61850/高厂变/AH205.icd diff --git a/PSCADA/ECMS电厂行业模版/data/config61850/高厂变/AH206.cid b/PSCADA/ECMS电厂电气模版/data/config61850/高厂变/AH206.cid similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/config61850/高厂变/AH206.cid rename to PSCADA/ECMS电厂电气模版/data/config61850/高厂变/AH206.cid diff --git a/PSCADA/ECMS电厂行业模版/data/config61850/高厂变/AH207.cid b/PSCADA/ECMS电厂电气模版/data/config61850/高厂变/AH207.cid similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/config61850/高厂变/AH207.cid rename to PSCADA/ECMS电厂电气模版/data/config61850/高厂变/AH207.cid diff --git a/PSCADA/ECMS电厂行业模版/data/config61850/高厂变/AH209.cid b/PSCADA/ECMS电厂电气模版/data/config61850/高厂变/AH209.cid similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/config61850/高厂变/AH209.cid rename to PSCADA/ECMS电厂电气模版/data/config61850/高厂变/AH209.cid diff --git a/PSCADA/ECMS电厂行业模版/data/config61850/高厂变/AH209.icd b/PSCADA/ECMS电厂电气模版/data/config61850/高厂变/AH209.icd similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/config61850/高厂变/AH209.icd rename to PSCADA/ECMS电厂电气模版/data/config61850/高厂变/AH209.icd diff --git a/PSCADA/ECMS电厂行业模版/data/config61850/高厂变/AH210.cid b/PSCADA/ECMS电厂电气模版/data/config61850/高厂变/AH210.cid similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/config61850/高厂变/AH210.cid rename to PSCADA/ECMS电厂电气模版/data/config61850/高厂变/AH210.cid diff --git a/PSCADA/ECMS电厂行业模版/data/config61850/高厂变/AH211.cid b/PSCADA/ECMS电厂电气模版/data/config61850/高厂变/AH211.cid similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/config61850/高厂变/AH211.cid rename to PSCADA/ECMS电厂电气模版/data/config61850/高厂变/AH211.cid diff --git a/PSCADA/ECMS电厂行业模版/data/config61850/高厂变/AH212.cid b/PSCADA/ECMS电厂电气模版/data/config61850/高厂变/AH212.cid similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/config61850/高厂变/AH212.cid rename to PSCADA/ECMS电厂电气模版/data/config61850/高厂变/AH212.cid diff --git a/PSCADA/ECMS电厂行业模版/data/config61850/高厂变/AH213.cid b/PSCADA/ECMS电厂电气模版/data/config61850/高厂变/AH213.cid similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/config61850/高厂变/AH213.cid rename to PSCADA/ECMS电厂电气模版/data/config61850/高厂变/AH213.cid diff --git a/PSCADA/ECMS电厂行业模版/data/config61850/高厂变/AH215.cid b/PSCADA/ECMS电厂电气模版/data/config61850/高厂变/AH215.cid similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/config61850/高厂变/AH215.cid rename to PSCADA/ECMS电厂电气模版/data/config61850/高厂变/AH215.cid diff --git a/PSCADA/ECMS电厂行业模版/data/config61850/高厂变/AH215.icd b/PSCADA/ECMS电厂电气模版/data/config61850/高厂变/AH215.icd similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/config61850/高厂变/AH215.icd rename to PSCADA/ECMS电厂电气模版/data/config61850/高厂变/AH215.icd diff --git a/PSCADA/ECMS电厂行业模版/data/fbd_designer/AGC功率分配.xml b/PSCADA/ECMS电厂电气模版/data/fbd_designer/AGC功率分配.xml similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/fbd_designer/AGC功率分配.xml rename to PSCADA/ECMS电厂电气模版/data/fbd_designer/AGC功率分配.xml diff --git a/PSCADA/ECMS电厂行业模版/data/fbd_designer/AGC功率分配1-50.xml b/PSCADA/ECMS电厂电气模版/data/fbd_designer/AGC功率分配1-50.xml similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/fbd_designer/AGC功率分配1-50.xml rename to PSCADA/ECMS电厂电气模版/data/fbd_designer/AGC功率分配1-50.xml diff --git a/PSCADA/ECMS电厂行业模版/data/fbd_designer/alarm_push_test.xml b/PSCADA/ECMS电厂电气模版/data/fbd_designer/alarm_push_test.xml similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/fbd_designer/alarm_push_test.xml rename to PSCADA/ECMS电厂电气模版/data/fbd_designer/alarm_push_test.xml diff --git a/PSCADA/ECMS电厂行业模版/data/fbd_designer/time_trigger.xml b/PSCADA/ECMS电厂电气模版/data/fbd_designer/time_trigger.xml similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/fbd_designer/time_trigger.xml rename to PSCADA/ECMS电厂电气模版/data/fbd_designer/time_trigger.xml diff --git a/PSCADA/ECMS电厂行业模版/data/fbd_designer/告警策略.xml b/PSCADA/ECMS电厂电气模版/data/fbd_designer/告警策略.xml similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/fbd_designer/告警策略.xml rename to PSCADA/ECMS电厂电气模版/data/fbd_designer/告警策略.xml diff --git a/PSCADA/ECMS电厂行业模版/data/fes/EMS_osicfg.xml b/PSCADA/ECMS电厂电气模版/data/fes/EMS_osicfg.xml similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/fes/EMS_osicfg.xml rename to PSCADA/ECMS电厂电气模版/data/fes/EMS_osicfg.xml diff --git a/PSCADA/ECMS电厂行业模版/data/fes/PSCADA_osicfg.xml b/PSCADA/ECMS电厂电气模版/data/fes/PSCADA_osicfg.xml similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/fes/PSCADA_osicfg.xml rename to PSCADA/ECMS电厂电气模版/data/fes/PSCADA_osicfg.xml diff --git a/PSCADA/ECMS电厂行业模版/data/fes/SPMS_osicfg.xml b/PSCADA/ECMS电厂电气模版/data/fes/SPMS_osicfg.xml similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/fes/SPMS_osicfg.xml rename to PSCADA/ECMS电厂电气模版/data/fes/SPMS_osicfg.xml diff --git a/PSCADA/ECMS电厂行业模版/data/fes/cdts.xml b/PSCADA/ECMS电厂电气模版/data/fes/cdts.xml similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/fes/cdts.xml rename to PSCADA/ECMS电厂电气模版/data/fes/cdts.xml diff --git a/PSCADA/ECMS电厂行业模版/data/fes/fesConfig.xml b/PSCADA/ECMS电厂电气模版/data/fes/fesConfig.xml similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/fes/fesConfig.xml rename to PSCADA/ECMS电厂电气模版/data/fes/fesConfig.xml diff --git a/PSCADA/ECMS电厂行业模版/data/fes/fespartdatazf.xml b/PSCADA/ECMS电厂电气模版/data/fes/fespartdatazf.xml similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/fes/fespartdatazf.xml rename to PSCADA/ECMS电厂电气模版/data/fes/fespartdatazf.xml diff --git a/PSCADA/ECMS电厂行业模版/data/fes/hmjs104.xml b/PSCADA/ECMS电厂电气模版/data/fes/hmjs104.xml similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/fes/hmjs104.xml rename to PSCADA/ECMS电厂电气模版/data/fes/hmjs104.xml diff --git a/PSCADA/ECMS电厂行业模版/data/fes/iec101s.xml b/PSCADA/ECMS电厂电气模版/data/fes/iec101s.xml similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/fes/iec101s.xml rename to PSCADA/ECMS电厂电气模版/data/fes/iec101s.xml diff --git a/PSCADA/ECMS电厂行业模版/data/fes/iec103.xml b/PSCADA/ECMS电厂电气模版/data/fes/iec103.xml similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/fes/iec103.xml rename to PSCADA/ECMS电厂电气模版/data/fes/iec103.xml diff --git a/PSCADA/ECMS电厂行业模版/data/fes/iec104.xml b/PSCADA/ECMS电厂电气模版/data/fes/iec104.xml similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/fes/iec104.xml rename to PSCADA/ECMS电厂电气模版/data/fes/iec104.xml diff --git a/PSCADA/ECMS电厂行业模版/data/fes/iec104s.xml b/PSCADA/ECMS电厂电气模版/data/fes/iec104s.xml similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/fes/iec104s.xml rename to PSCADA/ECMS电厂电气模版/data/fes/iec104s.xml diff --git a/PSCADA/ECMS电厂行业模版/data/fes/iec61850_clientV3.xml b/PSCADA/ECMS电厂电气模版/data/fes/iec61850_clientV3.xml similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/fes/iec61850_clientV3.xml rename to PSCADA/ECMS电厂电气模版/data/fes/iec61850_clientV3.xml diff --git a/PSCADA/ECMS电厂行业模版/data/fes/khbas.xml b/PSCADA/ECMS电厂电气模版/data/fes/khbas.xml similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/fes/khbas.xml rename to PSCADA/ECMS电厂电气模版/data/fes/khbas.xml diff --git a/PSCADA/ECMS电厂行业模版/data/fes/logcfg.xml b/PSCADA/ECMS电厂电气模版/data/fes/logcfg.xml similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/fes/logcfg.xml rename to PSCADA/ECMS电厂电气模版/data/fes/logcfg.xml diff --git a/PSCADA/ECMS电厂行业模版/data/fes/mmsconfig.ini b/PSCADA/ECMS电厂电气模版/data/fes/mmsconfig.ini similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/fes/mmsconfig.ini rename to PSCADA/ECMS电厂电气模版/data/fes/mmsconfig.ini diff --git a/PSCADA/ECMS电厂行业模版/data/fes/modbus_rtu_dt.xml b/PSCADA/ECMS电厂电气模版/data/fes/modbus_rtu_dt.xml similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/fes/modbus_rtu_dt.xml rename to PSCADA/ECMS电厂电气模版/data/fes/modbus_rtu_dt.xml diff --git a/PSCADA/ECMS电厂行业模版/data/fes/modbus_rtu_s.xml b/PSCADA/ECMS电厂电气模版/data/fes/modbus_rtu_s.xml similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/fes/modbus_rtu_s.xml rename to PSCADA/ECMS电厂电气模版/data/fes/modbus_rtu_s.xml diff --git a/PSCADA/ECMS电厂行业模版/data/fes/modbus_tcp_mz.xml b/PSCADA/ECMS电厂电气模版/data/fes/modbus_tcp_mz.xml similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/fes/modbus_tcp_mz.xml rename to PSCADA/ECMS电厂电气模版/data/fes/modbus_tcp_mz.xml diff --git a/PSCADA/ECMS电厂行业模版/data/fes/modbus_tcp_s.xml b/PSCADA/ECMS电厂电气模版/data/fes/modbus_tcp_s.xml similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/fes/modbus_tcp_s.xml rename to PSCADA/ECMS电厂电气模版/data/fes/modbus_tcp_s.xml diff --git a/PSCADA/ECMS电厂行业模版/data/fes/modbus_tcp_s_V2.xml b/PSCADA/ECMS电厂电气模版/data/fes/modbus_tcp_s_V2.xml similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/fes/modbus_tcp_s_V2.xml rename to PSCADA/ECMS电厂电气模版/data/fes/modbus_tcp_s_V2.xml diff --git a/PSCADA/ECMS电厂行业模版/data/fes/modbustcps.xml b/PSCADA/ECMS电厂电气模版/data/fes/modbustcps.xml similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/fes/modbustcps.xml rename to PSCADA/ECMS电厂电气模版/data/fes/modbustcps.xml diff --git a/PSCADA/ECMS电厂行业模版/data/fes/mqtt_topic_cfg58.csv b/PSCADA/ECMS电厂电气模版/data/fes/mqtt_topic_cfg58.csv similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/fes/mqtt_topic_cfg58.csv rename to PSCADA/ECMS电厂电气模版/data/fes/mqtt_topic_cfg58.csv diff --git a/PSCADA/ECMS电厂行业模版/data/fes/mqtt_yxCloud.xml b/PSCADA/ECMS电厂电气模版/data/fes/mqtt_yxCloud.xml similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/fes/mqtt_yxCloud.xml rename to PSCADA/ECMS电厂电气模版/data/fes/mqtt_yxCloud.xml diff --git a/PSCADA/ECMS电厂行业模版/data/fes/siemens103_tcp.xml b/PSCADA/ECMS电厂电气模版/data/fes/siemens103_tcp.xml similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/fes/siemens103_tcp.xml rename to PSCADA/ECMS电厂电气模版/data/fes/siemens103_tcp.xml diff --git a/PSCADA/ECMS电厂行业模版/data/fes/snmpWiseWay3.xml b/PSCADA/ECMS电厂电气模版/data/fes/snmpWiseWay3.xml similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/fes/snmpWiseWay3.xml rename to PSCADA/ECMS电厂电气模版/data/fes/snmpWiseWay3.xml diff --git a/PSCADA/ECMS电厂行业模版/data/fes/snmpv3.xml b/PSCADA/ECMS电厂电气模版/data/fes/snmpv3.xml similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/fes/snmpv3.xml rename to PSCADA/ECMS电厂电气模版/data/fes/snmpv3.xml diff --git a/PSCADA/ECMS电厂行业模版/data/fes/sqlserver_s.xml b/PSCADA/ECMS电厂电气模版/data/fes/sqlserver_s.xml similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/fes/sqlserver_s.xml rename to PSCADA/ECMS电厂电气模版/data/fes/sqlserver_s.xml diff --git a/PSCADA/ECMS电厂行业模版/data/fes/wfudpcdt.xml b/PSCADA/ECMS电厂电气模版/data/fes/wfudpcdt.xml similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/fes/wfudpcdt.xml rename to PSCADA/ECMS电厂电气模版/data/fes/wfudpcdt.xml diff --git a/PSCADA/ECMS电厂行业模版/data/fes/yxcloud_mqtt_wn.xml b/PSCADA/ECMS电厂电气模版/data/fes/yxcloud_mqtt_wn.xml similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/fes/yxcloud_mqtt_wn.xml rename to PSCADA/ECMS电厂电气模版/data/fes/yxcloud_mqtt_wn.xml diff --git a/PSCADA/ECMS电厂行业模版/data/icon/NewCB.ilx b/PSCADA/ECMS电厂电气模版/data/icon/NewCB.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/NewCB.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/NewCB.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/NewCB2.ilx b/PSCADA/ECMS电厂电气模版/data/icon/NewCB2.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/NewCB2.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/NewCB2.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/三卷变YYV.ilx b/PSCADA/ECMS电厂电气模版/data/icon/三卷变YYV.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/三卷变YYV.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/三卷变YYV.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/三卷变压器.ilx b/PSCADA/ECMS电厂电气模版/data/icon/三卷变压器.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/三卷变压器.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/三卷变压器.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/三相电压.ilx b/PSCADA/ECMS电厂电气模版/data/icon/三相电压.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/三相电压.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/三相电压.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/三相电流功率.ilx b/PSCADA/ECMS电厂电气模版/data/icon/三相电流功率.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/三相电流功率.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/三相电流功率.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/三角形.ilx b/PSCADA/ECMS电厂电气模版/data/icon/三角形.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/三角形.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/三角形.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/两卷变压器三角形三角形.ilx b/PSCADA/ECMS电厂电气模版/data/icon/两卷变压器三角形三角形.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/两卷变压器三角形三角形.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/两卷变压器三角形三角形.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/两卷变压器三角形星形.ilx b/PSCADA/ECMS电厂电气模版/data/icon/两卷变压器三角形星形.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/两卷变压器三角形星形.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/两卷变压器三角形星形.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/两卷变压器星形三角形.ilx b/PSCADA/ECMS电厂电气模版/data/icon/两卷变压器星形三角形.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/两卷变压器星形三角形.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/两卷变压器星形三角形.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/中压CT.ilx b/PSCADA/ECMS电厂电气模版/data/icon/中压CT.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/中压CT.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/中压CT.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/中压CTs.ilx b/PSCADA/ECMS电厂电气模版/data/icon/中压CTs.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/中压CTs.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/中压CTs.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/中压PT.ilx b/PSCADA/ECMS电厂电气模版/data/icon/中压PT.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/中压PT.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/中压PT.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/中压PT_刀闸.ilx b/PSCADA/ECMS电厂电气模版/data/icon/中压PT_刀闸.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/中压PT_刀闸.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/中压PT_刀闸.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/中压PT_反.ilx b/PSCADA/ECMS电厂电气模版/data/icon/中压PT_反.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/中压PT_反.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/中压PT_反.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/中压PTs.ilx b/PSCADA/ECMS电厂电气模版/data/icon/中压PTs.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/中压PTs.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/中压PTs.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/中压母联.ilx b/PSCADA/ECMS电厂电气模版/data/icon/中压母联.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/中压母联.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/中压母联.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/中压母联_刀闸.ilx b/PSCADA/ECMS电厂电气模版/data/icon/中压母联_刀闸.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/中压母联_刀闸.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/中压母联_刀闸.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/中压母联_双刀闸.ilx b/PSCADA/ECMS电厂电气模版/data/icon/中压母联_双刀闸.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/中压母联_双刀闸.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/中压母联_双刀闸.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/中压母联s.ilx b/PSCADA/ECMS电厂电气模版/data/icon/中压母联s.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/中压母联s.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/中压母联s.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/中压进线.ilx b/PSCADA/ECMS电厂电气模版/data/icon/中压进线.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/中压进线.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/中压进线.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/中压进线H.ilx b/PSCADA/ECMS电厂电气模版/data/icon/中压进线H.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/中压进线H.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/中压进线H.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/中压进线H_刀闸.ilx b/PSCADA/ECMS电厂电气模版/data/icon/中压进线H_刀闸.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/中压进线H_刀闸.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/中压进线H_刀闸.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/中压进线H_双刀闸.ilx b/PSCADA/ECMS电厂电气模版/data/icon/中压进线H_双刀闸.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/中压进线H_双刀闸.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/中压进线H_双刀闸.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/中压进线Hs.ilx b/PSCADA/ECMS电厂电气模版/data/icon/中压进线Hs.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/中压进线Hs.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/中压进线Hs.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/中压隔离.ilx b/PSCADA/ECMS电厂电气模版/data/icon/中压隔离.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/中压隔离.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/中压隔离.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/中压隔离_刀闸.ilx b/PSCADA/ECMS电厂电气模版/data/icon/中压隔离_刀闸.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/中压隔离_刀闸.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/中压隔离_刀闸.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/中压隔离s.ilx b/PSCADA/ECMS电厂电气模版/data/icon/中压隔离s.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/中压隔离s.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/中压隔离s.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/中压馈线.ilx b/PSCADA/ECMS电厂电气模版/data/icon/中压馈线.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/中压馈线.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/中压馈线.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/中压馈线H_刀闸.ilx b/PSCADA/ECMS电厂电气模版/data/icon/中压馈线H_刀闸.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/中压馈线H_刀闸.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/中压馈线H_刀闸.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/中压馈线_刀闸.ilx b/PSCADA/ECMS电厂电气模版/data/icon/中压馈线_刀闸.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/中压馈线_刀闸.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/中压馈线_刀闸.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/中压馈线_双刀闸.ilx b/PSCADA/ECMS电厂电气模版/data/icon/中压馈线_双刀闸.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/中压馈线_双刀闸.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/中压馈线_双刀闸.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/中压馈线s.ilx b/PSCADA/ECMS电厂电气模版/data/icon/中压馈线s.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/中压馈线s.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/中压馈线s.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/主备状态.ilx b/PSCADA/ECMS电厂电气模版/data/icon/主备状态.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/主备状态.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/主备状态.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/主电状态.ilx b/PSCADA/ECMS电厂电气模版/data/icon/主电状态.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/主电状态.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/主电状态.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/仪表盘.ilx b/PSCADA/ECMS电厂电气模版/data/icon/仪表盘.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/仪表盘.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/仪表盘.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/仪表通讯.ilx b/PSCADA/ECMS电厂电气模版/data/icon/仪表通讯.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/仪表通讯.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/仪表通讯.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/低压开关.ilx b/PSCADA/ECMS电厂电气模版/data/icon/低压开关.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/低压开关.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/低压开关.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/低压断路器.ilx b/PSCADA/ECMS电厂电气模版/data/icon/低压断路器.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/低压断路器.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/低压断路器.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/低压断路器_不可控.ilx b/PSCADA/ECMS电厂电气模版/data/icon/低压断路器_不可控.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/低压断路器_不可控.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/低压断路器_不可控.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/低压进线.ilx b/PSCADA/ECMS电厂电气模版/data/icon/低压进线.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/低压进线.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/低压进线.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/低压馈线.ilx b/PSCADA/ECMS电厂电气模版/data/icon/低压馈线.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/低压馈线.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/低压馈线.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/低压馈线H.ilx b/PSCADA/ECMS电厂电气模版/data/icon/低压馈线H.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/低压馈线H.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/低压馈线H.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/低压馈线H_接触器.ilx b/PSCADA/ECMS电厂电气模版/data/icon/低压馈线H_接触器.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/低压馈线H_接触器.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/低压馈线H_接触器.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/低压马达.ilx b/PSCADA/ECMS电厂电气模版/data/icon/低压马达.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/低压马达.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/低压马达.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/光字牌.ilx b/PSCADA/ECMS电厂电气模版/data/icon/光字牌.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/光字牌.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/光字牌.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/刀闸.ilx b/PSCADA/ECMS电厂电气模版/data/icon/刀闸.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/刀闸.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/刀闸.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/分裂电抗器.ilx b/PSCADA/ECMS电厂电气模版/data/icon/分裂电抗器.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/分裂电抗器.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/分裂电抗器.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/压板.ilx b/PSCADA/ECMS电厂电气模版/data/icon/压板.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/压板.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/压板.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/发电机.ilx b/PSCADA/ECMS电厂电气模版/data/icon/发电机.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/发电机.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/发电机.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/四卷变压器_横.ilx b/PSCADA/ECMS电厂电气模版/data/icon/四卷变压器_横.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/四卷变压器_横.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/四卷变压器_横.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/四卷变压器_竖.ilx b/PSCADA/ECMS电厂电气模版/data/icon/四卷变压器_竖.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/四卷变压器_竖.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/四卷变压器_竖.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/带熔断器刀闸.ilx b/PSCADA/ECMS电厂电气模版/data/icon/带熔断器刀闸.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/带熔断器刀闸.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/带熔断器刀闸.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/带电指示器.ilx b/PSCADA/ECMS电厂电气模版/data/icon/带电指示器.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/带电指示器.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/带电指示器.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/快速接地刀.ilx b/PSCADA/ECMS电厂电气模版/data/icon/快速接地刀.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/快速接地刀.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/快速接地刀.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/手车_上.ilx b/PSCADA/ECMS电厂电气模版/data/icon/手车_上.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/手车_上.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/手车_上.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/手车_下.ilx b/PSCADA/ECMS电厂电气模版/data/icon/手车_下.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/手车_下.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/手车_下.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/把手.ilx b/PSCADA/ECMS电厂电气模版/data/icon/把手.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/把手.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/把手.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/投入退出.ilx b/PSCADA/ECMS电厂电气模版/data/icon/投入退出.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/投入退出.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/投入退出.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/挂牌.ilx b/PSCADA/ECMS电厂电气模版/data/icon/挂牌.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/挂牌.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/挂牌.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/探测器状态.ilx b/PSCADA/ECMS电厂电气模版/data/icon/探测器状态.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/探测器状态.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/探测器状态.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/接地.ilx b/PSCADA/ECMS电厂电气模版/data/icon/接地.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/接地.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/接地.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/接地刀闸.ilx b/PSCADA/ECMS电厂电气模版/data/icon/接地刀闸.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/接地刀闸.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/接地刀闸.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/接触器.ilx b/PSCADA/ECMS电厂电气模版/data/icon/接触器.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/接触器.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/接触器.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/摄像头.ilx b/PSCADA/ECMS电厂电气模版/data/icon/摄像头.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/摄像头.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/摄像头.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/数字量点标签.ilx b/PSCADA/ECMS电厂电气模版/data/icon/数字量点标签.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/数字量点标签.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/数字量点标签.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/断路器 - 副本.ilx b/PSCADA/ECMS电厂电气模版/data/icon/断路器 - 副本.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/断路器 - 副本.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/断路器 - 副本.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/断路器.ilx b/PSCADA/ECMS电厂电气模版/data/icon/断路器.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/断路器.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/断路器.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/断路器_控制.ilx b/PSCADA/ECMS电厂电气模版/data/icon/断路器_控制.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/断路器_控制.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/断路器_控制.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/模拟量点标签.ilx b/PSCADA/ECMS电厂电气模版/data/icon/模拟量点标签.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/模拟量点标签.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/模拟量点标签.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/横向接地刀闸.ilx b/PSCADA/ECMS电厂电气模版/data/icon/横向接地刀闸.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/横向接地刀闸.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/横向接地刀闸.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/母线电压.ilx b/PSCADA/ECMS电厂电气模版/data/icon/母线电压.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/母线电压.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/母线电压.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/母联.ilx b/PSCADA/ECMS电厂电气模版/data/icon/母联.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/母联.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/母联.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/测控_远方状态.ilx b/PSCADA/ECMS电厂电气模版/data/icon/测控_远方状态.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/测控_远方状态.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/测控_远方状态.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/牵引变压器_四卷.ilx b/PSCADA/ECMS电厂电气模版/data/icon/牵引变压器_四卷.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/牵引变压器_四卷.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/牵引变压器_四卷.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/牵引变压器_横.ilx b/PSCADA/ECMS电厂电气模版/data/icon/牵引变压器_横.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/牵引变压器_横.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/牵引变压器_横.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/牵引变压器_竖.ilx b/PSCADA/ECMS电厂电气模版/data/icon/牵引变压器_竖.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/牵引变压器_竖.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/牵引变压器_竖.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/状态3D_白黄.ilx b/PSCADA/ECMS电厂电气模版/data/icon/状态3D_白黄.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/状态3D_白黄.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/状态3D_白黄.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/状态3D_绿红.ilx b/PSCADA/ECMS电厂电气模版/data/icon/状态3D_绿红.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/状态3D_绿红.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/状态3D_绿红.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/状态_红绿蓝.ilx b/PSCADA/ECMS电厂电气模版/data/icon/状态_红绿蓝.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/状态_红绿蓝.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/状态_红绿蓝.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/电动机.ilx b/PSCADA/ECMS电厂电气模版/data/icon/电动机.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/电动机.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/电动机.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/电压互感器PT.ilx b/PSCADA/ECMS电厂电气模版/data/icon/电压互感器PT.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/电压互感器PT.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/电压互感器PT.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/电压互感器三绕组.ilx b/PSCADA/ECMS电厂电气模版/data/icon/电压互感器三绕组.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/电压互感器三绕组.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/电压互感器三绕组.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/电压互感器两绕组.ilx b/PSCADA/ECMS电厂电气模版/data/icon/电压互感器两绕组.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/电压互感器两绕组.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/电压互感器两绕组.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/电压互感器四绕组.ilx b/PSCADA/ECMS电厂电气模版/data/icon/电压互感器四绕组.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/电压互感器四绕组.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/电压互感器四绕组.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/电容.ilx b/PSCADA/ECMS电厂电气模版/data/icon/电容.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/电容.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/电容.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/电容器.ilx b/PSCADA/ECMS电厂电气模版/data/icon/电容器.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/电容器.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/电容器.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/电抗器.ilx b/PSCADA/ECMS电厂电气模版/data/icon/电抗器.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/电抗器.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/电抗器.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/电机.ilx b/PSCADA/ECMS电厂电气模版/data/icon/电机.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/电机.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/电机.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/电流互感器.ilx b/PSCADA/ECMS电厂电气模版/data/icon/电流互感器.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/电流互感器.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/电流互感器.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/电缆.ilx b/PSCADA/ECMS电厂电气模版/data/icon/电缆.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/电缆.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/电缆.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/硬压板.ilx b/PSCADA/ECMS电厂电气模版/data/icon/硬压板.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/硬压板.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/硬压板.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/竖向.ilx b/PSCADA/ECMS电厂电气模版/data/icon/竖向.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/竖向.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/竖向.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/装置_通讯状态.ilx b/PSCADA/ECMS电厂电气模版/data/icon/装置_通讯状态.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/装置_通讯状态.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/装置_通讯状态.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/调频状态.ilx b/PSCADA/ECMS电厂电气模版/data/icon/调频状态.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/调频状态.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/调频状态.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/负荷开关.ilx b/PSCADA/ECMS电厂电气模版/data/icon/负荷开关.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/负荷开关.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/负荷开关.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/转换开关3D_远方就地.ilx b/PSCADA/ECMS电厂电气模版/data/icon/转换开关3D_远方就地.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/转换开关3D_远方就地.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/转换开关3D_远方就地.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/转换开关_投入退出.ilx b/PSCADA/ECMS电厂电气模版/data/icon/转换开关_投入退出.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/转换开关_投入退出.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/转换开关_投入退出.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/转换开关_联锁解锁.ilx b/PSCADA/ECMS电厂电气模版/data/icon/转换开关_联锁解锁.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/转换开关_联锁解锁.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/转换开关_联锁解锁.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/转换开关_远方就地.ilx b/PSCADA/ECMS电厂电气模版/data/icon/转换开关_远方就地.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/转换开关_远方就地.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/转换开关_远方就地.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/转换开关_远方就地退出.ilx b/PSCADA/ECMS电厂电气模版/data/icon/转换开关_远方就地退出.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/转换开关_远方就地退出.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/转换开关_远方就地退出.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/运行停止.ilx b/PSCADA/ECMS电厂电气模版/data/icon/运行停止.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/运行停止.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/运行停止.ilx diff --git a/PSCADA/ECMS电厂电气模版/data/icon/运行状态.ilx b/PSCADA/ECMS电厂电气模版/data/icon/运行状态.ilx new file mode 100644 index 0000000..dc12100 --- /dev/null +++ b/PSCADA/ECMS电厂电气模版/data/icon/运行状态.ilx @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/PSCADA/ECMS电厂行业模版/data/icon/进线.ilx b/PSCADA/ECMS电厂电气模版/data/icon/进线.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/进线.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/进线.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/远方就地.ilx b/PSCADA/ECMS电厂电气模版/data/icon/远方就地.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/远方就地.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/远方就地.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/远方就地_LR.ilx b/PSCADA/ECMS电厂电气模版/data/icon/远方就地_LR.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/远方就地_LR.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/远方就地_LR.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/通信状态字描述.ilx b/PSCADA/ECMS电厂电气模版/data/icon/通信状态字描述.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/通信状态字描述.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/通信状态字描述.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/通断状态.ilx b/PSCADA/ECMS电厂电气模版/data/icon/通断状态.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/通断状态.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/通断状态.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/通用状态.ilx b/PSCADA/ECMS电厂电气模版/data/icon/通用状态.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/通用状态.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/通用状态.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/通用状态无效.ilx b/PSCADA/ECMS电厂电气模版/data/icon/通用状态无效.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/通用状态无效.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/通用状态无效.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/通讯状态.ilx b/PSCADA/ECMS电厂电气模版/data/icon/通讯状态.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/通讯状态.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/通讯状态.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/通道状态.ilx b/PSCADA/ECMS电厂电气模版/data/icon/通道状态.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/通道状态.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/通道状态.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/避雷器.ilx b/PSCADA/ECMS电厂电气模版/data/icon/避雷器.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/避雷器.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/避雷器.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/隔离开关.ilx b/PSCADA/ECMS电厂电气模版/data/icon/隔离开关.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/隔离开关.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/隔离开关.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/静止无功补偿器.ilx b/PSCADA/ECMS电厂电气模版/data/icon/静止无功补偿器.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/静止无功补偿器.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/静止无功补偿器.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/馈线.ilx b/PSCADA/ECMS电厂电气模版/data/icon/馈线.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/馈线.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/馈线.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/高压PT.ilx b/PSCADA/ECMS电厂电气模版/data/icon/高压PT.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/高压PT.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/高压PT.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/高压PT2.ilx b/PSCADA/ECMS电厂电气模版/data/icon/高压PT2.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/高压PT2.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/高压PT2.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/高压母联.ilx b/PSCADA/ECMS电厂电气模版/data/icon/高压母联.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/高压母联.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/高压母联.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/高压进线.ilx b/PSCADA/ECMS电厂电气模版/data/icon/高压进线.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/高压进线.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/高压进线.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/高压避雷器.ilx b/PSCADA/ECMS电厂电气模版/data/icon/高压避雷器.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/高压避雷器.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/高压避雷器.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/高压馈线.ilx b/PSCADA/ECMS电厂电气模版/data/icon/高压馈线.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/高压馈线.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/高压馈线.ilx diff --git a/PSCADA/ECMS电厂行业模版/data/icon/高压馈线2.ilx b/PSCADA/ECMS电厂电气模版/data/icon/高压馈线2.ilx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/icon/高压馈线2.ilx rename to PSCADA/ECMS电厂电气模版/data/icon/高压馈线2.ilx diff --git a/PSCADA/ECMS电厂电气模版/data/mod_instance/P53A_imput temp.xlsx b/PSCADA/ECMS电厂电气模版/data/mod_instance/P53A_imput temp.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..c380760e239446b8f57aa1600d5024cfad32986f GIT binary patch literal 10162 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 + + + + + + + + + + + + diff --git a/PSCADA/ECMS电厂电气模版/data/pic/实时监控/110kV发电三期主接线图.glx b/PSCADA/ECMS电厂电气模版/data/pic/实时监控/110kV发电三期主接线图.glx new file mode 100644 index 0000000..663ddea --- /dev/null +++ b/PSCADA/ECMS电厂电气模版/data/pic/实时监控/110kV发电三期主接线图.glx @@ -0,0 +1,413 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PSCADA/ECMS电厂行业模版/data/pic/实时监控/低压厂用电接线图.glx b/PSCADA/ECMS电厂电气模版/data/pic/实时监控/低压厂用电接线图.glx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/pic/实时监控/低压厂用电接线图.glx rename to PSCADA/ECMS电厂电气模版/data/pic/实时监控/低压厂用电接线图.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/实时监控/全厂串口通讯图.glx b/PSCADA/ECMS电厂电气模版/data/pic/实时监控/全厂串口通讯图.glx similarity index 53% rename from PSCADA/SG-A通讯管理模版/data/pic/实时监控/全厂串口通讯图.glx rename to PSCADA/ECMS电厂电气模版/data/pic/实时监控/全厂串口通讯图.glx index fcd92bd..32d908f 100644 --- a/PSCADA/SG-A通讯管理模版/data/pic/实时监控/全厂串口通讯图.glx +++ b/PSCADA/ECMS电厂电气模版/data/pic/实时监控/全厂串口通讯图.glx @@ -1,9 +1,9 @@ - + - + + + diff --git a/PSCADA/ECMS电厂电气模版/data/pic/界面框架/interval_relay.glx b/PSCADA/ECMS电厂电气模版/data/pic/界面框架/interval_relay.glx new file mode 100644 index 0000000..24bd381 --- /dev/null +++ b/PSCADA/ECMS电厂电气模版/data/pic/界面框架/interval_relay.glx @@ -0,0 +1,502 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/panel_accuml_ctrl.glx b/PSCADA/ECMS电厂电气模版/data/pic/界面框架/panel_accuml_ctrl.glx similarity index 53% rename from PSCADA/SG-A通讯管理模版/data/pic/界面框架/panel_accuml_ctrl.glx rename to PSCADA/ECMS电厂电气模版/data/pic/界面框架/panel_accuml_ctrl.glx index 410a147..abf0805 100644 --- a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/panel_accuml_ctrl.glx +++ b/PSCADA/ECMS电厂电气模版/data/pic/界面框架/panel_accuml_ctrl.glx @@ -1,32 +1,32 @@ - - + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PSCADA/ECMS电厂行业模版/data/pic/界面框架/panel_const_read.glx b/PSCADA/ECMS电厂电气模版/data/pic/界面框架/panel_const_read.glx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/pic/界面框架/panel_const_read.glx rename to PSCADA/ECMS电厂电气模版/data/pic/界面框架/panel_const_read.glx diff --git a/PSCADA/ECMS电厂行业模版/data/pic/界面框架/panel_const_switch.glx b/PSCADA/ECMS电厂电气模版/data/pic/界面框架/panel_const_switch.glx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/pic/界面框架/panel_const_switch.glx rename to PSCADA/ECMS电厂电气模版/data/pic/界面框架/panel_const_switch.glx diff --git a/PSCADA/ECMS电厂行业模版/data/pic/界面框架/panel_ctrl_verify.glx b/PSCADA/ECMS电厂电气模版/data/pic/界面框架/panel_ctrl_verify.glx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/pic/界面框架/panel_ctrl_verify.glx rename to PSCADA/ECMS电厂电气模版/data/pic/界面框架/panel_ctrl_verify.glx diff --git a/PSCADA/ECMS电厂电气模版/data/pic/界面框架/panel_direct_ctrl.glx b/PSCADA/ECMS电厂电气模版/data/pic/界面框架/panel_direct_ctrl.glx new file mode 100644 index 0000000..3ce4340 --- /dev/null +++ b/PSCADA/ECMS电厂电气模版/data/pic/界面框架/panel_direct_ctrl.glx @@ -0,0 +1,2086 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PSCADA/ECMS电厂行业模版/data/pic/界面框架/panel_direct_ctrl0.glx b/PSCADA/ECMS电厂电气模版/data/pic/界面框架/panel_direct_ctrl0.glx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/pic/界面框架/panel_direct_ctrl0.glx rename to PSCADA/ECMS电厂电气模版/data/pic/界面框架/panel_direct_ctrl0.glx diff --git a/PSCADA/ECMS电厂行业模版/data/pic/界面框架/panel_direct_ctrl1.glx b/PSCADA/ECMS电厂电气模版/data/pic/界面框架/panel_direct_ctrl1.glx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/pic/界面框架/panel_direct_ctrl1.glx rename to PSCADA/ECMS电厂电气模版/data/pic/界面框架/panel_direct_ctrl1.glx diff --git a/PSCADA/ECMS电厂行业模版/data/pic/界面框架/panel_direct_ctrl2.glx b/PSCADA/ECMS电厂电气模版/data/pic/界面框架/panel_direct_ctrl2.glx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/pic/界面框架/panel_direct_ctrl2.glx rename to PSCADA/ECMS电厂电气模版/data/pic/界面框架/panel_direct_ctrl2.glx diff --git a/PSCADA/ECMS电厂行业模版/data/pic/界面框架/panel_group_limit.glx b/PSCADA/ECMS电厂电气模版/data/pic/界面框架/panel_group_limit.glx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/pic/界面框架/panel_group_limit.glx rename to PSCADA/ECMS电厂电气模版/data/pic/界面框架/panel_group_limit.glx diff --git a/PSCADA/ECMS电厂行业模版/data/pic/界面框架/panel_group_maint.glx b/PSCADA/ECMS电厂电气模版/data/pic/界面框架/panel_group_maint.glx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/pic/界面框架/panel_group_maint.glx rename to PSCADA/ECMS电厂电气模版/data/pic/界面框架/panel_group_maint.glx diff --git a/PSCADA/ECMS电厂行业模版/data/pic/界面框架/panel_group_more.glx b/PSCADA/ECMS电厂电气模版/data/pic/界面框架/panel_group_more.glx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/pic/界面框架/panel_group_more.glx rename to PSCADA/ECMS电厂电气模版/data/pic/界面框架/panel_group_more.glx diff --git a/PSCADA/ECMS电厂行业模版/data/pic/界面框架/panel_hint_info.glx b/PSCADA/ECMS电厂电气模版/data/pic/界面框架/panel_hint_info.glx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/pic/界面框架/panel_hint_info.glx rename to PSCADA/ECMS电厂电气模版/data/pic/界面框架/panel_hint_info.glx diff --git a/PSCADA/ECMS电厂行业模版/data/pic/界面框架/panel_login.glx b/PSCADA/ECMS电厂电气模版/data/pic/界面框架/panel_login.glx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/pic/界面框架/panel_login.glx rename to PSCADA/ECMS电厂电气模版/data/pic/界面框架/panel_login.glx diff --git a/PSCADA/ECMS电厂行业模版/data/pic/界面框架/panel_login_exit.glx b/PSCADA/ECMS电厂电气模版/data/pic/界面框架/panel_login_exit.glx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/pic/界面框架/panel_login_exit.glx rename to PSCADA/ECMS电厂电气模版/data/pic/界面框架/panel_login_exit.glx diff --git a/PSCADA/ECMS电厂行业模版/data/pic/界面框架/panel_login_lock.glx b/PSCADA/ECMS电厂电气模版/data/pic/界面框架/panel_login_lock.glx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/pic/界面框架/panel_login_lock.glx rename to PSCADA/ECMS电厂电气模版/data/pic/界面框架/panel_login_lock.glx diff --git a/PSCADA/ECMS电厂行业模版/data/pic/界面框架/panel_oper_verify.glx b/PSCADA/ECMS电厂电气模版/data/pic/界面框架/panel_oper_verify.glx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/pic/界面框架/panel_oper_verify.glx rename to PSCADA/ECMS电厂电气模版/data/pic/界面框架/panel_oper_verify.glx diff --git a/PSCADA/ECMS电厂行业模版/data/pic/界面框架/panel_opt_ticket.glx b/PSCADA/ECMS电厂电气模版/data/pic/界面框架/panel_opt_ticket.glx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/pic/界面框架/panel_opt_ticket.glx rename to PSCADA/ECMS电厂电气模版/data/pic/界面框架/panel_opt_ticket.glx diff --git a/PSCADA/ECMS电厂行业模版/data/pic/界面框架/panel_point_lock.glx b/PSCADA/ECMS电厂电气模版/data/pic/界面框架/panel_point_lock.glx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/pic/界面框架/panel_point_lock.glx rename to PSCADA/ECMS电厂电气模版/data/pic/界面框架/panel_point_lock.glx diff --git a/PSCADA/ECMS电厂行业模版/data/pic/界面框架/panel_recall_alarm.glx b/PSCADA/ECMS电厂电气模版/data/pic/界面框架/panel_recall_alarm.glx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/pic/界面框架/panel_recall_alarm.glx rename to PSCADA/ECMS电厂电气模版/data/pic/界面框架/panel_recall_alarm.glx diff --git a/PSCADA/ECMS电厂行业模版/data/pic/界面框架/panel_recall_list.glx b/PSCADA/ECMS电厂电气模版/data/pic/界面框架/panel_recall_list.glx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/pic/界面框架/panel_recall_list.glx rename to PSCADA/ECMS电厂电气模版/data/pic/界面框架/panel_recall_list.glx diff --git a/PSCADA/ECMS电厂行业模版/data/pic/界面框架/panel_recall_toolbar.glx b/PSCADA/ECMS电厂电气模版/data/pic/界面框架/panel_recall_toolbar.glx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/pic/界面框架/panel_recall_toolbar.glx rename to PSCADA/ECMS电厂电气模版/data/pic/界面框架/panel_recall_toolbar.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/panel_remote_ctrl.glx b/PSCADA/ECMS电厂电气模版/data/pic/界面框架/panel_remote_ctrl.glx similarity index 50% rename from PSCADA/SG-A通讯管理模版/data/pic/界面框架/panel_remote_ctrl.glx rename to PSCADA/ECMS电厂电气模版/data/pic/界面框架/panel_remote_ctrl.glx index 6493029..5915eb2 100644 --- a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/panel_remote_ctrl.glx +++ b/PSCADA/ECMS电厂电气模版/data/pic/界面框架/panel_remote_ctrl.glx @@ -1,108 +1,108 @@ - - + + - - - - - - - - + + + + + + + + - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + - + - - diff --git a/PSCADA/ECMS电厂行业模版/data/pic/old/告警事件/历史事件.glx b/PSCADA/ECMS电厂行业模版/data/pic/old/告警事件/历史事件.glx deleted file mode 100644 index 191f454..0000000 --- a/PSCADA/ECMS电厂行业模版/data/pic/old/告警事件/历史事件.glx +++ /dev/null @@ -1,90 +0,0 @@ - - - - - - - - - - diff --git a/PSCADA/ECMS电厂行业模版/data/pic/old/告警事件/告警分析.glx b/PSCADA/ECMS电厂行业模版/data/pic/old/告警事件/告警分析.glx deleted file mode 100644 index d48487a..0000000 --- a/PSCADA/ECMS电厂行业模版/data/pic/old/告警事件/告警分析.glx +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - diff --git a/PSCADA/ECMS电厂行业模版/data/pic/old/告警事件/实时告警.glx b/PSCADA/ECMS电厂行业模版/data/pic/old/告警事件/实时告警.glx deleted file mode 100644 index 4be5c65..0000000 --- a/PSCADA/ECMS电厂行业模版/data/pic/old/告警事件/实时告警.glx +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - - - - - diff --git a/PSCADA/ECMS电厂行业模版/data/pic/old/告警事件/故障录波.glx b/PSCADA/ECMS电厂行业模版/data/pic/old/告警事件/故障录波.glx deleted file mode 100644 index 918ecbe..0000000 --- a/PSCADA/ECMS电厂行业模版/data/pic/old/告警事件/故障录波.glx +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/PSCADA/ECMS电厂行业模版/data/pic/old/告警事件/运行简报.glx b/PSCADA/ECMS电厂行业模版/data/pic/old/告警事件/运行简报.glx deleted file mode 100644 index e13707d..0000000 --- a/PSCADA/ECMS电厂行业模版/data/pic/old/告警事件/运行简报.glx +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/PSCADA/ECMS电厂行业模版/data/pic/old/曲线报表/报表浏览.glx b/PSCADA/ECMS电厂行业模版/data/pic/old/曲线报表/报表浏览.glx deleted file mode 100644 index 4057fff..0000000 --- a/PSCADA/ECMS电厂行业模版/data/pic/old/曲线报表/报表浏览.glx +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - - - - - diff --git a/PSCADA/ECMS电厂行业模版/data/pic/old/曲线报表/报表管理.glx b/PSCADA/ECMS电厂行业模版/data/pic/old/曲线报表/报表管理.glx deleted file mode 100644 index 2d7e5c9..0000000 --- a/PSCADA/ECMS电厂行业模版/data/pic/old/曲线报表/报表管理.glx +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - diff --git a/PSCADA/ECMS电厂行业模版/data/pic/old/曲线报表/报表编辑.glx b/PSCADA/ECMS电厂行业模版/data/pic/old/曲线报表/报表编辑.glx deleted file mode 100644 index 9739bce..0000000 --- a/PSCADA/ECMS电厂行业模版/data/pic/old/曲线报表/报表编辑.glx +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - - - - - diff --git a/PSCADA/ECMS电厂行业模版/data/pic/old/曲线报表/详细数据.glx b/PSCADA/ECMS电厂行业模版/data/pic/old/曲线报表/详细数据.glx deleted file mode 100644 index 6bc2bee..0000000 --- a/PSCADA/ECMS电厂行业模版/data/pic/old/曲线报表/详细数据.glx +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - diff --git a/PSCADA/ECMS电厂行业模版/data/pic/old/曲线报表/趋势分析.glx b/PSCADA/ECMS电厂行业模版/data/pic/old/曲线报表/趋势分析.glx deleted file mode 100644 index ca9d72d..0000000 --- a/PSCADA/ECMS电厂行业模版/data/pic/old/曲线报表/趋势分析.glx +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/220kV/220kV1#主变保护信息.glx b/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/220kV/220kV1#主变保护信息.glx deleted file mode 100644 index 275ef68..0000000 --- a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/220kV/220kV1#主变保护信息.glx +++ /dev/null @@ -1,218 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/220kV/220kV1#主变测控信息.glx b/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/220kV/220kV1#主变测控信息.glx deleted file mode 100644 index fd4c6d1..0000000 --- a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/220kV/220kV1#主变测控信息.glx +++ /dev/null @@ -1,255 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/220kV/220kV高压一次主接线.glx b/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/220kV/220kV高压一次主接线.glx deleted file mode 100644 index fca9f64..0000000 --- a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/220kV/220kV高压一次主接线.glx +++ /dev/null @@ -1,1355 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/ATMT小窗口信息.glx b/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/ATMT小窗口信息.glx deleted file mode 100644 index ac004c7..0000000 --- a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/ATMT小窗口信息.glx +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/FAB2A/F23-1串口通讯图R1.glx b/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/FAB2A/F23-1串口通讯图R1.glx deleted file mode 100644 index aa87e19..0000000 --- a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/FAB2A/F23-1串口通讯图R1.glx +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - - - - diff --git a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/FAB2A/F23-1低压U380一次接线图U101H-201H.glx b/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/FAB2A/F23-1低压U380一次接线图U101H-201H.glx deleted file mode 100644 index c595cbe..0000000 --- a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/FAB2A/F23-1低压U380一次接线图U101H-201H.glx +++ /dev/null @@ -1,594 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/FAB2A/F23-1网络通道图.glx b/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/FAB2A/F23-1网络通道图.glx deleted file mode 100644 index 18a2873..0000000 --- a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/FAB2A/F23-1网络通道图.glx +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - - - - diff --git a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/南区开闭所/中压主接线.glx b/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/南区开闭所/中压主接线.glx deleted file mode 100644 index 0ff345d..0000000 --- a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/南区开闭所/中压主接线.glx +++ /dev/null @@ -1,445 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/南区开闭所/低压TM1一次接线图.glx b/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/南区开闭所/低压TM1一次接线图.glx deleted file mode 100644 index 04808c0..0000000 --- a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/南区开闭所/低压TM1一次接线图.glx +++ /dev/null @@ -1,328 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/南区开闭所/低压TM2一次接线图.glx b/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/南区开闭所/低压TM2一次接线图.glx deleted file mode 100644 index 491a688..0000000 --- a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/南区开闭所/低压TM2一次接线图.glx +++ /dev/null @@ -1,137 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/南区开闭所/低压主接线.glx b/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/南区开闭所/低压主接线.glx deleted file mode 100644 index 3bc11ce..0000000 --- a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/南区开闭所/低压主接线.glx +++ /dev/null @@ -1,886 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/南区开闭所/直流屏图.glx b/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/南区开闭所/直流屏图.glx deleted file mode 100644 index ceae063..0000000 --- a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/南区开闭所/直流屏图.glx +++ /dev/null @@ -1,287 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/南区开闭所/站内布置图.glx b/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/南区开闭所/站内布置图.glx deleted file mode 100644 index daf5a73..0000000 --- a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/南区开闭所/站内布置图.glx +++ /dev/null @@ -1,81 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/南区开闭所/网络结构图.glx b/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/南区开闭所/网络结构图.glx deleted file mode 100644 index 3c95e03..0000000 --- a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/南区开闭所/网络结构图.glx +++ /dev/null @@ -1,139 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/南区开闭所/自定义顺控.glx b/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/南区开闭所/自定义顺控.glx deleted file mode 100644 index 102f7e4..0000000 --- a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/南区开闭所/自定义顺控.glx +++ /dev/null @@ -1,354 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/南区开闭所/视频监控.glx b/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/南区开闭所/视频监控.glx deleted file mode 100644 index 46f9adf..0000000 --- a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/南区开闭所/视频监控.glx +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - - - - - diff --git a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/南区开闭所/设备监控.glx b/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/南区开闭所/设备监控.glx deleted file mode 100644 index 0688db3..0000000 --- a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/南区开闭所/设备监控.glx +++ /dev/null @@ -1,144 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/南区开闭所/进线监控.glx b/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/南区开闭所/进线监控.glx deleted file mode 100644 index cc359e6..0000000 --- a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/南区开闭所/进线监控.glx +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/南区开闭所/通讯状态图.glx b/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/南区开闭所/通讯状态图.glx deleted file mode 100644 index 34cbf1b..0000000 --- a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/南区开闭所/通讯状态图.glx +++ /dev/null @@ -1,645 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/南区开闭所/通讯状态图一.glx b/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/南区开闭所/通讯状态图一.glx deleted file mode 100644 index b641fd9..0000000 --- a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/南区开闭所/通讯状态图一.glx +++ /dev/null @@ -1,140 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/南区开闭所/通讯状态图二.glx b/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/南区开闭所/通讯状态图二.glx deleted file mode 100644 index 9706169..0000000 --- a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/南区开闭所/通讯状态图二.glx +++ /dev/null @@ -1,241 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/实时监控/10KV中压柜.glx b/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/实时监控/10KV中压柜.glx deleted file mode 100644 index 56f3d4d..0000000 --- a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/实时监控/10KV中压柜.glx +++ /dev/null @@ -1,351 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/实时监控/BMS1.glx b/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/实时监控/BMS1.glx deleted file mode 100644 index dd0b7af..0000000 --- a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/实时监控/BMS1.glx +++ /dev/null @@ -1,838 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/实时监控/BMS2.glx b/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/实时监控/BMS2.glx deleted file mode 100644 index 090c4b2..0000000 --- a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/实时监控/BMS2.glx +++ /dev/null @@ -1,838 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/实时监控/BMS3.glx b/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/实时监控/BMS3.glx deleted file mode 100644 index 9beb764..0000000 --- a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/实时监控/BMS3.glx +++ /dev/null @@ -1,838 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/实时监控/BMS4.glx b/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/实时监控/BMS4.glx deleted file mode 100644 index 9e193fb..0000000 --- a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/实时监控/BMS4.glx +++ /dev/null @@ -1,838 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/实时监控/交流馈线柜.glx b/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/实时监控/交流馈线柜.glx deleted file mode 100644 index c02f030..0000000 --- a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/实时监控/交流馈线柜.glx +++ /dev/null @@ -1,370 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/实时监控/整流柜1.glx b/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/实时监控/整流柜1.glx deleted file mode 100644 index f2aa2a3..0000000 --- a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/实时监控/整流柜1.glx +++ /dev/null @@ -1,499 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/实时监控/整流柜2.glx b/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/实时监控/整流柜2.glx deleted file mode 100644 index 73f1ef3..0000000 --- a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/实时监控/整流柜2.glx +++ /dev/null @@ -1,499 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/实时监控/整流柜3.glx b/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/实时监控/整流柜3.glx deleted file mode 100644 index c78494f..0000000 --- a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/实时监控/整流柜3.glx +++ /dev/null @@ -1,499 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/实时监控/整流柜4.glx b/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/实时监控/整流柜4.glx deleted file mode 100644 index 882fd99..0000000 --- a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/实时监控/整流柜4.glx +++ /dev/null @@ -1,499 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/实时监控/移项变压器.glx b/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/实时监控/移项变压器.glx deleted file mode 100644 index 6f8bbd5..0000000 --- a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/实时监控/移项变压器.glx +++ /dev/null @@ -1,563 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/布局图/停电区域.glx b/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/布局图/停电区域.glx deleted file mode 100644 index df438ca..0000000 --- a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/布局图/停电区域.glx +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/布局图/全厂骨干网.glx b/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/布局图/全厂骨干网.glx deleted file mode 100644 index 9aeb915..0000000 --- a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/布局图/全厂骨干网.glx +++ /dev/null @@ -1,68 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/布局图/南区汇聚网.glx b/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/布局图/南区汇聚网.glx deleted file mode 100644 index ed23e48..0000000 --- a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/布局图/南区汇聚网.glx +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/布局图/接线图.glx b/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/布局图/接线图.glx deleted file mode 100644 index 477644e..0000000 --- a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/布局图/接线图.glx +++ /dev/null @@ -1,576 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/布局图/铜排监测.glx b/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/布局图/铜排监测.glx deleted file mode 100644 index 049841c..0000000 --- a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/布局图/铜排监测.glx +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/布局图/首页.glx b/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/布局图/首页.glx deleted file mode 100644 index a345a1d..0000000 --- a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/布局图/首页.glx +++ /dev/null @@ -1,314 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/更多设置/容量管理.glx b/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/更多设置/容量管理.glx deleted file mode 100644 index 64e262a..0000000 --- a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/更多设置/容量管理.glx +++ /dev/null @@ -1,130 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/柴发/柴发1号单体监控.glx b/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/柴发/柴发1号单体监控.glx deleted file mode 100644 index f25325b..0000000 --- a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/柴发/柴发1号单体监控.glx +++ /dev/null @@ -1,168 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/柴发/柴发一次接线图.glx b/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/柴发/柴发一次接线图.glx deleted file mode 100644 index 7fddfa2..0000000 --- a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/柴发/柴发一次接线图.glx +++ /dev/null @@ -1,535 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/柴发/柴发站内布置图.glx b/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/柴发/柴发站内布置图.glx deleted file mode 100644 index c485258..0000000 --- a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/柴发/柴发站内布置图.glx +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/母线测温/L10(203)N-01(4000A).glx b/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/母线测温/L10(203)N-01(4000A).glx deleted file mode 100644 index c0e959a..0000000 --- a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/母线测温/L10(203)N-01(4000A).glx +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/母线测温/母线测温L10.glx b/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/母线测温/母线测温L10.glx deleted file mode 100644 index ccb6c9e..0000000 --- a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/母线测温/母线测温L10.glx +++ /dev/null @@ -1,236 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/温度_backup.glx b/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/温度_backup.glx deleted file mode 100644 index 215cf8b..0000000 --- a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/温度_backup.glx +++ /dev/null @@ -1,1468 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/电压_backup.glx b/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/电压_backup.glx deleted file mode 100644 index 5a6a0e4..0000000 --- a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/电压_backup.glx +++ /dev/null @@ -1,2368 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/配电盘/I-Line盘.glx b/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/配电盘/I-Line盘.glx deleted file mode 100644 index b8e1043..0000000 --- a/PSCADA/ECMS电厂行业模版/data/pic/old/示例工程/配电盘/I-Line盘.glx +++ /dev/null @@ -1,233 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PSCADA/ECMS电厂行业模版/data/pic/old/系统设置/控制策略.glx b/PSCADA/ECMS电厂行业模版/data/pic/old/系统设置/控制策略.glx deleted file mode 100644 index 3a1bb98..0000000 --- a/PSCADA/ECMS电厂行业模版/data/pic/old/系统设置/控制策略.glx +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - diff --git a/PSCADA/ECMS电厂行业模版/data/pic/old/系统设置/文档配置.glx b/PSCADA/ECMS电厂行业模版/data/pic/old/系统设置/文档配置.glx deleted file mode 100644 index 5cb57c0..0000000 --- a/PSCADA/ECMS电厂行业模版/data/pic/old/系统设置/文档配置.glx +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - diff --git a/PSCADA/ECMS电厂行业模版/data/pic/old/系统设置/用户管理.glx b/PSCADA/ECMS电厂行业模版/data/pic/old/系统设置/用户管理.glx deleted file mode 100644 index 3c5b1f5..0000000 --- a/PSCADA/ECMS电厂行业模版/data/pic/old/系统设置/用户管理.glx +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - diff --git a/PSCADA/ECMS电厂行业模版/data/pic/old/系统设置/用户组管理.glx b/PSCADA/ECMS电厂行业模版/data/pic/old/系统设置/用户组管理.glx deleted file mode 100644 index 3506045..0000000 --- a/PSCADA/ECMS电厂行业模版/data/pic/old/系统设置/用户组管理.glx +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - diff --git a/PSCADA/ECMS电厂行业模版/data/pic/old/系统设置/系统设置.glx b/PSCADA/ECMS电厂行业模版/data/pic/old/系统设置/系统设置.glx deleted file mode 100644 index 56c9b4b..0000000 --- a/PSCADA/ECMS电厂行业模版/data/pic/old/系统设置/系统设置.glx +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - diff --git a/PSCADA/ECMS电厂行业模版/data/pic/old/系统设置/轮询配置.glx b/PSCADA/ECMS电厂行业模版/data/pic/old/系统设置/轮询配置.glx deleted file mode 100644 index a4c2eee..0000000 --- a/PSCADA/ECMS电厂行业模版/data/pic/old/系统设置/轮询配置.glx +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - - diff --git a/PSCADA/ECMS电厂行业模版/data/pic/old/视频监控/四宫格.glx b/PSCADA/ECMS电厂行业模版/data/pic/old/视频监控/四宫格.glx deleted file mode 100644 index 796bb33..0000000 --- a/PSCADA/ECMS电厂行业模版/data/pic/old/视频监控/四宫格.glx +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - diff --git a/PSCADA/ECMS电厂行业模版/data/pic/old/运维管理/交接班管理.glx b/PSCADA/ECMS电厂行业模版/data/pic/old/运维管理/交接班管理.glx deleted file mode 100644 index 34a05c4..0000000 --- a/PSCADA/ECMS电厂行业模版/data/pic/old/运维管理/交接班管理.glx +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/PSCADA/ECMS电厂行业模版/data/pic/old/运维管理/工作票管理.glx b/PSCADA/ECMS电厂行业模版/data/pic/old/运维管理/工作票管理.glx deleted file mode 100644 index 0cce153..0000000 --- a/PSCADA/ECMS电厂行业模版/data/pic/old/运维管理/工作票管理.glx +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - - - - - diff --git a/PSCADA/ECMS电厂行业模版/data/pic/old/运维管理/挂牌一览.glx b/PSCADA/ECMS电厂行业模版/data/pic/old/运维管理/挂牌一览.glx deleted file mode 100644 index 5c791f9..0000000 --- a/PSCADA/ECMS电厂行业模版/data/pic/old/运维管理/挂牌一览.glx +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/PSCADA/ECMS电厂行业模版/data/pic/old/运维管理/排班管理.glx b/PSCADA/ECMS电厂行业模版/data/pic/old/运维管理/排班管理.glx deleted file mode 100644 index 6c9809a..0000000 --- a/PSCADA/ECMS电厂行业模版/data/pic/old/运维管理/排班管理.glx +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/PSCADA/ECMS电厂行业模版/data/pic/old/运维管理/操作票管理.glx b/PSCADA/ECMS电厂行业模版/data/pic/old/运维管理/操作票管理.glx deleted file mode 100644 index 4f7d742..0000000 --- a/PSCADA/ECMS电厂行业模版/data/pic/old/运维管理/操作票管理.glx +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/PSCADA/ECMS电厂行业模版/data/pic/old/运维管理/模拟操作.glx b/PSCADA/ECMS电厂行业模版/data/pic/old/运维管理/模拟操作.glx deleted file mode 100644 index 8550093..0000000 --- a/PSCADA/ECMS电厂行业模版/data/pic/old/运维管理/模拟操作.glx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - diff --git a/PSCADA/ECMS电厂行业模版/data/pic/old/运维管理/置数一览.glx b/PSCADA/ECMS电厂行业模版/data/pic/old/运维管理/置数一览.glx deleted file mode 100644 index 19dd139..0000000 --- a/PSCADA/ECMS电厂行业模版/data/pic/old/运维管理/置数一览.glx +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/PSCADA/ECMS电厂行业模版/data/pic/old/高级功能/协调曲线.glx b/PSCADA/ECMS电厂行业模版/data/pic/old/高级功能/协调曲线.glx deleted file mode 100644 index 935f2c2..0000000 --- a/PSCADA/ECMS电厂行业模版/data/pic/old/高级功能/协调曲线.glx +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/PSCADA/ECMS电厂行业模版/data/pic/old/高级功能/告警策略.glx b/PSCADA/ECMS电厂行业模版/data/pic/old/高级功能/告警策略.glx deleted file mode 100644 index 67df961..0000000 --- a/PSCADA/ECMS电厂行业模版/data/pic/old/高级功能/告警策略.glx +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - diff --git a/PSCADA/ECMS电厂行业模版/data/pic/old/高级功能/告警管理.glx b/PSCADA/ECMS电厂行业模版/data/pic/old/高级功能/告警管理.glx deleted file mode 100644 index c5d702f..0000000 --- a/PSCADA/ECMS电厂行业模版/data/pic/old/高级功能/告警管理.glx +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/PSCADA/ECMS电厂行业模版/data/pic/old/高级功能/多媒体.glx b/PSCADA/ECMS电厂行业模版/data/pic/old/高级功能/多媒体.glx deleted file mode 100644 index 317b78a..0000000 --- a/PSCADA/ECMS电厂行业模版/data/pic/old/高级功能/多媒体.glx +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - diff --git a/PSCADA/ECMS电厂行业模版/data/pic/old/高级功能/定值管理.glx b/PSCADA/ECMS电厂行业模版/data/pic/old/高级功能/定值管理.glx deleted file mode 100644 index 8a8a744..0000000 --- a/PSCADA/ECMS电厂行业模版/data/pic/old/高级功能/定值管理.glx +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/PSCADA/ECMS电厂行业模版/data/pic/old/高级功能/设备屏蔽.glx b/PSCADA/ECMS电厂行业模版/data/pic/old/高级功能/设备屏蔽.glx deleted file mode 100644 index 146117c..0000000 --- a/PSCADA/ECMS电厂行业模版/data/pic/old/高级功能/设备屏蔽.glx +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - diff --git a/PSCADA/ECMS电厂行业模版/data/pic/test1.glx b/PSCADA/ECMS电厂行业模版/data/pic/test1.glx deleted file mode 100644 index c7857e1..0000000 --- a/PSCADA/ECMS电厂行业模版/data/pic/test1.glx +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/PSCADA/ECMS电厂行业模版/data/pic/界面框架/interval_instrument - 副本.glx b/PSCADA/ECMS电厂行业模版/data/pic/界面框架/interval_instrument - 副本.glx deleted file mode 100644 index 219231c..0000000 --- a/PSCADA/ECMS电厂行业模版/data/pic/界面框架/interval_instrument - 副本.glx +++ /dev/null @@ -1,485 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PSCADA/ECMS电厂行业模版/data/pic/界面框架/interval_protect - 副本 - 副本.glx b/PSCADA/ECMS电厂行业模版/data/pic/界面框架/interval_protect - 副本 - 副本.glx deleted file mode 100644 index 409fed8..0000000 --- a/PSCADA/ECMS电厂行业模版/data/pic/界面框架/interval_protect - 副本 - 副本.glx +++ /dev/null @@ -1,521 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PSCADA/ECMS电厂行业模版/data/pic/界面框架/interval_protect - 副本.glx b/PSCADA/ECMS电厂行业模版/data/pic/界面框架/interval_protect - 副本.glx deleted file mode 100644 index 5499bab..0000000 --- a/PSCADA/ECMS电厂行业模版/data/pic/界面框架/interval_protect - 副本.glx +++ /dev/null @@ -1,521 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PSCADA/ECMS电厂行业模版/database/accuml.xlsx b/PSCADA/ECMS电厂行业模版/database/accuml.xlsx deleted file mode 100644 index e2a6150d2779ba8d9b2293251c02b8a9a9e54c2e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17375 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 diff --git a/PSCADA/ECMS电厂行业模版/database/accuml_map_to_fes.xlsx b/PSCADA/ECMS电厂行业模版/database/accuml_map_to_fes.xlsx deleted file mode 100644 index 98befb36eae104dd02e9090fcd06d95ad20b158f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9744 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 WG%;KUf)oxn=2_o->r2hw=x&om9 diff --git a/PSCADA/ECMS电厂行业模版/database/accuml_temp_define.xlsx b/PSCADA/ECMS电厂行业模版/database/accuml_temp_define.xlsx deleted file mode 100644 index 9c79ac99b9656d081c1b1eaf212fc43c02c853ab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14764 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 F{ttR1Rh|F< diff --git a/PSCADA/ECMS电厂行业模版/database/analog.xlsx b/PSCADA/ECMS电厂行业模版/database/analog.xlsx deleted file mode 100644 index 4c16529a9453684ea6f3901c6931efce3dc94a57..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 84629 zcmafb2{_c<`@W)N&z2%8gi^GiGRD4^wPeYjow3FY1{0FVF3G+YW#7|SBD;uW8Oz9C zSti7gW&UTT_kEN1{r>*fHIA+`=QH=YpYxpiKIfTA^9DHu3)z0MLu5(urwz}>vP9|Z zBO}{?fQ*cpjEu}c&dJfu($URC+tb^y!|IL?Sifq-lRs{ysIUXuenYZ&iy>1{Q8e$ z*_U$ezIbu65Lv^a?-BR*`8iQ`@2ej7Z+1G|jkxi%2F_H^ZH=F6d>DI=)n7F5I!hc) zHcGREPDax*F(8)8LxIY0@w7@Y};Ows~YX9Tbouca9-KHJT>Bkbi98-on;bjJ*)2;ib5E z>}}~I-tF0^>G~B1efSbzgxOl|L#Mb4diht^YNLmDT4?&k6);@e;b=m?l<3dv3f+Zg zK6dnO9E6uwN?L6C)76n_{;>>Se*`wZ1mPbCKaAkV!pU6I)yesuu(^|~C2QRRt2uY;r!17xy-;aG+HB&R6}p#Pg@Q5@J>4dPqhR05N2UT< zz6^Kkj}0ulN?OFSG=7FS*PEYb<%T9s}MekrcaY7c?Nxb2yzT+L_ma zN92zC^@i3Yr1?lkygC<>&mNUdesHzevR9Ws3@+`h%87V9>U*&ZYo%05H=tV0j-8E9Fu9T_z6QHxB?VyZ4j zU(r=sA;yL@p|^I{aWpG81>~X*jc6ZOPE+Uh%oW{aRt+BxDUOb6pUMiK&apk78N|PQ zf;sI=?OZ>*)jrz8Ivct>ZZPx&Rm>jsfii-_+nj>KZU2p=c$0{ z50r-*mm{voXt;8FCXtXAx-;jncPX#iF>cHPs;c|R$Y{WC6IV;vJz*hYn;$)Vo&4hA zhqwb{r{4Qq8K&m`2y?ogj^Lgn4{e+G8|{2x@oKp8%ApLJ=ZCzm1ra7Wo-H`0D6T4A zT%D)Od(6b**-?Pc_lx^k(?K@}g0e0(@slSjdwded zg!8E$pj`I+=$xeKddz^cn|?4F`((N%TPDRnM$1H(^H;& z+4o-sd}EF@9V26Mp3Y>ctUCK+K;uN){Qk~#@UFaM$R}jk zmv2^=5}^Jo?RPsL=dxPg&tG6!wA;Cd-uNDMS%V4k^1N&(!{-gPl^vt$uW93sWG9bY zPb=Jz7V$mOP)UCDYvKH%que#_iZ`7{)z^Fc=Dk%f-FcGRcjxHK$Sb#J{RgwdiW`@-)`<%13ljtyV_cH-sK*JuuMirn9Lkn zZ$g(4I{4}GNMcyJQ@ZMUme$)gTEhq{p_t?s(RUWQ$(T6uZfTt2Su>+Nq;AJGcIc&; ztc6mSFXWn|S%!8igZlWpen;)KGZemh(NDN;lV$L#77N&XdsmW`5_nD|Z!F7C%}1

PQM9sC`v9V!45{Js0$nj_j)M!-T8!GPm4&C8#|uX6hVPDF58^KD~SzqhO)M zzy@Idwcx+@0K&=D{;rdgJ#pcG?T4rj*Bhm2n{ocQ3sa8SMl$m7H*Ab+uU7Xxj4!)Y zk$fzAJ=+QQD91>z@m-26)AD95@9^lR#7kXXu3IAA+M)uXLK_$952m1lat$=kiFrYu zKRS5CVz4}pZCEKO@5w28bF13|QFIhh-r1t)`=!%oEkmF8@+ag!d2%p0A2PUa^+kb` zNdB>Iu8VzGjr9C$xKKNh zCG_Mpuh{o$TWLo06gk5|Y=o0WVOrKnWD--1pA*v{rX^@GVR_@pNB!GmkNt|DRQ25% zQD(G^v6>M7dMjM-)%$>_*OK4NP&fzF`t_YmD(bShnyZ_3;(mxtB-H!$J%%Gl=edgslIBq`7j~ zMKSmydGbE|c+LvlBSTxe3Vwq zD@Tu;b$qAiOx%=Z&hp%uDjgUyJaMu$j%@^qdMq)3a=Jou$vrLoP4Y^kkf2Gmxs)X&if$zj3{K}YH*c3^Dlb2e%{Kx$_>+hl7|iLmpy zQ0nJE9lmZyxNgPT#CH|ty`3psyFP<-(p~>LP`B9=QM)mtvD1gIBdju@el%(LeqU`d z*=b{w@=4rE6t4T(#!&0IiSk`l8YBGFsQo!XiCUkd+@6Z4!=5rSK} zg}nCO8%{f&5vcX1$HJ&}C)9G2MxAG6tFFn`68I40P9f^Yq}0aG%(2bn6TTZQCWN1L zb@-SQgl`#=Kd}H9=esRMm~TO?cSc}$oTeuyQicH2@w)AwiNYw?*IOv5pF7Bi^yc7n+nvKYp1c6Pjb`2trUe0cVDjN3rmqs>LpXx<2Pt+L^# z1%yxhYrHYP{)G>7G)P_2Zmq6Pq`HA;jJFVl zaeS{O35gu-NW_z~gSekwOERlJe+&#fj(C;IgYv0a&r0k7!^e;{^7WGig={8nv(>f6 z-nT~y#7{~5wm~y6aKq!~0$V|0+-K5fHXsY*cs)j(4zp;l(1JG~MOS$fI4w|gD{NBh zGn93Bh>6dJ_1I?572JjR0)~yL$0rCqg@n`-KDbs0Ht z8S&WU-Lk{g&D%dG3sI{PeyG*e)UD4!PK4s6wJ{nK)KXun?~>U141TRNF164)cLV25 zNUR(ttk0Pw?|X{u*I#Vf>YXh#aljXf*^h^OfC$!NQEMB+a@4xW9_U!&2Yhz^57*i4 zX=7-d(As8llVmbZ(!}Y(Pxw&G{~? zjN4M9)lb!3*Hp#Y^Jh#>mCkNwZ}wvB&@961vPGYV4W@H7@P#QiQq%QuCJean^^IZv zFMWzXnMF2zFd4!#rEDLtJG?4!3){$vjbZEARn;ZoVtw2g^YFlm#%!Gr<<8D9YAIv~ zGq;plQ@f%OIQv0TUE`(qP932KZ10vj;q3t@>pqj6Z4<(T)K=h+6Se+4zHf|telCIi zzQ#GGE3`ux*ajk@xY;M=g)0A;x?{YNj3e0M#!3^4M@Dh@u?2iC^Y&M#K;f~#ahYWrTufDC0h)g~SkrPV{Mt!uZK{hRLd_WjL2@6X;Y_(}}U8v32HKX;-y6sl9a*^l0 zPD!nNo>~HBHG#5oo6x69eZQ-u)MRU(u-%0EiIXDW2-z(A>uLAP(E6F~_j4w!Zd@WG z-+$pG8Tm;A>52!i0~q!aItznVxQy2gZ%)`z)6(~np_in+ch80L?)~)ytD51auXdQYayx#fc2<0<8V+pgxtn%SUu7~8Q zC{p%OaLe3RzZOB^ClDkp;xC;{O)a;Yi;v>v^T$ zJ`mP~>$Y8ZtdO`lLx|=O;3^^yktsNa=_w7t4?J8sbT4g zKp4Mow6Qe@?cll651B_>@6v`ky4?3XaS9>>?|R@j=Ib)nBz?rxl!m2MexLZ11oMHC zr2Uvj`#qVcS+be;)_sN?cl8bfBcL-31JR{FEIBxn`sZ~8Pna1U_(X-RX z1(@i&v)=_uOJ^ss?U#uPNIUA6rn=uh1K8WY;bVzM&RH8N`#A!t?(~4X?m_T(9yD;mB zk{uxqw6t9T!dCTV7KQ@6+Dv|EQTR3-O#XhpuB*y{4C3?0U& z;xBX`B6n-`1fACoCNLfx;yvoDG2bd_EBzg#x)mo|6KMUxcj*IRg^lpF4z+n=$EjFo z)1ukmMEG=opPek;*4exTXX8xeH2IkcJ5ztUnvQ~+jYa5;q1Njc&T`{V8%D!Ujr6gm z!rq#ebs3|(5H_z3%O23ZOFV8fuSBiEl5!@gQ|M*f;S7W=eo+-CGtqo8CfS1yJimCb!G% z%vb5j&Yj=#exVeY96CQGR#Ms%B@C$;&N+Dk6BRk%s{F!PW<0uqHPD{=3X9{JktJ@lcd*R<7(3Rga%v@3G_8pFY4V63T&%r>9KZgY$2Oj8qdlrZb=<$kIlM~pD1XJ>e$m6Fxv zKpN^emI498Td&idZ;UTCA6|5AP<9c!V~u-w+M2&IDd@_z?!gF_6afi{cCwMSvn)5H zu3qCzH@rEfi}Pof`Y8#B;3P&ZQvw1{Nxtso%R`8iwSwATHOq!Vs_^r$#@UYW4KaRY zANZ6cBs%qsq2}u>XNB>E2D(54YQ&X?&T-6&N6LD{kyqwrAXSH;)op&wzFFVp$1&-2 zJ}Q<;k?Y+~-+8E6GM2LL1zj(@b+xDKdI-E%uP40RhW{q&-tGRZwWocnS>jd93mq*c z8~Yzc-spMNL&kl{{kiyZ24`?j_O*c zTYbFHM+Z%Jn;Vldv-Cc;*@s^w$6j1`q4k0j(pzA2_>|Mlh5X#Yo9<2F%&zu#L{EIC zIFt-R+8f?zt286>XGpt(eI^FFTGL1&<+R&Ss5^$8k~WvR>5=h$zB}uw2__H8^EEC{ z{K-oqMe*`m>z}%==fHc9_JzmV>E2F?M2TqS59=6}Pd*rVrPE1yRV&@4FG_boIS+23 zbL(}Qv&wi#gJ>WJbtTK9VeGwz)}mif_Isep{({06iI?RQp=!%-9UACre+};y7zj_c zAJ8U3_2kj$8&xFFPpIe}9lVBgzD^MSuWeqVy2Jo!XKB;)W zhK^WR-~G?%k(8XuzL=PWwzjn?i#^PyJ`CDBO<4du{5$oEI0)wVnnA@eSB$^o>&6$p z){E&zD2j2pE%vmoQS%HN9K-ms^9+|pEhJO3EaQH@wZ?K05l3phv`auFBd%BI z3Sh9;+tzvoFtscB-Nx^zU6$;fFi|tQxCPDhbzd8&0BVheLasV)_BtN+I$rj=)9iJ8 z>~;L?bpq^lXV~k`veyX?bv!n$=^Icm@G<$Z&Za0>d(mr4Fmnl#xpX6Q$slvXKC`Bp zseh9aVg^Os6G6F)pb%v<9hsfAP_JJk10J$WI1XYXw#5Rym7fTMM%Q{+unC3jv`;D%DAi^GDAuv9Lg zh*cY_Nv&C~PFUfE(wf-#h3t!^&_s-}rIld&FDNgF%y7p62PYmI6L_@|;Pqi`${M*` zx+hnFhOx0K`c?o9lbW|iR;BLJu*_7TVL7b~aV=gVWxx$09#-fc9m2MEuk{`sN}+Qo zyi_(lU0kaN-iOEychEUFncE=0=b3n2D*GB$C~<6vMM%K#=Iab+weg1y=L69ka<6Hq zdE`hz6f3J4>E0d0?%J$NnopEK5ZQ;orc;s|7Nm7>vb5Q>rFHlKfR7C=FYB4)cbL~C zr!P!Dtf;(L27Q(y3_UiKLhGRMP;8HG>0aXxrF9_2aIkyLRc?0-<%V?+@PEskF6N?h zkoY>1nZCdZKJHT4w#dT@Yq{ZES_eq(ycV0p_5+65&o>XlYZWcGF#?BwM0c_L9K+?Rfu|PC#=u=KJ({? zwY0oeluV`M!I(YEcT(qx2_=s(SU#VlYbDcc+gAT1<~?a)17FM1#jq?BE{^UF;I8Ce z7@2WPNZB#*T1kMei|kg9ypxfSC+s^sDbgPEYJ-el;z`TFk`i)#j9(t?&!`%G zcU3>Cf&mAWcSTRm*L}J2TQSM6W0nOI-JN*1mk00bh^4r3b+^+~3qthtF=p(7kfK;l z{}ASh2tKd5Zyn}xMZgW(Np3JibOWj>3(9{<$*ET021Ipccz69zH=xh4_{$AC%*n+u z9v?lW`5^*H^QO}lLAFWrZ`I+C*wr6_-Q5xXq~)OvC3RJFKKtSO+&4X8C;1_fF`TV! zdvR5p-?gEUr8TqNh$OWGoL#Ux%MO4T+3a+jIOBQ60^ZJ zdRKnpKIkNA$vr@X*V7ZG9PzZ}Akhd`?q7#%3SjE5x6uP5@Qa;~6wNyv*RuAM^GpOC zhMtv(c2Zj5#s5a@()d5oEC5<713(igSxQ^EuL##Xim7jJrSCn8@e7;R6v_GrtqE{D z4bV<1qysc{I4P8Sx&1=RB5~7er*}QGo7))(3qTVfqPdaK)Zv;}0UF?T72}sYuPK_P z`J`p-2$w(vT_4~k2qG!15D3t8;3owkk+FNwXj}y$NA-WDV=U*C&e}ic=Gpr?a7{f- zx}+f&hh|4}W*4~~MkXC({&|RMrX^*6iQKJpS!1qY1CKNbF%gJ%YZI*R0U0YD*ww)p zzs7m#yL)$aYty_buN5g9@4_P=?>Z}xhhSt*Sp}^*d%~nIb3}+U*jP~p#&hPqpT7_m z&xv^-e)h6~)?ZLVR6|-qHcA{an0b7=R+t09GD7gliui>S^x|2L=#Dw~#|JfF6DDK12@EPPbrVZleSYK#^ns z-2aCG_#782%iL`M$9qTy@ERBZ577WT<>eq}X%}oPZCY$;7g_-@(EtX&00YQOPUoC{ z2rs)>#sdt1=h#pb?Sk@N0}%51+W=e!yTf-Iz&-HEUI+NMfF?5%4L~9zos$)O+@-Qf zk%w>#Imj!b0l;X10rYecAB7D4WdMK{3C-b8soG@#lJp!yTDuJ({FebV{7$l_5M{ znB~+uef*J+=flIkSb`e>W6gZd_ma%mIL_>)5*{Sx;+gL!abdu5aA9F>A&g+3T|RC~ zaW!3-hYAz*U|v~vZ#stbO%3$4wh#p?$OrbvvHW;X3+Y(S_BF0q@kcSxkVlem?e)Q) z_LlJ8^}#5g`Ddb`ktpt{e2BSu#oY%ZP5rc#N2Ag&h(!l;wl#)Z+}(3dzWelYgK{GY zN?{L_R^wk#Y|V-yBq%<(_A>z07~cDAFiLG+PXs`*Yvpa;H7^EG4MeDY2}I2go-$Q( zE!uPNDQ-RX>jn_|rY5wCM9d~)e!41Guo)U8Q_`J=uX^ZXg`Br*(9<|~l z^j&0bxLZ@R-2tj9RDL|YbjD3B7%xFQ8pYXG_b<&a0wJs;@!Fmfz!(13e5D_SM9sgI zA*sj0(NhaFpJ!-5%gjVca8q2}+(fCO(7ab#cE``X6c-%U8N%ecdgn4%ntW#Tpz=3& z-c|8vuf01OXg(81*oZyQe3!wRa96z7Z_Ss-i;H=xz+e$i8x^$+iR<;vT{~x>=XyWK+`IWxg}u(d{Wa zCw?Yx&cf0t+cs~mvESX5`ud|yGZ4%l@A#}0sH*OPU}`pKU4wDYibvf`ZmrrAOru%; zGeK&KAIp2hH$~1F@mIMKkE}DKYxlKux8$Vi<6>2m9cIkpB(z!aGf8t6(}vl$Npp=| z?#tBI1>Tq;=jh$u@i_%jRk`LLV=!%yy9nc+6pwOAZUu#*KPo1tt6Y*pLy5t(9el0s zI!O%XufzB~*-7y;p>tCwgdVEp7=pt%RqR}rWYw`=N0%pO1Gd34a;Q|-(A>A~I z{;Ygc&E-}S_k+ov7X?3)%rCeiu4Zn`FIE`S zT>TVZ|H5LFGBNM{9PbqX=9&C9)i=Ji`h`;MbqnJ?yV{XX#WW~n;ovMvDkHY?HUkr)smOPi`43hs|@(Y)O%aDN$6*;P<7RDOORfVFB zwooR0AtU?dd#OwtRIf}gUmJ)|np5o({qxQy^mt)%0Ha(*q!$$XX8|ZltBNH5C%)>| zTe%g01F+a_`EsQ{yogpcOKMqDfSaHMFM7IUFE(jQ!?Fs zCJ&%enRn{N2Sd9=x!h8Es=BCW#SN|vc(Tumm)=VbI0$Yt1>lD9seZ<^g{sOu|JY$? zZp~9Lz6J3Zc(Tggt!>25d*(r>B9;U<58x2H1Tqtm98i5&EJ%sQ?6Tbe@HWK-alx`V z*mI*<+p@X$L+;_!Hy_au<(Q>mhIpSrgF<<7(S2;woQTK{o`ZE=u7q8> zrAQDL+?q=|Q4rWEU<$);VE&{?eYeog>I6ePc{EwZU&x$+;W{7G zX=4sVM(!zt~t>F4jZ&K3t5=6l@$Mn0WkefG++QvoFk4j z{x=wRao8C5z!|~2$hmK4?>=s5TytU^-^b|6Y;c9+{)6o3L0KXADK>QE<2|w^Xl%%2 z5Nb#ar{!RikSp7+aLTY5>@Z)Q!z#WxU3|a@Ch?^@?XeMy5WLv6xI;t;ZpMbDVC9_> zEv^Y%6)ipuYOITQ=Rl2>?8FbtQ^(Mep+?I83TW}utvA0CrK9NapJf=DH-p47432j@ zW6)m+lwpj!n}n#@(0Wyamh5ckqQ^!V;VjDx{2A`IVZrdM$d17``}UpTe$sTLq?iUX z7zo>YtqFF$d9;m~lO08&d!X9?hAJ8K7b8J63sG~R^)LX616>qm6itK@h;}!EsQ{=s z5|nh6ugW-op!dA2CuY>VX@~kHp`b?SMOMBewGmBHGssCUb&ALtOZa zIa^?aQJ(kwrLYL2!4@HX1!@;dnA2!f`(X5f<|(!kcjo=t7H7lGPg$_Jme5?=Q#ONa z+**5c^ct~r&`}g)G^M_4ulcL5g|Th<=uA=GFsEV10DY9S5?U)Sem+<%yJ#_|NRcO?ecV8~LnzCV?c?4mHK_cDm_Lq+1D;(=i^M1_?y89k zeX)$=77jl@-7_)he}@=E%?=^z^JqO=j3xVdbkS3zS0P6xz71mE@bncwAF7vKw4CFk zD9X|1GEnXm%Ccg+xwm!Ao{WZ4p(NH~ z;d%-DwEiCX*PSkbi$<3N`5!RTN4Hxp{LV;L%Y|2w<+;e$$`u*;K>l^h%5xj~3v?>r z$<6%*FnitP{QR6~BGhSvg{+0MaTU2yWj>f?cs%U1H9ES~s1376CW-Q|cl6pYNXfaP zQlsgvT`3vT1?0cJLCTQNpl1lkzu=wW+hz{Bg7#>2a|hjuirlWDrvq*Mrbhe*3waA? zD*;%!QGJcCe%la`|5p|c{~`ZpL-UB0c=y4f0$2N8dZl0w->{^8wVi&toaMC ziYjtr%Z;*&D+CROZ(BQb2wK{g6+Fp@_rqfihWlEF3QSS8c@_@3B^84D!+XyD?9*8n zN-9V(v`4q+?~Y;q0y}Hgqll;NI%O3=`a}BRxAlhm+J_2y^@d{sY-z=Gd5Nh0K)Viv z^r)SMgGoiT(K&;*p#l=xe@H)zVn5Mn#9bLjTCy{@1MT7A-9cdguBOGeiC+^~V3$vK0^oM)yg zDjcPyslO|j=tP$bwhhHv>?vs(vD$YO=0@d`avweP$JxIsBbRjcSN|ydH2;eoaovm- zUOAWN#^xGjyOax}hswVxpCUZUxWm@bZ>L0E^(vp^aAbyTG3@j$bo5K3woiM~vF|K@ zU{nqX>hWHvoZnD3Bq+6oR~G=(OQY>n)hF z-II-WF)5+vUTYEC?n=b3jDUmP+xm*L9fS97<6GRi#zZ& zShhvwVi@w0oI;HK&>N~zr6$V`NK;9e#DZc9oJV8Nw&q8*8(-nkAbw@Su~wEi();@x zuaWNF+9m(Gj*zt~d3Yeo=I>h$k-6MTl5AYn-K@N;$HkHtcg1TpQ`ioJP z1bFGkvSE<~xVakIll6RKQ%Q|G5v?+Sh^BVPbo}N2Mq7#bKhcZ<+ExHSJMRFFBI(aZ zS)Rg6O90waxcLqA0an4k(F}^r0}XotnjRyOTlQ#cuj9X#uHYA%7AclT$`cJg5o7rm zH_cCuG61cChz2F0WskC?z)P0_S_<4;1FgU+$O5>lmTv^KqO5W(*fGc(bi9n z7Iu3QC1K=~qv8wV_7;QLU8#DxYkQ}^9A$X{f6TzvA*NjpisBDn!EfaZbzbjt?9CYp zyS?z#ttgVM12~PqQ-?PCBd+=eSGeyh_}|4SmcV)R(NTGOPIUIJ`sibALqLp&i}FUN zN_L6y!xH$d)}ixI!*j#k{XmR4hKAJ4?5_wKpw-OnuT+#LcJ=G9`~?O72#>ij+^IZN z3-d$+UZtb07{@8t9$v&!%(>7cq8vL6VjNwqcgeAwHIQS|s1rg@9e^Bb&C=yByeO(j zj4dC1QCz`cFsugT__3uyF?b)yag4!mXX}vTXX84Ug+nioiD*g1zcmtkwM^1TF_^=Z zKQuC(sF67WKqJLSg8Z-_eoJq-vwg@B2yz$z27=sFk`E+A3t{(_Z-!<8Z_6S0yC z4*lVvcl`b^$}m8CyAlhO)G8j3_m^_d>Qy2G+&S z7kqUvH0&L&e(UDkCVR58=67JLk21woNS#JjJN-m!`ZXMwQ41aqp%W)UZ@T;s! zQwyb|v8$`48Sg^OCRi@G=v>%W`eRzOriCf!oJ;G!8%A_jAzC9f>2z1fX~(3~>h(-l zy8apUo{1k9`OVn0?%5F(ueI=c*^0e48=pEkv-LsdD~zh%lzhgNG1jinJmwzW=`m}% zutfdLL-3i0&C8k>c+&|+J}$F=H^%#zoemIRQuNG)_k&La1uH%CctC6(1`oV#lo~QZ z+Sf6dP8{P)F`E#*uw->%iMgKF&6LUQf~QcBN|8`8E2j=^Oxk^wB7dr!G2x5bQwi7r z73pUb5B4^iZ+Z3ViLcOiyaJ|7&1Ou8`SuYTKQktg3se#P!`LAl`7?@#DyGjU=v4iW zsW!-82&JETu@WYD}w0Fnfah<%Gsyn`m(n74ZZCNgs{1 z+pjYwLtLU+uBzxx ziiO>Kz|JE&ivO7BzZ-qylwqI!(-Lhu5^a;jC#GCdET&WxiH%i?g=d%}em@%erm}fs zpZcXq-plGG2l+9y{GQxNPw3S{sQFXdU2e|PxGQ9{PG$)>-^_EqnWK$oAA6@Flf=^a zAB|_7BcAHXWR~7|Rw(I-W|y0X`414AK$n|SYG@Elodserubv5wX}EfZJ&EOV(vx84 zn~quxhYtuNe0tC2U(`9{xx3;+z9GXud|Yo5ADbGyX8ok0KJbRub{8fe21E>{mk%1s5m8SHBtK9+&45F4U*7`e&Bn z)SN2u#=Q^;7n??i$OI?*5`CCQkYcqQ4>p|<*Zl}#(>V65*(l|zAP-jm*plPOBLp=M zHjLx zxro-)rLOj1#OLz5>KAw$fAwlPer!53t~(g% zxU$#?31r4K6Z`)fJ{VlrD4XzF$sR>a)MrJ^xWQlqJ3lu5+L9wTKh{0TBm3UO^lIH` zY%1N`M)2X({8;^KOY|&5aRWcNRQIC&o&=B>LDEpi5z<3pkYDp5jwoivRUhQr>9P83 zu(CzQ_n%ZfJms7b)3f9kF1k%5Hv}Ve)VC~qf!O^)?l&B%+evj&QWfyDo^C|D@MF*X zV*Gb3TGY2rA8Fu~xWnabpK{{ugJh2u_3B;_#rMGo=4(p@lZ}w{1fe5<3=rk2o(iJ1wUt} zX}|quaql%VzJGS-;eNvViUFQe5Bc<&)9yRHs7DZcwHzHb{UA;=072?DijH%;CP;(T z*9UO^2x=N^n8A1Y^BzG*s^w^~#Rr7zYV`^9JUI+-SUsfTGpE6Kb@O`2Wg4uSMLjzF z0Ir1obV$VY5>KC^4l4mIf$wh^8LwZ8rG$ul=4Ag)Pv;SIuv(5Bo4ya%eIH@-_E)!% zpyu7vZy|#FuwgXc)la=eyX?cJli@V)BLv<;j(naTxH30pMloFTRPd+_Ea^-%Nwn&~lrj>D!Clz6hH-NZAY8w)oCO%lay*TKL zfYm|5win;eBd$bkFN&|BbI(3$%?$v5Rq!??+OC-?@Ml3HV{z79mm)d*X!_=2w-4e= zEyQh%^9_!E6cMzDCUpy;c8n3JQrA@TMi5sPYaxM~i_O2^T^#hOTaqKY@G{~EB}8nD zGZ7cwiO9Y+5Md_H1 z7x?P|P&*t~IU-^Rt+X(jxwfc<#OKr?KVeDT_&EWE=k?fjBwh!LK7q&9G$8SlShNyu zG!wtrgT&9*Z1OAE7NNY#L$$qr19?o~<_v}*g5rxIr8dUX#!P2!weIz~)5M5jB zECWQ>79m4u25?ZI4nW?BU^%#Hs>mF;R=~m3!>egj^dDjU9c|Vjbmd2EP3+oYOF5#j z8@v5_*9zFr}a@rxKFo*g%u=!x^?#*HGX5rr#QQFkKCZ~is$JBzG8 z!Do#LCt}agtl88d%f_HXIIaam#2Q*@b2M{%vBwur>L#k8THZXu$+B+KWph+;9wFuU zd-#X7&C^Fd@=6*Xna7~;^L5Czv6^NS-f9QL7KP^|jLvN#6!eQUW-RNm?@@Sa!l=Op zPEzZ3krH7vld#x>!hfkl{uqP)#BpsSB6iTEZeMeDy#C$kI;0?BG-4BHJPwd|4PP4* zE{;6?b^Mj-haI#vVYHO6D7u5bvNEa~(&FB+C)N3S$P%x*-I^<=-sK!*?W;kKd zeFvQ(Fvzx&Vd^wfhYTbv=5OIUULfrLPe?pR@9PLAKoLa5cZ3uhK=z+7loEV{0|m}7 z3{ZfW0>l(Bt);P=c<@hhm&bfsPO}nN*7Z~?s=Nf)ZY;KRA_^}6wz~!<;+9Xm*C(uf zETme4)gr~lpoutR^IGKPl~E0g+RgBd#l#Tqkc7|Jc5>1B+W2(&@tQeBc>!B(=J`M5 z;CJ4Vx;OcRr4qg2$L&kT-|s?7&qC8yxVk+VzEuC}9#;vEHho@A zDL4%c6~xJ;R|mOFL(`VIG(8z|sws7_e_4%ayjH0?W=rU%2h>W)IE{6zev1DM2*n&Vu^qrQBQ=lW%trp2 z4tN*9a7a;*F%xXmoK44|ML4cO1OxjR^x4Lu8TS~}%^QE%?OYUU25aD%!*`Y9@-qQ% z#AxIpzJ2!o@ozsOyOnYEs$LAtD!6o> znxKr#;0%yTKa|y+1*}B0Y;bQ*F{)9E=1_dXlH1|-mE-RZA*C0fX=_}XNQRsmN>aB> zdJU!E0#wfyXJ&|Gpk9E6+W#I}w8kYegcOJXE4qdyN8(KzJeWBM=7|yUGg=VDfa#vQhF1bw$0V;%V1MSSvE#Kgxj}(Cv|T(i!Amww)-;Z ztRat9js-OMGED9o4y!Y{drIxwB#7-c{_PIZlmNBa0{gTsD0mCsy)+ikh0^^*5oBe| zeEj_uKJEKhKrF%6yce(Uzk`$}K+_0Z-6)1Hb(BBG$baJYZR76~yNQ^kjqNA~ogL&+ zJitUTOzs*!PsF@2^zJ_~2bab&NtiACD+!-%X6lpz30%K~zm`TYgTU2;iuh8e^kaaxkXz-c)mzpM_?uaP@dbe5qD)!}5sZ7?bgjx{$xRGxwj?X-Agb z1X#;ltnJ9-x>%mGIL27~qjsdl^gj-F9OD@=U#$ekW;T09Sal(jT0J8;XQ6zY*I7=) z@Pcf5_K(rw!_|B!}5wXi?csOuTVffZ&J-2gO-ZRF0U^$y; z`KZT?uJHP+)Pv>RHFbe%B^E3XHI6Y5PwL(l7t~U7F1rNQbBU`Z44-oW#Q1j@0KGUp z9p>X5V6R36;#(V#7UNL62Y4I4>XzUK_(4Xj`R#FeW01cdz}<9!_5ybceZ1fGny-{$eW%PFpLZlk&C5`Sr!( zm!{l>RK%+k^YO%Esw@rQCPfkRP_+KP*7ENq-gJMG0TktVwGue9gbU)d(yLp*nI&VH zOUpANr&>t|Ykun!Mavp7z?0CDB`%Cd1p6d3;TYI3lTi0i{14!6Fa8pJuaXRvn^%GA z?^APx{p3<*630;`;~#V(WoM!3D=FQc8egjU-LTB0?ks0)OzcVuuo{uYYW~2L6ks*~ z3?1~;09FHq8Z#&9d1;)h;eU#aQS{QV`iM+W_R`?|3cbdu#v)3*Vc7Y{T+R%ZMUw7O zIWniy*HSc*8aXxmpRmk!II42|gCV5s0`ylma2I`BT-$Y|#^ez4rVY;4@b}Q*a(q?~ zHU?SEceNOwGKkceui+2Fr@XJmi$vj5#IeYap11^X68*>{THmIM(xBdk>VL(>so|dF z@Rp4+58@x8kV<{Nj(=^8c@w8HS;v2w09Bi+%MK@`xPkLN-_-+Pqk{j0ia(H$lDCCt`7&3; z^b<$5jeoF%lqEpZ2`SwujW2clKgO6z-Qc+Y0UYxQ z(fma@%@h+-22mOyz+r?G z;MgKjgcR`|B-5Kwg}-bjX=( z0!=4%>x0zHdyluUtj%^=fu4Df7jgVOuyF>xMR~8kuI7imKXW23xD($vgZ%gm*Y@69 zgE=1e(!4f1BjXYAtVFzFoCTFE4{*U?yiVOm@t=A7cRIgprKyUJT}{c$18_C`fvYLa z`S=I@NZC1P`fAFcSDeXM9x90O69s<-me~LooR7~c#>T|2rtp2n*2VR8iw0t1m+>a%d=^ArwROm8&Y8%1eH^SY?lqG^sQ9Q9Ss2j|5F0E=pe;> z{Yq!O!`Y61C|oj1Fy`8JiC+4ox~0J!OnAw&ll@}qtNk^N17mK41;VP-L60H63ENWQ z>+3YK4kvP#4@Rv#$P$_0pWPYq`{j_7t#?1Ni0qW;0ge2h4AHjmb{61O!3A^^A(xqnSjtv%43NPm&8t3z$9A-y(53U;TwI6 z*Ff}yMea<11lBu}wUg4bde;;2i40S}s*2#Fs@6~5TauZX2*^7l*=p59>6tMRFarLl z9?Y~+D2}`##j$HM+CGb#p-~TOSOPH}m9@)lP_99zk zWZ$yOSVD_Rl8lIqA!93BmQbORy;PDxGbY(0B6^ZBC`Fl(hZ+0-&Io;b`aS>G>%5Np zI`@9&eD3|+&pq#R?ztbOGFO^M7;+W#ahGwVme#Do`G&GO=dco0fpqd^G?au3btTU&E~MsmUMPw`+j zyrkNPSA<`T`tF^62hZDqvEL@?+IwYmO6YoN(dL#BhFs;{74Oo`El0PC|7+~k z#s{;r)US+Ugbtp+zgbdR%8IXHoY(G3!cwuS1>vptOFEf};p_B{;<~RV+!fQ5MP`@& zLQNrYZZbP-t`+d4Z1TrwKuKwi$Ti>L#}f1j`uf%mVxMh>HeYi6^wjTigdAl zORi8_X^DQwjBV1}j@FeQRx2|CEC1|oSbV=io4vJCz+V(1e%n|6woC8*QS;sxJ3kyz zd3t}ebm-*M;SKt0O!fxeTOqo|8F!?_HuJPSd+IAQ&qw*Zuxl9%xf6TpLta>*YyyaM zcQz@Wo6YH*LXFI+*SEbb9eLm^W}a8X4GU)XeDsL>vzexqmi)>O#pU4)y@hGzyc-y# zODXbHuUIO_jKuM8*IW9 z$RIBFMuaSgS~wps_l<}@!WR*L%>I1f`<{;rGkb0fcq`Pj@T~~m9~K?4TRfH%7m;ve z>RN!@vht3nIPcR@$$AkLwVk(eBpl8tgtaxj|ZPCaf+xVtIeW{RltXb|IU%e4e{b>iI|a1qEwIqS9rUc5wAG68g0Pe~g-${Fyd{=tDuWnX-dq_UEcC92v?giK0nP;%CyTqKTPhb$#GJ|+*Q4mS^pIq4tg5F z{VN#z#ulF=!DF3r?E7+fPix5T@EqobZ7?Th+e-G)1FgGJ7<&QZhvQphN8EP9yO?d8 zY7eqsjO6{cMYf;W_8CW^#@9a1*Ym+yANH4l`~gAO0ITgYoy^Y;0Jt%jF(-+jws zd*Sl#Tdzmm66@}+erf2)96amg%`Src39nvq!25qX_UG`GQe~XTHrjZCg!u-mWGV3A zY62UY$1(O?Mi0kvG9x;I@UAGErcfpJSr6WCIGO$^n`bN|khXf6s^CcKq_gN7f~v(c zu7Y!-MpHuBnNK{^Fn=qV-sdd%^0$(1D6FFK%bulgbDJ#M=au5}xeAJnf2QAWvdG_Qk&l8o zFbe<}Y&XaMty-qv-$uM!Qru#LRkG%L@DLb#y7oMV59LrYBXDlG4U zbSEKWH?M-ej1$VblIhMlHoO%7BS|)=A2Bv5f>Hy~*3UTZNOGFCXLGk2TCm=Ii?+UC z!RpU@E6cl!>iWPs<+XJRh~XEjKRZ1>8Mbf?hloPeZIhBPQ+Xu0&X_nhvGZ>l0FjUz zPJEkqOSW85L2R<-W!~h2-E`Yy^FiE}D=6ko(Hxuhf*l5DJY>09Qq}Ak%k6Vq2U~=0 zWIoxHhH=?sdY}3B7new;FCT4Oevd5xO&j7;g}+I6{}#-Cjgkhbt;D!cB2#sl`YW&l{Cn-TNaI;f)a0 zt>8%Ai;Ser?&yobmtR3@9{0P_G9p&`iW}H&)RLD+DzrTfN%a%=4hh!8KBX=vaD1eq zCPVe9b+;D~Z!Rl-sTa6FTc5z)?tb=^#Z&^jyN*&ODYhb{IRdx>r%y@ohOV~KPwQib)zz3g;%MZJp;&@bu)7SIKo9&sPx4pXyH+Z!&KEhzFEzM)T?sn6Qo+8|kTkKvH?tBq9|2!#cmzII`Wr~=`e*)x z=Sv^;BP$bz;}PGBR(fSavJHJ;@QO7bCuh_ zcRHitVZTB4pj7xXGvkgTGwR`jHOPL1-*^ z(h1}@lyJ#8irSUy7G;k|opQKrEnTczlsg_JlqO@dSgiVwv&w8qhf!r+JRK8DRJ_wSr5*+2-KC%pA~ zNvCz39Cugji3}YuZV&?}^VM3PvZ3STyDmX@dH_x?{$lU|;A9||yLiX$o56!W;pE3( z=s4LH;N%AYCl~)GP7V^k?ZCjvb|(&ogjkTLct0FDWlwqRGPOZT)4XP$ayRfj#X}G5 zWzC<+ML!t1t7LD(egxoUAh%P9e&ED@q=wfB>_{FT5zq+j7(?Qw7KMnPPWDdqlycv* zv|~M@6|H3N%sPEH=YDQ_#GF9HRNJkkIYFxrhT3Nww4aP$e_*XS^&@+5MD}8H&%L2l zFZw4J9+Pz#u`6wQ5O*r)lzrlnvf_Yoq`IZO-AK>Wshqf84Ze~9InbiK=|T3X9MYPv zn6w{!g<{g(D=+)Wa1X{Mz~w&Q{jV+oPrY(x`IqO2%b%(vX50st4;;(+7|2e9n7`)i|}& zQ78Miy{+WD7a-i8D2iIx_0?_Yd+56bwHoCP>dEeB(0c*W=ApKWdn{G`&?lkl_{WwK z=5N*Ur$6O()}<3YM?c(J`Ut)N8IjsZ$ifk1J-m7;=K*dHspzdF-SuoV3uJ{}RSH;V zIJvYKdzn6GA0CU+=hoTw0;a-bgOhQ4)AkKUcUN-U^%O8|+?&?qCX=Djc4Amk4L3O^ z3=+Sjk7Bx?LGEgDTDG&>{B0O5Q+6b_`$DvgmZrr4j+I6K<+DR&7-tF7BWn3-B}Qp& z_a>91-vDInDP`Jdnii8T!zphg?v*9Xqgt1E0f3o%8{@X%QO)@8eH#~uU2k>SuG*8$TFD>gitYnpbi#Bk1TM`{Ot z1$-)d`8#pBfFFk24%6QZEr|iiG?N{-?A1y#+71+kAsnvKM;tH3y~XGeJxC zUia-~?gsccJD;O4F*s7~+m@64%wRYQ0|bmYx+{dUXUHnm{w|^~B$dnoMh=iL<`Bxv zoQZslnLp@qpR4fe{6XEDEww_SW}SIU!?#xM|G25*s#aiP_l8hR909v>{u+KxWofRRUZ6ZqBDl>Hh{K%aO%wiGsc`@}PB)*NxQ%XR+!^yci$8BaC1s8Q8; z#6pw@kIaCE`X6eMU5I66|2G8%Yv_qxqxoQmBQp-S^;fl z3Wbjfew^v|@2Vu``xKfOWqYqP4<5rt@z_fL4&Fi_izKH+=_T6G|HpN)v&M326jn+QRe**xyc zLWaG9tgnJB`wgdbt)u(u-lq2ejO_s5by3d$JjfK+t9i-X=ViqnrikT5h3WF||p96YwZV6%4)425K;&CZ^^F z#S6bY4zvGf$w4m7PBqOAB*LBI+qMN}R%jbp~*74D+T{-OQU_ z7jL?qD6mNlzWJcA;-(W$o8DAzy6w67;K-IMblvHdXgw9uUssxRHYJ8`a_OxklrrD8 z=-Kk-z@AMOeOo9-Qy3E{Uu=m}ce_(Jufjvyc}1Ywy`t;QSN|{nRL3ZsY))BckTjxj zD|uD(kIu%lpFevMJZrA^c9`mkHn}(VQ#X*>bF8GqFPin z&9Pq^A$;aoF>~w|*dRM>xq7g^feU&~X^Qoa3}p0Iqv!Hary1S_W0H<2c9aHBQ5V7U1S2l!P!M!J5f$Cir=X6AY|;4Hyf;yxpL ze~s}fu{khkM2U?(6CJRA0)Uatk1ue4c8PwH03!G^-``h>4V)yn=mD`;df(~{`OXmq zGSc5l%AJ6eoq&8*tSO(;$uT6D82+1KXmg=-??(gUpn)0Dz_8~K0@ho3=NN|goC6u~ z={R}@yoLB%NfnFy7+6;VEI>TFaEC=o5-iS&n0nc#5~PUdNHSZd@L587wGkts8YZ!+ z=sz$?Mb1gx$n$xU@_B^;d6LXl-5OSqACh8prfijhReKg1xzx?bV3xr|rU=TIY)$jt zmZrvIeV#?enK>;tNBVuen$rarWvfRh>GyHcS<4z=x{j=->@)KA|A&Q~IR_H%rzKsd zB(F_N$|F-=t)BwO3Q76&1P2oC-)$q(6Yg6QQrk6JgmS!9b4EeJ{Q(VGxtuV$S0)cD zIQerO5>oSDm^{Rr+)-?P4o*v~W$iOk_cs_Ev1A2yc$?mN$ap1T_h%KM?0|)H~*0V?p zGO1A9Qf~O)Y*Z+W`Ze`!p-Wd`(%VA06Sl8T+9t#J=q&wY{+pp%0hyv5_4K5B+brqy z5LULP|`a^2}YQ{fU`7)$CT4RG9jIhG{LC$(?@W?MG08SI! zy>?m+yltGpRd1Wuwc4dMm6Qu|z=w0Qpdbf)*zFZ2_<;0s;uh(S=ekZ8oRlqiEwNSS zheeRz6)V2#WZ(XGYX55Xd&Dsz>PfFp1TBzm50dOHNsQe0^^*V>he6IIY_e+$>A!OA zBSEhH@n3T7v0J0*iy8}bEqQ+Zz`$C@e=b;A!0`hIORR7(BSC*;?MMM=0W$h4A~6w< z^=a?4^{%k}v8#x|-2-lObDPY!gJC!~oSP1fc&|o`Wczt;;kVR&#&HH3Fz8%=I#xhk z>AJXIs~h&}^6a%QQU@ed#8on8!eR?)cSz0oXL8Y-MbO?Sr`Qp!F4wP|@Gs=M6D_v& zZ`z3%@lO0!^Cvo7c0oQy4g;Hl_ahx0XSHVz2ltXssZDWOgdKxMG+;Gh^QR1GT_NGh zu+ziBH)%JNr^?z1)$!(Gu9>u_59*|Daw9%!WO1Km9}pXGYTW;hlBgcm zc7o<`kMsd9RKG_ptg0tT5`r($5|u>XzZYN6 z9&#%)#aGL*5j&*9%#3Ll_mYH7X)%!cJ7|9e67?4G%#u)5GWS^plCT-A2~zJP877}f z`7X{z1fuTN!4*z207# zcCll~6@{w~+(x{P+wV=`+!=OkTf@rY*@?c)MD)31EX01?{)?17BSWrPQT_s&w5R7N zd(IzALDovPLh*apUrFMI0(a+Lxx4 zUK!<|Fyy)oSFOTC+-pF2bdd7nhEUoPnlj#Wn9Vb!Tb=8a#m z#&O6Y^_dmv!o>xfvr_20aX2%+sEojEifr2y$F?J`<2Y21`r8!Shwe&2@ZDfkIpmR^ z%!;K$QUybI&2epTb_72=LQ-8i3-s`vG@EBKUdKd(HlW;<$0~(p7Qx<*61YG??LfT2 zaU4MEvnYNUVhA(PQ5kY9iuOAY9U@rCUDzD0^~%bqjD#qG5FIgv?WAZitP(n7J32#! zRZ&16>3k5`HIPSt3tewXqTw7=Nqth_E5p$IG;aPv3W^tT9nWEl)Mr;TCNaxmcSj2_ zgb-dtu?*JE2B~?Ul5!h-k$1fk&x=suMf@{^uB?m}cuK+ZBUJbitqRzq-XtGSlGJgM zDwv;TRuH_c@vxNs@ZC59QS=`Z11D<&M;ub0M^R>&8IHXjE5JL25=YR5G?x2QVOGV4 zSUU_-Q(!8E8~mro^)`5MFjE4p<|o)ZJ)w%Hhodd9-sae}EM!eHp$$(k>mW!&@Lr$T zJZ06UQk14_eTHAkh$);HX12iI#t5iQpdsU_$DNUuQPGQiMU}bS)x4=r8W9_n# z0j8`Qzx^+Td4j2OP(`4ugV7%7`*|1GN{m2f0;VB{n}6RF9){>Am^Bg1vM?F(=2!)D z?5KGdn5Q;*+&2uMifr^>SYEyj2K2YS{Gv}!BXR5)==0=V=@9aYTr>7R+RiF z1TupRoSYgt{E(iUiaR+KeS{EuyD5*}P*jd+r5LkTOomI4bienIjHJ-y1sn4ePi&5aeLBT^1PIxmTyjd1HBVH1_ zR}x$QsmXigdrEIE7X&}=upgFvg;H|}rQEgOlvVx!63$ZbWr$A%n;+$PffBa^(S=(T z`Y#;Ix8IH^5ya-HA}y4VI>#w-+Y!k)c@?D3hFPct-?zR*P2;@A;3IC(iFoVkJ_d`if)6GN66P%b46sYedY?83>5 zBjHRHu|w%Ri_6osW$wrJLGZ2Y2xpwUJo2>+a?cUUrDRlJG|JH=u_fF988lLWt~4cO zOLB)zrk${0g5rNyv7wh7u~Lr+Uzr^%G{sHSp!(3LzQCXN0U9|_xR!ZdjBQMiS!PRdxjQs-6z69^*SbCk^0b9db?D0RHlUBGA^~(5>&uP3A%?7D z#Z7F%`B`zcuJvygER}Ry(3N-LzxAd4mp;v~EZ2N#=G4 zRTnEQ9ZKiJK0@^+p!!spD+FYbZZgQ3o*eI=i*qknoJm9U#d$c5+u?sE{@R_roWlK1 zW+0U*x>E%D-Nf3!DH$(si-faR7?b#9vEtE=g_Jm61VdIe0%5enNAj z@(A*^H8Qae3?e_`Jzm}w`PvD&rwR;WbYFCIUruzVB-*iB*M!wi4AaMi>63#*M7#mU z4$e~{Gt39a=EpknPQ{5MYzXpkNQO`}r)gT}0c6TWYIx=-!Ows&QM1t|9?X%~Iy)<* z(dic0M;OO_Q`yQ>F22Jv;?N2XXoV*9mNDyuf)%UZ9ZVk@XoFUyLhx}g1lX|8M#7;L z;FzHWHXq}tHpLLqS4=;!Vm@gFS{PRZZnR;nn0_kmmaOtOkv`Ch)5Ge=hM%+(Cg8Ao zMf0%EESjOgvxanObm$!nnGH%TF%OFl)uu!&!hSDOtCy6&+QaG{vuNRG zhePoMYT!oW<4__Ia;%$(uw)J1HWb&!J4K}l^tt1lMCZofcNCohQfO8TS>PnC z{td-#!!As^tl0(VT`;ul#AJMMAw@(s>|e!?TtPFyS16GT)61afh>;d*&}12smMJX> zQeTB8Mub<-__Z4uJgY*J6-ZiUw7g_WojINwFB#@;OdAZO0!2h5?Dry-Zr8UFO9aF8j#G4SLkpTw)i{777TE~R_mtW92Ku_ zvYWniW^2IET5_}`_WA-8xoGJ3;{SLHx8!Mg)|92A8@J`W>MaZd7_B8t>)2Lb6-nN? zmDsjDtfBb@H9C@i95)8UfkJHyWh4Cs5R8@tt%J2*6-D03L~P>@YhcAunNeg3b(uBfewlZY?x0v= zX1zTOo=Kp{u|rzov?SL0-;2a+=YfM#!W&j$OYa^P&Ct9yARX-W*T6e|4VZ{r&amTK ziSJ)f6C%kz+rSGlw19s>&B{*w>7S5vIo6y76=m>lY>d?JMe^aAbnZ#uYC0;@!aIgS zQ8+4aHIs3{-V~9YVaK--kBf^9jFqsFfc7dBxpXMh2uD?6CMw!eo?268Z)B&M11mp~ zimt5d{f?2^1xD7x>M!jt)X#)BIN<}xLoEJZhB!sAccS)Rpv3GLWC+bPkR|6S4xfg; z58zz!xDPcOm0HL)4P|+RA2(MDmIoUxy3NLP0gc?{}*dU(&V zVGs@Z0EZ3o!v@dO*VBD_tXN&|V5-rWYB{LCDVygZsQ-y!P7CZE%zm}07}($&f^asH zA*357^#>|b4nD)*2MDfs!iSoTHaF>pNxcg!rA@HGegaU~20m@0I(0D_Qyq<|&cRqo zqRYVgQuc;^rE5B-+Va12l}R@hwlbOpLjBpG{$m?Aa(cMzcvB(p8usm*V(4;hBDiK@ zK!^vs#~k~K?lqit$m4!$z_@VDYxtj@{7?7RyoRz?dWYx(0aUIH!K&Bb1>U(t3+zM8 z{(Vy*pyc2?{9PRC&jIzn`S*uMKfMOC6SUdyNos3eL+mkwe(OfzQ^-S{AfCjjj=dAJ zzlRbdG{_K6FQF^#Pa;7?>0&u)&mGeDqw7r*)fbob+CR)Q`{r`*dq-&!8gy!OHEMLt zim8rQ!|qYT!cQHB0G)Ic&kq*QO2*>JX3F~eH2h_5J`^2)B**4&4;k!`!b(YEbIp*4 z*!*QkoKo0_8>XS(2`_AhJjUj~lg-};GPpN|^7J}oA0x8kohFSw!<%HXg%P>(wl?Vh zzh5&EXz$}RHVGB^e7$va}(uK4oGO@3XOq|U@rlY8V%w#rZuv9au z=DEHy3)(Drwsbvzt9p!9^VSg0$4Ez6;&wpN|eF#eveir7sfk4M8|*KX*ik5 zebJDT#5%}>(-KD>W&+E#2oF{Q1#DXq>+(|RQwScIg*sE*LJbNm(R96QceZL3JpI88 z&E>(WqJoVmdHNJY%+QiJ6PbgFoU#!?%2;Tc)1gk>%qNsA) z$Ya|Fq1y*LcVZ=?fHg?kKA458g+cJ;z{mo{Rj6PGN}de`aSwEknasgV*4YRik)uOX z&e1(Eov*z10T(DqI|jROS_hDaS;$|8L`1L!Q2@pOA#}$ea2gynk$Smu54I{g z_$ejtAqC+}S`z0Vb8wI~Ic}M(`X{pn5HcHtY%fULr7o5LT#mn>r4p?HL+B5EH!YW4L?2f5jsp)XMwH40Cb(FJcaNbUJ{1_Tuo*; z4WZx-uX{rX#S=o)F%gv8M0cp#R1$2ki=dT_JPakD7#6X>7GMCRPJ%7tPHMY@pbps{ zHrQ!_l{UxTy1Cw_3e(^|cr+EMDfaF3Fhd`})KnEHSs)APo{4054gH6~E6%~V61V~j zQMz+}&i{ula03g*2`1?nD$ob40F~4vs~Ic5s_$^H9{zji?T8hi*TP zMT^#~L6Zrj1SCgYi;m)Yo!GMcL5i_=a)@JXZvjMYci2%P*>$aPEONAi%%Vj@TlvCn zqqrDCHL#Pxs$0w*mLowk-c8duOo?RG<;Jmy(>$0qHZm$vTn-c*yRHhmF4$N&S~zs< z&QQVqCT~44?DHub1C2}TF(j}z^vkdRrjod_e7SCM`Fp2HI_g>=vnU(0=-9@6F$}^L z&97hui{cEcjO5x!Nmi!V_zsPTZx!X(Dtd$AC0x`u&?r4;3E8F_Y_299!$vyDBpN%k zl_zXBipy~Q<{3i9j>0Z`c3rTkkRwksmZ51lt`CF-N z9^kg=_P<~erZo%FWK_YUi@X*cdChn|f^^PsJ%R*$p#ST+S>qTHB#mOhFfdy*j#H97 z=o4n^&amB4T;3Gic3tsg?j)qT*sju{D88^t)U^cAIc8A-S(=j!P4Izc%TJ{K3WRmg zQS`7*%k3i5|Cx#ZGd+{fQEWa96|~}B)kIxGM_mitn7bD#$pI8)0G(M5(L7j1x058c zk_xtiSAbiWpIg`WtQ8%D(c}Bd>stvb4@w{#Z`kjzouo{doeixhpAuk6lF%oOad0oB|0B-s0>ZIHM_8u=i?w&o}_=ML%$LwYD%)fW$P>RC4ev+%#gFTgSY zvv4>)Ms!RlTvBaOqi>_dFIx=A${5j75{n-#xrD zVBTzG&+U=Jve`(SRjDIt)7CYLirNHh)hua|ZBX||-xNkMBD`Vof)#m%EZRSqf8*t* zCb;sIhq0RzjQ5WBEyN26$IrX3eDbgvc?3@^rc>R@Wr}oJd*sX&Ks=bA($%`eY4}SS z{0kX;EFs@PoyW)?>Y1~j$0#48)Nzw_>l#JfWc|Y}*ho|t`RJenY`8oXF0mdPASBuKavRxmdgkx$663|0}KFUDzc25N_)?=_&l2aU=HHg$IcVtIfxb{tZy}Z}Ob2W#) zOV6Mq8KexQi$ptpd#@d@8h=&gJTvlMdu3{S0r%Dd?qe|DCvxn{#rfPL+U&{@o7jNA zq6G!lXjgPU2rP1qSy5(_8O=K}1V6P(juW{x>0WHo!WPb)ML)@W3r32Y8s)`&n=Ut0_c8*aNrRMd0r zp{`Ir=XX5X-Gr5iRTj`scz-_rd1r@1urBRLX;tqMJ`jcy1hL1`0c~5)x)V9Y~$G`VkHl76NnxqL*g^9)s=7&sx2_mbq)kGq+^{ zO3CakR%Yx2QpxVC%= zsy)7Vcc2Y(R`$^zf}-~RN4t+VPoW)i9sozdYk#mHM~h%^rmM1ACM7_p(CT4~tX)g?ib9_U6wP!@t|d|6RiW z8EZ zz%KgSlj83!{)IXO_yRSdftsqxZCUm;InL>ASz|RhStr z!y=zA5&J5>!}rL4YL7S7476#@sFJd)JI<;!xkFM34xbL_s?rjJ;*7h zyk64(P~|@CMe_x8AY9?q)G^H@(YAm^r=*cr=XdGdh>Fg{L}&htMl7e;@qy70^M$c1 zPh+`NAFfdi_wZD1^U}VTJ|EHaNzV+ik@DRur>yFTnLE|6 zt?v1B@Sz{CE5fI18y3cvG%WtI||#Ix0^ak z`XG2svf_(0F_S!0*4XMF*0s%|r3jYf5wb7~_JzB~=j4Ox6N z^D@Ug4_b~kFGsg$Wu-nc0{=UZC*Oa7b#8KgIcM?xnOf2_?9BJZhNX#>jwRXGWs1Rp zR`s=ggL#tIzRu-g^}dWWT$v4@naaVsU)Gi;JBoI)A(jBiB9?X{mNXGdQ0zP(V(DeU zTjWz%8%TD`w)^-+uh9RWm3N~{7;806gjOw^=W_VQL&Lu-LL^->dP{{Fzx)Iw68+CXYdX!p6FLX6Hy`_S&<*}`11iP<+3 zE#i9Rh|b9@o%bibwUNE^URFZji!eGTvC@00q{~iQ{S6NlkJo8|t1N#TIRn1TlAQ1X zmuF1MGxoA7JY@wwJvZfT#Y8nc_eUoAP}=qhozB-wr}RTLiBOyl&j6hbLR-FJzI|(X zB|M3tBo?ud* zL}??0N?)EJyWedp6i70$N-(JqN?j)FCH=Fc{`DD5q_1!!`@+%GB){$eiv#5*uYL-p z-xWHRnN+x>hS$S%9>SKw)+=-S3Xi`lB$u)^1a*g49H=lEQ~#Q!{?*5?ThRsTT53|h z9jMfje#$3cRfgd!$4I>+6u%oyy8IzkUHK@q@sI2wA={~!PW^M)PF@z@!YsD;5zf&W z(n6sM_OuGN*o2wN7OViw$=9Ovw8gi4^{JQHr!SGGK4vd=EoUm6UA($7MTFeq9-Kcw zyh>;gf!r6HB3v)*xEeE>EU}&tSN}}O13s?q-)1un zz0C7ZnQt0grYwzD?O_{8dGQB!2C_W!<3n|Wl+6>VfO@Iq{uB-3dc(n#{)!8GZVjdO zl`1w#BF#~+025b*+3bS_bY&*I%uHb5;?#$T)KtBY$2009_q6@o_mZ(6>dpU>f88lE zuDhTy^=@@_E3@W3J2YLGj z?Rup+H$fw0=ry>9Kff;lZ77}RnwTvZ&4t7t5QsmJ8b3d?oZpcM*P*2zc6Fa7<#!YV zWEDRzB7Nhys7vOvBB($Rj6cX>&v>azkMonFs#7*&bNQA>dob|_pz#Mv7**QtJy}jY zA@%ge!}Q9Q_yel(2i%?Lg%BHQ#qst%;|i`l@o}tYYz$BM*T6rnSQE!PM1M3;PWuM| zhWX22^16rUhlW>!#G9{TbkP4nvrii&%8IYPDZa$|9eec+L~=tTT31HTsK_bbt3=Nl8 zfjo=7u67Sx0QJ-+(V=h*GX@Y015Yphg#ZduGHO&ZN(Cq^TG_>3upsxUvWs{^S4X2D z=Nct83jPU&NdXjQl5o)mQm`jQ&>}GYIT_&JWh8~eY7g*4#4*Xh6FD44m}8tBG!b)*V%u2EttT{mz=LVjce!*&i*5Wpax6u~kDOxIph zug7pm!OUo;WH{-4pWpdej?VD+*N)c#Zv&yO7hJg_+0vtw-v#K>Fc5(OtC*iEbzDNe zD+$-07}Lx16fOib1AM_J`Y!gug}K%GF8Q3@9Updcu2JHL-GAu6Rp{iasz(aOwK5#t z{La^XTi_Op_`m`Va0^zor)|nk(TSXlJ}&BsyKdZg-MEU7@6x+Lf6wK6iQe@Tz3c2{ zQ!+18R(!3yV?kz5*Wr_6m(ya_2z>ML4^O`6hHK9wHPc#|#BTnRX*bLY7HL=MsBfAa zu|Qn;ULCP=)qSaL|H^#zdy|8#EGTqnzr4M)W+gwX7{ld&_?}=Z5^JuqS#&biCIWvGkg_*jT;NW~lu^X3?(0I85%oTv#B$ zecv*k3D%zkv{mnhD&?5w|Ne1`J?Rwt{$~VM(ZpWtUao+bOFsA84i06`HA>`ArYG{H zBqUz@6c!z-LOY^4fH?_BV){YOBUAI*BFJ0*^voM2gs>;>QHYOowPJIh9UJC85|^fz zbK3EmSs2X+#q|TCk98J8I7$>bOBBy+KtEVV3qcd7ZQ7{ay5KzbF3)bp#>HOrZZ6fv zC7&@@I2UAADRDuD+E!mJ9r!B@R_iEyoV7FUkujJiDdO?Qaiik04gG_uy@?T2YD3Ek zQan1H*Tl}Ya1{m{a?i>uRlEo|AR@e;B;&t}6 zmCP`id%L9RJV2wa&@zaN^S2%af>iKAsn3PQm*`l0bSpoq7m6FlsO6-_1a_aZ6zVW( z)I6ynoyo$}9)%UXd-k=7y{KXF{OZ5eP(J?AU>U&WE%UpJts}wU^L$-RzXNC#SaZ2a0BVt^Pdpda(RyhNDxmZ)hTD&A&;=`p2>ifc%t0yh}y%y!(qrq%rBGut1WI@TN_da9c$N9!r zQ981xy^Zse#q1LkSh(hwbZ|y79ukKtlg0X*xlenu?o(kB-ib=w&Jd4){V`%{u~Cej zy2>avSqx(ole2%L!8wT$dNTJ#p`BcaC-wc%ByZNkDrkwFDHv~KXURi*2Q^abF zn{HhmSSiRZagD%=d^1rTNX_d{E&lQnL@Eu#nQsc9UUPhXCM`lO9Lc*dkeU?Q9bl!j zLrm~0l93W3w?oW6fK~I_A!G3!Vq*cUI1RMNE(6eD*VSk4g9EAcRnnqUou_m)-YCwZ zC3x`3tY5QqWX%kl;TTqDNpZ=HSelQQ<>?83wfpY~?0p1?pDkb5GrcdVs1y&fekFBx zjGxyt*aj0c;@&Qy%}6KYGrC@^gvzewlz|Dh^pfA3=aMROG}XA&gm1b*??mX2SNoZA8*Wc$ zyijL5n!3)QOjD@cKleeo743H;I`pxU2eCO(NPTWa)?sFStP(xOel)e;85%w!iL~f{ z$x(~Mv}dP1K-L()Y%_S-7DG*{o*g45w$yta{Yd3n8ELqyyBpg{dd0Qu^(IbIDQx`Q z3Bzp>2L$(EZ$}F}rl9x{Z}1#0NPP~)6C`H3FyrCE&hCl~V*L`&gGZF}XGv0?q)!9u zZKC%qE;qD&nD6~G72hi$42~%D<2hWBElx<;D$4of=#1#-jI8(9MWqMjvs}sP-Vh&^ zwis}D=ZLi7p)EtRSILgIzO(-MhzT-lA!zRd6^gCT(5HbHX80FvHIV{p6x24vn-?6y zt63f|v_o+7UdH`Efb`s|xO1zb&o*#|fbv|4GJiuTWr=Fyuz&fwDCBa95X6E;?P0@R z9}t~3$uYBOkRK0*FO?S&`DSYK!yS9bar15r;pGpakTN{kC7L+1tHEze!-QtIBY_-8 zbK_}{AE7eN3^BAWUzeE(_E{<~C8`$?pO`mHz~|ir=G|OR8P5{Moj=ls$Q7sLg;UUB zR=M1qCIx!+#a{;bKGx=kI$j{hO}cf}$v+Q)p3I}Id$@n zg5k5}&4cOh7Z?fY9{ZMQ#g9TAFOpj)-Bc&t+6HP7qk}=DL3@=$kBHk5AE`wv2g9e!PYm+CuFVf|R3pcIcI(2*(}ndb-xn^;egAMPMQ*x$?6Vv6 zvs>pzqxV?)5v3#I72BfHU)DZCI`WgVdB`rX!5Q(Xa*nC;Y?qX!;J?BC-Z*o~4GR-g z?fs6}dxpxBMa>`iYHG!U9Y-hQ2HcWs< zLAS12`AflYa{0H9-?@c~^Oi34T30^0;CN%QwcAa#+pVpz79sgDNbF;;%8^Gz zHu`u%OC9z}v5kT8%!V}TVeWnz;LEMe4|D|o!>Yrrt497nFnp|>E?fX-li;W)?9cu9 zF7yR{DQEjqKK90q=efK=F#JpT_K&@gWRE9~61dh5xA!&jTEVY1g7*YYUP=z^iw<<` zG&i}&gMB`2BH>hb+6>aJ6J+#QYEy3n9UG9vo}_a&U~Q~6XbARFu^6P(y{ zLvsE_iPo)uBGp@;N=6PGId15R0{=cU`I$T<7(QHXJiv#k6%TNfoQxy5F@zS}!DZr; zF7SbwoM(QhXA_zmmC)eV+`)-`BQIK;+}=Nv7Y=?c7`#UnbS$7RI-oBtp!0Dg$QL-d z)o*7|A5&1D_;`3kyL7}eL!0OFror&9$w>vp3Hsr2JXX2pfI4kp1m z8I#%9CokTkQ)M z-;e5^AD=Wo*F(0G71>;Z;S=R2)*pY|JGZXq@^s~xqvgZzH(B>=Off&XxU+qY0~Fiopfoa;-g9G ztFRx{rUzW8N$=_kg2*R6YW-ep_|9cg@o2KH^*J?gVi5YS?w0FDV^`|(4Z)P<+4Ee_ zs)ER;KWe#B^BzvtwLhoEmxj7KQS%;6Vs?T52cqE=fq%JX=p?9b82)D+4Z_>w=8(|Qe}tgD+ZQWBJ}m= z@~kHxG~VIlG2a|)Hz|@Hdic|zP0hcG8B4t9Dr_g~Olzotp9Z0=b+_cHNv(AS=gCC_ zTJqGTh>Yr)lC}fP1I{(U4wJd*p`9{R#Jzz9@X;^DwEsujm&Zfdz5i#AEX9z0YcPWn zsYup{8DeHo=qa*<5>gRkU$c)fluCBlda{*$OIgcSiEIgxn2|6smfxA_QO~D7pYMOa z*Xw$n*SW8A?(;s^b}eh$^Hk1)!4{!&+4+=N%F(Aqpb903G_tyVYOZ4 zu4i?QU>iCQaYJ%^bnmk|@*5m$_=0*Il`eUQNN9$z5 zv!g1=vZJHj-dON%%D-z!ZE+>8wr-yr>E+NbytyGY%1T##oue;S;oJO%5eIu6%U-wf@&6AN*792vE&@amse&lsk%YA~kZ zIu`_YrTPusa_G9uu-fcOTyK># z>i??we?&LI$tC!Q^EpG%1>2cME-u8+#RQJy^|r=;LFAPckg z`tT1Low?AUAz++Ll@ytV|9czKxYWJr^hER8x-(y?odz2W+H!O>p~7o&Uc?*gI6CSm z$prSM!#@D@GFMX35cXsRS!rZcp>O_a&-_Yq3f_qA=8fq@NO7I{l}IUHpjjKkxmZkN zc>PFEh0vPki80riAr8Nq47a08^EBq!XBB6Y+$vO@~q(%gd`KyJh2T}4JJcxQJc|FFei{BvPR8Td7@;X6f zQU_BhFqocp7?~fgKKrbCsOndqvt%%qO7-40ZEWcuq2YB}c*&I!JrizJgx#nh+%U-w ze02L^;G>t+JI^NEXwduwn($AQZRmcU6Bvh)M;%m@iqIPs*M8OODY5_1i9Ty%x*t-x zjO@1?0p$+q^^frNk6`-M6X=h~nb4h0q22hyPQYzwGHjRrhhS7I@xKL=DEVK4?QeVZ znfe5@LyG6+yeLi9{8tQgsvdGi9C@zDM(6Q(y?tDlweFQzdd9BdhlYw zbpESn;m3K;uA%)+L-Y45gcdzdjJmcB#d>c~=P`{f^&RM40-!(anOXkZ(_ zAdS_b;{L4JmlbfN6_f>fXjkQkK!w_bXZHtBh30wxJ+8nkc(up;l+q9kVZajIax!Ez zZTwaK@1Ruwfo-7hdd->7p1=YD%jf_1Pjz%vk4PoZdwTy5@!q{8%smV|Lsm!9)d2U1 zz5*B_;2!;73I*;%PGDVB1(w$hSOOyJC~>-WB%wlW(Nlkv_;TnR58UP*us{IVvO?{P zXZMV!!s~he1XpsHEBV1MYd|jDkN8eiX7Y6;o!XkG{ups)NW`xu%MHw7;_63wD}FFp z$B5?jBZa;-X%tVB@1C0EpNWoRM1e8l#xkV%kh>Q%v8!?9P~%8vV2w57upiy<2<9x_ zfDW7_$J2Yt4dEHDnxyWz5{YITNT^if_R{}IG#D0%tl4)JOwr<=kI$}a2^nJSb-a4 z#v9}x&I8;=|1%LbB9c>+b=`|VjO!agSF0htXiVzpygwgLJTEn}@mDogruorp#O#FG$Qh-ChLY* zIWew(q_51MRGjt`r*GRS!ZymVCjpfxQzGt7{R zO}_^I1s&9--c!YLj7(!rT+w6}Ht$j|xR1TBMmA6(t9bp)U^896MOu97?`PQ>7?O%D zzQ*NAOt?x!e;S^UoEF_RExNx>8W)ZE-rrZQfPgiFlU2?T6Hvsfe-ASxVbeXh%!p0E0IiPnD<}%7ez2Jm zEgB9D+9#Dt%s$_-m7*tdpYCZR)$L zSR|>CF+W@(?y>|%&eK3rb&D$flU4dD9`VrxtULj`1ja9!AnN!|wi%;bt(Z-0U7XaEm^I`qiSUhsNNmMF)2Y?;K&sz=~hz3MB^hsPC?3(IIQih*Fu< z)g*_YEM&EQ()IXjpG8?ei%$2cqpDeuWUbGl^3>I&(#8u4jzJ+A*n`)(!ifn%L^Sir zgyf9qt{Kq>DTy2M)Cs%ghXrs**MR&+0vyr}4`Rs2ir?VMCI-Dx$5pdn$Xc_a1|u{k z^{CQ8cQZ?JUMcaa>&U(fBNM~bELLQ#FQQH(A&;;(CE0~HFY&8bRI?b8Z9a<%d=_=+ zQ$K(wmf(ncQWOWd7#Zp^ULrad z2sbafYhDyMKq<=98MN~U{;8$@EmIvNmkiQO4v=hdf;bb(?@lskLoR7u70pt6g3(RX~){PVF?N3%3HOq!L_YM zj}VfaRL4MAI}AwX=`mIh{1ea}wON5^*`XWO6{d?%wP z$Hb0*B3CeOP_(u*dK$QvNDRM4sS8SOh@=29^G(0|6mr4>X=3H z(C`DZ4HWxntW|H*Pkx931M3k%QSh;%Y_f~(>X z%yO3;^vN&XTg++nkLXQXWI-DxPm(lozc!xHTWosLPuyF~V3Y+2Yc(5A*d=(ZhWNG=nCSaI@w!W z`sT}Liin%!H}Kv&MxfU){;K!yQL3E?)=#=AW=_Kbquaz^zcgY|JElMa0{E)(9OtJB z9nwT;3nZhNK_hiSKUlw{i@OZf};CX16^wZAtk<`_!`;=PY(e}+eiIMz0&4J z99wF-fustH#B1Xtj-9|=`3Keo9KGH_$_L-AaK6L(05&QUMUMRFmw7Yo_b4zL9gN+w ziyDP(6tGS6koM@bs&|^fs0^MQIq9e5owh%L^}+mGqXqk~8kV&te56DBMjcabrtOU+ zSM4U5D%s)N8L1O{)(4nMY3eH^DJz}~AmulW-dYo763;8j@6qm1?=x*s^IO0ff%CT~bQ%M{%W z4RpgF(H}4O*ZfX@CVT%q=BU%qeeG91`wi;KlJv$hQ0SJ%V1vmD>CnWOV@g0880xAP zNQb7zcv3z%Po;dYoEdX`*3d1vwfRA@p+Rb9OlFN7x#^b~koJ4@$E%NZO3@IWDqi~&aoJ=}2J~mzTt5T%_ zX%AAk1Hhv}6E1Os^71>`^3&KfFjWWEDMr9lN#8u_Eq#-3jhwPTD*Iuoq;GE5_YbU@ zF{*n8&tD{!bpTavY4B|NJ)rzj1%>LL!6R>jHr$}lMC^_UNORZ(Z8$a!6uAHWqt8av zRVJf_;oGDun;#V3XKx!1_Lqz%1QO2_MR!#LUH?Z^7#I&rsWHbS-!x!6q$erIZ~w~t zZ{tzwn3p(f4j2G@(pZ-@y5CZCmo?CJCT66>w?9^ZY>y~4fw=v$h9&5) zK4}iKe&@4BDME#0(%&SL_LU)Mr_l7FrnA;xJ`sGq9@oL!Q+vO`y#rph8hzcEoq&5c ztldP8KGt}^UAqQ0VVl;j9jaZsR=Xy1b6Ku-Et*`YW?H&VoHqu03^z}#o!oLma+|E* zp62={_H}8C=ln+Z&E@W|v-8O}!KOyTm&bV4XTH`Sm0EvG+lh^&?!*SS2Areq#J+=n zdIz6;7avbC?JJ;7k8Px=Hny#9fK?C z-_I-dKELDCdk5wa3{Lq7@w`w(3;!APZWt|quYETBk8Ri^G(f6yk2l=mnNmeR;Cb~j zGWk{Hd1VZhJ!A zf$d{^YHjt`X6?s_v4084pV(#B=WXP3(a2};&Qf&Cb3QxU6h*M{O0i_kXrX^^jkLWa#q8$irVV57Sj_Qa2#BJilrr-1=v* z@`|!p12#dQe-1d~@6KOGSvFRu<{pvqcQzxBZkqEQmL6vIyHmtdvqJIZ<|1SaeWo~mCO<(4Y zJRJG$=SG|lhrx!L=bb4Z^jX$k++}=>Sh%Zu@l>YEsgJ<5iav~}q7H@L(;@$W?JJSa zayrFqA3XM0<7{HkWhM7h%zw8x9u}ySW_V}+;V%1MR3`UjrGkEYvq$YJ)`_5cSL=T! zHeFUyx~z1*i&67fk3zrw!d>?Bi3yg8=%>;XnTJyV-YVHzy2bu9wU74C?@x)`pQ3kG zNrGn`Y!^s28pcPSRk~^@?b`l)e@dkkPlf$QDl=sOZ}~*3?2_T9)#R7YlV5)Ol{kt| z8N{z%lBRvlSSsD3Lm z^W2yag`E7A^ypx~FE@Wzo=L$iRgTHcFNbtuaXzjm20DXX@pVEF->eK0+P+6U(qyLHy8Z#+0giuT|Ib%ar{%))rqg}sp#V%7eHD6Ibz>~t} zfBn9-JnI*7%UYeo5?1atX|F*8(yiF79P5(uBbmxY}>0}M3y*XU(CH;Dit7k=8 zUt9Ay=@4*oBU50xKw!CApzhk73}?P75q5<8u8ilK!hcb>7vwb;$7`-vJZe@+{!Zqf zBRn7YJ4G&?P&3g~Hrgg*%{g$|IpUklO-h?}t4#g+>c--0k>%mIWIeI>dc6@(Z)ubp zkY*lkh{P_Fjy9}XH*9=z+k{ijc2zo=W?eGPay2EfZ4Tx#yUHd@T0xH-F8CL99pz=< z=V0L9&wbB|x6#R*F2+-|(J6ArNi{ATW%h02wD~VpI2Ajbo1CNYUhi}CQv>VrgwZ#T z$wzOvxXcD@+zvS7ZDHavaa=&sRR`*fM2b_#gD@Il;_a%gUT7JN1l~RVIC3mz+4q zHpR+O_wzsXPZ<3EdJ0_pp#7$F&JMgdPc)M*AMb8&LsI)@tNZDrTVErdx4L`Q_a&xv zPClBME}cU^n{5-4aP!XU-7^=~HnbVy@Mf=ceM9(rT?jcvORuV0dAWX(hf|Js=PqSX!@w~r5IuWyW@>-ZjRTt z>{QgOKljEwEfBbJUJFaZd|Gu9&O6FYqikpLbFlL%THYJYthA zwues^3+}@YnB~9!MXF!E=uL4s7vv&3+Oy z)(qdb_pN(&LHNEKhlN)UNN2d29O1pJ5`0(~@rK4WKP;SIFm7PZq2EPgHwnf;FR5V6 z0lr||{dewAG{6^(v*FM$4&P_dyyx$6gWT|a3UAy)FRMH|EIck4Hwm(zZcd24q*9tU zZcrUwCRTTTgkra8M`P=9=+9nKAxB(UvzI8Ll~6Rkv)`R@8*IDa1dy@d2QYvGRq#09 zyk|Qr0BV2ZZeJK4GI$vvx^w7PhVM%ej3c}SG7HAZUsA#UJ??Ad%kF62yn1Jqzf13j zROdMKiKk*5HE&6jXx{U3eCH>3#%n6iRE66o-6z9@v*RU-D?Z%+7&Q@;abLUZc#sR|>e-8G~& zA|^V)_fY!GrE?vzg2`YVp6|G(Jl$G_Hp2BvM(`;*^m@7}ns0+C12pW4)Wdei1$C$BMP zsVecP9V_&_etLeU=zXu{ldNyP`Xx-z0eZadE`tIqEzDbb{5L)v)Jn@^l%Cs#j`e9E z<5{g|`^DSK1Amzy8g+tT%G~C*CFtF0$tyA=9y^<>E7S2;DhAE2DbvhE|+D< zz9Ar9*Q)hkJ<0wBC(f3|fJa39(d-Uqa~6ZbV_H^k>H5CW*d+|vk({{GHv-EG7_z5D z#7|uhT&iWr9-za_?SOj*64bQre%|qUmx%ZjC(eV#po$^8iW8T7BXB8`6L;X4*4_CX zeoq=QqtE{9fDWZ%YwPjKyK?iU-B&0Fb-!?Hk|UC28cNN<$6TcS%lEKn6lyjVYQ8Ac zY%bJnEer@g)9|dY!N8ZL;k-W!xgxtDENgnd@Tqe5rP{EpfoEu!aoAIL!dVq^XLW_t z6^3x%u;{*?FxcL!glLub+y`_!eN=qVT>5*}g*RN%5Xj=|bYT&=l=cF49rW@Fz zX4j5TEAr_?iCfk{1-eOlk1*s{z}^H4w;`T+Tfvu8z?fw&#jmc=-38{Lk`|d-=5#!=99=lIU9fCWk^4GywvZ94!E?zqbd_uyDN7SP^ zs^9nMb@J))L}Si)RcRI-FZmL6WABUVXxRf%A2VS;17JlILp&PZk3I$1A(`eP5Oq?z zQ)Wo!vA6WP7gXS8pTT_;vW~C9!fjRb6z^xMf91nG_Suzx zrY`JF;i%56Imq^{0tbF12Yx4~%XPBQ=b#n%)7&@F7-^q_KBFOM@H6HW8wmDbhdTeO zC7b{3lC9;_qdKyNO*49M{&U$j%J+hSlY02v@Y>JQL6G=-jw4)t&~v zu2Bm+eg4hD^r7ao?oF;Mx8a+!z-@6i(7m@1K&~U@?xhDp}M;d#%rSutG@J%-06_{xOW-ac+MtM_S^Nhw^Ne7 zvWC2KWPaSuem+g0RwG0>N{e&q*n4}pv^I2msuq{nK7&O|{TtVr1G-;n9f($@TbIeU<7I7lxB=_htXam(p>hi-n2kklOMm> z%!!>#64@V4?Cgx#oy;X6FQ#Lm5jscNP4BleNFx;DyYs^8?q`b<_G1yaU@i%YMyQsU zPCA!FPsHxI69z9LaB99gn>0dg#B_?eBo2$|IBA65pFA=192_g=`s%r{=yHTSwc+oW zlswDuW!6Zn|8W;VMsue5>lV-Yr1z3Ij%}R9PwR}M)6zASHMTf^I(_TrUa`jBqwY(c zXB{Vsp&i`Z1S#lDJuaO|LYo}M7^V}fBcYvvOSdqn{3@YxpnYx!SACfVJKLJU`STyV zD2v|TVX!q+rHZLwV!DhX>#+;mAMlATTqxTH$;+^Eg=+iI29RrsJ5j+FmWHNl@|APv0v#?AYF_em&gkp z-|s7`U4l=yK%k1CPI?H`U3|I>ob?!*yS#u3EDV5O1K^Xvd@+nu0<7^tRtx{k&sSf532~Zs$O7a1+rhaHs}e)rBk-0Mj4>wp~K&I2i`B* z$?7)VyfZ3{@r6#Xt%SCmPHfrOS&E_$))1x!hG2&yC z$n-dfedzl^ZQiQCn>4E1na(kW9SGLhtDO;@-lK<_k%V2}1F7E0Mq_u(&c=utZ~1=_ zxKOgQx?9pINUz6_Pg^279jAwClZ0K|)315w_UgONdAGuN*XCXqtkLOK1#OPEmt)}AcPm|fw>DXuaev^>YA#6_;~q%xPBv}E7vjOE zwHWIdbW!Y*Fy=jwkeyZxdkD;uGYIiuV=cxfwg&IKGX~%IJ z!v2D@W$o)ZQ8L%UV(3`wuH)<6{@Uj@mo}dKg}ED;A;ZdlY|laED5-tlzdn&R0*OZAQ(oyY?5^@rlz#`BQmx!dbWCC1j1ARtaGc!Z|lUa%?Khz zjBSG}Y%@Y<>qN;`iNEjd)(wW*ZQyiPbS1EvmOJ6m>S#V}CS@*? zZ-8gS(F9T|!#2nhHWz8TV!!eIKs<%zruQ?_1e2)$>TzHGzM?P!^Me`0he+c_9+4+F z4PKpN$^BXconyvqa6`5HRAWdV-CjejFS;2wGMT>UTJ}el7V$V(%5;<(UmrV$c1nen z8<*Rp!a9$klW$~F`Xl*@ct$FWAyzVMk9flRBW=Iv%JoN%UPy&KHHMs(iF(BI$WjJb zX1oOb@?5$=f&NbUH!U`J9+$2W+9)VwZBo*F3Ep;Veu(?{+`0=gVru% zzKTxu{L0qscNM~4-CmxkIZhP&FvZ#szxU?%sc#EtblTRJ7ny>w*pkG`z4zP|`lIyD z1q6E?S@w#4|1SEyvFs%~-X|qdYopQpEP7!YG1_7+RvCG*=5Jd5NqN5#%{C|$G8g+q z2W>eQTQVRtT4ku&~fMJ>H!8)C%qV zF*X%CI-pxya$asWK>n{RP^=_?Dv*>^Ax?X#dz)2R-cSK`PEj7#rXM7&C|F57wb($*cLw_fW1RAd@Ah^xi6rx zkMfk4T8(uAT!J_6K%%WGPbOVL?|PT#fkB6voAK?nKXY$#Ts$AQOR0@11%j6?%4U-L=VQhG9ruJ-{S#q$wJX8A$FH{a@@bs~`fEkWm)_|E8+RWDXpU)F86$kS% zhO(!$N)s8O_jVeb=E2p=0)a33bCvS_ZD`ULACn^{V5nJI804|=*JJI?Ht_&^rp-2s z^@Nh|`|Q5zw|tCuNz+tn6BC$>FKQGMh}Kl%3$UlGC-8pXH#8m3zNpW9y@@s7tO9}I@^_f5K3t39wo!MvCtKX6d>Y-6e?`Kb0 zO3+?w6Zf;nX($Sv`j_nvWI+NH847`M42 zu0ANsS|k2IJFz7=AckpcKx5sG>3i$SxLC+Sy!Q82@pU`?P0KBp^Pk2JUK`wK`MjPd zeP>JY<<_0O_Fh@znx5R7c0B8?neXx4@7Fvl%LX+sZ(Tf*^Q2Nvw)NdbdAdAb3_9R% zNLvuSJ&H~#Z-=Eeol-JAXxTOkHe3lreCSLdyQ~&7uecmcs|6Dnle1&6p5C5`scnT< zJcJFW&D54oZ*M_Y8bxpK1=9-W6>nz4U0`av#D?pIh^ry!N+ap*ElpI=W4SM#g!ZvxAWF|N}>~33S{@uI=v7W zGesxR$x!OY)y5`@o5yM~tBZ$-;iJ)WB)cze*z+={;{GcTS8 z?HfBbI2T|v+Y)O{0*Yp0pefpX%b5icrh+>m+_p;vSLQD6IIh+8Ea-k1!>R`7=8ADwyi7e_=%Y zXLSG`sKTP3aGS(GH3CSr!9dF@I6L7sMb1fnmPJ9%NoClNM|q@=U79!L`y%s;Af%6SKwB476RB zv-w=t-z(><9rd3F&(F&r&rh|M56-NOS=BzIwvkyin!|%nXj1-2o23hmRHn^2C?4U0 z+dClcSfbr!8{(VBu}Cj8NpZoQIMOB|G>PNzc**P?#<8e2Al~YNvpdqJC^UKaNSm_@ zF6}wQ0*pKA4ml zM`$!9*2c-4>qiU?&OKg<^5K3kDSx~@@+O|;{kfrx)X5&>#o*LQd9`*+Pkh-N)Nv3| z?}z)$)wg!-o^tp9WY*uN}co?_y^BUt^Kkm{`DMGv)ydFaCr^`z~L6*>|YpS44fcjCYX9qMt^)MA{_I#G_3{^;2T)GnrKpUp&~3 zq?k5&$7E43ZBkjI-Q;7U?K2s@RFmp;_o@OgB%7FTb&_VyV-p#3Y*>-n5W>eOagpIo z4j7CHLdX<{F&U!RlG7pb+Hi|t%-k*{9aBzVFa|=)-Na3>wMIn+r$Z>g7%gphdO8G! zVv~pI>7k<37;_qfF*e%p;&jMiZMah~<~|hmLKhWPoxW7Ld8^N5#bk^qpB?!Vm;O66 z?RdN>FE2e3y@L?U1Y_ETV&enITJRORoWMYgmKK~X5L3J($A%7B!UfZ#Lq+*%!Nt=d zyHRXAVNA?~OnTT0kwA=%7W`m3gdY_pm=00af*aElZ0TWoA}F7~0(6~^PzviZA28Ai zmrRF{HWCy3v2`^5A@M^+|3yJg;M9@Zdqd(@&dUpCM;wnB3!lMbF_3xWl+lMS0 z45&TxCXrUG_EO@a7eJ6&#`)ae2atm``7seEgVw22(oMEDNDJX%S8;KSt z1nbfGd>IgV9ry}sPGBfTO9##tiYeZiW3vZYVgl0(0t(iFi)TP^C^iEalQbby2Pilc zW1|BfcyT6# zR}W4^5$NTRLA*JQQJ6Q7oOC$yDn1j!qX(aj>N6eRlT(#hPRG-Nh{Ax9#buFS&r5s- zb7nnwdM1SFUx-Z@&|lGPc~soYbSffSawdclg@HhF2F_5c@&ngK4=x*p8P0$)o&EnXbe&^hd_dJt9~~>oRLH5!E^-Y5abQvmdTh>`5b#o zWR)9Ss+_=Wg|sXt;2q#nodC}ezAG6+Jd0%ApA(vl(J_RV+7Y_hp$S$-@;sueS_61-HD5;Xa(>8=r7XSeN$_lJ#(oyc4p$ z4`>=LWoU{_&LvRpVsuWyGja(`wA`i2Im7ROrr}fdxdfCcG7m2GhQNIpY1s=jeF|QZ zORz9S7Qr1(nIiAz5@ei_s=b8LB6uBqc;oHok+H`CtG7x1D}|byq02shAJL1d0PQLCFG-N0^H#-M$-?4CNxc5NEf)n3rvTaJXL60 znkEh#!kv>b5A5Mn&oLdPIZL_j-`?dO4Itn3!Gm^0z$5XP`Urzbo3e^fJVplr--XAN zLUZg9$aXvdF9k%*CZI4#7~DY{)P;5jSt>`~09mB~mm(0jkw{jloacDVX=qOE2@Fym zE|pB+Hbhz`67bUSDFhy449$@@M7pt&{r!AMUXSx-(8%^o0^R^Vm2|>K#Yy%*Tk{`r z$=gi{TJ~qdJ2cT6`-h-FMNbK(wxDxu3p#-5xSK;zHiVl1&Dg>n1~ES0HkNaZr32FX zyc)hQzY8Fne9^8m!K}Turo5n}Y`$)YT}@ka*f^enJRg~rWo?iVPw3G{et591rn06g z?8l_v5SaCNe1_}8jF8IO)VI9v7!wOTsuY?rd^@yMoOP-mNNs<4TQ=4zKQMeaohFlr0K&d$6=qrYPXtZIkFjyqQYlp`|Zb{Vcz0D^6>|Ha8w0 zJ@CeOF%&<=D%H!=K^Be>cIm?R@E~Vc9h!KM$ub0a6PV=#RO#`IVR9(9j}EJPhWt&P zcG?|N^)dt|6Bt=NBlH1E#{`xkLm1%ch>{_A-PDOx&v^a-WorVv`~cN=JmYvfPe-H- z!NFvv^BGr^-Db$g)21eUq4*qDDKvoP2e7a3C>~@UtAjRxl_toaf?3{0l`3ZpzYFEQ zq{DhRL*7ZJop#4my)<|bVC2IYp?6U_r(hY<1PcHwP4IHki9DR~{4UD&6zuX{RG)Ij zaRiSb&nYLu;S7a$0jT?@HYZ-?#wE&UG?j)j_i_uK;hYIn=kMVb1jJU z&}r_h4uchyvTRs6lBJX_l6wX!LQghv3sRDM0=KC#xhKy;XM)qv$!440$Y*Gmg|;A) zd+u21WVx_zIBkrQ?wINXd~a>IN$wmoyXV6ViX-%hV|23o$Vbb#?yZ>LX!*N0iO`HDd?+&-$c~t4tQA3V3j$(7I2Hd$Fa-Dr zr#V9%1|*fT#DVNkWea@I!0phJ+CX-EPvAB+;(PK8fb0k-n{9dn&CpH+vg3R180cil zvu@se(E4Fz zSp5Eqv^90F0et97bE|MUUG}nKd(ZLn-&ehuFfq29925R^Fx~*Ij*gY8hX@u)jT)^eDbG z(_OK>F}Vv+&of)RcH(uQiLN^a$Fk%<`!0Vk7fouP125;$idJStyLmHXulbF5et5;< zG{Fui1g*%=`zyHB#(t}f`mO|hK|(1ctS!b*_abC>N=ZDG{}08qQD2ti4Is_xDRs+e zGj@F@J0%7?rDj=l23lzXio9q9OF`$_*ZWi#={qPUsr-MaD36ByeH&X?pXstJ!)4iK zIdq1l>;%-%!AL#{{nTufPt@D5lVDQ;=fH zpT4be)(V#URf2$ws*>HuwwTg=-<~cEPuMSNu6J8sVO)mlUM$|7qOEJ+Vjih#v7jL? zc?b~Ot(P`5RkQO+9fducf;5%C>>x-`xHoXo%4Doz@4dUv&9}@Ytx+f!W<`u@A-rznq zZRh9df2ra^(v|rM%prX?C_#2)h_>@V7zcAs(?3j*sVH6fH0r%S%1Q!uMe}D`cu1eD zwzHhJcd)jz3XFp#XFRxGFyUcbL7zN8Nr$1fJ?C?Pk`Cz89sq6eYMzg#v{45CGJ7z(MBppmxlGz0*a|;CT zX^ewrK7FDrSj#t{z6vPH?(oOt;LHY13L3N7jHrQeff-)b3u^9;VUhtsPO@2sl({jo zz!+b!oV~J~J?n#^_+XZ^vt{M-kw&u=De|H_&MXXJe#dM-)Z7wbej1aMWac1cPEIU1 zn9r725Jt_}fh-`(nD0Wo-N=?TDtJZ>K4xE%%J@9y#9PvaZm+_v)8Cm&Zu+ByA0KGyUCwP%5sb-dvfjmpr`CJq%$~1MxwNEkxzhFC+LsMB zt^wA5Z@_2##06a=$CE9lSah?Jo*T3Asa# z=TcN3tDjM5;(R|*tj;+!5w;8P?x=ow_R@0i#jfgu-!^s~ia^}BW2W%e9aXvfE@S~o z=It)T@<#SCqk?8?Fp=#u_3S07^58Y!3!hYS^k&t>WxW6a}*!v*<2p6oO^_i{k6qGqoIfkR&?Rcl!Hbg+thsUg!5>nzv1d++(~u37t6^uF=LmTczz9{zf5%}(WQVkn#Uivyg)UCgQX0QL9UsrU@Nrh!~D#4nRVNK=1jIS-Y zjqDHyW2KsulNn#HNZnzk(P^BGpkc7HJZtW};lW4ZP33;9x!T)wfi>40ddD+@@pbVw zUE(&%LL8ijvgV$G-pQSc`CBvm(7p9|fpY=u4?iOW999+Hnno)592WnWo`nl=2E??P zQ}X?G%SUU$=m2N=&7Apf3LJ}6deqpU%(vBNv2HjtZEY14;7nOJ4B4jUb;H61g?Y}+ zoD19Z_WSLV6V~q$>xTCh6kc_R>^~lE_l(JoRdmy&bV?i zfS@H_v2J!o(TIuTVTtnnmOl6Q_2IAC1dWH@xeLD8rha!Ty=G@Gr~g;mm&Zf({r`_? zFf+EnShI|pVQeuXOU2As$2x@2W-U@#(&kN=u@lqGkfa(+5fV~KMb->0wvskW6d{tO z2){eiyZ7>WzdxVH@1L)pbDDX*Ugx}CuXFF6x%b@XIoC)e_;*~t3T)%V9!J35qA4gq zobQs_4C|2L*<>C?$#aJ`f{p*AX4-{AjR`3ZwF+`i|)^WfUrE8f}})> zw1bR7?=&SEZ-)At|x^LTpilxrqpCiY6{X4Df*(HciaG% zQQm<{>Hz>(aP$i^I@2CB`YIOK=QxNSJa)7Kwi{3U2=|BD*)$&O_ zfeOGO-83#KT6E4huW0^b=zfOTlxb3r({QLsTGRM8(V~41E>N!?ZySne8=3=>@l7zyu9uCa`F`55@pJ>reqrB6CNj{Jp#UP|c;cHzc~5_a2AC%C zpcDF+aDYITfbdm*0r04);8;&>8qfI!1JR-$ARM4?)f60cjvC$Qi!r?Du-ZS-IDPfO z<=(ERpRi(2#&@#J#Z2H`d7@o;?}QYm$}*0-TW>8by!gDUZooN^?^qz;JcYm4Q<{9h z6CXVQ{=_d-JiQCA==BS`@DF_X4*!*8;$!{W^+J7t;>*pTdDyz%4&ly;`2h#um!z_A zqW;1HLzeZ_H`XMR@6%4<5$|&&qKYg4dqZPQI`}?m2^QZ}U_A|wU8-Bxo6m!gDEWXf z{^BTTK3cF?MuAl~4LUaV3zMMv)OEenK;`4VBk~E~Cw;-<%Ojxqly$wOqMaA!QvsUE z(z%%LpAXb8yVuaF{qtX4RBRZrd%oHWe_H;EO^#3{f6ELLn zt!aE;=mU(FP|@@*qX*u=mKQ2A{{=sxk0x5d+Fc0=Dk0v^$a0}^k7h2sJY>3qlpM`C zz@8^ov~zo&;lMsFWpYvd)MDDcn3WT2)k?@h{uVf4==+wwb5nxBrY3WT0n|3IWQ9}z zDB$tlCh^|og~N81J|x|Xn1(svdt3&cQ>W7qf&B%ohTTcg*Ri)c^w^?%yZ7BzF55FrJ~0kJG;O#7`)5HT zjME5rGj1ncDX36jJ`E=?)ls{JL~RF7kWC_f;W+uokFA21UlIzUVANqFtcUqHfW0vI z6XLj;@@0^DI?FjjsU;irawLXGXc5|3OqQz3|5H5a=ovn}W8thY%Ab$nULUgxB4^Z<3d^A}!H$EC#f zFN1WPzD3`E*rangNz70F)@52C(%vkEGA;?fx>G$z`FdZ3-n{ba7oB%2vxd)eRi~D; z0Cw@V(b1)<74Niq(X4X-F3l`y4b6KtPTY*|I{>@!Ok(e4g6I|VKj_L=Zf;}NP3O;1 zlDZeSGev(PV>@$oPavcjEmQvNG=xF_wj^ANRV>AB*X%o>FL~v%f5BWzN_VMh`_6Oo z+x-qO_9@kWU#XA!dS~s&=Z`VB_A&{Y?N}~hIRc-}y*5Q6+b+)WQT4pZ0>bUF1UX&o zIst&OtXPXOeA*i3SN=Qhp$ttSEH%G;HN(1FrW)-JEgMX2 z9+}!GXBBit&`#4uH%Ka4l$f;b%$)e~<O$E>w zILL(TEE${Hc}Uop(@IM@qvE#yeQ8lgr1SnQtpSDDGww`xEc{t*OAu@gw^_I75$R665p!nS0jHR`Fv2N2upU@H7P5_6ntJYJFr=wHSI>|Ky$ zkf!DL&v$@Rs~~`{orpMOZd3aIO0*~~{FrJ& z>E=s6P~kt;Al#mZqvMq=2A`jQSh_iG=K=7Ir;xoDVfRg_L<(MIsI}i{6U@#AkxfGZ z++Acmq+dn?0*8SUAaO*BH=s`fF)gIapS~MT+uR^?K-Lx^j7fIg^fb_(lGluGizm@E z7&FILQsRNr+V#fy>M$3wM0^n%>WwgsE4*x)sWb}N00WqkcUt_NnNyGkTZ%V^P(epYVF&;(I**NRvmnt* z=rgxxj40Yut-IS{Pi$zEv#4zwhnA`Yg}nGBVBi!;oCO8Hfq*)TqS+v9&``7lge(4? zF0DfFAW|lUU@iy=|9v(HEEg&?~fizs6tzZ`Y zP*40|kz|0{ppz!T0s-A%!)JkzPDTOTWDgXj0uSjI6o*itU;;!v7TO3FkLTaeW}1xR zM-UbW5P;>3M-WiSC|L^{JQ;N&7D^#N8c-B(1mPfx(us!{!z^g9WR$1yxQUMbh1zMR zzLQ2!m2GYrUDfM@MyCT}Ow~r3_py}C;b{O0u|hmvlvo8&hy_%%M2HIpQ1w7W)eQo) z7X>+p02@FX&B0Ix7ATq_yx@u6ounN6Y+xPEUL=O z1`o5p4em7R6n9*%tIxKxmDC+U^O>uG6HSqJB^{WH4sS1i!aPqpYFi@4roVWqhP`IW z3U~s~7fv82nwFhoM(i~`;4qhJ&?QrrvKJUnW3hkolmVTq=W0^b53#q4X4Qi+V|83w zGkGiqJ7%oRREqcKxE#f!q!@_@SIHfd{fQK+bQDmcIUQBSbr{; zIklhh&mmTuUD|B@84D+{Qv~=@;Eja2Yl!Z;YJmb|_h}a!&sU_WhyvR2Y7Zj7VeT~P zq8uyG`U{h}HiXMz1_;Yu6^_gRE|a+{dcs2JMat)0zjK(06Bd=n3Zy11rYnBuFt@x& zc~K^L#ZxVkeyl)p!s3c_w-a3DqWwzJ06^tAy}TGR+_Wm&dwZ{|@wMVcjgpE~4I8l? z$%WWvXIHqTlslJY>m%jnVVSj3K>TW%|GmHktI-kVoc+CE`9qrYW0|*x`;fUh@Fy|} zAJTlk2KdOUep9opx6Ft&sM>SsR(v@(!E!peuU8N@()T=bMHAojGCh z3~|8<_uI{X64Xmxq}ob`%%Q(nsSTg;x?a3i8G430#&&si?)APOEguX@F1ot+l zjCR^TLU2|&TS#kj)=}oiL-dz}Zt2iOp)$CgFQw@zYq3%)#?qFgYzxoKJ zSBP}Xoy%4`fO+o89XBKLlkzF-y*3(l1ea_Idl^obMxx*Dq#-qI;8JLS((KD0^p9T7 zalL`bQbmoEz;s6l`Z~;JpH#WC+U9yePocgmYU9@J-I>fQ%Hz-R#*yVRv)1tM8?|Sw z+lMomEz0U?W-ih(Y=EImT(wb&Ve_xrc>XwB^=;$ZkD1jEmB&qE*fcYjHf8mZOypN< zuc6F2(N!B<3_Hin<*{Q?1wx0+2)vQnkXEuH9@OpLO+ooRPz zO!ypGhnQ^(XiOS=Ob7y^*Y;e)+9Mf+3Xtw^6jZ;Bp1fbaP{Qa|C@nxl-Z(d6) zxmR9lz3||&Ecxv*K=S-6b@=3Hs;K_Pgxs^lCpLoNZ@d2GoakAhUHQGLm&yT^X0^{& z1LIbJoy=NgxsbNv+_s9{AM?U2_uO}x$8V0+hnbiigtf*X-FJ3G*0+(r?%ZBUG*SEjPVm1kF_WNS?{3!gB-%f!MJV*}3<1aBMn;PtFdkmksgPg0(GRP*e#T0oDeWpjDz#ekA;D9X?M2xGEaf#)9~h!FpIe zx$M}o4SfBI5;PxJTLr}516-90@z;m7InrYfZQ%3N5j+-cHqt*5Bm7A~(0_%^sxo4I zGPWcKGie ziCuT1Mgh0_Ki!s~1f${zh&B|^I-<=3MXSW4{NnJf;J8D|5IrbZ4iZ-e0?P?O^rV46 zP&6q#>a}2;Fa<9_Kv7XNA4Ho5iuRTdEGG~rOvNV>P^EErt95acXhfSTiWX#C40tsW z`SetK-*)w4E#cxwM`!Yl!DkIFc0Wnp0O$KBCA@W(%LMPQacw8#a(sB zUC6-o{Cr*kYwv^0#}Te=d~zePWe@q}($?uo1I>%Jc_`4Pj^YK3QB(z*lo84=4Bt8& zd+74IDzKpcvI31D+J+MJr>)a_%;%Y~u4=0hs!4(7Big1b=x-p}7N|hG*v!`-zfSLl zfE)Zylo}&O73g2?X2t&O--Bj?>2U<%Hk5!rzi^v}EUi)(<>!NMZHzsnyiPBfPp&z( zES67B2na{Oe_56$rHgv~C|1}PFMvZ)WobUbZ5pz)w{d)Ot+B#>_(UA4)CX_X6g!C) zZc~+|S@QZ9$L-$%BcOk!e)jLov$#O-PJX>HuxA6mUbc|GmQ0(+CR*ig)aw&*!nJsT zJt)l@d~0}I`Y5my3HkHOv@PsGQ8&>DGHom&|Cjt#sY3oIYVe7BP)(a?J~C|wH_^Iw zqqcJRt5SsgJw*==WrsLYYmasqI>9xBpe2`fAbU&s*n)%v3mRcV8{C3cnT+xiC$w&$ zq+3GzO~w6bP(2%nXB<>dTHIf2L)$_MN)ti2?F5lSQ-mc50x75_3z}Op>K+xUXAhB6 zr3gzB+&5Cvtswm*3z|bRs#Jn-dC!ZMSN$WG>)zImZgqrz^5)Na1ec@5ac8@JQg=-_ zgp4%t*sfT1Nz~m*u(Zgpz6fEbmyGGh&M^}(azb`h(OMk12Yt$qBv6T_de8}49Np~d zfBXziju+1}1u*?2GTn)V)-flYJ9h8*mhYw4FD(J0n=JH40%_|6PhTu6IaJnJ;u*=P-pkSl$92TAlAI?0u8uED`&jYw&5rdf1_9i)tF=tr*f zzG8HdGwHNM)`+AAr^B^-G-<*iE8*(uxq-v_^Js03rx*QeHM*W+ZEbiuKYN61H%rML z(c;N(R-+FDk?L+>jC<({2T6N7>3LT$#&&kI(b^m#FZy&aN%R&v$%}5T&8f^Dk<#W& zchVJtNg21$kG$x8)##!ifEk`WBB{;k@B#?DR1$E7-gF0L`&Z-RBwn*0eMqbC zkf!u@j5!`S3oaqXH&CAPI!E=5r%7yYM!Q@d#bvC~5Bykm@E5 z?%YU@UHD_nsWW!r^5;g>!bqk=^!tx_skSFvJ+eI~f}S&?h2xy^rSI!1EL>ktwhzau zo+8+XXY=HqzVw^T=m8mqLMlnL1+9}zdMd%l!>E3*%NgOvaTZ(9NxpP*949|##KV3z zHD}~RGAW}4{m7T@hvNkM(tDcGW+eOBl$?i=1cRcc+VWf2i1&prvA!;NoI2dsrJ|Yb z{ZofgZK=yalI`JGRZD_BJUa)eg;QT>VPlg?l{%{YNCr5S#Mi=p=FnTYy}F9hletU{d;=9j2m6C&8=Ecb3#iXTbX=$IjwVCVQ8>e28gEYXY2l@h23shSy z>{F|90OGKB_o3OMw}OmeG)^68cLs>Ez*^8SdL1urAPsI0V17COqji3sHP8<)Ww^2Z z(Fxp)f#k#)!=gNg9^8yA9qi$`IY^*8apH^uE!FMU&2scF{0LfXU>lKmNo~WamydOI zo!R$)nQY`r13M>;G_X2+V*2!2-*fgQe^vetd-$dE$mu8I#vTlLgabTT)soKvE}e_i z(pUEgbgAfMzqDq63rKujY%Gh^Kx9x7R9j4Qk^K7V3tjBkKo`8eIw}__>yQf1MV?@h z;=0%m16{oJ)ei=`bat|hU=FFUTx5X$__3jWwsCItxn9Ogws$3|!H+S#ed`A6`m01k zb=CzWzoELv5toWLZ120IhHzj4g9Cg_l|O<}FbKrx0MEXFTt4E0e8YZuf&s22@x5io z9&zzDRM$A-@@7bt|2PADj}-ToU3`~BI0|e_Lv__7F3h*=zJy1N4@bK9x;W8+t*FND zCl(G6}8Ux%xiW_A=40q`rVY4{E9F9Dsq_KKQc=v_I=z*Mfi!1+e z-y|)PegUavsDAQ@%l!k^Bi`nBfE4hC>hQm$O&JAtr3=VTZt|85ytIKD3vb!j8eoPA zw?BR+|L};5>l=1WlLLJ6_vD?AGAJK_k~JM)vl2mTo{xh z;3$p&IMPRjidFet83in0p9UNN8`?nK)4dVL!d}S!y1= zMcw0&%gjr5O}DieFd_Q?Bv;2b>@pzNy87L{{contmp;qXuP#lm1{oKfx|};#WVVpD zxOt^0X8qUtxsKT&@R|E{WlBHvayyB(fhrhX$5lmz6@`pCO5whTU45Z*f}wLF3M;dx zT%)e2a$KnND*~f+@=SgM?Ba7){6R9&0Glt*^bn~PU3PKUFL-k1!Mu;_k-TSOg>+dl z+jPNEJ?G=!$ON6DD>AjVVox0>*A*F#c(2Qj zKTalY#R?rKS530~`w5&XDm_4Ov`&%PDQX)i7|Nw^y#h^eMZyduD+ zSk1@D?vt$hO`^7k1TnX%60ZrKH>vdff}^D4WXDNX*(<`n@->>#h2`f*oSo=YIz|xV zB-*|>lc;d0o=z6E#R>)xfYue5TE&-c;L^}Zn5bfFs9A1slIt3=bF?Mm3 z6(3F}8e{Vnm>#0-sS3;!ZG@CjR&zMn*BBcdPVOFIZ6k@crzkMpjK@0Wl_d@wT|0TF zSnV!>6HcXn6d27~HO7ld)DmECSz0wb;iv$nL&P?FJ#+a8nP`a3U(e(>#CjefSG{4q zIYF%&1Ui2`vs1)&OaK!>mAFUn45QA98e%KgGhd3>P6`A(5wXo(&jdUehf%9O2>^uM zz7tOcR)&<lO|#-4a9SZEd7%8<^WZqiU8|p#UCR3Zoz6EBEM@8!0e|=+$5y*v&t$7 zBtPmbdJ9(V5ZS$-r7ZP%>FIM8FjqabNSa^Mi#Lx69}*rY2Vt*YCcHzHNaNNGYt%| zK?lizhfxcW_7eHI!p1!V#`4v`T(M4;e?Ea@PM!Ute+RlBItNiBx)m07gip zJz5{DBF{vKw1a^#^s%0S3tvla$#Vt!!QO|wea-n&Ix0YSF>laTFOH>eBZgl z)*aTUbxayxdu)d_c#|@$CJH?`d-mstxV?@ayi{TQH z#;^x@@p~P80eupv87=Le`R3cJC9Fo=xlC_EwaN<&XHQe&j-#_^12wgSj_%L%ZYW)T z!O%PZ<4e#+b&{Q}G`;a?Xt~a7QUAN~qK-sCHAz*BkBh_~1xl8INWTl*0b?|R{pkFy zBc`$peqGhYhMahBd!nwYiY!Am{Vs3^jKs-eM=b_V6tdBd@I*g}CfxZfcIV5SZ7F9s zu=NbLEg!hI-dq6s=bkNey+D#&0(%CPGtqIo&>#^(Awe5PVo7qk>g!Yk9UVXnqLDi!Qq^HC%w|9@#%I&+L25ryf7{fy{UPu} zXzOc?vBs$D8)BToceFM;$hjGgPA$F9xOumJRe5b{<%47vJ3Z;>X=`~g_P|+zOb@x8 z=A)nm1)7H(0I`Ysjb|O7d;|vSD^-^$23-@gzys=!;f?nL*jBcdq3;p;*t-Ger<@_j zZ?u213Ae8C7n*SY9I?;gj@Z|46v>s_?5OA0+MF)uw)w-<(oG>UUAOP53Nz^}W%f>)*0RCY7m`|(Rb zKLN-u2>4m?r^}s)#jT_MjzWP}VR_ljj$pr52;f{7aJ~Xi%+7_J{!(9xn<{&KvGB&g zXN7H`{d4cPYH}xt@=Gk~6c*mQ_-`aLU?rm(v=%m?g2k*9yOIuO>Mi6m`F@%uji9~>_2LDWW*xS z_$<-!6lnJjNf783B%fr!YI1oEFA^Qd6an6`vl>mH!TJ zz#s`UV&NVRzC3d;%+#zM)=Cs;B__It6AOv0B-geavPz+C07Vr=;_xr2kw$X@g%ya(bnce>(UqZhd~0xw1LAvjz>t)aUM3U zgDP_GOS}~-cC6bV2cR(4Us#%_@K%wdCitgEqy6waAZh6hL_Gl^j_k5cD;6c^r_7N> z{DLe;RtoL+CeB|t{dc6x({X_|twu18tR&j+q;XM#_4?=sMTfT+tI5ex1N??zp%`dozkfO-JspSBvtm-cPS)UFP+#>?<<BaL6)jKY)s z09dFLH^2{8P~^*40-D8@%C2Ma!ejC2SV-1ryl}Rp-oizib11R3PEwEc3l)-8{}?k8 zKG;jKl>|03u`LIx;+Il)GIHrhv}2#4)@6quQ)WLL5{@WL=-Nb0tHqr*(t3yjZo)R6 zl!9g)c}tY`$NzUko%1u=1Wn_Y(~|a|yooA&NJ)?Wi?z43{|fcg`IrZ9R&OsAZ_NsV$pNj$B!U1e?FZ0+MbQ`pNEjqhS8BF(tvQf}9u9o|$83PcFMEJBQUnJ)l-VOMCZcH)KaOx2@xX_e=p2a` z_2nH!E$89tK@4WKm+hq&JG!$krR!W_ce!)}!ZN1*%f^VV zWoE607nfFc2p-;!UMZ(3Y!A@|rUIOz4&SwS!uP6)yJ+5%@e1RP;O;fWiThDcbH}8D z3v@grA8c}(^ReA(AC#m%mB2jiZo5_UO0?OP2ej_G%iW?oUh#B~)TgqT3sXrVf6M{c zQoU1Yi}y-XZIoBuHL~-0SJzajsR^m9tki}1)OM1Tl)Ghun{&mbRR-`~mkKW{Mrvr3 zrNT=K8cT{RG&Gi_q&%GCq_T)yD<3!41x<~F)b`Vs{O+#a+#=NSii`8z!UBq>Mh&;P zl?uOJ5bk1m%*9#TZSF~=xte6mN=JRv;>~@}7k2NBypy(Qa4U4*4$ot*)s`c`x=cz^ zADoBII3yTuk$U&i^`zg9-#;9;@UhNbJI!MqY%M6u7&~oU-6{TdI=L|eJIO6Rx1DfM z=sYVm^IoJZWq3I^HMpQg)$8t!Yt`9fB<)I)UD*rz^o>XUdS92*?=QF9s9(JoGm*pCjs@Cn})>sT4u22=_78$|ArR^gDtJ+7G?IsFyj51Q*bBmq6 z!_~kN0Js#AeF2i8d>zR3%OCWv9Ei56b26#IS0a!x^l_*#2a-;D_%B7&V)js&Jw=M) z-GW~5lSs&EK5Y+fMSF9LP%jcdnazp?)vz(km)_o@|kD3^-`^Nh`l0x zB3vjIyna=wY}(cI;`gwPn2Xu;y*4nR%{6s_zZnI>dWGeCg}sur$15<3x7khE5ijYY zyTIpG3~MIWfK#L+u;Bg}Kkem^<&M=|KK(JT_bm(zR;>x}4C;ph*0@|f%*wkn?I9PR zWqMI|t{L86s-L&D3k+U+O#)v2Q!%C2SN08DjWYS#V`UfrLPEVd{uX;}so=U|HKcqz zB-9~B@})$aw)h`KT-w0;-9JwAX0P4)_MlR_{?1Cv^!18w4}j@cA)#M>qw);i%?vLB zr%Ig?cTb$-Wu84~Fe7p!F2p4Wc9=hEYY>0bg|gU?TT(L?q31x# zw)eZ99nyE@u3$j~wRCj-ZtZ~xMTW}7oM)br4}2Zw_=5}jMpH~D)h$5s7NFd6KfN;v zAbn|Y=Yn{wJ0A4P6x@mW1zm8(KTjX7W$T`|S_gVX0^u)!K!*<>US8aHU*ibK@Z#Ou zd~dqfKd{oTUu0OE^G~?4*3v`m4h$5m0giC}##?J5$QS8oSqS*U!~ATv-#@1k@UjX|h}EGdmAVE9;05 ztl3rcwU9oTwI*`oM@UxI+L_z4^%tvW>mA%z4R0J9x!LF^`1Bq4$oSh$t?Y`~`jZ)C z`-gh(oi15tdVzNWE@$f-fV$;BLPAGlsG2}D-vq`8Z0<=-b)*_a9C#0PFYp*lPf-93G9?8Z;Vnq3lP9 zb2@3LfyxR2_fe!7jqPj0#zY*fT4?v*o&8%J1qeyNd8^mAfdv_$7kKvpQ>Sik-D~xN5dO0H>OuCPuFl*=^@#4;NZX`v`48cbSI% zYs!C%qJwDf0i+T<3LFjJ2jH4(uUCI|%| zQ{M&j6$5y28rQa@;?xg83@_ZP72m!7#Fde6mDGmFN$<{*&7F>+B5*zchmlHKWy>Ck z3QYXeRRABCGZpdQScGq^GempO8G>Jf;9+IcK>ly6sU|^@#$RX>{KvIpQ)QnF=zP;HHS2dL4VwRVG%YF5 zB=wjLMv^=R%?AXPBl)7nmj6=W(O}cDlZOp!-hF;6QtmgM{}Vg!CpmsqS|YtOzkE{c zflP4Ks{Xe_pRP|0Miz~-@utXU678g<<%VN{rV;-gyRG{cs1sUq`8PY0>N0`6mpT`_ zl0<(Yqbq4*=GE!Y2Llh3cRw04|A`wcv5SeObBxX;Q-X4BFQuwZ<;|fF*F}bEJ0o4Z zl~dJV^A>{{p^CL){{zp8!h@`9o>G)egienw&zS2x6pL0qJ%;!N+0$b#FU89{9&Bwq zHfb8c!(8feXV7PJGfwoFFqOX&_T2z9CvHAn(b{>N1+ z?|K#7PZjN_e%x`lT5b1%yMh--mFA)sSu$^^b<;`_W4|z|6rnu{Gu-;{`=wAr$B)*= z4NHVaON2gK$G`=G8OL-?a+xJFMQy(tdh_myEeR9);CvZqyyHehZT_Ai6C~n)fJ@lT zt$@Tol|U@j#dZpTi32i!v6n`08M_XXt3W$j5I+&wf*;dgmw(wGHJ1|CnI=FC*j3a2 zX6x(5W4V-0Avm!}9cs9DzUdO4Ki~Ynf=f~U46`GQY4PVzYeFBeP;=3LG4|upc^%WZ3lbcnzGcx|b~dbtU<`=d_i#rkcm-2bvV zLsKp^m~g*By18SOa#CF@`P>Ts7qCpT&~AiIDB=Df{}t3KATkWZa2TOBrQl;FPs$O01&<60O)`qp9OEx% zoxAP$nD+GX-^T!@r5ZtCA5hRlb9#k0$fp5RCAQ9nPk( zKaBCU3dF|d#e>@*{IrD8&zFCE@A()qviw{d2twvgGUJ#iYdbJ7u@<>`>RTf~^>TfN zX!lFH*9=4QK~h0rOHkZ~SiCr%1x1k|2rL-N6L8kv4{DfPu9^G+d$_}f;O~dBX6ew`+TKC9u$Y= z7iUH0lF5)Mq}pG6{KIuJvfR!C6tyZ8-=vcf2UKhqamHU3@apRFN ziUX)YHP%}aub~>-X%8~yKxip2l)H%S5D8KkBBN#{3@oizd`T6FG~e0^bLE4SfWU5` zIE`4m6rKe~k@*qDU?@-Qo4~4Y1^HY9RowvF5cq+$^8Yk&=Wb%XwQSFqI7eMLN|qmy z4z}UvN65obYWW~N0$+0}LH&@N;f4FP0eRmp8XKQRHh5-kFuJiV1N3d#1$SascLbgEZ zm4<^s6<+dX*{!GTRA4H!cpA2vX-R~p#RJ_-1ZILvG7w-AG!7k)mmuoG{$mmC_sO2>s8-P+V^a z8zPh^o``7xR%EA482Fq;R5=lC;&}f5uu)YhZwkKmi1hB>Z+YJ0#0sd2M?5VRs-iDW zbd*r>-#~0DmcBB>{$}K}Y$VsrMtUTFN+FWuLIsWEHpSy*h%6zM&IH655gMTasYQVI zKzZU}liJ(Vyb5oqPXnS#%-n`A5jcE_C}9;uA_8g-P2@V=+QzB*P0+YOH{M&8s4J`@ zB})v{jn9Lak3kYUlYCuY+@W!kO~^By$t~blD2Tj--%+mfTXk9!^!-Mi-Hz z$;GCDR8o+xx`^tP2DW|Ersun}O9gl7|4w%j{E1B`BOP*47UpFjp|OkeM0KFw)-lDE zB3%p_b%wp_IuZ`Q0!eV85Y-9!OcvRejKyG?5=dJZPu%$PaSu$EmO5ea3PjrmR;%-; zzQv^xxcJ4|*2fqcx42V$H3^kjEGbPwkUQm)KW41iwzDLQ-0yf~%lD_p!)<#ds#zGU zlU>c1D&;Nw2VwAAkOVIZQJavT%_7^8i!s<<2_#p{owQSrUj|7;EE}-4x$V1l&26)FwjEZpx)*%vii#r^Y#QzYEuCcDOA>vKpj{6|=9Y zn`|f#hc`eHyeULof=UhxVNZstVj+@93XCV_ruqgcox{@7B`h`o%lgA=#s1W{cym(? zOnp~hn&*onROYZe>^oC)So%1ElZ0f%2Gu|}d+Z@iL*NT>moX+4=7o@Cs;L5ZBfJk7 zC-_o`I6{67i)>HEs$!9n$W$1-1;P{a=48R`?8(_VtYu${bTj0w%%6H+9QVf`+4A|F zrz6iLSxYt0(w>}~!%|CunTShPYp5b`XLG;$Z{?ZbuzR6!F(Qy^*XM9J29h8_G0{qG zDlqz^!0X{v*0m`V?Q(a;2cnbe=JcCj|23;qeB3a%%&6XqfWab zwFI%*>v}aU^Y8LS($}*j4e_N%@IJrY?SHfWbw>~)O(LOS#wd28LupF4sB;~8j4$x7 z4=aIa!FLsv|q>g8c{V_E2<)TX?hHKBWl8c($deGCE4DV>Ku zD}Df21(~UozGs?y&2BiW!w=8jzf>K$SFQBpt=h=Cik3HrK3~`Vp#Q8pP@g1!X4d^x zaO0j2$nxr)HQjrUUMy6(nEUsUgfa~X1PKP`PAHtI0`Ud#fosK}fqaP0Xgpp8#X=y+ zP$*Ua^3R`p<0lfUR?VeP>7V#d$AkZ;!(4X535 zW1f7PUR#cI?}NpCd2l&>zF5@VHTa{H!Tdp(!k7X48ec+hYzA?MVCgmL^WKJopS%r@ zO&UtU;c$L_#e}O>ApQV8c&!*VkdF)mMo?j~5M(kGixoirGcX6mTUWa$A;9Xp6)6|J z#hzbX^}l=V=G}pn`L%nmU4Jtwy0(Bnc<{@8%GFoTU5q?rf@xm5Hrg+nB6pAud^id` z2*5)!x*>P$*r@`s+=FDAF4l&tJHu}yD@3b^#y7%a?QdE&Rt_;i#u--j_19%2V89eWzqU&Qn~FC`stX!mvt;3enQg%zX+9*NFX$^SUw(| z|1oz9xDB!8*7IE3p3Rf!?M-B3pZ3aQFb(0Uv zHg74D$$jPNFjdCWlwOOjzt)MUT&usm9CQ|4+NisFw(N28;`a0FRWwTj*RLJB6ES@N zhl0XQ249`oD2m;*dz|>@@gVU{dgGxF9WSRI-|4K}oDbh{>9=RsCGW{?defHtDLtuH zYEdRIIq-7e!7P;m4Ree4iOCX)$*m&d`6?UqE#ecCUn0iM>U*ZX!7e@hVf^{zw^ft- zuX>})uLVRVZ|OGg?KIaP&3)xmd1wFX(v6t5vBca++pTGx zjyt8+7$2O4R$_7sBA^+Om7?;>M%dY0xGQg>?d$53x7V-fT(~z7y;{1O^Ed!U@>byl zTj0)*pJ^s)S_CFQuOsrMHdGVi-IF`v;$A8|VW8s=Qx$WZjqi?>r3 z^bMZ9r=!XY=BFM~4luP(sDsb9GLfqMe_L^AjMlDIL$j{*2X@nR*##L&&vkn$Y$YiuaZ-o zsVQA5>lw|IkNJBTmHf||tm-eh5pbMR+wXV1#WjuUJ5$6>aJELcl5k(w(dOdz6z43- z!Z0p7p<9bRh>%U-+%wXRI_;uG0_UA5ds~sFa6N=n9gx%ES93?K{ z{!Z~gvvayps-#hBDNkPB=)60j@T7t@ZWwE&&;nCvapS2n-(wvIu}Y7)#^PM%euWk} zg%+oW&X0{!<*ae}8uBe}`l*kCkQ>kVvYqo-&buwSsxL-oh9PH$!??z>JmppAynN>$ z5cwAS!ki%F<}ZS9?y{cO~QGahD`;*Y$jN2Q;62lN{EV z{G~?RPv1A)DjiU+#{r8w)+(Ac^qe<)q$oD9FKMTr$*8Z_ho+Mom0LxWTRoLO6s;&7 z5B_|^boF(8{WtwxJ*NtDpSl@n_xMNUYq}rbDQhgZQSH64bI;w9t4G}&K9+E`7as+u z+GaR&!ib!(Ec$y5%%k_V8IrackFpdB>3*)^>9!f3oG>enoatXY2b+96=p`_6awF=I z2oTa(BqAttJ{@Yorit$^rka zfMMITca!zo>-Saqk{`%c%B(-?`#1%s)|w{^yn&Tqt)xcvOzxJdxoM@AdLT1zVjU~6 zN(Y?NwNlSo;;OLwrAPH9>n_z4sU;J1c0aQw_$aoN6}~*rV)kR-wONHVS%r05o$4Q8 zv_78R*U4C!XA4`0fvv;jGQy2N9SP96=xmMqgtby^DK3;fhAhnR?R8E!N#zOq>`wJO zXJ{z3xNS>)bPB0<5}ElGYo*lERw#Q4xjD0HW?CV#yQ%Pgb6!P;?+fS0CaIfEQad7$ zA?(7M{6eE^g+GeT)Xto*Uz+O+S^MF+MJ=f+PeB66*O8m=_G`&6fv=n|d`H6{<|*i^ z2|niV-m>7nu7vV);h%sz@j}BI(#`L+k|nj0A9*4+3i+L|0DzfnTp zD!oTGPTvZ3M%=~^(jzOhk1~JBLhMXsXiwxzhWGl7FI%CvaU1;nEY6=1U*9j=Re{?O zm3Qdys_96Bqa~`#Rk@Rr2I@zZeCt4qGs;{18*}Vs88AORAA8kwPCSkvhU#4BQ6oQryEY3dXkV8cCWeww!l(ZRic`X~ z1QBC=kl#Q;`@qSZUP;Lx9h}DbD5T_mK8j~-jvh|koX>Y75+#qtqn%?7Q_S)n?_rU$g(`6xdq7|A(BJ@^6ECzTgh{y4+SX z6P*C1^%x;Y=sJ0z2M*OY%J|NCNs{4e7{#$L^gW}&m0=4V` zTcN+zc3B4k?F$b$bW~>(xBSnjF~=>2S^<|gfwV>bR?!y%0-Zdhb2Q@Ap@5_R<}+Xp;@vCYWXhsf9^dqbAO*ojQ|DIrTlvM(vSp)tf*5)x(0QbdT5WlGsf zwn`C-Y=x42ea}qG@Bci{`#kS^UDLRobAQggoO?On^L2$gPD{rLp@A?$Zr&8LmAb*1 zVg-djXkZWs2LuAK(ed^QaPbPTx4h!x;%_H=+0&yb&D89fJc6)jxE(8bYS4Ki5_zVM zR?r}`O{Jjs@x>ZU+-DDuy#sZ_y)mm-OH}mA=hv=y8t^8hKXQQ+-JWz`v0ql9J$2c0 z1T*b@z4%-DVUw;4E=|$d6_5?L%U2XK%V^LA?y;&B=FCCnPA9SDxOE6g_-@i8<7M7r z#S*8YB6LMa(|+sA8LfAvmH0wcE=QWb@^nf%zS(q%ohoIi5c4dr^4H#pQQ`#`Xyfg`L&5kb&6bVByY29|YI^Sv?2sDw-fAjs8te5|9PIBN z*r31ks7}Lq3(wL5!TpzQm|ecwRtntz3H)ON|D3(g;rzUP{N>Jh`?*jy!H)Eh`Kdgo zUJyBg@%`}NK66o1GTGFp*ZTH+HA|6EXNcR@+6%qjAAYj21-GsQe2z=;`2J{Q@+#-d zaIf{)yCpvj=Np`Dx4cZBru8Ch^Am}yQ|8ZsoyOT@S*GCSdAOe z;g1?fXv)eB(@MH09be9ul1EFw^3Y}Altkhstxywzplct)6?#U`8&tErJ5`gA-_iY~ ztY)+E!pgAA=zq1V_03Y(b70Rg5Ms#xw9C=QhhkPv^0AAw3JAiQ*6y=U$ELrs2+`fq z$qQIWJ}>j2{5V3R^R#>L##$iXrh;qQ?F@z{#l|bfuXvdao??&Hl3Zwv>B9_{x2yEe;dXaQws6l&;A_(wCA8`~|TR zOM)D^GtFP$@|}kwkX9R~O1xgoTQA(8UwXH-UfD7^S3RXL&DnJQLx0h_hQw`=rm%EL zhvkUNrU$$hEA58scBXFal_l(c_5AN!Y3$CnF%3*Lp@Bf);HSNxi-*6QEakgAb=a6z z0ZCYdjS0OBJ2K2H-0$ISoEIegl{TUCThzx_G0yjf>y9wy!|yT%tH$n4?9ZI{x~;#W zudwosrR*9z=audUYvoZHo0Y+k8+1+2QjYPeSm5mfL#o4y*u-MZ-^CUxK9``)F}yse z_MRke0%KUZ((jXv^W(J<=-oGzI-2&SiKNMklgXT$L9`VNN8WoKwfo{N2a_7-V7f@T z_RCqxux7nCC>wTK(!7ON@#{q4>sWj4hOH*#5mWCAuU9cC8OP6J;8zS58rTUwuiSR- z=yxZ2-@G!o$RB%Z>QlF#TzKy0e+zA~OS+$4fbFja6@~@)Kn#=knNH3{9q&-~eZ_?LL=lWcfVjg8Qz2ZJVZyne*3qJ7E50$Jgqs5O&3!(eSnrGa7HXn+Chh*4GpN$!Bma1(9KASypmgdB zo14^L+kw0Lo>~T$blEMAa~EoFhIgcGt<_F*jo2aYmdah_`N{K@cNb3SZ9-0UOR zXl0N9e7`pQR}KVu`(1SM_P$8j_+R;u^4hpf3-MwRzbHTHRcwdVz0|PfMfEDOVqYt`t4+ z#+38+9#D8Qx<9wcTPyJRi@i#Vv7~*A*F$b9bTKi#sxonbzOm-RAws|W^C?n8rbV@Q z+a{luL3bnYyM@%0hR)B7n_sI(g->hmiCUg*(&%j1_S6>)Yux#7Ss)o2GLr#ljp70jM#A+83A?mp{OZ|a5SN!H79nXf(NtB<>$omE}%v+rrkbe0q`rL*?- z%Eqx%jTQ1Y;d(1im5zEd%eR#W+>YfNP4YIYaKH!!sW4fvj1^Y;C$YZy=ktcBpE7Uj znP-{(wrB3o8$ts`4*OaK$3ZO)OgIFRVsc2j2Td;7aLOs?x<2OUS{EcNH+f%>n|DQ@ z2r?{WvZ$>nxWi=|=)dx5_TIv~Nl(m>ctoDaZFkAmhOS*}TifzC@&tY^Ro4Sqk^a{U zXZ?MuJ7Q%unN6g_ygug*%U0fScz0{zzXeEdLM8kX@Ie&#$N9?_{%($bF3uJKeiyu4 zsfB^18w>g!Qme0NT;S<9&wM!Bg%3Fry|jo|Lv*P|9f8mIO(^R@<9Lw+$WaNU_$suP$33)qQiR&Z^cB=5jCba!2DTUae}; z>Wl<}J+8(%#CO3RE>7RL4gEKefm#qd_E3$eA_(MrHzNe~OHaz4`MbHe1o+EQe<)C5 z`N>DKit^6Dv9&9aPZ;v2FD#siaQ}xlHDN*g;DEujN4#lYr34-Jk)F7)&5YOa9(j&# zU&wwa`(-rk!^3d~+T!W7W=rmpHy4F7o~&WGD%XPkd1E1_ovZa=YtaAk=JvvFwMNMN z*yh&Wc5%e^Bh8)3>emrVv#-OqnwECwn<~PVss+O~V>LJ43+}9jM0{`Z-U*@%?>=XZ zSdG=(o-m78?euP0(+pqQ2#MGW+8y4Ts@wfG@On4)b;Ne3gnj7zD<;jY?Ygn8A3XNk zonu>@?=<)Nk~BAFSv4c}1~fM&UA?9DmIq#kZ$6V7-EM!qJM;CtFpE-&E`^Q*;RNHd_z5lbHQuR&%FVbE8jUY<<~a?_2Sm?QhrWVnbIu1^2#RJEFNa zt-0HICv&7@jG`q@M z)*cD&RKIRnUoPI8nUAm;-P#;$FdnrNvp@TfarlkqM&pREH!>|n#LHFOqt$c_3HoPi>7ItqKM_Iy>@D3xJ-#<`c28lf zsNr<;_KKwcyQW<{=gr22l~aY=n?Y^*4?=dt4z}#d{7CtFHo`Ri^-gw0i{#xCI|GL* zTBN?bYdNHMV3!cK<9Rw_CFALl@O9w)={k+A<=4%t6LO%Pw!M|n(*tgnzUw8Tn zhJXJtBR6u~Z_r@PJN&CnwCl%e`%%`j;cK@v*P|B^2i9`(Cc+nYljvV>?JVD!Z5Iq% z8y?&EVsE~;$I-GoB{!Vc;tSh*!PUG2;(V%eLa=GCQ7~-1dF*KT_p!Y`&AlI6Eq$9H zux!6(M2zh&J=WY2*eS2roAn;l2)3!NxED6zDYI)e-#6yn$-4bUbG)EsDD@c#z^#eJ zqY>M?N#VBNc3#IP?s8>h+blaW?2(60q*cuI*NwfMT>a;H1S5||Q+e2zz!ru_t|d*a zI}3~Mb#;52_cWJs#*S{D)J{FW`+0BMes9WtZ^KE2^I0DJ)A}ky(m-DFzN-NSz>C;3EO0*3vq@0c1Z`2W6!1Pdu$*4yriNh%wSrF5D)r_7g>cio| zv*Y1G-5gHOn2drqKD~)i5pO%izSK7nqaxZSB&3mz6g28EC}8?Q!QNg*j=XIC!X=$8h`td17v}t?BU0X`LP*!wOJ&D#_2+c)f9!qP^K%=-BykxV2(@6E- znh3S*Ft{5EBy%l6e|tsgwShp7L4SA4ZqVM(*L!dFeoXDXwU4C}7qw!ispzK_W=E!= zNQMcz&g(A0{9T5AUQrAwk;!yd>10Eh8JPxe=dIGLH5wd9MeQ@{e_8iqeZzixt7Ug= zZ}E9D24Q5w*tw|LV;G%)=`h^iW4OPgV=+m;P#~VN&bv7l;eJVBpHCLi#NWn*bc^&8 zL{c$7EB5AFS~gYs6@|TsUcfdRE1a5bGyXgn497Ftt`7juPy0|Frg&DIX zPQhPIb+7w0CzwpPXdcM2nArH{(0k}A{W45qIbhZzkM|hYozivfwI>--s$sl>gBcHv zcCNnsUea9la<0X!;-cGWd$%+8FWOgJoX_s<{K!x$reA$eroWk&5=Opx%x=@t&E4#| zt5kFEu|*dLKl>L3Yc3v_B7_bfeIj>gU~6&U8Xw;nPu5t*4`?{=&GCqcZKYSGY~hzG zbz+pcU(dTffp6kWRK3t zd5RrgHYXJATzvtCN9{jY1>1foeOcoYYU?&-?=wSDo^R`~@~EARAMYdHzUfBPfB)99 zeB)*BabCVXo~*qLUkGl~D#3QM^yRV($(9kyX$b+o7h=%*d0l{LLr>OK&d6Mv+~ap*I3d3ytUHn>*%y}l zD3I2N`x3+no`)Tmrh~?yBNKEW51U%8zghZt@T$O#AXp}fsz(2+%7mU^M}M6Q9G5nM zww-d)X|?X4VYG(u)54RPxDxZc?1zrjf;zCbI zX*nJ8Nw<(ft7pFbnZk^;ga*uBPiD^je3;9A=5`P-4yyQoMsy#ot0NcskW^%3buu&3 zoHADE3G4AQhJj7=;Wmfjr6`J;L;r4~l-7%XB5R%jJz*X3%;<6HLYf%M$b|clSsS3I z`7b>!BXgN4dRqR~Gm<&kmkYfk?_*^JRV$zoX6P}N(lUb0JZA14J~3X#F$`Vac^!UT zOmhSgVgn|nwNhZ9o*7F=#=o`<%?lX~jD*doz&kz!d&Vk8LuBB-WSK5Hnl!CQ68J6T z$iWPYsDob{(>iG-gCPyeMxC^{Uzyst?=nPS4Pt#tj@H$MCATV-_wvDlHfWkkB*`Cg zqrBDni{*J|UX??>5WRh1FAw_u*~@p(eYq3-U@u+9%Q~yV?K%-p(oWjGOWN9$;9mV| zHC`4hb+`eM&6TnG^KH28a8k&Yudk-pLi?K?k;W~F^tG>!<7FPuL2gCbR%;^~Nh63r z2E<)Gs`^7|+mNDX`JnvfHnssS8ogUiNKKgMFIvNBP0G;V*egi+!YegnT z{{}Kwa&c+3zBh!SN+J7CL9J?OT-EQ=R7GR^z<>@HFp;?8V_4oCO>`83#nEsO9+(0 zQ%D{2g7sYbl~rIV0wt>y|7MjJEp_SHU*e2mh0X67VW>RFego)v^{{Hw+{hzWcuCjF zzn&N2aB!oFo`s{!5$y1AF=rLVKL-0-I{pyhW@Tk0Z@{^DR{>Vh|n~h8Lo5NA1-4EUyLQzs6 zpE?bpfAWb%61b0&PmSl#(KcLt4S1*1>T>KdY9q_a@o?+-*b9a|>r+RF=O;Q_R<5@8!o#z+_P^Tk3|;UJJLFayF0L4sb9le$4omSa z5ZX6*=XcfcbeQv=u-F61p;G;GXw3WPP3Ws{n4dve8(Zry$Gp{*s>ev8;_B(r)dQ_# zzT==xsK)B$YRaeiCkefNvJF-9Hu@>&=%l zijJ4~*3?N`z)i)zf84ay`gp9peaHG#1;_d6D=l&_w@%8dn{MZb11o+64Ij$fdHGUP zoqM}#pkvH;l45G&zozN~rlr>n!5`(+U+;uDE|`VBzp$`~SzG&2-?C-Z{LOW0_x;02 z=j^Fnl79q6FMb)>VCx+#d|d#c^V0a-Ui>-W ztjb)dt7J@6{Xy`NvYEcT>+ra+r*FHG5kPrK{xKbMxiNEOqFbVt_rzij#Z z5?Fi>^YeFHt*OcXte7~wS9X6t#Q#fP#G9)ft;hF_4^uvB8b2!;Ax~}h? znLZqyP~Sh(0zRaq-HRW)GcO*yajOAw^N{J@p%Z(v{l&%ue}b!mb^sW*1NKQk@zjC6 zcc%?muv5lA_rOO@W3S>NkK#L(8(F7|Ufy8T(xU;@{~zH$r?ImPj9LN`pu|;JOm)%c z%Az2JFK=*aiNSE~Tw0zX2mOzIfmB6951(>^aPfkMV;T3SIEDx~KmxO&pv94H9o=w10tF&54AzlaaG)&A`cJD$g2Is#+-R>@tbZkp2!m_os&>%O zSx2JkASY|_zi?6iJFd&IpCa!m&66u=$%F3u`XN|8^a~}ejuV6Y9DG`%y7~kWk*_7H zL|QsO&<73@|D3Br5I&KpX^6FrT;7xeBeEft$LST86HTOPQ-Lvl?8?$H6VuPI_D`l` zOrsc@O!vDFtf7)23bIhp2hP7D??ZbW#4I}zB(;z*qAxSDmPB)=O!0SnfZK?p!NP z+hZ8D(J>s4EIE`19pM*+;zhL*z;Eil{(}}NrQMHJJD_xG6azc{?j=Gc5)}lZ;K(?| zz=xcC!5opITFG=oUnb|+YvsbgK@Knd=WyK~37iL~JgxY8l|esviYXDZ_eVwQqjSOG=hE=C z?BRKwABY~+BkWKXJs@+?knVRk5801|dfL)a0yca9^+>C9Kb@ELDa>w#G#?%_ySd2u zdwsF=>QeOgYNO$+0`4hgga6q_Qui{W}qVt*7 z*T~Id1-|9m_>*4Vv>LgITai<-_5SAsd#6Gp3rGGH87L9t#i22tq5e8H>r`%Jo}TJSbk@@0 z1&OVc`sYz=l-^lue+Cp3d;jSdvbm4$_V#x3;-QHSTKi+6<(^-9%5#`aZ2;0iO9w?k z;{Qcbd43_Kb62QHKWL(@*8U)9xi>)GVK%h~NLwu(9tzU$UnG@>itLff9kbG=9jU+0 zG~-OO`Iu>@E@z~EY@eREI_j~%1Y7S(I^g0Q-9Ii~gR=Fu>rtNXN9qqV&A1%Id>7XO zY({j;zHGhSRtqEDr9)|f3nNB!0i2Y8kYM{05Mf#r9!dZQEtt?WlugnD0mxn^FpBJT zkqBA8vHe+uQDln)iSK*`cL z`afAJm>;4vO8-0Phb%Abd4lj2~Lvf&K~9=(dV;ljA{ zA;o}AiaL&>Oj5r@s7$d&0rf`gBG&PJv791g6w?bsaVJq5M+y?vshAi(-%)^KYB!YE z$1AWWq&Otdof8#NNR2~vI*QtPWwjY*I4!e1H&oD%SLlyJ&00z2+zt}bZ%DXnuf8Oy z-=$!lkm8iUd9Dy8@*Fj5m=GYWADn5LaZ600>INz-*4#N$_!;MW-FOd)+b5D5k-|1p z0~IV+IE5#Wyo3&UU4oDzBE^yDA*!p)Cak`%wENX{)P{M&_jy=5zv@(ngx{o%Y9P=Q zy`feT?%7!&sw&Z`U_>(VGf6#{%71-Q#Aqo_bi?VOq1_M8rK*XS znu(S!y1bu_;z=FMa9q83{D4@gKV_UcN&QL^r7+zQ|8Q3{Jx|)2UiX9d>(Ig+G1jXLStGRCQWQW zD|u@^CFvYkz$B9(Y@-nLE1agO;qvnSm{FL54)!HZTwdo# zQ*YyX9^Ho8PgzM`=Hmo>YF@6hBp{6`WP%|{Uj4b|Gg;M&2$u zXURahpRy}B;+)!&YzK<@Fae*Chdw6>NJR>nAWu*vqX5)kR1Av{OV^H(BjOY|EfFr- z3TZ>vo*d_AK3T@Gh$rM#I!d~snE42R%%zZBL`O*ug3#B+z|VH5pcza0~3Z4|wnw|p1*=@zpa z5A%nsijF+SWAG=(H8~5yqk?$S;8(wBW9xA^S0aRzGGRC6DKdM# zj0W)?#_^e#;8ieeEtwI{gTQyD8I`$)wbo#fX5^g%`!fcPw9PYqH^g}XCHb}cJ zwx?d$I`j;;^HUk37vW=mtY6{RGMi)>#%juH9o%&9@n{>QGhFd0w=-VGdFNwmgP1S8 zYLYuM5Z(pD)}uN6upWoMrt4f1QqREEq3w`GaC`tZS(dRMhHXF_@;JxHcF@^%Y&Jpz zkALQI?vz8%aWBL1;aKr){QB8Jnb>XZOR`Wjwgvr-hi(U-YmcPP_R4h-?UR{W(BWAD zzj3pFaf3~THv2ZNezT?d2o@TWW88!R{LC+WGFuCpBOE(-p;so(K3S|KGS{Y;!U1A{ zJp^0FzXX3@-&POX!B_qj^$RaT)v4`54+W>%GOjxPS71$fw#|zj?I(NI2?iy0<0JS; zEJ~h{h929BW<=3JqtOn@Y^`XHNTG}0m3m~D?2q!QxE%s zue3#`!SQ}roGc^Nfg*lb@ktPQU$bpE>T>JuBKx|9^d9Fj@&wSx&UngAza74bbeZn& z_=ina@)?Xe!}$p>Y>SJ5tI<%HoOhaf>XjVfXVSHG$9rK7M(`&dUoC5Sr&=fOj&%{!ZL8;ch0nL{Wvb4ty5WDHKR&t4 z-%Iadt~592bA0}3949>9342m{hIqP{>0$Cp5X1D_80iw(tHe>uUvm;|__?z^<-wBr z!BPH);$bcib0z;1YtV*2LA+W4Rs2deyle+?*8K zaTs{~d2AoBk>UnmBklBCIvF?VFN~^n`DbvJaJ4*cjIzI1qK;~O;8sBgciMZruno=` z9`Auok&&!|2{^*l$lO)CUgINKk70Ix@R#*mU-0?1y-fAFo`k!h=CczifkVjI8Olx@RGiS^Co+xhmmRmyOm zoa81taGmi%asJsj(gp)yXeO&ePQlI3h@}K1h1|vgqs7;to zi^B{LVh5jRU&+?uz!6UNDpsu%3n!;<)A)H&Cq16Zoqpe4Kc8&h(Q`Lxns*a+?k`53 zy0rc_-gF&y=ofHmTl#BS}sJ^wH1sbj3AWw%NM3Ry6 zC>na5RtJ$tvN%NN?fAv)VfF@x21=R`0?5g-Lv(iXAG_;KS;Y)NOy=3jr^5+;WSlIj z3#L==Aj#vQD?1cp+p!sv11#l!N$Co)NLkcV*sVzT`4H8*_j$bTBh z2Sy&mCwyWng~d9e!r$xo5Prj)`27pA0j5*uz~My>m77-9(oA|hid{*U(eX@*My0v^*!A;6%nr zqvByY4;@6D$l`63Rsu|{a(Kuo9BKi5j?X(?$@I|SVTQjAfBZ??@eu$x{Tm?3jiAo6 zJ#^r3qDHzWlXYcnstAziKt@Ur(VeaYDPp6ZmVYVAe}6FST!q677orKDcS?SlnQ)e@ z{{(M(`B!dDs>WW~+{ zD*Z6QJfId2HN9@H!|a#f9rXe`_yYUyOfBOL8U9;BEy+2@Asu~kDqApvmhl-Le#)%R zGF;;`Pv}#*$G4|O{s*r15AIH{|1!KMoD9&Lf6+|$)BWu~ftYHF7}CFJk#I6d-K`5f^KtgyRa=m%)0e38VDMde_Hg?SzIpE^$v{%I z&VhiGSD~dhXdP!n@k66U9DL{y8Z@X-8hK}y<`?zH^56#!ZD4!m4SD!y@n*fSq^9iQ z2^`)j$6vh*=2|~4$;1BzUtsH#1_w?wn8cfP{Hp2_UgY63#AfV4?fUVSgFFYe1I7#^ z8p!sO-V16oHnZ4nqwdSJJ=c?usQjci82$brIAqW2K;eA1rq9-#=F;{T!7E5r=Y5O! zcII0~7Z>w`su@1rg0Nb5NANb^*_&?J-e}oO;t|QrWmvq(wk@lNd>_3Q$GB?8_N`HP zh*eL%nr+ffz%!;g(Wi!O@g94`lmKZwCjEQV{65XSjEF#0yb>G7N-ZZg z*rHN6vxHH6jxMw0R!c$tXiwq&v+Jbz__O&{86`7fQo(V6%%_lZ#EcS-v-t=1Nby-d zacACY>zauj@{2q3La@E+j@P=c#{hQBnDxwwGk#t|<|k7uEycOGjGi~nO|(C>-;0V( zI>&WEPw&i+2Wp!tRuaj2Zu#w>k=rr{mCh|4)I%m3CB`wnctH6a z@RMA58We6BAbCT;STAFQ4rH`!(PI$a6@%)-q98A3JJpK7ZWc+fW;;~XgGbyjPC16@uwbby$T*vuDHK-}5 zWJ5nKIh@Til9?8++;cOLdhoV{=9qm8ezC#&KRG z;OFgPl^A7k0{AHth!*f`uozAh4unWdB@o;KhAWcnb^ zlWyTHG43OuQ>_3#o-OlIS^i?xojJw7WU{`R8o$HwV{`^dz{-*?ba^1>*6x~Ig}6~3si zN;FtqG?AFH!lyt+gVY)O$;lK!6x)pqxlOa7GajFqdHNyS!yvF#`7H12*PH00YK4ZB z={^uz1@=d&E7O?jnRh0Yb^Lbp2Pg8jyxOPBF4=bauq>;697v{8Ii|GCk{G6=Gxq(#=1|q{ChO6fGL{@2o$2on z)ZDFyV=i}`X}$>78Pqv+k*zSvQYnDd(+R6T{0LnzeJwM?rIGvCqZkv6bv(N1&=Af9!^z>PZGw5-O4b0Qi%lP0zj5fNacLYhnRjhs`u0M?_U&pTAbQ}`OrqX zR(r8sZ}`zf{u>>m`#jvolxp}BWejw>`>MovWbFO=dIK;R0Z*?^y<5Ek*4;reK=co{ zhuqjuskn{;({GR68ZX(_*s05&0qw%}^ztAQk0GF0gbcgWZEHe1^>mQ^$e5aXF&RvSz|Xw?!Oeqa9q935ajCN>nvPG=k)qO1? zQ**9eyRFuLy=S>lY&Q#7D@4IXyOgRH74-)wD{2if8S2*Lt+h6a-TfQ+G#f>FX@zsl@Psf1;r+)1`G zR6g6XJ_+uN0UsM?N(B|sphg3gptBxYYJAD05GA#RH#2UUY9Ep`s!kP{5tG0JDEF}y z-H>Imc`~rlJ&ANpX|v5K(d!n^u@#*(5%mlWowq0b0@C>f#0=V>^9k@=4B+G!fEfr{ z134r5pyFM-9jvXq$^L#^&rINzzCm@L#7q6PR}|OPfO2`qdzPrIR**2sOo)1XLXU7kLC4HvyMl>J zi6r)dg0>lvVWrKO7I2B;2pm77XP?hQvGU2xa)-+l&bRYR0`DP$~mcL zVAdne8AG zzysgwu_(Ma=^&LKHqkIgMr>Y%rYptVcLqIW zuFDPc<$sP`PRp+$XILHUEEi>xI>eO!kJ*1-^Pf6)ciOH4XMJ{c`Tw}*&p6g;nu_W) zPtYi&-15uoE3y?dU6k$rDcj~2*7y9P!GY(7D*tiIj}qaHOEGDiS+Ul>X_720TizD2$0-xeBsM>-mx;`is0AIvN0tFepZ5K|89CRdC|$EB3F&8Vk= zdw$-c4smm5b;qFKk*mn}OX>mt`&GYe#O*4B!2%%4%MadD#|@@a;V+i z=Gw`VsoB>jGez4)RmG_{{!1yM8@j36kLS~EOj9jSr7mxA7RF=mp$gU53L6G46}Q`U zoV1Im+j=CDCV3PG;og(o01gw<5Ul%D9itR z({=Ui|9aOy64YHTrs{r3ReNk_^<}$}duE|>N@4B0pkjuz9p*Oar4=$)IPbnV>5jTf z`1_^Iepi|8?xi!AyUQhv=8hX}BFCz}W)_l+<~WSzLaqh{k6#sCak;hmA=SWWE}Jq= zouqz=P??Go>(bg3)5N+XUw~H(tk*4Z;0pg0&MPDlfP+)3u9J&_qp+#W{seq>9@!<(Ywmzl2hk9G@d}Z$~C8UV|Uey1(v)4D#xhc=0x9_<3L2zAvyeO)0ZCFIGozav! zTxYzv`~)PkGb&uh|tmxzH@-rYu{4PK3M7rG2Nx>0A{#EP(|n={?oN1`m6v;7vV@n}odDjU08)hd zCIuYlN`s7~bxMybJk8J}@-jOS6r*^JKOS#7evG@I0YIGyPc!q-=Ow9gcq%E9nP=ia z_yv{JiMxyX)Gb_tfXV3GtVD>dnlG}qJ8^y;Y|M3$^x$PaL%^r!0n&{^Dmw9Y#kffN zW(8;HDyG%4i{y{O1az?NIB|ZR3pS-e7uvOJniD=f5=zo;i_gn-k}N?nOA+u?QY1dl zL=s3C6I!>v;aYVrb3?&Ip$_+@V>K1&~9(A%D;bk_5#(6lh_&qp9-r_2r^* zC3R>gq%J}+3N=}KBe;9sl2mm)B^b^}@AwSuhN5GM&UHj$5O@Ms9}#VWB7g=|QYT8p zb{Uh16fW#DGzS6OWi==BPB&#Qn?bo?z-l0M}IzrqT)GXkH0 z6-PyPoS&2NlRjQ`q6sDtU3m@}fWVWmy$XzK^w@T^2nh?k0b16e4SNT=Ax*S!6rYO4 zDR#s-BR`rn=_QF7y(_IlyC91Y_%v*?BBMDywhL{@>l~xlLFWS6O;qr4Ctl}HMfnx( zK?FVvD~^dC0s`BQ>ReJh>5c6{zvQJ;jYhj7ClUB;Z1Uj_M%QG@yRsnKmGm}DN9qMF zU=JUiX|zcu{g0+W8`4d}H)kg-z6d*nVa%e(4xp*Cxfhbz2GATu*lo=J#Fd7W*6|-^ zdEcqq1T&4Uynw{80DSLnyhssN+$4H%09ZJHK3)VZt;?lwfOHjIHTPCM&sTLlE*PFg z@Ay~LFTB19MW?u5IR7H7|G$cY=&1v9AsoW{Sx+`Np+w;CK|kS zq{MrjcskbmxI%u0UVJ8&?eGlU`QG8PbLDjw3SB3Pgvx}^<6a=BGm=j9dM|T{ya99+ zCdv(H@I`Ij8tLc6v)l*I(Cc;Qa-?Is0rbo1gf6ues~SXCI<`+yk~-za%PA90I!&Kb zi2zri7T%_!(Ot#~#Nb0}^m^^N93-sEp%p7tZei=<(fD|*wSuG+z25WO5)>y_biPwB z+w)wGcyI-}Z?2r_9L_GDt*PnP+zCngH()zgPA4zZtXNqhy5g}X{}W4+q|d=2!0RcT zw<#+6gK;X5C`_-{mdioJdIE{+=_0_fTrAO5jyMb=o`CI>m*k_@dzLFgz)B#1V+96n zINEZXQ$bc!XJ=v@abw0!Z<4-r$l<&JqX&wUB|85vdWPuO%k(T+=`zF0TU`Y=yG}L> zZ@m|}9jE}jf*T0+M+dsi?SPFW?0W@Cs_ioX7H&9-P0UMorPaCtFd+T-P zO7aG1E4q0Ujq&6RL-UxG+BVD(MW82j(lnF)5D+Nv zE4f%qqaRY1BNUOr5?PcbM2g5Dxo-RtNPU0&7kIsVa2U)rGo_GX4P|lOI)e@ge2A0L zLhkaqEQAs=QfY|My^?8=^7eS8Hs)~V1JF?Fgk0q(5z1s(^pe_LK}jRNfwunet&k(^OCfF?TIE9g=mHI z^3-wUVU!cS&PxXo3JWNAUx9rLak%c$-Rn0F)s3B$D3XyJ?{W{m**m1iy%nVJ@R~Y!KOg03ODM#I%_-2LX9KT0Bz-z%u7(Hpdn&!G4Pq6^M_ zXKNq-og(v0&flvjZG@CcKB>4K1Ae<19HN?D2>Oq}!RW&-K7|NU8aYK##hl)tYg{Ca zEFnqlKf@f|g>I0NGTW9VKeta<{c3mdU z!RF?PeAy?XMcjRKSx6;hHYJsOdO<9UMid{oj4Bwt?L(h*gHCAW64ibQmFV`fbMwB^ zIuC(km7=RDUL$3ZPaalrr#E;tE|Nu-!2F7I;8;)aFi^#)5G`{4JJZW?Pq~#7& zRD=Snz8d84)Fi^1w#`IPwK z;?i+>jytJfX^8-&9)%oadybRf1nLS5Hi{?YrQb#M4a0v;f?=7E(jb|3yrnE|F+M)8 z%BiFTB_%}wWIlzQBRZ9U9z+RvJB}AP7cnEn zprrT+@q|1;x=~0qC)8YwBQ?q1(J5Gho&Z#)PID0Q=B(!IR!);Z`+5MF_x~pj@Q_dh zwcjT$rIUy^R(@@Rjl$`SOy>fsYf9P+1hau zzs_8Z;>mfN=BdfSr_vByVmdj=h&M+p7U$YiC%+1p2)mS+@Jg8z;?wc~X-FYKN16M5 z>U!6vI4IWL3d}lRQo=hIbG{_-@X7;fOUcWP&(2eHE$QHu@*@CJm_p7mx|VQcQ@fZQ z#{iC!FpKd;dHEMgz@I3+I6G&TL^*hEqU`ksaPKje7#1#59YFR`$iOztAowex3Czla zxCb)4cEJCI{i!b=wq;n&fH1HnzE=#PWI&WzZ+MQ9KC8|USsYI7g z&>BP%`JCvK+UVRn_(Btd4W9DmmrW1kY&6yN;of8O_)(4L{v@$xCE{xRiUPZby z1g&nQ2$hA>nAF)jk<@3ED3VaGLR-u^MqukR($$W)r9rt)j8=%Kcp;nuofJXqIkE)h zqzhP_z&Sh`*obDCW6pr|mSAlp)wUF|Yc+_7(~A#29+4k}DhN{*4|k1&>v7ZCc4S`+*e{yawsVN~nV zv4rAiNh#G|kqBmaLg4x&ps~*grXm3Bkbl|K0L6e7;1-88vSs_B8M7gc3Zn_K{bc)1 z{+|cfG6U0teMPg!A*{GTFg3QIl0Y@Ge&Y( z!NoI`y|Z%*8TX*i*w_RTGY0zrl+;k6%I$73uG*IyQ{8G@r8Ri$L7jMKNQm+?-p-K9 zteEP+BEp6o^E;3KE7f@Y<_50-w5yy8 z!PIO4c+AT^Uo@-_^xreK-qN5VDcGDX2nKgS(C<%VYwD`}u`#YT{Xw7NT4QTDIW~jw zpbrJX-LSP)e;&rdrFVohrfU=q|275Ll<@^j)%gn9d9$zK#Y)Pd0zs}=92^4RE(oTE z2>$apre7g@wXAJIC4=-pc52<)JI60ft4untn@e82>-|@p?xqR)Bid)nFBb)4V(Os~ zyH&&6_RPHOK3*R;|5v#058Lxii=>tG6SJ?pZ#4aQ{QZabT=+j4M=%It=)B?UZ(n{b zW?B4l`}HXRfkE^K=<{A)L=pKRRCLP|1?Vuvwe&is@peyWDIZQ0_<+CyUGWg2f3tBU zX6DKr!dVn{x1UVw{aA1P@~l zE;WbA2>w)tJQ=j^yOCMd?k+tg2de0+4oAF;t9RpjeBGFLdVe!Evfe;a>P2bmek)>ND&3jw^PCErNz(Z zn410|eVbWcWx>z{?UOsXZdDKGabS*WkLS$_Zk507aDPs8@SJpz@7$5Z7iwUKxrjFK4Glp6Se+>ITOM)pNiwcGA|?W56RbGD8dG z23Ylw5?Trij1Eb11J-t#{q+6y*<$go@6YGHi*3F?7Mm8&Bomy5?0xsIzTkrBKNooc zA)Y~k;}!J`Xw28n_RPT3qR1+3&=~zbBf;ik0UI>7;uX&oG?r}f>kDY7>4|)c_0?Ie z8+2WO5!XJ4&j;TmgkOM?tvdhkM_(;!_(Iuyt9SUP_g8Y*M)oNXImug?$JF;~qKbj`!j^oxJ_*ror6EWO&^$ewF2@09MB4m+huvQJOc?3z5s ziW$_jcT|1-T~V`5LwmXXYHpzyU;-z<$Y93xFyxih9=D^~Carhr6$J>f`$5=hAW?Pl z6<}W1v~kQE{XVDMWn?3uRwgPweRPgBc?cg+_45U>T=rHK4f!ZdA6 z(4-CZ7>7OQTSF49W7T~%*0*<3ZOqZ6m$eujDD^t_hYA|ljADCl{k~q2#2=qc>QJ4x z6UGv4j~vv_7~Yj$u>N7+z(p3=(V$w8M7@HcUfGaEzu56(3j1)K_LbM#SKd2{As0IH z^xs>lOoe}c4rnqD5Sd>`Tqq69^gMU_zUog0*nT`I5*C9_y6Pwf@d*wkGmG8;a=&?8 z5>`=s8v(bW7}4X=Ng_m>HE;AIpx)55*{yH$GEa4FFI&Z?4BW1hwnwYYUY*U8@d$-9 zpIM-UrQUgD6qb7W{mX@ACo{n3ipH!alm%sXDUZu*AHJTu(RAt}E9SjD;=3oJ$&v6u zvBezS(x}Ueb3=TuK>hReBCC9J9Jb{iRC1nwZ5;YnNcgay@Bu^kaCEh!xJol6e+b;k zW>C1TShxZ+hlPD}^MLl&nBkbl%2QUkz@cqbk0d2=6Y@3kDG3xL5rQciNwj!M_Y@d~ zexjK2`(~C0z+#0SxTUK1nEV-r?tg~yK@Vw`9R0B4WKh%3Wh>QtkTJ>J;Zg4cvlXRI zo#5_#CX>F?evT=+ff~Sca~JbFtr0{-bmhA1~BD@$a-lh(kTsTjTM-Y0{i^g?eoV&C1ke6ppzu^?}TlDR3<@ zpFVL2flkC)6Whk=rp?TxU+47r1L=99N}f%K_5%=6*l}$O=h}3)-;2}DfmNCtJhZtK zM`TYrx3cho9(V0Y4df|qOW}iCh%N4?N?$*ROg3ci@#o%~k&W>GfCLA)_okl6SLvSlQ9-p1Y98JX5sGqi4eR_oTtJw5R8+-Z|f_Z*(z!s=|A zrq@4Pa47}>vTpqT46f=$-Q)?4LetKX%2|OnTl8ZO+4xGrFMu8&GI_m)9$_gb9 zP%RV6%(=))H(KElpjwZ0=-Z1hTago?ntvvX-bL*copZWy1kF=zNn@b)A?PctIthsN zFv5ux%N04tRKb(29zWfBUuXK*$VC=6oe?2@!b$HH>N#jgNKFMk_$ICc!+j@0N3L04 zmFr~+J0QrrmnPCzrTNpKC^b?`x+6_X81E>Ctrd(YugGz~LuicF&QLvtd)ifa4kqRs zRiSt|h*=$hkdm?TBapmIIoxd^8NCtfAkQK==1FDIrMbxFwW_oV0ps29Mb3;MRh}Da3VR%ZAWBCtG{yFTwCVj-6rHZI-occY+m~N|Ct26BM!N<3f$)=PYGoVwVZX zJgXiD!NkKfqCZPh*33$=>cfvG<(Uj6o%iYs+hDTY$E?ss6shIR+j$5@?9$`HCCkq( zft>nBC)_ZNd6j8|&o7dqtojWmc;2k1@9MU#(6W2;$DBPui>_W&1Qea%axM@fgD(~#Naz}2xC}@PHWVc7vSRB~uE5pU(B6Wo z3sFOv#c(gSOlOVUL$28Kn)D67>V}l(D=tIn|4t&Yr;)3SU{^CsU-1f@al@||7iO*h zgy(tf`Oa1-M_u8@F~M_5;Te{U>p#lj8wzny@}D)}xc|$Ml{AgM;Rh16yLaA(h)Op! zmL2<-N%mS=om#?Q__^cth4{{U%-g#=aVbx^1TQ0wj3BHzO<%DRuHr9a0=7CV_gyxW zc?>?tpVJsI0hw}s&E(tMNuS%hVQ}5FdxM)ABB^p|X|8xa2p1l|9EzHHDvvK!RDaB-}BN z+vXtn_yZP+6l`fGpXIiJ5$>fh_b!c4F@p#GA&CD5t$=cyv)s+5P%{3KYAsgtGkOZp zNP{zq{4h?<&w$1$R>Cv*?cK%Ll+#?Xi_uo3z@eF?t*8T6VIxh%Sn#f}WGK@J{$7Sa zglfs2=5D6I--C1Vl|guiUs4S?uK#iv7yXK{VbkA}${ivYOF4 zbFi%+p9kNbs$OH&eeWV#RIoK76Df3QX6u+bz-=#&P!wXVb>?_mp=lCvn66M?+KO0O zU9c^p3Tf`IP#?B@$Y(`cap|&f+tQH~1=R{J$u*)CDRgf}>&_uuKT4NE-j|Votaay- zT>WlOO(>`~aGejrv+f>yzA_Qs^zjEu=+~^IXUc`!UK>H+RGYaZ_mAjnBN#u(Re5_V z(eop?W{*8*>ziJIUtr0UffK3jB6H+b2|@KC_qu1qRvF>0W=Sd7SU}pt=3o>l^$Op)31#S_u zNTE-2zwTUu+ehhg$UO-e_Mlf6su4>s8|hSt;Go(SS8|+~m5^itK(KX!%w}pyS zZ*fU(AJJtanC-x@2X0SEyMAnxOfAo5w(cAc`~@^xWQZGA)TrIyUU!XnfD}SSrn}&_ zS4T*m&8w>Q|+yhNQHBB z0Q(_$pjG>U^d%?+Hc}?NwKxc@eMf#50x_${=eBo`7<*aU4D{-INzlhKphAQ zDSWd(b7ieRavPowbr~vt$8#yJRfurgge5jCsnONpcmE$eP>19o-a?Vg&*;r(={NW& z>PQ(vL5I#aTdHtn_wu2KE8ty^mPRu#vpjURW*`+V(g9>c@PM_>1L@0>Yraf+TXCa2 z2{xo~mCh_-tuCd1y?d-~L97UFLS+dGI)VHocQMhm7{CAs3jO%MSCu70Yx|K0n7T$I zWfKZIF?_RE3cFs&*1RWFfXyq%>WJ>evN#21SY>kVnAtLMU&8d?hM~U5f?hDi&IMAt9jN?9}=XoNw%Ea#?u=HV9_=;eVVzBD_oEQ>i^RMx-=&==8nfL$# z*aP;&wNouhk8yL$tz~WWYwie%oTUd#;#*drNRlcbD3$?@u`!((yJKk^Ji9ekl?zpZLAd;5|XU|{ahz$|Z|BjeTl~UI{l*q~$LpC#w~jNOr0oXW#hY7dmrc>Hc_XT1;-d(Xe0a+`6e)@z z*;Or9xIw-iceh8Rs{4s*f z5{A&`ya-?WKz0#vz>r^X=k*f zCc{f4YX{W=?E+!Z;hoVN$WSaIdR>NWs-!^{%{W8$ciT3aj5BGno1I@zXW9u&NJ^X~ zP&H5nq<3$QPMZ*v!uQZ3Rqm&G-+m#d%?Rx7OQRVV$^yuMU=_N%j|`&hBcU~QS_$HL z`Y}}WI%`=uG~pp({DS7WAAI~#Qq^+ipmlr0vG~8lK{nMAVLZrs-ml{jjC$F zHE7S{i3$E87@qiHLrvYoK;WIKsRIHhMP+$`KvHH0K@&Q#@*gV9sLI_Q-Ka@#?qeBM zNjLWe7*2=p)nir&>r{|}cCJ|L7eY}~MhXNHNaBh&BcL3pz0r<~^iUaX;?N70q45Km z-E_mMn+nm@V9M-Pi(XeHlR8Cb)b;fl7+1;2NubRK`k8BzSC{F`5&k1L7v79so_9zH z{u$3ZBo1i(;VxW&54`}Cn|~<(VXIWg>~1jtZxZo!hq?HL-2^*c-G%|aFjDN?$3OBs zsqXvK)|ARq=;-JSnR9RGwzvA&29X&uY7%HWM!z80;y*HdzK`z%-h6863bs#B@C&@{ z6JVqMG?aS<^a4ueAIg8&>LQsq`X9Xk_*%WzguT(W^?hi=S?T(|pf%Ie`}7@U= z@$bcm3w$Pu@n-M%LJ1_rh@B^(EtV0{&U5s~r!@%E(-U~J1-|(!d~JC93-6O~dtgM{ z+kHw#kuX`cr3?Vk5R8Kv%}U>fR;uagM864LZak=Vr>`GK@AT~kN;|M%4!oKcCWzMr zOe83p5d{E}Ah>`Cn7|}J&u2p~FkO9an#)F~h3Vn~&IFhl-+hK&oU{j_gE(Tb(X0w_Dx{)dEF8SblhKw8ig95S<}=?hoT%vaKfL zLYi#D`Sur^M6z*An#S}rMaj%TU`|kq`Ox;_M>Yq<k(vLh`%P8{_35-()6}}d zM5TokPTx{VwG4?ATutBhcCi+|UpQ@kUL3VFI=WEyoHoO@yH7-mERPA&O=y0--=$;6DMNGJvmsy`TE&s^3%g zU1%ZNutRus|GhJo=L)L4+0h4XczSDQ#Vbn1E1D4wE$hj&S7oFaYNp9E^rUc&*Mj;| zeaR2ghlyGj_IJy9f8X#ZJG4yE`$_45>6!SWr8ge`?4`a%-!YPbK4-CWXm_-p;;Qnj zzhS7%D{|NczbC3zB4kPUm)TsprXsN!WlylK#6(|uvxQ@qx%bYd`hKepTlGFI>0fKnCvG*=jyYaQv;$Bm8b3Q&a=_~=V;XV^}?*VE&f zL&$*<4LR9?+yDNU$``T`12xLg&tEuktB6X&enRrwkN{yY!FIpy^p^MM68g8dODt5- zMa@+#Nc{KbkfzObRKX$Y^i8nh+$1U?qAgtObMnDzrJ%{E1GmD#nD^S}qt(-PrbT*Is zYW3NxYkrEwM?*fSD=(Z7NZc~mDsS&RL)l#9$3v@$tFbPiYkc~yw zP5n>y7|*JJc6g+f1T&#P2(^R4S=&DPd{p+8`j63A1m;oy+W^F;b(4uo)=&G9l?8Vj zF1^1V(=(sD`om$ylYYf0W1gCvzb$|$2u>kBgutJO*3K=yim~@QF?989f{(aU4Q@Xz zeA!!hKYA|s=Hm67T z--L@~x; z`5SF3r3J}kiS3G5nr;-(4uG4*c2;7J+R^!lQ3Z#57H6Ayrl_D63nUBsn#dHysw_`aMa&nK23-z@bNgAQ@&B5x!!N*fGV%sBu* ze&SD`yRb=PkXq3F%i7Su)?XXq^yp?-i#xB-58Za76tfERSez^g-N1$7;eGM=^8XC@ zf0Hvx->j_j5o;out_t0{i|*^kSc!!`ja=P@5q3_kB-v)VCCv?0HF<<_`K25?sNtzDOtxdis?SIg^)Z zPjQfMyQt^s-ko22AcyC}v#zYATLkD5(LtK|3D($km6UJ}yOoe+YJD<{(=R0rWgeX7 zkyWkn>pREiQjzNuJYT7to?5U8s%vC>TiXD7ISt#DKvQCClAPT@*_)TeX+p|?2;6a+ z*a|3cm3N3OSAWSelK19lR^4TyMU?RU{VgW=7j<`;hMx&w@L$4`EUlFiC{pM)Z-b<| z?O6W=qHI5@ZhO^jtJz<74Dg%X6AUU*KI8eFbnN3>A^zu*r@{BF+x(Dq*eSuPr*HG&72?Nx_V>d=Cy0+m_y$StjJ@Jy9Ikd^nr{#z zYVE_k-;N~+Xss-sViJIlZ&9RVna9Mok8Xv;dry3Qzug#(uca6?#xkww5n_0Rxb8N8 zS_&V7uIa;U@WnRpE2~+vxZFcBcN_Tm5cK?l^ZbbO=s5bNz<1*o19P;6;}BoJR%UxK zr_(^zt=ZjQA?3xCcQFSqN-8z@@iUa7lfvYSi;cF!0&5WMEEh!wUkfDdy={#i$i6xGP-({8f)B+<8R*=#nDQ4LC+bZ%E6v0mZ zFW)ottgtr|C=nOa3He6WSXWCd`LG+HCID*F4`pR!Aj3a|A}hxii;ax20zr!q?2l3e z`}oK4IvzwyDVeg-_Y!Afwd@a`!Xj_-(E*33A?FEO-^ovi$;53~!I73H&Wa1t3=4lr z9r1;0q$4e$+o2zCfo^w7Uq8M0Q69-K^@p4K*NyO|xR_vkTkn?GJ@j?{AIP#VctPPU z`_}nSK=9!ZPhp7X-6+*Azt+Doa}(WBu&V`GurBQJgxvGBF?Sa8Kg=)OZx&RxxVtKL zBYSN2xSPk^VYw?JWlBpP0&R z_OA<$aBrf-#{IC}!D#gFT_-y)2qKy4sWVppHK(}x}O5w{|Hi(Th?uAM#SgEln2er6Th)=_x7;{s2SjP@=k3vahxZ=;?!6z=7bg?+7|$$|BjTPlS|H}HCnM{KNEZQw{) zTvm@EZu-=MQ+j!W*&e-HwD%T;SJ`-ISaiws3)c4h=u>&6`&pf)GzHtD(HmMcpC!7` zbUCiR_}2Dl&G?q=PKC!eP^0HiQ%U%nopWXSw8qfn6kpi(%39+c9sSj&-*L7t|I>&W z-gaEl2+Gi-qe-ph>jwW8-`K>a*u-`82Zla$bZYY$%)TV>+O?g9yc$)=ZKwey`^s~KJJtEY@1=ep@;YOPh%mz zXQz@2;y(2@9t`(YmB8G%Puw`L8Yd0J=7d95fe_hG+dnjM*N&H)1 zRFY{4!Tci6{5;Rf%%%*vmHDEBnIS;;U;UN?^6&xqIy=V?ME!n)B)<(6R8n6R>`bQR zpnT5G#Gxu!E(F&O%EJfKZ!CJl?pq|-sqzpXuOj(+tHC|_7&h!{ z>-l4r_vJr$NNsZDoY&fSUw#6D4>metH#$E0oK^eU%2=f5--B-bi~T^4-KSUK2&i}E zqu8*i*6z!ecjZexq}Doea<%r|l`n?i17k<5F`!1HhdyfLW@mnUgBU$dsm-L+WIlQ0 z8ITn!-9+IY30S!;FH|~8KfX+h_E`Q_sB|O*ca>=&%OtiAKZx2K=~(&>cRmC+;gxUn zL@P=zD$)D6_b3sDS)KU-rkw4!3=`r7g$+4dnYz8Rr)41-h@n3!Q4ufu7cn$6Ee~SkXL)j zXFthyzezP6((7xtZfRd8xAlpwFV;4v)po#{wEg_h16PRxq2yPKa z9i=eJm>%P|ZPAo?Ah!$*z^5j98h7PzKY!eR`SatBahE3;wZW_dy~#6H$PMqZefp?zS;EP>NT(*d4$gtpRZJkfXI4}o zoXinU-V#n02bzIegVct+z=e3G)t+Ay`0>B9m*h0caw10jY&8aDEQ@BOXmR+oN&M2B zQiF32?kc}-YztgqZY;XsvEzZLBl0a(?U2*`gHHDkIoYm)Dk-0wgs(bvWAVEeG5ce7 zV{hQ}}P^POx7gY3@P+_XtJ z0jNImST_gOH5;UPeE-A-Vvdg`uvq$JU7Ax9qKk82XDriJb5N-((wer3LEB_YQxiD> zL8x63KF#UAsP|COBaG%?mZ*1GW4e{*pp0G73|-Oyo&cHr`BVbOjFcm^E81aKG;UW! zN}o*N#K?8cN~KS(Pk)+rTcY{Pv2qSdA_Hn)@;M7kJ90_#9g7V*Irkij3eqQY(kE}F zPZo2`baH(DrZwboV#+us)<$evoJSXU!%^A_$rcQ>2BWoej)>B`-YJ`($WNavg$U=h zbI$AL2qo>T)f$v>C{llNqU!bOUb~E5cURiVS%=`fbS1dfnkem@3dgRLFIu9G9u&JpS6#7kKT zN_Ba?PvAlAOcuGMWcFM{UWSrh&~k?yk$sNHF(=+77zoyCuR*#5kGTXpA~3pZGOq$Q zbxmJ)3iq^9U1{%=Ai#D7Y~zlAywgfyLCZaJL>@UJubg<-U?5nly9VhRJmw0q_1C!G z=naikX6mg$x(9z~p#|bImGJ&KrDX&27vtT7jWU%If@}mqHo~Cg0XabM;94)mFQ@d) z%z2xppP$r$cfoo1$9QXIqR2g`VpovQ>pK*e9CjXP2lS=5wqXEJ9FwvJ$qN3!1r1~<;jN&Kuou9n zuVpAvf^5h^HU^L}fZ#!4FU1aY8h+_RK5Havc}$MOq}_Jy|Z3$3pn2nvFI zY?|xASf(D=HqA}WKljM@X}=OPuiEs85TgX2rA3LeDr6c`lKUK8-6mnJma{a)23c!E z62p*WYq+ex2MBge1Y!HY+Tr{UCxZMos4O?@{$%J2>(4Zqv7l+9;ePy~9K0y2w59R7p*^j0nl)JS#bC`h1585?5QGi~;p%&O z8+tNj$-_ZqF)|o#4akmkY(!m?(5`*E^F1kv}mw zC&hytkhyb~w9NYlw!E>W>HE{~C3B=ZdVQx$n+>Ore(gCr_wd(TT{Un9W?s*@cKTMg zYh(Q-Ej!GM?#SMBeC3#Jscq z?cC2-v6=EmXm0aeSu3kt_vc&W#Cs&sGe_+*8-K9(?3g5OPk*?3Hgw2(J54Fesa0!@ zkz>3EeJc%pdZX_fJp~HLaXo<_zn)=~eyiJVc;vecNAtST-k|B+8d~(`?Kyb%snRmk zrL%UM$$y_pe834Nxdof=3nH%1vD*^7d#qb; zXr2R)rA5CwbxY<#Z}LZbSGS21Gl_E?nt4uwbFjcUSm;b1Jp}}hK6XjkX!`m5!r7I6 zMCZ3xHXb^@@)X7SZR?3HkAvA~|5`_>t-yqiegfp-uJT zfmcC``z_4R7JNJRGeY>WY4HVA5AE~+p0JF9l|SOW);oMZeAL`lzpMYsl0#oC*YC+>CJnwnBxSeewE1JBzCN0ostG=B3tGdy>;n(VQ^wo;B>7#Rf7i!g- z3g66J(mE@hM_&5i%@Pxbya1^iX_hZeLq`K8-rid&!?F#gvzkSX&(&gmf$5L|@^s9@ z$rpEEo@A0j>|wjtbLnW~lspAuNS)-sGmS3mo+5@QTD?Xn+w@f;JXcxWfzU2=6&*Hp z5Eitad*1q*l*P2~`~6ZDMT_g--v88d7T?&b##UEXKly0y7k~A*ppJsmIVK{%2t}VszHjSMg@w&c^S(!K-b4K`NQbp~a(zbi^^EB38h%@um-~lW zej9VW>kMUo=aX&w% z9#z}p-w+|Qffh3MCi(T#cle-^aznqk@Xo7Y2kyCcgdM0q0Uf&WI6 z!>uEC^$xCC3I5$IJ6sCigX69n9MNxD2uVcjj4o+D&U8JwZO`&@wF|4$k2KzCe!g|$ zbyeT4kKh?rW;?@VAUoBVL(jhs0DcOd-sCOOBR5j?>25%>L% z6{(!%x%4#nw2#FP$}om$U0v?rxikZKe-AbN1bkuP(_PaL-(~=rQaBZ$xf@T~8O5Hi^dML@17Wtv zn4_s5sHwk0Q%=bq2zI3uDkuV1V05$BQGWV_=xs^!9XHB^Z7!ZWUI!h~Xj<1hri}lPPe!xH; zxPPrP9DyO`v?Rmyn3J{b?XSkv$9z8SB4Rm{~gV#1nq)wTbzO$I+X(g^= zAm7Ygu89)SyWS0G){YB?y79Uh0^~(W1!Wxws!1rx-fKhkE%krYOZ@GS^d{I6D8WojNPzRm;OHVeEF({yOzSz@VvDjnMcU-@lP9U7 zWS+fib^l5!Zi}^hHUf!hrjogVPOzZFJUtO9(5Z059$W^&6H_OTEPTE2>+ZgEc}HS$ z=GcCuyo0ph!fw%m)ondUjJK#_M>ix3VfJpN2Zgx|$v*C3mXef!!#}&MrU#C+@;znA> zOsQ;JDgs_7Rb(XXs5D8$wD}BgTZvATtv{LC5*Magb24u4Mi2aaT4`C|ArmVNqO3J6 zJ^_@<)t@BDqIm?c(3-oBXn<`sAD$ercTdo(L~XD5?*26@olM?|OE>;j_GGh+!4B=q z$?LQ=)mz3GX|bKHl+7vfE-S6x5x&@EAa8>`Df4o5Wr<(QR*ebPU)jRmGnPc z=&x&#i5ldV*mu7hkcnj85r>&#ih0$nD79yjCT+<<_n)xJ!IIE;do zJ%F#h=a4D1hH{)Im7g}x`XTkKDMPn?@5Fb>ayKJ{scThIl@WQZ|^i;z0ewyiDvv9?oXZL|MN|ZRo5( zm|VH;(a{yI84BH%bhc}VNetslze-XIo$Vg7dscueWj@;b6xGP{oY*dN!DSBR8RGv_ zFrC{Zu6w&@qMj1_r4@XQmYSh2$ZzWlTNJ!~y$-uskPos4=H&DzQc7R%JF>4@%k0kd zqm~^gbH*8ezLM(A(BD4x=*K+65=RR&mCtg4jsBhM^i-Pt=MgIy?ZC%gYQnvP%p<+8 zIeTF~SbE~xO{}?U?w-!|rACMEMBN>}=6!u#sW-Oq=1<{ER;*(3O2#MurxS8LwtE!2 zS2E`PZ}h9U8fkcRtQ(q>mkOxN*mU-02=Jb3ScYXSsqmI+9n1gFwXkxTK&sXKm?9F@ z150=#)yjfki8M+VkyiRzW%_X9FC*{n;hBJc(vG_OzY|R5*7^eLBY}yls9rLJhA+mg zB-baZfxxx?r0gy=7|-u}w9Z6H3KQrTfN;|DQVpCRRb+$&AU2oYG;K$YX}+JUX4Gs% zbjTkLXvDTy+}=PK!03jFD!jcoVUKZ2Uy|t)@6U|O9ZI4)Q^&M3^+gr2i7AA?sT>_w zFJd748gTWmvzTk%b7c0!;b~st_6m0y!mxCInY({-%G5JrVBO8mC(PSgC64=}WaE-6 z_E2Z_|1=`rPmMH?H1Y{F@|>`}2}53N%be@UI!Lnq5di-YP&b=AHDDMeI@0xSw9<$1 zGoaU3c0M_1v2EYafKCWLoJ&@i123(%H*X#J=J+95|7n)tr?)3&+mN$uQT_PmOy3X0 z1rXy_a2EX2_M}nq8NTO3@|%C!`XE^H6tDXvtMtvuX0N8#TGMU2rnS!BS3~8PL>dZ~ z*_0ajwZ3(w?e4HoK013^edV_0dYx5@xwyc=fDljF@npq&cxsiNAhS)_i?87Nbt%UR zoep!|7Q^+e3{})L4~*&hjOaEdm(LkAjz&L*>6bk3EH_sCMF27J_EP5Xz#V~FncSIKGj^30TRhKjhCLGH0x{-2`QQqL3Nv%-Wnr3zCb?mjAc zJfRH@!Eyr5Py_hpXXFnKR~#I5-|mXB>u^)kO2%s@&!p=$I#$+f&#+uy(bOlZH2oWA z+dZlj^yzG+sS53j}ri9YXgQa>XP#ixWKRk9ox6gFks^w@u~4 zo+WxK0aw4rb<-;A2WMo&veJrH4LZb2V@$!3&W&pBVT_D)5uHBpz`x zSzdAVKg&$ba639iC)_vg*E_!fXA8mlx9;^L?!eX$)SShMexDk1En|_))=_xtXdNnf zhORek=-_8jv9lZ4mV~oy9aReWqzaiCz_m~{iLusg-sd)U<3W?VZC`d82&LNDw-4^lO~&gvJ^J+W@by;&V|jT@iRSVh zIq>vsN?P_4W?c|Q0a*!&$<`1x2?3)vYmiZ`*2@Eke^KKlP_ET_DMbC5xrD4icC`Xt zan=$vBy2T6Vd^ZMw!;E|KjnTNsIJ%w<7RhSI*mb00E^?ZDaW!)-!!GZeBShH{<-?k z4;%yrgDD}uZTm*yg#_gL0riQA-ej@?4f4>Bvy7?DWO84tb#MT29W`D8@3vYux3H}larLVy$yB+f@>8p zaD`I`7QYRL&21veD_}}=-mda(&r3?=CMA07kfSbV*VwhSCe9ngQ^<;Ku>9;!meUx8 zjDldXIGd7}UHbY$n6w`^AV8sQ=yi{xHI;2it&jn_u^7BK+w^)p1ynA`w!~tTp#Rhk z@Bmzk#lW!=kGgzzUbZ`v`fbi+Iok=#a{54*u$dHcN$4CZ>Az|PZ!yE|ng(Q7@7_&~ zsaALl9FM8n?(|_Fb+0HHaxEw1Crd|B;|<6(JmyxibR-0K8IX|%z%%@#tePsFnz&8* zIB9&@PA6=L(}#R&MRI#9)0kZ1cwI+or;|~tbRkvLpWV6BNdtoH0xCNXimH4uxw_i8 zsC*#%uNajSSGr(@Q3ZAVB1f$PEM8_l%23sgp{nlj~C_?E=jPvV97u4VHm1 zTLMjBMq+B*>Gq9%&$ETbMfl%L1LZ+OC<=4-^V9zJ$eUEP-A?zzobK;-vQ-)EZ=cOg zorJ3l?pL`^h)+zNEHQZ-KinQ!MQ!j4Trf}>jDDJZM3f4Kyonc8MLj1Wt%0foDpV^N zgh<+FmmNMCRi8Tf|HlU=OPvf0G<%kP{%Q7k&_9!+g4D^iDuXg65^s7nbyEd3?qPd< zel^rX!zbB|J?*pJCPltb^vR(~Hma3+Zm*NA>fjpH!TqX(=#I!%YJ(s!W@*Q)YDet; z@jLsLV^$5i9qQGMB^=*ag#R6QF<3QdI0^>eHgo*HMt&x5oqU?!Y~4A#jqnBevMUdY ziVQ|e=QKKY&L;DmT-|ntFhRh?qcajq+k~NQ!b5QsAPA)w;h|_sFK~F;6d5Y#Jf5Q@ zSr_3GzzGAP2;!h2kp>c;mN}{=I_)41iaKXgI%m&zMrzW4pd6j!qd^0Sew&hx{CI6~ z)TheVYG%NpdF3D=%qPF&}m)obkyA5Avk8sa)g#eJ1mRF zEsIELlL!z@>712H1M$wTA_UpI$Z#S1@tj7||7C)U$G@n>Iqgs%?C+TE?U)4*)3a0{ zD4);v`ACIa$E&#{G%XP5E;`Lw7T;S_aGC>r7gsfVB)*F^KCg+3=?~W~oL|Rkl6_>j z>}yX=!8uOk*T3r*kiVvP%#@FAsbpU>@Hno%X7(RjiysU3e+93%mp<_Sv~?|jO!eHduC={|$sTAErQp{qant0XQ6)Cz& zQc21sd#L+raJvU+Auz_h)YT-+SJTdTXP3u4`oS zaE#F(I?8Ws5(0}ZWM0e4td`r;yW8B}*c4xbS6L7$EeNM97M|_`4cq#nFx7H<`ZAi8 zz=9EYZSTtP*D92vz=IYHEuck3R|Di4a4GI*7(&8SJc?3eQIWE!VOf+BTL%*6sdg<( zkq!3fj33gsv@3*d5k7E;Y*Q4t383S3nu@y`(i?#xyk*4gl}&LYJko-|upmTREG+2) z4coe-FvVTclCIjhH|o!4r=m>=#a2ZZq@g!j76k@dR91wxTfDSMFfED`u)sl$yO(l1 zs*a^o9qM^9)bo6(idhk8=qv0ZlZymPip-I|ghO5~=`K_K!HB*8b4ZMf*di zTIkLCb(xSAYpxE~s(OW}ppT?*!3KW_Ux3B6D)$eMoc-~ZvY-a|N8;wrhR?Ru&UQR+ zp4oNaBKCyR*(_Sk#7pOM4!YH=+gr%ll)`oadEfWSXF2z27!YXZbx5s>e8}{+TZWB_ z=hjVyc@=P?+?ej8ob=O}UWj7bX!gjB>2~oIjymW{Th+j$bkV#$-bYK2UlY?7KA2Ys zCmApF?kv_m!4IVP*yQB{V>($wVcwX2s?rwiWTW*_s<*q>9+}%MW*=_ce(m-XyRfK@ zO1>cCjmyGYmB4*TiUlRvYfHW*9p=j-@wO#bKAK$uaVoEh%HbcNWF6(dz8f z+kMAgP};5NP|_srd_r6KiZ%=)LnrrqrLt^FN_~kYzY$D+GciGTc7lfO!;zX&U@4Oa z8s8nU{78!LId)xW(#d}o33K*#33Hw#mh79-J3g6EZ*h^hE^JzV58k-M*P9fSZ#s$f zUh8`6Z0-1m{aOxcv6n-6Eh`Il5ZDUZzG)jLFf1NrFRvwg zGM8^@jp+_cV2oYV`-E>2{HZat3jMx4vdOw9rn@_)`$>%NWj)YP^H=t|Iz4a=%k{J` zxTzG=9dgI;#%gM#wJM7-mai9I^rTp;GaL9d%8!zlle)6`EXEcV;}we`dQwbYzQr%5 zoAX4ve)f(+{YxcM4CBk6N<({SY`sfXWsze?R|3C?Nr_fZ4lt55zT;nJ*t{?H`hCl? zvdCAx-Xv5mU&81=SUsBf%Q`xpj7gAV`5 zdoN^_2PRj$8q~md4_q>)l-demfN7vV#3_wS^M9R76%{zI`;P9}2`yA?l3r@s%q zdv&mZ@$_R-vjINIbS`9KO?r9letYV@wYgmK%;<8L*XIx?K5Kdu_VbD+?#)caraw!Z zZo`S^CK8X!w@dopi)v81%jBXM9{K%;nQw?IMCwjcsyarLirc0wS_29E9VJS8f!n6V zt2V!xe_*WR9KvpKU>m{?{-4vZUL$Ia^#tg<+H8lt|C9ob!JPTr1Q3azVJBkCgIDl^l^GU z*2#}^YI`dhR=#=sGQ#PphJ0!!C;ermE^jJ4bV}Rl4(C+zI7UvLQ}$PF?IpApyc}4E za@qiWwmqXP;vM|B?z!>4Bqi2$mvV9wIk0{|bE47kDn1Hp+UBL>Vy6ox&rU0!gyGXY zumwK4*CQIXK1t5Uhx_z&V16cps9H~)tMmgIH4Z*+>MP`>lpW|f|7UC`*L;HIu+-9U zr*7iU>cy))|znA-60S*K$zc3uA$#*!)!`^BB6nUQ`@A6QQyron=EB~D^BlEUpqtwc%9&++BVWmi;lnO#j zFGY%s14QQT{N>sNE=o;EUE;>?uP?9ie`|h06q{vDA6x2Bd zCxD#+454a$?Cw5|)#M$T(5ayl8f}=m{pk@=iWuaL@@VYoN_R3=UWHLRxR3@GJ85X-HaQ^ zGdhEyYH+G4h}94g%mHkF&t0oFp#BGzRhn^$VFH8|%fu=AA25AGB}CWmOU7zGo< zB0_MGB}x%IqZ$NPgHuPzX@QxxWPtHN7NdM9OQ=O0stHtiE6?a$p5i&g)7|+2lOpZc z`~oiLA|+%Ej zT9Yh4Zd{mIL0wZ+%B?6sB%nAeDKc+}Bh=jlH%c5%FUaE*fDG!vr9xr|rN2(ekc8<& zan@5{>nWQ*MNk^kR{*z{DvAY-kc(1kY;01G^NU6|uavKNWl$u%lL5Yh9iA^A`T3aQGC1TGP-E6LE3 zJUg3|5vcMl?m!mAv^zbo@vDx=4A}IuX7@2fQ+-N z8a=KvhmK`<1-g)LgJrsgKod^wpU^jf*;ylYKXLmpc60yK*!CHF*Pv>q5k`%x3FqGK zC-8Qcx?OI{y)pfzc_g8JSR$m*l!RGE7$g_Z37{e}AQYtgC{jtNtOT;8o(L&^Q-|KH zPaO{y;tvKWA=WD(&g}8mIJ5BxKFoD(wU<#LsBf4OKm;WXDf1-_ohe3_-9Tx*aEbF@;fba5iz(p5E(T$_L7k?|0q1Rab9hLB(4>8f@(#G6caaS?jH zJfbFqJN@hu?@f_%=L3H&GhIm3Lg9RmL@5Ebhzu10CFSQSQ@agZsG1qlA&`qT zuF*j2|5y+Ww-ahQ_KWFhaE;SE{1utv71@Q)dBU8oAiI^=--0EYw;xiF8_1hgX*-1J z=9mjSgI3M;Et()b2m4zecf)9?FX{$^KJRK8FlUcBM^}HkxbzO%L`|cUXVVx!)XEs9 z2tq*~7mX#POL>}78W;`BM9th?E8*%9W5;dGbPIS7PeaCgy3=_ZGjXl4>DjC_HMKu^ z7p_?aYo)#s2ZU*#QT6yEg5Jl|=#zuf)Xd|w`up>#r_|J*@&*ymC2&Dq{pZWVD_!}0 zD@&K#QZ?GE#fa6~IRYyzAtK!rZq3uzAw+=Ely*rS$sQ{pJaZJxC6<{^h9h|z2wvx_ zg=q;ol~S_;kyS9JJwqH2sBH%GphZ-Z;Tk;sK+Ku|4ET9s9WHZ&9^y|7{Fat_L@Wym zX$>llafxRZMP$@~xJercroC8E(y${WB}E7vYo`Vmy2bqw0FZi{3Aw9;m$n$kC-*%^HQBID+NEqSGN?TrB;X$ z!66HRi$6FgGmBCHw9MI7Nuyoftj&RW1Vlj0;O;#A1sZDwLCJ~;^)z>kLP}Y(A-adM)h~=6OL7WaS znFM&WPe{Z`?&sza_4hVk^H#T`(^JP=wOzEui`q`3Qdb$nTMyxq>IkchYg(`uRgSx+ zF!}5{+UtXKgxcvt*)MLBzbB;~?m0;@JjGjCwX@Wo%N)gJIdg?+ARO(O&P=asLuVE| zj4R9p%Y{1Y+`S^rpT|LZP`HQ=p5*5A@RegOD&yhTXRj8zVNh!x4n{O3Bt1N@Z;%ig z*qwXhXve3bK8*=4kec%_01UX$btEa|hNMjvq`e+?*8F1~=M4B;^ErI(<>R^8=-idB zubTdNIk(YIXi_i!pt)*Fqe_Ncn-p<8?Zcyy!KN?CQ%~(oyMZ@*+q+TA(ivXm&G8+= zv=LQjtbS@`+xR1jx@CG+&C6YLlQ+kFB8F_PpF1%ge@)9#47Y?!#={m`?|t9~-=%c| z1S?flVBe=+dK!CKuUt(szSk(Vaxm5wyHPKFQ2CDF%8%C@r*a+NM8eR$gBOb_*R}Ak zV@<095>Ch`3!jLfwUB-GBK7FW!E_h!^Mx7vdDn`7xPwA#?M zLJI3s4n`v2B&Bc~V#@qp><+ws_nk%@+vx6MNl%KsBZ9tYXw(g>pKcguv@sU=!teQ= z{K!4nV6F^V)N8MZpeqb1D-6{qT4g_`AuoPrbmmOAtvg`qAqv z`~ivTfFv;m{aktF4}5Gs_-}tWXF#G;3ThIao_fks1oZB{sfTLWEiRdQzlqm27Y$T0t zIjHVHMTgtHtEI6tE6=+IhsO5l zGkq1K3#bvxyd}@vpT-FcfeO;^Zmy_zbj2C30cL(n4>2W%D9e@zdWeBCJh*jYXAk3|LAKRVZb1H4B{A&~hEVS;JY`W9d_?^ZioL#Z>0w~s*^>?w(|J3c=ue5Vg z@sS*Co9N%?8NN!-sidj$(P+cI6I%7Pll93qi8s?DBmeM@WMg#7Xr6RIPuw@3j+aaH zjXml7p4_G3uayr7J}0(?f>C2KZ+Ke9E={B-_r!hjvD~ro^~J=ci8sAggWwN84^XdD zXEmFuq5t4KJGALOaur*GnUOv^ywM2U`|hc~9D|mRZckE-W+h6{`ipi>iYv0u?}=u8 z&D;bY;Wyf{*~qdmDqX85PUhL+4o3f`($#x%;g3d@mF2fE>R7pU`i(6{u||n>#h$o_ zo|f>(qxFeKK>OuDd`D%@HQ}Y0(P}-%#g9krcT`qx8?Dv_!O(imn?M<+3EQy)UkvA- zewdp*Fn#ytH~+a;Pv>UCX9vz6n9H5}>N@Y^KW`Tl& zqOyVlTH)slEdKr4;IS))9Tme44^EDaiVw3$+PUMu8N8n4Nlt^!2f+vVH|!^aH1HL< zixI%u6&r8K*u{$aH+ajR6Sr>xm^0WI@e4d0==l#kA~yEl&_3Ic-$nq+7i_Eg3p!|_ zf3H<|l-N&Zg(WEqgD z`wMiH$~^R^*u-6|?VES)+Ae4DuPW#h21lO*d?-*u{TDvWMe}_AFNgouUzSy;ngBp4 z;Dh-E%!d5bpBcf5id@BJZHoNcMdnTiMATl6}ig zvhVx;KV$6Aljr|_-uLtVewT9}=iF!d&b55+>%Q*emKHmKOOA6KhXCjEXC`G<6uGDT zF&v!ZcsMxcaBy&x1dI&LwGGYH zC+LLzO74c&Wj_|Ruyut}TIUi)U@ZOmP0;`pM?b72ZspRd|P?{#ylY}DrNo9pb4$EZPdo2*02*gm*V=~NFX8y5aDC@{XgHx2TtkL0QF;l-oj%gzD{PJ; z`euwqRMaK3T^^O9weR=HtG6j%+_ioQuYRuKA-0ldNmfYzbaAxg9m)*kbo(ug+?OcY zQ96~FPg?uSYt$)g=qcq1CJxWymlB;sZdWLY4H7hLgT(LRwUKFk>H1`8mh7%zMtjOOTd9YhuR?@Q&_o5mG%#vs4t>l>ni-#9mPe&h|5m# zJ?%Z?`k+s!;1iL!39^9LI_2ie<+N{<6E$-|+i2I_b2giKZ?C|hwPr%e=qPu3jAmpX-byFSoi@Gh9R9_|yzhgj!PM7|KX1v0 z+G`cNTV_mov{2+FJ@<_ZHLqP@Z1bCkWnAt9zdOaC#OTQpq<`;*)cwd98e`nba|<6j z1gKv%xaRqX*gy1$yNXPt^b9?5ay~`70m1BM`S67}jg?EM1N*No9pNg1}onSxxZt>wpaqok{QR2(E z!2+S?6CZW1B_)cT=BZH7w_RSepj=^p>K){ZpLa9I23Ac$C|tz%AU#kY=fT_e<$QS) z!3e6R7z;n-Zo^x;zMcRq^9EI7C3JW~yyq#&#WZO!R7p zonSxvZW6Ei@=trtc0&4k10z_d75(T5*NU-Moz-u&;@UGf3BrgX32g54%yRO`(jQHDI1!Z#xSvlm|OqPPZWq|q90EQt3^kHqlW@c_sL6eEUxfnitsbZ;c>j|PMN;8y9TSR!AlQkvP5nBhYxaV6dfq%*xvnpNWZC4Ad{ ztZ@2GPQoZZv+vEDS1y}NF;lUn+@d_z_<j%<49q49XaeSU7&ox7%ucnD~N2_ZK_kFC4jO zpFC@t(y9RDro=Gxy!P^>-c{#VVw}4U@BHtc;ghv!;3l-u`djdP7XM((+c#X1>I4jZ z2M7R4tiiD{U}a?bOvA|N8OHF~c<`)&l{`FMHt95Z~xcOu6KBvom z3#9N`iZ+^jAETmBQXIrjHnW<~*xtFy9gAS3mF1|FyUpTyeVP5t$)FtPcqQqpcWm!R zzCU?htM#kzg?8b91ncw-?@R2w#?d z_cKfQ>SM_0kxJ;9DZcWN`!9V%2-6jQ2!qVRCsjn#mxZB=v~Rf9ok>@^EYgWPOV17B zGuFMyYW1yyzWVlA#hxo$boH634`I$&QhNEPSA^#6L%c3l2(d@5`MF4C2U_>fFSs9% z(8zw!2%0nyC6tR((X0QJG?|VU>Ki^za?nF+U6Y9{0VTWwe#o)PFw<2x)z*?VH`OzI zy2T8{ReZpJclKdjUJp&t*z+(VQoY}S%(W*@SGVGNiT*epmcdz7(_b^1p*0(NJvP;O z_RsgTMz+Gbus1*@enUAOrfF9-Q3n^>o;c zxc%kn6L)ey;t+MU=1dFG3Q%oQdes;BT`>|8(?kTkkI|rfr&dm?W@%aSK%y%@I)4@4 zaiM~wdu7_CM$KWZExOxIDSviqL5YoLeJYK2ZK;9o#pHPL)Wl>~Mz`(q$ZM(1sn>K4 z3&SpxdFusgxi3~p@;7-m%dH$|+6EnGX2LJ9spiewI!mcJOpbe~=B?CC7R>&tBH^{2 zuE1w2m~Hb=eX-)dR`)d6ai%c7Wpi|p*LrZkgU4~Ykj^1(=o4MOEH}5G70+@{zf`xw z@7_gTskZ(!-j#3<-WTkvW5vAde@dg#L3ftdN=bOF=U0~19OkAyRP)!@CmojBNYor= z)w);y^rIbRj0)x}fbUlAxLHx|xHJ+znKz!VIS^V8T<;Cee=*<2938zGpS%8RGJ&=1 zQR$aQ@E2*P5wRwym2uV&==y%vbsdzbb&;v^qYcYuffqg$h|dYk>HVy$?T@(fE8XIi zo6pJj$Bk68ewn)Sr*QKQZ>}ODGQrM_+rf@UurwIHcFdFBD3F(a=Kj+NafLyW4?_uN zS2z4by6%xWN|*e}lX8?R`I|WF44sj5S?Z^M)SO!s?Av$wnQCv1*kzm9t`~gZnZL`k z@R$TM`K4L-P{MsBpz*dDU9$l@3_@H)6$Wd>)YJ0o&u`?CU!TkaZptYZ@C?+rtOU-& znG$9Pp#y;zfL~ct^UuU_62cYLn7w(~SSLqaW(J`s%;(5l8RcPdRF&&$!St)V&sG_H z;gNQr)Od}H!w;pw8kdc6o4Qj4Jizb38CbS?c{a>(aMVT2`WL68Zk=KQ$?xC`fs6Cd z)!8tKE-pt^^R8f(bY3>D8e!~>$hpBt@s-)C`%;cS*8h?;q>-rFPXU(NXp`z%8ER^{ z3|aRob@6bVs@|L)&*0fyDafZ?Y98I3@0W61nvP~$K=U}RJFgmTB(G35t2KD2IjlQR zcRMbJlkmJ)cV2ICRCQeLo24tTCRVj~j2WCnj}BH_b=%C_u9dSDIGk*qP}Is%OmpnG z##x-I#yqifv2%K9Be}w+Oi`=cKF!{-li9FY@J{<&)%?_kaa#mWXO1WpkLA2WaArTZ zUU_v=H%CsdSLQIiUW0uB6&a_p&>ijs-{RFO#XiIMABI)ytE(%^QDW;Vdgm6XM%1(D zd^}ka^0!?`P>r6*cHbPy8JN``F|wd*oA{DvI`Q+0 zUh#adO`k)1#QGU3(GDZubhVaXIA;el&lAtg?vE=kW2tD#=%kq@ti2&bDURQ$kCobOfGue3B0XhZ{w(N<;&Nk zel-@!`P#8AbWUTA0eP?3SD}YLhFrvyCcGr-fBG%cIpC z{+{5RPV82(M5{d?c~{5#R4cIFmew&}vy*8xM^(`Ab?RyP@(t^0)wEHw1+k?QWts)F zmiE5cnqwXpJ&Kd6JT*E?>89s{C!CEodc1OnXCtCttTTo4G6n})%#Hrt@XL8RR&%jt z#C`^SZ=u|!Jl|%qv$0yk@mp)tsLkwe*Vxr@uLZm3WsSs(q6NkFExBFG?8`J~>Kun` zUu=##dMhP$2TyuAPCKWo%x)|v^IRG8pC|cXF(yTYCRtcr&MDi-t-IrkE*PTSsA5|S ztl?c1tuMICGNndM?x`6@OFJ?dq3ZI~v(sU=#&NMpYV+p28bt*6Z^zEj0nYBZ)fF|8 z7kMk?-51t7tsK_6pUmRYC8b!ss(y7X$S<$V=evCJQ=$Yrje*+>FO(MpD>5HbGP(pH_kbc{?F*3jsE*h#Y=REfYiMo6}9*n=@5v z8#ZwbjVh9|>TVo_-X{&t7=#u@JDxJYv-|d)3lAn6!_oTHnYr_O_O)c1UJxH zTU4R$_rKrIQ@WnS;vp7l(ET@_*L55e5}$y>E}okJo}u@3=8d|0c!c)wP-5}a4huCb zQtaXhD$!-4OccNQTQjasqg|USF}F&0pur|bKb;J~amGN#sqSUslbZ7i2&Xz22j$rB z;!lQ8I?uPBX{Bw&8N(SP7{fIhKRpHq?%sSXDg>#}#eIrP<$o_|@?)LuaG2}GL{~~T z+MLKXnndavyC1qDcE7C!JUD`u<-+R%FecQ_uB%*iJ*jqQbb29zA~B#u_oSPSm+OLJ zTpfM;`roIU8>Q%tJ2iTLuSb85)-;|MlhAyqkI~b~h;2QcfZt-d{V%(fzHB@#TKy3? z?CQx2(39W$MsYd)Jw3tq^aR7|>Bcbp)}p9ezF~9!yl9&L=Mw$%i8`_gJ}bU2f}obG zGlP!vrD~fEqnkgMi0But#{x-1K)iEI%B9;+%$^WYZKP&U)BPRctwTR)IIr-u5P14z z&cgYGlcV3hTYg{oe)0+a6X7S!*3X_kxv(^DU*pwuRk7NuiQpH(9S$?@p3Cud^>5u2 zs)Z7TJUZ*g+~wT|A86f5aFP<44{4a*L?Sh+zh@L)B4d#e%6HWMA ztAD*hzrwMfJ+<>wZT?alTmG7}qga!Fj@Yw_VXMKBme8_S%`dm&H!JQo{$|2SjO*je zo9X^rg|C{Z6{|gg!>$Tb0TpJxZ&GgDr$YHX6+XtQ(0EwhY*BGngk%cye+Ql+wj75fQzo<@Z$H+4 zg6bvBOPW`KJ&A#@R9KTAL*?Ut=!15UouI`alOv6PBokk!nZc10j_S7|Q6$!rqB0ut zEV~t~f7?IJBeyLSmhsqPPjQbvDM--XeKz~C@2kCO^Oe+2^yUCt{?c;6-w)S@NsDz> zb(TlFL;K=>3)yx)#~sAIz>vFg+i*B|D7#y?+vka}K=3N+Sb1Gpo?}nEPdG}+>AsVl z(}}_pg$#w~^1k0HtRg_Ky304;&g)pAcwn^t-uzv9Vb;cwbGoz31*2b&MP3xFI}-Sl z(B+pd(VTYq=Q3ldjyQ2u%RfpGwKrpC+B z`qH=FwDK3kT`kv0V?;Uld&!*4oLopxawvQ}8LP^l9IiHK*8B3*^9~{=aoqu*9`~N0 zo`+Kpr$nX%*`~y&_zS`(Pc@6zRX74MH z8u3fN?zmH!$GN1uafk8Q+0`p4zT6^0y@C_s0X?LPi>xxQ8w4faK$yL}@7?3RVkHS^ zjZ=3jzwtxNlo~|ujRy0Ubx-R`d!CH7=1)GSA4DK5rQ5H{V#g23z_r3%#Km{QcM^7D zwte-~>B0()y;Sl`dcTLH1|gRMFF!X<;$7w=)*ygtFp+Yup`M3Ec%^Rvr`o{h@k;arzuiq@?z|a=afpEv2j1MR9CZ-JK zAuPOCSW0k$tdWrq8F6;(%}sDoAo=gi=nI*l|LJN(>+bo?7bQp&q6lym{6fh9lF`Cf7&z@thP{^e1Y zinzsBowU#IcoYlY&oq&Q8v5ynM0+0Pq^!5&QDSGsu5Ec#JaoeKYwa?6JrCyH!;y8q zSJg$(Az-7Jce$S~!qHpGAOr0%A6&3euqiylQ_nm=%I72}s`tkK8kRjavUrZGd!Qat zhDCm+dA=GTpLA+r?jeIGYRCCac^CBqPc)YImk2g z&^4>4hp8S^e}2$1vpIM(WHocZ$*!L%X8qbn8JlDM>ZN$YmncXtR3M|*HluRtb(d9| z1{jsK{NK44mq3+~BaCephJ-CyIm(=6RL32Uz2m=*_4~|Uo}<)R?xxq%$ITvRU1@DN z@tnX=ubrmwLE)>OS3RCRA5^02#HU2_PURkqE!8Zvrg+Ud2g2tq_DpdIk} zjn_&2MMM*Bz99=4m-@I2axT#@GK|wtShn1=RFQ0jMuBq(qE#YbCMup|*{r1&(5TTk z0L~T8hB5CdQZIdt8$ZuS}KDHE#!5q14s#R-!Yi^eUI1n;1GjTVEz|cydoz)z~N( z_iF*(7#H=+mQY%xYm(TsaoQ*n-(1D>lQ}p_G@CrY9L!i~QRS@FBKo_aIJdX>H9Uyi zRanK>DSOL&c(}AaxCmS&|29ygMJVc-(}M@K?|OW`b&__Rqb8swpgk2dG#_|Ml`t-w zT)_gIJOY2xgg1Oz@3q-_76~Cq{PnxmAI#sTmu3ND&>$}hcT!eQm-Q)qMsu1V%FUGC8(f|JMDW3^H-E%P*W@?H28AWrAO)t|Ohi z5g%s=;lQti`kA$rw+n-4bp?#Y+9wDmPMyIe!S%qEnp^pW%Z3M1CcK(Su3!vK?s38n zjUD(XXS@s4xq{jJzxz7Qw5-h1$7fx z77O+A_Fb#aX?586VwJ%n)ft%^{rF}6hMq0n{9_C#LTIII1UIxYTvd!O@BF`AJTm05 z*sHHT$DdupYks`z<1@+42YtM5kVRQ1A>Z3y|Alz!it1} z5xH}dy~F8~y`5p)_P#S^cgyC3g;-*K@f%AT%jm*`t_J~cf*e@IQ7ihFAMfKii{0-=4*312WDfa7Q={Ks)yuS(z zRnsaqzLS^SYsnkcw|U(O;skg%;YjjPfF3CjCM1(9sDqP>b^%#9gAM{}q-jCy0P0jX z!vMlXAZIK)Q3*K#tuS^8gUFs%n7Ws_?}k11E!5;sm3*r96HOMqGG-V)54*w0El_le zky}5ByixfmuVzgmS5O8gXTqPD?DJ|D$RV%3p19}L`GkO1zmF&XYuQV2UR6>d((g(F z+*lzpS+q!O^SUbhabzZ+wbj5QWJ$BzWq0IgIUn< zC#sR(b78M+Ks(gU!u>P;AazgOMQ>C0djgVKRuN}<1~j}Q2m!u}hX48V2&p&2iZ}R( z(3cV8Lrn9J8i|W?;#1(Ro-U)oUlG!pTS_u!$!^ON8YGanDu9zy zc1`xy*$s5ShsbF;<#$ZhtFDPL8HYTwoeF}-DUS>&18k-l*;5AdtXELH;`ol=vr)nG z>2iKfd>UMCN|X>!TYfA2k>&``36?beTRBcQA^&D?F}}~J$dQ53H4c*ZG6^fxKZRvV8gRrDzTv3 zI^;>4B2Hn=n4In{rU4cD=vX2jAE6+Zux4b@wh-1+)Snz&F{2}={U&cbMK(;R=VAur zy)}-~)*X)vv5*AcI46Q4URUZS#dWkHCi7^q)m1%z_dtxJ+k=cN2 zqvRX?vNJcpr;soR#tpB>WSpkgIt~6UrD%~kA&S%NVr5J zC!`JSR8^EwR+PDi0^OF-hMH(YnI6g0HWa*$j-KgMaRc2x$&j>Jn-x}ug#$ELIFv`g zaS1C!7H!Kud)@gDdnxSM%WcbE2{Ay7A*ld+r2zIyU@=UHi72boT(O$+qKA|MaSuri zD|=ZqPsfFjQ^XLpG|+7OwDwUxEvG1>uq|6Yt?W4Qx~RC4@IV$q=mCLba;iH0?sj@V z1t`y4ngRv*^p;izrxjC#5{h!Lpo1tb<6bQ)Kh%n98 z&_Vu4UU$I%i4;lt<;=+E`zKEJz{CmY_I5}1s4*eo5H)6|?olHIB7%>SQIyF*$de=F zg3m-uR3@+tDRUrMvCa%MTh3gEp1qf-d~R&`)g9c7^znUD zOZ24pR9H-ESn{^)<3!Y9PDJeEL~Xp`kejTKk%dZRUnR0KHX%lj6@r97SYuODB{yk< zzWlPbvXF1Q=ti*i6*Q87NgP>#Mw!$=PbWGijUUp2YiAomTzKty4nrpM-Lu?hxyiWe zM(>}?1-h|}ZObkj4yZpp$cCu$z+E=9X$9CY#`PC6J1;FPGcC-N3!?A;3)%Mz2^&dB zXee+&NG#Y`k0doBZIL)b-_?{u|6j9@+<&l-%^v%B|9AG$HB1}=*oSL*)p|uewWhei zs!4v%FDG*Yf#7J`8Zj_U62Ui)v<5k)BL;e)8%OiD>_q#=nZpe2y~ofqTMS)G@fBom z_Z({W96H!2KgaPERQ(kc2v=%jBw~yGO0TxDhR$Cab+la%R$HHA`}Ecd@f_;Ge%xNg zT22WQYqe*46x?f7FVHs0>*_?uemla3wMGkel+Peo*~gDchxzgO9zQk%{KyslEzAg= zsGF2H6!04v6!k4E>sy$tKIF?Eqd&tMT>YIWr8-T~UR%D$vWA#ppZ|hZu9K^97RbL% zukt9qp8K*MRMvsql3hyTp#6K0l4`93ly)e|)j12Gq+dT0huX~`{$>y^=8UlDibUOC zi9_BUl~({Ga)C489a_0LP7qshRb?rWXRJvWH`j%h$!c-4Ce{9wlr=emlR~@47CFu% zu(D&ukm=;igQQ*7-?u~B8r)ZtF433^nLxW$mFtw1>+Y3;9!Qu#%}k)t>O`%(|n?h2Od^(sy z>T*ja?WB-p#eWFv`JOT&=Ef^P)fJ$?Ps()-j0g^9ggMMqd)6>@+6xJp`IF7&u;9YB z+1u^qW`!_=dWbrW@;W8OW?>Q&c7C%?Yt5cQWdto0p{pAW&OXAkbdgEAuG_NB4oiFk z>gI>pp>B^IE~@Zx4Y>{>^B-h~-OCO$3xnAD4NRO%Yc5gb;CbO}?{mBksaB1oykuN+8jSovJ(Je@#`oGK>zE~yo~8+s%TwKjgL2Sabr#C9k2OlYGJK>`2?&6>Y9t^q80q(S=BC~qHo#tQ_!>F4~d8rZ`I;zVzKF?I< zR6+(WKFZu+yCcSm#?XT6RQ60IK3r84V?mVnQR;%h(B6KkVD>z?hV8CXfk`f~9msb@ zY+UUy^MSl;JE*)VhEX#MSS-wWaLG@q;Cp%Ss0ct|-Bl2#@xd8GnJ$%al&Pzl^5&vH z(^mv$nj&;jIw)j@C7)j)$E)v%tWHdH8b#I*VJbtwT+#bN@5SNJo8AgN09GGXS>6=W z0IVfg#WdX|h{5qZ$zl!`+n)4dBV771+IZpd`*nu{bOyfA44+8*jDHP#R);$$zI; z-rj0p_5!$uLuAR?_DJ{|C@uX(9B?jan*g<)koPy?IIKn6IL zQC_nUZJ2|0@J3>8#2U=x)67IA+FNs@&sHuwVhuCwKoz}aU~;qrfC+&GqK1FhznBIP zu%Cd>V~}kppglnSYx!UTDn~oGTSpmCcK{~kI)4zA?XwW3K}2Q18tk5gL*$<|*k>=b zwrEEPTWo%qA-qckP-86N6EtF1Pw%{+O54c&Z#~JWfm60UYoDH)59>*JpPm5!6Zk9x z=n0MXRtEGm0_bTTj2Ulk++ zKDSl$J>Py?RZ>I8iex3T()s7zrXT_XC@xHb4p37{c0 zo--_YKrO?o{z#G-Mv*l@n4%Cc@f~+x1jc9EgYJ$hAKr0yL11XYxch&jE_pp*fYt$& z7MY1*3@uY!tfQ2+2iy3y%ZIAL_{A2d0lv4>$$jQ@h=)hLxoK;2<5tZHV5< zYAOK@)`$MoMSEvtAYg`Q?|T4i`Y#}R7mzk0vZ^zjv*LgyJ43k55HCu(p~rsCclm`b zVSK)n0MOLK&)V8CfUfQfj31FZluFx`KG~LCSpTH?aie1p5)5zQf2vbu2VkAfK!{7) zm5Mj0vUjMmgU3b@dY47 zK7CZgT>wn_dPjC9?lC~Ra(J}K+nKnt0FEZ|-;Ks4VFR!^K;SXEi1vHZiOPluZhds^ z&tKAZM+|`MjjHUe+p^067!N*B++g+Cot|${jqJL-x8s+BvhP;C@yM-=befvZiq{14=T|Nhf&Jq5*prFB$r*UIjb_)t_ zfSVjBvU1Qy@A7#+z!1YvZq`HoF3cf&=a3bmXg|Grj5n18w zLJ~%`>qXoGmEm(3n?)YMk{1MqL9cgY&t~F>ZFYB`%^EN^^8^Ad8gV)r2sGPL@lRV0 zbq8xReKdIn%Vg35l0uBR#qn$>U?E^WS_FjjmSCdn_Ypkl61spa+?L%a1BwaimYoyRdzrVB(_JLFwE_|G5*W{~zGWB`HBj1_B@rCFg6 zV}72Q8#UHGm0R;Zpuq}9TAJKZIr>!;;;PTK>`dPOFKRH!6ayeTJDXBdo6^7Dh%t@< zP}Kkk0?b1cSva>H zq^L%kr@Iu@scwk@mI?qHLk^4~t1FUP^->`|X%Knl;p^+G*0!wOogkGIO+J3L3qU0U zGq<`5MPLPR@FU9_3dke{*KOJ7;D^c@Z_D?}8rGPyMk`R($a|2jaW7i~C~H^(WsQL$ zakfGTLPpfV%0~bCvdY;jcwUYPY6lA z9L$c=Nm=gaj{AYk@GN}(~ z4?E^JN*DAbHWM?~Q;*Hm*b)q;(jzgMlxl3tK1~0)#JLYs9|jXSfTI)5IHf63%1Dd8KXHg=5|NA1hPOcFI4bKq(so=PU4sQ;7V5$MMFV95i7vJ0zYa+F{SZwO6#`l zCMZS4%?A?{LJy_gNy=36S10piU`5f+?pdknv(mrm@?*e?VtFFScY8%~@#8{;bz6}c zuz=Sgd;Gid=1*MV$Sq9)4OaZy?j5;?=MICM5!;p>O^H}%TEE)=5|2QUW=B8vB@hMc zt=dnfYdtb2FTF1_z0VW|G4!uT_SYlDSQELgtV-7NFtT)8S!v66G}LUWZ4Q|UV;6;h z1}gxjxTBV*-B}@LAltHoN!m(5@nG?;(?om6dUZ7Nfc372r}i156YeG@WCm0szeJ_> zWv2Fdu|hm5x(m%p<$#sxl)kbjCBV9wRigriCyg5wOtu8zNnq9d->F<*OiEw!w(Roc z|6VWexk(9`SSUmGmm#b45;FBDA?{R=>#->_e!yyQbUhClo0_#1RKBB?BWpuo5ct-Z zwO63Q3P+lmoZ=DnMCwQK)biW1JJMlR?Dkvkbt4yA)XNG*MPG0hT*C zCA3RTv`crEI~#b;VlX`dOy{xrWt7)^A|@5XO}#OxeOm%>6JW!Cmx4=Wv`f{uWgj;| z4)bMF!pm0iY5(m^3(`;8>1nsuaE{;7tKF)XJQ+ z*tZI(wdJv*t1}3^Tk!8f&)v#|yFa&OcSz|!{8oY6_FDyc7U0jItrxG9g>*_ggA`2y z04;q6w4_sNqEpJGE#ExcU2+Rkc&bHG#go1&$lwpf##<;zcuN4^COnFn-1#AA1h!?@ zw{0#SVx|ET-5uYSp?!z(ZHDwdLz2Y1XA(05YLQ>Ar1#xT?*kUgN9Tktv7E1w@ zr+|FVDVa2s$WxaC7BkQe+;HROY{T!%$}xpZ#GZI^+|lZ-Db}-1A?{lOc((UZOMBD< z^3;E~W!JN3Ze$$v?8^R*y&UdmBF3`~0h=kA1Spx@%K~g>SZZQe3U&Cq4*X5kQ#$*> zPOVv~i;FNiBbV1ugKf45Yu#J1SXuqVlBGum0Wr(RIpbDb`@}nc z`&;KyFM-;|OpUCB@61c}hDT?4bXi&BF#}EQPbTbJ2O!j=BWhvDN>-51Bi5_&atiW0 z!;C;!aVgP(Stl7yKP~p1jPGH^$E;~aLMvI~OY*(KhNfDEC#C#{;`HiSLD7#`MM+g= zoEb{K+4-<>Wr>;Ba_X__$6?^e@rRuwqq&WF{Ygglhrz8z;>o-g{bW%pgL z;~NQ!jfuo~y9|gi+euLP8c<4k)CfO2a1A=Jepi+o^jukD8udl*jS9vr1DIFVa$ zAkyad*iriaey~z@6pZP;;is{zABOu@jVZb##ccR*1cuS2#K(kfVdGQKyvJ{+Vj(9J z`dI}EIwBU|I;3^SCx^k+p^-(%y%{l$yxhUMw1u+FR^6$cH8RZU#1vPf07^#YgFRTg z2`r}~DFmo19Bv{MSr3jA+sI)_84tR;SX$#SJ;1xBlsY=6l0>z7{FP%u_)Ba(quQdy z?dwT16-znk&`=d9-Vp$Se-8E*4@F4C3OX-`4NYJXYb-hBU}&cHJMDxf{r#&kmuTW# zonT|nz*UmrW2R)RO&q6C$aAcZK3~dto;pgOW54WC@MCi@d**tJoA#^kYOqlAt;#u` zg|{}8-S-i6oSgFaqejUi?8>SiE!Qd;n;ZyNzrP)kg(TT$+QA22`y1jijK+*RBhOLw zl7(2m*Nra8_emXvnX5>01BwfRn{Y?oJeAbWoO3<3ediBAbh3YS3}mx|&o0@48^tlX zLrjQw%A8b0QjU8Vm?J$rv_|iruetal!@wXRSytC5xr-9pF*)@*saW@5>X+>v4&Hh3 zX7q-?lX=X|FmMVwa*XSBQdMk}T!Wk}Yf_Zlok9y|u66Vip@sNh`}z3IpR0A#-om(T zZBrTL{zwflCWio(!da1#a^zwdhf5*<_i!BQj0 z@bqp)z~uu4ng-7t$Th-ZlTmPWNMw=xzQFtjKNOf9u$_XioO2?1gaE1z7CWIA*@JHA z4i;>ZXn@(Qd(~M;abL;NOdSndZE6eF^qqUJ-uB=c$&bkCx$KFLzdWyV=NWRph(krU z1Uj4DmqII%v?O^hEXh$tD0SF4n|qi)w0&qRXj{Z-BV-Faa@^#(N`HJpaIb8OhwD>U zs-X41LT|)>R9)bHQDI%0InYLfb}+le&+j@FlrcCeQ;6&h4{A(A%f0e`Ja9Xgvu zXrn1VOHohXm8Y`W(EB}=>~To>(_uq#NPTlc*gu|2)|g|e!E{@zzPD+LX&(i@8F zrBc&1bo!mwt}xX!38r$Hs;R#n^sYl8go?;q^OfP%S~tAxl!u(>hsut3{?Cg!DNi`h zkCi!fDkM`8S!$A+Xcih?ZFR%jyDr$F0La!|&p+6XF4Uaot+FsrDjHtBVj7OjWS==V z&%0*Qg?~+u^XF>B+mbPi0nWC5{hx~((#&~VFrX4X8ra+gttDJEkI${_M8$}J3bzYRqIJVQ(eq8#< zC_=!@A<_-y63(8IJMMtH_4@p;hL3c&S7gGEJfzXxUX|H92(QJodHApIJ1{sjlJe>= zgzNB*FmAWhydyc7eq2=^w)DI{q`W?Q4nLQYG?$+{CJFQjc+rKL)>>1}Xnt_GTIa#E zk|N0KGgMBtt`J5iHupa-j+J|@E2PqiEofFaTy68vF7aSmP0`}@*}G0LtqBPBuGe-) zvo(dT0nC#+%P9drJg)Q!fBIYQI?3&CwAz1(jLvIKwW)=U_fTzh7RuMpz&Ae{~?LPrY<)_wZcsqYs{*;=aQjdJ!tp z2yMQ{=OZM@ux&MIM4lL?OB${oGg*WSL4D+@oBc+EnMRvw%w%+*P7lY(j+lseo&gO@ zd!FHWUDWX1SvuEd6;c9q8T7NrkyABQ%Ax8Mj+% z;p`ktzw1?=hV;Vnq{8x|?j2E()RhI^RQhSKs3*vtI<)*UR6gbhA?Q@z7bf235#lo} zsr=Y0ilOunIjy(I1ZhtY>wmilN!5VLC;UKy6jSIS@>(Dntx{xyf+uM2I+R=ykgdC@ z2yDlAYN)&w81tkeG9cy)gQuZ8HzWAw^6TqiR9!Qo7d}XxLVDw`Xfb=7K$0g65;U9P z5`wEZJuKE4*t&W~k>o!I3I3Yl&farcrY?Np{)9*PMlge44e5Wo98g30Ymi{j?9J@G zqGjsd7w&>H+b706!gqriw(g5C1~YiRaK~N|-RcIMo6g)bMQn9aT&DiaveiYzi~bf5 z9Ygj2G2KVcCBHu+q0%p(2nyc_W4KsH>N-RqC@&xM?(_#zn!@+)`>zX`<1%nL{g=yc z7`Tc^X?owg8w(2G4P&6L^Ay=WA$1=j5H`o&{~&12NLGiv!U)E61I|Sx1%)S&m`;q4 zFottbOczi3>W{;8@uZzI?`oPvfQ_NFj?pm;=>7QUS5GQFOb}%r@lZemCVV53Vdny_ zESD3QrqJ8{$$!6W3=_T^$q-OaDmhFLZT?1+O!c@9FI>2oVxYig)y70S#&48!@-)KVAk= zlD+0~;-e`Haesoj#&EHb^z;b9NekTne)-L7t|C5~-Vk?VY2mvu4AhODBHJgVXGRF{ zEwJ}L;94+}HDa$Yf-&8Ia}h~t;R!-aCq_sN!#O-m7tiz%$ueQ<_Z!W;MFJDVBLoo= zz%cDlfY~RN=;|^3aYkwLB1sl!357dsHDD-{+BLV4u*VBImcXC@jyWsx6QJ>BG@icg|f^&0qag$D3>=>}!*T46b#B8SoY<;!;-+$R< z^6&>7-VqV=B=!TGf#yH '' THEN - BEGIN - IF COALESCE(NEW.DOT_NO,'') <> '' THEN - UPDATE fes_accuml SET - APP_TABLE_NAME=getBeforeFirstDot(NEW.KEY_ID_TAG), - APP_TAG_NAME=getAfterFirstDot(NEW.KEY_ID_TAG), - APP_COLUMN_NAME='value' - WHERE TAG_NAME = concat(NEW.RTU_TAG,'.',NEW.DOT_NO); - END IF; - - END; - END IF; - END; - END IF; - - SET @disableFesAccumlTrigger = 0; -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'accuml_map_to_fes', 'key_id_tag', '', NEW.KEY_ID_TAG, getTableSubSystem('accuml_map_to_fes')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TU_ACCUML_MAP_TO_FES; -DELIMITER ;; -create trigger TU_ACCUML_MAP_TO_FES BEFORE UPDATE on accuml_map_to_fes for each ROW -body_label:BEGIN - IF NEW.RTU_TAG = OLD.RTU_TAG AND - NEW.DOT_NO = OLD.DOT_NO AND - NEW.KEY_ID_TAG = OLD.KEY_ID_TAG - THEN LEAVE body_label; - END IF; - - - #首先禁止FES触发器动作 - SET @disableFesAccumlTrigger = 1; - #然后询问自己是否已经被禁止 - IF COALESCE(@disableAccumlMapToFesTrigger,0) = 0 THEN - BEGIN - #清除旧的 - IF COALESCE(OLD.RTU_TAG,'') <> '' THEN - BEGIN - IF COALESCE(OLD.DOT_NO,'') <> '' THEN - UPDATE fes_accuml SET - APP_TABLE_NAME='', - APP_TAG_NAME='', - APP_COLUMN_NAME='' - WHERE TAG_NAME=concat(OLD.RTU_TAG,'.',OLD.DOT_NO); - END IF; - - END; - END IF; - - #添加新的 - IF COALESCE(NEW.RTU_TAG,'') <> '' THEN - BEGIN - IF COALESCE(NEW.DOT_NO,'') <> '' THEN - UPDATE fes_accuml SET - APP_TABLE_NAME=getBeforeFirstDot(NEW.KEY_ID_TAG), - APP_TAG_NAME=getAfterFirstDot(NEW.KEY_ID_TAG), - APP_COLUMN_NAME='value' - WHERE TAG_NAME=concat(NEW.RTU_TAG,'.',NEW.DOT_NO); - END IF; - - END; - ELSE SET NEW.DOT_NO = '-1'; - END IF; - END; - END IF; - SET @disableFesAccumlTrigger = 0; -END;; -DELIMITER ; - -drop trigger if exists TUA_ACCUML_MAP_TO_FES; -DELIMITER ;; -create trigger TUA_ACCUML_MAP_TO_FES AFTER UPDATE on accuml_map_to_fes for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'accuml_map_to_fes', 'key_id_tag', OLD.KEY_ID_TAG, NEW.KEY_ID_TAG, getTableSubSystem('accuml_map_to_fes')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TD_ACCUML_MAP_TO_FES; -DELIMITER ;; -create trigger TD_ACCUML_MAP_TO_FES BEFORE DELETE on accuml_map_to_fes for each ROW -BEGIN - - - #首先禁止FES触发器动作 - SET @disableFesAccumlTrigger = 1; - #然后询问自己是否已经被禁止 - IF COALESCE(@disableAccumlMapToFesTrigger,0) = 0 THEN - BEGIN - IF COALESCE(OLD.RTU_TAG,'') <> '' THEN - BEGIN - IF COALESCE(OLD.DOT_NO,'') <> '' THEN - UPDATE fes_accuml SET - APP_TABLE_NAME='', - APP_TAG_NAME='', - APP_COLUMN_NAME='' - WHERE TAG_NAME = concat(OLD.RTU_TAG,'.',OLD.DOT_NO); - END IF; - - END; - END IF; - END; - END IF; - - SET @disableFesAccumlTrigger = 0; -END;; -DELIMITER ; - -drop trigger if exists TDA_ACCUML_MAP_TO_FES; -DELIMITER ;; -create trigger TDA_ACCUML_MAP_TO_FES AFTER DELETE on accuml_map_to_fes for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'accuml_map_to_fes', 'key_id_tag', OLD.KEY_ID_TAG, '', getTableSubSystem('accuml_map_to_fes')); -END IF; -END;; -DELIMITER ; - -drop table if exists accuml_temp_define; -CREATE TABLE `accuml_temp_define` ( - `TAG_NAME` varchar(64) NOT NULL COMMENT '点标签', - `DESCRIPTION` varchar(128) NOT NULL COMMENT '点描述', - `DEV_TP_NAME` varchar(64) NOT NULL COMMENT '设备模板名称', - `SEQ_NO` decimal(10,0) NOT NULL COMMENT '点序号', - `POINT_TYPE` decimal(10,0) DEFAULT NULL COMMENT '点类型(ANA/DIG/MIX/ACC)', - `POINT_CLASS` decimal(10,0) DEFAULT NULL COMMENT '点分类', - `POINT_PROPERTY` decimal(10,0) DEFAULT NULL COMMENT '点属性(采集点/计算点/虚拟点...)', - `POINT_SORT` decimal(10,0) DEFAULT NULL COMMENT '测点种类 ', - `UNIT_ID` decimal(10,0) DEFAULT NULL COMMENT '单位ID', - `IS_SAMPLE` decimal(10,0) DEFAULT NULL COMMENT '是否采样', - `SAMPLE_DEADBAND` decimal(22,6) DEFAULT NULL COMMENT '采样死区', - `SAMPLE_PERIOD` decimal(10,0) DEFAULT NULL, - `IS_STATISTICS` decimal(10,0) DEFAULT NULL COMMENT '是否统计', - `IS_LIMIT` decimal(10,0) DEFAULT NULL COMMENT '是否越限告警', - `LIMIT_TYPE` decimal(10,0) DEFAULT NULL COMMENT '越限告警类型', - `LIMIT_NUM` decimal(10,0) DEFAULT NULL COMMENT '越限数量', - `LIMIT_UP1` decimal(22,6) DEFAULT NULL COMMENT '一级越限上', - `LIMIT_LOW1` decimal(22,6) DEFAULT NULL COMMENT '一级越限下', - `LIMIT_UP2` decimal(22,6) DEFAULT NULL COMMENT '二级越限上', - `LIMIT_LOW2` decimal(22,6) DEFAULT NULL COMMENT '二级越限下', - `LIMIT_UP3` decimal(22,6) DEFAULT NULL COMMENT '三级越限上', - `LIMIT_LOW3` decimal(22,6) DEFAULT NULL COMMENT '三级越限下', - `CROSS_PERCENT` decimal(22,6) DEFAULT NULL COMMENT 'CROSS_PERCENT', - `RETURN_PERCENT` decimal(22,6) DEFAULT NULL COMMENT 'RETURN_PERCENT', - `ALARM_PRIORITY` decimal(10,0) DEFAULT NULL COMMENT '告警优先级', - `ALARM_DELAY_TIME` decimal(10,0) DEFAULT NULL COMMENT '告警延时时间', - `IS_WATER_ALM` decimal(10,0) DEFAULT NULL COMMENT '是否流水账', - `IS_ACK_ON_RTN` decimal(10,0) DEFAULT NULL COMMENT '是否返回自动确认', - `DEL_ACT_ON_ACK` decimal(10,0) DEFAULT NULL COMMENT '确认后自动删除', - `IS_NEVER_ALM_ON_RTN` decimal(10,0) DEFAULT NULL COMMENT '是否返回不上窗', - `IS_FILTER` decimal(10,0) DEFAULT NULL COMMENT '是否过滤1', - `PERCENT` decimal(10,0) DEFAULT NULL COMMENT 'PERCENT1', - `BASE` decimal(22,6) DEFAULT NULL COMMENT '基数-AO表', - `COEFF` decimal(22,6) DEFAULT NULL COMMENT '系数-AO表', - `RANGE_UP` decimal(22,6) DEFAULT NULL COMMENT '最大量程', - `RANGE_LOW` decimal(22,6) DEFAULT NULL COMMENT '最小量程', - `SEC_DEV_IN_GRP` decimal(10,0) DEFAULT NULL, - `SEC_DEVTP_NAME` varchar(64) DEFAULT NULL COMMENT '二次设备模板名', - `SEC_SEQ_NO` decimal(10,0) DEFAULT NULL COMMENT '输入点号', - `KEY_VALUE` decimal(10,0) DEFAULT NULL COMMENT '关键数据标志', - PRIMARY KEY (`TAG_NAME`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='累计量定义表'; - -drop trigger if exists TI_ACCUML_TEMP_DEFINE; -DELIMITER ;; -create trigger TI_ACCUML_TEMP_DEFINE AFTER INSERT on accuml_temp_define for each ROW -BEGIN - /* -INSERT INTO accuml( -TAG_NAME, DESCRIPTION, DEVICE, SEQ_NO, LOCATION_ID, SUB_SYSTEM, RTU_TAG, GRAY, CONTRAST, QCOLOR, RAW_VALUE, VALUE, STATUS, LAST_UPDATE_TIME, LAST_CHANGE_TIME, UNIT_ID, SOUND_NAME1, SOUND_NAME2, SOUND_NAME3, REGION_ID, OPT_HANDOVER_GROUP, IS_LIMIT, POINT_TYPE, POINT_CLASS, POINT_PROPERTY, POINT_SORT, DEV_TYPE, POINT_TP_NAME, IS_SAMPLE, IS_STATISTICS, SAMPLE_PERIOD, SAMPLE_DEADBAND, CAMERA_TAG, PRESET_ID) -SELECT -concat(TAG_NAME, '.' , getAfterLastDot(NEW.TAG_NAME)), NEW.DESCRIPTION,TAG_NAME, NEW.SEQ_NO,LOCATION_ID, SUB_SYSTEM, '', GRAY, CONTRAST, QCOLOR, '0', VALUE, STATUS, 0, 0, NEW.UNIT_ID, '', '', '', REGION_ID, OPT_HANDOVER_GROUP, NEW.IS_LIMIT, NEW.POINT_TYPE,NEW.POINT_CLASS,NEW.POINT_PROPERTY,NEW.POINT_SORT,DEV_TYPE, NEW.TAG_NAME, NEW.IS_SAMPLE,NEW.IS_STATISTICS, NEW.SAMPLE_PERIOD,NEW.SAMPLE_DEADBAND, '', '' -FROM dev_info WHERE DEV_TP_NAME = NEW.DEV_TP_NAME; -*/ - INSERT INTO temp_plugin_point_map_acc - (PLUGIN_NAME, TEMP_NAME, TEMP_POINT_NAME, FES_TEMP_NAME, FES_TEMP_POINT_NAME) - SELECT - PLUGIN_NAME, TEMP_NAME, getAfterLastDot(NEW.TAG_NAME),'','' - FROM temp_plugin_dev_map WHERE TEMP_NAME = NEW.DEV_TP_NAME; -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'accuml_temp_define', 'tag_name', '', NEW.TAG_NAME, getTableSubSystem('accuml_temp_define')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TU_ACCUML_TEMP_DEFINE; -DELIMITER ;; -create trigger TU_ACCUML_TEMP_DEFINE AFTER UPDATE on accuml_temp_define for each ROW -BEGIN - /* - IF NEW.TAG_NAME <> OLD.TAG_NAME OR NEW.DESCRIPTION <> OLD.DESCRIPTION OR NEW.UNIT_ID <> OLD.UNIT_ID OR NEW.IS_LIMIT <> OLD.IS_LIMIT OR NEW.POINT_CLASS <> OLD.POINT_CLASS OR - NEW.IS_SAMPLE <> OLD.IS_SAMPLE OR NEW.SAMPLE_DEADBAND <> OLD.SAMPLE_DEADBAND OR NEW.POINT_TYPE <> OLD.POINT_TYPE OR NEW.SEQ_NO <> OLD.SEQ_NO OR - NEW.IS_STATISTICS <> OLD.IS_STATISTICS OR NEW.SAMPLE_PERIOD <> OLD.SAMPLE_PERIOD OR NEW.POINT_PROPERTY <> OLD.POINT_PROPERTY OR NEW.POINT_SORT <> OLD.POINT_SORT - THEN - UPDATE accuml SET - accuml.TAG_NAME = concat(accuml.DEVICE, '.', getAfterLastDot(NEW.TAG_NAME)), - accuml.DESCRIPTION = NEW.DESCRIPTION, - accuml.UNIT_ID = NEW.UNIT_ID, - accuml.IS_LIMIT = NEW.IS_LIMIT, - accuml.POINT_CLASS = NEW.POINT_CLASS, - accuml.POINT_TP_NAME = NEW.TAG_NAME, - accuml.IS_SAMPLE = NEW.IS_SAMPLE, - accuml.SAMPLE_DEADBAND = NEW.SAMPLE_DEADBAND, - accuml.POINT_TYPE = NEW.POINT_TYPE, - accuml.SEQ_NO = NEW.SEQ_NO, - accuml.IS_STATISTICS = NEW.IS_STATISTICS, - accuml.SAMPLE_PERIOD = NEW.SAMPLE_PERIOD, - accuml.POINT_PROPERTY = NEW.POINT_PROPERTY, - accuml.POINT_SORT = NEW.POINT_SORT - WHERE accuml.POINT_TP_NAME = OLD.TAG_NAME; - END IF; - - IF NEW.LIMIT_TYPE <> OLD.LIMIT_TYPE OR NEW.LIMIT_NUM <> OLD.LIMIT_NUM OR NEW.LIMIT_UP1 <> OLD.LIMIT_UP1 OR NEW.LIMIT_LOW1 <> OLD.LIMIT_LOW1 OR NEW.LIMIT_UP2 <> OLD.LIMIT_UP2 OR - NEW.LIMIT_LOW2 <> OLD.LIMIT_LOW2 OR NEW.LIMIT_UP3 <> OLD.LIMIT_UP3 OR NEW.LIMIT_LOW3 <> OLD.LIMIT_LOW3 OR NEW.CROSS_PERCENT <> OLD.CROSS_PERCENT OR - NEW.RETURN_PERCENT <> OLD.RETURN_PERCENT OR NEW.ALARM_PRIORITY <> OLD.ALARM_PRIORITY OR NEW.ALARM_DELAY_TIME <> OLD.ALARM_DELAY_TIME OR NEW.IS_WATER_ALM <> OLD.IS_WATER_ALM OR - NEW.IS_ACK_ON_RTN <> OLD.IS_ACK_ON_RTN OR NEW.DEL_ACT_ON_ACK <> OLD.DEL_ACT_ON_ACK OR NEW.IS_NEVER_ALM_ON_RTN <> OLD.IS_NEVER_ALM_ON_RTN OR NEW.TAG_NAME <> OLD.TAG_NAME - THEN - UPDATE accuml_limit_info SET - LIMIT_TYPE = NEW.LIMIT_TYPE, - LIMIT_NUM = NEW.LIMIT_NUM, - LIMIT_UP1 = NEW.LIMIT_UP1, - LIMIT_LOW1 = NEW.LIMIT_LOW1, - LIMIT_UP2 = NEW.LIMIT_UP2, - LIMIT_LOW2 = NEW.LIMIT_LOW2, - LIMIT_UP3 = NEW.LIMIT_UP3, - LIMIT_LOW3 = NEW.LIMIT_LOW3, - CROSS_PERCENT = NEW.CROSS_PERCENT, - RETURN_PERCENT = NEW.RETURN_PERCENT, - ALARM_PRIORITY = NEW.ALARM_PRIORITY, - ALARM_DELAY_TIME = NEW.ALARM_DELAY_TIME, - IS_WATER_ALM = NEW.IS_WATER_ALM, - IS_ACK_ON_RTN = NEW.IS_ACK_ON_RTN, - DEL_ACT_ON_ACK = NEW.DEL_ACT_ON_ACK, - IS_NEVER_ALM_ON_RTN = NEW.IS_NEVER_ALM_ON_RTN, - POINT_TP_NAME = NEW.TAG_NAME - WHERE POINT_TP_NAME = OLD.TAG_NAME; - END IF; - IF NEW.RANGE_UP <> OLD.RANGE_UP OR NEW.RANGE_LOW <> OLD.RANGE_LOW OR NEW.IS_FILTER <> OLD.IS_FILTER OR NEW.PERCENT <> OLD.PERCENT OR - NEW.BASE <> OLD.BASE OR NEW.COEFF <> OLD.COEFF - THEN - UPDATE accuml_map_to_fes SET - RANGE_UP = NEW.RANGE_UP, - RANGE_LOW = NEW.RANGE_LOW, - IS_FILTER = NEW.IS_FILTER, - PERCENT = NEW.PERCENT, - BASE = NEW.BASE, - COEFF = NEW.COEFF - WHERE POINT_TP_NAME = OLD.TAG_NAME; - END IF; - */ - - IF NEW.TAG_NAME <> OLD.TAG_NAME THEN - UPDATE temp_plugin_point_map_acc - SET TEMP_POINT_NAME = getAfterLastDot(NEW.TAG_NAME) - WHERE TEMP_NAME = OLD.DEV_TP_NAME AND TEMP_POINT_NAME = getAfterLastDot(OLD.TAG_NAME); - END IF; - -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'accuml_temp_define', 'tag_name', OLD.TAG_NAME, NEW.TAG_NAME, getTableSubSystem('accuml_temp_define')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TD_ACCUML_TEMP_DEFINE; -DELIMITER ;; -create trigger TD_ACCUML_TEMP_DEFINE BEFORE DELETE on accuml_temp_define for each ROW -BEGIN - - DELETE FROM temp_plugin_point_map_acc WHERE TEMP_NAME = OLD.DEV_TP_NAME AND TEMP_POINT_NAME = getAfterLastDot(OLD.TAG_NAME); -/* -DELETE FROM accuml WHERE POINT_TP_NAME = OLD.TAG_NAME; -*/ -END;; -DELIMITER ; - -drop trigger if exists TDA_ACCUML_TEMP_DEFINE; -DELIMITER ;; -create trigger TDA_ACCUML_TEMP_DEFINE AFTER DELETE on accuml_temp_define for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'accuml_temp_define', 'tag_name', OLD.TAG_NAME, '', getTableSubSystem('accuml_temp_define')); -END IF; -END;; -DELIMITER ; - -drop table if exists alarm_link_enable_info; -CREATE TABLE `alarm_link_enable_info` ( - `TAG_NAME` varchar(128) NOT NULL COMMENT '名称', - `DESCRIPTION` varchar(128) NOT NULL COMMENT '描述', - `ENABLE` decimal(10,0) NOT NULL COMMENT '是否启用', - PRIMARY KEY (`TAG_NAME`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='告警联动启用信息表'; - -drop trigger if exists TIA_ALARM_LINK_ENABLE_INFO; -DELIMITER ;; -create trigger TIA_ALARM_LINK_ENABLE_INFO AFTER INSERT on alarm_link_enable_info for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'alarm_link_enable_info', 'tag_name', '', NEW.TAG_NAME, getTableSubSystem('alarm_link_enable_info')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_ALARM_LINK_ENABLE_INFO; -DELIMITER ;; -create trigger TUA_ALARM_LINK_ENABLE_INFO AFTER UPDATE on alarm_link_enable_info for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'alarm_link_enable_info', 'tag_name', OLD.TAG_NAME, NEW.TAG_NAME, getTableSubSystem('alarm_link_enable_info')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_ALARM_LINK_ENABLE_INFO; -DELIMITER ;; -create trigger TDA_ALARM_LINK_ENABLE_INFO AFTER DELETE on alarm_link_enable_info for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'alarm_link_enable_info', 'tag_name', OLD.TAG_NAME, '', getTableSubSystem('alarm_link_enable_info')); -END IF; -END;; -DELIMITER ; - -drop table if exists alarm_sms_config; -CREATE TABLE `alarm_sms_config` ( - `NO` decimal(10,0) NOT NULL COMMENT '序号', - `NAME` varchar(128) NOT NULL COMMENT '名称', - `ALARM_LEVEL` decimal(10,0) NOT NULL COMMENT '告警等级', - `USER_GROUP` varchar(128) NOT NULL COMMENT '用户组', - `CONTACT` varchar(512) NOT NULL COMMENT '短信接收人', - `FILTER_RULE` decimal(10,0) NOT NULL COMMENT '过滤规则', - `DEVICE_ID` decimal(10,0) NOT NULL COMMENT '短信设备', - `DESCRIPTION` varchar(128) DEFAULT NULL COMMENT '备注', - PRIMARY KEY (`NO`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='短信发送配置表'; - -drop trigger if exists TIA_ALARM_SMS_CONFIG; -DELIMITER ;; -create trigger TIA_ALARM_SMS_CONFIG AFTER INSERT on alarm_sms_config for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'alarm_sms_config', 'NO', '', NEW.NO, getTableSubSystem('alarm_sms_config')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_ALARM_SMS_CONFIG; -DELIMITER ;; -create trigger TUA_ALARM_SMS_CONFIG AFTER UPDATE on alarm_sms_config for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'alarm_sms_config', 'NO', OLD.NO, NEW.NO, getTableSubSystem('alarm_sms_config')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_ALARM_SMS_CONFIG; -DELIMITER ;; -create trigger TDA_ALARM_SMS_CONFIG AFTER DELETE on alarm_sms_config for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'alarm_sms_config', 'NO', OLD.NO, '', getTableSubSystem('alarm_sms_config')); -END IF; -END;; -DELIMITER ; - -drop table if exists alarm_sms_device; -CREATE TABLE `alarm_sms_device` ( - `DEVICE_ID` decimal(10,0) NOT NULL COMMENT '设备编号', - `DEVICE_NAME` varchar(64) NOT NULL COMMENT '设备名称', - `PORT_TYPE` decimal(10,0) NOT NULL COMMENT '端口类型', - `IP_ADDRESS` varchar(32) NOT NULL COMMENT 'IP地址', - `NET_PORT` varchar(32) NOT NULL COMMENT '网络端口', - `COMM_PORT` varchar(64) NOT NULL COMMENT '串口地址', - `COMM_BAUDRATE` varchar(32) NOT NULL COMMENT '串口波特率', - `SMS_CENTER` varchar(32) NOT NULL COMMENT '短信中心号', - `DESCRIPTION` varchar(128) DEFAULT NULL COMMENT '设备备注', - PRIMARY KEY (`DEVICE_ID`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='短信设备信息表'; - -drop trigger if exists TIA_ALARM_SMS_DEVICE; -DELIMITER ;; -create trigger TIA_ALARM_SMS_DEVICE AFTER INSERT on alarm_sms_device for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'alarm_sms_device', 'DEVICE_ID', '', NEW.DEVICE_ID, getTableSubSystem('alarm_sms_device')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_ALARM_SMS_DEVICE; -DELIMITER ;; -create trigger TUA_ALARM_SMS_DEVICE AFTER UPDATE on alarm_sms_device for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'alarm_sms_device', 'DEVICE_ID', OLD.DEVICE_ID, NEW.DEVICE_ID, getTableSubSystem('alarm_sms_device')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_ALARM_SMS_DEVICE; -DELIMITER ;; -create trigger TDA_ALARM_SMS_DEVICE AFTER DELETE on alarm_sms_device for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'alarm_sms_device', 'DEVICE_ID', OLD.DEVICE_ID, '', getTableSubSystem('alarm_sms_device')); -END IF; -END;; -DELIMITER ; - -drop table if exists alarm_sms_rule; -CREATE TABLE `alarm_sms_rule` ( - `RULE_ID` decimal(10,0) NOT NULL COMMENT '规则编号', - `RULE_NAME` varchar(64) NOT NULL COMMENT '规则名称', - `DEV_PERM_TYPE` decimal(10,0) NOT NULL COMMENT '设备允许类型', - `DEVICE_LIST` varchar(1024) NOT NULL COMMENT '设备列表', - `ALM_PERM_TYPE` decimal(10,0) NOT NULL COMMENT '告警允许类型', - `ALM_STATUS_LIST` varchar(512) NOT NULL COMMENT '告警列表', - PRIMARY KEY (`RULE_ID`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='短信过滤规则表'; - -drop trigger if exists TIA_ALARM_SMS_RULE; -DELIMITER ;; -create trigger TIA_ALARM_SMS_RULE AFTER INSERT on alarm_sms_rule for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'alarm_sms_rule', 'RULE_ID', '', NEW.RULE_ID, getTableSubSystem('alarm_sms_rule')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_ALARM_SMS_RULE; -DELIMITER ;; -create trigger TUA_ALARM_SMS_RULE AFTER UPDATE on alarm_sms_rule for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'alarm_sms_rule', 'RULE_ID', OLD.RULE_ID, NEW.RULE_ID, getTableSubSystem('alarm_sms_rule')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_ALARM_SMS_RULE; -DELIMITER ;; -create trigger TDA_ALARM_SMS_RULE AFTER DELETE on alarm_sms_rule for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'alarm_sms_rule', 'RULE_ID', OLD.RULE_ID, '', getTableSubSystem('alarm_sms_rule')); -END IF; -END;; -DELIMITER ; - -drop table if exists analog_control; -CREATE TABLE `analog_control` ( - `TAG_NAME` varchar(64) NOT NULL COMMENT '标签名', - `LOCATION_ID` decimal(10,0) DEFAULT NULL COMMENT '所属车站', - `SUB_SYSTEM` decimal(10,0) DEFAULT NULL COMMENT '所属专业', - `CTRL_TYPE` decimal(10,0) DEFAULT NULL, - `IS_TAGT_STATE` decimal(10,0) DEFAULT NULL COMMENT '是否等待目标状态', - `CTRL_TIMEOUT` decimal(10,0) DEFAULT NULL COMMENT '控制超时时间', - `RESV_TIMEOUT` decimal(10,0) DEFAULT NULL COMMENT '控制保留时间', - `BASE` decimal(22,6) DEFAULT NULL COMMENT '基数', - `COEFF` decimal(22,6) DEFAULT NULL COMMENT '系数', - `RANGE_UP` decimal(22,6) DEFAULT NULL COMMENT '度下限--', - `RANGE_LOW` decimal(22,6) DEFAULT NULL COMMENT '量程下限', - `CTRL_TOLERANCE` decimal(22,6) DEFAULT NULL COMMENT '控制目标误差', - `RTU_TAG` varchar(64) DEFAULT NULL COMMENT 'RTU标签', - `OFFSET_NO` varchar(48) DEFAULT NULL COMMENT 'AO点号', - `CTRL_ALIAS` varchar(128) DEFAULT NULL COMMENT '遥控别名', - `POINT_TP_NAME` varchar(64) DEFAULT NULL COMMENT '点模板名', - PRIMARY KEY (`TAG_NAME`), - KEY `IN_ANALOG_CONTROL` (`RTU_TAG`,`OFFSET_NO`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='模拟量输出参数表'; - -drop trigger if exists TIA_ANALOG_CONTROL; -DELIMITER ;; -create trigger TIA_ANALOG_CONTROL AFTER INSERT on analog_control for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'analog_control', 'tag_name', '', NEW.TAG_NAME, getTableSubSystem('analog_control')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TU_ANALOG_CONTROL; -DELIMITER ;; -create trigger TU_ANALOG_CONTROL BEFORE UPDATE on analog_control for each ROW -body:BEGIN - - #修改功能名称 - IF COALESCE(NEW.RTU_TAG,'') = '' THEN - BEGIN - SET NEW.OFFSET_NO = '-1'; - END; - END IF; - -END;; -DELIMITER ; - -drop trigger if exists TUA_ANALOG_CONTROL; -DELIMITER ;; -create trigger TUA_ANALOG_CONTROL AFTER UPDATE on analog_control for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'analog_control', 'tag_name', OLD.TAG_NAME, NEW.TAG_NAME, getTableSubSystem('analog_control')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_ANALOG_CONTROL; -DELIMITER ;; -create trigger TDA_ANALOG_CONTROL AFTER DELETE on analog_control for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'analog_control', 'tag_name', OLD.TAG_NAME, '', getTableSubSystem('analog_control')); -END IF; -END;; -DELIMITER ; - -drop table if exists analog_limit_info; -CREATE TABLE `analog_limit_info` ( - `TAG_NAME` varchar(64) NOT NULL COMMENT '标签名', - `LOCATION_ID` decimal(10,0) NOT NULL COMMENT '车站ID', - `SUB_SYSTEM` decimal(10,0) DEFAULT NULL COMMENT '所属专业', - `LIMIT_TYPE` decimal(10,0) DEFAULT NULL COMMENT '越限类型', - `LIMIT_NUM` decimal(10,0) DEFAULT NULL COMMENT '越限级别数量', - `LIMIT_UP1` decimal(22,6) DEFAULT NULL COMMENT '一级上限', - `LIMIT_LOW1` decimal(22,6) DEFAULT NULL COMMENT '一级下限', - `LIMIT_UP2` decimal(22,6) DEFAULT NULL COMMENT '二级上限', - `LIMIT_LOW2` decimal(22,6) DEFAULT NULL COMMENT '二级下限', - `LIMIT_UP3` decimal(22,6) DEFAULT NULL COMMENT '三级上限', - `LIMIT_LOW3` decimal(22,6) DEFAULT NULL COMMENT '三级下限', - `CROSS_PERCENT` decimal(22,6) DEFAULT NULL COMMENT '越线百分比', - `RETURN_PERCENT` decimal(22,6) DEFAULT NULL COMMENT '返回百分比', - `CROSS_TIME` decimal(20,0) DEFAULT NULL COMMENT '最新越线时间', - `IS_OBJ_ALM_MANNER` decimal(10,0) DEFAULT '0' COMMENT '是否自定义告警', - `ALARM_PRIORITY` decimal(10,0) DEFAULT NULL COMMENT '告警优先级', - `PIC_NAME` varchar(64) DEFAULT NULL COMMENT '越限联动画面', - `ALARM_DELAY_TIME` decimal(10,0) DEFAULT NULL COMMENT '告警延迟时间', - `IS_WATER_ALM` decimal(10,0) DEFAULT NULL COMMENT '是否流水账', - `IS_ACK_ON_RTN` decimal(10,0) DEFAULT NULL COMMENT '是否确认自动返回', - `DEL_ACT_ON_ACK` decimal(10,0) DEFAULT NULL COMMENT '确认删除动作', - `IS_NEVER_ALM_ON_RTN` decimal(10,0) DEFAULT NULL COMMENT '是否返回不上窗', - `POINT_TP_NAME` varchar(64) DEFAULT NULL COMMENT '点模板名称', - PRIMARY KEY (`TAG_NAME`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='模拟量越限参数表'; - -drop trigger if exists TIA_ANALOG_LIMIT_INFO; -DELIMITER ;; -create trigger TIA_ANALOG_LIMIT_INFO AFTER INSERT on analog_limit_info for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'analog_limit_info', 'tag_name', '', NEW.TAG_NAME, getTableSubSystem('analog_limit_info')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_ANALOG_LIMIT_INFO; -DELIMITER ;; -create trigger TUA_ANALOG_LIMIT_INFO AFTER UPDATE on analog_limit_info for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'analog_limit_info', 'tag_name', OLD.TAG_NAME, NEW.TAG_NAME, getTableSubSystem('analog_limit_info')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_ANALOG_LIMIT_INFO; -DELIMITER ;; -create trigger TDA_ANALOG_LIMIT_INFO AFTER DELETE on analog_limit_info for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'analog_limit_info', 'tag_name', OLD.TAG_NAME, '', getTableSubSystem('analog_limit_info')); -END IF; -END;; -DELIMITER ; - -drop table if exists analog_map_to_fes; -CREATE TABLE `analog_map_to_fes` ( - `KEY_ID_TAG` varchar(128) NOT NULL COMMENT '标签点名(表名.测点标签)', - `LOCATION_ID` decimal(10,0) NOT NULL COMMENT '所属车站', - `SUB_SYSTEM` decimal(10,0) NOT NULL COMMENT '所属专业', - `DEV_TYPE` decimal(10,0) DEFAULT NULL COMMENT '设备类型', - `POINT_TP_NAME` varchar(64) DEFAULT NULL COMMENT '点模板名称', - `RTU_TAG` varchar(64) DEFAULT NULL COMMENT '前置RTU', - `DOT_NO` varchar(48) DEFAULT NULL COMMENT '前置序号', - `IS_FILTER` decimal(10,0) DEFAULT NULL COMMENT '是否过滤突变', - `PERCENT` decimal(10,0) DEFAULT NULL COMMENT '突变百分比', - `IS_VALID` decimal(10,0) DEFAULT NULL COMMENT '是否有效', - `DEADBAND` decimal(22,6) DEFAULT NULL COMMENT '死区值', - `ZEROBAND` decimal(22,6) DEFAULT NULL COMMENT '归零区值', - `BASE` decimal(22,6) DEFAULT NULL COMMENT '基数', - `COEFF` decimal(22,6) DEFAULT NULL COMMENT '系数', - `RANGE_UP` decimal(22,6) DEFAULT NULL COMMENT '量程上限 ', - `RANGE_LOW` decimal(22,6) DEFAULT NULL COMMENT '量程下限', - `DESCRIPTION` varchar(128) NOT NULL COMMENT '描述', - PRIMARY KEY (`KEY_ID_TAG`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='模拟量前置映射表'; - -drop trigger if exists TI_ANALOG_MAP_TO_FES; -DELIMITER ;; -create trigger TI_ANALOG_MAP_TO_FES AFTER INSERT on analog_map_to_fes for each ROW -BEGIN - - - SET @disableFesAnalogTrigger = 1; - - IF COALESCE(@disableAnalogMapToFesTrigger,0) = 0 THEN - BEGIN - IF COALESCE(NEW.RTU_TAG,'') <> '' THEN - BEGIN - IF COALESCE(NEW.DOT_NO,'') <> '' THEN - UPDATE fes_analog SET - APP_TABLE_NAME=getBeforeFirstDot(NEW.KEY_ID_TAG), - APP_TAG_NAME=getAfterFirstDot(NEW.KEY_ID_TAG), - APP_COLUMN_NAME='value' - WHERE TAG_NAME = concat(NEW.RTU_TAG,'.',NEW.DOT_NO); - END IF; - - END; - END IF; - END; - END IF; - - SET @disableFesAnalogTrigger = 0; - -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'analog_map_to_fes', 'key_id_tag', '', NEW.KEY_ID_TAG, getTableSubSystem('analog_map_to_fes')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TU_ANALOG_MAP_TO_FES; -DELIMITER ;; -create trigger TU_ANALOG_MAP_TO_FES BEFORE UPDATE on analog_map_to_fes for each ROW -body_label:BEGIN - - IF NEW.RTU_TAG = OLD.RTU_TAG AND - NEW.DOT_NO = OLD.DOT_NO AND - NEW.KEY_ID_TAG = OLD.KEY_ID_TAG - THEN LEAVE body_label; - END IF; - - SET @disableFesAnalogTrigger = 1; - - IF COALESCE(@disableAnalogMapToFesTrigger,0) = 0 THEN - BEGIN - - IF COALESCE(OLD.RTU_TAG,'') <> '' THEN - BEGIN - IF COALESCE(OLD.DOT_NO,'') <> '' THEN - UPDATE fes_analog SET - APP_TABLE_NAME='', - APP_TAG_NAME='', - APP_COLUMN_NAME='' - WHERE TAG_NAME=concat(OLD.RTU_TAG,'.',OLD.DOT_NO); - END IF; - - END; - END IF; - - - IF COALESCE(NEW.RTU_TAG,'') <> '' THEN - BEGIN - IF COALESCE(NEW.DOT_NO,'') <> '' THEN - UPDATE fes_analog SET - APP_TABLE_NAME=getBeforeFirstDot(NEW.KEY_ID_TAG), - APP_TAG_NAME=getAfterFirstDot(NEW.KEY_ID_TAG), - APP_COLUMN_NAME='value' - WHERE TAG_NAME=concat(NEW.RTU_TAG,'.',NEW.DOT_NO); - END IF; - - END; - ELSE SET NEW.DOT_NO = '-1'; - END IF; - END; - END IF; - - SET @disableFesAnalogTrigger = 0; -END;; -DELIMITER ; - -drop trigger if exists TUA_ANALOG_MAP_TO_FES; -DELIMITER ;; -create trigger TUA_ANALOG_MAP_TO_FES AFTER UPDATE on analog_map_to_fes for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'analog_map_to_fes', 'key_id_tag', OLD.KEY_ID_TAG, NEW.KEY_ID_TAG, getTableSubSystem('analog_map_to_fes')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TD_ANALOG_MAP_TO_FES; -DELIMITER ;; -create trigger TD_ANALOG_MAP_TO_FES BEFORE DELETE on analog_map_to_fes for each ROW -body_label:BEGIN - - SET @disableFesAnalogTrigger = 1; - - IF COALESCE(@disableAnalogMapToFesTrigger,0) = 0 THEN - BEGIN - - IF COALESCE(OLD.RTU_TAG,'') <> '' THEN - BEGIN - IF COALESCE(OLD.DOT_NO,'') <> '' THEN - UPDATE fes_analog SET - APP_TABLE_NAME='', - APP_TAG_NAME='', - APP_COLUMN_NAME='' - WHERE TAG_NAME = concat(OLD.RTU_TAG,'.',OLD.DOT_NO); - END IF; - - END; - END IF; - END; - END IF; - - SET @disableFesAnalogTrigger = 0; - -END;; -DELIMITER ; - -drop trigger if exists TDA_ANALOG_MAP_TO_FES; -DELIMITER ;; -create trigger TDA_ANALOG_MAP_TO_FES AFTER DELETE on analog_map_to_fes for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'analog_map_to_fes', 'key_id_tag', OLD.KEY_ID_TAG, '', getTableSubSystem('analog_map_to_fes')); -END IF; -END;; -DELIMITER ; - -drop table if exists analog_temp_define; -CREATE TABLE `analog_temp_define` ( - `TAG_NAME` varchar(64) NOT NULL COMMENT '点标签', - `DESCRIPTION` varchar(128) NOT NULL COMMENT '点描述', - `DEV_TP_NAME` varchar(64) NOT NULL COMMENT '设备模板名称', - `SEQ_NO` decimal(10,0) NOT NULL COMMENT '点序号', - `POINT_TYPE` decimal(10,0) DEFAULT NULL COMMENT '点类型', - `POINT_CLASS` decimal(10,0) DEFAULT NULL COMMENT '点分类 ', - `POINT_PROPERTY` decimal(10,0) DEFAULT NULL COMMENT '点属性(采集点/计算点/虚拟点...)', - `POINT_SORT` decimal(10,0) DEFAULT NULL COMMENT '测点种类', - `UNIT_ID` decimal(10,0) DEFAULT NULL COMMENT '单位ID', - `IS_SAMPLE` decimal(10,0) DEFAULT NULL COMMENT '是否采样', - `IS_STATISTICS` decimal(10,0) DEFAULT NULL COMMENT '是否统计', - `SAMPLE_PERIOD` decimal(10,0) DEFAULT NULL, - `SAMPLE_DEADBAND` decimal(22,6) DEFAULT NULL COMMENT '采样死区', - `IS_LIMIT` decimal(10,0) DEFAULT NULL COMMENT '是否越限告警', - `LIMIT_TYPE` decimal(10,0) DEFAULT NULL COMMENT '越限告警类型', - `LIMIT_NUM` decimal(10,0) DEFAULT NULL COMMENT '越限数量', - `LIMIT_UP1` decimal(22,6) DEFAULT NULL COMMENT '一级越限上', - `LIMIT_LOW1` decimal(22,6) DEFAULT NULL COMMENT '一级越限下', - `LIMIT_UP2` decimal(22,6) DEFAULT NULL COMMENT '二级越限上', - `LIMIT_LOW2` decimal(22,6) DEFAULT NULL COMMENT '二级越限下', - `LIMIT_UP3` decimal(22,6) DEFAULT NULL COMMENT '三级越限上', - `LIMIT_LOW3` decimal(22,6) DEFAULT NULL COMMENT '三级越限下', - `CROSS_PERCENT` decimal(22,6) DEFAULT NULL COMMENT 'CROSS_PERCENT', - `RETURN_PERCENT` decimal(22,6) DEFAULT NULL COMMENT 'RETURN_PERCENT', - `ALARM_PRIORITY` decimal(10,0) DEFAULT NULL COMMENT '告警优先级', - `ALARM_DELAY_TIME` decimal(10,0) DEFAULT NULL COMMENT '告警延时时间', - `IS_WATER_ALM` decimal(10,0) DEFAULT NULL COMMENT '是否流水账', - `IS_ACK_ON_RTN` decimal(10,0) DEFAULT NULL COMMENT '是否返回自动确认', - `DEL_ACT_ON_ACK` decimal(10,0) DEFAULT NULL COMMENT '确认后自动删除', - `IS_NEVER_ALM_ON_RTN` decimal(10,0) DEFAULT NULL COMMENT '是否返回不上窗', - `IS_FILTER` decimal(10,0) DEFAULT NULL COMMENT '是否过滤突变', - `PERCENT` decimal(10,0) DEFAULT NULL COMMENT '突变百分比', - `IS_VALID` decimal(10,0) DEFAULT NULL COMMENT '是否有效1', - `DEADBAND` decimal(22,6) DEFAULT NULL COMMENT '采集死区', - `ZEROBAND` decimal(22,6) DEFAULT NULL COMMENT '采集归零死区', - `IS_CONTROL` decimal(10,0) DEFAULT NULL COMMENT '是否控制', - `CTRL_TYPE` decimal(10,0) DEFAULT NULL, - `IS_TAGT_STATE` decimal(10,0) DEFAULT NULL COMMENT '是否等待目标状态', - `CTRL_TIMEOUT` decimal(10,0) DEFAULT NULL COMMENT '控制超时时间', - `RESV_TIMEOUT` decimal(10,0) DEFAULT NULL COMMENT '控制保留时间', - `BASE` decimal(22,6) DEFAULT NULL COMMENT '基数', - `COEFF` decimal(22,6) DEFAULT NULL COMMENT '系数', - `RANGE_UP` decimal(22,6) DEFAULT NULL COMMENT '量程最大值', - `RANGE_LOW` decimal(22,6) DEFAULT NULL COMMENT '量程最小值 ', - `CTRL_TOLERANCE` decimal(22,6) DEFAULT NULL COMMENT '控制目标误差', - `SEC_DEV_IN_GRP` decimal(10,0) DEFAULT NULL, - `SEC_DEVTP_NAME` varchar(64) DEFAULT NULL COMMENT '二次设备模板', - `SEC_SEQ_NO` decimal(10,0) DEFAULT NULL COMMENT '输入点号', - `OUT_SEC_SEQ_NO` decimal(10,0) DEFAULT NULL COMMENT '输出点号', - `KEY_VALUE` decimal(10,0) DEFAULT NULL COMMENT '关键数据标志', - PRIMARY KEY (`TAG_NAME`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='模拟量模板表'; - -drop trigger if exists TI_ANALOG_TEMP_DEFINE; -DELIMITER ;; -create trigger TI_ANALOG_TEMP_DEFINE AFTER INSERT on analog_temp_define for each ROW -BEGIN - -/* -INSERT INTO analog( -TAG_NAME, DESCRIPTION, RTU_TAG, DEV_TYPE, DEVICE, SEQ_NO, LOCATION_ID, SUB_SYSTEM, IS_CONTROL, GRAY, CONTRAST, QCOLOR, VALUE, STATUS, LAST_UPDATE_TIME, LAST_CHANGE_TIME, UNIT_ID, SOUND_NAME1, SOUND_NAME2, SOUND_NAME3, REGION_ID, OPT_HANDOVER_GROUP, IS_LIMIT, POINT_TYPE, POINT_CLASS, POINT_PROPERTY, POINT_SORT, POINT_TP_NAME, IS_SAMPLE, IS_STATISTICS, SAMPLE_PERIOD, SAMPLE_DEADBAND, CAMERA_TAG, PRESET_ID) -SELECT -concat(TAG_NAME, '.' , getAfterLastDot(NEW.TAG_NAME)) , NEW.DESCRIPTION ,'', DEV_TYPE, TAG_NAME,NEW.SEQ_NO,LOCATION_ID, SUB_SYSTEM, NEW.IS_CONTROL,GRAY, CONTRAST, QCOLOR, VALUE, STATUS, 0, 0, NEW.UNIT_ID, '', '', '', REGION_ID, OPT_HANDOVER_GROUP,NEW.IS_LIMIT,NEW.POINT_TYPE,NEW.POINT_CLASS,NEW.POINT_PROPERTY,NEW.POINT_SORT,NEW.TAG_NAME, NEW.IS_SAMPLE,NEW.IS_STATISTICS,NEW.SAMPLE_PERIOD,NEW.SAMPLE_DEADBAND, '', '' -FROM dev_info WHERE DEV_TP_NAME = NEW.DEV_TP_NAME; -*/ - - INSERT INTO temp_plugin_point_map_ana - (PLUGIN_NAME, TEMP_NAME, TEMP_POINT_NAME, FES_TEMP_NAME, FES_TEMP_POINT_NAME, FES_TEMP_OUT_NAME) - SELECT - PLUGIN_NAME, TEMP_NAME, getAfterLastDot(NEW.TAG_NAME),'','','' - FROM temp_plugin_dev_map WHERE TEMP_NAME = NEW.DEV_TP_NAME; - - -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'analog_temp_define', 'tag_name', '', NEW.TAG_NAME, getTableSubSystem('analog_temp_define')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TU_ANALOG_TEMP_DEFINE; -DELIMITER ;; -create trigger TU_ANALOG_TEMP_DEFINE AFTER UPDATE on analog_temp_define for each ROW -BEGIN - /* - IF NEW.TAG_NAME <> OLD.TAG_NAME OR NEW.DESCRIPTION <> OLD.DESCRIPTION OR NEW.SEQ_NO <> OLD.SEQ_NO OR NEW.IS_CONTROL <> OLD.IS_CONTROL OR NEW.UNIT_ID <> OLD.UNIT_ID OR - NEW.IS_LIMIT <> OLD.IS_LIMIT OR NEW.POINT_TYPE <> OLD.POINT_TYPE OR NEW.POINT_CLASS <> OLD.POINT_CLASS OR NEW.POINT_PROPERTY <> OLD.POINT_PROPERTY OR NEW.POINT_SORT <> OLD.POINT_SORT OR - NEW.IS_SAMPLE <> OLD.IS_SAMPLE OR NEW.IS_STATISTICS <> OLD.IS_STATISTICS OR NEW.SAMPLE_PERIOD <> OLD.SAMPLE_PERIOD OR NEW.SAMPLE_DEADBAND <> OLD.SAMPLE_DEADBAND - THEN - UPDATE analog SET - TAG_NAME = concat(DEVICE, '.', getAfterLastDot(NEW.TAG_NAME)), - DESCRIPTION = NEW.DESCRIPTION, - SEQ_NO = NEW.SEQ_NO, - IS_CONTROL = NEW.IS_CONTROL, - UNIT_ID = NEW.UNIT_ID, - IS_LIMIT = NEW.IS_LIMIT, - POINT_TYPE = NEW.POINT_TYPE, - POINT_CLASS = NEW.POINT_CLASS, - POINT_PROPERTY = NEW.POINT_PROPERTY, - POINT_SORT = NEW.POINT_SORT, - POINT_TP_NAME = NEW.TAG_NAME, - IS_SAMPLE = NEW.IS_SAMPLE, - IS_STATISTICS = NEW.IS_STATISTICS, - SAMPLE_PERIOD = NEW.SAMPLE_PERIOD, - SAMPLE_DEADBAND = NEW.SAMPLE_DEADBAND - WHERE POINT_TP_NAME=OLD.TAG_NAME; - END IF; - - IF NEW.IS_TAGT_STATE <> OLD.IS_TAGT_STATE OR NEW.CTRL_TIMEOUT <> OLD.CTRL_TIMEOUT OR NEW.RESV_TIMEOUT <> OLD.RESV_TIMEOUT OR NEW.BASE <> OLD.BASE OR NEW.COEFF <> OLD.COEFF OR - NEW.RANGE_UP <> OLD.RANGE_UP OR NEW.RANGE_LOW <> OLD.RANGE_LOW OR NEW.CTRL_TOLERANCE <> OLD.CTRL_TOLERANCE OR NEW.TAG_NAME <> OLD.TAG_NAME - THEN - UPDATE analog_control SET - IS_TAGT_STATE = NEW.IS_TAGT_STATE, - CTRL_TIMEOUT = NEW.CTRL_TIMEOUT, - RESV_TIMEOUT = NEW.RESV_TIMEOUT, - BASE = NEW.BASE, - COEFF = NEW.COEFF, - RANGE_UP = NEW.RANGE_UP, - RANGE_LOW = NEW.RANGE_LOW, - CTRL_TOLERANCE = NEW.CTRL_TOLERANCE, - POINT_TP_NAME = NEW.TAG_NAME - WHERE POINT_TP_NAME = OLD.TAG_NAME; - END IF; - - IF NEW.LIMIT_TYPE <> OLD.LIMIT_TYPE OR NEW.LIMIT_NUM <> OLD.LIMIT_NUM OR NEW.LIMIT_UP1 <> OLD.LIMIT_UP1 OR NEW.LIMIT_LOW1 <> OLD.LIMIT_LOW1 OR NEW.LIMIT_UP2 <> OLD.LIMIT_UP2 OR - NEW.LIMIT_LOW2 <> OLD.LIMIT_LOW2 OR NEW.LIMIT_UP3 <> OLD.LIMIT_UP3 OR NEW.LIMIT_LOW3 <> OLD.LIMIT_LOW3 OR NEW.CROSS_PERCENT <> OLD.CROSS_PERCENT OR NEW.RETURN_PERCENT <> OLD.RETURN_PERCENT OR - NEW.ALARM_PRIORITY <> OLD.ALARM_PRIORITY OR NEW.ALARM_DELAY_TIME <> OLD.ALARM_DELAY_TIME OR NEW.IS_WATER_ALM <> OLD.IS_WATER_ALM OR NEW.IS_ACK_ON_RTN <> OLD.IS_ACK_ON_RTN OR - NEW.DEL_ACT_ON_ACK <> OLD.DEL_ACT_ON_ACK OR NEW.IS_NEVER_ALM_ON_RTN <> OLD.IS_NEVER_ALM_ON_RTN OR NEW.TAG_NAME <> OLD.TAG_NAME - THEN - UPDATE analog_limit_info SET - LIMIT_TYPE = NEW.LIMIT_TYPE , - LIMIT_NUM = NEW.LIMIT_NUM , - LIMIT_UP1 = NEW.LIMIT_UP1 , - LIMIT_LOW1 = NEW.LIMIT_LOW1 , - LIMIT_UP2 = NEW.LIMIT_UP2 , - LIMIT_LOW2 = NEW.LIMIT_LOW2 , - LIMIT_UP3 = NEW.LIMIT_UP3 , - LIMIT_LOW3 = NEW.LIMIT_LOW3 , - CROSS_PERCENT = NEW.CROSS_PERCENT , - RETURN_PERCENT = NEW.RETURN_PERCENT , - ALARM_PRIORITY = NEW.ALARM_PRIORITY , - ALARM_DELAY_TIME = NEW.ALARM_DELAY_TIME , - IS_WATER_ALM = NEW.IS_WATER_ALM , - IS_ACK_ON_RTN = NEW.IS_ACK_ON_RTN , - DEL_ACT_ON_ACK = NEW.DEL_ACT_ON_ACK , - IS_NEVER_ALM_ON_RTN = NEW.IS_NEVER_ALM_ON_RTN, - POINT_TP_NAME = NEW.TAG_NAME - WHERE POINT_TP_NAME = OLD.TAG_NAME; - END IF; - - IF NEW.TAG_NAME <> OLD.TAG_NAME OR NEW.IS_FILTER <> OLD.IS_FILTER OR NEW.PERCENT <> OLD.PERCENT OR NEW.IS_VALID <> OLD.IS_VALID OR NEW.DEADBAND <> OLD.DEADBAND OR - NEW.ZEROBAND <> OLD.ZEROBAND OR NEW.BASE <> OLD.BASE OR NEW.COEFF <> OLD.COEFF OR NEW.RANGE_UP <> OLD.RANGE_UP OR NEW.RANGE_LOW <> OLD.RANGE_LOW - THEN - UPDATE analog_map_to_fes SET - POINT_TP_NAME = NEW.TAG_NAME, - IS_FILTER = NEW.IS_FILTER, - PERCENT = NEW.PERCENT, - IS_VALID = NEW.IS_VALID, - DEADBAND = NEW.DEADBAND, - ZEROBAND = NEW.ZEROBAND, - BASE = NEW.BASE, - COEFF = NEW.COEFF, - RANGE_UP = NEW.RANGE_UP, - RANGE_LOW = NEW.RANGE_LOW - WHERE POINT_TP_NAME = OLD.TAG_NAME; - END IF; - */ - - IF NEW.TAG_NAME <> OLD.TAG_NAME THEN - UPDATE temp_plugin_point_map_ana - SET TEMP_POINT_NAME = getAfterLastDot(NEW.TAG_NAME) - WHERE TEMP_NAME = OLD.DEV_TP_NAME AND TEMP_POINT_NAME = getAfterLastDot(OLD.TAG_NAME); - END IF; - -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'analog_temp_define', 'tag_name', OLD.TAG_NAME, NEW.TAG_NAME, getTableSubSystem('analog_temp_define')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TD_ANALOG_TEMP_DEFINE; -DELIMITER ;; -create trigger TD_ANALOG_TEMP_DEFINE BEFORE DELETE on analog_temp_define for each ROW -BEGIN - DELETE FROM temp_plugin_point_map_ana WHERE TEMP_NAME = OLD.DEV_TP_NAME AND TEMP_POINT_NAME = getAfterLastDot(OLD.TAG_NAME); -/* - DELETE FROM analog WHERE POINT_TP_NAME = OLD.TAG_NAME; -*/ -END;; -DELIMITER ; - -drop trigger if exists TDA_ANALOG_TEMP_DEFINE; -DELIMITER ;; -create trigger TDA_ANALOG_TEMP_DEFINE AFTER DELETE on analog_temp_define for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'analog_temp_define', 'tag_name', OLD.TAG_NAME, '', getTableSubSystem('analog_temp_define')); -END IF; -END;; -DELIMITER ; - -drop table if exists apc_analog; -CREATE TABLE `apc_analog` ( - `KEY_ID_TAG` varchar(128) NOT NULL COMMENT '测点唯一标识,表示此配置的值输出到该测点。 配置工具选择AI计算量点进行配置。新建后不允许修改。', - `DESCRIPTION` varchar(128) DEFAULT NULL COMMENT '描述。 配置工具文本输入。', - `TIMEOUT_OUTPUT_DI` varchar(128) DEFAULT NULL COMMENT '超时状态输出DI点,关联一个本站,本专业的计算量DI点的KEY_ID_TAG。 超时将该点值设为1,否则设为0。可用于FBD逻辑。', - `LOCATION_ID` decimal(10,0) NOT NULL COMMENT '位置ID。 配置工具自动从KEY_ID_TAG测点的位置ID复制。', - `SUB_SYSTEM` decimal(10,0) NOT NULL COMMENT '专业ID。 配置工具自动从KEY_ID_TAG测点的专业ID复制。', - `RCV_CTRL_TIMEOUT` decimal(10,0) NOT NULL COMMENT '接收控制指令超时时间,单位ms,小于等于0表示不使用。 用于实现超时未收到调度指令的告警及后续逻辑(比如切换本地值)。', - `VALUE` decimal(22,6) NOT NULL COMMENT '值,比如投入1,退出0。 配置工具可配,接口服务接收遥控后通过模型修改服务修改。', - `NO_RDB_SYNC` decimal(3,0) DEFAULT NULL COMMENT '接口服务自己保存的value,不能更新到实时库,否则可能抖动。当此列写入1时,触发器不产生sys_trigger_info记录。', - PRIMARY KEY (`KEY_ID_TAG`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='功率控制接口服务模拟量配置表。'; - -drop trigger if exists TIA_APC_ANALOG; -DELIMITER ;; -create trigger TIA_APC_ANALOG AFTER INSERT on apc_analog for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'apc_analog', 'key_id_tag', '', NEW.KEY_ID_TAG, getTableSubSystem('apc_analog')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUB_APC_ANALOG; -DELIMITER ;; -create trigger TUB_APC_ANALOG BEFORE UPDATE on apc_analog for each ROW -BEGIN -IF NEW.NO_RDB_SYNC = 1 THEN -SET NEW.NO_RDB_SYNC = NULL; -ELSEIF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'apc_analog', 'key_id_tag', OLD.KEY_ID_TAG, NEW.KEY_ID_TAG, getTableSubSystem('apc_analog')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_APC_ANALOG; -DELIMITER ;; -create trigger TDA_APC_ANALOG AFTER DELETE on apc_analog for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'apc_analog', 'key_id_tag', OLD.KEY_ID_TAG, '', getTableSubSystem('apc_analog')); -END IF; -END;; -DELIMITER ; - -drop table if exists apc_curve; -CREATE TABLE `apc_curve` ( - `KEY_ID_TAG` varchar(128) NOT NULL COMMENT '输出测点唯一标识,也作为曲线唯一标识,主键', - `DESCRIPTION` varchar(128) NOT NULL COMMENT '描述', - `TYPE_ID` decimal(10,0) NOT NULL COMMENT '类型ID', - `LOCATION_ID` decimal(10,0) NOT NULL COMMENT '车站ID', - `SUB_SYSTEM` decimal(10,0) NOT NULL COMMENT '专业ID', - `CURRENT_DAY_RULE_ID` decimal(10,0) DEFAULT NULL COMMENT '今天的日规则,非配置,由接口服务输出到此,以方便界面使用', - PRIMARY KEY (`KEY_ID_TAG`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='计划曲线'; - -drop trigger if exists TIA_apc_curve; -DELIMITER ;; -create trigger TIA_apc_curve AFTER INSERT on apc_curve for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'apc_curve', 'key_id_tag', '', NEW.KEY_ID_TAG, getTableSubSystem('apc_curve')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_apc_curve; -DELIMITER ;; -create trigger TUA_apc_curve AFTER UPDATE on apc_curve for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'apc_curve', 'key_id_tag', OLD.KEY_ID_TAG, NEW.KEY_ID_TAG, getTableSubSystem('apc_curve')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_apc_curve; -DELIMITER ;; -create trigger TDA_apc_curve AFTER DELETE on apc_curve for each ROW -BEGIN -delete from apc_curve_day_index where curve_key_id_tag = old.key_id_tag; -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'apc_curve', 'key_id_tag', OLD.KEY_ID_TAG, '', getTableSubSystem('apc_curve')); -END IF; -END;; -DELIMITER ; - -drop table if exists apc_curve_day_index; -CREATE TABLE `apc_curve_day_index` ( - `CURVE_KEY_ID_TAG` varchar(128) NOT NULL COMMENT '曲线标识,对应APC_CURVE表的KEY_ID_TAG', - `DESCRIPTION` varchar(128) DEFAULT NULL COMMENT '描述', - `YEAR_RULE_ID` decimal(10,0) NOT NULL COMMENT '年规则ID', - `WEEK_RULE_ID` decimal(10,0) NOT NULL COMMENT '周规则ID', - `DAY_RULE_ID` decimal(10,0) NOT NULL COMMENT '日规则ID', - PRIMARY KEY (`CURVE_KEY_ID_TAG`,`YEAR_RULE_ID`,`WEEK_RULE_ID`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='计划曲线日索引'; - -drop trigger if exists TIA_APC_CURVE_DAY_INDEX; -DELIMITER ;; -create trigger TIA_APC_CURVE_DAY_INDEX AFTER INSERT on apc_curve_day_index for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME, KEY_COLUMN_NAME, KEY_OLD_VALUE,KEY_NEW_VALUE, SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'apc_curve_day_index', 'curve_key_id_tag,year_rule_id,week_rule_id', '', concat(NEW.CURVE_KEY_ID_TAG,',',NEW.YEAR_RULE_ID,',',NEW.WEEK_RULE_ID), getTableSubSystem('apc_curve_day_index')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_APC_CURVE_DAY_INDEX; -DELIMITER ;; -create trigger TUA_APC_CURVE_DAY_INDEX AFTER UPDATE on apc_curve_day_index for each ROW -BEGIN -IF((select count(*) from apc_curve_day_index where day_rule_id = old.day_rule_id)<1) THEN -delete from apc_curve_day_value where day_rule_id = old.day_rule_id; -END IF; -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME, KEY_COLUMN_NAME, KEY_OLD_VALUE, KEY_NEW_VALUE, SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'apc_curve_day_index', 'curve_key_id_tag,year_rule_id,week_rule_id', concat(OLD.CURVE_KEY_ID_TAG,',',OLD.YEAR_RULE_ID,',',OLD.WEEK_RULE_ID), concat(NEW.CURVE_KEY_ID_TAG,',',NEW.YEAR_RULE_ID,',',NEW.WEEK_RULE_ID), getTableSubSystem('apc_curve_day_index')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_APC_CURVE_DAY_INDEX; -DELIMITER ;; -create trigger TDA_APC_CURVE_DAY_INDEX AFTER DELETE on apc_curve_day_index for each ROW -BEGIN -delete from apc_curve_day_value where day_rule_id = old.day_rule_id; -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME, KEY_COLUMN_NAME, KEY_OLD_VALUE, KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'apc_curve_day_index', 'curve_key_id_tag,year_rule_id,week_rule_id',concat(OLD.CURVE_KEY_ID_TAG,',',OLD.YEAR_RULE_ID,',',OLD.WEEK_RULE_ID), '', getTableSubSystem('apc_curve_day_index')); -END IF; -END;; -DELIMITER ; - -drop table if exists apc_curve_day_tmpl; -CREATE TABLE `apc_curve_day_tmpl` ( - `ID` decimal(10,0) NOT NULL COMMENT '日时段模板ID', - `DESCRIPTION` varchar(128) DEFAULT NULL COMMENT '时段描述', - PRIMARY KEY (`ID`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='计划曲线日模板定义'; - -drop table if exists apc_curve_day_tmpl_section; -CREATE TABLE `apc_curve_day_tmpl_section` ( - `DAY_TMPL_ID` decimal(10,0) NOT NULL COMMENT '所属日模板ID', - `DESCRIPTION` varchar(128) DEFAULT NULL COMMENT '时段描述', - `START_SEC` decimal(10,0) NOT NULL COMMENT '开始秒数', - `END_SEC` decimal(10,0) NOT NULL COMMENT '结束秒数', - PRIMARY KEY (`DAY_TMPL_ID`,`START_SEC`,`END_SEC`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='计划曲线日模板时段定义'; - -drop table if exists apc_curve_day_value; -CREATE TABLE `apc_curve_day_value` ( - `DAY_RULE_ID` decimal(10,0) NOT NULL COMMENT '日规则ID', - `DESCRIPTION` varchar(128) DEFAULT NULL COMMENT '描述', - `START_SEC` decimal(10,0) NOT NULL COMMENT '开始秒数,从0开始,包含该秒,即从该秒开始时起', - `END_SEC` decimal(10,0) NOT NULL COMMENT '结束秒数,包含该秒,即到下一秒开始时结束', - `VALUE` decimal(22,6) NOT NULL COMMENT '值', - PRIMARY KEY (`DAY_RULE_ID`,`START_SEC`,`END_SEC`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='计划曲线一天内时间、值定义'; - -drop trigger if exists TIA_APC_CURVE_DAY_VALUE; -DELIMITER ;; -create trigger TIA_APC_CURVE_DAY_VALUE AFTER INSERT on apc_curve_day_value for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME, KEY_COLUMN_NAME, KEY_OLD_VALUE,KEY_NEW_VALUE, SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'apc_curve_day_value', 'day_rule_id,start_sec,end_sec', '', concat(NEW.DAY_RULE_ID,',',NEW.START_SEC,',',NEW.END_SEC), getTableSubSystem('apc_curve_day_value')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_APC_CURVE_DAY_VALUE; -DELIMITER ;; -create trigger TUA_APC_CURVE_DAY_VALUE AFTER UPDATE on apc_curve_day_value for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME, KEY_COLUMN_NAME, KEY_OLD_VALUE, KEY_NEW_VALUE, SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'apc_curve_day_value', 'day_rule_id,start_sec,end_sec', concat(OLD.DAY_RULE_ID,',',OLD.START_SEC,',',OLD.END_SEC), concat(NEW.DAY_RULE_ID,',',NEW.START_SEC,',',NEW.END_SEC), getTableSubSystem('apc_curve_day_value')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_APC_CURVE_DAY_VALUE; -DELIMITER ;; -create trigger TDA_APC_CURVE_DAY_VALUE AFTER DELETE on apc_curve_day_value for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME, KEY_COLUMN_NAME, KEY_OLD_VALUE, KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'apc_curve_day_value', 'day_rule_id,start_sec,end_sec', concat(OLD.DAY_RULE_ID,',',OLD.START_SEC,',',OLD.END_SEC), '', getTableSubSystem('apc_curve_day_value')); -END IF; -END;; -DELIMITER ; - -drop table if exists apc_curve_type; -CREATE TABLE `apc_curve_type` ( - `TYPE_ID` decimal(10,0) NOT NULL COMMENT '类型ID', - `DESCRIPTION` varchar(255) DEFAULT NULL COMMENT '描述', - PRIMARY KEY (`TYPE_ID`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='计划曲线类型'; - -drop table if exists apc_curve_week; -CREATE TABLE `apc_curve_week` ( - `TYPE_ID` decimal(10,0) NOT NULL COMMENT '类型ID', - `WEEK_DAY` decimal(10,0) NOT NULL COMMENT '周几,周日为0,周一到周六为1到6', - `WEEK_RULE_ID` decimal(10,0) NOT NULL COMMENT '周规则ID', - `DESCRIPTION` varchar(255) DEFAULT NULL COMMENT '描述', - PRIMARY KEY (`TYPE_ID`,`WEEK_DAY`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='计划曲线周'; - -drop trigger if exists TIA_APC_CURVE_WEEK; -DELIMITER ;; -create trigger TIA_APC_CURVE_WEEK AFTER INSERT on apc_curve_week for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME, KEY_COLUMN_NAME, KEY_OLD_VALUE,KEY_NEW_VALUE, SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'apc_curve_week', 'type_id,week_day', '', concat(NEW.TYPE_ID,',',NEW.WEEK_DAY), getTableSubSystem('apc_curve_week')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_APC_CURVE_WEEK; -DELIMITER ;; -create trigger TUA_APC_CURVE_WEEK AFTER UPDATE on apc_curve_week for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME, KEY_COLUMN_NAME, KEY_OLD_VALUE, KEY_NEW_VALUE, SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'apc_curve_week', 'type_id,week_day', concat(OLD.TYPE_ID,',',OLD.WEEK_DAY), concat(NEW.TYPE_ID,',',NEW.WEEK_DAY), getTableSubSystem('apc_curve_week')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_APC_CURVE_WEEK; -DELIMITER ;; -create trigger TDA_APC_CURVE_WEEK AFTER DELETE on apc_curve_week for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME, KEY_COLUMN_NAME, KEY_OLD_VALUE, KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'apc_curve_week', 'type_id,week_day', concat(OLD.TYPE_ID,',',OLD.WEEK_DAY), '', getTableSubSystem('apc_curve_week')); -END IF; -END;; -DELIMITER ; - -drop table if exists apc_curve_year; -CREATE TABLE `apc_curve_year` ( - `YEAR_RULE_ID` decimal(10,0) NOT NULL COMMENT '年规则ID', - `TYPE_ID` decimal(10,0) NOT NULL COMMENT '类型ID', - `DESCRIPTION` varchar(255) DEFAULT NULL COMMENT '描述', - `MONTH_BEGIN` decimal(10,0) NOT NULL COMMENT '开始月', - `DAY_BEGIN` decimal(10,0) NOT NULL COMMENT '开始日,包含该日,即从该日0点起', - `MONTH_END` decimal(10,0) NOT NULL COMMENT '结束月', - `DAY_END` decimal(10,0) NOT NULL COMMENT '结束日,包含该日,即到下一日0点结束', - `EXCTPTION` decimal(10,0) NOT NULL COMMENT '是否例外', - PRIMARY KEY (`TYPE_ID`,`MONTH_BEGIN`,`DAY_BEGIN`,`MONTH_END`,`DAY_END`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='计划曲线年'; - -drop trigger if exists TIA_APC_CURVE_YEAR; -DELIMITER ;; -create trigger TIA_APC_CURVE_YEAR AFTER INSERT on apc_curve_year for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME, KEY_COLUMN_NAME, KEY_OLD_VALUE,KEY_NEW_VALUE, SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'apc_curve_year', 'type_id,month_begin,day_begin,month_end,day_end', '', concat(NEW.TYPE_ID,',',NEW.MONTH_BEGIN,',',NEW.DAY_BEGIN,',',NEW.MONTH_END,',',NEW.DAY_END), getTableSubSystem('apc_curve_year')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_APC_CURVE_YEAR; -DELIMITER ;; -create trigger TUA_APC_CURVE_YEAR AFTER UPDATE on apc_curve_year for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME, KEY_COLUMN_NAME, KEY_OLD_VALUE, KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'apc_curve_year', 'type_id,month_begin,day_begin,month_end,day_end', concat(OLD.TYPE_ID,',',OLD.MONTH_BEGIN,',',OLD.DAY_BEGIN,',',OLD.MONTH_END,',',OLD.DAY_END), '', getTableSubSystem('apc_curve_year')); -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME, KEY_COLUMN_NAME, KEY_OLD_VALUE,KEY_NEW_VALUE, SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'apc_curve_year', 'type_id,month_begin,day_begin,month_end,day_end', '', concat(NEW.TYPE_ID,',',NEW.MONTH_BEGIN,',',NEW.DAY_BEGIN,',',NEW.MONTH_END,',',NEW.DAY_END), getTableSubSystem('apc_curve_year')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_APC_CURVE_YEAR; -DELIMITER ;; -create trigger TDA_APC_CURVE_YEAR AFTER DELETE on apc_curve_year for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME, KEY_COLUMN_NAME, KEY_OLD_VALUE, KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'apc_curve_year', 'type_id,month_begin,day_begin,month_end,day_end', concat(OLD.TYPE_ID,',',OLD.MONTH_BEGIN,',',OLD.DAY_BEGIN,',',OLD.MONTH_END,',',OLD.DAY_END), '', getTableSubSystem('apc_curve_year')); -END IF; -END;; -DELIMITER ; - -drop table if exists apc_digital; -CREATE TABLE `apc_digital` ( - `KEY_ID_TAG` varchar(128) NOT NULL COMMENT '测点唯一标识,表示此配置的值输出到该测点。 配置工具选择DI计算量点进行配置。新建后不允许修改。', - `DESCRIPTION` varchar(128) DEFAULT NULL COMMENT '描述。 配置工具文本输入。', - `LOCATION_ID` decimal(10,0) NOT NULL COMMENT '位置ID。 配置工具自动从KEY_ID_TAG测点的位置ID复制。', - `SUB_SYSTEM` decimal(10,0) NOT NULL COMMENT '专业ID。 配置工具自动从KEY_ID_TAG测点的专业ID复制。', - `VALUE` decimal(10,0) NOT NULL COMMENT '值,比如投入1,退出0。 配置工具可配,接口服务接收遥控后通过模型修改服务修改。', - `NO_RDB_SYNC` decimal(3,0) DEFAULT NULL COMMENT '接口服务自己保存的value,不能更新到实时库,否则可能抖动。当此列写入1时,触发器不产生sys_trigger_info记录。', - PRIMARY KEY (`KEY_ID_TAG`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='功率控制接口服务数字量配置表。'; - -drop trigger if exists TIA_APC_DIGITAL; -DELIMITER ;; -create trigger TIA_APC_DIGITAL AFTER INSERT on apc_digital for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME, KEY_COLUMN_NAME, KEY_OLD_VALUE,KEY_NEW_VALUE, SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'apc_digital', 'key_id_tag', '', NEW.KEY_ID_TAG, getTableSubSystem('apc_digital')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUB_APC_DIGITAL; -DELIMITER ;; -create trigger TUB_APC_DIGITAL BEFORE UPDATE on apc_digital for each ROW -BEGIN -IF NEW.NO_RDB_SYNC = 1 THEN -SET NEW.NO_RDB_SYNC = NULL; -ELSEIF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME, KEY_COLUMN_NAME, KEY_OLD_VALUE, KEY_NEW_VALUE, SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'apc_digital', 'key_id_tag', OLD.KEY_ID_TAG, NEW.KEY_ID_TAG, getTableSubSystem('apc_digital')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_APC_DIGITAL; -DELIMITER ;; -create trigger TDA_APC_DIGITAL AFTER DELETE on apc_digital for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME, KEY_COLUMN_NAME, KEY_OLD_VALUE, KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'apc_digital', 'key_id_tag', OLD.KEY_ID_TAG, '', getTableSubSystem('apc_digital')); -END IF; -END;; -DELIMITER ; - -drop table if exists asset_info; -CREATE TABLE `asset_info` ( - `dev_id` varchar(64) NOT NULL COMMENT 'id', - `dev_name` varchar(64) NOT NULL COMMENT '名称', - `dev_type` varchar(64) DEFAULT NULL COMMENT '型号', - `dev_param` varchar(64) DEFAULT NULL COMMENT '参数', - `setup_date` decimal(20,0) DEFAULT NULL COMMENT '安装日期', - `dev_status` varchar(64) DEFAULT NULL COMMENT '状态', - `contact` varchar(255) DEFAULT NULL COMMENT '联系方式', - `backup` varchar(255) DEFAULT NULL COMMENT '备注', - `dev_group` varchar(64) DEFAULT NULL COMMENT '设备组', - `maintain_period` decimal(10,0) DEFAULT NULL COMMENT '维保周期(年)', - PRIMARY KEY (`dev_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='资产信息表'; - -drop table if exists asset_records; -CREATE TABLE `asset_records` ( - `record_id` varchar(64) NOT NULL COMMENT '记录id', - `dev_id` varchar(64) NOT NULL COMMENT '设备id', - `record_name` varchar(64) DEFAULT NULL COMMENT '记录名称', - `opt_user` varchar(64) DEFAULT NULL COMMENT '操作人', - `start_time` decimal(20,0) DEFAULT NULL COMMENT '开始时间', - `end_time` decimal(20,0) DEFAULT NULL COMMENT '结束时间', - `content` varchar(255) DEFAULT NULL COMMENT '维护内容', - PRIMARY KEY (`record_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='资产维护记录表'; - -drop table if exists ats_casco_dynamic_train_data; -CREATE TABLE `ats_casco_dynamic_train_data` ( - `ZDATE` decimal(10,0) NOT NULL COMMENT '零点时间', - `LOCATION_ID` decimal(10,0) NOT NULL COMMENT '站号', - `PLATFORM_ID` decimal(10,0) NOT NULL COMMENT '站台号', - `TRAIN_ID` decimal(10,0) NOT NULL COMMENT '车次号', - `GROUP_ID` decimal(10,0) NOT NULL, - `SERVER_ID` decimal(10,0) NOT NULL, - `DESTINATION_ID` decimal(10,0) NOT NULL COMMENT '目的地', - `A_TIME` decimal(10,0) NOT NULL COMMENT '到达时间,1970零点年至今的秒数', - `D_TIME` decimal(10,0) NOT NULL COMMENT '发车时间,1970零点年至今的秒数', - `FLAG` decimal(10,0) NOT NULL COMMENT '标志(bit0~7),bit4:出库 Bit5:入库 bit6:下行', - `TYPE` decimal(10,0) NOT NULL COMMENT '保留', - PRIMARY KEY (`ZDATE`,`LOCATION_ID`,`PLATFORM_ID`,`TRAIN_ID`,`GROUP_ID`,`SERVER_ID`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='CASCO ATS计划协议表'; - -drop table if exists ats_casco_planned_train_data; -CREATE TABLE `ats_casco_planned_train_data` ( - `ZDATE` decimal(10,0) NOT NULL COMMENT '零点时间', - `LOCATION_ID` decimal(10,0) NOT NULL COMMENT '站号', - `PLATFORM_ID` decimal(10,0) NOT NULL COMMENT '站台号', - `TABLE_ID` decimal(10,0) NOT NULL COMMENT '计划表号', - `TRAIN_ID` decimal(10,0) NOT NULL COMMENT '车次号', - `DESTINATION_ID` decimal(10,0) NOT NULL COMMENT '目的地', - `A_TIME` decimal(10,0) NOT NULL COMMENT '到达时间,1970零点年至今的秒数', - `D_TIME` decimal(10,0) NOT NULL COMMENT '发车时间,1970零点年至今的秒数', - `FLAG` decimal(10,0) NOT NULL COMMENT '标志(bit0~7),bit4:出库 Bit5:入库 bit6:下行', - `RESERVE` decimal(10,0) DEFAULT NULL COMMENT '保留', - PRIMARY KEY (`ZDATE`,`LOCATION_ID`,`PLATFORM_ID`,`TABLE_ID`,`TRAIN_ID`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='CASCO ATS计划列车信息'; - -drop trigger if exists TIA_ATS_CASCO_PLANNED_TRAIN_DATA; -DELIMITER ;; -create trigger TIA_ATS_CASCO_PLANNED_TRAIN_DATA AFTER INSERT on ats_casco_planned_train_data for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'ats_casco_planned_train_data', 'zdate,location_id,platform_id,table_id,train_id', '', concat(NEW.ZDATE,',',NEW.LOCATION_ID,',',NEW.PLATFORM_ID,',',NEW.TABLE_ID,',',NEW.TRAIN_ID), getTableSubSystem('ats_casco_planned_train_data')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_ATS_CASCO_PLANNED_TRAIN_DATA; -DELIMITER ;; -create trigger TUA_ATS_CASCO_PLANNED_TRAIN_DATA AFTER UPDATE on ats_casco_planned_train_data for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'ats_casco_planned_train_data', 'zdate,location_id,platform_id,table_id,train_id', concat(OLD.ZDATE,',',OLD.LOCATION_ID,',',OLD.PLATFORM_ID,',',OLD.TABLE_ID,',',OLD.TRAIN_ID), concat(NEW.ZDATE,',',NEW.LOCATION_ID,',',NEW.PLATFORM_ID,',',NEW.TABLE_ID,',',NEW.TRAIN_ID), getTableSubSystem('ats_casco_planned_train_data')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_ATS_CASCO_PLANNED_TRAIN_DATA; -DELIMITER ;; -create trigger TDA_ATS_CASCO_PLANNED_TRAIN_DATA AFTER DELETE on ats_casco_planned_train_data for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'ats_casco_planned_train_data', 'zdate,location_id,platform_id,table_id,train_id', concat(OLD.ZDATE,',',OLD.LOCATION_ID,',',OLD.PLATFORM_ID,',',OLD.TABLE_ID,',',OLD.TRAIN_ID), '', getTableSubSystem('ats_casco_planned_train_data')); -END IF; -END;; -DELIMITER ; - -drop table if exists ats_casco_practical_train_data; -CREATE TABLE `ats_casco_practical_train_data` ( - `ZDATE` decimal(10,0) NOT NULL COMMENT '零点时间', - `LOCATION_ID` decimal(10,0) NOT NULL COMMENT '站号', - `PLATFORM_ID` decimal(10,0) NOT NULL COMMENT '站台号', - `TABLE_ID` decimal(10,0) NOT NULL, - `TRAIN_ID` decimal(10,0) NOT NULL COMMENT '车次号', - `GROUP_ID` decimal(10,0) NOT NULL, - `SERVER_ID` decimal(10,0) NOT NULL COMMENT '服务号', - `DESTINATION_ID` decimal(10,0) NOT NULL COMMENT '目的地', - `A_TIME` decimal(10,0) DEFAULT NULL COMMENT '到达时间,1970零点年至今的秒数', - `D_TIME` decimal(10,0) DEFAULT NULL COMMENT '发车时间,1970零点年至今的秒数', - `FLAG` decimal(10,0) NOT NULL COMMENT '标志,1:下行 2:上行 0:未知', - `TYPE` decimal(10,0) NOT NULL COMMENT '1:计划车 0:非计划车', - `RESERVE` decimal(10,0) DEFAULT NULL COMMENT '保留', - PRIMARY KEY (`ZDATE`,`LOCATION_ID`,`PLATFORM_ID`,`TABLE_ID`,`TRAIN_ID`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='CASCO ATS实际列车信息'; - -drop trigger if exists TIA_ATS_CASCO_PRACTICAL_TRAIN_DATA; -DELIMITER ;; -create trigger TIA_ATS_CASCO_PRACTICAL_TRAIN_DATA AFTER INSERT on ats_casco_practical_train_data for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'ats_casco_practical_train_data', 'zdate,location_id,platform_id,table_id,train_id', '', concat(NEW.ZDATE,',',NEW.LOCATION_ID,',',NEW.PLATFORM_ID,',',NEW.TABLE_ID,',',NEW.TRAIN_ID), getTableSubSystem('ats_casco_practical_train_data')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_ATS_CASCO_PRACTICAL_TRAIN_DATA; -DELIMITER ;; -create trigger TUA_ATS_CASCO_PRACTICAL_TRAIN_DATA AFTER UPDATE on ats_casco_practical_train_data for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'ats_casco_practical_train_data', 'zdate,location_id,platform_id,table_id,train_id', concat(OLD.ZDATE,',',OLD.LOCATION_ID,',',OLD.PLATFORM_ID,',',OLD.TABLE_ID,',',OLD.TRAIN_ID), concat(NEW.ZDATE,',',NEW.LOCATION_ID,',',NEW.PLATFORM_ID,',',NEW.TABLE_ID,',',NEW.TRAIN_ID), getTableSubSystem('ats_casco_practical_train_data')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_ATS_CASCO_PRACTICAL_TRAIN_DATA; -DELIMITER ;; -create trigger TDA_ATS_CASCO_PRACTICAL_TRAIN_DATA AFTER DELETE on ats_casco_practical_train_data for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'ats_casco_practical_train_data', 'zdate,location_id,platform_id,table_id,train_id', concat(OLD.ZDATE,',',OLD.LOCATION_ID,',',OLD.PLATFORM_ID,',',OLD.TABLE_ID,',',OLD.TRAIN_ID), '', getTableSubSystem('ats_casco_practical_train_data')); -END IF; -END;; -DELIMITER ; - -drop table if exists ats_fes_location_info; -CREATE TABLE `ats_fes_location_info` ( - `ATS_LOCATION_ID` decimal(10,0) NOT NULL COMMENT 'ATS车站ID', - `LOCATION_ID` decimal(10,0) NOT NULL COMMENT 'ISCS车站号', - PRIMARY KEY (`ATS_LOCATION_ID`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='前置车站配置表'; - -drop trigger if exists TIA_ATS_FES_LOCATION_INFO; -DELIMITER ;; -create trigger TIA_ATS_FES_LOCATION_INFO AFTER INSERT on ats_fes_location_info for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'ats_fes_location_info', 'ats_location_id', '', NEW.ATS_LOCATION_ID, getTableSubSystem('ats_fes_location_info')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_ATS_FES_LOCATION_INFO; -DELIMITER ;; -create trigger TUA_ATS_FES_LOCATION_INFO AFTER UPDATE on ats_fes_location_info for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'ats_fes_location_info', 'ats_location_id', OLD.ATS_LOCATION_ID, NEW.ATS_LOCATION_ID, getTableSubSystem('ats_fes_location_info')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_ATS_FES_LOCATION_INFO; -DELIMITER ;; -create trigger TDA_ATS_FES_LOCATION_INFO AFTER DELETE on ats_fes_location_info for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'ats_fes_location_info', 'ats_location_id', OLD.ATS_LOCATION_ID, '', getTableSubSystem('ats_fes_location_info')); -END IF; -END;; -DELIMITER ; - -drop table if exists ats_fes_platform_info; -CREATE TABLE `ats_fes_platform_info` ( - `LOCATION_ID` decimal(10,0) NOT NULL COMMENT 'ISCS车站号', - `PLATFORM_ID` decimal(10,0) NOT NULL COMMENT '站台号', - `PLATFORM_DES` varchar(128) NOT NULL COMMENT '站台描述', - PRIMARY KEY (`LOCATION_ID`,`PLATFORM_ID`,`PLATFORM_DES`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='前置站台配置表'; - -drop trigger if exists TIA_ATS_FES_PLATFORM_INFO; -DELIMITER ;; -create trigger TIA_ATS_FES_PLATFORM_INFO AFTER INSERT on ats_fes_platform_info for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'ats_fes_platform_info', 'location_id,platform_id,platform_des', '', concat(NEW.LOCATION_ID,',',NEW.PLATFORM_ID,',',NEW.PLATFORM_DES), getTableSubSystem('ats_fes_platform_info')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_ATS_FES_PLATFORM_INFO; -DELIMITER ;; -create trigger TUA_ATS_FES_PLATFORM_INFO AFTER UPDATE on ats_fes_platform_info for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'ats_fes_platform_info', 'location_id,platform_id,platform_des', concat(OLD.LOCATION_ID,',',OLD.PLATFORM_ID,',',OLD.PLATFORM_DES), concat(NEW.LOCATION_ID,',',NEW.PLATFORM_ID,',',NEW.PLATFORM_DES), getTableSubSystem('ats_fes_platform_info')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_ATS_FES_PLATFORM_INFO; -DELIMITER ;; -create trigger TDA_ATS_FES_PLATFORM_INFO AFTER DELETE on ats_fes_platform_info for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'ats_fes_platform_info', 'location_id,platform_id,platform_des', concat(OLD.LOCATION_ID,',',OLD.PLATFORM_ID,',',OLD.PLATFORM_DES), '', getTableSubSystem('ats_fes_platform_info')); -END IF; -END;; -DELIMITER ; - -drop table if exists bas_timetable_ctrl_param; -CREATE TABLE `bas_timetable_ctrl_param` ( - `LOCATION_ID` decimal(10,0) NOT NULL COMMENT '车站ID', - `DOWNLOAD_TIME` varchar(8) NOT NULL COMMENT '时间表下载时间,08:00', - `DOWNLOAD_TIMEOUT` decimal(10,0) NOT NULL COMMENT '下载超时时间,单位秒', - `READ_TIMEOUT` decimal(10,0) NOT NULL COMMENT '读取超时时间,单位秒', - `CTRL_KEY_ID_TAG` varchar(64) NOT NULL COMMENT '控制测点名', - `TIMETABLE_ID_TAG` varchar(64) NOT NULL COMMENT '当前PLC运行时间表ID的测点名', - `TIMETABLE_VERSION_TAG` varchar(64) NOT NULL COMMENT '当前PLC运行时间表版本号的测点名', - `DCF_KEY_ID_TAG` varchar(64) NOT NULL COMMENT '时间表下载完成标志位测点名', - `URF_KEY_ID_TAG` varchar(64) NOT NULL COMMENT '时间表回读请求标志位测点名', - `RRF_KEY_ID_TAG` varchar(64) NOT NULL COMMENT '时间表回读标志位测点名', - PRIMARY KEY (`LOCATION_ID`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='时间表控制参数配置'; - -drop trigger if exists TIA_BAS_TIMETABLE_CTRL_PARAM; -DELIMITER ;; -create trigger TIA_BAS_TIMETABLE_CTRL_PARAM AFTER INSERT on bas_timetable_ctrl_param for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'bas_timetable_ctrl_param', 'location_id', '', NEW.LOCATION_ID, getTableSubSystem('bas_timetable_ctrl_param')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_BAS_TIMETABLE_CTRL_PARAM; -DELIMITER ;; -create trigger TUA_BAS_TIMETABLE_CTRL_PARAM AFTER UPDATE on bas_timetable_ctrl_param for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'bas_timetable_ctrl_param', 'location_id', OLD.LOCATION_ID, NEW.LOCATION_ID, getTableSubSystem('bas_timetable_ctrl_param')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_BAS_TIMETABLE_CTRL_PARAM; -DELIMITER ;; -create trigger TDA_BAS_TIMETABLE_CTRL_PARAM AFTER DELETE on bas_timetable_ctrl_param for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'bas_timetable_ctrl_param', 'location_id', OLD.LOCATION_ID, '', getTableSubSystem('bas_timetable_ctrl_param')); -END IF; -END;; -DELIMITER ; - -drop table if exists bas_timetable_def; -CREATE TABLE `bas_timetable_def` ( - `ID` decimal(10,0) NOT NULL COMMENT '时间表ID', - `LOCATION_ID` decimal(10,0) NOT NULL COMMENT '车站ID', - `NAME` varchar(32) NOT NULL COMMENT '时间表名', - `VERSION` decimal(10,0) NOT NULL COMMENT '当前版本号(组态版本号)', - PRIMARY KEY (`ID`,`LOCATION_ID`), - UNIQUE KEY `UN_BAS_TIMETABLE_DEF` (`LOCATION_ID`,`NAME`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='时间表定义'; - -drop trigger if exists TIA_BAS_TIMETABLE_DEF; -DELIMITER ;; -create trigger TIA_BAS_TIMETABLE_DEF AFTER INSERT on bas_timetable_def for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'bas_timetable_def', 'id,location_id', '', concat(NEW.ID,',',NEW.LOCATION_ID), getTableSubSystem('bas_timetable_def')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_BAS_TIMETABLE_DEF; -DELIMITER ;; -create trigger TUA_BAS_TIMETABLE_DEF AFTER UPDATE on bas_timetable_def for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'bas_timetable_def', 'id,location_id', concat(OLD.ID,',',OLD.LOCATION_ID), concat(NEW.ID,',',NEW.LOCATION_ID), getTableSubSystem('bas_timetable_def')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_BAS_TIMETABLE_DEF; -DELIMITER ;; -create trigger TDA_BAS_TIMETABLE_DEF AFTER DELETE on bas_timetable_def for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'bas_timetable_def', 'id,location_id', concat(OLD.ID,',',OLD.LOCATION_ID), '', getTableSubSystem('bas_timetable_def')); -END IF; -END;; -DELIMITER ; - -drop table if exists bas_timetable_info; -CREATE TABLE `bas_timetable_info` ( - `LOCATION_ID` decimal(10,0) NOT NULL COMMENT '车站ID', - `TIMETABLE_ID` decimal(10,0) NOT NULL COMMENT '时间表ID', - `BEGIN_TIME` varchar(8) NOT NULL COMMENT '起始时间,格式:08:00', - `CRAFT_ID` decimal(10,0) NOT NULL COMMENT '所属工艺', - `MODE_ID` decimal(10,0) NOT NULL COMMENT '模式ID', - PRIMARY KEY (`LOCATION_ID`,`TIMETABLE_ID`,`BEGIN_TIME`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='时间表信息表'; - -drop trigger if exists TIA_BAS_TIMETABLE_INFO; -DELIMITER ;; -create trigger TIA_BAS_TIMETABLE_INFO AFTER INSERT on bas_timetable_info for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'bas_timetable_info', 'location_id,timetable_id,begin_time', '', concat(NEW.LOCATION_ID,',',NEW.TIMETABLE_ID,',',NEW.BEGIN_TIME), getTableSubSystem('bas_timetable_info')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_BAS_TIMETABLE_INFO; -DELIMITER ;; -create trigger TUA_BAS_TIMETABLE_INFO AFTER UPDATE on bas_timetable_info for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'bas_timetable_info', 'location_id,timetable_id,begin_time', concat(OLD.LOCATION_ID,',',OLD.TIMETABLE_ID,',',OLD.BEGIN_TIME), concat(NEW.LOCATION_ID,',',NEW.TIMETABLE_ID,',',NEW.BEGIN_TIME), getTableSubSystem('bas_timetable_info')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_BAS_TIMETABLE_INFO; -DELIMITER ;; -create trigger TDA_BAS_TIMETABLE_INFO AFTER DELETE on bas_timetable_info for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'bas_timetable_info', 'location_id,timetable_id,begin_time', concat(OLD.LOCATION_ID,',',OLD.TIMETABLE_ID,',',OLD.BEGIN_TIME), '', getTableSubSystem('bas_timetable_info')); -END IF; -END;; -DELIMITER ; - -drop table if exists bas_timetable_schedule; -CREATE TABLE `bas_timetable_schedule` ( - `ID` decimal(10,0) NOT NULL COMMENT '计划时间表ID', - `LOCATION_ID` decimal(10,0) NOT NULL COMMENT '所属车站', - `NAME` varchar(32) NOT NULL COMMENT '计划时间表名', - `BEGIN_DATE` varchar(8) NOT NULL COMMENT '开始时间,格式如:06-01', - `END_DATE` varchar(8) NOT NULL COMMENT '结束时间,格式如:06-01', - `DATE_TYPE` decimal(10,0) DEFAULT NULL COMMENT '日期类型,1-特殊日/2-普通日', - `MON_TIMETABLE_ID` decimal(10,0) DEFAULT NULL COMMENT '星期一时间表ID', - `TUES_TIMETABLE_ID` decimal(10,0) DEFAULT NULL COMMENT '星期二时间表ID', - `WED_TIMETABLE_ID` decimal(10,0) DEFAULT NULL COMMENT '星期三时间表ID', - `THUR_TIMETABLE_ID` decimal(10,0) DEFAULT NULL COMMENT '星期四时间表ID', - `FRI_TIMETABLE_ID` decimal(10,0) DEFAULT NULL COMMENT '星期五时间表ID', - `SAT_TIMETABLE_ID` decimal(10,0) DEFAULT NULL COMMENT '星期六时间表ID', - `SUN_TIMETABLE_ID` decimal(10,0) DEFAULT NULL COMMENT '星期日时间表ID', - PRIMARY KEY (`ID`,`LOCATION_ID`), - UNIQUE KEY `UN_BAS_TIMETABLE_SCHEDULE` (`LOCATION_ID`,`NAME`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='时间表计划'; - -drop trigger if exists TIA_BAS_TIMETABLE_SCHEDULE; -DELIMITER ;; -create trigger TIA_BAS_TIMETABLE_SCHEDULE AFTER INSERT on bas_timetable_schedule for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'bas_timetable_schedule', 'id,location_id', '', concat(NEW.ID,',',NEW.LOCATION_ID), getTableSubSystem('bas_timetable_schedule')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_BAS_TIMETABLE_SCHEDULE; -DELIMITER ;; -create trigger TUA_BAS_TIMETABLE_SCHEDULE AFTER UPDATE on bas_timetable_schedule for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'bas_timetable_schedule', 'id,location_id', concat(OLD.ID,',',OLD.LOCATION_ID), concat(NEW.ID,',',NEW.LOCATION_ID), getTableSubSystem('bas_timetable_schedule')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_BAS_TIMETABLE_SCHEDULE; -DELIMITER ;; -create trigger TDA_BAS_TIMETABLE_SCHEDULE AFTER DELETE on bas_timetable_schedule for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'bas_timetable_schedule', 'id,location_id', concat(OLD.ID,',',OLD.LOCATION_ID), '', getTableSubSystem('bas_timetable_schedule')); -END IF; -END;; -DELIMITER ; - -drop table if exists calc_func_def; -CREATE TABLE `calc_func_def` ( - `FUNC_NAME` varchar(64) NOT NULL COMMENT '函数名', - `GROUP_ID` decimal(10,0) NOT NULL COMMENT '分类ID', - `DESCRIPTION` varchar(256) DEFAULT NULL COMMENT '函数描述', - `FUNC_STR` varchar(4096) DEFAULT NULL COMMENT 'LUA函数字符串', - `PARAM_NUM` decimal(10,0) NOT NULL DEFAULT '0' COMMENT '参数个数', - PRIMARY KEY (`FUNC_NAME`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='计算量函数表'; - -drop trigger if exists TI_CALC_FUNC_DEF; -DELIMITER ;; -create trigger TI_CALC_FUNC_DEF AFTER INSERT on calc_func_def for each ROW -BEGIN - - IF getTriggerFlag() = TRUE THEN - INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) - VALUES (getMaxTriggerId(),getOpType('insert'),'calc_func_def', 'func_name', '', NEW.FUNC_NAME, getTableSubSystem('calc_func_def')); - END IF; -END;; -DELIMITER ; - -drop trigger if exists TU_CALC_FUNC_DEF; -DELIMITER ;; -create trigger TU_CALC_FUNC_DEF AFTER UPDATE on calc_func_def for each ROW -BEGIN - - UPDATE calc_out_para SET - FUNC_NAME = NEW.FUNC_NAME, - CALC_FLAG = '1' - WHERE FUNC_NAME = OLD.FUNC_NAME; - - IF getTriggerFlag() = TRUE THEN - INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME, KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) - VALUES (getMaxTriggerId(),getOpType('update'),'calc_func_def', 'func_name', OLD.FUNC_NAME, NEW.FUNC_NAME, getTableSubSystem('calc_func_def')); - END IF; -END;; -DELIMITER ; - -drop trigger if exists TD_CALC_FUNC_DEF; -DELIMITER ;; -create trigger TD_CALC_FUNC_DEF AFTER DELETE on calc_func_def for each ROW -BEGIN - DELETE FROM calc_out_para WHERE FUNC_NAME = OLD.FUNC_NAME; - IF getTriggerFlag() = TRUE THEN - INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) - VALUES (getMaxTriggerId(),getOpType('delete'),'calc_func_def', 'func_name', OLD.FUNC_NAME, '', getTableSubSystem('calc_func_def')); - END IF; -END;; -DELIMITER ; - -drop table if exists calc_group_def; -CREATE TABLE `calc_group_def` ( - `GROUP_ID` decimal(10,0) NOT NULL, - `GROUP_NAME` varchar(64) NOT NULL COMMENT '分类名', - `DESCRIPTION` varchar(256) DEFAULT NULL COMMENT '分类描述', - PRIMARY KEY (`GROUP_ID`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='公式分类表'; - -drop trigger if exists TI_CALC_GROUP_DEF; -DELIMITER ;; -create trigger TI_CALC_GROUP_DEF AFTER INSERT on calc_group_def for each ROW -BEGIN - - IF getTriggerFlag() = TRUE THEN - INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) - VALUES (getMaxTriggerId(),getOpType('insert'),'calc_group_def', 'group_id', '', NEW.GROUP_ID, getTableSubSystem('calc_group_def')); - END IF; -END;; -DELIMITER ; - -drop trigger if exists TU_CALC_GROUP_DEF; -DELIMITER ;; -create trigger TU_CALC_GROUP_DEF AFTER UPDATE on calc_group_def for each ROW -BEGIN - - IF NEW.GROUP_ID <> OLD.GROUP_ID THEN - UPDATE calc_func_def SET GROUP_ID = NEW.GROUP_ID WHERE GROUP_ID = OLD.GROUP_ID; - END IF; - - IF getTriggerFlag() = TRUE THEN - INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME, KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) - VALUES (getMaxTriggerId(),getOpType('update'),'calc_group_def', 'group_id', OLD.GROUP_ID, NEW.GROUP_ID, getTableSubSystem('calc_group_def')); - END IF; -END;; -DELIMITER ; - -drop trigger if exists TD_CALC_GROUP_DEF; -DELIMITER ;; -create trigger TD_CALC_GROUP_DEF AFTER DELETE on calc_group_def for each ROW -BEGIN - - IF getTriggerFlag() = TRUE THEN - INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) - VALUES (getMaxTriggerId(),getOpType('delete'),'calc_group_def', 'group_id', OLD.GROUP_ID, '', getTableSubSystem('calc_group_def')); - END IF; -END;; -DELIMITER ; - -drop table if exists calc_in_para; -CREATE TABLE `calc_in_para` ( - `KEY_ID_TAG` varchar(128) NOT NULL COMMENT '输出测点名', - `PARA_SEQ_NO` decimal(10,0) NOT NULL COMMENT '参数序号', - `PARA_KEY_TAG` varchar(64) NOT NULL COMMENT '输入测点标签', - `DESCRIPTION` varchar(256) DEFAULT NULL, - `LOCATION_ID` decimal(10,0) NOT NULL COMMENT '车站ID', - `SUB_SYSTEM` decimal(10,0) NOT NULL COMMENT '专业ID', - `CALC_FLAG` decimal(10,0) DEFAULT NULL COMMENT '标识符', - PRIMARY KEY (`KEY_ID_TAG`,`PARA_SEQ_NO`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='计算量输入配置表'; - -drop trigger if exists TI_CALC_IN_PARA; -DELIMITER ;; -create trigger TI_CALC_IN_PARA AFTER INSERT on calc_in_para for each ROW -BEGIN - - UPDATE calc_out_para SET CALC_FLAG = '1' WHERE KEY_ID_TAG = NEW.KEY_ID_TAG; - - IF getTriggerFlag() = TRUE THEN - INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) - VALUES (getMaxTriggerId(),getOpType('insert'),'calc_in_para', 'key_id_tag,para_seq_no', '', concat(NEW.KEY_ID_TAG,',',NEW.PARA_SEQ_NO), getTableSubSystem('calc_in_para')); - END IF; -END;; -DELIMITER ; - -drop trigger if exists TU_CALC_IN_PARA; -DELIMITER ;; -create trigger TU_CALC_IN_PARA AFTER UPDATE on calc_in_para for each ROW -BEGIN - - UPDATE calc_out_para SET CALC_FLAG = '1' WHERE KEY_ID_TAG = NEW.KEY_ID_TAG; - IF getTriggerFlag() = TRUE THEN - INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) - VALUES (getMaxTriggerId(),getOpType('update'),'calc_in_para', 'key_id_tag,para_seq_no', concat(OLD.KEY_ID_TAG,',',OLD.PARA_SEQ_NO), concat(NEW.KEY_ID_TAG,',',NEW.PARA_SEQ_NO), getTableSubSystem('calc_in_para')); - END IF; -END;; -DELIMITER ; - -drop trigger if exists TD_CALC_IN_PARA; -DELIMITER ;; -create trigger TD_CALC_IN_PARA AFTER DELETE on calc_in_para for each ROW -BEGIN - - UPDATE calc_out_para SET CALC_FLAG = '1' WHERE KEY_ID_TAG = OLD.KEY_ID_TAG; - IF getTriggerFlag() = TRUE THEN - INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) - VALUES (getMaxTriggerId(),getOpType('delete'),'calc_in_para', 'key_id_tag,para_seq_no', concat(OLD.KEY_ID_TAG,',',OLD.PARA_SEQ_NO), '', getTableSubSystem('calc_in_para')); - END IF; -END;; -DELIMITER ; - -drop table if exists calc_out_para; -CREATE TABLE `calc_out_para` ( - `KEY_ID_TAG` varchar(128) NOT NULL COMMENT '输出测点名', - `DESCRIPTION` varchar(256) DEFAULT NULL COMMENT '描述', - `LOCATION_ID` decimal(10,0) NOT NULL COMMENT '车站ID', - `SUB_SYSTEM` decimal(10,0) NOT NULL COMMENT '专业ID', - `FUNC_NAME` varchar(64) NOT NULL COMMENT '计算量函数名', - `CALC_FLAG` decimal(10,0) DEFAULT NULL COMMENT '标识符', - PRIMARY KEY (`KEY_ID_TAG`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='计算量输出配置表'; - -drop trigger if exists TI_CALC_OUT_PARA; -DELIMITER ;; -create trigger TI_CALC_OUT_PARA AFTER INSERT on calc_out_para for each ROW -BEGIN - - IF getTriggerFlag() = TRUE THEN - INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) - VALUES (getMaxTriggerId(),getOpType('insert'),'calc_out_para', 'key_id_tag', '', NEW.KEY_ID_TAG, getTableSubSystem('calc_out_para')); - END IF; -END;; -DELIMITER ; - -drop trigger if exists TU_CALC_OUT_PARA; -DELIMITER ;; -create trigger TU_CALC_OUT_PARA AFTER UPDATE on calc_out_para for each ROW -BEGIN - - IF getTriggerFlag() = TRUE THEN - INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) - VALUES (getMaxTriggerId(),getOpType('update'),'calc_out_para', 'key_id_tag', OLD.KEY_ID_TAG, NEW.KEY_ID_TAG, getTableSubSystem('calc_out_para')); - END IF; -END;; -DELIMITER ; - -drop trigger if exists TD_CALC_OUT_PARA; -DELIMITER ;; -create trigger TD_CALC_OUT_PARA AFTER DELETE on calc_out_para for each ROW -BEGIN - - #这里不能触发删除本输出的输入,因为输入的删除触发器中调用了本表 - IF getTriggerFlag() = TRUE THEN - INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) - VALUES (getMaxTriggerId(),getOpType('delete'),'calc_out_para', 'key_id_tag', OLD.KEY_ID_TAG, '', getTableSubSystem('calc_out_para')); - END IF; -END;; -DELIMITER ; - -drop table if exists calc_para_def; -CREATE TABLE `calc_para_def` ( - `FUNC_NAME` varchar(64) NOT NULL COMMENT '函数名', - `PARA_SEQ_NO` decimal(10,0) NOT NULL COMMENT '参数序号', - `DESCRIPTION` varchar(256) DEFAULT NULL COMMENT '参数描述', - PRIMARY KEY (`FUNC_NAME`,`PARA_SEQ_NO`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='计算量参数描述表'; - -drop trigger if exists TI_CALC_PARA_DEF; -DELIMITER ;; -create trigger TI_CALC_PARA_DEF AFTER INSERT on calc_para_def for each ROW -BEGIN - - IF getTriggerFlag() = TRUE THEN - INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) - VALUES (getMaxTriggerId(),getOpType('insert'),'calc_para_def', 'func_name,para_seq_no', '', concat(NEW.FUNC_NAME,',',NEW.PARA_SEQ_NO), getTableSubSystem('calc_para_def')); - END IF; -END;; -DELIMITER ; - -drop trigger if exists TU_CALC_PARA_DEF; -DELIMITER ;; -create trigger TU_CALC_PARA_DEF AFTER UPDATE on calc_para_def for each ROW -BEGIN - - IF getTriggerFlag() = TRUE THEN - INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) - VALUES (getMaxTriggerId(),getOpType('update'),'calc_para_def', 'func_name,para_seq_no', concat(OLD.FUNC_NAME,',',OLD.PARA_SEQ_NO), concat(NEW.FUNC_NAME,',',NEW.PARA_SEQ_NO), getTableSubSystem('calc_para_def')); - END IF; -END;; -DELIMITER ; - -drop trigger if exists TD_CALC_PARA_DEF; -DELIMITER ;; -create trigger TD_CALC_PARA_DEF AFTER DELETE on calc_para_def for each ROW -BEGIN - - IF getTriggerFlag() = TRUE THEN - INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) - VALUES (getMaxTriggerId(),getOpType('delete'),'calc_para_def', 'func_name,para_seq_no', concat(OLD.FUNC_NAME,',',OLD.PARA_SEQ_NO), '', getTableSubSystem('calc_para_def')); - END IF; -END;; -DELIMITER ; - -drop table if exists cctv_camera_info; -CREATE TABLE `cctv_camera_info` ( - `TAG_NAME` varchar(64) NOT NULL COMMENT '标签', - `CAMERA_NAME` varchar(64) NOT NULL COMMENT '摄像头名', - `CAMERA_TYPE` decimal(10,0) NOT NULL COMMENT '摄像头类型', - `LOCATION_ID` decimal(10,0) NOT NULL COMMENT '位置id', - `CAMERA_IP` varchar(32) NOT NULL COMMENT 'ip地址', - `CAMERA_PTZ_IP` varchar(32) NOT NULL COMMENT '云台ip', - `CAMERA_PORT` decimal(10,0) NOT NULL COMMENT '端口', - `CAMERA_NO` decimal(10,0) NOT NULL COMMENT '摄像头序号', - `DESCRIPTION` varchar(128) DEFAULT NULL COMMENT '描述', - `CHAN_NO` decimal(10,0) DEFAULT NULL COMMENT '通道号', - `USERNAME` varchar(128) DEFAULT NULL COMMENT '用户名', - `PASSWORD` varchar(128) DEFAULT NULL COMMENT '密码', - PRIMARY KEY (`TAG_NAME`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='视频设备信息表'; - -drop table if exists cctv_monitor_info; -CREATE TABLE `cctv_monitor_info` ( - `TAG_NAME` varchar(64) NOT NULL COMMENT 'TAG_NAME', - `DESCRIPTION` varchar(100) NOT NULL COMMENT 'DESCRIPTION', - `LOCATION_ID` decimal(10,0) DEFAULT NULL COMMENT 'LOCATION_ID', - `VIDEO_SOURCE_TYPE` decimal(10,0) DEFAULT NULL COMMENT 'VIDEO_SOURCE_TYPE', - `DIV_MODE` decimal(10,0) DEFAULT NULL COMMENT 'DIV_MODE', - `SEPARATOR_KEY_ID_TAG4` varchar(100) DEFAULT NULL COMMENT 'SEPARATOR_KEY_ID_TAG4', - `SEPARATOR_KEY_ID_TAG9` varchar(100) DEFAULT NULL COMMENT 'SEPARATOR_KEY_ID_TAG9', - `SEPARATOR_KEY_ID_TAG16` varchar(100) DEFAULT NULL COMMENT 'SEPARATOR_KEY_ID_TAG16', - `VIDEO_SOURCE_KEY_ID_TAG` varchar(100) DEFAULT NULL COMMENT 'VIDEO_SOURCE_KEY_ID_TAG', - `MONITOR_NO` decimal(10,0) DEFAULT NULL COMMENT 'MONITOR_NO', - PRIMARY KEY (`TAG_NAME`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -drop table if exists cctv_orientation; -CREATE TABLE `cctv_orientation` ( - `LOCATION_ID` decimal(10,0) DEFAULT NULL COMMENT 'LOCATION_ID', - `DESCRIPTION` varchar(100) DEFAULT NULL COMMENT 'DESCRIPTION', - `ORIENTATION_NO` decimal(10,0) DEFAULT NULL COMMENT 'ORIENTATION_NO', - `TAG_NAME` varchar(64) NOT NULL COMMENT 'TAG_NAME', - `CAMERA_TAG_NAME` varchar(64) NOT NULL COMMENT 'CAMERA_TAG_NAME', - `PRESET_TOKEN` varchar(128) DEFAULT NULL COMMENT 'onvif与指点标识符', - PRIMARY KEY (`TAG_NAME`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -drop table if exists cctv_separator_info; -CREATE TABLE `cctv_separator_info` ( - `LOCATION_ID` decimal(10,0) DEFAULT NULL COMMENT 'LOCATION_ID', - `DESCRIPTION` varchar(100) DEFAULT NULL COMMENT 'DESCRIPTION', - `SEPARATOR_TYPE` decimal(10,0) NOT NULL COMMENT 'SEPARATOR_TYPE', - `IF_FULL_SEQUENCE` decimal(10,0) DEFAULT NULL COMMENT 'IF_FULL_SEQUENCE', - `SEQUENCE_ORDER` decimal(10,0) DEFAULT NULL COMMENT 'SEQUENCE_ORDER', - `SEPARATOR_NO` decimal(10,0) DEFAULT NULL COMMENT 'SEPARATOR_NO', - `TAG_NAME` varchar(64) NOT NULL COMMENT 'TAG_NAME', - `VIDEO_TYPE1` decimal(10,0) DEFAULT NULL COMMENT 'VIDEO_TYPE1', - `VIDEO_TYPE2` decimal(10,0) DEFAULT NULL COMMENT 'VIDEO_TYPE2', - `VIDEO_SOURCE_KEY_ID_TAG1` varchar(100) DEFAULT NULL COMMENT 'VIDEO_SOURCE_KEY_ID_TAG1', - `VIDEO_SOURCE_KEY_ID_TAG2` varchar(100) DEFAULT NULL COMMENT 'VIDEO_SOURCE_KEY_ID_TAG2', - `VIDEO_SOURCE_KEY_ID_TAG3` varchar(100) DEFAULT NULL COMMENT 'VIDEO_SOURCE_KEY_ID_TAG3', - `VIDEO_TYPE3` decimal(10,0) DEFAULT NULL COMMENT 'VIDEO_TYPE3', - `VIDEO_TYPE4` decimal(10,0) DEFAULT NULL COMMENT 'VIDEO_TYPE4', - `VIDEO_TYPE5` decimal(10,0) DEFAULT NULL COMMENT 'VIDEO_TYPE5', - `VIDEO_TYPE6` decimal(10,0) DEFAULT NULL COMMENT 'VIDEO_TYPE6', - `VIDEO_TYPE7` decimal(10,0) DEFAULT NULL COMMENT 'VIDEO_TYPE7', - `VIDEO_TYPE8` decimal(10,0) DEFAULT NULL COMMENT 'VIDEO_TYPE8', - `VIDEO_TYPE9` decimal(10,0) DEFAULT NULL COMMENT 'VIDEO_TYPE9', - `VIDEO_TYPE10` decimal(10,0) DEFAULT NULL COMMENT 'VIDEO_TYPE10', - `VIDEO_TYPE12` decimal(10,0) DEFAULT NULL COMMENT 'VIDEO_TYPE12', - `VIDEO_TYPE11` decimal(10,0) DEFAULT NULL COMMENT 'VIDEO_TYPE11', - `VIDEO_TYPE13` decimal(10,0) DEFAULT NULL COMMENT 'VIDEO_TYPE13', - `VIDEO_TYPE14` decimal(10,0) DEFAULT NULL COMMENT 'VIDEO_TYPE14', - `VIDEO_TYPE15` decimal(10,0) DEFAULT NULL COMMENT 'VIDEO_TYPE15', - `VIDEO_TYPE16` decimal(10,0) DEFAULT NULL COMMENT 'VIDEO_TYPE16', - `VIDEO_SOURCE_KEY_ID_TAG4` varchar(100) DEFAULT NULL COMMENT 'VIDEO_SOURCE_KEY_ID_TAG4', - `VIDEO_SOURCE_KEY_ID_TAG5` varchar(100) DEFAULT NULL COMMENT 'VIDEO_SOURCE_KEY_ID_TAG5', - `VIDEO_SOURCE_KEY_ID_TAG6` varchar(100) DEFAULT NULL COMMENT 'VIDEO_SOURCE_KEY_ID_TAG6', - `VIDEO_SOURCE_KEY_ID_TAG7` varchar(100) DEFAULT NULL COMMENT 'VIDEO_SOURCE_KEY_ID_TAG7', - `VIDEO_SOURCE_KEY_ID_TAG8` varchar(100) DEFAULT NULL COMMENT 'VIDEO_SOURCE_KEY_ID_TAG8', - `VIDEO_SOURCE_KEY_ID_TAG9` varchar(100) DEFAULT NULL COMMENT 'VIDEO_SOURCE_KEY_ID_TAG9', - `VIDEO_SOURCE_KEY_ID_TAG10` varchar(100) DEFAULT NULL COMMENT 'VIDEO_SOURCE_KEY_ID_TAG10', - `VIDEO_SOURCE_KEY_ID_TAG11` varchar(100) DEFAULT NULL COMMENT 'VIDEO_SOURCE_KEY_ID_TAG11', - `VIDEO_SOURCE_KEY_ID_TAG16` varchar(100) DEFAULT NULL COMMENT 'VIDEO_SOURCE_KEY_ID_TAG16', - `VIDEO_SOURCE_KEY_ID_TAG15` varchar(100) DEFAULT NULL COMMENT 'VIDEO_SOURCE_KEY_ID_TAG15', - `VIDEO_SOURCE_KEY_ID_TAG14` varchar(100) DEFAULT NULL COMMENT 'VIDEO_SOURCE_KEY_ID_TAG14', - `VIDEO_SOURCE_KEY_ID_TAG13` varchar(100) DEFAULT NULL COMMENT 'VIDEO_SOURCE_KEY_ID_TAG13', - `VIDEO_SOURCE_KEY_ID_TAG12` varchar(100) DEFAULT NULL COMMENT 'VIDEO_SOURCE_KEY_ID_TAG12', - `FULL_SEQUENCE_KEY_ID_TAG` varchar(100) DEFAULT NULL COMMENT 'FULL_SEQUENCE_KEY_ID_TAG', - PRIMARY KEY (`TAG_NAME`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='CCTV画面分割器表'; - -drop table if exists cctv_sequence; -CREATE TABLE `cctv_sequence` ( - `TAG_NAME` varchar(64) NOT NULL COMMENT 'TAG_NAME', - `LOCATION_ID` decimal(10,0) DEFAULT NULL COMMENT 'LOCATION_ID', - `SEQUENCE_NO` decimal(10,0) NOT NULL COMMENT 'SEQUENCE_NO', - `DESCRIPTION` varchar(100) DEFAULT NULL COMMENT 'DESCRIPTION', - `SEQUENCE_TYPE` decimal(10,0) NOT NULL COMMENT 'SEQUENCE_TYPE', - `CAMERA_NUM` decimal(10,0) NOT NULL COMMENT 'CAMERA_NUM', - `CAMERA_SHOWTIME` decimal(10,0) NOT NULL COMMENT 'CAMERA_SHOWTIME', - `OPERATOR_ID` decimal(10,0) DEFAULT NULL COMMENT 'OPERATOR_ID', - `OPERATOR_NODE_NAME` varchar(64) DEFAULT NULL COMMENT 'OPERATOR_NODE_NAME', - `OPERATE_TIME` decimal(10,0) DEFAULT NULL COMMENT 'OPERATE_TIME', - `REQUEST_ID` decimal(10,0) DEFAULT NULL COMMENT 'REQUEST_ID', - `CAMERA_TAG1` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG1', - `CAMERA_TAG2` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG2', - `CAMERA_TAG3` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG3', - `CAMERA_TAG4` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG4', - `CAMERA_TAG5` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG5', - `CAMERA_TAG6` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG6', - `CAMERA_TAG7` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG7', - `CAMERA_TAG8` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG8', - `CAMERA_TAG9` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG9', - `CAMERA_TAG10` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG10', - `CAMERA_TAG11` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG11', - `CAMERA_TAG12` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG12', - `CAMERA_TAG13` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG13', - `CAMERA_TAG14` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG14', - `CAMERA_TAG15` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG15', - `CAMERA_TAG16` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG16', - `CAMERA_TAG17` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG17', - `CAMERA_TAG18` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG18', - `CAMERA_TAG19` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG19', - `CAMERA_TAG20` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG20', - `CAMERA_TAG21` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG21', - `CAMERA_TAG22` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG22', - `CAMERA_TAG23` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG23', - `CAMERA_TAG24` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG24', - `CAMERA_TAG25` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG25', - `CAMERA_TAG26` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG26', - `CAMERA_TAG27` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG27', - `CAMERA_TAG28` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG28', - `CAMERA_TAG29` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG29', - `CAMERA_TAG30` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG30', - `CAMERA_TAG31` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG31', - `CAMERA_TAG32` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG32', - `CAMERA_TAG33` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG33', - `CAMERA_TAG34` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG34', - `CAMERA_TAG35` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG35', - `CAMERA_TAG36` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG36', - `CAMERA_TAG37` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG37', - `CAMERA_TAG38` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG38', - `CAMERA_TAG39` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG39', - `CAMERA_TAG40` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG40', - `CAMERA_TAG41` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG41', - `CAMERA_TAG42` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG42', - `CAMERA_TAG43` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG43', - `CAMERA_TAG44` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG44', - `CAMERA_TAG45` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG45', - `CAMERA_TAG46` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG46', - `CAMERA_TAG47` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG47', - `CAMERA_TAG48` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG48', - `CAMERA_TAG49` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG49', - `CAMERA_TAG50` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG50', - `CAMERA_TAG51` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG51', - `CAMERA_TAG52` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG52', - `CAMERA_TAG53` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG53', - `CAMERA_TAG54` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG54', - `CAMERA_TAG55` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG55', - `CAMERA_TAG56` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG56', - `CAMERA_TAG57` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG57', - `CAMERA_TAG58` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG58', - `CAMERA_TAG59` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG59', - `CAMERA_TAG60` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG60', - `CAMERA_TAG61` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG61', - `CAMERA_TAG62` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG62', - `CAMERA_TAG63` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG63', - `CAMERA_TAG64` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG64', - `CAMERA_TAG65` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG65', - `CAMERA_TAG66` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG66', - `CAMERA_TAG67` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG67', - `CAMERA_TAG68` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG68', - `CAMERA_TAG69` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG69', - `CAMERA_TAG70` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG70', - `CAMERA_TAG71` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG71', - `CAMERA_TAG72` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG72', - `CAMERA_TAG73` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG73', - `CAMERA_TAG74` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG74', - `CAMERA_TAG75` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG75', - `CAMERA_TAG76` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG76', - `CAMERA_TAG77` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG77', - `CAMERA_TAG78` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG78', - `CAMERA_TAG79` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG79', - `CAMERA_TAG80` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG80', - `CAMERA_TAG81` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG81', - `CAMERA_TAG82` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG82', - `CAMERA_TAG83` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG83', - `CAMERA_TAG84` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG84', - `CAMERA_TAG85` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG85', - `CAMERA_TAG86` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG86', - `CAMERA_TAG87` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG87', - `CAMERA_TAG88` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG88', - `CAMERA_TAG89` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG89', - `CAMERA_TAG90` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG90', - `CAMERA_TAG91` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG91', - `CAMERA_TAG92` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG92', - `CAMERA_TAG93` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG93', - `CAMERA_TAG94` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG94', - `CAMERA_TAG95` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG95', - `CAMERA_TAG96` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG96', - `CAMERA_TAG97` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG97', - `CAMERA_TAG98` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG98', - `CAMERA_TAG99` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG99', - `CAMERA_TAG100` varchar(64) DEFAULT NULL COMMENT 'CAMERA_TAG100', - PRIMARY KEY (`TAG_NAME`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='视频监控队列表'; - -drop table if exists cfg_dev_type_map; -CREATE TABLE `cfg_dev_type_map` ( - `IED_NAME` varchar(100) NOT NULL COMMENT '文件iedName', - `RECORDWAVE_ENABLE` decimal(10,0) NOT NULL COMMENT '是否启用录波', - `RECORDWAVE_PATH` varchar(256) NOT NULL COMMENT '录波路径', - `RECORDWAVE_TIME` decimal(10,0) NOT NULL COMMENT '录波召唤时间', - PRIMARY KEY (`IED_NAME`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='61850设备类型映射表'; - -drop table if exists cfg_device_inst; -CREATE TABLE `cfg_device_inst` ( - `id` decimal(10,0) NOT NULL COMMENT '主键', - `Stationid` decimal(10,0) DEFAULT NULL COMMENT '厂站ID', - `iedname` varchar(128) DEFAULT NULL COMMENT 'iedName', - `IedDesc` varchar(128) DEFAULT NULL COMMENT 'ied描述', - `DeviceTagName` varchar(128) DEFAULT NULL COMMENT '实例装置的TagName', - `waveremotepath` varchar(128) DEFAULT NULL COMMENT '录波路径', - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='二次装置实例表'; - -drop trigger if exists TIA_CFG_DEVICE_INST; -DELIMITER ;; -create trigger TIA_CFG_DEVICE_INST AFTER INSERT on cfg_device_inst for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'cfg_device_inst', 'id', '', NEW.id, getTableSubSystem('cfg_device_inst')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_CFG_DEVICE_INST; -DELIMITER ;; -create trigger TUA_CFG_DEVICE_INST AFTER UPDATE on cfg_device_inst for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'cfg_device_inst', 'id', OLD.id, NEW.id, getTableSubSystem('cfg_device_inst')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_CFG_DEVICE_INST; -DELIMITER ;; -create trigger TDA_CFG_DEVICE_INST AFTER DELETE on cfg_device_inst for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'cfg_device_inst', 'id', OLD.id, '', getTableSubSystem('cfg_device_inst')); -END IF; -END;; -DELIMITER ; - -drop table if exists cfg_signal_inst; -CREATE TABLE `cfg_signal_inst` ( - `id` decimal(10,0) NOT NULL COMMENT '主键', - `iedname` varchar(128) DEFAULT NULL COMMENT 'iedname', - `pointtype` decimal(10,0) DEFAULT NULL COMMENT '测点类型', - `pointid` decimal(10,0) DEFAULT NULL COMMENT 'fes测点ID', - `pointref` varchar(128) DEFAULT NULL COMMENT '测点的mms索引', - `Describtion` varchar(128) DEFAULT NULL COMMENT '测点描述', - `Typeid` decimal(10,0) DEFAULT NULL COMMENT '测点的Typeid', - `basictype` decimal(10,0) DEFAULT NULL COMMENT '基本类型', - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='实例信号测点'; - -drop trigger if exists TIA_CFG_SIGNAL_INST; -DELIMITER ;; -create trigger TIA_CFG_SIGNAL_INST AFTER INSERT on cfg_signal_inst for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'cfg_signal_inst', 'id', '', NEW.id, getTableSubSystem('cfg_signal_inst')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_CFG_SIGNAL_INST; -DELIMITER ;; -create trigger TUA_CFG_SIGNAL_INST AFTER UPDATE on cfg_signal_inst for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'cfg_signal_inst', 'id', OLD.id, NEW.id, getTableSubSystem('cfg_signal_inst')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_CFG_SIGNAL_INST; -DELIMITER ;; -create trigger TDA_CFG_SIGNAL_INST AFTER DELETE on cfg_signal_inst for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'cfg_signal_inst', 'id', OLD.id, '', getTableSubSystem('cfg_signal_inst')); -END IF; -END;; -DELIMITER ; - -drop table if exists dev_temp_def; -CREATE TABLE `dev_temp_def` ( - `TAG_NAME` varchar(64) NOT NULL COMMENT '设备名称', - `DEV_TYPE_ID` decimal(10,0) NOT NULL COMMENT '设备类型', - `DEV_MODEL` varchar(64) DEFAULT NULL COMMENT '设备型号', - `DESCRIPTION` varchar(64) DEFAULT NULL COMMENT '设备描述', - `SUB_SYSTEM` decimal(10,0) DEFAULT NULL COMMENT '专业子系统', - `PARA_STR1` varchar(64) DEFAULT NULL COMMENT '备用字段1', - `PARA_STR2` varchar(64) DEFAULT NULL COMMENT '备用字段2', - `DEV_TEMP_GRP` varchar(64) DEFAULT NULL, - PRIMARY KEY (`TAG_NAME`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='设备模板定义表'; - -drop trigger if exists TIA_DEV_TEMP_DEF; -DELIMITER ;; -create trigger TIA_DEV_TEMP_DEF AFTER INSERT on dev_temp_def for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'dev_temp_def', 'tag_name', '', NEW.TAG_NAME, getTableSubSystem('dev_temp_def')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TU_DEV_TEMP_DEF; -DELIMITER ;; -create trigger TU_DEV_TEMP_DEF AFTER UPDATE on dev_temp_def for each ROW -BEGIN -IF OLD.TAG_NAME != NEW.TAG_NAME THEN -BEGIN - UPDATE accuml set POINT_TP_NAME = '' WHERE DEVICE IN (SELECT dev_info.TAG_NAME FROM dev_info WHERE DEV_TP_NAME = OLD.TAG_NAME); - UPDATE analog set POINT_TP_NAME = '' WHERE DEVICE IN (SELECT dev_info.TAG_NAME FROM dev_info WHERE DEV_TP_NAME = OLD.TAG_NAME); - UPDATE digital set POINT_TP_NAME = '' WHERE DEVICE IN (SELECT dev_info.TAG_NAME FROM dev_info WHERE DEV_TP_NAME = OLD.TAG_NAME); - UPDATE mix set POINT_TP_NAME = '' WHERE DEVICE IN (SELECT dev_info.TAG_NAME FROM dev_info WHERE DEV_TP_NAME = OLD.TAG_NAME); -END; -END IF; - -IF OLD.TAG_NAME != NEW.TAG_NAME OR OLD.DESCRIPTION != NEW.DESCRIPTION THEN -BEGIN - UPDATE accuml_temp_define SET - DEV_TP_NAME=NEW.TAG_NAME , - TAG_NAME=concat(NEW.TAG_NAME, '.' , getAfterLastDot(TAG_NAME)) - WHERE DEV_TP_NAME=OLD.TAG_NAME ; - - UPDATE analog_temp_define SET - DEV_TP_NAME=NEW.TAG_NAME , - TAG_NAME=concat(NEW.TAG_NAME, '.' , getAfterLastDot(TAG_NAME)) - WHERE DEV_TP_NAME=OLD.TAG_NAME ; - - - UPDATE digital_temp_define SET - DEV_TP_NAME=NEW.TAG_NAME , - TAG_NAME=concat(NEW.TAG_NAME, '.' , getAfterLastDot(TAG_NAME)) - WHERE DEV_TP_NAME=OLD.TAG_NAME ; - - UPDATE mix_temp_define SET - DEV_TP_NAME=NEW.TAG_NAME , - TAG_NAME=concat(NEW.TAG_NAME, '.' , getAfterLastDot(TAG_NAME)) - WHERE DEV_TP_NAME=OLD.TAG_NAME ; - #更新对应的套件 - IF OLD.TAG_NAME != NEW.TAG_NAME THEN - BEGIN - UPDATE temp_plugin_dev_map SET TEMP_NAME = NEW.TAG_NAME WHERE TEMP_NAME = OLD.TAG_NAME; - UPDATE temp_plugin_fes_dev_map SET TEMP_NAME = NEW.TAG_NAME WHERE TEMP_NAME = OLD.TAG_NAME; - UPDATE temp_plugin_point_map_acc SET TEMP_NAME = NEW.TAG_NAME WHERE TEMP_NAME = OLD.TAG_NAME; - UPDATE temp_plugin_point_map_ana SET TEMP_NAME = NEW.TAG_NAME WHERE TEMP_NAME = OLD.TAG_NAME; - UPDATE temp_plugin_point_map_dig SET TEMP_NAME = NEW.TAG_NAME WHERE TEMP_NAME = OLD.TAG_NAME; - UPDATE temp_plugin_point_map_mix SET TEMP_NAME = NEW.TAG_NAME WHERE TEMP_NAME = OLD.TAG_NAME; - END; - END IF; -END; -END IF; -/* -IF OLD.TAG_NAME != NEW.TAG_NAME OR OLD.DEV_TYPE_ID != NEW.DEV_TYPE_ID OR OLD.SUB_SYSTEM != NEW.SUB_SYSTEM -THEN -UPDATE dev_info SET -DEV_TP_NAME=NEW.TAG_NAME, -DEV_TYPE=NEW.DEV_TYPE_ID, -SUB_SYSTEM = NEW.SUB_SYSTEM -WHERE DEV_TP_NAME=OLD.TAG_NAME ; -END IF; -*/ -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'dev_temp_def', 'tag_name', OLD.TAG_NAME, NEW.TAG_NAME, getTableSubSystem('dev_temp_def')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TD_DEV_TEMP_DEF; -DELIMITER ;; -create trigger TD_DEV_TEMP_DEF BEFORE DELETE on dev_temp_def for each ROW -BEGIN - -/* -DELETE FROM dev_info WHERE DEV_TP_NAME = OLD.TAG_NAME; -*/ -DELETE FROM accuml_temp_define WHERE DEV_TP_NAME = OLD.TAG_NAME; -DELETE FROM analog_temp_define WHERE DEV_TP_NAME = OLD.TAG_NAME; -DELETE FROM digital_temp_define WHERE DEV_TP_NAME = OLD.TAG_NAME; -DELETE FROM mix_temp_define WHERE DEV_TP_NAME = OLD.TAG_NAME; -#套件的处理 -DELETE FROM temp_plugin_dev_map WHERE TEMP_NAME = OLD.TAG_NAME; -UPDATE accuml set POINT_TP_NAME = '' WHERE DEVICE IN (SELECT dev_info.TAG_NAME FROM dev_info WHERE DEV_TP_NAME = OLD.TAG_NAME); -UPDATE analog set POINT_TP_NAME = '' WHERE DEVICE IN (SELECT dev_info.TAG_NAME FROM dev_info WHERE DEV_TP_NAME = OLD.TAG_NAME); -UPDATE digital set POINT_TP_NAME = '' WHERE DEVICE IN (SELECT dev_info.TAG_NAME FROM dev_info WHERE DEV_TP_NAME = OLD.TAG_NAME); -UPDATE mix set POINT_TP_NAME = '' WHERE DEVICE IN (SELECT dev_info.TAG_NAME FROM dev_info WHERE DEV_TP_NAME = OLD.TAG_NAME); -END;; -DELIMITER ; - -drop trigger if exists TDA_DEV_TEMP_DEF; -DELIMITER ;; -create trigger TDA_DEV_TEMP_DEF AFTER DELETE on dev_temp_def for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'dev_temp_def', 'tag_name', OLD.TAG_NAME, '', getTableSubSystem('dev_temp_def')); -END IF; -END;; -DELIMITER ; - -drop table if exists dev_temp_group; -CREATE TABLE `dev_temp_group` ( - `TAG_NAME` varchar(64) NOT NULL COMMENT '标签名', - `DESCRIPTION` varchar(128) NOT NULL COMMENT '描述', - PRIMARY KEY (`TAG_NAME`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='设备模板组定义'; - -drop trigger if exists TU_DEV_TEMP_GROUP; -DELIMITER ;; -create trigger TU_DEV_TEMP_GROUP AFTER UPDATE on dev_temp_group for each ROW -BEGIN - - IF NEW.TAG_NAME <> OLD.TAG_NAME THEN - UPDATE dev_temp_def SET DEV_TEMP_GRP = NEW.TAG_NAME WHERE DEV_TEMP_GRP = OLD.TAG_NAME; - END IF; -END;; -DELIMITER ; - -drop trigger if exists TD_DEV_TEMP_GROUP; -DELIMITER ;; -create trigger TD_DEV_TEMP_GROUP AFTER DELETE on dev_temp_group for each ROW -BEGIN - - DELETE FROM dev_temp_def WHERE DEV_TEMP_GRP = OLD.TAG_NAME; - -END;; -DELIMITER ; - -drop table if exists dev_type_def_61850; -CREATE TABLE `dev_type_def_61850` ( - `DEV_TYPE_ID` decimal(10,0) NOT NULL COMMENT '设备分类', - `TAG_NAME` varchar(64) NOT NULL COMMENT '分类名称', - `DESCRIPTION` varchar(64) NOT NULL COMMENT '分类描述', - `RECORDWAVE_ENABLE` decimal(10,0) DEFAULT NULL COMMENT '是否启用录波', - `RECORDWAVE_PATH` varchar(64) DEFAULT NULL COMMENT '录波路径', - `RECORDWAVE_TIME` decimal(10,0) DEFAULT NULL COMMENT '录波召唤时间', - PRIMARY KEY (`DEV_TYPE_ID`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='61850设备类型定义表'; - -drop table if exists digital_control; -CREATE TABLE `digital_control` ( - `TAG_NAME` varchar(64) NOT NULL COMMENT '标签名', - `LOCATION_ID` decimal(10,0) NOT NULL COMMENT '所属车站', - `SUB_SYSTEM` decimal(10,0) DEFAULT NULL COMMENT '所属专业', - `CTRL_ACT_NAME` varchar(64) DEFAULT NULL COMMENT '控制动作组名称', - `CTRL_TYPE` decimal(10,0) DEFAULT NULL COMMENT '直控,选择再执行,自动控制', - `IS_TAGT_STATE` decimal(10,0) DEFAULT NULL COMMENT '是否等待目标状态', - `CTRL_TIMEOUT` decimal(10,0) DEFAULT NULL COMMENT '控制超时时间', - `RESV_TIMEOUT` decimal(10,0) DEFAULT NULL COMMENT '控制保留时间', - `PULSE_DURATION` decimal(10,0) DEFAULT NULL COMMENT '脉冲保留时间', - `RTU_TAG` varchar(64) DEFAULT NULL, - `OFFSET_NUM` decimal(10,0) NOT NULL COMMENT 'DO点个数', - `OFFSET_NO1` varchar(48) DEFAULT NULL COMMENT 'DO点号1', - `OFFSET_NO2` varchar(48) DEFAULT NULL COMMENT 'DO点号2', - `OFFSET_NO3` varchar(48) DEFAULT NULL COMMENT 'DO点号3', - `OFFSET_NO4` varchar(48) DEFAULT NULL COMMENT 'DO点号4', - `OFFSET_NO5` varchar(48) DEFAULT NULL COMMENT 'DO点号5', - `CTRL_ALIAS` varchar(128) DEFAULT NULL COMMENT '遥控别名', - `IS_CHECK_PREVENTION` decimal(10,0) DEFAULT NULL COMMENT '是否五仿校验', - `POINT_TP_NAME` varchar(64) DEFAULT NULL COMMENT '点模板名', - PRIMARY KEY (`TAG_NAME`), - KEY `IN_DIGITAL_CONTROL` (`RTU_TAG`,`OFFSET_NO1`,`OFFSET_NO2`,`OFFSET_NO3`,`OFFSET_NO4`,`OFFSET_NO5`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='数字量输出参数表'; - -drop trigger if exists TIA_DIGITAL_CONTROL; -DELIMITER ;; -create trigger TIA_DIGITAL_CONTROL AFTER INSERT on digital_control for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'digital_control', 'tag_name', '', NEW.TAG_NAME, getTableSubSystem('digital_control')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TU_DIGITAL_CONTROL; -DELIMITER ;; -create trigger TU_DIGITAL_CONTROL BEFORE UPDATE on digital_control for each ROW -body:BEGIN - - #修改功能名称 - IF COALESCE(NEW.RTU_TAG,'') = '' THEN - BEGIN - SET NEW.OFFSET_NO1 = '-1'; - SET NEW.OFFSET_NO2 = '-1'; - SET NEW.OFFSET_NO3 = '-1'; - SET NEW.OFFSET_NO4 = '-1'; - SET NEW.OFFSET_NO5 = '-1'; - END; - END IF; - -END;; -DELIMITER ; - -drop trigger if exists TUA_DIGITAL_CONTROL; -DELIMITER ;; -create trigger TUA_DIGITAL_CONTROL AFTER UPDATE on digital_control for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'digital_control', 'tag_name', OLD.TAG_NAME, NEW.TAG_NAME, getTableSubSystem('digital_control')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_DIGITAL_CONTROL; -DELIMITER ;; -create trigger TDA_DIGITAL_CONTROL AFTER DELETE on digital_control for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'digital_control', 'tag_name', OLD.TAG_NAME, '', getTableSubSystem('digital_control')); -END IF; -END;; -DELIMITER ; - -drop table if exists digital_map_to_fes; -CREATE TABLE `digital_map_to_fes` ( - `KEY_ID_TAG` varchar(128) NOT NULL COMMENT '标签名(表名.测点标签)', - `LOCATION_ID` decimal(10,0) DEFAULT NULL COMMENT '所属车站', - `SUB_SYSTEM` decimal(10,0) DEFAULT NULL COMMENT '所属专业', - `DEV_TYPE` decimal(10,0) DEFAULT NULL COMMENT '设备类型', - `POINT_TP_NAME` varchar(64) DEFAULT NULL COMMENT '点模板名', - `RTU_TAG` varchar(64) DEFAULT NULL COMMENT '前置RTU标签', - `VALUE_NUM` decimal(10,0) DEFAULT NULL COMMENT '分量数', - `DOT_NO1` varchar(48) DEFAULT NULL COMMENT '前置点号-分量1', - `DOT_NO2` varchar(48) DEFAULT NULL COMMENT '前置点号-分量1', - `DOT_NO3` varchar(48) DEFAULT NULL COMMENT '前置点号-分量3', - `DOT_NO4` varchar(48) DEFAULT NULL COMMENT '前置点号-分量4', - `DOT_NO5` varchar(48) DEFAULT NULL COMMENT '前置点号-分量5', - `IS_FILTER_ERR` decimal(10,0) DEFAULT NULL COMMENT '是否过滤错误DI', - `IS_FILTER_DISTURB` decimal(10,0) DEFAULT NULL COMMENT '是否过滤抖动', - `DISTURB_TIME` decimal(10,0) DEFAULT NULL COMMENT '抖动时间限', - `POLARITY` decimal(10,0) DEFAULT NULL COMMENT '极性', - `DESCRIPTION` varchar(128) DEFAULT NULL, - PRIMARY KEY (`KEY_ID_TAG`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='数字量前置映射表'; - -drop trigger if exists TI_DIGITAL_MAP_TO_FES; -DELIMITER ;; -create trigger TI_DIGITAL_MAP_TO_FES AFTER INSERT on digital_map_to_fes for each ROW -BEGIN - SET @disableFesDigitalTrigger = 1; - - IF COALESCE(@disableDigitalMapToFesTrigger,0) = 0 THEN - BEGIN - IF COALESCE(NEW.RTU_TAG,'') <> '' THEN - BEGIN - IF COALESCE(NEW.DOT_NO1,'') <> '' THEN - UPDATE fes_digital SET - APP_TABLE_NAME=getBeforeFirstDot(NEW.KEY_ID_TAG), - APP_TAG_NAME=getAfterFirstDot(NEW.KEY_ID_TAG), - APP_COLUMN_NAME='value1' - WHERE TAG_NAME = concat(NEW.RTU_TAG,'.',NEW.DOT_NO1); - END IF; - - IF COALESCE(NEW.DOT_NO2,'') <> '' THEN - UPDATE fes_digital SET - APP_TABLE_NAME=getBeforeFirstDot(NEW.KEY_ID_TAG), - APP_TAG_NAME=getAfterFirstDot(NEW.KEY_ID_TAG), - APP_COLUMN_NAME='value2' - WHERE TAG_NAME = concat(NEW.RTU_TAG,'.',NEW.DOT_NO2); - END IF; - - IF COALESCE(NEW.DOT_NO3,'') <> '' THEN - UPDATE fes_digital SET - APP_TABLE_NAME=getBeforeFirstDot(NEW.KEY_ID_TAG), - APP_TAG_NAME=getAfterFirstDot(NEW.KEY_ID_TAG), - APP_COLUMN_NAME='value3' - WHERE TAG_NAME = concat(NEW.RTU_TAG,'.',NEW.DOT_NO3); - END IF; - - IF COALESCE(NEW.DOT_NO4,'') <> '' THEN - UPDATE fes_digital SET - APP_TABLE_NAME=getBeforeFirstDot(NEW.KEY_ID_TAG), - APP_TAG_NAME=getAfterFirstDot(NEW.KEY_ID_TAG), - APP_COLUMN_NAME='value4' - WHERE TAG_NAME = concat(NEW.RTU_TAG,'.',NEW.DOT_NO4); - END IF; - - IF COALESCE(NEW.DOT_NO5,'') <> '' THEN - UPDATE fes_digital SET - APP_TABLE_NAME=getBeforeFirstDot(NEW.KEY_ID_TAG), - APP_TAG_NAME=getAfterFirstDot(NEW.KEY_ID_TAG), - APP_COLUMN_NAME='value5' - WHERE TAG_NAME = concat(NEW.RTU_TAG,'.',NEW.DOT_NO5); - END IF; - - END; - END IF; - END; - END IF; - SET @disableFesDigitalTrigger = 0; -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'digital_map_to_fes', 'key_id_tag', '', NEW.KEY_ID_TAG, getTableSubSystem('digital_map_to_fes')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TU_DIGITAL_MAP_TO_FES; -DELIMITER ;; -create trigger TU_DIGITAL_MAP_TO_FES BEFORE UPDATE on digital_map_to_fes for each ROW -body_label: BEGIN - - IF NEW.RTU_TAG = OLD.RTU_TAG AND - NEW.DOT_NO1 = OLD.DOT_NO1 AND - NEW.DOT_NO2 = OLD.DOT_NO2 AND - NEW.DOT_NO3 = OLD.DOT_NO3 AND - NEW.DOT_NO4 = OLD.DOT_NO4 AND - NEW.DOT_NO5 = OLD.DOT_NO5 AND - NEW.KEY_ID_TAG = OLD.KEY_ID_TAG - THEN LEAVE body_label; - END IF; - - SET @disableFesDigitalTrigger = 1; - - IF COALESCE(@disableDigitalMapToFesTrigger,0) = 0 THEN - BEGIN - - IF COALESCE(OLD.RTU_TAG,'') <> '' THEN - BEGIN - IF COALESCE(OLD.DOT_NO1,'') <> '' THEN - UPDATE fes_digital SET - APP_TABLE_NAME='', - APP_TAG_NAME='', - APP_COLUMN_NAME='' - WHERE TAG_NAME=concat(OLD.RTU_TAG,'.',OLD.DOT_NO1); - END IF; - - IF COALESCE(OLD.DOT_NO2,'') <> '' THEN - UPDATE fes_digital SET - APP_TABLE_NAME='', - APP_TAG_NAME='', - APP_COLUMN_NAME='' - WHERE TAG_NAME=concat(OLD.RTU_TAG,'.',OLD.DOT_NO2); - END IF; - - IF COALESCE(OLD.DOT_NO3,'') <> '' THEN - UPDATE fes_digital SET - APP_TABLE_NAME='', - APP_TAG_NAME='', - APP_COLUMN_NAME='' - WHERE TAG_NAME=concat(OLD.RTU_TAG,'.',OLD.DOT_NO3); - END IF; - - IF COALESCE(OLD.DOT_NO4,'') <> '' THEN - UPDATE fes_digital SET - APP_TABLE_NAME='', - APP_TAG_NAME='', - APP_COLUMN_NAME='' - WHERE TAG_NAME=concat(OLD.RTU_TAG,'.',OLD.DOT_NO4); - END IF; - - IF COALESCE(OLD.DOT_NO5,'') <> '' THEN - UPDATE fes_digital SET - APP_TABLE_NAME='', - APP_TAG_NAME='', - APP_COLUMN_NAME='' - WHERE TAG_NAME=concat(OLD.RTU_TAG,'.',OLD.DOT_NO5); - END IF; - - END; - END IF; - - - IF COALESCE(NEW.RTU_TAG,'') <> '' THEN - BEGIN - IF COALESCE(NEW.DOT_NO1,'') <> '' THEN - UPDATE fes_digital SET - APP_TABLE_NAME=getBeforeFirstDot(NEW.KEY_ID_TAG), - APP_TAG_NAME=getAfterFirstDot(NEW.KEY_ID_TAG), - APP_COLUMN_NAME='value1' - WHERE TAG_NAME=concat(NEW.RTU_TAG,'.',NEW.DOT_NO1); - END IF; - - IF COALESCE(NEW.DOT_NO2,'') <> '' THEN - UPDATE fes_digital SET - APP_TABLE_NAME=getBeforeFirstDot(NEW.KEY_ID_TAG), - APP_TAG_NAME=getAfterFirstDot(NEW.KEY_ID_TAG), - APP_COLUMN_NAME='value2' - WHERE TAG_NAME=concat(NEW.RTU_TAG,'.',NEW.DOT_NO2); - END IF; - - IF COALESCE(NEW.DOT_NO3,'') <> '' THEN - UPDATE fes_digital SET - APP_TABLE_NAME=getBeforeFirstDot(NEW.KEY_ID_TAG), - APP_TAG_NAME=getAfterFirstDot(NEW.KEY_ID_TAG), - APP_COLUMN_NAME='value3' - WHERE TAG_NAME=concat(NEW.RTU_TAG,'.',NEW.DOT_NO3); - END IF; - - IF COALESCE(NEW.DOT_NO4,'') <> '' THEN - UPDATE fes_digital SET - APP_TABLE_NAME=getBeforeFirstDot(NEW.KEY_ID_TAG), - APP_TAG_NAME=getAfterFirstDot(NEW.KEY_ID_TAG), - APP_COLUMN_NAME='value4' - WHERE TAG_NAME=concat(NEW.RTU_TAG,'.',NEW.DOT_NO4); - END IF; - - IF COALESCE(NEW.DOT_NO5,'') <> '' THEN - UPDATE fes_digital SET - APP_TABLE_NAME=getBeforeFirstDot(NEW.KEY_ID_TAG), - APP_TAG_NAME=getAfterFirstDot(NEW.KEY_ID_TAG), - APP_COLUMN_NAME='value5' - WHERE TAG_NAME=concat(NEW.RTU_TAG,'.',NEW.DOT_NO5); - END IF; - - END; - ELSE - BEGIN - SET NEW.DOT_NO1 = '-1'; - SET NEW.DOT_NO2 = '-1'; - SET NEW.DOT_NO3 = '-1'; - SET NEW.DOT_NO4 = '-1'; - SET NEW.DOT_NO5 = '-1'; - END; - END IF; - END; - END IF; - SET @disableFesDigitalTrigger = 0; -END;; -DELIMITER ; - -drop trigger if exists TUA_DIGITAL_MAP_TO_FES; -DELIMITER ;; -create trigger TUA_DIGITAL_MAP_TO_FES AFTER UPDATE on digital_map_to_fes for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'digital_map_to_fes', 'key_id_tag', OLD.KEY_ID_TAG, NEW.KEY_ID_TAG, getTableSubSystem('digital_map_to_fes')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TD_DIGITAL_MAP_TO_FES; -DELIMITER ;; -create trigger TD_DIGITAL_MAP_TO_FES BEFORE DELETE on digital_map_to_fes for each ROW -BEGIN - SET @disableFesDigitalTrigger = 1; - - IF COALESCE(@disableDigitalMapToFesTrigger,0) = 0 THEN - BEGIN - IF COALESCE(OLD.RTU_TAG,'') <> '' THEN - BEGIN - IF COALESCE(OLD.DOT_NO1,'') <> '' THEN - UPDATE fes_digital SET - APP_TABLE_NAME='', - APP_TAG_NAME='', - APP_COLUMN_NAME='' - WHERE TAG_NAME = concat(OLD.RTU_TAG,'.',OLD.DOT_NO1); - END IF; - - IF COALESCE(OLD.DOT_NO2,'') <> '' THEN - UPDATE fes_digital SET - APP_TABLE_NAME='', - APP_TAG_NAME='', - APP_COLUMN_NAME='' - WHERE TAG_NAME = concat(OLD.RTU_TAG,'.',OLD.DOT_NO2); - END IF; - - IF COALESCE(OLD.DOT_NO3,'') <> '' THEN - UPDATE fes_digital SET - APP_TABLE_NAME='', - APP_TAG_NAME='', - APP_COLUMN_NAME='' - WHERE TAG_NAME = concat(OLD.RTU_TAG,'.',OLD.DOT_NO3); - END IF; - - IF COALESCE(OLD.DOT_NO4,'') <> '' THEN - UPDATE fes_digital SET - APP_TABLE_NAME='', - APP_TAG_NAME='', - APP_COLUMN_NAME='' - WHERE TAG_NAME = concat(OLD.RTU_TAG,'.',OLD.DOT_NO4); - END IF; - - IF COALESCE(OLD.DOT_NO5,'') <> '' THEN - UPDATE fes_digital SET - APP_TABLE_NAME='', - APP_TAG_NAME='', - APP_COLUMN_NAME='' - WHERE TAG_NAME = concat(OLD.RTU_TAG,'.',OLD.DOT_NO5); - END IF; - - END; - END IF; - END; - END IF; - - SET @disableFesDigitalTrigger = 0; -END;; -DELIMITER ; - -drop trigger if exists TDA_DIGITAL_MAP_TO_FES; -DELIMITER ;; -create trigger TDA_DIGITAL_MAP_TO_FES AFTER DELETE on digital_map_to_fes for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'digital_map_to_fes', 'key_id_tag', OLD.KEY_ID_TAG, '', getTableSubSystem('digital_map_to_fes')); -END IF; -END;; -DELIMITER ; - -drop table if exists digital_temp_define; -CREATE TABLE `digital_temp_define` ( - `TAG_NAME` varchar(64) NOT NULL COMMENT '标签名', - `DESCRIPTION` varchar(128) NOT NULL COMMENT '描述', - `DEV_TP_NAME` varchar(64) NOT NULL COMMENT '设备模板名称', - `SEQ_NO` decimal(10,0) DEFAULT NULL COMMENT '序号', - `POINT_TYPE` decimal(10,0) DEFAULT NULL COMMENT '点类型', - `POINT_CLASS` decimal(10,0) DEFAULT NULL COMMENT '点类别', - `POINT_PROPERTY` decimal(10,0) DEFAULT NULL COMMENT '点列表', - `POINT_SORT` decimal(10,0) DEFAULT NULL COMMENT '测点种类 ', - `STATE_TEXT_NAME` varchar(64) DEFAULT NULL COMMENT '数字量文本名', - `VALUE_NUM` decimal(10,0) DEFAULT NULL COMMENT '分量数', - `ALARM_PRIORITY` decimal(10,0) DEFAULT NULL COMMENT '变位告警优先级', - `ALARM_PRIORITY_SOE` decimal(10,0) DEFAULT NULL COMMENT 'SOE告警优先级', - `ALARM_DELAY_TIME` decimal(10,0) DEFAULT NULL COMMENT '告警延时时间', - `INPUT_DELAY_TIME` decimal(10,0) DEFAULT NULL COMMENT '多位延迟时间', - `IS_WATER_ALM` decimal(10,0) DEFAULT NULL COMMENT '是否流水账', - `IS_ACK_ON_RTN` decimal(10,0) DEFAULT NULL COMMENT '是否返回自动确认', - `DEL_ACT_ON_ACK` decimal(10,0) DEFAULT NULL COMMENT '确认后删除动作', - `IS_NEVER_ALM_ON_RTN` decimal(10,0) DEFAULT NULL COMMENT '是否返回不上窗', - `IS_SUMMARY` decimal(10,0) DEFAULT NULL COMMENT '是否摘要', - `IS_SAMPLE` decimal(10,0) DEFAULT NULL COMMENT '是否采样', - `IS_STATISTICS` decimal(10,0) DEFAULT NULL COMMENT '是否统计', - `SAMPLE_PERIOD` decimal(10,0) DEFAULT NULL, - `FILTER_ERR` decimal(10,0) DEFAULT NULL COMMENT '是否过滤误DI', - `FILTER_DISTURB` decimal(10,0) DEFAULT NULL COMMENT '是否过滤误抖动', - `DISTURB_TIME` decimal(10,0) DEFAULT NULL COMMENT '抖动时限', - `POLARITY` decimal(10,0) DEFAULT NULL COMMENT '极性', - `IS_CONTROL` decimal(10,0) DEFAULT NULL COMMENT '是否控制', - `CTRL_ACT_NAME` varchar(64) DEFAULT NULL COMMENT '控制动作组名', - `CTRL_TYPE` decimal(10,0) DEFAULT NULL COMMENT '是否遥控选择', - `IS_TAGT_STATE` decimal(10,0) DEFAULT NULL COMMENT '是否等待目标状态', - `CTRL_TIMEOUT` decimal(10,0) DEFAULT NULL COMMENT '控制超时时间', - `RESV_TIMEOUT` decimal(10,0) DEFAULT NULL COMMENT '控制保留时间', - `PULSE_DURATION` decimal(10,0) DEFAULT NULL COMMENT '脉冲保持时间', - `OFFSET_NUM` decimal(10,0) DEFAULT NULL COMMENT 'DO点个数', - `IS_ALARM_FREQ` decimal(10,0) DEFAULT NULL COMMENT '是否告警计次', - `ALARM_FREQ` decimal(10,0) DEFAULT NULL COMMENT '设定告警计次', - `ALARM_FREQ_DESC` varchar(64) DEFAULT NULL COMMENT '计次告警描述', - `IS_ALARM_TIME` decimal(10,0) DEFAULT NULL COMMENT '是否告警计时', - `ALARM_TIME` decimal(10,0) DEFAULT NULL COMMENT '设定告警计时(秒)', - `ALARM_TIME_DESC` varchar(64) DEFAULT NULL COMMENT '计时告警描述', - `IS_CHECK_PREVENTION` decimal(10,0) DEFAULT NULL COMMENT '是否五防校验', - `ALARM_FREQ_RANGE` decimal(10,0) DEFAULT NULL COMMENT '计次告警事件范围(秒)', - `SEC_DEV_IN_GRP` decimal(10,0) DEFAULT NULL COMMENT '二次设备在设备组内序号', - `SEC_DEVTP_NAME` varchar(64) DEFAULT NULL COMMENT '二次设备模板名', - `SEC_SEQ_NO1` decimal(10,0) DEFAULT NULL COMMENT '输入点号1', - `SEC_SEQ_NO2` decimal(10,0) DEFAULT NULL COMMENT '输入点号2', - `SEC_SEQ_NO3` decimal(10,0) DEFAULT NULL COMMENT '输入点号3', - `SEC_SEQ_NO4` decimal(10,0) DEFAULT NULL COMMENT '输入点号4', - `SEC_SEQ_NO5` decimal(10,0) DEFAULT NULL COMMENT '输入点号5', - `OUT_SEC_SEQ_NO1` decimal(10,0) DEFAULT NULL COMMENT '输出点号1', - `OUT_SEC_SEQ_NO2` decimal(10,0) DEFAULT NULL COMMENT '输出点号2', - `OUT_SEC_SEQ_NO3` decimal(10,0) DEFAULT NULL COMMENT '输出点号3', - `OUT_SEC_SEQ_NO4` decimal(10,0) DEFAULT NULL COMMENT '输出点号4', - `OUT_SEC_SEQ_NO5` decimal(10,0) DEFAULT NULL COMMENT '输出点号5', - `KEY_VALUE` decimal(10,0) DEFAULT NULL COMMENT '关键数据标志', - PRIMARY KEY (`TAG_NAME`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -drop trigger if exists TI_DIGITAL_TEMP_DEFINE; -DELIMITER ;; -create trigger TI_DIGITAL_TEMP_DEFINE AFTER INSERT on digital_temp_define for each ROW -BEGIN - -/* -INSERT INTO digital( -TAG_NAME, DESCRIPTION, DEVICE, SEQ_NO, LOCATION_ID, SUB_SYSTEM, RTU_TAG, IS_CONTROL, STATE_TEXT_NAME, VALUE_NUM, GRAY, CONTRAST, QCOLOR, VALUE, STATUS, LAST_UPDATE_TIME, VALUE1, STATUS1, LAST_CHANGE_TIME1, VALUE2, STATUS2, LAST_CHANGE_TIME2, VALUE3, STATUS3, LAST_CHANGE_TIME3, VALUE4, STATUS4, LAST_CHANGE_TIME4, VALUE5, STATUS5, LAST_CHANGE_TIME5, ALARM_PRIORITY, PIC_NAME, SOUND_NAME1, SOUND_NAME2, SOUND_NAME3, ALARM_DELAY_TIME, INPUT_DELAY_TIME, IS_WATER_ALM, IS_ACK_ON_RTN, DEL_ACT_ON_ACK, IS_NEVER_ALM_ON_RTN, REGION_ID, OPT_HANDOVER_GROUP, IS_SUMMARY, SUMMARY_VALUE, SUMMARY_STATUS, DEV_TYPE, POINT_TP_NAME, IS_SAMPLE, IS_STATISTICS, SAMPLE_PERIOD, IS_ALARM_FREQ, ALARM_FREQ, ALARM_FREQ_DESC, IS_ALARM_TIME, ALARM_TIME, ALARM_TIME_DESC, ALARM_FREQ_RANGE, INFER_NAME, POINT_TYPE, POINT_CLASS, POINT_PROPERTY, POINT_SORT, CAMERA_TAG, PRESET_ID ) -SELECT -concat(TAG_NAME, '.' , getAfterLastDot(NEW.TAG_NAME)),NEW.DESCRIPTION,TAG_NAME,NEW.SEQ_NO,LOCATION_ID, SUB_SYSTEM, "", NEW.IS_CONTROL, NEW.STATE_TEXT_NAME,NEW.VALUE_NUM,GRAY, CONTRAST, QCOLOR, VALUE, STATUS, '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', NEW.ALARM_PRIORITY, '', '', '', '', NEW.ALARM_DELAY_TIME,NEW.INPUT_DELAY_TIME,NEW.IS_WATER_ALM,NEW.IS_ACK_ON_RTN,NEW.DEL_ACT_ON_ACK,NEW.IS_NEVER_ALM_ON_RTN,REGION_ID, OPT_HANDOVER_GROUP, IS_SUMMARY, SUMMARY_VALUE, SUMMARY_STATUS, DEV_TYPE, NEW.TAG_NAME, NEW.IS_SAMPLE,NEW.IS_STATISTICS,NEW.SAMPLE_PERIOD,NEW.IS_ALARM_FREQ,NEW.ALARM_FREQ,NEW.ALARM_FREQ_DESC,NEW.IS_ALARM_TIME,NEW.ALARM_TIME,NEW.ALARM_TIME_DESC,NEW.ALARM_FREQ_RANGE,'', NEW.POINT_TYPE,NEW.POINT_CLASS,NEW.POINT_PROPERTY,NEW.POINT_SORT, '', '' -FROM dev_info WHERE DEV_TP_NAME = NEW.DEV_TP_NAME; -*/ - INSERT INTO temp_plugin_point_map_dig - (PLUGIN_NAME, TEMP_NAME, TEMP_POINT_NAME, FES_TEMP_NAME, FES_TEMP_POINT_NAME1, FES_TEMP_POINT_NAME2, FES_TEMP_POINT_NAME3, FES_TEMP_POINT_NAME4, FES_TEMP_POINT_NAME5, FES_TEMP_OUT_NAME1, FES_TEMP_OUT_NAME2, FES_TEMP_OUT_NAME3, FES_TEMP_OUT_NAME4, FES_TEMP_OUT_NAME5) - SELECT - PLUGIN_NAME, TEMP_NAME, getAfterLastDot(NEW.TAG_NAME),'', '', '', '', '', '', '', '', '', '', '' - FROM temp_plugin_dev_map WHERE TEMP_NAME = NEW.DEV_TP_NAME; - - -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'digital_temp_define', 'tag_name', '', NEW.TAG_NAME, getTableSubSystem('digital_temp_define')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TU_DIGITAL_TEMP_DEFINE; -DELIMITER ;; -create trigger TU_DIGITAL_TEMP_DEFINE AFTER UPDATE on digital_temp_define for each ROW -BEGIN - /* - UPDATE digital SET - TAG_NAME = concat(DEVICE, '.', getAfterLastDot(NEW.TAG_NAME)), - DESCRIPTION = NEW.DESCRIPTION, - SEQ_NO = NEW.SEQ_NO, - IS_CONTROL = NEW.IS_CONTROL, - STATE_TEXT_NAME = NEW.STATE_TEXT_NAME, - VALUE_NUM = NEW.VALUE_NUM, - ALARM_PRIORITY = NEW.ALARM_PRIORITY, - ALARM_DELAY_TIME = NEW.ALARM_DELAY_TIME, - INPUT_DELAY_TIME = NEW.INPUT_DELAY_TIME, - IS_WATER_ALM = NEW.IS_WATER_ALM, - IS_ACK_ON_RTN = NEW.IS_ACK_ON_RTN, - DEL_ACT_ON_ACK = NEW.DEL_ACT_ON_ACK, - IS_NEVER_ALM_ON_RTN = NEW.IS_NEVER_ALM_ON_RTN, - IS_SUMMARY = NEW.IS_SUMMARY, - POINT_TP_NAME = NEW.TAG_NAME, - IS_SAMPLE = NEW.IS_SAMPLE, - IS_STATISTICS = NEW.IS_STATISTICS, - SAMPLE_PERIOD = NEW.SAMPLE_PERIOD, - IS_ALARM_FREQ = NEW.IS_ALARM_FREQ, - ALARM_FREQ = NEW.ALARM_FREQ, - ALARM_FREQ_DESC = NEW.ALARM_FREQ_DESC, - IS_ALARM_TIME = NEW.IS_ALARM_TIME, - ALARM_TIME = NEW.ALARM_TIME, - ALARM_TIME_DESC = NEW.ALARM_TIME_DESC, - ALARM_FREQ_RANGE = NEW.ALARM_FREQ_RANGE, - POINT_TYPE = NEW.POINT_TYPE, - POINT_CLASS = NEW.POINT_CLASS, - POINT_PROPERTY = NEW.POINT_PROPERTY, - POINT_SORT = NEW.POINT_SORT - WHERE POINT_TP_NAME=OLD.TAG_NAME ; - UPDATE digital_control SET - CTRL_ACT_NAME = NEW.CTRL_ACT_NAME, - IS_TAGT_STATE = NEW.IS_TAGT_STATE, - CTRL_TIMEOUT = NEW.CTRL_TIMEOUT, - RESV_TIMEOUT = NEW.RESV_TIMEOUT, - PULSE_DURATION = NEW.PULSE_DURATION, - OFFSET_NUM = NEW.OFFSET_NUM, - IS_CHECK_PREVENTION = NEW.IS_CHECK_PREVENTION, - CTRL_TYPE = NEW.CTRL_TYPE, - POINT_TP_NAME = NEW.TAG_NAME - WHERE POINT_TP_NAME = OLD.TAG_NAME; - */ - - IF NEW.TAG_NAME <> OLD.TAG_NAME THEN - UPDATE temp_plugin_point_map_dig - SET TEMP_POINT_NAME = getAfterLastDot(NEW.TAG_NAME) - WHERE TEMP_NAME = OLD.DEV_TP_NAME AND TEMP_POINT_NAME = getAfterLastDot(OLD.TAG_NAME); - END IF; - - -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'digital_temp_define', 'tag_name', OLD.TAG_NAME, NEW.TAG_NAME, getTableSubSystem('digital_temp_define')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TD_DIGITAL_TEMP_DEFINE; -DELIMITER ;; -create trigger TD_DIGITAL_TEMP_DEFINE BEFORE DELETE on digital_temp_define for each ROW -BEGIN - DELETE FROM temp_plugin_point_map_dig WHERE TEMP_NAME = OLD.DEV_TP_NAME AND TEMP_POINT_NAME = getAfterLastDot(OLD.TAG_NAME); -/* -DELETE FROM digital WHERE POINT_TP_NAME = OLD.TAG_NAME; -*/ -END;; -DELIMITER ; - -drop trigger if exists TDA_DIGITAL_TEMP_DEFINE; -DELIMITER ;; -create trigger TDA_DIGITAL_TEMP_DEFINE AFTER DELETE on digital_temp_define for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'digital_temp_define', 'tag_name', OLD.TAG_NAME, '', getTableSubSystem('digital_temp_define')); -END IF; -END;; -DELIMITER ; - -drop table if exists duty_define; -CREATE TABLE `duty_define` ( - `ID` decimal(10,0) NOT NULL COMMENT 'ID', - `NAME` varchar(32) DEFAULT NULL COMMENT '排班定义名称', - `START_TIME` varchar(32) DEFAULT NULL COMMENT '开始时间', - `END_TIME` varchar(32) DEFAULT NULL COMMENT '结束时间', - PRIMARY KEY (`ID`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='排班定义'; - -drop table if exists duty_info; -CREATE TABLE `duty_info` ( - `ID` decimal(10,0) NOT NULL COMMENT '编号', - `GROUP_NAME` varchar(64) NOT NULL COMMENT '值班组名', - `USERS` varchar(256) NOT NULL COMMENT '值班成员', - `USERS_STATUS` varchar(128) NOT NULL COMMENT '成员签到状态', - `START_TIME` varchar(32) NOT NULL COMMENT '开始时间', - `END_TIME` varchar(32) DEFAULT NULL COMMENT '结束时间', - `NOTE1` varchar(1024) DEFAULT NULL COMMENT '当班处理问题', - `NOTE2` varchar(1024) DEFAULT NULL COMMENT '当班遗留问题', - `NOTE3` varchar(1024) DEFAULT NULL COMMENT '关键信息备注', - PRIMARY KEY (`ID`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='交接班信息表'; - -drop table if exists duty_setting; -CREATE TABLE `duty_setting` ( - `DATE` varchar(32) DEFAULT NULL COMMENT '日期', - `DUTY_DEFINE_ID` decimal(10,0) DEFAULT NULL COMMENT '排班定义id', - `USERS` varchar(256) DEFAULT NULL COMMENT '用户集合' -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='排班设置'; - -drop table if exists event_task_link; -CREATE TABLE `event_task_link` ( - `EVENT_UUID_BASE64` varchar(23) NOT NULL COMMENT '事件的uuid-base64', - `TASK_GRP_UUID` varchar(37) NOT NULL COMMENT '作业组的uuid', - `TASK_PLAN_UUID` varchar(37) NOT NULL COMMENT '作业组计划的uuid', - `TASK_METHOD` decimal(10,0) NOT NULL COMMENT '创建方式,1是自动,2是手动', - PRIMARY KEY (`EVENT_UUID_BASE64`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='告警作业组关联表'; - -drop table if exists fault_recall_cond_def; -CREATE TABLE `fault_recall_cond_def` ( - `TRIGGER_TAG_NAME` varchar(64) NOT NULL COMMENT '触发器唯一标识', - `LOCATION_ID` decimal(10,0) NOT NULL COMMENT '所属位置(车站)', - `SUB_SYSTEM` decimal(10,0) DEFAULT NULL COMMENT '所属专业', - `MINUTES_BEFORE` decimal(10,0) DEFAULT NULL COMMENT '事故前记录分钟数(默认2)', - `MINUTES_AFTER` decimal(10,0) DEFAULT NULL COMMENT '事故后记录分钟数(默认3)', - `REPLAY_FIRST_PIC` varchar(64) DEFAULT NULL COMMENT '反演首画面', - PRIMARY KEY (`TRIGGER_TAG_NAME`,`LOCATION_ID`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='事故追忆触发条件配置'; - -drop trigger if exists TIA_FAULT_RECALL_COND_DEF; -DELIMITER ;; -create trigger TIA_FAULT_RECALL_COND_DEF AFTER INSERT on fault_recall_cond_def for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'fault_recall_cond_def', 'location_id,trigger_tag_name', '', concat(NEW.LOCATION_ID,',',NEW.TRIGGER_TAG_NAME), getTableSubSystem('fault_recall_cond_def')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_FAULT_RECALL_COND_DEF; -DELIMITER ;; -create trigger TUA_FAULT_RECALL_COND_DEF AFTER UPDATE on fault_recall_cond_def for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'fault_recall_cond_def', 'location_id,trigger_tag_name', concat(OLD.LOCATION_ID,',',OLD.TRIGGER_TAG_NAME), concat(NEW.LOCATION_ID,',',NEW.TRIGGER_TAG_NAME), getTableSubSystem('fault_recall_cond_def')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_FAULT_RECALL_COND_DEF; -DELIMITER ;; -create trigger TDA_FAULT_RECALL_COND_DEF AFTER DELETE on fault_recall_cond_def for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'fault_recall_cond_def', 'location_id,trigger_tag_name', concat(OLD.LOCATION_ID,',',OLD.TRIGGER_TAG_NAME), '', getTableSubSystem('fault_recall_cond_def')); -END IF; -END;; -DELIMITER ; - -drop table if exists fault_recall_record; -CREATE TABLE `fault_recall_record` ( - `LOCATION_ID` decimal(10,0) NOT NULL COMMENT '所属位置(车站)', - `SUB_SYSTEM` decimal(10,0) DEFAULT NULL COMMENT '所属专业', - `NAME` varchar(128) NOT NULL COMMENT '事故追忆记录名称', - `TIME_BEGING` decimal(20,0) NOT NULL COMMENT '开始时间', - `TIME_END` decimal(20,0) NOT NULL COMMENT '结束时间', - `REPLAY_FIRST_PIC` varchar(64) DEFAULT NULL COMMENT '反演播放首画面', - PRIMARY KEY (`LOCATION_ID`,`NAME`,`TIME_BEGING`,`TIME_END`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='事故追忆记录'; - -drop table if exists fes_accuml; -CREATE TABLE `fes_accuml` ( - `TAG_NAME` varchar(64) NOT NULL COMMENT '标签名', - `LOCATION_ID` decimal(10,0) DEFAULT NULL, - `SUB_SYSTEM` decimal(10,0) DEFAULT NULL COMMENT '所属应用', - `DOT_NO` decimal(10,0) NOT NULL COMMENT '点号', - `DESCRIPTION` varchar(128) DEFAULT NULL, - `UNIT_ID` decimal(10,0) DEFAULT NULL COMMENT '单位ID', - `RTU_TAG` varchar(64) NOT NULL COMMENT 'RTU标签', - `DEV_TAG` varchar(64) DEFAULT NULL, - `SEQ_NO` decimal(10,0) DEFAULT NULL COMMENT '顺序号', - `APP_TABLE_NAME` varchar(32) DEFAULT NULL COMMENT '后台应用表名', - `APP_TAG_NAME` varchar(64) DEFAULT NULL COMMENT '后台标签名', - `APP_COLUMN_NAME` varchar(16) DEFAULT NULL COMMENT '后台列名', - `BASE` decimal(22,6) NOT NULL COMMENT '基值', - `COEFF` decimal(22,6) NOT NULL COMMENT '系数', - `RTU_NO` decimal(10,0) NOT NULL, - `RES_PARA_INT1` decimal(10,0) DEFAULT NULL, - `RES_PARA_INT2` decimal(10,0) DEFAULT NULL, - `RES_PARA_INT3` decimal(10,0) DEFAULT NULL, - `RES_PARA_INT4` decimal(10,0) DEFAULT NULL, - `FES_POINT_TP_NAME` varchar(64) DEFAULT NULL, - `PATH61850` varchar(64) DEFAULT NULL, - `POSITION61850` decimal(10,0) DEFAULT NULL, - `RES_PARA_INT5` decimal(10,0) DEFAULT NULL, - `RES_PARA_INT6` decimal(10,0) DEFAULT NULL, - `RES_PARA_INT7` decimal(10,0) DEFAULT NULL, - `RES_PARA_INT8` decimal(10,0) DEFAULT NULL, - `RES_PARA_STR1` varchar(64) DEFAULT NULL, - `RES_PARA_STR2` varchar(256) DEFAULT NULL, - PRIMARY KEY (`TAG_NAME`), - KEY `IN_FES_ACCUML` (`DOT_NO`,`RTU_TAG`,`DEV_TAG`,`FES_POINT_TP_NAME`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='前置累计量参数表'; - -drop trigger if exists TI_FES_ACCUML; -DELIMITER ;; -create trigger TI_FES_ACCUML AFTER INSERT on fes_accuml for each ROW -BEGIN - #首先禁止MAP_TO_FES触发器动作 - SET @disableAccumlMapToFesTrigger = 1; - #然后询问自己是否已经被禁止 - IF COALESCE(@disableFesAccumlTrigger,0) = 0 THEN - BEGIN - - IF COALESCE(NEW.APP_TABLE_NAME,'')<>'' AND COALESCE(NEW.APP_TAG_NAME,'')<>'' AND COALESCE(NEW.APP_COLUMN_NAME,'')<>'' THEN - BEGIN - UPDATE accuml_map_to_fes SET - RTU_TAG = NEW.RTU_TAG, - DOT_NO = NEW.DOT_NO - WHERE KEY_ID_TAG = concat(NEW.APP_TABLE_NAME,'.', NEW.APP_TAG_NAME); - END; - END IF; - - - END; - END IF; - - SET @disableAccumlMapToFesTrigger = 0; - -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'fes_accuml', 'tag_name', '', NEW.TAG_NAME, getTableSubSystem('fes_accuml')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TU_FES_ACCUML; -DELIMITER ;; -create trigger TU_FES_ACCUML BEFORE UPDATE on fes_accuml for each ROW -body:BEGIN - IF OLD.APP_TABLE_NAME=NEW.APP_TABLE_NAME AND OLD.APP_TAG_NAME = NEW.APP_TAG_NAME AND OLD.APP_COLUMN_NAME = NEW.APP_COLUMN_NAME - AND OLD.RTU_TAG = NEW.RTU_TAG AND OLD.DOT_NO = NEW.DOT_NO - THEN LEAVE body; - END IF; - - SET @disableAccumlMapToFesTrigger = 1; - - IF COALESCE(@disableFesAccumlTrigger,0) = 0 THEN - BEGIN - #删除旧关联 - IF COALESCE(OLD.APP_TABLE_NAME,'')<>'' AND COALESCE(OLD.APP_TAG_NAME,'')<>'' AND COALESCE(OLD.APP_COLUMN_NAME,'')<>'' THEN - UPDATE accuml_map_to_fes SET - DOT_NO = '-1' - WHERE KEY_ID_TAG = concat(OLD.APP_TABLE_NAME,'.', OLD.APP_TAG_NAME); - END IF; - - #建立新关联 - IF COALESCE(NEW.APP_TABLE_NAME,'')<>'' AND COALESCE(NEW.APP_TAG_NAME,'')<>'' AND COALESCE(NEW.APP_COLUMN_NAME,'')<>'' THEN - BEGIN - UPDATE accuml_map_to_fes SET - RTU_TAG = NEW.RTU_TAG, - DOT_NO = NEW.DOT_NO - WHERE KEY_ID_TAG = concat(NEW.APP_TABLE_NAME,'.', NEW.APP_TAG_NAME); - END; - END IF; - END; - END IF; - - SET @disableAccumlMapToFesTrigger = 0; - -END;; -DELIMITER ; - -drop trigger if exists TUA_FES_ACCUML; -DELIMITER ;; -create trigger TUA_FES_ACCUML AFTER UPDATE on fes_accuml for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'fes_accuml', 'tag_name', OLD.TAG_NAME, NEW.TAG_NAME, getTableSubSystem('fes_accuml')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TD_FES_ACCUML; -DELIMITER ;; -create trigger TD_FES_ACCUML AFTER DELETE on fes_accuml for each ROW -BEGIN - SET @disableAccumlMapToFesTrigger = 1; - - IF COALESCE(@disableFesAccumlTrigger,0) = 0 THEN - BEGIN - IF COALESCE(OLD.APP_TABLE_NAME,'')<>'' AND COALESCE(OLD.APP_TAG_NAME,'')<>'' AND COALESCE(OLD.APP_COLUMN_NAME,'')<>'' THEN - UPDATE accuml_map_to_fes SET - DOT_NO = '-1' - WHERE KEY_ID_TAG = concat(OLD.APP_TABLE_NAME,'.', OLD.APP_TAG_NAME); - END IF; - - END; - END IF; - - SET @disableAccumlMapToFesTrigger = 0; - -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'fes_accuml', 'tag_name', OLD.TAG_NAME, '', getTableSubSystem('fes_accuml')); -END IF; -END;; -DELIMITER ; - -drop table if exists fes_analog; -CREATE TABLE `fes_analog` ( - `TAG_NAME` varchar(64) NOT NULL COMMENT '标签名', - `LOCATION_ID` decimal(10,0) DEFAULT NULL COMMENT '所属车站', - `SUB_SYSTEM` decimal(10,0) DEFAULT NULL COMMENT '所属专业', - `DEV_TAG` varchar(64) NOT NULL, - `SEQ_NO` decimal(10,0) NOT NULL COMMENT '设备点序号', - `RTU_TAG` varchar(64) NOT NULL COMMENT 'RTU标签', - `RTU_NO` decimal(10,0) NOT NULL, - `DOT_NO` decimal(10,0) NOT NULL COMMENT '点号/远动号', - `APP_TABLE_NAME` varchar(32) DEFAULT NULL COMMENT '后台应用表名', - `APP_TAG_NAME` varchar(64) DEFAULT NULL COMMENT '后台标签名', - `APP_COLUMN_NAME` varchar(16) DEFAULT NULL COMMENT '后台列名', - `IS_FILTER` decimal(10,0) DEFAULT NULL COMMENT '是否过滤AI突变', - `PERCENT` decimal(10,0) DEFAULT NULL COMMENT '突变百分比', - `DEADBAND_TYPE` decimal(10,0) NOT NULL COMMENT '死区类型', - `DEADBAND` decimal(22,6) NOT NULL COMMENT '死区值', - `ZEROBAND` decimal(22,6) NOT NULL COMMENT '归零死区', - `ZEROBAND_H` decimal(22,6) DEFAULT NULL COMMENT '归零死区H', - `ZEROBAND_L` decimal(22,6) DEFAULT NULL COMMENT '归零死区L', - `ZEROBAND_TYPE` decimal(10,0) DEFAULT NULL COMMENT '归零死区类型', - `BASE` decimal(22,6) NOT NULL COMMENT '基值', - `COEFF` decimal(22,6) NOT NULL COMMENT '系数', - `MAX_RANGE` decimal(22,6) DEFAULT NULL COMMENT '最大量程', - `MIN_RANGE` decimal(22,6) DEFAULT NULL COMMENT '最小量程', - `RES_PARA_INT1` decimal(10,0) DEFAULT NULL, - `RES_PARA_INT2` decimal(10,0) DEFAULT NULL, - `RES_PARA_INT3` decimal(10,0) DEFAULT NULL, - `RES_PARA_INT4` decimal(10,0) DEFAULT NULL, - `DESCRIPTION` varchar(128) NOT NULL, - `UNIT_ID` decimal(10,0) DEFAULT NULL COMMENT '单位ID', - `FES_POINT_TP_NAME` varchar(64) DEFAULT NULL, - `PATH61850` varchar(64) DEFAULT NULL, - `POSITION61850` decimal(10,0) DEFAULT NULL, - `RES_PARA_INT5` decimal(10,0) DEFAULT NULL, - `RES_PARA_INT6` decimal(10,0) DEFAULT NULL, - `RES_PARA_INT7` decimal(10,0) DEFAULT NULL, - `RES_PARA_INT8` decimal(10,0) DEFAULT NULL, - `RES_PARA_STR1` varchar(64) DEFAULT NULL, - `RES_PARA_STR2` varchar(256) DEFAULT NULL, - PRIMARY KEY (`TAG_NAME`), - KEY `IN_FES_ANALOG` (`DEV_TAG`,`RTU_TAG`,`DOT_NO`,`FES_POINT_TP_NAME`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='前置模拟量参数表'; - -drop trigger if exists TI_FES_ANALOG; -DELIMITER ;; -create trigger TI_FES_ANALOG AFTER INSERT on fes_analog for each ROW -BEGIN - #首先禁止MAP_TO_FES触发器动作 - SET @disableAnalogMapToFesTrigger = 1; - #然后询问自己是否已经被禁止 - IF COALESCE(@disableFesAnalogTrigger,0) = 0 THEN - BEGIN - - IF COALESCE(NEW.APP_TABLE_NAME,'')<>'' AND COALESCE(NEW.APP_TAG_NAME,'')<>'' AND COALESCE(NEW.APP_COLUMN_NAME,'')<>'' THEN - BEGIN - UPDATE analog_map_to_fes SET - RTU_TAG = NEW.RTU_TAG, - DOT_NO = NEW.DOT_NO - WHERE KEY_ID_TAG = concat(NEW.APP_TABLE_NAME,'.', NEW.APP_TAG_NAME); - END; - END IF; - - END; - END IF; - - SET @disableAnalogMapToFesTrigger = 0; - -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'fes_analog', 'tag_name', '', NEW.TAG_NAME, getTableSubSystem('fes_analog')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TU_FES_ANALOG; -DELIMITER ;; -create trigger TU_FES_ANALOG BEFORE UPDATE on fes_analog for each ROW -body:BEGIN - IF OLD.APP_TABLE_NAME=NEW.APP_TABLE_NAME AND OLD.APP_TAG_NAME = NEW.APP_TAG_NAME AND OLD.APP_COLUMN_NAME = NEW.APP_COLUMN_NAME - AND OLD.RTU_TAG = NEW.RTU_TAG AND OLD.DOT_NO = NEW.DOT_NO - THEN LEAVE body; - END IF; - - #首先禁止MAP_TO_FES触发器动作 - SET @disableAnalogMapToFesTrigger = 1; - #然后询问自己是否已经被禁止 - IF COALESCE(@disableFesAnalogTrigger,0) = 0 THEN - BEGIN - - #不管是ana还是const都是放在analog_map_to_fes表 - IF COALESCE(OLD.APP_TABLE_NAME,'')<>'' AND COALESCE(OLD.APP_TAG_NAME,'')<>'' AND COALESCE(OLD.APP_COLUMN_NAME,'')<>'' THEN - UPDATE analog_map_to_fes SET - DOT_NO = '-1' - WHERE KEY_ID_TAG = concat(OLD.APP_TABLE_NAME,'.', OLD.APP_TAG_NAME); - END IF; - - IF COALESCE(NEW.APP_TABLE_NAME,'')<>'' AND COALESCE(NEW.APP_TAG_NAME,'')<>'' AND COALESCE(NEW.APP_COLUMN_NAME,'')<>'' THEN - BEGIN - UPDATE analog_map_to_fes SET - RTU_TAG = NEW.RTU_TAG, - DOT_NO = NEW.DOT_NO - WHERE KEY_ID_TAG = concat(NEW.APP_TABLE_NAME,'.', NEW.APP_TAG_NAME); - END; - END IF; - - END; - END IF; - - SET @disableAnalogMapToFesTrigger = 0; - -END;; -DELIMITER ; - -drop trigger if exists TUA_FES_ANALOG; -DELIMITER ;; -create trigger TUA_FES_ANALOG AFTER UPDATE on fes_analog for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'fes_analog', 'tag_name', OLD.TAG_NAME, NEW.TAG_NAME, getTableSubSystem('fes_analog')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TD_FES_ANALOG; -DELIMITER ;; -create trigger TD_FES_ANALOG AFTER DELETE on fes_analog for each ROW -BEGIN - #首先禁止MAP_TO_FES触发器动作 - SET @disableAnalogMapToFesTrigger = 1; - #然后询问自己是否已经被禁止 - IF COALESCE(@disableFesAnalogTrigger,0) = 0 THEN - BEGIN - #不管是ana还是const都是放在analog_map_to_fes表 - IF COALESCE(OLD.APP_TABLE_NAME,'')<>'' AND COALESCE(OLD.APP_TAG_NAME,'')<>'' AND COALESCE(OLD.APP_COLUMN_NAME,'')<>'' THEN - UPDATE analog_map_to_fes SET - DOT_NO = '-1' - WHERE KEY_ID_TAG = concat(OLD.APP_TABLE_NAME,'.', OLD.APP_TAG_NAME); - END IF; - - END; - END IF; - - SET @disableAnalogMapToFesTrigger = 0; - -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'fes_analog', 'tag_name', OLD.TAG_NAME, '', getTableSubSystem('fes_analog')); -END IF; -END;; -DELIMITER ; - -drop table if exists fes_analog_ctrl; -CREATE TABLE `fes_analog_ctrl` ( - `TAG_NAME` varchar(64) NOT NULL COMMENT '标签名', - `LOCATION_ID` decimal(10,0) DEFAULT NULL COMMENT '所属车站', - `SUB_SYSTEM` decimal(10,0) DEFAULT NULL COMMENT '所属专业', - `BASE` decimal(22,6) NOT NULL COMMENT '基数', - `COEFF` decimal(22,6) NOT NULL COMMENT '系数', - `MAX_RANGE` decimal(22,6) DEFAULT NULL COMMENT '最大量程', - `MIN_RANGE` decimal(22,6) DEFAULT NULL COMMENT '最小量程', - `RES_PARA_INT2` decimal(10,0) DEFAULT NULL, - `RTU_NO` decimal(10,0) NOT NULL, - `DEV_TAG` varchar(64) DEFAULT NULL, - `DOT_NO` decimal(10,0) NOT NULL COMMENT 'AO点号', - `RES_PARA_INT1` decimal(10,0) DEFAULT NULL, - `RES_PARA_INT3` decimal(10,0) DEFAULT NULL, - `RES_PARA_INT4` decimal(10,0) DEFAULT NULL, - `SEQ_NO` decimal(10,0) DEFAULT NULL, - `RTU_TAG` varchar(64) NOT NULL COMMENT 'RTU标签', - `DESCRIPTION` varchar(128) NOT NULL COMMENT '点描述', - `POINT_TP_NAME` varchar(64) DEFAULT NULL COMMENT '点模板名', - `PATH61850` varchar(64) DEFAULT NULL, - `POSITION61850` decimal(10,0) DEFAULT NULL, - `RES_PARA_INT5` decimal(10,0) DEFAULT NULL, - `RES_PARA_INT6` decimal(10,0) DEFAULT NULL, - `RES_PARA_INT7` decimal(10,0) DEFAULT NULL, - `RES_PARA_INT8` decimal(10,0) DEFAULT NULL, - `RES_PARA_STR1` varchar(64) DEFAULT NULL, - `RES_PARA_STR2` varchar(256) DEFAULT NULL, - PRIMARY KEY (`TAG_NAME`), - KEY `IN_FES_ANALOG_CTRL` (`DEV_TAG`,`DOT_NO`,`RTU_TAG`,`POINT_TP_NAME`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='模拟量输出参数表'; - -drop trigger if exists TIA_FES_ANALOG_CTRL; -DELIMITER ;; -create trigger TIA_FES_ANALOG_CTRL AFTER INSERT on fes_analog_ctrl for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'fes_analog_ctrl', 'tag_name', '', NEW.TAG_NAME, getTableSubSystem('fes_analog_ctrl')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TU_FES_ANALOG_CTRL; -DELIMITER ;; -create trigger TU_FES_ANALOG_CTRL AFTER UPDATE on fes_analog_ctrl for each ROW -body:BEGIN - #更新关联了此点的遥控点 - - IF NEW.RTU_TAG <> OLD.RTU_TAG OR NEW.DOT_NO<> OLD.DOT_NO - THEN - BEGIN - UPDATE analog_control SET - RTU_TAG = NEW.RTU_TAG, - OFFSET_NO = NEW.DOT_NO - WHERE RTU_TAG = OLD.RTU_TAG AND OFFSET_NO = cast(OLD.DOT_NO AS char); - END; - END IF; - - -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'fes_analog_ctrl', 'tag_name', OLD.TAG_NAME, NEW.TAG_NAME, getTableSubSystem('fes_analog_ctrl')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TD_FES_ANALOG_CTRL; -DELIMITER ;; -create trigger TD_FES_ANALOG_CTRL AFTER DELETE on fes_analog_ctrl for each ROW -BEGIN - UPDATE analog_control SET - OFFSET_NO = '-1' - WHERE RTU_TAG = OLD.RTU_TAG AND OFFSET_NO = cast(OLD.DOT_NO AS char); - - -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'fes_analog_ctrl', 'tag_name', OLD.TAG_NAME, '', getTableSubSystem('fes_analog_ctrl')); -END IF; -END;; -DELIMITER ; - -drop table if exists fes_channel_para; -CREATE TABLE `fes_channel_para` ( - `TAG_NAME` varchar(64) NOT NULL COMMENT '通道标签', - `CHAN_NAME` varchar(64) NOT NULL COMMENT '通道名称', - `CHAN_NO` decimal(10,0) NOT NULL, - `IS_USED` decimal(10,0) NOT NULL, - `ALARM_ENABLE` decimal(10,0) NOT NULL COMMENT '通道告警使能', - `LOCATION_ID` decimal(10,0) NOT NULL COMMENT '所属车站', - `SUB_SYSTEM` decimal(10,0) NOT NULL, - `COMM_TYPE` decimal(10,0) NOT NULL COMMENT '通讯类型(例如:TCP/UDP/COM)', - `COMM_MODE` decimal(10,0) NOT NULL, - `PROTO_TYPE` decimal(10,0) NOT NULL COMMENT '通讯规约', - `SENDBUF_LEN` decimal(10,0) DEFAULT NULL COMMENT '发送缓冲区长度', - `RECVBUF_LEN` decimal(10,0) DEFAULT NULL COMMENT '接收缓冲区长度', - `REGION_ID` decimal(10,0) DEFAULT NULL COMMENT '责任区', - `LISTEN_PORT_NO` decimal(10,0) DEFAULT NULL COMMENT '侦听端口', - `QUEUE_LEN` decimal(10,0) DEFAULT NULL COMMENT '侦听队列长度', - `NET_DESC1` varchar(32) NOT NULL COMMENT '网卡描述1', - `PORT_NO1` decimal(10,0) NOT NULL COMMENT '端口号1', - `NET_DESC2` varchar(32) DEFAULT NULL COMMENT '网卡描述2', - `PORT_NO2` decimal(10,0) DEFAULT NULL COMMENT '端口号2', - `NET_DESC3` varchar(32) DEFAULT NULL COMMENT '网卡描述3', - `PORT_NO3` decimal(10,0) DEFAULT NULL COMMENT '端口号3', - `NET_DESC4` varchar(32) DEFAULT NULL COMMENT '网卡描述4', - `PORT_NO4` decimal(10,0) DEFAULT NULL COMMENT '端口号4', - `CONNECTWAIT_SEC` decimal(10,0) DEFAULT NULL COMMENT '连接等待时间', - `CONNECT_TIMEOUT` decimal(10,0) DEFAULT NULL, - `CONNECT_RETRYS` decimal(10,0) DEFAULT NULL COMMENT '连接尝试次数', - `RECV_TIMEOUT` decimal(10,0) DEFAULT NULL COMMENT '接收超时时间', - `RESP_TIMEOUT` decimal(10,0) DEFAULT NULL, - `BAUD` decimal(10,0) DEFAULT NULL COMMENT '波特率', - `PARITY` decimal(10,0) DEFAULT NULL COMMENT '校验位', - `DATABIT` decimal(10,0) DEFAULT NULL COMMENT '数据位', - `STOPBIT` decimal(10,0) DEFAULT NULL COMMENT '停止位', - `RES_PARA_INT1` decimal(10,0) DEFAULT NULL COMMENT '备用参数1', - `RES_PARA_INT2` decimal(10,0) DEFAULT NULL COMMENT '备用参数2', - `RES_PARA_INT3` decimal(10,0) DEFAULT NULL COMMENT '备用参数3', - `RES_PARA_INT4` decimal(10,0) DEFAULT NULL COMMENT '备用参数4', - `RES_PARA_STR1` varchar(64) DEFAULT NULL, - `RES_PARA_STR2` varchar(256) DEFAULT NULL, - `ERROR_RATE_LIMIT` decimal(22,6) DEFAULT NULL, - `BACKUP_CHAN_NAME1` varchar(64) DEFAULT NULL, - `BACKUP_CHAN_NAME2` varchar(64) DEFAULT NULL, - `BACKUP_CHAN_NAME3` varchar(64) DEFAULT NULL, - `BACKUP_CHAN_NO1` decimal(10,0) NOT NULL, - `BACKUP_CHAN_NO2` decimal(10,0) NOT NULL, - `BACKUP_CHAN_NO3` decimal(10,0) NOT NULL, - `DESCRIPTION` varchar(128) DEFAULT NULL, - `COMM_PROPERTY` decimal(10,0) DEFAULT NULL, - `STATUS` decimal(10,0) DEFAULT NULL, - PRIMARY KEY (`TAG_NAME`), - UNIQUE KEY `UN_FES_CHANNEL_PARA` (`CHAN_NO`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='前置通道参数表'; - -drop trigger if exists TI_FES_CHANNEL_PARA; -DELIMITER ;; -create trigger TI_FES_CHANNEL_PARA BEFORE INSERT on fes_channel_para for each ROW -BEGIN - - DECLARE locationTag varchar(64) DEFAULT ''; - DECLARE subsystemTag varchar(64) DEFAULT ''; - - - SELECT TAG_NAME INTO locationTag FROM sys_model_location_info WHERE LOCATION_ID = NEW.LOCATION_ID; - SELECT TAG_NAME INTO subsystemTag FROM sys_model_sub_system_info WHERE SUB_SYSTEM_ID = NEW.SUB_SYSTEM; - SET NEW.TAG_NAME = concat(locationTag,'.',subsystemTag,'.',NEW.CHAN_NAME); - -END;; -DELIMITER ; - -drop trigger if exists TIA_FES_CHANNEL_PARA; -DELIMITER ;; -create trigger TIA_FES_CHANNEL_PARA AFTER INSERT on fes_channel_para for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'fes_channel_para', 'tag_name', '', NEW.TAG_NAME, getTableSubSystem('fes_channel_para')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TU_FES_CHANNEL_PARA; -DELIMITER ;; -create trigger TU_FES_CHANNEL_PARA BEFORE UPDATE on fes_channel_para for each ROW -body:BEGIN - - DECLARE locationTag varchar(64) DEFAULT ''; - DECLARE subsystemTag varchar(64) DEFAULT ''; - - IF NEW.CHAN_NAME <> OLD.CHAN_NAME THEN - BEGIN - SELECT TAG_NAME INTO locationTag FROM sys_model_location_info WHERE LOCATION_ID = NEW.LOCATION_ID; - SELECT TAG_NAME INTO subsystemTag FROM sys_model_sub_system_info WHERE SUB_SYSTEM_ID = NEW.SUB_SYSTEM; - SET NEW.TAG_NAME = concat(locationTag,'.',subsystemTag,'.',NEW.CHAN_NAME); - END; - END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_FES_CHANNEL_PARA; -DELIMITER ;; -create trigger TUA_FES_CHANNEL_PARA AFTER UPDATE on fes_channel_para for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'fes_channel_para', 'tag_name', OLD.TAG_NAME, NEW.TAG_NAME, getTableSubSystem('fes_channel_para')); -END IF; -IF NEW.TAG_NAME <> OLD.TAG_NAME OR NEW.CHAN_NO <> OLD.CHAN_NO OR NEW.LOCATION_ID <> OLD.LOCATION_ID OR NEW.SUB_SYSTEM <> OLD.SUB_SYSTEM THEN -BEGIN - UPDATE fes_rtu_para SET - TAG_NAME = concat(NEW.TAG_NAME,'.',RTU_NAME), - CHAN_TAG = NEW.TAG_NAME, - CHAN_NO = NEW.CHAN_NO, - LOCATION_ID = NEW.LOCATION_ID, - SUB_SYSTEM = NEW.SUB_SYSTEM - WHERE CHAN_TAG = OLD.TAG_NAME; -END; -END IF; - -END;; -DELIMITER ; - -drop trigger if exists TDA_FES_CHANNEL_PARA; -DELIMITER ;; -create trigger TDA_FES_CHANNEL_PARA AFTER DELETE on fes_channel_para for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'fes_channel_para', 'tag_name', OLD.TAG_NAME, '', getTableSubSystem('fes_channel_para')); -END IF; -END;; -DELIMITER ; - -drop table if exists fes_const; -CREATE TABLE `fes_const` ( - `TAG_NAME` varchar(64) NOT NULL COMMENT '名称', - `DESCRIPTION` varchar(128) DEFAULT NULL COMMENT '描述', - `GROUP_NO` decimal(10,0) DEFAULT NULL COMMENT '定值组号', - `RTU_TAG` varchar(64) NOT NULL COMMENT 'RTU标签', - `RTU_NO` decimal(10,0) DEFAULT NULL COMMENT 'RTU号', - `DOT_NO` decimal(10,0) NOT NULL COMMENT '点号', - `SEQ_NO` decimal(10,0) DEFAULT NULL COMMENT '序号', - `SUB_SYSTEM` decimal(10,0) DEFAULT NULL COMMENT '专业', - `LOCATION_ID` decimal(10,0) DEFAULT NULL COMMENT '车站', - `DEV_TAG` varchar(64) DEFAULT NULL COMMENT '设备标签', - `VALUE` decimal(22,6) DEFAULT NULL COMMENT '类型', - `VALUE_TYPE` decimal(10,0) DEFAULT NULL COMMENT '定值类型', - `UNIT_ID` decimal(10,0) DEFAULT NULL COMMENT '单位', - `VALUE_TEXT` varchar(64) DEFAULT NULL COMMENT '修正值', - `VALUE_RATIO` decimal(22,6) DEFAULT NULL COMMENT '死区值', - `VALUE_ADDED` decimal(22,6) DEFAULT NULL COMMENT '修正值', - `VALUE_MAX` decimal(22,6) DEFAULT NULL COMMENT '最大值', - `VALUE_MIN` decimal(22,6) DEFAULT NULL COMMENT '最小值', - `VALUE_DEFAULT` decimal(22,6) DEFAULT NULL COMMENT '默认值', - `VALUE_VERIFY` decimal(22,6) DEFAULT NULL COMMENT '反校值', - `EX_INFO` varchar(64) DEFAULT NULL COMMENT '附加信息', - `FES_POINT_TP_NAME` varchar(64) DEFAULT NULL COMMENT '所属模板点', - `PATH61850` varchar(64) DEFAULT NULL, - `POSITION61850` decimal(10,0) DEFAULT NULL, - `RES_PARA_INT1` decimal(10,0) DEFAULT NULL, - `RES_PARA_INT2` decimal(10,0) DEFAULT NULL, - `RES_PARA_INT3` decimal(10,0) DEFAULT NULL, - `RES_PARA_INT4` decimal(10,0) DEFAULT NULL, - `RES_PARA_INT5` decimal(10,0) DEFAULT NULL, - `RES_PARA_INT6` decimal(10,0) DEFAULT NULL, - `RES_PARA_INT7` decimal(10,0) DEFAULT NULL, - `RES_PARA_INT8` decimal(10,0) DEFAULT NULL, - `RES_PARA_STR1` varchar(64) DEFAULT NULL, - `RES_PARA_STR2` varchar(256) DEFAULT NULL, - `DZ_SEQ` decimal(10,0) DEFAULT NULL COMMENT '定值序号', - PRIMARY KEY (`TAG_NAME`), - KEY `IN_FES_CONST` (`FES_POINT_TP_NAME`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='前置定值管理表'; - -drop trigger if exists TI_FES_CONST; -DELIMITER ;; -create trigger TI_FES_CONST AFTER INSERT on fes_const for each ROW -BEGIN - - IF getTriggerFlag() = TRUE THEN - INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) - VALUES (getMaxTriggerId(),getOpType('insert'),'fes_const', 'tag_name', '',NEW.TAG_NAME, getTableSubSystem('fes_const')); - END IF; - -END;; -DELIMITER ; - -drop trigger if exists TU_FES_CONST; -DELIMITER ;; -create trigger TU_FES_CONST AFTER UPDATE on fes_const for each ROW -BEGIN - - IF getTriggerFlag() = TRUE THEN - INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) - VALUES (getMaxTriggerId(),getOpType('update'),'fes_const', 'tag_name', OLD.TAG_NAME,NEW.TAG_NAME, getTableSubSystem('fes_const')); - END IF; - -END;; -DELIMITER ; - -drop trigger if exists TD_FES_CONST; -DELIMITER ;; -create trigger TD_FES_CONST AFTER DELETE on fes_const for each ROW -BEGIN - - IF getTriggerFlag() = TRUE THEN - INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) - VALUES (getMaxTriggerId(),getOpType('delete'),'fes_const', 'tag_name', OLD.TAG_NAME,'', getTableSubSystem('fes_const')); - END IF; - -END;; -DELIMITER ; - -drop table if exists fes_const_temp; -CREATE TABLE `fes_const_temp` ( - `TAG_NAME` varchar(64) NOT NULL COMMENT '名称', - `DESCRIPTION` varchar(128) DEFAULT NULL COMMENT '描述', - `GROUP_NO` decimal(10,0) DEFAULT NULL COMMENT '定值组号', - `SEQ_NO` decimal(10,0) DEFAULT NULL COMMENT '序号', - `DEV_TP_NAME` varchar(64) DEFAULT NULL COMMENT '设备标签', - `VALUE` decimal(22,6) DEFAULT NULL COMMENT '类型', - `VALUE_TYPE` decimal(10,0) DEFAULT NULL COMMENT '定值类型', - `UNIT_ID` decimal(10,0) DEFAULT NULL COMMENT '单位', - `VALUE_TEXT` varchar(64) DEFAULT NULL COMMENT '修正值', - `VALUE_RATIO` decimal(22,6) DEFAULT NULL COMMENT '死区值', - `VALUE_ADDED` decimal(22,6) DEFAULT NULL COMMENT '修正值', - `VALUE_MAX` decimal(22,6) DEFAULT NULL COMMENT '最大值', - `VALUE_MIN` decimal(22,6) DEFAULT NULL COMMENT '最小值', - `VALUE_DEFAULT` decimal(22,6) DEFAULT NULL COMMENT '默认值', - `VALUE_VERIFY` decimal(22,6) DEFAULT NULL COMMENT '反校值', - `EX_INFO` varchar(64) DEFAULT NULL COMMENT '附加信息', - `PATH61850` varchar(64) DEFAULT NULL, - `POSITION61850` decimal(10,0) DEFAULT NULL, - `RES_PARA_INT1` decimal(10,0) DEFAULT NULL, - `RES_PARA_INT2` decimal(10,0) DEFAULT NULL, - `RES_PARA_INT3` decimal(10,0) DEFAULT NULL, - `RES_PARA_INT4` decimal(10,0) DEFAULT NULL, - `RES_PARA_INT5` decimal(10,0) DEFAULT NULL, - `RES_PARA_INT6` decimal(10,0) DEFAULT NULL, - `RES_PARA_INT7` decimal(10,0) DEFAULT NULL, - `RES_PARA_INT8` decimal(10,0) DEFAULT NULL, - `RES_PARA_STR1` varchar(64) DEFAULT NULL, - `RES_PARA_STR2` varchar(256) DEFAULT NULL, - `DZ_SEQ` decimal(10,0) DEFAULT NULL COMMENT '定值序号', - PRIMARY KEY (`TAG_NAME`), - KEY `IN_FES_CONST_TEMP` (`DEV_TP_NAME`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='前置定值模板表'; - -drop trigger if exists TI_FES_CONST_TEMP; -DELIMITER ;; -create trigger TI_FES_CONST_TEMP AFTER INSERT on fes_const_temp for each ROW -BEGIN - /* - INSERT INTO fes_const( - TAG_NAME, DESCRIPTION, GROUP_NO, RTU_TAG, RTU_NO, DOT_NO, SEQ_NO, SUB_SYSTEM, LOCATION_ID, DEV_TAG, VALUE, VALUE_TYPE, UNIT_ID, VALUE_TEXT, VALUE_RATIO, VALUE_ADDED, VALUE_MAX, VALUE_MIN, VALUE_DEFAULT, VALUE_VERIFY, EX_INFO, FES_POINT_TP_NAME,PATH61850,POSITION61850) SELECT - concat(fes_dev_info.RTU_TAG, '.' , getMaxRtuDotNo(fes_dev_info.RTU_TAG,getFesPointType('FES_CONST'))), NEW.DESCRIPTION,NEW.GROUP_NO,fes_dev_info.RTU_TAG,fes_rtu_para.RTU_NO,getMaxRtuDotNo(fes_dev_info.RTU_TAG,getFesPointType('FES_CONST')),NEW.SEQ_NO,fes_rtu_para.SUB_SYSTEM,fes_rtu_para.LOCATION_ID,fes_dev_info.TAG_NAME,NEW.VALUE,NEW.VALUE_TYPE,NEW.UNIT_ID,NEW.VALUE_TEXT, NEW.VALUE_RATIO,NEW.VALUE_ADDED,NEW.VALUE_MAX,NEW.VALUE_MIN,NEW.VALUE_DEFAULT,NEW.VALUE_VERIFY,NEW.EX_INFO,NEW.TAG_NAME, NEW.PATH61850,NEW.POSITION61850 - FROM fes_dev_info, fes_rtu_para WHERE fes_dev_info.DEV_TP_NAME=NEW.DEV_TP_NAME AND fes_rtu_para.TAG_NAME=fes_dev_info.RTU_TAG; - */ - IF getTriggerFlag() = TRUE THEN - INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME, KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) - VALUES (getMaxTriggerId(),getOpType('insert'),'fes_const_temp', 'tag_name', '', NEW.TAG_NAME, getTableSubSystem('fes_const_temp')); - END IF; - - -END;; -DELIMITER ; - -drop trigger if exists TU_FES_CONST_TEMP; -DELIMITER ;; -create trigger TU_FES_CONST_TEMP AFTER UPDATE on fes_const_temp for each ROW -BEGIN - /* - UPDATE fes_const SET - DESCRIPTION = NEW.DESCRIPTION, - GROUP_NO = NEW.GROUP_NO, - SEQ_NO = NEW.SEQ_NO, - VALUE = NEW.VALUE, - VALUE_TYPE = NEW.VALUE_TYPE, - UNIT_ID = NEW.UNIT_ID, - VALUE_TEXT = NEW.VALUE_TEXT, - VALUE_RATIO = NEW.VALUE_RATIO, - VALUE_ADDED = NEW.VALUE_ADDED, - VALUE_MAX = NEW.VALUE_MAX, - VALUE_MIN = NEW.VALUE_MIN, - VALUE_DEFAULT = NEW.VALUE_DEFAULT, - VALUE_VERIFY = NEW.VALUE_VERIFY, - EX_INFO = NEW.EX_INFO, - FES_POINT_TP_NAME = NEW.TAG_NAME, - PATH61850 = NEW.PATH61850, - POSITION61850 = NEW.POSITION61850 - WHERE FES_POINT_TP_NAME = OLD.TAG_NAME; - */ - - IF getTriggerFlag() = TRUE THEN - INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) - VALUES (getMaxTriggerId(),getOpType('update'),'fes_const_temp', 'tag_name', OLD.TAG_NAME, NEW.TAG_NAME, getTableSubSystem('fes_const_temp')); - END IF; - -END;; -DELIMITER ; - -drop trigger if exists TD_FES_CONST_TEMP; -DELIMITER ;; -create trigger TD_FES_CONST_TEMP AFTER DELETE on fes_const_temp for each ROW -BEGIN - /* - DELETE FROM fes_const WHERE FES_POINT_TP_NAME = OLD.TAG_NAME; - */ - IF getTriggerFlag() = TRUE THEN - INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) - VALUES (getMaxTriggerId(),getOpType('delete'),'fes_const_temp', 'tag_name', OLD.TAG_NAME, '', getTableSubSystem('fes_const_temp')); - END IF; - -END;; -DELIMITER ; - -drop table if exists fes_data_block; -CREATE TABLE `fes_data_block` ( - `TAG_NAME` varchar(64) NOT NULL, - `BLOCK_ID` decimal(10,0) NOT NULL COMMENT '序号', - `LOCATION_ID` decimal(10,0) NOT NULL, - `SUB_SYSTEM` decimal(10,0) NOT NULL, - `RTU_TAG` varchar(64) NOT NULL COMMENT 'RTU标签', - `RTU_NO` decimal(10,0) NOT NULL COMMENT 'RTU号', - `FUNC_CODE` decimal(10,0) NOT NULL COMMENT '功能码', - `STAR_ADDR` decimal(10,0) NOT NULL COMMENT '起始地址', - `DATA_LEN` decimal(10,0) NOT NULL COMMENT '数据长度', - `DATA_FARME_TYPE` decimal(10,0) NOT NULL COMMENT '帧类别', - `REF_CYCLE` decimal(10,0) NOT NULL COMMENT '刷新周期', - `IS_CREATE_SOE` decimal(10,0) DEFAULT NULL, - `PARA_INT1` decimal(10,0) DEFAULT NULL COMMENT '备用参数1', - `PARA_INT2` decimal(10,0) DEFAULT NULL COMMENT '备用参数2', - `DESCRIPTION` varchar(128) DEFAULT NULL, - `LD` varchar(64) DEFAULT NULL, - `CALL_MODE` decimal(10,0) DEFAULT NULL, - `DATA_SET` varchar(64) DEFAULT NULL, - `DATA_SET_TYPE` decimal(10,0) DEFAULT NULL COMMENT '数据集类型', - `DATA_SET_CALL_TIME` decimal(10,0) DEFAULT NULL, - `REPORT_CTRL` varchar(64) DEFAULT NULL, - `DEV_TAG` varchar(64) DEFAULT NULL, - `FES_POINT_TP_NAME` varchar(64) DEFAULT NULL, - `PARA_INT3` decimal(10,0) DEFAULT NULL COMMENT '自定义参数3', - `PARA_INT4` decimal(10,0) DEFAULT NULL COMMENT '自定义参数4', - `PARA_STR1` varchar(64) DEFAULT NULL, - `PARA_STR2` varchar(256) DEFAULT NULL, - `IS_ENABLE` decimal(10,0) DEFAULT NULL COMMENT '块使能', - PRIMARY KEY (`TAG_NAME`,`BLOCK_ID`,`RTU_NO`,`FUNC_CODE`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='前置数据块表'; - -drop trigger if exists TIA_FES_DATA_BLOCK; -DELIMITER ;; -create trigger TIA_FES_DATA_BLOCK AFTER INSERT on fes_data_block for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME, KEY_COLUMN_NAME, KEY_OLD_VALUE, KEY_NEW_VALUE, SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'fes_data_block', 'tag_name,block_id,rtu_no,func_code', '', concat(NEW.TAG_NAME,',', NEW.BLOCK_ID,',',NEW.RTU_NO,',',NEW.FUNC_CODE), getTableSubSystem('fes_data_block')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_FES_DATA_BLOCK; -DELIMITER ;; -create trigger TUA_FES_DATA_BLOCK AFTER UPDATE on fes_data_block for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME, KEY_COLUMN_NAME, KEY_OLD_VALUE, KEY_NEW_VALUE, SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'fes_data_block', 'tag_name,block_id,rtu_no,func_code', concat(OLD.TAG_NAME,',', OLD.BLOCK_ID,',',OLD.RTU_NO,',',OLD.FUNC_CODE), concat(NEW.TAG_NAME,',',NEW.BLOCK_ID,',',NEW.RTU_NO,',',NEW.FUNC_CODE), getTableSubSystem('fes_data_block')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_FES_DATA_BLOCK; -DELIMITER ;; -create trigger TDA_FES_DATA_BLOCK AFTER DELETE on fes_data_block for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME, KEY_COLUMN_NAME, KEY_OLD_VALUE, KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'fes_data_block', 'tag_name,block_id,rtu_no,func_code', concat(OLD.TAG_NAME,OLD.BLOCK_ID,',',OLD.RTU_NO,',',OLD.FUNC_CODE), '', getTableSubSystem('fes_data_block')); -END IF; -END;; -DELIMITER ; - -drop table if exists fes_data_block_temp; -CREATE TABLE `fes_data_block_temp` ( - `TAG_NAME` varchar(64) NOT NULL COMMENT '点标签', - `BLOCK_ID` decimal(10,0) DEFAULT NULL, - `FUNC_CODE` decimal(10,0) DEFAULT NULL, - `STAR_ADDR` decimal(10,0) DEFAULT NULL, - `DATA_LEN` decimal(10,0) DEFAULT NULL, - `DATA_FARME_TYPE` decimal(10,0) DEFAULT NULL, - `REF_CYCLE` decimal(10,0) DEFAULT NULL, - `IS_CREATE_SOE` decimal(10,0) DEFAULT NULL, - `PARA_INT1` decimal(10,0) DEFAULT NULL, - `PARA_INT2` decimal(10,0) DEFAULT NULL, - `DESCRIPTION` varchar(128) DEFAULT NULL, - `LD` varchar(64) DEFAULT NULL, - `CALL_MODE` decimal(10,0) DEFAULT NULL, - `DATA_SET` varchar(64) DEFAULT NULL, - `DATA_SET_TYPE` decimal(10,0) DEFAULT NULL COMMENT '数据集类型', - `DATA_SET_CALL_TIME` decimal(10,0) DEFAULT NULL COMMENT '数据集召唤时间', - `REPORT_CTRL` varchar(64) DEFAULT NULL, - `DEV_TP_NAME` varchar(64) NOT NULL COMMENT '设备名称', - `PARA_INT3` decimal(10,0) DEFAULT NULL COMMENT '自定义参数3', - `PARA_INT4` decimal(10,0) DEFAULT NULL COMMENT '自定义参数4', - `PARA_STR1` varchar(64) DEFAULT NULL, - `PARA_STR2` varchar(256) DEFAULT NULL, - `IS_ENABLE` decimal(10,0) DEFAULT NULL COMMENT '块使能', - PRIMARY KEY (`TAG_NAME`), - KEY `IN_FES_DATA_BLOCK_TEMP` (`DEV_TP_NAME`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='前置点模板'; - -drop trigger if exists TI_FES_DATA_BLOCK_TEMP; -DELIMITER ;; -create trigger TI_FES_DATA_BLOCK_TEMP AFTER INSERT on fes_data_block_temp for each ROW -BEGIN - /* - INSERT INTO fes_data_block( - TAG_NAME, BLOCK_ID, RTU_NO, FUNC_CODE, STAR_ADDR, DATA_LEN, DATA_FARME_TYPE, REF_CYCLE, IS_CREATE_SOE, PARA_INT1, PARA_INT2, DESCRIPTION, LOCATION_ID, SUB_SYSTEM, LD, CALL_MODE, DATA_SET, DATA_SET_TYPE, DATA_SET_CALL_TIME, REPORT_CTRL, FES_POINT_TP_NAME, DEV_TAG) SELECT - concat(fes_dev_info.TAG_NAME,'.',getAfterLastDot(NEW.TAG_NAME)), NEW.BLOCK_ID,fes_rtu_para.RTU_NO,NEW.FUNC_CODE,NEW.STAR_ADDR,NEW.DATA_LEN, NEW.DATA_FARME_TYPE, NEW.REF_CYCLE, NEW.IS_CREATE_SOE, NEW.PARA_INT1, NEW.PARA_INT2, NEW.DESCRIPTION,fes_rtu_para.LOCATION_ID,fes_rtu_para.SUB_SYSTEM,NEW.LD, NEW.CALL_MODE, NEW.DATA_SET,NEW.DATA_SET_TYPE,NEW.DATA_SET_CALL_TIME,NEW.REPORT_CTRL,NEW.TAG_NAME, fes_dev_info.TAG_NAME - FROM fes_dev_info, fes_rtu_para WHERE fes_dev_info.DEV_TP_NAME=NEW.DEV_TP_NAME AND fes_rtu_para.TAG_NAME=fes_dev_info.RTU_TAG; - */ - IF getTriggerFlag() = TRUE THEN - INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME, KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) - VALUES (getMaxTriggerId(),getOpType('insert'),'fes_data_block_temp', 'tag_name', '', NEW.TAG_NAME, getTableSubSystem('fes_data_block_temp')); - END IF; -END;; -DELIMITER ; - -drop trigger if exists TU_FES_DATA_BLOCK_TEMP; -DELIMITER ;; -create trigger TU_FES_DATA_BLOCK_TEMP AFTER UPDATE on fes_data_block_temp for each ROW -BEGIN - /* - UPDATE fes_data_block SET - TAG_NAME = concat(getBeforeLastDot(fes_data_block.TAG_NAME),'.',getAfterLastDot(NEW.TAG_NAME)), - BLOCK_ID = NEW.BLOCK_ID, - FUNC_CODE = NEW.FUNC_CODE, - STAR_ADDR = NEW.STAR_ADDR, - DATA_LEN = NEW.DATA_LEN, - DATA_FARME_TYPE = NEW.DATA_FARME_TYPE, - REF_CYCLE = NEW.REF_CYCLE, - IS_CREATE_SOE = NEW.IS_CREATE_SOE, - PARA_INT1 = NEW.PARA_INT1, - PARA_INT2 = NEW.PARA_INT2, - DESCRIPTION = NEW.DESCRIPTION, - LD = NEW.LD, - CALL_MODE = NEW.CALL_MODE, - DATA_SET = NEW.DATA_SET, - DATA_SET_TYPE = NEW.DATA_SET_TYPE, - DATA_SET_CALL_TIME = NEW.DATA_SET_CALL_TIME, - REPORT_CTRL = NEW.REPORT_CTRL, - FES_POINT_TP_NAME = NEW.TAG_NAME - WHERE FES_POINT_TP_NAME = OLD.TAG_NAME; - */ - - IF getTriggerFlag() = TRUE THEN - INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) - VALUES (getMaxTriggerId(),getOpType('update'),'fes_data_block_temp', 'tag_name', OLD.TAG_NAME, NEW.TAG_NAME, getTableSubSystem('fes_data_block_temp')); - END IF; -END;; -DELIMITER ; - -drop trigger if exists TD_FES_DATA_BLOCK_TEMP; -DELIMITER ;; -create trigger TD_FES_DATA_BLOCK_TEMP AFTER DELETE on fes_data_block_temp for each ROW -BEGIN - /* - DELETE FROM fes_data_block WHERE FES_POINT_TP_NAME = OLD.TAG_NAME; - */ - IF getTriggerFlag() = TRUE THEN - INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) - VALUES (getMaxTriggerId(),getOpType('delete'),'fes_data_block_temp', 'tag_name', OLD.TAG_NAME, '', getTableSubSystem('fes_data_block_temp')); - END IF; -END;; -DELIMITER ; - -drop table if exists fes_dev_info; -CREATE TABLE `fes_dev_info` ( - `TAG_NAME` varchar(64) NOT NULL COMMENT '设备标签', - `DEV_NAME` varchar(128) NOT NULL COMMENT '设备名称', - `LOCATION_ID` decimal(10,0) NOT NULL, - `SUB_SYSTEM` decimal(10,0) NOT NULL, - `DEV_ID` decimal(10,0) NOT NULL COMMENT '设备ID', - `DEV_TYPE_ID` decimal(10,0) NOT NULL COMMENT '设备类型ID', - `RTU_TAG` varchar(64) NOT NULL COMMENT '设备DPU', - `RTU_NO` decimal(10,0) DEFAULT NULL COMMENT 'RTU序号', - `DEV_DESC` varchar(64) DEFAULT NULL COMMENT '设备描述', - `DEV_TP_NAME` varchar(64) DEFAULT NULL, - `DEV_PORT` varchar(64) DEFAULT NULL COMMENT '管理机端口', - `PARA_STR1` varchar(64) DEFAULT NULL COMMENT '备用字段1', - `PARA_STR2` varchar(256) DEFAULT NULL COMMENT '备用字段2', - PRIMARY KEY (`TAG_NAME`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='前置设备信息表'; - -drop trigger if exists TIB_FES_DEV_INFO; -DELIMITER ;; -create trigger TIB_FES_DEV_INFO BEFORE INSERT on fes_dev_info for each ROW -BEGIN - - SET NEW.TAG_NAME = concat(NEW.RTU_TAG,'.',NEW.DEV_NAME); - -END;; -DELIMITER ; - -drop trigger if exists TI_FES_DEV_INFO; -DELIMITER ;; -create trigger TI_FES_DEV_INFO AFTER INSERT on fes_dev_info for each ROW -BEGIN - - SET @incVarFesDev1 = 0; - SET @incVarFesDev2 = 0; - - IF COALESCE(NEW.DEV_TP_NAME,'') <> '' THEN - BEGIN - - #获取最大的点号时已经自动加1,这里减掉 - SET @incVarFesDev1 = getMaxRtuDotNo(NEW.RTU_TAG,getFesPointType('FES_ACC')) - 1; - SET @incVarFesDev2 = @incVarFesDev1; - - INSERT INTO fes_accuml( - TAG_NAME,LOCATION_ID,SUB_SYSTEM,DOT_NO,RTU_TAG,DEV_TAG,SEQ_NO,APP_TABLE_NAME,APP_TAG_NAME,APP_COLUMN_NAME,BASE,COEFF,RTU_NO,RES_PARA_INT1,RES_PARA_INT2,RES_PARA_INT3,RES_PARA_INT4,DESCRIPTION,FES_POINT_TP_NAME,PATH61850,POSITION61850,RES_PARA_INT5,RES_PARA_INT6,RES_PARA_INT7,RES_PARA_INT8,RES_PARA_STR1,RES_PARA_STR2) SELECT - concat(NEW.RTU_TAG, '.' , @incVarFesDev1 := @incVarFesDev1 + 1), fes_rtu_para.LOCATION_ID ,fes_rtu_para.SUB_SYSTEM ,@incVarFesDev2 := @incVarFesDev2 + 1, NEW.RTU_TAG,NEW.TAG_NAME,fes_dev_pt_temp_def.SEQ_NO,'', '', '', fes_dev_pt_temp_def.REVISE, fes_dev_pt_temp_def.RATIO, fes_rtu_para.RTU_NO , fes_dev_pt_temp_def.RES_PARA_INT1, fes_dev_pt_temp_def.RES_PARA_INT2,fes_dev_pt_temp_def.RES_PARA_INT3,fes_dev_pt_temp_def.RES_PARA_INT4,fes_dev_pt_temp_def.DESCRIPTION , fes_dev_pt_temp_def.TAG_NAME,PATH61850,POSITION61850,fes_dev_pt_temp_def.RES_PARA_INT5,fes_dev_pt_temp_def.RES_PARA_INT6,fes_dev_pt_temp_def.RES_PARA_INT7,fes_dev_pt_temp_def.RES_PARA_INT8,fes_dev_pt_temp_def.RES_PARA_STR1,fes_dev_pt_temp_def.RES_PARA_STR2 - FROM fes_dev_pt_temp_def, fes_rtu_para WHERE fes_dev_pt_temp_def.DEV_TP_NAME=NEW.DEV_TP_NAME AND fes_dev_pt_temp_def.POINT_TYPE=getFesPointType('FES_ACC') AND fes_rtu_para.TAG_NAME=NEW.RTU_TAG ORDER BY fes_dev_pt_temp_def.SEQ_NO; - - SET @incVarFesDev1 = getMaxRtuDotNo(NEW.RTU_TAG,getFesPointType('FES_ANA')) - 1; - SET @incVarFesDev2 = @incVarFesDev1; - - INSERT INTO fes_analog( - TAG_NAME,LOCATION_ID,SUB_SYSTEM,DEV_TAG,SEQ_NO,RTU_TAG,RTU_NO,DOT_NO,APP_TABLE_NAME,APP_TAG_NAME,APP_COLUMN_NAME,IS_FILTER,PERCENT,DEADBAND_TYPE,DEADBAND,ZEROBAND,BASE,COEFF,MAX_RANGE,MIN_RANGE,RES_PARA_INT1,RES_PARA_INT2,RES_PARA_INT3,RES_PARA_INT4,DESCRIPTION,FES_POINT_TP_NAME,PATH61850,POSITION61850,RES_PARA_INT5,RES_PARA_INT6,RES_PARA_INT7,RES_PARA_INT8,RES_PARA_STR1,RES_PARA_STR2) SELECT - concat(NEW.RTU_TAG, '.' , @incVarFesDev1 := @incVarFesDev1 + 1), fes_rtu_para.LOCATION_ID ,fes_rtu_para.SUB_SYSTEM , NEW.TAG_NAME,fes_dev_pt_temp_def.SEQ_NO, NEW.RTU_TAG, fes_rtu_para.RTU_NO , @incVarFesDev2 := @incVarFesDev2 + 1, '', '', '', fes_dev_pt_temp_def.IS_FILTER, fes_dev_pt_temp_def.PERCENT, fes_dev_pt_temp_def.DEADBAND_TYPE, fes_dev_pt_temp_def.DEADBAND, fes_dev_pt_temp_def.ZEROBAND, fes_dev_pt_temp_def.REVISE, fes_dev_pt_temp_def.RATIO, fes_dev_pt_temp_def.MAX_RANGE, fes_dev_pt_temp_def.MIN_RANGE, fes_dev_pt_temp_def.RES_PARA_INT1, fes_dev_pt_temp_def.RES_PARA_INT2,fes_dev_pt_temp_def.RES_PARA_INT3,fes_dev_pt_temp_def.RES_PARA_INT4, fes_dev_pt_temp_def.DESCRIPTION , fes_dev_pt_temp_def.TAG_NAME,PATH61850,POSITION61850,fes_dev_pt_temp_def.RES_PARA_INT5,fes_dev_pt_temp_def.RES_PARA_INT6,fes_dev_pt_temp_def.RES_PARA_INT7,fes_dev_pt_temp_def.RES_PARA_INT8,fes_dev_pt_temp_def.RES_PARA_STR1,fes_dev_pt_temp_def.RES_PARA_STR2 - FROM fes_dev_pt_temp_def, fes_rtu_para WHERE fes_dev_pt_temp_def.DEV_TP_NAME=NEW.DEV_TP_NAME AND fes_dev_pt_temp_def.POINT_TYPE=getFesPointType('FES_ANA') AND fes_rtu_para.TAG_NAME=NEW.RTU_TAG ORDER BY fes_dev_pt_temp_def.SEQ_NO; - - SET @incVarFesDev1 = getMaxRtuDotNo(NEW.RTU_TAG,getFesPointType('FES_DIG')) - 1; - SET @incVarFesDev2 = @incVarFesDev1; - - INSERT INTO fes_digital( - TAG_NAME,LOCATION_ID,SUB_SYSTEM,DEV_TAG,SEQ_NO,RTU_TAG,DOT_NO,APP_TABLE_NAME,APP_TAG_NAME,APP_COLUMN_NAME,FILTER_ERR,FILTER_DISTURB,DISTURB_TIME,REVERS,RTU_NO,RES_PARA_INT1,RES_PARA_INT2,RES_PARA_INT3,RES_PARA_INT4,DESCRIPTION,FES_POINT_TP_NAME,PATH61850,POSITION61850,RES_PARA_INT5,RES_PARA_INT6,RES_PARA_INT7,RES_PARA_INT8,RES_PARA_STR1,RES_PARA_STR2,ATTR,ASS_DIG) SELECT - concat(NEW.RTU_TAG, '.' , @incVarFesDev1 := @incVarFesDev1 + 1), fes_rtu_para.LOCATION_ID ,fes_rtu_para.SUB_SYSTEM , NEW.TAG_NAME,fes_dev_pt_temp_def.SEQ_NO, NEW.RTU_TAG, @incVarFesDev2 := @incVarFesDev2 + 1, '', '', '', fes_dev_pt_temp_def.FILTER_ERR, fes_dev_pt_temp_def.FILTER_DISTURB, fes_dev_pt_temp_def.DISTURB_TIME, fes_dev_pt_temp_def.REVERS, fes_rtu_para.RTU_NO , fes_dev_pt_temp_def.RES_PARA_INT1, fes_dev_pt_temp_def.RES_PARA_INT2,fes_dev_pt_temp_def.RES_PARA_INT3,fes_dev_pt_temp_def.RES_PARA_INT4, fes_dev_pt_temp_def.DESCRIPTION , fes_dev_pt_temp_def.TAG_NAME,PATH61850,POSITION61850,fes_dev_pt_temp_def.RES_PARA_INT5,fes_dev_pt_temp_def.RES_PARA_INT6,fes_dev_pt_temp_def.RES_PARA_INT7,fes_dev_pt_temp_def.RES_PARA_INT8,fes_dev_pt_temp_def.RES_PARA_STR1,fes_dev_pt_temp_def.RES_PARA_STR2,ATTR,ASS_DIG - FROM fes_dev_pt_temp_def, fes_rtu_para WHERE fes_dev_pt_temp_def.DEV_TP_NAME=NEW.DEV_TP_NAME AND fes_dev_pt_temp_def.POINT_TYPE=getFesPointType('FES_DIG') AND fes_rtu_para.TAG_NAME=NEW.RTU_TAG ORDER BY fes_dev_pt_temp_def.SEQ_NO; - - SET @incVarFesDev1 = getMaxRtuDotNo(NEW.RTU_TAG,getFesPointType('FES_MIX')) - 1; - SET @incVarFesDev2 = @incVarFesDev1; - - INSERT INTO fes_mix( - TAG_NAME,DESCRIPTION,LOCATION_ID,SUB_SYSTEM,RTU_TAG,RTU_NO,DOT_NO,DEV_TAG,SEQ_NO,APP_TABLE_NAME, APP_TAG_NAME,APP_COLUMN_NAME,BASE,COEFF,MAX_RANGE, MIN_RANGE,RES_PARA_INT1,RES_PARA_INT2,RES_PARA_INT3,RES_PARA_INT4,FES_POINT_TP_NAME,PATH61850,POSITION61850,RES_PARA_INT5,RES_PARA_INT6,RES_PARA_INT7,RES_PARA_INT8,RES_PARA_STR1,RES_PARA_STR2 ) SELECT - concat(NEW.RTU_TAG, '.' , @incVarFesDev1 := @incVarFesDev1 + 1),fes_dev_pt_temp_def.DESCRIPTION,fes_rtu_para.LOCATION_ID ,fes_rtu_para.SUB_SYSTEM , NEW.RTU_TAG,fes_rtu_para.RTU_NO, @incVarFesDev2 := @incVarFesDev2 + 1, NEW.TAG_NAME,fes_dev_pt_temp_def.SEQ_NO, '', '', '', fes_dev_pt_temp_def.REVISE, fes_dev_pt_temp_def.RATIO, fes_dev_pt_temp_def.MAX_RANGE, fes_dev_pt_temp_def.MIN_RANGE, fes_dev_pt_temp_def.RES_PARA_INT1, fes_dev_pt_temp_def.RES_PARA_INT2,fes_dev_pt_temp_def.RES_PARA_INT3,fes_dev_pt_temp_def.RES_PARA_INT4, fes_dev_pt_temp_def.TAG_NAME,PATH61850,POSITION61850,fes_dev_pt_temp_def.RES_PARA_INT5,fes_dev_pt_temp_def.RES_PARA_INT6,fes_dev_pt_temp_def.RES_PARA_INT7,fes_dev_pt_temp_def.RES_PARA_INT8,fes_dev_pt_temp_def.RES_PARA_STR1,fes_dev_pt_temp_def.RES_PARA_STR2 - FROM fes_dev_pt_temp_def, fes_rtu_para WHERE fes_dev_pt_temp_def.DEV_TP_NAME=NEW.DEV_TP_NAME AND fes_dev_pt_temp_def.POINT_TYPE=getFesPointType('FES_MIX') AND fes_rtu_para.TAG_NAME=NEW.RTU_TAG ORDER BY fes_dev_pt_temp_def.SEQ_NO; - - SET @incVarFesDev1 = getMaxRtuDotNo(NEW.RTU_TAG,getFesPointType('FES_ANA_CTRL')) - 1; - SET @incVarFesDev2 = @incVarFesDev1; - - INSERT INTO fes_analog_ctrl( - TAG_NAME,LOCATION_ID,SUB_SYSTEM,BASE,COEFF,MAX_RANGE,MIN_RANGE,RTU_NO,DEV_TAG,DOT_NO,RES_PARA_INT1,RES_PARA_INT2,RES_PARA_INT3,RES_PARA_INT4,SEQ_NO,RTU_TAG,DESCRIPTION,POINT_TP_NAME,PATH61850,POSITION61850,RES_PARA_INT5,RES_PARA_INT6,RES_PARA_INT7,RES_PARA_INT8,RES_PARA_STR1,RES_PARA_STR2) SELECT - concat(NEW.RTU_TAG, '.' , @incVarFesDev1 := @incVarFesDev1 + 1),fes_rtu_para.LOCATION_ID ,fes_rtu_para.SUB_SYSTEM ,fes_dev_pt_temp_def.REVISE, fes_dev_pt_temp_def.RATIO, '32767', '-32768', fes_rtu_para.RTU_NO,NEW.TAG_NAME, @incVarFesDev2 := @incVarFesDev2 + 1,fes_dev_pt_temp_def.RES_PARA_INT1, fes_dev_pt_temp_def.RES_PARA_INT2,fes_dev_pt_temp_def.RES_PARA_INT3,fes_dev_pt_temp_def.RES_PARA_INT4, fes_dev_pt_temp_def.SEQ_NO,NEW.RTU_TAG,fes_dev_pt_temp_def.DESCRIPTION, fes_dev_pt_temp_def.TAG_NAME,PATH61850,POSITION61850,fes_dev_pt_temp_def.RES_PARA_INT5,fes_dev_pt_temp_def.RES_PARA_INT6,fes_dev_pt_temp_def.RES_PARA_INT7,fes_dev_pt_temp_def.RES_PARA_INT8,fes_dev_pt_temp_def.RES_PARA_STR1,fes_dev_pt_temp_def.RES_PARA_STR2 - FROM fes_dev_pt_temp_def, fes_rtu_para WHERE fes_dev_pt_temp_def.DEV_TP_NAME=NEW.DEV_TP_NAME AND fes_dev_pt_temp_def.POINT_TYPE=getFesPointType('FES_ANA_CTRL') AND fes_rtu_para.TAG_NAME=NEW.RTU_TAG ORDER BY fes_dev_pt_temp_def.SEQ_NO; - - SET @incVarFesDev1 = getMaxRtuDotNo(NEW.RTU_TAG,getFesPointType('FES_DIG_CTRL')) - 1; - SET @incVarFesDev2 = @incVarFesDev1; - - INSERT INTO fes_digital_ctrl( - TAG_NAME,LOCATION_ID,SUB_SYSTEM,RTU_TAG,RTU_NO,DOT_NO,DEV_TAG,DESCRIPTION,REVERS,POINT_TP_NAME,SEQ_NO,RES_PARA_INT1,RES_PARA_INT2,RES_PARA_INT3,RES_PARA_INT4,PATH61850,POSITION61850,YK_SELECT61850,YK_EXE61850,YK_CANCLE61850, YK_DOUBLE_SELECT61850, YK_DOUBLE_EXE61850, YK_DOUBLE_CANCLE61850, PULSE_TIME,RES_PARA_INT5,RES_PARA_INT6,RES_PARA_INT7,RES_PARA_INT8,RES_PARA_STR1,RES_PARA_STR2,ATTR,CTRL_TYPE)SELECT - concat(NEW.RTU_TAG, '.' , @incVarFesDev1 := @incVarFesDev1 + 1),fes_rtu_para.LOCATION_ID ,fes_rtu_para.SUB_SYSTEM , NEW.RTU_TAG,fes_rtu_para.RTU_NO, @incVarFesDev2 := @incVarFesDev2 + 1, NEW.TAG_NAME,fes_dev_pt_temp_def.DESCRIPTION, fes_dev_pt_temp_def.REVERS, fes_dev_pt_temp_def.TAG_NAME,fes_dev_pt_temp_def.SEQ_NO, fes_dev_pt_temp_def.RES_PARA_INT1, fes_dev_pt_temp_def.RES_PARA_INT2,fes_dev_pt_temp_def.RES_PARA_INT3,fes_dev_pt_temp_def.RES_PARA_INT4,PATH61850,POSITION61850,YK_SELECT61850, YK_EXE61850, YK_CANCLE61850, YK_DOUBLE_SELECT61850, YK_DOUBLE_EXE61850, YK_DOUBLE_CANCLE61850, PULSE_TIME,fes_dev_pt_temp_def.RES_PARA_INT5,fes_dev_pt_temp_def.RES_PARA_INT6,fes_dev_pt_temp_def.RES_PARA_INT7,fes_dev_pt_temp_def.RES_PARA_INT8,fes_dev_pt_temp_def.RES_PARA_STR1,fes_dev_pt_temp_def.RES_PARA_STR2,ATTR,CTRL_TYPE - FROM fes_dev_pt_temp_def, fes_rtu_para WHERE fes_dev_pt_temp_def.DEV_TP_NAME=NEW.DEV_TP_NAME AND fes_dev_pt_temp_def.POINT_TYPE=getFesPointType('FES_DIG_CTRL') AND fes_rtu_para.TAG_NAME=NEW.RTU_TAG ORDER BY fes_dev_pt_temp_def.SEQ_NO; - - SET @incVarFesDev1 = getMaxRtuDotNo(NEW.RTU_TAG,getFesPointType('FES_MIX_CTRL')) - 1; - SET @incVarFesDev2 = @incVarFesDev1; - - INSERT INTO fes_mix_ctrl( - TAG_NAME,LOCATION_ID,SUB_SYSTEM,RTU_TAG,RTU_NO,BASE,DESCRIPTION,DOT_NO,COEFF,MIN_RANGE,MAX_RANGE,RES_PARA_INT1,RES_PARA_INT2,RES_PARA_INT3,RES_PARA_INT4,SEQ_NO,POINT_TP_NAME,DEV_TAG,PATH61850,POSITION61850,RES_PARA_INT5,RES_PARA_INT6,RES_PARA_INT7,RES_PARA_INT8,RES_PARA_STR1,RES_PARA_STR2) SELECT - concat(NEW.RTU_TAG, '.' , @incVarFesDev1 := @incVarFesDev1 + 1),fes_rtu_para.LOCATION_ID ,fes_rtu_para.SUB_SYSTEM , NEW.RTU_TAG,fes_rtu_para.RTU_NO,fes_dev_pt_temp_def.REVISE, fes_dev_pt_temp_def.DESCRIPTION, @incVarFesDev2 := @incVarFesDev2 + 1,fes_dev_pt_temp_def.RATIO, '-32768', '32767', fes_dev_pt_temp_def.RES_PARA_INT1, fes_dev_pt_temp_def.RES_PARA_INT2,fes_dev_pt_temp_def.RES_PARA_INT3,fes_dev_pt_temp_def.RES_PARA_INT4,fes_dev_pt_temp_def.SEQ_NO, fes_dev_pt_temp_def.TAG_NAME,NEW.TAG_NAME,PATH61850,POSITION61850,fes_dev_pt_temp_def.RES_PARA_INT5,fes_dev_pt_temp_def.RES_PARA_INT6,fes_dev_pt_temp_def.RES_PARA_INT7,fes_dev_pt_temp_def.RES_PARA_INT8,fes_dev_pt_temp_def.RES_PARA_STR1,fes_dev_pt_temp_def.RES_PARA_STR2 - FROM fes_dev_pt_temp_def, fes_rtu_para WHERE fes_dev_pt_temp_def.DEV_TP_NAME=NEW.DEV_TP_NAME AND fes_dev_pt_temp_def.POINT_TYPE=getFesPointType('FES_MIX_CTRL') AND fes_rtu_para.TAG_NAME=NEW.RTU_TAG ORDER BY fes_dev_pt_temp_def.SEQ_NO; - - - INSERT INTO fes_data_block( - TAG_NAME,BLOCK_ID,RTU_TAG,RTU_NO,FUNC_CODE,STAR_ADDR,DATA_LEN,DATA_FARME_TYPE,REF_CYCLE,IS_CREATE_SOE,PARA_INT1,PARA_INT2,DESCRIPTION,LOCATION_ID,SUB_SYSTEM,LD,CALL_MODE,DATA_SET,DATA_SET_TYPE,DATA_SET_CALL_TIME,REPORT_CTRL,FES_POINT_TP_NAME,DEV_TAG,PARA_INT3,PARA_INT4,PARA_STR1,PARA_STR2,IS_ENABLE) SELECT - concat(NEW.TAG_NAME,'.',getAfterLastDot(fes_data_block_temp.TAG_NAME)), fes_data_block_temp.BLOCK_ID,fes_rtu_para.TAG_NAME,fes_rtu_para.RTU_NO,fes_data_block_temp.FUNC_CODE,fes_data_block_temp.STAR_ADDR,fes_data_block_temp.DATA_LEN, fes_data_block_temp.DATA_FARME_TYPE,fes_data_block_temp.REF_CYCLE,fes_data_block_temp.IS_CREATE_SOE,fes_data_block_temp.PARA_INT1, fes_data_block_temp.PARA_INT2, fes_data_block_temp.DESCRIPTION,fes_rtu_para.LOCATION_ID,fes_rtu_para.SUB_SYSTEM,fes_data_block_temp.LD, fes_data_block_temp.CALL_MODE, fes_data_block_temp.DATA_SET, fes_data_block_temp.DATA_SET_TYPE,fes_data_block_temp.DATA_SET_CALL_TIME, fes_data_block_temp.REPORT_CTRL,fes_data_block_temp.TAG_NAME, NEW.TAG_NAME,fes_data_block_temp.PARA_INT3,fes_data_block_temp.PARA_INT4,fes_data_block_temp.PARA_STR1,fes_data_block_temp.PARA_STR2,IS_ENABLE - FROM fes_data_block_temp, fes_rtu_para WHERE fes_data_block_temp.DEV_TP_NAME=NEW.DEV_TP_NAME AND fes_rtu_para.TAG_NAME=NEW.RTU_TAG ORDER BY fes_data_block_temp.BLOCK_ID; - - SET @incVarFesDev1 = getMaxRtuDotNo(NEW.RTU_TAG,getFesPointType('FES_CONST')) - 1; - SET @incVarFesDev2 = @incVarFesDev1; - - INSERT INTO fes_const( - TAG_NAME,DESCRIPTION,GROUP_NO,RTU_TAG,RTU_NO,DOT_NO,SEQ_NO,SUB_SYSTEM,LOCATION_ID,DEV_TAG,VALUE,VALUE_TYPE,UNIT_ID,VALUE_TEXT,VALUE_RATIO,VALUE_ADDED,VALUE_MAX,VALUE_MIN,VALUE_DEFAULT,VALUE_VERIFY,EX_INFO,FES_POINT_TP_NAME,PATH61850,POSITION61850,RES_PARA_INT1,RES_PARA_INT2,RES_PARA_INT3,RES_PARA_INT4,RES_PARA_INT5,RES_PARA_INT6,RES_PARA_INT7,RES_PARA_INT8,RES_PARA_STR1,RES_PARA_STR2,DZ_SEQ) SELECT - concat(NEW.RTU_TAG, '.' , @incVarFesDev1 := @incVarFesDev1 + 1), fes_const_temp.DESCRIPTION,fes_const_temp.GROUP_NO,NEW.RTU_TAG,fes_rtu_para.RTU_NO,@incVarFesDev2 := @incVarFesDev2 + 1,fes_const_temp.SEQ_NO,NEW.SUB_SYSTEM,NEW.LOCATION_ID,NEW.TAG_NAME,fes_const_temp.VALUE,fes_const_temp.VALUE_TYPE,fes_const_temp.UNIT_ID,fes_const_temp.VALUE_TEXT, fes_const_temp.VALUE_RATIO,fes_const_temp.VALUE_ADDED,fes_const_temp.VALUE_MAX,fes_const_temp.VALUE_MIN,fes_const_temp.VALUE_DEFAULT,fes_const_temp.VALUE_VERIFY,fes_const_temp.EX_INFO,fes_const_temp.TAG_NAME,PATH61850, POSITION61850,fes_const_temp.RES_PARA_INT1,fes_const_temp.RES_PARA_INT2,fes_const_temp.RES_PARA_INT3,fes_const_temp.RES_PARA_INT4,fes_const_temp.RES_PARA_INT5,fes_const_temp.RES_PARA_INT6,fes_const_temp.RES_PARA_INT7,fes_const_temp.RES_PARA_INT8,fes_const_temp.RES_PARA_STR1,fes_const_temp.RES_PARA_STR2,DZ_SEQ - FROM fes_const_temp, fes_rtu_para WHERE fes_const_temp.DEV_TP_NAME=NEW.DEV_TP_NAME AND fes_rtu_para.TAG_NAME=NEW.RTU_TAG ORDER BY fes_const_temp.SEQ_NO; - - END; - END IF; - - -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'fes_dev_info', 'tag_name', '', NEW.TAG_NAME, getTableSubSystem('fes_dev_info')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUB_FES_DEV_INFO; -DELIMITER ;; -create trigger TUB_FES_DEV_INFO BEFORE UPDATE on fes_dev_info for each ROW -BEGIN - - IF NEW.DEV_NAME <> OLD.DEV_NAME THEN - SET NEW.TAG_NAME = concat(NEW.RTU_TAG,'.',NEW.DEV_NAME); - END IF; -END;; -DELIMITER ; - -drop trigger if exists TU_FES_DEV_INFO; -DELIMITER ;; -create trigger TU_FES_DEV_INFO AFTER UPDATE on fes_dev_info for each ROW -BEGIN - IF NEW.TAG_NAME <> OLD.TAG_NAME OR NEW.RTU_TAG <> OLD.RTU_TAG OR NEW.LOCATION_ID <> OLD.LOCATION_ID OR NEW.SUB_SYSTEM <> OLD.SUB_SYSTEM - OR NEW.RTU_NO <> OLD.RTU_NO - THEN - BEGIN - - UPDATE fes_accuml INNER JOIN fes_rtu_para - ON fes_rtu_para.TAG_NAME= NEW.RTU_TAG AND fes_accuml.DEV_TAG = OLD.TAG_NAME SET - fes_accuml.TAG_NAME = concat(NEW.RTU_TAG, '.' , fes_accuml.DOT_NO), - fes_accuml.LOCATION_ID = fes_rtu_para.LOCATION_ID, - fes_accuml.SUB_SYSTEM = fes_rtu_para.SUB_SYSTEM, - fes_accuml.RTU_TAG = NEW.RTU_TAG, - fes_accuml.DEV_TAG = NEW.TAG_NAME, - fes_accuml.RTU_NO = fes_rtu_para.RTU_NO; - - - UPDATE fes_analog INNER JOIN fes_rtu_para - ON fes_rtu_para.TAG_NAME= NEW.RTU_TAG AND fes_analog.DEV_TAG = OLD.TAG_NAME SET - fes_analog.TAG_NAME = concat(NEW.RTU_TAG, '.' , fes_analog.DOT_NO), - fes_analog.LOCATION_ID = fes_rtu_para.LOCATION_ID, - fes_analog.SUB_SYSTEM = fes_rtu_para.SUB_SYSTEM, - fes_analog.RTU_TAG = NEW.RTU_TAG, - fes_analog.DEV_TAG = NEW.TAG_NAME, - fes_analog.RTU_NO = fes_rtu_para.RTU_NO; - - - UPDATE fes_digital INNER JOIN fes_rtu_para - ON fes_rtu_para.TAG_NAME= NEW.RTU_TAG AND fes_digital.DEV_TAG = OLD.TAG_NAME SET - fes_digital.TAG_NAME = concat(NEW.RTU_TAG, '.' , fes_digital.DOT_NO ), - fes_digital.LOCATION_ID = fes_rtu_para.LOCATION_ID, - fes_digital.SUB_SYSTEM = fes_rtu_para.SUB_SYSTEM, - fes_digital.RTU_TAG = NEW.RTU_TAG, - fes_digital.DEV_TAG = NEW.TAG_NAME, - fes_digital.RTU_NO = fes_rtu_para.RTU_NO; - - - UPDATE fes_mix INNER JOIN fes_rtu_para - ON fes_rtu_para.TAG_NAME= NEW.RTU_TAG AND fes_mix.DEV_TAG = OLD.TAG_NAME SET - fes_mix.TAG_NAME = concat(NEW.RTU_TAG, '.' , fes_mix.DOT_NO), - fes_mix.LOCATION_ID = fes_rtu_para.LOCATION_ID, - fes_mix.SUB_SYSTEM = fes_rtu_para.SUB_SYSTEM, - fes_mix.RTU_TAG = NEW.RTU_TAG, - fes_mix.DEV_TAG = NEW.TAG_NAME, - fes_mix.RTU_NO = fes_rtu_para.RTU_NO; - - - UPDATE fes_analog_ctrl INNER JOIN fes_rtu_para - ON fes_rtu_para.TAG_NAME= NEW.RTU_TAG AND fes_analog_ctrl.DEV_TAG = OLD.TAG_NAME SET - fes_analog_ctrl.TAG_NAME = concat(NEW.RTU_TAG, '.' , fes_analog_ctrl.DOT_NO), - fes_analog_ctrl.LOCATION_ID = fes_rtu_para.LOCATION_ID, - fes_analog_ctrl.SUB_SYSTEM = fes_rtu_para.SUB_SYSTEM, - fes_analog_ctrl.RTU_TAG = NEW.RTU_TAG, - fes_analog_ctrl.DEV_TAG = NEW.TAG_NAME, - fes_analog_ctrl.RTU_NO = fes_rtu_para.RTU_NO; - - - UPDATE fes_digital_ctrl INNER JOIN fes_rtu_para - ON fes_rtu_para.TAG_NAME= NEW.RTU_TAG AND fes_digital_ctrl.DEV_TAG = OLD.TAG_NAME SET - fes_digital_ctrl.TAG_NAME = concat(NEW.RTU_TAG, '.' , fes_digital_ctrl.DOT_NO), - fes_digital_ctrl.LOCATION_ID = fes_rtu_para.LOCATION_ID, - fes_digital_ctrl.SUB_SYSTEM = fes_rtu_para.SUB_SYSTEM, - fes_digital_ctrl.RTU_TAG = NEW.RTU_TAG, - fes_digital_ctrl.DEV_TAG = NEW.TAG_NAME, - fes_digital_ctrl.RTU_NO = fes_rtu_para.RTU_NO; - - - UPDATE fes_mix_ctrl INNER JOIN fes_rtu_para - ON fes_rtu_para.TAG_NAME= NEW.RTU_TAG AND fes_mix_ctrl.DEV_TAG = OLD.TAG_NAME SET - fes_mix_ctrl.TAG_NAME = concat(NEW.RTU_TAG, '.' , fes_mix_ctrl.DOT_NO), - fes_mix_ctrl.LOCATION_ID = fes_rtu_para.LOCATION_ID, - fes_mix_ctrl.SUB_SYSTEM = fes_rtu_para.SUB_SYSTEM, - fes_mix_ctrl.RTU_TAG = NEW.RTU_TAG, - fes_mix_ctrl.DEV_TAG = NEW.TAG_NAME, - fes_mix_ctrl.RTU_NO = fes_rtu_para.RTU_NO; - - UPDATE fes_data_block INNER JOIN fes_rtu_para - ON fes_rtu_para.TAG_NAME= NEW.RTU_TAG AND fes_data_block.DEV_TAG = OLD.TAG_NAME - SET - fes_data_block.LOCATION_ID = NEW.LOCATION_ID, - fes_data_block.SUB_SYSTEM = NEW.SUB_SYSTEM, - fes_data_block.DEV_TAG = NEW.TAG_NAME, - fes_data_block.RTU_TAG = NEW.RTU_TAG, - fes_data_block.TAG_NAME = concat(NEW.TAG_NAME, '.', getAfterLastDot(fes_data_block.TAG_NAME)), - fes_data_block.RTU_NO = fes_rtu_para.RTU_NO; - - UPDATE fes_const INNER JOIN fes_rtu_para - ON fes_rtu_para.TAG_NAME= NEW.RTU_TAG AND fes_const.DEV_TAG = OLD.TAG_NAME - SET - fes_const.LOCATION_ID = NEW.LOCATION_ID, - fes_const.SUB_SYSTEM = NEW.SUB_SYSTEM, - fes_const.DEV_TAG = NEW.TAG_NAME, - fes_const.RTU_TAG = NEW.RTU_TAG, - fes_const.RTU_NO = fes_rtu_para.RTU_NO, - fes_const.TAG_NAME = concat(NEW.RTU_TAG, '.' , fes_const.DOT_NO); - - - END; - END IF; -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'fes_dev_info', 'tag_name', OLD.TAG_NAME, NEW.TAG_NAME, getTableSubSystem('fes_dev_info')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TD_FES_DEV_INFO; -DELIMITER ;; -create trigger TD_FES_DEV_INFO BEFORE DELETE on fes_dev_info for each ROW -BEGIN -DELETE FROM fes_accuml WHERE TAG_NAME LIKE concat(OLD.RTU_TAG,'%') AND DEV_TAG = OLD.TAG_NAME; -DELETE FROM fes_analog WHERE TAG_NAME LIKE concat(OLD.RTU_TAG,'%') AND DEV_TAG = OLD.TAG_NAME; -DELETE FROM fes_digital WHERE TAG_NAME LIKE concat(OLD.RTU_TAG,'%') AND DEV_TAG = OLD.TAG_NAME; -DELETE FROM fes_mix WHERE TAG_NAME LIKE concat(OLD.RTU_TAG,'%') AND DEV_TAG = OLD.TAG_NAME; -DELETE FROM fes_analog_ctrl WHERE TAG_NAME LIKE concat(OLD.RTU_TAG,'%') AND DEV_TAG = OLD.TAG_NAME; -DELETE FROM fes_digital_ctrl WHERE TAG_NAME LIKE concat(OLD.RTU_TAG,'%') AND DEV_TAG = OLD.TAG_NAME; -DELETE FROM fes_mix_ctrl WHERE TAG_NAME LIKE concat(OLD.RTU_TAG,'%') AND DEV_TAG = OLD.TAG_NAME; -DELETE FROM fes_data_block WHERE TAG_NAME LIKE concat(OLD.RTU_TAG,'%') AND DEV_TAG = OLD.TAG_NAME; -DELETE FROM fes_const WHERE TAG_NAME LIKE concat(OLD.RTU_TAG,'%') AND DEV_TAG = OLD.TAG_NAME; -END;; -DELIMITER ; - -drop trigger if exists TDA_FES_DEV_INFO; -DELIMITER ;; -create trigger TDA_FES_DEV_INFO AFTER DELETE on fes_dev_info for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'fes_dev_info', 'tag_name', OLD.TAG_NAME, '', getTableSubSystem('fes_dev_info')); -END IF; -END;; -DELIMITER ; - -drop table if exists fes_dev_pt_temp_def; -CREATE TABLE `fes_dev_pt_temp_def` ( - `TAG_NAME` varchar(64) NOT NULL COMMENT '点标签', - `POINT_TYPE` decimal(10,0) NOT NULL COMMENT '测点类型', - `DEV_TP_NAME` varchar(64) NOT NULL COMMENT '设备名称', - `SEQ_NO` decimal(10,0) NOT NULL COMMENT '设备点序号', - `FUN_CODE` decimal(10,0) DEFAULT NULL COMMENT '功能号/定值代号', - `INFO_NO` decimal(10,0) DEFAULT NULL COMMENT '信息号/定值组号', - `RATIO` decimal(22,6) DEFAULT NULL COMMENT '变比系数', - `REVISE` decimal(22,6) DEFAULT NULL COMMENT '修正值', - `APPEND` decimal(22,6) DEFAULT NULL COMMENT '附件值/定值序号', - `ASS_DIG` decimal(10,0) DEFAULT NULL COMMENT '关联遥信', - `CTRL_TYPE` decimal(10,0) DEFAULT NULL COMMENT '遥控类型', - `ATTR` decimal(10,0) DEFAULT NULL COMMENT '点属性', - `CONST_CFG_FILE` varchar(64) DEFAULT NULL COMMENT '定值描述文件', - `COEFFICIENT` decimal(22,6) DEFAULT NULL COMMENT '装置系数', - `SHORT_NAME` varchar(32) DEFAULT NULL COMMENT '点名缩写', - `DESCRIPTION` varchar(128) DEFAULT NULL COMMENT '点描述', - `RES_PARA_INT1` decimal(10,0) DEFAULT NULL, - `RES_PARA_INT2` decimal(10,0) DEFAULT NULL, - `RES_PARA_INT3` decimal(10,0) DEFAULT NULL, - `RES_PARA_INT4` decimal(10,0) DEFAULT NULL, - `PATH61850` varchar(64) DEFAULT NULL, - `POSITION61850` decimal(10,0) DEFAULT NULL, - `YK_SELECT61850` varchar(64) DEFAULT NULL, - `YK_EXE61850` varchar(64) DEFAULT NULL, - `YK_CANCLE61850` varchar(64) DEFAULT NULL, - `YK_DOUBLE_SELECT61850` varchar(64) DEFAULT NULL, - `YK_DOUBLE_EXE61850` varchar(64) DEFAULT NULL, - `YK_DOUBLE_CANCLE61850` varchar(64) DEFAULT NULL, - `PULSE_TIME` decimal(10,0) DEFAULT NULL, - `RES_PARA_INT5` decimal(10,0) DEFAULT NULL, - `RES_PARA_INT6` decimal(10,0) DEFAULT NULL, - `RES_PARA_INT7` decimal(10,0) DEFAULT NULL, - `RES_PARA_INT8` decimal(10,0) DEFAULT NULL, - `RES_PARA_STR1` varchar(64) DEFAULT NULL, - `RES_PARA_STR2` varchar(256) DEFAULT NULL, - `IS_FILTER` decimal(10,0) DEFAULT NULL, - `PERCENT` decimal(10,0) DEFAULT NULL, - `DEADBAND_TYPE` decimal(10,0) DEFAULT NULL, - `DEADBAND` decimal(22,6) DEFAULT NULL, - `ZEROBAND` decimal(22,6) DEFAULT NULL, - `MAX_RANGE` decimal(22,6) DEFAULT NULL, - `MIN_RANGE` decimal(22,6) DEFAULT NULL, - `REVERS` decimal(10,0) DEFAULT NULL, - `FILTER_ERR` decimal(10,0) DEFAULT NULL, - `FILTER_DISTURB` decimal(10,0) DEFAULT NULL, - `DISTURB_TIME` decimal(10,0) DEFAULT NULL, - PRIMARY KEY (`TAG_NAME`,`POINT_TYPE`), - KEY `IN_FES_DEV_PT_TEMP_DEF` (`DEV_TP_NAME`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='前置点模板'; - -drop trigger if exists TI_FES_DEV_PT_TEMP_DEF; -DELIMITER ;; -create trigger TI_FES_DEV_PT_TEMP_DEF AFTER INSERT on fes_dev_pt_temp_def for each ROW -body:BEGIN - - /* - IF NEW.POINT_TYPE = getFesPointType('FES_ACC') THEN - INSERT INTO fes_accuml( - TAG_NAME, LOCATION_ID, SUB_SYSTEM, DOT_NO, RTU_TAG, DEV_TAG, SEQ_NO, APP_TABLE_NAME, APP_TAG_NAME, APP_COLUMN_NAME, BASE, COEFF, RTU_NO, RES_PARA_INT1, RES_PARA_INT2, RES_PARA_INT3, RES_PARA_INT4, DESCRIPTION, FES_POINT_TP_NAME,PATH61850,POSITION61850) SELECT - concat(fes_dev_info.RTU_TAG, '.' , getMaxRtuDotNo(fes_dev_info.RTU_TAG,getFesPointType('FES_ACC'))), fes_rtu_para.LOCATION_ID ,fes_rtu_para.SUB_SYSTEM ,getMaxRtuDotNo(fes_dev_info.RTU_TAG,getFesPointType('FES_ACC')), fes_dev_info.RTU_TAG,fes_dev_info.TAG_NAME,NEW.SEQ_NO,'', '', '', '0', '1', fes_rtu_para.RTU_NO ,NEW.RES_PARA_INT1, NEW.RES_PARA_INT2, NEW.RES_PARA_INT3, NEW.RES_PARA_INT4, NEW.DESCRIPTION ,NEW.TAG_NAME ,NEW.PATH61850,NEW.POSITION61850 - FROM fes_dev_info, fes_rtu_para WHERE fes_dev_info.DEV_TP_NAME=NEW.DEV_TP_NAME AND fes_rtu_para.TAG_NAME=fes_dev_info.RTU_TAG; - END IF; - - IF NEW.POINT_TYPE = getFesPointType('FES_ANA') THEN - INSERT INTO fes_analog( - TAG_NAME, LOCATION_ID, SUB_SYSTEM, DEV_TAG, SEQ_NO, RTU_TAG, RTU_NO, DOT_NO, APP_TABLE_NAME, APP_TAG_NAME, APP_COLUMN_NAME, IS_FILTER, PERCENT, DEADBAND_TYPE, DEADBAND, ZEROBAND, BASE, COEFF, MAX_RANGE, MIN_RANGE, RES_PARA_INT1, RES_PARA_INT2, RES_PARA_INT3, RES_PARA_INT4, DESCRIPTION, FES_POINT_TP_NAME, PATH61850, POSITION61850) SELECT - concat(fes_dev_info.RTU_TAG, '.' , getMaxRtuDotNo(fes_dev_info.RTU_TAG,getFesPointType('FES_ANA'))), fes_rtu_para.LOCATION_ID ,fes_rtu_para.SUB_SYSTEM , fes_dev_info.TAG_NAME,NEW.SEQ_NO, fes_dev_info.RTU_TAG,fes_rtu_para.RTU_NO , getMaxRtuDotNo(fes_dev_info.RTU_TAG,getFesPointType('FES_ANA')),'', '', '', 0, 0, '0', '0', '0', '0', '1', 65536, 0, NEW.RES_PARA_INT1, NEW.RES_PARA_INT2, NEW.RES_PARA_INT3, NEW.RES_PARA_INT4, NEW.DESCRIPTION , NEW.TAG_NAME ,NEW.PATH61850,NEW.POSITION61850 - FROM fes_dev_info, fes_rtu_para WHERE fes_dev_info.DEV_TP_NAME=NEW.DEV_TP_NAME AND fes_rtu_para.TAG_NAME=fes_dev_info.RTU_TAG; - END IF; - - IF NEW.POINT_TYPE = getFesPointType('FES_DIG') THEN - INSERT INTO fes_digital( - TAG_NAME, LOCATION_ID, SUB_SYSTEM, DEV_TAG, SEQ_NO, RTU_TAG, DOT_NO, APP_TABLE_NAME, APP_TAG_NAME, APP_COLUMN_NAME, FILTER_ERR, FILTER_DISTURB, DISTURB_TIME, REVERS, RTU_NO, RES_PARA_INT1, RES_PARA_INT2, RES_PARA_INT3, RES_PARA_INT4, DESCRIPTION, FES_POINT_TP_NAME,PATH61850,POSITION61850) SELECT - concat(fes_dev_info.RTU_TAG, '.' , getMaxRtuDotNo(fes_dev_info.RTU_TAG,getFesPointType('FES_DIG'))), fes_rtu_para.LOCATION_ID ,fes_rtu_para.SUB_SYSTEM , fes_dev_info.TAG_NAME,NEW.SEQ_NO, fes_dev_info.RTU_TAG,getMaxRtuDotNo(fes_dev_info.RTU_TAG,getFesPointType('FES_DIG')), '', '', '', 0, 0, 0, 0, fes_rtu_para.RTU_NO , NEW.RES_PARA_INT1, NEW.RES_PARA_INT2, NEW.RES_PARA_INT3, NEW.RES_PARA_INT4, NEW.DESCRIPTION , NEW.TAG_NAME ,NEW.PATH61850,NEW.POSITION61850 - FROM fes_dev_info, fes_rtu_para WHERE fes_dev_info.DEV_TP_NAME=NEW.DEV_TP_NAME AND fes_rtu_para.TAG_NAME=fes_dev_info.RTU_TAG; - END IF; - - - IF NEW.POINT_TYPE = getFesPointType('FES_MIX') THEN - INSERT INTO fes_mix( - TAG_NAME, DESCRIPTION, LOCATION_ID, SUB_SYSTEM, RTU_TAG, RTU_NO, DOT_NO, DEV_TAG, SEQ_NO, APP_TABLE_NAME, APP_TAG_NAME, APP_COLUMN_NAME, BASE, COEFF, MAX_RANGE, MIN_RANGE, RES_PARA_INT1, RES_PARA_INT2, RES_PARA_INT3, RES_PARA_INT4, FES_POINT_TP_NAME,PATH61850,POSITION61850) SELECT - concat(fes_dev_info.RTU_TAG, '.' , getMaxRtuDotNo(fes_dev_info.RTU_TAG,getFesPointType('FES_MIX'))), NEW.DESCRIPTION ,fes_rtu_para.LOCATION_ID ,fes_rtu_para.SUB_SYSTEM , fes_rtu_para.TAG_NAME,fes_rtu_para.RTU_NO, getMaxRtuDotNo(fes_dev_info.RTU_TAG,getFesPointType('FES_MIX')), fes_dev_info.TAG_NAME, NEW.SEQ_NO, '', '', '', '0', '1', 65536, 0, NEW.RES_PARA_INT1, NEW.RES_PARA_INT2, NEW.RES_PARA_INT3, NEW.RES_PARA_INT4, NEW.TAG_NAME ,NEW.PATH61850,NEW.POSITION61850 - FROM fes_dev_info, fes_rtu_para WHERE fes_dev_info.DEV_TP_NAME=NEW.DEV_TP_NAME AND fes_rtu_para.TAG_NAME=fes_dev_info.RTU_TAG; - END IF; - - - IF NEW.POINT_TYPE = getFesPointType('FES_ANA_CTRL') THEN - INSERT INTO fes_analog_ctrl( - TAG_NAME, DESCRIPTION, LOCATION_ID, SUB_SYSTEM, RTU_TAG, RTU_NO, DOT_NO, DEV_TAG, SEQ_NO, BASE, COEFF, MAX_RANGE, MIN_RANGE, POINT_TP_NAME,RES_PARA_INT1,RES_PARA_INT2,RES_PARA_INT3,RES_PARA_INT4,PATH61850,POSITION61850)SELECT - concat(fes_dev_info.RTU_TAG, '.' , getMaxRtuDotNo(fes_dev_info.RTU_TAG,getFesPointType('FES_ANA_CTRL'))),NEW.DESCRIPTION,fes_rtu_para.LOCATION_ID ,fes_rtu_para.SUB_SYSTEM , fes_rtu_para.TAG_NAME,fes_rtu_para.RTU_NO, getMaxRtuDotNo(fes_dev_info.RTU_TAG,getFesPointType('FES_ANA_CTRL')), fes_dev_info.TAG_NAME,NEW.SEQ_NO, '0', '1', 65536, 0, NEW.TAG_NAME ,NEW.RES_PARA_INT1,NEW.RES_PARA_INT2,NEW.RES_PARA_INT3,NEW.RES_PARA_INT4,NEW.PATH61850,NEW.POSITION61850 - FROM fes_dev_info, fes_rtu_para WHERE fes_dev_info.DEV_TP_NAME=NEW.DEV_TP_NAME AND fes_rtu_para.TAG_NAME=fes_dev_info.RTU_TAG; - END IF; - - - IF NEW.POINT_TYPE = getFesPointType('FES_DIG_CTRL') THEN - INSERT INTO fes_digital_ctrl( - TAG_NAME, DESCRIPTION, LOCATION_ID, SUB_SYSTEM, RTU_TAG, RTU_NO, DOT_NO, DEV_TAG, SEQ_NO, REVERS, POINT_TP_NAME,RES_PARA_INT1, RES_PARA_INT2, RES_PARA_INT3, RES_PARA_INT4, PATH61850, POSITION61850, YK_SELECT61850, YK_EXE61850, YK_CANCLE61850, YK_DOUBLE_SELECT61850, YK_DOUBLE_EXE61850, YK_DOUBLE_CANCLE61850, PULSE_TIME)SELECT - concat(fes_dev_info.RTU_TAG, '.' , getMaxRtuDotNo(fes_dev_info.RTU_TAG,getFesPointType('FES_DIG_CTRL'))),NEW.DESCRIPTION,fes_rtu_para.LOCATION_ID ,fes_rtu_para.SUB_SYSTEM , fes_rtu_para.TAG_NAME,fes_rtu_para.RTU_NO, getMaxRtuDotNo(fes_dev_info.RTU_TAG,getFesPointType('FES_DIG_CTRL')), fes_dev_info.TAG_NAME,NEW.SEQ_NO, 0, NEW.TAG_NAME, NEW.RES_PARA_INT1, NEW.RES_PARA_INT2, NEW.RES_PARA_INT3, NEW.RES_PARA_INT4,NEW.PATH61850,NEW.POSITION61850,NEW.YK_SELECT61850, NEW.YK_EXE61850, NEW.YK_CANCLE61850, NEW.YK_DOUBLE_SELECT61850, NEW.YK_DOUBLE_EXE61850, NEW.YK_DOUBLE_CANCLE61850, NEW.PULSE_TIME - FROM fes_dev_info, fes_rtu_para WHERE fes_dev_info.DEV_TP_NAME=NEW.DEV_TP_NAME AND fes_rtu_para.TAG_NAME=fes_dev_info.RTU_TAG; - END IF; - - - IF NEW.POINT_TYPE = getFesPointType('FES_MIX_CTRL') THEN - INSERT INTO fes_mix_ctrl( - TAG_NAME, DESCRIPTION, LOCATION_ID, SUB_SYSTEM, RTU_TAG, RTU_NO, DOT_NO, DEV_TAG, SEQ_NO, BASE, COEFF, MIN_RANGE, MAX_RANGE, POINT_TP_NAME,RES_PARA_INT1, RES_PARA_INT2, RES_PARA_INT3, RES_PARA_INT4,PATH61850,POSITION61850)SELECT - concat(fes_dev_info.RTU_TAG, '.' , getMaxRtuDotNo(fes_dev_info.RTU_TAG,getFesPointType('FES_MIX_CTRL'))),NEW.DESCRIPTION,fes_rtu_para.LOCATION_ID ,fes_rtu_para.SUB_SYSTEM , fes_rtu_para.TAG_NAME,fes_rtu_para.RTU_NO, getMaxRtuDotNo(fes_dev_info.RTU_TAG,getFesPointType('FES_MIX_CTRL')), fes_dev_info.TAG_NAME,NEW.SEQ_NO,'0', '1', 0, 65536, NEW.TAG_NAME, NEW.RES_PARA_INT1, NEW.RES_PARA_INT2, NEW.RES_PARA_INT3, NEW.RES_PARA_INT4,NEW.PATH61850,NEW.POSITION61850 - FROM fes_dev_info, fes_rtu_para WHERE fes_dev_info.DEV_TP_NAME=NEW.DEV_TP_NAME AND fes_rtu_para.TAG_NAME=fes_dev_info.RTU_TAG; - END IF; - */ -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'fes_dev_pt_temp_def', 'tag_name', '', NEW.TAG_NAME, getTableSubSystem('fes_dev_pt_temp_def')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TU_FES_DEV_PT_TEMP_DEF; -DELIMITER ;; -create trigger TU_FES_DEV_PT_TEMP_DEF AFTER UPDATE on fes_dev_pt_temp_def for each ROW -BEGIN - - /* - IF NEW.POINT_TYPE = getFesPointType('FES_ACC') THEN - UPDATE fes_accuml SET - SEQ_NO = NEW.SEQ_NO, - DESCRIPTION = NEW.DESCRIPTION, - FES_POINT_TP_NAME= NEW.TAG_NAME, - PATH61850 = NEW.PATH61850, - POSITION61850 = NEW.POSITION61850 - WHERE FES_POINT_TP_NAME = OLD.TAG_NAME; - END IF; - - IF NEW.POINT_TYPE = getFesPointType('FES_ANA') THEN - UPDATE fes_analog SET - SEQ_NO = NEW.SEQ_NO, - DESCRIPTION = NEW.DESCRIPTION, - FES_POINT_TP_NAME= NEW.TAG_NAME, - PATH61850 = NEW.PATH61850, - POSITION61850 = NEW.POSITION61850 - WHERE FES_POINT_TP_NAME = OLD.TAG_NAME; - END IF; - - IF NEW.POINT_TYPE = getFesPointType('FES_DIG') THEN - UPDATE fes_digital SET - SEQ_NO = NEW.SEQ_NO, - DESCRIPTION = NEW.DESCRIPTION, - FES_POINT_TP_NAME= NEW.TAG_NAME, - PATH61850 = NEW.PATH61850, - POSITION61850 = NEW.POSITION61850 - WHERE FES_POINT_TP_NAME = OLD.TAG_NAME; - END IF; - - - IF NEW.POINT_TYPE = getFesPointType('FES_MIX') THEN - UPDATE fes_mix SET - SEQ_NO = NEW.SEQ_NO, - DESCRIPTION = NEW.DESCRIPTION, - FES_POINT_TP_NAME= NEW.TAG_NAME, - PATH61850 = NEW.PATH61850, - POSITION61850 = NEW.POSITION61850 - WHERE FES_POINT_TP_NAME = OLD.TAG_NAME; - END IF; - - - IF NEW.POINT_TYPE = getFesPointType('FES_ANA_CTRL') THEN - UPDATE fes_analog_ctrl SET - SEQ_NO = NEW.SEQ_NO, - DESCRIPTION = NEW.DESCRIPTION, - POINT_TP_NAME= NEW.TAG_NAME, - PATH61850 = NEW.PATH61850, - POSITION61850 = NEW.POSITION61850 - WHERE POINT_TP_NAME = OLD.TAG_NAME; - END IF; - - - IF NEW.POINT_TYPE = getFesPointType('FES_DIG_CTRL') THEN - UPDATE fes_digital_ctrl SET - SEQ_NO = NEW.SEQ_NO, - DESCRIPTION = NEW.DESCRIPTION, - POINT_TP_NAME= NEW.TAG_NAME, - PATH61850 = NEW.PATH61850, - POSITION61850 = NEW.POSITION61850, - YK_SELECT61850 = NEW.YK_SELECT61850, - YK_EXE61850 = NEW.YK_EXE61850, - YK_CANCLE61850 = NEW.YK_CANCLE61850, - YK_DOUBLE_SELECT61850 = NEW.YK_DOUBLE_SELECT61850, - YK_DOUBLE_EXE61850 = NEW.YK_DOUBLE_EXE61850, - YK_DOUBLE_CANCLE61850 = NEW.YK_DOUBLE_CANCLE61850, - PULSE_TIME = NEW.PULSE_TIME - WHERE POINT_TP_NAME = OLD.TAG_NAME; - END IF; - - - IF NEW.POINT_TYPE = getFesPointType('FES_MIX_CTRL') THEN - UPDATE fes_mix_ctrl SET - SEQ_NO = NEW.SEQ_NO, - DESCRIPTION = NEW.DESCRIPTION, - POINT_TP_NAME= NEW.TAG_NAME, - PATH61850 = NEW.PATH61850, - POSITION61850 = NEW.POSITION61850 - WHERE POINT_TP_NAME = OLD.TAG_NAME; - END IF; - */ - #更新套件内容 - IF NEW.TAG_NAME <> OLD.TAG_NAME THEN - BEGIN - IF NEW.POINT_TYPE = getFesPointType('FES_ACC') THEN - UPDATE temp_plugin_point_map_acc SET FES_TEMP_POINT_NAME = getAfterLastDot(NEW.TAG_NAME) - WHERE FES_TEMP_NAME = OLD.DEV_TP_NAME AND FES_TEMP_POINT_NAME = getAfterLastDot(OLD.TAG_NAME); - ELSEIF NEW.POINT_TYPE = getFesPointType('FES_ANA') THEN - UPDATE temp_plugin_point_map_ana SET FES_TEMP_POINT_NAME = getAfterLastDot(NEW.TAG_NAME) - WHERE FES_TEMP_NAME = OLD.DEV_TP_NAME AND FES_TEMP_POINT_NAME = getAfterLastDot(OLD.TAG_NAME); - ELSEIF NEW.POINT_TYPE = getFesPointType('FES_MIX') THEN - UPDATE temp_plugin_point_map_mix SET FES_TEMP_POINT_NAME = getAfterLastDot(NEW.TAG_NAME) - WHERE FES_TEMP_NAME = OLD.DEV_TP_NAME AND FES_TEMP_POINT_NAME = getAfterLastDot(OLD.TAG_NAME); - ELSEIF NEW.POINT_TYPE = getFesPointType('FES_DIG') THEN - UPDATE temp_plugin_point_map_dig SET - FES_TEMP_POINT_NAME1 = IF(FES_TEMP_POINT_NAME1 = getAfterLastDot(OLD.TAG_NAME),getAfterLastDot(NEW.TAG_NAME),FES_TEMP_POINT_NAME1), - FES_TEMP_POINT_NAME2 = IF(FES_TEMP_POINT_NAME2 = getAfterLastDot(OLD.TAG_NAME),getAfterLastDot(NEW.TAG_NAME),FES_TEMP_POINT_NAME2), - FES_TEMP_POINT_NAME3 = IF(FES_TEMP_POINT_NAME3 = getAfterLastDot(OLD.TAG_NAME),getAfterLastDot(NEW.TAG_NAME),FES_TEMP_POINT_NAME3), - FES_TEMP_POINT_NAME4 = IF(FES_TEMP_POINT_NAME4 = getAfterLastDot(OLD.TAG_NAME),getAfterLastDot(NEW.TAG_NAME),FES_TEMP_POINT_NAME4), - FES_TEMP_POINT_NAME5 = IF(FES_TEMP_POINT_NAME5 = getAfterLastDot(OLD.TAG_NAME),getAfterLastDot(NEW.TAG_NAME),FES_TEMP_POINT_NAME5) - WHERE FES_TEMP_NAME = OLD.DEV_TP_NAME; - ELSEIF NEW.POINT_TYPE = getFesPointType('FES_ANA_CTRL') THEN - UPDATE temp_plugin_point_map_ana SET FES_TEMP_OUT_NAME = getAfterLastDot(NEW.TAG_NAME) - WHERE FES_TEMP_NAME = OLD.DEV_TP_NAME AND FES_TEMP_OUT_NAME = getAfterLastDot(OLD.TAG_NAME); - ELSEIF NEW.POINT_TYPE = getFesPointType('FES_MIX_CTRL') THEN - UPDATE temp_plugin_point_map_mix SET FES_TEMP_OUT_NAME = getAfterLastDot(NEW.TAG_NAME) - WHERE FES_TEMP_NAME = OLD.DEV_TP_NAME AND FES_TEMP_OUT_NAME = getAfterLastDot(OLD.TAG_NAME); - ELSEIF NEW.POINT_TYPE = getFesPointType('FES_DIG_CTRL') THEN - UPDATE temp_plugin_point_map_dig SET - FES_TEMP_OUT_NAME1 = IF(FES_TEMP_OUT_NAME1 = getAfterLastDot(OLD.TAG_NAME),getAfterLastDot(NEW.TAG_NAME),FES_TEMP_OUT_NAME1), - FES_TEMP_OUT_NAME2 = IF(FES_TEMP_OUT_NAME2 = getAfterLastDot(OLD.TAG_NAME),getAfterLastDot(NEW.TAG_NAME),FES_TEMP_OUT_NAME2), - FES_TEMP_OUT_NAME3 = IF(FES_TEMP_OUT_NAME3 = getAfterLastDot(OLD.TAG_NAME),getAfterLastDot(NEW.TAG_NAME),FES_TEMP_OUT_NAME3), - FES_TEMP_OUT_NAME4 = IF(FES_TEMP_OUT_NAME4 = getAfterLastDot(OLD.TAG_NAME),getAfterLastDot(NEW.TAG_NAME),FES_TEMP_OUT_NAME4), - FES_TEMP_OUT_NAME5 = IF(FES_TEMP_OUT_NAME5 = getAfterLastDot(OLD.TAG_NAME),getAfterLastDot(NEW.TAG_NAME),FES_TEMP_OUT_NAME5) - WHERE FES_TEMP_NAME = OLD.DEV_TP_NAME; - END IF; - END; - END IF; - -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'fes_dev_pt_temp_def', 'tag_name', OLD.TAG_NAME, NEW.TAG_NAME, getTableSubSystem('fes_dev_pt_temp_def')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TD_FES_DEV_PT_TEMP_DEF; -DELIMITER ;; -create trigger TD_FES_DEV_PT_TEMP_DEF BEFORE DELETE on fes_dev_pt_temp_def for each ROW -BEGIN - - /* - IF OLD.POINT_TYPE = getFesPointType('FES_ACC') THEN - DELETE FROM fes_accuml WHERE FES_POINT_TP_NAME = OLD.TAG_NAME; - END IF; - - IF OLD.POINT_TYPE = getFesPointType('FES_ANA') THEN - DELETE FROM fes_analog WHERE FES_POINT_TP_NAME = OLD.TAG_NAME; - END IF; - - IF OLD.POINT_TYPE = getFesPointType('FES_DIG') THEN - DELETE FROM fes_digital WHERE FES_POINT_TP_NAME = OLD.TAG_NAME; - END IF; - - - IF OLD.POINT_TYPE = getFesPointType('FES_MIX') THEN - DELETE FROM fes_mix WHERE FES_POINT_TP_NAME = OLD.TAG_NAME; - END IF; - - - IF OLD.POINT_TYPE = getFesPointType('FES_ANA_CTRL') THEN - DELETE FROM fes_analog_ctrl WHERE POINT_TP_NAME = OLD.TAG_NAME; - END IF; - - - IF OLD.POINT_TYPE = getFesPointType('FES_DIG_CTRL') THEN - DELETE FROM fes_digital_ctrl WHERE POINT_TP_NAME = OLD.TAG_NAME; - END IF; - - - IF OLD.POINT_TYPE = getFesPointType('FES_MIX_CTRL') THEN - DELETE FROM fes_mix_ctrl WHERE POINT_TP_NAME = OLD.TAG_NAME; - END IF; - */ -END;; -DELIMITER ; - -drop trigger if exists TDA_FES_DEV_PT_TEMP_DEF; -DELIMITER ;; -create trigger TDA_FES_DEV_PT_TEMP_DEF AFTER DELETE on fes_dev_pt_temp_def for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'fes_dev_pt_temp_def', 'tag_name', OLD.TAG_NAME, '', getTableSubSystem('fes_dev_pt_temp_def')); -END IF; -END;; -DELIMITER ; - -drop table if exists fes_dev_temp_def; -CREATE TABLE `fes_dev_temp_def` ( - `TAG_NAME` varchar(64) NOT NULL COMMENT '设备名称', - `DEV_TYPE_ID` decimal(10,0) NOT NULL COMMENT '设备类型', - `DEV_MODEL` varchar(64) DEFAULT NULL COMMENT '设备型号', - `DESCRIPTION` varchar(128) DEFAULT NULL COMMENT '设备描述', - `SUB_SYSTEM` decimal(10,0) DEFAULT NULL COMMENT '专业子系统', - `PARA_STR1` varchar(64) DEFAULT NULL COMMENT '备用字段1', - `PARA_STR2` varchar(256) DEFAULT NULL COMMENT '备用字段2', - PRIMARY KEY (`TAG_NAME`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='设备模板定义表'; - -drop trigger if exists TIA_FES_DEV_TEMP_DEF; -DELIMITER ;; -create trigger TIA_FES_DEV_TEMP_DEF AFTER INSERT on fes_dev_temp_def for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'fes_dev_temp_def', 'tag_name', '', NEW.TAG_NAME, getTableSubSystem('fes_dev_temp_def')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TU_FES_DEV_TEMP_DEF; -DELIMITER ;; -create trigger TU_FES_DEV_TEMP_DEF AFTER UPDATE on fes_dev_temp_def for each ROW -BEGIN - - UPDATE fes_dev_pt_temp_def SET - TAG_NAME = concat(NEW.TAG_NAME, '.', getAfterLastDot(TAG_NAME)), - DEV_TP_NAME = NEW.TAG_NAME - WHERE DEV_TP_NAME = OLD.TAG_NAME; - - UPDATE fes_const_temp SET - TAG_NAME = concat(NEW.TAG_NAME, '.', getAfterLastDot(TAG_NAME)), - DEV_TP_NAME = NEW.TAG_NAME - WHERE DEV_TP_NAME = OLD.TAG_NAME; - - UPDATE fes_data_block_temp SET - TAG_NAME = concat(NEW.TAG_NAME, '.', getAfterLastDot(TAG_NAME)), - DEV_TP_NAME = NEW.TAG_NAME - WHERE DEV_TP_NAME = OLD.TAG_NAME; - - /* - UPDATE fes_dev_info SET - DEV_TP_NAME = NEW.TAG_NAME, - DEV_TYPE_ID = NEW.DEV_TYPE_ID - WHERE DEV_TP_NAME = OLD.TAG_NAME; - */ - - #更新套件 - IF OLD.TAG_NAME != NEW.TAG_NAME THEN - BEGIN - UPDATE temp_plugin_fes_dev_map SET FES_TEMP_NAME = NEW.TAG_NAME WHERE FES_TEMP_NAME = OLD.TAG_NAME; - END; - END IF; -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'fes_dev_temp_def', 'tag_name', OLD.TAG_NAME, NEW.TAG_NAME, getTableSubSystem('fes_dev_temp_def')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TD_FES_DEV_TEMP_DEF; -DELIMITER ;; -create trigger TD_FES_DEV_TEMP_DEF BEFORE DELETE on fes_dev_temp_def for each ROW -BEGIN - - DELETE FROM fes_dev_pt_temp_def WHERE DEV_TP_NAME = OLD.TAG_NAME; - DELETE FROM fes_const_temp WHERE DEV_TP_NAME = OLD.TAG_NAME; - DELETE FROM fes_data_block_temp WHERE DEV_TP_NAME = OLD.TAG_NAME; - #套件的处理 - DELETE FROM temp_plugin_fes_dev_map WHERE FES_TEMP_NAME = OLD.TAG_NAME; - /* - DELETE FROM fes_dev_info WHERE DEV_TP_NAME = OLD.TAG_NAME; - */ - -END;; -DELIMITER ; - -drop trigger if exists TDA_FES_DEV_TEMP_DEF; -DELIMITER ;; -create trigger TDA_FES_DEV_TEMP_DEF AFTER DELETE on fes_dev_temp_def for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'fes_dev_temp_def', 'tag_name', OLD.TAG_NAME, '', getTableSubSystem('fes_dev_temp_def')); -END IF; -END;; -DELIMITER ; - -drop table if exists fes_dev_type_def; -CREATE TABLE `fes_dev_type_def` ( - `DEV_TYPE_ID` decimal(10,0) NOT NULL COMMENT '设备类型ID', - `DEV_TYPE_NAME` varchar(64) NOT NULL COMMENT '设备类型名称', - `DEV_TYPE_DESC` varchar(64) DEFAULT NULL COMMENT '设备类型描述', - `SUB_SYSTEM` decimal(10,0) NOT NULL COMMENT '所属专业', - `PARA_INT1` decimal(10,0) DEFAULT NULL COMMENT '备用参数1', - `PARA_STR1` varchar(64) DEFAULT NULL COMMENT '备用参数2', - PRIMARY KEY (`DEV_TYPE_ID`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='前置设备类型表'; - -drop trigger if exists TIA_FES_DEV_TYPE_DEF; -DELIMITER ;; -create trigger TIA_FES_DEV_TYPE_DEF AFTER INSERT on fes_dev_type_def for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'fes_dev_type_def', 'dev_type_id', '', NEW.DEV_TYPE_ID, getTableSubSystem('fes_dev_type_def')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TU_FES_DEV_TYPE_DEF; -DELIMITER ;; -create trigger TU_FES_DEV_TYPE_DEF BEFORE UPDATE on fes_dev_type_def for each ROW -body:BEGIN - IF NEW.DEV_TYPE_ID <> OLD.DEV_TYPE_ID THEN - BEGIN - UPDATE fes_dev_temp_def SET - DEV_TYPE_ID = NEW.DEV_TYPE_ID - WHERE DEV_TYPE_ID = OLD.DEV_TYPE_ID; - END; - END IF; - -END;; -DELIMITER ; - -drop trigger if exists TUA_FES_DEV_TYPE_DEF; -DELIMITER ;; -create trigger TUA_FES_DEV_TYPE_DEF AFTER UPDATE on fes_dev_type_def for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'fes_dev_type_def', 'dev_type_id', OLD.DEV_TYPE_ID, NEW.DEV_TYPE_ID, getTableSubSystem('fes_dev_type_def')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_FES_DEV_TYPE_DEF; -DELIMITER ;; -create trigger TDA_FES_DEV_TYPE_DEF AFTER DELETE on fes_dev_type_def for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'fes_dev_type_def', 'dev_type_id', OLD.DEV_TYPE_ID, '', getTableSubSystem('fes_dev_type_def')); -END IF; -END;; -DELIMITER ; - -drop table if exists fes_digital; -CREATE TABLE `fes_digital` ( - `TAG_NAME` varchar(64) NOT NULL COMMENT '标签名', - `LOCATION_ID` decimal(10,0) DEFAULT NULL COMMENT '所属域', - `SUB_SYSTEM` decimal(10,0) DEFAULT NULL COMMENT '所属应用', - `DEV_TAG` varchar(64) NOT NULL, - `SEQ_NO` decimal(10,0) NOT NULL COMMENT '顺序号', - `RTU_TAG` varchar(64) NOT NULL COMMENT 'RTU标签', - `DOT_NO` decimal(10,0) NOT NULL COMMENT '点号', - `DESCRIPTION` varchar(128) NOT NULL, - `APP_TABLE_NAME` varchar(32) DEFAULT NULL COMMENT '后台应用表名', - `APP_TAG_NAME` varchar(64) DEFAULT NULL COMMENT '后台标签名', - `APP_COLUMN_NAME` varchar(16) DEFAULT NULL COMMENT '后台列名', - `FILTER_ERR` decimal(10,0) DEFAULT NULL COMMENT '是否过滤错误DI', - `FILTER_DISTURB` decimal(10,0) DEFAULT NULL COMMENT '是否过滤DI抖动', - `DISTURB_TIME` decimal(10,0) DEFAULT NULL COMMENT '抖动时限', - `REVERS` decimal(10,0) DEFAULT NULL COMMENT '极性/取反', - `RTU_NO` decimal(10,0) NOT NULL, - `RES_PARA_INT1` decimal(10,0) DEFAULT NULL, - `RES_PARA_INT2` decimal(10,0) DEFAULT NULL, - `RES_PARA_INT3` decimal(10,0) DEFAULT NULL, - `RES_PARA_INT4` decimal(10,0) DEFAULT NULL, - `FES_POINT_TP_NAME` varchar(64) DEFAULT NULL, - `PATH61850` varchar(64) DEFAULT NULL, - `POSITION61850` decimal(10,0) DEFAULT NULL, - `RES_PARA_INT5` decimal(10,0) DEFAULT NULL, - `RES_PARA_INT6` decimal(10,0) DEFAULT NULL, - `RES_PARA_INT7` decimal(10,0) DEFAULT NULL, - `RES_PARA_INT8` decimal(10,0) DEFAULT NULL, - `RES_PARA_STR1` varchar(64) DEFAULT NULL, - `RES_PARA_STR2` varchar(256) DEFAULT NULL, - `ATTR` decimal(10,0) DEFAULT NULL COMMENT '点属性', - `ASS_DIG` decimal(10,0) DEFAULT NULL COMMENT '关联遥信', - PRIMARY KEY (`TAG_NAME`), - KEY `IN_FES_DIGITAL` (`DEV_TAG`,`RTU_TAG`,`DOT_NO`,`FES_POINT_TP_NAME`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='前置数字量参数表'; - -drop trigger if exists TI_FES_DIGITAL; -DELIMITER ;; -create trigger TI_FES_DIGITAL AFTER INSERT on fes_digital for each ROW -BEGIN - #首先禁止MAP_TO_FES触发器动作 - SET @disableDigitalMapToFesTrigger = 1; - #然后询问自己是否已经被禁止 - IF COALESCE(@disableFesDigitalTrigger,0) = 0 THEN - BEGIN - IF COALESCE(NEW.APP_TABLE_NAME,'')<>'' AND COALESCE(NEW.APP_TAG_NAME,'')<>'' AND COALESCE(NEW.APP_COLUMN_NAME,'')='value1' THEN - BEGIN - UPDATE digital_map_to_fes SET - RTU_TAG = NEW.RTU_TAG, - DOT_NO1 = NEW.DOT_NO - WHERE KEY_ID_TAG = concat(NEW.APP_TABLE_NAME,'.', NEW.APP_TAG_NAME); - END; - END IF; - - IF COALESCE(NEW.APP_TABLE_NAME,'')<>'' AND COALESCE(NEW.APP_TAG_NAME,'')<>'' AND COALESCE(NEW.APP_COLUMN_NAME,'')='value2' THEN - BEGIN - UPDATE digital_map_to_fes SET - RTU_TAG = NEW.RTU_TAG, - DOT_NO2 = NEW.DOT_NO - WHERE KEY_ID_TAG = concat(NEW.APP_TABLE_NAME,'.', NEW.APP_TAG_NAME); - END; - END IF; - - IF COALESCE(NEW.APP_TABLE_NAME,'')<>'' AND COALESCE(NEW.APP_TAG_NAME,'')<>'' AND COALESCE(NEW.APP_COLUMN_NAME,'')='value3' THEN - BEGIN - UPDATE digital_map_to_fes SET - RTU_TAG = NEW.RTU_TAG, - DOT_NO3 = NEW.DOT_NO - WHERE KEY_ID_TAG = concat(NEW.APP_TABLE_NAME,'.', NEW.APP_TAG_NAME); - END; - END IF; - - IF COALESCE(NEW.APP_TABLE_NAME,'')<>'' AND COALESCE(NEW.APP_TAG_NAME,'')<>'' AND COALESCE(NEW.APP_COLUMN_NAME,'')='value4' THEN - BEGIN - UPDATE digital_map_to_fes SET - RTU_TAG = NEW.RTU_TAG, - DOT_NO4 = NEW.DOT_NO - WHERE KEY_ID_TAG = concat(NEW.APP_TABLE_NAME,'.', NEW.APP_TAG_NAME); - END; - END IF; - - IF COALESCE(NEW.APP_TABLE_NAME,'')<>'' AND COALESCE(NEW.APP_TAG_NAME,'')<>'' AND COALESCE(NEW.APP_COLUMN_NAME,'')='value5' THEN - BEGIN - UPDATE digital_map_to_fes SET - RTU_TAG = NEW.RTU_TAG, - DOT_NO5 = NEW.DOT_NO - WHERE KEY_ID_TAG = concat(NEW.APP_TABLE_NAME,'.', NEW.APP_TAG_NAME); - END; - END IF; - - END; - END IF; - - SET @disableDigitalMapToFesTrigger = 0; - -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'fes_digital', 'tag_name', '', NEW.TAG_NAME, getTableSubSystem('fes_digital')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TU_FES_DIGITAL; -DELIMITER ;; -create trigger TU_FES_DIGITAL BEFORE UPDATE on fes_digital for each ROW -body:BEGIN - IF OLD.APP_TABLE_NAME=NEW.APP_TABLE_NAME AND OLD.APP_TAG_NAME = NEW.APP_TAG_NAME AND OLD.APP_COLUMN_NAME = NEW.APP_COLUMN_NAME - AND OLD.RTU_TAG = NEW.RTU_TAG AND OLD.DOT_NO = NEW.DOT_NO - THEN LEAVE body; - END IF; - - #首先禁止MAP_TO_FES触发器动作 - SET @disableDigitalMapToFesTrigger = 1; - #然后询问自己是否已经被禁止 - IF COALESCE(@disableFesDigitalTrigger,0) = 0 THEN - BEGIN - IF COALESCE(OLD.APP_TABLE_NAME,'')<>'' AND COALESCE(OLD.APP_TAG_NAME,'')<>'' AND COALESCE(OLD.APP_COLUMN_NAME,'')='value1' THEN - UPDATE digital_map_to_fes SET - DOT_NO1 = '-1' - WHERE KEY_ID_TAG = concat(OLD.APP_TABLE_NAME,'.', OLD.APP_TAG_NAME); - END IF; - - IF COALESCE(OLD.APP_TABLE_NAME,'')<>'' AND COALESCE(OLD.APP_TAG_NAME,'')<>'' AND COALESCE(OLD.APP_COLUMN_NAME,'')='value2' THEN - UPDATE digital_map_to_fes SET - DOT_NO2 = '-1' - WHERE KEY_ID_TAG = concat(OLD.APP_TABLE_NAME,'.', OLD.APP_TAG_NAME); - END IF; - - IF COALESCE(OLD.APP_TABLE_NAME,'')<>'' AND COALESCE(OLD.APP_TAG_NAME,'')<>'' AND COALESCE(OLD.APP_COLUMN_NAME,'')='value3' THEN - UPDATE digital_map_to_fes SET - DOT_NO3 = '-1' - WHERE KEY_ID_TAG = concat(OLD.APP_TABLE_NAME,'.', OLD.APP_TAG_NAME); - END IF; - - IF COALESCE(OLD.APP_TABLE_NAME,'')<>'' AND COALESCE(OLD.APP_TAG_NAME,'')<>'' AND COALESCE(OLD.APP_COLUMN_NAME,'')='value4' THEN - UPDATE digital_map_to_fes SET - DOT_NO4 = '-1' - WHERE KEY_ID_TAG = concat(OLD.APP_TABLE_NAME,'.', OLD.APP_TAG_NAME); - END IF; - - IF COALESCE(OLD.APP_TABLE_NAME,'')<>'' AND COALESCE(OLD.APP_TAG_NAME,'')<>'' AND COALESCE(OLD.APP_COLUMN_NAME,'')='value5' THEN - UPDATE digital_map_to_fes SET - DOT_NO5 = '-1' - WHERE KEY_ID_TAG = concat(OLD.APP_TABLE_NAME,'.', OLD.APP_TAG_NAME); - END IF; - - IF COALESCE(NEW.APP_TABLE_NAME,'')<>'' AND COALESCE(NEW.APP_TAG_NAME,'')<>'' AND COALESCE(NEW.APP_COLUMN_NAME,'')='value1' THEN - BEGIN - UPDATE digital_map_to_fes SET - RTU_TAG = NEW.RTU_TAG, - DOT_NO1 = NEW.DOT_NO - WHERE KEY_ID_TAG = concat(NEW.APP_TABLE_NAME,'.', NEW.APP_TAG_NAME); - END; - END IF; - - IF COALESCE(NEW.APP_TABLE_NAME,'')<>'' AND COALESCE(NEW.APP_TAG_NAME,'')<>'' AND COALESCE(NEW.APP_COLUMN_NAME,'')='value2' THEN - BEGIN - UPDATE digital_map_to_fes SET - RTU_TAG = NEW.RTU_TAG, - DOT_NO2 = NEW.DOT_NO - WHERE KEY_ID_TAG = concat(NEW.APP_TABLE_NAME,'.', NEW.APP_TAG_NAME); - END; - END IF; - - IF COALESCE(NEW.APP_TABLE_NAME,'')<>'' AND COALESCE(NEW.APP_TAG_NAME,'')<>'' AND COALESCE(NEW.APP_COLUMN_NAME,'')='value3' THEN - BEGIN - UPDATE digital_map_to_fes SET - RTU_TAG = NEW.RTU_TAG, - DOT_NO3 = NEW.DOT_NO - WHERE KEY_ID_TAG = concat(NEW.APP_TABLE_NAME,'.', NEW.APP_TAG_NAME); - END; - END IF; - - IF COALESCE(NEW.APP_TABLE_NAME,'')<>'' AND COALESCE(NEW.APP_TAG_NAME,'')<>'' AND COALESCE(NEW.APP_COLUMN_NAME,'')='value4' THEN - BEGIN - UPDATE digital_map_to_fes SET - RTU_TAG = NEW.RTU_TAG, - DOT_NO4 = NEW.DOT_NO - WHERE KEY_ID_TAG = concat(NEW.APP_TABLE_NAME,'.', NEW.APP_TAG_NAME); - END; - END IF; - - IF COALESCE(NEW.APP_TABLE_NAME,'')<>'' AND COALESCE(NEW.APP_TAG_NAME,'')<>'' AND COALESCE(NEW.APP_COLUMN_NAME,'')='value5' THEN - BEGIN - UPDATE digital_map_to_fes SET - RTU_TAG = NEW.RTU_TAG, - DOT_NO5 = NEW.DOT_NO - WHERE KEY_ID_TAG = concat(NEW.APP_TABLE_NAME,'.', NEW.APP_TAG_NAME); - END; - END IF; - - END; - END IF; - - SET @disableDigitalMapToFesTrigger = 0; - -END;; -DELIMITER ; - -drop trigger if exists TUA_FES_DIGITAL; -DELIMITER ;; -create trigger TUA_FES_DIGITAL AFTER UPDATE on fes_digital for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'fes_digital', 'tag_name', OLD.TAG_NAME, NEW.TAG_NAME, getTableSubSystem('fes_digital')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TD_FES_DIGITAL; -DELIMITER ;; -create trigger TD_FES_DIGITAL AFTER DELETE on fes_digital for each ROW -BEGIN - #首先禁止MAP_TO_FES触发器动作 - SET @disableDigitalMapToFesTrigger = 1; - #然后询问自己是否已经被禁止 - IF COALESCE(@disableFesDigitalTrigger,0) = 0 THEN - BEGIN - IF COALESCE(OLD.APP_TABLE_NAME,'')<>'' AND COALESCE(OLD.APP_TAG_NAME,'')<>'' AND COALESCE(OLD.APP_COLUMN_NAME,'')='value1' THEN - UPDATE digital_map_to_fes SET - DOT_NO1 = '-1' - WHERE KEY_ID_TAG = concat(OLD.APP_TABLE_NAME,'.', OLD.APP_TAG_NAME); - END IF; - - IF COALESCE(OLD.APP_TABLE_NAME,'')<>'' AND COALESCE(OLD.APP_TAG_NAME,'')<>'' AND COALESCE(OLD.APP_COLUMN_NAME,'')='value2' THEN - UPDATE digital_map_to_fes SET - DOT_NO2 = '-1' - WHERE KEY_ID_TAG = concat(OLD.APP_TABLE_NAME,'.', OLD.APP_TAG_NAME); - END IF; - - IF COALESCE(OLD.APP_TABLE_NAME,'')<>'' AND COALESCE(OLD.APP_TAG_NAME,'')<>'' AND COALESCE(OLD.APP_COLUMN_NAME,'')='value3' THEN - UPDATE digital_map_to_fes SET - DOT_NO3 = '-1' - WHERE KEY_ID_TAG = concat(OLD.APP_TABLE_NAME,'.', OLD.APP_TAG_NAME); - END IF; - - IF COALESCE(OLD.APP_TABLE_NAME,'')<>'' AND COALESCE(OLD.APP_TAG_NAME,'')<>'' AND COALESCE(OLD.APP_COLUMN_NAME,'')='value4' THEN - UPDATE digital_map_to_fes SET - DOT_NO4 = '-1' - WHERE KEY_ID_TAG = concat(OLD.APP_TABLE_NAME,'.', OLD.APP_TAG_NAME); - END IF; - - IF COALESCE(OLD.APP_TABLE_NAME,'')<>'' AND COALESCE(OLD.APP_TAG_NAME,'')<>'' AND COALESCE(OLD.APP_COLUMN_NAME,'')='value5' THEN - UPDATE digital_map_to_fes SET - DOT_NO5 = '-1' - WHERE KEY_ID_TAG = concat(OLD.APP_TABLE_NAME,'.', OLD.APP_TAG_NAME); - END IF; - - END; - END IF; - - SET @disableDigitalMapToFesTrigger = 0; - -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'fes_digital', 'tag_name', OLD.TAG_NAME, '', getTableSubSystem('fes_digital')); -END IF; -END;; -DELIMITER ; - -drop table if exists fes_digital_ctrl; -CREATE TABLE `fes_digital_ctrl` ( - `TAG_NAME` varchar(64) NOT NULL COMMENT '标签名', - `LOCATION_ID` decimal(10,0) NOT NULL COMMENT '所属车站', - `SUB_SYSTEM` decimal(10,0) DEFAULT NULL COMMENT '所属专业', - `RTU_TAG` varchar(64) NOT NULL, - `RTU_NO` decimal(10,0) NOT NULL, - `DOT_NO` decimal(10,0) NOT NULL COMMENT 'DO点号1', - `DEV_TAG` varchar(64) DEFAULT NULL, - `DESCRIPTION` varchar(128) NOT NULL COMMENT '点描述', - `REVERS` decimal(10,0) DEFAULT NULL, - `POINT_TP_NAME` varchar(64) DEFAULT NULL COMMENT '点模板名', - `SEQ_NO` decimal(10,0) DEFAULT NULL, - `RES_PARA_INT1` decimal(10,0) DEFAULT NULL, - `RES_PARA_INT2` decimal(10,0) DEFAULT NULL, - `RES_PARA_INT3` decimal(10,0) DEFAULT NULL, - `RES_PARA_INT4` decimal(10,0) DEFAULT NULL, - `PATH61850` varchar(128) DEFAULT NULL, - `POSITION61850` decimal(10,0) DEFAULT NULL, - `YK_SELECT61850` varchar(64) DEFAULT NULL, - `YK_EXE61850` varchar(64) DEFAULT NULL, - `YK_CANCLE61850` varchar(64) DEFAULT NULL, - `YK_DOUBLE_SELECT61850` varchar(64) DEFAULT NULL, - `YK_DOUBLE_EXE61850` varchar(64) DEFAULT NULL, - `YK_DOUBLE_CANCLE61850` varchar(64) DEFAULT NULL, - `PULSE_TIME` decimal(10,0) DEFAULT NULL, - `RES_PARA_INT5` decimal(10,0) DEFAULT NULL, - `RES_PARA_INT6` decimal(10,0) DEFAULT NULL, - `RES_PARA_INT7` decimal(10,0) DEFAULT NULL, - `RES_PARA_INT8` decimal(10,0) DEFAULT NULL, - `RES_PARA_STR1` varchar(64) DEFAULT NULL, - `RES_PARA_STR2` varchar(256) DEFAULT NULL, - `ATTR` decimal(10,0) DEFAULT NULL, - `CTRL_TYPE` decimal(10,0) DEFAULT NULL, - PRIMARY KEY (`TAG_NAME`), - KEY `IN_FES_DIGITAL_CTRL` (`RTU_TAG`,`DOT_NO`,`DEV_TAG`,`POINT_TP_NAME`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='数字量输出参数表'; - -drop trigger if exists TIA_FES_DIGITAL_CTRL; -DELIMITER ;; -create trigger TIA_FES_DIGITAL_CTRL AFTER INSERT on fes_digital_ctrl for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'fes_digital_ctrl', 'tag_name', '', NEW.TAG_NAME, getTableSubSystem('fes_digital_ctrl')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TU_FES_DIGITAL_CTRL; -DELIMITER ;; -create trigger TU_FES_DIGITAL_CTRL AFTER UPDATE on fes_digital_ctrl for each ROW -body:BEGIN - #更新关联了此点的遥控点 - - IF NEW.RTU_TAG <> OLD.RTU_TAG OR NEW.DOT_NO<> OLD.DOT_NO - THEN - BEGIN - UPDATE digital_control SET - RTU_TAG = NEW.RTU_TAG, - OFFSET_NO1 = NEW.DOT_NO - WHERE RTU_TAG = OLD.RTU_TAG AND OFFSET_NO1 = cast(OLD.DOT_NO AS char); - - UPDATE digital_control SET - RTU_TAG = NEW.RTU_TAG, - OFFSET_NO2 = NEW.DOT_NO - WHERE RTU_TAG = OLD.RTU_TAG AND OFFSET_NO2 = cast(OLD.DOT_NO AS char); - - UPDATE digital_control SET - RTU_TAG = NEW.RTU_TAG, - OFFSET_NO3 = NEW.DOT_NO - WHERE RTU_TAG = OLD.RTU_TAG AND OFFSET_NO3 = cast(OLD.DOT_NO AS char); - - UPDATE digital_control SET - RTU_TAG = NEW.RTU_TAG, - OFFSET_NO4 = NEW.DOT_NO - WHERE RTU_TAG = OLD.RTU_TAG AND OFFSET_NO4 = cast(OLD.DOT_NO AS char); - - UPDATE digital_control SET - RTU_TAG = NEW.RTU_TAG, - OFFSET_NO5 = NEW.DOT_NO - WHERE RTU_TAG = OLD.RTU_TAG AND OFFSET_NO5 = cast(OLD.DOT_NO AS char); - - END; - END IF; - - - -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'fes_digital_ctrl', 'tag_name', OLD.TAG_NAME, NEW.TAG_NAME, getTableSubSystem('fes_digital_ctrl')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TD_FES_DIGITAL_CTRL; -DELIMITER ;; -create trigger TD_FES_DIGITAL_CTRL AFTER DELETE on fes_digital_ctrl for each ROW -BEGIN - UPDATE digital_control SET - OFFSET_NO1 = '-1' - WHERE RTU_TAG = OLD.RTU_TAG AND OFFSET_NO1 = cast(OLD.DOT_NO AS char); - - UPDATE digital_control SET - OFFSET_NO2 = '-1' - WHERE RTU_TAG = OLD.RTU_TAG AND OFFSET_NO2 = cast(OLD.DOT_NO AS char); - - UPDATE digital_control SET - OFFSET_NO3 = '-1' - WHERE RTU_TAG = OLD.RTU_TAG AND OFFSET_NO3 = cast(OLD.DOT_NO AS char); - - UPDATE digital_control SET - OFFSET_NO4 = '-1' - WHERE RTU_TAG = OLD.RTU_TAG AND OFFSET_NO4 = cast(OLD.DOT_NO AS char); - - UPDATE digital_control SET - OFFSET_NO5 = '-1' - WHERE RTU_TAG = OLD.RTU_TAG AND OFFSET_NO5 = cast(OLD.DOT_NO AS char); - -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'fes_digital_ctrl', 'tag_name', OLD.TAG_NAME, '', getTableSubSystem('fes_digital_ctrl')); -END IF; -END;; -DELIMITER ; - -drop table if exists fes_mix; -CREATE TABLE `fes_mix` ( - `TAG_NAME` varchar(64) NOT NULL COMMENT '标签名', - `LOCATION_ID` decimal(10,0) DEFAULT NULL COMMENT '所属车站', - `SUB_SYSTEM` decimal(10,0) DEFAULT NULL COMMENT '所属专业', - `DEV_TAG` varchar(64) NOT NULL, - `SEQ_NO` decimal(10,0) NOT NULL COMMENT '设备点序号', - `RTU_TAG` varchar(64) NOT NULL COMMENT 'RTU标签', - `RTU_NO` decimal(10,0) NOT NULL, - `DOT_NO` decimal(10,0) NOT NULL COMMENT '点号/远动号', - `DESCRIPTION` varchar(128) NOT NULL, - `APP_TABLE_NAME` varchar(32) DEFAULT NULL COMMENT '后台应用表名', - `APP_TAG_NAME` varchar(64) DEFAULT NULL COMMENT '后台标签名', - `APP_COLUMN_NAME` varchar(16) DEFAULT NULL COMMENT '后台列名', - `BASE` decimal(10,0) DEFAULT NULL COMMENT '基值', - `COEFF` decimal(10,0) DEFAULT NULL COMMENT '系数', - `MAX_RANGE` decimal(10,0) DEFAULT NULL COMMENT '最大量程', - `MIN_RANGE` decimal(10,0) DEFAULT NULL COMMENT '最小量程', - `RES_PARA_INT1` decimal(10,0) DEFAULT NULL, - `RES_PARA_INT2` decimal(10,0) DEFAULT NULL, - `RES_PARA_INT3` decimal(10,0) DEFAULT NULL, - `RES_PARA_INT4` decimal(10,0) DEFAULT NULL, - `FES_POINT_TP_NAME` varchar(64) DEFAULT NULL, - `PATH61850` varchar(64) DEFAULT NULL, - `POSITION61850` decimal(10,0) DEFAULT NULL, - `RES_PARA_INT5` decimal(10,0) DEFAULT NULL, - `RES_PARA_INT6` decimal(10,0) DEFAULT NULL, - `RES_PARA_INT7` decimal(10,0) DEFAULT NULL, - `RES_PARA_INT8` decimal(10,0) DEFAULT NULL, - `RES_PARA_STR1` varchar(64) DEFAULT NULL, - `RES_PARA_STR2` varchar(256) DEFAULT NULL, - PRIMARY KEY (`TAG_NAME`), - KEY `IN_FES_MIX` (`DEV_TAG`,`RTU_TAG`,`DOT_NO`,`FES_POINT_TP_NAME`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='前置混合量参数表'; - -drop trigger if exists TI_FES_MIX; -DELIMITER ;; -create trigger TI_FES_MIX AFTER INSERT on fes_mix for each ROW -BEGIN - #首先禁止MAP_TO_FES触发器动作 - SET @disableMixMapToFesTrigger = 1; - #然后询问自己是否已经被禁止 - IF COALESCE(@disableFesMixTrigger,0) = 0 THEN - BEGIN - IF COALESCE(NEW.APP_TABLE_NAME,'')<>'' AND COALESCE(NEW.APP_TAG_NAME,'')<>'' AND COALESCE(NEW.APP_COLUMN_NAME,'')<>'' THEN - BEGIN - UPDATE mix_map_to_fes SET - RTU_TAG = NEW.RTU_TAG, - DOT_NO = NEW.DOT_NO - WHERE KEY_ID_TAG = concat(NEW.APP_TABLE_NAME,'.', NEW.APP_TAG_NAME); - END; - END IF; - - END; - END IF; - - SET @disableMixMapToFesTrigger = 0; - -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'fes_mix', 'tag_name', '', NEW.TAG_NAME, getTableSubSystem('fes_mix')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TU_FES_MIX; -DELIMITER ;; -create trigger TU_FES_MIX BEFORE UPDATE on fes_mix for each ROW -body:BEGIN - IF OLD.APP_TABLE_NAME=NEW.APP_TABLE_NAME AND OLD.APP_TAG_NAME = NEW.APP_TAG_NAME AND OLD.APP_COLUMN_NAME = NEW.APP_COLUMN_NAME - AND OLD.RTU_TAG = NEW.RTU_TAG AND OLD.DOT_NO = NEW.DOT_NO - THEN LEAVE body; - END IF; - - #首先禁止MAP_TO_FES触发器动作 - SET @disableMixMapToFesTrigger = 1; - #然后询问自己是否已经被禁止 - IF COALESCE(@disableFesMixTrigger,0) = 0 THEN - BEGIN - IF COALESCE(OLD.APP_TABLE_NAME,'')<>'' AND COALESCE(OLD.APP_TAG_NAME,'')<>'' AND COALESCE(OLD.APP_COLUMN_NAME,'')<>'' THEN - UPDATE mix_map_to_fes SET - DOT_NO = '-1' - WHERE KEY_ID_TAG = concat(OLD.APP_TABLE_NAME,'.', OLD.APP_TAG_NAME); - END IF; - - IF COALESCE(NEW.APP_TABLE_NAME,'')<>'' AND COALESCE(NEW.APP_TAG_NAME,'')<>'' AND COALESCE(NEW.APP_COLUMN_NAME,'')<>'' THEN - BEGIN - UPDATE mix_map_to_fes SET - RTU_TAG = NEW.RTU_TAG, - DOT_NO = NEW.DOT_NO - WHERE KEY_ID_TAG = concat(NEW.APP_TABLE_NAME,'.', NEW.APP_TAG_NAME); - END; - END IF; - - END; - END IF; - - SET @disableMixMapToFesTrigger = 0; - -END;; -DELIMITER ; - -drop trigger if exists TUA_FES_MIX; -DELIMITER ;; -create trigger TUA_FES_MIX AFTER UPDATE on fes_mix for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'fes_mix', 'tag_name', OLD.TAG_NAME, NEW.TAG_NAME, getTableSubSystem('fes_mix')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TD_FES_MIX; -DELIMITER ;; -create trigger TD_FES_MIX AFTER DELETE on fes_mix for each ROW -BEGIN - #首先禁止MAP_TO_FES触发器动作 - SET @disableMixMapToFesTrigger = 1; - #然后询问自己是否已经被禁止 - IF COALESCE(@disableFesMixTrigger,0) = 0 THEN - BEGIN - IF COALESCE(OLD.APP_TABLE_NAME,'')<>'' AND COALESCE(OLD.APP_TAG_NAME,'')<>'' AND COALESCE(OLD.APP_COLUMN_NAME,'')<>'' THEN - UPDATE mix_map_to_fes SET - DOT_NO = '-1' - WHERE KEY_ID_TAG = concat(OLD.APP_TABLE_NAME,'.', OLD.APP_TAG_NAME); - END IF; - - END; - END IF; - - SET @disableMixMapToFesTrigger = 0; - -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'fes_mix', 'tag_name', OLD.TAG_NAME, '', getTableSubSystem('fes_mix')); -END IF; -END;; -DELIMITER ; - -drop table if exists fes_mix_ctrl; -CREATE TABLE `fes_mix_ctrl` ( - `TAG_NAME` varchar(64) NOT NULL COMMENT '标签名', - `LOCATION_ID` decimal(10,0) DEFAULT NULL COMMENT '所属车站', - `SUB_SYSTEM` decimal(10,0) DEFAULT NULL COMMENT '所属专业', - `RTU_TAG` varchar(64) NOT NULL COMMENT 'RTU标签', - `RTU_NO` decimal(10,0) NOT NULL, - `BASE` decimal(10,0) DEFAULT NULL COMMENT '备用', - `DESCRIPTION` varchar(128) NOT NULL COMMENT '点描述', - `DOT_NO` decimal(10,0) NOT NULL COMMENT 'AO点号', - `COEFF` decimal(10,0) DEFAULT NULL COMMENT '备用', - `MIN_RANGE` decimal(10,0) DEFAULT NULL COMMENT '最小量程', - `MAX_RANGE` decimal(10,0) DEFAULT NULL COMMENT '最大量程', - `RES_PARA_INT1` decimal(10,0) DEFAULT NULL, - `RES_PARA_INT2` decimal(10,0) DEFAULT NULL, - `RES_PARA_INT3` decimal(10,0) DEFAULT NULL, - `SEQ_NO` decimal(10,0) DEFAULT NULL, - `RES_PARA_INT4` decimal(10,0) DEFAULT NULL, - `POINT_TP_NAME` varchar(64) DEFAULT NULL COMMENT '点模板名', - `DEV_TAG` varchar(64) DEFAULT NULL, - `PATH61850` varchar(64) DEFAULT NULL, - `POSITION61850` decimal(10,0) DEFAULT NULL, - `RES_PARA_INT5` decimal(10,0) DEFAULT NULL, - `RES_PARA_INT6` decimal(10,0) DEFAULT NULL, - `RES_PARA_INT7` decimal(10,0) DEFAULT NULL, - `RES_PARA_INT8` decimal(10,0) DEFAULT NULL, - `RES_PARA_STR1` varchar(64) DEFAULT NULL, - `RES_PARA_STR2` varchar(256) DEFAULT NULL, - PRIMARY KEY (`TAG_NAME`), - KEY `IN_FES_MIX_CTRL` (`RTU_TAG`,`DOT_NO`,`POINT_TP_NAME`,`DEV_TAG`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='混合量输出参数表'; - -drop trigger if exists TIA_FES_MIX_CTRL; -DELIMITER ;; -create trigger TIA_FES_MIX_CTRL AFTER INSERT on fes_mix_ctrl for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'fes_mix_ctrl', 'tag_name', '', NEW.TAG_NAME, getTableSubSystem('fes_mix_ctrl')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TU_FES_MIX_CTRL; -DELIMITER ;; -create trigger TU_FES_MIX_CTRL AFTER UPDATE on fes_mix_ctrl for each ROW -body:BEGIN - #更新关联了此点的遥控点 - - IF NEW.RTU_TAG = OLD.RTU_TAG AND NEW.DOT_NO= OLD.DOT_NO - THEN - BEGIN - UPDATE mix_control SET - RTU_TAG = NEW.RTU_TAG, - OFFSET_NO = NEW.DOT_NO - WHERE RTU_TAG = OLD.RTU_TAG AND OFFSET_NO = cast(OLD.DOT_NO AS char); - END; - END IF; - - -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'fes_mix_ctrl', 'tag_name', OLD.TAG_NAME, NEW.TAG_NAME, getTableSubSystem('fes_mix_ctrl')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TD_FES_MIX_CTRL; -DELIMITER ;; -create trigger TD_FES_MIX_CTRL AFTER DELETE on fes_mix_ctrl for each ROW -BEGIN - UPDATE mix_control SET - OFFSET_NO = '-1' - WHERE RTU_TAG = OLD.RTU_TAG AND OFFSET_NO = cast(OLD.DOT_NO AS char); - - -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'fes_mix_ctrl', 'tag_name', OLD.TAG_NAME, '', getTableSubSystem('fes_mix_ctrl')); -END IF; -END;; -DELIMITER ; - -drop table if exists fes_protocol; -CREATE TABLE `fes_protocol` ( - `PROTOCOL_ID` decimal(10,0) NOT NULL COMMENT '协议ID', - `PROTOCOL_NAME` varchar(64) NOT NULL COMMENT '协议LIB名称', - `PROTOCOL_DESC` varchar(128) DEFAULT NULL, - `RES_PARA_INT1` decimal(10,0) DEFAULT NULL COMMENT '备用参数1', - `RES_PARA_STR1` varchar(64) DEFAULT NULL COMMENT '备用参数2', - PRIMARY KEY (`PROTOCOL_ID`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='前置通讯规约表'; - -drop trigger if exists TIA_FES_PROTOCOL; -DELIMITER ;; -create trigger TIA_FES_PROTOCOL AFTER INSERT on fes_protocol for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'fes_protocol', 'protocol_id', '', NEW.PROTOCOL_ID, getTableSubSystem('fes_protocol')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TU_FES_PROTOCOL; -DELIMITER ;; -create trigger TU_FES_PROTOCOL BEFORE UPDATE on fes_protocol for each ROW -body:BEGIN - IF NEW.PROTOCOL_ID <> OLD.PROTOCOL_ID THEN - BEGIN - UPDATE fes_channel_para SET - PROTO_TYPE = NEW.PROTOCOL_ID - WHERE PROTO_TYPE = OLD.PROTOCOL_ID; - END; - END IF; - -END;; -DELIMITER ; - -drop trigger if exists TUA_FES_PROTOCOL; -DELIMITER ;; -create trigger TUA_FES_PROTOCOL AFTER UPDATE on fes_protocol for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'fes_protocol', 'protocol_id', OLD.PROTOCOL_ID, NEW.PROTOCOL_ID, getTableSubSystem('fes_protocol')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_FES_PROTOCOL; -DELIMITER ;; -create trigger TDA_FES_PROTOCOL AFTER DELETE on fes_protocol for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'fes_protocol', 'protocol_id', OLD.PROTOCOL_ID, '', getTableSubSystem('fes_protocol')); -END IF; -END;; -DELIMITER ; - -drop table if exists fes_rtu_para; -CREATE TABLE `fes_rtu_para` ( - `TAG_NAME` varchar(64) NOT NULL, - `RTU_NAME` varchar(64) NOT NULL COMMENT 'RTU名称', - `RTU_NO` decimal(10,0) NOT NULL, - `LOCATION_ID` decimal(10,0) NOT NULL COMMENT '所属车站', - `SUB_SYSTEM` decimal(10,0) NOT NULL, - `IS_USED` decimal(10,0) NOT NULL COMMENT '停运标志', - `ALARM_ENABLE` decimal(10,0) NOT NULL COMMENT 'RTU告警使能', - `REGION_ID` decimal(10,0) DEFAULT NULL COMMENT '责任区', - `RTU_ADDR` decimal(10,0) NOT NULL COMMENT 'RTU站址', - `CHAN_TAG` varchar(64) NOT NULL COMMENT '关联通道1-默认值班通道', - `CHAN_NO` decimal(10,0) NOT NULL, - `RES_PARA_INT1` decimal(10,0) DEFAULT NULL COMMENT '备用参数1', - `RES_PARA_INT2` decimal(10,0) DEFAULT NULL COMMENT '备用参数2', - `RES_PARA_INT3` decimal(10,0) DEFAULT NULL COMMENT '备用参数3', - `RES_PARA_STR1` varchar(64) DEFAULT NULL COMMENT '备用参数4', - `RES_PARA_STR2` varchar(64) DEFAULT NULL COMMENT '备用参数5', - `RES_PARA_STR3` varchar(256) DEFAULT NULL COMMENT '备用参数6', - `RECV_FAIL_NUM` decimal(10,0) DEFAULT NULL, - `DESCRIPTION` varchar(128) DEFAULT NULL, - `TCP_KEEP_ALIVE` decimal(10,0) DEFAULT NULL, - `SERVER61850` decimal(10,0) DEFAULT NULL, - `CALL_TIME` decimal(10,0) DEFAULT NULL, - `IS_USED_LB` decimal(10,0) DEFAULT NULL, - `LB_DIR` varchar(128) DEFAULT NULL, - `LB_CALL_TIME` decimal(10,0) DEFAULT NULL, - `LB_DESC` varchar(64) DEFAULT NULL, - `STATUS` decimal(10,0) DEFAULT NULL, - `CONTROLDISABLE` decimal(10,0) DEFAULT NULL COMMENT '遥控禁止', - `CLEARDATAENABLE` decimal(10,0) DEFAULT NULL COMMENT '设备离线数据清零', - PRIMARY KEY (`TAG_NAME`), - UNIQUE KEY `UN_FES_RTU_PARA` (`RTU_NO`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='前置RTU参数表'; - -drop trigger if exists TIB_FES_RTU_PARA; -DELIMITER ;; -create trigger TIB_FES_RTU_PARA BEFORE INSERT on fes_rtu_para for each ROW -BEGIN - - DECLARE chNo decimal(10,0) DEFAULT 0; - - SET NEW.TAG_NAME = concat(NEW.CHAN_TAG,'.',NEW.RTU_NAME); - - SELECT CHAN_NO INTO chNo FROM fes_channel_para WHERE TAG_NAME = NEW.CHAN_TAG; - - SET NEW.CHAN_NO = chNo; -END;; -DELIMITER ; - -drop trigger if exists TI_FES_RTU_PARA; -DELIMITER ;; -create trigger TI_FES_RTU_PARA AFTER INSERT on fes_rtu_para for each ROW -BEGIN - /* - * 不再产生默认设备 -INSERT INTO fes_dev_info -(TAG_NAME, DEV_NAME, LOCATION_ID, SUB_SYSTEM, DEV_ID, DEV_TYPE_ID, RTU_TAG, DEV_DESC, RTU_NO, DEV_TP_NAME) VALUES -(concat(NEW.TAG_NAME, '.', 'defaultDev' ),'defaultDev',NEW.LOCATION_ID,NEW.SUB_SYSTEM,'-1', '-1' ,NEW.TAG_NAME,'默认设备',NEW.RTU_NO ,'' ); -*/ -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'fes_rtu_para', 'tag_name', '', NEW.TAG_NAME, getTableSubSystem('fes_rtu_para')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUB_FES_RTU_PARA; -DELIMITER ;; -create trigger TUB_FES_RTU_PARA BEFORE UPDATE on fes_rtu_para for each ROW -BEGIN - - DECLARE chNo decimal(10,0) DEFAULT 0; - - IF NEW.RTU_NAME <> OLD.RTU_NAME OR NEW.CHAN_TAG <> OLD.CHAN_TAG THEN - SET NEW.TAG_NAME = concat(NEW.CHAN_TAG,'.',NEW.RTU_NAME); - END IF; - - IF NEW.CHAN_TAG <> OLD.CHAN_TAG THEN - BEGIN - SELECT CHAN_NO INTO chNo FROM fes_channel_para WHERE TAG_NAME = NEW.CHAN_TAG; - SET NEW.CHAN_NO = chNo; - END; - END IF; - -END;; -DELIMITER ; - -drop trigger if exists TU_FES_RTU_PARA; -DELIMITER ;; -create trigger TU_FES_RTU_PARA AFTER UPDATE on fes_rtu_para for each ROW -BEGIN - -IF NEW.TAG_NAME <> OLD.TAG_NAME OR NEW.RTU_NO <> OLD.RTU_NO OR NEW.DESCRIPTION <> OLD.DESCRIPTION -THEN -BEGIN - - - UPDATE fes_dev_info SET - TAG_NAME = concat(NEW.TAG_NAME, '.', getAfterLastDot(TAG_NAME)) , - DEV_DESC = DEV_DESC, - RTU_TAG = NEW.TAG_NAME, - RTU_NO = NEW.RTU_NO, - LOCATION_ID = NEW.LOCATION_ID, - SUB_SYSTEM = NEW.SUB_SYSTEM - WHERE RTU_TAG = OLD.TAG_NAME; - - UPDATE fes_data_block SET - RTU_NO = NEW.RTU_NO, - LOCATION_ID = NEW.LOCATION_ID, - SUB_SYSTEM = NEW.SUB_SYSTEM - WHERE RTU_NO = OLD.RTU_NO; - - IF NEW.RTU_NO <> OLD.RTU_NO THEN - BEGIN - UPDATE dev_group SET - RTU_NO = NEW.RTU_NO - WHERE RTU_NO = OLD.RTU_NO; - END; - END IF; - - IF NEW.TAG_NAME <> OLD.TAG_NAME THEN - BEGIN - #更新关联的后台测点 - UPDATE accuml SET - RTU_TAG = NEW.TAG_NAME - WHERE RTU_TAG = OLD.TAG_NAME; - - UPDATE analog SET - RTU_TAG = NEW.TAG_NAME - WHERE RTU_TAG = OLD.TAG_NAME; - - UPDATE digital SET - RTU_TAG = NEW.TAG_NAME - WHERE RTU_TAG = OLD.TAG_NAME; - - UPDATE mix SET - RTU_TAG = NEW.TAG_NAME - WHERE RTU_TAG = OLD.TAG_NAME; - - - END; - END IF; - -END; -END IF; -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'fes_rtu_para', 'tag_name', OLD.TAG_NAME, NEW.TAG_NAME, getTableSubSystem('fes_rtu_para')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TD_FES_RTU_PARA; -DELIMITER ;; -create trigger TD_FES_RTU_PARA BEFORE DELETE on fes_rtu_para for each ROW -BEGIN -DELETE FROM fes_dev_info WHERE RTU_TAG = OLD.TAG_NAME; -DELETE FROM fes_data_block WHERE RTU_NO = OLD.RTU_NO; -#更新关联的后台测点 -UPDATE accuml SET -RTU_TAG = '' -WHERE RTU_TAG = OLD.TAG_NAME; -UPDATE analog SET -RTU_TAG = '' -WHERE RTU_TAG = OLD.TAG_NAME; -UPDATE digital SET -RTU_TAG = '' -WHERE RTU_TAG = OLD.TAG_NAME; -UPDATE mix SET -RTU_TAG = '' -WHERE RTU_TAG = OLD.TAG_NAME; -END;; -DELIMITER ; - -drop trigger if exists TDA_FES_RTU_PARA; -DELIMITER ;; -create trigger TDA_FES_RTU_PARA AFTER DELETE on fes_rtu_para for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'fes_rtu_para', 'tag_name', OLD.TAG_NAME, '', getTableSubSystem('fes_rtu_para')); -END IF; -END;; -DELIMITER ; - -drop table if exists forward_accuml; -CREATE TABLE `forward_accuml` ( - `REMOTE_NO` decimal(10,0) DEFAULT NULL COMMENT '远动号', - `TAG_NAME` varchar(64) NOT NULL COMMENT '标签名', - `DESCRIPTION` varchar(128) DEFAULT NULL COMMENT '点描述', - `DP_TAG_NAME` varchar(64) DEFAULT NULL COMMENT '标签名', - `FES_RTU_NO` decimal(10,0) DEFAULT NULL COMMENT '前置RTU号', - `FES_RTU_TAG` varchar(64) DEFAULT NULL COMMENT '前置RTU标签名', - `FES_DOT_NO` decimal(10,0) DEFAULT NULL COMMENT '前置点号', - `DP_SEQ_NO` decimal(10,0) DEFAULT NULL COMMENT '后台点号', - `BASE` decimal(22,6) DEFAULT NULL COMMENT '基值', - `COEFF` decimal(22,6) DEFAULT NULL COMMENT '系数', - `PROPERTY` decimal(10,0) DEFAULT NULL COMMENT '属性', - `SRC_TYPE` decimal(10,0) DEFAULT NULL COMMENT '点来源', - `RES_PARA_INT1` decimal(10,0) DEFAULT NULL COMMENT '规约参数1', - `RES_PARA_INT2` decimal(10,0) DEFAULT NULL COMMENT '规约参数2', - `RES_PARA_INT3` decimal(10,0) DEFAULT NULL COMMENT '规约参数3', - `RES_PARA_INT4` decimal(10,0) DEFAULT NULL COMMENT '规约参数4', - `RES_PARA_INT5` decimal(10,0) DEFAULT NULL COMMENT '规约参数5', - `RES_PARA_INT6` decimal(10,0) DEFAULT NULL COMMENT '规约参数6', - `RES_PARA_INT7` decimal(10,0) DEFAULT NULL COMMENT '规约参数7', - `RES_PARA_STR1` varchar(64) DEFAULT NULL COMMENT '规约参数8', - `RES_PARA_STR2` varchar(256) DEFAULT NULL COMMENT '规约参数9', - `RTU_TAG` varchar(64) DEFAULT NULL COMMENT '转发RTU标签名', - `RTU_NO` decimal(10,0) DEFAULT NULL COMMENT '转发RTU号', - `SRC_LOCATION_ID` decimal(10,0) DEFAULT NULL COMMENT '源所属车站', - `SRC_SUB_SYSTEM` decimal(10,0) DEFAULT NULL COMMENT '源所属专业', - `LOCATION_ID` decimal(10,0) DEFAULT NULL COMMENT '所属车站', - `SUB_SYSTEM` decimal(10,0) DEFAULT NULL COMMENT '所属专业', - PRIMARY KEY (`TAG_NAME`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='遥脉转发表'; - -drop table if exists forward_analog; -CREATE TABLE `forward_analog` ( - `REMOTE_NO` decimal(10,0) DEFAULT NULL COMMENT '远动号', - `TAG_NAME` varchar(64) NOT NULL COMMENT '标签名', - `DESCRIPTION` varchar(128) DEFAULT NULL COMMENT '点描述', - `DP_TAG_NAME` varchar(64) DEFAULT NULL COMMENT '标签名', - `BASE` decimal(22,6) DEFAULT NULL COMMENT '基值', - `COEFF` decimal(22,6) DEFAULT NULL COMMENT '系数', - `DEADBAND_TYPE` decimal(10,0) DEFAULT NULL COMMENT '死区类型', - `DEADBAND` decimal(22,6) DEFAULT NULL COMMENT '死区值', - `FES_RTU_NO` decimal(10,0) DEFAULT NULL COMMENT '前置RTU号', - `FES_RTU_TAG` varchar(64) DEFAULT NULL COMMENT '前置RTU标签名', - `FES_DOT_NO` decimal(10,0) DEFAULT NULL COMMENT '前置点号', - `DP_SEQ_NO` decimal(10,0) DEFAULT NULL COMMENT '后台点号', - `PROPERTY` decimal(10,0) DEFAULT NULL COMMENT '属性', - `SRC_TYPE` decimal(10,0) DEFAULT NULL COMMENT '点来源', - `RES_PARA_INT1` decimal(10,0) DEFAULT NULL COMMENT '规约参数1', - `RES_PARA_INT2` decimal(10,0) DEFAULT NULL COMMENT '规约参数2', - `RES_PARA_INT3` decimal(10,0) DEFAULT NULL COMMENT '规约参数3', - `RES_PARA_INT4` decimal(10,0) DEFAULT NULL COMMENT '规约参数4', - `RES_PARA_INT5` decimal(10,0) DEFAULT NULL COMMENT '规约参数5', - `RES_PARA_INT6` decimal(10,0) DEFAULT NULL COMMENT '规约参数6', - `RES_PARA_INT7` decimal(10,0) DEFAULT NULL COMMENT '规约参数7', - `RES_PARA_STR1` varchar(64) DEFAULT NULL COMMENT '规约参数8', - `RES_PARA_STR2` varchar(256) DEFAULT NULL COMMENT '规约参数9', - `RTU_TAG` varchar(64) DEFAULT NULL COMMENT '转发RTU标签名', - `RTU_NO` decimal(10,0) DEFAULT NULL COMMENT '转发RTU号', - `SRC_LOCATION_ID` decimal(10,0) DEFAULT NULL COMMENT '源所属车站', - `SRC_SUB_SYSTEM` decimal(10,0) DEFAULT NULL COMMENT '源所属专业', - `LOCATION_ID` decimal(10,0) DEFAULT NULL COMMENT '所属车站', - `SUB_SYSTEM` decimal(10,0) DEFAULT NULL COMMENT '所属专业', - PRIMARY KEY (`TAG_NAME`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='遥测转发表'; - -drop table if exists forward_analog_ctrl; -CREATE TABLE `forward_analog_ctrl` ( - `REMOTE_NO` decimal(10,0) DEFAULT NULL COMMENT '远动号', - `TAG_NAME` varchar(64) NOT NULL COMMENT '标签名', - `DESCRIPTION` varchar(128) DEFAULT NULL COMMENT '点描述', - `BASE` decimal(22,6) DEFAULT NULL COMMENT '基值', - `COEFF` decimal(22,6) DEFAULT NULL COMMENT '系数', - `FES_RTU_NO` decimal(10,0) DEFAULT NULL COMMENT '前置RTU号', - `FES_RTU_TAG` varchar(64) DEFAULT NULL COMMENT '前置RTU标签名', - `FES_DOT_NO` decimal(10,0) DEFAULT NULL COMMENT '前置点号', - `MAX_RANGE` decimal(22,6) DEFAULT NULL COMMENT '量程上限', - `MIN_RANGE` decimal(22,6) DEFAULT NULL COMMENT '量程下限', - `PROPERTY` decimal(10,0) DEFAULT NULL COMMENT '属性', - `SRC_TYPE` decimal(10,0) DEFAULT NULL COMMENT '点来源', - `RES_PARA_INT1` decimal(10,0) DEFAULT NULL COMMENT '规约参数1', - `RES_PARA_INT2` decimal(10,0) DEFAULT NULL COMMENT '规约参数2', - `RES_PARA_INT3` decimal(10,0) DEFAULT NULL COMMENT '规约参数3', - `RES_PARA_INT4` decimal(10,0) DEFAULT NULL COMMENT '规约参数4', - `RES_PARA_INT5` decimal(10,0) DEFAULT NULL COMMENT '规约参数5', - `RES_PARA_INT6` decimal(10,0) DEFAULT NULL COMMENT '规约参数6', - `RES_PARA_INT7` decimal(10,0) DEFAULT NULL COMMENT '规约参数7', - `RES_PARA_STR1` varchar(64) DEFAULT NULL COMMENT '规约参数8', - `RES_PARA_STR2` varchar(256) DEFAULT NULL COMMENT '规约参数9', - `RTU_TAG` varchar(64) DEFAULT NULL COMMENT '转发RTU标签名', - `RTU_NO` decimal(10,0) DEFAULT NULL COMMENT '转发RTU号', - `SRC_LOCATION_ID` decimal(10,0) DEFAULT NULL COMMENT '源所属车站', - `SRC_SUB_SYSTEM` decimal(10,0) DEFAULT NULL COMMENT '源所属专业', - `LOCATION_ID` decimal(10,0) DEFAULT NULL COMMENT '所属车站', - `SUB_SYSTEM` decimal(10,0) DEFAULT NULL COMMENT '所属专业', - PRIMARY KEY (`TAG_NAME`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='前置遥调转发表'; - -drop table if exists forward_digital_ctrl; -CREATE TABLE `forward_digital_ctrl` ( - `REMOTE_NO` decimal(10,0) DEFAULT NULL COMMENT '远动号', - `TAG_NAME` varchar(64) NOT NULL COMMENT '标签名', - `DESCRIPTION` varchar(128) DEFAULT NULL COMMENT '点描述', - `FES_RTU_NO` decimal(10,0) DEFAULT NULL COMMENT '前置RTU号', - `FES_RTU_TAG` varchar(64) DEFAULT NULL COMMENT '前置RTU标签名', - `OFFSET_NUM` decimal(10,0) DEFAULT NULL COMMENT '分量数', - `FES_DOT_TAG_NAME1` varchar(48) DEFAULT NULL COMMENT '前置分量1', - `FES_DOT_TAG_NAME2` varchar(48) DEFAULT NULL COMMENT '前置分量2', - `FES_DOT_TAG_NAME3` varchar(48) DEFAULT NULL COMMENT '前置分量3', - `FES_DOT_TAG_NAME4` varchar(48) DEFAULT NULL COMMENT '前置分量4', - `FES_DOT_TAG_NAME5` varchar(48) DEFAULT NULL COMMENT '前置分量5', - `PROPERTY` decimal(10,0) DEFAULT NULL COMMENT '属性', - `SRC_TYPE` decimal(10,0) DEFAULT NULL COMMENT '点来源', - `RES_PARA_INT1` decimal(10,0) DEFAULT NULL COMMENT '规约参数1', - `RES_PARA_INT2` decimal(10,0) DEFAULT NULL COMMENT '规约参数2', - `RES_PARA_INT3` decimal(10,0) DEFAULT NULL COMMENT '规约参数3', - `RES_PARA_INT4` decimal(10,0) DEFAULT NULL COMMENT '规约参数4', - `RES_PARA_INT5` decimal(10,0) DEFAULT NULL COMMENT '规约参数5', - `RES_PARA_INT6` decimal(10,0) DEFAULT NULL COMMENT '规约参数6', - `RES_PARA_INT7` decimal(10,0) DEFAULT NULL COMMENT '规约参数7', - `RES_PARA_STR1` varchar(64) DEFAULT NULL COMMENT '规约参数8', - `RES_PARA_STR2` varchar(256) DEFAULT NULL COMMENT '规约参数9', - `YK_NO` decimal(10,0) DEFAULT NULL COMMENT '遥控号', - `ZF_YK_NO` decimal(10,0) DEFAULT NULL COMMENT '转发遥控号', - `RTU_TAG` varchar(64) DEFAULT NULL COMMENT '转发RTU标签名', - `RTU_NO` decimal(10,0) DEFAULT NULL COMMENT '转发RTU号', - `SRC_LOCATION_ID` decimal(10,0) DEFAULT NULL COMMENT '源所属车站', - `SRC_SUB_SYSTEM` decimal(10,0) DEFAULT NULL COMMENT '源所属专业', - `FES_DOT_NO1` decimal(10,0) DEFAULT NULL COMMENT '前置点号1', - `FES_DOT_NO2` decimal(10,0) DEFAULT NULL COMMENT '前置点号2', - `FES_DOT_NO3` decimal(10,0) DEFAULT NULL COMMENT '前置点号3', - `FES_DOT_NO4` decimal(10,0) DEFAULT NULL COMMENT '前置点号4', - `FES_DOT_NO5` decimal(10,0) DEFAULT NULL COMMENT '前置点号5', - `LOCATION_ID` decimal(10,0) DEFAULT NULL COMMENT '所属车站', - `SUB_SYSTEM` decimal(10,0) DEFAULT NULL COMMENT '所属专业', - PRIMARY KEY (`TAG_NAME`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='遥控转发表'; - -drop table if exists forward_digital_double; -CREATE TABLE `forward_digital_double` ( - `REMOTE_NO` decimal(10,0) DEFAULT NULL COMMENT '远动号', - `TAG_NAME` varchar(64) NOT NULL COMMENT '标签名', - `DESCRIPTION` varchar(128) DEFAULT NULL COMMENT '点描述', - `DP_TAG_NAME` varchar(64) DEFAULT NULL COMMENT '标签名', - `FES_RTU_NO` decimal(10,0) DEFAULT NULL COMMENT '前置RTU号', - `FES_RTU_TAG` varchar(64) DEFAULT NULL COMMENT '前置RTU标签名', - `FES_DOT_NO` decimal(10,0) DEFAULT NULL COMMENT '前置点号', - `DP_SEQ_NO` decimal(10,0) DEFAULT NULL COMMENT '后台点号', - `PROPERTY` decimal(10,0) DEFAULT NULL COMMENT '属性', - `SRC_TYPE` decimal(10,0) DEFAULT NULL COMMENT '点来源', - `RES_PARA_INT1` decimal(10,0) DEFAULT NULL COMMENT '规约参数1', - `RES_PARA_INT2` decimal(10,0) DEFAULT NULL COMMENT '规约参数2', - `RES_PARA_INT3` decimal(10,0) DEFAULT NULL COMMENT '规约参数3', - `RES_PARA_INT4` decimal(10,0) DEFAULT NULL COMMENT '规约参数4', - `RES_PARA_INT5` decimal(10,0) DEFAULT NULL COMMENT '规约参数5', - `RES_PARA_INT6` decimal(10,0) DEFAULT NULL COMMENT '规约参数6', - `RES_PARA_INT7` decimal(10,0) DEFAULT NULL COMMENT '规约参数7', - `RES_PARA_STR1` varchar(64) DEFAULT NULL COMMENT '规约参数8', - `RES_PARA_STR2` varchar(256) DEFAULT NULL COMMENT '规约参数9', - `YK_NO` decimal(10,0) DEFAULT NULL COMMENT '遥控号', - `ZF_YK_NO` decimal(10,0) DEFAULT NULL COMMENT '转发遥控号', - `RTU_TAG` varchar(64) DEFAULT NULL COMMENT '转发RTU标签名', - `RTU_NO` decimal(10,0) DEFAULT NULL COMMENT '转发RTU号', - `SRC_LOCATION_ID` decimal(10,0) DEFAULT NULL COMMENT '源所属车站', - `SRC_SUB_SYSTEM` decimal(10,0) DEFAULT NULL COMMENT '源所属专业', - `LOCATION_ID` decimal(10,0) DEFAULT NULL COMMENT '所属车站', - `SUB_SYSTEM` decimal(10,0) DEFAULT NULL COMMENT '所属专业', - PRIMARY KEY (`TAG_NAME`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='双点遥信转发表'; - -drop table if exists forward_digital_single; -CREATE TABLE `forward_digital_single` ( - `REMOTE_NO` decimal(10,0) DEFAULT NULL COMMENT '远动号', - `TAG_NAME` varchar(64) NOT NULL COMMENT '标签名', - `DESCRIPTION` varchar(128) DEFAULT NULL COMMENT '点描述', - `DP_TAG_NAME` varchar(64) DEFAULT NULL COMMENT '标签名', - `FES_RTU_NO` decimal(10,0) DEFAULT NULL COMMENT '前置RTU号', - `FES_RTU_TAG` varchar(64) DEFAULT NULL COMMENT '前置RTU标签名', - `FES_DOT_NO` decimal(10,0) DEFAULT NULL COMMENT '前置点号', - `DP_SEQ_NO` decimal(10,0) DEFAULT NULL COMMENT '后台点号', - `PROPERTY` decimal(10,0) DEFAULT NULL COMMENT '属性', - `SRC_TYPE` decimal(10,0) DEFAULT NULL COMMENT '点来源', - `RES_PARA_INT1` decimal(10,0) DEFAULT NULL COMMENT '规约参数1', - `RES_PARA_INT2` decimal(10,0) DEFAULT NULL COMMENT '规约参数2', - `RES_PARA_INT3` decimal(10,0) DEFAULT NULL COMMENT '规约参数3', - `RES_PARA_INT4` decimal(10,0) DEFAULT NULL COMMENT '规约参数4', - `RES_PARA_INT5` decimal(10,0) DEFAULT NULL COMMENT '规约参数5', - `RES_PARA_INT6` decimal(10,0) DEFAULT NULL COMMENT '规约参数6', - `RES_PARA_INT7` decimal(10,0) DEFAULT NULL COMMENT '规约参数7', - `RES_PARA_STR1` varchar(64) DEFAULT NULL COMMENT '规约参数8', - `RES_PARA_STR2` varchar(256) DEFAULT NULL COMMENT '规约参数9', - `YK_NO` decimal(10,0) DEFAULT NULL COMMENT '遥控号', - `ZF_YK_NO` decimal(10,0) DEFAULT NULL COMMENT '转发遥控号', - `RTU_TAG` varchar(64) DEFAULT NULL COMMENT '转发RTU标签名', - `RTU_NO` decimal(10,0) DEFAULT NULL COMMENT '转发RTU号', - `SRC_LOCATION_ID` decimal(10,0) DEFAULT NULL COMMENT '源所属车站', - `SRC_SUB_SYSTEM` decimal(10,0) DEFAULT NULL COMMENT '源所属专业', - `LOCATION_ID` decimal(10,0) DEFAULT NULL COMMENT '所属车站', - `SUB_SYSTEM` decimal(10,0) DEFAULT NULL COMMENT '所属专业', - PRIMARY KEY (`TAG_NAME`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='单点遥信转发表'; - -drop table if exists forward_mix; -CREATE TABLE `forward_mix` ( - `REMOTE_NO` decimal(10,0) DEFAULT NULL COMMENT '远动号', - `TAG_NAME` varchar(64) NOT NULL COMMENT '标签名', - `DESCRIPTION` varchar(128) DEFAULT NULL COMMENT '点描述', - `DP_TAG_NAME` varchar(64) DEFAULT NULL COMMENT '标签名', - `FES_RTU_NO` decimal(10,0) DEFAULT NULL COMMENT '前置RTU号', - `FES_RTU_TAG` varchar(64) DEFAULT NULL COMMENT '前置RTU标签名', - `FES_DOT_NO` decimal(10,0) DEFAULT NULL COMMENT '前置点号', - `DP_SEQ_NO` decimal(10,0) DEFAULT NULL COMMENT '后台点号', - `BASE` decimal(10,0) DEFAULT NULL COMMENT '基值', - `COEFF` decimal(10,0) DEFAULT NULL COMMENT '系数', - `PROPERTY` decimal(10,0) DEFAULT NULL COMMENT '属性', - `SRC_TYPE` decimal(10,0) DEFAULT NULL COMMENT '点来源', - `RES_PARA_INT1` decimal(10,0) DEFAULT NULL COMMENT '规约参数1', - `RES_PARA_INT2` decimal(10,0) DEFAULT NULL COMMENT '规约参数2', - `RES_PARA_INT3` decimal(10,0) DEFAULT NULL COMMENT '规约参数3', - `RES_PARA_INT4` decimal(10,0) DEFAULT NULL COMMENT '规约参数4', - `RES_PARA_INT5` decimal(10,0) DEFAULT NULL COMMENT '规约参数5', - `RES_PARA_INT6` decimal(10,0) DEFAULT NULL COMMENT '规约参数6', - `RES_PARA_INT7` decimal(10,0) DEFAULT NULL COMMENT '规约参数7', - `RES_PARA_STR1` varchar(64) DEFAULT NULL COMMENT '规约参数8', - `RES_PARA_STR2` varchar(256) DEFAULT NULL COMMENT '规约参数9', - `RTU_TAG` varchar(64) DEFAULT NULL COMMENT '转发RTU标签名', - `RTU_NO` decimal(10,0) DEFAULT NULL COMMENT '转发RTU号', - `SRC_LOCATION_ID` decimal(10,0) DEFAULT NULL COMMENT '源所属车站', - `SRC_SUB_SYSTEM` decimal(10,0) DEFAULT NULL COMMENT '源所属专业', - `LOCATION_ID` decimal(10,0) DEFAULT NULL COMMENT '所属车站', - `SUB_SYSTEM` decimal(10,0) DEFAULT NULL COMMENT '所属专业', - PRIMARY KEY (`TAG_NAME`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='混合量转发表'; - -drop table if exists forward_mix_ctrl; -CREATE TABLE `forward_mix_ctrl` ( - `REMOTE_NO` decimal(10,0) DEFAULT NULL COMMENT '远动号', - `TAG_NAME` varchar(64) NOT NULL COMMENT '标签名', - `DESCRIPTION` varchar(128) DEFAULT NULL COMMENT '点描述', - `FES_RTU_NO` decimal(10,0) DEFAULT NULL COMMENT '前置RTU号', - `FES_RTU_TAG` varchar(64) DEFAULT NULL COMMENT '前置RTU标签名', - `FES_DOT_NO` decimal(10,0) DEFAULT NULL COMMENT '前置点号', - `DP_SEQ_NO` decimal(10,0) DEFAULT NULL COMMENT '后台点号', - `MAX_RANGE` decimal(10,0) DEFAULT NULL COMMENT '量程上限', - `MIN_RANGE` decimal(10,0) DEFAULT NULL COMMENT '量程下限', - `PROPERTY` decimal(10,0) DEFAULT NULL COMMENT '属性', - `SRC_TYPE` decimal(10,0) DEFAULT NULL COMMENT '点来源', - `RES_PARA_INT1` decimal(10,0) DEFAULT NULL COMMENT '规约参数1', - `RES_PARA_INT2` decimal(10,0) DEFAULT NULL COMMENT '规约参数2', - `RES_PARA_INT3` decimal(10,0) DEFAULT NULL COMMENT '规约参数3', - `RES_PARA_INT4` decimal(10,0) DEFAULT NULL COMMENT '规约参数4', - `RES_PARA_INT5` decimal(10,0) DEFAULT NULL COMMENT '规约参数5', - `RES_PARA_INT6` decimal(10,0) DEFAULT NULL COMMENT '规约参数6', - `RES_PARA_INT7` decimal(10,0) DEFAULT NULL COMMENT '规约参数7', - `RES_PARA_STR1` varchar(64) DEFAULT NULL COMMENT '规约参数8', - `RES_PARA_STR2` varchar(256) DEFAULT NULL COMMENT '规约参数9', - `RTU_TAG` varchar(64) DEFAULT NULL COMMENT '转发RTU标签名', - `RTU_NO` decimal(10,0) DEFAULT NULL COMMENT '转发RTU号', - `SRC_LOCATION_ID` decimal(10,0) DEFAULT NULL COMMENT '源所属车站', - `SRC_SUB_SYSTEM` decimal(10,0) DEFAULT NULL COMMENT '源所属专业', - `LOCATION_ID` decimal(10,0) DEFAULT NULL COMMENT '所属车站', - `SUB_SYSTEM` decimal(10,0) DEFAULT NULL COMMENT '所属专业', - PRIMARY KEY (`TAG_NAME`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='混合量控制转发表'; - -drop table if exists linkage_action; -CREATE TABLE `linkage_action` ( - `NAME` varchar(128) NOT NULL COMMENT '动作名称', - `DESCRIPTION` varchar(128) DEFAULT NULL COMMENT '动作描述', - `LINKAGE_STRING` varchar(2048) DEFAULT NULL COMMENT '动作解析串', - `CTRL_TIMEOUT` decimal(10,0) DEFAULT NULL COMMENT '控制超时时间', - `ACTION_TYPE` decimal(10,0) DEFAULT NULL COMMENT '动作类型', - `SUB_SYSTEM` decimal(10,0) DEFAULT NULL COMMENT '所属子系统', - `LOCATION_ID` decimal(10,0) DEFAULT NULL COMMENT '控制点所属车站', - `TIMEFLAG` decimal(20,0) DEFAULT NULL COMMENT '时标', - PRIMARY KEY (`NAME`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='联动动作'; - -drop trigger if exists TI_LINKAGE_ACTION; -DELIMITER ;; -create trigger TI_LINKAGE_ACTION BEFORE INSERT on linkage_action for each ROW -body:BEGIN - #仅仅修改时标 - - SET NEW.TIMEFLAG = unix_timestamp(now()); - -END;; -DELIMITER ; - -drop trigger if exists TIA_LINKAGE_ACTION; -DELIMITER ;; -create trigger TIA_LINKAGE_ACTION AFTER INSERT on linkage_action for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'linkage_action', 'name', '', NEW.NAME, getTableSubSystem('linkage_action')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TU_LINKAGE_ACTION; -DELIMITER ;; -create trigger TU_LINKAGE_ACTION BEFORE UPDATE on linkage_action for each ROW -body:BEGIN - #修改对应功能 - SET NEW.TIMEFLAG = unix_timestamp(now()); - UPDATE linkage_function SET - TIMEFLAG = NEW.TIMEFLAG, - ACTION_NAME = NEW.NAME - WHERE ACTION_NAME = OLD.NAME; -END;; -DELIMITER ; - -drop trigger if exists TUA_LINKAGE_ACTION; -DELIMITER ;; -create trigger TUA_LINKAGE_ACTION AFTER UPDATE on linkage_action for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'linkage_action', 'name', OLD.NAME, NEW.NAME, getTableSubSystem('linkage_action')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TD_LINKAGE_ACTION; -DELIMITER ;; -create trigger TD_LINKAGE_ACTION AFTER DELETE on linkage_action for each ROW -body:BEGIN - #删除关联了此动作的功能 - DELETE FROM linkage_function WHERE ACTION_NAME = OLD.NAME; - -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'linkage_action', 'name', OLD.NAME, '', getTableSubSystem('linkage_action')); -END IF; -END;; -DELIMITER ; - -drop table if exists linkage_define; -CREATE TABLE `linkage_define` ( - `LINKAGE_NAME` varchar(128) NOT NULL COMMENT '联动名称', - `FUNC_NAME` varchar(128) NOT NULL COMMENT '功能名', - `FUNC_NO` decimal(10,0) DEFAULT NULL COMMENT '功能编号', - `RELATION` decimal(10,0) DEFAULT NULL COMMENT '串/并', - `TIMEFLAG` decimal(20,0) DEFAULT NULL COMMENT '时标', - PRIMARY KEY (`LINKAGE_NAME`,`FUNC_NAME`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='联动定义'; - -drop trigger if exists TI_LINKAGE_DEFINE; -DELIMITER ;; -create trigger TI_LINKAGE_DEFINE BEFORE INSERT on linkage_define for each ROW -body:BEGIN - #仅仅修改时标 - #避免触发器循环 - SET @disableLinkageSettingTrigger = 1; - - IF COALESCE(@disableLinkageDefineTrigger,0) = 0 THEN - BEGIN - SET NEW.TIMEFLAG = unix_timestamp(now()); - UPDATE linkage_setting SET - TIMEFLAG = NEW.TIMEFLAG - WHERE NAME = NEW.LINKAGE_NAME; - END; - END IF; - - SET @disableLinkageSettingTrigger = 0; - -END;; -DELIMITER ; - -drop trigger if exists TIA_LINKAGE_DEFINE; -DELIMITER ;; -create trigger TIA_LINKAGE_DEFINE AFTER INSERT on linkage_define for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'linkage_define', 'linkage_name,func_name', '', concat(NEW.LINKAGE_NAME,',',NEW.FUNC_NAME), getTableSubSystem('linkage_define')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TU_LINKAGE_DEFINE; -DELIMITER ;; -create trigger TU_LINKAGE_DEFINE BEFORE UPDATE on linkage_define for each ROW -body:BEGIN - #修改对应联动功能关系表 - #避免触发器循环 - SET @disableLinkageSettingTrigger = 1; - - IF COALESCE(@disableLinkageDefineTrigger,0) = 0 THEN - BEGIN - SET NEW.TIMEFLAG = unix_timestamp(now()); - UPDATE linkage_setting SET - TIMEFLAG = NEW.TIMEFLAG - WHERE NAME = OLD.LINKAGE_NAME; - END; - END IF; - - SET @disableLinkageSettingTrigger = 0; - -END;; -DELIMITER ; - -drop trigger if exists TUA_LINKAGE_DEFINE; -DELIMITER ;; -create trigger TUA_LINKAGE_DEFINE AFTER UPDATE on linkage_define for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'linkage_define', 'linkage_name,func_name', concat(OLD.LINKAGE_NAME,',',OLD.FUNC_NAME), concat(NEW.LINKAGE_NAME,',',NEW.FUNC_NAME), getTableSubSystem('linkage_define')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TD_LINKAGE_DEFINE; -DELIMITER ;; -create trigger TD_LINKAGE_DEFINE AFTER DELETE on linkage_define for each ROW -body:BEGIN - #仅仅修改时标 - #避免触发器循环 - SET @disableLinkageSettingTrigger = 1; - - IF COALESCE(@disableLinkageDefineTrigger,0) = 0 THEN - BEGIN - UPDATE linkage_setting SET - TIMEFLAG = unix_timestamp(now()) - WHERE NAME = OLD.LINKAGE_NAME; - END; - END IF; - - SET @disableLinkageSettingTrigger = 0; - -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'linkage_define', 'linkage_name,func_name', concat(OLD.LINKAGE_NAME,',',OLD.FUNC_NAME), '', getTableSubSystem('linkage_define')); -END IF; -END;; -DELIMITER ; - -drop table if exists linkage_function; -CREATE TABLE `linkage_function` ( - `NAME` varchar(128) NOT NULL COMMENT '功能名称', - `DESCRIPTION` varchar(128) DEFAULT NULL COMMENT '功能描述', - `ACTION_NO` decimal(10,0) DEFAULT NULL COMMENT '动作编号', - `ACTION_NAME` varchar(128) NOT NULL COMMENT '动作名称', - `ENABLE` decimal(10,0) DEFAULT NULL COMMENT '是否可用', - `DELAYTIME` decimal(10,0) DEFAULT NULL COMMENT '延时时间', - `CONDITION_TYPE` decimal(10,0) DEFAULT '0' COMMENT '执行条件', - `CONDITION_INFO` varchar(256) DEFAULT NULL COMMENT '条件信息', - `FAILSTRAGE` decimal(10,0) DEFAULT NULL COMMENT '失败处理', - `RETRYTIMES` decimal(10,0) DEFAULT NULL COMMENT '重试次数', - `TIMEFLAG` decimal(20,0) DEFAULT NULL COMMENT '时标', - `FUNC_TYPE` decimal(10,0) DEFAULT NULL COMMENT '功能类型', - PRIMARY KEY (`NAME`,`ACTION_NAME`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='联动功能表'; - -drop trigger if exists TI_LINKAGE_FUNCTION; -DELIMITER ;; -create trigger TI_LINKAGE_FUNCTION BEFORE INSERT on linkage_function for each ROW -body:BEGIN - #仅仅修改时标 - SET NEW.TIMEFLAG = unix_timestamp(now()); - -END;; -DELIMITER ; - -drop trigger if exists TIA_LINKAGE_FUNCTION; -DELIMITER ;; -create trigger TIA_LINKAGE_FUNCTION AFTER INSERT on linkage_function for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'linkage_function', 'name,action_name', '', concat(NEW.NAME,',',NEW.ACTION_NAME), getTableSubSystem('linkage_function')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TU_LINKAGE_FUNCTION; -DELIMITER ;; -create trigger TU_LINKAGE_FUNCTION BEFORE UPDATE on linkage_function for each ROW -body:BEGIN - #修改对应联动功能关系表 - SET NEW.TIMEFLAG = unix_timestamp(now()); - UPDATE linkage_define SET - TIMEFLAG = NEW.TIMEFLAG, - FUNC_NAME = NEW.NAME - WHERE FUNC_NAME = OLD.NAME; -END;; -DELIMITER ; - -drop trigger if exists TUA_LINKAGE_FUNCTION; -DELIMITER ;; -create trigger TUA_LINKAGE_FUNCTION AFTER UPDATE on linkage_function for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'linkage_function', 'name,action_name', concat(OLD.NAME,',',OLD.ACTION_NAME), concat(NEW.NAME,',',NEW.ACTION_NAME), getTableSubSystem('linkage_function')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TD_LINKAGE_FUNCTION; -DELIMITER ;; -create trigger TD_LINKAGE_FUNCTION AFTER DELETE on linkage_function for each ROW -body:BEGIN - #删除关联了此功能的联动定义 - #检查功能是否被删除 - IF NOT EXISTS (SELECT * FROM linkage_function WHERE NAME = OLD.NAME) THEN - BEGIN - DELETE FROM linkage_define WHERE FUNC_NAME = OLD.NAME; - END; - ELSE - BEGIN - #修改时标 - UPDATE linkage_define SET - TIMEFLAG = unix_timestamp(now()) - WHERE FUNC_NAME = OLD.NAME; - END; - END IF; - - - - -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'linkage_function', 'name,action_name', concat(OLD.NAME,',',OLD.ACTION_NAME), '', getTableSubSystem('linkage_function')); -END IF; -END;; -DELIMITER ; - -drop table if exists linkage_setting; -CREATE TABLE `linkage_setting` ( - `NAME` varchar(128) NOT NULL COMMENT '联动名称', - `DESCRIPTION` varchar(128) DEFAULT NULL COMMENT '描述', - `TRIGGER_TYPE` decimal(10,0) DEFAULT NULL COMMENT '触发方式', - `EXEC_TYPE` decimal(10,0) DEFAULT NULL COMMENT '执行方式', - `LINK_TYPE` decimal(10,0) DEFAULT NULL COMMENT '联动类型', - `TRIGGER_CONDITION` varchar(64) DEFAULT NULL COMMENT '触发条件', - `LOCATION_ID` decimal(10,0) DEFAULT NULL COMMENT '车站ID', - `TIMEFLAG` decimal(20,0) DEFAULT NULL COMMENT '时标', - `MUTEX_LIST` varchar(1280) DEFAULT NULL COMMENT '联动互斥列表', - PRIMARY KEY (`NAME`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='联动配置'; - -drop trigger if exists TI_LINKAGE_SETTING; -DELIMITER ;; -create trigger TI_LINKAGE_SETTING BEFORE INSERT on linkage_setting for each ROW -body:BEGIN - #仅仅修改时标 - #避免触发器循环 - SET @disableLinkageDefineTrigger = 1; - - IF COALESCE(@disableLinkageSettingTrigger,0) = 0 THEN - BEGIN - SET NEW.TIMEFLAG = unix_timestamp(now()); - END; - END IF; - - SET @disableLinkageDefineTrigger = 0; - - -END;; -DELIMITER ; - -drop trigger if exists TIA_LINKAGE_SETTING; -DELIMITER ;; -create trigger TIA_LINKAGE_SETTING AFTER INSERT on linkage_setting for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'linkage_setting', 'name', '', NEW.NAME, getTableSubSystem('linkage_setting')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TU_LINKAGE_SETTING; -DELIMITER ;; -create trigger TU_LINKAGE_SETTING BEFORE UPDATE on linkage_setting for each ROW -body:BEGIN - #修改对应联动功能关系表 - #避免触发器循环 - SET @disableLinkageDefineTrigger = 1; - - IF COALESCE(@disableLinkageSettingTrigger,0) = 0 THEN - BEGIN - SET NEW.TIMEFLAG = unix_timestamp(now()); - IF NEW.NAME<>OLD.NAME THEN - UPDATE linkage_define SET - LINKAGE_NAME = NEW.NAME - WHERE LINKAGE_NAME = OLD.NAME; - END IF; - END; - END IF; - - SET @disableLinkageDefineTrigger = 0; - - -END;; -DELIMITER ; - -drop trigger if exists TUA_LINKAGE_SETTING; -DELIMITER ;; -create trigger TUA_LINKAGE_SETTING AFTER UPDATE on linkage_setting for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'linkage_setting', 'name', OLD.NAME, NEW.NAME, getTableSubSystem('linkage_setting')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TD_LINKAGE_SETTING; -DELIMITER ;; -create trigger TD_LINKAGE_SETTING AFTER DELETE on linkage_setting for each ROW -body:BEGIN - #删除关联了此联动的功能关联 - #避免触发器循环 - SET @disableLinkageDefineTrigger = 1; - - IF COALESCE(@disableLinkageSettingTrigger,0) = 0 THEN - BEGIN - DELETE FROM linkage_define WHERE LINKAGE_NAME = OLD.NAME; - END; - END IF; - - SET @disableLinkageDefineTrigger = 0; - - -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'linkage_setting', 'name', OLD.NAME, '', getTableSubSystem('linkage_setting')); -END IF; -END;; -DELIMITER ; - -drop table if exists load_stat_define; -CREATE TABLE `load_stat_define` ( - `TAG_NAME` varchar(64) NOT NULL COMMENT '标签', - `DESCRIPTION` varchar(128) NOT NULL COMMENT '描述', - `IS_ENABLED` decimal(10,0) NOT NULL DEFAULT '0' COMMENT '是否启用,0为不启用,1为启用', - `TYPE` decimal(10,0) NOT NULL DEFAULT '1' COMMENT '设备类型,1为线路,2为馈线,3为变压器,4为配变', - `LEVEL` decimal(10,0) NOT NULL DEFAULT '0' COMMENT '负荷等级 0为非一级,1为1级', - `V_BASE` decimal(22,6) DEFAULT NULL COMMENT '电压基准值', - `A_BASE` decimal(22,6) DEFAULT NULL COMMENT '电流基准值', - `V_TAG` varchar(64) DEFAULT NULL COMMENT '电压遥测点标签', - `A_TAG` varchar(64) DEFAULT NULL COMMENT '电流遥测点标签', - `LOAD_TAG` varchar(64) DEFAULT NULL COMMENT '负载遥测点标签', - `AVAIL_RATIO_TAG` varchar(64) DEFAULT NULL COMMENT '供电可靠率遥信点标签', - `FAIL_RATIO_TAG` varchar(64) DEFAULT NULL COMMENT '线路故障率遥信点标签', - PRIMARY KEY (`TAG_NAME`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='负载统计定义表'; - -drop table if exists mix_control; -CREATE TABLE `mix_control` ( - `TAG_NAME` varchar(64) NOT NULL COMMENT '标签名', - `LOCATION_ID` decimal(10,0) DEFAULT NULL COMMENT '所属车站', - `SUB_SYSTEM` decimal(10,0) DEFAULT NULL COMMENT '所属专业', - `CTRL_ACT_NAME` varchar(64) DEFAULT NULL, - `CTRL_TYPE` decimal(10,0) DEFAULT NULL, - `IS_TAGT_STATE` decimal(10,0) DEFAULT NULL COMMENT '是否等待目标状态', - `CTRL_TIMEOUT` decimal(10,0) DEFAULT NULL COMMENT '控制超时时间', - `RESV_TIMEOUT` decimal(10,0) DEFAULT NULL COMMENT '控制保留时间', - `BASE` decimal(22,6) DEFAULT NULL COMMENT '基数', - `COEFF` decimal(22,6) DEFAULT NULL COMMENT '系数', - `CTRL_TOLERANCE` decimal(22,6) DEFAULT NULL COMMENT '控制目标误差-预留', - `RANGE_UP` decimal(10,0) DEFAULT NULL COMMENT '最大量程 ', - `RANGE_LOW` decimal(10,0) DEFAULT NULL COMMENT '最小量程 ', - `RTU_TAG` varchar(64) DEFAULT NULL COMMENT 'RTU标签', - `OFFSET_NO` varchar(48) DEFAULT NULL COMMENT 'DAO点号', - `CTRL_ALIAS` varchar(128) DEFAULT NULL COMMENT '遥控别名', - `POINT_TP_NAME` varchar(64) DEFAULT NULL COMMENT '点模板名', - PRIMARY KEY (`TAG_NAME`), - KEY `IN_MIX_CONTROL` (`RTU_TAG`,`OFFSET_NO`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='混合量输出参数表'; - -drop trigger if exists TIA_MIX_CONTROL; -DELIMITER ;; -create trigger TIA_MIX_CONTROL AFTER INSERT on mix_control for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'mix_control', 'tag_name', '', NEW.TAG_NAME, getTableSubSystem('mix_control')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TU_MIX_CONTROL; -DELIMITER ;; -create trigger TU_MIX_CONTROL BEFORE UPDATE on mix_control for each ROW -body:BEGIN - - #修改功能名称 - IF COALESCE(NEW.RTU_TAG,'') = '' THEN - BEGIN - SET NEW.OFFSET_NO = '-1'; - END; - END IF; - -END;; -DELIMITER ; - -drop trigger if exists TUA_MIX_CONTROL; -DELIMITER ;; -create trigger TUA_MIX_CONTROL AFTER UPDATE on mix_control for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'mix_control', 'tag_name', OLD.TAG_NAME, NEW.TAG_NAME, getTableSubSystem('mix_control')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_MIX_CONTROL; -DELIMITER ;; -create trigger TDA_MIX_CONTROL AFTER DELETE on mix_control for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'mix_control', 'tag_name', OLD.TAG_NAME, '', getTableSubSystem('mix_control')); -END IF; -END;; -DELIMITER ; - -drop table if exists mix_map_to_fes; -CREATE TABLE `mix_map_to_fes` ( - `KEY_ID_TAG` varchar(128) NOT NULL COMMENT '标签点名(表名.测点标签)', - `LOCATION_ID` decimal(10,0) DEFAULT NULL COMMENT '所属车站', - `SUB_SYSTEM` decimal(10,0) DEFAULT NULL COMMENT '所属专业', - `DEV_TYPE` decimal(10,0) DEFAULT NULL COMMENT '设备类型', - `POINT_TP_NAME` varchar(64) DEFAULT NULL COMMENT '点模板名称', - `RTU_TAG` varchar(64) DEFAULT NULL COMMENT '前置RTU', - `DOT_NO` varchar(48) DEFAULT NULL COMMENT '前置序号', - `BASE` decimal(22,6) DEFAULT NULL COMMENT '基值', - `COEFF` decimal(22,6) DEFAULT NULL COMMENT '系数-预留', - `RANGE_UP` decimal(10,0) DEFAULT NULL COMMENT '最大量程', - `RANGE_LOW` decimal(10,0) DEFAULT NULL COMMENT '最小量程', - `IS_FILTER_ERROR` decimal(10,0) DEFAULT NULL COMMENT '是否过滤突变', - `IS_FILTER_DISTURB` decimal(10,0) DEFAULT NULL COMMENT '是否过滤抖动', - `DISTURB_TIME` decimal(10,0) DEFAULT NULL COMMENT '抖动时间限制', - `DESCRIPTION` varchar(128) DEFAULT NULL COMMENT '描述', - PRIMARY KEY (`KEY_ID_TAG`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='模拟量前置映射表'; - -drop trigger if exists TI_MIX_MAP_TO_FES; -DELIMITER ;; -create trigger TI_MIX_MAP_TO_FES AFTER INSERT on mix_map_to_fes for each ROW -BEGIN - - SET @disableFesMixTrigger = 1; - - IF COALESCE(@disableMixMapToFesTrigger,0) = 0 THEN - BEGIN - IF COALESCE(NEW.RTU_TAG,'') <> '' THEN - BEGIN - IF COALESCE(NEW.DOT_NO,'') <> '' THEN - UPDATE fes_mix SET - APP_TABLE_NAME=getBeforeFirstDot(NEW.KEY_ID_TAG), - APP_TAG_NAME=getAfterFirstDot(NEW.KEY_ID_TAG), - APP_COLUMN_NAME='value' - WHERE TAG_NAME = concat(NEW.RTU_TAG,'.',NEW.DOT_NO); - END IF; - - END; - END IF; - END; - END IF; - SET @disableFesMixTrigger = 0; - -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'mix_map_to_fes', 'key_id_tag', '', NEW.KEY_ID_TAG, getTableSubSystem('mix_map_to_fes')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TU_MIX_MAP_TO_FES; -DELIMITER ;; -create trigger TU_MIX_MAP_TO_FES BEFORE UPDATE on mix_map_to_fes for each ROW -body_label:BEGIN - - IF NEW.RTU_TAG = OLD.RTU_TAG AND - NEW.DOT_NO = OLD.DOT_NO AND - NEW.KEY_ID_TAG = OLD.KEY_ID_TAG - THEN LEAVE body_label; - END IF; - - - SET @disableFesMixTrigger = 1; - - IF COALESCE(@disableMixMapToFesTrigger,0) = 0 THEN - BEGIN - - IF COALESCE(OLD.RTU_TAG,'') <> '' THEN - BEGIN - IF COALESCE(OLD.DOT_NO,'') <> '' THEN - UPDATE fes_mix SET - APP_TABLE_NAME='', - APP_TAG_NAME='', - APP_COLUMN_NAME='' - WHERE TAG_NAME=concat(OLD.RTU_TAG,'.',OLD.DOT_NO); - END IF; - - END; - END IF; - - - IF COALESCE(NEW.RTU_TAG,'') <> '' THEN - BEGIN - IF COALESCE(NEW.DOT_NO,'') <> '' THEN - UPDATE fes_mix SET - APP_TABLE_NAME=getBeforeFirstDot(NEW.KEY_ID_TAG), - APP_TAG_NAME=getAfterFirstDot(NEW.KEY_ID_TAG), - APP_COLUMN_NAME='value' - WHERE TAG_NAME=concat(NEW.RTU_TAG,'.',NEW.DOT_NO); - END IF; - - END; - ELSE SET NEW.DOT_NO = '-1'; - END IF; - END; - END IF; - - SET @disableFesMixTrigger = 0; - -END;; -DELIMITER ; - -drop trigger if exists TUA_MIX_MAP_TO_FES; -DELIMITER ;; -create trigger TUA_MIX_MAP_TO_FES AFTER UPDATE on mix_map_to_fes for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'mix_map_to_fes', 'key_id_tag', OLD.KEY_ID_TAG, NEW.KEY_ID_TAG, getTableSubSystem('mix_map_to_fes')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TD_MIX_MAP_TO_FES; -DELIMITER ;; -create trigger TD_MIX_MAP_TO_FES BEFORE DELETE on mix_map_to_fes for each ROW -BEGIN - - SET @disableFesMixTrigger = 1; - - IF COALESCE(@disableMixMapToFesTrigger,0) = 0 THEN - BEGIN - - IF COALESCE(OLD.RTU_TAG,'') <> '' THEN - BEGIN - IF COALESCE(OLD.DOT_NO,'') <> '' THEN - UPDATE fes_mix SET - APP_TABLE_NAME='', - APP_TAG_NAME='', - APP_COLUMN_NAME='' - WHERE TAG_NAME = concat(OLD.RTU_TAG,'.',OLD.DOT_NO); - END IF; - - END; - END IF; - END; - END IF; - - SET @disableFesMixTrigger = 0; - -END;; -DELIMITER ; - -drop trigger if exists TDA_MIX_MAP_TO_FES; -DELIMITER ;; -create trigger TDA_MIX_MAP_TO_FES AFTER DELETE on mix_map_to_fes for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'mix_map_to_fes', 'key_id_tag', OLD.KEY_ID_TAG, '', getTableSubSystem('mix_map_to_fes')); -END IF; -END;; -DELIMITER ; - -drop table if exists mix_temp_define; -CREATE TABLE `mix_temp_define` ( - `TAG_NAME` varchar(64) NOT NULL COMMENT '点标签', - `DESCRIPTION` varchar(128) NOT NULL COMMENT '点描述', - `DEV_TP_NAME` varchar(64) NOT NULL COMMENT '设备模板名称', - `SEQ_NO` decimal(10,0) NOT NULL COMMENT '点序号', - `POINT_TYPE` decimal(10,0) DEFAULT NULL COMMENT '点类型', - `POINT_CLASS` decimal(10,0) DEFAULT NULL COMMENT '点类别 ', - `POINT_PROPERTY` decimal(10,0) DEFAULT NULL COMMENT '点属性(采集点/计算点/虚拟点...)', - `POINT_SORT` decimal(10,0) DEFAULT NULL COMMENT ' 测点种类 ', - `IS_SAMPLE` decimal(10,0) DEFAULT NULL COMMENT '是否采样', - `IS_STATISTICS` decimal(10,0) DEFAULT NULL COMMENT '是否统计', - `SAMPLE_PERIOD` decimal(10,0) DEFAULT NULL, - `STATE_TEXT_NAME` varchar(64) DEFAULT NULL COMMENT 'RETURN_PERCENT', - `ALARM_PRIORITY` decimal(10,0) DEFAULT NULL COMMENT '告警优先级', - `ALARM_DELAY_TIME` decimal(10,0) DEFAULT NULL COMMENT '告警延时时间', - `IS_WATER_ALM` decimal(10,0) DEFAULT NULL COMMENT '是否流水账', - `IS_ACK_ON_RTN` decimal(10,0) DEFAULT NULL COMMENT '是否返回自动确认', - `DEL_ACT_ON_ACK` decimal(10,0) DEFAULT NULL COMMENT '确认后自动删除', - `IS_NEVER_ALM_ON_RTN` decimal(10,0) DEFAULT NULL COMMENT '是否返回不上窗', - `IS_FILTER_ERROR` decimal(10,0) DEFAULT NULL COMMENT '是否过滤MI错误', - `IS_FILTER_DISTURB` decimal(10,0) DEFAULT NULL COMMENT '是否过滤抖动', - `DISTURB_TIME` decimal(10,0) DEFAULT NULL COMMENT '抖动时限', - `IS_CONTROL` decimal(10,0) DEFAULT NULL COMMENT '是否控制', - `CTRL_TYPE` decimal(10,0) DEFAULT NULL, - `IS_TAGT_STATE` decimal(10,0) DEFAULT NULL COMMENT '是否等待目标状态', - `CTRL_TIMEOUT` decimal(10,0) DEFAULT NULL COMMENT '控制超时时间', - `RESV_TIMEOUT` decimal(10,0) DEFAULT NULL COMMENT '控制保留时间', - `BASE` decimal(22,6) DEFAULT NULL COMMENT '基数-AO表', - `COEFF` decimal(22,6) DEFAULT NULL COMMENT '系数-AO表', - `RANGE_UP` decimal(10,0) DEFAULT NULL COMMENT '量程最大值 ', - `RANGE_LOW` decimal(10,0) DEFAULT NULL COMMENT '量程最小值 ', - `CTRL_TOLERANCE` decimal(22,6) DEFAULT NULL COMMENT '控制目标误差', - `CTRL_ACT_NAME` varchar(64) DEFAULT NULL COMMENT '控制动作组名', - `SEC_DEV_IN_GRP` decimal(10,0) DEFAULT NULL COMMENT '二次设备在设备组内序号', - `SEC_DEVTP_NAME` varchar(64) DEFAULT NULL COMMENT '二次设备模板', - `SEC_SEQ_NO` decimal(10,0) DEFAULT NULL COMMENT '输入点号', - `OUT_SEC_SEQ_NO` decimal(10,0) DEFAULT NULL COMMENT '输出点号', - `KEY_VALUE` decimal(10,0) DEFAULT NULL COMMENT '关键数据标志', - PRIMARY KEY (`TAG_NAME`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='混合量模板定义表'; - -drop trigger if exists TI_MIX_TEMP_DEFINE; -DELIMITER ;; -create trigger TI_MIX_TEMP_DEFINE AFTER INSERT on mix_temp_define for each ROW -BEGIN - /* - INSERT INTO mix( - TAG_NAME, DESCRIPTION, DEVICE, SEQ_NO, LOCATION_ID, SUB_SYSTEM, RTU_TAG, IS_CONTROL, STATE_TEXT_NAME, GRAY, CONTRAST, QCOLOR, RAW_VALUE, VALUE, STATUS, LAST_UPDATE_TIME, LAST_CHANGE_TIME, METHOD, ALARM_PRIORITY, PIC_NAME, SOUND_NAME1, SOUND_NAME2, SOUND_NAME3, ALARM_DELAY_TIME, IS_WATER_ALM, IS_ACK_ON_RTN, DEL_ACT_ON_ACK, IS_NEVER_ALM_ON_RTN, REGION_ID, OPT_HANDOVER_GROUP, IS_SUMMARY, SUMMARY_VALUE, SUMMARY_STATUS, DEV_TYPE, POINT_TP_NAME, IS_SAMPLE, IS_STATISTICS, SAMPLE_PERIOD, POINT_TYPE, POINT_CLASS, POINT_PROPERTY, POINT_SORT, CAMERA_TAG, PRESET_ID) SELECT - concat(TAG_NAME, '.' , getAfterLastDot(NEW.TAG_NAME)),NEW.DESCRIPTION,TAG_NAME,NEW.SEQ_NO,LOCATION_ID, SUB_SYSTEM, '', NEW.IS_CONTROL, NEW.STATE_TEXT_NAME,GRAY, CONTRAST, QCOLOR, '0', VALUE, STATUS, '0', '0', '', NEW.ALARM_PRIORITY, '', '', '', '', NEW.ALARM_DELAY_TIME,NEW.IS_WATER_ALM,NEW.IS_ACK_ON_RTN,NEW.DEL_ACT_ON_ACK,NEW.IS_NEVER_ALM_ON_RTN,REGION_ID, OPT_HANDOVER_GROUP, IS_SUMMARY, SUMMARY_VALUE, SUMMARY_STATUS, DEV_TYPE, NEW.TAG_NAME, NEW.IS_SAMPLE,NEW.IS_STATISTICS,NEW.SAMPLE_PERIOD,NEW.POINT_TYPE,NEW.POINT_CLASS,NEW.POINT_PROPERTY,NEW.POINT_SORT,'', '' - FROM dev_info WHERE DEV_TP_NAME = NEW.DEV_TP_NAME; -*/ - - INSERT INTO temp_plugin_point_map_mix - (PLUGIN_NAME, TEMP_NAME, TEMP_POINT_NAME, FES_TEMP_NAME, FES_TEMP_POINT_NAME, FES_TEMP_OUT_NAME) - SELECT - PLUGIN_NAME, TEMP_NAME, getAfterLastDot(NEW.TAG_NAME),'','','' - FROM temp_plugin_dev_map WHERE TEMP_NAME = NEW.DEV_TP_NAME; -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'mix_temp_define', 'tag_name', '', NEW.TAG_NAME, getTableSubSystem('mix_temp_define')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TU_MIX_TEMP_DEFINE; -DELIMITER ;; -create trigger TU_MIX_TEMP_DEFINE AFTER UPDATE on mix_temp_define for each ROW -BEGIN - /* - UPDATE mix SET - TAG_NAME = concat(DEVICE, '.', getAfterLastDot(NEW.TAG_NAME)), - DESCRIPTION = NEW.DESCRIPTION, - SEQ_NO = NEW.SEQ_NO, - IS_CONTROL = NEW.IS_CONTROL, - STATE_TEXT_NAME = NEW.STATE_TEXT_NAME, - ALARM_PRIORITY = NEW.ALARM_PRIORITY, - ALARM_DELAY_TIME = NEW.ALARM_DELAY_TIME, - IS_WATER_ALM = NEW.IS_WATER_ALM, - IS_ACK_ON_RTN = NEW.IS_ACK_ON_RTN, - DEL_ACT_ON_ACK = NEW.DEL_ACT_ON_ACK, - IS_NEVER_ALM_ON_RTN = NEW.IS_NEVER_ALM_ON_RTN, - POINT_TP_NAME = NEW.TAG_NAME, - IS_SAMPLE = NEW.IS_SAMPLE, - IS_STATISTICS = NEW.IS_STATISTICS, - SAMPLE_PERIOD = NEW.SAMPLE_PERIOD, - POINT_TYPE = NEW.POINT_TYPE, - POINT_CLASS = NEW.POINT_CLASS, - POINT_PROPERTY = NEW.POINT_PROPERTY, - POINT_SORT = NEW.POINT_SORT - WHERE POINT_TP_NAME=OLD.TAG_NAME; - - UPDATE mix_control SET - CTRL_ACT_NAME = NEW.CTRL_ACT_NAME, - CTRL_TYPE = NEW.CTRL_TYPE, - IS_TAGT_STATE = NEW.IS_TAGT_STATE, - CTRL_TIMEOUT = NEW.CTRL_TIMEOUT, - RESV_TIMEOUT = NEW.RESV_TIMEOUT, - BASE = NEW.BASE, - COEFF = NEW.COEFF, - CTRL_TOLERANCE = NEW.CTRL_TOLERANCE, - RANGE_UP = NEW.RANGE_UP, - RANGE_LOW = NEW.RANGE_LOW, - POINT_TP_NAME = NEW.TAG_NAME - WHERE POINT_TP_NAME = OLD.TAG_NAME; - - UPDATE mix_map_to_fes SET - POINT_TP_NAME = NEW.TAG_NAME, - BASE = NEW.BASE, - COEFF = NEW.COEFF, - RANGE_UP = NEW.RANGE_UP, - RANGE_LOW = NEW.RANGE_LOW, - IS_FILTER_ERROR = NEW.IS_FILTER_ERROR, - IS_FILTER_DISTURB = NEW.IS_FILTER_DISTURB, - DISTURB_TIME = NEW.DISTURB_TIME - WHERE POINT_TP_NAME = OLD.TAG_NAME; - */ - - IF NEW.TAG_NAME <> OLD.TAG_NAME THEN - UPDATE temp_plugin_point_map_mix - SET TEMP_POINT_NAME = getAfterLastDot(NEW.TAG_NAME) - WHERE TEMP_NAME = OLD.DEV_TP_NAME AND TEMP_POINT_NAME = getAfterLastDot(OLD.TAG_NAME); - END IF; - -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'mix_temp_define', 'tag_name', OLD.TAG_NAME, NEW.TAG_NAME, getTableSubSystem('mix_temp_define')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TD_MIX_TEMP_DEFINE; -DELIMITER ;; -create trigger TD_MIX_TEMP_DEFINE BEFORE DELETE on mix_temp_define for each ROW -BEGIN - DELETE FROM temp_plugin_point_map_mix WHERE TEMP_NAME = OLD.DEV_TP_NAME AND TEMP_POINT_NAME = getAfterLastDot(OLD.TAG_NAME); - /* - DELETE FROM mix WHERE POINT_TP_NAME = OLD.TAG_NAME; - */ -END;; -DELIMITER ; - -drop trigger if exists TDA_MIX_TEMP_DEFINE; -DELIMITER ;; -create trigger TDA_MIX_TEMP_DEFINE AFTER DELETE on mix_temp_define for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'mix_temp_define', 'tag_name', OLD.TAG_NAME, '', getTableSubSystem('mix_temp_define')); -END IF; -END;; -DELIMITER ; - -drop table if exists opc_config_define; -CREATE TABLE `opc_config_define` ( - `TAG_NAME` varchar(64) NOT NULL COMMENT '标签名', - `DESCRIPTION` varchar(128) NOT NULL COMMENT '点描述', - `DEVICE` varchar(64) DEFAULT NULL COMMENT '设备标签', - `DEV_GROUP` varchar(64) NOT NULL COMMENT '设备组标签', - `COEFF` decimal(22,6) NOT NULL COMMENT '系数', - `BASE` decimal(22,6) NOT NULL COMMENT '基值', - `POINT_TYPE` varchar(64) NOT NULL COMMENT '点类型', - `VALUE_TYPE` varchar(64) NOT NULL COMMENT '值类型', - `LOCATION_ID` decimal(10,0) NOT NULL COMMENT '所属车站', - `SUB_SYSTEM` decimal(10,0) NOT NULL COMMENT '所属专业', - PRIMARY KEY (`TAG_NAME`), - KEY `IN_OPC_CONFIG_DEFINE` (`DEVICE`,`DEV_GROUP`,`POINT_TYPE`,`VALUE_TYPE`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='opc配置表'; - -drop trigger if exists TIA_OPC_CONFIG_DEFINE; -DELIMITER ;; -create trigger TIA_OPC_CONFIG_DEFINE AFTER INSERT on opc_config_define for each ROW -BEGIN - - IF getTriggerFlag() = TRUE THEN - INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) - VALUES (getMaxTriggerId(),getOpType('insert'),'opc_config_define', 'tag_name', '', NEW.TAG_NAME, getTableSubSystem('opc_config_define')); - END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_OPC_CONFIG_DEFINE; -DELIMITER ;; -create trigger TUA_OPC_CONFIG_DEFINE AFTER UPDATE on opc_config_define for each ROW -BEGIN - IF getTriggerFlag() = TRUE THEN - INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME, KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) - VALUES (getMaxTriggerId(),getOpType('update'),'opc_config_define', 'tag_name', OLD.TAG_NAME, NEW.TAG_NAME, getTableSubSystem('opc_config_define')); - END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_OPC_CONFIG_DEFINE; -DELIMITER ;; -create trigger TDA_OPC_CONFIG_DEFINE AFTER DELETE on opc_config_define for each ROW -BEGIN - IF getTriggerFlag() = TRUE THEN - INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) - VALUES (getMaxTriggerId(),getOpType('delete'),'opc_config_define', 'tag_name', OLD.TAG_NAME, '', getTableSubSystem('opc_config_define')); - END IF; -END;; -DELIMITER ; - -drop table if exists opc_config_version; -CREATE TABLE `opc_config_version` ( - `DOMAIN_ID` decimal(10,0) NOT NULL COMMENT '所属域', - `SUB_SYSTEM` decimal(10,0) NOT NULL COMMENT '所属专业', - `VERSION` decimal(10,0) NOT NULL COMMENT '版本号', - `UPDATE_TIME` varchar(64) DEFAULT NULL COMMENT '最后更新时间', - PRIMARY KEY (`DOMAIN_ID`,`SUB_SYSTEM`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='opc配置版本记录表'; - -drop trigger if exists TIA_OPC_CONFIG_VERSION; -DELIMITER ;; -create trigger TIA_OPC_CONFIG_VERSION AFTER INSERT on opc_config_version for each ROW -BEGIN - - IF getTriggerFlag() = TRUE THEN - INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) - VALUES (getMaxTriggerId(),getOpType('insert'),'opc_config_version', 'domain_id,sub_system', '', concat(NEW.DOMAIN_ID,',',NEW.SUB_SYSTEM), getTableSubSystem('opc_config_version')); - END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_OPC_CONFIG_VERSION; -DELIMITER ;; -create trigger TUA_OPC_CONFIG_VERSION AFTER UPDATE on opc_config_version for each ROW -BEGIN - IF getTriggerFlag() = TRUE THEN - INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME, KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) - VALUES (getMaxTriggerId(),getOpType('update'),'opc_config_version', 'domain_id,sub_system', concat(OLD.DOMAIN_ID,',',OLD.SUB_SYSTEM), concat(NEW.DOMAIN_ID,',',NEW.SUB_SYSTEM), getTableSubSystem('opc_config_version')); - END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_OPC_CONFIG_VERSION; -DELIMITER ;; -create trigger TDA_OPC_CONFIG_VERSION AFTER DELETE on opc_config_version for each ROW -BEGIN - IF getTriggerFlag() = TRUE THEN - INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) - VALUES (getMaxTriggerId(),getOpType('delete'),'opc_config_version', 'domain_id,sub_system', concat(OLD.DOMAIN_ID,',',OLD.SUB_SYSTEM), '', getTableSubSystem('opc_config_version')); - END IF; -END;; -DELIMITER ; - -drop table if exists operation_order_model; -CREATE TABLE `operation_order_model` ( - `ID` decimal(10,0) NOT NULL COMMENT 'ID', - `ORDER_NAME` varchar(256) NOT NULL COMMENT '操作票名', - `ORDER_DESC` varchar(512) DEFAULT NULL COMMENT '操作票描述', - `REMARKS` varchar(1024) DEFAULT NULL COMMENT '备注', - PRIMARY KEY (`ID`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='典型操作票表'; - -drop table if exists operation_order_model_info; -CREATE TABLE `operation_order_model_info` ( - `ORDER_ID` decimal(10,0) NOT NULL COMMENT '操作票ID,关联OPERATION_ORDER_PRESTORE表的ID列', - `SEQ_NO` decimal(10,0) NOT NULL COMMENT '序号', - `OPT_DESC` varchar(512) NOT NULL COMMENT '操作描述', - `KEY_ID_TAG` varchar(64) DEFAULT NULL COMMENT '测点标识', - `CTRL_VALUE` decimal(10,0) DEFAULT NULL COMMENT '控制值', - `REMARKS` varchar(512) DEFAULT NULL COMMENT '备注', - PRIMARY KEY (`ORDER_ID`,`SEQ_NO`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='典型操作票信息表'; - -drop table if exists p_dict; -CREATE TABLE `p_dict` ( - `DICT_ID` decimal(10,0) NOT NULL COMMENT '数据字典标识', - `DICT_SORT_ID` decimal(10,0) DEFAULT NULL COMMENT '数据字典分类标识', - `DICT_CODE` varchar(64) DEFAULT NULL COMMENT '数据字典代码', - `DICT_NAME_ZH` varchar(64) DEFAULT NULL COMMENT '数据字典名称,用于中文语系', - `DICT_NAME_EN` varchar(150) DEFAULT NULL COMMENT '数据字典名称,用于英文语系', - `DISPLAY_SN` decimal(10,0) DEFAULT NULL COMMENT '显示顺序', - `STATUS` decimal(10,0) DEFAULT NULL COMMENT '使用状态 0:未启用 1:启用', - `TYPE` varchar(4) DEFAULT NULL COMMENT '类型', - PRIMARY KEY (`DICT_ID`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='字典信息从表'; - -drop table if exists p_dict_sort; -CREATE TABLE `p_dict_sort` ( - `DICT_SORT_ID` decimal(10,0) NOT NULL COMMENT '数据字典分类标识', - `DICT_SORT_CODE` varchar(16) DEFAULT NULL COMMENT '数据字典分类代码', - `DICT_SORT_NAME` varchar(64) DEFAULT NULL COMMENT '数据字典分类名称', - `SORT_ID` decimal(10,0) DEFAULT NULL COMMENT '排序编号', - PRIMARY KEY (`DICT_SORT_ID`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='字典信息主表'; - -drop table if exists pa_area_info; -CREATE TABLE `pa_area_info` ( - `ID` decimal(10,0) NOT NULL COMMENT '区域ID', - `NAME` varchar(64) NOT NULL COMMENT '广播区名', - PRIMARY KEY (`ID`), - UNIQUE KEY `UN_PA_AREA_INFO` (`ID`,`NAME`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='PA广播区列表'; - -drop trigger if exists TIA_PA_AREA_INFO; -DELIMITER ;; -create trigger TIA_PA_AREA_INFO AFTER INSERT on pa_area_info for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'pa_area_info', 'id', '', NEW.ID, getTableSubSystem('pa_area_info')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_PA_AREA_INFO; -DELIMITER ;; -create trigger TUA_PA_AREA_INFO AFTER UPDATE on pa_area_info for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'pa_area_info', 'id', OLD.ID, NEW.ID, getTableSubSystem('pa_area_info')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_PA_AREA_INFO; -DELIMITER ;; -create trigger TDA_PA_AREA_INFO AFTER DELETE on pa_area_info for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'pa_area_info', 'id', OLD.ID, '', getTableSubSystem('pa_area_info')); -END IF; -END;; -DELIMITER ; - -drop table if exists pa_audio_info; -CREATE TABLE `pa_audio_info` ( - `ID` decimal(10,0) NOT NULL COMMENT '预录语音ID', - `NAME` varchar(64) NOT NULL COMMENT '预录语音名', - `CONTENT` varchar(256) NOT NULL COMMENT '内容', - `DURATION` decimal(10,0) NOT NULL COMMENT '时长,单位秒', - PRIMARY KEY (`ID`), - UNIQUE KEY `UN_PA_AUDIO_INFO` (`ID`,`NAME`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='预录语音信息'; - -drop trigger if exists TIA_PA_AUDIO_INFO; -DELIMITER ;; -create trigger TIA_PA_AUDIO_INFO AFTER INSERT on pa_audio_info for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'pa_audio_info', 'id', '', NEW.ID, getTableSubSystem('pa_audio_info')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_PA_AUDIO_INFO; -DELIMITER ;; -create trigger TUA_PA_AUDIO_INFO AFTER UPDATE on pa_audio_info for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'pa_audio_info', 'id', OLD.ID, NEW.ID, getTableSubSystem('pa_audio_info')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_PA_AUDIO_INFO; -DELIMITER ;; -create trigger TDA_PA_AUDIO_INFO AFTER DELETE on pa_audio_info for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'pa_audio_info', 'id', OLD.ID, '', getTableSubSystem('pa_audio_info')); -END IF; -END;; -DELIMITER ; - -drop table if exists pa_broadcast_group; -CREATE TABLE `pa_broadcast_group` ( - `ID` decimal(10,0) NOT NULL COMMENT '广播组ID', - `NAME` varchar(64) NOT NULL COMMENT '广播组名', - `LOCATION_ID` decimal(10,0) NOT NULL COMMENT '所属车站/位置', - `AREA_SEQ` varchar(1024) NOT NULL COMMENT '广播区详情', - PRIMARY KEY (`ID`,`LOCATION_ID`), - UNIQUE KEY `UN_PA_BROADCAST_GROUP` (`ID`,`NAME`,`LOCATION_ID`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='广播组'; - -drop trigger if exists TIA_PA_BROADCAST_GROUP; -DELIMITER ;; -create trigger TIA_PA_BROADCAST_GROUP AFTER INSERT on pa_broadcast_group for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'pa_broadcast_group', 'id,location_id', '', concat(NEW.ID,',',NEW.LOCATION_ID), getTableSubSystem('pa_broadcast_group')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_PA_BROADCAST_GROUP; -DELIMITER ;; -create trigger TUA_PA_BROADCAST_GROUP AFTER UPDATE on pa_broadcast_group for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'pa_broadcast_group', 'id,location_id', concat(OLD.ID,',',OLD.LOCATION_ID), concat(NEW.ID,',',NEW.LOCATION_ID), getTableSubSystem('pa_broadcast_group')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_PA_BROADCAST_GROUP; -DELIMITER ;; -create trigger TDA_PA_BROADCAST_GROUP AFTER DELETE on pa_broadcast_group for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'pa_broadcast_group', 'id,location_id', concat(OLD.ID,',',OLD.LOCATION_ID), '', getTableSubSystem('pa_broadcast_group')); -END IF; -END;; -DELIMITER ; - -drop table if exists pa_ctrl_param; -CREATE TABLE `pa_ctrl_param` ( - `LOCATION_ID` decimal(10,0) NOT NULL COMMENT '车站ID', - `CTRL_TAG_NAME` varchar(64) NOT NULL COMMENT '测点名', - PRIMARY KEY (`LOCATION_ID`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='PA控制参数配置'; - -drop trigger if exists TIA_PA_CTRL_PARAM; -DELIMITER ;; -create trigger TIA_PA_CTRL_PARAM AFTER INSERT on pa_ctrl_param for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'pa_ctrl_param', 'location_id', '', NEW.LOCATION_ID, getTableSubSystem('pa_ctrl_param')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_PA_CTRL_PARAM; -DELIMITER ;; -create trigger TUA_PA_CTRL_PARAM AFTER UPDATE on pa_ctrl_param for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'pa_ctrl_param', 'location_id', OLD.LOCATION_ID, NEW.LOCATION_ID, getTableSubSystem('pa_ctrl_param')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_PA_CTRL_PARAM; -DELIMITER ;; -create trigger TDA_PA_CTRL_PARAM AFTER DELETE on pa_ctrl_param for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'pa_ctrl_param', 'location_id', OLD.LOCATION_ID, '', getTableSubSystem('pa_ctrl_param')); -END IF; -END;; -DELIMITER ; - -drop table if exists pa_location_area_def; -CREATE TABLE `pa_location_area_def` ( - `LOCATION_ID` decimal(10,0) NOT NULL COMMENT '车站ID,关联车站表', - `AREA_ID` decimal(10,0) NOT NULL COMMENT '广播区ID,关联PA_AREA_INFO', - PRIMARY KEY (`LOCATION_ID`,`AREA_ID`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='车站广播区定义'; - -drop trigger if exists TIA_PA_LOCATION_AREA_DEF; -DELIMITER ;; -create trigger TIA_PA_LOCATION_AREA_DEF AFTER INSERT on pa_location_area_def for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'pa_location_area_def', 'location_id,area_id', '', concat(NEW.LOCATION_ID,',',NEW.AREA_ID), getTableSubSystem('pa_location_area_def')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_PA_LOCATION_AREA_DEF; -DELIMITER ;; -create trigger TUA_PA_LOCATION_AREA_DEF AFTER UPDATE on pa_location_area_def for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'pa_location_area_def', 'location_id,area_id', concat(OLD.LOCATION_ID,',',OLD.AREA_ID), concat(NEW.LOCATION_ID,',',NEW.AREA_ID), getTableSubSystem('pa_location_area_def')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_PA_LOCATION_AREA_DEF; -DELIMITER ;; -create trigger TDA_PA_LOCATION_AREA_DEF AFTER DELETE on pa_location_area_def for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'pa_location_area_def', 'location_id,area_id', concat(OLD.LOCATION_ID,',',OLD.AREA_ID), '', getTableSubSystem('pa_location_area_def')); -END IF; -END;; -DELIMITER ; - -drop table if exists pa_location_seq_def; -CREATE TABLE `pa_location_seq_def` ( - `LOCATION_ID` decimal(10,0) NOT NULL COMMENT '车站ID', - `SEQ` decimal(10,0) NOT NULL COMMENT '顺序号', - PRIMARY KEY (`LOCATION_ID`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='PA系统车站序号定义'; - -drop trigger if exists TIA_PA_LOCATION_SEQ_DEF; -DELIMITER ;; -create trigger TIA_PA_LOCATION_SEQ_DEF AFTER INSERT on pa_location_seq_def for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'pa_location_seq_def', 'location_id', '', NEW.LOCATION_ID, getTableSubSystem('pa_location_seq_def')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_PA_LOCATION_SEQ_DEF; -DELIMITER ;; -create trigger TUA_PA_LOCATION_SEQ_DEF AFTER UPDATE on pa_location_seq_def for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'pa_location_seq_def', 'location_id', OLD.LOCATION_ID, NEW.LOCATION_ID, getTableSubSystem('pa_location_seq_def')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_PA_LOCATION_SEQ_DEF; -DELIMITER ;; -create trigger TDA_PA_LOCATION_SEQ_DEF AFTER DELETE on pa_location_seq_def for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'pa_location_seq_def', 'location_id', OLD.LOCATION_ID, '', getTableSubSystem('pa_location_seq_def')); -END IF; -END;; -DELIMITER ; - -drop table if exists pa_operator_def; -CREATE TABLE `pa_operator_def` ( - `ID` decimal(10,0) NOT NULL COMMENT '操作员ID', - `DESCRIPTION` varchar(64) NOT NULL COMMENT '描述', - PRIMARY KEY (`ID`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='PA子系统操作员ID定义表'; - -drop trigger if exists TIA_PA_OPERATOR_DEF; -DELIMITER ;; -create trigger TIA_PA_OPERATOR_DEF AFTER INSERT on pa_operator_def for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'pa_operator_def', 'id', '', NEW.ID, getTableSubSystem('pa_operator_def')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_PA_OPERATOR_DEF; -DELIMITER ;; -create trigger TUA_PA_OPERATOR_DEF AFTER UPDATE on pa_operator_def for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'pa_operator_def', 'id', OLD.ID, NEW.ID, getTableSubSystem('pa_operator_def')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_PA_OPERATOR_DEF; -DELIMITER ;; -create trigger TDA_PA_OPERATOR_DEF AFTER DELETE on pa_operator_def for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'pa_operator_def', 'id', OLD.ID, '', getTableSubSystem('pa_operator_def')); -END IF; -END;; -DELIMITER ; - -drop table if exists pa_operator_map; -CREATE TABLE `pa_operator_map` ( - `USER_GRP_ID` decimal(10,0) NOT NULL COMMENT 'ISCS用户组ID', - `PA_OPERATOR_ID` decimal(10,0) NOT NULL COMMENT 'PA操作员ID', - PRIMARY KEY (`USER_GRP_ID`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='ISCS操作员ID与PA操作员ID映射'; - -drop trigger if exists TIA_PA_OPERATOR_MAP; -DELIMITER ;; -create trigger TIA_PA_OPERATOR_MAP AFTER INSERT on pa_operator_map for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'pa_operator_map', 'user_grp_id', '', NEW.USER_GRP_ID, getTableSubSystem('pa_operator_map')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_PA_OPERATOR_MAP; -DELIMITER ;; -create trigger TUA_PA_OPERATOR_MAP AFTER UPDATE on pa_operator_map for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'pa_operator_map', 'user_grp_id', OLD.USER_GRP_ID, NEW.USER_GRP_ID, getTableSubSystem('pa_operator_map')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_PA_OPERATOR_MAP; -DELIMITER ;; -create trigger TDA_PA_OPERATOR_MAP AFTER DELETE on pa_operator_map for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'pa_operator_map', 'user_grp_id', OLD.USER_GRP_ID, '', getTableSubSystem('pa_operator_map')); -END IF; -END;; -DELIMITER ; - -drop table if exists pa_timed_audio; -CREATE TABLE `pa_timed_audio` ( - `ID` decimal(10,0) NOT NULL COMMENT '定时广播ID', - `LOCATION_ID` decimal(10,0) NOT NULL COMMENT '所属车站/位置', - `NAME` varchar(64) NOT NULL COMMENT '定时广播名', - `AUDIO_ID_LIST` varchar(256) NOT NULL COMMENT '预录语音ID列表,英文逗号分隔', - `AREA_SEQ` varchar(1024) NOT NULL COMMENT '广播区详情', - `IS_ACTIVE` decimal(10,0) NOT NULL COMMENT '是否激活', - `WEEK_INFO` varchar(8) NOT NULL COMMENT '7个字符,从周一到周日', - `START_TIME` varchar(16) NOT NULL COMMENT '开始时间,时分秒08:00:00', - `END_TIME` varchar(16) NOT NULL COMMENT '结束时间,时分秒', - `INTERVAL_TIME` decimal(10,0) NOT NULL COMMENT '间隔时间', - `USER_ID` decimal(10,0) NOT NULL COMMENT '操作员ID-ISCS系统中的操作员', - `USER_GRP_ID` decimal(10,0) NOT NULL, - `OPERATE_TIME` decimal(20,0) DEFAULT NULL COMMENT '操作时间', - `CUR_AUDIO_DURATION` decimal(10,0) DEFAULT NULL COMMENT '当前正在播放的语音持续时间,单位秒', - `NEXT_AUDIO_INDEX` decimal(10,0) DEFAULT NULL COMMENT '下一个要播放的语音的索引,AUDIO_ID_LIST中的索引', - PRIMARY KEY (`ID`,`LOCATION_ID`), - UNIQUE KEY `UN_PA_TIMED_AUDIO` (`ID`,`LOCATION_ID`,`NAME`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='定时广播'; - -drop trigger if exists TIA_PA_TIMED_AUDIO; -DELIMITER ;; -create trigger TIA_PA_TIMED_AUDIO AFTER INSERT on pa_timed_audio for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'pa_timed_audio', 'id,location_id', '', concat(NEW.ID,',',NEW.LOCATION_ID), getTableSubSystem('pa_timed_audio')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_PA_TIMED_AUDIO; -DELIMITER ;; -create trigger TUA_PA_TIMED_AUDIO AFTER UPDATE on pa_timed_audio for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'pa_timed_audio', 'id,location_id', concat(OLD.ID,',',OLD.LOCATION_ID), concat(NEW.ID,',',NEW.LOCATION_ID), getTableSubSystem('pa_timed_audio')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_PA_TIMED_AUDIO; -DELIMITER ;; -create trigger TDA_PA_TIMED_AUDIO AFTER DELETE on pa_timed_audio for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'pa_timed_audio', 'id,location_id', concat(OLD.ID,',',OLD.LOCATION_ID), '', getTableSubSystem('pa_timed_audio')); -END IF; -END;; -DELIMITER ; - -drop table if exists pis_area_info; -CREATE TABLE `pis_area_info` ( - `ID` decimal(10,0) NOT NULL COMMENT '区域ID', - `NAME` varchar(64) NOT NULL COMMENT '区域名', - PRIMARY KEY (`ID`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='PIS区域信息'; - -drop trigger if exists TIA_PIS_AREA_INFO; -DELIMITER ;; -create trigger TIA_PIS_AREA_INFO AFTER INSERT on pis_area_info for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'pis_area_info', 'id', '', NEW.ID, getTableSubSystem('pis_area_info')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_PIS_AREA_INFO; -DELIMITER ;; -create trigger TUA_PIS_AREA_INFO AFTER UPDATE on pis_area_info for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'pis_area_info', 'id', OLD.ID, NEW.ID, getTableSubSystem('pis_area_info')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_PIS_AREA_INFO; -DELIMITER ;; -create trigger TDA_PIS_AREA_INFO AFTER DELETE on pis_area_info for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'pis_area_info', 'id', OLD.ID, '', getTableSubSystem('pis_area_info')); -END IF; -END;; -DELIMITER ; - -drop table if exists pis_ctrl_param; -CREATE TABLE `pis_ctrl_param` ( - `LOCATION_ID` decimal(10,0) NOT NULL COMMENT '车站ID', - `CTRL_KEY_ID_TAG` varchar(64) NOT NULL COMMENT '测点名', - PRIMARY KEY (`LOCATION_ID`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='PIS控制参数配置'; - -drop trigger if exists TIA_PIS_CTRL_PARAM; -DELIMITER ;; -create trigger TIA_PIS_CTRL_PARAM AFTER INSERT on pis_ctrl_param for each ROW -BEGIN - IF getTriggerFlag() = TRUE THEN - INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) - VALUES (getMaxTriggerId(),getOpType('insert'),'pis_ctrl_param', 'location_id', '', NEW.LOCATION_ID, getTableSubSystem('pis_ctrl_param')); - END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_PIS_CTRL_PARAM; -DELIMITER ;; -create trigger TUA_PIS_CTRL_PARAM AFTER UPDATE on pis_ctrl_param for each ROW -BEGIN - IF getTriggerFlag() = TRUE THEN - INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) - VALUES (getMaxTriggerId(),getOpType('update'),'pis_ctrl_param', 'location_id', OLD.LOCATION_ID, NEW.LOCATION_ID, getTableSubSystem('pis_ctrl_param')); - END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_PIS_CTRL_PARAM; -DELIMITER ;; -create trigger TDA_PIS_CTRL_PARAM AFTER DELETE on pis_ctrl_param for each ROW -BEGIN - IF getTriggerFlag() = TRUE THEN - INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) - VALUES (getMaxTriggerId(),getOpType('delete'),'pis_ctrl_param', 'location_id', OLD.LOCATION_ID, '', getTableSubSystem('pis_ctrl_param')); - END IF; -END;; -DELIMITER ; - -drop table if exists pis_display_info; -CREATE TABLE `pis_display_info` ( - `ID` decimal(10,0) NOT NULL COMMENT '发布记录ID', - `LOCATION_ID` decimal(10,0) NOT NULL COMMENT '位置ID', - `MSG_ID` decimal(10,0) DEFAULT NULL COMMENT '消息ID', - `MSG_CONTENT` varchar(512) DEFAULT NULL COMMENT '消息内容', - `AREAS` varchar(50) DEFAULT NULL COMMENT 'PIS发布区', - `DEST_LOCATION` decimal(10,0) DEFAULT NULL COMMENT '发布目的地', - `BEGIN_TIME` varchar(8) DEFAULT NULL COMMENT '开始时间,例如08:00', - `END_TIME` varchar(8) DEFAULT NULL COMMENT '结束时间,例如08:00', - `MSG_PRIORITY` decimal(10,0) DEFAULT NULL COMMENT '消息优先级', - `INTERVAL_TIME` decimal(10,0) DEFAULT NULL COMMENT '间隔时间,单位秒', - `OPERATOR_ID` decimal(10,0) DEFAULT NULL COMMENT '操作员ID', - `OPERATE_TIME` decimal(20,0) DEFAULT NULL COMMENT '操作时间,单位1970-1-1至今的秒数', - PRIMARY KEY (`ID`,`LOCATION_ID`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='PIS发布记录表'; - -drop trigger if exists TIA_PIS_DISPLAY_INFO; -DELIMITER ;; -create trigger TIA_PIS_DISPLAY_INFO AFTER INSERT on pis_display_info for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'pis_display_info', 'id,location_id', '', concat(NEW.ID,',',NEW.LOCATION_ID), getTableSubSystem('pis_display_info')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_PIS_DISPLAY_INFO; -DELIMITER ;; -create trigger TUA_PIS_DISPLAY_INFO AFTER UPDATE on pis_display_info for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'pis_display_info', 'id,location_id', concat(OLD.ID,',',OLD.LOCATION_ID), concat(NEW.ID,',',NEW.LOCATION_ID), getTableSubSystem('pis_display_info')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_PIS_DISPLAY_INFO; -DELIMITER ;; -create trigger TDA_PIS_DISPLAY_INFO AFTER DELETE on pis_display_info for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'pis_display_info', 'id,location_id', concat(OLD.ID,',',OLD.LOCATION_ID), '', getTableSubSystem('pis_display_info')); -END IF; -END;; -DELIMITER ; - -drop table if exists pis_fes_location_info; -CREATE TABLE `pis_fes_location_info` ( - `PIS_STATION_ID` decimal(10,0) NOT NULL COMMENT 'ATS对应的站号,0~31', - `LOCATION_ID` decimal(10,0) NOT NULL COMMENT 'ISCS车站号', - PRIMARY KEY (`PIS_STATION_ID`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='前置PIS乘客信息配置表'; - -drop trigger if exists TIA_PIS_FES_LOCATION_INFO; -DELIMITER ;; -create trigger TIA_PIS_FES_LOCATION_INFO AFTER INSERT on pis_fes_location_info for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'pis_fes_location_info', 'pis_station_id', '', NEW.PIS_STATION_ID, getTableSubSystem('pis_fes_location_info')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_PIS_FES_LOCATION_INFO; -DELIMITER ;; -create trigger TUA_PIS_FES_LOCATION_INFO AFTER UPDATE on pis_fes_location_info for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'pis_fes_location_info', 'pis_station_id', OLD.PIS_STATION_ID, NEW.PIS_STATION_ID, getTableSubSystem('pis_fes_location_info')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_PIS_FES_LOCATION_INFO; -DELIMITER ;; -create trigger TDA_PIS_FES_LOCATION_INFO AFTER DELETE on pis_fes_location_info for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'pis_fes_location_info', 'pis_station_id', OLD.PIS_STATION_ID, '', getTableSubSystem('pis_fes_location_info')); -END IF; -END;; -DELIMITER ; - -drop table if exists pis_location_area_def; -CREATE TABLE `pis_location_area_def` ( - `LOCATION_ID` decimal(10,0) NOT NULL COMMENT '车站ID', - `AREA_ID` decimal(10,0) NOT NULL COMMENT '区域ID', - PRIMARY KEY (`LOCATION_ID`,`AREA_ID`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='PIS车站发布区定义表'; - -drop trigger if exists TIA_PIS_LOCATION_AREA_DEF; -DELIMITER ;; -create trigger TIA_PIS_LOCATION_AREA_DEF AFTER INSERT on pis_location_area_def for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'pis_location_area_def', 'location_id,area_id', '', concat(NEW.LOCATION_ID,',',NEW.AREA_ID), getTableSubSystem('pis_location_area_def')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_PIS_LOCATION_AREA_DEF; -DELIMITER ;; -create trigger TUA_PIS_LOCATION_AREA_DEF AFTER UPDATE on pis_location_area_def for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'pis_location_area_def', 'location_id,area_id', concat(OLD.LOCATION_ID,',',OLD.AREA_ID), concat(NEW.LOCATION_ID,',',NEW.AREA_ID), getTableSubSystem('pis_location_area_def')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_PIS_LOCATION_AREA_DEF; -DELIMITER ;; -create trigger TDA_PIS_LOCATION_AREA_DEF AFTER DELETE on pis_location_area_def for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'pis_location_area_def', 'location_id,area_id', concat(OLD.LOCATION_ID,',',OLD.AREA_ID), '', getTableSubSystem('pis_location_area_def')); -END IF; -END;; -DELIMITER ; - -drop table if exists pis_message_info; -CREATE TABLE `pis_message_info` ( - `ID` decimal(10,0) NOT NULL COMMENT '信息ID', - `LOCATION_ID` decimal(10,0) NOT NULL COMMENT '位置ID', - `DESCRIPTION` varchar(64) NOT NULL COMMENT 'PIS信息描述', - `CONTENT` varchar(512) NOT NULL COMMENT 'PIS信息内容', - PRIMARY KEY (`ID`,`LOCATION_ID`), - UNIQUE KEY `UN_PIS_MESSAGE_INFO` (`ID`,`LOCATION_ID`,`DESCRIPTION`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='PIS信息模板表'; - -drop trigger if exists TIA_PIS_MESSAGE_INFO; -DELIMITER ;; -create trigger TIA_PIS_MESSAGE_INFO AFTER INSERT on pis_message_info for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'pis_message_info', 'id,location_id', '', concat(NEW.ID,',',NEW.LOCATION_ID), getTableSubSystem('pis_message_info')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_PIS_MESSAGE_INFO; -DELIMITER ;; -create trigger TUA_PIS_MESSAGE_INFO AFTER UPDATE on pis_message_info for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'pis_message_info', 'id,location_id', concat(OLD.ID,',',OLD.LOCATION_ID), concat(NEW.ID,',',NEW.LOCATION_ID), getTableSubSystem('pis_message_info')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_PIS_MESSAGE_INFO; -DELIMITER ;; -create trigger TDA_PIS_MESSAGE_INFO AFTER DELETE on pis_message_info for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'pis_message_info', 'id,location_id', concat(OLD.ID,',',OLD.LOCATION_ID), '', getTableSubSystem('pis_message_info')); -END IF; -END;; -DELIMITER ; - -drop table if exists point_lock_condition_info; -CREATE TABLE `point_lock_condition_info` ( - `tag_name` varchar(128) NOT NULL COMMENT '闭锁测点标签', - `actual_value` decimal(10,0) NOT NULL COMMENT '实际值', - `condition_tag_name` varchar(128) NOT NULL COMMENT '条件测点', - `condition_desc` varchar(128) NOT NULL COMMENT '描述', - `condition1` decimal(10,0) NOT NULL COMMENT '条件1', - `value1` decimal(22,6) NOT NULL COMMENT '值1', - `condition2` decimal(10,0) NOT NULL COMMENT '条件2', - `value2` decimal(22,6) NOT NULL COMMENT '值2', - `condition_table` varchar(128) NOT NULL COMMENT '表名', - PRIMARY KEY (`tag_name`,`actual_value`,`condition_tag_name`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='测点闭锁信息表'; - -drop table if exists point_lock_config_info; -CREATE TABLE `point_lock_config_info` ( - `tag_name` varchar(128) NOT NULL COMMENT '标签', - `actual_value` decimal(10,0) NOT NULL COMMENT '实际值', - `isEnable` decimal(10,0) NOT NULL COMMENT '启用', - PRIMARY KEY (`tag_name`,`actual_value`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='测点闭锁配置信息表'; - -drop table if exists point_task_link; -CREATE TABLE `point_task_link` ( - `KEY_ID_TAG` varchar(80) NOT NULL COMMENT '点标签', - `TASK_STANDARD_UUID` varchar(37) NOT NULL COMMENT '作业组模板uuid(唯一标识)', - `TASK_DESC` varchar(128) NOT NULL COMMENT '作业组描述', - `IS_AUTO` decimal(10,0) NOT NULL COMMENT '是否自动派单', - PRIMARY KEY (`KEY_ID_TAG`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='测点作业组关联表'; - -drop table if exists psc3000_plugin; -CREATE TABLE `psc3000_plugin` ( - `DEV_GROUP_TAG` varchar(64) NOT NULL COMMENT '设备组名', - `DEV_GROUP_DESC` varchar(128) DEFAULT NULL COMMENT '设备组描述', - `PLUGIN_NAME` varchar(64) NOT NULL COMMENT '套件名', - `FES_TEMP_NAME` varchar(64) NOT NULL COMMENT '对应套件中的前置模板名', - `FES_DEV_INST_ID` decimal(10,0) NOT NULL COMMENT '对应前置模板的对应实例前置设备的ID', - PRIMARY KEY (`DEV_GROUP_TAG`,`PLUGIN_NAME`,`FES_TEMP_NAME`,`FES_DEV_INST_ID`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='计算导入PSC3000数据参与的表'; - -drop table if exists scl_dataset; -CREATE TABLE `scl_dataset` ( - `id` decimal(10,0) NOT NULL COMMENT '主键', - `iedname` varchar(128) DEFAULT NULL COMMENT '实例装置的iedname', - `LDInst` varchar(128) DEFAULT NULL COMMENT '数据集的LD名称', - `LNName` varchar(128) DEFAULT NULL COMMENT '数据集的LN名称', - `Name` varchar(128) DEFAULT NULL COMMENT '数据集的名称', - `Describtion` varchar(128) DEFAULT NULL COMMENT '数据集的描述', - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='实例装置的数据集信息'; - -drop trigger if exists TIA_SCL_DATASET; -DELIMITER ;; -create trigger TIA_SCL_DATASET AFTER INSERT on scl_dataset for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'scl_dataset', 'id', '', NEW.id, getTableSubSystem('scl_dataset')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_SCL_DATASET; -DELIMITER ;; -create trigger TUA_SCL_DATASET AFTER UPDATE on scl_dataset for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'scl_dataset', 'id', OLD.id, NEW.id, getTableSubSystem('scl_dataset')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_SCL_DATASET; -DELIMITER ;; -create trigger TDA_SCL_DATASET AFTER DELETE on scl_dataset for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'scl_dataset', 'id', OLD.id, '', getTableSubSystem('scl_dataset')); -END IF; -END;; -DELIMITER ; - -drop table if exists scl_fcda; -CREATE TABLE `scl_fcda` ( - `id` decimal(10,0) NOT NULL COMMENT '主键', - `ldInst` varchar(128) DEFAULT NULL COMMENT 'fcda的LD', - `prefix` varchar(128) DEFAULT NULL COMMENT 'fcda的prefix', - `lninst` varchar(128) DEFAULT NULL COMMENT 'fcda的lninst', - `lnclass` varchar(128) DEFAULT NULL COMMENT 'fcda的lnclass', - `doname` varchar(128) DEFAULT NULL COMMENT 'fcda的doname', - `daName` varchar(128) DEFAULT NULL COMMENT 'fcda的daname', - `FC` varchar(128) DEFAULT NULL COMMENT 'fcda的fc', - `Ix` varchar(128) DEFAULT NULL COMMENT 'fcda的lx', - `DatasetID` decimal(10,0) DEFAULT NULL COMMENT 'fcda关联数据集ID', - `TypeID` decimal(10,0) DEFAULT NULL COMMENT 'fcda的typeid', - `IedName` varchar(128) DEFAULT NULL COMMENT '实例装置的iedname', - `basictype` decimal(10,0) DEFAULT NULL COMMENT 'fcda的基本类型', - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='实例装置的FCDA测点'; - -drop trigger if exists TIA_SCL_FCDA; -DELIMITER ;; -create trigger TIA_SCL_FCDA AFTER INSERT on scl_fcda for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'scl_fcda', 'id', '', NEW.id, getTableSubSystem('scl_fcda')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_SCL_FCDA; -DELIMITER ;; -create trigger TUA_SCL_FCDA AFTER UPDATE on scl_fcda for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'scl_fcda', 'id', OLD.id, NEW.id, getTableSubSystem('scl_fcda')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_SCL_FCDA; -DELIMITER ;; -create trigger TDA_SCL_FCDA AFTER DELETE on scl_fcda for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'scl_fcda', 'id', OLD.id, '', getTableSubSystem('scl_fcda')); -END IF; -END;; -DELIMITER ; - -drop table if exists scl_lcb; -CREATE TABLE `scl_lcb` ( - `id` decimal(10,0) NOT NULL COMMENT '主键', - `name` varchar(128) DEFAULT NULL COMMENT '控制块名称', - `lcbDesc` varchar(128) DEFAULT NULL COMMENT '控制块的描述', - `dataset` varchar(128) DEFAULT NULL COMMENT '控制块的数据集名称', - `intgPd` decimal(10,0) DEFAULT NULL COMMENT '控制块的intgPd', - `TrgOps` decimal(10,0) DEFAULT NULL COMMENT '控制块的trgOps', - `iedname` varchar(128) DEFAULT NULL COMMENT '实例装置的iedname', - `LDInst` varchar(128) DEFAULT NULL COMMENT '报告控制块的ldinst', - `LNName` varchar(128) DEFAULT NULL COMMENT '报告控制块的lnName', - `logEna` decimal(10,0) DEFAULT NULL COMMENT '报告控制块是否使能', - `logName` varchar(128) DEFAULT NULL COMMENT '报告控制块的logname', - `ReasonCode` decimal(10,0) DEFAULT NULL COMMENT '报告控制块的reasoncode', - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='实例装置的人日志控制块信息'; - -drop trigger if exists TIA_SCL_LCB; -DELIMITER ;; -create trigger TIA_SCL_LCB AFTER INSERT on scl_lcb for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'scl_lcb', 'id', '', NEW.id, getTableSubSystem('scl_lcb')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_SCL_LCB; -DELIMITER ;; -create trigger TUA_SCL_LCB AFTER UPDATE on scl_lcb for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'scl_lcb', 'id', OLD.id, NEW.id, getTableSubSystem('scl_lcb')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_SCL_LCB; -DELIMITER ;; -create trigger TDA_SCL_LCB AFTER DELETE on scl_lcb for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'scl_lcb', 'id', OLD.id, '', getTableSubSystem('scl_lcb')); -END IF; -END;; -DELIMITER ; - -drop table if exists scl_rcb; -CREATE TABLE `scl_rcb` ( - `id` decimal(10,0) NOT NULL COMMENT '主键', - `rcbdesc` varchar(128) DEFAULT NULL COMMENT '控制块的描述', - `name` varchar(128) DEFAULT NULL COMMENT '控制块的名称', - `dataSet` varchar(128) DEFAULT NULL COMMENT '控制块的数据集名称', - `intgPd` decimal(10,0) DEFAULT NULL COMMENT '控制块的IntgPd', - `rptID` varchar(128) DEFAULT NULL COMMENT '控制块的rptid', - `confRev` decimal(10,0) DEFAULT NULL COMMENT '控制块的confRev', - `buffered` decimal(10,0) DEFAULT NULL COMMENT '控制块的buffered', - `indexed` decimal(10,0) DEFAULT NULL COMMENT '控制块的indexed', - `bufTime` decimal(10,0) DEFAULT NULL COMMENT '控制块的buftime', - `TrgOps` decimal(10,0) DEFAULT NULL COMMENT '控制块的TrgOps', - `OptFlds` decimal(10,0) DEFAULT NULL COMMENT '控制块的OptFlds', - `maxClient` decimal(10,0) DEFAULT NULL COMMENT '控制块的maxclient', - `iedname` varchar(128) DEFAULT NULL COMMENT '实例装置的Iedname', - `LDInst` varchar(128) DEFAULT NULL COMMENT '控制块的ldinst', - `LNName` varchar(128) DEFAULT NULL COMMENT '控制块的LnName', - `giPeriod` decimal(10,0) DEFAULT NULL COMMENT '控制块的giPeriod', - `enablePeriod` decimal(10,0) DEFAULT NULL COMMENT '控制块的enablePeriod', - `rcbinst` decimal(10,0) DEFAULT NULL COMMENT '控制块的rcbinst', - `rcbena` decimal(10,0) DEFAULT NULL COMMENT '控制块是否使能', - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='实例装置的报告控制块信息'; - -drop trigger if exists TIA_SCL_RCB; -DELIMITER ;; -create trigger TIA_SCL_RCB AFTER INSERT on scl_rcb for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'scl_rcb', 'id', '', NEW.id, getTableSubSystem('scl_rcb')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_SCL_RCB; -DELIMITER ;; -create trigger TUA_SCL_RCB AFTER UPDATE on scl_rcb for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'scl_rcb', 'id', OLD.id, NEW.id, getTableSubSystem('scl_rcb')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_SCL_RCB; -DELIMITER ;; -create trigger TDA_SCL_RCB AFTER DELETE on scl_rcb for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'scl_rcb', 'id', OLD.id, '', getTableSubSystem('scl_rcb')); -END IF; -END;; -DELIMITER ; - -drop table if exists scl_runtime; -CREATE TABLE `scl_runtime` ( - `id` decimal(10,0) NOT NULL COMMENT '主键', - `typeid` decimal(10,0) DEFAULT NULL COMMENT 'typeid的id', - `typeindex` decimal(10,0) DEFAULT NULL COMMENT '类型索引号', - `eltag` decimal(10,0) DEFAULT NULL COMMENT '类型标签', - `pellen` decimal(10,0) DEFAULT NULL COMMENT '类型长度', - `strnumrtblks` decimal(10,0) DEFAULT NULL COMMENT 'typeid的属性', - `arrnumelmnts` decimal(10,0) DEFAULT NULL COMMENT 'typeid的属性', - `arrnumrtblks` decimal(10,0) DEFAULT NULL COMMENT 'typeid的属性', - `compnameptr` varchar(128) DEFAULT NULL COMMENT 'typeid的属性', - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='实例测点的RT信息'; - -drop trigger if exists TIA_SCL_RUNTIME; -DELIMITER ;; -create trigger TIA_SCL_RUNTIME AFTER INSERT on scl_runtime for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'scl_runtime', 'id', '', NEW.id, getTableSubSystem('scl_runtime')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_SCL_RUNTIME; -DELIMITER ;; -create trigger TUA_SCL_RUNTIME AFTER UPDATE on scl_runtime for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'scl_runtime', 'id', OLD.id, NEW.id, getTableSubSystem('scl_runtime')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_SCL_RUNTIME; -DELIMITER ;; -create trigger TDA_SCL_RUNTIME AFTER DELETE on scl_runtime for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'scl_runtime', 'id', OLD.id, '', getTableSubSystem('scl_runtime')); -END IF; -END;; -DELIMITER ; - -drop table if exists scl_sgcb; -CREATE TABLE `scl_sgcb` ( - `id` decimal(10,0) NOT NULL COMMENT '主键', - `iedname` varchar(128) DEFAULT NULL COMMENT '实例装置的iedname', - `LDInst` varchar(128) DEFAULT NULL COMMENT '控制块的ldinst', - `LNName` varchar(128) DEFAULT NULL COMMENT '控制块的lnName', - `NumOfSG` decimal(10,0) DEFAULT NULL COMMENT '控制块的定值组个数', - `ActSG` varchar(128) DEFAULT NULL COMMENT '控制块的ActSG', - `ResvTms` decimal(10,0) DEFAULT NULL COMMENT '控制块的ResvTms', - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='实例装置的定值控制块信息'; - -drop trigger if exists TIA_SCL_SGCB; -DELIMITER ;; -create trigger TIA_SCL_SGCB AFTER INSERT on scl_sgcb for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'scl_sgcb', 'id', '', NEW.id, getTableSubSystem('scl_sgcb')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_SCL_SGCB; -DELIMITER ;; -create trigger TUA_SCL_SGCB AFTER UPDATE on scl_sgcb for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'scl_sgcb', 'id', OLD.id, NEW.id, getTableSubSystem('scl_sgcb')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_SCL_SGCB; -DELIMITER ;; -create trigger TDA_SCL_SGCB AFTER DELETE on scl_sgcb for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'scl_sgcb', 'id', OLD.id, '', getTableSubSystem('scl_sgcb')); -END IF; -END;; -DELIMITER ; - -drop table if exists sequence_action; -CREATE TABLE `sequence_action` ( - `NAME` varchar(128) NOT NULL COMMENT '动作名称', - `DESCRIPTION` varchar(128) DEFAULT NULL COMMENT '动作描述', - `KEY_ID_TAG` varchar(128) DEFAULT NULL COMMENT '点名(表名+’.’+TAG_NAME)', - `TIMEFLAG` decimal(20,0) DEFAULT NULL COMMENT '修改时标', - `CTRL_TIMEOUT` decimal(10,0) DEFAULT NULL COMMENT '控制超时时间', - `TARGET_VALUE` decimal(10,0) DEFAULT NULL COMMENT '目标值', - `LOCATION_ID` decimal(10,0) DEFAULT NULL COMMENT '车站ID', - `SUB_SYSTEM` decimal(10,0) DEFAULT NULL COMMENT '所属专业', - PRIMARY KEY (`NAME`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='顺控动作表'; - -drop trigger if exists TI_SEQUENCE_ACTION; -DELIMITER ;; -create trigger TI_SEQUENCE_ACTION BEFORE INSERT on sequence_action for each ROW -body:BEGIN - SET NEW.TIMEFLAG = unix_timestamp(now()); -END;; -DELIMITER ; - -drop trigger if exists TIA_SEQUENCE_ACTION; -DELIMITER ;; -create trigger TIA_SEQUENCE_ACTION AFTER INSERT on sequence_action for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'sequence_action', 'name', '', NEW.NAME, getTableSubSystem('sequence_action')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TU_SEQUENCE_ACTION; -DELIMITER ;; -create trigger TU_SEQUENCE_ACTION BEFORE UPDATE on sequence_action for each ROW -body:BEGIN - #修改对应功能 - SET NEW.TIMEFLAG = unix_timestamp(now()); - UPDATE sequence_function SET - TIMEFLAG = NEW.TIMEFLAG, - ACTION_NAME = NEW.NAME - WHERE ACTION_NAME = OLD.NAME; -END;; -DELIMITER ; - -drop trigger if exists TUA_SEQUENCE_ACTION; -DELIMITER ;; -create trigger TUA_SEQUENCE_ACTION AFTER UPDATE on sequence_action for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'sequence_action', 'name', OLD.NAME, NEW.NAME, getTableSubSystem('sequence_action')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TD_SEQUENCE_ACTION; -DELIMITER ;; -create trigger TD_SEQUENCE_ACTION AFTER DELETE on sequence_action for each ROW -body:BEGIN - #删除关联了此动作的功能 - DELETE FROM sequence_function WHERE ACTION_NAME = OLD.NAME; - -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'sequence_action', 'name', OLD.NAME, '', getTableSubSystem('sequence_action')); -END IF; -END;; -DELIMITER ; - -drop table if exists sequence_define; -CREATE TABLE `sequence_define` ( - `SEQ_NAME` varchar(128) NOT NULL COMMENT '所属顺控', - `FUNC_NAME` varchar(128) NOT NULL COMMENT '功能名', - `FUNC_NO` decimal(10,0) NOT NULL COMMENT '功能编号', - `RELATION` decimal(10,0) DEFAULT NULL COMMENT '串/并行', - `TIMEFLAG` decimal(20,0) DEFAULT NULL COMMENT '时标', - PRIMARY KEY (`SEQ_NAME`,`FUNC_NAME`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='顺控定义表'; - -drop trigger if exists TI_SEQUENCE_DEFINE; -DELIMITER ;; -create trigger TI_SEQUENCE_DEFINE BEFORE INSERT on sequence_define for each ROW -body:BEGIN - #仅仅修改时标 - #避免触发器循环 - SET @disableSequenceSettingTrigger = 1; - - IF COALESCE(@disableSequenceDefineTrigger,0) = 0 THEN - BEGIN - SET NEW.TIMEFLAG = unix_timestamp(now()); - UPDATE sequence_setting SET - TIMEFLAG = NEW.TIMEFLAG - WHERE NAME = NEW.SEQ_NAME; - END; - END IF; - - SET @disableSequenceSettingTrigger = 0; - - -END;; -DELIMITER ; - -drop trigger if exists TIA_SEQUENCE_DEFINE; -DELIMITER ;; -create trigger TIA_SEQUENCE_DEFINE AFTER INSERT on sequence_define for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'sequence_define', 'seq_name,func_name', '', concat(NEW.SEQ_NAME,',',NEW.FUNC_NAME), getTableSubSystem('sequence_define')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TU_SEQUENCE_DEFINE; -DELIMITER ;; -create trigger TU_SEQUENCE_DEFINE BEFORE UPDATE on sequence_define for each ROW -body:BEGIN - - #修改对应联动功能关系表 - #避免触发器循环 - SET @disableSequenceSettingTrigger = 1; - - IF COALESCE(@disableSequenceDefineTrigger,0) = 0 THEN - BEGIN - SET NEW.TIMEFLAG = unix_timestamp(now()); - UPDATE sequence_setting SET - TIMEFLAG = NEW.TIMEFLAG - WHERE NAME = OLD.SEQ_NAME; - END; - END IF; - - SET @disableSequenceSettingTrigger = 0; -END;; -DELIMITER ; - -drop trigger if exists TUA_SEQUENCE_DEFINE; -DELIMITER ;; -create trigger TUA_SEQUENCE_DEFINE AFTER UPDATE on sequence_define for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'sequence_define', 'seq_name,func_name', concat(OLD.SEQ_NAME,',',OLD.FUNC_NAME), concat(NEW.SEQ_NAME,',',NEW.FUNC_NAME), getTableSubSystem('sequence_define')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TD_SEQUENCE_DEFINE; -DELIMITER ;; -create trigger TD_SEQUENCE_DEFINE AFTER DELETE on sequence_define for each ROW -body:BEGIN - #仅仅修改时标 - #避免触发器循环 - SET @disableSequenceSettingTrigger = 1; - - IF COALESCE(@disableSequenceDefineTrigger,0) = 0 THEN - BEGIN - UPDATE sequence_setting SET - TIMEFLAG = unix_timestamp(now()) - WHERE NAME = OLD.SEQ_NAME; - END; - END IF; - - SET @disableSequenceSettingTrigger = 0; - -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'sequence_define', 'seq_name,func_name', concat(OLD.SEQ_NAME,',',OLD.FUNC_NAME), '', getTableSubSystem('sequence_define')); -END IF; -END;; -DELIMITER ; - -drop table if exists sequence_function; -CREATE TABLE `sequence_function` ( - `NAME` varchar(128) NOT NULL COMMENT '功能名称', - `ACTION_NAME` varchar(128) NOT NULL COMMENT '动作名称', - `DESCRIPTION` varchar(128) DEFAULT NULL COMMENT '功能描述', - `ACTION_NO` decimal(10,0) DEFAULT NULL COMMENT '动作编号', - `ENABLE` decimal(10,0) DEFAULT NULL COMMENT '是否可用', - `DELAYTIME` decimal(10,0) DEFAULT NULL COMMENT '延时时间', - `TIMEFLAG` decimal(20,0) DEFAULT NULL COMMENT '时标', - `FAILSTRAGE` decimal(10,0) DEFAULT NULL COMMENT '失败处理', - `RETRYTIMES` decimal(10,0) DEFAULT NULL COMMENT '重试次数', - PRIMARY KEY (`NAME`,`ACTION_NAME`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='顺控功能'; - -drop trigger if exists TI_SEQUENCE_FUNCTION; -DELIMITER ;; -create trigger TI_SEQUENCE_FUNCTION BEFORE INSERT on sequence_function for each ROW -body:BEGIN - #仅仅修改时标 - SET NEW.TIMEFLAG = unix_timestamp(now()); - -END;; -DELIMITER ; - -drop trigger if exists TIA_SEQUENCE_FUNCTION; -DELIMITER ;; -create trigger TIA_SEQUENCE_FUNCTION AFTER INSERT on sequence_function for each ROW -BEGIN - UPDATE sequence_define SET - TIMEFLAG = NEW.TIMEFLAG - WHERE FUNC_NAME = NEW.NAME; - -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'sequence_function', 'name,action_name', '', concat(NEW.NAME,',',NEW.ACTION_NAME), getTableSubSystem('sequence_function')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TU_SEQUENCE_FUNCTION; -DELIMITER ;; -create trigger TU_SEQUENCE_FUNCTION BEFORE UPDATE on sequence_function for each ROW -body:BEGIN - #修改对应联动功能关系表 - SET NEW.TIMEFLAG = unix_timestamp(now()); - UPDATE sequence_define SET - TIMEFLAG = NEW.TIMEFLAG, - FUNC_NAME = NEW.NAME - WHERE FUNC_NAME = OLD.NAME; - -END;; -DELIMITER ; - -drop trigger if exists TUA_SEQUENCE_FUNCTION; -DELIMITER ;; -create trigger TUA_SEQUENCE_FUNCTION AFTER UPDATE on sequence_function for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'sequence_function', 'name,action_name', concat(OLD.NAME,',',OLD.ACTION_NAME), concat(NEW.NAME,',',NEW.ACTION_NAME), getTableSubSystem('sequence_function')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TD_SEQUENCE_FUNCTION; -DELIMITER ;; -create trigger TD_SEQUENCE_FUNCTION AFTER DELETE on sequence_function for each ROW -body:BEGIN - #删除关联了此功能的联动定义 - #检查功能是否被删除 - IF NOT EXISTS (SELECT * FROM sequence_function WHERE NAME = OLD.NAME) THEN - BEGIN - DELETE FROM sequence_define WHERE FUNC_NAME = OLD.NAME; - END; - ELSE - BEGIN - #修改时标 - UPDATE sequence_define SET - TIMEFLAG = unix_timestamp(now()) - WHERE FUNC_NAME = OLD.NAME; - END; - END IF; - -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'sequence_function', 'name,action_name', concat(OLD.NAME,',',OLD.ACTION_NAME), '', getTableSubSystem('sequence_function')); -END IF; -END;; -DELIMITER ; - -drop table if exists sequence_setting; -CREATE TABLE `sequence_setting` ( - `NAME` varchar(128) NOT NULL COMMENT '联动名称', - `DESCRIPTION` varchar(128) DEFAULT NULL COMMENT '描述', - `SEQ_TYPE` decimal(10,0) DEFAULT NULL COMMENT '顺控类型', - `LOCATION_ID` decimal(10,0) DEFAULT NULL COMMENT '车站', - `TIMEFLAG` decimal(20,0) DEFAULT NULL COMMENT '时标', - PRIMARY KEY (`NAME`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='顺控配置'; - -drop trigger if exists TI_SEQUENCE_SETTING; -DELIMITER ;; -create trigger TI_SEQUENCE_SETTING BEFORE INSERT on sequence_setting for each ROW -body:BEGIN - #仅仅修改时标 - #避免触发器循环 - SET @disableSequenceDefineTrigger = 1; - - IF COALESCE(@disableSequenceSettingTrigger,0) = 0 THEN - BEGIN - SET NEW.TIMEFLAG = unix_timestamp(now()); - END; - END IF; - - SET @disableSequenceDefineTrigger = 0; - - -END;; -DELIMITER ; - -drop trigger if exists TIA_SEQUENCE_SETTING; -DELIMITER ;; -create trigger TIA_SEQUENCE_SETTING AFTER INSERT on sequence_setting for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'sequence_setting', 'name', '', NEW.NAME, getTableSubSystem('sequence_setting')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TU_SEQUENCE_SETTING; -DELIMITER ;; -create trigger TU_SEQUENCE_SETTING BEFORE UPDATE on sequence_setting for each ROW -body:BEGIN - #修改对应联动功能关系表 - #避免触发器循环 - SET @disableSequenceDefineTrigger = 1; - - IF COALESCE(@disableSequenceSettingTrigger,0) = 0 THEN - BEGIN - SET NEW.TIMEFLAG = unix_timestamp(now()); - IF NEW.NAME<>OLD.NAME THEN - UPDATE sequence_define SET - SEQ_NAME = NEW.NAME - WHERE SEQ_NAME = OLD.NAME; - END IF; - END; - END IF; - - SET @disableSequenceDefineTrigger = 0; - - -END;; -DELIMITER ; - -drop trigger if exists TUA_SEQUENCE_SETTING; -DELIMITER ;; -create trigger TUA_SEQUENCE_SETTING AFTER UPDATE on sequence_setting for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'sequence_setting', 'name', OLD.NAME, NEW.NAME, getTableSubSystem('sequence_setting')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TD_SEQUENCE_SETTING; -DELIMITER ;; -create trigger TD_SEQUENCE_SETTING AFTER DELETE on sequence_setting for each ROW -body:BEGIN - #删除关联了此联动的功能关联 - #避免触发器循环 - SET @disableSequenceDefineTrigger = 1; - - IF COALESCE(@disableSequenceSettingTrigger,0) = 0 THEN - BEGIN - DELETE FROM sequence_define WHERE SEQ_NAME = OLD.NAME; - END; - END IF; - - SET @disableSequenceDefineTrigger = 0; - - -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'sequence_setting', 'name', OLD.NAME, '', getTableSubSystem('sequence_setting')); -END IF; -END;; -DELIMITER ; - -drop table if exists stat_inst_def; -CREATE TABLE `stat_inst_def` ( - `INST_TAG` varchar(64) NOT NULL COMMENT '统计实例标签', - `DESCRIPTION` varchar(128) NOT NULL COMMENT '统计实例描述', - `TEMPLATE_TAG` varchar(64) NOT NULL COMMENT '统计模板归属', - `TRIGGER_METHOD` decimal(10,0) NOT NULL COMMENT '触发方式有两种,一种为周期触发,一种为定时触发。和不触发。 对应值为 0 不触发 1 周期触发 2 定时触发 选择周期触发 需要填充PERIOD列 该列不得为空 选择定时触发,需要选择定时模式 填充TIMER_MODE列,然后根据选择定时模式,填充对应MONTH DAY WEEKDAY HOUR MINUTE SECOND列 周期触发的初始触发时间为统计服务程序打开的时刻,可自定义触发周期。循环触发 下面讲解定时触发的设计。 【需要设计对应触发器】 模式可分为 每年/每月/每日/每周/每小时 每年模式时,需要定义 月日时分秒 具体日期和时间。 定义在每一年的具体某个日期时刻循环触发。 需要填充 MONTH DAY HOUR MINUTE SECOND列 这些列不得为空 每月模式时,需要定义 日时分秒 具体日期和时间。定义在每月的具体某个日期时刻循环触发。需要填充 DAY HOUR MINUTE SECOND列 这些列不得为空 每月模式时,DAY可为负数,意为从每月的倒数第几天,以防大小月。 每日模式时,需要定义 时分秒 具体时间。定义在每天具体某个时间循环触发。需要填充 HOUR MINUTE SECOND列 这些列不得为空 每周模式时,需要定义 时分秒 具体时间。定义在每周的星期几某个时间循环触发 需要填充 HOUR MINUTE SECOND列 这些列不得为空 每小时模式 需要定义分秒 具体时间 定义在每小时的具体时间循环触发 需要填充 MINUTE SECOND列 这些列不得为空', - `PERIOD` decimal(3,0) DEFAULT NULL COMMENT '计算周期,计算触发周期,开始时间从统计服务开始运行起计算 当值为 0 不计算 1 每半小时 2 每小时 3 每天 4 每周 5 每月 6 每年', - `TIMER_MODE` decimal(10,0) DEFAULT NULL COMMENT '定时触发的模式 对应的值为 每年模式 1 每月模式 2 每日模式 3 每周模式 4 每小时模式 5 下面讲解定时触发的设计。 【需要设计对应触发器】 模式可分为 每年/每月/每日/每周/每小时 每年模式时,需要定义 月日时分秒 具体日期和时间。 定义在每一年的具体某个日期时刻循环触发。 需要填充 MONTH DAY HOUR MINUTE SECOND列 这些列不得为空 每月模式时,需要定义 日时分秒 具体日期和时间。定义在每月的具体某个日期时刻循环触发。需要填充 DAY HOUR MINUTE SECOND列 这些列不得为空 每月模式时,DAY可为负数,意为从每月的倒数第几天,以防大小月。 每日模式时,需要定义 时分秒 具体时间。定义在每天具体某个时间循环触发。需要填充 HOUR MINUTE SECOND列 这些列不得为空 每周模式时,需要定义 时分秒 具体时间。定义在每周的星期几某个时间循环触发 需要填充 HOUR MINUTE SECOND列 这些列不得为空 每小时模式 需要定义分秒 具体时间 定义在每小时的具体时间循环触发 需要填充 MINUTE SECOND列 这些列不得为空', - `MONTH` decimal(10,0) DEFAULT NULL COMMENT '正常填充 1-12', - `DAY` decimal(10,0) DEFAULT NULL COMMENT '正常填充 1-31 仅在每月模式的时候可以启用下面的值,防止大小月无法确定月末。 -1 月末 -2 这个月的倒数第二天 -3 这个月的倒数第三天 -N 这个月的倒数第X天', - `WEEKDAY` decimal(10,0) DEFAULT NULL COMMENT '1-7', - `HOUR` decimal(10,0) DEFAULT NULL COMMENT '0-23', - `MINUTE` decimal(10,0) DEFAULT NULL COMMENT '0-59', - `SECOND` decimal(10,0) DEFAULT NULL COMMENT '0-59', - `LOCATION_ID` decimal(10,0) NOT NULL COMMENT '车站ID', - `SUB_SYSTEM` decimal(10,0) NOT NULL COMMENT '专业ID', - `IS_MOD` decimal(10,0) NOT NULL COMMENT '是否修改', - PRIMARY KEY (`INST_TAG`), - KEY `IN_STAT_INST_DEF` (`DESCRIPTION`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='统计实例定义表'; - -drop trigger if exists TIA_STAT_INST_DEF; -DELIMITER ;; -create trigger TIA_STAT_INST_DEF AFTER INSERT on stat_inst_def for each ROW -BEGIN - - #插入测点分组表 - #插入测点表 - #插入时间测点变 - #插入返回分组表 - #插入返回参数表 - INSERT INTO stat_inst_para_grp - (PARA_GRP_TAG, DESCRIPTION, INST_TAG, SORT,LOCATION_ID, SUB_SYSTEM) - SELECT - concat(NEW.INST_TAG,'.',getAfterLastDot(PARA_TAG)) , DESCRIPTION, NEW.INST_TAG, SORT,NEW.LOCATION_ID,NEW.SUB_SYSTEM - FROM stat_template_para WHERE TEMPLATE_TAG = NEW.TEMPLATE_TAG AND COALESCE(ISGRP,0) = 1; - INSERT INTO stat_inst_para_point - (PARA_TAG, DESCRIPTION, `RANK`, POINT_TAG, SORT, PARA_GRP_TAG, INST_TAG, LOCATION_ID, SUB_SYSTEM) - SELECT - concat(NEW.INST_TAG,'.',getAfterLastDot(PARA_TAG)),DESCRIPTION, 1, '', SORT, '', NEW.INST_TAG,NEW.LOCATION_ID,NEW.SUB_SYSTEM - FROM stat_template_para WHERE TEMPLATE_TAG = NEW.TEMPLATE_TAG AND COALESCE(ISGRP,0) = 0 AND COALESCE(`TYPE`,0) = 1; - - INSERT INTO stat_inst_para_time - (PARA_TAG, DESCRIPTION, `RANK`, `TIMESTAMP`, SORT, PARA_GRP_TAG, INST_TAG, TIME_MODE, YEAR_R, MONTH_R, DAY_R, WEEKDAY_R, HOUR_R, MINUTE_R, SECOND_R,LOCATION_ID, SUB_SYSTEM) - SELECT - concat(NEW.INST_TAG,'.',getAfterLastDot(PARA_TAG)),DESCRIPTION, 1, unix_timestamp(now()),SORT, '', NEW.INST_TAG, 0, 0, 0, 0, 0, 0, 0, 0, NEW.LOCATION_ID,NEW.SUB_SYSTEM - FROM stat_template_para WHERE TEMPLATE_TAG = NEW.TEMPLATE_TAG AND COALESCE(ISGRP,0) = 0 AND COALESCE(`TYPE`,0) = 2; - - INSERT INTO stat_inst_ret_grp - (RET_GRP_TAG, DESCRIPTION, INST_TAG, SORT,LOCATION_ID, SUB_SYSTEM) - SELECT - concat(NEW.INST_TAG,'.',getAfterLastDot(RET_TAG)),DESCRIPTION, NEW.INST_TAG,SORT,NEW.LOCATION_ID,NEW.SUB_SYSTEM - FROM stat_template_ret WHERE TEMPLATE_TAG = NEW.TEMPLATE_TAG AND COALESCE(ISGRP,0) = 1; - - INSERT INTO stat_inst_ret_para - (RET_TAG, DESCRIPTION, `RANK`, POINT_TAG, SORT, PARA_GRP_TAG, VALUE, IS_BIND, INST_TAG, LOCATION_ID, SUB_SYSTEM) - SELECT - concat(NEW.INST_TAG,'.',getAfterLastDot(RET_TAG)),DESCRIPTION, 1, '', SORT, '', 0, 0, NEW.INST_TAG,NEW.LOCATION_ID,NEW.SUB_SYSTEM - FROM stat_template_ret WHERE TEMPLATE_TAG = NEW.TEMPLATE_TAG AND COALESCE(ISGRP,0) = 0; - - IF getTriggerFlag() = TRUE THEN - INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) - VALUES (getMaxTriggerId(),getOpType('insert'),'stat_inst_def', 'inst_tag', '', NEW.INST_TAG, getTableSubSystem('stat_inst_def')); - END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_STAT_INST_DEF; -DELIMITER ;; -create trigger TUA_STAT_INST_DEF AFTER UPDATE on stat_inst_def for each ROW -BEGIN - IF NEW.INST_TAG <> OLD.INST_TAG THEN - BEGIN - UPDATE stat_inst_para_grp - SET INST_TAG = NEW.INST_TAG, - PARA_GRP_TAG = concat(NEW.INST_TAG,'.',getAfterLastDot(PARA_GRP_TAG)) - WHERE INST_TAG = OLD.INST_TAG; - - UPDATE stat_inst_para_point - SET INST_TAG = NEW.INST_TAG, - PARA_TAG = concat(NEW.INST_TAG,'.',getAfterLastDot(PARA_TAG)) - WHERE INST_TAG = OLD.INST_TAG; - - UPDATE stat_inst_para_time - SET INST_TAG = NEW.INST_TAG, - PARA_TAG = concat(NEW.INST_TAG,'.',getAfterLastDot(PARA_TAG)) - WHERE INST_TAG = OLD.INST_TAG; - - UPDATE stat_inst_ret_grp - SET INST_TAG = NEW.INST_TAG, - RET_GRP_TAG = concat(NEW.INST_TAG,'.',getAfterLastDot(RET_GRP_TAG)) - WHERE INST_TAG = OLD.INST_TAG; - - UPDATE stat_inst_ret_para - SET INST_TAG = NEW.INST_TAG, - RET_TAG = concat(NEW.INST_TAG,'.',getAfterLastDot(RET_TAG)) - WHERE INST_TAG = OLD.INST_TAG; - - END; - END IF; - - IF getTriggerFlag() = TRUE THEN - INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) - VALUES (getMaxTriggerId(),getOpType('update'),'stat_inst_def', 'inst_tag', OLD.INST_TAG, NEW.INST_TAG, getTableSubSystem('stat_inst_def')); - END IF; - -END;; -DELIMITER ; - -drop trigger if exists TDA_STAT_INST_DEF; -DELIMITER ;; -create trigger TDA_STAT_INST_DEF AFTER DELETE on stat_inst_def for each ROW -BEGIN - DELETE FROM stat_inst_para_grp WHERE INST_TAG = OLD.INST_TAG; - DELETE FROM stat_inst_para_point WHERE INST_TAG = OLD.INST_TAG; - DELETE FROM stat_inst_para_time WHERE INST_TAG = OLD.INST_TAG; - DELETE FROM stat_inst_ret_grp WHERE INST_TAG = OLD.INST_TAG; - DELETE FROM stat_inst_ret_para WHERE INST_TAG = OLD.INST_TAG; - - IF getTriggerFlag() = TRUE THEN - INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) - VALUES (getMaxTriggerId(),getOpType('delete'),'stat_inst_def', 'inst_tag', OLD.INST_TAG, '', getTableSubSystem('stat_inst_def')); - END IF; -END;; -DELIMITER ; - -drop table if exists stat_inst_para_grp; -CREATE TABLE `stat_inst_para_grp` ( - `PARA_GRP_TAG` varchar(64) NOT NULL COMMENT '输入参数组标签', - `DESCRIPTION` varchar(128) NOT NULL COMMENT '描述', - `INST_TAG` varchar(64) NOT NULL COMMENT '归属实例', - `SORT` decimal(3,0) NOT NULL COMMENT '参数排序,最大值为8', - `LOCATION_ID` decimal(10,0) NOT NULL, - `SUB_SYSTEM` decimal(10,0) NOT NULL, - PRIMARY KEY (`PARA_GRP_TAG`), - KEY `IN_STAT_INST_PARA_GRP` (`DESCRIPTION`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='统计实例输入参数组定义表'; - -drop trigger if exists TIA_STAT_INST_PARA_GRP; -DELIMITER ;; -create trigger TIA_STAT_INST_PARA_GRP AFTER INSERT on stat_inst_para_grp for each ROW -BEGIN - - IF getTriggerFlag() = TRUE THEN - INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME, KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE, SUBSYSTEM_FLAG) - VALUES (getMaxTriggerId(),getOpType('insert'),'stat_inst_para_grp', 'para_grp_tag', '', NEW.PARA_GRP_TAG, getTableSubSystem('stat_inst_para_grp')); - END IF; - -END;; -DELIMITER ; - -drop trigger if exists TUA_STAT_INST_PARA_GRP; -DELIMITER ;; -create trigger TUA_STAT_INST_PARA_GRP AFTER UPDATE on stat_inst_para_grp for each ROW -body:BEGIN - IF NEW.PARA_GRP_TAG = OLD.PARA_GRP_TAG - THEN LEAVE body; - END IF; - - UPDATE stat_inst_para_point - SET PARA_GRP_TAG = NEW.PARA_GRP_TAG - WHERE PARA_GRP_TAG = OLD.PARA_GRP_TAG; - - UPDATE stat_inst_para_time - SET PARA_GRP_TAG = NEW.PARA_GRP_TAG - WHERE PARA_GRP_TAG = OLD.PARA_GRP_TAG; - - IF getTriggerFlag() = TRUE THEN - INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME, KEY_COLUMN_NAME,KEY_OLD_VALUE, KEY_NEW_VALUE,SUBSYSTEM_FLAG) - VALUES (getMaxTriggerId(),getOpType('update'),'stat_inst_para_grp', 'para_grp_tag', OLD.PARA_GRP_TAG, NEW.PARA_GRP_TAG, getTableSubSystem('stat_inst_para_grp')); - END IF; - -END;; -DELIMITER ; - -drop trigger if exists TDA_STAT_INST_PARA_GRP; -DELIMITER ;; -create trigger TDA_STAT_INST_PARA_GRP AFTER DELETE on stat_inst_para_grp for each ROW -BEGIN - DELETE FROM stat_inst_para_point WHERE PARA_GRP_TAG = OLD.PARA_GRP_TAG; - DELETE FROM stat_inst_para_time WHERE PARA_GRP_TAG = OLD.PARA_GRP_TAG; - - IF getTriggerFlag() = TRUE THEN - INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME, KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) - VALUES (getMaxTriggerId(),getOpType('delete'),'stat_inst_para_grp', 'para_grp_tag', OLD.PARA_GRP_TAG, '', getTableSubSystem('stat_inst_para_grp')); - END IF; -END;; -DELIMITER ; - -drop table if exists stat_inst_para_point; -CREATE TABLE `stat_inst_para_point` ( - `PARA_TAG` varchar(64) NOT NULL COMMENT '参数标签', - `DESCRIPTION` varchar(128) NOT NULL COMMENT '参数描述', - `RANK` decimal(3,0) NOT NULL COMMENT '参数级别 值有1和2 1为顶层参数,2有归属参数组', - `POINT_TAG` varchar(64) DEFAULT NULL COMMENT '输入参数测点标签', - `SORT` decimal(10,0) NOT NULL COMMENT '排序 当参数级别为1时,该列最大值为8 当参数级别为2时,该列无最大值限制', - `PARA_GRP_TAG` varchar(64) DEFAULT NULL COMMENT '若参数级别为1,归属参数组为空 若参数级别为2,归属参数组不得为空', - `INST_TAG` varchar(64) NOT NULL COMMENT '归属实例', - `LOCATION_ID` decimal(10,0) NOT NULL, - `SUB_SYSTEM` decimal(10,0) NOT NULL, - PRIMARY KEY (`PARA_TAG`), - KEY `IN_STAT_INST_PARA_POINT` (`DESCRIPTION`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='统计实例输入参数测点类定义表'; - -drop trigger if exists TIA_STAT_INST_PARA_POINT; -DELIMITER ;; -create trigger TIA_STAT_INST_PARA_POINT AFTER INSERT on stat_inst_para_point for each ROW -BEGIN - - - IF getTriggerFlag() = TRUE THEN - INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME, KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE, SUBSYSTEM_FLAG) - VALUES (getMaxTriggerId(),getOpType('insert'),'stat_inst_para_point', 'para_tag', '', NEW.PARA_TAG, getTableSubSystem('stat_inst_para_point')); - END IF; - -END;; -DELIMITER ; - -drop trigger if exists TUA_STAT_INST_PARA_POINT; -DELIMITER ;; -create trigger TUA_STAT_INST_PARA_POINT AFTER UPDATE on stat_inst_para_point for each ROW -BEGIN - - IF getTriggerFlag() = TRUE THEN - INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME, KEY_COLUMN_NAME,KEY_OLD_VALUE, KEY_NEW_VALUE,SUBSYSTEM_FLAG) - VALUES (getMaxTriggerId(),getOpType('update'),'stat_inst_para_point', 'para_tag', OLD.PARA_TAG, NEW.PARA_TAG, getTableSubSystem('stat_inst_para_point')); - END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_STAT_INST_PARA_POINT; -DELIMITER ;; -create trigger TDA_STAT_INST_PARA_POINT AFTER DELETE on stat_inst_para_point for each ROW -BEGIN - - - IF getTriggerFlag() = TRUE THEN - INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME, KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) - VALUES (getMaxTriggerId(),getOpType('delete'),'stat_inst_para_point', 'para_tag', OLD.PARA_TAG, '', getTableSubSystem('stat_inst_para_point')); - END IF; -END;; -DELIMITER ; - -drop table if exists stat_inst_para_time; -CREATE TABLE `stat_inst_para_time` ( - `PARA_TAG` varchar(64) NOT NULL COMMENT '参数标签', - `DESCRIPTION` varchar(128) NOT NULL COMMENT '参数描述', - `RANK` decimal(3,0) NOT NULL COMMENT '参数级别 有1和2 1为顶层参数,2是参数组下面的二级参数,归属参数组那列需要填值', - `TIMESTAMP` decimal(20,0) DEFAULT NULL COMMENT '时间值,时间戳,unix时间戳,时间精度s级别 10位整型 时区为东八区 如当前时间为 2019年5月7日11点52分30秒 东八区 精度为:1557201150', - `SORT` decimal(10,0) NOT NULL COMMENT '排序 当参数级别为1时,该列最大值为8 当参数级别为2时,该列无最大值限制', - `PARA_GRP_TAG` varchar(64) DEFAULT NULL COMMENT '若参数级别为1,归属参数组为空 若参数级别为2,归属参数组不得为空', - `INST_TAG` varchar(64) NOT NULL COMMENT '归属实例', - `TIME_MODE` decimal(3,0) DEFAULT NULL COMMENT '绝对模式 1 相对年(2),月(3),日(4),周(5),时(6),分(7)模式对应 2-7。 相对秒模式是8', - `YEAR_R` decimal(10,0) DEFAULT NULL COMMENT '只有相对模式,相对年:N年前', - `MONTH_R` decimal(10,0) DEFAULT NULL COMMENT '相对模式下:0-N 对应 N月前 绝对模式下:1-12对应 1-12月', - `DAY_R` decimal(10,0) DEFAULT NULL COMMENT '相对模式下:0-N 对应 N日前 绝对模式下:1-31 对应N日。其中32是月初,32是月末。', - `WEEKDAY_R` decimal(3,0) DEFAULT NULL COMMENT '相对周,只有相对模式 1-7对应周一到周日 意为上一个周几 选择周X,为当前时间上一个周X,比如说今天是周二,选定周一,则计算时间为昨天,若选择为周二,则为上一个周二(七天前),若选择周日,则为三天前', - `HOUR_R` decimal(10,0) DEFAULT NULL COMMENT '相对模式:N个小时之前 绝对模式:0-23时', - `MINUTE_R` decimal(10,0) DEFAULT NULL COMMENT '相对模式:N个分钟之前 绝对模式:0-59分', - `SECOND_R` decimal(20,0) DEFAULT NULL COMMENT '相对模式:N秒之前 绝对模式:0-59秒', - `LOCATION_ID` decimal(10,0) NOT NULL, - `SUB_SYSTEM` decimal(10,0) NOT NULL, - PRIMARY KEY (`PARA_TAG`), - KEY `IN_STAT_INST_PARA_TIME` (`DESCRIPTION`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='统计实例输入参数时间类定义表'; - -drop trigger if exists TIA_STAT_INST_PARA_TIME; -DELIMITER ;; -create trigger TIA_STAT_INST_PARA_TIME AFTER INSERT on stat_inst_para_time for each ROW -BEGIN - - - IF getTriggerFlag() = TRUE THEN - INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME, KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE, SUBSYSTEM_FLAG) - VALUES (getMaxTriggerId(),getOpType('insert'),'stat_inst_para_time', 'para_tag', '', NEW.PARA_TAG, getTableSubSystem('stat_inst_para_time')); - END IF; - -END;; -DELIMITER ; - -drop trigger if exists TUA_STAT_INST_PARA_TIME; -DELIMITER ;; -create trigger TUA_STAT_INST_PARA_TIME AFTER UPDATE on stat_inst_para_time for each ROW -BEGIN - - - IF getTriggerFlag() = TRUE THEN - INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME, KEY_COLUMN_NAME,KEY_OLD_VALUE, KEY_NEW_VALUE,SUBSYSTEM_FLAG) - VALUES (getMaxTriggerId(),getOpType('update'),'stat_inst_para_time', 'para_tag', OLD.PARA_TAG, NEW.PARA_TAG, getTableSubSystem('stat_inst_para_time')); - END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_STAT_INST_PARA_TIME; -DELIMITER ;; -create trigger TDA_STAT_INST_PARA_TIME AFTER DELETE on stat_inst_para_time for each ROW -BEGIN - - - IF getTriggerFlag() = TRUE THEN - INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME, KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) - VALUES (getMaxTriggerId(),getOpType('delete'),'stat_inst_para_time', 'para_tag', OLD.PARA_TAG, '', getTableSubSystem('stat_inst_para_time')); - END IF; -END;; -DELIMITER ; - -drop table if exists stat_inst_ret_grp; -CREATE TABLE `stat_inst_ret_grp` ( - `RET_GRP_TAG` varchar(64) NOT NULL COMMENT '输出参数组标签', - `DESCRIPTION` varchar(128) NOT NULL COMMENT '描述', - `INST_TAG` varchar(64) NOT NULL COMMENT '归属实例', - `SORT` decimal(10,0) NOT NULL COMMENT '无最大值限制', - `LOCATION_ID` decimal(10,0) NOT NULL, - `SUB_SYSTEM` decimal(10,0) NOT NULL, - PRIMARY KEY (`RET_GRP_TAG`), - KEY `IN_STAT_INST_RET_GRP` (`DESCRIPTION`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='统计实例输出参数组定义表'; - -drop trigger if exists TIA_STAT_INST_RET_GRP; -DELIMITER ;; -create trigger TIA_STAT_INST_RET_GRP AFTER INSERT on stat_inst_ret_grp for each ROW -BEGIN - - IF getTriggerFlag() = TRUE THEN - INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME, KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE, SUBSYSTEM_FLAG) - VALUES (getMaxTriggerId(),getOpType('insert'),'stat_inst_ret_grp', 'ret_grp_tag', '', NEW.RET_GRP_TAG, getTableSubSystem('stat_inst_ret_grp')); - END IF; - -END;; -DELIMITER ; - -drop trigger if exists TUA_STAT_INST_RET_GRP; -DELIMITER ;; -create trigger TUA_STAT_INST_RET_GRP AFTER UPDATE on stat_inst_ret_grp for each ROW -body:BEGIN - - IF NEW.RET_GRP_TAG = OLD.RET_GRP_TAG - THEN LEAVE body; - END IF; - - UPDATE stat_inst_ret_para - SET PARA_GRP_TAG = NEW.RET_GRP_TAG - WHERE PARA_GRP_TAG = OLD.RET_GRP_TAG; - - IF getTriggerFlag() = TRUE THEN - INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME, KEY_COLUMN_NAME,KEY_OLD_VALUE, KEY_NEW_VALUE,SUBSYSTEM_FLAG) - VALUES (getMaxTriggerId(),getOpType('update'),'stat_inst_ret_grp', 'ret_grp_tag', OLD.RET_GRP_TAG, NEW.RET_GRP_TAG, getTableSubSystem('stat_inst_ret_grp')); - END IF; - -END;; -DELIMITER ; - -drop trigger if exists TDA_STAT_INST_RET_GRP; -DELIMITER ;; -create trigger TDA_STAT_INST_RET_GRP AFTER DELETE on stat_inst_ret_grp for each ROW -BEGIN - DELETE FROM stat_inst_ret_para WHERE PARA_GRP_TAG = OLD.RET_GRP_TAG; - - IF getTriggerFlag() = TRUE THEN - INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME, KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) - VALUES (getMaxTriggerId(),getOpType('delete'),'stat_inst_ret_grp', 'ret_grp_tag', OLD.RET_GRP_TAG, '', getTableSubSystem('stat_inst_ret_grp')); - END IF; -END;; -DELIMITER ; - -drop table if exists stat_inst_ret_para; -CREATE TABLE `stat_inst_ret_para` ( - `RET_TAG` varchar(64) NOT NULL COMMENT '参数标签', - `DESCRIPTION` varchar(128) NOT NULL COMMENT '参数描述', - `RANK` decimal(3,0) NOT NULL COMMENT '函数体', - `POINT_TAG` varchar(64) DEFAULT NULL COMMENT '输出参数标签,若IS_BIND列为否,该列无效,该列为空', - `SORT` decimal(10,0) NOT NULL COMMENT '排序 当参数级别为1时,该列最大值为8 当参数级别为2时,该列无最大值限制', - `PARA_GRP_TAG` varchar(64) DEFAULT NULL COMMENT '若参数级别为1,归属参数组为空 若参数级别为2,归属参数组不得为空', - `VALUE` decimal(22,6) DEFAULT NULL COMMENT '参数的值为一个定点数(不是整型) 小数点左边20位,小数点右边10位', - `IS_BIND` decimal(3,0) NOT NULL COMMENT '是否绑定测点,默认不绑定测点', - `INST_TAG` varchar(64) NOT NULL COMMENT '归属实例', - `STATUS` decimal(10,0) DEFAULT NULL COMMENT '1 有效值 0 无效值', - `LOCATION_ID` decimal(10,0) NOT NULL, - `SUB_SYSTEM` decimal(10,0) NOT NULL, - PRIMARY KEY (`RET_TAG`), - KEY `IN_STAT_INST_RET_PARA` (`DESCRIPTION`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='统计实例输出测点参数定义表'; - -drop trigger if exists TIA_STAT_INST_RET_PARA; -DELIMITER ;; -create trigger TIA_STAT_INST_RET_PARA AFTER INSERT on stat_inst_ret_para for each ROW -BEGIN - - - IF getTriggerFlag() = TRUE THEN - INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME, KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE, SUBSYSTEM_FLAG) - VALUES (getMaxTriggerId(),getOpType('insert'),'stat_inst_ret_para', 'ret_tag', '', NEW.RET_TAG, getTableSubSystem('stat_inst_ret_para')); - END IF; - -END;; -DELIMITER ; - -drop trigger if exists TUA_STAT_INST_RET_PARA; -DELIMITER ;; -create trigger TUA_STAT_INST_RET_PARA AFTER UPDATE on stat_inst_ret_para for each ROW -BEGIN - - - IF getTriggerFlag() = TRUE THEN - INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME, KEY_COLUMN_NAME,KEY_OLD_VALUE, KEY_NEW_VALUE,SUBSYSTEM_FLAG) - VALUES (getMaxTriggerId(),getOpType('update'),'stat_inst_ret_para', 'ret_tag', OLD.RET_TAG, NEW.RET_TAG, getTableSubSystem('stat_inst_ret_para')); - END IF; - -END;; -DELIMITER ; - -drop trigger if exists TDA_STAT_INST_RET_PARA; -DELIMITER ;; -create trigger TDA_STAT_INST_RET_PARA AFTER DELETE on stat_inst_ret_para for each ROW -BEGIN - - - IF getTriggerFlag() = TRUE THEN - INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME, KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) - VALUES (getMaxTriggerId(),getOpType('delete'),'stat_inst_ret_para', 'ret_tag', OLD.RET_TAG, '', getTableSubSystem('stat_inst_ret_para')); - END IF; - -END;; -DELIMITER ; - -drop table if exists stat_link_def; -CREATE TABLE `stat_link_def` ( - `TAG_NAME` varchar(64) NOT NULL COMMENT '标签', - `DESCRIPTION` varchar(128) NOT NULL COMMENT '描述', - `STAT_TEMP_TAG` varchar(64) NOT NULL COMMENT '绑定模板标签', - PRIMARY KEY (`TAG_NAME`), - KEY `IN_STAT_LINK_DEF` (`DESCRIPTION`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='统计关联表'; - -drop trigger if exists TIA_STAT_LINK_DEF; -DELIMITER ;; -create trigger TIA_STAT_LINK_DEF AFTER INSERT on stat_link_def for each ROW -BEGIN - - IF getTriggerFlag() = TRUE THEN - INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME, KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE, SUBSYSTEM_FLAG) - VALUES (getMaxTriggerId(),getOpType('insert'),'stat_link_def', 'tag_name', '', NEW.TAG_NAME, getTableSubSystem('STAT_LINK_DEF')); - END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_STAT_LINK_DEF; -DELIMITER ;; -create trigger TUA_STAT_LINK_DEF AFTER UPDATE on stat_link_def for each ROW -BEGIN - IF NEW.TAG_NAME <> OLD.TAG_NAME THEN - BEGIN - UPDATE stat_link_para - SET LINK_TAG = NEW.TAG_NAME, - TAG_NAME = concat(NEW.TAG_NAME,'.',getAfterLastDot(TAG_NAME)) - WHERE LINK_TAG = OLD.TAG_NAME; - UPDATE stat_link_ret - SET LINK_TAG = NEW.TAG_NAME, - TAG_NAME = concat(NEW.TAG_NAME,'.',getAfterLastDot(TAG_NAME)) - WHERE LINK_TAG = OLD.TAG_NAME; - - END; - END IF; - IF getTriggerFlag() = TRUE THEN - INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME, KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) - VALUES (getMaxTriggerId(),getOpType('update'),'stat_link_def', 'tag_name', OLD.TAG_NAME, NEW.TAG_NAME, getTableSubSystem('stat_link_def')); - END IF; - UPDATE stat_link_para - SET STAT_PARA_TAG = concat(NEW.STAT_TEMP_TAG,'.',getAfterLastDot(STAT_PARA_TAG)) - WHERE LINK_TAG = OLD.TAG_NAME; - UPDATE stat_link_ret - SET STAT_RET_TAG = concat(NEW.STAT_TEMP_TAG,'.',getAfterLastDot(STAT_RET_TAG)) - WHERE LINK_TAG = OLD.TAG_NAME; -END;; -DELIMITER ; - -drop trigger if exists TDA_STAT_LINK_DEF; -DELIMITER ;; -create trigger TDA_STAT_LINK_DEF AFTER DELETE on stat_link_def for each ROW -BEGIN - #删除对应的模板点 - DELETE FROM stat_link_para WHERE LINK_TAG= OLD.TAG_NAME; - DELETE FROM stat_link_ret WHERE LINK_TAG = OLD.TAG_NAME; - - IF getTriggerFlag() = TRUE THEN - INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME, KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) - VALUES (getMaxTriggerId(),getOpType('delete'),'stat_link_def', 'tag_name', OLD.TAG_NAME, '', getTableSubSystem('stat_link_def')); - END IF; - - -END;; -DELIMITER ; - -drop table if exists stat_link_para; -CREATE TABLE `stat_link_para` ( - `TAG_NAME` varchar(64) NOT NULL COMMENT '标签', - `DESCRIPTION` varchar(128) NOT NULL COMMENT '描述', - `LINK_TAG` varchar(64) NOT NULL COMMENT '统计关联模板', - `STAT_PARA_TAG` varchar(64) NOT NULL COMMENT '模板输入参数标签', - `TEMP_NAME` varchar(64) NOT NULL COMMENT '后台模板标签', - `TEMP_TYPE` decimal(10,0) NOT NULL COMMENT '绑定点类型', - `TEMP_POINT_NAME` varchar(64) NOT NULL COMMENT '绑定测点模板标签', - PRIMARY KEY (`TAG_NAME`), - KEY `IN_STAT_LINK_PARA` (`DESCRIPTION`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='统计关联输入参数表'; - -drop trigger if exists TIA_STAT_LINK_PARA; -DELIMITER ;; -create trigger TIA_STAT_LINK_PARA AFTER INSERT on stat_link_para for each ROW -BEGIN - - - IF getTriggerFlag() = TRUE THEN - INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME, KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE, SUBSYSTEM_FLAG) - VALUES (getMaxTriggerId(),getOpType('insert'),'stat_link_para', 'tag_name', '', NEW.TAG_NAME, getTableSubSystem('stat_link_para')); - END IF; - -END;; -DELIMITER ; - -drop trigger if exists TUA_STAT_LINK_PARA; -DELIMITER ;; -create trigger TUA_STAT_LINK_PARA AFTER UPDATE on stat_link_para for each ROW -BEGIN - - - IF getTriggerFlag() = TRUE THEN - INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME, KEY_COLUMN_NAME,KEY_OLD_VALUE, KEY_NEW_VALUE,SUBSYSTEM_FLAG) - VALUES (getMaxTriggerId(),getOpType('update'),'stat_link_para', 'tag_name', OLD.TAG_NAME, NEW.TAG_NAME, getTableSubSystem('stat_link_para')); - END IF; - -END;; -DELIMITER ; - -drop trigger if exists TDA_STAT_LINK_PARA; -DELIMITER ;; -create trigger TDA_STAT_LINK_PARA AFTER DELETE on stat_link_para for each ROW -BEGIN - - - IF getTriggerFlag() = TRUE THEN - INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME, KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) - VALUES (getMaxTriggerId(),getOpType('delete'),'stat_link_para', 'tag_name', OLD.TAG_NAME, '', getTableSubSystem('stat_link_para')); - END IF; - -END;; -DELIMITER ; - -drop table if exists stat_link_ret; -CREATE TABLE `stat_link_ret` ( - `TAG_NAME` varchar(64) NOT NULL COMMENT '标签', - `DESCRIPTION` varchar(128) NOT NULL COMMENT '描述', - `LINK_TAG` varchar(64) NOT NULL COMMENT '统计关联', - `STAT_RET_TAG` varchar(64) NOT NULL COMMENT '模板输出参数标签', - `TEMP_NAME` varchar(64) NOT NULL COMMENT '后台模板标签', - `TEMP_TYPE` decimal(10,0) NOT NULL COMMENT '绑定点类型', - `TEMP_POINT_NAME` varchar(64) NOT NULL COMMENT '绑定测点模板标签', - PRIMARY KEY (`TAG_NAME`), - KEY `IN_STAT_LINK_RET` (`DESCRIPTION`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='统计关联输出参数表'; - -drop trigger if exists TIA_STAT_LINK_RET; -DELIMITER ;; -create trigger TIA_STAT_LINK_RET AFTER INSERT on stat_link_ret for each ROW -BEGIN - - - IF getTriggerFlag() = TRUE THEN - INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME, KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE, SUBSYSTEM_FLAG) - VALUES (getMaxTriggerId(),getOpType('insert'),'stat_link_ret', 'tag_name', '', NEW.TAG_NAME, getTableSubSystem('stat_link_ret')); - END IF; - -END;; -DELIMITER ; - -drop trigger if exists TUA_STAT_LINK_RET; -DELIMITER ;; -create trigger TUA_STAT_LINK_RET AFTER UPDATE on stat_link_ret for each ROW -BEGIN - - - IF getTriggerFlag() = TRUE THEN - INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME, KEY_COLUMN_NAME,KEY_OLD_VALUE, KEY_NEW_VALUE,SUBSYSTEM_FLAG) - VALUES (getMaxTriggerId(),getOpType('update'),'stat_link_ret', 'tag_name', OLD.TAG_NAME, NEW.TAG_NAME, getTableSubSystem('stat_link_ret')); - END IF; - -END;; -DELIMITER ; - -drop trigger if exists TDA_STAT_LINK_RET; -DELIMITER ;; -create trigger TDA_STAT_LINK_RET AFTER DELETE on stat_link_ret for each ROW -BEGIN - - - IF getTriggerFlag() = TRUE THEN - INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME, KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) - VALUES (getMaxTriggerId(),getOpType('delete'),'stat_link_ret', 'tag_name', OLD.TAG_NAME, '', getTableSubSystem('stat_link_ret')); - END IF; - -END;; -DELIMITER ; - -drop table if exists stat_template_def; -CREATE TABLE `stat_template_def` ( - `TEMPLATE_TAG` varchar(64) NOT NULL COMMENT '统计模板标签', - `DESCRIPTION` varchar(128) NOT NULL COMMENT '统计模板描述', - `FUNCTION_BODY` varchar(8192) DEFAULT NULL COMMENT '函数体', - `FUNCTION_HEADER_CACHE` varchar(1024) DEFAULT NULL COMMENT '函数头,建模过程缓存加速用', - `FUNCTION_RETURN_CACHE` varchar(2048) DEFAULT NULL COMMENT '函数返回值,建模过程缓存加速用', - `IS_MOD` decimal(10,0) NOT NULL COMMENT '是否修改', - PRIMARY KEY (`TEMPLATE_TAG`), - KEY `IN_STAT_TEMPLATE_DEF` (`DESCRIPTION`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='统计模板定义表'; - -drop trigger if exists TIA_STAT_TEMPLATE_DEF; -DELIMITER ;; -create trigger TIA_STAT_TEMPLATE_DEF AFTER INSERT on stat_template_def for each ROW -BEGIN - - IF getTriggerFlag() = TRUE THEN - INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME, KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE, SUBSYSTEM_FLAG) - VALUES (getMaxTriggerId(),getOpType('insert'),'stat_template_def', 'template_tag', '', NEW.TEMPLATE_TAG, getTableSubSystem('stat_template_def')); - END IF; - -END;; -DELIMITER ; - -drop trigger if exists TUA_STAT_TEMPLATE_DEF; -DELIMITER ;; -create trigger TUA_STAT_TEMPLATE_DEF AFTER UPDATE on stat_template_def for each ROW -BEGIN - UPDATE stat_template_para - SET TEMPLATE_TAG = NEW.TEMPLATE_TAG, - PARA_TAG = concat(NEW.TEMPLATE_TAG,'.',getAfterLastDot(PARA_TAG)) - WHERE TEMPLATE_TAG = OLD.TEMPLATE_TAG; - - UPDATE stat_template_ret - SET TEMPLATE_TAG = NEW.TEMPLATE_TAG, - RET_TAG = concat(NEW.TEMPLATE_TAG,'.',getAfterLastDot(RET_TAG)) - WHERE TEMPLATE_TAG = OLD.TEMPLATE_TAG; - - UPDATE stat_inst_def - SET TEMPLATE_TAG = NEW.TEMPLATE_TAG - WHERE TEMPLATE_TAG = OLD.TEMPLATE_TAG; - UPDATE stat_link_def - SET STAT_TEMP_TAG = NEW.TEMPLATE_TAG - WHERE STAT_TEMP_TAG = OLD.TEMPLATE_TAG; - - IF getTriggerFlag() = TRUE THEN - INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME, KEY_COLUMN_NAME,KEY_OLD_VALUE, KEY_NEW_VALUE,SUBSYSTEM_FLAG) - VALUES (getMaxTriggerId(),getOpType('update'),'stat_template_def', 'template_tag', OLD.TEMPLATE_TAG, NEW.TEMPLATE_TAG, getTableSubSystem('stat_template_def')); - END IF; - - -END;; -DELIMITER ; - -drop trigger if exists TDA_STAT_TEMPLATE_DEF; -DELIMITER ;; -create trigger TDA_STAT_TEMPLATE_DEF AFTER DELETE on stat_template_def for each ROW -BEGIN - #删除对应关联 - DELETE FROM stat_link_def WHERE STAT_TEMP_TAG = OLD.TEMPLATE_TAG; - - #删除对应实例 - DELETE FROM stat_inst_def WHERE TEMPLATE_TAG = OLD.TEMPLATE_TAG; - - #删除对应的模板点 - DELETE FROM stat_template_para WHERE TEMPLATE_TAG = OLD.TEMPLATE_TAG; - DELETE FROM stat_template_ret WHERE TEMPLATE_TAG = OLD.TEMPLATE_TAG; - - IF getTriggerFlag() = TRUE THEN - INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME, KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) - VALUES (getMaxTriggerId(),getOpType('delete'),'stat_template_def', 'template_tag', OLD.TEMPLATE_TAG, '', getTableSubSystem('stat_template_def')); - END IF; - - -END;; -DELIMITER ; - -drop table if exists stat_template_para; -CREATE TABLE `stat_template_para` ( - `PARA_TAG` varchar(64) NOT NULL COMMENT '统计模板参数标签', - `DESCRIPTION` varchar(128) NOT NULL COMMENT '统计模板参数描述', - `TEMPLATE_TAG` varchar(64) NOT NULL COMMENT '归属统计模板标签', - `ISGRP` decimal(3,0) NOT NULL COMMENT '是否为参数组,初始值为参数', - `ARG_NAME` varchar(128) NOT NULL COMMENT '公式输入参数名,用来在公式中使用的参数', - `TYPE` decimal(3,0) NOT NULL COMMENT '参数类型,类型有两种,一种测点,一种时间 当值为1为测点,2为时间', - `SORT` decimal(3,0) NOT NULL COMMENT '从1开始递增,最多不超过8(可以为8)', - PRIMARY KEY (`PARA_TAG`), - KEY `IN_STAT_TEMPLATE_PARA` (`DESCRIPTION`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='统计模板参数定义表'; - -drop trigger if exists TIA_STAT_TEMPLATE_PARA; -DELIMITER ;; -create trigger TIA_STAT_TEMPLATE_PARA AFTER INSERT on stat_template_para for each ROW -BEGIN - #插入对应的实例 - INSERT INTO stat_inst_para_grp - (PARA_GRP_TAG, DESCRIPTION, INST_TAG, SORT, LOCATION_ID,SUB_SYSTEM) - SELECT - concat(INST_TAG,'.',getAfterLastDot(NEW.PARA_TAG)) , NEW.DESCRIPTION, INST_TAG, NEW.SORT,LOCATION_ID,SUB_SYSTEM - FROM stat_inst_def WHERE TEMPLATE_TAG = NEW.TEMPLATE_TAG AND COALESCE(NEW.ISGRP,0) = 1; - - INSERT INTO stat_inst_para_point - (PARA_TAG, DESCRIPTION, `RANK`, POINT_TAG, SORT, PARA_GRP_TAG, INST_TAG,LOCATION_ID,SUB_SYSTEM) - SELECT - concat(INST_TAG,'.',getAfterLastDot(NEW.PARA_TAG)),NEW.DESCRIPTION, 1, '', NEW.SORT, '', INST_TAG,LOCATION_ID,SUB_SYSTEM - FROM stat_inst_def WHERE TEMPLATE_TAG = NEW.TEMPLATE_TAG AND COALESCE(NEW.ISGRP,0) = 0 AND COALESCE(NEW.`TYPE`,0) = 1; - - INSERT INTO stat_inst_para_time - (PARA_TAG, DESCRIPTION, `RANK`, `TIMESTAMP`, SORT, PARA_GRP_TAG, INST_TAG, TIME_MODE, YEAR_R, MONTH_R, DAY_R, WEEKDAY_R, HOUR_R, MINUTE_R, SECOND_R,LOCATION_ID,SUB_SYSTEM) - SELECT - concat(INST_TAG,'.',getAfterLastDot(NEW.PARA_TAG)),NEW.DESCRIPTION, 1, unix_timestamp(now()),NEW.SORT, '', INST_TAG, 0, 0, 0, 0, 0, 0, 0, 0, LOCATION_ID,SUB_SYSTEM - FROM stat_inst_def WHERE TEMPLATE_TAG = NEW.TEMPLATE_TAG AND COALESCE(NEW.ISGRP,0) = 0 AND COALESCE(NEW.`TYPE`,0) = 2; - - - IF getTriggerFlag() = TRUE THEN - INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME, KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE, SUBSYSTEM_FLAG) - VALUES (getMaxTriggerId(),getOpType('insert'),'stat_template_para', 'para_tag', '', NEW.PARA_TAG, getTableSubSystem('stat_template_para')); - END IF; - - -END;; -DELIMITER ; - -drop trigger if exists TUA_STAT_TEMPLATE_PARA; -DELIMITER ;; -create trigger TUA_STAT_TEMPLATE_PARA AFTER UPDATE on stat_template_para for each ROW -body:BEGIN - - IF getTriggerFlag() = TRUE THEN - INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME, KEY_COLUMN_NAME,KEY_OLD_VALUE, KEY_NEW_VALUE,SUBSYSTEM_FLAG) - VALUES (getMaxTriggerId(),getOpType('update'),'stat_template_para', 'para_tag', OLD.PARA_TAG, NEW.PARA_TAG, getTableSubSystem('stat_template_para')); - END IF; - - UPDATE stat_link_para - SET STAT_PARA_TAG = concat(OLD.TEMPLATE_TAG,'.',getAfterLastDot(NEW.PARA_TAG)) - WHERE STAT_PARA_TAG = concat(OLD.TEMPLATE_TAG,'.',getAfterLastDot(OLD.PARA_TAG)); - - IF OLD.PARA_TAG = NEW.PARA_TAG AND OLD.DESCRIPTION = NEW.DESCRIPTION AND OLD.ISGRP = NEW.ISGRP AND OLD.`TYPE` = NEW.`TYPE` - AND OLD.SORT = NEW.SORT - THEN LEAVE body; - END IF; - - - #更新对应的实例点 - #考虑从分组到不分组,从测点类型到时间类型,需删除旧的数据 - IF OLD.ISGRP = 1 AND NEW.ISGRP = 0 THEN - BEGIN - DELETE stat_inst_para_grp FROM stat_inst_def,stat_inst_para_grp - WHERE stat_inst_def.TEMPLATE_TAG = OLD.TEMPLATE_TAG - AND stat_inst_para_grp.INST_TAG = stat_inst_def.INST_TAG - AND getAfterLastDot(stat_inst_para_grp.PARA_GRP_TAG) = getAfterLastDot(OLD.PARA_TAG); - - IF NEW.`TYPE` = 1 THEN - INSERT INTO stat_inst_para_point - (PARA_TAG, DESCRIPTION, `RANK`, POINT_TAG, SORT, PARA_GRP_TAG, INST_TAG,LOCATION_ID,SUB_SYSTEM) - SELECT - concat(INST_TAG,'.',getAfterLastDot(NEW.PARA_TAG)),NEW.DESCRIPTION, 1, '', NEW.SORT, '', INST_TAG,LOCATION_ID,SUB_SYSTEM - FROM stat_inst_def WHERE TEMPLATE_TAG = NEW.TEMPLATE_TAG AND COALESCE(NEW.ISGRP,0) = 0 AND COALESCE(NEW.`TYPE`,0) = 1; - ELSEIF NEW.`TYPE` = 2 THEN - INSERT INTO stat_inst_para_time - (PARA_TAG, DESCRIPTION, `RANK`, `TIMESTAMP`, SORT, PARA_GRP_TAG, INST_TAG, TIME_MODE, YEAR_R, MONTH_R, DAY_R, WEEKDAY_R, HOUR_R, MINUTE_R, SECOND_R,LOCATION_ID,SUB_SYSTEM) - SELECT - concat(INST_TAG,'.',getAfterLastDot(NEW.PARA_TAG)),NEW.DESCRIPTION, 1, unix_timestamp(now()),NEW.SORT, '', INST_TAG, 0, 0, 0, 0, 0, 0, 0, 0, LOCATION_ID,SUB_SYSTEM - FROM stat_inst_def WHERE TEMPLATE_TAG = NEW.TEMPLATE_TAG AND COALESCE(NEW.ISGRP,0) = 0 AND COALESCE(NEW.`TYPE`,0) = 2; - END IF; - END; - ELSEIF OLD.ISGRP = 0 AND NEW.ISGRP = 1 THEN - BEGIN - IF OLD.`TYPE` = 1 THEN - DELETE stat_inst_para_point FROM stat_inst_def,stat_inst_para_point - WHERE stat_inst_def.TEMPLATE_TAG = OLD.TEMPLATE_TAG - AND stat_inst_para_point.INST_TAG = stat_inst_def.INST_TAG - AND getAfterLastDot(stat_inst_para_point.PARA_TAG) = getAfterLastDot(OLD.PARA_TAG); - ELSEIF OLD.`TYPE` = 2 THEN - DELETE stat_inst_para_time FROM stat_inst_def,stat_inst_para_time - WHERE stat_inst_def.TEMPLATE_TAG = OLD.TEMPLATE_TAG - AND stat_inst_para_time.INST_TAG = stat_inst_def.INST_TAG - AND getAfterLastDot(stat_inst_para_time.PARA_TAG) = getAfterLastDot(OLD.PARA_TAG); - END IF; - - INSERT INTO stat_inst_para_grp - (PARA_GRP_TAG, DESCRIPTION, INST_TAG, SORT, LOCATION_ID,SUB_SYSTEM) - SELECT - concat(INST_TAG,'.',getAfterLastDot(NEW.PARA_TAG)) , NEW.DESCRIPTION, INST_TAG, NEW.SORT,LOCATION_ID,SUB_SYSTEM - FROM stat_inst_def WHERE TEMPLATE_TAG = NEW.TEMPLATE_TAG AND COALESCE(NEW.ISGRP,0) = 1; - - END; - ELSEIF OLD.ISGRP = NEW.ISGRP AND OLD.ISGRP = 0 THEN - BEGIN - IF OLD.`TYPE` = 1 AND NEW.`TYPE` = 2 THEN - BEGIN - DELETE stat_inst_para_point FROM stat_inst_def,stat_inst_para_point - WHERE stat_inst_def.TEMPLATE_TAG = OLD.TEMPLATE_TAG - AND stat_inst_para_point.INST_TAG = stat_inst_def.INST_TAG - AND getAfterLastDot(stat_inst_para_point.PARA_TAG) = getAfterLastDot(OLD.PARA_TAG); - - INSERT INTO stat_inst_para_time - (PARA_TAG, DESCRIPTION, `RANK`, `TIMESTAMP`, SORT, PARA_GRP_TAG, INST_TAG, TIME_MODE, YEAR_R, MONTH_R, DAY_R, WEEKDAY_R, HOUR_R, MINUTE_R, SECOND_R,LOCATION_ID,SUB_SYSTEM) - SELECT - concat(INST_TAG,'.',getAfterLastDot(NEW.PARA_TAG)),NEW.DESCRIPTION, 1, unix_timestamp(now()),NEW.SORT, '', INST_TAG, 0, 0, 0, 0, 0, 0, 0, 0, LOCATION_ID,SUB_SYSTEM - FROM stat_inst_def WHERE TEMPLATE_TAG = NEW.TEMPLATE_TAG AND COALESCE(NEW.ISGRP,0) = 0 AND COALESCE(NEW.`TYPE`,0) = 2; - END; - ELSEIF OLD.`TYPE` = 2 AND NEW.`TYPE` = 1 THEN - BEGIN - DELETE stat_inst_para_time FROM stat_inst_def,stat_inst_para_time - WHERE stat_inst_def.TEMPLATE_TAG = OLD.TEMPLATE_TAG - AND stat_inst_para_time.INST_TAG = stat_inst_def.INST_TAG - AND getAfterLastDot(stat_inst_para_time.PARA_TAG) = getAfterLastDot(OLD.PARA_TAG); - - INSERT INTO stat_inst_para_point - (PARA_TAG, DESCRIPTION, `RANK`, POINT_TAG, SORT, PARA_GRP_TAG, INST_TAG,LOCATION_ID,SUB_SYSTEM) - SELECT - concat(INST_TAG,'.',getAfterLastDot(NEW.PARA_TAG)),NEW.DESCRIPTION, 1, '', NEW.SORT, '', INST_TAG,LOCATION_ID,SUB_SYSTEM - FROM stat_inst_def WHERE TEMPLATE_TAG = NEW.TEMPLATE_TAG AND COALESCE(NEW.ISGRP,0) = 0 AND COALESCE(NEW.`TYPE`,0) = 1; - END; - ELSEIF OLD.`TYPE` = NEW.`TYPE` AND OLD.`TYPE` = 1 THEN - UPDATE stat_inst_para_point INNER JOIN stat_inst_def - ON stat_inst_def.TEMPLATE_TAG = OLD.TEMPLATE_TAG AND stat_inst_def.INST_TAG = stat_inst_para_point.INST_TAG - AND `RANK` = 1 AND getAfterLastDot(PARA_TAG) = getAfterLastDot(OLD.PARA_TAG) - SET stat_inst_para_point.PARA_TAG = concat(stat_inst_para_point.INST_TAG,'.',getAfterLastDot(NEW.PARA_TAG)), - stat_inst_para_point.DESCRIPTION = NEW.DESCRIPTION, - stat_inst_para_point.SORT = NEW.SORT; - ELSEIF OLD.`TYPE` = NEW.`TYPE` AND OLD.`TYPE` = 2 THEN - UPDATE stat_inst_para_time INNER JOIN stat_inst_def - ON stat_inst_def.TEMPLATE_TAG = OLD.TEMPLATE_TAG AND stat_inst_def.INST_TAG = stat_inst_para_time.INST_TAG - AND `RANK` = 1 AND getAfterLastDot(PARA_TAG) = getAfterLastDot(OLD.PARA_TAG) - SET stat_inst_para_time.PARA_TAG = concat(stat_inst_para_time.INST_TAG,'.',getAfterLastDot(NEW.PARA_TAG)), - stat_inst_para_time.DESCRIPTION = NEW.DESCRIPTION, - stat_inst_para_time.SORT = NEW.SORT; - END IF; - END; - ELSEIF OLD.ISGRP = NEW.ISGRP AND OLD.ISGRP = 1 THEN - BEGIN - IF OLD.`TYPE` = 1 AND NEW.`TYPE` = 2 THEN - BEGIN - DELETE stat_inst_para_point FROM stat_inst_def,stat_inst_para_grp,stat_inst_para_point - WHERE stat_inst_def.TEMPLATE_TAG = OLD.TEMPLATE_TAG - AND stat_inst_def.INST_TAG = stat_inst_para_grp.INST_TAG - AND getAfterLastDot(stat_inst_para_grp.PARA_GRP_TAG) = getAfterLastDot(OLD.PARA_TAG) - AND stat_inst_para_point.PARA_GRP_TAG = stat_inst_para_grp.PARA_GRP_TAG; - END; - ELSEIF OLD.`TYPE` = 2 AND NEW.`TYPE` = 1 THEN - BEGIN - DELETE stat_inst_para_time FROM stat_inst_def,stat_inst_para_grp,stat_inst_para_time - WHERE stat_inst_def.TEMPLATE_TAG = OLD.TEMPLATE_TAG - AND stat_inst_def.INST_TAG = stat_inst_para_grp.INST_TAG - AND getAfterLastDot(stat_inst_para_grp.PARA_GRP_TAG) = getAfterLastDot(OLD.PARA_TAG) - AND stat_inst_para_time.PARA_GRP_TAG = stat_inst_para_grp.PARA_GRP_TAG; - END; - END IF; - - - UPDATE stat_inst_para_grp INNER JOIN stat_inst_def - ON stat_inst_def.TEMPLATE_TAG = OLD.TEMPLATE_TAG AND stat_inst_def.INST_TAG = stat_inst_para_grp.INST_TAG - AND getAfterLastDot(PARA_GRP_TAG) = getAfterLastDot(OLD.PARA_TAG) - SET stat_inst_para_grp.PARA_GRP_TAG = concat(stat_inst_para_grp.INST_TAG,'.',getAfterLastDot(NEW.PARA_TAG)), - stat_inst_para_grp.DESCRIPTION = NEW.DESCRIPTION, - stat_inst_para_grp.SORT = NEW.SORT; - END; - END IF; - - -END;; -DELIMITER ; - -drop trigger if exists TDA_STAT_TEMPLATE_PARA; -DELIMITER ;; -create trigger TDA_STAT_TEMPLATE_PARA AFTER DELETE on stat_template_para for each ROW -BEGIN - #删除相应的实例点 - DELETE stat_inst_para_grp FROM stat_inst_def,stat_inst_para_grp - WHERE stat_inst_def.TEMPLATE_TAG = OLD.TEMPLATE_TAG - AND stat_inst_para_grp.INST_TAG = stat_inst_def.INST_TAG - AND getAfterLastDot(stat_inst_para_grp.PARA_GRP_TAG) = getAfterLastDot(OLD.PARA_TAG); - - DELETE stat_inst_para_point FROM stat_inst_def,stat_inst_para_point - WHERE stat_inst_def.TEMPLATE_TAG = OLD.TEMPLATE_TAG - AND stat_inst_para_point.INST_TAG = stat_inst_def.INST_TAG - AND getAfterLastDot(stat_inst_para_point.PARA_TAG) = getAfterLastDot(OLD.PARA_TAG); - - DELETE stat_inst_para_time FROM stat_inst_def,stat_inst_para_time - WHERE stat_inst_def.TEMPLATE_TAG = OLD.TEMPLATE_TAG - AND stat_inst_para_time.INST_TAG = stat_inst_def.INST_TAG - AND getAfterLastDot(stat_inst_para_time.PARA_TAG) = getAfterLastDot(OLD.PARA_TAG); - DELETE FROM stat_link_para - WHERE STAT_PARA_TAG = OLD.PARA_TAG; - - IF getTriggerFlag() = TRUE THEN - INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME, KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) - VALUES (getMaxTriggerId(),getOpType('delete'),'stat_template_para', 'para_tag', OLD.PARA_TAG, '', getTableSubSystem('stat_template_para')); - END IF; - - - -END;; -DELIMITER ; - -drop table if exists stat_template_ret; -CREATE TABLE `stat_template_ret` ( - `RET_TAG` varchar(64) NOT NULL COMMENT '统计模板输出参数定义', - `DESCRIPTION` varchar(128) NOT NULL COMMENT '描述', - `TEMPLATE_TAG` varchar(64) NOT NULL COMMENT '绑定所属的统计模板标签', - `RET_NAME` varchar(64) NOT NULL COMMENT '公式返回值参数名', - `ISGRP` decimal(3,0) NOT NULL COMMENT '是否为参数组,默认值为参数', - `SORT` decimal(10,0) NOT NULL COMMENT '从1开始递增,无最大值限制', - PRIMARY KEY (`RET_TAG`), - KEY `IN_STAT_TEMPLATE_RET` (`DESCRIPTION`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='统计模板输出参数定义(返回值)'; - -drop trigger if exists TIA_STAT_TEMPLATE_RET; -DELIMITER ;; -create trigger TIA_STAT_TEMPLATE_RET AFTER INSERT on stat_template_ret for each ROW -BEGIN - #插入相应实例点 - INSERT INTO stat_inst_ret_grp - (RET_GRP_TAG, DESCRIPTION, INST_TAG, SORT, LOCATION_ID,SUB_SYSTEM) - SELECT - concat(INST_TAG,'.',getAfterLastDot(NEW.RET_TAG)) , NEW.DESCRIPTION, INST_TAG, NEW.SORT,LOCATION_ID,SUB_SYSTEM - FROM stat_inst_def WHERE TEMPLATE_TAG = NEW.TEMPLATE_TAG AND COALESCE(NEW.ISGRP,0) = 1; - - INSERT INTO stat_inst_ret_para - (RET_TAG, DESCRIPTION, `RANK`, POINT_TAG, SORT, PARA_GRP_TAG, VALUE, IS_BIND, INST_TAG,LOCATION_ID,SUB_SYSTEM) - SELECT - concat(INST_TAG,'.',getAfterLastDot(NEW.RET_TAG)) ,NEW.DESCRIPTION, 1, '', NEW.SORT,'', 0, 0, INST_TAG,LOCATION_ID,SUB_SYSTEM - FROM stat_inst_def WHERE TEMPLATE_TAG = NEW.TEMPLATE_TAG AND COALESCE(NEW.ISGRP,0) = 0; - - IF getTriggerFlag() = TRUE THEN - INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME, KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE, SUBSYSTEM_FLAG) - VALUES (getMaxTriggerId(),getOpType('insert'),'stat_template_ret', 'ret_tag', '', NEW.RET_TAG, getTableSubSystem('stat_template_ret')); - END IF; - - - -END;; -DELIMITER ; - -drop trigger if exists TUA_STAT_TEMPLATE_RET; -DELIMITER ;; -create trigger TUA_STAT_TEMPLATE_RET AFTER UPDATE on stat_template_ret for each ROW -body:BEGIN - IF getTriggerFlag() = TRUE THEN - INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME, KEY_COLUMN_NAME,KEY_OLD_VALUE, KEY_NEW_VALUE,SUBSYSTEM_FLAG) - VALUES (getMaxTriggerId(),getOpType('update'),'stat_template_ret', 'ret_tag', OLD.RET_TAG, NEW.RET_TAG, getTableSubSystem('stat_template_ret')); - END IF; - - UPDATE stat_link_ret - SET STAT_RET_TAG = concat(OLD.TEMPLATE_TAG,'.',getAfterLastDot(NEW.RET_TAG)) - WHERE STAT_RET_TAG = concat(OLD.TEMPLATE_TAG,'.',getAfterLastDot(OLD.RET_TAG)); - - IF OLD.RET_TAG = NEW.RET_TAG AND OLD.DESCRIPTION = NEW.DESCRIPTION AND OLD.ISGRP = NEW.ISGRP AND OLD.SORT = NEW.SORT - THEN LEAVE body; - END IF; - - #更新相应的实例点 - IF OLD.ISGRP = 1 AND NEW.ISGRP = 0 THEN - BEGIN - DELETE stat_inst_ret_grp FROM stat_inst_def,stat_inst_ret_grp - WHERE stat_inst_def.TEMPLATE_TAG = OLD.TEMPLATE_TAG - AND stat_inst_ret_grp.INST_TAG = stat_inst_def.INST_TAG - AND getAfterLastDot(stat_inst_ret_grp.RET_GRP_TAG) = getAfterLastDot(OLD.RET_TAG); - - INSERT INTO stat_inst_ret_para - (RET_TAG, DESCRIPTION, `RANK`, POINT_TAG, SORT, PARA_GRP_TAG, VALUE, IS_BIND, INST_TAG,LOCATION_ID,SUB_SYSTEM) - SELECT - concat(INST_TAG,'.',getAfterLastDot(NEW.RET_TAG)) ,NEW.DESCRIPTION, 1, '', NEW.SORT,'', 0, 0, INST_TAG,LOCATION_ID,SUB_SYSTEM - FROM stat_inst_def WHERE TEMPLATE_TAG = NEW.TEMPLATE_TAG AND COALESCE(NEW.ISGRP,0) = 0; - END; - ELSEIF OLD.ISGRP = 0 AND NEW.ISGRP = 1 THEN - BEGIN - DELETE stat_inst_ret_para FROM stat_inst_def,stat_inst_ret_para - WHERE stat_inst_def.TEMPLATE_TAG = OLD.TEMPLATE_TAG - AND stat_inst_ret_para.INST_TAG = stat_inst_def.INST_TAG - AND getAfterLastDot(stat_inst_ret_para.RET_TAG) = getAfterLastDot(OLD.RET_TAG); - - INSERT INTO stat_inst_ret_grp - (RET_GRP_TAG, DESCRIPTION, INST_TAG, SORT, LOCATION_ID,SUB_SYSTEM) - SELECT - concat(INST_TAG,'.',getAfterLastDot(NEW.RET_TAG)) , NEW.DESCRIPTION, INST_TAG, NEW.SORT,LOCATION_ID,SUB_SYSTEM - FROM stat_inst_def WHERE TEMPLATE_TAG = NEW.TEMPLATE_TAG AND COALESCE(NEW.ISGRP,0) = 1; - END; - ELSEIF OLD.ISGRP = NEW.ISGRP AND OLD.ISGRP = 0 THEN - BEGIN - UPDATE stat_inst_ret_para INNER JOIN stat_inst_def - ON stat_inst_def.TEMPLATE_TAG = OLD.TEMPLATE_TAG AND stat_inst_def.INST_TAG = stat_inst_ret_para.INST_TAG - AND `RANK` = 1 AND getAfterLastDot(RET_TAG) = getAfterLastDot(OLD.RET_TAG) - SET stat_inst_ret_para.RET_TAG = concat(stat_inst_ret_para.INST_TAG,'.',getAfterLastDot(NEW.RET_TAG)), - stat_inst_ret_para.DESCRIPTION = NEW.DESCRIPTION, - stat_inst_ret_para.SORT = NEW.SORT; - END; - ELSEIF OLD.ISGRP = NEW.ISGRP AND OLD.ISGRP = 1 THEN - BEGIN - UPDATE stat_inst_ret_grp INNER JOIN stat_inst_def - ON stat_inst_def.TEMPLATE_TAG = OLD.TEMPLATE_TAG AND stat_inst_def.INST_TAG = stat_inst_ret_grp.INST_TAG - AND getAfterLastDot(RET_GRP_TAG) = getAfterLastDot(OLD.RET_TAG) - SET stat_inst_ret_grp.RET_GRP_TAG = concat(stat_inst_ret_grp.INST_TAG,'.',getAfterLastDot(NEW.RET_TAG)), - stat_inst_ret_grp.DESCRIPTION = NEW.DESCRIPTION, - stat_inst_ret_grp.SORT = NEW.SORT; - END; - END IF; - - - -END;; -DELIMITER ; - -drop trigger if exists TDA_STAT_TEMPLATE_RET; -DELIMITER ;; -create trigger TDA_STAT_TEMPLATE_RET AFTER DELETE on stat_template_ret for each ROW -BEGIN - #删除相应的实例点 - DELETE stat_inst_ret_grp FROM stat_inst_def,stat_inst_ret_grp - WHERE stat_inst_def.TEMPLATE_TAG = OLD.TEMPLATE_TAG - AND stat_inst_ret_grp.INST_TAG = stat_inst_def.INST_TAG - AND getAfterLastDot(stat_inst_ret_grp.RET_GRP_TAG) = getAfterLastDot(OLD.RET_TAG); - - DELETE stat_inst_ret_para FROM stat_inst_def,stat_inst_ret_para - WHERE stat_inst_def.TEMPLATE_TAG = OLD.TEMPLATE_TAG - AND stat_inst_ret_para.INST_TAG = stat_inst_def.INST_TAG - AND getAfterLastDot(stat_inst_ret_para.RET_TAG) = getAfterLastDot(OLD.RET_TAG); - DELETE FROM stat_link_ret - WHERE STAT_RET_TAG = OLD.RET_TAG; - - IF getTriggerFlag() = TRUE THEN - INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME, KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) - VALUES (getMaxTriggerId(),getOpType('delete'),'stat_template_ret', 'ret_tag', OLD.RET_TAG, '', getTableSubSystem('stat_template_ret')); - END IF; - - -END;; -DELIMITER ; - -drop table if exists switch_cfg_info; -CREATE TABLE `switch_cfg_info` ( - `TAG_NAME` varchar(64) NOT NULL COMMENT '标签名', - `DESCRIPTION` varchar(128) DEFAULT NULL COMMENT '描述', - `NIC1_ADDRESS` varchar(32) DEFAULT NULL COMMENT 'IP地址', - `NIC1_NETMASK` varchar(32) DEFAULT NULL COMMENT '子网掩码', - `LOCATION_ID` decimal(10,0) NOT NULL COMMENT '所属位置', - `SUB_SYSTEM` decimal(10,0) NOT NULL COMMENT '所属专业', - PRIMARY KEY (`TAG_NAME`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='交换机配置定义表'; - -drop table if exists t_sys_table_file_tree; -CREATE TABLE `t_sys_table_file_tree` ( - `ID` int(11) NOT NULL AUTO_INCREMENT, - `TREECODE` varchar(255) DEFAULT NULL COMMENT '节点编码', - `TREEPCODE` varchar(255) DEFAULT NULL COMMENT '父节点编号', - `NAME` varchar(255) DEFAULT NULL COMMENT '文件或者文件夹名称', - `PATH` varchar(255) DEFAULT NULL COMMENT '文件或者文件夹路径', - `TYPE` decimal(10,0) DEFAULT NULL COMMENT '类型', - `CREATETIME` varchar(255) DEFAULT NULL COMMENT '创建时间', - `CREATEOPERATOR` varchar(255) DEFAULT NULL COMMENT '创建操作人', - `LASTUPDATETIME` varchar(255) DEFAULT NULL COMMENT '最后更新时间', - `LASTUPDATEOPERATOR` varchar(255) DEFAULT NULL COMMENT '最后更新操作人', - `startTime` varchar(255) DEFAULT NULL COMMENT '开始时间', - `endTime` varchar(255) DEFAULT NULL COMMENT '结束时间', - `timeType` varchar(255) DEFAULT NULL COMMENT '时间类型', - `sourceType` varchar(255) DEFAULT NULL COMMENT '源类型', - `devlist` varchar(255) DEFAULT NULL COMMENT '设备列表', - PRIMARY KEY (`ID`) -) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; - -drop table if exists t_w_inspection; -CREATE TABLE `t_w_inspection` ( - `ID` int(11) NOT NULL AUTO_INCREMENT COMMENT '巡检编号', - `CODE` varchar(255) NOT NULL COMMENT '巡检设备代码', - `NAME` varchar(255) NOT NULL COMMENT '巡检设备名称', - `INSPECTION_TYPE` decimal(10,0) DEFAULT NULL COMMENT '巡检类型', - `DESCRIPTION` varchar(255) DEFAULT NULL COMMENT '巡检内容', - `IMAGEURL` varchar(512) DEFAULT NULL COMMENT '附图路径', - `UPTIME` varchar(255) DEFAULT NULL COMMENT '上传时间', - `AUTHOR` varchar(255) DEFAULT NULL COMMENT '上传者', - `ISHANDLE` decimal(10,0) DEFAULT NULL COMMENT '处理结果', - `HANDLER` varchar(255) DEFAULT NULL COMMENT '处理人', - `CABINETTYPE` varchar(255) DEFAULT NULL COMMENT '柜子类型', - `CABINETTYPENAME` varchar(255) DEFAULT NULL COMMENT '柜子名称', - PRIMARY KEY (`ID`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='设备巡检表'; - -drop table if exists trigger_condition_define; -CREATE TABLE `trigger_condition_define` ( - `TAG_NAME` varchar(64) NOT NULL COMMENT '触发器标签', - `DESCRIPTION` varchar(128) DEFAULT NULL COMMENT '描述', - `SUB_SYSTEM` decimal(10,0) DEFAULT NULL COMMENT '所属专业', - `EXE_TYPE` decimal(10,0) DEFAULT NULL COMMENT '执行方式', - `IS_REPEAT` decimal(10,0) DEFAULT NULL COMMENT '是否重复', - `SPACE_TIME` decimal(10,0) DEFAULT NULL COMMENT '间隔时间', - `FUNCTION_NAME` varchar(64) DEFAULT NULL COMMENT '触发函数名', - `PARAM_COUNT` decimal(10,0) DEFAULT NULL COMMENT '参数个数', - `PARAM_1` varchar(64) DEFAULT NULL COMMENT '点参数(车站.专业.表名.点名)', - `PARAM_2` varchar(64) DEFAULT NULL COMMENT '点参数', - `PARAM_3` varchar(64) DEFAULT NULL COMMENT '点参数', - `PARAM_4` varchar(64) DEFAULT NULL COMMENT '点参数', - `PARAM_5` varchar(64) DEFAULT NULL COMMENT '点参数', - `PARAM_6` varchar(64) DEFAULT NULL COMMENT '点参数', - `PARAM_7` varchar(64) DEFAULT NULL COMMENT '点参数', - `PARAM_8` varchar(64) DEFAULT NULL COMMENT '点参数', - `PARAM_9` varchar(64) DEFAULT NULL COMMENT '点参数', - `PARAM_10` varchar(64) DEFAULT NULL COMMENT '点参数', - `PARAM_11` varchar(64) DEFAULT NULL COMMENT '点参数', - `PARAM_12` varchar(64) DEFAULT NULL COMMENT '点参数', - `PARAM_13` varchar(64) DEFAULT NULL COMMENT '点参数', - `PARAM_14` varchar(64) DEFAULT NULL COMMENT '点参数', - `PARAM_15` varchar(64) DEFAULT NULL COMMENT '点参数', - `PARAM_16` varchar(64) DEFAULT NULL COMMENT '点参数', - `PARAM_17` varchar(64) DEFAULT NULL COMMENT '点参数', - `PARAM_18` varchar(64) DEFAULT NULL COMMENT '点参数', - `PARAM_19` varchar(64) DEFAULT NULL COMMENT '点参数', - `PARAM_20` varchar(64) DEFAULT NULL, - PRIMARY KEY (`TAG_NAME`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='条件触发定义表'; - -drop trigger if exists TIA_TRIGGER_CONDITION_DEFINE; -DELIMITER ;; -create trigger TIA_TRIGGER_CONDITION_DEFINE AFTER INSERT on trigger_condition_define for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'trigger_condition_define', 'tag_name', '', NEW.TAG_NAME, getTableSubSystem('trigger_condition_define')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_TRIGGER_CONDITION_DEFINE; -DELIMITER ;; -create trigger TUA_TRIGGER_CONDITION_DEFINE AFTER UPDATE on trigger_condition_define for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'trigger_condition_define', 'tag_name', OLD.TAG_NAME, NEW.TAG_NAME, getTableSubSystem('trigger_condition_define')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_TRIGGER_CONDITION_DEFINE; -DELIMITER ;; -create trigger TDA_TRIGGER_CONDITION_DEFINE AFTER DELETE on trigger_condition_define for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'trigger_condition_define', 'tag_name', OLD.TAG_NAME, '', getTableSubSystem('trigger_condition_define')); -END IF; -END;; -DELIMITER ; - -drop table if exists trigger_function_define; -CREATE TABLE `trigger_function_define` ( - `FUNC_NAME` varchar(64) NOT NULL COMMENT '函数名', - `DESCRIPTION` varchar(128) DEFAULT NULL COMMENT '描述', - `SUB_SYSTEM` decimal(10,0) DEFAULT NULL COMMENT '所属专业', - `FUNC_STR` varchar(4096) DEFAULT NULL COMMENT '函数内容', - PRIMARY KEY (`FUNC_NAME`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='触发函数定义表'; - -drop trigger if exists TIA_TRIGGER_FUNCTION_DEFINE; -DELIMITER ;; -create trigger TIA_TRIGGER_FUNCTION_DEFINE AFTER INSERT on trigger_function_define for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'trigger_function_define', 'func_name', '', NEW.FUNC_NAME, getTableSubSystem('trigger_function_define')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_TRIGGER_FUNCTION_DEFINE; -DELIMITER ;; -create trigger TUA_TRIGGER_FUNCTION_DEFINE AFTER UPDATE on trigger_function_define for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'trigger_function_define', 'func_name', OLD.FUNC_NAME, NEW.FUNC_NAME, getTableSubSystem('trigger_function_define')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_TRIGGER_FUNCTION_DEFINE; -DELIMITER ;; -create trigger TDA_TRIGGER_FUNCTION_DEFINE AFTER DELETE on trigger_function_define for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'trigger_function_define', 'func_name', OLD.FUNC_NAME, '', getTableSubSystem('trigger_function_define')); -END IF; -END;; -DELIMITER ; - -drop table if exists trigger_period_define; -CREATE TABLE `trigger_period_define` ( - `TAG_NAME` varchar(64) NOT NULL COMMENT '触发器名', - `DESCRIPTION` varchar(128) DEFAULT NULL COMMENT '描述', - `PERIOD_TYPE` decimal(10,0) DEFAULT NULL COMMENT '周期类型(每年每月每周每天每小时)', - `START_TIME` decimal(20,0) DEFAULT NULL COMMENT '开始时间', - `STOP_TIME` decimal(20,0) DEFAULT NULL COMMENT '结束时间', - `PERIOD_STR` varchar(128) DEFAULT NULL COMMENT '周期内容串', - PRIMARY KEY (`TAG_NAME`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='周期触发器定义表'; - -drop trigger if exists TIA_TRIGGER_PERIOD_DEFINE; -DELIMITER ;; -create trigger TIA_TRIGGER_PERIOD_DEFINE AFTER INSERT on trigger_period_define for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'trigger_period_define', 'tag_name', '', NEW.TAG_NAME, getTableSubSystem('trigger_period_define')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_TRIGGER_PERIOD_DEFINE; -DELIMITER ;; -create trigger TUA_TRIGGER_PERIOD_DEFINE AFTER UPDATE on trigger_period_define for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'trigger_period_define', 'tag_name', OLD.TAG_NAME, NEW.TAG_NAME, getTableSubSystem('trigger_period_define')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_TRIGGER_PERIOD_DEFINE; -DELIMITER ;; -create trigger TDA_TRIGGER_PERIOD_DEFINE AFTER DELETE on trigger_period_define for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'trigger_period_define', 'tag_name', OLD.TAG_NAME, '', getTableSubSystem('trigger_period_define')); -END IF; -END;; -DELIMITER ; - -drop table if exists trigger_timer_define; -CREATE TABLE `trigger_timer_define` ( - `TAG_NAME` varchar(64) NOT NULL COMMENT '触发器名称', - `DESCRIPTION` varchar(128) DEFAULT NULL COMMENT '描述', - `TRIGGER_TIME` decimal(20,0) DEFAULT NULL COMMENT '触发时间', - PRIMARY KEY (`TAG_NAME`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='定时触发器定义表'; - -drop trigger if exists TIA_TRIGGER_TIMER_DEFINE; -DELIMITER ;; -create trigger TIA_TRIGGER_TIMER_DEFINE AFTER INSERT on trigger_timer_define for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'trigger_timer_define', 'tag_name', '', NEW.TAG_NAME, getTableSubSystem('trigger_timer_define')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_TRIGGER_TIMER_DEFINE; -DELIMITER ;; -create trigger TUA_TRIGGER_TIMER_DEFINE AFTER UPDATE on trigger_timer_define for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'trigger_timer_define', 'tag_name', OLD.TAG_NAME, NEW.TAG_NAME, getTableSubSystem('trigger_timer_define')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_TRIGGER_TIMER_DEFINE; -DELIMITER ;; -create trigger TDA_TRIGGER_TIMER_DEFINE AFTER DELETE on trigger_timer_define for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'trigger_timer_define', 'tag_name', OLD.TAG_NAME, '', getTableSubSystem('trigger_timer_define')); -END IF; -END;; -DELIMITER ; - -drop table if exists accuml; -CREATE TABLE `accuml` ( - `TAG_NAME` varchar(64) NOT NULL COMMENT '标签名', - `DESCRIPTION` varchar(128) NOT NULL COMMENT '点描述', - `DEVICE` varchar(64) DEFAULT NULL COMMENT '点设备名称', - `SEQ_NO` decimal(10,0) DEFAULT NULL COMMENT '测点顺序号', - `LOCATION_ID` decimal(10,0) DEFAULT NULL COMMENT '所属车站', - `SUB_SYSTEM` decimal(10,0) DEFAULT NULL COMMENT '所属专业', - `RTU_TAG` varchar(64) DEFAULT NULL COMMENT 'RTU名', - `GRAY` decimal(22,6) DEFAULT NULL COMMENT '灰度', - `CONTRAST` decimal(22,6) DEFAULT NULL COMMENT '对比度', - `QCOLOR` decimal(10,0) DEFAULT NULL COMMENT '拓扑着色', - `RAW_VALUE` decimal(20,0) DEFAULT NULL COMMENT '原始值', - `VALUE` decimal(22,6) DEFAULT NULL COMMENT '实时值double', - `STATUS` decimal(10,0) DEFAULT NULL COMMENT '状态', - `LAST_UPDATE_TIME` decimal(20,0) DEFAULT NULL COMMENT '最后更新时间', - `LAST_CHANGE_TIME` decimal(20,0) DEFAULT NULL COMMENT '最后变化时间', - `UNIT_ID` decimal(10,0) DEFAULT NULL COMMENT '单位ID', - `SOUND_NAME1` varchar(32) DEFAULT NULL COMMENT '告警声音文件1', - `SOUND_NAME2` varchar(32) DEFAULT NULL COMMENT '告警声音文件2', - `SOUND_NAME3` varchar(32) DEFAULT NULL COMMENT '告警声音文件3', - `REGION_ID` decimal(10,0) DEFAULT NULL COMMENT '责任区', - `OPT_HANDOVER_GROUP` varchar(64) DEFAULT NULL COMMENT '操作权限移交组', - `IS_LIMIT` decimal(10,0) DEFAULT NULL COMMENT '是否越限告警', - `POINT_TYPE` decimal(10,0) DEFAULT NULL COMMENT '点类型', - `POINT_CLASS` decimal(10,0) DEFAULT NULL COMMENT '测点类别', - `POINT_PROPERTY` decimal(10,0) DEFAULT NULL COMMENT '点属性(采集|计算|虚拟点)', - `POINT_SORT` decimal(10,0) DEFAULT NULL COMMENT '测点种类', - `DEV_TYPE` decimal(10,0) DEFAULT NULL COMMENT '设备类型ID', - `POINT_TP_NAME` varchar(64) DEFAULT NULL COMMENT '点模板名', - `IS_SAMPLE` decimal(10,0) DEFAULT NULL COMMENT '是否变化存盘', - `IS_STATISTICS` decimal(10,0) DEFAULT NULL COMMENT '是否统计', - `SAMPLE_PERIOD` decimal(10,0) DEFAULT NULL COMMENT '采用周期(分钟)', - `SAMPLE_DEADBAND` decimal(22,6) DEFAULT NULL COMMENT '采样死区', - `CAMERA_TAG` varchar(64) DEFAULT NULL COMMENT '摄像头标签', - `PRESET_ID` varchar(64) DEFAULT NULL COMMENT '预置点ID', - PRIMARY KEY (`TAG_NAME`), - KEY `IN_ACCUML` (`DEVICE`,`RTU_TAG`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='累计量参数表'; - -drop trigger if exists TI_ACCUML; -DELIMITER ;; -create trigger TI_ACCUML AFTER INSERT on accuml for each ROW -BEGIN - /* - * 触发器命名规则 - * 命名规则,数据库表格:数据库名.表名,小写 - * 局部变量驼峰写法, - * 列名:大写加下划线 - */ - /* - * 生成Acc后, - * 1,自动生成Acc_limit_info的记录, - * 2,ANALOG_MAP_TO_FES中添加一条记录 - */ - - IF COALESCE(NEW.IS_LIMIT,0) <> 0 THEN - - IF COALESCE(NEW.POINT_TP_NAME,'') = '' THEN - INSERT INTO accuml_limit_info ( - TAG_NAME, LOCATION_ID, SUB_SYSTEM, LIMIT_TYPE, LIMIT_NUM, LIMIT_UP1, LIMIT_LOW1, LIMIT_UP2, LIMIT_LOW2, LIMIT_UP3, LIMIT_LOW3, CROSS_PERCENT, RETURN_PERCENT, CROSS_TIME, ALARM_PRIORITY, PIC_NAME, ALARM_DELAY_TIME, IS_WATER_ALM, IS_ACK_ON_RTN, DEL_ACT_ON_ACK, IS_NEVER_ALM_ON_RTN, POINT_TP_NAME) - VALUES ( - NEW.TAG_NAME, NEW.LOCATION_ID, NEW.SUB_SYSTEM, '1', '1', 0, 0, 0, 0, 0, 0, 5, 5, 0, 1, '', 5, 0, 1, 0, 0, NEW.POINT_TP_NAME - ); - ELSE - INSERT INTO accuml_limit_info ( - TAG_NAME, LOCATION_ID, SUB_SYSTEM, LIMIT_TYPE, LIMIT_NUM, LIMIT_UP1, LIMIT_LOW1, LIMIT_UP2, LIMIT_LOW2, LIMIT_UP3, LIMIT_LOW3, CROSS_PERCENT, RETURN_PERCENT, CROSS_TIME, ALARM_PRIORITY, PIC_NAME, ALARM_DELAY_TIME, IS_WATER_ALM, IS_ACK_ON_RTN, DEL_ACT_ON_ACK, IS_NEVER_ALM_ON_RTN, POINT_TP_NAME) SELECT - NEW.TAG_NAME, NEW.LOCATION_ID, NEW.SUB_SYSTEM, LIMIT_TYPE, LIMIT_NUM, LIMIT_UP1, LIMIT_LOW1, LIMIT_UP2, LIMIT_LOW2, LIMIT_UP3, LIMIT_LOW3, CROSS_PERCENT, RETURN_PERCENT, 0, ALARM_PRIORITY, '', ALARM_DELAY_TIME, IS_WATER_ALM, IS_ACK_ON_RTN, DEL_ACT_ON_ACK, IS_NEVER_ALM_ON_RTN, NEW.POINT_TP_NAME - FROM accuml_temp_define WHERE TAG_NAME=NEW.POINT_TP_NAME ; - END IF; - - END IF; - IF COALESCE(NEW.IS_SAMPLE,0) <> 0 THEN - - INSERT INTO sample_define ( - TAG_NAME, DESCRIPTION, LOCATION_ID, SUB_SYSTEM, DEVICE_TAG, POINT_TYPE, SAMPLE_PERIOD, SAMPLE_DEADBAND, VALUE, STATUS, UPDATE_TIME) VALUES - ( NEW.TAG_NAME, NEW.DESCRIPTION, NEW.LOCATION_ID, NEW.SUB_SYSTEM, NEW.DEVICE, NEW.POINT_TYPE, NEW.SAMPLE_PERIOD,NEW.SAMPLE_DEADBAND, 0, 0, 0 ); - - END IF; - IF COALESCE(NEW.POINT_TP_NAME,'') = '' THEN - INSERT INTO accuml_map_to_fes ( - KEY_ID_TAG, LOCATION_ID, SUB_SYSTEM, RTU_TAG, DOT_NO, BASE, COEFF, RANGE_UP, RANGE_LOW, IS_FILTER, PERCENT, DEV_TYPE, POINT_TP_NAME, DESCRIPTION) - VALUES ( - concat('accuml' , '.' , NEW.TAG_NAME), NEW.LOCATION_ID, NEW.SUB_SYSTEM, NEW.RTU_TAG , '-1', '0', '1',99999999999999.9, 0, 1, 20, NEW.DEV_TYPE,NEW.POINT_TP_NAME,NEW.DESCRIPTION - ); - ELSE - INSERT INTO accuml_map_to_fes ( - KEY_ID_TAG, LOCATION_ID, SUB_SYSTEM, RTU_TAG, DOT_NO, BASE, COEFF, RANGE_UP, RANGE_LOW, IS_FILTER, PERCENT, DEV_TYPE, POINT_TP_NAME, DESCRIPTION) - SELECT - concat('accuml' , '.' , NEW.TAG_NAME), NEW.LOCATION_ID, NEW.SUB_SYSTEM, NEW.RTU_TAG , '-1', '0', '1', RANGE_UP,RANGE_LOW, IS_FILTER, PERCENT, NEW.DEV_TYPE,NEW.POINT_TP_NAME,NEW.DESCRIPTION - FROM accuml_temp_define WHERE TAG_NAME=NEW.POINT_TP_NAME; - END IF; -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'accuml', 'tag_name', '', NEW.TAG_NAME, getTableSubSystem('accuml')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TU_ACCUML; -DELIMITER ;; -create trigger TU_ACCUML AFTER UPDATE on accuml for each ROW -BEGIN -#由limit变不limit -IF COALESCE(OLD.IS_LIMIT,0) != 0 AND COALESCE(NEW.IS_LIMIT,0) = 0 -THEN -BEGIN - DELETE FROM accuml_limit_info WHERE TAG_NAME=OLD.TAG_NAME; -END; -#由不limit变limit -ELSEIF COALESCE(OLD.IS_LIMIT,0) = 0 AND COALESCE(NEW.IS_LIMIT,0) != 0 -THEN -BEGIN - - IF COALESCE(NEW.POINT_TP_NAME,'') = '' THEN - INSERT INTO accuml_limit_info ( - TAG_NAME, LOCATION_ID, SUB_SYSTEM, LIMIT_TYPE, LIMIT_NUM, LIMIT_UP1, LIMIT_LOW1, LIMIT_UP2, LIMIT_LOW2, LIMIT_UP3, LIMIT_LOW3, CROSS_PERCENT, RETURN_PERCENT, CROSS_TIME, ALARM_PRIORITY, PIC_NAME, ALARM_DELAY_TIME, IS_WATER_ALM, IS_ACK_ON_RTN, DEL_ACT_ON_ACK, IS_NEVER_ALM_ON_RTN, POINT_TP_NAME) - VALUES ( - NEW.TAG_NAME, NEW.LOCATION_ID, NEW.SUB_SYSTEM, '1', '1', 0, 0, 0, 0, 0, 0, 5, 5, 0, 1, '', 5, 0, 1, 0, 0, NEW.POINT_TP_NAME - ); - ELSE - INSERT INTO accuml_limit_info ( - TAG_NAME, LOCATION_ID, SUB_SYSTEM, LIMIT_TYPE, LIMIT_NUM, LIMIT_UP1, LIMIT_LOW1, LIMIT_UP2, LIMIT_LOW2, LIMIT_UP3, LIMIT_LOW3, CROSS_PERCENT, RETURN_PERCENT, CROSS_TIME, ALARM_PRIORITY, PIC_NAME, ALARM_DELAY_TIME, IS_WATER_ALM, IS_ACK_ON_RTN, DEL_ACT_ON_ACK, IS_NEVER_ALM_ON_RTN, POINT_TP_NAME) SELECT - NEW.TAG_NAME, NEW.LOCATION_ID, NEW.SUB_SYSTEM, LIMIT_TYPE, LIMIT_NUM, LIMIT_UP1, LIMIT_LOW1, LIMIT_UP2, LIMIT_LOW2, LIMIT_UP3, LIMIT_LOW3, CROSS_PERCENT, RETURN_PERCENT, 0, ALARM_PRIORITY, '', ALARM_DELAY_TIME, IS_WATER_ALM, IS_ACK_ON_RTN, DEL_ACT_ON_ACK, IS_NEVER_ALM_ON_RTN, NEW.POINT_TP_NAME - FROM accuml_temp_define WHERE TAG_NAME=NEW.POINT_TP_NAME ; - END IF; - -END; -#更新limit表 -ELSE -BEGIN - IF NEW.TAG_NAME <> OLD.TAG_NAME OR NEW.LOCATION_ID <> OLD.LOCATION_ID OR NEW.SUB_SYSTEM<>OLD.SUB_SYSTEM OR NEW.POINT_TP_NAME <> OLD.POINT_TP_NAME - THEN - BEGIN - UPDATE accuml_limit_info - SET - accuml_limit_info.TAG_NAME = NEW.TAG_NAME, - accuml_limit_info.LOCATION_ID = NEW.LOCATION_ID, - accuml_limit_info.SUB_SYSTEM = NEW.SUB_SYSTEM, - accuml_limit_info.POINT_TP_NAME = NEW.POINT_TP_NAME - WHERE accuml_limit_info.TAG_NAME = OLD.TAG_NAME; - END; - END IF; -END; -END IF; -#sample变成不采样 -IF COALESCE(OLD.IS_SAMPLE,0) != 0 AND COALESCE(NEW.IS_SAMPLE,0) = 0 -THEN -BEGIN - DELETE FROM sample_define WHERE TAG_NAME= OLD.TAG_NAME ; -END; -#由不采样变成采样 -ELSEIF COALESCE(OLD.IS_SAMPLE,0) = 0 AND COALESCE(NEW.IS_SAMPLE,0) != 0 -THEN -BEGIN - INSERT INTO sample_define ( - TAG_NAME, DESCRIPTION, LOCATION_ID, SUB_SYSTEM, DEVICE_TAG, POINT_TYPE, SAMPLE_PERIOD, SAMPLE_DEADBAND, VALUE, STATUS, UPDATE_TIME) VALUES - (NEW.TAG_NAME, NEW.DESCRIPTION, NEW.LOCATION_ID, NEW.SUB_SYSTEM, NEW.DEVICE, NEW.POINT_TYPE, NEW.SAMPLE_PERIOD,NEW.SAMPLE_DEADBAND, 0, 0, 0 ); -END; -#更新采样表 -ELSE -BEGIN - IF NEW.TAG_NAME<>OLD.TAG_NAME OR NEW.DESCRIPTION<>OLD.DESCRIPTION OR NEW.LOCATION_ID<>OLD.LOCATION_ID OR NEW.SUB_SYSTEM<>OLD.SUB_SYSTEM - OR NEW.DEVICE<>OLD.DEVICE OR NEW.POINT_TYPE<>OLD.POINT_TYPE OR NEW.SAMPLE_PERIOD<>OLD.SAMPLE_PERIOD OR NEW.SAMPLE_DEADBAND<>OLD.SAMPLE_DEADBAND - THEN - BEGIN - - UPDATE sample_define - SET - sample_define.TAG_NAME = NEW.TAG_NAME , - sample_define.DESCRIPTION = NEW.DESCRIPTION , - sample_define.LOCATION_ID = NEW.LOCATION_ID , - sample_define.SUB_SYSTEM = NEW.SUB_SYSTEM , - sample_define.DEVICE_TAG = NEW.DEVICE, - sample_define.POINT_TYPE = NEW.POINT_TYPE , - sample_define.SAMPLE_PERIOD = NEW.SAMPLE_PERIOD , - sample_define.SAMPLE_DEADBAND = NEW.SAMPLE_DEADBAND - WHERE TAG_NAME= OLD.TAG_NAME; - END; - END IF; -END; -END IF; -IF NEW.TAG_NAME <> OLD.TAG_NAME OR NEW.LOCATION_ID <> OLD.LOCATION_ID OR NEW.SUB_SYSTEM <> OLD.SUB_SYSTEM OR NEW.RTU_TAG <> OLD.RTU_TAG -OR NEW.DEV_TYPE <> OLD.DEV_TYPE OR NEW.POINT_TP_NAME <> OLD.POINT_TP_NAME OR NEW.DESCRIPTION <> OLD.DESCRIPTION -THEN - BEGIN - - UPDATE accuml_map_to_fes SET - KEY_ID_TAG = concat('accuml' , '.' , NEW.TAG_NAME), - LOCATION_ID =NEW.LOCATION_ID, - SUB_SYSTEM = NEW.SUB_SYSTEM, - RTU_TAG = NEW.RTU_TAG, - DEV_TYPE = NEW.DEV_TYPE, - POINT_TP_NAME = NEW.POINT_TP_NAME, - DESCRIPTION = NEW.DESCRIPTION - WHERE KEY_ID_TAG=concat('accuml' , '.' , OLD.TAG_NAME) ; - END; -END IF; -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'accuml', 'tag_name', OLD.TAG_NAME, NEW.TAG_NAME, getTableSubSystem('accuml')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TD_ACCUML; -DELIMITER ;; -create trigger TD_ACCUML BEFORE DELETE on accuml for each ROW -BEGIN - - - -IF COALESCE(OLD.IS_LIMIT,0) <> 0 -THEN -DELETE FROM accuml_limit_info WHERE TAG_NAME=OLD.TAG_NAME ; -END IF; -IF COALESCE(OLD.IS_SAMPLE,0) <> 0 -THEN -DELETE FROM sample_define WHERE TAG_NAME= OLD.TAG_NAME ; -END IF; -DELETE FROM accuml_map_to_fes WHERE KEY_ID_TAG=concat('accuml' , '.' , OLD.TAG_NAME); -END;; -DELIMITER ; - -drop trigger if exists TDA_ACCUML; -DELIMITER ;; -create trigger TDA_ACCUML AFTER DELETE on accuml for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'accuml', 'tag_name', OLD.TAG_NAME, '', getTableSubSystem('accuml')); -END IF; -END;; -DELIMITER ; - -drop table if exists acs_device_info; -CREATE TABLE `acs_device_info` ( - `TAG_NAME` varchar(64) NOT NULL COMMENT '设备唯一标识', - `IP_ADDR` varchar(32) NOT NULL COMMENT '设备IP地址', - `MNG_PORT` decimal(10,0) NOT NULL COMMENT '远程管理端口号', - `MNG_USER` varchar(64) NOT NULL COMMENT '管理用户名', - `MNG_PASSWD` varchar(32) NOT NULL COMMENT '用户名对应的密码', - `LOCATION_ID` decimal(10,0) NOT NULL COMMENT '设备所属厂站', - `DESCRIPTION` varchar(64) DEFAULT NULL COMMENT '描述,由用户输入', - PRIMARY KEY (`TAG_NAME`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='AccessControlSystem设备信息表'; - -drop trigger if exists TIA_ACS_DEVICE_INFO; -DELIMITER ;; -create trigger TIA_ACS_DEVICE_INFO AFTER INSERT on acs_device_info for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'acs_device_info', 'tag_name', '', NEW.TAG_NAME, getTableSubSystem('acs_device_info')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_ACS_DEVICE_INFO; -DELIMITER ;; -create trigger TUA_ACS_DEVICE_INFO AFTER UPDATE on acs_device_info for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'acs_device_info', 'tag_name', OLD.TAG_NAME, NEW.TAG_NAME, getTableSubSystem('acs_device_info')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_ACS_DEVICE_INFO; -DELIMITER ;; -create trigger TDA_ACS_DEVICE_INFO AFTER DELETE on acs_device_info for each ROW -BEGIN -delete from acs_device_node_map where ACS_DEVICE_TAG = old.TAG_NAME; -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'acs_device_info', 'tag_name', OLD.TAG_NAME, '', getTableSubSystem('acs_device_info')); -END IF; -END;; -DELIMITER ; - -drop table if exists acs_device_node_map; -CREATE TABLE `acs_device_node_map` ( - `NODE_NAME` varchar(64) NOT NULL COMMENT '机器节点名称,关联sys_model_node_info中的NODE_NAME', - `ACS_DEVICE_TAG` varchar(64) NOT NULL COMMENT 'ACS设备唯一标识,关联ACS_DEVICE_INFO中的TAG_NAME', - PRIMARY KEY (`NODE_NAME`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='机器节点与ACS设备的对应关系'; - -drop trigger if exists TIA_ACS_DEVICE_NODE_MAP; -DELIMITER ;; -create trigger TIA_ACS_DEVICE_NODE_MAP AFTER INSERT on acs_device_node_map for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'acs_device_node_map', 'NODE_NAME', '', NEW.NODE_NAME, getTableSubSystem('acs_device_node_map')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_ACS_DEVICE_NODE_MAP; -DELIMITER ;; -create trigger TUA_ACS_DEVICE_NODE_MAP AFTER UPDATE on acs_device_node_map for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'acs_device_node_map', 'NODE_NAME', OLD.NODE_NAME, NEW.NODE_NAME, getTableSubSystem('acs_device_node_map')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_ACS_DEVICE_NODE_MAP; -DELIMITER ;; -create trigger TDA_ACS_DEVICE_NODE_MAP AFTER DELETE on acs_device_node_map for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'acs_device_node_map', 'NODE_NAME', OLD.NODE_NAME, '', getTableSubSystem('acs_device_node_map')); -END IF; -END;; -DELIMITER ; - -drop table if exists alarm_action_define; -CREATE TABLE `alarm_action_define` ( - `ACTION_ID` decimal(10,0) NOT NULL COMMENT '动作ID', - `ACTION_NAME` varchar(64) NOT NULL COMMENT '动作名称', - `MACRO_NAME` varchar(64) DEFAULT NULL COMMENT '宏定义名称,与代码中宏定义对应,便于在代码中定位', - PRIMARY KEY (`ACTION_ID`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='告警动作定义表'; - -drop trigger if exists TIA_ALARM_ACTION_DEFINE; -DELIMITER ;; -create trigger TIA_ALARM_ACTION_DEFINE AFTER INSERT on alarm_action_define for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'alarm_action_define', 'action_id', '', NEW.ACTION_ID, getTableSubSystem('alarm_action_define')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_ALARM_ACTION_DEFINE; -DELIMITER ;; -create trigger TUA_ALARM_ACTION_DEFINE AFTER UPDATE on alarm_action_define for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'alarm_action_define', 'action_id', OLD.ACTION_ID, NEW.ACTION_ID, getTableSubSystem('alarm_action_define')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_ALARM_ACTION_DEFINE; -DELIMITER ;; -create trigger TDA_ALARM_ACTION_DEFINE AFTER DELETE on alarm_action_define for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'alarm_action_define', 'action_id', OLD.ACTION_ID, '', getTableSubSystem('alarm_action_define')); -END IF; -END;; -DELIMITER ; - -drop table if exists alarm_color; -CREATE TABLE `alarm_color` ( - `ID` varchar(8) DEFAULT NULL COMMENT '告警颜色ID', - `COLOR` varchar(16) DEFAULT NULL COMMENT '告警颜色值' -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='告警颜色'; - -drop table if exists alarm_keyword_define; -CREATE TABLE `alarm_keyword_define` ( - `KEYWORD_ID` decimal(10,0) NOT NULL COMMENT '关键字ID,与告警消息中的关键字ID对应', - `KEYWORD_NAME` varchar(64) NOT NULL COMMENT '关键字名称,在告警格式文本中匹配此文本进行替换', - `MACRO_NAME` varchar(64) DEFAULT NULL COMMENT '宏定义名称,与代码中宏定义对应,便于在代码中定位', - PRIMARY KEY (`KEYWORD_ID`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='告警关键字定义表'; - -drop trigger if exists TIA_ALARM_KEYWORD_DEFINE; -DELIMITER ;; -create trigger TIA_ALARM_KEYWORD_DEFINE AFTER INSERT on alarm_keyword_define for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'alarm_keyword_define', 'keyword_id', '', NEW.KEYWORD_ID, getTableSubSystem('alarm_keyword_define')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_ALARM_KEYWORD_DEFINE; -DELIMITER ;; -create trigger TUA_ALARM_KEYWORD_DEFINE AFTER UPDATE on alarm_keyword_define for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'alarm_keyword_define', 'keyword_id', OLD.KEYWORD_ID, NEW.KEYWORD_ID, getTableSubSystem('alarm_keyword_define')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_ALARM_KEYWORD_DEFINE; -DELIMITER ;; -create trigger TDA_ALARM_KEYWORD_DEFINE AFTER DELETE on alarm_keyword_define for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'alarm_keyword_define', 'keyword_id', OLD.KEYWORD_ID, '', getTableSubSystem('alarm_keyword_define')); -END IF; -END;; -DELIMITER ; - -drop table if exists alarm_level_define; -CREATE TABLE `alarm_level_define` ( - `PRIORITY_ID` decimal(10,0) NOT NULL COMMENT '优先级ID', - `PRIORITY_NAME` varchar(64) NOT NULL COMMENT '优先级名称', - `ALARM_ACTIONS` decimal(10,0) DEFAULT NULL COMMENT '包含的告警动作,取位', - `PRIORITY_ORDER` decimal(10,0) DEFAULT NULL COMMENT '优先级排序', - `SOUND_FILE_NAME` varchar(64) DEFAULT NULL COMMENT '告警语音文件名', - `IF_EVENT` decimal(10,0) DEFAULT NULL COMMENT '是否为事件', - PRIMARY KEY (`PRIORITY_ID`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='告警等级(优先级)定义表'; - -drop trigger if exists TIA_ALARM_LEVEL_DEFINE; -DELIMITER ;; -create trigger TIA_ALARM_LEVEL_DEFINE AFTER INSERT on alarm_level_define for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'alarm_level_define', 'priority_id', '', NEW.PRIORITY_ID, getTableSubSystem('alarm_level_define')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_ALARM_LEVEL_DEFINE; -DELIMITER ;; -create trigger TUA_ALARM_LEVEL_DEFINE AFTER UPDATE on alarm_level_define for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'alarm_level_define', 'priority_id', OLD.PRIORITY_ID, NEW.PRIORITY_ID, getTableSubSystem('alarm_level_define')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_ALARM_LEVEL_DEFINE; -DELIMITER ;; -create trigger TDA_ALARM_LEVEL_DEFINE AFTER DELETE on alarm_level_define for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'alarm_level_define', 'priority_id', OLD.PRIORITY_ID, '', getTableSubSystem('alarm_level_define')); -END IF; -END;; -DELIMITER ; - -drop table if exists alarm_level_sound_def; -CREATE TABLE `alarm_level_sound_def` ( - `PRIORITY_ID` decimal(10,0) NOT NULL COMMENT '优先级ID', - `REGION_ID` decimal(10,0) NOT NULL COMMENT '责任区', - `SOUND_FILE_NAME` varchar(64) DEFAULT NULL COMMENT '语音文件名', - PRIMARY KEY (`PRIORITY_ID`,`REGION_ID`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='告警等级声音定义表'; - -drop trigger if exists TIA_ALARM_LEVEL_SOUND_DEF; -DELIMITER ;; -create trigger TIA_ALARM_LEVEL_SOUND_DEF AFTER INSERT on alarm_level_sound_def for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'alarm_level_sound_def', 'priority_id,region_id', '', concat(NEW.PRIORITY_ID,',',NEW.REGION_ID), getTableSubSystem('alarm_level_sound_def')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_ALARM_LEVEL_SOUND_DEF; -DELIMITER ;; -create trigger TUA_ALARM_LEVEL_SOUND_DEF AFTER UPDATE on alarm_level_sound_def for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'alarm_level_sound_def', 'priority_id,region_id', concat(OLD.PRIORITY_ID,',',OLD.REGION_ID), concat(NEW.PRIORITY_ID,',',NEW.REGION_ID), getTableSubSystem('alarm_level_sound_def')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_ALARM_LEVEL_SOUND_DEF; -DELIMITER ;; -create trigger TDA_ALARM_LEVEL_SOUND_DEF AFTER DELETE on alarm_level_sound_def for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'alarm_level_sound_def', 'priority_id,region_id', concat(OLD.PRIORITY_ID,',',OLD.REGION_ID), '', getTableSubSystem('alarm_level_sound_def')); -END IF; -END;; -DELIMITER ; - -drop table if exists alarm_manner_define; -CREATE TABLE `alarm_manner_define` ( - `MANNER_ID` decimal(10,0) NOT NULL COMMENT '告警类型', - `MANNER_NAME` varchar(64) NOT NULL, - `ALARM_PRIORITY` decimal(10,0) DEFAULT NULL COMMENT '告警优先级', - `IF_WATER_ALM` decimal(10,0) DEFAULT NULL, - `IF_ACK_ON_RTN` decimal(10,0) DEFAULT NULL COMMENT '是否返回后自动确认', - `DEL_ACT_ON_ACK` decimal(10,0) DEFAULT NULL COMMENT '确认后删除动作', - `IF_NEVER_ALM_ON_RTN` decimal(10,0) DEFAULT NULL COMMENT '是否返回不上窗', - PRIMARY KEY (`MANNER_ID`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='告警方式定义表'; - -drop trigger if exists TIA_ALARM_MANNER_DEFINE; -DELIMITER ;; -create trigger TIA_ALARM_MANNER_DEFINE AFTER INSERT on alarm_manner_define for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'alarm_manner_define', 'manner_id', '', NEW.MANNER_ID, getTableSubSystem('alarm_manner_define')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_ALARM_MANNER_DEFINE; -DELIMITER ;; -create trigger TUA_ALARM_MANNER_DEFINE AFTER UPDATE on alarm_manner_define for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'alarm_manner_define', 'manner_id', OLD.MANNER_ID, NEW.MANNER_ID, getTableSubSystem('alarm_manner_define')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_ALARM_MANNER_DEFINE; -DELIMITER ;; -create trigger TDA_ALARM_MANNER_DEFINE AFTER DELETE on alarm_manner_define for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'alarm_manner_define', 'manner_id', OLD.MANNER_ID, '', getTableSubSystem('alarm_manner_define')); -END IF; -END;; -DELIMITER ; - -drop table if exists alarm_status_define; -CREATE TABLE `alarm_status_define` ( - `ALARM_TYPE` decimal(10,0) NOT NULL COMMENT '所属告警类型,与ALAMR_TYPE_DEFINE表对应', - `STATUS_VALUE` decimal(10,0) NOT NULL COMMENT '状态值,与告警消息中的status值对应,与代码中宏定义值对应', - `ALARM_MANNER` decimal(10,0) DEFAULT NULL, - `DISPLAY_NAME` varchar(64) NOT NULL COMMENT '显示名称', - `MACRO_NAME` varchar(64) DEFAULT NULL COMMENT '宏定义名称,与代码中宏定义对应,便于在代码中定位', - `ALARM_FORMAT` varchar(256) NOT NULL COMMENT '告警格式,其中的告警关键字会被告警服务替换', - PRIMARY KEY (`ALARM_TYPE`,`STATUS_VALUE`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='告警状态定义表'; - -drop trigger if exists TIA_ALARM_STATUS_DEFINE; -DELIMITER ;; -create trigger TIA_ALARM_STATUS_DEFINE AFTER INSERT on alarm_status_define for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'alarm_status_define', 'alarm_type,status_value', '', concat(NEW.ALARM_TYPE,',',NEW.STATUS_VALUE), getTableSubSystem('alarm_status_define')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_ALARM_STATUS_DEFINE; -DELIMITER ;; -create trigger TUA_ALARM_STATUS_DEFINE AFTER UPDATE on alarm_status_define for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'alarm_status_define', 'alarm_type,status_value', concat(OLD.ALARM_TYPE,',',OLD.STATUS_VALUE), concat(NEW.ALARM_TYPE,',',NEW.STATUS_VALUE), getTableSubSystem('alarm_status_define')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_ALARM_STATUS_DEFINE; -DELIMITER ;; -create trigger TDA_ALARM_STATUS_DEFINE AFTER DELETE on alarm_status_define for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'alarm_status_define', 'alarm_type,status_value', concat(OLD.ALARM_TYPE,',',OLD.STATUS_VALUE), '', getTableSubSystem('alarm_status_define')); -END IF; -END;; -DELIMITER ; - -drop table if exists alarm_status_dig_set; -CREATE TABLE `alarm_status_dig_set` ( - `POINT_TYPE` decimal(10,0) NOT NULL COMMENT '测点分类', - `POINT_SORT` decimal(10,0) NOT NULL COMMENT '测点分类', - `ALM_STATUS_CHANGE` decimal(10,0) DEFAULT NULL COMMENT '测点变位告警状态', - `ALM_STATUS_SOE` decimal(10,0) DEFAULT NULL COMMENT '测点SOE告警状态', - PRIMARY KEY (`POINT_TYPE`,`POINT_SORT`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='数字量默认告警状态设置'; - -drop table if exists alarm_type_define; -CREATE TABLE `alarm_type_define` ( - `TYPE_ID` decimal(10,0) NOT NULL COMMENT '类型ID,与代码中宏定义值对应', - `TYPE_NAME` varchar(64) NOT NULL COMMENT '类型名称', - `ALARM_SOUND_SOURCE` decimal(10,0) DEFAULT NULL COMMENT '语音告警来源', - `MACRO_NAME` varchar(64) DEFAULT NULL COMMENT '宏定义名称,与代码中宏定义对应,便于在代码中定位', - PRIMARY KEY (`TYPE_ID`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='告警类型定义表'; - -drop trigger if exists TIA_ALARM_TYPE_DEFINE; -DELIMITER ;; -create trigger TIA_ALARM_TYPE_DEFINE AFTER INSERT on alarm_type_define for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'alarm_type_define', 'type_id', '', NEW.TYPE_ID, getTableSubSystem('alarm_type_define')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_ALARM_TYPE_DEFINE; -DELIMITER ;; -create trigger TUA_ALARM_TYPE_DEFINE AFTER UPDATE on alarm_type_define for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'alarm_type_define', 'type_id', OLD.TYPE_ID, NEW.TYPE_ID, getTableSubSystem('alarm_type_define')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_ALARM_TYPE_DEFINE; -DELIMITER ;; -create trigger TDA_ALARM_TYPE_DEFINE AFTER DELETE on alarm_type_define for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'alarm_type_define', 'type_id', OLD.TYPE_ID, '', getTableSubSystem('alarm_type_define')); -END IF; -END;; -DELIMITER ; - -drop table if exists analog; -CREATE TABLE `analog` ( - `TAG_NAME` varchar(64) NOT NULL COMMENT '标签名', - `DESCRIPTION` varchar(128) NOT NULL COMMENT '点描述', - `RTU_TAG` varchar(64) DEFAULT NULL COMMENT 'RTU标签', - `DEV_TYPE` decimal(10,0) DEFAULT NULL COMMENT '设备类型ID', - `DEVICE` varchar(64) DEFAULT NULL COMMENT '点设备名称', - `SEQ_NO` decimal(10,0) DEFAULT NULL COMMENT '测点顺序号', - `LOCATION_ID` decimal(10,0) DEFAULT NULL COMMENT '所属车站', - `SUB_SYSTEM` decimal(10,0) DEFAULT NULL COMMENT '所属专业', - `IS_CONTROL` decimal(10,0) DEFAULT NULL COMMENT '是否遥控', - `GRAY` decimal(22,6) DEFAULT NULL COMMENT '灰度', - `CONTRAST` decimal(22,6) DEFAULT NULL COMMENT '对比度', - `QCOLOR` decimal(10,0) DEFAULT NULL COMMENT '拓扑着色', - `VALUE` decimal(22,6) DEFAULT NULL COMMENT '值', - `STATUS` decimal(10,0) DEFAULT NULL COMMENT '状态', - `LAST_UPDATE_TIME` decimal(20,0) DEFAULT NULL COMMENT '最后更新时间', - `LAST_CHANGE_TIME` decimal(20,0) DEFAULT NULL COMMENT '最后变化时间', - `UNIT_ID` decimal(10,0) DEFAULT NULL COMMENT '单位ID', - `SOUND_NAME1` varchar(32) DEFAULT NULL COMMENT '告警声音文件1', - `SOUND_NAME2` varchar(32) DEFAULT NULL COMMENT '告警声音文件2', - `SOUND_NAME3` varchar(32) DEFAULT NULL COMMENT '告警声音文件3', - `REGION_ID` decimal(10,0) DEFAULT NULL COMMENT '责任区', - `OPT_HANDOVER_GROUP` varchar(64) DEFAULT NULL COMMENT '操作权限移交组', - `IS_LIMIT` decimal(10,0) DEFAULT NULL COMMENT '是否越限告警', - `POINT_TYPE` decimal(10,0) DEFAULT NULL COMMENT '点类型', - `POINT_CLASS` decimal(10,0) DEFAULT NULL COMMENT '点分类 ', - `POINT_PROPERTY` decimal(10,0) DEFAULT NULL COMMENT '点属性', - `POINT_SORT` decimal(10,0) DEFAULT NULL COMMENT '测点种类 ', - `POINT_TP_NAME` varchar(64) DEFAULT NULL COMMENT '点模板名', - `IS_SAMPLE` decimal(10,0) DEFAULT NULL COMMENT '是否变化存盘', - `IS_STATISTICS` decimal(10,0) DEFAULT NULL, - `SAMPLE_PERIOD` decimal(10,0) DEFAULT NULL COMMENT '采用周期(分钟)', - `SAMPLE_DEADBAND` decimal(22,6) DEFAULT NULL COMMENT '采样死区', - `CAMERA_TAG` varchar(64) DEFAULT NULL COMMENT '摄像头标签', - `PRESET_ID` varchar(64) DEFAULT NULL COMMENT '预置点ID', - PRIMARY KEY (`TAG_NAME`), - KEY `IN_ANALOG` (`RTU_TAG`,`DEVICE`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='模拟量参数表'; - -drop trigger if exists TI_ANALOG; -DELIMITER ;; -create trigger TI_ANALOG AFTER INSERT on analog for each ROW -BEGIN - - -IF COALESCE(NEW.IS_CONTROL,0) <> 0 -THEN - IF COALESCE(NEW.POINT_TP_NAME,'') = '' THEN - INSERT INTO analog_control( - TAG_NAME, LOCATION_ID, SUB_SYSTEM, CTRL_TYPE, IS_TAGT_STATE, CTRL_TIMEOUT, RESV_TIMEOUT, BASE, COEFF, RANGE_UP, RANGE_LOW, CTRL_TOLERANCE, RTU_TAG, OFFSET_NO, CTRL_ALIAS, POINT_TP_NAME) - values ( - NEW.TAG_NAME, NEW.LOCATION_ID, NEW.SUB_SYSTEM,0, 1, 30, 30, 0, 1, 9999999.9, 0, 0.01, NEW.RTU_TAG, '-1', '', NEW.POINT_TP_NAME - ); - ELSE - INSERT INTO analog_control( - TAG_NAME, LOCATION_ID, SUB_SYSTEM, CTRL_TYPE, IS_TAGT_STATE, CTRL_TIMEOUT, RESV_TIMEOUT, BASE, COEFF, RANGE_UP, RANGE_LOW, CTRL_TOLERANCE, RTU_TAG, OFFSET_NO, CTRL_ALIAS, POINT_TP_NAME) SELECT - NEW.TAG_NAME, NEW.LOCATION_ID, NEW.SUB_SYSTEM,CTRL_TYPE, IS_TAGT_STATE, CTRL_TIMEOUT, RESV_TIMEOUT, BASE, COEFF, RANGE_UP, RANGE_LOW, CTRL_TOLERANCE, NEW.RTU_TAG, '-1', '', NEW.POINT_TP_NAME - FROM analog_temp_define WHERE TAG_NAME=NEW.POINT_TP_NAME; - END IF; -END IF; -IF COALESCE(NEW.IS_LIMIT,0) <> 0 -THEN - - IF COALESCE(NEW.POINT_TP_NAME,'') = '' THEN - INSERT INTO analog_limit_info ( - TAG_NAME, LOCATION_ID, SUB_SYSTEM, LIMIT_TYPE, LIMIT_NUM, LIMIT_UP1, LIMIT_LOW1, LIMIT_UP2, LIMIT_LOW2, LIMIT_UP3, LIMIT_LOW3, CROSS_PERCENT, RETURN_PERCENT, CROSS_TIME, ALARM_PRIORITY, PIC_NAME, ALARM_DELAY_TIME, IS_WATER_ALM, IS_ACK_ON_RTN, DEL_ACT_ON_ACK, IS_NEVER_ALM_ON_RTN, POINT_TP_NAME) - VALUES ( - NEW.TAG_NAME, NEW.LOCATION_ID, NEW.SUB_SYSTEM, 1, 0, 0, 0, 0, 0, 0, 0, 5, 5, 0, 1, '', 5, 0, 1, 0, 0, NEW.POINT_TP_NAME - ); - ELSE - INSERT INTO analog_limit_info ( - TAG_NAME, LOCATION_ID, SUB_SYSTEM, LIMIT_TYPE, LIMIT_NUM, LIMIT_UP1, LIMIT_LOW1, LIMIT_UP2, LIMIT_LOW2, LIMIT_UP3, LIMIT_LOW3, CROSS_PERCENT, RETURN_PERCENT, CROSS_TIME, ALARM_PRIORITY, PIC_NAME, ALARM_DELAY_TIME, IS_WATER_ALM, IS_ACK_ON_RTN, DEL_ACT_ON_ACK, IS_NEVER_ALM_ON_RTN, POINT_TP_NAME) SELECT - NEW.TAG_NAME, NEW.LOCATION_ID, NEW.SUB_SYSTEM, LIMIT_TYPE, LIMIT_NUM, LIMIT_UP1, LIMIT_LOW1, LIMIT_UP2, LIMIT_LOW2, LIMIT_UP3, LIMIT_LOW3, CROSS_PERCENT, RETURN_PERCENT, 0, ALARM_PRIORITY, '', ALARM_DELAY_TIME, IS_WATER_ALM, IS_ACK_ON_RTN, DEL_ACT_ON_ACK, IS_NEVER_ALM_ON_RTN, NEW.POINT_TP_NAME - FROM analog_temp_define WHERE TAG_NAME=NEW.POINT_TP_NAME ; - END IF; -END IF; -IF COALESCE(NEW.IS_SAMPLE,0) <> 0 -THEN -INSERT INTO sample_define ( -TAG_NAME, DESCRIPTION, LOCATION_ID, SUB_SYSTEM, DEVICE_TAG, POINT_TYPE, SAMPLE_PERIOD, SAMPLE_DEADBAND, VALUE, STATUS, UPDATE_TIME) VALUES -( NEW.TAG_NAME, NEW.DESCRIPTION, NEW.LOCATION_ID, NEW.SUB_SYSTEM, NEW.DEVICE, NEW.POINT_TYPE, NEW.SAMPLE_PERIOD,NEW.SAMPLE_DEADBAND, 0, 0, 0 ); -END IF; -IF COALESCE(NEW.POINT_TP_NAME,'') = '' THEN - INSERT INTO analog_map_to_fes ( - KEY_ID_TAG, LOCATION_ID, SUB_SYSTEM, DEV_TYPE, POINT_TP_NAME, RTU_TAG, DOT_NO, IS_FILTER, PERCENT, IS_VALID, DEADBAND, ZEROBAND, BASE, COEFF, RANGE_UP, RANGE_LOW, DESCRIPTION) - VALUES ( - concat('analog' , '.' , NEW.TAG_NAME), NEW.LOCATION_ID, NEW.SUB_SYSTEM, NEW.DEV_TYPE, NEW.POINT_TP_NAME, NEW.RTU_TAG, '-1', 1, 20, 1, 0.01, 0.0001, 0, 1, 9999999.9, 0, NEW.DESCRIPTION - ); -ELSE - INSERT INTO analog_map_to_fes ( - KEY_ID_TAG, LOCATION_ID, SUB_SYSTEM, DEV_TYPE, POINT_TP_NAME, RTU_TAG, DOT_NO, IS_FILTER, PERCENT, IS_VALID, DEADBAND, ZEROBAND, BASE, COEFF, RANGE_UP, RANGE_LOW, DESCRIPTION) - SELECT - concat('analog' , '.' , NEW.TAG_NAME), NEW.LOCATION_ID, NEW.SUB_SYSTEM, NEW.DEV_TYPE, NEW.POINT_TP_NAME, NEW.RTU_TAG, '-1', IS_FILTER, PERCENT, IS_VALID, DEADBAND, ZEROBAND, BASE, COEFF, RANGE_UP, RANGE_LOW, NEW.DESCRIPTION - FROM analog_temp_define WHERE TAG_NAME=NEW.POINT_TP_NAME; -END IF; -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'analog', 'tag_name', '', NEW.TAG_NAME, getTableSubSystem('analog')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TU_ANALOG; -DELIMITER ;; -create trigger TU_ANALOG AFTER UPDATE on analog for each ROW -BEGIN -IF COALESCE(OLD.IS_CONTROL,0) != 0 AND COALESCE(NEW.IS_CONTROL,0) = 0 -THEN -BEGIN - DELETE FROM analog_control WHERE TAG_NAME=OLD.TAG_NAME; - DELETE FROM opt_interlock_para WHERE TAG_NAME=OLD.TAG_NAME; -END; -ELSEIF COALESCE(OLD.IS_CONTROL,0) = 0 AND COALESCE(NEW.IS_CONTROL,0) != 0 -THEN -BEGIN - - IF COALESCE(NEW.POINT_TP_NAME,'') = '' THEN - INSERT INTO analog_control( - TAG_NAME, LOCATION_ID, SUB_SYSTEM, CTRL_TYPE, IS_TAGT_STATE, CTRL_TIMEOUT, RESV_TIMEOUT, BASE, COEFF, RANGE_UP, RANGE_LOW, CTRL_TOLERANCE, RTU_TAG, OFFSET_NO, CTRL_ALIAS, POINT_TP_NAME) - values ( - NEW.TAG_NAME, NEW.LOCATION_ID, NEW.SUB_SYSTEM,0, 1, 30, 30, 0, 1, 9999999.9, 0, 0.01, NEW.RTU_TAG, '-1', '', NEW.POINT_TP_NAME - ); - ELSE - INSERT INTO analog_control( - TAG_NAME, LOCATION_ID, SUB_SYSTEM, CTRL_TYPE, IS_TAGT_STATE, CTRL_TIMEOUT, RESV_TIMEOUT, BASE, COEFF, RANGE_UP, RANGE_LOW, CTRL_TOLERANCE, RTU_TAG, OFFSET_NO, CTRL_ALIAS, POINT_TP_NAME) SELECT - NEW.TAG_NAME, NEW.LOCATION_ID, NEW.SUB_SYSTEM,CTRL_TYPE, IS_TAGT_STATE, CTRL_TIMEOUT, RESV_TIMEOUT, BASE, COEFF, RANGE_UP, RANGE_LOW, CTRL_TOLERANCE, NEW.RTU_TAG, '-1', '', NEW.POINT_TP_NAME - FROM analog_temp_define WHERE TAG_NAME=NEW.POINT_TP_NAME; - END IF; - -END; -ELSE -BEGIN - IF NEW.TAG_NAME <> OLD.TAG_NAME OR NEW.LOCATION_ID <> OLD.LOCATION_ID OR NEW.SUB_SYSTEM <> OLD.SUB_SYSTEM OR NEW.POINT_TP_NAME <> OLD.POINT_TP_NAME - OR NEW.RTU_TAG <> OLD.RTU_TAG - THEN - UPDATE analog_control - SET - analog_control.TAG_NAME = NEW.TAG_NAME, - analog_control.LOCATION_ID = NEW.LOCATION_ID, - analog_control.SUB_SYSTEM = NEW.SUB_SYSTEM, - analog_control.POINT_TP_NAME = NEW.POINT_TP_NAME, - analog_control.RTU_TAG = NEW.RTU_TAG - WHERE analog_control.TAG_NAME = OLD.TAG_NAME; - END IF; -END; -END IF; -IF COALESCE(OLD.IS_LIMIT,0) != 0 AND COALESCE(NEW.IS_LIMIT,0) = 0 -THEN -BEGIN - DELETE FROM analog_limit_info WHERE TAG_NAME=OLD.TAG_NAME; -END; -ELSEIF COALESCE(OLD.IS_LIMIT,0) = 0 AND COALESCE(NEW.IS_LIMIT,0) != 0 -THEN -BEGIN - - IF COALESCE(NEW.POINT_TP_NAME,'') = '' THEN - INSERT INTO analog_limit_info ( - TAG_NAME, LOCATION_ID, SUB_SYSTEM, LIMIT_TYPE, LIMIT_NUM, LIMIT_UP1, LIMIT_LOW1, LIMIT_UP2, LIMIT_LOW2, LIMIT_UP3, LIMIT_LOW3, CROSS_PERCENT, RETURN_PERCENT, CROSS_TIME, ALARM_PRIORITY, PIC_NAME, ALARM_DELAY_TIME, IS_WATER_ALM, IS_ACK_ON_RTN, DEL_ACT_ON_ACK, IS_NEVER_ALM_ON_RTN, POINT_TP_NAME) - VALUES ( - NEW.TAG_NAME, NEW.LOCATION_ID, NEW.SUB_SYSTEM, 1, 0, 0, 0, 0, 0, 0, 0, 5, 5, 0, 1, '', 5, 0, 1, 0, 0, NEW.POINT_TP_NAME - ); - ELSE - INSERT INTO analog_limit_info ( - TAG_NAME, LOCATION_ID, SUB_SYSTEM, LIMIT_TYPE, LIMIT_NUM, LIMIT_UP1, LIMIT_LOW1, LIMIT_UP2, LIMIT_LOW2, LIMIT_UP3, LIMIT_LOW3, CROSS_PERCENT, RETURN_PERCENT, CROSS_TIME, ALARM_PRIORITY, PIC_NAME, ALARM_DELAY_TIME, IS_WATER_ALM, IS_ACK_ON_RTN, DEL_ACT_ON_ACK, IS_NEVER_ALM_ON_RTN, POINT_TP_NAME) SELECT - NEW.TAG_NAME, NEW.LOCATION_ID, NEW.SUB_SYSTEM, LIMIT_TYPE, LIMIT_NUM, LIMIT_UP1, LIMIT_LOW1, LIMIT_UP2, LIMIT_LOW2, LIMIT_UP3, LIMIT_LOW3, CROSS_PERCENT, RETURN_PERCENT, 0, ALARM_PRIORITY, '', ALARM_DELAY_TIME, IS_WATER_ALM, IS_ACK_ON_RTN, DEL_ACT_ON_ACK, IS_NEVER_ALM_ON_RTN, NEW.POINT_TP_NAME - FROM analog_temp_define WHERE TAG_NAME=NEW.POINT_TP_NAME ; - END IF; - -END; -ELSE -BEGIN - IF NEW.TAG_NAME <> OLD.TAG_NAME OR NEW.LOCATION_ID <> OLD.LOCATION_ID OR NEW.SUB_SYSTEM <> OLD.SUB_SYSTEM OR NEW.POINT_TP_NAME <> OLD.POINT_TP_NAME - THEN - UPDATE analog_limit_info SET - analog_limit_info.TAG_NAME = NEW.TAG_NAME , - analog_limit_info.LOCATION_ID = NEW.LOCATION_ID , - analog_limit_info.SUB_SYSTEM = NEW.SUB_SYSTEM , - analog_limit_info.POINT_TP_NAME = NEW.POINT_TP_NAME - WHERE analog_limit_info.TAG_NAME = OLD.TAG_NAME; - END IF; -END; -END IF; -IF COALESCE(OLD.IS_SAMPLE,0) != 0 AND COALESCE(NEW.IS_SAMPLE,0) = 0 -THEN -BEGIN - DELETE FROM sample_define WHERE TAG_NAME= OLD.TAG_NAME ; -END; -ELSEIF COALESCE(OLD.IS_SAMPLE,0) = 0 AND COALESCE(NEW.IS_SAMPLE,0) != 0 -THEN -BEGIN - INSERT INTO sample_define ( - TAG_NAME, DESCRIPTION, LOCATION_ID, SUB_SYSTEM, DEVICE_TAG, POINT_TYPE, SAMPLE_PERIOD, SAMPLE_DEADBAND, VALUE, STATUS, UPDATE_TIME) VALUES - ( NEW.TAG_NAME, NEW.DESCRIPTION, NEW.LOCATION_ID, NEW.SUB_SYSTEM, NEW.DEVICE, NEW.POINT_TYPE, NEW.SAMPLE_PERIOD,NEW.SAMPLE_DEADBAND, 0, 0, 0 ); -END; -ELSE -BEGIN - IF NEW.TAG_NAME <> OLD.TAG_NAME OR NEW.DESCRIPTION <> OLD.DESCRIPTION OR NEW.LOCATION_ID <> OLD.LOCATION_ID OR NEW.SUB_SYSTEM <> OLD.SUB_SYSTEM - OR NEW.DEVICE <> OLD.DEVICE OR NEW.POINT_TYPE <> OLD.POINT_TYPE OR NEW.SAMPLE_PERIOD <> OLD.SAMPLE_PERIOD OR NEW.SAMPLE_DEADBAND <> OLD.SAMPLE_DEADBAND - THEN - UPDATE sample_define - SET - sample_define.TAG_NAME = NEW.TAG_NAME , - sample_define.DESCRIPTION = NEW.DESCRIPTION , - sample_define.LOCATION_ID = NEW.LOCATION_ID , - sample_define.SUB_SYSTEM = NEW.SUB_SYSTEM , - sample_define.DEVICE_TAG = NEW.DEVICE, - sample_define.POINT_TYPE = NEW.POINT_TYPE , - sample_define.SAMPLE_PERIOD = NEW.SAMPLE_PERIOD , - sample_define.SAMPLE_DEADBAND = NEW.SAMPLE_DEADBAND - WHERE TAG_NAME= OLD.TAG_NAME; - END IF; -END; -END IF; -IF NEW.TAG_NAME <> OLD.TAG_NAME OR NEW.LOCATION_ID <> OLD.LOCATION_ID OR NEW.SUB_SYSTEM <> OLD.SUB_SYSTEM OR NEW.DEV_TYPE <> OLD.DEV_TYPE -OR NEW.RTU_TAG <> OLD.RTU_TAG OR NEW.POINT_TYPE <> OLD.POINT_TYPE OR NEW.POINT_TP_NAME <> OLD.POINT_TP_NAME OR NEW.DESCRIPTION <> OLD.DESCRIPTION -THEN - UPDATE analog_map_to_fes SET - KEY_ID_TAG = concat('analog' , '.' , NEW.TAG_NAME), - LOCATION_ID =NEW.LOCATION_ID, - SUB_SYSTEM = NEW.SUB_SYSTEM, - DEV_TYPE = NEW.DEV_TYPE, - POINT_TP_NAME = NEW.POINT_TP_NAME, - RTU_TAG = NEW.RTU_TAG, - DESCRIPTION = NEW.DESCRIPTION - WHERE KEY_ID_TAG=concat('analog' , '.' , OLD.TAG_NAME) ; -END IF; -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'analog', 'tag_name', OLD.TAG_NAME, NEW.TAG_NAME, getTableSubSystem('analog')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TD_ANALOG; -DELIMITER ;; -create trigger TD_ANALOG BEFORE DELETE on analog for each ROW -BEGIN - - -IF COALESCE(OLD.IS_CONTROL,0) <> 0 -THEN -DELETE FROM analog_control WHERE TAG_NAME=OLD.TAG_NAME ; -END IF; -IF COALESCE(OLD.IS_LIMIT,0) <> 0 -THEN -DELETE FROM analog_limit_info WHERE TAG_NAME=OLD.TAG_NAME ; -END IF; -IF COALESCE(OLD.IS_SAMPLE,0) <> 0 -THEN -DELETE FROM sample_define WHERE TAG_NAME= OLD.TAG_NAME ; -END IF; -DELETE FROM analog_map_to_fes WHERE KEY_ID_TAG=concat('analog' , '.' , OLD.TAG_NAME) ; -END;; -DELIMITER ; - -drop trigger if exists TDA_ANALOG; -DELIMITER ;; -create trigger TDA_ANALOG AFTER DELETE on analog for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'analog', 'tag_name', OLD.TAG_NAME, '', getTableSubSystem('analog')); -END IF; -END;; -DELIMITER ; - -drop table if exists bas_craft_def; -CREATE TABLE `bas_craft_def` ( - `ID` decimal(10,0) NOT NULL COMMENT '工艺ID', - `NAME` varchar(32) NOT NULL COMMENT '工艺名', - `LOCATION_ID` decimal(10,0) NOT NULL COMMENT '所属车站', - PRIMARY KEY (`ID`), - UNIQUE KEY `UN_BAS_CRAFT_DEF` (`ID`,`NAME`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='工艺定义'; - -drop trigger if exists TIA_BAS_CRAFT_DEF; -DELIMITER ;; -create trigger TIA_BAS_CRAFT_DEF AFTER INSERT on bas_craft_def for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'bas_craft_def', 'id', '', NEW.ID, getTableSubSystem('bas_craft_def')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_BAS_CRAFT_DEF; -DELIMITER ;; -create trigger TUA_BAS_CRAFT_DEF AFTER UPDATE on bas_craft_def for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'bas_craft_def', 'id', OLD.ID, NEW.ID, getTableSubSystem('bas_craft_def')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_BAS_CRAFT_DEF; -DELIMITER ;; -create trigger TDA_BAS_CRAFT_DEF AFTER DELETE on bas_craft_def for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'bas_craft_def', 'id', OLD.ID, '', getTableSubSystem('bas_craft_def')); -END IF; -END;; -DELIMITER ; - -drop table if exists bas_mode_def; -CREATE TABLE `bas_mode_def` ( - `ID` decimal(10,0) NOT NULL COMMENT 'ID', - `LOCATION_ID` decimal(10,0) NOT NULL COMMENT '所属车站ID', - `CRAFT_ID` decimal(10,0) NOT NULL COMMENT '所属工艺', - `MODE_NO` decimal(10,0) NOT NULL COMMENT '模式号', - `MODE_NAME` varchar(32) NOT NULL COMMENT '模式名', - `MODE_TYPE` decimal(10,0) DEFAULT NULL COMMENT '模式类型', - PRIMARY KEY (`ID`,`LOCATION_ID`,`CRAFT_ID`,`MODE_NO`), - UNIQUE KEY `UN_BAS_MODE_DEF` (`ID`,`LOCATION_ID`,`CRAFT_ID`,`MODE_NO`,`MODE_NAME`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='模式定义'; - -drop trigger if exists TIA_BAS_MODE_DEF; -DELIMITER ;; -create trigger TIA_BAS_MODE_DEF AFTER INSERT on bas_mode_def for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'bas_mode_def', 'id,location_id,craft_id,mode_no', '', concat(NEW.ID,',',NEW.LOCATION_ID,',',NEW.CRAFT_ID,',',NEW.MODE_NO), getTableSubSystem('bas_mode_def')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_BAS_MODE_DEF; -DELIMITER ;; -create trigger TUA_BAS_MODE_DEF AFTER UPDATE on bas_mode_def for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'bas_mode_def', 'id,location_id,craft_id,mode_no', concat(OLD.ID,',',OLD.LOCATION_ID,',',OLD.CRAFT_ID,',',OLD.MODE_NO), concat(NEW.ID,',',NEW.LOCATION_ID,',',NEW.CRAFT_ID,',',NEW.MODE_NO), getTableSubSystem('bas_mode_def')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_BAS_MODE_DEF; -DELIMITER ;; -create trigger TDA_BAS_MODE_DEF AFTER DELETE on bas_mode_def for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'bas_mode_def', 'id,location_id,craft_id,mode_no', concat(OLD.ID,',',OLD.LOCATION_ID,',',OLD.CRAFT_ID,',',OLD.MODE_NO), '', getTableSubSystem('bas_mode_def')); -END IF; -END;; -DELIMITER ; - -drop table if exists bas_mode_type; -CREATE TABLE `bas_mode_type` ( - `ID` decimal(10,0) NOT NULL COMMENT '类型ID', - `NAME` varchar(32) NOT NULL COMMENT '类型名', - PRIMARY KEY (`ID`), - UNIQUE KEY `UN_BAS_MODE_TYPE` (`ID`,`NAME`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='模式类型'; - -drop trigger if exists TIA_BAS_MODE_TYPE; -DELIMITER ;; -create trigger TIA_BAS_MODE_TYPE AFTER INSERT on bas_mode_type for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'bas_mode_type', 'id', '', NEW.ID, getTableSubSystem('bas_mode_type')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_BAS_MODE_TYPE; -DELIMITER ;; -create trigger TUA_BAS_MODE_TYPE AFTER UPDATE on bas_mode_type for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'bas_mode_type', 'id', OLD.ID, NEW.ID, getTableSubSystem('bas_mode_type')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_BAS_MODE_TYPE; -DELIMITER ;; -create trigger TDA_BAS_MODE_TYPE AFTER DELETE on bas_mode_type for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'bas_mode_type', 'id', OLD.ID, '', getTableSubSystem('bas_mode_type')); -END IF; -END;; -DELIMITER ; - -drop table if exists dbop_list; -CREATE TABLE `dbop_list` ( - `ID` int(11) NOT NULL AUTO_INCREMENT COMMENT '应该是自增主键,同步时用来标识是否同步', - `STATEMENT` mediumtext NOT NULL COMMENT 'sql语句,可以直接执行的sql语句。', - PRIMARY KEY (`ID`) -) ENGINE=InnoDB AUTO_INCREMENT=82184 DEFAULT CHARSET=utf8 COMMENT='关系库同步表'; - -drop table if exists dev_group; -CREATE TABLE `dev_group` ( - `TAG_NAME` varchar(64) NOT NULL COMMENT '设备名称', - `DESCRIPTION` varchar(128) NOT NULL COMMENT '设备描述', - `LOCATION_ID` decimal(10,0) NOT NULL COMMENT '车站ID', - `SUB_SYSTEM` decimal(10,0) NOT NULL COMMENT '所属专业', - `RTU_NO` decimal(10,0) DEFAULT NULL COMMENT '关联前置RTU号', - `PGROUP_TAG_NAME` varchar(64) DEFAULT NULL COMMENT '分组名称', - `REGION_ID` decimal(10,0) NOT NULL COMMENT '区域ID', - `IS_SUMMARY` decimal(10,0) DEFAULT NULL COMMENT '是否摘要', - `SUMMARY_VALUE` decimal(10,0) DEFAULT NULL COMMENT '摘要值', - `SUMMARY_STATUS` decimal(10,0) DEFAULT NULL COMMENT '摘要状态', - `GROUP_TAG` varchar(64) DEFAULT NULL COMMENT '区域名称', - `DEV_GROUP_NO` decimal(10,0) DEFAULT NULL COMMENT '设备组序号', - PRIMARY KEY (`TAG_NAME`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='设备分组表'; - -drop trigger if exists TIA_DEV_GROUP; -DELIMITER ;; -create trigger TIA_DEV_GROUP AFTER INSERT on dev_group for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'dev_group', 'tag_name', '', NEW.TAG_NAME, getTableSubSystem('dev_group')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_DEV_GROUP; -DELIMITER ;; -create trigger TUA_DEV_GROUP AFTER UPDATE on dev_group for each ROW -BEGIN - IF NEW.TAG_NAME <> OLD.TAG_NAME THEN - BEGIN - UPDATE dev_info SET GROUP_TAG_NAME = NEW.TAG_NAME WHERE GROUP_TAG_NAME = OLD.TAG_NAME; - END; - END IF; - - -- IF NEW.RTU_NO <> COALESCE(OLD.RTU_NO,-1) THEN - -- BEGIN - -- DECLARE rtuTag varchar(64) DEFAULT ''; - -- SELECT TAG_NAME INTO rtuTag FROM fes_rtu_para WHERE fes_rtu_para.RTU_NO = NEW.RTU_NO; - -- UPDATE accuml,dev_info SET accuml.RTU_TAG = rtuTag WHERE dev_info.GROUP_TAG_NAME = NEW.TAG_NAME AND accuml.DEVICE = dev_info.TAG_NAME; - -- UPDATE analog,dev_info SET analog.RTU_TAG = rtuTag WHERE dev_info.GROUP_TAG_NAME = NEW.TAG_NAME AND analog.DEVICE = dev_info.TAG_NAME; - -- UPDATE digital,dev_info SET digital.RTU_TAG = rtuTag WHERE dev_info.GROUP_TAG_NAME = NEW.TAG_NAME AND digital.DEVICE = dev_info.TAG_NAME; - -- UPDATE mix,dev_info SET mix.RTU_TAG = rtuTag WHERE dev_info.GROUP_TAG_NAME = NEW.TAG_NAME AND mix.DEVICE = dev_info.TAG_NAME; - -- END; - -- END IF; - - -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'dev_group', 'tag_name', OLD.TAG_NAME, NEW.TAG_NAME, getTableSubSystem('dev_group')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_DEV_GROUP; -DELIMITER ;; -create trigger TDA_DEV_GROUP AFTER DELETE on dev_group for each ROW -BEGIN - DELETE FROM dev_info WHERE GROUP_TAG_NAME = OLD.TAG_NAME; - #前置的设备先不删除 -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'dev_group', 'tag_name', OLD.TAG_NAME, '', getTableSubSystem('dev_group')); -END IF; -END;; -DELIMITER ; - -drop table if exists dev_info; -CREATE TABLE `dev_info` ( - `TAG_NAME` varchar(64) NOT NULL COMMENT '设备名称', - `DESCRIPTION` varchar(128) NOT NULL COMMENT '设备描述', - `DEV_NAME` varchar(64) DEFAULT NULL COMMENT '设备编号', - `LOCATION_ID` decimal(10,0) DEFAULT NULL COMMENT '车站ID', - `SUB_SYSTEM` decimal(10,0) DEFAULT NULL COMMENT '所属专业', - `GROUP_TAG_NAME` varchar(64) DEFAULT NULL COMMENT '设备分组', - `VOL_LEVEL_ID` decimal(10,0) DEFAULT NULL COMMENT '电压等级ID', - `DEV_TYPE` decimal(10,0) DEFAULT NULL COMMENT '设备类型', - `GRAY` decimal(22,6) DEFAULT NULL COMMENT '灰度', - `CONTRAST` decimal(22,6) DEFAULT NULL COMMENT '对比度', - `QCOLOR` decimal(10,0) DEFAULT NULL COMMENT '拓扑着色', - `VALUE` decimal(10,0) DEFAULT NULL COMMENT '值', - `STATUS` decimal(10,0) DEFAULT NULL COMMENT '状态', - `NODE_NO1` decimal(10,0) DEFAULT NULL COMMENT 'NODE_NO1', - `NODE_NO2` decimal(10,0) DEFAULT NULL COMMENT 'NODE_NO2', - `NODE_NO3` decimal(10,0) DEFAULT NULL COMMENT 'NODE_NO3', - `NODE_NO4` decimal(10,0) DEFAULT NULL COMMENT 'NODE_NO4', - `NODE_NO5` decimal(10,0) DEFAULT NULL COMMENT 'NODE_NO5', - `NODE_NO6` decimal(10,0) DEFAULT NULL COMMENT 'NODE_NO6', - `NODE_NO7` decimal(10,0) DEFAULT NULL COMMENT 'NODE_NO7', - `NODE_NO8` decimal(10,0) DEFAULT NULL COMMENT 'NODE_NO8', - `NODE_NO9` decimal(10,0) DEFAULT NULL COMMENT 'NODE_NO9', - `NODE_NO10` decimal(10,0) DEFAULT NULL COMMENT 'NODE_NO10', - `REGION_ID` decimal(10,0) NOT NULL COMMENT '责任区', - `OPT_HANDOVER_GROUP` varchar(64) DEFAULT NULL COMMENT '权限移交组', - `IS_SUMMARY` decimal(10,0) DEFAULT NULL COMMENT '是否摘要', - `SUMMARY_VALUE` decimal(10,0) DEFAULT NULL COMMENT '摘要值', - `SUMMARY_STATUS` decimal(10,0) DEFAULT NULL COMMENT '摘要状态', - `DEV_TP_NAME` varchar(128) DEFAULT NULL COMMENT '设备模板', - PRIMARY KEY (`TAG_NAME`), - KEY `IN_DEV_INFO` (`GROUP_TAG_NAME`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='设备信息表'; - -drop trigger if exists TI_DEV_INFO; -DELIMITER ;; -create trigger TI_DEV_INFO AFTER INSERT on dev_info for each ROW -BEGIN - -INSERT INTO accuml( -TAG_NAME, DESCRIPTION, DEVICE, SEQ_NO, LOCATION_ID, SUB_SYSTEM, RTU_TAG, GRAY, CONTRAST, QCOLOR, RAW_VALUE, VALUE, STATUS, LAST_UPDATE_TIME, LAST_CHANGE_TIME, UNIT_ID, SOUND_NAME1, SOUND_NAME2, SOUND_NAME3, REGION_ID, OPT_HANDOVER_GROUP, IS_LIMIT, POINT_TYPE, POINT_CLASS, POINT_PROPERTY, POINT_SORT, DEV_TYPE, POINT_TP_NAME, IS_SAMPLE, IS_STATISTICS, SAMPLE_PERIOD, SAMPLE_DEADBAND, CAMERA_TAG, PRESET_ID) SELECT -concat(NEW.TAG_NAME, '.' , getAfterLastDot(TAG_NAME)),DESCRIPTION, NEW.TAG_NAME,SEQ_NO, NEW.LOCATION_ID, NEW.SUB_SYSTEM, '', NEW.GRAY, NEW.CONTRAST, NEW.QCOLOR,'0', NEW.VALUE, NEW.STATUS, 0, 0, UNIT_ID, '', '', '', NEW.REGION_ID, NEW.OPT_HANDOVER_GROUP, IS_LIMIT, POINT_TYPE, POINT_CLASS, POINT_PROPERTY, POINT_SORT, NEW.DEV_TYPE, TAG_NAME, IS_SAMPLE, IS_STATISTICS, SAMPLE_PERIOD, SAMPLE_DEADBAND, '', '' -FROM accuml_temp_define WHERE DEV_TP_NAME=NEW.DEV_TP_NAME; -INSERT INTO analog( -TAG_NAME, DESCRIPTION, RTU_TAG, DEV_TYPE, DEVICE, SEQ_NO, LOCATION_ID, SUB_SYSTEM, IS_CONTROL,GRAY, CONTRAST, QCOLOR, VALUE, STATUS, LAST_UPDATE_TIME, LAST_CHANGE_TIME, UNIT_ID, SOUND_NAME1, SOUND_NAME2, SOUND_NAME3, REGION_ID, OPT_HANDOVER_GROUP, IS_LIMIT, POINT_TYPE, POINT_CLASS, POINT_PROPERTY, POINT_SORT, POINT_TP_NAME, IS_SAMPLE, IS_STATISTICS, SAMPLE_PERIOD, SAMPLE_DEADBAND, CAMERA_TAG, PRESET_ID) SELECT -concat(NEW.TAG_NAME, '.' , getAfterLastDot(TAG_NAME)), DESCRIPTION , '', NEW.DEV_TYPE,NEW.TAG_NAME,SEQ_NO, NEW.LOCATION_ID,NEW.SUB_SYSTEM,IS_CONTROL,NEW.GRAY,NEW.CONTRAST,NEW.QCOLOR,NEW.VALUE,NEW.STATUS,'0', '0', UNIT_ID, '', '', '', NEW.REGION_ID,NEW.OPT_HANDOVER_GROUP,IS_LIMIT, POINT_TYPE, POINT_CLASS, POINT_PROPERTY, POINT_SORT, TAG_NAME, IS_SAMPLE, IS_STATISTICS, SAMPLE_PERIOD, SAMPLE_DEADBAND, '', '' -FROM analog_temp_define WHERE DEV_TP_NAME=NEW.DEV_TP_NAME; -INSERT INTO digital( -TAG_NAME, DESCRIPTION, DEVICE, SEQ_NO, LOCATION_ID, SUB_SYSTEM, RTU_TAG, IS_CONTROL, STATE_TEXT_NAME, VALUE_NUM, GRAY, CONTRAST, QCOLOR, VALUE, STATUS, LAST_UPDATE_TIME, VALUE1, STATUS1, LAST_CHANGE_TIME1, VALUE2, STATUS2, LAST_CHANGE_TIME2, VALUE3, STATUS3, LAST_CHANGE_TIME3, VALUE4, STATUS4, LAST_CHANGE_TIME4, VALUE5, STATUS5, LAST_CHANGE_TIME5, ALARM_PRIORITY, PIC_NAME, SOUND_NAME1, SOUND_NAME2, SOUND_NAME3, ALARM_DELAY_TIME,INPUT_DELAY_TIME, IS_WATER_ALM,IS_ACK_ON_RTN, DEL_ACT_ON_ACK, IS_NEVER_ALM_ON_RTN, REGION_ID, OPT_HANDOVER_GROUP, IS_SUMMARY, SUMMARY_VALUE, SUMMARY_STATUS, DEV_TYPE, POINT_TP_NAME, IS_SAMPLE, IS_STATISTICS, SAMPLE_PERIOD, IS_ALARM_FREQ, ALARM_FREQ, ALARM_FREQ_DESC, IS_ALARM_TIME, ALARM_TIME, ALARM_TIME_DESC, ALARM_FREQ_RANGE, INFER_NAME, POINT_TYPE,POINT_CLASS, POINT_PROPERTY, POINT_SORT, CAMERA_TAG, PRESET_ID ) SELECT -concat(NEW.TAG_NAME, '.' , getAfterLastDot(TAG_NAME)),DESCRIPTION, NEW.TAG_NAME,SEQ_NO, NEW.LOCATION_ID,NEW.SUB_SYSTEM,'', IS_CONTROL, STATE_TEXT_NAME, VALUE_NUM, NEW.GRAY,NEW.CONTRAST,NEW.QCOLOR,NEW.VALUE,NEW.STATUS,'0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', ALARM_PRIORITY, '', '', '', '', ALARM_DELAY_TIME,INPUT_DELAY_TIME, IS_WATER_ALM,IS_ACK_ON_RTN, DEL_ACT_ON_ACK, IS_NEVER_ALM_ON_RTN, NEW.REGION_ID,NEW.OPT_HANDOVER_GROUP,IS_SUMMARY, NEW.SUMMARY_VALUE,NEW.SUMMARY_STATUS,NEW.DEV_TYPE,TAG_NAME, IS_SAMPLE, IS_STATISTICS, SAMPLE_PERIOD, IS_ALARM_FREQ, ALARM_FREQ, ALARM_FREQ_DESC, IS_ALARM_TIME, ALARM_TIME, ALARM_TIME_DESC, ALARM_FREQ_RANGE, '', POINT_TYPE,POINT_CLASS, POINT_PROPERTY, POINT_SORT, '', '' -FROM digital_temp_define WHERE DEV_TP_NAME=NEW.DEV_TP_NAME; -INSERT INTO mix( -TAG_NAME, DESCRIPTION, DEVICE, SEQ_NO, LOCATION_ID, SUB_SYSTEM, RTU_TAG, IS_CONTROL, STATE_TEXT_NAME, GRAY, CONTRAST, QCOLOR, RAW_VALUE, VALUE, STATUS, LAST_UPDATE_TIME, LAST_CHANGE_TIME, METHOD, ALARM_PRIORITY, PIC_NAME, SOUND_NAME1, SOUND_NAME2, SOUND_NAME3, ALARM_DELAY_TIME, IS_WATER_ALM,IS_ACK_ON_RTN, DEL_ACT_ON_ACK, IS_NEVER_ALM_ON_RTN, REGION_ID, OPT_HANDOVER_GROUP, IS_SUMMARY, SUMMARY_VALUE, SUMMARY_STATUS, DEV_TYPE, POINT_TP_NAME, IS_SAMPLE, IS_STATISTICS, SAMPLE_PERIOD, POINT_TYPE,POINT_CLASS, POINT_PROPERTY, POINT_SORT, CAMERA_TAG, PRESET_ID) SELECT -concat(NEW.TAG_NAME, '.' , getAfterLastDot(TAG_NAME)),DESCRIPTION, NEW.TAG_NAME,SEQ_NO, NEW.LOCATION_ID,NEW.SUB_SYSTEM,'', IS_CONTROL, STATE_TEXT_NAME, NEW.GRAY,NEW.CONTRAST,NEW.QCOLOR,'0', NEW.VALUE,NEW.STATUS, '0', '0' , '', ALARM_PRIORITY, '', '', '', '', ALARM_DELAY_TIME, IS_WATER_ALM,IS_ACK_ON_RTN, DEL_ACT_ON_ACK, IS_NEVER_ALM_ON_RTN, NEW.REGION_ID,NEW.OPT_HANDOVER_GROUP,NEW.IS_SUMMARY,NEW.SUMMARY_VALUE,NEW.SUMMARY_STATUS,NEW.DEV_TYPE,TAG_NAME, IS_SAMPLE, IS_STATISTICS, SAMPLE_PERIOD, POINT_TYPE,POINT_CLASS, POINT_PROPERTY, POINT_SORT, '', '' -FROM mix_temp_define WHERE DEV_TP_NAME=NEW.DEV_TP_NAME; -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'dev_info', 'tag_name', '', NEW.TAG_NAME, getTableSubSystem('dev_info')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TU_DEV_INFO; -DELIMITER ;; -create trigger TU_DEV_INFO AFTER UPDATE on dev_info for each ROW -label_body:BEGIN - -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'dev_info', 'tag_name', OLD.TAG_NAME, NEW.TAG_NAME, getTableSubSystem('dev_info')); -END IF; - -IF -OLD.CONTRAST = NEW.CONTRAST AND -OLD.DESCRIPTION = NEW.DESCRIPTION AND -OLD.DEV_TYPE = NEW.DEV_TYPE AND -OLD.GRAY = NEW.GRAY AND -OLD.LOCATION_ID = NEW.LOCATION_ID AND -OLD.OPT_HANDOVER_GROUP = NEW.OPT_HANDOVER_GROUP AND -OLD.QCOLOR = NEW.QCOLOR AND -OLD.REGION_ID = NEW.REGION_ID AND -OLD.STATUS = NEW.STATUS AND -OLD.SUB_SYSTEM = NEW.SUB_SYSTEM AND -OLD.TAG_NAME = NEW.TAG_NAME AND -OLD.VALUE = NEW.VALUE -THEN LEAVE label_body; -END IF; -UPDATE accuml SET -DEVICE=NEW.TAG_NAME, -LOCATION_ID=NEW.LOCATION_ID, -SUB_SYSTEM=NEW.SUB_SYSTEM, -GRAY=NEW.GRAY, -CONTRAST=NEW.CONTRAST, -QCOLOR=NEW.QCOLOR, -VALUE=NEW.VALUE, -STATUS=NEW.STATUS, -REGION_ID=NEW.REGION_ID, -OPT_HANDOVER_GROUP=NEW.OPT_HANDOVER_GROUP, -DEV_TYPE= NEW.DEV_TYPE , -TAG_NAME=concat(NEW.TAG_NAME, '.' , getAfterLastDot(TAG_NAME)), -DESCRIPTION = DESCRIPTION -WHERE DEVICE=OLD.TAG_NAME ; -UPDATE analog SET -DEVICE=NEW.TAG_NAME, -LOCATION_ID=NEW.LOCATION_ID, -SUB_SYSTEM=NEW.SUB_SYSTEM, -GRAY=NEW.GRAY, -CONTRAST=NEW.CONTRAST, -QCOLOR=NEW.QCOLOR, -VALUE=NEW.VALUE, -STATUS=NEW.STATUS, -REGION_ID=NEW.REGION_ID, -OPT_HANDOVER_GROUP=NEW.OPT_HANDOVER_GROUP, -DEV_TYPE= NEW.DEV_TYPE , -TAG_NAME=concat(NEW.TAG_NAME, '.' , getAfterLastDot(TAG_NAME)), -DESCRIPTION = DESCRIPTION -WHERE DEVICE=OLD.TAG_NAME ; -UPDATE digital SET -DEVICE=NEW.TAG_NAME, -LOCATION_ID=NEW.LOCATION_ID, -SUB_SYSTEM=NEW.SUB_SYSTEM, -GRAY=NEW.GRAY, -CONTRAST=NEW.CONTRAST, -QCOLOR=NEW.QCOLOR, -VALUE=NEW.VALUE, -STATUS=NEW.STATUS, -REGION_ID=NEW.REGION_ID, -OPT_HANDOVER_GROUP=NEW.OPT_HANDOVER_GROUP, -DEV_TYPE= NEW.DEV_TYPE , -TAG_NAME=concat(NEW.TAG_NAME, '.' , getAfterLastDot(TAG_NAME)), -DESCRIPTION = DESCRIPTION -WHERE DEVICE=OLD.TAG_NAME ; -UPDATE mix SET -DEVICE=NEW.TAG_NAME, -LOCATION_ID=NEW.LOCATION_ID, -SUB_SYSTEM=NEW.SUB_SYSTEM, -GRAY=NEW.GRAY, -CONTRAST=NEW.CONTRAST, -QCOLOR=NEW.QCOLOR, -VALUE=NEW.VALUE, -STATUS=NEW.STATUS, -REGION_ID=NEW.REGION_ID, -OPT_HANDOVER_GROUP=NEW.OPT_HANDOVER_GROUP, -DEV_TYPE= NEW.DEV_TYPE , -TAG_NAME=concat(NEW.TAG_NAME, '.' , getAfterLastDot(TAG_NAME)), -DESCRIPTION = DESCRIPTION -WHERE DEVICE=OLD.TAG_NAME ; -END;; -DELIMITER ; - -drop trigger if exists TD_DEV_INFO; -DELIMITER ;; -create trigger TD_DEV_INFO BEFORE DELETE on dev_info for each ROW -BEGIN - -DELETE FROM accuml WHERE DEVICE = OLD.TAG_NAME; -DELETE FROM analog WHERE DEVICE = OLD.TAG_NAME; -DELETE FROM digital WHERE DEVICE = OLD.TAG_NAME; -DELETE FROM mix WHERE DEVICE = OLD.TAG_NAME; -END;; -DELIMITER ; - -drop trigger if exists TDA_DEV_INFO; -DELIMITER ;; -create trigger TDA_DEV_INFO AFTER DELETE on dev_info for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'dev_info', 'tag_name', OLD.TAG_NAME, '', getTableSubSystem('dev_info')); -END IF; -END;; -DELIMITER ; - -drop table if exists dev_topo_info; -CREATE TABLE `dev_topo_info` ( - `DEV_TAG_NAME` varchar(64) NOT NULL COMMENT '设备TAG', - `ASSOCIATED_DEV_TAGS` varchar(3200) NOT NULL COMMENT '关联的设备TAG串,使用英文逗号分隔', - `LOCATION_ID` decimal(10,0) NOT NULL COMMENT '设备所属厂站', - PRIMARY KEY (`DEV_TAG_NAME`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='设备拓扑信息表'; - -drop table if exists dev_topo_ver; -CREATE TABLE `dev_topo_ver` ( - `LOCATION_ID` decimal(10,0) NOT NULL COMMENT '厂站ID', - `LAST_CHG_TIME` decimal(20,0) NOT NULL COMMENT '最后一次拓扑信息修改的时间。POSIX时标标准,ms数。', - PRIMARY KEY (`LOCATION_ID`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='描述厂站的拓扑信息版本'; - -drop trigger if exists TIA_DEV_TOPO_VER; -DELIMITER ;; -create trigger TIA_DEV_TOPO_VER AFTER INSERT on dev_topo_ver for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'dev_topo_ver', 'LOCATION_ID', '',NEW.LOCATION_ID, getTableSubSystem('dev_topo_ver')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_DEV_TOPO_VER; -DELIMITER ;; -create trigger TUA_DEV_TOPO_VER AFTER UPDATE on dev_topo_ver for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'dev_topo_ver', 'LOCATION_ID', OLD.LOCATION_ID, NEW.LOCATION_ID, getTableSubSystem('dev_topo_ver')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_DEV_TOPO_VER; -DELIMITER ;; -create trigger TDA_DEV_TOPO_VER AFTER DELETE on dev_topo_ver for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'dev_topo_ver', 'LOCATION_ID', OLD.LOCATION_ID, '', getTableSubSystem('dev_topo_ver')); -END IF; -END;; -DELIMITER ; - -drop table if exists dev_type_def; -CREATE TABLE `dev_type_def` ( - `DEV_TYPE_ID` decimal(10,0) NOT NULL COMMENT '设备分类', - `TAG_NAME` varchar(64) NOT NULL COMMENT '分类名称', - `DESCRIPTION` varchar(64) DEFAULT NULL COMMENT '分类描述', - `SUB_SYSTEM` decimal(10,0) DEFAULT NULL COMMENT '所属专业', - PRIMARY KEY (`DEV_TYPE_ID`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='设备分类定义表'; - -drop trigger if exists TIA_DEV_TYPE_DEF; -DELIMITER ;; -create trigger TIA_DEV_TYPE_DEF AFTER INSERT on dev_type_def for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'dev_type_def', 'dev_type_id', '', NEW.DEV_TYPE_ID, getTableSubSystem('dev_type_def')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_DEV_TYPE_DEF; -DELIMITER ;; -create trigger TUA_DEV_TYPE_DEF AFTER UPDATE on dev_type_def for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'dev_type_def', 'dev_type_id', OLD.DEV_TYPE_ID, NEW.DEV_TYPE_ID, getTableSubSystem('dev_type_def')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_DEV_TYPE_DEF; -DELIMITER ;; -create trigger TDA_DEV_TYPE_DEF AFTER DELETE on dev_type_def for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'dev_type_def', 'dev_type_id', OLD.DEV_TYPE_ID, '', getTableSubSystem('dev_type_def')); -END IF; -END;; -DELIMITER ; - -drop table if exists dict_menu_info; -CREATE TABLE `dict_menu_info` ( - `MENU_NAME` varchar(64) NOT NULL, - `ACTUAL_VALUE` decimal(10,0) NOT NULL COMMENT '动作值', - `DISPLAY_VALUE` varchar(64) NOT NULL COMMENT '显示值', - `MENU_MACRO_NAME` varchar(64) DEFAULT NULL COMMENT '宏定义名称', - PRIMARY KEY (`MENU_NAME`,`ACTUAL_VALUE`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='菜单定义信息表'; - -drop trigger if exists TIA_DICT_MENU_INFO; -DELIMITER ;; -create trigger TIA_DICT_MENU_INFO AFTER INSERT on dict_menu_info for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'dict_menu_info', 'menu_name,actual_value', '', concat(NEW.MENU_NAME,',',NEW.ACTUAL_VALUE), getTableSubSystem('dict_menu_info')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_DICT_MENU_INFO; -DELIMITER ;; -create trigger TUA_DICT_MENU_INFO AFTER UPDATE on dict_menu_info for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'dict_menu_info', 'menu_name,actual_value', concat(OLD.MENU_NAME,',',OLD.ACTUAL_VALUE), concat(NEW.MENU_NAME,',',NEW.ACTUAL_VALUE), getTableSubSystem('dict_menu_info')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_DICT_MENU_INFO; -DELIMITER ;; -create trigger TDA_DICT_MENU_INFO AFTER DELETE on dict_menu_info for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'dict_menu_info', 'menu_name,actual_value', concat(OLD.MENU_NAME,',',OLD.ACTUAL_VALUE), '', getTableSubSystem('dict_menu_info')); -END IF; -END;; -DELIMITER ; - -drop table if exists dict_point_type; -CREATE TABLE `dict_point_type` ( - `TYPE_NAME` varchar(64) NOT NULL COMMENT '类型名', - `POINT_CLASS` decimal(10,0) NOT NULL COMMENT '点分类', - `SHORT_NAME` varchar(64) NOT NULL COMMENT '点名缩写 ', - `DESCRIPTION` varchar(128) DEFAULT NULL COMMENT '点描述', - `POINT_TYPE` decimal(10,0) DEFAULT NULL COMMENT '点类别', - `POINT_PROPERTY` decimal(10,0) DEFAULT NULL COMMENT '点属性(采集点/计算点/虚拟点...)', - `UNIT_ID` decimal(10,0) DEFAULT NULL COMMENT '单位ID', - `IS_SAMPLE` decimal(10,0) DEFAULT NULL COMMENT '是否采样', - `SAMPLE_DEADBAND` decimal(22,6) DEFAULT NULL COMMENT '采样死区', - `SAMPLE_PERIOD` decimal(10,0) DEFAULT NULL, - `IS_STATISTICS` decimal(10,0) DEFAULT NULL COMMENT '是否统计', - `ALARM_PRIORITY` decimal(10,0) DEFAULT NULL COMMENT '告警优先级', - `ALARM_DELAY_TIME` decimal(10,0) DEFAULT NULL COMMENT '告警延时时间', - `INPUT_DELAY_TIME` decimal(10,0) DEFAULT NULL COMMENT '多位延迟时间', - `IS_WATER_ALM` decimal(10,0) DEFAULT NULL COMMENT '是否流水账', - `IS_ACK_ON_RTN` decimal(10,0) DEFAULT NULL COMMENT '是否返回自动确认', - `DEL_ACT_ON_ACK` decimal(10,0) DEFAULT NULL COMMENT '确认后自动删除', - `IS_NEVER_ALM_ON_RTN` decimal(10,0) DEFAULT NULL COMMENT '是否返回不上窗', - `IS_CONTROL` decimal(10,0) DEFAULT NULL COMMENT '是否控制', - `CTRL_ACT_NAME` varchar(64) DEFAULT NULL COMMENT '控制动作组名', - `CTRL_TYPE` decimal(10,0) DEFAULT NULL COMMENT '是否遥控选择', - `IS_TAGT_STATE` decimal(10,0) DEFAULT NULL COMMENT '是否等待目标状态', - `CTRL_TIMEOUT` decimal(10,0) DEFAULT NULL COMMENT '控制超时时间', - `RESV_TIMEOUT` decimal(10,0) DEFAULT NULL COMMENT '控制保留时间', - `OFFSET_NUM` decimal(10,0) DEFAULT NULL COMMENT 'DO点个数', - `STATE_TEXT_NAME` varchar(64) DEFAULT NULL COMMENT '数字量文本名', - `VALUE_NUM` decimal(10,0) DEFAULT NULL COMMENT '分量数', - PRIMARY KEY (`TYPE_NAME`,`POINT_CLASS`,`SHORT_NAME`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='测点类型表'; - -drop table if exists dict_state_text_info; -CREATE TABLE `dict_state_text_info` ( - `STATE_TEXT_NAME` varchar(64) NOT NULL COMMENT '文本名称', - `ACTUAL_VALUE` decimal(10,0) NOT NULL COMMENT '动作值', - `DISPLAY_VALUE` varchar(64) NOT NULL COMMENT '显示值', - `ALARM_MANNER` decimal(10,0) NOT NULL COMMENT '告警方式', - `ALARM_DESCRIPTION` varchar(64) NOT NULL COMMENT '告警描述', - `SUB_SYSTEM` decimal(10,0) NOT NULL COMMENT '所属专业', - PRIMARY KEY (`STATE_TEXT_NAME`,`ACTUAL_VALUE`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='状态文本信息表'; - -drop trigger if exists TIA_DICT_STATE_TEXT_INFO; -DELIMITER ;; -create trigger TIA_DICT_STATE_TEXT_INFO AFTER INSERT on dict_state_text_info for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'dict_state_text_info', 'state_text_name,actual_value', '', concat(NEW.STATE_TEXT_NAME,',',NEW.ACTUAL_VALUE), getTableSubSystem('dict_state_text_info')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_DICT_STATE_TEXT_INFO; -DELIMITER ;; -create trigger TUA_DICT_STATE_TEXT_INFO AFTER UPDATE on dict_state_text_info for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'dict_state_text_info', 'state_text_name,actual_value', concat(OLD.STATE_TEXT_NAME,',',OLD.ACTUAL_VALUE), concat(NEW.STATE_TEXT_NAME,',',NEW.ACTUAL_VALUE), getTableSubSystem('dict_state_text_info')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_DICT_STATE_TEXT_INFO; -DELIMITER ;; -create trigger TDA_DICT_STATE_TEXT_INFO AFTER DELETE on dict_state_text_info for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'dict_state_text_info', 'state_text_name,actual_value', concat(OLD.STATE_TEXT_NAME,',',OLD.ACTUAL_VALUE), '', getTableSubSystem('dict_state_text_info')); -END IF; -END;; -DELIMITER ; - -drop table if exists dict_text_define; -CREATE TABLE `dict_text_define` ( - `CLASS_NAME` varchar(64) NOT NULL COMMENT '文本分类', - `ACTUAL_VALUE` decimal(10,0) NOT NULL COMMENT '文本实际值 ', - `DISPLAY_NAME` varchar(64) NOT NULL COMMENT '文本显示名(IA) ', - `DESCRIPTION` varchar(128) DEFAULT NULL COMMENT '文本描述(A相电流)', - PRIMARY KEY (`CLASS_NAME`,`ACTUAL_VALUE`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='文本定义表'; - -drop trigger if exists TIA_DICT_TEXT_DEFINE; -DELIMITER ;; -create trigger TIA_DICT_TEXT_DEFINE AFTER INSERT on dict_text_define for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'dict_text_define', 'class_name,actual_value', '', concat(NEW.CLASS_NAME,',',NEW.ACTUAL_VALUE), getTableSubSystem('dict_text_define')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_DICT_TEXT_DEFINE; -DELIMITER ;; -create trigger TUA_DICT_TEXT_DEFINE AFTER UPDATE on dict_text_define for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'dict_text_define', 'class_name,actual_value', concat(OLD.CLASS_NAME,',',OLD.ACTUAL_VALUE), concat(NEW.CLASS_NAME,',',NEW.ACTUAL_VALUE), getTableSubSystem('dict_text_define')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_DICT_TEXT_DEFINE; -DELIMITER ;; -create trigger TDA_DICT_TEXT_DEFINE AFTER DELETE on dict_text_define for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'dict_text_define', 'class_name,actual_value', concat(OLD.CLASS_NAME,',',OLD.ACTUAL_VALUE), '', getTableSubSystem('dict_text_define')); -END IF; -END;; -DELIMITER ; - -drop table if exists dict_unit_info; -CREATE TABLE `dict_unit_info` ( - `UNIT_ID` decimal(10,0) NOT NULL COMMENT '单位ID', - `UNIT_NAME` varchar(64) DEFAULT NULL COMMENT '单位名称', - `UNIT_DESC` varchar(64) DEFAULT NULL COMMENT '单位描述', - PRIMARY KEY (`UNIT_ID`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='单位信息表'; - -drop trigger if exists TIA_DICT_UNIT_INFO; -DELIMITER ;; -create trigger TIA_DICT_UNIT_INFO AFTER INSERT on dict_unit_info for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'dict_unit_info', 'unit_id', '', NEW.UNIT_ID, getTableSubSystem('dict_unit_info')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_DICT_UNIT_INFO; -DELIMITER ;; -create trigger TUA_DICT_UNIT_INFO AFTER UPDATE on dict_unit_info for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'dict_unit_info', 'unit_id', OLD.UNIT_ID, NEW.UNIT_ID, getTableSubSystem('dict_unit_info')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_DICT_UNIT_INFO; -DELIMITER ;; -create trigger TDA_DICT_UNIT_INFO AFTER DELETE on dict_unit_info for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'dict_unit_info', 'unit_id', OLD.UNIT_ID, '', getTableSubSystem('dict_unit_info')); -END IF; -END;; -DELIMITER ; - -drop table if exists dict_vol_level; -CREATE TABLE `dict_vol_level` ( - `VL_ID` decimal(10,0) NOT NULL COMMENT '电压等级ID', - `TAG_NAME` varchar(64) NOT NULL COMMENT '标签名', - `VL_COLOR` decimal(10,0) NOT NULL COMMENT '等级颜色', - `DESCRIPTION` varchar(128) NOT NULL COMMENT '描述', - `H_LIMIT` decimal(22,6) DEFAULT NULL COMMENT '电压高限', - `L_LIMIT` decimal(22,6) DEFAULT NULL COMMENT '电压低限', - PRIMARY KEY (`VL_ID`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='电压等级定义表'; - -drop trigger if exists TIA_DICT_VOL_LEVEL; -DELIMITER ;; -create trigger TIA_DICT_VOL_LEVEL AFTER INSERT on dict_vol_level for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'dict_vol_level', 'vl_id', '', NEW.VL_ID, getTableSubSystem('dict_vol_level')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_DICT_VOL_LEVEL; -DELIMITER ;; -create trigger TUA_DICT_VOL_LEVEL AFTER UPDATE on dict_vol_level for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'dict_vol_level', 'vl_id', OLD.VL_ID, NEW.VL_ID, getTableSubSystem('dict_vol_level')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_DICT_VOL_LEVEL; -DELIMITER ;; -create trigger TDA_DICT_VOL_LEVEL AFTER DELETE on dict_vol_level for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'dict_vol_level', 'vl_id', OLD.VL_ID, '', getTableSubSystem('dict_vol_level')); -END IF; -END;; -DELIMITER ; - -drop table if exists digital; -CREATE TABLE `digital` ( - `TAG_NAME` varchar(64) NOT NULL COMMENT '标签名', - `DESCRIPTION` varchar(128) NOT NULL COMMENT '描述', - `DEVICE` varchar(64) DEFAULT NULL COMMENT '所属设备', - `SEQ_NO` decimal(10,0) DEFAULT NULL COMMENT '点序号', - `LOCATION_ID` decimal(10,0) DEFAULT NULL COMMENT '所属车站', - `SUB_SYSTEM` decimal(10,0) DEFAULT NULL COMMENT '所属专业', - `RTU_TAG` varchar(64) DEFAULT NULL COMMENT 'RTU标签', - `IS_CONTROL` decimal(10,0) DEFAULT NULL COMMENT '是否控制', - `STATE_TEXT_NAME` varchar(64) DEFAULT NULL COMMENT '状态文本', - `VALUE_NUM` decimal(10,0) DEFAULT NULL COMMENT '分量数', - `GRAY` decimal(22,6) DEFAULT NULL COMMENT '灰度', - `CONTRAST` decimal(22,6) DEFAULT NULL COMMENT '对比度', - `QCOLOR` decimal(10,0) DEFAULT NULL COMMENT '拓扑着色', - `VALUE` decimal(10,0) DEFAULT NULL COMMENT '值', - `STATUS` decimal(10,0) DEFAULT NULL COMMENT '状态', - `LAST_UPDATE_TIME` decimal(20,0) DEFAULT NULL COMMENT '最近更新时间', - `VALUE1` decimal(10,0) DEFAULT NULL COMMENT '分量1值', - `STATUS1` decimal(10,0) DEFAULT NULL COMMENT '分量1状态', - `LAST_CHANGE_TIME1` decimal(20,0) DEFAULT NULL COMMENT '分量1最近变化时间', - `VALUE2` decimal(10,0) DEFAULT NULL COMMENT '分量2值', - `STATUS2` decimal(10,0) DEFAULT NULL COMMENT '分量2状态', - `LAST_CHANGE_TIME2` decimal(20,0) DEFAULT NULL COMMENT '分量2最近变化时间', - `VALUE3` decimal(10,0) DEFAULT NULL COMMENT '分量3值', - `STATUS3` decimal(10,0) DEFAULT NULL COMMENT '分量3状态', - `LAST_CHANGE_TIME3` decimal(20,0) DEFAULT NULL COMMENT '分量3最近变化时间', - `VALUE4` decimal(10,0) DEFAULT NULL COMMENT '分量4值', - `STATUS4` decimal(10,0) DEFAULT NULL COMMENT '分量4状态', - `LAST_CHANGE_TIME4` decimal(20,0) DEFAULT NULL COMMENT '分量4最近变化时间', - `VALUE5` decimal(10,0) DEFAULT NULL COMMENT '分量5值', - `STATUS5` decimal(10,0) DEFAULT NULL COMMENT '分量5状态', - `LAST_CHANGE_TIME5` decimal(20,0) DEFAULT NULL COMMENT '分量5最近变化时间', - `IS_OBJ_ALM_MANNER` decimal(10,0) DEFAULT '0' COMMENT '是否自定义告警', - `ALARM_PRIORITY` decimal(10,0) DEFAULT NULL COMMENT '变位告警优先级', - `ALARM_PRIORITY_SOE` decimal(10,0) DEFAULT '0' COMMENT 'SOE告警优先级', - `PIC_NAME` varchar(64) DEFAULT NULL COMMENT '联动推图画面', - `SOUND_NAME1` varchar(32) DEFAULT NULL COMMENT '告警声音文件1', - `SOUND_NAME2` varchar(32) DEFAULT NULL COMMENT '告警声音文件2', - `SOUND_NAME3` varchar(32) DEFAULT NULL COMMENT '告警声音文件3', - `ALARM_DELAY_TIME` decimal(10,0) DEFAULT NULL COMMENT '告警延迟时间', - `INPUT_DELAY_TIME` decimal(10,0) DEFAULT NULL COMMENT '多位延迟时间', - `IS_WATER_ALM` decimal(10,0) DEFAULT NULL COMMENT '是否流水账--', - `IS_ACK_ON_RTN` decimal(10,0) DEFAULT NULL COMMENT '是否返回自动确认', - `DEL_ACT_ON_ACK` decimal(10,0) DEFAULT NULL COMMENT '确认后删除动作', - `IS_NEVER_ALM_ON_RTN` decimal(10,0) DEFAULT NULL COMMENT '是否返回不上窗口', - `REGION_ID` decimal(10,0) DEFAULT NULL COMMENT '责任区', - `OPT_HANDOVER_GROUP` varchar(64) DEFAULT NULL COMMENT '控制权限转移组', - `IS_SUMMARY` decimal(10,0) DEFAULT NULL COMMENT '是否摘要', - `SUMMARY_VALUE` decimal(10,0) DEFAULT NULL COMMENT '摘要值', - `SUMMARY_STATUS` decimal(10,0) DEFAULT NULL COMMENT '摘要状态', - `POINT_TYPE` decimal(10,0) DEFAULT NULL COMMENT '点类型', - `POINT_CLASS` decimal(10,0) DEFAULT NULL COMMENT '点分类', - `POINT_PROPERTY` decimal(10,0) DEFAULT NULL COMMENT '点属性 ', - `POINT_SORT` decimal(10,0) DEFAULT NULL COMMENT '测点种类 ', - `DEV_TYPE` decimal(10,0) DEFAULT NULL COMMENT '设备类型', - `POINT_TP_NAME` varchar(64) DEFAULT NULL COMMENT '点模板名', - `IS_SAMPLE` decimal(10,0) DEFAULT NULL COMMENT '是否采样', - `IS_STATISTICS` decimal(10,0) DEFAULT NULL COMMENT '是否统计', - `SAMPLE_PERIOD` decimal(10,0) DEFAULT NULL COMMENT '采样周期', - `IS_ALARM_FREQ` decimal(10,0) DEFAULT NULL COMMENT '是否告警计数', - `ALARM_FREQ` decimal(10,0) DEFAULT NULL COMMENT '设定告警计次', - `ALARM_FREQ_DESC` varchar(64) DEFAULT NULL COMMENT '计次告警描述', - `IS_ALARM_TIME` decimal(10,0) DEFAULT NULL COMMENT '是否告警计时', - `ALARM_TIME` decimal(10,0) DEFAULT NULL COMMENT '设定告警计时(秒)', - `ALARM_TIME_DESC` varchar(64) DEFAULT NULL COMMENT '计时告警描述', - `ALARM_FREQ_RANGE` decimal(10,0) DEFAULT NULL COMMENT '计时告警时间范围(秒)', - `INFER_NAME` varchar(64) DEFAULT NULL COMMENT '所属推理结果', - `CAMERA_TAG` varchar(64) DEFAULT NULL COMMENT '摄像头标签', - `PRESET_ID` varchar(64) DEFAULT NULL COMMENT '预置点ID', - PRIMARY KEY (`TAG_NAME`), - KEY `IN_DIGITAL` (`DEVICE`,`RTU_TAG`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='数字量输入参数表'; - -drop trigger if exists TI_DIGITAL; -DELIMITER ;; -create trigger TI_DIGITAL AFTER INSERT on digital for each ROW -BEGIN - -IF COALESCE(NEW.IS_CONTROL,0) <> 0 -THEN -BEGIN - - IF COALESCE(NEW.POINT_TP_NAME,'') = '' THEN - INSERT INTO digital_control( - TAG_NAME, LOCATION_ID, SUB_SYSTEM, CTRL_ACT_NAME, IS_TAGT_STATE, CTRL_TIMEOUT, RESV_TIMEOUT, PULSE_DURATION, RTU_TAG, OFFSET_NUM, OFFSET_NO1, OFFSET_NO2, OFFSET_NO3, OFFSET_NO4, OFFSET_NO5, CTRL_ALIAS, IS_CHECK_PREVENTION, POINT_TP_NAME, CTRL_TYPE) - VALUES ( - NEW.TAG_NAME, NEW.LOCATION_ID, NEW.SUB_SYSTEM, '', 1, 30, 30, 30, NEW.RTU_TAG, 1, '-1', '-1', '-1', '-1', '-1', '', 0 , NEW.POINT_TP_NAME,0 - ); - ELSE - INSERT INTO digital_control( - TAG_NAME, LOCATION_ID, SUB_SYSTEM, CTRL_ACT_NAME, IS_TAGT_STATE, CTRL_TIMEOUT, RESV_TIMEOUT, PULSE_DURATION, RTU_TAG, OFFSET_NUM, OFFSET_NO1, OFFSET_NO2, OFFSET_NO3, OFFSET_NO4, OFFSET_NO5, CTRL_ALIAS, IS_CHECK_PREVENTION, POINT_TP_NAME, CTRL_TYPE) SELECT - NEW.TAG_NAME, NEW.LOCATION_ID, NEW.SUB_SYSTEM, CTRL_ACT_NAME, IS_TAGT_STATE, CTRL_TIMEOUT, RESV_TIMEOUT, PULSE_DURATION, NEW.RTU_TAG, OFFSET_NUM, '-1', '-1', '-1', '-1', '-1', '', IS_CHECK_PREVENTION , NEW.POINT_TP_NAME,CTRL_TYPE - FROM digital_temp_define WHERE TAG_NAME=NEW.POINT_TP_NAME; - END IF; - -END; -END IF; -IF COALESCE(NEW.IS_SAMPLE,0) <> 0 -THEN -INSERT INTO sample_define ( -TAG_NAME, DESCRIPTION, LOCATION_ID, SUB_SYSTEM, DEVICE_TAG, POINT_TYPE, SAMPLE_PERIOD, SAMPLE_DEADBAND, VALUE, STATUS, UPDATE_TIME) VALUES -(NEW.TAG_NAME,NEW.DESCRIPTION, NEW.LOCATION_ID, NEW.SUB_SYSTEM, NEW.DEVICE, NEW.POINT_TYPE, NEW.SAMPLE_PERIOD, 0, 0, 0, 0 ); -END IF; -INSERT INTO digital_map_to_fes ( -KEY_ID_TAG, LOCATION_ID, SUB_SYSTEM, DEV_TYPE, POINT_TP_NAME, VALUE_NUM, RTU_TAG, DOT_NO1, DOT_NO2, DOT_NO3, DOT_NO4, DOT_NO5, IS_FILTER_ERR, IS_FILTER_DISTURB, DISTURB_TIME, POLARITY, DESCRIPTION) VALUES ( -concat('digital' , '.' , NEW.TAG_NAME), NEW.LOCATION_ID, NEW.SUB_SYSTEM, NEW.DEV_TYPE, NEW.POINT_TP_NAME, NEW.VALUE_NUM , NEW.RTU_TAG, '-1', '-1' , '-1' , '-1', '-1', '0' , '0' , '0' , '0', NEW.DESCRIPTION ); -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'digital', 'tag_name', '', NEW.TAG_NAME, getTableSubSystem('digital')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TU_DIGITAL; -DELIMITER ;; -create trigger TU_DIGITAL AFTER UPDATE on digital for each ROW -BEGIN -IF COALESCE(OLD.IS_CONTROL,0) != 0 AND COALESCE(NEW.IS_CONTROL,0) = 0 -THEN -BEGIN - DELETE FROM digital_control WHERE TAG_NAME=OLD.TAG_NAME; - DELETE FROM opt_interlock_para WHERE TAG_NAME=OLD.TAG_NAME; -END; -ELSEIF COALESCE(OLD.IS_CONTROL,0) = 0 AND COALESCE(NEW.IS_CONTROL,0) != 0 -THEN -BEGIN - - IF COALESCE(NEW.POINT_TP_NAME,'') = '' THEN - INSERT INTO digital_control( - TAG_NAME, LOCATION_ID, SUB_SYSTEM, CTRL_ACT_NAME, IS_TAGT_STATE, CTRL_TIMEOUT, RESV_TIMEOUT, PULSE_DURATION, RTU_TAG, OFFSET_NUM, OFFSET_NO1, OFFSET_NO2, OFFSET_NO3, OFFSET_NO4, OFFSET_NO5, CTRL_ALIAS, IS_CHECK_PREVENTION, POINT_TP_NAME, CTRL_TYPE) - VALUES ( - NEW.TAG_NAME, NEW.LOCATION_ID, NEW.SUB_SYSTEM, '', 1, 30, 30, 30, NEW.RTU_TAG, 1, '-1', '-1', '-1', '-1', '-1', '', 0 , NEW.POINT_TP_NAME,0 - ); - ELSE - INSERT INTO digital_control( - TAG_NAME, LOCATION_ID, SUB_SYSTEM, CTRL_ACT_NAME, IS_TAGT_STATE, CTRL_TIMEOUT, RESV_TIMEOUT, PULSE_DURATION, RTU_TAG, OFFSET_NUM, OFFSET_NO1, OFFSET_NO2, OFFSET_NO3, OFFSET_NO4, OFFSET_NO5, CTRL_ALIAS, IS_CHECK_PREVENTION, POINT_TP_NAME, CTRL_TYPE) SELECT - NEW.TAG_NAME, NEW.LOCATION_ID, NEW.SUB_SYSTEM, CTRL_ACT_NAME, IS_TAGT_STATE, CTRL_TIMEOUT, RESV_TIMEOUT, PULSE_DURATION, NEW.RTU_TAG, OFFSET_NUM, '-1', '-1', '-1', '-1', '-1', '', IS_CHECK_PREVENTION , NEW.POINT_TP_NAME,CTRL_TYPE - FROM digital_temp_define WHERE TAG_NAME=NEW.POINT_TP_NAME; - END IF; - -END; -ELSE -BEGIN - IF NEW.TAG_NAME<>OLD.TAG_NAME OR NEW.LOCATION_ID<>OLD.LOCATION_ID OR NEW.SUB_SYSTEM<>OLD.SUB_SYSTEM OR NEW.RTU_TAG<>OLD.RTU_TAG - OR NEW.POINT_TP_NAME<>OLD.POINT_TP_NAME - THEN - UPDATE digital_control - SET - digital_control.TAG_NAME = NEW.TAG_NAME, - digital_control.LOCATION_ID = NEW.LOCATION_ID, - digital_control.SUB_SYSTEM = NEW.SUB_SYSTEM, - digital_control.RTU_TAG = NEW.RTU_TAG , - digital_control.POINT_TP_NAME = NEW.POINT_TP_NAME - WHERE digital_control.TAG_NAME = OLD.TAG_NAME; - END IF; -END; -END IF; -IF COALESCE(OLD.IS_SAMPLE,0) != 0 AND COALESCE(NEW.IS_SAMPLE,0) = 0 -THEN -BEGIN - DELETE FROM sample_define WHERE TAG_NAME= OLD.TAG_NAME ; -END; -ELSEIF COALESCE(OLD.IS_SAMPLE,0) = 0 AND COALESCE(NEW.IS_SAMPLE,0) != 0 -THEN -BEGIN - INSERT INTO sample_define ( - TAG_NAME, DESCRIPTION, LOCATION_ID, SUB_SYSTEM, DEVICE_TAG, POINT_TYPE, SAMPLE_PERIOD, SAMPLE_DEADBAND, VALUE, STATUS, UPDATE_TIME) VALUES - (NEW.TAG_NAME,NEW.DESCRIPTION, NEW.LOCATION_ID, NEW.SUB_SYSTEM, NEW.DEVICE, NEW.POINT_TYPE, NEW.SAMPLE_PERIOD,0, 0, 0, 0 ); -END; -ELSE -BEGIN - IF NEW.TAG_NAME<>OLD.TAG_NAME OR NEW.DESCRIPTION<>OLD.DESCRIPTION OR NEW.LOCATION_ID<>OLD.LOCATION_ID OR NEW.SUB_SYSTEM<>OLD.SUB_SYSTEM - OR NEW.DEVICE<>OLD.DEVICE OR NEW.POINT_TYPE<>OLD.POINT_TYPE OR NEW.SAMPLE_PERIOD<>OLD.SAMPLE_PERIOD - THEN - UPDATE sample_define - SET - sample_define.TAG_NAME = NEW.TAG_NAME, - sample_define.DESCRIPTION = NEW.DESCRIPTION , - sample_define.LOCATION_ID = NEW.LOCATION_ID , - sample_define.SUB_SYSTEM = NEW.SUB_SYSTEM , - sample_define.DEVICE_TAG = NEW.DEVICE, - sample_define.POINT_TYPE = NEW.POINT_TYPE, - sample_define.SAMPLE_PERIOD = NEW.SAMPLE_PERIOD - WHERE TAG_NAME= OLD.TAG_NAME; - END IF; -END; -END IF; -IF NEW.TAG_NAME<>OLD.TAG_NAME OR NEW.RTU_TAG<>OLD.RTU_TAG OR NEW.LOCATION_ID<>OLD.LOCATION_ID OR NEW.SUB_SYSTEM<>OLD.SUB_SYSTEM -OR NEW.DEV_TYPE<>OLD.DEV_TYPE OR NEW.POINT_TP_NAME<>OLD.POINT_TP_NAME OR NEW.DESCRIPTION<>OLD.DESCRIPTION -THEN - UPDATE digital_map_to_fes SET - KEY_ID_TAG = concat('digital' , '.' , NEW.TAG_NAME), - RTU_TAG = NEW.RTU_TAG, - LOCATION_ID =NEW.LOCATION_ID, - SUB_SYSTEM = NEW.SUB_SYSTEM, - DEV_TYPE = NEW.DEV_TYPE, - POINT_TP_NAME = NEW.POINT_TP_NAME, - DESCRIPTION = NEW.DESCRIPTION - WHERE KEY_ID_TAG=concat('digital' , '.' , OLD.TAG_NAME) ; -END IF; -IF NEW.VALUE_NUM<>OLD.VALUE_NUM THEN -BEGIN - IF NEW.VALUE_NUM = 1 THEN - BEGIN - UPDATE digital_map_to_fes SET - VALUE_NUM = NEW.VALUE_NUM, - DOT_NO2 = '-1', - DOT_NO3 = '-1', - DOT_NO4 = '-1', - DOT_NO5 = '-1' - WHERE KEY_ID_TAG=concat('digital' , '.' , OLD.TAG_NAME); - END; - ELSEIF NEW.VALUE_NUM = 2 THEN - BEGIN - UPDATE digital_map_to_fes SET - VALUE_NUM = NEW.VALUE_NUM, - DOT_NO3 = '-1', - DOT_NO4 = '-1', - DOT_NO5 = '-1' - WHERE KEY_ID_TAG=concat('digital' , '.' , OLD.TAG_NAME); - END; - ELSEIF NEW.VALUE_NUM = 3 THEN - BEGIN - UPDATE digital_map_to_fes SET - VALUE_NUM = NEW.VALUE_NUM, - DOT_NO4 = '-1', - DOT_NO5 = '-1' - WHERE KEY_ID_TAG=concat('digital' , '.' , OLD.TAG_NAME); - END; - ELSEIF NEW.VALUE_NUM = 4 THEN - BEGIN - UPDATE digital_map_to_fes SET - VALUE_NUM = NEW.VALUE_NUM, - DOT_NO5 = '-1' - WHERE KEY_ID_TAG=concat('digital' , '.' , OLD.TAG_NAME); - END; - ELSE - BEGIN - UPDATE digital_map_to_fes SET - VALUE_NUM = NEW.VALUE_NUM - WHERE KEY_ID_TAG=concat('digital' , '.' , OLD.TAG_NAME); - END; - END IF; -END; -END IF; -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'digital', 'tag_name', OLD.TAG_NAME, NEW.TAG_NAME, getTableSubSystem('digital')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TD_DIGITAL; -DELIMITER ;; -create trigger TD_DIGITAL BEFORE DELETE on digital for each ROW -BEGIN - -IF COALESCE(OLD.IS_CONTROL,0) <> 0 -THEN -DELETE FROM digital_control WHERE TAG_NAME=OLD.TAG_NAME ; -END IF; -IF COALESCE(OLD.IS_SAMPLE,0) <> 0 -THEN -DELETE FROM sample_define WHERE TAG_NAME= OLD.TAG_NAME ; -END IF; -DELETE FROM digital_map_to_fes WHERE KEY_ID_TAG=concat('digital' , '.' , OLD.TAG_NAME); -END;; -DELIMITER ; - -drop trigger if exists TDA_DIGITAL; -DELIMITER ;; -create trigger TDA_DIGITAL AFTER DELETE on digital for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'digital', 'tag_name', OLD.TAG_NAME, '', getTableSubSystem('digital')); -END IF; -END;; -DELIMITER ; - -drop table if exists fbd_diagram; -CREATE TABLE `fbd_diagram` ( - `NAME` varchar(64) NOT NULL COMMENT '名称', - `PART_NUMBER` decimal(10,0) NOT NULL COMMENT '图内序号', - `CONTENT` mediumtext NOT NULL COMMENT '内容', - `GROUP_ID` decimal(10,0) NOT NULL COMMENT '图组ID', - `ENABLE` decimal(10,0) NOT NULL COMMENT '图是否运行', - PRIMARY KEY (`NAME`,`PART_NUMBER`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='FBD图表'; - -drop table if exists fbd_group; -CREATE TABLE `fbd_group` ( - `ID` decimal(10,0) NOT NULL COMMENT '组ID', - `NAME` varchar(64) NOT NULL COMMENT '组名', - `DESCRIPTION` varchar(128) NOT NULL COMMENT '组描述', - `BUSINESS_TYPE` decimal(10,0) NOT NULL COMMENT '业务类型', - `REFRESH_TIME` decimal(10,0) NOT NULL COMMENT '刷新时间', - `VERSION` decimal(10,0) NOT NULL COMMENT '版本号', - `UPDATE_TIME` varchar(32) DEFAULT NULL COMMENT '组最后更新时间', - `LOCATION_ID` decimal(10,0) NOT NULL COMMENT '位置ID', - `SUB_SYSTEM` decimal(10,0) NOT NULL COMMENT '专业ID', - PRIMARY KEY (`ID`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='FBD图组定义表'; - -drop trigger if exists TIA_FBD_GROUP; -DELIMITER ;; -create trigger TIA_FBD_GROUP AFTER INSERT on fbd_group for each ROW -BEGIN - - IF getTriggerFlag() = TRUE THEN - INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) - VALUES (getMaxTriggerId(),getOpType('insert'),'fbd_group', 'id', '', NEW.ID, getTableSubSystem('fbd_group')); - END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_FBD_GROUP; -DELIMITER ;; -create trigger TUA_FBD_GROUP AFTER UPDATE on fbd_group for each ROW -BEGIN - - IF getTriggerFlag() = TRUE THEN - INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) - VALUES (getMaxTriggerId(),getOpType('update'),'fbd_group', 'id', OLD.ID, NEW.ID, getTableSubSystem('fbd_group')); - END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_FBD_GROUP; -DELIMITER ;; -create trigger TDA_FBD_GROUP AFTER DELETE on fbd_group for each ROW -BEGIN - - IF getTriggerFlag() = TRUE THEN - INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) - VALUES (getMaxTriggerId(),getOpType('delete'),'fbd_group', 'id', OLD.ID, '', getTableSubSystem('fbd_group')); - END IF; -END;; -DELIMITER ; - -drop table if exists fbd_template; -CREATE TABLE `fbd_template` ( - `NAME` varchar(64) NOT NULL COMMENT '名称', - `PART_NUMBER` decimal(10,0) NOT NULL COMMENT '图内序号', - `CONTENT` mediumtext NOT NULL COMMENT '内容', - PRIMARY KEY (`NAME`,`PART_NUMBER`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='FBD模板表'; - -drop table if exists hmi_type_info; -CREATE TABLE `hmi_type_info` ( - `HMI_ID` decimal(10,0) NOT NULL, - `HMI_NAME` varchar(64) NOT NULL, - `HMI_DESC` varchar(100) DEFAULT NULL, - `HMI_DEFINE` varchar(32) DEFAULT NULL, - `HMI_TYPE` decimal(10,0) DEFAULT NULL, - PRIMARY KEY (`HMI_ID`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='画面信息定义表'; - -drop trigger if exists TIA_HMI_TYPE_INFO; -DELIMITER ;; -create trigger TIA_HMI_TYPE_INFO AFTER INSERT on hmi_type_info for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'hmi_type_info', 'hmi_id', '', NEW.HMI_ID, getTableSubSystem('hmi_type_info')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_HMI_TYPE_INFO; -DELIMITER ;; -create trigger TUA_HMI_TYPE_INFO AFTER UPDATE on hmi_type_info for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'hmi_type_info', 'hmi_id', OLD.HMI_ID, NEW.HMI_ID, getTableSubSystem('hmi_type_info')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_HMI_TYPE_INFO; -DELIMITER ;; -create trigger TDA_HMI_TYPE_INFO AFTER DELETE on hmi_type_info for each ROW -BEGIN - #1是报表,0是HMI画面 - DECLARE num int; - SET num = (OLD.HMI_ID-1) DIV 32; - - #角色表的修改 - IF num = 0 THEN - UPDATE rm_role_hmi_info SET PERM_INFO1 = resetBit(PERM_INFO1,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) WHERE testNumber(PERM_INFO1,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) AND PERM_TYPE = '0'; - ELSEIF num = 1 THEN - UPDATE rm_role_hmi_info SET PERM_INFO2 = resetBit(PERM_INFO2,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) WHERE testNumber(PERM_INFO2,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) AND PERM_TYPE = '0'; - ELSEIF num = 2 THEN - UPDATE rm_role_hmi_info SET PERM_INFO3 = resetBit(PERM_INFO3,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) WHERE testNumber(PERM_INFO3,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) AND PERM_TYPE = '0'; - ELSEIF num = 3 THEN - UPDATE rm_role_hmi_info SET PERM_INFO4 = resetBit(PERM_INFO4,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) WHERE testNumber(PERM_INFO4,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) AND PERM_TYPE = '0'; - ELSEIF num = 4 THEN - UPDATE rm_role_hmi_info SET PERM_INFO5 = resetBit(PERM_INFO5,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) WHERE testNumber(PERM_INFO5,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) AND PERM_TYPE = '0'; - ELSEIF num = 5 THEN - UPDATE rm_role_hmi_info SET PERM_INFO6 = resetBit(PERM_INFO6,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) WHERE testNumber(PERM_INFO6,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) AND PERM_TYPE = '0'; - ELSEIF num = 6 THEN - UPDATE rm_role_hmi_info SET PERM_INFO7 = resetBit(PERM_INFO7,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) WHERE testNumber(PERM_INFO7,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) AND PERM_TYPE = '0'; - ELSEIF num = 7 THEN - UPDATE rm_role_hmi_info SET PERM_INFO8 = resetBit(PERM_INFO8,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) WHERE testNumber(PERM_INFO8,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) AND PERM_TYPE = '0'; - ELSEIF num = 8 THEN - UPDATE rm_role_hmi_info SET PERM_INFO9 = resetBit(PERM_INFO9,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) WHERE testNumber(PERM_INFO9,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) AND PERM_TYPE = '0'; - ELSEIF num = 9 THEN - UPDATE rm_role_hmi_info SET PERM_INFO10 = resetBit(PERM_INFO10,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) WHERE testNumber(PERM_INFO10,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) AND PERM_TYPE = '0'; - ELSEIF num = 10 THEN - UPDATE rm_role_hmi_info SET PERM_INFO11 = resetBit(PERM_INFO11,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) WHERE testNumber(PERM_INFO11,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) AND PERM_TYPE = '0'; - ELSEIF num = 11 THEN - UPDATE rm_role_hmi_info SET PERM_INFO12 = resetBit(PERM_INFO12,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) WHERE testNumber(PERM_INFO12,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) AND PERM_TYPE = '0'; - ELSEIF num = 12 THEN - UPDATE rm_role_hmi_info SET PERM_INFO13 = resetBit(PERM_INFO13,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) WHERE testNumber(PERM_INFO13,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) AND PERM_TYPE = '0'; - ELSEIF num = 13 THEN - UPDATE rm_role_hmi_info SET PERM_INFO14 = resetBit(PERM_INFO14,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) WHERE testNumber(PERM_INFO14,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) AND PERM_TYPE = '0'; - ELSEIF num = 14 THEN - UPDATE rm_role_hmi_info SET PERM_INFO15 = resetBit(PERM_INFO15,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) WHERE testNumber(PERM_INFO15,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) AND PERM_TYPE = '0'; - ELSEIF num = 15 THEN - UPDATE rm_role_hmi_info SET PERM_INFO16 = resetBit(PERM_INFO16,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) WHERE testNumber(PERM_INFO16,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) AND PERM_TYPE = '0'; - END IF; - - #用户组表的修改 - IF num = 0 THEN - UPDATE rm_userg_hmi_info SET PERM_INFO1 = resetBit(PERM_INFO1,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) WHERE testNumber(PERM_INFO1,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) AND PERM_TYPE = '0'; - ELSEIF num = 1 THEN - UPDATE rm_userg_hmi_info SET PERM_INFO2 = resetBit(PERM_INFO2,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) WHERE testNumber(PERM_INFO2,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) AND PERM_TYPE = '0'; - ELSEIF num = 2 THEN - UPDATE rm_userg_hmi_info SET PERM_INFO3 = resetBit(PERM_INFO3,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) WHERE testNumber(PERM_INFO3,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) AND PERM_TYPE = '0'; - ELSEIF num = 3 THEN - UPDATE rm_userg_hmi_info SET PERM_INFO4 = resetBit(PERM_INFO4,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) WHERE testNumber(PERM_INFO4,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) AND PERM_TYPE = '0'; - ELSEIF num = 4 THEN - UPDATE rm_userg_hmi_info SET PERM_INFO5 = resetBit(PERM_INFO5,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) WHERE testNumber(PERM_INFO5,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) AND PERM_TYPE = '0'; - ELSEIF num = 5 THEN - UPDATE rm_userg_hmi_info SET PERM_INFO6 = resetBit(PERM_INFO6,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) WHERE testNumber(PERM_INFO6,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) AND PERM_TYPE = '0'; - ELSEIF num = 6 THEN - UPDATE rm_userg_hmi_info SET PERM_INFO7 = resetBit(PERM_INFO7,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) WHERE testNumber(PERM_INFO7,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) AND PERM_TYPE = '0'; - ELSEIF num = 7 THEN - UPDATE rm_userg_hmi_info SET PERM_INFO8 = resetBit(PERM_INFO8,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) WHERE testNumber(PERM_INFO8,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) AND PERM_TYPE = '0'; - ELSEIF num = 8 THEN - UPDATE rm_userg_hmi_info SET PERM_INFO9 = resetBit(PERM_INFO9,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) WHERE testNumber(PERM_INFO9,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) AND PERM_TYPE = '0'; - ELSEIF num = 9 THEN - UPDATE rm_userg_hmi_info SET PERM_INFO10 = resetBit(PERM_INFO10,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) WHERE testNumber(PERM_INFO10,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) AND PERM_TYPE = '0'; - ELSEIF num = 10 THEN - UPDATE rm_userg_hmi_info SET PERM_INFO11 = resetBit(PERM_INFO11,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) WHERE testNumber(PERM_INFO11,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) AND PERM_TYPE = '0'; - ELSEIF num = 11 THEN - UPDATE rm_userg_hmi_info SET PERM_INFO12 = resetBit(PERM_INFO12,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) WHERE testNumber(PERM_INFO12,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) AND PERM_TYPE = '0'; - ELSEIF num = 12 THEN - UPDATE rm_userg_hmi_info SET PERM_INFO13 = resetBit(PERM_INFO13,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) WHERE testNumber(PERM_INFO13,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) AND PERM_TYPE = '0'; - ELSEIF num = 13 THEN - UPDATE rm_userg_hmi_info SET PERM_INFO14 = resetBit(PERM_INFO14,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) WHERE testNumber(PERM_INFO14,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) AND PERM_TYPE = '0'; - ELSEIF num = 14 THEN - UPDATE rm_userg_hmi_info SET PERM_INFO15 = resetBit(PERM_INFO15,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) WHERE testNumber(PERM_INFO15,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) AND PERM_TYPE = '0'; - ELSEIF num = 15 THEN - UPDATE rm_userg_hmi_info SET PERM_INFO16 = resetBit(PERM_INFO16,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) WHERE testNumber(PERM_INFO16,IF(OLD.HMI_ID%32=0,32,OLD.HMI_ID%32)) AND PERM_TYPE = '0'; - END IF; - -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'hmi_type_info', 'hmi_id', OLD.HMI_ID, '', getTableSubSystem('hmi_type_info')); -END IF; -END;; -DELIMITER ; - -drop table if exists ia_disposal_plan; -CREATE TABLE `ia_disposal_plan` ( - `KEY_ID_TAG` varchar(128) NOT NULL, - `DISPOSAL_PLAN` varchar(512) DEFAULT NULL, - `LOCATION_ID` decimal(10,0) NOT NULL, - PRIMARY KEY (`KEY_ID_TAG`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='处置预案表'; - -drop trigger if exists TIA_IA_DISPOSAL_PLAN; -DELIMITER ;; -create trigger TIA_IA_DISPOSAL_PLAN AFTER INSERT on ia_disposal_plan for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'ia_disposal_plan', 'KEY_ID_TAG', '',NEW.KEY_ID_TAG, getTableSubSystem('ia_disposal_plan')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_IA_DISPOSAL_PLAN; -DELIMITER ;; -create trigger TUA_IA_DISPOSAL_PLAN AFTER UPDATE on ia_disposal_plan for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'ia_disposal_plan', 'KEY_ID_TAG', OLD.KEY_ID_TAG, NEW.KEY_ID_TAG, getTableSubSystem('ia_disposal_plan')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_IA_DISPOSAL_PLAN; -DELIMITER ;; -create trigger TDA_IA_DISPOSAL_PLAN AFTER DELETE on ia_disposal_plan for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'ia_disposal_plan', 'KEY_ID_TAG', OLD.KEY_ID_TAG, '', getTableSubSystem('ia_disposal_plan')); -END IF; -END;; -DELIMITER ; - -drop table if exists mix; -CREATE TABLE `mix` ( - `TAG_NAME` varchar(64) NOT NULL COMMENT '标签名', - `DESCRIPTION` varchar(128) NOT NULL COMMENT '描述', - `DEVICE` varchar(64) DEFAULT NULL COMMENT '设备', - `SEQ_NO` decimal(10,0) DEFAULT NULL COMMENT '序号', - `LOCATION_ID` decimal(10,0) DEFAULT NULL COMMENT '车站', - `SUB_SYSTEM` decimal(10,0) DEFAULT NULL COMMENT '所属专业', - `RTU_TAG` varchar(64) DEFAULT NULL COMMENT '所属RTU', - `IS_CONTROL` decimal(10,0) DEFAULT NULL COMMENT '是否控制', - `STATE_TEXT_NAME` varchar(64) DEFAULT NULL COMMENT '数字量文本', - `GRAY` decimal(22,6) DEFAULT NULL COMMENT '灰度', - `CONTRAST` decimal(22,6) DEFAULT NULL COMMENT '对比度', - `QCOLOR` decimal(10,0) DEFAULT NULL COMMENT '拓扑着色', - `VALUE` decimal(10,0) DEFAULT NULL COMMENT '实时值', - `STATUS` decimal(10,0) DEFAULT NULL COMMENT '状态', - `LAST_UPDATE_TIME` decimal(20,0) DEFAULT NULL COMMENT '最进更新时间', - `LAST_CHANGE_TIME` decimal(20,0) DEFAULT NULL COMMENT '最近变位时间', - `RAW_VALUE` decimal(22,6) DEFAULT NULL COMMENT '原始值', - `METHOD` varchar(64) DEFAULT NULL COMMENT '策略', - `IS_OBJ_ALM_MANNER` decimal(10,0) DEFAULT '0' COMMENT '是否自定义告警', - `ALARM_PRIORITY` decimal(10,0) DEFAULT NULL COMMENT '告警优先级', - `PIC_NAME` varchar(64) DEFAULT NULL COMMENT '推图名', - `SOUND_NAME1` varchar(32) DEFAULT NULL COMMENT '告警声音文件1', - `SOUND_NAME2` varchar(32) DEFAULT NULL COMMENT '告警声音文件2', - `SOUND_NAME3` varchar(32) DEFAULT NULL COMMENT '告警声音文件3', - `ALARM_DELAY_TIME` decimal(10,0) DEFAULT NULL COMMENT '告警延迟时间', - `IS_WATER_ALM` decimal(10,0) DEFAULT NULL COMMENT '是否流水账', - `IS_ACK_ON_RTN` decimal(10,0) DEFAULT NULL COMMENT '是否返回自动确认', - `DEL_ACT_ON_ACK` decimal(10,0) DEFAULT NULL COMMENT '确认后删除动作', - `IS_NEVER_ALM_ON_RTN` decimal(10,0) DEFAULT NULL COMMENT '是否返回不上窗', - `REGION_ID` decimal(10,0) DEFAULT NULL COMMENT '责任区', - `OPT_HANDOVER_GROUP` varchar(64) DEFAULT NULL COMMENT '控制权限转移组', - `IS_SUMMARY` decimal(10,0) DEFAULT NULL COMMENT '是否摘要', - `SUMMARY_VALUE` decimal(10,0) DEFAULT NULL COMMENT '摘要值', - `SUMMARY_STATUS` decimal(10,0) DEFAULT NULL COMMENT '摘要状态', - `POINT_TYPE` decimal(10,0) DEFAULT NULL COMMENT '点类型', - `POINT_CLASS` decimal(10,0) DEFAULT NULL COMMENT '点类别 ', - `POINT_PROPERTY` decimal(10,0) DEFAULT NULL COMMENT '点属性', - `POINT_SORT` decimal(10,0) DEFAULT NULL COMMENT '测点种类 ', - `DEV_TYPE` decimal(10,0) DEFAULT NULL COMMENT '设备类型', - `POINT_TP_NAME` varchar(64) DEFAULT NULL COMMENT '点模板名', - `IS_SAMPLE` decimal(10,0) DEFAULT NULL COMMENT '是否采样', - `IS_STATISTICS` decimal(10,0) DEFAULT NULL COMMENT '是否统计', - `SAMPLE_PERIOD` decimal(10,0) DEFAULT NULL COMMENT '采样周期 ', - `CAMERA_TAG` varchar(64) DEFAULT NULL COMMENT '摄像头TAG', - `PRESET_ID` varchar(64) DEFAULT NULL COMMENT '预置点ID', - PRIMARY KEY (`TAG_NAME`), - KEY `IN_MIX` (`DEVICE`,`RTU_TAG`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='混合量输入参数表'; - -drop trigger if exists TI_MIX; -DELIMITER ;; -create trigger TI_MIX AFTER INSERT on mix for each ROW -BEGIN - -IF COALESCE(NEW.IS_CONTROL,0) <> 0 -THEN - IF COALESCE(NEW.POINT_TP_NAME,'') = '' THEN - INSERT INTO mix_control( - TAG_NAME, LOCATION_ID, SUB_SYSTEM, CTRL_ACT_NAME, CTRL_TYPE, IS_TAGT_STATE, CTRL_TIMEOUT, RESV_TIMEOUT, BASE, COEFF, CTRL_TOLERANCE, RANGE_UP, RANGE_LOW, RTU_TAG, OFFSET_NO, CTRL_ALIAS, POINT_TP_NAME) - VALUES ( - NEW.TAG_NAME, NEW.LOCATION_ID, NEW.SUB_SYSTEM, '', 0, 1, 30, 30, 0, 1, 0.01, 65536, 0, NEW.RTU_TAG, '-1', '', NEW.POINT_TP_NAME - ); - ELSE - INSERT INTO mix_control( - TAG_NAME, LOCATION_ID, SUB_SYSTEM, CTRL_ACT_NAME, CTRL_TYPE, IS_TAGT_STATE, CTRL_TIMEOUT, RESV_TIMEOUT, BASE, COEFF, CTRL_TOLERANCE, RANGE_UP, RANGE_LOW, RTU_TAG, OFFSET_NO, CTRL_ALIAS, POINT_TP_NAME) SELECT - NEW.TAG_NAME, NEW.LOCATION_ID, NEW.SUB_SYSTEM, CTRL_ACT_NAME, CTRL_TYPE, IS_TAGT_STATE, CTRL_TIMEOUT, RESV_TIMEOUT, BASE, COEFF, CTRL_TOLERANCE, RANGE_UP, RANGE_LOW, NEW.RTU_TAG, '-1', '', NEW.POINT_TP_NAME - FROM mix_temp_define WHERE TAG_NAME=NEW.POINT_TP_NAME; - END IF; -END IF; -IF COALESCE(NEW.IS_SAMPLE,0) <> 0 -THEN -INSERT INTO sample_define ( -TAG_NAME, DESCRIPTION, LOCATION_ID, SUB_SYSTEM, DEVICE_TAG, POINT_TYPE, SAMPLE_PERIOD, SAMPLE_DEADBAND, VALUE, STATUS, UPDATE_TIME) VALUES -(NEW.TAG_NAME, NEW.DESCRIPTION, NEW.LOCATION_ID, NEW.SUB_SYSTEM, NEW.DEVICE, NEW.POINT_TYPE, NEW.SAMPLE_PERIOD, 0, 0, 0, 0 ); -END IF; -IF COALESCE(NEW.POINT_TP_NAME,'') = '' THEN - INSERT INTO mix_map_to_fes ( - KEY_ID_TAG, LOCATION_ID, SUB_SYSTEM, DEV_TYPE, POINT_TP_NAME, RTU_TAG, DOT_NO, BASE, COEFF, RANGE_UP, RANGE_LOW, IS_FILTER_ERROR, IS_FILTER_DISTURB, DISTURB_TIME, DESCRIPTION) - VALUES ( - concat('mix' , '.' , NEW.TAG_NAME), NEW.LOCATION_ID, NEW.SUB_SYSTEM, NEW.DEV_TYPE, NEW.POINT_TP_NAME, NEW.RTU_TAG, '-1', 0, 1, 65535, 0, 1, 1, 5, NEW.DESCRIPTION - ); -ELSE - INSERT INTO mix_map_to_fes ( - KEY_ID_TAG, LOCATION_ID, SUB_SYSTEM, DEV_TYPE, POINT_TP_NAME, RTU_TAG, DOT_NO, BASE, COEFF, RANGE_UP, RANGE_LOW, IS_FILTER_ERROR, IS_FILTER_DISTURB, DISTURB_TIME, DESCRIPTION) SELECT - concat('mix' , '.' , NEW.TAG_NAME), NEW.LOCATION_ID, NEW.SUB_SYSTEM, NEW.DEV_TYPE, NEW.POINT_TP_NAME, NEW.RTU_TAG, '-1', BASE, COEFF, RANGE_UP, RANGE_LOW, IS_FILTER_ERROR, IS_FILTER_DISTURB, DISTURB_TIME, NEW.DESCRIPTION - FROM mix_temp_define WHERE TAG_NAME = NEW.POINT_TP_NAME; -END IF; -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'mix', 'tag_name', '', NEW.TAG_NAME, getTableSubSystem('mix')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TU_MIX; -DELIMITER ;; -create trigger TU_MIX AFTER UPDATE on mix for each ROW -BEGIN -IF COALESCE(OLD.IS_CONTROL,0) != 0 AND COALESCE(NEW.IS_CONTROL,0) = 0 -THEN -BEGIN - DELETE FROM mix_control WHERE TAG_NAME=OLD.TAG_NAME; - DELETE FROM opt_interlock_para WHERE TAG_NAME=OLD.TAG_NAME; -END; -ELSEIF COALESCE(OLD.IS_CONTROL,0) = 0 AND COALESCE(NEW.IS_CONTROL,0) != 0 -THEN -BEGIN - - IF COALESCE(NEW.POINT_TP_NAME,'') = '' THEN - INSERT INTO mix_control( - TAG_NAME, LOCATION_ID, SUB_SYSTEM, CTRL_ACT_NAME, CTRL_TYPE, IS_TAGT_STATE, CTRL_TIMEOUT, RESV_TIMEOUT, BASE, COEFF, CTRL_TOLERANCE, RANGE_UP, RANGE_LOW, RTU_TAG, OFFSET_NO, CTRL_ALIAS, POINT_TP_NAME) - VALUES ( - NEW.TAG_NAME, NEW.LOCATION_ID, NEW.SUB_SYSTEM, '', 0, 1, 30, 30, 0, 1, 0.01, 65536, 0, NEW.RTU_TAG, '-1', '', NEW.POINT_TP_NAME - ); - ELSE - INSERT INTO mix_control( - TAG_NAME, LOCATION_ID, SUB_SYSTEM, CTRL_ACT_NAME, CTRL_TYPE, IS_TAGT_STATE, CTRL_TIMEOUT, RESV_TIMEOUT, BASE, COEFF, CTRL_TOLERANCE, RANGE_UP, RANGE_LOW, RTU_TAG, OFFSET_NO, CTRL_ALIAS, POINT_TP_NAME) SELECT - NEW.TAG_NAME, NEW.LOCATION_ID, NEW.SUB_SYSTEM, CTRL_ACT_NAME, CTRL_TYPE, IS_TAGT_STATE, CTRL_TIMEOUT, RESV_TIMEOUT, BASE, COEFF, CTRL_TOLERANCE, RANGE_UP, RANGE_LOW, NEW.RTU_TAG, '-1', '', NEW.POINT_TP_NAME - FROM mix_temp_define WHERE TAG_NAME=NEW.POINT_TP_NAME; - END IF; - -END; -ELSE -BEGIN - IF NEW.TAG_NAME<>OLD.TAG_NAME OR NEW.LOCATION_ID<>OLD.LOCATION_ID OR NEW.SUB_SYSTEM<>OLD.SUB_SYSTEM OR NEW.RTU_TAG<>OLD.RTU_TAG - THEN - UPDATE mix_control - SET - TAG_NAME = NEW.TAG_NAME, - LOCATION_ID = NEW.LOCATION_ID, - SUB_SYSTEM = NEW.SUB_SYSTEM, - RTU_TAG = NEW.RTU_TAG, - POINT_TP_NAME = NEW.POINT_TP_NAME - WHERE TAG_NAME = OLD.TAG_NAME; - END IF; -END; -END IF; -IF COALESCE(OLD.IS_SAMPLE,0) != 0 AND COALESCE(NEW.IS_SAMPLE,0) = 0 -THEN -BEGIN - DELETE FROM sample_define WHERE TAG_NAME= OLD.TAG_NAME ; -END; -ELSEIF COALESCE(OLD.IS_SAMPLE,0) = 0 AND COALESCE(NEW.IS_SAMPLE,0) != 0 -THEN -BEGIN - INSERT INTO sample_define ( - TAG_NAME, DESCRIPTION, LOCATION_ID, SUB_SYSTEM, DEVICE_TAG, POINT_TYPE, SAMPLE_PERIOD, SAMPLE_DEADBAND, VALUE, STATUS, UPDATE_TIME) VALUES - ( NEW.TAG_NAME, NEW.DESCRIPTION, NEW.LOCATION_ID, NEW.SUB_SYSTEM, NEW.DEVICE, NEW.POINT_TYPE, NEW.SAMPLE_PERIOD, 0, 0, 0, 0 ); -END; -ELSE -BEGIN - IF NEW.TAG_NAME<>OLD.TAG_NAME OR NEW.DESCRIPTION<>OLD.DESCRIPTION OR NEW.LOCATION_ID<>OLD.LOCATION_ID OR NEW.SUB_SYSTEM<>OLD.SUB_SYSTEM - OR NEW.DEVICE<>OLD.DEVICE OR NEW.POINT_TYPE<>OLD.POINT_TYPE OR NEW.SAMPLE_PERIOD<>OLD.SAMPLE_PERIOD - THEN - UPDATE sample_define - SET - sample_define.TAG_NAME = NEW.TAG_NAME , - sample_define.DESCRIPTION = NEW.DESCRIPTION , - sample_define.LOCATION_ID = NEW.LOCATION_ID , - sample_define.SUB_SYSTEM = NEW.SUB_SYSTEM , - sample_define.DEVICE_TAG = NEW.DEVICE, - sample_define.POINT_TYPE = NEW.POINT_TYPE, - sample_define.SAMPLE_PERIOD = NEW.SAMPLE_PERIOD - WHERE TAG_NAME= OLD.TAG_NAME; - END IF; -END; -END IF; -IF NEW.TAG_NAME<>OLD.TAG_NAME OR NEW.LOCATION_ID<>OLD.LOCATION_ID OR NEW.SUB_SYSTEM<>OLD.SUB_SYSTEM OR NEW.DEV_TYPE<>OLD.DEV_TYPE -OR NEW.POINT_TP_NAME<>OLD.POINT_TP_NAME OR NEW.RTU_TAG<>OLD.RTU_TAG OR NEW.POINT_TYPE<>OLD.POINT_TYPE OR NEW.DESCRIPTION<>OLD.DESCRIPTION -THEN - UPDATE mix_map_to_fes SET - KEY_ID_TAG = concat('mix' , '.' , NEW.TAG_NAME), - LOCATION_ID =NEW.LOCATION_ID, - SUB_SYSTEM = NEW.SUB_SYSTEM, - DEV_TYPE = NEW.DEV_TYPE, - POINT_TP_NAME = NEW.POINT_TP_NAME, - RTU_TAG = NEW.RTU_TAG, - DESCRIPTION = NEW.DESCRIPTION - WHERE KEY_ID_TAG=concat('mix' , '.' , OLD.TAG_NAME); -END IF; -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'mix', 'tag_name', OLD.TAG_NAME, NEW.TAG_NAME, getTableSubSystem('mix')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TD_MIX; -DELIMITER ;; -create trigger TD_MIX BEFORE DELETE on mix for each ROW -BEGIN - -IF COALESCE(OLD.IS_CONTROL,0) <> 0 -THEN - DELETE FROM mix_control WHERE TAG_NAME=OLD.TAG_NAME; -END IF; -IF COALESCE(OLD.IS_SAMPLE,0) <> 0 -THEN - DELETE FROM sample_define WHERE TAG_NAME= OLD.TAG_NAME ; -END IF; -DELETE FROM mix_map_to_fes WHERE KEY_ID_TAG=concat('mix' , '.' , OLD.TAG_NAME); -END;; -DELIMITER ; - -drop trigger if exists TDA_MIX; -DELIMITER ;; -create trigger TDA_MIX AFTER DELETE on mix for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'mix', 'tag_name', OLD.TAG_NAME, '', getTableSubSystem('mix')); -END IF; -END;; -DELIMITER ; - -drop table if exists opt_ctrl_act_define; -CREATE TABLE `opt_ctrl_act_define` ( - `CTRL_GRP_NAME` varchar(64) NOT NULL COMMENT '控制动作组名', - `CTRL_GRP_NO` decimal(10,0) NOT NULL COMMENT '控制动作组号', - `CTRL_ACT_NAME` varchar(64) NOT NULL COMMENT '动作名', - `CTRL_ACT_TYPE` decimal(10,0) DEFAULT NULL COMMENT '控制类型', - `TARGET_VALUE` decimal(10,0) DEFAULT NULL COMMENT '目标值', - `ACTION_ALLOW` decimal(10,0) DEFAULT NULL COMMENT '控制动作 允许', - `VALUE_NUM` decimal(10,0) DEFAULT NULL COMMENT '分量数', - `CTRL_INDEX` decimal(10,0) DEFAULT NULL COMMENT '遥控点号索引', - `SUB_SYSTEM` decimal(10,0) NOT NULL COMMENT '专业', - PRIMARY KEY (`CTRL_GRP_NAME`,`CTRL_GRP_NO`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='控制动作定义表'; - -drop trigger if exists TIA_OPT_CTRL_ACT_DEFINE; -DELIMITER ;; -create trigger TIA_OPT_CTRL_ACT_DEFINE AFTER INSERT on opt_ctrl_act_define for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'opt_ctrl_act_define', 'ctrl_grp_name,ctrl_grp_no', '', concat(NEW.CTRL_GRP_NAME,',',NEW.CTRL_GRP_NO), getTableSubSystem('opt_ctrl_act_define')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_OPT_CTRL_ACT_DEFINE; -DELIMITER ;; -create trigger TUA_OPT_CTRL_ACT_DEFINE AFTER UPDATE on opt_ctrl_act_define for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'opt_ctrl_act_define', 'ctrl_grp_name,ctrl_grp_no', concat(OLD.CTRL_GRP_NAME,',',OLD.CTRL_GRP_NO), concat(NEW.CTRL_GRP_NAME,',',NEW.CTRL_GRP_NO), getTableSubSystem('opt_ctrl_act_define')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_OPT_CTRL_ACT_DEFINE; -DELIMITER ;; -create trigger TDA_OPT_CTRL_ACT_DEFINE AFTER DELETE on opt_ctrl_act_define for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'opt_ctrl_act_define', 'ctrl_grp_name,ctrl_grp_no', concat(OLD.CTRL_GRP_NAME,',',OLD.CTRL_GRP_NO), '', getTableSubSystem('opt_ctrl_act_define')); -END IF; -END;; -DELIMITER ; - -drop table if exists opt_handover_grp; -CREATE TABLE `opt_handover_grp` ( - `TAG_NAME` varchar(64) NOT NULL, - `DESCRIPTION` varchar(128) NOT NULL, - `LOCATION_ID` decimal(10,0) NOT NULL, - `SUB_SYSTEM` decimal(10,0) NOT NULL, - `EXTER_KEY_ID_TAG` varchar(128) DEFAULT NULL, - `PGROUP_NAME` varchar(64) DEFAULT NULL, - `DEV_TYPE` decimal(10,0) DEFAULT NULL, - `REGION_ID` decimal(10,0) DEFAULT NULL, - `RESV_TIMEOUT` decimal(10,0) DEFAULT NULL, - `TARGET_VALUE` decimal(10,0) DEFAULT NULL, - `GROUP_TAG` varchar(64) NOT NULL, - `LOCATION` decimal(10,0) DEFAULT NULL, - PRIMARY KEY (`TAG_NAME`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='权限转移组表'; - -drop trigger if exists TIA_OPT_HANDOVER_GRP; -DELIMITER ;; -create trigger TIA_OPT_HANDOVER_GRP AFTER INSERT on opt_handover_grp for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'opt_handover_grp', 'tag_name', '', NEW.TAG_NAME, getTableSubSystem('opt_handover_grp')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_OPT_HANDOVER_GRP; -DELIMITER ;; -create trigger TUA_OPT_HANDOVER_GRP AFTER UPDATE on opt_handover_grp for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'opt_handover_grp', 'tag_name', OLD.TAG_NAME, NEW.TAG_NAME, getTableSubSystem('opt_handover_grp')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_OPT_HANDOVER_GRP; -DELIMITER ;; -create trigger TDA_OPT_HANDOVER_GRP AFTER DELETE on opt_handover_grp for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'opt_handover_grp', 'tag_name', OLD.TAG_NAME, '', getTableSubSystem('opt_handover_grp')); -END IF; -END;; -DELIMITER ; - -drop table if exists opt_interlock_define; -CREATE TABLE `opt_interlock_define` ( - `TAG_NAME` varchar(64) NOT NULL, - `SUB_SYSTEM` decimal(10,0) NOT NULL, - `DESCRIPTION` varchar(128) NOT NULL, - `INTERLOCK_STR` varchar(4096) DEFAULT NULL, - PRIMARY KEY (`TAG_NAME`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='闭锁公式定义表'; - -drop trigger if exists TIA_OPT_INTERLOCK_DEFINE; -DELIMITER ;; -create trigger TIA_OPT_INTERLOCK_DEFINE AFTER INSERT on opt_interlock_define for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'opt_interlock_define', 'tag_name', '', NEW.TAG_NAME, getTableSubSystem('opt_interlock_define')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_OPT_INTERLOCK_DEFINE; -DELIMITER ;; -create trigger TUA_OPT_INTERLOCK_DEFINE AFTER UPDATE on opt_interlock_define for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'opt_interlock_define', 'tag_name', OLD.TAG_NAME, NEW.TAG_NAME, getTableSubSystem('opt_interlock_define')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_OPT_INTERLOCK_DEFINE; -DELIMITER ;; -create trigger TDA_OPT_INTERLOCK_DEFINE AFTER DELETE on opt_interlock_define for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'opt_interlock_define', 'tag_name', OLD.TAG_NAME, '', getTableSubSystem('opt_interlock_define')); -END IF; -END;; -DELIMITER ; - -drop table if exists opt_interlock_para; -CREATE TABLE `opt_interlock_para` ( - `TAG_NAME` varchar(64) NOT NULL COMMENT 'DO标签点,遥控的时候通过该标签匹配', - `DESCRIPTION` varchar(128) NOT NULL COMMENT 'DO描述', - `LOCATION_ID` decimal(10,0) NOT NULL COMMENT 'DO所属车站', - `SUB_SYSTEM` decimal(10,0) NOT NULL COMMENT '所属专业', - `INTERLOCK_TAG` varchar(64) DEFAULT NULL COMMENT '闭锁函数-对应闭锁定义表', - `INTERLOCK_NUM` decimal(10,0) DEFAULT NULL COMMENT '闭锁参数数量', - `INTERLOCK_IN_TAG1` varchar(64) DEFAULT NULL COMMENT '闭锁输入参数', - `INTERLOCK_IN_TAG2` varchar(64) DEFAULT NULL COMMENT '闭锁输入参数', - `INTERLOCK_IN_TAG3` varchar(64) DEFAULT NULL COMMENT '闭锁输入参数', - `INTERLOCK_IN_TAG4` varchar(64) DEFAULT NULL COMMENT '闭锁输入参数', - `INTERLOCK_IN_TAG5` varchar(64) DEFAULT NULL COMMENT '闭锁输入参数', - `INTERLOCK_IN_TAG6` varchar(64) DEFAULT NULL COMMENT '闭锁输入参数', - `INTERLOCK_IN_TAG7` varchar(64) DEFAULT NULL COMMENT '闭锁输入参数', - `INTERLOCK_IN_TAG8` varchar(64) DEFAULT NULL COMMENT '闭锁输入参数', - `INTERLOCK_IN_TAG9` varchar(64) DEFAULT NULL COMMENT '闭锁输入参数', - `INTERLOCK_IN_TAG10` varchar(64) DEFAULT NULL COMMENT '闭锁输入参数', - `INTERLOCK_IN_TAG11` varchar(64) DEFAULT NULL COMMENT '闭锁输入参数', - `INTERLOCK_IN_TAG12` varchar(64) DEFAULT NULL COMMENT '闭锁输入参数', - `INTERLOCK_IN_TAG13` varchar(64) DEFAULT NULL COMMENT '闭锁输入参数', - `INTERLOCK_IN_TAG14` varchar(64) DEFAULT NULL COMMENT '闭锁输入参数', - `INTERLOCK_IN_TAG15` varchar(64) DEFAULT NULL COMMENT '闭锁输入参数', - `INTERLOCK_IN_TAG16` varchar(64) DEFAULT NULL COMMENT '闭锁输入参数', - `INTERLOCK_IN_TAG17` varchar(64) DEFAULT NULL, - `INTERLOCK_IN_TAG18` varchar(64) DEFAULT NULL, - `INTERLOCK_IN_TAG19` varchar(64) DEFAULT NULL, - `INTERLOCK_IN_TAG20` varchar(64) DEFAULT NULL, - PRIMARY KEY (`TAG_NAME`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='闭锁参数表'; - -drop trigger if exists TIA_OPT_INTERLOCK_PARA; -DELIMITER ;; -create trigger TIA_OPT_INTERLOCK_PARA AFTER INSERT on opt_interlock_para for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'opt_interlock_para', 'tag_name', '', NEW.TAG_NAME, getTableSubSystem('opt_interlock_para')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_OPT_INTERLOCK_PARA; -DELIMITER ;; -create trigger TUA_OPT_INTERLOCK_PARA AFTER UPDATE on opt_interlock_para for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'opt_interlock_para', 'tag_name', OLD.TAG_NAME, NEW.TAG_NAME, getTableSubSystem('opt_interlock_para')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_OPT_INTERLOCK_PARA; -DELIMITER ;; -create trigger TDA_OPT_INTERLOCK_PARA AFTER DELETE on opt_interlock_para for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'opt_interlock_para', 'tag_name', OLD.TAG_NAME, '', getTableSubSystem('opt_interlock_para')); -END IF; -END;; -DELIMITER ; - -drop table if exists opt_shield_define; -CREATE TABLE `opt_shield_define` ( - `SHIELD_ID` decimal(10,0) NOT NULL COMMENT '标志牌ID', - `TAG_NAME` varchar(64) NOT NULL COMMENT '标签名', - `DESCRIPTION` varchar(128) DEFAULT NULL COMMENT '屏蔽描述(遥控屏蔽/检修屏蔽)', - `PRIORITY` decimal(10,0) DEFAULT NULL COMMENT '屏蔽等级', - `SHIELD_TYPE` decimal(10,0) DEFAULT NULL COMMENT '屏蔽类型', - `SHIELD_PROP` decimal(10,0) DEFAULT NULL COMMENT '屏蔽属性(禁止控制/刷新/告警)', - `SHIELD_SET` decimal(10,0) DEFAULT NULL, - `SHIELD_CANCEL` decimal(10,0) DEFAULT NULL COMMENT '屏蔽取消值', - `ICON_NAME` varchar(128) DEFAULT NULL COMMENT '图元名称', - PRIMARY KEY (`SHIELD_ID`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='屏蔽定义表'; - -drop trigger if exists TIA_OPT_SHIELD_DEFINE; -DELIMITER ;; -create trigger TIA_OPT_SHIELD_DEFINE AFTER INSERT on opt_shield_define for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'opt_shield_define', 'shield_id', '', NEW.SHIELD_ID, getTableSubSystem('opt_shield_define')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_OPT_SHIELD_DEFINE; -DELIMITER ;; -create trigger TUA_OPT_SHIELD_DEFINE AFTER UPDATE on opt_shield_define for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'opt_shield_define', 'shield_id', OLD.SHIELD_ID, NEW.SHIELD_ID, getTableSubSystem('opt_shield_define')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_OPT_SHIELD_DEFINE; -DELIMITER ;; -create trigger TDA_OPT_SHIELD_DEFINE AFTER DELETE on opt_shield_define for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'opt_shield_define', 'shield_id', OLD.SHIELD_ID, '', getTableSubSystem('opt_shield_define')); -END IF; -END;; -DELIMITER ; - -drop table if exists opt_shield_info; -CREATE TABLE `opt_shield_info` ( - `SHIELD_ID` decimal(10,0) NOT NULL COMMENT '屏蔽id', - `SHIELD_NAME` varchar(128) NOT NULL COMMENT '屏蔽事由', - `SHIELD_TYPE` decimal(10,0) NOT NULL COMMENT '屏蔽类型', - `SHIELD_STATUS` decimal(10,0) NOT NULL COMMENT '屏蔽状态', - `SHIELD_ENABLE` decimal(10,0) NOT NULL COMMENT '屏蔽使能', - `LOCATION_ID` decimal(10,0) NOT NULL COMMENT '所属车站', - `SUB_SYSTEM` decimal(10,0) NOT NULL COMMENT '所属专业', - `SHIELD_TIME` decimal(20,0) NOT NULL COMMENT '屏蔽更新时间', - `TIME_ID` decimal(10,0) NOT NULL COMMENT '时段定义', - `HOST_NAME` varchar(64) DEFAULT NULL COMMENT '操作主机名', - `USER_ID` decimal(10,0) DEFAULT NULL COMMENT '用户ID', - `USER_GROUP_ID` decimal(10,0) DEFAULT NULL COMMENT '用户组ID', - `DESCRIPTION` varchar(128) DEFAULT NULL COMMENT '屏蔽描述', - PRIMARY KEY (`SHIELD_ID`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='屏蔽信息表'; - -drop trigger if exists TIA_OPT_SHIELD_INFO; -DELIMITER ;; -create trigger TIA_OPT_SHIELD_INFO AFTER INSERT on opt_shield_info for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'opt_shield_info', 'shield_id', '', NEW.SHIELD_ID, getTableSubSystem('opt_shield_info')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_OPT_SHIELD_INFO; -DELIMITER ;; -create trigger TUA_OPT_SHIELD_INFO AFTER UPDATE on opt_shield_info for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'opt_shield_info', 'shield_id', OLD.SHIELD_ID, NEW.SHIELD_ID, getTableSubSystem('opt_shield_info')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_OPT_SHIELD_INFO; -DELIMITER ;; -create trigger TDA_OPT_SHIELD_INFO AFTER DELETE on opt_shield_info for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'opt_shield_info', 'shield_id', OLD.SHIELD_ID, '', getTableSubSystem('opt_shield_info')); -END IF; -END;; -DELIMITER ; - -drop table if exists opt_shield_obj; -CREATE TABLE `opt_shield_obj` ( - `SHIELD_ID` decimal(10,0) NOT NULL COMMENT '屏蔽id', - `KEY_ID_TAG` varchar(128) NOT NULL COMMENT '屏蔽key标签', - `SHIELD_MODE` decimal(10,0) NOT NULL COMMENT '屏蔽模式', - `LOCATION_ID` decimal(10,0) NOT NULL COMMENT '所属车站', - `SUB_SYSTEM` decimal(10,0) NOT NULL COMMENT '所属专业', - `SHIELD_OBJECT` varchar(64) DEFAULT NULL COMMENT '屏蔽对象', - PRIMARY KEY (`SHIELD_ID`,`KEY_ID_TAG`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='屏蔽对象表'; - -drop trigger if exists TIA_OPT_SHIELD_OBJ; -DELIMITER ;; -create trigger TIA_OPT_SHIELD_OBJ AFTER INSERT on opt_shield_obj for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'opt_shield_obj', 'shield_id,key_id_tag', '', concat(NEW.SHIELD_ID,',',NEW.KEY_ID_TAG), getTableSubSystem('opt_shield_obj')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_OPT_SHIELD_OBJ; -DELIMITER ;; -create trigger TUA_OPT_SHIELD_OBJ AFTER UPDATE on opt_shield_obj for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'opt_shield_obj', 'shield_id,key_id_tag', concat(OLD.SHIELD_ID,',',OLD.KEY_ID_TAG), concat(NEW.SHIELD_ID,',',NEW.KEY_ID_TAG), getTableSubSystem('opt_shield_obj')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_OPT_SHIELD_OBJ; -DELIMITER ;; -create trigger TDA_OPT_SHIELD_OBJ AFTER DELETE on opt_shield_obj for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'opt_shield_obj', 'shield_id,key_id_tag', concat(OLD.SHIELD_ID,',',OLD.KEY_ID_TAG), '', getTableSubSystem('opt_shield_obj')); -END IF; -END;; -DELIMITER ; - -drop table if exists opt_shield_time; -CREATE TABLE `opt_shield_time` ( - `TIME_ID` decimal(10,0) NOT NULL COMMENT '时段id', - `TIME_TYPE` decimal(10,0) NOT NULL COMMENT '时段类型', - `START_TIME` varchar(64) NOT NULL COMMENT '开始时间', - `END_TIME` varchar(64) NOT NULL COMMENT '结束时间', - `TIME_OPTION` decimal(10,0) NOT NULL COMMENT '时间选项', - PRIMARY KEY (`TIME_ID`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='时段定义表'; - -drop trigger if exists TIA_OPT_SHIELD_TIME; -DELIMITER ;; -create trigger TIA_OPT_SHIELD_TIME AFTER INSERT on opt_shield_time for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'opt_shield_time', 'time_id', '', NEW.TIME_ID, getTableSubSystem('opt_shield_time')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_OPT_SHIELD_TIME; -DELIMITER ;; -create trigger TUA_OPT_SHIELD_TIME AFTER UPDATE on opt_shield_time for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'opt_shield_time', 'time_id', OLD.TIME_ID, NEW.TIME_ID, getTableSubSystem('opt_shield_time')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_OPT_SHIELD_TIME; -DELIMITER ;; -create trigger TDA_OPT_SHIELD_TIME AFTER DELETE on opt_shield_time for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'opt_shield_time', 'time_id', OLD.TIME_ID, '', getTableSubSystem('opt_shield_time')); -END IF; -END;; -DELIMITER ; - -drop table if exists opt_tag_info; -CREATE TABLE `opt_tag_info` ( - `KEY_ID_TAG` varchar(128) NOT NULL COMMENT 'KEY标签', - `TAG_TYPE` decimal(10,0) NOT NULL COMMENT '标签类型', - `OPT_TIME` decimal(20,0) DEFAULT NULL COMMENT '操作时间', - `LOCATION_ID` decimal(10,0) NOT NULL COMMENT '车站', - `SUB_SYSTEM` decimal(10,0) NOT NULL COMMENT '专业', - `SET_VALUE` decimal(22,6) DEFAULT NULL COMMENT '设置值', - `STATE_TEXT` varchar(64) DEFAULT NULL COMMENT '状态文本', - `HOST_NAME` varchar(64) DEFAULT NULL COMMENT '主机', - `USER_NAME` varchar(64) DEFAULT NULL COMMENT '用户', - `USER_GROUP` varchar(64) DEFAULT NULL COMMENT '点标签一栏表', - PRIMARY KEY (`KEY_ID_TAG`,`TAG_TYPE`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='标签信息表'; - -drop trigger if exists TIA_OPT_TAG_INFO; -DELIMITER ;; -create trigger TIA_OPT_TAG_INFO AFTER INSERT on opt_tag_info for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'opt_tag_info', 'key_id_tag,tag_type', '', concat(NEW.KEY_ID_TAG,',',NEW.TAG_TYPE), getTableSubSystem('opt_tag_info')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_OPT_TAG_INFO; -DELIMITER ;; -create trigger TUA_OPT_TAG_INFO AFTER UPDATE on opt_tag_info for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'opt_tag_info', 'key_id_tag,tag_type', concat(OLD.KEY_ID_TAG,',',OLD.TAG_TYPE), concat(NEW.KEY_ID_TAG,',',NEW.TAG_TYPE), getTableSubSystem('opt_tag_info')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_OPT_TAG_INFO; -DELIMITER ;; -create trigger TDA_OPT_TAG_INFO AFTER DELETE on opt_tag_info for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'opt_tag_info', 'key_id_tag,tag_type', concat(OLD.KEY_ID_TAG,',',OLD.TAG_TYPE), '', getTableSubSystem('opt_tag_info')); -END IF; -END;; -DELIMITER ; - -drop table if exists opt_token_define; -CREATE TABLE `opt_token_define` ( - `TOKEN_ID` decimal(10,0) NOT NULL COMMENT '标志牌ID', - `TAG_NAME` varchar(64) NOT NULL COMMENT '标签名', - `DESCRIPTION` varchar(128) DEFAULT NULL COMMENT '标志牌描述', - `PRIORITY` decimal(10,0) DEFAULT NULL COMMENT '标志牌等级', - `TOKEN_TYPE` decimal(10,0) DEFAULT NULL COMMENT '标志牌类型', - `TOKEN_PROP` decimal(10,0) DEFAULT NULL COMMENT '标志牌属性', - `TOKEN_SOURCE` decimal(10,0) DEFAULT NULL COMMENT '标志牌来源', - `ICON_NAME` varchar(128) DEFAULT NULL COMMENT '图元名称', - `TOKEN_SET` decimal(10,0) DEFAULT NULL COMMENT '标志牌挂牌值', - `TOKEN_CANCEL` decimal(10,0) DEFAULT NULL COMMENT '标志牌摘牌值', - `SYNC_P_TAG` varchar(64) DEFAULT NULL COMMENT '同步点标签', - `TOKEN_POS_X` decimal(10,0) DEFAULT NULL COMMENT '图像中X坐标', - `TOKEN_POS_Y` decimal(10,0) DEFAULT NULL COMMENT '图像中Y坐标', - PRIMARY KEY (`TOKEN_ID`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='挂牌定义表'; - -drop trigger if exists TIA_OPT_TOKEN_DEFINE; -DELIMITER ;; -create trigger TIA_OPT_TOKEN_DEFINE AFTER INSERT on opt_token_define for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'opt_token_define', 'token_id', '', NEW.TOKEN_ID, getTableSubSystem('opt_token_define')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_OPT_TOKEN_DEFINE; -DELIMITER ;; -create trigger TUA_OPT_TOKEN_DEFINE AFTER UPDATE on opt_token_define for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'opt_token_define', 'token_id', OLD.TOKEN_ID, NEW.TOKEN_ID, getTableSubSystem('opt_token_define')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_OPT_TOKEN_DEFINE; -DELIMITER ;; -create trigger TDA_OPT_TOKEN_DEFINE AFTER DELETE on opt_token_define for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'opt_token_define', 'token_id', OLD.TOKEN_ID, '', getTableSubSystem('opt_token_define')); -END IF; -END;; -DELIMITER ; - -drop table if exists opt_token_info; -CREATE TABLE `opt_token_info` ( - `TOKEN_ID` decimal(10,0) NOT NULL COMMENT '标志牌ID', - `KEY_ID_TAG` varchar(128) NOT NULL COMMENT '对象KEYID', - `OPT_TIME` decimal(20,0) DEFAULT NULL COMMENT '操作时间', - `LOCATION_ID` decimal(10,0) NOT NULL COMMENT '所属车站', - `SUB_SYSTEM` decimal(10,0) NOT NULL COMMENT '所属专业', - `DEVICE` varchar(64) DEFAULT NULL COMMENT '挂牌设备', - `TOKEN_POS_X` decimal(10,0) DEFAULT NULL COMMENT '图形中X坐标', - `TOKEN_POS_Y` decimal(10,0) DEFAULT NULL COMMENT '图形中Y坐标', - `IS_DISPLAY` decimal(10,0) DEFAULT NULL COMMENT '是否显示', - `HOST_NAME` varchar(64) DEFAULT NULL COMMENT '操作主机名', - `USER_NAME` varchar(64) DEFAULT NULL COMMENT '操作用户名', - `USER_GROUP` varchar(64) DEFAULT NULL COMMENT '操作用户组名', - `GRAPH_NAME` varchar(64) DEFAULT NULL COMMENT '图形名称', - `NOTE` varchar(128) DEFAULT NULL COMMENT '注释', - PRIMARY KEY (`TOKEN_ID`,`KEY_ID_TAG`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='挂牌信息表'; - -drop trigger if exists TIA_OPT_TOKEN_INFO; -DELIMITER ;; -create trigger TIA_OPT_TOKEN_INFO AFTER INSERT on opt_token_info for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'opt_token_info', 'token_id,key_id_tag', '', concat(NEW.TOKEN_ID,',',NEW.KEY_ID_TAG), getTableSubSystem('opt_token_info')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_OPT_TOKEN_INFO; -DELIMITER ;; -create trigger TUA_OPT_TOKEN_INFO AFTER UPDATE on opt_token_info for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'opt_token_info', 'token_id,key_id_tag', concat(OLD.TOKEN_ID,',',OLD.KEY_ID_TAG), concat(NEW.TOKEN_ID,',',NEW.KEY_ID_TAG), getTableSubSystem('opt_token_info')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_OPT_TOKEN_INFO; -DELIMITER ;; -create trigger TDA_OPT_TOKEN_INFO AFTER DELETE on opt_token_info for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'opt_token_info', 'token_id,key_id_tag', concat(OLD.TOKEN_ID,',',OLD.KEY_ID_TAG), '', getTableSubSystem('opt_token_info')); -END IF; -END;; -DELIMITER ; - -drop table if exists region_info; -CREATE TABLE `region_info` ( - `REGION_ID` decimal(10,0) NOT NULL, - `TAG_NAME` varchar(64) NOT NULL, - `REGION_NO` decimal(10,0) DEFAULT NULL, - `DESCRIPTION` varchar(128) DEFAULT NULL, - `SUB_SYSTEM` decimal(10,0) DEFAULT NULL, - PRIMARY KEY (`REGION_ID`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='设备责任区信息表'; - -drop trigger if exists TIA_REGION_INFO; -DELIMITER ;; -create trigger TIA_REGION_INFO AFTER INSERT on region_info for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'region_info', 'region_id', '', NEW.REGION_ID, getTableSubSystem('region_info')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_REGION_INFO; -DELIMITER ;; -create trigger TUA_REGION_INFO AFTER UPDATE on region_info for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'region_info', 'region_id', OLD.REGION_ID, NEW.REGION_ID, getTableSubSystem('region_info')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_REGION_INFO; -DELIMITER ;; -create trigger TDA_REGION_INFO AFTER DELETE on region_info for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'region_info', 'region_id', OLD.REGION_ID, '', getTableSubSystem('region_info')); -END IF; -END;; -DELIMITER ; - -drop table if exists report_type_info; -CREATE TABLE `report_type_info` ( - `REPORT_ID` decimal(10,0) NOT NULL COMMENT '报表ID ', - `REPORT_NAME` varchar(64) DEFAULT NULL COMMENT '报表名称 ', - `REPORT_DESC` varchar(128) DEFAULT NULL COMMENT '报表描述 ', - `REPORT_DEFINE` varchar(32) DEFAULT NULL COMMENT '报表定义 ', - PRIMARY KEY (`REPORT_ID`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='报表类型表'; - -drop trigger if exists TIA_REPORT_TYPE_INFO; -DELIMITER ;; -create trigger TIA_REPORT_TYPE_INFO AFTER INSERT on report_type_info for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'report_type_info', 'report_id', '', NEW.REPORT_ID, getTableSubSystem('report_type_info')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_REPORT_TYPE_INFO; -DELIMITER ;; -create trigger TUA_REPORT_TYPE_INFO AFTER UPDATE on report_type_info for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'report_type_info', 'report_id', OLD.REPORT_ID, NEW.REPORT_ID, getTableSubSystem('report_type_info')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_REPORT_TYPE_INFO; -DELIMITER ;; -create trigger TDA_REPORT_TYPE_INFO AFTER DELETE on report_type_info for each ROW -BEGIN - #PERM_TYPE = 1是报表,0是HMI画面 - DECLARE num int; - SET num = (OLD.REPORT_ID-1) DIV 32; - - #角色表的修改 - IF num = 0 THEN - UPDATE rm_role_hmi_info SET PERM_INFO1 = resetBit(PERM_INFO1,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) WHERE testNumber(PERM_INFO1,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) AND PERM_TYPE = '1'; - ELSEIF num = 1 THEN - UPDATE rm_role_hmi_info SET PERM_INFO2 = resetBit(PERM_INFO2,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) WHERE testNumber(PERM_INFO2,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) AND PERM_TYPE = '1'; - ELSEIF num = 2 THEN - UPDATE rm_role_hmi_info SET PERM_INFO3 = resetBit(PERM_INFO3,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) WHERE testNumber(PERM_INFO3,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) AND PERM_TYPE = '1'; - ELSEIF num = 3 THEN - UPDATE rm_role_hmi_info SET PERM_INFO4 = resetBit(PERM_INFO4,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) WHERE testNumber(PERM_INFO4,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) AND PERM_TYPE = '1'; - ELSEIF num = 4 THEN - UPDATE rm_role_hmi_info SET PERM_INFO5 = resetBit(PERM_INFO5,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) WHERE testNumber(PERM_INFO5,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) AND PERM_TYPE = '1'; - ELSEIF num = 5 THEN - UPDATE rm_role_hmi_info SET PERM_INFO6 = resetBit(PERM_INFO6,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) WHERE testNumber(PERM_INFO6,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) AND PERM_TYPE = '1'; - ELSEIF num = 6 THEN - UPDATE rm_role_hmi_info SET PERM_INFO7 = resetBit(PERM_INFO7,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) WHERE testNumber(PERM_INFO7,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) AND PERM_TYPE = '1'; - ELSEIF num = 7 THEN - UPDATE rm_role_hmi_info SET PERM_INFO8 = resetBit(PERM_INFO8,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) WHERE testNumber(PERM_INFO8,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) AND PERM_TYPE = '1'; - ELSEIF num = 8 THEN - UPDATE rm_role_hmi_info SET PERM_INFO9 = resetBit(PERM_INFO9,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) WHERE testNumber(PERM_INFO9,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) AND PERM_TYPE = '1'; - ELSEIF num = 9 THEN - UPDATE rm_role_hmi_info SET PERM_INFO10 = resetBit(PERM_INFO10,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) WHERE testNumber(PERM_INFO10,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) AND PERM_TYPE = '1'; - ELSEIF num = 10 THEN - UPDATE rm_role_hmi_info SET PERM_INFO11 = resetBit(PERM_INFO11,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) WHERE testNumber(PERM_INFO11,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) AND PERM_TYPE = '1'; - ELSEIF num = 11 THEN - UPDATE rm_role_hmi_info SET PERM_INFO12 = resetBit(PERM_INFO12,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) WHERE testNumber(PERM_INFO12,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) AND PERM_TYPE = '1'; - ELSEIF num = 12 THEN - UPDATE rm_role_hmi_info SET PERM_INFO13 = resetBit(PERM_INFO13,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) WHERE testNumber(PERM_INFO13,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) AND PERM_TYPE = '1'; - ELSEIF num = 13 THEN - UPDATE rm_role_hmi_info SET PERM_INFO14 = resetBit(PERM_INFO14,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) WHERE testNumber(PERM_INFO14,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) AND PERM_TYPE = '1'; - ELSEIF num = 14 THEN - UPDATE rm_role_hmi_info SET PERM_INFO15 = resetBit(PERM_INFO15,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) WHERE testNumber(PERM_INFO15,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) AND PERM_TYPE = '1'; - ELSEIF num = 15 THEN - UPDATE rm_role_hmi_info SET PERM_INFO16 = resetBit(PERM_INFO16,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) WHERE testNumber(PERM_INFO16,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) AND PERM_TYPE = '1'; - END IF; - - #用户组表的修改 - IF num = 0 THEN - UPDATE rm_userg_hmi_info SET PERM_INFO1 = resetBit(PERM_INFO1,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) WHERE testNumber(PERM_INFO1,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) AND PERM_TYPE = '1'; - ELSEIF num = 1 THEN - UPDATE rm_userg_hmi_info SET PERM_INFO2 = resetBit(PERM_INFO2,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) WHERE testNumber(PERM_INFO2,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) AND PERM_TYPE = '1'; - ELSEIF num = 2 THEN - UPDATE rm_userg_hmi_info SET PERM_INFO3 = resetBit(PERM_INFO3,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) WHERE testNumber(PERM_INFO3,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) AND PERM_TYPE = '1'; - ELSEIF num = 3 THEN - UPDATE rm_userg_hmi_info SET PERM_INFO4 = resetBit(PERM_INFO4,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) WHERE testNumber(PERM_INFO4,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) AND PERM_TYPE = '1'; - ELSEIF num = 4 THEN - UPDATE rm_userg_hmi_info SET PERM_INFO5 = resetBit(PERM_INFO5,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) WHERE testNumber(PERM_INFO5,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) AND PERM_TYPE = '1'; - ELSEIF num = 5 THEN - UPDATE rm_userg_hmi_info SET PERM_INFO6 = resetBit(PERM_INFO6,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) WHERE testNumber(PERM_INFO6,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) AND PERM_TYPE = '1'; - ELSEIF num = 6 THEN - UPDATE rm_userg_hmi_info SET PERM_INFO7 = resetBit(PERM_INFO7,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) WHERE testNumber(PERM_INFO7,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) AND PERM_TYPE = '1'; - ELSEIF num = 7 THEN - UPDATE rm_userg_hmi_info SET PERM_INFO8 = resetBit(PERM_INFO8,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) WHERE testNumber(PERM_INFO8,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) AND PERM_TYPE = '1'; - ELSEIF num = 8 THEN - UPDATE rm_userg_hmi_info SET PERM_INFO9 = resetBit(PERM_INFO9,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) WHERE testNumber(PERM_INFO9,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) AND PERM_TYPE = '1'; - ELSEIF num = 9 THEN - UPDATE rm_userg_hmi_info SET PERM_INFO10 = resetBit(PERM_INFO10,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) WHERE testNumber(PERM_INFO10,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) AND PERM_TYPE = '1'; - ELSEIF num = 10 THEN - UPDATE rm_userg_hmi_info SET PERM_INFO11 = resetBit(PERM_INFO11,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) WHERE testNumber(PERM_INFO11,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) AND PERM_TYPE = '1'; - ELSEIF num = 11 THEN - UPDATE rm_userg_hmi_info SET PERM_INFO12 = resetBit(PERM_INFO12,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) WHERE testNumber(PERM_INFO12,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) AND PERM_TYPE = '1'; - ELSEIF num = 12 THEN - UPDATE rm_userg_hmi_info SET PERM_INFO13 = resetBit(PERM_INFO13,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) WHERE testNumber(PERM_INFO13,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) AND PERM_TYPE = '1'; - ELSEIF num = 13 THEN - UPDATE rm_userg_hmi_info SET PERM_INFO14 = resetBit(PERM_INFO14,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) WHERE testNumber(PERM_INFO14,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) AND PERM_TYPE = '1'; - ELSEIF num = 14 THEN - UPDATE rm_userg_hmi_info SET PERM_INFO15 = resetBit(PERM_INFO15,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) WHERE testNumber(PERM_INFO15,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) AND PERM_TYPE = '1'; - ELSEIF num = 15 THEN - UPDATE rm_userg_hmi_info SET PERM_INFO16 = resetBit(PERM_INFO16,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) WHERE testNumber(PERM_INFO16,IF(OLD.REPORT_ID%32=0,32,OLD.REPORT_ID%32)) AND PERM_TYPE = '1'; - END IF; - - DELETE FROM t_sys_table_file_tree WHERE TREECODE = OLD.REPORT_DEFINE; - -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'report_type_info', 'report_id', OLD.REPORT_ID, '', getTableSubSystem('report_type_info')); -END IF; -END;; -DELIMITER ; - -drop table if exists rm_dept_def; -CREATE TABLE `rm_dept_def` ( - `DEPT_ID` decimal(10,0) NOT NULL COMMENT '部门ID号', - `DEPT_NAME` varchar(64) NOT NULL COMMENT '部门名称', - `PERM_DEPT` decimal(10,0) DEFAULT NULL COMMENT '所属部门', - `DEPT_DESC` varchar(100) DEFAULT NULL COMMENT '部门描述', - PRIMARY KEY (`DEPT_ID`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='部门定义表'; - -drop trigger if exists TIA_RM_DEPT_DEF; -DELIMITER ;; -create trigger TIA_RM_DEPT_DEF AFTER INSERT on rm_dept_def for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'rm_dept_def', 'dept_id', '', NEW.DEPT_ID, getTableSubSystem('rm_dept_def')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_RM_DEPT_DEF; -DELIMITER ;; -create trigger TUA_RM_DEPT_DEF AFTER UPDATE on rm_dept_def for each ROW -BEGIN - DECLARE oldNum int; - DECLARE newNum int; - SET oldNum = (OLD.DEPT_ID-1) DIV 32; - SET newNum = (NEW.DEPT_ID-1) DIV 32; - - IF NEW.DEPT_ID <> OLD.DEPT_ID THEN - BEGIN - #应该先赋值新的,再删除删除旧的,避免先删除旧的,无法再定位该为哪个用户赋新值 - - IF oldNum = 0 THEN - UPDATE rm_user_def SET - PERM_DEPT1 = IF(newNum=0, setBit(PERM_DEPT1,IF(NEW.DEPT_ID%32=0,32,NEW.DEPT_ID%32)), PERM_DEPT1), - PERM_DEPT2 = IF(newNum=1, setBit(PERM_DEPT2,IF(NEW.DEPT_ID%32=0,32,NEW.DEPT_ID%32)), PERM_DEPT2), - PERM_DEPT3 = IF(newNum=2, setBit(PERM_DEPT3,IF(NEW.DEPT_ID%32=0,32,NEW.DEPT_ID%32)), PERM_DEPT3), - PERM_DEPT4 = IF(newNum=3, setBit(PERM_DEPT4,IF(NEW.DEPT_ID%32=0,32,NEW.DEPT_ID%32)), PERM_DEPT4) - WHERE testNumber(PERM_DEPT1,IF(OLD.DEPT_ID%32=0,32,OLD.DEPT_ID%32)); - ELSEIF oldNum = 1 THEN - UPDATE rm_user_def SET - PERM_DEPT1 = IF(newNum=0, setBit(PERM_DEPT1,IF(NEW.DEPT_ID%32=0,32,NEW.DEPT_ID%32)), PERM_DEPT1), - PERM_DEPT2 = IF(newNum=1, setBit(PERM_DEPT2,IF(NEW.DEPT_ID%32=0,32,NEW.DEPT_ID%32)), PERM_DEPT2), - PERM_DEPT3 = IF(newNum=2, setBit(PERM_DEPT3,IF(NEW.DEPT_ID%32=0,32,NEW.DEPT_ID%32)), PERM_DEPT3), - PERM_DEPT4 = IF(newNum=3, setBit(PERM_DEPT4,IF(NEW.DEPT_ID%32=0,32,NEW.DEPT_ID%32)), PERM_DEPT4) - WHERE testNumber(PERM_DEPT2,IF(OLD.DEPT_ID%32=0,32,OLD.DEPT_ID%32)); - ELSEIF oldNum = 2 THEN - UPDATE rm_user_def SET - PERM_DEPT1 = IF(newNum=0, setBit(PERM_DEPT1,IF(NEW.DEPT_ID%32=0,32,NEW.DEPT_ID%32)), PERM_DEPT1), - PERM_DEPT2 = IF(newNum=1, setBit(PERM_DEPT2,IF(NEW.DEPT_ID%32=0,32,NEW.DEPT_ID%32)), PERM_DEPT2), - PERM_DEPT3 = IF(newNum=2, setBit(PERM_DEPT3,IF(NEW.DEPT_ID%32=0,32,NEW.DEPT_ID%32)), PERM_DEPT3), - PERM_DEPT4 = IF(newNum=3, setBit(PERM_DEPT4,IF(NEW.DEPT_ID%32=0,32,NEW.DEPT_ID%32)), PERM_DEPT4) - WHERE testNumber(PERM_DEPT3,IF(OLD.DEPT_ID%32=0,32,OLD.DEPT_ID%32)); - ELSEIF oldNum = 3 THEN - UPDATE rm_user_def SET - PERM_DEPT1 = IF(newNum=0, setBit(PERM_DEPT1,IF(NEW.DEPT_ID%32=0,32,NEW.DEPT_ID%32)), PERM_DEPT1), - PERM_DEPT2 = IF(newNum=1, setBit(PERM_DEPT2,IF(NEW.DEPT_ID%32=0,32,NEW.DEPT_ID%32)), PERM_DEPT2), - PERM_DEPT3 = IF(newNum=2, setBit(PERM_DEPT3,IF(NEW.DEPT_ID%32=0,32,NEW.DEPT_ID%32)), PERM_DEPT3), - PERM_DEPT4 = IF(newNum=3, setBit(PERM_DEPT4,IF(NEW.DEPT_ID%32=0,32,NEW.DEPT_ID%32)), PERM_DEPT4) - WHERE testNumber(PERM_DEPT4,IF(OLD.DEPT_ID%32=0,32,OLD.DEPT_ID%32)); - END IF; - - #赋值新的之后,删除旧的 - - IF oldNum = 0 THEN - UPDATE rm_user_def SET PERM_DEPT1 = resetBit(PERM_DEPT1,IF(OLD.DEPT_ID%32=0,32,OLD.DEPT_ID%32)) WHERE testNumber(PERM_DEPT1,IF(OLD.DEPT_ID%32=0,32,OLD.DEPT_ID%32)); - ELSEIF oldNum = 1 THEN - UPDATE rm_user_def SET PERM_DEPT2 = resetBit(PERM_DEPT2,IF(OLD.DEPT_ID%32=0,32,OLD.DEPT_ID%32)) WHERE testNumber(PERM_DEPT2,IF(OLD.DEPT_ID%32=0,32,OLD.DEPT_ID%32)); - ELSEIF oldNum = 2 THEN - UPDATE rm_user_def SET PERM_DEPT3 = resetBit(PERM_DEPT3,IF(OLD.DEPT_ID%32=0,32,OLD.DEPT_ID%32)) WHERE testNumber(PERM_DEPT3,IF(OLD.DEPT_ID%32=0,32,OLD.DEPT_ID%32)); - ELSEIF oldNum = 3 THEN - UPDATE rm_user_def SET PERM_DEPT4 = resetBit(PERM_DEPT4,IF(OLD.DEPT_ID%32=0,32,OLD.DEPT_ID%32)) WHERE testNumber(PERM_DEPT4,IF(OLD.DEPT_ID%32=0,32,OLD.DEPT_ID%32)); - END IF; - - END; - END IF; - -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'rm_dept_def', 'dept_id', OLD.DEPT_ID, NEW.DEPT_ID, getTableSubSystem('rm_dept_def')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_RM_DEPT_DEF; -DELIMITER ;; -create trigger TDA_RM_DEPT_DEF AFTER DELETE on rm_dept_def for each ROW -BEGIN -#删除引用了该部门的用户 - DECLARE num int; - SET num = (OLD.DEPT_ID-1) DIV 32; - - IF num = 0 THEN - UPDATE rm_user_def SET PERM_DEPT1 = resetBit(PERM_DEPT1,IF(OLD.DEPT_ID%32=0,32,OLD.DEPT_ID%32)) WHERE testNumber(PERM_DEPT1,IF(OLD.DEPT_ID%32=0,32,OLD.DEPT_ID%32)); - ELSEIF num = 1 THEN - UPDATE rm_user_def SET PERM_DEPT2 = resetBit(PERM_DEPT2,IF(OLD.DEPT_ID%32=0,32,OLD.DEPT_ID%32)) WHERE testNumber(PERM_DEPT2,IF(OLD.DEPT_ID%32=0,32,OLD.DEPT_ID%32)); - ELSEIF num = 2 THEN - UPDATE rm_user_def SET PERM_DEPT3 = resetBit(PERM_DEPT3,IF(OLD.DEPT_ID%32=0,32,OLD.DEPT_ID%32)) WHERE testNumber(PERM_DEPT3,IF(OLD.DEPT_ID%32=0,32,OLD.DEPT_ID%32)); - ELSEIF num = 3 THEN - UPDATE rm_user_def SET PERM_DEPT4 = resetBit(PERM_DEPT4,IF(OLD.DEPT_ID%32=0,32,OLD.DEPT_ID%32)) WHERE testNumber(PERM_DEPT4,IF(OLD.DEPT_ID%32=0,32,OLD.DEPT_ID%32)); - END IF; - - - -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'rm_dept_def', 'dept_id', OLD.DEPT_ID, '', getTableSubSystem('rm_dept_def')); -END IF; -END;; -DELIMITER ; - -drop table if exists rm_norm_func_def; -CREATE TABLE `rm_norm_func_def` ( - `FUNC_ID` decimal(10,0) NOT NULL COMMENT '功能ID', - `FUNC_NAME` varchar(64) NOT NULL COMMENT '功能名称', - `FUNC_DEFINE` varchar(32) NOT NULL COMMENT '功能宏定义', - `FUNC_DESC` varchar(100) DEFAULT NULL COMMENT '功能描述', - PRIMARY KEY (`FUNC_ID`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='通用功能定义表'; - -drop trigger if exists TIA_RM_NORM_FUNC_DEF; -DELIMITER ;; -create trigger TIA_RM_NORM_FUNC_DEF AFTER INSERT on rm_norm_func_def for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'rm_norm_func_def', 'func_id', '', NEW.FUNC_ID, getTableSubSystem('rm_norm_func_def')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_RM_NORM_FUNC_DEF; -DELIMITER ;; -create trigger TUA_RM_NORM_FUNC_DEF AFTER UPDATE on rm_norm_func_def for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'rm_norm_func_def', 'func_id', OLD.FUNC_ID, NEW.FUNC_ID, getTableSubSystem('rm_norm_func_def')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_RM_NORM_FUNC_DEF; -DELIMITER ;; -create trigger TDA_RM_NORM_FUNC_DEF AFTER DELETE on rm_norm_func_def for each ROW -BEGIN -#删除引用了该功能的角色 - DECLARE num int; - SET num = (OLD.FUNC_ID-1) DIV 32; - - IF num = 0 THEN - UPDATE rm_role_def SET PERM_NOM_FUNC1 = resetBit(PERM_NOM_FUNC1,IF(OLD.FUNC_ID%32=0,32,OLD.FUNC_ID%32)) WHERE testNumber(PERM_NOM_FUNC1,IF(OLD.FUNC_ID%32=0,32,OLD.FUNC_ID%32)); - ELSEIF num = 1 THEN - UPDATE rm_role_def SET PERM_NOM_FUNC2 = resetBit(PERM_NOM_FUNC2,IF(OLD.FUNC_ID%32=0,32,OLD.FUNC_ID%32)) WHERE testNumber(PERM_NOM_FUNC2,IF(OLD.FUNC_ID%32=0,32,OLD.FUNC_ID%32)); - ELSEIF num = 2 THEN - UPDATE rm_role_def SET PERM_NOM_FUNC3 = resetBit(PERM_NOM_FUNC3,IF(OLD.FUNC_ID%32=0,32,OLD.FUNC_ID%32)) WHERE testNumber(PERM_NOM_FUNC3,IF(OLD.FUNC_ID%32=0,32,OLD.FUNC_ID%32)); - ELSEIF num = 3 THEN - UPDATE rm_role_def SET PERM_NOM_FUNC4 = resetBit(PERM_NOM_FUNC4,IF(OLD.FUNC_ID%32=0,32,OLD.FUNC_ID%32)) WHERE testNumber(PERM_NOM_FUNC4,IF(OLD.FUNC_ID%32=0,32,OLD.FUNC_ID%32)); - ELSEIF num = 4 THEN - UPDATE rm_role_def SET PERM_NOM_FUNC5 = resetBit(PERM_NOM_FUNC5,IF(OLD.FUNC_ID%32=0,32,OLD.FUNC_ID%32)) WHERE testNumber(PERM_NOM_FUNC5,IF(OLD.FUNC_ID%32=0,32,OLD.FUNC_ID%32)); - ELSEIF num = 5 THEN - UPDATE rm_role_def SET PERM_NOM_FUNC6 = resetBit(PERM_NOM_FUNC6,IF(OLD.FUNC_ID%32=0,32,OLD.FUNC_ID%32)) WHERE testNumber(PERM_NOM_FUNC6,IF(OLD.FUNC_ID%32=0,32,OLD.FUNC_ID%32)); - ELSEIF num = 6 THEN - UPDATE rm_role_def SET PERM_NOM_FUNC7 = resetBit(PERM_NOM_FUNC7,IF(OLD.FUNC_ID%32=0,32,OLD.FUNC_ID%32)) WHERE testNumber(PERM_NOM_FUNC7,IF(OLD.FUNC_ID%32=0,32,OLD.FUNC_ID%32)); - ELSEIF num = 7 THEN - UPDATE rm_role_def SET PERM_NOM_FUNC8 = resetBit(PERM_NOM_FUNC8,IF(OLD.FUNC_ID%32=0,32,OLD.FUNC_ID%32)) WHERE testNumber(PERM_NOM_FUNC8,IF(OLD.FUNC_ID%32=0,32,OLD.FUNC_ID%32)); - END IF; - -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'rm_norm_func_def', 'func_id', OLD.FUNC_ID, '', getTableSubSystem('rm_norm_func_def')); -END IF; -END;; -DELIMITER ; - -drop table if exists rm_role_db_info; -CREATE TABLE `rm_role_db_info` ( - `PERM_ROLE` decimal(10,0) NOT NULL COMMENT '权限角色', - `PERM_ATTRIBUTE` decimal(10,0) DEFAULT NULL COMMENT '权限属性', - `PERM_TABLE_NAME` varchar(32) NOT NULL COMMENT '数据库表名', - PRIMARY KEY (`PERM_ROLE`,`PERM_TABLE_NAME`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='角色数据表权限信息表'; - -drop trigger if exists TIA_RM_ROLE_DB_INFO; -DELIMITER ;; -create trigger TIA_RM_ROLE_DB_INFO AFTER INSERT on rm_role_db_info for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'rm_role_db_info', 'perm_role,perm_table_name', '', concat(NEW.PERM_ROLE,',',NEW.PERM_TABLE_NAME), getTableSubSystem('rm_role_db_info')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_RM_ROLE_DB_INFO; -DELIMITER ;; -create trigger TUA_RM_ROLE_DB_INFO AFTER UPDATE on rm_role_db_info for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'rm_role_db_info', 'perm_role,perm_table_name', concat(OLD.PERM_ROLE,',',OLD.PERM_TABLE_NAME), concat(NEW.PERM_ROLE,',',NEW.PERM_TABLE_NAME), getTableSubSystem('rm_role_db_info')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_RM_ROLE_DB_INFO; -DELIMITER ;; -create trigger TDA_RM_ROLE_DB_INFO AFTER DELETE on rm_role_db_info for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'rm_role_db_info', 'perm_role,perm_table_name', concat(OLD.PERM_ROLE,',',OLD.PERM_TABLE_NAME), '', getTableSubSystem('rm_role_db_info')); -END IF; -END;; -DELIMITER ; - -drop table if exists rm_role_def; -CREATE TABLE `rm_role_def` ( - `PERM_ID` decimal(10,0) NOT NULL COMMENT '角色ID', - `PERM_NAME` varchar(64) NOT NULL COMMENT '角色名称', - `PERM_DESC` varchar(100) DEFAULT NULL COMMENT '角色描述', - `PERM_NOM_FUNC1` decimal(10,0) DEFAULT NULL COMMENT '角色普通功能1', - `PERM_NOM_FUNC2` decimal(10,0) DEFAULT NULL COMMENT '角色普通功能2', - `PERM_NOM_FUNC3` decimal(10,0) DEFAULT NULL COMMENT '角色普通功能3', - `PERM_NOM_FUNC4` decimal(10,0) DEFAULT NULL COMMENT '角色普通功能4', - `PERM_NOM_FUNC5` decimal(10,0) DEFAULT NULL COMMENT '角色普通功能5', - `PERM_NOM_FUNC6` decimal(10,0) DEFAULT NULL COMMENT '角色普通功能6', - `PERM_NOM_FUNC7` decimal(10,0) DEFAULT NULL COMMENT '角色普通功能7', - `PERM_NOM_FUNC8` decimal(10,0) DEFAULT NULL COMMENT '角色普通功能8', - `PERM_SPE_FUNC1` decimal(10,0) DEFAULT NULL COMMENT '角色特殊功能1', - `PERM_SPE_FUNC2` decimal(10,0) DEFAULT NULL COMMENT '角色特殊功能2', - `PERM_SPE_FUNC3` decimal(10,0) DEFAULT NULL COMMENT '角色特殊功能3', - `PERM_SPE_FUNC4` decimal(10,0) DEFAULT NULL COMMENT '角色特殊功能4', - `PERM_SPE_FUNC5` decimal(10,0) DEFAULT NULL COMMENT '角色特殊功能5', - `PERM_SPE_FUNC6` decimal(10,0) DEFAULT NULL COMMENT '角色特殊功能6', - `PERM_SPE_FUNC7` decimal(10,0) DEFAULT NULL COMMENT '角色特殊功能7', - `PERM_SPE_FUNC8` decimal(10,0) DEFAULT NULL COMMENT '角色特殊功能8', - PRIMARY KEY (`PERM_ID`), - UNIQUE KEY `UN_RM_ROLE_DEF` (`PERM_NAME`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='角色定义表'; - -drop trigger if exists TIA_RM_ROLE_DEF; -DELIMITER ;; -create trigger TIA_RM_ROLE_DEF AFTER INSERT on rm_role_def for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'rm_role_def', 'perm_id', '', NEW.PERM_ID, getTableSubSystem('rm_role_def')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_RM_ROLE_DEF; -DELIMITER ;; -create trigger TUA_RM_ROLE_DEF AFTER UPDATE on rm_role_def for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'rm_role_def', 'perm_id', OLD.PERM_ID, NEW.PERM_ID, getTableSubSystem('rm_role_def')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_RM_ROLE_DEF; -DELIMITER ;; -create trigger TDA_RM_ROLE_DEF AFTER DELETE on rm_role_def for each ROW -BEGIN -#删除引用了该角色的数据 -#用户组 - DECLARE num int; - SET num = (OLD.PERM_ID-1) DIV 32; - - IF num = 0 THEN - UPDATE rm_userg_def SET PERM_ROLE1 = resetBit(PERM_ROLE1,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32)) WHERE testNumber(PERM_ROLE1,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32)); - ELSEIF num = 1 THEN - UPDATE rm_userg_def SET PERM_ROLE2 = resetBit(PERM_ROLE2,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32)) WHERE testNumber(PERM_ROLE2,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32)); - ELSEIF num = 2 THEN - UPDATE rm_userg_def SET PERM_ROLE3 = resetBit(PERM_ROLE3,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32)) WHERE testNumber(PERM_ROLE3,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32)); - ELSEIF num = 3 THEN - UPDATE rm_userg_def SET PERM_ROLE4 = resetBit(PERM_ROLE4,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32)) WHERE testNumber(PERM_ROLE4,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32)); - ELSEIF num = 4 THEN - UPDATE rm_userg_def SET PERM_ROLE5 = resetBit(PERM_ROLE5,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32)) WHERE testNumber(PERM_ROLE5,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32)); - ELSEIF num = 5 THEN - UPDATE rm_userg_def SET PERM_ROLE6 = resetBit(PERM_ROLE6,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32)) WHERE testNumber(PERM_ROLE6,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32)); - ELSEIF num = 6 THEN - UPDATE rm_userg_def SET PERM_ROLE7 = resetBit(PERM_ROLE7,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32)) WHERE testNumber(PERM_ROLE7,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32)); - ELSEIF num = 7 THEN - UPDATE rm_userg_def SET PERM_ROLE8 = resetBit(PERM_ROLE8,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32)) WHERE testNumber(PERM_ROLE8,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32)); - END IF; - -#rm_role_db_info - DELETE FROM rm_role_db_info WHERE PERM_ROLE = OLD.PERM_ID; -#rm_role_hmi_info - DELETE FROM rm_role_hmi_info WHERE PERM_ROLE = OLD.PERM_ID; -#rm_role_spef_reg - DELETE FROM rm_role_spef_reg WHERE PERM_ROLE = OLD.PERM_ID; -#rm_userg_rsp_info - DELETE FROM rm_userg_rsp_info WHERE PERM_ROLE = OLD.PERM_ID; - - -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'rm_role_def', 'perm_id', OLD.PERM_ID, '', getTableSubSystem('rm_role_def')); -END IF; -END;; -DELIMITER ; - -drop table if exists rm_role_hmi_info; -CREATE TABLE `rm_role_hmi_info` ( - `PERM_ROLE` decimal(10,0) NOT NULL COMMENT '所属角色', - `PERM_TYPE` decimal(10,0) NOT NULL COMMENT '权限类型', - `PERM_INFO1` decimal(10,0) DEFAULT NULL COMMENT '权限信息1', - `PERM_INFO2` decimal(10,0) DEFAULT NULL COMMENT '权限信息2', - `PERM_INFO3` decimal(10,0) DEFAULT NULL COMMENT '权限信息3', - `PERM_INFO4` decimal(10,0) DEFAULT NULL COMMENT '权限信息4', - `PERM_INFO5` decimal(10,0) DEFAULT NULL COMMENT '权限信息5', - `PERM_INFO6` decimal(10,0) DEFAULT NULL COMMENT '权限信息6', - `PERM_INFO7` decimal(10,0) DEFAULT NULL COMMENT '权限信息7', - `PERM_INFO8` decimal(10,0) DEFAULT NULL COMMENT '权限信息8', - `PERM_INFO9` decimal(10,0) DEFAULT NULL COMMENT '权限信息9', - `PERM_INFO10` decimal(10,0) DEFAULT NULL COMMENT '权限信息10', - `PERM_INFO11` decimal(10,0) DEFAULT NULL COMMENT '权限信息11', - `PERM_INFO12` decimal(10,0) DEFAULT NULL COMMENT '权限信息12', - `PERM_INFO13` decimal(10,0) DEFAULT NULL COMMENT '权限信息13', - `PERM_INFO14` decimal(10,0) DEFAULT NULL COMMENT '权限信息14', - `PERM_INFO15` decimal(10,0) DEFAULT NULL COMMENT '权限信息15', - `PERM_INFO16` decimal(10,0) DEFAULT NULL COMMENT '权限信息16', - PRIMARY KEY (`PERM_ROLE`,`PERM_TYPE`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='角色画面权限信息表'; - -drop trigger if exists TIA_RM_ROLE_HMI_INFO; -DELIMITER ;; -create trigger TIA_RM_ROLE_HMI_INFO AFTER INSERT on rm_role_hmi_info for each ROW -BEGIN - #PERM_TYPE = 1是报表,0是HMI画面 - #先清除,后插入rm_userg_report_info - DECLARE num int; - DECLARE pos int; - SET num = (NEW.PERM_ROLE-1) DIV 32; - SET pos = IF(NEW.PERM_ROLE%32=0,32,NEW.PERM_ROLE%32); - - IF NEW.PERM_TYPE = '1' THEN - BEGIN - #先删除关联了此角色的用户组的在rm_userg_report_info中的报表浏览权限 - DELETE FROM rm_userg_report_info WHERE EXISTS ( - SELECT rm_userg_def.PERM_ID FROM rm_userg_def - WHERE rm_userg_report_info.PERM_USER_GROUP = rm_userg_def.PERM_ID - AND testNumber(elt(num+1,PERM_ROLE1,PERM_ROLE2,PERM_ROLE3,PERM_ROLE4,PERM_ROLE5,PERM_ROLE6,PERM_ROLE7,PERM_ROLE8),pos) - ); - - #重新把对应的报表浏览权限写入 - INSERT INTO rm_userg_report_info(PERM_USER_GROUP,REPORT_CODE) - SELECT rm_userg_def.PERM_ID,report_type_info.REPORT_DEFINE - FROM rm_userg_def,rm_userg_hmi_info ,report_type_info - WHERE testNumber(elt(num+1,PERM_ROLE1,PERM_ROLE2,PERM_ROLE3,PERM_ROLE4,PERM_ROLE5,PERM_ROLE6,PERM_ROLE7,PERM_ROLE8),pos) - AND rm_userg_def.PERM_ID = rm_userg_hmi_info.PERM_USER_GROUP AND rm_userg_hmi_info.PERM_TYPE='1' - AND - testNumber(elt( ((REPORT_ID-1) DIV 32) +1, - PERM_INFO1,PERM_INFO2,PERM_INFO3,PERM_INFO4,PERM_INFO5,PERM_INFO6,PERM_INFO7,PERM_INFO8, - PERM_INFO9,PERM_INFO10,PERM_INFO11,PERM_INFO12,PERM_INFO13,PERM_INFO14,PERM_INFO15,PERM_INFO16) - ,IF(REPORT_ID%32=0,32,REPORT_ID%32)); - - #假如该用户组,还包含其他角色,其他角色的权限也要插入 - INSERT IGNORE INTO rm_userg_report_info(PERM_USER_GROUP,REPORT_CODE) - SELECT rm_userg_def.PERM_ID,report_type_info.REPORT_DEFINE - FROM rm_role_hmi_info, rm_userg_def,report_type_info - WHERE testNumber(elt( ((PERM_ROLE-1) DIV 32) +1,PERM_ROLE1,PERM_ROLE2,PERM_ROLE3,PERM_ROLE4,PERM_ROLE5,PERM_ROLE6,PERM_ROLE7,PERM_ROLE8), - IF(PERM_ROLE%32=0,32,PERM_ROLE%32)) - AND - testNumber(elt( ((REPORT_ID-1) DIV 32) +1, - PERM_INFO1,PERM_INFO2,PERM_INFO3,PERM_INFO4,PERM_INFO5,PERM_INFO6,PERM_INFO7,PERM_INFO8, - PERM_INFO9,PERM_INFO10,PERM_INFO11,PERM_INFO12,PERM_INFO13,PERM_INFO14,PERM_INFO15,PERM_INFO16) - ,IF(REPORT_ID%32=0,32,REPORT_ID%32)) - ; - END; - END IF; - -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'rm_role_hmi_info', 'perm_role,perm_type', '', concat(NEW.PERM_ROLE,',',NEW.PERM_TYPE), getTableSubSystem('rm_role_hmi_info')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_RM_ROLE_HMI_INFO; -DELIMITER ;; -create trigger TUA_RM_ROLE_HMI_INFO AFTER UPDATE on rm_role_hmi_info for each ROW -BEGIN - #PERM_TYPE = 1是报表,0是HMI画面 - #先清除,后插入rm_userg_report_info - DECLARE oldNum int; - DECLARE oldPos int; - DECLARE newNum int; - DECLARE newPos int; - SET oldNum = (OLD.PERM_ROLE-1) DIV 32; - SET oldPos = IF(OLD.PERM_ROLE%32=0,32,OLD.PERM_ROLE%32); - SET newNum = (NEW.PERM_ROLE-1) DIV 32; - SET newPos = IF(NEW.PERM_ROLE%32=0,32,NEW.PERM_ROLE%32); - - - IF NEW.PERM_TYPE = '1' AND OLD.PERM_TYPE='1' THEN - BEGIN - #先删除关联了此角色的用户组的在rm_userg_report_info中的报表浏览权限 - DELETE FROM rm_userg_report_info WHERE EXISTS ( - SELECT rm_userg_def.PERM_ID FROM rm_userg_def - WHERE rm_userg_report_info.PERM_USER_GROUP = rm_userg_def.PERM_ID - AND testNumber(elt(oldNum+1,PERM_ROLE1,PERM_ROLE2,PERM_ROLE3,PERM_ROLE4,PERM_ROLE5,PERM_ROLE6,PERM_ROLE7,PERM_ROLE8),oldPos) - ); - - #重新把对应的报表浏览权限写入 - INSERT INTO rm_userg_report_info(PERM_USER_GROUP,REPORT_CODE) - SELECT rm_userg_def.PERM_ID,report_type_info.REPORT_DEFINE - FROM rm_userg_def,rm_userg_hmi_info ,report_type_info - WHERE testNumber(elt(newNum+1,PERM_ROLE1,PERM_ROLE2,PERM_ROLE3,PERM_ROLE4,PERM_ROLE5,PERM_ROLE6,PERM_ROLE7,PERM_ROLE8),newPos) - AND rm_userg_def.PERM_ID = rm_userg_hmi_info.PERM_USER_GROUP AND rm_userg_hmi_info.PERM_TYPE='1' - AND - testNumber(elt( ((REPORT_ID-1) DIV 32) +1, - PERM_INFO1,PERM_INFO2,PERM_INFO3,PERM_INFO4,PERM_INFO5,PERM_INFO6,PERM_INFO7,PERM_INFO8, - PERM_INFO9,PERM_INFO10,PERM_INFO11,PERM_INFO12,PERM_INFO13,PERM_INFO14,PERM_INFO15,PERM_INFO16) - ,IF(REPORT_ID%32=0,32,REPORT_ID%32)); - - #假如该用户组,还包含其他角色,其他角色的权限也要插入 - INSERT IGNORE INTO rm_userg_report_info(PERM_USER_GROUP,REPORT_CODE) - SELECT rm_userg_def.PERM_ID,report_type_info.REPORT_DEFINE - FROM rm_role_hmi_info, rm_userg_def,report_type_info - WHERE testNumber(elt( ((PERM_ROLE-1) DIV 32) +1,PERM_ROLE1,PERM_ROLE2,PERM_ROLE3,PERM_ROLE4,PERM_ROLE5,PERM_ROLE6,PERM_ROLE7,PERM_ROLE8), - IF(PERM_ROLE%32=0,32,PERM_ROLE%32)) - AND - testNumber(elt( ((REPORT_ID-1) DIV 32) +1, - PERM_INFO1,PERM_INFO2,PERM_INFO3,PERM_INFO4,PERM_INFO5,PERM_INFO6,PERM_INFO7,PERM_INFO8, - PERM_INFO9,PERM_INFO10,PERM_INFO11,PERM_INFO12,PERM_INFO13,PERM_INFO14,PERM_INFO15,PERM_INFO16) - ,IF(REPORT_ID%32=0,32,REPORT_ID%32)) - ; - - END; - END IF; -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'rm_role_hmi_info', 'perm_role,perm_type', concat(OLD.PERM_ROLE,',',OLD.PERM_TYPE), concat(NEW.PERM_ROLE,',',NEW.PERM_TYPE), getTableSubSystem('rm_role_hmi_info')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_RM_ROLE_HMI_INFO; -DELIMITER ;; -create trigger TDA_RM_ROLE_HMI_INFO AFTER DELETE on rm_role_hmi_info for each ROW -BEGIN - #PERM_TYPE = 1是报表,0是HMI画面 - #先清除,后插入rm_userg_report_info - DECLARE num int; - DECLARE pos int; - SET num = (OLD.PERM_ROLE-1) DIV 32; - SET pos = IF(OLD.PERM_ROLE%32=0,32,OLD.PERM_ROLE%32); - - IF OLD.PERM_TYPE = '1' THEN - BEGIN - #先删除关联了此角色的用户组的在rm_userg_report_info中的报表浏览权限 - DELETE FROM rm_userg_report_info WHERE EXISTS ( - SELECT rm_userg_def.PERM_ID FROM rm_userg_def - WHERE rm_userg_report_info.PERM_USER_GROUP = rm_userg_def.PERM_ID - AND testNumber(elt(num+1,PERM_ROLE1,PERM_ROLE2,PERM_ROLE3,PERM_ROLE4,PERM_ROLE5,PERM_ROLE6,PERM_ROLE7,PERM_ROLE8),pos) - ); - - #重新把对应的报表浏览权限写入 - INSERT INTO rm_userg_report_info(PERM_USER_GROUP,REPORT_CODE) - SELECT rm_userg_def.PERM_ID,report_type_info.REPORT_DEFINE - FROM rm_userg_def,rm_userg_hmi_info ,report_type_info - WHERE testNumber(elt(num+1,PERM_ROLE1,PERM_ROLE2,PERM_ROLE3,PERM_ROLE4,PERM_ROLE5,PERM_ROLE6,PERM_ROLE7,PERM_ROLE8),pos) - AND rm_userg_def.PERM_ID = rm_userg_hmi_info.PERM_USER_GROUP AND rm_userg_hmi_info.PERM_TYPE='1' - AND - testNumber(elt( ((REPORT_ID-1) DIV 32) +1, - PERM_INFO1,PERM_INFO2,PERM_INFO3,PERM_INFO4,PERM_INFO5,PERM_INFO6,PERM_INFO7,PERM_INFO8, - PERM_INFO9,PERM_INFO10,PERM_INFO11,PERM_INFO12,PERM_INFO13,PERM_INFO14,PERM_INFO15,PERM_INFO16) - ,IF(REPORT_ID%32=0,32,REPORT_ID%32)); - - #假如该用户组,还包含其他角色,其他角色的权限也要插入 - INSERT IGNORE INTO rm_userg_report_info(PERM_USER_GROUP,REPORT_CODE) - SELECT rm_userg_def.PERM_ID,report_type_info.REPORT_DEFINE - FROM rm_role_hmi_info, rm_userg_def,report_type_info - WHERE testNumber(elt( ((PERM_ROLE-1) DIV 32) +1,PERM_ROLE1,PERM_ROLE2,PERM_ROLE3,PERM_ROLE4,PERM_ROLE5,PERM_ROLE6,PERM_ROLE7,PERM_ROLE8), - IF(PERM_ROLE%32=0,32,PERM_ROLE%32)) - AND - testNumber(elt( ((REPORT_ID-1) DIV 32) +1, - PERM_INFO1,PERM_INFO2,PERM_INFO3,PERM_INFO4,PERM_INFO5,PERM_INFO6,PERM_INFO7,PERM_INFO8, - PERM_INFO9,PERM_INFO10,PERM_INFO11,PERM_INFO12,PERM_INFO13,PERM_INFO14,PERM_INFO15,PERM_INFO16) - ,IF(REPORT_ID%32=0,32,REPORT_ID%32)) - ; - - - END; - END IF; -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'rm_role_hmi_info', 'perm_role,perm_type', concat(OLD.PERM_ROLE,',',OLD.PERM_TYPE), '', getTableSubSystem('rm_role_hmi_info')); -END IF; -END;; -DELIMITER ; - -drop table if exists rm_role_spef_reg; -CREATE TABLE `rm_role_spef_reg` ( - `PERM_ROLE` decimal(10,0) NOT NULL COMMENT '所属角色', - `PERM_SPEFUNC` decimal(10,0) NOT NULL COMMENT '特殊功能', - `PERM_REGION1` decimal(10,0) DEFAULT NULL COMMENT '责任区1', - `PERM_REGION2` decimal(10,0) DEFAULT NULL COMMENT '责任区2', - `PERM_REGION3` decimal(10,0) DEFAULT NULL COMMENT '责任区3', - `PERM_REGION4` decimal(10,0) DEFAULT NULL COMMENT '责任区4', - PRIMARY KEY (`PERM_ROLE`,`PERM_SPEFUNC`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='角色特殊功能责任区权限信息表'; - -drop trigger if exists TIA_RM_ROLE_SPEF_REG; -DELIMITER ;; -create trigger TIA_RM_ROLE_SPEF_REG AFTER INSERT on rm_role_spef_reg for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'rm_role_spef_reg', 'perm_role,perm_spefunc', '', concat(NEW.PERM_ROLE,',',NEW.PERM_SPEFUNC), getTableSubSystem('rm_role_spef_reg')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_RM_ROLE_SPEF_REG; -DELIMITER ;; -create trigger TUA_RM_ROLE_SPEF_REG AFTER UPDATE on rm_role_spef_reg for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'rm_role_spef_reg', 'perm_role,perm_spefunc', concat(OLD.PERM_ROLE,',',OLD.PERM_SPEFUNC), concat(NEW.PERM_ROLE,',',NEW.PERM_SPEFUNC), getTableSubSystem('rm_role_spef_reg')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_RM_ROLE_SPEF_REG; -DELIMITER ;; -create trigger TDA_RM_ROLE_SPEF_REG AFTER DELETE on rm_role_spef_reg for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'rm_role_spef_reg', 'perm_role,perm_spefunc', concat(OLD.PERM_ROLE,',',OLD.PERM_SPEFUNC), '', getTableSubSystem('rm_role_spef_reg')); -END IF; -END;; -DELIMITER ; - -drop table if exists rm_security_def; -CREATE TABLE `rm_security_def` ( - `PERM_ID` decimal(10,0) NOT NULL COMMENT '安全策略ID号', - `PERM_MIN_LENGTH` decimal(10,0) DEFAULT NULL COMMENT '密码最小长度', - `PERM_MIN_LETR` decimal(10,0) DEFAULT NULL COMMENT '密码最少字符数', - `PERM_MIN_NUM` decimal(10,0) DEFAULT NULL COMMENT '密码最少数字式', - `PERM_MAX_LOCK` decimal(10,0) DEFAULT NULL COMMENT '账户锁定阀值', - `PERM_LOCK_TIMER` decimal(10,0) DEFAULT NULL COMMENT '账户锁定时长', - PRIMARY KEY (`PERM_ID`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='权限安全策略表'; - -drop trigger if exists TIA_RM_SECURITY_DEF; -DELIMITER ;; -create trigger TIA_RM_SECURITY_DEF AFTER INSERT on rm_security_def for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'rm_security_def', 'perm_id', '', NEW.PERM_ID, getTableSubSystem('rm_security_def')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_RM_SECURITY_DEF; -DELIMITER ;; -create trigger TUA_RM_SECURITY_DEF AFTER UPDATE on rm_security_def for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'rm_security_def', 'perm_id', OLD.PERM_ID, NEW.PERM_ID, getTableSubSystem('rm_security_def')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_RM_SECURITY_DEF; -DELIMITER ;; -create trigger TDA_RM_SECURITY_DEF AFTER DELETE on rm_security_def for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'rm_security_def', 'perm_id', OLD.PERM_ID, '', getTableSubSystem('rm_security_def')); -END IF; -END;; -DELIMITER ; - -drop table if exists rm_spcl_func_def; -CREATE TABLE `rm_spcl_func_def` ( - `PERM_ID` decimal(10,0) NOT NULL COMMENT '功能ID号', - `PERM_NAME` varchar(64) NOT NULL COMMENT '功能名称', - `PERM_DEFINE` varchar(32) NOT NULL COMMENT '功能宏定义', - `PERM_DESC` varchar(100) DEFAULT NULL COMMENT '功能描述', - PRIMARY KEY (`PERM_ID`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='权限特殊功能定义表'; - -drop trigger if exists TIA_RM_SPCL_FUNC_DEF; -DELIMITER ;; -create trigger TIA_RM_SPCL_FUNC_DEF AFTER INSERT on rm_spcl_func_def for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'rm_spcl_func_def', 'perm_id', '', NEW.PERM_ID, getTableSubSystem('rm_spcl_func_def')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_RM_SPCL_FUNC_DEF; -DELIMITER ;; -create trigger TUA_RM_SPCL_FUNC_DEF AFTER UPDATE on rm_spcl_func_def for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'rm_spcl_func_def', 'perm_id', OLD.PERM_ID, NEW.PERM_ID, getTableSubSystem('rm_spcl_func_def')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_RM_SPCL_FUNC_DEF; -DELIMITER ;; -create trigger TDA_RM_SPCL_FUNC_DEF AFTER DELETE on rm_spcl_func_def for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'rm_spcl_func_def', 'perm_id', OLD.PERM_ID, '', getTableSubSystem('rm_spcl_func_def')); -END IF; -END;; -DELIMITER ; - -drop table if exists rm_user_def; -CREATE TABLE `rm_user_def` ( - `PERM_ID` decimal(10,0) NOT NULL COMMENT '用户ID号', - `PERM_NAME` varchar(64) NOT NULL COMMENT '用户名称', - `PERM_ALIAS` varchar(64) DEFAULT NULL COMMENT '用户姓名', - `PERM_PASSWORD` varchar(64) NOT NULL COMMENT '用户口令', - `PERM_CREATE_DATE` decimal(20,0) DEFAULT NULL COMMENT '用户创建时间', - `PERM_EXPIRE_DATE` decimal(20,0) DEFAULT NULL COMMENT '用户失效时间', - `PERM_DESC` varchar(128) DEFAULT NULL COMMENT '用户描述', - `PERM_IF_LOCK` decimal(10,0) DEFAULT NULL COMMENT '账户是否锁定', - `PERM_LOCK_TIME` decimal(20,0) DEFAULT NULL COMMENT '账户锁定时间', - `PERM_USER_GROUP1` decimal(10,0) DEFAULT NULL COMMENT '所属用户组1', - `PERM_USER_GROUP2` decimal(10,0) DEFAULT NULL COMMENT '所属用户组2', - `PERM_USER_GROUP3` decimal(10,0) DEFAULT NULL COMMENT '所属用户组3', - `PERM_USER_GROUP4` decimal(10,0) DEFAULT NULL COMMENT '所属用户组4', - `PERM_USER_GROUP5` decimal(10,0) DEFAULT NULL COMMENT '所属用户组5', - `PERM_USER_GROUP6` decimal(10,0) DEFAULT NULL COMMENT '所属用户组6', - `PERM_USER_GROUP7` decimal(10,0) DEFAULT NULL COMMENT '所属用户组7', - `PERM_USER_GROUP8` decimal(10,0) DEFAULT NULL COMMENT '所属用户组8', - `PERM_USER_GROUP9` decimal(10,0) DEFAULT NULL COMMENT '所属用户组9', - `PERM_USER_GROUP10` decimal(10,0) DEFAULT NULL COMMENT '所属用户组10', - `PERM_USER_GROUP11` decimal(10,0) DEFAULT NULL COMMENT '所属用户组11', - `PERM_USER_GROUP12` decimal(10,0) DEFAULT NULL COMMENT '所属用户组12', - `PERM_USER_GROUP13` decimal(10,0) DEFAULT NULL COMMENT '所属用户组13', - `PERM_USER_GROUP14` decimal(10,0) DEFAULT NULL COMMENT '所属用户组14', - `PERM_USER_GROUP15` decimal(10,0) DEFAULT NULL COMMENT '所属用户组15', - `PERM_USER_GROUP16` decimal(10,0) DEFAULT NULL COMMENT '所属用户组16', - `PERM_GROUP_LEADER1` decimal(10,0) DEFAULT NULL COMMENT '组长所属组1', - `PERM_GROUP_LEADER2` decimal(10,0) DEFAULT NULL COMMENT '组长所属组2', - `PERM_GROUP_LEADER3` decimal(10,0) DEFAULT NULL COMMENT '组长所属组3', - `PERM_GROUP_LEADER4` decimal(10,0) DEFAULT NULL COMMENT '组长所属组4', - `PERM_GROUP_LEADER5` decimal(10,0) DEFAULT NULL COMMENT '组长所属组5', - `PERM_GROUP_LEADER6` decimal(10,0) DEFAULT NULL COMMENT '组长所属组6', - `PERM_GROUP_LEADER7` decimal(10,0) DEFAULT NULL COMMENT '组长所属组7', - `PERM_GROUP_LEADER8` decimal(10,0) DEFAULT NULL COMMENT '组长所属组8', - `PERM_GROUP_LEADER9` decimal(10,0) DEFAULT NULL COMMENT '组长所属组9', - `PERM_GROUP_LEADER10` decimal(10,0) DEFAULT NULL COMMENT '组长所属组10', - `PERM_GROUP_LEADER11` decimal(10,0) DEFAULT NULL COMMENT '组长所属组11', - `PERM_GROUP_LEADER12` decimal(10,0) DEFAULT NULL COMMENT '组长所属组12', - `PERM_GROUP_LEADER13` decimal(10,0) DEFAULT NULL COMMENT '组长所属组13', - `PERM_GROUP_LEADER14` decimal(10,0) DEFAULT NULL COMMENT '组长所属组14', - `PERM_GROUP_LEADER15` decimal(10,0) DEFAULT NULL COMMENT '组长所属组15', - `PERM_GROUP_LEADER16` decimal(10,0) DEFAULT NULL COMMENT '组长所属组16', - `PERM_DEPT1` decimal(10,0) DEFAULT NULL COMMENT '所属部门1', - `PERM_DEPT2` decimal(10,0) DEFAULT NULL COMMENT '所属部门2', - `PERM_DEPT3` decimal(10,0) DEFAULT NULL COMMENT '所属部门3', - `PERM_DEPT4` decimal(10,0) DEFAULT NULL COMMENT '所属部门4', - `MOBILE_PHONE` varchar(32) DEFAULT NULL COMMENT '手机号', - `EMAIL` varchar(64) DEFAULT NULL COMMENT '邮箱地址', - `ADDRESS` varchar(128) DEFAULT NULL COMMENT '通讯地址', - `OPEN_ID` varchar(255) DEFAULT NULL COMMENT 'APP会话ID', - `ALLOW_DURATION` decimal(10,0) DEFAULT NULL COMMENT '允许持续时间', - PRIMARY KEY (`PERM_ID`), - UNIQUE KEY `UN_RM_USER_DEF` (`PERM_NAME`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户定义表'; - -drop trigger if exists TIA_RM_USER_DEF; -DELIMITER ;; -create trigger TIA_RM_USER_DEF AFTER INSERT on rm_user_def for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'rm_user_def', 'perm_id', '', NEW.PERM_ID, getTableSubSystem('rm_user_def')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_RM_USER_DEF; -DELIMITER ;; -create trigger TUA_RM_USER_DEF AFTER UPDATE on rm_user_def for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'rm_user_def', 'perm_id', OLD.PERM_ID, NEW.PERM_ID, getTableSubSystem('rm_user_def')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_RM_USER_DEF; -DELIMITER ;; -create trigger TDA_RM_USER_DEF AFTER DELETE on rm_user_def for each ROW -BEGIN -delete from rm_user_finger_print_info where USER_ID = old.PERM_ID; -delete from rm_user_face_info where USER_ID = old.PERM_ID; -delete from rm_user_signature_info where USER_ID = old.PERM_ID; -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'rm_user_def', 'perm_id', OLD.PERM_ID, '', getTableSubSystem('rm_user_def')); -END IF; -END;; -DELIMITER ; - -drop table if exists rm_user_face_info; -CREATE TABLE `rm_user_face_info` ( - `USER_ID` decimal(10,0) NOT NULL COMMENT '用户ID,关联用户', - `DESCRIPTION` varchar(64) DEFAULT NULL COMMENT '描述', - `DATA_BASE64` mediumtext NOT NULL COMMENT '人脸照片,BASE64编码', - PRIMARY KEY (`USER_ID`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='存储用户的人脸信息'; - -drop table if exists rm_user_finger_print_info; -CREATE TABLE `rm_user_finger_print_info` ( - `USER_ID` decimal(10,0) NOT NULL COMMENT '用户ID,关联用户', - `FP_ID` decimal(10,0) NOT NULL COMMENT '指纹ID,有效值1至10', - `DESCRIPTION` varchar(64) DEFAULT NULL COMMENT '描述,用户可填写“食指”等', - `DATA_BASE64` varchar(2048) NOT NULL COMMENT '指纹数据,BASE64编码', - PRIMARY KEY (`USER_ID`,`FP_ID`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='存储用户的指纹信息'; - -drop table if exists rm_user_signature_info; -CREATE TABLE `rm_user_signature_info` ( - `USER_ID` decimal(10,0) NOT NULL COMMENT '用户ID,关联用户表RM_USER_DEF', - `DATA_BASE64` mediumtext NOT NULL COMMENT '电子签章照片,BASE64编码', - PRIMARY KEY (`USER_ID`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='存储用户电子签章信息'; - -drop table if exists rm_userg_db_info; -CREATE TABLE `rm_userg_db_info` ( - `PERM_USER_GROUP` decimal(10,0) NOT NULL COMMENT '所属用户组', - `PERM_ATTRIBUTE` decimal(10,0) NOT NULL COMMENT '权限属性', - `PERM_TABLE_NAME` varchar(32) NOT NULL COMMENT '数据库表名', - PRIMARY KEY (`PERM_USER_GROUP`,`PERM_TABLE_NAME`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户组数据表权限信息表'; - -drop trigger if exists TIA_RM_USERG_DB_INFO; -DELIMITER ;; -create trigger TIA_RM_USERG_DB_INFO AFTER INSERT on rm_userg_db_info for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'rm_userg_db_info', 'perm_user_group,perm_table_name', '', concat(NEW.PERM_USER_GROUP,',',NEW.PERM_TABLE_NAME), getTableSubSystem('rm_userg_db_info')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_RM_USERG_DB_INFO; -DELIMITER ;; -create trigger TUA_RM_USERG_DB_INFO AFTER UPDATE on rm_userg_db_info for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'rm_userg_db_info', 'perm_user_group,perm_table_name', concat(OLD.PERM_USER_GROUP,',',OLD.PERM_TABLE_NAME), concat(NEW.PERM_USER_GROUP,',',NEW.PERM_TABLE_NAME), getTableSubSystem('rm_userg_db_info')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_RM_USERG_DB_INFO; -DELIMITER ;; -create trigger TDA_RM_USERG_DB_INFO AFTER DELETE on rm_userg_db_info for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'rm_userg_db_info', 'perm_user_group,perm_table_name', concat(OLD.PERM_USER_GROUP,',',OLD.PERM_TABLE_NAME), '', getTableSubSystem('rm_userg_db_info')); -END IF; -END;; -DELIMITER ; - -drop table if exists rm_userg_def; -CREATE TABLE `rm_userg_def` ( - `PERM_ID` decimal(10,0) NOT NULL COMMENT '用户组ID号', - `PERM_NAME` varchar(64) NOT NULL COMMENT '用户组名称', - `PERM_LEVEL` decimal(10,0) DEFAULT NULL COMMENT '用户组级别', - `PERM_ROLE1` decimal(10,0) DEFAULT NULL COMMENT '用户组角色1', - `PERM_ROLE2` decimal(10,0) DEFAULT NULL COMMENT '用户组角色2', - `PERM_ROLE3` decimal(10,0) DEFAULT NULL COMMENT '用户组角色3', - `PERM_ROLE4` decimal(10,0) DEFAULT NULL COMMENT '用户组角色4', - `PERM_ROLE5` decimal(10,0) DEFAULT NULL COMMENT '用户组角色5', - `PERM_ROLE6` decimal(10,0) DEFAULT NULL COMMENT '用户组角色6', - `PERM_ROLE7` decimal(10,0) DEFAULT NULL COMMENT '用户组角色7', - `PERM_ROLE8` decimal(10,0) DEFAULT NULL COMMENT '用户组角色8', - `PERM_LOCATION1` decimal(10,0) DEFAULT NULL COMMENT '可管理车站1', - `PERM_LOCATION2` decimal(10,0) DEFAULT NULL COMMENT '可管理车站2', - `PERM_LOCATION3` decimal(10,0) DEFAULT NULL COMMENT '可管理车站3', - `PERM_LOCATION4` decimal(10,0) DEFAULT NULL COMMENT '可管理车站4', - `PERM_LOCATION5` decimal(10,0) DEFAULT NULL COMMENT '可管理车站5', - `PERM_LOCATION6` decimal(10,0) DEFAULT NULL COMMENT '可管理车站6', - `PERM_LOCATION7` decimal(10,0) DEFAULT NULL COMMENT '可管理车站7', - `PERM_LOCATION8` decimal(10,0) DEFAULT NULL COMMENT '可管理车站8', - `PERM_DESC` varchar(100) DEFAULT NULL COMMENT '用户组描述', - `PERM_PIC1` varchar(64) DEFAULT NULL COMMENT '屏登陆画面1', - `PERM_PIC2` varchar(64) DEFAULT NULL COMMENT '屏登陆画面2', - `PERM_PIC3` varchar(64) DEFAULT NULL COMMENT '屏登陆画面3', - `PERM_PIC4` varchar(64) DEFAULT NULL COMMENT '屏登陆画面4', - `PERM_PIC5` varchar(64) DEFAULT NULL COMMENT '屏登陆画面5', - `PERM_PIC6` varchar(64) DEFAULT NULL COMMENT '屏登陆画面6', - PRIMARY KEY (`PERM_ID`), - UNIQUE KEY `UN_RM_USERG_DEF` (`PERM_NAME`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户组定义表'; - -drop trigger if exists TIA_RM_USERG_DEF; -DELIMITER ;; -create trigger TIA_RM_USERG_DEF AFTER INSERT on rm_userg_def for each ROW -BEGIN - #PERM_TYPE = 1是报表,0是HMI画面 - #先清除,后插入rm_userg_report_info - #先删除关联了此用户组的在rm_userg_report_info中的报表浏览权限 - DELETE FROM rm_userg_report_info WHERE PERM_USER_GROUP = NEW.PERM_ID; - - - #重新把对应的报表浏览权限写入 - INSERT INTO rm_userg_report_info(PERM_USER_GROUP,REPORT_CODE) - SELECT NEW.PERM_ID,report_type_info.REPORT_DEFINE - FROM rm_userg_hmi_info, report_type_info - WHERE rm_userg_hmi_info.PERM_USER_GROUP = NEW.PERM_ID AND rm_userg_hmi_info.PERM_TYPE = '1' - AND - testNumber(elt( ((REPORT_ID-1) DIV 32) +1, - PERM_INFO1,PERM_INFO2,PERM_INFO3,PERM_INFO4,PERM_INFO5,PERM_INFO6,PERM_INFO7,PERM_INFO8, - PERM_INFO9,PERM_INFO10,PERM_INFO11,PERM_INFO12,PERM_INFO13,PERM_INFO14,PERM_INFO15,PERM_INFO16) - ,IF(REPORT_ID%32=0,32,REPORT_ID%32)); - - INSERT IGNORE INTO rm_userg_report_info(PERM_USER_GROUP,REPORT_CODE) - SELECT NEW.PERM_ID,report_type_info.REPORT_DEFINE - FROM rm_role_hmi_info,report_type_info - WHERE - testNumber(elt( ((PERM_ROLE-1) DIV 32) +1, NEW.PERM_ROLE1,NEW.PERM_ROLE2,NEW.PERM_ROLE3,NEW.PERM_ROLE4,NEW.PERM_ROLE5,NEW.PERM_ROLE6,NEW.PERM_ROLE7,NEW.PERM_ROLE8), - IF(PERM_ROLE%32=0,32,PERM_ROLE%32)) - AND rm_role_hmi_info.PERM_TYPE='1' - AND - testNumber(elt( ((REPORT_ID-1) DIV 32) +1, - PERM_INFO1,PERM_INFO2,PERM_INFO3,PERM_INFO4,PERM_INFO5,PERM_INFO6,PERM_INFO7,PERM_INFO8, - PERM_INFO9,PERM_INFO10,PERM_INFO11,PERM_INFO12,PERM_INFO13,PERM_INFO14,PERM_INFO15,PERM_INFO16) - ,IF(REPORT_ID%32=0,32,REPORT_ID%32)); - - INSERT INTO rm_userg_hmi_info(PERM_USER_GROUP,PERM_TYPE,PERM_INFO1,PERM_INFO2,PERM_INFO3,PERM_INFO4,PERM_INFO5,PERM_INFO6,PERM_INFO7,PERM_INFO8,PERM_INFO9,PERM_INFO10,PERM_INFO11,PERM_INFO12,PERM_INFO13,PERM_INFO14,PERM_INFO15,PERM_INFO16,PERM_ATTRIBUTE) - VALUES(NEW.PERM_ID,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1) - ; - - - -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'rm_userg_def', 'perm_id', '', NEW.PERM_ID, getTableSubSystem('rm_userg_def')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_RM_USERG_DEF; -DELIMITER ;; -create trigger TUA_RM_USERG_DEF AFTER UPDATE on rm_userg_def for each ROW -BEGIN - IF NEW.PERM_ID <> OLD.PERM_ID OR NEW.PERM_ROLE1 <> OLD.PERM_ROLE1 OR NEW.PERM_ROLE2 <> OLD.PERM_ROLE2 OR NEW.PERM_ROLE3 <> OLD.PERM_ROLE3 OR - NEW.PERM_ROLE4 <> OLD.PERM_ROLE4 OR NEW.PERM_ROLE5 <> OLD.PERM_ROLE5 OR NEW.PERM_ROLE6 <> OLD.PERM_ROLE6 OR NEW.PERM_ROLE7 <> OLD.PERM_ROLE7 OR - NEW.PERM_ROLE8 <> OLD.PERM_ROLE8 THEN - BEGIN - #PERM_TYPE = 1是报表,0是HMI画面 - #先清除,后插入rm_userg_report_info - #先删除关联了此用户组的在rm_userg_report_info中的报表浏览权限 - DELETE FROM rm_userg_report_info WHERE PERM_USER_GROUP = OLD.PERM_ID; - - #重新把对应的报表浏览权限写入 - INSERT INTO rm_userg_report_info(PERM_USER_GROUP,REPORT_CODE) - SELECT NEW.PERM_ID,report_type_info.REPORT_DEFINE - FROM rm_userg_hmi_info, report_type_info - WHERE rm_userg_hmi_info.PERM_USER_GROUP = NEW.PERM_ID AND rm_userg_hmi_info.PERM_TYPE = '1' - AND - testNumber(elt( ((REPORT_ID-1) DIV 32) +1, - PERM_INFO1,PERM_INFO2,PERM_INFO3,PERM_INFO4,PERM_INFO5,PERM_INFO6,PERM_INFO7,PERM_INFO8, - PERM_INFO9,PERM_INFO10,PERM_INFO11,PERM_INFO12,PERM_INFO13,PERM_INFO14,PERM_INFO15,PERM_INFO16) - ,IF(REPORT_ID%32=0,32,REPORT_ID%32)); - - INSERT IGNORE INTO rm_userg_report_info(PERM_USER_GROUP,REPORT_CODE) - SELECT NEW.PERM_ID,report_type_info.REPORT_DEFINE - FROM rm_role_hmi_info,report_type_info - WHERE - testNumber(elt( ((PERM_ROLE-1) DIV 32) +1, NEW.PERM_ROLE1,NEW.PERM_ROLE2,NEW.PERM_ROLE3,NEW.PERM_ROLE4,NEW.PERM_ROLE5,NEW.PERM_ROLE6,NEW.PERM_ROLE7,NEW.PERM_ROLE8), - IF(PERM_ROLE%32=0,32,PERM_ROLE%32)) - AND rm_role_hmi_info.PERM_TYPE='1' - AND - testNumber(elt( ((REPORT_ID-1) DIV 32) +1, - PERM_INFO1,PERM_INFO2,PERM_INFO3,PERM_INFO4,PERM_INFO5,PERM_INFO6,PERM_INFO7,PERM_INFO8, - PERM_INFO9,PERM_INFO10,PERM_INFO11,PERM_INFO12,PERM_INFO13,PERM_INFO14,PERM_INFO15,PERM_INFO16) - ,IF(REPORT_ID%32=0,32,REPORT_ID%32)) - ; - - END; - END IF; - - IF NEW.PERM_LOCATION1 <> OLD.PERM_LOCATION1 OR NEW.PERM_LOCATION2 <> OLD.PERM_LOCATION2 OR NEW.PERM_LOCATION3 <> OLD.PERM_LOCATION3 OR - NEW.PERM_LOCATION4 <> OLD.PERM_LOCATION4 OR NEW.PERM_LOCATION5 <> OLD.PERM_LOCATION5 OR NEW.PERM_LOCATION6 <> OLD.PERM_LOCATION6 OR - NEW.PERM_LOCATION7 <> OLD.PERM_LOCATION7 OR NEW.PERM_LOCATION8 <> OLD.PERM_LOCATION8 THEN - BEGIN - - UPDATE rm_userg_rsp_info SET PERM_LOCATION1 = NEW.PERM_LOCATION1,PERM_LOCATION2 = NEW.PERM_LOCATION2,PERM_LOCATION3 = NEW.PERM_LOCATION3,PERM_LOCATION4 = NEW.PERM_LOCATION4, - PERM_LOCATION5 = NEW.PERM_LOCATION5,PERM_LOCATION6 = NEW.PERM_LOCATION6,PERM_LOCATION7 = NEW.PERM_LOCATION7,PERM_LOCATION8 = NEW.PERM_LOCATION8 WHERE PERM_USER_GROUP = OLD.PERM_ID; - - END; - END IF; - -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'rm_userg_def', 'perm_id', OLD.PERM_ID, NEW.PERM_ID, getTableSubSystem('rm_userg_def')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_RM_USERG_DEF; -DELIMITER ;; -create trigger TDA_RM_USERG_DEF AFTER DELETE on rm_userg_def for each ROW -BEGIN -#删除用户中的用户组 - DECLARE num int; - SET num = (OLD.PERM_ID-1) DIV 32; - - IF num = 0 THEN - UPDATE rm_user_def SET PERM_USER_GROUP1 = resetBit(PERM_USER_GROUP1,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32)) WHERE testNumber(PERM_USER_GROUP1,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32)); - ELSEIF num = 1 THEN - UPDATE rm_user_def SET PERM_USER_GROUP2 = resetBit(PERM_USER_GROUP2,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32)) WHERE testNumber(PERM_USER_GROUP2,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32)); - ELSEIF num = 2 THEN - UPDATE rm_user_def SET PERM_USER_GROUP3 = resetBit(PERM_USER_GROUP3,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32)) WHERE testNumber(PERM_USER_GROUP3,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32)); - ELSEIF num = 3 THEN - UPDATE rm_user_def SET PERM_USER_GROUP4 = resetBit(PERM_USER_GROUP4,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32)) WHERE testNumber(PERM_USER_GROUP4,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32)); - ELSEIF num = 4 THEN - UPDATE rm_user_def SET PERM_USER_GROUP5 = resetBit(PERM_USER_GROUP5,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32)) WHERE testNumber(PERM_USER_GROUP5,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32)); - ELSEIF num = 5 THEN - UPDATE rm_user_def SET PERM_USER_GROUP6 = resetBit(PERM_USER_GROUP6,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32)) WHERE testNumber(PERM_USER_GROUP6,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32)); - ELSEIF num = 6 THEN - UPDATE rm_user_def SET PERM_USER_GROUP7 = resetBit(PERM_USER_GROUP7,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32)) WHERE testNumber(PERM_USER_GROUP7,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32)); - ELSEIF num = 7 THEN - UPDATE rm_user_def SET PERM_USER_GROUP8 = resetBit(PERM_USER_GROUP8,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32)) WHERE testNumber(PERM_USER_GROUP8,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32)); - ELSEIF num = 8 THEN - UPDATE rm_user_def SET PERM_USER_GROUP9 = resetBit(PERM_USER_GROUP9,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32)) WHERE testNumber(PERM_USER_GROUP9,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32)); - ELSEIF num = 9 THEN - UPDATE rm_user_def SET PERM_USER_GROUP10 = resetBit(PERM_USER_GROUP10,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32)) WHERE testNumber(PERM_USER_GROUP10,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32)); - ELSEIF num = 10 THEN - UPDATE rm_user_def SET PERM_USER_GROUP11 = resetBit(PERM_USER_GROUP11,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32)) WHERE testNumber(PERM_USER_GROUP11,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32)); - ELSEIF num = 11 THEN - UPDATE rm_user_def SET PERM_USER_GROUP12 = resetBit(PERM_USER_GROUP12,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32)) WHERE testNumber(PERM_USER_GROUP12,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32)); - ELSEIF num = 12 THEN - UPDATE rm_user_def SET PERM_USER_GROUP13 = resetBit(PERM_USER_GROUP13,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32)) WHERE testNumber(PERM_USER_GROUP13,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32)); - ELSEIF num = 13 THEN - UPDATE rm_user_def SET PERM_USER_GROUP14 = resetBit(PERM_USER_GROUP14,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32)) WHERE testNumber(PERM_USER_GROUP14,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32)); - ELSEIF num = 14 THEN - UPDATE rm_user_def SET PERM_USER_GROUP15 = resetBit(PERM_USER_GROUP15,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32)) WHERE testNumber(PERM_USER_GROUP15,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32)); - ELSEIF num = 15 THEN - UPDATE rm_user_def SET PERM_USER_GROUP16 = resetBit(PERM_USER_GROUP16,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32)) WHERE testNumber(PERM_USER_GROUP16,IF(OLD.PERM_ID%32=0,32,OLD.PERM_ID%32)); - END IF; - -#rm_userg_rsp_info - DELETE FROM rm_userg_rsp_info WHERE PERM_USER_GROUP = OLD.PERM_ID; -#rm_userg_db_info - DELETE FROM rm_userg_db_info WHERE PERM_USER_GROUP = OLD.PERM_ID; -#rm_userg_hmi_info - DELETE FROM rm_userg_hmi_info WHERE PERM_USER_GROUP = OLD.PERM_ID; -#rm_userg_report_info - DELETE FROM rm_userg_report_info WHERE PERM_USER_GROUP = OLD.PERM_ID; - -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'rm_userg_def', 'perm_id', OLD.PERM_ID, '', getTableSubSystem('rm_userg_def')); -END IF; -END;; -DELIMITER ; - -drop table if exists rm_userg_hmi_info; -CREATE TABLE `rm_userg_hmi_info` ( - `PERM_USER_GROUP` decimal(10,0) NOT NULL COMMENT '所属用户组', - `PERM_TYPE` decimal(10,0) NOT NULL COMMENT '权限类型', - `PERM_INFO1` decimal(10,0) DEFAULT NULL COMMENT '权限信息1', - `PERM_INFO2` decimal(10,0) DEFAULT NULL COMMENT '权限信息2', - `PERM_INFO3` decimal(10,0) DEFAULT NULL COMMENT '权限信息3', - `PERM_INFO4` decimal(10,0) DEFAULT NULL COMMENT '权限信息4', - `PERM_INFO5` decimal(10,0) DEFAULT NULL COMMENT '权限信息5', - `PERM_INFO6` decimal(10,0) DEFAULT NULL COMMENT '权限信息6', - `PERM_INFO7` decimal(10,0) DEFAULT NULL COMMENT '权限信息7', - `PERM_INFO8` decimal(10,0) DEFAULT NULL COMMENT '权限信息8', - `PERM_INFO9` decimal(10,0) DEFAULT NULL COMMENT '权限信息9', - `PERM_INFO10` decimal(10,0) DEFAULT NULL COMMENT '权限信息10', - `PERM_INFO11` decimal(10,0) DEFAULT NULL COMMENT '权限信息11', - `PERM_INFO12` decimal(10,0) DEFAULT NULL COMMENT '权限信息12', - `PERM_INFO13` decimal(10,0) DEFAULT NULL COMMENT '权限信息13', - `PERM_INFO14` decimal(10,0) DEFAULT NULL COMMENT '权限信息14', - `PERM_INFO15` decimal(10,0) DEFAULT NULL COMMENT '权限信息15', - `PERM_INFO16` decimal(10,0) DEFAULT NULL COMMENT '权限信息16', - `PERM_ATTRIBUTE` decimal(10,0) NOT NULL COMMENT '权限属性', - PRIMARY KEY (`PERM_USER_GROUP`,`PERM_TYPE`,`PERM_ATTRIBUTE`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户组画面权限信息表'; - -drop trigger if exists TIA_RM_USERG_HMI_INFO; -DELIMITER ;; -create trigger TIA_RM_USERG_HMI_INFO AFTER INSERT on rm_userg_hmi_info for each ROW -BEGIN - #PERM_TYPE = 1是报表,0是HMI画面 - #先清除,后插入rm_userg_report_info - - IF NEW.PERM_TYPE = '1' THEN - BEGIN - #先删除关联了此用户组的在rm_userg_report_info中的报表浏览权限 - DELETE FROM rm_userg_report_info WHERE PERM_USER_GROUP = NEW.PERM_USER_GROUP; - - - #重新把对应的报表浏览权限写入 - INSERT INTO rm_userg_report_info(PERM_USER_GROUP,REPORT_CODE) - SELECT NEW.PERM_USER_GROUP,report_type_info.REPORT_DEFINE - FROM report_type_info - WHERE testNumber(elt( ((REPORT_ID-1) DIV 32) +1, - NEW.PERM_INFO1,NEW.PERM_INFO2,NEW.PERM_INFO3,NEW.PERM_INFO4,NEW.PERM_INFO5,NEW.PERM_INFO6,NEW.PERM_INFO7,NEW.PERM_INFO8, - NEW.PERM_INFO9,NEW.PERM_INFO10,NEW.PERM_INFO11,NEW.PERM_INFO12,NEW.PERM_INFO13,NEW.PERM_INFO14,NEW.PERM_INFO15,NEW.PERM_INFO16) - ,IF(REPORT_ID%32=0,32,REPORT_ID%32)); - - INSERT IGNORE INTO rm_userg_report_info(PERM_USER_GROUP,REPORT_CODE) - SELECT NEW.PERM_USER_GROUP,report_type_info.REPORT_DEFINE - FROM rm_userg_def,rm_role_hmi_info,report_type_info - WHERE rm_userg_def.PERM_ID = NEW.PERM_USER_GROUP - AND - testNumber(elt( ((PERM_ROLE-1) DIV 32) +1, PERM_ROLE1,PERM_ROLE2,PERM_ROLE3,PERM_ROLE4,PERM_ROLE5,PERM_ROLE6,PERM_ROLE7,PERM_ROLE8), - IF(PERM_ROLE%32=0,32,PERM_ROLE%32)) - AND rm_role_hmi_info.PERM_TYPE='1' - AND - testNumber(elt( ((REPORT_ID-1) DIV 32) +1, - PERM_INFO1,PERM_INFO2,PERM_INFO3,PERM_INFO4,PERM_INFO5,PERM_INFO6,PERM_INFO7,PERM_INFO8, - PERM_INFO9,PERM_INFO10,PERM_INFO11,PERM_INFO12,PERM_INFO13,PERM_INFO14,PERM_INFO15,PERM_INFO16) - ,IF(REPORT_ID%32=0,32,REPORT_ID%32)) - ; - - END; - END IF; - - -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'rm_userg_hmi_info', 'perm_user_group,perm_type,perm_attribute', '', concat(NEW.PERM_USER_GROUP,',',NEW.PERM_TYPE,',',NEW.PERM_ATTRIBUTE), getTableSubSystem('rm_userg_hmi_info')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_RM_USERG_HMI_INFO; -DELIMITER ;; -create trigger TUA_RM_USERG_HMI_INFO AFTER UPDATE on rm_userg_hmi_info for each ROW -BEGIN - #PERM_TYPE = 1是报表,0是HMI画面 - #先清除,后插入rm_userg_report_info - - IF NEW.PERM_TYPE = '1' AND OLD.PERM_TYPE = '1' THEN - BEGIN - #先删除关联了此用户组的在rm_userg_report_info中的报表浏览权限 - DELETE FROM rm_userg_report_info WHERE PERM_USER_GROUP = OLD.PERM_USER_GROUP; - - - #重新把对应的报表浏览权限写入 - INSERT INTO rm_userg_report_info(PERM_USER_GROUP,REPORT_CODE) - SELECT NEW.PERM_USER_GROUP,report_type_info.REPORT_DEFINE - FROM report_type_info - WHERE testNumber(elt( ((REPORT_ID-1) DIV 32) +1, - NEW.PERM_INFO1,NEW.PERM_INFO2,NEW.PERM_INFO3,NEW.PERM_INFO4,NEW.PERM_INFO5,NEW.PERM_INFO6,NEW.PERM_INFO7,NEW.PERM_INFO8, - NEW.PERM_INFO9,NEW.PERM_INFO10,NEW.PERM_INFO11,NEW.PERM_INFO12,NEW.PERM_INFO13,NEW.PERM_INFO14,NEW.PERM_INFO15,NEW.PERM_INFO16) - ,IF(REPORT_ID%32=0,32,REPORT_ID%32)); - - INSERT IGNORE INTO rm_userg_report_info(PERM_USER_GROUP,REPORT_CODE) - SELECT NEW.PERM_USER_GROUP,report_type_info.REPORT_DEFINE - FROM rm_userg_def,rm_role_hmi_info,report_type_info - WHERE rm_userg_def.PERM_ID = NEW.PERM_USER_GROUP - AND - testNumber(elt( ((PERM_ROLE-1) DIV 32) +1, PERM_ROLE1,PERM_ROLE2,PERM_ROLE3,PERM_ROLE4,PERM_ROLE5,PERM_ROLE6,PERM_ROLE7,PERM_ROLE8), - IF(PERM_ROLE%32=0,32,PERM_ROLE%32)) - AND rm_role_hmi_info.PERM_TYPE='1' - AND - testNumber(elt( ((REPORT_ID-1) DIV 32) +1, - PERM_INFO1,PERM_INFO2,PERM_INFO3,PERM_INFO4,PERM_INFO5,PERM_INFO6,PERM_INFO7,PERM_INFO8, - PERM_INFO9,PERM_INFO10,PERM_INFO11,PERM_INFO12,PERM_INFO13,PERM_INFO14,PERM_INFO15,PERM_INFO16) - ,IF(REPORT_ID%32=0,32,REPORT_ID%32)) - ; - - END; - END IF; - -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'rm_userg_hmi_info', 'perm_user_group,perm_type,perm_attribute', concat(OLD.PERM_USER_GROUP,',',OLD.PERM_TYPE,',',OLD.PERM_ATTRIBUTE), concat(NEW.PERM_USER_GROUP,',',NEW.PERM_TYPE,',',NEW.PERM_ATTRIBUTE), getTableSubSystem('rm_userg_hmi_info')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_RM_USERG_HMI_INFO; -DELIMITER ;; -create trigger TDA_RM_USERG_HMI_INFO AFTER DELETE on rm_userg_hmi_info for each ROW -BEGIN - #PERM_TYPE = 1是报表,0是HMI画面 - #先清除,后插入rm_userg_report_info - - IF OLD.PERM_TYPE = '1' THEN - BEGIN - #先删除关联了此用户组的在rm_userg_report_info中的报表浏览权限 - DELETE FROM rm_userg_report_info WHERE PERM_USER_GROUP = OLD.PERM_USER_GROUP; - - - #重新把对应的报表浏览权限写入 - INSERT IGNORE INTO rm_userg_report_info(PERM_USER_GROUP,REPORT_CODE) - SELECT OLD.PERM_USER_GROUP,report_type_info.REPORT_DEFINE - FROM rm_userg_def,rm_role_hmi_info,report_type_info - WHERE rm_userg_def.PERM_ID = OLD.PERM_USER_GROUP - AND - testNumber(elt( ((PERM_ROLE-1) DIV 32) +1, PERM_ROLE1,PERM_ROLE2,PERM_ROLE3,PERM_ROLE4,PERM_ROLE5,PERM_ROLE6,PERM_ROLE7,PERM_ROLE8), - IF(PERM_ROLE%32=0,32,PERM_ROLE%32)) - AND rm_role_hmi_info.PERM_TYPE='1' - AND - testNumber(elt( ((REPORT_ID-1) DIV 32) +1, - PERM_INFO1,PERM_INFO2,PERM_INFO3,PERM_INFO4,PERM_INFO5,PERM_INFO6,PERM_INFO7,PERM_INFO8, - PERM_INFO9,PERM_INFO10,PERM_INFO11,PERM_INFO12,PERM_INFO13,PERM_INFO14,PERM_INFO15,PERM_INFO16) - ,IF(REPORT_ID%32=0,32,REPORT_ID%32)) - ; - - END; - END IF; - - -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'rm_userg_hmi_info', 'perm_user_group,perm_type,perm_attribute', concat(OLD.PERM_USER_GROUP,',',OLD.PERM_TYPE,',',OLD.PERM_ATTRIBUTE), '', getTableSubSystem('rm_userg_hmi_info')); -END IF; -END;; -DELIMITER ; - -drop table if exists rm_userg_report_info; -CREATE TABLE `rm_userg_report_info` ( - `PERM_USER_GROUP` decimal(10,0) NOT NULL, - `REPORT_CODE` varchar(32) NOT NULL, - PRIMARY KEY (`PERM_USER_GROUP`,`REPORT_CODE`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -drop table if exists rm_userg_rsp_info; -CREATE TABLE `rm_userg_rsp_info` ( - `PERM_USER_GROUP` decimal(10,0) NOT NULL COMMENT '所属用户组', - `PERM_ROLE` decimal(10,0) NOT NULL COMMENT '所属角色', - `PERM_SPEFUNC` decimal(10,0) NOT NULL COMMENT '特殊功能', - `PERM_REGION1` decimal(10,0) DEFAULT NULL COMMENT '责任区1', - `PERM_REGION2` decimal(10,0) DEFAULT NULL COMMENT '责任区2', - `PERM_REGION3` decimal(10,0) DEFAULT NULL COMMENT '责任区3', - `PERM_REGION4` decimal(10,0) DEFAULT NULL COMMENT '责任区4', - `PERM_LOCATION1` decimal(10,0) DEFAULT NULL COMMENT '车站1', - `PERM_LOCATION2` decimal(10,0) DEFAULT NULL COMMENT '车站2', - `PERM_LOCATION3` decimal(10,0) DEFAULT NULL COMMENT '车站3', - `PERM_LOCATION4` decimal(10,0) DEFAULT NULL COMMENT '车站4', - `PERM_LOCATION5` decimal(10,0) DEFAULT NULL COMMENT '车站5', - `PERM_LOCATION6` decimal(10,0) DEFAULT NULL COMMENT '车站6', - `PERM_LOCATION7` decimal(10,0) DEFAULT NULL COMMENT '车站7', - `PERM_LOCATION8` decimal(10,0) DEFAULT NULL COMMENT '车站8', - PRIMARY KEY (`PERM_USER_GROUP`,`PERM_ROLE`,`PERM_SPEFUNC`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户组特殊权限信息表'; - -drop trigger if exists TIA_RM_USERG_RSP_INFO; -DELIMITER ;; -create trigger TIA_RM_USERG_RSP_INFO AFTER INSERT on rm_userg_rsp_info for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'rm_userg_rsp_info', 'perm_user_group,perm_role,perm_spefunc', '', concat(NEW.PERM_USER_GROUP,',',NEW.PERM_ROLE,',',NEW.PERM_SPEFUNC), getTableSubSystem('rm_userg_rsp_info')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_RM_USERG_RSP_INFO; -DELIMITER ;; -create trigger TUA_RM_USERG_RSP_INFO AFTER UPDATE on rm_userg_rsp_info for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'rm_userg_rsp_info', 'perm_user_group,perm_role,perm_spefunc', concat(OLD.PERM_USER_GROUP,',',OLD.PERM_ROLE,',',OLD.PERM_SPEFUNC), concat(NEW.PERM_USER_GROUP,',',NEW.PERM_ROLE,',',NEW.PERM_SPEFUNC), getTableSubSystem('rm_userg_rsp_info')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_RM_USERG_RSP_INFO; -DELIMITER ;; -create trigger TDA_RM_USERG_RSP_INFO AFTER DELETE on rm_userg_rsp_info for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'rm_userg_rsp_info', 'perm_user_group,perm_role,perm_spefunc', concat(OLD.PERM_USER_GROUP,',',OLD.PERM_ROLE,',',OLD.PERM_SPEFUNC), '', getTableSubSystem('rm_userg_rsp_info')); -END IF; -END;; -DELIMITER ; - -drop table if exists safety_day; -CREATE TABLE `safety_day` ( - `TAG_NAME` varchar(64) NOT NULL COMMENT '标签名', - `BEGIN_TIME` decimal(20,0) NOT NULL COMMENT '起始时间,UTC秒数', - `DAY_DIFF` decimal(10,0) NOT NULL COMMENT '安全运行天数', - PRIMARY KEY (`TAG_NAME`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='安全天数'; - -drop trigger if exists TIA_SAFETY_DAY; -DELIMITER ;; -create trigger TIA_SAFETY_DAY AFTER INSERT on safety_day for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'safety_day', 'tag_name', '', NEW.TAG_NAME, getTableSubSystem('safety_day')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_SAFETY_DAY; -DELIMITER ;; -create trigger TUA_SAFETY_DAY AFTER UPDATE on safety_day for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'safety_day', 'tag_name', OLD.TAG_NAME, NEW.TAG_NAME, getTableSubSystem('safety_day')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_SAFETY_DAY; -DELIMITER ;; -create trigger TDA_SAFETY_DAY AFTER DELETE on safety_day for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'safety_day', 'tag_name', OLD.TAG_NAME, '', getTableSubSystem('safety_day')); -END IF; -END;; -DELIMITER ; - -drop table if exists sample_define; -CREATE TABLE `sample_define` ( - `TAG_NAME` varchar(64) NOT NULL COMMENT '点标签', - `POINT_TYPE` decimal(10,0) NOT NULL COMMENT '点类型', - `DESCRIPTION` varchar(128) DEFAULT NULL COMMENT '点描述', - `LOCATION_ID` decimal(10,0) NOT NULL COMMENT '所属车站ID', - `SUB_SYSTEM` decimal(10,0) NOT NULL COMMENT '所属专业', - `DEVICE_TAG` varchar(64) DEFAULT NULL COMMENT '设备标签', - `SAMPLE_PERIOD` decimal(10,0) DEFAULT NULL COMMENT '采样周期(分钟)', - `SAMPLE_DEADBAND` decimal(22,6) DEFAULT NULL COMMENT '采样死区值', - `VALUE` decimal(22,6) DEFAULT NULL COMMENT '值', - `STATUS` decimal(10,0) DEFAULT NULL COMMENT '状态', - `UPDATE_TIME` decimal(20,0) DEFAULT NULL COMMENT '更新时间', - PRIMARY KEY (`TAG_NAME`,`POINT_TYPE`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='采样定义表'; - -drop trigger if exists TIA_SAMPLE_DEFINE; -DELIMITER ;; -create trigger TIA_SAMPLE_DEFINE AFTER INSERT on sample_define for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'sample_define', 'tag_name', '', NEW.TAG_NAME, getTableSubSystem('sample_define')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_SAMPLE_DEFINE; -DELIMITER ;; -create trigger TUA_SAMPLE_DEFINE AFTER UPDATE on sample_define for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'sample_define', 'tag_name', OLD.TAG_NAME, NEW.TAG_NAME, getTableSubSystem('sample_define')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_SAMPLE_DEFINE; -DELIMITER ;; -create trigger TDA_SAMPLE_DEFINE AFTER DELETE on sample_define for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'sample_define', 'tag_name', OLD.TAG_NAME, '', getTableSubSystem('sample_define')); -END IF; -END;; -DELIMITER ; - -drop table if exists sys_model_app_info; -CREATE TABLE `sys_model_app_info` ( - `APP_ID` decimal(10,0) NOT NULL COMMENT '应用ID-下标1开始', - `TAG_NAME` varchar(32) NOT NULL COMMENT '应用标签名', - `DESCRIPTION` varchar(64) NOT NULL COMMENT '应用描述', - `SUB_SYSTEM` varchar(128) NOT NULL COMMENT '应用包含专业', - `ORDER_NO` decimal(10,0) NOT NULL COMMENT '应用启动顺序', - PRIMARY KEY (`APP_ID`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='系统建模-应用信息表'; - -drop trigger if exists TIA_SYS_MODEL_APP_INFO; -DELIMITER ;; -create trigger TIA_SYS_MODEL_APP_INFO AFTER INSERT on sys_model_app_info for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'sys_model_app_info', 'app_id', '', NEW.APP_ID, getTableSubSystem('sys_model_app_info')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_SYS_MODEL_APP_INFO; -DELIMITER ;; -create trigger TUA_SYS_MODEL_APP_INFO AFTER UPDATE on sys_model_app_info for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'sys_model_app_info', 'app_id', OLD.APP_ID, NEW.APP_ID, getTableSubSystem('sys_model_app_info')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_SYS_MODEL_APP_INFO; -DELIMITER ;; -create trigger TDA_SYS_MODEL_APP_INFO AFTER DELETE on sys_model_app_info for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'sys_model_app_info', 'app_id', OLD.APP_ID, '', getTableSubSystem('sys_model_app_info')); -END IF; -END;; -DELIMITER ; - -drop table if exists sys_model_dbconfig_domain; -CREATE TABLE `sys_model_dbconfig_domain` ( - `DOMAIN_ID` decimal(10,0) NOT NULL, - `FIRST_CONNECT` varchar(48) NOT NULL COMMENT '首链接', - `NUM1` decimal(10,0) NOT NULL COMMENT '本地数据库连接个', - `LOCAL1` varchar(48) DEFAULT NULL COMMENT '节点1', - `LOCAL2` varchar(48) DEFAULT NULL COMMENT '节点2', - `LOCAL3` varchar(48) DEFAULT NULL COMMENT '节点3', - `LOCAL4` varchar(48) DEFAULT NULL COMMENT '节点4', - `NUM2` decimal(10,0) DEFAULT NULL COMMENT '远程数据库连接个数', - `REMOTE1` decimal(10,0) DEFAULT NULL COMMENT '远程域1,主要用于同时写远程库', - `REMOTE2` decimal(10,0) DEFAULT NULL COMMENT '远程域2', - `REMOTE3` decimal(10,0) DEFAULT NULL COMMENT '远程域3', - `REMOTE4` decimal(10,0) DEFAULT NULL COMMENT '远程域4', - PRIMARY KEY (`DOMAIN_ID`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='系统建模-数据库域配置'; - -drop trigger if exists TIA_SYS_MODEL_DBCONFIG_DOMAIN; -DELIMITER ;; -create trigger TIA_SYS_MODEL_DBCONFIG_DOMAIN AFTER INSERT on sys_model_dbconfig_domain for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'sys_model_dbconfig_domain', 'domain_id', '', NEW.DOMAIN_ID, getTableSubSystem('sys_model_dbconfig_domain')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_SYS_MODEL_DBCONFIG_DOMAIN; -DELIMITER ;; -create trigger TUA_SYS_MODEL_DBCONFIG_DOMAIN AFTER UPDATE on sys_model_dbconfig_domain for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'sys_model_dbconfig_domain', 'domain_id', OLD.DOMAIN_ID, NEW.DOMAIN_ID, getTableSubSystem('sys_model_dbconfig_domain')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_SYS_MODEL_DBCONFIG_DOMAIN; -DELIMITER ;; -create trigger TDA_SYS_MODEL_DBCONFIG_DOMAIN AFTER DELETE on sys_model_dbconfig_domain for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'sys_model_dbconfig_domain', 'domain_id', OLD.DOMAIN_ID, '', getTableSubSystem('sys_model_dbconfig_domain')); -END IF; -END;; -DELIMITER ; - -drop table if exists sys_model_dbconfig_node; -CREATE TABLE `sys_model_dbconfig_node` ( - `NODE_NAME` varchar(64) NOT NULL, - `DB_TYPE` decimal(10,0) NOT NULL COMMENT '数据库类型', - `DB_SERVICE_NAME` varchar(16) NOT NULL COMMENT '数据库服务名', - `USER_NAME` varchar(16) NOT NULL COMMENT '数据库用户名', - `USER_PASSWORD` varchar(16) NOT NULL COMMENT '数据库密码', - `NIC_CUR_ID` decimal(10,0) DEFAULT NULL COMMENT '活动网卡ID', - `DB_NAME` varchar(16) DEFAULT NULL COMMENT '数据库标识(主数据库/备数据库)', - `DB_HOST_PRIOR` decimal(10,0) DEFAULT NULL COMMENT '域内优先级', - `IS_DB_SWITCH` decimal(10,0) DEFAULT NULL COMMENT '是否可以切换', - `IS_DIRECT_ACCESS` decimal(10,0) NOT NULL COMMENT '是否可以直连', - `DB_PORT` decimal(10,0) DEFAULT NULL, - PRIMARY KEY (`NODE_NAME`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='系统建模数据库节点配置'; - -drop trigger if exists TIA_SYS_MODEL_DBCONFIG_NODE; -DELIMITER ;; -create trigger TIA_SYS_MODEL_DBCONFIG_NODE AFTER INSERT on sys_model_dbconfig_node for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'sys_model_dbconfig_node', 'node_name', '', NEW.NODE_NAME, getTableSubSystem('sys_model_dbconfig_node')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_SYS_MODEL_DBCONFIG_NODE; -DELIMITER ;; -create trigger TUA_SYS_MODEL_DBCONFIG_NODE AFTER UPDATE on sys_model_dbconfig_node for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'sys_model_dbconfig_node', 'node_name', OLD.NODE_NAME, NEW.NODE_NAME, getTableSubSystem('sys_model_dbconfig_node')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_SYS_MODEL_DBCONFIG_NODE; -DELIMITER ;; -create trigger TDA_SYS_MODEL_DBCONFIG_NODE AFTER DELETE on sys_model_dbconfig_node for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'sys_model_dbconfig_node', 'node_name', OLD.NODE_NAME, '', getTableSubSystem('sys_model_dbconfig_node')); -END IF; -END;; -DELIMITER ; - -drop table if exists sys_model_deploy_info; -CREATE TABLE `sys_model_deploy_info` ( - `DOMAIN_ID` decimal(10,0) NOT NULL COMMENT '域名', - `APP_ID` decimal(10,0) NOT NULL COMMENT '应用ID', - `DESCRIPTION` varchar(64) DEFAULT NULL COMMENT '部署描述', - `NUM` decimal(10,0) DEFAULT NULL COMMENT '部署的服务器数量', - `NODE1` varchar(64) NOT NULL COMMENT '部署应用的机器节点1', - `NODE2` varchar(64) DEFAULT NULL COMMENT '部署应用的机器节点2', - `NODE3` varchar(64) DEFAULT NULL COMMENT '部署应用的机器节点3', - `NODE4` varchar(64) DEFAULT NULL COMMENT '部署应用的机器节点4', - `NODE5` varchar(64) DEFAULT NULL COMMENT '部署应用的机器节点5', - `NODE6` varchar(64) DEFAULT NULL COMMENT '部署应用的机器节点6', - `NODE7` varchar(64) DEFAULT NULL COMMENT '部署应用的机器节点7', - `NODE8` varchar(64) DEFAULT NULL COMMENT '部署应用的机器节点8', - PRIMARY KEY (`DOMAIN_ID`,`APP_ID`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='系统建模-部署信息表'; - -drop trigger if exists TIA_SYS_MODEL_DEPLOY_INFO; -DELIMITER ;; -create trigger TIA_SYS_MODEL_DEPLOY_INFO AFTER INSERT on sys_model_deploy_info for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'sys_model_deploy_info', 'domain_id,app_id', '', concat(NEW.DOMAIN_ID,',',NEW.APP_ID), getTableSubSystem('sys_model_deploy_info')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_SYS_MODEL_DEPLOY_INFO; -DELIMITER ;; -create trigger TUA_SYS_MODEL_DEPLOY_INFO AFTER UPDATE on sys_model_deploy_info for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'sys_model_deploy_info', 'domain_id,app_id', concat(OLD.DOMAIN_ID,',',OLD.APP_ID), concat(NEW.DOMAIN_ID,',',NEW.APP_ID), getTableSubSystem('sys_model_deploy_info')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_SYS_MODEL_DEPLOY_INFO; -DELIMITER ;; -create trigger TDA_SYS_MODEL_DEPLOY_INFO AFTER DELETE on sys_model_deploy_info for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'sys_model_deploy_info', 'domain_id,app_id', concat(OLD.DOMAIN_ID,',',OLD.APP_ID), '', getTableSubSystem('sys_model_deploy_info')); -END IF; -END;; -DELIMITER ; - -drop table if exists sys_model_domain_info; -CREATE TABLE `sys_model_domain_info` ( - `DOMAIN_ID` decimal(10,0) NOT NULL COMMENT '域ID', - `TAG_NAME` varchar(32) DEFAULT NULL COMMENT '域名称', - `IS_CENTER_DOMAIN` decimal(10,0) NOT NULL COMMENT '是否中心域', - `DESCRIPTION` varchar(32) DEFAULT NULL COMMENT '域描述', - PRIMARY KEY (`DOMAIN_ID`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='系统建模-域信息表'; - -drop trigger if exists TIA_SYS_MODEL_DOMAIN_INFO; -DELIMITER ;; -create trigger TIA_SYS_MODEL_DOMAIN_INFO AFTER INSERT on sys_model_domain_info for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'sys_model_domain_info', 'domain_id', '', NEW.DOMAIN_ID, getTableSubSystem('sys_model_domain_info')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_SYS_MODEL_DOMAIN_INFO; -DELIMITER ;; -create trigger TUA_SYS_MODEL_DOMAIN_INFO AFTER UPDATE on sys_model_domain_info for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'sys_model_domain_info', 'domain_id', OLD.DOMAIN_ID, NEW.DOMAIN_ID, getTableSubSystem('sys_model_domain_info')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_SYS_MODEL_DOMAIN_INFO; -DELIMITER ;; -create trigger TDA_SYS_MODEL_DOMAIN_INFO AFTER DELETE on sys_model_domain_info for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'sys_model_domain_info', 'domain_id', OLD.DOMAIN_ID, '', getTableSubSystem('sys_model_domain_info')); -END IF; -END;; -DELIMITER ; - -drop table if exists sys_model_location_info; -CREATE TABLE `sys_model_location_info` ( - `LOCATION_ID` decimal(10,0) NOT NULL COMMENT '车站ID', - `TAG_NAME` varchar(32) NOT NULL COMMENT '车站标签-唯一', - `DESCRIPTION` varchar(128) NOT NULL COMMENT '车站描述-中文名', - `DOMAIN_ID` decimal(10,0) NOT NULL, - `LOCATION_NO` decimal(10,0) DEFAULT NULL COMMENT '车站位置号', - `KILOMETERS` decimal(10,0) DEFAULT NULL COMMENT '站中心公里标-备用', - `IS_CENTRAL` decimal(10,0) DEFAULT NULL COMMENT '是否中心站', - `OCC_NO` decimal(10,0) DEFAULT NULL COMMENT '中心站号-备用', - `CONTROL_TYPE` decimal(10,0) DEFAULT NULL COMMENT '控制模式-备用', - `AUTO_TRIGGER` decimal(10,0) DEFAULT NULL COMMENT '自动触发模式-备用', - `CBI_NO` decimal(10,0) DEFAULT NULL COMMENT '连锁编号-备用', - `ZC_NO` decimal(10,0) DEFAULT NULL COMMENT '控制区域编号-备用', - `LOCATION_TYPE` decimal(10,0) DEFAULT NULL COMMENT '位置类型-备用', - `PLOCATION_ID` decimal(10,0) DEFAULT NULL COMMENT '父位置ID-备用', - `LOCATION_LEVEL` decimal(10,0) DEFAULT NULL COMMENT '位置等级-车站', - PRIMARY KEY (`LOCATION_ID`), - UNIQUE KEY `UN_SYS_MODEL_LOCATION_INFO` (`TAG_NAME`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='系统建模-车站信息表'; - -drop trigger if exists TIA_SYS_MODEL_LOCATION_INFO; -DELIMITER ;; -create trigger TIA_SYS_MODEL_LOCATION_INFO AFTER INSERT on sys_model_location_info for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'sys_model_location_info', 'location_id', '', NEW.LOCATION_ID, getTableSubSystem('sys_model_location_info')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_SYS_MODEL_LOCATION_INFO; -DELIMITER ;; -create trigger TUA_SYS_MODEL_LOCATION_INFO AFTER UPDATE on sys_model_location_info for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'sys_model_location_info', 'location_id', OLD.LOCATION_ID, NEW.LOCATION_ID, getTableSubSystem('sys_model_location_info')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_SYS_MODEL_LOCATION_INFO; -DELIMITER ;; -create trigger TDA_SYS_MODEL_LOCATION_INFO AFTER DELETE on sys_model_location_info for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'sys_model_location_info', 'location_id', OLD.LOCATION_ID, '', getTableSubSystem('sys_model_location_info')); -END IF; -END;; -DELIMITER ; - -drop table if exists sys_model_msg_relay; -CREATE TABLE `sys_model_msg_relay` ( - `SRC_DOMAIN_ID` decimal(10,0) NOT NULL COMMENT '源域ID', - `DST_DOMAIN_ID` decimal(10,0) NOT NULL COMMENT '目标域ID', - `SUB_APP_ID` decimal(10,0) NOT NULL COMMENT '消息主题,应用ID', - `SUB_CHANNEL_ID` varchar(512) DEFAULT NULL COMMENT '消息主题,通道ID,半角逗号“,”分割。允许为空,表示不订阅转发,但建立转发连接,允许定向发送给目标域的peer、host、domain', - PRIMARY KEY (`SRC_DOMAIN_ID`,`DST_DOMAIN_ID`,`SUB_APP_ID`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='系统建模-消息转发通道配置'; - -drop trigger if exists TIA_SYS_MODEL_MSG_RELAY; -DELIMITER ;; -create trigger TIA_SYS_MODEL_MSG_RELAY AFTER INSERT on sys_model_msg_relay for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'sys_model_msg_relay', 'src_domain_id,dst_domain_id,sub_app_id', '', concat(NEW.SRC_DOMAIN_ID,',',NEW.DST_DOMAIN_ID,',',NEW.SUB_APP_ID), getTableSubSystem('sys_model_msg_relay')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_SYS_MODEL_MSG_RELAY; -DELIMITER ;; -create trigger TUA_SYS_MODEL_MSG_RELAY AFTER UPDATE on sys_model_msg_relay for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'sys_model_msg_relay', 'src_domain_id,dst_domain_id,sub_app_id', concat(OLD.SRC_DOMAIN_ID,',',OLD.DST_DOMAIN_ID,',',OLD.SUB_APP_ID), concat(NEW.SRC_DOMAIN_ID,',',NEW.DST_DOMAIN_ID,',',NEW.SUB_APP_ID), getTableSubSystem('sys_model_msg_relay')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_SYS_MODEL_MSG_RELAY; -DELIMITER ;; -create trigger TDA_SYS_MODEL_MSG_RELAY AFTER DELETE on sys_model_msg_relay for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'sys_model_msg_relay', 'src_domain_id,dst_domain_id,sub_app_id', concat(OLD.SRC_DOMAIN_ID,',',OLD.DST_DOMAIN_ID,',',OLD.SUB_APP_ID), '', getTableSubSystem('sys_model_msg_relay')); -END IF; -END;; -DELIMITER ; - -drop table if exists sys_model_node_info; -CREATE TABLE `sys_model_node_info` ( - `NODE_NAME` varchar(64) NOT NULL COMMENT '机器节点名称', - `LOCATION_ID` decimal(10,0) NOT NULL COMMENT '所属车站', - `DESCRIPTION` varchar(64) NOT NULL COMMENT '节点描述-中文名称', - `NODE_TYPE` decimal(10,0) DEFAULT NULL COMMENT '节点类型-(工作站/实时服务器/数据服务器)', - `IS_USED` decimal(10,0) DEFAULT NULL COMMENT '是否使用', - `NIC_NUM` decimal(10,0) DEFAULT NULL COMMENT '网卡数', - `NIC1_NAME` varchar(64) DEFAULT NULL COMMENT '网卡1名称', - `NIC1_ADDRESS` varchar(32) DEFAULT NULL COMMENT '网卡1IP地址', - `NIC1_NETMASK` varchar(32) DEFAULT NULL COMMENT '子网掩码', - `NIC1_GATEWAY` varchar(32) DEFAULT NULL COMMENT '网卡1网关', - `NIC2_NAME` varchar(64) DEFAULT NULL COMMENT '网卡2名称', - `NIC2_ADDRESS` varchar(32) DEFAULT NULL COMMENT '网卡2IP地址', - `NIC2_NETMASK` varchar(32) DEFAULT NULL COMMENT '网卡2子网掩码', - `NIC2_GATEWAY` varchar(32) DEFAULT NULL COMMENT '网卡2网关', - PRIMARY KEY (`NODE_NAME`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='系统建模-节点配置'; - -drop trigger if exists TIA_SYS_MODEL_NODE_INFO; -DELIMITER ;; -create trigger TIA_SYS_MODEL_NODE_INFO AFTER INSERT on sys_model_node_info for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'sys_model_node_info', 'node_name', '', NEW.NODE_NAME, getTableSubSystem('sys_model_node_info')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_SYS_MODEL_NODE_INFO; -DELIMITER ;; -create trigger TUA_SYS_MODEL_NODE_INFO AFTER UPDATE on sys_model_node_info for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'sys_model_node_info', 'node_name', OLD.NODE_NAME, NEW.NODE_NAME, getTableSubSystem('sys_model_node_info')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_SYS_MODEL_NODE_INFO; -DELIMITER ;; -create trigger TDA_SYS_MODEL_NODE_INFO AFTER DELETE on sys_model_node_info for each ROW -BEGIN -delete from acs_device_node_map where NODE_NAME = old.NODE_NAME; -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'sys_model_node_info', 'node_name', OLD.NODE_NAME, '', getTableSubSystem('sys_model_node_info')); -END IF; -END;; -DELIMITER ; - -drop table if exists sys_model_process_info; -CREATE TABLE `sys_model_process_info` ( - `PROC_ALIAS` varchar(48) NOT NULL COMMENT '进程别名', - `APP_ID` decimal(10,0) DEFAULT NULL COMMENT '应用ID', - `PROC_NAME` varchar(64) NOT NULL COMMENT '进程名称', - `PROC_PARA` varchar(96) DEFAULT NULL COMMENT '进程参数', - `INSTANCE_NUM` decimal(10,0) DEFAULT NULL COMMENT '运行实例数-备用', - `NOT_USED` decimal(10,0) DEFAULT NULL COMMENT '是否停用', - `START_TYPE` decimal(10,0) DEFAULT NULL COMMENT '启动类型-(启动一次/常驻内存)', - `RUN_ORDER` decimal(10,0) DEFAULT NULL COMMENT '启动顺序', - `IS_AUTO_RUN` decimal(10,0) DEFAULT NULL COMMENT '是否自动运行-备用', - `IS_CYCLE_START` decimal(10,0) DEFAULT NULL COMMENT '是否周期启动-备用', - `IS_CYCLE_PERIOD` decimal(10,0) DEFAULT NULL COMMENT '是否过段时间运行-备用', - `IS_OFFLIEN_RUN` decimal(10,0) DEFAULT NULL COMMENT '网络故障是否运行-备用', - `IS_DUTY_RUN` decimal(10,0) DEFAULT NULL COMMENT '是否值机态运行-备用', - `IS_STANDBY_RUN` decimal(10,0) DEFAULT NULL COMMENT '是否备态下运行-备用', - `REPORT_TYPE` decimal(10,0) NOT NULL COMMENT '报告类型-备用', - `OCCUPY_CONTEXT` decimal(10,0) DEFAULT NULL COMMENT '所属态-备用', - `FILE_PATH` varchar(96) DEFAULT NULL COMMENT '文件路径-备用', - `DESCRIPTION` varchar(96) DEFAULT NULL COMMENT '进程描述', - `RUN_STYLE` decimal(10,0) DEFAULT NULL COMMENT '运行类型-备用', - `PROC_TYPE` decimal(10,0) DEFAULT NULL COMMENT '进程类型-是否单域单进程', - PRIMARY KEY (`PROC_ALIAS`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='系统建模-应用进程信息'; - -drop trigger if exists TIA_SYS_MODEL_PROCESS_INFO; -DELIMITER ;; -create trigger TIA_SYS_MODEL_PROCESS_INFO AFTER INSERT on sys_model_process_info for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'sys_model_process_info', 'proc_alias', '', NEW.PROC_ALIAS, getTableSubSystem('sys_model_process_info')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_SYS_MODEL_PROCESS_INFO; -DELIMITER ;; -create trigger TUA_SYS_MODEL_PROCESS_INFO AFTER UPDATE on sys_model_process_info for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'sys_model_process_info', 'proc_alias', OLD.PROC_ALIAS, NEW.PROC_ALIAS, getTableSubSystem('sys_model_process_info')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_SYS_MODEL_PROCESS_INFO; -DELIMITER ;; -create trigger TDA_SYS_MODEL_PROCESS_INFO AFTER DELETE on sys_model_process_info for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'sys_model_process_info', 'proc_alias', OLD.PROC_ALIAS, '', getTableSubSystem('sys_model_process_info')); -END IF; -END;; -DELIMITER ; - -drop table if exists sys_model_sub_system_info; -CREATE TABLE `sys_model_sub_system_info` ( - `SUB_SYSTEM_ID` decimal(10,0) NOT NULL COMMENT '专业ID', - `TAG_NAME` varchar(32) NOT NULL COMMENT '标签名', - `DESCRIPTION` varchar(64) NOT NULL COMMENT '专业描述', - PRIMARY KEY (`SUB_SYSTEM_ID`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='系统建模-专业分类信息表'; - -drop trigger if exists TIA_SYS_MODEL_SUB_SYSTEM_INFO; -DELIMITER ;; -create trigger TIA_SYS_MODEL_SUB_SYSTEM_INFO AFTER INSERT on sys_model_sub_system_info for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('insert'),'sys_model_sub_system_info', 'sub_system_id', '', NEW.SUB_SYSTEM_ID, getTableSubSystem('sys_model_sub_system_info')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TUA_SYS_MODEL_SUB_SYSTEM_INFO; -DELIMITER ;; -create trigger TUA_SYS_MODEL_SUB_SYSTEM_INFO AFTER UPDATE on sys_model_sub_system_info for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('update'),'sys_model_sub_system_info', 'sub_system_id', OLD.SUB_SYSTEM_ID, NEW.SUB_SYSTEM_ID, getTableSubSystem('sys_model_sub_system_info')); -END IF; -END;; -DELIMITER ; - -drop trigger if exists TDA_SYS_MODEL_SUB_SYSTEM_INFO; -DELIMITER ;; -create trigger TDA_SYS_MODEL_SUB_SYSTEM_INFO AFTER DELETE on sys_model_sub_system_info for each ROW -BEGIN -IF getTriggerFlag() = TRUE THEN -INSERT INTO sys_trigger_info(ACT_ID, OP_TYPE, TABLE_NAME,KEY_COLUMN_NAME,KEY_OLD_VALUE,KEY_NEW_VALUE,SUBSYSTEM_FLAG) -VALUES (getMaxTriggerId(),getOpType('delete'),'sys_model_sub_system_info', 'sub_system_id', OLD.SUB_SYSTEM_ID, '', getTableSubSystem('sys_model_sub_system_info')); -END IF; -END;; -DELIMITER ; - -drop table if exists sys_trigger_flag; -CREATE TABLE `sys_trigger_flag` ( - `FLAG_ID` decimal(10,0) NOT NULL, - PRIMARY KEY (`FLAG_ID`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='触发器标记表'; - -drop table if exists temp_plugin; -CREATE TABLE `temp_plugin` ( - `TAG_NAME` varchar(64) NOT NULL COMMENT '套件名称', - `DESCRIPTION` varchar(128) DEFAULT NULL COMMENT '套件描述', - PRIMARY KEY (`TAG_NAME`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='套件定义表'; - -drop trigger if exists TU_TEMP_PLUGIN; -DELIMITER ;; -create trigger TU_TEMP_PLUGIN AFTER UPDATE on temp_plugin for each ROW -BEGIN - UPDATE temp_plugin_dev_map - SET PLUGIN_NAME = NEW.TAG_NAME - WHERE PLUGIN_NAME = OLD.TAG_NAME; - - UPDATE temp_plugin_fes_dev_map - SET PLUGIN_NAME = NEW.TAG_NAME - WHERE PLUGIN_NAME = OLD.TAG_NAME; - -END;; -DELIMITER ; - -drop trigger if exists TD_TEMP_PLUGIN; -DELIMITER ;; -create trigger TD_TEMP_PLUGIN AFTER DELETE on temp_plugin for each ROW -BEGIN - DELETE FROM temp_plugin_dev_map WHERE PLUGIN_NAME = OLD.TAG_NAME; - -END;; -DELIMITER ; - -drop table if exists temp_plugin_dev_map; -CREATE TABLE `temp_plugin_dev_map` ( - `PLUGIN_NAME` varchar(64) NOT NULL COMMENT '套件名', - `TEMP_NAME` varchar(64) NOT NULL COMMENT '后台模板名', - PRIMARY KEY (`PLUGIN_NAME`,`TEMP_NAME`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='套件与后台设备的映射'; - -drop trigger if exists TI_TEMP_PLUGIN_DEV_MAP; -DELIMITER ;; -create trigger TI_TEMP_PLUGIN_DEV_MAP AFTER INSERT on temp_plugin_dev_map for each ROW -body:BEGIN - IF myTriggerIsDisable() = 1 THEN LEAVE body; - END IF; - - #生成对应的测点 - INSERT INTO temp_plugin_point_map_acc - (PLUGIN_NAME, TEMP_NAME, TEMP_POINT_NAME, FES_TEMP_NAME, FES_TEMP_POINT_NAME) - SELECT - NEW.PLUGIN_NAME,NEW.TEMP_NAME,getAfterLastDot(TAG_NAME),'', '' - FROM accuml_temp_define WHERE DEV_TP_NAME = NEW.TEMP_NAME; - - INSERT INTO temp_plugin_point_map_ana - (PLUGIN_NAME, TEMP_NAME, TEMP_POINT_NAME, FES_TEMP_NAME, FES_TEMP_POINT_NAME,FES_TEMP_OUT_NAME) - SELECT - NEW.PLUGIN_NAME,NEW.TEMP_NAME,getAfterLastDot(TAG_NAME),'', '', '' - FROM analog_temp_define WHERE DEV_TP_NAME = NEW.TEMP_NAME; - - INSERT INTO temp_plugin_point_map_dig - (PLUGIN_NAME, TEMP_NAME, TEMP_POINT_NAME, FES_TEMP_NAME, FES_TEMP_POINT_NAME1, FES_TEMP_POINT_NAME2, FES_TEMP_POINT_NAME3, FES_TEMP_POINT_NAME4, FES_TEMP_POINT_NAME5, FES_TEMP_OUT_NAME1, FES_TEMP_OUT_NAME2, FES_TEMP_OUT_NAME3, FES_TEMP_OUT_NAME4, FES_TEMP_OUT_NAME5) - SELECT - NEW.PLUGIN_NAME,NEW.TEMP_NAME,getAfterLastDot(TAG_NAME),'', '', '', '', '', '', '', '', '', '', '' - FROM digital_temp_define WHERE DEV_TP_NAME = NEW.TEMP_NAME; - - INSERT INTO temp_plugin_point_map_mix - (PLUGIN_NAME, TEMP_NAME, TEMP_POINT_NAME, FES_TEMP_NAME, FES_TEMP_POINT_NAME,FES_TEMP_OUT_NAME) - SELECT - NEW.PLUGIN_NAME,NEW.TEMP_NAME,getAfterLastDot(TAG_NAME),'', '', '' - FROM mix_temp_define WHERE DEV_TP_NAME = NEW.TEMP_NAME; -END;; -DELIMITER ; - -drop trigger if exists TD_TEMP_PLUGIN_DEV_MAP; -DELIMITER ;; -create trigger TD_TEMP_PLUGIN_DEV_MAP AFTER DELETE on temp_plugin_dev_map for each ROW -BEGIN - DELETE FROM temp_plugin_fes_dev_map WHERE PLUGIN_NAME = OLD.PLUGIN_NAME AND TEMP_NAME = OLD.TEMP_NAME; - DELETE FROM temp_plugin_point_map_acc WHERE PLUGIN_NAME = OLD.PLUGIN_NAME AND TEMP_NAME = OLD.TEMP_NAME; - DELETE FROM temp_plugin_point_map_ana WHERE PLUGIN_NAME = OLD.PLUGIN_NAME AND TEMP_NAME = OLD.TEMP_NAME; - DELETE FROM temp_plugin_point_map_dig WHERE PLUGIN_NAME = OLD.PLUGIN_NAME AND TEMP_NAME = OLD.TEMP_NAME; - DELETE FROM temp_plugin_point_map_mix WHERE PLUGIN_NAME = OLD.PLUGIN_NAME AND TEMP_NAME = OLD.TEMP_NAME; - -END;; -DELIMITER ; - -drop table if exists temp_plugin_fes_dev_map; -CREATE TABLE `temp_plugin_fes_dev_map` ( - `PLUGIN_NAME` varchar(64) NOT NULL COMMENT '套件名', - `TEMP_NAME` varchar(64) NOT NULL COMMENT '后台模板名', - `FES_TEMP_NAME` varchar(64) NOT NULL COMMENT '前置模板名', - PRIMARY KEY (`PLUGIN_NAME`,`TEMP_NAME`,`FES_TEMP_NAME`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='套件中前置设备与后台设备的映射'; - -drop trigger if exists TU_TEMP_PLUGIN_FES_DEV_MAP; -DELIMITER ;; -create trigger TU_TEMP_PLUGIN_FES_DEV_MAP AFTER UPDATE on temp_plugin_fes_dev_map for each ROW -BEGIN - #分两种一种是更新plugin_name和temp_name,另外的是更新fes_temp_name - #已temp_plugin_point_map_acc为例,在此表中存在已关联的和未关联的两种情况,即FES_TEMP_NAME可能为空 - IF OLD.PLUGIN_NAME != NEW.PLUGIN_NAME OR OLD.TEMP_NAME != NEW.TEMP_NAME THEN - BEGIN - UPDATE temp_plugin_point_map_acc - SET - PLUGIN_NAME = NEW.PLUGIN_NAME, - TEMP_NAME = NEW.TEMP_NAME - WHERE PLUGIN_NAME = OLD.PLUGIN_NAME AND TEMP_NAME = OLD.TEMP_NAME; - - UPDATE temp_plugin_point_map_ana - SET - PLUGIN_NAME = NEW.PLUGIN_NAME, - TEMP_NAME = NEW.TEMP_NAME - WHERE PLUGIN_NAME = OLD.PLUGIN_NAME AND TEMP_NAME = OLD.TEMP_NAME; - - UPDATE temp_plugin_point_map_dig - SET - PLUGIN_NAME = NEW.PLUGIN_NAME, - TEMP_NAME = NEW.TEMP_NAME - WHERE PLUGIN_NAME = OLD.PLUGIN_NAME AND TEMP_NAME = OLD.TEMP_NAME; - - UPDATE temp_plugin_point_map_mix - SET - PLUGIN_NAME = NEW.PLUGIN_NAME, - TEMP_NAME = NEW.TEMP_NAME - WHERE PLUGIN_NAME = OLD.PLUGIN_NAME AND TEMP_NAME = OLD.TEMP_NAME; - END; - END IF; - - #上面的更新完成后,就可以统一使用新的plugin_name和temp_name - IF OLD.FES_TEMP_NAME != NEW.FES_TEMP_NAME THEN - BEGIN - UPDATE temp_plugin_point_map_acc - SET - FES_TEMP_NAME = NEW.FES_TEMP_NAME - WHERE PLUGIN_NAME = NEW.PLUGIN_NAME AND TEMP_NAME = NEW.TEMP_NAME AND FES_TEMP_NAME = OLD.FES_TEMP_NAME; - - UPDATE temp_plugin_point_map_ana - SET - FES_TEMP_NAME = NEW.FES_TEMP_NAME - WHERE PLUGIN_NAME = NEW.PLUGIN_NAME AND TEMP_NAME = NEW.TEMP_NAME AND FES_TEMP_NAME = OLD.FES_TEMP_NAME; - - UPDATE temp_plugin_point_map_dig - SET - FES_TEMP_NAME = NEW.FES_TEMP_NAME - WHERE PLUGIN_NAME = NEW.PLUGIN_NAME AND TEMP_NAME = NEW.TEMP_NAME AND FES_TEMP_NAME = OLD.FES_TEMP_NAME; - - UPDATE temp_plugin_point_map_mix - SET - FES_TEMP_NAME = NEW.FES_TEMP_NAME - WHERE PLUGIN_NAME = NEW.PLUGIN_NAME AND TEMP_NAME = NEW.TEMP_NAME AND FES_TEMP_NAME = OLD.FES_TEMP_NAME; - END; - END IF; - -END;; -DELIMITER ; - -drop trigger if exists TD_TEMP_PLUGIN_FES_DEV_MAP; -DELIMITER ;; -create trigger TD_TEMP_PLUGIN_FES_DEV_MAP AFTER DELETE on temp_plugin_fes_dev_map for each ROW -BEGIN - #直接把相关关联去除 - UPDATE temp_plugin_point_map_acc - SET - FES_TEMP_NAME = '', - FES_TEMP_POINT_NAME = '' - WHERE PLUGIN_NAME = OLD.PLUGIN_NAME AND TEMP_NAME = OLD.TEMP_NAME AND FES_TEMP_NAME = OLD.FES_TEMP_NAME; - - UPDATE temp_plugin_point_map_ana - SET - FES_TEMP_NAME = '', - FES_TEMP_POINT_NAME = '', - FES_TEMP_OUT_NAME = '' - WHERE PLUGIN_NAME = OLD.PLUGIN_NAME AND TEMP_NAME = OLD.TEMP_NAME AND FES_TEMP_NAME = OLD.FES_TEMP_NAME; - - UPDATE temp_plugin_point_map_dig - SET - FES_TEMP_NAME = '', - FES_TEMP_POINT_NAME1 = '', - FES_TEMP_POINT_NAME2 = '', - FES_TEMP_POINT_NAME3 = '', - FES_TEMP_POINT_NAME4 = '', - FES_TEMP_POINT_NAME5 = '', - FES_TEMP_OUT_NAME1 = '', - FES_TEMP_OUT_NAME2 = '', - FES_TEMP_OUT_NAME3 = '', - FES_TEMP_OUT_NAME4 = '', - FES_TEMP_OUT_NAME5 = '' - WHERE PLUGIN_NAME = OLD.PLUGIN_NAME AND TEMP_NAME = OLD.TEMP_NAME AND FES_TEMP_NAME = OLD.FES_TEMP_NAME; - - UPDATE temp_plugin_point_map_mix - SET - FES_TEMP_NAME = '', - FES_TEMP_POINT_NAME = '', - FES_TEMP_OUT_NAME = '' - WHERE PLUGIN_NAME = OLD.PLUGIN_NAME AND TEMP_NAME = OLD.TEMP_NAME AND FES_TEMP_NAME = OLD.FES_TEMP_NAME; - -END;; -DELIMITER ; - -drop table if exists temp_plugin_point_map_acc; -CREATE TABLE `temp_plugin_point_map_acc` ( - `PLUGIN_NAME` varchar(64) NOT NULL COMMENT '套件名', - `TEMP_NAME` varchar(64) NOT NULL COMMENT '后台模板名', - `TEMP_POINT_NAME` varchar(64) NOT NULL COMMENT '后台模板测点', - `FES_TEMP_NAME` varchar(64) DEFAULT NULL COMMENT '前置模板名', - `FES_TEMP_POINT_NAME` varchar(64) DEFAULT NULL COMMENT '前置模板测点名', - PRIMARY KEY (`PLUGIN_NAME`,`TEMP_NAME`,`TEMP_POINT_NAME`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='acc套件定义表'; - -drop table if exists temp_plugin_point_map_ana; -CREATE TABLE `temp_plugin_point_map_ana` ( - `PLUGIN_NAME` varchar(64) NOT NULL COMMENT '套件名', - `TEMP_NAME` varchar(64) NOT NULL COMMENT '后台模板名', - `TEMP_POINT_NAME` varchar(64) NOT NULL COMMENT '后台模板测点', - `FES_TEMP_NAME` varchar(64) DEFAULT NULL COMMENT '前置模板名', - `FES_TEMP_POINT_NAME` varchar(64) DEFAULT NULL COMMENT '前置模板测点名', - `FES_TEMP_OUT_NAME` varchar(64) DEFAULT NULL COMMENT '前置输出测点名', - PRIMARY KEY (`PLUGIN_NAME`,`TEMP_NAME`,`TEMP_POINT_NAME`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='ana套件定义表'; - -drop table if exists temp_plugin_point_map_dig; -CREATE TABLE `temp_plugin_point_map_dig` ( - `PLUGIN_NAME` varchar(64) NOT NULL COMMENT '套件名', - `TEMP_NAME` varchar(64) NOT NULL COMMENT '后台模板名', - `TEMP_POINT_NAME` varchar(64) NOT NULL COMMENT '后台模板测点', - `FES_TEMP_NAME` varchar(64) DEFAULT NULL COMMENT '前置模板名', - `FES_TEMP_POINT_NAME1` varchar(64) DEFAULT NULL COMMENT '前置模板测点名1', - `FES_TEMP_POINT_NAME2` varchar(64) DEFAULT NULL COMMENT '前置模板测点名2', - `FES_TEMP_POINT_NAME3` varchar(64) DEFAULT NULL COMMENT '前置模板测点名3', - `FES_TEMP_POINT_NAME4` varchar(64) DEFAULT NULL COMMENT '前置模板测点名4', - `FES_TEMP_POINT_NAME5` varchar(64) DEFAULT NULL COMMENT '前置模板测点名5', - `FES_TEMP_OUT_NAME1` varchar(64) DEFAULT NULL COMMENT '前置输出测点名1', - `FES_TEMP_OUT_NAME2` varchar(64) DEFAULT NULL COMMENT '前置输出测点名2', - `FES_TEMP_OUT_NAME3` varchar(64) DEFAULT NULL COMMENT '前置输出测点名3', - `FES_TEMP_OUT_NAME4` varchar(64) DEFAULT NULL COMMENT '前置输出测点名4', - `FES_TEMP_OUT_NAME5` varchar(64) DEFAULT NULL COMMENT '前置输出测点名5', - PRIMARY KEY (`PLUGIN_NAME`,`TEMP_NAME`,`TEMP_POINT_NAME`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='dig套件定义表'; - -drop table if exists temp_plugin_point_map_mix; -CREATE TABLE `temp_plugin_point_map_mix` ( - `PLUGIN_NAME` varchar(64) NOT NULL COMMENT '套件名', - `TEMP_NAME` varchar(64) NOT NULL COMMENT '后台模板名', - `TEMP_POINT_NAME` varchar(64) NOT NULL COMMENT '后台模板测点', - `FES_TEMP_NAME` varchar(64) DEFAULT NULL COMMENT '前置模板名', - `FES_TEMP_POINT_NAME` varchar(64) DEFAULT NULL COMMENT '前置模板测点名', - `FES_TEMP_OUT_NAME` varchar(64) DEFAULT NULL COMMENT '前置输出测点名', - PRIMARY KEY (`PLUGIN_NAME`,`TEMP_NAME`,`TEMP_POINT_NAME`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='mix套件定义表'; - -drop table if exists trend_collection; -CREATE TABLE `trend_collection` ( - `ID` int(11) NOT NULL AUTO_INCREMENT COMMENT 'id 主键,唯一字段', - `USERNO` varchar(16) DEFAULT NULL COMMENT '用户编号', - `SNAME` varchar(2000) DEFAULT NULL COMMENT '测点', - `NAME` varchar(32) DEFAULT NULL COMMENT '收藏名称', - `BACKUP` varchar(2000) DEFAULT NULL COMMENT '备用1', - `BACKUP1` varchar(2000) DEFAULT NULL COMMENT '备用2', - PRIMARY KEY (`ID`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='趋势分析分组表'; - -drop table if exists web_files; -CREATE TABLE `web_files` ( - `id` varchar(24) NOT NULL COMMENT '22位随机ID', - `name` varchar(125) NOT NULL COMMENT '名称', - `file_group` varchar(125) NOT NULL COMMENT '组名', - `ext` varchar(32) DEFAULT NULL COMMENT '扩展名', - `upload_time` decimal(20,0) NOT NULL COMMENT '上传时间戳', - `revision` decimal(10,0) NOT NULL COMMENT '版本', - `status` decimal(10,0) NOT NULL COMMENT '状态 0-存在 1-删除', - `comment` varchar(1024) DEFAULT NULL COMMENT '备注', - PRIMARY KEY (`id`), - KEY `IN_WEB_FILES` (`name`,`file_group`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='web文件'; - -drop table if exists web_page; -CREATE TABLE `web_page` ( - `id` varchar(24) NOT NULL COMMENT '22位随机ID', - `category` decimal(3,0) NOT NULL COMMENT '0区域页面,1自定义页面,2根节点', - `page_type` decimal(3,0) NOT NULL COMMENT '0表示2D页面,1表示3D页面', - `page_name` varchar(64) NOT NULL COMMENT '页面名称,与page_type组成联合唯一索引', - `content_path` varchar(32) DEFAULT NULL COMMENT '页面内容文件路径(仅保存文件名即可)', - `icon_info` varchar(256) DEFAULT NULL COMMENT '图标信息,前端传来的json', - `parent_code` varchar(24) DEFAULT NULL COMMENT '父节点编码,前端传入,22位随机ID', - `create_time` decimal(20,0) NOT NULL COMMENT '创建时间', - `show_area` decimal(3,0) NOT NULL COMMENT '是否展示区域树,0不展示,1展示', - `model_info` varchar(256) DEFAULT NULL COMMENT '模板信息,前端传来的json', - `area_code` varchar(80) DEFAULT NULL COMMENT '区域页面(type为0)所绑定的区域编码', - PRIMARY KEY (`id`), - UNIQUE KEY `UN_WEB_PAGE` (`page_type`,`page_name`), - KEY `IN_WEB_PAGE` (`category`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='web组态页面配置'; - -drop table if exists web_primitive; -CREATE TABLE `web_primitive` ( - `id` varchar(24) NOT NULL COMMENT '22位随机ID', - `category` decimal(3,0) NOT NULL COMMENT '类别:0-BI模板库;1-BI页面库;2-组态图元库;3-组合块库;4-组态模板库;5-组态页面库\n', - `primitive_name` varchar(64) NOT NULL COMMENT '图元名称,与category组成联合唯一索引,category在前', - `content_path` varchar(32) DEFAULT NULL COMMENT '图元文件路径(仅保存文件名即可),为空(null或empty)的记录是层级', - `icon_info` varchar(256) DEFAULT NULL COMMENT '图标信息,前端传来的json', - `parent_code` varchar(24) DEFAULT NULL COMMENT '父节点编码,前端传入,22位随机ID', - `param` varchar(256) DEFAULT NULL COMMENT '存放前端使用的参数', - `create_time` decimal(20,0) NOT NULL COMMENT '创建时间', - PRIMARY KEY (`id`), - UNIQUE KEY `UN_WEB_PRIMITIVE` (`category`,`primitive_name`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='web组态图元、模板配置'; - -drop procedure if exists autoRelationByPlugin; -DELIMITER ;; -CREATE DEFINER=`root`@`%` PROCEDURE `autoRelationByPlugin`(pluginName varchar(64)) -body:BEGIN - #自动形成套件中后台对前置的关联 - - #清除本套件中的关联关系 - UPDATE temp_plugin_point_map_acc SET FES_TEMP_NAME = '',FES_TEMP_POINT_NAME = '' - WHERE PLUGIN_NAME = pluginName; - - UPDATE temp_plugin_point_map_ana SET FES_TEMP_NAME = '',FES_TEMP_POINT_NAME = '',FES_TEMP_OUT_NAME = '' - WHERE PLUGIN_NAME = pluginName; - - UPDATE temp_plugin_point_map_dig SET - FES_TEMP_NAME = '', - FES_TEMP_OUT_NAME1 = '', - FES_TEMP_OUT_NAME2 = '', - FES_TEMP_OUT_NAME3 = '', - FES_TEMP_OUT_NAME4 = '', - FES_TEMP_OUT_NAME5 = '', - FES_TEMP_POINT_NAME1 = '', - FES_TEMP_POINT_NAME2 = '', - FES_TEMP_POINT_NAME3 = '', - FES_TEMP_POINT_NAME4 = '', - FES_TEMP_POINT_NAME5 = '' - WHERE PLUGIN_NAME = pluginName; - - UPDATE temp_plugin_point_map_mix SET FES_TEMP_NAME = '',FES_TEMP_POINT_NAME = '',FES_TEMP_OUT_NAME = '' - WHERE PLUGIN_NAME = pluginName; - - #关联 - #accuml - UPDATE - (temp_plugin_point_map_acc INNER JOIN temp_plugin_fes_dev_map - ON temp_plugin_point_map_acc.PLUGIN_NAME = pluginName AND temp_plugin_point_map_acc.PLUGIN_NAME = temp_plugin_fes_dev_map.PLUGIN_NAME - AND temp_plugin_point_map_acc.TEMP_NAME = temp_plugin_fes_dev_map.TEMP_NAME - )INNER JOIN fes_dev_pt_temp_def - ON DEV_TP_NAME = temp_plugin_fes_dev_map.FES_TEMP_NAME AND POINT_TYPE = getFesPointType('FES_ACC') - AND temp_plugin_point_map_acc.TEMP_POINT_NAME = getAfterLastDot(TAG_NAME) - SET temp_plugin_point_map_acc.FES_TEMP_NAME = temp_plugin_fes_dev_map.FES_TEMP_NAME, - temp_plugin_point_map_acc.FES_TEMP_POINT_NAME = temp_plugin_point_map_acc.TEMP_POINT_NAME; - - #analog - UPDATE - (temp_plugin_point_map_ana INNER JOIN temp_plugin_fes_dev_map - ON temp_plugin_point_map_ana.PLUGIN_NAME = pluginName AND temp_plugin_point_map_ana.PLUGIN_NAME = temp_plugin_fes_dev_map.PLUGIN_NAME - AND temp_plugin_point_map_ana.TEMP_NAME = temp_plugin_fes_dev_map.TEMP_NAME - )INNER JOIN fes_dev_pt_temp_def - ON DEV_TP_NAME = temp_plugin_fes_dev_map.FES_TEMP_NAME AND POINT_TYPE = getFesPointType('FES_ANA') - AND temp_plugin_point_map_ana.TEMP_POINT_NAME = getAfterLastDot(TAG_NAME) - SET temp_plugin_point_map_ana.FES_TEMP_NAME = temp_plugin_fes_dev_map.FES_TEMP_NAME, - temp_plugin_point_map_ana.FES_TEMP_POINT_NAME = temp_plugin_point_map_ana.TEMP_POINT_NAME; - #analog ctrl,只关联第一个分量 - UPDATE - (temp_plugin_point_map_ana INNER JOIN temp_plugin_fes_dev_map - ON temp_plugin_point_map_ana.PLUGIN_NAME = pluginName AND temp_plugin_point_map_ana.PLUGIN_NAME = temp_plugin_fes_dev_map.PLUGIN_NAME - AND temp_plugin_point_map_ana.TEMP_NAME = temp_plugin_fes_dev_map.TEMP_NAME - )INNER JOIN fes_dev_pt_temp_def - ON DEV_TP_NAME = temp_plugin_fes_dev_map.FES_TEMP_NAME AND POINT_TYPE = getFesPointType('FES_ANA_CTRL') - AND temp_plugin_point_map_ana.TEMP_POINT_NAME = getAfterLastDot(TAG_NAME) - SET temp_plugin_point_map_ana.FES_TEMP_NAME = temp_plugin_fes_dev_map.FES_TEMP_NAME, - temp_plugin_point_map_ana.FES_TEMP_OUT_NAME = temp_plugin_point_map_ana.TEMP_POINT_NAME; - #digital,只关联第一个分量 - UPDATE - (temp_plugin_point_map_dig INNER JOIN temp_plugin_fes_dev_map - ON temp_plugin_point_map_dig.PLUGIN_NAME = pluginName AND temp_plugin_point_map_dig.PLUGIN_NAME = temp_plugin_fes_dev_map.PLUGIN_NAME - AND temp_plugin_point_map_dig.TEMP_NAME = temp_plugin_fes_dev_map.TEMP_NAME - )INNER JOIN fes_dev_pt_temp_def - ON DEV_TP_NAME = temp_plugin_fes_dev_map.FES_TEMP_NAME AND POINT_TYPE = getFesPointType('FES_DIG') - AND temp_plugin_point_map_dig.TEMP_POINT_NAME = getAfterLastDot(TAG_NAME) - SET temp_plugin_point_map_dig.FES_TEMP_NAME = temp_plugin_fes_dev_map.FES_TEMP_NAME, - temp_plugin_point_map_dig.FES_TEMP_POINT_NAME1 = temp_plugin_point_map_dig.TEMP_POINT_NAME; - - #digital ctrl,只关联第一个分量 - UPDATE - (temp_plugin_point_map_dig INNER JOIN temp_plugin_fes_dev_map - ON temp_plugin_point_map_dig.PLUGIN_NAME = pluginName AND temp_plugin_point_map_dig.PLUGIN_NAME = temp_plugin_fes_dev_map.PLUGIN_NAME - AND temp_plugin_point_map_dig.TEMP_NAME = temp_plugin_fes_dev_map.TEMP_NAME - )INNER JOIN fes_dev_pt_temp_def - ON DEV_TP_NAME = temp_plugin_fes_dev_map.FES_TEMP_NAME AND POINT_TYPE = getFesPointType('FES_DIG_CTRL') - AND temp_plugin_point_map_dig.TEMP_POINT_NAME = getAfterLastDot(TAG_NAME) - SET temp_plugin_point_map_dig.FES_TEMP_NAME = temp_plugin_fes_dev_map.FES_TEMP_NAME, - temp_plugin_point_map_dig.FES_TEMP_OUT_NAME1 = temp_plugin_point_map_dig.TEMP_POINT_NAME; - UPDATE - (temp_plugin_point_map_mix INNER JOIN temp_plugin_fes_dev_map - ON temp_plugin_point_map_mix.PLUGIN_NAME = pluginName AND temp_plugin_point_map_mix.PLUGIN_NAME = temp_plugin_fes_dev_map.PLUGIN_NAME - AND temp_plugin_point_map_mix.TEMP_NAME = temp_plugin_fes_dev_map.TEMP_NAME - )INNER JOIN fes_dev_pt_temp_def - ON DEV_TP_NAME = temp_plugin_fes_dev_map.FES_TEMP_NAME AND POINT_TYPE = getFesPointType('FES_MIX') - AND temp_plugin_point_map_mix.TEMP_POINT_NAME = getAfterLastDot(TAG_NAME) - SET temp_plugin_point_map_mix.FES_TEMP_NAME = temp_plugin_fes_dev_map.FES_TEMP_NAME, - temp_plugin_point_map_mix.FES_TEMP_POINT_NAME = temp_plugin_point_map_mix.TEMP_POINT_NAME; - UPDATE - (temp_plugin_point_map_mix INNER JOIN temp_plugin_fes_dev_map - ON temp_plugin_point_map_mix.PLUGIN_NAME = pluginName AND temp_plugin_point_map_mix.PLUGIN_NAME = temp_plugin_fes_dev_map.PLUGIN_NAME - AND temp_plugin_point_map_mix.TEMP_NAME = temp_plugin_fes_dev_map.TEMP_NAME - )INNER JOIN fes_dev_pt_temp_def - ON DEV_TP_NAME = temp_plugin_fes_dev_map.FES_TEMP_NAME AND POINT_TYPE = getFesPointType('FES_MIX_CTRL') - AND temp_plugin_point_map_mix.TEMP_POINT_NAME = getAfterLastDot(TAG_NAME) - SET temp_plugin_point_map_mix.FES_TEMP_NAME = temp_plugin_fes_dev_map.FES_TEMP_NAME, - temp_plugin_point_map_mix.FES_TEMP_OUT_NAME = temp_plugin_point_map_mix.TEMP_POINT_NAME; - /*以下操作转到代码实现 - #经过以上操作后台和前置同名的测点已经关联,下面处理特殊的点 wz-->posOn,posOff - CREATE TEMPORARY TABLE IF NOT EXISTS tmpAutoRelationPluginTbl( - PLUGIN_NAME varchar(64), - TEMP_NAME varchar(64), - TEMP_POINT_NAME varchar(64), - FES_TEMP_NAME varchar(64), - FES_POINT1 varchar(64), - FES_POINT2 varchar(64) - ); - DELETE FROM tmpAutoRelationPluginTbl; - - INSERT INTO tmpAutoRelationPluginTbl(PLUGIN_NAME,TEMP_NAME,TEMP_POINT_NAME,FES_TEMP_NAME,FES_POINT1,FES_POINT2) - SELECT A.PLUGIN_NAME,A.TEMP_NAME,A.TEMP_POINT_NAME,temp_plugin_fes_dev_map.FES_TEMP_NAME,'','' FROM - (SELECT PLUGIN_NAME,TEMP_NAME,TEMP_POINT_NAME FROM temp_plugin_point_map_dig WHERE PLUGIN_NAME = pluginName AND TEMP_POINT_NAME = 'pos') AS A - LEFT JOIN temp_plugin_fes_dev_map - ON A.PLUGIN_NAME = temp_plugin_fes_dev_map.PLUGIN_NAME AND A.TEMP_NAME = temp_plugin_fes_dev_map.TEMP_NAME; - - UPDATE tmpAutoRelationPluginTbl INNER JOIN fes_dev_pt_temp_def - ON fes_dev_pt_temp_def.POINT_TYPE = getFesPointType('FES_DIG') - AND tmpAutoRelationPluginTbl.FES_TEMP_NAME = fes_dev_pt_temp_def.DEV_TP_NAME - AND getAfterLastDot(fes_dev_pt_temp_def.TAG_NAME) = 'posOn' - SET tmpAutoRelationPluginTbl.FES_POINT1 = getAfterLastDot(fes_dev_pt_temp_def.TAG_NAME); - - UPDATE tmpAutoRelationPluginTbl INNER JOIN fes_dev_pt_temp_def - ON fes_dev_pt_temp_def.POINT_TYPE = getFesPointType('FES_DIG') - AND tmpAutoRelationPluginTbl.FES_TEMP_NAME = fes_dev_pt_temp_def.DEV_TP_NAME - AND getAfterLastDot(fes_dev_pt_temp_def.TAG_NAME) = 'posOff' - SET tmpAutoRelationPluginTbl.FES_POINT2 = getAfterLastDot(fes_dev_pt_temp_def.TAG_NAME); - - UPDATE tmpAutoRelationPluginTbl INNER JOIN temp_plugin_point_map_dig - ON tmpAutoRelationPluginTbl.PLUGIN_NAME = temp_plugin_point_map_dig.PLUGIN_NAME - AND tmpAutoRelationPluginTbl.TEMP_NAME = temp_plugin_point_map_dig.TEMP_NAME - AND tmpAutoRelationPluginTbl.TEMP_POINT_NAME = temp_plugin_point_map_dig.TEMP_POINT_NAME - SET - temp_plugin_point_map_dig.FES_TEMP_NAME = tmpAutoRelationPluginTbl.FES_TEMP_NAME, - temp_plugin_point_map_dig.FES_TEMP_POINT_NAME1 = tmpAutoRelationPluginTbl.FES_POINT1, - temp_plugin_point_map_dig.FES_TEMP_POINT_NAME2 = tmpAutoRelationPluginTbl.FES_POINT2; - - DELETE FROM tmpAutoRelationPluginTbl; - */ - -END;; -DELIMITER ; - -drop procedure if exists autoRelationByPluginDev; -DELIMITER ;; -CREATE DEFINER=`root`@`%` PROCEDURE `autoRelationByPluginDev`(pluginName varchar(64),devTag varchar(64)) -body:BEGIN - /* - * 仅自动关联套件中的devTag指定的设备 - */ - - - #清除本套件中的关联关系 - UPDATE temp_plugin_point_map_acc SET FES_TEMP_NAME = '',FES_TEMP_POINT_NAME = '' - WHERE PLUGIN_NAME = pluginName AND TEMP_NAME = devTag; - - UPDATE temp_plugin_point_map_ana SET FES_TEMP_NAME = '',FES_TEMP_POINT_NAME = '',FES_TEMP_OUT_NAME = '' - WHERE PLUGIN_NAME = pluginName AND TEMP_NAME = devTag; - - UPDATE temp_plugin_point_map_dig SET - FES_TEMP_NAME = '', - FES_TEMP_OUT_NAME1 = '', - FES_TEMP_OUT_NAME2 = '', - FES_TEMP_OUT_NAME3 = '', - FES_TEMP_OUT_NAME4 = '', - FES_TEMP_OUT_NAME5 = '', - FES_TEMP_POINT_NAME1 = '', - FES_TEMP_POINT_NAME2 = '', - FES_TEMP_POINT_NAME3 = '', - FES_TEMP_POINT_NAME4 = '', - FES_TEMP_POINT_NAME5 = '' - WHERE PLUGIN_NAME = pluginName AND TEMP_NAME = devTag; - - UPDATE temp_plugin_point_map_mix SET FES_TEMP_NAME = '',FES_TEMP_POINT_NAME = '',FES_TEMP_OUT_NAME = '' - WHERE PLUGIN_NAME = pluginName AND TEMP_NAME = devTag; - - #关联 - #accuml - UPDATE - (temp_plugin_point_map_acc INNER JOIN temp_plugin_fes_dev_map - ON temp_plugin_point_map_acc.PLUGIN_NAME = pluginName - AND temp_plugin_point_map_acc.TEMP_NAME = devTag - AND temp_plugin_point_map_acc.PLUGIN_NAME = temp_plugin_fes_dev_map.PLUGIN_NAME - AND temp_plugin_point_map_acc.TEMP_NAME = temp_plugin_fes_dev_map.TEMP_NAME - )INNER JOIN fes_dev_pt_temp_def - ON DEV_TP_NAME = temp_plugin_fes_dev_map.FES_TEMP_NAME AND POINT_TYPE = getFesPointType('FES_ACC') - AND temp_plugin_point_map_acc.TEMP_POINT_NAME = getAfterLastDot(TAG_NAME) - SET temp_plugin_point_map_acc.FES_TEMP_NAME = temp_plugin_fes_dev_map.FES_TEMP_NAME, - temp_plugin_point_map_acc.FES_TEMP_POINT_NAME = temp_plugin_point_map_acc.TEMP_POINT_NAME; - - #analog - UPDATE - (temp_plugin_point_map_ana INNER JOIN temp_plugin_fes_dev_map - ON temp_plugin_point_map_ana.PLUGIN_NAME = pluginName - AND temp_plugin_point_map_ana.TEMP_NAME = devTag - AND temp_plugin_point_map_ana.PLUGIN_NAME = temp_plugin_fes_dev_map.PLUGIN_NAME - AND temp_plugin_point_map_ana.TEMP_NAME = temp_plugin_fes_dev_map.TEMP_NAME - )INNER JOIN fes_dev_pt_temp_def - ON DEV_TP_NAME = temp_plugin_fes_dev_map.FES_TEMP_NAME AND POINT_TYPE = getFesPointType('FES_ANA') - AND temp_plugin_point_map_ana.TEMP_POINT_NAME = getAfterLastDot(TAG_NAME) - SET temp_plugin_point_map_ana.FES_TEMP_NAME = temp_plugin_fes_dev_map.FES_TEMP_NAME, - temp_plugin_point_map_ana.FES_TEMP_POINT_NAME = temp_plugin_point_map_ana.TEMP_POINT_NAME; - - UPDATE - (temp_plugin_point_map_ana INNER JOIN temp_plugin_fes_dev_map - ON temp_plugin_point_map_ana.PLUGIN_NAME = pluginName - AND temp_plugin_point_map_ana.TEMP_NAME = devTag - AND temp_plugin_point_map_ana.PLUGIN_NAME = temp_plugin_fes_dev_map.PLUGIN_NAME - AND temp_plugin_point_map_ana.TEMP_NAME = temp_plugin_fes_dev_map.TEMP_NAME - )INNER JOIN fes_dev_pt_temp_def - ON DEV_TP_NAME = temp_plugin_fes_dev_map.FES_TEMP_NAME AND POINT_TYPE = getFesPointType('FES_ANA_CTRL') - AND temp_plugin_point_map_ana.TEMP_POINT_NAME = getAfterLastDot(TAG_NAME) - SET temp_plugin_point_map_ana.FES_TEMP_NAME = temp_plugin_fes_dev_map.FES_TEMP_NAME, - temp_plugin_point_map_ana.FES_TEMP_OUT_NAME = temp_plugin_point_map_ana.TEMP_POINT_NAME; - #digital,只关联第一个分量 - UPDATE - (temp_plugin_point_map_dig INNER JOIN temp_plugin_fes_dev_map - ON temp_plugin_point_map_dig.PLUGIN_NAME = pluginName - AND temp_plugin_point_map_dig.TEMP_NAME = devTag - AND temp_plugin_point_map_dig.PLUGIN_NAME = temp_plugin_fes_dev_map.PLUGIN_NAME - AND temp_plugin_point_map_dig.TEMP_NAME = temp_plugin_fes_dev_map.TEMP_NAME - )INNER JOIN fes_dev_pt_temp_def - ON DEV_TP_NAME = temp_plugin_fes_dev_map.FES_TEMP_NAME AND POINT_TYPE = getFesPointType('FES_DIG') - AND temp_plugin_point_map_dig.TEMP_POINT_NAME = getAfterLastDot(TAG_NAME) - SET temp_plugin_point_map_dig.FES_TEMP_NAME = temp_plugin_fes_dev_map.FES_TEMP_NAME, - temp_plugin_point_map_dig.FES_TEMP_POINT_NAME1 = temp_plugin_point_map_dig.TEMP_POINT_NAME; - UPDATE - (temp_plugin_point_map_dig INNER JOIN temp_plugin_fes_dev_map - ON temp_plugin_point_map_dig.PLUGIN_NAME = pluginName - AND temp_plugin_point_map_dig.TEMP_NAME = devTag - AND temp_plugin_point_map_dig.PLUGIN_NAME = temp_plugin_fes_dev_map.PLUGIN_NAME - AND temp_plugin_point_map_dig.TEMP_NAME = temp_plugin_fes_dev_map.TEMP_NAME - )INNER JOIN fes_dev_pt_temp_def - ON DEV_TP_NAME = temp_plugin_fes_dev_map.FES_TEMP_NAME AND POINT_TYPE = getFesPointType('FES_DIG_CTRL') - AND temp_plugin_point_map_dig.TEMP_POINT_NAME = getAfterLastDot(TAG_NAME) - SET temp_plugin_point_map_dig.FES_TEMP_NAME = temp_plugin_fes_dev_map.FES_TEMP_NAME, - temp_plugin_point_map_dig.FES_TEMP_OUT_NAME1 = temp_plugin_point_map_dig.TEMP_POINT_NAME; - - UPDATE - (temp_plugin_point_map_mix INNER JOIN temp_plugin_fes_dev_map - ON temp_plugin_point_map_mix.PLUGIN_NAME = pluginName - AND temp_plugin_point_map_mix.TEMP_NAME = devTag - AND temp_plugin_point_map_mix.PLUGIN_NAME = temp_plugin_fes_dev_map.PLUGIN_NAME - AND temp_plugin_point_map_mix.TEMP_NAME = temp_plugin_fes_dev_map.TEMP_NAME - )INNER JOIN fes_dev_pt_temp_def - ON DEV_TP_NAME = temp_plugin_fes_dev_map.FES_TEMP_NAME AND POINT_TYPE = getFesPointType('FES_MIX') - AND temp_plugin_point_map_mix.TEMP_POINT_NAME = getAfterLastDot(TAG_NAME) - SET temp_plugin_point_map_mix.FES_TEMP_NAME = temp_plugin_fes_dev_map.FES_TEMP_NAME, - temp_plugin_point_map_mix.FES_TEMP_POINT_NAME = temp_plugin_point_map_mix.TEMP_POINT_NAME; - UPDATE - (temp_plugin_point_map_mix INNER JOIN temp_plugin_fes_dev_map - ON temp_plugin_point_map_mix.PLUGIN_NAME = pluginName - AND temp_plugin_point_map_mix.TEMP_NAME = devTag - AND temp_plugin_point_map_mix.PLUGIN_NAME = temp_plugin_fes_dev_map.PLUGIN_NAME - AND temp_plugin_point_map_mix.TEMP_NAME = temp_plugin_fes_dev_map.TEMP_NAME - )INNER JOIN fes_dev_pt_temp_def - ON DEV_TP_NAME = temp_plugin_fes_dev_map.FES_TEMP_NAME AND POINT_TYPE = getFesPointType('FES_MIX_CTRL') - AND temp_plugin_point_map_mix.TEMP_POINT_NAME = getAfterLastDot(TAG_NAME) - SET temp_plugin_point_map_mix.FES_TEMP_NAME = temp_plugin_fes_dev_map.FES_TEMP_NAME, - temp_plugin_point_map_mix.FES_TEMP_OUT_NAME = temp_plugin_point_map_mix.TEMP_POINT_NAME; - - /*以下操作转代码实现 - #经过以上操作后台和前置同名的测点已经关联,下面处理特殊的点 wz-->posOn,posOff - CREATE TEMPORARY TABLE IF NOT EXISTS tmpAutoRelationPluginTbl( - PLUGIN_NAME varchar(64), - TEMP_NAME varchar(64), - TEMP_POINT_NAME varchar(64), - FES_TEMP_NAME varchar(64), - FES_POINT1 varchar(64), - FES_POINT2 varchar(64) - ); - DELETE FROM tmpAutoRelationPluginTbl; - - INSERT INTO tmpAutoRelationPluginTbl(PLUGIN_NAME,TEMP_NAME,TEMP_POINT_NAME,FES_TEMP_NAME,FES_POINT1,FES_POINT2) - SELECT A.PLUGIN_NAME,A.TEMP_NAME,A.TEMP_POINT_NAME,temp_plugin_fes_dev_map.FES_TEMP_NAME,'','' FROM - (SELECT PLUGIN_NAME,TEMP_NAME,TEMP_POINT_NAME FROM temp_plugin_point_map_dig WHERE PLUGIN_NAME = pluginName - AND TEMP_NAME = devTag - AND TEMP_POINT_NAME = 'pos') AS A - LEFT JOIN temp_plugin_fes_dev_map - ON A.PLUGIN_NAME = temp_plugin_fes_dev_map.PLUGIN_NAME AND A.TEMP_NAME = temp_plugin_fes_dev_map.TEMP_NAME; - - UPDATE tmpAutoRelationPluginTbl INNER JOIN fes_dev_pt_temp_def - ON fes_dev_pt_temp_def.POINT_TYPE = getFesPointType('FES_DIG') - AND tmpAutoRelationPluginTbl.FES_TEMP_NAME = fes_dev_pt_temp_def.DEV_TP_NAME - AND getAfterLastDot(fes_dev_pt_temp_def.TAG_NAME) = 'posOn' - SET tmpAutoRelationPluginTbl.FES_POINT1 = getAfterLastDot(fes_dev_pt_temp_def.TAG_NAME); - - UPDATE tmpAutoRelationPluginTbl INNER JOIN fes_dev_pt_temp_def - ON fes_dev_pt_temp_def.POINT_TYPE = getFesPointType('FES_DIG') - AND tmpAutoRelationPluginTbl.FES_TEMP_NAME = fes_dev_pt_temp_def.DEV_TP_NAME - AND getAfterLastDot(fes_dev_pt_temp_def.TAG_NAME) = 'posOff' - SET tmpAutoRelationPluginTbl.FES_POINT2 = getAfterLastDot(fes_dev_pt_temp_def.TAG_NAME); - - UPDATE tmpAutoRelationPluginTbl INNER JOIN temp_plugin_point_map_dig - ON tmpAutoRelationPluginTbl.PLUGIN_NAME = temp_plugin_point_map_dig.PLUGIN_NAME - AND tmpAutoRelationPluginTbl.TEMP_NAME = temp_plugin_point_map_dig.TEMP_NAME - AND tmpAutoRelationPluginTbl.TEMP_POINT_NAME = temp_plugin_point_map_dig.TEMP_POINT_NAME - SET - temp_plugin_point_map_dig.FES_TEMP_NAME = tmpAutoRelationPluginTbl.FES_TEMP_NAME, - temp_plugin_point_map_dig.FES_TEMP_POINT_NAME1 = tmpAutoRelationPluginTbl.FES_POINT1, - temp_plugin_point_map_dig.FES_TEMP_POINT_NAME2 = tmpAutoRelationPluginTbl.FES_POINT2; - - DELETE FROM tmpAutoRelationPluginTbl; - */ - -END;; -DELIMITER ; - -drop procedure if exists bindStatDev; -DELIMITER ;; -CREATE DEFINER=`root`@`%` PROCEDURE `bindStatDev`(statTag varchar(64),devTag varchar(64)) -body:BEGIN - /* - * 绑定统计分析中的实例,使用对应的后台设备 - * statTag 统计分析实例 - * devTag 后台设备 - */ - - #清空 - UPDATE stat_inst_para_point SET POINT_TAG = '' WHERE INST_TAG = statTag; - - UPDATE stat_inst_ret_para SET POINT_TAG = '' WHERE INST_TAG = statTag; - - #填写 - CREATE TEMPORARY TABLE IF NOT EXISTS tmpBinStatDevTbl( - PARA_TAG varchar(64) NOT NULL, - POINT_TAG varchar(64) NOT NULL - ); - DELETE FROM tmpBinStatDevTbl; - - #查找对应的测点 - INSERT INTO tmpBinStatDevTbl(PARA_TAG,POINT_TAG) - SELECT PARA_TAG,concat('analog.',analog.TAG_NAME) AS A - FROM stat_inst_para_point,analog - WHERE INST_TAG = statTag AND analog.DEVICE = devTag - AND getAfterLastDot(PARA_TAG) = getAfterLastDot(analog.TAG_NAME); - - INSERT INTO tmpBinStatDevTbl(PARA_TAG,POINT_TAG) - SELECT PARA_TAG,concat('accuml.',accuml.TAG_NAME) AS A - FROM stat_inst_para_point,accuml - WHERE INST_TAG = statTag AND accuml.DEVICE = devTag - AND getAfterLastDot(PARA_TAG) = getAfterLastDot(accuml.TAG_NAME); - - INSERT INTO tmpBinStatDevTbl(PARA_TAG,POINT_TAG) - SELECT PARA_TAG,concat('digital.',digital.TAG_NAME) AS A - FROM stat_inst_para_point,digital - WHERE INST_TAG = statTag AND digital.DEVICE = devTag - AND getAfterLastDot(PARA_TAG) = getAfterLastDot(digital.TAG_NAME); - - INSERT INTO tmpBinStatDevTbl(PARA_TAG,POINT_TAG) - SELECT PARA_TAG,concat('mix.',mix.TAG_NAME) AS A - FROM stat_inst_para_point,mix - WHERE INST_TAG = statTag AND mix.DEVICE = devTag - AND getAfterLastDot(PARA_TAG) = getAfterLastDot(mix.TAG_NAME); - - UPDATE stat_inst_para_point INNER JOIN tmpBinStatDevTbl ON stat_inst_para_point.PARA_TAG = tmpBinStatDevTbl.PARA_TAG - SET stat_inst_para_point.POINT_TAG = tmpBinStatDevTbl.POINT_TAG; - - DELETE FROM tmpBinStatDevTbl; - - INSERT INTO tmpBinStatDevTbl(PARA_TAG,POINT_TAG) - SELECT RET_TAG,concat('analog.',analog.TAG_NAME,'.value') AS A - FROM stat_inst_ret_para,analog - WHERE INST_TAG = statTag AND analog.DEVICE = devTag - AND getAfterLastDot(RET_TAG) = getAfterLastDot(analog.TAG_NAME); - - INSERT INTO tmpBinStatDevTbl(PARA_TAG,POINT_TAG) - SELECT RET_TAG,concat('digital.',digital.TAG_NAME,'.value') AS A - FROM stat_inst_ret_para,digital - WHERE INST_TAG = statTag AND digital.DEVICE = devTag - AND getAfterLastDot(RET_TAG) = getAfterLastDot(digital.TAG_NAME); - - INSERT INTO tmpBinStatDevTbl(PARA_TAG,POINT_TAG) - SELECT RET_TAG,concat('accuml.',accuml.TAG_NAME,'.value') AS A - FROM stat_inst_ret_para,accuml - WHERE INST_TAG = statTag AND accuml.DEVICE = devTag - AND getAfterLastDot(RET_TAG) = getAfterLastDot(accuml.TAG_NAME); - - INSERT INTO tmpBinStatDevTbl(PARA_TAG,POINT_TAG) - SELECT RET_TAG,concat('mix.',mix.TAG_NAME,'.value') AS A - FROM stat_inst_ret_para,mix - WHERE INST_TAG = statTag AND mix.DEVICE = devTag - AND getAfterLastDot(RET_TAG) = getAfterLastDot(mix.TAG_NAME); - - UPDATE stat_inst_ret_para INNER JOIN tmpBinStatDevTbl ON stat_inst_ret_para.RET_TAG = tmpBinStatDevTbl.PARA_TAG - SET stat_inst_ret_para.POINT_TAG = tmpBinStatDevTbl.POINT_TAG, - stat_inst_ret_para.IS_BIND = '1' - ; - -END;; -DELIMITER ; - -drop procedure if exists bingRtu; -DELIMITER ;; -CREATE DEFINER=`root`@`%` PROCEDURE `bingRtu`(devTagName varchar(64), rtuTagName varchar(64)) -BEGIN - #先把RTU置空,促使触发器对对应点置空 - UPDATE accuml SET RTU_TAG = '' WHERE DEVICE = devTagName; - UPDATE analog SET RTU_TAG = '' WHERE DEVICE = devTagName; - - UPDATE digital SET RTU_TAG = '' WHERE DEVICE = devTagName; - UPDATE mix SET RTU_TAG = '' WHERE DEVICE = devTagName; - #再关联 - UPDATE accuml SET RTU_TAG = rtuTagName WHERE DEVICE = devTagName; - UPDATE analog SET RTU_TAG = rtuTagName WHERE DEVICE = devTagName; - - UPDATE digital SET RTU_TAG = rtuTagName WHERE DEVICE = devTagName; - UPDATE mix SET RTU_TAG = rtuTagName WHERE DEVICE = devTagName; - -END;; -DELIMITER ; - -drop procedure if exists clearTempRelation; -DELIMITER ;; -CREATE DEFINER=`root`@`%` PROCEDURE `clearTempRelation`(devTempName varchar(64)) -body:BEGIN - /* - * 清除指定模板的所有测点与前置模板的关系 - */ - - UPDATE accuml_temp_define - SET SEC_DEVTP_NAME = '', - SEC_SEQ_NO = -1 - WHERE DEV_TP_NAME = devTempName; - - UPDATE analog_temp_define - SET SEC_DEVTP_NAME = '', - SEC_SEQ_NO = -1, - OUT_SEC_SEQ_NO = -1 - WHERE DEV_TP_NAME = devTempName; - - UPDATE digital_temp_define - SET SEC_DEVTP_NAME = '', - SEC_SEQ_NO1 = -1, - SEC_SEQ_NO2 = -1, - SEC_SEQ_NO3 = -1, - SEC_SEQ_NO4 = -1, - SEC_SEQ_NO5 = -1, - OUT_SEC_SEQ_NO1 = -1, - OUT_SEC_SEQ_NO2 = -1, - OUT_SEC_SEQ_NO3 = -1, - OUT_SEC_SEQ_NO4 = -1, - OUT_SEC_SEQ_NO5 = -1 - WHERE DEV_TP_NAME = devTempName; - - UPDATE mix_temp_define - SET SEC_DEVTP_NAME = '', - SEC_SEQ_NO = -1, - OUT_SEC_SEQ_NO = -1 - WHERE DEV_TP_NAME = devTempName; - -END;; -DELIMITER ; - -drop procedure if exists closeMyTrigger; -DELIMITER ;; -CREATE DEFINER=`root`@`%` PROCEDURE `closeMyTrigger`(closeFlag int) -body:BEGIN - /* - * 设置某些触发器的开关,获取开关状态使用myTriggerIsDisable - * 目前支持本触发器开关的触发器有TI_TEMP_PLUGIN_DEV_MAP - * 一般本存储过程需要成对使用时 - */ - - IF closeFlag = 1 THEN - SET @disableMyTrrigger = 1; - ELSE - SET @disableMyTrrigger = 0; - END IF; -END;; -DELIMITER ; - -drop procedure if exists copyDevGroup; -DELIMITER ;; -CREATE DEFINER=`root`@`%` PROCEDURE `copyDevGroup`(srcGroupName varchar(64),dstGroupName varchar(64),dstGroupDesc varchar(64)) -body:BEGIN - /* - * 复制整个设备组 - */ - DECLARE totalInst int DEFAULT 1; - - IF COALESCE(srcGroupName,'') = '' OR COALESCE(dstGroupName,'')='' OR COALESCE(dstGroupDesc,'') = '' - THEN LEAVE body; - END IF; - - IF EXISTS (SELECT * FROM dev_group WHERE TAG_NAME = dstGroupName) - THEN LEAVE body; - END IF; - - #先插入目标设备组 - INSERT INTO dev_group ( - TAG_NAME, DESCRIPTION, LOCATION_ID, SUB_SYSTEM, REGION_ID, PGROUP_TAG_NAME, IS_SUMMARY, SUMMARY_VALUE, SUMMARY_STATUS, GROUP_TAG) - SELECT - dstGroupName, dstGroupDesc, LOCATION_ID, SUB_SYSTEM, REGION_ID, PGROUP_TAG_NAME, IS_SUMMARY, SUMMARY_VALUE, SUMMARY_STATUS, GROUP_TAG - FROM dev_group WHERE TAG_NAME = srcGroupName; - - SELECT count(*) INTO totalInst FROM dev_info WHERE TAG_NAME LIKE '%Gcp%'; - SET totalInst = totalInst + 1; - #复制设备 - INSERT INTO dev_info( - TAG_NAME, DESCRIPTION, LOCATION_ID, SUB_SYSTEM, GROUP_TAG_NAME, VOL_LEVEL_ID, DEV_TYPE, GRAY, CONTRAST, QCOLOR, VALUE, STATUS, NODE_NO1, NODE_NO2, NODE_NO3, NODE_NO4, NODE_NO5, NODE_NO6, NODE_NO7, NODE_NO8, NODE_NO9, NODE_NO10, REGION_ID, OPT_HANDOVER_GROUP, IS_SUMMARY, SUMMARY_VALUE, SUMMARY_STATUS, DEV_TP_NAME) SELECT - concat(TAG_NAME,'Gcp',totalInst), concat(DESCRIPTION,'Gcp'), LOCATION_ID, SUB_SYSTEM, dstGroupName, VOL_LEVEL_ID, DEV_TYPE, GRAY, CONTRAST, QCOLOR, VALUE, STATUS, NODE_NO1, NODE_NO2, NODE_NO3, NODE_NO4, NODE_NO5, NODE_NO6, NODE_NO7, NODE_NO8, NODE_NO9, NODE_NO10, REGION_ID, OPT_HANDOVER_GROUP, IS_SUMMARY, SUMMARY_VALUE, SUMMARY_STATUS, DEV_TP_NAME - FROM dev_info - WHERE - dev_info.GROUP_TAG_NAME = srcGroupName ; - -END;; -DELIMITER ; - -drop procedure if exists copyDevInst; -DELIMITER ;; -CREATE DEFINER=`root`@`%` PROCEDURE `copyDevInst`( srcDevTagName varchar(64), dstDevTagName varchar(64), -dstDesc varchar(64),dstLocation decimal(10,0), dstGroupTagName varchar(64), dstLevelId decimal(10,0),dstRegionId decimal(10,0), dstOptHandoverGroup varchar(64), dstIfSummary decimal(10,0) -) -pro_body:BEGIN - IF EXISTS (SELECT * FROM dev_info WHERE TAG_NAME=dstDevTagName) THEN LEAVE pro_body; - END IF; -#往设备中插入一条记录,同时触发DEV表的触发器去插入点 - -INSERT INTO dev_info( -TAG_NAME, DESCRIPTION, LOCATION_ID, SUB_SYSTEM, GROUP_TAG_NAME, VOL_LEVEL_ID, DEV_TYPE, GRAY, CONTRAST, QCOLOR, VALUE, STATUS, NODE_NO1, NODE_NO2, NODE_NO3, NODE_NO4, NODE_NO5, NODE_NO6, NODE_NO7, NODE_NO8, NODE_NO9, NODE_NO10, REGION_ID, OPT_HANDOVER_GROUP, IS_SUMMARY, SUMMARY_VALUE, SUMMARY_STATUS, DEV_TP_NAME) SELECT -dstDevTagName, dstDesc, dstLocation, SUB_SYSTEM, dstGroupTagName, dstLevelId, DEV_TYPE, GRAY, CONTRAST, QCOLOR, VALUE, STATUS, NODE_NO1, NODE_NO2, NODE_NO3, NODE_NO4, NODE_NO5, NODE_NO6, NODE_NO7, NODE_NO8, NODE_NO9, NODE_NO10, dstRegionId, dstOptHandoverGroup, dstIfSummary, SUMMARY_VALUE, SUMMARY_STATUS, DEV_TP_NAME -FROM dev_info WHERE TAG_NAME= srcDevTagName; -END;; -DELIMITER ; - -drop procedure if exists copyDevTemp; -DELIMITER ;; -CREATE DEFINER=`root`@`%` PROCEDURE `copyDevTemp`( srcTagName varchar(64), dstTagName varchar(64), dstDesc varchar(64)) -pro_body:BEGIN - - - IF EXISTS (SELECT * FROM dev_temp_def WHERE TAG_NAME=dstTagName) THEN LEAVE pro_body; - END IF; - /* - * 复制设备模板 - * - */ - #往设备模板中插入一条记录 - INSERT INTO dev_temp_def( - TAG_NAME, DEV_TYPE_ID, DEV_MODEL, DESCRIPTION, SUB_SYSTEM, PARA_STR1, PARA_STR2,DEV_TEMP_GRP ) SELECT - dstTagName, DEV_TYPE_ID,DEV_MODEL,dstDesc ,SUB_SYSTEM, PARA_STR1,PARA_STR2,DEV_TEMP_GRP - FROM dev_temp_def WHERE TAG_NAME= srcTagName; - - #复制该模板的点,该点的TagName,DEV_TP_NAME需改变 - INSERT INTO accuml_temp_define( - TAG_NAME, DESCRIPTION, DEV_TP_NAME, SEQ_NO, POINT_TYPE, POINT_CLASS, POINT_PROPERTY, POINT_SORT, UNIT_ID, IS_SAMPLE, SAMPLE_DEADBAND, SAMPLE_PERIOD, IS_STATISTICS, IS_LIMIT, LIMIT_TYPE, LIMIT_NUM, LIMIT_UP1, LIMIT_LOW1, LIMIT_UP2, LIMIT_LOW2, LIMIT_UP3, LIMIT_LOW3, CROSS_PERCENT, RETURN_PERCENT, ALARM_PRIORITY, ALARM_DELAY_TIME, IS_WATER_ALM, IS_ACK_ON_RTN, DEL_ACT_ON_ACK, IS_NEVER_ALM_ON_RTN, IS_FILTER, PERCENT, BASE, COEFF, RANGE_UP, RANGE_LOW, SEC_DEV_IN_GRP, SEC_DEVTP_NAME, SEC_SEQ_NO) SELECT - concat(dstTagName, '.', getAfterLastDot(TAG_NAME)), DESCRIPTION, dstTagName, SEQ_NO, POINT_TYPE, POINT_CLASS, POINT_PROPERTY, POINT_SORT, UNIT_ID, IS_SAMPLE, SAMPLE_DEADBAND, SAMPLE_PERIOD, IS_STATISTICS, IS_LIMIT, LIMIT_TYPE, LIMIT_NUM, LIMIT_UP1, LIMIT_LOW1, LIMIT_UP2, LIMIT_LOW2, LIMIT_UP3, LIMIT_LOW3, CROSS_PERCENT, RETURN_PERCENT, ALARM_PRIORITY, ALARM_DELAY_TIME, IS_WATER_ALM, IS_ACK_ON_RTN, DEL_ACT_ON_ACK, IS_NEVER_ALM_ON_RTN, IS_FILTER, PERCENT, BASE, COEFF, RANGE_UP, RANGE_LOW, SEC_DEV_IN_GRP, SEC_DEVTP_NAME, SEC_SEQ_NO - FROM accuml_temp_define WHERE DEV_TP_NAME= srcTagName; - - INSERT INTO analog_temp_define( - TAG_NAME, DESCRIPTION, SEQ_NO, DEV_TP_NAME, POINT_TYPE, POINT_CLASS, POINT_PROPERTY, POINT_SORT, UNIT_ID, IS_SAMPLE, IS_STATISTICS, SAMPLE_PERIOD, SAMPLE_DEADBAND, IS_LIMIT, LIMIT_TYPE, LIMIT_NUM, LIMIT_UP1, LIMIT_LOW1, LIMIT_UP2, LIMIT_LOW2, LIMIT_UP3, LIMIT_LOW3, CROSS_PERCENT, RETURN_PERCENT, ALARM_PRIORITY, ALARM_DELAY_TIME, IS_WATER_ALM, IS_ACK_ON_RTN, DEL_ACT_ON_ACK, IS_NEVER_ALM_ON_RTN, IS_FILTER, PERCENT, IS_VALID, DEADBAND, ZEROBAND, IS_CONTROL, CTRL_TYPE, IS_TAGT_STATE, CTRL_TIMEOUT, RESV_TIMEOUT, BASE, COEFF, RANGE_UP, RANGE_LOW, CTRL_TOLERANCE, SEC_DEV_IN_GRP, SEC_DEVTP_NAME, SEC_SEQ_NO, OUT_SEC_SEQ_NO) SELECT - concat(dstTagName, '.', getAfterLastDot(TAG_NAME)), DESCRIPTION, SEQ_NO, dstTagName, POINT_TYPE, POINT_CLASS, POINT_PROPERTY, POINT_SORT, UNIT_ID, IS_SAMPLE, IS_STATISTICS, SAMPLE_PERIOD, SAMPLE_DEADBAND, IS_LIMIT, LIMIT_TYPE, LIMIT_NUM, LIMIT_UP1, LIMIT_LOW1, LIMIT_UP2, LIMIT_LOW2, LIMIT_UP3, LIMIT_LOW3, CROSS_PERCENT, RETURN_PERCENT, ALARM_PRIORITY, ALARM_DELAY_TIME, IS_WATER_ALM, IS_ACK_ON_RTN, DEL_ACT_ON_ACK, IS_NEVER_ALM_ON_RTN, IS_FILTER, PERCENT, IS_VALID, DEADBAND, ZEROBAND, IS_CONTROL, CTRL_TYPE, IS_TAGT_STATE, CTRL_TIMEOUT, RESV_TIMEOUT, BASE, COEFF, RANGE_UP, RANGE_LOW, CTRL_TOLERANCE, SEC_DEV_IN_GRP, SEC_DEVTP_NAME, SEC_SEQ_NO, OUT_SEC_SEQ_NO - FROM analog_temp_define WHERE DEV_TP_NAME= srcTagName; - - - - INSERT INTO digital_temp_define( - TAG_NAME, DESCRIPTION, DEV_TP_NAME, SEQ_NO, POINT_TYPE, POINT_CLASS, POINT_PROPERTY, POINT_SORT, STATE_TEXT_NAME, VALUE_NUM, ALARM_PRIORITY, ALARM_DELAY_TIME, INPUT_DELAY_TIME, IS_WATER_ALM, IS_ACK_ON_RTN, DEL_ACT_ON_ACK, IS_NEVER_ALM_ON_RTN, IS_SUMMARY, IS_SAMPLE, IS_STATISTICS, SAMPLE_PERIOD, FILTER_ERR, FILTER_DISTURB, DISTURB_TIME, POLARITY, IS_CONTROL, CTRL_ACT_NAME, CTRL_TYPE, IS_TAGT_STATE, CTRL_TIMEOUT, RESV_TIMEOUT, PULSE_DURATION, OFFSET_NUM, IS_ALARM_FREQ, ALARM_FREQ, ALARM_FREQ_DESC, IS_ALARM_TIME, ALARM_TIME, ALARM_TIME_DESC, IS_CHECK_PREVENTION, ALARM_FREQ_RANGE, SEC_DEV_IN_GRP, SEC_DEVTP_NAME, SEC_SEQ_NO1, SEC_SEQ_NO2, SEC_SEQ_NO3, SEC_SEQ_NO4, SEC_SEQ_NO5, OUT_SEC_SEQ_NO1, OUT_SEC_SEQ_NO2, OUT_SEC_SEQ_NO3, OUT_SEC_SEQ_NO4, OUT_SEC_SEQ_NO5) SELECT - concat(dstTagName, '.', getAfterLastDot(TAG_NAME)), DESCRIPTION, dstTagName, SEQ_NO, POINT_TYPE, POINT_CLASS, POINT_PROPERTY, POINT_SORT, STATE_TEXT_NAME, VALUE_NUM, ALARM_PRIORITY, ALARM_DELAY_TIME, INPUT_DELAY_TIME, IS_WATER_ALM, IS_ACK_ON_RTN, DEL_ACT_ON_ACK, IS_NEVER_ALM_ON_RTN, IS_SUMMARY, IS_SAMPLE, IS_STATISTICS, SAMPLE_PERIOD, FILTER_ERR, FILTER_DISTURB, DISTURB_TIME, POLARITY, IS_CONTROL, CTRL_ACT_NAME, CTRL_TYPE, IS_TAGT_STATE, CTRL_TIMEOUT, RESV_TIMEOUT, PULSE_DURATION, OFFSET_NUM, IS_ALARM_FREQ, ALARM_FREQ, ALARM_FREQ_DESC, IS_ALARM_TIME, ALARM_TIME, ALARM_TIME_DESC, IS_CHECK_PREVENTION, ALARM_FREQ_RANGE, SEC_DEV_IN_GRP, SEC_DEVTP_NAME, SEC_SEQ_NO1, SEC_SEQ_NO2, SEC_SEQ_NO3, SEC_SEQ_NO4, SEC_SEQ_NO5, OUT_SEC_SEQ_NO1, OUT_SEC_SEQ_NO2, OUT_SEC_SEQ_NO3, OUT_SEC_SEQ_NO4, OUT_SEC_SEQ_NO5 - FROM digital_temp_define WHERE DEV_TP_NAME= srcTagName; - - INSERT INTO mix_temp_define( - TAG_NAME, DESCRIPTION, DEV_TP_NAME, SEQ_NO, POINT_TYPE, POINT_CLASS, POINT_PROPERTY, POINT_SORT, IS_SAMPLE, IS_STATISTICS, SAMPLE_PERIOD, STATE_TEXT_NAME, ALARM_PRIORITY, ALARM_DELAY_TIME, IS_WATER_ALM, IS_ACK_ON_RTN, DEL_ACT_ON_ACK, IS_NEVER_ALM_ON_RTN, IS_FILTER_ERROR, IS_FILTER_DISTURB, DISTURB_TIME, IS_CONTROL, CTRL_TYPE, IS_TAGT_STATE, CTRL_TIMEOUT, RESV_TIMEOUT, BASE, COEFF, RANGE_UP, RANGE_LOW, CTRL_TOLERANCE, CTRL_ACT_NAME, SEC_DEV_IN_GRP, SEC_DEVTP_NAME, SEC_SEQ_NO, OUT_SEC_SEQ_NO) SELECT - concat(dstTagName, '.', getAfterLastDot(TAG_NAME)), DESCRIPTION, dstTagName, SEQ_NO, POINT_TYPE, POINT_CLASS, POINT_PROPERTY, POINT_SORT, IS_SAMPLE, IS_STATISTICS, SAMPLE_PERIOD, STATE_TEXT_NAME, ALARM_PRIORITY, ALARM_DELAY_TIME, IS_WATER_ALM, IS_ACK_ON_RTN, DEL_ACT_ON_ACK, IS_NEVER_ALM_ON_RTN, IS_FILTER_ERROR, IS_FILTER_DISTURB, DISTURB_TIME, IS_CONTROL, CTRL_TYPE, IS_TAGT_STATE, CTRL_TIMEOUT, RESV_TIMEOUT, BASE, COEFF, RANGE_UP, RANGE_LOW, CTRL_TOLERANCE, CTRL_ACT_NAME, SEC_DEV_IN_GRP, SEC_DEVTP_NAME, SEC_SEQ_NO, OUT_SEC_SEQ_NO - FROM mix_temp_define WHERE DEV_TP_NAME= srcTagName; -END;; -DELIMITER ; - -drop procedure if exists copyFesTemp; -DELIMITER ;; -CREATE DEFINER=`root`@`%` PROCEDURE `copyFesTemp`(srcFesTempTag varchar(64),dstFesTempTag varchar(64),dstDesc varchar(128)) -body:BEGIN - /* - * 复制前置模板 - */ - IF EXISTS (SELECT * FROM fes_dev_temp_def WHERE TAG_NAME=dstFesTempTag) THEN LEAVE body; - END IF; - - #往设备模板中插入一条记录 - INSERT INTO fes_dev_temp_def( - TAG_NAME, DEV_TYPE_ID, DEV_MODEL, DESCRIPTION, SUB_SYSTEM, PARA_STR1, PARA_STR2 ) SELECT - dstFesTempTag, DEV_TYPE_ID, DEV_MODEL, dstDesc ,SUB_SYSTEM, PARA_STR1, PARA_STR2 - FROM fes_dev_temp_def WHERE TAG_NAME= srcFesTempTag; - - #复制该模板的点,该点的TagName,DEV_TP_NAME需改变 - INSERT INTO fes_dev_pt_temp_def( - TAG_NAME, POINT_TYPE, DEV_TP_NAME, SEQ_NO, FUN_CODE, INFO_NO, RATIO, REVISE, APPEND, ASS_DIG, CTRL_TYPE, ATTR, CONST_CFG_FILE, COEFFICIENT, SHORT_NAME, DESCRIPTION, RES_PARA_INT1, RES_PARA_INT2, RES_PARA_INT3, RES_PARA_INT4, PATH61850, POSITION61850, YK_SELECT61850, YK_EXE61850, YK_CANCLE61850, YK_DOUBLE_SELECT61850, YK_DOUBLE_EXE61850, YK_DOUBLE_CANCLE61850, PULSE_TIME - ) SELECT - concat(dstFesTempTag, '.', getAfterLastDot(TAG_NAME)), POINT_TYPE, dstFesTempTag,SEQ_NO, FUN_CODE, INFO_NO, RATIO, REVISE, APPEND, ASS_DIG, CTRL_TYPE, ATTR, CONST_CFG_FILE, COEFFICIENT, SHORT_NAME, DESCRIPTION, RES_PARA_INT1, RES_PARA_INT2, RES_PARA_INT3, RES_PARA_INT4, PATH61850, POSITION61850, YK_SELECT61850, YK_EXE61850, YK_CANCLE61850, YK_DOUBLE_SELECT61850, YK_DOUBLE_EXE61850, YK_DOUBLE_CANCLE61850, PULSE_TIME - FROM fes_dev_pt_temp_def WHERE DEV_TP_NAME = srcFesTempTag; - - INSERT INTO fes_data_block_temp( - TAG_NAME, BLOCK_ID, FUNC_CODE, STAR_ADDR, DATA_LEN, DATA_FARME_TYPE, REF_CYCLE, IS_CREATE_SOE, PARA_INT1, PARA_INT2, DESCRIPTION, LD, CALL_MODE, DATA_SET, DATA_SET_TYPE, DATA_SET_CALL_TIME, REPORT_CTRL, DEV_TP_NAME - ) SELECT - concat(dstFesTempTag, '.', getAfterLastDot(TAG_NAME)), BLOCK_ID, FUNC_CODE, STAR_ADDR, DATA_LEN, DATA_FARME_TYPE, REF_CYCLE, IS_CREATE_SOE, PARA_INT1, PARA_INT2, DESCRIPTION, LD, CALL_MODE, DATA_SET, DATA_SET_TYPE, DATA_SET_CALL_TIME, REPORT_CTRL, dstFesTempTag - FROM fes_data_block_temp WHERE DEV_TP_NAME = srcFesTempTag; - - INSERT INTO fes_const_temp( - TAG_NAME, DESCRIPTION, GROUP_NO, SEQ_NO, DEV_TP_NAME, VALUE, VALUE_TYPE, UNIT_ID, VALUE_TEXT, VALUE_RATIO, VALUE_ADDED, VALUE_MAX, VALUE_MIN, VALUE_DEFAULT, VALUE_VERIFY, EX_INFO, PATH61850, POSITION61850 - ) SELECT - concat(dstFesTempTag, '.', getAfterLastDot(TAG_NAME)), DESCRIPTION, GROUP_NO, SEQ_NO, dstFesTempTag, VALUE, VALUE_TYPE, UNIT_ID, VALUE_TEXT, VALUE_RATIO, VALUE_ADDED, VALUE_MAX, VALUE_MIN, VALUE_DEFAULT, VALUE_VERIFY, EX_INFO, PATH61850, POSITION61850 - FROM fes_const_temp WHERE DEV_TP_NAME = srcFesTempTag; - - - -END;; -DELIMITER ; - -drop procedure if exists copyPlugin; -DELIMITER ;; -CREATE DEFINER=`root`@`%` PROCEDURE `copyPlugin`( srcPluginName varchar(64),dstPluginName varchar(64),dstPluginDesc varchar(128)) -body:BEGIN - /* - * 复制套件 - */ - INSERT INTO temp_plugin (TAG_NAME,DESCRIPTION) - VALUES (dstPluginName,dstPluginDesc); - - #关闭对应的触发器 - CALL closeMyTrigger(1); - - INSERT INTO temp_plugin_dev_map (PLUGIN_NAME,TEMP_NAME) - SELECT dstPluginName, TEMP_NAME - FROM temp_plugin_dev_map WHERE PLUGIN_NAME = srcPluginName; - - INSERT INTO temp_plugin_fes_dev_map(PLUGIN_NAME,TEMP_NAME,FES_TEMP_NAME) - SELECT dstPluginName,TEMP_NAME,FES_TEMP_NAME - FROM temp_plugin_fes_dev_map WHERE PLUGIN_NAME = srcPluginName; - - INSERT INTO temp_plugin_point_map_acc (PLUGIN_NAME,TEMP_NAME,TEMP_POINT_NAME,FES_TEMP_NAME,FES_TEMP_POINT_NAME) - SELECT dstPluginName,TEMP_NAME,TEMP_POINT_NAME,FES_TEMP_NAME,FES_TEMP_POINT_NAME - FROM temp_plugin_point_map_acc WHERE PLUGIN_NAME = srcPluginName; - - INSERT INTO temp_plugin_point_map_ana(PLUGIN_NAME,TEMP_NAME,TEMP_POINT_NAME,FES_TEMP_NAME,FES_TEMP_POINT_NAME,FES_TEMP_OUT_NAME) - SELECT dstPluginName,TEMP_NAME,TEMP_POINT_NAME,FES_TEMP_NAME,FES_TEMP_POINT_NAME,FES_TEMP_OUT_NAME - FROM temp_plugin_point_map_ana WHERE PLUGIN_NAME = srcPluginName; - - INSERT INTO temp_plugin_point_map_dig(PLUGIN_NAME,TEMP_NAME,TEMP_POINT_NAME,FES_TEMP_NAME,FES_TEMP_POINT_NAME1,FES_TEMP_POINT_NAME2 - ,FES_TEMP_POINT_NAME3,FES_TEMP_POINT_NAME4,FES_TEMP_POINT_NAME5,FES_TEMP_OUT_NAME1,FES_TEMP_OUT_NAME2,FES_TEMP_OUT_NAME3,FES_TEMP_OUT_NAME4 - ,FES_TEMP_OUT_NAME5) - SELECT dstPluginName,TEMP_NAME,TEMP_POINT_NAME,FES_TEMP_NAME,FES_TEMP_POINT_NAME1,FES_TEMP_POINT_NAME2 - ,FES_TEMP_POINT_NAME3,FES_TEMP_POINT_NAME4,FES_TEMP_POINT_NAME5,FES_TEMP_OUT_NAME1,FES_TEMP_OUT_NAME2,FES_TEMP_OUT_NAME3,FES_TEMP_OUT_NAME4 - ,FES_TEMP_OUT_NAME5 - FROM temp_plugin_point_map_dig WHERE PLUGIN_NAME = srcPluginName; - - INSERT INTO temp_plugin_point_map_mix(PLUGIN_NAME,TEMP_NAME,TEMP_POINT_NAME,FES_TEMP_NAME,FES_TEMP_POINT_NAME,FES_TEMP_OUT_NAME) - SELECT dstPluginName,TEMP_NAME,TEMP_POINT_NAME,FES_TEMP_NAME,FES_TEMP_POINT_NAME,FES_TEMP_OUT_NAME - FROM temp_plugin_point_map_mix WHERE PLUGIN_NAME = srcPluginName; - - CALL closeMyTrigger(0); - - -END;; -DELIMITER ; - -drop procedure if exists createOptLock; -DELIMITER ;; -CREATE DEFINER=`root`@`%` PROCEDURE `createOptLock`(tableName varchar(64),pointTempTag varchar(64),funcTag varchar(64),argNum int) -body:BEGIN - /* - * 依据指定的模板点,用于创建闭锁出口,除了参数列表中的参数,还有部分参数在export_seq表中 - * tableName:表名,指出pointTempTag是属于那张表的,目前取值范围有analog,digital,mix - * pointTempTag:测点模板的标签名 - * funcTag:闭锁出口选用的函数 - * argNum:闭锁函数的参数个数 - * export_seq表中保存了参数1-20 - */ - DECLARE hasDone int DEFAULT 0; - DECLARE argTag varchar(64); - DECLARE argNo int; - DECLARE pointTempTagName varchar(64); - DECLARE cur_args CURSOR - FOR - SELECT DEV_TAG,`NO` FROM export_seq; - DECLARE CONTINUE HANDLER FOR NOT FOUND SET hasDone = 1; - - IF COALESCE(tableName,'') = '' OR COALESCE(pointTempTag,'')='' - THEN LEAVE body; - END IF; - - CREATE TEMPORARY TABLE IF NOT EXISTS tmpCreateOptLockTbl( - POINT_TAG_NAME varchar(64) NOT NULL, - POINT_DESC varchar(128), - GROUP_TAG_NAME varchar(64) NOT NULL, - LOCATION_ID decimal(10,0), - SUBSYSTEM decimal(10,0), - ARGS_TAG_NAME varchar(64) DEFAULT '' - ); - DELETE FROM tmpCreateOptLockTbl; - - IF lower(tableName) = 'analog' - THEN - INSERT INTO tmpCreateOptLockTbl(POINT_TAG_NAME,POINT_DESC,GROUP_TAG_NAME,LOCATION_ID,SUBSYSTEM) - SELECT analog.TAG_NAME,analog.DESCRIPTION, dev_info.GROUP_TAG_NAME,analog.LOCATION_ID,analog.SUB_SYSTEM - FROM analog,dev_info - WHERE analog.POINT_TP_NAME = pointTempTag AND analog.DEVICE = dev_info.TAG_NAME; - ELSEIF lower(tableName) = 'digital' - THEN - INSERT INTO tmpCreateOptLockTbl(POINT_TAG_NAME,POINT_DESC,GROUP_TAG_NAME,LOCATION_ID,SUBSYSTEM) - SELECT digital.TAG_NAME,digital.DESCRIPTION, dev_info.GROUP_TAG_NAME,digital.LOCATION_ID,digital.SUB_SYSTEM - FROM digital,dev_info - WHERE digital.POINT_TP_NAME = pointTempTag AND digital.DEVICE = dev_info.TAG_NAME; - ELSEIF lower(tableName) = 'mix' - THEN - INSERT INTO tmpCreateOptLockTbl(POINT_TAG_NAME,POINT_DESC,GROUP_TAG_NAME,LOCATION_ID,SUBSYSTEM) - SELECT mix.TAG_NAME,mix.DESCRIPTION, dev_info.GROUP_TAG_NAME,mix.LOCATION_ID,mix.SUB_SYSTEM - FROM mix,dev_info - WHERE mix.POINT_TP_NAME = pointTempTag AND mix.DEVICE = dev_info.TAG_NAME; - END IF; - - INSERT INTO opt_interlock_para(TAG_NAME, DESCRIPTION, LOCATION_ID, SUB_SYSTEM, INTERLOCK_TAG, INTERLOCK_NUM, - INTERLOCK_IN_TAG1, INTERLOCK_IN_TAG2, INTERLOCK_IN_TAG3, INTERLOCK_IN_TAG4, INTERLOCK_IN_TAG5, INTERLOCK_IN_TAG6, INTERLOCK_IN_TAG7, - INTERLOCK_IN_TAG8, INTERLOCK_IN_TAG9, INTERLOCK_IN_TAG10, INTERLOCK_IN_TAG11, INTERLOCK_IN_TAG12, INTERLOCK_IN_TAG13, - INTERLOCK_IN_TAG14, INTERLOCK_IN_TAG15, INTERLOCK_IN_TAG16, INTERLOCK_IN_TAG17, INTERLOCK_IN_TAG18, INTERLOCK_IN_TAG19, - INTERLOCK_IN_TAG20) - SELECT POINT_TAG_NAME,POINT_DESC,LOCATION_ID,SUBSYSTEM,funcTag,argNum, - '','','','','','','','','','','','','','','','','','','','' - FROM tmpCreateOptLockTbl; - - #根据export_seq表中的数据更新输入参数 - #通过游标遍历export_Seq中的数据,把每个输入参数写入opt_interlock_para中 - OPEN cur_args; - - WHILE hasDone != 1 DO - FETCH cur_args INTO argTag,argNo; - #argTag中的格式是表名.测点模板名 - SET tableName = getBeforeFirstDot(argTag); - SET pointTempTagName = getAfterFirstDot(argTag); - - IF tableName = 'analog' THEN - UPDATE (analog INNER JOIN dev_info ON analog.POINT_TP_NAME = pointTempTagName AND analog.DEVICE = dev_info.TAG_NAME) - INNER JOIN tmpCreateOptLockTbl ON tmpCreateOptLockTbl.GROUP_TAG_NAME = dev_info.GROUP_TAG_NAME - SET tmpCreateOptLockTbl.ARGS_TAG_NAME = analog.TAG_NAME; - ELSEIF tableName = 'digital' THEN - UPDATE (digital INNER JOIN dev_info ON digital.POINT_TP_NAME = pointTempTagName AND digital.DEVICE = dev_info.TAG_NAME) - INNER JOIN tmpCreateOptLockTbl ON tmpCreateOptLockTbl.GROUP_TAG_NAME = dev_info.GROUP_TAG_NAME - SET tmpCreateOptLockTbl.ARGS_TAG_NAME = digital.TAG_NAME; - ELSEIF tableName = 'mix' THEN - UPDATE (mix INNER JOIN dev_info ON mix.POINT_TP_NAME = pointTempTagName AND mix.DEVICE = dev_info.TAG_NAME) - INNER JOIN tmpCreateOptLockTbl ON tmpCreateOptLockTbl.GROUP_TAG_NAME = dev_info.GROUP_TAG_NAME - SET tmpCreateOptLockTbl.ARGS_TAG_NAME = mix.TAG_NAME; - END IF; - - #更新闭锁输入参数 - UPDATE opt_interlock_para INNER JOIN tmpCreateOptLockTbl - ON opt_interlock_para.TAG_NAME = tmpCreateOptLockTbl.POINT_TAG_NAME - SET - INTERLOCK_IN_TAG1 = if(argNo = 1,ARGS_TAG_NAME,INTERLOCK_IN_TAG1), - INTERLOCK_IN_TAG2 = if(argNo = 2,ARGS_TAG_NAME,INTERLOCK_IN_TAG2), - INTERLOCK_IN_TAG3 = if(argNo = 3,ARGS_TAG_NAME,INTERLOCK_IN_TAG3), - INTERLOCK_IN_TAG4 = if(argNo = 4,ARGS_TAG_NAME,INTERLOCK_IN_TAG4), - INTERLOCK_IN_TAG5 = if(argNo = 5,ARGS_TAG_NAME,INTERLOCK_IN_TAG5), - INTERLOCK_IN_TAG6 = if(argNo = 6,ARGS_TAG_NAME,INTERLOCK_IN_TAG6), - INTERLOCK_IN_TAG7 = if(argNo = 7,ARGS_TAG_NAME,INTERLOCK_IN_TAG7), - INTERLOCK_IN_TAG8 = if(argNo = 8,ARGS_TAG_NAME,INTERLOCK_IN_TAG8), - INTERLOCK_IN_TAG9 = if(argNo = 9,ARGS_TAG_NAME,INTERLOCK_IN_TAG9), - INTERLOCK_IN_TAG10 = if(argNo = 10,ARGS_TAG_NAME,INTERLOCK_IN_TAG10), - INTERLOCK_IN_TAG11 = if(argNo = 11,ARGS_TAG_NAME,INTERLOCK_IN_TAG11), - INTERLOCK_IN_TAG12 = if(argNo = 12,ARGS_TAG_NAME,INTERLOCK_IN_TAG12), - INTERLOCK_IN_TAG13 = if(argNo = 13,ARGS_TAG_NAME,INTERLOCK_IN_TAG13), - INTERLOCK_IN_TAG14 = if(argNo = 14,ARGS_TAG_NAME,INTERLOCK_IN_TAG14), - INTERLOCK_IN_TAG15 = if(argNo = 15,ARGS_TAG_NAME,INTERLOCK_IN_TAG15), - INTERLOCK_IN_TAG16 = if(argNo = 16,ARGS_TAG_NAME,INTERLOCK_IN_TAG16), - INTERLOCK_IN_TAG17 = if(argNo = 17,ARGS_TAG_NAME,INTERLOCK_IN_TAG17), - INTERLOCK_IN_TAG18 = if(argNo = 18,ARGS_TAG_NAME,INTERLOCK_IN_TAG18), - INTERLOCK_IN_TAG19 = if(argNo = 19,ARGS_TAG_NAME,INTERLOCK_IN_TAG19), - INTERLOCK_IN_TAG20 = if(argNo = 20,ARGS_TAG_NAME,INTERLOCK_IN_TAG20) - ; - - - END WHILE; - - CLOSE cur_args; - -END;; -DELIMITER ; - -drop procedure if exists custom_log; -DELIMITER ;; -CREATE DEFINER=`root`@`%` PROCEDURE `custom_log`(info1 varchar(100), info2 varchar(100) ) -BEGIN -DECLARE enableDebug int DEFAULT 1; -SET enableDebug = (SELECT PRINT_DEBUG_INFO_FLAG FROM custom_debug_flag LIMIT 1); -IF enableDebug=1 THEN -INSERT INTO custom_debug_info(col1,col2,col3) VALUES (info1,info2,now()); -END IF; -END;; -DELIMITER ; - -drop procedure if exists db_sync; -DELIMITER ;; -CREATE DEFINER=`root`@`%` PROCEDURE `db_sync`(in src_hostname varchar(255), - in src_last_id bigint(20), - in src_last_statement mediumtext, - in new_id bigint(20), - in new_statement mediumtext, - out db_sync_return int) -lable: -begin - /* - * 数据库同步服务 db_sync_server 调用,代码中开启事务、锁表 - */ - declare local_last_id bigint(20) default 0; - declare local_last_statement mediumtext; - set db_sync_return = 1; - if lower(@@global.hostname) = lower(src_hostname) then - -- 如果源主机就是本主机,则无需同步 - set db_sync_return = 10; - leave lable; - end if; - select max(`id`) into local_last_id from dbop_list; - select `statement` into local_last_statement from dbop_list where ID = local_last_id; - if local_last_id is null or local_last_statement is null then - -- 表为空 - set db_sync_return = 20; - leave lable; - end if; - if src_last_id < local_last_id then - -- 数据不一致 - set db_sync_return = 21; - leave lable; - end if; - if src_last_id > local_last_id then - -- 数据不一致 - set db_sync_return = 22; - leave lable; - end if; - if src_last_statement <> local_last_statement then - -- 数据不一致 - set db_sync_return = 23; - leave lable; - end if; - begin - declare exit handler for sqlexception begin - set db_sync_return = 100; - end; - -- 执行需要同步的语句 - set @db_sync_sql4exec = new_statement; - prepare stmt from @db_sync_sql4exec; - execute stmt; - deallocate prepare stmt; - -- 插入同步语句到本地表 - set @db_sync_sql4exec = 'insert into dbop_list(ID, STATEMENT) values (?, ?)'; - prepare stmt from @db_sync_sql4exec; - set @db_sync_new_id = new_id; - set @db_sync_new_statement = new_statement; - execute stmt using @db_sync_new_id , @db_sync_new_statement; - deallocate prepare stmt; - -- 执行成功 - set db_sync_return = 0; - end; -END;; -DELIMITER ; - -drop procedure if exists exportBgXFes; -DELIMITER ;; -CREATE DEFINER=`root`@`%` PROCEDURE `exportBgXFes`( ) -BEGIN - #export_seq里保存了导出的设备的顺序 - #导出结果保存在background_x_fes_的表中 - #先清除 - DELETE FROM background_x_fes_accuml; - DELETE FROM background_x_fes_ana_ctrl; - DELETE FROM background_x_fes_analog; - DELETE FROM background_x_fes_dig_ctrl; - DELETE FROM background_x_fes_digtal; - DELETE FROM background_x_fes_mix; - DELETE FROM background_x_fes_mix_ctrl; - - #插入所有ACC后台点 - INSERT INTO background_x_fes_accuml ( - BG_DEV_TAG, BG_DEV_DESC, BG_POINT_TAG, BG_POINT_OFFSET,BG_POINT_DESC, RTU_TAG, RTU_DOT_NO, RTU_DOT_DESC, RTU_DEV_TAG, RTU_RES_PARA_INT1, RTU_RES_PARA_INT2, RTU_RES_PARA_INT3, RTU_RES_PARA_INT4)SELECT - export_seq.DEV_TAG, dev_info.DESCRIPTION, accuml_map_to_fes.KEY_ID_TAG, '1', accuml_map_to_fes.DESCRIPTION, accuml_map_to_fes.RTU_TAG,accuml_map_to_fes.DOT_NO,'', '', 0, 0, 0, 0 - FROM export_seq , dev_info ,accuml, accuml_map_to_fes - WHERE export_seq.DEV_TAG = dev_info.TAG_NAME AND export_seq.DEV_TAG = accuml.DEVICE AND accuml_map_to_fes.KEY_ID_TAG = concat('accuml','.', accuml.TAG_NAME) - ORDER BY export_seq.NO ,accuml.SEQ_NO; - - #检索后台点,已有关联的,需要把关联导出 - UPDATE background_x_fes_accuml INNER JOIN fes_accuml ON - fes_accuml.TAG_NAME = concat(background_x_fes_accuml.RTU_TAG,'.',background_x_fes_accuml.RTU_DOT_NO) - SET background_x_fes_accuml.RTU_DOT_DESC = fes_accuml.DESCRIPTION, - background_x_fes_accuml.RTU_DEV_TAG = fes_accuml.DEV_TAG, - background_x_fes_accuml.RTU_RES_PARA_INT1 = fes_accuml.RES_PARA_INT1, - background_x_fes_accuml.RTU_RES_PARA_INT2 = fes_accuml.RES_PARA_INT2, - background_x_fes_accuml.RTU_RES_PARA_INT3 = fes_accuml.RES_PARA_INT3, - background_x_fes_accuml.RTU_RES_PARA_INT4 = fes_accuml.RES_PARA_INT4; - - #插入所有ANA后台点 - INSERT INTO background_x_fes_analog ( - BG_DEV_TAG, BG_DEV_DESC, BG_POINT_TAG, BG_POINT_OFFSET,BG_POINT_DESC, RTU_TAG, RTU_DOT_NO, RTU_DOT_DESC, RTU_DEV_TAG, RTU_RES_PARA_INT1, RTU_RES_PARA_INT2, RTU_RES_PARA_INT3,RTU_RES_PARA_INT4)SELECT - export_seq.DEV_TAG, dev_info.DESCRIPTION, analog_map_to_fes.KEY_ID_TAG, '1', analog_map_to_fes.DESCRIPTION, analog_map_to_fes.RTU_TAG,analog_map_to_fes.DOT_NO,'', '', 0, 0, 0, 0 - FROM export_seq , dev_info ,analog, analog_map_to_fes - WHERE export_seq.DEV_TAG = dev_info.TAG_NAME AND export_seq.DEV_TAG = analog.DEVICE AND analog_map_to_fes.KEY_ID_TAG = concat('analog','.', analog.TAG_NAME) - ORDER BY export_seq.NO,analog.SEQ_NO; - - #检索后台点,已有关联的,需要把关联导出 - UPDATE background_x_fes_analog INNER JOIN fes_analog ON - fes_analog.TAG_NAME = concat(background_x_fes_analog.RTU_TAG,'.',background_x_fes_analog.RTU_DOT_NO) - SET background_x_fes_analog.RTU_DOT_DESC = fes_analog.DESCRIPTION, - background_x_fes_analog.RTU_DEV_TAG = fes_analog.DEV_TAG, - background_x_fes_analog.RTU_RES_PARA_INT1 = fes_analog.RES_PARA_INT1, - background_x_fes_analog.RTU_RES_PARA_INT2 = fes_analog.RES_PARA_INT2, - background_x_fes_analog.RTU_RES_PARA_INT3 = fes_analog.RES_PARA_INT3, - background_x_fes_analog.RTU_RES_PARA_INT4 = fes_analog.RES_PARA_INT4; - - #插入analog_Ctrl - INSERT INTO background_x_fes_ana_ctrl( - BG_DEV_TAG, BG_DEV_DESC, BG_POINT_TAG, BG_POINT_OFFSET,BG_POINT_DESC, RTU_TAG, RTU_DOT_NO, RTU_DOT_DESC, RTU_DEV_TAG, RTU_RES_PARA_INT1, RTU_RES_PARA_INT2, RTU_RES_PARA_INT3,RTU_RES_PARA_INT4)SELECT - export_seq.DEV_TAG, dev_info.DESCRIPTION, analog.TAG_NAME, '1', analog.DESCRIPTION, analog_control.RTU_TAG,analog_control.OFFSET_NO,'', '', 0, 0, 0, 0 - FROM export_seq , dev_info , analog ,analog_control - WHERE export_seq.DEV_TAG = dev_info.TAG_NAME AND export_seq.DEV_TAG = analog.DEVICE AND analog.TAG_NAME = analog_control.TAG_NAME - ORDER BY export_seq.NO,analog.SEQ_NO; - - #检索后台点,已有关联的,需要把关联导出 - UPDATE background_x_fes_ana_ctrl INNER JOIN fes_analog_ctrl ON - fes_analog_ctrl.TAG_NAME = concat(background_x_fes_ana_ctrl.RTU_TAG,'.',background_x_fes_ana_ctrl.RTU_DOT_NO) - SET background_x_fes_ana_ctrl.RTU_DOT_DESC = fes_analog_ctrl.DESCRIPTION, - background_x_fes_ana_ctrl.RTU_DEV_TAG = fes_analog_ctrl.DEV_TAG, - background_x_fes_ana_ctrl.RTU_RES_PARA_INT1 = fes_analog_ctrl.RES_PARA_INT1, - background_x_fes_ana_ctrl.RTU_RES_PARA_INT2 = fes_analog_ctrl.RES_PARA_INT2, - background_x_fes_ana_ctrl.RTU_RES_PARA_INT3 = fes_analog_ctrl.RES_PARA_INT3, - background_x_fes_ana_ctrl.RTU_RES_PARA_INT4 = fes_analog_ctrl.RES_PARA_INT4; - - #对于digital,注意其有5个分量 - INSERT INTO background_x_fes_digtal ( - BG_DEV_TAG, BG_DEV_DESC, BG_POINT_TAG, BG_POINT_OFFSET,BG_POINT_DESC, RTU_TAG, RTU_DOT_NO, RTU_DOT_DESC, RTU_DEV_TAG, RTU_RES_PARA_INT1, RTU_RES_PARA_INT2, RTU_RES_PARA_INT3, RTU_RES_PARA_INT4,DEV_NO, SEQ_NO) SELECT - export_seq.DEV_TAG,dev_info.DESCRIPTION, digital_map_to_fes.KEY_ID_TAG, 1, digital_map_to_fes.DESCRIPTION,digital_map_to_fes.RTU_TAG,digital_map_to_fes.DOT_NO1,'', '', 0, 0, 0, 0, export_seq.`NO`,digital.SEQ_NO - FROM export_seq,dev_info, digital,digital_map_to_fes - WHERE export_seq.DEV_TAG = dev_info.TAG_NAME AND export_seq.DEV_TAG = digital.DEVICE AND digital_map_to_fes.KEY_ID_TAG = concat('digital.',digital.TAG_NAME) - AND digital_map_to_fes.VALUE_NUM >= 1; - - INSERT INTO background_x_fes_digtal ( - BG_DEV_TAG, BG_DEV_DESC, BG_POINT_TAG, BG_POINT_OFFSET,BG_POINT_DESC, RTU_TAG, RTU_DOT_NO, RTU_DOT_DESC, RTU_DEV_TAG, RTU_RES_PARA_INT1, RTU_RES_PARA_INT2, RTU_RES_PARA_INT3, RTU_RES_PARA_INT4,DEV_NO, SEQ_NO) SELECT - export_seq.DEV_TAG,dev_info.DESCRIPTION, digital_map_to_fes.KEY_ID_TAG, 2, digital_map_to_fes.DESCRIPTION,digital_map_to_fes.RTU_TAG,digital_map_to_fes.DOT_NO2,'', '', 0, 0, 0, 0, export_seq.`NO`,digital.SEQ_NO - FROM export_seq,dev_info, digital,digital_map_to_fes - WHERE export_seq.DEV_TAG = dev_info.TAG_NAME AND export_seq.DEV_TAG = digital.DEVICE AND digital_map_to_fes.KEY_ID_TAG = concat('digital.',digital.TAG_NAME) - AND digital_map_to_fes.VALUE_NUM >= 2; - - INSERT INTO background_x_fes_digtal ( - BG_DEV_TAG, BG_DEV_DESC, BG_POINT_TAG, BG_POINT_OFFSET,BG_POINT_DESC, RTU_TAG, RTU_DOT_NO, RTU_DOT_DESC, RTU_DEV_TAG, RTU_RES_PARA_INT1, RTU_RES_PARA_INT2, RTU_RES_PARA_INT3, RTU_RES_PARA_INT4,DEV_NO, SEQ_NO) SELECT - export_seq.DEV_TAG,dev_info.DESCRIPTION, digital_map_to_fes.KEY_ID_TAG, 3, digital_map_to_fes.DESCRIPTION,digital_map_to_fes.RTU_TAG,digital_map_to_fes.DOT_NO3,'', '', 0, 0, 0, 0, export_seq.`NO`,digital.SEQ_NO - FROM export_seq,dev_info, digital,digital_map_to_fes - WHERE export_seq.DEV_TAG = dev_info.TAG_NAME AND export_seq.DEV_TAG = digital.DEVICE AND digital_map_to_fes.KEY_ID_TAG = concat('digital.',digital.TAG_NAME) - AND digital_map_to_fes.VALUE_NUM >= 3; - - INSERT INTO background_x_fes_digtal ( - BG_DEV_TAG, BG_DEV_DESC, BG_POINT_TAG, BG_POINT_OFFSET,BG_POINT_DESC, RTU_TAG, RTU_DOT_NO, RTU_DOT_DESC, RTU_DEV_TAG, RTU_RES_PARA_INT1, RTU_RES_PARA_INT2, RTU_RES_PARA_INT3, RTU_RES_PARA_INT4,DEV_NO, SEQ_NO) SELECT - export_seq.DEV_TAG,dev_info.DESCRIPTION, digital_map_to_fes.KEY_ID_TAG, 4, digital_map_to_fes.DESCRIPTION,digital_map_to_fes.RTU_TAG,digital_map_to_fes.DOT_NO4,'', '', 0, 0, 0, 0, export_seq.`NO`,digital.SEQ_NO - FROM export_seq,dev_info, digital,digital_map_to_fes - WHERE export_seq.DEV_TAG = dev_info.TAG_NAME AND export_seq.DEV_TAG = digital.DEVICE AND digital_map_to_fes.KEY_ID_TAG = concat('digital.',digital.TAG_NAME) - AND digital_map_to_fes.VALUE_NUM >= 4; - - INSERT INTO background_x_fes_digtal ( - BG_DEV_TAG, BG_DEV_DESC, BG_POINT_TAG, BG_POINT_OFFSET,BG_POINT_DESC, RTU_TAG, RTU_DOT_NO, RTU_DOT_DESC, RTU_DEV_TAG, RTU_RES_PARA_INT1, RTU_RES_PARA_INT2, RTU_RES_PARA_INT3, RTU_RES_PARA_INT4,DEV_NO, SEQ_NO) SELECT - export_seq.DEV_TAG,dev_info.DESCRIPTION, digital_map_to_fes.KEY_ID_TAG, 5, digital_map_to_fes.DESCRIPTION,digital_map_to_fes.RTU_TAG,digital_map_to_fes.DOT_NO5,'', '', 0, 0, 0, 0, export_seq.`NO`,digital.SEQ_NO - FROM export_seq,dev_info, digital,digital_map_to_fes - WHERE export_seq.DEV_TAG = dev_info.TAG_NAME AND export_seq.DEV_TAG = digital.DEVICE AND digital_map_to_fes.KEY_ID_TAG = concat('digital.',digital.TAG_NAME) - AND digital_map_to_fes.VALUE_NUM >= 5; - - #检索后台点,已有关联的,需要把关联导出 - UPDATE background_x_fes_digtal INNER JOIN fes_digital ON - fes_digital.TAG_NAME = concat(background_x_fes_digtal.RTU_TAG,'.',background_x_fes_digtal.RTU_DOT_NO) - SET background_x_fes_digtal.RTU_DOT_DESC = fes_digital.DESCRIPTION, - background_x_fes_digtal.RTU_DEV_TAG = fes_digital.DEV_TAG, - background_x_fes_digtal.RTU_RES_PARA_INT1 = fes_digital.RES_PARA_INT1, - background_x_fes_digtal.RTU_RES_PARA_INT2 = fes_digital.RES_PARA_INT2, - background_x_fes_digtal.RTU_RES_PARA_INT3 = fes_digital.RES_PARA_INT3, - background_x_fes_digtal.RTU_RES_PARA_INT4 = fes_digital.RES_PARA_INT4; - - #对于digital_ctrl - INSERT INTO background_x_fes_dig_ctrl ( - BG_DEV_TAG, BG_DEV_DESC, BG_POINT_TAG, BG_POINT_OFFSET, BG_POINT_DESC, RTU_TAG, RTU_DOT_NO, RTU_DOT_DESC, RTU_DEV_TAG, RTU_RES_PARA_INT1, RTU_RES_PARA_INT2,RTU_RES_PARA_INT3, RTU_RES_PARA_INT4,DEV_NO, SEQ_NO)SELECT - export_seq.DEV_TAG, dev_info.DESCRIPTION, digital_control.TAG_NAME, 1, digital.DESCRIPTION, digital_control.RTU_TAG,digital_control.OFFSET_NO1, '', '', 0, 0, 0, 0, export_seq.`NO`,digital.SEQ_NO - FROM export_seq , dev_info ,digital , digital_control - WHERE export_seq.DEV_TAG = dev_info.TAG_NAME AND export_seq.DEV_TAG=digital.DEVICE AND digital.TAG_NAME = digital_control.TAG_NAME - AND digital_control.OFFSET_NUM >= 1; - - INSERT INTO background_x_fes_dig_ctrl ( - BG_DEV_TAG, BG_DEV_DESC, BG_POINT_TAG, BG_POINT_OFFSET, BG_POINT_DESC, RTU_TAG, RTU_DOT_NO, RTU_DOT_DESC, RTU_DEV_TAG, RTU_RES_PARA_INT1, RTU_RES_PARA_INT2,RTU_RES_PARA_INT3, RTU_RES_PARA_INT4,DEV_NO, SEQ_NO)SELECT - export_seq.DEV_TAG, dev_info.DESCRIPTION, digital_control.TAG_NAME, 2, digital.DESCRIPTION, digital_control.RTU_TAG,digital_control.OFFSET_NO2, '', '', 0, 0, 0, 0, export_seq.`NO`,digital.SEQ_NO - FROM export_seq , dev_info ,digital , digital_control - WHERE export_seq.DEV_TAG = dev_info.TAG_NAME AND export_seq.DEV_TAG=digital.DEVICE AND digital.TAG_NAME = digital_control.TAG_NAME - AND digital_control.OFFSET_NUM >= 2; - - INSERT INTO background_x_fes_dig_ctrl ( - BG_DEV_TAG, BG_DEV_DESC, BG_POINT_TAG, BG_POINT_OFFSET, BG_POINT_DESC, RTU_TAG, RTU_DOT_NO, RTU_DOT_DESC, RTU_DEV_TAG, RTU_RES_PARA_INT1, RTU_RES_PARA_INT2,RTU_RES_PARA_INT3, RTU_RES_PARA_INT4,DEV_NO, SEQ_NO)SELECT - export_seq.DEV_TAG, dev_info.DESCRIPTION, digital_control.TAG_NAME, 3, digital.DESCRIPTION, digital_control.RTU_TAG,digital_control.OFFSET_NO3, '', '', 0, 0, 0, 0, export_seq.`NO`,digital.SEQ_NO - FROM export_seq , dev_info ,digital , digital_control - WHERE export_seq.DEV_TAG = dev_info.TAG_NAME AND export_seq.DEV_TAG=digital.DEVICE AND digital.TAG_NAME = digital_control.TAG_NAME - AND digital_control.OFFSET_NUM >= 3; - - INSERT INTO background_x_fes_dig_ctrl ( - BG_DEV_TAG, BG_DEV_DESC, BG_POINT_TAG, BG_POINT_OFFSET, BG_POINT_DESC, RTU_TAG, RTU_DOT_NO, RTU_DOT_DESC, RTU_DEV_TAG, RTU_RES_PARA_INT1, RTU_RES_PARA_INT2,RTU_RES_PARA_INT3, RTU_RES_PARA_INT4,DEV_NO, SEQ_NO)SELECT - export_seq.DEV_TAG, dev_info.DESCRIPTION, digital_control.TAG_NAME, 4, digital.DESCRIPTION, digital_control.RTU_TAG,digital_control.OFFSET_NO4, '', '', 0, 0, 0, 0, export_seq.`NO`,digital.SEQ_NO - FROM export_seq , dev_info ,digital , digital_control - WHERE export_seq.DEV_TAG = dev_info.TAG_NAME AND export_seq.DEV_TAG=digital.DEVICE AND digital.TAG_NAME = digital_control.TAG_NAME - AND digital_control.OFFSET_NUM >= 4; - - INSERT INTO background_x_fes_dig_ctrl ( - BG_DEV_TAG, BG_DEV_DESC, BG_POINT_TAG, BG_POINT_OFFSET, BG_POINT_DESC, RTU_TAG, RTU_DOT_NO, RTU_DOT_DESC, RTU_DEV_TAG, RTU_RES_PARA_INT1, RTU_RES_PARA_INT2,RTU_RES_PARA_INT3, RTU_RES_PARA_INT4,DEV_NO, SEQ_NO)SELECT - export_seq.DEV_TAG, dev_info.DESCRIPTION, digital_control.TAG_NAME, 5, digital.DESCRIPTION, digital_control.RTU_TAG,digital_control.OFFSET_NO5, '', '', 0, 0, 0, 0, export_seq.`NO`,digital.SEQ_NO - FROM export_seq , dev_info ,digital , digital_control - WHERE export_seq.DEV_TAG = dev_info.TAG_NAME AND export_seq.DEV_TAG=digital.DEVICE AND digital.TAG_NAME = digital_control.TAG_NAME - AND digital_control.OFFSET_NUM >= 5; - #检索后台点,已有关联的,需要把关联导出 - UPDATE background_x_fes_dig_ctrl INNER JOIN fes_digital_ctrl ON - fes_digital_ctrl.TAG_NAME = concat(background_x_fes_dig_ctrl.RTU_TAG,'.',background_x_fes_dig_ctrl.RTU_DOT_NO) - SET background_x_fes_dig_ctrl.RTU_DOT_DESC = fes_digital_ctrl.DESCRIPTION, - background_x_fes_dig_ctrl.RTU_DEV_TAG = fes_digital_ctrl.DEV_TAG, - background_x_fes_dig_ctrl.RTU_RES_PARA_INT1 = fes_digital_ctrl.RES_PARA_INT1, - background_x_fes_dig_ctrl.RTU_RES_PARA_INT2 = fes_digital_ctrl.RES_PARA_INT2, - background_x_fes_dig_ctrl.RTU_RES_PARA_INT3 = fes_digital_ctrl.RES_PARA_INT3, - background_x_fes_dig_ctrl.RTU_RES_PARA_INT4 = fes_digital_ctrl.RES_PARA_INT4; - - #mix - INSERT INTO background_x_fes_mix ( - BG_DEV_TAG, BG_DEV_DESC, BG_POINT_TAG, BG_POINT_OFFSET,BG_POINT_DESC, RTU_TAG, RTU_DOT_NO, RTU_DOT_DESC, RTU_DEV_TAG, RTU_RES_PARA_INT1, RTU_RES_PARA_INT2, RTU_RES_PARA_INT3,RTU_RES_PARA_INT4)SELECT - export_seq.DEV_TAG, dev_info.DESCRIPTION, mix_map_to_fes.KEY_ID_TAG, '1', mix_map_to_fes.DESCRIPTION, mix_map_to_fes.RTU_TAG,mix_map_to_fes.DOT_NO,'', '', 0, 0, 0, 0 - FROM export_seq , dev_info ,mix, mix_map_to_fes - WHERE export_seq.DEV_TAG = dev_info.TAG_NAME AND export_seq.DEV_TAG = mix.DEVICE AND mix_map_to_fes.KEY_ID_TAG = concat('mix','.',mix.TAG_NAME) - ORDER BY export_seq.NO,mix.SEQ_NO; - #检索后台点,已有关联的,需要把关联导出 - UPDATE background_x_fes_mix INNER JOIN fes_mix ON - fes_mix.TAG_NAME = concat(background_x_fes_mix.RTU_TAG,'.',background_x_fes_mix.RTU_DOT_NO) - SET background_x_fes_mix.RTU_DOT_DESC = fes_mix.DESCRIPTION, - background_x_fes_mix.RTU_DEV_TAG = fes_mix.DEV_TAG, - background_x_fes_mix.RTU_RES_PARA_INT1 = fes_mix.RES_PARA_INT1, - background_x_fes_mix.RTU_RES_PARA_INT2 = fes_mix.RES_PARA_INT2, - background_x_fes_mix.RTU_RES_PARA_INT3 = fes_mix.RES_PARA_INT3, - background_x_fes_mix.RTU_RES_PARA_INT4 = fes_mix.RES_PARA_INT4; - - #插入mix_Ctrl - INSERT INTO background_x_fes_mix_ctrl( - BG_DEV_TAG, BG_DEV_DESC, BG_POINT_TAG, BG_POINT_OFFSET,BG_POINT_DESC, RTU_TAG, RTU_DOT_NO, RTU_DOT_DESC, RTU_DEV_TAG, RTU_RES_PARA_INT1, RTU_RES_PARA_INT2, RTU_RES_PARA_INT3,RTU_RES_PARA_INT4)SELECT - export_seq.DEV_TAG, dev_info.DESCRIPTION, mix_control.TAG_NAME, '1', mix.DESCRIPTION, mix_control.RTU_TAG,mix_control.OFFSET_NO,'', '', 0, 0, 0, 0 - FROM export_seq , dev_info , mix ,mix_control - WHERE export_seq.DEV_TAG = dev_info.TAG_NAME AND export_seq.DEV_TAG = mix.DEVICE AND mix.TAG_NAME = mix_control.TAG_NAME - ORDER BY export_seq.NO,mix.SEQ_NO; - #检索后台点,已有关联的,需要把关联导出 - UPDATE background_x_fes_mix_ctrl INNER JOIN fes_mix_ctrl ON - fes_mix_ctrl.TAG_NAME=concat(background_x_fes_mix_ctrl.RTU_TAG,'.',background_x_fes_mix_ctrl.RTU_DOT_NO) - SET background_x_fes_mix_ctrl.RTU_DOT_DESC = fes_mix_ctrl.DESCRIPTION, - background_x_fes_mix_ctrl.RTU_DEV_TAG = fes_mix_ctrl.DEV_TAG, - background_x_fes_mix_ctrl.RTU_RES_PARA_INT1 = fes_mix_ctrl.RES_PARA_INT1, - background_x_fes_mix_ctrl.RTU_RES_PARA_INT2 = fes_mix_ctrl.RES_PARA_INT2, - background_x_fes_mix_ctrl.RTU_RES_PARA_INT3 = fes_mix_ctrl.RES_PARA_INT3, - background_x_fes_mix_ctrl.RTU_RES_PARA_INT4 = fes_mix_ctrl.RES_PARA_INT4; - -END;; -DELIMITER ; - -drop procedure if exists generateBatchDev; -DELIMITER ;; -CREATE DEFINER=`root`@`%` PROCEDURE `generateBatchDev`(devTagName varchar(64), batchNum decimal(10,0),batchStart decimal(10,0), formatTagName varchar(64),formatDesc varchar(128),fesRtuTagName varchar(64)) -body:BEGIN - #批量生成后台设备,当fesRtuTagName不为空时,同时批量生成对应的前置设备 - #devTagName 后台设备名 - #batchNum 批量生成的数量 - #batchStart 批量的起始数字 - #formatTagName TagName字段的批量格式 - #formatDesc 描述字段的批量格式 - #fesRtuTagName 前置RTU的标签名,为空表示不生成对应的前置设备 - DECLARE stepNum int DEFAULT 0; - DECLARE fesDevTempTagName varchar(64) DEFAULT ''; - DECLARE tempStr varchar(64) DEFAULT ''; - DECLARE locationTagName varchar(64) DEFAULT ''; - DECLARE tmpDevTag varchar(64) DEFAULT ''; - DECLARE tmpFesDevTag varchar(64) DEFAULT ''; - DECLARE accSize decimal(10,0) DEFAULT 0; - DECLARE anaSize decimal(10,0) DEFAULT 0; - DECLARE digSize decimal(10,0) DEFAULT 0; - DECLARE mixSize decimal(10,0) DEFAULT 0; - - #BAT_TAG_NAME中存储着短名 - CREATE TEMPORARY TABLE IF NOT EXISTS tmpGenerateBatchDevTbl( - BAT_TAG_NAME varchar(64) NOT NULL , - BAT_DESC varchar(64) NOT NULL - ); - DELETE FROM tmpGenerateBatchDevTbl; - - SET locationTagName = getBeforeLastDot(devTagName); - #根据批量规则生成一系列标签名和描述, - SET stepNum = batchStart; - WHILE stepNum < (batchStart + batchNum) DO - INSERT INTO tmpGenerateBatchDevTbl(BAT_TAG_NAME,BAT_DESC) - VALUES (replace(formatTagName,'%1',stepNum), replace(formatDesc,'%1',stepNum)); - SET stepNum = stepNum + 1; - END WHILE; - - #第一个设备在调用本存储过程之前已经生成,这里不必再重新生成 - INSERT INTO dev_info( - TAG_NAME, DESCRIPTION, LOCATION_ID, SUB_SYSTEM, GROUP_TAG_NAME, VOL_LEVEL_ID, DEV_TYPE, GRAY, CONTRAST, QCOLOR, VALUE, STATUS, NODE_NO1, NODE_NO2, NODE_NO3, NODE_NO4, NODE_NO5, NODE_NO6, NODE_NO7, NODE_NO8, NODE_NO9, NODE_NO10, REGION_ID, OPT_HANDOVER_GROUP, IS_SUMMARY, SUMMARY_VALUE, SUMMARY_STATUS, DEV_TP_NAME)SELECT - concat(locationTagName,'.',BAT_TAG_NAME) ,BAT_DESC, LOCATION_ID, SUB_SYSTEM, GROUP_TAG_NAME, VOL_LEVEL_ID, DEV_TYPE, GRAY, CONTRAST, QCOLOR, VALUE, STATUS, NODE_NO1, NODE_NO2, NODE_NO3, NODE_NO4, NODE_NO5, NODE_NO6, NODE_NO7, NODE_NO8, NODE_NO9, NODE_NO10, REGION_ID, OPT_HANDOVER_GROUP, IS_SUMMARY, SUMMARY_VALUE, SUMMARY_STATUS, DEV_TP_NAME - FROM dev_info,tmpGenerateBatchDevTbl WHERE TAG_NAME=devTagName AND concat(locationTagName,'.',BAT_TAG_NAME) <> devTagName; - - #判断是否生成对应的前置设备 - IF length(trim(fesRtuTagName)) THEN - BEGIN - #根据前置模板生成前置设备,后台设备模板的表结构修改,这里已经不能够同时批量生成前置设备 - SELECT '' INTO fesDevTempTagName FROM dev_info,dev_temp_def WHERE dev_info.TAG_NAME = devTagName AND dev_info.DEV_TP_NAME = dev_temp_def.TAG_NAME; - IF length(trim(fesDevTempTagName)) = 0 THEN LEAVE body; - END IF; - - #生成前置设备 - INSERT INTO fes_dev_info( - TAG_NAME, DEV_NAME, LOCATION_ID, SUB_SYSTEM, DEV_ID, DEV_TYPE_ID, RTU_TAG, RTU_NO, DEV_DESC, DEV_TP_NAME)SELECT - concat(fesRtuTagName,'.', BAT_TAG_NAME,'_fes'),concat(BAT_TAG_NAME,'_fes'),fes_rtu_para.LOCATION_ID,fes_rtu_para.SUB_SYSTEM,-1, fes_dev_temp_def.DEV_TYPE_ID,fesRtuTagName,fes_rtu_para.RTU_NO,BAT_DESC,fesDevTempTagName - FROM fes_dev_temp_def,fes_rtu_para,tmpGenerateBatchDevTbl - WHERE fes_dev_temp_def.TAG_NAME = fesDevTempTagName - AND fes_rtu_para.TAG_NAME = fesRtuTagName; - - #关联前置,创建临时表 - CREATE TEMPORARY TABLE IF NOT EXISTS tmpFesTblAcc( - KEY_ID_TAG varchar(128) NOT NULL, - DOT_NO varchar(48) NOT NULL, - OFFSET_NO decimal(10) - ); - DELETE FROM tmpFesTblAcc; - CREATE TEMPORARY TABLE IF NOT EXISTS tmpFesTblAna( - KEY_ID_TAG varchar(128) NOT NULL, - DOT_NO varchar(48) NOT NULL, - OFFSET_NO decimal(10) - ); - DELETE FROM tmpFesTblAna; - CREATE TEMPORARY TABLE IF NOT EXISTS tmpFesTblDig( - KEY_ID_TAG varchar(128) NOT NULL, - DOT_NO varchar(48) NOT NULL, - OFFSET_NO decimal(10) - ); - DELETE FROM tmpFesTblDig; - CREATE TEMPORARY TABLE IF NOT EXISTS tmpFesTblMix( - KEY_ID_TAG varchar(128) NOT NULL, - DOT_NO varchar(48) NOT NULL, - OFFSET_NO decimal(10) - ); - DELETE FROM tmpFesTblMix; - #关联前置,这里使用while循环重新生成tagName - SET stepNum = batchStart; - WHILE stepNum < (batchStart + batchNum) DO - SET tempStr = replace(formatTagName,'%1',stepNum); - SET tmpDevTag = concat(locationTagName,'.',tempStr); - SET tmpFesDevTag = concat(fesRtuTagName,'.', tempStr,'_fes'); - - IF stepNum = batchStart THEN #第一次的时候,初始化临时表,批量下,每个设备一样,所以临时表只需要初始化一次就行 - BEGIN - #acc - INSERT INTO tmpFesTblAcc(KEY_ID_TAG , DOT_NO) - SELECT accuml_map_to_fes.KEY_ID_TAG, fes_accuml.DOT_NO FROM accuml_map_to_fes,accuml_temp_define,fes_dev_pt_temp_def,fes_accuml WHERE - getBeforeLastDot(getAfterFirstDot(accuml_map_to_fes.KEY_ID_TAG)) = tmpDevTag AND - accuml_map_to_fes.POINT_TP_NAME=accuml_temp_define.TAG_NAME AND - accuml_temp_define.SEC_DEVTP_NAME = fesDevTempTagName AND - fes_dev_pt_temp_def.DEV_TP_NAME = fesDevTempTagName AND - fes_dev_pt_temp_def.POINT_TYPE = getFesPointType('FES_ACC') AND - fes_dev_pt_temp_def.SEQ_NO = accuml_temp_define.SEC_SEQ_NO AND - fes_accuml.DEV_TAG = tmpFesDevTag AND - fes_accuml.FES_POINT_TP_NAME = fes_dev_pt_temp_def.TAG_NAME; - #ana - INSERT INTO tmpFesTblAna (KEY_ID_TAG , DOT_NO) - SELECT analog_map_to_fes.KEY_ID_TAG, fes_analog.DOT_NO FROM analog_map_to_fes,analog_temp_define,fes_dev_pt_temp_def,fes_analog WHERE - getBeforeLastDot(getAfterFirstDot(analog_map_to_fes.KEY_ID_TAG)) = tmpDevTag AND - analog_map_to_fes.POINT_TP_NAME=analog_temp_define.TAG_NAME AND - analog_temp_define.SEC_DEVTP_NAME = fesDevTempTagName AND - fes_dev_pt_temp_def.DEV_TP_NAME = fesDevTempTagName AND - fes_dev_pt_temp_def.POINT_TYPE = getFesPointType('FES_ANA') AND - fes_dev_pt_temp_def.SEQ_NO = analog_temp_define.SEC_SEQ_NO AND - fes_analog.DEV_TAG = tmpFesDevTag AND - fes_analog.FES_POINT_TP_NAME = fes_dev_pt_temp_def.TAG_NAME; - #digital 五个分量 - INSERT INTO tmpFesTblDig (KEY_ID_TAG , DOT_NO, OFFSET_NO) - SELECT digital_map_to_fes.KEY_ID_TAG, fes_digital.DOT_NO, 1 FROM digital_map_to_fes,digital_temp_define,fes_dev_pt_temp_def,fes_digital WHERE - getBeforeLastDot(getAfterFirstDot(digital_map_to_fes.KEY_ID_TAG)) = tmpDevTag AND - digital_map_to_fes.POINT_TP_NAME=digital_temp_define.TAG_NAME AND - digital_temp_define.SEC_DEVTP_NAME = fesDevTempTagName AND - fes_dev_pt_temp_def.DEV_TP_NAME = fesDevTempTagName AND - fes_dev_pt_temp_def.POINT_TYPE = getFesPointType('FES_DIG') AND - fes_dev_pt_temp_def.SEQ_NO = digital_temp_define.SEC_SEQ_NO1 AND - fes_digital.DEV_TAG = tmpFesDevTag AND - fes_digital.FES_POINT_TP_NAME = fes_dev_pt_temp_def.TAG_NAME; - - INSERT INTO tmpFesTblDig (KEY_ID_TAG , DOT_NO, OFFSET_NO) - SELECT digital_map_to_fes.KEY_ID_TAG, fes_digital.DOT_NO, 2 FROM digital_map_to_fes,digital_temp_define,fes_dev_pt_temp_def,fes_digital WHERE - getBeforeLastDot(getAfterFirstDot(digital_map_to_fes.KEY_ID_TAG)) = tmpDevTag AND - digital_map_to_fes.POINT_TP_NAME=digital_temp_define.TAG_NAME AND - digital_temp_define.SEC_DEVTP_NAME = fesDevTempTagName AND - fes_dev_pt_temp_def.DEV_TP_NAME = fesDevTempTagName AND - fes_dev_pt_temp_def.POINT_TYPE = getFesPointType('FES_DIG') AND - fes_dev_pt_temp_def.SEQ_NO = digital_temp_define.SEC_SEQ_NO2 AND - fes_digital.DEV_TAG = tmpFesDevTag AND - fes_digital.FES_POINT_TP_NAME = fes_dev_pt_temp_def.TAG_NAME; - - INSERT INTO tmpFesTblDig (KEY_ID_TAG , DOT_NO, OFFSET_NO) - SELECT digital_map_to_fes.KEY_ID_TAG, fes_digital.DOT_NO, 3 FROM digital_map_to_fes,digital_temp_define,fes_dev_pt_temp_def,fes_digital WHERE - getBeforeLastDot(getAfterFirstDot(digital_map_to_fes.KEY_ID_TAG)) = tmpDevTag AND - digital_map_to_fes.POINT_TP_NAME=digital_temp_define.TAG_NAME AND - digital_temp_define.SEC_DEVTP_NAME = fesDevTempTagName AND - fes_dev_pt_temp_def.DEV_TP_NAME = fesDevTempTagName AND - fes_dev_pt_temp_def.POINT_TYPE = getFesPointType('FES_DIG') AND - fes_dev_pt_temp_def.SEQ_NO = digital_temp_define.SEC_SEQ_NO3 AND - fes_digital.DEV_TAG = tmpFesDevTag AND - fes_digital.FES_POINT_TP_NAME = fes_dev_pt_temp_def.TAG_NAME; - - INSERT INTO tmpFesTblDig (KEY_ID_TAG , DOT_NO, OFFSET_NO) - SELECT digital_map_to_fes.KEY_ID_TAG, fes_digital.DOT_NO, 4 FROM digital_map_to_fes,digital_temp_define,fes_dev_pt_temp_def,fes_digital WHERE - getBeforeLastDot(getAfterFirstDot(digital_map_to_fes.KEY_ID_TAG)) = tmpDevTag AND - digital_map_to_fes.POINT_TP_NAME=digital_temp_define.TAG_NAME AND - digital_temp_define.SEC_DEVTP_NAME = fesDevTempTagName AND - fes_dev_pt_temp_def.DEV_TP_NAME = fesDevTempTagName AND - fes_dev_pt_temp_def.POINT_TYPE = getFesPointType('FES_DIG') AND - fes_dev_pt_temp_def.SEQ_NO = digital_temp_define.SEC_SEQ_NO4 AND - fes_digital.DEV_TAG = tmpFesDevTag AND - fes_digital.FES_POINT_TP_NAME = fes_dev_pt_temp_def.TAG_NAME; - - INSERT INTO tmpFesTblDig (KEY_ID_TAG , DOT_NO,OFFSET_NO) - SELECT digital_map_to_fes.KEY_ID_TAG, fes_digital.DOT_NO, 5 FROM digital_map_to_fes,digital_temp_define,fes_dev_pt_temp_def,fes_digital WHERE - getBeforeLastDot(getAfterFirstDot(digital_map_to_fes.KEY_ID_TAG)) = tmpDevTag AND - digital_map_to_fes.POINT_TP_NAME=digital_temp_define.TAG_NAME AND - digital_temp_define.SEC_DEVTP_NAME = fesDevTempTagName AND - fes_dev_pt_temp_def.DEV_TP_NAME = fesDevTempTagName AND - fes_dev_pt_temp_def.POINT_TYPE = getFesPointType('FES_DIG') AND - fes_dev_pt_temp_def.SEQ_NO = digital_temp_define.SEC_SEQ_NO5 AND - fes_digital.DEV_TAG = tmpFesDevTag AND - fes_digital.FES_POINT_TP_NAME = fes_dev_pt_temp_def.TAG_NAME; - #mix - INSERT INTO tmpFesTblMix (KEY_ID_TAG , DOT_NO) - SELECT mix_map_to_fes.KEY_ID_TAG, fes_mix.DOT_NO FROM mix_map_to_fes,mix_temp_define,fes_dev_pt_temp_def,fes_mix WHERE - getBeforeLastDot(getAfterFirstDot(mix_map_to_fes.KEY_ID_TAG)) = tmpDevTag AND - mix_map_to_fes.POINT_TP_NAME=mix_temp_define.TAG_NAME AND - mix_temp_define.SEC_DEVTP_NAME = fesDevTempTagName AND - fes_dev_pt_temp_def.DEV_TP_NAME = fesDevTempTagName AND - fes_dev_pt_temp_def.POINT_TYPE = getFesPointType('FES_MIX') AND - fes_dev_pt_temp_def.SEQ_NO = mix_temp_define.SEC_SEQ_NO AND - fes_mix.DEV_TAG = tmpFesDevTag AND - fes_mix.FES_POINT_TP_NAME = fes_dev_pt_temp_def.TAG_NAME; - - #获取各个临时表的尺寸 - SELECT count(*) INTO accSize FROM fes_accuml WHERE DEV_TAG = tmpFesDevTag; - SELECT count(*) INTO anaSize FROM fes_analog WHERE DEV_TAG = tmpFesDevTag; - SELECT count(*) INTO digSize FROM fes_digital WHERE DEV_TAG = tmpFesDevTag; - SELECT count(*) INTO mixSize FROM fes_mix WHERE DEV_TAG = tmpFesDevTag; - IF COALESCE(accSize,0) = 0 THEN - SET accSize = 0; - END IF; - IF COALESCE(anaSize,0) = 0 THEN - SET anaSize = 0; - END IF; - IF COALESCE(digSize,0) = 0 THEN - SET digSize = 0; - END IF; - IF COALESCE(mixSize,0) = 0 THEN - SET mixSize = 0; - END IF; - END; - END IF; - - #对临时表中的KEY_ID_TAG,DOT_NO直接替换字段 - IF stepNum <> batchStart THEN - BEGIN - UPDATE tmpFesTblAcc SET - KEY_ID_TAG = concat(getBeforeFirstDot(KEY_ID_TAG),'.',tmpDevTag,'.',getAfterLastDot(KEY_ID_TAG)), - DOT_NO = ( DOT_NO + accSize) - WHERE 1; - - UPDATE tmpFesTblAna SET KEY_ID_TAG = concat(getBeforeFirstDot(KEY_ID_TAG),'.',tmpDevTag,'.',getAfterLastDot(KEY_ID_TAG)), - DOT_NO = ( DOT_NO + anaSize) - WHERE 1; - UPDATE tmpFesTblDig SET KEY_ID_TAG = concat(getBeforeFirstDot(KEY_ID_TAG),'.',tmpDevTag,'.',getAfterLastDot(KEY_ID_TAG)), - DOT_NO = ( DOT_NO + digSize) - WHERE 1; - UPDATE tmpFesTblMix SET KEY_ID_TAG = concat(getBeforeFirstDot(KEY_ID_TAG),'.',tmpDevTag,'.',getAfterLastDot(KEY_ID_TAG)), - DOT_NO = ( DOT_NO + mixSize) - WHERE 1; - END; - END IF; - #acc - UPDATE accuml SET RTU_TAG = fesRtuTagName WHERE DEVICE = tmpDevTag; - UPDATE accuml_map_to_fes INNER JOIN tmpFesTblAcc - ON accuml_map_to_fes.KEY_ID_TAG = tmpFesTblAcc.KEY_ID_TAG - SET accuml_map_to_fes.DOT_NO = tmpFesTblAcc.DOT_NO; - #ana - UPDATE analog SET RTU_TAG = fesRtuTagName WHERE DEVICE = tmpDevTag; - UPDATE analog_map_to_fes INNER JOIN tmpFesTblAna - ON analog_map_to_fes.KEY_ID_TAG = tmpFesTblAna.KEY_ID_TAG - SET analog_map_to_fes.DOT_NO = tmpFesTblAna.DOT_NO; - #digital - UPDATE digital SET RTU_TAG = fesRtuTagName WHERE DEVICE = tmpDevTag; - - UPDATE digital_map_to_fes INNER JOIN tmpFesTblDig - ON digital_map_to_fes.KEY_ID_TAG = tmpFesTblDig.KEY_ID_TAG AND tmpFesTblDig.OFFSET_NO = 1 - SET digital_map_to_fes.DOT_NO1 = tmpFesTblDig.DOT_NO; - - UPDATE digital_map_to_fes INNER JOIN tmpFesTblDig - ON digital_map_to_fes.KEY_ID_TAG = tmpFesTblDig.KEY_ID_TAG AND tmpFesTblDig.OFFSET_NO = 2 - SET digital_map_to_fes.DOT_NO2 = tmpFesTblDig.DOT_NO; - - UPDATE digital_map_to_fes INNER JOIN tmpFesTblDig - ON digital_map_to_fes.KEY_ID_TAG = tmpFesTblDig.KEY_ID_TAG AND tmpFesTblDig.OFFSET_NO = 3 - SET digital_map_to_fes.DOT_NO3 = tmpFesTblDig.DOT_NO; - - UPDATE digital_map_to_fes INNER JOIN tmpFesTblDig - ON digital_map_to_fes.KEY_ID_TAG = tmpFesTblDig.KEY_ID_TAG AND tmpFesTblDig.OFFSET_NO = 4 - SET digital_map_to_fes.DOT_NO4 = tmpFesTblDig.DOT_NO; - - UPDATE digital_map_to_fes INNER JOIN tmpFesTblDig - ON digital_map_to_fes.KEY_ID_TAG = tmpFesTblDig.KEY_ID_TAG AND tmpFesTblDig.OFFSET_NO = 5 - SET digital_map_to_fes.DOT_NO5 = tmpFesTblDig.DOT_NO; - #mix - UPDATE mix SET RTU_TAG = fesRtuTagName WHERE DEVICE = tmpDevTag; - UPDATE mix_map_to_fes INNER JOIN tmpFesTblMix - ON mix_map_to_fes.KEY_ID_TAG = tmpFesTblMix.KEY_ID_TAG - SET mix_map_to_fes.DOT_NO = tmpFesTblMix.DOT_NO; - - #每次循环结束加1 - SET stepNum = stepNum + 1; - - END WHILE; - - - END; - END IF; - -END;; -DELIMITER ; - -drop procedure if exists generateFesDevTemp; -DELIMITER ;; -CREATE DEFINER=`root`@`%` PROCEDURE `generateFesDevTemp`(devTagName varchar(64), fesDevTagName varchar(64)) -body:BEGIN - #生成与后台设备模板一样的前置模板的对话框 - #devTagName 后台设备模板名 - #fesDevTagName 前置设备模板名,该前置设备模板应已存在,且该设备下无任何点 - IF EXISTS (SELECT TAG_NAME FROM fes_dev_pt_temp_def WHERE DEV_TP_NAME= fesDevTagName ) - THEN LEAVE body; - END IF; - - #插入FES前置模板点 - INSERT INTO fes_dev_pt_temp_def( - TAG_NAME, POINT_TYPE, DEV_TP_NAME, SEQ_NO, FUN_CODE, INFO_NO, RATIO, REVISE, APPEND, ASS_DIG, CTRL_TYPE, ATTR, CONST_CFG_FILE, COEFFICIENT, SHORT_NAME, DESCRIPTION) SELECT - concat(fesDevTagName,'.',getAfterLastDot(TAG_NAME)),getFesPointType('FES_ACC'), fesDevTagName,SEQ_NO,'0', '0', 1, 0, 0, 0, 0, 0, '', 0, '', DESCRIPTION - FROM accuml_temp_define WHERE DEV_TP_NAME = devTagName; - - INSERT INTO fes_dev_pt_temp_def( - TAG_NAME, POINT_TYPE, DEV_TP_NAME, SEQ_NO, FUN_CODE, INFO_NO, RATIO, REVISE, APPEND, ASS_DIG, CTRL_TYPE, ATTR, CONST_CFG_FILE, COEFFICIENT, SHORT_NAME, DESCRIPTION) SELECT - concat(fesDevTagName,'.',getAfterLastDot(TAG_NAME)),getFesPointType('FES_ANA'), fesDevTagName,SEQ_NO,'0', '0', 1, 0, 0, 0, 0, 0, '', 0, '', DESCRIPTION - FROM analog_temp_define WHERE DEV_TP_NAME = devTagName; - - #对于dig要特殊处理,dig要分辨分量数 - CREATE TEMPORARY TABLE IF NOT EXISTS tmpGenerateFesDevTempTbl( - FES_SEQ_NO int NOT NULL AUTO_INCREMENT, - DIG_TAG_NAME varchar(64) NOT NULL, - HouTai_SEQ_NO decimal(10,0) NOT NULL, - HouTai_OFF_SET decimal(10,0) NOT NULL, - PRIMARY KEY(FES_SEQ_NO) - ); - DELETE FROM tmpGenerateFesDevTempTbl; - ALTER TABLE tmpGenerateFesDevTempTbl auto_increment = 1; - - INSERT INTO tmpGenerateFesDevTempTbl(DIG_TAG_NAME,HouTai_SEQ_NO,HouTai_OFF_SET) - SELECT TAG_NAME,SEQ_NO,1 - FROM digital_temp_define WHERE DEV_TP_NAME = devTagName AND 1 <= VALUE_NUM ORDER BY SEQ_NO; - - INSERT INTO tmpGenerateFesDevTempTbl(DIG_TAG_NAME,HouTai_SEQ_NO,HouTai_OFF_SET) - SELECT TAG_NAME,SEQ_NO,2 - FROM digital_temp_define WHERE DEV_TP_NAME = devTagName AND 2 <= VALUE_NUM ORDER BY SEQ_NO; - - INSERT INTO tmpGenerateFesDevTempTbl(DIG_TAG_NAME,HouTai_SEQ_NO,HouTai_OFF_SET) - SELECT TAG_NAME,SEQ_NO,3 - FROM digital_temp_define WHERE DEV_TP_NAME = devTagName AND 3 <= VALUE_NUM ORDER BY SEQ_NO; - - INSERT INTO tmpGenerateFesDevTempTbl(DIG_TAG_NAME,HouTai_SEQ_NO,HouTai_OFF_SET) - SELECT TAG_NAME,SEQ_NO,4 - FROM digital_temp_define WHERE DEV_TP_NAME = devTagName AND 4 <= VALUE_NUM ORDER BY SEQ_NO; - - INSERT INTO tmpGenerateFesDevTempTbl(DIG_TAG_NAME,HouTai_SEQ_NO,HouTai_OFF_SET) - SELECT TAG_NAME,SEQ_NO,5 - FROM digital_temp_define WHERE DEV_TP_NAME = devTagName AND 5 <= VALUE_NUM ORDER BY SEQ_NO; - - INSERT INTO fes_dev_pt_temp_def( - TAG_NAME, POINT_TYPE, DEV_TP_NAME, SEQ_NO, FUN_CODE, INFO_NO, RATIO, REVISE, APPEND, ASS_DIG, CTRL_TYPE, ATTR, CONST_CFG_FILE, COEFFICIENT, SHORT_NAME, DESCRIPTION) SELECT - concat(fesDevTagName,'.',getAfterLastDot(TAG_NAME),HouTai_OFF_SET),getFesPointType('FES_DIG'), fesDevTagName,FES_SEQ_NO, '0', '0', 1, 0, 0, 0, 0, 0, '', 0, '', concat(DESCRIPTION,HouTai_OFF_SET) - FROM digital_temp_define,tmpGenerateFesDevTempTbl WHERE DEV_TP_NAME = devTagName AND TAG_NAME = DIG_TAG_NAME; - - INSERT INTO fes_dev_pt_temp_def( - TAG_NAME, POINT_TYPE, DEV_TP_NAME, SEQ_NO, FUN_CODE, INFO_NO, RATIO, REVISE, APPEND, ASS_DIG, CTRL_TYPE, ATTR, CONST_CFG_FILE, COEFFICIENT, SHORT_NAME, DESCRIPTION) SELECT - concat(fesDevTagName,'.',getAfterLastDot(TAG_NAME)),getFesPointType('FES_MIX'), fesDevTagName,SEQ_NO,'0', '0', 1, 0, 0, 0, 0, 0, '', 0, '', DESCRIPTION - FROM mix_temp_define WHERE DEV_TP_NAME = devTagName; - - INSERT INTO fes_dev_pt_temp_def( - TAG_NAME, POINT_TYPE, DEV_TP_NAME, SEQ_NO, FUN_CODE, INFO_NO, RATIO, REVISE, APPEND, ASS_DIG, CTRL_TYPE, ATTR, CONST_CFG_FILE, COEFFICIENT, SHORT_NAME, DESCRIPTION) SELECT - concat(fesDevTagName,'.',getAfterLastDot(TAG_NAME),'_ctrl'),getFesPointType('FES_ANA_CTRL'), fesDevTagName,SEQ_NO, '0', '0', 1, 0, 0, 0, 0, 0, '', 0, '', DESCRIPTION - FROM analog_temp_define WHERE DEV_TP_NAME = devTagName AND COALESCE(IS_CONTROL,0)<>0; - - INSERT INTO fes_dev_pt_temp_def( - TAG_NAME, POINT_TYPE, DEV_TP_NAME, SEQ_NO, FUN_CODE, INFO_NO, RATIO, REVISE, APPEND, ASS_DIG, CTRL_TYPE, ATTR, CONST_CFG_FILE, COEFFICIENT, SHORT_NAME, DESCRIPTION) SELECT - concat(fesDevTagName,'.',getAfterLastDot(TAG_NAME),'_ctrl'),getFesPointType('FES_DIG_CTRL'), fesDevTagName,SEQ_NO, '0', '0', 1, 0, 0, 0, 0, 0, '', 0, '', DESCRIPTION - FROM digital_temp_define WHERE DEV_TP_NAME = devTagName AND COALESCE(IS_CONTROL,0)<>0; - - INSERT INTO fes_dev_pt_temp_def( - TAG_NAME, POINT_TYPE, DEV_TP_NAME, SEQ_NO, FUN_CODE, INFO_NO, RATIO, REVISE, APPEND, ASS_DIG, CTRL_TYPE, ATTR, CONST_CFG_FILE, COEFFICIENT, SHORT_NAME, DESCRIPTION) SELECT - concat(fesDevTagName,'.',getAfterLastDot(TAG_NAME),'_ctrl'),getFesPointType('FES_MIX_CTRL'), fesDevTagName,SEQ_NO, '0', '0', 1, 0, 0, 0, 0, 0, '', 0, '', DESCRIPTION - FROM mix_temp_define WHERE DEV_TP_NAME = devTagName AND COALESCE(IS_CONTROL,0)<>0; - - #关联对应前置模板点,只能关联acc,ana,dig,mix,控制类的没法关联 - UPDATE dev_temp_def SET - SEC_DEVTP_NAME = fesDevTagName - WHERE TAG_NAME = devTagName; - - #acc,ana,mix点序号后台和前置里一一对应 - UPDATE accuml_temp_define SET - SEC_SEQ_NO = SEQ_NO - WHERE DEV_TP_NAME = devTagName; - - UPDATE analog_temp_define SET - SEC_SEQ_NO = SEQ_NO - WHERE DEV_TP_NAME = devTagName; - - UPDATE mix_temp_define SET - SEC_SEQ_NO = SEQ_NO - WHERE DEV_TP_NAME = devTagName; - - #dig点序号和分量数有关 - #先全部清空 - UPDATE digital_temp_define SET - SEC_SEQ_NO1 = -1, - SEC_SEQ_NO2 = -1, - SEC_SEQ_NO3 = -1, - SEC_SEQ_NO4 = -1, - SEC_SEQ_NO5 = -1 - WHERE DEV_TP_NAME = devTagName; - - UPDATE digital_temp_define INNER JOIN tmpGenerateFesDevTempTbl - ON TAG_NAME = DIG_TAG_NAME AND DEV_TP_NAME = devTagName AND HouTai_OFF_SET = 1 - SET SEC_SEQ_NO1 = FES_SEQ_NO; - - UPDATE digital_temp_define INNER JOIN tmpGenerateFesDevTempTbl - ON TAG_NAME = DIG_TAG_NAME AND DEV_TP_NAME = devTagName AND HouTai_OFF_SET = 2 - SET SEC_SEQ_NO2 = FES_SEQ_NO; - - UPDATE digital_temp_define INNER JOIN tmpGenerateFesDevTempTbl - ON TAG_NAME = DIG_TAG_NAME AND DEV_TP_NAME = devTagName AND HouTai_OFF_SET = 3 - SET SEC_SEQ_NO3 = FES_SEQ_NO; - - UPDATE digital_temp_define INNER JOIN tmpGenerateFesDevTempTbl - ON TAG_NAME = DIG_TAG_NAME AND DEV_TP_NAME = devTagName AND HouTai_OFF_SET = 4 - SET SEC_SEQ_NO4 = FES_SEQ_NO; - - UPDATE digital_temp_define INNER JOIN tmpGenerateFesDevTempTbl - ON TAG_NAME = DIG_TAG_NAME AND DEV_TP_NAME = devTagName AND HouTai_OFF_SET = 5 - SET SEC_SEQ_NO5 = FES_SEQ_NO; - -END;; -DELIMITER ; - -drop procedure if exists importbgxfes; -DELIMITER ;; -CREATE DEFINER=`root`@`%` PROCEDURE `importbgxfes`(openTriggerInfo decimal(10,0), importFesPointDesc decimal(10,0), fesDescToBG decimal(10,0) ) -BEGIN - #从background_x_fes表导入数据 - #openTriggerInfo = 1 开启同步到实时库的功能,此操作十分耗时,建议关闭 - #importFesPointDesc = 1导入FES点描述,此值只对非默认设备起作用, 对于默认设备点,总是自动导入描述 - #fesDescToBG = 1将把FES的描述导入后台 - - #同步实时库的功能关闭 - IF openTriggerInfo <> 1 THEN - UPDATE sys_trigger_flag SET FLAG_ID = 0 WHERE FLAG_ID = 1; - END IF; - #预处理阶段 - #首先把background_x_fes表中提到的后台点与前置的映射关系取消掉,这里会触发触发器,会比较耗时,去优化触发器 - UPDATE accuml INNER JOIN background_x_fes_accuml - ON concat('accuml','.',accuml.TAG_NAME) = background_x_fes_accuml.BG_POINT_TAG - SET accuml.RTU_TAG = ''; - - UPDATE analog INNER JOIN background_x_fes_analog - ON concat('analog','.',analog.TAG_NAME) = background_x_fes_analog.BG_POINT_TAG - SET analog.RTU_TAG = ''; - - UPDATE digital INNER JOIN background_x_fes_digtal - ON concat('digital','.',digital.TAG_NAME) = background_x_fes_digtal.BG_POINT_TAG - SET digital.RTU_TAG = ''; - - UPDATE mix INNER JOIN background_x_fes_mix - ON concat('mix','.',mix.TAG_NAME) = background_x_fes_mix.BG_POINT_TAG - SET mix.RTU_TAG = ''; - - #update完毕,会驱动触发器,更新对应map_to_fes和Control表中的RTU - - #预处理, acc,ana,dig,mix 中后台与前置的关联有两种方法确定前置点,分别是1:RTU_TAG和RTU_DOT_NO可以确定一个点 - #2:通过RTU_DEV_TAG去前置模板和后台模板寻找实例的对应点,再写入对应的RTU_tag和RTU_DOT_NO - #最终都通过RTU_TAG和RTU_DOT_NO确定前置点 - #不符合以上两点的记录删除 - #ana_ctrl,dig_ctrl,mix_ctrl只能用一种方法确定,即rtu_tag, RTU_DOT_NO,RTU_DEV_TAG都需要填写, rtu_tag, RTU_DOT_NO,RTU_DEV_TAG都对得上的使用实例的设备,否则使用默认设备 - #首先,对于acc,ana,dig,mix,把RTU_TAG或者RTU_DOT_NO为空, RTU_DEV_TAG不为空的记录,去模板找对应关系,填入RTU_TAG和RTU_DOT_NO信息 - #acc - UPDATE - ( - ( background_x_fes_accuml INNER JOIN accuml_map_to_fes - ON COALESCE(background_x_fes_accuml.RTU_DEV_TAG,'')<>'' AND (COALESCE(background_x_fes_accuml.RTU_TAG,'')='' OR COALESCE(background_x_fes_accuml.RTU_DOT_NO,'')='') - AND background_x_fes_accuml.BG_POINT_TAG = accuml_map_to_fes.KEY_ID_TAG - ) INNER JOIN accuml_temp_define ON accuml_map_to_fes.POINT_TP_NAME = accuml_temp_define.TAG_NAME - ) INNER JOIN fes_accuml ON fes_accuml.DEV_TAG = background_x_fes_accuml.RTU_DEV_TAG AND fes_accuml.SEQ_NO = accuml_temp_define.SEC_SEQ_NO - SET - background_x_fes_accuml.RTU_TAG = fes_accuml.RTU_TAG, - background_x_fes_accuml.RTU_DOT_NO = fes_accuml.DOT_NO; - #ana - UPDATE - ( - ( background_x_fes_analog INNER JOIN analog_map_to_fes - ON COALESCE(background_x_fes_analog.RTU_DEV_TAG,'')<>'' AND (COALESCE(background_x_fes_analog.RTU_TAG,'')='' OR COALESCE(background_x_fes_analog.RTU_DOT_NO,'')='') - AND background_x_fes_analog.BG_POINT_TAG = analog_map_to_fes.KEY_ID_TAG - ) INNER JOIN analog_temp_define ON analog_map_to_fes.POINT_TP_NAME = analog_temp_define.TAG_NAME - ) INNER JOIN fes_analog ON fes_analog.DEV_TAG = background_x_fes_analog.RTU_DEV_TAG AND fes_analog.SEQ_NO = analog_temp_define.SEC_SEQ_NO - SET - background_x_fes_analog.RTU_TAG = fes_analog.RTU_TAG, - background_x_fes_analog.RTU_DOT_NO = fes_analog.DOT_NO; - #dig的5个分量,需要判断是哪个分量,即判断background_x_fes_digtal.OFFSET字段,可枚举该字段的值,只有5个,1,2,3,4,5 - UPDATE - ( - (background_x_fes_digtal INNER JOIN digital_map_to_fes - ON COALESCE(background_x_fes_digtal.RTU_DEV_TAG,'')<>'' AND (COALESCE(background_x_fes_digtal.RTU_TAG,'')='' OR COALESCE(background_x_fes_digtal.RTU_DOT_NO,'')='') - AND background_x_fes_digtal.BG_POINT_OFFSET = 1 AND background_x_fes_digtal.BG_POINT_TAG = digital_map_to_fes.KEY_ID_TAG - ) INNER JOIN digital_temp_define ON digital_map_to_fes.POINT_TP_NAME = digital_temp_define.TAG_NAME - ) INNER JOIN fes_digital ON fes_digital.DEV_TAG = background_x_fes_digtal.RTU_DEV_TAG AND fes_digital.SEQ_NO = digital_temp_define.SEC_SEQ_NO1 - SET - background_x_fes_digtal.RTU_TAG = fes_digital.RTU_TAG, - background_x_fes_digtal.RTU_DOT_NO = fes_digital.DOT_NO; - - UPDATE - ( - (background_x_fes_digtal INNER JOIN digital_map_to_fes - ON COALESCE(background_x_fes_digtal.RTU_DEV_TAG,'')<>'' AND (COALESCE(background_x_fes_digtal.RTU_TAG,'')='' OR COALESCE(background_x_fes_digtal.RTU_DOT_NO,'')='') - AND background_x_fes_digtal.BG_POINT_OFFSET = 2 AND background_x_fes_digtal.BG_POINT_TAG = digital_map_to_fes.KEY_ID_TAG - ) INNER JOIN digital_temp_define ON digital_map_to_fes.POINT_TP_NAME = digital_temp_define.TAG_NAME - ) INNER JOIN fes_digital ON fes_digital.DEV_TAG = background_x_fes_digtal.RTU_DEV_TAG AND fes_digital.SEQ_NO = digital_temp_define.SEC_SEQ_NO2 - SET - background_x_fes_digtal.RTU_TAG = fes_digital.RTU_TAG, - background_x_fes_digtal.RTU_DOT_NO = fes_digital.DOT_NO; - - UPDATE - ( - (background_x_fes_digtal INNER JOIN digital_map_to_fes - ON COALESCE(background_x_fes_digtal.RTU_DEV_TAG,'')<>'' AND (COALESCE(background_x_fes_digtal.RTU_TAG,'')='' OR COALESCE(background_x_fes_digtal.RTU_DOT_NO,'')='') - AND background_x_fes_digtal.BG_POINT_OFFSET = 3 AND background_x_fes_digtal.BG_POINT_TAG = digital_map_to_fes.KEY_ID_TAG - ) INNER JOIN digital_temp_define ON digital_map_to_fes.POINT_TP_NAME = digital_temp_define.TAG_NAME - ) INNER JOIN fes_digital ON fes_digital.DEV_TAG = background_x_fes_digtal.RTU_DEV_TAG AND fes_digital.SEQ_NO = digital_temp_define.SEC_SEQ_NO3 - SET - background_x_fes_digtal.RTU_TAG = fes_digital.RTU_TAG, - background_x_fes_digtal.RTU_DOT_NO = fes_digital.DOT_NO; - - UPDATE - ( - (background_x_fes_digtal INNER JOIN digital_map_to_fes - ON COALESCE(background_x_fes_digtal.RTU_DEV_TAG,'')<>'' AND (COALESCE(background_x_fes_digtal.RTU_TAG,'')='' OR COALESCE(background_x_fes_digtal.RTU_DOT_NO,'')='') - AND background_x_fes_digtal.BG_POINT_OFFSET = 4 AND background_x_fes_digtal.BG_POINT_TAG = digital_map_to_fes.KEY_ID_TAG - ) INNER JOIN digital_temp_define ON digital_map_to_fes.POINT_TP_NAME = digital_temp_define.TAG_NAME - ) INNER JOIN fes_digital ON fes_digital.DEV_TAG = background_x_fes_digtal.RTU_DEV_TAG AND fes_digital.SEQ_NO = digital_temp_define.SEC_SEQ_NO4 - SET - background_x_fes_digtal.RTU_TAG = fes_digital.RTU_TAG, - background_x_fes_digtal.RTU_DOT_NO = fes_digital.DOT_NO; - - UPDATE - ( - (background_x_fes_digtal INNER JOIN digital_map_to_fes - ON COALESCE(background_x_fes_digtal.RTU_DEV_TAG,'')<>'' AND (COALESCE(background_x_fes_digtal.RTU_TAG,'')='' OR COALESCE(background_x_fes_digtal.RTU_DOT_NO,'')='') - AND background_x_fes_digtal.BG_POINT_OFFSET = 5 AND background_x_fes_digtal.BG_POINT_TAG = digital_map_to_fes.KEY_ID_TAG - ) INNER JOIN digital_temp_define ON digital_map_to_fes.POINT_TP_NAME = digital_temp_define.TAG_NAME - ) INNER JOIN fes_digital ON fes_digital.DEV_TAG = background_x_fes_digtal.RTU_DEV_TAG AND fes_digital.SEQ_NO = digital_temp_define.SEC_SEQ_NO5 - SET - background_x_fes_digtal.RTU_TAG = fes_digital.RTU_TAG, - background_x_fes_digtal.RTU_DOT_NO = fes_digital.DOT_NO; - #mix - UPDATE - ( - ( background_x_fes_mix INNER JOIN mix_map_to_fes - ON COALESCE(background_x_fes_mix.RTU_DEV_TAG,'')<>'' AND (COALESCE(background_x_fes_mix.RTU_TAG,'')='' OR COALESCE(background_x_fes_mix.RTU_DOT_NO,'')='') - AND background_x_fes_mix.BG_POINT_TAG = mix_map_to_fes.KEY_ID_TAG - ) INNER JOIN mix_temp_define ON mix_map_to_fes.POINT_TP_NAME = mix_temp_define.TAG_NAME - ) INNER JOIN fes_mix ON fes_mix.DEV_TAG = background_x_fes_mix.RTU_DEV_TAG AND fes_mix.SEQ_NO = mix_temp_define.SEC_SEQ_NO - SET - background_x_fes_mix.RTU_TAG = fes_mix.RTU_TAG, - background_x_fes_mix.RTU_DOT_NO = fes_mix.DOT_NO; - - #删除RTU_TAG和DOT_NO仍为空的 - DELETE FROM background_x_fes_accuml WHERE COALESCE(RTU_TAG,'') = '' OR COALESCE(RTU_DOT_NO,'') ='' ; - DELETE FROM background_x_fes_analog WHERE COALESCE(RTU_TAG,'') = '' OR COALESCE(RTU_DOT_NO,'') ='' ; - DELETE FROM background_x_fes_digtal WHERE COALESCE(RTU_TAG,'') = '' OR COALESCE(RTU_DOT_NO,'') ='' ; - DELETE FROM background_x_fes_mix WHERE COALESCE(RTU_TAG,'') = '' OR COALESCE(RTU_DOT_NO,'') ='' ; - - DELETE FROM background_x_fes_ana_ctrl WHERE COALESCE(RTU_TAG,'') = '' OR COALESCE(RTU_DOT_NO,'') ='' ; - DELETE FROM background_x_fes_dig_ctrl WHERE COALESCE(RTU_TAG,'') = '' OR COALESCE(RTU_DOT_NO,'') ='' ; - DELETE FROM background_x_fes_mix_ctrl WHERE COALESCE(RTU_TAG,'') = '' OR COALESCE(RTU_DOT_NO,'') ='' ; - - #再次更新,对于RTU_TAG,DOT_NO和RTU_DEV_TAG对不上的点归类到默认设备 - UPDATE background_x_fes_accuml - SET background_x_fes_accuml.RTU_DEV_TAG = concat(background_x_fes_accuml.RTU_TAG, '.', 'defaultDev') - WHERE NOT EXISTS - (SELECT TAG_NAME FROM fes_accuml - WHERE fes_accuml.TAG_NAME =concat(background_x_fes_accuml.RTU_TAG,'.',background_x_fes_accuml.RTU_DOT_NO) - AND fes_accuml.DEV_TAG = background_x_fes_accuml.RTU_DEV_TAG - ); - - UPDATE background_x_fes_analog - SET background_x_fes_analog.RTU_DEV_TAG = concat(background_x_fes_analog.RTU_TAG, '.', 'defaultDev') - WHERE NOT EXISTS - (SELECT TAG_NAME FROM fes_analog - WHERE fes_analog.TAG_NAME =concat(background_x_fes_analog.RTU_TAG,'.',background_x_fes_analog.RTU_DOT_NO) - AND fes_analog.DEV_TAG = background_x_fes_analog.RTU_DEV_TAG - ); - - UPDATE background_x_fes_digtal - SET background_x_fes_digtal.RTU_DEV_TAG = concat(background_x_fes_digtal.RTU_TAG, '.', 'defaultDev') - WHERE NOT EXISTS - (SELECT TAG_NAME FROM fes_digital - WHERE fes_digital.TAG_NAME =concat(background_x_fes_digtal.RTU_TAG,'.',background_x_fes_digtal.RTU_DOT_NO) - AND fes_digital.DEV_TAG = background_x_fes_digtal.RTU_DEV_TAG - ); - - UPDATE background_x_fes_mix - SET background_x_fes_mix.RTU_DEV_TAG = concat(background_x_fes_mix.RTU_TAG, '.', 'defaultDev') - WHERE NOT EXISTS - (SELECT TAG_NAME FROM fes_mix - WHERE fes_mix.TAG_NAME =concat(background_x_fes_mix.RTU_TAG,'.',background_x_fes_mix.RTU_DOT_NO) - AND fes_mix.DEV_TAG = background_x_fes_mix.RTU_DEV_TAG - ); - - UPDATE background_x_fes_ana_ctrl - SET background_x_fes_ana_ctrl.RTU_DEV_TAG = concat(background_x_fes_ana_ctrl.RTU_TAG, '.', 'defaultDev') - WHERE NOT EXISTS - (SELECT TAG_NAME FROM fes_analog_ctrl - WHERE fes_analog_ctrl.TAG_NAME =concat(background_x_fes_ana_ctrl.RTU_TAG,'.',background_x_fes_ana_ctrl.RTU_DOT_NO) - AND fes_analog_ctrl.DEV_TAG = background_x_fes_ana_ctrl.RTU_DEV_TAG - ); - - UPDATE background_x_fes_dig_ctrl - SET background_x_fes_dig_ctrl.RTU_DEV_TAG = concat(background_x_fes_dig_ctrl.RTU_TAG, '.', 'defaultDev') - WHERE NOT EXISTS - (SELECT TAG_NAME FROM fes_digital_ctrl - WHERE fes_digital_ctrl.TAG_NAME =concat(background_x_fes_dig_ctrl.RTU_TAG,'.',background_x_fes_dig_ctrl.RTU_DOT_NO) - AND fes_digital_ctrl.DEV_TAG = background_x_fes_dig_ctrl.RTU_DEV_TAG - ); - - UPDATE background_x_fes_mix_ctrl - SET background_x_fes_mix_ctrl.RTU_DEV_TAG = concat(background_x_fes_mix_ctrl.RTU_TAG, '.', 'defaultDev') - WHERE NOT EXISTS - (SELECT TAG_NAME FROM fes_mix_ctrl - WHERE fes_mix_ctrl.TAG_NAME =concat(background_x_fes_mix_ctrl.RTU_TAG,'.',background_x_fes_mix_ctrl.RTU_DOT_NO) - AND fes_mix_ctrl.DEV_TAG = background_x_fes_mix_ctrl.RTU_DEV_TAG - ); - #预处理完毕,此时background_x_fes表中的字段情况有以下几种情况. - #1:RTU_TAG,DOT_NO,RTU_DEV_TAG都对得上的(即对应表上有的),这些事前置实例设备中的点 - #2:RTU_TAG,DOT_NO与RTU_DEV_TAG可能对不上,这类点归类到默认设备中 - - #先删除默认设备点 - DELETE fes_accuml - FROM ( - fes_accuml INNER JOIN fes_dev_info - ON fes_accuml.DEV_TAG = fes_dev_info.TAG_NAME AND fes_dev_info.TAG_NAME = concat(fes_accuml.RTU_TAG,'.', 'defaultDev') - ) INNER JOIN background_x_fes_accuml ON fes_accuml.RTU_TAG = background_x_fes_accuml.RTU_TAG; - - DELETE fes_analog - FROM ( - fes_analog INNER JOIN fes_dev_info - ON fes_analog.DEV_TAG = fes_dev_info.TAG_NAME AND fes_dev_info.TAG_NAME = concat(fes_analog.RTU_TAG,'.', 'defaultDev') - ) INNER JOIN background_x_fes_analog ON fes_analog.RTU_TAG = background_x_fes_analog.RTU_TAG; - - DELETE fes_digital - FROM ( - fes_digital INNER JOIN fes_dev_info - ON fes_digital.DEV_TAG = fes_dev_info.TAG_NAME AND fes_dev_info.TAG_NAME = concat(fes_digital.RTU_TAG,'.', 'defaultDev') - ) INNER JOIN background_x_fes_digtal ON fes_digital.RTU_TAG = background_x_fes_digtal.RTU_TAG; - DELETE fes_mix - FROM ( - fes_mix INNER JOIN fes_dev_info - ON fes_mix.DEV_TAG = fes_dev_info.TAG_NAME AND fes_dev_info.TAG_NAME = concat(fes_mix.RTU_TAG,'.', 'defaultDev') - ) INNER JOIN background_x_fes_mix ON fes_mix.RTU_TAG = background_x_fes_mix.RTU_TAG; - - DELETE fes_analog_ctrl - FROM ( - fes_analog_ctrl INNER JOIN fes_dev_info - ON fes_analog_ctrl.DEV_TAG = fes_dev_info.TAG_NAME AND fes_dev_info.TAG_NAME = concat(fes_analog_ctrl.RTU_TAG,'.', 'defaultDev') - ) INNER JOIN background_x_fes_ana_ctrl ON fes_analog_ctrl.RTU_TAG = background_x_fes_ana_ctrl.RTU_TAG; - - DELETE fes_digital_ctrl - FROM ( - fes_digital_ctrl INNER JOIN fes_dev_info - ON fes_digital_ctrl.DEV_TAG = fes_dev_info.TAG_NAME AND fes_dev_info.TAG_NAME = concat(fes_digital_ctrl.RTU_TAG,'.', 'defaultDev') - ) INNER JOIN background_x_fes_dig_ctrl ON fes_digital_ctrl.RTU_TAG = background_x_fes_dig_ctrl.RTU_TAG; - - DELETE fes_mix_ctrl - FROM ( - fes_mix_ctrl INNER JOIN fes_dev_info - ON fes_mix_ctrl.DEV_TAG = fes_dev_info.TAG_NAME AND fes_dev_info.TAG_NAME = concat(fes_mix_ctrl.RTU_TAG,'.', 'defaultDev') - ) INNER JOIN background_x_fes_mix_ctrl ON fes_mix_ctrl.RTU_TAG = background_x_fes_mix_ctrl.RTU_TAG; - - #对于非默认设备将所有FES与后台的联系清除 - UPDATE fes_accuml INNER JOIN background_x_fes_accuml ON - fes_accuml.TAG_NAME = concat(background_x_fes_accuml.RTU_TAG,'.',background_x_fes_accuml.RTU_DOT_NO) - SET APP_TABLE_NAME='',APP_TAG_NAME='',APP_COLUMN_NAME='', - RES_PARA_INT1=RTU_RES_PARA_INT1,RES_PARA_INT2=RTU_RES_PARA_INT2,RES_PARA_INT3=RTU_RES_PARA_INT3,RES_PARA_INT4=RTU_RES_PARA_INT4; - - UPDATE fes_analog INNER JOIN background_x_fes_analog ON - fes_analog.TAG_NAME = concat(background_x_fes_analog.RTU_TAG,'.',background_x_fes_analog.RTU_DOT_NO) - SET APP_TABLE_NAME='',APP_TAG_NAME='',APP_COLUMN_NAME='', - RES_PARA_INT1=RTU_RES_PARA_INT1,RES_PARA_INT2=RTU_RES_PARA_INT2,RES_PARA_INT3=RTU_RES_PARA_INT3,RES_PARA_INT4=RTU_RES_PARA_INT4; - - UPDATE fes_digital INNER JOIN background_x_fes_digtal ON - fes_digital.TAG_NAME = concat(background_x_fes_digtal.RTU_TAG,'.',background_x_fes_digtal.RTU_DOT_NO) - SET APP_TABLE_NAME='',APP_TAG_NAME='',APP_COLUMN_NAME='', - RES_PARA_INT1=RTU_RES_PARA_INT1,RES_PARA_INT2=RTU_RES_PARA_INT2,RES_PARA_INT3=RTU_RES_PARA_INT3,RES_PARA_INT4=RTU_RES_PARA_INT4; - - UPDATE fes_mix INNER JOIN background_x_fes_mix ON - fes_mix.TAG_NAME = concat(background_x_fes_mix.RTU_TAG,'.',background_x_fes_mix.RTU_DOT_NO) - SET APP_TABLE_NAME='',APP_TAG_NAME='',APP_COLUMN_NAME='', - RES_PARA_INT1=RTU_RES_PARA_INT1,RES_PARA_INT2=RTU_RES_PARA_INT2,RES_PARA_INT3=RTU_RES_PARA_INT3,RES_PARA_INT4=RTU_RES_PARA_INT4; - - UPDATE fes_analog_ctrl INNER JOIN background_x_fes_ana_ctrl ON - fes_analog_ctrl.TAG_NAME = concat(background_x_fes_ana_ctrl.RTU_TAG,'.',background_x_fes_ana_ctrl.RTU_DOT_NO) - SET RES_PARA_INT1=RTU_RES_PARA_INT1,RES_PARA_INT2=RTU_RES_PARA_INT2,RES_PARA_INT3=RTU_RES_PARA_INT3,RES_PARA_INT4=RTU_RES_PARA_INT4; - - UPDATE fes_digital_ctrl INNER JOIN background_x_fes_dig_ctrl ON - fes_digital_ctrl.TAG_NAME = concat(background_x_fes_dig_ctrl.RTU_TAG,'.',background_x_fes_dig_ctrl.RTU_DOT_NO) - SET RES_PARA_INT1=RTU_RES_PARA_INT1,RES_PARA_INT2=RTU_RES_PARA_INT2,RES_PARA_INT3=RTU_RES_PARA_INT3,RES_PARA_INT4=RTU_RES_PARA_INT4; - - UPDATE fes_mix_ctrl INNER JOIN background_x_fes_mix_ctrl ON - fes_mix_ctrl.TAG_NAME = concat(background_x_fes_mix_ctrl.RTU_TAG,'.',background_x_fes_mix_ctrl.RTU_DOT_NO) - SET RES_PARA_INT1=RTU_RES_PARA_INT1,RES_PARA_INT2=RTU_RES_PARA_INT2,RES_PARA_INT3=RTU_RES_PARA_INT3,RES_PARA_INT4=RTU_RES_PARA_INT4; - #ana_ctrl,dig_ctrl,mix_ctrl不用清除 - - #重新生成默认设备 - INSERT INTO fes_accuml ( - TAG_NAME, LOCATION_ID, SUB_SYSTEM, DOT_NO, RTU_TAG, DEV_TAG, SEQ_NO, APP_TABLE_NAME, APP_TAG_NAME, APP_COLUMN_NAME, BASE, COEFF, RTU_NO, RES_PARA_INT1, RES_PARA_INT2, RES_PARA_INT3, RES_PARA_INT4, DESCRIPTION, FES_POINT_TP_NAME) SELECT - concat(background_x_fes_accuml.RTU_TAG,'.',background_x_fes_accuml.RTU_DOT_NO), fes_dev_info.LOCATION_ID, fes_dev_info.SUB_SYSTEM, background_x_fes_accuml.RTU_DOT_NO, background_x_fes_accuml.RTU_TAG, fes_dev_info.TAG_NAME,background_x_fes_accuml.RTU_DOT_NO, '', '', '', '0', '1', fes_rtu_para.RTU_NO, background_x_fes_accuml.RTU_RES_PARA_INT1, background_x_fes_accuml.RTU_RES_PARA_INT2, background_x_fes_accuml.RTU_RES_PARA_INT3, background_x_fes_accuml.RTU_RES_PARA_INT4, background_x_fes_accuml.RTU_DOT_DESC, '' - FROM background_x_fes_accuml , fes_rtu_para ,fes_dev_info WHERE - background_x_fes_accuml.RTU_DEV_TAG =concat(background_x_fes_accuml.RTU_TAG, '.', 'defaultDev' ) - AND fes_rtu_para.TAG_NAME=background_x_fes_accuml.RTU_TAG - AND fes_dev_info.TAG_NAME = background_x_fes_accuml.RTU_DEV_TAG - AND fes_dev_info.RTU_TAG = background_x_fes_accuml.RTU_TAG; - - INSERT INTO fes_analog ( - TAG_NAME, LOCATION_ID, SUB_SYSTEM, DEV_TAG, SEQ_NO, RTU_TAG, RTU_NO, DOT_NO, APP_TABLE_NAME, APP_TAG_NAME, APP_COLUMN_NAME, IS_FILTER, PERCENT, DEADBAND_TYPE, DEADBAND, ZEROBAND, BASE, COEFF, MAX_RANGE, MIN_RANGE, RES_PARA_INT1, RES_PARA_INT2, RES_PARA_INT3, RES_PARA_INT4, DESCRIPTION, FES_POINT_TP_NAME) SELECT - concat(background_x_fes_analog.RTU_TAG,'.',background_x_fes_analog.RTU_DOT_NO), fes_dev_info.LOCATION_ID, fes_dev_info.SUB_SYSTEM, fes_dev_info.TAG_NAME, background_x_fes_analog.RTU_DOT_NO,background_x_fes_analog.RTU_TAG,fes_rtu_para.RTU_NO, background_x_fes_analog.RTU_DOT_NO, '', '', '', '0', '0', '0', '0', '0', '0', '1', '65536', '0', background_x_fes_analog.RTU_RES_PARA_INT1, background_x_fes_analog.RTU_RES_PARA_INT2, background_x_fes_analog.RTU_RES_PARA_INT3, background_x_fes_analog.RTU_RES_PARA_INT4, background_x_fes_analog.RTU_DOT_DESC, '' - FROM background_x_fes_analog , fes_rtu_para ,fes_dev_info WHERE - background_x_fes_analog.RTU_DEV_TAG =concat(background_x_fes_analog.RTU_TAG, '.', 'defaultDev' ) - AND fes_rtu_para.TAG_NAME=background_x_fes_analog.RTU_TAG - AND fes_dev_info.TAG_NAME = background_x_fes_analog.RTU_DEV_TAG - AND fes_dev_info.RTU_TAG = background_x_fes_analog.RTU_TAG; - - INSERT INTO fes_digital ( - TAG_NAME, LOCATION_ID, SUB_SYSTEM, DEV_TAG, SEQ_NO, RTU_TAG, DOT_NO, APP_TABLE_NAME, APP_TAG_NAME, APP_COLUMN_NAME, FILTER_ERR, FILTER_DISTURB, DISTURB_TIME, REVERS, RTU_NO, RES_PARA_INT1, RES_PARA_INT2, RES_PARA_INT3, RES_PARA_INT4, DESCRIPTION, FES_POINT_TP_NAME) SELECT - concat(background_x_fes_digtal.RTU_TAG,'.',background_x_fes_digtal.RTU_DOT_NO), fes_dev_info.LOCATION_ID, fes_dev_info.SUB_SYSTEM, fes_dev_info.TAG_NAME, background_x_fes_digtal.RTU_DOT_NO,background_x_fes_digtal.RTU_TAG,background_x_fes_digtal.RTU_DOT_NO, '', '', '', '1', '1', '0', '0', fes_rtu_para.RTU_NO, background_x_fes_digtal.RTU_RES_PARA_INT1, background_x_fes_digtal.RTU_RES_PARA_INT2, background_x_fes_digtal.RTU_RES_PARA_INT3, background_x_fes_digtal.RTU_RES_PARA_INT4, background_x_fes_digtal.RTU_DOT_DESC, '' - FROM background_x_fes_digtal , fes_rtu_para ,fes_dev_info WHERE - background_x_fes_digtal.RTU_DEV_TAG =concat(background_x_fes_digtal.RTU_TAG, '.', 'defaultDev' ) - AND fes_rtu_para.TAG_NAME=background_x_fes_digtal.RTU_TAG - AND fes_dev_info.TAG_NAME = background_x_fes_digtal.RTU_DEV_TAG - AND fes_dev_info.RTU_TAG = background_x_fes_digtal.RTU_TAG; - - INSERT INTO fes_mix ( - TAG_NAME, DESCRIPTION, LOCATION_ID, SUB_SYSTEM, RTU_TAG, RTU_NO, DOT_NO, DEV_TAG, SEQ_NO, APP_TABLE_NAME, APP_TAG_NAME, APP_COLUMN_NAME, BASE, COEFF, MAX_RANGE, MIN_RANGE, RES_PARA_INT1, RES_PARA_INT2, RES_PARA_INT3, RES_PARA_INT4, FES_POINT_TP_NAME) SELECT - concat(background_x_fes_mix.RTU_TAG,'.',background_x_fes_mix.RTU_DOT_NO), background_x_fes_mix.RTU_DOT_DESC, fes_dev_info.LOCATION_ID, fes_dev_info.SUB_SYSTEM, background_x_fes_mix.RTU_TAG,fes_dev_info.RTU_NO,background_x_fes_mix.RTU_DOT_NO, fes_dev_info.TAG_NAME, background_x_fes_mix.RTU_DOT_NO,'', '', '', '0', '1', '65536', '0', background_x_fes_mix.RTU_RES_PARA_INT1, background_x_fes_mix.RTU_RES_PARA_INT2, background_x_fes_mix.RTU_RES_PARA_INT3, background_x_fes_mix.RTU_RES_PARA_INT4, '' - FROM background_x_fes_mix , fes_rtu_para ,fes_dev_info WHERE - background_x_fes_mix.RTU_DEV_TAG =concat(background_x_fes_mix.RTU_TAG, '.', 'defaultDev' ) - AND fes_rtu_para.TAG_NAME=background_x_fes_mix.RTU_TAG - AND fes_dev_info.TAG_NAME = background_x_fes_mix.RTU_DEV_TAG - AND fes_dev_info.RTU_TAG = background_x_fes_mix.RTU_TAG; - - INSERT INTO fes_analog_ctrl ( - TAG_NAME, LOCATION_ID, SUB_SYSTEM, BASE, COEFF, MAX_RANGE, MIN_RANGE, RTU_NO, DEV_TAG, DOT_NO, RES_PARA_INT1, RES_PARA_INT2, RES_PARA_INT3, RES_PARA_INT4, SEQ_NO, RTU_TAG, DESCRIPTION, POINT_TP_NAME) SELECT - concat(background_x_fes_ana_ctrl.RTU_TAG,'.',background_x_fes_ana_ctrl.RTU_DOT_NO), fes_dev_info.LOCATION_ID, fes_dev_info.SUB_SYSTEM, '0', '1', '65536', '0', fes_rtu_para.RTU_NO,fes_dev_info.TAG_NAME,background_x_fes_ana_ctrl.RTU_DOT_NO, background_x_fes_ana_ctrl.RTU_RES_PARA_INT1,background_x_fes_ana_ctrl.RTU_RES_PARA_INT2,background_x_fes_ana_ctrl.RTU_RES_PARA_INT3,background_x_fes_ana_ctrl.RTU_RES_PARA_INT4,background_x_fes_ana_ctrl.RTU_DOT_NO,background_x_fes_ana_ctrl.RTU_TAG,background_x_fes_ana_ctrl.RTU_DOT_DESC,'' - FROM background_x_fes_ana_ctrl , fes_rtu_para ,fes_dev_info WHERE - background_x_fes_ana_ctrl.RTU_DEV_TAG =concat(background_x_fes_ana_ctrl.RTU_TAG, '.', 'defaultDev' ) - AND fes_rtu_para.TAG_NAME=background_x_fes_ana_ctrl.RTU_TAG - AND fes_dev_info.TAG_NAME = background_x_fes_ana_ctrl.RTU_DEV_TAG - AND fes_dev_info.RTU_TAG = background_x_fes_ana_ctrl.RTU_TAG; - - INSERT INTO fes_digital_ctrl ( - TAG_NAME, LOCATION_ID, SUB_SYSTEM, RTU_TAG, RTU_NO, DOT_NO, DEV_TAG, DESCRIPTION, REVERS, POINT_TP_NAME, SEQ_NO, RES_PARA_INT1, RES_PARA_INT2, RES_PARA_INT3, RES_PARA_INT4) SELECT - concat(background_x_fes_dig_ctrl.RTU_TAG,'.',background_x_fes_dig_ctrl.RTU_DOT_NO), fes_dev_info.LOCATION_ID, fes_dev_info.SUB_SYSTEM, background_x_fes_dig_ctrl.RTU_TAG,fes_rtu_para.RTU_NO, background_x_fes_dig_ctrl.RTU_DOT_NO,fes_dev_info.TAG_NAME,background_x_fes_dig_ctrl.RTU_DOT_DESC,'0', '', background_x_fes_dig_ctrl.RTU_DOT_NO,background_x_fes_dig_ctrl.RTU_RES_PARA_INT1,background_x_fes_dig_ctrl.RTU_RES_PARA_INT2,background_x_fes_dig_ctrl.RTU_RES_PARA_INT3,background_x_fes_dig_ctrl.RTU_RES_PARA_INT4 - FROM background_x_fes_dig_ctrl , fes_rtu_para ,fes_dev_info WHERE - background_x_fes_dig_ctrl.RTU_DEV_TAG =concat(background_x_fes_dig_ctrl.RTU_TAG, '.', 'defaultDev' ) - AND fes_rtu_para.TAG_NAME=background_x_fes_dig_ctrl.RTU_TAG - AND fes_dev_info.TAG_NAME = background_x_fes_dig_ctrl.RTU_DEV_TAG - AND fes_dev_info.RTU_TAG = background_x_fes_dig_ctrl.RTU_TAG; - - INSERT INTO fes_mix_ctrl ( - TAG_NAME, LOCATION_ID, SUB_SYSTEM, RTU_TAG, RTU_NO, BASE, DESCRIPTION, DOT_NO, COEFF, MIN_RANGE, MAX_RANGE, RES_PARA_INT1, RES_PARA_INT2, RES_PARA_INT3, RES_PARA_INT4, SEQ_NO, POINT_TP_NAME, DEV_TAG) SELECT - concat(background_x_fes_mix_ctrl.RTU_TAG,'.',background_x_fes_mix_ctrl.RTU_DOT_NO), fes_dev_info.LOCATION_ID, fes_dev_info.SUB_SYSTEM, background_x_fes_mix_ctrl.RTU_TAG,fes_rtu_para.RTU_NO,'0', background_x_fes_mix_ctrl.RTU_DOT_DESC, background_x_fes_mix_ctrl.RTU_DOT_NO,'1', '0', '65536', background_x_fes_mix_ctrl.RTU_RES_PARA_INT1,background_x_fes_mix_ctrl.RTU_RES_PARA_INT2,background_x_fes_mix_ctrl.RTU_RES_PARA_INT3,background_x_fes_mix_ctrl.RTU_RES_PARA_INT4, background_x_fes_mix_ctrl.RTU_DOT_NO,'', fes_dev_info.TAG_NAME - FROM background_x_fes_mix_ctrl , fes_rtu_para ,fes_dev_info WHERE - background_x_fes_mix_ctrl.RTU_DEV_TAG =concat(background_x_fes_mix_ctrl.RTU_TAG, '.', 'defaultDev' ) - AND fes_rtu_para.TAG_NAME=background_x_fes_mix_ctrl.RTU_TAG - AND fes_dev_info.TAG_NAME = background_x_fes_mix_ctrl.RTU_DEV_TAG - AND fes_dev_info.RTU_TAG = background_x_fes_mix_ctrl.RTU_TAG; - #NOTE:默认设备处理完毕 - - #重新写入FES与后台的关系 直接写入基础属性表和map_to_fes表,通过该表的触发器写入联系 - #重新写入,先写acc,ana,dig,再写map_to_fes,ctrl表 - UPDATE accuml INNER JOIN background_x_fes_accuml - ON concat('accuml','.',accuml.TAG_NAME) = background_x_fes_accuml.BG_POINT_TAG - SET accuml.RTU_TAG = background_x_fes_accuml.RTU_TAG; - - UPDATE analog INNER JOIN background_x_fes_analog - ON concat('analog','.',analog.TAG_NAME) = background_x_fes_analog.BG_POINT_TAG - SET analog.RTU_TAG = background_x_fes_analog.RTU_TAG; - - UPDATE digital INNER JOIN background_x_fes_digtal - ON concat('digital','.',digital.TAG_NAME) = background_x_fes_digtal.BG_POINT_TAG - SET digital.RTU_TAG = background_x_fes_digtal.RTU_TAG; - - UPDATE mix INNER JOIN background_x_fes_mix - ON concat('mix','.',mix.TAG_NAME) = background_x_fes_mix.BG_POINT_TAG - SET mix.RTU_TAG = background_x_fes_mix.RTU_TAG; - - UPDATE accuml_map_to_fes INNER JOIN background_x_fes_accuml - ON accuml_map_to_fes.KEY_ID_TAG = background_x_fes_accuml.BG_POINT_TAG AND accuml_map_to_fes.RTU_TAG = background_x_fes_accuml.RTU_TAG - SET accuml_map_to_fes.DOT_NO = background_x_fes_accuml.RTU_DOT_NO; - - UPDATE analog_map_to_fes INNER JOIN background_x_fes_analog - ON analog_map_to_fes.KEY_ID_TAG = background_x_fes_analog.BG_POINT_TAG AND analog_map_to_fes.RTU_TAG = background_x_fes_analog.RTU_TAG - SET analog_map_to_fes.DOT_NO = background_x_fes_analog.RTU_DOT_NO; - - UPDATE digital_map_to_fes INNER JOIN background_x_fes_digtal - ON background_x_fes_digtal.BG_POINT_OFFSET = 1 AND digital_map_to_fes.KEY_ID_TAG = background_x_fes_digtal.BG_POINT_TAG - AND digital_map_to_fes.RTU_TAG = background_x_fes_digtal.RTU_TAG - SET digital_map_to_fes.DOT_NO1 = background_x_fes_digtal.RTU_DOT_NO; - - UPDATE digital_map_to_fes INNER JOIN background_x_fes_digtal - ON background_x_fes_digtal.BG_POINT_OFFSET = 2 AND digital_map_to_fes.KEY_ID_TAG = background_x_fes_digtal.BG_POINT_TAG - AND digital_map_to_fes.RTU_TAG = background_x_fes_digtal.RTU_TAG - SET digital_map_to_fes.DOT_NO2 = background_x_fes_digtal.RTU_DOT_NO; - - UPDATE digital_map_to_fes INNER JOIN background_x_fes_digtal - ON background_x_fes_digtal.BG_POINT_OFFSET = 3 AND digital_map_to_fes.KEY_ID_TAG = background_x_fes_digtal.BG_POINT_TAG - AND digital_map_to_fes.RTU_TAG = background_x_fes_digtal.RTU_TAG - SET digital_map_to_fes.DOT_NO3 = background_x_fes_digtal.RTU_DOT_NO; - - UPDATE digital_map_to_fes INNER JOIN background_x_fes_digtal - ON background_x_fes_digtal.BG_POINT_OFFSET = 4 AND digital_map_to_fes.KEY_ID_TAG = background_x_fes_digtal.BG_POINT_TAG - AND digital_map_to_fes.RTU_TAG = background_x_fes_digtal.RTU_TAG - SET digital_map_to_fes.DOT_NO4 = background_x_fes_digtal.RTU_DOT_NO; - - UPDATE digital_map_to_fes INNER JOIN background_x_fes_digtal - ON background_x_fes_digtal.BG_POINT_OFFSET = 5 AND digital_map_to_fes.KEY_ID_TAG = background_x_fes_digtal.BG_POINT_TAG - AND digital_map_to_fes.RTU_TAG = background_x_fes_digtal.RTU_TAG - SET digital_map_to_fes.DOT_NO5 = background_x_fes_digtal.RTU_DOT_NO; - - UPDATE mix_map_to_fes INNER JOIN background_x_fes_mix - ON mix_map_to_fes.KEY_ID_TAG = background_x_fes_mix.BG_POINT_TAG AND mix_map_to_fes.RTU_TAG = background_x_fes_mix.RTU_TAG - SET mix_map_to_fes.DOT_NO = background_x_fes_mix.RTU_DOT_NO; - - #写入ctrl表,注意此时background_x_fes__ctrl中的RTU必须和analog_control中的RTU保持一致,确保该点是同一个RTU - UPDATE analog_control INNER JOIN background_x_fes_ana_ctrl - ON analog_control.TAG_NAME = background_x_fes_ana_ctrl.BG_POINT_TAG AND analog_control.RTU_TAG = background_x_fes_ana_ctrl.RTU_TAG - SET analog_control.OFFSET_NO = background_x_fes_ana_ctrl.RTU_DOT_NO; - - UPDATE digital_control INNER JOIN background_x_fes_dig_ctrl - ON digital_control.TAG_NAME = background_x_fes_dig_ctrl.BG_POINT_TAG AND background_x_fes_dig_ctrl.BG_POINT_OFFSET = 1 - AND digital_control.RTU_TAG = background_x_fes_dig_ctrl.RTU_TAG - SET digital_control.OFFSET_NO1 = background_x_fes_dig_ctrl.RTU_DOT_NO; - - UPDATE digital_control INNER JOIN background_x_fes_dig_ctrl - ON digital_control.TAG_NAME = background_x_fes_dig_ctrl.BG_POINT_TAG AND background_x_fes_dig_ctrl.BG_POINT_OFFSET = 2 - AND digital_control.RTU_TAG = background_x_fes_dig_ctrl.RTU_TAG - SET digital_control.OFFSET_NO2 = background_x_fes_dig_ctrl.RTU_DOT_NO; - - UPDATE digital_control INNER JOIN background_x_fes_dig_ctrl - ON digital_control.TAG_NAME = background_x_fes_dig_ctrl.BG_POINT_TAG AND background_x_fes_dig_ctrl.BG_POINT_OFFSET = 3 - AND digital_control.RTU_TAG = background_x_fes_dig_ctrl.RTU_TAG - SET digital_control.OFFSET_NO3 = background_x_fes_dig_ctrl.RTU_DOT_NO; - - UPDATE digital_control INNER JOIN background_x_fes_dig_ctrl - ON digital_control.TAG_NAME = background_x_fes_dig_ctrl.BG_POINT_TAG AND background_x_fes_dig_ctrl.BG_POINT_OFFSET = 4 - AND digital_control.RTU_TAG = background_x_fes_dig_ctrl.RTU_TAG - SET digital_control.OFFSET_NO4 = background_x_fes_dig_ctrl.RTU_DOT_NO; - - UPDATE digital_control INNER JOIN background_x_fes_dig_ctrl - ON digital_control.TAG_NAME = background_x_fes_dig_ctrl.BG_POINT_TAG AND background_x_fes_dig_ctrl.BG_POINT_OFFSET = 5 - AND digital_control.RTU_TAG = background_x_fes_dig_ctrl.RTU_TAG - SET digital_control.OFFSET_NO5 = background_x_fes_dig_ctrl.RTU_DOT_NO; - - UPDATE mix_control INNER JOIN background_x_fes_mix_ctrl - ON mix_control.TAG_NAME = background_x_fes_mix_ctrl.BG_POINT_TAG AND mix_control.RTU_TAG = background_x_fes_mix_ctrl.RTU_TAG - SET mix_control.OFFSET_NO = background_x_fes_mix_ctrl.RTU_DOT_NO; - #写入完毕,下面为描述的处理 - - #可选,保持实例前置设备(非默认设备)和excel文件中的一致 - IF importFesPointDesc = 1 THEN - BEGIN - - UPDATE fes_accuml INNER JOIN background_x_fes_accuml - ON fes_accuml.TAG_NAME = concat(background_x_fes_accuml.RTU_TAG,'.',background_x_fes_accuml.RTU_DOT_NO) - AND fes_accuml.DEV_TAG <> concat(fes_accuml.RTU_TAG,'.','defaultDev') - SET fes_accuml.DESCRIPTION = background_x_fes_accuml.RTU_DOT_DESC ; - - UPDATE fes_analog INNER JOIN background_x_fes_analog - ON fes_analog.TAG_NAME = concat(background_x_fes_analog.RTU_TAG,'.',background_x_fes_analog.RTU_DOT_NO) - AND fes_analog.DEV_TAG <> concat(fes_analog.RTU_TAG,'.','defaultDev') - SET fes_analog.DESCRIPTION = background_x_fes_analog.RTU_DOT_DESC ; - - UPDATE fes_digital INNER JOIN background_x_fes_digtal - ON fes_digital.TAG_NAME = concat(background_x_fes_digtal.RTU_TAG,'.', background_x_fes_digtal.RTU_DOT_NO) - AND fes_digital.DEV_TAG <> concat(fes_digital.RTU_TAG,'.','defaultDev') - SET fes_digital.DESCRIPTION = background_x_fes_digtal.RTU_DOT_DESC ; - - UPDATE fes_mix INNER JOIN background_x_fes_mix - ON fes_mix.TAG_NAME = concat(background_x_fes_mix.RTU_TAG,'.', background_x_fes_mix.RTU_DOT_NO) - AND fes_mix.DEV_TAG <> concat(fes_mix.RTU_TAG,'.','defaultDev') - SET fes_mix.DESCRIPTION = background_x_fes_mix.RTU_DOT_DESC ; - - UPDATE fes_analog_ctrl INNER JOIN background_x_fes_ana_ctrl - ON fes_analog_ctrl.TAG_NAME = concat(background_x_fes_ana_ctrl.RTU_TAG,'.', background_x_fes_ana_ctrl.RTU_DOT_NO) - AND fes_analog_ctrl.DEV_TAG <> concat(fes_analog_ctrl.RTU_TAG,'.','defaultDev') - SET fes_analog_ctrl.DESCRIPTION = background_x_fes_ana_ctrl.RTU_DOT_DESC; - - UPDATE fes_digital_ctrl INNER JOIN background_x_fes_dig_ctrl - ON fes_digital_ctrl.TAG_NAME = concat(background_x_fes_dig_ctrl.RTU_TAG,'.',background_x_fes_dig_ctrl.RTU_DOT_NO) - AND fes_digital_ctrl.DEV_TAG <> concat(fes_digital_ctrl.RTU_TAG,'.','defaultDev') - SET fes_digital_ctrl.DESCRIPTION = background_x_fes_dig_ctrl.RTU_DOT_DESC; - - UPDATE fes_mix_ctrl INNER JOIN background_x_fes_mix_ctrl - ON fes_mix_ctrl.TAG_NAME = concat(background_x_fes_mix_ctrl.RTU_TAG,'.',background_x_fes_mix_ctrl.RTU_DOT_NO) - AND fes_mix_ctrl.DEV_TAG <> concat(fes_mix_ctrl.RTU_TAG,'.','defaultDev') - SET fes_mix_ctrl.DESCRIPTION = background_x_fes_mix_ctrl.RTU_DOT_DESC; - - END; - END IF; - - #把前置描述导入后台,检索map_to_fes表,查找联系 - IF fesDescToBG = 1 THEN - BEGIN - UPDATE (accuml INNER JOIN accuml_map_to_fes - ON accuml_map_to_fes.KEY_ID_TAG = concat('accuml','.',accuml.TAG_NAME) AND COALESCE(accuml_map_to_fes.RTU_TAG,'')<>'' AND COALESCE(accuml_map_to_fes.DOT_NO,'')<>'') - INNER JOIN fes_accuml ON fes_accuml.TAG_NAME = concat( accuml_map_to_fes.RTU_TAG ,'.', accuml_map_to_fes.DOT_NO) - SET accuml.DESCRIPTION = fes_accuml.DESCRIPTION; - - UPDATE (analog INNER JOIN analog_map_to_fes - ON analog_map_to_fes.KEY_ID_TAG = concat('analog','.',analog.TAG_NAME) AND COALESCE(analog_map_to_fes.RTU_TAG,'')<>'' AND COALESCE(analog_map_to_fes.DOT_NO,'')<>'') - INNER JOIN fes_analog ON fes_analog.TAG_NAME = concat(analog_map_to_fes.RTU_TAG ,'.', analog_map_to_fes.DOT_NO) - SET analog.DESCRIPTION = fes_analog.DESCRIPTION; - #更新mix的 - UPDATE (mix INNER JOIN mix_map_to_fes - ON mix_map_to_fes.KEY_ID_TAG = concat('mix','.',mix.TAG_NAME) AND COALESCE(mix_map_to_fes.RTU_TAG,'')<>'' AND COALESCE(mix_map_to_fes.DOT_NO,'')<>'') - INNER JOIN fes_mix ON fes_mix.TAG_NAME = concat(mix_map_to_fes.RTU_TAG ,'.', mix_map_to_fes.DOT_NO) - SET mix.DESCRIPTION = fes_mix.DESCRIPTION; - #更新dig的,以第一个点为准,其他点的描述不考虑 - UPDATE (digital INNER JOIN digital_map_to_fes - ON digital_map_to_fes.KEY_ID_TAG = concat('digtal','.',digital.TAG_NAME) AND COALESCE(digital_map_to_fes.RTU_TAG,'')<>'' AND COALESCE(digital_map_to_fes.DOT_NO1,'')<>'') - INNER JOIN fes_digital ON fes_digital.TAG_NAME = concat(digital_map_to_fes.RTU_TAG ,'.', digital_map_to_fes.DOT_NO1) - SET digital.DESCRIPTION = fes_digital.DESCRIPTION; - - END; - END IF; - - #把同步实时库的功能重新打开 - IF openTriggerInfo <> 1 THEN - UPDATE sys_trigger_flag SET FLAG_ID = 1; - END IF; - -END;; -DELIMITER ; - -drop procedure if exists importPsc3000; -DELIMITER ;; -CREATE DEFINER=`root`@`%` PROCEDURE `importPsc3000`(rtuTag varchar(64)) -body:BEGIN - /* - * 导入PSC3000的数据,数据在调用本存储过程前已经把excel表格中的数据存入PSC3000开头的表格中 - * 1.对于设备的处理,以excel表中设备ID和设备模板为判断基准, - 数据库中不存在该ID和模板一样的设备,则往数据库中增加该设备 - 对于数据库中存在,而excel表中不存在的设备,删除数据库中的设备. - 对于数据库中存在ID和模板与excel一样的设备,对设备的名称和TAG_NAME和描述,这三个字段进行更新 - 2.对于测点的处理,以设备ID和点名缩写为判断基准 - 对于转发信息表中存在,而数据库中不存在的测点,进行添加操作 - 对于转发信息表和数据库中都存在的测点,进行更新操作,更新字段规约参数1,点描述,变比系数,修正值,值描述文件(定值) - * 遥控由于没有点名缩写,所以使用描述为判断基准 - */ - DECLARE count1 int DEFAULT 0; - DECLARE count2 int DEFAULT 0; - - IF COALESCE(rtuTag,'') = '' THEN LEAVE body; - END IF; - - CREATE TEMPORARY TABLE IF NOT EXISTS tmpImportPsc3000Tbl( - TAG_NAME varchar(64), - DEV_ID decimal(10,0), - SHORT_NAME varchar(64), - SEQ_NO decimal(10,0) - ); - DELETE FROM tmpImportPsc3000Tbl; - - CREATE TEMPORARY TABLE IF NOT EXISTS tmpImportPsc3000ForAdd( - DEV_ID decimal(10,0), - SHORT_NAME varchar(64), - SEQ_NO decimal(10,0) - ); - DELETE FROM tmpImportPsc3000ForAdd; - - #删除数据库中多余的设备 - DELETE FROM fes_dev_info WHERE RTU_TAG = rtuTag AND NOT EXISTS - ( - SELECT psc3000_dev.DEV_ID FROM psc3000_dev - WHERE psc3000_dev.DEV_ID = fes_dev_info.DEV_ID - AND psc3000_dev.DEV_MODEL = fes_dev_info.DEV_TP_NAME - ); - - #更新两边都存在的设备 - UPDATE fes_dev_info INNER JOIN psc3000_dev - ON fes_dev_info.RTU_TAG = rtuTag - AND fes_dev_info.DEV_ID = psc3000_dev.DEV_ID - AND fes_dev_info.DEV_TP_NAME = psc3000_dev.DEV_MODEL - SET fes_dev_info.TAG_NAME = concat(rtuTag,'.',psc3000_dev.TAG_NAME), - fes_dev_info.DEV_NAME = psc3000_dev.TAG_NAME, - fes_dev_info.DEV_DESC = psc3000_dev.DESCRIPTION; - - #筛选出要插入的设备 - DELETE FROM tmpImportPsc3000Tbl; - - INSERT INTO tmpImportPsc3000Tbl (TAG_NAME,DEV_ID) - SELECT psc3000_dev.DEV_MODEL,psc3000_dev.DEV_ID FROM psc3000_dev WHERE NOT EXISTS - ( - SELECT fes_dev_info.TAG_NAME FROM fes_dev_info - WHERE fes_dev_info.RTU_TAG = rtuTag - AND fes_dev_info.DEV_ID = psc3000_dev.DEV_ID - AND fes_dev_info.DEV_TP_NAME = psc3000_dev.DEV_MODEL - ); - - INSERT INTO fes_dev_info - (TAG_NAME, DEV_NAME, LOCATION_ID, SUB_SYSTEM, DEV_ID, DEV_TYPE_ID, RTU_TAG,RTU_NO, DEV_DESC, DEV_TP_NAME ) SELECT - concat(rtuTag,'.',psc3000_dev.TAG_NAME),psc3000_dev.TAG_NAME,fes_rtu_para.LOCATION_ID,fes_rtu_para.SUB_SYSTEM,psc3000_dev.DEV_ID,fes_dev_temp_def.DEV_TYPE_ID,rtuTag, fes_rtu_para.RTU_NO,psc3000_dev.DESCRIPTION,psc3000_dev.DEV_MODEL - FROM tmpImportPsc3000Tbl,fes_dev_temp_def,psc3000_dev,fes_rtu_para - WHERE tmpImportPsc3000Tbl.TAG_NAME = fes_dev_temp_def.TAG_NAME - AND tmpImportPsc3000Tbl.DEV_ID = psc3000_dev.DEV_ID - AND tmpImportPsc3000Tbl.TAG_NAME = psc3000_dev.DEV_MODEL - AND fes_rtu_para.TAG_NAME = rtuTag; - - #测点处理 - #更新双方都存在的测点,系数和基值是否更改还需确定,这里先不更改,要更改可以在update语句中添加即可 - #acc - DELETE FROM tmpImportPsc3000Tbl; - - INSERT INTO tmpImportPsc3000Tbl (TAG_NAME,DEV_ID,SHORT_NAME) - SELECT fes_accuml.TAG_NAME,psc3000_acc.DEV_ID, psc3000_acc.TAG_NAME - FROM fes_accuml,psc3000_dev,psc3000_acc - WHERE fes_accuml.TAG_NAME LIKE concat(rtuTag,'%') - AND fes_accuml.DEV_TAG = concat(rtuTag,'.',psc3000_dev.TAG_NAME) - AND psc3000_dev.DEV_ID = psc3000_acc.DEV_ID - AND fes_accuml.FES_POINT_TP_NAME = concat(psc3000_dev.DEV_MODEL,'.',psc3000_acc.TAG_NAME); - - UPDATE ( tmpImportPsc3000Tbl INNER JOIN fes_accuml ON tmpImportPsc3000Tbl.TAG_NAME = fes_accuml.TAG_NAME ) - INNER JOIN psc3000_acc ON tmpImportPsc3000Tbl.DEV_ID = psc3000_acc.DEV_ID - AND tmpImportPsc3000Tbl.SHORT_NAME = psc3000_acc.TAG_NAME - SET fes_accuml.DESCRIPTION = psc3000_acc.DESCRIPTION, - fes_accuml.RES_PARA_INT1 = psc3000_acc.REMOTE_NO, - fes_accuml.COEFF = psc3000_acc.RATIO; - - #添加数据库中不存在的测点,一般来说不需要添加,出现添加的情况是因为前置模板导入前和导入后不一致才会造成 - SELECT count(*) INTO count1 FROM tmpImportPsc3000Tbl; - SELECT count(*) INTO count2 FROM psc3000_acc; - #更新的记录数少于转发信息表的数量,需要添加 - IF count1 < count2 THEN - BEGIN - DELETE FROM tmpImportPsc3000ForAdd; - - INSERT INTO tmpImportPsc3000ForAdd (DEV_ID, SHORT_NAME) - SELECT psc3000_acc.DEV_ID,psc3000_acc.TAG_NAME - FROM psc3000_acc LEFT JOIN tmpImportPsc3000Tbl - ON psc3000_acc.DEV_ID = tmpImportPsc3000Tbl.DEV_ID AND psc3000_acc.TAG_NAME = tmpImportPsc3000Tbl.SHORT_NAME - WHERE tmpImportPsc3000Tbl.DEV_ID IS NULL; - - INSERT INTO fes_accuml( - TAG_NAME, LOCATION_ID, SUB_SYSTEM, DOT_NO, RTU_TAG, DEV_TAG, SEQ_NO, APP_TABLE_NAME, APP_TAG_NAME, APP_COLUMN_NAME, BASE, COEFF, RTU_NO, RES_PARA_INT1, RES_PARA_INT2, RES_PARA_INT3,RES_PARA_INT4, DESCRIPTION, FES_POINT_TP_NAME, PATH61850,POSITION61850) SELECT - concat(rtuTag, '.' , getMaxRtuDotNo(rtuTag,getFesPointType('FES_ACC'))), fes_rtu_para.LOCATION_ID ,fes_rtu_para.SUB_SYSTEM ,getMaxRtuDotNo(rtuTag,getFesPointType('FES_ACC')), rtuTag, concat(rtuTag,'.',psc3000_dev.TAG_NAME), getMaxDefaultDevSeqNo(concat(rtuTag,'.',psc3000_dev.TAG_NAME),getFesPointType('FES_ACC')), '', '', '', '0', psc3000_acc.RATIO, fes_rtu_para.RTU_NO , psc3000_acc.REMOTE_NO, 0, 0, 0, psc3000_acc.DESCRIPTION , '', '', 0 - FROM tmpImportPsc3000ForAdd,psc3000_acc,psc3000_dev, fes_rtu_para - WHERE tmpImportPsc3000ForAdd.DEV_ID = psc3000_acc.DEV_ID - AND tmpImportPsc3000ForAdd.SHORT_NAME = psc3000_acc.TAG_NAME - AND psc3000_acc.DEV_ID = psc3000_dev.DEV_ID - AND fes_rtu_para.TAG_NAME = rtuTag - ; - - END; - END IF; - - #ana - DELETE FROM tmpImportPsc3000Tbl; - INSERT INTO tmpImportPsc3000Tbl (TAG_NAME,DEV_ID,SHORT_NAME) - SELECT fes_analog.TAG_NAME,psc3000_ana.DEV_ID, psc3000_ana.TAG_NAME - FROM fes_analog,psc3000_dev,psc3000_ana - WHERE fes_analog.TAG_NAME LIKE concat(rtuTag,'%') - AND fes_analog.DEV_TAG = concat(rtuTag,'.',psc3000_dev.TAG_NAME) - AND psc3000_dev.DEV_ID = psc3000_ana.DEV_ID - AND fes_analog.FES_POINT_TP_NAME = concat(psc3000_dev.DEV_MODEL,'.',psc3000_ana.TAG_NAME); - - UPDATE ( tmpImportPsc3000Tbl INNER JOIN fes_analog ON tmpImportPsc3000Tbl.TAG_NAME = fes_analog.TAG_NAME ) - INNER JOIN psc3000_ana ON tmpImportPsc3000Tbl.DEV_ID = psc3000_ana.DEV_ID - AND tmpImportPsc3000Tbl.SHORT_NAME = psc3000_ana.TAG_NAME - SET fes_analog.DESCRIPTION = psc3000_ana.DESCRIPTION, - fes_analog.RES_PARA_INT1 = psc3000_ana.REMOTE_NO, - fes_analog.COEFF = psc3000_ana.RATIO; - - #添加数据库中不存在的测点,一般来说不需要添加,出现添加的情况是因为前置模板导入前和导入后不一致才会造成 - SELECT count(*) INTO count1 FROM tmpImportPsc3000Tbl; - SELECT count(*) INTO count2 FROM psc3000_ana; - #更新的记录数少于转发信息表的数量,需要添加 - IF count1 < count2 THEN - BEGIN - DELETE FROM tmpImportPsc3000ForAdd; - - INSERT INTO tmpImportPsc3000ForAdd (DEV_ID, SHORT_NAME) - SELECT psc3000_ana.DEV_ID,psc3000_ana.TAG_NAME - FROM psc3000_ana LEFT JOIN tmpImportPsc3000Tbl - ON psc3000_ana.DEV_ID = tmpImportPsc3000Tbl.DEV_ID AND psc3000_ana.TAG_NAME = tmpImportPsc3000Tbl.SHORT_NAME - WHERE tmpImportPsc3000Tbl.DEV_ID IS NULL; - - INSERT INTO fes_analog( - TAG_NAME, LOCATION_ID, SUB_SYSTEM, DEV_TAG, SEQ_NO, RTU_TAG, RTU_NO, DOT_NO, APP_TABLE_NAME, APP_TAG_NAME, APP_COLUMN_NAME, IS_FILTER, PERCENT, DEADBAND_TYPE, DEADBAND, ZEROBAND, BASE, COEFF, MAX_RANGE, MIN_RANGE, RES_PARA_INT1, RES_PARA_INT2,RES_PARA_INT3, RES_PARA_INT4, DESCRIPTION, FES_POINT_TP_NAME , PATH61850,POSITION61850) SELECT - concat(rtuTag, '.' , getMaxRtuDotNo(rtuTag,getFesPointType('FES_ANA'))), fes_rtu_para.LOCATION_ID ,fes_rtu_para.SUB_SYSTEM , concat(rtuTag,'.',psc3000_dev.TAG_NAME),getMaxDefaultDevSeqNo(concat(rtuTag,'.',psc3000_dev.TAG_NAME),getFesPointType('FES_ANA') ), rtuTag, fes_rtu_para.RTU_NO,getMaxRtuDotNo(rtuTag,getFesPointType('FES_ANA')),'', '', '', '0', '0', '0', '0', '0', '0', psc3000_ana.RATIO, '65536', '0', psc3000_ana.REMOTE_NO, 0, 0, 0, psc3000_ana.DESCRIPTION, '', '', 0 - FROM tmpImportPsc3000ForAdd,psc3000_ana,psc3000_dev, fes_rtu_para - WHERE tmpImportPsc3000ForAdd.DEV_ID = psc3000_ana.DEV_ID - AND tmpImportPsc3000ForAdd.SHORT_NAME = psc3000_ana.TAG_NAME - AND psc3000_ana.DEV_ID = psc3000_dev.DEV_ID - AND fes_rtu_para.TAG_NAME = rtuTag - ; - - END; - END IF; - - #dig - DELETE FROM tmpImportPsc3000Tbl; - INSERT INTO tmpImportPsc3000Tbl (TAG_NAME,DEV_ID,SHORT_NAME) - SELECT fes_digital.TAG_NAME,psc3000_dig.DEV_ID, psc3000_dig.TAG_NAME - FROM fes_digital,psc3000_dev,psc3000_dig - WHERE fes_digital.TAG_NAME LIKE concat(rtuTag,'%') - AND fes_digital.DEV_TAG = concat(rtuTag,'.',psc3000_dev.TAG_NAME) - AND psc3000_dev.DEV_ID = psc3000_dig.DEV_ID - AND fes_digital.FES_POINT_TP_NAME = concat(psc3000_dev.DEV_MODEL,'.',psc3000_dig.TAG_NAME); - - UPDATE ( tmpImportPsc3000Tbl INNER JOIN fes_digital ON tmpImportPsc3000Tbl.TAG_NAME = fes_digital.TAG_NAME ) - INNER JOIN psc3000_dig ON tmpImportPsc3000Tbl.DEV_ID = psc3000_dig.DEV_ID - AND tmpImportPsc3000Tbl.SHORT_NAME = psc3000_dig.TAG_NAME - SET fes_digital.DESCRIPTION = psc3000_dig.DESCRIPTION, - fes_digital.RES_PARA_INT1 = psc3000_dig.REMOTE_NO; - - #添加数据库中不存在的测点,一般来说不需要添加,出现添加的情况是因为前置模板导入前和导入后不一致才会造成 - SELECT count(*) INTO count1 FROM tmpImportPsc3000Tbl; - SELECT count(*) INTO count2 FROM psc3000_dig; - #更新的记录数少于转发信息表的数量,需要添加 - IF count1 < count2 THEN - BEGIN - DELETE FROM tmpImportPsc3000ForAdd; - - INSERT INTO tmpImportPsc3000ForAdd (DEV_ID, SHORT_NAME) - SELECT psc3000_dig.DEV_ID,psc3000_dig.TAG_NAME - FROM psc3000_dig LEFT JOIN tmpImportPsc3000Tbl - ON psc3000_dig.DEV_ID = tmpImportPsc3000Tbl.DEV_ID AND psc3000_dig.TAG_NAME = tmpImportPsc3000Tbl.SHORT_NAME - WHERE tmpImportPsc3000Tbl.DEV_ID IS NULL; - - INSERT INTO fes_digital( - TAG_NAME, LOCATION_ID, SUB_SYSTEM, DEV_TAG, SEQ_NO, RTU_TAG, DOT_NO, APP_TABLE_NAME, APP_TAG_NAME, APP_COLUMN_NAME, FILTER_ERR, FILTER_DISTURB, DISTURB_TIME, REVERS, RTU_NO, RES_PARA_INT1, RES_PARA_INT2, RES_PARA_INT3, RES_PARA_INT4, DESCRIPTION, FES_POINT_TP_NAME, PATH61850,POSITION61850) SELECT - concat(rtuTag, '.' , getMaxRtuDotNo(rtuTag,getFesPointType('FES_DIG'))), fes_rtu_para.LOCATION_ID ,fes_rtu_para.SUB_SYSTEM , concat(rtuTag,'.',psc3000_dev.TAG_NAME),getMaxDefaultDevSeqNo(concat(rtuTag,'.',psc3000_dev.TAG_NAME),getFesPointType('FES_DIG') ), rtuTag, getMaxRtuDotNo(rtuTag,getFesPointType('FES_DIG')),'', '', '', '1', '1', '0', '0', fes_rtu_para.RTU_NO,psc3000_dig.REMOTE_NO, 0, 0, 0, psc3000_dig.DESCRIPTION,'', '', 0 - FROM tmpImportPsc3000ForAdd,psc3000_dig,psc3000_dev, fes_rtu_para - WHERE tmpImportPsc3000ForAdd.DEV_ID = psc3000_dig.DEV_ID - AND tmpImportPsc3000ForAdd.SHORT_NAME = psc3000_dig.TAG_NAME - AND psc3000_dig.DEV_ID = psc3000_dev.DEV_ID - AND fes_rtu_para.TAG_NAME = rtuTag - ; - - END; - END IF; - - - #dig_ctrl,使用描述为判断基准 - DELETE FROM tmpImportPsc3000Tbl; - INSERT INTO tmpImportPsc3000Tbl (TAG_NAME,DEV_ID,SHORT_NAME) - SELECT fes_digital_ctrl.TAG_NAME,psc3000_dig_ctrl.DEV_ID, psc3000_dig_ctrl.DESCRIPTION - FROM fes_digital_ctrl,psc3000_dev,psc3000_dig_ctrl - WHERE fes_digital_ctrl.TAG_NAME LIKE concat(rtuTag,'%') - AND fes_digital_ctrl.DEV_TAG = concat(rtuTag,'.',psc3000_dev.TAG_NAME) - AND psc3000_dev.DEV_ID = psc3000_dig_ctrl.DEV_ID - AND fes_digital_ctrl.DESCRIPTION = psc3000_dig_ctrl.DESCRIPTION; - - UPDATE ( tmpImportPsc3000Tbl INNER JOIN fes_digital_ctrl ON tmpImportPsc3000Tbl.TAG_NAME = fes_digital_ctrl.TAG_NAME ) - INNER JOIN psc3000_dig_ctrl ON tmpImportPsc3000Tbl.DEV_ID = psc3000_dig_ctrl.DEV_ID - AND tmpImportPsc3000Tbl.SHORT_NAME = psc3000_dig_ctrl.DESCRIPTION - SET fes_digital_ctrl.DESCRIPTION = psc3000_dig_ctrl.DESCRIPTION, - fes_digital_ctrl.RES_PARA_INT1 = psc3000_dig_ctrl.REMOTE_NO; - - #添加数据库中不存在的测点,一般来说不需要添加,出现添加的情况是因为前置模板导入前和导入后不一致才会造成 - SELECT count(*) INTO count1 FROM tmpImportPsc3000Tbl; - SELECT count(*) INTO count2 FROM psc3000_dig_ctrl; - #更新的记录数少于转发信息表的数量,需要添加 - IF count1 < count2 THEN - BEGIN - DELETE FROM tmpImportPsc3000ForAdd; - - INSERT INTO tmpImportPsc3000ForAdd (DEV_ID, SHORT_NAME) - SELECT psc3000_dig_ctrl.DEV_ID,psc3000_dig_ctrl.DESCRIPTION - FROM psc3000_dig_ctrl LEFT JOIN tmpImportPsc3000Tbl - ON psc3000_dig_ctrl.DEV_ID = tmpImportPsc3000Tbl.DEV_ID AND psc3000_dig_ctrl.DESCRIPTION = tmpImportPsc3000Tbl.SHORT_NAME - WHERE tmpImportPsc3000Tbl.DEV_ID IS NULL; - - INSERT INTO fes_digital_ctrl( - TAG_NAME, LOCATION_ID, SUB_SYSTEM, RTU_TAG, RTU_NO, DOT_NO, DEV_TAG, DESCRIPTION, REVERS, POINT_TP_NAME, SEQ_NO, RES_PARA_INT1, RES_PARA_INT2, RES_PARA_INT3, RES_PARA_INT4, PATH61850,POSITION61850, YK_SELECT61850, YK_EXE61850, YK_CANCLE61850, YK_DOUBLE_SELECT61850, YK_DOUBLE_EXE61850, YK_DOUBLE_CANCLE61850, PULSE_TIME)SELECT - concat(rtuTag, '.' , getMaxRtuDotNo(rtuTag,getFesPointType('FES_DIG_CTRL'))), fes_rtu_para.LOCATION_ID ,fes_rtu_para.SUB_SYSTEM , rtuTag, fes_rtu_para.RTU_NO,getMaxRtuDotNo(rtuTag,getFesPointType('FES_DIG_CTRL')), concat(rtuTag,'.',psc3000_dev.TAG_NAME),psc3000_dig_ctrl.DESCRIPTION,'0' , '', getMaxDefaultDevSeqNo(concat(rtuTag,'.',psc3000_dev.TAG_NAME),getFesPointType('FES_DIG_CTRL') ), psc3000_dig_ctrl.REMOTE_NO, 0, 0, 0, '', 0, '', '', '', '', '', '', 0 - FROM tmpImportPsc3000ForAdd,psc3000_dig_ctrl,psc3000_dev, fes_rtu_para - WHERE tmpImportPsc3000ForAdd.DEV_ID = psc3000_dig_ctrl.DEV_ID - AND tmpImportPsc3000ForAdd.SHORT_NAME = psc3000_dig_ctrl.DESCRIPTION - AND psc3000_dig_ctrl.DEV_ID = psc3000_dev.DEV_ID - AND fes_rtu_para.TAG_NAME = rtuTag - ; - - END; - END IF; - - - #DZ定值 - DELETE FROM tmpImportPsc3000Tbl; - INSERT INTO tmpImportPsc3000Tbl (TAG_NAME,DEV_ID,SEQ_NO) - SELECT fes_const.TAG_NAME,psc3000_const.DEV_ID, psc3000_const.SEQ_NO - FROM fes_const,psc3000_dev,psc3000_const - WHERE fes_const.TAG_NAME LIKE concat(rtuTag,'%') - AND fes_const.DEV_TAG = concat(rtuTag,'.',psc3000_dev.TAG_NAME) - AND psc3000_dev.DEV_ID = psc3000_const.DEV_ID - AND fes_const.SEQ_NO = psc3000_const.SEQ_NO; - - UPDATE ( tmpImportPsc3000Tbl INNER JOIN fes_const ON tmpImportPsc3000Tbl.TAG_NAME = fes_const.TAG_NAME ) - INNER JOIN psc3000_const ON tmpImportPsc3000Tbl.DEV_ID = psc3000_const.DEV_ID - AND tmpImportPsc3000Tbl.SEQ_NO = psc3000_const.SEQ_NO - SET fes_const.DESCRIPTION = psc3000_const.DESCRIPTION, - fes_const.VALUE_RATIO = psc3000_const.RATIO, - fes_const.VALUE_ADDED = psc3000_const.REVISE, - fes_const.VALUE_TEXT = psc3000_const.VALUE_TEXT - ; - - #添加数据库中不存在的测点,一般来说不需要添加,出现添加的情况是因为前置模板导入前和导入后不一致才会造成 - SELECT count(*) INTO count1 FROM tmpImportPsc3000Tbl; - SELECT count(*) INTO count2 FROM psc3000_const; - #更新的记录数少于转发信息表的数量,需要添加 - IF count1 < count2 THEN - BEGIN - DELETE FROM tmpImportPsc3000ForAdd; - - INSERT INTO tmpImportPsc3000ForAdd (DEV_ID, SEQ_NO) - SELECT psc3000_const.DEV_ID,psc3000_const.SEQ_NO - FROM psc3000_const LEFT JOIN tmpImportPsc3000Tbl - ON psc3000_const.DEV_ID = tmpImportPsc3000Tbl.DEV_ID AND psc3000_const.SEQ_NO = tmpImportPsc3000Tbl.SEQ_NO - WHERE tmpImportPsc3000Tbl.DEV_ID IS NULL; - - INSERT INTO fes_const( - TAG_NAME, DESCRIPTION, GROUP_NO, RTU_TAG, RTU_NO, DOT_NO, SEQ_NO, SUB_SYSTEM, LOCATION_ID, DEV_TAG, VALUE, VALUE_TYPE, UNIT_ID, VALUE_TEXT, VALUE_RATIO, VALUE_ADDED, VALUE_MAX, VALUE_MIN, VALUE_DEFAULT, VALUE_VERIFY, EX_INFO, FES_POINT_TP_NAME, PATH61850, POSITION61850) SELECT - concat(rtuTag, '.' , getMaxRtuDotNo(rtuTag,getFesPointType('FES_CONST'))), psc3000_const.DESCRIPTION ,0 , rtuTag, fes_rtu_para.RTU_NO, getMaxRtuDotNo(rtuTag,getFesPointType('FES_CONST')), getMaxDefaultDevSeqNo(concat(rtuTag,'.',psc3000_dev.TAG_NAME),getFesPointType('FES_CONST') ),fes_rtu_para.SUB_SYSTEM,fes_rtu_para.LOCATION_ID, concat(rtuTag,'.',psc3000_dev.TAG_NAME), 0, 0, 0, psc3000_const.VALUE_TEXT,psc3000_const.RATIO,psc3000_const.REVISE, 0, 0, 0, 0, '', '', '', 0 - FROM tmpImportPsc3000ForAdd,psc3000_const,psc3000_dev, fes_rtu_para - WHERE tmpImportPsc3000ForAdd.DEV_ID = psc3000_const.DEV_ID - AND tmpImportPsc3000ForAdd.SEQ_NO = psc3000_const.SEQ_NO - AND psc3000_const.DEV_ID = psc3000_dev.DEV_ID - AND fes_rtu_para.TAG_NAME = rtuTag - ; - - END; - END IF; - - - -END;; -DELIMITER ; - -drop procedure if exists importPsc3000ByPlugin; -DELIMITER ;; -CREATE DEFINER=`root`@`%` PROCEDURE `importPsc3000ByPlugin`(rtuTag varchar(64),regionId decimal(10,0)) -body:BEGIN - /* - * 导入PSC3000数据通过构建套件的形式 - * rtuTag 要导入的RTU - * regionId 责任区ID - * PSC3000_plugin表中存着要导入的套件 - * PSC3000_DEV 表中存着导入的前置设备 - * PSC3000_acc,ana,dig,mix,dig_ctrl,const存着对应的测点数据 - */ - DECLARE locationTag varchar(64) DEFAULT ''; - DECLARE locationId decimal(10,0) DEFAULT 0; - DECLARE subsystemId decimal(10,0) DEFAULT 0; - DECLARE rtuNo decimal(10,0) DEFAULT 0; - - DECLARE devGrpTag varchar(64) DEFAULT ''; - DECLARE pluginName varchar(64) DEFAULT ''; - DECLARE tempName varchar(64) DEFAULT ''; - DECLARE fesTempName varchar(64) DEFAULT ''; - - DECLARE fesDevTag varchar(64) DEFAULT ''; - - DECLARE hasDone int DEFAULT 0; - DECLARE myDevTag varchar(64) DEFAULT ''; - - #在此游标中临时表的第一列是套件名,第二列是设备组名,游标获取4列,分别是设备组,套件名,后台模板名,前置模板名 - DECLARE cur_1 CURSOR - FOR - SELECT DEV_GRP,temp_plugin_fes_dev_map.PLUGIN_NAME,TEMP_NAME,FES_TEMP_NAME - FROM tmpImportPsc3000PluginTbl,temp_plugin_fes_dev_map - WHERE tmpImportPsc3000PluginTbl.PLUGIN_NAME = temp_plugin_fes_dev_map.PLUGIN_NAME; - - - DECLARE cur_2 CURSOR - FOR - SELECT PLUGIN_NAME - FROM tmpImportPsc3000PluginTbl WHERE tmpImportPsc3000PluginTbl.DEV_GRP = ''; - - DECLARE CONTINUE HANDLER FOR NOT FOUND SET hasDone = 1; - - SELECT fes_rtu_para.LOCATION_ID,SUB_SYSTEM,RTU_NO,sys_model_location_info.TAG_NAME INTO locationId,subsystemId,rtuNo,locationTag - FROM fes_rtu_para,sys_model_location_info - WHERE fes_rtu_para.TAG_NAME = rtuTag AND fes_rtu_para.LOCATION_ID = sys_model_location_info.LOCATION_ID; - - #清空前置与后台的数据 - #DELETE FROM fes_dev_info WHERE RTU_TAG = rtuTag; - #DELETE dev_group FROM dev_group,psc3000_plugin WHERE dev_group.TAG_NAME = concat(locationTag,'.',psc3000_plugin.DEV_GROUP_TAG); - - #创建临时表, - CREATE TEMPORARY TABLE IF NOT EXISTS tmpImportPsc3000PluginTbl( - PLUGIN_NAME varchar(64) NOT NULL, - DEV_GRP varchar(64) NOT NULL - ); - DELETE FROM tmpImportPsc3000PluginTbl; - - #用于第十一步的临时表 - CREATE TEMPORARY TABLE IF NOT EXISTS tmpPsc3000PluginFesTempTbl( - TAG_NAME varchar(64) NOT NULL, - FES_TEMP varchar(64) NOT NULL, - DEV_ID decimal(10,0) - ); - DELETE FROM tmpPsc3000PluginFesTempTbl; - - #第一步,创建设备组 - INSERT INTO DEV_GROUP - (DESCRIPTION, GROUP_TAG,IS_SUMMARY,LOCATION_ID,PGROUP_TAG_NAME,REGION_ID,SUB_SYSTEM,SUMMARY_STATUS,SUMMARY_VALUE,TAG_NAME,RTU_NO) - SELECT - psc3000_plugin.DEV_GROUP_DESC,'', '0', locationId, '', regionId,subsystemId,'0', '0', concat(locationTag,'.',psc3000_plugin.DEV_GROUP_TAG),rtuNo - FROM psc3000_plugin GROUP BY psc3000_plugin.DEV_GROUP_TAG; - - #第二步 实例化后台和前置的设备,对于后台设备 一个设备组对应一个套件 - DELETE FROM tmpImportPsc3000PluginTbl; - #此时临时表中第一列是套件名,第二列是设备组名 - INSERT INTO tmpImportPsc3000PluginTbl (PLUGIN_NAME , DEV_GRP) - SELECT PLUGIN_NAME,DEV_GROUP_TAG - FROM psc3000_plugin GROUP BY PLUGIN_NAME,DEV_GROUP_TAG; - - INSERT INTO DEV_INFO - (TAG_NAME, DESCRIPTION, DEV_NAME, LOCATION_ID, SUB_SYSTEM, GROUP_TAG_NAME, VOL_LEVEL_ID, DEV_TYPE, GRAY, CONTRAST, QCOLOR, VALUE, STATUS, NODE_NO1, NODE_NO2, NODE_NO3, NODE_NO4, NODE_NO5, NODE_NO6, NODE_NO7, NODE_NO8, NODE_NO9, NODE_NO10, REGION_ID, OPT_HANDOVER_GROUP, IS_SUMMARY, SUMMARY_VALUE, SUMMARY_STATUS, DEV_TP_NAME) - SELECT - concat(locationTag,'.',tblA.DEV_GRP,'_',TEMP_NAME),DESCRIPTION, '', locationId, subsystemId,concat(locationTag,'.',tblA.DEV_GRP), '0', DEV_TYPE_ID,'0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', regionId, '', '0', '0', '0', TEMP_NAME - FROM tmpImportPsc3000PluginTbl AS tblA,temp_plugin_dev_map,dev_temp_def - WHERE tblA.PLUGIN_NAME = temp_plugin_dev_map.PLUGIN_NAME AND temp_plugin_dev_map.TEMP_NAME = dev_temp_def.TAG_NAME; - - #实例化前置设备,以psc3000_dev中指定的设备为基准,模板以套件中的为准 - INSERT INTO tmpPsc3000PluginFesTempTbl(TAG_NAME,FES_TEMP,DEV_ID) - SELECT TAG_NAME,DEV_MODEL,DEV_ID - FROM psc3000_dev; - - UPDATE psc3000_dev LEFT JOIN psc3000_plugin ON DEV_ID = FES_DEV_INST_ID - SET psc3000_dev.DEV_MODEL = IF(COALESCE(FES_TEMP_NAME,DEV_MODEL) != DEV_MODEL,COALESCE(FES_TEMP_NAME,DEV_MODEL), DEV_MODEL); - - DELETE psc3000_dev FROM psc3000_dev LEFT JOIN psc3000_plugin ON psc3000_dev.DEV_ID = psc3000_plugin.FES_DEV_INST_ID - WHERE FES_DEV_INST_ID IS NULL; - - DELETE tmpPsc3000PluginFesTempTbl FROM tmpPsc3000PluginFesTempTbl LEFT JOIN psc3000_plugin - ON tmpPsc3000PluginFesTempTbl.DEV_ID = psc3000_plugin.FES_DEV_INST_ID - WHERE FES_DEV_INST_ID IS NULL; - - INSERT INTO FES_DEV_INFO - (DEV_PORT,DEV_DESC, DEV_ID, DEV_NAME, DEV_TP_NAME, DEV_TYPE_ID,LOCATION_ID,RTU_NO,RTU_TAG,SUB_SYSTEM,TAG_NAME) - SELECT - psc3000_dev.DEV_PORT,psc3000_dev.DESCRIPTION, psc3000_dev.DEV_ID,psc3000_dev.TAG_NAME ,fes_dev_temp_def.TAG_NAME,DEV_TYPE_ID,locationId, rtuNo, rtuTag, subsystemId,concat(rtuTag,'.',psc3000_dev.TAG_NAME) - FROM psc3000_dev,fes_dev_temp_def - WHERE psc3000_dev.DEV_MODEL = fes_dev_temp_def.TAG_NAME; - - #第三步 关联 - DELETE FROM tmpImportPsc3000PluginTbl; - #此时临时表中第一列是套件名,第二列是设备组名 - INSERT INTO tmpImportPsc3000PluginTbl (PLUGIN_NAME , DEV_GRP) - SELECT PLUGIN_NAME,DEV_GROUP_TAG - FROM psc3000_plugin GROUP BY PLUGIN_NAME,DEV_GROUP_TAG; - - #创建临时表,存储用于第五步骤的信息 - CREATE TEMPORARY TABLE IF NOT EXISTS tmpImportPsc3000Dev( - PLUGIN_NAME varchar(64) NOT NULL, - DEV_TAG varchar(64) NOT NULL, - FES_DEV_TAG varchar(64) NOT NULL - ); - DELETE FROM tmpImportPsc3000Dev; - - #循环调用存储过程进行关联 - OPEN cur_1; - FETCH cur_1 INTO devGrpTag,pluginName,tempName,fesTempName; - - WHILE hasDone != 1 DO - - SET fesDevTag = (SELECT psc3000_dev.TAG_NAME FROM psc3000_plugin,psc3000_dev - WHERE DEV_GROUP_TAG = devGrpTag AND PLUGIN_NAME = pluginName AND FES_TEMP_NAME = fesTempName - AND FES_DEV_INST_ID = DEV_ID); - - IF fesDevTag IS NOT NULL THEN - BEGIN - CALL relationByPlugin(pluginName,concat(locationTag,'.',devGrpTag,'_',tempName), concat(rtuTag,'.',fesDevTag)); - - INSERT INTO tmpImportPsc3000Dev(PLUGIN_NAME,DEV_TAG,FES_DEV_TAG) - VALUES (pluginName,concat(locationTag,'.',devGrpTag,'_',tempName), concat(rtuTag,'.',fesDevTag)); - END; - END IF; - - FETCH cur_1 INTO devGrpTag,pluginName,tempName,fesTempName; - - END WHILE; - CLOSE cur_1; - - #更新设备组编号 - UPDATE dev_group,psc3000_plugin SET dev_group.DEV_GROUP_NO = psc3000_plugin.FES_DEV_INST_ID WHERE dev_group.TAG_NAME = concat(locationTag,'.',psc3000_plugin.DEV_GROUP_TAG); - - #第四步 刷新前置设备的测点 规约参数和描述等信息,对于在文件中存在,而模板中不存在的测点进行添加 - CREATE TEMPORARY TABLE IF NOT EXISTS tblImportPsc3000Point( - TAG_NAME varchar(64), - DEV_ID decimal(10,0), - SHORT_NAME varchar(64), - SEQ_NO decimal(10,0) - ); - - CREATE TEMPORARY TABLE IF NOT EXISTS tblImportPsc3000PointForAdd( - DEV_ID decimal(10,0), - SHORT_NAME varchar(64), - SEQ_NO decimal(10,0) - ); - - #acc - DELETE FROM tblImportPsc3000Point; - - INSERT INTO tblImportPsc3000Point (TAG_NAME,DEV_ID,SHORT_NAME) - SELECT fes_accuml.TAG_NAME,psc3000_acc.DEV_ID, psc3000_acc.TAG_NAME - FROM fes_accuml,psc3000_dev,psc3000_acc - WHERE fes_accuml.TAG_NAME LIKE concat(rtuTag,'%') - AND fes_accuml.DEV_TAG = concat(rtuTag,'.',psc3000_dev.TAG_NAME) - AND psc3000_dev.DEV_ID = psc3000_acc.DEV_ID - AND getAfterLastDot(fes_accuml.FES_POINT_TP_NAME) = psc3000_acc.TAG_NAME; - #更新存在的点 - UPDATE ( tblImportPsc3000Point INNER JOIN fes_accuml ON tblImportPsc3000Point.TAG_NAME = fes_accuml.TAG_NAME ) - INNER JOIN psc3000_acc ON tblImportPsc3000Point.DEV_ID = psc3000_acc.DEV_ID - AND tblImportPsc3000Point.SHORT_NAME = psc3000_acc.TAG_NAME - SET fes_accuml.DESCRIPTION = psc3000_acc.DESCRIPTION, - fes_accuml.RES_PARA_INT1 = psc3000_acc.REMOTE_NO, - fes_accuml.SEQ_NO = psc3000_acc.REMOTE_NO, - fes_accuml.COEFF = psc3000_acc.RATIO, - fes_accuml.FES_POINT_TP_NAME = concat(getBeforeFirstDot(fes_accuml.FES_POINT_TP_NAME),'.',psc3000_acc.TAG_NAME); - - #添加只有CSV文件有的点 - DELETE FROM tblImportPsc3000PointForAdd; - - INSERT INTO tblImportPsc3000PointForAdd (DEV_ID, SHORT_NAME) - SELECT psc3000_acc.DEV_ID,psc3000_acc.TAG_NAME - FROM psc3000_acc LEFT JOIN tblImportPsc3000Point - ON psc3000_acc.DEV_ID = tblImportPsc3000Point.DEV_ID AND psc3000_acc.TAG_NAME = tblImportPsc3000Point.SHORT_NAME - WHERE tblImportPsc3000Point.DEV_ID IS NULL; - - INSERT INTO fes_accuml( - TAG_NAME, LOCATION_ID, SUB_SYSTEM, DOT_NO, RTU_TAG, DEV_TAG, SEQ_NO, APP_TABLE_NAME, APP_TAG_NAME, APP_COLUMN_NAME, BASE, COEFF, RTU_NO, RES_PARA_INT1, RES_PARA_INT2, RES_PARA_INT3,RES_PARA_INT4, DESCRIPTION, FES_POINT_TP_NAME, PATH61850,POSITION61850) SELECT - concat(rtuTag, '.' , getMaxRtuDotNo(rtuTag,getFesPointType('FES_ACC'))), locationId , subsystemId ,getMaxRtuDotNo(rtuTag,getFesPointType('FES_ACC')), rtuTag, concat(rtuTag,'.',psc3000_dev.TAG_NAME), psc3000_acc.REMOTE_NO, '', '', '', '0', psc3000_acc.RATIO, rtuNo , psc3000_acc.REMOTE_NO, 0, 0, 0, psc3000_acc.DESCRIPTION , psc3000_acc.TAG_NAME, '', 0 - FROM tblImportPsc3000PointForAdd,psc3000_acc,psc3000_dev - WHERE tblImportPsc3000PointForAdd.DEV_ID = psc3000_acc.DEV_ID - AND tblImportPsc3000PointForAdd.SHORT_NAME = psc3000_acc.TAG_NAME - AND psc3000_acc.DEV_ID = psc3000_dev.DEV_ID - ; - - #ana - DELETE FROM tblImportPsc3000Point; - INSERT INTO tblImportPsc3000Point (TAG_NAME,DEV_ID,SHORT_NAME) - SELECT fes_analog.TAG_NAME,psc3000_ana.DEV_ID, psc3000_ana.TAG_NAME - FROM fes_analog,psc3000_dev,psc3000_ana - WHERE fes_analog.TAG_NAME LIKE concat(rtuTag,'%') - AND fes_analog.DEV_TAG = concat(rtuTag,'.',psc3000_dev.TAG_NAME) - AND psc3000_dev.DEV_ID = psc3000_ana.DEV_ID - AND getAfterLastDot(FES_POINT_TP_NAME) = psc3000_ana.TAG_NAME; - - UPDATE ( tblImportPsc3000Point INNER JOIN fes_analog ON tblImportPsc3000Point.TAG_NAME = fes_analog.TAG_NAME ) - INNER JOIN psc3000_ana ON tblImportPsc3000Point.DEV_ID = psc3000_ana.DEV_ID - AND tblImportPsc3000Point.SHORT_NAME = psc3000_ana.TAG_NAME - SET fes_analog.DESCRIPTION = psc3000_ana.DESCRIPTION, - fes_analog.RES_PARA_INT1 = psc3000_ana.REMOTE_NO, - fes_analog.SEQ_NO = psc3000_ana.REMOTE_NO, - fes_analog.COEFF = psc3000_ana.RATIO, - fes_analog.FES_POINT_TP_NAME = concat(getBeforeFirstDot(fes_analog.FES_POINT_TP_NAME),'.',psc3000_ana.TAG_NAME); - - #添加只有CSV文件有的点 - DELETE FROM tblImportPsc3000PointForAdd; - - INSERT INTO tblImportPsc3000PointForAdd (DEV_ID, SHORT_NAME) - SELECT psc3000_ana.DEV_ID,psc3000_ana.TAG_NAME - FROM psc3000_ana LEFT JOIN tblImportPsc3000Point - ON psc3000_ana.DEV_ID = tblImportPsc3000Point.DEV_ID AND psc3000_ana.TAG_NAME = tblImportPsc3000Point.SHORT_NAME - WHERE tblImportPsc3000Point.DEV_ID IS NULL; - - INSERT INTO fes_analog( - TAG_NAME, LOCATION_ID, SUB_SYSTEM, DEV_TAG, SEQ_NO, RTU_TAG, RTU_NO, DOT_NO, APP_TABLE_NAME, APP_TAG_NAME, APP_COLUMN_NAME, IS_FILTER, PERCENT, DEADBAND_TYPE, DEADBAND, ZEROBAND, BASE, COEFF, MAX_RANGE, MIN_RANGE, RES_PARA_INT1, RES_PARA_INT2,RES_PARA_INT3, RES_PARA_INT4, DESCRIPTION, FES_POINT_TP_NAME , PATH61850,POSITION61850) SELECT - concat(rtuTag, '.' , getMaxRtuDotNo(rtuTag,getFesPointType('FES_ANA'))), locationId , subsystemId , concat(rtuTag,'.',psc3000_dev.TAG_NAME),psc3000_ana.REMOTE_NO, rtuTag, rtuNo, getMaxRtuDotNo(rtuTag,getFesPointType('FES_ANA')),'', '', '', '0', '0', '0', '0', '0', '0', psc3000_ana.RATIO, '65536', '0', psc3000_ana.REMOTE_NO, 0, 0, 0, psc3000_ana.DESCRIPTION, psc3000_ana.TAG_NAME, '', 0 - FROM tblImportPsc3000PointForAdd,psc3000_ana,psc3000_dev - WHERE tblImportPsc3000PointForAdd.DEV_ID = psc3000_ana.DEV_ID - AND tblImportPsc3000PointForAdd.SHORT_NAME = psc3000_ana.TAG_NAME - AND psc3000_ana.DEV_ID = psc3000_dev.DEV_ID - ; - - #dig - DELETE FROM tblImportPsc3000Point; - INSERT INTO tblImportPsc3000Point (TAG_NAME,DEV_ID,SHORT_NAME) - SELECT fes_digital.TAG_NAME,psc3000_dig.DEV_ID, psc3000_dig.TAG_NAME - FROM fes_digital,psc3000_dev,psc3000_dig - WHERE fes_digital.TAG_NAME LIKE concat(rtuTag,'%') - AND fes_digital.DEV_TAG = concat(rtuTag,'.',psc3000_dev.TAG_NAME) - AND psc3000_dev.DEV_ID = psc3000_dig.DEV_ID - AND getAfterLastDot(FES_POINT_TP_NAME) = psc3000_dig.TAG_NAME; - - UPDATE ( tblImportPsc3000Point INNER JOIN fes_digital ON tblImportPsc3000Point.TAG_NAME = fes_digital.TAG_NAME ) - INNER JOIN psc3000_dig ON tblImportPsc3000Point.DEV_ID = psc3000_dig.DEV_ID - AND tblImportPsc3000Point.SHORT_NAME = psc3000_dig.TAG_NAME - SET fes_digital.DESCRIPTION = psc3000_dig.DESCRIPTION, - fes_digital.RES_PARA_INT1 = psc3000_dig.REMOTE_NO, - fes_digital.SEQ_NO = psc3000_dig.REMOTE_NO, - fes_digital.FES_POINT_TP_NAME = concat(getBeforeFirstDot(fes_digital.FES_POINT_TP_NAME),'.',psc3000_dig.TAG_NAME); - - #添加只有CSV文件有的点 - DELETE FROM tblImportPsc3000PointForAdd; - - INSERT INTO tblImportPsc3000PointForAdd (DEV_ID, SHORT_NAME) - SELECT psc3000_dig.DEV_ID,psc3000_dig.TAG_NAME - FROM psc3000_dig LEFT JOIN tblImportPsc3000Point - ON psc3000_dig.DEV_ID = tblImportPsc3000Point.DEV_ID AND psc3000_dig.TAG_NAME = tblImportPsc3000Point.SHORT_NAME - WHERE tblImportPsc3000Point.DEV_ID IS NULL; - - INSERT INTO fes_digital( - TAG_NAME, LOCATION_ID, SUB_SYSTEM, DEV_TAG, SEQ_NO, RTU_TAG, DOT_NO, APP_TABLE_NAME, APP_TAG_NAME, APP_COLUMN_NAME, FILTER_ERR, FILTER_DISTURB, DISTURB_TIME, REVERS, RTU_NO, RES_PARA_INT1, RES_PARA_INT2, RES_PARA_INT3, RES_PARA_INT4, DESCRIPTION, FES_POINT_TP_NAME, PATH61850,POSITION61850) SELECT - concat(rtuTag, '.' , getMaxRtuDotNo(rtuTag,getFesPointType('FES_DIG'))), locationId , subsystemId , concat(rtuTag,'.',psc3000_dev.TAG_NAME),psc3000_dig.REMOTE_NO, rtuTag, getMaxRtuDotNo(rtuTag,getFesPointType('FES_DIG')),'', '', '', '1', '1', '0', '0', rtuNo, psc3000_dig.REMOTE_NO, 0, 0, 0, psc3000_dig.DESCRIPTION,psc3000_dig.TAG_NAME, '', 0 - FROM tblImportPsc3000PointForAdd,psc3000_dig,psc3000_dev - WHERE tblImportPsc3000PointForAdd.DEV_ID = psc3000_dig.DEV_ID - AND tblImportPsc3000PointForAdd.SHORT_NAME = psc3000_dig.TAG_NAME - AND psc3000_dig.DEV_ID = psc3000_dev.DEV_ID - ; - - #dig_ctrl - DELETE FROM tblImportPsc3000Point; - - INSERT INTO tblImportPsc3000Point (TAG_NAME,DEV_ID,SHORT_NAME) - SELECT fes_digital_ctrl.TAG_NAME,psc3000_dig_ctrl.DEV_ID, psc3000_dig_ctrl.TAG_NAME - FROM fes_digital_ctrl,psc3000_dev,psc3000_dig_ctrl - WHERE fes_digital_ctrl.TAG_NAME LIKE concat(rtuTag,'%') - AND fes_digital_ctrl.DEV_TAG = concat(rtuTag,'.',psc3000_dev.TAG_NAME) - AND psc3000_dev.DEV_ID = psc3000_dig_ctrl.DEV_ID - AND getAfterLastDot(fes_digital_ctrl.POINT_TP_NAME) = psc3000_dig_ctrl.TAG_NAME; - - UPDATE ( tblImportPsc3000Point INNER JOIN fes_digital_ctrl ON tblImportPsc3000Point.TAG_NAME = fes_digital_ctrl.TAG_NAME ) - INNER JOIN psc3000_dig_ctrl ON tblImportPsc3000Point.DEV_ID = psc3000_dig_ctrl.DEV_ID - AND tblImportPsc3000Point.SHORT_NAME = psc3000_dig_ctrl.TAG_NAME - SET fes_digital_ctrl.DESCRIPTION = psc3000_dig_ctrl.DESCRIPTION, - fes_digital_ctrl.RES_PARA_INT1 = psc3000_dig_ctrl.REMOTE_NO, - fes_digital_ctrl.SEQ_NO = psc3000_dig_ctrl.REMOTE_NO, - fes_digital_ctrl.POINT_TP_NAME = concat(getBeforeFirstDot(fes_digital_ctrl.POINT_TP_NAME),'.',psc3000_dig_ctrl.TAG_NAME); - - #添加只有CSV文件有的点 - DELETE FROM tblImportPsc3000PointForAdd; - - INSERT INTO tblImportPsc3000PointForAdd (DEV_ID, SHORT_NAME) - SELECT psc3000_dig_ctrl.DEV_ID,psc3000_dig_ctrl.TAG_NAME - FROM psc3000_dig_ctrl LEFT JOIN tblImportPsc3000Point - ON psc3000_dig_ctrl.DEV_ID = tblImportPsc3000Point.DEV_ID AND psc3000_dig_ctrl.TAG_NAME = tblImportPsc3000Point.SHORT_NAME - WHERE tblImportPsc3000Point.DEV_ID IS NULL; - - INSERT INTO fes_digital_ctrl( - TAG_NAME, LOCATION_ID, SUB_SYSTEM, RTU_TAG, RTU_NO, DOT_NO, DEV_TAG, DESCRIPTION, REVERS, POINT_TP_NAME, SEQ_NO, RES_PARA_INT1, RES_PARA_INT2, RES_PARA_INT3, RES_PARA_INT4, PATH61850,POSITION61850, YK_SELECT61850, YK_EXE61850, YK_CANCLE61850, YK_DOUBLE_SELECT61850, YK_DOUBLE_EXE61850, YK_DOUBLE_CANCLE61850, PULSE_TIME)SELECT - concat(rtuTag, '.' , getMaxRtuDotNo(rtuTag,getFesPointType('FES_DIG_CTRL'))), locationId , subsystemId , rtuTag, rtuNo,getMaxRtuDotNo(rtuTag,getFesPointType('FES_DIG_CTRL')), concat(rtuTag,'.',psc3000_dev.TAG_NAME),psc3000_dig_ctrl.DESCRIPTION,'0' , psc3000_dig_ctrl.TAG_NAME,psc3000_dig_ctrl.REMOTE_NO, psc3000_dig_ctrl.REMOTE_NO, 0, 0, 0, '', 0, '', '', '', '', '', '', 0 - FROM tblImportPsc3000PointForAdd,psc3000_dig_ctrl,psc3000_dev - WHERE tblImportPsc3000PointForAdd.DEV_ID = psc3000_dig_ctrl.DEV_ID - AND tblImportPsc3000PointForAdd.SHORT_NAME = psc3000_dig_ctrl.TAG_NAME - AND psc3000_dig_ctrl.DEV_ID = psc3000_dev.DEV_ID - ; - - #DZ定值 - DELETE FROM fes_const WHERE fes_const.RTU_TAG = rtuTag AND fes_const.RES_PARA_INT1 = '-1'; - - #添加只有CSV文件有的点 - DELETE FROM tblImportPsc3000PointForAdd; - - INSERT INTO tblImportPsc3000PointForAdd (DEV_ID, SEQ_NO) - SELECT psc3000_const.DEV_ID,psc3000_const.SEQ_NO - FROM psc3000_const LEFT JOIN tblImportPsc3000Point - ON psc3000_const.DEV_ID = tblImportPsc3000Point.DEV_ID AND psc3000_const.SEQ_NO = tblImportPsc3000Point.SEQ_NO - WHERE tblImportPsc3000Point.DEV_ID IS NULL; - - INSERT INTO fes_const( - TAG_NAME, DESCRIPTION, DZ_SEQ, GROUP_NO, RTU_TAG, RTU_NO, DOT_NO, SEQ_NO, SUB_SYSTEM, LOCATION_ID, DEV_TAG, VALUE, VALUE_TYPE, UNIT_ID, VALUE_TEXT, VALUE_RATIO, VALUE_ADDED, VALUE_MAX, VALUE_MIN, VALUE_DEFAULT, VALUE_VERIFY, EX_INFO, FES_POINT_TP_NAME, PATH61850, POSITION61850) SELECT - concat(rtuTag, '.' , getMaxRtuDotNo(rtuTag,getFesPointType('FES_CONST'))), psc3000_const.DESCRIPTION ,psc3000_const.DZ_SEQ ,psc3000_const.GROUP_NO , rtuTag, rtuNo, getMaxRtuDotNo(rtuTag,getFesPointType('FES_CONST')), psc3000_const.SEQ_NO,subsystemId,locationId, concat(rtuTag,'.',psc3000_dev.TAG_NAME), 0, 0, 0, psc3000_const.VALUE_TEXT,psc3000_const.RATIO,psc3000_const.REVISE, 0, 0, 0, 0, '', '', '', 0 - FROM tblImportPsc3000PointForAdd,psc3000_const,psc3000_dev - WHERE tblImportPsc3000PointForAdd.DEV_ID = psc3000_const.DEV_ID - AND tblImportPsc3000PointForAdd.SEQ_NO = psc3000_const.SEQ_NO - AND psc3000_const.DEV_ID = psc3000_dev.DEV_ID - ; - - - #第五步,对于此时设备中未关联的前置测点,放到间隔信号中 tmpImportPsc3000Dev - DELETE FROM tmpImportPsc3000Dev WHERE DEV_TAG NOT LIKE '%jgxh%'; - - CREATE TEMPORARY TABLE IF NOT EXISTS tblPsc3000PointToAdd( - DEV_TAG varchar(64), - TAG_NAME varchar(64), - FES_TAG_NAME varchar(64), - DOT_NO decimal(10,0), - DESCRIPTION varchar(128) - ); - - - #acc, - DELETE FROM tblPsc3000PointToAdd; - - INSERT INTO tblPsc3000PointToAdd(DEV_TAG,TAG_NAME,FES_TAG_NAME,DOT_NO,DESCRIPTION) - SELECT tmpImportPsc3000Dev.DEV_TAG, - concat(tmpImportPsc3000Dev.DEV_TAG,'.', IF(getAfterLastDot(fes_accuml.FES_POINT_TP_NAME) = '',findPsc3000Tag(fes_accuml.DESCRIPTION,fes_accuml.RES_PARA_INT1,fes_dev_info.DEV_ID,'psc_acc'),getAfterLastDot(fes_accuml.FES_POINT_TP_NAME) )) , - fes_accuml.TAG_NAME,fes_accuml.DOT_NO,fes_accuml.DESCRIPTION - FROM tmpImportPsc3000Dev,fes_dev_info,fes_accuml - WHERE tmpImportPsc3000Dev.FES_DEV_TAG = fes_dev_info.TAG_NAME AND - fes_accuml.TAG_NAME LIKE concat(rtuTag,'.%') AND - fes_accuml.DEV_TAG = fes_dev_info.TAG_NAME AND - fes_accuml.APP_TABLE_NAME = '' AND - fes_accuml.APP_TAG_NAME = '' AND - fes_accuml.APP_COLUMN_NAME = ''; - - INSERT IGNORE INTO accuml( - TAG_NAME, DESCRIPTION, DEVICE, SEQ_NO, LOCATION_ID, SUB_SYSTEM, RTU_TAG, GRAY, CONTRAST, QCOLOR, RAW_VALUE, VALUE, STATUS, LAST_UPDATE_TIME, LAST_CHANGE_TIME, UNIT_ID, SOUND_NAME1, SOUND_NAME2, SOUND_NAME3, REGION_ID, OPT_HANDOVER_GROUP, IS_LIMIT, POINT_TYPE, POINT_CLASS, POINT_PROPERTY,POINT_SORT, DEV_TYPE, POINT_TP_NAME, IS_SAMPLE, IS_STATISTICS, SAMPLE_PERIOD, SAMPLE_DEADBAND,CAMERA_TAG, PRESET_ID) - SELECT - tblPsc3000PointToAdd.TAG_NAME, tblPsc3000PointToAdd.DESCRIPTION,dev_info.TAG_NAME,getMaxSeq(dev_info.TAG_NAME,'accuml')+1, locationId, subsystemId, '', dev_info.GRAY, dev_info.CONTRAST, dev_info.QCOLOR, '0', dev_info.VALUE, dev_info.STATUS, 0, 0, '1', '', '', '', regionId, dev_info.OPT_HANDOVER_GROUP, '0', '3', '0', '0', '201', dev_info.DEV_TYPE, '', '0', '0', '5', '0.01', '', '' - FROM tblPsc3000PointToAdd,dev_info - WHERE tblPsc3000PointToAdd.DEV_TAG = dev_info.TAG_NAME ; - - UPDATE accuml INNER JOIN tblPsc3000PointToAdd - ON accuml.TAG_NAME = tblPsc3000PointToAdd.TAG_NAME - SET accuml.RTU_TAG = rtuTag; - - UPDATE accuml_map_to_fes INNER JOIN tblPsc3000PointToAdd - ON accuml_map_to_fes.KEY_ID_TAG = concat('accuml.',tblPsc3000PointToAdd.TAG_NAME) - SET accuml_map_to_fes.DOT_NO = tblPsc3000PointToAdd.DOT_NO; - - - #ana - DELETE FROM tblPsc3000PointToAdd; - - INSERT INTO tblPsc3000PointToAdd(DEV_TAG,TAG_NAME,FES_TAG_NAME,DOT_NO,DESCRIPTION) - SELECT tmpImportPsc3000Dev.DEV_TAG, - concat(tmpImportPsc3000Dev.DEV_TAG,'.', IF(getAfterLastDot(fes_analog.FES_POINT_TP_NAME) = '',findPsc3000Tag(fes_analog.DESCRIPTION,fes_analog.RES_PARA_INT1,fes_dev_info.DEV_ID,'psc_ana'),getAfterLastDot(fes_analog.FES_POINT_TP_NAME) )) , - fes_analog.TAG_NAME,fes_analog.DOT_NO,fes_analog.DESCRIPTION - FROM tmpImportPsc3000Dev,fes_dev_info,fes_analog - WHERE tmpImportPsc3000Dev.FES_DEV_TAG = fes_dev_info.TAG_NAME AND - fes_analog.TAG_NAME LIKE concat(rtuTag,'.%') AND - fes_analog.DEV_TAG = fes_dev_info.TAG_NAME AND - fes_analog.APP_TABLE_NAME = '' AND - fes_analog.APP_TAG_NAME = '' AND - fes_analog.APP_COLUMN_NAME = '' ; - - INSERT IGNORE INTO analog( - TAG_NAME, DESCRIPTION, RTU_TAG, DEV_TYPE, DEVICE, SEQ_NO, LOCATION_ID, SUB_SYSTEM, IS_CONTROL, GRAY, CONTRAST, QCOLOR, VALUE, STATUS, LAST_UPDATE_TIME, LAST_CHANGE_TIME, UNIT_ID, SOUND_NAME1, SOUND_NAME2, SOUND_NAME3, REGION_ID, OPT_HANDOVER_GROUP, IS_LIMIT, POINT_TYPE, POINT_CLASS, POINT_PROPERTY, POINT_SORT, POINT_TP_NAME, IS_SAMPLE, IS_STATISTICS, SAMPLE_PERIOD, SAMPLE_DEADBAND, CAMERA_TAG, PRESET_ID) - SELECT - tblPsc3000PointToAdd.TAG_NAME, tblPsc3000PointToAdd.DESCRIPTION,'', dev_info.DEV_TYPE,dev_info.TAG_NAME,getMaxSeq(dev_info.TAG_NAME,'analog')+1, locationId, subsystemId, '0', dev_info.GRAY, dev_info.CONTRAST, dev_info.QCOLOR,dev_info.VALUE, dev_info.STATUS, 0, 0, '1', '', '', '', regionId, dev_info.OPT_HANDOVER_GROUP, '0', '0', '0', '0', '1', '', '0', '0', '5', '0.01', '', '' - FROM tblPsc3000PointToAdd,dev_info - WHERE tblPsc3000PointToAdd.DEV_TAG = dev_info.TAG_NAME ; - - UPDATE analog INNER JOIN tblPsc3000PointToAdd - ON analog.TAG_NAME = tblPsc3000PointToAdd.TAG_NAME - SET analog.RTU_TAG = rtuTag; - - UPDATE analog_map_to_fes INNER JOIN tblPsc3000PointToAdd - ON analog_map_to_fes.KEY_ID_TAG = concat('analog.',tblPsc3000PointToAdd.TAG_NAME) - SET analog_map_to_fes.DOT_NO = tblPsc3000PointToAdd.DOT_NO; - - #dig - DELETE FROM tblPsc3000PointToAdd; - - INSERT INTO tblPsc3000PointToAdd(DEV_TAG,TAG_NAME,FES_TAG_NAME,DOT_NO,DESCRIPTION) - SELECT tmpImportPsc3000Dev.DEV_TAG, - concat(tmpImportPsc3000Dev.DEV_TAG,'.', IF(getAfterLastDot(fes_digital.FES_POINT_TP_NAME) = '',findPsc3000Tag(fes_digital.DESCRIPTION,fes_digital.RES_PARA_INT1,fes_dev_info.DEV_ID,'psc_dig'),getAfterLastDot(fes_digital.FES_POINT_TP_NAME) )) , - fes_digital.TAG_NAME,fes_digital.DOT_NO,fes_digital.DESCRIPTION - FROM tmpImportPsc3000Dev,fes_dev_info,fes_digital - WHERE tmpImportPsc3000Dev.FES_DEV_TAG = fes_dev_info.TAG_NAME AND - fes_digital.TAG_NAME LIKE concat(rtuTag,'.%') AND - fes_digital.DEV_TAG = fes_dev_info.TAG_NAME AND - fes_digital.APP_TABLE_NAME = '' AND - fes_digital.APP_TAG_NAME = '' AND - fes_digital.APP_COLUMN_NAME = ''; - - INSERT IGNORE INTO digital( - TAG_NAME, DESCRIPTION, DEVICE, SEQ_NO, LOCATION_ID, SUB_SYSTEM, RTU_TAG, IS_CONTROL, STATE_TEXT_NAME, VALUE_NUM, GRAY, CONTRAST, QCOLOR, VALUE, STATUS, LAST_UPDATE_TIME, VALUE1, STATUS1, LAST_CHANGE_TIME1, VALUE2, STATUS2, LAST_CHANGE_TIME2, VALUE3, STATUS3, LAST_CHANGE_TIME3, VALUE4, STATUS4, LAST_CHANGE_TIME4, VALUE5, STATUS5, LAST_CHANGE_TIME5, ALARM_PRIORITY, PIC_NAME, SOUND_NAME1, SOUND_NAME2, SOUND_NAME3, ALARM_DELAY_TIME, INPUT_DELAY_TIME, IS_WATER_ALM, IS_ACK_ON_RTN, DEL_ACT_ON_ACK, IS_NEVER_ALM_ON_RTN, REGION_ID, OPT_HANDOVER_GROUP, IS_SUMMARY, SUMMARY_VALUE, SUMMARY_STATUS, DEV_TYPE, POINT_TP_NAME, IS_SAMPLE, IS_STATISTICS, SAMPLE_PERIOD, IS_ALARM_FREQ, ALARM_FREQ, ALARM_FREQ_DESC, IS_ALARM_TIME, ALARM_TIME, ALARM_TIME_DESC, ALARM_FREQ_RANGE, INFER_NAME, POINT_TYPE, POINT_CLASS, POINT_PROPERTY, POINT_SORT, CAMERA_TAG, PRESET_ID ) - SELECT - tblPsc3000PointToAdd.TAG_NAME, tblPsc3000PointToAdd.DESCRIPTION,dev_info.TAG_NAME,getMaxSeq(dev_info.TAG_NAME,'digital')+1, locationId, subsystemId, '', '0', '', '1', dev_info.GRAY, dev_info.CONTRAST, dev_info.QCOLOR,dev_info.VALUE, dev_info.STATUS, 0, 0, 0, '0', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '1', '', '', '', '', '5', '1', '0', '1', '0', '0', regionId, dev_info.OPT_HANDOVER_GROUP, '0', '0', '0', dev_info.DEV_TYPE, '', '1', '0', '5', '0', '10', '计次报警描述', '0', '5', '计时报警描述', '30', '', '1', '0', '0', '400', '', '' - FROM tblPsc3000PointToAdd,dev_info - WHERE tblPsc3000PointToAdd.DEV_TAG = dev_info.TAG_NAME ; - - UPDATE digital INNER JOIN tblPsc3000PointToAdd - ON digital.TAG_NAME = tblPsc3000PointToAdd.TAG_NAME - SET digital.RTU_TAG = rtuTag; - - UPDATE digital_map_to_fes INNER JOIN tblPsc3000PointToAdd - ON digital_map_to_fes.KEY_ID_TAG = concat('digital.',tblPsc3000PointToAdd.TAG_NAME) - SET digital_map_to_fes.DOT_NO1 = tblPsc3000PointToAdd.DOT_NO; - - - - #mix 混合量在psc3000中是没有的,这里只做简单处理 - DELETE FROM tblPsc3000PointToAdd; - - INSERT INTO tblPsc3000PointToAdd(DEV_TAG,TAG_NAME,FES_TAG_NAME,DOT_NO,DESCRIPTION) - SELECT tmpImportPsc3000Dev.DEV_TAG, - concat(tmpImportPsc3000Dev.DEV_TAG,'.', getAfterLastDot(fes_mix.FES_POINT_TP_NAME)) , - fes_mix.TAG_NAME,fes_mix.DOT_NO,fes_mix.DESCRIPTION - FROM tmpImportPsc3000Dev,fes_dev_info,fes_mix - WHERE tmpImportPsc3000Dev.FES_DEV_TAG = fes_dev_info.TAG_NAME AND - fes_mix.TAG_NAME LIKE concat(rtuTag,'.%') AND - fes_mix.DEV_TAG = fes_dev_info.TAG_NAME AND - fes_mix.APP_TABLE_NAME = '' AND - fes_mix.APP_TAG_NAME = '' AND - fes_mix.APP_COLUMN_NAME = ''; - - INSERT IGNORE INTO mix( - TAG_NAME, DESCRIPTION, DEVICE, SEQ_NO, LOCATION_ID, SUB_SYSTEM, RTU_TAG, IS_CONTROL, STATE_TEXT_NAME, GRAY, CONTRAST, QCOLOR, RAW_VALUE, VALUE, STATUS, LAST_UPDATE_TIME, LAST_CHANGE_TIME, METHOD, ALARM_PRIORITY, PIC_NAME, SOUND_NAME1, SOUND_NAME2, SOUND_NAME3, ALARM_DELAY_TIME, IS_WATER_ALM,IS_ACK_ON_RTN, DEL_ACT_ON_ACK, IS_NEVER_ALM_ON_RTN, REGION_ID, OPT_HANDOVER_GROUP, IS_SUMMARY, SUMMARY_VALUE, SUMMARY_STATUS, DEV_TYPE, POINT_TP_NAME, IS_SAMPLE, IS_STATISTICS, SAMPLE_PERIOD, POINT_TYPE, POINT_CLASS, POINT_PROPERTY, POINT_SORT, CAMERA_TAG, PRESET_ID) SELECT - tblPsc3000PointToAdd.TAG_NAME,tblPsc3000PointToAdd.DESCRIPTION,dev_info.TAG_NAME,getMaxSeq(dev_info.TAG_NAME,'mix')+1,locationId, subsystemId, '', '0', '', GRAY, CONTRAST, QCOLOR, '0', VALUE, STATUS, '0', '0', '', '3', '', '', '', '', 0, 1, 0, 0, 0, regionId, OPT_HANDOVER_GROUP, IS_SUMMARY, SUMMARY_VALUE, SUMMARY_STATUS, DEV_TYPE, '', 0, 0, 5, 2, 0, 0, 701, '', '' - FROM tblPsc3000PointToAdd,dev_info - WHERE tblPsc3000PointToAdd.DEV_TAG = dev_info.TAG_NAME ; - - UPDATE mix INNER JOIN tblPsc3000PointToAdd - ON mix.TAG_NAME = tblPsc3000PointToAdd.TAG_NAME - SET mix.RTU_TAG = rtuTag; - - UPDATE mix_map_to_fes INNER JOIN tblPsc3000PointToAdd - ON mix_map_to_fes.KEY_ID_TAG = concat('mix.',tblPsc3000PointToAdd.TAG_NAME) - SET mix_map_to_fes.DOT_NO = tblPsc3000PointToAdd.DOT_NO; - - #第六步,应施建全和王重生的要求,对于后台生成的设备组中未关联的测点,删除,对于前置中不存在与csv文件的点删除 - DELETE FROM tblPsc3000PointToAdd; - DELETE FROM tmpImportPsc3000PluginTbl; - - #删除后台的未关联的点 - #这里PLUGIN_NAME是设备TAG - INSERT INTO tmpImportPsc3000PluginTbl - (PLUGIN_NAME , DEV_GRP ) - SELECT - dev_info.TAG_NAME,dev_info.GROUP_TAG_NAME - FROM psc3000_plugin INNER JOIN dev_info - ON dev_info.GROUP_TAG_NAME = concat(locationTag,'.',psc3000_plugin.DEV_GROUP_TAG) GROUP BY dev_info.TAG_NAME; - - DELETE accuml FROM accuml INNER JOIN tmpImportPsc3000PluginTbl ON accuml.DEVICE = tmpImportPsc3000PluginTbl.PLUGIN_NAME - AND COALESCE(accuml.RTU_TAG,'') = ''; - - DELETE analog FROM analog INNER JOIN tmpImportPsc3000PluginTbl ON analog.DEVICE = tmpImportPsc3000PluginTbl.PLUGIN_NAME - AND COALESCE(analog.RTU_TAG,'') = ''; - - DELETE digital FROM digital INNER JOIN tmpImportPsc3000PluginTbl ON digital.DEVICE = tmpImportPsc3000PluginTbl.PLUGIN_NAME - AND COALESCE(digital.RTU_TAG,'') = ''; - - DELETE mix FROM mix INNER JOIN tmpImportPsc3000PluginTbl ON mix.DEVICE = tmpImportPsc3000PluginTbl.PLUGIN_NAME - AND COALESCE(mix.RTU_TAG,'') = ''; - - - #删除前置,有可能前置的测点已经和后台的关联上了,所以这里对后台的测点再删除一遍,再删除前置的 - #acc - DELETE FROM tblPsc3000PointToAdd; - - INSERT INTO tblPsc3000PointToAdd(DEV_TAG,TAG_NAME,FES_TAG_NAME,DOT_NO,DESCRIPTION) - SELECT '', fes_accuml.APP_TAG_NAME,fes_accuml.TAG_NAME,0,fes_accuml.DESCRIPTION - FROM fes_accuml WHERE fes_accuml.RTU_TAG = rtuTag AND fes_accuml.RES_PARA_INT1 = '-1'; - - DELETE accuml FROM accuml INNER JOIN tblPsc3000PointToAdd ON accuml.TAG_NAME = tblPsc3000PointToAdd.TAG_NAME; - - DELETE fes_accuml FROM fes_accuml INNER JOIN tblPsc3000PointToAdd ON fes_accuml.TAG_NAME = tblPsc3000PointToAdd.FES_TAG_NAME; - - #ana - DELETE FROM tblPsc3000PointToAdd; - - INSERT INTO tblPsc3000PointToAdd(DEV_TAG,TAG_NAME,FES_TAG_NAME,DOT_NO,DESCRIPTION) - SELECT '', fes_analog.APP_TAG_NAME,fes_analog.TAG_NAME,0,fes_analog.DESCRIPTION - FROM fes_analog WHERE fes_analog.RTU_TAG = rtuTag AND fes_analog.RES_PARA_INT1 = '-1'; - - DELETE analog FROM analog INNER JOIN tblPsc3000PointToAdd ON analog.TAG_NAME = tblPsc3000PointToAdd.TAG_NAME; - - DELETE fes_analog FROM fes_analog INNER JOIN tblPsc3000PointToAdd ON fes_analog.TAG_NAME = tblPsc3000PointToAdd.FES_TAG_NAME; - - - #dig 要考虑五个分量,只要有一个分量是明确关联前置的,不能删除 - DELETE FROM tblPsc3000PointToAdd; - - INSERT INTO tblPsc3000PointToAdd(DEV_TAG,TAG_NAME,FES_TAG_NAME,DOT_NO,DESCRIPTION) - SELECT fes_digital.APP_COLUMN_NAME, fes_digital.APP_TAG_NAME, fes_digital.TAG_NAME, 0, fes_digital.DESCRIPTION - FROM fes_digital WHERE fes_digital.RTU_TAG = rtuTag AND fes_digital.RES_PARA_INT1 = '-1'; - - #特殊处理,先删除前置使得map_to_fes表置-1再判断删除 - DELETE fes_digital FROM fes_digital INNER JOIN tblPsc3000PointToAdd ON fes_digital.TAG_NAME = tblPsc3000PointToAdd.FES_TAG_NAME; - - #先标记要删除的点 - UPDATE tblPsc3000PointToAdd INNER JOIN digital_map_to_fes - ON concat('digital.',tblPsc3000PointToAdd.TAG_NAME) = digital_map_to_fes.KEY_ID_TAG - AND digital_map_to_fes.DOT_NO1 = '-1' - AND digital_map_to_fes.DOT_NO2 = '-1' - AND digital_map_to_fes.DOT_NO3 = '-1' - AND digital_map_to_fes.DOT_NO4 = '-1' - AND digital_map_to_fes.DOT_NO5 = '-1' - SET tblPsc3000PointToAdd.DOT_NO = -1; - - DELETE digital FROM digital INNER JOIN tblPsc3000PointToAdd - ON digital.TAG_NAME = tblPsc3000PointToAdd.TAG_NAME - AND tblPsc3000PointToAdd.DOT_NO = -1; - - #mix - DELETE FROM tblPsc3000PointToAdd; - - INSERT INTO tblPsc3000PointToAdd(DEV_TAG,TAG_NAME,FES_TAG_NAME,DOT_NO,DESCRIPTION) - SELECT '', fes_mix.APP_TAG_NAME,fes_mix.TAG_NAME,0,fes_mix.DESCRIPTION - FROM fes_mix WHERE fes_mix.RTU_TAG = rtuTag AND fes_mix.RES_PARA_INT1 = '-1'; - - DELETE mix FROM mix INNER JOIN tblPsc3000PointToAdd ON mix.TAG_NAME = tblPsc3000PointToAdd.TAG_NAME; - - DELETE fes_mix FROM fes_mix INNER JOIN tblPsc3000PointToAdd ON fes_mix.TAG_NAME = tblPsc3000PointToAdd.FES_TAG_NAME; - - #ana_ctrl - DELETE FROM tblPsc3000PointToAdd; - - DELETE fes_analog_ctrl FROM fes_analog_ctrl WHERE fes_analog_ctrl.RTU_TAG = rtuTag AND fes_analog_ctrl.RES_PARA_INT1 = '-1'; - - INSERT INTO tblPsc3000PointToAdd(DEV_TAG,TAG_NAME,FES_TAG_NAME,DOT_NO,DESCRIPTION) - SELECT '',A.TAG_NAME,'','0','' - FROM - (SELECT TAG_NAME,RTU_TAG,OFFSET_NO FROM analog_control INNER JOIN tmpImportPsc3000PluginTbl - ON analog_control.TAG_NAME LIKE concat(tmpImportPsc3000PluginTbl.PLUGIN_NAME,'.%') ) AS A - LEFT JOIN fes_analog_ctrl ON fes_analog_ctrl.TAG_NAME = concat(A.RTU_TAG,'.',A.OFFSET_NO) - WHERE fes_analog_ctrl.TAG_NAME IS NULL; - - DELETE analog_control FROM analog_control INNER JOIN tblPsc3000PointToAdd ON analog_control.TAG_NAME = tblPsc3000PointToAdd.TAG_NAME; - - - #dig_ctrl 要考虑五个分量 - DELETE FROM tblPsc3000PointToAdd; - - DELETE fes_digital_ctrl FROM fes_digital_ctrl WHERE fes_digital_ctrl.RTU_TAG = rtuTag AND fes_digital_ctrl.RES_PARA_INT1 = '-1'; - - #第一个分量 - INSERT INTO tblPsc3000PointToAdd(DEV_TAG,TAG_NAME,FES_TAG_NAME,DOT_NO,DESCRIPTION) - SELECT '',A.TAG_NAME,'','0','' - FROM - (SELECT TAG_NAME,RTU_TAG,OFFSET_NO1 FROM digital_control INNER JOIN tmpImportPsc3000PluginTbl - ON digital_control.TAG_NAME LIKE concat(tmpImportPsc3000PluginTbl.PLUGIN_NAME,'.%') ) AS A - LEFT JOIN fes_digital_ctrl ON fes_digital_ctrl.TAG_NAME = concat(A.RTU_TAG,'.',A.OFFSET_NO1) - WHERE fes_digital_ctrl.TAG_NAME IS NULL; - - UPDATE digital_control INNER JOIN tblPsc3000PointToAdd - ON digital_control.TAG_NAME = tblPsc3000PointToAdd.TAG_NAME - SET digital_control.OFFSET_NO1 = -1; - - #第二个分量 - DELETE FROM tblPsc3000PointToAdd; - - INSERT INTO tblPsc3000PointToAdd(DEV_TAG,TAG_NAME,FES_TAG_NAME,DOT_NO,DESCRIPTION) - SELECT '',A.TAG_NAME,'','0','' - FROM - (SELECT TAG_NAME,RTU_TAG,OFFSET_NO2 FROM digital_control INNER JOIN tmpImportPsc3000PluginTbl - ON digital_control.TAG_NAME LIKE concat(tmpImportPsc3000PluginTbl.PLUGIN_NAME,'.%') ) AS A - LEFT JOIN fes_digital_ctrl ON fes_digital_ctrl.TAG_NAME = concat(A.RTU_TAG,'.',A.OFFSET_NO2) - WHERE fes_digital_ctrl.TAG_NAME IS NULL; - - UPDATE digital_control INNER JOIN tblPsc3000PointToAdd - ON digital_control.TAG_NAME = tblPsc3000PointToAdd.TAG_NAME - SET digital_control.OFFSET_NO2 = -1; - - #第三个分量 - DELETE FROM tblPsc3000PointToAdd; - - INSERT INTO tblPsc3000PointToAdd(DEV_TAG,TAG_NAME,FES_TAG_NAME,DOT_NO,DESCRIPTION) - SELECT '',A.TAG_NAME,'','0','' - FROM - (SELECT TAG_NAME,RTU_TAG,OFFSET_NO3 FROM digital_control INNER JOIN tmpImportPsc3000PluginTbl - ON digital_control.TAG_NAME LIKE concat(tmpImportPsc3000PluginTbl.PLUGIN_NAME,'.%') ) AS A - LEFT JOIN fes_digital_ctrl ON fes_digital_ctrl.TAG_NAME = concat(A.RTU_TAG,'.',A.OFFSET_NO3) - WHERE fes_digital_ctrl.TAG_NAME IS NULL; - - UPDATE digital_control INNER JOIN tblPsc3000PointToAdd - ON digital_control.TAG_NAME = tblPsc3000PointToAdd.TAG_NAME - SET digital_control.OFFSET_NO3 = -1; - - #第四个分量 - DELETE FROM tblPsc3000PointToAdd; - - INSERT INTO tblPsc3000PointToAdd(DEV_TAG,TAG_NAME,FES_TAG_NAME,DOT_NO,DESCRIPTION) - SELECT '',A.TAG_NAME,'','0','' - FROM - (SELECT TAG_NAME,RTU_TAG,OFFSET_NO4 FROM digital_control INNER JOIN tmpImportPsc3000PluginTbl - ON digital_control.TAG_NAME LIKE concat(tmpImportPsc3000PluginTbl.PLUGIN_NAME,'.%') ) AS A - LEFT JOIN fes_digital_ctrl ON fes_digital_ctrl.TAG_NAME = concat(A.RTU_TAG,'.',A.OFFSET_NO4) - WHERE fes_digital_ctrl.TAG_NAME IS NULL; - - UPDATE digital_control INNER JOIN tblPsc3000PointToAdd - ON digital_control.TAG_NAME = tblPsc3000PointToAdd.TAG_NAME - SET digital_control.OFFSET_NO4 = -1; - - #第五个分量 - DELETE FROM tblPsc3000PointToAdd; - - INSERT INTO tblPsc3000PointToAdd(DEV_TAG,TAG_NAME,FES_TAG_NAME,DOT_NO,DESCRIPTION) - SELECT '',A.TAG_NAME,'','0','' - FROM - (SELECT TAG_NAME,RTU_TAG,OFFSET_NO5 FROM digital_control INNER JOIN tmpImportPsc3000PluginTbl - ON digital_control.TAG_NAME LIKE concat(tmpImportPsc3000PluginTbl.PLUGIN_NAME,'.%') ) AS A - LEFT JOIN fes_digital_ctrl ON fes_digital_ctrl.TAG_NAME = concat(A.RTU_TAG,'.',A.OFFSET_NO5) - WHERE fes_digital_ctrl.TAG_NAME IS NULL; - - UPDATE digital_control INNER JOIN tblPsc3000PointToAdd - ON digital_control.TAG_NAME = tblPsc3000PointToAdd.TAG_NAME - SET digital_control.OFFSET_NO5 = -1; - - #设置未关联的digital控制属性为否 - CREATE TEMPORARY TABLE IF NOT EXISTS tmpDelete( - TAG_NAME varchar(64) NOT NULL - ); - DELETE FROM tmpDelete; - INSERT INTO tmpDelete(TAG_NAME) - SELECT TAG_NAME FROM digital_control INNER JOIN tmpImportPsc3000PluginTbl - ON digital_control.TAG_NAME LIKE concat(tmpImportPsc3000PluginTbl.PLUGIN_NAME,'.%') - AND digital_control.OFFSET_NO1 = '-1' - AND digital_control.OFFSET_NO2 = '-1' - AND digital_control.OFFSET_NO3 = '-1' - AND digital_control.OFFSET_NO4 = '-1' - AND digital_control.OFFSET_NO5 = '-1' - ; - UPDATE digital set IS_CONTROL = 0 WHERE TAG_NAME IN - (SELECT TAG_NAME FROM tmpDelete) - ; - - #mix_ctrl - DELETE FROM tblPsc3000PointToAdd; - - DELETE fes_mix_ctrl FROM fes_mix_ctrl WHERE fes_mix_ctrl.RTU_TAG = rtuTag AND fes_mix_ctrl.RES_PARA_INT1 = '-1'; - - INSERT INTO tblPsc3000PointToAdd(DEV_TAG,TAG_NAME,FES_TAG_NAME,DOT_NO,DESCRIPTION) - SELECT '',A.TAG_NAME,'','0','' - FROM - (SELECT TAG_NAME,RTU_TAG,OFFSET_NO FROM mix_control INNER JOIN tmpImportPsc3000PluginTbl - ON mix_control.TAG_NAME LIKE concat(tmpImportPsc3000PluginTbl.PLUGIN_NAME,'.%') ) AS A - LEFT JOIN fes_mix_ctrl ON fes_mix_ctrl.TAG_NAME = concat(A.RTU_TAG,'.',A.OFFSET_NO) - WHERE fes_mix_ctrl.TAG_NAME IS NULL; - - DELETE mix_control FROM mix_control INNER JOIN tblPsc3000PointToAdd ON mix_control.TAG_NAME = tblPsc3000PointToAdd.TAG_NAME; - - #第七步,修改单分量属性和双分量属性 - #单分量属性 - DELETE FROM tblPsc3000PointToAdd; - - INSERT INTO tblPsc3000PointToAdd(DEV_TAG,TAG_NAME,FES_TAG_NAME,DOT_NO,DESCRIPTION) - SELECT '',digital_map_to_fes.KEY_ID_TAG,'','0','' - FROM digital_map_to_fes INNER JOIN tmpImportPsc3000PluginTbl - ON DOT_NO1 != '-1' AND DOT_NO2 = '-1' AND DOT_NO3 = '-1' AND DOT_NO4 = '-1' AND DOT_NO5 = '-1' - AND digital_map_to_fes.KEY_ID_TAG LIKE concat('digital.', tmpImportPsc3000PluginTbl.PLUGIN_NAME,'.%') - ; - - UPDATE digital INNER JOIN tblPsc3000PointToAdd ON concat('digital.',digital.TAG_NAME) = tblPsc3000PointToAdd.TAG_NAME - SET digital.VALUE_NUM = 1, - digital.STATE_TEXT_NAME = IF(position('(' IN STATE_TEXT_NAME) = 0,STATE_TEXT_NAME,left(STATE_TEXT_NAME,position('(' IN STATE_TEXT_NAME) - 1)); - - #双分量属性 - DELETE FROM tblPsc3000PointToAdd; - - INSERT INTO tblPsc3000PointToAdd(DEV_TAG,TAG_NAME,FES_TAG_NAME,DOT_NO,DESCRIPTION) - SELECT '',digital_map_to_fes.KEY_ID_TAG,'','0','' - FROM digital_map_to_fes INNER JOIN tmpImportPsc3000PluginTbl - ON DOT_NO1 != '-1' AND DOT_NO2 != '-1' AND DOT_NO3 = '-1' AND DOT_NO4 = '-1' AND DOT_NO5 = '-1' - AND digital_map_to_fes.KEY_ID_TAG LIKE concat('digital.', tmpImportPsc3000PluginTbl.PLUGIN_NAME,'.%') - ; - - UPDATE digital INNER JOIN tblPsc3000PointToAdd ON concat('digital.',digital.TAG_NAME) = tblPsc3000PointToAdd.TAG_NAME - SET digital.VALUE_NUM = 2; - - #对于单控制 - - DELETE FROM tblPsc3000PointToAdd; - - INSERT INTO tblPsc3000PointToAdd(DEV_TAG,TAG_NAME,FES_TAG_NAME,DOT_NO,DESCRIPTION) - SELECT '',digital_control.TAG_NAME,'','0','' - FROM digital_control INNER JOIN tmpImportPsc3000PluginTbl - ON OFFSET_NO1 != '-1' AND OFFSET_NO2 = '-1' AND OFFSET_NO3 = '-1' AND OFFSET_NO4 = '-1' AND OFFSET_NO5 = '-1' - AND digital_control.TAG_NAME LIKE concat(tmpImportPsc3000PluginTbl.PLUGIN_NAME,'.%') - ; - - UPDATE digital_control INNER JOIN tblPsc3000PointToAdd ON digital_control.TAG_NAME = tblPsc3000PointToAdd.TAG_NAME - SET digital_control.OFFSET_NUM = 1; - - - #对于双控制 - DELETE FROM tblPsc3000PointToAdd; - - INSERT INTO tblPsc3000PointToAdd(DEV_TAG,TAG_NAME,FES_TAG_NAME,DOT_NO,DESCRIPTION) - SELECT '',digital_control.TAG_NAME,'','0','' - FROM digital_control INNER JOIN tmpImportPsc3000PluginTbl - ON OFFSET_NO1 != '-1' AND OFFSET_NO2 != '-1' AND OFFSET_NO3 = '-1' AND OFFSET_NO4 = '-1' AND OFFSET_NO5 = '-1' - AND digital_control.TAG_NAME LIKE concat(tmpImportPsc3000PluginTbl.PLUGIN_NAME,'.%') - ; - - UPDATE digital_control INNER JOIN tblPsc3000PointToAdd ON digital_control.TAG_NAME = tblPsc3000PointToAdd.TAG_NAME - SET digital_control.OFFSET_NUM = 2; - - #*****************************赵勇新增功能(给后台添加控制点与前置未关联的控制点进行关联)****************************** - #临时表 1:前置标签名,2:前置点号,3:后台标签名, 4:后台点描述 - CREATE TABLE IF NOT EXISTS tmpRelationControlTbl( - FES_TAG_NAME varchar(64), - DOT_NO decimal(10,0), - TAG_NAME varchar(64), - DESCRIPTION varchar(128), - DEVICE varchar(64) - ); - DELETE FROM tmpRelationControlTbl; - #digital_control 先给 digital中添加点,设置控制属性为是,再关联digital_control中的点 - INSERT INTO tmpRelationControlTbl(FES_TAG_NAME,DOT_NO,TAG_NAME,DESCRIPTION,DEVICE) - SELECT FES_DIGITAL_CTRL.TAG_NAME,FES_DIGITAL_CTRL.DOT_NO,CONCAT(locationTag,'.',DEV_GROUP_TAG,'_jgxh','.',psc3000_dig_ctrl.TAG_NAME),psc3000_dig_ctrl.DESCRIPTION,CONCAT(locationTag,'.',DEV_GROUP_TAG,'_jgxh') FROM FES_DIGITAL_CTRL - LEFT JOIN psc3000_dig_ctrl on RES_PARA_INT1 = REMOTE_NO - LEFT JOIN psc3000_plugin on psc3000_dig_ctrl.DEV_ID = FES_DEV_INST_ID - WHERE fes_digital_ctrl.RTU_TAG = rtuTag - and fes_digital_ctrl.DOT_NO not in - (SELECT OFFSET_NO1 FROM DIGITAL_CONTROL WHERE RTU_TAG = rtuTag AND OFFSET_NO1 <> -1) - and fes_digital_ctrl.DOT_NO not in - (SELECT OFFSET_NO2 FROM DIGITAL_CONTROL WHERE RTU_TAG = rtuTag AND OFFSET_NO2 <> -1) - and fes_digital_ctrl.DOT_NO not in - (SELECT OFFSET_NO3 FROM DIGITAL_CONTROL WHERE RTU_TAG = rtuTag AND OFFSET_NO3 <> -1) - and fes_digital_ctrl.DOT_NO not in - (SELECT OFFSET_NO4 FROM DIGITAL_CONTROL WHERE RTU_TAG = rtuTag AND OFFSET_NO4 <> -1) - and fes_digital_ctrl.DOT_NO not in - (SELECT OFFSET_NO5 FROM DIGITAL_CONTROL WHERE RTU_TAG = rtuTag AND OFFSET_NO5 <> -1) - ; - - #执行插入操作 - INSERT IGNORE INTO digital( - TAG_NAME, DESCRIPTION, DEVICE, SEQ_NO, LOCATION_ID, SUB_SYSTEM, RTU_TAG, IS_CONTROL, STATE_TEXT_NAME, VALUE_NUM, GRAY, CONTRAST, QCOLOR, VALUE, STATUS, LAST_UPDATE_TIME, VALUE1, STATUS1, LAST_CHANGE_TIME1, VALUE2, STATUS2, LAST_CHANGE_TIME2, VALUE3, STATUS3, LAST_CHANGE_TIME3, VALUE4, STATUS4, LAST_CHANGE_TIME4, VALUE5, STATUS5, LAST_CHANGE_TIME5, ALARM_PRIORITY, PIC_NAME, SOUND_NAME1, SOUND_NAME2, SOUND_NAME3, ALARM_DELAY_TIME, INPUT_DELAY_TIME, IS_WATER_ALM, IS_ACK_ON_RTN, DEL_ACT_ON_ACK, IS_NEVER_ALM_ON_RTN, REGION_ID, OPT_HANDOVER_GROUP, IS_SUMMARY, SUMMARY_VALUE, SUMMARY_STATUS, DEV_TYPE, POINT_TP_NAME, IS_SAMPLE, IS_STATISTICS, SAMPLE_PERIOD, IS_ALARM_FREQ, ALARM_FREQ, ALARM_FREQ_DESC, IS_ALARM_TIME, ALARM_TIME, ALARM_TIME_DESC, ALARM_FREQ_RANGE, INFER_NAME, POINT_TYPE, POINT_CLASS, POINT_PROPERTY, POINT_SORT, CAMERA_TAG, PRESET_ID ) - SELECT - tmpRelationControlTbl.TAG_NAME, tmpRelationControlTbl.DESCRIPTION,dev_info.TAG_NAME,getMaxSeq(dev_info.TAG_NAME,'digital')+1, locationId, subsystemId, rtuTag, '1', '', '1', dev_info.GRAY, dev_info.CONTRAST, dev_info.QCOLOR,dev_info.VALUE, dev_info.STATUS, 0, 0, 0, '0', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '1', '', '', '', '', '5', '1', '0', '1', '0', '0', regionId, dev_info.OPT_HANDOVER_GROUP, '0', '0', '0', dev_info.DEV_TYPE, '', '0', '0', '5', '0', '10', '计次报警描述', '0', '5', '计时报警描述', '30', '', '1', '0', '0', '300', '', '' - FROM tmpRelationControlTbl,dev_info - WHERE tmpRelationControlTbl.DEVICE = dev_info.TAG_NAME ; - #关联digital_control - UPDATE digital_control INNER JOIN tmpRelationControlTbl ON digital_control.TAG_NAME = tmpRelationControlTbl.TAG_NAME - SET digital_control.OFFSET_NUM = 1,OFFSET_NO1 = tmpRelationControlTbl.DOT_NO; - #analog_control - - #*****************************赵勇添加结束**************************************************************************** - - #第八步,删除空设备,临时表tmpImportPsc3000PluginTbl中存储设备信息 - UPDATE tmpImportPsc3000PluginTbl INNER JOIN digital ON tmpImportPsc3000PluginTbl.PLUGIN_NAME = digital.DEVICE - SET tmpImportPsc3000PluginTbl.DEV_GRP = ''; - - UPDATE tmpImportPsc3000PluginTbl INNER JOIN accuml ON tmpImportPsc3000PluginTbl.PLUGIN_NAME = accuml.DEVICE - SET tmpImportPsc3000PluginTbl.DEV_GRP = ''; - - UPDATE tmpImportPsc3000PluginTbl INNER JOIN analog ON tmpImportPsc3000PluginTbl.PLUGIN_NAME = analog.DEVICE - SET tmpImportPsc3000PluginTbl.DEV_GRP = ''; - - UPDATE tmpImportPsc3000PluginTbl INNER JOIN mix ON tmpImportPsc3000PluginTbl.PLUGIN_NAME = mix.DEVICE - SET tmpImportPsc3000PluginTbl.DEV_GRP = ''; - - #此时空设备的DEV_GRP不为空,删除 - DELETE dev_info FROM dev_info INNER JOIN tmpImportPsc3000PluginTbl ON dev_info.TAG_NAME = tmpImportPsc3000PluginTbl.PLUGIN_NAME - WHERE tmpImportPsc3000PluginTbl.DEV_GRP != ''; - - #第九步,要求自动同步描述 - /*SET hasDone = 0; - OPEN cur_2; - FETCH cur_2 INTO myDevTag; - - WHILE hasDone != 1 DO - - IF myDevTag IS NOT NULL THEN - BEGIN - CALL updateDescByFes(myDevTag); - END; - END IF; - - FETCH cur_2 INTO myDevTag; - - END WHILE; - CLOSE cur_2;*/ - - #第十步,先删除保护定值和数据块,再导入模板里的保护定值和数据块,此时tmpPsc3000PluginFesTempTbl表中是导入的前置设备 - DELETE fes_data_block FROM fes_data_block INNER JOIN tmpPsc3000PluginFesTempTbl WHERE fes_data_block.DEV_TAG = concat(rtuTag,'.',tmpPsc3000PluginFesTempTbl.TAG_NAME); - - INSERT INTO fes_data_block( - TAG_NAME, BLOCK_ID,RTU_TAG,RTU_NO, FUNC_CODE,STAR_ADDR,DATA_LEN, DATA_FARME_TYPE, REF_CYCLE, IS_CREATE_SOE, PARA_INT1, PARA_INT2, DESCRIPTION,LOCATION_ID, SUB_SYSTEM, LD, CALL_MODE, DATA_SET,DATA_SET_TYPE,DATA_SET_CALL_TIME,REPORT_CTRL,FES_POINT_TP_NAME, DEV_TAG) SELECT - concat(rtuTag,'.',tmpPsc3000PluginFesTempTbl.TAG_NAME,'.',getAfterLastDot(fes_data_block_temp.TAG_NAME)), BLOCK_ID,rtuTag, rtuNo, FUNC_CODE,STAR_ADDR,DATA_LEN, DATA_FARME_TYPE, REF_CYCLE, IS_CREATE_SOE, PARA_INT1, PARA_INT2, DESCRIPTION,locationId, subsystemId,LD, CALL_MODE, DATA_SET,DATA_SET_TYPE,DATA_SET_CALL_TIME,REPORT_CTRL,'', concat(rtuTag,'.',tmpPsc3000PluginFesTempTbl.TAG_NAME) - FROM tmpPsc3000PluginFesTempTbl INNER JOIN fes_data_block_temp ON tmpPsc3000PluginFesTempTbl.FES_TEMP = fes_data_block_temp.DEV_TP_NAME; - - #第十一步,修改PLC的设备ID,超过一万的要修改 - UPDATE fes_dev_info SET DEV_ID = IF((DEV_ID DIV 10000) = 0,DEV_ID,(DEV_ID DIV 10000)) WHERE RTU_TAG = rtuTag; -END;; -DELIMITER ; - -drop procedure if exists InsertForwardAcc; -DELIMITER ;; -CREATE DEFINER=`root`@`%` PROCEDURE `InsertForwardAcc`(rtuTagName varchar(64), startNum decimal(10,0)) -body:BEGIN - #使用本方法前,先把要插入的点,放在EXPORT_SEQ表中 - #批量插入前置表, - #rtuTagName 指明插入哪个转发RTU - #startNum 指明插入位置,当startNum等于指定rtuTagName的最大ID时,相当于末尾添加 - - DECLARE countNum int DEFAULT 0; - SELECT count(*) INTO countNum FROM export_seq; - - #相当于对要空出要插入的位置 - UPDATE fes_forwarding_accuml - SET ID = ID + countNum - WHERE RTU_TAG = rtuTagName AND ID > startNum ORDER BY ID DESC; - - INSERT INTO fes_forwarding_accuml - (RTU_TAG, ID, REMOTE_NO, TAG_NAME, DESCRIPTION, SHORT_NAME, FES_RTU_TAG, FES_RTU_NO, FES_DOT_NO, GROUP_NO, COEFF, BASE, PROPERTY, PARALONG_1, PARALONG_2, PARASTRING) - SELECT - rtuTagName,export_seq.`NO`,export_seq.`NO`,TAG_NAME, DESCRIPTION, '', RTU_TAG, RTU_NO, DOT_NO, '0', '0', '0', '0', '0', '0', '' - FROM export_seq,fes_accuml WHERE export_seq.DEV_TAG = fes_accuml.TAG_NAME; - -END;; -DELIMITER ; - -drop procedure if exists InsertForwardAna; -DELIMITER ;; -CREATE DEFINER=`root`@`%` PROCEDURE `InsertForwardAna`(rtuTagName varchar(64), startNum decimal(10,0)) -body:BEGIN - #使用本方法前,先把要插入的点,放在EXPORT_SEQ表中 - #批量插入前置表, - #rtuTagName 指明插入哪个转发RTU - #startNum 指明插入位置,当startNum等于指定rtuTagName的最大ID时,相当于末尾添加 - - DECLARE countNum int DEFAULT 0; - SELECT count(*) INTO countNum FROM export_seq; - - #相当于对要空出要插入的位置 - UPDATE fes_forwarding_anaolg - SET ID = ID + countNum - WHERE RTU_TAG = rtuTagName AND ID > startNum ORDER BY ID DESC; - - INSERT INTO fes_forwarding_anaolg - (RTU_TAG, ID, REMOTE_NO, TAG_NAME, DESCRIPTION, SHORT_NAME, FES_RTU_TAG, FES_RTU_NO, FES_DOT_NO, GROUP_NO, COEFF, BASE, DEADBAND, PROPERTY, PARALONG_1, PARALONG_2, PARASTRING) - SELECT - rtuTagName,export_seq.`NO`,export_seq.`NO`,TAG_NAME, DESCRIPTION, '', RTU_TAG, RTU_NO, DOT_NO, '0', '0', '0', '0', '0', '0', '0', '' - FROM export_seq,fes_analog WHERE export_seq.DEV_TAG = fes_analog.TAG_NAME; - -END;; -DELIMITER ; - -drop procedure if exists InsertForwardAnaCtrl; -DELIMITER ;; -CREATE DEFINER=`root`@`%` PROCEDURE `InsertForwardAnaCtrl`(rtuTagName varchar(64), startNum decimal(10,0)) -body:BEGIN - #使用本方法前,先把要插入的点,放在EXPORT_SEQ表中 - #批量插入前置表, - #rtuTagName 指明插入哪个转发RTU - #startNum 指明插入位置,当startNum等于指定rtuTagName的最大ID时,相当于末尾添加 - - DECLARE countNum int DEFAULT 0; - SELECT count(*) INTO countNum FROM export_seq; - - #相当于对要空出要插入的位置 - UPDATE fes_forwarding_anaolg_ctrl - SET ID = ID + countNum - WHERE RTU_TAG = rtuTagName AND ID > startNum ORDER BY ID DESC; - - INSERT INTO fes_forwarding_anaolg_ctrl - (RTU_TAG, ID, REMOTE_NO, TAG_NAME, DESCRIPTION, SHORT_NAME, FES_RTU_TAG, FES_RTU_NO, FES_DOT_NO, GROUP_NO, PROPERTY, PARALONG_1, PARALONG_2, PARASTRING) - SELECT - rtuTagName,export_seq.`NO`,export_seq.`NO`,TAG_NAME, DESCRIPTION, '', RTU_TAG, RTU_NO, DOT_NO, '0', '0', '0', '0', '' - FROM export_seq,fes_analog_ctrl WHERE export_seq.DEV_TAG = fes_analog_ctrl.TAG_NAME; - -END;; -DELIMITER ; - -drop procedure if exists InsertForwardDig; -DELIMITER ;; -CREATE DEFINER=`root`@`%` PROCEDURE `InsertForwardDig`(rtuTagName varchar(64), startNum decimal(10,0)) -body:BEGIN - #使用本方法前,先把要插入的点,放在EXPORT_SEQ表中 - #批量插入前置表, - #rtuTagName 指明插入哪个转发RTU - #startNum 指明插入位置,当startNum等于指定rtuTagName的最大ID时,相当于末尾添加 - - DECLARE countNum int DEFAULT 0; - SELECT count(*) INTO countNum FROM export_seq; - - #相当于对要空出要插入的位置 - UPDATE fes_forwarding_digital - SET ID = ID + countNum - WHERE RTU_TAG = rtuTagName AND ID > startNum ORDER BY ID DESC; - - INSERT INTO fes_forwarding_digital - (RTU_TAG, ID, REMOTE_NO, TAG_NAME, DESCRIPTION, SHORT_NAME, FES_RTU_TAG, FES_RTU_NO, FES_DOT_NO, GROUP_NO, REVERT, PROPERTY, PARALONG_1, PARALONG_2, PARASTRING) - SELECT - rtuTagName,export_seq.`NO`,export_seq.`NO`,TAG_NAME, DESCRIPTION, '', RTU_TAG, RTU_NO, DOT_NO, '0', '0', '0', '0', '0', '' - FROM export_seq,fes_digital WHERE export_seq.DEV_TAG = fes_digital.TAG_NAME; - -END;; -DELIMITER ; - -drop procedure if exists InsertForwardDigCtrl; -DELIMITER ;; -CREATE DEFINER=`root`@`%` PROCEDURE `InsertForwardDigCtrl`(rtuTagName varchar(64), startNum decimal(10,0)) -body:BEGIN - #使用本方法前,先把要插入的点,放在EXPORT_SEQ表中 - #批量插入前置表, - #rtuTagName 指明插入哪个转发RTU - #startNum 指明插入位置,当startNum等于指定rtuTagName的最大ID时,相当于末尾添加 - - DECLARE countNum int DEFAULT 0; - SELECT count(*) INTO countNum FROM export_seq; - - #相当于对要空出要插入的位置 - UPDATE fes_forwarding_digital_ctrl - SET ID = ID + countNum - WHERE RTU_TAG = rtuTagName AND ID > startNum ORDER BY ID DESC; - - INSERT INTO fes_forwarding_digital_ctrl - (RTU_TAG, ID, REMOTE_NO, TAG_NAME, DESCRIPTION, SHORT_NAME, FES_RTU_TAG, FES_RTU_NO, FES_DOT_NO, GROUP_NO, PROPERTY, PARALONG_1, PARALONG_2, PARASTRING) - SELECT - rtuTagName,export_seq.`NO`,export_seq.`NO`,TAG_NAME, DESCRIPTION, '', RTU_TAG, RTU_NO, DOT_NO, '0', '0', '0', '0', '' - FROM export_seq,fes_digital_ctrl WHERE export_seq.DEV_TAG = fes_digital_ctrl.TAG_NAME; - -END;; -DELIMITER ; - -drop procedure if exists instDevTempGroup; -DELIMITER ;; -CREATE DEFINER=`root`@`%` PROCEDURE `instDevTempGroup`(srcTempGroupName varchar(64), dstDevGroupName varchar(64)) -body:BEGIN - /* - * 实例化整个模板组 - */ - DECLARE locationTagName varchar(64) DEFAULT ''; - # DECLARE totalInst int DEFAULT 1; - - IF COALESCE(srcTempGroupName,'') = '' OR COALESCE(dstDevGroupName,'')='' - THEN LEAVE body; - END IF; - - SELECT sys_model_location_info.TAG_NAME INTO locationTagName - FROM dev_group,sys_model_location_info - WHERE - dev_group.TAG_NAME = dstDevGroupName AND - dev_group.LOCATION_ID = sys_model_location_info.LOCATION_ID; - - IF COALESCE(locationTagName,'') = '' - THEN LEAVE body; - END IF; - /* - SELECT count(*) INTO totalInst FROM dev_info WHERE TAG_NAME LIKE '%Xinst%'; - SET totalInst = totalInst + 1; - */ - - INSERT INTO dev_info( - TAG_NAME, DESCRIPTION, LOCATION_ID, SUB_SYSTEM, GROUP_TAG_NAME, VOL_LEVEL_ID, DEV_TYPE, GRAY, CONTRAST, QCOLOR, VALUE, STATUS, NODE_NO1, NODE_NO2, NODE_NO3, NODE_NO4, NODE_NO5, NODE_NO6, NODE_NO7, NODE_NO8, NODE_NO9, NODE_NO10, REGION_ID, OPT_HANDOVER_GROUP, IS_SUMMARY, SUMMARY_VALUE, SUMMARY_STATUS, DEV_TP_NAME) SELECT - concat(locationTagName,'.',getAfterLastDot(dstDevGroupName), dev_temp_def.TAG_NAME), dev_temp_def.DESCRIPTION, dev_group.LOCATION_ID, dev_group.SUB_SYSTEM, dstDevGroupName,'0', DEV_TYPE_ID, '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', REGION_ID, '', '0', '0', '0', dev_temp_def.TAG_NAME - FROM dev_group,dev_temp_group,dev_temp_def - WHERE - dev_group.TAG_NAME = dstDevGroupName AND - dev_temp_group.TAG_NAME = srcTempGroupName AND - dev_temp_group.TAG_NAME = dev_temp_def.DEV_TEMP_GRP; -END;; -DELIMITER ; - -drop procedure if exists instPlugin; -DELIMITER ;; -CREATE DEFINER=`root`@`%` PROCEDURE `instPlugin`(pluginName varchar(64),rtuTag varchar(64),devGroupName varchar(64), isBatchInGrp int,startNo int,countNo int) -body:BEGIN - #先实例化后台和前置设备,再关联 - #pluginName 套件名 - #rtuTag rtu名 - #devGroupName 设备组名 - #isBatchInGrp 是否在组内批量实例化 - #startNo 批量化的起始序号 - #countNo 批量的数量 - - #前置的命名规则更后台要有一一对应,批量时有编号,不批量时无编号 - #后台是设备组_模板名+编号 - #前置也是设备组_模板+编号 - DECLARE locationId decimal(10,0) DEFAULT 0; - DECLARE subsystemId decimal(10,0) DEFAULT 0; - DECLARE rtuNo decimal(10,0) DEFAULT 0; - DECLARE regionId decimal(10,0) DEFAULT 0; - DECLARE devGrpDesc varchar(128) DEFAULT ''; - DECLARE tempName varchar(64) DEFAULT ''; - DECLARE fesTempName varchar(64) DEFAULT ''; - DECLARE sampleGrpName varchar(64) DEFAULT ''; - DECLARE stepCount int DEFAULT 0; - DECLARE hasDone int DEFAULT 0; - DECLARE fesDevCount int DEFAULT 0; - DECLARE cur_relation CURSOR - FOR - SELECT TEMP_NAME,FES_TEMP_NAME FROM temp_plugin_fes_dev_map WHERE PLUGIN_NAME = pluginName; - DECLARE CONTINUE HANDLER FOR NOT FOUND SET hasDone = 1; - - SELECT LOCATION_ID,SUB_SYSTEM,RTU_NO INTO locationId,subsystemId,rtuNo FROM fes_rtu_para WHERE TAG_NAME = rtuTag; - SELECT REGION_ID,DESCRIPTION INTO regionId,devGrpDesc FROM dev_group WHERE TAG_NAME = devGroupName; - SET sampleGrpName = getAfterLastDot(devGroupName); - SET fesDevCount = (SELECT COUNT(*) FROM fes_dev_info WHERE RTU_NO = rtuNo); - - #不批量时 - IF isBatchInGrp <> 1 THEN - BEGIN - #实例化后台设备,注意TAG_NAME的命名规则 - INSERT INTO DEV_INFO - (TAG_NAME, DESCRIPTION, DEV_NAME, LOCATION_ID, SUB_SYSTEM, GROUP_TAG_NAME, VOL_LEVEL_ID, DEV_TYPE, GRAY, CONTRAST, QCOLOR, VALUE, STATUS, NODE_NO1, NODE_NO2, NODE_NO3, NODE_NO4, NODE_NO5, NODE_NO6, NODE_NO7, NODE_NO8, NODE_NO9, NODE_NO10, REGION_ID, OPT_HANDOVER_GROUP, IS_SUMMARY, SUMMARY_VALUE, SUMMARY_STATUS, DEV_TP_NAME) - SELECT - concat(devGroupName,'_',TEMP_NAME),DESCRIPTION,'', locationId, subsystemId,devGroupName, '0', DEV_TYPE_ID,'0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', regionId, '', '0', '0', '0', TEMP_NAME - FROM temp_plugin_dev_map,dev_temp_def WHERE PLUGIN_NAME = pluginName AND temp_plugin_dev_map.TEMP_NAME = dev_temp_def.TAG_NAME; - #实例化前置设备 - INSERT INTO FES_DEV_INFO - (DEV_DESC, DEV_ID,DEV_NAME, DEV_TP_NAME, DEV_TYPE_ID,LOCATION_ID,RTU_NO,RTU_TAG,SUB_SYSTEM,TAG_NAME) - SELECT - concat(devGrpDesc,'_',DESCRIPTION), fesDevCount, concat(sampleGrpName,'_',FES_TEMP_NAME) ,FES_TEMP_NAME,DEV_TYPE_ID,locationId, rtuNo, rtuTag, subsystemId,concat(rtuTag,'.',sampleGrpName,'_',FES_TEMP_NAME) - FROM temp_plugin_fes_dev_map, fes_dev_temp_def WHERE PLUGIN_NAME = pluginName AND temp_plugin_fes_dev_map.FES_TEMP_NAME = fes_dev_temp_def.TAG_NAME - GROUP BY temp_plugin_fes_dev_map.FES_TEMP_NAME; - - #循环调用存储过程进行关联 - OPEN cur_relation; - FETCH cur_relation INTO tempName,fesTempName; - WHILE hasDone != 1 DO - - CALL relationByPlugin(pluginName,concat(devGroupName,'_',tempName), concat(rtuTag,'.',sampleGrpName,'_',fesTempName)); - FETCH cur_relation INTO tempName,fesTempName; - END WHILE; - - CLOSE cur_relation; - END; - ELSE - BEGIN - #批量时,设备都带上编号 - #实例化后台设备,注意TAG_NAME的命名规则 - SET stepCount = startNo; - WHILE stepCount < (startNo + countNo) DO - INSERT INTO DEV_INFO - (TAG_NAME, DESCRIPTION, DEV_NAME, LOCATION_ID, SUB_SYSTEM, GROUP_TAG_NAME, VOL_LEVEL_ID, DEV_TYPE, GRAY, CONTRAST, QCOLOR, VALUE, STATUS, NODE_NO1, NODE_NO2, NODE_NO3, NODE_NO4, NODE_NO5, NODE_NO6, NODE_NO7, NODE_NO8, NODE_NO9, NODE_NO10, REGION_ID, OPT_HANDOVER_GROUP, IS_SUMMARY, SUMMARY_VALUE, SUMMARY_STATUS, DEV_TP_NAME) - SELECT - concat(devGroupName,'_',TEMP_NAME,stepCount),concat(DESCRIPTION,stepCount),'', locationId, subsystemId,devGroupName, '0', DEV_TYPE_ID,'0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', regionId, '', '0', '0', '0', TEMP_NAME - FROM temp_plugin_dev_map,dev_temp_def WHERE PLUGIN_NAME = pluginName AND temp_plugin_dev_map.TEMP_NAME = dev_temp_def.TAG_NAME; - #实例化前置设备 - INSERT INTO FES_DEV_INFO - (DEV_DESC, DEV_ID,DEV_NAME, DEV_TP_NAME, DEV_TYPE_ID,LOCATION_ID,RTU_NO,RTU_TAG,SUB_SYSTEM,TAG_NAME) - SELECT - concat(devGrpDesc,'_',DESCRIPTION,stepCount),fesDevCount, concat(sampleGrpName,'_',FES_TEMP_NAME,stepCount) ,FES_TEMP_NAME,DEV_TYPE_ID,locationId, rtuNo, rtuTag, subsystemId,concat(rtuTag,'.',sampleGrpName,'_',FES_TEMP_NAME,stepCount) - FROM temp_plugin_fes_dev_map, fes_dev_temp_def WHERE PLUGIN_NAME = pluginName AND temp_plugin_fes_dev_map.FES_TEMP_NAME = fes_dev_temp_def.TAG_NAME - GROUP BY temp_plugin_fes_dev_map.FES_TEMP_NAME; - - #循环调用存储过程进行关联 - OPEN cur_relation; - FETCH cur_relation INTO tempName,fesTempName; - WHILE hasDone != 1 DO - - CALL relationByPlugin(pluginName,concat(devGroupName,'_',tempName,stepCount), concat(rtuTag,'.',sampleGrpName,'_',fesTempName,stepCount)); - FETCH cur_relation INTO tempName,fesTempName; - END WHILE; - - CLOSE cur_relation; - - SET stepCount = stepCount + 1; - SET hasDone = 0; - END WHILE; - - END; - END IF; - - -END;; -DELIMITER ; - -drop procedure if exists instPluginByFesDev; -DELIMITER ;; -CREATE DEFINER=`root`@`%` PROCEDURE `instPluginByFesDev`(pluginName varchar(64),rtuTag varchar(64),devGroupName varchar(64), fesDevTag varchar(64),fesDevDes varchar(64)) -body:BEGIN - #先实例化后台和前置设备,再关联 - #pluginName 套件名 - #rtuTag rtu名 - #devGroupName 设备组名 - #fesDevTag 前置设备组标签 - #fesDevDes 前置设备组描述 - - DECLARE locationId decimal(10,0) DEFAULT 0; - DECLARE subsystemId decimal(10,0) DEFAULT 0; - DECLARE rtuNo decimal(10,0) DEFAULT 0; - DECLARE regionId decimal(10,0) DEFAULT 0; - DECLARE devGrpDesc varchar(128) DEFAULT ''; - DECLARE tempName varchar(64) DEFAULT ''; - DECLARE sampleGrpName varchar(64) DEFAULT ''; - DECLARE hasDone int DEFAULT 0; - DECLARE fesDevCount int DEFAULT 0; - DECLARE cur_relation CURSOR - FOR - SELECT TEMP_NAME FROM temp_plugin_fes_dev_map WHERE PLUGIN_NAME = pluginName; - DECLARE CONTINUE HANDLER FOR NOT FOUND SET hasDone = 1; - - SELECT LOCATION_ID,SUB_SYSTEM,RTU_NO INTO locationId,subsystemId,rtuNo FROM fes_rtu_para WHERE TAG_NAME = rtuTag; - SELECT REGION_ID,DESCRIPTION INTO regionId,devGrpDesc FROM dev_group WHERE TAG_NAME = devGroupName; - SET sampleGrpName = getAfterLastDot(devGroupName); - SET fesDevCount = (SELECT COUNT(*) FROM fes_dev_info WHERE RTU_NO = rtuNo); - - BEGIN - #实例化后台设备,注意TAG_NAME的命名规则 - INSERT INTO DEV_INFO - (TAG_NAME, DESCRIPTION, DEV_NAME, LOCATION_ID, SUB_SYSTEM, GROUP_TAG_NAME, VOL_LEVEL_ID, DEV_TYPE, GRAY, CONTRAST, QCOLOR, VALUE, STATUS, NODE_NO1, NODE_NO2, NODE_NO3, NODE_NO4, NODE_NO5, NODE_NO6, NODE_NO7, NODE_NO8, NODE_NO9, NODE_NO10, REGION_ID, OPT_HANDOVER_GROUP, IS_SUMMARY, SUMMARY_VALUE, SUMMARY_STATUS, DEV_TP_NAME) - SELECT - concat(devGroupName,'_',TEMP_NAME),DESCRIPTION,'', locationId, subsystemId,devGroupName, '0', DEV_TYPE_ID,'0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', regionId, '', '0', '0', '0', TEMP_NAME - FROM temp_plugin_dev_map,dev_temp_def WHERE PLUGIN_NAME = pluginName AND temp_plugin_dev_map.TEMP_NAME = dev_temp_def.TAG_NAME; - #实例化前置设备 - INSERT INTO FES_DEV_INFO - (DEV_DESC, DEV_ID, DEV_NAME, DEV_TP_NAME, DEV_TYPE_ID,LOCATION_ID,RTU_NO,RTU_TAG,SUB_SYSTEM,TAG_NAME) - SELECT - fesDevDes, fesDevCount, fesDevTag,FES_TEMP_NAME,DEV_TYPE_ID,locationId, rtuNo, rtuTag, subsystemId,concat(rtuTag,'.',fesDevTag) - FROM temp_plugin_fes_dev_map, fes_dev_temp_def WHERE PLUGIN_NAME = pluginName AND temp_plugin_fes_dev_map.FES_TEMP_NAME = fes_dev_temp_def.TAG_NAME - GROUP BY temp_plugin_fes_dev_map.FES_TEMP_NAME; - - #循环调用存储过程进行关联 - OPEN cur_relation; - FETCH cur_relation INTO tempName; - WHILE hasDone != 1 DO - - CALL relationByPlugin(pluginName,concat(devGroupName,'_',tempName), concat(rtuTag,'.',fesDevTag)); - FETCH cur_relation INTO tempName; - END WHILE; - - CLOSE cur_relation; - END; -END;; -DELIMITER ; - -drop procedure if exists relationByDevGroup; -DELIMITER ;; -CREATE DEFINER=`root`@`%` PROCEDURE `relationByDevGroup`(groupName varchar(64)) -body:BEGIN - /* - * 后台和前置相同设备组之间进行关联 - */ - - #创建临时表,分别存入map_to_fes的Key_ID_TAG,对应的RTU_TAG,和DOT_NO, OFFSET_NO对应的是digital有5个分量的情况 - CREATE TEMPORARY TABLE IF NOT EXISTS tmpRelationGroupTbl( - KEY_ID_TAG varchar(128) NOT NULL, - RTU_TAG varchar(64) NOT NULL, - DOT_NO varchar(48) NOT NULL, - OFFSET_NO decimal(10) - ); - DELETE FROM tmpRelationGroupTbl; - #以accuml为例,进行说明.把后台设备下的所有accuml点,和对应的前置设备下的fes_accuml点的Key_ID_TAG和DOT_NO写入临时表 - INSERT INTO tmpRelationGroupTbl (KEY_ID_TAG ,RTU_TAG, DOT_NO) - SELECT tb1.KEY_ID_TAG, tb2.RTU_TAG, tb2.DOT_NO - FROM - (SELECT accuml_map_to_fes.KEY_ID_TAG,accuml_temp_define.SEC_DEVTP_NAME,accuml_temp_define.SEC_DEV_IN_GRP,accuml_temp_define.SEC_SEQ_NO - FROM dev_info, accuml, accuml_map_to_fes,accuml_temp_define - WHERE - dev_info.GROUP_TAG_NAME = groupName AND - accuml.DEVICE = dev_info.TAG_NAME AND - accuml_map_to_fes.KEY_ID_TAG = concat('accuml','.' ,accuml.TAG_NAME) AND - accuml_map_to_fes.POINT_TP_NAME = accuml_temp_define.TAG_NAME AND - COALESCE(accuml_temp_define.SEC_SEQ_NO,-1) >= 0 - )tb1 INNER JOIN - (SELECT fes_accuml.RTU_TAG,fes_accuml.DOT_NO,fes_accuml.FES_POINT_TP_NAME,fes_accuml.SEQ_NO,fes_dev_info.NO_IN_DEV_GRP - FROM fes_dev_info, fes_accuml - WHERE - fes_dev_info.DEV_GROUP = groupName AND - fes_accuml.DEV_TAG = fes_dev_info.TAG_NAME - )tb2 - ON - tb1.SEC_DEVTP_NAME = getBeforeLastDot(tb2.FES_POINT_TP_NAME) AND - tb1.SEC_DEV_IN_GRP = tb2.NO_IN_DEV_GRP AND - tb1.SEC_SEQ_NO = tb2.SEQ_NO; - #假如前置点已经被占用,先清除 - UPDATE fes_accuml INNER JOIN tmpRelationGroupTbl ON - fes_accuml.TAG_NAME = concat(tmpRelationGroupTbl.RTU_TAG,'.', tmpRelationGroupTbl.DOT_NO) - SET APP_TABLE_NAME='',APP_TAG_NAME='',APP_COLUMN_NAME=''; - - #清除后台的 - UPDATE accuml INNER JOIN dev_info - ON dev_info.GROUP_TAG_NAME = groupName AND accuml.DEVICE = dev_info.TAG_NAME - SET RTU_TAG = ''; - - #模拟手动操作,先关联对应RTU,再关联对应点 - UPDATE accuml INNER JOIN tmpRelationGroupTbl - ON accuml.TAG_NAME = getAfterFirstDot(tmpRelationGroupTbl.KEY_ID_TAG) - SET accuml.RTU_TAG = tmpRelationGroupTbl.RTU_TAG; - - UPDATE accuml_map_to_fes INNER JOIN - (SELECT KEY_ID_TAG,DOT_NO - FROM tmpRelationGroupTbl GROUP BY RTU_TAG,DOT_NO ) t1 - ON accuml_map_to_fes.KEY_ID_TAG = t1.KEY_ID_TAG - SET accuml_map_to_fes.DOT_NO = t1.DOT_NO; - - #analog - DELETE FROM tmpRelationGroupTbl; - - INSERT INTO tmpRelationGroupTbl (KEY_ID_TAG ,RTU_TAG, DOT_NO) - SELECT tb1.KEY_ID_TAG, tb2.RTU_TAG, tb2.DOT_NO - FROM - (SELECT analog_map_to_fes.KEY_ID_TAG,analog_temp_define.SEC_DEVTP_NAME,analog_temp_define.SEC_DEV_IN_GRP,analog_temp_define.SEC_SEQ_NO - FROM dev_info,analog, analog_map_to_fes,analog_temp_define - WHERE - dev_info.GROUP_TAG_NAME = groupName AND - analog.DEVICE = dev_info.TAG_NAME AND - analog_map_to_fes.KEY_ID_TAG = concat('analog','.' ,analog.TAG_NAME) AND - analog_map_to_fes.POINT_TP_NAME = analog_temp_define.TAG_NAME AND - COALESCE(analog_temp_define.SEC_SEQ_NO,-1) >= 0 - )tb1 INNER JOIN - (SELECT fes_analog.RTU_TAG,fes_analog.DOT_NO,fes_analog.FES_POINT_TP_NAME,fes_analog.SEQ_NO,fes_dev_info.NO_IN_DEV_GRP - FROM fes_dev_info, fes_analog - WHERE - fes_dev_info.DEV_GROUP = groupName AND - fes_analog.DEV_TAG = fes_dev_info.TAG_NAME - )tb2 - ON - tb1.SEC_DEVTP_NAME = getBeforeLastDot(tb2.FES_POINT_TP_NAME) AND - tb1.SEC_DEV_IN_GRP = tb2.NO_IN_DEV_GRP AND - tb1.SEC_SEQ_NO = tb2.SEQ_NO; - - #假如前置点已经被占用,先清除 - UPDATE fes_analog INNER JOIN tmpRelationGroupTbl ON - fes_analog.TAG_NAME = concat(tmpRelationGroupTbl.RTU_TAG,'.', tmpRelationGroupTbl.DOT_NO) - SET APP_TABLE_NAME='',APP_TAG_NAME='',APP_COLUMN_NAME=''; - #清除后台的 - UPDATE analog INNER JOIN dev_info - ON dev_info.GROUP_TAG_NAME = groupName AND analog.DEVICE = dev_info.TAG_NAME - SET RTU_TAG = ''; - - UPDATE analog INNER JOIN tmpRelationGroupTbl - ON analog.TAG_NAME = getAfterFirstDot(tmpRelationGroupTbl.KEY_ID_TAG) - SET analog.RTU_TAG = tmpRelationGroupTbl.RTU_TAG; - - UPDATE analog_map_to_fes INNER JOIN - (SELECT KEY_ID_TAG,DOT_NO - FROM tmpRelationGroupTbl GROUP BY RTU_TAG,DOT_NO ) t1 - ON analog_map_to_fes.KEY_ID_TAG = t1.KEY_ID_TAG - SET analog_map_to_fes.DOT_NO = t1.DOT_NO; - - #DIGITAL - - DELETE FROM tmpRelationGroupTbl; - - INSERT INTO tmpRelationGroupTbl (KEY_ID_TAG ,RTU_TAG, DOT_NO,OFFSET_NO) - SELECT tb1.KEY_ID_TAG, tb2.RTU_TAG, tb2.DOT_NO ,1 - FROM - (SELECT digital_map_to_fes.KEY_ID_TAG,digital_temp_define.SEC_DEVTP_NAME,digital_temp_define.SEC_DEV_IN_GRP,digital_temp_define.SEC_SEQ_NO1 - FROM dev_info,digital, digital_map_to_fes,digital_temp_define - WHERE - dev_info.GROUP_TAG_NAME = groupName AND - digital.DEVICE = dev_info.TAG_NAME AND - digital_map_to_fes.KEY_ID_TAG = concat('digital','.' ,digital.TAG_NAME) AND - digital_map_to_fes.POINT_TP_NAME = digital_temp_define.TAG_NAME AND - COALESCE(digital_temp_define.SEC_SEQ_NO1,-1) >= 0 - )tb1 INNER JOIN - (SELECT fes_digital.RTU_TAG,fes_digital.DOT_NO,fes_digital.FES_POINT_TP_NAME,fes_digital.SEQ_NO,fes_dev_info.NO_IN_DEV_GRP - FROM fes_dev_info, fes_digital - WHERE - fes_dev_info.DEV_GROUP = groupName AND - fes_digital.DEV_TAG = fes_dev_info.TAG_NAME - )tb2 - ON - tb1.SEC_DEVTP_NAME = getBeforeLastDot(tb2.FES_POINT_TP_NAME) AND - tb1.SEC_DEV_IN_GRP = tb2.NO_IN_DEV_GRP AND - tb1.SEC_SEQ_NO1 = tb2.SEQ_NO; - - INSERT INTO tmpRelationGroupTbl (KEY_ID_TAG ,RTU_TAG, DOT_NO,OFFSET_NO) - SELECT tb1.KEY_ID_TAG, tb2.RTU_TAG, tb2.DOT_NO ,2 - FROM - (SELECT digital_map_to_fes.KEY_ID_TAG,digital_temp_define.SEC_DEVTP_NAME,digital_temp_define.SEC_DEV_IN_GRP,digital_temp_define.SEC_SEQ_NO2 - FROM dev_info,digital, digital_map_to_fes,digital_temp_define - WHERE - dev_info.GROUP_TAG_NAME = groupName AND - digital.DEVICE = dev_info.TAG_NAME AND - digital_map_to_fes.KEY_ID_TAG = concat('digital','.' ,digital.TAG_NAME) AND - digital_map_to_fes.POINT_TP_NAME = digital_temp_define.TAG_NAME AND - COALESCE(digital_temp_define.SEC_SEQ_NO2,-1) >= 0 - )tb1 INNER JOIN - (SELECT fes_digital.RTU_TAG,fes_digital.DOT_NO,fes_digital.FES_POINT_TP_NAME,fes_digital.SEQ_NO,fes_dev_info.NO_IN_DEV_GRP - FROM fes_dev_info, fes_digital - WHERE - fes_dev_info.DEV_GROUP = groupName AND - fes_digital.DEV_TAG = fes_dev_info.TAG_NAME - )tb2 - ON - tb1.SEC_DEVTP_NAME = getBeforeLastDot(tb2.FES_POINT_TP_NAME) AND - tb1.SEC_DEV_IN_GRP = tb2.NO_IN_DEV_GRP AND - tb1.SEC_SEQ_NO2 = tb2.SEQ_NO; - - INSERT INTO tmpRelationGroupTbl (KEY_ID_TAG ,RTU_TAG, DOT_NO,OFFSET_NO) - SELECT tb1.KEY_ID_TAG, tb2.RTU_TAG, tb2.DOT_NO ,3 - FROM - (SELECT digital_map_to_fes.KEY_ID_TAG,digital_temp_define.SEC_DEVTP_NAME,digital_temp_define.SEC_DEV_IN_GRP,digital_temp_define.SEC_SEQ_NO3 - FROM dev_info,digital, digital_map_to_fes,digital_temp_define - WHERE - dev_info.GROUP_TAG_NAME = groupName AND - digital.DEVICE = dev_info.TAG_NAME AND - digital_map_to_fes.KEY_ID_TAG = concat('digital','.' ,digital.TAG_NAME) AND - digital_map_to_fes.POINT_TP_NAME = digital_temp_define.TAG_NAME AND - COALESCE(digital_temp_define.SEC_SEQ_NO3,-1) >= 0 - )tb1 INNER JOIN - (SELECT fes_digital.RTU_TAG,fes_digital.DOT_NO,fes_digital.FES_POINT_TP_NAME,fes_digital.SEQ_NO,fes_dev_info.NO_IN_DEV_GRP - FROM fes_dev_info, fes_digital - WHERE - fes_dev_info.DEV_GROUP = groupName AND - fes_digital.DEV_TAG = fes_dev_info.TAG_NAME - )tb2 - ON - tb1.SEC_DEVTP_NAME = getBeforeLastDot(tb2.FES_POINT_TP_NAME) AND - tb1.SEC_DEV_IN_GRP = tb2.NO_IN_DEV_GRP AND - tb1.SEC_SEQ_NO3 = tb2.SEQ_NO; - - INSERT INTO tmpRelationGroupTbl (KEY_ID_TAG ,RTU_TAG, DOT_NO,OFFSET_NO) - SELECT tb1.KEY_ID_TAG, tb2.RTU_TAG, tb2.DOT_NO ,4 - FROM - (SELECT digital_map_to_fes.KEY_ID_TAG,digital_temp_define.SEC_DEVTP_NAME,digital_temp_define.SEC_DEV_IN_GRP,digital_temp_define.SEC_SEQ_NO4 - FROM dev_info,digital, digital_map_to_fes,digital_temp_define - WHERE - dev_info.GROUP_TAG_NAME = groupName AND - digital.DEVICE = dev_info.TAG_NAME AND - digital_map_to_fes.KEY_ID_TAG = concat('digital','.' ,digital.TAG_NAME) AND - digital_map_to_fes.POINT_TP_NAME = digital_temp_define.TAG_NAME AND - COALESCE(digital_temp_define.SEC_SEQ_NO4,-1) >= 0 - )tb1 INNER JOIN - (SELECT fes_digital.RTU_TAG,fes_digital.DOT_NO,fes_digital.FES_POINT_TP_NAME,fes_digital.SEQ_NO,fes_dev_info.NO_IN_DEV_GRP - FROM fes_dev_info, fes_digital - WHERE - fes_dev_info.DEV_GROUP = groupName AND - fes_digital.DEV_TAG = fes_dev_info.TAG_NAME - )tb2 - ON - tb1.SEC_DEVTP_NAME = getBeforeLastDot(tb2.FES_POINT_TP_NAME) AND - tb1.SEC_DEV_IN_GRP = tb2.NO_IN_DEV_GRP AND - tb1.SEC_SEQ_NO4 = tb2.SEQ_NO; - - INSERT INTO tmpRelationGroupTbl (KEY_ID_TAG ,RTU_TAG, DOT_NO,OFFSET_NO) - SELECT tb1.KEY_ID_TAG, tb2.RTU_TAG, tb2.DOT_NO ,5 - FROM - (SELECT digital_map_to_fes.KEY_ID_TAG,digital_temp_define.SEC_DEVTP_NAME,digital_temp_define.SEC_DEV_IN_GRP,digital_temp_define.SEC_SEQ_NO5 - FROM dev_info,digital, digital_map_to_fes,digital_temp_define - WHERE - dev_info.GROUP_TAG_NAME = groupName AND - digital.DEVICE = dev_info.TAG_NAME AND - digital_map_to_fes.KEY_ID_TAG = concat('digital','.' ,digital.TAG_NAME) AND - digital_map_to_fes.POINT_TP_NAME = digital_temp_define.TAG_NAME AND - COALESCE(digital_temp_define.SEC_SEQ_NO5,-1) >= 0 - )tb1 INNER JOIN - (SELECT fes_digital.RTU_TAG,fes_digital.DOT_NO,fes_digital.FES_POINT_TP_NAME,fes_digital.SEQ_NO,fes_dev_info.NO_IN_DEV_GRP - FROM fes_dev_info, fes_digital - WHERE - fes_dev_info.DEV_GROUP = groupName AND - fes_digital.DEV_TAG = fes_dev_info.TAG_NAME - )tb2 - ON - tb1.SEC_DEVTP_NAME = getBeforeLastDot(tb2.FES_POINT_TP_NAME) AND - tb1.SEC_DEV_IN_GRP = tb2.NO_IN_DEV_GRP AND - tb1.SEC_SEQ_NO5 = tb2.SEQ_NO; - - - #假如前置点已经被占用,先清除 - UPDATE fes_digital INNER JOIN tmpRelationGroupTbl ON - fes_digital.TAG_NAME = concat(tmpRelationGroupTbl.RTU_TAG,'.', tmpRelationGroupTbl.DOT_NO) - SET APP_TABLE_NAME='',APP_TAG_NAME='',APP_COLUMN_NAME=''; - #清除后台的 - UPDATE digital INNER JOIN dev_info - ON dev_info.GROUP_TAG_NAME = groupName AND digital.DEVICE = dev_info.TAG_NAME - SET RTU_TAG = ''; - - UPDATE digital INNER JOIN tmpRelationGroupTbl - ON digital.TAG_NAME = getAfterFirstDot(tmpRelationGroupTbl.KEY_ID_TAG) - SET digital.RTU_TAG = tmpRelationGroupTbl.RTU_TAG; - - UPDATE digital_map_to_fes INNER JOIN - (SELECT KEY_ID_TAG,DOT_NO,OFFSET_NO - FROM tmpRelationGroupTbl GROUP BY RTU_TAG,DOT_NO ) t1 - ON digital_map_to_fes.KEY_ID_TAG = t1.KEY_ID_TAG AND t1.OFFSET_NO = 1 - SET digital_map_to_fes.DOT_NO1 = t1.DOT_NO; - - UPDATE digital_map_to_fes INNER JOIN - (SELECT KEY_ID_TAG,DOT_NO,OFFSET_NO - FROM tmpRelationGroupTbl GROUP BY RTU_TAG,DOT_NO ) t1 - ON digital_map_to_fes.KEY_ID_TAG = t1.KEY_ID_TAG AND t1.OFFSET_NO = 2 - SET digital_map_to_fes.DOT_NO2 = t1.DOT_NO; - - UPDATE digital_map_to_fes INNER JOIN - (SELECT KEY_ID_TAG,DOT_NO,OFFSET_NO - FROM tmpRelationGroupTbl GROUP BY RTU_TAG,DOT_NO ) t1 - ON digital_map_to_fes.KEY_ID_TAG = t1.KEY_ID_TAG AND t1.OFFSET_NO = 3 - SET digital_map_to_fes.DOT_NO3 = t1.DOT_NO; - - UPDATE digital_map_to_fes INNER JOIN - (SELECT KEY_ID_TAG,DOT_NO,OFFSET_NO - FROM tmpRelationGroupTbl GROUP BY RTU_TAG,DOT_NO ) t1 - ON digital_map_to_fes.KEY_ID_TAG = t1.KEY_ID_TAG AND t1.OFFSET_NO = 4 - SET digital_map_to_fes.DOT_NO4 = t1.DOT_NO; - - UPDATE digital_map_to_fes INNER JOIN - (SELECT KEY_ID_TAG,DOT_NO,OFFSET_NO - FROM tmpRelationGroupTbl GROUP BY RTU_TAG,DOT_NO ) t1 - ON digital_map_to_fes.KEY_ID_TAG = t1.KEY_ID_TAG AND t1.OFFSET_NO = 5 - SET digital_map_to_fes.DOT_NO5 = t1.DOT_NO; - - #mix - DELETE FROM tmpRelationGroupTbl; - - INSERT INTO tmpRelationGroupTbl (KEY_ID_TAG ,RTU_TAG, DOT_NO) - SELECT tb1.KEY_ID_TAG, tb2.RTU_TAG, tb2.DOT_NO - FROM - (SELECT mix_map_to_fes.KEY_ID_TAG,mix_temp_define.SEC_DEVTP_NAME,mix_temp_define.SEC_DEV_IN_GRP,mix_temp_define.SEC_SEQ_NO - FROM dev_info,mix, mix_map_to_fes,mix_temp_define - WHERE - dev_info.GROUP_TAG_NAME = groupName AND - mix.DEVICE = dev_info.TAG_NAME AND - mix_map_to_fes.KEY_ID_TAG = concat('mix','.' ,mix.TAG_NAME) AND - mix_map_to_fes.POINT_TP_NAME = mix_temp_define.TAG_NAME AND - COALESCE(mix_temp_define.SEC_SEQ_NO,-1) >= 0 - )tb1 INNER JOIN - (SELECT fes_mix.RTU_TAG,fes_mix.DOT_NO,fes_mix.FES_POINT_TP_NAME,fes_mix.SEQ_NO,fes_dev_info.NO_IN_DEV_GRP - FROM fes_dev_info, fes_mix - WHERE - fes_dev_info.DEV_GROUP = groupName AND - fes_mix.DEV_TAG = fes_dev_info.TAG_NAME - )tb2 - ON - tb1.SEC_DEVTP_NAME = getBeforeLastDot(tb2.FES_POINT_TP_NAME) AND - tb1.SEC_DEV_IN_GRP = tb2.NO_IN_DEV_GRP AND - tb1.SEC_SEQ_NO = tb2.SEQ_NO; - - - #假如前置点已经被占用,先清除 - UPDATE fes_mix INNER JOIN tmpRelationGroupTbl ON - fes_mix.TAG_NAME = concat(tmpRelationGroupTbl.RTU_TAG,'.', tmpRelationGroupTbl.DOT_NO) - SET APP_TABLE_NAME='',APP_TAG_NAME='',APP_COLUMN_NAME=''; - #清除后台的 - UPDATE mix INNER JOIN dev_info - ON dev_info.GROUP_TAG_NAME = groupName AND mix.DEVICE = dev_info.TAG_NAME - SET RTU_TAG = ''; - - UPDATE mix INNER JOIN tmpRelationGroupTbl - ON mix.TAG_NAME = getAfterFirstDot(tmpRelationGroupTbl.KEY_ID_TAG) - SET mix.RTU_TAG = tmpRelationGroupTbl.RTU_TAG; - - UPDATE mix_map_to_fes INNER JOIN - (SELECT KEY_ID_TAG,DOT_NO - FROM tmpRelationGroupTbl GROUP BY RTU_TAG,DOT_NO ) t1 - ON mix_map_to_fes.KEY_ID_TAG = t1.KEY_ID_TAG - SET mix_map_to_fes.DOT_NO = t1.DOT_NO; - - #控制点的关联,因为有控制点,肯定有前置点,所以控制表Ctrl中的RTU在上面已经填入了,这里只需要填写控制的点号 - #analog_ctrl - DELETE FROM tmpRelationGroupTbl; - INSERT INTO tmpRelationGroupTbl (KEY_ID_TAG ,RTU_TAG, DOT_NO ) - SELECT tb1.TAG_NAME,tb2.RTU_TAG, tb2.DOT_NO - FROM - (SELECT analog_control.TAG_NAME,analog_temp_define.OUT_SEC_SEQ_NO ,analog_temp_define.SEC_DEVTP_NAME,analog_temp_define.SEC_DEV_IN_GRP - FROM dev_info,analog, analog_control,analog_temp_define - WHERE - dev_info.GROUP_TAG_NAME = groupName AND - analog.DEVICE = dev_info.TAG_NAME AND - analog_control.TAG_NAME = analog.TAG_NAME AND - analog_control.POINT_TP_NAME= analog_temp_define.TAG_NAME AND - COALESCE(analog_temp_define.OUT_SEC_SEQ_NO,-1) >= 0 - )tb1 - INNER JOIN - (SELECT fes_analog_ctrl.DOT_NO,fes_analog_ctrl.RTU_TAG , fes_analog_ctrl.SEQ_NO ,fes_analog_ctrl.POINT_TP_NAME,fes_dev_info.NO_IN_DEV_GRP - FROM fes_dev_info,fes_analog_ctrl - WHERE - fes_dev_info.DEV_GROUP = groupName AND - fes_analog_ctrl.DEV_TAG = fes_dev_info.TAG_NAME - )tb2 - ON - tb1.SEC_DEVTP_NAME = getBeforeLastDot(tb2.POINT_TP_NAME) AND - tb1.OUT_SEC_SEQ_NO = tb2.SEQ_NO AND - tb1.SEC_DEV_IN_GRP = tb2.NO_IN_DEV_GRP; - - UPDATE analog_control INNER JOIN - (SELECT KEY_ID_TAG,DOT_NO - FROM tmpRelationGroupTbl GROUP BY RTU_TAG,DOT_NO ) t1 - ON analog_control.TAG_NAME = t1.KEY_ID_TAG - SET analog_control.OFFSET_NO = t1.DOT_NO; - - #digital_Ctrl - DELETE FROM tmpRelationGroupTbl; - - INSERT INTO tmpRelationGroupTbl (KEY_ID_TAG ,RTU_TAG, DOT_NO ,OFFSET_NO) - SELECT tb1.TAG_NAME,tb2.RTU_TAG, tb2.DOT_NO ,1 - FROM - (SELECT digital_control.TAG_NAME,digital_temp_define.OUT_SEC_SEQ_NO1 ,digital_temp_define.SEC_DEVTP_NAME,digital_temp_define.SEC_DEV_IN_GRP - FROM dev_info,digital, digital_control,digital_temp_define - WHERE - dev_info.GROUP_TAG_NAME = groupName AND - digital.DEVICE = dev_info.TAG_NAME AND - digital_control.TAG_NAME = digital.TAG_NAME AND - digital_control.POINT_TP_NAME= digital_temp_define.TAG_NAME AND - COALESCE(digital_temp_define.OUT_SEC_SEQ_NO1,-1) >= 0 - )tb1 - INNER JOIN - (SELECT fes_digital_ctrl.DOT_NO,fes_digital_ctrl.RTU_TAG, fes_digital_ctrl.SEQ_NO ,fes_digital_ctrl.POINT_TP_NAME,fes_dev_info.NO_IN_DEV_GRP - FROM fes_dev_info,fes_digital_ctrl - WHERE - fes_dev_info.DEV_GROUP = groupName AND - fes_digital_ctrl.DEV_TAG = fes_dev_info.TAG_NAME - )tb2 - ON - tb1.SEC_DEVTP_NAME = getBeforeLastDot(tb2.POINT_TP_NAME) AND - tb1.OUT_SEC_SEQ_NO1 = tb2.SEQ_NO AND - tb1.SEC_DEV_IN_GRP = tb2.NO_IN_DEV_GRP; - - INSERT INTO tmpRelationGroupTbl (KEY_ID_TAG ,RTU_TAG, DOT_NO ,OFFSET_NO) - SELECT tb1.TAG_NAME,tb2.RTU_TAG, tb2.DOT_NO ,2 - FROM - (SELECT digital_control.TAG_NAME,digital_temp_define.OUT_SEC_SEQ_NO2 ,digital_temp_define.SEC_DEVTP_NAME,digital_temp_define.SEC_DEV_IN_GRP - FROM dev_info,digital, digital_control,digital_temp_define - WHERE - dev_info.GROUP_TAG_NAME = groupName AND - digital.DEVICE = dev_info.TAG_NAME AND - digital_control.TAG_NAME = digital.TAG_NAME AND - digital_control.POINT_TP_NAME= digital_temp_define.TAG_NAME AND - COALESCE(digital_temp_define.OUT_SEC_SEQ_NO2,-1) >= 0 - )tb1 - INNER JOIN - (SELECT fes_digital_ctrl.DOT_NO, fes_digital_ctrl.RTU_TAG,fes_digital_ctrl.SEQ_NO ,fes_digital_ctrl.POINT_TP_NAME,fes_dev_info.NO_IN_DEV_GRP - FROM fes_dev_info,fes_digital_ctrl - WHERE - fes_dev_info.DEV_GROUP = groupName AND - fes_digital_ctrl.DEV_TAG = fes_dev_info.TAG_NAME - )tb2 - ON - tb1.SEC_DEVTP_NAME = getBeforeLastDot(tb2.POINT_TP_NAME) AND - tb1.OUT_SEC_SEQ_NO2 = tb2.SEQ_NO AND - tb1.SEC_DEV_IN_GRP = tb2.NO_IN_DEV_GRP; - - INSERT INTO tmpRelationGroupTbl (KEY_ID_TAG ,RTU_TAG, DOT_NO ,OFFSET_NO) - SELECT tb1.TAG_NAME,tb2.RTU_TAG, tb2.DOT_NO ,3 - FROM - (SELECT digital_control.TAG_NAME,digital_temp_define.OUT_SEC_SEQ_NO3 ,digital_temp_define.SEC_DEVTP_NAME,digital_temp_define.SEC_DEV_IN_GRP - FROM dev_info,digital, digital_control,digital_temp_define - WHERE - dev_info.GROUP_TAG_NAME = groupName AND - digital.DEVICE = dev_info.TAG_NAME AND - digital_control.TAG_NAME = digital.TAG_NAME AND - digital_control.POINT_TP_NAME= digital_temp_define.TAG_NAME AND - COALESCE(digital_temp_define.OUT_SEC_SEQ_NO3,-1) >= 0 - )tb1 - INNER JOIN - (SELECT fes_digital_ctrl.DOT_NO,fes_digital_ctrl.RTU_TAG, fes_digital_ctrl.SEQ_NO ,fes_digital_ctrl.POINT_TP_NAME,fes_dev_info.NO_IN_DEV_GRP - FROM fes_dev_info,fes_digital_ctrl - WHERE - fes_dev_info.DEV_GROUP = groupName AND - fes_digital_ctrl.DEV_TAG = fes_dev_info.TAG_NAME - )tb2 - ON - tb1.SEC_DEVTP_NAME = getBeforeLastDot(tb2.POINT_TP_NAME) AND - tb1.OUT_SEC_SEQ_NO3 = tb2.SEQ_NO AND - tb1.SEC_DEV_IN_GRP = tb2.NO_IN_DEV_GRP; - - INSERT INTO tmpRelationGroupTbl (KEY_ID_TAG ,RTU_TAG, DOT_NO ,OFFSET_NO) - SELECT tb1.TAG_NAME,tb2.RTU_TAG, tb2.DOT_NO ,4 - FROM - (SELECT digital_control.TAG_NAME,digital_temp_define.OUT_SEC_SEQ_NO4 ,digital_temp_define.SEC_DEVTP_NAME,digital_temp_define.SEC_DEV_IN_GRP - FROM dev_info,digital,digital_control,digital_temp_define - WHERE - dev_info.GROUP_TAG_NAME = groupName AND - digital.DEVICE = dev_info.TAG_NAME AND - digital_control.TAG_NAME = digital.TAG_NAME AND - digital_control.POINT_TP_NAME= digital_temp_define.TAG_NAME AND - COALESCE(digital_temp_define.OUT_SEC_SEQ_NO4,-1) >= 0 - )tb1 - INNER JOIN - (SELECT fes_digital_ctrl.DOT_NO,fes_digital_ctrl.RTU_TAG, fes_digital_ctrl.SEQ_NO ,fes_digital_ctrl.POINT_TP_NAME,fes_dev_info.NO_IN_DEV_GRP - FROM fes_dev_info,fes_digital_ctrl - WHERE - fes_dev_info.DEV_GROUP = groupName AND - fes_digital_ctrl.DEV_TAG = fes_dev_info.TAG_NAME - )tb2 - ON - tb1.SEC_DEVTP_NAME = getBeforeLastDot(tb2.POINT_TP_NAME) AND - tb1.OUT_SEC_SEQ_NO4 = tb2.SEQ_NO AND - tb1.SEC_DEV_IN_GRP = tb2.NO_IN_DEV_GRP; - - INSERT INTO tmpRelationGroupTbl (KEY_ID_TAG ,RTU_TAG, DOT_NO ,OFFSET_NO) - SELECT tb1.TAG_NAME,tb2.RTU_TAG, tb2.DOT_NO ,5 - FROM - (SELECT digital_control.TAG_NAME,digital_temp_define.OUT_SEC_SEQ_NO5 ,digital_temp_define.SEC_DEVTP_NAME,digital_temp_define.SEC_DEV_IN_GRP - FROM dev_info,digital,digital_control,digital_temp_define - WHERE - dev_info.GROUP_TAG_NAME = groupName AND - digital.DEVICE = dev_info.TAG_NAME AND - digital_control.TAG_NAME = digital.TAG_NAME AND - digital_control.POINT_TP_NAME= digital_temp_define.TAG_NAME AND - COALESCE(digital_temp_define.OUT_SEC_SEQ_NO5,-1) >= 0 - )tb1 - INNER JOIN - (SELECT fes_digital_ctrl.DOT_NO,fes_digital_ctrl.RTU_TAG, fes_digital_ctrl.SEQ_NO ,fes_digital_ctrl.POINT_TP_NAME,fes_dev_info.NO_IN_DEV_GRP - FROM fes_dev_info,fes_digital_ctrl - WHERE - fes_dev_info.DEV_GROUP = groupName AND - fes_digital_ctrl.DEV_TAG = fes_dev_info.TAG_NAME - )tb2 - ON - tb1.SEC_DEVTP_NAME = getBeforeLastDot(tb2.POINT_TP_NAME) AND - tb1.OUT_SEC_SEQ_NO5 = tb2.SEQ_NO AND - tb1.SEC_DEV_IN_GRP = tb2.NO_IN_DEV_GRP; - - UPDATE digital_control INNER JOIN - (SELECT KEY_ID_TAG,DOT_NO ,OFFSET_NO - FROM tmpRelationGroupTbl GROUP BY RTU_TAG,DOT_NO ) t1 - ON digital_control.TAG_NAME = t1.KEY_ID_TAG AND t1.OFFSET_NO = 1 - SET digital_control.OFFSET_NO1 = t1.DOT_NO; - - UPDATE digital_control INNER JOIN - (SELECT KEY_ID_TAG,DOT_NO ,OFFSET_NO - FROM tmpRelationGroupTbl GROUP BY RTU_TAG,DOT_NO ) t1 - ON digital_control.TAG_NAME = t1.KEY_ID_TAG AND t1.OFFSET_NO = 2 - SET digital_control.OFFSET_NO2 = t1.DOT_NO; - - UPDATE digital_control INNER JOIN - (SELECT KEY_ID_TAG,DOT_NO ,OFFSET_NO - FROM tmpRelationGroupTbl GROUP BY RTU_TAG,DOT_NO ) t1 - ON digital_control.TAG_NAME = t1.KEY_ID_TAG AND t1.OFFSET_NO = 3 - SET digital_control.OFFSET_NO3 = t1.DOT_NO; - - UPDATE digital_control INNER JOIN - (SELECT KEY_ID_TAG,DOT_NO ,OFFSET_NO - FROM tmpRelationGroupTbl GROUP BY RTU_TAG,DOT_NO ) t1 - ON digital_control.TAG_NAME = t1.KEY_ID_TAG AND t1.OFFSET_NO = 4 - SET digital_control.OFFSET_NO4 = t1.DOT_NO; - - UPDATE digital_control INNER JOIN - (SELECT KEY_ID_TAG,DOT_NO ,OFFSET_NO - FROM tmpRelationGroupTbl GROUP BY RTU_TAG,DOT_NO ) t1 - ON digital_control.TAG_NAME = t1.KEY_ID_TAG AND t1.OFFSET_NO = 5 - SET digital_control.OFFSET_NO5 = t1.DOT_NO; - - #mix_ctrl - DELETE FROM tmpRelationGroupTbl; - - INSERT INTO tmpRelationGroupTbl (KEY_ID_TAG ,RTU_TAG, DOT_NO ) - SELECT tb1.TAG_NAME, tb2.RTU_TAG,tb2.DOT_NO - FROM - (SELECT mix_control.TAG_NAME,mix_temp_define.OUT_SEC_SEQ_NO ,mix_temp_define.SEC_DEVTP_NAME,mix_temp_define.SEC_DEV_IN_GRP - FROM dev_info,mix, mix_control,mix_temp_define - WHERE - dev_info.GROUP_TAG_NAME = groupName AND - mix.DEVICE = dev_info.TAG_NAME AND - mix_control.TAG_NAME = mix.TAG_NAME AND - mix_control.POINT_TP_NAME= mix_temp_define.TAG_NAME AND - COALESCE(mix_temp_define.OUT_SEC_SEQ_NO,-1) >= 0 - )tb1 - INNER JOIN - (SELECT fes_mix_ctrl.DOT_NO,fes_mix_ctrl.RTU_TAG, fes_mix_ctrl.SEQ_NO ,fes_mix_ctrl.POINT_TP_NAME,fes_dev_info.NO_IN_DEV_GRP - FROM fes_dev_info,fes_mix_ctrl - WHERE - fes_dev_info.DEV_GROUP = groupName AND - fes_mix_ctrl.DEV_TAG = fes_dev_info.TAG_NAME - )tb2 - ON - tb1.SEC_DEVTP_NAME = getBeforeLastDot(tb2.POINT_TP_NAME) AND - tb1.OUT_SEC_SEQ_NO = tb2.SEQ_NO AND - tb1.SEC_DEV_IN_GRP = tb2.NO_IN_DEV_GRP; - - UPDATE mix_control INNER JOIN - (SELECT KEY_ID_TAG,DOT_NO - FROM tmpRelationGroupTbl GROUP BY RTU_TAG,DOT_NO ) t1 - ON mix_control.TAG_NAME = t1.KEY_ID_TAG - SET mix_control.OFFSET_NO = t1.DOT_NO; - -END;; -DELIMITER ; - -drop procedure if exists relationByPlugin; -DELIMITER ;; -CREATE DEFINER=`root`@`%` PROCEDURE `relationByPlugin`(pluginName varchar(64), devTag varchar(64),fesDevTag varchar(64)) -body:BEGIN - #使用套件中的关联关系,关联前置和后台设备,仅关联套件中指定了关联关系的测点,需注意,为了加快速度,默认此时的后台设备的RTU标签为空,若不为空,调用此存储过程前,请先置空 - #pluginName 套件名 - #devTag 后台设备名 - #fesDevTag 前置设备名 - DECLARE rtuTag varchar(64) DEFAULT ''; - DECLARE tempName varchar(64) DEFAULT ''; - DECLARE fesTempName varchar(64) DEFAULT ''; - - SELECT DEV_TP_NAME INTO tempName FROM dev_info WHERE TAG_NAME = devTag; - SELECT RTU_TAG,DEV_TP_NAME INTO rtuTag,fesTempName FROM fes_dev_info WHERE TAG_NAME = fesDevTag; - IF COALESCE(tempName,'') = '' OR COALESCE(fesTempName,'') = '' OR COALESCE(rtuTag,'') = '' - THEN - LEAVE body; - END IF; - - #创建临时表 - CREATE TEMPORARY TABLE IF NOT EXISTS tmpRelationByPluginTbl( - KEY_ID_TAG varchar(128) NOT NULL, - DOT_NO varchar(48) NOT NULL, - OFFSET_NO decimal(10) NOT NULL DEFAULT 0, - PRIMARY KEY(KEY_ID_TAG,OFFSET_NO) - ); - - #以accuml为例,进行说明.把后台设备下的所有accuml点,和对应的前置设备下的fes_accuml点的Key_ID_TAG和DOT_NO写入临时表 - DELETE FROM tmpRelationByPluginTbl; - - INSERT INTO tmpRelationByPluginTbl (KEY_ID_TAG , DOT_NO) - SELECT accuml_map_to_fes.KEY_ID_TAG,fes_accuml.DOT_NO - FROM (temp_plugin_point_map_acc INNER JOIN accuml_map_to_fes - ON temp_plugin_point_map_acc.PLUGIN_NAME = pluginName AND - temp_plugin_point_map_acc.TEMP_NAME = tempName AND - temp_plugin_point_map_acc.FES_TEMP_NAME = fesTempName AND - accuml_map_to_fes.KEY_ID_TAG = concat('accuml','.' ,devTag,'.',TEMP_POINT_NAME) ) - INNER JOIN fes_accuml - ON fes_accuml.TAG_NAME LIKE concat(rtuTag,'.','%') AND - fes_accuml.DEV_TAG = fesDevTag AND - fes_accuml.FES_POINT_TP_NAME = concat(FES_TEMP_NAME,'.',FES_TEMP_POINT_NAME); - - #假如前置点已经被占用,先清除 - UPDATE fes_accuml INNER JOIN tmpRelationByPluginTbl ON - fes_accuml.TAG_NAME = concat(rtuTag,'.', tmpRelationByPluginTbl.DOT_NO) - SET APP_TABLE_NAME='',APP_TAG_NAME='',APP_COLUMN_NAME=''; - - #模拟手动操作,先关联对应RTU,再关联对应点 - UPDATE accuml INNER JOIN tmpRelationByPluginTbl ON TAG_NAME = mid(KEY_ID_TAG,8,char_length(KEY_ID_TAG) - 7) SET RTU_TAG = rtuTag ; - - UPDATE accuml_map_to_fes INNER JOIN tmpRelationByPluginTbl - ON accuml_map_to_fes.KEY_ID_TAG = tmpRelationByPluginTbl.KEY_ID_TAG - SET accuml_map_to_fes.DOT_NO = tmpRelationByPluginTbl.DOT_NO; - - #analog - DELETE FROM tmpRelationByPluginTbl; - - INSERT INTO tmpRelationByPluginTbl (KEY_ID_TAG , DOT_NO) - SELECT analog_map_to_fes.KEY_ID_TAG,fes_analog.DOT_NO - FROM (temp_plugin_point_map_ana INNER JOIN analog_map_to_fes - ON temp_plugin_point_map_ana.PLUGIN_NAME = pluginName AND - temp_plugin_point_map_ana.TEMP_NAME = tempName AND - temp_plugin_point_map_ana.FES_TEMP_NAME = fesTempName AND - analog_map_to_fes.KEY_ID_TAG = concat('analog','.' ,devTag,'.',TEMP_POINT_NAME) ) - INNER JOIN fes_analog ON - fes_analog.TAG_NAME LIKE concat(rtuTag,'.','%') AND - fes_analog.DEV_TAG = fesDevTag AND - fes_analog.FES_POINT_TP_NAME = concat(FES_TEMP_NAME,'.',FES_TEMP_POINT_NAME); - - #假如前置点已经被占用,先清除 - UPDATE fes_analog INNER JOIN tmpRelationByPluginTbl ON - fes_analog.TAG_NAME = concat(rtuTag,'.', tmpRelationByPluginTbl.DOT_NO) - SET APP_TABLE_NAME='',APP_TAG_NAME='',APP_COLUMN_NAME=''; - - #模拟手动操作,先关联对应RTU,再关联对应点 - UPDATE analog INNER JOIN tmpRelationByPluginTbl ON TAG_NAME = mid(KEY_ID_TAG,8,char_length(KEY_ID_TAG) - 7) SET RTU_TAG = rtuTag ; - - UPDATE analog_map_to_fes INNER JOIN tmpRelationByPluginTbl - ON analog_map_to_fes.KEY_ID_TAG = tmpRelationByPluginTbl.KEY_ID_TAG - SET analog_map_to_fes.DOT_NO = tmpRelationByPluginTbl.DOT_NO; - - #mix - DELETE FROM tmpRelationByPluginTbl; - - INSERT INTO tmpRelationByPluginTbl (KEY_ID_TAG , DOT_NO) - SELECT mix_map_to_fes.KEY_ID_TAG,fes_mix.DOT_NO - FROM (temp_plugin_point_map_mix INNER JOIN mix_map_to_fes - ON temp_plugin_point_map_mix.PLUGIN_NAME = pluginName AND - temp_plugin_point_map_mix.TEMP_NAME = tempName AND - temp_plugin_point_map_mix.FES_TEMP_NAME = fesTempName AND - mix_map_to_fes.KEY_ID_TAG = concat('mix','.' ,devTag,'.',TEMP_POINT_NAME) ) - INNER JOIN fes_mix ON - fes_mix.TAG_NAME LIKE concat(rtuTag,'.','%') AND - fes_mix.DEV_TAG = fesDevTag AND - fes_mix.FES_POINT_TP_NAME = concat(FES_TEMP_NAME,'.',FES_TEMP_POINT_NAME); - - #假如前置点已经被占用,先清除 - UPDATE fes_mix INNER JOIN tmpRelationByPluginTbl ON - fes_mix.TAG_NAME = concat(rtuTag,'.', tmpRelationByPluginTbl.DOT_NO) - SET APP_TABLE_NAME='',APP_TAG_NAME='',APP_COLUMN_NAME=''; - - #模拟手动操作,先关联对应RTU,再关联对应点 - UPDATE mix INNER JOIN tmpRelationByPluginTbl ON TAG_NAME = mid(KEY_ID_TAG,5,char_length(KEY_ID_TAG) - 4) SET RTU_TAG = rtuTag ; - - UPDATE mix_map_to_fes INNER JOIN tmpRelationByPluginTbl - ON mix_map_to_fes.KEY_ID_TAG = tmpRelationByPluginTbl.KEY_ID_TAG - SET mix_map_to_fes.DOT_NO = tmpRelationByPluginTbl.DOT_NO; - - #dig - DELETE FROM tmpRelationByPluginTbl; - - INSERT INTO tmpRelationByPluginTbl (KEY_ID_TAG , DOT_NO,OFFSET_NO) - SELECT digital_map_to_fes.KEY_ID_TAG,fes_digital.DOT_NO,1 - FROM (temp_plugin_point_map_dig INNER JOIN digital_map_to_fes - ON temp_plugin_point_map_dig.PLUGIN_NAME = pluginName AND - temp_plugin_point_map_dig.TEMP_NAME = tempName AND - temp_plugin_point_map_dig.FES_TEMP_NAME = fesTempName AND - temp_plugin_point_map_dig.FES_TEMP_POINT_NAME1 <> '' AND - digital_map_to_fes.KEY_ID_TAG = concat('digital','.' ,devTag,'.',TEMP_POINT_NAME) ) - INNER JOIN fes_digital ON - fes_digital.TAG_NAME LIKE concat(rtuTag,'.','%') AND - fes_digital.DEV_TAG = fesDevTag AND - fes_digital.FES_POINT_TP_NAME = concat(FES_TEMP_NAME,'.',FES_TEMP_POINT_NAME1); - - - INSERT INTO tmpRelationByPluginTbl (KEY_ID_TAG , DOT_NO,OFFSET_NO) - SELECT digital_map_to_fes.KEY_ID_TAG,fes_digital.DOT_NO,2 - FROM (temp_plugin_point_map_dig INNER JOIN digital_map_to_fes - ON temp_plugin_point_map_dig.PLUGIN_NAME = pluginName AND - temp_plugin_point_map_dig.TEMP_NAME = tempName AND - temp_plugin_point_map_dig.FES_TEMP_NAME = fesTempName AND - temp_plugin_point_map_dig.FES_TEMP_POINT_NAME2 <> '' AND - digital_map_to_fes.KEY_ID_TAG = concat('digital','.' ,devTag,'.',TEMP_POINT_NAME)) - INNER JOIN fes_digital ON - fes_digital.TAG_NAME LIKE concat(rtuTag,'.','%') AND - fes_digital.DEV_TAG = fesDevTag AND - fes_digital.FES_POINT_TP_NAME = concat(FES_TEMP_NAME,'.',FES_TEMP_POINT_NAME2); - - - INSERT INTO tmpRelationByPluginTbl (KEY_ID_TAG , DOT_NO,OFFSET_NO) - SELECT digital_map_to_fes.KEY_ID_TAG,fes_digital.DOT_NO,3 - FROM (temp_plugin_point_map_dig INNER JOIN digital_map_to_fes - ON temp_plugin_point_map_dig.PLUGIN_NAME = pluginName AND - temp_plugin_point_map_dig.TEMP_NAME = tempName AND - temp_plugin_point_map_dig.FES_TEMP_NAME = fesTempName AND - temp_plugin_point_map_dig.FES_TEMP_POINT_NAME3 <> '' AND - digital_map_to_fes.KEY_ID_TAG = concat('digital','.' ,devTag,'.',TEMP_POINT_NAME)) - INNER JOIN fes_digital ON - fes_digital.TAG_NAME LIKE concat(rtuTag,'.','%') AND - fes_digital.DEV_TAG = fesDevTag AND - fes_digital.FES_POINT_TP_NAME = concat(FES_TEMP_NAME,'.',FES_TEMP_POINT_NAME3); - - - INSERT INTO tmpRelationByPluginTbl (KEY_ID_TAG , DOT_NO,OFFSET_NO) - SELECT digital_map_to_fes.KEY_ID_TAG,fes_digital.DOT_NO,4 - FROM (temp_plugin_point_map_dig INNER JOIN digital_map_to_fes - ON temp_plugin_point_map_dig.PLUGIN_NAME = pluginName AND - temp_plugin_point_map_dig.TEMP_NAME = tempName AND - temp_plugin_point_map_dig.FES_TEMP_NAME = fesTempName AND - temp_plugin_point_map_dig.FES_TEMP_POINT_NAME4 <> '' AND - digital_map_to_fes.KEY_ID_TAG = concat('digital','.' ,devTag,'.',TEMP_POINT_NAME)) - INNER JOIN fes_digital ON - fes_digital.TAG_NAME LIKE concat(rtuTag,'.','%') AND - fes_digital.DEV_TAG = fesDevTag AND - fes_digital.FES_POINT_TP_NAME = concat(FES_TEMP_NAME,'.',FES_TEMP_POINT_NAME4); - - - INSERT INTO tmpRelationByPluginTbl (KEY_ID_TAG , DOT_NO,OFFSET_NO) - SELECT digital_map_to_fes.KEY_ID_TAG,fes_digital.DOT_NO,5 - FROM (temp_plugin_point_map_dig INNER JOIN digital_map_to_fes - ON temp_plugin_point_map_dig.PLUGIN_NAME = pluginName AND - temp_plugin_point_map_dig.TEMP_NAME = tempName AND - temp_plugin_point_map_dig.FES_TEMP_NAME = fesTempName AND - temp_plugin_point_map_dig.FES_TEMP_POINT_NAME5 <> '' AND - digital_map_to_fes.KEY_ID_TAG = concat('digital','.' ,devTag,'.',TEMP_POINT_NAME) ) - INNER JOIN fes_digital ON - fes_digital.TAG_NAME LIKE concat(rtuTag,'.','%') AND - fes_digital.DEV_TAG = fesDevTag AND - fes_digital.FES_POINT_TP_NAME = concat(FES_TEMP_NAME,'.',FES_TEMP_POINT_NAME5); - - #假如前置点已经被占用,先清除 - UPDATE fes_digital INNER JOIN tmpRelationByPluginTbl ON - fes_digital.TAG_NAME = concat(rtuTag,'.', tmpRelationByPluginTbl.DOT_NO) - SET APP_TABLE_NAME='',APP_TAG_NAME='',APP_COLUMN_NAME=''; - - #模拟手动操作,先关联对应RTU,再关联对应点 - UPDATE digital INNER JOIN tmpRelationByPluginTbl ON TAG_NAME = mid(KEY_ID_TAG,9,char_length(KEY_ID_TAG) - 8) SET RTU_TAG = rtuTag ; - - UPDATE digital_map_to_fes INNER JOIN tmpRelationByPluginTbl - ON digital_map_to_fes.KEY_ID_TAG = tmpRelationByPluginTbl.KEY_ID_TAG AND tmpRelationByPluginTbl.OFFSET_NO = 1 - SET digital_map_to_fes.DOT_NO1 = tmpRelationByPluginTbl.DOT_NO; - - UPDATE digital_map_to_fes INNER JOIN tmpRelationByPluginTbl - ON digital_map_to_fes.KEY_ID_TAG = tmpRelationByPluginTbl.KEY_ID_TAG AND tmpRelationByPluginTbl.OFFSET_NO = 2 - SET digital_map_to_fes.DOT_NO2 = tmpRelationByPluginTbl.DOT_NO; - - UPDATE digital_map_to_fes INNER JOIN tmpRelationByPluginTbl - ON digital_map_to_fes.KEY_ID_TAG = tmpRelationByPluginTbl.KEY_ID_TAG AND tmpRelationByPluginTbl.OFFSET_NO = 3 - SET digital_map_to_fes.DOT_NO3 = tmpRelationByPluginTbl.DOT_NO; - - UPDATE digital_map_to_fes INNER JOIN tmpRelationByPluginTbl - ON digital_map_to_fes.KEY_ID_TAG = tmpRelationByPluginTbl.KEY_ID_TAG AND tmpRelationByPluginTbl.OFFSET_NO = 4 - SET digital_map_to_fes.DOT_NO4 = tmpRelationByPluginTbl.DOT_NO; - - UPDATE digital_map_to_fes INNER JOIN tmpRelationByPluginTbl - ON digital_map_to_fes.KEY_ID_TAG = tmpRelationByPluginTbl.KEY_ID_TAG AND tmpRelationByPluginTbl.OFFSET_NO = 5 - SET digital_map_to_fes.DOT_NO5 = tmpRelationByPluginTbl.DOT_NO; - - #对于控制点 - #analog_ctrl - DELETE FROM tmpRelationByPluginTbl; - - INSERT INTO tmpRelationByPluginTbl (KEY_ID_TAG , DOT_NO) - SELECT analog_control.TAG_NAME,fes_analog_ctrl.DOT_NO - FROM temp_plugin_point_map_ana,analog_control,fes_analog_ctrl - WHERE temp_plugin_point_map_ana.PLUGIN_NAME = pluginName AND - temp_plugin_point_map_ana.TEMP_NAME = tempName AND - temp_plugin_point_map_ana.FES_TEMP_NAME = fesTempName AND - analog_control.TAG_NAME = concat(devTag,'.',TEMP_POINT_NAME) AND - fes_analog_ctrl.TAG_NAME LIKE concat(rtuTag,'.','%') AND - fes_analog_ctrl.DEV_TAG = fesDevTag AND - fes_analog_ctrl.POINT_TP_NAME = concat(FES_TEMP_NAME,'.',FES_TEMP_OUT_NAME); - #修改如果没有采集点,有遥控点也要新建测点 - UPDATE analog INNER JOIN tmpRelationByPluginTbl - ON TAG_NAME = KEY_ID_TAG SET RTU_TAG = rtuTag ; - - UPDATE analog_control INNER JOIN tmpRelationByPluginTbl - ON analog_control.TAG_NAME = tmpRelationByPluginTbl.KEY_ID_TAG - SET analog_control.OFFSET_NO = tmpRelationByPluginTbl.DOT_NO; - - #mix_ctrl - DELETE FROM tmpRelationByPluginTbl; - - INSERT INTO tmpRelationByPluginTbl (KEY_ID_TAG , DOT_NO) - SELECT mix_control.TAG_NAME,fes_mix_ctrl.DOT_NO - FROM temp_plugin_point_map_mix,mix_control,fes_mix_ctrl - WHERE temp_plugin_point_map_mix.PLUGIN_NAME = pluginName AND - temp_plugin_point_map_mix.TEMP_NAME = tempName AND - temp_plugin_point_map_mix.FES_TEMP_NAME = fesTempName AND - mix_control.TAG_NAME = concat(devTag,'.',TEMP_POINT_NAME) AND - fes_mix_ctrl.TAG_NAME LIKE concat(rtuTag,'.','%') AND - fes_mix_ctrl.DEV_TAG = fesDevTag AND - fes_mix_ctrl.POINT_TP_NAME = concat(FES_TEMP_NAME,'.',FES_TEMP_OUT_NAME); - #修改如果没有采集点,有遥控点也要新建测点 - UPDATE mix INNER JOIN tmpRelationByPluginTbl - ON TAG_NAME = KEY_ID_TAG SET RTU_TAG = rtuTag ; - - UPDATE mix_control INNER JOIN tmpRelationByPluginTbl - ON mix_control.TAG_NAME = tmpRelationByPluginTbl.KEY_ID_TAG - SET mix_control.OFFSET_NO = tmpRelationByPluginTbl.DOT_NO; - - #digital_ctrl - DELETE FROM tmpRelationByPluginTbl; - - INSERT INTO tmpRelationByPluginTbl (KEY_ID_TAG , DOT_NO,OFFSET_NO) - SELECT digital_control.TAG_NAME,fes_digital_ctrl.DOT_NO, 1 - FROM temp_plugin_point_map_dig,digital_control,fes_digital_ctrl - WHERE temp_plugin_point_map_dig.PLUGIN_NAME = pluginName AND - temp_plugin_point_map_dig.TEMP_NAME = tempName AND - temp_plugin_point_map_dig.FES_TEMP_NAME = fesTempName AND - temp_plugin_point_map_dig.FES_TEMP_OUT_NAME1 <> '' AND - digital_control.TAG_NAME = concat(devTag,'.',TEMP_POINT_NAME) AND - fes_digital_ctrl.TAG_NAME LIKE concat(rtuTag,'.','%') AND - fes_digital_ctrl.DEV_TAG = fesDevTag AND - fes_digital_ctrl.POINT_TP_NAME = concat(FES_TEMP_NAME,'.',FES_TEMP_OUT_NAME1); - - INSERT INTO tmpRelationByPluginTbl (KEY_ID_TAG , DOT_NO,OFFSET_NO) - SELECT digital_control.TAG_NAME,fes_digital_ctrl.DOT_NO, 2 - FROM temp_plugin_point_map_dig,digital_control,fes_digital_ctrl - WHERE temp_plugin_point_map_dig.PLUGIN_NAME = pluginName AND - temp_plugin_point_map_dig.TEMP_NAME = tempName AND - temp_plugin_point_map_dig.FES_TEMP_NAME = fesTempName AND - temp_plugin_point_map_dig.FES_TEMP_OUT_NAME2 <> '' AND - digital_control.TAG_NAME = concat(devTag,'.',TEMP_POINT_NAME) AND - fes_digital_ctrl.TAG_NAME LIKE concat(rtuTag,'.','%') AND - fes_digital_ctrl.DEV_TAG = fesDevTag AND - fes_digital_ctrl.POINT_TP_NAME = concat(FES_TEMP_NAME,'.',FES_TEMP_OUT_NAME2); - - INSERT INTO tmpRelationByPluginTbl (KEY_ID_TAG , DOT_NO,OFFSET_NO) - SELECT digital_control.TAG_NAME,fes_digital_ctrl.DOT_NO, 3 - FROM temp_plugin_point_map_dig,digital_control,fes_digital_ctrl - WHERE temp_plugin_point_map_dig.PLUGIN_NAME = pluginName AND - temp_plugin_point_map_dig.TEMP_NAME = tempName AND - temp_plugin_point_map_dig.FES_TEMP_NAME = fesTempName AND - temp_plugin_point_map_dig.FES_TEMP_OUT_NAME3 <> '' AND - digital_control.TAG_NAME = concat(devTag,'.',TEMP_POINT_NAME) AND - fes_digital_ctrl.TAG_NAME LIKE concat(rtuTag,'.','%') AND - fes_digital_ctrl.DEV_TAG = fesDevTag AND - fes_digital_ctrl.POINT_TP_NAME = concat(FES_TEMP_NAME,'.',FES_TEMP_OUT_NAME3); - - INSERT INTO tmpRelationByPluginTbl (KEY_ID_TAG , DOT_NO,OFFSET_NO) - SELECT digital_control.TAG_NAME,fes_digital_ctrl.DOT_NO, 4 - FROM temp_plugin_point_map_dig,digital_control,fes_digital_ctrl - WHERE temp_plugin_point_map_dig.PLUGIN_NAME = pluginName AND - temp_plugin_point_map_dig.TEMP_NAME = tempName AND - temp_plugin_point_map_dig.FES_TEMP_NAME = fesTempName AND - temp_plugin_point_map_dig.FES_TEMP_OUT_NAME4 <> '' AND - digital_control.TAG_NAME = concat(devTag,'.',TEMP_POINT_NAME) AND - fes_digital_ctrl.TAG_NAME LIKE concat(rtuTag,'.','%') AND - fes_digital_ctrl.DEV_TAG = fesDevTag AND - fes_digital_ctrl.POINT_TP_NAME = concat(FES_TEMP_NAME,'.',FES_TEMP_OUT_NAME4); - - INSERT INTO tmpRelationByPluginTbl (KEY_ID_TAG , DOT_NO,OFFSET_NO) - SELECT digital_control.TAG_NAME,fes_digital_ctrl.DOT_NO, 5 - FROM temp_plugin_point_map_dig,digital_control,fes_digital_ctrl - WHERE temp_plugin_point_map_dig.PLUGIN_NAME = pluginName AND - temp_plugin_point_map_dig.TEMP_NAME = tempName AND - temp_plugin_point_map_dig.FES_TEMP_NAME = fesTempName AND - temp_plugin_point_map_dig.FES_TEMP_OUT_NAME5 <> '' AND - digital_control.TAG_NAME = concat(devTag,'.',TEMP_POINT_NAME) AND - fes_digital_ctrl.TAG_NAME LIKE concat(rtuTag,'.','%') AND - fes_digital_ctrl.DEV_TAG = fesDevTag AND - fes_digital_ctrl.POINT_TP_NAME = concat(FES_TEMP_NAME,'.',FES_TEMP_OUT_NAME5); - - #主要为了对应测点只遥控无采集的情况 - UPDATE digital INNER JOIN tmpRelationByPluginTbl - ON TAG_NAME = KEY_ID_TAG AND OFFSET_NO = 1 SET RTU_TAG = rtuTag ; - - UPDATE digital_control INNER JOIN tmpRelationByPluginTbl - ON digital_control.TAG_NAME = tmpRelationByPluginTbl.KEY_ID_TAG AND tmpRelationByPluginTbl.OFFSET_NO = 1 - SET digital_control.OFFSET_NO1 = tmpRelationByPluginTbl.DOT_NO; - - UPDATE digital_control INNER JOIN tmpRelationByPluginTbl - ON digital_control.TAG_NAME = tmpRelationByPluginTbl.KEY_ID_TAG AND tmpRelationByPluginTbl.OFFSET_NO = 2 - SET digital_control.OFFSET_NO2 = tmpRelationByPluginTbl.DOT_NO; - - UPDATE digital_control INNER JOIN tmpRelationByPluginTbl - ON digital_control.TAG_NAME = tmpRelationByPluginTbl.KEY_ID_TAG AND tmpRelationByPluginTbl.OFFSET_NO = 3 - SET digital_control.OFFSET_NO3 = tmpRelationByPluginTbl.DOT_NO; - - UPDATE digital_control INNER JOIN tmpRelationByPluginTbl - ON digital_control.TAG_NAME = tmpRelationByPluginTbl.KEY_ID_TAG AND tmpRelationByPluginTbl.OFFSET_NO = 4 - SET digital_control.OFFSET_NO4 = tmpRelationByPluginTbl.DOT_NO; - - UPDATE digital_control INNER JOIN tmpRelationByPluginTbl - ON digital_control.TAG_NAME = tmpRelationByPluginTbl.KEY_ID_TAG AND tmpRelationByPluginTbl.OFFSET_NO = 5 - SET digital_control.OFFSET_NO5 = tmpRelationByPluginTbl.DOT_NO; - -END;; -DELIMITER ; - -drop procedure if exists relationByTempPointName; -DELIMITER ;; -CREATE DEFINER=`root`@`%` PROCEDURE `relationByTempPointName`(devTempName varchar(64),fesDevTempName varchar(64)) -body:BEGIN - /* - * 按照模板下的测点名称进行,后台模板与前置模板的关联 - */ - #获取设备测点名称 - - CALL clearTempRelation(devTempName); - #创建临时表, - CREATE TEMPORARY TABLE IF NOT EXISTS tmpRelationNameTbl( - TAG_NAME varchar(64) NOT NULL, - FES_SEQ_NO decimal(10,0) NOT NULL - ); - - #accuml - DELETE FROM tmpRelationNameTbl; - - INSERT INTO tmpRelationNameTbl(TAG_NAME,FES_SEQ_NO) - SELECT A.TAG_NAME,B.SEQ_NO - FROM (SELECT TAG_NAME FROM accuml_temp_define WHERE DEV_TP_NAME = devTempName) A - INNER JOIN (SELECT TAG_NAME,SEQ_NO FROM fes_dev_pt_temp_def WHERE DEV_TP_NAME = fesDevTempName - AND POINT_TYPE = getFesPointType('FES_ACC')) B - ON getAfterLastDot(A.TAG_NAME) = getAfterLastDot(B.TAG_NAME); - - #进行关联 - UPDATE accuml_temp_define INNER JOIN tmpRelationNameTbl ON - accuml_temp_define.TAG_NAME = tmpRelationNameTbl.TAG_NAME - SET - SEC_DEVTP_NAME = fesDevTempName, - SEC_SEQ_NO = tmpRelationNameTbl.FES_SEQ_NO; - - #analog - DELETE FROM tmpRelationNameTbl; - - INSERT INTO tmpRelationNameTbl(TAG_NAME,FES_SEQ_NO) - SELECT A.TAG_NAME,B.SEQ_NO - FROM (SELECT TAG_NAME FROM analog_temp_define WHERE DEV_TP_NAME = devTempName) A - INNER JOIN (SELECT TAG_NAME,SEQ_NO FROM fes_dev_pt_temp_def WHERE DEV_TP_NAME = fesDevTempName - AND POINT_TYPE = getFesPointType('FES_ANA')) B - ON getAfterLastDot(A.TAG_NAME) = getAfterLastDot(B.TAG_NAME); - - #进行关联 - UPDATE analog_temp_define INNER JOIN tmpRelationNameTbl ON - analog_temp_define.TAG_NAME = tmpRelationNameTbl.TAG_NAME - SET - SEC_DEVTP_NAME = fesDevTempName, - SEC_SEQ_NO = tmpRelationNameTbl.FES_SEQ_NO; - - #digital只判断第一个分量 - DELETE FROM tmpRelationNameTbl; - - INSERT INTO tmpRelationNameTbl(TAG_NAME,FES_SEQ_NO) - SELECT A.TAG_NAME,B.SEQ_NO - FROM (SELECT TAG_NAME FROM digital_temp_define WHERE DEV_TP_NAME = devTempName) A - INNER JOIN (SELECT TAG_NAME,SEQ_NO FROM fes_dev_pt_temp_def WHERE DEV_TP_NAME = fesDevTempName - AND POINT_TYPE = getFesPointType('FES_DIG')) B - ON getAfterLastDot(A.TAG_NAME) = getAfterLastDot(B.TAG_NAME); - - #进行关联 - UPDATE digital_temp_define INNER JOIN tmpRelationNameTbl ON - digital_temp_define.TAG_NAME = tmpRelationNameTbl.TAG_NAME - SET - SEC_DEVTP_NAME = fesDevTempName, - SEC_SEQ_NO1 = tmpRelationNameTbl.FES_SEQ_NO; - - #mix - DELETE FROM tmpRelationNameTbl; - - INSERT INTO tmpRelationNameTbl(TAG_NAME,FES_SEQ_NO) - SELECT A.TAG_NAME,B.SEQ_NO - FROM (SELECT TAG_NAME FROM mix_temp_define WHERE DEV_TP_NAME = devTempName) A - INNER JOIN (SELECT TAG_NAME,SEQ_NO FROM fes_dev_pt_temp_def WHERE DEV_TP_NAME = fesDevTempName - AND POINT_TYPE = getFesPointType('FES_MIX')) B - ON getAfterLastDot(A.TAG_NAME) = getAfterLastDot(B.TAG_NAME); - - #进行关联 - UPDATE mix_temp_define INNER JOIN tmpRelationNameTbl ON - mix_temp_define.TAG_NAME = tmpRelationNameTbl.TAG_NAME - SET - SEC_DEVTP_NAME = fesDevTempName, - SEC_SEQ_NO = tmpRelationNameTbl.FES_SEQ_NO; - -END;; -DELIMITER ; - -drop procedure if exists relationFesByName; -DELIMITER ;; -CREATE DEFINER=`root`@`%` PROCEDURE `relationFesByName`(devTag varchar(64),fesDevTag varchar(64)) -body:BEGIN - /* - * 后台和FES的两个设备之间名称相同的测点做关联 - */ - DECLARE rtuTag varchar(64); - - IF COALESCE(devTag,'') = '' OR COALESCE(fesDevTag,'')='' - THEN LEAVE body; - END IF; - - SELECT RTU_TAG INTO rtuTag FROM fes_dev_info WHERE TAG_NAME = fesDevTag; - - IF COALESCE(rtuTag,'') = '' - THEN LEAVE body; - END IF; - - #首先清空本设备的关联 - CALL bingRtu(devTag,''); - UPDATE fes_accuml SET APP_COLUMN_NAME = '',APP_TABLE_NAME = '' ,APP_TAG_NAME = '' WHERE DEV_TAG = fesDevTag; - UPDATE fes_analog SET APP_COLUMN_NAME = '',APP_TABLE_NAME = '' ,APP_TAG_NAME = '' WHERE DEV_TAG = fesDevTag; - UPDATE fes_digital SET APP_COLUMN_NAME = '',APP_TABLE_NAME = '' ,APP_TAG_NAME = '' WHERE DEV_TAG = fesDevTag; - UPDATE fes_mix SET APP_COLUMN_NAME = '',APP_TABLE_NAME = '' ,APP_TAG_NAME = '' WHERE DEV_TAG = fesDevTag; - - #关联acc - UPDATE accuml SET RTU_TAG = rtuTag WHERE DEVICE = devTag; - UPDATE analog SET RTU_TAG = rtuTag WHERE DEVICE = devTag; - UPDATE digital SET RTU_TAG = rtuTag WHERE DEVICE = devTag; - UPDATE mix SET RTU_TAG = rtuTag WHERE DEVICE = devTag; - - - #创建临时表 - CREATE TEMPORARY TABLE IF NOT EXISTS tmpRelationFesByNameTbl( - KEY_ID_TAG varchar(128) NOT NULL, - DOT_NO varchar(48) NOT NULL - ); - - #acc - DELETE FROM tmpRelationFesByNameTbl; - - INSERT INTO tmpRelationFesByNameTbl(KEY_ID_TAG,DOT_NO) - SELECT accuml_map_to_fes.KEY_ID_TAG,fes_accuml.DOT_NO - FROM accuml_map_to_fes INNER JOIN fes_accuml - ON accuml_map_to_fes.KEY_ID_TAG LIKE concat('accuml.',devTag,'.%') - AND fes_accuml.TAG_NAME LIKE concat(rtuTag,'.%') - AND fes_accuml.DEV_TAG = fesDevTag - AND getAfterLastDot(accuml_map_to_fes.KEY_ID_TAG) = getAfterLastDot(fes_accuml.FES_POINT_TP_NAME); - - UPDATE accuml_map_to_fes INNER JOIN tmpRelationFesByNameTbl - ON accuml_map_to_fes.KEY_ID_TAG = tmpRelationFesByNameTbl.KEY_ID_TAG - SET accuml_map_to_fes.RTU_TAG = rtuTag,accuml_map_to_fes.DOT_NO = tmpRelationFesByNameTbl.DOT_NO; - - #ana - DELETE FROM tmpRelationFesByNameTbl; - - INSERT INTO tmpRelationFesByNameTbl(KEY_ID_TAG,DOT_NO) - SELECT analog_map_to_fes.KEY_ID_TAG,fes_analog.DOT_NO - FROM analog_map_to_fes INNER JOIN fes_analog - ON analog_map_to_fes.KEY_ID_TAG LIKE concat('analog.',devTag,'.%') - AND fes_analog.TAG_NAME LIKE concat(rtuTag,'.%') - AND fes_analog.DEV_TAG = fesDevTag - AND getAfterLastDot(analog_map_to_fes.KEY_ID_TAG) = getAfterLastDot(fes_analog.FES_POINT_TP_NAME); - - UPDATE analog_map_to_fes INNER JOIN tmpRelationFesByNameTbl - ON analog_map_to_fes.KEY_ID_TAG = tmpRelationFesByNameTbl.KEY_ID_TAG - SET analog_map_to_fes.RTU_TAG = rtuTag,analog_map_to_fes.DOT_NO = tmpRelationFesByNameTbl.DOT_NO; - - #dig - DELETE FROM tmpRelationFesByNameTbl; - - INSERT INTO tmpRelationFesByNameTbl(KEY_ID_TAG,DOT_NO) - SELECT digital_map_to_fes.KEY_ID_TAG,fes_digital.DOT_NO - FROM digital_map_to_fes INNER JOIN fes_digital - ON digital_map_to_fes.KEY_ID_TAG LIKE concat('digital.',devTag,'.%') - AND fes_digital.TAG_NAME LIKE concat(rtuTag,'.%') - AND fes_digital.DEV_TAG = fesDevTag - AND getAfterLastDot(digital_map_to_fes.KEY_ID_TAG) = getAfterLastDot(fes_digital.FES_POINT_TP_NAME); - - UPDATE digital_map_to_fes INNER JOIN tmpRelationFesByNameTbl - ON digital_map_to_fes.KEY_ID_TAG = tmpRelationFesByNameTbl.KEY_ID_TAG - SET digital_map_to_fes.RTU_TAG = rtuTag,digital_map_to_fes.DOT_NO1 = tmpRelationFesByNameTbl.DOT_NO; - - #mix - DELETE FROM tmpRelationFesByNameTbl; - - INSERT INTO tmpRelationFesByNameTbl(KEY_ID_TAG,DOT_NO) - SELECT mix_map_to_fes.KEY_ID_TAG,fes_mix.DOT_NO - FROM mix_map_to_fes INNER JOIN fes_mix - ON mix_map_to_fes.KEY_ID_TAG LIKE concat('mix.',devTag,'.%') - AND fes_mix.TAG_NAME LIKE concat(rtuTag,'.%') - AND fes_mix.DEV_TAG = fesDevTag - AND getAfterLastDot(mix_map_to_fes.KEY_ID_TAG) = getAfterLastDot(fes_mix.FES_POINT_TP_NAME); - - UPDATE mix_map_to_fes INNER JOIN tmpRelationFesByNameTbl - ON mix_map_to_fes.KEY_ID_TAG = tmpRelationFesByNameTbl.KEY_ID_TAG - SET mix_map_to_fes.RTU_TAG = rtuTag,mix_map_to_fes.DOT_NO = tmpRelationFesByNameTbl.DOT_NO; - - -END;; -DELIMITER ; - -drop procedure if exists relationToFes; -DELIMITER ;; -CREATE DEFINER=`root`@`%` PROCEDURE `relationToFes`(devTagName varchar(64), fesDevTagName varchar(64)) -body:BEGIN - /* - * 后台和FES的两个设备之间做关联,使用前,先检查后台设备的模板和前置的模板是否有所关联,已经关联的测点不会再关联,若想关联,先清除 - */ - DECLARE rtuTagName varchar(64); - DECLARE fesDevTempTagName varchar(64); - - IF COALESCE(devTagName,'') = '' OR COALESCE(fesDevTagName,'')='' - THEN LEAVE body; - END IF; - - SELECT RTU_TAG,DEV_TP_NAME INTO rtuTagName,fesDevTempTagName FROM fes_dev_info WHERE TAG_NAME = fesDevTagName; - - IF COALESCE(rtuTagName,'') = '' OR COALESCE(fesDevTempTagName,'')='' - THEN LEAVE body; - END IF; - - #创建临时表 - CREATE TEMPORARY TABLE IF NOT EXISTS tmpRelationToFesTbl( - KEY_ID_TAG varchar(128) NOT NULL, - DOT_NO varchar(48) NOT NULL, - OFFSET_NO decimal(10) - ); - DELETE FROM tmpRelationToFesTbl; - - #以accuml为例,进行说明.把后台设备下的所有accuml点,和对应的前置设备下的fes_accuml点的Key_ID_TAG和DOT_NO写入临时表 - INSERT INTO tmpRelationToFesTbl (KEY_ID_TAG , DOT_NO) - SELECT tb1.KEY_ID_TAG, tb2.DOT_NO - FROM - (SELECT accuml_map_to_fes.KEY_ID_TAG,accuml_temp_define.SEC_SEQ_NO - FROM accuml_map_to_fes,accuml_temp_define - WHERE - accuml_map_to_fes.KEY_ID_TAG like concat('accuml','.' ,devTagName,'.','%') AND - accuml_map_to_fes.POINT_TP_NAME= accuml_temp_define.TAG_NAME AND - accuml_temp_define.SEC_DEVTP_NAME = fesDevTempTagName AND - COALESCE(accuml_temp_define.SEC_SEQ_NO,-1) >= 0 - ) tb1 - INNER JOIN - (SELECT fes_accuml.DOT_NO, fes_accuml.SEQ_NO - FROM fes_accuml - WHERE - fes_accuml.DEV_TAG = fesDevTagName AND - getBeforeLastDot(fes_accuml.FES_POINT_TP_NAME) = fesDevTempTagName - ) tb2 - ON - tb1.SEC_SEQ_NO = tb2.SEQ_NO; - - #假如前置点已经被占用,先清除 - UPDATE fes_accuml INNER JOIN tmpRelationToFesTbl ON - fes_accuml.TAG_NAME = concat(rtuTagName,'.', tmpRelationToFesTbl.DOT_NO) - SET APP_TABLE_NAME='',APP_TAG_NAME='',APP_COLUMN_NAME=''; - #清除后台的 - UPDATE accuml INNER JOIN tmpRelationToFesTbl ON TAG_NAME = getAfterFirstDot(tmpRelationToFesTbl.KEY_ID_TAG) SET RTU_TAG = ''; - - #模拟手动操作,先关联对应RTU,再关联对应点 - UPDATE accuml INNER JOIN tmpRelationToFesTbl ON TAG_NAME = getAfterFirstDot(tmpRelationToFesTbl.KEY_ID_TAG) SET RTU_TAG = rtuTagName ; - - UPDATE accuml_map_to_fes INNER JOIN tmpRelationToFesTbl - ON accuml_map_to_fes.KEY_ID_TAG = tmpRelationToFesTbl.KEY_ID_TAG - SET accuml_map_to_fes.DOT_NO = tmpRelationToFesTbl.DOT_NO; - - #analog - DELETE FROM tmpRelationToFesTbl; - - INSERT INTO tmpRelationToFesTbl (KEY_ID_TAG , DOT_NO) - SELECT tb1.KEY_ID_TAG, tb2.DOT_NO - FROM - (SELECT analog_map_to_fes.KEY_ID_TAG,analog_temp_define.SEC_SEQ_NO - FROM analog_map_to_fes,analog_temp_define - WHERE - analog_map_to_fes.KEY_ID_TAG like concat('analog','.' ,devTagName,'.','%') AND - analog_map_to_fes.POINT_TP_NAME= analog_temp_define.TAG_NAME AND - analog_temp_define.SEC_DEVTP_NAME = fesDevTempTagName AND - COALESCE(analog_temp_define.SEC_SEQ_NO,-1) >= 0 - )tb1 - INNER JOIN - (SELECT fes_analog.DOT_NO, fes_analog.SEQ_NO - FROM fes_analog - WHERE - fes_analog.DEV_TAG = fesDevTagName AND - getBeforeLastDot(fes_analog.FES_POINT_TP_NAME) = fesDevTempTagName - )tb2 - ON - tb1.SEC_SEQ_NO = tb2.SEQ_NO; - - #假如前置点已经被占用,先清除 - UPDATE fes_analog INNER JOIN tmpRelationToFesTbl ON - fes_analog.TAG_NAME = concat(rtuTagName,'.', tmpRelationToFesTbl.DOT_NO) - SET APP_TABLE_NAME='',APP_TAG_NAME='',APP_COLUMN_NAME=''; - #清除后台的 - UPDATE analog INNER JOIN tmpRelationToFesTbl ON TAG_NAME = getAfterFirstDot(tmpRelationToFesTbl.KEY_ID_TAG) SET RTU_TAG = ''; - - UPDATE analog INNER JOIN tmpRelationToFesTbl ON TAG_NAME = getAfterFirstDot(tmpRelationToFesTbl.KEY_ID_TAG) SET RTU_TAG = rtuTagName; - - UPDATE analog_map_to_fes INNER JOIN tmpRelationToFesTbl - ON analog_map_to_fes.KEY_ID_TAG = tmpRelationToFesTbl.KEY_ID_TAG - SET analog_map_to_fes.DOT_NO = tmpRelationToFesTbl.DOT_NO; - - #digital有五个分量,要注意 - DELETE FROM tmpRelationToFesTbl; - - INSERT INTO tmpRelationToFesTbl (KEY_ID_TAG , DOT_NO ,OFFSET_NO) - SELECT tb1.KEY_ID_TAG, tb2.DOT_NO ,1 - FROM - (SELECT digital_map_to_fes.KEY_ID_TAG,digital_temp_define.SEC_SEQ_NO1 - FROM digital_map_to_fes,digital_temp_define - WHERE - digital_map_to_fes.KEY_ID_TAG like concat('digital','.' ,devTagName,'.','%') AND - digital_map_to_fes.POINT_TP_NAME= digital_temp_define.TAG_NAME AND - digital_temp_define.SEC_DEVTP_NAME = fesDevTempTagName AND - COALESCE(digital_temp_define.SEC_SEQ_NO1,-1) >= 0 - )tb1 - INNER JOIN - (SELECT fes_digital.DOT_NO, fes_digital.SEQ_NO - FROM fes_digital - WHERE - fes_digital.DEV_TAG = fesDevTagName AND - getBeforeLastDot(fes_digital.FES_POINT_TP_NAME) = fesDevTempTagName - )tb2 - ON - tb1.SEC_SEQ_NO1 = tb2.SEQ_NO; - - INSERT INTO tmpRelationToFesTbl (KEY_ID_TAG , DOT_NO ,OFFSET_NO) - SELECT tb1.KEY_ID_TAG, tb2.DOT_NO ,2 - FROM - (SELECT digital_map_to_fes.KEY_ID_TAG,digital_temp_define.SEC_SEQ_NO2 - FROM digital_map_to_fes,digital_temp_define - WHERE - digital_map_to_fes.KEY_ID_TAG like concat('digital','.' ,devTagName,'.','%') AND - digital_map_to_fes.POINT_TP_NAME= digital_temp_define.TAG_NAME AND - digital_temp_define.SEC_DEVTP_NAME = fesDevTempTagName AND - COALESCE(digital_temp_define.SEC_SEQ_NO2,-1) >= 0 - )tb1 - INNER JOIN - (SELECT fes_digital.DOT_NO, fes_digital.SEQ_NO - FROM fes_digital - WHERE - fes_digital.DEV_TAG = fesDevTagName AND - getBeforeLastDot(fes_digital.FES_POINT_TP_NAME) = fesDevTempTagName - )tb2 - ON - tb1.SEC_SEQ_NO2 = tb2.SEQ_NO; - - INSERT INTO tmpRelationToFesTbl (KEY_ID_TAG , DOT_NO ,OFFSET_NO) - SELECT tb1.KEY_ID_TAG, tb2.DOT_NO ,3 - FROM - (SELECT digital_map_to_fes.KEY_ID_TAG,digital_temp_define.SEC_SEQ_NO3 - FROM digital_map_to_fes,digital_temp_define - WHERE - digital_map_to_fes.KEY_ID_TAG like concat('digital','.' ,devTagName,'.','%') AND - digital_map_to_fes.POINT_TP_NAME= digital_temp_define.TAG_NAME AND - digital_temp_define.SEC_DEVTP_NAME = fesDevTempTagName AND - COALESCE(digital_temp_define.SEC_SEQ_NO3,-1) >= 0 - )tb1 - INNER JOIN - (SELECT fes_digital.DOT_NO, fes_digital.SEQ_NO - FROM fes_digital - WHERE - fes_digital.DEV_TAG = fesDevTagName AND - getBeforeLastDot(fes_digital.FES_POINT_TP_NAME) = fesDevTempTagName - )tb2 - ON - tb1.SEC_SEQ_NO3 = tb2.SEQ_NO; - - INSERT INTO tmpRelationToFesTbl (KEY_ID_TAG , DOT_NO ,OFFSET_NO) - SELECT tb1.KEY_ID_TAG, tb2.DOT_NO ,4 - FROM - (SELECT digital_map_to_fes.KEY_ID_TAG,digital_temp_define.SEC_SEQ_NO4 - FROM digital_map_to_fes,digital_temp_define - WHERE - digital_map_to_fes.KEY_ID_TAG like concat('digital','.' ,devTagName,'.','%') AND - digital_map_to_fes.POINT_TP_NAME= digital_temp_define.TAG_NAME AND - digital_temp_define.SEC_DEVTP_NAME = fesDevTempTagName AND - COALESCE(digital_temp_define.SEC_SEQ_NO4,-1) >= 0 - )tb1 - INNER JOIN - (SELECT fes_digital.DOT_NO, fes_digital.SEQ_NO - FROM fes_digital - WHERE - fes_digital.DEV_TAG = fesDevTagName AND - getBeforeLastDot(fes_digital.FES_POINT_TP_NAME) = fesDevTempTagName - )tb2 - ON - tb1.SEC_SEQ_NO4 = tb2.SEQ_NO; - - INSERT INTO tmpRelationToFesTbl (KEY_ID_TAG , DOT_NO ,OFFSET_NO) - SELECT tb1.KEY_ID_TAG, tb2.DOT_NO ,5 - FROM - (SELECT digital_map_to_fes.KEY_ID_TAG,digital_temp_define.SEC_SEQ_NO5 - FROM digital_map_to_fes,digital_temp_define - WHERE - digital_map_to_fes.KEY_ID_TAG like concat('digital','.' ,devTagName,'.','%') AND - digital_map_to_fes.POINT_TP_NAME= digital_temp_define.TAG_NAME AND - digital_temp_define.SEC_DEVTP_NAME = fesDevTempTagName AND - COALESCE(digital_temp_define.SEC_SEQ_NO5,-1) >= 0 - )tb1 - INNER JOIN - (SELECT fes_digital.DOT_NO, fes_digital.SEQ_NO - FROM fes_digital - WHERE - fes_digital.DEV_TAG = fesDevTagName AND - getBeforeLastDot(fes_digital.FES_POINT_TP_NAME) = fesDevTempTagName - )tb2 - ON - tb1.SEC_SEQ_NO5 = tb2.SEQ_NO; - - #假如前置点已经被占用,先清除 - UPDATE fes_digital INNER JOIN tmpRelationToFesTbl ON - fes_digital.TAG_NAME = concat(rtuTagName,'.', tmpRelationToFesTbl.DOT_NO) - SET APP_TABLE_NAME='',APP_TAG_NAME='',APP_COLUMN_NAME=''; - #清除后台的 - UPDATE digital INNER JOIN tmpRelationToFesTbl ON TAG_NAME = getAfterFirstDot(tmpRelationToFesTbl.KEY_ID_TAG) SET RTU_TAG = '' ; - - UPDATE digital INNER JOIN tmpRelationToFesTbl ON TAG_NAME = getAfterFirstDot(tmpRelationToFesTbl.KEY_ID_TAG) SET RTU_TAG = rtuTagName; - - UPDATE digital_map_to_fes INNER JOIN tmpRelationToFesTbl - ON digital_map_to_fes.KEY_ID_TAG = tmpRelationToFesTbl.KEY_ID_TAG AND tmpRelationToFesTbl.OFFSET_NO = 1 - SET digital_map_to_fes.DOT_NO1 = tmpRelationToFesTbl.DOT_NO; - - UPDATE digital_map_to_fes INNER JOIN tmpRelationToFesTbl - ON digital_map_to_fes.KEY_ID_TAG = tmpRelationToFesTbl.KEY_ID_TAG AND tmpRelationToFesTbl.OFFSET_NO = 2 - SET digital_map_to_fes.DOT_NO2 = tmpRelationToFesTbl.DOT_NO; - - UPDATE digital_map_to_fes INNER JOIN tmpRelationToFesTbl - ON digital_map_to_fes.KEY_ID_TAG = tmpRelationToFesTbl.KEY_ID_TAG AND tmpRelationToFesTbl.OFFSET_NO = 3 - SET digital_map_to_fes.DOT_NO3 = tmpRelationToFesTbl.DOT_NO; - - UPDATE digital_map_to_fes INNER JOIN tmpRelationToFesTbl - ON digital_map_to_fes.KEY_ID_TAG = tmpRelationToFesTbl.KEY_ID_TAG AND tmpRelationToFesTbl.OFFSET_NO = 4 - SET digital_map_to_fes.DOT_NO4 = tmpRelationToFesTbl.DOT_NO; - - UPDATE digital_map_to_fes INNER JOIN tmpRelationToFesTbl - ON digital_map_to_fes.KEY_ID_TAG = tmpRelationToFesTbl.KEY_ID_TAG AND tmpRelationToFesTbl.OFFSET_NO = 5 - SET digital_map_to_fes.DOT_NO5 = tmpRelationToFesTbl.DOT_NO; - - - #mix - DELETE FROM tmpRelationToFesTbl; - - INSERT INTO tmpRelationToFesTbl (KEY_ID_TAG , DOT_NO ) - SELECT tb1.KEY_ID_TAG, tb2.DOT_NO - FROM - (SELECT mix_map_to_fes.KEY_ID_TAG,mix_temp_define.SEC_SEQ_NO - FROM mix_map_to_fes,mix_temp_define - WHERE - mix_map_to_fes.KEY_ID_TAG like concat('mix','.' ,devTagName,'.','%') AND - mix_map_to_fes.POINT_TP_NAME= mix_temp_define.TAG_NAME AND - mix_temp_define.SEC_DEVTP_NAME = fesDevTempTagName - )tb1 - INNER JOIN - (SELECT fes_mix.DOT_NO, fes_mix.SEQ_NO - FROM fes_mix - WHERE - fes_mix.DEV_TAG = fesDevTagName AND - getBeforeLastDot(fes_mix.FES_POINT_TP_NAME) = fesDevTempTagName - )tb2 - ON - tb1.SEC_SEQ_NO = tb2.SEQ_NO; - - #假如前置点已经被占用,先清除 - UPDATE fes_mix INNER JOIN tmpRelationToFesTbl ON - fes_mix.TAG_NAME = concat(rtuTagName,'.', tmpRelationToFesTbl.DOT_NO) - SET APP_TABLE_NAME='',APP_TAG_NAME='',APP_COLUMN_NAME=''; - #清除后台的 - UPDATE mix INNER JOIN tmpRelationToFesTbl ON TAG_NAME = getAfterFirstDot(tmpRelationToFesTbl.KEY_ID_TAG) SET RTU_TAG = '' ; - - UPDATE mix INNER JOIN tmpRelationToFesTbl ON TAG_NAME = getAfterFirstDot(tmpRelationToFesTbl.KEY_ID_TAG) SET RTU_TAG = rtuTagName; - - UPDATE mix_map_to_fes INNER JOIN tmpRelationToFesTbl - ON mix_map_to_fes.KEY_ID_TAG = tmpRelationToFesTbl.KEY_ID_TAG - SET mix_map_to_fes.DOT_NO = tmpRelationToFesTbl.DOT_NO; - - - #最后只剩下对应控制点,没有关联 - #analog_ctrl - DELETE FROM tmpRelationToFesTbl; - - INSERT INTO tmpRelationToFesTbl (KEY_ID_TAG , DOT_NO ) - SELECT tb1.TAG_NAME, tb2.DOT_NO - FROM - (SELECT analog_control.TAG_NAME,analog_temp_define.OUT_SEC_SEQ_NO - FROM analog_control,analog_temp_define - WHERE - analog_control.TAG_NAME like concat(devTagName,'.','%') AND - analog_control.POINT_TP_NAME= analog_temp_define.TAG_NAME AND - COALESCE(analog_temp_define.OUT_SEC_SEQ_NO,-1) >= 0 AND - analog_temp_define.SEC_DEVTP_NAME = fesDevTempTagName - )tb1 - INNER JOIN - (SELECT fes_analog_ctrl.DOT_NO, fes_analog_ctrl.SEQ_NO - FROM fes_analog_ctrl - WHERE - fes_analog_ctrl.DEV_TAG = fesDevTagName AND - getBeforeLastDot(fes_analog_ctrl.POINT_TP_NAME) = fesDevTempTagName - )tb2 - ON - tb1.OUT_SEC_SEQ_NO = tb2.SEQ_NO; - - UPDATE analog_control INNER JOIN tmpRelationToFesTbl - ON analog_control.TAG_NAME = tmpRelationToFesTbl.KEY_ID_TAG - SET analog_control.RTU_TAG = rtuTagName, - analog_control.OFFSET_NO = tmpRelationToFesTbl.DOT_NO; - - #digital_Ctrl - DELETE FROM tmpRelationToFesTbl; - - INSERT INTO tmpRelationToFesTbl (KEY_ID_TAG , DOT_NO ,OFFSET_NO) - SELECT tb1.TAG_NAME, tb2.DOT_NO ,1 - FROM - (SELECT digital_control.TAG_NAME,digital_temp_define.OUT_SEC_SEQ_NO1 - FROM digital_control,digital_temp_define - WHERE - digital_control.TAG_NAME like concat(devTagName,'.','%') AND - digital_control.POINT_TP_NAME= digital_temp_define.TAG_NAME AND - COALESCE(digital_temp_define.OUT_SEC_SEQ_NO1,-1) >= 0 AND - digital_temp_define.SEC_DEVTP_NAME = fesDevTempTagName - )tb1 - INNER JOIN - (SELECT fes_digital_ctrl.DOT_NO, fes_digital_ctrl.SEQ_NO - FROM fes_digital_ctrl - WHERE - fes_digital_ctrl.DEV_TAG = fesDevTagName AND - getBeforeLastDot(fes_digital_ctrl.POINT_TP_NAME) = fesDevTempTagName - )tb2 - ON - tb1.OUT_SEC_SEQ_NO1 = tb2.SEQ_NO; - - INSERT INTO tmpRelationToFesTbl (KEY_ID_TAG , DOT_NO ,OFFSET_NO) - SELECT tb1.TAG_NAME, tb2.DOT_NO ,2 - FROM - (SELECT digital_control.TAG_NAME,digital_temp_define.OUT_SEC_SEQ_NO2 - FROM digital_control,digital_temp_define - WHERE - digital_control.TAG_NAME like concat(devTagName,'.','%') AND - digital_control.POINT_TP_NAME= digital_temp_define.TAG_NAME AND - COALESCE(digital_temp_define.OUT_SEC_SEQ_NO2,-1) >= 0 AND - digital_temp_define.SEC_DEVTP_NAME = fesDevTempTagName - )tb1 - INNER JOIN - (SELECT fes_digital_ctrl.DOT_NO, fes_digital_ctrl.SEQ_NO - FROM fes_digital_ctrl - WHERE - fes_digital_ctrl.DEV_TAG = fesDevTagName AND - getBeforeLastDot(fes_digital_ctrl.POINT_TP_NAME) = fesDevTempTagName - )tb2 - ON - tb1.OUT_SEC_SEQ_NO2 = tb2.SEQ_NO; - - INSERT INTO tmpRelationToFesTbl (KEY_ID_TAG , DOT_NO ,OFFSET_NO) - SELECT tb1.TAG_NAME, tb2.DOT_NO ,3 - FROM - (SELECT digital_control.TAG_NAME,digital_temp_define.OUT_SEC_SEQ_NO3 - FROM digital_control,digital_temp_define - WHERE - digital_control.TAG_NAME like concat(devTagName,'.','%') AND - digital_control.POINT_TP_NAME= digital_temp_define.TAG_NAME AND - COALESCE(digital_temp_define.OUT_SEC_SEQ_NO3,-1) >= 0 AND - digital_temp_define.SEC_DEVTP_NAME = fesDevTempTagName - )tb1 - INNER JOIN - (SELECT fes_digital_ctrl.DOT_NO, fes_digital_ctrl.SEQ_NO - FROM fes_digital_ctrl - WHERE - fes_digital_ctrl.DEV_TAG = fesDevTagName AND - getBeforeLastDot(fes_digital_ctrl.POINT_TP_NAME) = fesDevTempTagName - )tb2 - ON - tb1.OUT_SEC_SEQ_NO3 = tb2.SEQ_NO; - - - INSERT INTO tmpRelationToFesTbl (KEY_ID_TAG , DOT_NO ,OFFSET_NO) - SELECT tb1.TAG_NAME, tb2.DOT_NO ,4 - FROM - (SELECT digital_control.TAG_NAME,digital_temp_define.OUT_SEC_SEQ_NO4 - FROM digital_control,digital_temp_define - WHERE - digital_control.TAG_NAME like concat(devTagName,'.','%') AND - digital_control.POINT_TP_NAME= digital_temp_define.TAG_NAME AND - COALESCE(digital_temp_define.OUT_SEC_SEQ_NO4,-1) >= 0 AND - digital_temp_define.SEC_DEVTP_NAME = fesDevTempTagName - )tb1 - INNER JOIN - (SELECT fes_digital_ctrl.DOT_NO, fes_digital_ctrl.SEQ_NO - FROM fes_digital_ctrl - WHERE - fes_digital_ctrl.DEV_TAG = fesDevTagName AND - getBeforeLastDot(fes_digital_ctrl.POINT_TP_NAME) = fesDevTempTagName - )tb2 - ON - tb1.OUT_SEC_SEQ_NO4 = tb2.SEQ_NO; - - INSERT INTO tmpRelationToFesTbl (KEY_ID_TAG , DOT_NO ,OFFSET_NO) - SELECT tb1.TAG_NAME, tb2.DOT_NO ,5 - FROM - (SELECT digital_control.TAG_NAME,digital_temp_define.OUT_SEC_SEQ_NO5 - FROM digital_control,digital_temp_define - WHERE - digital_control.TAG_NAME like concat(devTagName,'.','%') AND - digital_control.POINT_TP_NAME= digital_temp_define.TAG_NAME AND - COALESCE(digital_temp_define.OUT_SEC_SEQ_NO5,-1) >= 0 AND - digital_temp_define.SEC_DEVTP_NAME = fesDevTempTagName - )tb1 - INNER JOIN - (SELECT fes_digital_ctrl.DOT_NO, fes_digital_ctrl.SEQ_NO - FROM fes_digital_ctrl - WHERE - fes_digital_ctrl.DEV_TAG = fesDevTagName AND - getBeforeLastDot(fes_digital_ctrl.POINT_TP_NAME) = fesDevTempTagName - )tb2 - ON - tb1.OUT_SEC_SEQ_NO5 = tb2.SEQ_NO; - - - UPDATE digital_control INNER JOIN tmpRelationToFesTbl - ON digital_control.TAG_NAME = tmpRelationToFesTbl.KEY_ID_TAG AND tmpRelationToFesTbl.OFFSET_NO = 1 - SET digital_control.RTU_TAG = rtuTagName, - digital_control.OFFSET_NO1 = tmpRelationToFesTbl.DOT_NO; - - UPDATE digital_control INNER JOIN tmpRelationToFesTbl - ON digital_control.TAG_NAME = tmpRelationToFesTbl.KEY_ID_TAG AND tmpRelationToFesTbl.OFFSET_NO = 2 - SET digital_control.RTU_TAG = rtuTagName, - digital_control.OFFSET_NO2 = tmpRelationToFesTbl.DOT_NO; - - UPDATE digital_control INNER JOIN tmpRelationToFesTbl - ON digital_control.TAG_NAME = tmpRelationToFesTbl.KEY_ID_TAG AND tmpRelationToFesTbl.OFFSET_NO = 3 - SET digital_control.RTU_TAG = rtuTagName, - digital_control.OFFSET_NO3 = tmpRelationToFesTbl.DOT_NO; - - UPDATE digital_control INNER JOIN tmpRelationToFesTbl - ON digital_control.TAG_NAME = tmpRelationToFesTbl.KEY_ID_TAG AND tmpRelationToFesTbl.OFFSET_NO = 4 - SET digital_control.RTU_TAG = rtuTagName, - digital_control.OFFSET_NO4 = tmpRelationToFesTbl.DOT_NO; - - UPDATE digital_control INNER JOIN tmpRelationToFesTbl - ON digital_control.TAG_NAME = tmpRelationToFesTbl.KEY_ID_TAG AND tmpRelationToFesTbl.OFFSET_NO = 5 - SET digital_control.RTU_TAG = rtuTagName, - digital_control.OFFSET_NO5 = tmpRelationToFesTbl.DOT_NO; - - - #mix_ctrl - DELETE FROM tmpRelationToFesTbl; - - INSERT INTO tmpRelationToFesTbl (KEY_ID_TAG , DOT_NO ) - SELECT tb1.TAG_NAME, tb2.DOT_NO - FROM - (SELECT mix_control.TAG_NAME,mix_temp_define.OUT_SEC_SEQ_NO - FROM mix_control,mix_temp_define - WHERE - mix_control.TAG_NAME like concat(devTagName,'.','%') AND - mix_control.POINT_TP_NAME= mix_temp_define.TAG_NAME AND - COALESCE(mix_temp_define.OUT_SEC_SEQ_NO,-1) >= 0 AND - mix_temp_define.SEC_DEVTP_NAME = fesDevTempTagName - )tb1 - INNER JOIN - (SELECT fes_mix_ctrl.DOT_NO, fes_mix_ctrl.SEQ_NO - FROM fes_mix_ctrl - WHERE - fes_mix_ctrl.DEV_TAG = fesDevTagName AND - getBeforeLastDot(fes_mix_ctrl.POINT_TP_NAME) = fesDevTempTagName - )tb2 - ON - tb1.OUT_SEC_SEQ_NO = tb2.SEQ_NO; - - - UPDATE mix_control INNER JOIN tmpRelationToFesTbl - ON mix_control.TAG_NAME = tmpRelationToFesTbl.KEY_ID_TAG - SET mix_control.RTU_TAG = rtuTagName, - mix_control.OFFSET_NO = tmpRelationToFesTbl.DOT_NO; - - - -END;; -DELIMITER ; - -drop procedure if exists sortResPara1; -DELIMITER ;; -CREATE DEFINER=`root`@`%` PROCEDURE `sortResPara1`(rtuTag varchar(64), startNum decimal(10,0)) -body:BEGIN - /* - * 依据设备ID重排规约参数1 - * - */ - - - #acc - set @tmpResParaVar = startNum; - UPDATE ( - SELECT fes_accuml.TAG_NAME,fes_accuml.DESCRIPTION,fes_dev_info.DEV_DESC, fes_accuml.RES_PARA_INT1 - FROM fes_accuml LEFT JOIN fes_dev_info on fes_accuml.DEV_TAG = fes_dev_info.TAG_NAME - WHERE fes_accuml.TAG_NAME LIKE concat(rtuTag,'.%') - ORDER BY fes_dev_info.DEV_ID,fes_accuml.SEQ_NO) temp - LEFT JOIN fes_accuml ON temp.TAG_NAME = fes_accuml.TAG_NAME - set fes_accuml.RES_PARA_INT1 = (@tmpResParaVar := @tmpResParaVar + 1); - - #ana - set @tmpResParaVar = startNum; - - UPDATE ( - SELECT fes_analog.TAG_NAME,fes_analog.DESCRIPTION,fes_dev_info.DEV_DESC, fes_analog.RES_PARA_INT1 - FROM fes_analog LEFT JOIN fes_dev_info on fes_analog.DEV_TAG = fes_dev_info.TAG_NAME - WHERE fes_analog.TAG_NAME LIKE concat(rtuTag,'.%') - ORDER BY fes_dev_info.DEV_ID,fes_analog.SEQ_NO) temp - LEFT JOIN fes_analog ON temp.TAG_NAME = fes_analog.TAG_NAME - set fes_analog.RES_PARA_INT1 = (@tmpResParaVar := @tmpResParaVar + 1); - - #dig - set @tmpResParaVar = startNum; - - UPDATE ( - SELECT fes_digital.TAG_NAME,fes_digital.DESCRIPTION,fes_dev_info.DEV_DESC, fes_digital.RES_PARA_INT1 - FROM fes_digital LEFT JOIN fes_dev_info on fes_digital.DEV_TAG = fes_dev_info.TAG_NAME - WHERE fes_digital.TAG_NAME LIKE concat(rtuTag,'.%') - ORDER BY fes_dev_info.DEV_ID,fes_digital.SEQ_NO) temp - LEFT JOIN fes_digital ON temp.TAG_NAME = fes_digital.TAG_NAME - set fes_digital.RES_PARA_INT1 = (@tmpResParaVar := @tmpResParaVar + 1); - - #mix - set @tmpResParaVar = startNum; - - UPDATE ( - SELECT fes_mix.TAG_NAME,fes_mix.DESCRIPTION,fes_dev_info.DEV_DESC, fes_mix.RES_PARA_INT1 - FROM fes_mix LEFT JOIN fes_dev_info on fes_mix.DEV_TAG = fes_dev_info.TAG_NAME - WHERE fes_mix.TAG_NAME LIKE concat(rtuTag,'.%') - ORDER BY fes_dev_info.DEV_ID,fes_mix.SEQ_NO) temp - LEFT JOIN fes_mix ON temp.TAG_NAME = fes_mix.TAG_NAME - set fes_mix.RES_PARA_INT1 = (@tmpResParaVar := @tmpResParaVar + 1); - - #anaCtrl - set @tmpResParaVar = startNum; - - UPDATE ( - SELECT fes_analog_ctrl.TAG_NAME,fes_analog_ctrl.DESCRIPTION,fes_dev_info.DEV_DESC, fes_analog_ctrl.RES_PARA_INT1 - FROM fes_analog_ctrl LEFT JOIN fes_dev_info on fes_analog_ctrl.DEV_TAG = fes_dev_info.TAG_NAME - WHERE fes_analog_ctrl.TAG_NAME LIKE concat(rtuTag,'.%') - ORDER BY fes_dev_info.DEV_ID,fes_analog_ctrl.SEQ_NO) temp - LEFT JOIN fes_analog_ctrl ON temp.TAG_NAME = fes_analog_ctrl.TAG_NAME - set fes_analog_ctrl.RES_PARA_INT1 = (@tmpResParaVar := @tmpResParaVar + 1); - - #digCtrl - set @tmpResParaVar = startNum; - - UPDATE ( - SELECT fes_digital_ctrl.TAG_NAME,fes_digital_ctrl.DESCRIPTION,fes_dev_info.DEV_DESC, fes_digital_ctrl.RES_PARA_INT1 - FROM fes_digital_ctrl LEFT JOIN fes_dev_info on fes_digital_ctrl.DEV_TAG = fes_dev_info.TAG_NAME - WHERE fes_digital_ctrl.TAG_NAME LIKE concat(rtuTag,'.%') - ORDER BY fes_dev_info.DEV_ID,fes_digital_ctrl.SEQ_NO) temp - LEFT JOIN fes_digital_ctrl ON temp.TAG_NAME = fes_digital_ctrl.TAG_NAME - set fes_digital_ctrl.RES_PARA_INT1 = (@tmpResParaVar := @tmpResParaVar + 1); - #mixCtrl - set @tmpResParaVar = startNum; - - UPDATE ( - SELECT fes_mix_ctrl.TAG_NAME,fes_mix_ctrl.DESCRIPTION,fes_dev_info.DEV_DESC, fes_mix_ctrl.RES_PARA_INT1 - FROM fes_mix_ctrl LEFT JOIN fes_dev_info on fes_mix_ctrl.DEV_TAG = fes_dev_info.TAG_NAME - WHERE fes_mix_ctrl.TAG_NAME LIKE concat(rtuTag,'.%') - ORDER BY fes_dev_info.DEV_ID,fes_mix_ctrl.SEQ_NO) temp - LEFT JOIN fes_mix_ctrl ON temp.TAG_NAME = fes_mix_ctrl.TAG_NAME - set fes_mix_ctrl.RES_PARA_INT1 = (@tmpResParaVar := @tmpResParaVar + 1); -END;; -DELIMITER ; - -drop procedure if exists updateDescByFes; -DELIMITER ;; -CREATE DEFINER=`root`@`%` PROCEDURE `updateDescByFes`(devTagName varchar(64)) -body:BEGIN - #使用前置设备测点的描述,更新后台设备的测点的描述 - #需要使用临时表先存储起来 - - CREATE TEMPORARY TABLE IF NOT EXISTS tmpUpdateDescByFesTbl( - TAG_NAME varchar(64), - DESCRIPTION varchar(128) - ); - - #acc - DELETE FROM tmpUpdateDescByFesTbl; - - INSERT INTO tmpUpdateDescByFesTbl(TAG_NAME,DESCRIPTION) - SELECT accuml.TAG_NAME,fes_accuml.DESCRIPTION - FROM (accuml INNER JOIN accuml_map_to_fes ON accuml.DEVICE = devTagName AND accuml_map_to_fes.KEY_ID_TAG = concat('accuml.',accuml.TAG_NAME)) - INNER JOIN fes_accuml ON fes_accuml.TAG_NAME = concat(accuml_map_to_fes.RTU_TAG,'.',accuml_map_to_fes.DOT_NO); - - UPDATE accuml INNER JOIN tmpUpdateDescByFesTbl - ON accuml.TAG_NAME = tmpUpdateDescByFesTbl.TAG_NAME - SET accuml.DESCRIPTION = tmpUpdateDescByFesTbl.DESCRIPTION; - #ana - DELETE FROM tmpUpdateDescByFesTbl; - INSERT INTO tmpUpdateDescByFesTbl(TAG_NAME,DESCRIPTION) - SELECT analog.TAG_NAME,fes_analog.DESCRIPTION - FROM (analog INNER JOIN analog_map_to_fes ON analog.DEVICE = devTagName AND analog_map_to_fes.KEY_ID_TAG = concat('analog.',analog.TAG_NAME)) - INNER JOIN fes_analog ON fes_analog.TAG_NAME = concat(analog_map_to_fes.RTU_TAG,'.',analog_map_to_fes.DOT_NO); - - UPDATE analog INNER JOIN tmpUpdateDescByFesTbl - ON analog.TAG_NAME = tmpUpdateDescByFesTbl.TAG_NAME - SET analog.DESCRIPTION = tmpUpdateDescByFesTbl.DESCRIPTION; - #dig - DELETE FROM tmpUpdateDescByFesTbl; - - INSERT INTO tmpUpdateDescByFesTbl(TAG_NAME,DESCRIPTION) - SELECT digital.TAG_NAME,fes_digital.DESCRIPTION - FROM (digital INNER JOIN digital_map_to_fes ON digital.DEVICE = devTagName AND digital_map_to_fes.KEY_ID_TAG = concat('digital.',digital.TAG_NAME)) - INNER JOIN fes_digital ON fes_digital.TAG_NAME = concat(digital_map_to_fes.RTU_TAG,'.',digital_map_to_fes.DOT_NO1); - - UPDATE digital INNER JOIN tmpUpdateDescByFesTbl - ON digital.TAG_NAME = tmpUpdateDescByFesTbl.TAG_NAME - SET digital.DESCRIPTION = tmpUpdateDescByFesTbl.DESCRIPTION; - #mix - DELETE FROM tmpUpdateDescByFesTbl; - - INSERT INTO tmpUpdateDescByFesTbl(TAG_NAME,DESCRIPTION) - SELECT mix.TAG_NAME,fes_mix.DESCRIPTION - FROM (mix INNER JOIN mix_map_to_fes ON mix.DEVICE = devTagName AND mix_map_to_fes.KEY_ID_TAG = concat('mix.',mix.TAG_NAME)) - INNER JOIN fes_mix ON fes_mix.TAG_NAME = concat(mix_map_to_fes.RTU_TAG,'.',mix_map_to_fes.DOT_NO); - - UPDATE mix INNER JOIN tmpUpdateDescByFesTbl - ON mix.TAG_NAME = tmpUpdateDescByFesTbl.TAG_NAME - SET mix.DESCRIPTION = tmpUpdateDescByFesTbl.DESCRIPTION; - - -END;; -DELIMITER ; - -drop procedure if exists updateFesResPara; -DELIMITER ;; -CREATE DEFINER=`root`@`%` PROCEDURE `updateFesResPara`(tableName varchar(64),startNum decimal(10,0)) -body:BEGIN - /* - * 批量修改设备的规约参数1,要批量修改的设备在export_seq中 - * tableName 表名 - * startNum 修改的起始数字 - */ - - SET @fesResPara := startNum - 1; - - #创建临时表 - CREATE TEMPORARY TABLE IF NOT EXISTS tmpUpdateFesResParaTbl( - TAG_NAME varchar(64) NOT NULL, - RES_PARA decimal(10,0) NOT NULL - ); - DELETE FROM tmpUpdateFesResParaTbl; - - IF lower(tableName) = 'fes_accuml' THEN - BEGIN - INSERT INTO tmpUpdateFesResParaTbl(TAG_NAME,RES_PARA) - SELECT TAG_NAME,1 - FROM fes_accuml,export_seq WHERE fes_accuml.DEV_TAG = export_seq.DEV_TAG - ORDER BY export_seq.`NO`,fes_accuml.SEQ_NO; - - UPDATE tmpUpdateFesResParaTbl SET RES_PARA = (@fesResPara := @fesResPara + 1); - - UPDATE fes_accuml INNER JOIN tmpUpdateFesResParaTbl ON fes_accuml.TAG_NAME = tmpUpdateFesResParaTbl.TAG_NAME - SET fes_accuml.RES_PARA_INT1 = tmpUpdateFesResParaTbl.RES_PARA; - END; - ELSEIF lower(tableName) = 'fes_analog' THEN - BEGIN - INSERT INTO tmpUpdateFesResParaTbl(TAG_NAME,RES_PARA) - SELECT TAG_NAME,1 - FROM fes_analog,export_seq WHERE fes_analog.DEV_TAG = export_seq.DEV_TAG - ORDER BY export_seq.`NO`,fes_analog.SEQ_NO; - - UPDATE tmpUpdateFesResParaTbl SET RES_PARA = (@fesResPara := @fesResPara + 1); - - UPDATE fes_analog INNER JOIN tmpUpdateFesResParaTbl ON fes_analog.TAG_NAME = tmpUpdateFesResParaTbl.TAG_NAME - SET fes_analog.RES_PARA_INT1 = tmpUpdateFesResParaTbl.RES_PARA; - END; - ELSEIF lower(tableName) = 'fes_analog_ctrl' THEN - BEGIN - INSERT INTO tmpUpdateFesResParaTbl(TAG_NAME,RES_PARA) - SELECT TAG_NAME,1 - FROM fes_analog_ctrl,export_seq WHERE fes_analog_ctrl.DEV_TAG = export_seq.DEV_TAG - ORDER BY export_seq.`NO`,fes_analog_ctrl.SEQ_NO; - - UPDATE tmpUpdateFesResParaTbl SET RES_PARA = (@fesResPara := @fesResPara + 1); - - UPDATE fes_analog_ctrl INNER JOIN tmpUpdateFesResParaTbl ON fes_analog_ctrl.TAG_NAME = tmpUpdateFesResParaTbl.TAG_NAME - SET fes_analog_ctrl.RES_PARA_INT1 = tmpUpdateFesResParaTbl.RES_PARA; - END; - ELSEIF lower(tableName) = 'fes_digital' THEN - BEGIN - INSERT INTO tmpUpdateFesResParaTbl(TAG_NAME,RES_PARA) - SELECT TAG_NAME,1 - FROM fes_digital,export_seq WHERE fes_digital.DEV_TAG = export_seq.DEV_TAG - ORDER BY export_seq.`NO`,fes_digital.SEQ_NO; - - UPDATE tmpUpdateFesResParaTbl SET RES_PARA = (@fesResPara := @fesResPara + 1); - - UPDATE fes_digital INNER JOIN tmpUpdateFesResParaTbl ON fes_digital.TAG_NAME = tmpUpdateFesResParaTbl.TAG_NAME - SET fes_digital.RES_PARA_INT1 = tmpUpdateFesResParaTbl.RES_PARA; - END; - ELSEIF lower(tableName) = 'fes_digital_ctrl' THEN - BEGIN - INSERT INTO tmpUpdateFesResParaTbl(TAG_NAME,RES_PARA) - SELECT TAG_NAME,1 - FROM fes_digital_ctrl,export_seq WHERE fes_digital_ctrl.DEV_TAG = export_seq.DEV_TAG - ORDER BY export_seq.`NO`,fes_digital_ctrl.SEQ_NO; - - UPDATE tmpUpdateFesResParaTbl SET RES_PARA = (@fesResPara := @fesResPara + 1); - - UPDATE fes_digital_ctrl INNER JOIN tmpUpdateFesResParaTbl ON fes_digital_ctrl.TAG_NAME = tmpUpdateFesResParaTbl.TAG_NAME - SET fes_digital_ctrl.RES_PARA_INT1 = tmpUpdateFesResParaTbl.RES_PARA; - END; - ELSEIF lower(tableName) = 'fes_mix' THEN - BEGIN - INSERT INTO tmpUpdateFesResParaTbl(TAG_NAME,RES_PARA) - SELECT TAG_NAME,1 - FROM fes_mix,export_seq WHERE fes_mix.DEV_TAG = export_seq.DEV_TAG - ORDER BY export_seq.`NO`,fes_mix.SEQ_NO; - - UPDATE tmpUpdateFesResParaTbl SET RES_PARA = (@fesResPara := @fesResPara + 1); - - UPDATE fes_mix INNER JOIN tmpUpdateFesResParaTbl ON fes_mix.TAG_NAME = tmpUpdateFesResParaTbl.TAG_NAME - SET fes_mix.RES_PARA_INT1 = tmpUpdateFesResParaTbl.RES_PARA; - END; - ELSEIF lower(tableName) = 'fes_mix_ctrl' THEN - BEGIN - INSERT INTO tmpUpdateFesResParaTbl(TAG_NAME,RES_PARA) - SELECT TAG_NAME,1 - FROM fes_mix_ctrl,export_seq WHERE fes_mix_ctrl.DEV_TAG = export_seq.DEV_TAG - ORDER BY export_seq.`NO`,fes_mix_ctrl.SEQ_NO; - - UPDATE tmpUpdateFesResParaTbl SET RES_PARA = (@fesResPara := @fesResPara + 1); - - UPDATE fes_mix_ctrl INNER JOIN tmpUpdateFesResParaTbl ON fes_mix_ctrl.TAG_NAME = tmpUpdateFesResParaTbl.TAG_NAME - SET fes_mix_ctrl.RES_PARA_INT1 = tmpUpdateFesResParaTbl.RES_PARA; - END; - END IF; - - - -END;; -DELIMITER ; - -drop procedure if exists updateForwardBase; -DELIMITER ;; -CREATE DEFINER=`root`@`%` PROCEDURE `updateForwardBase`(tableName varchar(64), rtuTagName varchar(64), bs decimal(22,6)) -body:BEGIN - /* - * 修改转发表的修正值 - */ - IF lower(tableName) = 'fes_forwarding_accuml' THEN - UPDATE fes_forwarding_accuml SET BASE = bs WHERE RTU_TAG = rtuTagName ; - ELSEIF lower(tableName) = 'fes_forwarding_anaolg' THEN - UPDATE fes_forwarding_anaolg SET BASE = bs WHERE RTU_TAG = rtuTagName ; - END IF; - -END;; -DELIMITER ; - -drop procedure if exists updateForwardCoeff; -DELIMITER ;; -CREATE DEFINER=`root`@`%` PROCEDURE `updateForwardCoeff`( tableName varchar(64), rtuTagName varchar(64), coe decimal(22,6)) -body:BEGIN - #修改转发表的系数 - - IF lower(tableName) = 'fes_forwarding_accuml' THEN - UPDATE fes_forwarding_accuml SET COEFF = coe WHERE RTU_TAG = rtuTagName ; - ELSEIF lower(tableName) = 'fes_forwarding_anaolg' THEN - UPDATE fes_forwarding_anaolg SET COEFF = coe WHERE RTU_TAG = rtuTagName ; - END IF; - - -END;; -DELIMITER ; - -drop procedure if exists updateForwardId; -DELIMITER ;; -CREATE DEFINER=`root`@`%` PROCEDURE `updateForwardId`(tableName varchar(64), rtuTagName varchar(64), remoteStartNo decimal(10,0)) -body:BEGIN - #修改前置编号 - #tableName 表名 - #rtuTagName 指定RTU - #remoteStartNo 修改的起始数字 - SET @forwardId := remoteStartNo - 1; - IF lower(tableName) = 'fes_forwarding_accuml' THEN - UPDATE fes_forwarding_accuml SET ID = (@forwardId := @forwardId + 1) WHERE RTU_TAG = rtuTagName ORDER BY ID; - ELSEIF lower(tableName) = 'fes_forwarding_anaolg' THEN - UPDATE fes_forwarding_anaolg SET ID = (@forwardId := @forwardId + 1) WHERE RTU_TAG = rtuTagName ORDER BY ID; - ELSEIF lower(tableName) = 'fes_forwarding_anaolg_ctrl' THEN - UPDATE fes_forwarding_anaolg_ctrl SET ID = (@forwardId := @forwardId + 1) WHERE RTU_TAG = rtuTagName ORDER BY ID; - ELSEIF lower(tableName) = 'fes_forwarding_digital' THEN - UPDATE fes_forwarding_digital SET ID = (@forwardId := @forwardId + 1) WHERE RTU_TAG = rtuTagName ORDER BY ID; - ELSEIF lower(tableName) = 'fes_forwarding_digital_ctrl' THEN - UPDATE fes_forwarding_digital_ctrl SET ID = (@forwardId := @forwardId + 1) WHERE RTU_TAG = rtuTagName ORDER BY ID; - END IF; -END;; -DELIMITER ; - -drop procedure if exists updateForwardRemote; -DELIMITER ;; -CREATE DEFINER=`root`@`%` PROCEDURE `updateForwardRemote`( tableName varchar(64), rtuTagName varchar(64), remoteStartNo decimal(10,0)) -body:BEGIN - #修改转发表的远动号 - - #因为后面会自动加1,这里先减1 - SET @forwardRemoteNum := remoteStartNo - 1; - IF lower(tableName) = 'fes_forwarding_accuml' THEN - UPDATE fes_forwarding_accuml SET REMOTE_NO = (@forwardRemoteNum := @forwardRemoteNum + 1) WHERE RTU_TAG = rtuTagName ORDER BY ID; - ELSEIF lower(tableName) = 'fes_forwarding_anaolg' THEN - UPDATE fes_forwarding_anaolg SET REMOTE_NO = (@forwardRemoteNum := @forwardRemoteNum + 1) WHERE RTU_TAG = rtuTagName ORDER BY ID; - ELSEIF lower(tableName) = 'fes_forwarding_anaolg_ctrl' THEN - UPDATE fes_forwarding_anaolg_ctrl SET REMOTE_NO = (@forwardRemoteNum := @forwardRemoteNum + 1) WHERE RTU_TAG = rtuTagName ORDER BY ID; - ELSEIF lower(tableName) = 'fes_forwarding_digital' THEN - UPDATE fes_forwarding_digital SET REMOTE_NO = (@forwardRemoteNum := @forwardRemoteNum + 1) WHERE RTU_TAG = rtuTagName ORDER BY ID; - ELSEIF lower(tableName) = 'fes_forwarding_digital_ctrl' THEN - UPDATE fes_forwarding_digital_ctrl SET REMOTE_NO = (@forwardRemoteNum := @forwardRemoteNum + 1) WHERE RTU_TAG = rtuTagName ORDER BY ID; - END IF; - - -END;; -DELIMITER ; - -drop procedure if exists updateUsergRegion; -DELIMITER ;; -CREATE DEFINER=`root`@`%` PROCEDURE `updateUsergRegion`(roleId decimal(10,0)) -BEGIN - #更新用户组的责任区 - #更新rm_userg_rsp_info表 - CREATE TEMPORARY TABLE IF NOT EXISTS tmpUserGroupTbl( - PERM_USER_GROUP decimal(10,0) - ); - DELETE FROM tmpUserGroupTbl; - - CREATE TEMPORARY TABLE IF NOT EXISTS tmpUURegion( - PERM_USER_GROUP decimal(10,0), - PERM_ROLE decimal(10,0), - PERM_SPEFUNC decimal(10,0), - PERM_REGION1 decimal(10,0), - PERM_REGION2 decimal(10,0), - PERM_REGION3 decimal(10,0), - PERM_REGION4 decimal(10,0), - PERM_LOCATION1 decimal(10,0), - PERM_LOCATION2 decimal(10,0), - PERM_LOCATION3 decimal(10,0), - PERM_LOCATION4 decimal(10,0), - PERM_LOCATION5 decimal(10,0), - PERM_LOCATION6 decimal(10,0), - PERM_LOCATION7 decimal(10,0), - PERM_LOCATION8 decimal(10,0) - ); - DELETE FROM tmpUURegion; - - INSERT INTO tmpUserGroupTbl(PERM_USER_GROUP) - SELECT PERM_USER_GROUP FROM rm_userg_rsp_info WHERE PERM_ROLE = roleId GROUP BY PERM_USER_GROUP; - - INSERT INTO tmpUURegion (PERM_USER_GROUP, PERM_ROLE, PERM_SPEFUNC, PERM_REGION1, PERM_REGION2, PERM_REGION3, PERM_REGION4, PERM_LOCATION1, PERM_LOCATION2, PERM_LOCATION3, PERM_LOCATION4, PERM_LOCATION5, PERM_LOCATION6, PERM_LOCATION7, PERM_LOCATION8) - SELECT PERM_USER_GROUP, PERM_ROLE, PERM_SPEFUNC, PERM_REGION1, PERM_REGION2, PERM_REGION3, PERM_REGION4, PERM_LOCATION1, PERM_LOCATION2, PERM_LOCATION3, PERM_LOCATION4, PERM_LOCATION5, PERM_LOCATION6, PERM_LOCATION7, PERM_LOCATION8 - FROM rm_userg_rsp_info WHERE PERM_ROLE = roleId; - - - - #删除旧的数据再重新插入 - - DELETE FROM rm_userg_rsp_info WHERE PERM_ROLE = roleId; - INSERT INTO rm_userg_rsp_info(PERM_USER_GROUP, PERM_ROLE, PERM_SPEFUNC, PERM_REGION1, PERM_REGION2, PERM_REGION3, PERM_REGION4, PERM_LOCATION1, PERM_LOCATION2, PERM_LOCATION3, PERM_LOCATION4, PERM_LOCATION5, PERM_LOCATION6, PERM_LOCATION7, PERM_LOCATION8) - SELECT tmpUserGroupTbl.PERM_USER_GROUP,roleId,rm_role_spef_reg.PERM_SPEFUNC,rm_role_spef_reg.PERM_REGION1,rm_role_spef_reg.PERM_REGION2,rm_role_spef_reg.PERM_REGION3,rm_role_spef_reg.PERM_REGION4,0,0,0,0,0,0,0,0 - FROM rm_role_spef_reg ,tmpUserGroupTbl WHERE rm_role_spef_reg.PERM_ROLE=roleId; - - UPDATE rm_userg_rsp_info INNER JOIN tmpUURegion - ON rm_userg_rsp_info.PERM_USER_GROUP = tmpUURegion.PERM_USER_GROUP - AND rm_userg_rsp_info.PERM_ROLE = roleId AND tmpUURegion.PERM_ROLE = roleId - AND rm_userg_rsp_info.PERM_SPEFUNC = tmpUURegion.PERM_SPEFUNC - SET - rm_userg_rsp_info.PERM_LOCATION1 = tmpUURegion.PERM_LOCATION1, - rm_userg_rsp_info.PERM_LOCATION2 = tmpUURegion.PERM_LOCATION2, - rm_userg_rsp_info.PERM_LOCATION3 = tmpUURegion.PERM_LOCATION3, - rm_userg_rsp_info.PERM_LOCATION4 = tmpUURegion.PERM_LOCATION4, - rm_userg_rsp_info.PERM_LOCATION5 = tmpUURegion.PERM_LOCATION5, - rm_userg_rsp_info.PERM_LOCATION6 = tmpUURegion.PERM_LOCATION6, - rm_userg_rsp_info.PERM_LOCATION7 = tmpUURegion.PERM_LOCATION7, - rm_userg_rsp_info.PERM_LOCATION8 = tmpUURegion.PERM_LOCATION8; - - -END;; -DELIMITER ; - -drop procedure if exists updateUsergRsp; -DELIMITER ;; -CREATE DEFINER=`root`@`%` PROCEDURE `updateUsergRsp`(userGId decimal(10,0)) -BEGIN - #更新rm_userg_rsp_info表 - UPDATE rm_userg_rsp_info INNER JOIN rm_role_spef_reg - ON rm_userg_rsp_info.PERM_ROLE = rm_role_spef_reg.PERM_ROLE AND rm_userg_rsp_info.PERM_SPEFUNC = rm_role_spef_reg.PERM_SPEFUNC - AND rm_userg_rsp_info.PERM_USER_GROUP = userGId - SET - rm_userg_rsp_info.PERM_REGION1 = rm_role_spef_reg.PERM_REGION1, - rm_userg_rsp_info.PERM_REGION2 = rm_role_spef_reg.PERM_REGION2, - rm_userg_rsp_info.PERM_REGION3 = rm_role_spef_reg.PERM_REGION3, - rm_userg_rsp_info.PERM_REGION4 = rm_role_spef_reg.PERM_REGION4; - - -END;; -DELIMITER ; - -drop procedure if exists userGRoleModify; -DELIMITER ;; -CREATE DEFINER=`root`@`%` PROCEDURE `userGRoleModify`(userGroupId decimal(10,0), roleIdList varchar(100)) -BEGIN - #针对用户组所属角色有所更改的情况 - #userGroupId 用户组ID,不可为空 - #roleIdList 该用户组所属的角色的ID号列表,以逗号分隔 - - #删除不在指定roleIdList表中的角色 - - DELETE FROM rm_userg_rsp_info WHERE PERM_USER_GROUP = userGroupId AND find_in_set(PERM_ROLE,roleIdList) = 0; - - - - -END;; -DELIMITER ; - -drop function if exists findPsc3000Tag; -DELIMITER ;; -CREATE DEFINER=`root`@`%` FUNCTION `findPsc3000Tag`(pointDesc varchar(128),pointRemoteNo decimal(10,0), pointDevId decimal(10,0),tableName varchar(64)) RETURNS varchar(64) CHARSET utf8 -BEGIN - #在对应的PSC3000的测点表中查找对应测点的TAG - - DECLARE tempVar varchar(64) DEFAULT ''; - - IF tableName='psc_acc' THEN - SET tempVar =(SELECT TAG_NAME FROM psc3000_acc WHERE DESCRIPTION = pointDesc AND pointRemoteNo = REMOTE_NO AND pointDevId = DEV_ID); - ELSEIF tableName='psc_ana' THEN - SET tempVar =(SELECT TAG_NAME FROM psc3000_ana WHERE DESCRIPTION = pointDesc AND pointRemoteNo = REMOTE_NO AND pointDevId = DEV_ID); - ELSEIF tableName='psc_dig' THEN - SET tempVar =(SELECT TAG_NAME FROM psc3000_dig WHERE DESCRIPTION = pointDesc AND pointRemoteNo = REMOTE_NO AND pointDevId = DEV_ID); - END IF; - - IF tempVar IS NULL THEN SET tempVar = ''; - END IF; - #自增 - RETURN tempVar; - -END;; -DELIMITER ; - -drop function if exists getAfterFirstDot; -DELIMITER ;; -CREATE DEFINER=`root`@`%` FUNCTION `getAfterFirstDot`( ds varchar(128)) RETURNS varchar(128) CHARSET utf8 -BEGIN - /* - * 返回第一个.号之后的字符串 - */ - DECLARE tempVar varchar(128); - DECLARE countStr int; - DECLARE countFirstStr int; - SET tempVar = ds; - - IF locate('.',ds) = 0 THEN RETURN tempVar; - ELSE - BEGIN - SET tempVar = substring_index( ds, '.' , 1); - SET countStr = char_length(ds); - SET countFirstStr = char_length(tempVar); - SET countFirstStr = countFirstStr + 1; - SET tempVar = right(ds,countStr - countFirstStr); - RETURN tempVar; - END; - END IF; -END;; -DELIMITER ; - -drop function if exists getAfterLastDot; -DELIMITER ;; -CREATE DEFINER=`root`@`%` FUNCTION `getAfterLastDot`( ds varchar(128)) RETURNS varchar(128) CHARSET utf8 -BEGIN - - /* - * 返回最后一个.号之后的数据 - */ - DECLARE tempVar varchar(128); - SET tempVar = ''; - - IF locate('.',ds) = 0 THEN RETURN tempVar; - ELSE RETURN substring_index( ds, '.' , -1); - END IF; -END;; -DELIMITER ; - -drop function if exists getBeforeFirstDot; -DELIMITER ;; -CREATE DEFINER=`root`@`%` FUNCTION `getBeforeFirstDot`( ds varchar(128)) RETURNS varchar(128) CHARSET utf8 -BEGIN - /* - * 返回第一个.号之前的字符串 - */ - - IF locate('.',ds) = 0 THEN RETURN ''; - ELSE - BEGIN - RETURN substring_index( ds, '.' , 1); - END; - END IF; -END;; -DELIMITER ; - -drop function if exists getBeforeLastDot; -DELIMITER ;; -CREATE DEFINER=`root`@`%` FUNCTION `getBeforeLastDot`( ds varchar(128)) RETURNS varchar(128) CHARSET utf8 -BEGIN - /* - * 返回最后一个.之前的字符串 - */ - DECLARE tempVar varchar(128); - DECLARE countStr int; - DECLARE countLastStr int; - SET tempVar = ds; - - IF locate('.',ds) = 0 THEN RETURN tempVar; - ELSE - BEGIN - SET tempVar = substring_index( ds, '.' , -1); - SET countStr = char_length(ds); - SET countLastStr = char_length(tempVar); - SET countLastStr = countLastStr + 1; - SET tempVar = left(ds,countStr - countLastStr); - RETURN tempVar; - END; - END IF; -END;; -DELIMITER ; - -drop function if exists getFesPointType; -DELIMITER ;; -CREATE DEFINER=`root`@`%` FUNCTION `getFesPointType`( flag varchar(64)) RETURNS decimal(10,0) -BEGIN - /* - * 返回flag指定的点类型 - * - * FES_ACC:0 - * FES_ANA:1 - * FES_DIG:2 - * FES_MIX:3 - * FES_ANA_CTRL:4 - * FES_DIG_CTRL:5 - * FES_MIX_CTRL:6 - * FES_CONST:7 - */ - - RETURN - CASE flag - WHEN 'FES_ACC' THEN 0 - WHEN 'FES_ANA' THEN 1 - WHEN 'FES_DIG' THEN 2 - WHEN 'FES_MIX' THEN 3 - WHEN 'FES_ANA_CTRL' THEN 4 - WHEN 'FES_DIG_CTRL' THEN 5 - WHEN 'FES_MIX_CTRL' THEN 6 - WHEN 'FES_CONST' THEN 7 - ELSE 0 - END; - -END;; -DELIMITER ; - -drop function if exists getMaxDefaultDevSeqNo; -DELIMITER ;; -CREATE DEFINER=`root`@`%` FUNCTION `getMaxDefaultDevSeqNo`( defaultDevTagName varchar(64), dotType decimal(10,0)) RETURNS decimal(10,0) -BEGIN - /* - * 返回指定defaultDevTagName的最大SeqNo - */ - DECLARE tempVar decimal(10,0) DEFAULT 0; - - IF dotType=getFesPointType('FES_ACC') THEN SET tempVar =(SELECT max(SEQ_NO) FROM fes_accuml WHERE DEV_TAG=defaultDevTagName); - END IF; - - IF dotType=getFesPointType('FES_ANA') THEN SET tempVar =(SELECT max(SEQ_NO) FROM fes_analog WHERE DEV_TAG=defaultDevTagName); - END IF; - - IF dotType=getFesPointType('FES_DIG') THEN SET tempVar =(SELECT max(SEQ_NO) FROM fes_digital WHERE DEV_TAG=defaultDevTagName); - END IF; - - IF dotType=getFesPointType('FES_MIX') THEN SET tempVar =(SELECT max(SEQ_NO) FROM fes_mix WHERE DEV_TAG=defaultDevTagName); - END IF; - - IF dotType=getFesPointType('FES_ANA_CTRL') THEN SET tempVar =(SELECT max(SEQ_NO) FROM fes_analog_ctrl WHERE DEV_TAG=defaultDevTagName); - END IF; - - IF dotType=getFesPointType('FES_DIG_CTRL') THEN SET tempVar =(SELECT max(SEQ_NO) FROM fes_digital_ctrl WHERE DEV_TAG=defaultDevTagName); - END IF; - - IF dotType=getFesPointType('FES_MIX_CTRL') THEN SET tempVar =(SELECT max(SEQ_NO) FROM fes_mix_ctrl WHERE DEV_TAG=defaultDevTagName); - END IF; - - - IF tempVar IS NULL THEN SET tempVar = 0; - END IF; - - RETURN tempVar + 1; -END;; -DELIMITER ; - -drop function if exists getMaxRtuDotNo; -DELIMITER ;; -CREATE DEFINER=`root`@`%` FUNCTION `getMaxRtuDotNo`( rtuTagName varchar(64), dotType decimal(10,0)) RETURNS decimal(10,0) -BEGIN - /* - * 返回指定rtuTagName的最大点号 - * dotType可取三个值,0,1,2 - * 0表示FES_ACC - * 1表示FES_ANA - * 2表示FES_DIG - * 3表示FES_MIX - */ - DECLARE tempVar decimal(10,0) DEFAULT 0; - - IF dotType=getFesPointType('FES_ACC') THEN SET tempVar =(SELECT max(DOT_NO) FROM fes_accuml WHERE RTU_TAG=rtuTagName); - END IF; - - IF dotType=getFesPointType('FES_ANA') THEN SET tempVar =(SELECT max(DOT_NO) FROM fes_analog WHERE RTU_TAG=rtuTagName); - END IF; - - IF dotType=getFesPointType('FES_DIG') THEN SET tempVar =(SELECT max(DOT_NO) FROM fes_digital WHERE RTU_TAG=rtuTagName); - END IF; - - IF dotType=getFesPointType('FES_MIX') THEN SET tempVar =(SELECT max(DOT_NO) FROM fes_mix WHERE RTU_TAG=rtuTagName); - END IF; - - IF dotType=getFesPointType('FES_ANA_CTRL') THEN SET tempVar =(SELECT max(DOT_NO) FROM fes_analog_ctrl WHERE RTU_TAG=rtuTagName); - END IF; - - IF dotType=getFesPointType('FES_DIG_CTRL') THEN SET tempVar =(SELECT max(DOT_NO) FROM fes_digital_ctrl WHERE RTU_TAG=rtuTagName); - END IF; - - IF dotType=getFesPointType('FES_MIX_CTRL') THEN SET tempVar =(SELECT max(DOT_NO) FROM fes_mix_ctrl WHERE RTU_TAG=rtuTagName); - END IF; - - IF dotType=getFesPointType('FES_CONST') THEN SET tempVar =(SELECT max(DOT_NO) FROM fes_const WHERE RTU_TAG=rtuTagName); - END IF; - - - IF tempVar IS NULL THEN SET tempVar = -1; - END IF; - #自增 - RETURN tempVar + 1; -END;; -DELIMITER ; - -drop function if exists getMaxSeq; -DELIMITER ;; -CREATE DEFINER=`root`@`%` FUNCTION `getMaxSeq`(devTag varchar(64), tableName varchar(64)) RETURNS decimal(10,0) -BEGIN - #获取指定设备的最大索引号 - DECLARE temp decimal(10) DEFAULT 0; - - IF tableName = 'accuml' THEN - SELECT max(SEQ_NO) INTO temp FROM accuml WHERE DEVICE = devTag; - ELSEIF tableName = 'analog' THEN - SELECT max(SEQ_NO) INTO temp FROM analog WHERE DEVICE = devTag; - ELSEIF tableName = 'digital' THEN - SELECT max(SEQ_NO) INTO temp FROM digital WHERE DEVICE = devTag; - ELSEIF tableName = 'mix' THEN - SELECT max(SEQ_NO) INTO temp FROM mix WHERE DEVICE = devTag; - END IF; - - RETURN COALESCE(temp,0); - -END;; -DELIMITER ; - -drop function if exists getMaxTriggerId; -DELIMITER ;; -CREATE DEFINER=`root`@`%` FUNCTION `getMaxTriggerId`() RETURNS decimal(10,0) -BEGIN - #分割字符串,返回第strCount个子串 - DECLARE maxId decimal(10,0) DEFAULT 0; - - SELECT (max(ACT_ID)) INTO maxId FROM sys_trigger_info; - - IF COALESCE(maxId,0) = 0 THEN - SET maxId = 0; - END IF; - - SET maxId = maxId + 1; - RETURN maxId; - -END;; -DELIMITER ; - -drop function if exists getOpType; -DELIMITER ;; -CREATE DEFINER=`root`@`%` FUNCTION `getOpType`(opName varchar(32)) RETURNS decimal(10,0) -BEGIN - #获取操作类型 - DECLARE flag decimal(10,0) DEFAULT -1; - - IF opName = 'insert' THEN - SET flag = 0; - ELSEIF opName = 'delete' THEN - SET flag = 1; - ELSEIF opName = 'update' THEN - SET flag = 2; - ELSE - SET flag = -1; - END IF; - - RETURN flag; -END;; -DELIMITER ; - -drop function if exists getTableSubSystem; -DELIMITER ;; -CREATE DEFINER=`root`@`%` FUNCTION `getTableSubSystem`( tableName varchar(100)) RETURNS decimal(10,0) -BEGIN - - DECLARE subSystemFlag decimal(10,0) DEFAULT 0; - - RETURN subSystemFlag; -END;; -DELIMITER ; - -drop function if exists getTriggerFlag; -DELIMITER ;; -CREATE DEFINER=`root`@`%` FUNCTION `getTriggerFlag`() RETURNS tinyint(1) -BEGIN - #分割字符串,返回第strCount个子串 - DECLARE flag boolean DEFAULT FALSE; - - SELECT FLAG_ID INTO flag FROM sys_trigger_flag WHERE FLAG_ID = 1; - - IF COALESCE(flag,FALSE) = FALSE THEN - SET flag = FALSE; - END IF; - - RETURN flag; - -END;; -DELIMITER ; - -drop function if exists myTriggerIsDisable; -DELIMITER ;; -CREATE DEFINER=`root`@`%` FUNCTION `myTriggerIsDisable`() RETURNS int(11) -BEGIN - #触发器开关状态,返回1时 - IF COALESCE(@disableMyTrrigger,0) = 0 THEN - RETURN 0; - ELSE - RETURN 1; - END IF; -END;; -DELIMITER ; - -drop function if exists resetBit; -DELIMITER ;; -CREATE DEFINER=`root`@`%` FUNCTION `resetBit`( num int ,pos int) RETURNS int(11) -BEGIN - #设置num的pos位为0,pos从1开始数 - #要求输入和输出都是Int范围的数 - DECLARE strNum varchar(64); - - SET strNum = bin(num); - SET strNum = lpad(strNum,64,'0'); - SET strNum = concat(left(strNum,64-pos),'0',right(strNum,pos-1)); - SET strNum = right(strNum,32); - #周工那边是用Int,而不是uint,所以这里控制范围 - SET strNum = lpad(strNum,64,left(strNum,1)); - - RETURN CAST(CONV(CAST(strNum AS binary),2,10) AS signed); -END;; -DELIMITER ; - -drop function if exists setBit; -DELIMITER ;; -CREATE DEFINER=`root`@`%` FUNCTION `setBit`( num int ,pos int) RETURNS int(11) -BEGIN - #设置num的pos位为1,pos从1开始数 - #要求输入和输出都是Int范围的数 - DECLARE strNum varchar(64); - SET strNum = bin(num); - SET strNum = lpad(strNum,64,'0'); - SET strNum = concat(left(strNum,64-pos),'1',right(strNum,pos-1)); - SET strNum = right(strNum,32); - SET strNum = lpad(strNum,64,left(strNum,1)); - RETURN CAST(CONV(CAST(strNum AS binary),2,10) AS signed); -END;; -DELIMITER ; - -drop function if exists splitList; -DELIMITER ;; -CREATE DEFINER=`root`@`%` FUNCTION `splitList`( strList varchar(100), split_char varchar(1) , strCount int) RETURNS varchar(64) CHARSET utf8 -BEGIN - #分割字符串,返回第strCount个子串 - DECLARE splitCount int; - DECLARE splitIndex int DEFAULT 1; - DECLARE str1 varchar(100) DEFAULT ''; - DECLARE str2 varchar(100) DEFAULT ''; - - SET splitCount = char_length(strList)-char_length(replace(strList,split_char,'')) + 1; - IF strCount > splitCount OR strCount <=0 THEN RETURN ''; - END IF; - - IF strCount = 1 THEN RETURN substring_index(strList,split_char,strCount); - ELSE - BEGIN - SET str1 = substring_index(strList,split_char,strCount-1); - SET str2 = substring_index(strList,split_char,strCount); - RETURN right(str2,LENGTH(str2) - LENGTH(str1) - 1); - END; - END IF; - -END;; -DELIMITER ; - -drop function if exists testNumber; -DELIMITER ;; -CREATE DEFINER=`root`@`%` FUNCTION `testNumber`( num decimal(10,0), pos int) RETURNS tinyint(1) -BEGIN - #返回num的第pos位是否为1,pos从1开始数 - DECLARE tempStr varchar(64) DEFAULT ''; - - SET tempStr = bin(num); - - IF pos > length(tempStr) THEN RETURN FALSE; - END IF; - - IF pos < 1 THEN RETURN FALSE; - END IF; - - IF mid(tempStr,length(tempStr) - pos + 1,1)='1' THEN RETURN TRUE; - ELSE RETURN FALSE; - END IF; - - -END;; -DELIMITER ; - - diff --git a/PSCADA/ECMS电厂行业模版/database/dev_group.xlsx b/PSCADA/ECMS电厂行业模版/database/dev_group.xlsx deleted file mode 100644 index ac8ab07abfc5302e63a019951a99d3ec6d603f90..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5740 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 diff --git a/PSCADA/ECMS电厂行业模版/database/dev_temp_def.xlsx b/PSCADA/ECMS电厂行业模版/database/dev_temp_def.xlsx deleted file mode 100644 index 9cc5959d09dae89a04264f9aa1571419ada9bc97..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4068 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 diff --git a/PSCADA/ECMS电厂行业模版/database/digital.xlsx b/PSCADA/ECMS电厂行业模版/database/digital.xlsx deleted file mode 100644 index e8702cb4dd729af5d0e1eb556536076d23d23d53..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 268641 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ν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%0DjZ6(-n}Jv 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 Ht2t zf7gV)`;Ag-IT^LAtNy+8`brPN*rv@DUYHBE1aPyjmFecPzW2!9!4<jZbE(&3wwF{9QA6>wJ61$&X=TnQaqJq}}b? zuU1Q5sy=^Il?688_G|&yoDPdFnLoq&)iT9ZbjknzT9e@xCmk_Kg!_tyNc#n^GocnM zASw_3`D#{nYUA<-z_HR%}dy$^*p)Lgv{4T<6Z zjo8@_0^1T|SV;qyPZ7alOzrG=wChZh8h7_p$!2S;ZSnQpOM}Z?lGih#vmKIR$*7On zZH`EeLaq~0IwYZ6DCZfV^@6eQV#V#{(f`8$5h&J+C>@s2Es^siXuSydVt8{Jr5WyV zHOlJhv^DqeQ=dTFaEM7|%zykh@w*#dwi*1VjCp%`)oycG1B6Z>}u=+DR8Ie91jp_b$p76)1Tl(DGRbu;3V$BJBH; zjQzAf*Dnng0RKV}_AX(zwj|?<7{fuad^M6Gk6=p(5n=^ODi>z>kw|?J6;oGN0TBL=>*K@jPZL>_ZfN){F3!*Fx zgMV_dLiP6mP2Iv;-9lNVmRO}0cLe?#jK%#I-4h7>%?ed)K#fw%ylx7z|MA>`{%(Yu zM0&|6z4Wu{f^MOnQVUjheD(B>`2{m{3wP@kwj=xP5qKX2UOT#Y4Lqh)y})LY3Uo?^ z>t)Tcb8=xi)91ffOU;5^e&NXyOzWkU*~=V!lk?5>6)Vv)l{ePJ7_N*lY%(}&=^O2R z-*2(?U#MI6!00=Jv-zc{TQbeduOCHkJJ^P(JIfn<;2-V%%;4;u4~V*k0(1Q%=xs@U z(cb9h<;uCJTQBp?^Ah|Pqf8#TiyHKnSA&|mq6R5KH(p2jRYlH)iK_1(3891CJXGEr zsJy=h>gJ%cNc@>--;re^i#J)FZO;RtQ@mts|J0!u(Ea}aaU^E67Rdh z$~}T83)sz))E9%%oOQf}>LR`dEr_yAT_Nl3E2jTwi;yH}qGez$-AJNUYR(FJxgcuI zyv9vfc>#qiRDk%m%w4G~$eO6aeGwZJ)AE^QgwlKNyh-FQ9yru?cM^tUp@ z-CfT=FBQ9f@hibsOWk{ku(iCo-FCXYjJ|{L-$79t=CIo+eq9(w4{7oe0!cj0->4{! zt@O(>`i5fHuce+72hB?^4Oq$C&XV4;-1`Wm@qTM`g%?uD0Ddrxf6LrXzq|xcfdRpH zm-uzL|Bt#qkB4&o|G@FFmynV@ttU!Igv^vkw4#zk4YD*N(PCz#?6Q<49hH>Hgisi1 zhGNRnD$6j)Si_O68B3v%<$GN-qnvZR-@o7c^Zo1lc--gZx?Zo>^LgKQjm~Rc*L^=P z$OX4BrZ0{Hmklt6X7-Yn88wpm zj94GnzEnS}()<2fzu-%<`4U`ekA6`7QBSTDW7WKGaD;Y%qBy*a1Bwt$9- zlDKK1p@)y#Fsvy9l?mSmUw(95D#{M`v(K3DrF*YJo}Wto5}iU#x5E zcky_6;?iZe;hOHQ>f>c`3m+p_w#7#MLF-H`Y6R1<+lNG+e}2oy3o|5y7rT*g7NB6%p!U5bh#C5)z;~1jvY0zd}$; zIWet(+v3m>#AmB%xJVdVf>4(uh45h;5!jQnU^yO4f@C6G{giKR?lQxOWiWaWp?)|( z23(ME^%?hK0|jt(lGelQ91xlnZATyC*CkhGW~<# z=_`h2>ke8jtUJQ5bIZ^jO)^~ohPn7ah1JkoFT_naF3ZKZ8jTw0RG>ZrVHy*_;u6{CJUZE9H_7ka)EQ8mSVR{ zV$qW8ziwzjZaf%Gvf5oep=XawTuR*;bTo)$Wm>&Yl3KRFc45#_X`_s5BrB8Z$7`@? z73{hNwpM~!EWs>6=*AOCw^m`TmQcx3)TM%1T0!;VK}SO&yuhgX+CtmSMjMr}E(>g3 zVC<;85la|4-U?>jAxTS79fOV@s4kPFdPq{WX2Az|u-(+Iv;~s0=MopTbDps0 zc%*@zZa`J;_i*HQr;lhL9IRVodEt*W0YEtTQ!m2YM>wZa@LV$g#af{u!mTIeA&5^7 zh_ky8XP+WIg(E&);d@cS@n{C<$rUS#wTlZ6fub(>Ke{^*pUxr9ZVdqStfEA_xX4hb zz{S^mFE;bN_`rWLR%l3hQM>!ve?|f54&sw8Kg|3)LI3&yJ>`IBj}RW<0_ISH3yu|r z+}r^uh5@meOmVZ4(9qTe?IprP)^F^KJ2eAlz!TS#aAE$(?xAXzA(jaE9TZ!k87y+6 z#Q1heaB2JMigrHji^Uw@{~yCZ?ThVVE4BuU(A(z>OPq&dTzE%A>D&l6>45O{sDGo* z-z*9K(7rjg#J*!k&|Jb>CB}D41TaG+t&4lKFCLWN=FB+;)(7_(30r6d7mc@ya9+qY z2wfRD)9nS<>HU-tGo3TvJHq@85?@=!z0OYTMsNB&bVYyL)#dk}F2BD^!lKbU{13v; zl+!A^9{>9BdE%FoJa}b~BPaH6XBlDV=Xd7e&H#5tWtRv0%ANxyZPk6kmBYaFR8_X%B|p}W?kR80??3%#E)UL>Sfq-)u+WWY8UK26NVcW% z0n|S+=%-I+wV8c};wV7rgrkhY6-@c1jAAvwW^sg7%80(LP+P@1pOQ_3@+w?Wlz0D- zJK^e~Xn7IhQ9na}X{9LrR#Z9roT5Doo>f%ofqE!FOogMX!p#LLDPN$5$_6jOBNVC& zCID5Jwi~GTflzitq-~vn@77ZdHr*ffk9-lVI_y7|b7>(l*sv$&fv05eaxI($KhZdZ z{$OX%!3Un{)%x`e{RKD)Y2 zCpUO!PfQYwiV}^l(Tz9>&b`aMg3XJ<7=1sE;pm$PE24a}=;LqA$u`C2MP2gUiO+`% zd`gJmIan|79Bhwyk=`I3ydq4i9jpZZU2WN*(0k)F>HTA%m?Gf&7kyl|IPS4uV%CqJ z3B5l;9=FA@rV7_g_-1|iQF*E8>{Y+EM-xD>OVNOM73!s^?`Xh+4Gq=(znC9`ukrke zI=jK1koLvL$3pi{cC`P5W2eIQSF#;n-Orv(ERedL_*Y5Mn=Z`r$%Knu+g~9=m05u$&J=8STm=;Rx2?taWFXsG9&6-FO^^6{yEzoH z>0tTCb9VU$1(tuj{;E&@2G2|TP zMm|MyKuya_<`vPTi=K1=b10vZ-eObVYO}yg<`$~F0JW$Cx^28Lt6OZ245+aN)UKc+ zDu^zxi6Q49{LFKTgO?1O9@J_h=Oq&lVb8$5rPTw2aR!pxsj$vN4ruEPUc zZh_l5=GRfaJ-a-v#q|oxtQ(4sX?ZDhm|N!89)SsFUFOHV(w4v>5M2U7Wk&|6cwRz% zD;LvzE^YI`mUxu=Yhq}tYXdZqkSjJH$eK~bp`6&sxu(;69z+5}0RQjILr{WDoL0Nu z>uw#<6mo%c^hdYYEN-!}@v8Uss^0+ZQE(TDhrwN(fp=lE(CcVCYGVgo)f2O>#l~tN zQx#@plo9bj)bkw1DxX58QIh=3Oo>S3i>xJ{!8*JTAXh zucfa6>ZAQOk*IkPo)7{2zcbDAYac?LHlV3?*bCVOxxhJ47ci)E7^l|8?$*ZC7HEM` zmvwDA`Wz;hBiB^{wYq>}77*%E{VnU2Hvpx+9mx99b_Y`8BKB#nbkRIuE70xVm2eJS+A^|A#Ob&;h%Nx>pBD4-K3- z?4=77zPh2T7j3QAyFgSh9;kU~r?$us4~X4Db)HsuE951N!$=N@#X}W1pv86tipL$y z*FFLhfaDcWjyp0CiT4ujfZqC6Zo)AyF2?CKu>?xXMT$d7HwS1mAr}zEipkg3ZIN#v z2DZ*Ik*IkP=O6<3e`gxyYo|bIIj&Y*7vuux0Dl`Ro@?**T57-XrZ)SJLaX&wUnX+ZhB_so^gpWORiU!Uqn((?)$y#}1N?AEPKMehqQv}YZbCN_8EXhJioFMf zi5rYD9whC}NU3CCVvV3*3o4=H2SNps$T`M&UIgdtfa!N8N3{efp@h(HCTVYgT;Lp^ zmLPxfAyEv(F$fhH^E zewK3omA$mG6yMeqq9$}_-=j(?_p8Q!$Hx+0rJzsM6rQZ1bKrUhnsWA{bY0&o_ebuf zRlt~rwriUvbTp(W-J?3i63)~_n>ESDeix4=yyJm^g9Gb1(Bz`ruQ)f?Jf6Cr6LqQ4 z&~Z)UBxuEcM``tK)$DUH+jnMi`Elhbl_HCHT>1edx!T*+vNu3k>B`=)ij-i@zL9Y!NRGVF2Pz~kpu{l0XSt<%EqET)N?`i~k%>16 z!8Z2~Q>)-+x=@`RQ=s8S{_hWB1Se(Wo>t^7ft1r7N4j_CKFq8R)2}?RXpPf3>{o z+_?VNflHTi&R?_B(jL6Ueq8toJ1$DcRi<#5>F(TCJ;i({7MppD_yVXo1HRWTj8qZsc_QVGQRdm_m*4w zW-jK(_0pEWp?hnB=^fyu;&}=6JWR7@+UD*p@%rws6GAIp8=#4VT(R-B&fQdTPX*ny zlXH!e`8-t*|I1glf@f|K+z4qUIoCP#mxF6M1_W~6>b1&pa`V_G$#qai{19>vk~ z=o$L8N*j64dU4OA?|5L~;J~^nY+SlC73b#ei>K`4L|y2rI+%x?1TD{clvdixJGFZ~ z>%A{bRJ=a=(V!!^Lp#eR$5W2DnCYh4}l-I!BEGKCn!`=4Ay<^lK`J?Ll zXFs77#`8y{J+@qLgBoWm=Hv8@{WR3XyydP|RClPU zl-rgZXyhT+hFWadmb;1yW|@pPbB$^8JP3V=0RG>ZDO>Iyj#9429#$}WWExuoxxhJ; zT&XLuREom7yuj~|+(~Z?szGO==+es*O$(YhEePd*`f0uEcRc!^W3B8s^`G2$~h@8d(=t^)TU%9!U-GGP92##DY3Jd7>oxJx}FE}V=vZ}0nODDFYP9SP$D>}$qEEkfgo!IPmML5Bhsqs z6^-YJxpvWkurbhc1@8J*uB7Yx0+dJxPh!=916TYl%E}RN<*KU!X;zL(>#UY5kZz6S zsJM3iL!b5BKLuO~J){=>6i6C;p(m!m^WdxmZ0mFFfs$n07)@Pcff@0r@E?`5|VUq%E^M0mjmOj^JLCazw8TU>eW`F~to0lkGC zH1B))?R2oZ()wur)s=xO|HJCaz_NK(R|c+dR#$L6V09&5io3c(CxX=#TI}4_mFJY@ z&nZs^BE7wCZ}58e0u@n4?D{ggRJO&21e*$LJYh!xe6I)X1n@CNdkeE2h?ATK1E)Iy!Mv74i041r z7oc0wMPGx5q&HC!bwt>Q;4~iwN{NJabEnq$;Q{IfukIJHr$D>(^0Sba0uFW-;-SJh z&>08)hpu0JhyT!QnC(Vznho!uZ2Fx30;dVV?K|kUaQhIPW(2Pz0lr556LJ0@ZHorj zXGnpv>0BN3E?y4o1x&U?)v^cGVZrDe7{JZPG zDuA7c#}_bYFJ3c(HIRAbcQXQX7CfF)v>?1*d~Q<#G%vVa2hfq2Z7R&R9^S#u0=F#z zz_Yyw{eSc=K%3(5K;~gcx-Xxy4{Rj@6F}EtG`givWB^xBbovCe-07PKVFMxCZc}Fv zN~r(}wpYOBf(w*r2O93Pa_;kMxc?G)=V-WN{vq4W(RSy`xhwMI-8mZXJfU}>`u)eP{Q)6B&Dm{b!56{(rVc*n?Zz z=Ax+G`$u7!?vdWea?7EP_dqH4mtLwE(TJpdq*qKD33|yuR<)iXF9?Unc4H)=*GY++ z5Q*nubgSjXkf2-KV2E+R37bL_47FFCd&T6Dpu-#pwNHPW5|Z{jh%kr%{@g4y27y8`JNG1IeOa)@6oIV3+ zIdHlUfA2H=s}aFzEr4Ev7Oq>E+jRh~2YFtbfZLV$-Amw%gkdw{p9uYbH7Qc6;}1g- zRv?(V0U5iK+sWuwdO%r8qQru~fwy^8q}Z{g&E%b!8F&+@GpJn{mFh;9UbY~TCPpM0 zVyqufGOD4Nsw(a~9!KCOqC@C~(R6bXbTb)^3vmQ#i@MadB5!nUT8$j2ev)BL@ zD!A(sU;#oE7mepFR{-%{BhtT@D^?r#G#K_caNuCYfwTAkRuhEbx&(;*ea&Kai9!td zUKlA73=;r&cFp1(TpNiN=dEvWa!J+tDUg)AN^y|0cp{H{-%8RRJc;u=j;Yq4naTx< zT0py;<(7Yx4+&}n|A|c+K9~FPqx?wlhDvXO>qQA7ctd3;d_#rd?OO+A-IeeP#H7F# zkAyE}D)cVgUaiub;QxPmt2M3nN>`P^?M)AcZ+~;aJ*L0^;k@?4z*yQQT{2^>&yp2w z-(|jUK%N}muwrum3BS`alRj9(~dT*IW+ZL^Z2{%4aT5fFXH@t89VR(2`8D*yXtnZJadp~+g z#@fWjIxK*K+{&qvO+^zsKFxGl6i$D64>c6*eMTwX5qHay2s*hMJ|jT6wXYI+V*?nQ-8|*sH&VGV$qrLw( z8v|y^@pkbOhWqt_O#^S8qa1k&w@lD3hwPuFOTnRUYm)gf;2p*D5|}(p+mm!{8GO8n z@9U&!^)C(3L_)4On>rVnQSk_5Ub@p<<8){qL;^$r|L;so8T=y?rQ>xQA`0q~%pn&z z$5gahlZ0B6jM_f+$UN^zvU;Shv}yA#-EyHw-EfAf1NDPu(}GA{c~iweM(V5H8H?tZ zBiP$$jN>%w`>wLw?{+`6HcQ^HQH!whF6wzBC9wSo--rIt_bDyQLL6hi2;*gibpALL z)AB{e_RO`L>ksdEcgx0V?Tk>IR+3hR?ReIY7dfBga>8%rR9*8e1g{jgzj+j$T)a%3ptvx3i{rC+^isIY8=9Njx-G}#+GU-2t^79Gh$9|5tWNto_xb; z%LU%tSx#KuG&z7#x>-TrbnScWXI@+`(v&Z`#9@oGTonH=f62+e&jHW+$k1hwkMq+A z#sOdFT}>pyROBkd)Id(DG%0J$0hg|Z)Og~3`bW|YTb!hfl2(Mot0d!745MQ(azsW+ zHA3Q+$@`D$$OZp(5O1=(Bq=zjH^v6HObvM}%Drp~W;}Y;`=a_3Dv%NHh+8U0)QU9cPqqwY>~+9B)Q2 zZbmNruLF5g3}13=N$<^*I2lc(XC!@jviAF4XHBFFhm#Wqj*88{VqhpAN#{3J31)0~ z-K*w+>y{(xn_{9FA5P-Rz>XTcS-cYrEHh181_@I%kqT3NFug$o z*s`2NIDy8_*j|^p3SFe-mT_afF z%#Xfe7`G1wA1>`Zyby;*lOiPl+u+ZIIBCHGxj>D0Lu(__M%msnp@Iv68m6TE%8-*A zz7R-0@hb*~5lebi7vMJYqqPFbL59{E)wdSmy7AlUh}+8{1lObr zXCF8h$^4^QT(CetaQaKpgbvF5pyn8+ZLBe^Xl!xf^j|+W6-_NBoJc(Wu*x@QB4NU@ z*L*a8p|3~0f!>2E_1Yfgk$kI(7FA!5TL#beCI0*}(Q@U#4h|&JNL7`+p5-I?izZs~ z4ZO%zM3$%aM2i;We8vd_N6+sV7)Ba+871Ch^xW?AlpV?U^c^^nh+_71kL0^dvibTd^i3)$%Cy*#X+iGVm6$Cu;WMiL z)vCJu+d^NzudjEHc&BtaO}yClWwmco@(N~8*P+FIQc9yw3`_)CkBZ}V>r|sJkv8=W zkBPJwK5i4S9{jPIF}T*M=z8|2L8+v+H1HG$dRF)FJ`w%0gW{RgNxAp*_E~9Lzd^LR zzfGd+_|&Gdw2|@XZ?3+NyE|Dxx@_ZgV_1kM4z**U*C+g-{#E)qqw-dX1y1Wf2n`*v|H{M&|buckWUcbnD6qsA|Qt!ee#3Gx= z=6%{zeR}&p8u=!*{aK4?Y7#knl;Je7t)}U`uNLRs657)n12@(J9doFJ-WbiQjb>4l zpx&3OY(~}9K|j0O7QaQ%fwI=l#MBxXRrS5QFOk4eJO>J2WU|Ft=xh4O(?+Ki7(`X4 zeHd{S;%T3YPEb!I-e%Qan5%`JMY1R#b>bRx;C8GBG>IPzP(%(L}$UiTA(!(#Qh(Ry(0`_^gPyA0CQm zfz0e#3Gt7keOEZ*;~Xt&csQq_SR;EUHHP@(s2#(|UMu zd0!xv1_ZNQCPspO`RPzvYt9_-Z162O0{J*U&3V#WQ+G!i0}K?is*vuH~z{6GnhaxMd&Z(MThCRz>_j4L*!Cit=Q{vq)99S(L7cGx-LJ z$x!YaXp(co`3A?yzhYnrRK}%88s&U-;|-1*C8{$q<)e)kcsk-otGTnh6EKiG(wM>_ zd|0LY5ze^MkqP!qgTYVR3VS3KCTjgBzGtlTueFTXAjW<@V*} zgZ_sM;wKi{TVTe5)*SYadpNDJf9hq-#O3?{JW#O{msgKsd_T)h+xT@QZZF4Z7JaY! z7BMqf`F4lLi=QiB)%J(E3X|(3paiLxkIw>@`^%~bm7k% zL%x~0&2>40=|{7MdB1lZD8n%cEgz}l1(gg9jI?ZO5S79+kAGfC|tX^t>nsJ zObG8-f92mP!3*0CEoi&(Pq2t6L~dPHxE-8uP7quzxRh-^BGQG%3WdRr9)=yt(&8-44Q@vJ`in_9n4s%lGjwEmMGc=ZVB8NxVCICj>n){UZ~9cX z-MoK7w^q*Js+@t#W}l^-eMFtc4*ZWth11x)hqL3@&9_4vB04N(USn2=R&D#|VWAva zwNot7`(MZUP#6-}Jh^#d(ardtp_d$h`Sl zwzMOnyu%_~P9oHAlsWTt7%~0ra$5)3&_rk`LRR{^rJ{Y-mVixb0yfzo>~|sTUm*%> z{>S4RqHx~h4x-SR&*uaG*q=f}RtwrUF8=2cv9LWuve@;exsN{vzlpNZ13A+ zp`kmI)49+mW9e9z;yH_{b!FyKW6Dd%Zm%0M`(sGGc@iUaZ|2O$?j6T-$E%LIPgAV! z&9F1hPE)Q{`sbYre{HmKEGFVaV2oOENIaZ^pNNG;tNFWZl^DK?kPC1oHvvg9N_2Iql{PG24`Ia z&YEx=mDWXf&Cj31^}CD$6;Vy4KY?6j*5|n&octy%wvMM(`EH+R(YxR~phz{i?k^xO zKJ5Z)qzmdQ6D@IPi$}d!!%uy7CdPd<2DQW2%^>gn=+)>;ClY_YI}avne6I-?WGVDU zpC-{p4DD-rzAi5IwJKUn{xoQu)VBMv-%9(JZ7REpEWjfuv{^m0?I_x%*O;DN?=gBV z>TRmj$xk%fX;}08w7+T5H>}iEJ8`7)J=10Fhoh5}#fy4+34TilUa(}oyZEMdT^?`$ zG5js~#bnHL+WqaS2N+J>WtZ2WGAtIU?HU?ytM-hLcBaiuS@=Kp71g_FRPEpApprT?vE>o0oH#$DYG7Q;w@Ih3Hqd}r4{M?wTq+HB#;tD?+}P z$bT=7Kv}eiw*`yr$ZXk!<7}|9R1@WF*}_bz5*}&9`hw40Ugtz) z=foLRU%Ns+Js<-8@W1S^0xDH*we%kcsa2qwapDv$LcZLB22?tnx(95#0`^4td$Gf< zf=m-ZA;sN?1yokErPF!NmMlSY3n@iTO$0#eeRUrhz!|6HLdP1QsxfJ!`q8jv?EwWJ z{A<}rdcV;3`w_Tt2at^hyLM=Cl&(3#*4BNLjFHA{GTi#(zYNMp8W&BlIoo->BvsvK zQFYYHehznqDfc2(Nlio^`OiDXWU#as_=fIFJU_d2 z45(jMjmWF|zWd18LngIqeXq8hZ|H%e2R6gHe zEt4BB>D3mU5Hp3F(<~dA^^2MReGYhx`m|FZALpmoJ{Sjl;3LL2qL1|@cTOySKbjxS z@&r=OUkfLWsf_3!=4f%JLLqLjPZ&pqJ8T~m=YCMr^PD5c{a*$^jeC8srzS^aJIG)+ zx#|YX^E1@q2Abbov2G9sj{M)Td??a=Xja}^$T#{#;#y`;>8SozD8s$mh&Q_c16+x2 zfWK)Fc7!wIY-UE@n<&-mxgx2B>EU~^r0RIlg-LuOmVMoSf)ZCW`ZL>ah`DlR@@Jy& zPg~Q4RZ7kT&fK5ib>DO2(tYIb0ekq4>hC< z^rV#~S-LPDJ?%YWgR^T*ihc6m1~+YRGHOWq2=jOoOi7aVv)&4Iq-TWryClm~j181t zZrC$|-tsF3hOs%lYR7O|GDNKidXNdmgAsom*DXU#FiEROqB!to`7p582Dgtx2(IZg zoRx7dlIhG4QY*kleA*g)NOMeO=7+!Echu;?`?UU{i@+QscNDEPD;2{E7;=|>G-K?GdWy_Sb>#rt7@>vEu$YF#S0ex*Fn6I zR|)CfW=JP1R^S;t&_Y7#^_~(daN%%r!oWcn{}ls6`QU*dBR!{Tb?sgaIb4r$Yrc_} zM|GtlgxI6e9lwsXjzBvB&$`7`FC$QrSYrk3A zlvjzW@4(plt#%t{XI2k4>er4mnxUD`RMAC0=;Wd|M-KYWm`w>DX|vg}!KyXW2d#H= z!0z1llU*lTg?s*@qt2eQ|E8MWCeYa?GAcrvj>+ds-2V8$N2f22K1rw&i;d_V0xG@w zciLsWrzY9%f1yIH8($=}sa2GZXZhICOV$vk2}@9`j|~lR;O|p9Pg7T)XXXE@PhX-FyG#AZ`^|U=SaYHhi zLXQ2|z_8V@b=n1H3Ttg^uhz>k?jE2jOJ#l7<)+23HKM)?uXj$$4Z=n(fi5AK6??T_ zG)c#lnktoLwae`$)=b4VBfLHUD-KQ6(yTtncGsMGbV(K;LqT$mIh2%pjh7+)D{>=A zhltHuV=IuPvx;jvce&ZZ@cAU2ENqk%m#_(cwf+W{DC4fOi}l8D?@Zs1?De+HtMxNo zVSO8uMo&=b;q~|=yeW9kHcLARACE;V+s0k3cS#xz!V;HcmG5E+F_3GaYZ1)Skjj$X z#fk*)>)K|A*Kc4Hm{aYRWC<{klF+P!%z%xEeYwU~BniK2j!E0alICS>{1s6#VIdip zOsEpOScY6fzgnLQ!#%rLwhW{SmvEG|)ZIAAor(>XbVsdeiklgWiffx-e4P36yl+>t zhQR^CKB~H`yVI^_T#|bv_MSO4YKeR7)w~b8nw^u}wHSFpSjDwX%2Mtd!}B)J<3KX< zu3;6|HKj_qXN2eRF?3fo3GZrN&(I}8E;E&;qf6WclH3ic;&Y?(VfH}Gag(`;TN%1p zSVc+q&RxyaB=-a!BLSV%zlTbc>0h<0`Fh0nFaG!zd{V#cO648vn(jyBX(#m~83a=* zTBV5|o>#uB*(Ir8i$RFTUN)iRSXGRYJ_C} z){*T^MN>bkrpGM$6ZihCElS#s!rfPrUHQ&rPIL_q#O-9iVNk)yQ&{on=JFx$0^4r4%SxM z#)Q^om}k)x+N(zKtu#K2UOPK=D-F-#Qo?wJP!!J*1n3^cbEETMl=UG-dTwI(R$6XC zYXIe5C%gUv!IQ`ML+5*t zemmP`Y8hrz`TMPxQ~HAwUTz!MOi$`uIy+d=lZj1f28%4ErUm8KM_lMDW>&Stsx>-dt z-&f$SQ3lgh609oAn0Vv90U^xFqx6sN=QIXh3=98|rl*cxc9{H0nnu*E)Y5CG?7sEr z(gAd&1x{tm^&tz>F1TGpYI03>V&Y3PpWXT!@5T+^3-JaEMpfnd$KKG}G#pj*?@doO zo3Pho7=!yR==Ki;KikhXqOa(SZddcfp}%b_%252W0=4Y5jd6m`UCNup<;je;bKn2U zj?SL^YsI%`dk(qDCZ<{XU+}Tnan;u8pc}GIA=tL|LA_kvU9ntcYdYb`A(#sGp89<`OpHAJi{7O*D01 zdyuv4boS%`=Pp>_E__9E?ctb;7+I%J3~^FjT_bbNrV2sCL2SxCr6HqNp>$U@{w%r(nS zzYOALToU>f`QtP?%r=`;&v#mhXY}g|WMFvtX>^2b50B6fo$kIMH_Fsq}}StPPa^P*LPJkZc1J2?zE>Fm*OtwdM}b{X4<5@);;z{p7fq(xf)%0*W-cI zsMY^=)ZWOm+S9zgMpw!8cnDQICXcU1*RaX-MqVF>3t5vV>Z-WPT_D9hU~Y6i%%2dW zIydp%jXc-A%?MY;-A$?M+&gC(S!>*Pr}S@e4PND*w&(I&y|I`g<9$tj6Z`xJ&Bjx( zsI{;X!0c)UB}XKdc7TdjZqktYFIB~C-NCIYHZTaBG6PfsoKnL4Y95Qjg=Boc#;Z6C zVVy7=1(nFZFxMbvV^aU`MEcb{HxpR0fI3Cmy=RsY)PAcN!s<;%;kpvn@}9PB9^aTk zimG+=-L%QS-)wvp)>x#;!B7!dEiBL!6R7J<5|_ss3pcF~(3PtW6@!vvn$VSufLU7A zrhL?r09_m@N)#K+@7`;uC|xa#a7RFMkR+}I*{TC|RY~HACd6DLNRU6>*40xZqr6?y*|=0ge#>1$T_ zBh{yd9FfDSX~b_Pppi6fZ2 z)qo<0$H>Gt;@8qV>d6(&Ud8PzXGSoa{8>Njr#toR{8+o^>qxEJM#JB4m1Q=5upVSD zr{3f1uMZ?>lUkA09>Ub)!cFP|{kH=N<%YCHq*gKPGchU+(Nr1mZwJeewvp7j4Es!i zO5<-5H>B}l^$`83hBQ2fO9|^GL{$tR2vmC@=0@kiC>ueH^xVX5Ls~AW6+yix&|e=! z@Z>T6&QVb1@`Q6S#<@XuiSpZy^hh*gEP#TE#?iQPkqYBaa~S??KPuDG`kf) z?w}dx7tRi@H(PD_-L9B;ioWhI3E$K`h#g;D`)#dF`E{`LanjaL)otA7L08X#@=ea_ ziA3p31}My31KK0j#Lyvlz&ui$~iS3%xz6bpgUlzwJ4mBp19oe3$@lK^cYLZ$rs(mi#e(*xS8_cSzPs)YK z1nJ81@yb`AXHnMEwOq}y2lOdo31 zn)oCmqW=q$Ho>Z@M7mg4^?!*(qcPSPHt->xtm7I#x)AX3X!I%TO${IAX$2KzyC)gi z(Dl**W@*tbm5}KTAMu3IYiQ!r3>N!~G!6MALjW2}0-gxjn2jGd67UYzB6Cd{*)E5h z@zU{Eq=rnUWLUGm6q6-*CIO9hgJC+EoSWgvBP`OO={hsPGnr#DY6`?Wx7xBv0^u^ zr|A;W$KR608*=$*x(-a!#@s#*7m}8D4XyaZO@QEDJU2QYrU_zH=O(^u%ysQ=3P3Aj zn5nsLowJOrr*69m{ZusSBvT{LjoFwxQ||U<zwpHOapq$lG1!%O;lm+rjL}wH|8P@PeRZcUdS~sXbTV1tEZG-jU1Va3NoO z7qvqbyNO)vN6d}RhxrR)z}5Utq<7@HeQn~iLxnNPZ{2!k8CkE~R=p68Vy+reaC{Le zk$wKWS>uKmrqN7?AqC_M;b3NUhmPEfP_gXQuiZ+A6trHL@@1E_>o{MG;FqiQI{|2dU%B-{Hb8%<#0~L6xOk2^cri+pmm&Qt z5_3^p$u2pFiMS{pz%}hd3brtO?xMK5UGQrz;X8Z>e$@*Jh3w#BmSiWscL=FL-moKt zd7~4rc~J@ZLP9tjTu4bfzH|ubd{Ig3g@nA_Zocf`5>`wHe%TOGZXSn{-EN`m;8(2b z4*ZcJB*IRln1#5gw9GC{0&+cg%}Q^_BVI@ZF!|<2=fnH~G2kZVBrdlLlgSon$Dg~X zWcxy5mhrj93-c??y`A`_7m1E9%$4kV-s*fb@4$CoB#POkNo2>Cu{lYwexo`-{XQvXveDoS}eHlV- zyhuc3OSR+q=SJtlT!om-za@q-AH8J>UL-EJOOwfton_2kl)b0}&$x&dv@7YI{U7U& zpOnFulTnE;ChP4BC%YFfDAiDMX1*Q$XkkR?ib0Dx$4NYm2xQk75jMx5wMsSQo#Vuw z?iX&f3Sc{~qB+N)g-SJq=W&QMS_QI`R?%=VXz5Z7M5E9u8p2stsPSPir?eaEl2T^!F^`Ev4; zm!01TtcQ}Vi>4wh{J$kv`3sOp%lca%qW1sVhqwd#5UGAORM3V<{SR%3+W(~uVK!eI!i?L7NOuKoh`Y0Gh+5Ew z&{Ut>hH$bqPSt6m>Mf`XVpMuep0zL-5A&ZGQSl%Cx?}2V#`Woh`pmv9ZnCnCTOZn# z>$pXpGE1{@+Tw<+R7kdob**>4s}q09EY)TswqCCC?g7ft>dej1l|_PCT9vj&ly}&A z+}+%3r=n^glXRs*btWG)hwkbSAzQ6$z3N>Zl8wMzvyXC=!Oh4@`V~1$Nv+Ma+TvzN z5$2hMQ)U@3Y)(o2n0cN@NYki9)?`xduCvPv7B2GH`E#O?tuj-kw`1n4Ernd0X^$PP zV|f*(C)Q+Y-^CM85gD1REv(2>=v13H*Ls(``1n&VNj8`*EUn5*Mie?0xJH9uR{0i| zP$e?ihUr?r@h*NJr=a9 zigxzpM4$bX|IFB+!Fc1K&o_$y<*)v(9lFGG%^?mJFOz#BCN^~Fnm#vEX?eHcS>Kgr zxendsq3( zG~0A6&F(b{E^1u<<>TV%iOxj-8OmAzAF+coZ!_Aa6q~4MOq1WqdduvA@g%=8Dsi(r zGd@o{wI5kact=H_YSPelkBiSMKhV4=wLj98RzZE~&_uuUZwKo@^TyQvo31oE^`&Ez z#DV5OSCpoE+JR;~hl}WX`7KrHPM$z5!C`K69*l|^#7NIg>^ab!o7!JYC2G4f@8)^( z7=Pm9bz@wEb=1Fhuh=qny!P?RmQacO^MMVP*`wfQMDt5l>ETMnh4UX6duW!5%U>`K zZHZZ}=Uf`ae<9e&qclcQ=(BJzbcw>O)y5vnVid(L7>Bi_uhLup8E_pk@<4nRHiRam zrFu1FQ@W5G)Pg7#513;}F^bZ>4AozeRW}ropG}4G`C=3iTvM`Ij|#)>F^aaIg~Pan zQLLQ9&i@J$8^dmBr0_H~N!#sr;)wzi!IRvZ?3gIU5zUhHWfBP&W%dvk~CULo&f0x7q zTg~qn{}HcEGabWHll|5^rj_{`9tp60rW)l{iVmVYi_L|fSc)`!KoGtlQ1Zp*@(yWY zPb`HSHVClQ5Cp9NqE<1T-$6y--wwc%i69&fAR>$Dq7EtuwqO7e@g$a?UB?Hx@Bu{W zVsk{pLIjF$Zgf73AjBN~TcQBFj-S9^Y%cM{a#6#FSw^N%LkNPlwb*YgW9ADpQd3QC znsRoMU28uXX5s&JDz0r>WUV9(7mk*7tNGx2-8#DA?J7c_Bu(y(hLWRfaKk!d_MfW> zA0%nc;b@^Z8p1jILmR9N*^cu#0EzS)4bhzaVGUMBZ2oXGB4^Pm!l7_95^}{!HKnz)QZsPfHwCx*>fQGlL39d_MTX~GE0!i8uN4@LER3vHF*VZq5 zIFAs8M9AG(pms|W&bJVbMjhe59T)dXuv8lR({AzOHEbUw^dh(R08O_azv z9?>8!Nz;Ghq3)kKOT*p|t-CC$-mZ?locY}Nw<`&jdS7qBc4 z(y+;IQqu7{)mJhn?)~=AW4IIiyg^H6xO5cmxNeOScr0W5Mqy+_=gKQ^o4aMUex=mO zJ@wx@ca~e+xt&;M>vt48u3!6Ykxe-U6LPyIM7 zUL6qJk%gNQOCa?)1lfNc9i}|HI=J4^WcY#~MRQZnvv1z|A`uPaV3Fhx$J#`HTDX#l z+5~#D2IJhwBvU(nGk>=^AB z_`|S*Yb3{Na`;27xXlJ-Me-7C=(>`-=8bP@* zGjUg@b~s+ik!Y03l4OZFqC=0xt*&bIpb~mxQ<(qoThed*2jD`XZjqQ%+NNovCRA!xPSa>PR@y=+ zVw;#Pf-Q=>nW@=WIb~$qXpJUdNhJzuiVLN!f|6T~nu58dqN0B91uQD(_xjA|_t&SP z$IChA{l1sWyt;3nbI$Wz{>CLi0B0u827L}fC%46qu8}fH!n=S=+z*~fa!?x}%wvOR zn7{`JosHIUHS2Iax^Chd@XEU0ZuLxzc*ed2s}j$yZ_dU{?Y*9OY!STo~F~bc+KOzyP^a)=oDvy<~R)9u$x3x9SBIYb1`bnjc21aZ03ZP6@HUolkWwa8z1 zz)qojOzwjSa*PVHC zYvw4-wsI>fg?Z9{WcAaH4bM-Au*XGjJA~E$2=6~1SXKAmUUUBusvQ?8IufJjJGrD} z!Yj9?wp&yUq}2>~rMG8WfoICR{EbV3xO-fbI~(*l2p#$*B|;t}QnVpP8#=ipWx`oo ztyo)wWDfQwWfmGb;cbZfypzzDENd&4)7U%ogu`#CZe-zPj8oV!$>}LKt2zPB3~`wn zOnz=LU9`W$g=phK?2Z;;qD8NR-aPs<=-L%rM%E%;)}d5RGL4-KE=a$Brw{>Z^pZv>b^fOFK?yKAW8MS8&^(o7(rZ#IJJXFlffJZgqmJOPYkHR>@1xc!m-ghd2L=VuW{)ZW#Y z>bzCutPYc_Tf^;o@`>tHAf1!2_VtKMISY7dete>cX;+ToKDo92+oF*2|LtT9TrwFm z2k0rZNcfk@7(fdB&uc<-XPb=CmDYq{Zp~l)Ut|uK?O>ZZzOOZ4@+VNk0NO+o6fA(^ zvHhxazL7P6_|X?f#rrISgL+7;WIVr9De9p75i6bDN>pWNAVg-^WLCd4!A=|j2qdXz z)57`?Q2vNjl0+)G<{r`o+$^*DM+tV?QbJCgk6QwM0o4Uwf5F^d6;u}K!Ppe9gyH$1 zf&r9?GALI7y<_x6=X@(_0O_LvMp?P$8i>`9SjQ~+PNT$u;zz7=ilcp067Z2SLpGGJ zUycw*0P;xcvC!osK=C8iNa6v|H3gu%3(DVJjyNkJ9Okdbxh4dy!Kg%W3G=Bj&bT*b zBZHU!Y1hN-N#U~Kv~DQRu-qPoF^SVB5H(*>uH5CoxW!D*feK?sm5L!0^_nyU=uK`1H$oD9@;zV1zj%MR{yf)R-1-A`kx)aTXBmlp20fRdAmMh4HDBq++m4li>A9g^-Dgg1 z$+e>+n!hdb(XTDZKRQL&bTa#bQ z2P`AY56`=?(Y;e*i96t#c50qoK;7;AZNPF#fTQ8zy=s{YT?Q!wp?J6}r$EbxC+x}5ZyzYDvi1|J7y8cEF85lQ2KEuQJ z&E|FIuN5Bfd^ouLusqYFm7^v?M4>IZIQPTn*?l>1WO|U$*|p@MLQ!EV+MthPqUg&p zD`|!+(qp4h(}RWM>VDoH+zKdRi5lIo%nIgb;L2TOF8D*2P_0VG#-fzUtl}wKHgR{r z1(;b3A+ad^GOI+&7B}t=Gl6_8Dw3iBC3wc75Fl523MFSfS4ou)@iTzSdS}601TlH) zvVq59QM=2moVgXcghOid)lx=&p(d^%(73{DH&#h zopT7QVw(_UN8%}aHgQ*&3$ExA*s64m*d|TC$4L~rGxr7bM+0A#zAUy$&+l;xg}$Dv zrAn9cbASu7ROxsz7tAj-j$#5OD3l#>mi5kpS*!+P^koA(Rp|w>O_7ugb3y$a!U-wk zsGTn1JtQ`KQs$)SuKAC85Vl*Xv*ekYpxv9C}B132H$Y52a z>iLx4pd;tikQ;nL-nYkoGc)ts|9WPoOfoYw2bh_OrOZAvv;KcRGjp}i(r>nz89&L) z%p!1Rrc63B^9wjL6Z_4~jA~#4g*BI^8(ZKS8>Hyx{)-R&NnYcUvfUm&{;Gk$mKnSH zywR;UEW4IOS!|wLtr}=swmXW#g4SbW3*`Nh%|Me97?q}5uO4d`PsuXR-Ju$&=jZO` zlLM`X_-TPd^1|G1)j&kqwG_%uvs}3{W4O%V8C#$(jnMz%xfp8)^Lwz~M-ZhFabF0?^&1 z%HLgvaFY-Y^B3ZPJHN&+1`ezg$%U)(Vq=30I6JN{#Ie`x@RUS4r z$hOSh$S)&_^1zwPg3_v0dFru2nzI;EC=b?iH|f&4Re4KegCZ$fP?}tseImu(4di;G zOWUE!gZP=iaSF2D*)V^An4M;_fhiRCEnH<)-s&>@6@Df&j3@&?z8eWd!w~G*#Ol=a{t%9r|#6y_ctsIvz{6{et zf|-(tR_W(Mh_Dh_?`)WH5VKS^uyhQ6a1s%TR_Ws08s@joF!Bfa8;GPL^wr?fTGz+` zh7vL^nq-hkN^6NGIr>?+a_|2nz^Wqgu_R5u>?DfUChih*!6jY7JXNGonTL_zfhbCv z*^h>|x`dso$R%YSFuwzFl(|rXe3^$cce5^`N6dvNt5x^2fD063Ns+SN*)VfJ%re=) zYF)x%HKd%Mg&X(&BEdg1jQoXy^|7cme!xe`bBzT)3OzO!CHW{QM^Fm<^%MBm2cGhp ze(6b|4v=UAeN|8_82NceQO=uzV&PlEYhA()Rk|hk!1j&<1%Vv+7~iN%=oWK*|D2!k z&W4!-VwOsEg*Z^61^`9j#{FxN;KK|f@KH9!Hm&iqaN&k0P}1OHRS-t#T=IWW6*Nm# zL0)_8#%Jg`1enEg-qB55j(_-6!!8TeGrOENa@m76Wed6|R{B|A2uq@TtWpFH&Hx8b zD%F-5chhipkwAmXpn3RJN~M!3xHFyQBT?$1v5UDKmB2b>D_1yOE)eCu96XWLVUT~N zu2y|*CTW#>X46}Ic+TtLGkt>bWwGx3K4!57X`ukwqvp5c;UK~QgZ8;iYQ){$<3_7p>Pi)vRs604!K+$4 z%Mv>~MEm{r)dqJA9oL>m9eRA83rGQ{X`q?*SD(-HKVseK6Ro{-&ZJV@3e8p7^HJ$* z>ZFn#S`YP0wh$~<4Lqw#S1Y@gN+Aq1G-Rs=I)cyqC2E11-~%2|2)199!8bAh5DWUM zVALj`Wl&H*h@bqP-#yh6LAfAS2D{@Z%Bq2pGQ%d_`lYdU;s`)cNIje8)Q5m_L98ky z(!xCVkQ(4->DE7rwM&r_ayI(7#p16~NYGqUU7Q7kzrJLg3H|6T>UoML4dg7F>`6kS zy1WmFdTg16&&gIpIc!mn5);wxoj&$XgNSE=CIb-|)#+_5d}qWgtR?Ro$nhfLN$BDa z-YP_VD>&4U^M-Qxq8$B zH*t5ur9wfe%s!s-qe1*AzoW_vi4D>(vv&rc;(!d;C=~_Ys)es!;PL+hW;2M%5zC61 zKtKsB0(HWCzl3T$0H_B& zk#Uk#7g&BL1v)^L5%R+`U;OmHDKZ9hfjDC67c~H%1mwh~3bLHYxI{9Pj@dl|-4dP9 zB_T`(o~q77*dz2g@9vwgtVO>TZ9W_1Fw8$WS?xHyki-VQ6>S#TwVP8a1fSDlP4Go0 zSPJngi7;DcN;Ie>0O9bh;nooUo)Eu{2>V73#0>HQ^&rs+`k-o%6M@fqsaOEKvtd4i z7(hM91P<|Ej)StJmh8&s0Fpt%2z)E&M2JI7+rC#<-9$A-n+~W?BGABh!q|AAlSoQJ zXTK(=4e;NN;cbZ|Tc*cVboO(yS0`szKOZYX1Q1C|Ob^y9hAz&o0sdVP0#79AfBmh$ zgL8ifPllx5|FnKV{S0s|IqqFPDX)}yuHd$i~|B4u} z@AktK;pJ0jYv+vPi>Lm%9u`+yGg)ZJwE7Ee(9Zd5h>sB!Vu>hQrqxw+`g3wlE2lz; zuND=m6H!UC7;4EmA2=Jw@ZF-qr9@N-Swo1IV_Maaw{(GAugCB^M1_%PgMPletamod zYY?+zKsKGbw++R}Zt+4a|8g`ae?Rk<8t+_FRxEHJLbv7n=}d@XOi)n*oDiuY@2? zOvW5)vI~$Eq1hw^*_PWIVKOxTKN25bQX}HT#~mn7k_m~FW;^1zS*{=#kX2bKO^V2Y zsSHUjBo0iL{D3(JVshX#nZUE$tc_saWIiTi9yNJ}5%@A-X0)M%ziyNhl6*!s;|vzk z(D326JU`~W%=KXM60~BuaNUUo zkC8UU(`$*L7+QxO^;pz)pct%57tDX01M?pUY0?9mpk;({ok@0RQaznbI0!h1lOjMi<)t{`AMj?YeEDK$ zaERl+HM7SjxWh0Hqq&L+?vXOXU1)~BG-BBo&riA;i1PhPR5fS@L^4#H*%yHBf1nw= z%NL)O5WdJ*FW8Vk0{-z^Mx6_O1IV}pQu;5$ClW|!$~}~+Ugx;ga6%6hX;kiEgvr*V z0v}?Dt6({tV4Fa)Ew7cwSj7BjxbG^+g%f^HAR)?Y)iD;%0>uOpgqpTq@YW3E!Y7dQ z%RM5wYEYz{tamod1`xCJn?P5=+l2)Aau02)*LiOB3?oqW5C^3nEI%GPt=B&(i)(wxO0E`8l-MgZz+ zmrBcGfm#o7rL3f~W5;)8v0`sdH1`M0obRe@fk18Qmh;l8krfz&nOc!1D2B5ll3O)>vF`D3h-$fR`fw9#;EIDdk`^P>-swQ$l)fZ-|u36V^hK7f!_r4r@ zYr&JzTI(l|p>$LPBxM?!>m<*=aMil?O)sTX)GebE<@Vi7Z&f1}pqZ;t z4lSPLi8s>E^WwTXKGaT~dJ3_ip691=ca1ls?ZoD?R??Oj z@eEn^Fn^P0+{OO5G#gsAArG4rq{On1r@FJaJAHBfvlv2>g7jJTiB$JW?oL0PLQ+s9 zRcj^9GbsoGa%H4YACz&G4S5iM6JJ^HESQTRhNdnXcq}PsH_N_+%d(*zGUBb4GWKQ} z@^t+t&aAvrXvou9d8OEx7njrvewa{8@rS8hNn2*bGhz{7{>W!sD}P+N4UKKc3rOl! zViDr0C>D30FYdrB27FSlK8uh@MOAY5`QcQOdLyZ@l{BxUUIfTRPoWlW89HoqtS%yfcze=4?&%BC{a*Xi>qn7&}iUR~s z!lt>7tdzC>D$lsLumWF0WJnTB)BkJ|)s@9H^B1Jr5cCX@hAeF(f43-VjNgxjmo|j$ zhDb}6Hq75Gj;gSd0AXpDa9wN&AH`eF>_+S+=s?5H#)d1*44oAC&m`8wMg+yW^;vZ0bXj3e^3zR@Otn z!IE_?g_`A`+ie)A&ocJSm6IJRd~&1_JN>?Rs(s$r)Gtl4EAdf~4gf&_=&tm6V_Uyk zO4y|553{M?%p&$KaPc|Xzjay|jGh)g^cL>P6!m8)Vo(V_)1s!i2O?J0kBV!2zScAY z)ylTzg_>Urdg6Vo;q^wKX`i#C5=c_!EUwS-0Lyx0ij&2KKfvQ1sEh`RdZhKqGnLA5 zV2Shhr9tPUb!VxK_82?Aivbv{!*%za{jFt+{#ofBdn`(L#m5CHZ@ru8xw`A zf}1E+DJy^`buh{-2B!x%(Zsr{G~9Exx2%fS&i9PML8_D^!9l6vrHg$?sum1;N4^1) zss)i5Zo*CUr4dWNc;IFxh^kFW`Eqa*h-4^rv3~@*Tj3_VtCUqFgvlAvxP?`nXPjws zQ(v^F_9|k%R2z!cEF%>!%s5lESfOG2dV8a)EbaViXZwIucO$Hqa>FGTdyQ0g<@_Zv zxOwmlP0+O58I01*-xZ0oO?8K1AIdk}g=ZkD_ABM9!80J>pojHRX?W{mk57G}j-Bgl zFDEmkMdNl#BXYlZ(qeHv@C^N`#gRC9=>QO{2Y_iYxWi@{^QDBr>iKhB2n-dhid@5~ z`S~%C0=@NweK#)GP7wv~T?w|Sq+hE%l=FeJS347G;K+bfl5LfT5%z#wep-~^k_%xT z9BDL*0fs%Gl%EzYcIhKSq%2OpvegfHbJddS}D@1Y&?& zA`>_tn>{aot~23yDrt9>#|&f9k}503hT#RNcJlfB)!5`n!JPF36!1}+$tQcw=!R8R zi?9X?V9TzgJ$R;NI0w>D;Y_H8)78aI#hUrw8MO0rJ*w$B9F#iY| z3t1`{3n|5ohwORGM_xun^w**yjPfUjby{*WV+8d2I@g^ez@nj{mQA6h-R(7jc!Q#O zqs?PVqXAW)IHr;9PKx{sCFA~`8p6+a2e+^NYh6-Zh;{!^O&&VZ;Nzl`(db@|wFl=# zC^Y|XKuQqWPCb3{Fk+uo$!5Wa@t+9V`4h~D@Ht4;UBZ?c7Xp)hA#W?S5`N}jXrIDbvv zrTCyEzf$vQk*CvGC%R~g-7;3g5003&nC`dOQ$ZW*D!b79ltC!u!%q z1?i@r(oK8Q0b`~hJ@Zp~W^a0CUpiWlj{cO6?oHonK_SZ32geK}eJ2$tQ#&Z2*cysl zE!vEP3GdlN9z;0*41@1hf@(o-%Q^oHNl=Eog20U-8}2|}Esf*`DP5oA(R%&pX}KG} z9^JV*>P=b2@FBA!#S>fiW*QDUKZXhGoj8kwL&FqcEzXq=F9)R6 z0dpFGIsKVpT9ab>Tcu7w<%RJ7_R@Jdpb#R0z?_^bWe@*uKbt3gx&76y@=+*%L^px!>k(4>WaELWeMtaM@g&8xF~xLmr49;wUC8J;=?V+RRyuVM zDay&=(-}_m>q=8^TBgmW=h`n`KF*FBw5ioE?mgf9=WU08S0-McvzDLc8Gwe7jlmPQ zABVr2vMk$yHe&OJ6ySl|oL&#sIoBY6Ii<3s58eU0TXbScU*o0F)WO=niUPfwpI!<@)zGavCbNED zx2;Cy>R=sXAct96zUG>O=xoI2>d+~{;D~#2!Wfh#diTEbq0`~H6MyO~?sPR8DlHHD zc%((|d2hyg!bDbT6JrVXaj<$rZ^rGT6Is51C!goAv2Db?^u5@VSk{{n{WRRG3h>17 z9F$H>WW5A1O94#Ji2E&ixYu^TQ<5gP#;7FC1@MI2&?H&7c2(ayX&Y&wAUjxY-Bck7 zc^sTr)0-i0X&3psf~8#*&mr#9h`T3nmKk9bi94FA)eD3;+pn&Q9|5jLs*~EY;2Em< zV+&FPhy%zAu7JLAH^Y)U?MF|fzF3P*i^4561GS4v0~VfP3u+fY&eXs<9t*uL?&y ze^(Ulcd5crOm&Ae0E2q|{TNWHd?R~*n%Ex=VllGWh0p^>E=wgrKpg@I8Fi_w`Bv|I^#TIs2h1E0vnvV|Ml*qcmeBx} zj$@U_3ao`#C;^PkdRT*K!D*c;W4Q+W{QOPM1U0iWc8|vdeQJ4Y#hNA-)HJ|?CcvU7 z;x$kf#R&dzA?U+F)nkP9mID_``N06Jb^=HjOK@2gZ>28_o=B7qz=f#FQ^y*7BWoa_ z4w?C` zHJqoO8l*XkK|B9}e8VOeS~r}xG&Km4ujNdWtFl+mcUJ+q-nh_qz1V<#5m zlcI3m>uIY}dl6Lx<$RQKgH;SJ-G#=6^E6U>HL-Nf{9;H$t@DotKAg8KwO0>I*Um4N zZ_tMG#OTWgcENcCslAYVQVfo>o_0dY zIN|O>fLEoAMhbp{BU4-nb5ddJt5VooyVj^QP|pf{;mAv=Fiq@P?fjT1L8=R(3Xa64 z!fdNj95L2gH&y3!YO-ls^k!NZG1a}3nqkp-$AR6qW>;7d znn6c19-|pdG?9WPK0y;7p@~IkVm_K!h$hm|L^zZAEs7)U*xb( z$+&mv_}Sq4I)yUr^!HI0<}0Yakt+*{q^QF+A!QJmAxS=V2ZYK~U%lvhiDTPm`8AhY zbC1er$DQZDDSI;f$>~_>nyUsX3}Ib)HP0v*-mZl$ib`@w9bg3%!Kx*a8Z;-fPa^*q zs3e4@pZR3~co7I%)_}dEhrjRwOg}~H>TPAU6blq4mbGX}d zQtjg4`zw!E^f85qLma*9 z1pvB!;W)m=r+iK{hpm1cB{PtY-}Ro~{Wi{03RgkkZ+Zd4;QC8^;CvnHFDaBFpt<7V zL^QrP&Qc{B??K5chIU-{MOpZ8)arwOr9>&3Jn{|Jja71+u5Ote&W`AJATuYN)=k!j z>X?q&7xPzO+6N~e)|%Ome9iR0r0JcRwxDl&fWA+QiQ9gFKA&$|dc^4;Nn6m@9NE`g z&@2g}b3dfc#Az@917vy@+OG!lNdVz{JSJIpT8+r)6rYj`*4BG#SG* zSIj_^c6MZR3F@|Y?xR$z+T)|$H&O1-#o0!?U-k7`%)O*$9}xW_+BZ!XSEHDrRJzz4 zG--fQOXlL{DP|=3dRcIDRqdCQW_eI{>Eh%|7em2e5%;Yc$VT#gxR9$D?GBe2?kZ;J zOCy$j@%*F&T+9BA6g9;RXUR~lW?ulh|541?UAovpLii$Mj$lJHDc4uU445Fyocy>o zV%%w(0saa+_0RNVw?)g;mi1JxY%Z|*S5KE7ax{^Ygvs`xrg;k9E+N<^l58tHu41x( zqk3g=cWo13^^gIHB&7+u4A%yQqyJ_gMX!JEFn-6?bcKI37ClqOG39E z-Kxd8{W^xTk9yuy@OlZsCJ}|Gu-Zi3lEq!*CHP|rp<0iwo`_1qr2j_Exyh}t{LuiA zEKNjR!lZjpb8d5$^yrZogKdJ_dh`%67YXCNk*Z-ykgKq|DeIjDvrr$z=*tFv(4#*} zL^)H>dkJ1IB^;A7a%?(z}IlYsShrINO-un4iM?s;+zVm1LMA2uqPCtwNpBadXPlpJVdt*4|&U zW9xmL_Ek+9qN04hL95bfwHvM86T|1<;0Iv(xgUXP9Ms8uR-Xi!=^97p(4VY3N75IJ z^r17$Q`F~8KK>)R>C>k>d@q4Z>4FBBnNQ~{e8;I{=+JvAf?I~A_CIl1>h`LowD!>u z^=Pn%fiU)I;6!ZD8F68x8`wSp6ej`=7UF&ipi*+NIc^zLQcg*e2b(T_Fh~j>J!69q zWi<6K%@fHB!7@yM>)V=2X=?@G1&Snp!2I+>4+dB-IR|Xg5O-IwW*8kda#K`!yUG^3 zaEaF`o5c+j)-7v~rBK4Re(k4#NqZ;Kb!lu>UO;TGlDOky6L%jRcVHHSq-`RRf^y^T zGn2Gbz@%Lk1ehN^g;Ko!+m;H67ihKk9+UQ6X9f^>BDQxo*pmVDQv|B<9Lpq(lUb@r zsGrIf?q(=qzJ=f?Rb)skEWPi>8aFQ0Lf|WYtLb+(g%V>XNYy1&sUoqlFx#>ec|R3b zu9>;O5=vM(ivdxVqVA`%k$cNra1Tm=lxaJ2~lk3IuY;msL%w=4`_;;jM>*}@(K$d=ch<1OroBx}nKdg$UZNyO>6 zFP@*!s7h~g|2sJ}OgcC+3a^0f`Dhf|yGu$)^a|4|=iD4?RAsQt81~WRTkU~+iGMdb zGFUgrrTumxVOsH^ZDp925!#i-Ngc4mh9%3RW7-0%gvLq?q{e+e(}J^j1i1Yab!86 zainA@9k6=@x?6?DyBW%r62jz+4}l9Ai(ha&`t5WE3g(8n!_Y&6UhnD#>_)@f=ZKa3G8YI@SnyIMhp)a+Tt1Kemfs4L+Jx3 zrw}2BwrJ%m%6ezR`~hNiwaEsikiFO(H6g;0;jsd3F~bOa5`z!?+hd0n(Ht{|aVh7o zc7CB~dxIk*Z!Oy38Tb|>EDQ-lX`<7U$Xi&PMeY1Q2JrgALPLg?5!yS7e7@~R!|MV3 z4q>4s!wQD>jw5UI4LB% zvKuWtl?+IOB=W~&Y7F8)2<*eM)9>5E^kLn3KW*&s+)X>e30+E`Y9-N$=gB;AzNdqa ztak|8v341n1N(Ipb#(m6;O-_Raz$|{v9!2?(>tzkRCLyNQr9Qqd6-=0jqNx7&VGA# z;OZwO;=YDqjehxJ#jX80lj9ZLg~F7<9iNN#zPDOqZ4f$A$5vW>4z)M4ymk;jF-qQw zaT`mV+OwH4Gd+R^rbk+reKS3RHu(^EXUtd;%`;;tmvXY&1L>me6^;zrTC~YC@U6eF zF(fQV6P=Mnc4u)Gw+E&T6zB^Z4H@=E=si*72pcUK_AvCGII>oMfgHoW zgtKX&pj*s^V9?ajCar-AVL_3y-q|pNAZDp-AZwuD&{!h`ZBog}>IiI~VFdo|a0}~Q zjy{JD->AZTyKEqX{LhicCwse|wZ%BF5A-$~(Fr6J(w~#}Fz|q&F@Vr(OD9}K(VyoP z`*Lcz1#Cg12B9};7DH`bF^1#OP{0>7E+h1o zvfkM+uR+W{s%&6w9x9NdEogM46CR+DGmI^lP%8O+-`-zE&C3wNzfkAUXBLIh3;05% za7F-!`k3!4K!gxrN#Jf5lASeXcH2maMydF7%pUSBx!`^rw)F1|2zp8)N+saCO*Jg( z+9c_28=h2f?~M|0$BdaRH!Nqx`~qTtJvd|nSJSm0fSY%;3J{M7Fks^i@opQ(ya;w! zZ~xvJ(d!%-b=eS-ob@n=H2oW~fB#r6Dwzr{vJb4`f56*caM%`H!yj1Izglou30(aD zUsw9C&D%-M@szIguRyT#^#+ETJb)Qs`)1jH@!J0-d7B#EEtN(9EB((H8^7NTK(exb zNgk`=-6Mist(4Fqz}t<02ll53E*jUR+cNus75&G%`Z69e`+ClRYx@JM@&gO{*Mh6} z&#dteEcdTLz_aqK9_APbz?}fTU-qAb0v7Af1~&&dUGZg!{!7v|{>6I$z_{sZ;0vZ7z>0wS_Zx68Mzj)Jt;F`QBfpIP>jS@JY8aRib zMMAX?jk@1>7%1p9PC~gJ;P?uR5p-pLPHKZ4mY{VN<+`6^$+a`2$3M^Wqy(-6O?Q03 zC|mlb(!5fxT?ipL5fzgk_)%c2PgkY{Lcn1g$PBQ(Y_MBO(DLO#WQUqOPpTvW*rR2} z^E&U=!@%tV2Mw88VI^;^KKOc9+eV4Swdf&ADB-d#iE81P!@iiw+(hq5iQS8 z5MC6c(x`zwf@?`AVCNRB;F>Kx>v`Uihk-SMYfALR{+vqa3`T2VmOKfcVBR*$-Dm$WJA#RSLCS)u9e6Pn;YzwNh5ZC@oa9i!xLU4 zqULh#q9jAw!@$G60I<5ju7KcPD)bKz};xRGt}k*7r$A&Bg`^z$C-&vlX1uduUW1rjRLRCQl0flxGr*QLj&zR)D2o}!=1VApeE!1T@nB+yw`x)J z9p=<4oqZ7#6S3g7G5k5%2O>VgHEV6>_Gl=o-f8rGJd@EzjfIK}I${1{5_oqb& z(^jB4V`;5!eeby$9T!H~p`+~45%%aPTW5r=Gs?a&!Ul|6N7!3O*>xlAx>2_E2-|v; zO&(!q&-GzK_>W7+VU#I3pXsGO)BP{TPdUz?x=Ydydu!;poHYN6hjz}wvr7L^BInOb zeI|e0$5~sW%Fpw-kG`XTChwtUanxgVF=Xqa)yuAz9BTV8{s{WGdD0?ptL7;?U;xQ#=ik=9V{%I~18@>Dazm%Htnoyr!^;Op%nyJRLJV{ql zpBi#<))T3q&(vQqSc4ePju1U2M~E7>h#qj56C`qYZlm*V*yq^>t0f zo#%&F*+dkCE$_U5oA7;(Ui*pqr`v@sd(RaDHLTvZU$!q`&RK+bjcT~~sX8Sj)9H13 z+;LHI|2A5OTign#{WQ@AT1Pf;VxkeBR_ zdt*aG*$%(ARv=P|Db!>?&|s4kR2KNV_l2-e*WM!SM>+z3r+3gNI?haVOiXmBOmv)` z=y03psGR7qnCQr!=r}OZ(KXRwFwv1d(cwMO@kT8d9XZVNoz(W3hU7-*=SB$kPZpUO zpKw{$z>bpLgw7cJnSZ#5AUu5>2 z>-rw8kB%M--_6~dRyaOag}nKe#SkvDsA*8^QJBJt7H77@%faNpvBkxU3!0jSLr2@L z1iuda{W(}y^5#oj$snvCEPKz5r;FcRcpTQXo5A1BK-0#bqEp5(lY7~rSsnDe4&<9b zRKp;U&i_v@*rPC&6)i4oAg3>LNIE>07bt!0J2a-fn-OybNc1BQN)NZQM}Pee0-(>X zXt{r-uW~n|Z;x#Ji4`pc;#1^x&}kh&0Rl?=n#|fwym`eG$9D3cLJ{X58rwS6Qx`El z;S@GWZ!wz&mX16=b^NC=CkNid`Qa0ePJdoEExc~}Tdht&?S=6F_R>imQus#%addL7 zl|5YAb=FGya$D4;QZ*)boEUlC6fQm7=IFHadk8?(DY|)_IKO7>Kx<~FEGB)(H3K|N z>v7`26U3vAP9fsgk)>T)9Yx0+>n1O0T??38=Y;kzOkiF!A$|&Fkn8I<71`(p7bZ9? z{@`vjK)Y~~=T_8f-aMikJdyA?yqvf0Ly+menUxndJC~azoK(;ahJVo7P!yHm03F!0 zv8a1ta|p=!_}AIIJAOnNf+$$RNnyL4vT?KXGn0cS6|{o)KFgrBY5iPuOe?rC-XX8e zoztHcc#?iUKJ;yWt^JyzH+ICkZPl4M$57AEFSf3mSOwIPoIGIMjMwV>?HN74Exe^4 zFtj)n^_et}YV}RTkA^>+VEmgI_H$88eCW%5ZR2K_XUKymRkZqUwvi5>s`P0d!Nzs+EAQ+qL-HGy|$Pjq07%<^A8D2 z?ZQ49PaRGXG-M`U2!E#XrvFx;(ARj~B`wp5c)(D}X!CFBrv?kT4q*b5btC_3zS*Ym zb68}&&dYu|<8{u@R1OLuTBh5doy}`=<$#>`X7jrJ^#$ddR~+?pM7gsO{h-fy-M#n= zu3AnbS~~IdCWgC%eGe8#-5O?TJ$U@mehu*c{mauDLC;RO^4%RCHHWzJd$WKzl{nQq3-PvSW*9z4z|{rtGrPDDIfY!d^7K5725bok@3r}1^+&$<|GCtCWS1`FRi zgncquH>#C6@o(m>FZ|9yNEt&7Ha3V?TxsCmi6smg=E5?zd|1@!v}_Y42&Y$mL>$jL(>dJuVt zD&()Li}o(Ptaovz90Ve-1cA(jNd5qCrGNIg1|JCtI1+;1e(Gqz36#~zAl&x^-Jj#i z?*rj&z+YV{OhRxL_<;@f-*!Cs=m~58;NtHtnwLmcR8#o%c&M$Dkqeo{$ z|9V(=tP4Q>2E=N7gZ^Cs0zn@Sz@4zR0>|&KdJ$nm8w)t)L*Qd;eFMZOLLet`)+a(v z;Q~&~cFyoOi?=ob5PRU9#@|4_l*LfVX+wjL2V#PQ13`*eFTw5Ev^EF8{|;P+&Nn;< zRm4294Bub>%Or{h0RTk-fAzir<5VTrf6(uE0M;wy_@N^Qe)t$50HIr_RHmf}`L%To r#PAyiJ+&{VKXEW1AmoI#_=k<;W+(w45&}^J{&NCufTjU(yCDA$(D9^m diff --git a/PSCADA/ECMS电厂行业模版/database/digital_map_to_fes.xlsx b/PSCADA/ECMS电厂行业模版/database/digital_map_to_fes.xlsx deleted file mode 100644 index 8dfefd223ff2d706b58a20d4c5a2d41576c5a971..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 80262 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

+7`7z|{!$r(A*CoP^a1 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 diff --git a/PSCADA/ECMS电厂行业模版/database/fes_accuml.xlsx b/PSCADA/ECMS电厂行业模版/database/fes_accuml.xlsx deleted file mode 100644 index e23b147e0f1b67610e4a447e018aacc63dcca7fa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16522 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 diff --git a/PSCADA/ECMS电厂行业模版/database/fes_analog.xlsx b/PSCADA/ECMS电厂行业模版/database/fes_analog.xlsx deleted file mode 100644 index d44213c79a9a85e87e8f45abde3ae2ffbd4e5ff2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 101827 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„wDvA86L2#4x9BB@n;D3C5htt+90}$-u$96WOUk1 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 z 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�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 G=zjo)Is_*G diff --git a/PSCADA/ECMS电厂行业模版/database/fes_data_block.xlsx b/PSCADA/ECMS电厂行业模版/database/fes_data_block.xlsx deleted file mode 100644 index 7aaf02f00643fc2204fb0704c6d2a1f5475d19ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3737 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 diff --git a/PSCADA/ECMS电厂行业模版/database/fes_dev_info.xlsx b/PSCADA/ECMS电厂行业模版/database/fes_dev_info.xlsx deleted file mode 100644 index 357be2d8f24dd2cc774e865d01219af820a5c40e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5922 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 XrlpF9RT2Oo!hU724(hpRNCE!>D?UE3 diff --git a/PSCADA/ECMS电厂行业模版/database/fes_dev_temp_def.xlsx b/PSCADA/ECMS电厂行业模版/database/fes_dev_temp_def.xlsx deleted file mode 100644 index 2926104ec7358495f2b2aa53b8acc5d0ed4ca7e7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4092 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 d@Snf`FHSPlp&Hrywzq25AtG7^r}hbPYyG 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�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 diff --git a/PSCADA/ECMS电厂行业模版/database/rm_user_def.xlsx b/PSCADA/ECMS电厂行业模版/database/rm_user_def.xlsx deleted file mode 100644 index e36e2b10ab0c6fcc82c572d1a609629470d1bd99..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4850 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 diff --git a/PSCADA/ECMS电厂行业模版/database/sample_define.xlsx b/PSCADA/ECMS电厂行业模版/database/sample_define.xlsx deleted file mode 100644 index fdf80b2022fd4646d1af5dbd892b3a71ec920d2c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 70606 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 Tl7j;T{5b)90XM{e)pPtmQec3s diff --git a/PSCADA/ECMS电厂行业模版/database/sys_model_process_info.xlsx b/PSCADA/ECMS电厂行业模版/database/sys_model_process_info.xlsx deleted file mode 100644 index 80f05a1542c4c6635cb95f52303f53fdcadf0352..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6468 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 diff --git a/PSCADA/ECMS电厂行业模版/database/temp_plugin.xlsx b/PSCADA/ECMS电厂行业模版/database/temp_plugin.xlsx deleted file mode 100644 index 7c1c88b1e7d9aed4831939c1090ba2cb3ee0f27d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3722 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 diff --git a/PSCADA/ECMS电厂行业模版/database/temp_plugin_fes_dev_map.xlsx b/PSCADA/ECMS电厂行业模版/database/temp_plugin_fes_dev_map.xlsx deleted file mode 100644 index 00cd1f6d78c83652aca738e569f46ff9eeb5f5d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4398 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 N-j^r@O)wvR`xiiTWu5>4 diff --git a/PSCADA/ECMS电厂行业模版/database/temp_plugin_point_map_acc.xlsx b/PSCADA/ECMS电厂行业模版/database/temp_plugin_point_map_acc.xlsx deleted file mode 100644 index 0abcdccbe5d0dcd177842e1076e3aef1a7116733..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12090 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�hy9(0MSlU`%_W=1-SnP^n>`++#rZ{Zf>9n9h#pA{Rij| zG{HmjaZr69KJ{D>8>OZORB`8D{qW!a!gixIECWL4;D$%oO*%y%5k)~XScWQ{V>>*O z*`&k!h~Ndq!7|`<4qrGj#>>|@hhKFEm=T5U3n78HzSXH0XeKu%Q*`OONY4r0DgVOg_yE`z{j z$Qvo39mI%GVSTfn-N!FP)?7VObk-o%DjiNJk_>sN(6b0-g)ZYHb0uNg@y!g48g=Vo z9Afwn(DFC%Tmbx(%&q;^+9K!!nT}bSnS1u()zX~ZvM9w~80bFx-`ku8jXgjo*6*MH zOVjh;2L5i)6=?o4kPLkMk9OU^)&K5;{iD7g@be$_-(9hPYyaI+`bXPY^uHQR|5p6F z_wtXTr`TVen18GO-NpAu)kR`O^?&K<``ganjc9IwEYPT);M@NJwLRFo diff --git a/PSCADA/ECMS电厂行业模版/database/temp_plugin_point_map_ana.xlsx b/PSCADA/ECMS电厂行业模版/database/temp_plugin_point_map_ana.xlsx deleted file mode 100644 index 22edcaac02ce34ecfa55fd9b483edffad784739e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8696 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 - - diff --git a/PSCADA/SG-A通讯管理模版/data/config/db_manager_cfg.xml b/PSCADA/SG-A通讯管理模版/data/config/db_manager_cfg.xml deleted file mode 100644 index 7b31fe0..0000000 --- a/PSCADA/SG-A通讯管理模版/data/config/db_manager_cfg.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/PSCADA/SG-A通讯管理模版/data/config61850/高厂变/AH101.cid b/PSCADA/SG-A通讯管理模版/data/config61850/高厂变/AH101.cid deleted file mode 100644 index 09a8905..0000000 --- a/PSCADA/SG-A通讯管理模版/data/config61850/高厂变/AH101.cid +++ /dev/null @@ -1,25386 +0,0 @@ - - - - -

- - - -
-

172.16.10.31

-

0001

-

0001

-

00000001

-

"1,1,1,999,1"

-

0

-

12

-

0

-
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - direct-with-enhanced-security - - - - - direct-with-normal-security - - - - - Schneider Electric - - - V01 - - - PowerLogic P3 - - - V01.102 - - - IEC 61850-7-4:2003 - - - - - direct-with-normal-security - - - General reset (Release latches) - - - SE_P3-IEC_61850:2020A - - - - - GOOSE Enable CB1 - - - 0 - - - SE_P3-IEC_61850:2020A - - - - - GOOSE Enable CB2 - - - 0 - - - SE_P3-IEC_61850:2020A - - - - - GOOSE Enable CB3 - - - 0 - - - SE_P3-IEC_61850:2020A - - - - - GOOSE Enable CB4 - - - 0 - - - SE_P3-IEC_61850:2020A - - - - - - - Schneider Electric - - - - - direct-with-enhanced-security - - - Receive simulated GOOSE - - - SE_P3-IEC_61850:2020A - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - Time master supervision - - - SE_P3-IEC_61850:2020A - - - - - Current time source - - - IEC 61850-7-4:2003 - - - VSS - - - SE_P3-IEC_61850:2020A - - - - - Type of the clock source - - - SE_P3-IEC_61850:2020A - - - - - SNTP server - - - 0.0.0.0 - - - IEC 61850-7-4:2003 - - - VSG - - - SE_P3-IEC_61850:2020A - - - - - SNTP server (Backup) - - - 0.0.0.0 - - - IEC 61850-7-4:2003 - - - VSG - - - SE_P3-IEC_61850:2020A - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - Time management - - - SE_P3-IEC_61850:2020A - - - - - Indicating if for this location daylight saving time is in effect now - - - SE_P3-IEC_61850:2020A - - - - - -900 - - - 900 - - - 1 - - - Offset of local time from UTC in minutes - - - 0 - - - SE_P3-IEC_61850:2020A - - - - - Enable DST - - - 0 - - - SE_P3-IEC_61850:2020A - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - Binary input - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - Logical outputs - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - Logical outputs timer mode - - - - - Timer mode for logic output 1(t) - - - 0 - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - - - - 0.0 - - - - - 60000.0 - - - - - 0.01 - - - - t1 for logic output 1(t) - - - - 0.0 - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - - - - 0.0 - - - - - 60000.0 - - - - - 0.01 - - - - t2 for logic output 1(t) - - - - 0.0 - - - - SE_P3-IEC_61850:2020A - - - - - Timer mode for logic output 2(t) - - - 0 - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - - - - 0.0 - - - - - 60000.0 - - - - - 0.01 - - - - t1 for logic output 2(t) - - - - 0.0 - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - - - - 0.0 - - - - - 60000.0 - - - - - 0.01 - - - - t2 for logic output 2(t) - - - - 0.0 - - - - SE_P3-IEC_61850:2020A - - - - - Timer mode for logic output 3(t) - - - 0 - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - - - - 0.0 - - - - - 60000.0 - - - - - 0.01 - - - - t1 for logic output 3(t) - - - - 0.0 - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - - - - 0.0 - - - - - 60000.0 - - - - - 0.01 - - - - t2 for logic output 3(t) - - - - 0.0 - - - - SE_P3-IEC_61850:2020A - - - - - Timer mode for logic output 4(t) - - - 0 - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - - - - 0.0 - - - - - 60000.0 - - - - - 0.01 - - - - t1 for logic output 4(t) - - - - 0.0 - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - - - - 0.0 - - - - - 60000.0 - - - - - 0.01 - - - - t2 for logic output 4(t) - - - - 0.0 - - - - SE_P3-IEC_61850:2020A - - - - - Timer mode for logic output 5(t) - - - 0 - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - - - - 0.0 - - - - - 60000.0 - - - - - 0.01 - - - - t1 for logic output 5(t) - - - - 0.0 - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - - - - 0.0 - - - - - 60000.0 - - - - - 0.01 - - - - t2 for logic output 5(t) - - - - 0.0 - - - - SE_P3-IEC_61850:2020A - - - - - Timer mode for logic output 6(t) - - - 0 - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - - - - 0.0 - - - - - 60000.0 - - - - - 0.01 - - - - t1 for logic output 6(t) - - - - 0.0 - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - - - - 0.0 - - - - - 60000.0 - - - - - 0.01 - - - - t2 for logic output 6(t) - - - - 0.0 - - - - SE_P3-IEC_61850:2020A - - - - - Timer mode for logic output 7(t) - - - 0 - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - - - - 0.0 - - - - - 60000.0 - - - - - 0.01 - - - - t1 for logic output 7(t) - - - - 0.0 - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - - - - 0.0 - - - - - 60000.0 - - - - - 0.01 - - - - t2 for logic output 7(t) - - - - 0.0 - - - - SE_P3-IEC_61850:2020A - - - - - Timer mode for logic output 8(t) - - - 0 - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - - - - 0.0 - - - - - 60000.0 - - - - - 0.01 - - - - t1 for logic output 8(t) - - - - 0.0 - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - - - - 0.0 - - - - - 60000.0 - - - - - 0.01 - - - - t2 for logic output 8(t) - - - - 0.0 - - - - SE_P3-IEC_61850:2020A - - - - - Timer mode for logic output 9(t) - - - 0 - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - - - - 0.0 - - - - - 60000.0 - - - - - 0.01 - - - - t1 for logic output 9(t) - - - - 0.0 - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - - - - 0.0 - - - - - 60000.0 - - - - - 0.01 - - - - t2 for logic output 9(t) - - - - 0.0 - - - - SE_P3-IEC_61850:2020A - - - - - Timer mode for logic output 10(t) - - - 0 - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - - - - 0.0 - - - - - 60000.0 - - - - - 0.01 - - - - t1 for logic output 10(t) - - - - 0.0 - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - - - - 0.0 - - - - - 60000.0 - - - - - 0.01 - - - - t2 for logic output 10(t) - - - - 0.0 - - - - SE_P3-IEC_61850:2020A - - - - - Timer mode for logic output 11(t) - - - 0 - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - - - - 0.0 - - - - - 60000.0 - - - - - 0.01 - - - - t1 for logic output 11(t) - - - - 0.0 - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - - - - 0.0 - - - - - 60000.0 - - - - - 0.01 - - - - t2 for logic output 11(t) - - - - 0.0 - - - - SE_P3-IEC_61850:2020A - - - - - Timer mode for logic output 12(t) - - - 0 - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - - - - 0.0 - - - - - 60000.0 - - - - - 0.01 - - - - t1 for logic output 12(t) - - - - 0.0 - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - - - - 0.0 - - - - - 60000.0 - - - - - 0.01 - - - - t2 for logic output 12(t) - - - - 0.0 - - - - SE_P3-IEC_61850:2020A - - - - - Timer mode for logic output 13(t) - - - 0 - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - - - - 0.0 - - - - - 60000.0 - - - - - 0.01 - - - - t1 for logic output 13(t) - - - - 0.0 - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - - - - 0.0 - - - - - 60000.0 - - - - - 0.01 - - - - t2 for logic output 13(t) - - - - 0.0 - - - - SE_P3-IEC_61850:2020A - - - - - Timer mode for logic output 14(t) - - - 0 - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - - - - 0.0 - - - - - 60000.0 - - - - - 0.01 - - - - t1 for logic output 14(t) - - - - 0.0 - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - - - - 0.0 - - - - - 60000.0 - - - - - 0.01 - - - - t2 for logic output 14(t) - - - - 0.0 - - - - SE_P3-IEC_61850:2020A - - - - - Timer mode for logic output 15(t) - - - 0 - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - - - - 0.0 - - - - - 60000.0 - - - - - 0.01 - - - - t1 for logic output 15(t) - - - - 0.0 - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - - - - 0.0 - - - - - 60000.0 - - - - - 0.01 - - - - t2 for logic output 15(t) - - - - 0.0 - - - - SE_P3-IEC_61850:2020A - - - - - Timer mode for logic output 16(t) - - - 0 - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - - - - 0.0 - - - - - 60000.0 - - - - - 0.01 - - - - t1 for logic output 16(t) - - - - 0.0 - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - - - - 0.0 - - - - - 60000.0 - - - - - 0.01 - - - - t2 for logic output 16(t) - - - - 0.0 - - - - SE_P3-IEC_61850:2020A - - - - - Timer mode for logic output 17(t) - - - 0 - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - - - - 0.0 - - - - - 60000.0 - - - - - 0.01 - - - - t1 for logic output 17(t) - - - - 0.0 - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - - - - 0.0 - - - - - 60000.0 - - - - - 0.01 - - - - t2 for logic output 17(t) - - - - 0.0 - - - - SE_P3-IEC_61850:2020A - - - - - Timer mode for logic output 18(t) - - - 0 - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - - - - 0.0 - - - - - 60000.0 - - - - - 0.01 - - - - t1 for logic output 18(t) - - - - 0.0 - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - - - - 0.0 - - - - - 60000.0 - - - - - 0.01 - - - - t2 for logic output 18(t) - - - - 0.0 - - - - SE_P3-IEC_61850:2020A - - - - - Timer mode for logic output 19(t) - - - 0 - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - - - - 0.0 - - - - - 60000.0 - - - - - 0.01 - - - - t1 for logic output 19(t) - - - - 0.0 - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - - - - 0.0 - - - - - 60000.0 - - - - - 0.01 - - - - t2 for logic output 19(t) - - - - 0.0 - - - - SE_P3-IEC_61850:2020A - - - - - Timer mode for logic output 20(t) - - - 0 - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - - - - 0.0 - - - - - 60000.0 - - - - - 0.01 - - - - t1 for logic output 20(t) - - - - 0.0 - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - - - - 0.0 - - - - - 60000.0 - - - - - 0.01 - - - - t2 for logic output 20(t) - - - - 0.0 - - - - SE_P3-IEC_61850:2020A - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - CB Monitoring - - - - - - A - - - k - - - - - 0.0 - - - - - 100.0 - - - - - 0.01 - - - - Alarm level 1 - - - - 0.8 - - - - SE_P3-IEC_61850:2020A - - - - - - A - - - k - - - - - 0.0 - - - - - 100.0 - - - - - 0.01 - - - - Alarm level 2 - - - - 6.0 - - - - SE_P3-IEC_61850:2020A - - - - - - - - - - - - - - 1 - - - - - 100000 - - - - - 1 - - - - Limit for operation left 1 - - - - 500 - - - - SE_P3-IEC_61850:2020A - - - - - - - - - - - - - - 1 - - - - - 100000 - - - - - 1 - - - - Limit for operation left 2 - - - - 50 - - - - SE_P3-IEC_61850:2020A - - - - - Alarm 1 of Phase A - - - SE_P3-IEC_61850:2020A - - - - - Alarm 1 of Phase B - - - SE_P3-IEC_61850:2020A - - - - - Alarm 1 of Phase C - - - SE_P3-IEC_61850:2020A - - - - - Alarm 2 of Phase A - - - SE_P3-IEC_61850:2020A - - - - - Alarm 2 of Phase B - - - SE_P3-IEC_61850:2020A - - - - - Alarm 2 of Phase C - - - SE_P3-IEC_61850:2020A - - - - - 0 - - - SE_P3-IEC_61850:2020A - - - - - 0 - - - SE_P3-IEC_61850:2020A - - - - - 0 - - - SE_P3-IEC_61850:2020A - - - - - 0 - - - SE_P3-IEC_61850:2020A - - - - - - - status-only - - - - - direct-with-normal-security - - - - - Schneider Electric - - - V02 - - - Release latches - - - - - - - status-only - - - - - direct-with-normal-security - - - - - direct-with-normal-security - - - - - direct-with-normal-security - - - - - direct-with-normal-security - - - - - direct-with-normal-security - - - - - direct-with-normal-security - - - - - direct-with-normal-security - - - - - direct-with-normal-security - - - - - direct-with-normal-security - - - - - direct-with-normal-security - - - - - direct-with-normal-security - - - - - direct-with-normal-security - - - - - direct-with-normal-security - - - - - direct-with-normal-security - - - - - direct-with-normal-security - - - - - direct-with-normal-security - - - - - direct-with-normal-security - - - - - direct-with-normal-security - - - - - direct-with-normal-security - - - - - direct-with-normal-security - - - - - direct-with-normal-security - - - - - direct-with-normal-security - - - - - direct-with-normal-security - - - - - direct-with-normal-security - - - - - direct-with-normal-security - - - - - direct-with-normal-security - - - - - direct-with-normal-security - - - - - direct-with-normal-security - - - - - direct-with-normal-security - - - - - direct-with-normal-security - - - - - direct-with-normal-security - - - - - direct-with-normal-security - - - - - direct-with-normal-security - - - - - direct-with-normal-security - - - - - direct-with-normal-security - - - - - direct-with-normal-security - - - - - direct-with-normal-security - - - - - direct-with-normal-security - - - - - direct-with-normal-security - - - - - direct-with-normal-security - - - - - direct-with-normal-security - - - - - direct-with-normal-security - - - - - direct-with-normal-security - - - - - direct-with-normal-security - - - - - direct-with-normal-security - - - - - direct-with-normal-security - - - - - direct-with-normal-security - - - - - direct-with-normal-security - - - - - direct-with-normal-security - - - - - direct-with-normal-security - - - - - Schneider Electric - - - V02 - - - Virtual inputs - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - Virtual outputs - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - Generic events - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - GOOSE NI 1-250 - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - GOOSE Validity Groups - - - - - GOOSE Group 1 Status - NI - - - - - GOOSE Group 2 Status - ANI - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - Final TRIP for Objects - - - - - - - status-only - - - - - - °C - - - - - - - 100 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 1000.0 - - - - - - - - °C - - - - - - - 100 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 1000.0 - - - - - - - - °C - - - - - - - 100 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 1000.0 - - - - - - - - °C - - - - - - - 100 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 1000.0 - - - - - - - - °C - - - - - - - 100 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 1000.0 - - - - - - - - °C - - - - - - - 100 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 1000.0 - - - - - - - - °C - - - - - - - 100 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 1000.0 - - - - - - - - °C - - - - - - - 100 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 1000.0 - - - - - - - Schneider Electric - - - V02 - - - GOOSE Virtual AI - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - CB Inactivity alarms - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - CT parameters - - - SE_P3-IEC_61850:2020A - - - - - Enable for CTS - - - 0 - - - SE_P3-IEC_61850:2020A - - - - - - A - - - - CT primary - - - - 1500.0 - - - - SE_P3-IEC_61850:2020A - - - - - - A - - - - EF CT primary - - - - 50.0 - - - - SE_P3-IEC_61850:2020A - - - - - - A - - - - Sensitive IN CT primary - - - - 50.0 - - - - SE_P3-IEC_61850:2020A - - - - - Number of connected phase CT - - - 0 - - - SE_P3-IEC_61850:2020A - - - - - Operate delay - - - 100 - - - - - - A - - - - - - - - 120.0 - - - - - 6000.0 - - - - - 15.0 - - - - IN> - - - - 750.0 - - - - SE_P3-IEC_61850:2020A - - - - - - V - - - - - - - - 173.205 - - - - - 5196.152 - - - - - 173.205 - - - - VN< - - - - 866.025 - - - - SE_P3-IEC_61850:2020A - - - - - CTS operating mode - - - 0 - - - SE_P3-IEC_61850:2020A - - - - - Evaluation VN - - - 0 - - - SE_P3-IEC_61850:2020A - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - VT parameters - - - SE_P3-IEC_61850:2020A - - - - - Enable for VTS - - - 0 - - - SE_P3-IEC_61850:2020A - - - - - - A - - - - - - - - 30.0 - - - - - 3000.0 - - - - - 15.0 - - - - I2< setting - - - - 300.0 - - - - SE_P3-IEC_61850:2020A - - - - - - V - - - - - - - - 1.154 - - - - - 115.47 - - - - - 0.577 - - - - V2> setting - - - - 11.547 - - - - SE_P3-IEC_61850:2020A - - - - - - V - - - - - - - - 100.0 - - - - - 5.0e05 - - - - - 1.0 - - - - VT primary - - - - 10000.0 - - - - SE_P3-IEC_61850:2020A - - - - - - V - - - - - - - - 100.0 - - - - - 5.0e05 - - - - - 1.0 - - - - VN primary - - - - 5774.0 - - - - SE_P3-IEC_61850:2020A - - - - - - V - - - - - - - - 25.0 - - - - - 250.0 - - - - - 0.001 - - - - VN secondary - - - - 100.0 - - - - SE_P3-IEC_61850:2020A - - - - - - V - - - - - - - - 25.0 - - - - - 400.0 - - - - - 1.0 - - - - VT secondary - - - - 100.0 - - - - SE_P3-IEC_61850:2020A - - - - - 0 - - - 60000 - - - 10 - - - Operate delay - - - 5000 - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - VT Supervision alarm state - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - CT Supervision alarm state - - - - - - - - - status-only - - - - - Schneider Electric - - - V01 - - - PowerLogic P3 - - - V01.102 - - - IEC 61850-7-4:2003 - - - - - Protection active - - - SE_P3-IEC_61850:2020A - - - - - - - - Schneider Electric - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - Global trip - - - - - 0 - - - 10000 - - - 100 - - - Minimum global trip cmd time - - - 100 - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - Circuit breaker failure - - - - - CBF fail 1 Status - - - - - CBF fail 2 Status - - - - - - A - - - - - - - - 1.0 - - - - - 200.0 - - - - - 0.05 - - - - IN< primary - - - - 5.0 - - - - SE_P3-IEC_61850:2020A - - - - - - A - - - - - - - - 30.0 - - - - - 6000.0 - - - - - 15.0 - - - - I< primary - - - - 150.0 - - - - SE_P3-IEC_61850:2020A - - - - - - A - - - - - - - - 0.1 - - - - - 40.0 - - - - - 0.05 - - - - IN.sens< primary - - - - 5.0 - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - 0.2 - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - 0.2 - - - - SE_P3-IEC_61850:2020A - - - - - 0 - - - SE_P3-IEC_61850:2020A - - - - - 0 - - - SE_P3-IEC_61850:2020A - - - - - 0 - - - SE_P3-IEC_61850:2020A - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - Cold load pick-up CLPU - - - - - - A - - - - - - - - 450.0 - - - - - 15000.0 - - - - - 15.0 - - - - Pickup - - - - 1650.0 - - - - - - - A - - - - - - - - 15.0 - - - - - 750.0 - - - - - 15.0 - - - - Idle current - - - - 15.0 - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - - - - 0.1 - - - - - 14400.0 - - - - - 0.01 - - - - CLPU dead time - - - - 10.0 - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - - - - 0.01 - - - - - 300.0 - - - - - 0.01 - - - - CLPU time delay - - - - 0.1 - - - - SE_P3-IEC_61850:2020A - - - - - 0 - - - SE_P3-IEC_61850:2020A - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - Selective overcurrent logic - - - - - Enable for SOL - - - 0 - - - SE_P3-IEC_61850:2020A - - - - - Number of SOL signals used - - - 0 - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - - - - 0.0 - - - - - 1.0 - - - - - 0.01 - - - - CB trip clearing time - - - - 0.2 - - - - SE_P3-IEC_61850:2020A - - - - - SE_P3-IEC_61850:2020A - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - Switch on to fault SOTF - - - - - Enable for SOTF - - - 0 - - - SE_P3-IEC_61850:2020A - - - - - - A - - - - - - - - 1500.0 - - - - - 60000.0 - - - - - 15.0 - - - - Pick-up value - - - - 2250.0 - - - - - - - s - - - - - - - - 0.0 - - - - - 60.0 - - - - - 0.01 - - - - Dead line detection delay - - - - 0.2 - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - - - - 0.1 - - - - - 60.0 - - - - - 0.01 - - - - SOTF active timer - - - - 1.0 - - - - SE_P3-IEC_61850:2020A - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - Dir. E/F overcurrent IN>1 - - - - - Direction mode - - - - SE_P3-IEC_61850:2020A - - - - - - A - - - - - 0.1 - - - - - 2000.0 - - - - - 0.05 - - - - IN pick-up value - - - - - - - - - V - - - - - 173.205 - - - - - 17320.508 - - - - - 173.205 - - - - VN pick-up value - - - - - - SE_P3-IEC_61850:2020A - - - - - - deg - - - - - - - - -180 - - - - - 179 - - - - - 1 - - - - Angle offset - - - - - - SE_P3-IEC_61850:2020A - - - - - - deg - - - - - - - - 10 - - - - - 170 - - - - - 1 - - - - Pick up sector size - - - - - - SE_P3-IEC_61850:2020A - - - - - Operating curve - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - 0.0 - - - - - 300.0 - - - - - 0.01 - - - - Operate delay - - - - - - SE_P3-IEC_61850:2020A - - - - - - 0.02 - - - - - 20.0 - - - - - 0.001 - - - - TMS - - - - - - - - Reset curve - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - 0.0 - - - - - 100.0 - - - - - 0.01 - - - - Reset delay - - - - - - SE_P3-IEC_61850:2020A - - - - - 0 - - - 1000 - - - 10 - - - DT adder - - - - SE_P3-IEC_61850:2020A - - - - - 0 - - - 10000 - - - 10 - - - Minimum operate delay - - - - - - IN input - - - 0 - - - SE_P3-IEC_61850:2020A - - - - - VN input mode - - - - SE_P3-IEC_61850:2020A - - - - - VTS blocking - - - - SE_P3-IEC_61850:2020A - - - - - Inrush blocking - - - - SE_P3-IEC_61850:2020A - - - - - SOL status - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - 0.0 - - - - - 300.0 - - - - - 0.01 - - - - SOL operate delay - - - - - - SE_P3-IEC_61850:2020A - - - - - - 0.02 - - - - - 20.0 - - - - - 0.001 - - - - SOL TMS - - - - - - SE_P3-IEC_61850:2020A - - - - - Dynamic mode - - - - SE_P3-IEC_61850:2020A - - - - - - A - - - - - 0.1 - - - - - 2000.0 - - - - - 0.05 - - - - Dynamic threshold - - - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - 0.0 - - - - - 300.0 - - - - - 0.01 - - - - Dynamic operate delay - - - - - - SE_P3-IEC_61850:2020A - - - - - - 0.02 - - - - - 20.0 - - - - - 0.001 - - - - Dynamic TMS - - - - - - SE_P3-IEC_61850:2020A - - - - - Enable faulty phase detection - - - 0 - - - SE_P3-IEC_61850:2020A - - - - - - - - - - - 1 - - - - - 30 - - - - - 1 - - - - Phase currents change limit - - - - 15 - - - - SE_P3-IEC_61850:2020A - - - - - Enable IN> - - - - SE_P3-IEC_61850:2020A - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - Dir. E/F overcurrent IN>2 - - - - - Direction mode - - - - SE_P3-IEC_61850:2020A - - - - - - A - - - - - 0.1 - - - - - 2000.0 - - - - - 0.05 - - - - IN pick-up value - - - - - - - - - V - - - - - 173.205 - - - - - 17320.508 - - - - - 173.205 - - - - VN pick-up value - - - - - - SE_P3-IEC_61850:2020A - - - - - - deg - - - - - - - - -180 - - - - - 179 - - - - - 1 - - - - Angle offset - - - - - - SE_P3-IEC_61850:2020A - - - - - - deg - - - - - - - - 10 - - - - - 170 - - - - - 1 - - - - Pick up sector size - - - - - - SE_P3-IEC_61850:2020A - - - - - Operating curve - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - 0.0 - - - - - 300.0 - - - - - 0.01 - - - - Operate delay - - - - - - SE_P3-IEC_61850:2020A - - - - - - 0.02 - - - - - 20.0 - - - - - 0.001 - - - - TMS - - - - - - - - Reset curve - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - 0.0 - - - - - 100.0 - - - - - 0.01 - - - - Reset delay - - - - - - SE_P3-IEC_61850:2020A - - - - - 0 - - - 1000 - - - 10 - - - DT adder - - - - SE_P3-IEC_61850:2020A - - - - - 0 - - - 10000 - - - 10 - - - Minimum operate delay - - - - - - IN input - - - 0 - - - SE_P3-IEC_61850:2020A - - - - - VN input mode - - - - SE_P3-IEC_61850:2020A - - - - - VTS blocking - - - - SE_P3-IEC_61850:2020A - - - - - Inrush blocking - - - - SE_P3-IEC_61850:2020A - - - - - SOL status - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - 0.0 - - - - - 300.0 - - - - - 0.01 - - - - SOL operate delay - - - - - - SE_P3-IEC_61850:2020A - - - - - - 0.02 - - - - - 20.0 - - - - - 0.001 - - - - SOL TMS - - - - - - SE_P3-IEC_61850:2020A - - - - - Dynamic mode - - - - SE_P3-IEC_61850:2020A - - - - - - A - - - - - 0.1 - - - - - 2000.0 - - - - - 0.05 - - - - Dynamic threshold - - - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - 0.0 - - - - - 300.0 - - - - - 0.01 - - - - Dynamic operate delay - - - - - - SE_P3-IEC_61850:2020A - - - - - - 0.02 - - - - - 20.0 - - - - - 0.001 - - - - Dynamic TMS - - - - - - SE_P3-IEC_61850:2020A - - - - - Enable faulty phase detection - - - 0 - - - SE_P3-IEC_61850:2020A - - - - - - - - - - - 1 - - - - - 30 - - - - - 1 - - - - Phase currents change limit - - - - 15 - - - - SE_P3-IEC_61850:2020A - - - - - Enable IN> - - - - SE_P3-IEC_61850:2020A - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - Dir. E/F overcurrent IN>3 - - - - - Direction mode - - - - SE_P3-IEC_61850:2020A - - - - - - A - - - - - 0.1 - - - - - 2000.0 - - - - - 0.05 - - - - IN pick-up value - - - - - - - - - V - - - - - 173.205 - - - - - 17320.508 - - - - - 173.205 - - - - VN pick-up value - - - - - - SE_P3-IEC_61850:2020A - - - - - - deg - - - - - - - - -180 - - - - - 179 - - - - - 1 - - - - Angle offset - - - - - - SE_P3-IEC_61850:2020A - - - - - - deg - - - - - - - - 10 - - - - - 170 - - - - - 1 - - - - Pick up sector size - - - - - - SE_P3-IEC_61850:2020A - - - - - Operating curve - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - 0.0 - - - - - 300.0 - - - - - 0.01 - - - - Operate delay - - - - - - SE_P3-IEC_61850:2020A - - - - - - 0.02 - - - - - 20.0 - - - - - 0.001 - - - - TMS - - - - - - - - Reset curve - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - 0.0 - - - - - 100.0 - - - - - 0.01 - - - - Reset delay - - - - - - SE_P3-IEC_61850:2020A - - - - - 0 - - - 1000 - - - 10 - - - DT adder - - - - SE_P3-IEC_61850:2020A - - - - - 0 - - - 10000 - - - 10 - - - Minimum operate delay - - - - - - IN input - - - 0 - - - SE_P3-IEC_61850:2020A - - - - - VN input mode - - - - SE_P3-IEC_61850:2020A - - - - - VTS blocking - - - - SE_P3-IEC_61850:2020A - - - - - Inrush blocking - - - - SE_P3-IEC_61850:2020A - - - - - SOL status - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - 0.0 - - - - - 300.0 - - - - - 0.01 - - - - SOL operate delay - - - - - - SE_P3-IEC_61850:2020A - - - - - - 0.02 - - - - - 20.0 - - - - - 0.001 - - - - SOL TMS - - - - - - SE_P3-IEC_61850:2020A - - - - - Dynamic mode - - - - SE_P3-IEC_61850:2020A - - - - - - A - - - - - 0.1 - - - - - 2000.0 - - - - - 0.05 - - - - Dynamic threshold - - - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - 0.0 - - - - - 300.0 - - - - - 0.01 - - - - Dynamic operate delay - - - - - - SE_P3-IEC_61850:2020A - - - - - - 0.02 - - - - - 20.0 - - - - - 0.001 - - - - Dynamic TMS - - - - - - SE_P3-IEC_61850:2020A - - - - - Enable faulty phase detection - - - 0 - - - SE_P3-IEC_61850:2020A - - - - - - - - - - - 1 - - - - - 30 - - - - - 1 - - - - Phase currents change limit - - - - 15 - - - - SE_P3-IEC_61850:2020A - - - - - Enable IN> - - - - SE_P3-IEC_61850:2020A - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - Dir. E/F overcurrent IN>4 - - - - - Direction mode - - - - SE_P3-IEC_61850:2020A - - - - - - A - - - - - 0.1 - - - - - 2000.0 - - - - - 0.05 - - - - IN pick-up value - - - - - - - - - V - - - - - 173.205 - - - - - 17320.508 - - - - - 173.205 - - - - VN pick-up value - - - - - - SE_P3-IEC_61850:2020A - - - - - - deg - - - - - - - - -180 - - - - - 179 - - - - - 1 - - - - Angle offset - - - - - - SE_P3-IEC_61850:2020A - - - - - - deg - - - - - - - - 10 - - - - - 170 - - - - - 1 - - - - Pick up sector size - - - - - - SE_P3-IEC_61850:2020A - - - - - Operating curve - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - 0.0 - - - - - 300.0 - - - - - 0.01 - - - - Operate delay - - - - - - SE_P3-IEC_61850:2020A - - - - - - 0.02 - - - - - 20.0 - - - - - 0.001 - - - - TMS - - - - - - - - Reset curve - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - 0.0 - - - - - 100.0 - - - - - 0.01 - - - - Reset delay - - - - - - SE_P3-IEC_61850:2020A - - - - - 0 - - - 1000 - - - 10 - - - DT adder - - - - SE_P3-IEC_61850:2020A - - - - - 0 - - - 10000 - - - 10 - - - Minimum operate delay - - - - - - IN input - - - 0 - - - SE_P3-IEC_61850:2020A - - - - - VN input mode - - - - SE_P3-IEC_61850:2020A - - - - - VTS blocking - - - - SE_P3-IEC_61850:2020A - - - - - Inrush blocking - - - - SE_P3-IEC_61850:2020A - - - - - SOL status - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - 0.0 - - - - - 300.0 - - - - - 0.01 - - - - SOL operate delay - - - - - - SE_P3-IEC_61850:2020A - - - - - - 0.02 - - - - - 20.0 - - - - - 0.001 - - - - SOL TMS - - - - - - SE_P3-IEC_61850:2020A - - - - - Dynamic mode - - - - SE_P3-IEC_61850:2020A - - - - - - A - - - - - 0.1 - - - - - 2000.0 - - - - - 0.05 - - - - Dynamic threshold - - - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - 0.0 - - - - - 300.0 - - - - - 0.01 - - - - Dynamic operate delay - - - - - - SE_P3-IEC_61850:2020A - - - - - - 0.02 - - - - - 20.0 - - - - - 0.001 - - - - Dynamic TMS - - - - - - SE_P3-IEC_61850:2020A - - - - - Enable faulty phase detection - - - 0 - - - SE_P3-IEC_61850:2020A - - - - - - - - - - - 1 - - - - - 30 - - - - - 1 - - - - Phase currents change limit - - - - 15 - - - - SE_P3-IEC_61850:2020A - - - - - Enable IN> - - - - SE_P3-IEC_61850:2020A - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - Dir. E/F overcurrent IN>5 - - - - - Direction mode - - - - SE_P3-IEC_61850:2020A - - - - - - A - - - - - 0.1 - - - - - 2000.0 - - - - - 0.05 - - - - IN pick-up value - - - - - - - - - V - - - - - 173.205 - - - - - 17320.508 - - - - - 173.205 - - - - VN pick-up value - - - - - - SE_P3-IEC_61850:2020A - - - - - - deg - - - - - - - - -180 - - - - - 179 - - - - - 1 - - - - Angle offset - - - - - - SE_P3-IEC_61850:2020A - - - - - - deg - - - - - - - - 10 - - - - - 170 - - - - - 1 - - - - Pick up sector size - - - - - - SE_P3-IEC_61850:2020A - - - - - Operating curve - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - 0.0 - - - - - 300.0 - - - - - 0.01 - - - - Operate delay - - - - - - SE_P3-IEC_61850:2020A - - - - - - 0.02 - - - - - 20.0 - - - - - 0.001 - - - - TMS - - - - - - - - Reset curve - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - 0.0 - - - - - 100.0 - - - - - 0.01 - - - - Reset delay - - - - - - SE_P3-IEC_61850:2020A - - - - - 0 - - - 1000 - - - 10 - - - DT adder - - - - SE_P3-IEC_61850:2020A - - - - - 0 - - - 10000 - - - 10 - - - Minimum operate delay - - - - - - IN input - - - 0 - - - SE_P3-IEC_61850:2020A - - - - - VN input mode - - - - SE_P3-IEC_61850:2020A - - - - - VTS blocking - - - - SE_P3-IEC_61850:2020A - - - - - Inrush blocking - - - - SE_P3-IEC_61850:2020A - - - - - SOL status - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - 0.0 - - - - - 300.0 - - - - - 0.01 - - - - SOL operate delay - - - - - - SE_P3-IEC_61850:2020A - - - - - - 0.02 - - - - - 20.0 - - - - - 0.001 - - - - SOL TMS - - - - - - SE_P3-IEC_61850:2020A - - - - - Dynamic mode - - - - SE_P3-IEC_61850:2020A - - - - - - A - - - - - 0.1 - - - - - 2000.0 - - - - - 0.05 - - - - Dynamic threshold - - - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - 0.0 - - - - - 300.0 - - - - - 0.01 - - - - Dynamic operate delay - - - - - - SE_P3-IEC_61850:2020A - - - - - - 0.02 - - - - - 20.0 - - - - - 0.001 - - - - Dynamic TMS - - - - - - SE_P3-IEC_61850:2020A - - - - - Enable faulty phase detection - - - 0 - - - SE_P3-IEC_61850:2020A - - - - - - - - - - - 1 - - - - - 30 - - - - - 1 - - - - Phase currents change limit - - - - 15 - - - - SE_P3-IEC_61850:2020A - - - - - Enable IN> - - - - SE_P3-IEC_61850:2020A - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - Dir. E/F overcurrent IN>6 - - - - - Direction mode - - - - SE_P3-IEC_61850:2020A - - - - - - A - - - - - 0.1 - - - - - 2000.0 - - - - - 0.05 - - - - IN pick-up value - - - - - - - - - V - - - - - 173.205 - - - - - 17320.508 - - - - - 173.205 - - - - VN pick-up value - - - - - - SE_P3-IEC_61850:2020A - - - - - - deg - - - - - - - - -180 - - - - - 179 - - - - - 1 - - - - Angle offset - - - - - - SE_P3-IEC_61850:2020A - - - - - - deg - - - - - - - - 10 - - - - - 170 - - - - - 1 - - - - Pick up sector size - - - - - - SE_P3-IEC_61850:2020A - - - - - Operating curve - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - 0.0 - - - - - 300.0 - - - - - 0.01 - - - - Operate delay - - - - - - SE_P3-IEC_61850:2020A - - - - - - 0.02 - - - - - 20.0 - - - - - 0.001 - - - - TMS - - - - - - - - Reset curve - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - 0.0 - - - - - 100.0 - - - - - 0.01 - - - - Reset delay - - - - - - SE_P3-IEC_61850:2020A - - - - - 0 - - - 1000 - - - 10 - - - DT adder - - - - SE_P3-IEC_61850:2020A - - - - - 0 - - - 10000 - - - 10 - - - Minimum operate delay - - - - - - IN input - - - 0 - - - SE_P3-IEC_61850:2020A - - - - - VN input mode - - - - SE_P3-IEC_61850:2020A - - - - - VTS blocking - - - - SE_P3-IEC_61850:2020A - - - - - Inrush blocking - - - - SE_P3-IEC_61850:2020A - - - - - SOL status - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - 0.0 - - - - - 300.0 - - - - - 0.01 - - - - SOL operate delay - - - - - - SE_P3-IEC_61850:2020A - - - - - - 0.02 - - - - - 20.0 - - - - - 0.001 - - - - SOL TMS - - - - - - SE_P3-IEC_61850:2020A - - - - - Dynamic mode - - - - SE_P3-IEC_61850:2020A - - - - - - A - - - - - 0.1 - - - - - 2000.0 - - - - - 0.05 - - - - Dynamic threshold - - - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - 0.0 - - - - - 300.0 - - - - - 0.01 - - - - Dynamic operate delay - - - - - - SE_P3-IEC_61850:2020A - - - - - - 0.02 - - - - - 20.0 - - - - - 0.001 - - - - Dynamic TMS - - - - - - SE_P3-IEC_61850:2020A - - - - - Enable faulty phase detection - - - 0 - - - SE_P3-IEC_61850:2020A - - - - - - - - - - - 1 - - - - - 30 - - - - - 1 - - - - Phase currents change limit - - - - 15 - - - - SE_P3-IEC_61850:2020A - - - - - Enable IN> - - - - SE_P3-IEC_61850:2020A - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - Capacitor unbalance Icap>1 - - - - - Enable Icap> - - - - SE_P3-IEC_61850:2020A - - - - - - A - - - - - - - - 1.0 - - - - - 1000.0 - - - - - 0.5 - - - - Pick-up value - - - - - - - - 0 - - - 300000 - - - 10 - - - Operate delay - - - - - - IN input - - - 0 - - - SE_P3-IEC_61850:2020A - - - - - Compensation mode - - - 0 - - - SE_P3-IEC_61850:2020A - - - - - - A - - - - - - - - 0.5 - - - - - 150.0 - - - - - 0.05 - - - - Compensation current - - - - 2.5 - - - - SE_P3-IEC_61850:2020A - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - Capacitor unbalance Icap>2 - - - - - Enable Icap> - - - - SE_P3-IEC_61850:2020A - - - - - - A - - - - - - - - 1.0 - - - - - 1000.0 - - - - - 0.5 - - - - Pick-up value - - - - - - - - 0 - - - 300000 - - - 10 - - - Operate delay - - - - - - IN input - - - 0 - - - SE_P3-IEC_61850:2020A - - - - - Compensation mode - - - 0 - - - SE_P3-IEC_61850:2020A - - - - - - A - - - - - - - - 0.5 - - - - - 150.0 - - - - - 0.05 - - - - Compensation current - - - - 2.5 - - - - SE_P3-IEC_61850:2020A - - - - - 0 - - - 10 - - - 1 - - - Max allowed faults - - - 0 - - - SE_P3-IEC_61850:2020A - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - Phase overcurrent I>1 - - - - - - A - - - - - 75.0 - - - - - 60000.0 - - - - - 15.0 - - - - Pick-up value - - - - - - - - Operating curve - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - 0.0 - - - - - 600.0 - - - - - 0.01 - - - - Operate delay - - - - - - SE_P3-IEC_61850:2020A - - - - - - 0.02 - - - - - 20.0 - - - - - 0.001 - - - - TMS - - - - - - - - Reset curve - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - 0.0 - - - - - 100.0 - - - - - 0.01 - - - - Reset delay - - - - - - SE_P3-IEC_61850:2020A - - - - - Inrush blocking - - - - SE_P3-IEC_61850:2020A - - - - - SOL status - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - 0.0 - - - - - 600.0 - - - - - 0.01 - - - - SOL operate delay - - - - - - SE_P3-IEC_61850:2020A - - - - - - 0.02 - - - - - 20.0 - - - - - 0.001 - - - - SOL TMS - - - - - - SE_P3-IEC_61850:2020A - - - - - Dynamic mode - - - - SE_P3-IEC_61850:2020A - - - - - - A - - - - - 75.0 - - - - - 60000.0 - - - - - 15.0 - - - - Dynamic threshold - - - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - 0.0 - - - - - 600.0 - - - - - 0.01 - - - - Dynamic operate delay - - - - - - SE_P3-IEC_61850:2020A - - - - - - 0.02 - - - - - 20.0 - - - - - 0.001 - - - - Dynamic TMS - - - - - - SE_P3-IEC_61850:2020A - - - - - Enable I> - - - - SE_P3-IEC_61850:2020A - - - - - Direction mode - - - - SE_P3-IEC_61850:2020A - - - - - - deg - - - - - - - - -95 - - - - - 95 - - - - - 1 - - - - Characteristic angle - - - - - - SE_P3-IEC_61850:2020A - - - - - VTS blocking - - - - SE_P3-IEC_61850:2020A - - - - - Tripping logic - - - - SE_P3-IEC_61850:2020A - - - - - 0 - - - 1000 - - - 10 - - - DT adder - - - - SE_P3-IEC_61850:2020A - - - - - 0 - - - 10000 - - - 10 - - - Minimum operate delay - - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - Phase overcurrent I>2 - - - - - - A - - - - - 75.0 - - - - - 60000.0 - - - - - 15.0 - - - - Pick-up value - - - - - - - - Operating curve - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - 0.0 - - - - - 600.0 - - - - - 0.01 - - - - Operate delay - - - - - - SE_P3-IEC_61850:2020A - - - - - - 0.02 - - - - - 20.0 - - - - - 0.001 - - - - TMS - - - - - - - - Reset curve - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - 0.0 - - - - - 100.0 - - - - - 0.01 - - - - Reset delay - - - - - - SE_P3-IEC_61850:2020A - - - - - Inrush blocking - - - - SE_P3-IEC_61850:2020A - - - - - SOL status - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - 0.0 - - - - - 600.0 - - - - - 0.01 - - - - SOL operate delay - - - - - - SE_P3-IEC_61850:2020A - - - - - - 0.02 - - - - - 20.0 - - - - - 0.001 - - - - SOL TMS - - - - - - SE_P3-IEC_61850:2020A - - - - - Dynamic mode - - - - SE_P3-IEC_61850:2020A - - - - - - A - - - - - 75.0 - - - - - 60000.0 - - - - - 15.0 - - - - Dynamic threshold - - - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - 0.0 - - - - - 600.0 - - - - - 0.01 - - - - Dynamic operate delay - - - - - - SE_P3-IEC_61850:2020A - - - - - - 0.02 - - - - - 20.0 - - - - - 0.001 - - - - Dynamic TMS - - - - - - SE_P3-IEC_61850:2020A - - - - - Enable I> - - - - SE_P3-IEC_61850:2020A - - - - - Direction mode - - - - SE_P3-IEC_61850:2020A - - - - - - deg - - - - - - - - -95 - - - - - 95 - - - - - 1 - - - - Characteristic angle - - - - - - SE_P3-IEC_61850:2020A - - - - - VTS blocking - - - - SE_P3-IEC_61850:2020A - - - - - Tripping logic - - - - SE_P3-IEC_61850:2020A - - - - - 0 - - - 1000 - - - 10 - - - DT adder - - - - SE_P3-IEC_61850:2020A - - - - - 0 - - - 10000 - - - 10 - - - Minimum operate delay - - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - Phase overcurrent I>3 - - - - - - A - - - - - 75.0 - - - - - 60000.0 - - - - - 15.0 - - - - Pick-up value - - - - - - - - Operating curve - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - 0.0 - - - - - 600.0 - - - - - 0.01 - - - - Operate delay - - - - - - SE_P3-IEC_61850:2020A - - - - - - 0.02 - - - - - 20.0 - - - - - 0.001 - - - - TMS - - - - - - - - Reset curve - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - 0.0 - - - - - 100.0 - - - - - 0.01 - - - - Reset delay - - - - - - SE_P3-IEC_61850:2020A - - - - - Inrush blocking - - - - SE_P3-IEC_61850:2020A - - - - - SOL status - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - 0.0 - - - - - 600.0 - - - - - 0.01 - - - - SOL operate delay - - - - - - SE_P3-IEC_61850:2020A - - - - - - 0.02 - - - - - 20.0 - - - - - 0.001 - - - - SOL TMS - - - - - - SE_P3-IEC_61850:2020A - - - - - Dynamic mode - - - - SE_P3-IEC_61850:2020A - - - - - - A - - - - - 75.0 - - - - - 60000.0 - - - - - 15.0 - - - - Dynamic threshold - - - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - 0.0 - - - - - 600.0 - - - - - 0.01 - - - - Dynamic operate delay - - - - - - SE_P3-IEC_61850:2020A - - - - - - 0.02 - - - - - 20.0 - - - - - 0.001 - - - - Dynamic TMS - - - - - - SE_P3-IEC_61850:2020A - - - - - Enable I> - - - - SE_P3-IEC_61850:2020A - - - - - Direction mode - - - - SE_P3-IEC_61850:2020A - - - - - - deg - - - - - - - - -95 - - - - - 95 - - - - - 1 - - - - Characteristic angle - - - - - - SE_P3-IEC_61850:2020A - - - - - VTS blocking - - - - SE_P3-IEC_61850:2020A - - - - - Tripping logic - - - - SE_P3-IEC_61850:2020A - - - - - 0 - - - 1000 - - - 10 - - - DT adder - - - - SE_P3-IEC_61850:2020A - - - - - 0 - - - 10000 - - - 10 - - - Minimum operate delay - - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - Phase overcurrent I>4 - - - - - - A - - - - - 75.0 - - - - - 60000.0 - - - - - 15.0 - - - - Pick-up value - - - - - - - - Operating curve - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - 0.0 - - - - - 600.0 - - - - - 0.01 - - - - Operate delay - - - - - - SE_P3-IEC_61850:2020A - - - - - - 0.02 - - - - - 20.0 - - - - - 0.001 - - - - TMS - - - - - - - - Reset curve - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - 0.0 - - - - - 100.0 - - - - - 0.01 - - - - Reset delay - - - - - - SE_P3-IEC_61850:2020A - - - - - Inrush blocking - - - - SE_P3-IEC_61850:2020A - - - - - SOL status - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - 0.0 - - - - - 600.0 - - - - - 0.01 - - - - SOL operate delay - - - - - - SE_P3-IEC_61850:2020A - - - - - - 0.02 - - - - - 20.0 - - - - - 0.001 - - - - SOL TMS - - - - - - SE_P3-IEC_61850:2020A - - - - - Dynamic mode - - - - SE_P3-IEC_61850:2020A - - - - - - A - - - - - 75.0 - - - - - 60000.0 - - - - - 15.0 - - - - Dynamic threshold - - - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - 0.0 - - - - - 600.0 - - - - - 0.01 - - - - Dynamic operate delay - - - - - - SE_P3-IEC_61850:2020A - - - - - - 0.02 - - - - - 20.0 - - - - - 0.001 - - - - Dynamic TMS - - - - - - SE_P3-IEC_61850:2020A - - - - - Enable I> - - - - SE_P3-IEC_61850:2020A - - - - - Direction mode - - - - SE_P3-IEC_61850:2020A - - - - - - deg - - - - - - - - -95 - - - - - 95 - - - - - 1 - - - - Characteristic angle - - - - - - SE_P3-IEC_61850:2020A - - - - - VTS blocking - - - - SE_P3-IEC_61850:2020A - - - - - Tripping logic - - - - SE_P3-IEC_61850:2020A - - - - - 0 - - - 1000 - - - 10 - - - DT adder - - - - SE_P3-IEC_61850:2020A - - - - - 0 - - - 10000 - - - 10 - - - Minimum operate delay - - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - Phase overcurrent I>5 - - - - - - A - - - - - 75.0 - - - - - 60000.0 - - - - - 15.0 - - - - Pick-up value - - - - - - - - Operating curve - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - 0.0 - - - - - 600.0 - - - - - 0.01 - - - - Operate delay - - - - - - SE_P3-IEC_61850:2020A - - - - - - 0.02 - - - - - 20.0 - - - - - 0.001 - - - - TMS - - - - - - - - Reset curve - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - 0.0 - - - - - 100.0 - - - - - 0.01 - - - - Reset delay - - - - - - SE_P3-IEC_61850:2020A - - - - - Inrush blocking - - - - SE_P3-IEC_61850:2020A - - - - - SOL status - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - 0.0 - - - - - 600.0 - - - - - 0.01 - - - - SOL operate delay - - - - - - SE_P3-IEC_61850:2020A - - - - - - 0.02 - - - - - 20.0 - - - - - 0.001 - - - - SOL TMS - - - - - - SE_P3-IEC_61850:2020A - - - - - Dynamic mode - - - - SE_P3-IEC_61850:2020A - - - - - - A - - - - - 75.0 - - - - - 60000.0 - - - - - 15.0 - - - - Dynamic threshold - - - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - 0.0 - - - - - 600.0 - - - - - 0.01 - - - - Dynamic operate delay - - - - - - SE_P3-IEC_61850:2020A - - - - - - 0.02 - - - - - 20.0 - - - - - 0.001 - - - - Dynamic TMS - - - - - - SE_P3-IEC_61850:2020A - - - - - Enable I> - - - - SE_P3-IEC_61850:2020A - - - - - Direction mode - - - - SE_P3-IEC_61850:2020A - - - - - - deg - - - - - - - - -95 - - - - - 95 - - - - - 1 - - - - Characteristic angle - - - - - - SE_P3-IEC_61850:2020A - - - - - VTS blocking - - - - SE_P3-IEC_61850:2020A - - - - - Tripping logic - - - - SE_P3-IEC_61850:2020A - - - - - 0 - - - 1000 - - - 10 - - - DT adder - - - - SE_P3-IEC_61850:2020A - - - - - 0 - - - 10000 - - - 10 - - - Minimum operate delay - - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - Phase overcurrent I>6 - - - - - - A - - - - - 75.0 - - - - - 60000.0 - - - - - 15.0 - - - - Pick-up value - - - - - - - - Operating curve - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - 0.0 - - - - - 600.0 - - - - - 0.01 - - - - Operate delay - - - - - - SE_P3-IEC_61850:2020A - - - - - - 0.02 - - - - - 20.0 - - - - - 0.001 - - - - TMS - - - - - - - - Reset curve - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - 0.0 - - - - - 100.0 - - - - - 0.01 - - - - Reset delay - - - - - - SE_P3-IEC_61850:2020A - - - - - Inrush blocking - - - - SE_P3-IEC_61850:2020A - - - - - SOL status - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - 0.0 - - - - - 600.0 - - - - - 0.01 - - - - SOL operate delay - - - - - - SE_P3-IEC_61850:2020A - - - - - - 0.02 - - - - - 20.0 - - - - - 0.001 - - - - SOL TMS - - - - - - SE_P3-IEC_61850:2020A - - - - - Dynamic mode - - - - SE_P3-IEC_61850:2020A - - - - - - A - - - - - 75.0 - - - - - 60000.0 - - - - - 15.0 - - - - Dynamic threshold - - - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - 0.0 - - - - - 600.0 - - - - - 0.01 - - - - Dynamic operate delay - - - - - - SE_P3-IEC_61850:2020A - - - - - - 0.02 - - - - - 20.0 - - - - - 0.001 - - - - Dynamic TMS - - - - - - SE_P3-IEC_61850:2020A - - - - - Enable I> - - - - SE_P3-IEC_61850:2020A - - - - - Direction mode - - - - SE_P3-IEC_61850:2020A - - - - - - deg - - - - - - - - -95 - - - - - 95 - - - - - 1 - - - - Characteristic angle - - - - - - SE_P3-IEC_61850:2020A - - - - - VTS blocking - - - - SE_P3-IEC_61850:2020A - - - - - Tripping logic - - - - SE_P3-IEC_61850:2020A - - - - - 0 - - - 1000 - - - 10 - - - DT adder - - - - SE_P3-IEC_61850:2020A - - - - - 0 - - - 10000 - - - 10 - - - Minimum operate delay - - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - Broken conductor I2/I1>1 - - - - - - 2 - - - - - 70 - - - - - 1 - - - - Pick-up value K2 - - - - - - - - - s - - - - - 0.0 - - - - - 300.0 - - - - - 0.01 - - - - Operate delay - - - - - - SE_P3-IEC_61850:2020A - - - - - Enable I2/I1> - - - - SE_P3-IEC_61850:2020A - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - Broken conductor I2/I1>2 - - - - - - 2 - - - - - 70 - - - - - 1 - - - - Pick-up value K2 - - - - - - - - - s - - - - - 0.0 - - - - - 300.0 - - - - - 0.01 - - - - Operate delay - - - - - - SE_P3-IEC_61850:2020A - - - - - Enable I2/I1> - - - - SE_P3-IEC_61850:2020A - - - - - - - status-only - - - - - - 35 - - - - - - Schneider Electric - - - V02 - - - 5th harmonic detection Ih5>1 - - - - - 30 - - - - - 0 - - - SE_P3-IEC_61850:2020A - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - Negative seq. overcurrent I2>1 - - - - - - A - - - - - 30.0 - - - - - 7500.0 - - - - - 15.0 - - - - Pick-up value - - - - - - - - Operating curve - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - 0.0 - - - - - 300.0 - - - - - 0.01 - - - - Operate delay - - - - - - SE_P3-IEC_61850:2020A - - - - - - 0.02 - - - - - 20.0 - - - - - 0.001 - - - - TMS - - - - - - - - Reset curve - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - 0.03 - - - - - 100.0 - - - - - 0.01 - - - - Reset delay - - - - - - SE_P3-IEC_61850:2020A - - - - - 0 - - - 1000 - - - 10 - - - DT adder - - - - SE_P3-IEC_61850:2020A - - - - - 0 - - - 10000 - - - 10 - - - Minimum operate delay - - - - - - Enable I2> - - - - SE_P3-IEC_61850:2020A - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - Negative seq. overcurrent I2>2 - - - - - - A - - - - - 30.0 - - - - - 7500.0 - - - - - 15.0 - - - - Pick-up value - - - - - - - - Operating curve - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - 0.0 - - - - - 300.0 - - - - - 0.01 - - - - Operate delay - - - - - - SE_P3-IEC_61850:2020A - - - - - - 0.02 - - - - - 20.0 - - - - - 0.001 - - - - TMS - - - - - - - - Reset curve - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - 0.03 - - - - - 100.0 - - - - - 0.01 - - - - Reset delay - - - - - - SE_P3-IEC_61850:2020A - - - - - 0 - - - 1000 - - - 10 - - - DT adder - - - - SE_P3-IEC_61850:2020A - - - - - 0 - - - 10000 - - - 10 - - - Minimum operate delay - - - - - - Enable I2> - - - - SE_P3-IEC_61850:2020A - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - ROCOF df/dt>1 81R - - - - - - 0.1 - - - - - 10.0 - - - - - 0.01 - - - - Pick-up value - - - - - - - - - 0.1 - - - - - 20.0 - - - - - 0.01 - - - - df/dt blocking - - - - - - - - 0 - - - 100000 - - - 10 - - - Operate delay - - - - - - 0 - - - 1000 - - - 10 - - - Reset delay - - - - - - Enable df/dt> - - - - SE_P3-IEC_61850:2020A - - - - - Direction mode - - - - SE_P3-IEC_61850:2020A - - - - - Operating Mode - - - - SE_P3-IEC_61850:2020A - - - - - - Hz - - - - - - - - 40.0 - - - - - 65.0 - - - - - 0.01 - - - - Frequency threshold - - - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - - - - 0.05 - - - - - 1.0 - - - - - 0.005 - - - - Meas. time window - - - - - - SE_P3-IEC_61850:2020A - - - - - - V - - - - - - - - 577.35 - - - - - 5773.503 - - - - - 57.735 - - - - Undervoltage blocking - - - - - - SE_P3-IEC_61850:2020A - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - ROCOF df/dt>2 81R - - - - - - 0.1 - - - - - 10.0 - - - - - 0.01 - - - - Pick-up value - - - - - - - - - 0.1 - - - - - 20.0 - - - - - 0.01 - - - - df/dt blocking - - - - - - - - 0 - - - 100000 - - - 10 - - - Operate delay - - - - - - 0 - - - 1000 - - - 10 - - - Reset delay - - - - - - Enable df/dt> - - - - SE_P3-IEC_61850:2020A - - - - - Direction mode - - - - SE_P3-IEC_61850:2020A - - - - - Operating Mode - - - - SE_P3-IEC_61850:2020A - - - - - - Hz - - - - - - - - 40.0 - - - - - 65.0 - - - - - 0.01 - - - - Frequency threshold - - - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - - - - 0.05 - - - - - 1.0 - - - - - 0.005 - - - - Meas. time window - - - - - - SE_P3-IEC_61850:2020A - - - - - - V - - - - - - - - 577.35 - - - - - 5773.503 - - - - - 57.735 - - - - Undervoltage blocking - - - - - - SE_P3-IEC_61850:2020A - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - ROCOF df/dt>3 81R - - - - - - 0.1 - - - - - 10.0 - - - - - 0.01 - - - - Pick-up value - - - - - - - - - 0.1 - - - - - 20.0 - - - - - 0.01 - - - - df/dt blocking - - - - - - - - 0 - - - 100000 - - - 10 - - - Operate delay - - - - - - 0 - - - 1000 - - - 10 - - - Reset delay - - - - - - Enable df/dt> - - - - SE_P3-IEC_61850:2020A - - - - - Direction mode - - - - SE_P3-IEC_61850:2020A - - - - - Operating Mode - - - - SE_P3-IEC_61850:2020A - - - - - - Hz - - - - - - - - 40.0 - - - - - 65.0 - - - - - 0.01 - - - - Frequency threshold - - - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - - - - 0.05 - - - - - 1.0 - - - - - 0.005 - - - - Meas. time window - - - - - - SE_P3-IEC_61850:2020A - - - - - - V - - - - - - - - 577.35 - - - - - 5773.503 - - - - - 57.735 - - - - Undervoltage blocking - - - - - - SE_P3-IEC_61850:2020A - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - ROCOF df/dt>4 81R - - - - - - 0.1 - - - - - 10.0 - - - - - 0.01 - - - - Pick-up value - - - - - - - - - 0.1 - - - - - 20.0 - - - - - 0.01 - - - - df/dt blocking - - - - - - - - 0 - - - 100000 - - - 10 - - - Operate delay - - - - - - 0 - - - 1000 - - - 10 - - - Reset delay - - - - - - Enable df/dt> - - - - SE_P3-IEC_61850:2020A - - - - - Direction mode - - - - SE_P3-IEC_61850:2020A - - - - - Operating Mode - - - - SE_P3-IEC_61850:2020A - - - - - - Hz - - - - - - - - 40.0 - - - - - 65.0 - - - - - 0.01 - - - - Frequency threshold - - - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - - - - 0.05 - - - - - 1.0 - - - - - 0.005 - - - - Meas. time window - - - - - - SE_P3-IEC_61850:2020A - - - - - - V - - - - - - - - 577.35 - - - - - 5773.503 - - - - - 57.735 - - - - Undervoltage blocking - - - - - - SE_P3-IEC_61850:2020A - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - ROCOF df/dt>5 81R - - - - - - 0.1 - - - - - 10.0 - - - - - 0.01 - - - - Pick-up value - - - - - - - - - 0.1 - - - - - 20.0 - - - - - 0.01 - - - - df/dt blocking - - - - - - - - 0 - - - 100000 - - - 10 - - - Operate delay - - - - - - 0 - - - 1000 - - - 10 - - - Reset delay - - - - - - Enable df/dt> - - - - SE_P3-IEC_61850:2020A - - - - - Direction mode - - - - SE_P3-IEC_61850:2020A - - - - - Operating Mode - - - - SE_P3-IEC_61850:2020A - - - - - - Hz - - - - - - - - 40.0 - - - - - 65.0 - - - - - 0.01 - - - - Frequency threshold - - - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - - - - 0.05 - - - - - 1.0 - - - - - 0.005 - - - - Meas. time window - - - - - - SE_P3-IEC_61850:2020A - - - - - - V - - - - - - - - 577.35 - - - - - 5773.503 - - - - - 57.735 - - - - Undervoltage blocking - - - - - - SE_P3-IEC_61850:2020A - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - ROCOF df/dt>6 81R - - - - - - 0.1 - - - - - 10.0 - - - - - 0.01 - - - - Pick-up value - - - - - - - - - 0.1 - - - - - 20.0 - - - - - 0.01 - - - - df/dt blocking - - - - - - - - 0 - - - 100000 - - - 10 - - - Operate delay - - - - - - 0 - - - 1000 - - - 10 - - - Reset delay - - - - - - Enable df/dt> - - - - SE_P3-IEC_61850:2020A - - - - - Direction mode - - - - SE_P3-IEC_61850:2020A - - - - - Operating Mode - - - - SE_P3-IEC_61850:2020A - - - - - - Hz - - - - - - - - 40.0 - - - - - 65.0 - - - - - 0.01 - - - - Frequency threshold - - - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - - - - 0.05 - - - - - 1.0 - - - - - 0.005 - - - - Meas. time window - - - - - - SE_P3-IEC_61850:2020A - - - - - - V - - - - - - - - 577.35 - - - - - 5773.503 - - - - - 57.735 - - - - Undervoltage blocking - - - - - - SE_P3-IEC_61850:2020A - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - ROCOF df/dt>7 81R - - - - - - 0.1 - - - - - 10.0 - - - - - 0.01 - - - - Pick-up value - - - - - - - - - 0.1 - - - - - 20.0 - - - - - 0.01 - - - - df/dt blocking - - - - - - - - 0 - - - 100000 - - - 10 - - - Operate delay - - - - - - 0 - - - 1000 - - - 10 - - - Reset delay - - - - - - Enable df/dt> - - - - SE_P3-IEC_61850:2020A - - - - - Direction mode - - - - SE_P3-IEC_61850:2020A - - - - - Operating Mode - - - - SE_P3-IEC_61850:2020A - - - - - - Hz - - - - - - - - 40.0 - - - - - 65.0 - - - - - 0.01 - - - - Frequency threshold - - - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - - - - 0.05 - - - - - 1.0 - - - - - 0.005 - - - - Meas. time window - - - - - - SE_P3-IEC_61850:2020A - - - - - - V - - - - - - - - 577.35 - - - - - 5773.503 - - - - - 57.735 - - - - Undervoltage blocking - - - - - - SE_P3-IEC_61850:2020A - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - ROCOF df/dt>8 81R - - - - - - 0.1 - - - - - 10.0 - - - - - 0.01 - - - - Pick-up value - - - - - - - - - 0.1 - - - - - 20.0 - - - - - 0.01 - - - - df/dt blocking - - - - - - - - 0 - - - 100000 - - - 10 - - - Operate delay - - - - - - 0 - - - 1000 - - - 10 - - - Reset delay - - - - - - Enable df/dt> - - - - SE_P3-IEC_61850:2020A - - - - - Direction mode - - - - SE_P3-IEC_61850:2020A - - - - - Operating Mode - - - - SE_P3-IEC_61850:2020A - - - - - - Hz - - - - - - - - 40.0 - - - - - 65.0 - - - - - 0.01 - - - - Frequency threshold - - - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - - - - 0.05 - - - - - 1.0 - - - - - 0.005 - - - - Meas. time window - - - - - - SE_P3-IEC_61850:2020A - - - - - - V - - - - - - - - 577.35 - - - - - 5773.503 - - - - - 57.735 - - - - Undervoltage blocking - - - - - - SE_P3-IEC_61850:2020A - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - ROCOF df/dt>9 81R - - - - - - 0.1 - - - - - 10.0 - - - - - 0.01 - - - - Pick-up value - - - - - - - - - 0.1 - - - - - 20.0 - - - - - 0.01 - - - - df/dt blocking - - - - - - - - 0 - - - 100000 - - - 10 - - - Operate delay - - - - - - 0 - - - 1000 - - - 10 - - - Reset delay - - - - - - Enable df/dt> - - - - SE_P3-IEC_61850:2020A - - - - - Direction mode - - - - SE_P3-IEC_61850:2020A - - - - - Operating Mode - - - - SE_P3-IEC_61850:2020A - - - - - - Hz - - - - - - - - 40.0 - - - - - 65.0 - - - - - 0.01 - - - - Frequency threshold - - - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - - - - 0.05 - - - - - 1.0 - - - - - 0.005 - - - - Meas. time window - - - - - - SE_P3-IEC_61850:2020A - - - - - - V - - - - - - - - 577.35 - - - - - 5773.503 - - - - - 57.735 - - - - Undervoltage blocking - - - - - - SE_P3-IEC_61850:2020A - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - Directional power P<1 32 - - - - - - W - - - k - - - - - -51961.523 - - - - - 51961.523 - - - - - 129.903 - - - - Pick-up value - - - - - - - - - s - - - - - 0.0 - - - - - 300.0 - - - - - 0.01 - - - - Operate delay - - - - - - SE_P3-IEC_61850:2020A - - - - - Enable P< - - - - SE_P3-IEC_61850:2020A - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - Directional power P<2 32 - - - - - - W - - - k - - - - - -51961.523 - - - - - 51961.523 - - - - - 129.903 - - - - Pick-up value - - - - - - - - - s - - - - - 0.0 - - - - - 300.0 - - - - - 0.01 - - - - Operate delay - - - - - - SE_P3-IEC_61850:2020A - - - - - Enable P< - - - - SE_P3-IEC_61850:2020A - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - Reactive power Q>1 32 - - - - - - W - - - k - - - - - -51961.523 - - - - - 51961.523 - - - - - 129.903 - - - - Pick-up value - - - - - - - - - s - - - - - 0.0 - - - - - 300.0 - - - - - 0.01 - - - - Operate delay - - - - - - SE_P3-IEC_61850:2020A - - - - - Enable Q> - - - - SE_P3-IEC_61850:2020A - - - - - - deg - - - - - - - - 5 - - - - - 85 - - - - - 1 - - - - Power angle - - - - - - SE_P3-IEC_61850:2020A - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - Overvoltage V>1 - - - - - - V - - - - - - - - 50.0 - - - - - 15000.0 - - - - - 10.0 - - - - Pick-up value - - - - - - - - - s - - - - - - - - 0.0 - - - - - 600.0 - - - - - 0.01 - - - - Operate delay - - - - - - SE_P3-IEC_61850:2020A - - - - - Enable V> - - - - SE_P3-IEC_61850:2020A - - - - - Measurement mode - - - - SE_P3-IEC_61850:2020A - - - - - Operating curve - - - - SE_P3-IEC_61850:2020A - - - - - Tripping logic - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - - - - 0.0 - - - - - 100.0 - - - - - 0.01 - - - - Reset delay - - - - - - SE_P3-IEC_61850:2020A - - - - - - - - - - - 1.0 - - - - - 5.0 - - - - - 0.1 - - - - Hysteresis - - - - - - SE_P3-IEC_61850:2020A - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - Overvoltage V>2 - - - - - - V - - - - - - - - 50.0 - - - - - 15000.0 - - - - - 10.0 - - - - Pick-up value - - - - - - - - - s - - - - - - - - 0.0 - - - - - 600.0 - - - - - 0.01 - - - - Operate delay - - - - - - SE_P3-IEC_61850:2020A - - - - - Enable V> - - - - SE_P3-IEC_61850:2020A - - - - - Measurement mode - - - - SE_P3-IEC_61850:2020A - - - - - Operating curve - - - - SE_P3-IEC_61850:2020A - - - - - Tripping logic - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - - - - 0.0 - - - - - 100.0 - - - - - 0.01 - - - - Reset delay - - - - - - SE_P3-IEC_61850:2020A - - - - - - - - - - - 1.0 - - - - - 5.0 - - - - - 0.1 - - - - Hysteresis - - - - - - SE_P3-IEC_61850:2020A - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - Overvoltage V>3 - - - - - - V - - - - - - - - 50.0 - - - - - 15000.0 - - - - - 10.0 - - - - Pick-up value - - - - - - - - - s - - - - - - - - 0.0 - - - - - 600.0 - - - - - 0.01 - - - - Operate delay - - - - - - SE_P3-IEC_61850:2020A - - - - - Enable V> - - - - SE_P3-IEC_61850:2020A - - - - - Measurement mode - - - - SE_P3-IEC_61850:2020A - - - - - Operating curve - - - - SE_P3-IEC_61850:2020A - - - - - Tripping logic - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - - - - 0.0 - - - - - 100.0 - - - - - 0.01 - - - - Reset delay - - - - - - SE_P3-IEC_61850:2020A - - - - - - - - - - - 1.0 - - - - - 5.0 - - - - - 0.1 - - - - Hysteresis - - - - - - SE_P3-IEC_61850:2020A - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - Neutral overvoltage VN>1 - - - - - Enable VN> - - - - SE_P3-IEC_61850:2020A - - - - - Evaluation VN - - - - SE_P3-IEC_61850:2020A - - - - - - V - - - - - - - - 346.41 - - - - - 25980.762 - - - - - 173.205 - - - - Pick-up value - - - - - - - - 0 - - - 300000 - - - 10 - - - Operate delay - - - - - - 0 - - - 300000 - - - 10 - - - Reset delay - - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - Neutral overvoltage VN>2 - - - - - Enable VN> - - - - SE_P3-IEC_61850:2020A - - - - - Evaluation VN - - - - SE_P3-IEC_61850:2020A - - - - - - V - - - - - - - - 346.41 - - - - - 25980.762 - - - - - 173.205 - - - - Pick-up value - - - - - - - - 0 - - - 300000 - - - 10 - - - Operate delay - - - - - - 0 - - - 300000 - - - 10 - - - Reset delay - - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - Neutral overvoltage VN>3 - - - - - Enable VN> - - - - SE_P3-IEC_61850:2020A - - - - - Evaluation VN - - - - SE_P3-IEC_61850:2020A - - - - - - V - - - - - - - - 346.41 - - - - - 25980.762 - - - - - 173.205 - - - - Pick-up value - - - - - - - - 0 - - - 300000 - - - 10 - - - Operate delay - - - - - - 0 - - - 300000 - - - 10 - - - Reset delay - - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - Negative seq. overvoltage V2>1 - - - - - VTS operating mode - - - - SE_P3-IEC_61850:2020A - - - - - - V - - - - - 57.735 - - - - - 5773.503 - - - - - 57.735 - - - - Pick-up value - - - - - - - - Operating curve - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - 0.0 - - - - - 300.0 - - - - - 0.01 - - - - Operate delay - - - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - 0.03 - - - - - 300.0 - - - - - 0.01 - - - - Reset delay - - - - - - SE_P3-IEC_61850:2020A - - - - - Enable V2> - - - - SE_P3-IEC_61850:2020A - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - Negative seq. overvoltage V2>2 - - - - - VTS operating mode - - - - SE_P3-IEC_61850:2020A - - - - - - V - - - - - 57.735 - - - - - 5773.503 - - - - - 57.735 - - - - Pick-up value - - - - - - - - Operating curve - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - 0.0 - - - - - 300.0 - - - - - 0.01 - - - - Operate delay - - - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - 0.03 - - - - - 300.0 - - - - - 0.01 - - - - Reset delay - - - - - - SE_P3-IEC_61850:2020A - - - - - Enable V2> - - - - SE_P3-IEC_61850:2020A - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - Capacitor overvoltage Vcap>1 - - - - - Enable Vcap> - - - - SE_P3-IEC_61850:2020A - - - - - - F - - - µ - - - - - 1.0 - - - - - 650.0 - - - - - 0.01 - - - - Ph-G capacitance of one phase - - - - 2.0 - - - - SE_P3-IEC_61850:2020A - - - - - - V - - - - - - - - 100 - - - - - 260000 - - - - - 1 - - - - Rated Ph-G voltage Vcap - - - - 7500 - - - - SE_P3-IEC_61850:2020A - - - - - - V - - - - - - - - 750.0 - - - - - 18750.0 - - - - - 75.0 - - - - Pick-up value - - - - - - - - - s - - - - - - - - 0.0 - - - - - 30.0 - - - - - 0.1 - - - - Operate delay - - - - - - SE_P3-IEC_61850:2020A - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - Over frequency f>1 - - - - - - Hz - - - - - - - - 40.0 - - - - - 65.0 - - - - - 0.01 - - - - Pick-up value - - - - - - - - - V - - - - - - - - 577.35 - - - - - 5773.5 - - - - - 57.73 - - - - Under voltage blocking - - - - - - - - 0 - - - 7200000 - - - 10 - - - Operate delay - - - - - - Enable for f> - - - - SE_P3-IEC_61850:2020A - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - Over frequency f>2 - - - - - - Hz - - - - - - - - 40.0 - - - - - 65.0 - - - - - 0.01 - - - - Pick-up value - - - - - - - - - V - - - - - - - - 577.35 - - - - - 5773.5 - - - - - 57.73 - - - - Under voltage blocking - - - - - - - - 0 - - - 7200000 - - - 10 - - - Operate delay - - - - - - Enable for f> - - - - SE_P3-IEC_61850:2020A - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - Programmable stage Prog1 - - - - - Enable Prog - - - - SE_P3-IEC_61850:2020A - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - Programmable stage Prog2 - - - - - Enable Prog - - - - SE_P3-IEC_61850:2020A - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - Programmable stage Prog3 - - - - - Enable Prog - - - - SE_P3-IEC_61850:2020A - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - Programmable stage Prog4 - - - - - Enable Prog - - - - SE_P3-IEC_61850:2020A - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - Programmable stage Prog5 - - - - - Enable Prog - - - - SE_P3-IEC_61850:2020A - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - Programmable stage Prog6 - - - - - Enable Prog - - - - SE_P3-IEC_61850:2020A - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - Programmable stage Prog7 - - - - - Enable Prog - - - - SE_P3-IEC_61850:2020A - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - Programmable stage Prog8 - - - - - Enable Prog - - - - SE_P3-IEC_61850:2020A - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - Phase undercurrent I< - - - - - - A - - - - - 75.0 - - - - - 1500.0 - - - - - 15.0 - - - - Pick-up value - - - - - - - - - s - - - - - 0.0 - - - - - 300.0 - - - - - 0.1 - - - - Operate delay - - - - - - SE_P3-IEC_61850:2020A - - - - - Enable I< - - - - SE_P3-IEC_61850:2020A - - - - - - A - - - - - 30.0 - - - - - 750.0 - - - - - 15.0 - - - - I< block limit - - - - - - SE_P3-IEC_61850:2020A - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - Under frequency f<1 - - - - - - Hz - - - - - - - - 40.0 - - - - - 65.0 - - - - - 0.01 - - - - Pick-up value - - - - - - - - - V - - - - - - - - 577.35 - - - - - 5773.5 - - - - - 57.73 - - - - Under voltage blocking - - - - - - - - 0 - - - 7200000 - - - 10 - - - Operate delay - - - - - - Enable for f< - - - - SE_P3-IEC_61850:2020A - - - - - - - - - - - 0.1 - - - - - 20.0 - - - - - 0.01 - - - - df/dt blocking - - - - - - SE_P3-IEC_61850:2020A - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - Under frequency f<2 - - - - - - Hz - - - - - - - - 40.0 - - - - - 65.0 - - - - - 0.01 - - - - Pick-up value - - - - - - - - - V - - - - - - - - 577.35 - - - - - 5773.5 - - - - - 57.73 - - - - Under voltage blocking - - - - - - - - 0 - - - 7200000 - - - 10 - - - Operate delay - - - - - - Enable for f< - - - - SE_P3-IEC_61850:2020A - - - - - - - - - - - 0.1 - - - - - 20.0 - - - - - 0.01 - - - - df/dt blocking - - - - - - SE_P3-IEC_61850:2020A - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - Under frequency f<3 - - - - - - Hz - - - - - - - - 40.0 - - - - - 65.0 - - - - - 0.01 - - - - Pick-up value - - - - - - - - - V - - - - - - - - 577.35 - - - - - 5773.5 - - - - - 57.73 - - - - Under voltage blocking - - - - - - - - 0 - - - 7200000 - - - 10 - - - Operate delay - - - - - - Enable for f< - - - - SE_P3-IEC_61850:2020A - - - - - - - - - - - 0.1 - - - - - 20.0 - - - - - 0.01 - - - - df/dt blocking - - - - - - SE_P3-IEC_61850:2020A - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - Under frequency f<4 - - - - - - Hz - - - - - - - - 40.0 - - - - - 65.0 - - - - - 0.01 - - - - Pick-up value - - - - - - - - - V - - - - - - - - 577.35 - - - - - 5773.5 - - - - - 57.73 - - - - Under voltage blocking - - - - - - - - 0 - - - 7200000 - - - 10 - - - Operate delay - - - - - - Enable for f< - - - - SE_P3-IEC_61850:2020A - - - - - - - - - - - 0.1 - - - - - 20.0 - - - - - 0.01 - - - - df/dt blocking - - - - - - SE_P3-IEC_61850:2020A - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - Under frequency f<5 - - - - - - Hz - - - - - - - - 40.0 - - - - - 65.0 - - - - - 0.01 - - - - Pick-up value - - - - - - - - - V - - - - - - - - 577.35 - - - - - 5773.5 - - - - - 57.73 - - - - Under voltage blocking - - - - - - - - 0 - - - 7200000 - - - 10 - - - Operate delay - - - - - - Enable for f< - - - - SE_P3-IEC_61850:2020A - - - - - - - - - - - 0.1 - - - - - 20.0 - - - - - 0.01 - - - - df/dt blocking - - - - - - SE_P3-IEC_61850:2020A - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - Under frequency f<6 - - - - - - Hz - - - - - - - - 40.0 - - - - - 65.0 - - - - - 0.01 - - - - Pick-up value - - - - - - - - - V - - - - - - - - 577.35 - - - - - 5773.5 - - - - - 57.73 - - - - Under voltage blocking - - - - - - - - 0 - - - 7200000 - - - 10 - - - Operate delay - - - - - - Enable for f< - - - - SE_P3-IEC_61850:2020A - - - - - - - - - - - 0.1 - - - - - 20.0 - - - - - 0.01 - - - - df/dt blocking - - - - - - SE_P3-IEC_61850:2020A - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - Under frequency f<7 - - - - - - Hz - - - - - - - - 40.0 - - - - - 65.0 - - - - - 0.01 - - - - Pick-up value - - - - - - - - - V - - - - - - - - 577.35 - - - - - 5773.5 - - - - - 57.73 - - - - Under voltage blocking - - - - - - - - 0 - - - 7200000 - - - 10 - - - Operate delay - - - - - - Enable for f< - - - - SE_P3-IEC_61850:2020A - - - - - - - - - - - 0.1 - - - - - 20.0 - - - - - 0.01 - - - - df/dt blocking - - - - - - SE_P3-IEC_61850:2020A - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - Under frequency f<8 - - - - - - Hz - - - - - - - - 40.0 - - - - - 65.0 - - - - - 0.01 - - - - Pick-up value - - - - - - - - - V - - - - - - - - 577.35 - - - - - 5773.5 - - - - - 57.73 - - - - Under voltage blocking - - - - - - - - 0 - - - 7200000 - - - 10 - - - Operate delay - - - - - - Enable for f< - - - - SE_P3-IEC_61850:2020A - - - - - - - - - - - 0.1 - - - - - 20.0 - - - - - 0.01 - - - - df/dt blocking - - - - - - SE_P3-IEC_61850:2020A - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - Undervoltage U<1 - - - - - - V - - - - - - - - 200.0 - - - - - 12000.0 - - - - - 100.0 - - - - Pick-up value - - - - - - - - - s - - - - - - - - 0.0 - - - - - 600.0 - - - - - 0.01 - - - - Operate delay - - - - - - SE_P3-IEC_61850:2020A - - - - - Enable V< - - - - SE_P3-IEC_61850:2020A - - - - - CB open blocking - - - - SE_P3-IEC_61850:2020A - - - - - Measurement mode - - - - SE_P3-IEC_61850:2020A - - - - - Operating curve - - - - SE_P3-IEC_61850:2020A - - - - - Tripping logic - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - - - - 0.0 - - - - - 100.0 - - - - - 0.01 - - - - Reset delay - - - - - - SE_P3-IEC_61850:2020A - - - - - - - - - - - 1.0 - - - - - 5.0 - - - - - 0.1 - - - - Hysteresis - - - - - - SE_P3-IEC_61850:2020A - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - Undervoltage U<2 - - - - - - V - - - - - - - - 200.0 - - - - - 12000.0 - - - - - 100.0 - - - - Pick-up value - - - - - - - - - s - - - - - - - - 0.0 - - - - - 600.0 - - - - - 0.01 - - - - Operate delay - - - - - - SE_P3-IEC_61850:2020A - - - - - Enable V< - - - - SE_P3-IEC_61850:2020A - - - - - CB open blocking - - - - SE_P3-IEC_61850:2020A - - - - - Measurement mode - - - - SE_P3-IEC_61850:2020A - - - - - Operating curve - - - - SE_P3-IEC_61850:2020A - - - - - Tripping logic - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - - - - 0.0 - - - - - 100.0 - - - - - 0.01 - - - - Reset delay - - - - - - SE_P3-IEC_61850:2020A - - - - - - - - - - - 1.0 - - - - - 5.0 - - - - - 0.1 - - - - Hysteresis - - - - - - SE_P3-IEC_61850:2020A - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - Undervoltage U<3 - - - - - - V - - - - - - - - 200.0 - - - - - 12000.0 - - - - - 100.0 - - - - Pick-up value - - - - - - - - - s - - - - - - - - 0.0 - - - - - 600.0 - - - - - 0.01 - - - - Operate delay - - - - - - SE_P3-IEC_61850:2020A - - - - - Enable V< - - - - SE_P3-IEC_61850:2020A - - - - - CB open blocking - - - - SE_P3-IEC_61850:2020A - - - - - Measurement mode - - - - SE_P3-IEC_61850:2020A - - - - - Operating curve - - - - SE_P3-IEC_61850:2020A - - - - - Tripping logic - - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - - - - 0.0 - - - - - 100.0 - - - - - 0.01 - - - - Reset delay - - - - - - SE_P3-IEC_61850:2020A - - - - - - - - - - - 1.0 - - - - - 5.0 - - - - - 0.1 - - - - Hysteresis - - - - - - SE_P3-IEC_61850:2020A - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - Inrush - - - - - - - - - - - 10 - - - - - 35 - - - - - 1 - - - - Pickup for 2nd harmonic - - - - 20 - - - - - - - A - - - - - - - - 1500.0 - - - - - 30000.0 - - - - - 15.0 - - - - Max inrush current - - - - 15000.0 - - - - SE_P3-IEC_61850:2020A - - - - - 0 - - - SE_P3-IEC_61850:2020A - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - Restricted earth-fault REF> - - - - - Phase CT polarity - - - 0 - - - SE_P3-IEC_61850:2020A - - - - - IN CT polarity - - - 0 - - - SE_P3-IEC_61850:2020A - - - - - IN.sens CT polarity - - - 0 - - - SE_P3-IEC_61850:2020A - - - - - 0 - - - 1000 - - - 10 - - - Operate delay - - - - - - Enable REF> - - - - SE_P3-IEC_61850:2020A - - - - - IG input - - - - SE_P3-IEC_61850:2020A - - - - - 5 CT application - - - - SE_P3-IEC_61850:2020A - - - - - Operating Mode - - - - SE_P3-IEC_61850:2020A - - - - - - A - - - - - - - - 15.0 - - - - - 1500.0 - - - - - 15.0 - - - - Low set Id - - - - - - SE_P3-IEC_61850:2020A - - - - - - A - - - - - - - - 3000.0 - - - - - 45000.0 - - - - - 15.0 - - - - High set Id - - - - - - SE_P3-IEC_61850:2020A - - - - - - A - - - - - - - - 15.0 - - - - - 1500.0 - - - - - 15.0 - - - - CTS low set Id - - - - - - SE_P3-IEC_61850:2020A - - - - - - A - - - - - - - - 0.0 - - - - - 1500.0 - - - - - 15.0 - - - - Min measured IG - - - - - - SE_P3-IEC_61850:2020A - - - - - - - - - - - 0 - - - - - 100 - - - - - 1 - - - - Slope k - - - - - - SE_P3-IEC_61850:2020A - - - - - - A - - - - - - - - 150.0 - - - - - 2250.0 - - - - - 15.0 - - - - Bias current Ib - - - - - - SE_P3-IEC_61850:2020A - - - - - - - - - - - 10 - - - - - 200 - - - - - 1 - - - - Slope k - - - - - - SE_P3-IEC_61850:2020A - - - - - High set mode - - - - SE_P3-IEC_61850:2020A - - - - - CTS operating mode - - - - SE_P3-IEC_61850:2020A - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - Sync check - - - - - - V - - - - - 100.0 - - - - - 12000.0 - - - - - 100.0 - - - - Vlive limit setting - - - - - - SE_P3-IEC_61850:2020A - - - - - - V - - - - - 1000.0 - - - - - 13000.0 - - - - - 100.0 - - - - Vlive limit setting - - - - - - SE_P3-IEC_61850:2020A - - - - - - Hz - - - - - 0.01 - - - - - 1.0 - - - - - 0.01 - - - - Frequency difference - - - - - - - - - V - - - - - 100.0 - - - - - 6000.0 - - - - - 100.0 - - - - Voltage difference - - - - - - - - - deg - - - - - 2 - - - - - 90 - - - - - 1 - - - - Phase angle difference - - - - - - - - - s - - - - - 0.1 - - - - - 600.0 - - - - - 0.1 - - - - Request timeout - - - - - - SE_P3-IEC_61850:2020A - - - - - Enable Sync check 1 - - - - SE_P3-IEC_61850:2020A - - - - - - - - - status-only - - - - - Schneider Electric - - - V01 - - - PowerLogic P3 - - - V01.102 - - - IEC 61850-7-4:2003 - - - - - - - Schneider Electric - - - - - - - status-only - - - - - direct-with-normal-security - - - - - Schneider Electric - - - V02 - - - Disturbance recorder - - - - - - - - - status-only - - - - - Schneider Electric - - - V01 - - - PowerLogic P3 - - - V01.102 - - - IEC 61850-7-4:2003 - - - - - - - Schneider Electric - - - - - - - status-only - - - - - - Wh - - - k - - - - 1000.0 - - - - - - VArh - - - k - - - - 1000.0 - - - - - - Wh - - - k - - - - 1000.0 - - - - - - VArh - - - k - - - - 1000.0 - - - - - Schneider Electric - - - V02 - - - Energy exported imported - - - - - - - status-only - - - - - - Hz - - - - - - - 10 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 40.0 - - - - - 70.0 - - - - - - - - - A - - - - - - - 1000 - - - 2000 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 1000.0 - - - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - -180.0 - - - - - 180.0 - - - - - IEC 61850-7-4:2003 - - - CMV - - - - - - A - - - - - - - 1000 - - - 2000 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 1000.0 - - - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - -180.0 - - - - - 180.0 - - - - - IEC 61850-7-4:2003 - - - CMV - - - - - - A - - - - - - - 1000 - - - 2000 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 1000.0 - - - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - -180.0 - - - - - 180.0 - - - - - IEC 61850-7-4:2003 - - - CMV - - - - - - A - - - - - - - 1000 - - - 2000 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 1000.0 - - - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - -180.0 - - - - - 180.0 - - - - - IEC 61850-7-4:2003 - - - CMV - - - - - - A - - - - - - - 1000 - - - 2000 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 1000.0 - - - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - -180.0 - - - - - 180.0 - - - - - IEC 61850-7-4:2003 - - - CMV - - - - - - - - A - - - - - - - 1000 - - - 2000 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 1000.0 - - - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - -180.0 - - - - - 180.0 - - - - - IEC 61850-7-4:2003 - - - CMV - - - - SE_P3-IEC_61850:2020A - - - - - Schneider Electric - - - V02 - - - FFT current - - - - - Average current window - - - 0 - - - SE_P3-IEC_61850:2020A - - - - - - A - - - - - - - 1000 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 1000.0 - - - - - 3_Phase Average current - - - SE_P3-IEC_61850:2020A - - - - - - - status-only - - - - - - W - - - k - - - - 1000 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 10000.0 - - - - - - - - VAr - - - k - - - - 1000 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 10000.0 - - - - - - - - VA - - - k - - - - 1000 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 10000.0 - - - - - - - - - - - - - - - 1000 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 1.0 - - - - - - - - - W - - - k - - - - 1000 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 10000.0 - - - - - - - - W - - - k - - - - 1000 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 10000.0 - - - - - - - - W - - - k - - - - 1000 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 10000.0 - - - - - - - - - - VAr - - - k - - - - 1000 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 10000.0 - - - - - - - - VAr - - - k - - - - 1000 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 10000.0 - - - - - - - - VAr - - - k - - - - 1000 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 10000.0 - - - - - - - - - - VA - - - k - - - - 1000 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 10000.0 - - - - - - - - VA - - - k - - - - 1000 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 10000.0 - - - - - - - - VA - - - k - - - - 1000 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 10000.0 - - - - - - - - - - - - - - - - - 1000 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 1.0 - - - - - - - - - - - - - - - 1000 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 1.0 - - - - - - - - - - - - - - - 1000 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 1.0 - - - - - - - - Schneider Electric - - - V02 - - - FFT power - - - - - - - status-only - - - - - - Hz - - - - - - - 10 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 40.0 - - - - - 70.0 - - - - - - - - - V - - - - - - - 1000 - - - 2000 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - -1000.0 - - - - - 1000.0 - - - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - -180.0 - - - - - 180.0 - - - - - IEC 61850-7-4:2003 - - - CMV - - - - - - V - - - - - - - 1000 - - - 2000 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - -1000.0 - - - - - 1000.0 - - - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - -180.0 - - - - - 180.0 - - - - - IEC 61850-7-4:2003 - - - CMV - - - - - - V - - - - - - - 1000 - - - 2000 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - -1000.0 - - - - - 1000.0 - - - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - -180.0 - - - - - 180.0 - - - - - IEC 61850-7-4:2003 - - - CMV - - - - - - - - V - - - - - - - 1000 - - - 2000 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - -1000.0 - - - - - 1000.0 - - - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - -180.0 - - - - - 180.0 - - - - - IEC 61850-7-4:2003 - - - CMV - - - - - - V - - - - - - - 1000 - - - 2000 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - -1000.0 - - - - - 1000.0 - - - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - -180.0 - - - - - 180.0 - - - - - IEC 61850-7-4:2003 - - - CMV - - - - - - V - - - - - - - 1000 - - - 2000 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - -1000.0 - - - - - 1000.0 - - - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - -180.0 - - - - - 180.0 - - - - - IEC 61850-7-4:2003 - - - CMV - - - - - - V - - - - - - - 1000 - - - 2000 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 1000.0 - - - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - -180.0 - - - - - 180.0 - - - - - IEC 61850-7-4:2003 - - - CMV - - - - - - Schneider Electric - - - V02 - - - FFT voltage - - - - - - - status-only - - - - - - Hz - - - - - - - 10 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 40.0 - - - - - 70.0 - - - - - - - - - A - - - - - - - 1000 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 1000.0 - - - - - - - - A - - - - - - - 1000 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 1000.0 - - - - - - - - A - - - - - - - 1000 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 1000.0 - - - - - - - - Schneider Electric - - - V02 - - - Demand current - - - - - - - status-only - - - - - - Hz - - - - - - - 10 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 40.0 - - - - - 70.0 - - - - - - - - - V - - - - - - - 1000 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 1000.0 - - - - - - - - V - - - - - - - 1000 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 1000.0 - - - - - - - - V - - - - - - - 1000 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 1000.0 - - - - - - - - - - V - - - - - - - 1000 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 1000.0 - - - - - - - - V - - - - - - - 1000 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 1000.0 - - - - - - - - V - - - - - - - 1000 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 1000.0 - - - - - - - - Schneider Electric - - - V02 - - - Demand voltage - - - - - - - status-only - - - - - - W - - - k - - - - 1000 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 10000.0 - - - - - - - - VAr - - - k - - - - 1000 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 10000.0 - - - - - - - - VA - - - k - - - - 1000 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 10000.0 - - - - - - - - - - - - - - - 1000 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 1.0 - - - - - - - Schneider Electric - - - V02 - - - Demand power - - - - - - - status-only - - - - - - - A - - - - - - - 1000 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 1000.0 - - - - - - - - A - - - - - - - 1000 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 1000.0 - - - - - - - - A - - - - - - - 1000 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 1000.0 - - - - - - - - Schneider Electric - - - V02 - - - RMS current - - - - - - - status-only - - - - - - - V - - - - - - - 1000 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 1000.0 - - - - - - - - V - - - - - - - 1000 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 1000.0 - - - - - - - - V - - - - - - - 1000 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 1000.0 - - - - - - - - Schneider Electric - - - V02 - - - RMS voltage - - - - - - - status-only - - - - - - W - - - k - - - - 1000 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - -10000.0 - - - - - 10000.0 - - - - - - - - VAr - - - k - - - - 1000 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - -10000.0 - - - - - 10000.0 - - - - - - - - VA - - - k - - - - 1000 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - -10000.0 - - - - - 10000.0 - - - - - - - Schneider Electric - - - V02 - - - RMS power - - - - - - - status-only - - - - - - W - - - k - - - - 1000 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 10000.0 - - - - - - - - VAr - - - k - - - - 1000 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 10000.0 - - - - - - - - VA - - - k - - - - 1000 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 10000.0 - - - - - - - Schneider Electric - - - V02 - - - P,Q,S RMS demand - - - - - - - status-only - - - - - - Hz - - - - - - - 10 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 40.0 - - - - - 70.0 - - - - - - - - - V - - - - - - - 1000 - - - 2000 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 1000.0 - - - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - -180.0 - - - - - 180.0 - - - - - IEC 61850-7-4:2003 - - - - - - Schneider Electric - - - V02 - - - Sync check Uy - - - - - - - status-only - - - - - - Hz - - - - - - - 10 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 40.0 - - - - - 70.0 - - - - - - - 15 - - - 1 - - - 0 - - - - - - - - 50.0 - - - - - - - - - - - 1000 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 1000.0 - - - - - - - - - - - - 1000 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 1000.0 - - - - - - - - - - - - 1000 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 1000.0 - - - - - - - - Schneider Electric - - - V02 - - - Current harmonics - - - - - - - status-only - - - - - - Hz - - - - - - - 10 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 40.0 - - - - - 70.0 - - - - - - - - - - - - 15 - - - 1 - - - 0 - - - 50.0 - - - - - - - - - - - 1000 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 1000.0 - - - - - - - - - - - - 1000 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 1000.0 - - - - - - - - - - - - 1000 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 1000.0 - - - - - - - - Schneider Electric - - - V02 - - - Voltage harmonics - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - Restricted earth-fault REF> - - - - - - A - - - - - - - 1000 - - - 2000 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 1000.0 - - - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - -180.0 - - - - - 180.0 - - - - - Calculated IG - - - IEC 61850-7-4:2003 - - - CMV - - - SE_P3-IEC_61850:2020A - - - - - - A - - - - - - - 1000 - - - 2000 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 1000.0 - - - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - -180.0 - - - - - 180.0 - - - - - Measured IG - - - IEC 61850-7-4:2003 - - - CMV - - - SE_P3-IEC_61850:2020A - - - - - - A - - - - - - - 1000 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 1000.0 - - - - - Different current - - - SE_P3-IEC_61850:2020A - - - - - - A - - - - - - - 1000 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 0.0 - - - - - 1000.0 - - - - - Bias current - - - SE_P3-IEC_61850:2020A - - - - - - - - - status-only - - - - - Schneider Electric - - - V01 - - - PowerLogic P3 - - - V01.102 - - - IEC 61850-7-4:2003 - - - - - - - Schneider Electric - - - - - - - status-only - - - - - sbo-with-normal-security - - - 60000 - - - - - Schneider Electric - - - V02 - - - Switch controller object 1 - - - - - - - status-only - - - - - direct-with-normal-security - - - 60000 - - - - - Schneider Electric - - - V02 - - - Switch controller object 2 - - - - - - - status-only - - - - - direct-with-normal-security - - - 60000 - - - - - Schneider Electric - - - V02 - - - Switch controller object 3 - - - - - - - status-only - - - - - direct-with-normal-security - - - 60000 - - - - - Schneider Electric - - - V02 - - - Switch controller object 4 - - - - - - - status-only - - - - - direct-with-normal-security - - - 60000 - - - - - Schneider Electric - - - V02 - - - Switch controller object 5 - - - - - - - status-only - - - - - direct-with-normal-security - - - 60000 - - - - - Schneider Electric - - - V02 - - - Switch controller object 6 - - - - - - - status-only - - - - - status-only - - - - - Schneider Electric - - - V02 - - - Switch controller object 7 - - - - - - - status-only - - - - - status-only - - - - - Schneider Electric - - - V02 - - - Switch controller object 8 - - - - - - - status-only - - - - - status-only - - - - - status-only - - - - - status-only - - - - - Schneider Electric - - - V02 - - - Circuit breaker - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - Circuit breaker supervision - - - SE_P3-IEC_61850:2020A - - - - - Open command of trip coil - - - SE_P3-IEC_61850:2020A - - - - - CB Monitoring alarm 2 signal - - - SE_P3-IEC_61850:2020A - - - - - CB Monitoring alarm 1 signal - - - SE_P3-IEC_61850:2020A - - - - - - s - - - m - - - - Operation time open - - - SE_P3-IEC_61850:2020A - - - - - - s - - - m - - - - Operation time close - - - SE_P3-IEC_61850:2020A - - - - - direct-with-normal-security - - - 0 - - - 65535 - - - 1 - - - Resettable operation counter - - - - - - A - - - k - - - - - 0.0 - - - - - 100.0 - - - - - 0.01 - - - - Alarm level 2 - - - - 6.0 - - - - SE_P3-IEC_61850:2020A - - - - - - A - - - k - - - - - 0.0 - - - - - 100.0 - - - - - 0.01 - - - - Alarm level 1 - - - - 0.8 - - - - SE_P3-IEC_61850:2020A - - - - - 1 - - - 100000 - - - 1 - - - Limit for operation left 2 - - - 50 - - - SE_P3-IEC_61850:2020A - - - - - 1 - - - 100000 - - - 1 - - - Limit for operation left 1 - - - 500 - - - SE_P3-IEC_61850:2020A - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - Superv of oper mechanism - - - SE_P3-IEC_61850:2020A - - - - - - s - - - - - - - Spring charging time - - - SE_P3-IEC_61850:2020A - - - - - - - status-only - - - - - status-only - - - - - status-only - - - - - status-only - - - - - Schneider Electric - - - V02 - - - Circuit switch 1 - - - - - - - status-only - - - - - status-only - - - - - status-only - - - - - status-only - - - - - Schneider Electric - - - V02 - - - Circuit switch 2 - - - - - - - status-only - - - - - status-only - - - - - status-only - - - - - status-only - - - - - Schneider Electric - - - V02 - - - Circuit switch 3 - - - - - - - status-only - - - - - status-only - - - - - status-only - - - - - status-only - - - - - Schneider Electric - - - V02 - - - Circuit switch 4 - - - - - - - status-only - - - - - status-only - - - - - status-only - - - - - status-only - - - - - Schneider Electric - - - V02 - - - Circuit switch 5 - - - - - - - status-only - - - - - status-only - - - - - status-only - - - - - status-only - - - - - Schneider Electric - - - V02 - - - Circuit switch 6 - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - Circuit switch 7 - - - - - Local control behaviour - - - - - status-only - - - - - status-only - - - - - status-only - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - Circuit switch 8 - - - - - Local control behaviour - - - - - status-only - - - - - status-only - - - - - status-only - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - Circuit switch supervision 1 - - - SE_P3-IEC_61850:2020A - - - - - direct-with-normal-security - - - 0 - - - 65535 - - - 1 - - - Resettable operation counter - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - Circuit switch supervision 2 - - - SE_P3-IEC_61850:2020A - - - - - direct-with-normal-security - - - 0 - - - 65535 - - - 1 - - - Resettable operation counter - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - Circuit switch supervision 3 - - - SE_P3-IEC_61850:2020A - - - - - direct-with-normal-security - - - 0 - - - 65535 - - - 1 - - - Resettable operation counter - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - Circuit switch supervision 4 - - - SE_P3-IEC_61850:2020A - - - - - direct-with-normal-security - - - 0 - - - 65535 - - - 1 - - - Resettable operation counter - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - Circuit switch supervision 5 - - - SE_P3-IEC_61850:2020A - - - - - direct-with-normal-security - - - 0 - - - 65535 - - - 1 - - - Resettable operation counter - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - Circuit switch supervision 6 - - - SE_P3-IEC_61850:2020A - - - - - direct-with-normal-security - - - 0 - - - 65535 - - - 1 - - - Resettable operation counter - - - - - - - - - status-only - - - - - Schneider Electric - - - V01 - - - PowerLogic P3 - - - V01.102 - - - IEC 61850-7-4:2003 - - - - - - - Schneider Electric - - - - - - - status-only - - - - - Schneider Electric - - - V02 - - - Self diagnosis supervision - - - SE_P3-IEC_61850:2020A - - - - - - °C - - - - Internal temperature - - - SE_P3-IEC_61850:2020A - - - - - - °C - - - - Maximum internal temperature - - - SE_P3-IEC_61850:2020A - - - - - - °C - - - - Minimum internal temperature - - - SE_P3-IEC_61850:2020A - - - - - - V - - - - 3.3V supply voltage - - - SE_P3-IEC_61850:2020A - - - - - - V - - - - 1.8V supply voltage - - - SE_P3-IEC_61850:2020A - - - - - - V - - - - 5.0V supply voltage - - - SE_P3-IEC_61850:2020A - - - - - - V - - - - 1.1V supply voltage - - - SE_P3-IEC_61850:2020A - - - - - - V - - - - 0.85V supply voltage - - - SE_P3-IEC_61850:2020A - - - - - - V - - - - 0.75V supply voltage - - - SE_P3-IEC_61850:2020A - - - - - - V - - - - 3.3V LC voltage - - - SE_P3-IEC_61850:2020A - - - - - - V - - - - 2.5V FPGA voltage - - - SE_P3-IEC_61850:2020A - - - - - - V - - - - Uprim voltage - - - SE_P3-IEC_61850:2020A - - - - - - V - - - - 5V ANA voltage - - - SE_P3-IEC_61850:2020A - - - - - - V - - - - +3.3V ANA voltage - - - SE_P3-IEC_61850:2020A - - - - - - V - - - - -3.3V ANA voltage - - - SE_P3-IEC_61850:2020A - - - - - Combined average maximum task load - - - SE_P3-IEC_61850:2020A - - - - - Maximum cumulative task load - - - SE_P3-IEC_61850:2020A - - - - - Minimim cumulative task load - - - SE_P3-IEC_61850:2020A - - - - - Combined average maximum task load 1 - - - SE_P3-IEC_61850:2020A - - - - - Maximum cumulative task load 1 - - - SE_P3-IEC_61850:2020A - - - - - Minimum cumulative task load 1 - - - SE_P3-IEC_61850:2020A - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - status-only - direct-with-normal-security - sbo-with-normal-security - direct-with-enhanced-security - sbo-with-enhanced-security - - - - not-supported - bay-control - station-control - remote-control - automatic-bay - automatic-station - automatic-remote - maintenance - process - - - - y - z - a - f - p - n - µ - m - c - d - - da - h - k - M - G - T - P - E - Z - Y - - - - - m - kg - s - A - K - mol - cd - deg - rad - sr - Gy - q - °C - Sv - F - C - S - H - V - ohm - J - N - Hz - lx - Lm - Wb - T - W - Pa - - - m/s - m/s² - m³/s - m/m³ - M - kg/m³ - m²/s - W/m K - J/K - ppm - 1/s - rad/s - VA - Watts - VAr - phi - cos(phi) - Vs - - As - - A²t - VAh - Wh - VArh - V/Hz - - - - unknown - forward - backward - both - - - - on - blocked - test - test/blocked - off - - - - None - Open - Close-Open - Open-Close-Open - Close-Open-Close-Open - - - - Ok - Warning - Alarm - - - - on - blocked - test - test/blocked - off - - - - None - Open - Close - Open and Close - - - - Load Break - Disconnector - Earthing Switch - High Speed Earthing Switch - - - - status-only - direct-with-normal-security - sbo-with-normal-security - direct-with-enhanced-security - sbo-with-enhanced-security - - - diff --git a/PSCADA/SG-A通讯管理模版/data/icon/运行状态.ilx b/PSCADA/SG-A通讯管理模版/data/icon/运行状态.ilx deleted file mode 100644 index 1e4223e..0000000 --- a/PSCADA/SG-A通讯管理模版/data/icon/运行状态.ilx +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/PSCADA/SG-A通讯管理模版/data/mod_instance/设备实例-高泰.xlsx b/PSCADA/SG-A通讯管理模版/data/mod_instance/设备实例-高泰.xlsx deleted file mode 100644 index 1f5bf9fe293bb58cfa2bf9104eef17d026b90797..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8363 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 diff --git a/PSCADA/SG-A通讯管理模版/data/model/colorConfig.xml b/PSCADA/SG-A通讯管理模版/data/model/colorConfig.xml deleted file mode 100644 index ecbd0d0..0000000 --- a/PSCADA/SG-A通讯管理模版/data/model/colorConfig.xml +++ /dev/null @@ -1,472 +0,0 @@ - - - - - - - - - - - - - diff --git a/PSCADA/SG-A通讯管理模版/data/pic/实时监控/110kV发电三期主接线图.glx b/PSCADA/SG-A通讯管理模版/data/pic/实时监控/110kV发电三期主接线图.glx deleted file mode 100644 index f334a7e..0000000 --- a/PSCADA/SG-A通讯管理模版/data/pic/实时监控/110kV发电三期主接线图.glx +++ /dev/null @@ -1,412 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/frame_footer_unuse.glx b/PSCADA/SG-A通讯管理模版/data/pic/界面框架/frame_footer_unuse.glx deleted file mode 100644 index 84b4761..0000000 --- a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/frame_footer_unuse.glx +++ /dev/null @@ -1,367 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/interval_custom.glx b/PSCADA/SG-A通讯管理模版/data/pic/界面框架/interval_custom.glx deleted file mode 100644 index b3d9a3d..0000000 --- a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/interval_custom.glx +++ /dev/null @@ -1,482 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/interval_instrument - 副本.glx b/PSCADA/SG-A通讯管理模版/data/pic/界面框架/interval_instrument - 副本.glx deleted file mode 100644 index 219231c..0000000 --- a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/interval_instrument - 副本.glx +++ /dev/null @@ -1,485 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/interval_instrument.glx b/PSCADA/SG-A通讯管理模版/data/pic/界面框架/interval_instrument.glx deleted file mode 100644 index 0294b01..0000000 --- a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/interval_instrument.glx +++ /dev/null @@ -1,485 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/interval_meter.glx b/PSCADA/SG-A通讯管理模版/data/pic/界面框架/interval_meter.glx deleted file mode 100644 index 7236d05..0000000 --- a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/interval_meter.glx +++ /dev/null @@ -1,502 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/interval_protect - 副本 - 副本.glx b/PSCADA/SG-A通讯管理模版/data/pic/界面框架/interval_protect - 副本 - 副本.glx deleted file mode 100644 index 409fed8..0000000 --- a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/interval_protect - 副本 - 副本.glx +++ /dev/null @@ -1,521 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/interval_protect - 副本.glx b/PSCADA/SG-A通讯管理模版/data/pic/界面框架/interval_protect - 副本.glx deleted file mode 100644 index 5499bab..0000000 --- a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/interval_protect - 副本.glx +++ /dev/null @@ -1,521 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/interval_protect.glx b/PSCADA/SG-A通讯管理模版/data/pic/界面框架/interval_protect.glx deleted file mode 100644 index 749a12c..0000000 --- a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/interval_protect.glx +++ /dev/null @@ -1,499 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/interval_relay.glx b/PSCADA/SG-A通讯管理模版/data/pic/界面框架/interval_relay.glx deleted file mode 100644 index 8c3bc9f..0000000 --- a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/interval_relay.glx +++ /dev/null @@ -1,502 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/panel_analog_set.glx b/PSCADA/SG-A通讯管理模版/data/pic/界面框架/panel_analog_set.glx deleted file mode 100644 index 1fbacf1..0000000 --- a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/panel_analog_set.glx +++ /dev/null @@ -1,1556 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/panel_direct_ctrl.glx b/PSCADA/SG-A通讯管理模版/data/pic/界面框架/panel_direct_ctrl.glx deleted file mode 100644 index 7bee3f7..0000000 --- a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/panel_direct_ctrl.glx +++ /dev/null @@ -1,2086 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/panel_remote_ctrl-gdw.glx b/PSCADA/SG-A通讯管理模版/data/pic/界面框架/panel_remote_ctrl-gdw.glx deleted file mode 100644 index d1cc14e..0000000 --- a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/panel_remote_ctrl-gdw.glx +++ /dev/null @@ -1,2197 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/panel_remote_ctrl0000.glx b/PSCADA/SG-A通讯管理模版/data/pic/界面框架/panel_remote_ctrl0000.glx deleted file mode 100644 index 4d5d1d4..0000000 --- a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/panel_remote_ctrl0000.glx +++ /dev/null @@ -1,2197 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PSCADA/SG-A通讯管理模版/data/sys_model_info/SYS_MODEL_DBCONFIG_DOMAIN.xml b/PSCADA/SG-A通讯管理模版/data/sys_model_info/SYS_MODEL_DBCONFIG_DOMAIN.xml deleted file mode 100644 index 9063503..0000000 --- a/PSCADA/SG-A通讯管理模版/data/sys_model_info/SYS_MODEL_DBCONFIG_DOMAIN.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - -
diff --git a/PSCADA/SG-A通讯管理模版/data/sys_model_info/SYS_MODEL_DBCONFIG_NODE.xml b/PSCADA/SG-A通讯管理模版/data/sys_model_info/SYS_MODEL_DBCONFIG_NODE.xml deleted file mode 100644 index 86aad85..0000000 --- a/PSCADA/SG-A通讯管理模版/data/sys_model_info/SYS_MODEL_DBCONFIG_NODE.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - -
diff --git a/PSCADA/SG-A通讯管理模版/data/sys_model_info/SYS_MODEL_NODE_INFO.xml b/PSCADA/SG-A通讯管理模版/data/sys_model_info/SYS_MODEL_NODE_INFO.xml deleted file mode 100644 index fbac02c..0000000 --- a/PSCADA/SG-A通讯管理模版/data/sys_model_info/SYS_MODEL_NODE_INFO.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - -
diff --git a/PSCADA/SG-A通讯管理模版/database/accuml.xlsx b/PSCADA/SG-A通讯管理模版/database/accuml.xlsx deleted file mode 100644 index 0d63687164f0e363bb96356edccdc5f2b7c142fd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32741 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 diff --git a/PSCADA/SG-A通讯管理模版/database/accuml_map_to_fes.xlsx b/PSCADA/SG-A通讯管理模版/database/accuml_map_to_fes.xlsx deleted file mode 100644 index efeb8c026f344577ac6e9402152ebcc7ee8df1b2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16277 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%0AY8jO6$Gijio(Q8Oo4;s%8S*|MS=uKPzQP& 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 diff --git a/PSCADA/SG-A通讯管理模版/database/accuml_temp_define.xlsx b/PSCADA/SG-A通讯管理模版/database/accuml_temp_define.xlsx deleted file mode 100644 index 9fc5cda64a7a3b237267e873efc6595f0058a3c2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11999 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 diff --git a/PSCADA/SG-A通讯管理模版/database/analog.xlsx b/PSCADA/SG-A通讯管理模版/database/analog.xlsx deleted file mode 100644 index c68dfc123e1306b480dc9c1fd7eda4e9b4a16263..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 111918 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≦_{%x)`m9{TW%5PTDh|&VQwOLXBbr&3I@w( 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
f^9dF^NkwL7d+KGcE-|+CoUlK5ZA(|I(<<-X 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 diff --git a/PSCADA/SG-A通讯管理模版/database/calc_func_def.xlsx b/PSCADA/SG-A通讯管理模版/database/calc_func_def.xlsx deleted file mode 100644 index fab36d211568d2507e9aed2387df93c315cfe77e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4788 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 diff --git a/PSCADA/SG-A通讯管理模版/database/calc_in_para.xlsx b/PSCADA/SG-A通讯管理模版/database/calc_in_para.xlsx deleted file mode 100644 index 0c2aaffb0c066d3c931acfde31373c2b9d6c49eb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4012 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 diff --git a/PSCADA/SG-A通讯管理模版/database/calc_out_para.xlsx b/PSCADA/SG-A通讯管理模版/database/calc_out_para.xlsx deleted file mode 100644 index 4427531d107979cb22ed651f191313ed9b646e84..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3525 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 KK=cEwtN#N?%AFtp diff --git a/PSCADA/SG-A通讯管理模版/database/dev_temp_def.xlsx b/PSCADA/SG-A通讯管理模版/database/dev_temp_def.xlsx deleted file mode 100644 index 43163253904903ec4f662553777b5db1517fa44c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3912 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 S2>@IoeD4zibes5g2k?Icz{>>y diff --git a/PSCADA/SG-A通讯管理模版/database/digital.xlsx b/PSCADA/SG-A通讯管理模版/database/digital.xlsx deleted file mode 100644 index 90d61b472c6c54f95de656abc594004cadf518a7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 70149 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 LIN<`L@A3Zt5#^#- diff --git a/PSCADA/SG-A通讯管理模版/database/digital_map_to_fes.xlsx b/PSCADA/SG-A通讯管理模版/database/digital_map_to_fes.xlsx deleted file mode 100644 index 6ba3bff55fa0ced8f07b177b1bef7a6c8baec22f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22176 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 z 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%0DEb%A&GMw0fFVY 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 Tb%TSXC@=U+fD^Q`5WoEmVLx96 diff --git a/PSCADA/SG-A通讯管理模版/database/fes_analog.xlsx b/PSCADA/SG-A通讯管理模版/database/fes_analog.xlsx deleted file mode 100644 index 7243c0b2254a92fac9b0f5f99a7e5a7667263b47..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 133972 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%0Ab{R#yn5Kpo?Lt4d=asKqYUr!^QvdXk zc;r#G?XODwtUS88p`P;z21RnS##wQD24_X*chrg1ds(aZ`aAye{m)uj@!G@UXPVuA ze0~k>+_1KuD^<2XTI96I3O0HsTsG?4R`)pWL3+oIjh<6Z4ZqoQ<-F~V^R|H-J&S*d zd-6DL<%*Gmj@>`~?%S=SnvYhkA{eI6u2FK{xgmO|Tmv{5V3<~kb51M#?S6Ut)2>zG z9j6uCtM4}_t*^9jEVa1C-h0ROT+ZBU?66g1epNiU)XNZC++$BAUR?Jn*xBeuxR7^4 z8sx9}5-Ho}ks?*RkCYXE2{_l<^ly1jAN?srX+tK0Wp<$Cl_%x=*Q#lP)JMrSPs?>) ztMYF1JibuWf;le#Q1g!|-O(3=>18g5n)?jCyHJsX8k5PF9aR;@_|JEt@X=M8FBRdR z4v&3W-gGV;r`jfmRR#Vn<5$*BEenV^v?O$4ZHLvZj(7f{^^X_G9vEabn{~(8eik0- zw)^R(eRRV&>mX4o2Q{unznT{7sTJ#4@;WZ4t*5pfxlJF^Ja%Sb_sc(~lySEl;WQmb zIZih}(Empujt1iQTICjdxZqm)Yt_^;&wb6G{6jx%6mTMSYIr|Z^*(l%b#WT1Mx5o$ z*4o(R_EqU}P@S z7@6nL{el>o%gb2HPyBk?Z&me_(q(p~&9qh3dwBHdiHnv`HtN{4qM)*MlC{FCv6K6g zvgd-8!th$$Ds&`iRrRn{)x}ri0+V`bQhKhQ4jrX=>@*Xlz^$sT@t~KS>g4r(JN1D` zuuW2R>F2=sE$y#H+V(wpRd&Ti9YyzSW@(GAE6>Tz$eG?3d*jaO$f5U2J;Q|6%ceWY zYsEuWweF+GFI@PXb}mQf+6A4tlJ4Hxt}kC+yv=u zWRvv)4#iKBd@PuGw-b1ndf;J#m%kh_xgjrj(^?2W+x>HI?H@T1epaRt1Q*%Rj|!cB zn96ZUN_H{eY0KC{=)C&voFh7y_uRcOiq6v$R-fo_6!SbKmOZs~*WOdPihVTRErIKk zTI(o|%N0Snb6siRMvhB8*+g-dBq_mpy_IFBW(A+aZF85d=QNe$kzet&?w2U9 zC_;mBn+H5hUEjjrvWKm!Zm4DJcDyh6r51AXW}MOz21iwHThg|B*u}BSxR8@~<;5bO z-yYLG%~;UMt}i_t$N2{S?+|xqGgp#a5X@{S6=8~D1;HhzGIlnmc&%<)MCUmQUCm|I zyEv#uFJtS`VV}LgQ}X;O5KK1Lx&-gu*1!!#s&PZn$jYl;EE7Vh-g=gGF~=oeh&$=J ze<252Hq9mXe$)yP%DTFbYW3~SUDODLF@vX<|~0iLy$P zd^(tUztlbgHdH?km(I__)yiC{Ho$R4^{I zZ+8_U3~xBMclzYJIEH6JV0dnuB*_ZV2Rypy@EOY5wi zxksM0b$9NILgMZtoQYv|Ld&=7Dr{~Ahdn8s8l@QJ&P&fN*Nalr?345wM=2P$f+Z`$ zGwmPlbLWx9x*_>X@Lp^T56NFDX2)8qm3XlH5QDz4bT zgBPoAN{%HvViuk#knJ-Fp&P$%e3 zJXd$XtT z|9<*m*PC^0Z4chs`@!*g9z2`Q(%3J`(#+Q1I$S>FTRb1fb5R+D2je>hi%u)U8zfJE zs2V|!sK|L9%79e(e*0ki{O^?T>kL`CYNpJ{a&i` zlLSTQR@Z&WP#5zyaeC4`zNW6>U{4n#~*f5ymK2ykIsjR^4>+ zh-+iL^>Z$zM?#eI-$OU1dFF`yXY)!fa3!tsdg~5uMvvs?`{1yTrE}j%f(nn6r@WC| zYN&s|%-P~u&Z|9t1dsfUd%LZ7|CUSF&pk0UMk%GvXFoK@Dmi5nfII@mj-T_9nxHW8 z>PXGs?NkW7I%@MbaUed)s{#{GOHqs;&7S-iK%LR-M;kED&-W~T#+f%lJbb$JlQ}N-j*);v4153< z>YF9aQJ5!Sc0#ugfY|}{)xhldRkZ01kUGo`!0gIi1F1tc&4|OscuM!!vgaYpu8G-Y zI}9S>;6c7~?Kt*JFy8&Bo2C%>bodu+qN2PUPw#@BX{O@YJ_S9LGzG-j2Ck2BXo%bH z(*cG(ph&B6i+4pIfSrryZt*T@ilYwf{B4p)4ui6AhC|rSTs$hL-A@WJJCJY#0eAa- zI_9I)9QZvLh_Ee>?j=|?Q9$5ae`#U*t_!gzRV8y_31U!Jyyd7AnG{*%+{`Xn{unI znH_i;ASt(6;oY%{G~yehkvOLHx0zB<2zVV3(@!rg##(owxUs)U*y3iDC1>Q0v6lj= zh8yu@Oe2G(Zf!ksrFrfeS11gl6!}VY3!M1Q6clDZIafs{|h&4U7&5 zLGdy#tl9uF*!0BX6BPgrYA|?j-@I<-BHP;-0sOBN=5GQdwA0OefUpbp>M+p}fA55S zwAT@@HfO7R)|ziY5m@10RE?4)%Xn4O89 z_*bQ68Ygp{{&MZi2Y&81s{D-a=JK{+nhilc?-lzRH8Oe=_k^lrTn(z92J>2X55caE4)cT=@O2}4=iW1Y|MpIlBoV7{Q&H$xzNXv?sODb4FeX#T=)hR{J+3N zephhfu!Y!~kGdEg38nuNjp5i`(uYTwpG3t(`fM!0Qm8$NUUU{{5%0{ZfkyT5BhRu| zI@=q7sw5 z#Xqj_GSh#$DIegQ8Cb#qvSPXchgF=1vtAE0s*e-!PSgOZaSXvb^RcU@!qbV=Nh19( zG1L73?|5gXIM9{zv1vjoG47l;$7v2YpKGSYYJ}P^vT4<1@KYr`SjRb zJ~*-N1U`JHQ+sX40%houN?mLW*_r9^s6m-?2j;;f?aoqWvouhB!%>l124pq1nrj<7w2(s zuI|vYRQLcMTVJ^s;h)DDPHzxJKuYsGxhlzq@rxDEVy6+?9) zLnKw%90~zM#T&CZ01ZXot|~soG_n3^0EjR&Z?l9#%kE$TwAcNDPf9N53YRUGu^K3o z1kz&(oD>U5P$Ha^T#hG#=6$zw*>8mAqb+1C8k%2e$7P$!SUHplmo#!y+iV0AU=9be zbxZP@CiowPm`Yr8IM!SY&2zX6G+#Y4lnt9zf#AE%9;QB{x9_=|>%3!tDKpny@g|ot z&^(7J)*6<#Yvp!8f+Dldp zTl{ZD+jw{u9}Q;%LeoJ^lY)^ldKO=j-XSD;XciB@V>)Tnhou{2t2?v=UJwb2|1kMT(+f*l}Cje1I%Tu z`@|GrE>p<@6skLthPlA(S`RlU%v@0l349j_`&5hnSA5;mra!H7F(`h=TSeu?A~~bI zZjrfU0t49qP^ICaT!rYXxo7h)lSUqk^8aKyOX<`_Iq-;==jwA6iy?iL8sA0EoyQpF0V zOgu=BO;yFPZ55PLRSaSJLFkcgHIE8^Q#rnK{ZQQ>I86WlHZEB3y6FsI`e*vMDj`fC zz`L7nW)iWd`Y7{Q=M19bbs0T%{d)&d;*)c|t!{yS&%f{W2O5u4OVgL9`V9$s@FdkW zCF$TFK-5qR8lJH09|$iO*`o|SaktfZm%?3QD^2wzUQ9pWzRvG6Z`pEGzju7w{q9j; zjoQ8O!ppyJzE|?XW#qc?p8*}P9&h{C1oWdZ0Id;*VNfH}T+k2Eh}lm)f)VM@rys60 zPzAESEFkSymZiWE5lK5I63Z+F9>b-(7L(7c^Av1L0VL+#eZDfxQovO3rP6Z%^tK5Z zWgS8bK>|?^$qK7u`l@l-H|8ne=?>N$>E-^u93qT`H~hsc#&VnNn5R&l0#f8-ve8-U zo3Ch=jZP<>egaYi5UNSU^^ZxZ9fYyOlDSNtLyy_zg? zk;(z%vJ%t<5z2=Y@w=gsIgZHve4P_Lb-&f&Ya>_#Zy7gS+jd3~SeO&z)kbjT%N+|9 zP`me~TN{D4`VYDnDhApL_PMv=TD4^VLd8ruE+J%`IYipKICD_pUQr&y)zvq{%N!y# zyrjnp6=M153bN5l8a|Wo@oRhJW+w>nl6IlDjCr1IM2P&Z{w;%c=AdeWn3PbW7`bg{ zogOV8T|^eSOXUR$Z~5{Ne)||3K^>paZ0>E;AE$wpNIo(#mc%p#5hLI!vf79rW74)W zlvrjhaOAg}7ATgvN~apj@0#%2odbb%g!5|>M66?SacVB1>xSPll9hRiXcl~Q)dU0* zVM7HayqH^*eIUX5m=t~wLo#2HX=v0R$8Q;|mGoN%8V44m^F%tmKvo4a`UYw(FyglRdk{BCq z`v5vG-=-09@~FP{`MNhOX!PMzXu5PS~LPL9UUr@;DV?dZNL)6`mv%|<8+R_iP zm`E4PB|GLSR0yJ4&voNm7_3~jpmZT0J`TW2AT?>UQfA+BCHIJ%yBpuPw%PF)c7R4cY;&vS2QAc zp)qmP&SAu|!GieE_JU0cpy{XXueuu^+Fmw8{P*@^OR33lG#xELs60$ZQ9_)IbQ;rYb-*dP(e;6;ct!?ebF7Lw3{P_%i;2hIf|K&y?WGX&++&?9Vw-C) zD<6P!?}6;Q@PMY;PFxQ>4%B>mvOjT;$-txI@#!S|K@QT`crtDoAWSGTpKhe+Z()UE z`h@!J=zW6pI9N83?1X2?1CvdnEme*l?p{^7G0Mk%M_46%mIc(1e%IumCImVLUNVVTwG+DdySD-#&K0PFCPCDShpmg-vxiGFaZ`>4bix$57mesiX_k3 zN{{A<#>pIKkPan44{=qnK5#XXRDkVn#kpuM(}(_=`h%CIlM1li5%1zlAYvc}9lzJj zgX<7aDxgj-!wB(6TP6}qEj7b=D$_g>%$S37WLguRAC&8@pSE?ll#$?|l6ydY>x*O1 zEFA`;A7&;psdSlmF03D$5fY0`lS8ex>(_pgN55=|3jVIZG!pLHQ0p zQHQqxK{bhhc)MNb$=$vk2&#OM{>iPBBJK{u&vmz{arnvoK+!J?AL_wtaZLWW-BR}b=(1~ZX6>SPZkhJ zJX&^#YZW__Nk3ehcL!?o+zq}v(MA9)L=0^P{r0D0RL&aH5~ zowCT|4*25qOng-@6F+76=4n%r@+Q8iN)uxuIScp`Oh)?%?L^;%R={NRa2h4L5nA!f zYupf=lxG8VmdsNe^#-W;mdx)An!8dTwc}CfO)dwp_^xx@iXG-*W6aAVK>(PGKCq77 z#@TwK8a_tRc6ScvQVPD^^S|SJPMI+hJ6d-Ko<5a10A<#?W?nx7o(}_Xe^r7ow;3;+o=H|3%&r&AHqeR9)P+9BN zngT&(D#3{SK0`11&&>g@TaM@EEfxL7BV0jF9qnZd>Sw^igW2gu!jbv6S~k2$Sp%<{ zE%725ZFlolU$oaH>V0=M<`RVe!9zdQTOEiv`M>xU5|eT01q9^Ps*T#~x&|B=e zoHlL+DWefPzeV8NvyjBalYT3hCOaQ>p@R;7kvta`{LK`8iD(+A1H^B*IuM@>V~MXp zb|*3h1)?dO3{W5%OICkyB+7Z;p(@Rritz(eMyT(iE%vk)Si|BQZWRrzVbwXS<8N1K zU=6G7^;-om?CE0@kVy{I5P>TqNw`^iWp^I7I>7F_Kvr-ql1!(!*v%wwty=>0!@A*P^-I==~yfr1s8? zwKF~#Sn}fO`SI@0gQq@Qcn#QqS2)tHeZ}0qECzrzr;0G9(ft~r(G@9s3Y#9QnTq`O zrg6k8h_rhIk#>HFM+#g@whWg>OdudP^lvvyO~7y|y}b@k_#tnKw7UzDc910xW~3L2 zysksCz+`f(le8L8Czhs;AddW-3OZtFWRBC3b}mdc{v&wAC%|0hhaaiRKq6_Vrkt1F zMFo8eoJf8bF!NviLHJI}mt>hY42{fjnwbwarX%g{LZsajh_w4UR32DLws=bY3cF^?GjsUezP6f??rm#% z@=W}Ejj+{#qIMede0>DWJl<6Y%3>G48#D8dfSLCw?242J?jW~%N{2)eN8H;^74f@+ z42}BZn3)G&4zGQ$E-$39rI|#Mokq(~=d@J{h;5&e3q|s$5NWq!Ced00v(mef^309= z?t@IE-9jIEAj8aG-bA|KNW1kh{B-*^=P)9|Mib5N-dNBDk#_S7$-VFOHtLV#hwCGK zq}}dJaw>qhu$|szDG$shTU@1n1zk4Qnx+t9gDJn8RnUba?M4I>R-ceBnMZtk9lCBf z(ypHeXREUmuGs}yU>fQ2BMeDiH!$%-is~2jq3>SKeVGJ)L3ZkJM8^dS0oMl=QVZ+*g90{zR`hM za)0D&u1P`&)#tq^9Z+>aOMoo|geso=>L_(BMiv?72K3b%_s?PHI(?g0#*gtm0#l6* zH$8`Pb|WH8HAdFb`Jv>(!Lm#jLnCt>&V^z3d=>=JUaNx&a?y`(xj&4&g?PUCcw&bxl83Y<)C z9V)HP?ix5m1NkP9PaE{Rp^-U`*Gld(EA6u&|8p(A90ro^)rRFKRUghz^O{i|GkL$i z=g2av;}OdoY%ggxxDTEe84&%=?<1FYb+zVE^;I*HcxmT#mVFen4IFFTGZb~-w$NLq zgpXGy>YmouzjQtmmb_utlxMZ4VQu^|($|BYBnByMeDsHnU9)s5Rz!q{Y$O`EN{q>1}HS)G$L9;CPFq{A@6>Vn9 zX;@&;&Wv>j{>w}f>q;sgMOj)S|%KZdbW)HL-M2P*njSTUs z%-MRx9(9AZcfO??|e+Dmzw6}9RHz5*4 zm7pV{y+}d14Y)~f?m~_)UtpW?Y7gzY^}&kS2?$*R9B(30gC^KmNemjKww=`)&sl>evH-!m%W``zvrUo(F3kH+mEB zK7$0jOqhjyd4_@U0OtbZZ4tOox9}3+Eg^}s=9!qQ)-7O&Y5TH{xou2@R zeIElZt-HmDeJ+F8&o9q!h(rAtDEBdGbI4}6yrPX@5924aZX{oV|8`pUCu6uCcczWc z1X%QLRASQZtKmIKg{9#ww`?z$ym(^#a#iAnbMGVD&XSUKkG_8PDx&94)&r<8cYmHf z?$zXDE1&)F@w4A2z1X(F|8&v)2d{1}Pn>_6+K~6rFJHTZplQR8`G0TtdBbyLXIlAe z!^=ziw!JF4-}$UDDZ+o0voEXsW*cDK| z+=IUZvDWK0ht<@3DWF_1Zfk#ahpX{oJF` zODwz^jBOKuyaGFuz6_sM1EDhf4O3=|Pn2KTROs_5{lzv?Tr(a0x%hs=BJ{(CFLONZ z{BXd^E}@YfSoZ-?9LFbu;%CDVpg6+%P#o_Y^h8Hjm0pp;D*q0HB8k2*4QV2%IJ%Q@ zf+SNWs9!zL6y4J_$2E(;r@wTDh*DzlpQ);0ehCx%exWr@x@WM!fI*3=;YbJc8YuDC z78o6SUhVsF?BKaqIW>|K9p}dD@<2J)(Qt4sTEr}c&^)@-2)Sk&AQN|5Ys}SDMZ@A` zHuD93vKIe&SR?rq{jlK+JvcfVV1`up*@Kiz|`v8>ODNa~}!`6^1%dLZLq zN5)Kv)&7QQWjej^rlkfIM_#=xuX%8$1HuClXVoxb>D7t!mtgCw3x}aUd$&o>U&+|g z_e*%oh4)`QUU9Y8yknJ!bWs^FM(_0*qgDp&EOnb8b=!xj7Pou8x#p5}&1LrOo=Mmj zbs~7u@z&FdebA2+!JCi?Z>3+ukaIoXTyYtG)oAG&<0Wh6ecyAa=t0T02U$mhC-gnG z$Rp{N>hZJV4}Ka9&HA@z?hAe8W{bp}$R&aM# z@WjvG?|W>vm^R$B>MzR>Uo<{XLO)jZ=|{d{d>+5-b$mV;Ztnb`Kx zR{!vQf-v(-iM?hUy#q)09w+T()6-QV zV4d1Qi?kdt$!&kWL5nnXKd6Z2|A_dan$u?}A?yRZn0mvSmokvS_TiM=f)t+OnCE|O zTn{2GMaE{@()9iDnqns*Pj9vv_}|EG=08y-MDp<7vFg`<16Sm76U<1*5vX|Fz!j~H zG|2DPd?%}~oFv+*yCAC{kl%?z_Wp`ahEjZFyt%S@+RuM7{Xj-}LFZ~PtNa&sb0iW*jm5&KjvL!apMzTi4{&yn$YO)%>^HsZ z>uBlC{fL@>%#hd93cP?Qb)KgXD{YYcW*`>cD2wElrn?+Mi|0RiFFr( zOINs%pW^+R`vz7JXkS!f%KvZ}oAY~2_$hcHfxVja`B7GXFo+IJf_W462{)6ZawabY!g(asFjNAd+JH4t?eGny)7x+2ijm9-zg5Pi z$m&05^tgR*m$%!+&`Xpm*PD(?O#u1LsV_=Ykiq9PgDf7UK4&XjYNibHRKsp!J>+!2 zO)U(6>U8CT)|#8btSI<;tLW72qWe$Gz;KC5f8&~}>gm0Lt6+PPy@Szf?Es&%bbziF zO0rNc;#HP~@@Q`76>f@H=HEaG&vH|iISAKW;HI!Glp0)>&ofuTrv<9YXX5&o%$|j6 z5VXl|Y7QjveX$#o_)<(|{y7w+2eRDM5FjW7_YIWsK@=a|lxHpEnJV3KI#C(l_rvM`G6sCHO{3b6TT zvmaEf%?m5FV=3H=1{~9)g$iuFy$qd|LA2YfEW7jJP$941iE={D05n3FeclFNGbQBl zwPYA^Q!Hivd6W~6EQbF`7A17d>4akVXC~ZxXzPExZp0|Hi=i$*00;8v>+(OUU!%KjOt z`w2*PhPrs8dAbq6 z4Sf?S>(%7kI8ma?XTo*YIA(XQLCUDCs#W3CWDgPyI4!2aZLZ{L%g}pPZsfY`s#Q2H zf5b4g%bQB{*C?|)N8z}9$nWXvKmt;1HH;3}HGlx0$&*Qd$F>d?Mlb>;9GAa_3D`w) zq<_He@>ZlK1-%$R4jz&tA@v=dgEu!JupV;oRF|id|EQk5ZJ%n)3q?N(Qm`w~MP|zR zQDpFV8Ax&TUL@L}1jX48_tKk5iW1xnSciLSHxeL@Z?~ZvXoUck3tgRb4C&^e8`t5L zU^y@-edwYR0a2%f&;`sEe9isBU#fC_{vi#0&gx~cA^?=HQV5Jqk zaeQmw4Ily@d9Z0fV|aU_)GeOEZQJ24;opOjzI8nLV_Y#mB1-Mz+V)Hz$G1>`egHpR z7S51A#@hz>;rZW}xr68b{1Uh*{Cn{H?}On@-a*1|!_R;H#z7AtcdhVIy8b%@iML0f zcA3})TMC^cecPU$OZT-aipUXtusb7n z;St-m)nx^p-LI2)lZ)ujQY)r-zsJ`~iFW4K8yQHvJ)vrsfo-cD3pz&*YD+YdN1^Kd zS)o`r6m(n0h=GvC2&XC?h~t$W%7Y-XofZAeH^!5QnxC;0Cnz5rIDK?D@GY)V$e9Gs zT1dM(V96_mPRu$XLna)(6eo($EA?dwV9P17S{Bv9Mt!gp3>q#C%9X8)3rYq#k)?ns z+((2J^S~!U%>~=JcKa#g(S+F?a&DL`YFMrpRJ`gN^~Y(5fmv#u?wISP{Nk-#&yMJ? zyf}T0IHkTPK_m*fUx>l`0;lmYMjStI<3Ji;=nw%FYWGjdcm!cK2{cVrQDxa)nTAIF zaY*AELU}UJ`q2>n`v{$k#f%IGdvT)90_kNTa5+XLE|nGHuzdRe2ck^d{$cskeR8}I zfWJnYX2-S5p^V*#P*Z_5w{$>`7i8|v3nh2t_crQ}!wcc+XEXKX`g0Xkg^*|3$YN|b zv>3=J5b^jn(&@OiR1r;vr?n$5z-60 z0rzH`MeVl)&dQb0hLB6}tlwJ}1s~wZZr3jgZzmKWkHb}cX)%4#y3&ns5-@eQV>big z8F)Of%E2cV^IYHQYc7Bwr?>Us=Mx=XX&=tv!Y@U5c|A?L&Al3kzC+@$PbQ!e=(JL1 zIO364Iw02zD*EO{lRFNgF{&Sq_*>|~+TJj}(NKns%|umH&S+w>x!_Z-or3b@f;TMJ z3m)jlWK`lU6vh{7Az%vh8D`>Yb~+LbqC3-u3F9;NA>gl3Tst-8xd z)V<3{08wf%ZLmd<6&SJLb>em&gZt6s9~AyJdJ>s*;qON^^Y(vqZrCV-g%SbZG`+8n zkkQ7?z;h(5OES&+#w!DQT)6ilD!v)EEsIDk$g0bWuA4iDg3t9?sHTD*+A2SFnc) z(oqWEm^9MqN9xh&p&0f$2nA)0v?8^p-dP$RsE&lH`bU&~FcD@YXye5^qKF^CVv(#ncHhN0KBMBc5D2cZf1bDu= zB;E_E_-XJiC5kA<;N9sc`RE;Fk*5?Y_#@@ZH$q9gt)MQF(3JKz>W^dau1yc#?J6h7 zpaSUc_%WQeodRN+oj}WPFDO(j^O8C?cqy9Ku63;xllgsnzlK2q1AfK+yFWyKB zP2_iZuF}*HLQ{fD;(w7X{{~9pnfbaXBP|Un|)E{HuK~@Rd9bLa%xyg_u?Gg z8hCQ!T6DVXoHdCQ-mY3+maTv%cU#|DbvO>!V@R*d4um^*4i=X$ua^$J7D#(;{pimF1V(A)Fr-#rpv{zXr&8BFt1^!;Q(I?A-`f2q_#4lthjq z)6l3t4qZ6ds()|`6;*dZr}s9?&1Yb_+10}-%1D*!Hobpoiz*O%t2Omjrbtfj%mPzude;XQoTC<3j@K6u?@r-nRTA%28sl%jfk zeQCaG04~Z0QT?uiy^Z?g@CaX>c1_RBgC`*#n0YlY^AmGLGi8o31`C8erzj+@KPAlZb7s!OT2+4C(Nu3AwT})DJWB?eH$A zmnVQH!Qo^0=dnTon0ahe(907*u7K}Qhcx;QRr{K0fSG@LO?=|nePE76~_0j(?7+ z%#Y`T!of@fD>-5hS^0svHX9rxXhh>g_Jsy~Yuanim7x0gxUsTw%+xIhrmhc)VKIk< zm3c&IWWL5{z<6jzkO-R6~8zqc~qeYg~M?0c;9L~Kh<(6B9kJ)g9M zghfr1iPJz&E;=%1NkGGe#$u2ZWjmj&kvSSF^W#HsO+Kh-n^O9g>*t{&eRK}iXW*6i zS}aV|s68etZs3Qzs)M4xZ^L zckxtsvtC`{A~jUrO9$hc{KJhr)v4Zc{NCgJrr*k$d{y)fs7H@P<@ox_{LS0RxNxXP z_moN^i6&Gpw>(lFzmc!fPkQ47az|QKckmJv>|^14Mky-C*H_-F2H=`}@Xhafzqe6; z9Kgb1N0zwRVajsWSid$gB%J72cA6`EKTg{g0kPChPVnTu43hT}lFV>Wrt zRXVXiWGRm~1~kB01GzzKjpUhl(oGjcPGctBkKj_^0314J8&A3)!K7PXum`nyLnaYN ze#T{cK};2&zF-du`tav;J~Qb)ZOQ9KlWwrgL#>{^Y%i0~>-J@7pd^27wJZ})x+5$# zM#H7km`V4eWJ`@BJsep>Nb5$1gB2cfr68$~%Wi zcRM_~TWqDOoUU=Qz!{`V36u?TyXlJBy>q^@vT<&mHCO@}}K^ z2gWjZWtZD?F+|=tK*e0^hqVclUgWLq8n-X7DXHaQxoT~f&C}+lTYeiNr*;>w?UFVo z|GlL6Vfm0-s%vS_Kkp0~oRmCdI%IQph73G-`OBowa6Im#ieJmCS9cxS8(5pP_1E$t z9ezjVww{_E+s6P%P;*}!5Lj_OnX91_1gVTL}`{5D$e!1V8uI9ags-%|t z#xHIC+pVWL;C?wo&HmZse=Nym5lZOo)(yH{Q8U8(2n)WuRIzaL-V@(He0D0ceMM2y z)}PC(Kk4$`8(5U&Vh#U%Q1_TWo4XB-`s3>qyPqg|Kch4?O~u0Sy->ut;u-6YX2+m( zlh(>Jeo22cd;D0wJ1gm>^(S5IKbnKfE_-gCvMI@B0Nn$ldfbB%-8!QK6$_j8oH+k* zGIio^z)`=5`^`2}($BUyAN8|Zl(aB+Pv)?Uu1rIt{`l1Prljw9S5Oc3R4i2NIWhlV zsn1yVn;oa5pKGZ+>X&rC+2cz2?#0l9j4t;5=7=#z%^d!9wk2rep4+>wzTabNp9+Ok zXI(zM;xXs=-TIF5Z3~tR8T4F{-t|jm;N+yOE#=keT?6kl*H!u*NoxuE-O$J!*Cwq# zP`dg;Ancc_CGAZGej~q^RIE3ely1^endO)CW3%I=ZqtvumVHw`&A9TZ$)xV`>B--o z9g*c{H6ZE4?VhM$qgZqfYToyHY-ul9?X#lGZ&ydwUcuKj6@kBswtiV&o!WJ%A~PhQ zd(8Fbx_|n$-s^4DABUmXBVHXD0A2Vjsl92f-@Z%173;qXNbk{9uJcR!p;;TyU9h5S z*;nP$ZdE)z7tmd17WVf<=S)AVKSXdhWT8kqNUvTvzWLs&g-7q!tILo4So+gIuiFZ7 zmv=>AqiE}~@@jF{Ky7nfqTi7nnxOH9M&`H{_^maU-L#M~Se_>sU#eLf8z6qh(l*C) z(syYpm-!`Wn>~(|@4hH{xn0cR9Mk^QXzc!C=u~SCd*GFE$FFh@x6c1-SHi$=SFep; z@b$rnuQzQIc8J%0|Lx>|D+5#IBBN+k)*)?3huAflGw6`^5LXjEESd9A-(>C2E|9YL z8WXwbCd3LxnEJ!Hs7*-UStGhxcPb(M+9HjKN|YV1I&)aNs8h^epo%^xEzVz{I=WaB z-jwM6!fEOpfA+vj(37c0u4Wz;B@b@AmzR0HCB;9&hvW!BF{G5sOCW3q>ctn^B*<)t3^hAI51`W)tk0 zQkIv-q*Rn0rLu9;ggY+hxVUT1TmU9Lvw1<2(;bqG?5A{tH!6v0FLSrHoLB)IO z!fn>cP#QaLUzc}`CVc$w?al!Um{Tz!h4ZOD+on^z^Qh>iTc=pOKvg3D?$E4s*A&j6 z!`e^s{MQ`$c%CA#C|;Fy7}68x9SBU0SJ@v zcbLdQY-SPf__{Q z&#Mu69ATP_@K1$Y5?3X|&5}WG-Hy)3%=|8IKTTfTzsRlZL)t|h;t9!|;r{F`(qhwO zPU9TapVrA7&LM5&iN*6|fpAI(wu^&s&g~e=`TPCa5D2Obu5ER$mupRnL|Hw}D@)PE zVtHyzc8HAN>bk-pT@DIfRmuBIQx^IuvFmaUipU**)i0ueKy?6AJI`tp ze@=215bSYMmV+joPq3HCwVy;1Y<8P?KQ&=YtFx)JcmT=SJ5V##!X-9o>k>-rO7`q^ z8J4tF*ed1+tGYk`>S8(TRiRjD=oSX5o)$BwPkUPxz}LR!SGNu2F|>NpnL~V13p3MK~sN!dJm>kV#o_8k0IvcC6}5t+wEh zsCuS9+p0#iv|3tRZXTBW*YHEq;*H6evAdI*B?5!p{fn@LK9-13rf@{WQKKhER(vZm zTCB?YTpMyl>?-CA`doWx6I>rL=b^p{K8s8%SUDP#Zy{Xwwn~J?YDW1`O|(K<9DiLF zn0komz@kgy&yzXswOY8F&hcusR}P7mf@J>d#A>)_=qTHTSxy?g#jXf?k;;jKlKcwd zyx_XHDwQ)QfPJWf)u9Ow31G*5sXg>>P545l$>dj&(JEEem)el)kb^A#x3k-I6x@n# znTq1rYx@IJ{}5$os?MC!F1jI}u!7@$O6z?Sx^YT-?GI7+*xkBEVQbt!<`{hgk-F=W zH^c=!Q|!4qXzufLdXL#o7MF|4nQ{$Jt(I;%ukf$*`K2 z(jt5$?qT9=Ic-4|M>LpF`TeMd*rdu3Wp5(WJX|mI(3cIxYZn2z>v-M-*Yy+FV zP-)@0bBCq>_qXg3oNEyoPpMdTMZ4B?N(KAAcsh!+-FIP+hKaKsMaS6+Cmk6z=kvgn zHq~exXWLTotCs&*EMLuu4z4(~SF>?7r>;X4e_*fX6w@S_*XmW9WOqqbNXOX*@|ZYV zRdaB~-0PnQuJ|IU^t$TeZ`#Bs;$v$#9=~bFrMGtRe$!t2A}J>3V!^a+9&0&9e?TU6 z_La`=9UA0rYpj7#)(Vxwvo6;k1_<$mN<7#URpKIP?3+S#ZJO?8&8 zK*j>3YpQGZV4C>G68B9Uo6w4aD#6VLFh8MXi{z`7%gn(b*PzMF4y|ae5{M`-Ke7}= z*o(m+m(3Zu1PpSa6?-A(Zk_W8wd2Rkoc+C2BmzQn_9NFS>+N-q0JNJNa0kRU@;pv7 z4>Wax4sh>biQVCUQ=)}TlUH)D&<>`nw_n`fo`;^dce+5Dr`Y|k)E2h0E^(;DH=k3E z{B#=Ad`{CO^;7G7PJpwnxp3*cF9S<>6$6J#rs8>f?e)q_=m!As8grwv-dVRLjV$TX zWVZ7vevt_tQJ|@_3syV+fhBfzLF)1+OjDsjXa|e#nK4sn+U`_f6JH(JSP^iCWh?P5 zz+hNOg7GAN z%+DXfbyw8kCV_gnSTE>? zr@Fp`iVJ_5eC5IkYi`0on!x+Fw~EG6itcZCx$^m!cn|$VvZH!cV^#epKrp-;E;Qe& zN@-08)Z77rD-I&PJ`5PA{@y{i#6og3x8Vvm!Nx)Y0U7sTaa1x+Jqm^7YzMZ+{7usN z&xEFuDB@`A@5_!6?biJj z#vY{xP7b^0X(SMp(ZhH1mAMV{e)>HH!sU9wI$)fXW6UHFlQVX_fwjxE)q$8ymIFLF z@Iq1aa?fWFcmP`Cw?cJ3tp_+IH!TdkfMRa|6O*SLMAi7H7ePpH2R95trh56PVO4O$ zV0^0VAmz|sc7~#I#_x01FFGNpE)!jmPyg0NfItoU$g#^NK>KeHTnHCaRZUZ!t3{eN{9ZJjj2eT^Q z5__&n84Z{Q?5y_^brUx=xSQ(6@Tg9nsZQrgrgZg(>Q;ka56%TDqIV>3eF(vKQq0zW z25dcdh(wm%07j`_z~PkL0Qr!yx2u$=m?ocpQVx?zixKMFp}IS&RZs7K!c@womqn2& zuo(Iom}}u~J<33B%7UB*0Now~4#~0A2_ZBGEzTzlgha$^q2eR-rj>4U4D#N629`PH zFYPx6#@&9WkCOw}aunDY5q$gl@s z2^02yQ=k50?a733$F{wk|LW@tkUNn2(b`h&zVxS;%ZuAz<+X1(e|N**b$4S$D_)J9 z?RWCm+?RfTb6=HdKN)LOS!3*p87&ze6Pf=u?M}Kuh%*i2hPtHG( zab)^~y|W)|t+_t2@3Eyo2|Zn${Nx#sO343{xdnDoU-$p~;f6@1K^rz5v5%B!_h-x+ zkv?5=rejw~a#Ku=&v{Ht)#t_}Y-I-?KN%J?WxD)@WlqC2OUW6^f%#&V(=aa={kg?U zn4liq_X|T{9DoAJUmJlgaQ+VHg4Z=jYxzJIeDDoogxnJXO7_H@HwkN4l9=Lp>~YP7 zPJBJ=wT&f8=*-pY@{$pQ+t!=>w)~#vLfjVd_w<*}ki?W&{AcR1VIBz+`+lK0B`t`K zv0P@_)}H{lcwH_t)u3W3kyKo0DOpasR`OuD)}=taVa%}?FoXc4Ye*M8hY#kAyycP)biXkurZZ9o^ech{zapH08>;RZva6vR>V3GO&h)vV?yl9} zP`4hNgr?wJJ=nkZVFdSq82Zcfsl1%Vz;;02!$TY3T_g4gb)Fuucsp~kueI}%>ZT9o z?=QipoCL74?dVhPDpF`&HQ4tsR`wpo%1)dvp`;4B98ZZt7eRM}K4AfntuKp7*oHsu zc?oo7{R611?=voZT!C;iQ^K31&v<62^chrrw)5rx(~tc%9y0$K2i#x!0@s1DyP@s~ z4h8p4B0B=*&^HLpl=0xZDXx6rmD{xf z)7@D(_9mqR*$ss5`JhCeBmlAoPg3{TW7$oK3M{Pf1Fe5~*QW%k9d1+Za4r-Ey3UDa zy~bE6fyVdwUFQFYf+kk5I?qMOvr@|P(REQ|n4-wL+7eY+At`}R-Uha(aH*|wVqxc} z{FIsUdeg$r#z-~f?salJg?NKsOXG6-&^z%Z^aD7JMqKYH+>C1TT40C2FFyx4eZpad zoj~Km7C+?nvHHPxuvqbZotml6OM*Rq9n?XI17@nvc?p-=DUTL*Ug4+M*ePL?|ACvG zQi8#{LnSJ}^agnf*D&>Y+FF{d0~xF~IaKX{lX)H}3|O605$WS9uLsW!(D**%U&HDE zz{A104NNvq(%5cFSBv@)qCV#;TxzYHSkO5f`eCgs%YuGbD_4Z5_j*7UqKd{CHZak- z+B#$`!ctmoioe|fPMO->>A_^Vr-gxdh%n8~{bP~Ey}*<)O&H)5jN@KlmMzrKzNXwY}GDm@(gm%D0Pdia9bpF0~npR^?EWxgKzd^pf<-s6*1}dE(-dKl-ar7~?0t{7 z(@Pae5ZCi1RNMEk&4o#Wm8wmhV7fV6^|)YDXOlfBcQ$nfmo)*kvbYK4V{gjz+~eiw;aGqLV%V2H#8ku?WBWulEzn4Uk*d(qK|LKQuf$1r?bgb z{n9$8Gr(H-g(2#KH&s3MHC9f`sd~)X)R~0h z_kKSF<9-u1+$G_2ar^PDQ+wePbm6_K$Brm?C+X|ERjdAKz~-zb0nQhCFLtP~b;@fb z9o$6grY7ue-I~u7bgn7S>4ZS5x8Jm7)5HJHbf#&`rV(e+8!JlQIX$WVGQ0vGDWjeh zO$~Ng6bsgbci=3QAN;-?mJTr_gt~!0!v51|$FUOX*4VP5M@?UVQU@$Oe z4sw6~V%tYyJ!{rJI{8J%bn@Xa*cbq!03$-73>f4Yf;k}|Gj6@cWB@o+Iv%t~`heY? z@#Mo;1o%uK79#-3?i`gfktke5&drluQS zUcbo9R+F1tq{cx+%|nnO@k&n_8uiCfAwcpB=2;)p$S3YX&~REd-wqjVh{d*oPx+;$ zgSSh|LA}yBGgu}op0yaW*kMBZ3k*g9yP4cE7Q=Z zKaQ1lw!T;;cWbAwodDaIJ|(~Pl73$3C6=32khT-s_BVriW+tKil-v=690A+;r2`7R zXt5q}F+#o_owqZqW^kLQxf~WaZz~GCyya#^)iXz43bp z+ro0J?AVzGtb3fHcI@?0W|DhFsPo;-GxN>p%5inzdA0Un6(ImV=Sc5mes$ODW? zb|cF1bpIN!ErA2C4)A%wU3 z!G-uZ>dc)Zg9QAcxfd|2WB)DC?<5bU6O%7;el? z%6=3PW+sT{wr|W)07e%VMM`(~HtLT<1v~COoP`d`1Y_Xf1_=ejL{Cltrm6 zfzNOyu7{91M8|)j?@4I#ad=>*T1z8^+4~S-7J@c73%LrQ=;Go@>G9r1{c$)8wln>iDBYT6meL-$9;dUaMthKr zrc&QciY-;kjYHdgjRhmQfNoXQpa{K{VS@!m=1386Y8O5UjVV8&?+$iOCdc5#{$B@`czsBvS4qKKr!1p7Fc04W z=DI#ukO?+;AYv%!HC6~bAIU(YxH0BBKyf-?w*J@zp>w?y9hmEyfKD>ywX^aR^p^fa zg2kBYV7h^9y|4oXFWAY-Tm@#~58mkLE3hG|;2dDLO_x8YYy{DLtvBc#Ow*g|Y9NPy zHQd@aeq`7=jL{L_%9cCkDH_)he-r&ck6D^_zyN{Is-Y5^=7|`pq0fdei1a_YSg;f^WFtBZ01PU<*)M22N zX757^+kJ%o$Y_8Q3F7Kx@z`6Z6AaaC=lR{DECUG|pNL&a#(gh~-)m@Oj?=NVT*g`# zmj~_;=mYHDZ}BIVvNQ{Lex1}fxh%dsPXzPwhBj*4onq*NTb^j3rDpH9)YP#qfHwK( ziI`k`Sci>g_U@%_xuQs!<6JV&UOL#DsFPENi@2&FL!=#wovXekBz>;pwMAV9q|5QN6UbGt5$ z8uz=QkvWbhXs&Sm8mKKk#O4Jgz%yE&gH$q(D8&FB z{6F60s+(1pOU;xQu3JC;YATn6?z-iOOl6K-5;ATMn*%Fks(EN=)E~!_@p#w}-SZCx zKr;43DIzmuRgPoHbLP^cn?#4J;`yN}AORrZMqFK0-h~SFJhDa1vzr#gErZNE_^ut^ z9@_C#TqhW!p+f!sNm-5{ctbRUhDu`t$++89@iz>O%yDK&FcWde7bYAI1zGBNDFB2v-byQ(@FTHxLBayHa${^SfM9&J4D~YSkwKBTX&0IgI-gp}}SNs|_=Yb7*X=^@C1vvr2<~TU$uEIeoGZ1p` zgw2WV(K-0f*qjK>y#wY^A8P+Z3qz+q z1eHq^$$`(v2YHM}hUV66%rro=t%>BSigQF`nZ#Rk9sbL_8-a5T^4Z&lEGT;yhO+Oh zTRD?U3q<~dQ)h)I@d}J|FMNOVmSv(O9fOf>{i~bvk&*7j2fx+ZN;hD7?k>=CdK3r} zzTb)p{k@qT7|f@Qbax>NVM7^;_eS&)goam6B$6yO9>b-(7n3io^SS_^Lq@tMD>1Ev zVgNAkjj*N6K#PBf; zCHVens~z*YlyF;tk*>vA>X+ZuEDKC0A;RX=7DzdtM1W6zFZSA$K+1W3*KEc}2MIQi zjX(8fb;oD7sUWPid7;Sf`b8GFn%wFlt%ihrD@|Px0TDJqzZ)8v<0yB(Lg&H==^pvo zXx5j)h&2Uh|b(ThKwAyI9VPI(joTPV7q0?}d3fd@p$}FhQI)cV7a~gaIs|4~+ z$-2_M+4kK7a=Ty^3euhS9%NGR4G=$W$kqqF z|AOM(A#v+eV`%r7AsP_ULHavxq=Vow;cHc;e{e&>Sa-Q58`)za-CmgO!`*rG{r7up{$C&a?~K7i*iFbR z%kIh?0$Km*{j>ly&d5x#R+r~=!A!RuX1XobQoo!oOIaX~bjhMlSpv@Jsy>=Uox_vv z9`M6rNjq(%6JR6V^N+rsj&$)K)gue>S9l@)-6XSkW8DUCtfye}?_Us0=M3`tGuFCA zde^Ltsbps;I899@Vpnw=nt1=E@6GGV_^m<SIgB0Q}kTt-4DxBDVg#!^rwF=X~=^%;9z!5p%B3zrS$c1wA( zVm$dCA|yTD6ib&5+W2byUV0yqEPJ4ZWL`X3-NNBRgMaGf|n>bKz=gkANs;TaZE6GcPB%8lN21|_XkxwVn2Nuu)z_|P^ z{x14n6$@kV>98haGMO|Qp~iw?i7~BW9y3I8OW)MTPCRv=vM%X-gudJkR>OFZBy*l+ zCiy&vvw+JUCu8lR!ug>7wbgwR3F==n3CRT0g`>ym>yz+wSik1c+vhhG{d}?>t{|v3 zlgx`EJ;pQE;XZ!iKHKLCFc3pG;Kkyt-B`c`(=pxXA54e3@g1IsJ3}yCUnBNFa|uKn zRTsfU={IKR0kRmbfu4x3ZsxKfm@Y7N5t%(veP+0Bk)>op9>;yS&igyKCc|}C7LngE z!E~HK!|^k{e=uEjCzp*U<9EKOk+C``lVsA!U!CQoGbPFD={$CQK>4v0{9^c4{ z^}%%2QuG7NguEE9r8`50JxI<&tRz+W9E!(=s_%K3FhF^1$groIevz>rQ6{TNqu~Bi z^6HsgaHJaek!ws9Re&&alt&)R}Gvi@GgiQTIYW z09D)`cMgqe3&)T4t&m|KVk>biTHgZ^Ie( zIn2X7qP&m;YnOMvSS)98+Dt0QY=QcWm#*Mbvbveiwkju=E(ImTWJq6yAGUFAJEzab zi}sPTm<;=93wbfluy=+G`z&`|h>fJGfHQ~Bh79|8g>Yr~Y{;;uo4n;L`!R`EOXMWjpS9ZS&}aFoUbeZNn0LgA2UO5Nw$b{C%taP-$&T+n*AAAbM63@R>fwYCU#!%T84hZE2E z>qLC;lG#Exz)NN(5$!yZ1?R&}?a0L3WE%qNrjYAx&^CHH*k`+UhO!|ZIb_)m= zQ5m*!mH&(KnoQb_P!}4UU7&M!38`>1kpRyIda`ht1}nK1kYKF4=%7oqkQ~e9csS_B zsX)o)pu4t!jG2ohH}KzbtU^;0&jvbi=d8mlG1Mnj)?4d#l1uje07Z3f>OyNB2>0A` zIH0E+Xex;d#rC>PeUqudZTIBSuXk0B%tAXNbaui9ekL!p;&7E9j`A8ymJU-pMuS0b z69>5cuJF(b98h0usk3}jP#rSYIawlE%sZY9SZhzxf2f0q_J87x`*SmAI_c+%f>$FY z7C05RgEI?#hXx4b%)mn99f6rdp2LaeR(Q(EY}jgvDbmFyb%rpi$+g=IU8J_VI5S2VA+=j#E7~p5cK<);%(&EdzrWw_zu(#O zeVsis^UV7`@8x;l&*%Bjn7mYQg&1Hffwp0+qHUOcMi!x1Go#-MP(Og&yaZbbN`w_r zWVV|w+BX7q$P$o@8yW27&O=syChgAEDExJ6c=MFS^M{MJl=N)se6lt=Ei&tQpM z#R?jmmkKT*0xLk%Fc&yeAQea`)~u8&P<6taZzA{hqIyN!2(@C(0A)IhA(W<~^WdVO z^Qac98z^f>q`X-Ojz=oiNRsR_AZ=avqa_O3bYAKh>Aew6enW$ubfw;c92qFqT(VQN z;m^zyp6Y|QxDh)Tt=-yWU0lh^Y(Nwhgm9hJ?npopWLkdH4>Eoj9_(eslT_MeME1+s zxo%bWm~Z0uc0!*HP)L~|E8izu2VECr<-ujT;D98=NO}omn zRf78e!81NyD`{C?$XK2#ZqGjPEMoJ|86(acJwkTmJg+@FTxYP(P>h|Dhztekg=hNH){-$y+QudCm*Yx7=6%(wupo|HEw%^O%p}n$q(lyS! z*W1z(-^#Y<#8EUgJ2zk2=J(g!*PWX+_jbHnymM^hU$2$#p198z-Ck{W9@(F{CDmT* zgkrFXbje8iA^Uwp<0+m799S}JSs~K!;Kdklrp8m8)x}=`D|BL}wEmCD=3!1)JY_wc zH*Xoj)ViaHoiE*>O&`zPr!AlW&dw%IbbBy!UxY!@+t1sl3MiV|V8{NtkdON_xv+N+ z7}3(l71R<6M;a73V}jLFv4D~%(g5leoV&u)I`jgDH1EFR$y%mXono-Lbcqh#Oki;4FS6(twIZw(XjM&Z8YE#5oNjHq59|a@!Q2ZxxY;K8e$1?XJL>Aj2kl}7K z?=^w4+f2h1? zlF@VpQ|ql_u(}B62iCq`hoJ=Bz4%Io=G1g(r!~h#x;6GTR3PL)eHtoo*w;> z!@i*j6i*}0s$^)3Tn&KW8F8j2P@Gjoa+zT4K~s4JEC#fSL%;?a=WGHcC|4tccb&%Z zV@YQsV1quLLi=|c=(!q%?j2!6EH7Duw1MrQWl%HNQMzOd-OXWN++GT#t%qg8mN~f^ ziM$v?PR?G+OjVIQc&D0-3EsAS2K=BlQM{*R*c}~R`gjMeVKuRK(ha(Fv#Ff47~X5$ zy%a57y1W7=X6?5M!#_l~$pu2OlRS@Xw|Cp2RRYbW6@k12C;7#DB8@O!%p}g#J(LQO zBQ)ZyQFLJ6EofH^wvsLxML)#UYE>1<2t3JPPwB!dsZMfOsosEv^izR=QY6yg^R7?e zoE1>0I`m40bh|TiU%Y_AeFWJMhi&2||E73CQt#l$ukz)=dN=w?J?WDt=+e)`+F*eD zJI31Yn>CUSa!?CS_4SqBZlg9K9!!vc3C9(=aPodfN0YwBUMpP@Yb@QMNjKBuz#{+k zp*V_`CVfTPnS}kBF}fV1snVOzz9b%Y!EAdbT2({l+9?|rfBGlsLV@@Hb&5abGKlRV(>KSk`Z)Wd#yNC5o+U8 zw|AwT&#@Ml>0C%qJD+TjSV~cj#%$j8k({%!6siWj(f}I7ZeM&XWlK6KeJ6FE$J^5! z>=0oz!KxY()Q^&PI5WbW=y8-}?at5O6VLnW;LjY#8+Q9aY0PwfMuw*K^?; z-ad)!dF&Hr9fHf|Hv%O-tfE z$~FdGa0t9`$|L$mhYt}KHOQ=@Fv3*6ync~L6%9Kf^#kN$Y-47xb@fWl~p&b2^zqKGu=N{Y@Oczz6#LgfAyow zjUN%BC6>Rhe6uX!VY*{Tm3PSOXQdlLmK$Dpmj5sv8tNu}=7sq1=*RpIP*)kvDR`$t zP?hWfB`Ns2>XPmdwA_<;RYeAA-6`EL@L~~$g7WSz&Xjea{qW-SRplGzAH+}6^ly#?JG)$buZbG#ZU)(fR{JBz2uc;*qkF(Z6&m> zsB6jLk)8e2c!D2V>Z`5MEr49mK< zcHQH@ua;l!`e*pTU2pzb{lxXdho2&bd@(wcRuSyeS~}Ty`c7M@==8n8(X&c}%aXe` zYc30ZT36cXB!3pts3`3?bNB0o&x+CvQSkUCf%=l5C@mmgT?z~B;F|+4Ag~jCmD&VB zx%W2i`j?9jJa>|JjRVz|MN3GFPU)3erP*OgNczw2!Oh%gL54=EC{4vR_ z`6Y-Ag@Aju&wmW=83yk8ae#YT5~4?w|4F^#VOa7JUhearyn717wHY2|AilIiRTZ7` z{PG=379T0|XP0r=AG7tcr5|N#hMRBT&#cZY=gxJ9o62XEe2gUi{Fdnkc4UQ$BhC=y zs**F^*>`{WZ_fEM>6~>__SG%Yznke1y&>?RL*PN^CP9{AQ|8#^+b$@%8!^2->_Si= z*GlRzz5UITs=6shn})FA(b25VWam!z!%fF$mE4Ua{*1}DomVnk-18gxjLM9jy#KQq zSzreH?!uEjx9YMI>atdz?0Fc{YO^-hBRVXwTICsa@)X`;eUWXbpy!q%YkZSFGkO!R z+JRSHpvdwR*;W&OuGH>K5ZTU`&LE!wMXYzfAX1XfbZkfQ*9Br2x7V8jEv2EKmhzfH zkp6zym9l!7Lxic}N7m$t28}VvlM^ZqoHDd7ooF>0JY&>>jt45w=rG;egS=*0hd4!S z@Efka7#Ug@kT3ak>v`vg47?DmzhcYj)|KEHuR8dj@6K-l&)5W>Q8vIcE)WBk4tU1> zoqiWI_9|fsz-#^VGUZ5ei{2DYG=Z-_S6dNzai~LtFW~PU1rT1E)RA7VfEn>f!#c+Z zm0}GkPg62z*@Y`jwbFDg)w&<@C67ak>b^Z;_Gz8qS~1|?dFVB<9pXr(DC zHr~D2#%9seL?!yqX6Ge$odGsp#9({twXe>s(X0$=BwfbvV`q+RU&SNwj-7LUu5#*` zvzr1V!n2Yi*#2G$k;0CzIlLH7wu>w6`0WGk{+VOGRY5AZ)Q?th5{c>A4$RsQW?7KV zLulL84lrv}pYs^?+_2|I86>VUxDS*Z&5^`X{+1G4_a>Yd9M<=_01Z{F^#;!RuPx%642K2F*R3fJ{6}(XA!hDssDv?2 zI$(@r_Kk4~{Osh;dX5d5CNvZLZP=Yl0c+dv+BxwTfNUxwfB+*GsU1 zt%P5)j-@EP_WZ1@Ak>E1;9RM5Se$Zvzr+rGh^WMDL@{IwDA9;he()wh_-@cX5b~An zuX_c{XbE5tfLgo~l!8FfrrVDQwVGW=76W4n8j|EzaboTH5buE>H(B-H1;!QW=uOvrc2*2@<{K1z^{tiWTL4Gx&RNr zhm*elYKG9%i1B{mGRF@np^Fd~7jg07!t?Kr{1X8KZqLUbuYoYu_LtFH@(%-6pW284 z&euhx>A{ON5KfJ!Ig4Ck0c1PUwO}U0>OaL1T(1I*)Wbj(1)s$2Q;B5wmtsVkzPuab zh4TcoB$3N7K)`FePPw7*ixIh4k97L5b1i_LhYG+Br@#xaT9l{|0nl#=i3pBG3A9fb zdm!9CHBLYSL;xW1!%mAd19`C%ggF9Qo~lS3$G118+$VZU9l&hI3;zX%FX)5eUl-lO z7QiMoz_yJRFd`F)*{8n3q@Dom_fSJmM$q@ryhqV%0RnH!0EHC=Q~#}Es4c@~JIIBA zO2Zyn`#11>5{VD_aH8_)Cc4lfO93)X%S`~vU8N2Izwblhn;8kyl6h}*6KGm`u5#iy z-oU8F$S(IDxnExlh;IV3FD1fYcAyL6UJ8W4&=$FxDZE%C;nW10bFNFQLn^G|^Xig$J6O09hm|b@W{yIOto{#JMsy>bsiJglQO{zrhCmf46~B z69@bLqz!hAd$FVqCIj*IF7{vp3B|V>S2NU+VK>Ir%|YKlRV2f%w6wisD82%4__tuA z{yQ8#wGW4{v6seeg;0EC6ffm(MXSkZI6v{4ergp#pCChVladKSKXX{0oqE`+7;41; z>ck$gxX81sSJ_*GqVF}9;nLd*rxqwi_M&1*^8HX{M`btHdIb)-a z>l$Wil7I%;@NG_r?%6X_kx;yx76QoL_00 zKe!eQ1#X0*b?p*;1I17chTRXYZmJ@ziQb&znhYX#1b)i&5ais;d-Wu3;z;4ySXxnz z=4{@LkwQNMh6!8II!(isGE#`A+ME#R+6{5l8wSR_EXw-mn7MSeo7YPG#ijK(O-eps zxS!XIto4s?RS$iQ*nMK@F4n(QZ4{I3GIl4;^B*kpDL3{XZ0b(h-fYb$sv=a#mnWwF z*~Ri#C*s+atq4|6hc;QHpI#mJ4B7aewPsOj(l0dsH<*o4_C5PWsS6;l?gq%KYt$-{ zJX3C*oG?;;eDciVA+-zjG(f^6%cb>6)U{pgkOFS(3oIv!mY1bjz)f+hKC#R;byhb^ zUXR#yv)pX;S5*&H7Xgg_(bD*27R>EMyV#Wvk%T8-TrXYE(v)y-bYSzMX?T{4z&6#a zhc#tW_15cI&l}v=)$ZXt_OSFj8XLo^u6!}Q*!}ziZ+OK^*h5Wj$gVG4w2n`Y60g5> znw}n!6)@Pw+9%{# z1KqtWQaa?>wwqT%67IVeKa)$Jy;)duDIZeoI(D$eShH`*4bCC18@QbKV*z6$#O)6- z!wB)-Vl4)O0`ArCOfxA#Fe zLaf!ndNvbs?5@5gXT%&kM!&Ek$i*OJO6L+n#5g6dxsLOKWqjm8!f#ifXPPYJCd#qg zaPgm+0XM8_XSK5+&93dwa)V=tV>_$HioI1;gw%ugUCf_l7LS_ST$=BH3tP6OS^Q{_ zJS_(C|D8o$z#b-N49N_jZWfRJfqQw7eAU4e;k+%5zq9mzgZ6lNLg`T7Rx>KCF43hp zAr~q^wkq7^*q@Dc8JDr#5OH3H$qO{`GDh2q6yKLgms!?^x3JtT*>y65ZHS|~xahB< z!pHIaWtK!otrn-hM++dyZq!Xnc8@G=2jc&j)o59p6e@-!yNg;gp5L%!TSJmvGf1-Q z`ZvlgD<0C^v)tmKSI!j+oZo!rK^>=wMSoxQ_YRt4XeF9>9?K09&&)8XM1_aI0*l&N zjjU>a#Icd(Zoy8I8K{e}mHfVAp>YN{=828$DnF#;g}}9ZT82p#T6rEjA0#%-2yn8f zHEU%3m?GOcEh9gBsNv4h2hL)&4H8L4D-bt(U9|;ztfL z19!x+jy1-d?I2^s2m{6jiaqnNtm9~69%dLQ-YYc8RTt$gLZQ8km_Up3{R^*Sy$# zJEZg8l@-#!7p^rdcLv))X5ff8*0A(*F|P!aV=R1ri6@>ZG)Y7gbFo}?5pvRJ`gC~ zvPZLnJOcyg2Z)`8pLajswyq%s6&lIRb_k)LSe~m2-WR$EiXRneysx8)YEq0VK5`@MJ z8QtPQah}km08K2was$Ph^{m2GNU?|P?ONhl15d=Up5?A8O5nJi$z~T2HY@}i7`1t? z6m=8xFtb2$lF;NhTA7ETZU~(T^-zaX^03K7F5Lj0(EA2M!etTlpds{P38^VWJ?s$I zC!*;FGQCbLB9(y{$+TS%=6(DSLoze~^*n)jCZiE6h-U>SuxSCPv#JQmfE%*{OzuNl z%;?0th6w?ZA1!Xtl_fbMzBTw7211dUP8WJ(JalvdTB3g4U4J3^>Q%VA;KM$ zhXr!!CIzkwIe9N6BE?EXQp7F&QE6#~Fy;6m1Zl;!t&ruLQLo#W_gF64o{3H4q7@i5 z3>B!0aNJ*xr9Z)mVLBtgKNBl?@`zO?!l-=oju1PCqD7du6CyE_;ZyG8K_aYCQ`sGV z8xsgIV}=Aa^_LxMQD;2d(ia3GB57W_p<{0^Dq~pI^1MQo``Qf zzQ!E!l9?Wd>Ig(3gKnvtjCIgHdBP%XPh@!>x~D4GsPxr1UKZUhp*Zuw<@KU~lG9j# z#kqIc>ziF4;JOw_oJ@No!hC@1oy9z_qh1;rjaEVEhz#ltRB#rXrY`>VygpQB`b_C0RY>iNQLbeoA+->_Q-GZdM2m#pPUaG`dVGq9EJ!58R55x3u6MfekBEuM!3h&& z5RXdsBh7k_La)LM%$ON{&80Tv1uD3Vi9*o44C)IsT_G!4W+{QZ=<;m{vjumvMCxSP z>LN_y84UVKVyrB3sjd74kvyTfmR--FcAx}JflBJYb$F*W^o0Tm?#X*%cRcYrn||DmRU(=J;UXP z5#}@8%?ep1*H#ya%yryTX)sV7>ki;h!_jpQPX$;WLVR2C@m7eFJSiEen#%POWHvG@ zF!~|nB{$zyaB*5Vs@c||iprOfCJ<41S|EoWf!bnC30|&c3CF0LxPk}RvLM&3obpfNPz(NL=EX_Y z68DG20hVVG-wu4dHF8IubPlQ70JU(ek@*0lpG7jbk*=8+r~Qm-z9MSjN>)M?Q442g zw0E-%f;jXjl!(R!u4VaI)B>*H1ty9@^Rm3{Z6&k1@q#+UdUdsSJ;Ln9-E5Ins$xgi zqsyN#w}>m|-^ zWPZTrzD2&0f%wDZ#a%;p{g*)ejIrVq5r~(%UQ5WaGUOc?A)FrDwl^noFaUpt$_jNE zir0oJav^XAF}; zmfT;i=R}f$_`@2zuDIRmK>UWRHxNJb@GWPg%m)JTV;SE;^W%D<`8!XGtO9ulCJ2uU z+VWIIRUn?F3dAoxhd}(o8#x$3K=OOh`H=z;GZ`fVb=hC8i{3*Zeli2pP-ZM(>>>kk z&$8zbh$Fp$cpDLjUwICJIH<1FFvH&}CfPDpZs)CgCW<_~rwsyefa(uG?f)qv1MyB( zAP(XcwA@Q+gm{G-m9GNmBSyj_$v{y^Xw%Y@RTKGf30%CL8W&&u#`O#hp!`G-yt5Wm z>8c?R|KfVhCD$s2cfd$EJ)zAxH!>D*@p>{)rCU5hjn?l6?vsJ|6ICGoIb$7~dkK=` zegJKoMu%{VnoL&)S6_zEghw#mmqTEKK4HVG-@mb8dSM#?n!;WM+7)!sfat za_pWq2*k6)dC-spWN*lPHxXN+RDt-oQ@{#&RsRzp8fY51<&%Z}qyVCNPPD}Gyl-@N?))Z9oNIZN=O9 zDhJ^Dy~upB2vCXlL!<_9Bwd#3v;wlK`~n$fKIrs=^8u%iP=rUk!7bw3w6tXH?lV2y z_rmW{@3&{E3?bCxFFme!UZN|k4%##$%l~nlV$w7Q*gVEQJWgTr1Jp-co2RZYn>i4- zPeSyGIQ)YtY;eOA4wMZ8MmFq?>}0B;`6NoeD=D_keV2t2EK%@aPd%4H*9NPlY3+=;{6P=;P&>glY6Wwd+dcp0oemm z-zk@N5}A{=PWZWq?W?R=l z)*e##yDu%1z5(YI!RiKH76gi|w4(s9Q6fZZspnq;ht^L4cH(7nj zZgz%9X1q#Wo}h5Zv%=IzA5})u)8M7h zYn9&iFHO~Hs%#-Gm6>KSaB8~ab@C1y%0wpD$J z`X$@*xuvlbnhy5kRi2;O_4UBHT$IF+XrOvA{_(N<6ABz zOHQdFcRglW#lSY>UW*};fGzY@3&>Y*;DLD9%h4NoJ7PrLI}MWl`Mh8g&o)LhdCrC8 zCirfmHsJ8R1;9Pga2^#+ZnA$C3zY86mw9Rhd0P==FViUo-reW5{dapscz2A*i^k!ODn|Awkx87nPr*Ycan^64L7fTY9jcNt?C{T>|r*U>wIK0%-FU}?)fQ`uxFX4k16DjZ? z1h#h68*;e7o`;R*j*_VyVx9-(cecaJnYr5xYCswuMC7w{N#S@%fxmN3|J?&>9eHv* z?NM*J%h$Dux&iRj0om>3Q#oASVq~w9>hO}PTYMx2MljuA(M0)qi(b7!Qz@ zF|ba6-1Al*lT>KLr2x{u3VZ)|0i=IcV6lcdu}Gw&R5&>?Cjv+xaCj57bb>P@p+c;5 znG-d&gGmMXhk>n=>Iv2fSs{~3C{4~jypIGMPsMUlF;=yn@Ruj@5!AZb2kdQCG^fzhJZ1X$Up4)67XS|^PV?H@`U zj;%ij>Fv$~#HEx>Z^s{(Ooxg0c)H!hGHqci{3O@m!2{?-PB-i(dX8!WG~S&{yDb!U z6aUQ7+1gJ>g7kJnq{*8UMBrXw1;@D4U@Utoh_`rPKQTz8Q>qx|!<+6a+7BtvZTv+0 zw5xV;ygcSHoMg&idv(UAlNE&Ye za6ESn(f;uMyE<`-VfMTs)8G)`MFV%bdgc!YOrDBuq!D~J)?$s_#G)J>FK8XRiGbe+ zP~Jo>jo=5~o1X3gRa&Q5@&NTby#}fT5)*GhVV(=Gv*+DR5dpx=3N%Rjm{(9QaDoAK z;RL(|`M;2_$e}%1J+xavLi3F`M6k_J(SD6Mi%+H{ zuXh7XfBG~L5xX{Jk*CR|qI*q+RUlpZ$Gy5op+KrLmd5Bc0dX#e?gJl zxI0r#!^(b6jAd~ubRhVM4rCMio|Z@Lqve?bEw7rG_2CPg)w4dFsFSn4RY^2a8yw#8 z8N{q_1@!tM1L#-Kh6E=M+!X*KF$PUbzF}a2&fWS0A0e8QuuF}UG(ue-=KrO|0t+YgtUr)=mwXl) z1bU3AbW4axN2(ac;SHfndx?AGtUp~n>swWhm(EWlIxb1a8*eu;DM!ai;WP|fV?@*T z5#Sm_gK^0f+Lm8(VlDJWHo>+Ed7=)>LLv=5#%rAfY4DH21~4P+0HncR(%)P5$L+QN z@P+%coc-bbcl&w^$?`cdiI{GQ+RzNfiP~VQ8F|B&6FoRNS>XimchHBuV{boE70|1E zW6p&!&F9Eodop5k;N6`-zB;UM^4n#bMW(nLK)kci(`(90ff|Xkkbmnmqj`@%jHyA5b0l1dQ*Wyit|j%1=4#1G;pY+g44HvA)|ulERaUhh*<^*UNq3eF;LGk zpgEtao@JC_JfunlG~ssF(ZRWUENav;IOq)!;+fJ^^hVKkssFA@90!ze;IMyB6QYqz zLUh8@6L{=Of`df}+Vm^n2>KLowDf|rh-sHlp3zh*&%m^sS#Q+jr>8>y>jk4O1O)Iq z0UTDJ0FKR!ep#Ge4IDVMxm}2-C6EW*a&Ht4pa@n8OL}jB1`bs}7^HE!rs)UIVM!y! zWPRub)109`Aa@Rs5W>Co@lsXC?cvH;9-@^Cvu?ZVnBd&K7Vc^p9Mm3Ecnq70^lI8J z_22DN!Xal}wxMd)om|%tss-f-XrP@jFkxDq|5~=sFT-lx_(o2JC+Nf%Z9`?6F zMbQHUelJCjC;~;VNC3;B?sK0v*iEAoJf{0BVal;nC3ti6T(0d&7O2M?V>lHdE^D zNcNem|4PwwB&Z=p$>HhlJP82t-=GwJCvrD|&qNbmvhy0Nv1D-MPkGdZA z-|Z#p5kUAKR7g7)=rzX`ZLl`W1pS*neqN(}230FK-5b0_D|n8n)C%_P6Yb&mB6j53 zoxtD|Yj;BV4%Y5mdYlE<;+%dpLCObOVINBmwkwKa73kPFi|PS)fxAZ%^$vBA9|nemn@a3Vt`pkBKhi*8?vqs$a(EaS!Kap1GaA~5s2I-J#kf0Efq`c;_p{+%E&!hWAd z90l<936n;rDGb%?5Y=*s1l+@tJ+DNOONRYaAYYR-Dit-v*^TG!C~_PdPl3p80F8<) z5@+y}4)!ipfs&C+l4nNJkJ@XA6|pAL4I}9QtpofBq`{?Vjik2{v;SzR!f+$G7HUpW zA?th=TrjQy-pT}yvwHH^k}3w%rAxHv3j2L=KiAiyz3)4^I|DUIgZ2Z_L&W(Pq9~Qiph!3A}D$>BRNI} z1k&*hM}>4GaP~ByK`HIDT-&zg0+XtjszS0>k~agBiX>~ml5hZ3g)EXu5{ZQ=(PI%< z5h}npFHRF_EazR<o?Dv^z(qYoyG))vwV(cM^Hv+IFAnFL@C(vdH-X8S84`9wY z^LXwjMUICBly;J4m)Fm@BT4vxI9225s6gR+OW1H-q!G@$K8Z7L4+R%F3c!X@bl~7` zx-Pm+;^=^)Wwb!LU5%ro))PcAbk&o1kzD~gFk>j=e(Wg{tRr`Luv0P+x7D9 zVE_J?ykmojs2b>U{)U_+!Uj7vqmCrkISL&1nd#A|7}jjE%e{>e#CM>@899Ru4kVV3 z3YqI6pDl^yOQ3k`K~JSZXipOARNOk}L(nU89mgh6AhPc#)TxT3ww<9rvBDsnfh9c( z5!;rV4q6s9v98h$`t%15`;rnU5ZBxI<=(#Gu#enc0Pa0}>TC7HjzH4-4XUs{iK9zD zKb1ptif_1c$+|VU%N+L28bg<>iFN}xcdAZd+-rl4lvslT@m^y$@A_2EyuB3dT*qNh z4Z8HKA8MZLvy)zHd%r3Uz~*xz$2Mj^U*VTM=R#6PwVpN5V3x04+SC5ywY?qH+fOBj zU-FrA{=ygb*Si&ucIK2{=`lRN`0ks7(+nyHzbwuCG9&X#`>wa`PuClMM9Kq!pYpP}V%?NS1eE;$#zXLN z=)o*028}w?%Zv@nY{xbdyLFqjDm(6AEu|!o9I*}-buNu4qY}?-^s`Lr5CB&oxuw9c z%+oQ#`XKS=yz>*CB5qcMj3=J~1tgzPrwAh3_zMEIJw-xLhW8>T7r9>r;NREF zt=rJ$hLY;^kF&j!%zVHCf)ugSnin;uu~}MO4ZNL-NB#=a7LrRP(Lj9WsV>IJjUI=I zS6EhKEJi;%;9?ItKy%BfjUEJV$9Mh9Yx|%7FPQe?eYcdy-Gb5{BqkIm+)|#>BQW(~ z$StoGK`kUZ!!<}o>sj16qx2Cg==Loy^~Kew)XSK7Wz8tvv}rbNz{LY9WqByAG#zwz zS{^if2=%?3-1VvC%?E*HXZNwYi?@GDy?agXF9m42O#FLB}1_5cO5Ex~l0~uwb2=ss`$gOb*Cj9mr`AE1U&q_T)M&q5y6`ikFg%Ar;f?+qjz2|Df+weY3h;Q_U zpo0!U2MZod@jPcMC;l9r)ERTmc3$al@|gz}SY&AVmw?Fa_kiA3_JQ-&AGZK{+X|q! z2?o&HTHXV_?F&I4YVBUz+HF(CKYk_aXakbm(3O9MIFBMob`bT$c@)9)Yk)(1xLL)Y zJ0yD3hLzeK2{E?w&vFgVay>Ux7yOphPW(AzSkJBBvc^BqC!Zk*ZZBoOWkI$Bua@S9 z52O7ECw&G^`fh-ehTiXU(vZ7`7oHN^{jYy}aKItxF8kc%W@40c3mkqb0_a^pixEVq z!u}^HZ@3_0gX*%>P?pUvhMx!8P}6I} z=ZX+5&Eg%CPa5t(difUrO0h5YvgfbAR{_!XoViykI|K$CW-s*uw){cLrZ~}_4-3P- zyS-vJomvFv?$biaYGQZUdmA69e+S>g5ORc|{#_VAi*W&3%qx=mmtX#yfWwGZy!pg{3Zn>-=DvA2_zE2A!;9!fxyNOoP^xqXtY}g`BxO%t=RtN;mtEZSqzQ;*t!uc80 z4lDR=zl_cD?Lb~)@;#?;tl#zDCB56HMYP-wf^xjRdXS-ha23sz?(CZi;c7yJXadJqr}&&exrWIv5|tzgl)%dGIV4b0CUC5YeE1U5bve-^nIDTT z)>kwZ%$MF#(efK%t2ez=(KG$yce+q^y}D4Hnf+=}y(B%7kPu`t5=aqTVErW7^UE(L zOF$8K!t#F7j=zzV;PQa1Md=|$Q_LIlvxg+2-O64p{_cTT{2BFMcW@4VHj{hJ&M9&I zA-J_{K{G(|MZYTDmhflhm>U3hX9?ePFsD#Y(R8W*?u3y%9Sx~qFo6Q7l^Fa=paAB` zy#zTW?k%?)LuT^!kComT$??@FJ{PMr8_Ai?1`5$gj?YY9a8~Oy^Ed`W!MU--x;gk* zefYJ#T|AA-7YW|B@AwORigzkevqJsqGoeqoIiy$gc%zy#cBfK4 z;I8gs{@!f!Th+vtK<3E~32X^SH$B>D3dexci?;(vzz>*e}W{ zDb-E(i}+j8>i@Yu0q!2EmZ$sd*=96r!NG_e=_uAqXM@e9oOeZzb56heXxZ%AT_lQ9 zy4mvcvdmXibL?&To-e!$J*t~7_1~RPz}2aj2uP{(YmFW+0BS1#VCjQJD|0XIlC*57 zo*?1wZN#iLWmrBFZ>P=7(oE#WKEZOf(==bR3T`3!deyCKZS)PQ zhu%i)UbEa(MG0U5E|r|PMPRwiLzht_Y3pyxGQx(~=nt!oyN+!9n>F4hReL+l|98x0 zXx6>KHmMP54MzL4V!0`Uh#G0%w!Dsj#7DNwJL8kPl^u8q3Al7+#nzBY*AAAhwf-&n z&~u1g2TSh(wrV5SBmUSus|ecOW15?|u@A7R>LP4Qgx)lcKSo5u;p|E&5>S5(Y_Qh9 zBab_WZ0ul-w@%fLp!q+*Y~qgH8*Hs_wJa$1w#GTcWdoO6Rjlu$7oV}z+HI2-t<>m+ z#mV%A`uB_@49|uxohnJ+(v*tN41R{C4zL)AqPyxHpE zV#O`ISydXmjJk#9@vzjy@>gWz@2v3)^oPmgVvu`-xE{kY?=gSFOn*gcj-Q~h*6J=u z9l9CXV`09zdkJt8j7v6o@N;?Wz(}NKt;dWgi)Z2xT3&|c3pDmJmJ>qLY+)5_Me^^< zKn_~JPBwHKV%NfQQxysPF_-OenQ)3Ii<7vee(|fuw24=-v!S$(49$<|jjNd7FNjH( ztaaLB7Ue4Tz-8u>BY#w6xWrmQ2buh!bp82A>ELH28`m}Oye+P~k8ZlRUho%U62`XB zPm>MxN9-C|ZWgI=K{U_v*s6PI*qjW_N;LL7mJ>vqsVWj!aBhQ1BY{8G$?%|MBzRf| zRq8ad)>!DL%i{czjg2g`^H|zF^v$6lnpPw0lacQ0=*@95qaQMkb(W6eKR(l7!-=`k zG{0!awYBU(cjWcjHQdYQ&uD?Py+X}gG&T>L8c5TuV->g|`S!BbN#^;lt4dc^rp{4}AQH0Io)2K>Tj zasp^Pp{5W`nI}6@2`1FC8*w=cCh&XKZ7gK56TJ~TWyg=KGhLU{%~Or| z>Ad@C8AaGsKCMEic^-`|!i?4+`I}@X63tV?m8?VN`hK#Z#CudlI1#clNeLtP5%*7+ z_@Bn`7c|#Pe+V_p&>N?*vwT{I(B+PKs#ybTN|?;=58=Hrlbsxes!xp+m`9&E>v`Pd zb^(?X*pn41VIFQy(JWILP&ACks}_9eD#A_in>krS;+(*{smIv#i%{OOXpSBWt_l(Md2(oNkJ1&U^Hi>*ia@- zWYmTe&$5kV1}=!Bx(IVd56d+fCHDBM>&z6aYX!|nw}2-$6`JfrD|4~)JTbL~Rpo%} zaAwrT^TbPe;}3IZ#iGJNvbR)4hvav!ZDPu9G%=?!`m$$cen}RF+Dbm3y?PHb2}2Vz zF+;An0t<*mYG=t=g$oedcHF=Uag?)?5q7Jp*kN1VA*(as5+}EhSoEj3bnH9yg^rBn zjj)w?nmOVxV3D|%vu-23p?l}z zMYY9Yql-`CTT{(4-alfM2Vf=~G%+2^^%wK7fE#ADv#MByrikqY+<=ZaRCu`q4G>@pO6uOBfmALid1T~U+93YbtVV?0gQwXdvhBdsz@9U+usJqJJ<#d`N5ikt z&uk=Ub;{3=@Z)1=7LJv0-bEuN6ol=Hc7H+mLwn=%usO>X5x!h9>vgk2>mAhb{ftacNF{JzV7KB zejUybVZbAk^H;t_iAl5bXhYVYvN}#R%l1ga$8s!+jj-!*19QYt#&Sn$<501u5c3K^ zqfTQcfoP%-%SFX`s$wHh)E_Q9i4k+ACA(??(hWR~@)-4(lXe6QLu$=%){i&vtua`@ z;!1w*jj`s4D-VS^v+MGVCE^40RsN|cAA_uE)zR&{1$EQ+8X#_ zTw>Ndw=~zXi#L2(M@)jP9(=%T;qwY|-i|^Ov#?yQ_)p9v3Kjm1ODn-0s#(>xh+{RY z24TO&4b(-Lw?DbNMndPT>H&B37azZ92?{@GPpplZFi~L)F4Z;zg&*XnCFnw+ z)1BDtc#ox@LelB762KiN&&;1e>t=y375j^kBXtS?Up+$AIn(^rowF9->h(W&&ZkBO zud6nzd;uoSjt76qVA6cEaNZf;YnE)jIkLZX?oItAm9B&j^tppR=?I*Y*z-$$KG5e5 z1ZMB2Qw$Q24?O}EyAwTvL5vH%LxhZna>URhgczNHd|asM@L|eBH$)PLMwB+26}?;i zPeke9xbBaSua0>6ZtF{*&4u-N$Lw)R49GwC2J(ZvV-d+LIbN^;v2G{GL<4w5P`rB4 zveqLLy2XJgq!>peXWqd3e-Ki4qjz$!`8-rx=sk=fF;n1E2Frqe5PDnRbNFEKP#0)X zJg{TondY6LZ8am)8g#lYcfLb8#axsQ3<>xQlYYw3Orf_uLo$mb4q1=;mNEqFAz0nl zhx3;w5CirLnH0W@6B#OQnJP-cVT z!g(}(gRBGo!`5q-wJ?7(m9T~YYdA_grN}$ivNq&ADk#FH@zDw)m3+7;(Ofc1iOY#+ z@k8c_pG;d_gf)c5$u*Vc0A6qj1)>Nlt}n+TZki(zvZS97-v<1Fxg?2?!o+UdDr~%A zE`c>f6r$seEI*6(sMZi*gD1kQC)N-*FH_7VMu9MNN;3*DQ6QQpq!yrp0?c?7Qs@EX zC38u5J?>_Xtdar$im5Kb-1&&LJfCO^s6Vq>yy!Cgh8*-x9yUJ^O%hU%qv>|CB5iZY z9yi1%2aRYIxQB|Nk~M4btoa1Lu^Z*gC-`yYr+msWuh~Lx561GhXp<|^Jbkn}XgDC$ zc{vIjt@^lheY83_qYo9IbXN5Z4wZ+lYsm<(bm$}00k^JdFX}}THZpTDx&vZue>2ar zmUKz9`d2htgYbdz3}h(5Equf(?8Z%BVx4=sUHb`j;P`r(nCBLPR@Z3t9ia}mbt)4U z5GKIyp>ol3=q4e&K0+OE>(XoRA{HXq!$5p^XvDAEGY0vtdZQ5`7?pzx z(lL=g%2OA0I%HA<7_G`u!7-oWL95=OO*+;10|e>8lWY;+YTPUf1O8LbAug&_jkmc> z@hI5?EJ00qN6>|BUe)RedsK;3zf?MfYM<((s~@Fi_yQd_Ka& zaa{ztg=?#euuHOQefoKvKnDWFFa?vnfF3>#qb^79q+sX#P*b27nn}#=;ZsuZplO)* zB!BarXPqi>y)RsVifRV-hFdii7ChyBs^ zZ+<^n6)Kh^n4n@g3NgnmFh=}_C(TEEaeO?2+`&zEW8PF09la5~`Wyb~<;*kBZ#Vuyu!YNNYDF6RCJv9q9ApnQ|r4b!P3lzuuuATxGaB5?+T-GDnum za2UH+2cYXtV(%}ZZF!hgAbLQE!Do?02!6x)D+7o=@>2HJOpaemj7B~WL)(%tD_>N8 z6hqK9DvnppLw1cox-`(X&Y5QtM*duf+o;wOFICH#Hw!K`w96sA67Q z%JL3}4UgaAlWdWt)p!jO{ua0S1B*P&ZS%~+vZK)hS=e!I+n<4aLS#7{yOfr(sx2t)kZv@t6tniYdz(KZ7C17!UY^z>2}SC5Ow{n|9|L3?b2u$x>; z1l|UQJX8V)J$>oKinq`ZRd|hAxD=m6N0wIM`svteZ*-kMG=zT}53}N+2hy?Q>LS@o zPrhXsu*R&rG_xL3KrqMNJcp(Ehb07b-w%uzK3t@<6L*H>OW%y>?&>6Vsb>)NnON5GwR z6gZU;K1`Nrhj0}*l7k(ILBHto+O!n-M;F?Y3xA9dMh<2W`*gsCCu`y50U*dnBSe?T z!e2s@JT{O`azvKa;O>lY1DVY%Ee(Rnb72aaHC6VBdcULmhF7R~ zTq=6t1Vmi*8P7{jU^84KEUq*k@XRGMVwxS-8ze22E#cC+wbezi4$b`Z=@z z?qnCqffL?KVJ8Iw;0_frz8ovpX1rVvc6=7_l-`V&rowF$*}{FO?Q~(cSxwPmBVl(u zPkB&57&1cGJ(Q=+{z0}#E2JCk*`z3%&V%g;C~~Tcxau%`TPwaW44rHxIgshSax+?< zh`jX7^j_TFe|M?8XgXJ!jKItljr5L_=-j7x6vTZUmJEqp=*^WCNl>LX@{%emIud|> zUV?mF|0VnD(`#QEzV=-EdgN=*`Y&IsLi?_7DGQ&i3G-??2%A z+xT1g@c19_?-=#lR3ESh{?9Me*DWk`bNF1}&@lghd;4$oZz^xY+ic-s-EZE$9_;LU z`^L?i|Lxt&0>`{>hj+2yS*>s0?J;D~p!H$?LE&@f5ZCXmHjZ%k;|_eK1b(*8H*efD zbkLyfL36{mMh5wZ|J!%&sHLrJfwx$|cTV``t?XgsTUB5Cb7&ZUQ)nok_=tZsVdy$a zQ4_r16U-R>&FAojlb}-Tp<*d)>c96RaDUmiqckVwY6up zReM~ssQO2Hf4| z3IG5B0Dz^2m#3eTr=P7+u(y-1_2nQB_tsQ>_;WGp*bVJ(aS+oX$4`;;7EQ#QTA5vP zg@aFSK9-9A=HsTSD8p0{( z&oqi47=_h3pA_bKr2aHj5g%ND^$EB;;ilUXx`(6^aArn zvT**Kk|bBBb9k)(rI6^BHY5Dx_m@;7S775D$I1AU5f$k}9oS%v;JY{P56A)C^=4jX$E^C$?tihpXPL z5KgFO!xRvc?bbQHHx)<#54KdZtW{4lYWg@4_v%ec)#F3F>+Yn}%Y{vOk34E|lA1kF+r<&5^TsMFc3jI>8bv@7Y;&81T^<{?6{LAfb zE*VtY1`rJl`IHgqR{k|`aHaGSP%n8hq3#~$_2;7G`7+l(3gZN}IDz?#Z7U;e&gZD< zO%6=UJYTGtucwi1jUIiiefD{|{)_kmsP+EDyOOWU0$85b@N~%ao!deB9G)As){{-g zUvf^W62Gr_oV8NNjp1N{FjPGv0Dy{cwDoav_Z7W-y05-BsY5JIAG<+1%iS9;J4p$C z=kBFb5C~o&PV8BYn(m8nte9+)CC5<}lZVL1oqW2Ox#o%0+|?A{U8SkI!w3p~^Kid9 zD&w#=1dvA3`W&OgDrXpN?H^hnUc$f^XD}L9B+)HEoU0u)bY(o5UytrfvE2<#?l3e2J%Zdtef@&noqT`XTa5I*CdH^*>Ber;``I#Ggw@hC z-tkn8v<@(nyly&N;!wcoq^-BGGYaSIStaT#Abbi{P8bS(ytwQvk*yTH{o20oP9>8| zWc3zy{L%Az$KJ_0in>6Cgaj!0L1M7L zquAohBM)MSP$O!xzuqa`vs@b9_{cxGCgVm3E0pc!_^2vv_bx*U#kM7a- ze_ty%e>&^Cfo)nU+9MLlm<>E$qG5@c%?b6+k!q<)Zw+Gae)AyVM1Kj!>~yfN z*8^rir%RRk#YXgo*k{jDYc*&p@j2H?4!SF$6XGP2+jm{TKGPUZ9$CN#)KIv?%fhlMM(Y|LV9 z)UK)p$iYfD+OA%A;NWb&*}LG7=wf_MSShi%$mC`n4{55gUe_?IJ*`NM>X~;k69cMN>nVD`bT(VfJQ6+G(!)(ZrtOP9>69LSu}plb ziz9oyw3F9iSy3$X0s&{&rVW5PXVX$hj%f9+_YbQ?y{@j&pLx2Q)BxCd^zPdkEd~>7 zsR9TZL=iU7Pc3|J*!eg)8v6OTdb<3$G0?nGBRucuRo}LLVDDV@z)>-{PUH#<5>xk$ zk=(obiW=7>`)1(Nz)F+jcERQHM{(Pq+v&Zed1sVbuy^0nBtm@Jt+EuqXChXa~S8nsECDw2X;;rF7iJlZg^5TIs^f9x1~Yu$~CpA7%)+^>mDpamG0&KqDM zm~{>Z09^RV^VBon8%|DszM?-4;-_=D;eoZ+4u_}BowI-(z`WCiDn`CojU!J%(zI@hlym8y+_OsR_ z-_WPytI2z;o{e6~qJj7tmAnV;qL*by7bZ=cY-MGSUTri5jxOMjIXAw`jYqUjKDZrW z=65__G`R#77+o-xeR-EPqOHE?*3r?1DND}xwQk$doSbQgd-%SL?dgb<$v2fXlb@Pu zL_MFmb4DmNw>5h$e_cHMwh?y{@$9e#KXr0BjH&QG2dDM7hUsaWnu=#i$_IAFO%}u9 z7HP`D5`M;rYD%n0H*=+4!|O5=)NsY-)0&4V|}~jLeBkGY{rLR8*q;QZVL$_cU?_MRL!($ zeTgyz%R;i{OR*eGk?3hnc(csXbU>GWiBOEOtNHZg_|vyLwp+OFjb??|^wRAk-RmA= zS%{~bLu~X+2^U}imdylilZZ5LcMomb`z_olU+7+Z^`pOSzZ@(c-**(TMV?FNJ*hIA z`z$;>@aTBaXFmvn+P$}*Q>nu7ee3Ju`uEZBj>2Qk8qYSXX?JEkUddgh{gZO$v{p^y zzW2B7y_JJ*j<)@8Ez?usldHt|CfJ^*QqNY$%KhoKZ^L^LbiC8$DG&FRb8c+yR&D8v z)bFC)UGDfly|5!vPZQ%lE|;^g(!s01KG~=MGDt3Mt&+>RHsaEl6DHtjm0G&eT?!L_ zB?4^AP{z1oYwo}$C({Sqx8~osd9-0tykzp24g1JcwBg=jOL^(fcZ0<0dgYiU`p>r( zUv{|c99Ej09WNEuy#t+qs^#Q79#UcY2~E z$I`RrW|o&-lhULgYJQLCO<3{tp8IpSttNi*xK=OQi8(IQr*OPH(^vfcmsIkPQkOj7-FhG6%w<$A zDUUnf|5}j8G`^JOU&yE+oUo*aS$DbhUmeqJsb9&|h?=tfYrB5@IFMs9wYZNZ;kYSs{JQ6D6VdMH z(wAPJ;1%F|vwhWV`GHF;I}Z`8HO_ZzMh0xGt@^JtI`{}Vdh|Age+{fS@|xeTeAc?w zqI|GdV|F4QTQU||b@87628Tn5;NEv}W|{7O?f$n8!k!7?L5cnf{H{|gX6S{Y^`hnC z_pa3N%3_r-9!KAK!eRyTWM{7h;BPbMj?is645ODWJe{#B8?|sMC^vXwA}DQ~{?OPY z$r#)DOeQQ0-T@z;C>is*TbD1G?sT`KO#Ehm#ptTk%gQF{B#V#XTPDuKmvW@YF3yab zJTOw;G>P^*{vZ)>!I7tL(~(nAS~9?sze$DvQGDt2HKqA1`9N!SQx)mkvA%59Qc%nC z&-s($mrjn=8+=g9=4L>cYCL$59wow!CEJo*X#~Oszx(X{xwq}AYOir`+gcS3=7OsE zBonEFqEtcZiUR%u=L8bku@E9%9Qnj46!t*}lr4n1nPy<hkZF&w!Obgn$B&Q~%xpNkTX&kcDk>AT*1<>3T6T9YLz z8baI5UN1oae1M@l5jZh6TjxM#SOJ1N2WaB(Li^S zL%F+r4Fc`ukQYL6V(C!3iTKVN=*}mMs1ltyi{c?8^JWus)@z_x2GU@U2+2eUH6JAp zJ&FO{DTWhEgd{23gI?~ddHq-O+nC|?>$SgTfGnP50fipaQSahNcwKI zCI=HX!bL>YLEL-^2n|r<2_Tg1^+44zcp0_!(pH5Rs%HN@g&wAj1{1nI$?EE$g1`0S z7DyPxLevTRO~!+V=wXY$>*s?bXGO-uK-4vVl;%o6a3!QLz+R!jj|o5^GKQd^1diPJ zKl+vZTfc(8^&s^Cf8ikWbX@+1wEWHzngm%@~Mw>pr1-&lkjiLzCd> zKgyRY#LFR}dr$^*M%d6b5GED^HpLAZ30hUAW((<#3RR+kur4$h3}q0{p(T|o0 z0c(OVN=PUc4ff$rKr_IKz?AU5#N3=79#Uk`#M+P{Hp_Q(_|~u{NU9kPg5DZj%S<~3 z5EK;WOEA*_VMLH!Taq`Qp+jyRiOk%kK&Fg|@k1GaIId869(gTs?gTR~N^b1^=KGmI zm^&O)$A|1%gEHJig9G>|_0u{Vbjr&g`BgtkkVkeULhK1;c@i=iVZ!vMtrrb;hB8b7 zVXN^Fdlwv<71{M4hZRleQU6#e9#FNyJ7#L2^V7-ZtOUR}FcgEpX-g5%j4-fD{ob9j z3`MMW5)?y^TchVRXT1UqJHymm%`s452?6W)T2e1cnAUZD|6U5hnDL zVdLzJ<5YUmcp5`>kRW#gq1z)5RtnQ5{b})4d1TQZ6l1{%o45ulkA)cgZgDCQ_8JZ5 zgJL9b+JeX;q8}|0VxS2sS3(vMEcWM5NM(Rk{KsO$e_O20^wZ)~0Kwu#ZwE)M=b-Wi z`A0k|jeGdA{o0oKvL(|F=c?-+c1-SMcZA0Dn2l>$Ma(9UOzyFSm)BU{(S5GkEAlL- z5nJw-iQx{%N!#ztltziqe@sOSEk9f})2NuDy;yMt<(q3@?6PF#GHkVwC6}!{;PSc5 zR8~TZ$vrArXhM@6?mt;uco-G1e!a#+=K4#uksXt!(7`L%vF8UGy^FUnNk;Xl;hV#Q zW32^Nw-OzJwimI7I#RwHEy}MZATe<)`f~wIBWkj4CNeE{YY|obZ}QPxHL*mn!8%O_ zG#xE_G&o4HIU7kr4QogIw&N-w=LMb9U?7JOktPuCvs@4&ri6A@SiU-gTp_s;gvbRH z6$#FV5XGMElEEnm62^o`962OGH440m0()yQAV5*Hun$zQ56R%ceDbh@(>8@9`2*ID zBw+)|FKYI^j+L!qhiytgI;C?5gRa=EEyYxUi5dK(56F)eC7A6VT@$ku$b1Ow9qoCS z+@6@5lA8NNSd!=lAf<;uvkvnTBQughan60yXjt&UN@~Rw-GwWc$l2hBGhsx);OK0{ z4r6SJ6*k2Yn=b=LOwW-r7Yn85YECp2Cr0r3FQbV zcIE?xz*`b$fmWLoNprxFSokYON&0R9q32fhpMkwwJ<%Fs0|J?gz}}rxhE{ngj(LAG z+yGL}2@vt!q2CrTT87KvRgC>97p@dn^uK%BPZ&OaK^S>9J1aplIa5jFuE!$8V316n)MEB1b9HW4^jz-{s| zpztt|5f5dq)_({Z;eIE$AFs{>`bjVq7sOf$d13@&tAtcl<5Id^xh#-ICV1yMNT&HI zK~JREQ%I)uDZv96H-+Zk1Ybfx_mD9<%-oI0GQUFay`+j|P`|&9ac;41E)&TTq|6_r zr$D*PPRepuUE;2~!QJR)Ew%YV#F*Bct_o$~38X9%bcMLQCicZT&HSLYcDP5-@};-E zt=orOH=P(f!6;2w$XHr-8se4qUlK9~-t2->$_8df+T52$Rbz_E!h-sA48#Nksc1W@ zimqE2h=~g7DiBHDS2wt?qmoiT0VEGFfb0~ZQ-#$PixKfUbM8XM|D1%)1_)ch%v#Wp z8RbJ^)MsH7uLx;FdbFEv!Df1A#uL!`7XyU9px?TIEltw&#n%OIGY%&C5LKp!%-YFzD!DFW$oxn2fnG;U z$#qS`^Z=4CQYc>OvAr`0&#@HzasOq@UvO;FSsp%=YQdUC(~!qXJg%8 zXanNkLf*5$v-#&QpgqZ%H1sU=Y?Ag1YDo42`ag2DvvtmfPrvHiIRB&0KclF#;InDX xFR&l^PyT1Kn}1d~J^O5q@~grh6#u>azfu*1E-7J<000HyUxi?h>uCf7_&>Ke>E-|c diff --git a/PSCADA/SG-A通讯管理模版/database/fes_data_block.xlsx b/PSCADA/SG-A通讯管理模版/database/fes_data_block.xlsx deleted file mode 100644 index ab8112cdd8edb9a9f0f5c8a9c0e508d689d61505..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22908 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 AoB#j- diff --git a/PSCADA/SG-A通讯管理模版/database/fes_dev_pt_temp_def.xlsx b/PSCADA/SG-A通讯管理模版/database/fes_dev_pt_temp_def.xlsx deleted file mode 100644 index dd78e3487b03c7301575214c7a19d619c8d187e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 53695 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 R0I*W;bJPNL?P^xQ{{RWb_KyGn diff --git a/PSCADA/SG-A通讯管理模版/database/fes_digital.xlsx b/PSCADA/SG-A通讯管理模版/database/fes_digital.xlsx deleted file mode 100644 index 86a2484b24f0e759117a5b97e1181d503623f2e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 37746 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 diff --git a/PSCADA/SG-A通讯管理模版/database/fes_digital_ctrl.xlsx b/PSCADA/SG-A通讯管理模版/database/fes_digital_ctrl.xlsx deleted file mode 100644 index 759ec6cc04dca00be9f2f5469e24209d7322fa35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18064 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 AF#rGn diff --git a/PSCADA/SG-A通讯管理模版/database/fes_rtu_para.xlsx b/PSCADA/SG-A通讯管理模版/database/fes_rtu_para.xlsx deleted file mode 100644 index bb114f263ad72bb958ff666fc755908e85a2ab1b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10431 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 XST{Mt1ULx-u>t?IfCRbjr?&nFOSSp2 diff --git a/PSCADA/SG-A通讯管理模版/database/opt_ctrl_act_define.xlsx b/PSCADA/SG-A通讯管理模版/database/opt_ctrl_act_define.xlsx deleted file mode 100644 index fe596ae42b1ddf0b051d1794ad7252ad2ea055e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3884 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 diff --git a/PSCADA/SG-A通讯管理模版/database/rm_user_def.xlsx b/PSCADA/SG-A通讯管理模版/database/rm_user_def.xlsx deleted file mode 100644 index a70b9d19961755e87647774b6d6fe4a78f4f5b6a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5078 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 R0G9~gTLc3|pVf;1{{mD^>c;>8 diff --git a/PSCADA/SG-A通讯管理模版/database/sample_define.xlsx b/PSCADA/SG-A通讯管理模版/database/sample_define.xlsx deleted file mode 100644 index 78ce54d85e0c93a86ab212f5917eec6bbfbc5d69..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15505 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 MwZQ^uYQWzA15pou%>V!Z diff --git a/PSCADA/SG-A通讯管理模版/database/sys_model_dbconfig_domain.xlsx b/PSCADA/SG-A通讯管理模版/database/sys_model_dbconfig_domain.xlsx deleted file mode 100644 index dda179fd8282cfcbea5242c5eeda7f7f5feb3590..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3512 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 Jr(GEd_#fXUzW)FK diff --git a/PSCADA/SG-A通讯管理模版/database/sys_model_dbconfig_node.xlsx b/PSCADA/SG-A通讯管理模版/database/sys_model_dbconfig_node.xlsx deleted file mode 100644 index a4cd9d74db8394a77d4ae2b922e9e16fd870707b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3560 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 EFM0*j6#xJL diff --git a/PSCADA/SG-A通讯管理模版/database/sys_model_deploy_info.xlsx b/PSCADA/SG-A通讯管理模版/database/sys_model_deploy_info.xlsx deleted file mode 100644 index 6954785b738434aef0428e0cd5c396ecd6b2449a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3595 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 diff --git a/PSCADA/SG-A通讯管理模版/database/sys_model_process_info.xlsx b/PSCADA/SG-A通讯管理模版/database/sys_model_process_info.xlsx deleted file mode 100644 index 8bf2697e224c08350882391fb5fcdeaa69b209a0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4981 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 Z|Ii3CBW7BV002AfIYT4p^xk#|_#X{ytl0nn diff --git a/PSCADA/SG-A通讯管理模版/database/temp_plugin_fes_dev_map.xlsx b/PSCADA/SG-A通讯管理模版/database/temp_plugin_fes_dev_map.xlsx deleted file mode 100644 index 8c0f074f4c227bd278e4eb032d9b0fef5b11647d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3536 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 diff --git a/PSCADA/SG-A通讯管理模版/database/temp_plugin_point_map_ana.xlsx b/PSCADA/SG-A通讯管理模版/database/temp_plugin_point_map_ana.xlsx deleted file mode 100644 index e5edc907d5f96a7e4c2978b9b1e282eff32a8224..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4747 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 diff --git a/PSCADA/SG-A通讯管理模版/database/temp_plugin_point_map_dig.xlsx b/PSCADA/SG-A通讯管理模版/database/temp_plugin_point_map_dig.xlsx deleted file mode 100644 index 1aeaf8868d9ab483e1d4513734741458e70df1f1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16367 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 + + + + + + diff --git a/PSCADA/SG-A通讯管理模版/data/model/trendgraph.xml b/PSCADA/SG管理机模版/data/model/trendgraph.xml similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/model/trendgraph.xml rename to PSCADA/SG管理机模版/data/model/trendgraph.xml diff --git a/PSCADA/SG-A通讯管理模版/data/model/wordlist.txt b/PSCADA/SG管理机模版/data/model/wordlist.txt similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/model/wordlist.txt rename to PSCADA/SG管理机模版/data/model/wordlist.txt diff --git a/PSCADA/SG-A通讯管理模版/data/modelstudio/ModelConfig.ini b/PSCADA/SG管理机模版/data/modelstudio/ModelConfig.ini similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/modelstudio/ModelConfig.ini rename to PSCADA/SG管理机模版/data/modelstudio/ModelConfig.ini diff --git a/PSCADA/SG-A通讯管理模版/data/pic/index.glx b/PSCADA/SG管理机模版/data/pic/index.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/index.glx rename to PSCADA/SG管理机模版/data/pic/index.glx diff --git a/PSCADA/ECMS电厂行业模版/data/pic/实时监控/10kV厂用电主接线图.glx b/PSCADA/SG管理机模版/data/pic/实时监控/10kV厂用电主接线图.glx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/pic/实时监控/10kV厂用电主接线图.glx rename to PSCADA/SG管理机模版/data/pic/实时监控/10kV厂用电主接线图.glx diff --git a/PSCADA/ECMS电厂行业模版/data/pic/实时监控/110kV发电三期主接线图.glx b/PSCADA/SG管理机模版/data/pic/实时监控/110kV发电三期主接线图.glx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/pic/实时监控/110kV发电三期主接线图.glx rename to PSCADA/SG管理机模版/data/pic/实时监控/110kV发电三期主接线图.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/实时监控/低压厂用电接线图.glx b/PSCADA/SG管理机模版/data/pic/实时监控/低压厂用电接线图.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/实时监控/低压厂用电接线图.glx rename to PSCADA/SG管理机模版/data/pic/实时监控/低压厂用电接线图.glx diff --git a/PSCADA/ECMS电厂行业模版/data/pic/实时监控/全厂串口通讯图.glx b/PSCADA/SG管理机模版/data/pic/实时监控/全厂串口通讯图.glx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/pic/实时监控/全厂串口通讯图.glx rename to PSCADA/SG管理机模版/data/pic/实时监控/全厂串口通讯图.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/实时监控/全厂潮流图.glx b/PSCADA/SG管理机模版/data/pic/实时监控/全厂潮流图.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/实时监控/全厂潮流图.glx rename to PSCADA/SG管理机模版/data/pic/实时监控/全厂潮流图.glx diff --git a/PSCADA/ECMS电厂行业模版/data/pic/实时监控/全厂网络通道图.glx b/PSCADA/SG管理机模版/data/pic/实时监控/全厂网络通道图.glx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/pic/实时监控/全厂网络通道图.glx rename to PSCADA/SG管理机模版/data/pic/实时监控/全厂网络通道图.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/实时监控/全厂骨干网.glx b/PSCADA/SG管理机模版/data/pic/实时监控/全厂骨干网.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/实时监控/全厂骨干网.glx rename to PSCADA/SG管理机模版/data/pic/实时监控/全厂骨干网.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/实时监控/四宫格.glx b/PSCADA/SG管理机模版/data/pic/实时监控/四宫格.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/实时监控/四宫格.glx rename to PSCADA/SG管理机模版/data/pic/实时监控/四宫格.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/实时监控/数据表格控件模板.glx b/PSCADA/SG管理机模版/data/pic/实时监控/数据表格控件模板.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/实时监控/数据表格控件模板.glx rename to PSCADA/SG管理机模版/data/pic/实时监控/数据表格控件模板.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/实时监控/母线测温.glx b/PSCADA/SG管理机模版/data/pic/实时监控/母线测温.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/实时监控/母线测温.glx rename to PSCADA/SG管理机模版/data/pic/实时监控/母线测温.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/实时监控/站内布置图.glx b/PSCADA/SG管理机模版/data/pic/实时监控/站内布置图.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/实时监控/站内布置图.glx rename to PSCADA/SG管理机模版/data/pic/实时监控/站内布置图.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/实时监控/继保间/1#直流屏监控图.glx b/PSCADA/SG管理机模版/data/pic/实时监控/继保间/1#直流屏监控图.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/实时监控/继保间/1#直流屏监控图.glx rename to PSCADA/SG管理机模版/data/pic/实时监控/继保间/1#直流屏监控图.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/实时监控/继保间/110kV电子间/110kVXLP.glx b/PSCADA/SG管理机模版/data/pic/实时监控/继保间/110kV电子间/110kVXLP.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/实时监控/继保间/110kV电子间/110kVXLP.glx rename to PSCADA/SG管理机模版/data/pic/实时监控/继保间/110kV电子间/110kVXLP.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/实时监控/继保间/110kV电子间/2AS同期装置.glx b/PSCADA/SG管理机模版/data/pic/实时监控/继保间/110kV电子间/2AS同期装置.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/实时监控/继保间/110kV电子间/2AS同期装置.glx rename to PSCADA/SG管理机模版/data/pic/实时监控/继保间/110kV电子间/2AS同期装置.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/实时监控/继保间/110kV电子间/BT9301上海利乾/BT9301A-4n.glx b/PSCADA/SG管理机模版/data/pic/实时监控/继保间/110kV电子间/BT9301上海利乾/BT9301A-4n.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/实时监控/继保间/110kV电子间/BT9301上海利乾/BT9301A-4n.glx rename to PSCADA/SG管理机模版/data/pic/实时监控/继保间/110kV电子间/BT9301上海利乾/BT9301A-4n.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/实时监控/继保间/110kV电子间/BT9301上海利乾/BT9301G-1n.glx b/PSCADA/SG管理机模版/data/pic/实时监控/继保间/110kV电子间/BT9301上海利乾/BT9301G-1n.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/实时监控/继保间/110kV电子间/BT9301上海利乾/BT9301G-1n.glx rename to PSCADA/SG管理机模版/data/pic/实时监控/继保间/110kV电子间/BT9301上海利乾/BT9301G-1n.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/实时监控/继保间/110kV电子间/BT9301上海利乾/BT9301G-3n.glx b/PSCADA/SG管理机模版/data/pic/实时监控/继保间/110kV电子间/BT9301上海利乾/BT9301G-3n.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/实时监控/继保间/110kV电子间/BT9301上海利乾/BT9301G-3n.glx rename to PSCADA/SG管理机模版/data/pic/实时监控/继保间/110kV电子间/BT9301上海利乾/BT9301G-3n.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/实时监控/继保间/110kV电子间/CKP.glx b/PSCADA/SG管理机模版/data/pic/实时监控/继保间/110kV电子间/CKP.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/实时监控/继保间/110kV电子间/CKP.glx rename to PSCADA/SG管理机模版/data/pic/实时监控/继保间/110kV电子间/CKP.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/实时监控/继保间/110kV电子间/FBPC.glx b/PSCADA/SG管理机模版/data/pic/实时监控/继保间/110kV电子间/FBPC.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/实时监控/继保间/110kV电子间/FBPC.glx rename to PSCADA/SG管理机模版/data/pic/实时监控/继保间/110kV电子间/FBPC.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/实时监控/继保间/110kV电子间/冷风机.glx b/PSCADA/SG管理机模版/data/pic/实时监控/继保间/110kV电子间/冷风机.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/实时监控/继保间/110kV电子间/冷风机.glx rename to PSCADA/SG管理机模版/data/pic/实时监控/继保间/110kV电子间/冷风机.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/实时监控/继保间/110kV电子间/发变组测控A屏.glx b/PSCADA/SG管理机模版/data/pic/实时监控/继保间/110kV电子间/发变组测控A屏.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/实时监控/继保间/110kV电子间/发变组测控A屏.glx rename to PSCADA/SG管理机模版/data/pic/实时监控/继保间/110kV电子间/发变组测控A屏.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/实时监控/继保间/110kV电子间/发变组测控B屏.glx b/PSCADA/SG管理机模版/data/pic/实时监控/继保间/110kV电子间/发变组测控B屏.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/实时监控/继保间/110kV电子间/发变组测控B屏.glx rename to PSCADA/SG管理机模版/data/pic/实时监控/继保间/110kV电子间/发变组测控B屏.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/实时监控/继保间/110kV电子间/微机励磁.glx b/PSCADA/SG管理机模版/data/pic/实时监控/继保间/110kV电子间/微机励磁.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/实时监控/继保间/110kV电子间/微机励磁.glx rename to PSCADA/SG管理机模版/data/pic/实时监控/继保间/110kV电子间/微机励磁.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/实时监控/继保间/110kV电子间/快切.glx b/PSCADA/SG管理机模版/data/pic/实时监控/继保间/110kV电子间/快切.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/实时监控/继保间/110kV电子间/快切.glx rename to PSCADA/SG管理机模版/data/pic/实时监控/继保间/110kV电子间/快切.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/实时监控/继保间/2#直流屏监控图.glx b/PSCADA/SG管理机模版/data/pic/实时监控/继保间/2#直流屏监控图.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/实时监控/继保间/2#直流屏监控图.glx rename to PSCADA/SG管理机模版/data/pic/实时监控/继保间/2#直流屏监控图.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/实时监控/继保间/UPS监控图.glx b/PSCADA/SG管理机模版/data/pic/实时监控/继保间/UPS监控图.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/实时监控/继保间/UPS监控图.glx rename to PSCADA/SG管理机模版/data/pic/实时监控/继保间/UPS监控图.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/实时监控/继保间/全厂网络架构图.glx b/PSCADA/SG管理机模版/data/pic/实时监控/继保间/全厂网络架构图.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/实时监控/继保间/全厂网络架构图.glx rename to PSCADA/SG管理机模版/data/pic/实时监控/继保间/全厂网络架构图.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/实时监控/继保间/小电流选线监控.glx b/PSCADA/SG管理机模版/data/pic/实时监控/继保间/小电流选线监控.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/实时监控/继保间/小电流选线监控.glx rename to PSCADA/SG管理机模版/data/pic/实时监控/继保间/小电流选线监控.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/实时监控/继保间/快切.glx b/PSCADA/SG管理机模版/data/pic/实时监控/继保间/快切.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/实时监控/继保间/快切.glx rename to PSCADA/SG管理机模版/data/pic/实时监控/继保间/快切.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/实时监控/继保间/汇川凝泵变频器.glx b/PSCADA/SG管理机模版/data/pic/实时监控/继保间/汇川凝泵变频器.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/实时监控/继保间/汇川凝泵变频器.glx rename to PSCADA/SG管理机模版/data/pic/实时监控/继保间/汇川凝泵变频器.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/实时监控/继保间/消谐装置.glx b/PSCADA/SG管理机模版/data/pic/实时监控/继保间/消谐装置.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/实时监控/继保间/消谐装置.glx rename to PSCADA/SG管理机模版/data/pic/实时监控/继保间/消谐装置.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/实时监控/首页-old.glx b/PSCADA/SG管理机模版/data/pic/实时监控/首页-old.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/实时监控/首页-old.glx rename to PSCADA/SG管理机模版/data/pic/实时监控/首页-old.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/实时监控/首页.glx b/PSCADA/SG管理机模版/data/pic/实时监控/首页.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/实时监控/首页.glx rename to PSCADA/SG管理机模版/data/pic/实时监控/首页.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/BatchOperation.glx b/PSCADA/SG管理机模版/data/pic/界面框架/BatchOperation.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/界面框架/BatchOperation.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/BatchOperation.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/Batchperation.glx b/PSCADA/SG管理机模版/data/pic/界面框架/Batchperation.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/界面框架/Batchperation.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/Batchperation.glx diff --git a/PSCADA/ECMS电厂行业模版/data/pic/界面框架/alarm_window.glx b/PSCADA/SG管理机模版/data/pic/界面框架/alarm_window.glx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/pic/界面框架/alarm_window.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/alarm_window.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/alarm_window_dialog.glx b/PSCADA/SG管理机模版/data/pic/界面框架/alarm_window_dialog.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/界面框架/alarm_window_dialog.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/alarm_window_dialog.glx diff --git a/PSCADA/ECMS电厂行业模版/data/pic/界面框架/event_window.glx b/PSCADA/SG管理机模版/data/pic/界面框架/event_window.glx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/pic/界面框架/event_window.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/event_window.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/frame_footer.glx b/PSCADA/SG管理机模版/data/pic/界面框架/frame_footer.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/界面框架/frame_footer.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/frame_footer.glx diff --git a/PSCADA/ECMS电厂行业模版/data/pic/界面框架/frame_footer_unuse.glx b/PSCADA/SG管理机模版/data/pic/界面框架/frame_footer_unuse.glx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/pic/界面框架/frame_footer_unuse.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/frame_footer_unuse.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/frame_header.glx b/PSCADA/SG管理机模版/data/pic/界面框架/frame_header.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/界面框架/frame_header.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/frame_header.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/frame_navigation.glx b/PSCADA/SG管理机模版/data/pic/界面框架/frame_navigation.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/界面框架/frame_navigation.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/frame_navigation.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/frame_navigation_more.glx b/PSCADA/SG管理机模版/data/pic/界面框架/frame_navigation_more.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/界面框架/frame_navigation_more.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/frame_navigation_more.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/frame_navigation_realtime.glx b/PSCADA/SG管理机模版/data/pic/界面框架/frame_navigation_realtime.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/界面框架/frame_navigation_realtime.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/frame_navigation_realtime.glx diff --git a/PSCADA/ECMS电厂行业模版/data/pic/界面框架/interval_custom.glx b/PSCADA/SG管理机模版/data/pic/界面框架/interval_custom.glx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/pic/界面框架/interval_custom.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/interval_custom.glx diff --git a/PSCADA/ECMS电厂行业模版/data/pic/界面框架/interval_instrument.glx b/PSCADA/SG管理机模版/data/pic/界面框架/interval_instrument.glx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/pic/界面框架/interval_instrument.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/interval_instrument.glx diff --git a/PSCADA/ECMS电厂行业模版/data/pic/界面框架/interval_meter.glx b/PSCADA/SG管理机模版/data/pic/界面框架/interval_meter.glx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/pic/界面框架/interval_meter.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/interval_meter.glx diff --git a/PSCADA/ECMS电厂行业模版/data/pic/界面框架/interval_protect.glx b/PSCADA/SG管理机模版/data/pic/界面框架/interval_protect.glx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/pic/界面框架/interval_protect.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/interval_protect.glx diff --git a/PSCADA/ECMS电厂行业模版/data/pic/界面框架/interval_relay.glx b/PSCADA/SG管理机模版/data/pic/界面框架/interval_relay.glx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/pic/界面框架/interval_relay.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/interval_relay.glx diff --git a/PSCADA/ECMS电厂行业模版/data/pic/界面框架/panel_accuml_ctrl.glx b/PSCADA/SG管理机模版/data/pic/界面框架/panel_accuml_ctrl.glx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/pic/界面框架/panel_accuml_ctrl.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/panel_accuml_ctrl.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/panel_alarm_push.glx b/PSCADA/SG管理机模版/data/pic/界面框架/panel_alarm_push.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/界面框架/panel_alarm_push.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/panel_alarm_push.glx diff --git a/PSCADA/ECMS电厂行业模版/data/pic/界面框架/panel_analog_set.glx b/PSCADA/SG管理机模版/data/pic/界面框架/panel_analog_set.glx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/pic/界面框架/panel_analog_set.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/panel_analog_set.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/panel_const_read.glx b/PSCADA/SG管理机模版/data/pic/界面框架/panel_const_read.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/界面框架/panel_const_read.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/panel_const_read.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/panel_const_switch.glx b/PSCADA/SG管理机模版/data/pic/界面框架/panel_const_switch.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/界面框架/panel_const_switch.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/panel_const_switch.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/panel_ctrl_verify.glx b/PSCADA/SG管理机模版/data/pic/界面框架/panel_ctrl_verify.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/界面框架/panel_ctrl_verify.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/panel_ctrl_verify.glx diff --git a/PSCADA/ECMS电厂行业模版/data/pic/界面框架/panel_direct_ctrl.glx b/PSCADA/SG管理机模版/data/pic/界面框架/panel_direct_ctrl.glx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/pic/界面框架/panel_direct_ctrl.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/panel_direct_ctrl.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/panel_direct_ctrl0.glx b/PSCADA/SG管理机模版/data/pic/界面框架/panel_direct_ctrl0.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/界面框架/panel_direct_ctrl0.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/panel_direct_ctrl0.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/panel_direct_ctrl1.glx b/PSCADA/SG管理机模版/data/pic/界面框架/panel_direct_ctrl1.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/界面框架/panel_direct_ctrl1.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/panel_direct_ctrl1.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/panel_direct_ctrl2.glx b/PSCADA/SG管理机模版/data/pic/界面框架/panel_direct_ctrl2.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/界面框架/panel_direct_ctrl2.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/panel_direct_ctrl2.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/panel_group_limit.glx b/PSCADA/SG管理机模版/data/pic/界面框架/panel_group_limit.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/界面框架/panel_group_limit.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/panel_group_limit.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/panel_group_maint.glx b/PSCADA/SG管理机模版/data/pic/界面框架/panel_group_maint.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/界面框架/panel_group_maint.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/panel_group_maint.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/panel_group_more.glx b/PSCADA/SG管理机模版/data/pic/界面框架/panel_group_more.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/界面框架/panel_group_more.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/panel_group_more.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/panel_hint_info.glx b/PSCADA/SG管理机模版/data/pic/界面框架/panel_hint_info.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/界面框架/panel_hint_info.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/panel_hint_info.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/panel_login.glx b/PSCADA/SG管理机模版/data/pic/界面框架/panel_login.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/界面框架/panel_login.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/panel_login.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/panel_login_exit.glx b/PSCADA/SG管理机模版/data/pic/界面框架/panel_login_exit.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/界面框架/panel_login_exit.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/panel_login_exit.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/panel_login_lock.glx b/PSCADA/SG管理机模版/data/pic/界面框架/panel_login_lock.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/界面框架/panel_login_lock.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/panel_login_lock.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/panel_oper_verify.glx b/PSCADA/SG管理机模版/data/pic/界面框架/panel_oper_verify.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/界面框架/panel_oper_verify.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/panel_oper_verify.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/panel_opt_ticket.glx b/PSCADA/SG管理机模版/data/pic/界面框架/panel_opt_ticket.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/界面框架/panel_opt_ticket.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/panel_opt_ticket.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/panel_point_lock.glx b/PSCADA/SG管理机模版/data/pic/界面框架/panel_point_lock.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/界面框架/panel_point_lock.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/panel_point_lock.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/panel_recall_alarm.glx b/PSCADA/SG管理机模版/data/pic/界面框架/panel_recall_alarm.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/界面框架/panel_recall_alarm.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/panel_recall_alarm.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/panel_recall_list.glx b/PSCADA/SG管理机模版/data/pic/界面框架/panel_recall_list.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/界面框架/panel_recall_list.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/panel_recall_list.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/panel_recall_toolbar.glx b/PSCADA/SG管理机模版/data/pic/界面框架/panel_recall_toolbar.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/界面框架/panel_recall_toolbar.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/panel_recall_toolbar.glx diff --git a/PSCADA/ECMS电厂行业模版/data/pic/界面框架/panel_remote_ctrl-gdw.glx b/PSCADA/SG管理机模版/data/pic/界面框架/panel_remote_ctrl-gdw.glx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/pic/界面框架/panel_remote_ctrl-gdw.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/panel_remote_ctrl-gdw.glx diff --git a/PSCADA/ECMS电厂行业模版/data/pic/界面框架/panel_remote_ctrl.glx b/PSCADA/SG管理机模版/data/pic/界面框架/panel_remote_ctrl.glx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/pic/界面框架/panel_remote_ctrl.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/panel_remote_ctrl.glx diff --git a/PSCADA/ECMS电厂行业模版/data/pic/界面框架/panel_remote_ctrl0000.glx b/PSCADA/SG管理机模版/data/pic/界面框架/panel_remote_ctrl0000.glx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/pic/界面框架/panel_remote_ctrl0000.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/panel_remote_ctrl0000.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/panel_reset_ctrl.glx b/PSCADA/SG管理机模版/data/pic/界面框架/panel_reset_ctrl.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/界面框架/panel_reset_ctrl.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/panel_reset_ctrl.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/panel_roll_switch.glx b/PSCADA/SG管理机模版/data/pic/界面框架/panel_roll_switch.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/界面框架/panel_roll_switch.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/panel_roll_switch.glx diff --git a/PSCADA/ECMS电厂行业模版/data/pic/界面框架/panel_tag_operate.glx b/PSCADA/SG管理机模版/data/pic/界面框架/panel_tag_operate.glx similarity index 100% rename from PSCADA/ECMS电厂行业模版/data/pic/界面框架/panel_tag_operate.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/panel_tag_operate.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/panel_ticket_manage.glx b/PSCADA/SG管理机模版/data/pic/界面框架/panel_ticket_manage.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/界面框架/panel_ticket_manage.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/panel_ticket_manage.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/panel_transformer_ctrl.glx b/PSCADA/SG管理机模版/data/pic/界面框架/panel_transformer_ctrl.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/界面框架/panel_transformer_ctrl.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/panel_transformer_ctrl.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/panel_trend_curve.glx b/PSCADA/SG管理机模版/data/pic/界面框架/panel_trend_curve.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/界面框架/panel_trend_curve.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/panel_trend_curve.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/panel_video_linkage.glx b/PSCADA/SG管理机模版/data/pic/界面框架/panel_video_linkage.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/界面框架/panel_video_linkage.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/panel_video_linkage.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/panel_video_paly.glx b/PSCADA/SG管理机模版/data/pic/界面框架/panel_video_paly.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/界面框架/panel_video_paly.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/panel_video_paly.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/panel_video_viewer.glx b/PSCADA/SG管理机模版/data/pic/界面框架/panel_video_viewer.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/界面框架/panel_video_viewer.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/panel_video_viewer.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/panel_video_wall.glx b/PSCADA/SG管理机模版/data/pic/界面框架/panel_video_wall.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/界面框架/panel_video_wall.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/panel_video_wall.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/reportdesign.glx b/PSCADA/SG管理机模版/data/pic/界面框架/reportdesign.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/界面框架/reportdesign.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/reportdesign.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/reportview.glx b/PSCADA/SG管理机模版/data/pic/界面框架/reportview.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/界面框架/reportview.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/reportview.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/view_alarm_Statis.glx b/PSCADA/SG管理机模版/data/pic/界面框架/view_alarm_Statis.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/界面框架/view_alarm_Statis.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/view_alarm_Statis.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/view_alarm_analyze.glx b/PSCADA/SG管理机模版/data/pic/界面框架/view_alarm_analyze.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/界面框架/view_alarm_analyze.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/view_alarm_analyze.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/view_alarm_manage.glx b/PSCADA/SG管理机模版/data/pic/界面框架/view_alarm_manage.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/界面框架/view_alarm_manage.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/view_alarm_manage.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/view_alarm_shield.glx b/PSCADA/SG管理机模版/data/pic/界面框架/view_alarm_shield.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/界面框架/view_alarm_shield.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/view_alarm_shield.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/view_alarm_strategy.glx b/PSCADA/SG管理机模版/data/pic/界面框架/view_alarm_strategy.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/界面框架/view_alarm_strategy.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/view_alarm_strategy.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/view_bi_browser.glx b/PSCADA/SG管理机模版/data/pic/界面框架/view_bi_browser.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/界面框架/view_bi_browser.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/view_bi_browser.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/view_bi_design.glx b/PSCADA/SG管理机模版/data/pic/界面框架/view_bi_design.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/界面框架/view_bi_design.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/view_bi_design.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/view_bi_view.glx b/PSCADA/SG管理机模版/data/pic/界面框架/view_bi_view.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/界面框架/view_bi_view.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/view_bi_view.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/view_chan_status.glx b/PSCADA/SG管理机模版/data/pic/界面框架/view_chan_status.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/界面框架/view_chan_status.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/view_chan_status.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/view_const_curves.glx b/PSCADA/SG管理机模版/data/pic/界面框架/view_const_curves.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/界面框架/view_const_curves.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/view_const_curves.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/view_const_groupsw.glx b/PSCADA/SG管理机模版/data/pic/界面框架/view_const_groupsw.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/界面框架/view_const_groupsw.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/view_const_groupsw.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/view_const_manage.glx b/PSCADA/SG管理机模版/data/pic/界面框架/view_const_manage.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/界面框架/view_const_manage.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/view_const_manage.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/view_device_list.glx b/PSCADA/SG管理机模版/data/pic/界面框架/view_device_list.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/界面框架/view_device_list.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/view_device_list.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/view_doc_manage.glx b/PSCADA/SG管理机模版/data/pic/界面框架/view_doc_manage.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/界面框架/view_doc_manage.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/view_doc_manage.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/view_duty_manger.glx b/PSCADA/SG管理机模版/data/pic/界面框架/view_duty_manger.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/界面框架/view_duty_manger.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/view_duty_manger.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/view_fault_record.glx b/PSCADA/SG管理机模版/data/pic/界面框架/view_fault_record.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/界面框架/view_fault_record.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/view_fault_record.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/view_hand_panel.glx b/PSCADA/SG管理机模版/data/pic/界面框架/view_hand_panel.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/界面框架/view_hand_panel.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/view_hand_panel.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/view_invtime_curve.glx b/PSCADA/SG管理机模版/data/pic/界面框架/view_invtime_curve.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/界面框架/view_invtime_curve.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/view_invtime_curve.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/view_linkage.glx b/PSCADA/SG管理机模版/data/pic/界面框架/view_linkage.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/界面框架/view_linkage.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/view_linkage.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/view_maint_list.glx b/PSCADA/SG管理机模版/data/pic/界面框架/view_maint_list.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/界面框架/view_maint_list.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/view_maint_list.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/view_media.glx b/PSCADA/SG管理机模版/data/pic/界面框架/view_media.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/界面框架/view_media.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/view_media.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/view_recall_setting.glx b/PSCADA/SG管理机模版/data/pic/界面框架/view_recall_setting.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/界面框架/view_recall_setting.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/view_recall_setting.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/view_robot_linkage.glx b/PSCADA/SG管理机模版/data/pic/界面框架/view_robot_linkage.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/界面框架/view_robot_linkage.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/view_robot_linkage.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/view_roll_setting.glx b/PSCADA/SG管理机模版/data/pic/界面框架/view_roll_setting.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/界面框架/view_roll_setting.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/view_roll_setting.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/view_run_report.glx b/PSCADA/SG管理机模版/data/pic/界面框架/view_run_report.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/界面框架/view_run_report.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/view_run_report.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/view_sequence.glx b/PSCADA/SG管理机模版/data/pic/界面框架/view_sequence.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/界面框架/view_sequence.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/view_sequence.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/view_serial_status.glx b/PSCADA/SG管理机模版/data/pic/界面框架/view_serial_status.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/界面框架/view_serial_status.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/view_serial_status.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/view_shield_list.glx b/PSCADA/SG管理机模版/data/pic/界面框架/view_shield_list.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/界面框架/view_shield_list.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/view_shield_list.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/view_shift_manage.glx b/PSCADA/SG管理机模版/data/pic/界面框架/view_shift_manage.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/界面框架/view_shift_manage.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/view_shift_manage.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/view_sim_operate.glx b/PSCADA/SG管理机模版/data/pic/界面框架/view_sim_operate.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/界面框架/view_sim_operate.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/view_sim_operate.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/view_system_setting.glx b/PSCADA/SG管理机模版/data/pic/界面框架/view_system_setting.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/界面框架/view_system_setting.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/view_system_setting.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/view_ticket_manage.glx b/PSCADA/SG管理机模版/data/pic/界面框架/view_ticket_manage.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/界面框架/view_ticket_manage.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/view_ticket_manage.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/view_ticket_search.glx b/PSCADA/SG管理机模版/data/pic/界面框架/view_ticket_search.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/界面框架/view_ticket_search.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/view_ticket_search.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/view_token_list.glx b/PSCADA/SG管理机模版/data/pic/界面框架/view_token_list.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/界面框架/view_token_list.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/view_token_list.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/view_trend.glx b/PSCADA/SG管理机模版/data/pic/界面框架/view_trend.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/界面框架/view_trend.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/view_trend.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/view_user_group.glx b/PSCADA/SG管理机模版/data/pic/界面框架/view_user_group.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/界面框架/view_user_group.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/view_user_group.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/view_user_manage.glx b/PSCADA/SG管理机模版/data/pic/界面框架/view_user_manage.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/界面框架/view_user_manage.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/view_user_manage.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/view_wave_analyze.glx b/PSCADA/SG管理机模版/data/pic/界面框架/view_wave_analyze.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/界面框架/view_wave_analyze.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/view_wave_analyze.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/view_web_energy.glx b/PSCADA/SG管理机模版/data/pic/界面框架/view_web_energy.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/界面框架/view_web_energy.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/view_web_energy.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/view_work_ticket.glx b/PSCADA/SG管理机模版/data/pic/界面框架/view_work_ticket.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/界面框架/view_work_ticket.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/view_work_ticket.glx diff --git a/PSCADA/SG-A通讯管理模版/data/pic/界面框架/导航栏.glx b/PSCADA/SG管理机模版/data/pic/界面框架/导航栏.glx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/pic/界面框架/导航栏.glx rename to PSCADA/SG管理机模版/data/pic/界面框架/导航栏.glx diff --git a/PSCADA/SG-A通讯管理模版/data/picbackup.tar.gz b/PSCADA/SG管理机模版/data/picbackup.tar.gz similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/picbackup.tar.gz rename to PSCADA/SG管理机模版/data/picbackup.tar.gz diff --git a/PSCADA/SG-A通讯管理模版/data/protect/branchSetting/全部名称.csv b/PSCADA/SG管理机模版/data/protect/branchSetting/全部名称.csv similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/protect/branchSetting/全部名称.csv rename to PSCADA/SG管理机模版/data/protect/branchSetting/全部名称.csv diff --git a/PSCADA/SG-A通讯管理模版/data/protect/deviceList.csv b/PSCADA/SG管理机模版/data/protect/deviceList.csv similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/protect/deviceList.csv rename to PSCADA/SG管理机模版/data/protect/deviceList.csv diff --git a/PSCADA/SG-A通讯管理模版/data/rec/#1储能回路#1储能单元/PCS协控1/XK1001_RCD_0_20240416_105916_461.cfg b/PSCADA/SG管理机模版/data/rec/#1储能回路#1储能单元/PCS协控1/XK1001_RCD_0_20240416_105916_461.cfg similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/rec/#1储能回路#1储能单元/PCS协控1/XK1001_RCD_0_20240416_105916_461.cfg rename to PSCADA/SG管理机模版/data/rec/#1储能回路#1储能单元/PCS协控1/XK1001_RCD_0_20240416_105916_461.cfg diff --git a/PSCADA/SG-A通讯管理模版/data/rec/#1储能回路#1储能单元/PCS协控1/XK1001_RCD_0_20240416_105916_461.dat b/PSCADA/SG管理机模版/data/rec/#1储能回路#1储能单元/PCS协控1/XK1001_RCD_0_20240416_105916_461.dat similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/rec/#1储能回路#1储能单元/PCS协控1/XK1001_RCD_0_20240416_105916_461.dat rename to PSCADA/SG管理机模版/data/rec/#1储能回路#1储能单元/PCS协控1/XK1001_RCD_0_20240416_105916_461.dat diff --git a/PSCADA/SG-A通讯管理模版/data/rec/#1储能回路#1储能单元/PCS协控1/XK1001_RCD_0_20240416_105916_461.des b/PSCADA/SG管理机模版/data/rec/#1储能回路#1储能单元/PCS协控1/XK1001_RCD_0_20240416_105916_461.des similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/rec/#1储能回路#1储能单元/PCS协控1/XK1001_RCD_0_20240416_105916_461.des rename to PSCADA/SG管理机模版/data/rec/#1储能回路#1储能单元/PCS协控1/XK1001_RCD_0_20240416_105916_461.des diff --git a/PSCADA/SG-A通讯管理模版/data/rec/#1储能回路#1储能单元/PCS协控1/XK1001_RCD_0_20240416_105916_461.hdr b/PSCADA/SG管理机模版/data/rec/#1储能回路#1储能单元/PCS协控1/XK1001_RCD_0_20240416_105916_461.hdr similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/rec/#1储能回路#1储能单元/PCS协控1/XK1001_RCD_0_20240416_105916_461.hdr rename to PSCADA/SG管理机模版/data/rec/#1储能回路#1储能单元/PCS协控1/XK1001_RCD_0_20240416_105916_461.hdr diff --git a/PSCADA/SG-A通讯管理模版/data/rec/#1储能回路#1储能单元/PCS协控1/XK1001_RCD_0_20240416_105916_461.mid b/PSCADA/SG管理机模版/data/rec/#1储能回路#1储能单元/PCS协控1/XK1001_RCD_0_20240416_105916_461.mid similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/rec/#1储能回路#1储能单元/PCS协控1/XK1001_RCD_0_20240416_105916_461.mid rename to PSCADA/SG管理机模版/data/rec/#1储能回路#1储能单元/PCS协控1/XK1001_RCD_0_20240416_105916_461.mid diff --git a/PSCADA/SG-A通讯管理模版/data/rec/进线柜/断路器/PQMonitor_PQM1_001_20220502_151718_839.cfg b/PSCADA/SG管理机模版/data/rec/进线柜/断路器/PQMonitor_PQM1_001_20220502_151718_839.cfg similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/rec/进线柜/断路器/PQMonitor_PQM1_001_20220502_151718_839.cfg rename to PSCADA/SG管理机模版/data/rec/进线柜/断路器/PQMonitor_PQM1_001_20220502_151718_839.cfg diff --git a/PSCADA/SG-A通讯管理模版/data/rec/进线柜/断路器/PQMonitor_PQM1_001_20220502_151718_839.dat b/PSCADA/SG管理机模版/data/rec/进线柜/断路器/PQMonitor_PQM1_001_20220502_151718_839.dat similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/rec/进线柜/断路器/PQMonitor_PQM1_001_20220502_151718_839.dat rename to PSCADA/SG管理机模版/data/rec/进线柜/断路器/PQMonitor_PQM1_001_20220502_151718_839.dat diff --git a/PSCADA/SG-A通讯管理模版/data/rec/进线柜/断路器/PQMonitor_PQM1_001_20220502_151718_839.hdr b/PSCADA/SG管理机模版/data/rec/进线柜/断路器/PQMonitor_PQM1_001_20220502_151718_839.hdr similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/rec/进线柜/断路器/PQMonitor_PQM1_001_20220502_151718_839.hdr rename to PSCADA/SG管理机模版/data/rec/进线柜/断路器/PQMonitor_PQM1_001_20220502_151718_839.hdr diff --git a/PSCADA/SG-A通讯管理模版/data/rec/进线柜/断路器/PQMonitor_PQM1_001_20220502_151718_839.inf b/PSCADA/SG管理机模版/data/rec/进线柜/断路器/PQMonitor_PQM1_001_20220502_151718_839.inf similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/rec/进线柜/断路器/PQMonitor_PQM1_001_20220502_151718_839.inf rename to PSCADA/SG管理机模版/data/rec/进线柜/断路器/PQMonitor_PQM1_001_20220502_151718_839.inf diff --git a/PSCADA/SG-A通讯管理模版/data/rec/进线柜/断路器/PQMonitor_PQM1_001_20220926_173250_750.cfg b/PSCADA/SG管理机模版/data/rec/进线柜/断路器/PQMonitor_PQM1_001_20220926_173250_750.cfg similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/rec/进线柜/断路器/PQMonitor_PQM1_001_20220926_173250_750.cfg rename to PSCADA/SG管理机模版/data/rec/进线柜/断路器/PQMonitor_PQM1_001_20220926_173250_750.cfg diff --git a/PSCADA/SG-A通讯管理模版/data/rec/进线柜/断路器/PQMonitor_PQM1_001_20220926_173250_750.dat b/PSCADA/SG管理机模版/data/rec/进线柜/断路器/PQMonitor_PQM1_001_20220926_173250_750.dat similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/rec/进线柜/断路器/PQMonitor_PQM1_001_20220926_173250_750.dat rename to PSCADA/SG管理机模版/data/rec/进线柜/断路器/PQMonitor_PQM1_001_20220926_173250_750.dat diff --git a/PSCADA/SG-A通讯管理模版/data/rec/进线柜/断路器/PQMonitor_PQM1_001_20220926_173250_750.hdr b/PSCADA/SG管理机模版/data/rec/进线柜/断路器/PQMonitor_PQM1_001_20220926_173250_750.hdr similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/rec/进线柜/断路器/PQMonitor_PQM1_001_20220926_173250_750.hdr rename to PSCADA/SG管理机模版/data/rec/进线柜/断路器/PQMonitor_PQM1_001_20220926_173250_750.hdr diff --git a/PSCADA/SG-A通讯管理模版/data/rec/进线柜/断路器/PQMonitor_PQM1_001_20220926_173250_750.inf b/PSCADA/SG管理机模版/data/rec/进线柜/断路器/PQMonitor_PQM1_001_20220926_173250_750.inf similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/rec/进线柜/断路器/PQMonitor_PQM1_001_20220926_173250_750.inf rename to PSCADA/SG管理机模版/data/rec/进线柜/断路器/PQMonitor_PQM1_001_20220926_173250_750.inf diff --git a/PSCADA/SG-A通讯管理模版/data/rec/进线柜/断路器/PQMonitor_PQM1_002_20220502_151847_028.cfg b/PSCADA/SG管理机模版/data/rec/进线柜/断路器/PQMonitor_PQM1_002_20220502_151847_028.cfg similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/rec/进线柜/断路器/PQMonitor_PQM1_002_20220502_151847_028.cfg rename to PSCADA/SG管理机模版/data/rec/进线柜/断路器/PQMonitor_PQM1_002_20220502_151847_028.cfg diff --git a/PSCADA/SG-A通讯管理模版/data/rec/进线柜/断路器/PQMonitor_PQM1_002_20220502_151847_028.dat b/PSCADA/SG管理机模版/data/rec/进线柜/断路器/PQMonitor_PQM1_002_20220502_151847_028.dat similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/rec/进线柜/断路器/PQMonitor_PQM1_002_20220502_151847_028.dat rename to PSCADA/SG管理机模版/data/rec/进线柜/断路器/PQMonitor_PQM1_002_20220502_151847_028.dat diff --git a/PSCADA/SG-A通讯管理模版/data/rec/进线柜/断路器/PQMonitor_PQM1_002_20220502_151847_028.hdr b/PSCADA/SG管理机模版/data/rec/进线柜/断路器/PQMonitor_PQM1_002_20220502_151847_028.hdr similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/rec/进线柜/断路器/PQMonitor_PQM1_002_20220502_151847_028.hdr rename to PSCADA/SG管理机模版/data/rec/进线柜/断路器/PQMonitor_PQM1_002_20220502_151847_028.hdr diff --git a/PSCADA/SG-A通讯管理模版/data/rec/进线柜/断路器/PQMonitor_PQM1_002_20220502_151847_028.inf b/PSCADA/SG管理机模版/data/rec/进线柜/断路器/PQMonitor_PQM1_002_20220502_151847_028.inf similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/rec/进线柜/断路器/PQMonitor_PQM1_002_20220502_151847_028.inf rename to PSCADA/SG管理机模版/data/rec/进线柜/断路器/PQMonitor_PQM1_002_20220502_151847_028.inf diff --git a/PSCADA/SG-A通讯管理模版/data/report/FAIL_PAGE.html b/PSCADA/SG管理机模版/data/report/FAIL_PAGE.html similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/report/FAIL_PAGE.html rename to PSCADA/SG管理机模版/data/report/FAIL_PAGE.html diff --git a/PSCADA/SG-A通讯管理模版/data/report/PERM_FORBIT_EDIT.html b/PSCADA/SG管理机模版/data/report/PERM_FORBIT_EDIT.html similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/report/PERM_FORBIT_EDIT.html rename to PSCADA/SG管理机模版/data/report/PERM_FORBIT_EDIT.html diff --git a/PSCADA/SG-A通讯管理模版/data/report/PERM_FORBIT_VIEW.html b/PSCADA/SG管理机模版/data/report/PERM_FORBIT_VIEW.html similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/report/PERM_FORBIT_VIEW.html rename to PSCADA/SG管理机模版/data/report/PERM_FORBIT_VIEW.html diff --git a/PSCADA/SG-A通讯管理模版/data/reportFile/10kV厂用电日电度报表.log b/PSCADA/SG管理机模版/data/reportFile/10kV厂用电日电度报表.log similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/reportFile/10kV厂用电日电度报表.log rename to PSCADA/SG管理机模版/data/reportFile/10kV厂用电日电度报表.log diff --git a/PSCADA/SG-A通讯管理模版/data/reportFile/10kV厂用电日运行报表.log b/PSCADA/SG管理机模版/data/reportFile/10kV厂用电日运行报表.log similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/reportFile/10kV厂用电日运行报表.log rename to PSCADA/SG管理机模版/data/reportFile/10kV厂用电日运行报表.log diff --git a/PSCADA/SG-A通讯管理模版/data/script/commonBtn.qs b/PSCADA/SG管理机模版/data/script/commonBtn.qs similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/script/commonBtn.qs rename to PSCADA/SG管理机模版/data/script/commonBtn.qs diff --git a/PSCADA/SG-A通讯管理模版/data/script/commonOpt.qs b/PSCADA/SG管理机模版/data/script/commonOpt.qs similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/script/commonOpt.qs rename to PSCADA/SG管理机模版/data/script/commonOpt.qs diff --git a/PSCADA/SG-A通讯管理模版/data/script/commonTree(复件).qs b/PSCADA/SG管理机模版/data/script/commonTree(复件).qs similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/script/commonTree(复件).qs rename to PSCADA/SG管理机模版/data/script/commonTree(复件).qs diff --git a/PSCADA/SG-A通讯管理模版/data/script/commonTree.qs b/PSCADA/SG管理机模版/data/script/commonTree.qs similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/script/commonTree.qs rename to PSCADA/SG管理机模版/data/script/commonTree.qs diff --git a/PSCADA/SG-A通讯管理模版/data/script/lockOpt.qs b/PSCADA/SG管理机模版/data/script/lockOpt.qs similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/script/lockOpt.qs rename to PSCADA/SG管理机模版/data/script/lockOpt.qs diff --git a/PSCADA/SG-A通讯管理模版/data/script/macros.7z b/PSCADA/SG管理机模版/data/script/macros.7z similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/script/macros.7z rename to PSCADA/SG管理机模版/data/script/macros.7z diff --git a/PSCADA/SG-A通讯管理模版/data/script/macros.qs b/PSCADA/SG管理机模版/data/script/macros.qs similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/script/macros.qs rename to PSCADA/SG管理机模版/data/script/macros.qs diff --git a/PSCADA/SG-A通讯管理模版/data/script/panel_ctrl_1N.qs b/PSCADA/SG管理机模版/data/script/panel_ctrl_1N.qs similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/script/panel_ctrl_1N.qs rename to PSCADA/SG管理机模版/data/script/panel_ctrl_1N.qs diff --git a/PSCADA/SG-A通讯管理模版/data/script/panel_ctrl_digital.qs b/PSCADA/SG管理机模版/data/script/panel_ctrl_digital.qs similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/script/panel_ctrl_digital.qs rename to PSCADA/SG管理机模版/data/script/panel_ctrl_digital.qs diff --git a/PSCADA/SG-A通讯管理模版/data/script/pscadaOpt.qs b/PSCADA/SG管理机模版/data/script/pscadaOpt.qs similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/script/pscadaOpt.qs rename to PSCADA/SG管理机模版/data/script/pscadaOpt.qs diff --git a/PSCADA/SG-A通讯管理模版/data/script/scriptCfg.qs b/PSCADA/SG管理机模版/data/script/scriptCfg.qs similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/script/scriptCfg.qs rename to PSCADA/SG管理机模版/data/script/scriptCfg.qs diff --git a/PSCADA/SG-A通讯管理模版/data/scriptbackup.tar.gz b/PSCADA/SG管理机模版/data/scriptbackup.tar.gz similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/scriptbackup.tar.gz rename to PSCADA/SG管理机模版/data/scriptbackup.tar.gz diff --git a/PSCADA/SG-A通讯管理模版/data/sound/Default.wav b/PSCADA/SG管理机模版/data/sound/Default.wav similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/sound/Default.wav rename to PSCADA/SG管理机模版/data/sound/Default.wav diff --git a/PSCADA/SG-A通讯管理模版/data/sound/JUMP_EN.WAV b/PSCADA/SG管理机模版/data/sound/JUMP_EN.WAV similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/sound/JUMP_EN.WAV rename to PSCADA/SG管理机模版/data/sound/JUMP_EN.WAV diff --git a/PSCADA/SG-A通讯管理模版/data/sound/OVER6.WAV b/PSCADA/SG管理机模版/data/sound/OVER6.WAV similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/sound/OVER6.WAV rename to PSCADA/SG管理机模版/data/sound/OVER6.WAV diff --git a/PSCADA/SG-A通讯管理模版/data/sound/ROOSTER.wav b/PSCADA/SG管理机模版/data/sound/ROOSTER.wav similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/sound/ROOSTER.wav rename to PSCADA/SG管理机模版/data/sound/ROOSTER.wav diff --git a/PSCADA/SG-A通讯管理模版/data/sound/保护SOE报警.WAV b/PSCADA/SG管理机模版/data/sound/保护SOE报警.WAV similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/sound/保护SOE报警.WAV rename to PSCADA/SG管理机模版/data/sound/保护SOE报警.WAV diff --git a/PSCADA/SG-A通讯管理模版/data/sound/保护报警.wav b/PSCADA/SG管理机模版/data/sound/保护报警.wav similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/sound/保护报警.wav rename to PSCADA/SG管理机模版/data/sound/保护报警.wav diff --git a/PSCADA/SG-A通讯管理模版/data/sound/保护报警1.WAV b/PSCADA/SG管理机模版/data/sound/保护报警1.WAV similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/sound/保护报警1.WAV rename to PSCADA/SG管理机模版/data/sound/保护报警1.WAV diff --git a/PSCADA/SG-A通讯管理模版/data/sound/关闭.WAV b/PSCADA/SG管理机模版/data/sound/关闭.WAV similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/sound/关闭.WAV rename to PSCADA/SG管理机模版/data/sound/关闭.WAV diff --git a/PSCADA/SG-A通讯管理模版/data/sound/刀闸报警.wav b/PSCADA/SG管理机模版/data/sound/刀闸报警.wav similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/sound/刀闸报警.wav rename to PSCADA/SG管理机模版/data/sound/刀闸报警.wav diff --git a/PSCADA/SG-A通讯管理模版/data/sound/向上还原.WAV b/PSCADA/SG管理机模版/data/sound/向上还原.WAV similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/sound/向上还原.WAV rename to PSCADA/SG管理机模版/data/sound/向上还原.WAV diff --git a/PSCADA/SG-A通讯管理模版/data/sound/向下还原.WAV b/PSCADA/SG管理机模版/data/sound/向下还原.WAV similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/sound/向下还原.WAV rename to PSCADA/SG管理机模版/data/sound/向下还原.WAV diff --git a/PSCADA/SG-A通讯管理模版/data/sound/嘟嘟声.wav b/PSCADA/SG管理机模版/data/sound/嘟嘟声.wav similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/sound/嘟嘟声.wav rename to PSCADA/SG管理机模版/data/sound/嘟嘟声.wav diff --git a/PSCADA/SG-A通讯管理模版/data/sound/幻想空间默认值.WAV b/PSCADA/SG管理机模版/data/sound/幻想空间默认值.WAV similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/sound/幻想空间默认值.WAV rename to PSCADA/SG管理机模版/data/sound/幻想空间默认值.WAV diff --git a/PSCADA/SG-A通讯管理模版/data/sound/开关.Wav b/PSCADA/SG管理机模版/data/sound/开关.Wav similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/sound/开关.Wav rename to PSCADA/SG管理机模版/data/sound/开关.Wav diff --git a/PSCADA/SG-A通讯管理模版/data/sound/开关1003.Wav b/PSCADA/SG管理机模版/data/sound/开关1003.Wav similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/sound/开关1003.Wav rename to PSCADA/SG管理机模版/data/sound/开关1003.Wav diff --git a/PSCADA/SG-A通讯管理模版/data/sound/开关1004.wav b/PSCADA/SG管理机模版/data/sound/开关1004.wav similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/sound/开关1004.wav rename to PSCADA/SG管理机模版/data/sound/开关1004.wav diff --git a/PSCADA/SG-A通讯管理模版/data/sound/总功报警.wav b/PSCADA/SG管理机模版/data/sound/总功报警.wav similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/sound/总功报警.wav rename to PSCADA/SG管理机模版/data/sound/总功报警.wav diff --git a/PSCADA/SG-A通讯管理模版/data/sound/感叹.WAV b/PSCADA/SG管理机模版/data/sound/感叹.WAV similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/sound/感叹.WAV rename to PSCADA/SG管理机模版/data/sound/感叹.WAV diff --git a/PSCADA/SG-A通讯管理模版/data/sound/打开.WAV b/PSCADA/SG管理机模版/data/sound/打开.WAV similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/sound/打开.WAV rename to PSCADA/SG管理机模版/data/sound/打开.WAV diff --git a/PSCADA/SG-A通讯管理模版/data/sound/报警.wav b/PSCADA/SG管理机模版/data/sound/报警.wav similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/sound/报警.wav rename to PSCADA/SG管理机模版/data/sound/报警.wav diff --git a/PSCADA/SG-A通讯管理模版/data/sound/提示.WAV b/PSCADA/SG管理机模版/data/sound/提示.WAV similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/sound/提示.WAV rename to PSCADA/SG管理机模版/data/sound/提示.WAV diff --git a/PSCADA/SG-A通讯管理模版/data/sound/提问.WAV b/PSCADA/SG管理机模版/data/sound/提问.WAV similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/sound/提问.WAV rename to PSCADA/SG管理机模版/data/sound/提问.WAV diff --git a/PSCADA/SG-A通讯管理模版/data/sound/最大化.wav b/PSCADA/SG管理机模版/data/sound/最大化.wav similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/sound/最大化.wav rename to PSCADA/SG管理机模版/data/sound/最大化.wav diff --git a/PSCADA/SG-A通讯管理模版/data/sound/最小化.wav b/PSCADA/SG管理机模版/data/sound/最小化.wav similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/sound/最小化.wav rename to PSCADA/SG管理机模版/data/sound/最小化.wav diff --git a/PSCADA/SG-A通讯管理模版/data/sound/清空回收站.wav b/PSCADA/SG管理机模版/data/sound/清空回收站.wav similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/sound/清空回收站.wav rename to PSCADA/SG管理机模版/data/sound/清空回收站.wav diff --git a/PSCADA/SG-A通讯管理模版/data/sound/状态报警.wav b/PSCADA/SG管理机模版/data/sound/状态报警.wav similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/sound/状态报警.wav rename to PSCADA/SG管理机模版/data/sound/状态报警.wav diff --git a/PSCADA/SG-A通讯管理模版/data/sound/电笛.WAV b/PSCADA/SG管理机模版/data/sound/电笛.WAV similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/sound/电笛.WAV rename to PSCADA/SG管理机模版/data/sound/电笛.WAV diff --git a/PSCADA/SG-A通讯管理模版/data/sound/电铃.WAV b/PSCADA/SG管理机模版/data/sound/电铃.WAV similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/sound/电铃.WAV rename to PSCADA/SG管理机模版/data/sound/电铃.WAV diff --git a/PSCADA/SG-A通讯管理模版/data/sound/菜单命令.WAV b/PSCADA/SG管理机模版/data/sound/菜单命令.WAV similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/sound/菜单命令.WAV rename to PSCADA/SG管理机模版/data/sound/菜单命令.WAV diff --git a/PSCADA/SG-A通讯管理模版/data/sound/菜单弹出.WAV b/PSCADA/SG管理机模版/data/sound/菜单弹出.WAV similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/sound/菜单弹出.WAV rename to PSCADA/SG管理机模版/data/sound/菜单弹出.WAV diff --git a/PSCADA/SG-A通讯管理模版/data/sound/蜂鸣器.WAV b/PSCADA/SG管理机模版/data/sound/蜂鸣器.WAV similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/sound/蜂鸣器.WAV rename to PSCADA/SG管理机模版/data/sound/蜂鸣器.WAV diff --git a/PSCADA/SG-A通讯管理模版/data/sound/错误.WAV b/PSCADA/SG管理机模版/data/sound/错误.WAV similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/sound/错误.WAV rename to PSCADA/SG管理机模版/data/sound/错误.WAV diff --git a/PSCADA/SG-A通讯管理模版/data/sound/预告报警.wav b/PSCADA/SG管理机模版/data/sound/预告报警.wav similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/sound/预告报警.wav rename to PSCADA/SG管理机模版/data/sound/预告报警.wav diff --git a/PSCADA/SG-A通讯管理模版/data/sys_model_info/SYS_MODEL_APP_INFO.xml b/PSCADA/SG管理机模版/data/sys_model_info/SYS_MODEL_APP_INFO.xml similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/sys_model_info/SYS_MODEL_APP_INFO.xml rename to PSCADA/SG管理机模版/data/sys_model_info/SYS_MODEL_APP_INFO.xml diff --git a/PSCADA/SG管理机模版/data/sys_model_info/SYS_MODEL_DBCONFIG_DOMAIN.xml b/PSCADA/SG管理机模版/data/sys_model_info/SYS_MODEL_DBCONFIG_DOMAIN.xml new file mode 100644 index 0000000..f03c435 --- /dev/null +++ b/PSCADA/SG管理机模版/data/sys_model_info/SYS_MODEL_DBCONFIG_DOMAIN.xml @@ -0,0 +1,4 @@ + + + +
diff --git a/PSCADA/SG管理机模版/data/sys_model_info/SYS_MODEL_DBCONFIG_NODE.xml b/PSCADA/SG管理机模版/data/sys_model_info/SYS_MODEL_DBCONFIG_NODE.xml new file mode 100644 index 0000000..1226e40 --- /dev/null +++ b/PSCADA/SG管理机模版/data/sys_model_info/SYS_MODEL_DBCONFIG_NODE.xml @@ -0,0 +1,4 @@ + + + +
diff --git a/PSCADA/SG-A通讯管理模版/data/sys_model_info/SYS_MODEL_DEPLOY_INFO.xml b/PSCADA/SG管理机模版/data/sys_model_info/SYS_MODEL_DEPLOY_INFO.xml similarity index 56% rename from PSCADA/SG-A通讯管理模版/data/sys_model_info/SYS_MODEL_DEPLOY_INFO.xml rename to PSCADA/SG管理机模版/data/sys_model_info/SYS_MODEL_DEPLOY_INFO.xml index a2bfa84..0c68a48 100644 --- a/PSCADA/SG-A通讯管理模版/data/sys_model_info/SYS_MODEL_DEPLOY_INFO.xml +++ b/PSCADA/SG管理机模版/data/sys_model_info/SYS_MODEL_DEPLOY_INFO.xml @@ -1,5 +1,5 @@ - - + +
diff --git a/PSCADA/SG-A通讯管理模版/data/sys_model_info/SYS_MODEL_DOMAIN_INFO.xml b/PSCADA/SG管理机模版/data/sys_model_info/SYS_MODEL_DOMAIN_INFO.xml similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/sys_model_info/SYS_MODEL_DOMAIN_INFO.xml rename to PSCADA/SG管理机模版/data/sys_model_info/SYS_MODEL_DOMAIN_INFO.xml diff --git a/PSCADA/SG-A通讯管理模版/data/sys_model_info/SYS_MODEL_LOCATION_INFO.xlsx b/PSCADA/SG管理机模版/data/sys_model_info/SYS_MODEL_LOCATION_INFO.xlsx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/sys_model_info/SYS_MODEL_LOCATION_INFO.xlsx rename to PSCADA/SG管理机模版/data/sys_model_info/SYS_MODEL_LOCATION_INFO.xlsx diff --git a/PSCADA/SG-A通讯管理模版/data/sys_model_info/SYS_MODEL_LOCATION_INFO.xml b/PSCADA/SG管理机模版/data/sys_model_info/SYS_MODEL_LOCATION_INFO.xml similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/sys_model_info/SYS_MODEL_LOCATION_INFO.xml rename to PSCADA/SG管理机模版/data/sys_model_info/SYS_MODEL_LOCATION_INFO.xml diff --git a/PSCADA/SG-A通讯管理模版/data/sys_model_info/SYS_MODEL_MSG_RELAY.xml b/PSCADA/SG管理机模版/data/sys_model_info/SYS_MODEL_MSG_RELAY.xml similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/sys_model_info/SYS_MODEL_MSG_RELAY.xml rename to PSCADA/SG管理机模版/data/sys_model_info/SYS_MODEL_MSG_RELAY.xml diff --git a/PSCADA/SG-A通讯管理模版/data/sys_model_info/SYS_MODEL_NODE_INFO.xlsx b/PSCADA/SG管理机模版/data/sys_model_info/SYS_MODEL_NODE_INFO.xlsx similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/sys_model_info/SYS_MODEL_NODE_INFO.xlsx rename to PSCADA/SG管理机模版/data/sys_model_info/SYS_MODEL_NODE_INFO.xlsx diff --git a/PSCADA/SG管理机模版/data/sys_model_info/SYS_MODEL_NODE_INFO.xml b/PSCADA/SG管理机模版/data/sys_model_info/SYS_MODEL_NODE_INFO.xml new file mode 100644 index 0000000..cc692f2 --- /dev/null +++ b/PSCADA/SG管理机模版/data/sys_model_info/SYS_MODEL_NODE_INFO.xml @@ -0,0 +1,5 @@ + + + + +
diff --git a/PSCADA/SG-A通讯管理模版/data/sys_model_info/SYS_MODEL_PROCESS_INFO.xml b/PSCADA/SG管理机模版/data/sys_model_info/SYS_MODEL_PROCESS_INFO.xml similarity index 93% rename from PSCADA/SG-A通讯管理模版/data/sys_model_info/SYS_MODEL_PROCESS_INFO.xml rename to PSCADA/SG管理机模版/data/sys_model_info/SYS_MODEL_PROCESS_INFO.xml index 082d8ad..80e1b49 100644 --- a/PSCADA/SG-A通讯管理模版/data/sys_model_info/SYS_MODEL_PROCESS_INFO.xml +++ b/PSCADA/SG管理机模版/data/sys_model_info/SYS_MODEL_PROCESS_INFO.xml @@ -9,6 +9,7 @@ + diff --git a/PSCADA/SG-A通讯管理模版/data/sys_model_info/SYS_MODEL_SUB_SYSTEM_INFO.xml b/PSCADA/SG管理机模版/data/sys_model_info/SYS_MODEL_SUB_SYSTEM_INFO.xml similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/sys_model_info/SYS_MODEL_SUB_SYSTEM_INFO.xml rename to PSCADA/SG管理机模版/data/sys_model_info/SYS_MODEL_SUB_SYSTEM_INFO.xml diff --git a/PSCADA/SG-A通讯管理模版/data/web_server_files/3D/a-03adroghm_jknmfo87f2.glb b/PSCADA/SG管理机模版/data/web_server_files/3D/a-03adroghm_jknmfo87f2.glb similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/web_server_files/3D/a-03adroghm_jknmfo87f2.glb rename to PSCADA/SG管理机模版/data/web_server_files/3D/a-03adroghm_jknmfo87f2.glb diff --git a/PSCADA/SG-A通讯管理模版/data/web_server_files/3dPublicConfigs/-us3al30_08rxql6zlbfc5.json b/PSCADA/SG管理机模版/data/web_server_files/3dPublicConfigs/-us3al30_08rxql6zlbfc5.json similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/web_server_files/3dPublicConfigs/-us3al30_08rxql6zlbfc5.json rename to PSCADA/SG管理机模版/data/web_server_files/3dPublicConfigs/-us3al30_08rxql6zlbfc5.json diff --git a/PSCADA/SG-A通讯管理模版/data/web_server_files/3dPublicConfigs/1al160nobkq99noy8v-7iu.json b/PSCADA/SG管理机模版/data/web_server_files/3dPublicConfigs/1al160nobkq99noy8v-7iu.json similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/web_server_files/3dPublicConfigs/1al160nobkq99noy8v-7iu.json rename to PSCADA/SG管理机模版/data/web_server_files/3dPublicConfigs/1al160nobkq99noy8v-7iu.json diff --git a/PSCADA/SG-A通讯管理模版/data/web_server_files/3dPublicConfigs/24i-g2jx_u66rua28zzjrx.json b/PSCADA/SG管理机模版/data/web_server_files/3dPublicConfigs/24i-g2jx_u66rua28zzjrx.json similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/web_server_files/3dPublicConfigs/24i-g2jx_u66rua28zzjrx.json rename to PSCADA/SG管理机模版/data/web_server_files/3dPublicConfigs/24i-g2jx_u66rua28zzjrx.json diff --git a/PSCADA/SG-A通讯管理模版/data/web_server_files/3dPublicConfigs/326ckzbji8i3kudupaonfy.json b/PSCADA/SG管理机模版/data/web_server_files/3dPublicConfigs/326ckzbji8i3kudupaonfy.json similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/web_server_files/3dPublicConfigs/326ckzbji8i3kudupaonfy.json rename to PSCADA/SG管理机模版/data/web_server_files/3dPublicConfigs/326ckzbji8i3kudupaonfy.json diff --git a/PSCADA/SG-A通讯管理模版/data/web_server_files/3dPublicConfigs/3n_t3p088qeqbcph_-zqsq.json b/PSCADA/SG管理机模版/data/web_server_files/3dPublicConfigs/3n_t3p088qeqbcph_-zqsq.json similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/web_server_files/3dPublicConfigs/3n_t3p088qeqbcph_-zqsq.json rename to PSCADA/SG管理机模版/data/web_server_files/3dPublicConfigs/3n_t3p088qeqbcph_-zqsq.json diff --git a/PSCADA/SG-A通讯管理模版/data/web_server_files/3dPublicConfigs/3xnj28pkwe9up4734md9cq.json b/PSCADA/SG管理机模版/data/web_server_files/3dPublicConfigs/3xnj28pkwe9up4734md9cq.json similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/web_server_files/3dPublicConfigs/3xnj28pkwe9up4734md9cq.json rename to PSCADA/SG管理机模版/data/web_server_files/3dPublicConfigs/3xnj28pkwe9up4734md9cq.json diff --git a/PSCADA/SG-A通讯管理模版/data/web_server_files/3dPublicConfigs/51ozdkblrwkq1-coyqdavr.json b/PSCADA/SG管理机模版/data/web_server_files/3dPublicConfigs/51ozdkblrwkq1-coyqdavr.json similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/web_server_files/3dPublicConfigs/51ozdkblrwkq1-coyqdavr.json rename to PSCADA/SG管理机模版/data/web_server_files/3dPublicConfigs/51ozdkblrwkq1-coyqdavr.json diff --git a/PSCADA/SG-A通讯管理模版/data/web_server_files/3dPublicConfigs/5l_ivsx1wrkdabd0fit4o9.json b/PSCADA/SG管理机模版/data/web_server_files/3dPublicConfigs/5l_ivsx1wrkdabd0fit4o9.json similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/web_server_files/3dPublicConfigs/5l_ivsx1wrkdabd0fit4o9.json rename to PSCADA/SG管理机模版/data/web_server_files/3dPublicConfigs/5l_ivsx1wrkdabd0fit4o9.json diff --git a/PSCADA/SG-A通讯管理模版/data/web_server_files/3dPublicConfigs/5vmsu53hzzwhsfoczkab6k.json b/PSCADA/SG管理机模版/data/web_server_files/3dPublicConfigs/5vmsu53hzzwhsfoczkab6k.json similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/web_server_files/3dPublicConfigs/5vmsu53hzzwhsfoczkab6k.json rename to PSCADA/SG管理机模版/data/web_server_files/3dPublicConfigs/5vmsu53hzzwhsfoczkab6k.json diff --git a/PSCADA/SG-A通讯管理模版/data/web_server_files/3dPublicConfigs/6kkccamzzlg9dxoxvta1ke.json b/PSCADA/SG管理机模版/data/web_server_files/3dPublicConfigs/6kkccamzzlg9dxoxvta1ke.json similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/web_server_files/3dPublicConfigs/6kkccamzzlg9dxoxvta1ke.json rename to PSCADA/SG管理机模版/data/web_server_files/3dPublicConfigs/6kkccamzzlg9dxoxvta1ke.json diff --git a/PSCADA/SG-A通讯管理模版/data/web_server_files/3dPublicConfigs/74k25ecsgwymadilkmnksy.json b/PSCADA/SG管理机模版/data/web_server_files/3dPublicConfigs/74k25ecsgwymadilkmnksy.json similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/web_server_files/3dPublicConfigs/74k25ecsgwymadilkmnksy.json rename to PSCADA/SG管理机模版/data/web_server_files/3dPublicConfigs/74k25ecsgwymadilkmnksy.json diff --git a/PSCADA/SG-A通讯管理模版/data/web_server_files/3dPublicConfigs/7t66ynjth02_38z1o9yprc.json b/PSCADA/SG管理机模版/data/web_server_files/3dPublicConfigs/7t66ynjth02_38z1o9yprc.json similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/web_server_files/3dPublicConfigs/7t66ynjth02_38z1o9yprc.json rename to PSCADA/SG管理机模版/data/web_server_files/3dPublicConfigs/7t66ynjth02_38z1o9yprc.json diff --git a/PSCADA/SG-A通讯管理模版/data/web_server_files/3dPublicConfigs/88y0rzhv78wpvtuk885uhw.json b/PSCADA/SG管理机模版/data/web_server_files/3dPublicConfigs/88y0rzhv78wpvtuk885uhw.json similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/web_server_files/3dPublicConfigs/88y0rzhv78wpvtuk885uhw.json rename to PSCADA/SG管理机模版/data/web_server_files/3dPublicConfigs/88y0rzhv78wpvtuk885uhw.json diff --git a/PSCADA/SG-A通讯管理模版/data/web_server_files/3dPublicConfigs/9fqt8r-8mgbzczioj2q2ab.json b/PSCADA/SG管理机模版/data/web_server_files/3dPublicConfigs/9fqt8r-8mgbzczioj2q2ab.json similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/web_server_files/3dPublicConfigs/9fqt8r-8mgbzczioj2q2ab.json rename to PSCADA/SG管理机模版/data/web_server_files/3dPublicConfigs/9fqt8r-8mgbzczioj2q2ab.json diff --git a/PSCADA/SG-A通讯管理模版/data/web_server_files/3dPublicConfigs/9n5jvyspzyaumcnmct6q6w.json b/PSCADA/SG管理机模版/data/web_server_files/3dPublicConfigs/9n5jvyspzyaumcnmct6q6w.json similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/web_server_files/3dPublicConfigs/9n5jvyspzyaumcnmct6q6w.json rename to PSCADA/SG管理机模版/data/web_server_files/3dPublicConfigs/9n5jvyspzyaumcnmct6q6w.json diff --git a/PSCADA/SG-A通讯管理模版/data/web_server_files/3dPublicConfigs/_1un7dc-vmhr1tzr-mc7a8.json b/PSCADA/SG管理机模版/data/web_server_files/3dPublicConfigs/_1un7dc-vmhr1tzr-mc7a8.json similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/web_server_files/3dPublicConfigs/_1un7dc-vmhr1tzr-mc7a8.json rename to PSCADA/SG管理机模版/data/web_server_files/3dPublicConfigs/_1un7dc-vmhr1tzr-mc7a8.json diff --git a/PSCADA/SG-A通讯管理模版/data/web_server_files/3dPublicConfigs/ba25z619z9dyev2q1c801b.json b/PSCADA/SG管理机模版/data/web_server_files/3dPublicConfigs/ba25z619z9dyev2q1c801b.json similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/web_server_files/3dPublicConfigs/ba25z619z9dyev2q1c801b.json rename to PSCADA/SG管理机模版/data/web_server_files/3dPublicConfigs/ba25z619z9dyev2q1c801b.json diff --git a/PSCADA/SG-A通讯管理模版/data/web_server_files/3dPublicConfigs/clcn74yb-cm9h_gxloic71.json b/PSCADA/SG管理机模版/data/web_server_files/3dPublicConfigs/clcn74yb-cm9h_gxloic71.json similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/web_server_files/3dPublicConfigs/clcn74yb-cm9h_gxloic71.json rename to PSCADA/SG管理机模版/data/web_server_files/3dPublicConfigs/clcn74yb-cm9h_gxloic71.json diff --git a/PSCADA/SG-A通讯管理模版/data/web_server_files/3dPublicConfigs/exaglht1330kbqama32-jj.json b/PSCADA/SG管理机模版/data/web_server_files/3dPublicConfigs/exaglht1330kbqama32-jj.json similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/web_server_files/3dPublicConfigs/exaglht1330kbqama32-jj.json rename to PSCADA/SG管理机模版/data/web_server_files/3dPublicConfigs/exaglht1330kbqama32-jj.json diff --git a/PSCADA/SG-A通讯管理模版/data/web_server_files/3dPublicConfigs/fxzw0d6u5_8sub1-xubx8e.json b/PSCADA/SG管理机模版/data/web_server_files/3dPublicConfigs/fxzw0d6u5_8sub1-xubx8e.json similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/web_server_files/3dPublicConfigs/fxzw0d6u5_8sub1-xubx8e.json rename to PSCADA/SG管理机模版/data/web_server_files/3dPublicConfigs/fxzw0d6u5_8sub1-xubx8e.json diff --git a/PSCADA/SG-A通讯管理模版/data/web_server_files/3dPublicConfigs/g0upy3ebnkrgbkac306vtz.json b/PSCADA/SG管理机模版/data/web_server_files/3dPublicConfigs/g0upy3ebnkrgbkac306vtz.json similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/web_server_files/3dPublicConfigs/g0upy3ebnkrgbkac306vtz.json rename to PSCADA/SG管理机模版/data/web_server_files/3dPublicConfigs/g0upy3ebnkrgbkac306vtz.json diff --git a/PSCADA/SG-A通讯管理模版/data/web_server_files/3dPublicConfigs/h8g2j6ic7_xx99t8-iuose.json b/PSCADA/SG管理机模版/data/web_server_files/3dPublicConfigs/h8g2j6ic7_xx99t8-iuose.json similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/web_server_files/3dPublicConfigs/h8g2j6ic7_xx99t8-iuose.json rename to PSCADA/SG管理机模版/data/web_server_files/3dPublicConfigs/h8g2j6ic7_xx99t8-iuose.json diff --git a/PSCADA/SG-A通讯管理模版/data/web_server_files/3dPublicConfigs/i5run9zaljl9kgdrx_89b6.json b/PSCADA/SG管理机模版/data/web_server_files/3dPublicConfigs/i5run9zaljl9kgdrx_89b6.json similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/web_server_files/3dPublicConfigs/i5run9zaljl9kgdrx_89b6.json rename to PSCADA/SG管理机模版/data/web_server_files/3dPublicConfigs/i5run9zaljl9kgdrx_89b6.json diff --git a/PSCADA/SG-A通讯管理模版/data/web_server_files/3dPublicConfigs/jfa6v6-4fvm3l9i1jve934.json b/PSCADA/SG管理机模版/data/web_server_files/3dPublicConfigs/jfa6v6-4fvm3l9i1jve934.json similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/web_server_files/3dPublicConfigs/jfa6v6-4fvm3l9i1jve934.json rename to PSCADA/SG管理机模版/data/web_server_files/3dPublicConfigs/jfa6v6-4fvm3l9i1jve934.json diff --git a/PSCADA/SG-A通讯管理模版/data/web_server_files/3dPublicConfigs/l44vzhrahws736r92zp2da.json b/PSCADA/SG管理机模版/data/web_server_files/3dPublicConfigs/l44vzhrahws736r92zp2da.json similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/web_server_files/3dPublicConfigs/l44vzhrahws736r92zp2da.json rename to PSCADA/SG管理机模版/data/web_server_files/3dPublicConfigs/l44vzhrahws736r92zp2da.json diff --git a/PSCADA/SG-A通讯管理模版/data/web_server_files/3dPublicConfigs/lzsr-0361tmv3uf8nytmae.json b/PSCADA/SG管理机模版/data/web_server_files/3dPublicConfigs/lzsr-0361tmv3uf8nytmae.json similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/web_server_files/3dPublicConfigs/lzsr-0361tmv3uf8nytmae.json rename to PSCADA/SG管理机模版/data/web_server_files/3dPublicConfigs/lzsr-0361tmv3uf8nytmae.json diff --git a/PSCADA/SG-A通讯管理模版/data/web_server_files/3dPublicConfigs/m08l1qgxsdmz8wm23j7evz.json b/PSCADA/SG管理机模版/data/web_server_files/3dPublicConfigs/m08l1qgxsdmz8wm23j7evz.json similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/web_server_files/3dPublicConfigs/m08l1qgxsdmz8wm23j7evz.json rename to PSCADA/SG管理机模版/data/web_server_files/3dPublicConfigs/m08l1qgxsdmz8wm23j7evz.json diff --git a/PSCADA/SG-A通讯管理模版/data/web_server_files/3dPublicConfigs/m1shfjtzwid_sp4-3d30jp.json b/PSCADA/SG管理机模版/data/web_server_files/3dPublicConfigs/m1shfjtzwid_sp4-3d30jp.json similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/web_server_files/3dPublicConfigs/m1shfjtzwid_sp4-3d30jp.json rename to PSCADA/SG管理机模版/data/web_server_files/3dPublicConfigs/m1shfjtzwid_sp4-3d30jp.json diff --git a/PSCADA/SG-A通讯管理模版/data/web_server_files/3dPublicConfigs/ma6zn_5lh-__1ao7_7ql64.json b/PSCADA/SG管理机模版/data/web_server_files/3dPublicConfigs/ma6zn_5lh-__1ao7_7ql64.json similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/web_server_files/3dPublicConfigs/ma6zn_5lh-__1ao7_7ql64.json rename to PSCADA/SG管理机模版/data/web_server_files/3dPublicConfigs/ma6zn_5lh-__1ao7_7ql64.json diff --git a/PSCADA/SG-A通讯管理模版/data/web_server_files/3dPublicConfigs/r4u6gxkexo-cwg8dfw34-c.json b/PSCADA/SG管理机模版/data/web_server_files/3dPublicConfigs/r4u6gxkexo-cwg8dfw34-c.json similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/web_server_files/3dPublicConfigs/r4u6gxkexo-cwg8dfw34-c.json rename to PSCADA/SG管理机模版/data/web_server_files/3dPublicConfigs/r4u6gxkexo-cwg8dfw34-c.json diff --git a/PSCADA/SG-A通讯管理模版/data/web_server_files/3dPublicConfigs/rn1w_xi5_9i1ht0w9yyfzu.json b/PSCADA/SG管理机模版/data/web_server_files/3dPublicConfigs/rn1w_xi5_9i1ht0w9yyfzu.json similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/web_server_files/3dPublicConfigs/rn1w_xi5_9i1ht0w9yyfzu.json rename to PSCADA/SG管理机模版/data/web_server_files/3dPublicConfigs/rn1w_xi5_9i1ht0w9yyfzu.json diff --git a/PSCADA/SG-A通讯管理模版/data/web_server_files/3dPublicConfigs/uf-_-b52ku7-ld--efct32.json b/PSCADA/SG管理机模版/data/web_server_files/3dPublicConfigs/uf-_-b52ku7-ld--efct32.json similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/web_server_files/3dPublicConfigs/uf-_-b52ku7-ld--efct32.json rename to PSCADA/SG管理机模版/data/web_server_files/3dPublicConfigs/uf-_-b52ku7-ld--efct32.json diff --git a/PSCADA/SG-A通讯管理模版/data/web_server_files/3dPublicConfigs/vlwu4ysip_ef7lp_omhtmh.json b/PSCADA/SG管理机模版/data/web_server_files/3dPublicConfigs/vlwu4ysip_ef7lp_omhtmh.json similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/web_server_files/3dPublicConfigs/vlwu4ysip_ef7lp_omhtmh.json rename to PSCADA/SG管理机模版/data/web_server_files/3dPublicConfigs/vlwu4ysip_ef7lp_omhtmh.json diff --git a/PSCADA/SG-A通讯管理模版/data/web_server_files/3dPublicConfigs/wh0bkhhwlonmzw00o09qh-.json b/PSCADA/SG管理机模版/data/web_server_files/3dPublicConfigs/wh0bkhhwlonmzw00o09qh-.json similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/web_server_files/3dPublicConfigs/wh0bkhhwlonmzw00o09qh-.json rename to PSCADA/SG管理机模版/data/web_server_files/3dPublicConfigs/wh0bkhhwlonmzw00o09qh-.json diff --git a/PSCADA/SG-A通讯管理模版/data/web_server_files/3dPublicConfigs/wl6uwti7r3dpnopuh4_3k4.json b/PSCADA/SG管理机模版/data/web_server_files/3dPublicConfigs/wl6uwti7r3dpnopuh4_3k4.json similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/web_server_files/3dPublicConfigs/wl6uwti7r3dpnopuh4_3k4.json rename to PSCADA/SG管理机模版/data/web_server_files/3dPublicConfigs/wl6uwti7r3dpnopuh4_3k4.json diff --git a/PSCADA/SG-A通讯管理模版/data/web_server_files/3dPublicConfigs/x36ola2i6ye-ve7tisl74c.json b/PSCADA/SG管理机模版/data/web_server_files/3dPublicConfigs/x36ola2i6ye-ve7tisl74c.json similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/web_server_files/3dPublicConfigs/x36ola2i6ye-ve7tisl74c.json rename to PSCADA/SG管理机模版/data/web_server_files/3dPublicConfigs/x36ola2i6ye-ve7tisl74c.json diff --git a/PSCADA/SG-A通讯管理模版/data/web_server_files/3dPublicConfigs/xvicq_i6ltyfuuzs80jhb6.json b/PSCADA/SG管理机模版/data/web_server_files/3dPublicConfigs/xvicq_i6ltyfuuzs80jhb6.json similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/web_server_files/3dPublicConfigs/xvicq_i6ltyfuuzs80jhb6.json rename to PSCADA/SG管理机模版/data/web_server_files/3dPublicConfigs/xvicq_i6ltyfuuzs80jhb6.json diff --git a/PSCADA/SG-A通讯管理模版/data/web_server_files/3dPublicConfigs/yc5_ue_2om-tp_h-xr7qf5.json b/PSCADA/SG管理机模版/data/web_server_files/3dPublicConfigs/yc5_ue_2om-tp_h-xr7qf5.json similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/web_server_files/3dPublicConfigs/yc5_ue_2om-tp_h-xr7qf5.json rename to PSCADA/SG管理机模版/data/web_server_files/3dPublicConfigs/yc5_ue_2om-tp_h-xr7qf5.json diff --git a/PSCADA/SG-A通讯管理模版/data/web_server_files/3dPublicConfigs/yupe96zsizpzfii7k-0nfr.json b/PSCADA/SG管理机模版/data/web_server_files/3dPublicConfigs/yupe96zsizpzfii7k-0nfr.json similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/web_server_files/3dPublicConfigs/yupe96zsizpzfii7k-0nfr.json rename to PSCADA/SG管理机模版/data/web_server_files/3dPublicConfigs/yupe96zsizpzfii7k-0nfr.json diff --git a/PSCADA/SG-A通讯管理模版/data/web_server_files/3dPublicConfigs/zc8lj2p90emu4yconf9_ic.json b/PSCADA/SG管理机模版/data/web_server_files/3dPublicConfigs/zc8lj2p90emu4yconf9_ic.json similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/web_server_files/3dPublicConfigs/zc8lj2p90emu4yconf9_ic.json rename to PSCADA/SG管理机模版/data/web_server_files/3dPublicConfigs/zc8lj2p90emu4yconf9_ic.json diff --git a/PSCADA/SG-A通讯管理模版/data/web_server_files/config/1/json/tnlycze_ruoop3s4h4oc9w.json b/PSCADA/SG管理机模版/data/web_server_files/config/1/json/tnlycze_ruoop3s4h4oc9w.json similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/web_server_files/config/1/json/tnlycze_ruoop3s4h4oc9w.json rename to PSCADA/SG管理机模版/data/web_server_files/config/1/json/tnlycze_ruoop3s4h4oc9w.json diff --git a/PSCADA/SG-A通讯管理模版/data/xm_alm_send/Xm_Alarm_Send_Config.xml b/PSCADA/SG管理机模版/data/xm_alm_send/Xm_Alarm_Send_Config.xml similarity index 100% rename from PSCADA/SG-A通讯管理模版/data/xm_alm_send/Xm_Alarm_Send_Config.xml rename to PSCADA/SG管理机模版/data/xm_alm_send/Xm_Alarm_Send_Config.xml diff --git a/PSCADA/SG管理机模版/database/accuml.xlsx b/PSCADA/SG管理机模版/database/accuml.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..b2573dec48944a48cf3d93e14c51cb0c5781844c GIT binary patch literal 11270 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 I1o`U!0E~HI+yDRo literal 0 HcmV?d00001 diff --git a/PSCADA/SG-A通讯管理模版/database/accuml_limit_info.xlsx b/PSCADA/SG管理机模版/database/accuml_limit_info.xlsx similarity index 60% rename from PSCADA/SG-A通讯管理模版/database/accuml_limit_info.xlsx rename to PSCADA/SG管理机模版/database/accuml_limit_info.xlsx index 14d5e6575817ae1930aaac4f82fdb52fe8ce24e8..edc796e68c118ab501fb4264cd9fa21ef252e8d5 100644 GIT binary patch delta 695 zcmdlbvr~pIz?+#xgn@~HgCQwKv1cP+Gb0CxQQ5d*_T-t2+Vw}clqPL^@IcMth0ghJ zH`y*Pd1AZeZ}nrP7ZsM%4;y|pvG{nz!|X@Ux*}cHUus*fl`q{hhyP|6SJDUF9S=56 zF`l$$_0vNpijOqg1eK#zCYsFix@p{Ry>!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? zofFDx=E!3PtDF3l+ZGYSRy^jMAl=}wn_R_XDi7j$WeNU#4h%sbCI$v>APoY*Km~%p z$>(^aAm+T`k+Mx>VPL4p(JwBk%tis4BTx?_J=I=T^S=w!X9g6N0-FFcDTr-y xKAX(scwQcearwMbjOmlRc;z76HM~+xB^;9{a)?d7$E(FCGntc5o9zkMF#w5Q3P1n= delta 691 zcmdlfvrC3Az?+#xgn@~HgJJRv)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEkoKRL1M;`Yhc@WPlOYrA&U=aE+F)(lgX%GO0 zDi8!sKFcEoG3PapluZ%~14BiQesM`pkOrF3YHu)~E7NhKB4nA$Rr(kyg0MtYlH~;_u diff --git a/PSCADA/SG管理机模版/database/accuml_map_to_fes.xlsx b/PSCADA/SG管理机模版/database/accuml_map_to_fes.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..d4a2dcab78b0143cbd54c2c321b1323499d6a1f4 GIT binary patch literal 6969 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 Q@dLlw072i_;~&uf0hGdF!vFvP literal 0 HcmV?d00001 diff --git a/PSCADA/SG管理机模版/database/accuml_temp_define.xlsx b/PSCADA/SG管理机模版/database/accuml_temp_define.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..6b2b26829dad125b2f8f4bbb8176233ef1292fb8 GIT binary patch literal 12575 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 L0D(U7VZZ$!W1l=8 literal 0 HcmV?d00001 diff --git a/PSCADA/ECMS电厂行业模版/database/acs_device_info.xlsx b/PSCADA/SG管理机模版/database/acs_device_info.xlsx similarity index 56% rename from PSCADA/ECMS电厂行业模版/database/acs_device_info.xlsx rename to PSCADA/SG管理机模版/database/acs_device_info.xlsx index 782d02bfd63104129a379858a4c839e31bdc7c4b..1872e9e8552c529c20a7c6abb2308c5517a2e447 100644 GIT binary patch delta 695 zcmdlbwNr{Oz?+#xgn@~HgCQkGv1cP+Gb0CxQQ5d*_T-t2+Vw}clqPL^@IcMth0ghJ zH`y*Pd1AZeZ}nrP7ZsM%4;y|pvG{nz!|X@Ux*}cHUus*fl`q{hhyP|6SJDUF9S=56 zF`l$$_0vNpijOqg1eK#zCYsFix@p{Ry>!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? zogK<*APoY*Km~%p z$>+GGAm+T`mais4BTx?_J=I=T^S=w!X9g6N0-FFcDTr-y yKAX(scpe^zarrz_jOmlRc;q15H9S&GMI4j+Im9O4+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEk>`+z%M*$O9-Q+J^wumUU`YhsWzW@LL diff --git a/PSCADA/SG-A通讯管理模版/database/acs_device_node_map.xlsx b/PSCADA/SG管理机模版/database/acs_device_node_map.xlsx similarity index 56% rename from PSCADA/SG-A通讯管理模版/database/acs_device_node_map.xlsx rename to PSCADA/SG管理机模版/database/acs_device_node_map.xlsx index 3bac8c5b15ea26805c2319e7cc87b6c6cc5be52d..46d82d455c021a5e1631dd22ab9f0fc8a2529a92 100644 GIT binary patch delta 681 zcmaDM`CO7Oz?+#xgn@~HgCQkGv1cP+Gb0CxQQ5d*_T-t2+Vw}clqPL^@IcMth0ghJ zH`y*Pd1AZeZ}nrP7ZsM%4;y|pvG{nz!|X@Ux*}cHUus*fl`q{hhyP|6SJDUF9S=56 zF`l$$_0vNpijOqg1eK#zCYsFix@p{Ry>!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? zoeRop;gDtmtDC%-%N7yCFSyJ(LAt?VH(7(*6rv`PTZ%Doat*f>ggc8{$|jM8fuSNt zzqq6_C$$(9oB`g9ObiT&q*HrY&HpYi*v){VQa~C6fH46CL6bjlYeGzt<&k1cpKQS+ m2jNBmxuug!c^sK!IVW3jN{Iz{v$BD-Z~~z{(4a|NARYj>Qw56v delta 712 zcmaDZ`9hK}z?+#xgn@~HgJJp%)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEkTu@dshcpvd-Q-1FwumTx&SlOC(hUy0$?Dvu5H$(hQj9^9tGT73K$5CuE)S0Z zLv=GN0|PHGWI+JP1%f0N28N0p{o<0!oYZ1aAP0CeGBGe95>)MFHUGOng=RoeDXrb4G?Qz?+#xgn@~HgCQkGv1cP+Gb0CxQQ5d*_T-t2+Vw}clqPL^@IcMth0ghJ zH`y*Pd1AZeZ}nrP7ZsM%4;y|pvG{nz!|X@Ux*}cHUus*fl`q{hhyP|6SJDUF9S=56 zF`l$$_0vNpijOqg1eK#zCYsFix@p{Ry>!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? zofFDx=4fOFtDDThV~dDkUmkN#kZy3;P449}l?U;>vIKuV2Zo>z69WS`kOl!@paMbQ zjb5@2gz?+#xgn@~HgJI50)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEkoKRL1M-DGwiTSOH5@R)Ogbb|wLau1KGJc#F&CHV6>FbI8^7#O&LGzb7g z6$pYRKj4vqnDdWEiZN-jB(IDDNK5TyHUGOn1!h1kQedSpEx~M)^Vnnr0=yZ4Qi!BB pxsg|jF=O%^UO9+y`*@|8N;xJ^;1HYqfme%BcCs{|Hro%d?Ev&u5{>`> diff --git a/PSCADA/ECMS电厂行业模版/database/alarm_color.xlsx b/PSCADA/SG管理机模版/database/alarm_color.xlsx similarity index 55% rename from PSCADA/ECMS电厂行业模版/database/alarm_color.xlsx rename to PSCADA/SG管理机模版/database/alarm_color.xlsx index ca85dd9a700c07cd1acf53546905de6de1ca3262..c0bd9db5f7cd0b7dfdc27e051bea2d5f4e328c2e 100644 GIT binary patch delta 675 zcmX>rc}9{iz?+#xgn@~HgCQkGv1cP+Gb0CxQQ5d*_T-t2+Vw}clqPL^@IcMth0ghJ zH`y*Pd1AZeZ}nrP7ZsM%4;y|pvG{nz!|X@Ux*}cHUus*fl`q{hhyP|6SJDUF9S=56 zF`l$$_0vNpijOqg1eK#zCYsFix@p{Ry>!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? zodwFO<6vU~tDD@xWs8X6vs~t!Al=}wo6O5?Di7j$WeNU#4h%sbCI$v>APoY*Km~%p z$%))j5OeCer5F<@&*GMWaCdP_F$J+r&S#U+4)A6KYD6Te1}06{+d$1>Kr{Hk#=wkA fpDfEG2hnfOBgL3MIf}=TQGD_o9&NUAE|5w95McoC delta 676 zcmX>jc~+7yz?+#xgn@~HgJI50)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEkEKpW02OASu-Q;#ITSOF};WFn0=>`YhWFBr)c@WPlOYrA&U=aE+F)(lgX%GO0 zDi8!sPT-b;m{Z3s#h5gCCbx_NNK5TyHUGOn1!h1kQedSpEx~M)^Vnnr0=yZ4Qi!BB jnUP0|F=Mg}j~v7}J0Q1UawLx!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? zoeRop;W)twRyR37$QBX9Q-#bqLAt?VH~FfNDMSsQuvC2@GXq0>QEE=Hz8;7S@MdIU zU_hi4)iRfd$ABTdnU#To7Z}+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEkTu@ds#|ciby2<`RwumU6B4o}9(hUy0$ybC-A!>MqrL2OO85rV=Qge#+^+05R zHzN}R10t!YmbpAU1`O)WtPBjiz~BY}AQuRdCMOEZK+I_rmSPHKo1DicGkK>lPYlSW zugQc$k8v)FUn5J&(8+M8M>txdNy#E0W~!Ou?ULhvdM}f Qj*N1XlSQ=I9E3np0I;MTFaQ7m diff --git a/PSCADA/SG-A通讯管理模版/database/alarm_level_define.xlsx b/PSCADA/SG管理机模版/database/alarm_level_define.xlsx similarity index 59% rename from PSCADA/SG-A通讯管理模版/database/alarm_level_define.xlsx rename to PSCADA/SG管理机模版/database/alarm_level_define.xlsx index c3adfa039194fff0c97fed65f0bead001b1ae228..ace35b729039177ab7f894fd45e884a15451e145 100644 GIT binary patch delta 701 zcmZ24vrdLDz?+#xgn@~HgCQkGv1cP+Gb0CxQQ5d*_T-t2+Vw}clqPL^@IcMth0ghJ zH`y*Pd1AZeZ}nrP7ZsM%4;y|pvG{nz!|X@Ux*}cHUus*fl`q{hhyP|6SJDUF9S=56 zF`l$$_0vNpijOqg1eK#zCYsFix@p{Ry>!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? zofFDx=167+tDF3a+ZGYS`aI^GAl=}wo1D*MY763dWeNU#4h%sbCI$v>APoY*Km~$8 zW(J1%qSTyXeLWBv;LQkBf=E7-AM!{sCQkmtBLlHZhF6Lyh;4E{n~XNP(w&c91wH_p u7z;F*A7nHTKa1b`k&wRtl2< delta 702 zcmZ1{vtEWTz?+#xgn@~HgJJp%)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEkoKRL1M=~>5-Q<_twumU!<1yz1=>`Yhw(AsZ$_XJMEaThfJcfkY4UF#8Hiodyi!cTY?JfYWVF$h?tJtr x@Bz@oSfIiDAftf*Vn@d0I$k-5{sln&r5uwdaEML5#H+<9JNYlKHrp+*lK?2v7uEm( diff --git a/PSCADA/SG-A通讯管理模版/database/alarm_level_sound_def.xlsx b/PSCADA/SG管理机模版/database/alarm_level_sound_def.xlsx similarity index 57% rename from PSCADA/SG-A通讯管理模版/database/alarm_level_sound_def.xlsx rename to PSCADA/SG管理机模版/database/alarm_level_sound_def.xlsx index c420539ecc4144a93fa4ac03dede9f96911022d8..941d416be0b01eabda00f716ad605336ec8f914c 100644 GIT binary patch delta 696 zcmaDS^;U{6z?+#xgn@~HgCQkGv1cP+Gb0CxQQ5d*_T-t2+Vw}clqPL^@IcMth0ghJ zH`y*Pd1AZeZ}nrP7ZsM%4;y|pvG{nz!|X@Ux*}cHUus*fl`q{hhyP|6SJDUF9S=56 zF`l$$_0vNpijOqg1eK#zCYsFix@p{Ry>!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? zog2z(+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEk+)!2v#{wp>y2%>cwumUsO8=>`Yh!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? z9VXkxknv?68!lb7=k`b3=G^r8U%oW3Iu_Z z&v8pZ%z48tWt+&tz)+E+UtCg|lUfW4;{b0)pdLhes=ch{e;26F3@9oEHUVZ*5ZmN@ wHkrxsJUkHN@_D2f(Px# delta 703 zcmdlfwM&XGz?+#xgn@~HgJH@H)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEkFxgg)Y$mX}$zQl^5m9W(ZO#eO4Gz4?mE5NCAf8v2;Lqp4AoO8kVBiMQAOH+i zAPAa#mRky9&TDQdnd?PWFpyFh(rKv5~M2{4m_ zCp+?JLQKlzkz&l4+{q&c;jRX9D<&V~ab!~9oNUc0B^Kb#$_CQQ3551QgPwAMcmU9o B7AF7z diff --git a/PSCADA/SG-A通讯管理模版/database/alarm_manner_define.xlsx b/PSCADA/SG管理机模版/database/alarm_manner_define.xlsx similarity index 64% rename from PSCADA/SG-A通讯管理模版/database/alarm_manner_define.xlsx rename to PSCADA/SG管理机模版/database/alarm_manner_define.xlsx index f2271ce735c54b82cb420c21a736dded4a8b61e1..bfccb3e8a4ba88282c0ba2c76e3f8f900e52e537 100644 GIT binary patch delta 743 zcmaDLe_x(2z?+#xgn@~HgCQkGv1cP+Gb0CxQQ5d*_T-t2+Vw}clqPL^@IcMth0ghJ zH`y*Pd1AZeZ}nrP7ZsM%4;y|pvG{nz!|X@Ux*}cHUus*fl`q{hhyP|6SJDUF9S=56 zF`l$$_0vNpijOqg1eK#zCYsFix@p{Ry>!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? zofFDx<`7{8tD8KV*A@}O4|vTvLAt?VH(7ztGy=r)$`btf92kN=ObiU%KpF&qfeHkH z%nS_iMX5Q(`g$NTz?%`M1d)7H%Um8F1FGE2%D})2)&SF(IC(9f48#Fv`J|YF*e2(* z$!MeN?~_~=`T(de4rm5HivIM;2K;ggAje(k*}z=}lxqZH5fn8g9Fr$+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEkoKRL1hX^ZJ-Q-!kwumUc&uh*J(hUy0$?|-rwjiEYmf+9lz##NtVqo9~(jWi~ zRUimrW?+afO3f+O*8`CO-i$yci1aggBA*mv(&ROKG7!7Y@JTTRvrW!plhH<3+9$ax z^a0SsIH1A&Aftf*Vn@bgeSSHJ{y=^yrc#c{6F9^sH}h*T%1&O#ug%uY3sMUJvnmyF diff --git a/PSCADA/SG-A通讯管理模版/database/alarm_sms_config.xlsx b/PSCADA/SG管理机模版/database/alarm_sms_config.xlsx similarity index 56% rename from PSCADA/SG-A通讯管理模版/database/alarm_sms_config.xlsx rename to PSCADA/SG管理机模版/database/alarm_sms_config.xlsx index 649a531042007002a46f745fd2803af3aebe2e00..6b71ab1209edc918f04e93a06ed800c1b17d6b8c 100644 GIT binary patch delta 771 zcmcaAbw!FVz?+#xgn@~HgCQwKv1cP+Gb0CxQQ5d*_T-t2+Vw}clqPL^@IcMth0ghJ zH`y*Pd1AZeZ}nrP7ZsM%4;y|pvG{nz!|X@Ux*}cHUus*fl`q{hhyP|6SJDUF9S=56 zF`l$$_0vNpijOqg1eK#zCYsFix@p{Ry>!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? zode2h;^<-mtD7vqZHtKEP;PThkZy3;O`gha3Q=>8TdF>gnSmj`C^e^8Uk^kEcr!9F zFd$NjYMIN!W5AH!%*w#P3k+=#0CIsKk%fVwB1gZtq%tS97!>g6T5B(>`QHU9Gy@ta z1=a%78pH+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEk98gvxM;8-V-DG}lTSOFxaGP_2bb|wL@)T}Uh?=w9QdU9C3=Hu_sX4{^dLS~u zn~{lu0g+Tx%Um8F0|xbGRt5%MU~q!~kP8G!lNEVnAm%voNHGPoP0nMJnOw=k69clz zNH4YSK2TLOP%%GPJxpH)I|D;Sj(&N5QFc;(el{r1&@H{tvw^z|sHqW%MNl-COn%7Y Q$S5;enOB>Qfg2!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? zode2h;+Vq(RySFR+ZGYS>D=a=Al=}wo4lOc6r$z&1RZF6{}7}F<6419urvX(JGeplB)Pm^^_)Y%({m7NhiJGhS^rL2i&d E08)4gW&i*H delta 712 zcmaDR^<0WCz?+#xgn@~HgJH@H)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEk98gvx#~dcGy2*;%wumTB<2L66=>`Yhb5e^zfgIq?$i%>aNKmzx)%@=Q6`BD>rNCNX zT7xI&@n}M9o6RG|m@#=9kDLO?whKKQxXXY_8-Z8^MN0|C!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? zogK<*APoY*Km~%p z$p^TlAm-fTmSRkt{F7To0i>n&vYP*0paL_X7Ade&n3f>6$@y$D0s-EPKq*8@o1Dla n#h5<1hDQ!!+&msBrXr5X{TyPGFYstFN=^RFqs?}W3uF`kE-3}U delta 673 zcmZ22wML3Bz?+#xgn@~HgJH@H)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEk>`+z%M-mfQ-Q;InwumU!<~HX9=>`YhB+x%wArq6fs6nE8gUaQ diff --git a/PSCADA/SG-A通讯管理模版/database/alarm_status_define.xlsx b/PSCADA/SG管理机模版/database/alarm_status_define.xlsx similarity index 82% rename from PSCADA/SG-A通讯管理模版/database/alarm_status_define.xlsx rename to PSCADA/SG管理机模版/database/alarm_status_define.xlsx index 50eb362e0d41893d1428d2f26f024e102a1f1ed5..1c1a0f2271ff8a128c5a5c359ef9424b6c6a21c3 100644 GIT binary patch delta 696 zcmX@_c+Qb8z?+#xgn@~HgCQkGv1cP+Gb0CxQQ5d*_T-t2+Vw}clqPL^@IcMth0ghJ zH`y*Pd1AZeZ}nrP7ZsM%4;y|pvG{nz!|X@Ux*}cHUus*fl`q{hhyP|6SJDUF9S=56 zF`l$$_0vNpijOqg1eK#zCYsFix@p{Ry>!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? zoeRop;b0O2tDD>APoY*Km~$8 zW(J1%qSTyXeLWBv;LQkBf=E7-8|9@K6DQA+mx0)|M_!64h;4E{n~XNP(qyTNHy;8` pi~}0X4>lWSNBU%W1v!X*M+GUy(#bIjj*POC=P78jRmy=>0s!7Y2Z{gy delta 702 zcmX@-c;1mOz?+#xgn@~HgJJp%)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEkTu@ds2a_0B-Q-R=TSOF}lQZW8=>`YhWIlOQTM*AHOYrA&U=aE+F)(lgX%GO0 zDi8!QGcd##rREgt>w(AsZ$_XJMEaTBATPz3GGA7F@$U*cwC`d7taZH}bAvU>4L5opt@>~UNwkkQ0asV#&78w8l diff --git a/PSCADA/SG-A通讯管理模版/database/alarm_status_dig_set.xlsx b/PSCADA/SG管理机模版/database/alarm_status_dig_set.xlsx similarity index 58% rename from PSCADA/SG-A通讯管理模版/database/alarm_status_dig_set.xlsx rename to PSCADA/SG管理机模版/database/alarm_status_dig_set.xlsx index 1af0e97d9ba4025b7678ba5e47459826e22d8064..a0d4dda0a28ae3852b24a208aa723e81d1ccc94a 100644 GIT binary patch delta 695 zcmbOwJyV)5z?+#xgn@~HgCQkGv1cP+Gb0CxQQ5d*_T-t2+Vw}clqPL^@IcMth0ghJ zH`y*Pd1AZeZ}nrP7ZsM%4;y|pvG{nz!|X@Ux*}cHUus*fl`q{hhyP|6SJDUF9S=56 zF`l$$_0vNpijOqg1eK#zCYsFix@p{Ry>!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? zog2z(3wifiwsJ0~H7Y zC+qP@LCo>tk+Mx>VPL4p(JwBk%tis4BTx?_J=I=T^S=w!X9g6N0-FFcDTr-y xKAX(s{X9Gn+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEk+)!2v#~CKDy2&Bjwn$OTZO#eO4Gz4?H@QvaK|HT4!Jp58LFmK8z`zZpK>!%4 zKoB%pmq!X>jyI2#O%e+OLq(2$aY6YOO@MdNaVPIn5U`UBk?AgfI%*X*^R5osyJ$WXhcKs19rAgZ!JW#WEp>zJ* zO}5KRp4e{rTm4w+MTO<`!-ii?EIuCbF#8d-u1J^lm)e$V;lCNimGnV($AgVi zj3=#G{q&HD;v>yALFH(bi6-;BZW{MnFJ1Ankl~c@x6V7xG7Xn|=1MKBbZB37p=vQ( zN=Bn&ZO+XfS5Ka@P_SFpSHJscnSJ=Vdur~Jd9R0W>2Z4Qy6>9X-@84(-mbcb>h|z| zM>&r$FfiCMGB5}L>6HBBfTH|@V*SK|0=3p$ zz6DfIopEMc;~Sq7J*B_DEt?j0UM_v#{QjTE*FD!PXRlu|hl9QJy7W~>wl2={=BnF! zbmT&hKQjE~!_jQTw0i6Ay&Kn0c;xX7eBMS z_&eN}DeQmi@+aTq{_v&$O0CbY`;nUZH9!A5FRGt6CouCcvVbCNa{LwrOwnfA+505z~NH;j_Cj0Q1%7b`bS%N>G14Gb6GLvufYO`$v+YSIE-2@r{ delta 673 zcmeB{>5<_J@MdNaVPIn5V34&-oO5-$S!57$dL!u1qYLL z#Z_+3`0BM?@sVa5r*gE)M3Z@0mInUTOIOGiu$&V9)_KQSrtxym-dPK39r{=4bgh+| zxR9Cc>&Dc};p)9*4mCcq_2u1n>kQA`OLO1Mdp&$h&!Q8j_pI6SYj@_?+o|_Z-G1Qe zr&C867#M6B85jhBbV`15Kv8}{v3_DffnG&!&fE#M+02GKZQmXK9e!y0{57v4%Y5gB zCGRGr>8@Mr&0}{mBCG1>_fn}}hUru0O=sV0w7b&lY`r9x`yof$EpxLNY+E~yJMMiq zKV16i1`8fN!9xr54rHZI=l&d|;XIM!P6+F#1%67Et4)6k`}E!J+Bj+AsV7VNp03E0 zS=_GvNnUuti+!)JNu@FJ2!#C%Uy*n0ZRESDY@e?G{;^^IlUJLc89o=;JNee7Wk2lH z=PB>4ou-lSrM|*fPCoDbhS=NN|2~`je@)N7*SY%{P(8glo|%V{1r%eO^I6_PSqW@{ zP*y2BCzRF1;lK=5H~AR1Eh37!dCWOMy1{`r*_+2y9>nv?68!lb7=%7d3=G^r8U%o$ z3Isuu=krKG%-PE$#h5ht29JyaNK5TyHUGOn1!h1kQedSpEx~M)^Vno28}RZ#^f~ZK lF=kAT=9PnRYk8%ZN;xJ^;1HXz-ecJeJ=ZMN-TTLB>Q5pVzi diff --git a/PSCADA/SG管理机模版/database/analog.xlsx b/PSCADA/SG管理机模版/database/analog.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..f182d73dc9f21cfe036e1c2c8428d256cb5076ce GIT binary patch literal 29501 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%0Dc59RjIqlJM~C^ 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�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 literal 0 HcmV?d00001 diff --git a/PSCADA/ECMS电厂行业模版/database/analog_control.xlsx b/PSCADA/SG管理机模版/database/analog_control.xlsx similarity index 58% rename from PSCADA/ECMS电厂行业模版/database/analog_control.xlsx rename to PSCADA/SG管理机模版/database/analog_control.xlsx index 2290cf941d22bc717c4505f884a836025c9363be..47c07718c561bfe1c2441f905fe8d305e0ef83ef 100644 GIT binary patch delta 734 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 literal 0 HcmV?d00001 diff --git a/PSCADA/SG-A通讯管理模版/database/apc_analog.xlsx b/PSCADA/SG管理机模版/database/apc_analog.xlsx similarity index 57% rename from PSCADA/SG-A通讯管理模版/database/apc_analog.xlsx rename to PSCADA/SG管理机模版/database/apc_analog.xlsx index adcc5879e76e5177b5054c3178d04ed8478a8653..34a68afb9ab2be563157184f421e6df08ed88e78 100644 GIT binary patch delta 696 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 QM@I3<%)Huc54b>50C1ulaR2}S diff --git a/PSCADA/SG-A通讯管理模版/database/apc_curve_day_index.xlsx b/PSCADA/SG管理机模版/database/apc_curve_day_index.xlsx similarity index 59% rename from PSCADA/SG-A通讯管理模版/database/apc_curve_day_index.xlsx rename to PSCADA/SG管理机模版/database/apc_curve_day_index.xlsx index 049248f8ae5fc2c886ec848408def85b45658fc7..16f3f581c966044a5bac932b6fa6873076f050c6 100644 GIT binary patch delta 702 zcmeB_?vUmS@MdNaVPIn5U`UQp?AgfI%*X*^R5osyJ$WXhcKs19rAgZ!JW#WEp>zJ* zO}5KRp4e{rTm4w+MTO<`!-ii?EIuCbF#8d-u1J^lm)e$V;lCNimGnV($AgVi zj3=#G{q&HD;v>yALFH(bi6-;BZW{MnFJ1Ankl~c@x6V7xG7Xn|=1MKBbZB37p=vQ( zN=Bn&ZO+XfS5Ka@P_SFpSHJscnSJ=Vdur~Jd9R0W>2Z4Qy6>9X-@84(-mbcb>h|z| zM>&r$FfiCMGB5}L>6HBBfTH|@V*SK|0=3p$ zz6DfIopEMc;~Sq7J*B_DEt?j0UM_v#{QjTE*FD!PXRlu|hl9QJy7W~>wl2={=BnF! zbmT&hKQjE~!_jQTw0i6Ay&Kn0c;xX7eBMS z_&eN}DeQmi@+aTq{_v&$O0CbY`;nUZH9!A5FRGt6CouCcvVbCNa{vIKuV2Zo>z69WS`kOl!@paMbQ zWLX|5h&k3gQZ|V!3=9=H`o$%cIjO~?v&;W@MdNaVPIn5V3;yPHD)7UGb0Cx@$yUSk;yX|wd=3&1*!NRJm_0+A#&c^ z&AiJzPgZCA{(j8$!p9=L_QkU+OCEJj%=xhO&XZP=7q>4&-oO5-$S!57$dL!u1qYLL z#Z_+3`0BM?@sVa5r*gE)M3Z@0mInUTOIOGiu$&V9)_KQSrtxym-dPK39r{=4bgh+| zxR9Cc>&Dc};p)9*4mCcq_2u1n>kQA`OLO1Mdp&$h&!Q8j_pI6SYj@_?+o|_Z-G1Qe zr&C867#M6B85jhBbV`15Kv8}{v3_DffnG&!&fE#M+02GKZQmXK9e!y0{57v4%Y5gB zCGRGr>8@Mr&0}{mBCG1>_fn}}hUru0O=sV0w7b&lY`r9x`yof$EpxLNY+E~yJMMiq zKV16i1`8fN!9xr54rHZI=l&d|;XIM!P6+F#1%67Et4)6k`}E!J+Bj+AsV7VNp03E0 zS=_GvNnUuti+!)JNu@FJ2!#C%Uy*n0ZRESDY@e?G{;^^IlUJLc89o=;JNee7Wk2lH z=PB>4ou-lSrM|*fPCoDbhS=NN|2~`je@)N7*SY%{P(8glo|%V{1r%eO^I6_PSqW@{ zP*y2BHCwHOqh0p5&E3=D|0Q+rv>|1L1x&48j(KpF&qQ2_+OlPB!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? zoeRop;qYeytDAhC%N7yCGTi2zAl=}wn;gS!Di7j$WeNU#4h%sbCI$v>APoY*Km~%p z$s4$(Am*IomSRkt{E}Nn0i>n&vYP*0paL_X7Ade&n3f>6$@y$D0s-EPKq*8@n;gg^ h#h5-hher-#Tpy5II(a3JBctr(*F4&6$GAYI004|T1EBx_ delta 673 zcmbO&HAjjsz?+#xgn@~HgJI@O)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEkTu@dshd&co-Q;UrwumT}<~HX9=>`Yh!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? zogd2T+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEk{7_a02QM>N-Q=0vwumUc$8F9D(hUy0$#OiVwjiEYmf+9lz##NtVqo9~(jWi~ zRUimrW?+afO3f+O*8`CO-i$yci1agg0*@49(&W`VG7!5?^GGoTvrW!plhH<3YP==j r?=zr@sX&AI!Dhqk$e66hD+kdZz$?XAJvp1#kx_Z_T3&6oF0g9=70VQM diff --git a/PSCADA/SG-A通讯管理模版/database/apc_curve_day_value.xlsx b/PSCADA/SG管理机模版/database/apc_curve_day_value.xlsx similarity index 60% rename from PSCADA/SG-A通讯管理模版/database/apc_curve_day_value.xlsx rename to PSCADA/SG管理机模版/database/apc_curve_day_value.xlsx index c935be6e0edf7e1290b0ea65027ab57e4354a4c9..2a005ca7c6e58ff203910cfde2edfd7b2dc1dfe9 100644 GIT binary patch delta 711 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 Qj*QZii+Hu!{JB9=02*K$>i_@% diff --git a/PSCADA/SG-A通讯管理模版/database/apc_digital.xlsx b/PSCADA/SG管理机模版/database/apc_digital.xlsx similarity index 54% rename from PSCADA/SG-A通讯管理模版/database/apc_digital.xlsx rename to PSCADA/SG管理机模版/database/apc_digital.xlsx index 6af06fb0c8101455861591a247dd004a37853f03..b7a726a152a1edbf3bda8786472c7e6e5fba2e57 100644 GIT binary patch delta 696 zcmZ1{wN{ERz?+#xgn@~HgCRLav1cP+Gb0CxQQ5d*_T-t2+Vw}clqPL^@IcMth0ghJ zH`y*Pd1AZeZ}nrP7ZsM%4;y|pvG{nz!|X@Ux*}cHUus*fl`q{hhyP|6SJDUF9S=56 zF`l$$_0vNpijOqg1eK#zCYsFix@p{Ry>!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? zofXQe=SX7$tDF3i%N7yCdfeumAl=}wo1DjOY763dWeNU#4h%sbCI$v>APoY*Km~$8 zW(J1%qSTyXeLWBv;LQkBf=E7-A8<=CCQkm%Ed#Mjnn#K$h;4E{n~XNP(zJW_$#;Mz ph5-%c2b&GEBYkomj~qn*0v;*Gg2}si92q4h|K-tUyTJug2>@@m2onGR delta 676 zcmZ20wN8pJz?+#xgn@~HgJH@H)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEktWZ`RM;a4Y-Q*WswumU!O8=>`Yhp-o@j{C^`8Lk2c#)E|5w97Jm`1 diff --git a/PSCADA/SG-A通讯管理模版/database/asset_info.xlsx b/PSCADA/SG管理机模版/database/asset_info.xlsx similarity index 56% rename from PSCADA/SG-A通讯管理模版/database/asset_info.xlsx rename to PSCADA/SG管理机模版/database/asset_info.xlsx index 2ac0e6b86ed3d4c6af1d99d4d8afa156d766d617..a54d2392fe1d130512e712c66a4a7649b87f01ec 100644 GIT binary patch delta 696 zcmcaFbx(>fz?+#xgn@~HgCRLav1cP+Gb0CxQQ5d*_T-t2+Vw}clqPL^@IcMth0ghJ zH`y*Pd1AZeZ}nrP7ZsM%4;y|pvG{nz!|X@Ux*}cHUus*fl`q{hhyP|6SJDUF9S=56 zF`l$$_0vNpijOqg1eK#zCYsFix@p{Ry>!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? zof*oi<(SC?RySFS+ZGYS@!aN|Al=}wn>?S})E30^$`btf92kN=ObiU%KpF&qfeHkH z%nS_iMX5Q(`g$NTz?%`M1d)6u3-U-YCQjDjk%8Fd!z0BM#5OsfO-37C>G#J@xwn8O nh5`-d2b&GEBYpCE9yy5qi$LS@CcoivWE7jM$E(f833d$t+}s9W delta 697 zcmca7bzh1vz?+#xgn@~HgJH@H)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEk%urSh$4n-$y2+B<2L66=>`Yh!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? zofXQe=SX1!tDF3s%N7yCI^5=*Al=}wo1DXKDi7j$WeNU#4h%sbCI$v>APoY*Km~%p z$p^TlAm-fTmSRkt{F7To0i>n&vYP*0paL_X7Ade&n3f>6$@y$D0s-EPKq*8@o1Dla h#h5<1hDQ!!+&mz+VDe5LM@EUszj?ITu5p1(0RSK`1cCqn delta 668 zcmZ22wML3Bz?+#xgn@~HgJH@H)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEktWZ`RM+y^I-Q;InwumU!<~HX9=>`YhhYi1)SbRLCnFFLe*ln zl#E8l+MJs|uAV$)pB6&zju3nyAPoY*Km~$8 zW(J1%qSTyXeLWBv;LQkBf=E89WiAho0ab2hWnkb1Yk+A?ob1aZ193nuj}%i7+vI#U z8Etg^mo{{rc?#5*4m5)wMSuF_3p{f2Aje(k*}z=}lxqZH5fn9*lX-a^85Jk{^J=qc Hf!z%N#o7x? delta 697 zcmew_)ga9m;LXe;!obA9!7y{CYRpEyW=0MWsuBa>$`YS&-k3sUhtc+j`tLgc)+ zn|YUco~+LJ{r#Bhg^xvg?TcqumOSd5nDb%lohPj#FK%Cmynp>ukzLAEks}YR3l1jh zimTk5@zra);v>yAPUUEoi6-;1EDijvm#&a4U^ylHt@DnvOylLAy|Wh7I`ps7=~^o_ zaUnC?*Nv%{!_|As9BO=I>&v_E))}6=m*&2i_j>r2o<%24?^(0u*Y3=(w^Q$-y8Xb_ zPp6JDFfiCMGB5}L>6HBBfTH|@V*SK|0=w(AsZ$_XJMEaR*$Rov=G}(to24YtZj}%id+vGep8Etf>mo{{r qc?vW!9cVB=*ld^`8I#ZR$U*df1R7U0nTOYrQE9RtuQr=D*fjw59~8j= diff --git a/PSCADA/ECMS电厂行业模版/database/ats_casco_planned_train_data.xlsx b/PSCADA/SG管理机模版/database/ats_casco_planned_train_data.xlsx similarity index 58% rename from PSCADA/ECMS电厂行业模版/database/ats_casco_planned_train_data.xlsx rename to PSCADA/SG管理机模版/database/ats_casco_planned_train_data.xlsx index 8b9117e93e5e46c985eda07d589a43be0c61b69f..a40978b246bc1f63f83018d1d86b50e1cc3ba0ec 100644 GIT binary patch delta 738 zcmew?^+}2^z?+#xgn@~HgCRLav1cP+Gb0CxQQ5d*_T-t2+Vw}clqPL^@IcMth0ghJ zH`y*Pd1AZeZ}nrP7ZsM%4;y|pvG{nz!|X@Ux*}cHUus*fl`q{hhyP|6SJDUF9S=56 zF`l$$_0vNpijOqg1eK#zCYsFix@p{Ry>!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? zoe#?D;8?^2RySFX+ZGYS#oXqcAl=}wo4lFZ6r$!0x0F>NGXq0>QEE=Hz8;7S@MdIU zU_hi4)iRfd$ABTdnU#To7Z}+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEkd{9<9$08=My2-lSwumS$;x^|5=>`YhKA8Rtb_Rxu9R2eAqU@yn{A^I%p=-X-vw^z|sHqW%MNl+XP5#g0$fz{g Mkyo2djvFKe0Q?0UIRF3v diff --git a/PSCADA/SG-A通讯管理模版/database/ats_casco_practical_train_data.xlsx b/PSCADA/SG管理机模版/database/ats_casco_practical_train_data.xlsx similarity index 57% rename from PSCADA/SG-A通讯管理模版/database/ats_casco_practical_train_data.xlsx rename to PSCADA/SG管理机模版/database/ats_casco_practical_train_data.xlsx index ebbef5f1c6f6791e53d6d446ffba40f53cb44de7..80962a4d8d04a54e2e278eede3641472d75d94e0 100644 GIT binary patch delta 717 zcmZ1|y+E2Tz?+#xgn@~HgCRLav1cP+Gb0CxQQ5d*_T-t2+Vw}clqPL^@IcMth0ghJ zH`y*Pd1AZeZ}nrP7ZsM%4;y|pvG{nz!|X@Ux*}cHUus*fl`q{hhyP|6SJDUF9S=56 zF`l$$_0vNpijOqg1eK#zCYsFix@p{Ry>!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? zogd2TQEE=Hz8;7S@MdIU zU_hi4)iRfd$ABTdnU#To7Z}+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEk{7_a0$9X2Oy2;VpwumTRz-`V6(hUy0$q%?qBS1W_EWw}8fkEiQ#K6D}q(J}} zsz4CL%)k&|l$ukluLmLnycvN?5a~y?%;n)Rpvujx3=F(r4KR&KlXH1wAP(r|kzxvF zo1Dicqm8b=>3L4&GoZdqpc(uq`ZFef;E|IDIqpKw2JSMTTq6*Rps1;ytjp`js608J KSDVcT>}~*LJ{bA{ diff --git a/PSCADA/SG-A通讯管理模版/database/ats_fes_location_info.xlsx b/PSCADA/SG管理机模版/database/ats_fes_location_info.xlsx similarity index 55% rename from PSCADA/SG-A通讯管理模版/database/ats_fes_location_info.xlsx rename to PSCADA/SG管理机模版/database/ats_fes_location_info.xlsx index f00f342a8e6affe980063c5e025d27b46a6329ce..4af852c86d18857ff383f33ecc5d88c537edaa90 100644 GIT binary patch delta 675 zcmca3d0Ub%z?+#xgn@~HgCRLav1cP+Gb0CxQQ5d*_T-t2+Vw}clqPL^@IcMth0ghJ zH`y*Pd1AZeZ}nrP7ZsM%4;y|pvG{nz!|X@Ux*}cHUus*fl`q{hhyP|6SJDUF9S=56 zF`l$$_0vNpijOqg1eK#zCYsFix@p{Ry>!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? zoeRop;oxTitD8KX%N7yCceuS+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEkTu@ds2R{>7-Q;OpwumUc&1KFB(hUy0$?mb5H0`! diff --git a/PSCADA/ECMS电厂行业模版/database/ats_fes_platform_info.xlsx b/PSCADA/SG管理机模版/database/ats_fes_platform_info.xlsx similarity index 56% rename from PSCADA/ECMS电厂行业模版/database/ats_fes_platform_info.xlsx rename to PSCADA/SG管理机模版/database/ats_fes_platform_info.xlsx index 58cc0d9291291702a623cb550ceeab36c3e0cdb1..43481c8b3129c54e7c644013faff2ad0fddc4973 100644 GIT binary patch delta 680 zcmaDW`9_j2z?+#xgn@~HgCRLav1cP+Gb0CxQQ5d*_T-t2+Vw}clqPL^@IcMth0ghJ zH`y*Pd1AZeZ}nrP7ZsM%4;y|pvG{nz!|X@Ux*}cHUus*fl`q{hhyP|6SJDUF9S=56 zF`l$$_0vNpijOqg1eK#zCYsFix@p{Ry>!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? zofFDx=1^n;tDC%n%N7yCZ@J7lLAt?VH(8h4R360h$`btf92kN=ObiU%KpF&qfeHkH zlN-6EAm+^HmSRktyo*}~!o9^U#T3LgIiF2NJHVR}s1cETe>{&AQwhi9i5y~+C-P`9%1qwFqs=y*3#1kR(^Up3 delta 681 zcmaDO`BsuIz?+#xgn@~HgJI@O)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEkoKRL1hawYL-Q?w5wumTx!)4A1(hUy0$vWJo@*tj9mf+9lz##NtVqo9~(jWi~ zRUinO+`ugbF=rmP6l2olo!l}CAT70*)%@=Q6_^3FNP(5Yv;?zF&SR4i2=HbEN+FWk qWJMk+#*E1}JaQ1@;&`N(N;xJ^;1HWUfk%r`cJgi>ZMGR)Afo_v*%7Az diff --git a/PSCADA/ECMS电厂行业模版/database/bas_craft_def.xlsx b/PSCADA/SG管理机模版/database/bas_craft_def.xlsx similarity index 54% rename from PSCADA/ECMS电厂行业模版/database/bas_craft_def.xlsx rename to PSCADA/SG管理机模版/database/bas_craft_def.xlsx index 9b27c4f22ffec2a0a0c1d9c62d5b211c346121bb..81ecc08e8b796ad85c762f5e116746e1a955b0b9 100644 GIT binary patch delta 680 zcmaDO`C5`Mz?+#xgn@~HgCQkGv1cP+Gb0CxQQ5d*_T-t2+Vw}clqPL^@IcMth0ghJ zH`y*Pd1AZeZ}nrP7ZsM%4;y|pvG{nz!|X@Ux*}cHUus*fl`q{hhyP|6SJDUF9S=56 zF`l$$_0vNpijOqg1eK#zCYsFix@p{Ry>!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? zogK<*%N7yCZ@A1kLAt?VH(7_n&vYP*0paL_X7Ade&n3f>6$@y$D0s-EPKq*8@o23r6%v@(Po>*1u_Z%A`}E3 delta 673 zcmaDY`9_j2z?+#xgn@~HgJI50)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEk>`+z%hY}N5-Q;ClwumTx&1KFB(hUy0$=cke@*tj9mf+9lz##NtVqo9~(jWi~ zRUinOT+b~9F=sBf6l2ol9o#YsAT70*)%@=Q6_^3FNP(5Yv;?zF&SR6AEWpD9(Wk&8 m#h5YKnnw=8jpdPID(0Bn$00VkpGS*Pdh#wFZMNxLAR_>1ml3l7 diff --git a/PSCADA/SG-A通讯管理模版/database/bas_mode_def.xlsx b/PSCADA/SG管理机模版/database/bas_mode_def.xlsx similarity index 56% rename from PSCADA/SG-A通讯管理模版/database/bas_mode_def.xlsx rename to PSCADA/SG管理机模版/database/bas_mode_def.xlsx index f507b4e62160834487f767d2808b9b12576c0581..b338e49c0672a60f8e73c4cfd591c526d5a1438a 100644 GIT binary patch delta 701 zcmbOyHCKu+z?+#xgn@~HgCQkGv1cP+Gb0CxQQ5d*_T-t2+Vw}clqPL^@IcMth0ghJ zH`y*Pd1AZeZ}nrP7ZsM%4;y|pvG{nz!|X@Ux*}cHUus*fl`q{hhyP|6SJDUF9S=56 zF`l$$_0vNpijOqg1eK#zCYsFix@p{Ry>!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? zoej!r;0R>`tDAh2%N7yCa@^*eAl=}wn;ge&Y763dWeNU#4h%sbCI$v>APoY*Km~$8 zW(J1%qSTyXeLWBv;LQkBf=E7-FK|mSCQg3MEd#NOn@5T%h;4E{n~XNP(su%{6Yc^{ t3lWSNBZPE9yy5q2|)dY9FzMv#3mo&(PEUG{FX+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEkY*1D`M<^3m-Q*iwwumT}O8=>`YhLqg&oUd7|cC^h*Fk2c#$E|5w9zM~OW diff --git a/PSCADA/SG-A通讯管理模版/database/bas_mode_type.xlsx b/PSCADA/SG管理机模版/database/bas_mode_type.xlsx similarity index 54% rename from PSCADA/SG-A通讯管理模版/database/bas_mode_type.xlsx rename to PSCADA/SG管理机模版/database/bas_mode_type.xlsx index f7e8e3dbb2cddfdb6d3f0672125e69504cbcb04d..f4cd57aa42eae682ca1908022e062fc024f17297 100644 GIT binary patch delta 701 zcmX>nc~+7yz?+#xgn@~HgCQkGv1cP+Gb0CxQQ5d*_T-t2+Vw}clqPL^@IcMth0ghJ zH`y*Pd1AZeZ}nrP7ZsM%4;y|pvG{nz!|X@Ux*}cHUus*fl`q{hhyP|6SJDUF9S=56 zF`l$$_0vNpijOqg1eK#zCYsFix@p{Ry>!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? zogK<*APoY*Km~$8 zW(J1%qSTyXeLWBv;LQkBf=E7-8@Qzy6DQB+mVwx{n_G%0h;4E{n~XNPQn&4f*X{vL ui~t(U4>lWSNBU$r9yy492OcS=B96)Z9AcA;c(fR$CeP*3W~<-=DF*<-xCc-G delta 681 zcmX>rc}|iqz?+#xgn@~HgJJp%)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEk>`+z%2MZHe-Q*4~TSOF}`YhWL|Dlc@WPlOYrA&U=aE+F)(lgX%GO0 zDi8!sPUMz?m{ZR!#h5gC7Pkz9yNg?jDVS|?9-EAIfHxyhBO+C~Z8yAj52!f;Xa+yn o7?^PxlVy42Ao}fjq?n31CiiiOO)lioVw9ddhew;Ok_)690FUkvs{jB1 diff --git a/PSCADA/SG-A通讯管理模版/database/bas_timetable_ctrl_param.xlsx b/PSCADA/SG管理机模版/database/bas_timetable_ctrl_param.xlsx similarity index 57% rename from PSCADA/SG-A通讯管理模版/database/bas_timetable_ctrl_param.xlsx rename to PSCADA/SG管理机模版/database/bas_timetable_ctrl_param.xlsx index 2a6b556b38ac22ca9f65de497af1d8cad3193bc6..47a8e82a5bc21e8e2608af4b45070418a586dd40 100644 GIT binary patch delta 742 zcmew)^-+p1z?+#xgn@~HgCRLav1cP+Gb0CxQQ5d*_T-t2+Vw}clqPL^@IcMth0ghJ zH`y*Pd1AZeZ}nrP7ZsM%4;y|pvG{nz!|X@Ux*}cHUus*fl`q{hhyP|6SJDUF9S=56 zF`l$$_0vNpijOqg1eK#zCYsFix@p{Ry>!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? zofpb#=UBu9RySFf+ZGYSMcn3`Al=}wo4kqJ6r$!ex0F>NGXq0>QEE=Hz8;7S@MdIU zU_hi4)iRfd$ABTdnU#To7Z}zQ0RV+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEkyiisf$08=My2(1+wumS$`Yh5H+v3rL2OO85rV=Qge#+^+05R zHzN}R10t!YmbpAU1`O)WtPBjiz~BY}AQuRdCfo7IK+K8bkzxvFo1Dicqm8bAeUR?l zCqUK7Ku!E$eK7qQlMnL9$%9;Vp=Sek8Bnefh(%D;R8IcK!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? zofFDx<}hXgtDC%w%N7yC|GCULLAt?VH`$)s)E30^$`btf92kN=ObiU%KpF&qfeHkH z%nS_iMX5Q(`g$NTz?%`M1d)6uZ{(I@Oq_g%TLxm+8*VA4AhyZ*Y%<#DO1FI6|N8;Z w#2BE#{2-%&0Afe_WPctxi2gzzDW(#R$rCxmCNJjEVw9PDjz^nqB^O970P~UyR{#J2 delta 702 zcmew-`CpPRz?+#xgn@~HgJI@O)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEkoKRL1hcOda-Q=BIwumVH$7Rk5(hUy0$#&ePwjiEYmf+9lz##NtVqo9~(jWi~ zRUimrW?+afO3f+O*8`CO-i$yci1agg1Gf}o(&W?JG7!67b4xJ=vrW!plhH<3y5-~k z-w%K$#sCfG2N?|n5IZs^`|-#@^cV0*F_m&mp1>hCc@d8mqwM6fJlbrlxIk(FRg4(g diff --git a/PSCADA/SG-A通讯管理模版/database/bas_timetable_info.xlsx b/PSCADA/SG管理机模版/database/bas_timetable_info.xlsx similarity index 57% rename from PSCADA/SG-A通讯管理模版/database/bas_timetable_info.xlsx rename to PSCADA/SG管理机模版/database/bas_timetable_info.xlsx index 3227fce0561cead88d8e967ddbda622baabda169..f2dadac9f2f9f9fbc3b9eb162ba5a283cd4a7601 100644 GIT binary patch delta 695 zcmbOwHB*W&z?+#xgn@~HgCRLav1cP+Gb0CxQQ5d*_T-t2+Vw}clqPL^@IcMth0ghJ zH`y*Pd1AZeZ}nrP7ZsM%4;y|pvG{nz!|X@Ux*}cHUus*fl`q{hhyP|6SJDUF9S=56 zF`l$$_0vNpijOqg1eK#zCYsFix@p{Ry>!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? zofFDx=I~APoY*Km~%p z$?LeKAm*Immais4BTx?_J=I=T^S=w!X9g6N0-FFcDTr-y yKAX&BdmbK$asE6~jOmlJc;q159v&&C5{}6eIm9OK+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEkoKRL1haVGI-Q+7=wumT}`Yh!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? zog2z(+ZHK?xy?C2y1`*L`6joiJc#F&CHV6>Fa&*=7#O&LGzb6#6$k<+ z>+(oJ%<<-tvPooNV5rE^FD|LfNi7D2aey}?P!A$K)m~QfzYEl71{9S7n*cK@X!1fH zO^8Y7c%&H9C%@#8gK)Wdr5MX5tMNKA$#G7$=9Cf(@MdKL>E#4Md!RwiU^f8($khiq delta 682 zcmbOsJyV)5z?+#xgn@~HgJH@H)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEk+)!2v$7v?8y2-)ZwumU6!EMe7(hUy0$v3!7A!-D9q!@!H>+ncHxL!O`Hc2cD z3>7*0#U+(Fsl}l14De=TVqid|o!ZN4{&#`lZUz*U0@5G=j0zwKp1goZ6JpX?puriF qU+~C5xLmwajOCM6c^#SLIVW3jN{Iz{v$BD-Z~~z{&>$CX5Dx%E?-C9G diff --git a/PSCADA/SG管理机模版/database/calc_func_def.xlsx b/PSCADA/SG管理机模版/database/calc_func_def.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..1f54a34d3af80beba6ed0ced4b12b8877e420510 GIT binary patch literal 4522 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 literal 0 HcmV?d00001 diff --git a/PSCADA/SG管理机模版/database/calc_group_def.xlsx b/PSCADA/SG管理机模版/database/calc_group_def.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..85b5249ff54737a11bca0eea07e931b83ed80dd9 GIT binary patch literal 3461 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 literal 0 HcmV?d00001 diff --git a/PSCADA/SG管理机模版/database/calc_para_def.xlsx b/PSCADA/SG管理机模版/database/calc_para_def.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..3189aefb63c0338962110d36f4b32b6e6a65c3ca GIT binary patch literal 3544 zcmZ`*c|26>A09JkEMuqShTKVXZDWg+kU^I0`<7+0gpsk#khLfoB#m8`U29+7vbe=Z-Vhgpll`3o*u*mJ^e;0=E!BOEv$%nuk&OWn^iSPKr^LD z;bGUas}-_$K6!ZT@>dUc-6Y+5qyR5oT*G*3^5T*z5lpvTYuhpQKNLXbXwQ$bpON?S z7m{Rj+uRVu8|kG0vMU+`ODO^hK6J+_mKrez7&#iM78|Ss@Ir*xO6?!K`O=RZ^YR2s zgNS^V=;V5WnB39p3g|GS4o}BeoeiQt$15S1wfUyVL=<;~+%0XcWTyO3gK~(f0V3^2 zA_E%EV6${WHm)&DZ-gmE_$b7q$T84N4$->SoW^xb>7%BV6?txQp>Z=+!7G5ZBbgwo zvgv4Ne5amG)vX9%TE>A#+w1$8$FZH>OF8p}Jw1f_-X)<3-s-Ts`EZCOPh zES#1XM4O9Oa_#po_zGk=oyxfL1ysK2SyS;}@?_XK1?7SHP zc?mH1tqhp(va|w9`X?xhowA&fP6j?mZRiQk(4^2TS~0m1wkoUetw~FM-KfMzoNhz7qCbF8o6b6D#_0G} z{Mq=E1ey4v$I}h6$3KZivj1rfjg!sP9+ZhyB0QSA2593X-T8RokFXwG#?fqy3bwE- z@FBgkYq)B#$KZNjYny_gavr|swf}kZcca3Z_aGn4D{yL`;dT8Q+atJ*#lq3w<1*iQ z&Co=N=NzTQ*nW-6!P|Q;tc<&_v_UYo$mNLTvZ+zMB0-~a(FiojASf~AZB_V!ZVS$D zla!Za*2(Wu_aK)1rsT6|z@bO!;6r{N`1)w*qZk5i1P<4V@teN+1l!OB-#7z&Tvh?ftX9oz) zgK(`2;UgV4oePJnPlI!q2;e|P?CvCA%A!}M#;OKvbpcWo&B29fFIg)NPu?gC1SHZD z8{^LLDi}xD`UO1=&SO7;HTrAwr57BL-W{&n4>a0ikg1s73z^I2 zeR)pV90)Dl&p$rs3$!i(JF+Qn)s>@qgDPgfT#>$iE@Gw4u_O91w@X;@BG;1p4yuOy zHBLsKL#aSqt%G%(thcgbJ3W^*;RO)n(atI*tH_4%G*p9*%#|*Hj|dU{G>p7QF0H>0 zU%0L-ZI$r2&+16Q-P5MXxU*Lm`3q*I*y@+!B#pY-*0(a-#9ooOmys85 zwb%vV;43oLKmI4l;Sl(eJO3ECKwiyR^IeFNqL)LCNeksz39OQ7wSXz*Gnrv-p5)pmub$fc$uHGD+2SHwT6T=oj016?I_Z3)Fjs1Gg zGGd%(UV5$^`h5U`dxZ5zD20}%48YO-g742j0Mh5GBNBOaukicx5Z9^Qq{7@x8GflL zuY6lob^jNK*-3?~G?A$l##I@-@$31><=c;JEt(oL)i}Oy)q{_OZ2rn0%lT;Wj;w^FU?t;bG16qJ-ltPFGAt;vlqf*Yo9S!k$i_Lf{BJ zC+`<0B+zFRD-F=B=9M62i+Q{FVSS@~Swy6YpHA~`nekXG%ksUTR9G7WLr1wTf~L>% zr~&i!Y14@?W$~Aa`CHaGphN0pzpuupW|S|iB&W_l9Tl=r+l89g5tUnCY=j+6N6>r<0U086Z3w$Ml6~xyJi_%N-BiCH-KG_)8;N8E*7dkC|_K zUCPE-QNZ|2H2v+O%Y|}lM&+p@f~7`z0|~Iiu*$?~sN!L@c1}ZxT}jOnoZgpx>1N#) zHm>V zF(eSxV)6B|n}>Z0A;VK2Xc+h*zWnJtpKEGTyYe>Z_x9+*l`;8KG7wH#T>F_oxjOhD zoQ-{b+`L?V(gLJim2%jzsk|qSA8T0f%wb}88_GD@1!C?PppC!S!kklmy1jF_jnIya!B za_@f^<&wc0CPa7B4)wWn=G`_Z^LIsYvdX94Wm~gU(1#^n<-~JB`*z^ESAeu3EgW&N zX4=vsmkG1bU5SfOr&aUE&nn%SEGBHUlIli_fM|UL(u5RRkRH=Ue(3ID`f62UCE`b% zdU)qxcNBqfn7jI$&UfHFw>q#`X3VJ!Lf%c`o1fyQ3RN*`+zVF>g~}tUUNhe+bSRtw zuF#p$@GkJP22DDwP1j?MrcVkD-)vsSgpaANl_~K<>|(H+k$58T&CcasrH@JqL&E|) zi(pev9HaA9Cg=H{_7tbH>G==IX`$ijAw1Ge zhSFL8EyDNuk3tlGU;jsvQyZX`k9){{16a!TFEL3Cr&ehPaC?fM|G@v&Y}9CK#dCl* z1pTIesDaed-~i}AOC=Pjq11=W0n~{8C-gs#9BMn%ynJBC<idsvn)z?+#xgn@~HgCRLav1cP+Gb0CxQQ5d*_T-t2+Vw}clqPL^@IcMth0ghJ zH`y*Pd1AZeZ}nrP7ZsM%4;y|pvG{nz!|X@Ux*}cHUus*fl`q{hhyP|6SJDUF9S=56 zF`l$$_0vNpijOqg1eK#zCYsFix@p{Ry>!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? zode2h;`qr7RyVnx#}*O8M|jLRLAt?VH<^Xk6r#qKSIR1onSmj`C^e^8Uk^kEcr!9F zFd$NjYMIN!W5AH!%*w#P3k+=#0CIsKaq>i78HhO>d8L?w*e2(*$xMF9%M$~#ss2)4 z!F`~rXrN+#uzHxjban=YiX8p&{G#ln{QPWCl%ZRCp=Sek8BkLr5R0H_E}k67=g25M Nc`~0iTOJQc3II_M5BLB8 delta 735 zcmX>sdqkEmz?+#xgn@~HgJH@H)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEk98gvx$4_Rky2*7swumS`%wx_8(hUy0$;`Z_5H&WuQdU9C3=Hu_sX4{^dLS~u zn~{lu0g+Tx%Um8F0|xbGRt5%MU~q!~kP8G!lPB=XK+M^|E5#JdHaU+?X7USOo*0l# z^_TJr?gLdt0~Paw)x-2ab& QM@E^+llZjR@_9f~00(g$9RL6T diff --git a/PSCADA/ECMS电厂行业模版/database/cctv_monitor_info.xlsx b/PSCADA/SG管理机模版/database/cctv_monitor_info.xlsx similarity index 57% rename from PSCADA/ECMS电厂行业模版/database/cctv_monitor_info.xlsx rename to PSCADA/SG管理机模版/database/cctv_monitor_info.xlsx index 39db86fdbc2c9722563f49e3144940446314881e..f89cdfad1aba8ba2e818d11dbe1718815fd14e44 100644 GIT binary patch delta 710 zcmZpdZjzJ* zO}5KRp4e{rTm4w+MTO<`!-ii?EIuCbF#8d-u1J^lm)e$V;lCNimGnV($AgVi zj3=#G{q&HD;v>yALFH(bi6-;BZW{MnFJ1Ankl~c@x6V7xG7Xn|=1MKBbZB37p=vQ( zN=Bn&ZO+XfS5Ka@P_SFpSHJscnSJ=Vdur~Jd9R0W>2Z4Qy6>9X-@84(-mbcb>h|z| zM>&r$FfiCMGB5}L>6HBBfTH|@V*SK|0=3p$ zz6DfIopEMc;~Sq7J*B_DEt?j0UM_v#{QjTE*FD!PXRlu|hl9QJy7W~>wl2={=BnF! zbmT&hKQjE~!_jQTw0i6Ay&Kn0c;xX7eBMS z_&eN}DeQmi@+aTq{_v&$O0CbY`;nUZH9!A5FRGt6CouCcvVbCNa{eil>%#lX$_j( z&!Y)(&>o;|>65SX$SHtqyU??Ny9}tb5r{=lw3Kj6p2#6KS({gjQD$-&uQr<@H%J}; D#2X1c delta 712 zcmZpZZkOf@@MdNaVPIn5V3;*iHD)7UGb0Cx@$yUSk;yX|wd=3&1*!NRJm_0+A#&c^ z&AiJzPgZCA{(j8$!p9=L_QkU+OCEJj%=xhO&XZP=7q>4&-oO5-$S!57$dL!u1qYLL z#Z_+3`0BM?@sVa5r*gE)M3Z@0mInUTOIOGiu$&V9)_KQSrtxym-dPK39r{=4bgh+| zxR9Cc>&Dc};p)9*4mCcq_2u1n>kQA`OLO1Mdp&$h&!Q8j_pI6SYj@_?+o|_Z-G1Qe zr&C867#M6B85jhBbV`15Kv8}{v3_DffnG&!&fE#M+02GKZQmXK9e!y0{57v4%Y5gB zCGRGr>8@Mr&0}{mBCG1>_fn}}hUru0O=sV0w7b&lY`r9x`yof$EpxLNY+E~yJMMiq zKV16i1`8fN!9xr54rHZI=l&d|;XIM!P6+F#1%67Et4)6k`}E!J+Bj+AsV7VNp03E0 zS=_GvNnUuti+!)JNu@FJ2!#C%Uy*n0ZRESDY@e?G{;^^IlUJLc89o=;JNee7Wk2lH z=PB>4ou-lSrM|*fPCoDbhS=NN|2~`je@)N7*SY%{P(8glo|%V{1r%eO^I6_PSqW@{ zP*y2BCzRF1v6~63Zn7h{Eh38BxXn31y1{`r`53n;M9qJ0DaN45Qan;oAW79SmxsrI zp}Lusfq@qovLFED0zncB14BiQesM`!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? zoej!r;0R;}tDAh4+ZGYSQat9IAl=}wn;gYsDi7j$WeNU#4h%sbCI$v>APoY*Km~%p z$?JHeAm*Imk+Mx>VPL4p(JwBk%tis4BTx?_J=I=T^S=w!X9g6N0-FFcDTr-y xKAX&BdtM%hasIqgjOmlJc;z769$qP?LXOFO9AcCA@oF(jPJYR&&2|Lr7yw@631a{N delta 686 zcmbO!GfRdqz?+#xgn@~HgJH@H)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEkY*1D`M<6p;-Q+9WwumT}`Yh!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? zoeRop;ZR}$tDC%v#}*O8?|IBQLAt?VH(8(8)E30^$`btf92kN=ObiU%KpF&qfeHkH z%nS_iMX5Q(`g$NTz?%`M1d)6uFXWYCOq{%jR|aC&9bPG>AhyZ*Y%<#DN_WZ}Eq@3! pF%D=jKiF)T9qE(p`Q#w_6ZxbVODEUxIWo#l-p8lSHj@XW5&-h<2m}BC delta 702 zcmaDS`(BnWz?+#xgn@~HgJIT8)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEkTu@dshY|}|-Q<-#wumTx$79Y3(hUy0$$Gq|wjiEYmf+9lz##NtVqo9~(jWi~ zRUimrW?+afO3f+O*8`CO-i$yci1agg0k0He(&XK|G7!6N^GY!VvrW!plhH<3x>M$8 y`9q+IaX^Fl!Dhqk$e3)$CkN4=z$e92#xZ#!huGvvd|HfhllSszv(4fGDF*z-z?+#xgn@~HgCRLav1cP+Gb0CxQQ5d*_T-t2+Vw}clqPL^@IcMth0ghJ zH`y*Pd1AZeZ}nrP7ZsM%4;y|pvG{nz!|X@Ux*}cHUus*fl`q{hhyP|6SJDUF9S=56 zF`l$$_0vNpijOqg1eK#zCYsFix@p{Ry>!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? zogK<*lWSNBU$vK{<&206{6HB96)Z9AcB31hp8YCa)FLX6pbe2LN|Q2hIQh delta 681 zcmcbsd{3D#z?+#xgn@~HgJIT8)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEk>`+z%hX^}Z-Q*ekwumUc%WuvJ(hUy0$+7~b@*tj9mf+9lz##NtVqo9~(jWi~ zRUinOTqqy~F{fWZiZN;ODghY?_mqGXQ!v})JT@8a0B=U1MntNz%d)S&2h( n49vKU$-07a5dHpwQcT4hllwTtCN~OdF-lKfBdE>R304jOkI@m1 diff --git a/PSCADA/SG-A通讯管理模版/database/cfg_dev_type_map.xlsx b/PSCADA/SG管理机模版/database/cfg_dev_type_map.xlsx similarity index 57% rename from PSCADA/SG-A通讯管理模版/database/cfg_dev_type_map.xlsx rename to PSCADA/SG管理机模版/database/cfg_dev_type_map.xlsx index 19716c5e21ec743cbfdfa886dff696da369ce82a..5313dde904806b818af7e40ba991406dac64a704 100644 GIT binary patch delta 695 zcmeB@?v&;W@MdNaVPIn5U`UQp?AgfI%*X*^R5osyJ$WXhcKs19rAgZ!JW#WEp>zJ* zO}5KRp4e{rTm4w+MTO<`!-ii?EIuCbF#8d-u1J^lm)e$V;lCNimGnV($AgVi zj3=#G{q&HD;v>yALFH(bi6-;BZW{MnFJ1Ankl~c@x6V7xG7Xn|=1MKBbZB37p=vQ( zN=Bn&ZO+XfS5Ka@P_SFpSHJscnSJ=Vdur~Jd9R0W>2Z4Qy6>9X-@84(-mbcb>h|z| zM>&r$FfiCMGB5}L>6HBBfTH|@V*SK|0=3p$ zz6DfIopEMc;~Sq7J*B_DEt?j0UM_v#{QjTE*FD!PXRlu|hl9QJy7W~>wl2={=BnF! zbmT&hKQjE~!_jQTw0i6Ay&Kn0c;xX7eBMS z_&eN}DeQmi@+aTq{_v&$O0CbY`;nUZH9!A5FRGt6CouCcvVbCNa{YlNH;j_CZFOql?U;>vIKuV2Zo>z69WS`kOl!@paMbQ zWH}xwh&eVqQnraK3=9=H`o$%cIjO~4&-oO5-$S!57$dL!u1qYLL z#Z_+3`0BM?@sVa5r*gE)M3Z@0mInUTOIOGiu$&V9)_KQSrtxym-dPK39r{=4bgh+| zxR9Cc>&Dc};p)9*4mCcq_2u1n>kQA`OLO1Mdp&$h&!Q8j_pI6SYj@_?+o|_Z-G1Qe zr&C867#M6B85jhBbV`15Kv8}{v3_DffnG&!&fE#M+02GKZQmXK9e!y0{57v4%Y5gB zCGRGr>8@Mr&0}{mBCG1>_fn}}hUru0O=sV0w7b&lY`r9x`yof$EpxLNY+E~yJMMiq zKV16i1`8fN!9xr54rHZI=l&d|;XIM!P6+F#1%67Et4)6k`}E!J+Bj+AsV7VNp03E0 zS=_GvNnUuti+!)JNu@FJ2!#C%Uy*n0ZRESDY@e?G{;^^IlUJLc89o=;JNee7Wk2lH z=PB>4ou-lSrM|*fPCoDbhS=NN|2~`je@)N7*SY%{P(8glo|%V{1r%eO^I6_PSqW@{ zP*y2BCzRF1v5yI?Zn6uvEh36Lxy?C2y1{`r`6RcgJc#F&CHV6>FbI8^7#O&LGzb7g z6$pYR%koG;%(3Q?vPoiLV5rE^FD|LfNi7Bia)37@P!A$O)m~QfzYEl71{9S7n*cK@ vc=ALZO^8YRc%&FJCg0?dgK&TINHLXiOrF3YHd&Wfi&1uR1g|!mDcBtVe9si_ diff --git a/PSCADA/SG-A通讯管理模版/database/cfg_device_inst.xlsx b/PSCADA/SG管理机模版/database/cfg_device_inst.xlsx similarity index 59% rename from PSCADA/SG-A通讯管理模版/database/cfg_device_inst.xlsx rename to PSCADA/SG管理机模版/database/cfg_device_inst.xlsx index 8eaa0ea2751b1f92ade887bc38b9dc3ca5f71409..d418e1dc25d863abbc7c02dcad9f5bfdc2207ab5 100644 GIT binary patch delta 734 zcmew&{aKnXz?+#xgn@~HgCRLav1cP+Gb0CxQQ5d*_T-t2+Vw}clqPL^@IcMth0ghJ zH`y*Pd1AZeZ}nrP7ZsM%4;y|pvG{nz!|X@Ux*}cHUus*fl`q{hhyP|6SJDUF9S=56 zF`l$$_0vNpijOqg1eK#zCYsFix@p{Ry>!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? zode2h;?QIUtDC%@+ZGYSU%1UVLAt?VH`#>86rv`VN6IRYnSmj`C^e^8Uk^kEcr!9F zFd$NjYMIN!W5AH!%*w#P3k+=#0CIsKaq>YP8HhO#d8C+v*e2(*$xN2y<%t2=^kY)o zt@}V#Q9#A~VD&J4>Ff*)6*>Cl`9;}D`T5zPC_}gOLeB>7GN7hLAQnN+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEk98gvxhbA*v-Q;!LwumVH%x%sI(hUy0$;LdU5H&eGQdU9C3=Hu_sX4{^dLS~u zn~{lu0g+Tx%Um8F0|xbGRt5%MU~q!~kP8G!lMnF7K+Ji-BgGWVHaU+?X0ik?PYlSW zACuy4-3O|Q0xISQtB2{!U}s>c$k8v)FUn5J&(8+M8M>txdNy#E0W~!Ou?ULhlF1Fc Rj*K#s5AkZV&F2P50Ra5{9ufcm diff --git a/PSCADA/SG-A通讯管理模版/database/cfg_signal_inst.xlsx b/PSCADA/SG管理机模版/database/cfg_signal_inst.xlsx similarity index 86% rename from PSCADA/SG-A通讯管理模版/database/cfg_signal_inst.xlsx rename to PSCADA/SG管理机模版/database/cfg_signal_inst.xlsx index cfd55e785caa657e3bcefb10619bf94214311dca..3f17bcc8480259ccccf2f75241bd3b97dfbf731d 100644 GIT binary patch delta 771 zcmZn-YYF2E@MdNaVPIn5U`UQp?AgfI%*X*^R5osyJ$WXhcKs19rAgZ!JW#WEp>zJ* zO}5KRp4e{rTm4w+MTO<`!-ii?EIuCbF#8d-u1J^lm)e$V;lCNimGnV($AgVi zj3=#G{q&HD;v>yALFH(bi6-;BZW{MnFJ1Ankl~c@x6V7xG7Xn|=1MKBbZB37p=vQ( zN=Bn&ZO+XfS5Ka@P_SFpSHJscnSJ=Vdur~Jd9R0W>2Z4Qy6>9X-@84(-mbcb>h|z| zM>&r$FfiCMGB5}L>6HBBfTH|@V*SK|0=3p$ zz6DfIopEMc;~Sq7J*B_DEt?j0UM_v#{QjTE*FD!PXRlu|hl9QJy7W~>wl2={=BnF! zbmT&hKQjE~!_jQTw0i6Ay&Kn0c;xX7eBMS z_&eN}DeQmi@+aTq{_v&$O0CbY`;nUZH9!A5FRGt6CouCcvVbCNa{Lwr1utmf$tEM?8NH;j_CcA2yLe$i0O4SE4Gcd##rREgt>w(AsZ$>5t z21H6xEpvHz3>eazSs563fuRioKrRp@vM?}Ig9091Ywcw<|GPkiWB{eL6c>vOK>iJ1IXu8=J`&dNy#E0ZnWKVi6RR ai#aAw;1HX4&-oO5-$S!57$dL!u1qYLL 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 delta 22297 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 C0!Cc` diff --git a/PSCADA/SG管理机模版/database/dev_group.xlsx b/PSCADA/SG管理机模版/database/dev_group.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..3f8ff7697e90b4b0e4d8059d758bfe57b7031756 GIT binary patch literal 4340 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 literal 0 HcmV?d00001 diff --git a/PSCADA/SG管理机模版/database/dev_info.xlsx b/PSCADA/SG管理机模版/database/dev_info.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..1b9f9b8fc9f95279cbd7c136c9f0d53fed40b5c2 GIT binary patch literal 5155 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 O_X;^cU5AHHfPVp)EWqpl literal 0 HcmV?d00001 diff --git a/PSCADA/SG管理机模版/database/dev_temp_def.xlsx b/PSCADA/SG管理机模版/database/dev_temp_def.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..d94bcc0b2e5a465909097518101804fcf19955ad GIT binary patch literal 3950 zcmZ`+cRbr|_l_NV6g6r-_G=WWT`e_QgxI4tsVxW+vqn*UV((3Blv+_m8?#0!YOhDF zmZB)NYWqdKpSNw^-}}wy&izNe*U7ogxz9P*4bdbZqzB*wfB-vlE|gFTeS#4l0Dw;f z09*k80Qc{}+`Xah-c|;F9#FW2DALWfDH*KOew`w6^X^HMfbppP=MWmRdIAph^bVP4 zgAFdVpy*GouIKFa(}R!pBc98sR&4z6b5mzVrM`laKXz>F^|RWQAuvX|eFQDTl1kQ7 zCAHo=L7T#}s{n_NNI&uPa(vEb&QY>edSnPaTV16J$N?ahyD09J#x8S-#BjMwA&=o>p>!>`^*6c!?fKD_Mb9SxQQge!aP{+g`*DVhJA%4Dtw`|p zv8|&wSHr^~4Yrgg+Y zd|AaYPEb5duFt>x!y20nFwc_l_JA`@X7Iv_B4` zYym+2NP}N!byg`h{0rDci(U3GJBSy|11@F<^MYO^!6Ft-_VzlxDx&QnaB8}Pj61Pz zex6TeMR;I;ig=`O@n-F5z-R6iq-b1a5t;3l zNW(ljSu(Nw#nM|4*C)Y9+Q07eB!F@?rX=I!i=MA~0^VQQkN$Y)TF3}0ho!*pc2wD* z|1)BH$55pp*QtZCp7%1Gip8;*PTyO`A7=T~lPD*QYf;L}s?FnSr!%Odjk4K4c^RK| zl6GME+{7L+n%{ZZcz9gU%875&AP}dC+zi{SUYrG&bL!Oyh9UPM0V(Nyb)oB8-6)^q z{o+)k0d|Mxytu=6mCJ$%lIPh#5}ygyF+AcYq=<0;=|*98!*`#=kFRGWZc89FpUBP_Zk7J zXFYVL|B-#!biFk2DR~jlUpDIeGi&;Wd#>7^n)u#2W%=K9^nSgSKPp1gj;j3uDTGb! z2{)N#^usKC0$v6c)AB~?O+*z+bn+AA+(nMcO~vwQ5s_^B4SQrmyqNE^4N^@e&L%H4 z#ol6uh@^jAq3C!v9a1(Bde$|5g;b7yH1)3v<-S#cpk~!Eru%dRu^amCB?B?sNlI3X zZ;qR2q`@$!fqhUynx-X)+)w@68@fo3e#g^1wcZ$5hTrJswJ75+3%#mh!TCoxC!5z- zWuXh3{g>DVLy3(C(p3!Z?dJ-G|7jR0*n_)ZeZTtUz!Qc>5u|faM`3#OZ z+)9wtp_4BaQSPUnKLqcbSuCyQFSr9Z88z~&4sU~k8Q<0uFs)Xt1DUv+eAM(jX0#86 zLe~SeB+QaujF~Z&#!DN*5)@oE*h{}G(K-s9cd!>xH5!?N7&Hi`&Yg$uiv+0zI3+9E zH=;tiU;8ytw_2JT3A!nEq>Mkj$EZNCYC`b{Q@*CmpC%zeADfNxNt_=!`Viu>FYW8W^Vmz z;Xb}d+8p9^mGWxvTvmWb7O1f*wF$}A*_-|39K5Q^2tC|%5{@dR1jqzOX39`0>HCZ* zkonnvX>r>j`Lh6mM)-7Qu!)w!768j-!Y^w80rPUPg~41d5`S3_2?H7(w<)@?#eaR# zy~ILE#rMrs+WoRUyvU4N{kk0H#Dfyp=HurUCLQg$%5>Yu%{3GmnU;k**!26NT4K42rRjQ33<6B1Vt5% z@Ml&eCllvX$WP+!6<5MQ70iR|;$yR{`Ax9fKAK(U)%tUBRGUcw8RG9rN&9QGpm<}Z zED(yoCBuafMUfWSl9T&S2}o29eYW(4z9`<=Ny}J!Im>OLe9mKF*`(O>=EO~nBM5Vf zQw8Z7yBillF~(K`^<_|g4@XQq820vJ#3t=?aL=jBQH>bfSP0|ujIv0$XU;MdC_n{0 z{-LRquQ;<+honrHqY|% z-rVm?(??y^#S3MiC@M74kRtF~G}NLm8-BNr9+k-BEzxrH;}i-`UMu!XVz&q(Dd<19 z>1ako)(x58jMxsbXF(erD>QWEW2VMRp0Tc3CBX#;>7|F*b;wxa-y}U`*{nirRy1zaPY(Ye0Y(2LVdA}Ril_C`y#t>I*6Qtd z3Pek5qIMQrX<#>aW^Xp;#*I*-1iV_!GZaqlT3f_MnX2?7O%+teeCv(s?h--EVvyaK z{V=(jO(QdY3cBc8`vA{x&g6W=m=nBTeq!AMJhqT;dQSiVOk4v1m@fUi$Qaxa3iXDI z{oKSaPV%b^E0+-nQ`aU@%bo5f&EXRcH+8p{_SMc#@=#;m+9?*d#LOh0kr$!B_tvu% zoeTY<*>`A&BBJF^B-UJ8BAi&3Il5(Gd%JwRqysyO{DN}9lWKxAYx zZ`$>JTIt=MH2Jz2{4ldiLZId}c7{B#q;(cSgE46I=WStogwUPv0uN|^zVVmb1rfXV~0pJqIg?wk&y<)gdTJY{o@Wd?kMe7{yRDJz7DX(FRNSB$4%Ncv+Y7^pbCf@fzlBL@zaD^(dv1@=rHhyR!KvcwjF_jlQdaFYT71 zX=b+15Mh<-X#KQ!vv_DXDT#Icm)-9CvcTs~4OiXsgBQM7B|7SxU_9G#yuQD|q^18-Aqvn`l+ znVtH$`XIc3=c*Y|NWmapxV7Z$&68jciQqHOK%~dnhU395h?S0rf;4BHkBwC`gPcc* zk&eL%?o)04AyS2?C85lllWQ_NZ-e^B57B+A7)uVjJW-)^8o4&GoK&jZRb`Mc7fbU4 zSO|=Vr6Ix5n`wv>)iaP-@3xt<#hJd9NtaE7q)RF zL&)6qw$TrELc^8QHxnZt);!Kg;dSQZKZgh;rJR$x6&5I=fXPg>0^;0#QM4xthMaxN z5Y{`uz-%E%W=Ue;*s&q|5nntXj~oo3$2UoYQL#cTp+Gs z`vtTi#F1~fP~6e~3#v!_6Z$`d0InU}Y5B{J1IbT2zt2uwFz$f)1@;79`j0zqez$P( kHg4!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? zogK<*ED8HhROxTTna*e2(*$!MeN-?b~D{vJ?u xBv2DSSRYJ(`eZ{MIeCz)F7#~RE(6Ln0 delta 739 zcmaDL`B0KCz?+#xgn@~HgJIT8)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEk>`+z%hd2{h-Q?L^wumTxz-7(}(hUy0$qL-25g?vdmf+9lz##NtVqo9~(jWi~ zRUimrW?+afO3f+O*8`CO-i$yci1edc=JN0uP~~P;1_oZR2AIaA$!ob~APzXoEyWbf zHaU+?MjKuKu3ZWB_kj8$foAZd=+BsJz#}IQa@>WU4cuiwxkexsK~YmYIhV(gQF`)v L9&NTBE|3%eZuS{8 diff --git a/PSCADA/SG-A通讯管理模版/database/dev_topo_info.xlsx b/PSCADA/SG管理机模版/database/dev_topo_info.xlsx similarity index 56% rename from PSCADA/SG-A通讯管理模版/database/dev_topo_info.xlsx rename to PSCADA/SG管理机模版/database/dev_topo_info.xlsx index f4456991f6c0aaa9d53e4eccff9ce05fc382b709..84c833d4f4c5cc9820b984f963153ab83605eca4 100644 GIT binary patch delta 690 zcmew<`9qQ~z?+#xgn@~HgW*k#V$VjtW=0MWqq1?s?8!43wd;>?DNWk;;DMUO3!U@d zZn9lo^2Bz_-|ELoFDfjjA2$4IV)5~ahuM#ybw#?Yztpx|D_^>24*$(CuA~pTJ05JD zVmxWh>ZgZH6d!4}2`WdcOf;G2bJzjfYmmT9=$GgoS1r9=Cw3ssBR zQZgDHYjbY?xO(!Gg@WC(zWUuq%k0C?-BWX)%zHh2OOMlY*L~OA{@(5R^>)=gRJVu! zJIZ;4fq}u6k%2(~NT=i{2NdNO6zeAz6zEmt=FFXN(2LnnpzVFr`wdU-`L0n2+N9Z3 z@hzZw>Wnkn8sGSw=qdgEZP~Q2^K$9?=J)?RzV5kZIeYzzIUMYz*QKvAvUPEmH&@-> zqazo3{E^`=AC6`#rqx?_@7=h5Dp!c-f!JUL{w)2Vu&Cl2ho9`smyniR=@)k^qI}jd zL)MCAA1oQW;-o$=NEAE3Q5d++snl#8->3M@B?Y_sx6e+_v`e4wbyBk;Q#aO6zWABt z#oyt+Okw|9mp}O?_lGb2S89EJ-H+7Nulf1kc~SkmIf0pnkp&cCn+sUpLRpDyf>2f& zI~$bMz+u1yRyTPImn|ZOe{z{~f^>t!Zn7n}sXU11l_mJ|IWPo$m>3wifiwsJ0~H7Y zC--toLCjgrEoGC)!oX0GqhDN7nUh)!3gZB8MxY)61Nq&x-Vw30cXfaAoKEb2SwwMc~8vu385XArh delta 664 zcmew%`BRcFz?+#xgn@~HgJJy))tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEkY*1D`hXE5<-Q>+&wumVH!DY?~(hUy0$rjwE5H*F|Qj9^9d$^?_+*RCCHc2cD z3>7*0#U+(Fsl}l14De=TVqid|o!ZN4{&#`lZUz*U0@5G=j0zwKp2VXGF-Vt3iZNrd c2agX6JWR#kGoJX5&2^UB?0Cpx5&;S4c diff --git a/PSCADA/ECMS电厂行业模版/database/dev_topo_ver.xlsx b/PSCADA/SG管理机模版/database/dev_topo_ver.xlsx similarity index 56% rename from PSCADA/ECMS电厂行业模版/database/dev_topo_ver.xlsx rename to PSCADA/SG管理机模版/database/dev_topo_ver.xlsx index c805da48d9369850a7ad45e00b6af8edc0ba701e..98b5605c1b47524262076d2bc886f91d0e132abe 100644 GIT binary patch delta 738 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 B7asrs diff --git a/PSCADA/SG管理机模版/database/dev_type_def_61850.xlsx b/PSCADA/SG管理机模版/database/dev_type_def_61850.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..0ba1a31ae878c90673526c37e9d583f5a89ef377 GIT binary patch literal 3628 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 Ul7j>Q7|CA^a)CbVYgfSk0Q>prf&c&j literal 0 HcmV?d00001 diff --git a/PSCADA/SG-A通讯管理模版/database/dict_menu_info.xlsx b/PSCADA/SG管理机模版/database/dict_menu_info.xlsx similarity index 90% rename from PSCADA/SG-A通讯管理模版/database/dict_menu_info.xlsx rename to PSCADA/SG管理机模版/database/dict_menu_info.xlsx index 01ec3e8b2ea263b6bcc6757f764ccc92a9a7feb8..57c6850237c95017700402c4a16af91caba28760 100644 GIT binary patch delta 700 zcmX?CbGC*rz?+#xgn@~HgW*k#V$VjtW=0MWqq1?s?8!43wd;>?DNWk;;DMUO3!U@d zZn9lo^2Bz_-|ELoFDfjjA2$4IV)5~ahuM#ybw#?Yztpx|D_^>24*$(CuA~pTJ05JD zVmxWh>ZgZH6d!4}2`WdcOf;G2bJzjfYmmT9=$GgoS1r9=Cw3ssBR zQZgDHYjbY?xO(!Gg@WC(zWUuq%k0C?-BWX)%zHh2OOMlY*L~OA{@(5R^>)=gRJVu! zJIZ;4fq}u6k%2(~NT=i{2NdNO6zeAz6zEmt=FFXN(2LnnpzVFr`wdU-`L0n2+N9Z3 z@hzZw>Wnkn8sGSw=qdgEZP~Q2^K$9?=J)?RzV5kZIeYzzIUMYz*QKvAvUPEmH&@-> zqazo3{E^`=AC6`#rqx?_@7=h5Dp!c-f!JUL{w)2Vu&Cl2ho9`smyniR=@)k^qI}jd zL)MCAA1oQW;-o$=NEAE3Q5d++snl#8->3M@B?Y_sx6e+_v`e4wbyBk;Q#aO6zWABt z#oyt+Okw|9mp}O?_lGb2S89EJ-H+7Nulf1kc~SkmIf0pnkp&cCn+sUpLRpDyf>2f& zJ3Exs$kAd9RyUc`#ugF7em3TuAl=}wo7`t(Y763dWeNU#4h%sbCI$v>APoY*Km~$8 zW(J1%qSTyXeLWBv;LQkBf=E7-Y^4|zCrjJPK&-O1m0}8Fo1D)kqm8ce!NsWDdq4vt sf#&jqjfPo~K6#$497O*Cp#CC`$^9H+lRw#NF-lFAwbN$%VGU9a0O-IITmS$7 delta 681 zcmX?GbFPLjz?+#xgn@~HgJJy))tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEk>`+z%M~g97-DD0MTSOH5+L&{Kbb|wLa<7f4Jc#F&CHV6>FbI8^7#O&LGzb7g z6$pYRKeUm8nDgI8iZN-jl&uVeYh^3N6wEd`k4;89z?%`M5s|7MT#U-S2h( n49vKU$#ZSxAo}+M^%rwY?&A=f{Lxm6QF^kBoi^J~YmjmPH;Wf& diff --git a/PSCADA/SG管理机模版/database/dict_point_type.xlsx b/PSCADA/SG管理机模版/database/dict_point_type.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..98208b038d29934a6d12c81bd3889d735c5fff65 GIT binary patch literal 13480 zcmZ`=1zc25wB|1;BGM%-A>Ax3pwf+WBV9{KHwGaMQcFuq2}q|%EYgijgS4d5{q6!{ zy!Z6C?B3a(Z_a$@J7?z3%vF>@M8ZY5fp8mPO@|_cAqF>6?LP#B8#fUUa1am>v_))f z98GK-^;O*LOdNDsT&=-%oj5`-bK)m^P8Kufk!Icu?;vKa_WdG{dSXr2xW+6d zE+S7}*B46N)`sCSNA=FwpDE4uS6lpJ9PnOo`AOr(q2~A~enfk$Xp;Ck2E|njMQ7sy zD6;v5+$3r!4G|i+z|dWd%cOlDnutp(Fd?C(b+|IO)_fe#YvY2^9hXJ_=-5zCIj|A) zu|)xblC_vekQSj!h(hb!GU7lJ<;m3Nis@{ARB9x4!p71!)Tc|aX_^(cyl4`$LoH1H zt4(oYbbnRXpi(=2)`mL5FE&bc8diHgBFuFpE!I~=KhQaNc+0uGQpouD71}2R#lPI( z_OduJ7odL@cwqrAV_PFdds{mPRwG+`6Sxy}!%FTnvEhojeD=9LI^J@J@@>V;3=Qux zQ}5pBt-;KB!Ln12Im%^MzPM)gT@de&7D?^{r4RPZH;-t_MqIM$k}yWq?ig+{SIv|} zbG|LeUuXhRe53crqSB_01f@uia)t|Jy zmyf-`qX)z79lZC2vcqayorTqVrf4Lh(7vjdg*;gjYZwtfoeViz&zt(YU+QPAC@nyL z1ObU*{@E`BJ3Dx{k|RD#BeG-qZ@$_ro}ZE{xUck){*~*VqDKs*tK#LF?3WOyUHG7NizaTxL?RN(Fjklja{qV$z z`vdw_2PP)F zwzm6dfA?7066B>-?}^_%iOO*c~AT zslGW!?wW!G1jSa~;VgK!^T`d!iCBak*MmSVofk zhx|q?S0PR4G|QF^4f51K`^7>tux!AOS8FxCsh@|yhBzk@L(^>2WDhc*Hn!i@2{&bl zO3r?(wcdw-O2sbx#(%)d8(%uMlP0u@YWzLfLgZaG~0ChN>@#>p3UR9sRWKYIKYz2|H_SF?KB zVKb$2C3EivbKJDc=?WTw_jIC%T_UKiD7M~}w6!xS=v;0^4BzB%(}F1=7Y%{e+dqL9 z{jsvs;KMs^#*3eBKojEBfx>6S-# zp+NAn&D-SYJ{EPZA;8+p+x^c!zD&6ynegpFj_u}~_qrM_%_&c?e;zkbk53*y%vGl* zQwH^^aM6XZ9I~U|N~sOV*H&cWb{EKca|_=XRvt$%E|F9aO@VG?s!A7$h7{?U!&UpD zbb-MnBx{g1p)fl7R&t>L?7!XY54NB}!ag$g;VI&G^|p_kWT5B8%G2TKn^7L|>>Vg5 z-5+I5{u|aLQoQTApgQ|Pi1`y=&WUz9BC_bA)0Q&BqL9dTT>NV36s5+Kb7~d6dZG53 z6KipDuiDdpqJSx!cXb*dLkoxmj7w7fq$4!qv;5@{TPHFvAT#=3T3$EHZHxWSP94}T zp(8C%!Q6X$nTbKX_8$wU&rZfC7X{?Mhxj38k)^1k(aDB+O16;+Id3Wyz0&~ybWZmb z)QL1OA|tOsjTwBooXK$iIYx%0O}QzLVOd>zNG=0njCoeMESEpX9gDMC=a4Hy91y3S`b0XN@hf8{Zo2{vd>?2Rlhfk}*m4<=j|H3%FIbvXcr; z%zuz)Y$Q00OnWR#(XRJ_aFyKj`RZ!oqZsa?Oz`QEzt-aJ$NrOlxabQhMs)@_cnQ34 zFS&3qH?TJ`R(7^ibxmA1e-)|uUW+8OZ^Euq0M?iSd{vX1< zOFQ8{b1*kCadcq4cw>iaxqMPPigY-B@yBr>Wb+Z7A*Cq`G%sc~dZp13EG;IzK2g1` z*x_g|V*YM|?k+Y}dq4`~1SvO!v!7d*xcUdyL$b~p3u0sQSFFt}QqzXgdAhIIRL^%8 zJIYwQW&=I9b+dFaJk(DuzrOa_ug^(!pAqm-|Dadrxnh+wq+TH}SnRU$qfPYFtXy*3g2ChrYmWxQDvJ>7>Z{p|Ie=WT$$A({6ixy%h$DY?b4# zRZdEs^Ll(yijddt58C~d2D@FxxYW^F#|Y2upD{VCIsyl6jOTVo-#OLySROv#OwUQ> zPX=384=U(axvmV&`WER$c2%8p+v<6GZgwrSeLCHl%CZU&`LHJFG&}bBOg**kplete zL-62WA?L%?@i}rzgX_Lx4w>sw)BeWkZY@D-)!zK)>CqzB@|a}znIE?L_0ESY-rKec z$!ATf?TdNy+xaR74E5F0KHkG>2Mndv9U)_VHXlA_Y%FlASN9fi%;ujgGWeV`_-sNQaFAL3h;}n_u!$W$M!p} zQbIm;)UU$L;2($HOE}qoQhfWAymx;2$J^znKHly9a}U_zkag5^?hp8Yw^U(0Y}Tp` z;Ct8hw(T8*>gnU~FY%~fSsw1p#B@%3&9qwu1e8j|B~8{IVCni^+#QPZ5U@%E?d*N`5x*Gr7oB{9_B9Z zoyiypI+KwV^aZNUTk~DwUbtZ(FRJD{ENmE!x29YB;Z!2xjF;w{x^xAZ-9YSJD;w{w zw%nh{!Tk@`R2AsnxKEOR?4QEgyDsFs5n?ws+F0hWZnSQwi8nx% zih9aEO}qz-Pi~D5Ajop;{1hiAc)*sTEoJ7dYxi@qb)(vOf1+aNu^y5sOOROU!vjR& zO3R+W^TxRJG&AR*)-Biu-;X5)LVh33 z$eOh9*VShpxX2q0%n(*=F)KON;HKjy_nkWJWTWnw7U~i*66|rR78h$ z#*1%`)|vvQbmwdLh2*k0J^I6tG4_WKb!WfWB8hVgSo7G=W8SNFpO182n(1Av+fiQb zSA02jiYZi4yB+$}XC}CBFwEv@()8iagdB{NjW;RV)CWnlvx%GM^QXI^Jev>qzZVL7 z*PT@ooFB=mZ`Lz49P2D?ByB#-tgIk=c$(Z-3TYI~?^MrH(0?-i>G|AVz-Hn3Ze^<1 z&!2?~XLjHA1Omo=p6?%zQbjBzD%Z|6l?J5ovj|iY9>p-1@2a26R46Uz%^SO)AyE%zu1d-8NIXZ%4}fo<0-Z=cxU^}6yfYh1|AII(*0PHE@kH+_CRd zeYX4AA^NL+mDe2UGA_Y5J()mj?-0GWXb#fG;m|@G>%#|y(TxSW$38mxKEf*WWDGYy zPAF%&zQ+~LReGp$r$8I{2+?eEV&pZsSvwTL6;ZCILoZaJbkU`K6?$BB;95_KzEZfp z;T)B`Gx4qn92l=1vs&BU4YjnRVh)CH}e~}l$gFKpJ%_r`2q&6G?6wP zA-*)Xa+)#Kod9kL5SVjzSTpCTCI&1cz{n~E2K6mWfI+u&Xl{;YZ0e|6PV^HhUJT93!FXOqWg z1^Tnb;7k7E+d2k9WuBL{_!-}6*w#uDS*H$H!forfOEMkb>?lDPMeBo9iV~pic-4Ai z)r!;}7GNp$56i`P%qq$-MHm@QiUz-w;|k_{mh%1`de-dMZ;kX~y0rNFL)1&=R2?4c zWwk}iOOkAGPrEzT|eEMUr~tQdTmmSb7{Z)^Q;S zUAzAYmmiwnI{R#(Uq%LM00L`rjk=^OJ83k@4~EEZ^`}z`8z&oC9?9FYwnE4AHERL4 zRY2cW3*3iw3e@A-ca4yC9iGa1G|&0o6s?GB(n;G;ZSfceP3PY}80hh%{3c^0Q)4d{ zP-vc((B$8=2ia=5!O?$HG(Ap!k`Yu7L6`pE9uvrPpCQG3G9R*^SM6E!(I}|xPSDcN z%A&x;ww|GfEnf6pc(3%uzNyPmeG2MgUDu&g`UI-TWK?&A1>xt>gXzFAB`Cz1H>xX_npCr8zckvE; zF(q0-_VZ_AWDsW-+`wl<+5<6+{9rNEVO(z93TgD$s%3Yx(fIkDiZGFl`04mC)HZAn zEEy9}8TXnjS=b6rAm4v{{!aKqtFu>0$k!h*^`n89jfULo=Ad~tz|@b;|CpMDnQty4 zdub{a+*HYelj)flH4vQ|Q_!$Zrbd>LG%Z?e59F)n3R9s-6{Jarf>mukco_7oK=R%o zz^Re!U!1D7=avLjK+7IW)lo)?DaTRtML*G zg^zd4j#*ELf&v^l{M=sg^HC%x$qu%otQe0~ zzblLdRme)x4*rTPoN9Ubbf*gm93we#WQ$OKZ4ZnucTLx|Z(`w#?|eY(Ec*lY?8lpF zR$9<%aChl>hwaGMX@WfrLX$h&NTK#m#QEY)qj5Mo${ZeRGh2Y;Bc5iLTxB#G`-~(} zVv~zRjY4E18z5>EjU!-nF1kAJ>txRnCoew%IeY&3%uRekSbjZ{OE|d;1yR^U^&9&{KH`9jyb_LQD7xIr;Zg zQ5|7D6=CvvYM)s#jrgXAj|-A8)#S4c7JQ32)^+;SWQeqBd}AzrC4@i{M%sRjc<$xp zA+J{&go6~3Mhh*yS`YhW`3$lF;YLR}%Kpgw{4Mg+mh?h5=XXDX5;zZ|_D{fk@z7Wt z!_HqkU~2!tLq(Ek=@kzj;XL%jMmdh01>WjJdA(rFQk-OLbVQ4~7k=WWPP3W%l(p^+ z8xUlY5FE;`c2H9ira^Wx>X@aJQK#>1&d{q=%N>ccNS(koc#AZ-Mj?XDh@aZNDajbl zfWe3?WLL*m(>8QDwNJPAVP5MgPJ+{pUn+U%8o69Te3MRw=}2b$E~vXeigU2%rgeE{ zNfu4_wFZany9+Y7I4{ydXabNHI=M=x5=wm>%S=ZK;&*itG{gJ5(rUv#ccp3CHy5-6 zwpxL@67H6!m_oP+O|MioWDL1xRm%qARAz9QX8QqC&8rPYN{LKKtsz{*rh;(>BSv=} zmOmheQk`izn2!(;)6POEx@8SMJms_+=yFehTYD8NN>QfQv|3i1j`Sy7_^MvKJ7neE zLV{**UcA%aW^NSlA3BgQgOhd{S#PDxMHpqXeO-od@tF#Cvs>ABUAZf_o&7o{$|u-Y z&D$-kZ5rT4CvIiVqtL5Si%(qtFpu$#!q#yhi^=RXK#=3>7NjKWw> z6VmQzi`QZDlUBw+0@3P;-Yt;Tl;AY!meuTSjo!VNO;WQuTAJ@yW%h*jz{h9w)1i-z z&(>>!^L?M`v#sgPIyW5t0CNt%YVm}EK$=wxkS31Yl>lYrK=IJ4iCF#uNK<0a_#(QA zEI6`X#||0`GRlqggETqiMjZN$1^sCPHu$sc>oV=pk4#UGP%CZg5WPew;R2K#p?j9=tttFevHkr_?N!9B~LV78Iur*wC8riXwGe zK+0yesdwVskrzlfVF&E?DQG8OwK&s=627+k4D#FVGYyGjqf5I_*#WzcjRf2am2%I2Nf;pRw$2=Hq)R40qpZH_z zl@Kky;9mCw}txq@DQ(cFPLhEFr zv+`^q`IKi0)hi1Y!33bw1*5eaa?0Tozr9A6`~zJFK-auNXM&?^f=y#uX|(W(V*zwc zF!T!?oswW*4*LcVIr$zM2rba?j>GG8SOgvSplAuj(_e|%UzGh zbF^Gji}?q&n2A@@w5fL#@Xm{XO}ScV#xRMwTTEF*z|ebuk?P}GI$UZ>TnYL9_W@l! zmIU9%PPB-CVN(Cnl}N<3uB_%GV4@<17rMGd0q81H#E_Gbn!7&&#zxKU@Ys;^7Iwf! zjl1aCjgFi7i#@FR7)#Tj$-j~vPEF7}( zY~CBz^*unYjGTKdpj*cq7V@Jxt@Z6bL`fm<&&=bx1t^_~==YS7v>cwh=!yJItX}}pr!fiBfxBP)>%9IlH{hfu)=|S)3 zeFz(M0DTu)hk=MaOg5_7A3h1b7)6QR0yE*u`JXmbTr-Up`o+)$*uYL20<@&LP#hTB z?7vVPFN2=QZqMuZRh9O<$&LoNKmF=2g{}-Cjt0<*<7wbFUyUIk>VWGpM4ScaGRegl zVylR5#DA}vguArE05F!h(?B4Oq~gNZ?x{HiU7-UBiv{1sNwf1Avh)6AW4X>z3`U~)kc`ncvwacFjP>`HNRF#0&VBVe-lnOI`q zdx73FwjD8I8FNU}1SL_0um3s-1V%yomB}7}t}|J=JqVo9&vr4C2Akg-{M^xBoQ#Jy zZVmzyqK#Mg6_dX97jdz6X%WMLIBr>-=#TgutQwS9=n=+fN z^35A&3PS-jEbS-PVTgitEx|$(z*Nyo2~tu*9gFQn!DeDD+(cN~;w{cBqTsgsKp6IR z`hXZ*Ure8$jD(+)oUG8vgaOQ_Q&r5rSqDjg+p(^hm-vHu32+7}`z7;XaOO!%l81rT zB*3Fs2&qy6(5xBU;?2>@5&3YQj+s{l6JZQ&ln(cS}a6~Jw- zaE8O_5@mn-CC(_YYW!>gWFc7cKmnZNW+;<#Eekip-?H!k`W$#Ei=7rg78`-<1t~Cb z55u+;SocEU7f|ZR8f;(^2sE|Y5V1J>23sr{;-o0@`395D8eT6|$cF*2EEn3_ z#3V4{=jCH@F8yXm5E@K6XUIdq;%q9rfV5G=eD>IX=B%i$*8A-BY3j*Lk3x~i*9gXJ zHkaif(rQDVZae{dU^Y;KqOeS4-x{XF{_Cb)o7Sb3Weo2kX#>AyCrz5b6X0Ab(y{CR z04rg1cBnQqYjc#F`7kcV$dcIjeiuXdp{tnF@dC!zqWXYObv=>5l*5HCn6%xHM-E>A zKIMQn0?a+ajQ?mP4j>)>vJtvqpb;JXT1}IZ;MmqMlafRkd;y+p+Z!&EQ!)E;c0-@@ zbG6C6h~DpzO4I-WpT^>x89WKnU6Ujj>}jQWm}VnMATaQ!lL>0gb+4Sv0(Y|R+C+hZ zZMsv5k?z{!Kx<>36%w0kXybZ6c%feM1#LpUYzVL*3z>svs1tTke%AIN@UEelg%yGG>B@e zGfO(5W%4s01g5Qu0<~$`R<~q$D}@g}pCyt%8jk?Mc@8C&GUAaV5_k)};Mtt`Ei^3i zPoAMHT0~bohr)R#s@2Q_c!s8Am88lL9T#F* z=mEIS;M|)JIR%-mwG&=&-C$)7UI9M;>cFnO*;+>OWe380fDUvfmk{vHX_KFKp7l-% zksjRYFr3XuE-^D(Te64hg{~wt>UN5sm}<`=PB12Z)w9@7sovT-+npwLJT^sf+gNcugWjB!wGOL_#M2&npn>!1ge$*Mkmd&OvDt0`>BafXolbJaMQ-!uf1_{Y|h^wmk=+rue;pjWIQ|RxTX=MvtNo(>_k; z-5BVpk2lWG2#_USjZhc^5sXFX@dWBk#IffaVzJbO!;xK*MQi+9NS%=-;o_G<5(L)x zkXa?5-fG5c8IdJs#%oJJ&AS}vljWyvGUEyxf@jRncOiZ1A^KyV&bS@XC;&}`e}Um} z>j7IL!1guBSqL2fA0Lp*+;Q%Hvcjbp4a6il$39o7sADerw z5t1KQZS?AK7BA#ggt$}GphaR6%W@QQW$-g;434A8JGfMTS_Ak%C0xs zKovVkVb{6ZosV~~f95h*OV|OqdSM3Edz1|oA|mm))#lA&x7PMz4!ALKo$I5^1?^FX z0*KN^3Ii~OC}>J19Pup_K%@@+jaUuZ>mRs6w16WHzEb$CK|FM%{&0zM~0)%=Y^i)bzVC8RtiTB7nSd7T} zg)(qp=t77?!=xQ6HZl^1vo!Cj0_`Ze;jTuIYk55Ef z+k9XAj!U}<>=p_f5~wCE*9uS2i`vt7@ywzmKcVDFrmWS6{9-&J78 zidLDj0(UX7k6fRD8a!yx#QnfPhLONRI_pVO>>s-ratlq|q4*USs{_io6%h1X9oVJh z_^dmUxRZkivq$63^1Tdmkv24gWq<|}h2x^{xM=~Fzpn_h#k*0y0#Z!GexH>b9Q}y- z@0|=4bjv|=#fzOMAu+|^m57eV)9~1! zciLa;0o7BuG=@u3&CNI|%SS;{@rP|TnjAk<^scsW8_)aB+rvr_vxCK2!rU=%LSDDz@Ia54cwX#Z z+kVzG>gAecd6y1N%WHM~GM~pCd{Ne|F>LCPJH~W4@b#X2K}@3{Ai{f&OL0ZpgSg+y za2E-;21^N_kAaDDvWR_>)mS*bmHoZb#mSe`ozBO65ifW7n6pJ_mdZ3A!pp3oN!+N< z$1sF-KJC?I%A;GPOus!@R#^T}JB`UB{cNC+KnUi8@4ZG#B`sr+GON98YHU$z5z9>_ zBO^dSxHS!|XmWlmyPmvrR%dmmGha2t3~#8iOtTJNW(|$y=5$aE8dV9JKWWP2+P5Dt(Qzx&!yC@0EsmJ`NnUEP{?eHj|~wUNVFo!gx*cSVvM zoFtxd%{q9QH8h)h+rg<5I@F=Gc2W4t+mnimH`(lNJ@Rhb~fGoOAsVlr}{53K&ewTreL^FwejW#>B6LH;U&pEDe z07}o;!$7QhNq&Cl59Zev-q9&r{43s`;Qk46(ovAaS8{!>D%Y2Z%+KxJqRI4mc&nQV zEoF&i$L9v3_-PLg_^KW40?{$1r_UQnrv*qb+PZ~u-M(Q|X?PwAQPoJ?tdZy*5wsi> zlphjg7!p*UpUef52hi|No&9_-RVu z;Oo`D|Kkype*yk|90FeR5+DG0`(F=7{9FCsrw)Es*9Yvpu733l!oRiuJ;DFG_EW^a z&h!6U@!zBFzbhIb{d4gB->Ux}n*Lo?>DEQn|K|wxzc~M%GyaWZhJ1nZ=c(g=EB|{i z_jhH7+n4tLdrbFF1o*H2Ju>?nff(hw`Tuo*R#E0A&`AUY6yU!w;2>oV_|^Xaxkr7} literal 0 HcmV?d00001 diff --git a/PSCADA/SG管理机模版/database/dict_state_text_info.xlsx b/PSCADA/SG管理机模版/database/dict_state_text_info.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..6dc88e1e5b59244d9f5243b7918a966fa9e26593 GIT binary patch literal 4910 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 literal 0 HcmV?d00001 diff --git a/PSCADA/SG-A通讯管理模版/database/dict_text_define.xlsx b/PSCADA/SG管理机模版/database/dict_text_define.xlsx similarity index 68% rename from PSCADA/SG-A通讯管理模版/database/dict_text_define.xlsx rename to PSCADA/SG管理机模版/database/dict_text_define.xlsx index 9ea4c36efba3625d489ea8395bd23a9df3707e72..946d37609193dca7b1ed3ea99e9260c0210babba 100644 GIT binary patch delta 771 zcmcbrdPS8lz?+#xgn@~HgW*k#V$VjtW=0MWqq1?s?8!43wd;>?DNWk;;DMUO3!U@d zZn9lo^2Bz_-|ELoFDfjjA2$4IV)5~ahuM#ybw#?Yztpx|D_^>24*$(CuA~pTJ05JD zVmxWh>ZgZH6d!4}2`WdcOf;G2bJzjfYmmT9=$GgoS1r9=Cw3ssBR zQZgDHYjbY?xO(!Gg@WC(zWUuq%k0C?-BWX)%zHh2OOMlY*L~OA{@(5R^>)=gRJVu! zJIZ;4fq}u6k%2(~NT=i{2NdNO6zeAz6zEmt=FFXN(2LnnpzVFr`wdU-`L0n2+N9Z3 z@hzZw>Wnkn8sGSw=qdgEZP~Q2^K$9?=J)?RzV5kZIeYzzIUMYz*QKvAvUPEmH&@-> zqazo3{E^`=AC6`#rqx?_@7=h5Dp!c-f!JUL{w)2Vu&Cl2ho9`smyniR=@)k^qI}jd zL)MCAA1oQW;-o$=NEAE3Q5d++snl#8->3M@B?Y_sx6e+_v`e4wbyBk;Q#aO6zWABt z#oyt+Okw|9mp}O?_lGb2S89EJ-H+7Nulf1kc~SkmIf0pnkp&cCn+sUpLRpDyf>2f& zI|r22#KFY@RyTQqfGr}1uL_uRf^>t!ZnCJLDMXE*pj3SzGXq0>QEE=Hz8;7S@MdIU zU_hi4)iRfd$ABTdnU#To7Z}7GN6f#KrDh{ baxur`2^?aRD}}Ter6(^D(q^j%B@qSyg_j^6 delta 735 zcmcbjdR3J#z?+#xgn@~HgJJy))tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEk98gvx2Nwre-Q<1&TSOFJ5isWj=>`YhWD!AAh#Fr(DXSo628Q^e)SO~{JrEh- z&B(;SfJiE;WiAho0fTxoD+2>BFt|Yg$OVF=$qNN#Am$ttlwt~Io1DicGx?_=PYlSW zo{v(M_kpUSfr|OT>S6ja*cliqa`emdi?WmQ^Rq#5hHmMFo(@Ry diff --git a/PSCADA/SG-A通讯管理模版/database/dict_unit_info.xlsx b/PSCADA/SG管理机模版/database/dict_unit_info.xlsx similarity index 65% rename from PSCADA/SG-A通讯管理模版/database/dict_unit_info.xlsx rename to PSCADA/SG管理机模版/database/dict_unit_info.xlsx index 6cba48e4ca9f22fc85d3e041219d04bb0ca37c52..1cc4c7bdca5a731ac12f6cc3be536c627cd1913e 100644 GIT binary patch delta 742 zcmX@4a8Q9Sz?+#xgn@~HgW*k#V$VjtW=0MWqq1?s?8!43wd;>?DNWk;;DMUO3!U@d zZn9lo^2Bz_-|ELoFDfjjA2$4IV)5~ahuM#ybw#?Yztpx|D_^>24*$(CuA~pTJ05JD zVmxWh>ZgZH6d!4}2`WdcOf;G2bJzjfYmmT9=$GgoS1r9=Cw3ssBR zQZgDHYjbY?xO(!Gg@WC(zWUuq%k0C?-BWX)%zHh2OOMlY*L~OA{@(5R^>)=gRJVu! zJIZ;4fq}u6k%2(~NT=i{2NdNO6zeAz6zEmt=FFXN(2LnnpzVFr`wdU-`L0n2+N9Z3 z@hzZw>Wnkn8sGSw=qdgEZP~Q2^K$9?=J)?RzV5kZIeYzzIUMYz*QKvAvUPEmH&@-> zqazo3{E^`=AC6`#rqx?_@7=h5Dp!c-f!JUL{w)2Vu&Cl2ho9`smyniR=@)k^qI}jd zL)MCAA1oQW;-o$=NEAE3Q5d++snl#8->3M@B?Y_sx6e+_v`e4wbyBk;Q#aO6zWABt z#oyt+Okw|9mp}O?_lGb2S89EJ-H+7Nulf1kc~SkmIf0pnkp&cCn+sUpLRpDyf>2f& zJ3Exs$Wg%xRyX-CuPq{mo%qZ-LAt?VH@S(=6ryG~pOjS~GXq0>QEE=Hz8;7S@MdIU zU_hi4)iRfd$ABTdnU#To7Z}+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEk>`+z%M+GZb-Q+*KwumTp`YhKA8TD$rJhIlb5e#cz?+#xgn@~HgW*k#V$VjtW=0MWqq1?s?8!43wd;>?DNWk;;DMUO3!U@d zZn9lo^2Bz_-|ELoFDfjjA2$4IV)5~ahuM#ybw#?Yztpx|D_^>24*$(CuA~pTJ05JD zVmxWh>ZgZH6d!4}2`WdcOf;G2bJzjfYmmT9=$GgoS1r9=Cw3ssBR zQZgDHYjbY?xO(!Gg@WC(zWUuq%k0C?-BWX)%zHh2OOMlY*L~OA{@(5R^>)=gRJVu! zJIZ;4fq}u6k%2(~NT=i{2NdNO6zeAz6zEmt=FFXN(2LnnpzVFr`wdU-`L0n2+N9Z3 z@hzZw>Wnkn8sGSw=qdgEZP~Q2^K$9?=J)?RzV5kZIeYzzIUMYz*QKvAvUPEmH&@-> zqazo3{E^`=AC6`#rqx?_@7=h5Dp!c-f!JUL{w)2Vu&Cl2ho9`smyniR=@)k^qI}jd zL)MCAA1oQW;-o$=NEAE3Q5d++snl#8->3M@B?Y_sx6e+_v`e4wbyBk;Q#aO6zWABt z#oyt+Okw|9mp}O?_lGb2S89EJ-H+7Nulf1kc~SkmIf0pnkp&cCn+sUpLRpDyf>2f& zJ3Exs$kD(IRyUcI#}*O8UOeWUAl=}wo7}}?Di7j$WeNU#4h%sbCI$v>APoY*Km~%p z$@h4qAm;qxk+Mx>VPL4p(JwBk%tis4BTx?_J=I=T^S=w!X9g6N0-FFcDTr-y xKAX(sd|n=iarL}XjOmkS@ybECdw8XoiZ~|sbBIlT$E(FCHCd8Ro9zqOF#y!L63GAn delta 691 zcmX>pb4rFUz?+#xgn@~HgJJ1R)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEk>`+z%M*}lh-DDOXTSOFl@|bgibb|wLawm_eJc#F&CHV6>FbI8^7#O&LGzb7g z6$pYR-{p~lnDd)Q$|i}0fuSNtzqq6_C$$(9$N}DrKs|^AReM>@|1MCU8BkOTYy!-r v;K_l!nh=xfc%>LKCeP%RgK&5AN--64Ozz_loBWnni&1*A1fMqBSFk$(*!mYy diff --git a/PSCADA/SG管理机模版/database/digital.xlsx b/PSCADA/SG管理机模版/database/digital.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..2535792a3ebb87e7dac1b917492954001b54e76b GIT binary patch literal 20683 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 literal 0 HcmV?d00001 diff --git a/PSCADA/SG-A通讯管理模版/database/digital_control.xlsx b/PSCADA/SG管理机模版/database/digital_control.xlsx similarity index 59% rename from PSCADA/SG-A通讯管理模版/database/digital_control.xlsx rename to PSCADA/SG管理机模版/database/digital_control.xlsx index e77833ee052647e619bfa8364457e11e330730c2..b49667f4a9767fa271d7b3708b0c33b84bad833b 100644 GIT binary patch delta 771 zcmZpbX_4Uz@MdNaVPIn5U`UQp?AgfI%*X*^R5osyJ$WXhcKs19rAgZ!JW#WEp>zJ* zO}5KRp4e{rTm4w+MTO<`!-ii?EIuCbF#8d-u1J^lm)e$V;lCNimGnV($AgVi zj3=#G{q&HD;v>yALFH(bi6-;BZW{MnFJ1Ankl~c@x6V7xG7Xn|=1MKBbZB37p=vQ( zN=Bn&ZO+XfS5Ka@P_SFpSHJscnSJ=Vdur~Jd9R0W>2Z4Qy6>9X-@84(-mbcb>h|z| zM>&r$FfiCMGB5}L>6HBBfTH|@V*SK|0=3p$ zz6DfIopEMc;~Sq7J*B_DEt?j0UM_v#{QjTE*FD!PXRlu|hl9QJy7W~>wl2={=BnF! zbmT&hKQjE~!_jQTw0i6Ay&Kn0c;xX7eBMS z_&eN}DeQmi@+aTq{_v&$O0CbY`;nUZH9!A5FRGt6CouCcvVbCNa{LwrHwnfA+D~~xRNH;j_CcE;OLe$jpNYw{2Gcd##rREgt>w(AsZ$>5t z21H6xEpvHz3>eazSs563fuRioKrRp@vM?}Ig9091Ywcw<|GPkiWvOK>iJ1IXu8=J`&dNy#E0ZnWKVi6RR ai#R6tbBIk|$*aXEHTep!Hrsk`kURibein!T delta 735 zcmZpXX_es%@MdNaVPIn5V3;yPHD)7UGb0Cx@$yUSk;yX|wd=3&1*!NRJm_0+A#&c^ z&AiJzPgZCA{(j8$!p9=L_QkU+OCEJj%=xhO&XZP=7q>4&-oO5-$S!57$dL!u1qYLL z#Z_+3`0BM?@sVa5r*gE)M3Z@0mInUTOIOGiu$&V9)_KQSrtxym-dPK39r{=4bgh+| zxR9Cc>&Dc};p)9*4mCcq_2u1n>kQA`OLO1Mdp&$h&!Q8j_pI6SYj@_?+o|_Z-G1Qe zr&C867#M6B85jhBbV`15Kv8}{v3_DffnG&!&fE#M+02GKZQmXK9e!y0{57v4%Y5gB zCGRGr>8@Mr&0}{mBCG1>_fn}}hUru0O=sV0w7b&lY`r9x`yof$EpxLNY+E~yJMMiq zKV16i1`8fN!9xr54rHZI=l&d|;XIM!P6+F#1%67Et4)6k`}E!J+Bj+AsV7VNp03E0 zS=_GvNnUuti+!)JNu@FJ2!#C%Uy*n0ZRESDY@e?G{;^^IlUJLc89o=;JNee7Wk2lH z=PB>4ou-lSrM|*fPCoDbhS=NN|2~`je@)N7*SY%{P(8glo|%V{1r%eO^I6_PSqW@{ zP*y2BJCxPHVa*IyH+es|Eh36pc+5FLy1{`r*@edxqNbKd$|{JNfg!#qHK$l#4@3rd zGcqwSAd-q|najgtz@XmD%D})23~mqra)BUe@Qv zb!?0DJ)o*6pkjWodYHZpb_Rxu9R2eAqU@yn{A^I1p<8;PX9IT`P*Woii=b#Oo;;D) Qkx_c`WnOKz4cs6p0L&R2O8@`> diff --git a/PSCADA/SG管理机模版/database/digital_map_to_fes.xlsx b/PSCADA/SG管理机模版/database/digital_map_to_fes.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..00cecec29b906d2fada286b17eebe739aead2f82 GIT binary patch literal 8426 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 literal 0 HcmV?d00001 diff --git a/PSCADA/SG管理机模版/database/digital_temp_define.xlsx b/PSCADA/SG管理机模版/database/digital_temp_define.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..ce99274cb65ca6940c18f747026612a18123f5c3 GIT binary patch literal 33977 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 S0)v#1nF{``#!pZfe)NAenlFI> literal 0 HcmV?d00001 diff --git a/PSCADA/SG-A通讯管理模版/database/duty_define.xlsx b/PSCADA/SG管理机模版/database/duty_define.xlsx similarity index 56% rename from PSCADA/SG-A通讯管理模版/database/duty_define.xlsx rename to PSCADA/SG管理机模版/database/duty_define.xlsx index 7977c16661fe3cf1864d9ecadea6a91b9cf7a1ae..46e1ea568c895825e8775c9efd112a39f712f151 100644 GIT binary patch delta 766 zcmew=^+k#=z?+#xgn@~HgCRLav1cP+Gb0CxQQ5d*_T-t2+Vw}clqPL^@IcMth0ghJ zH`y*Pd1AZeZ}nrP7ZsM%4;y|pvG{nz!|X@Ux*}cHUus*fl`q{hhyP|6SJDUF9S=56 zF`l$$_0vNpijOqg1eK#zCYsFix@p{Ry>!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? zofXQe=UB@GRyWyz+ZGYSrQGJ6Al=}wo4l3V6r$!Gw^V%~GXq0>QEE=Hz8;7S@MdIU zU_hi4)iRfd$ABTdnU#To7Z}5z?+#xgn@~HgJJ3n)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEktWZ`R$66+^y2<+7wumS$;Wp<4=>`YhS6ja*cliqa`emdi?WmQ^Rq#5hHmMFo(kbx?{gz?+#xgn@~HgCRLav1cP+Gb0CxQQ5d*_T-t2+Vw}clqPL^@IcMth0ghJ zH`y*Pd1AZeZ}nrP7ZsM%4;y|pvG{nz!|X@Ux*}cHUus*fl`q{hhyP|6SJDUF9S=56 zF`l$$_0vNpijOqg1eK#zCYsFix@p{Ry>!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? zof*oi<)~o-tDF3n%N7yCPTc04Al=}wo7}{03Q@D0TgobsnSmj`C^e^8Uk^kEcr!9F zFd$NjYMIN!W5AH!%*w#P3k+=#0CIsKaWX%T48$CL9x0|Ew#oTyG8yRl%dZ|?bqlCE z1gME0tPiF?ot=T9B1gYGzbHE?KR+83b?BNe^lacR18QmnVi6S0d6UocI5LV&7Ub1t Jd&32i0sy0@4{rbf delta 718 zcmX>obx4XYz?+#xgn@~HgJJ3n)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEk%urShM-3BL-Q+)9wumTp`Yh!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? zoej!r;LuQH8HhRexTTna*e2(*$!MeN-~Fd2`z}y* yI8YNmSRYJ(`ea8QIeCz)F7#~RE(6Ln0+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEkY*1D`hXxZ^-Q?9=wumVHz-7(}(hUy0$p+k}5g?vdmf+9lz##NtVqo9~(jWi~ zRUimrW?+afO3f+O*8`CO-i$yci1edc=JN0uP~~P;1_oZR2AIaA$$PnFAP%_8EyWbf zHaU+?MjKuK?ms=*cY*rCfoAZd=+Bt!z#}IQa@>WU4cuiwxkexsK~YmQxt7O~QEKvj L9&NTcTp%d`#Y`FL diff --git a/PSCADA/ECMS电厂行业模版/database/event_task_link.xlsx b/PSCADA/SG管理机模版/database/event_task_link.xlsx similarity index 56% rename from PSCADA/ECMS电厂行业模版/database/event_task_link.xlsx rename to PSCADA/SG管理机模版/database/event_task_link.xlsx index 5d178077540051bc02b22455e297ac3d55ad696a..0fde3c9fdb26d523c1fbeb73d6d69f59276744dc 100644 GIT binary patch delta 672 zcmeB{>XPCM@MdNaVPIn5U`UQp?AgfI%*X*^R5osyJ$WXhcKs19rAgZ!JW#WEp>zJ* zO}5KRp4e{rTm4w+MTO<`!-ii?EIuCbF#8d-u1J^lm)e$V;lCNimGnV($AgVi zj3=#G{q&HD;v>yALFH(bi6-;BZW{MnFJ1Ankl~c@x6V7xG7Xn|=1MKBbZB37p=vQ( zN=Bn&ZO+XfS5Ka@P_SFpSHJscnSJ=Vdur~Jd9R0W>2Z4Qy6>9X-@84(-mbcb>h|z| zM>&r$FfiCMGB5}L>6HBBfTH|@V*SK|0=3p$ zz6DfIopEMc;~Sq7J*B_DEt?j0UM_v#{QjTE*FD!PXRlu|hl9QJy7W~>wl2={=BnF! zbmT&hKQjE~!_jQTw0i6Ay&Kn0c;xX7eBMS z_&eN}DeQmi@+aTq{_v&$O0CbY`;nUZH9!A5FRGt6CouCcvVbCNa{LwrKvPHx&H@7(_NH;j_CVO+6%7b`bS%N>G14Gb9GUqs_LJ3uFWUM1%wR delta 696 zcmeB@>XzaQ@MdNaVPIn5V3;*iHD)7UGb0Cx@$yUSk;yX|wd=3&1*!NRJm_0+A#&c^ z&AiJzPgZCA{(j8$!p9=L_QkU+OCEJj%=xhO&XZP=7q>4&-oO5-$S!57$dL!u1qYLL z#Z_+3`0BM?@sVa5r*gE)M3Z@0mInUTOIOGiu$&V9)_KQSrtxym-dPK39r{=4bgh+| zxR9Cc>&Dc};p)9*4mCcq_2u1n>kQA`OLO1Mdp&$h&!Q8j_pI6SYj@_?+o|_Z-G1Qe zr&C867#M6B85jhBbV`15Kv8}{v3_DffnG&!&fE#M+02GKZQmXK9e!y0{57v4%Y5gB zCGRGr>8@Mr&0}{mBCG1>_fn}}hUru0O=sV0w7b&lY`r9x`yof$EpxLNY+E~yJMMiq zKV16i1`8fN!9xr54rHZI=l&d|;XIM!P6+F#1%67Et4)6k`}E!J+Bj+AsV7VNp03E0 zS=_GvNnUuti+!)JNu@FJ2!#C%Uy*n0ZRESDY@e?G{;^^IlUJLc89o=;JNee7Wk2lH z=PB>4ou-lSrM|*fPCoDbhS=NN|2~`je@)N7*SY%{P(8glo|%V{1r%eO^I6_PSqW@{ zP*y2B2b9&w;lKn|H~A=+Eh37!xXn31y1{`r*^Ap$9>nv?68!lb7=%7d3=G^r8U%o$ z3Isuu=W$Cx%-O>&Wt+spz)+E+UtCg|lUfW4iby$ioz?+#xgn@~HgCRLav1cP+Gb0CxQQ5d*_T-t2+Vw}clqPL^@IcMth0ghJ zH`y*Pd1AZeZ}nrP7ZsM%4;y|pvG{nz!|X@Ux*}cHUus*fl`q{hhyP|6SJDUF9S=56 zF`l$$_0vNpijOqg1eK#zCYsFix@p{Ry>!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? z9VXkxQOX2XH~Bx8Eh2_pxXn31y1`*LxrN&lqGm6*lvN-z14DdKYEH4f9*7L^W@KVu zK%^AaGM9(PfFZq^m4Sg57}_8Jsbwr9Uz?+#xgn@~HgJIT8)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEkFxgg)QYNsv$^W=)5mD^SZO#eO4Gz4?&D^FCHG89S3=F)$;06I87YLFj3-HK5%rW4RVhU!PoW~|JIfI8M24oWt z^E|`HKvfAq#r$CPFnt;93=9=H`sMjW*-82N*`PQ>xAa2K2JSMTrbZwZLD5_>`2vq4 UlLF^tYfh=jy1W8x@3}zo03QP!wg3PC diff --git a/PSCADA/ECMS电厂行业模版/database/fault_recall_record.xlsx b/PSCADA/SG管理机模版/database/fault_recall_record.xlsx similarity index 57% rename from PSCADA/ECMS电厂行业模版/database/fault_recall_record.xlsx rename to PSCADA/SG管理机模版/database/fault_recall_record.xlsx index 315cb6e92b6035a7d947beffe77054da20264561..22ad1b14182f18e6b22c8269814a013e5194af4c 100644 GIT binary patch delta 695 zcmdlbwNr{Oz?+#xgn@~HgCRLav1cP+Gb0CxQQ5d*_T-t2+Vw}clqPL^@IcMth0ghJ zH`y*Pd1AZeZ}nrP7ZsM%4;y|pvG{nz!|X@Ux*}cHUus*fl`q{hhyP|6SJDUF9S=56 zF`l$$_0vNpijOqg1eK#zCYsFix@p{Ry>!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? zofFDx=E!3LtDF3l%N7yCR@~;CAl=}wn_R_hDi7j$WeNU#4h%sbCI$v>APoY*Km~%p z$>+GGAm+T`mais4BTx?_J=I=T^S=w!X9g6N0-FFcDTr-y yKAX(scpe^zarrz_jOmlRc;q15H9S&GB^;9{a)?d7$D_q4GntcDo9zh~$Or(5o(ewz delta 691 zcmdlfwM&XGz?+#xgn@~HgJIT8)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEkoKRL1M;;Sc-Q+J^wumUU`Yh?DNWk;;DMUO3!U@d zZn9lo^2Bz_-|ELoFDfjjA2$4IV)5~ahuM#ybw#?Yztpx|D_^>24*$(CuA~pTJ05JD zVmxWh>ZgZH6d!4}2`WdcOf;G2bJzjfYmmT9=$GgoS1r9=Cw3ssBR zQZgDHYjbY?xO(!Gg@WC(zWUuq%k0C?-BWX)%zHh2OOMlY*L~OA{@(5R^>)=gRJVu! zJIZ;4fq}u6k%2(~NT=i{2NdNO6zeAz6zEmt=FFXN(2LnnpzVFr`wdU-`L0n2+N9Z3 z@hzZw>Wnkn8sGSw=qdgEZP~Q2^K$9?=J)?RzV5kZIeYzzIUMYz*QKvAvUPEmH&@-> zqazo3{E^`=AC6`#rqx?_@7=h5Dp!c-f!JUL{w)2Vu&Cl2ho9`smyniR=@)k^qI}jd zL)MCAA1oQW;-o$=NEAE3Q5d++snl#8->3M@B?Y_sx6e+_v`e4wbyBk;Q#aO6zWABt z#oyt+Okw|9mp}O?_lGb2S89EJ-H+7Nulf1kc~SkmIf0pnkp&cCn+sUpLRpDyf>2f& zJ1dk`&#_qwtZuTIvMnNptCh_;LAt?VH+i?RsXU11l_mJ|IWPo$m>3wifiwsJ0~H7Y zC-bX7&CyknVoaRup(3LI(o%a_&HpY?ff-PX6j&)tOAy=Sd^VZM3siU@_HO{{OP_pN bMGnG!3*;6|=1_HHl$h+Ls?DaV4AKn%UvCWU delta 691 zcmez6_1lXtz?+#xgn@~HgJHuA)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEktWZ`R$7U(8y2+->wumUMQa0xV=>`YhCwHOr00p5&2J%|KVds)r@E>NEtP*e(R0?edf uw#j*HGLz@4@IaikUPX#AWAZ5#ISBU+kXtyJUDc6Ma?DNWk;;DMUO3!U@d zZn9lo^2Bz_-|ELoFDfjjA2$4IV)5~ahuM#ybw#?Yztpx|D_^>24*$(CuA~pTJ05JD zVmxWh>ZgZH6d!4}2`WdcOf;G2bJzjfYmmT9=$GgoS1r9=Cw3ssBR zQZgDHYjbY?xO(!Gg@WC(zWUuq%k0C?-BWX)%zHh2OOMlY*L~OA{@(5R^>)=gRJVu! zJIZ;4fq}u6k%2(~NT=i{2NdNO6zeAz6zEmt=FFXN(2LnnpzVFr`wdU-`L0n2+N9Z3 z@hzZw>Wnkn8sGSw=qdgEZP~Q2^K$9?=J)?RzV5kZIeYzzIUMYz*QKvAvUPEmH&@-> zqazo3{E^`=AC6`#rqx?_@7=h5Dp!c-f!JUL{w)2Vu&Cl2ho9`smyniR=@)k^qI}jd zL)MCAA1oQW;-o$=NEAE3Q5d++snl#8->3M@B?Y_sx6e+_v`e4wbyBk;Q#aO6zWABt z#oyt+Okw|9mp}O?_lGb2S89EJ-H+7Nulf1kc~SkmIf0pnkp&cCn+sUpLRpDyf>2f& zJ2RA3%fZDARyVnu+ZGYS7r4ziLAt?VH(7wkGy=r)$`btf92kN=ObiU%KpF&qfeHkH z%nS_iMX5Q(`g$NTz?%`M1d)7H%Um8F1FGE2%D})2)&SF(IC(CQ48#F@d8C+v*e2(* z$!MeN*NME6bPK321ZW07ivIM;3cPaiAje(k*}z=}lxqZH5fn9flVf=u8O0{g=hbGb H0=pXkveL+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEk%urSh2NyF~-Q+HATSOF}=QigA=>`YhWPTn~TM*AHOYrA&U=aE+F)(lgX%GO0 zDi8!QGcd##rREgt>w(AsZ$_XJMEaTB$Rov=G48*QIJW@=-Y?JfYWVF$h>O@{i rx&<^b1ZXfn*ld^`8I$FC0$E(d&4R#Fx4WksQ diff --git a/PSCADA/SG-A通讯管理模版/database/fbd_template.xlsx b/PSCADA/SG管理机模版/database/fbd_template.xlsx similarity index 55% rename from PSCADA/SG-A通讯管理模版/database/fbd_template.xlsx rename to PSCADA/SG管理机模版/database/fbd_template.xlsx index 9431252cb8c55ff46e174f10ac97cd3e71700e68..8e36b47211165a4f00dcac32671e3d72fd1293b5 100644 GIT binary patch delta 738 zcmew$`CgJQz?+#xgn@~HgW*k#V$VjtW=0MWqq1?s?8!43wd;>?DNWk;;DMUO3!U@d zZn9lo^2Bz_-|ELoFDfjjA2$4IV)5~ahuM#ybw#?Yztpx|D_^>24*$(CuA~pTJ05JD zVmxWh>ZgZH6d!4}2`WdcOf;G2bJzjfYmmT9=$GgoS1r9=Cw3ssBR zQZgDHYjbY?xO(!Gg@WC(zWUuq%k0C?-BWX)%zHh2OOMlY*L~OA{@(5R^>)=gRJVu! zJIZ;4fq}u6k%2(~NT=i{2NdNO6zeAz6zEmt=FFXN(2LnnpzVFr`wdU-`L0n2+N9Z3 z@hzZw>Wnkn8sGSw=qdgEZP~Q2^K$9?=J)?RzV5kZIeYzzIUMYz*QKvAvUPEmH&@-> zqazo3{E^`=AC6`#rqx?_@7=h5Dp!c-f!JUL{w)2Vu&Cl2ho9`smyniR=@)k^qI}jd zL)MCAA1oQW;-o$=NEAE3Q5d++snl#8->3M@B?Y_sx6e+_v`e4wbyBk;Q#aO6zWABt z#oyt+Okw|9mp}O?_lGb2S89EJ-H+7Nulf1kc~SkmIf0pnkp&cCn+sUpLRpDyf>2f& zJ1dk`&!NEtRyTPymn|ZOKX93If^>t!Zn6QlX#|Mpl_mJ|IWPo$m>3wifiwsJ0~H7Y znHd=3i&Arn_4PnxfHxyh2_pHZmbpAU22{D3m4Sg5tO2Gmaq?bn8HfY!a!WA`0RR91 delta 697 zcmaDa`9YE|z?+#xgn@~HgJHuA)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEktWZ`RhXxZ^-Q-nVwumTx&t=XD(hUy0$@<);wjiEYmf+9lz##NtVqo9~(jWi~ zRUimrW?+afO3f+O*8`CO-i$yci1aggA-5D`(&RndG7!7&a7!@-vrW!plhH<3%ICi) s`3}&;aG=5bV6$O%WK6c_k%Q<@$S65^ACETMY%Y*W04xj^CIA2c diff --git a/PSCADA/SG管理机模版/database/fes_accuml.xlsx b/PSCADA/SG管理机模版/database/fes_accuml.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..1a9bf9cd05f12b21dc8bd991c0f044cb02004518 GIT binary patch literal 10388 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 CCjh4a literal 0 HcmV?d00001 diff --git a/PSCADA/SG管理机模版/database/fes_analog.xlsx b/PSCADA/SG管理机模版/database/fes_analog.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..0aea8ff1edac23610bd12d82ad1eb4e01b8e9775 GIT binary patch literal 34809 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 delta 670 zcmca1b5n*dz?+#xgn@~HgJJ3n)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEk98gvxM;|j--DF`NTSOE`@R)Ogbb|wL@(dnRh?7*0#U+(Fsl}l14De=TVqid|o!ZN4{&#`lZUz*U0@5G=j0zwKo}9p|2{EacSBf!X k@(Nx#2=^4P6jKSuQgd!!4q|}gBa)Jn`G)OlB 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 Q0E~Z2;|pYY%D@o(AN7H>*#H0l literal 0 HcmV?d00001 diff --git a/PSCADA/ECMS电厂行业模版/database/fes_const.xlsx b/PSCADA/SG管理机模版/database/fes_const.xlsx similarity index 61% rename from PSCADA/ECMS电厂行业模版/database/fes_const.xlsx rename to PSCADA/SG管理机模版/database/fes_const.xlsx index 323369a455818414926f25585b3ad54d449b6777..c27ef33487af15dcaeeae7a5b89ee11f1d0b1a8f 100644 GIT binary patch delta 742 zcmca4dr_7zz?+#xgn@~HgCRLav1cP+Gb0CxQQ5d*_T-t2+Vw}clqPL^@IcMth0ghJ zH`y*Pd1AZeZ}nrP7ZsM%4;y|pvG{nz!|X@Ux*}cHUus*fl`q{hhyP|6SJDUF9S=56 zF`l$$_0vNpijOqg1eK#zCYsFix@p{Ry>!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? zoe9dS;oxNftDD@*V~dF4OFZVBAl=}wn=Hg@3Q^+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEkOi)%e2QLd)-Q*q~TSOFJ`YhWIBFt|Yg$OVF=$@6$+Am;4jm0}8Jo1Dicqm8aVvhDTy zn?TheKu!E$eK7qQlNI^o^GAj+z?+#xgn@~HgCRLav1cP+Gb0CxQQ5d*_T-t2+Vw}clqPL^@IcMth0ghJ zH`y*Pd1AZeZ}nrP7ZsM%4;y|pvG{nz!|X@Ux*}cHUus*fl`q{hhyP|6SJDUF9S=56 zF`l$$_0vNpijOqg1eK#zCYsFix@p{Ry>!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? zogK<*{l2hsl?sK1C~azBUIWJNwLMybg@eA;a4JRs!&TQdUn delta 681 zcmew(^H+v1z?+#xgn@~HgJJ3n)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEk>`+z%$7W`*y2<7|wumUM;W6g~=>`Yh2z5Sy&Pr^P5e*_%(BO@jwy6aZa;5ZV9$ diff --git a/PSCADA/SG管理机模版/database/fes_data_block.xlsx b/PSCADA/SG管理机模版/database/fes_data_block.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..d454654f5567eaea4d0e44acbc8490284fe1ddaf GIT binary patch literal 8731 zcmai32RzjO|37DM!b!t8va&~Jvd)T2$jnFxU!0xG$cjX^tRo~6awIa&R(4cGviFLd zdDj1P`Zj)k|NrBUbKK|sdcNPU=kxV^eeQ8D-K&H|j36+G40QV@M-+b&W1JxY2m~eu zffzs_keLd?#naZs)6xLxYU^PxDv-{!l8{Y3rA7K# z@7sUMB_bxBoQ_y4hkHY}9=wo-6|Za~oz+>Qp1iT8d}v?WiL~61CN%PK{w6VpNXTD) zBCg%xV2cSsm4J5beUPFlMPT-4j^Q#TdK7o{tgkB->+XP}q0eL9Xl=0Mi@mVU%VRI` z#hf+qNp5&9AbG}5+9y!2+u1tiDh}g)su6l;d#NQX$%83a@_`m(GG+dK-7;z=UEB1K zByt}Z`OWVaB;uL_bw(&3bDyDhDzd(3C~4ci{VtvHyxcc+Q`6mrspaOqRB4yHwB5;+TTgLMBx24oOAy#Szp0(j5^4;#d7U3Y}5hwyELyDeS>^XO8FCJ{#1-NyT5L&Gf; z(D;h+ac=2(fe%|lB%gApFP9(qPC@5=WRjajHzlNhv}jz~(R<}CNQ~nyAGrIx7DYQ` zNMXGu_;$QBQ9Qn=aHdIuW0Eh7p3{sgP9jrlNIXXF`HKZNPzS?S#5a|5fuEu>&SWDM z!(aB^dq!eoAEe~(G_=#--XYDdkQZIk>V3tiXOvq#f%=P4d6e=TtZqQ*Oo*vaHV%IC<3-;O4^-W6Yst8)v zZj18T+sb=l_<{9K-P4%e_pj#o?vlPhk&$|RIonS_@`(Iy$i3lO0oEJuCq;4EWFfNP z!Z$UT(vlPYR2vKeQ3B7F?zT=I!b14p#qq;GlO-PG=<=5urhtBQ zLTF{*g)R|BwJ!&abcfo!9Ilii%b|Quc26e!XzFaric6;2rkd#HGIdepDMn=HtL@^T zWE}b)D2WKu9Cw*TT0hv_%lEZ^9{q)Iy)WUpVy!%c85%yHWrw185!-p-2xa6xA5|l{w@71TmT)XWLo~m^|Mx-J?ubvAxnw{u` z2?u21PE_^{GTH+H)IUuCcW*gS)eVtEvi*KKqu>FWQNvT@J=}Sa(MjGTjL* zUSa(1c<52HyA~&Y?UY=BpmI0u_^uB2(0pbgYr+M@4$;ag*;SMXfHYMSo?a+fCOZwq zc&X{Rj=*>Nf|mWX#Y__m`%O<5#7f;j#L54&!dfspLvPQ2)WZ6lrq=ML1d|rw(2--G znV`R_uS24OO>IkaKx zH)HIC5;F4QO;>tBr_L7XU*q81xPpKA$JQbm^^m(V1b%BU@YC&HC>{%L3taKn;=( z2uqWuQPTJNBu{~~nXPxmlK!Uw{6BGD8v%sA1Q_7VPr-kB;4Z@bA8Q2SAH48C{Sfy- zt3{FO9bkTuX_tI+B~|ZgX8Ns{n*?F0<@yyFEb%+}h}DNL%#B-`GnG%R@6~Y)kL<}8 z7;&-cOY|B@@zB@wekHyfeCitd` zc94^ImucG)^qZW~rShA(F%hUBSTB>mZzlSVM zbALbcCZbTBVv{gJeLS@GE6{&4sAi`t9In)2@%!~T}Lt&P5?yMxP}n?n1O(DxCIFrO zc}~1!9`?4jo*u%-Pol>?EW;9UR=uosOxU$PBzxO<`BmEepebU(_D2H$EN8HMNW((s zWwiuao`5yemjm{$K2kAzD08QWkuo6bc2%$W$c>Tk4uXLBJ4ZVo=B`~ktgXe=R9783 z2+L=zT&}7;bj5b|Zz8U&VE(ZGbD&PlaE-+8z+!_v!3%!!DH=u?f*46!!P9Gn)tZ;)gr0F>iNnj``Q( zrd(EcU(-rG{my#mx4!H6rU1k9RQM3PHdg;Cpz3JnQ|7yTlN2W3Ye4Mx!&z+oz|onl zEw;yx4qoio8XSsfOzS7f*xx%K8zyU*pO=E6#F>^n%}IzPR>E8U9;eO~})mPpv!nkDW`_)m~KjhDzR}Uzgo+Yv3!#!c2_Om#42@2`}vp&m>QT zycG_?-q=`l*__#&8ewB*dtw>gxmsD%IebMpIcRULdw-`E_4NGZ;d;xw`f9Uc0_|;U zn`-8gv2&=*r|057osZJ4L^+S5YWa3qXw~hC#xT+)%w8UzYH%M3v0MGMa+Z)d)XD`> zv)wS%vX4z!@@hv2Hbg4i$>Tn2p}BZT&s=yolgwCqn_oEAF5nRNf-B#*ReRgrBIA69 zRAl9H-nI9#?i=g-R&Hx)8LOLZemtAIN?sC(=$<91Wz-!`kGc#aEHv?)-H3oU`6N;TS2N z@}2s#7=FZDp2lOn zy8OKKOV>r7CNPxYMDB|UJyM_9Zykeq-`^dk-Mpw9S`TiGD|xe4uJ9_eF5^M}TzF+f z*L|{Ub0zhM2S*Acemj>1Mvwe!?$RDjVQ_EklO{jRy}q+|KY&5b_L{h6|2015=y$h?usA+Wu*y^BW zJGG89OUldgUMOX!)s2Z;6Ri4a^?$#|IV2n!Ctuk9PI%i_x0ZOMrYGMMTeV5mWx0RA z-M7xKYtag`n3}XQwy-rOq)}YfwMQ};A(_}qz|%}oawhNN{R(ThV1u$t1x_1YH4VYJ zci0Un1ksb6Xlo|pd(V?3Vbm1;ZA3wvd^awRX<9vCGWNubg-i<0k9tjVp{*gtr4&WV zK{uF#l3It*4U5ekQ-(n|*wI>)Mb#8VVEms;#%1Q@*Kipwg3X0>s%G~$FZXvdjR}=n zRRLS^3zjZ&mO3W=-fEsG0@$i>Ow&3k$=I{;->nw8N*$jVztM66U%14P&SLb`i*V|h zomvxABM=q~iqNr-c;jSkY~7d^&A?ttUPjiCTcWru5dBY;~Ct5OMIzQpU{ve z1R>xZ4gPMPEKBa>2pRm$k7i*U?1EWk!(s^{*$Khvec<#e3IPC`gy>QTL@7)ln978R zrGiY1y_DV1uDr!g;Z(ZGg(ts`J#Aln4aCbaDdrNWq&k zZ$Rs&Af#X*OqV?}OA(?JBnXb(play|h72~TTTvD^e7sm(#OJ8{A}@s&MEy$l#eLX*tl;6Sik<80i{VYnvXmB{hW!i zYv9EH+^u^lAu8%oN~256>_;n?kL#YBZ5FxzXNm)TPuIOw*OxnxPkhR#` zZOZc@gt)Ul2XCB+<`Ji#4BlqkucDSRPqPynFaPFgp$QG4X*0)pVK97#)Vj7Du zL0?9#21WzRrL_C-uhdxRoBD=CmIU&@9rqoS=|?C?v4!nMB3vLPn9~H5eK6l_3>~Pz zGcY(j=zW9sS%R-;`uP-1b$cfu87 zJO$UQ(nN@FM&hjJlwz@g?4=F* z)_IRXn@qWNWQ3+64$$1qz^xw8{X&Qso^To1|$Up-5X|iCLlI&P4O8m8onC z!jo;d@mOqD8&Y>#p4Xd|QHJ&*7p1%w1Z7-i71sV|ACT?wK6&L^FM)ls#Ez5b2+p`j zX@?fDDih!m`Wl%LP9#H1CPXQ3Zuga}ca+FM7~G{Cj0z``r6u=dji;aEP^#aB_6n@! znz$-=2d7F-F`K0(e136LC#5M}hN);|H|OJG`i?a1LzyYxL1N)Wfx*((ROHI9amL5V-8s%1MeSc0rZvTs= zJcS-Y<&Qh8-i?%6l-~S;DW&CsRpkv(k%h(AE;hIq1$Qhg*q5 z-Ul!rQ?_&NtYXvnYi($3EXN!HfnyNQ=U|2$NLSRE`oRuVuG)-a6C=F4z-p!EOX9$2 z*L$R5(V4MkA)h|S#^^#~@e+s#8sg5p(%PdE4d_rr%xVhgV2_9{XLkFCL%m0ZCL{cu zEbZ($KOWmzRT? zyCBOFW+GEg1X!nR*Xx$c@{B+N8fN3Emw*It5DkC&feIFxX?ez8BySd0HwqxwMWs<} z&Ckpg{4F@u^^Xk7RmU>C{D?Ed%iwt|!+_x6txBuB5h(Bz*=tkyp*n8pS)N^2A+7kv zGGWdL^jb~oC9p++@f~>Om4iV0N(JeSon|V`p@_H3XdGfMal7+bpL1j$sZfqZh97a%LSW)cZ5^a(DaZ|#LWS)qYw8r?OK_1ts^ zPDNkBj~1%cFwib)qmf|lmVV?)j|$ZwQZeF#E;>qn36f!4X>T|3Tl;*p%dz$^%5fyj za|AbB8@JJs7DZ;|uU-1Os$1jcdU7Ih%5xlQ@nCgj4Hmq5=>&Ll)gcg_C?PAhwlQy(~TAC zN8#LLX73V{y|Q*DE!8_R#XC|!IiW;hNo_VJEls>9gnf>n&m}H@1ZXF?njVz%7faQe z%|;G<7hrEg(k;uAxwFzOK#(5=W#e4>w5xv?0GwmwxBzq`B_)Bp-c>J%08ou-k5GEN~iVV^RJt5K3wDWxui~^h=067K((@g%7 zqv%);VgBN}#VL9Afyb-2m@xpGcSdqjy&_Y*A|vpfibJV~(0T;=p&AhVvy{?eq%k1) zygXMgQX>l+i!Uy3pt#n{%{+5}IPc%Zg;K8hRb0m&_Xdg!Cj3?Kt3##zui|3F7gy`E zJV+Ea7Rcdmju5{%;(+z2JVJ#t%F*)u|0L-EF8N=o%A?O>`Pk;UX49HdfJ?UQj#&~1 z4Bm@u1M+wb&?I>2|D!1t=!M2oKrh^|9?8k@inJRLv>p(g6|BAc^$2bp09Kjf2=7r*n3QM#N=@9^_Q|C$!aLIL>tjnNTe#jccS$#jm01I{_gtaY z65>0c!q;OJ>?`f_@oeHtiA$Nm4$o6({r#22b{Bu(rM+?|$O^&JR={FX^WYkrsm z2K)|Ld21#yWEgz z(TO$F5aDlu&)2%rr9~0ecB8*6$f=(ql^^_u=5A7wRce(F-HR~Fy2uQl>j>-o(H3nC zdEO|Ow5EtB2N#H0nQog~e%o%CB6d8G>vRyp-?c4l(8;HUy0oC*`>Zm!f`cd4)ioaYD6z5f>*71EY{KoC!|E15y2Bu91&@BhEMAfCfv*j zZ>f@vThS0rAeyES0A=)}@T_eA{l}l-;UP|Mlc_8d++OX?W9}n>$GSFl`?R&MJR$$Yao>K zMa3Xuei7wy)mSEu-bZxyu(pRxL7BcPje0(0a1^_=sEX^p^+k{PGf9PUd~_)NM$_<4 zt$)xv#`I(%Q+Q|+9&ajm*J+d$75uYiNGVfx+apDG)EYY;I)uqlM0o+P#@iozJ?AXjO;2otW>?{|utY5WC^Smrn@VW^S?QPV^y z5KkV?AWrjVqu`$#y(|awC|D4ICwGLrCy84k&Oc-jr{g*OFyS-64|5z;7|h|;#OVeo zKn%|YbMnIVreV3gks8^|anU~X^91-T-cPoWM>2>*{sM13&Z4NCBp(kxbqxM4;(Qc? z_-UTgQ3+iDL(Fj;!r*MTre}C?>YgkTPU%;)H23IPHlSkjFdI(b+*7(}M%EYx9(j0| z&$(Z>ZyO5MIRo^-MD<60)UFRbS?n?W>^$Cz@UB3Vl_FeYk-Kg2(_KB*${VMJq3RYy z%G06h(@tgt{873Ux0PaVvYlIpx=+KV+alY5Q*a7{3EZ0q-6x6KB3NSo6cEAmuLAO5 z16XkPW0w1&JlzrvtcqiZYSWy^Z5WK?jb#p^lbN8G88!?AGwTM?bMg?cLn-EAjJ=V( zYPDn=T<0jBH0irfsUd0#|ao2 zKJc2Igk_x(0#sNe?kG5)s4vc&e>zbgg6ZqeU(Ho;DLiEn3cfk3NY9%u&wFQ>Lig5& z@o*_r57^3w-o6=llWst`0qq?W{~V%+)PiU5%1G+F|FT0LU*fSH3bih}y8eLbQZoZg zZRSjWhPM|SC*$C$XEhJwZKwp^9_S*qdMcQ*8tC~&a;6!_m3aJJ8zKWuu1Q)8gD)rm zZbQQ18PYP69)H23e!0!n^EdqD^yeM`K0&{$y+GPQWD81!q<@&8pPBI5nb;n!NUeqf zRNjCR-J=I%$XI?r>G;BfpReblWaHc&xo3Vgy=VFwGWe$VCCTvC5B#F{cT4q!_24VH zs5DKP)?8HCyiOTzBSV|DQu0>x*B=Pl^A8??udU?D#_H z(04!fS{9g73(f!-8Sq*bb6gbQwIRT3NpsVmBNFt*d478>qpAIu*YHN3JO*zC!11f{ zQxZPmyV0?c-P}7o@Zi+&Y!XiRvDf%EpnCJLT)=D48C|qNW}-fi9=tpEuaoor_8QKI z{$V2EwE||od~f_Jl(in*WP{t>9|zBi8BPxn4Y>+X(u(|?5EJr=?!$#A^uJ+S25SSuXEEAvJlzlu@c zJxz`e5E(EnyB7T45|S~nQf+sLu6=m!9=*&4be&!pe3=WcG72T@=I%KA7r68>cyiLf z_%{F?bqp>o^Tq?eiqXT}^tgg30B|@Q3CGuGBk^aemiEm?CE=Vv3snNlL+h4E#az72 z65JP6I|@?&vKhy}HZy&Iw{jfb%A3%c&+v`~Z#|cz?^81~2NSIat?R4!Pk9g5u-GHu zGj#%BzVd(1@$sKv1G9#Izy6o0{z-t76KH(oPk?aX>A&XDC&Nz;djEu50_Xf4{_oiL zWc10Q>7VH9g#R%@JsEg%y7(vX7SV}Wq)$P~0gwZ<}BE+gH%5N=+!CMb7=r?s@7s|zv3z_8^!W7MkdUbL9mAbd8I)sjGQM(1Ix zVnN@FJJsOWk1j5U{Dg_VdmE9(ijeY^O_Zw+4?68Rf+6O1eHY61Z$%0-KiBu*d1P|Y za+(~p(+NS0$f^LgZ~LJ@56j2}3Y?=aRv6R!8arImC^y;y5`=Jx&-MQ1DUvOAz~cof z0*I$9{L-6nlJdNPihiNSJ+2Ok`a47)_E$oVn_pU^Qaw4tZP6)EP9Pe}f;q?tBbrT0~7>1P~WBmIGb%(=h@;iEvz6$aFu7Pc8pXUTs_-;5; zBVhDL7*JuA*b zGb5t7AlbVyMmMv7NON#(;D5#^e%}am9;wfzA^fvF|UR4jn*e^X8${qf7hz z3#j3@!!&|i#C~TgnH{vz zwUX?)M7m<6#(C_t=HtKqAapQa4T1dOZ1!~Hgl0#YA#*Mu!Y+tJ>; z8~8NSUVg`hM~T~Sp3IB;(iCUW(s+-Y8X}{Pqw|gMpQxAQzy9VUXa`Cgp+x@pc^&a- zMJm0?l_qPL0E@GXv8ko!Xv?QsB=;$vlB+i3=DwM)K~#SDwTonNHoWV(_FPT0cdtFs z^j3Jn{N2{6(EVj10ejO))$x&Dhq#}Ul=am!o}Vwi+ch&FH$99j`n0jf?6`vnK?ZLj z5I>N}O{PCB)^ldto+nufB?kZo(r)X4aPgFpKKd?Cn)qcb)wE!D(1i(lp?(*nUY@Ve z7YcO8a@b_gJ$UH^;R0pspt_!HmWQS9RQdy{ zl*AUyB_2gsxV3k{vmiX%U(v=R(S@>Yq7>P>euGM52_jG`n(wH7_bek19xJ{+=Fz07 zlsRI88jq3G!=(kr)`E%9(%!Ix*TX01lsE>{&X#L-FNy^)eB3vWHT>?uXj51+<(mJ7+Su<@zwdj zvu=A0BWK92Tq32}!!omNuzp}Yx0w6E4G`ec%dOZ}2M2RC6DYVBE0$@wg^1qT#_p3> zx88*<2SQ~nQyvdla+f@~a2<(JxwFDw@_CN!w!~p8KaRQH^ahwyk7Df5`JI(ikXC?G ziYmMw9ok-tBC<5u+%Oe)Rc%cj4!OdmLa}Jhc(1PPi>7G0tSm=D78)g56@`-?&Wak0 z9CrTlu$ft8!MUN~s_^%BkoW>NHy4dBb><(<4$-57a__P6dB{BIR^hd#4#pdax1^J^ z@ky2|eE|EZGMJ&@*$sOd+N;j|)3hZDnsA-B!O9oi?DI|9S+0I)8Fn+-5T^__PfFpx z4&)0%pNidHYN;yBiIfDFO&5k41Szy`FMovkfE?v6ChSx`t<4zQO=5m~uu@`CJMFoe zLs%@_AeTy?_T67(IvG5T4RFVT>nqZTetd0RS#gI3ix4iv_NtR)bO{rn7#x+U$gBbL z9#El2!9O>;uG9RP06_yHhLfZ~E07X^_gBDw<$y2JS!-zdygbRaQTl@{Dx(@!lg*Q~RfJrPDYiCmZOPGO|GwKGJTbYeQeq~|4+Hm^ z$cv$+w?WL*Id##Gt&AiU{FQMr)Lih<=jkUWbh64)1etH%x-N!cqQnFi$=8KGo0CAG zaRZ{69)Tvw|Qr%ns^O^Qtc6j6xY|L>ZgqY{i(I72;zfU`#p`Ej7uhX&Vv-*HT_ZMCt#fil zLu@vL`~BwIzMP&mm@bQMAssA1CIU;9>3rqK;(|yIvK=A;?yz2rv1X!L!1srsH%;zb zCks-2F6tyD;!+peGb-}k^PtT^adc0@=&4t2EKMD8)-=k7prH2W73o7)GWd|Z5Jp-Y zzr5jj+uj2Khk1E8xjFtU4NP4cq=v_;{*E}q*SzeS&%ow1o-Nu(!PqlOnRKO{F`sau zt9Q2d3jw~KCtXq%z5c0*6)7(~b*VllaexUe=FxN`LuF6b&N?C5LaWEmLPcxHhhSQx zONA(n_iL})2v@3FHMJCFWRI9~0wwbwBMLik|*$K4yuf!^8{lCLejIqQ1SLm?I z!MhRUS0t3dmy%Ie@~!t*7jtsXfHNN>8+|6;>ic&qMDITru#V9bovdJH!R`+{f6y8c z0?kXF>)LPe2pBCIX#X+d+SUsT+LP#LRFQ#Q;^ z=MdN0l3M+-5T!=K##Y}M<6Q~dOO3)!W(?@t5*KE{U#k?WWn8jhRXU;7U+kk%dJ3}B zCoa-l;l|mK``B?(GU>{^8R5Rxh>XXijI4EIyLV$dd-n7xBe+uIOIx@}qnG|xw%~;A z=dP)tZ)@Wg^F^w}^VQ>X3X>|?(;P}~26~0;iu`KFkQa8nGS4t9JQ6hJUP<;&&K3yD zxFloN2FacAOXIigZ+@`p5b$DcB{pEF=l&XYxtd!2D<1Oo)@emwhKj@#Ps>l#v8$3< zxrx>`jSwX7#JlFNn`aAiCh|uJHv>REL51&uvll80V(Vg7FT3=&a1FKdNoEB&qKE2S z->u^rL_JnUt)UcU_>p{`aSU;7&s=jU{(--&@#+&-$M+>CQ1;7IqeOm!Si)0Bc)!r6 z(b;bf;c919@pMIQ=oE$r9$-E`2l?LGH~hS|(^iRk+**+?r{ghk*Y3=AbKTXA7!|L2 z&RJ-K9)w~1>9mo&I->)h?g=%@G|YyLn+OS{d?w!2$6f_9mxgLBGp1&;!nFX6OHB&KeKAH` z0-E*^N`IW{oftsOq}WIxoJ2jR9|Qb@xVAZtmQ(9qoc28rH7D(Rn@`(1plp&b82{rm`)h?vx3V=Njedy`ojc#SO}U$aO`u zM`S-FccQ)ZKTDiD3x2?6`DIibayR@T7;M+ymx+|!34LTW&JjUN*L1fyESb9Uv|)=v ztL|(+t8XCuHSaltKDu2Jsa=s~e7H!U9_I&3{@s+w-h2mDS-LYBJYP(ERQ62B^*P8t6>My~J*`_v3k`b9hEp7&R5X3DX5=OH**yG6FDMkFarRoKCRV%_fSI ztOIg=4`sLP;u5<@?b>tT%0fWk5vGZ+3CYV>8us|-(b%9k6eGjszjrhL{kje4> z1FV$xU29L`z0eyDUg9TIGrG-v;citQUy*;av;PKMwd6YQWC8F?&T!$YojwI{Gwj%P zgzHEN6w{1qbMdlrol!S03stWebYx-!BI%{*)z`$Y!-J?;)ull%Q|KN+ZN0qZR6z~-bVV+=x|QWB4EsdAywm~<>UTF9 z)rg0r9zjNuHvfBsKI$B#HvjL>|1(e@CpbR*9U*@aM3c7v8U>HTkIz`Y;kKl6{s;c= ziR(D}_`LEPeU0Le>E$@^xUl~Xw5L2K^N&N1OT^z$W9pyK{~;KU^Bh-Izj+*Ke)9ZN zV;u({7a_mF-n75Ye_WFMli}#s$K}Cq20ps~{QZB41tWbbl92#FM|#vq0n#|qgTTK4 DVq1^{ literal 0 HcmV?d00001 diff --git a/PSCADA/SG管理机模版/database/fes_dev_info.xlsx b/PSCADA/SG管理机模版/database/fes_dev_info.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..149d6b4581d581c0132ca8a6f6d6399fb7f3f253 GIT binary patch literal 4629 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 literal 0 HcmV?d00001 diff --git a/PSCADA/SG管理机模版/database/fes_dev_temp_def.xlsx b/PSCADA/SG管理机模版/database/fes_dev_temp_def.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..617bed6b25d5083a893588e12f80a352a91d8a1b GIT binary patch literal 3654 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 delta 691 zcmca9eM_1zz?+#xgn@~HgJJ3n)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEk98gvx2R}1d-Q+3UwumUc$!*RF(hUy0$&x&#@*tj9mf+9lz##NtVqo9~(jWi~ zRUinOoXaBxF{hhH$|i}0fuSNtzqq6_C$$(9$N}DrKs|^AReM>@|1MCU8BkOTYy!-r v;K>hpG$AJO@k%jfOxEO;gK)ihrI<=MCiioQO|IqDVw9P@f>)cZ73>ZG)lL+z diff --git a/PSCADA/SG管理机模版/database/fes_digital.xlsx b/PSCADA/SG管理机模版/database/fes_digital.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..2fbb0d8cf6681cbd3a77265dbf38556e41cfed1e GIT binary patch literal 12518 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 literal 0 HcmV?d00001 diff --git a/PSCADA/SG管理机模版/database/fes_digital_ctrl.xlsx b/PSCADA/SG管理机模版/database/fes_digital_ctrl.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..132f6d4629e323e80eac753eaa7e8151e3a783ea GIT binary patch literal 7557 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 PG{CP0AdnQC^w)m?f|pU9 literal 0 HcmV?d00001 diff --git a/PSCADA/ECMS电厂行业模版/database/fes_mix.xlsx b/PSCADA/SG管理机模版/database/fes_mix.xlsx similarity index 60% rename from PSCADA/ECMS电厂行业模版/database/fes_mix.xlsx rename to PSCADA/SG管理机模版/database/fes_mix.xlsx index e282cd46d1a8793fcf48e6c1d1f2be520c093dc7..b96047799938599cc358b3c2a6ca66b02fe2e63d 100644 GIT binary patch delta 739 zcmZpcZIa~+@MdNaVPIn5U`UQp?AgfI%*X*^R5osyJ$WXhcKs19rAgZ!JW#WEp>zJ* zO}5KRp4e{rTm4w+MTO<`!-ii?EIuCbF#8d-u1J^lm)e$V;lCNimGnV($AgVi zj3=#G{q&HD;v>yALFH(bi6-;BZW{MnFJ1Ankl~c@x6V7xG7Xn|=1MKBbZB37p=vQ( zN=Bn&ZO+XfS5Ka@P_SFpSHJscnSJ=Vdur~Jd9R0W>2Z4Qy6>9X-@84(-mbcb>h|z| zM>&r$FfiCMGB5}L>6HBBfTH|@V*SK|0=3p$ zz6DfIopEMc;~Sq7J*B_DEt?j0UM_v#{QjTE*FD!PXRlu|hl9QJy7W~>wl2={=BnF! zbmT&hKQjE~!_jQTw0i6Ay&Kn0c;xX7eBMS z_&eN}DeQmi@+aTq{_v&$O0CbY`;nUZH9!A5FRGt6CouCcvVbCNa{piGmkkZNH;j_CLiW8g{b+%BV`rH%)k&|l$ukluLmLnycwAo z7!WB%wan$=FFvL_ z?*>p+5Ku8cSUpT%Iy(bHMUH-Xeo=N(ettG6%Fr#n(6fQN45+CQh(%B|=S&vhb7T_X SoNUM`H9410fK8VNBo6>rh!4*I delta 743 zcmZpYZI4&-oO5-$S!57$dL!u1qYLL z#Z_+3`0BM?@sVa5r*gE)M3Z@0mInUTOIOGiu$&V9)_KQSrtxym-dPK39r{=4bgh+| zxR9Cc>&Dc};p)9*4mCcq_2u1n>kQA`OLO1Mdp&$h&!Q8j_pI6SYj@_?+o|_Z-G1Qe zr&C867#M6B85jhBbV`15Kv8}{v3_DffnG&!&fE#M+02GKZQmXK9e!y0{57v4%Y5gB zCGRGr>8@Mr&0}{mBCG1>_fn}}hUru0O=sV0w7b&lY`r9x`yof$EpxLNY+E~yJMMiq zKV16i1`8fN!9xr54rHZI=l&d|;XIM!P6+F#1%67Et4)6k`}E!J+Bj+AsV7VNp03E0 zS=_GvNnUuti+!)JNu@FJ2!#C%Uy*n0ZRESDY@e?G{;^^IlUJLc89o=;JNee7Wk2lH z=PB>4ou-lSrM|*fPCoDbhS=NN|2~`je@)N7*SY%{P(8glo|%V{1r%eO^I6_PSqW@{ zP*y2BBa~Iev7Z^NZn7BFt|Yg$OVF=$^N`D5OeZ*rI>=*Cg-uqWT5NU+kbE0 z4WQ~EpeBB>KA8Rtb_Rxu9R2eAqU@yn{A^I%p=-X-vw^z|sHqW%MNl;7PUh!xWE7no M$fwPw#{-fA06GjC=l}o! diff --git a/PSCADA/SG-A通讯管理模版/database/fes_mix_ctrl.xlsx b/PSCADA/SG管理机模版/database/fes_mix_ctrl.xlsx similarity index 59% rename from PSCADA/SG-A通讯管理模版/database/fes_mix_ctrl.xlsx rename to PSCADA/SG管理机模版/database/fes_mix_ctrl.xlsx index 70b20f94635af6d502781abfd36b37a8c4160713..cf521269cfdd532471c655d19b166804c65d9a20 100644 GIT binary patch delta 771 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 MQh)-E`?i4p12q=d;Q#;t literal 0 HcmV?d00001 diff --git a/PSCADA/SG-A通讯管理模版/database/forward_accuml.xlsx b/PSCADA/SG管理机模版/database/forward_accuml.xlsx similarity index 59% rename from PSCADA/SG-A通讯管理模版/database/forward_accuml.xlsx rename to PSCADA/SG管理机模版/database/forward_accuml.xlsx index ffe9d59831659a1f8776573eb073849a9a7e6d9b..3109eade84fd8d6fecff8888ada5db11b3f70943 100644 GIT binary patch delta 680 zcmcaBb4P|Rz?+#xgn@~HgCRLav1cP+Gb0CxQQ5d*_T-t2+Vw}clqPL^@IcMth0ghJ zH`y*Pd1AZeZ}nrP7ZsM%4;y|pvG{nz!|X@Ux*}cHUus*fl`q{hhyP|6SJDUF9S=56 zF`l$$_0vNpijOqg1eK#zCYsFix@p{Ry>!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? zoej!r;F!V;RySFK#}*O8u{`FSAl=}wn>?4tR360h$`btf92kN=ObiU%KpF&qfeHkH zlRxrELCoRjm10bsti>w>;d=2(F$J+r&S#U+4)A6KYD6Te>bF(5?gBMO0?ptD8v`>g keezmfIf(xAK>dXrllwTtCNuJBF-lI>;nQYg=K(1P0P0@@i2wiq delta 676 zcmca3b618hz?+#xgn@~HgJJ3n)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEkY*1D`#}sC;y2;`^wumT>;W6g~=>`Yh^GAj+z?+#xgn@~HgCRLav1cP+Gb0CxQQ5d*_T-t2+Vw}clqPL^@IcMth0ghJ zH`y*Pd1AZeZ}nrP7ZsM%4;y|pvG{nz!|X@Ux*}cHUus*fl`q{hhyP|6SJDUF9S=56 zF`l$$_0vNpijOqg1eK#zCYsFix@p{Ry>!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? zogK<*+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEk>`+z%$7W`*y2<7|wumUM;W6g~=>`Yh2z5Sy&Pr^P5e*_%(BO@jwy6aZa;5ZV9$ diff --git a/PSCADA/SG-A通讯管理模版/database/forward_analog_ctrl.xlsx b/PSCADA/SG管理机模版/database/forward_analog_ctrl.xlsx similarity index 59% rename from PSCADA/SG-A通讯管理模版/database/forward_analog_ctrl.xlsx rename to PSCADA/SG管理机模版/database/forward_analog_ctrl.xlsx index e955e18d2c9182c398f7c884327eeeb717a8d95c..4c1896f09be3b322675778c419ba9264a2536716 100644 GIT binary patch delta 681 zcmaDM^IV26z?+#xgn@~HgCRLav1cP+Gb0CxQQ5d*_T-t2+Vw}clqPL^@IcMth0ghJ zH`y*Pd1AZeZ}nrP7ZsM%4;y|pvG{nz!|X@Ux*}cHUus*fl`q{hhyP|6SJDUF9S=56 zF`l$$_0vNpijOqg1eK#zCYsFix@p{Ry>!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? zoeRop;h4<~RySFh#}*O889e5kAl=}wo4kU@6r$!Kj}&9z+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEkTu@ds$82V>y2(mBwumTB=P~C5=>`Yhb5e^zfgIq?$i%>aNKmzx)%@=Q6`BD>rNCNX zT7xI&^J+qDo5L%`m@#=fubcwNwhKKQxXXY_8-Z8^MN1jSgyI+!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? zog2z(<@m%5RyVnt#}*O82YAdmLAt?VH;LCY0>tsk68!lb7=S)Z3=G^r8U%o03Iu`7 z3=Hu_sX4{^dLS~un-Qo4k$P0iTpk_+s@%-Vz`zUE0MnQ_xtCW4V*grRDW)K{$@y$D z+UWXi_D;@z1k@J~G=m>SfBIwrJ~?@i<1X}U;4TBoH3G2+ikh;?zI=|1a+CY{wAr$F GKvDqG!wTjA delta 697 zcmdlldq9>iz?+#xgn@~HgJJ3n)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEk+)!2v$0ug6y2({MwumU+&tuLB(hUy0$^UswZ9zP*EWw}8fkEiQ#K6D}q(J}} zsz4CL%)k&|l$ukluLmLnycvN?5b0-fA+Ho;(&Qdq8HinLc%_(v*(T?)$!Mc1wb?s4 s`w`H@c%Z@jV6$O%WK8DglY{6t!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? z9VXkxF_9UpZn89wEh2^!c+5FLy1`*Lc>#}U1c>LACHV6>Fa&*=7#O&LGzb6#6$k>E z85rV=Qge#+^+05RHzQC9BKfG6xjZ}uRJoazfq@sS0j4o=vM#R-!~wp%QcOW?lk?eR zw9)muxy77#4AhqhG=m>SfBNJNymIm&$6e^zz+DEEYXo8u6gB0O-|{*#%1_qk(`Mu1 H0Z9P>qfrVW delta 697 zcmcaF^FW3#z?+#xgn@~HgJJ3n)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEkFxgg)iOgVilcjiU5m6k^W6lZE4Gz4?^Lb2dK|HT4!Jp58LFmK8z`zZpK>!%4 zKoG>tzz|=Qnp3Q=2O1VPauM}g_WF1}^h+RIsQcS^Ylk?bQw9%Eixy77# q3^XwjXfQw6Y?vJxlh^agLG)h)8dov-4X-1k!el)@Z8mNmkV*ib@e>IE diff --git a/PSCADA/SG-A通讯管理模版/database/forward_digital_single.xlsx b/PSCADA/SG管理机模版/database/forward_digital_single.xlsx similarity index 60% rename from PSCADA/SG-A通讯管理模版/database/forward_digital_single.xlsx rename to PSCADA/SG管理机模版/database/forward_digital_single.xlsx index b8aa5248035aed0acbe9dc5ae995a3835b9a8eb2..fa2618e0929e9f072ffa69563b430b585f369dcc 100644 GIT binary patch delta 738 zcmaDLb6!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? z9VXkxF_9UpZn89wEh2^!c+5FLy1`*Lc>#}U1c>LACHV6>Fa&*=7#O&LGzb6#6$k>E z85rV=Qge#+^+05RHzQC9BKfG6xjZ}uRJoazfq@sS0j4o=vM#R-!~wp%QcOW?lk?eR zw9)m?UlwrcF;HJ3&+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEkFxgg)iOgVilcjiU5m6k^W6lZE4Gz4?^Lb2dK|HT4!Jp58LFmK8z`zZpK>!%4 zKoG>tzz|=Qnp3Q=2O1VPauM}g_WF1}^h+RIsQcS^Ylk?bQw9%E$Ulwrc qG0?*p_!GDQ diff --git a/PSCADA/ECMS电厂行业模版/database/forward_mix.xlsx b/PSCADA/SG管理机模版/database/forward_mix.xlsx similarity index 59% rename from PSCADA/ECMS电厂行业模版/database/forward_mix.xlsx rename to PSCADA/SG管理机模版/database/forward_mix.xlsx index 699df2b76441ab116295bb3ca05b9e36b528efdc..4e2139849b6376a8c266709417fd4b21d0c0540b 100644 GIT binary patch delta 675 zcmca3b6bWlz?+#xgn@~HgCRLav1cP+Gb0CxQQ5d*_T-t2+Vw}clqPL^@IcMth0ghJ zH`y*Pd1AZeZ}nrP7ZsM%4;y|pvG{nz!|X@Ux*}cHUus*fl`q{hhyP|6SJDUF9S=56 zF`l$$_0vNpijOqg1eK#zCYsFix@p{Ry>!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? zofXQe=a|9_RySFk#}*O8F+Ap+Al=}wn>>fdR360h$`btf92kN=ObiU%KpF&qfeHkH zlRxlCLCoRfm10bstjQ~*0Mb%>S+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEktWZ`R#}sC;y2)ZZwumT><}v34=>`Yhu?@*tj9mf+9lz##NtVqo9~(jWi~ zRUinO{GLY&Vh%5_6l2n44PF@qke1rZYW{bD3e137q`*pHT7uao=dsC5Zs6sC=$io4 fmoa%YuN;JX7RW7}{DRk!QF5{tpEesi4@frvmvazr diff --git a/PSCADA/ECMS电厂行业模版/database/forward_mix_ctrl.xlsx b/PSCADA/SG管理机模版/database/forward_mix_ctrl.xlsx similarity index 60% rename from PSCADA/ECMS电厂行业模版/database/forward_mix_ctrl.xlsx rename to PSCADA/SG管理机模版/database/forward_mix_ctrl.xlsx index 60ffd6ea6414915643aa57746e7070638da3176a..910c7328bb55d9842a00a3ae8062d5b203d90d4f 100644 GIT binary patch delta 742 zcmca4b5Vvbz?+#xgn@~HgCQkGv1cP+Gb0CxQQ5d*_T-t2+Vw}clqPL^@IcMth0ghJ zH`y*Pd1AZeZ}nrP7ZsM%4;y|pvG{nz!|X@Ux*}cHUus*fl`q{hhyP|6SJDUF9S=56 zF`l$$_0vNpijOqg1eK#zCYsFix@p{Ry>!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? zode2h;%H|EtDDTrV~dF4ARcp0kZy3;O`gPK3Q=>KN6IRYnSmj`C^e^8Uk^kEcr!9F zFd$NjYMIN!W5AH!%*w#P3k+=#0CIsKak4zG48$CJUMZ#^w#oTyG8yRl-)v%9b04TW z8mNgMtPiF?ot=T9B1gYGzbHE?KR+83b?BNe^lacR18QmnVi6S0#gp&zIxA0sw6i4*CE9 delta 718 zcmca8b4i9Tz?+#xgn@~HgJJee)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEk98gvxM>{iE-DDmfTSOEG@|bgibb|wL@&PfGS%FWR?JqY-3IIPS B7Y+ab diff --git a/PSCADA/SG-A通讯管理模版/database/hmi_type_info.xlsx b/PSCADA/SG管理机模版/database/hmi_type_info.xlsx similarity index 56% rename from PSCADA/SG-A通讯管理模版/database/hmi_type_info.xlsx rename to PSCADA/SG管理机模版/database/hmi_type_info.xlsx index 800fb3a77361bcf7e415d3c4692860832d670834..3eb5c1a427f4ba5f924bc832753faddfdbd5b1eb 100644 GIT binary patch delta 711 zcmZpdYLns%@MdNaVPIn5V0aUw*t3zZnUMp;sBGLYd-6<1?fN5JN|Uxdc%WwSLg)Oq zn{1btJh9#KxB9Wtiweu>hYi1)SbRLCnFFLe*ln zl#E8l+MJs|uAV$)pB6&zju3nyis4BNGDyB0be!R`b6LRA>eil>%#lX$_jp z&!Y*k&4x#cF@174kDLO?whKKQxXXY_8-Z8^MN1LK4&-oO5-$S!57$dL!u1qYLL z#Z_+3`0BM?@sVa5r*gE)M3Z@0mInUTOIOGiu$&V9)_KQSrtxym-dPK39r{=4bgh+| zxR9Cc>&Dc};p)9*4mCcq_2u1n>kQA`OLO1Mdp&$h&!Q8j_pI6SYj@_?+o|_Z-G1Qe zr&C867#M6B85jhBbV`15Kv8}{v3_DffnG&!&fE#M+02GKZQmXK9e!y0{57v4%Y5gB zCGRGr>8@Mr&0}{mBCG1>_fn}}hUru0O=sV0w7b&lY`r9x`yof$EpxLNY+E~yJMMiq zKV16i1`8fN!9xr54rHZI=l&d|;XIM!P6+F#1%67Et4)6k`}E!J+Bj+AsV7VNp03E0 zS=_GvNnUuti+!)JNu@FJ2!#C%Uy*n0ZRESDY@e?G{;^^IlUJLc89o=;JNee7Wk2lH z=PB>4ou-lSrM|*fPCoDbhS=NN|2~`je@)N7*SY%{P(8glo|%V{1r%eO^I6_PSqW@{ zP*y2BJCxPHVao(oH~Ao!Eh389xXn31y1{`r*^S#2qNbi(iZN*NEN-bNkfdsv%fn;9 zP~FVRz`zR(Sr7nnfgp*6fuSNtzqq6_C$$(9$N}DrObiT&1XX)k&HpY?p&3wA3akaD zHFz=~k0!)6YaS`ajLBg?DNWk;;DMUO3!U@d zZn9lo^2Bz_-|ELoFDfjjA2$4IV)5~ahuM#ybw#?Yztpx|D_^>24*$(CuA~pTJ05JD zVmxWh>ZgZH6d!4}2`WdcOf;G2bJzjfYmmT9=$GgoS1r9=Cw3ssBR zQZgDHYjbY?xO(!Gg@WC(zWUuq%k0C?-BWX)%zHh2OOMlY*L~OA{@(5R^>)=gRJVu! zJIZ;4fq}u6k%2(~NT=i{2NdNO6zeAz6zEmt=FFXN(2LnnpzVFr`wdU-`L0n2+N9Z3 z@hzZw>Wnkn8sGSw=qdgEZP~Q2^K$9?=J)?RzV5kZIeYzzIUMYz*QKvAvUPEmH&@-> zqazo3{E^`=AC6`#rqx?_@7=h5Dp!c-f!JUL{w)2Vu&Cl2ho9`smyniR=@)k^qI}jd zL)MCAA1oQW;-o$=NEAE3Q5d++snl#8->3M@B?Y_sx6e+_v`e4wbyBk;Q#aO6zWABt z#oyt+Okw|9mp}O?_lGb2S89EJ-H+7Nulf1kc~SkmIf0pnkp&cCn+sUpLRpDyf>2f& zI~$bMz+u1yRyTPImn|ZOe{z{~f^>t!Zn7n}sXU11l_mJ|IWPo$m>3wifiwsJ0~H7Y zC--toLCjgrEoGC)!oX0GqhDN7nUh)!3gZB8MxY)61Nq&x-Vw30cXfaAoKEb2SwwMc~8vu385XArh delta 664 zcmew%`BRcFz?+#xgn@~HgJHuA)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEkY*1D`hXE5<-Q>+&wumVH!DY?~(hUy0$rjwE5H*F|Qj9^9d$^?_+*RCCHc2cD z3>7*0#U+(Fsl}l14De=TVqid|o!ZN4{&#`lZUz*U0@5G=j0zwKp2VXGF-Vt3iZNrd c2agX6JWR#kGoJX5&2^UB?0E8+N-~a#s diff --git a/PSCADA/SG-A通讯管理模版/database/linkage_action.xlsx b/PSCADA/SG管理机模版/database/linkage_action.xlsx similarity index 57% rename from PSCADA/SG-A通讯管理模版/database/linkage_action.xlsx rename to PSCADA/SG管理机模版/database/linkage_action.xlsx index 91ab5f4be30dd18ceb4a9da3091d6661c55da7b8..ac099123931be0b75415b2d5a36eb0bcf5f3cbd9 100644 GIT binary patch delta 734 zcmX>seMp)wz?+#xgn@~HgCQkGv1cP+Gb0CxQQ5d*_T-t2+Vw}clqPL^@IcMth0ghJ zH`y*Pd1AZeZ}nrP7ZsM%4;y|pvG{nz!|X@Ux*}cHUus*fl`q{hhyP|6SJDUF9S=56 zF`l$$_0vNpijOqg1eK#zCYsFix@p{Ry>!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? zofXQe=lIP8RyVnh+ZGYShq=u;LAt?VH<_8o6r#q4N6IRYnSmj`C^e^8Uk^kEcr!9F zFd$NjYMIN!W5AH!%*w#P3k+=#0CIsKaqc%+zu*e2(*$xMF1!xICt$tADu z$sM4oNT6bVuzHxjban=YiX8p&{G#ln{QPWCl%ZRCp=Sek8BkLr5R0H_E|?s^>&PfE Nc@nQSTP`<93IH_j55oWe delta 743 zcmX>keOQ_=z?+#xgn@~HgJJ3n)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEktWZ`R$8RREy2-WNwumS`#BI(A(hUy0$xJ+^5H;33QdU9C3=Hu_sX4{^dLS~u zn~{lu0g+Tx%Um8F0|xbGRt5%MU~q!~kP8G!llysOAm*&+kzxvFo1DiclYy?^C9m$u z9iZw+peBB>KA8Rtb_Rxu9R2eAqU@yn{A^I%p=-X-vw^z|sHqW%MNl*sPWI<@WR#pd Mkyo27j~gTf0L~R09smFU diff --git a/PSCADA/ECMS电厂行业模版/database/linkage_define.xlsx b/PSCADA/SG管理机模版/database/linkage_define.xlsx similarity index 56% rename from PSCADA/ECMS电厂行业模版/database/linkage_define.xlsx rename to PSCADA/SG管理机模版/database/linkage_define.xlsx index b723bf7df56c54cfd4b78bccb427925a69752c45..8edc1e2b0b4ead7ffe120a0d608b24f24fbe6022 100644 GIT binary patch delta 742 zcmbOvHBpK$z?+#xgn@~HgCQkGv1cP+Gb0CxQQ5d*_T-t2+Vw}clqPL^@IcMth0ghJ zH`y*Pd1AZeZ}nrP7ZsM%4;y|pvG{nz!|X@Ux*}cHUus*fl`q{hhyP|6SJDUF9S=56 zF`l$$_0vNpijOqg1eK#zCYsFix@p{Ry>!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? zogK<*+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEk>`+z%hX)f_-Q+V|wumSe`YhBFt|Yg$OVF=$@jQrAm;qzmSPHKo1Dicqm8aVwfE76 zdqCBZKu!E$eK7qQlM{L5!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? zogK<*6rv`9M~X3Uay5@s6i8CF%;n)RV4!Yh zWnkb11}q2wxj>M}!oX0GqhDN7nUh)!3gZB8MkWRZM0%>dtmc0gsL%{3Dh1X8(;77S zJ&z{DHW^+i#`MYNymAU4+b;BM;4T9yZ3JQw6fH#@llwWuCU^5{F-lF|#;eUXksBlr E0L-ikiU0rr delta 712 zcmaDR{al(az?+#xgn@~HgJJ3n)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEk>`+z%hb%K#-Q)MFHUGOng=RoeDXseMp)wz?+#xgn@~HgCQkGv1cP+Gb0CxQQ5d*_T-t2+Vw}clqPL^@IcMth0ghJ zH`y*Pd1AZeZ}nrP7ZsM%4;y|pvG{nz!|X@Ux*}cHUus*fl`q{hhyP|6SJDUF9S=56 zF`l$$_0vNpijOqg1eK#zCYsFix@p{Ry>!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? zogK<*c%+zu*e2(*$xMF1!xICtDS}!4 z**&1DD4=3~uzHxjban=YiX8p&{G#ln{QPWCl%ZRCp=Sek8BkLr5R0H_E}9&`>&PfI Nc@nQSTP`<93IOko4;TOd delta 743 zcmX>keOQ_=z?+#xgn@~HgJJ3n)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEk>`+z%$4@4(y2-WNwumS`#BI(A(hUy0$xJ+^5H;33QdU9C3=Hu_sX4{^dLS~u zn~{lu0g+Tx%Um8F0|xbGRt5%MU~q!~kP8G!llysOAm*&+kzxvFo1DiclYy>3f?59A zJ)r6+peBB>KA8Rtb_Rxu9R2eAqU@yn{A^I%p=-X-vw^z|sHqW%MNl*sPxj|^WR#vf Mkyo27j~gTf0Ep8Ya{vGU diff --git a/PSCADA/ECMS电厂行业模版/database/load_stat_define.xlsx b/PSCADA/SG管理机模版/database/load_stat_define.xlsx similarity index 57% rename from PSCADA/ECMS电厂行业模版/database/load_stat_define.xlsx rename to PSCADA/SG管理机模版/database/load_stat_define.xlsx index 674a4ab57558c4c5e6d0e8e5432e2dfa3302939e..3b96a1527cfb90d3c435adaf41741413f9ac6f18 100644 GIT binary patch delta 690 zcmeB_?vUmS@MdNaVPIn5U`UBk?AgfI%*X*^R5osyJ$WXhcKs19rAgZ!JW#WEp>zJ* zO}5KRp4e{rTm4w+MTO<`!-ii?EIuCbF#8d-u1J^lm)e$V;lCNimGnV($AgVi zj3=#G{q&HD;v>yALFH(bi6-;BZW{MnFJ1Ankl~c@x6V7xG7Xn|=1MKBbZB37p=vQ( zN=Bn&ZO+XfS5Ka@P_SFpSHJscnSJ=Vdur~Jd9R0W>2Z4Qy6>9X-@84(-mbcb>h|z| zM>&r$FfiCMGB5}L>6HBBfTH|@V*SK|0=3p$ zz6DfIopEMc;~Sq7J*B_DEt?j0UM_v#{QjTE*FD!PXRlu|hl9QJy7W~>wl2={=BnF! zbmT&hKQjE~!_jQTw0i6Ay&Kn0c;xX7eBMS z_&eN}DeQmi@+aTq{_v&$O0CbY`;nUZH9!A5FRGt6CouCcvVbCNa{vIKuV2Zo>z69WS`kOl!@paMbQ zWLX|5h&k3gQZ|V!3=9=H`o$%cIjO~!`^#3t+VYB5Srj^Nd1GX}c@01J@^$N&HU delta 670 zcmeB>?v&;W@MdNaVPIn5V3<8qHD)7UGb0Cx@$yUSk;yX|wd=3&1*!NRJm_0+A#&c^ z&AiJzPgZCA{(j8$!p9=L_QkU+OCEJj%=xhO&XZP=7q>4&-oO5-$S!57$dL!u1qYLL z#Z_+3`0BM?@sVa5r*gE)M3Z@0mInUTOIOGiu$&V9)_KQSrtxym-dPK39r{=4bgh+| zxR9Cc>&Dc};p)9*4mCcq_2u1n>kQA`OLO1Mdp&$h&!Q8j_pI6SYj@_?+o|_Z-G1Qe zr&C867#M6B85jhBbV`15Kv8}{v3_DffnG&!&fE#M+02GKZQmXK9e!y0{57v4%Y5gB zCGRGr>8@Mr&0}{mBCG1>_fn}}hUru0O=sV0w7b&lY`r9x`yof$EpxLNY+E~yJMMiq zKV16i1`8fN!9xr54rHZI=l&d|;XIM!P6+F#1%67Et4)6k`}E!J+Bj+AsV7VNp03E0 zS=_GvNnUuti+!)JNu@FJ2!#C%Uy*n0ZRESDY@e?G{;^^IlUJLc89o=;JNee7Wk2lH z=PB>4ou-lSrM|*fPCoDbhS=NN|2~`je@)N7*SY%{P(8glo|%V{1r%eO^I6_PSqW@{ zP*y2B2b9&wv5yI?Zn87CEh36LxXn31y1{`r`2@EqL=7X46l2h286GJJ*NR8VCW(cC zp(01WxTG>CwHOqh0p5&E3=D|0Q+rv>|1L1x&48j(KpF&qQ2_+OlPB8Qwhi9eh#t8I=otpGLyr3wb@L#L7D(*5EA?V diff --git a/PSCADA/SG-A通讯管理模版/database/mix.xlsx b/PSCADA/SG管理机模版/database/mix.xlsx similarity index 63% rename from PSCADA/SG-A通讯管理模版/database/mix.xlsx rename to PSCADA/SG管理机模版/database/mix.xlsx index 08370fe9b2f7a18691b3521ba744f7c5b7bf550d..de2e2b98c63b72c2a0eb696411d44462c10f8c5d 100644 GIT binary patch delta 736 zcmX>gzh9m&z?+#xgn@~HgW*k#V$VjtW=0MWqq1?s?8!43wd;>?DNWk;;DMUO3!U@d zZn9lo^2Bz_-|ELoFDfjjA2$4IV)5~ahuM#ybw#?Yztpx|D_^>24*$(CuA~pTJ05JD zVmxWh>ZgZH6d!4}2`WdcOf;G2bJzjfYmmT9=$GgoS1r9=Cw3ssBR zQZgDHYjbY?xO(!Gg@WC(zWUuq%k0C?-BWX)%zHh2OOMlY*L~OA{@(5R^>)=gRJVu! zJIZ;4fq}u6k%2(~NT=i{2NdNO6zeAz6zEmt=FFXN(2LnnpzVFr`wdU-`L0n2+N9Z3 z@hzZw>Wnkn8sGSw=qdgEZP~Q2^K$9?=J)?RzV5kZIeYzzIUMYz*QKvAvUPEmH&@-> zqazo3{E^`=AC6`#rqx?_@7=h5Dp!c-f!JUL{w)2Vu&Cl2ho9`smyniR=@)k^qI}jd zL)MCAA1oQW;-o$=NEAE3Q5d++snl#8->3M@B?Y_sx6e+_v`e4wbyBk;Q#aO6zWABt z#oyt+Okw|9mp}O?_lGb2S89EJ-H+7Nulf1kc~SkmIf0pnkp&cCn+sUpLRpDyf)Li^ zGWLHE$qJ7DEMV5;YF=AJ1Rvlv=LBg62i+t-(+Cj9D@*X_b71)SFflN218EQd1}P8( zGBYs57p3MD>+6BY0B=U15=7!rEpvHz45)H5D+2>BSOZLB;^baF8HoLB`J|YF*e2(* z$!MeNcPVUQzY5gn2Q-5pMSuEa0e(4okmD}&Y~U^f$~6M92#T7_$-exKjDnN<`L)@y Hz}5o*HSQB- delta 696 zcmdlle?Xouz?+#xgn@~HgJHuA)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRgba+5bT#%Q^nDfLW8Pcx@3eyr0*c6Qmg&c9Z|}n%aVRURi=ap94eChlzoK8%Toy zFi?RYh?#*Qz9==PSYHoB26!_9l^~MONb*6>L&1+z`gW0TQFSL#yO t#C{cMq94#;ez4gvJ2EEo^UFc>8}dsrW=;0tcVrZr+{drYmdy)N2>`U57BBz+ diff --git a/PSCADA/ECMS电厂行业模版/database/mix_control.xlsx b/PSCADA/SG管理机模版/database/mix_control.xlsx similarity index 59% rename from PSCADA/ECMS电厂行业模版/database/mix_control.xlsx rename to PSCADA/SG管理机模版/database/mix_control.xlsx index 291ccc684af47a29fe5c7d4838e00996ab38a1b6..d70e081f62eb53169cfa3893420c998f97e7aaac 100644 GIT binary patch delta 738 zcmew${a%_cz?+#xgn@~HgCQkGv1cP+Gb0CxQQ5d*_T-t2+Vw}clqPL^@IcMth0ghJ zH`y*Pd1AZeZ}nrP7ZsM%4;y|pvG{nz!|X@Ux*}cHUus*fl`q{hhyP|6SJDUF9S=56 zF`l$$_0vNpijOqg1eK#zCYsFix@p{Ry>!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? zofXQe=g?pVtDC%<+ZGYSAGpmqLAt?VH`##4Gy=r)$`btf92kN=ObiU%KpF&qfeHkH z%nS_iMX5Q(`g$NTz?%`M1d)7H%Um8F1FGE2%D})2)&SF(IC(FR48#F9z?+#xgn@~HgJJee)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEktWZ`RhXylP-Q-o=wumTx&uz{L(hUy0$@)B|wjiEYmf+9lz##NtVqo9~(jWi~ zRUimrW?+afO3f+O*8`CO-i$yci1aggA&(Se(&RlnG7!7&@JKNQvrW!plhH<3+V{A2 s#vP!EVL*fV!Dhqk$e3);D+ke^$ScKIIJt(`kx_E;K3;9M*!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? zogK<*g keX=gE97MlAuM|@e$K-wvvB{0RT8vVY*YIkywS#R301S5oI{*Lx delta 681 zcmca3eOH<+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEk>`+z%hcGi(-Q?-qwumUc!)?w9(hUy0$uc~q@*tj9mf+9lz##NtVqo9~(jWi~ zRUinOT)-m*F{h75iZN;ON*);nke1rZYW{bD3e137q`*pHT7uao=dsBM1b8z7r4UJN pvLLS%W5#41UO9+ye!Nml#T=9SIK(D5@MjcUq1wz?+#xgn@~HgCQkGv1cP+Gb0CxQQ5d*_T-t2+Vw}clqPL^@IcMth0ghJ zH`y*Pd1AZeZ}nrP7ZsM%4;y|pvG{nz!|X@Ux*}cHUus*fl`q{hhyP|6SJDUF9S=56 zF`l$$_0vNpijOqg1eK#zCYsFix@p{Ry>!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? zode2h;%H<6tDDTuYm10sA6|1#kZy3;P43|}l?U;>vIKuV2Zo>z69WS`kOl!@paMbQ z7&N*Jk_112PH#gb4)d delta 673 zcmX>tcSepcz?+#xgn@~HgJJ3n)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEk98gvxMFbI8^7#O&LGzb7g z6$pYR-{+NrnDduciZN-j1fProNK5TyHUGOn1!h1kQedSpEx~M)^Vno27x3{w^fmBF mF=kAj%_j%p?&XtWD&d&i&mlJXJ)ah%%w#EkZMN?`AR_>7LK0yB diff --git a/PSCADA/SG-A通讯管理模版/database/opc_config_define.xlsx b/PSCADA/SG管理机模版/database/opc_config_define.xlsx similarity index 56% rename from PSCADA/SG-A通讯管理模版/database/opc_config_define.xlsx rename to PSCADA/SG管理机模版/database/opc_config_define.xlsx index 888f913b12ac47238121520d0eec3938c6606d17..7f1f47e946c20c43a776091a59f610d145464f3b 100644 GIT binary patch delta 695 zcmew*^;3#3z?+#xgn@~HgCQkGv1cP+Gb0CxQQ5d*_T-t2+Vw}clqPL^@IcMth0ghJ zH`y*Pd1AZeZ}nrP7ZsM%4;y|pvG{nz!|X@Ux*}cHUus*fl`q{hhyP|6SJDUF9S=56 zF`l$$_0vNpijOqg1eK#zCYsFix@p{Ry>!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? zofFDx=2*uBRyWy{+ZGYSRov#BAl=}wo4kwLR360h$`btf92kN=ObiU%KpF&qfeHkH zllge0Am-@sNZBT`Ffdf)=ogn%=A;&b!Z^U25vT`|o@y_v`QHWVGXsiBflYv!6vQ?; xpG{`+d>$T%aqD@c7}F=8;*o=J-|$E=m2ga+$RRdaj#rCOX0j)*Hk%6AF#t;22^0VT delta 691 zcmew<^-GE`z?+#xgn@~HgJJ3n)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEkoKRL1$2umky2&QowumUM`Yh@|1MCU8BkOTYy!-r v;K_|Vnh=xL@klXdOg_mY2jRZvkzy+4m^^_)Y_cq`7NhKB4_<9HRj@k%n%NZ$ diff --git a/PSCADA/SG-A通讯管理模版/database/opc_config_version.xlsx b/PSCADA/SG管理机模版/database/opc_config_version.xlsx similarity index 56% rename from PSCADA/SG-A通讯管理模版/database/opc_config_version.xlsx rename to PSCADA/SG管理机模版/database/opc_config_version.xlsx index 1d194621a7fc161f8e175f710822dbfb11fb5a47..707df5505082b334ec13e29eaa5c1cfe00a34999 100644 GIT binary patch delta 722 zcmbOzH9?9mz?+#xgn@~HgCQkGv1cP+Gb0CxQQ5d*_T-t2+Vw}clqPL^@IcMth0ghJ zH`y*Pd1AZeZ}nrP7ZsM%4;y|pvG{nz!|X@Ux*}cHUus*fl`q{hhyP|6SJDUF9S=56 zF`l$$_0vNpijOqg1eK#zCYsFix@p{Ry>!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? zode2h;&5XEtDAg=%N7yCg52huAl=}wn;gh(3Q^O=EoBwR%)k&|l$ukluLmLnycwAo z7!WB%wan$=F6^kqs_LP3nUK! D{rC$B delta 744 zcmbOrHBpK$z?+#xgn@~HgJJ3n)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEk98gvxhZ_@E-Q?3;wumSe;5O$3=>`Yhw(AsZ$_XJMEX%Jb9s0SsB$wa0|PHu159JmUI0H<;q1poj5 diff --git a/PSCADA/SG-A通讯管理模版/database/operation_order_model.xlsx b/PSCADA/SG管理机模版/database/operation_order_model.xlsx similarity index 56% rename from PSCADA/SG-A通讯管理模版/database/operation_order_model.xlsx rename to PSCADA/SG管理机模版/database/operation_order_model.xlsx index 88ba0b9b39808ad3efbc333c03cbebd470824bc5..75d5c0e61167b9c2a6d4bca883cf1c49fc45b0ab 100644 GIT binary patch delta 690 zcmca9bwi3Tz?+#xgn@~HgCQkGv1cP+Gb0CxQQ5d*_T-t2+Vw}clqPL^@IcMth0ghJ zH`y*Pd1AZeZ}nrP7ZsM%4;y|pvG{nz!|X@Ux*}cHUus*fl`q{hhyP|6SJDUF9S=56 zF`l$$_0vNpijOqg1eK#zCYsFix@p{Ry>!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? zofFDx=ICVttD7vsZHtKENN#gZkZy3;O`geZDi7j$WeNU#4h%sbCI$v>APoY*Km~%p z$#1!(Am(uMNZBN^Ffdf)=ogn%=A;&b!Z^U25vT`|o@y_v`QHWVGXsiBflYv!6f`-J sM-yUFACDAc`s9^7auDum9x0|0j>!`_#3ujc(PEUDtih|z#te1`0BY<9_y7O^ delta 670 zcmca1byJEjz?+#xgn@~HgJIeX)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEkoKRL1M=ujt-DF{ITSOE`aGP_2bb|wL@(gZMh?7*0#U+(Fsl}l14De=TVqid|o!ZN4{&#`lZUz*U0@5G=j0zwKo}9p=2{EacM~X3H k@(La~2=^3^6jLe3=hbFo;Ra~}0N-#En*aa+ diff --git a/PSCADA/SG-A通讯管理模版/database/operation_order_model_info.xlsx b/PSCADA/SG管理机模版/database/operation_order_model_info.xlsx similarity index 60% rename from PSCADA/SG-A通讯管理模版/database/operation_order_model_info.xlsx rename to PSCADA/SG管理机模版/database/operation_order_model_info.xlsx index cf953bd8545a8d34761000c099da78001529f51d..0e4de93f79a77c6f84abd6f67396dadca19560be 100644 GIT binary patch delta 738 zcmZpW{V&58;LXe;!obA9!H^Q8*t3zZnUMp;sBGLYd-6<1?fN5JN|Uxdc%WwSLg)Oq zn{1btJh9#KxB9Wtiweu>hYi1)SbRLCnFFLe*ln zl#E8l+MJs|uAV$)pB6&zju3nytym68!lb7=k`b3=G^r8U%oW3Iu`7 z3=Hu_sX4{^dLS~un-Qo4k$hCkTpk_+s@%-Vz`zUE0MnQ_*_T%a;(%OUDW)K{$@y$D z+UWY%)o?gH2I@-%n!%5vKYj8AUO9P?<1X}U;4TBoH3G2+ikkAtynK#~@{|4fwAr+H GKvDpBO$qw| delta 697 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 diff --git a/PSCADA/ECMS电厂行业模版/database/opt_interlock_define.xlsx b/PSCADA/SG管理机模版/database/opt_interlock_define.xlsx similarity index 65% rename from PSCADA/ECMS电厂行业模版/database/opt_interlock_define.xlsx rename to PSCADA/SG管理机模版/database/opt_interlock_define.xlsx index 01e42badacc688a4b1667496a4e2806fa697bc83..5b1528a73aa5e09df3a4a429b31c98b4077a1f6f 100644 GIT binary patch delta 696 zcmZ3dxK@!bz?+#xgn@~HgW*k#V$VjtW=0MWqq1?s?8!43wd;>?DNWk;;DMUO3!U@d zZn9lo^2Bz_-|ELoFDfjjA2$4IV)5~ahuM#ybw#?Yztpx|D_^>24*$(CuA~pTJ05JD zVmxWh>ZgZH6d!4}2`WdcOf;G2bJzjfYmmT9=$GgoS1r9=Cw3ssBR zQZgDHYjbY?xO(!Gg@WC(zWUuq%k0C?-BWX)%zHh2OOMlY*L~OA{@(5R^>)=gRJVu! zJIZ;4fq}u6k%2(~NT=i{2NdNO6zeAz6zEmt=FFXN(2LnnpzVFr`wdU-`L0n2+N9Z3 z@hzZw>Wnkn8sGSw=qdgEZP~Q2^K$9?=J)?RzV5kZIeYzzIUMYz*QKvAvUPEmH&@-> zqazo3{E^`=AC6`#rqx?_@7=h5Dp!c-f!JUL{w)2Vu&Cl2ho9`smyniR=@)k^qI}jd zL)MCAA1oQW;-o$=NEAE3Q5d++snl#8->3M@B?Y_sx6e+_v`e4wbyBk;Q#aO6zWABt z#oyt+Okw|9mp}O?_lGb2S89EJ-H+7Nulf1kc~SkmIf0pnkp&cCn+sUpLRpDyf>2f& zJ2#Zo%JF~|tZs59pDiMW*YTNif^>t!Zt^=mQ(F+vD@*X_b6^PiFflN218EQd1}YE) zGBYs57p3MD>+6BY0B=U15=8QuoWL)|m^itbUj|~=Y7QqKn2>_f95Q_i+ delta 676 zcmZ3hxK5ETz?+#xgn@~HgJJ1R)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEk+)!2v#{*Wdy2%-QwumTR%V*9B(hUy0$#3~g?DNWk;;DMUO3!U@d zZn9lo^2Bz_-|ELoFDfjjA2$4IV)5~ahuM#ybw#?Yztpx|D_^>24*$(CuA~pTJ05JD zVmxWh>ZgZH6d!4}2`WdcOf;G2bJzjfYmmT9=$GgoS1r9=Cw3ssBR zQZgDHYjbY?xO(!Gg@WC(zWUuq%k0C?-BWX)%zHh2OOMlY*L~OA{@(5R^>)=gRJVu! zJIZ;4fq}u6k%2(~NT=i{2NdNO6zeAz6zEmt=FFXN(2LnnpzVFr`wdU-`L0n2+N9Z3 z@hzZw>Wnkn8sGSw=qdgEZP~Q2^K$9?=J)?RzV5kZIeYzzIUMYz*QKvAvUPEmH&@-> zqazo3{E^`=AC6`#rqx?_@7=h5Dp!c-f!JUL{w)2Vu&Cl2ho9`smyniR=@)k^qI}jd zL)MCAA1oQW;-o$=NEAE3Q5d++snl#8->3M@B?Y_sx6e+_v`e4wbyBk;Q#aO6zWABt z#oyt+Okw|9mp}O?_lGb2S89EJ-H+7Nulf1kc~SkmIf0pnkp&cCn+sUpLRpDyf>2f& zJ13OY%n`&4RyX-3w=E)u<#^0FLAt?VH#v^S)E30^$`btf92kN=ObiU%KpF&qfeHkH z%nS_iMX5Q(`g$NTz?%`M1d)6uU*M5qOq~3hM+RaSH?I^^5ZmN@HW_Vnr8gE^M?3(U u7z;F*A7nHTKZb`k)n!x3Eo delta 681 zcmbO$Gf##uz?+#xgn@~HgJJ1R)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEkoKRL1M-Veu-Q*kGwumT}`Yhn+a diff --git a/PSCADA/SG-A通讯管理模版/database/opt_shield_define.xlsx b/PSCADA/SG管理机模版/database/opt_shield_define.xlsx similarity index 58% rename from PSCADA/SG-A通讯管理模版/database/opt_shield_define.xlsx rename to PSCADA/SG管理机模版/database/opt_shield_define.xlsx index 47e756eb8132693a108085891af9a18bcd0acd3b..6cfe2e2898837a60ee36a90bc69e3ef8f5326b58 100644 GIT binary patch delta 680 zcmew>{YRQFz?+#xgn@~HgW*k#V$VjtW=0MWqq1?s?8!43wd;>?DNWk;;DMUO3!U@d zZn9lo^2Bz_-|ELoFDfjjA2$4IV)5~ahuM#ybw#?Yztpx|D_^>24*$(CuA~pTJ05JD zVmxWh>ZgZH6d!4}2`WdcOf;G2bJzjfYmmT9=$GgoS1r9=Cw3ssBR zQZgDHYjbY?xO(!Gg@WC(zWUuq%k0C?-BWX)%zHh2OOMlY*L~OA{@(5R^>)=gRJVu! zJIZ;4fq}u6k%2(~NT=i{2NdNO6zeAz6zEmt=FFXN(2LnnpzVFr`wdU-`L0n2+N9Z3 z@hzZw>Wnkn8sGSw=qdgEZP~Q2^K$9?=J)?RzV5kZIeYzzIUMYz*QKvAvUPEmH&@-> zqazo3{E^`=AC6`#rqx?_@7=h5Dp!c-f!JUL{w)2Vu&Cl2ho9`smyniR=@)k^qI}jd zL)MCAA1oQW;-o$=NEAE3Q5d++snl#8->3M@B?Y_sx6e+_v`e4wbyBk;Q#aO6zWABt z#oyt+Okw|9mp}O?_lGb2S89EJ-H+7Nulf1kc~SkmIf0pnkp&cCn+sUpLRpDyf>2f& zI|r22#9_n?RyTPEw=E)u|8kpif^>t!Zn73wifiwsJ0~H7Y zCr{*&f|#?OM~X3V@+lq}2=^6_6jKn}3yK)7@!&aU}Ip$ lrBC+dm4oQd=aphA=9oNzLu~RwUM)uH$!B=A*_MNC2LN@P4|D(k delta 681 zcmew({a2bVz?+#xgn@~HgJHuA)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEk98gvxhY>Sa-Q?}uwumVH!)?w9(hUy0$u>Nu@*tj9mf+9lz##NtVqo9~(jWi~ zRUinOJb_0FV$M1qDaNG9CwXKPKw4@qtNGsrDlh|Tkpe4)X$fYVoW~|35a7)SltLu6 p$%edAj2V-Cc;z6*?DNWk;;DMUO3!U@d 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 diff --git a/PSCADA/SG-A通讯管理模版/database/opt_tag_info.xlsx b/PSCADA/SG管理机模版/database/opt_tag_info.xlsx similarity index 56% rename from PSCADA/SG-A通讯管理模版/database/opt_tag_info.xlsx rename to PSCADA/SG管理机模版/database/opt_tag_info.xlsx index 5856ab02c192cb66253fe7fb37509a858f3330c8..87634bdd087b2f0e64280a23ec39c5dc959c3fb7 100644 GIT binary patch delta 771 zcmew=^+k#=z?+#xgn@~HgW*k#V$VjtW=0MWqq1?s?8!43wd;>?DNWk;;DMUO3!U@d zZn9lo^2Bz_-|ELoFDfjjA2$4IV)5~ahuM#ybw#?Yztpx|D_^>24*$(CuA~pTJ05JD zVmxWh>ZgZH6d!4}2`WdcOf;G2bJzjfYmmT9=$GgoS1r9=Cw3ssBR zQZgDHYjbY?xO(!Gg@WC(zWUuq%k0C?-BWX)%zHh2OOMlY*L~OA{@(5R^>)=gRJVu! zJIZ;4fq}u6k%2(~NT=i{2NdNO6zeAz6zEmt=FFXN(2LnnpzVFr`wdU-`L0n2+N9Z3 z@hzZw>Wnkn8sGSw=qdgEZP~Q2^K$9?=J)?RzV5kZIeYzzIUMYz*QKvAvUPEmH&@-> zqazo3{E^`=AC6`#rqx?_@7=h5Dp!c-f!JUL{w)2Vu&Cl2ho9`smyniR=@)k^qI}jd zL)MCAA1oQW;-o$=NEAE3Q5d++snl#8->3M@B?Y_sx6e+_v`e4wbyBk;Q#aO6zWABt z#oyt+Okw|9mp}O?_lGb2S89EJ-H+7Nulf1kc~SkmIf0pnkp&cCn+sUpLRpDyf>2f& zI~$bMz_Er2tZuRaw=E)uOS#QCLAt?VH+d_!DMZaXZmIe}W(J1%qSTyXeLWBv;LXUy zz<@|8s%0(@j{!q^Gb;lFFEF%00LTS`L>2~yiX8polFFRaVo<=NYpuPk=6@Hc&P$jXYuer9JGo@%08VPELomkl%15HpN-Ar3q2dS%YY^}05z?+#xgn@~HgJHuA)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEkY*1D`#~LQEy2<+7wumS$;Wp<4=>`YhS6ja*cliqa`emdi?WmQ^Rq#5hHmMFo(?DNWk;;DMUO3!U@d zZn9lo^2Bz_-|ELoFDfjjA2$4IV)5~ahuM#ybw#?Yztpx|D_^>24*$(CuA~pTJ05JD zVmxWh>ZgZH6d!4}2`WdcOf;G2bJzjfYmmT9=$GgoS1r9=Cw3ssBR zQZgDHYjbY?xO(!Gg@WC(zWUuq%k0C?-BWX)%zHh2OOMlY*L~OA{@(5R^>)=gRJVu! zJIZ;4fq}u6k%2(~NT=i{2NdNO6zeAz6zEmt=FFXN(2LnnpzVFr`wdU-`L0n2+N9Z3 z@hzZw>Wnkn8sGSw=qdgEZP~Q2^K$9?=J)?RzV5kZIeYzzIUMYz*QKvAvUPEmH&@-> zqazo3{E^`=AC6`#rqx?_@7=h5Dp!c-f!JUL{w)2Vu&Cl2ho9`smyniR=@)k^qI}jd zL)MCAA1oQW;-o$=NEAE3Q5d++snl#8->3M@B?Y_sx6e+_v`e4wbyBk;Q#aO6zWABt z#oyt+Okw|9mp}O?_lGb2S89EJ-H+7Nulf1kc~SkmIf0pnkp&cCn+sUpLRpDyf>2f& zI|r22#Br7xtZs5Jk1ZmGXYiPFf^>t!Zt@KtQ-~TtUMa@F$vV7J5Uv-mluaTF14BiQ zesM`+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEk98gvx$602uy2(L2wumU6&STCA(hUy0$=7*IA!-D8r5J-IYx7D)fh1MSTpk_+ zhU#Wk1_oYW$btZn3j|3l3=9=H`o$%cIjO~?DNWk;;DMUO3!U@d zZn9lo^2Bz_-|ELoFDfjjA2$4IV)5~ahuM#ybw#?Yztpx|D_^>24*$(CuA~pTJ05JD zVmxWh>ZgZH6d!4}2`WdcOf;G2bJzjfYmmT9=$GgoS1r9=Cw3ssBR zQZgDHYjbY?xO(!Gg@WC(zWUuq%k0C?-BWX)%zHh2OOMlY*L~OA{@(5R^>)=gRJVu! zJIZ;4fq}u6k%2(~NT=i{2NdNO6zeAz6zEmt=FFXN(2LnnpzVFr`wdU-`L0n2+N9Z3 z@hzZw>Wnkn8sGSw=qdgEZP~Q2^K$9?=J)?RzV5kZIeYzzIUMYz*QKvAvUPEmH&@-> zqazo3{E^`=AC6`#rqx?_@7=h5Dp!c-f!JUL{w)2Vu&Cl2ho9`smyniR=@)k^qI}jd zL)MCAA1oQW;-o$=NEAE3Q5d++snl#8->3M@B?Y_sx6e+_v`e4wbyBk;Q#aO6zWABt z#oyt+Okw|9mp}O?_lGb2S89EJ-H+7Nulf1kc~SkmIf0pnkp&cCn+sUpLRpDyf>2f& zJ3Exs$nlB^tZs5Xw=E)uw{V+tf^>t!Zt@pyQ-~T}9x1CpW(J1%qSTyXeLWBv;LXUy zz<@|8s%0(@j{!q^Gb;lFFEF%00LTS`#L103G7xhX@<=fSu}#irlbL*zhbIPP)6y^b z0r!BaB7ute!Rlf9(%BgpDsuG8^NX^R^7FGnQHE~mg`N%EWk5}hKrDiyxoEN@uOp+> N+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEk>`+z%$15hVy2*LmwumU+%x%sI(hUy0$)CARA!>AZq^yFN85rV=Qge#+^+05R zHzN}R10t!YmbpAU1`O)WtPBjiz~BY}AQuRdCO7cNK+IXdBgGWVHaU+?X7UXlo*0l# zOTXj?+yknL1S;kStB2{!U}s>c$k8v)FUn5J&(8+M8M>txdNy#E0W~!Ou?ULh;>ixY Qj*QZin|QU^;<-Um01}uVAOHXW diff --git a/PSCADA/SG-A通讯管理模版/database/p_dict.xlsx b/PSCADA/SG管理机模版/database/p_dict.xlsx similarity index 93% rename from PSCADA/SG-A通讯管理模版/database/p_dict.xlsx rename to PSCADA/SG管理机模版/database/p_dict.xlsx index 48355fd25cabd0767b84250e60c42b20f654105b..7afdef53855c1ba9857dd6902181d52726fb44ec 100644 GIT binary patch delta 741 zcmZ3yg>lgqM!o=VW)=|!CI$|Mlo-XHjeO0F93VzzbOyyGm>aJgr$)WS-K_Ei_E z7PF;fG&-gv!OuS`=<9Bp4{_YqY$)7 zv#H`+K=sraXSOxI@j1~``up3mX<_H(()Z2p|9O1fbIo%0`W16H*h{ZVUu9(L;w*2j zy1hq7F7)^#!(Toe%~njSx9;A%as5=T5YGd#!3z9Y`axk)#WxN=*_kgPExFP!?p8$k ztYe0(70W(YGIqsDeO{0#c7UTWaGg`B**d;Y@tI2scJ*(cot$ZxKHux4W<{oMte<@G zGs}y=!+n{;{F&724+t3YN3hWMh?oML@F5EaNGYmiE)S0ZLwYkS0|PHGv_SyK1%kxMA0lKR<_JVeF$J+r&S#UE>=DTm1F~uT znplS$KvjW2#r$CPFn#Il3=9=H`sMjW*-82N*`O#xxAa2K2JSMTrbZwZLD8Huc|)Wl UlL+TzLr$s5yio#dXTw4A0BX7u-2eap delta 745 zcmZ3qg>mr~M!o=VW)=|!CI$|MX){z~Hu5zya)1~wzqB5iJd;to{t91^itoXLz6BQ| z=e^y`yUg=sb;j@S$6PObEYfRVJiD^wQRl>*4_og%X%%^K`$FXX>z|73Ql^R=d0<^| zFj-ez<>rj9UfUHPX|{1HN2^RUnU`g0;BUQjg=_)KDdBIOcbsJ!FZb-7wV>9af0a(x zTB(T(nc2Q>OuZbg-dpBS<0D&N-hH>u@Z7yL_szW5!?*M-I&pf>nk~O}XMVk%dJom@ z2d;iPb(DdD!IqJMK>$dnevZU|n zicFcs?dqT8g%`Zo_xhSt8Y7QD*w644dB@&HzMIPS>H6;<8}>hWwfULhbCJE1Z(UmU z!%lsk^4{8M8VO(OD}3eT^WJZWy}kYKv)TXG^!$6ByPpBo)0^X&c^FwhF}69Mzz zz$OS~m9jHJSydeI{$O>J?}pnVqF5=yoD-xQ9C(wHB1|D_W=BX_1u-))#22OJ6zl7O z$N+CfCI$vXQc*2)d3X#M)SFou7!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? zofXQe=lIACRyVms#1;|5J4MVnLAt?VH~FWCsXU11l_mJ|IWPo$m>3wifiwsJ0~H7Y zC;N&@LCnb(m9j}>VPL4p(JwBk%tis4BTx?_J=I=T^S=w!X9g6N0-FFcDQNOR oQB8+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEktWZ`R$473ky2-^NwumU+A!5!6(hUy0$v;F)A!-aor5J-I`-n7*0#U+(Fsl}l14De=TVqid|o!ZN4{&#`lZUz*U0@5G=j0zwKo_s)56JpX^puriF dImF~3TrDvv#=^<2VvdZGliS6#*-}J6>H*5r67B#1 diff --git a/PSCADA/ECMS电厂行业模版/database/pa_area_info.xlsx b/PSCADA/SG管理机模版/database/pa_area_info.xlsx similarity index 55% rename from PSCADA/ECMS电厂行业模版/database/pa_area_info.xlsx rename to PSCADA/SG管理机模版/database/pa_area_info.xlsx index d0e722d9de8509a8bc14efeaf9071a500d766d02..510af42f3835f9e7b34b310a336f8032a0d7dabf 100644 GIT binary patch delta 675 zcmX>jd0LV$z?+#xgn@~HgCQkGv1cP+Gb0CxQQ5d*_T-t2+Vw}clqPL^@IcMth0ghJ zH`y*Pd1AZeZ}nrP7ZsM%4;y|pvG{nz!|X@Ux*}cHUus*fl`q{hhyP|6SJDUF9S=56 zF`l$$_0vNpijOqg1eK#zCYsFix@p{Ry>!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? zofXQe=U`z1tDD@;Ws8X6GhF7JAl=}wo6N&)Di7j$WeNU#4h%sbCI$v>APoY*Km~%p z$qC$25OeCdr5F<@&*YX-0BNbctmc0gsK5-UMGCAGrX`4Naz2}kK!7(RPzsUKCNuI# gF{V$J;gN$FX9wgKOpfGnWR#dZn@5|ij0tc}9{iz?+#xgn@~HgJJee)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEktWZ`R2MZHe-Q+edTSOF}<}&95=>`YhWNvO#c@WPlOYrA&U=aE+F)(lgX%GO0 zDi8!sj^~zwm{ZFw#h5gC2Dgj?NK5TyHUGOn1!h1kQedSpEx~M)^Vno2f8gc;>zl+Q g#h5W!nnw;|iY<^^I5~pHkx_E;EFNvPaxRc&0QUqBQvd(} diff --git a/PSCADA/ECMS电厂行业模版/database/pa_audio_info.xlsx b/PSCADA/SG管理机模版/database/pa_audio_info.xlsx similarity index 55% rename from PSCADA/ECMS电厂行业模版/database/pa_audio_info.xlsx rename to PSCADA/SG管理机模版/database/pa_audio_info.xlsx index a7bb3acae89082c25ad9913ff7e25091e1546a9c..42db4f3f42bc66ab9701dcf45dd530e15a88f281 100644 GIT binary patch delta 690 zcmew<`9qQ~z?+#xgn@~HgCQkGv1cP+Gb0CxQQ5d*_T-t2+Vw}clqPL^@IcMth0ghJ zH`y*Pd1AZeZ}nrP7ZsM%4;y|pvG{nz!|X@Ux*}cHUus*fl`q{hhyP|6SJDUF9S=56 zF`l$$_0vNpijOqg1eK#zCYsFix@p{Ry>!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? zoej!r;4okUtDC%q%N7yCKe@~~LAt?VH`$WgR360h$`btf92kN=ObiU%KpF&qfeHkH zlY6is4BTx?_J=I=T^S=w!X9g6N0-FFcDQGey tk0!(^vRw)au9Adj}%iO$K*Z^vB`6Jv=}8PpWxAETg(O04FF912t@z@ delta 664 zcmew%`BRcFz?+#xgn@~HgJJee)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEkY*1D`hXE5<-Q>+&wumVH!DY?~(hUy0$rjwE5H*F|Qj9^9d$^?_+*RCCHc2cD z3>7*0#U+(Fsl}l14De=TVqid|o!ZN4{&#`lZUz*U0@5G=j0zwKp2VXGF-Vt3iZNrd c2agX6JWR#kGoJX5&2^UB?0BgGvpa1{> diff --git a/PSCADA/ECMS电厂行业模版/database/pa_broadcast_group.xlsx b/PSCADA/SG管理机模版/database/pa_broadcast_group.xlsx similarity index 55% rename from PSCADA/ECMS电厂行业模版/database/pa_broadcast_group.xlsx rename to PSCADA/SG管理机模版/database/pa_broadcast_group.xlsx index a17fd97336000db09aa03cbb44a091c481239c16..4d834cb3b3a379e612e46f949964935f348375e6 100644 GIT binary patch delta 747 zcmZpYYLwy&@MdNaVPIn5U`UBk?AgfI%*X*^R5osyJ$WXhcKs19rAgZ!JW#WEp>zJ* zO}5KRp4e{rTm4w+MTO<`!-ii?EIuCbF#8d-u1J^lm)e$V;lCNimGnV($AgVi zj3=#G{q&HD;v>yALFH(bi6-;BZW{MnFJ1Ankl~c@x6V7xG7Xn|=1MKBbZB37p=vQ( zN=Bn&ZO+XfS5Ka@P_SFpSHJscnSJ=Vdur~Jd9R0W>2Z4Qy6>9X-@84(-mbcb>h|z| zM>&r$FfiCMGB5}L>6HBBfTH|@V*SK|0=3p$ zz6DfIopEMc;~Sq7J*B_DEt?j0UM_v#{QjTE*FD!PXRlu|hl9QJy7W~>wl2={=BnF! zbmT&hKQjE~!_jQTw0i6Ay&Kn0c;xX7eBMS z_&eN}DeQmi@+aTq{_v&$O0CbY`;nUZH9!A5FRGt6CouCcvVbCNa{A>L%~yvPHx&6Sp}hNH;j_COdJPLex}qOIZanGcd##rREgt>w(AsZ$>5t z21H6xEpvHz3>eazSs563fuRioKrRp@PCm~q12N}4w-i$l+vI#UnM`#3*G0+?KLDzZ z1#034X#)a?{&aQ*hKd~h^8BLgr2PDBP}HGozR4&-oO5-$S!57$dL!u1qYLL z#Z_+3`0BM?@sVa5r*gE)M3Z@0mInUTOIOGiu$&V9)_KQSrtxym-dPK39r{=4bgh+| zxR9Cc>&Dc};p)9*4mCcq_2u1n>kQA`OLO1Mdp&$h&!Q8j_pI6SYj@_?+o|_Z-G1Qe zr&C867#M6B85jhBbV`15Kv8}{v3_DffnG&!&fE#M+02GKZQmXK9e!y0{57v4%Y5gB zCGRGr>8@Mr&0}{mBCG1>_fn}}hUru0O=sV0w7b&lY`r9x`yof$EpxLNY+E~yJMMiq zKV16i1`8fN!9xr54rHZI=l&d|;XIM!P6+F#1%67Et4)6k`}E!J+Bj+AsV7VNp03E0 zS=_GvNnUuti+!)JNu@FJ2!#C%Uy*n0ZRESDY@e?G{;^^IlUJLc89o=;JNee7Wk2lH z=PB>4ou-lSrM|*fPCoDbhS=NN|2~`je@)N7*SY%{P(8glo|%V{1r%eO^I6_PSqW@{ zP*y2BCzRF1Va5bjH+c`2Eh35;xy?C2y1{`r*^%26qNa*l$|{JNfg!#qHK$l#4@3rd zGcqwSAd-q|najgtz@XmD%D})23~mqra)BUe@;Po9h&k`LrI>=*Cg-uqXrt@DE>eE@ z0Z?@;P!m5$8xTPBXG{*{ky8M<>O#*3?lPcwBM^aWE4O)1CZ2^?aRm-1*a%1*w( Lqs_LK3nU2u0E8G6 diff --git a/PSCADA/ECMS电厂行业模版/database/pa_ctrl_param.xlsx b/PSCADA/SG管理机模版/database/pa_ctrl_param.xlsx similarity index 55% rename from PSCADA/ECMS电厂行业模版/database/pa_ctrl_param.xlsx rename to PSCADA/SG管理机模版/database/pa_ctrl_param.xlsx index 3c0813ce2155939132df09cede886b5d64886494..1c3a063c2c77a9a8419413ffe87bd04dfe93d4b4 100644 GIT binary patch delta 717 zcmaDT`9P8{z?+#xgn@~HgCQkGv1cP+Gb0CxQQ5d*_T-t2+Vw}clqPL^@IcMth0ghJ zH`y*Pd1AZeZ}nrP7ZsM%4;y|pvG{nz!|X@Ux*}cHUus*fl`q{hhyP|6SJDUF9S=56 zF`l$$_0vNpijOqg1eK#zCYsFix@p{Ry>!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? zoej!r;E-SftD8KB%N7yC54p@aLAt?VH(8O}6rv`ITgobsnSmj`C^e^8Uk^kEcr!9F zFd$NjYMIN!W5AH!%*w#P3k+=#0CIsKaq>ED8HhROxTTna*e2(*$!MeN|LT1s;Vw{h x1W*${SRYJ(`eZ{MIeCz)F7#~RE(6Ln0JdTW#lQ-~avvqTUqyTxm3C92c delta 739 zcmaDL`B0KCz?+#xgn@~HgJJee)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEkY*1D`hXfN?-Q?L^wumTxz-7(}(hUy0$qL-25g?vdmf+9lz##NtVqo9~(jWi~ zRUimrW?+afO3f+O*8`CO-i$yci1edc=JN0uP~~P;1_oZR2AIaA$!ob~APzXoEyWbf zHaU+?MjKuKSMM7McY*pMfM)Qc=+BsJz#}IQa@>WU4cuiwxkexsK~YmQIhV(gQEKvf L9&NTBE|3%ein|$P diff --git a/PSCADA/SG-A通讯管理模版/database/pis_location_area_def.xlsx b/PSCADA/SG管理机模版/database/pa_location_area_def.xlsx similarity index 57% rename from PSCADA/SG-A通讯管理模版/database/pis_location_area_def.xlsx rename to PSCADA/SG管理机模版/database/pa_location_area_def.xlsx index 1ecc0205461d9763b6a8eb37fa6b512cf9a07f3e..b06695873f3cc1be51e1e1b66e27b11ab2ddc986 100644 GIT binary patch delta 752 zcmca7c}J2jz?+#xgn@~HgCQkGv1cP+Gb0CxQQ5d*_T-t2+Vw}clqPL^@IcMth0ghJ zH`y*Pd1AZeZ}nrP7ZsM%4;y|pvG{nz!|X@Ux*}cHUus*fl`q{hhyP|6SJDUF9S=56 zF`l$$_0vNpijOqg1eK#zCYsFix@p{Ry>!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK}KGX z*na6gp8LR%h@V`~enr3K?ujzT@`x+e?zNT2YzhmWhA#+u>ph7tZ}*3=j=1Zy3wifiwsJ;{gZ)nSl-{ zO3f+O*8`CO-i$ych!i(@0=E=n;^fubG7!5?b4xJ=u}#irlhH<33il4sV1BUKFgwyG j>+#4z^at=rF%@%6p2#6Kxrs-MQF`)P9&NUEE|78nAlw|z delta 754 zcmca3c~6orz?+#xgn@~HgJIeX)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zGV+4NIKuTGJpcwp!sI&kD+W)NO5fCb!`EH?e1-n~8SZ@RY`8;K)p}k!m@EFk>*DLU z&&+6MH*yFufz6&goy!)HEbefbbAn6<2l!+eZc}*>&nrvt=X0Q4K1>V@+&~%xfH46C zL6Zx(r6A_?aZ52KOM9PP>U2;DNIW++vGep8SMaXMxYcTdBXhz qG?*VnL&jts9yy2|emqi4r5uy{Im9M6@Mtm0PF~HU&DO~UQVsyEWhfv3 diff --git a/PSCADA/SG-A通讯管理模版/database/pa_location_seq_def.xlsx b/PSCADA/SG管理机模版/database/pa_location_seq_def.xlsx similarity index 55% rename from PSCADA/SG-A通讯管理模版/database/pa_location_seq_def.xlsx rename to PSCADA/SG管理机模版/database/pa_location_seq_def.xlsx index e800f3225b2d807384d9b19de19d759563696a42..7af93ac9299dc7f3991c790e5b4ac18e97d3280f 100644 GIT binary patch delta 671 zcmcaDc}tQnz?+#xgn@~HgCQkGv1cP+Gb0CxQQ5d*_T-t2+Vw}clqPL^@IcMth0ghJ zH`y*Pd1AZeZ}nrP7ZsM%4;y|pvG{nz!|X@Ux*}cHUus*fl`q{hhyP|6SJDUF9S=56 zF`l$$_0vNpijOqg1eK#zCYsFix@p{Ry>!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? zofFDx=HO=ntD8KH%N7yCx4FzYLAt?VH(8q7R360h$`btf92kN=ObiU%KpF&qfeHkH zlk>TyAm;RPOED%+UcoJ+0Mb%>S3OkTyK&DP2VG64X>AOi^i delta 696 zcmca5d0Ub%z?+#xgn@~HgJIeX)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEkoKRL12R{>7-Q=lUwumUc#bwS3(hUy0$x_^=@*tj9mf+9lz##NtVqo9~(jWi~ zRUinOoX0H%F{g)H$~K9GfuSNtzqq6_C$$(9$N}DrKs|^AReM>@|1MCU8BkOTYy!-r zV7AG5Y%-JobMruq=M~hK*@=6|Uwl*%15dcO~ B73%;1 diff --git a/PSCADA/SG-A通讯管理模版/database/pa_operator_def.xlsx b/PSCADA/SG管理机模版/database/pa_operator_def.xlsx similarity index 55% rename from PSCADA/SG-A通讯管理模版/database/pa_operator_def.xlsx rename to PSCADA/SG管理机模版/database/pa_operator_def.xlsx index 339c892a84c2998005be3ba1e5901a439b206304..a2f7760549378246ed9424deb9e3e6e825b75099 100644 GIT binary patch delta 711 zcmcaEc}!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? zogK<*M}!oX0GqhDN7nUh)!3gZB8MkWRZM0%>dtmc0gsL%{3Dh1X8(;77S zKDQ>sHXa@+#`MYRJaP&k+b;BM;4T9yZ3JQw6fH#@llwWuCRg)lF-lEd#-q*F$OV!I E01gZZng9R* delta 712 zcmca6d0mn(z?+#xgn@~HgJIeX)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEk>`+z%2QL#?-Q)MFHUGOng=RoeDX!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? zogK<*7tD8KF%N7yC_qohDLAt?VH(8$B)E30^$`btf92kN=ObiU%KpF&qfeHkH z%nS_iMX5Q(`g$NTz?%`M1d)6uPvn+jOq{%iTLxm+8Ez@2AhyZ*Y%<#DO8-8t2)+k2 uF$!ofKiF)T9qE(xdE_Aa19_yFiZ~|sbBIlD=Fwu5n!Jujo2`=zq#OX2f(YjT delta 702 zcmca7d0&z*z?+#xgn@~HgJIeX)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEk>`+z%hbR+R-Q<~EwumUc$7Rk5(hUy0$#UGLwjiEYmf+9lz##NtVqo9~(jWi~ zRUimrW?+afO3f+O*8`CO-i$yci1agg0=E=n(&W|LG7!5?b4xJ=vrW!plhH<3`uA}~ x@I9c3Q9y(F!Dhqk$e66hBL~qRz$3*}%rUu-Lu_&rj~1i!!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? zogK<*n+a delta 670 zcmca1eN&n*z?+#xgn@~HgJIeX)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEk>`+z%2R}1d-Q>yKwumUc!EMe7(hUy0$r3!K5H*23Qj9^9b9kg6+%6s|n| diff --git a/PSCADA/ECMS电厂行业模版/database/pis_area_info.xlsx b/PSCADA/SG管理机模版/database/pis_area_info.xlsx similarity index 56% rename from PSCADA/ECMS电厂行业模版/database/pis_area_info.xlsx rename to PSCADA/SG管理机模版/database/pis_area_info.xlsx index 279dd85d1e460ef0af858508bfbcac1a92cf7f36..e5239746f8412f61cf87bbbb8d59b35201a00cc8 100644 GIT binary patch delta 680 zcmX>rc}9{iz?+#xgn@~HgCQkGv1cP+Gb0CxQQ5d*_T-t2+Vw}clqPL^@IcMth0ghJ zH`y*Pd1AZeZ}nrP7ZsM%4;y|pvG{nz!|X@Ux*}cHUus*fl`q{hhyP|6SJDUF9S=56 zF`l$$_0vNpijOqg1eK#zCYsFix@p{Ry>!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? zoej!r;9y|_tDD@xWs8X6vs~t!Al=}wo6O5?Di7j$WeNU#4h%sbCI$v>APoY*Km~%p z$%))j5OeCer5F<@&*GMWaCdP_F$J+r&S#U+4)A6KYD6TeNgrjo?gBMO0L|bB8v`>g leX=Z%97Ml8j}%iO$K*Z^vB`xzT8xsD=kRE=m2-iV0{~Da0{Z{} delta 676 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 a#~`{PmKIM|;B{n_o}9$1&1TCDk^un2D-pr~ delta 743 zcmbOvJz1JBz?+#xgn@~HgJIeX)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEk98gvx#|b8|y2-xWwumU6#BI(A(hUy0$(OiIA!@jJq^yFN85rV=Qge#+^+05R zHzN}R10t!YmbpAU1`O)WtPBjiz~BY}AQuRdCdc#0K+LJ3y;(Kk zK2UWuP!m5`A54D+I|D;Sj(&N5QFc;(el{rX&^2G^*}z=})YJ&XA}E?mCd>0WGRjO& M!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? zoeRop;SgW~tD8K7%N7yCce%_tLAt?VH(8e3R360h$`btf92kN=ObiU%KpF&qfeHkH zlMA_}Am;RQOED%+Ud1f~;hy4_VhUoLoX;ks9pKFf)QCt_m6hhR9|AQe0L|bB8v`>g feX=f(97MlAj}&9++3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEkTu@dshX4~;-Q?+9wumUc!)4A1(hUy0$uiug@*tj9mf+9lz##NtVqo9~(jWi~ zRUinOT)-^_F{h7PiZN;ON^Thike1rZYW{bD3e137q`*pHT7uao=dsBM1b8z7r4UJN qvLKHXW5#419yy3{emqi4WgL?ya)?cC;L&1~o4lGwo2`QjWE23O6A*g< diff --git a/PSCADA/SG-A通讯管理模版/database/pa_location_area_def.xlsx b/PSCADA/SG管理机模版/database/pis_location_area_def.xlsx similarity index 58% rename from PSCADA/SG-A通讯管理模版/database/pa_location_area_def.xlsx rename to PSCADA/SG管理机模版/database/pis_location_area_def.xlsx index 23b8b194a0f0123349a98ace1d89a98a89f607c0..5f3c9786a330346ee0901ff42e3c30cb2e734df2 100644 GIT binary patch delta 708 zcmcaBc~_Dzz?+#xgn@~HgCQkGv1cP+Gb0CxQQ5d*_T-t2+Vw}clqPL^@IcMth0ghJ zH`y*Pd1AZeZ}nrP7ZsM%4;y|pvG{nz!|X@Ux*}cHUus*fl`q{hhyP|6SJDUF9S=56 zF`l$$_0vNpijOqg1eK#zCYsFix@p{Ry>!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK}KGX z7)QANqX)o{NSIvDe#PL)Qt6v|Z}_^apRdrrKf|4Goeg)$s#?!W2Xn?RH&Ca~F)XK>jfQpH^^b54-y;P9R-%WWzT;(28W{(KI!%ZG`9fg4DJ05BqeAaHUa zw-m&jer_qo#L26;Wgy&B+)_+IY?JfZWV8dk8G#xR2@&pepc(vNV_?RmPuAs;gXs6? G=>q^Aa1@{b delta 708 zcmcaBc~_Dzz?+#xgn@~HgJIeX)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zGV+4N_DlEi+y@3l{Ny_JEBY;WPn0>9M_jRXudO_0Q&{jcd_mA#?@4@lyFY|=#9f~y zk7jfehY%Ck=*csvIKuV2U_LB#K6D}q(J}}5kL?$ zxsY25VopD|6l2olRopTV?kR35reLzJ* zO}5KRp4e{rTm4w+MTO<`!-ii?EIuCbF#8d-u1J^lm)e$V;lCNimGnV($AgVi zj3=#G{q&HD;v>yALFH(bi6-;BZW{MnFJ1Ankl~c@x6V7xG7Xn|=1MKBbZB37p=vQ( zN=Bn&ZO+XfS5Ka@P_SFpSHJscnSJ=Vdur~Jd9R0W>2Z4Qy6>9X-@84(-mbcb>h|z| zM>&r$FfiCMGB5}L>6HBBfTH|@V*SK|0=3p$ zz6DfIopEMc;~Sq7J*B_DEt?j0UM_v#{QjTE*FD!PXRlu|hl9QJy7W~>wl2={=BnF! zbmT&hKQjE~!_jQTw0i6Ay&Kn0c;xX7eBMS z_&eN}DeQmi@+aTq{_v&$O0CbY`;nUZH9!A5FRGt6CouCcvVbCNa{L%~uvPHx&BeyvxNH;j_COdMQLex}oOIZanGcd##rREgt>w(AsZ$>5t z21H6xEpvHz3>eazSs563fuRioKrRp@PCmyi12N|vw-i$l+vI#U8Etg^zVk!p+y|x1b}pB%^|rvP%*g`N%EWk9(`AQnMUQ_L}W0*Bb-r94`U(vvUnXtS;60?7ja DN4p9n delta 743 zcmZpWYLwy&@MdNaVPIn5V3;;THD)7UGb0Cx@$yUSk;yX|wd=3&1*!NRJm_0+A#&c^ z&AiJzPgZCA{(j8$!p9=L_QkU+OCEJj%=xhO&XZP=7q>4&-oO5-$S!57$dL!u1qYLL z#Z_+3`0BM?@sVa5r*gE)M3Z@0mInUTOIOGiu$&V9)_KQSrtxym-dPK39r{=4bgh+| zxR9Cc>&Dc};p)9*4mCcq_2u1n>kQA`OLO1Mdp&$h&!Q8j_pI6SYj@_?+o|_Z-G1Qe zr&C867#M6B85jhBbV`15Kv8}{v3_DffnG&!&fE#M+02GKZQmXK9e!y0{57v4%Y5gB zCGRGr>8@Mr&0}{mBCG1>_fn}}hUru0O=sV0w7b&lY`r9x`yof$EpxLNY+E~yJMMiq zKV16i1`8fN!9xr54rHZI=l&d|;XIM!P6+F#1%67Et4)6k`}E!J+Bj+AsV7VNp03E0 zS=_GvNnUuti+!)JNu@FJ2!#C%Uy*n0ZRESDY@e?G{;^^IlUJLc89o=;JNee7Wk2lH z=PB>4ou-lSrM|*fPCoDbhS=NN|2~`je@)N7*SY%{P(8glo|%V{1r%eO^I6_PSqW@{ zP*y2B2b9&wVa5bjH+eUgEj)@Rahr33G=sx#vIDni1c>LACHV6>Fa&*=7#O&LGzb6# z6$pZu85rV=Qge#+^+05RHzQC9BKfG6xjZ}uRJoazfq@sS0j4o&@>y;fi2ZN5rI>=* zCg-uqXrt@*ogX^qK2TpY&!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? zofpb#=UC1GRyWy5&=wKH<$~s%Al=}wo4j4n6r$#XpcG@^WNsm;D3GLTnajgtz(C#1 z%D})23|J5Va)BU`g@K_WN58nFGAFed6vhGGj7$s+i1bu@S9MQxgh% delta 712 zcmeyS_FauHz?+#xgn@~HgJIeX)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEkyiisf$8rv^y2*xuwumS$6Ex=p=>`Yh&v#=wRBIjfqPN~TW!UAkc Hf*^SSeLxqz diff --git a/PSCADA/SG-A通讯管理模版/database/point_lock_config_info.xlsx b/PSCADA/SG管理机模版/database/point_lock_config_info.xlsx similarity index 59% rename from PSCADA/SG-A通讯管理模版/database/point_lock_config_info.xlsx rename to PSCADA/SG管理机模版/database/point_lock_config_info.xlsx index 53bd4cd7c7f1150ac0d2fd546b6b25cf85d7b751..70d10cd1905eb462957ccdb08cc1fa834c182ccd 100644 GIT binary patch delta 672 zcmew@^Gk*=z?+#xgn@~HgCQkGv1cP+Gb0CxQQ5d*_T-t2+Vw}clqPL^@IcMth0ghJ zH`y*Pd1AZeZ}nrP7ZsM%4;y|pvG{nz!|X@Ux*}cHUus*fl`q{hhyP|6SJDUF9S=56 zF`l$$_0vNpijOqg1eK#zCYsFix@p{Ry>!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? z9VXkxv4$C}Zn7DVEh2`idCWOMy1`*Lc{h)#Jc#F&CHV6>Fa&*=7#O&LGzb6#6$k<+ z^YcnU%+ckQVoaRu!7HNx(o%a_&HpY?ff-PX6j&)tOAy=Sd^VZM3wU`T`ZfUdrB6Q1 gD+l4e1#-(LbMQGb$#YJ&;gp)3$|u04$^$Y20H|UE-~a#s delta 696 zcmew*^IL{5z?+#xgn@~HgJIeX)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEkFxgg)HOydjlTCSS5m8*lW6lZE4Gz4?yLe3HK|HT4!Jp58LFmK8z`zZpK>!%4 zKoB&Uk5>v}jt;MsZ4wIuLq(2$aYz)7WAZ6pISBU+kXtdCozIa;fpfAor_|&WJ^?m09*_|LC7Tu? diff --git a/PSCADA/SG-A通讯管理模版/database/point_task_link.xlsx b/PSCADA/SG管理机模版/database/point_task_link.xlsx similarity index 56% rename from PSCADA/SG-A通讯管理模版/database/point_task_link.xlsx rename to PSCADA/SG管理机模版/database/point_task_link.xlsx index c401dfcfefd573b7c611085ee2127ff0c464297f..cec7a9adbeee4b7d7100baa8a7dbf7fb0c1352cc 100644 GIT binary patch delta 701 zcmeB|>XYIN@MdNaVPIn5U`UBk?AgfI%*X*^R5osyJ$WXhcKs19rAgZ!JW#WEp>zJ* zO}5KRp4e{rTm4w+MTO<`!-ii?EIuCbF#8d-u1J^lm)e$V;lCNimGnV($AgVi zj3=#G{q&HD;v>yALFH(bi6-;BZW{MnFJ1Ankl~c@x6V7xG7Xn|=1MKBbZB37p=vQ( zN=Bn&ZO+XfS5Ka@P_SFpSHJscnSJ=Vdur~Jd9R0W>2Z4Qy6>9X-@84(-mbcb>h|z| zM>&r$FfiCMGB5}L>6HBBfTH|@V*SK|0=3p$ zz6DfIopEMc;~Sq7J*B_DEt?j0UM_v#{QjTE*FD!PXRlu|hl9QJy7W~>wl2={=BnF! zbmT&hKQjE~!_jQTw0i6Ay&Kn0c;xX7eBMS z_&eN}DeQmi@+aTq{_v&$O0CbY`;nUZH9!A5FRGt6CouCcvVbCNa{L#D!vPHx&Kest2NH;j_Ci`=n+JbmqS%N>G14Gba&9;*Zq#OX}9tjQr delta 702 zcmeB^>X+gR@MdNaVPIn5V3;;THD)7UGb0Cx@$yUSk;yX|wd=3&1*!NRJm_0+A#&c^ z&AiJzPgZCA{(j8$!p9=L_QkU+OCEJj%=xhO&XZP=7q>4&-oO5-$S!57$dL!u1qYLL z#Z_+3`0BM?@sVa5r*gE)M3Z@0mInUTOIOGiu$&V9)_KQSrtxym-dPK39r{=4bgh+| zxR9Cc>&Dc};p)9*4mCcq_2u1n>kQA`OLO1Mdp&$h&!Q8j_pI6SYj@_?+o|_Z-G1Qe zr&C867#M6B85jhBbV`15Kv8}{v3_DffnG&!&fE#M+02GKZQmXK9e!y0{57v4%Y5gB zCGRGr>8@Mr&0}{mBCG1>_fn}}hUru0O=sV0w7b&lY`r9x`yof$EpxLNY+E~yJMMiq zKV16i1`8fN!9xr54rHZI=l&d|;XIM!P6+F#1%67Et4)6k`}E!J+Bj+AsV7VNp03E0 zS=_GvNnUuti+!)JNu@FJ2!#C%Uy*n0ZRESDY@e?G{;^^IlUJLc89o=;JNee7Wk2lH z=PB>4ou-lSrM|*fPCoDbhS=NN|2~`je@)N7*SY%{P(8glo|%V{1r%eO^I6_PSqW@{ zP*y2B2b9&w;lcz~H~A!&Eh38fxXn31y1{`r*^k@Q7R2+)68!lb7=%7d3=G^r8U%o$ z3IsvS3=Hu_sX4{^dLS~un-Qo4k$xs0;Fe-cntYpE24dH5ZYic`o3TQAt*ld^`8I$99T7C`_2 diff --git a/PSCADA/SG-A通讯管理模版/database/psc3000_plugin.xlsx b/PSCADA/SG管理机模版/database/psc3000_plugin.xlsx similarity index 58% rename from PSCADA/SG-A通讯管理模版/database/psc3000_plugin.xlsx rename to PSCADA/SG管理机模版/database/psc3000_plugin.xlsx index 6931abbd91152faef6d452a1c4203057b7acdf06..ca62f6e6044acb193c7ec53f99590aea653795e8 100644 GIT binary patch delta 742 zcmbOvGf{>wz?+#xgn@~HgCQkGv1cP+Gb0CxQQ5d*_T-t2+Vw}clqPL^@IcMth0ghJ zH`y*Pd1AZeZ}nrP7ZsM%4;y|pvG{nz!|X@Ux*}cHUus*fl`q{hhyP|6SJDUF9S=56 zF`l$$_0vNpijOqg1eK#zCYsFix@p{Ry>!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? zoej!r;P7MytDAh5+ZGYSLOkZ2Al=}wn;gVr3Q^O|BV`rH%)k&|l$ukluLmLnycwAo z7!WB%wan$=Fx1b}XJ=rj$k8v)FUn5J&(8)$9lGWVJsY^ofSMYCSOi6L;pF+ej*OC%AM$Fm J?coMV0RSE44#5Bb delta 718 zcmbOzGf9Roz?+#xgn@~HgJIeX)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEkY*1D`hbJ>w-Q+XewumSe`YhBFt|Yg$OVF=$@h3LwOP!m5`A54G7 diff --git a/PSCADA/ECMS电厂行业模版/database/region_info.xlsx b/PSCADA/SG管理机模版/database/region_info.xlsx similarity index 57% rename from PSCADA/ECMS电厂行业模版/database/region_info.xlsx rename to PSCADA/SG管理机模版/database/region_info.xlsx index e03212a2dd4bd461af639d0b24b7f47248ae93ba..0542493d2eda02344cecd5325f6f7d4d709959bc 100644 GIT binary patch delta 685 zcmaDU^+Jj-z?+#xgn@~HgW*k#V$VjtW=0MWqq1?s?8!43wd;>?DNWk;;DMUO3!U@d zZn9lo^2Bz_-|ELoFDfjjA2$4IV)5~ahuM#ybw#?Yztpx|D_^>24*$(CuA~pTJ05JD zVmxWh>ZgZH6d!4}2`WdcOf;G2bJzjfYmmT9=$GgoS1r9=Cw3ssBR zQZgDHYjbY?xO(!Gg@WC(zWUuq%k0C?-BWX)%zHh2OOMlY*L~OA{@(5R^>)=gRJVu! zJIZ;4fq}u6k%2(~NT=i{2NdNO6zeAz6zEmt=FFXN(2LnnpzVFr`wdU-`L0n2+N9Z3 z@hzZw>Wnkn8sGSw=qdgEZP~Q2^K$9?=J)?RzV5kZIeYzzIUMYz*QKvAvUPEmH&@-> zqazo3{E^`=AC6`#rqx?_@7=h5Dp!c-f!JUL{w)2Vu&Cl2ho9`smyniR=@)k^qI}jd zL)MCAA1oQW;-o$=NEAE3Q5d++snl#8->3M@B?Y_sx6e+_v`e4wbyBk;Q#aO6zWABt z#oyt+Okw|9mp}O?_lGb2S89EJ-H+7Nulf1kc~SkmIf0pnkp&cCn+sUpLRpDyf>2f& zI}4Om$FYbBtZuRjw=E)uGr7$3wifiwsJ0~H7Y zC;#P^f|w)CBW07w!oX0GqhDN7nUh)!3gZB8MxY)+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEkEKpW0$08=My2;AiwumUs;5O$3=>`YhH+Uh6hZ(1 diff --git a/PSCADA/SG-A通讯管理模版/database/report_type_info.xlsx b/PSCADA/SG管理机模版/database/report_type_info.xlsx similarity index 57% rename from PSCADA/SG-A通讯管理模版/database/report_type_info.xlsx rename to PSCADA/SG管理机模版/database/report_type_info.xlsx index 2de801f65feb7a731cf57d98b92be31ca4f26d99..2fb56c488a7bcea2a6711bba2e0cd91da175ee4d 100644 GIT binary patch delta 711 zcmX>mbySKkz?+#xgn@~HgW*k#V$VjtW=0MWqq1?s?8!43wd;>?DNWk;;DMUO3!U@d zZn9lo^2Bz_-|ELoFDfjjA2$4IV)5~ahuM#ybw#?Yztpx|D_^>24*$(CuA~pTJ05JD zVmxWh>ZgZH6d!4}2`WdcOf;G2bJzjfYmmT9=$GgoS1r9=Cw3ssBR zQZgDHYjbY?xO(!Gg@WC(zWUuq%k0C?-BWX)%zHh2OOMlY*L~OA{@(5R^>)=gRJVu! zJIZ;4fq}u6k%2(~NT=i{2NdNO6zeAz6zEmt=FFXN(2LnnpzVFr`wdU-`L0n2+N9Z3 z@hzZw>Wnkn8sGSw=qdgEZP~Q2^K$9?=J)?RzV5kZIeYzzIUMYz*QKvAvUPEmH&@-> zqazo3{E^`=AC6`#rqx?_@7=h5Dp!c-f!JUL{w)2Vu&Cl2ho9`smyniR=@)k^qI}jd zL)MCAA1oQW;-o$=NEAE3Q5d++snl#8->3M@B?Y_sx6e+_v`e4wbyBk;Q#aO6zWABt z#oyt+Okw|9mp}O?_lGb2S89EJ-H+7Nulf1kc~SkmIf0pnkp&cCn+sUpLRpDyf>2f& zI|r22#8J%zRyUcE+ZGYSZrtXaAl=}wo7~223Q@D4TZ%Do@-1$uD3GLTnajgtz(C#1 z%D})23|J5Va)BU`g@K_WN58nFGAFed6vhGGj7$s+i1bu@Sqbxevcz?+#xgn@~HgJHuA)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEk98gvxM>P{z-6U>XL=3xfn{$FRgTroeE4L|F$>e?9QuRU13=Hu_sX4{^dLS~u zn~{lu0g+Nv%Um8F1BUcwRt5%MU}%E?kP8G!EDQ`4Ir_yVl{u-!pnyl$T69(a&j#)?plOXjEP`Tc a3CHAq4zbBEd9)a1CX4WDvwh?O$pZjRQYB3Q diff --git a/PSCADA/SG-A通讯管理模版/database/rm_dept_def.xlsx b/PSCADA/SG管理机模版/database/rm_dept_def.xlsx similarity index 56% rename from PSCADA/SG-A通讯管理模版/database/rm_dept_def.xlsx rename to PSCADA/SG管理机模版/database/rm_dept_def.xlsx index 7ed9df9cffd348c91d412ad2760d4036d565c43f..3c5c4b7ca587fa28275f8793a4dac2868d9177c3 100644 GIT binary patch delta 706 zcmew+`BjoHz?+#xgn@~HgW*k#V$VjtW=0MWqq1?s?8!43wd;>?DNWk;;DMUO3!U@d zZn9lo^2Bz_-|ELoFDfjjA2$4IV)5~ahuM#ybw#?Yztpx|D_^>24*$(CuA~pTJ05JD zVmxWh>ZgZH6d!4}2`WdcOf;G2bJzjfYmmT9=$GgoS1r9=Cw3ssBR zQZgDHYjbY?xO(!Gg@WC(zWUuq%k0C?-BWX)%zHh2OOMlY*L~OA{@(5R^>)=gRJVu! zJIZ;4fq}u6k%2(~NT=i{2NdNO6zeAz6zEmt=FFXN(2LnnpzVFr`wdU-`L0n2+N9Z3 z@hzZw>Wnkn8sGSw=qdgEZP~Q2^K$9?=J)?RzV5kZIeYzzIUMYz*QKvAvUPEmH&@-> zqazo3{E^`=AC6`#rqx?_@7=h5Dp!c-f!JUL{w)2Vu&Cl2ho9`smyniR=@)k^qI}jd zL)MCAA1oQW;-o$=NEAE3Q5d++snl#8->3M@B?Y_sx6e+_v`e4wbyBk;Q#aO6zWABt z#oyt+Okw|9mp}O?_lGb2S89EJ-H+7Nulf1kc~SkmIf0pnkp&cCn+sUpLRpDyf>2f& zJ1dk`&!NWzRyTPgmn|ZOzj2v!f^>t!Zn7D-DMU>^w-jUGq-{KN| delta 763 zcmew=`Aw29z?+#xgn@~HgJHuA)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEktWZ`RhaMAH-Q*2iwumVH%4N<8(hUy0$)?<<5H)$+QuRU13=Hu_sX4{^dLS~u zn~{lu0g+Tx%Um8F0|xbGRt5%MU~q!~kP8G!EDQ`4Ir_yVl{u-!ppZw`T69(a&j#)?plOXjEP`Tc U;p8SBM@GrXM|iZ^7IJ~40M0)oHvj+t diff --git a/PSCADA/SG-A通讯管理模版/database/rm_norm_func_def.xlsx b/PSCADA/SG管理机模版/database/rm_norm_func_def.xlsx similarity index 67% rename from PSCADA/SG-A通讯管理模版/database/rm_norm_func_def.xlsx rename to PSCADA/SG管理机模版/database/rm_norm_func_def.xlsx index d71d062181a50cf3bb665ed404db7c20b5098272..be07f3dd2232e3f295f86623d883fb678cb4d025 100644 GIT binary patch delta 669 zcmcbibX|!rz?+#xgn@~HgW*k#V$VjtW=0MWqq1?s?8!43wd;>?DNWk;;DMUO3!U@d zZn9lo^2Bz_-|ELoFDfjjA2$4IV)5~ahuM#ybw#?Yztpx|D_^>24*$(CuA~pTJ05JD zVmxWh>ZgZH6d!4}2`WdcOf;G2bJzjfYmmT9=$GgoS1r9=Cw3ssBR zQZgDHYjbY?xO(!Gg@WC(zWUuq%k0C?-BWX)%zHh2OOMlY*L~OA{@(5R^>)=gRJVu! zJIZ;4fq}u6k%2(~NT=i{2NdNO6zeAz6zEmt=FFXN(2LnnpzVFr`wdU-`L0n2+N9Z3 z@hzZw>Wnkn8sGSw=qdgEZP~Q2^K$9?=J)?RzV5kZIeYzzIUMYz*QKvAvUPEmH&@-> zqazo3{E^`=AC6`#rqx?_@7=h5Dp!c-f!JUL{w)2Vu&Cl2ho9`smyniR=@)k^qI}jd zL)MCAA1oQW;-o$=NEAE3Q5d++snl#8->3M@B?Y_sx6e+_v`e4wbyBk;Q#aO6zWABt z#oyt+Okw|9mp}O?_lGb2S89EJ-H+7Nulf1kc~SkmIf0pnkp&cCn+sUpLRpDyf>2f& zI|r22#L>$JRySFg-xd+W5&Y(yAl=}wn>>Tx6r$!LzZ7HO~pS(gq g4#GVpAjMS7F?j-q*yKL~T8z?@)djWLnD{}O04_xj9RL6T delta 712 zcmcbvbVG?Rz?+#xgn@~HgJHuA)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEk98gvxM=u*#-DDwtTSOFx^P6*mbb|wL@^pSvh?)!hQj9^9U-L^vfh1MSTpk_+ zhU#Wk1_oYW$btZn3j|3l3=9=H`o$%cIjO~hYi1)SbRLCnFFLe*ln zl#E8l+MJs|uAV$)pB6&zju3nySBD7GZNvkZy3;O+F%Q3Q_Y{SjsApnSmj`C^e^8Uk^kEcr!9F zFd$NjYMIN!W5AH!%*w#P3k+=#0CIsKadM!D48)v55h4&-oO5-$S!57$dL!u1qYLL z#Z_+3`0BM?@sVa5r*gE)M3Z@0mInUTOIOGiu$&V9)_KQSrtxym-dPK39r{=4bgh+| zxR9Cc>&Dc};p)9*4mCcq_2u1n>kQA`OLO1Mdp&$h&!Q8j_pI6SYj@_?+o|_Z-G1Qe zr&C867#M6B85jhBbV`15Kv8}{v3_DffnG&!&fE#M+02GKZQmXK9e!y0{57v4%Y5gB zCGRGr>8@Mr&0}{mBCG1>_fn}}hUru0O=sV0w7b&lY`r9x`yof$EpxLNY+E~yJMMiq zKV16i1`8fN!9xr54rHZI=l&d|;XIM!P6+F#1%67Et4)6k`}E!J+Bj+AsV7VNp03E0 zS=_GvNnUuti+!)JNu@FJ2!#C%Uy*n0ZRESDY@e?G{;^^IlUJLc89o=;JNee7Wk2lH z=PB>4ou-lSrM|*fPCoDbhS=NN|2~`je@)N7*SY%{P(8glo|%V{1r%eO^I6_PSqW@{ zP*y2B2b9&wv6Bm|ZnB-QEh37Wh0QrZy1{`r`LM7lM9m*zDXSo628Q^e)SO~{JrEh- z&B(;SfJiE;WiAho0fTxoD+2>BFt|Yg$OVF=$pIoV5OWGdq?m%)Cg-uqOkN?v69cm8 zuUzVc`#@DuK*juE^)P)I>> Qkx^!Hkf=7BzA#7%02tsM?DNWk;;DMUO3!U@d zZn9lo^2Bz_-|ELoFDfjjA2$4IV)5~ahuM#ybw#?Yztpx|D_^>24*$(CuA~pTJ05JD zVmxWh>ZgZH6d!4}2`WdcOf;G2bJzjfYmmT9=$GgoS1r9=Cw3ssBR zQZgDHYjbY?xO(!Gg@WC(zWUuq%k0C?-BWX)%zHh2OOMlY*L~OA{@(5R^>)=gRJVu! zJIZ;4fq}u6k%2(~NT=i{2NdNO6zeAz6zEmt=FFXN(2LnnpzVFr`wdU-`L0n2+N9Z3 z@hzZw>Wnkn8sGSw=qdgEZP~Q2^K$9?=J)?RzV5kZIeYzzIUMYz*QKvAvUPEmH&@-> zqazo3{E^`=AC6`#rqx?_@7=h5Dp!c-f!JUL{w)2Vu&Cl2ho9`smyniR=@)k^qI}jd zL)MCAA1oQW;-o$=NEAE3Q5d++snl#8->3M@B?Y_sx6e+_v`e4wbyBk;Q#aO6zWABt z#oyt+Okw|9mp}O?_lGb2S89EJ-H+7Nulf1kc~SkmIf0pnkp&cCn+sUpLRpDyf>2f& zJ1dk`&*9AiRyX+^k1ZmGg?Y_6LAt?VH#wNs6r!ewSIR1onSmj`C^e^8Uk^kEcr!9F zFd$NjYMIN!W5AH!%*w#P3k+=#0CIsKaq z>>Z$@FrZp~uyUBTban=YiX8p&{G#ln{QPWCjG^0kp=Sek8BkLr5R0H_E||Q4&yi7L N@*_TNw!J(cDFDVM7We=F delta 743 zcmbOvH(8D^z?+#xgn@~HgJHuA)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEktWZ`Rhc^pY-Q=@8wumSe;x*?4=>`YhBFt|Yg$OVF=$@h6>Am;q%m0}8Jo1DiclYy?Ed&wQy zJ3!T8Ku!E$eK7qQ>?DNWk;;DMUO3!U@d zZn9lo^2Bz_-|ELoFDfjjA2$4IV)5~ahuM#ybw#?Yztpx|D_^>24*$(CuA~pTJ05JD zVmxWh>ZgZH6d!4}2`WdcOf;G2bJzjfYmmT9=$GgoS1r9=Cw3ssBR zQZgDHYjbY?xO(!Gg@WC(zWUuq%k0C?-BWX)%zHh2OOMlY*L~OA{@(5R^>)=gRJVu! zJIZ;4fq}u6k%2(~NT=i{2NdNO6zeAz6zEmt=FFXN(2LnnpzVFr`wdU-`L0n2+N9Z3 z@hzZw>Wnkn8sGSw=qdgEZP~Q2^K$9?=J)?RzV5kZIeYzzIUMYz*QKvAvUPEmH&@-> zqazo3{E^`=AC6`#rqx?_@7=h5Dp!c-f!JUL{w)2Vu&Cl2ho9`smyniR=@)k^qI}jd zL)MCAA1oQW;-o$=NEAE3Q5d++snl#8->3M@B?Y_sx6e+_v`e4wbyBk;Q#aO6zWABt z#oyt+Okw|9mp}O?_lGb2S89EJ-H+7Nulf1kc~SkmIf0pnkp&cCn+sUpLRpDyf>2f& zI|r22#BqTMtZs4`w=E)uXLFl#f^>t!Zt`tzQ+W{2D@*X_b6^PiFflN218EQd1}YE) zPS)pn&vYP*0paL_X7Ade&n3f>6$@y$DlMnFlK=fSz>Pw&e hnnw=8<>i%PD(09xfkSMvJ+Bs{^yDmFZ8lf1tpLoF43hu= delta 696 zcmbOwJzJVDz?+#xgn@~HgJHuA)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEk98gvx#|0*^y2+v3wumU6#cj?B(hUy0$+x&o?DNWk;;DMUO3!U@d zZn9lo^2Bz_-|ELoFDfjjA2$4IV)5~ahuM#ybw#?Yztpx|D_^>24*$(CuA~pTJ05JD zVmxWh>ZgZH6d!4}2`WdcOf;G2bJzjfYmmT9=$GgoS1r9=Cw3ssBR zQZgDHYjbY?xO(!Gg@WC(zWUuq%k0C?-BWX)%zHh2OOMlY*L~OA{@(5R^>)=gRJVu! zJIZ;4fq}u6k%2(~NT=i{2NdNO6zeAz6zEmt=FFXN(2LnnpzVFr`wdU-`L0n2+N9Z3 z@hzZw>Wnkn8sGSw=qdgEZP~Q2^K$9?=J)?RzV5kZIeYzzIUMYz*QKvAvUPEmH&@-> zqazo3{E^`=AC6`#rqx?_@7=h5Dp!c-f!JUL{w)2Vu&Cl2ho9`smyniR=@)k^qI}jd zL)MCAA1oQW;-o$=NEAE3Q5d++snl#8->3M@B?Y_sx6e+_v`e4wbyBk;Q#aO6zWABt z#oyt+Okw|9mp}O?_lGb2S89EJ-H+7Nulf1kc~SkmIf0pnkp&cCn+sUpLRpDyf>2f& zI|r22#39B4RyTPLk1ZmGAM%)Uf^>t!Zn7e;DMU>auas3FGXq0>QEE=Hz8;7S@MdIU zU_hi4)iRfd$ABTdnU#To7Z}5~ol+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEk98gvxhZqZ3-Q?LkwumTxz+=t{(hUy0$qKxt5g?vdmf+9lz##NtVqo9~(jWi~ zRUimrW?+afO3f+O*8`CO-i$yci1edc=JN0uP~~P;1_oZR2AIaA$!mFKAPzXoE5#Jd zHaU+?MjKuK>+Lrz?*sKk1I^$^(VsEdfKN^VEi>-n_VdU!zc0J>ZpPXGV_ diff --git a/PSCADA/ECMS电厂行业模版/database/rm_security_def.xlsx b/PSCADA/SG管理机模版/database/rm_security_def.xlsx similarity index 57% rename from PSCADA/ECMS电厂行业模版/database/rm_security_def.xlsx rename to PSCADA/SG管理机模版/database/rm_security_def.xlsx index 39e17171fcabd7c2f80a7476fafc06f19a125832..de014526a5c5610e807c4f77fae1b2f9cc1f3fbe 100644 GIT binary patch delta 752 zcmcaCbxDdZz?+#xgn@~HgW*k#V$VjtW=0MWqq1?s?8!43wd;>?DNWk;;DMUO3!U@d zZn9lo^2Bz_-|ELoFDfjjA2$4IV)5~ahuM#ybw#?Yztpx|D_^>24*$(CuA~pTJ05JD zVmxWh>ZgZH6d!4}2`WdcOf;G2bJzjfYmmT9=$GgoS1r9=Cw3ssBR zQZgDHYjbY?xO(!Gg@WC(zWUuq%k0C?-BWX)%zHh2OOMlY*L~OA{@(5R^>)=gRJVu! zJIZ;4fq}u6k%2(~NT=i{2NdNO6zeAz6zEmt=FFXN(2LnnpzVFr`wdU-`L0n2+N9Z3 z@hzZw>Wnkn8sGSw=qdgEZP~Q2^K$9?=J)?RzV5kZIeYzzIUMYz*QKvAvUPEmH&@-> zqazo3{E^`=AC6`#rqx?_@7=h5Dp!c-f!JUL{w)2Vu&Cl2ho9`smyniR=@)k^qI}jd zL)MCAA1oQW;-o$=NEAE3Q5d++snl#8->3M@B?Y_sx6e+_v`e4wbyBk;Q#aO6zWABt z#oyt+Okw|9mp}O?_lGb2S89EJ-H+7Nulf1kc~SkmIf0pnkp&cCn+sUpLRpDyf>2f& zI|ri>NcKX{2JSLom^1>h2*c!uJYt)dailPTbx!8vwnfBwFt<4;NC!AHCr{=!g{V2h zEoBwR%)k&|l$ukluLmLnycwB5roqyVYMIN!W5BTA%*w#P3$zCWfLtI*oUFhj12M;e zM~W$kZE`-F%;X9lo*0l#%=`+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEk98gvxM+XyF-DF;FTSOEGahr33bb|wL@+59kh?>*fQdU9C3=Hu_sX4{^dLS~u zn~{lu0g+Tx%Um8F0|xbGRt5%MU~q!~kP8G!ljV72Am-TfNHGPoP0nMJ$w1f7%)fx^ zK2UWOP!m5`A54D+I|D;Sj(&N5QFc;(el{rX&^2G^*}z=})YJ&XA}E?mCg10AWR#h# M$g9ovj|(IP02>q=od5s; diff --git a/PSCADA/SG-A通讯管理模版/database/rm_spcl_func_def.xlsx b/PSCADA/SG管理机模版/database/rm_spcl_func_def.xlsx similarity index 60% rename from PSCADA/SG-A通讯管理模版/database/rm_spcl_func_def.xlsx rename to PSCADA/SG管理机模版/database/rm_spcl_func_def.xlsx index 646a73238dcb49b88e14d313e3433b4b1d2f705d..45de4a96402b5ccbce3acdb0433048ef51f13bad 100644 GIT binary patch delta 680 zcmX>rb4G?Qz?+#xgn@~HgW*k#V$VjtW=0MWqq1?s?8!43wd;>?DNWk;;DMUO3!U@d zZn9lo^2Bz_-|ELoFDfjjA2$4IV)5~ahuM#ybw#?Yztpx|D_^>24*$(CuA~pTJ05JD zVmxWh>ZgZH6d!4}2`WdcOf;G2bJzjfYmmT9=$GgoS1r9=Cw3ssBR zQZgDHYjbY?xO(!Gg@WC(zWUuq%k0C?-BWX)%zHh2OOMlY*L~OA{@(5R^>)=gRJVu! zJIZ;4fq}u6k%2(~NT=i{2NdNO6zeAz6zEmt=FFXN(2LnnpzVFr`wdU-`L0n2+N9Z3 z@hzZw>Wnkn8sGSw=qdgEZP~Q2^K$9?=J)?RzV5kZIeYzzIUMYz*QKvAvUPEmH&@-> zqazo3{E^`=AC6`#rqx?_@7=h5Dp!c-f!JUL{w)2Vu&Cl2ho9`smyniR=@)k^qI}jd zL)MCAA1oQW;-o$=NEAE3Q5d++snl#8->3M@B?Y_sx6e+_v`e4wbyBk;Q#aO6zWABt z#oyt+Okw|9mp}O?_lGb2S89EJ-H+7Nulf1kc~SkmIf0pnkp&cCn+sUpLRpDyf>2f& zJ13OY%+bgURyUc0#}*O8zC7lfAl=}wo7~G|Di7j$WeNU#4h%sbCI$v>APoY*Km~%p z$q#v?Am;q%kz!1oEX6AW;ac%ZF$J+r&S#U+4)A6KYD6Te$Ieq%JpgKs2AaVSG6e`A l#-&f5%PR-bzaOZ-gk$nV4zbA}d9@g2Cd=??vwa8K4gkLV4d4I( delta 681 zcmX>jb5@2gz?+#xgn@~HgJHuA)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEkoKRL1M-DGwiTSOH5@R)Ogbb|wLau1KGJc#F&CHV6>FbI8^7#O&LGzb7g z6$pYRKj4vqnDdWEiZN-jB(IDDNK5TyHUGOn1!h1kQedSpEx~M)^Vnnr0=yZ4Qi!BB pxsg|jF=O%^UO9+y`*@|8N;xJ^;1HYqfme%BcCs{|Hro%d?EnwX6TScd diff --git a/PSCADA/SG管理机模版/database/rm_user_def.xlsx b/PSCADA/SG管理机模版/database/rm_user_def.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..6b16473bade4268e65833b9c691874f088b73301 GIT binary patch literal 5050 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 E07!Nd)Bpeg delta 768 zcmew=`Aw29z?+#xgn@~HgJHuA)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEkoKRL1hZYl9-Q*2iwumVH%4N<8(hUy0$)?<<5H)$+QuRU13=Hu_sX4{^dLS~u zn~{lu0g+Tx%Um8F0|xbGRt5%MU~q!~kP8G!EDQ`4Ir_yVl{u-!ppZw`T69(a&j#)?plOXjEP`Tc aDaYgq9AcAa@@O&2PCmk;&9;yWBo6?PU?q(J diff --git a/PSCADA/SG-A通讯管理模版/database/rm_user_finger_print_info.xlsx b/PSCADA/SG管理机模版/database/rm_user_finger_print_info.xlsx similarity index 56% rename from PSCADA/SG-A通讯管理模版/database/rm_user_finger_print_info.xlsx rename to PSCADA/SG管理机模版/database/rm_user_finger_print_info.xlsx index ad147d903e02efc26df03013319b9f8a8d65a497..cf77b59570bdc4daf3ca84949a6efc7c5cf0b752 100644 GIT binary patch delta 702 zcmeB_>X70K@MdNaVPIn5V0aUw*t3zZnUMp;sBGLYd-6<1?fN5JN|Uxdc%WwSLg)Oq zn{1btJh9#KxB9Wtiweu>hYi1)SbRLCnFFLe*ln zl#E8l+MJs|uAV$)pB6&zju3nyvIKuV2Zo>z69WS`kOl!@paMbQ zjmMEmfpfAgr<7QLH!B-RFDDS%0}a~D1>yk!Tsscw delta 682 zcmeB>>XhOO@MdNaVPIn5VAwE2HD)7UGb0Cx@$yUSk;yX|wd=3&1*!NRJm_0+A#&c^ z&AiJzPgZCA{(j8$!p9=L_QkU+OCEJj%=xhO&XZP=7q>4&-oO5-$S!57$dL!u1qYLL z#Z_+3`0BM?@sVa5r*gE)M3Z@0mInUTOIOGiu$&V9)_KQSrtxym-dPK39r{=4bgh+| zxR9Cc>&Dc};p)9*4mCcq_2u1n>kQA`OLO1Mdp&$h&!Q8j_pI6SYj@_?+o|_Z-G1Qe zr&C867#M6B85jhBbV`15Kv8}{v3_DffnG&!&fE#M+02GKZQmXK9e!y0{57v4%Y5gB zCGRGr>8@Mr&0}{mBCG1>_fn}}hUru0O=sV0w7b&lY`r9x`yof$EpxLNY+E~yJMMiq zKV16i1`8fN!9xr54rHZI=l&d|;XIM!P6+F#1%67Et4)6k`}E!J+Bj+AsV7VNp03E0 zS=_GvNnUuti+!)JNu@FJ2!#C%Uy*n0ZRESDY@e?G{;^^IlUJLc89o=;JNee7Wk2lH z=PB>4ou-lSrM|*fPCoDbhS=NN|2~`je@)N7*SY%{P(8glo|%V{1r%eO^I6_PSqW@{ zP*y2BFO=2BVaWtmH~BD^Eh36JxXn31y1{`r*@N2@qNb5siZN*N9BwHHcNe#mO%e+O zLq(2$aY?DNWk;;DMUO3!U@d zZn9lo^2Bz_-|ELoFDfjjA2$4IV)5~ahuM#ybw#?Yztpx|D_^>24*$(CuA~pTJ05JD zVmxWh>ZgZH6d!4}2`WdcOf;G2bJzjfYmmT9=$GgoS1r9=Cw3ssBR zQZgDHYjbY?xO(!Gg@WC(zWUuq%k0C?-BWX)%zHh2OOMlY*L~OA{@(5R^>)=gRJVu! zJIZ;4fq}u6k%2(~NT=i{2NdNO6zeAz6zEmt=FFXN(2LnnpzVFr`wdU-`L0n2+N9Z3 z@hzZw>Wnkn8sGSw=qdgEZP~Q2^K$9?=J)?RzV5kZIeYzzIUMYz*QKvAvUPEmH&@-> zqazo3{E^`=AC6`#rqx?_@7=h5Dp!c-f!JUL{w)2Vu&Cl2ho9`smyniR=@)k^qI}jd zL)MCAA1oQW;-o$=NEAE3Q5d++snl#8->3M@B?Y_sx6e+_v`e4wbyBk;Q#aO6zWABt z#oyt+Okw|9mp}O?_lGb2S89EJ-H+7Nulf1kc~SkmIf0pnkp&cCn+sUpLRpDyf>2f& zJ508X;~EcG-Q)yOTSN>m6*cDs=>~`0e?HgJ~#O>6{W5fqcl ZCmV@7GRbpJw&9eT+%GP`<}V782LJ(oAm0E0 delta 740 zcmZ3Yzf_+uz?+#xgn@~HgJHuA)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEkFxgg)Ydm0eljB8g5mCHE)SMHf8yt9(pNN`5)X0iSSp_jOFvJ(7<`nDefye-F zMkWRZL{d>Lb9s0S7}T3t85nqh!3_dHE)XP5E)?DNWk;;DMUO3!U@d zZn9lo^2Bz_-|ELoFDfjjA2$4IV)5~ahuM#ybw#?Yztpx|D_^>24*$(CuA~pTJ05JD zVmxWh>ZgZH6d!4}2`WdcOf;G2bJzjfYmmT9=$GgoS1r9=Cw3ssBR zQZgDHYjbY?xO(!Gg@WC(zWUuq%k0C?-BWX)%zHh2OOMlY*L~OA{@(5R^>)=gRJVu! zJIZ;4fq}u6k%2(~NT=i{2NdNO6zeAz6zEmt=FFXN(2LnnpzVFr`wdU-`L0n2+N9Z3 z@hzZw>Wnkn8sGSw=qdgEZP~Q2^K$9?=J)?RzV5kZIeYzzIUMYz*QKvAvUPEmH&@-> zqazo3{E^`=AC6`#rqx?_@7=h5Dp!c-f!JUL{w)2Vu&Cl2ho9`smyniR=@)k^qI}jd zL)MCAA1oQW;-o$=NEAE3Q5d++snl#8->3M@B?Y_sx6e+_v`e4wbyBk;Q#aO6zWABt z#oyt+Okw|9mp}O?_lGb2S89EJ-H+7Nulf1kc~SkmIf0pnkp&cCn+sUpLRpDyf>2f& zJ13OY%%R5wRyTPomn|ZOe{q>}f^>t!Zn71(sXU11l_mJ|IWPo$m>3wifiwsJ0~H7Y zC--qnLCjghEoGa?!oX0GqhDN7nUh)!3gZB8MxY)7z?+#xgn@~HgJHuA)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEkoKRL1haMAH-Q+D?wumVH$z{$7(hUy0$(G!v@*tj9mf+9lz##NtVqo9~(jWi~ zRUinO+{-NmF=sWmluZ%~14BiQesM`?3Ci&1v+2_9{>rCcE00B?#HGXMYp diff --git a/PSCADA/SG-A通讯管理模版/database/rm_userg_def.xlsx b/PSCADA/SG管理机模版/database/rm_userg_def.xlsx similarity index 64% rename from PSCADA/SG-A通讯管理模版/database/rm_userg_def.xlsx rename to PSCADA/SG管理机模版/database/rm_userg_def.xlsx index 0cec1fe7e05f06ccfaa0006e5998b6fc91cbae12..fd2b5e25ff3a43f10e50b9030c4741aed18d9ddb 100644 GIT binary patch delta 742 zcmca4e^H(?DNWk;;DMUO3!U@d zZn9lo^2Bz_-|ELoFDfjjA2$4IV)5~ahuM#ybw#?Yztpx|D_^>24*$(CuA~pTJ05JD zVmxWh>ZgZH6d!4}2`WdcOf;G2bJzjfYmmT9=$GgoS1r9=Cw3ssBR zQZgDHYjbY?xO(!Gg@WC(zWUuq%k0C?-BWX)%zHh2OOMlY*L~OA{@(5R^>)=gRJVu! zJIZ;4fq}u6k%2(~NT=i{2NdNO6zeAz6zEmt=FFXN(2LnnpzVFr`wdU-`L0n2+N9Z3 z@hzZw>Wnkn8sGSw=qdgEZP~Q2^K$9?=J)?RzV5kZIeYzzIUMYz*QKvAvUPEmH&@-> zqazo3{E^`=AC6`#rqx?_@7=h5Dp!c-f!JUL{w)2Vu&Cl2ho9`smyniR=@)k^qI}jd zL)MCAA1oQW;-o$=NEAE3Q5d++snl#8->3M@B?Y_sx6e+_v`e4wbyBk;Q#aO6zWABt z#oyt+Okw|9mp}O?_lGb2S89EJ-H+7Nulf1kc~SkmIf0pnkp&cCn+sUpLRpDyf>2f& zI~$bMz`@B1RyVnq*A@}Omw3%NLAt?VH(7|!6r#qPPs%EgnSmj`C^e^8Uk^kEcr!9F zFd$NjYMIN!W5AH!%*w#P3k+=#0CIsKaq@gV8HhRi`J|YF*e2(*$z-7GkC9-Qau=vN z9H@yOtPiF?ot=T9B1gYGzbHE?KR+83b?BNe^lacR18QmnVi6S0g_Gm?9T_DjFXY!| Is{y+U0Q0sMKL7v# delta 718 zcmca8e@UJ%z?+#xgn@~HgJHuA)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEkY*1D`2PZ37-Q*r#TSOFJ`YhWI;Yth#D_GDXSo628Q^e)SO~{JrEh- z&B(;SfJiE;WiAho0fTxoD+2>BFt|Yg$OVF=$@BPRAm;4jlVS>Ho1Dicqm8aVMuK6= zU7+f4peBB>KA8TD$%_1P@*r1T=-I$s29#?AVi6QIMU&(B9T}x2FW}c^s|8yR06oAK Al>h($ diff --git a/PSCADA/SG-A通讯管理模版/database/rm_userg_hmi_info.xlsx b/PSCADA/SG管理机模版/database/rm_userg_hmi_info.xlsx similarity index 63% rename from PSCADA/SG-A通讯管理模版/database/rm_userg_hmi_info.xlsx rename to PSCADA/SG管理机模版/database/rm_userg_hmi_info.xlsx index f0dd80b62b79facd6f7763fa3aaffc6a135f3f66..2f80213bea9a73375fddaec863137ced5a472ad5 100644 GIT binary patch delta 747 zcmdlaw^5ESz?+#xgn@~HgW*k#V$VjtW=0MWqq1?s?8!43wd;>?DNWk;;DMUO3!U@d zZn9lo^2Bz_-|ELoFDfjjA2$4IV)5~ahuM#ybw#?Yztpx|D_^>24*$(CuA~pTJ05JD zVmxWh>ZgZH6d!4}2`WdcOf;G2bJzjfYmmT9=$GgoS1r9=Cw3ssBR zQZgDHYjbY?xO(!Gg@WC(zWUuq%k0C?-BWX)%zHh2OOMlY*L~OA{@(5R^>)=gRJVu! zJIZ;4fq}u6k%2(~NT=i{2NdNO6zeAz6zEmt=FFXN(2LnnpzVFr`wdU-`L0n2+N9Z3 z@hzZw>Wnkn8sGSw=qdgEZP~Q2^K$9?=J)?RzV5kZIeYzzIUMYz*QKvAvUPEmH&@-> zqazo3{E^`=AC6`#rqx?_@7=h5Dp!c-f!JUL{w)2Vu&Cl2ho9`smyniR=@)k^qI}jd zL)MCAA1oQW;-o$=NEAE3Q5d++snl#8->3M@B?Y_sx6e+_v`e4wbyBk;Q#aO6zWABt z#oyt+Okw|9mp}O?_lGb2S89EJ-H+7Nulf1kc~SkmIf0pnkp&cCn+sUpLRpDyf>2f& zJ13OY%#p?dRyX-Ak1ZmGjd;yDLAt?VH@S${6ryG|uas3FGXq0>QEE=Hz8;7S@MdIU zU_hi4)iRfd$ABTdnU#To7Z}!6Z<`Ry{6FI~t TU*pqal$p%Pug!Lc2P6pqq!Adr delta 722 zcmdlew@HpKz?+#xgn@~HgJHuA)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEkoKRL1M;Z%Q-Q+hswumS;`YhHo1Dicqm8b=N;2U5 z1EA^{peBBhHXwlL&zRiEC#L{%)rFo7++{%VMj#deDF6b9no^F*6F9^sU**$cl%2${ K&32auBnJS|lo@XT diff --git a/PSCADA/SG-A通讯管理模版/database/rm_userg_report_info.xlsx b/PSCADA/SG管理机模版/database/rm_userg_report_info.xlsx similarity index 55% rename from PSCADA/SG-A通讯管理模版/database/rm_userg_report_info.xlsx rename to PSCADA/SG管理机模版/database/rm_userg_report_info.xlsx index 246744231980e4297805b26f7cf2e3e6a9d454be..a7aa2325c7e9e1962faa9a9cbd2cee915932488d 100644 GIT binary patch delta 702 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 aDaYgq9AcAC3TQFPPW~dG&32IwBo6==2qp*s diff --git a/PSCADA/SG-A通讯管理模版/database/safety_day.xlsx b/PSCADA/SG管理机模版/database/safety_day.xlsx similarity index 55% rename from PSCADA/SG-A通讯管理模版/database/safety_day.xlsx rename to PSCADA/SG管理机模版/database/safety_day.xlsx index db185b8cfb2becfeb0aeadcfc44219bec77ad442..cc3e6471d5fd3e65fd1766f85cea143145d1c545 100644 GIT binary patch delta 667 zcmbO&HA{*wz?+#xgn@~HgW*k#V$VjtW=0MWqq1?s?8!43wd;>?DNWk;;DMUO3!U@d zZn9lo^2Bz_-|ELoFDfjjA2$4IV)5~ahuM#ybw#?Yztpx|D_^>24*$(CuA~pTJ05JD zVmxWh>ZgZH6d!4}2`WdcOf;G2bJzjfYmmT9=$GgoS1r9=Cw3ssBR zQZgDHYjbY?xO(!Gg@WC(zWUuq%k0C?-BWX)%zHh2OOMlY*L~OA{@(5R^>)=gRJVu! zJIZ;4fq}u6k%2(~NT=i{2NdNO6zeAz6zEmt=FFXN(2LnnpzVFr`wdU-`L0n2+N9Z3 z@hzZw>Wnkn8sGSw=qdgEZP~Q2^K$9?=J)?RzV5kZIeYzzIUMYz*QKvAvUPEmH&@-> zqazo3{E^`=AC6`#rqx?_@7=h5Dp!c-f!JUL{w)2Vu&Cl2ho9`smyniR=@)k^qI}jd zL)MCAA1oQW;-o$=NEAE3Q5d++snl#8->3M@B?Y_sx6e+_v`e4wbyBk;Q#aO6zWABt z#oyt+Okw|9mp}O?_lGb2S89EJ-H+7Nulf1kc~SkmIf0pnkp&cCn+sUpLRpDyf>2f& zJ2RA3%Mr>1RyX+?mn|ZOrMb;HLAt?VH#wTyR360h$`btf92kN=ObiU%KpF&qfeHkH zlh<=gLCiVJEyb8P`31L(0!T~kWi|i1Km}$%EmB~mFfBoBlk?eRCOh!(K=cLhNHL~Q d&gPMWaC?E=yvZwg92vzXzv9tmJIV#p4FFZ#3@`uy delta 691 zcmbOwHCu`=z?+#xgn@~HgJHuA)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEk%urShM<^3m-Q=rWwumT};x^|5=>`YhicfyYqs?}V3#1zWNm~~4 diff --git a/PSCADA/SG管理机模版/database/sample_define.xlsx b/PSCADA/SG管理机模版/database/sample_define.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..d36e9f96d0b51d7d76bde6589f9c32e762adb017 GIT binary patch literal 6618 zcmai22|UyP|DRiKC83feS4nC_jNErKGdGopEw@~A6UrGmax}NuoDnKb7nLMs=15UF z%AJ_2@c(?KewE+<`~C6w?DN@Uuj~1IJzwuV_A)VKVB~|)Ls%hGw)+#L)A>@&=^zk# zCJ1B)1OlFiGbMZFx>L*v%4dKRt*OwQg%M`UMrYdoHxZH0KJhPz4U=iT<4*J>S zI({nSxX}x=6DcaU8nWUN5GZ$}f?lKu6RT8h%I0tCfKabAS%xHumL%63EC}L{l{u7_ zic|-Yc3TBxJ}fybFBGg85N_Jx=8$Z-O7h$ONYr_0vLz$mQ&rt zDJLp@TY&a9+nIyVlqccF@7WW@g*aU+9I)o{PHjt1bNKcuztgq0UKt;rdh$I>(cPcB zBeO*6)OQDagWoHshf6CoVB2T0=#wj3q#jq(I1148iqL=yBe}+r!gG_PmF;6W9d1q+4u{kMe2zKMG^* zA826{O>Ow_L0s|6;m*Z=W^(Ze?DksFu;`ZnrOYRCRH))yi=M)=X_dDO)2jIG9{-a2 zx!nEcYz|*#?tHkFc09GBeDpDN|0k&!-UBvbDNvk2|M6tylCp6x$cr6|SKn#w2`4Aq z6eK)jvRH0vm$;wUtoLH zQe{NuY7G{W&PaNa0uxk3M%wuX)rFMu9*i~ZjV(UbD#375FQEHmf0DQn6U(>2F3(&O zZ$X>AuethC2h&DLNos;7GB+l^aI_Q+gcCa>)}Qw5*mjbyJL5p5#>;WZkY;U)fX#M> zq-mr(zB5tuy80RZd*4YsCyYJNor}@O7hh)^?ZMN`Ax)Bu+cH=v~r5I0O8sRlt+rn#c5%}*eI`y^hS$t3D!YD|gn9(gsmx(8}#klCh(2Akr2;&fimX)bbMt*Y6$CZ*+Yi`}m z>i?d~^=f^ZV0CxMXBO8uUc5*zlR4zSHqN;#bSNjtGY5LVI)fCjx3xVtZo_z7o8M_= z7JWFDzzIgiF#2s&^uH|=c7w;mGN*9xL8`*GEFm)O4F?*%V&a&kRPGkGG z@6BQZ@4u@MEX0J7(AQ@2k_ksv=2oQb=Q@7@ zC7Hs>m=cVaZwjv)m3B%fAxmUerlm38tW@r!qn1{AKr01b3(HXkcjuElPWc)>-Kaqh zC3DSQ56Y5zv29yNt&tNQ#Y)J8BX|_`FWZj^s zrN)MsnLSCh?cNVJoqZuqYg?uuHC#gzB*hY#1nx~z{-h)E+N0B(U$OT!N0bd488lGW z?RdIoq7HrA?w{DBh{|>Qx>%eOr|4Zvgm%;=2?)$wR@jJ5SyffU8qe&x+P*gx-C{c3&Ld7Y&{3sIZ`Zn>oog6fb(wv7 z?rc7toAMfdZVYoZPOb;ZGz{&+<5iDRWM6i@>XnFi;Z~+UxYEIS+i21$Z;kG6dAv@j zVfOJ90`-p5mJh3vfOw>KqTGjMeD zF{bK2=O}DE(cU@SIoaqqUvPv_8#_PpkjFz_Y!G%ImrUkNko10No2BwY@2p)?td&+r zfR&0C#jnx4L66Cam>BT9X)*F-?X0=A1jqKPw;hALW-#pH%uPT3s1qm)vapV7RN#U@ z`f4B$fz3L>j`_GaIbHIRrQPH}C0D-haNpf4_;fBLVle6R+WQleS`MGc`sj;wttUbs+;%y=I7<5U{@Iy zH0K_)vhJV|;^X_ef4pHY*YINhrBKy7s!yWW+m!e{hF&E*UvHh`cCMSJQ1y>oz>_Jf zR9X1gY-ZHW*k|$NQHomQtFcVA?z5AwtHYG)eV;wdC6bwYhTs@<-4?S$^iK#|dR#K*C+*W){%<`jLJhBE4w

#H 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 delta 739 zcmca0dr_7zz?+#xgn@~HgJIeX)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEkEKpW02Nw%i-Q;c_TSOFJ;4$X}=>`YhWC32&2oTRJOYrA&U=aE+F)(lgX%GO0 zDi8!QGcd##rREgt>w(AsZ$_XJMEX%Jb9s0SsB$wa0|PHu159Jm!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? zoe9dS;i%RItDF4W*cK7P4kqTDAl=}wo7`Yx8Uf;YWeNU#4h%sbCI$v>APoY*Km~$8 zW(J1%qSTyXeLWBv;LQkBf=E89WiAho0ab2hWnkb1Yk+A?oXl$~195<^sT5NX+vI#U z8Etg^E}d^y-UR9k2AaW-qCb7|1XDSAkmD}&Y~U^f$~6M92#T8A$!AR+8AT`an`yJX IG6qQj00U$VTL1t6 delta 702 zcmdm=b0CK=z?+#xgn@~HgJIeX)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEkOi)%eN3}Ls-Q-`!wumUUH!`Yhw(AsZ$_XJMEaTh(L{a xya_Zh7-%p**ld^`8I$`>!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? zoe|2a=2*@IRySFV+ZGYS+1%!wAl=}wo4lIaR360h$`btf92kN=ObiU%KpF&qfeHkH zlmBx|LClfmkz!1oY{4U=0Mb%>S;n^`%eV g%_9fl-UV`VCja1ZWD?<=Y{)4!Ih0p`O%!Y^0CS84pa1{> delta 696 zcmaDQ^;(KAz?+#xgn@~HgJJp%)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEkj8Ik;$8sjHy2+~CwumUs;x^|5=>`Yh!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? zoe|2a<}gzQtDC%4*A@}OzjVzxLAt?VH`z+hR360h$`btf92kN=ObiU%KpF&qfeHkH zll%0fAm*&mld?@@VPL4p(JwBk%tis4BTx?_J=I=T^S=w!X9g6N0-FFcDTr-y xKAX&Bd3_#;ar*jFjOmlT^yMJj93VGma=X4GlL+TzLr$s5PxJ-Ymgs_v005Jk3v2)Y delta 703 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 delta 768 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 B7SjL# diff --git a/PSCADA/ECMS电厂行业模版/database/sequence_setting.xlsx b/PSCADA/SG管理机模版/database/sequence_setting.xlsx similarity index 58% rename from PSCADA/ECMS电厂行业模版/database/sequence_setting.xlsx rename to PSCADA/SG管理机模版/database/sequence_setting.xlsx index a0fb9f39954447d8c4f534601bcbcfee2dadd704..e30c5c88a8307abfc19e94592064291166ef9a1e 100644 GIT binary patch delta 700 zcmeB^?v>^X@MdNaVPIn5U`UBk?AgfI%*X*^R5osyJ$WXhcKs19rAgZ!JW#WEp>zJ* zO}5KRp4e{rTm4w+MTO<`!-ii?EIuCbF#8d-u1J^lm)e$V;lCNimGnV($AgVi zj3=#G{q&HD;v>yALFH(bi6-;BZW{MnFJ1Ankl~c@x6V7xG7Xn|=1MKBbZB37p=vQ( zN=Bn&ZO+XfS5Ka@P_SFpSHJscnSJ=Vdur~Jd9R0W>2Z4Qy6>9X-@84(-mbcb>h|z| zM>&r$FfiCMGB5}L>6HBBfTH|@V*SK|0=3p$ zz6DfIopEMc;~Sq7J*B_DEt?j0UM_v#{QjTE*FD!PXRlu|hl9QJy7W~>wl2={=BnF! zbmT&hKQjE~!_jQTw0i6Ay&Kn0c;xX7eBMS z_&eN}DeQmi@+aTq{_v&$O0CbY`;nUZH9!A5FRGt6CouCcvVbCNa{z69WS`kOl!@paMZ4 zGXq0>QEE=Hz8;7S@MZ)mK_s8a4m?tfiIbywWFU4`^GGoTu}#irlhH<3YOS^R?0uk# t(LjUw!DhqkNS}O4&-oO5-$S!57$dL!u1qYLL z#Z_+3`0BM?@sVa5r*gE)M3Z@0mInUTOIOGiu$&V9)_KQSrtxym-dPK39r{=4bgh+| zxR9Cc>&Dc};p)9*4mCcq_2u1n>kQA`OLO1Mdp&$h&!Q8j_pI6SYj@_?+o|_Z-G1Qe zr&C867#M6B85jhBbV`15Kv8}{v3_DffnG&!&fE#M+02GKZQmXK9e!y0{57v4%Y5gB zCGRGr>8@Mr&0}{mBCG1>_fn}}hUru0O=sV0w7b&lY`r9x`yof$EpxLNY+E~yJMMiq zKV16i1`8fN!9xr54rHZI=l&d|;XIM!P6+F#1%67Et4)6k`}E!J+Bj+AsV7VNp03E0 zS=_GvNnUuti+!)JNu@FJ2!#C%Uy*n0ZRESDY@e?G{;^^IlUJLc89o=;JNee7Wk2lH z=PB>4ou-lSrM|*fPCoDbhS=NN|2~`je@)N7*SY%{P(8glo|%V{1r%eO^I6_PSqW@{ zP*y2B2b9&wahM6LZn6irEh370xy?C2y1{`r`7F1oJc#F&CHV6>FbI8^7#O&LGzb7g z6$pYREAmJ|%(3T@VoaJG#UlgZR`EzN1+z`gW0TPi@MZ*RM5HQft-WXO12snj&EN+c m12ZmT@?9P|i2naT{Usce`#HoW8}e!~%1n;o)n>B<+YSKt+z~qf diff --git a/PSCADA/SG-A通讯管理模版/database/stat_inst_def.xlsx b/PSCADA/SG管理机模版/database/stat_inst_def.xlsx similarity index 57% rename from PSCADA/SG-A通讯管理模版/database/stat_inst_def.xlsx rename to PSCADA/SG管理机模版/database/stat_inst_def.xlsx index ed59f61a33664ea9f041cf1624968821853f2f7c..4a7214bf359eb1a0df2b44b503cfa846b37b11e8 100644 GIT binary patch delta 680 zcmX>reMXuuz?+#xgn@~HgCQkGv1cP+Gb0CxQQ5d*_T-t2+Vw}clqPL^@IcMth0ghJ zH`y*Pd1AZeZ}nrP7ZsM%4;y|pvG{nz!|X@Ux*}cHUus*fl`q{hhyP|6SJDUF9S=56 zF`l$$_0vNpijOqg1eK#zCYsFix@p{Ry>!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? zoej!r;9y|}tDD@xZHtKEv)tyKAl=}wo6O5&Di7j$WeNU#4h%sbCI$v>APoY*Km~%p z$%#Bt5OeBzq!<$?&*G7RaCh-YF$J+r&S#U+4)A6KYD6Teay50oyFkqmKr{Hk#=wkA jpDfEO2hnfOE5%gEF}aUJY;qy57Ng|kIlS6zjeO8(;z?+#xgn@~HgJJp%)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEkY*1D`2MaS;-Q;#|TSOF};Wp<4=>`YhWF8(!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? zofFDx=15}#tDF3m%N7yCM%?C{Al=}wn_R?g3Q@C~TgobsnSmj`C^e^8Uk^kEcr!9F zFd$NjYMIN!W5AH!%*w#P3k+=#0CIsKaq@p|8HhRZJW@7*0<@rU~N%{HNpr}LFe4%FpcNtJaBM^&#bOHfHa|y@fi5y~+ TukmOx%1mbD)n>cH1(E~+fT|E4 delta 722 zcmdlewMmLEz?+#xgn@~HgJJp%)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEkoKRL1M;a4Y-Q+i1wumS;`Yh!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? zoeRop;h4$NGXq0>QEE=Hz8;7S@MdIU zU_hi4)iRfd$ABTdnU#To7Z}+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEkTu@ds$5bY;y2&!!wumTB`YhKA8TD$s2j(6hN-J(6fQN3@FzK#3Cqa$~Y!Z!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? zoeRop;gDtqtDC%-+ZGYSFSyM)LAt?VH(7(n6rv`PM~X3Uat)6Zggc8z$|jM8fuSNt zzqq6_C$$(9oB`g9ObiT&q*HrY&HpYi*v){VQa~C6fH46CL6bl5XhKYq<&|PgpKQS^ m2jNBmxuug!c^#Q#IVW3jN{Iz{v$BD-Z~~z{(4a}&ARYk683mjG delta 712 zcmaDZ{X&{Az?+#xgn@~HgJJp%)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEkTu@dshcq)--Q-2wwumTx&TY;K(hUy0$?80&5H$%rQj9^9t9hiNK$5CuE)S0Z zLv=GN0|PHGWI+JP1%f0N28N0p{o<0!oYZ1aAP0CeGBGe95>)MFHUGOng=RoeDX!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? zofFDx=15@ztDF3q%N7yC2HfVHAl=}wn_R$c8Uf;YWeNU#4h%sbCI$v>APoY*Km~$8 zW(J1%qSTyXeLWBv;LQkBf=E89WiAho0ab2hWnkb1Yk+A?ocxzt2I2r&9x0|Ew#oTy zGTP|+uaq+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEkoKRL1M+y^I-Q-tXwumU!=QigA=>`Yhw(AsZ$_XJMEaThkXwo|Y4RU#8HimnJW@=-Y?JfYWVF$hUMXkt ydjK>s252xp$Y>yd*pV^0o<|O%e<4tRDaYgq9Ac9%^Jp>3PX5QE&32m$q!s|yr52a~ diff --git a/PSCADA/SG-A通讯管理模版/database/stat_inst_ret_para.xlsx b/PSCADA/SG管理机模版/database/stat_inst_ret_para.xlsx similarity index 57% rename from PSCADA/SG-A通讯管理模版/database/stat_inst_ret_para.xlsx rename to PSCADA/SG管理机模版/database/stat_inst_ret_para.xlsx index 0cd6304750e1c8eefef0c6ced904e53e872583ad..6861e9046f6224c20e767170c5516da37069dc7c 100644 GIT binary patch delta 690 zcmbO!Jwuu=z?+#xgn@~HgCQkGv1cP+Gb0CxQQ5d*_T-t2+Vw}clqPL^@IcMth0ghJ zH`y*Pd1AZeZ}nrP7ZsM%4;y|pvG{nz!|X@Ux*}cHUus*fl`q{hhyP|6SJDUF9S=56 zF`l$$_0vNpijOqg1eK#zCYsFix@p{Ry>!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? zofFDx<~Yj)RyR3>+ZHK?xy?C2y1`*L`6joiJc#F&CHV6>Fa&*=7#O&LGzb6#6$k<+ z>+(oJ%<<-tvPooNV5rE^FD|LfNi7D2aey}?P!A$K)m~QfzYEl71{9S7n*cK@X!1fH rO^8Y7c%&H9C%@#8gK)WdrI<=MCQsxLn{3Og#V9j5gIAl)8SD-KkD>>? delta 670 zcmbOsJyV)5z?+#xgn@~HgJJp%)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEkoKRL1$5|$@y2-)ZwumU6!EMe7(hUy0$v3!7A!-D9q!@!H>+ncHxL!O`Hc2cD z3>7*0#U+(Fsl}l14De=TVqid|o!ZN4{&#`lZUz*U0@5G=j0zwKp1goZ6JpX?puriF jU+~C5xLmwaOr;!?Cvb>Ow&B%cl%1T;tIg)Z4blVvrJ@qC diff --git a/PSCADA/SG-A通讯管理模版/database/stat_link_def.xlsx b/PSCADA/SG管理机模版/database/stat_link_def.xlsx similarity index 56% rename from PSCADA/SG-A通讯管理模版/database/stat_link_def.xlsx rename to PSCADA/SG管理机模版/database/stat_link_def.xlsx index 427d1345e4ae09e5230fc15d77e8ffb60efa3d76..a1ceada1656ca7334052ae795d99b4c0cbe3f181 100644 GIT binary patch delta 672 zcmew@`Ad>7z?+#xgn@~HgCQkGv1cP+Gb0CxQQ5d*_T-t2+Vw}clqPL^@IcMth0ghJ zH`y*Pd1AZeZ}nrP7ZsM%4;y|pvG{nz!|X@Ux*}cHUus*fl`q{hhyP|6SJDUF9S=56 zF`l$$_0vNpijOqg1eK#zCYsFix@p{Ry>!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? zogK<*0i>n&vYP*0paL_X7Ade&n3f>6$@y$DlNES)Ao>h=q!`mD jd-KRaxVb!1Ohp`%`#HoW&*#x%l$v~sN1JUa7sv+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEk>`+z%hanSK-Q=xYwumVH#bwS3(hUy0$yVH^@*tj9mf+9lz##NtVqo9~(jWi~ zRUinO+{Y~iF=q|8lx-3V14BiQesM`2z5Su)YM~hK<@<|?Twq;x(BLHGQ B7SsR$ diff --git a/PSCADA/SG-A通讯管理模版/database/stat_link_para.xlsx b/PSCADA/SG管理机模版/database/stat_link_para.xlsx similarity index 56% rename from PSCADA/SG-A通讯管理模版/database/stat_link_para.xlsx rename to PSCADA/SG管理机模版/database/stat_link_para.xlsx index 463e3057e7b4f7f8c4d38aeef1d06b09c2272bac..d9843eb6b37ca86d850da00d6f6e50e0d418fbde 100644 GIT binary patch delta 701 zcmdllwNHvKz?+#xgn@~HgCQkGv1cP+Gb0CxQQ5d*_T-t2+Vw}clqPL^@IcMth0ghJ zH`y*Pd1AZeZ}nrP7ZsM%4;y|pvG{nz!|X@Ux*}cHUus*fl`q{hhyP|6SJDUF9S=56 zF`l$$_0vNpijOqg1eK#zCYsFix@p{Ry>!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? zogK<*APoY*Km~$8 zW(J1%qSTyXeLWBv;LQkBf=E7-KXOYkCQjzzk%8Ey!z0BM#5OsfO-37CsXOPH3-^E~ tMgk4y2b&GEBYko|j~qn*Mxg#8j>-KTVv`^9XfaAn=Hu07d&vb-4gl+`2yFlW delta 702 zcmdldwO@)az?+#xgn@~HgJJp%)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEk>`+z%M=29n-Q=HKwumUU<2L66=>`Yhw(AsZ$_XJMEaThfm@0(X)-sD48$&N9x0|^w#j*HGTP`$-8s)( wxCb;b5@;|#*ld^`8I${X!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? zogK<*APoY*Km~%p z$rre#Am+T|mSRkt%*i980Mb%>S+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEk>`+z%M-dZP-Q;gvwumUU<~HX9=>`YhK5E57b diff --git a/PSCADA/SG-A通讯管理模版/database/stat_template_def.xlsx b/PSCADA/SG管理机模版/database/stat_template_def.xlsx similarity index 70% rename from PSCADA/SG-A通讯管理模版/database/stat_template_def.xlsx rename to PSCADA/SG管理机模版/database/stat_template_def.xlsx index 2c56687a87ded9f8742c1808d3f22cf217d9776d..bd0a22ab234df54f11d088ced1d1ac762839365a 100644 GIT binary patch delta 679 zcmcbkc3X`vz?+#xgn@~HgCQkGv1cP+Gb0CxQQ5d*_T-t2+Vw}clqPL^@IcMth0ghJ zH`y*Pd1AZeZ}nrP7ZsM%4;y|pvG{nz!|X@Ux*}cHUus*fl`q{hhyP|6SJDUF9S=56 zF`l$$_0vNpijOqg1eK#zCYsFix@p{Ry>!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? zode2h;+V(*RySE(&=wKHF@oltAl=}wn>SNtSzj~#wG|d2>{x=10VnZ delta 673 zcmcbuc1Mjbz?+#xgn@~HgJJp%)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEk98gvx$3zaWy2)aKwumT>7BuGs=>`Yh!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? zofFDx=FnyZtDC%u*A@}O-+9eBLAt?VH`$!e6r!epPl_>cayOq;6i8CF%;n)RV4!Yh zWnkb11}q2wxj>M}!oX0GqhDN7nUh)!3gZB8MkWRZM0%>dtmc0gsL%{3Dh1X8(;77S zKc6PVHXVK`#`MYV{BjB)+b;BM;4T9yZ3JQw6fGqjlP7YBO`grK#V9lR7{4~#La=K9 Do%0Kl delta 712 zcmew+|6QIhz?+#xgn@~HgJI50)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEkoKRL1hc+u%-Q)MFHUGOng=RoeDX= Hfn5Utv+)@= diff --git a/PSCADA/SG-A通讯管理模版/database/stat_template_ret.xlsx b/PSCADA/SG管理机模版/database/stat_template_ret.xlsx similarity index 77% rename from PSCADA/SG-A通讯管理模版/database/stat_template_ret.xlsx rename to PSCADA/SG管理机模版/database/stat_template_ret.xlsx index 5f785b6e4fc22e092743c6ee7e5e5e8559b5e6e5..0c05508418b05d2f12819d261a990f85e7ad51e9 100644 GIT binary patch delta 734 zcmZoMXg1&r@MdNaVPIn5U`UBk?AgfI%*X*^R5osyJ$WXhcKs19rAgZ!JW#WEp>zJ* zO}5KRp4e{rTm4w+MTO<`!-ii?EIuCbF#8d-u1J^lm)e$V;lCNimGnV($AgVi zj3=#G{q&HD;v>yALFH(bi6-;BZW{MnFJ1Ankl~c@x6V7xG7Xn|=1MKBbZB37p=vQ( zN=Bn&ZO+XfS5Ka@P_SFpSHJscnSJ=Vdur~Jd9R0W>2Z4Qy6>9X-@84(-mbcb>h|z| zM>&r$FfiCMGB5}L>6HBBfTH|@V*SK|0=3p$ zz6DfIopEMc;~Sq7J*B_DEt?j0UM_v#{QjTE*FD!PXRlu|hl9QJy7W~>wl2={=BnF! zbmT&hKQjE~!_jQTw0i6Ay&Kn0c;xX7eBMS z_&eN}DeQmi@+aTq{_v&$O0CbY`;nUZH9!A5FRGt6CouCcvVbCNa{L%|OwME1*iw(AsZ$>5t z21H6xEpvHz3>eazSs563fuRioKrRp@PQEB612N~Lm=seG+vI#UnaP^sJTV}fvNO3; z?gLfD02T9t)x-3qvokPM4&-oO5-$S!57$dL!u1qYLL z#Z_+3`0BM?@sVa5r*gE)M3Z@0mInUTOIOGiu$&V9)_KQSrtxym-dPK39r{=4bgh+| zxR9Cc>&Dc};p)9*4mCcq_2u1n>kQA`OLO1Mdp&$h&!Q8j_pI6SYj@_?+o|_Z-G1Qe zr&C867#M6B85jhBbV`15Kv8}{v3_DffnG&!&fE#M+02GKZQmXK9e!y0{57v4%Y5gB zCGRGr>8@Mr&0}{mBCG1>_fn}}hUru0O=sV0w7b&lY`r9x`yof$EpxLNY+E~yJMMiq zKV16i1`8fN!9xr54rHZI=l&d|;XIM!P6+F#1%67Et4)6k`}E!J+Bj+AsV7VNp03E0 zS=_GvNnUuti+!)JNu@FJ2!#C%Uy*n0ZRESDY@e?G{;^^IlUJLc89o=;JNee7Wk2lH z=PB>4ou-lSrM|*fPCoDbhS=NN|2~`je@)N7*SY%{P(8glo|%V{1r%eO^I6_PSqW@{ zP*y2B2b9&wVaW?tH+i3^Eh37U#mqTDy1{`r*;&jKqNYYn$|{JNfg!#qHK$l#4@3rd zGcqwSAd-q|najgtz@XmD%D})23~mqra)BUe@&z#&h&dm`q?m%)Cg-uqOx6(Ri2>P^ zoynbYAE+t@sF)wD9;PpYoq?euN54G3C_5=XKN}Qh=$2mS*}z=})YJ&XA}E?mCQlG| QWR#hFNnD$4y(mZu08A$wE&u=k diff --git a/PSCADA/SG-A通讯管理模版/database/switch_cfg_info.xlsx b/PSCADA/SG管理机模版/database/switch_cfg_info.xlsx similarity index 56% rename from PSCADA/SG-A通讯管理模版/database/switch_cfg_info.xlsx rename to PSCADA/SG管理机模版/database/switch_cfg_info.xlsx index d3d3cd3d70f9d377466c7404177a890a0f16af52..bd7a75050ead3218b1483a326d924ed1b9d550e4 100644 GIT binary patch delta 711 zcmdlcwN;8Qz?+#xgn@~HgCQkGv1cP+Gb0CxQQ5d*_T-t2+Vw}clqPL^@IcMth0ghJ zH`y*Pd1AZeZ}nrP7ZsM%4;y|pvG{nz!|X@Ux*}cHUus*fl`q{hhyP|6SJDUF9S=56 zF`l$$_0vNpijOqg1eK#zCYsFix@p{Ry>!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? zode2h;>czKtDF3h%N7yCX58kSAl=}wn_R|i3Q@D3TZ%Do@+oeqD3GLTnajgtz(C#1 z%D})23|J5Va)BU`g@K_WN58nFGAFed6vhGGj7$s+i1bu@S+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEk98gvxM>Z2!-Q*8kwumS;O8=>`YhNc+&tL~jl;;;^C*|j7V>9(a&j#)?plOXjEP`Tc a3CHAq4zbBMd9)a1CbRHrvpwVj$pZkA?IZmF diff --git a/PSCADA/SG-A通讯管理模版/database/sys_model_app_info.xlsx b/PSCADA/SG管理机模版/database/sys_model_app_info.xlsx similarity index 57% rename from PSCADA/SG-A通讯管理模版/database/sys_model_app_info.xlsx rename to PSCADA/SG管理机模版/database/sys_model_app_info.xlsx index 79534efe332e8b2454092be31a454f6b43940ad8..90272721b501c0dadd1c1c9b40e9dfca691fae08 100644 GIT binary patch delta 680 zcmdlhy+@iaz?+#xgn@~HgW*k#V$VjtW=0MWqq1?s?8!43wd;>?DNWk;;DMUO3!U@d zZn9lo^2Bz_-|ELoFDfjjA2$4IV)5~ahuM#ybw#?Yztpx|D_^>24*$(CuA~pTJ05JD zVmxWh>ZgZH6d!4}2`WdcOf;G2bJzjfYmmT9=$GgoS1r9=Cw3ssBR zQZgDHYjbY?xO(!Gg@WC(zWUuq%k0C?-BWX)%zHh2OOMlY*L~OA{@(5R^>)=gRJVu! zJIZ;4fq}u6k%2(~NT=i{2NdNO6zeAz6zEmt=FFXN(2LnnpzVFr`wdU-`L0n2+N9Z3 z@hzZw>Wnkn8sGSw=qdgEZP~Q2^K$9?=J)?RzV5kZIeYzzIUMYz*QKvAvUPEmH&@-> zqazo3{E^`=AC6`#rqx?_@7=h5Dp!c-f!JUL{w)2Vu&Cl2ho9`smyniR=@)k^qI}jd zL)MCAA1oQW;-o$=NEAE3Q5d++snl#8->3M@B?Y_sx6e+_v`e4wbyBk;Q#aO6zWABt z#oyt+Okw|9mp}O?_lGb2S89EJ-H+7Nulf1kc~SkmIf0pnkp&cCn+sUpLRpDyf>2f& zJ13OY%<+*4tZs4zw=E)u_i~$af^>t!Zt`DlQ+W{2D@*X_b6^PiFflN218EQd1}YE) zP7dUef|!%fBgL3Fxr;{z!d=B9#T3LgIiF2NJHVR}s1cEK lj7y))%PR-bug@#RRKhWNB8S-IL|!dMnaMr8+HC1y+W|HL4PgKP delta 681 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 Hk%0dJJCLwz literal 0 HcmV?d00001 diff --git a/PSCADA/SG管理机模版/database/sys_model_dbconfig_node.xlsx b/PSCADA/SG管理机模版/database/sys_model_dbconfig_node.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..fbcf9c383f2cf4ab0b3ab7bca41f86c895981843 GIT binary patch literal 3559 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 G0sjH!pv2$+ literal 0 HcmV?d00001 diff --git a/PSCADA/SG管理机模版/database/sys_model_deploy_info.xlsx b/PSCADA/SG管理机模版/database/sys_model_deploy_info.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..6b599583254fdd45dcf13b232150115f037b5d5d GIT binary patch literal 3589 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 Rj~1icWJO+Wwtrk8c>pLnA1wd? diff --git a/PSCADA/SG-A通讯管理模版/database/sys_model_location_info.xlsx b/PSCADA/SG管理机模版/database/sys_model_location_info.xlsx similarity index 60% rename from PSCADA/SG-A通讯管理模版/database/sys_model_location_info.xlsx rename to PSCADA/SG管理机模版/database/sys_model_location_info.xlsx index a4a68d6255072bb3f361f3d0df4a412d657d4f10..a893e55d695d1adaa7b1ed9460da8365036569a9 100644 GIT binary patch delta 716 zcmdlevq6S0z?+#xgn@~HgW+wAV$VjtW=0MWqq1?s?8!43wd;>?DNWk;;DMUO3!U@d zZn9lo^2Bz_-|ELoFDfjjA2$4IV)5~ahuM#ybw#?Yztpx|D_^>24*$(CuA~pTJ05JD zVmxWh>ZgZH6d!4}2`WdcOf;G2bJzjfYmmT9=$GgoS1r9=Cw3ssBR zQZgDHYjbY?xO(!Gg@WC(zWUuq%k0C?-BWX)%zHh2OOMlY*L~OA{@(5R^>)=gRJVu! zJIZ;4fq}u6k%2(~NT=i{2NdNO6zeAz6zEmt=FFXN(2LnnpzVFr`wdU-`L0n2+N9Z3 z@hzZw>Wnkn8sGSw=qdgEZP~Q2^K$9?=J)?RzV5kZIeYzzIUMYz*QKvAvUPEmH&@-> zqazo3{E^`=AC6`#rqx?_@7=h5Dp!c-f!JUL{w)2Vu&Cl2ho9`smyniR=@)k^qI}jd zL)MCAA1oQW;-o$=NEAE3Q5d++snl#8->3M@B?Y_sx6e+_v`e4wbyBk;Q#aO6zWABt z#oyt+Okw|9mp}O?_lGb2S89EJ-H+7Nulf1kc~SkmIf0pnkp&cCn+sUpLRpDyf>2f& zJ2#Zo%8|?rRyX+#w=E)u4SCEtLAt?VH@T3<6ryGokCas)GXq0>QEE=Hz8;7S@MdIU zU_hi4)iRfd$ABTdnU#To7Z}OLASRYJ(`s7AlIeCz)F7#~RE(6Ln0+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEk+)!2vM=~>5-Q?HYwumS;;4$X}=>`Yhw(AsZ$_XJMEX%Jb9s0SsB$wa0|PHu159Jm KuQuBqu)6^xR2w(| diff --git a/PSCADA/SG-A通讯管理模版/database/sys_model_msg_relay.xlsx b/PSCADA/SG管理机模版/database/sys_model_msg_relay.xlsx similarity index 57% rename from PSCADA/SG-A通讯管理模版/database/sys_model_msg_relay.xlsx rename to PSCADA/SG管理机模版/database/sys_model_msg_relay.xlsx index cd539b3a260fcd3379644f0c5eacb21288c91f6c..57dd38dd9cddedd258c4e8ff54ea3bab55b7715f 100644 GIT binary patch delta 667 zcmbO&JxiJ|z?+#xgn@~HgW+wAV$VjtW=0MWqq1?s?8!43wd;>?DNWk;;DMUO3!U@d zZn9lo^2Bz_-|ELoFDfjjA2$4IV)5~ahuM#ybw#?Yztpx|D_^>24*$(CuA~pTJ05JD zVmxWh>ZgZH6d!4}2`WdcOf;G2bJzjfYmmT9=$GgoS1r9=Cw3ssBR zQZgDHYjbY?xO(!Gg@WC(zWUuq%k0C?-BWX)%zHh2OOMlY*L~OA{@(5R^>)=gRJVu! zJIZ;4fq}u6k%2(~NT=i{2NdNO6zeAz6zEmt=FFXN(2LnnpzVFr`wdU-`L0n2+N9Z3 z@hzZw>Wnkn8sGSw=qdgEZP~Q2^K$9?=J)?RzV5kZIeYzzIUMYz*QKvAvUPEmH&@-> zqazo3{E^`=AC6`#rqx?_@7=h5Dp!c-f!JUL{w)2Vu&Cl2ho9`smyniR=@)k^qI}jd zL)MCAA1oQW;-o$=NEAE3Q5d++snl#8->3M@B?Y_sx6e+_v`e4wbyBk;Q#aO6zWABt z#oyt+Okw|9mp}O?_lGb2S89EJ-H+7Nulf1kc~SkmIf0pnkp&cCn+sUpLRpDyf>2f& zI~SDI!f}oXtZs4`w=E)uXLFl#f^>t!Zt`tzQ+W{2D@*X_b6^PiFflN218EQd1}YE) zPS)pn&vYP*0paL_X7Ade&n3f>6$@y$DlMnFlK=fSz>Pw&e cnnw=8<>i%PES;>u>&PfOIg3}D%@u4R0G9#_UjP6A delta 696 zcmbOwJzJVDz?+#xgn@~HgJI(g)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEkTu@ds$2lgjy2+v3wumU6#cj?B(hUy0$+x&o+1$X60RT28 B7wiB4 diff --git a/PSCADA/SG管理机模版/database/sys_model_node_info.xlsx b/PSCADA/SG管理机模版/database/sys_model_node_info.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..8c2e458832685880956d17a68091096a348eeeec GIT binary patch literal 3746 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 literal 0 HcmV?d00001 diff --git a/PSCADA/SG-A通讯管理模版/database/sys_model_sub_system_info.xlsx b/PSCADA/SG管理机模版/database/sys_model_sub_system_info.xlsx similarity index 58% rename from PSCADA/SG-A通讯管理模版/database/sys_model_sub_system_info.xlsx rename to PSCADA/SG管理机模版/database/sys_model_sub_system_info.xlsx index d26289903813c5ebe11171343662772d4aa9d0af..09625643c57596020357a5dd4f2a0705bc64d40a 100644 GIT binary patch delta 695 zcmew*^;3#3z?+#xgn@~HgW+wAV$VjtW=0MWqq1?s?8!43wd;>?DNWk;;DMUO3!U@d zZn9lo^2Bz_-|ELoFDfjjA2$4IV)5~ahuM#ybw#?Yztpx|D_^>24*$(CuA~pTJ05JD zVmxWh>ZgZH6d!4}2`WdcOf;G2bJzjfYmmT9=$GgoS1r9=Cw3ssBR zQZgDHYjbY?xO(!Gg@WC(zWUuq%k0C?-BWX)%zHh2OOMlY*L~OA{@(5R^>)=gRJVu! zJIZ;4fq}u6k%2(~NT=i{2NdNO6zeAz6zEmt=FFXN(2LnnpzVFr`wdU-`L0n2+N9Z3 z@hzZw>Wnkn8sGSw=qdgEZP~Q2^K$9?=J)?RzV5kZIeYzzIUMYz*QKvAvUPEmH&@-> zqazo3{E^`=AC6`#rqx?_@7=h5Dp!c-f!JUL{w)2Vu&Cl2ho9`smyniR=@)k^qI}jd zL)MCAA1oQW;-o$=NEAE3Q5d++snl#8->3M@B?Y_sx6e+_v`e4wbyBk;Q#aO6zWABt z#oyt+Okw|9mp}O?_lGb2S89EJ-H+7Nulf1kc~SkmIf0pnkp&cCn+sUpLRpDyf>2f& zJ1>;g&asLKtZuR?w=E)utGLZMLAt?VH+dJgsXU11l_mJ|IWPo$m>3wifiwsJ0~H7Y zC-d=0LCn$Nk+Mx>VPL4p(JwBk%tis4BTx?_J=I=T^S=w!X9g6N0-FFcDTr-y wKAX(s`8+%jrUG^h0HuTxVgLXD delta 703 zcmew<^-GE`z?+#xgn@~HgJI(g)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEkyiisf$0{bUy2&QowumUM`Yh@|1MCU8BkOTYy!-r z;K_|Vnh=xL@klXdOg_mY2jRX3aw{jZ@j5aoa!$74loAW@W@Q8E?DNWk;;DMUO3!U@d zZn9lo^2Bz_-|ELoFDfjjA2$4IV)5~ahuM#ybw#?Yztpx|D_^>24*$(CuA~pTJ05JD zVmxWh>ZgZH6d!4}2`WdcOf;G2bJzjfYmmT9=$GgoS1r9=Cw3ssBR zQZgDHYjbY?xO(!Gg@WC(zWUuq%k0C?-BWX)%zHh2OOMlY*L~OA{@(5R^>)=gRJVu! zJIZ;4fq}u6k%2(~NT=i{2NdNO6zeAz6zEmt=FFXN(2LnnpzVFr`wdU-`L0n2+N9Z3 z@hzZw>Wnkn8sGSw=qdgEZP~Q2^K$9?=J)?RzV5kZIeYzzIUMYz*QKvAvUPEmH&@-> zqazo3{E^`=AC6`#rqx?_@7=h5Dp!c-f!JUL{w)2Vu&Cl2ho9`smyniR=@)k^qI}jd zL)MCAA1oQW;-o$=NEAE3Q5d++snl#8->3M@B?Y_sx6e+_v`e4wbyBk;Q#aO6zWABt z#oyt+Okw|9mp}O?_lGb2S89EJ-H+7Nulf1kc~SkmIf0pnkp&cCn+sUpLRpDyf>2f& zJ13OY%)!P4RyVnq%N7yCm$=M1LAt?VH(7|=6r#qPTgobsnSmj`C^e^8Uk^kEcr!9F zFd$NjYMIN!W5AH!%*w#P3k+=#0CIsKaq@g_8HhRixuuwb*e2(*$z-DIcls>F_5i3l z8mNgMqzwol`qSAN7%Fn~%kzt}lk)SkK~aaU`9jYI?lPc;Mj#de=>!6Z<`Ry{6FI~t Tm+@#Z%1mC!qs>;s1(E~+bN3g` delta 723 zcmca8c}bElz?+#xgn@~HgJI(g)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEkoKRL12OASu-Q*rFTSOFJ`YhWI=9Ih#D_$DXSo628Q^e)SO~{JrEh- z&B(;SfJiE;WiAho0fTxoD+2>BFt|Yg$OVF=$@92nAm;4jmSPHKo1Dicqm8cL>9Z8u z1EA_?peBBhHXwlL&zP*pBc}jz)rFo7++{%VMj#deDF6b9no^F*6F9^sm-1*a%1&Ou Lqs>;!1(E~+x78RQ diff --git a/PSCADA/SG-A通讯管理模版/database/t_sys_table_file_tree.xlsx b/PSCADA/SG管理机模版/database/t_sys_table_file_tree.xlsx similarity index 59% rename from PSCADA/SG-A通讯管理模版/database/t_sys_table_file_tree.xlsx rename to PSCADA/SG管理机模版/database/t_sys_table_file_tree.xlsx index e97e1cf00d1e86243b483fb06093cc8a4aaae951..84a62202dfb8c88597cad7f318959b74ce6a1fe0 100644 GIT binary patch delta 696 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 literal 0 HcmV?d00001 diff --git a/PSCADA/SG管理机模版/database/temp_plugin_dev_map.xlsx b/PSCADA/SG管理机模版/database/temp_plugin_dev_map.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..42eaa72a5c5648b5805641e32dd62e0ed3da512e GIT binary patch literal 3485 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 dm-g?!{|99l>Qe$if6!yKu!q& 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 literal 0 HcmV?d00001 diff --git a/PSCADA/SG管理机模版/database/temp_plugin_point_map_acc.xlsx b/PSCADA/SG管理机模版/database/temp_plugin_point_map_acc.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..a8270ac2e2a574500fad80d729eade485e801ac0 GIT binary patch literal 5470 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 a|J6|%=+ID{1OVtMUnNR{oOTa}0RIEb65L_{ literal 0 HcmV?d00001 diff --git a/PSCADA/SG管理机模版/database/temp_plugin_point_map_dig.xlsx b/PSCADA/SG管理机模版/database/temp_plugin_point_map_dig.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..0199269351b067865b2c2ac61df7d541abbb617c GIT binary patch literal 16717 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 literal 0 HcmV?d00001 diff --git a/PSCADA/SG-A通讯管理模版/database/temp_plugin_point_map_mix.xlsx b/PSCADA/SG管理机模版/database/temp_plugin_point_map_mix.xlsx similarity index 56% rename from PSCADA/SG-A通讯管理模版/database/temp_plugin_point_map_mix.xlsx rename to PSCADA/SG管理机模版/database/temp_plugin_point_map_mix.xlsx index a3094bf2f71bcfd15bfe5c43733ff84e98071f64..c63f22ebbe3b5a1d163fc7a4e0d9d3133412ea43 100644 GIT binary patch delta 702 zcmZ1}wL*$7z?+#xgn@~HgW+wAV$VjtW=0MWqq1?s?8!43wd;>?DNWk;;DMUO3!U@d zZn9lo^2Bz_-|ELoFDfjjA2$4IV)5~ahuM#ybw#?Yztpx|D_^>24*$(CuA~pTJ05JD zVmxWh>ZgZH6d!4}2`WdcOf;G2bJzjfYmmT9=$GgoS1r9=Cw3ssBR zQZgDHYjbY?xO(!Gg@WC(zWUuq%k0C?-BWX)%zHh2OOMlY*L~OA{@(5R^>)=gRJVu! zJIZ;4fq}u6k%2(~NT=i{2NdNO6zeAz6zEmt=FFXN(2LnnpzVFr`wdU-`L0n2+N9Z3 z@hzZw>Wnkn8sGSw=qdgEZP~Q2^K$9?=J)?RzV5kZIeYzzIUMYz*QKvAvUPEmH&@-> zqazo3{E^`=AC6`#rqx?_@7=h5Dp!c-f!JUL{w)2Vu&Cl2ho9`smyniR=@)k^qI}jd zL)MCAA1oQW;-o$=NEAE3Q5d++snl#8->3M@B?Y_sx6e+_v`e4wbyBk;Q#aO6zWABt z#oyt+Okw|9mp}O?_lGb2S89EJ-H+7Nulf1kc~SkmIf0pnkp&cCn+sUpLRpDyf>2f& zJ3o}w$q~*3RyX+xmn|ZOHMz|>LAt?VH#w8rR360h$`btf92kN=ObiU%KpF&qfeHkH zllO860sYX delta 682 zcmZ1>wNi>Nz?+#xgn@~HgJI(g)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEk{7_a0M>rE$-Q>qywumU!;5O$3=>`Yh?DNWk;;DMUO3!U@d zZn9lo^2Bz_-|ELoFDfjjA2$4IV)5~ahuM#ybw#?Yztpx|D_^>24*$(CuA~pTJ05JD zVmxWh>ZgZH6d!4}2`WdcOf;G2bJzjfYmmT9=$GgoS1r9=Cw3ssBR zQZgDHYjbY?xO(!Gg@WC(zWUuq%k0C?-BWX)%zHh2OOMlY*L~OA{@(5R^>)=gRJVu! zJIZ;4fq}u6k%2(~NT=i{2NdNO6zeAz6zEmt=FFXN(2LnnpzVFr`wdU-`L0n2+N9Z3 z@hzZw>Wnkn8sGSw=qdgEZP~Q2^K$9?=J)?RzV5kZIeYzzIUMYz*QKvAvUPEmH&@-> zqazo3{E^`=AC6`#rqx?_@7=h5Dp!c-f!JUL{w)2Vu&Cl2ho9`smyniR=@)k^qI}jd zL)MCAA1oQW;-o$=NEAE3Q5d++snl#8->3M@B?Y_sx6e+_v`e4wbyBk;Q#aO6zWABt z#oyt+Okw|9mp}O?_lGb2S89EJ-H+7Nulf1kc~SkmIf0pnkp&cCn+sUpLRpDyf>2f& zJ3Exs$l=8VRyX-Pmn|ZOMYzp5LAt?VH#vmc6r!e=TgobsnSmj`C^e^8Uk^kEcr!9F zFd$NjYMIN!W5AH!%*w#P3k+=#0CIsKaq>fM8HhQIJW@ot=T9B1gYGzbHE?KR+83W$2b(=-I$s2GrCD#3Cq~izYARab%R5 N{Fq0ZZ66m%3IOyM7kU5y delta 734 zcmbO%HARXqz?+#xgn@~HgJI(g)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEk>`+z%hZhrA-Q;szwumSe<~HX9=>`YhBFt|Yg$OVF=$q%??z~)TikzxvFo1DicGueWNCkA9u zO`Xa6dq73eK(+i}M?BhW`?)|;0P;m0&Hw-a diff --git a/PSCADA/ECMS电厂行业模版/database/trigger_condition_define.xlsx b/PSCADA/SG管理机模版/database/trigger_condition_define.xlsx similarity index 63% rename from PSCADA/ECMS电厂行业模版/database/trigger_condition_define.xlsx rename to PSCADA/SG管理机模版/database/trigger_condition_define.xlsx index ae794317b8de6f947cd5c6007d75e0a24870d8e1..864806645efdd3693420606b2b83603a4f521062 100644 GIT binary patch delta 717 zcmX>oe?Xouz?+#xgn@~HgCQkGv1cP+Gb0CxQQ5d*_T-t2+Vw}clqPL^@IcMth0ghJ zH`y*Pd1AZeZ}nrP7ZsM%4;y|pvG{nz!|X@Ux*}cHUus*fl`q{hhyP|6SJDUF9S=56 zF`l$$_0vNpijOqg1eK#zCYsFix@p{Ry>!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? z9VXkx@rebjZgLH;Eh2^w@|tskbc4fgG9#ZUM2!`nlvN-z14DdKYEH4f9*7L^W@KVu zK%^AaGM9(PfFZq^m4Sg57}_8Jge^8z;z?+#xgn@~HgJI50)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEkFxgg)Pb^?{ldE}c5m9`A*PIii8yt9(_)H@}9Iq_FpU;6I=)=Uozzw8902ru1 z5X8*D5MPv?ECA_Ke`fl3g`N43o5;W41f&8!RzykHG5jY*Sx`D7sWujP|s3TB&} z$0nnVuK(6%ugb?jeaS#G_)+v{OcvmmlLtBOLeB>7GN4=|5R0IwshI4`@5rbyxu0K~ IEeC8p0DCSO7XSbN diff --git a/PSCADA/ECMS电厂行业模版/database/trigger_function_define.xlsx b/PSCADA/SG管理机模版/database/trigger_function_define.xlsx similarity index 60% rename from PSCADA/ECMS电厂行业模版/database/trigger_function_define.xlsx rename to PSCADA/SG管理机模版/database/trigger_function_define.xlsx index 104f915761bf4f7864339345af5e0141944618bb..753d4189e6dfc7801519ce9e9c4313ab636ac730 100644 GIT binary patch delta 711 zcmew+^Hqi~z?+#xgn@~HgCQkGv1cP+Gb0CxQQ5d*_T-t2+Vw}clqPL^@IcMth0ghJ zH`y*Pd1AZeZ}nrP7ZsM%4;y|pvG{nz!|X@Ux*}cHUus*fl`q{hhyP|6SJDUF9S=56 zF`l$$_0vNpijOqg1eK#zCYsFix@p{Ry>!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? z9VXkxv78yKZn7bdEh2`?c+5FLy1`*Lc^i)@M9q61DaOFbT)a|IAW79SmxsrIfx4NM zfq@qoupj{B0zo1R14BiQesM`8bXzn*Uv(LNlPK6j%#PYtZC6 zUQLK?t9hju(+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEkFxgg)<;-AplMQ%m5m8*qW6lZE4Gz4?TX{?&YTofk)dw*%FvJ(7<`nDefye-F zMkWRZL{d>Lb9s0S7}T3t85nqh!3_dHE)XQKFfdf)=ogn%=A;&bLLOaf?PWFpyFi6z zKm(<~T3}j(*}z&s)=qBcm4`TH6|aV5foD^ ZCNuFlGAVFQw&s+Y9M31frpN=52LS6fBrE^` diff --git a/PSCADA/SG-A通讯管理模版/database/trigger_period_define.xlsx b/PSCADA/SG管理机模版/database/trigger_period_define.xlsx similarity index 56% rename from PSCADA/SG-A通讯管理模版/database/trigger_period_define.xlsx rename to PSCADA/SG管理机模版/database/trigger_period_define.xlsx index 542b105c04a601d6187de693ca19f59fb9bf33b2..7647c3e327cbd3444d89d14ced03b68cc35d3a90 100644 GIT binary patch delta 696 zcmZ1{wN{ERz?+#xgn@~HgCQkGv1cP+Gb0CxQQ5d*_T-t2+Vw}clqPL^@IcMth0ghJ zH`y*Pd1AZeZ}nrP7ZsM%4;y|pvG{nz!|X@Ux*}cHUus*fl`q{hhyP|6SJDUF9S=56 zF`l$$_0vNpijOqg1eK#zCYsFix@p{Ry>!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? zog2z(APoY*Km~$8 zW(J1%qSTyXeLWBv;LQkBf=E7-A8<=CCQkm%Ed#Mjnn#K$h;4E{n~XNP(#0LG4?F^z pm;f}GA8ayUab%R6{Fg_Y?FJV}B>=sZ2{ix! delta 676 zcmZ20wN8pJz?+#xgn@~HgJJp%)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEk+)!2vM*O8=>`Yh!LPLWWbq-#YI&%QRf>nJcxh(xH9Tg{sAD zDH)B9wK+F`Ts?WpLcwlXU;XZ*W%l9c?y0#?=Di-irN`;H>%MDlfA9AEdb{c#s@uc= z9pya2z`$V3$iN@~q*L;f1B&tsiuDr<3iK*+bLLJs=*4U((DuIR{e~y^eAg%hZPIM2 z_!dw-b;g-(jc(W;l*}6E(o2zc` z(UA*1{>bo`4@a{V)9S6e_ikK2l`F*aKy0uAf0lkwSXA+i!%ueROGrzu^ozR{Q9kRK zA#26550;EwaZ;ZbB#Is2C=6WZRBE=4?^Ar{l7e0R+h-?d+NIC;I;mNasT=DjU;NDS z;_q-@rm+95%b$Fc`@@(1E44nq?ni3s*ZlnNyr_QOoWRV($O4M6%>^uPp{ztUK`5(? zoeRop;m~0MtDC%q%N7yCKe@~~LAt?VH`$WgR360h$`btf92kN=ObiU%KpF&qfeHkH zlY6is4BTx?_J=I=T^S=w!X9g6N0-FFcDQGey zk0!(^vRw)au9AdkXt&rjmMEmmUFTdr<7QLH!B-RFDDS%0}Wct1>yk!lvM|M delta 669 zcmew%`BRcFz?+#xgn@~HgJJp%)tHTZ&5Rr%#>+3QM<&l?)ULn67o_5Q@StzOg~)kt zH}fv@JXxLb`};B13m=R0+858REP2#9G3Ue9J5O3gUfjMAdH?#SBD<8SB1axr7aUC1 z6<4`AQcvb^C#< zpH3ZRU|_IiWMB{g(kc1L0Y&)*#rlZ_1$q^^Iddo2W-}Y|w0(E@cle?0^VhtJEc2Zg zmb{ygrn_#fH;>)Ph^(rg-%F)_8KzH}H=TX2(e6sGv-Of(?uQ(0x6I9Aux;%)?zs2e z{BY^38!UMA1P?9HJCKz=o%?f;hVw*@J0Yx}7WgSut~UKG?9+FBM|m8d_~@|w~_CrvVFS#`^Sd;PhM?)X82rW@8nyTmi@3( zpQpUHcA7@Qm--4{Ir+Tz8)9#7|NCtA|1~}TUgz#-K=t(IcxE0(7Ep|B&S!ZGWhJl) zLRqEkTu@dshYk~1-Q>+&wumVH!DY?~(hUy0$rjwE5H*F|Qj9^9d$^?_+*RCCHc2cD z3>7*0#U+(Fsl}l14De=TVqid|o!ZN4{&#`lZUz*U0@5G=j0zwKp2VXGF-Vt3iZNrd j2ag?DNWk;;DMUO3!U@d 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 N4&u{h)8zq40RW@a7b*Y% delta 743 zcmZpYZI4&-oO5-$S!57$dL!u1qYLL z#Z_+3`0BM?@sVa5r*gE)M3Z@0mInUTOIOGiu$&V9)_KQSrtxym-dPK39r{=4bgh+| zxR9Cc>&Dc};p)9*4mCcq_2u1n>kQA`OLO1Mdp&$h&!Q8j_pI6SYj@_?+o|_Z-G1Qe zr&C867#M6B85jhBbV`15Kv8}{v3_DffnG&!&fE#M+02GKZQmXK9e!y0{57v4%Y5gB zCGRGr>8@Mr&0}{mBCG1>_fn}}hUru0O=sV0w7b&lY`r9x`yof$EpxLNY+E~yJMMiq zKV16i1`8fN!9xr54rHZI=l&d|;XIM!P6+F#1%67Et4)6k`}E!J+Bj+AsV7VNp03E0 zS=_GvNnUuti+!)JNu@FJ2!#C%Uy*n0ZRESDY@e?G{;^^IlUJLc89o=;JNee7Wk2lH z=PB>4ou-lSrM|*fPCoDbhS=NN|2~`je@)N7*SY%{P(8glo|%V{1r%eO^I6_PSqW@{ zP*y2B8BFt|Yg$OVF=$^N`D5OeZ*rI>=*Cg-uqWT5Ns{oogH z7pOV{sEHq}52inZoq?euN54G3C_5=XKN}Qx=$bF|Y~U^fYH9>x5fsfulll1^8Kou% L@@cc_@qnZN_gEZM